[go: up one dir, main page]

CN112787803A - 一种安全通信的方法和设备 - Google Patents

一种安全通信的方法和设备 Download PDF

Info

Publication number
CN112787803A
CN112787803A CN201911253333.4A CN201911253333A CN112787803A CN 112787803 A CN112787803 A CN 112787803A CN 201911253333 A CN201911253333 A CN 201911253333A CN 112787803 A CN112787803 A CN 112787803A
Authority
CN
China
Prior art keywords
ipsec
key
indication information
aging period
public
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
CN201911253333.4A
Other languages
English (en)
Other versions
CN112787803B (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 EP20881986.2A priority Critical patent/EP4040752B1/en
Priority to PCT/CN2020/116962 priority patent/WO2021082813A1/zh
Publication of CN112787803A publication Critical patent/CN112787803A/zh
Priority to US17/732,165 priority patent/US20220255911A1/en
Application granted granted Critical
Publication of CN112787803B publication Critical patent/CN112787803B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例公开了一种安全通信的方法和设备,本端的设备向对端设备发送指示信息,指示对端的设备建立密钥协商模板。两端设备建立相同的密钥协商模板后,基于该密钥协商模板,分别生成各IPSec老化周期内对应的IPSec密钥。通过本申请提供的方法,每次需要协商IPSec密钥时,通过交互当前IPSec老化周期的最新的公钥和指示信息,以所述密钥协商模板为依据,即可获得IPSec密钥。即使在IoT等大规模组网场景中,也能够快速、高效获得各IPSec老化周期对应的IPSec密钥,从而实现设备之间安全的通信。

Description

一种安全通信的方法和设备
本申请要求于2019年11月01日递交中国专利局、申请号为CN201911060960.6,发明名称为“一种英特网协议安全安全联盟IPSEC SA协商方法和设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别是涉及一种安全通信的方法和设备。
背景技术
互联网协议安全(英文:Internet Protocol Secrutity,IPSec)是互联网工程任务组(英文:Internet Engineering Task Force,简称:IETF)制定的一组框架协议,通过使用加密的安全传输通道,保障互联网上通信的安全性。设备之间基于IPSec技术进行数据报文的安全传输时,当前常用的方式是基于互联网密钥交换(英文:Internet Key Exchange,简称:IKE)协议进行IPSec的密钥协商,IKE通过交互多个会话消息完成IPSec安全配置参数的交互,进而完成IPSec安全联盟(英文:Security Association,SA)协商。基于协商确定的IPSec密钥对报文进行安全保护。
在万物互联的形势下,例如在物联网(英文:Internet of Thing,简称:IoT)等网络场景中,设备的数量不断增多,如果仍然通过IKE协议来协商确定IPSec密钥,每个设备和其他多个设备就需要交互海量的报文,不仅耗时长、效率低,而且浪费大量的网络资源。
发明内容
基于此,本申请实施例提供了一种安全通信的方法和设备,设备之间在需要采用IPSec进行安全通信时,能够快速、高效的获得设备之间的IPSec密钥,从而实现网络中的安全通信。本申请实施例中所述的IPSec密钥可以是包括IPSec加密密钥和/或IPSec认证密钥。
第一方面,提供了一种安全通信的方法,应用在包括第一设备和第二设备的场景中,以第一设备为执行主体,该安全通信的方法例如可以包括:在第一设备的第二IPSec老化周期内,第一设备接收第二设备发送的第一指示信息。所述第一指示信息用于标识在所述第二设备的第一IPSec老化周期内生成的公私钥对所对应的状态信息。第一设备根据第一指示信息和第二指示信息,建立密钥协商模板。其中,该第二指示信息用于标识所述第一设备在所述第二IPSec老化周期内生成的公私钥对的状态信息。第一设备根据密钥协商模板,生成第一IPSec密钥,该第一IPSec密钥用于保护第一设备和第二设备在第一时间段内传输的数据。
设备预先配置了IPSec老化周期,经过一个IPSec老化周期,该设备上的公私钥更新一次。可选地,每个IPSec老化周期内生成的公私钥对所对应的状态信息在每次IPSec发生老化更新时按照约定的规则进行迭代。所述约定的规则例如可以是,对应于每次IPSec老化更新,每个公私钥对所对应的状态信息交替出现。上述指示信息(或者说每个IPSec老化周期内生成的公私钥对对应的状态信息)例如可以是滴答值,通过不同滴答值的交替出现指示设备上IPSec老化周期的更迭。上述指示信息例如还可以是字符串,通过不同字符串交替出现指示设备上IPSec老化周期的更迭。
通过本申请实施例提供的方法,预先在两个设备上建立密钥协商模板,在每次需要协商IPSec密钥时,本端设备根据接收到的对端设备发送的其当前IPSec老化周期内生成的公钥以及所述公钥所对应的状态信息,以及本端设备当前IPSec老化周期内生成的私钥以及私钥对应的状态信息,按照所述密钥协商模板的协商规则,即可生成IPSec密钥。由于本申请的技术方案不再基于IKE协议进行IPSec密钥的协商,相对于在两个设备之间通过IKE协议协商IPSec密钥时需要交互多个报文,本申请的技术方案有效减少了两个设备之间交互报文的数量,提高了IPSec密钥的协商效率,减少了对系统资源的占用。在IoT等大规模组网场景中,对于海量设备互通的情况下,大大降低了基于IKE协议协商所交互的海量报文,减少了对系统资源的占用。
可选地,第一指示信息与第二指示信息相同时所述密钥协商模板为平行密钥协商模板。所述第一指示信息与第二指示信息不同时,所述密钥协商模板为交叉密钥协商模板。在一些可能的实现方式中,“接收第二设备发送的第一指示信息”,具体可以包括:接收第二设备发送的报文,所述报文携带所述第一指示信息。所述第一指示信息可以携带在所述报文的第一字段中,所述第一字段指示所述第一设备建立所述密钥协商模板。所述报文例如可以是保活(英文:KeepAlive)报文或双向转发检测(英文:Bidirectional ForwardingDetection,BFD)报文。以所述报文为KeepAlive报文为例,所述可以在KeepAlive报文的净载荷(英文:payload)中,所述第一字段例如可以是在所述KeepAlive报文中增加类型-长度-值(英文:Type-Length-Value,简称:TLV)字段或TV字段,通过该增加TLV字段或TV字段中的Value部分携带该第一指示信息,上述TLV字段或TV字段中的Type字段用于指示所述第一设备建立所述密钥协商模板。
可选地,第一设备的每个IPSec老化周期均为第一时长,第二设备的每个IPSec老化周期均为第二时长,该第一时长和第二时长可以相等,也可以不相等。设备根据所述密钥协商模板,按照协商规则生成IPSec密钥。所述协商规则包括:1)本端最新生成的私钥所对应的状态信息与对端设备最新的公钥所对应的状态信息,满足密钥协商模板的匹配条件;2)使用本端设备最新的私钥以及对端设备最新的公钥生成IPSec密钥;3)参与生成IPSec密钥的公钥和私钥不能再次参与生成下次的IPSec密钥。可选地,所述规则还可以包括:设备当前IPSec老化周期内合成的IPSec密钥用于对与所述当前IPSec老化周期相邻的下一个IPSec老化周期内传输的数据进行保护。
可选地,密钥协商模板的匹配条件包括:当密钥协商模板为平行密钥协商模板时,参与生成IPSec密钥的公钥和私钥所分别对应的状态信息相同。当密钥协商模板为交叉协商模板时,参与生成IPSec密钥的公钥和私钥所分别对应的状态信息不同。
作为一个示例,本申请实施例中还可以包括:在第一设备的第四IPSec老化周期内,接收第二设备在第三IPSec老化周期内发送的第一报文,第一报文携带所述第二设备在所述第三IPSec老化周期内生成的第三指示信息和第一公钥,第三指示信息用于指示所述第一公钥所对应的状态信息。可选地,所述第三IPSec老化周期为第一IPSec老化周期,所述第三指示信息与所述第一指示信息相同。可选地,所述第三IPSec老化周期与第一IPSec老化周期之间间隔N个老化周期,N为正奇数,第三指示信息与第一指示信息相同。
所述“根据密钥密钥协商模板,生成第一IPSec密钥”,具体可以包括:根据密钥协商模板、第三指示信息、第一公钥、第一设备在第四IPSec老化周期内生成的第一私钥和第四指示信息,生成第一IPSec密钥,其中,第四指示信息用于指示所述第一私钥对应的状态信息。可选地,第四IPSec老化周期为第二IPSec老化周期,或者,第四IPSec老化周期与第二IPSec老化周期之间间隔M个老化周期,M为正奇数。第四指示信息与第二指示信息相同。可以理解的是,所述“根据密钥协商模板、第三指示信息、第一公钥、第一设备在第四IPSec老化周期内生成的第一私钥和第四指示信息,生成第一IPSec密钥”,具体可以是:判断第三指示信息和第四指示信息是否与所述密钥协商模板匹配,若匹配,则根据第一公钥和第一私钥合成所述第一IPSec密钥。其中,当所述密钥协商模板为平行密钥协商模板,则,第三指示信息和第四指示信息与所述密钥协商模板匹配可以是指:第三指示信息和第四指示信息相同;当所述密钥协商模板为交叉密钥协商模板,则,第三指示信息和第四指示信息与所述密钥协商模板匹配可以是指:第三指示信息和第四指示信息不同。
作为另一个示例,本申请实施例中还可以包括:在第一设备的第六IPSec老化周期内,接收第二设备发送的第二报文,该第二报文中携带第二设备在第五IPSec老化周期内的生成的第二公钥和第五指示信息,其中,第五指示信息指示所述第二公钥所对应的状态信息。可选地,第五IPSec老化周期与第一IPSec老化周期之间间隔偶数个IPSec老化周期。根据密钥协商模板、第二公钥、第五指示信息、第一设备在当前的第六IPSec老化周期内生成的第二私钥和第六指示信息,生成第二IPSec密钥,第六指示信息用于指示所述第二私钥对应的状态信息,第二IPSec密钥用于保护第一设备和第二设备在第二时间段内传输的数据。可选地,第六IPSec老化周期与第二IPSec老化周期之间间隔偶数个IPSec老化周期。可选地,为了确保安全通信的有效性,第一设备和第二设备之间传输的报文可以通过上一个IPSec老化周期合成的IPSec密钥进行安全保护。例如:在第一设备的第二IPSec老化周期生成第一IPSec密钥,则所述第一IPSec密钥可以用于对所述第二IPSec老化周期的下一个IPSec老化周期内传输的数据进行保护。可选地,所述第一时间段和/或第二时间段可以对应一个IPSec老化周期内的一段时间,也可以对应整个IPSec老化周期的时长。
在本申请中,在第一设备的各IPSec老化周期时长和第二设备的各IPSec老化周期时长一致的情况下,无论是与建立密钥协商模板的IPSec老化周期间隔的是奇数个IPSec老化周期,还是偶数个IPSec老化周期,通过本申请实施例,均可以快速、高效的协商各个IPSec老化周期的IPSec密钥,为第一设备和第二设备之间的安全通信提供了可靠的数据基础。
可选地,所述第一报文和所述第二报文可以为边界网关协议(英文:BorderGateway Protocol,简称:BGP)消息或用户数据报协议(英文:User Datagram Protocol,简称:UDP)报文,也可以是其它专有报文,本申请不作具体限制。一个具体的实现中,可以通过扩展所述BGP消息或所述UDP报文,来携带用于生成每个所述IPSEC密钥所需的公钥和以及用于指示该公钥对应的状态信息的指示信息。
可选地,第一报文和第二报文,除了携带上述指示信息和公钥之外,还可以包括下述一个或多个安全参数:DH组、封装模式、加密算法或认证算法。那么,可以基于本申请所述的方案,不仅可以协商IPSec密钥,还可以进一步协商确定IPSec SA,具体过程在本申请中不作赘述。
其中,无论是指示信息、公钥,还是DH组、封装模式、加密算法和/或认证算法,都可以在BGP消息或UDP报文携带。以BGP消息携带上述所有的参数为例,可选地,可以通过在BGP消息中新增一个隧道属性,并在该隧道属性中扩展6个TLV字段,每个TLV字段中分别携带指示信息、公钥、DH组、封装模式、加密算法和认证算法这些参数中的一个参数。可选地,也可以通过在BGP消息中新增6个隧道属性,并在该6个隧道属性中分别携带指示信息、公钥、DH组、封装模式、加密算法和认证算法这些参数中的一个参数。还可以通过其它报文,以其它方式在设备之间交互上述一个或多个安全参数,此处不再赘述。
一个具体的实现中,所述第一IPSec密钥可以是加密密钥或认证密钥,所述第二IPSec密钥可以是加密密钥或认证密钥。其中,在本申请中,加密密钥,也可以称之为IPSec加密密钥,IPSec会话密钥,IPSec SA加密密钥或IPSec SA会话密钥,用于对报文进行加解密的操作。认证密钥,也可以称之为IPSec认证密钥或IPSec SA认证密钥,用于对报文进行认证,例如对于加密的IP报文,基于认证密钥和认证算法生成数字签名,基于所述数字签名对加密报文的完整性和真实性进行认证,从而保证安全通信。
第二方面,也提供了一种安全通信的方法,应用在包括第一设备和第二设备的场景中,以第二设备为执行主体,该安全通信的方法例如可以包括:在第二设备的第一IPSec老化周期内,第二设备生成第一指示信息,该第一指示信息用于指示所述第二设备在所述第一IPSec老化周期内生成的公私钥对所对应的状态信息;第二设备向第一设备发送该第一指示信息。这样,为第一设备和第二设备之间建立密钥协商模板提供了数据基础,使得通过密钥协商模板快速的确定IPSec密钥成为了可能,从而确保第一设备和第二设备之间能够实现安全通信。
在一些可能的实现方式中,“第二设备向第一设备发送的第一指示信息”,具体可以包括:第二设备向第一设备发送的保活KeepAlive报文或双向转发检测BFD报文,第一指示信息携带在KeepAlive报文或BFD报文中。
在另一些可能的实现方式中,本申请实施例还可以包括:在第一IPSec老化周期内,第二设备接收第一设备发送的第二指示信息,第二指示信息用于指示第一设备在第二IPSec老化周期内生成的公私钥对所对应的状态信息;第二设备根据第二指示信息和第一指示信息,建立密钥协商模板;第二设备根据密钥协商模板,生成第一IPSec密钥,第一IPSec密钥用于保护第一设备和第二设备在第一时间段内传输的数据。
在一些可能的实现方式中,“所述第二设备接收第一设备发送的第二指示信息”,具体可以包括:所述第二设备接收第一设备发送的报文,所述报文携带所述第二指示信息。所述第二指示信息可以携带在所述报文的第二字段中,所述第二字段指示所述第二设备建立所述密钥协商模板。所述报文例如可以是保活(英文:KeepAlive)报文或双向转发检测(英文:Bidirectional Forwarding Detection,BFD)报文。以所述报文为KeepAlive报文为例,所述可以在KeepAlive报文的净载荷(英文:payload)中,所述第二字段例如可以是在所述KeepAlive报文中增加类型-长度-值(英文:Type-Length-Value,简称:TLV)字段或TV字段,通过该增加TLV字段或TV字段中的Value部分携带该第二指示信息,上述TLV字段或TV字段中的Type字段用于指示所述第二设备建立所述密钥协商模板。
可选地,第一指示信息与第二指示信息相同,所述密钥协商模板为平行密钥协商模板。可选地,第一指示信息与第二指示信息不同,所述密钥协商模板为交叉密钥协商模板。通过本申请实施例提供的方法,预先在两个设备上建立密钥协商模板,在每次需要协商IPSec密钥时,本端设备根据接收到的对端设备发送的其当前IPSec老化周期内生成的公钥以及所述公钥所对应的状态信息,以及本端设备当前IPSec老化周期内生成的私钥以及私钥对应的状态信息,按照所述密钥协商模板的协商规则,即可生成IPSec密钥。由于本申请的技术方案不再基于IKE协议进行IPSec密钥的协商,相对于在两个设备之间通过IKE协议协商IPSec密钥时需要交互多个报文,本申请的技术方案减少了两个设备之间交互报文的数量,提高了IPSec密钥的协商效率,减少了对系统资源的占用。在IoT等大规模组网场景中,对于海量设备互通的情况下,大大降低了基于IKE协议协商所交互的海量报文,减少了对系统资源的占用。
可选地,所述方法还可以包括:在第二设备的第三IPSec老化周期内,第二设备向第一设备发送第一报文,第一报文携带第三指示信息以及所述第二设备在所述第三IPSec老化周期内生成的第一公钥,其中,第三指示信息用于指示所述第一公钥所对应的状态信息,第三指示信息与第一指示信息相同。可选地,所述第三IPSec老化周期为所述第一IPSec老化周期;或者,所述第三IPSec老化周期与所述第一IPSec老化周期之间间隔N个老化周期,N为正奇数。可选地,所述方法还包括:在第二设备的第三IPSec老化周期内,接收第一设备发送的第二报文,第二报文携带第一设备在第四IPSec老化周期内生成的第二公钥和第四指示信息,所述第四指示信息指示所述第二公钥对应的状态信息,所述第四指示信息与所述第二指示信息相同。所述所述根据所述密钥协商模板,生成第一IPSec密钥,包括:根据所述密钥协商模板、所述第四指示信息、所述第二公钥、所述第二设备在所述第三IPSec老化周期内生成的第三指示信息和第一私钥,生成所述第一IPSec密钥,所述第三指示信息指示所述第一私钥所对应的状态信息。
可选地,所述第四IPSec老化周期为所述第二IPSec老化周期;或者,所述第四IPSec老化周期与所述第二IPSec老化周期之间间隔M个老化周期,M为正奇数。所述“根据密钥协商模板、第四指示信息、第二公钥、第二设备在第三IPSec老化周期内生成的第三指示信息和第一私钥,生成第一IPSec密钥”,具体可以是:判断第三指示信息和第四指示信息是否与所述密钥协商模板匹配,若匹配,则根据第一公钥和第一私钥合成所述第一IPSec密钥。其中,当所述密钥协商模板为平行密钥协商模板,则,第三指示信息和第四指示信息与所述密钥协商模板匹配可以是指:第三指示信息和第四指示信息相同;当所述密钥协商模板为交叉密钥协商模板,则,第三指示信息和第四指示信息与所述密钥协商模板匹配可以是指:第三指示信息和第四指示信息不同。
可选地,所述方法还可以包括:在第二设备的第五IPSec老化周期内,第二设备向第一设备发送第三报文,所述第三报文中携带所述第二设备在所述第五IPSec老化周期内生成的第三公钥和第五指示信息,所述第五指示信息指示所述第三公钥所对应的状态信息,第五IPSec老化周期与第一IPSec老化周期之间间隔偶数个IPSec老化周期。
可选地,所述方法还可以包括:在第二设备的五IPSec老化周期内,第二设备接收第一设备发送的第四报文,第四报文携带第一设备在第六IPSec老化周期内生成的第四公钥和第六指示信息,第六指示信息指示所述第四公钥所对应的状态信息,第六IPSec老化周期与第二IPSec老化周期之间间隔偶数个IPSec老化周期,第五IPSec老化周期与第一IPSec老化周期之间间隔偶数个IPSec老化周期;第二设备根据密钥协商模板,第四公钥,第六指示信息,第二设备在第五IPSec老化周期内生成的第二私钥和第五指示信息,生成第二IPSec密钥,第五指示信息指示第二私钥所对应的状态信息。
在本申请中,无论第一设备和第二设备的各IPSec老化周期是否一致,均可以在各IPSec老化周期,基于建立的密钥协商模板、两端设备当前的指示信息以及公私钥,快速、高效的协商出该IPSec老化周期的IPSec密钥,为第一设备和第二设备之间的安全通信提供了可靠的数据基础。
可选地,上述各实现方式中的第一报文、第二报文和第三报文等均可以为BGP消息或UDP报文,也可以是其它专有报文,本申请不作具体限制。一个具体的实现中,可以通过扩展所述BGP消息或所述UDP报文,来携带用于生成每个所述IPSEC密钥所需的公钥和以及用于指示该公钥对应的状态信息的指示信息。
可选地,第一报文、第二报文和第三报文等,除了携带上述指示信息和用于生成IPSec密钥的公钥之外,还可以包括下述一个或多个安全参数:DH组、封装模式、加密算法或认证算法。
可选地,为了确保安全通信的有效性,第一设备和第二设备之间传输的报文可以通过上一个IPSec老化周期合成的IPSec密钥进行安全保护。例如:在第一设备的第二IPSec老化周期生成第一IPSec密钥,则所述第一IPSec密钥可以用于对所述第二IPSec老化周期的下一个IPSec老化周期内传输的数据进行保护。可选地,所述第一时间段和/或第二时间段可以对应一个IPSec老化周期内的一段时间,也可以对应整个IPSec老化周期的时长。
第二方面提供的方法的各种可能的实现方式以及达到的技术效果,可以参照前述第一方面提供的方法的介绍,此处不再赘述。
第三方面,本申请还提供了第一设备,包括收发单元和处理单元。其中,收发单元用于执行上述第一方面提供的方法中的收发操作;处理单元用于执行上述第一方面中除了收发操作以外的其他操作。例如:当所述第一设备执行所述第一方面所述的方法时,所述收发单元用于在第一设备的第二IPSec老化周期内,接收第二设备发送的第一指示信息;所述处理单元用于根据第一指示信息和第二指示信息,建立密钥协商模板;以及根据密钥协商模板,生成第一IPSec密钥。
第四方面,本申请实施例还提供了第二设备,该第二设备包括收发单元和处理单元。其中,收发单元用于执行上述第二方面提供的方法中的收发操作;处理单元用于执行上述第二方面中除了收发操作以外的其他操作。例如:当所述第二设备执行所述第二方面所述的方法时,所述收发单元用于向第一设备发送该第一指示信息;所述处理单元用于生成第一指示信息。
第五方面,本申请实施例还提供了一种第一设备,包括通信接口和处理器。其中,通信接口用于执行前述第一方面提供的方法中的收发操作;处理器,用于执行前述第一方面提供的方法中除所述收发操作以外的其他操作。
第六方面,本申请实施例还提供了一种第二设备,包括通信接口和处理器。其中,通信接口用于执行前述第二方面提供的方法中的收发操作;处理器,用于执行前述第二方面提供的方法中除所述收发操作以外的其他操作。
第七方面,本申请实施例还提供了一种第一设备,该第一设备包括存储器和处理器。其中,存储器用于存储程序代码;处理器用于运行所述程序代码中的指令,使得该第一设备执行以上第一方面提供的方法。
第八方面,本申请实施例还提供了一种第二设备,该第二设备包括存储器和处理器。其中,存储器用于存储程序代码;处理器用于运行所述程序代码中的指令,使得该第一设备执行以上第二方面提供的方法。
第九方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面或第二方面提供的所述的安全通信的方法。
第十方面,本申请实施例还提供了计算机程序产品,当其在计算机上运行时,使得计算机执行前述第一方面或第二方面提供的所述的安全通信的方法。
第十一方面,本申请实施例还提供了一种通信系统,该通信系统包括第三方面、第五方面或第七方面提供的所述的第一设备以及第四方面、第六方面或第八方面提供的第二设备。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种协商确定加密密钥的方法的信令流程图;
图2为本申请实施例中一种安全通信的方法100的信令流程图;
图3为本申请实施例中一种KeepAlive报文的结构示意图;
图4a为本申请实施例中IPSec老化周期一致时平行密钥协商模板的示意图;
图4b为本申请实施例中IPSec老化周期一致时交叉密钥协商模板的示意图;
图5a为本申请实施例中BGP消息新增隧道属性的一种结构示意图;
图5b为本申请实施例中图5a中隧道属性值Value字段的结构示意图;
图6为本申请实施例中一种安全通信的方法200的信令流程图;
图7为本申请实施例中一种安全通信的方法300的信令流程图;
图8为本申请实施例中一种安全通信的方法400的信令流程图;
图9为本申请实施例中一种安全通信的方法500的信令流程图;
图10为本申请实施例中一种安全通信的方法600的信令流程图;
图11为本申请实施例中一种安全通信的方法1100的信令流程图;
图12为本申请实施例中设备1和设备3的滴答值的示意图;
图13为本申请实施例中一种安全通信的方法1300的信令流程图;
图14为本申请实施例中一种安全通信的方法1400的流程示意图;
图15为本申请实施例中另一种安全通信的方法1500的流程示意图;
图16为本申请实施例中一种第一设备的结构示意图;
图17为本申请实施例中一种第二设备的结构示意图;
图18为本申请实施例中另一种第一设备的结构示意图;
图19为本申请实施例中另一种第二设备的结构示意图;
图20为本申请实施例中又一种第一设备的结构示意图;
图21为本申请实施例中又一种第二设备的结构示意图;
图22为本申请实施例中一种通信系统的结构示意图。
具体实施方式
随着互联网的普及,通过互联网传输的数据报文越来越多,为了克服以明文的形式在互联网中传输数据不够安全的问题,提出了互联网协议安全(英文:InternetProtocol Security,简称:IPSec)技术。IPSec技术是一组基于密码学的开放的网络安全协议,工作在互联网协议(英文:Internet Protocol,简称:IP)层,为IP层以及上层协议提供保护,例如,可以提供IP报文加密、数据完整性校验、数据来源验证、防重放等安全服务。
IPSec由一组网络安全协议组成,例如可以包括:报文验证头(英文:Authentication Header,简称:AH)协议、封装安全载荷(英文:Encapsulating SecurityPayload,简称:ESP)协议、加密算法、认证算法和互联网密钥交换(英文:Internet KeyExchange,简称:IKE)协议。其中,AH协议能提供数据来源验证和数据完整性校验功能;ESP协议除了可以提供数据来源验证和数据完整性校验功能以外,还能提供IP报文加密功能;加密算法可以包括:数据加密标准(英文:Data Encryption Standard,简称:DES)算法、三重数据加密标准(英文:Trip Data Encryption Standard,简称:3DES)算法、高级数据加密标准(英文:Advanced Encryption Standard,简称:AES)算法等;认证算法可以包括信息摘要(英文:Message-Digest,简称:MD)算法和安全散列算法(英文:Secure Hash Algorithm,简称:SHA),如:MD5、SHA1、SHA2等;IKE协议例如可以包括密钥DH交换算法和互联网安全联盟密钥管理协议(英文:Internet Security Association Key Management Protocol,简称:ISAKMP),究其实质,IKE协议可以通过在设备之间交互报文的方式协商确定IPSec SA。
IPSec SA是设备之间进行IPSec通信的数据基础,设备之间协商确定IPSec SA,并基于该IPSec SA进行IPSec通信。IPSec SA具体可以包括:密钥DH交换组、封装模式、认证算法、加密算法、加密密钥和认证密钥等,IPSec SA用于指导设备之间安全的传输数据报文。
IPSec密钥指两个设备之间通过交换公钥后,基于本端设备生成的私钥以及对端设备发送的公钥合成的密钥。通过对称密钥算法生成的IPSec密钥是通信的两个设备之间一致的共享密钥,用于对设备之间交互的数据报文进行安全保护。
作为一个示例,以IPSec密钥为加密密钥为例,图1为根据密钥DH交换算法协商确定加密密钥的过程。该场景中包括设备101、设备102和路由反射器(英文:RouterReflector,简称:RR)103,其中,设备101和设备102为参与通信的两个设备(简称:通信对等体)。参见图1,协商确定加密密钥的过程例如可以包括:S11,设备101、设备102和RR 103各自生成对应的私钥a、b和c;S12,设备101、设备102和RR 103分别基于所生成的私钥计算对应的公钥,得到公钥A、B和C;S13,设备101、设备102分别将公钥A和B发送给RR 103,由RR103在网络中泛洪该公钥A和B,同时,RR 103将自己的公钥C也在网络中进行泛洪;S14,设备101基于公钥B和私钥a生成加密密钥12,设备101基于公钥C和私钥a生成加密密钥13,同理,设备102基于公钥A和私钥b生成加密密钥21,设备102基于公钥C和私钥b生成加密密钥23,RR103基于公钥A和私钥c生成加密密钥31,RR 103基于公钥B和私钥c生成加密密钥32,其中,加密密钥12和加密密钥21是一致的,记作设备101和设备102之间的加密密钥(也称为共享密钥),同理,加密密钥13和加密密钥31一致,加密密钥23和加密密钥32一致。
由于设备的IPSec安全参数(如:公钥、私钥)又会不断更新,每更新一次IPSec安全参数,均视作进入另一个IPSec老化周期,需要重新进行一次IPSec密钥的协商,协商确定该新进入的IPSec老化周期对应的IPSec密钥。
目前,在设备之间协商IPSec密钥,通常在采用IKE协议动态协商IPSec SA的过程中实现,IKE协议是基于用户数据包协议(英文:User Datagram Protocol,简称:UDP)的应用层协议。但是,采用IKE协议为一对设备协商确定一次IPSec密钥,需要在一对设备之间交互至少6条消息,对于很多大规模组网的场景(例如IoT场景),由于设备数量的增多以及IPSec安全参数的不断更新,各个设备均需要和其他设备交互海量的消息,才能够协商出各IPSec老化周期内的IPSec密钥,不仅会占用设备内以及网络中的很多资源,而且该采用IKE协议协商IPSec密钥的方式还存在耗时长、效率低的问题,无法满足网络中设备不断增多的场景下,对确定IPSec密钥从而实现安全通信快速、高效的要求。
基于此,在本申请实施例中,提供了一种能够快速、高效且方便的安全通信的方法,通过在相互通信的两个设备上建立密钥协商模板,在每次需要协商IPSec密钥时,本端设备根据接收到的对端设备发送的其当前IPSec老化周期内生成的公钥以及所述公钥所对应的状态信息,以及本端设备当前IPSec老化周期内生成的私钥以及私钥对应的状态信息,按照所述密钥协商模板的协商规则,即可生成IPSec密钥。本申请的技术方案不再基于IKE协议进行IPSec密钥的协商,相对于在两个设备之间通过IKE协议协商IPSec密钥时需要交互多个报文,本申请的技术方案减少了两个设备之间交互报文的数量,提高了IPSec密钥的协商效率,减少了对系统资源的占用。在IoT等大规模组网场景中,对于海量设备互通的情况下,大大降低了基于IKE协议协商所交互的海量报文,减少了对系统资源的占用。在本申请中,一个IPSec老化周期内的公私钥对所对应的状态信息,同一个IPSec老化周期内的公钥对应的状态信息,与同一个IPSec老化周期内私钥对应的状态信息,指代的是同一个状态信息。
在介绍本申请具体实施例之前,先对本申请中涉及的一些基本概念进行简要说明。
IPSec老化周期,是指IPSec安全参数在设备上有效的时间,用于表征IPSec安全参数更新的频率。设备可以预先定义其IPSec老化周期(例如:1天),在每个IPSec老化周期产生该IPSec老化周期内的公私钥对,通过交换新产生的公私钥对中的公钥,获得该IPSec老化周期对应的IPSec密钥,实现该IPSec老化周期内的安全通信。例如:假设设备101定义一个IPSec老化周期为10小时,设备101在第1个IPSec老化周期开始时产生私钥1和公钥1,经过10小时,设备101进入第2个IPSec老化周期,产生该第2个IPSec老化周期对应的私钥2和公钥2。网络中的每个设备定义的IPSec老化周期的时长可以相同,也可以不同,在此不作具体限定。本申请中所述的公私钥对包括一个公钥和一个私钥。
可以理解的是,在每个IPSec老化周期内,设备均生成与上一个IPSec老化周期的公私钥对不同的新公私钥对。
密钥协商模板,是基于相互通信的设备之间交互的用于指示IPSec老化周期内生成的公私钥对的状态信息,所建立的用于指导在各IPSec老化周期确定对应的IPSec密钥的模板。例如在建立首次通信连接时,两个设备(该两个设备也可以称为通信对等体)建立密钥协商模板。密钥协商模板,可以根据通信对等体在建立所述密钥协商模板时所交互的指示信息是否相同,划分为平行密钥协商模板和交叉密钥协商模板。如果交互的指示信息相同,则建立的密钥协商模板为平行密钥协商模板,反之,如果交互的指示信息不同,则建立的密钥协商模板为交叉密钥协商模板。
两个设备之间的密钥协商模板一经建立,通常无法更改,直到这两个设备的通信连接断开。具体建立密钥协商模板的细节以及实现方式可以参见图2、图11和图13-图15所示实施例中的相关说明。
需要说明的是,由于IPSec SA中,IPSec密钥会随着IPSec老化周期的更迭而变化,但其他IPSec安全参数(如:加密算法、认证算法、封装模式)在不同老化周期内可以发生变化也可以不变,本申请实施例侧重介绍协商确定IPSec密钥的过程。
图2为本申请实施例中的一种安全通信的方法100的流程示意图。参见图2,该方法100应用于包括设备1和设备2的网络中。方法100例如可以包括:
S101,在设备2的IPSec老化周期1内,设备2生成指示信息1,该指示信息1,所述指示信息1用于标识在设备2的IPSec老化周期1内生成的公私钥对所对应的状态信息。
本申请中所提到的指示信息,或者采用阿拉伯数字所编号的指示信息,例如指示信息1,指示信息2….;或者采用数字所编号的指示信息,例如第一指示信息,第二指示信息…,均用于指示发送该指示信息的设备在当前的IPSec老化周期内生成的公钥和/或私钥所对应的状态信息。每个IPSec老化周期内生成的公钥和/或私钥对所对应的状态信息,在每次IPSec发生老化更新时按照约定的规则进行迭代,即,指示信息在每次IPSec发生老化更新时按照约定的规则进行迭代。
在一个具体的实施方式中,指示信息可以是数值,通过交替出现的数值来指示IPSec老化周期的更迭,交替出现的数值作为指示信息,可以记作滴答值。滴答值,用于表征IPSec老化周期内设备生成的公私钥对的状态,通过两个值的交替出现,表征设备从一个IPSec老化周期到下一个IPSec老化周期的状态变化,也可以理解为表征设备从一个公私钥对更新到另一个公私钥对的状态变化。以滴答值为0和1为例,滴答值=0,可以表征第i个IPSec老化周期(其中,i=1、3、5、……),滴答值=1,则表征第j个IPSec老化周期(其中,j=2、4、6、……),第i个IPSec老化周期与第j个老化周期交替出现。通过滴答值0和1的交替出现,表示设备公私钥对的更新以及IPSec老化周期的更迭。
在另一个具体的实施方式中,该指示信息也可以是字符串,通过交替出现的字符串来表征设备公私钥对的更新以及IPSec老化周期的更迭。例如:当设备的指示信息从字符串a变化到字符串b时,或,从字符串b变化到字符串a时,表征该设备从当前IPSec老化周期更新至下一个IPSec老化周期。
需要说明的是,指示信息包括但不限于是上述字符串和滴答值的形式,只要可以通过预定的规则来表征IPSec老化周期的更迭,均属于本申请实施例中的指示信息的范围。
其中,设备1和设备2上可以分别定义自己的IPSec老化周期,并定义表征IPSec老化周期变化后生成公私钥对的状态信息为指示信息。例如:设备1可以定义自己的各个IPSec老化周期的时长为10小时,定义指示信息为滴答值,设备2可以定义自己的各个IPSec老化周期的时长为2小时,定义指示信息为滴答值。其中,S101中的指示信息1例如可以是0,用于表征设备2的IPSec老化周期1。
S102,设备2向设备1发送指示信息1。
具体实现时,S102可以通过设备2向设备1发送报文实现,所述报文例如可以是连接检测报文,所述报文例如也可以是新定义的报文,用于协商密钥协商模板,本申请对于具体的报文格式不做具体限定。举例来说,设备2向设备1发送连接检测报文1,该连接检测报文1中包括字段1,用于携带设备2的指示信息1。字段1用于指示设备1建立所述密钥协商模板。连接检测报文,是指用于检测设备之间是否存在连接的检测报文,由于连接检测报文为设备之间频繁交互且具有规律的报文,所以,选择通过连接检测报文交互指示信息,能够可靠且快速的将本端设备的当前指示信息通告给对端设备,以可靠且快速的触发建立密钥协商模板,开启安全通信。
连接检测报文,包括但不限于保活(英文:KeepAlive)报文、双向转发检测(英文:Bidirectional Forwarding Detection,简称:BFD)报文。本申请中,通过对连接检测报文扩展新的字段,例如新增一个类型-长度-值(英文:Type-Length-Value,简称:TLV)字段或类型-值(英文:Type-Value,简称:TV)字段,用于携带指示信息。以KeepAlive报文为例,参见图3,KeepAlive报文包括:IP头、通用路由封装(英文:Generic Routing Encapsulation,简称:GRE)头和净载荷(英文:payload),那么,可以在payload中新增一个TLV字段或TV字段,在该新增的TLV字段或TV字段的Value部分携带指示信息1。该新增的TLV字段或者TV字段用于指示设备1基于指示信息1建立密钥协商模板。将指示信息携带在设备之间本身就需要传输的连接检测报文中,无需再重新定义新的报文传输该指示信息,不仅节约了网络资源,而且,由于连接检测报文交互频繁且规律性强的特点,使得通过该连接检测报文交互指示信息以触发建立密钥协商模板能够更加可靠和快速,从而提高了获得IPSec密钥的效率。
S103,在设备1的IPSec老化周期2内,设备1接收到设备2发送的指示信息1。
S104,在设备1的IPSec老化周期2内,设备1生成指示信息2,该指示信息2用于标识设备1在IPSec老化周期2内生成的公私钥对的状态信息。
可以理解的是,指示信息2包括但不限于字符串和滴答值,具体描述可以参见上述S101中关于指示信息的描述。
例如,设备1在IPSec老化周期2的指示信息2为0;又例如,设备1在IPSec老化周期2的指示信息2为1。
S105,设备1根据指示信息1和指示信息2,建立密钥协商模板。
密钥协商模板,用于指导设备1在各个IPSec老化周期生成对应的IPSec密钥。根据指示信息1和指示信息2是否相同,建立的密钥协商模板可以分为平行密钥协商模板和交叉密钥协商模板。当指示信息1和指示信息2相同时,密钥协商模板为平行密钥协商模板;当指示信息1和指示信息2不同时,密钥协商模板为交叉密钥协商模板。
以指示信息为滴答值为例,在一个具体的实施方式中,指示信息1和指示信息2相同。例如:假设指示信息1和指示信息2均为0,S105中设备1建立的密钥协商模板为平行密钥协商模板;又例如:假设指示信息1和指示信息2均为1,S105中设备1建立的密钥协商模板也是平行密钥协商模板。需要说明的是,在后续的IPSec老化周期中,只要设备1和设备2的滴答值相同,即,设备1和设备2的滴答值均为0,或者,设备1和设备2的滴答值均为1,均可以视作符合该平行密钥协商模板。例如:参见图4a所示,以设备1和设备2上的IPSec老化周期时长一致的情况为例,在设备1上,从第1个IPSec老化周期开始,对应的滴答值分别为1,0,1,0,…;在设备2上,从第一个IPSec老化周期开始,对应的滴答值分别为1,0,1,0,…。在建立了平行密钥协商模板之后,后续基于平行密钥协商模板生成IPSec密钥时,需要符合平行密钥协商模板的匹配条件,即:用于生成IPSec密钥的对端公钥对应的滴答值与本端私钥对应的滴答值相同。
在另一个具体的方式中,指示信息1和指示信息2不同,例如:指示信息1为0,指示信息2为1,S105中设备1建立的密钥协商模板为交叉密钥协商模板。又例如:指示信息1为1,指示信息2为0,S105中设备1建立的密钥协商模板也是交叉密钥协商模板。需要说明的是,在后续的IPSec老化周期中,只要设备1和设备2的滴答值不同,即,设备1的滴答值为1且设备2的滴答值为0,或者,设备1的滴答值为0且设备2的滴答值为1,均可以视作符合该交叉密钥协商模板。例如:参见图4b所示,以设备1和设备2上的IPSec老化周期时长一致的情况为例,在设备1上,从第1个IPSec老化周期开始,对应的滴答值分别为1,0,1,0,…;在设备2上,从第1个IPSec老化周期开始,对应的滴答值分别为0,1,0,1,…。在建立了交叉密钥协商模板之后,后续基于交叉密钥协商模板生成IPSec密钥时,需要符合交叉密钥协商模板的匹配条件,即:用于生成IPSec密钥的对端公钥对应的滴答值与本端私钥对应的滴答值不同。可以理解的是,由于IPSec老化周期的时长通常比较长,而设备1和设备2建立密钥协商模板的时间非常接近,所以,在本申请实施例中,设备1和设备2上建立的密钥协商模板为相同的密钥协商模板。
S106,设备1根据密钥协商模板,生成IPSec密钥1,该IPSec密钥1用于保护设备1和设备2在时间段1内传输的数据。
可以理解的是,在建立密钥协商模板后,设备1可以基于所建立的密钥协商模板协商确定当前IPSec老化周期对应的IPSec密钥,或者,设备1也可以基于所建立的密钥协商模板协商确定后续IPSec老化周期对应的IPSec密钥。
IPSec密钥,用于对设备之间传输的数据进行安全保护,设备通常判断本端当前的指示信息和对端当前的指示信息是否符合密钥协商模板的匹配条件,当满足时,可以基于本端当前的私钥和对端当前的公钥,生成IPSec密钥。
在一个具体的实现方式中,S106可以包括:S1061,在设备2的IPSec老化周期3中,设备2向设备1发送报文1,该报文1携带指示信息3和公钥1,该公钥1为设备2在IPSec老化周期3生成的;S1062,在设备1的IPSec老化周期4中,设备1接收设备2发送的报文1;S1063,设备1根据密钥协商模板、指示信息3、公钥1、设备1在IPSec老化周期4中的指示信息4和私钥1,生成IPSec密钥1。
在一个具体的实施方式中,报文1可以是边界网管协议(英文:Border GatewayProtocol,简称:BGP)消息或者用户数据包协议(英文:User Datagram Protocol,简称:UDP)报文中。报文1也可以是新定义的专有报文。
当报文1是BGP消息时,可以对BGP消息进行扩展,用于携带当前的公钥1和指示信息3。例如:可以在BGP消息中新增隧道属性,用于携带公钥1和指示信息3。
作为一个示例,可以在BGP消息中扩展一个隧道属性,该扩展的隧道属性例如可以是一个TLV字段或TV字段。以TLV字段为例,如图5a所示,该扩展的隧道属性TLV字段中的隧道属性类型Tunnel Type字段用于标识该隧道属性中携带的是IPSec的安全参数,隧道属性值Tunnel Value字段如图5b所示,可以扩展多个TLV字段,用于携带IPSec安全参数。
作为另一个示例,也可以在BGP消息中扩展多个隧道属性,每个扩展的隧道属性可以是一个TLV字段或TV字段。以TLV字段为例,每个扩展的隧道属性TLV字段中的TunnelType字段用于标识该隧道属性中携带的具体是哪个或者哪几个IPSec的安全参数,Value字段可以扩展1个或多个TLV字段,用于携带Tunnel Type字段所指示的IPSec安全参数的具体取值。
可以理解的是,一种情况下,若IPSec密钥为加密密钥,那么,该BGP消息中可以包括2个扩展的TLV字段,2个扩展的TLV字段的Value字段分别用于承载加密公钥1和指示信息3。另一种情况,若IPSec密钥为认证密钥,那么,该BGP消息中可以包括2个扩展的TLV字段,该2个扩展的TLV字段的Value字段分别用于承载认证公钥1和指示信息3。再一种情况下,若IPSec密钥包括认证密钥和加密密钥,那么,该BGP消息中可以包括3个扩展的TLV字段,该3个扩展的TLV字段的Value字段分别用于承载加密公钥1、认证公钥1和指示信息3。需要说明的是,该BGP消息中还可以通过在新增隧道属性中扩展更多的TLV字段,或者新增更多的隧道属性,携带DH组、封装模式、加密算法和认证算法等安全参数,用于协商IPSec SA中的除了IPSec密钥之外的安全通信需要遵守的内容。
一个具体的实施方式中,报文1是UDP报文,可以对UDP报文进行扩展,以携带指示信息1和公钥1。还可以对UDP报文进行扩展,携带DH组、封装模式、加密算法和认证算法等安全参数。举例来说,可以在UDP报文的有效载荷(英文:payload)中扩展TLV字段或者TV字段,该扩展的TLV字段或TV字段用于携带当前的公钥1和指示信息3。
在一些可能的实现方式中,该报文1中除了携带当前IPSec老化周期内设备2的公钥1和指示信息3,还携带下述IPSec安全参数中的至少一个:设备2的封装模式1、DH组1、加密算法1和认证算法。那么,所述方法100还可以包括:设备1判断该设备2的安全参数和设备1当前的安全参数是否匹配,若匹配,则确定匹配的安全参数和IPSec密钥1为IPSec SA,该IPSec SA用于实现在时间段1内设备1和设备2之间的安全通信,其中,设备1当前的安全参数的封装模式2、加密算法2和认证算法2中的至少一个。
在一些具体的实现方式中,DH组、封装模式、加密算法和认证算法,也可以在BGP消息或UDP报文的扩展TLV字段中携带,以BGP消息为例,一种情况下,可以通过在BGP消息中新增一个隧道属性,并在该隧道属性中扩展至少6个TLV字段,每个TLV字段中分别携带公钥、指示信息、DH组、封装模式、加密算法和认证算法这些参数中的一个参数。另一种情况下,也可以通过在BGP消息中新增至少6个隧道属性,并在该隧道属性中分别携带指示信息、公钥、DH组、封装模式、加密算法和认证算法这些参数中的一个参数。
如此,通过本申请实施例提供的方法,不仅可以实现快速、准确的确定IPSec密钥的功能,还可以通过携带其他安全参数,协商确定出更多IPSec SA中的内容,为基于IPSec实现安全通信提供了更多的数据基础。
在S104“在设备1的IPSec老化周期2内,设备1生成指示信息2”之后,方法100还可以包括:S107,设备1向设备2发送指示信息2;S108,在设备2的IPSec老化周期1内,设备2接收设备1发送的指示信息2;S109,设备2根据指示信息1和指示信息2,建立密钥协商模板;S110,设备2基于密钥协商模板,生成IPSec密钥1。其中,S107~S108可以参见上述S102~S103的相关说明,S109可以参见上述S105的相关说明,S110可以参见上述S106的相关说明,具体实现方式不再赘述。其中,S110可以具体包括:设备2可以基于所建立的密钥协商模板协商确定当前IPSec老化周期对应的IPSec密钥,或者,设备2也可以基于所建立的密钥协商模板协商确定后续IPSec老化周期对应的IPSec密钥。
在时间段1内,方法100还可以包括:在S106之后,设备1向设备2发送通过IPSec密钥1进行安全保护的数据;在S110之后,设备2向设备1发送通过IPSec密钥1进行安全保护的数据。
作为一个示例,若需要对往来数据进行加密,则,可以配置IPSec密钥为加密密钥,在S106和S110中生成的IPSec密钥1也即加密密钥1,那么,设备1通过IPSec密钥1对数据1进行安全保护,是指设备1使用加密密钥1对数据1进行加密后传输给设备2,设备2基于该加密密钥1对接收到的数据进行解密得到数据1。
作为另一个示例,若需要对往来数据进行认证,则,可以配置IPSec密钥为认证密钥,在S106和S110中生成的IPSec密钥1也即认证密钥1,那么,设备1通过IPSec密钥1对数据1进行安全保护,是指设备1使用认证密钥1对数据1进行认证,例如对于IP报文,基于认证密钥和认证算法生成数字签名,对设备2基于所述数字签名对该IP报文的完整性和真实性进行认证,从而保证安全通信。
作为再一个示例,若需要对往来数据报文进行加密以及认证,则,可以配置IPSec密钥包括加密密钥和认证密钥,在S106和S110中生成的IPSec密钥1包括加密密钥1和认证密钥1,那么,设备1通过IPSec密钥1对数据1进行安全保护,是指设备1先使用加密密钥1对数据1进行加密,再利用认证密钥1对加密后的数据进行数字签名后发送给设备2,设备2基于认证密钥1对数字签名进行完整性和真实性认证,认证通过后,再利用加密密钥1进行解密得到数据1。
需要说明的是,本申请实施例中适用的场景包括:场景一,设备1和设备2可以是直连的,那么,图2所示实施例中的发送、接收等操作均是设备1和设备2之间通过直接交互信息执行的;场景二,设备1和设备2还可以是间接连接的,例如,设备1通过控制器等其他设备连接设备2,那么,图2所示实施例中的发送、接收等操作,均是设备1和设备2之间通过控制器等设备中转交互信息完成的。本申请实施例中的相关描述均以场景一为例进行说明。
如此,在本申请实施例中,需要建立安全连接时,参与通信的两个设备预先建立密钥协商模板,后续的IPSec密钥协商时,基于该预先建立的密钥协商模板,各设备即可在各自当前IPSec老化周期内,快速生成对应的IPSec密钥。这样,由于本申请的技术方案不再基于IKE协议进行IPSec密钥的协商,相对于在两个设备之间通过IKE协议协商IPSec密钥时需要交互多个报文,本申请的技术方案有效减少了两个设备之间交互报文的数量,提高了IPSec密钥的协商效率,同时也减少了对系统资源的占用。尤其在IoT等大规模组网场景中,对于海量设备互通的情况下,大大降低了基于IKE协议协商所交互的海量报文,减少了对系统资源的占用。
在一些具体实施例中,为了避免各个设备合成该新的IPSec密钥的时间不一致,导致对数据的传输不够安全或者无法有效传输,本申请实施例中,还可以包括:在设备上保存之前使用的IPSec密钥,在合成新的IPSec密钥时,启用上一个IPSec老化周期合成的IPSec密钥,对待传输数据进行安全保护。如此,可以确保通信对等体之间在相同的时间段采用相同的IPSec密钥对数据进行安全保护,提高了IPSec密钥对待传输数据进行安全保护的有效性,提高了数据安全且有效传输的几率。
通常,同一设备定义其上每个IPSec老化周期的时长均可以相同;而不同设备的IPSec老化周期的时长则可以相同,也可以不同。设备1或设备2根据所述密钥协商模板,按照协商规则生成IPSec密钥。所述协商规则包括:1)本端最新生成的私钥所对应的状态信息与对端设备最新的公钥所对应的状态信息,满足密钥协商模板的匹配条件;2)使用本端设备最新的私钥以及对端设备最新的公钥生成IPSec密钥;3)参与生成IPSec密钥的公钥和私钥不能再次参与生成下次的IPSec密钥。可选地,所述规则还可以包括:设备当前IPSec老化周期内合成的IPSec密钥用于对与所述当前IPSec老化周期相邻的下一个IPSec老化周期内传输的数据进行保护。
在一些可能的实现方式中,假设设备1的每个IPSec老化周期均为时长1,设备的每个IPSec老化周期均为时长2,且时长1和时长2相等,那么,可以依据预先建立的密钥协商模板以及各IPSec老化周期交互的公钥,获得该IPSec老化周期对应的IPSec密钥。
作为一个示例,本申请实施例提供了一种安全通信的方法200,参见图6所示,该方法200包括:
S201,在设备2的IPSec老化周期1内,设备2向设备1发送报文1,该报文1中携带指示信息1和公钥1,其中,指示信息1用于指示设备2在IPSec老化周期1内生成公私钥对的状态信息。
S202,在设备1的IPSec老化周期2内,设备1接收设备2在IPSec老化周期1内发送的报文1。
S203,设备1根据密钥协商模板、指示信息1、公钥1、设备1在IPSec老化周期2内生成的私钥1和指示信息2,生成IPSec密钥1。其中,指示信息2用于指示设备1在IPSec老化周期2内生成公私钥对的状态信息
需要说明的是,方法200还可以包括:
S204,在设备1的IPSec老化周期2内,设备1向设备2发送报文2,该报文2中携带指示信息2和公钥2。
S205,在设备2的IPSec老化周期1内,设备2接收设备1在IPSec老化周期2内发送的报文2。
S206,设备2根据密钥协商模板、指示信息2、公钥2、设备2在IPSec老化周期1内生成的私钥2和指示信息1,生成IPSec密钥2。其中,IPSec密钥2与S203中生成的IPSec密钥1相同。
在方法200中,公钥2和私钥1是设备1在IPSec老化周期2内生成的公私钥对,公钥1和私钥2是设备2在IPSec老化周期1内生成的公私钥对。
在一个具体的实施方式中,报文1和报文2均可以是BGP消息或UDP报文,具体可以参见上述方法100所示实施例中S106中关于BGP消息或UDP报文携带公钥和指示信息的相关说明。
其中,S201~S202可以在S101之后的任意位置执行,S204~S205可以在S104之后的任意位置执行。S203为S106的一种具体实现方式;S206为S110的一种具体实现方式。
作为另一个示例,在设备1的IPSec老化周期4和设备2的IPSec老化周期3,IPSec老化周期4和IPSec老化周期2间隔奇数个IPSec老化周期,IPSec老化周期3和IPSec老化周期1也间隔奇数个IPSec老化周期。本申请实施例还提供了一种安全通信的方法300,参见图7所示,该方法300例如可以包括:
S301,在设备2的IPSec老化周期3内,设备2向设备1发送报文3,该报文3中携带指示信息3和公钥3,其中,指示信息3用于指示设备2在IPSec老化周期3内生成公私钥对的状态信息。
S302,在设备1的IPSec老化周期4内,设备1接收设备2在IPSec老化周期3内发送的报文3。
S303,设备1根据密钥协商模板、指示信息3、公钥3、设备1在IPSec老化周期4内生成的私钥3和指示信息4,生成IPSec密钥3。
方法300还可以包括:
S304,在设备1的IPSec老化周期4内,设备1向设备2发送报文4,该报文2中携带指示信息4和公钥4,其中,指示信息4用于指示设备1在IPSec老化周期4内生成公私钥对的状态信息。
S305,在设备2的IPSec老化周期3内,设备2接收设备1在IPSec老化周期4内发送的报文4。
S306,设备2根据密钥协商模板、指示信息4、公钥4、设备2在IPSec老化周期3内生成的私钥4和指示信息3,生成IPSec密钥4。其中,S306中生成的IPSec密钥4和S303中生成的IPSec密钥3相同。
由于指示信息通交替出现指示IPSec的更新,那么,间隔奇数个IPSec老化周期后设备上的指示信息相同。由于IPSec老化周期3与IPSec老化周期1间隔奇数个IPSec老化周期,IPSec老化周期4与IPSec老化周期2间隔奇数个IPSec老化周期,那么,指示信息3和指示信息1相同,指示信息4和指示信息2相同。而且,由于时长1和时长2相等,那么,间隔的IPSec老化周期的个数相同。
在一个具体的实施方式中,S303可以包括:设备1判断指示信息3和指示信息4是否满足密钥协商模板的匹配条件,若是,则,设备1根据公钥3和私钥3,合成IPSec密钥3;否则,设备1不合成IPSec密钥3。S306可以包括:设备2判断指示信息3和指示信息4是否满足密钥协商模板的匹配条件,若是,则,设备2根据公钥4和私钥4,合成IPSec密钥4;否则,设备2不合成IPSec密钥4。对于设备IPSec老化周期一致的场景中,在首次建立密钥协商模板后,由于后续的IPSec老化周期保持一致,上述判断的操作不是必须的操作。
在一个具体的实施方式中,报文3和报文4均可以是BGP消息或UDP报文,具体可以参见上述方法100所示实施例中S106中关于BGP消息或UDP报文携带公钥和指示信息的相关说明。
其中,S301~S303可以在设备1进入IPSec老化周期4之后任意时刻执行,同理,S304~S306可以在设备2进入IPSec老化周期3之后任意时刻执行。S301~S303和S304~S306的执行没有先后顺序。S303为S106的一种具体实现方式;S306为S110的一种具体实现方式。
作为再一个示例,在设备1的IPSec老化周期6和设备2的IPSec老化周期5,该IPSec老化周期6和IPSec老化周期2间隔偶数个IPSec老化周期,该IPSec老化周期5和IPSec老化周期1也间隔偶数个IPSec老化周期。本申请实施例还提供了一种安全通信的方法400,参见图8所示,该方法400例如可以包括:
S401,在设备2的IPSec老化周期5内,设备2向设备1发送报文5,该报文5中携带指示信息5和公钥5,其中,指示信息5用于指示设备2在IPSec老化周期5内生成公私钥对的状态信息。
S402,在设备1的IPSec老化周期6内,设备1接收设备2在IPSec老化周期5内发送的报文5。
S403,设备1根据密钥协商模板、指示信息5、公钥5、设备1在IPSec老化周期6内生成的私钥5和指示信息6,生成IPSec密钥5。
方法400还可以包括:
S404,在设备1的IPSec老化周期6内,设备1向设备2发送报文6,该报文2中携带指示信息6和公钥6,其中,指示信息6用于指示设备1在IPSec老化周期6内生成公私钥对的状态信息。
S405,在设备2的IPSec老化周期5内,设备2接收设备1在IPSec老化周期6内发送的报文6。
S406,设备2根据密钥协商模板、指示信息6、公钥6、设备2在IPSec老化周期5内生成的私钥6和指示信息5,生成IPSec密钥6。S406中生成的IPSec密钥6与S402中生成的IPSec密钥5相同。
由于指示信息通交替出现指示IPSec的更新,那么,间隔偶数个IPSec老化周期后设备上的指示信息不相同。由于IPSec老化周期5与IPSec老化周期1间隔偶数个IPSec老化周期,IPSec老化周期6与IPSec老化周期2间隔偶数个IPSec老化周期,那么,指示信息5和指示信息1不同,指示信息6和指示信息2不同。而且,由于时长1和时长2相等,那么,间隔的IPSec老化周期的个数相同。
其中,S403具体可以包括:设备1判断指示信息5和指示信息6是否满足密钥协商模板的匹配条件,若是,则,设备1根据公钥5和私钥5,合成IPSec密钥5;否则,设备1不合成IPSec密钥5。S306具体可以包括:设备2判断指示信息5和指示信息6是否满足密钥协商模板的匹配条件,若是,则,设备2根据公钥6和私钥6,合成IPSec密钥6;否则,设备2不合成IPSec密钥6。对于设备IPSec老化周期一致的场景中,在首次建立密钥协商模板后,由于后续的IPSec老化周期保持一致,上述判断的操作不是必须的操作。
在一个具体的实施方式中,报文5和报文6可以是BGP消息或UDP报文,具体可以参见上述方法100所示实施例中S106中关于BGP消息或UDP报文携带公钥和指示信息的相关说明。
其中,S401~S403可以在设备1进入IPSec老化周期6之后任意时刻执行,同理,S404~S406可以在设备2进入IPSec老化周期5之后任意时刻执行。S401~S403和S404~S406的执行没有先后顺序。S403为S106的一种具体实现方式;S406为S110的一种具体实现方式。
一个具体的实施方式中,可以在建立密钥协商模板的IPSec老化周期(也可以记作第一个IPSec老化周期),执行方法200;进入第二个IPSec老化周期,执行方法400;进入第三个IPSec老化周期,执行方法300;进入第四个IPSec老化周期,再执行方法400;进入第五个IPSec老化周期,再执行方法300;以此类推,反复执行方法300和方法400,实现各个IPSec老化周期内IPSec密钥的获得。
对于IPSec老化周期的时长相同的两个设备,通过上述方法200、方法300和方法400的执行,能够快速、有效的生成各IPSec老化周期对应的IPSec密钥,为设备之间的安全通信提供了数据基础。
下面图11所示的实施例中,将以指示信息为0、1交替的滴答值为例具体介绍本申请实施例如何实现上述方法200,方法300以及方法400。
在另一些可能的实现方式中,设备1的每个IPSec老化周期均为时长1,设备的每个IPSec老化周期均为时长2,但时长1和时长2不相等。
作为一个示例,在设备1的IPSec老化周期4和设备2的IPSec老化周期3,该IPSec老化周期4和IPSec老化周期2间隔奇数个IPSec老化周期,IPSec老化周期4对应的指示信息4和指示信息2相同,该IPSec老化周期3和IPSec老化周期1也间隔奇数个IPSec老化周期,IPSec老化周期3对应的指示信息3和指示信息1相同。本申请实施例还提供了一种安全通信的方法500,参见图9所示,该方法500例如可以包括:
S501,在设备2的IPSec老化周期3内,设备2向设备1发送报文3,该报文3中携带指示信息3和公钥3,其中,指示信息3用于指示设备2在IPSec老化周期3内生成公私钥对的状态信息。
S502,设备1接收设备2在IPSec老化周期3内发送的报文3。
S503,设备1判断是否满足条件(也可以称之为预定的协商规则),若满足,则执行S504。
其中,该条件包括:公钥3和设备1在IPSec老化周期4内生成的私钥3均未参与过IPSec密钥的合成。
S504,设备1判断指示信息3和设备1在IPSec老化周期4内生成的指示信息4是否满足密钥协商模板的匹配条件,若满足,则执行S505。
S505,设备1根据公钥3和设备1在IPSec老化周期4内生成的私钥3,生成IPSec密钥3。
方法500还可以包括:
S506,在设备1的IPSec老化周期4内,设备1向设备2发送报文4,该报文2中携带指示信息4和公钥4,其中,指示信息4用于指示设备1在IPSec老化周期4内生成公私钥对的状态信息。
S507,设备2接收设备1在IPSec老化周期4内发送的报文4。
S508,设备2判断是否满足条件,若满足,则执行S509。
其中,该条件包括:公钥4和设备2在IPSec老化周期3内生成的私钥4均未参与过IPSec密钥的合成。
S509,设备2判断指示信息4和设备2在IPSec老化周期3内生成的指示信息3是否满足密钥协商模板的匹配条件,若满足,则执行S510。
S510,设备2根据公钥4和设备2在IPSec老化周期3内生成的私钥4,生成IPSec密钥4。S510中生成的IPSec密钥4与S505中生成的IPSec密钥3相同。
作为再一个示例,在设备1的IPSec老化周期6和设备2的IPSec老化周期5,该IPSec老化周期6和IPSec老化周期2间隔偶数个IPSec老化周期,IPSec老化周期6对应的指示信息6和指示信息2不相同,该IPSec老化周期5和IPSec老化周期1也间隔偶数个IPSec老化周期,IPSec老化周期5对应的指示信息5和指示信息1不相同。本申请实施例还提供了一种安全通信的方法600,参见图10所示,该方法600例如可以包括:
S601,在设备2的IPSec老化周期5内,设备2向设备1发送报文5,该报文5中携带指示信息5和公钥5,其中,指示信息5用于指示设备2在IPSec老化周期5内生成公私钥对的状态信息。
S602,设备1接收设备2在IPSec老化周期5内发送的报文5。
S603,设备1判断是否满足条件,若满足,则执行S604。
其中,该条件包括:公钥5和设备1在IPSec老化周期6内生成的私钥5均未参与过IPSec密钥的合成。
S604,设备1判断指示信息5和设备1在IPSec老化周期6内生成的指示信息6是否满足密钥协商模板的匹配条件,若满足,则执行S605。
S605,设备1根据公钥5和设备1在IPSec老化周期6内生成的私钥5,生成IPSec密钥5。
方法600还可以包括:
S606,在设备1的IPSec老化周期6内,设备1向设备2发送报文6,该报文2中携带指示信息6和公钥6,其中,指示信息6用于指示设备1在IPSec老化周期6内生成公私钥对的状态信息。
S607,在设备2的IPSec老化周期5内,设备2接收设备1在IPSec老化周期6内发送的报文6。
S608,设备2判断是否满足条件,若满足,则执行S609。
其中,该条件包括公钥6和设备2在IPSec老化周期5内生成的私钥6均未参与过IPSec密钥的合成。
S609,设备2判断指示信息6和设备2在IPSec老化周期5内生成的指示信息5是否符合密钥协商模板,若符合,则执行S610。
S610,设备2根据公钥6和设备2在IPSec老化周期5内生成的私钥6,生成IPSec密钥6。S610中生成的IPSec密钥6与S605中生成的IPSec密钥5相同。
一个具体的实施方式中,可以在建立密钥协商模板的IPSec老化周期(也可以记作第一个IPSec老化周期),执行方法200;IPSec老化周期较长的设备进入第二个IPSec老化周期,执行方法600;IPSec老化周期较长的设备进入第三个IPSec老化周期,执行方法500;IPSec老化周期较长的设备进入第四个IPSec老化周期,再执行方法600;IPSec老化周期较长的设备进入第五个IPSec老化周期,再执行方法500;以此类推,反复执行方法500和方法600,实现各个IPSec老化周期内IPSec密钥的获得。
对于IPSec老化周期的时长不相同的两个设备,通过上述方法200、方法500和方法600的执行,能够快速、有序的生成各IPSec老化周期对应的IPSec密钥,为设备之间的安全通信提供了数据基础。
在下面图13所示的实施例中,将以指示信息为0、1交替的滴答值为例介绍本申请实施例如何实现上述方法200,方法500以及方法600。
为了更加清楚和详细的介绍本申请实施例,下面结合图11和图13,以指示信息为滴答值,IPSec密钥为加密密钥为例,通过两个示例对本申请实施例中的IPSec密钥的协商过程进行具体说明。
该场景中,设备1和设备2为通信对等体,设备1和设备3也为通信对等体。假设设备1和设备2的IPSec老化周期为24小时,设备3的老化周期为10小时;从建立连接开始,设备1和设备2的滴答值0、1交替,设备3的滴答值1、0交替。下述示例一介绍设备1和设备2在前2个IPSec老化周期内IPSec密钥的协商,下述示例二介绍设备1和设备3在设备1前2个IPSec老化周期内IPSec密钥的协商。
示例一:参见图11所示,协商IPSec密钥的方法1100可以包括第一个IPSec老化周期内获得IPSec密钥的过程和第二个IPSec老化周期内获得IPSec密钥的过程。
在第一个IPSec老化周期内,获得IPSec密钥的过程包括:
S1101,设备1向设备2发送KeepAlive报文1,该KeepAlive报文1中携带滴答值0。
S1102,设备2向设备1发送KeepAlive报文2,该KeepAlive报文2中携带滴答值0。
S1103,设备1根据滴答值0和自己当前的滴答值0,生成密钥协商模板;设备2根据滴答值0和自己当前的滴答值0,生成密钥协商模板。
S1104,设备1向设备2发送BGP消息0,该BGP消息0中携带第一个IPSec老化周期内的滴答值0和公钥H1;设备2向设备1发送该BGP消息0’,该BGP消息0’中携带第一个IPSec老化周期内的滴答值0和公钥H2。
S1105,设备1根据自己生成的私钥D1和接收到的公钥H2,合成加密密钥K1。
S1106,设备2根据根据自己生成的私钥D2和接收到的公钥H1,合成加密密钥K2。
K1和K2相同。
S1107,设备1和设备2之间传输通过加密密钥加密的数据报文1。
在第一个IPSec老化周期持续24小时后,进入到第二个IPSec老化周期,需要协商确定新的IPSec密钥,在第二个IPSec老化周期内协商IPSec密钥的过程例如可以包括:
S1108,设备1向设备2发送BGP消息1,该BGP消息1中携带滴答值1和公钥H3;设备2向设备1发送BGP消息2,该BGP消息2中携带滴答值1和公钥H4。
S1109,设备1根据自己生成的私钥D3和接收到的公钥H4,合成加密密钥K3。
S1110,设备2根据自己生成的私钥D4和接收到的公钥H3,合成加密密钥K4。
K3和K4相同。
S1111,设备1和设备2之间传输通过加密密钥加密的数据报文2。
在一个具体的实施方式中,在S1108之后,S1109之前,所述方法还可以包括设备1根据接收到的滴答值1和自己当前的滴答值1,确定满足密钥协商模板的匹配条件,然后执行S1109。
在一个具体的实施方式中,该S1111中,设备1和设备2之间也可以传输通过K3或K4进行安全保护的数据报文2。
如此,在两个设备IPSec老化周期的时长相同,且更新周期一致的情况下,可以在协商IPSec密钥之前先建立密钥协商模板,再在需要协商IPSec密钥时基于该密钥协商模板快速、高效的协商IPSec密钥,使得网络中基于IPSec进行安全、快速的报文传输成为了可能。
示例二:参见图12所示,为设备1和设备3之间的IPSec老化周期的关系图。参见图13,协商IPSec密钥的方法1300中包括了设备1的第一个IPSec老化周期内获得IPSec密钥的过程和第二个IPSec老化周期内获得IPSec密钥的过程。方法1300包括:
S1301,设备1向设备3发送KeepAlive报文3,该KeepAlive报文3中携带滴答值0。
S1302,设备3向设备1发送KeepAlive报文4,该KeepAlive报文4中携带滴答值1。
S1303,设备1根据滴答值1和自己当前的滴答值0,生成密钥协商模板,设备3根据滴答值0和自己当前的滴答值1,生成密钥协商模板。
S1304,设备1向设备3发送BGP消息0,该BGP消息0中携带第一个IPSec老化周期内的滴答值0和公钥H1;设备3向设备1发送该BGP消息0’,该BGP消息0’中携带第一个IPSec老化周期内的滴答值1和公钥H2。
S1305,设备1根据自己生成的私钥D1和接收到的公钥H2,合成加密密钥K1。
S1306,设备3根据自己生成的私钥D2和接收到的公钥H1,合成加密密钥K2。
K1和K2相同。
在一个具体的实施方式中,需要说明的是,S1306之后在设备1和设备3之间交互的BGP消息以及数据报文,均可以采用加密密钥K1或K2进行加密实现安全保护。
在设备3的第一个IPSec老化周期持续10小时后,进入该设备3的第二个IPSec老化周期,本申请实施例包括:
S1307,设备3向设备1发送BGP消息3,该BGP消息3中携带滴答值0和公钥H3。
由于当前不符合交叉密钥协商模板,以及设备1的私钥D1已经参与过IPSec密钥的合成,设备1不进行新的IPSec密钥的合成,继续使用K1或K2作为共享的加密密钥。
在设备3的第二个IPSec老化周期持续10小时后,进入该设备3的第三个IPSec老化周期,此时,本申请实施例包括:
S1308,设备3向设备1发送BGP消息4,该BGP消息4中携带滴答值1和公钥H4。
虽然符合交叉密钥协商模板,但设备1的私钥D1已经参与过IPSec密钥的合成,设备1仍然不进行新的IPSec密钥的合成,继续使用K1或K2作为共享的IPSec密钥。
在设备1的第一个IPSec老化周期持续24小时时,此时,设备3的第三个IPSec老化周期进行了4小时,此时,进入到设备1的第二个IPSec老化周期,获得IPSec密钥的过程例如可以包括:
S1309,设备1向设备3发送BGP消息5,该BGP消息5中携带滴答值1和公钥H5。
虽然设备3的私钥D4未经参与过IPSec密钥的合成,但是不符合交叉密钥协商模板,所以,设备3不进行新的IPSec密钥的合成,继续使用K1或K2作为共享的加密密钥。
在设备3的第三个IPSec老化周期持续10小时后,进入该设备3的第四个IPSec老化周期,此时,本申请实施例包括:
S1310,设备3向设备1发送BGP消息6,该BGP消息6中携带滴答值0和公钥H6。
S1311,设备1根据滴答值0和自己当前的滴答值1,确定符合密钥协商模板,且符合密钥合成条件,根据自己生成的私钥D5和接收到的公钥H6,合成加密密钥K3。
该密钥合成条件(也即上述实施例中的“条件”,也可以称之为预定的协商规则),具体可以包括:私钥D5为设备1最新生成的私钥,公钥H6为从设备3接收到的最新的公钥,且私钥D5和公钥H6均未参与过加密密钥的合成。
在设备3的第四个IPSec老化周期持续10小时后,进入该设备3的第五个IPSec老化周期,本申请实施例包括:
S1312,设备3向设备1发送BGP消息7,该BGP消息7中携带滴答值1和公钥H7。
由于不符合交叉密钥协商模板,以及设备1的私钥D5已经参与过IPSec密钥的合成,设备1不进行新的IPSec密钥的合成,继续使用K1或K2作为共享的加密密钥,或者继续使用K3作为共享的加密密钥。
在设备1的第二个IPSec老化周期持续24小时时,此时,设备3的第五个IPSec老化周期进行了8小时,此时,进入到设备1的第三个IPSec老化周期,协商IPSec密钥的过程例如可以包括:
S1313,设备1向设备3发送BGP消息8,该BGP消息8中携带滴答值0和公钥H8。
S1314,设备3根据滴答值0和自己当前的滴答值1,确定符合密钥协商模板,且符合密钥合成条件,根据自己生成的私钥D7和接收到的公钥H8,合成加密密钥K4。
该密钥合成条件,具体可以包括:私钥D7为设备3最新生成的私钥,公钥H8为从设备1接收到的最新的公钥,且私钥D7和公钥H8均未参与过加密密钥的合成。
可以理解的是,在该设备3的第五个IPSec老化周期的剩余2小时内,设备1和设备3之间传输通过K1、K2、K3或K4中的任意一个加密密钥进行安全保护的数据报文3。
如此,在两个设备IPSec老化周期时长不相同的情况下,可以在协商IPSec密钥之前先建立密钥协商模板,再在需要协商IPSec密钥时基于该密钥协商模板快速、高效的协商IPSec密钥,使得网络中基于IPSec进行安全、快速的数据传输成为了可能。
图14示出了本申请实施例中一种安全通信的方法1400的流程示意图,该方法1400应用在包括第一设备和第二设备的场景中,以第一设备为执行主体,该安全通信的方法1400例如可以包括:
步骤1401,在第一设备的第二互联网协议安全IPSec老化周期内,接收第二设备发送的第一指示信息,该第一指示信息用于标识在所述第二设备的第一IPSec老化周期内生成的公私钥对所对应的状态信息;
步骤1402,根据第一指示信息和第二指示信息,建立密钥协商模板,其中,所述第二指示信息用于标识所述第一设备在所述第二IPSec老化周期内生成的公私钥对的状态信息;
步骤1403,根据密钥协商模板,生成第一IPSec密钥,该第一IPSec密钥用于保护第一设备和第二设备在第一时间段内传输的数据。
作为一个示例,第一设备可以是方法100中的设备1,第二设备可以是方法100中的设备2,那么,第一指示信息可以是方法100中的指示信息1,第二指示信息即为方法100中的指示信息2,第二IPSec老化周期为IPSec老化周期2,第一IPSec老化周期为IPSec老化周期1,第一IPSec密钥即为IPSec密钥1。
作为另一个示例,第一设备可以是方法100中的设备2,第二设备可以是方法100中的设备1,那么,第一指示信息可以是方法100中的指示信息2,第二指示信息即为方法100中的指示信息1,第二IPSec老化周期为IPSec老化周期1,第一IPSec老化周期为IPSec老化周期2,第一IPSec密钥即为IPSec密钥1。
其中,第一指示信息与第二指示信息相同,密钥协商模板为平行密钥协商模板;或者,第一指示信息与第二指示信息不同,密钥协商模板为交叉密钥协商模板。
在一些可能的实现方式中,本申请实施例中S1401“接收第二设备发送的第一指示信息”,可以包括:接收第二设备发送的保活KeepAlive报文或双向转发检测BFD报文,第一指示信息携带在KeepAlive报文或BFD报文中。
在另一些可能的实现方式中,方法1400还包括:在第一设备的第四IPSec老化周期内,接收第二设备在第三IPSec老化周期内发送的第一报文,第一报文携带第三指示信息和所述第二设备在所述第三IPSec老化周期内生成的第一公钥,其中,第三指示信息用于指示所述第一公钥所对应的状态信息,第三IPSec老化周期为第一IPSec老化周期或者第三IPSec老化周期与第一IPSec老化周期之间间隔N个老化周期,N为正奇数,第三指示信息与第一指示信息相同。那么,方法1400中S1403“根据密钥密钥协商模板,生成第一IPSec密钥”,可以包括:根据密钥协商模板、第三指示信息、第一公钥、第一设备在第四IPSec老化周期内生成的第一私钥和第四指示信息,生成第一IPSec密钥,其中,第四指示信息用于指示第四IPSec老化周期,第四IPSec老化周期为第二IPSec老化周期或者第四IPSec老化周期与第二IPSec老化周期之间间隔M个老化周期,M为正奇数,第四指示信息与第二指示信息相同。
需要说明的是,当方法1400用于实现上述图6所对应的方法200、图7所对应的方法300或图9所对应的方法500时,第一设备例如可以是上述方法实施例中的设备1,第二设备是上述方法实施例中的设备2,那么,第三指示信息即指示信息3,第四指示信息即为指示信息4,第三IPSec老化周期为IPSec老化周期3,第四IPSec老化周期为IPSec老化周期4,第一报文为上述方法实施例中的报文1或报文3。或者,第一设备例如也可以是上述方法200、300或500中的设备2,第二设备即为对应的设备1,那么,第三指示信息即指示信息4,第四指示信息即为指示信息3,第三IPSec老化周期为IPSec老化周期4,第四IPSec老化周期为IPSec老化周期3,第一报文为上述方法实施例中的报文2或报文4。
可以理解的是,该实现方式的相关描述以及达到的效果可以参见方法200、方法300或方法500中的相关说明。具体而言,当第一设备的每个IPSec老化周期均为第一时长,第二设备的每个IPSec老化周期均为第二时长,且第一时长和第二时长相等时,该实现方式可以参见方法200或方法300;当第一时长和第二时长不相等时,则可以参见方法500,其中,S1403中生成第一IPSec密钥,具体为:满足以下条件时,生成第一IPSec密钥,该条件包括:参与生成第一IPSec密钥的第一公钥和第一私钥均未参与过生成除第一IPSec密钥以外的其它IPSec密钥。
在再一些可能的实现方式中,该方法1400还可以包括:在第一设备的第六IPSec老化周期内,接收第二设备发送的第二报文,第二报文中携带第二设备在第五IPSec老化周期内的生成的第二公钥和第五指示信息,其中,第五指示信息指示所述第二公钥所对应的状态信息,第五IPSec老化周期与第一IPSec老化周期之间间隔偶数个IPSec老化周期;根据密钥协商模板、第二公钥、第五指示信息、第一设备在第六IPSec老化周期内生成的第二私钥和第六指示信息,生成第二IPSec密钥,第六指示信息用于指示所述第二私钥所对应的状态信息,第二IPSec密钥用于保护第一设备和第二设备在第二时间段内传输的数据,第六IPSec老化周期与第二IPSec老化周期之间间隔偶数个IPSec老化周期。
需要说明的是,当方法1400用于实现上述图8所对应的方法400或图10所对应的方法600时,第一设备例如可以是上述方法实施例中的设备1,第二设备是上述方法实施例中的设备2,那么,第五指示信息即指示信息5,第六指示信息即为指示信息6,第五IPSec老化周期为IPSec老化周期5,第六IPSec老化周期为IPSec老化周期6,第二报文为上述方法实施例中的报文5。或者,第一设备例如也可以是上述方法实施例中的设备2,第二设备是上述方法实施例中的设备1,那么,第五指示信息即指示信息6,第六指示信息即为指示信息5,第五IPSec老化周期为IPSec老化周期6,第六IPSec老化周期为IPSec老化周期5,第二报文为上述方法实施例中的报文6。
可以理解的是,该实现方式的相关描述以及达到的效果可以参见方法400或方法600中的相关说明。具体而言,当第一设备的每个IPSec老化周期均为第一时长,第二设备的每个IPSec老化周期均为第二时长,且第一时长和第二时长相等时,该实现方式可以参见方法400;当第一时长和第二时长不相等时,则可以参见方法600,其中,“生成第二IPSec密钥”,具体为:满足以下条件时,生成第二IPSec密钥,该条件包括:参与生成第二IPSec密钥的第二公钥和第二私钥均未参与过生成除第二IPSec密钥以外的其它IPSec密钥。
可以理解的是,第一报文和第二报文中还可以包括下述安全参数中的至少一个:DH组、封装模式、加密算法和认证算法。
可以理解的是,第一报文和第二报文均可以是边界网关协议BGP消息或用户数据报协议UDP报文。
其中,方法1400中的第一IPSec密钥可以是加密密钥或认证密钥;第二IPSec密钥也可以是加密密钥或认证密钥。
需要说明的是,本申请实施例中的方法1400,具体实现方式以及达到的效果可以参见上述图2、图6-图11和图13所示实施例中的相关说明。
图15示出了本申请实施例中另一种安全通信的方法1500的流程示意图,该方法1500应用在包括第一设备和第二设备的场景中,以第二设备为执行主体,该安全通信的方法1500例如可以包括:
S1501,在第二设备的第一互联网协议安全IPSec老化周期内,生成第一指示信息,第一指示信息用于指示所述第二设备在第一IPSec老化周期内生成的公私钥对所对应的状态信息;
S1502,向第一设备发送第一指示信息。
可以理解的是,第一设备可以是方法100中的设备1,第二设备可以是方法100中的设备2,那么,第一指示信息可以是方法100中的指示信息1,第一IPSec老化周期为IPSec老化周期1。第一设备也可以是方法100中的设备2,第二设备是方法100中的设备1,那么,第一指示信息可以是方法100中的指示信息2,第一IPSec老化周期为IPSec老化周期2。
在一些可能的实现方式中,本申请实施例中S1501“向第一设备发送第一指示信息,可以包括:向第一设备发送保活KeepAlive报文或双向转发检测BFD报文,第一指示信息携带在KeepAlive报文或BFD报文中。
在另一些可能的实现方式中,方法1500还包括:在第一IPSec老化周期内,接收第一设备发送的第二指示信息,第二指示信息用于指示第一设备在第二IPSec老化周期内生成的公私钥对所对应的状态信息;根据第二指示信息和第一指示信息,建立密钥协商模板;根据密钥协商模板,生成第一IPSec密钥,第一IPSec密钥用于保护第一设备和第二设备在第一时间段内传输的数据。其中,第一指示信息与第二指示信息相同,密钥协商模板为平行密钥协商模板;或者,第一指示信息与第二指示信息不同,密钥协商模板为交叉密钥协商模板。
可以理解的是,当方法1500用于实现上述图2所对应的方法100时,第一设备例如可以是方法100中的设备1,第二设备可以是方法100中的设备2,那么,第一指示信息可以是方法100中的指示信息1,第二指示信息即为方法100中的指示信息2,第二IPSec老化周期为IPSec老化周期2,第一IPSec老化周期为IPSec老化周期1,第一IPSec密钥即为IPSec密钥1。当第一设备可以是方法100中的设备2,第二设备可以是方法100中的设备1,那么,第一指示信息可以是方法100中的指示信息2,第二指示信息即为方法100中的指示信息1,第二IPSec老化周期为IPSec老化周期1,第一IPSec老化周期为IPSec老化周期2,第一IPSec密钥即为IPSec密钥1。
在再一些可能的实现方式中,方法1500还包括:在第二设备的第三IPSec老化周期内,向第一设备发送第一报文,第一报文携带第三指示信息以及所述第二设备在所述第三IPSec老化周期内生成的第一公钥,其中,所述第三指示信息用于指示所述第一公钥所对应的状态信息,第三IPSec老化周期为第一IPSec老化周期或者第三IPSec老化周期与第一IPSec老化周期之间间隔N个老化周期,N为正奇数,第三指示信息与第一指示信息相同。
该实现方式下,“根据密钥协商模板,生成第一IPSec密钥”,可以包括:在第二设备的第三IPSec老化周期内,接收第一设备发送的第二报文,第二报文携带第一设备在第四IPSec老化周期内生成的第二公钥和第四指示信息,第四指示信息指示第二公钥所对应的状态信息,第四IPSec老化周期为第二IPSec老化周期或者第四IPSec老化周期与第二IPSec老化周期之间间隔M个老化周期,M为正奇数,第四指示信息与第二指示信息相同;根据密钥协商模板、第四指示信息、第二公钥、第二设备在第三IPSec老化周期内生成的第三指示信息和第一私钥,生成第一IPSec密钥。
其中,当方法1500用于实现上述图6所对应的方法200、图7所对应的方法300或图9所对应的方法500时,第一设备例如可以是上述方法实施例中的设备1,第二设备是上述方法实施例中的设备2,那么,第三指示信息即指示信息3,第四指示信息即为指示信息4,第三IPSec老化周期为IPSec老化周期3,第四IPSec老化周期为IPSec老化周期4,第一报文为上述方法实施例中的报文1或报文3,第二报文为上述方法实施例中的报文2或报文4。或者,第一设备例如也可以是上述方法实施例中的设备2,第二设备是上述方法实施例中的设备1,那么,第三指示信息即指示信息4,第四指示信息即为指示信息3,第三IPSec老化周期为IPSec老化周期4,第四IPSec老化周期为IPSec老化周期3,第一报文为上述方法实施例中的报文2或报文4,第二报文为上述方法实施例中的报文1或报文3。
可以理解的是,该实现方式的相关描述以及达到的效果可以参见方法200、方法300或方法500中的相关说明。具体而言,当第一设备的每个IPSec老化周期均为第一时长,第二设备的每个IPSec老化周期均为第二时长,且第一时长和第二时长相等时,该实现方式可以参见方法200或方法300;当第一时长和第二时长不相等时,则可以参见方法500,其中,“生成第一IPSec密钥”,具体为:满足以下条件时,生成第一IPSec密钥,该条件包括:参与生成第一IPSec密钥的第二公钥和第一私钥均未参与过生成除第一IPSec密钥以外的其它IPSec密钥。
再又一些可能的实现方式中,方法1500还包括:在第二设备的第五IPSec老化周期内,向第一设备发送第三报文,第三报文中携带所述第二设备在所述第五IPSec老化周期内生成的第三公钥和第五指示信息,第五指示信息指示所述第三公钥所对应的状态信息,第五IPSec老化周期与第一IPSec老化周期之间间隔偶数个IPSec老化周期。而且,该方法1500还包括:在第二设备的五IPSec老化周期内,接收第一设备发送的第四报文,第四报文携带第一设备在第六IPSec老化周期内生成的第四公钥和第六指示信息,第六指示信息指示所述第四公钥所对应的状态信息,第六IPSec老化周期与第二IPSec老化周期之间间隔偶数个IPSec老化周期,第五IPSec老化周期与第一IPSec老化周期之间间隔偶数个IPSec老化周期;根据密钥协商模板,第四公钥,第六指示信息,第二设备在第五IPSec老化周期内生成的第二私钥和第五指示信息,生成第二IPSec密钥,第三指示信息指示第五IPSec老化周期。
需要说明的是,当方法1500用于实现上述图8所对应的方法400或图10所对应的方法600时,第一设备例如可以是上述方法实施例中的设备1,第二设备是上述方法实施例中的设备2,那么,第五指示信息即指示信息5,第六指示信息即为指示信息6,第五IPSec老化周期为IPSec老化周期5,第六IPSec老化周期为IPSec老化周期6,第三报文为上述方法实施例中的报文5,第四报文为上述实施例中的报文6。或者,第一设备例如也可以是上述方法实施例中的设备2,第二设备是上述方法实施例中的设备1,那么,第五指示信息即指示信息6,第六指示信息即为指示信息5,第五IPSec老化周期为IPSec老化周期6,第六IPSec老化周期为IPSec老化周期5,第三报文为上述方法实施例中的报文6,第四报文为上述实施例中的报文5。
可以理解的是,该实现方式的相关描述以及达到的效果可以参见方法400或方法600中的相关说明。具体而言,当第一设备的每个IPSec老化周期均为第一时长,第二设备的每个IPSec老化周期均为第二时长,且第一时长和第二时长相等时,该实现方式可以参见方法400;当第一时长和第二时长不相等时,则可以参见方法600,其中,“生成第二IPSec密钥”,具体为:满足以下条件时,生成第二IPSec密钥,该条件包括:参与生成第二IPSec密钥的第四公钥和第二私钥均未参与过生成除第二IPSec密钥以外的其它IPSec密钥。
可以理解的是,第一报文和第三报文中还可以包括第二设备的下述安全参数中的至少一个:DH组、封装模式、加密算法和认证算法。第二报文和第四报文中还可以包括第一设备的下述安全参数中的至少一个:DH组、封装模式、加密算法和认证算法。
可以理解的是,第一报文~第四报文均可以是边界网关协议BGP消息或用户数据报协议UDP报文。
其中,方法1500中的第一IPSec密钥可以是加密密钥或认证密钥;第二IPSec密钥也可以是加密密钥或认证密钥。
需要说明的是,本申请实施例中的方法1500,具体实现方式以及达到的效果可以参见上述图2、图6-图11和图13所示实施例中的相关说明。
此外,本申请实施例还提供了一种第一设备1600,参见图16所示。该第一设备1600包括接收单元1601、处理单元1602和发送单元1603。其中,接收单元1601用于执行上述图2、图6-图11、图13所示实施例中设备1执行的接收操作,以及图14所示实施例中的接收操作;发送单元1603用于执行上述图2、图6-图11、图13所示实施例中设备1执行的发送操作,以及图14所示实施例中的发送操作;处理单元1602用于执行上述图2、图6-图11、图13所示实施例中设备1执行的除接收操作和发送操作以外的其他操作,以及图14所示实施例中的除接收操作和发送操作以外的其他操作,例如:处理单元1602可以执行图2中实施例中的操作:设备1根据设备1根据指示信息1和指示信息2,建立密钥协商模板。
此外,本申请实施例还提供了一种第二设备1700,参见图17所示。该第二设备1700包括接收单元1701、处理单元1702和发送单元1703。其中,接收单元1701用于执行上述图2、图6-图11所示实施例中设备2执行的接收操作,图13所示实施例中设备3执行的接收操作,以及图15所示实施例中接收操作;发送单元1703用于执行上述图2、图6-图11所示实施例中设备2执行的发送操作,图13所示实施例中设备3执行的发送操作,以及图15所示实施例中发送操作;处理单元1702用于执行上述图2、图6-图11所示实施例中设备2执行的除接收操作和发送操作以外的其他操作,图13所示实施例中设备3执行的除接收操作和发送操作以外的其他操作,以及图15所示实施例中除接收操作和发送操作以外的其他操作,例如:处理单元1702可以执行图2中实施例中的操作:在设备2的IPSec老化周期1内,设备2生成指示信息1,该指示信息1用于指示IPSec老化周期1。
此外,本申请实施例还提供了一种第一设备1800,参见图18所示。该第一设备1800包括通信接口1801和与通信接口1801连接的处理器1802。其中,通信接口1801用于执行前述用于执行上述图2、图6-图11、图13所示实施例中设备1执行的接收操作和发送操作,以及图14所示实施例中的接收操作和发送操作;处理器1802用于执行上述图2、图6-图11、图13所示实施例中设备1执行的除了接收操作和发送操作之外的其他操作,以及图14所示实施例中的除了接收操作和发送操作之外的其他操作。例如:处理器1802可以执行图2中实施例中的操作:设备1根据设备1根据指示信息1和指示信息2,建立密钥协商模板。
此外,本申请实施例还提供了一种第二设备1900,参见图19所示。该第二设备1900包括通信接口1901和与通信接口1901连接的处理器1902。其中,通信接口1901用于执行前述用于执行上述图2、图6-图11所示实施例中设备2执行的接收操作和发送操作,图13所示实施例中设备3执行的接收操作和发送操作,以及图15所示实施例中的接收操作和发送操作;处理器1902用于执行上述图2、图6-图11所示实施例中设备2执行的除了接收操作和发送操作之外的其他操作,图13所示实施例中设备3执行的除了接收操作和发送操作之外的其他操作,以及图15所示实施例中的除了接收操作和发送操作之外的其他操作。例如:处理器1902可以执行图2中实施例中的操作:在设备2的IPSec老化周期1内,设备2生成指示信息1,该指示信息1用于指示IPSec老化周期1。
此外,本申请实施例还提供了一种第一设备2000,参见图20所示。该第一设备2000包括存储器2001和处理器2002。其中,存储器2001用于存储程序代码;处理器2002用于运行所述程序代码中的指令,使得该第一设备2000执行以上图2、图6-图11和图13所示实施例中设备1侧执行的方法,以及图14所示实施例中提供的方法。
此外,本申请实施例还提供了一种第二设备2100,参见图21所示。该第一设备2100包括存储器2101和处理器2102。其中,存储器2101用于存储程序代码;处理器2102用于运行所述程序代码中的指令,使得该第二设备2100执行以上图2、图6-图11所示实施例中设备2侧执行的方法,图13所示实施例中设备3侧执行的方法,以及图15所示实施例中提供的方法。
可以理解的是,上述实施例中,处理器可以是中央处理器(英文: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);存储器还可以包括上述种类的存储器的组合。存储器可以是指一个存储器,也可以包括多个存储器。在一个具体实施方式中,存储器中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块,处理模块和接收模块。处理器执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器根据所述软件模块的指示而执行的操作。处理器执行存储器中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行组合式设备获远程证明设备可以执行的全部操作。
可以理解的是,上述实施例中,第一设备1800的通信接口1801,具体可以被用作第一设备1600中的接收单元1601和发送单元1603,实现第一设备和第二设备之间的数据通信。同理,第二设备1900的通信接口1901,具体可以被用作第二设备1700中的接收单元1701和发送单元1703,实现第一设备和第二设备之间的数据通信。
此外,本申请实施例还提供了一种通信系统2200,参见图22所示。该通信系统2200包括第一设备2201以及第二设备2202,其中,第一设备2201具体可以是上述第一设备1600、第一设备1800或第一设备2000,第二设备2202具体可以是上述第二设备1700、第二设备1900或第二设备2100。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上图2、图6-图11、图13-图15所示实施例中的所述安全通信的方法。
此外,本申请实施例还提供了计算机程序产品,当其在计算机上运行时,使得计算机执行前述图2、图6-图11、图13-图15所示实施例中的所述安全通信的方法。
需要说明的是,本申请实施例中的“设备”可以是网络设备,也可以是基站、终端等其他设备,上述“设备”还可以是芯片,具体可以包括一个芯片或多个芯片。网络设备例如可以是路由器、交换机或分组传送网(英文:Packet Transport Network,简称:PTN)设备等。
本申请实施例中提到的“第一IPSec老化周期”、“第一IPSec密钥”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、设备实施例和系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置、设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (25)

