进行双向请求数据加密的最佳方式

时间:2015-01-24 07:27:55

标签: c# encryption asp.net-web-api

我希望加密请求内容阻止通过WebAPI请求发送原始数据,因此我必须实现两路加密。

哪种加密算法有利于加密asp.net web api中的高请求率以及如何实现它?

2 个答案:

答案 0 :(得分:0)

一种简单的方法,即您不需要编码,就是使用HTTPS而不是HTTP。

答案 1 :(得分:0)

最好的'方式主要是意见问题,但我所采用的标准设计如下: 客户端(调用的东西)端获取带有私钥的客户端证书。 客户端获取服务器网站证书的公钥。 客户端获取服务器加密证书的公钥。

服务器(接收呼叫的东西)获取客户端证书公钥。 服务器获取网站证书的私钥和公钥(在IIS中绑定)。 服务器获取服务器加密证书的私钥。

在您的代码中,您在服务器上验证请求是否存在精确(指纹)和有效(您的逻辑或X509Certificate2验证,但要注意CRL / OCSP(如果您关心性能,那就是))。< / p>

在客户端上,您验证服务器网站证书(再次,指纹和验证)。

然后在客户端上,作为发送有效负载之前的最后一步,使用服务器加密证书的公钥将PKCS7封装成一条消息。 在服务器上,添加ActionFilterAttribute(更干净)或重构操作以接收字符串(更多程序),然后使用服务器加密证书的私钥来解包消息。 作为响应的最后一步,您使用客户端证书的公钥将PKCS7封装成一条消息。

如果你非常热衷,你也可以使用其他证书签署消息,但这确实是一种默默无闻。

这种方式无法访问TWO系统上的私钥,人们永远无法完全解密聊天。

相关问题