【发布时间】:2018-04-05 11:09:53
【问题描述】:
在 android 中,有一种方法可以知道密钥对中的公钥是否是在 TEE 内部生成的,因此是硬件支持的 (https://source.android.com/security/keystore/attestation)。我找不到在 iOS 中做到这一点的方法。有谁知道有办法吗?
【问题讨论】:
在 android 中,有一种方法可以知道密钥对中的公钥是否是在 TEE 内部生成的,因此是硬件支持的 (https://source.android.com/security/keystore/attestation)。我找不到在 iOS 中做到这一点的方法。有谁知道有办法吗?
【问题讨论】:
类似的服务可用于 iOS 14,DCAppAttestService
https://developer.apple.com/documentation/devicecheck/dcappattestservice
【讨论】:
注意:在此期间,我的回答不再是最新的了。请参阅上面 Tolga Okur 从 2020 年 6 月 23 日起的回答。出于历史目的,我不会删除它。
我不知道有直接类似的可能性,但如果您的应用程序运行在未越狱的设备上,您可以create keys 并将它们存储在您的 iOS 设备的 Secure Enclave 中,并确保它们被安全地存储并且不能妥协。请注意,您只能存储 256 位椭圆曲线私钥。然后,您可以从密钥中获取公钥,例如SecKeyCopyPublicKey.
TrailOfBits 创建了一个example project,您可以在其中查找与 Secure Enclave API 的更多交互。
Secure Enclave 本身受到安全启动链的保护,以确保其单独的软件得到 Apple 的验证和签名。 见:https://www.apple.com/business/docs/iOS_Security_Guide.pdf
【讨论】: