包混淆和包转发的制作方法

文档序号:11455657阅读:199来源:国知局
包混淆和包转发的制造方法与工艺

交叉引用

本申请要求于2015年2月27日提交的题为“packetobfuscationandpacketforwarding(包混淆和包转发)”的美国专利申请序列号14/633,299的优先权,该申请的全部内容通过引用并入本文中。



背景技术:

在网络中,网络节点容易受到攻击和/或后门(backdoor),这使攻击者能够远程控制网络节点和/或从网络节点窃取数据业务,从而导致数据和隐私丢失。例如,攻击者可能使用转发网络节点以利用通过网络发送的转接业务。转接业务是指通过转发网络节点传递而不在转发网络节点终止的数据业务。非转接业务是指在转发网络节点终止的数据业务。可以从转发网络节点获取数据包,并且将其拷贝或发送至另一目的地。例如,攻击者可能会篡改现有包头部(例如,修改网际协议(internetprotocol,ip)地址),或者使用新的包头部(例如,使用ip寻址时的ip)对数据包进行封装。

为了增加安全性,网络运营商可以使用逐跳加密,逐跳加密提供在网络链路上的包保密性,但不提供在网络节点内的包保密性。替选地,网络运营商可以使用站对站加密,站对站加密提供在网络链路上和转接路由器内的保密性。然而,站对站加密不对包头部信息进行加密,从而不防止受保护的业务被窃取以作进一步的分析,例如离线解密。业务所有者可以使用端对端加密以提供有效载荷的保密性。然而,端对端加密不对包头部或业务元数据提供保密性,从而不防止加密业务被窃取以作进一步分析。



技术实现要素:

在一种实施方式中,本公开内容包括一种包混淆方法,该包混淆方法包括:接收数据包,该数据包具有路由头部部分和有效载荷部分;对路由头部部分执行第一混淆以生成混淆的路由头部部分;对至少有效载荷部分执行第二混淆以生成混淆的有效载荷部分;以及将混淆的路由头部部分与混淆的有效载荷部分进行组合以形成混淆的包。

在另一实施方式中,本公开内容包括一种包转发方法,该包转发方法包括:接收混淆的数据包,该混淆的数据包包括混淆的路由信息;从多个转发规则条目中识别与混淆的路由信息对应的转发规则条目;以及根据该转发规则条目来发送混淆的数据包。

在又一实施方式中,本公开内容包括一种设备,该设备包括:发送器;处理器,该处理器耦接至存储器和发送器,其中,存储器包括计算机可执行指令,所述计算机可执行指令存储在非暂态计算机可读介质中使得计算机可执行指令当由处理器执行时使处理器:使用包混淆函数来混淆路由信息;根据所混淆的路由信息来生成多个转发规则条目;将多个转发规则条目发送给网络中的至少一个网络节点;将包混淆函数发送给网络中的至少一个网络节点;以及将去混淆函数发送给网络中的至少一个网络节点。

在再一实施方式中,本公开内容包括一种包转发方法,该包转发方法包括:使用包混淆函数来混淆路由信息;根据所混淆的路由信息来生成多个转发规则条目;将多个转发规则条目发送给网络中的至少一个网络节点;将包混淆函数发送给网络中的至少一个网络节点;以及将去混淆函数发送给网络中的至少一个网络节点。

根据以下结合附图和权利要求书作出的详细描述将更清楚地理解这些特征和其他特征。

附图说明

为了更完整地理解本公开内容,现在参考以下结合附图和详细描述而作出的简要描述,其中相同的附图标记表示相同的部件。

图1是一种实施方式的用于实现包混淆的系统的示意图。

图2是一种实施方式的对于网元的包混淆方法的流程图。

图3是一种实施方式的对于网元的包转发方法的流程图。

图4是一种实施方式的对于网元的包去混淆方法的流程图。

图5是一种实施方式的网元的示意图。

具体实施方式

首先应当理解,尽管下面提供了一种或更多种实施方式的说明性实现方式,但是所公开的系统和/或方法可以使用任意多种技术来实现,而无论上述技术为当前公知的技术还是现有技术。本公开内容决不应限于下面所示出的说明性实现方式、附图和技术——包括本文所示出和描述的示例性设计和实现方式——而是可以在所附权利要求书的范围以及其等同方案的完整范围内被修改。