1.一种安全通信的方法,其特征在于,应用于第一设备,所述方法包括:
在所述第一设备的第二互联网协议安全IPSec老化周期内,接收第二设备发送的第一指示信息,所述第一指示信息用于标识在所述第二设备的第一IPSec老化周期内生成的公私钥对所对应的状态信息;
根据所述第一指示信息和第二指示信息,建立密钥协商模板,其中,所述第二指示信息用于标识所述第一设备在所述第二IPSec老化周期内生成的公私钥对的状态信息;
根据所述密钥协商模板,生成第一IPSec密钥,所述第一IPSec密钥用于保护所述第一设备和所述第二设备在第一时间段内传输的数据。
2.根据权利要求1所述的方法,其特征在于,
所述第一指示信息与所述第二指示信息相同,所述密钥协商模板为平行密钥协商模板;或者,
所述第一指示信息与所述第二指示信息不同,所述密钥协商模板为交叉密钥协商模板。
3.根据权利要求1或2所述的方法,其特征在于,所述接收第二设备发送的第一指示信息,包括:
接收所述第二设备发送的保活KeepAlive报文或双向转发检测BFD报文,所述第一指示信息携带在所述KeepAlive报文或所述BFD报文中。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
在所述第一设备的第四IPSec老化周期内,接收所述第二设备在第三IPSec老化周期内发送的第一报文,所述第一报文携带第三指示信息和所述第二设备在所述第三IPSec老化周期内生成的第一公钥,其中,所述第三指示信息用于指示所述第一公钥所对应的状态信息,所述第三指示信息与所述第一指示信息相同。
5.根据权利要求4所述的方法,其特征在于,所述根据所述密钥协商模板,生成第一IPSec密钥,包括:
根据所述密钥协商模板、所述第三指示信息、所述第一公钥、所述第一设备在所述第四IPSec老化周期内生成的第一私钥和第四指示信息,生成所述第一IPSec密钥,其中,所述第四指示信息用于指示所述第一私钥所对应的状态信息,所述第四指示信息与所述第二指示信息相同。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述方法还包括:
在所述第一设备的第六IPSec老化周期内,接收所述第二设备发送的第二报文,所述第二报文中携带所述第二设备在第五IPSec老化周期内的生成的第二公钥和第五指示信息,其中,所述第五指示信息指示所述第二公钥所对应的状态信息;
根据所述密钥协商模板、所述第二公钥、所述第五指示信息、所述第一设备在所述第六IPSec老化周期内生成的第二私钥和第六指示信息,生成第二IPSec密钥,所述第六指示信息用于指示所述第二私钥所对应的状态信息,所述第二IPSec密钥用于保护所述第一设备和所述第二设备在第二时间段内传输的数据。
7.根据权利要求4-6任意一项所述的方法,其特征在于,所述第一报文中还包括下述参数中的至少一个:DH组、封装模式、加密算法和认证算法。
8.根据权利要求4-7任意一项所述的方法,其特征在于,所述第一报文为边界网关协议BGP消息或用户数据报协议UDP报文。
9.根据权利要求1-8任意一项所述的方法,其特征在于,所述第一IPSec密钥为加密密钥或认证密钥。
10.根据权利要求1-9任意一项所述的方法,其特征在于,所述第一设备的每个IPSec老化周期均为第一时长,所述第二设备的每个IPSec老化周期均为第二时长,所述第一时长和所述第二时长不相等,所述生成第一IPSec密钥,具体包括:
满足以下条件时,生成所述第一IPSec密钥,所述条件包括:参与生成所述第一IPSec密钥的第一公钥和第一私钥均未参与过生成除所述第一IPSec密钥以外的其它IPSec密钥。
11.一种安全通信的方法,其特征在于,应用于第二设备,所述方法包括:
在所述第二设备的第一互联网协议安全IPSec老化周期内,生成第一指示信息,所述第一指示信息用于指示所述第二设备在所述第一IPSec老化周期内生成的公私钥对所对应的状态信息;
向第一设备发送所述第一指示信息。
12.根据权利要求11所述的方法,其特征在于,所述向第一设备发送所述第一指示信息,包括:
向所述第一设备发送保活KeepAlive报文或双向转发检测BFD报文,所述第一指示信息携带在所述KeepAlive报文或所述BFD报文中。
13.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
在所述第一IPSec老化周期内,接收所述第一设备发送的第二指示信息,所述第二指示信息用于指示所述第一设备在第二IPSec老化周期内生成的公私钥对所对应的状态信息;
根据所述第二指示信息和所述第一指示信息,建立密钥协商模板;
根据所述密钥协商模板,生成第一IPSec密钥,所述第一IPSec密钥用于保护所述第一设备和所述第二设备在第一时间段内传输的数据。
14.根据权利要求13所述的方法,其特征在于,
所述第一指示信息与所述第二指示信息相同,所述密钥协商模板为平行密钥协商模板;或者,
所述第一指示信息与所述第二指示信息不同,所述密钥协商模板为交叉密钥协商模板。
15.根据权利要求11-14任意一项所述的方法,其特征在于,所述方法还包括:
在所述第二设备的第三IPSec老化周期内,向所述第一设备发送第一报文,所述第一报文携带第三指示信息以及所述第二设备在所述第三IPSec老化周期内生成的第一公钥,其中,所述第三指示信息用于指示所述第一公钥所对应的状态信息,所述第三指示信息与所述第一指示信息相同。
16.根据权利要求13-15任意一项所述的方法,其特征在于,所述根据所述密钥协商模板,生成第一IPSec密钥,包括:
在所述第二设备的第三IPSec老化周期内,接收所述第一设备发送的第二报文,所述第二报文携带所述第一设备在第四IPSec老化周期内生成的第二公钥和第四指示信息,所述第四指示信息指示所述第二公钥所对应的状态信息,所述第四指示信息与所述第二指示信息相同;
根据所述密钥协商模板、所述第四指示信息、所述第二公钥、所述第二设备在所述第三IPSec老化周期内生成的第三指示信息和第一私钥,生成所述第一IPSec密钥,所述第三指示信息指示所述第一私钥所对应的状态信息。
17.根据权利要求11-16任意一项所述的方法,其特征在于,所述方法还包括:
在所述第二设备的第五IPSec老化周期内,向所述第一设备发送第三报文,所述第三报文中携带所述第二设备在所述第五IPSec老化周期内生成的第三公钥和第五指示信息,所述第五指示信息指示所述第三公钥所对应的状态信息。
18.根据权利要求13-17任意一项所述的方法,其特征在于,所述方法还包括:
在所述第二设备的五IPSec老化周期内,接收所述第一设备发送的第四报文,所述第四报文携带所述第一设备在第六IPSec老化周期内生成的第四公钥和第六指示信息,所述第六指示信息指示所述第四公钥所对应的状态信息;
根据所述密钥协商模板,所述第四公钥,所述第六指示信息,所述第二设备在所述第五IPSec老化周期内生成的第二私钥和第五指示信息,生成第二IPSec密钥,所述第五指示信息指示所述第二私钥所对应的状态信息。
19.根据权利要求13-18任意一项所述的方法,其特征在于,所述第一设备的每个IPSec老化周期均为第一时长,所述第二设备的每个IPSec老化周期均为第二时长,所述第一时长和所述第二时长不相等,所述生成第一IPSec密钥,具体包括:
满足以下条件时,生成所述第一IPSec密钥,所述条件包括:参与生成所述第一IPSec密钥的第二公钥和第一私钥均未参与过生成除所述第一IPSec密钥以外的其它IPSec密钥。
20.一种第一设备,其特征在于,包括:
通信接口;和
与所述通信接口连接的处理器;
根据所述通信接口和所述处理器,所述第一设备用于执行前述权利要求1-10任意一项所述的方法。
21.一种第二设备,其特征在于,包括:
通信接口;和
与所述通信接口连接的处理器;
根据所述通信接口和所述处理器,所述第二设备用于执行前述权利要求11-19任意一项所述的方法。
22.一种第一设备,其特征在于,所述第一设备包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述第一设备执行以上权利要求1-10任意一项所述的方法。
23.一种第二设备,其特征在于,所述第二设备包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述第二设备执行以上权利要求11-19任意一项所述的方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1-10或者权利要求11-19任意一项所述的方法。
25.一种通信系统,其特征在于,包括权利要求20或22所述的第一设备以及权利要求21或23所述的第二设备。
CN201911253333.4A 2019-11-01 2019-12-09 一种安全通信的方法和设备 Active CN112787803B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20881986.2A EP4040752B1 (en) 2019-11-01 2020-09-23 Secure communication method and device
PCT/CN2020/116962 WO2021082813A1 (zh) 2019-11-01 2020-09-23 一种安全通信的方法和设备
US17/732,165 US20220255911A1 (en) 2019-11-01 2022-04-28 Method for Secure Communication and Device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2019110609606 2019-11-01
CN201911060960 2019-11-01

