Secretive 是一款使用安全隔区(Secure Enclave)来保护和管理 SSH 密钥的应用。
SSH 密钥最常见的存放方式就是直接放在磁盘上,靠正确的权限来保护。在大多数情况下这没有问题,但恶意用户或恶意软件要复制你的私钥并不困难。如果你的密钥由安全隔区保护,那么按设计它们就无法被导出。
如果你的 Mac 拥有安全隔区,它也就支持 Touch ID 或 Apple Watch 认证等强访问控制。你可以在访问密钥之前要求必须完成 Touch ID(或 Apple Watch)认证。
只要你的密钥被访问,Secretive 就会通知你,让你永远不会措手不及。
对于没有安全隔区的 Mac,你也可以配置智能卡(如 YubiKey)并使用它进行签名。
你可以在发布页面下载最新版本。
brew install secretive
这里有 FAQ。
构建由 GitHub Actions 生成,并带有可审计的构建和发布生成过程。从 Secretive 3.0 开始,构建均使用 GitHub Artifact Attestation 进行证明。证明可在构建日志中查看,也可在主要证明页面上查看。
虽然 Secretive 使用安全隔区来保护密钥,但它仍然依赖钥匙串(Keychain)API 来存储和访问这些密钥。钥匙串将密钥的读取限制为创建它们的应用(具体来说是 bundle ID)。如果你从源代码构建 Secretive,请确保使用的 bundle ID 保持一致,以便钥匙串能够找到你的密钥。
由于安全隔区中的机密无法导出,因此无法备份,也无法将其迁移到新电脑。如果你换了一台新 Mac,只需为该 Mac 创建一套新的机密即可。
Secretive 的安全策略详见 SECURITY.md。要报告安全问题,请使用 GitHub 的私下报告功能。
Secretive 的灵感来自 sekey 项目。
Secretive 由一支慷慨的志愿者团队本地化为多种语言。要了解更多信息,请参阅 LOCALIZING.md。Secretive 的本地化工作流程由 Crowdin 慷慨提供。