写点什么

微软因为安全原因拒绝采用 WebGL

  • 2011-06-26
  • 本文字数:1360 字

    阅读完需:约 4 分钟

最近微软引用了两份分析 WebGL 中安全弱点的报告,以此作为不支持 WebGL 的主要原因,尽管 Google、Mozilla、Opera 和 Apple 都支持这种 3D 图形标准。

HTML5 的 Canvas 元素让开发者可以使用不同的渲染引擎来编写图形程序, WebGL 就是其中的一种,它基于 Khronos 小组管理的 OpenGL 驱动、针对硬件加速 3D 渲染的规范创建,当前 Google Chrome、Mozilla Firefox、Opera 以及 Safari 的每日构建版本中都已经实现了该规范。 WebGL 1.0 是在 2011 年 2 月份发布的,但 Chrome 早在一年前就已经支持它了。

唯一一家没有使用 WebGL 的主要浏览器厂商就是微软。尽管我们可以使用 Google 的 ANGLE ,它会把对 WebGL 的 API 调用转换为等价的 DirectX 调用,但那并非是一种本地解决方案,如果 Windows 能够对 WebGL 提供本地支持,那会更加合适,但是 Windos 并未提供这种支持,而且,微软声称,他们不会采用WebGL ,因为它存在安全漏洞。

微软对WebGL 的安全缺陷的抱怨基于 Context Information Security 编写的两份报告: 《WebGL——浏览器开发的新维度(WebGL – A New Dimension for Browser Exploitation)》《WebGL——更多WebGL 安全缺陷(WebGL – More WebGL Security Flaws)》。这两份报告说明了在WebGL 中发现的一些安全问题,像易于受到DoS 攻击、跨域的图像窃取,以及Firefox 实现中的一个bug,那让攻击者可以窃取用户的数据。

Khronos 已经对 Context 的第一份报告作出响应,建议用户使用 GL_ARB_robustness 扩展来解决问题,“已经有一些 GPU 厂商部署了该扩展,而 Khronos 期望其他厂商也能够尽快部署,”以此作为针对 DoS 攻击的解决方案。关于跨域图像窃取,他们说到:

如果 WebGL 能够拥有合并跨域图像的能力,那么就会给开发者提供很大的方便,但是 WebGL 工作组正在考虑采用跨原始资源共享(Cross Origin Resource Sharing,CORS)或者其它机制,从而避免将来因此而受到谴责。

Context 不认为Khronos 的 GL_ARB_robustness 解决方案很合适,因为在发现 DoS 攻击的时候,它可能会重置 GPU。Context 同意 Khronos 关于图像窃取的解决方案,建议“如果需要管理跨域图片的机制,就需要在 WebGL 中使用 CORS”。 他们还提到,需要和 Mozilla 协作,修复在 Firefox 中发现的弱点,Mozilla 会乐于接受这种协作,并且他们还与 Google 也取得了联系。最终结论是,Context 建议用户禁用 WebGL,硬件厂商也不要继续为其提供支持。

在 Context 的报告之后,微软也列举了他们 对 WebGL 的主要关注点,决定“在当前表单”中不支持 WebGL,这种表述也为将来一旦想要改变主意的时候留了后路:

  • “让浏览器支持 WebGL 会直接把硬件功能暴露给 web,我们认为不应该允许这种方式。”
  • “让浏览器支持 WebGL,安全服务责任就会过于依赖第三方来保证 web 体验中的安全性。”
  • “系统在遭到 DoS 攻击时也会出现很多问题。”

我们还要提到一些相关的内容,微软对于 DirecX 投资过于巨大,在 1995 年就已经发布了第一个版本,所以他们很可能会继续支持这种技术。

然而,苹果最近宣布 iOS 5 会使用 WebGL 来进行 3D 渲染,但是据 Chris Marrin 所说,那只会限定在iAd 开发者。他们可能会扩展对WebGL 的支持,使得它成为iOS 中的公共API,从而有步骤地使用曾经有效的方法来引入新技术。

查看英文原文: Microsoft Rejects WebGL for Security Reasons

2011-06-26 06:032488
用户头像

发布了 340 篇内容, 共 122.5 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 & 部署

阿里巴巴云原生

阿里云 容器 云原生 ACK Distro sealer

Linux基础操作:如何在 Linux 中复制文件夹?

Ethereal

Linux系统数据备份不再头疼,Rdiff-backup来帮忙!

Ethereal

IntelliJ IDEA Ultimate 配置 PHP 拦截器

HoneyMoose

APK修改神器:插桩工具 DexInjector

字节跳动终端技术

android 字节跳动 编译 APK 火山引擎MARS

Linux 示例中的 apt 命令大全,建议收藏!

Ethereal

视频回顾|Pulsar Summit Asia 2021,案例、运维、生态干货不断

Apache Pulsar

开源 云原生 Apache Pulsar 社区 Pulsar Summit Asia 2021

外包学生管理系统架构设计文档

李大虾

#架构实战营 「架构实战营」

安全领域权限模型

alibeer

IntelliJ IDEA Ultimate 配置 PHP 拦截器中 Xdebug 扩展应该怎么填

HoneyMoose

Apache APISIX 集成 Google Cloud Logging

API7.ai 技术团队

Google 网关 APISIX Google Cloud

千万级学生管理系统考试试卷存储方案

唐尤华

架构实战营

Blinn-Phong反射模型

CRMEB

架构训练营 第三模块作业-外包学生管理系统详细架构设计文档

Geek_16d2b8

架构训练营5期

Netty入门 -- 什么是Netty?

Bug终结者

Java Netty 网络

剑指Offer——全方位、多角度掌握企业级开发框架J2EE

No Silver Bullet

jdk8 offer 2月月更 J2EE

Apache APISIX 集成 Kafka 实现高效率实时日志监控

API7.ai 技术团队

kafka 开源 日志 网关 Apache APISIX

从中心走向边缘——深度解析云原生边缘计算落地痛点

阿里巴巴云原生

阿里云 Kubernetes 云原生 边缘计算

Metasploit 如何使用Exploits(漏洞)

喀拉峻

网络安全

学生管理系统架构

Geek_f3e842

「架构实战营」

来看看字节跳动内部的数据血缘用例与设计

字节跳动数据平台

大数据 字节跳动 数据血缘

案例实践|Apache Pulsar 在移动云智能运维平台的实践

Apache Pulsar

开源 架构 云原生 Apache Pulsar Pulsar Summit Asia 2021

Go 语言快速入门指南:Go 模板介绍

宇宙之一粟

Go 语言 2月月更

Logo小变动,心境大不同,SVG矢量动画格式网站Logo图片制作与实践教程(Python3)

刘悦的技术博客

前端 动画 SVG Python3 svg图

如何在Linux解压缩(打开)Gz 文件?

Ethereal

学生管理系统详细架构设计文档

晨亮

「架构实战营」

uni-app 模拟机调试环境搭建

编程三昧

uni-app 前端 开发工具 2月月更

docker的DNS配置说明

Geek_f24c45

Docker Kubernetes

外包学生管理系统的架构文档

张逃逃

外包学生管理系统架构设计文档

风中奇缘

架构实战课 「架构实战营」

无人驾驶全家桶:机场“人货场”的改造之路

脑极体

微软因为安全原因拒绝采用WebGL_安全_Abel Avram_InfoQ精选文章