iOS Secure Enclave 中可以存储多少个密钥?

Posted

技术标签:

【中文标题】iOS Secure Enclave 中可以存储多少个密钥?【英文标题】:How many keys can be stored in the iOS Secure Enclave? 【发布时间】:2019-03-20 12:56:21 【问题描述】:

我可以在 ios Secure Enclave 中存储的密钥数量是否有限制?

我已经阅读了 Apple 的 documentation about the Secure Enclave(有很多相关页面)以及 Apple 的 document about security,但我没有发现任何关于 Secure Enclave 容量的信息。

【问题讨论】:

【参考方案1】:

我尝试生成 1025 个密钥对来尝试 Secure Enclave 的容量。 大约在 400 号左右,我开始收到错误消息。

所以我认为,有一个限制。但是现在我不能说是尺寸限制还是数量限制。

【讨论】:

但是我更担心限制是最多 5 个。 10 把钥匙(就像你可以用来验证的指纹一样)。这个测试表明它是一个更大的数字,这对我来说已经足够了。【参考方案2】:

根据 UserDefaults 和其他 *.plist.

来自iOS SDK代码,以及相关的Apple官方文档..

 extension UserDefaults 


  /*!
   NSUserDefaultsSizeLimitExceededNotification is posted on the main queue when 
more data is stored in user defaults than is allowed. Currently there is no 
limit for local user defaults except on tvOS, where a warning notification will 
be posted at 512kB, and the process terminated at 1MB. For ubiquitous defaults, 
the limit depends on the logged in iCloud user.
 */
@available(iOS 9.3, *)
public class let sizeLimitExceededNotification: NSNotification.Name


// ....
   

总结

目前本地用户默认设置没有限制 在 tvOS 上,将以 512kB 的大小发布警告通知,以及进程 终止于 1MB。 对于普遍存在的默认值,限制取决于 登录 iCloud 用户。

【讨论】:

以上是关于iOS Secure Enclave 中可以存储多少个密钥?的主要内容,如果未能解决你的问题,请参考以下文章

iOS Secure Enclave

iOS Secure Enclave

什么是 Secure Enclave ECIES 加密数据格式?

如何在没有 TouchID 和密码的情况下使用 Secure Enclave?

即使在应用程序卸载后仍存在 Secure Enclave 密钥

关于 SSH Secure Shell