APP下载

命名数据网络中的安全问题分析*

2019-05-31谢祝福

通信技术 2019年3期
关键词:生产者攻击者路由器

李 彤,谢祝福

(陆军装甲兵学院 信息通信系,北京100072)

0 引 言

随着社交媒体,大数据和物联网的日益普及,内容分发已成为当今互联网的焦点。这些数据中的大部分都是敏感的,需要加以保护。因此,无论数据源自何处,快速,安全,简便的数据分发至关重要。

知名网络流量分析机构Sanduine公布了2018年上半年的《全球互联网现象报告》,报告显示在全球整体的互联网下行流量中,视频占到了总体下行总量的58%。除此之外BitTorrent(BT下载)占到全球整体互联网上行流量的22%,而在EMEA(也就是欧洲、中东和非洲)地区的比例为31%。在亚太地区Alphabet/谷歌用户占到了整体互联网流量的40%左右。同时,其它互联网流量消耗大户还包括:HTTP流媒体,也就是网站上嵌入式的视频,该类视频占互联网宽带的13.1%;YouTube视频网站,在全球互联网宽带的11.4%;还有网页的流量,占比为7.8%。说明用户越来越依赖互联网来进行内容的传播和分发,而且对于内容的安全性要求也越来越高,而命名数据网络正是被大众所认可的能够在未来解决这些问题的新型网络架构。

就安全性而言,IP网络和CDN的行为方式大致相同。与它们不同的是,命名数据网络(NDN)提供了一种更安全有效地分发数据的方法。在NDN中,通过网络传输的数据由发送方进行数字签名。IP网络在诞生之初只是单纯为了满足并没有将安全性考虑到它的架构中去,如今看到的IP网络的安全措施都是后来以补丁的形式加上去的,而在NDN架构中安全性是内置的[1]。

尽管如此,虽然NDN具有许多内置的安全功能,但某些功能仍有一些尚未解决的缺陷[2]。 在概述了NDN方法之后,我们简要分析了这些安全问题以及NDN中的相关攻击及其对策。

1 NDN的传输工作机制

1.1 应用场景实例

为了解释NDN方法的好处,我们以示例问题场景开始讨论。假设我们要在百度搜索引擎中搜索某一个关键词。在今天的IP网络中,每当请求者输入网页或URL时,都会检索内容发起站点服务器的IP地址。然后,请求网页被重定向到服务器,并从那里检索数据。对于CDN,可以从最近的数据中心(即来自任何代理服务器)检索内容。要求列表多次,服务器可能会被请求淹没,即使它们是来自同一网络域中的节点。现在,越来越多的设备发出包含请求和响应的数据,而每个设备都需要目的设备的IP地址才能够顺利完成传输。

而这两种传输方式都可能受到各种攻击的影响,如欺骗,窥探,消息更改和拒绝服务(DoS)等。所以,从事网络开发的研究人员应该在网络中设置各种机制来预防或处理这些潜在风险的发生,以便重要的数据将保持安全,并且能够在不使数据发布者因为过多请求而瘫痪的情况下进行分发。

图1说明了IP网络和CDN(图1(a))以及NDN(图1(b))中此数据传输方案的实现。

IP网络在安全性方面的措施重点在于对传输路径的保护,而不是数据本身。安全性由加密方法,安全协议和不同的Internet安全包提供。例如,防火墙就是这样一种安全包,通过对传入进行限制来保护数据传输路径和传出的网络流量(见图1(a))。相反,NDN将数据指定为一流实体; 它保护数据本身,而不是信道。在NDN中作为响应发送回的每个数据包(图1(b)中的电影)必须进行数字签名,如图1(b)中的锁表示。此外,请求和响应在通过NDN网络传输时不需要IP地址。此外,与IP网络不同,NDN中的请求数据可能在到达数据的发布者之前在任何中间节点中找到。

图1 IP网络与NDN网络安全性措施区别

1.2 NDN的传输机制

NDN协议中对一个Interest包的处理次序依次为Content Store(CS),Pending Interest Table(PIT),Forwarding Information Base(FIB)。具体的NDN协议下对一个Interest包的处理过程如图2所示:

(1)首先根据兴趣包的名称查找CS,若CS中缓存有与之名称相对应的数据包,则从接收此兴趣包的接口将这个数据包原路返回给请求者,然后丢弃被满足了的兴趣包。

(2)若CS中没有相匹配的数据包,就在PIT中查询相同名称的PIT条目,如果有就说明之前有相同名称的兴趣包已经发出去了,只需要记录相应的接口就行,等到有对应的数据包传回来就根据PIT中存储的接口信息将数据包传送给请求者,并将这个数据包存储到CS中以服务后续其他节点的请求。

