在
android中,有一种方法可以知道密钥对中的公钥是否是在TEE中生成的,因此是硬件支持的(
https://source.android.com/security/keystore/attestation).我找不到在iOS中这样做的方法.有谁知道是否有办法?
解决方法
我不知道直接类似的可能性,但如果您的应用程序位于非越狱设备上,您可以将其存储在iOS设备的Secure Enclave中,并确保它们安全存储且不会受到损害.请注意,您只能存储256位椭圆曲线私钥.然后,您可以从密钥获取公钥,例如到
SecKeyCopyPublicKey
年.
TrailOfBits创建了一个example project,您可以在其中查找与Secure Enclave API的更多交互.
Secure Enclave本身受到安全引导链的保护,以确保其单独的软件由Apple验证和签名.
见:https://www.apple.com/business/docs/iOS_Security_Guide.pdf