写点什么

微软的浏览器操作系统:Gazelle

  • 2009-07-14
  • 本文字数:1236 字

    阅读完需:约 4 分钟

Google 并不是唯一试图创建基于浏览器的安全操作系统的厂商。今年二月,来自微软的研究人员就透漏了 Gazelle 的细节。Gazelle 被称为“使用多用户操作系统技术构造的安全浏览器。Gazelle 的内核可以隔离不同来源的网页代码,并管理所有系统资源”。

与 Chrome OS 构建在 Linux 上一样,Gazelle 并不是一个真正的操作系统。它是构建在操作系统级别的一个服务层,以便扩展浏览器的安全模型。Principal 由协议、域名以及端口三部分组成,在进程级别不同的组合之间互相隔离,它是整个系统的关键部分。

为了防止跨网站脚本攻击等问题,页面只能直接渲染同一来源(Principal)的内容,其他来源的内容将根据来源被放到单独的进程中进行渲染,不同来源 的内容通过“浏览器内核”进行通信。浏览器内核实际上是一个受限的操作系统进程,用 C#代码写成,它负责协调进程间的通信。浏览器内核与进程通过在命名管 道(named pipes)中发送 XML 消息进行通信。每个进程的渲染结果,将被浏览器内核组合在一起,成为最终的显示结果。

Gazelle 拥有针对不同浏览器问题的特性,如插件、混合 http/https,以及递归整合攻击(recursive mashup attack)。

插件:Gazelle 在使用插件的内容上强制使用同源策略(same-origin policy),也就是说插件中的内容以它自己的来源运行(而不是放置它的页面的来源)。由于插件是浏览器漏洞增加的主要原因,因此在浏览器内核中对插件 强制执行策略非常重要。现有的插件需要改写(移植或重写)以调用浏览器内核来实现功能。Alexa 前 100 的网站中有 34 个网站只使用了 Flash,而没 有使用任何其它插件。这显示仅修改 Flash 就可以解决很大一部分插件的兼容性问题。

包含 HTTP 脚本和 CSS 的 HTTPS:在 Gazelle 中,使用 HTTPS 来源的页面不能包含任何使用 HTTP 的脚本和 CSS。其它类型的内容如图片和 插件,则会运行于页面来源的进程中。这在 Gazelle 中可以改变,但是为了防止 HTTPS 包含 HTTP 脚本和 CSS,Gazelle 强制执行更严格的安 全策略以对抗网络攻击。由于 Alexa 前 100 网站并不使用 SSL,我们选择了另一些使用 SSL 的网站:amazon.com、 mail.google.com、mail.microsoft.com、blogger.com 以及一些其它常见的银行网站。这些网站都没有违反我们的 策略。

限制框架导航:父框架(frame)只能访问它的子框架,而不能访问子框架的子框架或其它来源(principal)的框架。在 Gazalle 中那些访问 非子框架的代码将无法运行。通过限制导航范围,Gazelle 可以防止在正常网站中访问到恶意网页。Barth 等人分析了这一类攻击并称之为“递归整合攻击”。我们无法用我们的测试框架来自动测试是否有网站违反了这一策略。

这种隔离的代价颇为昂贵,对于 mytime.com 这种包含跨来源框架的复杂网页来说,渲染时间可能会翻倍。不过这些影响可以通过改进浏览器内核的组合显示内容部分来降到最低。

你可以在微软研究院的网站上查看论文全文,比较一下与现有的浏览器有什么不同,比如Google Chrome。

查看英文原文: Microsoft’s Web Browser-Based OS: Gazelle

2009-07-14 04:004079
用户头像

发布了 63 篇内容, 共 27.5 次阅读, 收获喜欢 1 次。

关注

评论

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

程序员写作模版献给懵逼的你

jerry

自定义 View:绘制垂直正弦函数

Changing Lin

12月日更

JVM类加载机制

Ayue、

JVM 技术专题合集

Arthas阿里开源的Java诊断工具

Ayue、

JVM 技术专题合集

眼耳鼻舌身意,严肃地聊一聊元宇宙的“技术拼图”

脑极体

浅谈Linux线程模型

lecury

Linux 线程 经验分享、

操作系统:Linux下的防火墙

程序员架构进阶

Linux 操作系统 防火墙 Firewalld 12月日更

音视频实战(1)- 音频质量关键指标之QoE

liuzhen007

签约计划第二季

JVM 性能诊断工具

Ayue、

JVM 技术专题合集

音视频学习合集

Fenngton

内容合集 签约计划第二季

乔布斯家app下架上架杂记

张老蔫

28天写作

浅谈Linux内存管理

lecury

Linux 内存管理 经验分享、

浅谈Linux Cgroups机制

lecury

Linux Cgroups 经验分享、

浅谈Linux进程模型

lecury

Linux 进程 经验

MySQL探秘(四):InnoDB的磁盘文件及落盘机制

程序员历小冰

MySQL 文件读写 28天写作 12月日更

【Redis集群原理专题】分析一下相关的Redis集群模式下的脑裂问题!

码界西柚

redis 分布式系统脑裂 集群 脑裂 12月日更

JVM性能调优之内存优化与GC优化实战

Ayue、

JVM jvm调优 技术专题合集

给弟弟的信第2封|关于时间管理这件事

大菠萝

28天写作

25个带有酷炫动画的创意404错误页面,快给你的网站换上吧(持续更新)

海拥(haiyong.site)

大前端 28天写作 404 签约计划第二季 12月日更

全方位认识 JVM

Ayue、

内容合集 技术专题合集

流处理引擎Flink:编程 - 程序结构

正向成长

Linux内核技术分享

lecury

内容合集 签约计划第二季

升级【爸爸程序员】了?用Python给自己的宝贝下载200+绘本动画吧!

梦想橡皮擦

12月日更

如何在 ASP.NET Core 中重写 URL

喵叔

28天写作 12月日更

了解 JVM 的方法调用

Ayue、

JVM 技术专题合集

纯css实现117个Loading效果(下)

德育处主任

css3 大前端 纯CSS css特效

【LeetCode】赎金信Java题解

Albert

算法 LeetCode 12月日更

域控安全之域渗透

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

浅谈Linux虚拟文件系统

lecury

Linux 文件系统 经验分享、

面试官说:你来设计一个短链接生成系统吧

秦怀杂货店

Java 系统架构 系统 短链接

「架构实战营」模块一作业

Vincent

「架构实战营」

微软的浏览器操作系统:Gazelle_.NET_Jonathan Allen_InfoQ精选文章