我的OS X App应该如何存储用户的私钥?

时间:2015-04-06 21:36:22

标签: macos cocoa security keychain

我正在构建一个使用RSA非对称密钥加密的应用程序。

公钥发送到我们的API,但私钥需要安全地存储在用户的计算机上。

一种选择是遵循与SSH相同的模式并将密钥存储在磁盘上(权限锁定为0600 / rw----)。

这是否适合OSX钥匙串? 如果是这样,您将如何存储密钥?我见过的C API的大多数Cocoa包装器都是以密码为中心的。

1 个答案:

答案 0 :(得分:1)

登录钥匙串非常适合您的应用,至少有以下原因:
1.它是基于用户的 - 每个用户都有自己的登录密钥链
2.其他用户无法访问 3.使用您的帐户密码生成的密钥进行加密
文件系统方法从上面获得了#1和#2的好处,但它没有#3,所以钥匙串是要走的路。关于密钥,我建议将私有密钥链存储在密钥链中,并将公共密钥链存储在用户默认密钥中(安全性较低,但无论如何您都要分发该密钥)。

更多关于钥匙链的信息:
- https://security.stackexchange.com/questions/756/how-secure-is-keychain-on-os-x
- https://apple.stackexchange.com/questions/53579/how-is-the-system-keychain-secured-in-os-x(更多关于系统密钥链,而不是登录密钥链)