代码之家  ›  专栏  ›  技术社区  ›  Chris Marisic

甲骨文填充攻击是如何进行的ASP.NET固定的?

  •  10
  • Chris Marisic  · 技术社区  · 15 年前

    out of band release to fix the security flaw 在ASP.NET昨天。

    微软用了什么方法来终结这个载体的生存能力?

    3 回复  |  直到 11 年前
        1
  •  14
  •   Aaron D    15 年前

    一个伟大的变化总结来自 http://musingmarc.blogspot.com/2010/09/ms10-070-post-mortem-analysis-of-patch.html

    • 不要泄漏异常信息-这可以防止漏洞利用看到损坏的内容。
    • 不要在填充检查上短路(填充正确与填充损坏花费相同的时间)-这可以防止漏洞利用看到错误填充的时间差异。
    • 不要太挑剔捕捉异常IHttpHandler.ProcessRequest-这可以防止利用漏洞攻击发现您捕获了一种异常(加密异常),而不是所有异常。
    • 从基于哈希的初始化向量切换到随机IVs—这可以防止利用数据和哈希之间的关系更快地解密。
    • 允许向后兼容-如果这破坏了某些东西,允许部分恢复新行为。
    • 在进行代码评审时,请进行更改,以清楚地表明您已经考虑了新的选项。
        2
  •  3
  •   eglasius    15 年前

    主要内容: . 这可以防止像攻击那样篡改值,从而获得关于有效填充和无效填充的信息,也就是说,因为签名在所有这些情况下都不匹配。

    webresource and scriptresource 允许文件检索不应该发生。单纯的加密并不是为了防篡改。换句话说,这并不是对高级场景的疏忽,比如padding oracle攻击的其余部分(它仍然依赖于相同的事实,将修改后的加密数据发送回应用程序,服务器上没有防篡改保护)。

        3
  •  0
  •   rook    15 年前

    该漏洞与CBC填充引入的缺陷有关。攻击背后的全部理论可以找到 here . 但是你必须先读一遍 block cipher modes of operation .