使用 SOAP 消息向后端服务器改进 .NET 富客户端应用程序的加密

Retrofitting encryption to .NET rich client application with SOAP messages to back end server

我们有一个旧的 .NET 富客户端应用程序使用 SSL 加密通过 SOAP 连接到后端服务。模拟攻击,我在本地机器上安装了 Burpsuite 并拦截流量,修改它并将其发送到端点(即使它是用 SSL 加密的)。保护应用程序免受此类漏洞影响的最佳方法(最快/最便宜!)是什么?

我认为您可以拦截未加密的流量,因为 Burp 执行 SSL MITM...如果有人可以在机器上使用 burp,这意味着他们拥有高权限...所以这不是应用程序安全的问题,而是系统安全的问题: 正在使用客户端的用户的低级别权限。

您可以在胖客户端中添加另一层加密,但您需要将加密密钥存储在客户端和服务器端的某个位置。将加密密钥存储在胖客户端中并不是那么安全,因为很容易反编译 .NET 代码或在调试环境中执行它来捕获密钥。还有一个混淆层。

您可以评估使用非对称加密:具有 public 和私钥的密钥对。您可以在胖客户端中使用 public 密钥加密秘密,只有服务器才能使用私钥解密它们。但这取决于您要保护的秘密。

由于非对称加密比对称加密慢,您可以加密一个会话对称密钥并共享给服务器。

但是如果有人可以反编译您的富客户端,他们就可以重写您的代码并为所欲为!