本文公开了用于通过使用加密、散列和其他数据加扰技术来混淆数据包、通过网络来路由混淆的数据包以及将数据包去混淆的各种实施方式。混淆数据包保护数据包——包括其头部和有效载荷——的隐私。通过混淆数据业务使得头部不能够被预测、篡改或伪造还可以防止攻击者窃取和转发数据业务。包混淆对包头部和有效载荷二者进行混淆,并且可以采用协议无感知转发(protocolobliviousforwarding,pof)。pof在不需要理解数据包的头部格式的情况下通过网络转发数据包。pof允许基于流的例如由偏移和长度标识的特定分段中的值来转发数据包。混淆数据包提供了在转接期间可以提高隐私性的另外的保护层。可以减少用于保护转发设备的资源以及运营商(carrier)的成本。通过使用包混淆来混淆数据包使得供应商能够在运营商不完全信任设备的情况下为运营商提供网络节点,这可以增加供应商的收入。在一种实施方式中,网络节点可以获取包混淆函数、接收数据包、使用包混淆函数来混淆数据包、使用混淆的路由头部来识别转发规则条目以及根据该转发规则条目来发送混淆的数据包。在另一实施方式中,网络节点可以接收混淆的数据包、使用混淆的路由头部来识别转发规则条目以及根据该转发规则条目来发送混淆的数据包。在又一实施方式中,网络节点可以接收混淆的数据包,并且使用去混淆函数将混淆的数据包去混淆。

图1是一种实施方式的用于实现包混淆的系统100的示意图。系统100包括控制器102和多个网络节点104至114。控制器102是集中式控制器(例如,软件定义网络(software-definednetwork,sdn)控制器),并且与网络节点104至114通信。控制器102被配置成向网络节点104至114提供包混淆函数、去混淆函数、一个或更多个密钥和/或转发规则。网络节点104至114可以是支持通过系统100传输数据包的任何设备和/或部件。例如,当数据业务被配置成从网络节点104流向网络节点114时,网络节点104是入口网络节点并且网络节点114是出口网络节点。在一些实施方式中,网络节点104至114包括交换机、路由器、本领域普通技术人员在阅读本公开内容时会理解的用于传送数据包的任何其他适当的网络设备或其组合。在一种实施方式中,网络节点104至114配置有包混淆函数。在另一实施方式中,网络节点104至114被配置成从控制器102接收包混淆函数。网络节点104至114中的一个或更多个被配置成:获取包混淆函数和转发规则条目;使用包混淆函数来混淆数据包;使用混淆的数据包的预定部分来识别转发规则条目;以及根据该转发规则条目来发送混淆的数据包。在一种实施方式中,混淆的路由信息在混淆的数据包中占用的位置与原始路由信息在原始数据包中占用的位置相同。此外,网络节点104至114中的一个或更多个被配置成:获取转发规则条目;接收混淆的数据包;使用混淆的数据包的预定部分来识别转发规则条目;以及根据该转发规则条目来发送混淆的数据包。此外,网络节点104至114中的一个或更多个被配置成:使用去混淆函数将混淆的数据包去混淆。网络节点104至114经由多个链路或隧道(例如,多协议标签交换(multiprotocollabelswitching,mpls)隧道)彼此耦接并且与控制器102耦接。本文所讨论的链路可以是诸如电链路、光链路的物理链路和用于传输数据的逻辑链路(例如,虚拟链路)。虽然针对控制器102和网络节点104至114的特定配置公开了图1的实施方式,应注意的是,系统100可以包括任何适当数量的控制器102和网络节点104至114或者本领域普通技术人员在阅读本公开内容时会理解的控制器102和网络节点104至114的配置。

控制器102被配置成获取或建立用于传送混淆的数据包的转发规则和密钥。例如,控制器102可以被配置成:使用包混淆函数来混淆用于网络的路由信息,并且生成多个转发规则条目。路由信息可以包括目的地地址或者可以标识网络中的流。在一种实施方式中,控制器102被配置成将转发规则传送给网络节点106至112。在一种实施方式中,网络节点104和网络节点114被配置成从控制器102获取包混淆函数和密钥。替选地,网络节点104和网络节点114被配置成例如通过使用动态密钥分配来从其他网络节点104至114获取密钥。

