开始使用安全飞地加密API - Trail of Bits博客
Dan Guido
2016年6月28日
apple, authentication, cryptography, products
tl;dr – Tidas现已开源。如果您公司需要试用帮助,请与我们联系。
当苹果在iOS 9中悄然发布安全飞地加密API(kSecAttrTokenIDSecureEnclave)时,它让开发者能够将用户从强密码或OAuth的烦恼中解放出来。
也就是说,如果开发者能够在没有文档的情况下凑合使用的话。
所需的属性完全没有任何文档说明。密钥格式与OpenSSL不兼容。苹果甚至没有说明使用了什么密码套件(实际上是secp256r1)。在最初的状态下,它完全无法使用。应用开发者社区一筹莫展。
我们填补了空白
我们将此视为逆向工程挑战。Ryan Stortz运用他精湛的技术和我们团队对iOS平台的集体知识,最终弄清楚了如何使用这个新API。
当Ryan完成了一套可用的工具来利用安全飞地后,我们采取了下一步行动。我们基于这个功能发布了一项服务:Tidas。
当您的应用安装在新设备上时,Tidas SDK会生成一个唯一加密密钥来识别用户,并在Tidas网络服务中注册。该密钥存储在客户端设备的安全飞地中,并受到Touch ID的保护,要求用户使用指纹解锁。客户端登录会生成数字签名的会话令牌,您的后端可以将其传递给Tidas网络服务来验证用户身份。整个身份验证过程由我们易于使用的SDK处理,避免了传输用户的敏感数据。用户保持隐私,您最小化责任。
NCC Group的David Schuetz在这篇简洁的文章中评估了Tidas的协议。David右侧的图表准确描述了Tidas的线协议。
Tidas的身份验证协议,结合安全飞地中的安全密钥存储,提供了强大的安全保证,并防止了网络钓鱼和重放等攻击。它显著降低了在移动优先开发环境中采用仅令牌身份验证的门槛。
我们看到了通过使应用程序使用安全存储在iOS外部、远离任何潜在恶意软件的私钥来实现安全的巨大潜力,例如通过按下TouchID轻松解锁计算机、更强大的密码管理器和更可信的移动支付。
我们认为好处是显而易见的,因此我们建立了一个网站并将这个产品发布到互联网上。
今天,Tidas成为开源项目
自2月发布以来,Tidas引起了广泛关注。《华尔街日报》为此写了一篇文章。我们与十几家不同的银行进行了交谈,他们因为Tidas的设备绑定特性和潜在的欺诈减少而对其感兴趣。同时,我们直接向移动应用开发者寻求试用。
几个月后,这些潜力都没有转化为客户。
身份验证例程是应用程序的入口。我们交谈过的开发者不愿意对它们做任何微小的修改,如果这有可能锁住诚实的付费客户的话。
银行喜欢这项技术,但没有一家会考虑为单一设备(iOS)购买点解决方案。
因此,Tidas今天成为开源项目。所有代码都可以在https://github.com/tidas获取。如果您想尝试自己使用安全飞地,请查看我们的DIY工具包:https://github.com/trailofbits/SecureEnclaveCrypto。它通过提供易于使用的安全飞地API包装器,解决了我们上面提到的所有苹果问题。与您的应用集成再简单不过了。
如果您的公司有兴趣试用并需要帮助,请联系我们。
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News
页面内容
我们填补了空白
今天,Tidas成为开源项目
近期文章
我们构建了MCP一直需要的安全层
在废弃硬件中利用零日漏洞
Inside EthCC[8]:成为智能合约审计员
使用Vendetect大规模检测代码复制
构建安全消息传递很困难:对Bitchat安全辩论的细致分析
© 2025 Trail of Bits.
使用Hugo和Mainroad主题生成。