如何保护隐私[2]:关于浏览器的基本防范(上)

2013-06-29 原文 #编程随想 的其它文章

如何保护隐私[2]:关于浏览器的基本防范(上)

本系列的 前一篇博文 ,俺介绍了选择“软件”和“服务”的一般性原则。
从这篇开始,俺会花3篇博文的口水来介绍一下浏览器的基本防范。因为在个人软件中,虽然有很多软件跟隐私关系密切,但“浏览器”的牵扯的面最广。


★浏览器本身导致的隐私问题


◇浏览器自身如何泄漏隐私?


先来谈浏览器【 自身 】是如何泄漏隐私的。这里强调的是【 自身 】,也就是说,跟浏览器外围的插件、扩展、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 优于 Chrome?


先声明,本小节介绍的是两款浏览器在“隐私保护”方面的对比;至于安全性(防范骇客入侵)方面的对比,请看俺的另一个系列《 如何防止黑客入侵 》。
俺博客的读者中,有相当数量的 Chrome 用户。估计很多人会为 Chrome/Chromium 打抱不平。所以,再从商业模式的角度分析一下,为啥 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月 在主流浏览器中,支持最晚!
比 Firefox 晚了将近2年
用 Chrome 的同学都知道,Chrome 是频繁发布新版本的,而且 Google 的研发力量是很强大滴。那么,为啥 Chrome 拖了这么长时间才支持 DNT 功能,显然不是因为技术原因,而是因为商业原因——Google 不愿意得罪广告客户。

◇小结


综上所述,在隐私保护方面,Firefox 是首选。
补充说明:在本文发布5年之后,俺又写了另一篇博文(如下),继续讨论 Firefox 与 Chrome/Chromium 的对比。
弃用 Chrome 改用 Firefox 的几点理由——关于 Chrome 69 隐私丑闻的随想


★“浏览历史”导致的隐私问题


本章节提及的“浏览历史”,至少包括如下几个方面的信息:
网址的历史
下载的历史
页面缓存
各种 Cookies

◇“浏览历史”如何泄漏隐私?


举例:
假如你是一个年轻男网民,喜欢访问成人色情网站。然后捏,你又不注意清除浏览器的历史缓存。或许有一天,你的女朋友或者你的父母无意中打开你的浏览器,就会发现你的癖好。那你就尴尬了。

◇“隐私浏览模式”的用处


如今,几款主流的浏览器(Firefox、Chrome、IE)都已经支持“隐私浏览”功能。
你在“隐私浏览模式”下进行的上网行为,浏览器【不会】保存相应的“浏览历史”。当你退出“隐私浏览模式”或者关闭了浏览器之后,这些信息就不见了。

◇“隐私浏览模式”的局限性


插件导致的问题
但是,“隐私浏览模式”并【不是】足够安全滴!如果你的浏览器安装了插件(比如 Flash),可能会导致“隐私模式”【部分失效】。
因为浏览器插件不受浏览器的控制。所以,即使在“隐私模式”下,某些插件还是可能会留下上网痕迹。
本文的下一章节会介绍,插件如何导致“隐私模式”部分失效。

书签导致的问题
另一个局限性是:对于大部分浏览器(比如 Firefox、Chrome),隐私浏览期间对书签的修改,会被保留下来。可能有些同学没有意识到这里面的风险。俺举个例子。
举例:
你在隐私浏览模式下,访问某个敏感的网站。浏览网页的时候,你不下心点了 Ctrl + d 组合快捷键,然后浏览器就把当前页面加入书签。退出“隐私浏览模式”之后,这个书签还在哦。然后,假如你周围的人一不留神看了你的书签,就看到你曾经上过某敏感网站。

◇更彻底地解决浏览历史——使用虚拟机


假如你对“隐私浏览模式”的局限性,很在意。解决方法之一就是:使用操作系统虚拟机。
如果你不熟悉操作系统虚拟机,请先看俺写的《 扫盲操作系统虚拟机 》系列博文。
使用虚拟机,大致的操作步骤如下:
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。

举例:
俺推荐的 GreaseMonkey ,就属于扩展。

◇插件的隐私问题


刚才说了,插件是用本地代码编写的,调用的是操作系统的 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
如果你不得不装一些插件,那么还有一招——利用虚拟机的快照功能。这个方法刚刚讲过,就不再啰嗦了。

今天先聊到这里, 下一篇 接着说说浏览器的 HTTP Cookie。


回到本系列的目录
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者 编程随想 和本文原始地址:
https://program-think.blogspot.com/2013/06/privacy-protection-2.html

文章版权归原作者所有。
二维码分享本站