秘而不宣-MacOS原生应用程序在安全飞地中存储SSH密钥

2020-06-28 04:23:00

Secretive是一款用于在安全飞地中存储和管理SSH密钥的应用程序。它的灵感来自sekey项目,但在SWIFT中重写,没有外部依赖项,并且使用了方便的本机管理应用程序。

SSH密钥最常见的设置是将它们保存在磁盘上,由适当的权限保护。这在大多数情况下都很好,但恶意用户或恶意软件复制您的私钥并不是特别困难。如果您将密钥存储在安全的飞地中,那么按照设计,您不可能将其导出。

如果你的Mac有一个安全的飞地,它还支持强大的访问控制,比如Touch ID,或者使用Apple Watch进行身份验证。您可以配置您的密钥,使它们在重新访问之前需要Touch ID(或Watch)身份验证。

Secretive还会在您的钥匙被访问时通知您,因此您永远不会措手不及。

对于没有安全飞地的Mac,您可以配置智能卡(如YubiKey)并使用它进行签名。

构建是由GitHub操作通过可审核的构建和发布生成过程生成的。每个构建都有一个文档SHAs步骤,它将输出GitHub Action生成的构建的SHA校验和,因此您可以验证给定构建的源代码是否对应于任何给定的版本。

虽然Secure使用安全飞地进行密钥存储,但它仍然依赖密钥链API来访问它们。keychain将密钥的读取限制为创建它们的应用程序(具体地说,是捆绑包ID)。如果您从源代码构建Secretive,请确保您使用的包ID是一致的,以便密钥链能够定位您的密钥。

由于安全飞地中的机密不可导出,因此无法对其进行备份,您也无法将其传输到新计算机。如果你买了一台新的Mac,只需创建一组特定于该Mac的新秘密即可。

如果您在此项目中发现任何漏洞,请使用包含保密安全的主题通知[email protected]