(3)如果在CS和PIT中都没有查找到相匹配的条目,则在FIB中查找,然后根据FIB中所对应的路由策略将该兴趣包转发至下一个节点,之后在PIT中添加新条目以表明该兴趣包正在请求解决中。

(4)如果在上面的三个表中都没有找到相匹配的条目则说明该节点无法处理这个兴趣包,直接将它丢弃。

图2 NDN协议转发流程

2 NDN的安全性及其潜在风险

2.1 NDN的安全性问题

NDN最重要的安全方面是每个数据包都由生产者密钥加密签名。每个数据包都包含名称和消息或有效负载上的签名。它还包含用于验证签名的密钥的信息。

发出请求的消费者在接收内容之前验证签名。虽然它不是强制性的,但签名也可以由任何中间路由器验证。中间路由器进行验证不是强制性的,因为签名的验证开销可能很高,并且路由器需要访问多个公钥证书以信任验证内容签名的公钥[3]。

内容签名隐含地确保了三个基本的安全功能:

(1)数据的完整性。有效的签名(根据名称和内容计算)可以确保签名内容完好无损。

(2)原产地认证。由于签名绑定到签名者的公钥,因此任何节点,路由器或使用者都可以验证内容是否源自其声明的生产者。

(3)正确性。因为签名将内容名称与其有效载荷联系起来,所以消费者可以安全地确定所传递的内容是否对应于所请求的内容。

除了这些安全问题之外,NDN架构还没有完全解决其他一些问题[4]。这些问题主要分为两类:隐私和信任。

关于隐私,兴趣包和数据包都不携带NDN中的消费者或生产者地址。源和目的地址的缺失有助于保护生产者和消费者的隐私。但是,其他类型的隐私仍然容易受到攻击:

(1)姓名隐私。兴趣包中的分层结构名称可以揭示关于内容的信息。这意味着NDN内容名称越有意义,它们就越敏感。

(2)缓存隐私。网络邻居可以使用定时信息来获取关于来自高速缓存的彼此的内容。这就导致了他们能够决定缓存是否命中。

(3)内容隐私。虽然数据包是加密签名的,但内容是没有加密,因此没有受到保护。

(4)签名隐私。NDN中的数据包在生产者的公钥的帮助下进行验证。但是,内容签名者的身份可能泄露有关个人和组织的敏感信息。这可能反过来侵犯了生产者的隐私[4]。

第二类公开问题是信任。在NDN中,使用内容签名者(生产者)公钥的内容签名验证提出了一个至关重要的问题:特定内容的生产者相对应的公钥是否值得信任?

其中一些问题已在NDN中得到解决,而其他问题仍处于研究阶段。很多对于NDN性能改进的设计反而削弱了NDN架构在安全性方面的性能,而这很有可能导致对NDN网络的攻击。

2.2 NDN可能遭受到的攻击

任何未来的互联网架构都必须在当今的网络上提供更好的保护和恢复能力,因为当今的网络正在受到持续的攻击。NDN的自身架构解决了诸如更改,欺骗和几种类型的DoS攻击。尽管如此,仍然有其它的专门针对于NDN的DOS攻击存在。此外,NDN架构的现有设计中的一些缺陷也会降低它的安全性。比如说,内容检索协议的设计漏洞会引发多种类型的攻击。

我们可以将对NDN的攻击分为以下两类。

2.2.1 拒绝服务攻击

在NDN中,DoS攻击通常在泛洪的帮助下实现。所以,攻击者会利用大量的网络中被入侵的僵尸主机。泛洪可以通过各种方式完成,我们在这里讨论其中的一部分[5]。

攻击者可以先利用大量无用的兴趣包使路由器的PIT表溢出,使路由器不能去处理那些合法的兴趣包。为此,攻击者使用大量僵尸主机来生成大量兴趣包。由于NDN的兴趣包不带有源地址且不受任何方式的保护,因此无法确定攻击来源并采取对策。

DoS攻击也可以根据请求动态生成。在这种情况下,所有兴趣包都被路由到内容的生产者,从而消耗带宽并破坏路由器的PIT。所有内容生产者都被这些兴趣包所淹没,这些兴趣包是由非法节点产生的。虽然生产者可以很快忽略这些兴趣包,但这些兴趣包仍然会占用路由器PIT的空间,直到它们最终到期。这种情况通常发生在那些不经常请求的非流行内容。僵尸主机可能会产生大量的兴趣包,这些内容使生产者的表溢出。通过这种方式,现有的和有效内容的合法兴趣包可能会被拒绝服务。

