iOS硬件支持的密钥证明

arn*_*nau 6 pki ios

在android中,有一种方法可以知道密钥对中的公钥是否在TEE内部生成,因此是否由硬件支持(https://source.android.com/security/keystore/attestation)。我找不到在iOS中执行此操作的方法。有谁知道有办法吗?

Dav*_*ann 0

注意:与此同时,我的答案不再是最新的。请参阅上面 Tolga Okur 在 2020 年 6 月 23 日的回答。出于历史目的,我不会删除它。


我不知道有直接类似的可能性,但如果您的应用程序运行在未越狱的设备上,您可以创建密钥并将其存储在 iOS 设备的 Secure Enclave 内,并确保它们安全存储并且不会受到损害。请注意,您只能存储 256 位椭圆曲线私钥。然后您可以从秘密密钥中获取公钥,例如通过SecKeyCopyPublicKey

TrailOfBits 创建了一个示例项目,您可以在其中查找与 Secure Enclave API 的更多交互。

Secure Enclave 本身受到安全启动链的保护,以确保其单独的软件经过 Apple 验证和签名。请参阅: https: //www.apple.com/business/docs/iOS_Security_Guide.pdf

  • 您正在解释的是如何在安全飞地内生成密钥对,但我想要的是能够确保密钥是从服务器端在安全飞地内生成的。Android 使用供应商提供的存储在安全元件内的密钥解决了对公钥进行签名的问题。 (8认同)