CN113329007B - IPv6传输路径分段认证方法以及装置 - Google Patents

IPv6传输路径分段认证方法以及装置 Download PDF

Info

Publication number
CN113329007B
CN113329007B CN202110578826.6A CN202110578826A CN113329007B CN 113329007 B CN113329007 B CN 113329007B CN 202110578826 A CN202110578826 A CN 202110578826A CN 113329007 B CN113329007 B CN 113329007B
Authority
CN
China
Prior art keywords
path
check point
target
checkpoint
fault
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
CN202110578826.6A
Other languages
English (en)
Other versions
CN113329007A (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.)
Capital Normal University
Original Assignee
Capital Normal 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 Capital Normal University filed Critical Capital Normal University
Priority to CN202110578826.6A priority Critical patent/CN113329007B/zh
Publication of CN113329007A publication Critical patent/CN113329007A/zh
Application granted granted Critical
Publication of CN113329007B publication Critical patent/CN113329007B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • 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

Landscapes

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

Abstract

本申请提出一种IPv6传输路径分段认证方法及装置,其中,方法包括:获取数据包的初始化包头信息,包头信息包括签名、多个参考标记字段以及检查点组;当路径中的节点收到数据包时,根据检查点组判断节点是否为检查点;若当前节点不是检查点,则根据检查点组更新签名并转发数据包;若当前节点是检查点,则将该节点作为目标检查点,并从多个参考标记字段中找到与目标检查点对应的目标参考标记字段,并根据目标参考标记字段及检查点组,对当前路径段进行验证;若验证失败,则控制目标检查点丢弃数据包,并向源端发送第一报文;其中,源端根据第一报文,进行故障定位。本申请不仅适用于IPv6网络,且实现了源地址验证和路径验证,提升了网络的吞吐量。

Description