一部分的僵尸主机假装成一个消费者,甚至可能在网络内形成一个子网并生成他们自己的兴趣包。另外一部分僵尸主机在整个网络中充当生产者,并使用虚假的数据包回复这些虚假的兴趣包。因此,僵尸消费者与僵尸生产者之间的路由器的CS中将存储虚假的数据包,用来满足将来相同名称的兴趣包请求。在这种类型的攻击中,虚假内容将遍布整个网络,中间路由节点的缓存将被它们填满。随着缓存的剩余空间越来越小,路由节点可能会拒绝对合法内容的请求。也就是说,这种类型的DOS攻击会污染缓存和整个网络。

2.2.2 协议和定时攻击

NDN兴趣包中的两个特定功能使其特别容易受到协议攻击:[5]

(1)基于前缀的匹配。如果Y是X的前缀或者它与X完全匹配,则CCNx将名称为X的内容视为满足名称Y的兴趣。这些字段将使攻击者能够预测关于消费者希望检索的内容的信息。

(2)作用域。在CCNx中,兴趣包的范围用于确定它可以传播的最大跳数。使用此字段,攻击者可以监视访问特定范围内的敏感内容。

NDN兴趣包中的这些字段使得名称和内容隐私更容易泄露。

定时攻击侵犯缓存隐私。在此攻击中,攻击者的目标是确定用户是否请求了某一特定内容。可以通过在发送相应请求之后测量检索内容的时间来启动此攻击。通过这样做,攻击者确定内容是否已缓存在特定路由器上。具体而言,攻击者测量以下往返时间(RTT):从源检索内容的延迟,从最近的内容获取缓存内容的延迟路由器,以及获取目标内容的延迟。定时攻击不允许攻击者确切地检查内容的提取时间。它只允许他们检查最近是否提取了内容。 但是,它要求对手事先知道用户可能会查询哪些内容[6]。此类攻击可能会使缓存和内容隐私遭到泄露。

3 NDN对于各种攻击的防御

研究人员为可能的NDN攻击提出了几种对策,其中一些我们将在本文中讨论。一些工作提出了DoS攻击的解决方案,而其他工作则解决了协议和时序攻击以及解决方案。在解决攻击时,这些工作还讨论了几个NDN安全问题,如名称隐私,内容隐私,信任管理,因此该表还列出了每篇论文中讨论的问题。正如我们在本文前面提到的,NDN本身的架构支持集成完整性,源身份验证和正确性。

3.1 DoS攻击防御

针对DoS攻击的简单对策涉及设计路由器以跟踪每个域的兴趣包数量。如果路由器从同一域中获得太多兴趣包,则可以丢弃其中一些。但是,这种策略对于热门内容并不是特别有效。实际上,它允许攻击者通过发送太多请求来选择性地阻止某些内容。

另一种叫做波塞冬的防御机制旨在探测和发现缓解兴趣包泛洪攻击[6]。波塞冬是一组在路由器上运行的算法。算法不断监控每个接口的速率,不满意的兴趣包的整体流量。如果这些速率连续两次发生变化之间,显着某些界面的时间间隔,在违规上设置过滤器减少数量的接口即将到来的兴趣包。它还发布了一个推送警报消息用于表示兴趣包的泛洪攻击正在进行中。

为了提高NDN中的缓存稳健性,研究人员开发了CacheShield技术,以阻止非流行内容的缓存,从而减轻兴趣包泛洪攻击的影响[7]。它利用了正常和恶意请求不同的特性。根据这个方案,当路由器接收内容时,CacheShield评估某个内容是该被缓存还是丢弃。任何缓存替换算法例如LRU(最近最少使用)或可以使用LFU(最不常用)都可以与CacheShield配合使用。但是,CacheShield仅适用于有少量路由组成的小型拓扑结构。

最后,CCndnS(NDN的内容缓存策略)缓存策略提高了NDN的网内缓存,减少了DoS攻击的影响。在这个方法中,每个文件在分段分布,并在缓存中传播。它降低了冗余副本在缓存中的存储要求,它传播比较热门的内容提高命中率,而不是缓存非流行的内容达到少量命中。因此,它减轻了由非流行内容引起的缓存污染的影响。结果也表明可以通过使用分段LRU缓存替换策略进一步减少缓存污染的影响。

3.2 协议与定时攻击防御

对于内容,签名和名称隐私以及如何在NDN中解决这些问题。他们认为对称或非对称以及广播加密等方法是内容隐私的可行解决方案。他们还声称,使用环签名是实现签名隐私的首选方法,因为它不需要组管理员和组成员之间的交互。最后,他们考虑了使用Bloom过滤器作为维护名称隐私的潜在解决方案。Bloom过滤器用于根据名称标识私有内容。