包混淆函数以下述方式混淆数据包:使得数据包不相似于或遵循传统格式结构,因此不能够使用传统协议(例如,ip协议和mpls协议)来处理。对于未被授权的网络节点而言,混淆的头部与目的地之间的关联是未知的。这样,未被授权的网络节点不能够对数据包进行重新封装以将数据包路由至预期目的地。包混淆函数可以包括:用于包混淆的指令或算法和/或用于包去混淆的指令或算法;用于对数据包的至少一部分进行加密和/或解密的加密指令;以及用于通过使用一个或更多个密钥对数据包的至少一部分进行散列的密码指令。密钥可以包括:用于加密算法的加密密钥;用于密码算法的认证密钥;以及本领域普通技术人员在阅读本公开内容时会理解的任何其他类型的密钥。转发规则可以包括:转发表;查找表;用于确定或关联转发规则条目和混淆的数据包的指令;一个或更多个转发规则条目;以及用于使用转发规则条目来路由混淆的数据包的指令。转发规则条目可以包括但不限于:通过网络的流或路径;下一跳标识符;端口标识符以及网络地址(例如,ip地址)。流是指通过网络的至少一部分的路径,所述网络的至少一部分沿该路径包括一个或更多个网络节点104至114。

在一种实施方式中,包混淆函数对数据包的头部部分应用密码算法(例如,键控散列算法)以生成混淆的头部,并且对数据包的头部部分和有效载荷部分应用加密算法以生成混淆的有效载荷。在另一实施方式中,对数据包的仅有效载荷部分应用加密算法以生成混淆的有效载荷。然后,通过混淆的头部对混淆的有效载荷进行封装以生成混淆的数据包。混淆的头部包括混淆的路由头部部分和混淆的安全头部部分。安全头部部分可以包括安全参数索引、序列号以及认证数据。安全参数索引用于指示用于对数据包进行混淆或去混淆的密钥或算法。序列号用于防止重放攻击。认证数据是被创建用于对混淆的数据包进行验证或认证的数据。可以使用密钥来认证混淆的数据包。例如,可以对混淆的路由头部部分和混淆的有效载荷中的至少一部分应用密码算法和认证密钥以生成测试数据。当测试数据与认证数据匹配时混淆的数据包被验证。

在一种实施方式中,包混淆函数被配置成通过将路由信息(例如,目的地地址或mpls隧道)与随机数据进行级联来生成混淆的头部。密码算法包括对级联的结果应用的散列函数(例如,安全散列算法(securehashingalgorithm,sha)256)。路由信息和散列函数的结果具有一对一映射。可以使用散列函数的结果来建立转发表中的转发规则条目。例如,将使用散列函数的结果建立的转发规则条目映射至通过网络的流。未配置有包混淆函数和密钥的其他网络节点不能够篡改混淆的头部。可以使用混淆的头部的至少一部分例如混淆的路由头部部分来识别转发表中的转发规则条目。混淆的路由头部部分被唯一地分配给转发规则条目。数据包的有效载荷通过使用加密算法(例如,使用高级加密标准(advancedencryptionstandard,aes)-128)来加密,并且与混淆的头部进行组合。所得到的混淆的数据包通过包混淆函数来加密。混淆的头部可以在任何预定位置与混淆的有效载荷进行组合。可以对所有数据包应用包混淆函数,并且对于每个转发规则条目而言包混淆函数可以是唯一的。可以采用本领域普通技术人员在阅读本公开内容时会理解的任何其他适当的包混淆函数来生成混淆的数据包,该混淆的数据包包括混淆的头部和混淆的有效载荷。可以使用去混淆函数和密钥将混淆的数据包去混淆,以生成去混淆的数据包。去混淆函数可以颠倒或倒置由包混淆函数对混淆的数据包应用的步骤,以获得原始数据包。例如,去混淆函数可以将混淆的有效载荷与混淆的头部解封装,并且颠倒由包混淆函数应用的步骤以恢复原始的头部和有效载荷。

