我要做的是在我为计算机制作的应用程序和显然是Web服务器之间的Web请求中发送信息。
我希望这些信息能够加密以解决安全问题,这个软件可能是人们想破解的东西,我不希望他们看到客户端和服务器之间的交换是什么。
所以,我的问题是,在客户端加密数据,将其发送到服务器端,然后解密的最有效方法是什么。然后还与服务器加密和客户端解密相反。
编辑: 我只想要一种对客户端和服务器之间发送的数据进行有效加密的方法。一种加密客户端数据的安全方法,然后将其发送到服务器并对其进行解密。整个事情的描述非常糟糕。像fiddler这样的程序可以监视从C ++应用程序发送到服务器的请求,以及它返回的响应。全是纯文本。我只需要加密这些数据和响应,并且能够双方解密。
答案 0 :(得分:1)
您需要的工具是固定的TLS证书。请参阅该主题的OWASP简介。
固定证书的关键是您的HTTPS会话不会信任本地密钥库中的每个根。它只会信任有限数量的根,特别是您指定的根(并且理想地控制)。有了这个,就不可能简单地将流氓根证书注入本地密钥库以监控本地流量。
也就是说,如果您控制客户端运行的计算机,则规避固定证书并不是特别困难。但是,如果您控制运行客户端的计算机,则绕过任何简单机制并不是特别困难。用于绕过证书固定(即修改客户端)的技术将绕过每个客户端加密方案。
这在StackOverflow上定期讨论,并且已经存在多年了。以下是与其他几个相关的各种答案之一:
Secure https encryption for iPhone app to webpage
关键的教训是"防裂"不是"安全。"它是通过混淆和其他反逆向工程技术实现的。这不是一个可赢的问题。当攻击者击败你的防御时,它需要持续改进。您应该期望不断地为此分配非平凡的资源,或者您应该应用适度的资源(如固定)并接受它们不会非常有效但管理成本不高。
(我过去常常这样做是十几个全职人员组成的团队的一部分,他们致力于防止这类攻击。我们每年花费数百万美元解决这个问题,与世界各地的执法部门合作,并且部署了大量的自定义安全硬件。我们仍然受到殴打,不得不随着攻击的改进而调整我们的方法。这就是我所说的非平凡资源。")
答案 1 :(得分:0)
使用SSL加密客户端和服务器之间的流量。