IPv6传输路径分段认证方法以及装置
技术领域
本申请涉及网络安全技术领域,尤其涉及一种IPv6(Internet Protocol Version6,互联网协议第六版)传输路径分段认证方法以及装置。
背景技术
现有互联网体系结构面向性能的设计,由于没有考虑安全需求,缺乏用户与网络的信任根基,导致了互联网的源地址欺骗和传输路径不一致等的问题。以上问题会引出源地址欺骗,拒绝服务,非法流量窃取等多种攻击,致使网络安全受到巨大的威胁,给互联网及相关经济,社会和军事系统带来极大破坏。
发明内容
本申请旨在提供一种IPv6传输路径分段认证方法以及装置。
根据本申请的第一方面,提出了一种IPv6传输路径分段认证方法,包括:
获取数据包的初始化包头信息,所述包头信息包括签名、多个参考标记字段以及检查点组;其中,所述检查点组是指检查点的集合;所述检查点是指路径中需要检查的节点;
当所述路径中的节点收到所述数据包时,根据所述检查点组判断所述节点是否为所述检查点;
若所述节点不是所述检查点,则根据所述检查点组更新签名并转发数据包;
若所述节点是所述检查点,则将所述节点作为目标检查点,并从所述多个参考标记字段中找到与所述目标检查点对应的目标参考标记字段,并根据所述目标参考标记字段及所述检查点组,对当前路径段进行验证;
若验证失败,则控制所述目标检查点丢弃数据包,并向源端发送第一报文;其中,所述源端根据所述第一报文,进行故障定位。
在本申请实施例中,所述签名的计算公式如下:
Figure BDA0003085431490000011
其中,Signi为路径中第i个节点的签名,Ki为源端与路径中第i个节点的共享对称密钥,
Figure BDA0003085431490000021
是以密钥Ki加密的伪随机函数,Ri表示路径中第i个节点,src为源地址,dst为目的地址;
所述参考标记字段的计算公式如下:
Figure BDA0003085431490000022
T=Signk||Signk+1||Sign||Signn
Figure BDA0003085431490000023
其中,n表示当前检查点在路径中是第n个节点,SegInfon为当前检查点的标记字段,Kn为源端与当前检查点的共享对称密钥,
Figure BDA0003085431490000024
为以密钥Kn的消息验证码,PacketId为数据包标识,Checks为检查点组,T为当前检查点与上一检查点的路径上所有节点的签名的集合,k表示上一个检查点在路径中是第k个节点,Signk为上一个检查点的签名,Signk+1为路径上第k+1个节点的签名,
Figure BDA0003085431490000025
为以密钥KSD的消息验证码,KSD为源端与中间节点及目的端的共享对称密钥,flow是IPv6固定头部中的流标签,src为源地址,dst为目的地址。
需要说明的是,在所述初始化包头信息中,所述检查点组包括标记位,所述标记位的初始值为第一标记值或者第二标记值。
在本申请的一些实施例中,若所述标记位的初始值为第二标记值时,则所述根据所述检查点组更新签名并转发数据包,包括:
根据所述检查点组,判断当前标记位的值是否为第一标记值;
若所述当前标记位的值是所述第一标记值,则更新签名并转发数据包;
若所述当前标记位的值不是所述第一标记值,则仅转发数据包。
在本申请的一些实施例中,若所述标记位的初始值为第一标记值,则所述根据所述目标参考标记字段及所述检查点组,进行当前路径段的验证,包括:
获取所述目标检查点的实际签名;
根据所述目标检查点的实际签名,获取所述目标检查点的实际标记字段;
将所述目标检查点的实际标记字段与所述目标参考标记字段进行比对;若所述目标检查点的实际标记字段与所述目标参考标记字段相同,则当前路径段验证通过;若所述目标检查点的实际标记字段与所述目标参考标记字段不相同,则当前路径段验证失败;其中,所述当前路径段是指所述目标检测点与上一个检查点之间的路径;
若验证通过,则更新签名并转发数据包。
此外,若所述标记位的初始值为第二标记值,则根据所述目标参考标记字段及所述检查点组,进行当前路径段的验证,包括:
根据所述检测点组,确定当前路径段;
判断所述目标检查点是否为当前验证路径段的起始或者终点;
若所述目标检查点为当前验证路径段的起始,则将所述检查点组的标记位改为第一标记值,更新签名并转发数据包;
若所述目标检查点为当前验证路径段的终点,则将所述检查点组的标记位改为第二标记值,并获取所述目标检查点的实际签名;
根据所述目标检查点的实际签名,获取目标检查点的实际标记字段;
将所述目标检查点的实际标记字段与所述目标参考标记字段进行比对;若所述目标检查点的实际标记字段与所述目标参考标记字段相同,则当前路径段验证通过;若所述目标检查点的实际标记字段与所述目标参考标记字段不相同,则当前路径段验证失败;
若验证通过,则更新签名并转发数据包。
在本申请的一些实施例中,若所述路径中的检查点在预设的时间范围内未收到所述数据包,并将所述检查点也作为目标检查点,向源端发送第二报文;其中,所述源端根据所述第二报文进行故障定位。
进一步地,所述源端根据所述第一报文进行故障定位,包括:
根据所述第一报文,确定所述路径中的第一故障起始点及第一故障终点,并将所述第一故障起始点与第一故障终点对应的路径作为第一故障路径;其中,所述第一故障起始点为发送第一报文的目标检查点在所述路径中的上一个检查点;所述第二故障起始点为所述发送第一报文的目标检查点;
若在预设时间范围内,所述源端收到的所述目标检查点的第一报文数量超过阈值,将第一故障路径中的中间节点均设为检查点,并更新所述检查点组;其中,所述中间节点是指,在第一故障路径中,除了第一故障起始点和第一故障终点之外的所有节点;
根据所述第一报文及所述第一故障路径,确定第二故障起始点和第二故障终点,将所述第二故障起始点与第二故障终点的路径作为最终的故障路径。
此外,在本申请的一些实施例中,所述源端根据所述第二报文进行故障定位,包括:
根据所述第二报文,确定故障起始点和故障终点;其中,故障起始点为最靠近所述故障终点的未发送所述第二报文的检查点,所述故障终点为发送所述第二报文的目标检测点;
将所述故障起始点与所述故障终点对应的路径作为最终的故障路径。
根据本申请的第二方面,提供了一种IPv6传输路径分段认证装置,包括:
获取模块,用于获取数据包的初始化包头信息,所述包头信息包括签名、多个参考标记字段以及检查点组;其中,所述检查点组是指检查点的集合;所述检查点是指路径中需要检查的节点;
判断模块,用于在所述路径中的节点收到所述数据包时,根据所述检查点组判断所述节点是否为所述检查点;
转发模块,用于在所述节点不是所述检查点时,根据所述检查点组更新签名并转发数据包;
验证模块,用于在所述节点是所述检查点时,将所述节点作为目标检查点,并从所述多个参考标记字段中找到与所述目标检查点对应的目标参考标记字段,并根据所述目标参考标记字段及所述检查点组,对当前路径段进行验证;
故障定位模块,用于在验证失败时,控制所述目标检查点丢弃数据包,并向源端发送第一报文;其中,所述源端根据所述第一报文,进行故障定位。
在本申请的一些实施例中,所述签名的计算公式如下:
Figure BDA0003085431490000041
其中,Signi为路径中第i个节点的签名,Ki为源端与路径中第i个节点的共享对称密钥,
Figure BDA0003085431490000042
是以密钥Ki加密的伪随机函数,Ri表示路径中第i个节点,src为源地址,dst为目的地址;
所述参考标记字段的计算公式如下:
Figure BDA0003085431490000043
T=Signk||Signk+1||Sign||Signn
Figure BDA0003085431490000044
其中,n表示当前检查点在路径中是第n个节点,SegInfon为当前检查点的标记字段,Kn为源端与当前检查点的共享对称密钥,
Figure BDA0003085431490000045
为以密钥Kn的消息验证码,PacketId为数据包标识,Checks为检查点组,T为当前检查点与上一检查点的路径上所有节点的签名的集合,k表示上一个检查点在路径中是第k个节点,Signk为上一个检查点的签名,Signk+1为路径上第k+1个节点的签名,
Figure BDA0003085431490000046
为以密钥KSD的消息验证码,KSD为源端与中间节点及目的端的共享对称密钥,flow是IPv6固定头部中的流标签,src为源地址,dst为目的地址。
此外,在所述获取模块获取的初始化包头信息中,所述检查点组包括标记位,所述标记位的初始值为第一标记值或者第二标记值。
在本申请的一些实施例中,所述转发模块还用于:
在所述标记位的初始值为第二标记值时,根据所述检查点组判断当前标记位的值是否为第一标记值;
若所述当前标记位的值是所述第一标记值,则更新签名并转发数据包;
若所述当前标记位的值不是所述第一标记值,则仅转发数据包。
在本申请的一些实施例中,所述验证模块具体用于:
在所述标记位的初始值为第一标记值时,获取所述目标检查点的实际签名;
根据所述目标检查点的实际签名,获取所述目标检查点的实际标记字段;
将所述目标检查点的实际标记字段与所述目标参考标记字段进行比对;若所述目标检查点的实际标记字段与所述目标参考标记字段相同,则当前路径段验证通过;若所述目标检查点的实际标记字段与所述目标参考标记字段不相同,则当前路径段验证失败;其中,所述当前路径段是指所述目标检测点与上一个检查点之间的路径;
若验证通过,则更新签名并转发数据包。
在本申请的一些实施例中,所述验证模块还用于:
在所述标记位的初始值为第二标记值时,根据所述检测点组确定当前路径段;
判断所述目标检查点是否为当前验证路径段的起始或者终点;
若所述目标检查点为当前验证路径段的起始,则将所述检查点组的标记位改为第一标记值,更新签名并转发数据包;
若所述目标检查点为当前验证路径段的终点,则将所述检查点组的标记位改为第二标记值,并获取所述目标检查点的实际签名;
根据所述目标检查点的实际签名,获取目标检查点的实际标记字段;
将所述目标检查点的实际标记字段与所述目标参考标记字段进行比对;若所述目标检查点的实际标记字段与所述目标参考标记字段相同,则当前路径段验证通过;若所述目标检查点的实际标记字段与所述目标参考标记字段不相同,则当前路径段验证失败;
若验证通过,则更新签名并转发数据包。
在本申请的一些实施例中,所述故障定位模块还用于:
在所述路径中的检查点在预设的时间范围内未收到所述数据包时,将所述检查点也作为目标检查点,向源端发送第二报文;其中,所述源端根据所述第二报文进行故障定位。
在本申请的一些实施例中,所述故障定位模块还用于:
根据所述第一报文,确定所述路径中的第一故障起始点及第一故障终点,并将所述第一故障起始点与第一故障终点对应的路径作为第一故障路径;其中,所述第一故障起始点为发送第一报文的目标检查点在所述路径中的上一个检查点;所述第二故障起始点为所述发送第一报文的目标检查点;
若在预设时间范围内,所述源端收到的所述目标检查点的第一报文数量超过阈值,将第一故障路径中的中间节点均设为检查点,并更新所述检查点组;其中,所述中间节点是指,在第一故障路径中,除了第一故障起始点和第一故障终点之外的所有节点;
根据所述第一报文及所述第一故障路径,确定第二故障起始点和第二故障终点,将所述第二故障起始点与第二故障终点的路径作为最终的故障路径。
此外,在本申请的一些实施例中,所述故障定位模块还用于:
根据所述第二报文,确定故障起始点和故障终点;其中,故障起始点为最靠近所述故障终点的未发送所述第二报文的检查点,所述故障终点为发送所述第二报文的目标检测点;
将所述故障起始点与所述故障终点对应的路径作为最终的故障路径。
根据本申请的技术方案,通过源端计算路径中的检查点,将检查点分配在中间路由器,针对各检查点进行路径验证,从而对路径实现了分段验证,而不是仅目的端执行路径验证,若发现验证失败立即丢包,可以减少错误数据包的传输开销。同时,本申请也是一种适用于解决IPv6网络传输安全的方法,解决了目前的包标记法不适用于IPv6网络的问题。另外,由于源端仅选择少量的中间路由器执行验证,其余路由器仅对数据包进行签名转发,不仅可以减少传输开销,而且可以提高网络的吞吐量。此外,验证失败的检查点会向源端发送失败报文,以使源端根据失败报文进行故障定位,并及时建立新的正确连接,从而可以及时发现网络传输过程中的故障,减少由于网络安全造成的损失。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种IPv6传输路径分段认证方法的流程示意图;
图2为本申请实施例提出的一种IPv6传输路径分段认证方法实现方式的示意图;
图3为本申请实施例提出的一种针对整条路径验证的IPv6传输路径分段认证方法流程图;
图4为本申请实施例提出的一种针对自定义验证路径的IPv6传输路径分段认证方法流程图;
图5为本申请实施例提出的一种自定义验证路径的示意图;
图6为本申请实施例提出的关于故障定位的流程图;
图7为本申请实施例提出的一种IPv6传输路径分段认证装置。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的IPv6传输路径分段认证方法、装置及计算机设备。
需要说明的是,现有的关于源地址和路径安全验证的研究大体可分为基于标识验证、基于可信硬件和集中式控制的方向。其中,数据包标识方案由于高效率与高可靠性受到广泛关注。包标记法是由协议通过路由器为报文添加一定的标记信息,被攻击者主机上通过提取攻击报文中的标记信息实现攻击路径溯源的一种攻击溯源方案。此外,相比于IPv4报文的格式,IPv6报文提供了一种更灵活和可扩展的方式,但现有的数据包标记方案多数针对于IPv4数据包,关于IPv6协议的安全性研究较少,没有达到可以进行源地址认证以及路径验证的程度。
基于上述问题,本申请实施例提出了一种IPv6传输路径分段认证方法,用于实现源地址真实性验证,传输路径的验证及故障定位,以解决互联网的源地址欺骗和传输路径不一致等问题。
图1为本申请实施例提出的一种IPv6传输路径分段认证方法的流程图。需要说明的是,本申请实施例提出的IPv6传输路径分段认证方法可应用于IPv6传输路径分段认证装置。其中,该IPv6传输路径分段认证装置可被配置于计算机设备。如图1所示,该方法包括以下步骤:
步骤101,获取数据包的初始化包头信息,包头信息包括签名、多个参考标记字段以及检查点组。
其中,检查点组是指检查点的集合,检查点是指路径中需要检查的节点,也就是路径中需要检查的路由器。
由于IPv6协议中规定了两种目的的选项头,在本申请实施例中可以选择位于路由选项头之前的选项字段进行数据包的包头信息的添加。在数据包进行传输之前,源端会根据包头内容,初始化包头信息。在本申请实施例中,包头信息包括签名(Sign)、多个参考标记字段(SegInfon)及检查点组(Checks)。如表1所示,该包头信息还可以包括数据包标识(PacketID)、会话标识(SessionID)等。本发明人将上述包头命名为SPV(Source and PathVerification,源端和路径验证)包头。
表1SPV包头信息
Figure BDA0003085431490000081
其中,检查点组是指路径中需要进行路由检查的节点的集合。作为一种实现方式,检查点组的计算公式可以如公式(1)所示:
Figure BDA0003085431490000082
其中,Checks是检查点组;
Figure BDA0003085431490000083
是以密钥KSD的消息验证码,KSD为源端与中间节点及目的端的共享对称密钥;N是一串二进制数,且它的长度与路径长度相等(包括源端和目的端),此外,N的每一位与路径上的每一个节点(源端除外)对应,当该节点被源端设置为检查点时,该位置为1,否则为0。需要说明的是,N中可以存在一位标记位,用以设置自定义的路径验证。
作为一种示例,如图2所示,网络路径从源端到目的端共包括14个节点,源节点S在发送数据包之前选择节点R3和节点R7作为检查点,目的端D均会默认为检查点,按照路径上检查点的顺序,若最高位为标记为,且标记为默认为1(进行整条路径验证),则N=10010001000001。
此外,签名是指各节点的一个标识,通过此标识来证明该节点参与了此路径数据包的传输。可以理解为,签名相当于每个节点在当前传输路径上的一个签章,若某个节点收到了数据包并将其转发,该节点会在该数据包包头上盖一个签章,以证明该节点完成了数据传输的任务。在本申请实施例中,该签名的计算方式可以如公式(2)所示:
Figure BDA0003085431490000084
其中,Signi为路径中第i个节点的签名,Ki为源端与路径中第i个节点的共享对称密钥,
Figure BDA0003085431490000085
是以密钥Ki加密的伪随机函数,Ri表示路径中第i个节点,src为源地址,dst为目的地址。此外,i从0开始,路径中的第0个节点代表源端。也就是说,初始化的包头信息中,签名值为根据公式(2)计算出的Sign0
在本申请实施例中,可以将数据包的消息验证码作为数据包标识。其中生成消息验证码使用的密钥可以是相同的,对于不同内容的数据包产生不同的验证码,这样可以更好地防止重放攻击。如果在传输过程中,数据包的有效负载被修改,对这个包进行源认证和路径认证将毫无意义。作为一种示例,数据包标识可以使用公式(3)进行计算:
Figure BDA0003085431490000091
其中,PacketId为数据包标识,
Figure BDA0003085431490000092
为以密钥KSD的消息验证码,KSD为源端与中间节点及目的端的共享对称密钥,flow是IPv6固定头部中的流标签,src为源地址,dst为目的地址。
由于经过检查点组的计算之后,网络中整段路径将以检查点为界限被分为若干段,沿着路径顺序,第一段为源端到第一个检查点,第二段为第一个检查点到第二个检查点,依次类推,最后一段为最后一个检查点到目的端。在本申请实施例中,参考标记字段是代表相邻两个检查点间的路径信息,也就是说,源端获取了对应数据包的路径规划后,将相邻两个检查点之间有哪些节点,以及各节点之间的顺序记录在参考标记字段中。可以理解,网络中整段路径被检测点分为多个路径段,每一个路径段就会对应一个参考标记字段,各个参考标记字段将用于后续各检查点对路径段的验证。
作为一种示例,参考标记字段可以根据公式(4)和(5)进行计算:
Figure BDA0003085431490000093
T=Signk||Signk+1||Sign||Signn (5)
其中,n表示当前检查点在路径中是第n个节点,SegInfon为当前检查点的参考标记字段,Kn为源端与当前检查点的共享对称密钥,
Figure BDA0003085431490000094
为以密钥Kn的消息验证码,PacketId为数据包标识,Checks为检查点组,T为当前检查点与上一检查点的路径上所有节点的签名的集合,k表示上一个检查点在路径中是第k个节点,Signk为上一个检查点的签名,Signk+1为路径上第k+1个节点的签名,Signn表示当前检查点的签名。此外,PacketId和Sign的计算分别如公式(3)、公式(2)所示。
针对参考标记字段的计算,以图2为例进行说明。如图2所示,由于源端选择了节点R3和节点R7作为检查点,则检查点组可以理解为{R3,R7}。根据检查点组,整个网络路径被分为了三段,即源端S到检查点R3为第一段,检查点R3到检查点R7为第二段,检查点R7到目的端D为第三段。由于每一段路径均对应着一个参考标记字段,也就是说,初始化包头中的参考标记字段分别为:SegInfo3,SegInfo7和SegInfoD,将其计算后分别填入SegInfo字段中。
需要说明的是,在本申请实施例中,源端分别与目的端及中间节点共享对称密钥,在开始转发数据包前,可以使用现有的DRKey协议完成密钥分发与交换。
此外,在本申请实施例中,使用会话标识可以使源端在在每次会话周期结束后,重新进行检查点的设置,这样,不仅可以降低被攻击者探测到的概率,还可以将计算负载平摊到路径上每一个节点。
步骤102,当路径中的节点收到数据包时,根据检查点组判断节点是否为所述检查点。
也就是说,开始转发数据包后,需要判断路径中收到该数据包的节点是不是检查点,以使收到该数据包后进行不同操作。
由于检查点组可以理解为需要进行路径验证的节点的集合,所以只要判断当前收到该数据包的节点是否在检查组中即可。具体地实现方式可以如下:路径中的节点收到该数据包后,会在该数据包包头中获取检查点组Checks;由于KSD是共享对称密钥,所以可以根据检查点组及共享对称密钥,获取一串二进制数N;找到当前节点对应的N中的值是否为1,若为1,则说明当前节点是检查点,否则不是检查点。
步骤103,若当前节点不是检查点,则根据检查点组更新签名并转发数据包。
可以理解,若当前节点不是检查点,则无需对路径进行验证,只需要将当前节点的实际签名更新到包头信息对应的sign中,并向该数据包转发给下一节点,以证明当前节点参与了该数据包的传输。其中,当前节点的实际签名可通过上述公式(2)进行计算。
步骤104,若当前节点是检查点,则将当前节点作为目标检查点,并从多个参考标记字段中找到与目标检查点对应的目标参考标记字段,并根据目标参考标记字段及检查点组,对当前路径段进行验证。
可以理解,若当前节点是检查点,则当前节点需要执行验证操作,也就是需要验证当前节点所在的路径段内,参与数据包传输的节点及顺序与源端期望的是否一致,从而确定当前传输路径段是否与期望路径一致。
在本申请实施例中,由于源端的期望路径已按检查点分为多个路径段,以参考标记字段的形式填充在包头信息中,所以若实际传输路径与包头信息中对应的参考标记字段对应的路径一致,说明实际传输路径与期望路径一致,也就是验证通过,从而可以将当前节点的签名更新到包头信息中,继续进行数据包转发。若不一致,说明实际传输路径与期望路径不一致,或者数据包出错。其中,实际传输路径可以用实际标记字段表示,该实际标记字段根据数据包实际传输过程中的签名信息通过公式(4)(5)计算得到。参考标记字段可以在包头信息的多个参考标记字段中,选择与目标检查点对应的参考标记字段。
步骤105,若验证失败,则控制目标检查点丢弃数据包,并向源端发送第一报文;其中,源端根据第一报文,进行故障定位。
可以理解,若验证失败,可能是由于恶意路由器将数据比转发路径修改、乱序、增加或跳过了某些正确路径上的路由器,这时检查点会丢弃数据包并向源端发送第一报文,来通知源端当前检查点路径验证失败。源端收到第一报文后,根据第一报文的内容,确定故障路径段。
需要说明的是,目标检查点向源端发送的第一报文会包括该目标检查点收到的数据包包头信息中的签名,以及该目标检查点对应的实际签名。这样,源端根据收到的第一报文内容中的签名,来确定故障路径段。
根据本申请实施例提出的IPv6传输路径分段认证方法,通过获取由源端计算的检查点组,将检查点分配在中间路由器,针对各检查点进行路径验证,从而对路径实现了分段验证,而不是仅目的端执行路径验证,若发现验证失败立即丢包,可以减少错误数据包的传输开销。同时,也为IPv6网络提供了一种关于源地址和路径安全验证的包标记法。另外,由于源端仅选择少量的中间路由器执行验证,其余路由器仅对数据包进行签名转发,不仅可以减少传输开销,而且可以提高网络的吞吐量。此外,验证失败的检查点会向源端发送失败报文,以使源端根据失败报文进行故障定位,并及时建立新的正确连接,从而可以及时发现网络传输过程中的故障,减少由于网络安全造成的损失。
由于互联网应用场景的复杂性,在一些场景中需要对整条路径进行严格的路径验证,而在另一些场景中,并不需要对整条路径进行严格的路径验证,只需要自定义其中一段进行验证。所以为了提高该方法的适用性,在本申请实施例中,初始化包头信息中的检查点组会包括标记位,该标记位的初始值为第一标记值或者第二标记值。其中,标记位的初始值为第一标记值时,表示当前需要对整条路径进行验证,标记位的初始值为第二标记值时,表示自定义进行路径验证。
需要说明的是,通常可将检查点组的最高位设为标记位。在本申请的一些实施例中,将以检查点组的最高位设位标记位为例进行介绍。
为了进一步对该IPv6传输路径分段认证方法进行详细说明,接下来将针对整条路径验证和自定义路径验证分别进行介绍。
图3为本申请实施例提出的针对整条路径验证的IPv6传输路径分段认证方法流程图,如图3所示,该方法包括:
步骤301,获取数据包的初始化包头信息,包头信息包括签名、多个参考标记字段以及检查点组。
其中,检查点组的标记位为第一标记值,在本申请实施例中,以第一标记值为1进行示例说明。也就是说,检查点组的标记位的初始标记值为1,表示对整条路径进行验证。
步骤302,当路径中的节点收到数据包时,根据检查点组判断节点是否为所述检查点。
步骤303,若当前节点不是检查点,根据检查点组更新签名并转发数据包。
步骤304,若当前节点是检查点,则将当前节点作为目标检查点,并从多个参考标记字段中找到与目标检查点对应的目标参考标记字段。
可以理解,多个参考标记字段对应着根据检查点划分的多个路径段的节点及各节点的顺序,每个检查点验证当前检查点与路径中上一个检查点之间的路径段,也就是说,每个检查点验证的路径段对应着一个参考标记字段。如图2所示,若当前目标检查点为R3,则该目标检查点对应的目标参考标记字段为SegInfo3。
步骤305,获取目标检查点的实际签名。
由于目标检查点已收到了该数据包,也就是说该目标检查点已经是实际路径中的节点,所以在进行路径段验证时,需要将当前目标检查点也包含在内。目标检查点的实际签名的计算方式如公式(2)所示。
步骤306,根据目标检查点的实际签名,获取目标检查点的实际标记字段。
在本申请实施例中,目标检查点的实际标记字段是指该目标检查点与路径中的上一检查点之间的实际路径段中的节点及其顺序。目标检查点的实际标记字段的计算公式见公式(4)和(5)。
步骤307,将目标检查点的实际标记字段与目标参考标记字段进行比对。
可以理解,将目标检查点的实际标记字段与目标参考标记字段进行比对,也就是将该验证路径段的实际传输路径与期望传输路径进行比对。若目标检查点的实际标记字段与目标参考标记字段相同,也就是当前验证路径段的实际传输路径与期望传输路径一致,则当前路径段验证通过。若目标检查点的实际标记字段与目标参考标记字段不相同,说明当前验证路径段的实际传输路径与期望传输路径不一致,则当前路径段验证失败。
步骤308,若验证通过,则更新签名并转发数据包。
在本申请实施例中,若当前路径段通过,说明当前路径段内实际传输路径与期望传输路径一致,此时将目标检查点的实际签名更新到数据包包头的签名中,以证明该数据包的传输经过了该节点,并将数据包转发至下一节点。
步骤309,若验证失败,则控制目标检查点丢弃数据包,并向源端发送第一报文;其中,源端根据第一报文,进行故障定位。
根据本申请实施例提出的IPv6传输路径分段认证方法,通过获取源端的初始化包头信息,根据包头信息中检查点组标记位的初始值为第一标记值时,对数据包整个传输路径进行分段验证。其中,检查点将整个路径段分为多段路径,针对检查点进行对应路径段验证,从而实现整个路径的验证,不仅降低了传输开销,也提高了网络的吞吐量。
图4为本申请实施例提出的针对自定义验证路径的IPv6传输路径分段认证方法流程图,如图4所示,该方法包括:
步骤401,获取数据包的初始化包头信息,包头信息包括签名、多个参考标记字段以及检查点组。
其中,检查点组的标记位为第二标记值,在本申请实施例中,以第二标记值为0进行示例说明。也就是说,检查点组的标记位的初始标记值为0,表示进行自定义路径验证。该自定义路径验证是指,在整个路径中只选择其中一段进行验证。
步骤402,当路径中的节点收到数据包时,根据检查点组判断节点是否为所述检查点。
步骤403,若当前节点不是检查点,则根据检查点组,判断当前标记位的值是否为第一标记值。
由于针对自定义路径验证时,仅针对一段路径进行验证,也就是说仅针对某两个检查点之间的路径进行验证,所以若当前节点不在验证路径段内时,则不需要标记当前节点。此外,由于检查点组中的标记位的值会被对应的检查点进行变更,后续步骤会对此进行介绍,所以根据当前标记位的值,来确定是否需要更新签名。
步骤404,若当前标记位的值是第一标记值,则更新签名并转发数据包。
可以理解,如果当前标记位的值是第一标记值,说明当前已开始自定义路径验证,当前节点在验证路径中,所以需要根据公式(2)计算当前节点的实际签名,并将其更新到数据包包头信息中,以标记当前节点参与了实际数据包传输,再将数据包转发至下一节点。
举例而言,如图5所示,数据包包头中检查点组以最高位为标记位,第一标记值为1,第二标记值为0,其中节点R3和节点R7为检查点,且检查点组的标记位的初始值为0。若当前收到数据包的节点是R4,当前检查点组的标记位的值为1,则当前节点在自定义验证路径段内,所以需要计算R4对应的实际签名,并将其更新至数据包包头中,再将数据包转发至下一节点。
步骤405,若当前标记位的值是第二标记值,则仅转发数据包。
可以理解,如果当前标记位的值是第二标记值,说明当前节点不在验证路径中,所以无需在数据包中标记当前节点,也就是说无需计算当前节点的签名值,直接将数据包转发至下一节点。
如上示例中的图5所示,若当前节点为R1,且当前检查点组的标记位的值为0,说明当前节点不在验证路径中,此时节点R1收到数据包后,不更新数据包包头中的签名,直接转发数据包至下一节点。
步骤406,若当前节点是检查点,则将当前节点作为目标检查点,并根据检查点组,确定当前验证路径段。
可以理解,由于自定义路径验证仅针对路径中的一段路径进行验证,所以路径中的第一个检查点为自定义路径段的起始,路径中的第二个检查点为自定义路径段的终点,从而确定当前验证路径段。
步骤407,判断目标检查点是否为当前验证路径段的起始或者终点。
可以理解,自定义路径段的起始用于指示从此开始记录实际传输路径,自定义路径段的终点用于指示在此节点收到数据包时,需要进行自定义路径段的验证,且此节点之后不再记录实际传输路径。也就是说,目标检查点是自定义路径段的起始或者终端,对应的执行操作是不同的,所以需要判断该目标检查点是当前路径段的起始或者终点。
步骤408,若目标检查点为当前验证路径段的起始,则将检查点组的标记位改为第一标记值,更新签名并转发数据包。
由上述可知,若该目标检查点是当前验证路径段的起始,说明从该目标检查点开始记录实际传输路径,也就是说,在该目标检查点之后的路径中,非检查点收到数据包需要更新签名并转发数据包,检查点收到数据包需要进行路径验证。所以若该目标检查点是当前验证路径段的起始,则将检查点组的标记位改位第一标记值,以使路径中该目标检查点之后的节点收到数据包时,能执行对应的操作。
如上述示例中的图5,若目标检查点为R3,也就是说R3收到数据包之后,需要将检查点组中标记位的值改为1,并计算R3对应的实际签名更新至包头中,再转发至下一节点。从而R4收到数据包之后,根据检查点组标记位的值为1,即可知道此时需要记录实际传输路径,便更新签名再转发数据包。
步骤409,若所述目标检查点为当前验证路径段的终点,则将检查点组的标记位改为第二标记值,并从多个参考标记字段中找到与目标检查点对应的目标参考标记字段。
由上述可知,若该目标检查点是当前验证路径段的终点,说明在该目标检查点需要进行自定义路径段的验证,且从该目标检查点之后不再记录实际传输路径,也就是说,在该目标检查点需要对自定义路径段的实际传输路径与期望传输路径进行对比,且从该目标检查点之后不再更新签名。所以为了使该目标检查点之后的节点在收到数据包时不再更新签名,将检查点组的标记位改为第二标记值。
如上述示例中的图5,若R7为该目标检查点,则将检查点组的标记位改为0,并在数据包包头中获取SegInfo7作为目标参考标记字段。可见,在对路径中R3-R7进行自定义路径验证时,节点R3-R6对应的数据包包头中检查点组标记位的值为1,其余节点对应的数据包包头的检查点组标记位均为0,所以R7之后的节点在收到数据包时不再进行标记或验证,仅执行数据包的转发操作。
步骤410,获取目标检查点的实际签名。
步骤411,根据目标检查点的实际签名,获取目标检查点的实际标记字段。
步骤412,将目标检查点的实际标记字段与目标参考标记字段进行比对。
步骤413,若验证通过,则更新签名并转发数据包。
步骤414,若验证失败,则控制目标检查点丢弃数据包,并向源端发送第一报文;其中,源端根据第一报文,进行故障定位。
需要说明的是,图4中的步骤410~414与图3中的步骤305~309的实现方式一致,此处不再赘述。
根据本申请实施例提出的IPv6传输路径分段认证方法,通过获取源端的初始化包头信息,根据包头信息中检查点组标记位的初始值为第二标记值时,对数据包传输路径进行自定义路径段的验证,以满足自定义路径段验证的场景,提高了该方法的适用性。由于非验证路径上的节点收到数据包时,不需要更新签名,仅转发数据包,所以可以进一步地减少传输开销,提高中间节点的吞吐量。
基于上述实施例,若验证失败,则源端会根据目标检查点发送的第一报文进行故障定位,接下来将对故障定位的具体实现方式进行详细介绍。图6为源端根据第一报文进行故障定位的流程图,如图6所示,该故障定位的具体实现方式包括:
步骤601,根据第一报文,确定路径中的第一故障起始点及第一故障终点,并将第一故障起始点与第一故障终点对应的路径作为第一故障路径。
其中,第一故障起始点为发送第一报文的目标检查点在路径中的上一个检查点,第二故障起始点为发送第一报文的目标检查点。由于第一报文中会包括目标检查点对应的真实签名以及目标检查点收到的数据包包头中的签名信息,所以源端根据第一报文中的签名信息,可以确定第一故障起始点和第一故障终点。
举例而言,如图2所示,若源端收到了目标检查点R7的第一报文,则源端根据第一报文,确定R7是第一故障终点,R3为第一故障起始点,也就是说,将R3至R7这段路径作为第一故障路径。
步骤602,若在预设时间范围内,源端收到的目标检查点的第一报文数量超过阈值,将第一故障路径中的中间节点均设为检查点,并更新检查点组。
其中,中间节点是指第一故障路径中,除了第一故障起始点和第一故障终点之外的所有节点。
可以理解,若路径中某个节点收到恶意攻击之后,其下游中距离最近的检查点将收不到含有正确签名字段的数据包,也就是该检查点将会验证失败,并向源端发送第一报文。由于数据传输是持续性的,所以该检查点会不断地向源端发送第一报文,若源端收到的该检查点的第一报文数量超过设定的阈值,可以确定该检查点对应的路径段内存在故障。此时再将第一故障路径中的中间节点均设为检查点,并更新检查点组,以使该路径段内各中间节点收到数据包时均进行验证操作,从而进一步进行故障定位。
需要说明的是,为了避免出现故障误判,在本申请实施例中,若在预设的时间内,收到同一个目标检测点的第一报文数量超过了阈值之后,才会进一步进行故障定位,否则源端不再进行故障定位。因为将各中间节点均设为检查点,无疑会增大传输的开销,降低网络的吞吐量,所以需要确定当前路径段确实存在故障之后,再进行进一步地故障定位。
如上述举例中,若在预设时间内,源端收到的目标检查点R7的第一报文数量超过了预设的阈值,此时可以确定R3至R7中肯定存在故障。接下来,会将R3至R7中的各个节点均设为检查点,并根据公式(1)更新检查点组。从而,R4、R5、R6在收到数据包时,均会执行对应的验证操作,若验证失败则向源端发送第一报文,若验证通过,则更新签名并转发数据包。
步骤603,根据第一报文及第一故障路径,确定第二故障起始点和第二故障终点,将第二故障起始点与第二故障终点的路径作为最终的故障路径。
由于将路径段内的各中间节点均设为检查点,这样,将当前路径段分为多个子路径段,各检查点只进行对应的子路径段的验证,若验证通过,则说明对应的子路径段不存在故障,若验证失败,则向源端发送第一报文。
源端根据收到的第一报文,找到向源端发送第一报文的检查点,并根据路径中各检查点的顺序,确定向源端发送第一报文的检查点中处于路径中最上游的检查点,并将该检查点作为第二故障终点。根据第二故障终点,将与其相邻且位于其上游的检查点作为第二故障的起始点,从而确定最终的故障路径。
如上述举例中,如图2所示,将R4、R5和R6均设为检查点后,若源端收到了R5的第一报文,则将R5作为第二故障终点,且将R4作为第二故障起始点,从而确定R4至R5为故障路径。
此外,当路由器受到恶意攻击后,可能会将数据包丢弃后者转发到其他路径,这样会造成路径中的检查点收不到数据包。针对这种情况,可以预设一定的时间范围,若路径中的检查点再预设的时间范围内未收到数据包,将该检查点也作为目标检查点,并向源端发送第二报文。该第二报文中包含该目标检查点的实际签名信息,以使源端知道哪个检查点未收到数据包,以便于进行故障定位。
在本申请实施例中,源端根据第二报文进行故障定位的实现方式可以为:根据第二报文,确定故障的起始点和故障终点。其中,故障起始点为最靠近故障终点的未发送第二报文的检查点,也就是说,将与故障终点相邻且位于该故障终点上游的检查点作为故障起始点。故障终点为发送第二报文的目标检查点,路径中若某一处节点收到攻击使数据包丢弃或转发到其他路径上,则其下游的节点均可能在预设时间范围未收到数据包,所以若故障还未及时处理,路径中发送第二报文的目标检查点可能会有多个,此时仅将发送第二报文的目标检查点中,处于路径最上游的目标检查点作为故障终点,从而将故障起始点与故障终点对应的路径作为最终的故障路径。
如上述示例中,如图2所示,若R7在预设的时间范围内为收到数据包,则向源端发送了第二报文,源端根据第二报文信息,发现并没有收到检查点R3的第二报文,则将故障定位于R3至R7之间的路径。
根据本申请实施例的Pv6传输路径分段认证方法,各检查点收到数据包后若验证失败,则向源端发送第一报文,源端根据第一报文确定故障定位,以及时建立新的正确的连接,降低由于恶意路由器造成的数据丢失等损失。若预设时间段内某检查点发送的第一报文数量超过阈值,则将当前路径段内的中间节点均设为检查点,以进一步缩小故障定位,从而可以提高源端故障定位的准确性。此外,针对数据包丢失或转发路径错误的情况,使在预设时间范围内未收到数据包的检查点向源端发送第二报文,使源端根据报文内容,进行故障定位,从而使源端及时获取当前路径段的传输问题,进一步地提高了故障定位的覆盖面。
为了实现上述方法,本申请提出了一种IPv6传输路径分段认证装置。
图7为本申请实施例提出的一种IPv6传输路径分段认证装置。如图7所示,包括:
获取模块701,用于获取数据包的初始化包头信息,包头信息包括签名、多个参考标记字段以及检查点组;其中,检查点组是指检查点的集合;检查点是指路径中需要检查的节点;
判断模块702,用于在路径中的节点收到数据包时,根据检查点组判断节点是否为检查点;
转发模块703,用于在节点不是检查点时,根据检查点组更新签名并转发数据包;
验证模块704,用于在节点是检查点时,将节点作为目标检查点,并从多个参考标记字段中找到与目标检查点对应的目标参考标记字段,并根据目标参考标记字段及检查点组,对当前路径段进行验证;
故障定位模块705,用于在验证失败时,控制目标检查点丢弃数据包,并向源端发送第一报文;其中,源端根据第一报文,进行故障定位。
在本申请的一些实施例中,签名的计算公式如公式(2)所示,参考标记字段的计算公式如公式(3)、(4)和(5)所示。
此外,在获取模块获取的初始化包头信息中,检查点组包括标记位,标记位的初始值为第一标记值或者第二标记值。
在本申请的一些实施例中,转发模块703还用于:
在标记位的初始值为第二标记值时,根据检查点组判断当前标记位的值是否为第一标记值;
若当前标记位的值是第一标记值,则更新签名并转发数据包;
若当前标记位的值不是第一标记值,则仅转发数据包。
在本申请的一些实施例中,验证模块704具体用于:
在标记位的初始值为第一标记值时,获取目标检查点的实际签名;
根据目标检查点的实际签名,获取目标检查点的实际标记字段;
将目标检查点的实际标记字段与目标参考标记字段进行比对;若目标检查点的实际标记字段与目标参考标记字段相同,则当前路径段验证通过;若目标检查点的实际标记字段与目标参考标记字段不相同,则当前路径段验证失败;其中,当前路径段是指目标检测点与上一个检查点之间的路径;
若验证通过,则更新签名并转发数据包。
在本申请的一些实施例中,验证模块704还用于:
在标记位的初始值为第二标记值时,根据检测点组确定当前路径段;
判断目标检查点是否为当前验证路径段的起始或者终点;
若目标检查点为当前验证路径段的起始,则将检查点组的标记位改为第一标记值,更新签名并转发数据包;
若目标检查点为当前验证路径段的终点,则将检查点组的标记位改为第二标记值,并获取目标检查点的实际签名;
根据目标检查点的实际签名,获取目标检查点的实际标记字段;
将目标检查点的实际标记字段与目标参考标记字段进行比对;若目标检查点的实际标记字段与目标参考标记字段相同,则当前路径段验证通过;若目标检查点的实际标记字段与目标参考标记字段不相同,则当前路径段验证失败;
若验证通过,则更新签名并转发数据包。
在本申请的一些实施例中,故障定位模块705还用于:
在路径中的检查点在预设的时间范围内未收到数据包时,将检查点也作为目标检查点,向源端发送第二报文;其中,源端根据第二报文进行故障定位。
在本申请的一些实施例中,故障定位模块705还用于:
根据第一报文,确定路径中的第一故障起始点及第一故障终点,并将第一故障起始点与第一故障终点对应的路径作为第一故障路径;其中,第一故障起始点为发送第一报文的目标检查点在路径中的上一个检查点;第二故障起始点为发送第一报文的目标检查点;
若在预设时间范围内,源端收到的目标检查点的第一报文数量超过阈值,将第一故障路径中的中间节点均设为检查点,并更新检查点组;其中,中间节点是指,在第一故障路径中,除了第一故障起始点和第一故障终点之外的所有节点;
根据第一报文及第一故障路径,确定第二故障起始点和第二故障终点,将第二故障起始点与第二故障终点的路径作为最终的故障路径。
此外,在本申请的一些实施例中,故障定位模块705还用于:
根据第二报文,确定故障起始点和故障终点;其中,故障起始点为最靠近故障终点的未发送第二报文的检查点,故障终点为发送第二报文的目标检测点;
将故障起始点与故障终点对应的路径作为最终的故障路径。
根据本申请实施例提出的IPv6传输路径分段认证装置,通过源端计算路径中的检查点,将检查点分配在中间路由器,针对各检查点进行路径验证,从而对路径实现了分段验证,而不是仅目的端执行路径验证,若发现验证失败立即丢包,可以减少错误数据包的传输开销。同时,本申请也是一种适用于解决IPv6网络传输安全的方法,解决了目前的包标记法不适用于IPv6网络的问题。另外,由于源端仅选择少量的中间路由器执行验证,其余路由器仅对数据包进行签名转发,不仅可以减少传输开销,而且可以提高网络的吞吐量。此外,验证失败的检查点会向源端发送失败报文,以使源端根据失败报文进行故障定位,并及时建立新的正确连接,从而可以及时发现网络传输过程中的故障,减少由于网络安全造成的损失。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

