G.O.S.S.I.P 阅读推荐 2022-09-07

admin 2023年2月3日17:47:57评论39 views字数 1384阅读4分36秒阅读模式

在小编的印象中,来自汉堡的研究人员很少在安全领域发表论文,今天读到一篇汉堡大学的安全论文,特地推荐给大家。

G.O.S.S.I.P 阅读推荐 2022-09-07

在这篇名为Web Cryptography API: Prevalence and Possible Developer Mistakes的论文中,研究人员讨论了web开发人员可能面对的密码学误用,而核心围绕的则是W3C推荐的Web Cryptography API (https://www.w3.org/TR/2017/REC-WebCryptoAPI-20170126/)这套标准。

G.O.S.S.I.P 阅读推荐 2022-09-07

Web Cryptography API是一套JavaScript API,为web开发人员提供了密码学运算的支持。然而和其它语言、平台的密码学API类似,Web Cryptography API的使用同样容易产生密码学误用的安全问题。本文作者把密码学误用这个经典的主题扩展到了web开发领域,对Tranco列表的前300万URL进行了扫描,同时也在GitHub上对开发者使用Web Cryptography API的代码情况进行了分析:

G.O.S.S.I.P 阅读推荐 2022-09-07

分析结果显示,有17376个JS脚本使用了Web Cryptography API,总共涉及175195个不同的web应用,其中使用最多的是随机数生成这个API。

在Client-Server这样的程序运行模式下,密码学误用对安全的影响和传统的代码执行模式有点不太一样,主要的区别在于JavaScript代码运行在客户端浏览器上,这部分的知识主要是论文的第六章中介绍,还蛮有意思的:

G.O.S.S.I.P 阅读推荐 2022-09-07

作者讨论的第一类安全威胁来自浏览器对JavaScript代码的禁用——如果JS代码被禁用了,Web Cryptography API的功能自然也无法执行,那么本来依赖于此进行的密码学运算也没有相应执行,诸如数据保护等安全机制可能就此失效。

第二类安全威胁主要来自浏览器对于会话状态(session state)的管理一致性。在client-server会话中,双方很容易产生状态的不一致,例如用户端明明已经刷新了,服务器端由于网络问题却没有同步,这时候很多需要状态同步的密码学协议就会产生问题。除此之外,现代浏览器的多标签设计特别容易让用户在访问一个网站时打开一堆会话进程,不同的会话实例之间也会存在状态同步问题。

第三类安全威胁是在加密保护浏览器存储和传输的敏感数据时,不恰当的使用密码算法导致的。尽管大家可能会说,在传输过程中有TLS保护,在本地存储这边也有浏览器的沙盒隔离,但是我们也要考虑服务器侧和本地侧总会有一些恶意威胁,在这个时候,正确使用Web Cryptography API也是很重要的。

作者最后也讨论了如何去安全使用Web Cryptography API,并指出很多开发者文档中甚至都存在错误,比如Mozilla就在自家的开发文档中的一处AES-CTR加密示例代码上使用了全零填充的IV,这种误导性极强的文档肯定会让许多开发者不自知地写出不安全的代码,作者也主动去协助Mozilla改进了这个文档:

https://github.com/mdn/content/pull/6443


论文PDF: https://dl.acm.org/doi/abs/10.1145/3538969.3538977

G.O.S.S.I.P 阅读推荐 2022-09-07


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-09-07

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月3日17:47:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-09-07http://cn-sec.com/archives/1285217.html

发表评论

匿名网友 填写信息