9种方式帮助开发人员重建对互联网的信任

标签:互联网技术开发信任

访客:30037  发表于:2015-07-28 10:49:50

公共密钥、受信硬件与分组链接——开发人员应当利用这些技术工具帮助实现面向每位用户的互联网保护目标。

时至今日,互联网已经成为认识论层面的混沌深渊。根据Peter Steiner在其著名的《纽约客》动画中所提出的假定——同时也得到了数百万同行的支持——无论是凶猛的恶犬还是宣称将捍卫我们财产安全的银行,都没办 法真正了解我们的交换数据包是否被人调了包。更糟糕的是,Edward Snowden已经披露称,美国国安局可能已经将我们的部分或者全部数据包进行了备份,这意味着其它国家以及部分黑客组织完全可以效法国安局干出类似的恶 行。

然而,我们仍然在将大量数据倾卸给路由器,并一厢情愿地认为这些小小的传输设备能为自己搞定一切——即使不行,麻烦也处于可控范围之内。黑客们有可 能会取得联邦政府计算机的root权限并窃取到税收资料的副本,但除非他们愿意帮大家交税(这显然不可能),否则这类信息外泄好像也没什么大不了。而在恶 意人士窃取到我们的信用卡信息并在Office Depot上购买iPad时,信用卡公司会负责承担相应损失。没错,我们很容易陷入这样一种虚假的安全感当中,并为此沾沾自喜。

虽然大多数普通群众都因为上述理由而对互联网的混乱不堪与信任缺失状况视而不见,但这并不代表我们也应当继续心安理得地听之任之。这种趋势除了让欺 诈人士愈发猖狂之外,还会带来更为惊人的深层社交成本。毕竟我们每个人都需要承受更为可观的交易费用,因为其中包含着可观的潜在欺诈损失成本。这种日益严 重的信任缺失最终将伤害到我们每一个人。

我们当然没办法运起神功让互联网在一夜之间变得完美无瑕,但我们确实能够添加更多保障性功能,使得用户对互联网的信任逐步提高。有鉴于此,今天的文 章将为大家带来以下九项指导思路,旨在更为可靠地保护数据、隐私以及通信内容安全。修复互联网安全问题是一项崇高、甚至有些高不可攀的目标,但如果我们每 个人都在项目开发工作当中将安全考量纳入进去,那么相信互联网世界终将变成美好的人间。

向主要服务添加公共密钥

Facebook公司一直在致力于确保自身所服务的用户皆为使用真实姓名的可信群体。考虑到如此庞大的社交规模与人类的某些天性,我们没办法断言 Facebook在这方面已经取得全面成功,但其长期以来坚定推动用户账户实名可信度的作法确实给互联网带来了深远影响与积极意义。

今年以来最令人振奋的消息,可能莫过于Facebook将允许用户通过Faceoobk系统分发其PGP公共密钥了。任何打算通过PGP向个人发送邮件的用户将能够访问Facebook并下载到对方的公共密钥,并以此为起点立即实现安全通信。

出于多种原因,这套方案尚称不上完美,不过其安全水平至少要比使用保障力度更为低下的公共密钥库好得多,而且基本上要比寄希望于随机网络页面提供的 正确公共密钥更为靠谱。在上一次检查的时候,我发现公共PGP服务器上某些与我姓名相关联的密钥并不能为我所使用。相比之下,Facebook公司确实迈 出了坚实的一步,其效果比那些运行在随机服务器上的免费服务好得多。

我们还需要考虑虚假账户的存在以及Facebook与用户间连接的安全性水平。不过,可以肯定的是真人用户往往会定期更新当前状态,我们能够很轻松地利用这一点评估其密钥是否可信。

那么其它服务是否也会开始分发公共密钥?它们是否也会着手建立一套更为可信的网络环境?银行与信用卡发卡机构可能会率先行动。出纳员及分支机构员工 已经非常了解监管事务,他们能够有效提高公共密钥库的受信水平。学校与大学对于学生们的操作活动也比较了解,因此能够作为另一种理想的起步环境。总而言 之,任何一种能够帮助我们更接近PGP缔造者Phil Zimmerman长久以来所构想的理想网络信任效果的努力都值得我们称道并加以推动。

构建更出色的随机数生成器

如果攻击者能够猜出我们的密钥,那么目前市面上现有的任何加密机制都将失去作用。解决这一问题的传统办法之一在于使用由随机数生成器所挑选的随机密钥。不过新的问题又来了:这种随机数生成器是否值得信任?