Claims (9)

1.一种IPv6传输路径分段认证方法,其特征在于,包括:
获取数据包的初始化包头信息,所述包头信息包括签名、多个参考标记字段以及检查点组;其中,所述检查点组是指检查点的集合;所述检查点是指路径中需要检查的节点;
当所述路径中的节点收到所述数据包时,根据所述检查点组判断所述节点是否为所述检查点;
若所述节点不是所述检查点,则根据所述检查点组更新签名并转发数据包;
若所述节点是所述检查点,则将所述节点作为目标检查点,并从所述多个参考标记字段中找到与所述目标检查点对应的目标参考标记字段,并根据所述目标参考标记字段及所述检查点组,对当前路径段进行验证;
若验证失败,则控制所述目标检查点丢弃数据包,并向源端发送第一报文;其中,所述源端根据所述第一报文,进行故障定位;
其中,所述签名的计算公式如下:
Figure 257565DEST_PATH_IMAGE001
其中,Signi为路径中第i个节点的签名,Ki为源端与路径中第i个节点的共享对称密钥,
Figure 705864DEST_PATH_IMAGE002
是以密钥Ki加密的伪随机函数,Ri表示路径中第i个节点,src为源地址,dst为目的地址;
所述参考标记字段的计算公式如下:
Figure 485601DEST_PATH_IMAGE003
其中,n表示当前检查点在路径中是第n个节点,SegInfon为当前检查点的标记字段,Kn为源端与当前检查点的共享对称密钥,
Figure 880810DEST_PATH_IMAGE004
为以密钥Kn的消息验证码,PacketId为数据包标识,Checks为检查点组,T为当前检查点与上一检查点的路径上所有节点的签名的集合,k表示上一个检查点在路径中是第k个节点,Signk为上一个检查点的签名,Signk+1为路径上第k+1个节点的签名,Signn表示当前检查点的签名,
Figure 101707DEST_PATH_IMAGE005
为以密钥KSD的消息验证码,KSD为源端与中间节点及目的端的共享对称密钥,flow是IPv6固定头部中的流标签,src为源地址,dst为目的地址。
2.根据权利要求1所述的方法,其特征在于,在所述初始化包头信息中,所述检查点组包括标记位,所述标记位的初始值为第一标记值或者第二标记值。
3.根据权利要求2所述的方法,其特征在于,若所述标记位的初始值为第二标记值时,则所述根据所述检查点组更新签名并转发数据包,包括:
根据所述检查点组,判断当前标记位的值是否为第一标记值;
若所述当前标记位的值是所述第一标记值,则更新签名并转发数据包;
若所述当前标记位的值不是所述第一标记值,则仅转发数据包。
4.根据权利要求2所述的方法,其特征在于,若所述标记位的初始值为第一标记值,则所述根据所述目标参考标记字段及所述检查点组,进行当前路径段的验证,包括:
获取所述目标检查点的实际签名;
根据所述目标检查点的实际签名,获取所述目标检查点的实际标记字段;
将所述目标检查点的实际标记字段与所述目标参考标记字段进行比对;若所述目标检查点的实际标记字段与所述目标参考标记字段相同,则当前路径段验证通过;若所述目标检查点的实际标记字段与所述目标参考标记字段不相同,则当前路径段验证失败;其中,所述当前路径段是指所述目标检查点与上一个检查点之间的路径;
若验证通过,则更新签名并转发数据包。
5.根据权利要求2所述的方法,其特征在于,若所述标记位的初始值为第二标记值,则根据所述目标参考标记字段及所述检查点组,进行当前路径段的验证,包括:
根据所述检查点组,确定当前路径段;
判断所述目标检查点是否为当前验证路径段的起始或者终点;
若所述目标检查点为当前验证路径段的起始,则将所述检查点组的标记位改为第一标记值,更新签名并转发数据包;
若所述目标检查点为当前验证路径段的终点,则将所述检查点组的标记位改为第二标记值,并获取所述目标检查点的实际签名;
根据所述目标检查点的实际签名,获取目标检查点的实际标记字段;
将所述目标检查点的实际标记字段与所述目标参考标记字段进行比对;若所述目标检查点的实际标记字段与所述目标参考标记字段相同,则当前路径段验证通过;若所述目标检查点的实际标记字段与所述目标参考标记字段不相同,则当前路径段验证失败;
若验证通过,则更新签名并转发数据包。
6.根据权利要求1所述的方法,其特征在于,还包括:
若所述路径中的检查点在预设的时间范围内未收到所述数据包,并将所述检查点也作为目标检查点,向源端发送第二报文;其中,所述源端根据所述第二报文进行故障定位。
7.根据权利要求1所述的方法,其特征在于,所述源端根据所述第一报文进行故障定位,包括:
根据所述第一报文,确定所述路径中的第一故障起始点及第一故障终点,并将所述第一故障起始点与第一故障终点对应的路径作为第一故障路径;其中,所述第一故障起始点为发送第一报文的目标检查点在所述路径中的上一个检查点;所述第一故障起始点为发送所述第一报文的目标检查点;
若在预设时间范围内,所述源端收到的所述目标检查点的第一报文数量超过阈值,将第一故障路径中的中间节点均设为检查点,并更新所述检查点组;其中,所述中间节点是指,在第一故障路径中,除了第一故障起始点和第一故障终点之外的所有节点;
根据所述第一报文及所述第一故障路径,确定第二故障起始点和第二故障终点,将所述第二故障起始点与第二故障终点的路径作为最终的故障路径。
8.根据权利要求6所述的方法,其特征在于,所述源端根据所述第二报文进行故障定位,包括:
根据所述第二报文,确定故障起始点和故障终点;其中,故障起始点为最靠近所述故障终点的未发送所述第二报文的检查点,所述故障终点为发送所述第二报文的目标检查点;
将所述故障起始点与所述故障终点对应的路径作为最终的故障路径。
9.一种IPv6传输路径分段认证装置,其特征在于,包括:
获取模块,用于获取数据包的初始化包头信息,所述包头信息包括签名、多个参考标记字段以及检查点组;其中,所述检查点组是指检查点的集合;所述检查点是指路径中需要检查的节点;
判断模块,用于在所述路径中的节点收到所述数据包时,根据所述检查点组判断所述节点是否为所述检查点;
转发模块,用于在所述节点不是所述检查点时,根据所述检查点组更新签名并转发数据包;
验证模块,用于在所述节点是所述检查点时,将所述节点作为目标检查点,并从所述多个参考标记字段中找到与所述目标检查点对应的目标参考标记字段,并根据所述目标参考标记字段及所述检查点组,对当前路径段进行验证;
故障定位模块,用于在验证失败时,控制所述目标检查点丢弃数据包,并向源端发送第一报文;其中,所述源端根据所述第一报文,进行故障定位;
其中,所述签名的计算公式如下:
Figure 924169DEST_PATH_IMAGE006
其中,Signi为路径中第i个节点的签名,Ki为源端与路径中第i个节点的共享对称密钥,
Figure 191203DEST_PATH_IMAGE002
是以密钥Ki加密的伪随机函数,Ri表示路径中第i个节点,src为源地址,dst为目的地址;
所述参考标记字段的计算公式如下:
Figure 390103DEST_PATH_IMAGE007
其中,n表示当前检查点在路径中是第n个节点,SegInfon为当前检查点的标记字段,Kn为源端与当前检查点的共享对称密钥,
Figure 590140DEST_PATH_IMAGE004
为以密钥Kn的消息验证码,PacketId为数据包标识,Checks为检查点组,T为当前检查点与上一检查点的路径上所有节点的签名的集合,k表示上一个检查点在路径中是第k个节点,Signk为上一个检查点的签名,Signk+1为路径上第k+1个节点的签名,Signn表示当前检查点的签名,
Figure 583504DEST_PATH_IMAGE005
为以密钥KSD的消息验证码,KSD为源端与中间节点及目的端的共享对称密钥,flow是IPv6固定头部中的流标签,src为源地址,dst为目的地址。
CN202110578826.6A 2021-05-26 2021-05-26 IPv6传输路径分段认证方法以及装置 Active CN113329007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110578826.6A CN113329007B (zh) 2021-05-26 2021-05-26 IPv6传输路径分段认证方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110578826.6A CN113329007B (zh) 2021-05-26 2021-05-26 IPv6传输路径分段认证方法以及装置