网络节点104被配置成接收数据包160,数据包160例如可以是从另一网络中的网络节点发送的ip包。网络节点104被配置成:使用包混淆函数来生成混淆的数据包162。网络节点104被配置成对数据包160应用包混淆函数以生成混淆的数据包162。在一种实施方式中,网络节点104可以采用一个或更多个密钥与包混淆函数结合来生成混淆的数据包162。混淆的数据包162包括混淆的头部和混淆的有效载荷。网络节点104被配置成使用混淆的头部来确定网络节点106是混淆的数据包162的下一跳。网络节点104使用混淆的头部来识别与混淆的数据包162的流或下一跳相关联的转发规则条目。例如,混淆的数据包包括值为0x0011223344556677的混淆的路由头部部分。转发表可以包括条目{0,64,表2},这表示使用混淆的数据包中的从位置0到位置63的比特作为搜索关键字,并且将该搜索关键字与表2一起使用。表2包括条目{0x0011223344556677,eth0/0/0},该条目与搜索关键字对应并且指示要将混淆的数据包转发至接口eth0/0/0。网络节点104确定该转发规则条目与网络节点106相关联。网络节点104将混淆的数据包162发送给网络节点106。未配置有包混淆函数和密钥的网络节点不能够对混淆的数据包162进行篡改或解密。网络节点106被配置成:接收混淆的数据包162;使用混淆的头部和转发规则来确定网络节点108是与混淆的数据包162相关联的下一跳;以及将混淆的数据包162发送给网络节点108。类似地,网络节点108至112被配置成:接收混淆的数据包162;使用混淆的头部和转发规则来确定与混淆的数据包162相关联的下一跳;以及将混淆的数据包162发送给下一跳。网络节点114被配置成:接收混淆的数据包162并且将其去混淆。例如,网络节点114被配置成对数据包162应用去混淆函数以恢复原始的数据包160。网络节点114被配置成使用数据包160的头部中所提供的路由信息(例如,目的地地址)来发送数据包160。

图2是一种实施方式的对于网络节点的包混淆方法200的流程图。包混淆方法200用于混淆数据包以及通过网络发送混淆的数据包。在一种实施方式中,网络节点(例如,图1中的网络节点104)被配置成:获取包混淆函数、一个或更多个密钥及转发规则;使用包混淆函数和一个或更多个密钥来混淆数据包;以及发送混淆的数据包。在步骤202处,网络节点获取包混淆函数和转发规则,转发规则包括多个转发规则条目。网络节点还可以获取一个或更多个密钥,如与包混淆函数相关联的加密密钥和认证密钥。在一种实施方式中,网络节点从控制器(例如,图1的控制器102)获取包混淆函数、密钥以及转发规则。在步骤204处,网络节点接收数据包。数据包可以是ip数据包或本领域普通技术人员在阅读本公开内容时会理解的任何其他适当的包类型。在步骤206处,网络节点使用包混淆函数来混淆数据包。网络节点对数据包应用包混淆函数以生成混淆的数据包,该混淆的数据包包括混淆的头部和混淆的有效载荷。在步骤208处,网络节点使用混淆的头部的混淆的路由头部部分来识别转发表中的转发规则条目。例如,转发表将混淆的路由头部部分与通过网络的流或替选地与流中的下一跳节点唯一地关联。网络节点基于混淆的头部仅知道混淆的数据包接下来去往的地点。网络节点不能够了解混淆的数据包的整个源路由。此外,网络节点不能够再现预期源路由的混淆的头部,并且不能够修改混淆的头部以将混淆的数据包拷贝给未被授权的接收者。在步骤210处,网络节点根据通过混淆的路由头部部分识别的转发规则条目来将混淆的数据包发送给下一跳网络节点。

图3是一种实施方式的对于网络节点的包转发方法300的流程图。包转发方法300用于通过网络转发混淆的数据包。在一种实施方式中,网络节点(例如,图1中的网络节点106至112)被配置成:获取转发规则;接收混淆的数据包;识别与混淆的数据包相关联的转发规则条目;以及根据该转发规则条目来转发混淆的数据包。在步骤302处,网络节点获取转发规则,转发规则包括多个转发规则条目。在一种实施方式中,网络节点从控制器(例如,图1中的控制器102)接收转发规则。在步骤304处,网络节点接收混淆的数据包。混淆的数据包包括混淆的头部和混淆的有效载荷。可选地,网络节点可以获取一个或更多个密钥,并且例如通过使用混淆的数据包和密钥对该混淆的数据包进行认证。在步骤306处,网络节点识别与混淆的路由头部部分相关联的转发规则条目。混淆的路由头部部分引用与混淆的头部唯一地关联的转发规则条目。在步骤308处,网络节点根据该转发规则条目将混淆的数据包沿流发送给另一网络节点。

