我不是安全专家。我正在考虑如何在软件系统中实现信用卡存储,其中信用卡交易通过网络接受,但由内部用户手动执行。我们将使用 HTTPS(我相信)这将消除中间人攻击的风险。现在,我想弄清楚我是否可以做到,以便从客户端接收到的数据可以在到达我们的服务器之前进行加密。
这个想法是他们的浏览器将使用非对称密钥对的公共部分加密数据。内部用户将知道私密部分。然后,当需要手动处理费用时,该用户将转到我们提供的 HTTPS 页面。他们将手动输入私钥(不会传输到我们的服务器),加密的信用卡信息将从我们的系统中检索并由浏览器解密。
通过这种方式,我希望我可以阻止我们的任何服务器看到未加密的信用卡信息。我错过了一些众所周知的安全漏洞吗?我读过这似乎解决了另一种安全漏洞。我还阅读了其他一些 SO 问题,但似乎没有一个能清楚地映射到这个特定的设计。
编辑#1:@Pointy 询问为什么不使用行业标准。主要在线零售商使用的解决方案远比我的问题所保证的复杂和昂贵。主要零售商会自动处理他们的交易,因此通常会努力实现 PCI-DSS 合规性。这不是我要解决的问题。我正在开发自动工具以安全地协助手动交易处理。
编辑#2:@Jason Dean 指出我没有很好地描述管理私钥的计划。这个想法实际上是让我们的员工将其保存在办公桌上的一张纸上。我们主要关心的是远程安全违规。我们的物理站点足够安全,我们不担心有人闯入。我们的想法是让私钥远离任何地方任何机器上的任何持久存储,这样就没有纯粹的电子攻击可能同时获取数据和私钥钥匙。