Publications (2)

Publication Number Publication Date
CN113329007A CN113329007A (zh) 2021-08-31
CN113329007B true CN113329007B (zh) 2022-10-04

Family

ID=77415099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110578826.6A Active CN113329007B (zh) 2021-05-26 2021-05-26 IPv6传输路径分段认证方法以及装置

Country Status (1)

Country Link
CN (1) CN113329007B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499920B (zh) * 2021-11-09 2022-12-06 清华大学 一种基于动态标签的源和路径验证机制
GB202117683D0 (en) * 2021-12-08 2022-01-19 British Telecomm Network path verification technical field
CN116866055B (zh) * 2023-07-26 2024-02-27 中科驭数(北京)科技有限公司 数据泛洪攻击的防御方法、装置、设备及介质
CN117892286B (zh) * 2024-01-22 2024-09-13 东莞市鑫誉精密智造有限公司 一种协作式服务器数据交互处理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157133A1 (en) * 2015-03-31 2016-10-06 Telefonaktiebolaget L M Ericsson (Publ) Method of packet marking for flow analytics
CN106713156A (zh) * 2015-11-13 2017-05-24 维布络有限公司 调整一个或多个加速转发数据包的每跳行为的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11128658B2 (en) * 2016-03-23 2021-09-21 Agency For Science, Technology And Research Cloud-based forensic IP traceback

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157133A1 (en) * 2015-03-31 2016-10-06 Telefonaktiebolaget L M Ericsson (Publ) Method of packet marking for flow analytics
CN107431657A (zh) * 2015-03-31 2017-12-01 瑞典爱立信有限公司 用于流分析的分组标记的方法
CN106713156A (zh) * 2015-11-13 2017-05-24 维布络有限公司 调整一个或多个加速转发数据包的每跳行为的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于IPv6 的DDoS 攻击溯源方法研究;翟瑞;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑 》;20190415;全文 *