图4是一种实施方式的对于网络节点的包去混淆方法400的流程图。可以采用包去混淆方法400以将混淆的数据包去混淆。在一种实施方式中,网络节点(例如,图1中的网络节点114)被配置成:获取去混淆函数和一个或更多个密钥;接收混淆的数据包;使用去混淆函数将混淆的数据包去混淆;以及发送去混淆的数据包。在步骤402处,网络节点获取去混淆函数。网络节点还可以获取与去混淆函数相关联的一个或更多个密钥。在一种实施方式中,网络节点从控制器(例如,图1中的控制器102)获取去混淆函数和一个或更多个密钥。在步骤404处,网络节点接收混淆的数据包。混淆的数据包包括混淆的头部和混淆的有效载荷。可选地,网络节点可以例如使用混淆的数据包和密钥对该混淆的数据包进行认证。在步骤406处,网络节点使用去混淆函数将混淆的数据包去混淆。在一种实施方式中,去混淆函数颠倒由包混淆函数对混淆的数据包应用的步骤以生成去混淆的数据包。在步骤408处,网络节点使用在去混淆的数据包的头部中提供的路由信息(例如,目的地地址)将去混淆的数据包发送给另一网络节点。

图5是网络设备500的示意图。网络设备500可以适用于实现所公开的实施方式。例如,网络设备500可以实现系统100中的网络节点104至114以及方法200至400。网络设备500包括端口510、收发器单元(tx/rx)520、处理器530以及存储器560,其中存储器560包括包混淆模块570。端口510耦接至tx/rx520,tx/rx520可以是发送器、接收器或其组合。tx/rx520可以经由端口510发送和接收数据。处理器530被配置成处理数据。存储器560被配置成存储用于实现本文所描述的实施方式的数据和指令。网络设备500还可以包括电-光(electrical-to-optical,eo)部件和光-电(optical-to-electrical,oe)部件,所述电-光部件和光-电部件耦接至端口510和tx/rx520用于接收和发送电信号和光信号。

处理器530可以由硬件和软件来实现。处理器530可以被实现为一个或更多个中央处理单元(centralprocessingunit,cpu)芯片、逻辑单元、核(例如,作为多核处理器)、现场可编程门阵列(field-programmablegatearray,fpga)、专用集成电路(applicationspecificintegratedcircuit,asic)以及数字信号处理器(digitalsignalprocessor,dsp)。处理器530与端口510、tx/rx520以及存储器560通信。

存储器560包括一个或更多个磁盘、磁带驱动器以及固态驱动器,并且可以用作溢出数据存储装置,该溢出数据存储装置用于在程序被选择用于执行时存储这样的程序以及用于存储在程序执行期间读取的指令和数据。存储器560可以是易失性和非易失性的,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(random-accessmemory,ram)、三态内容可寻址存储器(ternarycontent-addressablememory,tcam)以及静态随机存取存储器(staticrandom-accessmemory,sram)。包混淆模块570在处理器530上实现,处理器530执行用于实现各种实施方式如方法200至400的指令。

尽管在本公开内容中提供了几种实施方式,但是应当理解,在不脱离本公开内容的精神或范围的情况下,所公开的系统和方法可以以许多其他具体形式来实施。本发明的示例应被视为说明性而非限制性的,并且意图并不限于本文所给出的细节。例如,各个元件或部件可以被组合或合并在其他系统中,或者某些特征可以省略或不实现。

此外,在不脱离本公开内容的范围的情况下,各种实施方式中描述和说明为分立或单独的技术、系统、子系统和方法可以与其他系统、模块、技术或方法进行组合或合并。被示出为或论述为彼此耦接或者彼此直接耦接或通信的其他项可以不论以电方式,机械方式还是以其他方式通过某个接口、设备或中间部件而被间接地耦接或进行通信。本领域技术人员能够确定其他更改、替换以及改变的示例并且在不偏离本文所公开的精神和范围的情况下还可以做出其他更改、替换以及改变的示例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1