第二十四章
加密
大部分使用计算机的人,都认为在读取、写入和执行之外,还有第四种权限,即删除。
对计算机使用者来说,删除无所不在。在硬件上,键盘上有这个按键,软件的下拉式菜单里也有这个选项。选择删除让人有一种大事抵定的感觉,是一种责任感。有时屏幕上甚至会跳出一个对话框,询问你:“是否确定删除?”如果计算机要求你确认,请你点选“确定”——这就代表删除是一个重大,甚至是最终的决定。
毫无疑问,在计算机外面的世界确实是如此,删除的权力向来很广泛。即便如此,如同无数专制者一再被提醒,想要真正消除一份文件,你不只是要销毁每一份复本,你还必须销毁每一次记忆,曾提到它的其他文件的所有复本,以及所有记得那些其他文件的人。那么,那份文件或许才会消失,只是或许而已。
数字运算一开始,便出现删除功能,工程师们明白,在这个有着几乎无限选项的世界,某些选择必然会成为错误。使用者无论是否真的掌控技术层面,都必须感觉自己在掌控,尤其是有关他们自己创造的东西。如果他们制作了一份档案,应该能随意消灭它。能够消除自己所做的东西,再从头来过,尽管他们依赖那些无法维修的特殊硬件以及无法修改的软件,即便受到第三方平台的规则限制也无妨,因为这是让使用者获得控制感的主要功能。
想想你按下删除键的理由吧。在自己的个人计算机上,或许想要删除一些你搞砸的文件,或是删除曾下载但不再需要的档案。在个人电子邮件中,你或许想要删除以前的恋人写的但你不想再记得的或者不希望配偶知道的电子邮件,或者是你参加抗议活动的邀请函。在手机上,你或许想要删除手机的浏览记录,或者删除一些自动上传到云端的照片、影片和私人记录。在上述每个案例中,你删除后,那些东西,也就是档案,似乎都消失了。
但事实上,我们以为的删除技术从来不曾存在过。删除不过是一种诡计、一种臆想、一种谎言,是一台计算机为了让你安心而跟你说的不高明的谎言。虽然删除的档案在你眼前不见了,却没有真正消失。就技术而言,删除其实只是一个过渡的形式,一种写入的形式。一般来说,当你删除一个档案,它的数据仍安然无恙,深埋在磁碟的某处。有效的现代作业系统,并不会单纯为了删除而设计用来在磁碟里深入搜寻的程式。相反,只有计算机的档案表,也就是记录每个档案储存所在的地图,被改写为:“我不再使用这个档案,且此档案已经失去重要性。”意思是说,原本应该消失的档案就像一座大型图书馆里被忽略的一本书,只要你努力找,还是可以找到。如果你只是消除书目,书本本身仍然存在。
这实际上可以利用实验来证明。下回你复制一份档案时,不妨想想为什么复制档案要花那么久的时间,但是删除档案只需要一下子。答案是,删除仅仅是把一个档案隐藏起来而已。计算机不是设计来矫正错误的,而是用来掩藏错误,而且是只对不知道去哪里寻找的人士掩藏。
2012年剩下没几天时,坏消息出现:能够禁止五眼联盟一些知名成员进行全民监视的法律屏障,原本就快要消失殆尽,现在更是彻底瓦解。澳大利亚政府与英国政府提出法案,强制记录电话与网络元数据。这是名义上的民主政府首度公开宣示他们的野心,要设立某种监控时光机,好让他们在技术上可以将任何人生活的过去数个月,甚至数年期间的事情倒带。至少在我看来,这些行径标示着所谓的西方世界由自由网络的创造者与守护者,转变为网络的敌人与可能的毁灭者。这些法律以公众安全措施作为借口,大胆侵入无辜者的日常生活,以至于吓到其他国家的公民,而国民们或许没想到自己所选择的政府,也会秘密监视他们,让他们同样受到牵连。
这些大规模的全民监视计划证明,科技与政府之间无法自然并存。我身边两个奇妙的相关机构——美国情报机构与技术人员的全球在线部落,这两者之间的裂痕已变得极为明显。早年在情报机构时,我还能调和这两种文化,在我的间谍工作与我和网络隐私人士关系之间顺利转换,后者包括无政府主义黑客及较为严肃的Tor型学术人士,他们让我跟上运算研究的潮流,并在政治上启发我。多年来,我一直欺骗自己说我们都是站在历史的同一边:我们都是为了保护网络,保护网络的言论自由与免于恐惧。但是,我已无法再维持这种错觉了。现在我的雇主——政府,已成为敌人。我的技术同僚一直以来怀疑的一切,我现在终于能够确定了,可是我不能告诉他们。或者说,我还不能告诉他们。
然而,我可以做的是在一定程度上帮助他们,只要不危及我的计划即可。这是我在檀香山所做的事,我对这个美丽的城市最大的兴趣莫过于担任加密派对(CryptoParty)的主办人与讲师。这是由国际草根性加密技术运动发起的新型聚会,技术人员自愿拨出时间免费教授课程,在数字自我防卫等主题上教导民众,特别是指导有兴趣的人如何保护他们的通信安全。在许多方面,这也是我在联合反情报训练学院的授课主题,于是我欣然加入这项活动。
虽然你可能认为,就当时我正在进行的其他活动而言,我所做的是一件危险的事,不过它反而能够证明我对自己教授的加密方法充满信心。这些加密方法是用来保护放在我家里的那部存满情报机构滥权行径的磁碟机,即使国安局也无法解锁。我知道再多的文件、再多的新闻报道,都无法解决这个世界所面对的威胁。人们需要工具来保护自己,而且他们需要知道如何使用那些工具。我同时试着提供这些工具给新闻记者,但我担心自己的方法太过技术性,于是在给同僚上了许多堂课之后,我用这些经验简化课程,让我能够向一般听众说明这个主题,同时我自己也获益匪浅。此外,我很怀念教课:我站在课堂上已经是一年前的事了,在我重新回到那个位置的当下,我才明白,一直以来我都是把对的事教给了错的人。
我所说的课堂,不是指在像情报机构学校或是简报室上课的课堂。加密派对是在一间家具店与共享办公空间后面的一间艺廊里举行的。我架设投影机,播放投影片说明如何容易地操作一部Tor服务器来协助伊朗人民,或是澳大利亚、英国和美国人民。这个时候,学生们已陆续进来,他们是一群形形色色的陌生人和一些我在网络上认识的新朋友。那个12月的晚上,大约20人来出席,听我及另一名讲师露娜·桑德维克(Runa Sandvik)讲课,露娜是一位来自Tor计划,聪明且年轻的挪威女性。她后来担任《纽约时报》信息安全资深主管,而她的公司也支持她日后主办的加密派对。听众的共同点不在于对Tor感兴趣,或是担心被监视,而是希望重新建立他们生活中隐私空间的控制权。有些是从街上闲晃时进来的老爷爷,还有一名报道夏威夷占领运动的当地记者,和一名受到报复性色情内容残害的女性。我也邀请了一些国安局的同事来参加,希望激发他们对这项运动的兴趣,并向他们表明我并没有对国安局隐瞒我的参与。虽然最后只有一名同事前来,坐在后面,叉开双腿,双臂环抱,从头到尾都在傻笑。
我的简报一开始便说明了删除的假象,想要完全消除是绝对做不到的,听众立即了解了。于是我接着解释,若是他们无法消除不希望被人看到的资料,充其量是让档案被覆写,意思是被随机或伪随机的资料胡乱涂上,直到原始资料无法读取。但是,我警告他们,即使是这种方法也有缺点。他们的作业系统有可能暗地里把一份他们想要删除的档案复本隐藏在了某个他们不知道的暂时储存角落。
我随即转到了加密主题。
删除是监视者的美梦、被监视者的噩梦,加密则是或者说应该是所有人的现实。这是对抗监视的唯一真正屏障。如果你的储存盘一开始就加密,敌人就无法在里面翻寻你已删除的档案或是任何东西,除非他们有加密金钥。如果你的收件箱里所有电子邮件都有加密,谷歌便无法通过读取来收集你的个人资料,除非他们有加密金钥。如果你将所有经过澳大利亚、英国、美国或俄罗斯不友善网络的相关通信全部加密,间谍便无法读取,除非他们有加密金钥。这是加密的基础原则:金钥持有者掌握一切权力。
加密是利用算法。加密算法听起来很吓人,写起来也很吓人,但其实它的概念很基本。这种数学方法是将信息,例如你的电子邮件、电话、照片、影片和档案,进行可逆的转变,让没有持有加密金钥的人无法读取。不妨将现代加密算法想成一根魔杖,你可以对着一份文件挥动魔杖,把每个字变成只有你及你信任的人才能阅读,而加密金钥是完成转变的特别咒语,让魔杖发挥作用。多少人知道你使用魔杖并不重要,只要不让你不信任的人知道咒语即可。
加密算法基本上是好几组设计得很困难的数学问题,连计算机都很难解答。加密金钥是一个线索,让计算机可以解答一组数学问题。你将尚可读取的数据,即明文,放进加密算法的一端,另一端就会出来无法理解的东西,这就是密文,也就是加密后的资料。有人想要读取密文时,就要把它和正确的金钥一起放进算法,这样明文就会再度出现。不同的算法提供程度不等的保护,加密金钥的安全程度通常取决于其长度,因为这代表着需要解决一个算法背后的那个数学问题的困难程度。较为安全、较长金钥的算法,困难程度相当高。我们假设一名攻击者花一天时间破解一组64位的金钥——以2的64次方种可能方法之一来搅乱你的数据(18,446,744,073,709,551,616种不同排列),那么他就要花加倍的时间,也就是两天,才能破解一组65位的金钥,四天才能破解66位的金钥。破解一组128位的金钥要花上比一天多出2的64次方倍的时间,亦即五亿亿年。到那个时候,我可能都会获得特赦了。
在我和新闻记者通信时,我使用4096位及8192位金钥。这表示,除非计算机技术出现重大创新或是把数字分解成因子的原则出现根本改变,否则即便是国安局所有加密分析师使用全世界的运算能力,都无法入侵我的磁碟机。基于这项理由,加密是对抗各种监控的最佳希望所在。如果我们所有的资料,包括通信,由端到端(由发送者端到接收者端),都用这种方式编码加密,那么政府,甚至是已知物理范畴内的任何实体,都无从得知我们的资料。政府还是可以拦截及收集信号,但那不过是噪声而已。将我们的通信加密后,实际上会将它们从我们处理的每个实体的内存上删除——它将有效地把那些从未取得许可的实体撤销许可。
政府想要取得加密通信的话,只有两个选项:追捕金钥持有者或者取得金钥。前者的话,政府可以压迫设备制造商,让他们刻意销售会执行错误加密的产品。或者他们可以误导国际标准化组织,接受设有后门——秘密存取点的错误加密算法。至于后者,政府可以锁定攻击那些通信的端点,也就是执行加密程序的硬件和软件。通常,这是所谓的漏洞攻击。或者他们可以利用碰巧发现的弱点,用它来入侵及窃取金钥,这种技术是罪犯率先使用的,但今日却被主要国家的公权力所接受——即使这代表着国家在重要国际基建的网络安全留下了严重漏洞。
我们保护金钥安全的最佳方法叫作零知识,这个方法可以确保你想要储存在外部的资料,例如一家公司的云端平台,在你上传前经由你的设备执行算法加密,而且金钥绝对不会外泄。使用零知识方法,使用者握有金钥,而且只有使用者知道。没有公司、机构或敌人可以取得。
我用来保护国家安全局机密的金钥远超过零知识:它是由多把零知识金钥所组成的零知识金钥。
你不妨想象:我在加密派对授课结束时,站在门口看着20名学员先后走出,并在他们每个人走出门口、融入檀香山夜晚时,在他们耳边低声说了一个字,别人都听不到的一个字,只有在他们全部再度集合到这个房间时,才可以说出的字——唯有将这20个人全部叫回来,让他们按照我原先跟他们说的顺序复述那些字,才能完整重组这20个字的加密。万一有一个人忘记他的字,或者复述的顺序跟先前顺序有任何不同,咒语便不正确,魔法便无法施展。
我的磁碟机金钥包括这种安排,但有些变化:我在说出大多数的咒语时,自己保留了一个。我的魔法咒语隐藏在各处,若是我毁灭自己所保留的那一个,取得国安局机密的途径就永远毁灭了。