CN113438094A - 一种自动更新手工配置IPSec SA的方法和设备 - Google Patents

一种自动更新手工配置IPSec SA的方法和设备 Download PDF

Info

Publication number
CN113438094A
CN113438094A CN202010208043.4A CN202010208043A CN113438094A CN 113438094 A CN113438094 A CN 113438094A CN 202010208043 A CN202010208043 A CN 202010208043A CN 113438094 A CN113438094 A CN 113438094A
Authority
CN
China
Prior art keywords
ipsec
network device
key
aging period
time
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.)
Granted
Application number
CN202010208043.4A
Other languages
English (en)
Other versions
CN113438094B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010208043.4A priority Critical patent/CN113438094B/zh
Publication of CN113438094A publication Critical patent/CN113438094A/zh
Application granted granted Critical
Publication of CN113438094B publication Critical patent/CN113438094B/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • 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/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up

Landscapes

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

Abstract

本申请实施例公开了一种自动更新手工配置IPSec SA的方法和设备,包括:在第一IPSec老化周期的第一时刻,该第一网络设备根据本地保存的手工配置的IPSec配置信息第一时间参数,确定第一IPSec SA和第二IPSec SA;进入第二IPSec老化周期的第二时刻,第一网络设备根据IPSec配置信息和第二时间参数,确定第三IPSec SA和第四IPSec SA,其中,第一时间参数和第二时间参数不同。这样,网络设备基于一次手工配置的IPSec配置信息,即可周期性的自动更新IPSec SA,使得网络设备之间简单、快速的建立安全的IPSec隧道成为可能。

Description

