iOS:我需要将用户的私钥 (RSA) 传输到我的应用程序。文件共享是一个好的解决方案吗?

Posted

技术标签:

【中文标题】iOS:我需要将用户的私钥 (RSA) 传输到我的应用程序。文件共享是一个好的解决方案吗?【英文标题】:iOS: I need to transfer user's private key (RSA) to my App. Is file sharing a good solution? 【发布时间】:2015-07-21 15:51:57 【问题描述】:

我之前在这里问过类似的问题ios: Is it ok to store a RSA private key (use to decrypt text) in your application document directory?

但是,此人建议我使用钥匙串访问。这对我不起作用,因为经过进一步研究,首先只有 mac 用户可以使用钥匙串。这限制了可以做到这一点的人。

我想知道使用 Apple 的文件共享 https://support.apple.com/en-us/HT201301 允许用户在 iOS 应用程序中使用他/她的私钥是否安全?根据有关文件共享的文档,只有我的应用程序应该能够访问私钥,因为它存储在文档目录中。我的应用中有一些文本需要解密。

【问题讨论】:

iOS 也有钥匙串。在这方面,您的另一个问题的答案很好。 是的,但我需要用户将私钥从他们的桌面传输到 iPhone。他们如何通过钥匙串做到这一点?我只知道云钥匙串,但它在 Windows 上不可用。 钥匙串是一种可以在 iOS 上使用的存储机制。它不是一种转移方法。有几种方法可以将文件传输到 iOS 应用程序。钥匙串的使用将在传输过程结束时完成。这两个步骤是相互独立的。 好的,所以我应该将文件传输到我的 iOS 应用程序。然后,在我的应用程序中编写一些代码,将密钥存储在钥匙串中? 是的,没错。 【参考方案1】:

您原来问题的答案是正确的。

私钥绝对应该存储在 iOS 钥匙串中。您可以使用 iOS 的内置文档传输来传输密钥(或者您可以使用本地网络服务器、保管箱、iCloud 或任何其他方式导入它)。

但转账完成后,密钥应该存储在 KeyChain 中。 将私钥保存在 Documents 文件夹中将是一种鲁莽的风险。如果 iPhone 丢失或被盗,原始密钥很容易被提取。

【讨论】:

以上是关于iOS:我需要将用户的私钥 (RSA) 传输到我的应用程序。文件共享是一个好的解决方案吗?的主要内容,如果未能解决你的问题,请参考以下文章

从 PEM BASE64 编码的私钥文件中获取 RSA 私钥

PHP:从私钥字符串/文件中获取 RSA 公钥

GnuPG高级指导加密分发我的私钥

怎么在ios进行rsa公钥加密,java做rsa私钥解密

RSA:使用扩展欧几里得算法的私钥计算

我可以将 ssh 私钥永久添加到我的用户代理吗?