这绝不仅仅是种理论层面的可能性。2007年,来自微软公司的两位研究人员就在Dual_EC_DRBG(即双椭圆曲线确定性随机数位生成器)当中 出现了潜在的后门,随后技术行业很快将其打入了冷宫。最后,在经过数年的论证之后,国家标准与技术协会于2014年决定彻底中止对该算法的支持。

然而,即使是最出色的研究人员也很难找出那些潜在的后门,因此将希望单纯寄托在他们身上将令用户身陷危险。那么我们该如何确保自己所使用的随机数生成器安全可靠?举例来说,大家可以利用加密安全散列功能提高复杂性水平,从而进一步提高生成器所生成数值的随机性。

任何加扰机制都会加入额外的数字内容,从而提高攻击者获取控制权的难度——举例来说,他们可能需要投入更多时间或者来自网络的全局可下载值,例如比特币分组链接之上的当前散列值。这将有效防止攻击者们对随机数生成器的输入内容加以控制。

随着越来越多算法开始将加密机制纳入自身,我们需要比以往更为丰富的备选随机密钥。要拥有一套稳定且不易被猜到的随机密码生成机制,我们在技术基础的构建方面还有很长的道路需要探索。

扩展受信硬件

考虑到软件层以及现代计算机设备的复杂性,我们在默认情况下应当将它们首先视为不安全状态。台式设备乃至智能手机当中可能包含有大量潜在后门,就连打印机产品也未必像大家想象的那样处于全面受控状态之下。

技术研究业界长期以来都在尝试创造出一种有针对性的小型计算机设备。其中一部分专门负责计算特定登录操作,另一部分则计算数字签名。用户的个人密钥 可以被锁定在单一芯片当中,这样恶意人士将很难提取到其中的机密数据。尽管我们可能永远无法保证信息百分之百处于安全状态之下,但这类设备确实能够构建起 相对理想的防御体系,从而限制恶意人士的攻击能力。举例来说,它能够利用机械开关来防止机密数据为他人所访问。另外,每次开关处于启用状态时,它也可以确 保赋值操作只生效一次。

如果每个人都能使用这样一款小型受信设备,那么每个人都将能够创建数字化签名,从而将网络信任水平推上新的高度。虽然设备丢失及安全漏洞仍可能构成威胁,但这些小部件的出现无疑将令互联网变得更加靠谱、也更令人放心。

将Merkle树引入文件系统

众所周知,数字文件的内容能够轻松进行修改。相较于将修改过程详细表现出来的纸质记录,数字文件显然能够根据需要以任意内容示人。而更糟糕的是,大 部分文件系统并不太关注内容修改时的操作记录。水平较高的黑客不仅能够修改文件本身,同时也能够对记录进行回溯,从而令人完全看不出其篡改痕迹。

检测内容变更的最简单办法就是使用加密安全散列功能,该值的作用类似于对文件进行校验且很难被攻击者所伪造。数据当中的任何变更都会反映到该散列值当中,而且我们几乎不可能在不影响散列值变化的前提下对文件内容加以修改。

当文件内容随时间推移发生变化时,散列值序列本身可以通过Merkle树进行散列化处理。这能够确保我们了解文件的变化历史,包括其具体修改时间。 像这类经过良好计算的散列值已经成为Git协议当中的固有组成部分。只要更多地将此类处理思路纳入到总体文件系统当中,我们就能更为准确地把握文件动态。 虽然这些系统只能检测到是否存在内容变更,但却无法随时加以修复,不过仍然要比以往那种一无所知的状态好得多。

构建更多分组链接并将其拓展到其它领域

比特币生态系统包含有众多政治与社会因素,这让人们往往忽视了其中分组链接机制的存在。人们乐于讨论比特币的出现是否会颠覆中央银行体系,或者是否 会衍生出一个法律无法触及的匿名犯罪世界。但无论这些问题的正确答案是什么,其重要的核心实质并非体现在投机活动之上,而是分组链接能够增加互联网的稳定 性与可信度。

从核心实质角度看,比特币是一种集中式分户总账,它所采用的交易记录方式很难——甚至在某种程度上不可能被修改。分户总账当中的条目通常会记录下谁 将比特币转移给了谁,而我们完全有理由将这种方式用于修复存在于虚拟实例当中的其它数据。如果某位学生对一份论文作出了轮流补充,那么他或她也可以在分组 链接当中为该文件记录一条散列值。如果这篇论文由于垃圾邮件过滤器或者其它技术故障而发生丢失,那么学生还是可以证明该论文已经在特定时间曾被提交完成。

