CN111585890B - 基于SRv6的网络路径验证方法及系统 - Google Patents

基于SRv6的网络路径验证方法及系统 Download PDF

Info

Publication number
CN111585890B
CN111585890B CN202010280706.3A CN202010280706A CN111585890B CN 111585890 B CN111585890 B CN 111585890B CN 202010280706 A CN202010280706 A CN 202010280706A CN 111585890 B CN111585890 B CN 111585890B
Authority
CN
China
Prior art keywords
router
segment
segmented
data packet
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010280706.3A
Other languages
English (en)
Other versions
CN111585890A (zh
Inventor
李贺武
周江
刘君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202010280706.3A priority Critical patent/CN111585890B/zh
Publication of CN111585890A publication Critical patent/CN111585890A/zh
Application granted granted Critical
Publication of CN111585890B publication Critical patent/CN111585890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种基于SRv6的网络路径验证方法及系统,该方法包括:根据预设网络路径,获取每个分段路由器的会话密钥和IP地址;根据目标Tag字段和目标Segment List字段,得到初始化后的分段路由头;将初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;根据预设网络路径,获取当前跳分段路由器的IP地址,并根据当前跳分段路由器的IP地址,将目标数据包发送到当前跳分段路由器,以供当前跳分段路由器由器对目标数据包进行网络路径验证。本发明实施例提供的一种基于SRv6的网络路径验证系统,本发明实施例节省了包头开销,保护了用户的隐私。

Description

基于SRv6的网络路径验证方法及系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于SRv6的网络路径验证方法及系统。
背景技术
在互联网中,发送者对网络路径毫不知情,其仅仅需要将目的地址填入数据包然后将包发给路由器即可,网络包在网络中的真实转发路径是由路由器根据路由算法和网络状况来决定的。
现有的转发机制虽然保证了互联网的高效运行,但是网络包传输路径未知且不可控,网络传输过程中没有对网络包进行校验,导致现有的转发机制并不能适用于所有的网络场景。尤其是在一些高安全要求的网络传输业务中,需要明确指定网络流的传输路径,并且使路径不可伪造,同时还要保证数据的正确性。一个常见的例子是,公司或者机构购买了云服务器后需要确保自己的业务流按照指定顺序通过一些云上节点,比如,先通过防火墙等安全检测节点后再进入服务器进行进一步处理。通常情况下,并不是网络流路径上所有节点都是被发送方信任的,如何保证自己的网络流在被不可信的节点转发时仍不破坏其原有路径完整性是一个亟需解决的问题。
可信的网络路径是因特网的理想属性,已有研究提出了许多基于源路由的新协议包头用于携带路径验证字段,但是其带来的缺点也很明显,任何额外的协议包头都会或多或少地降低网络性能。因此,现在亟需一种基于SRv6的网络路径验证方法及系统来解决上述问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于SRv6的网络路径验证方法及系统。
第一方面,本发明实施例提供了一种基于SRv6的网络路径验证方法,包括:
根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址;
将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标Segment List字段,得到初始化后的分段路由头;
将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;
根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器。
进一步地,所述根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址,包括:
根据预设网络路径,获取所述预设网络路径中所有分段路由器的本地密钥和IP地址;
根据每个分段路由器的本地密钥和所述预设网络路径的路径创建时间,获取每个分段路由器的会话密钥。
进一步地,所述根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,包括:
根据所述预设网络路径,获取每个分段路由器节点的消息认证码;
根据每个分段路由器节点的会话密钥和消息认证码,按照所述预设网络路径,依次获取每个分段路由器节点的安全标识符,并将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段。
进一步地,所述安全标识符通过以下公式得到:
Figure BDA0002446469420000031
Figure BDA0002446469420000032
其中,pktMACi表示第i个分段路由器对应的中间变量,用于防止目标数据包的负载和段列表被篡改;
Figure BDA0002446469420000033
表示第i个分段路由器的会话密钥对应的消息认证码,SL表示临时列表,Payload表示目标数据包的有效负载,||表示字符串拼接操作,SIDi表示第i个分段路由器的安全标识符,IPi+1表示上一跳分段路由器节点的IP地址,IPi-1表示下一跳分段路由器节点的IP地址,T表示路径创建时间,
Figure BDA0002446469420000034
表示抑或操作。
第二方面,本发明实施例提供了一种基于SRv6的网络路径验证方法,包括:
获取目标数据包,所述目标数据包的分段路由头包括Tag字段和Segment List字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;
对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;
根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器。
进一步地,在所述根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证之后,所述方法还包括:
若合法性验证通过,则将所述目标数据包的源地址更新为当前跳分段路由器的IP地址,并将所述目标数据包的目的地址更新为下一跳分段路由器的IP地址;
若合法性验证未通过,则将所述目标数据包作为丢弃包。
第三方面,本发明实施例提供了一种基于SRv6的网络路径验证系统,包括:
网络路径处理模块,用于根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址;
分段路由头构建模块,用于将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标Segment List字段,得到初始化后的分段路由头;
数据包构建模块,用于将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;
发送模块,用于根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器。
第四方面,本发明实施例提供了一种基于SRv6的网络路径验证系统,包括:
数据包获取模块,用于获取目标数据包,所述目标数据包的分段路由头包括Tag字段和Segment List字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;
第一验证模块,用于对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;
第二验证模块,用于根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器。
第五方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所提供的方法的步骤。
第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所提供的方法的步骤。
本发明实施例提供的一种基于SRv6的网络路径验证方法及系统,本发明实施例提供的基于SRv6的网络路径验证方法,相比现有方法没有创造新协议头,而是借助已有的SRv6协议头来实现路径验证功能,节省包头开销。同时,路径和两端信息被隐藏,攻击者无法在路径中某一个节点通过流量分析获取用户行为以及对流量进行分类,保护了用户的隐私。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于SRv6的网络路径验证方法的流程示意图;
图2为本发明实施例提供的网络可信路径验证机制的示意图;
图3为本发明实施例提供的分段路由头的扩展示意图;
图4为本发明实施例提供的路径初始化的流程示意图;
图5为本发明实施例提供的数据包初始化的流程示意图;
图6为本发明另一实施例提供的基于SRv6的网络路径验证方法的流程示意图;
图7为本发明实施例提供的数据包验证更新的流程示意图;
图8为本发明实施例提供的基于SRv6的网络路径验证系统的结构示意图;
图9为本发明另一实施例提供的基于SRv6的网络路径验证系统的结构示意图;
图10为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
IPv6分段路由(Segment Routing IPv6,简称SRv6)是基于源路由理念而设计的在网络上转发IPv6数据包的一种协议。基于IPv6转发面的SRv6,通过在IPv6包中插入一个路由扩展头(Segment Routing Header,简称SRH),即分段路由头,然后,在SRH中压入一个显式的IPv6地址栈,通过中间节点不断的进行更新目的地址和偏移地址栈的操作来完成逐跳转发。并且,SRH仅被支持SRv6的网络设备识别,对于不支持的SRv6的网络设备,也能将包正常转发,SRv6的使用是未来网络趋势,它的出现也给其他应用提供了新的载体,避免了网络应用在部署中的兼容性问题。然而,SRv6虽然指定了转发路径,但是仍然存在被攻击者破坏路径的可能性。
为了验证网络包是否按照指定网络路径进行转发,本发明实施例在不改动分段路由头格式的前提下,扩展SRv6功能使得SR路由器(分段路由器)能够验证网络包是否按照指定路径转发。需要说明的是,本发明实施例仅阐述对SRv6的扩展,未提及的对SRH的其他操作处理与原生SRv6一致。
图1为本发明实施例提供的基于SRv6的网络路径验证方法的流程示意图,如图1所示,本发明实施例提供了一种基于SRv6的网络路径验证方法,包括:
步骤101,根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址。
在本发明实施例中,将发送端作为执行主体进行说明。首先,发送端接收到控制器组建好预设网络路径,根据该预设网络路径,获取路径中每个分段路由器的会话密钥和IP地址,其中,在本发明实施例中,控制器利用每个SR路由器的本地密钥和路径创建时间生成会话密钥Ki=H(secreti|T),H表示散列函数,Ki表示第i个SR路由器的会话密钥,secreti表示第i个SR路由器的本地密钥,T表示路径创建时间,在预设网络路径组建完成之后,控制器将整条路径的会话密钥和IP地址告知发送端。图2为本发明实施例提供的网络可信路径验证机制的示意图,可参考图2所示,控制器在完成路径初始之后,将整条路径的会话密钥和IP地址告知发送端,发送端对接收到的数据包进行初始化之后,再按照预设网络路径将该数据包发送到第一跳分段路由器,以使得每一跳分段路由器都对这个数据包进行验证和更新,最终发送到接收端。
步骤102,将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标Segment List字段,得到初始化后的分段路由头;
步骤103,将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;
步骤104,根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器。
在本发明实施例中,仅对SRH中的Tag字段和Segment List字段的初始化进行说明,其他字段的初始化与原生SRv6一致。图3为本发明实施例提供的分段路由头的扩展示意图,可参考图3所示,对于每个要发送的数据包,SRH的Tag字段都被初始化为路径创建时间T。在生成Segment List时,发送端初始维护一个空的临时列表SL,然后开始遍历路径中每一个分段路由器节点,依次产生每一个分段路由器节点对应的安全标识符(SecurityIdentifiers,简称SID)并写入SRH的Segment List字段中。具体地,在本发明实施例中,发送端生成路径中第i个节点的SID时,先计算
Figure BDA0002446469420000081
其中,
Figure BDA0002446469420000082
表示使用会话密钥为Ki的消息认证码(Message authentication code,简称MAC),Payload表示包的有效负载,||代表字符串拼接操作;然后,再计算
Figure BDA0002446469420000083
其中,IPi+1和IPi-1分别是第i+1个和第i-1个节点的IP地址,
Figure BDA0002446469420000084
表示抑或操作。在生成SIDi后,将其写入SRH的Segment List字段中,同时,计算
Figure BDA0002446469420000085
并将其插入临时列表SL中,以用于后续SID的生成。当完成SRH的初始化后,发送端将该数据包的源地址和目的地址分别填写上自己的IP地址和第一跳SR路由器的地址后,作为目标数据包发送到第一跳SR路由器。
进一步地,在本发明实施例中,当第i个SR路由器收到包时,首先根据数据包SRH中的Tag字段获取路径创建时间,判断时间是否过期,如果没有则生成会话密钥Ki=H(secreti|T);然后,计算
Figure BDA0002446469420000086
其中,SL0,i-1表示SRH中的部分SegmentList,下标范围从0到i-1;接着,解码出下一跳分段路由器的IP地址
Figure BDA0002446469420000087
最后,将IP包头的源地址更新为当前分段路由器IP地址,将目的地址更新为下一跳分段路由器IP地址,并且将SRH中的SIDi更新为
Figure BDA0002446469420000088
随后将该数据包转发出去。
本发明实施例提供的基于SRv6的网络路径验证方法,相比现有方法没有创造新协议头,而是借助已有的SRv6协议头来实现路径验证功能,节省包头开销。同时,路径和两端信息被隐藏,攻击者无法在路径中某一个节点通过流量分析获取用户行为以及对流量进行分类,保护了用户的隐私。
在上述实施例的基础上,所述根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址,包括:
根据预设网络路径,获取所述预设网络路径中所有分段路由器的本地密钥和IP地址;
根据每个分段路由器的本地密钥和所述预设网络路径的路径创建时间,获取每个分段路由器的会话密钥。
图4为本发明实施例提供的路径初始化的流程示意图,可参考图4所示,在本发明实施例中,控制器拥有全局SR路由器信息,并且可以组建预设网络路径,每个SR路由器拥有自己的IP地址及一个本地密钥secret,本地密钥在路由器出厂时被初始化并且仅被SR路由器和控制器知道。发送端在发送数据前,首先向控制器请求预设网络路径,控制器选定中间节点组后,按照顺序依次生成每个中间路由器的会话密钥Ki=H(secreti|T),最后,控制器将整条路径的会话密钥和IP地址通过安全通道(如TLS)告知发送端。
在上述实施例的基础上,所述根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,包括:
根据所述预设网络路径,获取每个分段路由器节点的消息认证码;
根据每个分段路由器节点的会话密钥和消息认证码,按照所述预设网络路径,依次获取每个分段路由器节点的安全标识符,并将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段。
图5为本发明实施例提供的数据包初始化的流程示意图,可参考图5所示,在本发明实施例中,在发送端发送每个数据包之前,SRH的Tag字段都被初始化为路径创建时间T。在生成Segment List时,发送端初始维护一个空的临时列表SL,用于保存中间变量;然后开始遍历路径中每一个分段路由器节点,依次产生每一个分段路由器节点对应的安全标识符(Security Identifiers,简称SID)并写入SRH的Segment List字段中。具体地,在本发明实施例中,发送端生成路径中第i个节点的SID时,先计算
Figure BDA0002446469420000091
其中,pktMACi表示第i个分段路由器对应的中间变量,用于防止包负载和段列表被篡改,
Figure BDA0002446469420000092
表示使用会话密钥为Ki的消息认证码(Message authentication code,简称MAC),Payload表示包的有效负载,||代表字符串拼接操作;然后,再计算
Figure BDA0002446469420000093
其中,IPi+1和IPi-1分别是第i+1个和第i-1个节点的IP地址,
Figure BDA0002446469420000094
表示抑或操作,需要说明的是,在本发明实施例中,路径中的最后一个节点是没有下一跳IP地址的,所以,此时IPi+1为发送端的IP地址,这样接收端可以知道包的真实源地址。在生成SIDi后,将其写入SRH的Segment List字段中,同时,计算
Figure BDA0002446469420000105
并将其插入临时列表SL中,以用于后续SID的生成。当完成SRH的初始化后,发送端将该数据包的源地址和目的地址分别填写上自己的IP地址和第一跳SR路由器的地址后,作为目标数据包发送到第一跳SR路由器。
在上述实施例的基础上,所述安全标识符通过以下公式得到:
Figure BDA0002446469420000101
Figure BDA0002446469420000102
其中,pktMACi表示第i个分段路由器对应的中间变量,用于防止目标数据包的负载和段列表被篡改;
Figure BDA0002446469420000103
表示第i个分段路由器的会话密钥对应的消息认证码,SL表示临时列表,Payload表示目标数据包的有效负载,||表示字符串拼接操作,SIDi表示第i个分段路由器的安全标识符,IPi+1表示上一跳分段路由器节点的IP地址,IPi-1表示下一跳分段路由器节点的IP地址,T表示路径创建时间,
Figure BDA0002446469420000104
表示抑或操作。
本发明实施例不需要采用开销较大的公私钥等加密算法,仅仅涉及MAC和Hash这些轻量级操作,降低了网络负担。
图6为本发明另一实施例提供的基于SRv6的网络路径验证方法的流程示意图,如图6所示,本发明实施例提供了一种基于SRv6的网络路径验证方法,包括:
步骤601,获取目标数据包,所述目标数据包的分段路由头包括Tag字段和SegmentList字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;
步骤602,对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;
步骤603,根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器。
本发明实施例提供的一种基于SRv6的网络路径验证方法,本发明实施例提供的基于SRv6的网络路径验证方法,相比现有方法没有创造新协议头,而是借助已有的SRv6协议头来实现路径验证功能,节省包头开销。同时,路径和两端信息被隐藏,攻击者无法在路径中某一个节点通过流量分析获取用户行为以及对流量进行分类,保护了用户的隐私。
在上述实施例的基础上,在所述根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证之后,所述方法还包括:
若合法性验证通过,则将所述目标数据包的源地址更新为当前跳分段路由器的IP地址,并将所述目标数据包的目的地址更新为下一跳分段路由器的IP地址;
若合法性验证未通过,则将所述目标数据包作为丢弃包。
在本发明实施例中,图7为本发明实施例提供的数据包验证更新的流程示意图,可参考图7所示,将SR路由器作为执行主体进行说明,当第i个中间SR路由器收到一个数据包后,首先根据SRH中的Tag字段,即根据路径创建时间判断路径是否过期,在当前时间超过路径有效期后,该路径不再可用,在本发明实施例中,路径有效期可由人工预设。当路径过期时,SR路由器将包丢弃不再处理,否则继续进行包的验证。当路径的有效期未过期时,则使用路径创建时间T和本地密钥secret,计算会话密钥Ki=H(secreti|T);然后使用会话密钥K计算
Figure BDA0002446469420000111
其中,SL表示SRH中的部分Segment List,即临时列表,其范围是从第一个节点到当前节点的上一个节点,只有当上游节点均成功验证包并更新自己的SID后,此时计算结果才会正确;接着,计算包的下一跳IP地址
Figure BDA0002446469420000112
需要说明的是,任何错误的输入(例如,错误的上一跳IP地址IPi-1、pktMACi、SIDi和T)都会导致下一跳IP地址IPi+1计算错误,从而因为IP地址不合法导致包被丢弃。如果下一跳IP地址合法则代表该数据包验证通过,SR路由器根据自身的SID,更新数据包SRH中对应的SID为
Figure BDA0002446469420000113
以此向下游节点证明自己已验证并转发此数据包。最后,更新数据包的源地址为当前跳SR路由器的IP地址,目的地址为下一跳SR路由器的IP地址,然后将数据包转发给下一跳。
图8为本发明实施例提供的基于SRv6的网络路径验证系统的结构示意图,如图8所示,本发明实施例提供了一种基于SRv6的网络路径验证系统,包括网络路径处理模块801、分段路由头构建模块802、数据包构建模块803和发送模块804,其中,网络路径处理模块801用于根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址;分段路由头构建模块802用于将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标SegmentList字段,得到初始化后的分段路由头;数据包构建模块803用于将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;发送模块804用于根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器。
本发明实施例提供的一种基于SRv6的网络路径验证系统,相比现有方法没有创造新协议头,而是借助已有的SRv6协议头来实现路径验证功能,节省包头开销。同时,路径和两端信息被隐藏,攻击者无法在路径中某一个节点通过流量分析获取用户行为以及对流量进行分类,保护了用户的隐私。
图9为本发明另一实施例提供的基于SRv6的网络路径验证系统的结构示意图,如图9所示,本发明实施例提供了一种基于SRv6的网络路径验证系统,包括数据包获取模块901、第一验证模块902和第二验证模块903,其中,数据包获取模块901用于获取目标数据包,所述目标数据包的分段路由头包括Tag字段和Segment List字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;第一验证模块902用于对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;第二验证模块903用于根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器。
本发明实施例提供的一种基于SRv6的网络路径验证系统,相比现有方法没有创造新协议头,而是借助已有的SRv6协议头来实现路径验证功能,节省包头开销。同时,路径和两端信息被隐藏,攻击者无法在路径中某一个节点通过流量分析获取用户行为以及对流量进行分类,保护了用户的隐私。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图10为本发明实施例提供的电子设备结构示意图,参照图10,该电子设备可以包括:处理器(processor)1001、通信接口(Communications Interface)1002、存储器(memory)1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信。处理器1001可以调用存储器1003中的逻辑指令,以执行如下方法:根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址;将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标Segment List字段,得到初始化后的分段路由头;将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器;
或,获取目标数据包,所述目标数据包的分段路由头包括Tag字段和Segment List字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器。
此外,上述的存储器1003中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的基于SRv6的网络路径验证方法,例如包括:根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址;将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标Segment List字段,得到初始化后的分段路由头;将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器;
或,获取目标数据包,所述目标数据包的分段路由头包括Tag字段和Segment List字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种基于SRv6的网络路径验证方法,其特征在于,包括:
根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址;
将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标Segment List字段,得到初始化后的分段路由头;
将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;
根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器;
所述安全标识符通过以下公式得到:
Figure FDA0003000350790000011
Figure FDA0003000350790000012
其中,pktMACi表示第i个分段路由器对应的中间变量,用于防止目标数据包的负载和段列表被篡改;
Figure FDA0003000350790000013
表示第i个分段路由器的会话密钥对应的消息认证码,SL表示临时列表,Payload表示目标数据包的有效负载,||表示字符串拼接操作,SIDi表示第i个分段路由器的安全标识符,IPi+1表示上一跳分段路由器节点的IP地址,IPi-1表示下一跳分段路由器节点的IP地址,T表示路径创建时间,
Figure FDA0003000350790000014
表示异或操作。
2.根据权利要求1所述的基于SRv6的网络路径验证方法,其特征在于,所述根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址,包括:
根据预设网络路径,获取所述预设网络路径中所有分段路由器的本地密钥和IP地址;
根据每个分段路由器的本地密钥和所述预设网络路径的路径创建时间,获取每个分段路由器的会话密钥。
3.根据权利要求1所述的基于SRv6的网络路径验证方法,其特征在于,所述根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,包括:
根据所述预设网络路径,获取每个分段路由器节点的消息认证码;
根据每个分段路由器节点的会话密钥和消息认证码,按照所述预设网络路径,依次获取每个分段路由器节点的安全标识符,并将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段。
4.一种基于SRv6的网络路径验证方法,其特征在于,包括:
获取目标数据包,所述目标数据包的分段路由头包括Tag字段和Segment List字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;
对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;
根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器;
所述安全标识符通过以下公式得到:
Figure FDA0003000350790000021
Figure FDA0003000350790000022
其中,pktMACi表示第i个分段路由器对应的中间变量,用于防止目标数据包的负载和段列表被篡改;
Figure FDA0003000350790000023
表示第i个分段路由器的会话密钥对应的消息认证码,SL表示临时列表,Payload表示目标数据包的有效负载,||表示字符串拼接操作,SIDi表示第i个分段路由器的安全标识符,IPi+1表示上一跳分段路由器节点的IP地址,IPi-1表示下一跳分段路由器节点的IP地址,T表示路径创建时间,
Figure FDA0003000350790000031
表示异或操作。
5.根据权利要求4所述的基于SRv6的网络路径验证方法,其特征在于,在所述根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证之后,所述方法还包括:
若合法性验证通过,则将所述目标数据包的源地址更新为当前跳分段路由器的IP地址,并将所述目标数据包的目的地址更新为下一跳分段路由器的IP地址;
若合法性验证未通过,则将所述目标数据包作为丢弃包。
6.一种基于SRv6的网络路径验证系统,其特征在于,包括:
网络路径处理模块,用于根据预设网络路径,获取所述预设网络路径中每个分段路由器的会话密钥和IP地址;
分段路由头构建模块,用于将分段路由头的Tag字段初始化为路径创建时间,获取目标Tag字段;并根据所述会话密钥,将每个分段路由器节点的安全标识符写入分段路由头的Segment List字段,获取目标Segment List字段,以根据目标Tag字段和所述目标SegmentList字段,得到初始化后的分段路由头;
数据包构建模块,用于将所述初始化后的分段路由头插入到数据包的IP头和TCP头之间,得到目标数据包;
发送模块,用于根据所述预设网络路径,获取当前跳分段路由器的IP地址,并根据所述当前跳分段路由器的IP地址,将所述目标数据包发送到所述当前跳分段路由器,以供所述当前跳分段路由器由器根据所述目标Tag字段和目标Segment List字段对所述目标数据包进行网络路径验证,并将验证通过后的目标数据包发送到下一跳分段路由器;
所述安全标识符通过以下公式得到:
Figure FDA0003000350790000032
Figure FDA0003000350790000033
其中,pktMACi表示第i个分段路由器对应的中间变量,用于防止目标数据包的负载和段列表被篡改;
Figure FDA0003000350790000041
表示第i个分段路由器的会话密钥对应的消息认证码,SL表示临时列表,Payload表示目标数据包的有效负载,||表示字符串拼接操作,SIDi表示第i个分段路由器的安全标识符,IPi+1表示上一跳分段路由器节点的IP地址,IPi-1表示下一跳分段路由器节点的IP地址,T表示路径创建时间,
Figure FDA0003000350790000042
表示异或操作。
7.一种基于SRv6的网络路径验证系统,其特征在于,包括:
数据包获取模块,用于获取目标数据包,所述目标数据包的分段路由头包括Tag字段和Segment List字段,其中,所述Tag字段为路径创建时间,所述Segment List字段中包含每个分段路由器节点的安全标识符;
第一验证模块,用于对所述目标数据包的Tag字段进行验证,若所述Tag字段的路径创建时间未过期,则根据当前跳分段路由器的本地密钥和所述路径创建时间,生成所述当前跳分段路由器的会话密钥;
第二验证模块,用于根据所述当前跳分段路由器的会话密钥,获取下一跳分段路由器的IP地址,并对下一跳分段路由器的IP地址的合法性进行验证,若合法性验证通过,则将所述目标数据包发送到下一跳分段路由器;
所述安全标识符通过以下公式得到:
Figure FDA0003000350790000043
Figure FDA0003000350790000044
其中,pktMACi表示第i个分段路由器对应的中间变量,用于防止目标数据包的负载和段列表被篡改;
Figure FDA0003000350790000045
表示第i个分段路由器的会话密钥对应的消息认证码,SL表示临时列表,Payload表示目标数据包的有效负载,||表示字符串拼接操作,SIDi表示第i个分段路由器的安全标识符,IPi+1表示上一跳分段路由器节点的IP地址,IPi-1表示下一跳分段路由器节点的IP地址,T表示路径创建时间,
Figure FDA0003000350790000046
表示异或操作。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述基于SRv6的网络路径验证方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述基于SRv6的网络路径验证方法的步骤。
CN202010280706.3A 2020-04-10 2020-04-10 基于SRv6的网络路径验证方法及系统 Active CN111585890B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010280706.3A CN111585890B (zh) 2020-04-10 2020-04-10 基于SRv6的网络路径验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010280706.3A CN111585890B (zh) 2020-04-10 2020-04-10 基于SRv6的网络路径验证方法及系统

Publications (2)

Publication Number Publication Date
CN111585890A CN111585890A (zh) 2020-08-25
CN111585890B true CN111585890B (zh) 2021-07-16

Family

ID=72111693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010280706.3A Active CN111585890B (zh) 2020-04-10 2020-04-10 基于SRv6的网络路径验证方法及系统

Country Status (1)

Country Link
CN (1) CN111585890B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532575B (zh) * 2020-10-13 2022-12-09 浙江连湖科技有限责任公司 一种基于Segment Routing的安全与网络融合的系统与方法
CN111935014B (zh) * 2020-10-19 2020-12-29 网络通信与安全紫金山实验室 基于SRv6网络的报文转发方法、装置、存储介质及电子设备
CN114499904A (zh) * 2020-11-11 2022-05-13 华为技术有限公司 一种报文处理方法及装置
CN112615878B (zh) * 2020-12-25 2022-09-06 网络通信与安全紫金山实验室 基于加解密的SRv6路径认证方法、系统、设备及介质
CN113507434B (zh) * 2021-05-28 2022-11-29 清华大学 一种通信网络中的数据安全传输方法、节点和系统
CN113347084B (zh) * 2021-06-23 2022-04-22 新华三信息安全技术有限公司 一种报文转发方法及装置
CN113824781B (zh) * 2021-09-16 2023-10-31 中国人民解放军国防科技大学 一种数据中心网络源路由方法与装置
CN114039707B (zh) * 2021-11-09 2023-11-07 中国人民解放军国防科技大学 基于SRv6可编程网络的报文传输超时处理方法
CN117424713A (zh) * 2022-07-11 2024-01-19 中兴通讯股份有限公司 通信方法、电子设备及存储介质
CN115174414A (zh) * 2022-07-22 2022-10-11 科来网络技术股份有限公司 自动识别会话中设备、设备路径的方法、系统及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108933763A (zh) * 2017-05-25 2018-12-04 华为技术有限公司 一种数据报文发送方法、网络设备、控制设备及网络系统
CN110300061A (zh) * 2018-03-23 2019-10-01 中兴通讯股份有限公司 一种通告绑定信息的方法、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9369387B2 (en) * 2013-10-24 2016-06-14 Cisco Technology, Inc. Segment routing based wide area network orchestration in a network environment
US11019075B2 (en) * 2018-06-26 2021-05-25 Cisco Technology, Inc. Providing processing and network efficiencies in protecting internet protocol version 6 segment routing packets and functions using security segment identifiers
CN110611588B (zh) * 2019-09-02 2022-04-29 深信服科技股份有限公司 一种网络创建方法、服务器、计算机可读存储介质和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108933763A (zh) * 2017-05-25 2018-12-04 华为技术有限公司 一种数据报文发送方法、网络设备、控制设备及网络系统
CN110300061A (zh) * 2018-03-23 2019-10-01 中兴通讯股份有限公司 一种通告绑定信息的方法、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"可信可控网络域间路由路径不一致问题研究";蒋健;《中国博士学位论文全文数据库 信息科技辑 2016年第12期》;20161215;全文 *

Also Published As

Publication number Publication date
CN111585890A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN111585890B (zh) 基于SRv6的网络路径验证方法及系统
US7370197B2 (en) Method and system for authenticating messages
US7849495B1 (en) Method and apparatus for passing security configuration information between a client and a security policy server
EP1880525B1 (en) Host identity protocol method and apparatus
US7412600B2 (en) Approaches for automatically switching message authentication keys
US7877601B2 (en) Method and system for including security information with a packet
EP2947845B1 (en) Border property validation for named data networks
EP2329621B1 (en) Key distribution to a set of routers
US7630364B2 (en) Securely managing network element state information in transport-layer associations
US10911581B2 (en) Packet parsing method and device
US20130166905A1 (en) Methods and arrangements for secure communication over an ip network
US7139679B1 (en) Method and apparatus for cryptographic protection from denial of service attacks
CN112995040B (zh) 一种基于设备标识计算的报文路径溯源方法及装置
US8683202B2 (en) Method for verifying the authenticity of messages exchanged according to a mobile internet protocol
CN114389835A (zh) 一种IPv6选项显式源地址加密安全验证网关及验证方法
CN108055285B (zh) 一种基于ospf路由协议的入侵防护方法和装置
US8364949B1 (en) Authentication for TCP-based routing and management protocols
Bartlett et al. IKEv2 IPsec Virtual Private Networks: Understanding and Deploying IKEv2, IPsec VPNs, and FlexVPN in Cisco IOS
CN109547281B (zh) 一种Tor网络的溯源方法
WO2022174739A1 (zh) 报文发送方法、签名信息的生成方法及设备
WO2023179174A1 (zh) 一种报文传输方法及相关设备
CN109769004B (zh) 基于保留格式加密的匿名通信方法、设备及系统
EP4221078A1 (en) Packet processing method and apparatus
CN113949661B (zh) 一种数据转发方法及装置
CN113014382A (zh) 基于有序聚合数字签名的服务链完整性检测方法、装置及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant