我已经阅读了Apple的 WWDC 2015文章,其中说:
我们还将 KeyStore 组件从内核移至 Secure Enclave,它是控制围绕 Keychain 项和数据保护的加密的组件。
这是否意味着生成并存储在钥匙串中的私钥与直接在 Secure Enclave 中生成的私钥具有相似的安全级别?
我能想到的一个区别是,在 Secure Enclave 内生成的私钥无法以任何形式提取。
我已经阅读了Apple的 WWDC 2015文章,其中说:
我们还将 KeyStore 组件从内核移至 Secure Enclave,它是控制围绕 Keychain 项和数据保护的加密的组件。
这是否意味着生成并存储在钥匙串中的私钥与直接在 Secure Enclave 中生成的私钥具有相似的安全级别?
我能想到的一个区别是,在 Secure Enclave 内生成的私钥无法以任何形式提取。
这取决于。如果您使用钥匙串来存储您可以检索的密钥,那么安全级别是不一样的。您仍然必须将该密钥移动到内存中才能使用它 - 安全飞地所做的所有事情就是在不使用时使该密钥数据的存储更加安全。
或者,您可以直接在 enclave 中创建和存储实际密钥。看 -
当您将私钥存储在 Secure Enclave 中时,您从未真正处理过该密钥,这使得密钥很难被泄露。相反,您指示 Secure Enclave 创建密钥、安全地存储它并使用它执行操作。您只会收到这些操作的输出,例如加密数据或加密签名验证结果。
...
无法导入预先存在的密钥。您必须直接在 Secure Enclave 内创建密钥。没有将关键数据传入或传出 Secure Enclave 的机制是其安全性的基础。