我们还可以利用此类方式记录各种散列值来提高互联网受信程度,以应对人们对于特定时间段内对于操作历史的验证需求,目前也已经有众多比特币初创企业 在利用这种方式探索商业化可能性。尽管比特币挖掘领域仍然存在诸多问题,运行分组链接的成本也仍然比较高昂,但这项技术本身确实非常可靠、而且足以在货币 交易之外发挥巨大的安全保护作用。

将链接机制引入互联网交互

作为互联网中最为基础的组成部分之一,基本HTTP调用仅仅属于bit的集合。而HTTPS则在其中添加了安全层,能够排除监听者的存在并对修改内容作出标注,但它同时也会提高所有交互的执行成本。

一种较为简单的解决方案就是为所有交互操作计算Merkle树。虽然并不是所有HTTP流量都能够整理成易于进行散列处理的简单命令列表,但相当一部分仍然适用于这种方法。对于来自某些页面的AJAX调用,我们也可以对其架构进行细微调整来实现简化。

建立交叉链接认证网站

基础Git库的作用并不仅仅是提供文件存储空间。其协议能够在保存文件之外将其发送至其它库当中,同时在提交过程中通过计算全部文件的SHA-1散列监控其内容修改情况。

不过为什么要止步于单一存储库?为什么不将数字签名或者散列值与其它库进行交换,从而借此提升网络受信水平?

Inter Planetary文件系统就是这样一种实验性方案,其尝试将Web转化为一套庞大而且相互连接的文件系统。我们需要探索更多方式将来自不同网站的信息进行对接。策划者可以将这些资源加以整合,从而立足多个站点构建起整套受信网络体系。

添加同态加密机制

服务器能够以多种方式存储信息,从而保证其既得到加密又仍然拥有可用性。换句话来说,服务器能够在不影响用户隐私的前提下对数据进行持续存储。感兴趣的朋友可以点击此处查阅《半透明数据库》一书了解更多详尽细节(英文原文)。

在过去几年当中,以加密形式处理数据这一难题已经在理论层面上取得了一系列激动人心的成果。各类数据库能够对规模庞大的个人信息集合进行分类及搜索,而无需保留未经加密的版本。它们能够在无需获取底层信息的前提下执行计算任务。

对我们无法实际查看或者读取的数据进行计算,这听起来有点怪力乱神的意思,不过我们已经拥有多种理想的实践解决方案达成这一目标。其中最出色的可能 要数Unix密码文件,它能够保存一条经过加密的密码安全散列值,而非密码内容本身。当用户进行登录时,该系统可以对输入字符串进行散列处理,并将其与数 据库内的值进行比对。不过任何一位获得密码文件访问权限的用户都无法真正查看到实际密码内容,因为该文件当中存储的仅仅是其散列化版本。

这种新型解决方案极具发展潜力,但却远远未能融入实际应用层面。某些方案需要耗费数年时间才能解决非常简单的计算难题,但它们在速度方面正逐步向可 行性方向迈进。虽然尚需要加以进一步研究,但这类承诺帮助企业简化数据库情报处理任务、同时又能避免个人隐私泄露的技术成果确实相当令人兴奋。

添加加密机制

单纯采取规模最大且最简单的解决方案似乎非常愚蠢,但事实上,将更多加密机制引入其中确实能够让恶意人士的监听活动变得更加困难。目前已经有谷歌、 Facebook以及苹果等一系列知名网站开始在默认情况下开启SSL加密,而其它站点也应当加入这一行列。将SSL纳入全部网络流量虽然会带来额外负载 压力,但也会提供更理想的可管理性空间。

我们也可以通过其它多种标准实现加密机制的添加。IPSec与TLS都能够为游走于客户端及服务器之间的数据包提供良好的加密效果。不过这些算法仍然默认信任服务器,这种解决思路对于某些服务确实可行,但在服务器仅仅充当中介机制的情况下则不太理想。

将端到端加密工具同电子邮件及聊天产品相整合已经成为强化通讯活动基础安全水平的必要方式。虽然攻击者能够从服务器以及操作系统层面破解这种保护手段,但其仍然是帮助人们建立互联网安全及可控信任度的最简单办法。

来源:51CTO

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");