2014-03-19 55 views
1

是否有一种技术可以使用良好的加密标准通过SSL/HTTPS对ASP.NET Web应用上的所有请求进行加密,以便请确保当网络应用程序用于公共WiFi连接(咖啡馆,餐厅,酒店等)时,如果网络中有任何内容捕获原始数据包,则无法读取数据?加密ASP.NET请求和响应以避免“中间人”攻击

内置视图状态加密是否足够好?

<configuration> 
    <system.web> 
     <machineKey validation="3DES" /> 
    </system.web> 
</configuration> 
+0

请参阅[MSDN doc](http://msdn.microsoft.com/en-us/library/ms178199(v = vs.85).aspx)_encrypting_ viewstate数据(与通过散列的_tampering_保护相比较)。我认为你需要澄清你需要什么,因为“全部”和“公共”可能指向诸如VPN之类的解决方案...... – EdSF

+5

SSL不是已经为你做了吗? –

+0

就其本质而言,SSL已经加密所有数据以防止MitM攻击。因此,除了确保您的用户通过HTTPS访问您的网站之外,您不需要做任何额外的加密操作。我所做的是检查Global.asax文件中的所有传入请求,并将它们重定向到HTTPS站点。 – mason

回答

3

一般来说,你减轻人在这方面的中间人攻击的方式是,你运行该网站通过SSL,这将加密客户端(网页浏览器)和服务器之间的整个通道。这完全与<machineKey>元素无关,该元素允许服务器通过不可信的客户端对敏感数据进行往返。

但是,确定您试图缓解哪些特定攻击非常重要。例如,SSL可以帮助防止第三方窃听或篡改客户端与服务器之间的数据,但不会减轻对服务器的可用性攻击。

了解如何正确配置这一点也很重要:每个页面(包括登录页面)都必须通过SSL提供,以使保护生效。您不能拥有混合模式内容(SSL页面指向HTTP .js文件)。最好的做法是设置HSTS标头以为客户提供额外的安全性。

您应该知道这是如何整合到您的网站的完整安全故事。使用SSL是不够的。如果您的网站中存在XSS或XSRF(CSRF)漏洞,您的客户仍然容易受到恶意第三方的攻击。

这里有很多关于StackOverflow和其他论坛的很好的信息。 https://owasp.org/也是一个值得尊敬的资源。最后,如果您的网站足够重要/敏感,以至于您担心攻击者窃听您的流量,则应该考虑使用专业安全审核员。