iOS - 从 ios 应用程序以加密形式将信用卡/借记卡存储在服务器上,然后再次从应用程序解密。我怎样才能最安全地管理它?
Posted
技术标签:
【中文标题】iOS - 从 ios 应用程序以加密形式将信用卡/借记卡存储在服务器上,然后再次从应用程序解密。我怎样才能最安全地管理它?【英文标题】:iOS - Store credit/debit card in encrypted form on server from ios app and decrypt it from the app again. How can I manage it most securely? 【发布时间】:2018-10-18 05:52:34 【问题描述】:我的 ios 应用程序中有静态密钥。通过使用该密钥,我正在加密信用卡/借记卡并将其发送到服务器以供将来使用。我使用相同的密钥解密卡。
现在我不能通过任何密钥生成算法使用动态密钥,因为我想稍后解密我的卡。所以,每次我都需要相同的密钥。
所以,我的问题是我应该如何存储我的密钥,或者我应该将我的密钥存储在哪里,因为它会最安全?或者我可以通过每次生成动态密钥来管理这些东西吗?如果是那怎么办?
亚马逊、优步等许多 iOS 应用程序都将卡信息存储在他们的服务器中!他们是如何管理这些东西的?
任何帮助将不胜感激!谢谢!
【问题讨论】:
【参考方案1】:如果您需要问这个问题,那么您已经违反了 PCI 合规性。您的客户信用卡信息不应该接触您的服务器,无论是加密的还是其他的。大多数支付网关都会为您处理这个问题。您没有理由自己这样做。
如果您确实需要自己处理,而且您需要自己处理的情况很少,那么在您的应用中简单地对卡信息进行对称加密并不是解决问题的方法。从字面上看,任何可以下载您的应用的人都可以解密其他客户的信用卡信息。
正确的方法是将卡信息传输到使用 TLS 保护的服务器,然后将密钥信息加密并存储在 HSM 服务器端。如果您无法做到这一点,则您不符合 PCI 标准,您将承担法律责任。
如果您的企业在欧盟运营或为客户提供服务,那么您可能会因对消费者信用卡信息处理不当而遭受非常重罚。
【讨论】:
感谢您的回答。我很好奇任何 iOS 特定的解决方案(如果有可能的话)!如果我可以在我的服务器中管理它,那么它会很棒,否则我计划将它存储在支付网关中!再次非常感谢!非常感谢您的回答:)以上是关于iOS - 从 ios 应用程序以加密形式将信用卡/借记卡存储在服务器上,然后再次从应用程序解密。我怎样才能最安全地管理它?的主要内容,如果未能解决你的问题,请参考以下文章
如何以 xamarin 形式将一个内容页面从客户端项目(IOS/Android)导航到另一个内容页面?