我正在嘗試使用SecKeyGeneratePair,並且已將該屬性設置爲kSecAttrTokenIDSecureEnclave以及將其留爲空白。根據https://developer.apple.com/reference/security/ksecattrtokenid如果未設置kSecAttrTokenID,則該項目應存儲在普通鑰匙串數據庫中。但是,無論是否設置它,keychain-2.db文件大小都不會更改。然而,我可以在沒有任何錯誤的情況下將SecKeyRawSign()與生成的私鑰一起使用。那麼私鑰在哪裏存儲?SecKeyGeneratePair在哪裏存儲密鑰對?
0
A
回答
0
如果您設置kSecAttrTokenIDSecureEnclave,那麼真正的私鑰將存儲在安全區域的某個位置,並且返回給您的私鑰只是引用安全區域中的真實私鑰。但是,就使用密鑰而言,它沒有任何區別。您以完全相同的方式使用您收到的SecKey。
如果您希望在應用程序的連續運行中使用相同的密鑰對(如您最想要的那樣),您必須將您收到的私鑰存儲在密鑰鏈中,並在應用程序再次啓動時從鑰匙串中檢索它,不管你是否使用這個令牌。如果你不這樣做,那麼你就沒有SecKey,所以私鑰仍然處於安全飛地,但你失去了訪問它的任何方式。
看起來像這樣:通常,SecKey是一個帶有門鑰匙或車鑰匙的盒子。但是使用kSecAttrTokenIDSecureEnclave,SecKey是一個裏面有一張紙的盒子,它告訴真正的密鑰在安全區域的哪個位置。 iOS非常聰明,可以同時處理兩種盒子。但是,您需要自行將各種盒子存儲在鑰匙串中。如果你沒有照顧盒子,當你的應用程序重新啓動時,它就會消失。
相關問題
- 1. SSL對稱密鑰存儲在哪裏?
- 2. 我們在哪裏存儲密鑰/密碼/鹽進行加密?
- 3. 存儲強名密鑰的密碼在哪裏?
- 4. 加密密鑰的存儲位置在哪裏?
- 5. vim在哪裏存儲自定義密鑰映射緩存?
- 6. 在哪裏存儲jasypt解密密碼
- 7. Right_aws ruby gem:我必須在哪裏存儲AWS訪問密鑰和密鑰?
- 8. 我應該在哪裏存儲Vault開封和根密鑰/密鑰?
- 9. 哪裏存儲加密算法的密鑰?
- 10. apk密鑰在計算機上存儲在哪裏?
- 11. 要使用哪種加密算法以及在哪裏存儲密鑰?
- 12. 在PHP中使用AES加密時,應該在哪裏存儲密碼密鑰?
- 13. 我應該在哪裏存儲公鑰?
- 14. 哪裏存儲公鑰在Ubuntu的SSH?
- 15. WSO2 API Manager在哪裏存儲私鑰
- 16. C#X509Certificate2:在哪裏存儲私鑰?
- 17. 使用Polymer + Firebase時,在哪裏存儲密鑰?
- 18. 哪裏存儲api客戶端密鑰在grails中
- 19. .net MVC中的密鑰和IV存儲位置在哪裏?
- 20. Windows XP在哪裏以及如何存儲wep/wpa密鑰?
- 21. Bitbucket - 在哪裏可以找到存儲庫SSH密鑰?
- 22. Eclipse ADT在哪裏存儲默認密鑰庫路徑?
- 23. 密鑰庫在哪裏?
- 24. 使用SecKeyGeneratePair在iOS中生成密鑰對失敗,errSecInteractionNotAllowed
- 25. 域密鑰 - 在哪裏放置私鑰?
- 26. 對稱密鑰存儲
- 27. AWS密鑰對存儲
- 28. HMAC/Javascript - 在哪裏存儲祕密?
- 29. Webmin在哪裏存儲根MySQL密碼?
- 30. 運行時在哪裏存儲密碼?