续接上文《回顾互联网的过去十年(上)》
这篇文章思考关于十年中新的、旧的和在互联网发展中被遗忘的东西。
一、端到端传输层
现在开始讨论协议栈,并研究过去十年中发生的端到端传输协议以及其中的变化。
端到端传输是互联网的革命性方面,TCP协议是这一变化的核心。许多其他传输协议要求较低级别的网络协议栈向传输协议提供可靠的流接口。由网络来创建这种可靠性,执行数据完整性检查和数据流控制,并在网络中发生数据丢失时进行修复。 TCP免除了所有这些,简单地假定来自网络的不可靠的数据报传输服务,并推动传输协议承担保障数据完整性和流量控制的责任。
在TCP的世界里,过去十年似乎没有多少变化。我们已经看到了在TCP控制的速率增加和速度下降的细节方面的一些小改进,但没有改变这个协议的基本行为。 TCP倾向于使用数据包丢失作为拥塞信号,并在较低速率和该丢失触发率之间振荡流量。
随着谷歌的BBR和QUIC产品的亮相,情况有望发生根本上的变化。
瓶颈带宽和往返时间控制算法(BBR),是TCP流量控制协议的变体,其操作方式与其他TCP协议完全不同。 BBR试图维持恰好位于发送方和接收方之间端到端路径的延迟带宽积的流量。在这种情况下,它试图避免网络中积累的数据缓冲(当发送速率超过路径容量时),并且还试图避免在网络中留下空闲时间(发送速率小于路径容量)。
副作用是,在发生拥塞丢失时,BBR会试图避免网络缓冲崩溃。 BBR显著提高了有线和无线网络传输系统的效率。
Google最近提供的QUIC也代表了我们使用传输协议方式上的重大转变。 QUIC协议看起来像一个UDP协议,从网络的角度来看,它只是一个UDP数据包流,但目前看来却不仅仅是这样。
这些UDP数据包的内部负载包含一个更传统的TCP流量控制结构和一个TCP流负载。但是,QUIC对其UDP负载进行了加密,因此整个内部TCP就可以完全隐藏在网络中。互联网传输的僵化不仅是因为网络中间件的干扰作用,还因为它被用来丢弃它无法识别的数据包。
像QUIC这样的方法允许应用程序摆脱这种机制,并将端到端流程管理恢复为端到端的功能,而无需任何形式的网络中间件检查或操纵。这一发展可能是整个十年中传输协议中最重要的进步。
二、应用程序层
现在继续向上看协议栈,并从跨网络运行的应用程序和服务的角度来看待Internet。
1. 隐私和加密
正如我们在研究端到端传输协议的发展时指出的那样,QUIC负载的加密不仅仅是为了防止网络中间件干扰TCP控制状态,尽管它确实非常成功地实现了这一点。加密适用于整个负载,并指出了过去十年中的另一项重大发展。
我们现在对利用各种形式的网络机制来窃听用户和服务的程度持谨慎态度。Edward Snowden在2013年发布的文件描述了一个非常活跃的美国政府监视计划,该计划利用大量的流量拦截来源以构建用户的行为概况,并由此推断描述个人用户的概况。从许多方面来说,收集这些资料与谷歌和Facebook等由广告资助的服务(或多或少)多年来公开做的事情没有多大区别,但本质上的区别也许在于知识和默示的同意。对于广告客户,此信息旨在提高个人资料的准确性,从而提高潜在广告客户的用户价值。政府机构的动机更倾向于各种形式的解释,并不是所有这样的解释都是良性的。
对于这种材料泄漏,一项技术的回应是在网络的所有部分公开地推行端到端加密。这样做是为了让所有人都能使用强大的加密功能,而不仅仅是只有那些付得起高价才能享受的奢侈功能。 Let’s Encrypt倡议成功地发布了免费的X.509域名证书,其结果是所有网络服务运营商,无论其规模大小或资产如何,都能够为他们的网络服务器使用TLS加密会话。
网络和基于网络窃听者的隐藏用户流量远远超出了QUIC和TLS会话协议。域名系统(DNS)也能够带来丰富信息,例如用户在做什么,以及在许多地方用于执行内容限制。最近已经采取了一些行动来尝试和清理DNS过于健谈的特性,使用查询名称最小化来防止不必要的数据泄露,以及通过HTTPS开发DNS over TLS和DNS以确保存根解析程序与它的递归服务器之间的网络路径。这是目前正在进行的一项工作,将需要一段时间才能看到这项工作的结果是否会在DNS环境中得到广泛采用。
我们现在正在一个高度偏执的环境中运营我们的应用程序。应用程序不一定信任它们运行的平台,我们看到应用程序正在努力将其活动隐藏在底层平台上。应用程序不信任网络,并且我们看到越来越多的网络窃听者使用端到端加密来隐藏的他们活动。在加密会话建立中使用身份凭证可以防止应用程序客户端被错误地认作伪装服务器。
2. 内容的兴起
将协议栈进一步扩展到内容和应用环境,过去十年中我们也看到了一些革命性的变化。
在一段时间内,互联网的内容和通信活动主要存在于独立的业务领域,并且相互依存。通信的任务是将用户带入内容,这意味着通信对内容至关重要。与此同时,客户端/服务器互联网缺乏了服务器是无用的,所以内容对于通信是必不可少的。这种相互依存的关系既令人担忧,又直接涉及到参与者和公众更大的利益。
内容产业在很大程度上是这两种产品中更赚钱一方,很少受到监管约束。他们提供的服务中没有任何普遍服务义务的概念,甚至没有任何有效的价格控制形式。许多内容服务提供商使用内部交叉融资,允许他们向公众提供免费服务,如免费电子邮件、免费内容托管、免费存储等类似服务,而通过另外较隐蔽的交易为这些服务提供资金,实质上就是向出价最高的广告客户出售用户的消费者档案。所有这些都发生在所有重大的监管约束之外,这给了内容服务行业带来了相当大的财富和相当大的商业自由度。
这个行业现在正在利用其能力和资本来消除以前对通信行业的依赖,这应该不足为奇。我们现在看到内容数据网络(CDN)模型的迅速兴起,它不是将用户带到各种内容商店,而是在用户旁边打开本地内容商店。
随着各种形式的数字服务都转移到CDN,传统的通信服务在互联网中的作用如何呢?鉴于通信在越来越多的内容经济中地位日益边缘化,公共通信提供商的前景并不乐观。
在这些CDN中,一种新服务模式逐渐兴起,以云服务的形式进入互联网。我们的计算机不再是具有处理和计算资源的独立系统,而是越来越像一个窗口,能够看到存储在公共服务器上的数据。
云服务是非常相似的,其中本地设备实际上是大型备份存储的本地缓存。在用户可能拥有多个设备的情况下,这种模式更具有说服力,因为无论使用哪种设备访问数据,公共备份存储的视图都是不变的。这些云服务还使数据共享和协作工作更容易支持。与其创建一组原始文档的副本,然后尝试将所有单个的编辑切换回单个公共的整体,该云模型能够仅通过更改文档的访问权限来共享文档。这个文档只有一个副本,文档的所有编辑内容和评论都可获得。
3. 网络攻击的演变
在互联网中的网络容量不断增加的同时,我们看到了拒绝服务攻击总数的新记录。目前的峰值量是一个1.7 Tbps的恶意流量攻击。
攻击现在很平常。它们中的很多都非常简单,依靠一堆潜在的僵尸设备,这些设备很容易被颠覆,并被选中协助攻击。这些攻击通常是简单的攻击形式,例如UDP反射攻击,简单的UDP查询会产生大量响应。查询的源地址被伪造成目标受害者的地址,不需要做太多的事情。小型查询流可能导致大规模攻击。 UDP协议,如SNMP、NTP、DNS和Memcache已在过去被使用过,毫无疑问将被再次使用。
我们为什么不能解决这个问题?数十年我们一直在努力,但我们似乎无法在攻击之前预料到。对于网络运营商来说,1998年已经发布了RFC 2827用于防止伪造源地址数据包泄漏。然而,大量基于UDP的伪造源地址的攻击目前一直存在。具有已知漏洞的计算机系统继续与互联网连接,很容易转化为攻击机器人。
攻击的情况也变得越来越不清晰。之前归因于“黑客”,但很快就意识到这些敌对攻击的重要组成部分具有犯罪动机。从犯罪行为者到国家行为者的演变也是完全可预测的,我们看到这个网络战争舞台的升级,对于漏洞防御的投资也成为了评判一个国家综合实力的标准。
看来,这里的一个主要问题是,我们不愿意对有效的防御或威慑作出任何实质性的投资。我们对于在互联网上使用的系统过度信任,以至于到了不合理的轻信的地步。例如,用于保护基于网络的交易的公钥认证系统被反复证明是不可信的,但我们却对其保持信任。个人数据不断遭到破坏和泄漏,但我们似乎只想增加规则的数量和复杂性,而不是实际使用能够有效保护用户的更好工具。
敌对袭击的大局势并没有好转。事实上,情况变得更糟了。如果企业有业务需要维护一个始终可用的服务,但目前任何形式的内部资源调配都不足以抵御攻击。如今只有少数平台能够提供弹性服务,即使如此,目前还不清楚它们是否能够抵御最极端的攻击。
在网络中有一个持续的背景扫描和探测,任何形式的可见漏洞都会被无情地利用。人们可以将今天的互联网描述为一个有毒的荒地,偶尔也会被防守严密的城堡打断。那些能够在这些城堡中找到自己的服务的人可以从这种持续不断的敌对攻击中得到某种程度的缓解,而其他人都被迫试图在这种最恶劣的环境中隐藏自己,同时意识到任何大规模的袭击都会将他们淹没。
世界上大约有一半的人口现在处于数字环境,这是一个发人深省的现象。更发人深省的是,当今的许多控制系统,如发电、配电、配水和道路交通控制系统,都暴露在互联网上。也许更令人担心的是,互联网正在越来越多地被使用,包括自动化系统以及各种生活支持功能。这些系统在面临持续和破坏性攻击时出现严重故障的后果是不可想象的。
4. 互联网中数十亿悲惨而又愚蠢的事情
这种情况中更令人沮丧的是所谓的“物联网”(IoT)。
在互联网预言比比皆是的圈子里,策略制定者们蜂拥而至地阐述对未来的宏伟愿景,我们经常听到是,物联网代表着无限的未来。这个短语包含了计算机行业几十年的转变,从只有国家负担得起的深奥的工程部件,到大型机、台式机、笔记本电脑、掌上电脑,到现在的腕上电脑。下一步呢?在物联网的愿景中,我们将把互联网扩展到人以外,并在这个世界的各个方面使用数十亿台这样的设备。
我们对已经连接到互联网的’事物’有什么了解呢?
其中有一些不是很好。事实上,其中一些愚蠢透顶。它们的一些不完善的操作和不充分的安全模式会以潜在的恶意方式影响其他设备。毫无疑问,如果不断检查和管理这些设备,我们可能会发现异常行为并予以纠正。但这些都是无形的非托管设备。一个网络摄像头控制器,一个智能电视中所谓的“智能”设备,或者是从洗衣机到货车的任何东西的控制器,没有人正在照看这些设备。
当我们想到物联网时,我们会想到一个气象站、网络摄像头、“智能”汽车、个人健身监视器等类似的世界。但我们往往会忘记的是,所有这些设备都是基于他人的软件层构建而成的,以尽可能低的价格组装成产品。
当你意识到你刚安装的网络摄像头具有可以用“完全没有安全性”这个短语来概括其安全模型,并且它实际上将你房子的全景全部放到了互联网上,这可能会让你感到不安。当你意识到你的电子钱包使用的设备是大量来源不明的开源软件的汇编,它的安全模型还没有被完全理解,但似乎很容易被强迫为“是的,想拿什么就拿什么”,这可能会更加让你感到不安。
如果认为我们代码中已经没有错误,并且从现在开始,我们的软件将完美无缺,那绝对是理想主义的,是不会发生的。软件不会完美,它将继续存在漏洞。如果认为物联网正在塑造一个高质量的市场,那将是一件好事,消费者将选择更昂贵的产品,即使其功能与更廉价的产品相同,而这种产品还没有经过严格的基本安全缺陷测试。那也太天真了。
物联网将继续成为市场、价格和质量之间的妥协,将继续推动我们走向廉价但非安全的一边。什么能够阻止我们被大量的、多样的,本身就有潜在的漏洞,而且很容易被利用的程序化非托管设备进一步污染我们的环境?我们能做些什么来让这个世界不再那么愚蠢?目前尚未找到这个问题的可行答案。
三、未来十年
硅产业不会在短期内关闭。我们的计算机将在他们将能够执行的任务的范围和复杂性方面变得更加强大。
同时,我们可以期待从我们的网络获得更多。更高的容量,更大程度上定制网络,以满足我们的个人需求。
但是,对互联网的安全和信任持乐观态度是非常具有挑战性的。过去十年来,我们在这方面进展甚微,因此,没有理由认为这一情况在未来十年会发生变化。如果我们无法解决这个问题,那么,也许我们只能面对一个充斥着悲惨愚蠢的事情的互联网。
除了这些笼统的情况,很难预测互联网将往哪里发展。技术并不遵循预先确定的道路。它受到消费者市场的驱使,很容易被多彩的明亮的新事物分散注意力,而且很容易被我们所厌倦。
在未来的十年中,我们可以期待互联网能够超越袖珍型电脑,可以用自然语言与我们交流吗?那能提供比浸入式3D视频更优秀的质量吗?可以将人类的全部书籍汇集成一个可搜索的数据库,可以在几秒内回答我们的任何问题吗?
我们不知道从互联网上可以得到什么。但无论如何,相信互联网会变得丰富多彩、明亮、闪耀,而且完全出乎意料!