我不是安全专家。我正在考虑如何在通过网络接受信用卡交易的软件系统中实施信用卡存储,但是由内部用户手动执行。我们将使用HTTPS(我相信)将消除中间人攻击的风险。现在,我正在试图弄清楚我是否可以做到这一点,以便从客户端收到的数据在它到达我们的服务器之前就可以加密。
他们的想法是,他们的浏览器会使用非对称密钥对的公共部分加密数据。私人部分将由内部用户知道。然后,当需要手动处理费用时,该用户将转到我们提供的HTTPS页面。他们会手动输入私钥(不会传输到我们的服务器),加密的信用卡信息将从我们的系统中检索出来并由浏览器解密。
通过这种方式,我希望我能够让任何服务器都看不到未加密的信用卡信息。我错过了一些众所周知的安全漏洞吗?我读过this这似乎解决了一种不同的安全漏洞。我还阅读了其他一些SO问题,但它们似乎都没有清楚地映射到这个特定的设计。
编辑#1:@Pointy问为什么不使用行业标准。主要的在线零售商使用的解决方案比我的问题保证更复杂,更昂贵。主要零售商自动处理他们的交易,因此通常致力于PCI-DSS合规性。这不是我想要解决的问题。我正在研究自动工具,以便安全地协助手动交易处理。
编辑#2:@Jason Dean指出我没有很好地描述管理私钥的计划。这个想法实际上是让我们的员工把它放在桌子上的一张纸上。我们主要关注的是远程安全违规行为。我们的物理站点足够安全,我们不担心有人闯入。我们的想法是将私钥从任何计算机上的任何持久存储中保留下来,这样就不会有纯电子攻击可能同时获取数据和私有键。
答案 0 :(得分:2)
他们会手动输入私钥(不会传输到我们的服务器),加密的信用卡信息将从我们的系统中检索并由浏览器解密。
保持安全并输入(或复制/粘贴)私钥比单纯输入信用卡号更难。我认为这是你计划中一个相当明显的错误。请注意,安全协议很难,因为您不是安全专家"我强烈反对你试图考虑一下。
答案 1 :(得分:1)
有趣的是,你非常关心服务器看到的未加密数据,但是你愿意为你所决定的每个8美元/小时的猴子提供所有重要的解密密钥(或更具体的是复制和粘贴)整天不对称的键。
你打算在哪里储存这些钥匙,以便你的猴子可以到他们那里进行复制/粘贴?他们需要明文。
密钥管理毫无疑问是密码学中最难做的事情,而您正在讨论违反最佳实践协议的方法,即将密钥提供给不需要密钥的用户以及不安全地存储密钥。
SSL已经负责在数据离开客户端之前对其进行加密,然后,当它到达服务器时,您需要在存储之前再次对其进行加密。如果你真的想要,你可以使用非对称加密。我不担心在客户端尝试这样做。
我认为你正在努力使事情变得比他们需要的更难,并且对你的努力没有任何好处。