据 Forcepoint 的安全研究员 John Bergbom 称,即将增加的 WebAssembly 标准可能会使浏览器级别的一些针对 Meltdown 和 Specter 的修复程序无用。 WebAssembly(WA 或 WASM)目前支持所有主流浏览器,如 Chrome,Edge,Firefox 和 Safari。
该技术是一种二进制语言,浏览器将转换成机器码并直接在 CPU 上运行。浏览器制造商创建 WebAssembly 以提高 JavaScript 代码的交付速度和性能,他们还为开发人员创建了一种移植方法,可将来自其他高级语言( 如C,C++ 和其他)的代码移植到 WASM ,然后在浏览器中运行它。
总而言之,WebAssembly 标准在网络开发社区中被视为成功的标准,并且一直在为其提供赞誉。

但是像所有的技术一样,它也带来了一些无法预料的小麻烦和滥用案例。 对于初学者来说,浏览器内的加密货币矿工(cryptojacking 脚本)的兴起可以追溯到主要浏览器中添加 WebAssembly,因为所有浏览器中的矿工都运行在 WebAssembly 之上,而不是纯粹的 JavaScript。
现在,Bergbom 认为,WebAssembly 还会给 Web 用户带来另一个小麻烦:
一旦 WA 获得对共享内存线程的支持(这已经在 WA 路线图上),可以创建非常准确的[JavaScript]定时器,这可能会导致浏览器缓解某些 CPU 端通道攻击失效。
在这份声明中,Bergbom 更准确地提到了“定时攻击”,这是一类旁路攻击。定时攻击是一类密码攻击,第三方观察者可以通过记录和分析执行加密算法所花费的时间来推断加密数据的内容。
最近披露的 Meltdown 和 Spectre CPU 漏洞以及它们的许多变化都是其核心的定时攻击。他们依赖攻击者测量精确时间间隔的能力,这是执行侧向通道攻击所需的参数,并从加密的数据块中恢复足够的信息以确定其余部分。
编译自:BleepingComputer
引用来自“乌龟壳”的评论
CPU乱序执行分支预测那些技术的技术债务终于显现出来了未来期望通过编程语言的进化,如rust让程序很方便地写出大量并行的模式,这样就不需要在处理器端做太多线性执行的优化了,gpu和cpu就能合一。
引用来自“dosmlp”的评论
😱能优化为啥不优化引用来自“乌龟壳”的评论
比如一个 for 循环有一百万次,每一次的计算相对来说都是独立的,编程语言就能指导用户写出需要一百万个线程的程序(可能通过某个语法,而不是让用户 new Thread 一百万次)。当有一百万个线程的时候,CPU还做乱序执行分支预测干嘛,直接像GPU一样堆核心靠量大去处理就好了。乱序执行分支预测,就是程序并行度不够,CPU给他做的优化。GPU也有一定的乱序执行,但没那么强。
引用来自“乌龟壳”的评论
CPU乱序执行分支预测那些技术的技术债务终于显现出来了未来期望通过编程语言的进化,如rust让程序很方便地写出大量并行的模式,这样就不需要在处理器端做太多线性执行的优化了,gpu和cpu就能合一。
引用来自“dosmlp”的评论
😱能优化为啥不优化当有一百万个线程的时候,CPU还做乱序执行分支预测干嘛,直接像GPU一样堆核心靠量大去处理就好了。乱序执行分支预测,就是程序并行度不够,CPU给他做的优化。GPU也有一定的乱序执行,但没那么强。
引用来自“乌龟壳”的评论
CPU乱序执行分支预测那些技术的技术债务终于显现出来了未来期望通过编程语言的进化,如rust让程序很方便地写出大量并行的模式,这样就不需要在处理器端做太多线性执行的优化了,gpu和cpu就能合一。
未来期望通过编程语言的进化,如rust让程序很方便地写出大量并行的模式,这样就不需要在处理器端做太多线性执行的优化了,gpu和cpu就能合一。
引用来自“韦小仇”的评论
“WebAssembly(WA 或 WASM)是去年发布的一项新技术”。WebAssembly不是2015年发布的吗?