源验证和路径认证方法及装置的制造方法

文档序号:10491977阅读:358来源:国知局
源验证和路径认证方法及装置的制造方法
【专利摘要】本发明公开了一种源验证和路径认证方法及装置,其中该方法包括:源端和目的端通过密钥交换技术实现共享密钥和数据流标识的配送;源端对数据包的头部进行初始化;数据包在网络系统传输过程中,每一跳路由器利用随机标记机制以概率P的大小随机地在数据包的头部进行标记;目的端根据数据包头部的标记,对数据和源地址进行验证;目的端根据数据包头部的标记,利用路径恢复机制得到数据包实际走过的路径;目的端利用验证与定位机制对路径进行验证,并实现错误定位。该方法能够兼顾到数据包头部的复杂度和路由器的计算、存储开销,并能够定位错误位置,在保证可行性的同时,提高整个网络系统的安全性和可信性。
【专利说明】
源验证和路径认证方法及装置
技术领域
[0001] 本发明设及网络安全技术领域,尤其设及一种源验证和路径认证方法。
【背景技术】
[0002] 网络安全一直备受关注,网络系统的脆弱性导致网络攻击事件时有发生,尤其当 前网络系统中缺少安全、可部署的源验证和路径认证,使得流重定向、路径不一致、DDoS (Distr化Uted Denial of Service,分布式拒绝服务)攻击、源地址哄骗等恶意攻击数见不 鲜。
[0003] 源验证指的是确保接收到的数据包的源地址确实是源端的地址,在数据包传输过 程中没有被恶意修改。然而当前网络不支持源地址验证,因为网络始终相信数据包中源地 址确实是发送端的地址;若攻击者修改了数据包中的源地址并发送大量数据包,运会使得 目的端可能不再接收该源地址所对应的可信终端发送的任何数据包,也可能使得目的端不 堪繁重的处理任务而奔溃。路径认证是验证收到的数据包的实际路径的正确性,当前数据 包的传输路径W及对应的路由节点都是有网络决定的,数据包路径的改变会增加网络的传 输开销、降低网络系统的效率。错误的路径可能使得数据包经过恶意路由节点,导致隐私信 息的泄露等各种安全事故。
[0004] 与此同时,从商业角度来讲,用户、企业及服务提供商可能会有一定偏好,他们更 希望自己收发的数据包一定经过(或不经过)某个AS(或中间路由器),所W他们更希望验证 数据包的实际路径,并能根据验证结果采取相应的措施来解决源和路径带来的问题。
[0005] 当前,有很多关于源地址验证和路径认证的研究,但遗憾的是,没有一种方法能够 同时兼顾数据包复杂度和路由器开销。

【发明内容】