一种自动更新手工配置IPSec SA的方法和设备
技术领域
本申请涉及通信技术领域,特别是涉及一种自动更新手工配置互联网协议安全(英文:Internet Protocol Secrutity,IPSec)安全联盟(英文:Security Association,SA)的方法和设备。
背景技术
IPSec是互联网工程任务组(英文:Internet Engineering Task Force,简称:IETF)制定的一组框架协议,通过使用加密的安全传输通道,保障互联网上通信的安全性。网络设备之间基于IPSec技术进行报文的安全传输,需要网络设备之间协商确定匹配的SA,利用匹配的SA对传输的报文进行安全保护,例如:发送方利用其当前SA中的加密密钥对报文加密后发送给接收方,接收方基于其当前SA(即,与发送方当前SA匹配的SA)中的解密密钥对接收内容进行解密,安全的获得该报文。
目前,通常通过手工配置或者IKE协商的方式,在两个网络设备上分别确定相互匹配的SA。但是,手工配置的方式不仅安全性低,而且在部署较多网络设备的网络中,还存在配置工作量大和无法更新密钥等问题;而IKE协商的方式,需要通过交互多个会话消息完成IPSec SA的确定,具有交互过程繁琐复杂、维护有状态SA表项困难等缺点。
基于此,如何提供一种配置IPSec SA的方法,能够不依赖于网络设备之间消息的交互即可自动完成IPSec SA的计算以及更新,从而确保网络设备之间简单、安全的进行IPSec通信。
发明内容
基于此,本申请实施例提供了一种自动更新手工配置IPSec SA的方法和设备,能够在网络设备上自动完成IPSec SA的确定和更新,使得网络设备之间建立IPSec隧道的过程既安全又简单,从而确保两个网络设备之间能够简单且安全地互访。
第一方面,提供了一种自动更新手工配置IPSec SA的方法,该方法能够使得两个网络设备之间简单、安全地建立IPSec隧道(即,确定匹配的2个IPSec SA),具体配置IPSecSA的过程可以包括:在第一IPSec老化周期的第一时刻,该第一网络设备可以根据本地保存的手工配置的IPSec配置信息以及与该第一时刻关联的第一时间参数,确定第一IPSec SA和第二IPSec SA,该第一IPSec SA用于对第一IPSec SA老化周期内第一网络设备到第二网络设备传输的报文进行安全保护,第二IPSec SA用于对该第一IPSec SA老化周期内第二网络设备到第一网络设备传输的报文进行安全保护;在从第一时刻经历一个IPSec SA老化周期对应的时长到达第二时刻(即进入第一IPSec SA老化周期的下一个IPSec SA老化周期——第二IPSec老化周期)时,第一网络设备还可以根据该IPSec配置信息以及与第二时刻关联的第二时间参数,确定第三IPSec SA和第四IPSec SA,该第三IPSec SA用于对该第二IPSec SA老化周期内第一网络设备到第二网络设备传输的报文进行安全保护,第四IPSec SA用于对第二IPSec SA老化周期内第二网络设备到第一网络设备传输的报文进行安全保护,其中,所述IPSec配置信息包括一个IPSec SA老化周期所对应的时长,第一时间参数和第二时间参数不同,均为第一网络设备确定IPSec SA的关键信息。可见,通过本申请实施例提供的方法,无需网络设备之间再交互多个消息,网络设备基于一次手工配置的IPSec配置信息,本地即可确定IPSec SA并周期性的自动更新IPSec SA,以提高两个网络设备之间的IPSec隧道的安全性,克服了目前手工配置方式以及IKE协商方式中存在的问题,使得网络设备之间简单、快速的建立安全的IPSec隧道成为可能。
其中,第一时刻,可以是第一网络设备和第二网络设备配置完IPSec配置信息后启动的首个IPSec SA老化周期的开始时刻,也可以是任意一个其他的IPSec SA老化周期的开始时刻。在本申请实施例中,时间参数,是指与IPSec SA老化周期唯一对应的数值,用于在其唯一对应的IPSec SA老化周期内确定相应的IPSec SA。每个IPSec SA老化周期,IPSec隧道两端网络设备上的时间参数一致,但是,不同IPSec SA老化周期对应的时间参数一定是不同的。
在一种可能的实现方式中,该第一网络设备可以包括计数器,上述第一时间参数为所述计数器在第一时刻的值,每个经过一个所述IPSec SA老化周期该计数器的值加一。例如:假设一个IPSec SA老化周期的时长为10小时,第一时刻,从IPSec SA老化周期(N-1)进入IPSec SA老化周期N,计数器的值从(N-1)跳转到N,此时,第一网络设备获取时间参数N;从第一时刻经历10小时到达第二时刻,从IPSec SA老化周期N进入IPSec SA老化周期(N+1),计数器的值从N跳转到(N+1),此时,第一网络设备获取时间参数(N+1)。需要说明的是,通常要求IPSec隧道两端的网络设备内的计数器同时启动,这样,可以确保在同一个IPSecSA老化周期内的任意时刻,第一网络设备读取的时间参数和第二网络设备读取的时间参数均相同。如果无法严格做到IPSec隧道两端的网络设备内的计数器同时启动,也要确保两个计数器启动的时间差不能超过一个IPSec SA老化周期的时长,因为一旦两个计数器启动的时间差能超过了一个IPSec SA老化周期的时长,在同一个IPSec SA老化周期内第一网络设备和第二网络设备就不能从计数器读取出相同的时间参数。
在另一种可能的实现方式中,上述第一时间参数为第一时刻对应的Unix时间戳除以一个IPSec SA老化周期对应的时长所得的商的整数部分。第一网络设备获取第一时刻对应的时间参数具体可以包括:在第一时刻,第一网络设备可以读取其上时钟的值,将该时钟的值转换为Unix时间戳;第一网络设备还可以从本地保存的IPSec配置信息中获取IPSecSA老化周期的时长;接着,第一网络设备将Unix时间戳除以一个IPSec SA老化周期的时长,将所得的商的整数部分作为时间参数。需要说明的是,在同一个IPSec SA老化周期内该示例计算的时间参数保持不变,每个经过一个IPSec SA老化周期该示例计算的时间参数增加一。需要说明的是,Unix时间戳的0按照国际标准化组织(英文:InternationalOrganization for Standardization,简称:ISO)8601规范为:1970-01-01T00:00:00Z,即,从1970年1月1日(世界标准时间UTC/格林威治时间GMT的午夜)开始到当前时刻所经过的秒数,不考虑闰秒。该实现方式中将当前的第一时刻转换为Unix时间戳,考虑到Unix时间戳不受时区影响的特点,有效的避免了不同时区对网络设备10获取时间参数造成的影响。
需要说明的是,IPSec配置信息除了包括一个IPSec SA老化周期对应的时长外,还可以包括:第一网络设备和第二网络设备之间的IPSec隧道相对第一网络设备的源IP地址、IPSec隧道相对第一网络设备的目的IP地址和预共享密钥材料。其中,预共享密钥材料用于计算IPSec SA中的IPSec密钥。
其中,IPSec SA可以包括安全参数索引(英文:Security Parameter Index,简称:SPI)、IPSec隧道的目的互联网协议(英文:Internet Protocol,简称:IP)地址和使用的安全协议(如:报文验证头(英文:Authentication Header,简称:AH)协议或封装安全载荷(英文:Encapsulating Security Payload,简称:ESP)协议);IPSec SA还可以包括:封装模式、认证算法、认证密钥、加密算法、加解密密钥和认证密钥、IPSec SA老化周期等参数。
在一些可能的实现方式中,第一IPSec SA中包括第一SPI,第二IPSec SA中包括第二SPI。第一网络设备根据IPSec配置信息和第一时间参数,确定第一IPSec SA和第二IPSecSA,具体可以包括:第一网络设备根据第一时间参数、源IP地址和目的IP地址,分别获得第一IPSe SA的第一SPI和第二IPSec SA的第二SPI,其中,第一SPI和第二SPI不同。例如:假设利用32位循环冗余校验(英文:Cyclic Redundancy Check,简称:CRC)函数对计算SPI,具体可以表示为:第一SPI=CRC32(源IP地址|目的IP地址|第一时间参数),第二SPI=CRC32(目的IP地址|源IP地址|第一时间参数),其中,“|”为字符串连接符。又例如:也可以使用CRC32函数的其他变种函数(例如:CRC32/MEPG2、CRC32C、CRC32D等),对源IP地址、目的IP地址和第一时间参数连接后字符串进行处理,得到第一SPI和第二SPI。再例如,还可以使用其他哈希函数(例如:MD5、SHA1和SHA256等),对源IP地址、目的IP地址和第一时间参数连接后字符串进行处理,得到处理结果;对超过4字节的处理结果进行压缩或截断操作,获得长度为4字节的第一SPI和第二SPI。
在再一些可能的实现方式中,第一IPSec SA中包括第一IPSec密钥集,第二IPSecSA中包括第二IPSec密钥集,那么,第一网络设备根据IPSec配置信息和第一时间参数,确定所述第一IPSec SA和所述第二IPSec SA,具体可以包括:第一网络设备根据第一时间参数、源IP地址、目的IP地址和预共享密钥材料,获得第一IPSec SA的第一IPSec密钥集和第二IPSec SA的第二IPSec密钥集。其中,第一IPSec密钥集包括第一加密密钥和/或第一认证密钥;第二IPSec密钥集包括第一解密密钥和/或第二认证密钥;其中,第一加密密钥和第一解密密钥匹配,第一认证密钥和第二认证密钥匹配。
作为一个示例,第一网络设备可以将源IP地址、目的IP地址和第一时间参数依次进行连接;将连接后的字符串和预共享密钥材料均输入基于密码的密钥衍生函数(如:PBKDF2)中,得到第一输出结果;基于该第一输出结果确定第一密钥集。同理,网络设备也可以将目的IP地址、源IP地址和第一时间参数依次进行连接;将连接后的字符串和预共享密钥材料均输入基于密码的密钥衍生函数中,得到第二输出结果;基于该第二输出结果确定第二密钥集。
例如:第一输出结果=PBKDF2(HMAC-SHA256,预共享密钥材料,源IP地址|目的IP地址|第一时间参数,c,dkLen),第二输出结果=PBKDF2(HMAC-SHA256,预共享密钥材料,目的IP地址|源IP地址|第一时间参数,c,dkLen),其中,PBKDF2函数的第一个参数是哈希算法,这里以HMAC-SHA256为例;第二个参数是预共享密钥材料,用于保障生成的密钥的随机性;第三个参数是源IP地址、目的IP地址和时间参数N按序连接后的字符串,也称为该函数的盐值,用于确保不IPSec的隧道或者相同IPSec隧道在不同IPSec SA老化周期内得到的输出结果是不同的;第四个参数是迭代次数c,它是一个自定义值,IPsec隧道两端网络设备上计算时保持一致即可,c取值越大对网络设备性能要求越高,但计算出的密钥也越安全,如:取c=1000;最后一个参数用于指定输出结果的长度dkLen,如:取dkLen=32字节或dkLen=64字节。需要说明的是,第一输出结果和第二输出结果中的哈希算法、c以及dkLen均取相同的值。
其中,可以指定第一输出结果的长度、第二输出结果的长度与第一IPSec SA中加密算法相匹配,那么,第一输出结果可以直接作为第一加密密钥,加密方向的第一认证密钥可以和该第一加密密钥相同,第二输出结果可以直接作为第一解密密钥,解密方向的第二认证密钥可以和该第一解密密钥相同。例如:第一IPSec SA确定的加密算法为AES-256算法,其对应的第一加密密钥和第一解密密钥的长度均是32字节,那么,可以在PBKDF2函数中定义dkLen=32字节,从而获得32字节的第一输出结果和第二输出结果,并将该第一输出结果作为第一加密密钥,将与该第一加密密钥相同的值作为加密方向的第一认证密钥,同理,将该第二输出结果作为第一解密密钥,将与该第一解密密钥相同的值作为解密方向的第二认证密钥。
或者,为了提高安全性,可以将第一输出结果的长度、第二输出结果的长度均指定为大于与第一IPSec SA中加密算法匹配的第一加密密钥的长度,且大于与认证算法匹配的第一认证密钥的长度,这样,第一网络设备可以从得到的第一输出结果中截取出加密算法所要求长度的第一加密密钥,并从得到的该第一输出结果中截取出认证算法所要求长度的第一认证密钥,如此,使用与第一加密密钥不同的第一认证密钥,实现对待传输报文的更加安全的保护;同理,第一网络设备可以从得到的第二输出结果中截取出加密算法所要求长度的第一解密密钥,并从得到的该第二输出结果中截取出认证算法所要求长度的第二认证密钥,如此,使用与第一解密密钥不同的第二认证密钥,实现对待传输报文的更加安全的保护。例如:可以将第一输出结果的长度、第二输出结果的长度均指定为:与第一IPSec SA中加密算法匹配的加密密钥的长度和与认证算法匹配的认证密钥的长度之和。如:第一IPSecSA确定的加密算法为AES-256算法,其对应的第一加密密钥和第一解密密钥的长度均是32字节,认证算法采用SHA256,对应的第一认证密钥和第二认证密钥的长度要求不短于该SHA256的输出长度32字节,假设取第一认证密钥和第二认证密钥的长度均为32字节,那么,可以在PBKDF2函数中定义dkLen=64字节,从而获得64字节的第一输出结果和第二输出结果,并将该第一输出结果从左起的32字节截取出来作为第一加密密钥,将该第一输出结果从右起的32字节截取出来作为加密方向的第一认证密钥,同理,将该第二输出结果从左起的32字节截取出来作为第一解密密钥,将该第二输出结果从右起的32字节截取出来作为解密方向的第二认证密钥。
需要说明的是,上述实现方式中,计算密钥均是以PBKDF2函数为例进行说明的,本申请实施例中也可以使用其他类似的密钥衍生函数实现,只要该密钥衍生函数能够自定义哈希函数、允许输入参数是足够长的字符串、可以指定输出结果的长度且输出结果足够安全,即可作为本申请实施例中用于计算密钥的函数。
需要说明的是,第一IPSec SA除了包括第一SPI、第一加密密钥和第一认证密钥,还可以包括其他参数,例如:封装模式、认证算法、加密算法、IPSec SA老化周期等,第一网络设备可以直接获得这些其他参数。例如:该第一IPSec SA中的其他参数可以是预先在IPSec配置信息中固定配置好的,第一网络设备通过读取IPSec配置信息即可确定该第一IPSec SA中的其他参数。同理,第二IPSec SA除了包括第二SPI、第一解密密钥和第二认证密钥,还可以包括其他参数,其包括的其他参数与第一IPSec SA包括的其他参数相同,第一网络设备也可以直接获得这些其他参数。需要说明的是,第一网络设备获得IPSec SA中的其他参数,对于自动更新手工配置IPSec SA的过程不产生影响,所以,在本申请实施例中不作详细说明。
在又一些可能的实现方式中,考虑到第一网络设备和第二网络设备之间根据需求可能建立多条IPSec隧道,那么,多条IPSec隧道对应的IPSec SA需要不同,至少多条IPSec隧道对应的SPI和密钥要不同。基于此,以第一网络设备和第二网络设备之间建立2条IPSec隧道为例,IPSec配置信息中还可以包括第一标识和第二标识,其中,第一标识用于指示第一IPSec隧道,第二标识用于指示第二IPSec隧道,第一IPSec隧道、第二IPSec隧道为第一网络设备和第二网络设备之间两条不同的IPSec隧道。那么,上述第一网络设备根据本地保存的手工配置的IPSec配置信息以及与第一时刻关联的第一时间参数,确定第一IPSec SA和第二IPSec SA,具体可以包括:第一网络设备根据第一标识和第一时间参数,确定第一标识对应的第一IPSec SA和第二IPSec SA,其中,第一IPSec SA和第二IPSec SA对应第一IPSec隧道。同时,该方法还可以包括:在所述第一时刻,第一网络设备根据第二标识和第一时间参数,确定第二标识对应的第五IPSec SA和第六IPSec SA,其中,所述第五IPSec SA和所述第六IPSec SA对应所述第二IPSec隧道。
其中,该第一标识和第二标识具体可以是规则标识Rule ID,用于标识两个网络设备之间不同的IPSec隧道,与隧道标识Tunnel ID不同的是,Tunnel ID对应的是网络设备实际的物理接口,不能用于区分相同的2个物理接口之间的2条IPSec隧道,而网络设备上同一个物理接口则可以对应2个Rule ID,能够用于区分相同的物理接口之间的2条IPSec隧道。
这样,保证即使是相同的两个网络设备之间的多条IPSec隧道,网络设备也能够在每个IPSec SA老化周期自动更新出唯一标识各条IPSec隧道的SPI和密钥,使得网络设备之间的多条IPSec隧道均能够有效且安全的传输报文,互不影响,从而提高报文的传输效率。
在再一些可能的实现方式中,考虑到第一网络设备和第二网络设备的时间不是严格同步,或者,第一网络设备和第二网络设备上计数器不是同时启动,导致第一网络设备和第二网络设备上自动更新IPSec SA的时机无法做到精确的同步。为了避免第一IPSec隧道两端网络设备更新IPSec SA不同步导致2个网络设备分别处于两个不同的IPSec SA老化周期时,无法对报文进行安全保护,甚至无法有效的传输报文的问题,本申请实施例中,还可以在生成当前时刻所属的IPSec SA老化周期对应的一对IPSec SA的同时,生成下一个IPSec SA老化周期对应的一对IPSec SA,网络设备上分别保存两对IPSec SA,以便两端网络设备自动更新IPSec SA的时机无法做到精确的同步时,仍然基于第一IPSec隧道对报文进行安全有效的传输。
作为一个示例,本申请实施例还可以包括:在所述第一时刻,所述第一网络设备根据所述IPSec配置信息和所述第二时间参数,确定所述第三IPSec SA和所述第四IPSec SA。那么,当第二网络设备已经进入第二IPSec SA老化周期后利用第四IPSec SA对第一报文进行安全保护,但第一网络设备仍然处于第一IPSec SA老化周期时,该方法还包括:在第一IPSec SA老化周期内,第一网络设备接收第一报文,该第一报文为第二网络设备进入所述第二IPSec SA老化周期后进行安全保护的报文;那么,第一网络设备利用所述第四IPSecSA对所述第一报文进行安全验证。其中,所述第一网络设备利用所述第四IPSec SA对所述第一报文进行安全验证,具体可以包括:第一网络设备从第一报文中获得第四SPI;接着,第一网络设备基于所述第四SPI确定所述第四IPSec SA,所述第四IPSec SA中包括所述第四SPI;第一网络设备基于所述第四IPSec SA对所述第一报文进行安全验证。
这样,第一网络设备不仅可以本地自动更新手工配置的IPSec SA,而且,每个网络设备上同时保证生成并保存两对IPSec SA,即使两端网络设备更新IPSec SA不是严格同步,也能够对报文进行有效、安全的传输,确保了IPSec SA更新过程的平滑,避免出现由于更新IPSec SA不同步导致报文无法有效传输的问题。
需要说明的是,对于使用ESP协议的场景,可以通过SPI映射或用户数据报协议(英文:User Datagram Protocol,简称:UDP)封装实现网络地址转换(英文:Network AddressTranslation,简称:NAT)穿越。其中,SPI映射依赖于NAT穿越设备的应用层网关(英文:Application Layer Gateway,简称:ALG)处理,而UDP封装仅依赖于IPSec隧道的两端网络设备,因此,UDP封装的方案能够更广泛的被用于IPSec场景下的NAT穿越。
作为一个示例,在使能了ESP NAT穿越的情况下,由于没有类似IKE方式的NAT穿越动态监测机制,所以,网络设备将在ESP报文将直接封装UDP头,该UDP头中的源端口和目的端口的端口号都是4500,私网侧的源端口会被NAT穿越设备转换。需要说明的是,在NAT穿越场景下,由于私网IP地址相比公网IP地址是相对固定的,所以,必须依赖于额外配置的对端网络设备的私网IP进行IPSec SA中参数的确定,例如:计算SPI以及密钥集时,参与计算的IPSec隧道的源IP地址和目的IP地址均应该使用私网IP地址,其他与确定IPSec SA无关的过程保持原来所使用的IP地址不变。需要说明的是,按照IPSec相关协议的规定,即使中间设备没有NAT穿越的功能,在传输报文中额外增加的UDP头也不会影响该报文在IPSec隧道中的安全传输以及接收端网络设备对其的正常处理。
第二方面,本申请实施例还提供了一种网络设备,该网络设备包括收发单元和处理单元。其中,收发单元用于执行上述第一方面提供的方法中的收发操作;处理单元用于执行上述第一方面或第三方面中除了收发操作以外的其他操作。例如:当所述网络设备执行所述第一方面所述的方法时,所述收发单元可以用于在第一IPSec SA老化周期内将利用第一IPSec SA进行安全保护的报文发送到第二网络设备;所述处理单元可以用于在第一时刻,根据本地保存的手工配置的IPSec配置信息以及与所述第一时刻关联的第一时间参数,确定第一IPSec SA和第二IPSec SA;所述处理单元还可以用于在第二时刻,根据本地保存的手工配置的IPSec配置信息以及与所述第二时刻关联的第二时间参数,确定第三IPSecSA和第四IPSec SA。
第三方面,本申请实施例还提供了一种网络设备,包括通信接口和处理器。其中,通信接口用于执行前述第一方面提供的方法中的收发操作;处理器,用于执行前述第一方面任意一种可能的实现方式提供的方法中除所述收发操作以外的其他操作。
第四方面,本申请实施例还提供了一种网络设备,该网络设备包括存储器和处理器。其中,该存储器包括计算机可读指令;与该存储器通信的处理器用于执行所述计算机可读指令,使得所述网络设备用于执行以上第一方面任意一种可能的实现方式提供的方法。
第五方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面的任意一种可能的实现方式提供的所述方法。
第六方面,本申请实施例还提供了计算机程序产品,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,使得计算机执行前述第一方面的任意一种可能的实现提供的所述方法。
第七方面,本申请实施例还提供了一种通信系统,该通信系统包括第一网络设备和第二网络设备,其中,第二网络设备也能够实施本申请实施例提供的方法,实现自动更新手工配置IPSec SA的功能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一应用场景所涉及的网络100的框架示意图;
图2为本申请实施例中涉及网络设备10和网络设备20的结构示意图;
图3为本申请实施例中一种自动更新手工配置IPSec SA的方法100的信令流程图;
图4为本申请实施例中另一种自动更新手工配置IPSec SA的方法200的信令流程图;
图5为本申请实施例中又一种自动更新手工配置IPSec SA的方法300的信令流程图;
图6为本申请实施例中自动更新手工配置IPSec SA的方法的一示例的信令流程图;
图7为本申请实施例中一种自动更新手工配置IPSec SA的方法400的流程示意图;
图8为本申请实施例中一种网络设备800的结构示意图;
图9为本申请实施例中一种网络设备900的结构示意图;
图10为本申请实施例中一种网络设备1000的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中的“1”、“2”、“3”、“第一”、“第二”以及“第三”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。
本申请中提及的“A和/或B”,应该理解为包括以下情形:仅包括A,仅包括B,或者同时包括A和B。
下面对于本申请涉及的一些技术术语做出简单解释说明。
IPSec隧道,通常对应一对IPSec SA。IPSec SA是有方向且成对存在的,两个网络设备之间建立一条IPSec隧道,需要两个网络设备分别确定本端网络设备与对端网络设备之间两个不同方向的IPSec SA。网络设备之间建立的IPSec隧道,既可以应用于对普通数据报文的安全保护,也可以用于对第三版开放式最短路径优先(英文:Open Shortest PathFirst version 3,简称:OSPFv3)等协议报文的安全保护。
IPSec SA具体可以包括用于唯一标识该IPSec SA的三元组:安全参数索引(英文:Security Parameter Index,简称:SPI)、IPSec隧道的目的互联网协议(英文:InternetProtocol,简称:IP)地址和使用的安全协议(如:报文验证头(英文:AuthenticationHeader,简称:AH)协议或封装安全载荷(英文:Encapsulating Security Payload,简称:ESP)协议);IPSec SA还可以包括:封装模式、认证算法、认证密钥、加密算法、加解密密钥和认证密钥、IPSec SA老化周期等参数,用于实现报文的加密等安全保护。其中,SPI为唯一标识IPSec SA的一个32比特的数值,如果对于同一个IPsec隧道,基于IPSec SA老化周期进行周期性的更新IPSec SA,更新后的IPSec SA的三元组中,通常只有SPI会发生变化,该IPSec隧道的目的IP地址和使用的安全协议号是保持不变的。需要说明的是,如果一个IPSec隧道同时支持AH协议和ESP协议,那么,两端的网络设备需要生成2对IPSec SA,一对IPSec SA与AH协议对应,一对IPSec SA与ESP协议对应,本申请实施例中以支持一种安全协议号为例进行说明。
例如:网络设备1和网络设备2之间要建立IPSec隧道1,网络设备1需要确定出方向对应的IPSec SA 1和入方向对应的IPSec SA 2,同样的,网络设备2确定出方向对应的IPSec SA 2和入方向对应的IPSec SA 1,那么,网络设备1和网络设备2均确定出IPSec SA1和IPSec SA 2,相当于在网络设备1和网络设备2之间建立了IPSec隧道1。如此,当网络设备1基于IPSec隧道1向网络设备2发送报文1时,网络设备1即可基于IPSec SA 1对报文1进行安全保护,网络设备2从该IPSec隧道1接收到经过安全保护的报文1后,即可基于IPSecSA 1对经过安全保护的报文1进行安全验证,具体例如可以是:网络设备1利用IPSec SA 1中的加密密钥对报文1进行加密,网络设备2利用IPSec SA 1中的解密密钥对报文1进行解密,其中,网络设备1中IPSec SA 1的加密密钥和网络设备2中IPSec SA 1的解密密钥匹配,网络设备1的IPSec SA 1中的SPI和网络设备2的IPSec SA 1中的SPI相同。反之,当网络设备2基于IPSec隧道1向网络设备1发送报文2时,网络设备2即可基于IPSec SA 2对报文2进行安全保护,网络设备1从该IPSec隧道1接收到经过安全保护的报文2后,即可基于IPSecSA 2对经过安全保护的报文2进行安全验证,具体例如可以是:网络设备2利用IPSec SA 2中的加密密钥对报文2进行加,网络设备1利用IPSec SA 2中的解密密钥对报文2进行解密。其中,网络设备2的IPSec SA 2中的加密密钥和网络设备1的IPSec SA 2中的解密密钥匹配,网络设备2的IPSec SA 2中的SPI和网络设备1的IPSec SA 2中的SPI相同。
IPSec SA老化周期,是为了提高IPSec隧道实现安全通信时IPSec SA中相关参数的安全性,预先定义的每对IPSec SA在网络设备上的有效时间(例如:1天),用于表征IPSecSA更新的频率。在每个IPSec SA老化周期开始时,网络设备可以确定该IPSec SA老化周期内用于对待传输报文进行安全保护以及安全验证的一对IPSec SA,例如:确定该IPSec SA老化周期对应的2个SPI、加密密钥、解密密钥以及2个认证密钥等,实现该IPSec SA老化周期内的安全通信。例如:假设网络设备1定义一个IPSec SA老化周期为10小时,网络设备1在第1个IPSec SA老化周期开始时产生加密密钥1和解密密钥1,经过10小时,该网络设备1进入第2个IPSec SA老化周期,产生该第2个IPSec SA老化周期对应的加密密钥2和解密密钥2。网络中的每个网络设备定义的IPSec SA老化周期的时长可以相同,也可以不同,在此不作具体限定。本申请中以IPSec隧道两端网络设备中定义相同时长的IPSec SA老化周期为例进行说明。
时间参数,在本申请实施例中是指与IPSec SA老化周期唯一对应的数值,用于在其唯一对应的IPSec SA老化周期内确定相应的IPSec SA。每个IPSec SA老化周期,IPSec隧道两端网络设备上的时间参数一致,但是,不同IPSec SA老化周期对应的时间参数一定是不同的。
目前,在网络设备之间建立IPSec隧道,通常采用手工配置方式或IKE协商方式在这两个网络设备上配置对应的IPSec SA。
手工配置方式,具体是指两个网络设备通过带外共享(如:邮件或电话共享)方式确定出IPSec隧道所要配置的IPSec SA,包括一致的加解密密钥,并将确定的IPSec SA手工配置在这两个网络设备上,使得这两个网络设备建立IPSec隧道。该手工配置方式,无需在两个网络设备之间通过报文协商确定IPSec SA,而能够直接根据手工配置的IPSec SA建立IPSec隧道,并直接对之后传输的报文进行安全保护,使得网络设备之间实现安全传输成为可能。但是,该手工配置方式,密钥等IPSec SA通过邮件等带外方式进行共享,容易泄露,不够安全;而且,对于网络设备较多的大规模组网的场景(例如:物联网(英文:Internet ofThings,简称:IoT)场景),需要逐台手工完成配置,配置工作量大且人工配置准确率无法得到保障;此外,目前的手工配置IPSec SA方式无法定期自动更新IPSec SA,随着时间的推移,IPSec SA中相关参数的安全性会降低,使得IPSec隧道越来越不安全。
IKE协商方式,具体是采用IKE协议为网络设备之间协商确定IPSec SA。通过IKE协商确定的IPSec SA中的密钥,由于是两个网络设备通过DH交换算法合成的(即,基于本端网络设备生成的私钥以及对端网络设备发送的公钥合成的密钥),所以,即使第三方截获了密钥交换的报文,也无法得到IPSec SA中真正的密钥,比较安全。但是,该IKE协商为两个网络设备确定一对IPSec SA,需要在该两个网络设备之间交互至少4条消息,对于如IoT的大规模组网的场景,由于网络设备数量的增多以及IPSec SA随着老化周期而不断的更新,各个网络设备均需要和其他网络设备交互海量的消息,才能够建立以及维护各IPSec隧道,不仅占用网络设备内以及网络中的很多资源,而且还存在耗时长、效率低的问题,无法满足安全通信快速、高效的要求。
基于此,本申请实施例提供了一种自动更新手工配置IPSec SA的方法和设备,在第一IPSec老化周期,第一网络设备基于本地保存的手工配置的IPSec配置信息以及与当前时刻关联的第一时间参数,确定与第一IPSec SA老化周期对应的2个IPSec SA,这2个IPSecSA用于在该第一IPSec SA老化周期内对该第一网络设备和第二网络设备传输的报文进行安全保护或安全验证;进入下一个IPSec SA老化周期(记作第二IPSec SA老化周期)时,该第一网络设备又能够根据IPSec配置信息以及与第二时刻关联的第二时间参数,自动的确定与第二IPSec SA老化周期对应的2个IPSec SA,这2个IPSec SA用于在该第二IPSec SA老化周期内对该第一网络设备和第二网络设备传输的报文进行安全保护或安全验证。可见,通过本申请实施例提供的方法,网络设备本地能够在各个IPSec SA老化周期分别确定出与当前IPSec SA老化周期对应的一对IPSec SA,无需通过网络设备之间交互多个消息,即可实现对IPSec SA的确定以及周期性的自动更新,提高了两个网络设备之间IPSec隧道的安全性,克服了目前手工配置方式以及IKE协商方式中存在的问题,使得网络设备之间简单、快速的建立安全的IPSec隧道成为可能。
举例来说,本申请实施例的场景之一,可以是应用到如图1所示的网络100中。如图1所示,该网络100中包括网络设备10和网络设备20,其中,网络设备10可以是局域网(英文:Local Area Network,简称:LAN)1的网关设备,网络设备20可以是LAN 2的网关设备,该网络设备10、网络设备20例如可以是具有IPSec功能的路由器或防火墙等。LAN 1和LAN 2中,均可以包括服务器、个人计算机(英文:Personal Computer,简称:PC)等终端设备。该网络100中,网络设备10和网络设备20之间能够建立IPSec隧道,通过该IPSec隧道,实现LAN 1和LAN 2之间安全的互相访问,例如:LAN 1中的PC 1通过该IPSec隧道能够安全访问LAN 2中的服务器2,又例如:LAN 2中的PC 2通过该IPSec隧道能够安全访问LAN 1中的服务器1。
其中,网络设备10的内部结构以及网络设备20的内部结构,可以参见图2所示。网络设备10本地保存有IPSec配置信息1,集成有自动更新手工配置IPSec SA模块101,还可以包括时钟102或计数器103;网络设备20本地保存有IPSec配置信息2,集成有自动更新手工配置IPSec SA模块201,还可以包括时钟202或计数器203。在网络设备10的自动更新手工配置IPSec SA模块101能够获取该本地保存的IPSec配置信息1,也能够通过时钟102或计数器103获得与当前时刻关联的时间参数,从而可以基于IPSec配置信息1以及与当前时刻关联的时间参数确定IPSec SA 1和IPSec SA 2;同理,在网络设备20的自动更新手工配置IPSecSA模块201能够获取该本地保存的IPSec配置信息2,也能够通过时钟202或计数器203获得与当前时刻关联的时间参数,从而可以基于IPSec配置信息2以及与当前时刻关联的时间参数确定IPSec SA 2和IPSec SA 1。
需要说明的是,通常是同时在待建立IPSec隧道两端的网络设备上配置IPSec配置信息。一旦在网络设备上配置完成IPSec配置信息,该网络设备就可以开始启动确定IPSec隧道、基于IPSec隧道对报文的安全保护以及自动更新IPSec SA。
作为一个示例,以网络设备10为例,网络设备10本地预先配置了IPSec配置信息1之后,网络设备10即可周期性的自动手工配置IPSec SA,具体过程例如可以包括:网络设备10的自动更新手工配置IPSec SA模块101获取IPSec配置信息1,并定义当前时刻T1对应IPSec SA老化周期1,时间参数为1,那么,自动更新手工配置IPSec SA模块101即可基于该IPSec配置信息1和时间参数1,计算出SPI 1、SPI 2、加密密钥1、解密密钥1等IPSec SA相关参数,确定SPI 1、加密密钥1等IPSec SA相关参数为IPSec SA 1,确定SPI 2、解密密钥1等IPSec SA相关参数为IPSec SA 2。这样,从T1时刻开始未经历超过一个IPSec SA老化周期的时长(即,IPSec SA老化周期1内),网络设备10通过IPSec SA 1对待发送报文1进行安全保护,例如:网络设备10将SPI 1携带在该报文1中,且利用IPSec SA 1中的加密密钥1对报文1进行加密后发送给网络设备20;此外,网络设备10通过IPSec SA 2对从网络设备20发来的报文2进行安全验证,例如:网络设备10从接收的报文2中获取SPI 2,并确定与SPI 2对应的IPSec SA 2,利用IPSec SA 2中的解密密钥1对报文2进行解密。
从T1时刻开始经历了一个IPSec SA老化周期的时长到达T2时刻(即,进入下一个IPSec SA老化周期,记作IPSec SA老化周期2),此时,网络设备10的时间参数为加一,即,时间参数为2,自动更新手工配置IPSec SA模块101可以基于该IPSec配置信息1和时间参数2,计算出SPI 3、SPI 4、加密密钥2、解密密钥2等IPSec SA相关参数,确定SPI 3、加密密钥2等IPSec SA相关参数为IPSec SA 3,确定SPI 4、解密密钥2等IPSec SA相关参数为IPSec SA4。从T2时刻开始未经历超过一个IPSec SA老化周期的时长(即,IPSec SA老化周期2内),网络设备10通过IPSec SA 3对待发送报文3进行安全保护,例如:网络设备10将SPI 3携带在该报文3中,且利用IPSec SA 3中的加密密钥2对报文3进行加密后发送给网络设备20;此外,网络设备10通过IPSec SA 4对从网络设备20发来的报文4进行安全验证,例如:网络设备10从接收的报文4中获取SPI 4,并确定与SPI4对应的IPSec SA 4,利用IPSec SA 4中的解密密钥2对报文4进行解密。
需要说明的是,网络设备10和网络设备20每经历一个IPSec SA老化周期,网络设备10和网络设备20均对其时间参数加一后,基于各自的IPSec配置信息以及更新后的时间参数,本地自动更新一对IPSec SA,用于在当前IPSec SA老化周期内对报文进行安全保护,后续的更新过程与IPSec SA老化周期1和IPSec SA老化周期2的自动更新过程类似,在本实施例不再赘述。
这样,无需通过网络设备之间交互多个消息,网络设备本地即可实现对IPSec SA的确定以及周期性的自动更新,提高了两个网络设备之间IPSec隧道的安全性,克服了目前手工配置方式以及IKE协商方式中存在的问题。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中自动更新手工配置IPSecSA的方法的具体实现方式。
下面结合图3,以图1所示的网络100为例,具体以网络100中的网络设备100为例,对本申请实施例所述的自动更新手工配置IPSec SA的方法100进行介绍。
图3所示为本申请实施例提供的一种自动更新手工配置IPSec SA的方法100。网络设备10和网络设备20之间如果有建立IPSec隧道1的需求,那么,在该方法100执行之前,网络设备10本地配置IPSec配置信息1,网络设备20本地配置IPSec配置信息2,分别在IPSec配置信息中定义相同的IPSec SA老化周期的时长,例如:1天。该IPSec配置信息1中还可以包括该IPSec隧道1相对于网络设备10的源IP地址1、IPSec隧道1相对于网络设备10的目的IP地址2等,IPSec配置信息2中还可以包括该IPSec隧道1相对于网络设备20的源IP地址2、IPSec隧道1相对于网络设备2的目的IP地址2等,其中,源IP地址1和目的IP地址2的值相同,目的IP地址1和源IP地址2的值相同。在上述配置操作完成之后,即可执行方法100的下述操作。
以IPSec SA的一次自动更新为例,对本申请实施例提供的方法100进行说明。该方法100包括两个阶段:第一阶段,当前的第一时刻,该第一时刻属于IPSec SA老化周期N(其中,N为正整数),时间参数为N,此时,方法100例如可以包括S101~S104;第二阶段,从第一时刻开始经历一个IPSec SA老化周期的时长到达的第二时刻,该第二时刻属于IPSec SA老化周期N+1,时间参数为N+1,该方法100例如可以包括S105~S108。
具体实现时,在第一时刻,即,该方法100的第一阶段,该方法100例如可以下述S101~S104:
S101,网络设备10根据IPSec配置信息1和与第一时刻关联的时间参数N,确定IPSec SA 1和IPSec SA 2。
第一时刻,可以是网络设备10和网络设备20配置完IPSec配置信息后启动的首个IPSec SA老化周期的开始时刻,也可以是任意一个其他的IPSec SA老化周期的开始时刻。当进入该IPSec SA老化周期时,执行S101和S102,建立网络设备10和网络设备20之间的IPSec隧道1。本申请实施例中,将第一时刻所属的IPSec SA老化周期记作IPSec SA老化周期N,N可以是任意正整数,例如:N=1。
其中,时间参数是指唯一指示当前IPSec SA老化周期的数值。从当前IPSec SA老化周期进入下一个IPSec SA老化周期,时间参数的数值发生变化,而且变化后的时间参数能够唯一指示该新的IPSec SA老化周期。例如:当网络设备10配置IPSec配置信息完成之后,即进入IPSec SA老化周期1,对应的时间参数为1,此后,每当进入到下一个IPSec SA老化周期后,对应的时间参数加一,得到当前所进入的IPSec SA老化周期对应的时间参数。本申请实施例中,第一时刻所属的IPSec SA老化周期N对应的时间参数可以记作N。
网络设备10获取第一时刻对应的时间参数N可以通过多种方式实现,例如,可以通过读取计数器的值实现,又例如,也可以通过读取时钟的值并进行计算实现。
作为一个示例,网络设备10获取第一时刻对应的时间参数N具体可以包括:S11,在第一时刻,网络设备10可以读取其上时钟102的值T11,将该T11转换为Unix时间戳A11;S12,网络设备10还可以从本地保存的IPSec配置信息1中获取IPSec SA老化周期的时长t;S13,网络设备10将A11除以t所得的商的整数部分作为时间参数N,
Figure BDA0002421845680000131
需要说明的是,在同一个IPSec SA老化周期内该示例计算的时间参数保持不变,每个经过一个IPSec SA老化周期该示例计算的时间参数增加一。
该示例下,Unix时间戳的0按照国际标准化组织(英文:InternationalOrganization for Standardization,简称:ISO)8601规范为:1970-01-01T00:00:00Z,即,从1970年1月1日(世界标准时间UTC/格林威治时间GMT的午夜)开始到当前时刻所经过的秒数,不考虑闰秒。S11中将当前的第一时刻转换为Unix时间戳,考虑到Unix时间戳不受时区影响的特点,有效的避免了不同时区对网络设备10获取时间参数造成的影响。
需要说明的是,为了确保IPSec隧道1两端网络设备计算的时间参数在同一个IPSec SA老化周期内是一致,在S11之前,网络设备10和网络设备20还可以进行时间同步操作。其中,时间同步操作的要求精度可以不作具体限定,时钟同步后网络设备10的时钟102的读数和网络设备20的时钟202的读数之差最大不能超过一个IPSec SA老化周期,一旦两个时钟的读数之差超过一个IPSec SA老化周期的时长,则,在同一个IPSec SA老化周期内网络设备10和网络设备20就不能计算出相同的时间参数。时间同步操作后网络设备10的时钟102的读数和网络设备20的时钟202的读数之差越小越好,当两个时钟的读数之差为零,则,认为两个网络设备实现了严格的时间同步,在同一个IPSec SA老化周期内的任意时刻,网络设备10计算出的时间参数和网络设备20计算出的时间参数均相同,且整个IPSec SA老化周期计算出的时间参数均为一个固定的值。
作为另一个示例,在第一时刻,网络设备10可以读取其上计数器103的值,计数器103的读数为N,所以,确定该第一时刻对应的时间参数为N。需要说明的是,在同一个IPSecSA老化周期内该计数器的读数保持不变,每经过一个IPSec SA老化周期该计数器的值加一。例如:假设一个IPSec SA老化周期的时长为10小时,第一时刻,从IPSec SA老化周期(N-1)进入IPSec SA老化周期N,计数器的值从(N-1)跳转到N,此时,网络设备10获取时间参数N;从第一时刻经历10小时到达第二时刻,从IPSec SA老化周期N进入IPSec SA老化周期(N+1),计数器的值从N跳转到(N+1),此时,网络设备10获取时间参数(N+1)。
需要说明的是,通常要求IPSec隧道两端的网络设备内的计数器同时启动,这样,可以确保在同一个IPSec SA老化周期内的任意时刻,网络设备10读取的时间参数和网络设备20读取的时间参数均相同。如果无法严格做到IPSec隧道两端的网络设备内的计数器同时启动,也要确保两个计数器启动的时间差不能超过一个IPSec SA老化周期的时长,因为一旦两个计数器启动的时间差能超过了一个IPSec SA老化周期的时长,在同一个IPSec SA老化周期内网络设备10和网络设备20就不能从计数器读取出相同的时间参数。
IPSec配置信息1除了包括IPSec SA老化周期的时长之外,还可以包括:IPSec隧道1相对于网络设备10的源IP地址1、目的IP地址1和预共享密钥材料K,该预共享密钥材料K用于计算IPSec SA中的IPSec密钥,并不作为真正的密钥参与报文的加解密操作。
IPSec SA 1中包括SPI 1,IPSec SA 2中包括SPI 2,那么,网络设备10根据IPSec配置信息1和时间参数N,确定IPSec SA 1和IPSec SA 2,包括:网络设备10根据源IP地址1、目的IP地址1和时间参数N,确定SPI 1和SPI 2。其中,SPI 1和SPI 2均为4字节的数值,SPI1的值和SPI 2的值不同。
作为一个示例,网络设备10根据源IP地址1、目的IP地址1和时间参数N,确定SPI1,具体可以通过将源IP地址1、目的IP地址1和时间参数N依次进行连接,并利用32位循环冗余校验(英文:Cyclic Redundancy Check,简称:CRC)函数对连接后的字符串进行处理,处理后的结果记作SPI 1,具体可以表示为:SPI 1=CRC32(源IP地址1|目的IP地址1|N),其中,“|”为字符串连接符。同理,网络设备10根据根据源IP地址1、目的IP地址1和时间参数N,确定SPI 2,具体可以通过将目的IP地址1、源IP地址1和时间参数N依次进行连接,并利用CRC32函数对连接后的字符串进行处理,处理后的结果记作SPI 2,具体可以表示为:SPI 2=CRC32(目的IP地址1|源IP地址1|N)。由于CRC32函数的输出结果32位即4字节,和SPI 1的数值长度相同,所以,CRC32函数的输出结果可以直接作为SPI的数值。
需要说明的是,采用CRC32函数计算SPI时,SPI发生冲突的概率P为:
Figure BDA0002421845680000141
其中,k为网络中同时存在的SPI的个数,N为总样本数,CRC32函数的总样本数为2的32次方。对于一个SPI值只在当前的IPSec SA老化周期内有效,所以即使网络中同时存在的SPI很多,使用CRC32函数计算出相同SPI的概率也微乎其微。而且,用于标识IPSec SA的不仅有SPI,还包括IPSec隧道的目的IP地址,不同IPSec SA同时具有相同的SPI和目的IP地址几乎不可能,确保了网络设备能够利用唯一的IPSec SA对待传输报文进行有效且有序的安全保护。
作为另一个示例,网络设备10也可以使用CRC32函数的其他变种函数(例如:CRC32/MEPG2、CRC32C、CRC32D等),对源IP地址1、目的IP地址1和时间参数N连接后字符串进行处理,得到SPI 1;同理,网络设备10也可以利用该CRC32函数的其他变种函数对目的IP地址1、源IP地址1和时间参数N连接后字符串进行处理,得到SPI 2。
作为再一种示例,网络设备10还可以使用其他哈希函数(例如:MD5、SHA1和SHA256等),对源IP地址1、目的IP地址1和时间参数N连接后字符串进行处理,得到处理结果1;对超过4字节的处理结果1进行压缩或截断操作,获得长度为4字节的SPI 1,对于长度恰好为4字节的处理结果1,可以直接将处理结果1作为SPI 1。同理,网络设备10也可以利用计算SPI 1所采用的哈希函数对目的IP地址1、源IP地址1和时间参数N连接后字符串进行处理,得到处理结果2;对超过4字节的处理结果2进行压缩或截断操作,获得长度为4字节的SPI 2,对于长度恰好为4字节的处理结果2,可以直接将处理结果2作为SPI 2。例如:SPI 1=LEFT(SHA1(源IP地址1|目的IP地址1|N),4),SPI 2=LEFT(SHA1(目的IP地址1|源IP地址1|N),4),其中LEFT为从字符串左边开始截取的截取函数,该LEFT函数的第一个参数为待截取字符串(即,处理结果1或处理结果2),第二个参数为截取的字符串长度(单位:字节),SHA1函数的输出结果为20字节,那么,该SPI 1即为从20字节的处理结果1中截取的前4字节,该SPI 2即为从20字节的处理结果2中截取的前4字节。
IPSec SA 1中包括密钥集1,IPSec SA 2中包括密钥集2,那么,网络设备10根据IPSec配置信息1和时间参数N,确定IPSec SA 1和IPSec SA 2,包括:网络设备10根据源IP地址1、目的IP地址1、预共享密钥材料K和时间参数N,确定密钥集1和密钥集2。其中,密钥集1包括加密密钥1和认证密钥1中的至少一个,密钥集2包括解密密钥1和认证密钥2中的至少一个,加密密钥1和解密密钥1匹配,加密方向的认证密钥1和解密方向的认证密钥2匹配。需要说明的是,加密密钥1的长度需要与该IPSec SA 1中确定的加密算法相匹配,解密密钥1的长度和加密密钥1的长度相同;认证密钥1和认证密钥2的长度没有具体限制,但一般不短于认证算法本身的输出长度。
在一些可能的实现方式中,网络设备10根据源IP地址1、目的IP地址1和时间参数N依次进行连接;将连接后的字符串和预共享密钥材料K均输入基于密码的密钥衍生函数(如:PBKDF2)中,得到输出结果1;基于该输出结果1确定密钥集1。同理,网络设备10根据目的IP地址1、源IP地址1和时间参数N依次进行连接;将连接后的字符串和预共享密钥材料K均输入基于密码的密钥衍生函数中,得到输出结果2;基于该输出结果2确定密钥集2。
例如:输出结果1=PBKDF2(HMAC-SHA256,K,源IP地址1|目的IP地址1|N,c,dkLen),其中,PBKDF2函数的第一个参数是哈希算法,这里以HMAC-SHA256为例;第二个参数是预共享密钥材料K,用于保障生成的密钥的随机性;第三个参数是源IP地址1、目的IP地址1和时间参数N按序连接后的字符串,也称为该函数的盐值,用于确保不IPSec的隧道或者相同IPSec隧道在不同IPSec SA老化周期内得到的输出结果是不同的;第四个参数是迭代次数c,它是一个自定义值,IPsec隧道两端网络设备上计算时保持一致即可,c取值越大对网络设备性能要求越高,但计算出的密钥也越安全,如:取c=1000;最后一个参数用于指定输出结果的长度dkLen,如:取dkLen=32字节或dkLen=64字节。输出结果2=PBKDF2(HMAC-SHA256,K,目的IP地址1|源IP地址1|N,c,dkLen),需要说明的是,输出结果1和输出结果2中的哈希算法、c以及dkLen均取相同的值。
作为一个示例,可以指定输出结果1的长度、输出结果2的长度与IPSec SA 1中加密算法相匹配,那么,输出结果1可以直接作为加密密钥1,加密方向的认证密钥1可以和该加密密钥1相同,输出结果2可以直接作为解密密钥1,解密方向的认证密钥2可以和该解密密钥1相同。例如:IPSec SA 1确定的加密算法为AES-256算法,其对应的加密密钥和解密密钥的长度均是32字节,那么,可以在PBKDF2函数中定义dkLen=32字节,从而获得32字节的输出结果1和输出结果2,并将该输出结果1作为加密密钥1,将与该加密密钥1相同的值作为加密方向的认证密钥1,同理,将该输出结果2作为解密密钥1,将与该解密密钥1相同的值作为解密方向的认证密钥2。
作为另一个示例,为了提高安全性,可以将输出结果1的长度、输出结果2的长度均指定为大于与IPSec SA 1中加密算法匹配的加密密钥的长度,且大于与认证算法匹配的认证密钥的长度,这样,网络设备10可以从得到的输出结果1中截取出加密算法所要求长度的加密密钥1,并从得到的该输出结果1中截取出认证算法所要求长度的认证密钥1,如此,使用与加密密钥1不同的认证密钥1,实现对待传输报文的更加安全的保护;同理,网络设备10可以从得到的输出结果2中截取出加密算法所要求长度的解密密钥1,并从得到的该输出结果2中截取出认证算法所要求长度的认证密钥2,如此,使用与解密密钥1不同的认证密钥2,实现对待传输报文的更加安全的保护。
优选的,可以将输出结果1的长度、输出结果2的长度均指定为:与IPSec SA 1中加密算法匹配的加密密钥的长度和与认证算法匹配的认证密钥的长度之和。例如:IPSec SA1确定的加密算法为AES-256算法,其对应的加密密钥1和解密密钥1的长度均是32字节,认证算法采用SHA256,对应的认证密钥1和认证密钥2的长度要求不短于该SHA256的输出长度32字节,假设取认证密钥1和认证密钥2的长度均为32字节,那么,可以在PBKDF2函数中定义dkLen=64字节,从而获得64字节的输出结果1和输出结果2,并将该输出结果1从左起的32字节截取出来作为加密密钥1,将该输出结果1从右起的32字节截取出来作为加密方向的认证密钥1,同理,将该输出结果2从左起的32字节截取出来作为解密密钥1,将该输出结果2从右起的32字节截取出来作为解密方向的认证密钥2。
需要说明的是,上述实现方式中,计算密钥均是以PBKDF2函数为例进行说明的,本申请实施例中也可以使用其他类似的密钥衍生函数实现,只要该密钥衍生函数能够自定义哈希函数、允许输入参数是足够长的字符串、可以指定输出结果的长度且输出结果足够安全,即可作为本申请实施例中用于计算密钥的函数。
其中,IPSec SA 1除了包括SPI 1、加密密钥1和认证密钥1,还可以包括其他参数,例如:封装模式、认证算法、加密算法、IPSec SA老化周期等,网络设备10可以直接获得这些其他参数。例如:该IPSec SA 1中的其他参数可以是预先在IPSec配置信息1中固定配置好的,网络设备10通过读取IPSec配置信息1即可确定该IPSec SA 1中的其他参数。同理,IPSec SA 2除了包括SPI 2、解密密钥1和认证密钥2,还可以包括其他参数,其包括的其他参数与IPSec SA 1包括的其他参数相同,网络设备10也可以直接获得这些其他参数。需要说明的是,网络设备10获得IPSec SA中的其他参数,对于自动更新手工配置IPSec SA的过程不产生影响,所以,在本申请实施例中不作详细说明。
S102,网络设备20根据IPSec配置信息2和与第一时刻对应的时间参数N,确定IPSec SA 2和IPSec SA 1。
网络设备20上获得第一时刻对应的时间参数N的方式,与上述S101中获取时间参数N的方式对应。
当S101采用S11~S13的方式实现时,S102中获取时间参数具体可以包括:S21,在第一时刻,网络设备20可以读取其上时钟202的值T21,将该T21转换为Unix时间戳A21;S22,网络设备20还可以从本地保存的IPSec配置信息2中获取IPSec SA老化周期的时长t;S23,网络设备20将A21除以t所得的商的整数部分作为时间参数N,
Figure BDA0002421845680000161
其中,时钟102的读数T11和时钟202的读数T21之差要求小于一个IPSec SA老化周期。
当S101通过读取网络设备10上计数器103的值获得时间参数N时,S102中网络设备20获取时间参数具体也可以是:网络设备20读取其上计数器203的读数为N,所以,确定该第一时刻对应的时间参数为N。其中,计数器103和计数器203的启动的时间差要求小于一个IPSec SA老化周期的时长。
其中,IPSec SA 2中包括SPI 2、加密密钥2和认证密钥3,IPSec SA 1中包括SPI1、解密密钥2和认证密钥4。由于IPSec隧道1相对于网络设备10的源IP地址1即为该IPSec隧道1相对于网络设备20的目的IP地址,IPSec隧道1相对于网络设备10的目的IP地址1即为该IPSec隧道1相对于网络设备20的源IP地址,所以,S102采用与S101中网络设备10确定IPSecSA 1和IPSec SA 2相同的实现方式,网络设备20确定出的IPSec SA 2中,SPI 2的值与网络设备10确定的IPSec SA 2中的SPI 2的值相同,加密密钥2的值与网络设备10确定的IPSecSA 2中的解密密钥1的值相同,认证密钥3与网络设备10确定的IPSec SA2中的认证密钥2的值相同;网络设备20确定出的IPSec SA 1中,SPI 1的值与网络设备10确定的IPSec SA 1中的SPI 1的值相同,解密密钥2的值与网络设备10确定的IPSec SA 1中的加密密钥1的值相同,认证密钥4与网络设备10确定的IPSec SA 1中的认证密钥1的值相同。
由于网络设备10和网络设备20确定的SPI是对称的,因此,网络设备20上的SPI没有引入新的名称,对于相同的SPI值采用了相同的名词。同理,由于网络设备10和网络设备20确定的IPSec SA也是对称的,因此,网络设备20上的IPSec SA没有引入新的名称,对于包括相同内容的IPSec SA采用了相同的名词。
通过上述S101和S102分别在网络设备10和网络设备20上确定IPSec SA 1和IPSecSA 2,相当于在网络设备10和网络设备20之间建立了IPSec隧道1,使得网络设备10和网络设备20之间进行安全通信成为可能。
S103,在IPSec SA老化周期N内,网络设备10利用IPSec SA 1对网络设备10到网络设备20传输的报文1进行安全保护,利用IPSec SA 2对网络设备20到网络设备10传输的报文2进行安全验证。
对于待从网络设备10发送到网络设备20的报文1,可以利用IPSec SA 1中的加密密钥1和认证密钥1基于对应的加密算法、认证算法分别进行安全保护,并将SPI 1以明文的形式携带在安全保护后的报文1中,从IPSec隧道1发送给网络设备20。此时,网络设备20可以基于该报文1中携带的SPI 1,确定基于网络设备20上的IPSec SA 1对该安全保护后的报文1进行安全验证,具体使用该IPSec SA 1中的解密密钥2和认证密钥4对该安全保护后的报文1进行安全验证,当解密成功且认证通过时,可以确定该报文1安全。
例如:认证过程可以是:网络设备10可以按照认证算法和认证密钥1对报文1的载荷进行计算,获得认证数据1,并将认证数据1填充至AH头(或ESP尾)中发送给网络设备20中。网络设备20收到加密和认证后的报文1后,先进行解密,获得解密后的报文1;再按照认证算法和认证密4对解密后的报文1计算出认证数据2;网络设备20比较认证数据2和AH头(或ESP尾)中携带的认证数据1,如果两者相同,则,可以确定认证通过,否则,确定认证失败。
对于网络设备10基于IPSec隧道1从网络设备20接收的经过IPSec SA 2进行安全保护的报文2,网络设备10从该报文2中获得SPI 2,确定基于网络设备10上的IPSec SA 2对该安全保护后的报文2进行安全验证,具体使用该IPSec SA 2中的解密密钥1和认证密钥2对该安全保护后的报文2进行安全验证,当解密成功且认证通过时,可以确定该报文2安全。
需要说明的是,对于使用ESP协议的场景,可以通过SPI映射或用户数据报协议(英文:User Datagram Protocol,简称:UDP)封装实现网络地址转换(英文:Network AddressTranslation,简称:NAT)穿越。其中,SPI映射依赖于NAT穿越设备的应用层网关(英文:Application Layer Gateway,简称:ALG)处理,而UDP封装仅依赖于IPSec隧道的两端网络设备,因此,UDP封装的方案能够更广泛的被用于IPSec场景下的NAT穿越。
在使能了ESP NAT穿越的情况下,由于没有类似IKE方式的NAT穿越动态监测机制,所以,网络设备将在ESP报文将直接封装UDP头,该UDP头中的源端口和目的端口的端口号都是4500,私网侧的源端口会被NAT穿越设备转换。需要说明的是,在NAT穿越场景下,由于私网IP地址相比公网IP地址是相对固定的,所以,必须依赖于额外配置的对端网络设备的私网IP进行IPSec SA中参数的确定,例如:计算SPI以及密钥集时,参与计算的IPSec隧道的源IP地址和目的IP地址均应该使用私网IP地址,其他与确定IPSec SA无关的过程保持原来所使用的IP地址不变。
需要说明的是,按照IPSec相关协议的规定,即使中间设备没有NAT穿越的功能,在传输报文中额外增加的UDP头也不会影响该报文在IPSec隧道中的安全传输以及接收端网络设备对其的正常处理。
S104,在IPSec SA老化周期N内,网络设备20利用IPSec SA 2对网络设备20到网络设备10传输的报文3进行安全保护,利用IPSec SA 1对网络设备10到网络设备20传输的报文4进行安全验证。
对于待从网络设备20发送到网络设备10的报文3,可以利用IPSec SA 2中的加密密钥2和认证密钥3基于对应的加密算法、认证算法分别进行安全保护,并将SPI 2以明文的形式携带在安全保护后的报文3中,从IPSec隧道1发送给网络设备10。此时,网络设备10可以基于该报文3中携带的SPI 2,确定基于网络设备10上的IPSec SA 2对该安全保护后的报文3进行安全验证,具体使用该IPSec SA 2中的解密密钥1和认证密钥2对该安全保护后的报文3进行安全验证,当解密成功且认证通过时,可以确定该报文3安全。
对于网络设备20基于IPSec隧道1从网络设备10接收的经过IPSec SA 1进行安全保护的报文4,网络设备20从该报文4中获得SPI 1,确定基于网络设备20上的IPSec SA 1对该安全保护后的报文4进行安全验证,具体使用该IPSec SA 1中的解密密钥2和认证密钥4对该安全保护后的报文4进行安全验证,当解密成功且认证通过时,可以确定该报文4安全。
通过上述S101~S104,网络设备10和网络设备20能够各自在本地完成IPSec SA的确定,建立或更新IPSec隧道1,并能够快速的基于该IPSec隧道1进行安全通信,本申请实施例提供的该快速、简单和方便的IPSec SA配置方法,为网络设备之间进行IPSec安全通信提供了便利。
从第一时刻开始,经历一个IPSec SA老化周期的时长,到达第二时刻,也即,网络设备10和网络设备20从IPSec SA老化周期N进入到IPSec SA老化周期(N+1)。此时,网络设备10和网络设备20根据各自IPSec配置信息中IPSec SA老化周期时长的配置,会自动更新各自的IPSec SA,包括IPSec SA中的SPI和密钥。
需要说明的是,一种情况下,如果IPsec配置信息设置完备后即启动对IPSec SA的配置,没有特定的IPSec启动开关,则,第二时刻为从IPSec配置信息设置完成的时刻(或第一时刻)开始经历IPSec SA老化周期的整数倍。另一种情况下,如果网络设备额外设置了IPSec启动开关,该IPSec启动开关开启时用于指示网络设备开始建立IPSec隧道,则,第二时刻为从IPSec启动开关的时刻(或第一时刻)开始经历IPSec SA老化周期的整数倍。例如:IPSec SA老化周期时长为10小时,那么,从IPSec配置信息设置完成的时刻或启动开关开启时刻开始,每经过10小时到达一个新的IPSec SA老化周期,进行一次IPSec SA的自动更新。
在方法100的第二阶段,该方法100例如可以下述S105~S108:
S105,网络设备10根据IPSec配置信息1和与第二时刻关联的时间参数M,确定IPSec SA 3和IPSec SA 4,其中,M≠N。
S106,网络设备20根据IPSec配置信息2和与第二时刻关联的时间参数(N+1),确定IPSec SA 4和IPSec SA 3,其中,M≠N。
其中,IPSec配置信息1、IPSec配置信息2、时间参数以及IPSec SA的相关描述,可以参见S101~S104的相关描述。
当S101和S102均采用时钟的方式实现时,S105中获取时间参数具体可以包括:S31,在第二时刻,网络设备10可以读取其上时钟102的值T12,将该T12转换为Unix时间戳A12;S32,网络设备10还可以从本地保存的IPSec配置信息1中获取IPSec SA老化周期的时长t;S33,网络设备10将A12除以t所得的商的整数部分作为时间参数M,
Figure BDA0002421845680000191
S106中获取时间参数具体可以包括:S41,在第二时刻,网络设备20可以读取其上时钟202的值T22,将该T22转换为Unix时间戳A22;S42,网络设备20还可以从本地保存的IPSec配置信息2中获取IPSec SA老化周期的时长t;S43,网络设备20将A22除以t所得的商的整数部分作为时间参数M,
Figure BDA0002421845680000192
其中,时钟102的读数T21和时钟202的读数T22之差要求小于一个IPSec SA老化周期t。
当S101和S102通过读取计数器的值获得时间参数N时,S105中网络设备10获取时间参数具体也可以是:网络设备10读取其上计数器103的读数为M,所以,确定该第二时刻对应的时间参数为M。S106中网络设备20获取时间参数具体也可以是:网络设备20读取其上计数器203的读数为M,所以,确定该第二时刻对应的时间参数为M。其中,计数器103和计数器203的启动的时间差要求小于一个IPSec SA老化周期的时长。
上述两种实现方式中,M=N+1,即,每经过一个IPSec SA老化周期进入下一个IPSec SA老化周期,网络设备10和网络设备20均对其上的IPSec SA进行更新,以提高该IPSec隧道的安全性。
对于S105,网络设备10确定的IPSec SA 3中包括SPI 3、加密密钥3和认证密钥5,IPSec SA 4中包括SPI 4、解密密钥3和认证密钥6。对于S106,网络设备20确定的IPSec SA4中包括SPI 4、加密密钥4和认证密钥7,IPSec SA 3中包括SPI 3、解密密钥4和认证密钥8。其中,加密密钥3和解密密钥3匹配,认证密钥5和认证密钥6匹配,加密密钥4和解密密钥4匹配,认证密钥7和认证密钥8匹配。
其中,网络设备20确定出的IPSec SA 4中,SPI 4的值与网络设备10确定的IPSecSA 4中的SPI 4的值相同,加密密钥4的值与网络设备10确定的IPSec SA 4中的解密密钥3的值相同,认证密钥7与网络设备10确定的IPSec SA 4中的认证密钥6的值相同;网络设备20确定出的IPSec SA 3中,SPI 3的值与网络设备10确定的IPSec SA 3中的SPI 3的值相同,解密密钥4的值与网络设备10确定的IPSec SA 3中的加密密钥3的值相同,认证密钥8与网络设备10确定的IPSec SA 3中的认证密钥5的值相同。
由于网络设备10和网络设备20确定的SPI是对称的,因此,网络设备20上的SPI没有引入新的名称,对于相同的SPI值采用了相同的名词。同理,由于网络设备10和网络设备20确定的IPSec SA也是对称的,因此,网络设备20上的IPSec SA没有引入新的名称,对于包括相同内容的IPSec SA采用了相同的名词。
通过上述S105和S106分别在网络设备10和网络设备20上确定IPSec SA 3和IPSecSA 4,相当于在网络设备10和网络设备20之间更新了IPSec隧道1的IPSec SA,使得网络设备10和网络设备20之间进行持续高安全的通信成为可能。
S107,在IPSec SA老化周期(N+1)内,网络设备10利用IPSec SA 3对网络设备10到网络设备20传输的报文5进行安全保护,利用IPSec SA 4对网络设备20到网络设备10传输的报文6进行安全验证。
S108,在IPSec SA老化周期(N+1)内,网络设备20利用IPSec SA 4对网络设备20到网络设备10传输的报文7进行安全保护,利用IPSec SA 3对网络设备10到网络设备20传输的报文8进行安全验证。
在S107中,对于待从网络设备10发送到网络设备20的报文5,可以利用IPSec SA 3中的加密密钥3和认证密钥5基于对应的加密算法、认证算法分别进行安全保护,并将SPI3以明文的形式携带在安全保护后的报文5中,从IPSec隧道1发送给网络设备10。此时,网络设备20可以基于该报文5中携带的SPI 3,确定基于网络设备20上的IPSec SA 3对该安全保护后的报文5进行安全验证,具体使用该IPSec SA 3中的解密密钥4和认证密钥8对该安全保护后的报文5进行安全验证,当解密成功且认证通过时,可以确定该报文5安全。对于网络设备10基于IPSec隧道1从网络设备20接收的经过IPSec SA 4进行安全保护的报文6,网络设备10从该报文6中获得SPI 4,确定基于网络设备10上的IPSec SA 4对该安全保护后的报文6进行安全验证,具体使用该IPSec SA 4中的解密密钥3和认证密钥6对该安全保护后的报文6进行安全验证,当解密成功且认证通过时,可以确定该报文6安全。
在S108中,对于待从网络设备20发送到网络设备10的报文7,可以利用IPSec SA 4中的加密密钥4和认证密钥7基于对应的加密算法、认证算法分别进行安全保护,并将SPI4以明文的形式携带在安全保护后的报文7中,从IPSec隧道1发送给网络设备10。此时,网络设备10可以基于该报文7中携带的SPI 4,确定基于网络设备10上的IPSec SA 4对该安全保护后的报文7进行安全验证,具体使用该IPSec SA 4中的解密密钥3和认证密钥6对该安全保护后的报文7进行安全验证,当解密成功且认证通过时,可以确定该报文7安全。对于网络设备20基于IPSec隧道1从网络设备10接收的经过IPSec SA 3进行安全保护的报文8,网络设备20从该报文8中获得SPI 3,确定基于网络设备20上的IPSec SA 3对该安全保护后的报文8进行安全验证,具体使用该IPSec SA 3中的解密密钥4和认证密钥8对该安全保护后的报文8进行安全验证,当解密成功且认证通过时,可以确定该报文8安全。
通过上述S105~S108,网络设备10和网络设备20能够各自在本地完成IPSec SA的更新,该更新IPSec SA的过程快速、简单和方便,使得网络设备之间自动更新手工配置的IPSec SA成为可能,提高了网络设备之间基于IPSec隧道进行通信更加安全和便利。
需要说明的是,只要后续需要继续使用该IPSec隧道1在网络设备10和网络设备20之间的安全通信,那么,后续每个IPSec SA老化周期,均可以参见该IPSec SA老化周期(N+1)时自动更新IPSec SA的方法,进行IPSec SA的自动更新,实现网络设备10和网络设备20之间方便、快速和安全的通信。
如果不再需要继续使用该IPSec隧道1,则,网络设备10和网络设备20均可以拆除IPSec隧道。对于拆除IPSec隧道1,一种情况下,网络设备10可以删除IPSec配置信息1中的全部或部分内容,一旦IPSec配置信息1不完整,就视为需要拆除其对应的IPSec隧道1,即,网络设备10不再使用其上的IPSec SA对发往网络设备20的报文进行安全保护;同理,网络设备20也可以删除IPSec配置信息2中的全部或部分内容,一旦IPSec配置信息2不完整,就视为需要拆除其对应的IPSec隧道1,即,网络设备20不再使用其上的IPSec SA对发往网络设备10的报文进行安全保护。该情况下,如果后续又需要在网络设备10和网络设备20之间建立IPSec隧道,则,可以重新在网络设备10和网络设备20上完善或重新配置IPSec配置信息,配置IPSec配置信息完成后开始基于上述方法100重新建立并自动更新IPSec SA。
对于拆除IPSec隧道1,另一种情况下,网络设备10和网络设备20上也可以设置有IPSec启动开关,该IPSec启动开关关闭时用于指示拆除该IPSec隧道1。该情况下,如果后续又需要在网络设备10和网络设备20之间建立IPSec隧道,则,仅需要开启该IPSec启动开关,即可开始基于上述方法100重新建立并自动更新IPSec SA,更加方便和快捷。
可见,通过本申请实施例提供的方法100,网络设备本地能够在各个IPSec SA老化周期都确定出与当前IPSec SA老化周期对应的一对IPSec SA,无需通过网络设备之间交互多个消息,即可实现对IPSec SA的确定以及周期性的自动更新,提高了两个网络设备之间IPSec隧道的安全性,克服了目前手工配置方式以及IKE协商方式中存在的问题,使得网络设备之间简单、快速的建立安全的IPSec隧道成为可能。
在一些可能的实现方式中,考虑到网络设备10和网络设备20的时间不是严格同步,或者,网络设备10和网络设备20上计数器不是同时启动,导致网络设备10和网络设备20上自动更新IPSec SA的时机无法做到精确的同步。为了避免IPSec隧道1两端网络设备更新IPSec SA不同步导致2个网络设备分别处于两个不同的IPSec SA老化周期时,无法对报文进行安全保护,甚至无法有效的传输报文的问题,本申请实施例中,还可以在生成当前时刻所属的IPSec SA老化周期对应的一对IPSec SA的同时,生成下一个IPSec SA老化周期对应的一对IPSec SA,网络设备上分别保存两对IPSec SA,以便两端网络设备自动更新IPSecSA的时机无法做到精确的同步时,仍然基于IPSec隧道1对报文进行安全有效的传输。
参见图4所示,为本申请实施例提供的方法200的信令流程图。该方法200在第一阶段除了包括S101~S104,还可以包括:
S111,网络设备10根据根据所述IPSec配置信息1和时间参数(N+1),确定IPSec SA3和IPSec SA 4。
S112,网络设备20根据根据所述IPSec配置信息2和时间参数(N+1),确定IPSec SA4和IPSec SA 3。
其中,与第一时刻关联的时间参数为N,按照时间参数的变化规律,网络设备10以及网络设备20可以推测该第一时刻所属IPSec SA老化周期的下一个IPSec SA老化周期对应的时间参数。上述S111和S112是以每进入下一个IPSec SA老化周期,时间参数加一的变化规律为例的说明。
S111和S112中,IPSec配置信息1、IPSec配置信息2、时间参数(N+1)、IPSec SA 3和IPSec SA 4均可以参见上述方法100中的相关描述,在此不再赘述。
如果在网络设备10和网络设备20处于同一个IPSec SA老化周期的时间区间内,对报文的安全保护可以参见上述S103~S104或S107~S108。如果在网络设备10和网络设备20处于两个不同IPSec SA老化周期的时间区间内,例如:网络设备10处于IPSec SA老化周期N内但网络设备20进入IPSec SA老化周期(N+1),此时,对报文的安全保护的过程具体可以参见下述S113~S114:
S113,在IPSec SA老化周期N内,网络设备10接收报文9,报文9为网络设备20进入IPSec SA老化周期(N+1)后进行安全保护的报文;
S114,网络设备10利用IPSec SA 4对报文9进行安全验证。
其中,S114中网络设备10利用IPSec SA 4对报文9进行安全验证,具体可以包括:S1141,网络设备10从报文9中获得SPI 4;S1142,网络设备10基于SPI 4确定IPSec SA 4,该IPSec SA 4中包括SPI 4;S1143,网络设备10基于IPSec SA 4对报文9进行安全验证。
同理,该方法200在第二阶段除了包括S105~S108,还可以包括:
S115,网络设备10根据根据所述IPSec配置信息1和时间参数(N+2),确定IPSec SA5和IPSec SA 6。
S116,网络设备20根据根据所述IPSec配置信息2和时间参数(N+2),确定IPSec SA6和IPSec SA 5。
上述S115和S116是以每进入下一个IPSec SA老化周期,时间参数加一的规律为例的说明。
S115和S116中,IPSec配置信息1、IPSec配置信息2、时间参数(N+2)、IPSec SA 5和IPSec SA 6均可以参见上述方法100中的相关描述,在此不再赘述。
如果在网络设备10和网络设备20处于两个不同IPSec SA老化周期的时间区间内,例如:网络设备10处于IPSec SA老化周期(N+2)内但网络设备20进入IPSec SA老化周期(N+1),此时,对报文的安全保护的过程具体可以参见下述S117~S118:
S117,在IPSec SA老化周期(N+1)内,网络设备20接收报文10,报文10为网络设备10进入IPSec SA老化周期(N+2)后进行安全保护的报文;
S118,网络设备20利用IPSec SA 5对报文10进行安全验证。
其中,S118中网络设备20利用IPSec SA 5对报文10进行安全验证,具体可以包括:S1181,网络设备20从报文10中获得SPI 5;S1182,网络设备20基于SPI 5确定IPSec SA 5,该IPSec SA 5中包括SPI 5;S1183,网络设备20基于IPSec SA 5对报文10进行安全验证。
可见,通过上述方法200,网络设备不仅可以本地自动更新手工配置的IPSec SA,而且,每个网络设备上同时保证生成并保存两对IPSec SA,即使两端网络设备更新IPSecSA不是严格同步,也能够对报文进行有效、安全的传输,确保了IPSec SA更新过程的平滑,避免出现由于更新IPSec SA不同步导致报文无法有效传输的问题。
在另一些可能的实现方式中,考虑到网络设备10和网络设备20之间根据需求可能建立多条IPSec隧道,那么,多条IPSec隧道对应的IPSec SA需要不同,至少多条IPSec隧道对应的SPI和密钥要不同。基于此,以网络设备10和网络设备20之间建立2条IPSec隧道为例,本申请实施例还提供了另一种自动更新手工配置IPSec SA的方法300,参见图5。该方法300中,IPSec配置信息中还需要包括标识1和标识2,其中,标识1用于指示IPSec隧道1,标识2用于指示IPSec隧道2,IPSec隧道1、IPSec隧道2为网络设备10和网络设备20之间两条不同的IPSec隧道。
其中,该标识1和标识2具体可以是规则标识Rule ID,用于标识两个网络设备之间不同的IPSec隧道,与隧道标识Tunnel ID不同的是,Tunnel ID对应的是网络设备实际的物理接口,不能用于区分相同的2个物理接口之间的2条IPSec隧道,而网络设备上同一个物理接口则可以对应2个Rule ID,能够用于区分相同的物理接口之间的2条IPSec隧道。
在该方法300中的第一阶段,S101具体可以包括:
S101’,网络设备10根据标识1和时间参数N,确定标识1对应的IPSec SA 1和IPSecSA 2,其中,IPSec SA 1和IPSec SA 2对应IPSec隧道1。
同理,S102具体可以包括:
S102’,网络设备20根据标识1和时间参数N,确定标识1对应的IPSec SA 2和IPSecSA 1,其中,IPSec SA 2和IPSec SA 1对应IPSec隧道1。
此外,在该方法300中的第一阶段,该方法300还包括:
S201,在所述第一时刻,网络设备10根据标识2和时间参数N,确定标识2对应的IPSec SA 7和IPSec SA 8,其中,IPSec SA 7和IPSec SA 8对应IPSec隧道2。
S202,在所述第一时刻,网络设备20根据标识2和时间参数N,确定标识2对应的IPSec SA 8和IPSec SA 7,其中,IPSec SA 8和IPSec SA 7对应IPSec隧道2。
举例来说,假设IPSec隧道1对应的标识1的值为a,IPSec隧道2对应的标识2的值为b,那么,SPI 1=CRC32(源IP地址1|目的IP地址1|N|a)、SPI 2=CRC32(目的IP地址1|源IP地址1|N|a),计算密钥时的公式为:输出结果1=PBKDF2(HMAC-SHA256,K,源IP地址1|目的IP地址1|N|a,c,dkLen)、以及输出结果2=PBKDF2(HMAC-SHA256,K,目的IP地址1|源IP地址1|N|a,c,dkLen),即在方法100中计算SPI和密钥的输入字符串中串联一个用于标识隧道的标识,实现了对应两个网络设备之间不同IPSec隧道生成不同SPI和密钥的需求。
在方法300中,当网络设备20经过IPSec SA 8进行安全保护的报文11,通过IPSec隧道2发送给网络设备10时,网络设备10即可基于报文11中携带的SPI 8确定用网络设备10中的IPSec SA 8对该报文11进行安全验证。同理,当网络设备20经过IPSec SA 2进行安全保护的报文12,通过IPSec隧道1发送给网络设备10时,网络设备10即可基于报文12中携带的SPI 2确定用网络设备10中的IPSec SA 2对该报文12进行安全验证。
在该方法300中的第二阶段,S105具体可以包括:
S105’,网络设备10根据标识1和时间参数(N+1),确定标识1对应的IPSec SA 3和IPSec SA 4,其中,IPSec SA 3和IPSec SA 4对应IPSec隧道1。
同理,S106具体可以包括:
S106’,网络设备20根据标识1和时间参数(N+1),确定标识1对应的IPSec SA 4和IPSec SA 3,其中,IPSec SA 4和IPSec SA 3对应IPSec隧道1。
此外,在该方法300中的第二阶段,该方法300还包括:
S205,在所述第二时刻,网络设备10根据标识2和时间参数(N+1),确定标识2对应的IPSec SA 9和IPSec SA 10,其中,IPSec SA 9和IPSec SA 10对应IPSec隧道2。
S206,在所述第二时刻,网络设备20根据标识2和时间参数(N+1),确定标识2对应的IPSec SA 10和IPSec SA 9,其中,IPSec SA 10和IPSec SA 9对应IPSec隧道2。
如此,保证即使是相同的两个网络设备之间的多条IPSec隧道,网络设备也能够在每个IPSec SA老化周期自动更新出唯一标识各条IPSec隧道的SPI和密钥,使得网络设备之间的多条IPSec隧道均能够有效且安全的传输报文,互不影响,从而提高报文的传输效率。
需要说明的是,上述方法200和方法300提供的技术方案可以根据需要全部或部分结合到方法100。
为了使得本申请实施例提供的方法更加清楚和直观,下面结合图6对本申请的一个场景实施例进行说明。
参见图6,假设网络设备10和网络设备20之间建立两个IPSec隧道:IPSec隧道1和IPSec隧道2,该方法例如可以包括:
S601,网络设备10本地保存手工配置的IPSec配置信息1。
该IPSec配置信息1可以包括:
Rule ID=5或10;//其中,5指示IPSec隧道1,10指示IPSec隧道2
IPSec隧道1和IPSec隧道2的源IP地址=0x01010101;
IPSec隧道1和IPSec隧道2的目的IP地址=0x01010201;
预共享密钥材料K=Changeme_123;
IPSec SA老化周期时长t=3600秒;
选择工作模式为IPSec隧道模式;
认证算法采用sha2-256;
加密算法采用aes-256;等。
S602,网络设备20本地保存手工配置的IPSec配置信息2。
其中,该IPSec配置信息2可以包括:
Rule ID=5或10;//其中,5指示IPSec隧道1,10指示IPSec隧道2
IPSec隧道1和IPSec隧道2的源IP地址=0x01010201;
IPSec隧道1和IPSec隧道2的目的IP地址=0x01010101;
预共享密钥材料K=Changeme_123;
IPSec SA老化周期时长t=3600秒;
选择工作模式为IPSec隧道模式;
认证算法采用sha2-256;
加密算法采用aes-256;等。
S603,网络设备10基于时钟102的时间和IPSec SA老化周期的时长t计算当前的时间参数;网络设备20基于时钟202的时间和IPSec SA老化周期的时长t计算当前的时间参数。
假设网络设备10的时钟102显示的时间T1为北京时间2020年2月2日中午12点12分12秒,网络设备20的时钟202显示的时间T2为北京时间2020年2月2日中午12点15分15秒。网络设备10将T1转换成Unix时间戳A1=1580587932秒,从而获得T1对应的时间参数为:1580587932/3600=439052=0x6B30C;网络设备20将T2转换成Unix时间戳A2=1580588115秒,从而获得T2对应的时间参数为:1580588115/3600=439052=0x6B30C。这里的除法都是向下取整,即,余数无论多少都忽略不计,只取结果的整数部分。
S604,网络设备10的自动更新手工配置IPSec SA模块101计算SPI。
具体实现时,网络设备10的自动更新手工配置IPSec SA模块101计算IPSec隧道1加密方向的SPI值,具体为:SPIi 1=CRC32(0x01010101|0x01010201|0x6B30C|0x5)=CRC32(0x01010101010102016B30C5)=0x4187D9D6;计算IPSec隧道1解密方向的SPI值,具体为:SPIr 1=CRC32(0x01010201|0x01010101|0x6B30C|0x5)=CRC32(0x01010201010101016B30C5)=0x3FAA9FC3。
网络设备10的自动更新手工配置IPSec SA模块101计算IPSec隧道2加密方向的SPI值,具体为:SPIi 2=CRC32(0x01010101|0x01010201|0x6B30C|0xA)=CRC32(0x01010101010102016B30CA)=0xD138C447;计算IPSec隧道2解密方向的SPI值,具体为:SPIr 2=CRC32(0x01010201|0x01010101|0x6B30C|0xA)=CRC32(0x01010201010101016B30CA)=0xAF158252。
需要说明的是,上述4个SPI值在计算时候的输入参数是十六进制数,而且第一位的0不可省略。
S605,网络设备20的自动更新手工配置IPSec SA模块201计算SPI。
具体实现时,网络设备20的自动更新手工配置IPSec SA模块201计算IPSec隧道1解密方向的SPI值,具体为:SPIi 1=CRC32(0x01010101|0x01010201|0x6B30C|0x5)=CRC32(0x01010101010102016B30C5)=0x4187D9D6;计算IPSec隧道1加密方向的SPI值,具体为:SPIr 1=CRC32(0x01010201|0x01010101|0x6B30C|0x5)=CRC32(0x01010201010101016B30C5)=0x3FAA9FC3。
网络设备20的自动更新手工配置IPSec SA模块201计算IPSec隧道2解密方向的SPI值,具体为:SPIi 2=CRC32(0x01010101|0x01010201|0x6B30C|0xA)=CRC32(0x01010101010102016B30CA)=0xD138C447;计算IPSec隧道2加密方向的SPI值,具体为:SPIr 2=CRC32(0x01010201|0x01010101|0x6B30C|0xA)=CRC32(0x01010201010101016B30CA)=0xAF158252。
S606,网络设备10的自动更新手工配置IPSec SA模块101计算密钥。
具体实现时,网络设备10的自动更新手工配置IPSec SA模块101计算IPSec隧道1的加密密钥和加密方向的认证密钥,具体可以是:先计算输出结果1=PBKDF2(HMAC-SHA256,Changeme_123,0x01010101010102016B30C5,1000,64)=0x0ecc5db2f32fd9e1ee7194e15b71ff38861977eb4b0b096252dbb0aa68dd8160157cdcb6230b4e27f93b72caa6fb83316788fec50778b58d5fec8920c21f5196,再截取该输出结果1的前32字节为加密密钥1,后32字节为认证密钥1;网络设备10计算IPSec隧道1的解密密钥和解密方向的认证密钥,具体可以是:先计算输出结果2=PBKDF2(HMAC-SHA256,Changeme_123,0x01010201010101016B30C5,1000,64)=0xd0946479374e05ea69abbdbf6eb84fad0c949f47d0b353ca9143461e7a5c83079b796eea8d29c22711b455c496c2bf2744df6cd123e95e2c8c0a2fdf24a80496,再截取该输出结果2的前32字节为解密密钥1,后32字节为认证密钥2。
网络设备10的自动更新手工配置IPSec SA模块101计算IPSec隧道2的加密密钥和加密方向的认证密钥,具体可以是:先计算输出结果3=PBKDF2(HMAC-SHA256,Changeme_123,0x01010101010102016B30CA,1000,64)=0x863e7df1bc678aedb5c48340714a15a9bbdccb1a9a200f5ff17b63edcebf62c6d2b9575b9256687fb520f5b93efd34d0bb3042433e61aa22acc8998f26e8cf9c,再截取该输出结果3的前32字节为加密密钥2,后32字节为认证密钥3;网络设备10计算IPSec隧道2的解密密钥和解密方向的认证密钥,具体可以是:先计算输出结果4=PBKDF2(HMAC-SHA256,Changeme_123,0x01010201010101016B30CA,1000,64)=0xed9e4b58813bcd8ef7cca000e5fe45fb471e70d74e1d4e64453de1d6982b3a3034c3019b7bd719c1a4a2ab4d52bc189be82cba867d6d8832baf539c6817bbcff,再截取该输出结果4的前32字节为解密密钥2,后32字节为认证密钥4。
S607,网络设备20的自动更新手工配置IPSec SA模块201计算密钥。
具体实现时,网络设备20的自动更新手工配置IPSec SA模块201计算IPSec隧道1的解密密钥和解密方向的认证密钥,具体可以是:先计算输出结果1=PBKDF2(HMAC-SHA256,Changeme_123,0x01010101010102016B30C5,1000,64)=0x0ecc5db2f32fd9e1ee7194e15b71ff38861977eb4b0b096252dbb0aa68dd8160157cdcb6230b4e27f93b72caa6fb83316788fec50778b58d5fec8920c21f5196,再截取该输出结果1的前32字节为解密密钥1,后32字节为认证密钥1;网络设备20计算IPSec隧道1的加密密钥和加密方向的认证密钥,具体可以是:先计算输出结果2=PBKDF2(HMAC-SHA256,Changeme_123,0x01010201010101016B30C5,1000,64)=0xd0946479374e05ea69abbdbf6eb84fad0c949f47d0b353ca9143461e7a5c83079b796eea8d29c22711b455c496c2bf2744df6cd123e95e2c8c0a2fdf24a80496,再截取该输出结果2的前32字节为加密密钥1,后32字节为认证密钥2。
网络设备20的自动更新手工配置IPSec SA模块201计算IPSec隧道2的解密密钥和解密方向的认证密钥,具体可以是:先计算输出结果3=PBKDF2(HMAC-SHA256,Changeme_123,0x01010101010102016B30CA,1000,64)=0x863e7df1bc678aedb5c48340714a15a9bbdccb1a9a200f5ff17b63edcebf62c6d2b9575b9256687fb520f5b93efd34d0bb3042433e61aa22acc8998f26e8cf9c,再截取该输出结果3的前32字节为解密密钥2,后32字节为认证密钥3;网络设备10计算IPSec隧道2的加密密钥和加密方向的认证密钥,具体可以是:先计算输出结果4=PBKDF2(HMAC-SHA256,Changeme_123,0x01010201010101016B30CA,1000,64)=0xed9e4b58813bcd8ef7cca000e5fe45fb471e70d74e1d4e64453de1d6982b3a3034c3019b7bd719c1a4a2ab4d52bc189be82cba867d6d8832baf539c6817bbcff,再截取该输出结果4的前32字节为加密密钥2,后32字节为认证密钥4。
S608,网络设备10和网络设备20基于已经建立的IPSec隧道1或IPSec隧道2进行报文的安全传输。
S609,判断当前使用IPSec隧道对应的IPSec SA的时间是否达到3600秒(即,1小时)或3600秒的整数倍,如果是,则,该网络设备10返回执行S603、S604、S606和S610,网络设备20返回执行S603、S605、S607和S610,更新IPSec SA;否则,返回执行S609。
S610,网络设备10和网络设备20基于已经自动更新的IPSec隧道1或IPSec隧道2进行报文的安全传输。
如此,通过本申请实施例提供的方法,能够实现网络设备本地自动更新IPSec SA,使得网络设备之间进行简单、快速和有效的安全通信成为可能。
图7示出了本申请实施例中一种自动更新手工配置IPSec SA的方法400的流程示意图,该方法400例如可以包括:
S401,在第一IPSec老化周期的第一时刻,该第一网络设备可以根据本地保存的手工配置的IPSec配置信息以及与该第一时刻关联的第一时间参数,确定第一IPSec SA和第二IPSec SA,该第一IPSec SA用于对第一IPSec SA老化周期内第一网络设备到第二网络设备传输的报文进行安全保护,第二IPSec SA用于对该第一IPSec SA老化周期内第二网络设备到第一网络设备传输的报文进行安全保护。
S402,在从第一时刻经历一个IPSec SA老化周期对应的时长到达第二时刻时,第一网络设备还可以根据该IPSec配置信息以及与第二时刻关联的第二时间参数,确定第三IPSec SA和第四IPSec SA,该第三IPSec SA用于对该第二IPSec SA老化周期(即,第一IPSec SA老化周期的下一个IPSec SA老化周期)内第一网络设备到第二网络设备传输的报文进行安全保护,第四IPSec SA用于对第二IPSec SA老化周期内第二网络设备到第一网络设备传输的报文进行安全保护,其中,所述IPSec配置信息包括一个IPSec SA老化周期所对应的时长,第一时间参数和第二时间参数不同,均为第一网络设备确定IPSec SA的关键信息。
其中,该方法400中的第一网络设备具体可以是上述实施例中的网络设备10,该第一网络设备执行的操作具体可以参见方法100中网络设备10执行的操作,具体而言,S401、S402的相关描述分别可以参见方法100中的S101、S105。其中,第一IPSec SA老化周期可以是方法100中的IPSec SA老化周期N,第二IPSec SA老化周期可以是方法100中的IPSec SA老化周期(N+1),第一时间参数可以是方法100中的时间参数N,第二时间参数可以是方法100中的时间参数(N+1),IPSec配置信息为方法100中的IPSec配置信息1,第一IPSec SA~第四ISPec SA分别对应方法100中的IPSec SA 1~IPSec SA 4。
又或者,该方法400中的第一网络设备具体也可以是上述实施例中的网络设备20,该第一网络设备执行的操作具体可以参见方法100中网络设备20执行的操作,具体而言,S401、S402的相关描述分别可以参见方法100中的S102、S106。其中,第一IPSec SA老化周期可以是方法100中的IPSec SA老化周期N,第二IPSec SA老化周期可以是方法100中的IPSecSA老化周期(N+1),第一时间参数可以是方法100中的时间参数N,第二时间参数可以是方法100中的时间参数(N+1),IPSec配置信息为方法100中的IPSec配置信息2,第一IPSec SA~第四ISPec SA分别对应方法100中的IPSec SA 2、IPSec SA 1、IPSec SA 4和IPSec SA 3。
其中,第一时刻,可以是第一网络设备和第二网络设备配置完IPSec配置信息后启动的首个IPSec SA老化周期的开始时刻,也可以是任意一个其他的IPSec SA老化周期的开始时刻。
在本申请实施例中,时间参数,是指与IPSec SA老化周期唯一对应的数值,用于在其唯一对应的IPSec SA老化周期内确定相应的IPSec SA。每个IPSec SA老化周期,IPSec隧道两端网络设备上的时间参数一致,但是,不同IPSec SA老化周期对应的时间参数一定是不同的。
在一种实现方式中,该第一网络设备可以包括计数器,上述第一时间参数为所述计数器在第一时刻的值,每个经过一个所述IPSec SA老化周期该计数器的值加一。例如:假设一个IPSec SA老化周期的时长为10小时,第一时刻,从IPSec SA老化周期(N-1)进入IPSec SA老化周期N,计数器的值从(N-1)跳转到N,此时,第一网络设备获取时间参数N;从第一时刻经历10小时到达第二时刻,从IPSec SA老化周期N进入IPSec SA老化周期(N+1),计数器的值从N跳转到(N+1),此时,第一网络设备获取时间参数(N+1)。需要说明的是,通常要求IPSec隧道两端的网络设备内的计数器同时启动,这样,可以确保在同一个IPSec SA老化周期内的任意时刻,第一网络设备读取的时间参数和第二网络设备读取的时间参数均相同。如果无法严格做到IPSec隧道两端的网络设备内的计数器同时启动,也要确保两个计数器启动的时间差不能超过一个IPSec SA老化周期的时长,因为一旦两个计数器启动的时间差能超过了一个IPSec SA老化周期的时长,在同一个IPSec SA老化周期内第一网络设备和第二网络设备就不能从计数器读取出相同的时间参数。
在另一种实现方式中,上述第一时间参数为第一时刻对应的Unix时间戳除以一个IPSec SA老化周期对应的时长所得的商的整数部分。第一网络设备获取第一时刻对应的时间参数具体可以包括:在第一时刻,第一网络设备可以读取其上时钟的值,将该时钟的值转换为Unix时间戳;第一网络设备还可以从本地保存的IPSec配置信息中获取IPSec SA老化周期的时长;接着,第一网络设备将Unix时间戳除以一个IPSec SA老化周期的时长,将所得的商的整数部分作为时间参数。需要说明的是,在同一个IPSec SA老化周期内该示例计算的时间参数保持不变,每个经过一个IPSec SA老化周期该示例计算的时间参数增加一。需要说明的是,Unix时间戳的0按照ISO 8601规范为:1970-01-01T00:00:00Z,即,从1970年1月1日(世界标准时间UTC/格林威治时间GMT的午夜)开始到当前时刻所经过的秒数,不考虑闰秒。该实现方式中将当前的第一时刻转换为Unix时间戳,考虑到Unix时间戳不受时区影响的特点,有效的避免了不同时区对网络设备10获取时间参数造成的影响。
需要说明的是,IPSec配置信息除了包括一个IPSec SA老化周期对应的时长外,还可以包括:第一网络设备和第二网络设备之间的IPSec隧道相对第一网络设备的源IP地址、IPSec隧道相对第一网络设备的目的IP地址和预共享密钥材料。其中,预共享密钥材料用于计算IPSec SA中的IPSec密钥。
其中,IPSec SA可以包括SPI、IPSec隧道的目的IP地址和使用的安全协议(如:报文验证头AH协议或封装安全载荷ESP协议);IPSec SA还可以包括:封装模式、认证算法、认证密钥、加密算法、加解密密钥和认证密钥、IPSec SA老化周期等参数。
在一些实现方式中,第一IPSec SA中包括第一SPI,第二IPSec SA中包括第二SPI。第一网络设备根据IPSec配置信息和第一时间参数,确定第一IPSec SA和第二IPSec SA,具体可以包括:第一网络设备根据第一时间参数、源IP地址和目的IP地址,分别获得第一IPSeSA的第一SPI和第二IPSec SA的第二SPI,其中,第一SPI和第二SPI不同。例如:假设利用32位循环冗余校验CRC函数对计算SPI,具体可以表示为:第一SPI=CRC32(源IP地址|目的IP地址|第一时间参数),第二SPI=CRC32(目的IP地址|源IP地址|第一时间参数),其中,“|”为字符串连接符。又例如:也可以使用CRC32函数的其他变种函数(例如:CRC32/MEPG2、CRC32C、CRC32D等),对源IP地址、目的IP地址和第一时间参数连接后字符串进行处理,得到第一SPI和第二SPI。再例如,还可以使用其他哈希函数(例如:MD5、SHA1和SHA256等),对源IP地址、目的IP地址和第一时间参数连接后字符串进行处理,得到处理结果;对超过4字节的处理结果进行压缩或截断操作,获得长度为4字节的第一SPI和第二SPI。
在再一些实现方式中,第一IPSec SA中包括第一IPSec密钥集,第二IPSec SA中包括第二IPSec密钥集,那么,第一网络设备根据IPSec配置信息和第一时间参数,确定所述第一IPSec SA和所述第二IPSec SA,具体可以包括:第一网络设备根据第一时间参数、源IP地址、目的IP地址和预共享密钥材料,获得第一IPSec SA的第一IPSec密钥集和第二IPSec SA的第二IPSec密钥集。其中,第一IPSec密钥集包括第一加密密钥和/或第一认证密钥;第二IPSec密钥集包括第一解密密钥和/或第二认证密钥;其中,第一加密密钥和第一解密密钥匹配,第一认证密钥和第二认证密钥匹配。
作为一个示例,第一网络设备可以将源IP地址、目的IP地址和第一时间参数依次进行连接;将连接后的字符串和预共享密钥材料均输入基于密码的密钥衍生函数(如:PBKDF2)中,得到第一输出结果;基于该第一输出结果确定第一密钥集。同理,网络设备也可以将目的IP地址、源IP地址和第一时间参数依次进行连接;将连接后的字符串和预共享密钥材料均输入基于密码的密钥衍生函数中,得到第二输出结果;基于该第二输出结果确定第二密钥集。
例如:第一输出结果=PBKDF2(HMAC-SHA256,预共享密钥材料,源IP地址|目的IP地址|第一时间参数,c,dkLen),第二输出结果=PBKDF2(HMAC-SHA256,预共享密钥材料,目的IP地址|源IP地址|第一时间参数,c,dkLen),其中,PBKDF2函数的第一个参数是哈希算法,这里以HMAC-SHA256为例;第二个参数是预共享密钥材料,用于保障生成的密钥的随机性;第三个参数是源IP地址、目的IP地址和时间参数N按序连接后的字符串,也称为该函数的盐值,用于确保不IPSec的隧道或者相同IPSec隧道在不同IPSec SA老化周期内得到的输出结果是不同的;第四个参数是迭代次数c,它是一个自定义值,IPsec隧道两端网络设备上计算时保持一致即可,c取值越大对网络设备性能要求越高,但计算出的密钥也越安全,如:取c=1000;最后一个参数用于指定输出结果的长度dkLen,如:取dkLen=32字节或dkLen=64字节。需要说明的是,第一输出结果和第二输出结果中的哈希算法、c以及dkLen均取相同的值。
其中,可以指定第一输出结果的长度、第二输出结果的长度与第一IPSec SA中加密算法相匹配,那么,第一输出结果可以直接作为第一加密密钥,加密方向的第一认证密钥可以和该第一加密密钥相同,第二输出结果可以直接作为第一解密密钥,解密方向的第二认证密钥可以和该第一解密密钥相同。例如:第一IPSec SA确定的加密算法为AES-256算法,其对应的第一加密密钥和第一解密密钥的长度均是32字节,那么,可以在PBKDF2函数中定义dkLen=32字节,从而获得32字节的第一输出结果和第二输出结果,并将该第一输出结果作为第一加密密钥,将与该第一加密密钥相同的值作为加密方向的第一认证密钥,同理,将该第二输出结果作为第一解密密钥,将与该第一解密密钥相同的值作为解密方向的第二认证密钥。
或者,为了提高安全性,可以将第一输出结果的长度、第二输出结果的长度均指定为大于与第一IPSec SA中加密算法匹配的第一加密密钥的长度,且大于与认证算法匹配的第一认证密钥的长度,这样,第一网络设备可以从得到的第一输出结果中截取出加密算法所要求长度的第一加密密钥,并从得到的该第一输出结果中截取出认证算法所要求长度的第一认证密钥,如此,使用与第一加密密钥不同的第一认证密钥,实现对待传输报文的更加安全的保护;同理,第一网络设备可以从得到的第二输出结果中截取出加密算法所要求长度的第一解密密钥,并从得到的该第二输出结果中截取出认证算法所要求长度的第二认证密钥,如此,使用与第一解密密钥不同的第二认证密钥,实现对待传输报文的更加安全的保护。例如:可以将第一输出结果的长度、第二输出结果的长度均指定为:与第一IPSec SA中加密算法匹配的加密密钥的长度和与认证算法匹配的认证密钥的长度之和。如:第一IPSecSA 确定的加密算法为AES-256算法,其对应的第一加密密钥和第一解密密钥的长度均是32字节,认证算法采用SHA256,对应的第一认证密钥和第二认证密钥的长度要求不短于该SHA256的输出长度32字节,假设取第一认证密钥和第二认证密钥的长度均为32字节,那么,可以在PBKDF2函数中定义dkLen=64字节,从而获得64字节的第一输出结果和第二输出结果,并将该第一输出结果从左起的32字节截取出来作为第一加密密钥,将该第一输出结果从右起的32字节截取出来作为加密方向的第一认证密钥,同理,将该第二输出结果从左起的32字节截取出来作为第一解密密钥,将该第二输出结果从右起的32字节截取出来作为解密方向的第二认证密钥。
需要说明的是,上述实现方式中,计算密钥均是以PBKDF2函数为例进行说明的,本申请实施例中也可以使用其他类似的密钥衍生函数实现,只要该密钥衍生函数能够自定义哈希函数、允许输入参数是足够长的字符串、可以指定输出结果的长度且输出结果足够安全,即可作为本申请实施例中用于计算密钥的函数。
需要说明的是,第一IPSec SA除了包括第一SPI、第一加密密钥和第一认证密钥,还可以包括其他参数,例如:封装模式、认证算法、加密算法、IPSec SA老化周期等,第一网络设备可以直接获得这些其他参数。例如:该第一IPSec SA中的其他参数可以是预先在IPSec配置信息中固定配置好的,第一网络设备通过读取IPSec配置信息即可确定该第一IPSec SA中的其他参数。同理,第二IPSec SA除了包括第二SPI、第一解密密钥和第二认证密钥,还可以包括其他参数,其包括的其他参数与第一IPSec SA包括的其他参数相同,第一网络设备也可以直接获得这些其他参数。需要说明的是,第一网络设备获得IPSec SA中的其他参数,对于自动更新手工配置IPSec SA的过程不产生影响,所以,在本申请实施例中不作详细说明。
在又一些实现方式中,考虑到第一网络设备和第二网络设备之间根据需求可能建立多条IPSec隧道,那么,多条IPSec隧道对应的IPSec SA需要不同,至少多条IPSec隧道对应的SPI和密钥要不同。基于此,以第一网络设备和第二网络设备之间建立2条IPSec隧道为例,IPSec配置信息中还可以包括第一标识和第二标识,其中,第一标识用于指示第一IPSec隧道,第二标识用于指示第二IPSec隧道,第一IPSec隧道、第二IPSec隧道为第一网络设备和第二网络设备之间两条不同的IPSec隧道。那么,上述第一网络设备根据本地保存的手工配置的IPSec配置信息以及与第一时刻关联的第一时间参数,确定第一IPSec SA和第二IPSec SA,具体可以包括:第一网络设备根据第一标识和第一时间参数,确定第一标识对应的第一IPSec SA和第二IPSec SA,其中,第一IPSec SA和第二IPSec SA对应第一IPSec隧道。同时,该方法还可以包括:在所述第一时刻,第一网络设备根据第二标识和第一时间参数,确定第二标识对应的第五IPSec SA和第六IPSec SA,其中,所述第五IPSec SA和所述第六IPSec SA对应所述第二IPSec隧道。
其中,该第一标识和第二标识具体可以是规则标识Rule ID,用于标识两个网络设备之间不同的IPSec隧道,与隧道标识Tunnel ID不同的是,Tunnel ID对应的是网络设备实际的物理接口,不能用于区分相同的2个物理接口之间的2条IPSec隧道,而网络设备上同一个物理接口则可以对应2个Rule ID,能够用于区分相同的物理接口之间的2条IPSec隧道。
这样,保证即使是相同的两个网络设备之间的多条IPSec隧道,网络设备也能够在每个IPSec SA老化周期自动更新出唯一标识各条IPSec隧道的SPI和密钥,使得网络设备之间的多条IPSec隧道均能够有效且安全的传输报文,互不影响,从而提高报文的传输效率。
需要说明的是,该实现方式中的相关说明以及达到的效果,具体可以参见方法300中的相关描述。
在再一些实现方式中,考虑到第一网络设备和第二网络设备的时间不是严格同步,或者,第一网络设备和第二网络设备上计数器不是同时启动,导致第一网络设备和第二网络设备上自动更新IPSec SA的时机无法做到精确的同步。为了避免第一IPSec隧道两端网络设备更新IPSec SA不同步导致2个网络设备分别处于两个不同的IPSec SA老化周期时,无法对报文进行安全保护,甚至无法有效的传输报文的问题,本申请实施例中,还可以在生成当前时刻所属的IPSec SA老化周期对应的一对IPSec SA的同时,生成下一个IPSecSA老化周期对应的一对IPSec SA,网络设备上分别保存两对IPSec SA,以便两端网络设备自动更新IPSec SA的时机无法做到精确的同步时,仍然基于第一IPSec隧道对报文进行安全有效的传输。
作为一个示例,本申请实施例还可以包括:在所述第一时刻,所述第一网络设备根据所述IPSec配置信息和所述第二时间参数,确定所述第三IPSec SA和所述第四IPSec SA。那么,当第二网络设备已经进入第二IPSec SA老化周期后利用第四IPSec SA对第一报文进行安全保护,但第一网络设备仍然处于第一IPSec SA老化周期时,该方法还包括:在第一IPSec SA老化周期内,第一网络设备接收第一报文,该第一报文为第二网络设备进入所述第二IPSec SA老化周期后进行安全保护的报文;那么,第一网络设备利用所述第四IPSecSA对所述第一报文进行安全验证。其中,所述第一网络设备利用所述第四IPSec SA对所述第一报文进行安全验证,具体可以包括:第一网络设备从第一报文中获得第四SPI;接着,第一网络设备基于所述第四SPI确定所述第四IPSec SA,所述第四IPSec SA中包括所述第四SPI;第一网络设备基于所述第四IPSec SA对所述第一报文进行安全验证。
这样,第一网络设备不仅可以本地自动更新手工配置的IPSec SA,而且,每个网络设备上同时保证生成并保存两对IPSec SA,即使两端网络设备更新IPSec SA不是严格同步,也能够对报文进行有效、安全的传输,确保了IPSec SA更新过程的平滑,避免出现由于更新IPSec SA不同步导致报文无法有效传输的问题。
需要说明的是,该实现方式中的相关说明以及达到的效果,具体可以参见方法200中的相关描述。
需要说明的是,对于使用ESP协议的场景,可以通过SPI映射或用户数据报协议(英文:User Datagram Protocol,简称:UDP)封装实现网络地址转换(英文:Network AddressTranslation,简称:NAT)穿越。其中,SPI映射依赖于NAT穿越设备的应用层网关(英文:Application Layer Gateway,简称:ALG)处理,而UDP封装仅依赖于IPSec隧道的两端网络设备,因此,UDP封装的方案能够更广泛的被用于IPSec场景下的NAT穿越。
作为一个示例,在使能了ESP NAT穿越的情况下,由于没有类似IKE方式的NAT穿越动态监测机制,所以,网络设备将在ESP报文将直接封装UDP头,该UDP头中的源端口和目的端口的端口号都是4500,私网侧的源端口会被NAT穿越设备转换。需要说明的是,在NAT穿越场景下,由于私网IP地址相比公网IP地址是相对固定的,所以,必须依赖于额外配置的对端网络设备的私网IP进行IPSec SA中参数的确定,例如:计算SPI以及密钥集时,参与计算的IPSec隧道的源IP地址和目的IP地址均应该使用私网IP地址,其他与确定IPSec SA无关的过程保持原来所使用的IP地址不变。需要说明的是,按照IPSec相关协议的规定,即使中间设备没有NAT穿越的功能,在传输报文中额外增加的UDP头也不会影响该报文在IPSec隧道中的安全传输以及接收端网络设备对其的正常处理。
可见,通过本申请实施例提供的方法,无需网络设备之间再交互多个消息,网络设备基于一次手工配置的IPSec配置信息,本地即可确定IPSec SA并周期性的自动更新IPSecSA,以提高两个网络设备之间的IPSec隧道的安全性,克服了目前手工配置方式以及IKE协商方式中存在的问题,使得网络设备之间简单、快速的建立安全的IPSec隧道成为可能。
此外,本申请实施例还提供了一种网络设备800,参见图8所示。该网络设备800包括收发单元801和处理单元802。其中,收发单元801用于执行上述方法100中网络设备10或网络设备20的收发操作;处理单元802用于执行上述方法100中网络设备10或网络设备20除了收发操作以外的其他操作。
例如:当所述网络设备800执行所述方法100中网络设备10的操作时,所述收发单元801可以用于在IPSec SA老化周期N内将利用IPSec SA 1进行安全保护的报文1发送到网络设备20;所述收发单元801可以用于在IPSec SA老化周期N内接收网络设备20利用IPSecSA 2进行安全保护的报文3;所述处理单元802可以用于在第一时刻,根据IPSec配置信息1以及与所述第一时刻关联的时间参数N,确定IPSec SA 1和IPSec SA 2;所述处理单元802还可以用于在IPSec SA老化周期N内,利用IPSec SA 2对网络设备20到网络设备10传输的报文2进行安全验证。
又例如:当所述网络设备800执行所述方法100中网络设备20的操作时,所述收发单元801可以用于在IPSec SA老化周期N内将利用IPSec SA 2进行安全保护的报文3发送到网络设备10;所述收发单元801可以用于在IPSec SA老化周期N内接收网络设备10利用IPSec SA 1进行安全保护的报文1;所述处理单元802可以用于在第一时刻,根据IPSec配置信息2以及与所述第一时刻关联的时间参数N,确定IPSec SA 2和IPSec SA 1;所述处理单元802还可以用于在IPSec SA老化周期内,利用IPSec SA 1对网络设备10到网络设备10传输的报文4进行安全验证。
此外,本申请实施例还提供了一种网络设备900,参见图9所示。该网络设备900包括通信接口901和处理器902。其中,通信接口901用于执行前述方法100、方法200或方法300中的收发操作;处理器902,用于执行前述方法100、方法200或方法300中除所述收发操作以外的其他操作。其中,通信接口901包括第一通信接口901a和第二通信接口901b。第一通信接口901a用于执行前述方法100、方法200或方法300所示实施例中的网络设备10执行的接收操作,第二通信接口901b用于执行前述方法100、方法200或方法300所示实施例中的网络设备10执行的发送操作;或者,第一通信接口901a用于执行前述方法100、方法200或方法300所示实施例中的网络设备20执行的接收操作,第二通信接口901b用于执行前述方法100、方法200或方法300所示实施例中的网络设备20执行的发送操作。例如:第一通信接口901a用于执行方法100中的S104,第二通信接口901b用于执行方法100中的S103;处理器902用于执行方法100中的S101。
此外,本申请实施例还提供了一种网络设备1000,参见图10所示。该网络设备1000包括存储器1001和处理器1002。其中,该存储器1001包括计算机可读指令;与该存储器1001通信的处理器1002用于执行所述计算机可读指令,使得所述网络设备1000用于执行以上方法100、方法200或方法300中网络设备10或网络设备20实施的方法。
可以理解的是,上述实施例中,处理器可以是中央处理器(英文:centralprocessing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器还可以是专用集成电路(英文:application-specific integratedcircuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logicdevice,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。处理器可以是指一个处理器,也可以包括多个处理器。存储器可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器还可以包括上述种类的存储器的组合。存储器可以是指一个存储器,也可以包括多个存储器。在一个具体实施方式中,存储器中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块,处理模块和接收模块。处理器执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器根据所述软件模块的指示而执行的操作。处理器执行存储器中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行网络设备可以执行的全部操作。
可以理解的是,上述实施例中,网络设备900的通信接口901,具体可以被用作网络设备800中的收发单元801,实现网络设备和其他设备之间的数据通信。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上方法100、方法200、方法300或方法400所示实施例中的自动更新手工配置IPSec SA的方法。
此外,本申请实施例还提供了计算机程序产品,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,使得计算机执行前述方法100、方法200、方法300或方法400所示实施例中的自动更新手工配置IPSec SA的方法。
本申请实施例中提到的“第一IPSec SA”、“第一时间参数”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (15)

1.一种自动更新手工配置互联网协议安全安全联盟IPSec SA的方法,其特征在于,包括:
在第一时刻,第一网络设备根据本地保存的手工配置的IPSec配置信息以及与所述第一时刻关联的第一时间参数,确定第一IPSec SA和第二IPSec SA,其中,所述第一IPSec SA用于对第一IPSec SA老化周期内所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第二IPSec SA用于对所述第一IPSec老化周期内所述第二网络设备到所述第一网络设备传输的报文进行安全保护;
在第二时刻,所述第一网络设备根据所述IPSec配置信息以及与所述第二时刻关联的第二时间参数,确定第三IPSec SA和第四IPSec SA,其中,所述第三IPSec SA用于对第二IPSec SA老化周期内所述第一网络设备到所述第二网络设备传输的报文进行安全保护,所述第四IPSec SA用于对所述第二IPSec SA老化周期内所述第二网络设备到所述第一网络设备传输的报文进行安全保护,所述第一时刻到所述第二时刻经过的时长等于一个IPSecSA老化周期所对应的时长,所述IPSec配置信息包括所述一个IPSec SA老化周期所对应的时长,所述第一时间参数和所述第二时间参数不同。
2.根据权利要求1所述的方法,其特征在于,
所述第一网络设备包括计数器,所述第一时间参数为所述计数器在所述第一时刻的值,每个经过一个所述IPSec SA老化周期所述计数器的值加一;
或者,
所述第一时间参数为所述第一时刻对应的Unix时间戳除以所述一个IPSec SA老化周期对应的时长所得的商的整数部分。
3.根据权利要求1或2所述的方法,其特征在于,所述IPSec配置信息还包括:所述第一网络设备和所述第二网络设备之间的IPSec隧道相对所述第一网络设备的源IP地址、所述IPSec隧道相对所述第一网络设备的目的IP地址和预共享密钥材料,所述预共享密钥材料用于计算IPSec SA中的IPSec密钥。
4.根据权利要求3所述的方法,其特征在于,所述第一网络设备根据所述IPSec配置信息和所述第一时间参数,确定所述第一IPSec SA和所述第二IPSec SA,包括:
所述第一网络设备根据所述第一时间参数、所述源IP地址和所述目的IP地址,分别获得所述第一IPSe SA的第一安全参数索引SPI和所述第二IPSec SA的第二SPI,所述第一SPI和所述第二SPI不同。
5.根据权利要求3或4所述的方法,其特征在于,所述第一网络设备根据所述IPSec配置信息和所述第一时间参数,确定所述第一IPSec SA和所述第二IPSec SA,包括:
所述第一网络设备根据所述第一时间参数、所述源IP地址、所述目的IP地址和所述预共享密钥材料,获得所述第一IPSec SA的第一IPSec密钥集和所述第二IPSec SA的第二IPSec密钥集。
6.根据权利要求5所述的方法,其特征在于,
所述第一IPSec密钥集包括第一加密密钥和/或第一认证密钥;
所述第二IPSec密钥集包括第一解密密钥和/或第二认证密钥;
其中,所述第一加密密钥和所述第一解密密钥匹配,所述第一认证密钥和所述第二认证密钥匹配。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述IPSec配置信息还包括:第一标识和第二标识,所述第一标识用于指示第一IPSec隧道,所述第二标识用于指示第二IPSec隧道,所述第一IPSec隧道、所述第二IPSec隧道为所述第一网络设备和所述第二网络设备之间两条不同的IPSec隧道。
8.根据权利要求7所述的方法,其特征在于,所述第一网络设备根据本地保存的手工配置的IPSec配置信息以及与所述第一时刻关联的第一时间参数,确定第一IPSec SA和第二IPSec SA,包括:
所述第一网络设备根据所述第一标识和所述第一时间参数,确定所述第一标识对应的所述第一IPSec SA和所述第二IPSec SA,其中,所述第一IPSec SA和所述第二IPSec SA对应所述第一IPSec隧道。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述第一时刻,所述第一网络设备根据所述第二标识和所述第一时间参数,确定所述第二标识对应的第五IPSec SA和第六IPSec SA,其中,所述第五IPSec SA和所述第六IPSec SA对应所述第二IPSec隧道。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
在所述第一时刻,所述第一网络设备根据所述IPSec配置信息和所述第二时间参数,确定所述第三IPSec SA和所述第四IPSec SA。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述第一IPSec SA老化周期内,所述第一网络设备接收第一报文,所述第一报文为所述第二网络设备进入所述第二IPSec SA老化周期后进行安全保护的报文;
所述第一网络设备利用所述第四IPSec SA对所述第一报文进行安全验证。
12.根据权利要求11所述的方法,其特征在于,所述第一网络设备利用所述第四IPSecSA对所述第一报文进行安全验证,包括:
所述第一网络设备从所述第一报文中获得第四SPI;
所述第一网络设备基于所述第四SPI确定所述第四IPSec SA,所述第四IPSec SA中包括所述第四SPI;
所述第一网络设备基于所述第四IPSec SA对所述第一报文进行安全验证。
13.一种网络设备,其特征在于,所述网络设备包括:
存储器,该存储器包括计算机可读指令;
与该存储器通信的处理器,所述处理器用于执行所述计算机可读指令,使得所述网络设备用于执行权利要求1-12任一项所述的方法。
14.一种计算机可读存储介质,包括计算机可读指令,其特征在于,当所述计算机可读指令在计算机上运行时,使得所述计算机实施权利要求1-12任一项所述的方法。
15.一种计算机程序产品,其特征在于,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,用于实施权利要求1-12任一项所述的方法。
CN202010208043.4A 2020-03-23 2020-03-23 一种自动更新手工配置IPSec SA的方法和设备 Active CN113438094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010208043.4A CN113438094B (zh) 2020-03-23 2020-03-23 一种自动更新手工配置IPSec SA的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010208043.4A CN113438094B (zh) 2020-03-23 2020-03-23 一种自动更新手工配置IPSec SA的方法和设备

Publications (2)

Publication Number Publication Date
CN113438094A true CN113438094A (zh) 2021-09-24
CN113438094B CN113438094B (zh) 2022-12-13

Family

ID=77752577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010208043.4A Active CN113438094B (zh) 2020-03-23 2020-03-23 一种自动更新手工配置IPSec SA的方法和设备

Country Status (1)

Country Link
CN (1) CN113438094B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553602A (zh) * 2022-04-25 2022-05-27 深圳星云智联科技有限公司 一种软硬生命老化控制方法及装置
CN117271201A (zh) * 2023-11-22 2023-12-22 北京紫光芯能科技有限公司 循环冗余校验装置及循环冗余校验方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312713A (zh) * 2013-06-13 2013-09-18 北京星网锐捷网络技术有限公司 安全联盟协商方法、装置及网络设备
CN107615825A (zh) * 2015-05-28 2018-01-19 瑞典爱立信有限公司 在不可信wlan接入上的多个pdn连接
CN107682284A (zh) * 2017-08-02 2018-02-09 华为技术有限公司 发送报文的方法和网络设备
CN109274494A (zh) * 2018-11-27 2019-01-25 新华三技术有限公司 一种密钥维护的方法及装置
CN110061965A (zh) * 2019-03-13 2019-07-26 北京华为数字技术有限公司 更新安全联盟的方法、装置、设备及可读存储介质
WO2019219209A1 (en) * 2018-05-18 2019-11-21 Telefonaktiebolaget Lm Ericsson (Publ) Establishing new ipsec sas

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312713A (zh) * 2013-06-13 2013-09-18 北京星网锐捷网络技术有限公司 安全联盟协商方法、装置及网络设备
CN107615825A (zh) * 2015-05-28 2018-01-19 瑞典爱立信有限公司 在不可信wlan接入上的多个pdn连接
CN107682284A (zh) * 2017-08-02 2018-02-09 华为技术有限公司 发送报文的方法和网络设备
WO2019219209A1 (en) * 2018-05-18 2019-11-21 Telefonaktiebolaget Lm Ericsson (Publ) Establishing new ipsec sas
CN109274494A (zh) * 2018-11-27 2019-01-25 新华三技术有限公司 一种密钥维护的方法及装置
CN110061965A (zh) * 2019-03-13 2019-07-26 北京华为数字技术有限公司 更新安全联盟的方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
唐晓梦等: "IPSec VPN原理与配置", 《中国有线电视》, no. 08, 15 August 2016 (2016-08-15) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553602A (zh) * 2022-04-25 2022-05-27 深圳星云智联科技有限公司 一种软硬生命老化控制方法及装置
CN114553602B (zh) * 2022-04-25 2022-07-29 深圳星云智联科技有限公司 一种软硬生命老化控制方法及装置
CN117271201A (zh) * 2023-11-22 2023-12-22 北京紫光芯能科技有限公司 循环冗余校验装置及循环冗余校验方法
CN117271201B (zh) * 2023-11-22 2024-03-19 北京紫光芯能科技有限公司 循环冗余校验装置及循环冗余校验方法

Also Published As

Publication number Publication date
CN113438094B (zh) 2022-12-13

Similar Documents

Publication Publication Date Title
Raza et al. Securing communication in 6LoWPAN with compressed IPsec
US10097525B2 (en) System, apparatus and method for generating dynamic IPV6 addresses for secure authentication
Raza et al. Secure communication for the Internet of Things—a comparison of link‐layer security and IPsec for 6LoWPAN
CN107046495B (zh) 用于构建虚拟专用网络的方法、装置和系统
US9225685B2 (en) Forcing all mobile network traffic over a secure tunnel connection
US11374751B2 (en) Password based key derivation function for NTP
WO2019129201A1 (en) Session management for communications between a device and a dtls server
CN113438094B (zh) 一种自动更新手工配置IPSec SA的方法和设备
Jucker Securing the constrained application protocol
Raza et al. Tinyike: Lightweight ikev2 for internet of things
CN117254976B (zh) 基于VPP的国标IPsec VPN实现方法、装置、系统及电子设备
Redžović et al. Performance evaluation of software routers with vpn features
Raza et al. Securing internet of things with lightweight ipsec
Shaofeng et al. Design and Implementation of an Enhanced VPN Isolation Gateway
CN112787803B (zh) 一种安全通信的方法和设备
JP2013077957A (ja) 中継装置、暗号化通信システム、暗号化通信プログラム、および暗号化通信方法
Migault et al. Diet-ESP: IP layer security for IoT
Wouters et al. Cryptographic Algorithm Implementation Requirements and Usage Guidance for Encapsulating Security Payload (ESP) and Authentication Header (AH)
US20220255911A1 (en) Method for Secure Communication and Device
Bortnik et al. Secured by hardware client-server communication based on NB-IoT technology
Kiningham et al. CESEL: Securing a Mote for 20 Years.
Tanveer et al. Performance analysis of AES-finalists along with SHS in IPSEC VPN over 1Gbps link
Mouri Iot protocols and security
Parveen Dtls with post quantum security for origin authentication and integrity
EP3131269B1 (en) Method and device for conducting ah authentication on ipsec packet which has gone through nat traversal

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