by 编程随想
浏览器本身导致的隐私问题
◇浏览器自身如何泄漏隐私?
先来谈浏览器自身是如何泄漏隐私的。这里强调的是”自身“,也就是说,跟浏览器外围的插件、扩展、cookie 等等无关,是浏览器软件自己把用户隐私给泄漏了。
很多国产的浏览器(至少包括:奇虎的”360浏览器”和腾讯的”QQ浏览器”)自身都存在严重的隐私问题。它们会收集用户的上网行为(比如:你在啥时候访问了啥网站),并且把你的上网行为保存到它们自家的服务器上。
一旦你用了有危险的浏览器,即使你在其它方面的防范做得再好,也是白搭。因为浏览器是上网冲浪的关键,浏览器出问题会导致你的隐私防御全线崩溃。
稍微跑题,说一下当年轰动武林的”3Q大战”。这件事说白了就是”狗咬狗 一嘴毛”,奇虎和腾讯都不是好东西,它俩不但充当朝廷的走狗,而且不择手段收集用户隐私。但是”3Q大战”的积极意义在于:两只癞皮狗互咬,把两边的家丑都曝光了。咱们普通网民作为旁观者,可以更清楚这些国产软件厂商的嘴脸。
再强调一下,有问题的国产浏览器,绝不止这两家。
◇应该如何选择?
刚才说了,国产浏览器猫腻很多。那么国外的浏览器,是不是就很安全捏?也未必。
原则1:开源 好过 闭源
(开源软件,即使有后门或流氓行为,也比较容易被发现)
原则2:非营利组织 好过 商业公司
(对于大型商业公司,收集用户信息会带来商业利益,所以商业公司有收集隐私的热情)
国外的浏览器,名气大且使用广泛的,主要有三款:Firefox、Chrome(Chromium)、IE。其中,Firefox 和 Chromium 是开源的,Chrome 和 IE 是闭源的。
很多人都误以为 Chrome 是开源的。虽然 Chrome 是基于开源的 Chromium,但是 Chrome 包含闭源的模块。所以严格来讲,Chrome 只能算部分开源。
根据原则1(开源角度):这几款浏览器的隐私安全性如下
Firefox = Chromium > Chrome > IE
再来看这几个浏览器的后台。IE 的 后台是微软公司、Chrome/Chromium 的后台是 Google 公司,Firefox 的后台是 Mozilla 组织。
根据原则2(商业角度):这几款浏览器的隐私安全性如下
Firefox > Chromium = Chrome = IE
◇Firefox VS Chrome 的补充说明
本小节介绍的是两款浏览器在”隐私保护”方面的对比;
再从商业模式的角度分析一下,为啥 Chrome/Chromium 的隐私保护不如 Firefox。
稍微熟悉 Google 的同学应该知道,Google 的大部分收入(90% 以上)是依靠”在线广告”。要想做好”广告”这门生意,其中一个关键点是:做到”精准投放广告”。而要实现精准投放,自然要收集用户信息(只有当 Google 对某网民足够了解,才能知道该网民会对哪些广告感兴趣)。而这就涉及到隐私问题。
反之,Mozilla 是非营利组织,不像 Google 那么依赖广告客户。所以 Firefox 就可以放开手脚去防范隐私泄露。
举例——浏览器对 Do Not Track 的支持
Do Not Track(简称 DNT,中文叫”请勿追踪”),维基百科的词条在”这里“。是一项浏览器功能,用来告知网站,用户不希望被追踪。
以下是各个知名浏览器加入 DNT 功能的时间表。
Firefox 2011年1月(第一个支持 DNT 的浏览器)
IE 2011年3月
Safari 2011年4月
Opera 2012年2月
Chrome 2012年11月(在主流浏览器中,是最晚支持 DNT 的,比 Firefox 晚了将近2年)
用 Chrome 的同学都知道,Chrome 是频繁发布新版本的,而且 Google 的研发力量是很强大滴。那么,为啥 Chrome 拖了这么长时间才支持 DNT 功能,显然不是因为技术原因,而是因为商业原因——Google 不愿意得罪广告客户。
◇小结
综上所述,在隐私保护方面,Firefox 是首选。
★”浏览历史”导致的隐私问题
本章节提及的”浏览历史”,至少包括如下几个方面的信息:
网址的历史
下载的历史
页面缓存
各种Cookies
◇”浏览历史”如何泄漏隐私?
举例:
假如你是一个年轻男网民,喜欢访问成人色情网站。然后捏,你又不注意清除浏览器的历史缓存。或许有一天,你的女朋友或者你的父母无意中打开你的浏览器,就会发现你的癖好。那你就尴尬了。
◇”隐私浏览模式”的用处
如今,几款主流的浏览器(Firefox、Chrome、IE)都已经支持”隐私浏览”功能。
你在”隐私浏览模式”下进行的上网行为,浏览器不会保存相应的”浏览历史”。当你退出”隐私浏览模式”或者关闭了浏览器之后,这些信息就不见了。
◇”隐私浏览模式”的局限性
但是,”隐私浏览模式”并不是足够安全的。如果你的浏览器安装了插件(比如 Flash),可能会导致”隐私模式”部分失效。
因为浏览器插件不受浏览器的控制。所以,即使在”隐私模式”下,某些插件还是可能会留下上网痕迹。
◇更彻底地解决浏览历史——使用虚拟机
假如你对”浏览历史”导致的问题很在意,可以考虑使用操作系统虚拟机来防范。
如果你不熟悉操作系统虚拟机,请先看《扫盲操作系统虚拟机》系列博文(可能需要翻墙)。
使用虚拟机,大致的操作步骤如下:
1. 先安装虚拟机软件,然后装一个虚拟操作系统(Guest OS)
2. 在 Guest OS 中安装好上网相关的软件(比如浏览器、插件、等)
3. 在没有访问任何网站之前,先做一个 Guest OS 的快照(这是一个干净的快照)
4. 在这个 Guest OS 里面上网
5. 上网结束后,回退到这个干净的快照
通过上述步骤,就可以避免在电脑中留下任何上网的痕迹。由于虚拟机是操作系统级别的,即使是浏览器插件,也不会留下痕迹。
★浏览器插件导致的隐私问题
◇”插件”和”扩展”的区别
先来扫盲一下插件和扩展的区别(连很多 IT 技术人员都把这两者混为一谈)。所谓的插件,洋文叫”plugin”;所谓的扩展,洋文叫”extension”。两者的区别如下:
插件
在功能上,插件通常是用来渲染页面里的 <object> 或 <embed> 标签;不会增加浏览器自身的功能。
插件通常实现比较底层的功能,一般以操作系统的本地代码(也叫”原生代码”)编写,可以调用操作系统的 API。形式上,插件以动态库(Windows 上就是 DLL 文件)的方式,加载到浏览器的进程内。由于使用本地代码编写,插件通常依赖于特定的操作系统(不同系统的插件不能混用)。
举例:
Flash 插件
媒体播放器插件
PDF 插件
Java 插件
各种网银控件
扩展
扩展,顾名思义,是用来扩展浏览器自身的功能。所以,扩展可以调用浏览器自身的 API,但是扩展通常不能调用操作系统的 API。
一般来说,扩展是跟操作系统无关的。比如 Firefox 的大部分扩展,既可以用于 Windows 平台的 Firefox,也可以用于 Linux 和 Mac OS X 的 Firefox。
◇插件的隐私问题
刚才说了,插件是用本地代码编写的,调用的是操作系统的 API。所以,插件的行为浏览器是无法控制的。相对而言,扩展调用的是浏览器的 API,所以扩展的行为,浏览器是比较可控的。
下面,俺就拿 Flash 的 cookie 来举例,让大伙儿看看插件导致的隐私问题。
举例——Flash 的 cookie
平时大伙儿提到 cookie,说的都是浏览器的 HTTP Cookies;但是除了浏览器,插件也可能有自己的 cookie——比如最流行的插件 Flash 就有自己的 cookie 功能。
Flash Cookies,专业术语叫做”Local shared object“。网页里的 Flash 文件可以利用这个功能,在你的操作系统中保存一些信息。所以,Flash Cookies 跟”HTTP Cookie”一样,都可能带来某些隐私问题。
从上述例子可以看出,插件也可以在操作系统中留下自己的一些痕迹(不妨称之为”插件的 Cookie”)。而且”插件的Cookies”比”HTTP Cookies”更讨厌的地方在于——它是独立于浏览器 cookie 的。这就导致如下两个隐私问题:
1. 当你在浏览器中清空 HTTP Cookies 的时候,插件的 cookie 不会受影响;
2. 浏览器的”隐私模式”会限制 HTTP Cookies 的永久保存,但是浏览器无法限制插件的 cookie(这就是俺刚才提到的”隐私浏览模式”局限性)
注:从 Flash 10.3 开始,Adobe 已经通过技术手段,解决了 Flash Cookie 与浏览器的整合问题。也就是说,浏览器在清除 HTTP Cookies 的同时,也可以清除 Flash Cookies 了。
但是,其它的插件可能依然存在上述问题。
◇如何防范插件留下的痕迹?
办法由两个:
办法1
最直接的办法就是:你的浏览器不要装任何插件。
办法2
如果你不得不装一些插件,那么还有一招——利用虚拟机的快照功能。这个方法刚刚讲过,就不再啰嗦了。
点击这里访问原文