写点什么

使用 Secure Enclave 加密 API 增强移动应用安全

作者:qife122
  • 2025-08-17
    福建
  • 本文字数:819 字

    阅读完需:约 3 分钟

开始使用 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 会:


  1. 生成唯一加密密钥标识用户

  2. 向 Tidas 网络服务注册

  3. 将密钥存储在 Secure Enclave 中

  4. 通过 Touch ID 保护访问权限


客户端登录时会生成数字签名的会话令牌,后端可将其传递给 Tidas 网络服务进行用户身份验证。整个认证过程通过易用的 SDK 完成,避免传输用户敏感数据。


NCC 集团的 David Schuetz 在技术分析中准确描述了 Tidas 的通信协议。该协议结合 Secure Enclave 的安全密钥存储,可防范钓鱼和重放攻击,显著降低了移动优先开发环境中采用令牌认证的门槛。

技术潜力

我们看到了巨大的安全潜力:


  • 使用存储在 iOS 外部的私钥

  • 通过 Touch ID 轻松解锁电脑

  • 更强大的密码管理器

  • 更可信的移动支付

开源决定

尽管获得 WSJ 报道并与多家银行洽谈,但由于:


  1. 开发者不愿冒险修改核心认证流程

  2. 银行不愿采购单一设备(iOS)的解决方案


我们决定将 Tidas 完全开源:https://github.com/tidas


同时提供 DIY 工具包:https://github.com/trailofbits/SecureEnclaveCrypto,该工具包解决了前文所述的所有苹果 API 问题,提供了易用的 Secure Enclave API 封装,可轻松集成到应用中。


如需商业支持,欢迎联系我们。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife122

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
使用Secure Enclave加密API增强移动应用安全_ios安全_qife122_InfoQ写作社区