当前位置:主页>科 研>学术交流>

如何保护隐私之如何隔离浏览器

  看过《如何保护隐私之关于软件和服务的选择》,了解了《如何保护隐私之浏览器如何导致隐私泄漏》以及《浏览器Cookie的防范方法》之后,面对浏览器存在的安全隐患,我们该如何隔离浏览器呢?

  ★如何隔离浏览器?

  ◇为啥要隔离浏览器?

  举例1:

  你经常使用 Gmail,并且依赖于 Gmail 的自动登录功能。这种情况下,你就不能禁用 google.com域名对应的 cookie(禁用了就无法自动登录)。但是,如果你不禁用 google.com 域名对应的 cookie,当你使用 Google 的搜索功能时,Google 会知道你的搜索偏好(这涉及到隐私)。

  举例2:

  虽然浏览器插件会导致隐私问题(本系列前面的博文有提到),但有些浏览器插件是你不得不安装的。比如你想看在线视频,不得不装 Flash 插件;比如你使用网银,不得不安装某些登录的控件。

  如果学会了"浏览器隔离"的招数,就可以搞定上述难题,鱼和熊掌兼得。下面,俺分别介绍几种不同的隔离方法。

  ◇多浏览器

  这是最简单的隔离方法——使用不同类型的浏览器(比如同时 Firefox 和 Chrome)。

  对于刚才的第一个例子。你可以在 "A浏览器" 里面登录 Gmail,通过设置允许 "A浏览器" 存储google.com 域名的 cookie;然后你用 "B浏览器" 进行 Google 搜索。

  只要你确保一点:从来不在 "B浏览器" 中登录 Gmail,那么 "B浏览器" 的 cookie 中就不会有你的用户标识。所以你用 "B浏览器" 进行 Google 搜索的时候,Google 不知道你是谁。

  ◇多实例

  但是有些用户就喜欢某款浏览器,不喜欢混用。那就可以考虑 "多实例" 的招数。目前的三大浏览器中,Firefox 和 Chrome 支持多实例,IE 不支持。啥是多实例捏?稍微解释一下。

  所谓的浏览器多实例,洋文称之为 "Multiple Profiles"。

  不论是 Firefox 还是 Chrome,默认安装的时候,只有一个实例(Profile)。和浏览器相关的各种信息,包括:插件、扩展、外观(皮肤)、页面缓存、cookie、等等,都存储在这个实例中。

  反之,如果使用多实例,每个实例都具有独立的插件、独立的扩展、独立的外观(皮肤)、独立的页面缓存、独立的cookie、等等。不同实例之间是相对隔离的,不会互相影响。

  对于 Chrome,再特别提醒一下:

  Chrome 同时支持 "Multiple Profiles" 和 "Multiple Accounts"。但别把这两者搞混了。即使你配置了多个Accounts,依然在同一个实例里(有兴趣的同学可以看chromium 官网的相关介绍)

  关于多实例的配置,一年前写《如何防止黑客入侵》系列的时候,已经介绍过了(请翻墙看"这里"),今天就不再浪费口水了。

  ◇多用户

  万一你喜欢的浏览器是 IE,而 IE 又不支持"多实例",咋办捏?招数还是有滴,那就是"多用户"。

  你可以创建多个操作系统用户,然后在不同的操作系统用户中分别运行同一款浏览器。所有主流的操作系统都会对系统用户的资源进行隔离。所以,你在不同的操作系统用户中运行的浏览器,也是互相隔离的(包括 插件、扩展、cookie、缓存、都不会互相影响)。

  在多用户方式下运行浏览器,你可以使用"快速用户切换"的功能,在不同用户的桌面之间切换。但是有一个缺点:你一次只能看到某一个用户运行的软件,其它用户运行的软件看不到。其实有一个小技巧,可以在同一个桌面运行多个用户的软件。具体请看这篇博文中的"多用户浏览器共享同一个桌面的技巧"。

  ◇多虚拟机

  大部分场合用上述三招基本就能搞定了。但有捏,有时你会碰到一些比较变态的网银控件,一定要用系统管理员才能安装,有的控件甚至做到了"驱动级"。对于这种变态的控件,即使用"多用户"的隔离方案,也行不通了。只能使用"多虚拟机"来隔离。

  "多虚拟机"的方案,说起来挺简单——就是安装多个操作系统虚拟机,把浏览器安装到虚拟机中。利用虚拟机来进行隔离,每个虚拟机就如同一台单独的电脑,这种隔离性,比前面三个方案更加彻底。如果你不熟悉操作系统虚拟机,请先看《扫盲操作系统虚拟机》系列博文。

  ★DNT(Do Not Track)

  说完了浏览器的隔离,再来说几个杂项。首先说说 DNT 这玩意儿。

  ◇DNT 是啥?

  DNT 是洋文 Do Not Track 的缩写,中文译作"请勿追踪"。它最早是由 Mozilla 的一个工程师在 2009 发明的,如今已经成为 W3C 的标准。截至 2012年底,所有知名的浏览器都已支持 DNT 标准。

  ◇DNT 的原理

  这玩意儿说白了没啥技术含量,其原理大致如下:

  如果你在浏览器中启用了 DNT,那么浏览器每次访问网站的时候,会在 HTTP 请求的 header 部分加入一个 DNT 的标识。网站的服务器接收到这个 HTTP 请求,看到此标识,就知道该用户不希望被追踪。

  如果这个网站遵循 W3C 的规范——当它看到这个 DNT 标识,就不应该使用 cookie 之类的手段来追踪用户的行为。反之,如果这个网站不遵循 DNT 的规范,它就会直接无视 HTTP 请求中的 DNT 标识。

  ◇DNT 有用吗?

  通过上述介绍你应该可以看出:DNT 技术并不是一项很保险的防范措施。DNT 要起作用需要靠网站方面自觉配合。如果你访问的网站比较流氓,不愿意配合这个规范,那你的 DNT 设置就形同虚设。

  所以,DNT 是一个有点鸡肋的功能,不能全指望它,但"启用"比"不启用"要好——毕竟那些正规的网站(比如 Twitter)还是会遵循 DNT 规范的。

  ★User Agent

  ◇什么是 UserAgent?

  浏览器方面还有一个涉及到隐私的因素,而且不太为人所知,那就是 User Agent。

  浏览器的 User Agent 是用来标识客户端的信息(包括 浏览器的类型和版本、操作系统类型和版本、等等)。浏览器向网站发起 HTTP 请求时,会在 HTTP header 中加入 User Agent 信息。

  ◇User Agent 有啥用?

  因为 User Agent 标识了浏览器客户端的信息,网站拿到这些信息之后,就可以针对客户端的不同,发送针对性的网页。比方说,如果客户端是移动设备(屏幕较小),就发送针对小尺寸屏幕的网页。

  从这里的介绍可以看出,User Agent 本身是有用的。

  ◇User Agent 有啥隐私问题?

  但是,有些浏览器的 User Agent 写得太详细了。这就导致:很多额外的客户端信息也通过 User Agent 提交到 Web 服务端。网站拿到这么详细的信息,就可以知道你操作系统和浏览器的很多细节。另外,User Agent 越详细,"独特性"就越明显。那么网站就可以利用 User Agent,大致猜测某些页面访问是否来自同一个人。

  放几个比较详细的 User Agent 给大伙儿参观一下:

  (某个 IE)

  Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 4.0; Tablet PC 2.0; InfoPath.3; .NET4.0C; .NET4.0E)

  (某个 Opera)

  Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01

  (某个腾讯浏览器)

  Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; QQPinyin 686; QQDownload 661; GTB6.6; TencentTraveler 4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)

  想知道自己的浏览器,User Agent 是啥样的吗?打开 http://www.useragentstring.com/ 就可以看到了。

  ◇要不要修改 User Agent?

  对于大部分网友而言,如果对隐私方面的要求不高,没必要修改 User Agent。因为 User Agent 虽然会泄漏某些信息,但是泄漏的信息量比较有限。所以,User Agent 相对于 cookie 而言,隐私问题不是很严重。

  但如果你对隐私的要求很高,可以考虑修改自己浏览的默认 User Agent,伪造一个假的。

  ◇如何修改 User Agent?

  要想避免 User Agent 泄漏隐私,简单的办法就是修改浏览器默认的 User Agent

  俺简单说一下三大浏览器如何修改默认的 User Agent

  Firefox

  在地址栏输入 about:config 敲回车,打开首选项界面

  点右键,新建一个字符串类型的"首选项",该首选项的名称必须是 general.useragent.override ,该首选项的值就是新的 User Agent

  Chrome

  在 Chrome 的启动参数中加上 --user-agent="XXX"

  XXX 就是新的 User Agent。(可以在快捷方式中追加命令行的启动参数)

  IE

  用 regedit 打开注册表,编辑如下键值

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet SettingsUser Agent

  输入新的 User Agent

  ◇User Agent 修改成啥样?

  用上述方式,可以伪造你浏览器的 User Agent。那么,伪装的 User Agent 该如何写捏?下面这3个链接包含了三大浏览器常见的 User Agent,供大伙儿参考。

  Firefox 的 User Agent、Chrome 的 User Agent、IE 的 User Agent

  你可以把自己浏览器的 User Agent 伪装成另外的两种之一。

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部