Show HN: Sod – 基于安全隔区的 Touch ID 认证 SSH 密钥
Sod 是一个用 Swift 编写的最小化工具,可在 Apple 安全隔区内生成不可导出的 ecdsa-sha2-nistp256 SSH 密钥,并协调一个极简的 ssh-agent 会话,让用户用指纹而非密码即可认证 OpenSSH 服务器。它无需服务端特殊支持,仅通过 CLI 操作,以标准 OpenSSH 命令(ssh-keygen、ssh-add、ssh-agent)为接口,零外部依赖,完全依赖 macOS 和 OpenSSH 的底层密码学实现。
背景速读
- **Secure Enclave** 是苹果芯片(T2/M1/M2/M3/M4)内一个独立的安全协处理器,私钥一旦在其中生成就永远无法被读取或导出——即使操作系统或攻击者拿到设备物理访问权限也无法提取。
- **SSH 密钥** 传统上以文件形式存储在磁盘上,需要密码保护。sod 将私钥直接锁进 Secure Enclave,SSH 认证时要求 Touch ID(指纹)授权,私钥本身不可能被复制或泄露。
- **sod 无需任何服务端改动**:它对外表现为标准 SSH 客户端,服务器看到的只是一个普通的 ECDSA 公钥。这是它和有类似想法但依赖特殊服务端的方案的关键区别。
- 与其他硬件密钥方案(如 YubiKey、PIV token)相比,sod 利用 Mac 已有的硬件和生物识别,无需额外购买硬件,但也局限于 macOS 且不跨平台。
- 该项目在 2025 年发布,属于 Apple Silicon 时代“如何用平台安全硬件加强开发者工具”的探索方向之一。