我刚刚在网上看到了ASP.NET中新发现的安全漏洞.你可以在这里阅读详细信息.
问题在于ASP.NET实现AES加密算法的方式,以保护这些应用程序生成的cookie的完整性,以便在用户会话期间存储信息.
这有点模糊,但这里有一个更令人恐惧的部分:
攻击的第一阶段需要几千个请求,但一旦成功并且攻击者获得了密钥,它就完全是隐秘的.所需的加密知识是非常基本的.
总而言之,我对安全性/密码学不够熟悉,但要知道这是否真的那么严重.
那么,是否所有ASP.NET开发人员都担心这种技术可以在几秒钟内拥有任何ASP.NET网站或者什么?
这个问题如何影响普通的ASP.NET开发人员?它会影响我们吗?在现实生活中,这个漏洞的后果是什么?最后:是否有一些可以防止此漏洞的解决方法?
谢谢你的回答!
所以,这基本上是一种"填充oracle"类型的攻击.@Sri提供了一个很好的解释,说明这种类型的攻击是什么意思.这是一个关于这个问题的令人震惊的视频!
关于此漏洞的严重性:是的,它确实很严重.它允许攻击者了解应用程序的机器密钥.因此,他可以做一些非常不需要的事情.
以下是一些我没有解决问题的良好实践,但有助于提高Web应用程序的一般安全性.
现在,让我们关注这个问题.
解决方案
Application_Error
或者Error.aspx
放一些随机延迟的代码.(生成一个随机数,并使用Thread.Sleep长时间休眠.)这将使攻击者无法确定您的服务器上究竟发生了什么.其他一些想法
感谢所有回答我问题的人.我不仅了解了这个问题,还了解了网络安全性.我将@ Mikael的答案标记为已被接受,但其他答案也非常有用.
我需要通过RSA解密消息,以便通过不安全的通道发送消息,但我害怕Padding Oracle Attack.因此我已经问过以下问题:
像第一个问题中建议的那样,
但是,由于您使用的是高级加密库,因此您不必担心这一点.该图书馆的作者应该照顾它.
我不应该考虑.据我所知,RSA执行的PKCS#1 v1.5
是脆弱的Padding Oracale Attack
,其中原和不(假设它的正确实施)
因此,我想知道javax.crypt.Cipher
Java 7 使用哪种填充实现
我知道关于oracle padding漏洞利用的问题已经有一些问题,但没有一个解释它是如何下载web.config的.我运行了几个ASP .NET应用程序,我已经使用Microsoft建议的缓解因素进行了测试,但我仍然害怕人们将能够获得web.config.
有人可以解释他们是如何做到这一点,甚至提供一个链接到我可以用来测试我的网站的工具.我发现这部分攻击的官方解释确实缺乏.
公众中显示的攻击依赖于ASP.NET中的一项功能,该功能允许下载文件(通常是javascript和css),并使用作为请求的一部分发送的密钥进行保护.不幸的是,如果你能够伪造一个密钥,你可以使用这个功能下载一个应用程序的web.config文件(但不是应用程序之外的文件).