使用 Secure Enclave 加密 API 增强移动应用安全
开始使用 Secure Enclave 加密 API
tl;dr - Tidas 现已开源。如需企业级支持请联系我们。
当苹果在 iOS 9 中低调发布 Secure Enclave Crypto API(kSecAttrTokenIDSecureEnclave)时,开发者们终于可以让用户摆脱复杂密码或 OAuth 的困扰——前提是他们能在没有官方文档的情况下搞懂这个 API。
技术挑战
这个关键属性完全缺乏文档说明。其密钥格式与 OpenSSL 不兼容,苹果甚至没有说明使用的密码套件(实际上是 secp256r1)。最初的状态下根本无法使用,整个开发者社区都束手无策。
我们的解决方案
我们将此视为逆向工程挑战。Ryan Stortz 运用其卓越的技术能力与我们团队对 iOS 平台的深入理解,最终破解了这个新 API 的使用方法。
在 Ryan 完成 Secure Enclave 的工具集后,我们进一步推出了基于此功能的服务:Tidas。
Tidas 技术实现
当应用安装在新设备时,Tidas SDK 会:
生成唯一加密密钥标识用户
向 Tidas 网络服务注册
将密钥存储在 Secure Enclave 中
通过 Touch ID 保护访问权限
客户端登录时会生成数字签名的会话令牌,后端可将其传递给 Tidas 网络服务进行用户身份验证。整个认证过程通过易用的 SDK 完成,避免传输用户敏感数据。
NCC 集团的 David Schuetz 在技术分析中准确描述了 Tidas 的通信协议。该协议结合 Secure Enclave 的安全密钥存储,可防范钓鱼和重放攻击,显著降低了移动优先开发环境中采用令牌认证的门槛。
技术潜力
我们看到了巨大的安全潜力:
使用存储在 iOS 外部的私钥
通过 Touch ID 轻松解锁电脑
更强大的密码管理器
更可信的移动支付
开源决定
尽管获得 WSJ 报道并与多家银行洽谈,但由于:
开发者不愿冒险修改核心认证流程
银行不愿采购单一设备(iOS)的解决方案
我们决定将 Tidas 完全开源:https://github.com/tidas
同时提供 DIY 工具包:https://github.com/trailofbits/SecureEnclaveCrypto,该工具包解决了前文所述的所有苹果 API 问题,提供了易用的 Secure Enclave API 封装,可轻松集成到应用中。
如需商业支持,欢迎联系我们。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码

评论