[0006] 本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
[0007] 为此,本发明的第一个目的在于提出一种源验证和路径认证方法,该方法能够兼 顾到数据包头部的复杂度和路由器的计算、存储开销,并能够定位错误位置,在保证可行性 的同时,提高整个网络系统的安全性和可信性。
[0008] 本发明的第二个目的在于提出一种源验证和路径认证装置。
[0009] 为达上述目的,本发明第一方面实施例提出了一种源验证和路径认证方法,包括 W下步骤:源端和目的端通过密钥交换技术实现共享密钥和数据流标识的配送;所述源端 对数据包的头部进行初始化;所述数据包在网络系统传输过程中,每一跳路由器利用随机 标记机制W概率P的大小随机地在所述数据包的头部进行标记;所述目的端根据所述数据 包的头部的标记,对数据和源地址进行验证;所述目的端根据所述数据包的头部的标记,利 用路径恢复机制得到所述数据包实际走过的路径;所述目的端利用验证与定位机制对所述 路径进行验证,并实现错误定位。
[0010] 根据本发明实施例的源验证和路径认证方法,首先源端和目的端实现共享密钥和 数据流标识的配送,接着源端对数据包的头部进行初始化,然后数据包在传输过程中每一 跳路由器利用随机标记机制W概率P的大小对数据包头部进行标记,其次目的端根据收到 的数据包头部的标记,对数据和源地址进行验证,然后目的端根据数据包头部的标记,利用 路径恢复机制得到数据包实际走过的路径,最后目的端利用验证与定位机制对路径进行验 证,并实现错误定位。该方法能够兼顾到数据包头部的复杂度和路由器的计算、存储开销, 并能够定位错误位置,在保证可行性的同时,提高整个网络系统的安全性和可信性。
[0011] 在本发明的一个实例中,所述源端和目的端通过密钥交换技术实现共享密钥的配 送和数据流标识的发送具体包括:所述源端与所述目的端利用Diffie-Hellman密钥交换技 术完成所述共享密钥的配送;所述源端向所述目的端发送包含源地址src和所述数据流标 识FlowID的对应关系,即〈src ,FlowID〉的消息。其中,FlowID = H(s;rc_add I I s;rc_po;rt I des_po;rt I I protocol I |Ksd),所述FlowID为数据流的唯一标识,其中,s;rc_add为所述数据包 的源地址,s;rc_po;rt为所述数据包的源端口,des_po;rt为所述数据包的目的地址,protocol 为所述数据包的目的端口,Ksd为所述共享密钥。
[0012] 在本发明的一个实施例中,所述源端对数据包的头部进行初始化具体包括:在所 述数据包的TCP头部和IP头部之间增加 PRM头部,所述PRM头部包括:PacketID、Time、FlowID 和八¥。5,其中,口日。1?5?0 =化1)日化化311||1'11116化1111||1(50,所述化。1?5110为所述数据包的唯 一标识,其中,Dat址ash为所述数据包负载电荷的哈希值,TimePoint为发送所述数据包的 当前时间点的哈希值,Ksd为所述共享密钥;Time = Time化int ? H化SD),所述Time为所述数 据包的时间标签,其中,TimePo int为发送所述数据包的当前时间点的哈希值,Ksd为所述共 享密钥;= 'WCV,, ('src_add !| FIowiD),所述AVFs为源端自身标识,其中,src_add为所述 数据包的源地址,FlowID为数据流的唯一标识,Ksd为所述共享密钥。
[0013] 在本发明的一个实施例中,所述数据包在网络系统传输过程中,每一跳路由器利 用随机标记机制W概率P的大小随机地在所述数据包的头部进行标记具体包括:通过AVFi =MACki(src_add||FlowID)作为所述数据包的头部标记,其中,Ki为路由器Ri自身密钥由Ki = H(LSI I iFlowID)得到,LSI为路由器的隐私信息,src_add为所述数据包的源地址,FlowID 为数据流的唯一标识。
[0014] 在本发明的一个实施例中,所述目的端根据所述数据包的头部的标记,对数据和 源地址进行验证具体包括:所述目的端根据接收到数据包头的化CketID与目的端计算得到 的化CketID'进行对比,W此进行数据验证,PacketID =化CketID',所述数据包中数据正 确,执行源验证:所述FlowID辛Flowin',所述数据包中数据错误,丢弃数据包;所述数据验 证正确,所述目的端根据接收到所述数据包的头部的AVFs与所述目的端计算得到的AVF's进 行对比W进行源验证:AVFs = AVF ' S,所述数据包中源地址正确;AVFs辛AVF ' S,所述数据包中 源地址错误。
[0015] 在本发明的一个实施例中,所述目的端根据所述数据包的头部的标记,利用路径 恢复机制得到数据包实际走过的路径,具体包括:所述目的端根据接收到所述数据包头部 的FlowID进行分类得到FlowID相同的数据包;所述目的端读取所述FlowID相同的数据包的 头部的各个AVFi标记,并建立AVFi与正整数UID的对应表;所述目的端根据每个数据包中各 个AVFi标记W及所述对应表,得到每个数据包对应的正整数序列UIDS;所述目的端根据得 到的多个UIDS利用拓扑排序的方法进行排序,最终得到包含所有UID的顺序序列UIDSF。
[0016] 在本发明的一个实施例中,所述目的端利用验证与定位机制对所述路径进行验 证,并实现错误定位具体包括:所述目的端获得数据包的期望路径PATHp, W及所述期望路 径上所有路由节点的共享密钥Ki;所述目的端根据PATHp、Ki,W及AVFi与正整数UID的对应 表,得到期望的UIDSF' ; Uidsf = UIDSF',所述数据包的源和路径均正确;所述UIDSF辛 UIDSF',且第一个对应位置不相等元素为UIDSFt辛UIDSF't,确定路由器Rt-I修改了源地址或 下一跳信息,定位到错误的路由节点,其中,t为路由节点的位置。
[0017] 为达上述目的,本发明第二方面实施例提出了一种源验证和路径认证装置,包括: 配送模块,用于源端和目的端通过密钥交换技术实现共享密钥和数据流标识的配送;初始 化模块,用于所述源端对数据包的头部进行初始化;路由器随机标记机制模块,用于数据包 在网络系统传输过程中,每一跳路由器利用随机标记机制W概率P的大小随机地在数据包 的头部进行标记;数据和源验证模块,用于所述目的端根据所述数据包的头部的标记,对数 据和源地址进行验证;路径恢复机制模块,用于所述目的端根据所述数据包的头部的标记, 利用路径恢复机制得到所述数据包实际走过的路径;路径验证与错误定位机制模块,用于 所述目的端利用验证与定位机制对所述路径进行验证,并实现错误定位。
[0018] 根据本发明实施例的源验证和路径认证装置,配送模块首先完成源端和目的端通 过密钥交换技术实现共享密钥和数据流标识的配送;然后初始化模块对对数据包的头部进 行初始化;接着数据包在网络系统传输过程中,路由器随机标记机制模块使得每一跳路由 器利用随机标记机制W概率P的大小随机地在数据包的头部进行标记;然后数据和源验证 模块使得目的端根据数据包头部的标记,对数据和源地址进行验证;路径恢复机制模块根 据数据包头部的标记,利用路径恢复机制得到数据包实际走过的路径;最后路径验证与错 误定位机制模块利用验证与定位机制对路径进行验证,并实现错误定位。该装置能够兼顾 到数据包头部的复杂度和路由器的计算、存储开销,并能够定位错误位置,在保证可行性的 同时,提高整个网络系统的安全性和可信性。
[0019] 在本发明的一个实施例中,所述配送模块具体用于:所述源端与所述目的端利用 Diffie-化Ilman密钥交换技术完成所述共享密钥的配送;所述源端向所述目的端发送包含 源地址src和数据流标识FlowID的对应关系,即<src,FlowID>的消息,其中,FlowID = H (s;rc_add I I s;rc_po;rt I I des_po;rt I I protocol I I Ksd),所述FlowID为数据流的唯一标识,其 中,s;rc_add为所述数据包的源地址,s;rc_po;rt为所述数据包的源端口,des_po;rt为所述数 据包的目的地址,protocol为所述数据包的目的端口,Ksd为所述共享密钥。
[0020] 在本发明的一个实施例中,所述初始化模块具体用于:在所述数据包的TCP头部和 IP头部之间增加 PRM(Path Reconstruction Mechanism,路径恢复机制)头部,所述PRM头部 包括:PacketID、Time、FlowID和AVFs,其中,PacketID = H(Data化sh I I TimeF*oint I |Ksd,所述 化cketID为所述数据包的唯一标识,其中,DataHash为所述数据包负载电荷的哈希值, TimePoint为发送所述数据包的当前时间点的哈希值,Ksd为所述共享密钥;Time = TimePoint ? H化SD),所述Time为所述数据包的时间标签,其中,TimePoint为发送所述数据 包的当前时间点的哈希值,Ksd为所述共享密钥;^巧;=(src_add Il FlowID),所述AVFs 为源端自身标识,其中,src_add为所述数据包的源地址,FlowID为数据流的唯一标识,Ksd为 所述共享密钥。
[0021] 在本发明的一个实施例中,所述路由器随机标记机制模块具体用于:通过
作为所述数据包的头部标记,其中,Ki为路由器Ri自身密 钥由Ki = H(LSlMFlowID)得到,LSI为路由器的隐私信息,src_add为所述数据包的源地址, FlowID为数据流的唯一标识。
[0022] 在本发明的一个实施例中,所述数据和源验证模块具体用于:所述目的端根据接 收到所述数据包的头部的化CketID与所述目的端计算得到的化cketID'进行对比W进行数 据验证:Packet ID =化cket ID ',所述数据包中数据正确,执行源验证;FlowID辛FlowID ',所 述数据包中数据错误,丢弃数据包;确定所述数据验证通过,所述目的端根据接收到所述数 据包的头部的AVFs与所述目的端计算得到的AVF's进行对比W进行源验证:AVFs = AVF's,所 述数据包中源地址正确;AVFs辛AVF ' S,所述数据包中源地址错误。
[0023] 在本发明的一个实施例中,所述路径恢复机制模块具体用于:所述目的端根据接 收到所述数据包头部的FlowID进行分类得到FlowID相同的数据包;所述目的端读取所述 FlowI时目同的数据包的头部的各个AVFi标记,并建立AVFi与正整数UID的对应表;所述目的 端根据每个数据包中各个AVFi标记W及所述对应表,得到所述每个数据包对应的正整数序 列UIDS;所述目的端根据得到的多个UIDS利用拓扑排序的方法进行排序,最终得到包含所 有UID的顺序序列UIDSF。
[0024] 在本发明的一个实施例中,所述路径验证与错误定位机制模块具体用于:所述目 的端获得数据包的期望路径PATHp, W及所述期望路径上所有路由节点的共享密钥Ki;所述 目的端根据PATHp、Ki,W及AVFi与正整数UID的对应表,得到期望的UIDSF' ;UIDSF = UIDSF', 数据包的源和路径均正确;UIDSF辛UIDSF',且第一个对应位置不相等元素为UIDSFt辛 UIDSF't,确定路由器Rt-I修改了源地址或下一跳信息,此定位到错误的路由节点,其中,t为 路由节点的位置。
[0025] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。
【附图说明】
[0026] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得 明显和容易理解,其中,
[0027] 图1为根据本发明一个实施例的源验证和路径认证方法的流程图;
[002引图2为根据本发明一个实施例的初始化后的数据包PM头部示意图;
[0029] 图3为根据本发明一个实施例的网络结构示意图;
[0030] 图4为根据本发明一个实施例的数据包转发过程中PM头部的一种情况;
[0031] 图5为根据本发明一个实施例的目的端对应表的建立与更新过程;
[0032] 图6为根据本发明一个实施例的到达目的端数据包1的PM头部示意图;
[0033] 图7根据本发明一个实施例的到达目的端数据包2的PM头部示意图;
[0034] 图8为根据本发明一个实施例的到达目的端数据包3的PM头部示意图;
[0035] 图9为根据本发明一个实施例的到达目的端数据包4的PM头部示意图;
[0036] 图10为根据本发明一个实施例的到达目的端数据包5的PM头部示意图;
[0037] 图11为根据本发明一个具体实施例的源验证和路径认证方法的流程图;
[0038] 图12为根据本发明一个实施例的源验证和路径认证装置的结构示意图。
【具体实施方式】
[0039] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0040] 在相关技术下,很多研究都是针对源验证或路径验证问题,W及同时解决源验证 和路径验证运两个问题,运其中都没有同时兼顾到数据包头部复杂度和路由器存储、计算 开销的问题。原因在于运些研究都是使得路由器W不同形式在数据包头部做标记,而随着 路径上路由节点数量的增加,数据包头部携带的标记数量会越来越多,运在数据包转发过 程中,巨大数量的标记使得数据包"沉重不堪",头部复杂度也大大增加,影响网络的吞吐量 和效率;同时,运些研究都使得路径上每个路由器在接收到的数据包头部做标记W及进行 必要的源、路径验证,运都需要一定的计算、存储开销。本发明利用路由器"随机标记"的机 审IJ,减少了数据包头部的标记数量,减少了数据包头部的复杂度,提高了网络吞吐量和效 率;同时,减少了路由器"做标记"行为,并将源、路径验证转移至目的端,极大地缓解了路由 器计算、存储开销,使得路由器具备更加轻量级的开销。
[0041] 相关一些技术用路由器的哈希计算值替代自身签名的方法降低了数据包复杂度 和路由器开销,但哈希计算具备单向性,不能够准确定位出现问题的路由节点。本发明利用 路径恢复机制能够较为准确地定位源地址修改或路径改变的路由节点位置,对提升整个网 络系统的安全具有重要意义。
[0042] 下面参考附图描述本发明实施例的源验证和路径认证方法及装置。
[0043] 图1为根据本发明一个实施例的源验证和路径认证方法的流程图。
[0044] 如图1所示,该源验证和路径认证方法可W包括:
[0045] SI,源端和目的端通过密钥交换技术实现共享密钥的配送W及数据流标识的发 送。
[0046] 具体地,源端通过密钥交换技术发送共享密钥给目的端。
[0047] 需要说明的是,密钥交换技术可W为Diffie-Hellman密钥交换技术。
[004引源端利用共享密钥对源地址src和数据流标识FlowID进行加密,并发送至目的端。 即在发送数据包之前,源向目的端发送包含源地址src和数据流标识FlowID的对应关系,即 〈src'FlowID〉的消息。其中,FlowID = H(s;rc_add| Isrc-porti |des_po;rt| Iprotocoll |Ksd), 所述FlowID为数据流的唯一标识,其中,s;rc_add为所述数据包的源地址,s;rc_po;rt为所述 数据包的源端口,des_port为所述数据包的目的地址,protocol为所述数据包的目的端口, Ksd为所述共享密钥;
[0049] S2,源端通过共享密钥对数据包的头部进行初始化。
[0050] 具体地,在本发明的一个实施例中,在所述数据包的TCP头部和IP头部之间增加 PM 头部,所述 PRM 头部包括:PacketID、Time、FlowID 和 AVFs,其中,PacketID = H(Da 化化 Sh I TimePoint I I Ksd),所述化cketID为所述数据包的唯一标识,其中,Data化sh为所述数据包 负载电荷的哈希值,TimePoint为发送所述数据包的当前时间点的哈希值,Ksd为所述共享密 钥;Time = TimeF*oint ? H化SD),所述Time为所述数据包的时间标签,其中,TimePoint为发送 所述数据包的当前时间点的哈希值,K S D为所述共享密钥; 乂巧=胤…如_&侃Il Flo斯r。),:所述AVFs为源端自身标识,其中,src_add为所述数据包 的源地址,FlowID为数据流的唯一标识,Ksd为所述共享密钥。
[0051] 为了使得本领域技术人员能够更加清楚地了解本发明初始化的具体实现,结合图 2进行具体说明,如图2所示,源端在获得与目的端的共享密钥之后,对数据包头部做的预处 理操作,具体在TCP头部和IP头部之间增加了PRM头部,PRM头部包含四部分:PacketID、 Time、FlowID、AVFso
[0052] S3,数据包在网络系统传输过程中,每一跳路由器利用随机标记机制W概率P的大 小随机地在数据包的头部进行标记。
[0053] 具体地,在本发明的一个实施例中,通过Ri自身密钥Ki对数据包中源地址和流标识 FlowID求得的MC值,AVFi=MACki(src_add||FlowID)作为数据包的头部标记,其中,K功路 由器Ri自身密钥由Ki = H(LSI I IFIowID)得質|,LSI(Local Secret Information)为路由器的 隐私信息,src_add为数据包的源地址,FlowID为数据流的唯一标识。
[0054] 可W理解的是,数据包进行初始化后进入网络系统传输,网络结构可W如图3所 /J、- O
[0055] 需要说明的是,不同路由器的LSI不同。
[0056] 需要说明的是,概率P可W根据需要进行事先设定,概率P的大小直接影响到目的 端恢复实际路径的难易程度,概率P越大,PRM头部的标记就越多,路径恢复越容易。另一方 面,概率P的大小也会影响数据包的负载和路由器的开销。
[0057] 为了使得本领域技术人员能够更加清楚地了解本发明路由器随机标记机制,结合 图4进行具体说明。图4表示数据包从源端到目的端转发的过程中,路由器一种可能的标记 情况。
[005引 S4,目的端根据数据包头部的标记,对数据和源地址进行验证。
[0059] 具体地,在本发明的实施例中,目的端根据接收到数据包头的化CketID与目的端 计算得到的化cketID'进行对比,W此进行数据验证。PacketID =化cketID',数据包中数据 正确,执行源验证;FlowID辛FlowID',数据包中数据错误,丢弃数据包。如果数据验证通过, 所述目的端根据接收到数据包头的AVFs与目的端计算得到的AVF's进行对比,W此进行源验 证。AVFs = AVF ' S,数据包中源地址正确;AVFs辛AVF ' S,数据包中源地址错误。
[0060] S5,目的端根据数据包头部的标记,利用路径恢复机制得到数据包实际走过的路 径(实际路径)。
[0061] 具体地,在本发明的实施例中,目的端根据接收到所述数据包头部的FlowID进行 分类得到FlowID相同的数据包;目的端读取所述FlowID相同的数据包的头部的各个AVFi标 记,并建立AVFi与正整数UID的对应表(Corresponding化ble,CT);目的端根据每个数据包 中各个AVFi标记W及CT,得到每个数据包对应的正整数序列UIDS;目的端根据得到的多个 UIDS并利用拓扑排序的方法对DAG中的UID进行排序,最终得到包含所有UID顺序的序列 UIDSFo
[0062] 需要说明的是,正整数记为UID,正整数序列记为UIDS,包含所有UID顺序的序列记 为UIDSF。
[0063] 为了使得本领域技术人员能够更加清楚地了解本发明对应表CT的建立与更新过 程,结合图5进行具体说明。如图5所示,目的端每收到一个数据包(RP),都会更新对应表 (CT)中AVFi与正整数UID的对应关系。
[0064] S6,目的端利用验证与定位机制对路径进行验证,并实现错误定位。
[0065] 具体地,在本发明的实施例中,目的端利用现有技术获得数据包的期望路径 PATHp, W及该路径上所有路由节点的共享密钥Ki;目的端根据PATHp、Ki,W及CT,得到期望 的UIDSF' ;UIDSF = UIDSF',数据包的源和路径均正确;UIDSF辛UIDSF',且第一个对应位置 不相等元素为UIDSFt辛UIDSF't,则路由器Rt-I修改了源地址或下一跳信息(实际路径),即实 现错误定位功能。
[0066] 根据本发明实施例的源验证和路径认证方法,首先源端和目的端实现共享密钥和 数据流标识的配送,接着源端对数据包的头部进行初始化,然后数据包在传输过程中每一 跳路由器利用随机标记机制W概率P的大小对数据包头部进行标记,其次目的端根据收到 的数据包头部的标记,对数据和源地址进行验证,然后目的端根据数据包头部的标记,利用 路径恢复机制得到数据包实际走过的路径,最后目的端利用验证与定位机制对路径进行验 证,并实现错误定位。该方法能够兼顾到数据包头部的复杂度和路由器的计算、存储开销, 并能够定位错误位置,在保证可行性的同时,提高整个网络系统的安全性和可信性。
[0067] 为了使得本领域技术人员能够更加清楚地了解本发明目的端接收数据包头部PRM 结构和对应表(CT)的建立的具体实现过程,下面结合图6至图9将针对数据包1-4分别进行 描述。
[0068] 当数据包1到达目的端时,数据包的PRM的结构如图6所示,目的端分别计算 化Cket ID '和AVF ' S用于数据和源验证。目的端根据数据包1的PRM头部信息建立AVFi与UID的 映射关系,此时映射表如表1所示:
[0069]
[0070]
[0071 ]表1数据包1到达后AVF与UID的映射表
[0072 ]此时,UID 序列为化=< 1,2〉,Qf inai = < 1,2〉,AVF 序列 AVFf inai = <AVF2,AVF4〉。
[0073]当数据包2到达目的端时,其PRM的结构如图7所示。目的端分别计算化cketID'和 AVF's用于数据和源验证。目的端根据数据包2的PM头部信息更新AVFi与UID的映射关系,如 表2所示:
[0074]
[0075] 表2数据包2到达后AVF与UID的映射表
[0076] 此时,UID 序列为化=<1,2〉、化=<l,3〉,Qfinal = <l,2(3)〉,AVF序列为AVFfinal = < AVF2,AVF4(AVF3)〉。其中,括号代表与括号内部与外部暂时无法比较相对位置。
[0077] 当数据包3到达目的端时,其PRM的结构如图8所示。目的端分别计算化cketID'和 AVF's用于数据和源验证。目的端根据数据包3的PM头部信息更新AVFi与UID的映射关系,如 表3所不:
[007引
[0079] 表3数据包3到达后AVF与UID的映射表
[0080] 此时,UID 序列为化=<1,2〉、化=<1,3〉、化=<4,1〉,9恤31 = <4,1,2(3)〉,4¥尸序列为 AVFfinai = <AVFi, AVF2, AVF4 (AVFs) > 〇
[0081] 当数据包4到达目的端时,其PRM的结构如图9所示。目的端分别计算化cketID'和 AVF's用于数据和源验证。目的端根据数据包4的PM头部信息更新AVFi与UID的映射关系,如 表4所示:
[0082]
[0083] 表4数据包4到达后AVF与UID的映射表
[0084] 此时,UID 序列为化=<1,2〉、化=<1,3〉、化=<4,l〉、Q4 = <3,2〉,Qfinai = <4,l,3,2〉, AVF序列为 AVFf inai = <AVFi,AVF2,AV 的,AVF4〉。
[00化]目的端通过现有方法(如SCIONJathlet routing等)获得数据包的期望路径 PATH ' = <Ri,R2,R3,R4〉,并利用现有技术(如Dif f ie-He 1 Iman密钥交换)获得期望路径PATH ' 上每个路由节点Ri的密钥Ki、K2、K3、K4。利用W厂',=(src_.add Il FIowID)求得AVF ' 1、 AVF ' 2、AVF ' 3、AVF ' 4,即 AVF ' f inal = <AVF ' 1,AVF ' 2,AVF ' 3,AVF ' 4〉。经比较,AVFf inal = AVF ' f inal, 说明数据包的源地址没有修改、路径没有变化,目的端可W接受此数据流。
[0086] 目的端后期也会收到连续不断的数据包,如图10所示。此时,UID序列为化=<4,3〉 符合Qfinal = <4,l,3,2>中元素的相对位置关系,故目的端可W接受该数据包。
[0087] 从举例而言,路由器的随机标记机制使得每个数据包PM头部只有2个AVF值,而如 果所有路由器在数据包PRM头部做标记,那么每个数据包PM头部有4个AVF值。相比之下,数 据包PRM头部的长度明显变小,复杂度明显降低,运在一定程度上提高了网络吞吐率和效 率。路由器的随机标记机制使得数据包到达目的端时仅有2个路由器在PRM头部标记,减少 了路由器的计算开销。同时,也使得路由器很大程度上得W "解放",开销也随之降低。在目 的端,利用排序方法进行路径恢复操作,得到数据包的实际路径,并于期望路径进行对比, 能够很准确的验证源地址与路径信息,提升了整个网络系统的安全与可信。同时,目的端还 能根据恢复的实际路径较为准确地定位到源地址及路径改变的具体位置,为企业、供应商 纠正问题节点,改善网络系统具有重要意义。
[0088] 图11为根据本发明一个具体实施例的源验证和路径认证方法的流程图。
[0089] 源端和目的端共享密钥W及传送数据流标识(S1101)。然后源端对数据包PRM头部 进行预处理(S1102)。每一跳路由器利用随机标记机制W概率P的大小随机地在所述数据包 的头部进行标记(SI 103)。目的端根据数据包头部的标记,对数据和源地址进行验证 (S1104)。目的端根据数据包头部的标记,利用路径恢复机制得到数据包转发过程的实际路 径UIDSF和期望路径UIDSF'(S1105)。比较实际路径UIDSF和期望路径UIDSF'(S1106)。若两 者相等,源验证和路径认证通过,接收数据包(S1107)。若两者不相等,源验证和路径认证不 通过,丢弃数据流和错误定位(Sl 108)。
[0090] 根据本发明实施例的源验证和路径认证方法,首先源端和目的端实现共享密钥和 数据流标识的配送,接着源端对数据包的头部进行初始化,然后数据包在传输过程中每一 跳路由器利用随机标记机制W概率P的大小对数据包头部进行标记,其次目的端根据收到 的数据包头部的标记,对数据和源地址进行验证,然后目的端根据数据包头部的标记,利用 路径恢复机制得到数据包实际走过的路径,最后目的端利用验证与定位机制对路径进行验 证,并实现错误定位。该方法能够兼顾到数据包头部的复杂度和路由器的计算、存储开销, 并能够定位错误位置,在保证可行性的同时,提高整个网络系统的安全性和可信性。
[0091] 与上述实施例提供的源验证和路径认证方法相对应,本发明的一种实施例还提供 一种源验证和路径认证装置,由于本发明实施例提供的源验证和路径认证装置与上述实施 例提供的源验证和路径认证方法相对应,因此在前述源验证和路径认证方法的实施方式也 适用于本实施例提供的源验证和路径认证装置,在本实施例中不再详细描述。图12为根据 本发明一个实施例的源验证和路径认证装置的结构示意图。如图12所示,该装置可W包括: 配送模块10、初始化模块20、路由器随机标记机制模块30、数据和源验证模块40、路径恢复 机制模块50和路径验证与错误定位机制模块60。
[0092] 其中,配送模块,用于源端和目的端通过密钥交换技术实现共享密钥和数据流标 识的配送;初始化模块,用于所述源端对数据包的头部进行初始化;路由器随机标记机制模 块,用于数据包在网络系统传输过程中,每一跳路由器利用随机标记机制W概率P的大小随 机地在数据包的头部进行标记;数据和源验证模块,用于目的端根据数据包头部的标记,对 数据和源地址进行验证;路径恢复机制模块,用于目的端根据数据包头部的标记,利用路径 恢复机制得到数据包实际走过的路径;路径验证与错误定位机制模块,用于所述目的端利 用验证与定位机制对路径进行验证,并实现错误定位。
[0093] 在本发明的一个实施例中,所述配送模块10具体用于:在发送数据包之前,源向目 的端发送包含源地址src和数据流标识FlowID的对应关系,即〈src,FlowID〉的消息。其中, FlowID = H(s;rc_add I I s;rc_po;rt I I des_po;rt I I protocol I I Ksd),所述FlowID为数据流的唯一 标识,其中,s;rc_add为所述数据包的源地址,s;rc_po;rt为所述数据包的源端口,des_po;rt为 所述数据包的目的地址,protocol为所述数据包的目的端口,Ksd为所述共享密钥。
[0094] 在本发明的一个实施例中,所述初始化模块20具体用于:在所述数据包的TCP头部 和IP头部之间增加 PRM(Path Reconstruction Mechanism,路径恢复机制)头部,所述PRM头 部包括:口日。1?5?0、1'11116、尸1〇讯10和4¥尸5,其中,口日。1?5?0 =化1)日化化311||1'11116化1111||1(50,所 述化cketID为所述数据包的唯一标识,其中,Data化Sh为所述数据包负载电荷的哈希值, TimePoint为发送所述数据包的当前时间点的哈希值,Ksd为所述共享密钥;Time = TimePoint ? H化SD),所述Time为所述数据包的时间标签,其中,TimePoint为发送所述数据 包的当前时间点的哈希值,Ksd为所述共享密钥;*4KF., = MziQ,, (src_add Il FiowID),所述 AVFs为源端自身标识,其中,src_add为所述数据包的源地址,FlowID为数据流的唯一标识, Ksd为所述共享密钥。
[0095] 在本发明的一个实施例中,所述路由器随机标记机制模块30具体用于:通过 乂巧二脱4Q,如巧_口娜I巧口側巧作为所述数据包的头部标记,其中,Ki为路由器Ri自身密 钥由Ki = H(LSlMFlowID)得到,LSI为路由器的隐私信息,src_add为所述数据包的源地址, FlowID为数据流的唯一标识。
[0096] 在本发明的一个实施例中,所述数据和源验证模块40具体用于:所述目的端根据 接收到数据包头的化CketID与目的端计算得到的化CketID '进行对比,W此进行数据验证。 所述化CketID =化cketID',数据包中数据正确,执行源验证;所述FlowID辛Flowin',数据 包中数据错误,丢弃数据包。如果数据验证通过,所述目的端根据接收到数据包头的AVFs与 目的端计算得到的AVF's进行对比,W此进行源验证。所述AVFs = AVF's,数据包中源地址正 确;所述AVFs辛AVF ' S,数据包中源地址错误。
[0097] 在本发明的一个实施例中,所述路径恢复机制模块50具体用于:所述目的端根据 接收到所述数据包头部的FlowID进行分类得到FlowID相同的数据包;所述目的端读取所述 FlowID相同的数据包的头部的各个AVFi标记,并建立AVFi与正整数UID的对应表 (Corresponding化ble,CT);所述目的端根据每个数据包中各个AVFi标记W及CT,得到每 个数据包对应的正整数序列UIDS;所述目的端根据得到的多个UIDS利用拓扑排序的方法对 DAG中的UID进行排序,最终得到包含所有UID的顺序序列UIDSF。
[0098] 在本发明的一个实施例中,所述路径验证与错误定位机制模块60具体用于:所述 目的端利用现有技术获得数据包的期望路径PATHp,W及该路径上所有路由节点的共享密 钥Ki;所述目的端根据PATHp、Ki,W及CT,得到期望的UIDSF' ;所述UIDSF = UIDSF',数据包的 源和路径均正确;所述UIDSF辛UIDSF ',且第一个对应位置不相等元素为UIDSFt辛UIDSF ' t, 则路由器Rt-I修改了源地址或下一跳信息(实际路径),W此定位到错误的路由节点。
[0099] 根据本发明实施例的源验证和路径认证装置,配送模块首先完成源端和目的端通 过密钥交换技术实现共享密钥和数据流标识的配送;然后初始化模块对对数据包的头部进 行初始化;接着数据包在网络系统传输过程中,路由器随机标记机制模块使得每一跳路由 器利用随机标记机制W概率P的大小随机地在数据包的头部进行标记;然后数据和源验证 模块使得目的端根据数据包头部的标记,对数据和源地址进行验证;路径恢复机制模块根 据数据包头部的标记,利用路径恢复机制得到数据包实际走过的路径;最后路径验证与错 误定位机制模块利用验证与定位机制对路径进行验证,并实现错误定位。该装置能够兼顾 到数据包头部的复杂度和路由器的计算、存储开销,并能够定位错误位置,在保证可行性的 同时,提高整个网络系统的安全性和可信性。
[0100] 在本发明的描述中,需要理解的是,术语"第一"、"第二"仅用于描述目的,而不能 理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有"第 一"、"第二"的特征可W明示或者隐含地包括至少一个该特征。
[0101] 在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示 例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可W在任 一个或多个实施例或示例中W合适的方式结合。此外,在不相互矛盾的情况下,本领域的技 术人员可W将本说明书中描述的不同实施例或示例W及不同实施例或示例的特征进行结 合和组合。
[0102] 尽管上面已经示出和描述了本发明的实施例,可W理解的是,上述实施例是示例 性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可W对上述 实施例进行变化、修改、替换和变型。
【主权项】
1. 一种源验证和路径认证方法,其特征在于,包括以下步骤: 源端和目的端通过密钥交换技术实现共享密钥和数据流标识的配送; 所述源端对数据包的头部进行初始化; 所述数据包在网络系统传输过程中,每一跳路由器利用随机标记机制以概率P的大小 随机地在所述数据包的头部进行标记; 所述目的端根据所述数据包的头部的标记,对数据和源地址进行验证; 所述目的端根据所述数据包的头部的标记,利用路径恢复机制得到所述数据包实际走 过的路径; 所述目的端利用验证与定位机制对所述路径进行验证,并实现错误定位。2. 如权利要求1所述的路由源验证和路径认证方法,其特征在于,所述源端和目的端通 过密钥交换技术实现共享密钥和数据流标识的配送具体包括: 所述源端与所述目的端利用Diffie-Hellman密钥交换技术完成所述共享密钥的配送; 所述源端向所述目的端发送包含源地址src和所述数据流标识FlowID的对应关系,即〈 src,FlowID>的消息。其中, FlowID = H(src_add| |src_port| |des_port| |protocol | |Ksd),所述FlowID为数据流的 唯一标识,其中,src_add为所述数据包的源地址,src_port为所述数据包的源端口,des_ port为所述数据包的目的地址,protocol为所述数据包的目的端口,KSD为所述共享密钥。3. 如权利要求1所述的路由源验证和路径认证方法,其特征在于,所述源端对数据包的 头部进行初始化具体包括: 在所述数据包的TCP头部和IP头部之间增加 PRM头部,所述PRM头部包括:PacketID、 Time、FlowID 和 AVFs,其中, PacketID = H(DataHash | | TimePoint | | Ksd),所述PacketID为所述数据包的唯一标识, 其中,DataHash为所述数据包负载电荷的哈希值,TimePoint为发送所述数据包的当前时间 点的哈希值,KSD为所述共享密钥; Time = TimePoint ? H(Ksd),所述Time为所述数据包的时间标签,其中,TimePoint为发 送所述数据包的当前时间点的哈希值,Ksd为所述共享密钥; AVFs=MACkSD(src_add | | FlowID),所述AVFs为源端自身标识,其中,src_add为所述数据 包的源地址,FlowID为数据流的唯一标识,Ksd为所述共享密钥。4. 如权利要求1所述的路由源验证和路径认证方法,其特征在于,所述数据包在网络系 统传输过程中,每一跳路由器利用随机标记机制以概率P的大小随机地在所述数据包的头 部进行标记具体包括: 通过AVFi=MACKi(src_add | |FlowID)作为所述数据包的头部标记,其中,Ki为路由器Ri 自身密钥由Ki = H(LSI | |Fl〇WID)得到,LSI为路由器的隐私信息,src_add为所述数据包的 源地址,FlowID为数据流的唯一标识。5. 如权利要求1所述的路由源验证和路径认证方法,其特征在于,所述目的端根据所述 数据包的头部的标记,对数据和源地址进行验证,具体包括: 所述目的端根据接收到数据包头的PacketID与目的端计算得到的PacketID'进行对比 以进行数据验证: Packet ID = Packet ID',所述数据包中数据正确,执行源验证; FlowID矣FlowID ',所述数据包中数据错误,丢弃数据包; 所述数据验证正确,所述目的端根据接收到所述数据包的头部的AVFs与所述目的端计 算得到的AVF ' s进行对比以进行源验证: AVFs=AVF ' s,所述数据包中源地址正确; AVFs矣AVF ' s,所述数据包中源地址错误。6. 如权利要求1所述的路由源验证和路径认证方法,其特征在于,所述目的端根据所述 数据包的头部的标记,利用路径恢复机制得到数据包实际走过的路径具体包括: 所述目的端根据接收到所述数据包头部的FlowID进行分类得到FlowID相同的数据包; 所述目的端读取所述FlowID相同的数据包的头部的各个AVFi标记,并建立AVFi与正整 数UID的对应表; 所述目的端根据每个数据包中各个AVFi标记以及所述对应表,得到所述每个数据包对 应的正整数序列UIDS; 所述目的端根据得到的多个UIDS利用拓扑排序的方法进行排序,最终得到包含所有 UID的顺序序列UIDSF。7. 如权利要求1所述的路由源验证和路径认证方法,其特征在于,所述目的端利用验证 与定位机制对所述路径进行验证,并实现错误定位,具体包括: 所述目的端获取述数据包的期望路径PATHP,以及所述期望路径上所有路由节点的共享 密钥Ki; 所述目的端根据PATHP、Ki,以及AVFi与正整数UID的对应表,得到期望的UIDSF' ; UIDSF = UIDSF',所述数据包的源和路径均正确; UIDSF矣UIDSF',且第一个对应位置不相等元素为UIDSFt矣UIDSF't,确定路由器Rt-!修 改了源地址或下一跳信息,定位到错误的路由节点,其中t为路由节点的位置标号。8. -种源验证和路径认证装置,其特征在于,包括: 配送模块,用于源端和目的端通过密钥交换技术实现共享密钥和数据流标识的配送; 初始化模块,用于所述源端对数据包的头部进行初始化; 路由器随机标记机制模块,用于所述数据包在网络系统传输过程中,每一跳路由器利 用随机标记机制以概率P的大小随机地在所述数据包的头部进行标记; 数据和源验证模块,用于所述目的端根据所述数据包的头部的标记,对数据和源地址 进行验证; 路径恢复机制模块,用于所述目的端根据所述数据包的头部的标记,利用路径恢复机 制得到所述数据包实际走过的路径; 路径验证与错误定位机制模块,用于所述目的端利用验证与定位机制对所述路径进行 验证,并实现错误定位。9. 如权利要求8所述的路由源验证和路径认证装置,其特征在于,所述配送模块具体用 于: 所述源端与所述目的端利用Diffie-Hellman密钥交换技术完成所述共享密钥的配送; 所述源端向所述目的端发送包含源地址src和所述数据流标识FlowID的对应关系的消息, 即<src,FlowID>的消息。其中, FlowID = H(src_add| |src_port| |des_port| |protocol | |Ksd),所述FlowID为数据流的 唯一标识,其中,src_add为所述数据包的源地址,src_port为所述数据包的源端口,des_ port为所述数据包的目的地址,protocol为所述数据包的目的端口,KSD为所述共享密钥。10. 如权利要求8所述的路由源验证和路径认证装置,其特征在于,所述初始模块具体 用于: 在所述数据包的TCP头部和IP头部之间增加 PRM头部,所述PRM头部包括:PacketID、 Time、FlowID 和 AVFs,其中, PacketID = H(DataHash | | TimePoint | | Ksd),所述PacketID为所述数据包的唯一标识, 其中,DataHash为所述数据包负载电荷的哈希值,TimePoint为发送所述数据包的当前时间 点的哈希值,KSD为所述共享密钥; Time = TimePoint ? H(Ksd),所述Time为所述数据包的时间标签,其中,TimePoint为发 送所述数据包的当前时间点的哈希值,Ksd为所述共享密钥; AVFs=MACkSD(src_add | | FlowID),所述AVFs为源端自身标识,其中,src_add为所述数据 包的源地址,FlowID为数据流的唯一标识,Ksd为所述共享密钥。11. 如权利要求8所述的路由源验证和路径认证方法,其特征在于,所述路由器随机标 记机制模块具体用于: 通过AVFi=MACKi(src_add | |FlowID)作为所述数据包的头部标记,其中,Ki为路由器Ri 自身密钥由Ki = H(LSI | |Fl〇WID)得到,LSI为路由器的隐私信息,src_add为所述数据包的 源地址,FlowID为数据流的唯一标识。12. 如权利要求8所述的路由源验证和路径认证装置,其特征在于,所述数据和源验证 模块具体用于: 所述目的端根据接收到所述数据包的头部的PacketID与所述目的端计算得到的 PacketID '进行对比以进行数据验证: Packet ID = Packet ID',所述数据包中数据正确,执行源验证; FlowID矣FlowID ',所述数据包中数据错误,丢弃数据包; 确定所述数据验证通过,所述目的端根据接收到所述数据包的头部的AVFs与所述目的 端计算得到的AVF ' s进行对比以进行源验证: AVFs=AVF ' s,数据包中源地址正确; AVFs矣AVF ' s,数据包中源地址错误。13. 如权利要求8所述的路由源验证和路径认证装置,其特征在于,所述路径恢复机制 模块具体用于: 所述目的端根据接收到所述数据包头部的FlowID进行分类得到FlowID相同的数据包; 所述目的端读取所述FlowID相同的数据包的头部的各个AVFi标记,并建立AVFi与正整 数UID的对应表; 所述目的端根据每个数据包中各个AVFi标记以及所述对应表,得到所述每个数据包对 应的正整数序列UIDS; 所述目的端根据得到的多个UIDS利用拓扑排序的方法进行排序,最终得到包含所有 UID的顺序序列UIDSF。14. 如权利要求8所述的路由源验证和路径认证装置,其特征在于,所述路径验证与错 误定位机制模块具体用于: 所述目的端获得所述数据包的期望路径PATHP,以及所述期望路径上所有路由节点的共 享密钥Ki; 所述目的端根据PATHP、Ki,以及AVFi与正整数UID的对应表,得到期望的UIDSF' ; UIDSF = UIDSF',所述数据包的源和路径均正确; UIDSF矣UIDSF',且第一个对应位置不相等元素为UIDSFt矣UIDSF't,确定路由器Rt-!修 改了源地址或下一跳信息,定位到错误的路由节点,其中,t为路由节点的位置。
【文档编号】H04L12/733GK105847034SQ201610151004
【公开日】2016年8月10日
【申请日】2016年3月16日
【发明人】徐恪, 吴波, 沈蒙, 吴建平
【申请人】清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1