专利名称:一种实现移动节点与基本域管理实体密钥协商的方法
技术领域:
本发明涉及一种IP网络技术,尤其是一种柔性IP网络技术体系中移动节点和基本域管理实体之间动态密钥协商的方法。柔性IP网络技术体系是指由基本域管理实体,扩展域管理实体,接入管理实体,移动节点构成,使局域网中的移动节点能够在全球互联网范围内随意漫游,并且确保移动节点随时能够与其局域网实现交互访问。
背景技术:
随着Internet的发展以及笔记本电脑和PDA等便携工具的体积、重量、性能的改进,移动办公的实现逐渐变得容易起来。许多企业和政府机构纷纷将自己的局域网连入Internet,为了业务需要,经常会使用基于现有的网络设备,利用隧道技术构筑自己的内部专用网络,使得企业人员可以从任何一个网络接入点访问到自己局域网,传送企业内部数据,实行企业统一管理。这样,企业内部的数据就会经过因特网和/或广域网,此时,数据传输的安全问题就成为了人们最关心的问题,而密钥协商问题又是安全问题的关键一环。如何最大的利用隧道技术给企业带来便利,同时最大程度的保护用户的私有数据在因特网和/或广域网上安全的传输,也成为技术工作人员面临的最大问题。
当前使用的隧道协议有在数据链路层实现数据封装的第二层隧道协议,如PPTP(Point-to-Point Tunneling Protocol)、L2TP(Layer2 TunnelingProtocol)等;在网络层实现数据封装的第三层隧道协议,如IPSec(InternetProtocol Security);在传输层实现数据封装的传输层隧道协议,如SOCKSv5。但这些协议都有不足之处第二层隧道协议要求所有中间参与数据传输的节点都参与密钥的协商。例如,A和C通信,中间经过B转发,则A和B要进行密钥协商,B和C也要进行密钥协商,而不是只是A和C之间进行协商。这样,必然会导致A、B和C的数据处理量增大,并增加数据传输延时。第三层隧道协议因为建立在IP层基础之上,所以它不能够为上层的每一个应用分别建立一个密钥协商流程和不同的数据加密算法。移动IP的隧道协议属于传输层隧道协议,然而,传统的传输层隧道协议的密钥协商方式需要公钥体系的支持,传输开销很大,近而影响了整个数据传输效率。
发明内容
本发明为解决传统移动IP隧道协议中存在的上述问题,而提供一种在柔性IP网络技术体系中移动节点和基本域管理实体之间使用动态密钥协商的方法。
本发明的技术解决方案是一种实现移动节点与基本域管理实体密钥协商的方法,其特殊之处在于该方法包括发送密钥的协商步骤和接收密钥的协商步骤,所述发送密钥的协商步骤如下1)发送方发送数据时,检查发送密钥是否有效;2)如果发送密钥失效,发送方发出一个带有新密钥的NK_IND消息;如果发送密钥有效,不用进行协商;3)接收方收到NK_IND消息后进行验证;4)如果验证通过,接收方用NK_IND消息中的新密钥作为它的接收密钥并发送NK_ACK消息给发送方;如果验证失败,接受方丢弃此消息;5)发送方收到NK_ACK消息后,它开始使用刚刚产生的新密钥作为它的发送密钥;所述接收密钥的协商步骤如下6)接收方接收数据时,检查接收密钥是否有效;7)如果接收密钥失效,接收方发出一个NK_REQ消息;如果接收密钥有效,不用进行协商;8)发送方收到NK_REQ消息后,使自己的动态发送密钥失效,并向接收方发送NK_IND消息,消息中携带新的动态发送密钥;9)接收方收到NK_IND消息后,检查此消息是否有效;10)如果消息有效,接收方把此消息中携带的密钥作为新的动态接收密钥,同时向发送方发送NK_ACK消息;如果消息无效,接收方丢弃此消息;11)发送方收到NK_ACK消息后,使自己刚刚产生的动态发送密钥生效。
上述NK_REQ消息代表发送端请求对端立刻产生一个新的动态发送密钥,其类型码为NK_REQ,没有数据。
上述NK_IND消息代表发送端指定了一个新的动态发送密钥,其类型码为NK_IND,数据为一个新的发送密钥以及该发送密钥的CRC校验和。
上述NK_ACK消息代表接受端已经正确接收NK_IND消息并且已经使该消息中携带的动态发送密钥生效,其类型码为NK_ACK,数据为先前收到的密钥的CRC校验和。
上述发送密钥的协商步骤和接收密钥的协商步骤中交换的消息需要进行数据加密。
上述数据加密步骤如下1)每个IP数据包的尾部填充0到7个随机的字节;2)填充之后的数据包再添加上一个代表数据包类型的P字节;3)然后将生成的这个包括P字节的数据包的CRC-32校验和添加在数据包的尾部;4)接着使用上面协商好的密码在CBC模式下对这个数据包加密;5)提供一个IV初始向量值,IV块添加在已加过密的数据包的首部。
本发明的隧道的两个端点分别有3个密钥静态密钥、动态发送密钥和动态接收密钥。系统启动时,只有静态密钥有效,在有数据传输时,触发密钥协商过程,进行动态密钥的协商。密钥协商数据包通过共享的静态密钥加密,该数据包由1个类型字节加上协议数据以及随机大小的随机填充数据构成,协议数据包括任意字节的密钥和密钥的CRC32位校验和,数据包总长度不少于64个字节,以网络字节序传输。因此本发明利用动态协商之后的密钥作为隧道加密的密钥,不仅效率很高,而且适用性很广,可以在多方面得到应用。
四
附图为本发明在数据加密前原始IP数据包尾部添加的填充数据项。
五具体实施例方式
本发明方法的具体流程如下发送密钥的协商步骤如下1)发送方发送数据时,检查发送密钥是否有效,2)如果发送密钥失效,发送方发出一个带有新密钥的NK_IND消息;如果发送密钥有效,不用进行协商。
3)接收方收到NK_IND消息后进行验证。
4)如果验证通过,接收方用NK_IND消息中的新密钥作为它的接收密钥并发送NK_ACK消息给发送方;如果验证失败,接受方丢弃此消息;5)发送方收到NK_ACK消息后,它开始使用刚刚产生的新密钥作为它的发送密钥。
接收密钥的协商步骤如下6)接收方接收数据时,检查接收密钥是否有效,7)如果接收密钥失效,接收方发出一个NK_REQ消息;如果接收密钥有效,不用进行协商。
8)发送方收到NK_REQ消息后,使自己的动态发送密钥失效,并向接收方发送NK_IND消息,消息中携带新的动态发送密钥;9)接收方收到NK_IND消息后,检查此消息是否有效;10)如果消息有效,接收方把此消息中携带的密钥作为新的动态接收密钥,同时向发送方发送NK_ACK消息;如果消息无效,接收方丢弃此消息;11)发送方收到NK_ACK消息后,使自己刚刚产生的动态发送密钥生效。
其中NK_REQ消息代表发送端请求对端立刻产生一个新的动态发送密钥,其类型码为NK_REQ,没有数据。
NK_IND消息代表发送端指定了一个新的动态发送密钥,其类型码为NK_IND,数据为一个新的发送密钥以及该发送密钥的CRC校验和。
NK_ACK消息代表接受端已经正确接收NK_IND消息并且已经使该消息中携带的动态发送密钥生效,其类型码为NK_ACK,数据为先前收到的密钥的CRC校验和。
密钥交换数据包也可以加上时间戳,时间戳为32位无符号整型值,网络字节序,标明发送方的UNIX时间,存放在密钥交换数据包的56-59字节(从0开始计算)。接受方可以配置为忽略时间戳,也可以配置为拒绝所有时间戳与接收方当前UNIX时间相差一定超时时间的密钥交换数据包。
数据加密步骤如下1)每个IP数据包的尾部填充0到7个随机的字节,使得填充随机字节后数据包总的字节数满足模8余3;2)填充之后的数据包再添加上一个代表数据包类型的P字节,代表数据包类型;3)然后将生成的这个包括P字节的数据包CRC-32校验和添加在数据包的尾部;4)接着使用上面协商好的密码在CBC模式下对这个数据包加密;5)提供一个IV初始向量值,IV块添加在已加过密的数据包的首部。IV值用于在加密前对块文本进行按位异或操作,IV值以16进制形式存在,长度8字节。IV块添加在已加过密的数据包的首部,IV块的第一个字节的最高位为0表示使用静态密钥,1表示使用动态密钥,IV块剩下的63位是随机的,但剩下63位中前31位不能全为0,也就是说不允许出现以16进制0000 0000或8000 0000开始的IV块,这样是为了便于以后协议的扩展。
参见附图,本发明在数据加密前原始IP数据包尾部添加的填充数据项为填充字节(0-7字节),P字节(1字节),CRC-32校验和(4字节)。名词解释1、基本域管理实体有一个端口与移动节点所在的基本网络域相连的网络设备,为发生漫游的移动节点提供权限认证以及身份代理。
2、扩展域管理实体在移动节点的扩展网络域上的网络设备,为移动节点转发身份认证消息以及数据包。
3、接入管理实体具有可在因特网路由的IP地址的网络设备,它位于基本域管理实体与扩展域管理实体之间,对移动节点身份进行认证以及转发移动节点数据包的中继设备。
4、基本网络域移动节点漫游前所在的网络。
5、扩展网络域移动节点漫游后所到达的网络。
6、IP隧道是指基于IP的一个数据包被封装在另一个IP数据包的净负荷中进行传送时经过的路径。
7、隧道技术指包括数据封装,传输和解包在内的全过程。
8、移动节点可以将接入因特网的位置从一条链路切换到另一条链路上,而仍然保持所有正在进行的通信,并且只使用原有固定IP地址的设备。
9、CRCCyclic Redundancy Check,循环冗余校验。
权利要求
1.一种实现移动节点与基本域管理实体密钥协商的方法,其特征在于该方法包括发送密钥的协商步骤和接收密钥的协商步骤,所述发送密钥的协商步骤如下1)发送方发送数据时,检查发送密钥是否有效;2)如果发送密钥失效,发送方发出一个带有新密钥的NK_IND消息;如果发送密钥有效,不用进行协商;3)接收方收到NK_IND消息后进行验证;4)如果验证通过,接收方用NK_IND消息中的新密钥作为它的接收密钥并发送NK_ACK消息给发送方;如果验证失败,接受方丢弃此消息;5)发送方收到NK_ACK消息后,它开始使用刚刚产生的新密钥作为它的发送密钥;所述接收密钥的协商步骤如下6)接收方接收数据时,检查接收密钥是否有效;7)如果接收密钥失效,接收方发出一个NK_REQ消息;如果接收密钥有效,不用进行协商;8)发送方收到NK_REQ消息后,使自己的动态发送密钥失效,并向接收方发送NK_IND消息,消息中携带新的动态发送密钥;9)接收方收到NK_IND消息后,检查此消息是否有效;10)如果消息有效,接收方把此消息中携带的密钥作为新的动态接收密钥,同时向发送方发送NK_ACK消息;如果消息无效,接收方丢弃此消息;11)发送方收到NK_ACK消息后,使自己刚刚产生的动态发送密钥生效。
2.根据权利要求1所述的实现移动节点与基本域管理实体密钥协商的方法,其特征在于所述NK_REQ消息代表发送端请求对端立刻产生一个新的动态发送密钥,其类型码为NK_REQ,没有数据。
3.根据权利要求1所述的实现移动节点与基本域管理实体密钥协商的方法,其特征在于所述NK_IND消息代表发送端指定了一个新的动态发送密钥,其类型码为NK_IND,数据为一个新的发送密钥以及该发送密钥的CRC校验和。
4.据权利要求1所述的实现移动节点与基本域管理实体密钥协商的方法,其特征在于所述NK_ACK消息代表接受端已经正确接收NK_IND消息并且已经使该消息中携带的动态发送密钥生效,其类型码为NK_ACK,数据为先前收到的密钥的CRC校验和。
5.根据权利要求1或2或3或4所述的实现移动节点与基本域管理实体密钥协商的方法,其特征在于所述发送密钥的协商步骤和接收密钥的协商步骤中交换的消息需要进行数据加密。
6.根据权利要求5所述的实现移动节点与基本域管理实体密钥协商的方法,其特征在于所述数据加密步骤如下1)每个IP数据包的尾部填充0到7个随机的字节;2)填充之后的数据包再添加上一个代表数据包类型的P字节;3)然后将生成的这个包括P字节的数据包的CRC-32校验和添加在数据包的尾部;4)接着使用上面协商好的密码在CBC模式下对这个数据包加密;5)提供一个IV初始向量值,IV块添加在已加过密的数据包的首部。
全文摘要
本发明涉及一种柔性IP网络技术体系中移动节点和基本域管理实体之间动态密钥协商的方法。该方法包括发送密钥的协商步骤和接收密钥的协商步骤。本发明解决了传统移动IP隧道协议的密钥协商过程使得数据处理量增大,增加数据传输延时,传输开销大的技术问题。
文档编号H04L9/14GK1588844SQ20041007315
公开日2005年3月2日 申请日期2004年9月30日 优先权日2004年9月30日
发明者万晓辉, 张宁, 李金成, 章忠威 申请人:西安西电捷通无线网络通信有限公司