ANDaNA(匿名命名数据网络应用程序)工具专门解决名称隐私问题[8]。它是在NDN中对洋葱路由的改编。它使用了比流行的Web浏览器Tor更多的匿名路由器,它完全实现了洋葱路由。Tor使用两层加密和解密,而ANDaNA使用三层来确保NDN中的名称隐私和匿名。然而,与Tor相比,ANDaNA在两种情况下会产生更差的性能:巨大的流量负载和大内容分发。

NDN中的一个重要安全挑战是为信任管理创建一个有效的模型,通过使用分层名称空间来组织内容,NDN允许把签名策略甚至密钥本身负载某个内容的名称中[9],对内容命名空间在某个层面上的认证,是由更高层面的密钥签名所给予的。如图3所示,parc.com的密钥签名认可了发布者george,george认可了他的desktop public key,这可以帮助消费者确定george是否是widgetA.mpg可信的发布者。

图3 适用于NDN的SDSI信任模型

其中一个解决方案指出,当路由器获取内容时,它应该存储相应的RTT,t。在将数据发送回请求节点之前,路由器等待时间t。结果,攻击者更难以确定数据是否被缓存。做出假设也更加困难。关于时间t期间的消费者和网络拓扑。另一种解决方案建议延迟对内容的前k个请求,以确保只有流行内容缓存在为少数消费者服务的边缘路由器上[10]。但是,必须随机选择这个k;否则,对手可能会违反此规定。通过生成k个请求并分析定时响应来实现该方案。这种方法的缺点是不希望对流行内容的请求经历路由器引入的这种延迟。

4 NDN安全性未来可能的研究方向

根据我们对不同安全问题和可能的攻击的调查,我们可以确定NDN的几个开放式研究挑战。

为NDN开发有效的签名生成和验证方案是一项挑战。SHA-256目前在NDN中使用[11]。验证成本可能是一个重要因素,因为虽然签名生成一次,但可能会多次验证。成本因素包括计算开销,带宽和验证签名所需的时间。在这种情况下,可以开发有效的批量签名验证方案。

管理生产者和消费者之间的信任是另一个可以做出有效贡献的研究问题。NDN架构允许消费者确定公钥主人是否是特定数据的可接受的发布者。除了数字签名之外,NDN方法还需要有效的机制来管理路由器在验证内容时如何信任对应于生产者的公钥。在这种情况下,路由器可能需要访问多个公钥证书才能信任密钥。研究人员已经提出了一些分层信任模型来解决这个问题,但它们会给网络带来很高的计算开销。为了克服这个问题,必须开发一种有效的信任模型。

在NDN中通过网络安全地传播路由更新会产生高通信开销。NDN路由协议通过交换LSA(链路状态通告)兴趣和LSA数据包来传播更新(OSPFN)或拉出路由更新(NLSR),只要有变化LSDB(链路状态数据库)[12]。在此过程中,CCNx协议同步计算所有数据上的哈希树,并在邻居之间交换根哈希以检测不一致性。该方法需要在网络上进行过多的消息交换,从而增加了通信开销。因此,有必要开发更有效的NDN安全路由协议。

处理名称和内容隐私是NDN中另一个开放的研究问题。这里,数据包由发布者进行数字签名,在消费者端验证。但是,没有标准加密方法来保护私有内容数据。NDN兴趣包中的名称可以显示有关获取的内容和目标主机(生产者)的大量信息。因此,开发一种加密方法来保护数据包的内容和名称隐私非常重要。

最后,NDN架构具有网内缓存机制。然而,在当前版本中,没有关于哪些内容存储在缓存中的明确定义的策略。要制定策略,我们必须先确定网络的内容缓存需求。因此,确定在多少缓存中应保留多少内容副本,同时在缓存中保持该内容的隐私非常重要。加密还可以让我们将名称和内容安全地保存在缓存中。但是,这引入了另一个必须解决的问题:当名称和内容都被加密时,内容是如何获取的?

我们相信NDN技术将在不久的将来实现商业化。NDN的应用研究驱动着NDN的发展。但是,到目前为止,研究人员只能在解决一些比较初级的问题,例如安全性,信任模型和管理机制,可扩展路由,数据转发策略设计和命名空间结构等。NDN中的许多领域,例如通过处理名称和内容隐私来减少路由开销和保护路由仍然需要进一步关注。本文探讨了可以做出有价值贡献的领域。未来的工作将集中在安全有效地转发网络中的兴趣包和数据包,减少开销,从而改进NDN安全性和路由的研究上。

猜你喜欢

生产者攻击者路由器
买千兆路由器看接口参数
维持生命
1月巴西生产者价格指数上涨3.92%
路由器每天都要关
路由器每天都要关
2019德国IF设计大奖
正面迎接批判
正面迎接批判
有限次重复博弈下的网络攻击行为研究
会安慰自己的人