Publications (2)

Publication Number Publication Date
CN112787803A true CN112787803A (zh) 2021-05-11
CN112787803B CN112787803B (zh) 2023-01-13

Family

ID=75749942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911253333.4A Active CN112787803B (zh) 2019-11-01 2019-12-09 一种安全通信的方法和设备

Country Status (1)

Country Link
CN (1) CN112787803B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115333839A (zh) * 2022-08-15 2022-11-11 中国电信股份有限公司 数据安全传输方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645771A (zh) * 2008-08-04 2010-02-10 深圳华为通信技术有限公司 密钥同步的方法、装置和系统
CN110166426A (zh) * 2019-04-11 2019-08-23 北京媒球信息科技有限公司 信息发送终端、接收终端及其保密通信方法、存储介质
US20200120078A1 (en) * 2017-08-02 2020-04-16 Huawei Technologies Co., Ltd. Packet sending method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645771A (zh) * 2008-08-04 2010-02-10 深圳华为通信技术有限公司 密钥同步的方法、装置和系统
US20200120078A1 (en) * 2017-08-02 2020-04-16 Huawei Technologies Co., Ltd. Packet sending method and apparatus
CN110166426A (zh) * 2019-04-11 2019-08-23 北京媒球信息科技有限公司 信息发送终端、接收终端及其保密通信方法、存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115333839A (zh) * 2022-08-15 2022-11-11 中国电信股份有限公司 数据安全传输方法、系统、设备及存储介质
CN115333839B (zh) * 2022-08-15 2023-11-07 中国电信股份有限公司 数据安全传输方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN112787803B (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
EP3286896B1 (en) Scalable intermediate network device leveraging ssl session ticket extension
US20070271606A1 (en) Apparatus and method for establishing a VPN tunnel between a wireless device and a LAN
AU2008335604B2 (en) Method and system for secure exchange of data in a network
WO2018177905A1 (en) Hybrid key exchange
US9516065B2 (en) Secure communication device and method
US20220263811A1 (en) Methods and Systems for Internet Key Exchange Re-Authentication Optimization
US20160105401A1 (en) System and method for internet protocol security processing
US10015208B2 (en) Single proxies in secure communication using service function chaining
US20180176230A1 (en) Data packet transmission method, apparatus, and system, and node device
CN113973001A (zh) 一种认证密钥的更新方法及装置
CN102904792B (zh) 业务承载的方法及路由器
CN108924157B (zh) 一种基于IPSec VPN的报文转发方法及装置
CN112787803B (zh) 一种安全通信的方法和设备
US20190281530A1 (en) X2 service transmission method and network device
CN114760093A (zh) 通信方法及装置
CN111740893B (zh) 软件定义vpn的实现方法、装置、系统、介质和设备
CN113438094B (zh) 一种自动更新手工配置IPSec SA的方法和设备
CN117254976A (zh) 基于VPP的国标IPsec VPN实现方法、装置、系统及电子设备
EP4040752B1 (en) Secure communication method and device
CN110120907B (zh) 一种基于提议组的IPSec VPN隧道的通信方法及装置
CN114567478A (zh) 通信方法及装置
Badra et al. Adding identity protection to eap-tls smartcards
WO2014100967A1 (zh) 一种ipsec协商的方法、装置、设备和系统
EP3131269A1 (en) Method and device for conducting ah authentication on ipsec packet which has gone through nat traversal
US20220038443A1 (en) Methods and systems of a packet orchestration to provide data encryption at the ip layer, utilizing a data link layer encryption scheme

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