深入探索 iOS 安全加密 API:Secure Enclave 实战指南

本文详细解析苹果 Secure Enclave Crypto API 的技术实现,介绍 Tidas 开源身份验证方案如何利用安全飞地存储密钥,通过 Touch ID 实现强认证,并提供完整开发工具链和协议架构说明。

开始使用 Secure Enclave 加密 API - Trail of Bits 博客

tl;dr – Tidas 现已开源。如果贵公司需要试用帮助,请与我们联系。

当苹果在 iOS 9 中悄然发布 Secure Enclave Crypto API(kSecAttrTokenIDSecureEnclave)时,它让开发者能够将用户从强密码或 OAuth 的烦恼中解放出来——前提是开发者能够在没有文档的情况下自行摸索。

所需属性完全未文档化。密钥格式与 OpenSSL 不兼容。苹果甚至没有说明使用的密码套件(实际上是 secp256r1)。在原始状态下完全无法使用。应用开发社区一筹莫展。

我们填补了空白

我们将此视为逆向工程挑战。Ryan Stortz 运用其精湛技艺和我们对 iOS 平台的集体知识,成功破解了这一新 API 的使用方法。

当 Ryan 完成一套可操作 Secure Enclave 的工具后,我们迈出了下一步:基于此功能发布了 Tidas 服务。

当您的应用安装在新设备上时,Tidas SDK 会生成唯一标识用户的加密密钥,并在 Tidas 网络服务中注册。该密钥存储在客户端设备的 Secure Enclave 中,并受 Touch ID 保护,要求用户使用指纹解锁。客户端登录会生成数字签名的会话令牌,您的后端可将其传递给 Tidas 网络服务以验证用户身份。整个认证过程由我们易于使用的 SDK 处理,避免了传输用户敏感数据。用户保持隐私,您最小化责任。

NCC Group 的 David Schuetz 在这篇简洁的文章中评估了 Tidas 的协议。右侧 David 的图表准确描述了 Tidas 有线协议。

Tidas 的认证协议与 Secure Enclave 中的安全密钥存储相结合,提供了强大的安全保证,防止网络钓鱼和重放等攻击。它显著降低了在移动优先开发环境中采用纯令牌认证的门槛。

我们看到了通过让应用程序使用安全存储在 iOS 之外、远离任何潜在恶意软件的私钥来实现安全的巨大潜力,例如通过按压 Touch ID 轻松解锁计算机、更强大的密码管理器和更可信的移动支付。

我们认为好处显而易见,因此我们建立了一个网站并将该产品发布到互联网上。

今日 Tidas 开源

自二月份发布以来,Tidas 引起了广泛关注。《华尔街日报》为此撰文。我们与十几家不同银行进行了交流,它们看中 Tidas 的设备绑定特性和潜在的欺诈减少能力。同时,我们直接邀请移动应用开发者进行试运行。

数月后,这些潜力均未转化为客户。

认证例程是应用程序的入口。我们接触的开发者不愿对其进行丝毫修改,以免风险锁定诚实付费客户。

银行喜欢这项技术,但没有一家会考虑为单一设备(iOS)购买点解决方案。

因此,Tidas 于今日开源。所有代码可在 https://github.com/tidas 获取。如果您想自行尝试使用 Secure Enclave,请查看我们的 DIY 工具包:https://github.com/trailofbits/SecureEnclaveCrypto。它通过提供易于使用的 Secure Enclave API 封装器,解决了我们上面提到的所有苹果问题。与您的应用集成再简单不过。

如果贵公司有兴趣试用并需要帮助,请联系我们。

如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News


页面内容 我们填补了空白 今日 Tidas 开源 近期文章 Trail of Bits 的 Buttercup 在 AIxCC 挑战赛中荣获第二名 Buttercup 现已开源! AIxCC 决赛:数据对比 攻击者的提示注入工程:利用 GitHub Copilot 作为新员工发现 NVIDIA Triton 中的内存损坏 © 2025 Trail of Bits. 使用 Hugo 和 Mainroad 主题生成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计