Also Published As

Publication number Publication date
CN113329007A (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
CN113329007B (zh) IPv6传输路径分段认证方法以及装置
US8966609B2 (en) Authentication method and apparatus for detecting and preventing source address spoofing packets
CN105847034B (zh) 源验证和路径认证方法及装置
EP2140650B1 (en) Method and system for resilient packet traceback in wireless mesh and sensor networks
CN107567704B (zh) 使用带内元数据的网络路径通过验证
US6425004B1 (en) Detecting and locating a misbehaving device in a network domain
US20040064725A1 (en) Method and system for detecting a communication problem in a computer network
CN102045344B (zh) 一种基于路径信息弹性分片的跨域溯源方法及系统
CN111541696B (zh) 随机认证嵌入的快速源和路径验证方法
Choi et al. A marking scheme using Huffman codes for IP traceback
CN111726368B (zh) 一种基于SRv6的域间源地址验证的方法
CN113395247B (zh) 一种防止对SRv6 HMAC校验进行重放攻击的方法和设备
CN108933763B (zh) 一种数据报文发送方法、网络设备、控制设备及网络系统
CN114389835A (zh) 一种IPv6选项显式源地址加密安全验证网关及验证方法
CN114499920B (zh) 一种基于动态标签的源和路径验证机制
CN113507434B (zh) 一种通信网络中的数据安全传输方法、节点和系统
Kim et al. Network forensic evidence acquisition (NFEA) with packet marking
US20230283588A1 (en) Packet processing method and apparatus
KR101081433B1 (ko) IPv6 기반 네트워크의 공격 패킷의 역추적 방법 및 그 기록매체
CN108055285A (zh) 一种基于ospf路由协议的入侵防护方法和装置
Kim et al. Network forensic evidence generation and verification scheme (NFEGVS)
Aghaei-Foroushani et al. Autonomous system based flow marking scheme for IP-Traceback
Durresi et al. Efficient and secure autonomous system based traceback
Zhou et al. SR-TPP: Extending IPv6 segment routing to enable trusted and private network paths
CN112738113B (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