★IT 机构的类型
本节所说的"IT 机构"指的是跟软件相关或者跟互联网相关的组织或机构(包括"商业公司"和"非营利组织")。
◇提供服务 VS 提供软件
根据这个维度,可以分为如下三类。
第1类
仅仅提供基于互联网的服务,不提供软件。
因为不提供软件,所以这类 IT 机构提供的服务往往是纯 Web 服务(比如专门提供恶意软件扫描的VirusTotal)。
第2类
仅仅提供应用软件,不提供基于互联网的服务(比如某些开发单机游戏的公司)
第3类
两者都提供(比如 Google、Apple、微软、等等)
按照收集信息的能力排序:第3类 > 第2类 > 第1类
为啥 第2类 大于 第1类?因为软件是安装到你的操作系统中的,(从技术上讲)不但可以访问你的文件系统,而且可以获取你操作系统中的很多信息。相对而言,纯 Web 的应用就安全得多。
所以,能用纯 Web 搞定的,尽量不要装软件。
举例:
比如俺用微软的 Sky Drive 网盘分享电子书。SkyDrive 网盘同时支持客户端软件和纯 Web。因为有了纯 Web 支持,所以俺从来不装微软的网盘客户端。
◇非商业(非盈利性) VS 商业(盈利性)
如果某个商业公司具有很大的用户群,那么该公司很有可能会收集用户的行为。
原因在于:数据挖掘技术已经非常成熟,收集大量用户的行为,有可能带来商业利益,这对商业公司具有很大的诱惑力。
举例——Netflix
可能很多国内的网友没听说过这家公司。它是世界上最大的在线影片租恁服务商。
Netflix 很擅长数据收集,也很擅长数据挖掘。它不光记录每一个用户看了哪些影片,而且会记录用户看某个影片时,在哪个时间点按了"暂停",在哪个时间点按了"快进"。
因为它的用户数足够多,再加上它有足够好的数据挖掘算法。就可以预测某个还没有上映的美剧是否会火爆。
比如 Netflix 的管理层连视频的内容都没看到,就砸下1亿美元购买《纸牌屋》的版权。因为 Netflix 的数据挖掘算法预测,此片必火(如果你觉得很神奇,可以看《Wired》的详细报道)。
说了这么多,就是想表明一点:商业公司有盈利压力,所以对收集用户信息具有天然的偏好。相对而言,非营利组织就好很多——它们或许也会收集,但肯定没商业公司这么大的热情。
所以,尽量用非营利机构的软件和服务。
有些读者可能有一个错觉——以为非营利机构搞出来的东西不如商业公司。
其实这是不一定滴!
比如非营利组织 Mozilla 开发的 Firefox 在功能上要好于微软的 IE。
比如非营利的维基百科是全球最好的在线百科(远远好于百度百科,百度百科的很多内容是抄袭维基百科)。
◇国外 VS 国内
再来说说最后一个维度。
俺博客的大部分读者都是天朝网民。所以大伙儿还需要考虑 IT 机构是国内还是国外。
大伙儿都知道,天朝是个一党专制的国家。所以,国内的 IT 机构会受到朝廷的胁迫。朝廷让他们干啥,他们就必须干啥(否则就别想在天朝混)。
而且咱们朝廷搞了一个金盾工程(维基百科的词条在"这里")。这个金盾工程会收集并监控国内网民的各种网络行为(比如:论坛、邮件、聊天、网盘、等等)。
举例——QQ聊天
腾讯作为 IM 市场的长期垄断者,早就被朝廷盯上了。据说腾讯的聊天服务器上部署了专门的监控模块。如果你经常在 QQ 群中发布一些不和谐的言论,就会被朝廷盯上。
顺便插一句:经常有读者来信,询问俺的 QQ 号。在此郑重声明:俺一直不用 QQ 的。像俺这种长期抹黑党国的危险分子,用 QQ 简直是找死。
有些读者会反问:那几个美国大公司不是也卷入到"棱镜门"丑闻吗?
俺的观点是:如果你是天朝的网民,你不用担心美国政府的监控。
首先,美国政府对你没有司法管辖权;其次,美国政府关注的重点是不同的——对于天朝网民发表的敏感政治言论,美国政府通常不感兴趣。
显然,国内 IT 机构的危险性远远大于国外的。
◇小结
根据上述的对比,可以得出如下结论——尽量使用国外的、非营利的 IT 机构提供的软件和服务
举例:
比如选浏览器的话,Firefox(在隐私保护方面)比 Chrome 和 IE 要靠谱,因为 Mozilla 是非营利机构,而 Google 和 微软是商业公司。
★应用软件的类型
刚才说了,如果某个功能可以用纯 Web 搞定,就尽量不要装软件。但是有很多东西是纯 Web 搞不定,你不得不装软件。这时候如何防范捏?请看如下的对比。
◇开源软件 VS 闭源软件
所谓的"开源"(洋文叫 Open Source),就是说该软件的源代码是公开的,可以被网民获取。
通常而言,"开源软件"好于"闭源软件"。因为源代码公开,如果软件带有后门或偷窥隐私的行为,就比较容易被发现。(但是也有例外,曾经发生过开源软件的后门长期未被发现的案例,比如 Borland 的 InterBase 后门)
相对而言,"闭源软件"由于没有公开源代码,要发现其后门或偷窥隐私的行为,就比较难(只能通过监控软件行为来发现)。
所以,尽量使用"开源软件"以防止后门和偷窥隐私。
对比举例——磁盘加密软件
俺拿两款比较有名的磁盘加密工具(TrueCrypt 和 BitLocker)来说事儿。
TrueCrypt 是开源软件,而 BitLocker 是微软提供的商业软件(不开源)。由于 BitLocker 不开源,是不是内置了后门,就说不清楚啦。微软自己肯定不承认有后门。但是 N 年前就有安全专家怀疑,NSA(美国国安局)已经在微软的加密工具中设置了后门。
显然,TrueCrypt 在保护隐私方面要好于 BitLocker。
对 TrueCrypt 感兴趣的读者,可以看俺写的扫盲教程《TrueCrypt——文件加密的法宝》。
◇单机软件 VS 网络软件
所谓的"单机软件"就是说:该软件不访问网络,使用该软件不需要联网;反之,"网络软件"在使用的时候会访问网络。
在保护隐私方面,单机软件好于网络软件。
对比举例——输入法
早期的输入法,大都是单机软件;如今的输入法很多都成为网络软件(一个很流行的功能是"在线同步词库")。
那些在线同步词库的输入法就会泄露你的隐私。因为输入法的提供商可以根据词频分析,推测你平时经常输入哪些内容。如果他们愿意,还可以进一步分析你的职业、你的喜好、等等。
反之,单机版的输入法,软件提供商就无法拿到你的"词频"信息。
所以,如果软件本身的用途跟网络无关,那就尽量选"单机软件"。
◇绿色软件 VS 非绿色软件
所谓的"绿色软件",就是无需安装,也无需依赖管理员权限的软件。
反之,"非绿色软件"要么需要安装,要么需要管理员才可以运行。
前几年写过一个《如何防止黑客入侵》的系列,第一篇的标题就是《避免使用高权限用户》。在那篇博文中,俺详细介绍了"高权限用户的危害",此处就不再啰嗦了。
要避免使用高权限用户,技巧之一就是:尽量用绿色软件。
◇小结
根据上述的对比,可以得出如下结论:优先使用开源的,绿色的软件。如果软件本身的用途跟网络无关,那就尽量选"单机软件"。
★上网的类型
说完了 IT 机构类型和应用软件类型,再来说说上网的类型。
◇有中心——C/S 型(Client-Server)
所谓的 C/S 型,也就是你的电脑充当 Client,你通过跟 Server 通讯来进行信息的交互。大部分互联网行为都属于这一类。
举例:
浏览网页,Server 就是网站的 Web 服务器
收发邮件,Server 就是邮件提供商的邮件服务器
传统 VPN 翻墙,Server 就是 VPN 服务器
......
C/S 型的缺点在于,中央服务器知道太多用户的信息。
◇无中心——P2P 型(Peer to Peer)
自从 P2P 下载普及之后,很多网友都开始听说 P2P 一词。P2P 和 C/S 的主要差别在于——不需要固定的中央服务器。所以 P2P 又可以称为"无中心"或"去中心化"。
举例:
最近两年开始流行的比特币(BitCoin)就是典型的无中心化。它把所有的货币交易历史都存储在每一个客户端上。
相比 C/S 过度依赖中央服务器,"去中心化"的好处在于,你的信息分散在许许多多不同的网络节点中——这就增加了收集隐私的难度。
◇半中心——P2P 与 C/S 混合型
所谓"半中心"的混合型,就是既有 P2P 也有 C/S。
举例:
Skype 聊天。当你登录的时候,是基于 C/S 型(需要从 Skype 的服务器上验证你的帐号)。在语音聊天的时候是基于 P2P 型(可以直接跟对方进行语音传输,无需经过 Skype 的服务器)。
◇小结
按照收集信息的能力排序:"有中心" > "半中心" > "无中心"。
对比举例——翻墙工具
传统的 VPN 翻墙和代理翻墙是"有中心"的。假设你长期使用同一个 VPN 提供商,万一该提供商记录你的上网历史,你的隐私就泄露啦。
而 TOR 跟 I2P 是无中心的。而且中转节点会随着时间频繁变化。因此,即使中转节点偷窥你的网络流量,看到的也是残缺不全的片段。
顺便补充一下:TOR 和 I2P 本身都是多重代理。只有最后一个节点(术语叫"出口节点")可以看到你的访问的网站;其它节点看到的都是强加密的流量。
虽然"无中心"很好,而且也很符合互联网精神(互联网当初的设计,就是"去中心化"的)。可惜的是,如今的很多网络服务(尤其是 SNS)缺乏成熟的"无中心"替代品。
"棱镜门"丑闻曝光之后,某热心老外搞了个"粉碎棱镜"的网站,里面列举了不少"去中心化"的网络服务(包括:Email、IM、SNS、等)。有兴趣的同学可以去瞧一瞧。
★浏览器本身导致的隐私问题
◇浏览器自身如何泄漏隐私?
先来谈浏览器自身是如何泄漏隐私的。这里强调的是"自身",也就是说,跟浏览器外围的插件、扩展、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 用户。估计很多人会为 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月(在主流浏览器中,是最晚支持 DNT 的,比 Firefox 晚了将近2年) 用 Chrome 的同学都知道,Chrome 是频繁发布新版本的,而且 Google 的研发力量是很强大滴。那么,为啥 Chrome 拖了这么长时间才支持 DNT 功能,显然不是因为技术原因,而是因为商业原因——Google 不愿意得罪广告客户。
◇小结
综上所述,在隐私保护方面,Firefox 是首选。
★"浏览历史"导致的隐私问题
本章节提及的"浏览历史",至少包括如下几个方面的信息:网址的历史下载的历史页面缓存各种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如果你不得不装一些插件,那么还有一招——利用虚拟机的快照功能。这个方法刚刚讲过,就不再啰嗦了。