一种预共享密钥PSK的处理方法及装置与流程

文档序号:28658678发布日期:2022-01-26 19:39阅读:382来源:国知局
一种预共享密钥PSK的处理方法及装置与流程
一种预共享密钥psk的处理方法及装置
1.本技术要求于2020年7月25日提交中国专利局、申请号为202010740829.0、发明名称为“一种安全通信方法,装置和系统”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及安全技术领域,尤其涉及一种预共享密钥(pre-shared key,psk)的处理方法及装置。


背景技术:

3.为了保证两个通信装置进行数据交互时的数据安全,可以利用psk对两个通信装置之间交互的报文进行处理。例如,在第一通信装置和第二通信装置进行身份认证时,利用psk 派生的密钥对第一通信装置和第二通信装置之间交互的认证报文进行处理。
4.在一些实施例中,psk有一定的老化周期,通信装置例如第一通信装可以在该psk的老化周期内利用该psk对第一通信装置和第二通信装置间交互的报文进行处理。目前,若在该psk的老化周期内,第一通信装置无法利用该psk对第一通信装置和第二通信装置间交互的报文进行处理,则可能导致第一通信装置和第二通信装置无法正常通信。


技术实现要素:

5.本技术实施例提供了一种预共享密钥psk的处理方法,即使第一通信装置在第一psk 的老化周期内不能使用第一psk对第一通信装置和第二通信装置之间交互的报文进行处理,也能够使得第一通信装置和第二通信装置可以正常通信。
6.第一方面,本技术实施例提供了一种psk的处理方法,该方法可以由第一通信装置执行。在一个示例中,第一通信装置中保存有第一psk,正常情况下,第一通信装置可以在第一psk的老化周期内,基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。另外,第一通信装置本地还保存有第二psk。在本技术中,若在第一psk的老化周期内,第一通信装置不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。则第一通信装置可以利用前述第二psk对第一通信装置和第二通信装置之间交互的报文进行处理,从而使得第一通信装置和第二通信装置可以正常通信。
7.在一种实现方式中,所述第二psk可以存储在第一通信装置的非易失存储区,以保证当第一通信装置发生突发性故障或者断电时,第二psk不会丢失。
8.在一种实现方式中,第一通信装置可以在第一psk的老化周期内,从存储第一psk 的非易失存储区读取所述第一psk,以便于利用所述第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。在一个示例中,若第一通信装置从所述第一psk对应的非易失存储区读取所述第一psk失败,则第一通信装置可以确定当前不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。
9.在一种实现方式中,所述第二psk为所述第一通信装置在所述第一psk的老化周期
psk之后,第一通信装置可以利用该更新的psk对第二通信装置和第一通信装置之间交互的报文进行处理,不再利用第二psk对第二通信装置和第一通信装置之间交互的报文进行处理。
17.在一种实现方式中,当第一通信装置在第一psk的老化周期内确定不能基于第一psk 对第二通信装置和第一通信装置之间交互的报文进行处理之后,可以向控制管理设备发送告警信息,该告警信息用于指示在第一psk的老化周期内,所述第一通信装置不能基于第一psk对第二通信装置和第一通信装置之间交互的报文进行处理。以便于运维人员根据该告警信息确定第二通信装置中的psk的情况,并确定是否需要人工干预。
18.第二方面,本技术实施例提供了一种psk的更新方法,该方法可以由第一通信装置执行。在一个示例中,第一通信装置中保存有第一psk,第一psk用于在第一psk的老化周期内,对第一通信装置和第二通信装置之间交互的报文进行处理。第一通信装置和第二通信装置均可以在第一psk的老化周期内,基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。在本技术中,第一通信装置可以在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,该第一psk密钥材料用于生成第二psk。第二psk用于在第二psk的老化周期内,对第一通信装置和第二通信装置之间交互的报文进行处理。第一通信装置和第二通信装置均可以在第二psk的老化周期内,基于第二psk对第一通信装置和第二通信装置之间交互的报文进行处理。由此可见,利用本技术实施例的方案,第一通信装置可以根据第一psk密钥材料对psk进行更新,因此,第一通信装置中保存的psk不再是一成不变的,故而减少了第一通信装置中的psk被破解的可能性,相应的,也避免了由于psk被破解而带来的安全风险。
19.在一种实现方式中,第一通信装置根据第一psk密钥材料获得第二psk之后,可以将第二psk保存至第一通信装置的非易失存储区,以保证当第一通信装置发生突发性故障或者断电时,第二psk不会丢失。当第二psk的老化周期开始时,第一通信装置可以从该非易失存储区读取所述第二psk,从而利用第二psk对第一通信装置和第二通信装置间交互的报文进行处理。
20.在一种实现方式中,当第一通信装置能够使用非对称密钥算法时,第一通信装置可以根据第一psk密钥材料和第一通信装置的第二psk密钥材料,得到第二psk。例如,所述第一psk材料可以是第二通信装置的公共值(public value),第二psk密钥材料可以是第一通信装置的私有值(private value),第一通信装置可以利用非对称密钥算法,根据第二通信装置的public value和第一通信装置的private value,计算得到第二psk。
21.在一种实现方式中,若第一通信装置根据前述第一psk密钥材料和第二psk密钥材料得到第二psk,则第二通信装置也可以利用非对称密钥算法获得第二psk。对于这种情况,第一通信装置可以将第三psk密钥材料发送给第二通信装置,以便于第二通信装置根据所述第三psk密钥材料计算得到第二psk。例如,所述第三psk材料可以是第一通信装置的public value,第二通信装置可以利用所述第一通信装置的public value和第二通信装置的private value,计算得到第二psk。
22.在一种实现方式中,第二通信装置可以预先获得第二psk,并将第二psk携带在前述第一协议报文中发送给第一通信装置。对于这种情况,第一通信装置接收到的第一协议报文中包括的第一psk密钥材料,即为第二psk。因此,在一个示例中,第一通信装置接收到
第一协议报文之后,可以对第一协议报文进行解析,得到第一协议报文中包括的第一psk 密钥材料,并将该第一psk密钥材料确定为第二psk。
23.在一种实现方式中,第一通信装置根据第一psk密钥材料得到第二psk在具体实现时,例如可以根据第一psk密钥材料和第一密钥派生算法,得到第二psk。此处提及的第一密钥派生算法,例如可以是kdf,又如可以是prf。关于kdf和prf,可以参考ieee 802.1x-2010中的相关描述部分,此处不做重复描述。
24.在一种实现方式中,第一通信装置根据所述第一psk密钥材料和第一密钥派生算法,得到所述第二psk,在具体实现时,例如可以首先利用第一算法对第一psk密钥材料进行处理,得到中间值,然后再利用所述中间值和第一密钥派生算法,得到第二psk。本技术实施例不具体限定所述第一算法,第一算法可以是密钥派生算法,也可以是其它算法。采用这种方式,只有在第一算法、第一psk密钥材料以及第一密钥派生算法均被破解的情况下,第二psk才能够被破解,从而降低了第二psk被破解的风险,进一步提升了第二psk 的安全性。
25.在一种实现方式中,前述第一psk密钥材料可以是随机数。第二通信装置可以生成随机数,并将该随机数作为第一psk密钥材料携带在第一协议报文中发送给第一通信装置。采用随机数作为第一psk密钥材料,与第二通信装置采用某一规律生成第一psk密钥材料相比,随机数被破解的可能性更低。因此,利用随机数作为第一psk密钥材料,可以降低第一psk密钥材料被破解的可能性,相应的降低第二psk被破解的可能性。
26.在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。对于这种情况,第二通信装置可以对基于eap-psk的报文的报文结构进行重构,将第一 psk密钥材料携带在重构后的基于eap-psk的报文发送给第一通信装置。
27.在一种实现方式中,当第一协议报文为基于eap-psk的报文时,第一协议报文可以包括扩展的tlv字段,前述第一psk密钥材料可以携带在所述扩展的tlv字段中。
28.在一种实现方式中,考虑到第一psk密钥材料用于获得第二psk,因此,第一psk 密钥材料的安全性尤为重要,因为一旦第一psk密钥材料被破解,则会增加第二psk被破解的风险。为了避免这个问题,在一个示例中,可以利用第一密钥对第一psk密钥材料进行加密,并将加密之后的第一psk密钥材料携带在第一协议报文中。
29.在一种实现方式中,为了保证第一psk密钥材料的安全性。所述第一协议报文还可以包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。对于这种情况,可以利用所述第一完整性验证信息,初步判断第一psk密钥材料的安全性。利用该第一完整性验证信息,可以确定第一协议报文在传输过程中是否发生误码或者被篡改。若第一协议报文在传输过程中发送误码或者被篡改,则也无法确保第一协议报文中的第一psk密钥材料的安全性。
30.在一种实现方式中,当第一协议报文中包括第一完整性验证信息时,第一通信装置接收到第一协议报文之后,可以首先根据第一完整性验证信息对第一协议报文进行完整性验证,在第一协议报文通过完整性验证的情况下,再获取第一协议报文中的第一psk密钥材料,并根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证。
31.在一种实现方式中,第一协议报文中可以包括用于对第一psk密钥材料进行加密的第一密钥的标识,对于这种情况,第一通信装置可以对第一协议报文进行解析,得到所述第一密钥的标识,而后,第一通信装置可以根据第一密钥的标识获取第一密钥,利用第一密
钥对第一协议报文中经过加密处理的第一psk密钥材料进行解密,并根据解密得到的第一 psk密钥材料获得第二psk。在一个示例中,第一通信装置中可以保存有第一密钥的标识和第一密钥的对应关系,第一通信装置获得第一密钥的标识之后,可以利用该对应关系得到第一密钥。
32.在一种实现方式中,当第一协议报文中包括第一完整性验证信息时,该第一完整性验证信息可以是第二通信装置利用第二密钥计算得到的。在一个示例中,所述第一协议报文可以包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥。对于这种情况,第一通信装置利用第一完整性验证信息对第一协议报文进行完整性验证时,可以根据该第二密钥的标识获得第二密钥,然后利用第二密钥和第一完整性验证信息,对第一协议报文进行完整性验证。在一个示例中,第一完整性验证信息可以携带在第一协议报文的icv字段中,第一通信装置可以利用第二密钥对第一协议报文中除icv字段的其它字段进行计算,得到第三完整性验证信息,而后对第三完整性验证信息和第一完整性验证信息进行匹配验证。在一个示例中,当第三完整性验证信息和第一完整性验证信息相等时,可以确定第一协议报文通过完整性验证;当第三完整性验证信息和第一完整性验证信息不相等时,可以确定第一协议报文未通过完整性验证。
33.在一种实现方式中,第一通信装置在接收所述第一协议报文之前,还可以向所述第二通信装置发送第二协议报文,所述第二协议报文中可以携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。通过第二协议报文,第一通信装置和第二通信装置可以完成第三密钥的协商,从而确定在第一协议报文中对第一psk密钥材料进行加密处理的第一密钥。此处提及的第二协议报文,也可以是基于 eap-psk的报文。在一个示例中,若第二协议报文中包括第三密钥的标识,则第一协议报文中可以不包括第一密钥的标识。
34.在一种实现方式中,第一通信装置在接收所述第一协议报文之前,还可以向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。通过第二协议报文,第一通信装置和第二通信装置可以完成第三密钥的协商,从而确定在计算所述第一完整性验证信息的第二密钥。此处提及的第二协议报文,也可以是基于eap-psk的报文。此处提及的第二密钥和以上提及的第一密钥,可以是同一个密钥,也可以是不同的密钥,本技术实施例不做具体限定。在一个示例中,若第二协议报文中包括第三密钥的标识,则第一协议报文中可以不包括第二密钥的标识。
35.在一种实现方式中,所述第三密钥可以是第一psk。其中,第一通信装置本地和第二通信装置本地可以各自保存所述第一psk。第二通信装置可以利用该第一psk派生得到第一密钥和第二密钥,并利用第一密钥对第一psk密钥材料进行加密,利用第二密钥计算所述第一完整性验证信息;第一通信装置可以利用所述第一psk派生得到第一密钥和第二密钥,并利用第一密钥解密第一协议报文中经过加密处理的第一psk密钥材料,以及利用第二密钥对第一协议报文进行完整性验证。
36.在一种实现方式中,第一通信装置在向所述第二通信装置发送所述第二协议报文之前,还可以接收来自于所述第二通信装置的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。对于这种情况,前述第二协议报文可以用于指示所述
第一通信装置同意进行身份认证。这样一来,可以在身份认证的初始交互阶段,完成第三密钥的协商,无需再利用额外的信令交互流程来进行第三密钥的协商,可以减少第一通信装置和第二通信装置之间的信令交互。此处提及的第三协议报文,也可以是基于eap-psk的报文。
37.在一种实现方式中,所述第三协议报文中可以携带所述第三密钥的标识。由于第三协议报文中包括第三密钥的标识,第一通信装置接收到第三协议报文之后,向第二通信装置发送第二协议报文,第二协议报文中也包括第三密钥的标识。通过第三协议报文和第二协议报文,第一通信装置和第二通信装置完成了对第三密钥的协商以及完成了身份认证初始阶段的交互。
38.在一种实现方式中,第一通信装置和第二通信装置之间完成第三协议报文和第二协议报文的交互之后,可以进入身份认证流程。对于这种情况,所述第一协议报文中除了包括第一psk密钥材料之外,还可以包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。采用这种方式,第一通信装置可以在对第二通信装置进行身份认证的同时,获得第一psk密钥材料。
39.在一种实现方式中,考虑到第一身份认证信息可以用于确定第二通信装置的身份,因此,第一身份认证信息的安全性尤为重要。因此,在一个示例中,可以利用第一密钥对第一身份认证信息进行加密处理。换言之,所述第一协议报文中可以包括利用第一密钥加密处理之后的第一身份认证信息。
40.在一种实现方式中,所述第一身份认证信息可以是第二通信装置利用第四密钥对目标字段进行计算得到的,其中,所述目标字段可以包括所述第三协议报文的部分或者全部字段,和/或,所述第二协议报文的部分或者全部字段。
41.在一种实现方式中,第一通信装置接收到第一协议报文之后,可以利用第一协议报文中的第一身份认证信息,对第二通信装置进行身份认证。在一个示例中,第一通信装置可以在确定第二通信装置通过身份认证之后,再执行根据第一psk密钥材料获得第二psk 的步骤。因为psk的安全性尤为重要,第一通信装置不能和不可信的第二通信装置进行 psk的更新。
42.在一种实现方式中,第一通信装置利用第一身份认证信息对所述第二通信装置进行身份认证在具体实现时,例如可以利用第四密钥对前述目标字段进行计算,得到第三身份认证信息,并将第三身份认证信息和所述第一协议报文中携带的所述第一身份认证信息进行匹配验证。在一个示例中,若第一身份认证信息和第三身份认证信息相同,则可以确定第二通信装置通过身份认证,若第一身份认证信息和第三身份认证信息不同,则可以确定第二通信装置未通过身份认证。可以理解的是,若所述目标字段包括第三协议报文中的部分或者全部字段,则第二通信装置计算第一身份认证信息时,所使用的是第二通信装置发送的第三协议报文中的部分或者全部字段,而第一通信装置计算第三身份认证信息时,所使用的是接收到的第三协议报文中的部分或者全部字段。采用这种方式,也可以在一定程度上对第三协议报文进行验证,以验证第三协议报文在传输过程中是否被篡改。类似的,若所述目标字段包括第二协议报文中的部分或者全部字段,则第二通信装置计算第一身份认证信息时,所使用的是第二通信装置接收的第二协议报文中的部分或者全部字段,而第一通信装置计算第三身份认证信息时,所使用的是第一通信装置发送的第二协议报文中的部
分或者全部字段。采用这种方式,也可以在一定程度上对第二协议报文进行验证,以验证第二协议报文在传输过程中是否被篡改。
43.在一种实现方式中,若第一协议报文中的第一身份认证信息是利用第一密钥加密之后的信息,则第一通信装置利用所述第四密钥对目标字段进行计算,得到第三身份认证信息,在具体实现时,可以首先利用所述第四密钥对所述目标字段进行计算,得到第一计算结果,而后,利用所述第一密钥对所述第一计算结果进行加密,得到所述第三身份认证信息。
44.在一种实现方式中,前述所述第四密钥可以由所述第三密钥派生得到。
45.在一种实现方式中,前述第四密钥可以是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。对于这种情况,第一密钥和第二密钥利用第三密钥(例如第一 psk)派生得到,第四密钥利用第三psk派生的到。采用这种方式,只有第一psk和第三psk均被破解,不可信的第三方通信装置才可能实现对第一协议报文的仿冒,从而提升了第一协议报文的安全性。
46.在一种实现方式中,当第四密钥由第三psk派生得到时,所述第二协议报文中可以携带所述第三psk的标识,所述第三psk的标识用于标识所述第三psk。对于这种情况,第一通信装置和第二通信装置可以通过第二协议报文完成第三psk的协商。
47.在一种实现方式中,第一通信装置根据第一psk密钥材料得到第二psk之后,可以将对第一psk密钥材料的处理结果告知第二通信装置,在一个示例中,第一通信装置可以向所述第二通信装置发送第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二psk。其中,所述第四协议报文可以是基于eap-psk的报文。其中,第一通信装置已保存所述第二psk,说明第一通信装置本地更新psk成功。
48.在一种实现方式中,第一通信装置可以对基于eap-psk的报文进行扩展,将所述第一指示信息携带在扩展的tlv字段中。
49.在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。这样一来,第二通信装置接收到第四协议报文之后,可以利用该第二完整性验证信息确定第四协议报文在传输过程中是否发生误码或者被篡改。
50.在一种实现方式中,所述第四协议报文中除了包括前述第一指示信息之外,还可以包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。这样一来,利用第三协议报文和第四协议报文,第一通信装置和第二通信装置之间完成了双向身份认证以及psk的更新。
51.在一种实现方式中,与第二通信装置对第一身份认证信息的处理方式类似,第一通信装置也可以在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
52.在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。如前文对于第一身份认证的描述可知,当第二身份认证信息根据第二协议报文中的部分或者全部字段计算得到时,可以验证第二协议报文在传输过程中是否被篡改,当第二身份认证信息根据第三协议报文中的部分或者全部字段计算得到时,可以验证第三协议报
文在传输过程中是否被篡改。
53.在一种实现方式中,第一通信装置向第二通信装置发送第四协议报文之后,第二通信装置一方面可以利用第二身份认证信息对第一通信装置进行身份认证,另一方面要对第四协议报文中的第一指示信息进行确认。而后,第二通信装置可以向第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和psk更新结果。其中,所述第五协议报文可以是基于eap-psk的报文。
54.在一种实现方式中,若所述第五协议报文中的身份认证结果指示身份认证失败,则说明第一通信装置未通过身份认证,换言之,第二通信装置认为第一通信装置不可信,此时,第一通信装置和第二通信装置不能进行psk的更新,因此,第一通信装置可以删除所述第二psk。若第五协议报文中的psk更新结果指示psk更新失败,则第一通信装置可以删除所述第二psk。其中psk更新失败的原因有多种,例如第二通信装置本地更新psk失败,又如,第二通信装置对第一指示信息进行验证时,确定第一指示信息未通过验证。
55.在一种实现方式中,第一通信装置接收到了第五协议报文之后,可以向所述第二通信装置发送第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。其中,所述第六协议报文可以是基于eap-psk的报文。
56.在一种实现方式中,前述第五协议报文中也可以包括icv字段,对于这种情况,第一通信装置接收到第五协议报文之后,可以对所述第五协议报文进行完整性验证。以确定第五协议报文在传输过程中是否发生误码或者篡改。
57.在一种实现方式中,所述第一通信装置保存有第一数据密钥,所述第一协议报文中还包括数据密钥材料,所述数据密钥材料用于生成第二数据密钥,所述第一数据密钥用于在所述第一数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第二数据密钥用于在第二数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理;此时,第一通信装置可以根据所述数据密钥材料得到所述第二数据密钥。对于这种情况,第一通信装置可以利用第一协议报文,实现psk的更新和数据密钥的更新。
58.在一种实现方式中,所述第二数据密钥包括:完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
59.在一种实现方式中,所述第一通信装置保存有第一认证密钥,所述第一协议报文中包括认证密钥材料,所述认证密钥材料用于生成第二认证密钥,所述第一数据密钥用于在所述第一认证密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第二数据密钥用于在第二认证密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理;此时,第一通信装置可以根据所述认证密钥材料得到所述第二认证密钥。对于这种情况,第一通信装置可以利用第一协议报文,实现psk的更新和认证密钥的更新。
60.在一种实现方式中,所述第二认证密钥和第一认证密钥均可以包括以下任意一项或者多项:完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信
息。其中,第一认证密钥中的完整性计算密钥可以为前文提及的第二密钥,第一认证密钥中的加密密钥可以是前文提及的第一密钥,第一认证密钥中的身份认证密钥可以是前文提及的第四密钥。第二身份认证可以在第一通信装置和第二通信装置下一次进行身份认证时,对第一通信装置和第二通信装置之间交互的认证报文进行处理。在一个示例中,第一身份认证密钥可以是第一通信装置和第二通信装置之前进行身份认证时更新的。
61.在一种实现方式中,第一通信装置获得第二psk之后,还可以利用所述第二psk派生媒体接入控制安全macsec密钥。采用这种方案,第一通信装置中保存的psk不再是一成不变的,故而减少了第一通信装置中的psk被破解的可能性,相应的降低由psk派生得到的macsec密钥被破解的风险,从而降低安全隐患。
62.在一种实现方式中,第一通信装置利用所述第二psk派生macsec密钥在具体实现时,可以根据所述第二psk生成主会话密钥msk,用所述msk派生安全连接关联密钥 cak,并利用所述cak派生媒体接入控制安全macsec密钥。
63.在一种实现方式中,第一通信装置利用所述第二psk派生macsec密钥在具体实现时,可以将所述第二psk作为cak派生所述macsec密钥。
64.在一种实现方式中,第一通信装置利用所述cak派生媒体接入控制安全macsec密钥,在具体实现时,可以根据所述cak的标识,确定所述cak,并利用所述cak派生媒体接入控制安全macsec密钥。
65.在一种实现方式中,在本技术实施例中,第一通信装置和第二通信装置之间可以利用第一协议报文、第二协议报文、第三协议报文和第四协议报文这四个基于eap-psk的报文完成psk的更新,前述cak的标识,可以根据该四个协议报文中包括的内容得到,在一个示例中,所述cak的标识,可以根据所述第一通信装置生成的第一随机数、所述第二通信装置生成的第二随机数、以及所述第一协议报文的会话标识计算得到。其中,所述第一随机数可以携带在第二协议报文中,所述第二随机数可以携带在第三协议报文中。
66.在一种实现方式中,所述第一协议报文包括:扩展认证协议eap头、eap扩展头和关键字字段。
67.在一种实现方式中,所述第一psk密钥材料携带在所述关键字字段中。
68.在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
69.在一种实现方式中,所述第一psk密钥材料携带在所述加密数据字段中。
70.在一种实现方式中,在接收第一协议报文之前,第一通信装置可以向所述第二通信装置发送第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新psk的能力。第二通信装置根据该第二指示信息确定第一通信装置具备自动更新psk的能力之后,可以将第一psk密钥材料携带在第一协议报文中发送给第一通信装置。
71.在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
72.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一psk密钥材料携带在所述第一协议报文的载荷payload字段中。
73.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一psk密钥材料携带在所述第一协议报文的通知notification payload字段中。
74.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一psk密钥材料携带在所述第一协议报文的扩展tlv字段中。
75.在一种实现方式中,当第一协议报文为基于ike的报文时,第一通信装置还可以向所述第二通信装置发送第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新psk的能力。第二通信装置根据该第三指示信息确定第一通信装置具备自动更新 psk的能力之后,可以将第一psk密钥材料携带在第一协议报文中发送给第一通信装置。
76.在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
77.在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
78.在一种实现方式中,第一通信装置根据第一psk密钥材料得到第二psk之后,可以将对第一psk密钥材料的处理结果告知第二通信装置,在一个示例中,第一通信装置可以向所述第二通信装置发送第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二psk。
79.在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二psk。
80.在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
81.在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
82.在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
83.在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
84.在一种实现方式中,所述第一协议报文为基于媒体接入控制安全密钥协议mka的报文。
85.在一种实现方式中,当所述第一协议报文为基于mka的报文时,所述第一psk密钥材料,携带在所述第一协议报文的扩展参数集parameter set字段中。
86.在一种实现方式中,当第一协议报文为基于mka的报文时,第一通信装置还可以向所述第二通信装置发送第五指示信息,所述第五指示信息用于指示所述第一通信装置具备自动更新psk的能力。第二通信装置根据该第五指示信息确定第一通信装置具备自动更新 psk的能力之后,可以将第一psk密钥材料携带在第一协议报文中发送给第一通信装置。
87.在一种实现方式中,所述第五指示信息携带在基于mka的报文的parameter set字段中。
88.在一种实现方式中,基于mka的报文可以包括parameter set类型字段,前述第五指示信息可以携带在所述基于mka的报文的parameter set类型字段中。
89.在一种实现方式中,第一通信装置根据第一psk密钥材料得到第二psk之后,可以将对第一psk密钥材料的处理结果告知第二通信装置,在一个示例中,第一通信装置可以向所述第二通信装置发送第八协议报文,所述第八协议报文用于指示所述第一通信装置已保
存所述第二psk。
90.在一种实现方式中,所述第八协议报文中包括第六指示信息,所述第六指示信息用于指示所述第一通信装置已保存所述第二psk。
91.在一种实现方式中,所述第八协议报文为基于mka的报文,所述第六指示信息携带在所述基于mka的报文的parameter set类型字段中。
92.在一种实现方式中,所述第一通信装置为车载装置。例如,所述第一通信装置为t-box 中的通信实体。
93.在一种实现方式中,所述第二通信装置为车载装置。例如,所述第二通信装置为t-box 中的通信实体。
94.在一种实现方式中,所述第一通信装置和所述第二通信装置均属于t-box。
95.第三方面,本技术实施例提供了一种psk的更新方法,该方法可以由第二通信装置执行。在一个示例中,第二通信装置可以获取第一psk密钥材料,该第一psk密钥材料用于生成第二psk。第二通信装置获取第一psk密钥材料之后,可以根据第一psk密钥材料生成第一协议报文,第一协议报文包括所述第一psk密钥材料。第二通信装置生成第一协议报文之后,可以将该第一协议报文发送的第一通信装置,以便于第一通信装置基于该第一psk密钥材料生成更新的第二psk。由此可见,利用本技术实施例的方案,第一通信装置可以根据第一psk密钥材料对psk进行更新,因此,第一通信装置中保存的psk不再是一成不变的,故而减少了第一通信装置中的psk被破解的可能性,相应的,也避免了由于psk被破解而带来的安全风险。
96.在一种实现方式中,第二通信装置还可以存储所述第一psk密钥材料。对于这种情况,第二通信装置可以在第二psk的老化周期开始之前,获得存储的所述第一psk密钥材料,并根据所述第一psk密钥材料得到第二psk。这样一来,第二通信装置即可在第二psk 的老化周期内,利用第二psk对第一通信装置和第二通信装置之间交互的报文进行处理。
97.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第三psk密钥材料;根据所述第三psk密钥材料获得所述第二psk。
98.在一种实现方式中,所述方法还包括:根据所述第一psk密钥材料得到所述第二psk。
99.在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:将所述第一psk密钥材料确定为所述第二psk。
100.在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:根据所述第一psk密钥材料和第一密钥派生算法,得到所述第二psk。
101.在一种实现方式中,所述根据所述第一psk密钥材料和第一密钥派生算法,得到所述第二psk,包括:利用第一算法对所述第一psk密钥材料进行计算,得到中间值;根据所述中间值和所述第一密钥派生算法,生成所述第二psk。
102.在一种实现方式中,所述方法还包括:将所述第二psk保存至所述第二通信装置的非易失存储区。
103.在一种实现方式中,所述第一psk密钥材料包括随机数。
104.在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
105.在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一psk密钥材料。
106.在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一psk密钥材料。
107.在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
108.在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识。
109.在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
110.在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
111.接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
112.在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
113.接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
114.在一种实现方式中,所述第三密钥包括所述第一psk。
115.在一种实现方式中,在接收所述第一通信装置发送的第二协议报文,所述方法还包括:
116.向所述第一通信装置发送的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
117.在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
118.在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
119.在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
120.在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
121.在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
122.在一种实现方式中,所述第四密钥是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。
123.在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
124.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二psk。
125.在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段
包括所述第一指示信息。
126.在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
127.在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
128.在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
129.在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
130.在一种实现方式中,所述方法还包括:利用所述第二身份认证信息对所述第一通信装置进行身份认证。
131.在一种实现方式中,所述利用所述第二身份认证信息对所述第一通信装置进行身份认证,包括:利用所述第四密钥对目标字段进行计算,得到第四身份认证信息;将所述第四身份认证信息和所述第四协议报文中携带的所述第二身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
132.在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第四身份认证信息,包括:利用所述第四密钥对所述目标字段进行计算,得到第二计算结果;利用所述第一密钥对所述第二计算结果进行加密,得到所述第四身份认证信息。
133.在一种实现方式中,所述方法还包括:向所述第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和psk更新结果。
134.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
135.在一种实现方式中,所述第二通信装置保存有第一数据密钥,所述第一协议报文中还包括数据密钥材料,所述数据密钥材料用于指示所述第一通信装置生成更新的第二数据密钥,所述第二通信装置在所述第一数据密钥的老化周期内基于所述第一数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第二通信装置在第二数据密钥的老化周期内基于所述第二数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理。
136.在一种实现方式中,所述方法还包括:根据所述数据密钥材料得到所述第二数据密钥。
137.在一种实现方式中,所述第二数据密钥包括:完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
138.在一种实现方式中,所述第二通信装置保存有第一认证密钥,所述第一协议报文中还包括认证密钥材料,所述认证密钥材料用于指示所述第一通信装置生成更新的第二认证密钥,所述第二通信装置在所述第一认证密钥的老化周期内基于所述第一认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第二通信装
置在第二认证密钥的老化周期内基于所述第二认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理。
139.在一种实现方式中,所述方法还包括:根据所述认证密钥材料得到所述第二认证密钥。
140.在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
141.在一种实现方式中,所述方法还包括:利用所述第二psk派生媒体接入控制安全 macsec密钥。
142.在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:根据所述第二psk生成主会话密钥msk;利用所述msk派生安全连接关联密钥cak;利用所述cak 派生媒体接入控制安全macsec密钥。
143.在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:将所述第二 psk作为cak派生所述macsec密钥。
144.在一种实现方式中,所述利用所述cak派生媒体接入控制安全macsec密钥,包括:根据所述cak的标识,确定所述cak;利用所述cak派生媒体接入控制安全macsec 密钥。
145.在一种实现方式中,所述cak的标识,根据以下任意一项或者多项参数生成:所述第一通信装置生成的第一随机数、所述第二通信装置生成的第二随机数、以及所述第一协议报文的会话标识。
146.在一种实现方式中,所述第一协议报文包括:扩展认证协议eap头、eap扩展头和关键字字段。
147.在一种实现方式中,所述第一psk密钥材料携带在所述关键字字段中。
148.在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
149.在一种实现方式中,所述第一psk密钥材料携带在所述加密数据字段中。
150.在一种实现方式中,所述方法还包括:接收所述第一通信装置发发送的第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新psk的能力。
151.在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
152.在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的载荷payload 字段中。
153.在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的通知 notification payload字段中。
154.在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的扩展tlv字段中。
155.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新psk的能力。
156.在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的
notificationpayload字段中。
157.在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
158.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二psk。
159.在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二psk。
160.在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
161.在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
162.在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
163.在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
164.在一种实现方式中,所述第一协议报文为基于媒体接入控制安全密钥协议mka的报文。
165.在一种实现方式中,所述第一psk密钥材料,携带在所述第一协议报文的扩展参数集 parameter set字段中。
166.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第五指示信息,所述第五指示信息用于指示所述第一通信装置具备自动更新psk的能力。
167.在一种实现方式中,所述第五指示信息携带在基于mka的报文的parameter set字段中。
168.在一种实现方式中,所述第五指示信息携带在所述基于mka的报文的parameter set 类型字段中,所述parameter set字段包括parameter set类型字段。
169.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第八协议报文,所述第八协议报文用于指示所述第一通信装置已保存所述第二psk。
170.在一种实现方式中,所述第八协议报文中包括第六指示信息,所述第六指示信息用于指示所述第一通信装置已保存所述第二psk。
171.在一种实现方式中,所述第八协议报文为基于mka的报文,所述第六指示信息携带在所述基于mka的报文的parameter set类型字段中。
172.在一种实现方式中,所述第一通信装置为车载装置。例如,所述第一通信装置为t-box 中的通信实体。
173.在一种实现方式中,所述第二通信装置为车载装置。例如,所述第二通信装置为t-box 中的通信实体。
174.在一种实现方式中,所述第一通信装置和所述第二通信装置均属于t-box。
175.第四方面,本技术实施例提供了一种数据密钥的更新方法,该方法可以由第一通信装置执行。在一个示例中,第一通信装置中保存有第一数据密钥,所述第一数据密钥用于在所述第一数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的
数据报文进行处理。第一通信装置和第二通信装置均可以在第一数据密钥的老化周期内,基于第一数据密钥对第一通信装置和第二通信装置之间交互的数据报文进行处理。在本技术中,第一通信装置可以在第一数据密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文不是基于mka的报文,所述第一协议报文中包括第一数据密钥材料,该第一数据密钥材料用于生成第二数据密钥。所述第二数据密钥用于在所述第二数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理。第一通信装置和第二通信装置均可以在第二数据密钥的老化周期内,基于第二数据密钥对第一通信装置和第二通信装置之间交互的数据报文进行处理。由此可见,利用本技术实施例的方案,第一通信装置可以根据第一数据密钥材料对数据密钥进行更新,因此,第一通信装置中保存的数据密钥不再是一成不变的,故而减少了第一通信装置中的数据密钥被破解的可能性,相应的,也避免了由于数据密钥被破解而带来的安全风险。而且,由于第一协议报文不是基于mka的报文,因此,利用本方案通信装置1和通信装置2之间利用非mka协议进行交互时,也能够实现数据密钥的更新。
176.在一种实现方式中,第一通信装置根据第一数据密钥材料获得第二数据密钥之后,可以将第二数据密钥保存至第一通信装置的非易失存储区,以避免当第一通信装置发生突发性故障或者断电时,第二数据密钥不会丢失。当第二数据密钥的老化周期开始时,第一通信装置可以从该非易失存储区读取所述第二数据密钥,从而利用第二数据密钥对第一通信装置和第二通信装置间交互的数据报文进行处理。
177.在一种实现方式中,考虑到当第一通信装置和第二通信装置之间利用以太口通信时,可以利用mka或者基于预共享密钥(pre-shared key,psk)的扩展认证协议(extensibleauthentication protocol,eap),即eap-psk实现数据密钥的更新。在本技术中,第一通信装置和第二通信装置之间利用非以太口通信,这样一来,利用本方案,可以使得第一通信装置和第二通信装置之间利用非以太口通信时,也能够实现数据密钥的更新。
178.在一种实现方式中,考虑到若第一通信装置和第二通信装置之间基于以太口通信,并且第一通信装置和第二通信装置均使用非对称密钥算法,则第一通信装置和第二通信装置可以利用网络密钥交换(internet key exchange,ike)协议实现数据密钥的更新,在本技术的一个示例中,第一通信装置和第二通信装置之间使用以太口通信,并且第一通信装置或者第二通信装置不使用非对称密钥算法。这样一来,利用本方案,可以在第一通信装置和第二通信装置基于以太口通信,并且第一通信装置和第二通信装置中至少有一个通信装置不使用非对称密钥算法时,第一通信装置和第二通信装置之间也可以利用ike协议进行数据密钥的更新。
179.在一种实现方式中,所述第二数据密钥可以包括:完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
180.在一种实现方式中,当第一通信装置能够使用非对称密钥算法时,第一通信装置可以根据第一数据密钥材料和第一通信装置的第二数据密钥材料,得到第二数据密钥。例如,所述第一数据密钥材料可以是第二通信装置的公共值(public value),第二数据密钥材料可以是第一通信装置的私有值(private value),第一通信装置可以利用非对称密钥算法,根据第二通信装置的public value和第一通信装置的private value,计算得到第二
数据密钥。
181.在一种实现方式中,若第一通信装置根据前述第一数据密钥材料和第二数据密钥材料得到第二数据密钥,则第二通信装置也可以利用非对称密钥算法获得第二数据密钥。对于这种情况,第一通信装置可以将第三数据密钥材料发送给第二通信装置,以便于第二通信装置根据所述第三数据密钥材料计算得到第二数据密钥。例如,所述第三数据密钥材料可以是第一通信装置的public value,第二通信装置可以利用所述第一通信装置的public value 和第二通信装置的private value,计算得到第二数据密钥。
182.在一种实现方式中,第二通信装置可以预先获得第二数据密钥,并将第二数据密钥携带在前述第一协议报文中发送给第一通信装置。对于这种情况,第一通信装置接收到的第一协议报文中包括的第一数据密钥材料,即为第二数据密钥。因此,在一个示例中,第一通信装置接收到第一协议报文之后,可以对第一协议报文进行解析,得到第一协议报文中包括的第一数据密钥材料,并将该第一数据密钥材料确定为第二数据密钥。
183.在一种实现方式中,第一通信装置根据第一数据密钥材料得到第二数据密钥在具体实现时,例如可以根据第一数据密钥材料和第一密钥派生算法,得到第二数据密钥。此处提及的第一密钥派生算法,例如可以是kdf,又如可以是prf。关于kdf和prf,可以参考ieee 802.1x-2010中的相关描述部分,此处不做重复描述。
184.在一种实现方式中,第一通信装置根据所述第一数据密钥材料和第一密钥派生算法,得到所述第二数据密钥,在具体实现时,例如可以首先利用第一算法对第一数据密钥材料进行处理,得到中间值,然后再利用所述中间值和第一密钥派生算法,得到第二数据密钥。本技术实施例不具体限定所述第一算法,第一算法可以是密钥派生算法,也可以是其它算法。采用这种方式,只有在第一算法、第一数据密钥材料以及第一密钥派生算法均被破解的情况下,第二数据密钥才能够被破解,从而降低了第二数据密钥被破解的风险,进一步提升了第二数据密钥的安全性。
185.在一种实现方式中,前述第一数据密钥材料可以是随机数。第二通信装置可以生成随机数,并将该随机数作为第一数据密钥材料携带在第一协议报文中发送给第一通信装置。采用随机数作为第一数据密钥材料,与第二通信装置采用某一规律生成第一数据密钥材料相比,随机数被破解的可能性更低。因此,利用随机数作为第一数据密钥材料,可以降低第一数据密钥材料被破解的可能性,相应的降低第二数据密钥被破解的可能性。
186.在一种实现方式中,所述第一数据密钥材料可以包括:用于生成所述完整性计算密钥的随机数,和/或,用于生成所述加密密钥的随机数。
187.在一种实现方式中,当第一协议报文为基于eap-psk的报文时,第一协议报文可以包括扩展的tlv字段,前述第一数据密钥材料可以携带在所述扩展的tlv字段中。
188.在一种实现方式中,考虑到第一数据密钥材料用于获得第二数据密钥,因此,第一数据密钥材料的安全性尤为重要,因为一旦第一数据密钥材料被破解,则会增加第二数据密钥被破解的风险。为了避免这个问题,在一个示例中,可以利用第一密钥对第一数据密钥材料进行加密,并将加密之后的第一数据密钥材料携带在第一协议报文中。
189.在一种实现方式中,为了保证第一数据密钥材料的安全性。所述第一协议报文还可以包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。对于这种情况,可以利用所述第一完整性验证信息,初步判断第一数据密钥材料
的安全性。利用该第一完整性验证信息,可以确定第一协议报文在传输过程中是否发生误码或者被篡改。若第一协议报文在传输过程中发送误码或者被篡改,则也无法确保第一协议报文中的第一数据密钥材料的安全性。
190.在一种实现方式中,当第一协议报文中包括第一完整性验证信息时,第一通信装置接收到第一协议报文之后,可以首先根据第一完整性验证信息对第一协议报文进行完整性验证,在第一协议报文通过完整性验证的情况下,再获取第一协议报文中的第一数据密钥材料,并根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证。
191.在一种实现方式中,第一协议报文中可以包括用于对第一数据密钥材料进行加密的第一密钥的标识,对于这种情况,第一通信装置可以对第一协议报文进行解析,得到所述第一密钥的标识,而后,第一通信装置可以根据第一密钥的标识获取第一密钥,利用第一密钥对第一协议报文中经过加密处理的第一数据密钥材料进行解密,并根据解密得到的第一数据密钥材料获得第二数据密钥。在一个示例中,第一通信装置中可以保存有第一密钥的标识和第一密钥的对应关系,第一通信装置获得第一密钥的标识之后,可以利用该对应关系得到第一密钥。
192.在一种实现方式中,当第一协议报文中包括第一完整性验证信息时,该第一完整性验证信息可以是第二通信装置利用第二密钥计算得到的。在一个示例中,所述第一协议报文可以包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥。对于这种情况,第一通信装置利用第一完整性验证信息对第一协议报文进行完整性验证时,可以根据该第二密钥的标识获得第二密钥,然后利用第二密钥和第一完整性验证信息,对第一协议报文进行完整性验证。在一个示例中,第一完整性验证信息可以携带在第一协议报文的icv字段中,第一通信装置可以利用第二密钥对第一协议报文中除icv字段的其它字段进行计算,得到第三完整性验证信息,而后对第三完整性验证信息和第一完整性验证信息进行匹配验证。在一个示例中,当第三完整性验证信息和第一完整性验证信息相等时,可以确定第一协议报文通过完整性验证;当第三完整性验证信息和第一完整性验证信息不相等时,可以确定第一协议报文未通过完整性验证。
193.在一种实现方式中,第一通信装置在接收所述第一协议报文之前,还可以向所述第二通信装置发送第二协议报文,所述第二协议报文中可以携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。通过第二协议报文,第一通信装置和第二通信装置可以完成第三密钥的协商,从而确定在第一协议报文中对第一数据密钥材料进行加密处理的第一密钥。此处提及的第二协议报文,也可以是基于 eap-psk的报文。
194.在一种实现方式中,第一通信装置在接收所述第一协议报文之前,还可以向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。通过第二协议报文,第一通信装置和第二通信装置可以完成第三密钥的协商,从而确定在计算所述第一完整性验证信息的第二密钥。此处提及的第二协议报文,也可以是基于eap-psk的报文。
195.在一种实现方式中,所述第三密钥可以是第一psk。其中,第一通信装置本地和第二通信装置本地可以各自保存所述第一psk。第二通信装置可以利用该第一psk派生得到第
一密钥和第二密钥,并利用第一密钥对第一数据密钥材料进行加密,利用第二密钥计算所述第一完整性验证信息;第一通信装置可以利用所述第一psk派生得到第一密钥和第二密钥,并利用第一密钥解密第一协议报文中经过加密处理的第一数据密钥材料,以及利用第二密钥对第一协议报文进行完整性验证。
196.在一种实现方式中,第一通信装置在向所述第二通信装置发送所述第二协议报文之前,还可以接收来自于所述第二通信装置的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。对于这种情况,前述第二协议报文可以用于指示所述第一通信装置同意进行身份认证。这样一来,可以在身份认证的初始交互阶段,完成第三密钥的协商,无需再利用额外的信令交互流程来进行第三密钥的协商,可以减少第一通信装置和第二通信装置之间的信令交互。此处提及的第三协议报文,也可以是基于eap-psk的报文。
197.在一种实现方式中,所述第三协议报文中可以携带所述第三密钥的标识。由于第三协议报文中包括第三密钥的标识,第一通信装置接收到第三协议报文之后,向第二通信装置发送第二协议报文,第二协议报文中也包括第三密钥的标识。通过第三协议报文和第二协议报文,第一通信装置和第二通信装置完成了对第三密钥的协商以及完成了身份认证初始阶段的交互。
198.在一种实现方式中,第一通信装置和第二通信装置之间完成第三协议报文和第二协议报文的交互之后,可以进入身份认证流程。对于这种情况,所述第一协议报文中除了包括第一数据密钥材料之外,还可以包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。采用这种方式,第一通信装置可以在对第二通信装置进行身份认证的同时,获得第一数据密钥材料。
199.在一种实现方式中,考虑到第一身份认证信息可以用于确定第二通信装置的身份,因此,第一身份认证信息的安全性尤为重要。因此,在一个示例中,可以利用第一密钥对第一身份认证信息进行加密处理。换言之,所述第一协议报文中可以包括利用第一密钥加密处理之后的第一身份认证信息。
200.在一种实现方式中,所述第一身份认证信息可以是第二通信装置利用第四密钥对目标字段进行计算得到的,其中,所述目标字段可以包括所述第三协议报文的部分或者全部字段,和/或,所述第二协议报文的部分或者全部字段。
201.在一种实现方式中,第一通信装置接收到第一协议报文之后,可以利用第一协议报文中的第一身份认证信息,对第二通信装置进行身份认证。在一个示例中,第一通信装置可以在确定第二通信装置通过身份认证之后,再执行根据第一数据密钥材料获得第二数据密钥的步骤。因为数据密钥的安全性尤为重要,第一通信装置不能和不可信的第二通信装置进行数据密钥的更新。
202.在一种实现方式中,第一通信装置利用第一身份认证信息对所述第二通信装置进行身份认证在具体实现时,例如可以利用第四密钥对前述目标字段进行计算,得到第三身份认证信息,并将第三身份认证信息和所述第一协议报文中携带的所述第一身份认证信息进行匹配验证。在一个示例中,若第一身份认证信息和第三身份认证信息相同,则可以确定第二通信装置通过身份认证,若第一身份认证信息和第三身份认证信息不同,则可以确定第二通信装置未通过身份认证。可以理解的是,若所述目标字段包括第三协议报文中的部
分或者全部字段,则第二通信装置计算第一身份认证信息时,所使用的是第二通信装置发送的第三协议报文中的部分或者全部字段,而第一通信装置计算第三身份认证信息时,所使用的是接收到的第三协议报文中的部分或者全部字段。采用这种方式,也可以在一定程度上对第三协议报文进行验证,以验证第三协议报文在传输过程中是否被篡改。类似的,若所述目标字段包括第二协议报文中的部分或者全部字段,则第二通信装置计算第一身份认证信息时,所使用的是第二通信装置接收的第二协议报文中的部分或者全部字段,而第一通信装置计算第三身份认证信息时,所使用的是第一通信装置发送的第二协议报文中的部分或者全部字段。采用这种方式,也可以在一定程度上对第二协议报文进行验证,以验证第二协议报文在传输过程中是否被篡改。
203.在一种实现方式中,若第一协议报文中的第一身份认证信息是利用第一密钥加密之后的信息,则第一通信装置利用所述第四密钥对目标字段进行计算,得到第三身份认证信息,在具体实现时,可以首先利用所述第四密钥对所述目标字段进行计算,得到第一计算结果,而后,利用所述第一密钥对所述第一计算结果进行加密,得到所述第三身份认证信息。
204.在一种实现方式中,前述所述第四密钥可以由所述第三密钥派生得到。
205.在一种实现方式中,前述第四密钥可以是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。对于这种情况,第一密钥和第二密钥利用第三密钥(例如第一 psk)派生得到,第四密钥利用第三psk派生的到。采用这种方式,只有第一psk和第三psk均被破解,不可信的第三方通信装置才可能实现对第一协议报文的仿冒,从而提升了第一协议报文的安全性。
206.在一种实现方式中,当第四密钥由第三psk派生得到时,所述第二协议报文中可以携带所述第三psk的标识,所述第三psk的标识用于标识所述第三psk。对于这种情况,第一通信装置和第二通信装置可以通过第二协议报文完成第三psk的协商。
207.在一种实现方式中,第一通信装置根据第一数据密钥材料得到第二数据密钥之后,可以将对第一数据密钥材料的处理结果告知第二通信装置,在一个示例中,第一通信装置可以向所述第二通信装置发送第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二数据密钥。其中,所述第四协议报文可以是基于eap-psk的报文。
208.在一种实现方式中,第一通信装置可以对基于eap-psk的报文进行扩展,将所述第一指示信息携带在扩展的tlv字段中。
209.在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。这样一来,第二通信装置接收到第四协议报文之后,可以利用该第二完整性验证信息确定第四协议报文在传输过程中是否发生误码或者被篡改。
210.在一种实现方式中,所述第四协议报文中除了包括前述第一指示信息之外,还可以包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。这样一来,利用第三协议报文和第四协议报文,第一通信装置和第二通信装置之间完成了双向身份认证以及数据密钥的更新。
211.在一种实现方式中,与第二通信装置对第一身份认证信息的处理方式类似,第一
通信装置也可以在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
212.在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。如前文对于第一身份认证的描述可知,当第二身份认证信息根据第二协议报文中的部分或者全部字段计算得到时,可以验证第二协议报文在传输过程中是否被篡改,当第二身份认证信息根据第三协议报文中的部分或者全部字段计算得到时,可以验证第三协议报文在传输过程中是否被篡改。
213.在一种实现方式中,第一通信装置向第二通信装置发送第四协议报文之后,第二通信装置一方面可以利用第二身份认证信息对第一通信装置进行身份认证,另一方面要对第四协议报文中的第一指示信息进行确认。而后,第二通信装置可以向第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和数据密钥更新结果。其中,所述第五协议报文可以是基于eap-psk的报文。
214.在一种实现方式中,若所述第五协议报文中的身份认证结果指示身份认证失败,则说明第一通信装置未通过身份认证,换言之,第二通信装置认为第一通信装置不可信,此时,第一通信装置和第二通信装置不能进行数据密钥的更新,因此,第一通信装置可以删除所述第二数据密钥。若第五协议报文中的数据密钥更新结果指示数据密钥更新失败,则第一通信装置可以删除所述第二数据密钥。其中数据密钥更新失败的原因有多种,例如第二通信装置本地更新数据密钥失败,又如,第二通信装置对第一指示信息进行验证时,确定第一指示信息未通过验证。
215.在一种实现方式中,第一通信装置接收到了第五协议报文之后,可以向所述第二通信装置发送第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。其中,所述第六协议报文可以是基于eap-psk的报文。
216.在一种实现方式中,前述第五协议报文中也可以包括icv字段,对于这种情况,第一通信装置接收到第五协议报文之后,可以对所述第五协议报文进行完整性验证。以确定第五协议报文在传输过程中是否发生误码或者篡改。
217.在一种实现方式中,所述第一通信装置保存有第一psk,所述第一协议报文中还包括 psk密钥材料,所述psk密钥材料用于生成更新的第二psk,所述第一通信装置在所述第一psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第一通信装置在第二psk的老化周期内基于所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。对于这种情况,第一通信装置还可以根据所述psk密钥材料得到所述第二psk。对于这种情况,第一通信装置可以利用第一协议报文,实现psk的更新和数据密钥的更新。
218.在一种实现方式中,所述第一通信装置保存有第一认证密钥,所述第一协议报文中包括认证密钥材料,所述认证密钥材料用于生成更新的第二认证密钥,所述第一通信装置在所述第一认证密钥的老化周期内基于所述第一认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第一通信装置在第二认证密钥的老化周期内基于所述第二认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理;此时,第一通信装置可以根据所述认证密钥材料得到所述第二认证密钥。对于这种情况,第一通信装置可以利用第一协议报文,实现数据密钥的更新和认证密
钥的更新。
219.在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
220.在一种实现方式中,所述第一协议报文包括:扩展认证协议eap头、eap扩展头和关键字字段。
221.在一种实现方式中,所述第一数据密钥材料携带在所述关键字字段中。
222.在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
223.在一种实现方式中,所述第一数据密钥材料携带在所述加密数据字段中。
224.在一种实现方式中,在接收第一协议报文之前,第一通信装置可以向所述第二通信装置发送第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。第二通信装置根据该第二指示信息确定第一通信装置具备自动更新数据密钥的能力之后,可以将第一数据密钥材料携带在第一协议报文中发送给第一通信装置。
225.在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
226.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一数据密钥材料携带在所述第一协议报文的载荷payload字段中。
227.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一数据密钥材料携带在所述第一协议报文的通知notification payload字段中。
228.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一数据密钥材料携带在所述第一协议报文的扩展tlv字段中。
229.在一种实现方式中,当第一协议报文为基于ike的报文时,第一通信装置还可以向所述第二通信装置发送第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。第二通信装置根据该第三指示信息确定第一通信装置具备自动更新数据密钥的能力之后,可以将第一数据密钥材料携带在第一协议报文中发送给第一通信装置。
230.在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notification payload字段中。
231.在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
232.在一种实现方式中,第一通信装置根据第一数据密钥材料得到第二数据密钥之后,可以将对第一数据密钥材料的处理结果告知第二通信装置,在一个示例中,第一通信装置可以向所述第二通信装置发送第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二数据密钥。
233.在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二数据密钥。
234.在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
235.在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
236.在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
237.在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
238.在一种实现方式中,所述第一通信装置为车载装置。例如,所述第一通信装置为t-box 中的通信实体。
239.在一种实现方式中,所述第二通信装置为车载装置。例如,所述第二通信装置为t-box 中的通信实体。
240.在一种实现方式中,所述第一通信装置和所述第二通信装置均属于t-box。
241.第五方面,本技术实施例提供了一种数据密钥的更新方法,该方法可以由第二通信装置执行。在一个示例中,第二通信装置可以获取第一数据密钥材料,该第一数据密钥材料用于生成第二数据密钥。第二通信装置获取第一数据密钥材料之后,可以根据第一数据密钥材料生成第一协议报文,第一协议报文包括所述第一数据密钥材料。其中,第一协议报文不是基于mka的报文。第二通信装置生成第一协议报文之后,可以将该第一协议报文发送的第一通信装置,以便于第一通信装置基于该第一数据密钥材料生成更新的第二数据密钥。由此可见,利用本技术实施例的方案,第一通信装置可以根据第一数据密钥材料对数据密钥进行更新,因此,第一通信装置中保存的数据密钥不再是一成不变的,故而减少了第一通信装置中的数据密钥被破解的可能性,相应的,也避免了由于数据密钥被破解而带来的安全风险。
242.在一种实现方式中,第二通信装置还可以存储所述第一数据密钥材料。对于这种情况,第二通信装置可以在第二数据密钥的老化周期开始之前,获得存储的所述第一数据密钥材料,并根据所述第一数据密钥材料得到第二数据密钥。这样一来,第二通信装置即可在第二数据密钥的老化周期内,利用第二数据密钥对第一通信装置和第二通信装置之间交互的数据报文进行处理。
243.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第三数据密钥材料;根据所述第三数据密钥材料获得所述第二数据密钥。
244.在一种实现方式中,所述方法还包括:根据所述第一数据密钥材料得到所述第二数据密钥。
245.在一种实现方式中,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:将所述第一数据密钥材料确定为所述第二数据密钥。
246.在一种实现方式中,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:
247.根据所述第一数据密钥材料和第一密钥派生算法,得到所述第二数据密钥。
248.在一种实现方式中,所述根据所述第一数据密钥材料和第一密钥派生算法,得到所述第二数据密钥,包括:利用第一算法对所述第一数据密钥材料进行计算,得到中间值;根据所述中间值和所述第一密钥派生算法,生成所述第二数据密钥。
249.在一种实现方式中,所述方法还包括:保存所述第二数据密钥。
250.在一种实现方式中,所述第一通信装置和所述第二通信装置之间基于非以太口通信。
251.在一种实现方式中,所述第一通信装置和所述第二通信装置之间基于以太口通信,且所述第一通信装置或者所述第二通信装置不使用非对称算法。
252.在一种实现方式中,所述第二数据密钥包括:完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
253.在一种实现方式中,所述第一数据密钥材料包括随机数。
254.在一种实现方式中,所述第一数据密钥材料,包括:用于生成所述完整性计算密钥的随机数,和/或,用于生成所述加密密钥的随机数。
255.在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
256.在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一数据密钥材料。
257.在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一数据密钥材料。
258.在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
259.在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识。
260.在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
261.在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
262.在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
263.在一种实现方式中,所述第三密钥包括所述第一通信装置和所述第二通信装置中存储的第一psk。
264.在一种实现方式中,在接收所述第一通信装置发送的第二协议报文,所述方法还包括:向所述第一通信装置发送的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
265.在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
266.在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
267.在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
268.在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
269.在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
270.在一种实现方式中,所述第四密钥是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。
271.在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
272.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二数据密钥。
273.在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段包括所述第一指示信息。
274.在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
275.在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
276.在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
277.在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
278.在一种实现方式中,所述方法还包括:利用所述第二身份认证信息对所述第一通信装置进行身份认证。
279.在一种实现方式中,所述利用所述第二身份认证信息对所述第一通信装置进行身份认证,包括:利用所述第四密钥对目标字段进行计算,得到第四身份认证信息;将所述第四身份认证信息和所述第四协议报文中携带的所述第二身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
280.在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第四身份认证信息,包括:利用所述第四密钥对所述目标字段进行计算,得到第二计算结果;利用所述第一密钥对所述第二计算结果进行加密,得到所述第四身份认证信息。
281.在一种实现方式中,所述方法还包括:向所述第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和数据密钥更新结果。
282.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
283.在一种实现方式中,所述第二通信装置保存有第一psk,所述第一协议报文中还包括 psk密钥材料,所述psk密钥材料用于指示所述第一通信装置生成更新的第二psk,所述第二通信装置在所述第一psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二通信装置在第二psk的老化周期内基于
所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
284.在一种实现方式中,所述方法还包括:根据所述psk密钥材料得到所述第二psk。
285.在一种实现方式中,所述第二通信装置保存有第一认证密钥,所述第一协议报文中还包括认证密钥材料,所述认证密钥材料用于指示所述第一通信装置生成更新的第二认证密钥,所述第二通信装置在所述第一认证密钥的老化周期内基于所述第一认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第二通信装置在第二认证密钥的老化周期内基于所述第二认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理。
286.在一种实现方式中,所述方法还包括:根据所述认证密钥材料得到所述第二认证密钥。
287.在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:
288.完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
289.在一种实现方式中,所述第一协议报文包括:扩展认证协议eap头、eap扩展头和关键字字段。
290.在一种实现方式中,所述第一数据密钥材料携带在所述关键字字段中。
291.在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
292.在一种实现方式中,所述第一数据密钥材料携带在所述加密数据字段中。
293.在一种实现方式中,所述方法还包括:接收所述第一通信装置发发送的第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。
294.在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
295.在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的载荷payload 字段中。
296.在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的通知 notification payload字段中。
297.在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的扩展tlv字段中。
298.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。
299.在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
300.在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
301.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第七协议报
文,所述第七协议报文用于指示所述第一通信装置已保存所述第二数据密钥。
302.在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二数据密钥。
303.在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
304.在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
305.在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
306.在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
307.在一种实现方式中,所述第一通信装置为车载装置。例如,所述第一通信装置为t-box 中的通信实体。
308.在一种实现方式中,所述第二通信装置为车载装置。例如,所述第二通信装置为t-box 中的通信实体。
309.在一种实现方式中,所述第一通信装置和所述第二通信装置均属于t-box。
310.第六方面,本技术实施例提供了一种认证密钥的更新方法,该方法可以由第一通信装置执行。在一个示例中,第一通信装置中保存有第一认证密钥,第一认证密钥用于在第一认证密钥的老化周期内对第一通信装置和第二通信装置之间交互的认证报文进行处理。第一通信装置和第二通信装置均可以在第一认证密钥的老化周期内,基于第一认证密钥对第一通信装置和第二通信装置之间交互的认证报文进行处理。在本技术中,第一通信装置和第二通信装置之间利用非以太口通信,和/或,第一通信装置或者第二通信装置不使用非对称密钥算法。第一通信装置可以在第一认证密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一认证密钥材料,该第一认证密钥材料用于生成第二认证密钥。第二认证密钥用于在第二认证密钥的老化周期内对第一通信装置和第二通信装置之间交互的认证报文进行处理。第一通信装置和第二通信装置均可以在第二认证密钥的老化周期内,基于第二认证密钥对第一通信装置和第二通信装置之间交互的认证报文进行处理。由此可见,利用本技术实施例的方案,第一通信装置可以根据第一认证密钥材料对认证密钥进行更新,因此,第一通信装置中保存的认证密钥不再是一成不变的,故而减少了第一通信装置中的认证密钥被破解的可能性,相应的,也避免了由于认证密钥被破解而带来的安全风险。另外,利用本方案,当第一通信装置和第二通信装置之间利用非以太口通信时,也能够实现认证密钥的更新。另外,在一些实施例中,考虑到若第一通信装置和第二通信装置之间基于以太口通信,并且第一通信装置和第二通信装置均使用非对称密钥算法,则第一通信装置和第二通信装置可以利用ike协议实现认证密钥的更新,在本技术的一个示例中,第一通信装置或者第二通信装置不使用非对称密钥算法。这样一来,利用本方案,可以在第一通信装置和第二通信装置中至少有一个通信装置不使用非对称密钥算法时,第一通信装置和第二通信装置之间也可以利用ike协议进行认证密钥的更新。
311.在一种实现方式中,第一通信装置根据第一认证密钥材料获得第二认证密钥之后,可以保存第二认证密钥。当第二认证密钥的老化周期开始时,第一通信装置可以读取所述第二认证密钥,从而利用第二认证密钥对第一通信装置和第二通信装置间交互的报文进
行处理。
312.在一种实现方式中,所述第一协议报文中包括第一指示信息,所述第一指示信息用于指示所述第一通信装置利用对称密钥算法派生所述第二认证密钥。第一通信装置接收到该第一协议报文之后,可以获取所述第一指示信息,从而根据该第一指示信息,确定利用对称密钥算法派生得到所述第二认证密钥。
313.在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
314.在一种实现方式中,当第一通信装置能够使用非对称密钥算法时,第一通信装置可以根据第一认证密钥材料和第一通信装置的第二认证密钥材料,得到第二认证密钥。例如,所述第一认证密钥材料可以是第二通信装置的公共值(public value),第二认证密钥材料可以是第一通信装置的私有值(private value),第一通信装置可以利用非对称密钥算法,根据第二通信装置的public value和第一通信装置的private value,计算得到第二认证密钥。
315.在一种实现方式中,若第一通信装置根据前述第一认证密钥材料和第二认证密钥材料得到第二认证密钥,则第二通信装置也可以利用非对称密钥算法获得第二认证密钥。对于这种情况,第一通信装置可以将第三认证密钥材料发送给第二通信装置,以便于第二通信装置根据所述第三认证密钥材料计算得到第二认证密钥。例如,所述第三认证密钥材料可以是第一通信装置的public value,第二通信装置可以利用所述第一通信装置的public value 和第二通信装置的private value,计算得到第二认证密钥。
316.在一种实现方式中,第二通信装置可以预先获得第二认证密钥,并将第二认证密钥携带在前述第一协议报文中发送给第一通信装置。对于这种情况,第一通信装置接收到的第一协议报文中包括的第一认证密钥材料,即为第二认证密钥。因此,在一个示例中,第一通信装置接收到第一协议报文之后,可以对第一协议报文进行解析,得到第一协议报文中包括的第一认证密钥材料,并将该第一认证密钥材料确定为第二认证密钥。
317.在一种实现方式中,第一通信装置根据第一认证密钥材料得到第二认证密钥在具体实现时,例如可以根据第一认证密钥材料和第一密钥派生算法,得到第二认证密钥。此处提及的第一密钥派生算法,例如可以是kdf,又如可以是prf。关于kdf和prf,可以参考ieee 802.1x-2010中的相关描述部分,此处不做重复描述。
318.在一种实现方式中,第一通信装置根据所述第一认证密钥材料和第一密钥派生算法,得到所述第二认证密钥,在具体实现时,例如可以首先利用第一算法对第一认证密钥材料进行处理,得到中间值,然后再利用所述中间值和第一密钥派生算法,得到第二认证密钥。本技术实施例不具体限定所述第一算法,第一算法可以是密钥派生算法,也可以是其它算法。采用这种方式,只有在第一算法、第一认证密钥材料以及第一密钥派生算法均被破解的情况下,第二认证密钥才能够被破解,从而降低了第二认证密钥被破解的风险,进一步提升了第二认证密钥的安全性。
319.在一种实现方式中,前述第一认证密钥材料可以是随机数。第二通信装置可以生成随机数,并将该随机数作为第一认证密钥材料携带在第一协议报文中发送给第一通信装
置。采用随机数作为第一认证密钥材料,与第二通信装置采用某一规律生成第一认证密钥材料相比,随机数被破解的可能性更低。因此,利用随机数作为第一认证密钥材料,可以降低第一认证密钥材料被破解的可能性,相应的降低第二认证密钥被破解的可能性。
320.在一种实现方式中,所述第一认证密钥材料,包括以下任意一项或者多项:用于生成所述完整性计算密钥的随机数、用于生成所述加密密钥的随机数、用于生成所述密钥派生密钥的随机数和用于生成所述身份认证密钥的随机数。
321.在一种实现方式中,所述身份认证密钥和所述完整性计算密钥可以相同。对于这种情况,若第二认证密钥既包括身份认证密钥又包括所述完整性计算密钥,并且所述第一认证密钥材料为随机数,则第一协议报文中可以少携带一个随机数。
322.在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。对于这种情况,第二通信装置可以对基于eap-psk的报文的报文结构进行重构,将第一 psk密钥材料携带在重构后的基于eap-psk的报文发送给第一通信装置。
323.在一种实现方式中,当第一协议报文为基于eap-psk的报文时,第一协议报文可以包括扩展的tlv字段,前述第一psk密钥材料可以携带在所述扩展的tlv字段中。
324.在一种实现方式中,考虑到第一认证密钥材料用于获得第二认证密钥,因此,第一认证密钥材料的安全性尤为重要,因为一旦第一认证密钥材料被破解,则会增加第二认证密钥被破解的风险。为了避免这个问题,在一个示例中,可以利用第一密钥对第一认证密钥材料进行加密,并将加密之后的第一认证密钥材料携带在第一协议报文中。
325.在一种实现方式中,为了保证第一认证密钥材料的安全性。所述第一协议报文还可以包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。对于这种情况,可以利用所述第一完整性验证信息,初步判断第一认证密钥材料的安全性。利用该第一完整性验证信息,可以确定第一协议报文在传输过程中是否发生误码或者被篡改。若第一协议报文在传输过程中发送误码或者被篡改,则也无法确保第一协议报文中的第一认证密钥材料的安全性。
326.在一种实现方式中,当第一协议报文中包括第一完整性验证信息时,第一通信装置接收到第一协议报文之后,可以首先根据第一完整性验证信息对第一协议报文进行完整性验证,在第一协议报文通过完整性验证的情况下,再获取第一协议报文中的第一认证密钥材料,并根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证。
327.在一种实现方式中,第一协议报文中可以包括用于对第一认证密钥材料进行加密的第一密钥的标识,对于这种情况,第一通信装置可以对第一协议报文进行解析,得到所述第一密钥的标识,而后,第一通信装置可以根据第一密钥的标识获取第一密钥,利用第一密钥对第一协议报文中经过加密处理的第一认证密钥材料进行解密,并根据解密得到的第一认证密钥材料获得第二认证密钥。在一个示例中,第一通信装置中可以保存有第一密钥的标识和第一密钥的对应关系,第一通信装置获得第一密钥的标识之后,可以利用该对应关系得到第一密钥。
328.在一种实现方式中,当第一协议报文中包括第一完整性验证信息时,该第一完整性验证信息可以是第二通信装置利用第二密钥计算得到的。在一个示例中,所述第一协议报文可以包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥。对于这种情况,第一通信装置利用第一完整性验证信息对第一协议报文进行完整性验证时,可以根据该第二
密钥的标识获得第二密钥,然后利用第二密钥和第一完整性验证信息,对第一协议报文进行完整性验证。在一个示例中,第一完整性验证信息可以携带在第一协议报文的icv字段中,第一通信装置可以利用第二密钥对第一协议报文中除icv字段的其它字段进行计算,得到第三完整性验证信息,而后对第三完整性验证信息和第一完整性验证信息进行匹配验证。在一个示例中,当第三完整性验证信息和第一完整性验证信息相等时,可以确定第一协议报文通过完整性验证;当第三完整性验证信息和第一完整性验证信息不相等时,可以确定第一协议报文未通过完整性验证。
329.在一种实现方式中,第一通信装置在接收所述第一协议报文之前,还可以向所述第二通信装置发送第二协议报文,所述第二协议报文中可以携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。通过第二协议报文,第一通信装置和第二通信装置可以完成第三密钥的协商,从而确定在第一协议报文中对第一认证密钥材料进行加密处理的第一密钥。此处提及的第二协议报文,也可以是基于 eap-psk的报文。
330.在一种实现方式中,第一通信装置在接收所述第一协议报文之前,还可以向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。通过第二协议报文,第一通信装置和第二通信装置可以完成第三密钥的协商,从而确定在计算所述第一完整性验证信息的第二密钥。此处提及的第二协议报文,也可以是基于eap-psk的报文。
331.在一种实现方式中,所述第三密钥可以是第一psk。其中,第一通信装置本地和第二通信装置本地可以各自保存所述第一psk。第二通信装置可以利用该第一psk派生得到第一密钥和第二密钥,并利用第一密钥对第一认证密钥材料进行加密,利用第二密钥计算所述第一完整性验证信息;第一通信装置可以利用所述第一psk派生得到第一密钥和第二密钥,并利用第一密钥解密第一协议报文中经过加密处理的第一认证密钥材料,以及利用第二密钥对第一协议报文进行完整性验证。
332.在一种实现方式中,第一通信装置在向所述第二通信装置发送所述第二协议报文之前,还可以接收来自于所述第二通信装置的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。对于这种情况,前述第二协议报文可以用于指示所述第一通信装置同意进行身份认证。这样一来,可以在身份认证的初始交互阶段,完成第三密钥的协商,无需再利用额外的信令交互流程来进行第三密钥的协商,可以减少第一通信装置和第二通信装置之间的信令交互。此处提及的第三协议报文,也可以是基于eap-psk的报文。
333.在一种实现方式中,所述第三协议报文中可以携带所述第三密钥的标识。由于第三协议报文中包括第三密钥的标识,第一通信装置接收到第三协议报文之后,向第二通信装置发送第二协议报文,第二协议报文中也包括第三密钥的标识。通过第三协议报文和第二协议报文,第一通信装置和第二通信装置完成了对第三密钥的协商以及完成了身份认证初始阶段的交互。
334.在一种实现方式中,第一通信装置和第二通信装置之间完成第三协议报文和第二协议报文的交互之后,可以进入身份认证流程。对于这种情况,所述第一协议报文中除了包
括第一认证密钥材料之外,还可以包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。采用这种方式,第一通信装置可以在对第二通信装置进行身份认证的同时,获得第一认证密钥材料。
335.在一种实现方式中,考虑到第一身份认证信息可以用于确定第二通信装置的身份,因此,第一身份认证信息的安全性尤为重要。因此,在一个示例中,可以利用第一密钥对第一身份认证信息进行加密处理。换言之,所述第一协议报文中可以包括利用第一密钥加密处理之后的第一身份认证信息。
336.在一种实现方式中,所述第一身份认证信息可以是第二通信装置利用第四密钥对目标字段进行计算得到的,其中,所述目标字段可以包括所述第三协议报文的部分或者全部字段,和/或,所述第二协议报文的部分或者全部字段。
337.在一种实现方式中,第一通信装置接收到第一协议报文之后,可以利用第一协议报文中的第一身份认证信息,对第二通信装置进行身份认证。在一个示例中,第一通信装置可以在确定第二通信装置通过身份认证之后,再执行根据第一认证密钥材料获得第二认证密钥的步骤。因为认证密钥的安全性尤为重要,第一通信装置不能和不可信的第二通信装置进行认证密钥的更新。
338.在一种实现方式中,第一通信装置利用第一身份认证信息对所述第二通信装置进行身份认证在具体实现时,例如可以利用第四密钥对前述目标字段进行计算,得到第三身份认证信息,并将第三身份认证信息和所述第一协议报文中携带的所述第一身份认证信息进行匹配验证。在一个示例中,若第一身份认证信息和第三身份认证信息相同,则可以确定第二通信装置通过身份认证,若第一身份认证信息和第三身份认证信息不同,则可以确定第二通信装置未通过身份认证。可以理解的是,若所述目标字段包括第三协议报文中的部分或者全部字段,则第二通信装置计算第一身份认证信息时,所使用的是第二通信装置发送的第三协议报文中的部分或者全部字段,而第一通信装置计算第三身份认证信息时,所使用的是接收到的第三协议报文中的部分或者全部字段。采用这种方式,也可以在一定程度上对第三协议报文进行验证,以验证第三协议报文在传输过程中是否被篡改。类似的,若所述目标字段包括第二协议报文中的部分或者全部字段,则第二通信装置计算第一身份认证信息时,所使用的是第二通信装置接收的第二协议报文中的部分或者全部字段,而第一通信装置计算第三身份认证信息时,所使用的是第一通信装置发送的第二协议报文中的部分或者全部字段。采用这种方式,也可以在一定程度上对第二协议报文进行验证,以验证第二协议报文在传输过程中是否被篡改。
339.在一种实现方式中,若第一协议报文中的第一身份认证信息是利用第一密钥加密之后的信息,则第一通信装置利用所述第四密钥对目标字段进行计算,得到第三身份认证信息,在具体实现时,可以首先利用所述第四密钥对所述目标字段进行计算,得到第一计算结果,而后,利用所述第一密钥对所述第一计算结果进行加密,得到所述第三身份认证信息。
340.在一种实现方式中,前述所述第四密钥可以由所述第三密钥派生得到。
341.在一种实现方式中,前述第四密钥可以是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。对于这种情况,第一密钥和第二密钥利用第三密钥(例如第一 psk)派生得到,第四密钥利用第三psk派生的到。采用这种方式,只有第一psk和第三psk
均被破解,不可信的第三方通信装置才可能实现对第一协议报文的仿冒,从而提升了第一协议报文的安全性。
342.在一种实现方式中,当第四密钥由第三psk派生得到时,所述第二协议报文中可以携带所述第三psk的标识,所述第三psk的标识用于标识所述第三psk。对于这种情况,第一通信装置和第二通信装置可以通过第二协议报文完成第三psk的协商。
343.在一种实现方式中,第一通信装置根据第一认证密钥材料得到第二认证密钥之后,可以将对第一认证密钥材料的处理结果告知第二通信装置,在一个示例中,第一通信装置可以向所述第二通信装置发送第四协议报文,所述第四协议报文中携带第二指示信息,所述第二指示信息用于指示所述第一通信装置已保存所述第二认证密钥。其中,所述第四协议报文可以是基于eap-psk的报文。
344.在一种实现方式中,第一通信装置可以对基于eap-psk的报文进行扩展,将所述第二指示信息携带在扩展的tlv字段中。
345.在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。这样一来,第二通信装置接收到第四协议报文之后,可以利用该第二完整性验证信息确定第四协议报文在传输过程中是否发生误码或者被篡改。
346.在一种实现方式中,所述第四协议报文中除了包括前述第一指示信息之外,还可以包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。这样一来,利用第三协议报文和第四协议报文,第一通信装置和第二通信装置之间完成了双向身份认证以及认证密钥的更新。
347.在一种实现方式中,与第二通信装置对第一身份认证信息的处理方式类似,第一通信装置也可以在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
348.在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。如前文对于第一身份认证的描述可知,当第二身份认证信息根据第二协议报文中的部分或者全部字段计算得到时,可以验证第二协议报文在传输过程中是否被篡改,当第二身份认证信息根据第三协议报文中的部分或者全部字段计算得到时,可以验证第三协议报文在传输过程中是否被篡改。
349.在一种实现方式中,第一通信装置向第二通信装置发送第四协议报文之后,第二通信装置一方面可以利用第二身份认证信息对第一通信装置进行身份认证,另一方面要对第四协议报文中的第一指示信息进行确认。而后,第二通信装置可以向第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和认证密钥更新结果。其中,所述第五协议报文可以是基于eap-psk的报文。
350.在一种实现方式中,若所述第五协议报文中的身份认证结果指示身份认证失败,则说明第一通信装置未通过身份认证,换言之,第二通信装置认为第一通信装置不可信,此时,第一通信装置和第二通信装置不能进行认证密钥的更新,因此,第一通信装置可以删除所述第二认证密钥。若第五协议报文中的认证密钥更新结果指示认证密钥更新失败,则第一通信装置可以删除所述第二认证密钥。其中认证密钥更新失败的原因有多种,例如第二通信装置本地更新认证密钥失败,又如,第二通信装置对第一指示信息进行验证时,确定第
一指示信息未通过验证。
351.在一种实现方式中,第一通信装置接收到了第五协议报文之后,可以向所述第二通信装置发送第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。其中,所述第六协议报文可以是基于eap-psk的报文。
352.在一种实现方式中,前述第五协议报文中也可以包括icv字段,对于这种情况,第一通信装置接收到第五协议报文之后,可以对所述第五协议报文进行完整性验证。以确定第五协议报文在传输过程中是否发生误码或者篡改。
353.在一种实现方式中,所述第一通信装置保存有第一psk,所述第一协议报文中包括psk 密钥材料,所述psk密钥材料用于生成更新的第二psk,所述第一通信装置在所述第一 psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第一通信装置在第二psk的老化周期内基于所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。对于这种情况,第一通信装置还可以根据所述psk密钥材料得到所述第二psk。对于这种情况,第一通信装置可以利用第一协议报文,实现psk的更新和数据密钥的更新。
354.在一种实现方式中,所述第一通信装置保存有第一数据密钥,所述第一协议报文中还包括数据密钥材料,所述数据密钥材料用于生成更新的第二数据密钥,所述第一通信装置在所述第一数据密钥的老化周期内基于所述第一数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第一通信装置在第二数据密钥的老化周期内基于所述第二数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理;此时,第一通信装置可以根据所述数据密钥材料得到所述第二数据密钥。对于这种情况,第一通信装置可以利用第一协议报文,实现认证密钥的更新和数据密钥的更新。
355.在一种实现方式中,所述第二数据密钥包括:完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
356.在一种实现方式中,所述第一协议报文包括:eap头、eap扩展头和关键字字段。
357.在一种实现方式中,所述第一认证密钥材料携带在所述关键字字段中。
358.在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
359.在一种实现方式中,所述第一认证密钥材料携带在所述加密数据字段中。
360.在一种实现方式中,在接收第一协议报文之前,第一通信装置可以向所述第二通信装置发送第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。第二通信装置根据该第三指示信息确定第一通信装置具备自动更新认证密钥的能力之后,可以将第一认证密钥材料携带在第一协议报文中发送给第一通信装置。
361.在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
362.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一认证密钥材料携带在所述第一协议报文的载荷payload字段中。
363.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一认证密钥材料
携带在所述第一协议报文的通知notification payload字段中。
364.在一种实现方式中,当第一协议报文为基于ike的报文时,所述第一认证密钥材料携带在所述第一协议报文的扩展tlv字段中。
365.在一种实现方式中,当第一协议报文为基于ike的报文时,第一通信装置还可以向所述第二通信装置发送第四指示信息,所述第四指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。第二通信装置根据该第四指示信息确定第一通信装置具备自动更新认证密钥的能力之后,可以将第一认证密钥材料携带在第一协议报文中发送给第一通信装置。
366.在一种实现方式中,所述第四指示信息携带在基于ike协议的报文的notificationpayload字段中。
367.在一种实现方式中,所述第四指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
368.在一种实现方式中,第一通信装置根据第一认证密钥材料得到第二认证密钥之后,可以将对第一认证密钥材料的处理结果告知第二通信装置,在一个示例中,第一通信装置可以向所述第二通信装置发送第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二认证密钥。
369.在一种实现方式中,所述第七协议报文中包括第五指示信息,所述第五指示信息用于指示所述第一通信装置已保存所述第二认证密钥。
370.在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第五指示信息携带在所述第七协议报文的通知消息类型字段中。
371.在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
372.在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
373.在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
374.在一种实现方式中,所述第一通信装置为车载装置。例如,所述第一通信装置为t-box 中的通信实体。
375.在一种实现方式中,所述第二通信装置为车载装置。例如,所述第二通信装置为t-box 中的通信实体。
376.在一种实现方式中,所述第一通信装置和所述第二通信装置均属于t-box。
377.第七方面,本技术实施例提供了一种认证密钥的更新方法,该方法可以由第二通信装置执行。在一个示例中,第二通信装置可以获取第一认证密钥材料,该第一认证密钥材料用于生成第二认证密钥。第二通信装置获取第一认证密钥材料之后,可以根据第一认证密钥材料生成第一协议报文,第一协议报文包括所述第一认证密钥材料。其中,第一通信装置和第二通信装置之间利用非以太口通信,和/或,第一通信装置或者第二通信装置不使用非对称密钥算法。第二通信装置生成第一协议报文之后,可以将该第一协议报文发送的第一通信装置,以便于第一通信装置基于该第一认证密钥材料生成更新的第二认证密钥。由此可见,利用本技术实施例的方案,第一通信装置可以根据第一认证密钥材料对认证密钥
进行更新,因此,第一通信装置中保存的认证密钥不再是一成不变的,故而减少了第一通信装置中的认证密钥被破解的可能性,相应的,也避免了由于认证密钥被破解而带来的安全风险。
378.在一种实现方式中,第二通信装置还可以存储所述第一认证密钥材料。对于这种情况,第二通信装置可以在第二认证密钥的老化周期开始之前,获得存储的所述第一认证密钥材料,并根据所述第一认证密钥材料得到第二认证密钥。这样一来,第二通信装置即可在第二认证密钥的老化周期内,利用第二认证密钥对第一通信装置和第二通信装置之间交互的报文进行处理。
379.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第三认证密钥材料;根据所述第三认证密钥材料获得所述第二认证密钥。
380.在一种实现方式中,所述方法还包括:根据所述第一认证密钥材料得到所述第二认证密钥。
381.在一种实现方式中,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:将所述第一认证密钥材料确定为所述第二认证密钥。
382.在一种实现方式中,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:根据所述第一认证密钥材料和第一密钥派生算法,得到所述第二认证密钥。
383.在一种实现方式中,所述根据所述第一认证密钥材料和第一密钥派生算法,得到所述第二认证密钥,包括:利用第一算法对所述第一认证密钥材料进行计算,得到中间值;根据所述中间值和所述第一密钥派生算法,生成所述第二认证密钥。
384.在一种实现方式中,所述方法还包括:保存所述第二认证密钥。
385.在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
386.在一种实现方式中,所述第一认证密钥材料包括随机数。
387.在一种实现方式中,所述第一认证密钥材料,包括以下任意一项或者多项:用于生成所述完整性计算密钥的随机数、用于生成所述加密密钥的随机数、用于生成所述密钥派生密钥的随机数以及用于生成所述身份认证密钥的随机数。
388.在一种实现方式中,所述身份认证密钥和所述完整性计算密钥相同。
389.在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
390.在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一认证密钥材料。
391.在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一认证密钥材料。
392.在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
393.在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识。
394.在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标
识用于标识第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
395.在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
396.在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
397.在一种实现方式中,所述第三密钥包括所述第一通信装置和所述第二通信装置中存储的第一psk。
398.在一种实现方式中,在接收所述第一通信装置发送的第二协议报文,所述方法还包括:向所述第一通信装置发送的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
399.在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
400.在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
401.在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
402.在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
403.在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
404.在一种实现方式中,所述第四密钥是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。
405.在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
406.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二认证密钥。
407.在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段包括所述第一指示信息。
408.在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
409.在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
410.在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
411.在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
412.在一种实现方式中,所述方法还包括:利用所述第二身份认证信息对所述第一通信装置进行身份认证。
413.在一种实现方式中,所述利用所述第二身份认证信息对所述第一通信装置进行身份认证,包括:利用所述第四密钥对目标字段进行计算,得到第四身份认证信息;将所述第四身份认证信息和所述第四协议报文中携带的所述第二身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
414.在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第四身份认证信息,包括:利用所述第四密钥对所述目标字段进行计算,得到第二计算结果;利用所述第一密钥对所述第二计算结果进行加密,得到所述第四身份认证信息。
415.在一种实现方式中,所述方法还包括:向所述第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和认证密钥更新结果。
416.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
417.在一种实现方式中,所述第二通信装置保存有第一psk,所述第一协议报文中还包括psk密钥材料,所述psk密钥材料用于指示所述第一通信装置生成更新的第二psk,所述第二通信装置在所述第一psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二通信装置在第二psk的老化周期内基于所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
418.在一种实现方式中,所述方法还包括:根据所述psk密钥材料得到所述第二psk。
419.在一种实现方式中,所述第二通信装置保存有第一数据密钥,所述第一协议报文中还包括数据密钥材料,所述数据密钥材料用于指示所述第一通信装置生成更新的第二数据密钥,所述第二通信装置在所述第一数据密钥的老化周期内基于所述第一数据密钥对所述第一通信装置和所述第二通信装置之间交互的身份数据报文进行处理,所述第二通信装置在第二数据密钥的老化周期内基于所述第二数据密钥对所述第一通信装置和所述第二通信装置之间交互的身份数据报文进行处理。
420.在一种实现方式中,所述方法还包括:根据所述数据密钥材料得到所述第二数据密钥。
421.在一种实现方式中,所述第二数据密钥包括以下任意一项或者多项:完整性计算密钥和加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
422.在一种实现方式中,所述第一协议报文包括:扩展认证协议eap头、eap扩展头和关键字字段。
423.在一种实现方式中,所述第一认证密钥材料携带在所述关键字字段中。
424.在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
425.在一种实现方式中,所述第一认证密钥材料携带在所述加密数据字段中。
426.在一种实现方式中,所述方法还包括:接收所述第一通信装置发发送的第二指示
信息,所述第二指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。
427.在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
428.在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的载荷payload 字段中。
429.在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的通知 notification payload字段中。
430.在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的扩展tlv字段中。
431.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。
432.在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
433.在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
434.在一种实现方式中,所述方法还包括:接收所述第一通信装置发送的第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二认证密钥。
435.在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二认证密钥。
436.在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
437.在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
438.在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
439.在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
440.在一种实现方式中,所述第一通信装置为车载装置。
441.在一种实现方式中,所述第二通信装置为车载装置。
442.第八方面,本技术实施例提供了一种基于psk进行macsec通信的方法,该方法可以由第一通信装置执行。在一个示例中,第一通信装置中保存有第一psk,第一psk用于在第一psk的老化周期内对第一通信装置和第二通信装置之间交互的报文进行处理。第一通信装置和第二通信装置均可以在第一psk的老化周期内,基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。在本技术中,第一通信装置可以在第一psk 的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk 密钥材料,该第一psk密钥材料用于生成第二psk。第二psk用于在第二psk的老化周期内对第一通信装置和第二通信装置之间交互的报文进行处理。第一通信装置和第二通信装置均可以在第二psk的老化周期内,基于第二psk对第一通信装置和第二通信装置之间交互的报文进行处理。第一通信装置基于第一psk密钥材料得到第二psk之后,可以在第二psk的老化周期内利用第二psk派生macsec密钥。由此可见,利用本技术实施例的方案,第一通信装置可以根据
第一psk密钥材料对psk进行更新,因此,第一通信装置中保存的psk不再是一成不变的,故而减少了第一通信装置中的psk被破解的可能性,相应的降低由psk派生得到的macsec密钥被破解的风险,从而降低安全隐患。
443.关于第一通信装置获取第一psk密钥材料,并根据第一psk密钥材料获得第二psk 的具体实现,可以参考以上第二方面的相关描述,此处不做详述。
444.第九方面,本技术实施例提供了一种基于psk进行macsec通信的方法,该方法可以由第二通信装置执行。在一个示例中,第二通信装置可以获取第一psk密钥材料,该第一psk密钥材料用于生成第二psk。第二通信装置获取第一psk密钥材料之后,可以根据第一psk密钥材料生成第一协议报文,第一协议报文包括所述第一psk密钥材料。第二通信装置生成第一协议报文之后,可以将该第一协议报文发送的第一通信装置,以便于第一通信装置基于该第一psk密钥材料生成更新的第二psk,并在第二psk的老化周期内基于第二psk派生macsec密钥。由此可见,利用本技术实施例的方案,第一通信装置可以根据第一psk密钥材料对psk进行更新,因此,第一通信装置中保存的psk不再是一成不变的,故而减少了第一通信装置中的psk被破解的可能性,相应的降低由psk 派生得到的macsec密钥被破解的风险,从而降低安全隐患。
445.另外,第二通信装置还可以执行以上第三方面任意一项所述的方法。
446.第十方面,本技术实施例提供了一种第一通信装置,包括:收发单元和处理单元。所述收发单元用于执行以上第一方面以及第一方面任意一项所述的第一通信装置执行的收发操作,所述处理单元用于执行以上第一方面以及第一方面任意一项所述的第一通信装置执行的除收发操作之外的其它操作;或者,所述收发单元用于执行以上第二方面以及第二方面任意一项所述的第一通信装置执行的收发操作,所述处理单元用于执行以上第二方面以及第二方面任意一项所述的第一通信装置执行的除收发操作之外的其它操作;或者,所述收发单元用于执行以上第四方面以及第四方面任意一项所述的第一通信装置执行的收发操作,所述处理单元用于执行以上第四方面以及第四方面任意一项所述的第一通信装置执行的除收发操作之外的其它操作;或者,所述收发单元用于执行以上第六方面以及第六方面任意一项所述的第一通信装置执行的收发操作,所述处理单元用于执行以上第六方面以及第六方面任意一项所述的第一通信装置执行的除收发操作之外的其它操作;或者,所述收发单元用于执行以上第八方面以及第八方面任意一项所述的第一通信装置执行的收发操作,所述处理单元用于执行以上第八方面以及第八方面任意一项所述的第一通信装置执行的除收发操作之外的其它操作。
447.第十一方面,本技术实施例提供了一种第二通信装置,包括:收发单元和处理单元。所述收发单元用于执行以上第三方面以及第三方面任意一项所述的第二通信装置执行的收发操作,所述处理单元用于执行以上第三方面以及第三方面任意一项所述的第二通信装置执行的除收发操作之外的其它操作;或者,所述收发单元用于执行以上第五方面以及第五方面任意一项所述的第二通信装置执行的收发操作,所述处理单元用于执行以上第五方面以及第五方面任意一项所述的第二通信装置执行的除收发操作之外的其它操作;或者,所述收发单元用于执行以上第七方面以及第七方面任意一项所述的第二通信装置执行的收发操作,所述处理单元用于执行以上第七方面以及第七方面任意一项所述的第二通信装置执行的除收发操作之外的其它操作;或者,所述收发单元用于执行以上第九方面以及
第九方面任意一项所述的第二通信装置执行的收发操作,所述处理单元用于执行以上第九方面以及第九方面任意一项所述的第二通信装置执行的除收发操作之外的其它操作。
448.第十二方面,本技术实施例提供了一种第一通信装置,包括:通信接口;和与所述通信接口连接的处理器;根据所述通信接口和所述处理器,所述第一通信装置用于执行前述第一方面以及第一方面任意一项所述的方法;或者,所述第一通信装置用于执行前述第二方面以及第二方面任意一项所述的方法;或者,所述第一通信装置用于执行前述第四方面以及第四方面任意一项所述的方法;或者,所述第一通信装置用于执行前述第六方面以及第六方面任意一项所述的方法;或者,所述第一通信装置用于执行前述第八方面以及第八方面任意一项所述的方法。在一个示例中,由第一通信装置执行的方法可以由中央处理器 (central processing unit,cpu)和软件程序执行;在又一个示例中,由第一通信装置执行的方法可以由芯片执行。
449.第十三方面,本技术实施例提供了一种第二通信装置,包括:通信接口;和与所述通信接口连接的处理器;根据所述通信接口和所述处理器,所述第二通信装置用于执行前述第三方面以及第三方面任意一项所述的方法;或者,所述第二通信装置用于执行前述第五方面以及第五方面任意一项所述的方法;或者,所述第二通信装置用于执行前述第七方面以及第七方面任意一项所述的方法;或者,所述第二通信装置用于执行前述第九方面以及第九方面任意一项所述的方法。在一个示例中,由第二通信装置执行的方法可以由cpu和软件程序执行;在又一个示例中,由第二通信装置执行的方法可以由芯片执行。
450.第十四方面,本技术实施例提供了一种第一通信装置,所述第一通信装置包括存储器和处理器;所述存储器,用于存储程序代码;所述处理器,用于运行所述程序代码中的指令,使得所述第一通信装置执行前述第一方面以及第一方面任意一项所述的方法;或者,使得所述第一通信装置执行前述第二方面以及第二方面任意一项所述的方法;或者,使得所述第一通信装置执行前述第四方面以及第四方面任意一项所述的方法;或者,使得所述第一通信装置执行前述第六方面以及第六方面任意一项所述的方法;或者,使得所述第一通信装置执行前述第八方面以及第八方面任意一项所述的方法。
451.第十五方面,本技术实施例提供了一种第二通信装置,所述第二通信装置包括存储器和处理器;所述存储器,用于存储程序代码;所述处理器,用于运行所述程序代码中的指令,使得所述第二通信装置执行前述第三方面以及第三方面任意一项所述的方法;或者,使得所述第二通信装置执行前述第五方面以及第五方面任意一项所述的方法;或者,使得所述第二通信装置执行前述第七方面以及第七方面任意一项所述的方法;或者,使得所述第二通信装置执行前述第九方面以及第九方面任意一项所述的方法。
452.第十六方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面以及第一方面任意一项所述的方法,或者,使得所述计算机执行以上第二方面以及第二方面任意一项所述的方法,或者,使得所述计算机执行以上第三方面以及第三方面任意一项所述的方法,或者,使得所述计算机执行以上第四方面以及第四方面任意一项所述的方法,或者,使得所述计算机执行以上第五方面以及第五方面任意一项所述的方法,或者,使得所述计算机执行以上第六方面以及第六方面任意一项所述的方法;或者,使得所述计算机执行以上第七方面以及第七方面任意一项所述的方法,或者,使得所述计算机执行以上第八方面
以及第八方面任意一项所述的方法,或者,使得所述计算机执行以上第九方面以及第九方面任意一项所述的方法。
453.第十七方面,本技术实施例提供了一种通信系统,其特征在于,包括以上第十方面或者第十二方面或者第十四方面所述的第一通信装置以及以上第十一方面或者第十三方面或者第十五方面所述的第二通信装置。
454.第十八方面,本技术实施例提供了一种通信设备,其特征在于,包括以上第十方面或者第十二方面或者第十四方面所述的第一通信装置以及以上第十一方面或者第十三方面或者第十五方面所述的第二通信装置。
455.在一种实现方式中,所述通信设备可以为物联网(internet of things,iot)设备。作为一个示例,所述通信设备可以为车辆;作为又一个示例,所述通信设备可以为例如手环等智能穿戴设备;作为另一个示例,所述通信设备可以为例如扫地机器人等智能家居设备。
456.在一种实现方式中,所述通信设备为t-box。示例性地,所述第一通信装置可以是网络接入设备,所述第二通信装置可以是微控制器。
457.第十九方面,本技术实施例提供了一种通信方法,由第十八方面所述的通信设备执行,该方法包括:所述第一通信装置执行如前述任一方面或任一实现方式中由第一通信装置所执行的操作;所述第二通信装置执行如前述任一方面或任一实现方式中由第二通信装置所执行的操作。
附图说明
458.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
459.图1为一种示例性应用场景示意图;
460.图2a为本技术实施例提供的一种psk的处理方法的流程示意图;
461.图2b为本技术实施例提供的一种psk的更新方法的信令交互图;
462.图3a为本技术实施例提供的一种eap-psk报文的结构示意图;
463.图3b为本技术实施例提供的一个tlv字段的结构示意图;
464.图3c为本技术实施例提供的一种eap-psk报文的结构示意图;
465.图3d为本技术实施例提供的一个encrypted payload字段的结构示意图;
466.图3e为本技术实施例提供的一个待加密字段的结构示意图;
467.图3f为本技术实施例提供的一个key material payload字段的示意图;
468.图3g为本技术实施例提供的一个key material字段的示意图;
469.图3h为本技术实施例提供的一个待加密字段的结构示意图;
470.图3i为本技术实施例提供的一个key confirmed payload字段的示意图;
471.图3j为本技术实施例提供的一个key confirmed字段的示意图;
472.图3k所示的为本技术实施例提供的一个待加密字段的结构示意图;
473.图3l为本技术实施例提供的一个result payload字段的示意图;
474.图3m为本技术实施例提供的一种eap-psk报文的结构示意图;
475.图3n为传统eap-psk报文的结构示意图;
476.图3o为本技术实施例提供的一种协议栈的示意图;
477.图4为本技术实施例提供的一种psk更新的方法的信令交互图;
478.图5a为本技术实施例提供的一种mka能力通知参数集的示意图;
479.图5b为本技术实施例提供的一种mka分发更新psk参数集的示意图;
480.图5c为本技术实施例提供的一种mka psk存储结果通知参数集的示意图;
481.图6为本技术实施例提供的一种密钥更新的方法的信令交互图;
482.图7a为本技术实施例提供的一个notification payload字段的结构示意图;
483.图7b为本技术实施例提供的一种notification data字段的结构示意图;
484.图7c为本技术实施例提供的一种notification data字段的结构示意图;
485.图7d为本技术实施例提供的一种key distribute payload的结构示意图;
486.图7e为本技术实施例提供的一种notification data字段的结构示意图;
487.图8为本技术实施例提供的一种psk的处理方法的流程示意图;
488.图9a为本技术实施例提供的一种psk的更新方法的流程示意图;
489.图9b为本技术实施例提供的一种psk的更新方法的流程示意图;
490.图10a为本技术实施例提供的一种数据密钥的更新方法的流程示意图;
491.图10b为本技术实施例提供的一种数据密钥的更新方法的流程示意图;
492.图11a为本技术实施例提供的一种认证密钥的更新方法的流程示意图;
493.图11b为本技术实施例提供的一种认证密钥的更新方法的流程示意图;
494.图12a为本技术实施例提供的一种基于psk进行macsec通信的方法的流程示意图;
495.图12b为本技术实施例提供的一种基于psk进行macsec通信的方法的流程示意图;
496.图13为本技术实施例提供的一种通信装置的结构示意图;
497.图14为本技术实施例提供的一种通信装置的结构示意图;
498.图15为本技术实施例提供的一种通信装置的结构示意图。
具体实施方式
499.本技术实施例提供了一种psk的更新方法,可以避免由于psk被破解而带来的安全风险。
500.为方便理解,首先对本技术实施例可能的应用场景进行介绍。
501.参见图1,该图为一种示例性应用场景示意图。
502.如图1所示,车载信息盒(telematics-box,t-box)包括网络接入设备(network access device,nad)101和微控制器(micro controller unit,mcu)102。其中,nad 101可以和车外设备进行通信,mcu 102可以和车内其它设备例如车内其它mcu进行通信。其中:
503.nad 101的计算资源充足,nad 101的中央处理器(central processing unit,cpu)的计算能力相对较强。
504.mcu 102的计算资源相对较少,例如,mcu 102的随机存取存储器(random accessmemory,ram)的大小大约在300千字节(kilobyte,kb)左右。mcu 102上可以运行有一个或者多个软件程序,mcu 102对软件程序包的大小和随机存取存储器(randomaccess memory,
ram)的占用非常敏感。在一个示例中,mcu 102需要支持通信安全功能,对于这种情况,可以要求要求软件程序包不超过150千字节(kilobyte,kb),并且要求前述通信安全功能所占用的ram不超过10kb。mcu 102的cpu计算能力较弱,不支持非对称算法,无法使用证书认证,也无法使用密钥交换算法。
505.在一个示例中,当需要对软件程序进行更新时,可以由车外的设备例如服务器将更新的软件程序包发送给nad 101,再由nad 101将更新的软件程度发送给mcu 102。
506.在又一个示例中,mcu 102可以采集车内的运行数据,并将采集的运行数据发送给 nad 101,由nad 101将该运行数据发送给车外的设备例如服务器,从而实现远程采集车内的运行数据。为保护数据隐私,mcu 102将运行数据发送给nad 101时,可以采用加密的方式。
507.在另一个示例中,当车辆支持远程控制功能例如远程打开车门等功能时,可以由车外的设备将远程控制功能对应的控制报文发送给nad 101,再由nad 101将该控制报文发送给mcu 102,mcu 102与车内其它设备进行交互,从而控制车辆执行相应的动作例如打开车门等。为保证车辆运行安全,mcu 102接收到来自于nad 101的控制报文之后,需要对该控制报文进行验证。
508.在以上场景中,为保证nad 101和mcu 102之间的进行数据交互时的数据安全,nad 101和mcu 102可以利用psk对nad 101和mcu 102之间交互的报文进行处理。在一些实施例中,nad 101本地和mcu 102本地可以分别存储该psk。在该psk的老化周期内,nad 101可以从本地读取该psk,并利用读取的psk对nad 101和mcu 102之间交互的报文进行处理。类似的,在该psk的老化周期内,mcu 102可以从本地读取该psk,并利用读取的psk对nad 101和mcu 102之间交互的报文进行处理。
509.若在该psk的老化周期内,nad 101或者mcu 102无法利用该psk对nad 101和 mcu 102间交互的报文进行处理,则可能导致nad 101和mcu 102无法正常通信。
510.为了解决这个问题,本技术实施例提供了一种psk的处理方法,该方法可以由通信装置1或者通信装置2执行,此处提及的通信装置2可以是图1所示的nad 101,此处提及的通信装置1可以是图1所示的mcu 102;当然,通信装置1和通信装置2也可以是其它通信装置,本技术实施例不做具体限定。在本技术实施例中,以通信装置2执行该psk的处理方法为例进行说明。
511.本技术实施例中提及的通信装置,可以是具备与其它设备进行数据交互的设备。例如:可以是图1所示的nad 101和mcu 102,还可以是网络设备,还可以是用户设备或者服务器,等等,本技术实施例不做具体限定。另外,通信装置也可以是具备与其它设备进行数据交互的设备上的一部分组件,例如是网络设备上的单板,线卡,还可以是网络设备上的一个功能模块,本技术实施例不做限定。
512.以下结合附图介绍本技术实施例提供的psk的处理方法。
513.参见图2a,该图为本技术实施例提供的一种psk的处理方法的流程示意图。图2a所示的psk的处理方法100’,由通信装置2执行,其中,通信装置2中保存有psk1,通信装置2可以在psk1的老化周期内,基于psk1对通信装置1和通信装置2之间交互的报文进行处理。其中:基于psk1对通信装置1和通信装置2之间交互的报文进行处理,例如可是基于psk1派生得到加密密钥和完整性计算密钥,当通信装置1和通信装置2之间传递用于进行身份认证的
报文时,通信装置2基于psk1派生得到加密密钥对该用于进行身份认证的报文进行加密,通信装置2基于psk1派生得到完整性计算密钥对该用于进行身份认证的报文进行完整性计算。
514.相应的,通信装置1中也保存有psk1,通信装置1可以在psk1的老化周期内,基于 psk1对通信装置1和通信装置2之间交互的报文进行处理。
515.方法100’例如可以包括如下s101a-s102a。
516.s101a:通信装置2在psk 1的老化周期内,确定通信装置2不能基于psk1对通信装置1和通信装置2之间交互的报文进行处理。
517.在本技术实施例中,psk1可以保存在通信装置2的非易失存储区。当通信装置2需要利用psk1对通信装置1和通信装置2之间交互的报文进行处理时,通信装置2可以从该非易失存储区读取该psk1,并进一步利用读取的psk1对通信装置1和通信装置2之间交互的报文进行处理。在一个示例中,若通信装置2从该非易失存储区读取psk1失败,则通信装置2可以确定不能基于该psk1对通信装置1和通信装置2之间交互的报文进行处理。其中,通信装置1从该非易失存储区读取psk1失败的原因,本技术实施例不做具体限定。作为一个示例,通信装置1从该非易失存储区读取psk1失败的原因,可以是该非易失存储区损坏。
518.s102a:通信装置2基于通信装置2本地保存的psk2对通信装置1和通信装置2之间交互的报文进行处理。
519.在本技术实施例中,通信装置2本地除了保存有psk1之外,还可以存储有psk2。 psk2也可以存储在通信装置2的非易失存储区。例如,通信装置2包括两个非易失存储区,分别是非易失存储区1和非易失存储区2,非易失存储区1中保存有psk1,非易失存储区2中保存有psk2。
520.可以理解的是,若通信装置2不能利用psk1对通信装置1和通信装置2之间交互的报文进行处理,则可能会影响通信装置1和通信装置2正常通信。例如,通信装置2预期利用psk1派生的认证密钥和通信装置1进行身份认证,但是由于psk1读取失败等原因导致通信装置2无法利用psk1派生的认证密钥和通信装置1进行身份认证。则可能会导致身份认证无法正常进行,相应的,通信装置2也无法正常和通信装置1进行通信。为了避免这个问题,在本技术实施例中,通信装置2可以利用psk2对通信装置1和通信装置 2之间交互的报文进行处理,从而使得通信装置1和通信装置2可以正常通信。
521.在本技术实施例中,通信装置2利用psk2对通信装置1和通信装置2之间交互的报文进行处理在具体实现时,例如可以是通信装置2利用psk2进行密钥派生,并利用派生得到的密钥对通信装置1和通信装置2之间交互的报文进行处理。
522.在一个示例中,通信装置2可以利用psk2派生的到认证密钥,并利用该认证密钥对通信装置1和通信装置2之间交互的报文1进行处理,其中,报文1用于对通信装置2进行身份认证。其中,认证密钥可以包括:加密密钥、完整性计算密钥和身份认证密钥中的其中一项或者多项。加密密钥可以用于对认证报文中的关键信息进行加密,完整性计算密钥可以对认证报文进行完整性计算,身份认证密钥可以计算得到认证报文中的身份认证信息。在本技术实施例中,通信装置1可以利用eap-psk协议进行身份认证,例如,利用以下方法100进行身份认证。通信装置1也可以利用ike协议进行身份认证,本技术实施例不做具体限定。
523.在又一个示例中,通信装置2可以利用psk2进行密钥派生,并利用该派生得到的密
钥对通信装置1和通信装置2之间交互的报文2进行处理,其中,该报文2可以用于对通信装置2中保存的psk1进行更新。例如,通信装置2可以利用以下方法100、或者方法 200或者方法300进行psk更新。在一个示例中,通信装置2成功更新psk之后,通信装置2可以利用该更新的psk对通信装置1和通信装置2之间交互的报文进行处理,不再利用psk2对通信装置1和通信装置2之间交互的报文进行处理。
524.关于psk2,需要说明的是,在一个示例中,该psk2可以是通信装置2在psk1的老化周期内根据psk密钥材料1生成的。关于通信装置2在psk1的老化周期内根据psk 密钥材料1生成psk2的具体实现,可以参考下文提及的方法100、方法200以及方法300 中的相关描述部分,此处不做详述。
525.在又一个示例中,该psk2可以是通信装置2出厂时预置的psk。在本技术实施例的一个示例中,若该psk2是通信装置2出厂时预置的psk,则在通信装置2中有其它可用的psk时,通信装置2不使用该psk2对通信装置1和通信装置2之间交互的报文进行处理。换言之,在通信装置2确定不能使用psk1对通信装置1和通信装置2之间交互的报文进行处理之前,通信装置2不使用psk2对通信装置1和通信装置2之间的交互报文进行处理。
526.在一些实施例中,当psk2是通信装置2出厂时预置的psk,并且,通信装置2本地除了保存有psk1和psk2之外,还保存有的psk3。对于这种情况,当通信装置2确定不能使用psk1对通信装置1和通信装置2之间的交互报文进行处理之后,首先确定除了psk 之外通信装置2本地是否还保存有可用的psk,若存在其它可用的psk,则利用所述其它可用的psk对通信装置1和通信装置2之间的交互报文进行处理,若不存在其它可用的 psk,则利用该psk2对通信装置1和通信装置2之间的交互报文进行处理。在一个示例中,通信装置2本地除了保存有psk1和psk2之外,还保存有psk3。当通信装置2确定不能使用psk1对通信装置1和通信装置2之间的交互报文进行处理之后,进一步确定是否可以使用psk3对通信装置1和通信装置2之间的交互报文进行处理。在确定也无法利用psk3对通信装置1和通信装置2之间的交互报文进行处理之后,例如从存储psk3的非易失存储区读取psk3失败,再确定使用psk2对通信装置1和通信装置2之间的交互报文进行处理。
527.在一种实现方式中,当通信装置2在psk1的老化周期内确定不能基于psk1对通信装置1和通信装置2之间交互的报文进行处理之后,可以向控制管理设备发送告警信息,该告警信息用于指示在psk1的老化周期内,所述通信装置2不能基于psk1对通信装置1 和通信装置2之间交互的报文进行处理。以便于运维人员根据该告警信息确定通信装置1 中的psk的情况,并确定是否需要人工干预。本技术实施例中提及的控制管理设备,例如可以为运行了网络管理软件的设备,又如可以为控制器,本技术实施例不做具体限定。
528.参见图2b,图2b为本技术实施例提供的一种psk的更新方法的信令交互图。图2b 所示的psk的更新方法100,可以包括如下s101-s114。
529.s101:通信装置1向通信装置2发送报文1,报文1用于请求对通信装置1进行身份认证。
530.在本技术实施例中,报文1可以是eap-psk报文。可参见图3a进行理解,图3a为本技术实施例提供的一种报文1的结构示意图。如图3a所示,报文1包括eap头(header) 字段、eap类型(type)字段、标识(flags)字段、扩展标识(extension flags,ext flags) 字段、连接标识(session id)字段、密钥标识(keyid)字段、随机数(nounce)字段和身份标识
(identifier,id)字段。其中:
531.eap header一共包括4字节,eap header包括编码(code)字段、标识(identifier) 字段和长度(length)字段。code字段占用1字节、identifier字段占用1字节、length字段占用2字节。关于eap header的各个字段的含义,可以参考征求意见(request for comments, rfc)3748的相关描述部分,此处不做详述。
532.eap type包括1字节,eap type用于指示eap方法类型,在本技术中,报文1为 eap-psk报文,因此,eap type字段的值可以为互联网工程任务组(the internet engineeringtask force,ietf)为eap-psk分配的值47。
533.flags包括1字节,该flags字段包括p指示位、r指示位、版本(version)指示位、 cs指示位和k指示位。其中:
534.p(protected)指示位占用flags字段的第7比特,用于指示当前报文是否为加密报文或者是否包括完整性校验值(integrity check value,icv)字段。一种具体的实现方式中,当p指示位的值为1时,指示当前报文中包括icv字段,但是当前报文可以是加密报文,也可以是非加密的报文。在本技术中,报文1为明文且不包括icv字段。在一个示例中,当eap-psk报文为明文且不包括icv字段时,p指示位的值可以为0,相应的,若eap-psk 报文中包括加密内容或者包括icv字段时,p指示位的值为1。在本技术实施例的以下描述中,如无特别说明,p指示位各取值对应的含义,以此例进行说明。r指示位占用flags 字段的第6比特,用于指示本报文是否为应答(response)报文,。在一个示例中,若eap-psk 报文为请求(request)报文,则r指示位的值为0,若eap-psk报文为response报文,则 r指示位的值为1。报文1是request报文。在本技术实施例的以下描述中,如无特别说明, r指示位各取值对应的含义,以此例进行说明。
535.version指示位占用flags字段的第5比特、第4比特和第3比特,用于指示eap-psk 协议的版本号。报文1的结构与传统eap-psk报文不同,在传统eap-psk报文结构的基础山做了扩展。在本技术实施例的一个示例中,version指示位的值可以为1。在本技术实施例的以下描述中,如无特别说明,p指示位的取值,以此例进行说明。
536.cs指示位占用flags字段的第2比特,用于指示本次身份认证是否包含csid字段,当通信装置2可以和多个通信装置进行身份认证时,为了防止该多个通信装置为身份认证恰好分配了相同的连接标识(即ssid),导致通信装置2无法根据ssid唯一确定认证会话,则通信装置2可以分配csid来保证认证会话的唯一性。由于报文1是通信装置1生成的,通信装置1无法确定通信装置2是否可以与多个通信装置进行身份认证,因此,在报文1中,可以没有csid字段。在一个示例中,当cs指示位的值为0时,表示eap-psk 报文中没有csid字段,相应的,当cs指示位的值为1时,表示eap-psk报文中包括 csid字段。在本技术实施例的以下描述中,如无特别说明,cs指示位各取值对应的含义,以此例进行说明。
537.k指示位占用flags字段的第1比特,用于指示是否包括keyid字段,在报文1中,keyid 字段用于指示psk的标识,keyid字段可以包括4字节。在一个示例中,若eap-psk报文中包括keyid字段,则k指示位的值为1,若eap-psk报文中不包括keyid字段,则k 指示位的值为0。在本技术实施例的以下描述中,如无特别说明,k指示位各取值对应的含义,以此例进行说明。
538.关于keyid字段,需要说明的是,报文1中的keyid字段用于携带psk的标识。在本申
请实施例中,身份认证过程中所使用的密钥可以由psk派生,也可以不由psk派生,例如可以由通信装置1和通信装置2预先协商。为方便描述,将“身份认证过程中使用的密钥”简称为“认证密钥”。若认证密钥由psk派生,则可以根据该keyid字段确定派生认证密钥所使用的psk。认证密钥包括认证加密密钥(authentication cipher key,ack)、认证完整性密钥(authentication integrity key,aik)、以及身份认证密钥(identityauthentication key,iak)、密钥派生密钥(key derive key,kdk)。其中,认证加密密钥用于对需要加密的内容进行加密,认证完整性密钥用于计算认证报文的icv,身份认证密钥用于计算得到身份认证信息,密钥派生密钥用于密钥派生时使用的密钥。在一个示例中,认证加密密钥可以是瞬态eap密钥(transient eap key,tek),在另一个示例中,身份认证密钥与认证完整性密钥使用相同的密钥。
539.需要说明的是,在本技术实施例的以下描述中,完整性密钥和完整性计算密钥,可以交替使用。
540.当k指示位指示报文1中包括keyid字段时,通信装置1例如可以通过如下方式确定该keyid字段的值:
541.(1)、若通信装置1本地存在可使用且在有效期内的psk,则将该psk确定为身份认证过程中派生密钥的psk,此时,keyid字段的值为该psk的id。其中,可以根据psk 是否具备可使用标记确定psk是否可使用。
542.(2)、若通信装置1本地存在安装成功且在有效期内的psk,则将该psk确定为身份认证过程中派生密钥的psk,此时,keyid字段的值为该psk的id。其中,可以根据psk 是否具备安装成功标记确定该psk是否安装成功。
543.(3)、若以上两者均不满足,为确保身份认证正常进行,则在通信装置1本地存储有默认psk的情况下,将该默认psk确定为身份认证过程中派生密钥的psk,此时,keyid 字段的值为该psk的id。在一个示例中,若选择默认psk作为身份认证过程中派生认证密钥的psk,则报文1中也可以不包括keyid字段,即k指示位的值可以为0。
544.flags字段的第0比特为预留比特。
545.ext flags字段包括1字节,ext flags字段包括预留字段和交互类型(exchange type,exchtype)字段。预留字段占用ext flags字段的第7比特至第5比特,exch type字段占用ext flags 字段的第4比特至第0比特。exch type字段用于标识报文交互的类型,在一个示例中,报文交互的类型可以包括初始(initial)阶段、身份认证阶段和结果通知阶段。在一个示例中,当报文交互的类型为初始阶段时,ext flags字段的值可以为1,当报文交互的类型为身份认证阶段时,ext flags字段的值可以为2,当报文交互的类型为结果通知阶段时,ext flags字段的值可以为4。在本技术实施例的以下描述中,如无特别说明,exch type字段各取值对应的含义,以此例进行说明。其中,结果通知阶段,可以用于通知身份认证结果和密钥更新结果。
546.session id字段用于标识通信装置1和通信装置2之间的会话。session id字段可以包括ssid字段和csid字段,ssid字段用于携带通信装置1分配的会话标识ssid,csid 字段用于携带通信装置2分配的会话标识csid。其中,ssid字段是必选字段,csid字段是可选字段,具体可参考以上对于cs字段的描述。当session id字段包括ssid字段和 csid字段时,session id字段可以包括8字节,ssid字段和csid字段各占用4字节,当 session id字
段不包括csid字段时,session id字段可以包括4字节。
547.关于ssid,需要说明的是,在一个示例中,通信装置1可以利用随机数函数生成一个随机的ssid,从而避免按照一定规律生成ssid而使得攻击者预测出该ssid,从而带来安全隐患。在又一个示例中,通信装置1例如可以将本地的时间戳作为ssid。若本次身份认证结束,通信装置1重新发起初始身份认证(例如重新生成一个报文1发送给通信装置 2)时,通信装置1需要重新生成一个ssid,防止重放攻击。若通信装置1和通信装置2 身份认证成功之后再进行快速重认证,且快速重认证时直接使用上一次身份认证成功后得到的密钥进行快速重认证,则通信装置1无需重新生成一个ssid,可以使用上一次身份认证时所使用的ssid。若上一次初始身份认证失败,通信装置1重新发起初始身份认证,则通信装置1需要重新生成一个ssid。
548.nonce字段用于携带通信装置1生成的随机数1。当通信装置1和通信装置2利用psk 派生认证密钥时,可以将随机数1作为密钥派生算法的一个参数,增加密钥派生的随机性,提升密钥安全。随机数1的长度可以在16~256字节之间,具体长度可以根据实际情况确定,本技术实施例不做具体限定。在一个示例中,随机数1的长度可以是16字节。在一个示例中,随机数1可以携带在一个类型长度值(type length value,tlv)字段中。在一个示例中,该tlv字段的结构可以参考图3b,图3b为本技术实施例提供的一个tlv字段的结构示意图。如图3b所示,该tlv字段包括tlv header和tlv数据(data),其中, tlv data用于携带随机数1,tlv header可以包括tlv type字段、预留(reserved)字段和tlv length字段。在一个示例中,tlv header可以包括4字节,其中,tlv type字段占用 1字节,reserved字段占用1字节,tlv length字段占用2字节。
549.关于nonce字段,需要说明的是,当通信装置1和通信装置2重新进行身份认证时, nonce字段中tlv data所携带的随机数必须重新生成。在同一次身份认证中,若报文1重传,则nonce字段中tlv data所携带的随机数可以保持不变。
550.id字段包括若干例如n字节,用于携带通信装置1的身份标识。其中,id字段的值可以用于通信装置2接收到报文1之后,基于该id字段的值进行白名单校验,确定是否同意进行身份认证。该id字段的值还可以用于指示通信装置2确定身份认证过程中所使用的psk。
551.本技术实施例不具体限定通信装置1的身份标识。在一个示例中,通信装置1的身份标识可以是一串随机数;在又一个示例中,通信装置1的身份标识可以是通信装置1的互联网协议(internet protocol,ip)地址或者媒体接入控制(media access control,mac)地址;在另一个示例中,通信装置1的身份标识可以是通信装置1的网络访问标识(networkaccess identifier,nai)。
552.s102:通信装置2向通信装置1发送报文2,报文2用于指示通信装置2同意进行身份认证。
553.通信装置2接收到报文1之后,可以对报文1进行验证,并根据验证结果确定是否同意进行身份认证。
554.通信装置2对报文1进行验证在具体实现时,可以对报文1中的各个字段的值进行验证。其中:
555.对于eap header字段的校验,可以参考rfc3748中的相关描述部分,此处不再详述。
556.对于flags字段:
557.如s101中对flags字段的描述,通信装置2对报文1进行验证时,p指示位、r指示位和cs指示位的值必须为0,version字段的值必须是1。
558.k指示位的值可以是0,也可以是1,当k指示位的值为0时,说明报文1中不包括 keyid字段,当k指示位的值为1时,说明报文1中包括keyid字段。当报文1中不包括 keyid字段时,可以包括两种情况,第一种情况,基于默认psk派生认证密钥。第二种情况,说明认证密钥不是由psk派生。当报文1中不包括keyid字段时,通信装置2可以确定自身是否支持使用默认psk派生认证密钥。例如,通信装置2根据本地配置的psk使用策略,确定是否支持使用默认psk派生认证密钥。若通信装置2不支持使用默认psk 派生认证密钥,则拒绝身份认证。当报文1中包括keyid字段时,通信装置2例如可以确定自身是否支持使用该keyid字段所携带的keyid对应的psk派生认证密钥。若通信装置 2不支持使用该keyid字段所携带的keyid对应的psk派生认证密钥,则可以拒绝身份认证。当然,若通信装置2不支持使用该keyid字段所携带的keyid对应的psk派生认证密钥,通信装置2也可不拒绝身份认证,在后续交互中继续协商派生认证密钥的psk,此处不做具体限定。
559.对于ext flags字段:由于报文1是通信装置1发起身份认证时给通信装置2发送的第一个报文,因此,exch type字段的值必须为1。
560.关于session id字段,对于报文1而言session id字段包括ssid,不包括csid。此时通信装置2可以记录ssid字段携带的ssid值,在向通信装置1发送针对报文1的响应报文时,可以将该ssid的值封装在响应报文中。关于nonce字段,通信装置2可以记录nonce 字段携带的随机数1。
561.关于id字段,通信装置2可以确定自身是否支持和该id字段携带的id对应的通信装置进行身份认证。在一个示例中,通信装置2可以根据本地配置的身份认证策略,确定是否支持和该id字段携带的id对应的通信装置进行身份认证。另外,通信装置2确定本地支持的、派生认证密钥的psk时,也可以结合报文1中id字段携带的id值确定。例如,通信装置2本地身份认证配置策略指示:通信装置2可以和通信装置1进行身份认证,而且,在和通信装置1进行身份认证时,支持使用psk 1派生认证密钥。
562.通信装置2可以在报文1通过验证的情况下,向通信装置1发送报文2,报文2用于指示通信装置2同意进行身份认证。
563.在本技术实施例中,报文2也是eap-psk报文。而且,报文2的报文结构与报文1 相同,可以参考图3a所示。关于报文2中各个字段的含义,可以参考上文对于图3a的描述部分,此处不再详述。关于报文2中各个字段的值,可以参考下表1进行理解。
564.表1
[0565][0566]
关于报文2中的k指示位,需要说明的是,若报文1中包括k指示位的值为0,则报文2中k指示位的值也可以为0,说明通信装置1和通信装置2各自使用本地存储的默认 psk来派生认证密钥。或者,不使用psk派生认证密钥。若报文1中的k指示位的值为1,则报文2中k指示位的值也可以为1。当报文2中k指示位的值为1时,报文2中keyid 字段的值的确定方式,可以参考上文报文1中keyid字段的值的描述部分,此处不再重复描述。此处需要说明的是,报文2中keyid字段的值与报文1中keyid字段的值,可以相同,也可以不同,本技术实施例不作具体限定。
[0567]
关于cs指示位,需要说明的是,若通信装置2需要与多个不同的通信装置进行身份认证,例如通信装置2需要与通信装置1进行身份认证,通信装置2还需要与通信装置3 进行身份认证。为了防止通信装置3和通信装置1分配了相同的ssid,从而使得通信装置 2无法根据ssid唯一确定对应的身份认证会话,则通信装置2可以自己分配csid来保证会话的唯一性。若通信装置2除了与通信装置1进行身份认证之外,不再与其它通信装置进行身份认证,则通信装置2可以不用分配csid值。或者,若通信装置2可以利用其它信息来区分和不同通信装置的认证会话,则通信装置2也可以不用分配csid值,此处提及的其它信息例如可以为接口索引(interface index,ifindex),又如可以为底层承载协议等。
[0568]
需要说明的是,若报文2中包括csid,则以下报文3至报文6也包括csid,并且报文3至报文6中csid等于报文2中的csid。
[0569]
s103:通信装置1向通信装置2发送报文3,报文3中包括密钥材料1和身份认证信息 1。
[0570]
通信装置1接收到报文2之后,可以对报文2进行验证,并根据验证结果确定是否继续进行身份认证。
[0571]
通信装置1对报文2进行验证在具体实现时,可以对报文2中的各个字段的值进行验证。其中:
[0572]
对于eap header字段的校验,可以参考rfc3748中的相关描述部分,此处不再详述。
[0573]
对于flags字段:p指示位必须是0,r指示位必须是1,表示响应报文;cs指示位可以
是0,也可以是1;version字段的值必须是1。
[0574]
k指示位的值可以是0,也可以是1,当k指示位的值为0时,说明报文2中不包括 keyid字段,当k指示位的值为1时,说明报文2中包括keyid字段。当报文2中不包括 keyid字段时,可以包括两种情况,第一种情况,基于默认psk派生认证密钥。第二种情况,说明认证密钥不是由psk派生。当报文2中不包括keyid字段时,通信装置1可以确定自身是否支持使用默认psk派生认证密钥。例如,通信装置1根据本地配置的psk使用策略,确定是否支持使用默认psk派生认证密钥。若通信装置1不支持使用默认psk 派生认证密钥,则不再继续身份认证。当报文2中包括keyid字段时,通信装置1例如可以确定自身是否支持使用该keyid字段所携带的keyid对应的psk派生认证密钥。若通信装置1不支持使用该keyid字段所携带的keyid对应的psk派生认证密钥,则可以不再继续身份认证。
[0575]
对于ext flags字段:由于报文2是通信装置2针对报文1的响应报文,因此,在值1 标识身份认证的初始阶段时,exch type字段的值必须为1。
[0576]
关于session id字段:session id字段中ssid字段的值与报文1中ssid字段的值相同。若cs指示位的值为1,则记录csid字段携带的值。
[0577]
关于nonce字段,通信装置1可以记录nonce字段携带的随机数2。
[0578]
关于id字段,通信装置1可以确定自身是否支持和该id字段携带的id对应的通信装置进行身份认证。在一个示例中,通信装置1可以根据本地配置的身份认证策略,确定是否支持和该id字段携带的id对应的通信装置进行身份认证。另外,通信装置1确定本地支持的、派生认证密钥的psk时,也可以结合报文2中id字段携带的id值确定。例如,通信装置1本地身份认证配置策略指示:通信装置1可以和通信装置2进行身份认证,而且,在和通信装置2进行身份认证时,支持使用psk 1派生身份认证过程中使用的密钥。
[0579]
在本技术实施例中,若报文2中任意一个字段验证不通过,则通信装置1可以不再继续和通信装置2进行身份认证。换言之,当报文2未通过验证时,通信装置1可以不再执行以下步骤中由通信装置1执行的步骤。
[0580]
通信装置1在报文2通过验证的情况下,向通信装置2发送报文3,报文3中包括密钥材料1和身份认证信息1。
[0581]
通信装置1在报文2通过验证的情况下,可以继续和通信装置2进行身份认证。在本技术中,通信装置1可以向通信装置2发送报文3,报文3中包括密钥材料1和身份认证信息1。其中,身份认证信息1可以用于通信装置2对通信装置1进行身份认证。密钥材料1可以用于更新密钥。此处提及的密钥材料1可以包括:psk密钥材料1、数据密钥(data key)材料1和认证密钥(authentication key,ak)材料1中的任意一项或者多项。其中:
[0582]
psk密钥材料1用于生成更新的psk2。
[0583]
数据密钥材料1用于生成更新的数据密钥,数据密钥可以包括数据加密密钥(datacipher key,dck),数据加密密钥用于对通信装置1和通信装置2之间传递的数据报文进行加密,数据密钥还可以包括数据完整性密钥(data integrity key,dik),数据完整性密钥,用于对通信装置1和通信装置2之间传递的数据报文进行完整性计算。
[0584]
认证密钥材料1用于生成更新的认证密钥,认证密钥为通信装置1和通信装置2进行身份认证过程中所使用的密钥。关于认证密钥,可以参考s101中对认证密钥的描述部分,此处不再重复描述。在一个示例中,通信装置1例如可以自身生成密钥材料1,例如通信装置
1可以生成一个或者多个随机数,将该一个或者多个随机数作为密钥材料1。又如,通信装置1可以生成一个或者多个随机数,然后利用预先确定的计算方法对该一个或者多个随机数进行计算,将计算结果确定为密钥材料1。在又一个示例中,通信装置1上例如可以预先配置有密钥材料1,通信装置1可以获取预先配置在通信装置1上的密钥材料1。
[0585]
在本技术实施例中,报文3也可以为eap-psk报文,关于报文3,可以参考图3c进行理解,图3c为本技术实施例提供的一种报文3的结构示意图。如图3c所示,报文3与报文2相比,报文3不包括nonce字段和id字段,但是报文3还包括加密载荷(encryptedpayload)字段和icv字段。关于报文3中各个字段,现说明如下。
[0586]
关于eap header的各个字段的含义,可以参考征求意见(request for comments,rfc) 3748的相关描述部分,此处不做详述。
[0587]
eap type字段的值为47。
[0588]
关于flags字段:p指示位的值为1,报文3为身份认证过程中的第3条报文,报文3 中包括密钥材料1以及能够验证通信装置1身份的身份认证信息1,为避免报文3中的上述信息被泄露,报文3采用密文发送。r指示位的值为0,表示报文3是request报文。version 指示位的值可以为1;cs指示位的值和报文2中cs指示位的值相同。k指示位用于指示是否包括keyid字段。此处需要说明的是,报文3中的keyid字段的含义与报文1中keyid 字段的含义不同。在报文3中的keyid可以用于指示认证密钥。可以理解的是,若报文3 中包括keyid字段,则报文1和报文2中可以不包括keyid字段。其中,报文3中的keyid 字段指示的认证密钥,可以是通信装置1和通信装置2在上一次身份认证过程中更新得到的认证密钥。在一个示例中,若报文2中包括keyid字段,则报文3中不包括keyid字段,因为如果报文2中包括keyid字段,则报文2中的keyid字段已经指示了使用psk派生得到认证密钥,此时无需利用报文3中的keyid字段指示认证密钥。
[0589]
关于exch type字段,在报文3中,exch type字段的值可以为2,用于表示身份认证阶段。
[0590]
关于session id字段,对于session id字段中的ssid字段,其取值与报文1中ssid 字段的值相同,若session id字段包括csid字段,则csid字段的值与报文2中csid的值相同。
[0591]
关于encrypted payload字段,该字段用于携带加密数据。在一个示例中,encrypted payload字段可以是一个tlv字段。关于tlv字段的结构,可以参考图3b,此处不再重复描述。在一个示例中,encrypted payload字段可以包括tlv header字段和加密数据(encrypted data)字段。其中,encrypted data字段用于携带加密后的数据。在本技术实施例的一种实现方式中,报文3中的encrypted data字段的值,可以是利用aes_cbc_128加密算法进行加密得到的,对于这种情况,encrypted payload字段除了包括tlv header字段和encrypted data字段之外,还可以包括初始向量(initialization vector,iv)字段,该iv字段用于携带利用aes_cbc_128加密算法进行加密是需要的初始向量值。此时encrypted payload字段可以参考图3d,图3d为本技术实施例提供的一个encrypted payload字段的结构示意图。在本技术实施例中,encrypted data字段的值可以是利用加密算法对图3e所示的字段进行加密得到的,图3e所示的字段包括认证载荷(auth payload)字段、密钥材料载荷(key material payload)字段、填充(padding)字段和填充长度(padding length)字段。
其中:
[0592]
auth payload字段用于携带s103中提及的身份认证信息1。auth payload字段包括“tlv header|auth data”,其中,“|”表示两个字段的字节流依次串接,例如,tlv header的值为0x55,auth data的值为oxaa,则auth payload字段的值为ox55aa。关于tlv header,可以参考前文的相关描述部分,此处不再详述。报文3中的auth data字段用于指示通信装置2对通信装置1进行身份认证,。在本技术实施例中,该auth data字段携带的auth data 值可以根据报文1、前文提及的随机数2、和通信装置2的标识计算得到。例如:auth data 值可以利用如下公式(1)计算得到:
[0593]
auth data=prf(密钥1,{报文1|随机数2|id_2})
ꢀꢀ
公式(1)
[0594]
其中,prf可以为aes_cmac_128算法,密钥1可以是由报文1中的keyid指示的 psk派生得到的,id_2为通信装置2的标识。
[0595]
在一种示例中,在初始身份认证时,通信装置1和通信装置2,各自均可按如下方式派生各认证密钥:
[0596]
{aik|kdk|ack|iak}=kdf(psk,“initial authentication keys”,ssid|随机数1| 随机数2),
[0597]
这种方式,表示使用kdf持续迭代,直到输出的bit长度满足所有key的要求。“{aik |kdk|ack|iak}”表示认证密钥中各密钥依次从kdf的输出结果中取。以aik、kdk、 ack和iak均为128bit为例,kdf输出的前128bit作为aik,随后的128bit作为kdk,
……
依次类推。其中:psk为通信装置1和通信装置2当前使用的psk;“initialauthentication keys”表示字符串“initial authentication keys”。
[0598]
在又一个示例中,在初始身份认证时,通信装置1和通信装置2,各自均可按如下方式派生各认证密钥:intermediatevalue1=aes-128(psk,{0}
128 bit
)
[0599]
aik=aes-128(psk,{1}
128 bit

intermediatevalue1)
[0600]
kdk=aes-128(psk,{2}
128 bit

intermediatevalue1)intermediatevalue2= aes-128(kdk,随机数2)
[0601]
ack=aes-128(kdk,{1}
128 bit

intermediatevalue2)其中:
[0602]
{x}128 bit表示值为x,长度为128 bit的整数。
[0603]

表示两个值,按位异或运算。
[0604]
aes-128是加密算法,iv字段的值固定为0。
[0605]
以上提及的初始身份认证,可以指的是通信装置1或者通信装置2刚上电之后进行身份认证,或者通信装置1和通信装置2之间的eap-psk连接断开之后又重新建立连接之后进行身份认证。
[0606]
key material payload字段用于携带密钥材料1。在一个示例中,key material payload字段可以是一个tlv字段。关于tlv字段的结构,可以参考图3b,此处不再重复描述。在一个示例中,可参见图3f,图3f为本技术实施例提供的一个key material payload字段的示意图。key material payload字段可以包括tlv header字段、密钥数量(keynumbers,keynums) 字段和密钥材料(key material)字段。其中:
[0607]
tlv header字段可以参考上文对于tlv header字段的相关描述部分,此处不再详述。
字段中,由key type字段来区分密钥类型,但这只是一种可能的实现方式。在又一种实现方式中,各密钥材料1可以通过独立的tlv字段来携带,例如,psk密钥材料1通过pskmaterial payload来携带,数据密钥材料1通过datakey material payload来携带,本技术实施例不做具体限定。
[0614]
关于padding字段,其为填充字段,用于使得加密报文的长度满足aes_cbc_128算法对报文长度的要求。padding字段的值可以由通信装置1确定,在一个示例中,padding 字段的值可以为全0。
[0615]
关于padding length字段,其用于携带padding字段的字节长度,padding length字段占用1字节,padding length字段的值可以根据计算得到encrypted payload字段的加密算法确定。例如,若该加密算法为aes_cbc_128加密算法,则padding length字段携带的值在0 和15之间。又如,若该加密算法为aes_cbc_256加密算法,则padding length字段携带的值在0和31之间。其中:padding字段的字节长度可以通过如下公式(2)计算得到。
[0616]
n1=(n==blocksize)?0:n
ꢀꢀ
公式(2)
[0617]
公式(2)为c语言编程环境下所使用的一个公式表达。公式2的含义为:(n==blocksize) 判断是否相等,如果相等,则n1=0,如果不相等,则n1=n。
[0618]
其中:n=blocksize-(sizeof(auth payload)+sizeof(key material payload)+ sizeof(padding length)%blocksize;
[0619]
sizeof是一个函数,其返回值是输入参数的字节数,例如sizeof(auth payload)的返回值是auth payload字段的字节数;
[0620]
blocksize是计算得到encrypted payload字段的加密算法的块长度。例如: aes_cbc_128加密算法的块长度是16字节,故而blocksize的值为16。又如: aes_cbc_256加密算法的块长度是32字节,故而blocksize的值为32。
[0621]
关于icv字段,该字段用于携带报文3的完整性校验值。其中,icv字段可以通过如下公式(3)计算得到:
[0622]
icv=prf(aik,message 3)
ꢀꢀ
公式(3)
[0623]
在公式(3)中:
[0624]
prf:可以是aes_cmac_128算法;
[0625]
aik为认证完整性密钥;
[0626]
message 3为报文3中的部分字段,在一个示例中,message 3包括从报文3的eap header 一直到icv字段的前一个字节,或者说,message 3包括从报文3的eap header一直到 encrypted payload字段的最后一个字节,不包含icv本身。即:
[0627]
message 3={eap header|eap type|flags|ext flags|session id|keyid|encryptedpayload}。
[0628]
在一个示例中,若报文3中包括数据密钥材料1,则通信装置1在将报文3发送给通信装置2之后,则可以利用该数据密钥材料1派生出数据完整性密钥和数据加密密钥,并利用该数据完整性密钥和数据加密密钥对接收到的数据报文进行处理。此处需要注意的是,由于通信装置1尚未验证通信装置2的身份,因此,此处通信装置1不可利用前述派生得到的完整性计算密钥和数据加密密钥来处理发送给通信装置2的数据报文。
[0629]
s104:通信装置2根据报文3对通信装置1进行身份认证。
[0630]
s105:通信装置2在通信装置1通过身份认证的情况下,根据报文3中的密钥材料1 得到更新的密钥,所述更新的密钥包括psk2。
[0631]
s106:通信装置2保存更新的密钥。
[0632]
通信装置2接收到报文3之后,可以对报文3进行验证,从而确定通信装置1是否通过身份认证。
[0633]
通信装置2对报文3进行验证在具体实现时,可以对报文3中的各个字段的值进行验证。其中:
[0634]
对于eap header字段的校验,可以参考rfc3748中的相关描述部分,此处不再详述。
[0635]
对于flags字段:p指示位必须是1,因为报文3是认证阶段的报文,含有加密字段,即包括encrypted payload字段。r指示位必须是0,因为报文3是request报文。cs指示位的值应该与报文2中cs指示位的值相同。在当前eap-psk协议的版本为1的情况下, version字段的值必须是1。在一个示例中,若version字段的值不是1,则通信装置2可以无需验证其它字段,直接确定身份认证失败,终止身份认证过程,对于这种情况,通信装置2可以向通信装置1发送一个指示终止身份认证的响应报文,该响应报文中例如可以包括一个指示信息,该指示信息用于指示身份认证终止的原因是eap-psk协议的版本号不匹配。
[0636]
k指示位的值可以是1,也可以是0,若k指示位的值为0,说明报文3中不包括keyid 字段,因此,后续也无需对keyid字段进行验证。若k指示位的值为1,则说明报文3中包括keyid字段,因此,通信装置2还需要对keyid字段进行验证。当报文3中包括keyid 字段时,说明通信装置1和通信装置2在上一次身份认证时更新了认证密钥。通信装置2 对keyid字段进行验证时,要验证该keyid字段是否与本地存储的可用认证密钥的keyid 匹配。
[0637]
对于ext flags字段:由于报文3是通信装置1向通信装置2发送的认证报文,因此,在值2标识身份认证阶段时,exch type字段的值必须为2。
[0638]
关于session id字段:session id字段中ssid字段的值与报文1中ssid字段的值相同。若报文3中包括csid字段,则csid字段的值与报文2中csid字段的值相同。
[0639]
在本技术实施例中,通信装置2可以首先对报文3中的icv字段进行验证,来验证报文3的完整性。在报文3通过完整性验证的情况下,再对报文3中的encrypted payload字段进行校验。这样做是因为只有报文3通过完整性验证,才说明报文3在传输过程中未被篡改,才能说明encrypted payload字段中的内容大概率可信。
[0640]
通信装置2对报文3中的icv字段进行验证时,可以对报文3中除icv字段的其它字段进行icv计算,并将计算得到的值与报文3中携带的icv字段的值进行比较,若二者相同,则确定报文3通过完整性验证,否则,确定报文3未通过完整性验证。其中,通信装置2计算icv字段所利用的算法和密钥,与通信装置1计算报文3中的icv字段所使用的算法和密钥相同。
[0641]
在一个示例中,若通信装置2确定报文3未通过完整性验证,则通信装置2可以忽略该报文,并继续等待来自通信装置1的合法的认证报文。
[0642]
当通信装置2确定报文3通过完整性验证之后,通信装置2可以继续对encryptedpayload字段进行验证。通信装置2对encrypted payload字段进行验证时,可以首先对 encrypted payload字段进行解密,得到auth payload字段和key material payload字段。
此处需要说明的是,通信装置2对encrypted payload字段进行解密的所使用的算法和密钥,与通信装置1计算得到该encrypted payload字段所使用的加密算法和密钥相匹配。
[0643]
通信装置2解密得到auth payload字段和key material payload字段之后,可以分别对 auth payload字段和key material payload字段进行处理。其中:对auth payload字段进行处理的方式为:对auth payload进行验证,从而验证通信装置1的身份。对key material payload 进行处理的方式,可以根据对auth payload进行验证的结果来确定。在一个示例中,若authpayload通过验证,则通信装置2可以根据报文3中的密钥材料1得到更新的密钥。例如,通信装置2可以根据报文3中的密钥材料1和密钥派生算法1,得到更新的密钥。又如,通信装置2可以直接将所述密钥材料1确定为更新的密钥。若auth payload未通过验证,则说明报文3被篡改,或者报文3的发送方不可信,则通信装置2可以忽略该key materialpayload,不执行根据密钥材料1获得更新的密钥以及后续保存更新的密钥等步骤。
[0644]
关于auth payload字段:通信装置2可以首先对auth payload的tlv header进行校验,在auth payload的tlv header通过校验之后,可以进一步对auth payload的auth data字段进行校验。在对auth payload的auth data字段进行校验时,可以采用以上公式(1)计算得到auth data,并将计算得到的auth data与auth payload字段中的auth data进行比较,若二者相同,则确定auth payload字段通过验证,否则,确定auth payload字段未通过验证。此处需要说明的是,通信装置1利用公式(1)计算auth data时,公式(1)中的报文1是通信装置1发送给通信装置2的报文,随机数2和id_2是通信装置1接收的报文2中携带的。而通信装置2利用公式(1)计算auth data时,公式(1)中的报文1是通信装置2接收到的报文,随机数2和id_2是通信装置2生成的。其中,对tlv header进行校验,例如可以校验该tlv header的tlv type是否为auth payload,其tlv length字段的值是否正确等。
[0645]
可以理解的是,由于报文1参与auth data的计算,因此,auth data通过验证,也进一步验证了报文1的合法性,从而避免了报文1是明文传输而潜在的安全风险。
[0646]
在一个示例中,若auth payload字段未通过验证,则通信装置2可以确定身份认证失败,终止身份认证过程。对于这种情况,通信装置2可以向通信装置1发送一个指示终止身份认证的响应报文,该响应报文中例如可以包括一个指示信息,该指示信息用于指示身份认证终止的原因是身份认证失败。
[0647]
关于key material payload字段,在auth payload字段通过验证的情况下,说明通信装置1通过身份认证,对于这种情况,通信装置2可以提取key material payload字段中携带的密钥材料1,并利用该密钥材料1和密钥派生算法进行密钥派生。
[0648]
在一个示例中,报文3中携带psk密钥材料1,则通信装置2可以根据psk密钥材料 1和密钥派生算法1,派生得到更新的psk2。在一个示例中,可以利用如下公式(4)或者公式(5)派生得到更新的psk2。
[0649]
psk2=kdf(aes(psk1,msk[0-63]),“psk”,psk密钥材料1)
ꢀꢀ
公式(4)
[0650]
psk2=kdf(psk1,“psk”,psk密钥材料1|msk[0-63])
ꢀꢀ
公式(5)
[0651]
在公式(4)和公式(5)中:
[0652]
kdf为密钥派生算法1,关于kdf,可以参考ieee 802.1x-2010的“6.2.1key derivation function(kdf)”中的描述,此处不做详细描述;
[0653]
aes为高级加密标准(advanced encryption standard,aes);
[0654]
psk1为当前通信装置1和通信装置2进行身份认证所使用的psk,例如可以是报文1 中的keyid字段所指示的psk;
[0655]
msk[0-63]为主会话密钥(master session key,msk)的第0至第63比特;
[0656]“psk”为字符串。
[0657]
在又一个示例中,更新的psk2还可以通过如下公式(6)计算得到:
[0658]
psk2=kdf(psk1,“psk”,msk[0-63])
ꢀꢀ
公式(6)
[0659]
对于这种情况,msk[0-63]可以作为psk密钥材料1。
[0660]
在又一个示例中,当通信装置1和通信装置2均支持非对称密钥算法时,通信装置2 可以根据通信装置1发送的psk密钥材料1和本地保存的psk密钥材料2,生成更新的 psk2。相应的,对于这种情况,通信装置2还可以将psk密钥材料3发送给通信装置1,以便于通信装置1根据该psk密钥材料3和通信装置1本地的psk密钥材料4,生成更新的psk2。
[0661]
通信装置2派生得到更新的psk2之后,可以将该更新的psk2存储至通信装置2的非易失存储区,例如存储在通信装置2的硬件安全模块(hardware security module,hsm) 或者可信执行环境(trusted execution environment,tee)中。在一些实施例中,可以在内存中派生更新的psk2,将更新的psk2存储到非易失存储区之后,可以删除内存中缓存的更新的psk2。在一些实施例中,可以在tee的可信应用(trusted application,ta)中派生前述更新的psk2。在本技术实施例中,若利用psk密钥材料1得到了更新的psk2,并且成功将该更新的psk2存储到了通信装置2的非易失存储区,则可以认为通信装置2 成功完成了对psk派生材料的处理。利用psk密钥材料1得到更新的psk2和将更新的 psk2存储至非易失存储区中任意一个步骤失败,则说明通信装置2未成功完成对psk密钥材料1的处理。另外,通信装置2存储更新的psk2时,还需要对应存储该更新的psk2 的keyid,其中,keyid可以存储在非易失存储区,也可以存储在其它存储器中。举例说明:通信装置2对应图1所示的mcu 102,mcu 102可以在内存中派生得到更新的psk2,而后将该更新的psk2保存到hsm的不可读存储区,将该更新的psk2的keyid存储到flash 中。
[0662]
在一个示例中,报文3中携带认证密钥材料1,则通信装置2可以根据认证密钥材料 1和密钥派生算法2,派生得到更新的认证密钥。
[0663]
一个示例中,认证密钥材料1中可以包含四个随机数,分别为随机数1’、随机数2’、随机数3’、随机数4’,分别用于派生认证密钥中的四种密钥,其中一种派生方式可以参考以下公式7-1:
[0664]
{aik|kdk|ack|iak}=kdf(kdk
old
,“new authentication keys”,msk[0-63]|随机数1’|随机数2’|随机数3’|随机数4’)
ꢀꢀ
公式(7-1)
[0665]
采用公式(7-1),表示使用kdf持续迭代,直到输出的bit长度满足所有key的要求。
[0666]
在公式(7-1)中,kdk
old
表示更新前的kdk;
[0667]
msk[0-63]为msk的第0至第63比特;
[0668]
{aik|kdk|ack|iak}表示依次从kdf的输出结果中取aik、kdk、ack和iak。以aik、kdk、ack和iak均为128bit为例,可以将kdf的输出结果中的前128bit确定为aik,将aik之后的128bit确定为kdk,将kdk之后的128bit确定为ack,将ack 之后的128bit确定为iak。
[0669]
在又一个示例中,可以利用如下公式(7-2)派生aik,利用如下公式(7-3)派生kdk,
利用如下公式(7-4)怕生ack,利用如下公式(7-5)派生iak。
[0670]
aik=kdf(kdk
old
,“aik”,msk[0-15]|随机数1’) 公式(7-2)
[0671]
kdk=kdf(kdk
old
,“kdk”,msk[16-31]|随机数2’)
ꢀꢀ
公式(7-3)
[0672]
ack=kdf(kdk
old
,“ack”,msk[32-47]|随机数3’)
ꢀꢀ
公式(7-4)
[0673]
iak=kdf(kdk
old
,“iak”,msk[48-63]|随机数4’)
ꢀꢀ
公式(7-5)
[0674]
在公式(7-2)、(7-3)、(7-4)和(7-5)中:
[0675]
kdkold表示更新前的kdk,也可以是当前正在使用的认证密钥中的kdk;
[0676]“aik”表示字符串aik;
[0677]
msk[0-15]为msk的第0至第15比特;
[0678]“kdk”表示字符串kdk;
[0679]
msk[16-31]为msk的第16至第31比特;
[0680]“ack”表示字符串ack;
[0681]
msk[32-47]为msk的第32至第47比特;
[0682]
msk[48-63]为msk的第48至第63比特;其中:
[0683]
msk[0-15]=aes-128(kdk,{2}128bit

intermediatevalue2)
[0684]
msk[16-31]=aes-128(kdk,{3}128bit

intermediatevalue2)
[0685]
msk[32-47]=aes-128(kdk,{4}128bit

intermediatevalue2)
[0686]
msk[48-63]=aes-128(kdk,{5}128bit

intermediatevalue2)
[0687]
emsk[0-15]=aes-128(kdk,{6}128bit

intermediatevalue2)
[0688]
emsk[16-31]=aes-128(kdk,{7}128bit

intermediatevalue2)
[0689]
emsk[32-47]=aes-128(kdk,{8}128bit

intermediatevalue2)
[0690]
emsk[48-63]=aes-128(kdk,{9}128bit

intermediatevalue2);
[0691]
关于intermediatevalue2,可以参考上文对intermediatevalue2的描述部分,此处不再重复描述。
[0692]
另一个示例中,认证密钥材料1中可以包含三个随机数,分别为随机数1’、随机数2’、随机数3’,分别用于派生认证密钥中的三种密钥,其中一种派生方式可以参考以下公式 (8-1)、(8-2)和(8-3):
[0693]
aik=kdf(kdk
old
,“aik”,msk[0-15]|随机数1’)
ꢀꢀ
公式(8-3)
[0694]
kdk=kdf(kdk
old
,“kdk”,msk[16-31]|随机数2’)
ꢀꢀ
公式(8-4)
[0695]
ack=kdf(kdk
old
,“ack”,msk[32-47]|随机数3’)
ꢀꢀ
公式(8-5)
[0696]
在公式(8-1)、(8-2)和(8-3)中:
[0697]
kdkold表示更新前的kdk,也可以是当前正在使用的认证密钥中的kdk;
[0698]“aik”表示字符串aik;
[0699]
msk[0-15]为msk的第0至第15比特;
[0700]“kdk”表示字符串kdk;
[0701]
msk[16-31]为msk的第16至第31比特;
[0702]“ack”表示字符串ack;
[0703]
msk[32-47]为msk的第32至第47比特;对于这种方式,身份认证密钥iak与认证完整性密钥aik相同。
[0704]
在又一个示例中,认证密钥材料1中可以包含三个随机数,分别为随机数1’、随机数 2’、随机数3’,分别用于派生认证密钥中的三种密钥,可以利用如下公式(9)派生得到认证密钥。
[0705]
{aik|kdk|ack}=kdf(kdk
old
,“new authentication keys”,msk[0-63]|随机数1
’ꢀ
|随机数2’|随机数3’)
ꢀꢀ
公式(9)
[0706]
在公式(9)中:
[0707]
kdkold表示更新前的kdk,也可以是当前正在使用的认证密钥中的kdk;
[0708]“new authentication keys”表示字符串new authentication keys;
[0709]
msk[0-15]为msk的第0至第63比特;
[0710]
身份认证密钥iak与认证完整性密钥aik相同。
[0711]
在一个示例中,当通信装置1和通信装置2之间利用非以太口通信,并且通信装置1 和通信装置2均使用非对称密钥算法时,通信装置2可以根据通信装置1发送的认证密钥材料1和本地保存的认证密钥材料2,生成更新的认证密钥。相应的,对于这种情况,通信装置2还可以将认证密钥材料3发送给通信装置1,以便于通信装置1根据该认证密钥材料3和通信装置1本地的认证密钥材料4,生成所述更新的认证密钥。
[0712]
通信装置2派生得到更新的认证密钥之后,可以存储该更新的认证密钥,其中,认证密钥可以保存在非易失存储区,也可以保存在其它存储器中,本技术实施例不做具体限定。
[0713]
在一个示例中,报文3中携带数据密钥材料,则通信装置2可以根据数据密钥材料和密钥派生算法3,派生得到更新的数据密钥。在一个示例中,通信装置2可以根据数据密钥材料1和密钥派生算法3,派生得到更新的数据密钥。在一个示例中,可以利用如下公式(10)或者公式(11)派生得到更新的数据密钥。
[0714]
dik=kdf(msk[0-16],“dik”,dik密钥材料1)
ꢀꢀ
公式(10)
[0715]
dck=kdf(msk[16-31],“dck”,dck密钥材料1)
ꢀꢀ
公式(11)
[0716]
在公式(10)和公式(11)中:
[0717]
数据密钥材料1包括dik密钥材料1和dck密钥材料1;
[0718]
dik为更新的数据完整性密钥;
[0719]
kdf为密钥派生算法3;
[0720]
dck为更新的数据加密密钥。
[0721]
在又一个示例中,当通信装置1和通信装置2之间利用非以太口通信,并且通信装置和通信装置2均使用非对称密钥算法时,通信装置2可以根据通信装置1发送的数据密钥材料1和本地保存的数据密钥材料2,生成更新的数据密钥。相应的,对于这种情况,通信装置2还可以将数据密钥材料3发送给通信装置1,以便于通信装置1根据该数据密钥材料3和通信装置1本地的数据密钥材料4,生成所述更新的数据密钥。
[0722]
通信装置2派生得到更新的数据密钥之后,可以存储该更新的数据密钥,其中,数据密钥可以保存在非易失存储区,也可以保存在其它存储器中,本技术实施例不做具体限定。
[0723]
s107:通信装置2向通信装置1发送报文4,报文4中包括身份认证信息2。
[0724]
通信装置2根据报文3中的身份认证信息1确定通信装置1通过身份认证之后,可以
生成报文4,并将该报文4发送给通信装置1。其中,报文4中包括身份认证信息2。身份认证信息2用于对通信装置2进行身份认证。在一个示例中,报文4中还可以包括密钥材料确认信息。密钥材料确认信息用于指示通信装置2对报文3中的密钥材料1的处理结果。当然,在一个示例中,若通信装置2成功完成了对报文3中携带的所有密钥材料1的处理,则报文4中也可以不携带该密钥材料1确认信息,通信装置1接收到报文4之后,若报文 4中没有密钥材料1确认信息,则默认通信装置2成功完成了对报文3中携带的所有密钥材料1的处理,即通信装置2已经根据密钥材料1完成了密钥的更新。
[0725]
在本技术实施例中,报文4也可以为eap-psk报文,报文4的结构与报文3相同,可以参考图3c进行理解。关于报文4中的各个字段,现说明如下:
[0726]
关于eap header的各个字段的含义,可以参考征求意见(request for comments,rfc) 3748的相关描述部分,此处不做详述。
[0727]
eap type字段的值为47。
[0728]
关于flags字段:p指示位的值为1,报文4为身份认证过程中的第4条报文,报文4 中包括能够验证通信装置4身份的身份认证信息4,以及密钥材料确认信息,为避免报文 4中的上述信息被泄露,报文4采用密文发送。r指示位的值为1,表示报文4是response 报文。version指示位的值可以为1;cs指示位的值和报文2中cs指示位的值相同。k指示位用于指示是否包括keyid字段。此处需要说明的是,报文4中的keyid字段的含义与报文3中keyid字段的含义相同。具体可以参考s103中对于keyid字段的描述部分,此处不再详述。
[0729]
关于exch type字段,在报文4中,exch type字段的值可以为2,用于表示身份认证阶段。
[0730]
关于session id字段,对于session id字段中的ssid字段,其取值与报文1中ssid 字段的值相同,若session id字段包括csid字段,则csid字段的值与报文2中csid的值相同。
[0731]
关于encrypted payload字段,该字段用于携带加密数据。在一个示例中,encrypted payload字段可以是一个tlv字段。关于tlv字段的结构,可以参考图3b,此处不再重复描述。在一个示例中,encrypted payload字段可以包括tlv header字段和加密数据(encrypted data)字段。其中,encrypted data字段用于携带加密后的数据。在本技术实施例的一种实现方式中,报文3中的encrypted data字段的值,可以是利用aes_cbc_128加密算法进行加密得到的,对于这种情况,encrypted payload字段除了包括tlv header字段和encrypted data字段之外,还可以包括初始向量(initialization vector,iv)字段,该iv字段用于携带利用aes_cbc_128加密算法进行加密是需要的初始向量值。此时encrypted payload字段可以参考图3d。在本技术实施例中,encrypted data字段的值可以是利用加密算法对图3h 所示的字段进行加密得到的,图3h所示的字段包括认证载荷(auth payload)字段、密钥材料确认(key confirmed payload)字段、padding字段和padding length字段。其中:
[0732]
auth payload字段用于携带s107中提及的身份认证信息2。auth payload字段包括“tlv header|auth data”。关于tlv header,可以参考前文的相关描述部分,此处不再详述。该 auth data字段用于指示通信装置1对通信装置2进行身份认证,在本技术实施例中,报文 4中的auth data字段携带的auth data值可以根据报文2、前文提及的随机数1、和通
信装置1的标识计算得到。例如:auth data值可以利用如下公式(12)计算得到:
[0733]
auth data=prf(密钥2,{报文2|随机数1|id_1})
ꢀꢀ
公式(12)
[0734]
其中,prf可以为aes_cmac_128算法,密钥2可以是由报文1中的keyid指示的 psk派生得到的,此处提及的密钥2和公式(1)中的密钥1可以相同,也可以不同,本技术实施例不作具体限定,id_1为通信装置2的标识。
[0735]
在本技术实施例中,报文3中的auth data字段的计算方式与报文4中的auth data字段的计算方式不同,采用这种方式可以在一定程度上防止重放攻击和暴力破解攻击。
[0736]
key confirmed payload字段用于携带密钥材料确认信息。在一个示例中,key confirmed payload字段可以是一个tlv字段。关于tlv字段的结构,可以参考图3b,此处不再重复描述。在一个示例中,可参见图3i,图3i为本技术实施例提供的一个key confirmed payload 字段的示意图。key confirmed payload字段可以包括tlv header字段、密钥数量(keynumbers, keynums)字段和密钥确认(key confirmed)字段。其中:
[0737]
tlv header字段可以参考上文对于tlv header字段的相关描述部分,此处不再详述。
[0738]
keynums字段用于指示key confirmed payload字段所携带的密钥确认信息的数量。 keynums字段例如可以占用1字节。key confirmed字段用于携带密钥确认信息。在一个示例中,报文4中的keynums字段的值,可以和报文3中keynums字段的值相同。即报文3 中携带m组密钥材料1,则报文4中对应的也可以携带m组密钥确认信息,一组密钥材料 1对应一个密钥确定信息。例如,报文3中携带psk密钥材料1,则报文4中携带psk密钥材料1对应的确认信息;又如,报文3中携带psk密钥材料1和认证密钥材料1,则报文4中携带psk密钥材料1对应的确认信息以及认证密钥材料1对应的确认信息;再如,报文3中携带psk密钥材料1、认证密钥材料1和数据密钥材料1,则报文4中携带psk 密钥材料1对应的确认信息、认证密钥材料1对应的确认信息以及数据密钥材料1对应的确认信息。
[0739]
在又一个示例中,对于通信装置2未成功处理的密钥材料1,报文4中可以不携带该密钥材料1对应的确认信息,例如,报文3中携带psk密钥材料1、认证密钥材料1和数据密钥材料1,而通信装置2成功处理了认证密钥材料1和数据密钥材料1,但是处理psk 密钥材料1失败,则报文4中可以携带认证密钥材料1对应的确认信息以及数据密钥材料 1对应的确认信息,不携带psk密钥材料1的确认信息。对于这种情况,报文4中的keynums 字段的值,可以小于报文3中keynums字段的值。对于这种情况,key confirmed字段的结构可以参考图3j所示。如图3j,key confirmed字段包括key type字段、keyid字段、和校验值字段(即图j中的mac_k字段)。其中:
[0740]
关于key type字段和keyid字段可以参考上文对于图3g的描述部分,此处不再重复描述。
[0741]
mac_k字段用于对密钥材料1进行完整性校验,以psk密钥材料1对应的mac_k 为例进行说明,psk密钥材料1对应的mac_k字段的值可以通过如下公式(13)或(14) 实现。
[0742]
mac_k(psk)=prf(密钥3,key type|keyid|psk密钥材料1)
ꢀꢀ
公式(13)
[0743]
mac_k(psk)=prf(密钥3,key type|keyid|更新的psk2)
ꢀꢀ
公式(14)
[0744]
在公式(13)和公式(14)中:
[0745]
密钥3可以是由报文1中的keyid指示的psk派生得到的,密钥3和公式(1)中的密钥
1以及公式(12)中的密钥2可以相同,也可以不同,本技术实施例不做具体限定;
[0746]
key type为psk;
[0747]
keyid为更新的psk2的keyid;
[0748]
psk密钥材料1为通信装置2接收到的报文3中携带的psk密钥材料1。
[0749]
关于padding字段和padding length字段,可以参考s103中的相关描述部分,此处不再详述。
[0750]
关于icv字段,该字段用于携带报文4的完整性校验码。其中,icv字段可以通过如下公式(15)计算得到:
[0751]
icv=prf(aik,message 4)
ꢀꢀ
公式(15)
[0752]
在公式(15)中:
[0753]
prf:可以是aes_cmac_128算法;
[0754]
message 4为报文4中的部分字段,在一个示例中,message 4包括从报文4的eap header 一直到icv字段的前一个字节,或者说,message 4包括从报文4的eap header一直到 encrypted payload字段的最后一个字节,不包含icv本身。即:
[0755]
message 4={eap header|eap type|flags|ext flags|session id|keyid|encryptedpayload}。
[0756]
s108:通信装置1对接收到的报文4进行验证。
[0757]
通信装置1接收到报文4之后,可以对报文4进行验证。一方面,可以通过报文4确定通信装置2是否通过身份认证,另一方面,可以通过报文4确定通信装置2对报文3中携带的密钥材料1的处理结果。
[0758]
通信装置1对报文4进行验证在具体实现时,可以对报文4中的各个字段的值进行验证。其中:
[0759]
对于eap header字段的校验,可以参考rfc3748中的相关描述部分,此处不再详述。
[0760]
对于flags字段:p指示位必须是1,因为报文4是认证阶段的报文,含有加密字段,即包括encrypted payload字段。r指示位必须是1,因为报文4是response报文。cs指示位的值应该与报文2中cs指示位的值相同。在当前eap-psk协议的版本为1的情况下, version字段的值必须是1。在一个示例中,若version字段的值不是1,则通信装置1可以无需验证其它字段,直接确定身份认证失败,终止身份认证过程,对于这种情况,通信装置1可以向通信装置2发送一个指示身份认证失败的响应报文,该响应报文中例如可以包括一个指示信息,该指示信息用于指示身份认证终止的原因是eap-psk协议的版本号不匹配。
[0761]
k指示位的值可以是1,也可以是0,若k指示位的值为0,说明报文4中不包括keyid 字段,因此,后续也无需对keyid字段进行验证。若k指示位的值为1,则说明报文4中包括keyid字段,因此,通信装置1还需要对keyid字段进行验证。当报文4中包括keyid 字段时,说明通信装置1和通信装置2在上一次身份认证时更新了认证密钥。通信装置1 对keyid字段进行验证时,要验证该keyid字段是否与本地存储的可用认证密钥的keyid 匹配。
[0762]
对于ext flags字段:由于报文4是通信装置2向通信装置1发送的认证报文,因此,在值2标识身份认证阶段时,exch type字段的值必须为2。
[0763]
关于session id字段:session id字段中ssid字段的值与报文1中ssid字段的值
相同。若报文3中包括csid字段,则csid字段的值与报文2中csid字段的值相同。
[0764]
在本技术实施例中,通信装置1可以首先对报文4中的icv字段进行验证,来验证报文4的完整性。在报文4通过完整性验证的情况下,再对报文4中的encrypted payload字段进行校验。这样做是因为只有报文4通过完整性验证,才说明报文4在传输过程中未被篡改,才能说明encrypted payload字段中的内容大概率可信。
[0765]
通信装置1对报文4中的icv字段进行验证时,可以对报文4中除icv字段的其它字段进行icv计算,并将计算得到的值与报文4中携带的icv字段的值进行比较,若二者相同,则确定报文4通过完整性验证,否则,确定报文4未通过完整性验证。其中,通信装置1计算报文4的icv字段所利用的算法和密钥,与通信装置2计算报文4中的icv字段所使用的算法和密钥相同。其中,若通信装置1中包括多个密钥,则通信装置1例如可以根据报文4中的ssid确定对应的密钥,并利用该密钥对报文4中除icv字段的其它字段进行icv计算。
[0766]
在一个示例中,若通信装置1确定报文4未通过完整性验证,则通信装置1可以忽略该报文,并继续等待来自通信装置2的合法的认证报文。
[0767]
当通信装置1确定报文4通过完整性验证之后,通信装置1可以继续对encryptedpayload字段进行验证。通信装置1对encrypted payload字段进行验证时,可以首先对 encrypted payload字段进行解密,得到auth payload字段和key confirmed payload字段。此处需要说明的是,通信装置1对encrypted payload字段进行解密的所使用的算法和密钥,与通信装置2计算得到该encrypted payload字段所使用的加密算法和密钥相匹配。
[0768]
通信装置1解密得到auth payload字段和key confirmed payload字段之后,可以分别对 auth payload字段和key confirmed payload字段进行处理。其中:对auth payload字段进行处理的方式为:对auth payload进行验证,从而验证通信装置2的身份。对key confirmedpayload进行处理的方式,可以根据对auth payload进行验证的结果来确定。在一个示例中,若auth payload通过验证,则通信装置1可以进一步验证key confirmed payload的完整性。
[0769]
关于auth payload字段:通信装置1可以首先对auth payload的tlv header进行校验,在auth payload的tlv header通过校验之后,再对auth payload的auth data字段进行校验。在对auth payload的auth data字段进行校验时,可以采用以上公式(12)计算得到auth data,并将计算得到的auth data与报文4的auth payload字段中的auth data进行比较,若二者相同,则确定auth payload字段通过验证,否则,确定auth payload字段未通过验证。此处需要说明的是,通信装置2利用公式(12)计算auth data时,公式(12)中的报文2是通信装置2发送给通信装置1的报文,随机数1和id_1是通信装置2接收的报文1中携带的。而通信装置1利用公式(12)计算auth data时,公式(12)中的报文2是通信装置1接收到的报文,随机数1和id_1是通信装置1生成的。其中,对tlv header进行校验,例如可以校验该tlv header的tlv type是否为auth payload,其tlv length字段的值是否正确等。
[0770]
可以理解的是,由于报文2参与auth data的计算,因此,auth data通过验证,也进一步验证了报文2的合法性,从而避免了报文2是明文传输而潜在的安全风险。
[0771]
在一个示例中,若auth payload字段未通过验证,则通信装置1可以确定身份认证失败,终止身份认证过程。对于这种情况,通信装置1可以向通信装置2发送一个指示身份认证失败的响应报文,该响应报文中例如可以包括一个指示信息,该指示信息用于指示身份
认证失败。
[0772]
在一个示例中,若auth payload字段通过验证,则通信装置1可以继续对key confirmedpayload字段进行验证。对key confirmed payload字段进行验证时,可以针对key confirmedpayload字段中的各个key confirmed字段进行校验。以psk对应的key confirmed字段(以下简称psk key confirmed字段)为例,通信装置1可以采用通信装置2计算mac_k字段的方式,计算psk key confirmed字段中的mac_k字段的值,例如通信装置1可以利用上述公式(13)和公式(14)对psk key confirmed字段进行计算。通信装置1计算得到对应的值之后,可以将计算得到值和报文4中psk key confirmed字段中mac_k字段的值进行比较,若二者相同,则psk key confirmed字段通过验证,否则,psk key confirmed字段未通过验证。
[0773]
此处需要说明的是,若通信装置1采用上述公式(14)进行计算,则通信装置1需要利用报文3中携带的psk密钥材料1得到更新的psk2;类似的,对于认证密钥对应的keyconfirmed字段进行验证时,若通信装置1采用上述公式(14)进行计算,则通信装置1 需要利用报文3中携带的认证密钥材料1得到更新的认证密钥;对于数据密钥对应的keyconfirmed字段进行验证时,若通信装置1采用上述公式(14)进行计算,则通信装置1 需要利用报文3中携带的数据密钥材料1得到更新的数据密钥。
[0774]
s109:通信装置1根据密钥材料1得到更新的密钥,并保存得到的更新的密钥。
[0775]
在本技术实施例中,s109可以在s103之后s108之前执行,也可以在s108之后执行,本技术实施例不做具体限定。
[0776]
若s109在s103和s108之间执行,则通信装置1可以结合s108中对key confirmedpayload字段进行验证的结果,进行相应的处理。以下介绍几种可能的情况。
[0777]
在一个示例中,报文3中包括的所有密钥材料1,在报文4中均有对应的密钥材料1 确认信息,且通信装置1确定报文4中的密钥材料1确认信息均通过验证。对于这种情况,通信装置1可以立即执行以下s110和s111,告知通信装置2身份认证成功,并且密钥更新成功。若报文3中包括数据密钥材料1,则通信装置2可以利用该数据密钥材料1派生得到的数据密钥和通信装置1进行通信。
[0778]
在又一个示例中,报文4中的密钥材料1确认信息的数量,小于报文3中密钥材料1 的数量。即报文4中keynumbers字段的值,小于报文3中keynumbers字段的值。即通信装置2完成了部分密钥的更新。相应的,通信装置1对key confirmed payload字段进行验证时,确定部分或者全部key confirmed字段通过验证。对于这种情况,通信装置1可以保留通过验证的key confirmed字段对应的更新的密钥,删除s109中保存的除通过验证的keyconfirmed字段对应的更新的密钥之外的其它密钥。
[0779]
举例说明:报文3中包括psk密钥材料1、认证密钥材料1和数据密钥材料1,通信装置1执行s109,保存了更新的psk2、更新的认证密钥和更新的数据密钥。报文4中包括psk密钥材料1确认信息和认证密钥材料1确认信息,通信装置1确定psk密钥材料1 确认信息和认证密钥材料1确认信息均通过认证,则通信装置1可以删除保存的更新的数据密钥,因为通信装置2未成功更新数据密钥。
[0780]
举例说明:报文3中包括psk密钥材料1、认证密钥材料1和数据密钥材料1,通信装置1执行s109,保存了更新的psk2、更新的认证密钥和更新的数据密钥。报文4中包括psk密
钥材料1确认信息和认证密钥材料1确认信息,通信装置1确定psk密钥材料1 确认信息通过认证,则通信装置1可以删除保存的更新的数据密钥和更新的认证密钥,因为通信装置2未成功更新数据密钥,通信装置1确定报文4中的认证密钥确认信息未通过验证。
[0781]
若s109在s108之后执行,则s109在具体实现时,通信装置1可以结合s108中对keyconfirmed payload字段进行验证的结果,来获得相关更新的密钥并保存。以下介绍几种可能的情况。
[0782]
在一个示例中,报文3中包括的所有密钥材料1,在报文4中均有对应的密钥材料1 确认信息,且通信装置1确定报文4中的密钥材料1确认信息均通过验证。对于这种情况,通信装置1可以根据报文3中的所有密钥材料1获得对应的更新的密钥,并保存所述更新的密钥。此处需要说明的是,通信装置1根据psk密钥材料1得到更新的psk2之后,需要把更新的psk2存储到通信装置1的非易失存储区。通信装置1根据psk密钥材料1得到更新的psk2、和通信装置1把更新的psk2存储到通信装置1的非易失存储区这两个步骤中的任意一个步骤失败,则通信装置1更新psk失败。
[0783]
在一个示例中,通信装置1可以先保存密钥材料1。作为一个示例,当密钥材料1包括psk密钥材料1时,通信装置1可以在psk2的老化周期开始之前,读取该psk密钥材料1,并根据该psk密钥材料1得到psk2。作为又一个示例,当密钥材料1包括数据密钥材料1时,通信装置1可以在更新的数据密钥的老化周期开始之前,读取该数据密钥材料1,并根据该psk密钥材料1得到更新的数据密钥。作为另一个示例,当密钥材料1 包括认证密钥材料1时,通信装置1可以在更新的认证密钥的老化周期开始之前,读取该认证密钥材料1,并根据该认证密钥材料1得到更新的认证密钥。
[0784]
在又一个示例中,报文4中的密钥材料确认信息的数量,小于报文3中密钥材料1的数量。即报文4中keynumbers字段的值,小于报文3中keynumbers字段的值。即通信装置2完成了部分密钥的更新。相应的,通信装置1对key confirmed payload字段进行验证时,确定部分或者全部key confirmed字段通过验证。对于这种情况,通信装置1可以根据通过验证的key confirmed字段对应的密钥材料1得到更新的密钥,并保存所述更新的密钥,对于未通过验证的key confirmed字段对应的密钥材料1,通信装置1可以不做处理,即不再执行根据该密钥材料1获得更新的密钥并保存所述更新的密钥的步骤。
[0785]
举例说明:报文3中包括psk密钥材料1、认证密钥材料1和数据密钥材料1。报文 4中包括psk密钥材料1确认信息和认证密钥材料1确认信息,通信装置1确定psk密钥材料1确认信息和认证密钥材料1确认信息均通过认证,则通信装置1可以根据psk密钥材料1得到更新的psk2并保存;通信装置1还可以根据认证密钥材料1得到更新的认证密钥并保存。通信装置1可以无需执行根据数据密钥材料1得到更新的数据密钥的步骤。
[0786]
再举例说明:报文3中包括psk密钥材料1、认证密钥材料1和数据密钥材料1。报文4中包括psk密钥材料1确认信息和认证密钥材料1确认信息,通信装置1确定psk 密钥材料1确认信息通过认证,则通信装置1可以根据psk密钥材料1得到更新的psk2 并保存。通信装置1可以无需执行根据数据密钥材料1得到更新的数据密钥的步骤,也无需执行根据认证密钥材料1得到更新的认证密钥的步骤。
[0787]
在一个示例中,若报文4中仅包括数据密钥材料1确认信息,即仅包括数据密钥材料 1对应的密钥材料1确认信息,且通信装置1确定该数据密钥材料1确认信息通过验证,通
信装置1可以利用根据数据密钥材料1得到的更新的数据密钥对通信装置1接收和发送的数据报文进行处理。
[0788]
在一个示例中,若报文3中包括psk密钥材料1,而报文4中不包括psk密钥材料 1确认信息,则说明通信装置2并未成功处理该psk密钥材料1,则通信装置1可以确定 psk更新失败。通信装置1可以重新发起psk的更新。
[0789]
关于通信装置1利用密钥材料1得到更新的密钥的具体实现,可以参考上文通信装置 2利用密钥材料1得到更新的密钥的具体实现部分,此处不再重复描述。
[0790]
s110:通信装置生成报文5,报文5中包括指示信息1,指示信息1用于指示密钥更新结果和身份认证结果。
[0791]
在本技术中,报文5可以为eap-psk报文。关于报文5,其报文结构可以参考图3c 所示。关于报文5中的各个字段,现说明如下:
[0792]
关于eap header,需要说明的是:
[0793]
identifier字段的值为报文3中identifier字段的值加1,其它字段可以参考征求意见 (request for comments,rfc)3748的相关描述部分,此处不做详述。
[0794]
eap type字段的值为47。
[0795]
关于flags字段:p指示位的值为1,报文5采用密文发送。r指示位的值为0,表示报文5是request报文。version指示位的值可以为1;cs指示位的值和报文2中cs指示位的值相同。k指示位用于指示是否包括keyid字段。此处需要说明的是,若报文4中携带认证密钥材料1确认信息,并且通信装置1确认该认证密钥材料1确认信息通过验证,则报文5中可以包括keyid字段。因此,作为一个示例,k指示位的值可以为1。对于这种情况,keyid字段的值为更新的认证密钥对应的keyid,相应的,报文5中的加密字段利用该更新的认证加密密钥进行加密,报文5的icv字段,利用该更新的认证完整性密钥进行计算。若报文4中不包括认证密钥材料1确认信息,或者,通信装置1对报文4进行验证时,确认报文4中的认证密钥材料1确认信息未通过验证,则报文5中的k指示位的值可以与报文3中的k指示位的值相同,报文5中的keyid字段的值可以与报文3中的 keyid字段的值相同。
[0796]
关于exch type字段,在报文5中,exch type字段的值可以为4,用于表示身份认证结果和密钥更新结果的通知阶段。
[0797]
关于session id字段,对于session id字段中的ssid字段,其取值与报文1中ssid 字段的值相同,若session id字段包括csid字段,则csid字段的值与报文2中csid的值相同。
[0798]
关于encrypted payload字段,该字段用于携带加密数据。在一个示例中,encrypted payload字段可以是一个tlv字段。关于tlv字段的结构,可以参考图3b,此处不再重复描述。在一个示例中,encrypted payload字段可以包括tlv header字段和encrypted data字段。其中,encrypted data字段用于携带加密后的数据。关于encrypted data字段的结构,可以参考图3d以及上文对于图3d的描述部分,此处不再详述。在本技术实施例中,报文5 中的encrypted data字段的值可以是利用加密算法对图3k所示的字段进行加密得到的,图 3k所示的字段包括结果载荷(result payload)字段、padding字段和padding length字段。其中:
[0799]
result payload字段用于携带s110中提及的密钥更新结果和/或身份认证结果。
在一个示例中,result payload字段可以是一个tlv字段。该tlv字段,可以参考图3l所示,图3l为本技术实施例提供的一个result payload字段的示意图。result payload字段可以包括 tlv header字段、result字段、密钥更新结果(key update result)字段和错误码(error code) 字段。其中:
[0800]
result字段用于指示身份认证结果,在一个示例中,result字段可以占用1字节。其中,该身份认证结果可以是通信装置1对通信装置2的认证结果,因为通信装置2已经确定通信装置1认证通过。通信装置1可以通过报文4中的身份认证信息2对通信装置2进行身份认证。key update result字段用于指示通信装置1的密钥更新结果,在一个示例中,keyupdate result字段可以占用1字节。error code字段用于指示身份认证失败的原因,在一个示例中,error code字段可以占用2字节。当result字段指示身份认证成功时,key update result 字段有效,error code字段无效;当result字段指示身份认证失败时,key update result字段无效,error code字段有效。
[0801]
关于key update result字段,其可以包括多个密钥更新结果指示位,一个指示位占用1 个比特。在一个示例中,key update result字段可以包括psk更新结果指示位、认证密钥更新结果指示位和数据密钥更新结果指示位。其中:
[0802]
psk更新结果指示位用于指示psk的更新结果。在本技术实施例中,若报文4中包括 psk密钥材料1确认信息,且通信装置1确定该psk密钥材料1确认信息通过认证,并且,通信装置1本地更新psk成功,则psk更新结果指示位携带用于指示psk更新成功的值,例如,psk更新结果指示位的值为1。否则,psk更新结果指示位携带用于指示psk更新失败的值。
[0803]
认证密钥更新结果指示位用于指示认证密钥的更新结果。在本技术实施例中,若报文 4中包括认证密钥材料1确认信息,且通信装置1确定该认证密钥材料1确认信息通过认证,并且,通信装置1本地更新认证密钥成功,则认证密钥更新结果指示位携带用于指示认证密钥更新成功的值,例如,认证密钥更新结果指示位的值为1。否则,认证密钥更新结果指示位携带用于指示认证密钥更新失败的值。
[0804]
数据密钥更新结果指示位用于指示数据密钥的更新结果。在本技术实施例中,若报文 4中包括数据密钥材料1确认信息,且通信装置1确定该数据密钥材料1确认信息通过认证,并且,通信装置1本地更新数据密钥成功,则数据密钥更新结果指示位携带用于指示数据密钥更新成功的值,例如,数据密钥更新结果指示位的值为1。否则,数据密钥更新结果指示位携带用于指示数据密钥更新失败的值。
[0805]
在一个示例中,数据密钥派生时,可以利用认证密钥派生得到的kdk,对于这种情况,通信装置1和通信装置2在派生数据密钥和认证密钥时,可以先利用认证密钥材料1派生得到更新认证密钥,而后利用派生得到的认证密钥中的kdk和数据密钥派生材料派生得到数据密钥。对于这种情况,若报文4中包括数据密钥材料1确认信息和认证密钥材料1 确认信息,并且通信装置1确定认证密钥材料1确认信息未通过认证,或者,通信装置1 本地更新认证密钥失败。对于这种情况,在一种实现方式中,通信装置1可以确定数据密钥和认证密钥均更新失败。即:数据密钥更新结果指示位携带用于指示数据密钥更新失败的值,并且,认证密钥更新结果指示位携带用于指示认证密钥更新失败的值。在另一种实现方式中,通信装置1可以在利用更新前的认证密钥的kdk和数据密钥材料1派生得到数据密钥,并确定数据密钥更新成功。即:数据密钥更新结果指示位携带用于指示数据密钥更新成功的值,并
且,认证密钥更新结果指示位携带用于指示认证密钥更新失败的值。
[0806]
当通信装置1确定数据密钥更新成功之后,则可以利用更新后的数据密钥接收数据。
[0807]
需要说明的是,若result字段指示身份认证成功,但是key update result字段指示各个密钥均更新失败,则通信装置1可以重新发起密钥更新。
[0808]
error code字段用于指示身份认证失败的类型。认证失败的类型可以包括认证失败、认证超时和终止认证的其中一种。其中,认证失败例如可以是通信装置1对身份认证信息2 进行验证时,身份认证信息2未通过验证。认证超时例如可以是通信装置1向通信装置2 发送报文3之后,等待报文4的时间超过超时等待时间阈值。终止认证例如可以是通信装置1对报文4进行验证时,报文4中的关键字段例如version字段、session id字段等字段未通过验证。
[0809]
报文5中的icv字段用于携带报文5的完整性校验码。其中,icv字段可以通过如下公式(16)计算得到:
[0810]
icv=prf(aik,message 5)
ꢀꢀ
公式(16)
[0811]
在公式(16)中:
[0812]
prf:可以是aes_cmac_128算法;
[0813]
message 5为报文5中的部分字段,在一个示例中,message 5包括从报文5的eap header 一直到icv字段的前一个字节,或者说,message 5包括从报文5的eap header一直到 encrypted payload字段的最后一个字节,不包含icv本身。即:
[0814]
message 5={eap header|eap type|flags|ext flags|session id|keyid|encrypted payload};
[0815]
若报文5中包括keyid字段,则公式(16)中的aik为报文5中的keyid字段携带的 keyid对应的aik;若报文5中不包括keyid字段、报文3中包括keyid字段,则公式(16) 中的aik为报文3中的keyid字段携带的keyid对应的aik;若报文5和报文3均不包括 keyid字段,则公式(16)中的aik为报文1中的keyid字段携带的keyid对应的psk派生得到的,或者,公式(16)中的aik为通信装置1的默认psk派生得到的。
[0816]
s111:通信装置1将报文5发送给通信装置2。
[0817]
通信装置1生成报文5之后,可以将报文5发送给通信装置2,以使得通信装置2确定身份认证结果和密钥更新结果。
[0818]
s112:通信装置2对接收到的报文5进行验证。
[0819]
通信装置2接收到报文5之后,可以对报文5进行验证,从而确定身份认证结果和密钥更新结果。
[0820]
通信装置2对报文5进行验证在具体实现时,可以对报文5中的各个字段的值进行验证。其中:
[0821]
对于eap header字段的校验,可以参考rfc3748中的相关描述部分,此处不再详述。
[0822]
对于flags字段:p指示位必须是1,因为报文5含有加密字段,即包括encrypted payload 字段。r指示位必须是0,因为报文5是request报文。cs指示位的值应该与报文2中cs 指示位的值相同。在当前eap-psk协议的版本为1的情况下,version字段的值必须是1。
在一个示例中,若version字段的值不是1,则通信装置2可以无需验证其它字段,忽略该报文,并继续等待合法的报文5。
[0823]
k指示位的值可以是1,也可以是0,若k指示位的值为0,说明报文5中不包括keyid 字段,因此,后续也无需对keyid字段进行验证。若k指示位的值为1,则说明报文5中包括keyid字段,因此,通信装置2还需要对keyid字段进行验证。当报文5中包括keyid 字段时,说明通信装置1和通信装置2通过报文1至报文4这4个报文的交互实现了认证密钥的交互,此时keyid字段的值应该为更新后的认证密钥的keyid。
[0824]
对于ext flags字段:由于报文5是通信装置1向通信装置2发送的通知报文,因此,在值4用于表示身份结果和密钥更新结果的通知阶段时,exch type字段的值必须为4。
[0825]
关于session id字段:session id字段中ssid字段的值与报文1中ssid字段的值相同。若报文3中包括csid字段,则csid字段的值与报文2中csid字段的值相同。
[0826]
在本技术实施例中,通信装置2可以首先对报文5中的icv字段进行验证,来验证报文5的完整性。在报文5通过完整性验证的情况下,再对报文5中的encrypted payload字段进行校验。这样做是因为只有报文5通过完整性验证,才说明报文5在传输过程中未被篡改,才能说明encrypted payload字段中的内容大概率可信。若报文5的icv字段未通过验证,则通信装置2可以忽略该报文5,继续等待合法的报文5。
[0827]
当通信装置2确定报文5通过完整性验证之后,通信装置2可以继续对encryptedpayload字段进行验证。通信装置2对encrypted payload字段进行验证时,可以首先对 encrypted payload字段进行解密,得到result payload字段。此处需要说明的是,通信装置 2对报文5中的encrypted payload字段进行解密的所使用的算法和密钥,与通信装置1计算得到报文5中的encrypted payload字段所使用的加密算法和密钥相匹配。
[0828]
通信装置2得到result payload字段之后,可以分别对result字段、key update result字段和error code字段进行解析,从而确定身份认证结果和密钥更新结果。关于result字段、 key update result字段和error code字段,可以参考s110中的相关描述部分,此处不再重复描述。
[0829]
由于在接收到报文5之前,通信装置2本地可能已经完成了密钥的派生和存储操作。因此,若通信装置2完成更新的密钥,通信装置1并未完成更新,则为了保证通信装置1 和通信装置2的密钥同步,通信装置2则需要删除更新的密钥。现举例说明:
[0830]
举例说明1:若报文4中包括psk密钥材料1确认信息,而报文5中的psk更新结果指示位指示psk更新失败,则通信装置2可以将更新的psk2从非易失存储区删除。或者,通信装置2可以将该更新的psk2设置为不可用psk,若再次更新psk,可以将再次更新的psk2覆盖存储至该更新的psk2所在的非易失存储区。若报文4中不包括psk密钥材料1确认信息,则通信装置2可以忽略报文5中的psk更新结果指示位。
[0831]
举例说明2:若报文4中包括数据密钥材料1确认信息,而报文5中的数据密钥更新结果指示位指示数据密钥更新失败,则通信装置2可以将更新的数据密钥删除。或者,通信装置2可以将该更新的数据密钥设置为不可用数据密钥。对于这种情况,若通信装置1 或者通信装置2已经使用更新的数据密钥进行数据报文的处理,则应该停止利用更新的数据密钥处理数据报文。若报文4中不包括数据密钥材料1确认信息,则通信装置2可以忽略报文5中的数据密钥更新结果指示位。
[0832]
举例说明3:若报文4中包括认证密钥材料1确认信息,而报文5中的认证密钥更新结果指示位指示认证密钥更新失败,则通信装置2可以将更新的认证密钥删除。或者,通信装置2可以将该更新的认证密钥设置为不可用认证密钥。若报文4中不包括认证密钥材料1确认信息,则通信装置2可以忽略报文5中的认证密钥更新结果指示位。
[0833]
另外,在一个示例中,当result字段指示身份认证失败时,通信装置2还可以记录errorcode字段的值以生成日志文件,或者向控制管理设备上报告警信息。在又一个示例中,当 result字段指示身份认证失败时,通信装置2执行s113之后,则进入等待重新身份认证的状态。
[0834]
如前文s110所述,数据密钥派生时,可以利用认证密钥派生得到的kdk。对于这种情况,在一些实施例中,若报文5中的数据密钥更新结果指示位携带用于指示数据密钥更新成功的值,并且,认证密钥更新结果指示位携带用于指示认证密钥更新失败的值。则通信装置2可以删除原本生成的、根据更新的认证密钥的kdk派生得到的数据密钥,并利用更新前的认证密钥的kdk和数据密钥材料1派生得到数据密钥并保存。保存数据密钥之后,通信装置2则可以利用该数据密钥处理数据报文。
[0835]
s113:通信装置2在报文5通过验证的情况下,向通信装置1发送报文6,报文6为报文5的响应报文。
[0836]
在本技术中,报文6可以为eap-psk报文。关于报文6,其报文结构可以参考图3m 所示。报文6的结构与报文5类似,只是报文6中不包括encrypted payload字段。
[0837]
关于报文6中的各个字段的取值,现说明如下:
[0838]
关于eap header的各个字段的含义,可以参考征求意见(request for comments,rfc) 3748的相关描述部分,此处不做详述。
[0839]
eap type字段的值为47。
[0840]
关于flags字段:p指示位的值为1,因为报文6包括icv字段。r指示位的值为1,表示报文5是response报文。version指示位的值可以为1;cs指示位的值和报文2中cs 指示位的值相同。k指示位用于指示是否包括keyid字段。k指示位和keyid字段,与报文5相同,可以参考报文5中的相关描述部分。
[0841]
关于exch type字段,在报文6中,exch type字段的值可以为4,用于表示身份结果和密钥更新结果的通知阶段。
[0842]
关于session id字段,对于session id字段中的ssid字段,其取值与报文1中ssid 字段的值相同,若session id字段包括csid字段,则csid字段的值与报文2中csid的值相同。
[0843]
报文6中的icv字段用于携带报文6的完整性校验码。其中,icv字段可以通过如下公式(17)计算得到:
[0844]
icv=prf(aik,message 6)
ꢀꢀ
公式(17)
[0845]
在公式(17)中:
[0846]
prf:可以是aes_cmac_128算法;
[0847]
message 6为报文6中的部分字段,在一个示例中,message 6包括从报文6的eap header 一直到icv字段的前一个字节,或者说,message 6包括从报文6的eap header一直到keyid 字段的最后一个字节,不包含icv本身。即:
[0848]
message 6={eap header|eap type|flags|ext flags|session id|keyid};
[0849]
关于公式(17)中的aik,其可以与公式(16)中的aik相同,因此,关于公式(17) 中的aik,可以参考上文对于公式(16)的相关描述部分,此处不再重复描述。
[0850]
s114:通信装置1对接收到的报文6进行验证。
[0851]
通信装置1接收到报文6之后,可以对报文6进行验证,身份认证和密钥更新流程结束。
[0852]
通信装置1对报文6进行验证在具体实现时,可以对报文6中的各个字段的值进行验证。其中:
[0853]
对于eap header字段的校验,可以参考rfc3748中的相关描述部分,此处不再详述。
[0854]
对于flags字段:p指示位必须是1,因为报文6含有icv字段。r指示位必须是1,因为报文6是response报文。cs指示位的值应该与报文2中cs指示位的值相同。在当前 eap-psk协议的版本为1的情况下,version字段的值必须是1。
[0855]
k指示位的值可以是1,也可以是0,若k指示位的值为0,说明报文6中不包括keyid 字段,因此,后续也无需对keyid字段进行验证。若k指示位的值为0,则说明报文6中包括keyid字段,因此,通信装置1还需要对keyid字段进行验证。当报文6中包括keyid 字段时,说明通信装置1和通信装置2通过报文1至报文4这4个报文的交互实现了认证密钥的交互,此时keyid字段的值应该为更新后的认证密钥的keyid。
[0856]
对于ext flags字段:由于报文6是报文5的应答报文,因此,报文6中ext flags字段的值与报文5中ext flags字段的值相同。在值4用于表示身份结果和密钥更新结果的通知阶段时,报文5中exch type字段的值为4,因此,报文6中exch type字段的值也必须为4。
[0857]
关于session id字段:session id字段中ssid字段的值与报文1中ssid字段的值相同。若报文3中包括csid字段,则csid字段的值与报文2中csid字段的值相同。
[0858]
在本技术实施例中,通信装置1可以对报文6中的icv字段进行验证,来验证报文6 的完整性。通信装置1可以通过以上公式(17)计算报文6的icv值,并将计算得到的icv 值和报文6中携带的icv值进行比较,若二者相同,则说明报文6通过完整性验证。
[0859]
通过以上s101-s114,通信装置1和通信装置2可以在身份认证的同时,完成密钥的更新。
[0860]
在一个示例中,在执行s103之前,通信装置2还可以向通信装置1发送指示信息1,该指示信息1用于指示通信装置2具备自动更新密钥的能力,其中,此处提及的自动更新密钥,可以是自动更新psk、自动更新数据密钥以及自动更新认证密钥中的其中一种或者多种。通信装置2接收到该指示信息1之后,若确定自身也具备自动更新密钥的能力,则可以执行前述s103,从而使得通信装置1和通信装置2可以利用以上方法100实现密钥的自动更新。
[0861]
以上s101-s114与传统的eap-psk身份认证方法相比,还具体以下几个优点。在介绍优点之前,首先对传统的eap-psk身份认证方法进行简单介绍。
[0862]
传统的eap-psk身份认证,通信装置1和通信装置2可以通过交互4条报文来实现身份认证。传统的eap-psk报文的结构如图3n所示。如图3a,传统的eap-psk报文包括eap header字段、eap type字段、flags字段和eap-psk data字段。身份认证时,该4 个报文的eap-psk data字段所包括的内容如下表2所示。
[0863]
表2
[0864][0865]
其中:
[0866]
mac_p=cmac-aes-128(ak,id_p||id_s||rand_s||rand_p)
[0867]
mac_s=cmac-aes-128(ak,id_s||rand_p)
[0868]
第一、mac_p用于对通信装置2进行身份认证,mac_s用于对通信装置1进行身份认证,而mac_p不能实现对报文1和报文2的完整性验证,因为计算mac_p时,第一条报文中的eap header字段、eap type字段以及flags字段均没有参与计算;类似的, mac_s不能实现对报文1和报文2的完整性验证。
[0869]
而在本技术实施例中,如上公式(1)所示,报文3中的auth data的计算因子包括完整的报文1,从而实现了对报文1的完整性验证,避免报文1明文传输带来的安全风险。如上公式(12)所述,报文4中的auth data的计算因子包括完整的报文2,从而实现了对报文2的完整性验证,避免报文2明文传输带来的安全风险。
[0870]
第二、传统的eap-psk身份认证,mac_s和mac_p采用明文传输,未进行加密,安全性低,而在本技术实施例中,报文3中携带加密之后的身份认证信息1,报文4中携带加密之后的身份认证信息2,安全性更高。
[0871]
第三、传统的eap-psk身份认证,利用rand_s作为身份认证的会话标识,rand_s 占用16字节。在本技术实施例中,利用ssid标识身份认证会话,ssid占用4字节,大大减少了身份认证的会话标识占用的内存空间。
[0872]
第四、传统的eap-psk身份认证,仅能够通过上述4个报文实现身份认证,而不能如本技术实施例中那样实现密钥更新。
[0873]
关于表2所示的内容以及传统的eap-psk身份认证过程,可以参考rfc4764的描述部分,此处不详述。
[0874]
在一个示例中,若通信装置2在接收到报文3之后,对报文3验证失败,例如,报文 3中的icv字段未通过验证,或者,报文3中的身份认证信息1未通过验证,则通信装置 2可以生成报文4’,告知通信装置1身份认证失败。报文4’的报文结构与报文4相同,不同之处在于,报文4’中的encrypted payload字段用于携带加密后的result payload。即报文4’中encrypted data字段的值,可以是利用加密算法对result payload进行加密得到的,关于result payload的结构,可以参考图3l以及上文对于图3l的描述部分,此处不再重复描述。此时通信装置2进入等待用于请求身份认证的报文1的状态。
[0875]
在一个示例中,若通信装置2执行“向通信装置1发送报文2”(s102)之后,超过等待
时间阈值还未接收到来自通信装置1的报文3,则通信装置2进入保持(held)状态,通信装置2进入held状态之后,若接收到来自通信装置1的报文,则直接丢弃该报文。在一个示例中,通信装置1在进入held状态后,还可以启动held定时器,该定时器用于记录通信装置2保持held状态的时间,当held定时器指示通信装置2保持held状态的时间超过一定的时间阈值时,通信装置2可以重新发起身份认证。在一个示例中,通信装置2可以向通信装置1发送一个通知消息,以指示通信装置1重新发起身份认证。在本技术实施例中,若通信装置保持held状态的时间超过一定的时间阈值之后,通信装置2若接收到来自于通信装置1的报文3,则忽略该报文,通信装置2若接收到来自通信装置1的报文1,可以基于该报文1重新进行身份认证。
[0876]
在一个示例中,若通信装置2执行“向通信装置1发送报文4”(s107)之后,超过等待时间阈值还未接收到来自通信装置1的报文5,则在一个示例中,若s103中通信装置1向通信装置2发送的报文3中包括数据密钥材料1,且,通信装置2接收到了来自通信装置1的、采用新的密钥材料1派生得到的数据密钥处理的数据报文,则此时通信装置2 可以确定身份认证成功、并且数据密钥更新成功。因为只有通信装置1确定身份认证通过,并且数据密钥更新成功,通信装置1才会使用更新后的数据密钥对发送给通信装置2的数据报文进行处理。在又一个示例中,若通信装置2未接收到来自通信装置1的数据报文,则通信装置2可以怀疑身份认证失败。因为一旦通信装置1确定身份认证成功,即使不发送报文5,可能会向通信装置2发送数据报文,也可能当前没有数据报文要发送、或者没有数据密钥可用,若通信装置1未向通信装置2发送数据报文,则说明通信装置1或者确定身份认证失败、或者当前没有数据报文需要发送、或者数据密钥更新失败、或者当前通信链路存在问题,无法将报文发给通信装置2。对于这种情况,若通信装置2接收到来自于通信装置1的报文1,则在一个示例中,通信装置2可以基于该通信装置1重新进行身份认证。在又一个示例中,通信装置2可以进入held状态,并启动held定时器,该定时器用于记录通信装置2保持held状态的时间,当held定时器指示通信装置2保持held状态的时间未超过一定的时间阈值时,通信装置2也可以忽略该报文1,继续等待。
[0877]
在一个示例中,若通信装置1发送报文3之后一定时间内未收到报文4,通信装置1 可以向通信装置2重传报文3。若通信装置1重传报文3的次数超过一定的数量阈值,则通信装置1可以认为身份认证失败。在一个示例中,通信装置1还可以进入held状态,并启动held定时器,该定时器用于记录通信装置1保持held状态的时间,当held定时器指示通信装置1保持held状态的时间超过一定的时间阈值时,通信装置1可以重新发起身份认证。
[0878]
在一个示例中,若通信装置1向通信装置2发送报文5之后一定时间内未收到报文6,通信装置1可以向通信装置2重传报文5。若通信装置1重传报文5的次数超过一定的数量阈值,则通信装置1可以确定身份认证失败。在另一个示例中,若通信装置1向通信装置2发送报文5之后一定时间内未收到报文6,通信装置1可以向通信装置2重传报文5。若通信装置1重传报文5的次数超过一定的数量阈值,通信装置1可以根据自身的身份认证状态分别处理:如果报文5的result payload中指示身份认证成功,且对报文4的各密钥的正确确认信息,则可以认为是认证成功;如果报文5中含有数据密钥更新成功的指示信息,则可以使用该数据密钥对数据报文进行处理;如果报文5的result payload中指示认证失败,则通信装置1可以确定身份认证失败。在一个示例中,通信装置1可以向通信装置 2发送一个通知消
息,以指示身份认证失败。通信装置1确定身份认证失败之后,通信装置1还可以进入held状态,并启动held定时器,该定时器用于记录通信装置1保持held 状态的时间,当held定时器指示通信装置1保持held状态的时间超过一定的时间阈值时,通信装置1可以重新发起身份认证。
[0879]
在一些示例中,当通信装置1和通信装置2在执行以上s101-s114的过程中,可能会出现一些异常情况,导致上述过程中途中断。例如,通信装置1或者通信装置2断电,又如,如上所述,通信装置2执行s102之后,超过等待时间阈值还未接收到来自通信装置1 的报文3,等等。
[0880]
在一个示例中,若由通信装置2重新发起身份认证,则通信装置2可以通过底层承载协议向通信装置1发一个通知消息,以指示通信装置1重新发起身份认证。在一个示例中,若通信装置1是图1所示的nad 101,通信装置2是图1所示的mcu 102,则该通知消息例如可以为基于局域网的扩展认证协议(eap over lan,eapol)启动(start)消息。在一个示例中,通信装置1接收到该通知消息之后,若无法判断该通知消息的真实性(例如该通知消息明文传输),则通信装置1可以根据本地的身份认证状态来确定下一步执行的动作。作为一个示例,若通信装置1尚未完成身份认证,例如,通信装置1发送完报文2 之后接收到该通知消息,则通信装置1可以立即重新发起身份认证,也可以等待一定时间之后再重新发起身份认证,本技术实施例不做具体限定。作为又一个示例,若通信装置1 已经完成身份认证,例如,通信装置1接收到报文4之后接收到该通知消息,则通信装置 1可以向通信装置2发送状态查询消息,以确定通信装置2的状态,从而确定所接收到的指示重新发起身份认证的通知消息的合法性。若确定该通知消息合法,则通信装置1可以重新发起身份认证,否则,通信装置1可以忽略该通知消息。
[0881]
在一个示例中,若由通信装置1重新发起身份认证,则在一个示例中,通信装置1可以直接重新生成报文1,并将重新生成的报文1发送给通信装置2,从而重启启动身份认证过程。在又一个示例中,通信装置1也可以向通信装置2发送一个通知消息,以告知通信装置2即将重新启动身份认证。
[0882]
在一些示例中,当通信装置1和通信装置2在执行以上s101-s114的过程中,通信装置1或者通信装置2的身份认证功能可能会被去使能,即通信装置1和通信装置2不具备继续进行身份认证的条件。例如,用户执行了相应的操作使得通信装置的身份认证功能被去使能。又如,通信装置的身份认证功能被重启。
[0883]
在一个示例中,若通信装置1的身份认证功能去使能,则通信装置1可以向通信装置 2发送一个通知消息,该通知消息用于指示通信装置2删除身份认证会话。例如:若通信装置1在等待报文2的过程中身份认证功能被去使能,则通信装置2可以通过报文3’指示通信装置2删除身份认证会话,此时,报文3’明文传输,并且报文3’中不携带密钥材料1,而是携带如图3l所示的result payload字段,该result payload字段的result字段用于指示身份认证失败。当通信装置2在接收到报文1之后,又接收到携带result payload字段的报文3’,则通信装置2可以直接删除身份认证会话。又如:若通信装置1在等待报文 4的过程中身份认证功能被去使能,则通信装置2可以通过报文5’指示通信装置2删除身份认证会话,此时,报文5’密文传输,其加密密钥或者完整性密钥可以根据报文2中的keyid字段确定,并且报文5’中携带如图3l所示的result payload字段,该result payload 字段的result字段
用于指示身份认证失败。当通信装置2在接收到报文3之后,又接收到携带result payload字段的报文5’,则通信装置2可以直接删除身份认证会话。再如:若通信装置1在等待报文6的过程中身份认证功能被去使能,则通信装置2可以通过底层承载协议报文指示通信装置2删除身份认证会话。通信装置2接收到该底层承载协议报文之后,可以删除身份认证会话。
[0884]
在一个示例中,若通信装置2的身份认证功能去使能,则通信装置2可以向通信装置 1发送一个通知消息,该通知消息用于指示通信装置1删除身份认证会话。作为一种示例,该通知消息可以是底层承载协议报文。通信装置1接收到该底层承载协议报文之后,若该报文为密文,且通过验证,则通信装置1可以立即删除身份认证会话。若该报文为明文,则为了防止拒绝服务(denial of service,dos)网络攻击,则通信装置1可以启动底层保活。例如,当eap-psk对接eapol-eap为mka提供身份认证和更新psk时,则通信装置1 可以可以利用mka协议字段的保活功能,来协助判断通信装置2的协议状态。若前述报文3中的包括数据密钥材料1,则通信装置1接收到该明文传输的底层承载协议报文之后,可以等待一定时间,确定是否接收到采用数据密钥处理的报文,若接收到采用数据密钥处理的报文,则通信装置1可以确定该明文传输的底层承载协议报文无效,故而通信装置1 可以不执行删除身份认证会话的操作。若通信装置1等待一定时间之后,未接收到采用数据密钥处理的报文,则通信装置1可以确定该明文传输的底层承载协议报文有效,故而通信装置1可以删除身份认证会话。
[0885]
目前,eap可以和eapol结合,以实现身份认证,eap和eapol的结合,可以被称为eapol-eap。eap还可以和媒体接入控制安全密钥协议(media access control securitykey agreement,mka)结合,用于派生macsec密钥。在一个示例中,身份认证之后,可以利用psk生成msk,该msk可以用于派生安全连接关联密钥(secure connectivity association key,cak),cak可以用于派生macsec密钥。
[0886]
在一个示例中,可以利用eapol-eap和eap传输层安全(eap transport layer security, eap tls)实现身份认证,并利用身份认证得到的msk派生macsec密钥。但是,电气和电子工程师协会标准(institute of electrical and electronics engineers standard,ieee std) 802.1x-2020或802.1x-2010规定,当利用eapol-eap和eap tls进行身份认证时,由于涉及多种协议,因此身份认证过程中的交互报文的协议栈比较复杂,在身份认证过程中,存在对报文进行多重封装协议栈以及对协议栈进行解封装,处理流程复杂。可参见图3o,图3o为本技术实施例提供的一种协议栈的示意图。关于图3o,可以参考ieee std 802.1x-2010版本(或2020版本)的相关描述部分,此处不再详述。若利用图2b所示的方法100完成身份认证,不涉及多种协议(涉及本技术实施例扩展的eap-psk协议),因此,在身份认证过程中,也不会涉及多重协议栈的封装以及解封装,从而可以提升身份认证的效率。在一个示例中,利用图2b所示的方法完成身份认证之后,还可以基于身份认证得到的msk派生cak,并利用cak派生macsec密钥。关于利用msk派生cak,并利用cak派生macsec密钥的具体实现方式,可以参考ieee std 802.1x-2010版本(或 2020版本)的相关描述部分,此处不再详述。
[0887]
在利用msk派生得到cak时,还需要派生一个参数session id,此处提及的session id 和方法100中的session id字段含义不同,此处提及的session id用于派生cak密钥名称 (cak key name,ckn),ckn可以用于标识派生macsec密钥所使用的cak。在一个示例中,
此处提及的session id可以等于随机数1|随机数2,在又一个示例中,此处提及的 session id可以等于ssid|随机数1|随机数2,其中,ssid可以为方法100中报文1中ssid 字段携带的值。
[0888]
在一个示例中,在利用cak派生macsec密钥时,可以直接将psk作为cak,换言之,可以直接利用psk派生cak。可以理解的是,若执行本技术实施例提供的方法100 实现了psk的更新,则可以利用更新的psk2派生macsec密钥,从而避免由于psk长期保持不变而导致macsec密钥被破解,从而降低了macsec密钥被破解的风险,提升了通信安全。
[0889]
在本技术实施例中,通信装置1和通信装置2也可以通过mka报文来更新psk,并利用更新后的psk派生macsec密钥。
[0890]
参见图4,该图为本技术实施例提供的一种psk更新的方法的信令交互图。图4所示的方法200,可以由通信装置1和通信装置2执行,关于通信装置1和通信装置2,可以参考方法100中对于通信装置1和通信装置2的描述部分,此处不再重复描述。
[0891]
在一个示例中,图4所示的方法200,可以在通信装置1和通信装置2完成身份认证之后执行。关于通信装置1和通信装置2进行身份认证的具体实现,本技术实施例不做具体限定。在一个示例中,通信装置1和通信装置2可以基于扩展的eap-psk协议进行身份认证。在又一个示例中,通信装置1和通信装置2可以基于其它协议eapol-eap和eaptls进行身份认证,本技术实施例不做具体限定。
[0892]
图4所示的方法200例如可以通过如下s201-s211实现。
[0893]
s201:通信装置1向通信装置2发送报文1,报文1用于指示通信装置1支持psk更新。
[0894]
在本技术实施例中,报文1可以是mka报文。报文1中可以包括指示信息1,指示信息1用于指示通信装置1支持psk更新。
[0895]
在本技术实施例的一种实现方式中,可以对mka报文进行扩展,扩展一个参数集 (parameter set)字段用于携带所述指示信息1,即扩展一个parameter set字段指示通信装置1支持psk更新。例如,可以参考图5a进行理解,图5a为本技术实施例提供的一种 mka能力通知(capability notification)参数集的示意图。如图5a所示,mka capability notification parameter set字段可以包括多个字节,关于mka capability notification parameter set字段的各个字节,现说明如下:
[0896]
第1个字节用于携带参数集类型(parameter set type),parameter set type字段的具体取值,可以由ieee分配,目前parameter set type字段已经定义了取值1至取值8,因此,在一个示例中,parameter set type字段的值可以大于或者等于9。例如,parameter set type字段的值可以为9。
[0897]
与mka报文的其它参数据类似,mka capability notification parameter set的第2字节以及第3字节的前4比特为预留比特,在图5a中,“x”表示预留。在一个示例中,可以利用该预留比特中的其中一个或者多个比特来指示psk更新能力,例如,如图5a所示,利用第2字节的最高比特用于指示psk更新能力(capability of psk update)。
[0898]
第3个字节的后4个比特和第4个字节用于携带mka capability notification parameterset字段的长度。
[0899]
第5个字节用于指示能力类型,在本技术实施例中,该能力类型为psk更新,该字段的取值例如可以由ieee分配。在一个示例中,能力类型字段为可选字段。
[0900]
第6个字节用于携带能力通知的长度,即从第7个字节一直至mka capabilitynotification parameter set的最后一个字节的字节长度。
[0901]
第7个字节用于携带psk更新需求信息,用于指示是否需要进行psk更新,其中,该字段为可选字段。在一个示例中,若mka capability notification parameter set中携带psk 更新需求信息,则可以根据该psk更新需求信息确定是否更新psk。
[0902]
第8个字节至第11个字节用于携带当前psk的可用剩余时间,该字段为可选字段。在一个示例中,若mka capability notification parameter set中携带当前psk的可用剩余时间,则可以根据该当前psk的可用剩余时间确定是否更新psk。例如,当前psk的可用剩余时间小于一定阈值,则启动psk更新,以便于在当前psk的可用剩余时间为0时,可以启用更新的psk2。
[0903]
第12个字节为padding字段,在一个示例中,该padding字段的值可以为全0。其中,该padding字段用于使得mka capability notification parameter set字段的长度为4字节的整数倍。s202:通信装置2向通信装置1发送报文2,报文2用于指示通信装置2支持psk 更新。
[0904]
在本技术实施例中,报文2可以是mka报文。在一个示例中,报文2中可以携带指示信息2,用于指示通信装置2支持psk更新。在本技术实施例的一种实现方式中,可以对mka报文进行扩展,扩展一个parameter set字段用于携带该指示信息2,即扩展一个parameter set字段指示通信装置2支持psk更新。例如,可以参考图5a进行理解,关于该扩展的parameter set,可以参考s202中的相关描述部分,此处不再重复描述。
[0905]
s203:通信装置1获得psk密钥材料1,psk密钥材料1用于得到更新的psk2。
[0906]
s204:通信装置1利用psk密钥材料1得到更新的psk2,并保存更新的psk2。
[0907]
在一个示例中,通信装置1例如可以自身生成psk密钥材料1,例如通信装置1可以生成一个随机数,将该随机数作为psk密钥材料1。又如,通信装置1可以生成一个随机数,然后利用预先确定的计算方法对该随机数进行计算,将计算结果确定为psk密钥材料 1。在又一个示例中,通信装置1上例如可以预先配置有psk密钥材料1,通信装置1可以获取预先配置在通信装置1上的psk密钥材料1。
[0908]
在本技术实施例中,该psk密钥材料1用于生成更新的psk2。关于利用psk密钥材料1生成更新的psk2的相关描述,可以参考以上方法100中的相关描述部分,派生psk2 时缺少msk,比如没有使用eap进行身份认证,则可以派生时可以不含msk,此处不再重复描述。通信装置1生成更新的psk2之后,可以保存更新的psk2。
[0909]
s205:通信装置1获得报文3,报文3中包括psk密钥材料1。
[0910]
s206:通信装置1向通信装置2发送报文3。
[0911]
在本技术实施例中,报文3可以是mka报文。通信装置1可以生成报文3,并将报文3发送给通信装置2,以指示通信装置2基于报文3进行psk更新。
[0912]
在本技术实施例的一种实现方式中,可以利用分发cak参数集(distributed cakparameter set)来携带前述psk密钥材料1。在一个示例中,可以利用distributed cakparameter set的第5至第28个字节携带psk密钥材料1,利用distributed cak parameter set 的第29个字节至第n(n大于29)携带psk的标识。可以理解的是,当直接将psk作为 cak派生macsec密钥时,psk的标识相当于ckn。关于distributed cak parameter set,可以参
考ieee std 802.1x-2020中的图11-13以及ieee std 802.1x-2020中对于图11-13的描述部分,此处不再详述。
[0913]
在本技术实施例的又一种实现方式中,可以对distributed cak parameter set进行扩展,利用distributed cak parameter set的预留字段来指示该distributed cak parameter set所携带的信息类型。在一个示例中,可以利用distributed cak parameter set第2个字节的前4 个比特来指示distributed cak parameter set所携带的信息类型。例如:当第2个字节的前 4个比特的值为0时,说明该distributed cak parameter set携带的为cak信息,其具体用法可以参考ieee std 802.1x-2020;当第2个字节的前4个比特的值为1时,说明该distributedcak parameter set携带更新的psk,其中,更新的psk携带在distributed cak parameter set 的第5至第28个字节中;当第2个字节的前4个比特的值为2时,说明该distributed cakparameter set携带psk密钥材料1,其中,psk密钥材料1携带在distributed cak parameterset的第5至第28个字节中。
[0914]
在本技术实施例的另一个实现方式中,还可以扩展一个新的parameter set字段用于携带psk密钥材料1,以指示通信装置2更新psk。例如,可以扩展一个mka分发更新psk (distributed updated psk)参数集。可以参考图5b进行理解,图5b为本技术实施例提供的一种mka分发更新psk参数集的示意图。如图5b所示,mka distributed updated psk parameter set字段可以包括多个字节,关于mka distributed updated psk parameter set字段的各个字节,现说明如下:
[0915]
第1个字节用于携带参数集类型(parameter set type),parameter set type字段的具体取值,可以由ieee分配,目前parameter set type字段已经定义了取值1至取值8,因此,在一个示例中,parameter set type字段的值可以大于或者等于9。例如,parameter set type字段的值可以为11。
[0916]
与mka报文的其它参数据类似,mka distributed updated psk parameter set的第2字节以及第3字节的前4比特为预留比特,在图5b中,“x”表示预留。在一个示例中,可以利用mka distributed updated psk parameter set第1个字节来指示mka distributedupdated psk parameter set所携带的信息类型。例如:当第1个字节的值为1时,说明该 mka distributed updated pskparameter set携带更新的psk2;当第1个字节的值为2时,说明该mka distributed updated psk parameter set携带用于生成psk2的psk密钥材料1。
[0917]
第3个字节的后4个比特和第4个字节用于携带mka distributed updated psk parameterset字段的长度。
[0918]
第5个字节至第x1个字节为一个tlv字段,可用于携带psk密钥材料1。其中:
[0919]
第5个字节为tlv type字段;第6个字节为tlv length字段,第7个字节至第x1个字节为tlv value字段,可用于携带psk密钥材料1。
[0920]
第x1+1个字节至第x2个字节为一个tlv字段,用于携带ckn,其中:
[0921]
第x1+1个字节为tlv type字段;第x1+2个字节为tlv length字段,第x1+3个字节至第x2个字节为tlv value字段,用于携带ckn。
[0922]
第x1+2个字节至第x3个字节为padding字段,在一个示例中,该padding字段的值可以为全0。
[0923]
关于s203至s206这几个步骤的执行顺序,需要说明的是,在本技术实施例中,若报文3中携带生成psk2的psk密钥材料1,则通信装置1可以在获取psk密钥材料1之后,即可生成包括该psk密钥材料1的报文3,并将该报文3发送给通信装置2,而不必等到执行完s204之后再执行s205。若报文3中携带的psk密钥材料1即为更新的psk2,则通信装置1需要生成更新的psk2之后,再基于更新的psk2生成携带该更新的psk2的报文3,并进一步将报文3发送给通信装置2。
[0924]
s207:通信装置2获得所述更新的psk2,并保存所述更新的psk2。
[0925]
通信装置2接收到报文3之后,可以基于报文3获得更新的psk2。在一个示例中,若报文3中携带更新的psk2,则通信装置2可以直接对报文3进行解析,提取报文3中携带的更新的psk2。在又一个示例中,若报文3中携带生成psk2的psk密钥材料1,则通信装置2在获得psk密钥材料1之后,则可以利用密钥派生算法和该psk密钥材料1,派生得到更新的psk2。通信装置2获得更新的psk2之后,可以将更新的psk保存在通信装置2的非易失存储区。
[0926]
s208:通信装置2获得报文4,报文4中携带psk存储确认信息。
[0927]
s209:通信装置2将报文4发送给通信装置1。
[0928]
在本技术实施例中,报文4可以是mka报文。通信装置2可以生成报文4,并将报文4发送给通信装置1,以告知通信装置1自身是否已经成功完成psk的更新。此处提及的成功完成psk的更新,指的是成功将更新的psk2存储至通信装置2的非易失存储区。
[0929]
在本技术实施例的一个实现方式中,可以扩展一个新的parameter set字段用于携带 psk存储确认信息。例如,可以扩展一个mka psk存储结果通知(stored result)参数集。可以参考图5c进行理解,图5c为本技术实施例提供的一种mka psk存储结果通知参数集的示意图。如图5c所示,mka psk stored result notification parameter set字段可以包括多个字节,关于mka psk stored result notification parameter set字段的各个字节,现说明如下:
[0930]
第1个字节用于携带parameter set type,parameter set type字段的具体取值,可以由ieee 分配,目前parameter set type字段已经定义了取值1至取值8,因此,在一个示例中,parameterset type字段的值可以大于或者等于9。例如,parameter set type字段的值可以为12。
[0931]
与mka报文的其它参数据类似,mka psk stored result notification parameter set的第 2字节以及第3字节的前4比特为预留比特,在图5c中,“x”表示预留。
[0932]
第3个字节的后4个比特和第4个字节用于携带mka psk stored result notificationparameter set字段的长度。
[0933]
第5个字节至第8个字节为一个tlv字段,用于携带更新的psk存储结果。其中:
[0934]
第5个字节为tlv type字段;第6个字节为tlv length字段,第7个字节和第8个字节为tlv value字段,用于携带更新的psk的存储结果。其中,psk的存储结果例如可以包括:成功或者失败。
[0935]
第9个字节至第x4个字节为一个tlv字段,用于携带ckn,其中:
[0936]
第9个字节为tlv type字段;第10个字节为tlv length字段,第11个字节至第x4 个字节为tlv value字段,用于携带ckn。
[0937]
第x4+1个字节至第x5个字节为padding字段,在一个示例中,该padding字段的值
可以为全0。
[0938]
s210:通信装置1在根据报文4确定psk更新成功的情况下,利用更新的psk2派生 macsec密钥。
[0939]
在本技术实施例中,通信装置1接收到报文4之后,可以根据报文4确定通信装置2 是否已经成功存储更新的psk。在一个示例中,通信装置1可以根据报文4中的mka pskstored result notification parameter set,确定通信装置2是否已经成功存储更新的psk。若通信装置1根据报文4确定通信装置2已经成功存储更新的psk,并且,通信装置1本身也成功存储更新的psk,则通信装置1可以利用更新的psk派生macsec密钥。
[0940]
在一个示例中,若通信装置1确定psk未更新成功,例如通信装置1本地未成功保存更新的psk,则通信装置1可以向通信装置2发送报文5,以指示通信装置1未成功保存更新的psk,其中,报文5可以为mka报文,报文5中可以携带s209中提及的mka pskstored result notification parameter set。
[0941]
通信装置1利用psk2派生得到macsec密钥,可以有两种实现方式,在一种实现方式中,可以利用psk2派生得到msk,再利用msk派生得到cak,最后利用cak派生得到macsec密钥。在又一种实现方式中,可以直接将所述psk2作为cak来派生macsec 密钥。关于利用psk2派生msk、利用msk派生得到cak、以及利用cak派生得到 macsec密钥的具体实现方式,此处不做详细描述。
[0942]
s211:通信装置2在psk更新成功的情况下,利用更新的psk2派生macsec密钥。
[0943]
在一个示例中,若通信装置2本地成功保存更新的psk2,并且,也未接收指示通信装置1未成功保存更新的psk的报文5,则通信装置1可以利用更新的psk派生macsec 密钥。
[0944]
通过以上s201-s211可知,利用本技术实施例的方案,通信装置1和通信装置2也可以通过mka报文来更新psk,并利用更新后的psk2派生macsec密钥,从而避免由于 psk长期保持不变而导致macsec密钥被破解,从而降低了macsec密钥被破解的风险,提升了通信安全。
[0945]
在一个示例中,通信装置1和通信装置2可以利用网络密钥交换(internet key exchange, ike)协议进行身份认证。当通信装置1和通信装置2利用ike协议进行身份认证时,可以利用psk进行身份认证。若psk一成不变,则该psk一旦被破解,可能会带来一定的安全风险。鉴于此,本技术实施例提供了一种psk的更新方法,可以对psk进行更新,从而减少了psk被破解的可能性,相应降低了由于psk被破解而带来的安全隐患。
[0946]
在一个示例中,通信装置1和通信装置2利用网络密钥交换(internet key exchange, ike)协议进行身份认证时,可以利用ike sa的密钥对ike报文进行处理。若ike sa的密钥保持不变,则该ike sa对应的密钥一旦被破解,可能会带来一定的安全风险。鉴于此,本技术实施例提供了一种ike sa的密钥的更新方法,可以对ike sa的密钥进行更新,从而减少由于ike sa的密钥被破解带来的安全隐患。
[0947]
在一个示例中,通信装置1和通信装置2之间进行数据报文的交互时,可以利用数据密钥对数据报文进行处理,以保证数据密钥的安全。由于若数据密钥长时间不变,则会导致数据密钥被破解的可能性增大,从而带来安全风险。因此,对数据密钥进行更新尤为重要。目前,当通信装置1和通信装置2利用ike协议进行交互时,可以采用非对称密钥算法来进行数据密钥的协商。但是,在一些场景中,例如,在图1所示的场景中,mcu 102 的计算能
力有限,其并不支持非对称密钥算法,从而导致在一些场景中,若利用ike协议进行通信的两个通信装置中其中一个不支持非对称密钥算法,则导致数据密钥无法更新,从而使得安全风险较大。又如,当通信装置1和通信装置2之间利用非以太口通信时,数据密钥无法更新,从而使得安全风险较大。为了解决这个问题,本技术实施例提供了一种数据密钥的更新方法,可以使得即使通信装置1或者通信装置2不支持非对称密钥算法,通信装置1和通信装置2也可以更新数据密钥。
[0948]
接下来结合图6介绍一种密钥更新的方法,用于对前述psk、ike sa的密钥以及数据密钥进行更新。
[0949]
此处提及的ike sa的密钥,包括以下任意一项或者多项:通信装置1对ike报文进行加密的密钥、通信装置1对ike报文进行完整性计算的密钥、通信装置1计算ike报文中的auth payload所使用的密钥、通信装置2对ike报文进行加密的密钥、通信装置2对 ike报文进行完整性计算的密钥、以及通信装置2计算ike报文中的auth payload所使用的密钥。
[0950]
此处提及的数据密钥,可以是互联网协议安全(internet protocol security,ipsec)sa 的密钥。在一个示例中,ipsec sa的密钥可以包括完整性计算密钥,用于对认证头 (authentication header,ah)进行完整性计算。在又一个示例中,ipsec sa的密钥可以包括完整性计算密钥和加密密钥,其中,完整性密钥用于对封装安全载荷(encapsulatingsecurity payload)进行完整性计算,加密密钥用于对封装安全载荷进行加密。
[0951]
接下来结合图6介绍利用ike报文对psk、ike sa的密钥和数据密钥进行更新的方法。
[0952]
参见图6,该图为本技术实施例提供的一种密钥更新的方法的信令交互图。图6所示的方法300,可以由通信装置1和通信装置2执行,关于通信装置1和通信装置2,可以参考方法100中对于通信装置1和通信装置2的描述部分,此处不再重复描述。
[0953]
图4所示的方法300例如可以通过如下s301-s309实现。
[0954]
s301:通信装置1向通信装置2发送报文1,报文1用于指示通信装置1支持密钥更新。
[0955]
在本技术实施例中,报文1可以是ike报文。在本技术实施例的一种实现方式中,报文1中可以携带指示信息1,指示信息1用于指示通信装置1支持psk更新。
[0956]
在本技术实施例的一种实现方式中,该指示信息1可以携带在ike报文的通知载荷 (notification payload)中。关于notification payload,可以参考图7a,图7a为本技术实施例提供的一个notification payload字段的结构示意图。关于图7a所示的各个字段,可以参考rfc 7296的相关描述部分,此处不详细描述。
[0957]
在本技术实施例的一个示例中,可以定义一个新的通知消息类型(notify message type),用于指示psk更新能力,例如,定义一个新的notify message type:支持psk更新 (psk_update_supported),当notification payload字段中notify message type指示 psk_update_supported时,该notification payload用于携带前述指示信息1,用于指示通信装置1支持psk更新。在一个示例中,当报文1的notification payload中携带指示信息1 时,notify message type的值可以大于或者等于16439,因为16438以及小于16438的值的含义ietf已经明确定义,例如,notify message type的值可以为16439。对于这种情况,通知数据(notification data)字段可以携带psk的更新方式,也可以为空,本申
请实施例不做具体限定。当notification data字段用于携带psk的更新方式时,notification data字段可以如图7b所示,图7b为本技术实施例提供的一种notification data字段的结构示意图。如图7b所示,notification data字段包括密钥类型比特信息(keytypebitmap)字段、密钥材料类型(key material type)字段、预留字段和key id字段。其中:
[0958]
keytypebitmap字段用于指示支持采用对称密钥算法更新的key类型。在一个示例中, keytypebitmap字段用于指示是否支持采用对称密钥算法更新psk。其中,keytypebitmap 字段为可选字段。
[0959]
key material type字段用于指示psk更新的方式。其中:psk更新的方式可以包括三种。第一种:采用传统的ike sa的密钥派生方法或者ipsec sa的密钥派生算法派生psk。第二种:利用获得的psk密钥材料1派生得到更新的psk。第三种:直接获得更新的psk。在一个示例中,当key material type字段的值为1时,表示以上第一种方式更新psk;当 key material type字段的值为2时,表示采用以上第二种方式更新psk;当key material type 字段的值为3时,表示采用以上第三种方式更新psk。
[0960]
key material length字段用于携带长度,表示key data字段的长度(例如字节数)。
[0961]
key id字段用于携带更新后的psk的id,更新后的psk的id也是psk密钥材料1 的id。
[0962]
在本技术实施例的一种实现方式中,报文1中可以携带指示信息1’,指示信息1’用于指示通信装置1支持ike sa的密钥更新。
[0963]
在本技术实施例的一种实现方式中,该指示信息1’可以携带在ike报文的notificationpayload中。关于notification payload,可以参考图7a所示。
[0964]
在本技术实施例的一个示例中,可以重新定义一个新的notify message type,用于指示 ike sa的密钥更新能力,例如,重新定义一个notify message type:支持ike sa的密钥更新(ikesa_update_supported),当notification payload字段中notify message type指示 ikesa_update_supported时,该notification payload用于携带前述指示信息1’,用于指示通信装置1支持ike sa的密钥更新。在一个示例中,当报文1的notification payload中携带指示信息1’时,notify message type的值可以大于或者等于16439,因为16438以及小于16438的值的含义ietf已经明确定义。例如,notify message type的值可以为16440。在一个示例中,当notification payload用于携带前述指示信息1’时,notification data字段包括图7b所示的keytypebitmap字段。在一个示例中,该keytypebitmap字段用于指示是否支持采用对称密钥算法更新ike sa的密钥。
[0965]
在本技术实施例的一种实现方式中,报文1中可以携带指示信息1”,指示信息1”用于指示通信装置1支持数据密钥更新。
[0966]
在本技术实施例的一种实现方式中,该指示信息1”可以携带在ike报文的notificationpayload中。关于notification payload,可以参考图7a所示。
[0967]
在本技术实施例的一个示例中,可以重新定义一个新的notify message type,用于指示数据密钥更新能力,例如,重新定义一个notify message type:支持数据密钥更新 (datakey_update_supported),当notification payload字段中notify message type指
示datakey _update_supported时,该notification payload用于携带前述指示信息1”,用于指示通信装置1支持数据密钥更新。在一个示例中,当报文1的notification payload中携带指示信息 1”时,notify message type的值可以大于或者等于16439,因为16438以及小于16438的值的含义ietf已经明确定义。例如,notify message type的值可以为16441。在一个示例中,当notification payload用于携带前述指示信息1”时,notification data字段包括图7b 所示的keytypebitmap字段。在一个示例中,该keytypebitmap字段用于指示是否支持采用对称密钥算法更新数据密钥。
[0968]
需要说明的是,在本技术实施例中,携带前述指示信息1、指示信息1’和指示信息1”的notification payload,其对应的notify message type的值可以相同,例如,notify message type 的值为16439,用于指示支持密钥更新。对于这种情况,notification data字段包括图7b所示的keytypebitmap字段,可以根据keytypebitmap字段的值进一步确定通信装置1支持更新的密钥类型。在一个示例中:keytypebitmap字段可以包括1字节,keytypebitmap字段的其中一个比特例如第1比特用于指示是否支持对称密钥算法更新psk,keytypebitmap字段的其中一个比特例如第2比特用于指示是否支持对称密钥算法更新ike sa的密钥, keytypebitmap字段的其中一个比特例如第3比特用于指示是否支持对称密钥算法更新数据密钥。
[0969]
需要说明的是,s301中提及的报文1,可以是ike初始交换(init exchange)报文,可以是ike认证交换(auth exchange)报文,也可以是ike创建子安全联盟交换(create childsa exchange)报文,还可以是ike通知交换(informational exchange)报文。
[0970]
s302:通信装置2向通信装置1发送报文2,报文2用于指示通信装置2支持密钥更新。
[0971]
在本技术实施例中,报文2可以是ike报文。在一个示例中,报文2中可以携带指示信息2,用于指示通信装置2支持psk更新。
[0972]
在本技术实施例的一种实现方式中,该指示信息2可以携带在ike报文的notificationpayload中。关于notification payload,可以参考图7a和图7b,以及上文对于图7a和图7b 的描述部分,此处不再重复描述。
[0973]
在一个示例中,报文2中可以携带指示信息2’,用于指示通信装置2支持ike sa的密钥更新。
[0974]
在本技术实施例的一种实现方式中,该指示信息2’可以携带在ike报文的notificationpayload中。关于notification payload,可以参考图7a和图7b,以及上文对于图7a和图7b 的描述部分,此处不再重复描述。
[0975]
在一个示例中,报文2中可以携带指示信息2”,用于指示通信装置2支持数据密钥的更新。
[0976]
在本技术实施例的一种实现方式中,该指示信息2”可以携带在ike报文的notificationpayload中。关于notification payload,可以参考图7a和图7b,以及上文对于图7a和图7b 的描述部分,此处不再重复描述。
[0977]
与s301中的报文1类似,s302中提及的报文2,可以是ike init exchange报文,可以是ike auth exchange报文,也可以是ike create child sa exchange报文,还可以是ikeinformational exchange报文。
[0978]
s303:通信装置1获得密钥材料1,密钥材料1用于得到更新的密钥。
[0979]
在一个示例中,所述密钥材料1可以包括psk密钥材料1,psk密钥材料1用于生成更新的psk。在又一个示例中,所述密钥材料1可以包括ike sa的密钥材料1,ike sa 的密钥材料1用于生成更新的ike sa的密钥。在另一个示例中,所述密钥材料1可以包括数据密钥材料1,数据密钥用于生成更新的数据密钥。
[0980]
s303在具体实现时,通信装置1例如可以自身生成密钥材料1,例如通信装置1可以生成一个随机数,将该随机数作为密钥材料1。又如,通信装置1可以生成一个随机数,然后利用预先确定的计算方法对该随机数进行计算,将计算结果确定为密钥材料1。在又一个示例中,通信装置1上例如可以预先配置有密钥材料1,通信装置1可以获取预先配置在通信装置1上的密钥材料1。
[0981]
s304:通信装置1利用密钥材料1得到更新的密钥,并保存更新的密钥。
[0982]
在本技术实施例中,当所述密钥包括psk密钥材料1时,通信装置1可以利用该psk 密钥材料1生成更新的psk。在本技术实施例中,通信装置1根据psk密钥材料1生成更新的psk2,可以至少包括两种计算方式。
[0983]
在一个示例中,通信装置1可以利用以下公式(18)和公式(19)计算更新的psk2。
[0984]
{sk_d|sk_ai|sk_ar|sk_ei|sk_er|sk_pi|sk_pr|psk2}=prf+(skeyseed,ni| nr|spii|spir)
ꢀꢀ
公式(18)
[0985]
skeyseed=prf(ni|nr,g^ir)
ꢀꢀ
公式(19)
[0986]
在公式(18)和公式(19)中:
[0987]
prf和prf+为密钥派生算法,公式(18)在原有ike sa的密钥派生基础上多进行一次迭代,从而派生得到公式(18)左侧的psk2;
[0988]
关于公式(18)和公式(19),可以参考rfc7296中“2.14.generating keying materialfor the ike sa”的描述部分,此处不做详述。在又一个示例中,通信装置1可以利用以下公式(20)派生得到更新的psk2。
[0989]
psk2=prf+(skeyseed,key id|key material|spii|spir)
ꢀꢀ
公式(20)
[0990]
在公式(20)中:
[0991]
skeyseed可以根据公式(19)计算得到,关于公式(19),可以参考rfc7296中“2.14. generating keying material for the ike sa”的描述部分,此处不做详述;
[0992]
key id为psk密钥材料1的key id,也是更新的psk2的key id;
[0993]
key material为psk密钥材料1;
[0994]
spii是ike报文头中的“ike sa发起者安全联盟索引(initiator's security parameterindexes,spii);spir是“ike sa应答者安全联盟索引(responder's security parameter indexes, spii),关于spii和spir,可以参考rfc 7296的相关描述部分,此处不再详述。
[0995]
在本技术实施例中,当所述密钥包括ike sa的密钥材料1时,通信装置1可以利用该ike sa的密钥材料1生成更新的ike sa的密钥。在本技术实施例中,通信装置1根据 ike sa的密钥材料1生成更新的ike sa的密钥,可以通过如下公式(21)和公式(22) 计算得到。
[0996]
skeyseed=prf(ni|nr,g^ir)
ꢀꢀ
公式(21)
[0997]
{sk_d|sk_ai|sk_ar|sk_ei|sk_er|sk_pi|sk_pr}
[0998]
=prf+(skeyseed,ni|nr|spii|spir)
ꢀꢀ
公式(22)
[0999]
在公式(21)中:
[1000]
g^ir的值为ike sa的密钥材料1;
[1001]
需要注意的时,由于ike sa的密钥材料1携带在报文3中,报文3必须进行加密和完整性保护,防止ike sa的密钥材料1被攻击者拿到,派生出同样的密钥。这样对报文3 进行加密的加密密钥、和完整性计算密钥等,如果基于其中携带的ike sa的密钥材料1 来派生,则通信装置2在解密报文3前,得不到ike sa的密钥材料1,也就无法算出加密密钥和完整性。因此报文3以及随后的报文4依赖的ike sa的各密钥,可以分以下两种场景得到:
[1002]
一种是对于初始身份认证(设备上电启动ike时,没有其他ike sa可用),可使用报文1、报文2中协商的psk直接作为skeyseed,然后采用公式(22)计算,来派生一个临时ike sa,用作报文3和报文4的保护。
[1003]
一种是对于ike重认证、ike sa rekey场景,可以利用公式(21)和(22),然后利用当前正在使用的ike sa协商的ike sa密钥材料1’,作为公式(21)中的g^ir。
[1004]
若前述报文1和报文2为ike init exchange报文,或者,前述报文1和报文2是ike auth exchange报文,或者,报文1和报文2是ike create child sa exchange报文,则ni为报文 1中携带的随机数,nr为报文2中携带的随机数,spii携带在报文1的报文头中,spir携带在报文2的报文头中;
[1005]
若前述报文1和报文2是ike informational exchange报文,则ni、nr、spii、spir 为通信装置1当前使用的ike sa对应的ni、nr、spii和spir;
[1006]
sk_d为派生数据密钥的密钥;
[1007]
sk_ai为通信装置1对向通信装置2发送的ike报文进行完整性计算的密钥;
[1008]
sk_ar为通信装置2对向通信装置1发送的ike报文进行完整性计算的密钥;
[1009]
sk_ei为通信装置1对向通信装置2发送的ike报文进行加密的密钥;
[1010]
sk_er为通信装置2对向通信装置1发送的ike报文进行加密的密钥;
[1011]
sk_pi为通信装置1计算ike报文中的auth payload使用的密钥;
[1012]
sk_pr为通信装置2计算ike报文中的auth payload使用的密钥。
[1013]
关于sk_d、sk_ai、sk_ar、sk_ei、sk_er、sk_pi和sk_pr,可以参考rfc 7296的相关描述,此处不再详述。
[1014]
在本技术实施例中,当所述密钥包括数据密钥材料1时,通信装置1可以利用该数据密钥材料1生成更新的数据密钥。在本技术实施例中,通信装置1根据数据密钥材料1生成更新的ipsec sa的密钥,可以有多种派生方式,以下介绍两种可能的实现方式。
[1015]
在一个示例中,若通信装置1和通信装置2启用了完全前向保密(perfect forwardsecrecy,pfs)功能,则通信装置1可以可以通过如下公式(23)和公式(24)计算得到更新的数据密钥。
[1016]
keymat=prf+(sk_d,g^ir|ni|nr)
ꢀꢀ
公式(23)
[1017]
在公式(23)中:
[1018]
keymat为密钥比特序列,获得密钥比特序列之后,通信装置1可以根据rfc7296 的规定从中获取数据密钥;
[1019]
g^ir的值为数据密钥材料1;
[1020]
sk_d为派生密钥数据密钥所使用的密钥,sk_d可以通过如下公式(24)派生得到:
[1021]
{sk_d|sk_ai|sk_ar|sk_ei|sk_er|sk_pi|sk_pr}
[1022]
=prf+(skeyseed,ni|nr|spii|spir)公式(24)
[1023]
公式(24)中的skeyseed可以通过以下公式(25)计算得到:
[1024]
skeyseed=prf(ni|nr,g^ir)
ꢀꢀ
公式(25)
[1025]
公式(25)中的g^ir的值可以是数据密钥材料1。
[1026]
在又一个示例中,若通信装置1和通信装置2未启用pfs功能,则通信装置1可以可以通过如下公式(26)计算得到更新的数据密钥。
[1027]
keymat=prf+(sk_d,ni|nr)
ꢀꢀ
公式(26)
[1028]
在公式(26)中:
[1029]
keymat为密钥比特序列,获得密钥比特序列之后,通信装置1可以根据rfc7296 的规定从中获取数据密钥;
[1030]
公式(26)中的sk_d,可以是采用以上公式(22)派生得到的,相关内容可以参考以上对于公式(22)的描述部分,此处不再重复描述。
[1031]
在本技术实施例的又一种实现方式中,通信装置1可以直接将所述密钥材料1确定为更新的密钥。例如,通信装置1可以将psk密钥材料1确定为更新的pak2;又如,通信装置1可以将ike sa的密钥材料1确定为更新的ike sa的密钥;再如,通信装置1可以将数据密钥材料1确定为更新的数据密钥。
[1032]
s305:通信装置1获得报文3,报文3中包括密钥材料1。
[1033]
s306:通信装置1向通信装置2发送报文3。
[1034]
在本技术实施例中,报文3可以是ike报文。通信装置1可以生成报文3,并将报文 3发送给通信装置2,以指示通信装置2基于报文3进行密钥更新。报文3中包括密钥材料1。作为一个示例,psk密钥材料1可以携带在notification payload字段中,关于notificationpayload字段的结构,可以参考图7a。
[1035]
在本技术实施例的一个示例中,可以重新定义一个新的notify message type,用于指示 psk更新,例如,重新定义一个notify message type:psk更新(psk_update),当notification payload字段中notify message type指示psk_update时,该notification payload用于携带psk 密钥材料1。在一个示例中,当报文1的notification payload中携带psk密钥材料1时, notify message type的值可以大于或者等于16439,因为16438以及小于16438的值的含义 ietf已经明确定义。例如,notify message type的值可以为16442。对于这种情况, notification data字段可以携带psk密钥材料1。关于notification data字段,可以参考图7c 进行理解,图7c为本技术实施例提供的一种notification data字段的结构示意图。如图7c 所示,notification data字段包括:key type字段、key material type字段、key material length 字段、key id字段和key data字段。其中:
[1036]
key type字段用于指示当前notification payload携带的密钥材料对应的密钥类型,例如, key type字段的值为1时,表示携带的密钥材料类型为psk。该字段为可选字段。
[1037]
key material type字段,可以参考上文对于图7b中key material type字段的描述部分,此处不再详述。需要说明的是,若报文1中包括key material type字段,则报文3中
可以不包括key material type字段,因为,报文1已经指示了psk更新的方式。若报文3中不包括key material type字段,则报文3中可以包括key material type字段,用于指示psk密钥更新的方式。key material length字段用于携带长度,表示key data字段的长度(例如字节数)。
[1038]
key id字段用于携带psk密钥材料1的id。
[1039]
key data字段用于携带psk密钥材料1。
[1040]
在本技术实施例的又一个示例中,可以扩展一个新的payload字段用于携带psk密钥材料1。作为一个示例,可以扩展一个密钥分发载荷(key distribute payload)来携带psk 密钥材料1。参见图7d,图7d为本技术实施例提供的一种key distribute payload的结构示意图。关于图7d所示的前4个字段,可以参考rfc 7296的相关描述部分,此处不详细描述。关于图7d所示的key type字段、key material type字段、key material length字段、keyid字段和key data字段,可以参考上文对于图7c的描述部分,此处不再重复描述。
[1041]
在一个示例中,报文3中包括ike sa的密钥材料1。作为一个示例,ike sa的密钥材料1可以携带在notification payload字段中,关于notification payload字段的结构,可以参考图7a。
[1042]
在本技术实施例的一个示例中,可以重新定义一个新的notify message type,用于指示 ike sa的密钥更新,例如,重新定义一个notify message type:psk更新(ikesa_update),当notification payload字段中notify message type指示ikesa_update时,该notification payload用于携带ike sa的密钥材料1。在一个示例中,当报文3的notification payload 中携带ike sa的密钥材料1时,notify message type的值可以大于或者等于16439,因为 16438以及小于16438的值的含义ietf已经明确定义。例如,notify message type的值可以为16443。对于这种情况,notification data字段可以携带ike sa的密钥材料1。关于 notification data字段,可以包括图7c所示的key type字段、key material length字段、key id 字段和key data字段。其中:
[1043]
key type字段用于指示当前notification payload携带的密钥材料类型,例如,key type 字段的值为2时,表示携带的密钥材料类型为ike sa。该字段为可选字段。
[1044]
key material length字段用于携带长度,表示key data字段的长度(例如字节数)。
[1045]
key id字段用于携带ike sa的密钥材料1的id。
[1046]
key data字段用于携带ike sa的密钥材料1。
[1047]
在本技术实施例的又一个示例中,可以扩展一个新的payload字段用于携带ike sa的密钥材料1。作为一个示例,可以扩展一个密钥分发载荷(key distribute payload)来携带 ike sa的密钥材料1。关于该key distribute payload,可以参考图7d以及上文对于图7d的描述部分,此处不再重复描述。
[1048]
在一个示例中,报文3中包括数据密钥材料1。作为一个示例,数据密钥材料1可以携带在notification payload字段中,关于notification payload字段的结构,可以参考图7a。
[1049]
在本技术实施例的一个示例中,可以重新定义一个新的notify message type,用于指示数据密钥更新,例如,重新定义一个notify message type:数据密钥更新(datakey_
update),当notification payload字段中notify message type指示datakey_update时,该notification payload用于携带数据密钥材料1。在一个示例中,当报文3的notification payload中携带数据密钥材料1时,notify message type的值可以大于或者等于16439,因为16438以及小于16438的值的含义ietf已经明确定义。例如,notify message type的值可以为16444。对于这种情况,notification data字段可以携带数据密钥材料1。关于notification data字段,可以包括图7c所示的key type字段、key material length字段、key id字段和key data字段。其中:
[1050]
key type字段用于指示当前notification payload携带的密钥材料类型,例如,key type 字段的值为3时,表示携带的密钥材料类型为数据密钥。该字段为可选字段。
[1051]
key material length字段用于携带长度,表示key data字段的长度(例如字节数)。
[1052]
key id字段用于携带数据密钥材料1的id。
[1053]
key data字段用于携带数据密钥材料1。
[1054]
在本技术实施例的又一个示例中,可以扩展一个新的payload字段用于携带数据密钥材料1。作为一个示例,可以扩展一个key distribute payload来携带数据密钥材料1。关于该key distribute payload,可以参考图7d以及上文对于图7d的描述部分,此处不再重复描述。
[1055]
需要说明的是,在本技术实施例中,携带前述psk密钥材料1、ike sa的密钥材料1、以及前述数据密钥材料1的notification payload,其对应的notify message type的值可以相同,例如,notify message type的值为16442,用于指示支持密钥更新。对于这种情况, notification data字段包括图7d所示的key type字段,可以根据key type字段的值进一步确定通信装置1指示更新的密钥类型。在一个示例中:key type字段的值为1时,表示携带的密钥类型或者密钥材料类型为psk;key type字段的值为2时,表示携带的密钥类型或者密钥材料类型为ike sa;key type字段的值为3时,表示携带的密钥类型或者密钥材料类型为数据密钥。
[1056]
需要说明的是,s305中提及的报文3,可以是认证交换(ike auth exchange)报文,也可以是创建子安全联盟交换(create child sa exchange)报文,还可以是通知交换 (informational exchange)报文。
[1057]
关于s303至s306这几个步骤的执行顺序,需要说明的是,在本技术实施例中,若报文3中携带用于生成更新的密钥的密钥材料1,则通信装置1可以在获取密钥材料1之后,即可生成包括该密钥材料1的报文3,并将该报文3发送给通信装置2,而不必等到执行完s304之后再执行s305。若报文3中携带的密钥材料1即为更新的密钥,则通信装置1 需要生成更新的密钥之后,再基于更新的密钥生成携带该更新的密钥的报文3,并进一步将报文3发送给通信装置2。
[1058]
s307:通信装置2获得所述更新的密钥,并保存所述更新的密钥。
[1059]
通信装置2接收到报文3之后,可以基于报文3获得更新的密钥。
[1060]
在一个示例中,若报文3中携带的psk密钥材料1即为更新的psk2,则通信装置2 可以直接对报文3进行解析,提取报文3中携带的更新的psk2。在又一个示例中,若报文3中携带用于生成psk2的psk密钥材料1,则通信装置2在获得psk密钥材料1之后,则可以利用密钥
派生算法和该psk密钥材料1,派生得到更新的psk。通信装置2获得更新的psk2之后,可以将更新的psk2保存在通信装置2的非易失存储区。关于通信装置2 派生得到更新的psk的具体实现,可以参考s304中的相关描述部分,此处不再详述。
[1061]
在一个示例中,若报文3中携带的ike sa的密钥材料1即为更新的ike sa的密钥,则通信装置2可以直接对报文3进行解析,提取报文3中携带的更新的ike sa的密钥。在又一个示例中,若报文3中携带用于生成ike sa的密钥的ike sa的密钥材料1,则通信装置2在获得ike sa的密钥材料1之后,则可以利用密钥派生算法和该ike sa的密钥材料1,派生得到更新的ike sa的密钥。通信装置2获得更新的ike sa的密钥之后,可以保存更新的ike sa的密钥。关于通信装置2派生得到更新的ike sa的密钥的具体实现,可以参考s304中的相关描述部分,此处不再详述。
[1062]
在一个示例中,若报文3中携带的数据密钥材料1即为更新的数据密钥,则通信装置 2可以直接对报文3进行解析,提取报文3中携带的更新的数据密钥。在又一个示例中,若报文3中携带用于生成数据密钥的数据密钥材料1,则通信装置2在获得数据密钥材料 1之后,则可以利用密钥派生算法和该数据密钥材料1,派生得到更新的数据密钥。通信装置2获得更新的数据密钥之后,可以保存更新的数据密钥。关于通信装置2派生得到更新的数据密钥的具体实现,可以参考s304中的相关描述部分,此处不再详述。
[1063]
s308:通信装置2获得报文4,报文4中携带密钥更新结果。
[1064]
s309:通信装置2将报文4发送给通信装置1。
[1065]
在本技术实施例中,报文4可以是ike报文。通信装置2可以生成报文4,并将报文 4发送给通信装置1。报文4中携带密钥更新结果,该密钥更新结果为通信装置2更新密钥的结果,换言之,报文4中的密钥更新结果可以指示通信装置2是否成功完成密钥的更新。此处提及的成功完成密钥的更新,指的是成功存储更新的密钥。当所述更新的密钥为 psk时,成功完成psk的更新,指的是成功将更新的psk2存储至通信装置2的非易失存储区。
[1066]
在本技术实施例的一种实现方式中,该密钥更新结果可以携带在ike报文的 notification payload中。关于notification payload,可以参考图7a,关于图7a所示的各个字段,可以参考rfc 7296的相关描述部分,此处不详细描述。
[1067]
在本技术实施例的一个示例中,可以重新定义一个新的notify message type,用于携带密钥更新结果。
[1068]
在一个示例中,若报文3指示通信装置2更新psk,则报文4中可以携带psk更新结果。在一个示例中,可以重新定义一个notify message type:psk更新结果 (result_psk_update),当notification payload字段中notify message type指示 result_psk_update时,该notification payload用于携带前述psk更新结果。在一个示例中,当报文4的notification payload中携带psk更新结果时,notify message type的值可以大于或者等于16439,因为16438以及小于16438的值的含义ietf已经明确定义。例如,notify message type的值可以为16445。关于notification data字段,可以参考图7e进行理解,图 7e为本技术实施例提供的一种notification data字段的结构示意图。如图7e所示,notification data字段包括:key type字段、key material type字段、result字段、key id字段和result data 字段。其中:
[1069]
关于key type字段、key material type字段和key id字段,可以参考上文对于图
7c的相关描述部分,此处不再重复描述。
[1070]
result字段用于携带psk更新结果,psk更新结果可以为成功、失败或者丢弃。
[1071]
result data字段为可选字段,在一个示例中,当psk更新失败时,result data字段可以用于携带psk更新失败的原因。其中,psk失败的原因例如可以为派生失败或者存储失败。
[1072]
在一个示例中,若报文3指示通信装置2更新ike sa的密钥,则报文4中携带ike sa 的密钥更新结果。在一个示例中,可以重新定义一个notify message type:ike sa的密钥更新结果(result_ikesa_update),当notification payload字段中notify message type指示 result_ikesa_update时,该notification payload用于携带前述ike sa的密钥更新结果。在一个示例中,当报文4的notification payload中携带ike sa的密钥更新结果时,notifymessage type的值可以大于或者等于16439,因为16438以及小于16438的值的含义ietf 已经明确定义。例如,notify message type的值可以为16446。关于notification data字段,可以参考图7e进行理解,此处不再重复描述。需要说明的是,当notification data字段用于携带ike sa的密钥更新结果时,result字段用于携带ike sa的密钥更新结果,ike sa的密钥更新结果可以为成功、失败或者丢弃;result data字段为可选字段,在一个示例中,当 ike sa的密钥更新失败时,result data字段可以用于携带ike sa的密钥更新失败的原因。其中,ike sa的密钥更新失败的原因例如可以为派生失败或者存储失败。
[1073]
在一个示例中,若报文3指示通信装置2更新数据密钥,则报文4中可以携带数据密钥更新结果。在一个示例中,可以重新定义一个notify message type:数据密钥更新结果 (result_datakey_update),当notification payload字段中notify message type指示result_ datakey_update时,该notification payload用于携带前述数据密钥更新结果。在一个示例中,当报文4的notification payload中携带数据密钥更新结果时,notify message type的值可以大于或者等于16439,因为16438以及小于16438的值的含义ietf已经明确定义。例如, notify message type的值可以为16447。关于notification data字段,可以参考图7e进行理解,此处不再重复描述。需要说明的是,当notification data字段用于携带数据密钥更新结果时, result字段用于携带数据密钥更新结果,数据密钥更新结果可以为成功、失败或者丢弃; result data字段为可选字段,在一个示例中,当数据密钥更新失败时,result data字段可以用于携带数据密钥更新失败的原因。其中,数据密钥更新失败的原因例如可以为派生失败或者存储失败等。
[1074]
需要说明的是,在本技术实施例中,携带前述psk更新结果、ike sa的密钥更新结果和数据密钥更新结果的notification payload,其对应的notify message type的值可以相同,例如,notify message type的值为16445,用于指示该notification payload携带密钥更新结果。对于这种情况,可以利用notification data字段中的key type字段来指示该密钥结果对应的密钥类型。在一个示例中:当notification data字段中key type字段的值为1时,表示该notification payload携带psk更新结果;当notification data字段中key type字段的值为 2时,表示该notification payload携带ike sa的密钥更新结果;当notification data字段中 key type字段的值为3时,表示该notification payload携带数据密钥更新结果。
[1075]
如前文对psk的描述可知,psk可以用于派生密钥,该密钥可以用于对用于进行身
份认证的报文进行处理。因此,若通信装置1需要和通信装置2进行身份认证时,通信装置 1或者通行装置2中没有可以用于派生密钥的psk,则会导致身份认证无法正常进行,进一步地,会导致通信装置1和通信装置2无法正常通信。
[1076]
为了避免这个问题,本技术实施例提供了一种psk的处理方法。该方法可以由通信装置1或者通信装置2执行。以下以通信装置1执行该psk的处理方法为例进行说明。
[1077]
在本技术实施例中,可以在通信装置1上静态配置备份psk,该备份psk存储在通信装置1的非易失存储区。若通信装置1中还包括待选的psk,并且,待选的psk中有可用的psk时,该备份psk不参与密钥派生。
[1078]
当通信装置1触发身份认证时,可以从待选的psk中选择用于派生密钥的psk。在本技术实施例中,若通信装置1确定通信装置1中待选的psk均不可用时,可以获取前述备份psk,并利用该备份psk进行密钥派生。
[1079]
在一些实施例中,通信装置1中的待选psk,可以包括一个或者多个psk。
[1080]
作为一个示例,通信装置1中的待选psk,可以包括一个psk,例如包括psk1。通信装置1例如可以在读取psk1失败的情况下,确定psk1不可用。其中,读取psk1失败的原因,例如可以是存储psk1的非易失存储区损坏。通信装置1还可以在psk1的使用有效期已至的情况下,确定psk1不可用。对于这种情况,在一个示例中,通信装置1 中可以存储有psk1的启用时间和有效期,并根据psk1的启用时间和有效期确定psk1 的使用有效期已至。在又一个示例中,通信装置1中可以存储有psk1的截止使用时间,通信装置1可以根据该截止使用时间确定psk1的使用有效期已至。
[1081]
作为又一个示例,通信装置1中待选的psk,除了包括psk1之外,还包括psk2。当通信装置1中待选的psk不止一个时,通信装置1可以按照一定的顺序使用该多个待选的psk,例如,先使用psk1,当psk1的使用有效期到达之后,再使用psk2。对于这种情况,通信装置1例如可以在psk1的使用有效期已至,并且,psk2读取失败的情况下,确定通信装置1中待选的psk均不可用。其中,psk2读取失败的原因,例如可以是存储 psk2的非易失存储区损坏。
[1082]
在本技术实施例的一种实现方式中,前述psk2用于对psk1进行更新。其中,psk2 可以是利用方法100或者方法200或者方法300中提及的更新的psk。换言之,在一些实施例中,通信装置1首先利用psk1进行密钥派生,当psk1的使用有效期已至时,通信装置2读取psk2,以期通过psk2派生的密钥进行身份认证。此时,若psk2读取失败,则说明通信装置1中待选的psk均不可用。也就是说,在确定所述通信装置1中待选的 psk均不可用之前,psk2未参与密钥派生。
[1083]
本技术实施例还提供了一种psk的处理方法300’,可参见图8,该图为本技术实施例提供的一种psk的处理方法的流程示意图。图8所示的方法300’,可以由第一通信装置或者第二通信装置执行,第一通信装置,可以为以上实施例中提及的通信装置2,第二通信装置,可以为以上实施例提及的通信装置1。图8所示的方法300’,可以应用具体实现以上实施例提及的方法100’,在方法300’中,以第一通信装置执行该方法为例说明。该方法300’例如可以包括如下s301a-s302a。
[1084]
s301a:在第一psk的老化周期内,确定所述第一通信装置不能基于所述第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。
[1085]
s302a:基于所述第一通信装置本地保存的第二psk对第一通信装置和第二通信装
置之间交互的报文进行处理。
[1086]
此处提及的第一psk,可以对应方法100’中的psk1;此处提及的第二psk,可以对应方法100’中的psk2。
[1087]
在一种实现方式中,所述确定所述第一通信装置不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理,包括:
[1088]
从所述第一psk对应的非易失存储区读取所述第一psk失败。
[1089]
在一种实现方式中,所述第二psk为所述第一通信装置在所述第一psk的老化周期内,根据psk密钥材料生成的。
[1090]
此处提及的psk密钥材料,可以对应方法100’的psk密钥材料1。
[1091]
在一种实现方式中,所述方法还包括:
[1092]
在所述第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括所述psk密钥材料,所述psk密钥材料用于生成所述第二psk,所述第一通信装置在所述第一psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第一通信装置在第二psk的老化周期内基于所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理;
[1093]
根据所述psk密钥材料得到所述第二psk;
[1094]
保存所述第二psk。
[1095]
此处提及的第一协议报文,与以下方法400中的第一协议报文可以是同一报文,关于第一协议报文,可以参考方法400中对于第一协议报文的描述部分,此处不做重复描述。
[1096]
在一种实现方式中,所述第二psk为所述第一通信装置出厂时预置的psk。
[1097]
在一种实现方式中,所述第一通信装置中还保存有第三psk,所述方法还包括:
[1098]
确定所述第一通信装置不能基于所述第三psk对第一通信装置和第二通信装置之间交互的报文进行处理;
[1099]
基于所述第一通信装置本地保存的第二psk对第一通信装置和第二通信装置之间交互的报文进行处理,包括:
[1100]
在确定所述第一通信装置不能基于所述第三psk对第一通信装置和第二通信装置之间交互的报文进行处理的情况下,基于所述第一通信装置本地保存的第二psk对第一通信装置和第二通信装置之间交互的报文进行处理。
[1101]
此处提及的第三psk,可以对应方法100’中的psk3。
[1102]
在一种实现方式中,所述确定所述第一通信装置不能基于所述第三psk对第一通信装置和第二通信装置之间交互的报文进行处理,包括:
[1103]
从所述第三psk对应的非易失存储区读取所述第三psk失败。
[1104]
在一种实现方式中,所述基于所述第二psk对第一通信装置和第二通信装置之间交互的报文进行处理,包括:
[1105]
利用所述第二psk进行密钥派生;
[1106]
利用派生得到的密钥对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
[1107]
在一种实现方式中,在确定所述第一通信装置不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理之前,所述第一通信装置不使用所述第二psk对
第一通信装置和第二通信装置之间交互的报文进行处理。
[1108]
在一种实现方式中,所述第二psk存储在所述第一通信装置的非易失性存储区中。
[1109]
在一种实现方式中,所述基于所述第一通信装置本地保存的第二psk对第一通信装置和第二通信装置之间交互的报文进行处理,包括:
[1110]
利用所述第二psk派生的密钥对所述第一通信装置和所述第二通信装置之间交互的第一报文进行处理,所述第一报文,用于对所述第二通信装置进行身份认证。
[1111]
此处提及的第一报文,可以对应方法100’中的报文1。
[1112]
在一种实现方式中,所述基于所述第一通信装置本地保存的第二psk对第一通信装置和第二通信装置之间交互的报文进行处理,包括:
[1113]
利用所述第二psk派生的密钥对第二通信装置和所述第二通信装置之间交互的第二报文进行处理,所述第二报文用于对第二通信装置中保存的所述第一psk进行更新。
[1114]
此处提及的第二报文,可以对应方法100’中的报文2。
[1115]
在一种实现方式中,所述方法还包括:
[1116]
向控制管理设备发送告警信息,所述告警信息用于指示在所述第一psk的老化周期内,所述第一通信装置不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。
[1117]
本技术实施例还提供了一种psk的更新方法400,可参见图9a,该图为本技术实施例提供的一种psk的更新方法的流程示意图。图9a所示的方法400,可以由第一通信装置执行,第一通信装置,可以为以上实施例中提及的通信装置2,图9a所示的方法400,可以应用具体实现以上实施例提及的方法100、方法200以及方法300,用于执行以上方法 100、方法200以及方法300中由通信装置2执行的步骤,方法400中的第二通信装置,可以为以上实施例中的通信装置1,该方法400例如可以包括如下s401-s402。
[1118]
s401:在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成第二psk,所述第一 psk用于在所述第一psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二psk用于在所述第二psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
[1119]
s402:根据所述第一psk密钥材料得到所述第二psk。
[1120]
此处提及的第一psk,可以对应以上方法100、方法200以及方法300中的psk1;此处提及的第一协议报文,可以对应方法100、方法200以及方法300中的报文3;此处提及的第一psk密钥材料,可以对应方法100、方法200以及方法300中的psk密钥材料1;此处提及的第二psk,可以对应以上方法100、方法200以及方法300中的psk2。
[1121]
在一种实现方式中,所述方法还包括:
[1122]
将所述第二psk保存至所述第一通信装置的非易失存储区。
[1123]
在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:
[1124]
根据所述第一psk密钥材料和所述第一通信装置的第二psk密钥材料,得到所述第二psk。
[1125]
此处提及的第二psk密钥材料,可以对应方法100中的psk密钥材料2。
[1126]
在一种实现方式中,所述方法还包括:
[1127]
将第三psk密钥材料发送给第二通信装置,以便于所述第二通信装置根据所述第三 psk密钥材料生成所述第二psk。
[1128]
此处提及的第三psk密钥材料,可以对应方法100中的psk密钥材料3。
[1129]
在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:
[1130]
将所述第一psk密钥材料确定为所述第二psk。
[1131]
在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:
[1132]
根据所述第一psk密钥材料和第一密钥派生算法,得到所述第二psk。
[1133]
此处提及的第一密钥派生算法,可以对应方法100中的密钥派生算法1。
[1134]
在一种实现方式中,所述根据所述第一psk密钥材料和第一密钥派生算法,得到所述第二psk,包括:
[1135]
利用第一算法对所述第一psk密钥材料进行计算,得到中间值;
[1136]
根据所述中间值和所述第一密钥派生算法,生成所述第二psk。
[1137]
此处提及的第一算法,可以对应方法300中的prf算法,此处提及的中间值,可以对应方法300中的skeyseed,此处提及的第一密钥派生算法,可以对应方法300中的prf 派生算法。
[1138]
在一种实现方式中,所述第一psk密钥材料包括随机数。
[1139]
在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
[1140]
在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一psk密钥材料。
[1141]
在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一psk密钥材料。
[1142]
此处提及的第一密钥,可以为上文提及的对图3e所示的字段进行加密所使用的密钥。
[1143]
在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
[1144]
此处提及的第一完整性验证信息,可以对应方法100中报文3的icv字段携带的值。
[1145]
在一种实现方式中,在所述根据所述第一psk密钥材料得到所述第二psk之前,所述方法还包括:
[1146]
根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证。
[1147]
在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识,所述根据所述第一psk密钥材料得到所述第二psk,包括:
[1148]
根据所述第一密钥的标识确定所述第一密钥;
[1149]
利用所述第一密钥解密所述第一psk密钥材料;
[1150]
根据解密得到的所述第一psk密钥材料得到所述第二psk。
[1151]
在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证,包括:
[1152]
根据所述第二密钥的标识确定所述第二密钥;
[1153]
根据所述第二密钥和所述第一完整性验证信息对所述第一协议报文进行完整性验证。
[1154]
此处提及的第二密钥,可以对应方法100中公式(3)中的aik。
[1155]
在一种实现方式中,在接收所述第一协议报文之前,所述方法还包括:
[1156]
向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
[1157]
此处提及的第二协议报文,可以对应方法100中的报文2,所述第三密钥的标识可以携带在报文2的keyid字段中。
[1158]
在一种实现方式中,在接收所述第一协议报文之前,所述方法还包括:
[1159]
向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1160]
在一种实现方式中,所述第三密钥包括所述第一psk。
[1161]
在一种实现方式中,在向所述第二通信装置发送所述第二协议报文之前,所述方法还包括:
[1162]
接收来自于所述第二通信装置的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
[1163]
此处提及的第三协议报文,可以对应方法100中的报文1。
[1164]
在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
[1165]
在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
[1166]
此处提及的第一身份认证信息,可以对应方法100中的身份认证信息1。
[1167]
在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
[1168]
在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1169]
所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1170]
此处提及的第四密钥,可以对应方法100中公式(1)中的密钥1。
[1171]
在一种实现方式中,所述方法还包括:
[1172]
利用所述第一身份认证信息对所述第二通信装置进行身份认证。
[1173]
在一种实现方式中,所述利用所述第一身份认证信息对所述第二通信装置进行身份认证,包括:
[1174]
利用所述第四密钥对目标字段进行计算,得到第三身份认证信息;
[1175]
将所述第三身份认证信息和所述第一协议报文中携带的所述第一身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:
[1176]
第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1177]
在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第三身份认证信息,包括:
[1178]
利用所述第四密钥对所述目标字段进行计算,得到第一计算结果;
[1179]
利用所述第一密钥对所述第一计算结果进行加密,得到所述第三身份认证信息。
[1180]
在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
[1181]
在一种实现方式中,所述第四密钥是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。
[1182]
此处提及的第三psk,可以是不同于前述第一psk的另外一个psk。
[1183]
在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
[1184]
在一种实现方式中,所述方法还包括:
[1185]
向所述第二通信装置发送第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二psk。
[1186]
此处提及的第四协议报文,可以对应方法100中的报文4;该第一指示信息可以携带在报文4中的密钥材料确认信息中。
[1187]
在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段包括所述第一指示信息。
[1188]
在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
[1189]
此处提及的第二完整性验证信息,可以携带在方法100的报文4的icv字段中。
[1190]
在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
[1191]
此处提及的第二身份认证信息,可以对应方法100中的身份认证信息2。
[1192]
在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
[1193]
在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1194]
所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
[1195]
在一种实现方式中,所述方法还包括:
[1196]
接收来自于所述第二通信装置的第五协议报文,所述第五协议报文中携带身份认证结果和psk更新结果。
[1197]
此处提及的第五协议报文,可以对应方法100中的报文5。
[1198]
在一种实现方式中,所述方法还包括:
[1199]
若所述第五协议报文中的身份认证结果指示身份认证失败,或者,若所述第五协议报文中的psk更新结果指示psk更新失败,则删除所述第二psk。
[1200]
在一种实现方式中,所述方法还包括:
[1201]
向所述第二通信装置发送第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
[1202]
此处提及的第六协议报文,可以对应方法100中的报文6。
[1203]
在一种实现方式中,所述方法还包括:
[1204]
对所述第五协议报文进行完整性验证。
[1205]
在一种实现方式中,
[1206]
所述第一通信装置保存有第一数据密钥,所述第一协议报文中包括数据密钥材料,所述数据密钥材料用于生成更新的第二数据密钥,所述第一通信装置在所述第一数据密钥的老化周期内基于所述第一数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第一通信装置在第二数据密钥的老化周期内基于所述第二数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理;所述方法还包括:根据所述数据密钥材料得到所述第二数据密钥。
[1207]
此处提及的数据密钥材料,可以对应方法100中的数据密钥材料1;此处提及的第二数据密钥,可以对应方法100中的更新的数据密钥。
[1208]
在一种实现方式中,所述第二数据密钥包括:
[1209]
完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
[1210]
在一种实现方式中,所述第一通信装置保存有第一认证密钥,所述第一协议报文中包括认证密钥材料,所述认证密钥材料用于生成更新的第二认证密钥,所述第一通信装置在所述第一认证密钥的老化周期内基于所述第一认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第一通信装置在第二认证密钥的老化周期内基于所述第二认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理;所述方法还包括:根据所述认证密钥材料得到所述第二认证密钥。
[1211]
此处提及的认证密钥材料,可以对应方法100中的认证密钥材料1;此处提及的第二认证密钥,可以对应方法100中的更新的认证密钥。
[1212]
在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:
[1213]
完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
[1214]
在一种实现方式中,所述方法还包括:
[1215]
利用所述第二psk派生媒体接入控制安全macsec密钥。
[1216]
在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:
[1217]
根据所述第二psk生成主会话密钥msk;
[1218]
利用所述msk派生安全连接关联密钥cak;
[1219]
利用所述cak派生媒体接入控制安全macsec密钥。
[1220]
在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:
[1221]
将所述第二psk作为cak派生所述macsec密钥。
[1222]
在一种实现方式中,所述利用所述cak派生媒体接入控制安全macsec密钥,包括:
[1223]
根据所述cak的标识,确定所述cak;
[1224]
利用所述cak派生媒体接入控制安全macsec密钥。
[1225]
在一种实现方式中,所述cak的标识,根据以下任意一项或者多项参数生成:
[1226]
所述第一通信装置生成的第一随机数、所述第二通信装置生成的第二随机数、以
及所述第一协议报文的会话标识。
[1227]
此处提及的第一随机数,可以对应方法100中的随机数2;此处提及的第二随机数,可以对应方法100中的随机数1;此处提及的第一协议报文的会话标识,可以对应报文3 中ssid字段的值。
[1228]
在一种实现方式中,eap-psk报文包括:
[1229]
扩展认证协议eap头、eap扩展头和关键字字段。
[1230]
其中,eap头可以对应图3c中的eap header字段;eap扩展头可以对应图3c中的 eap type字段;关键字字段可以对应图3c中的其它字段。
[1231]
在一种实现方式中,所述psk密钥材料携带在所述关键字字段中。
[1232]
在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:
[1233]
协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
[1234]
其中:协议版本号字段可以对应图3c中的flags字段;会话标识字段可以对应图3c 中的session id字段;密钥标识字段可以对应图3c中的keyid字段;加密数据字段可以对应图3c中的encrypted payload字段;随机数字段可以对应图3b或者图3a中的nounce字段、身份标识字段可以对应图3a或者图3b中的id字段和完整性验证字段可以对应图3c 中的icv字段。
[1235]
在一种实现方式中,所述第一psk密钥材料携带在所述加密数据字段中。
[1236]
在一种实现方式中,所述方法还包括:
[1237]
向所述第二通信装置发送第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新psk的能力。
[1238]
此处提及的第二指示信息,可以对应方法100中的指示信息1。
[1239]
在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
[1240]
当第一协议报文为基于ike的报文时,第一协议报文,可以对应方法300中的报文3。
[1241]
在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的载荷payload 字段中。
[1242]
在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的通知 notification payload字段中。
[1243]
在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的扩展tlv字段中。
[1244]
在一种实现方式中,所述方法还包括:
[1245]
向所述第二通信装置发送第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新psk的能力。
[1246]
此处提及的第三指示信息,可以对应方法300中的指示信息1。
[1247]
在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
[1248]
在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息
类型字段。
[1249]
在一种实现方式中,所述方法还包括:向所述第二通信装置发送第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二psk。
[1250]
此处提及的第七协议报文,可以对应方法300中的报文4。
[1251]
在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二psk。
[1252]
此处提及的第四指示信息,可以对应方法300中提及的密钥更新结果。
[1253]
在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
[1254]
在一种实现方式中,所述第一协议报文(对应方法300中的报文3)为认证交换authexchange报文。
[1255]
在一种实现方式中,所述第一协议报文(对应方法300中的报文3)为创建子安全关联交换create_child_sa exchange报文。
[1256]
在一种实现方式中,所述第一协议报文(对应方法300中的报文3)为通知交换 informational exchange报文。
[1257]
在一种实现方式中,所述第一协议报文为基于媒体接入控制安全密钥协议mka的报文。
[1258]
当第一协议报文为基于mka的报文时,第一协议报文可以对应方法200中的报文3。
[1259]
在一种实现方式中,所述第一psk密钥材料,携带在所述第一协议报文的扩展参数集 parameter set字段中。
[1260]
在一种实现方式中,所述方法还包括:
[1261]
向所述第二通信装置发送第五指示信息,所述第五指示信息用于指示所述第一通信装置具备自动更新psk的能力。
[1262]
此处提及的第五指示信息,可以对应方法200中的指示信息1。
[1263]
在一种实现方式中,所述第五指示信息携带在基于mka的报文的parameter set字段中。
[1264]
在一种实现方式中,所述第五指示信息携带在所述基于mka的报文的parameter set 类型字段中,所述parameter set字段包括parameter set类型字段。
[1265]
在一种实现方式中,所述方法还包括:
[1266]
向所述第二通信装置发送第八协议报文,所述第八协议报文用于指示所述第一通信装置已保存所述第二psk。
[1267]
此处提及的第八协议报文,可以对应方法200中的报文4。
[1268]
在一种实现方式中,所述第八协议报文中包括第六指示信息,所述第六指示信息用于指示所述第一通信装置已保存所述第二psk。
[1269]
此处提及的第六指示信息,可以对应方法200中的psk存储确认信息。
[1270]
在一种实现方式中,所述第八协议报文为基于mka的报文,所述第六指示信息携带在所述基于mka的报文的parameter set类型字段中。
[1271]
在一种实现方式中,所述第一通信装置为车载装置。
[1272]
在一种实现方式中,所述第二通信装置为车载装置。
[1273]
本技术实施例还提供了一种psk的更新方法500,可参见图9b,该图为本技术实施例提供的一种psk的更新方法的流程示意图。图9b所示的方法500,可以由第二通信装置执行,第二通信装置,可以为以上实施例中提及的通信装置1,方法500中的第一通信装置,可以对应以上实施例中的通信装置2;图9b所示的方法500,可以应用具体实现以上实施例提及的方法100、方法200以及方法300,用于执行以上方法100、方法200以及方法300中由通信装置1执行的步骤,该方法500例如可以包括如下s501-s502。
[1274]
s501:获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成第二psk,所述第一psk用于在所述第一psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二psk用于在第二psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
[1275]
s502:在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1276]
此处提及的第一psk,可以对应以上方法100、方法200以及方法300中的psk1;此处提及的第一协议报文,可以对应方法100、方法200以及方法300中的报文3;此处提及的第一psk密钥材料,可以对应方法100、方法200以及方法300中的psk密钥材料1;此处提及的第二psk,可以对应以上方法100、方法200以及方法300中的psk2。
[1277]
在一种实现方式中,所述方法还包括:
[1278]
存储所述第一psk密钥材料。
[1279]
在一种实现方式中,所述方法还包括:
[1280]
接收所述第一通信装置发送的第三psk密钥材料;
[1281]
根据所述第三psk密钥材料获得所述第二psk。
[1282]
此处提及的第二psk密钥材料,可以对应方法100中的psk密钥材料2。
[1283]
在一种实现方式中,所述方法还包括:
[1284]
根据所述第一psk密钥材料得到所述第二psk。
[1285]
在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:
[1286]
在所述第二psk的老化周期开始之前,根据所述第一psk密钥材料得到所述第二psk。
[1287]
在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:
[1288]
将所述第一psk密钥材料确定为所述第二psk。
[1289]
在一种实现方式中,所述根据所述第一psk密钥材料得到所述第二psk,包括:
[1290]
根据所述第一psk密钥材料和第一密钥派生算法,得到所述第二psk。
[1291]
此处提及的第一密钥派生算法,可以对应方法100中的密钥派生算法1。
[1292]
在一种实现方式中,所述根据所述第一psk密钥材料和第一密钥派生算法,得到所述第二psk,包括:
[1293]
利用第一算法对所述第一psk密钥材料进行计算,得到中间值;
[1294]
根据所述中间值和所述第一密钥派生算法,生成所述第二psk。
[1295]
此处提及的第一算法,可以对应方法300中的prf算法,此处提及的中间值,可以对应方法300中的skeyseed,此处提及的第一密钥派生算法,可以对应方法300中的prf 派生算法。
[1296]
在一种实现方式中,所述方法还包括:
[1297]
将所述第二psk保存至所述第二通信装置的非易失存储区。
[1298]
在一种实现方式中,所述第一psk密钥材料包括随机数。
[1299]
在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
[1300]
在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的tlv字段包括所述第一psk密钥材料。
[1301]
在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一psk密钥材料。
[1302]
在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
[1303]
此处提及的第一完整性验证信息,可以对应方法100中报文3的icv字段携带的值。
[1304]
在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识。
[1305]
在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1306]
在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
[1307]
接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
[1308]
此处提及的第二协议报文,可以对应方法100中的报文2,所述第三密钥的标识可以携带在报文2的keyid字段中。
[1309]
在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
[1310]
接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1311]
在一种实现方式中,所述第三密钥包括所述第一psk。
[1312]
在一种实现方式中,在接收所述第一通信装置发送的第二协议报文,所述方法还包括:
[1313]
向所述第一通信装置发送的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
[1314]
此处提及的第三协议报文,可以对应方法100中的报文1。
[1315]
在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
[1316]
在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
[1317]
此处提及的第一身份认证信息,可以对应方法100中的身份认证信息1。
[1318]
在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
[1319]
在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计
算得到:
[1320]
所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1321]
此处提及的第四密钥,可以对应方法100中公式(1)中的密钥1。
[1322]
在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
[1323]
在一种实现方式中,所述第四密钥是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。
[1324]
此处提及的第三psk,可以是不同于前述第一psk的另外一个psk。
[1325]
在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
[1326]
在一种实现方式中,所述方法还包括:
[1327]
接收所述第一通信装置发送的第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二psk。
[1328]
此处提及的第四协议报文,可以对应方法100中的报文4;该第一指示信息可以携带在报文4中的密钥材料确认信息中。
[1329]
在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段包括所述第一指示信息。
[1330]
在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
[1331]
此处提及的第二完整性验证信息,可以携带在方法100的报文4的icv字段中。
[1332]
在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
[1333]
此处提及的第二身份认证信息,可以对应方法100中的身份认证信息2。
[1334]
在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
[1335]
在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1336]
所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
[1337]
在一种实现方式中,所述方法还包括:
[1338]
利用所述第二身份认证信息对所述第一通信装置进行身份认证。
[1339]
在一种实现方式中,所述利用所述第二身份认证信息对所述第一通信装置进行身份认证,包括:
[1340]
利用所述第四密钥对目标字段进行计算,得到第四身份认证信息;
[1341]
将所述第四身份认证信息和所述第四协议报文中携带的所述第二身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:
[1342]
第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1343]
在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第四身份认证信息,包括:
[1344]
利用所述第四密钥对所述目标字段进行计算,得到第二计算结果;
[1345]
利用所述第一密钥对所述第二计算结果进行加密,得到所述第四身份认证信息。
[1346]
在一种实现方式中,所述方法还包括:
[1347]
向所述第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和 psk更新结果。
[1348]
此处提及的第五协议报文,可以对应方法100中的报文5。
[1349]
在一种实现方式中,所述方法还包括:
[1350]
接收所述第一通信装置发送的第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
[1351]
此处提及的第六协议报文,可以对应方法100中的报文6。
[1352]
在一种实现方式中,
[1353]
所述第二通信装置保存有第一数据密钥,所述第一协议报文中还包括数据密钥材料,所述数据密钥材料用于指示所述第一通信装置生成更新的第二数据密钥,所述第二通信装置在所述第一数据密钥的老化周期内基于所述第一数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第二通信装置在第二数据密钥的老化周期内基于所述第二数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理。
[1354]
此处提及的数据密钥材料,可以对应方法100中的数据密钥材料1;此处提及的第二数据密钥,可以对应方法100中的更新的数据密钥。
[1355]
在一种实现方式中,所述方法还包括:
[1356]
根据所述数据密钥材料得到所述第二数据密钥。
[1357]
在一种实现方式中,所述第二数据密钥包括:
[1358]
完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
[1359]
在一种实现方式中,所述第二通信装置保存有第一认证密钥,所述第一协议报文中还包括认证密钥材料,所述认证密钥材料用于指示所述第一通信装置生成更新的第二认证密钥,所述第二通信装置在所述第一认证密钥的老化周期内基于所述第一认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第二通信装置在第二认证密钥的老化周期内基于所述第二认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理。
[1360]
此处提及的认证密钥材料,可以对应方法100中的认证密钥材料1;此处提及的第二认证密钥,可以对应方法100中的更新的认证密钥。
[1361]
在一种实现方式中,所述方法还包括:
[1362]
根据所述认证密钥材料得到所述第二认证密钥。
[1363]
在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:
[1364]
完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
[1365]
在一种实现方式中,所述方法还包括:
[1366]
利用所述第二psk派生媒体接入控制安全macsec密钥。
[1367]
在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:
[1368]
根据所述第二psk生成主会话密钥msk;
[1369]
利用所述msk派生安全连接关联密钥cak;
[1370]
利用所述cak派生媒体接入控制安全macsec密钥。
[1371]
在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:
[1372]
将所述第二psk作为cak派生所述macsec密钥。
[1373]
在一种实现方式中,所述利用所述cak派生媒体接入控制安全macsec密钥,包括:
[1374]
根据所述cak的标识,确定所述cak;
[1375]
利用所述cak派生媒体接入控制安全macsec密钥。
[1376]
在一种实现方式中,所述cak的标识,根据以下任意一项或者多项参数生成:
[1377]
所述第一通信装置生成的第一随机数、所述第二通信装置生成的第二随机数、以及所述第一协议报文的会话标识。
[1378]
在一种实现方式中,所述第一协议报文包括:
[1379]
扩展认证协议eap头、eap扩展头和关键字字段。
[1380]
在一种实现方式中,所述第一psk密钥材料携带在所述关键字字段中。
[1381]
在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:
[1382]
协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
[1383]
在一种实现方式中,所述第一psk密钥材料携带在所述加密数据字段中。
[1384]
在一种实现方式中,所述方法还包括:
[1385]
接收所述第一通信装置发发送的第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新psk的能力。
[1386]
此处提及的第二指示信息,可以对应方法100中的指示信息1。
[1387]
在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
[1388]
在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的载荷payload 字段中。
[1389]
在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的通知 notification payload字段中。
[1390]
在一种实现方式中,所述第一psk密钥材料携带在所述第一协议报文的扩展tlv字段中。
[1391]
在一种实现方式中,所述方法还包括:
[1392]
接收所述第一通信装置发送的第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新psk的能力。
[1393]
在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
[1394]
在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息
类型字段。
[1395]
在一种实现方式中,所述方法还包括:
[1396]
接收所述第一通信装置发送的第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二psk。
[1397]
在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二psk。
[1398]
在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
[1399]
在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
[1400]
在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
[1401]
在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
[1402]
在一种实现方式中,所述第一协议报文为基于媒体接入控制安全密钥协议mka的报文。
[1403]
在一种实现方式中,所述第一psk密钥材料,携带在所述第一协议报文的扩展参数集 parameter set字段中。
[1404]
在一种实现方式中,所述方法还包括:
[1405]
接收所述第一通信装置发送的第五指示信息,所述第五指示信息用于指示所述第一通信装置具备自动更新psk的能力。
[1406]
在一种实现方式中,所述第五指示信息携带在基于mka的报文的parameter set字段中。
[1407]
在一种实现方式中,所述第五指示信息携带在所述基于mka的报文的parameter set 类型字段中,所述parameter set字段包括parameter set类型字段。
[1408]
在一种实现方式中,所述方法还包括:
[1409]
接收所述第一通信装置发送的第八协议报文,所述第八协议报文用于指示所述第一通信装置已保存所述第二psk。
[1410]
在一种实现方式中,所述第八协议报文中包括第六指示信息,所述第六指示信息用于指示所述第一通信装置已保存所述第二psk。
[1411]
在一种实现方式中,所述第八协议报文为基于mka的报文,所述第六指示信息携带在所述基于mka的报文的parameter set类型字段中。
[1412]
在一种实现方式中,所述第一通信装置为车载装置。
[1413]
在一种实现方式中,所述第二通信装置为车载装置。
[1414]
需要说明的是,方法500是与方法400对应的由第二通信装置执行的步骤,因此,关于方法500,可以参考上文对于方法400的描述部分,此处不做重复描述。
[1415]
本技术实施例还提供了一种数据密钥的更新方法600,可参见图10a,该图为本技术实施例提供的一种数据密钥的更新方法的流程示意图。图10a所示的方法600,可以由第一通信装置执行,第一通信装置,可以为以上实施例中提及的通信装置2,方法600中的第二通信装置,可以对应以上实施例中的通信装置1;图10a所示的方法600,可以应用具体实现
以上实施例提及的方法100以及方法300,用于执行以上方法100以及方法300中由通信装置2执行的步骤,该方法600例如可以包括如下s601-s602。
[1416]
s601:在第一数据密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文不是基于媒体接入控制安全密钥协议mka的报文,所述第一协议报文中包括第一数据密钥材料,所述第一数据密钥材料用于生成第二数据密钥,所述第一数据密钥用于在所述第一数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第二数据密钥用于在第二数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理。
[1417]
s602:根据所述第一数据密钥材料得到所述第二数据密钥。
[1418]
此处提及的第一协议报文,可以对应方法100以及方法300中的报文3;此处提及的第一数据密钥材料,可以对应方法100以及方法300中的数据密钥材料1;此处提及的第二数据密钥,可以对应以上方法100以及方法300中的更新的数据密钥。
[1419]
在一种实现方式中,所述方法还包括:
[1420]
保存所述第二数据密钥。
[1421]
在一种实现方式中,所述第一通信装置和所述第二通信装置之间基于非以太口通信。
[1422]
在一种实现方式中,所述第一通信装置和所述第二通信装置之间基于以太口通信,且所述第一通信装置或者所述第二通信装置不使用非对称算法。
[1423]
在一种实现方式中,所述第二数据密钥包括:
[1424]
完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
[1425]
在一种实现方式中,所述根据所述第一数据密钥材料生成所述第二数据密钥,包括:
[1426]
根据所述第一数据密钥材料和所述第一通信装置的第二数据密钥材料,生成所述第二数据密钥。
[1427]
此处提及的第二数据密钥材料,可以对应方法100中的数据密钥材料2。
[1428]
在一种实现方式中,所述方法还包括:
[1429]
将第三数据密钥材料发送给第二通信装置,以便于所述第二通信装置根据所述第三数据密钥材料生成所述第二数据密钥。
[1430]
此处提及的第三数据密钥材料,可以对应方法100中的数据密钥材料3。
[1431]
在一种实现方式中,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:
[1432]
将所述第一数据密钥材料确定为所述第二数据密钥。
[1433]
在一种实现方式中,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:
[1434]
根据所述第一数据密钥材料和第一密钥派生算法,生成所述第二数据密钥。
[1435]
此处提及的第一密钥派生算法,可以对应方法100中的密钥派生算法3。
[1436]
在一种实现方式中,所述根据所述第一数据密钥材料和第一密钥派生算法,生成所述第二数据密钥,包括:
[1437]
利用第一算法对所述第一数据密钥材料进行计算,得到中间值;
[1438]
根据所述中间值和所述第一密钥派生算法,生成所述第二数据密钥。
[1439]
在一种实现方式中,所述第一数据密钥材料,包括:
[1440]
随机数。
[1441]
在一种实现方式中,所述第一数据密钥材料,包括:
[1442]
用于生成所述完整性计算密钥的随机数,和/或,用于生成所述加密密钥的随机数。
[1443]
在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
[1444]
在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一数据密钥材料。
[1445]
在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一数据密钥材料。
[1446]
此处提及的第一密钥,可以为上文提及的对图3e所示的字段进行加密所使用的密钥。
[1447]
在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
[1448]
此处提及的第一完整性验证信息,可以对应方法100中报文3的icv字段携带的值。
[1449]
在一种实现方式中,在所述根据所述第一数据密钥材料得到所述第二数据密钥之前,所述方法还包括:
[1450]
根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证。
[1451]
在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:
[1452]
根据所述第一密钥的标识确定所述第一密钥;
[1453]
利用所述第一密钥解密所述第一数据密钥材料;
[1454]
根据解密得到的所述第一数据密钥材料得到所述第二数据密钥。
[1455]
在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证,包括:
[1456]
根据所述第二密钥的标识确定所述第二密钥;
[1457]
根据所述第二密钥和所述第一完整性验证信息对所述第一协议报文进行完整性验证。
[1458]
此处提及的第二密钥,可以对应方法100中公式(3)中的aik。
[1459]
在一种实现方式中,在接收所述第一协议报文之前,所述方法还包括:
[1460]
向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
[1461]
此处提及的第二协议报文,可以对应方法100中的报文2,所述第三密钥的标识可以携带在报文2的keyid字段中。
[1462]
在一种实现方式中,在接收所述第一协议报文之前,所述方法还包括:
[1463]
向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1464]
在一种实现方式中,所述第三密钥包括所述第一通信装置中存储的第一psk。
[1465]
在一种实现方式中,在向所述第二通信装置发送所述第二协议报文之前,所述方法还包括:
[1466]
接收来自于所述第二通信装置的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
[1467]
此处提及的第三协议报文,可以对应方法100中的报文1。
[1468]
在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
[1469]
在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
[1470]
此处提及的第一身份认证信息,可以对应方法100中的身份认证信息1。
[1471]
在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
[1472]
在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1473]
所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1474]
此处提及的第四密钥,可以对应方法100中公式(1)中的密钥1。
[1475]
在一种实现方式中,所述方法还包括:
[1476]
利用所述第一身份认证信息对所述第二通信装置进行身份认证。
[1477]
在一种实现方式中,所述利用所述第一身份认证信息对所述第二通信装置进行身份认证,包括:
[1478]
利用所述第四密钥对目标字段进行计算,得到第三身份认证信息;
[1479]
将所述第三身份认证信息和所述第一协议报文中携带的所述第一身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:
[1480]
第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1481]
在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第三身份认证信息,包括:
[1482]
利用所述第四密钥对所述目标字段进行计算,得到第一计算结果;
[1483]
利用所述第一密钥对所述第一计算结果进行加密,得到所述第三身份认证信息。
[1484]
在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
[1485]
在一种实现方式中,所述第四密钥由第三psk派生得到,所述第一通信装置中存储有所述第三psk。
[1486]
此处提及的第三psk,可以是不同于前述第一psk的另外一个psk。
[1487]
在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
[1488]
在一种实现方式中,所述方法还包括:
psk,可以对应方法100中的psk2。
[1513]
在一种实现方式中,所述第一通信装置保存有第一认证密钥,所述第一协议报文中包括认证密钥材料,所述认证密钥材料用于生成更新的第二认证密钥,所述第一通信装置在所述第一认证密钥的老化周期内基于所述第一认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第一通信装置在第二认证密钥的老化周期内基于所述第二认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理;所述方法还包括:
[1514]
根据所述认证密钥材料得到所述第二认证密钥。
[1515]
此处提及的认证密钥材料,可以对应方法100中的认证密钥材料1;此处提及的第二认证密钥,可以对应方法100中的更新的认证密钥。
[1516]
在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:
[1517]
完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
[1518]
在一种实现方式中,所述第一协议报文包括:
[1519]
eap头、eap扩展头和关键字字段。
[1520]
其中,eap头可以对应图3c中的eap header字段;eap扩展头可以对应图3c中的 eap type字段;关键字字段可以对应图3c中的其它字段。
[1521]
在一种实现方式中,所述第一数据密钥材料携带在所述关键字字段中。
[1522]
在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:
[1523]
协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
[1524]
其中:协议版本号字段可以对应图3c中的flags字段;会话标识字段可以对应图3c 中的session id字段;密钥标识字段可以对应图3c中的keyid字段;加密数据字段可以对应图3c中的encrypted payload字段;随机数字段可以对应图3b或者图3a中的nounce字段、身份标识字段可以对应图3a或者图3b中的id字段和完整性验证字段可以对应图3c 中的icv字段。
[1525]
在一种实现方式中,所述第一数据密钥材料携带在所述加密数据字段中。
[1526]
在一种实现方式中,所述方法还包括:
[1527]
向所述第二通信装置发送第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。
[1528]
此处提及的第二指示信息,可以对应方法100中的指示信息1。
[1529]
在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
[1530]
在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的载荷payload 字段中。
[1531]
在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的通知 notification payload字段中。
[1532]
在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的扩展tlv
字段中。
[1533]
在一种实现方式中,所述方法还包括:
[1534]
向所述第二通信装置发送第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。
[1535]
此处提及的第三指示信息,可以对应方法300中的指示信息1”。
[1536]
在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
[1537]
在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
[1538]
在一种实现方式中,所述方法还包括:向所述第二通信装置发送第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二数据密钥。
[1539]
此处提及的第七协议报文,可以对应方法300中的报文4。
[1540]
在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二数据密钥。
[1541]
此处提及的第四指示信息,可以对应方法300中提及的密钥更新结果。
[1542]
在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
[1543]
在一种实现方式中,所述第一协议报文(对应方法300中的报文3)为认证交换authexchange报文。
[1544]
在一种实现方式中,所述第一协议报文(对应方法300中的报文3)为创建子安全关联交换create_child_sa exchange报文。
[1545]
在一种实现方式中,所述第一协议报文(对应方法300中的报文3)为通知交换 informational exchange报文。
[1546]
在一种实现方式中,所述第一通信装置为车载装置。
[1547]
在一种实现方式中,所述第二通信装置为车载装置。
[1548]
本技术实施例还提供了一种数据密钥的更新方法700,可参见图10b,该图为本技术实施例提供的一种数据密钥的更新方法的流程示意图。图10b所示的方法700,可以由第二通信装置执行,第二通信装置,可以为以上实施例中提及的通信装置1,方法700中的第一通信装置,可以对应以上实施例中的通信装置2;图10b所示的方法700,可以应用具体实现以上实施例提及的方法100以及方法300,用于执行以上方法100以及方法300 中由通信装置1执行的步骤,该方法700例如可以包括如下s701-s702。
[1549]
s701:获取第一数据密钥材料,所述第一数据密钥材料用于指示第一通信装置生成第二数据密钥,所述第一数据密钥用于在第一数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第二数据密钥用于在第二数据密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理。
[1550]
s702:在所述第一数据密钥的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一数据密钥材料。
[1551]
在一种实现方式中,所述方法还包括:
[1552]
保存所述第一数据密钥材料。
[1553]
在一种实现方式中,所述方法还包括:
[1554]
接收所述第一通信装置发送的第三数据密钥材料;
[1555]
根据所述第三数据密钥材料获得所述第二数据密钥。
[1556]
在一种实现方式中,所述方法还包括:
[1557]
根据所述第一数据密钥材料得到所述第二数据密钥。
[1558]
在一种实现方式中,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:
[1559]
在所述第二数据密钥的老化周期开始之前,根据所述第一数据密钥材料得到所述第二数据密钥。
[1560]
在一种实现方式中,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:
[1561]
将所述第一数据密钥材料确定为所述第二数据密钥。
[1562]
在一种实现方式中,所述根据所述第一数据密钥材料得到所述第二数据密钥,包括:
[1563]
根据所述第一数据密钥材料和第一密钥派生算法,得到所述第二数据密钥。
[1564]
在一种实现方式中,所述根据所述第一数据密钥材料和第一密钥派生算法,得到所述第二数据密钥,包括:
[1565]
利用第一算法对所述第一数据密钥材料进行计算,得到中间值;
[1566]
根据所述中间值和所述第一密钥派生算法,生成所述第二数据密钥。
[1567]
在一种实现方式中,所述方法还包括:
[1568]
保存所述第二数据密钥。
[1569]
在一种实现方式中,所述第一通信装置和所述第二通信装置之间基于非以太口通信。
[1570]
在一种实现方式中,所述第一通信装置和所述第二通信装置之间基于以太口通信,且所述第一通信装置或者所述第二通信装置不使用非对称算法。
[1571]
在一种实现方式中,所述第二数据密钥包括:
[1572]
完整性计算密钥,和/或,加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
[1573]
在一种实现方式中,所述第一数据密钥材料包括随机数。
[1574]
在一种实现方式中,所述第一数据密钥材料,包括:
[1575]
用于生成所述完整性计算密钥的随机数,和/或,用于生成所述加密密钥的随机数。
[1576]
在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
[1577]
在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一数据密钥材料。
[1578]
在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一数据密
钥材料。
[1579]
在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
[1580]
在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识。
[1581]
在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1582]
在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
[1583]
接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
[1584]
在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
[1585]
接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1586]
在一种实现方式中,所述第三密钥包括所述第一通信装置和所述第二通信装置中存储的第一psk。
[1587]
在一种实现方式中,在接收所述第一通信装置发送的第二协议报文,所述方法还包括:
[1588]
向所述第一通信装置发送的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
[1589]
在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
[1590]
在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
[1591]
在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
[1592]
在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1593]
所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1594]
在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
[1595]
在一种实现方式中,所述第四密钥是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。
[1596]
在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
[1597]
在一种实现方式中,所述方法还包括:
[1598]
接收所述第一通信装置发送的第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二数据密钥。
[1599]
在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段
包括所述第一指示信息。
[1600]
在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
[1601]
在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
[1602]
在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
[1603]
在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1604]
所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
[1605]
在一种实现方式中,所述方法还包括:
[1606]
利用所述第二身份认证信息对所述第一通信装置进行身份认证。
[1607]
在一种实现方式中,所述利用所述第二身份认证信息对所述第一通信装置进行身份认证,包括:
[1608]
利用所述第四密钥对目标字段进行计算,得到第四身份认证信息;
[1609]
将所述第四身份认证信息和所述第四协议报文中携带的所述第二身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:
[1610]
第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1611]
在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第四身份认证信息,包括:
[1612]
利用所述第四密钥对所述目标字段进行计算,得到第二计算结果;
[1613]
利用所述第一密钥对所述第二计算结果进行加密,得到所述第四身份认证信息。
[1614]
在一种实现方式中,所述方法还包括:
[1615]
向所述第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和数据密钥更新结果。
[1616]
在一种实现方式中,所述方法还包括:
[1617]
接收所述第一通信装置发送的第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
[1618]
在一种实现方式中,
[1619]
所述第二通信装置保存有第一psk,所述第一协议报文中还包括psk密钥材料,所述 psk密钥材料用于指示所述第一通信装置生成更新的第二psk,所述第二通信装置在所述第一psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二通信装置在第二psk的老化周期内基于所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
[1620]
在一种实现方式中,所述方法还包括:
[1621]
根据所述psk密钥材料得到所述第二psk。
[1622]
在一种实现方式中,所述第二通信装置保存有第一认证密钥,所述第一协议报文中还包括认证密钥材料,所述认证密钥材料用于指示所述第一通信装置生成更新的第二认
证密钥,所述第二通信装置在所述第一认证密钥的老化周期内基于所述第一认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第二通信装置在第二认证密钥的老化周期内基于所述第二认证密钥对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理。
[1623]
在一种实现方式中,所述方法还包括:
[1624]
根据所述认证密钥材料得到所述第二认证密钥。
[1625]
在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:
[1626]
完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
[1627]
在一种实现方式中,所述第一协议报文包括:
[1628]
扩展认证协议eap头、eap扩展头和关键字字段。
[1629]
在一种实现方式中,所述第一数据密钥材料携带在所述关键字字段中。
[1630]
在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:
[1631]
协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
[1632]
在一种实现方式中,所述第一数据密钥材料携带在所述加密数据字段中。
[1633]
在一种实现方式中,所述方法还包括:
[1634]
接收所述第一通信装置发发送的第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。
[1635]
在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
[1636]
在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的载荷payload 字段中。
[1637]
在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的通知 notification payload字段中。
[1638]
在一种实现方式中,所述第一数据密钥材料携带在所述第一协议报文的扩展tlv字段中。
[1639]
在一种实现方式中,所述方法还包括:
[1640]
接收所述第一通信装置发送的第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新数据密钥的能力。
[1641]
在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
[1642]
在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
[1643]
在一种实现方式中,所述方法还包括:
[1644]
接收所述第一通信装置发送的第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二数据密钥。
[1645]
在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二数据密钥。
[1646]
在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
[1647]
在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
[1648]
在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
[1649]
在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
[1650]
在一种实现方式中,所述第一通信装置为车载装置。
[1651]
在一种实现方式中,所述第二通信装置为车载装置。
[1652]
需要说明的是,方法700是与方法600对应的由第二通信装置执行的步骤,因此,关于方法700,可以参考上文对于方法600的描述部分,此处不做重复描述。
[1653]
本技术实施例还提供了一种认证密钥的更新方法800,可参见图11a,该图为本技术实施例提供的一种认证密钥的更新方法的流程示意图。图11a所示的方法800,可以由第一通信装置执行,第一通信装置,可以为以上实施例中提及的通信装置2,方法800中的第二通信装置,可以对应以上实施例中的通信装置1;图11a所示的方法800,可以应用具体实现以上实施例提及的方法100以及方法300,用于执行以上方法100以及方法300中由通信装置2执行的步骤,该方法800例如可以包括如下s801-s802。
[1654]
s801:在第一认证密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文包括第一认证密钥材料,所述第一认证密钥材料用于生成第二认证密钥,所述第一认证密钥用于在所述第一认证密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理,所述第二认证密钥用于在第二认证密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的身份认证报文进行处理。
[1655]
s802:根据所述第一认证密钥材料得到所述第二认证密钥;其中:所述第一通信装置和所述第二通信装置之间利用非以太接口通信,和/或,所述第一通信装置或所述第二通信装置不使用非对称密钥算法。
[1656]
此处提及的第一协议报文,可以对应方法100以及方法300中的报文3;此处提及的第一数据密钥材料,可以对应方法100以及方法300中的认证密钥材料1;此处提及的第二认证密钥,可以对应以上方法100以及方法300中的更新的认证密钥。
[1657]
在一种实现方式中,所述方法还包括:
[1658]
保存所述第二认证密钥。
[1659]
在一种实现方式中,所述第一协议报文中包括第一指示信息,所述第一指示信息用于指示所述第一通信装置利用对称密钥算法派生所述第二认证密钥。
[1660]
此时,第一协议报文可以为基于ike的报文,此处提及的第一指示信息,可以对应方法300中提及的报文3的keytypebitmap字段中。
[1661]
在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:
[1662]
完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述
密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
[1663]
在一种实现方式中,所述根据所述第一认证密钥材料生成所述第二认证密钥,包括:
[1664]
根据所述第一认证密钥材料和所述第一通信装置的第二认证密钥材料,生成所述第二认证密钥。
[1665]
此处提及的第二认证密钥材料,可以对应方法100中的认证密钥材料2。
[1666]
在一种实现方式中,所述方法还包括:
[1667]
将第三认证密钥材料发送给第二通信装置,以便于所述第二通信装置根据所述第三认证密钥材料生成所述第二认证密钥。
[1668]
此处提及的第三认证密钥材料,可以对应方法100中的认证密钥材料3。
[1669]
在一种实现方式中,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:
[1670]
将所述第一认证密钥材料确定为所述第二认证密钥。
[1671]
在一种实现方式中,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:
[1672]
根据所述第一认证密钥材料和第一密钥派生算法,生成所述第二认证密钥。
[1673]
此处提及的第一密钥派生算法,可以对应方法100中的密钥派生算法2。
[1674]
在一种实现方式中,所述根据所述第一认证密钥材料和第一密钥派生算法,生成所述第二认证密钥,包括:
[1675]
利用第一算法对所述第一认证密钥材料进行计算,得到中间值;
[1676]
根据所述中间值和所述第一密钥派生算法,生成所述第二认证密钥。
[1677]
在一种实现方式中,所述第一认证密钥材料,包括:
[1678]
随机数。
[1679]
在一种实现方式中,所述第一认证密钥材料,包括以下任意一项或者多项:
[1680]
用于生成所述完整性计算密钥的随机数、用于生成所述加密密钥的随机数、用于生成所述密钥派生密钥的随机数和用于生成所述身份认证密钥的随机数。
[1681]
在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
[1682]
在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一认证密钥材料。
[1683]
在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一认证密钥材料。
[1684]
此处提及的第一密钥,可以为上文提及的对图3e所示的字段进行加密所使用的密钥。
[1685]
在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
[1686]
此处提及的第一完整性验证信息,可以对应方法100中报文3的icv字段携带的值。
[1687]
在一种实现方式中,在所述根据所述第一认证密钥材料得到所述第二认证密钥之
前,所述方法还包括:
[1688]
根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证。
[1689]
在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:
[1690]
根据所述第一密钥的标识确定所述第一密钥;
[1691]
利用所述第一密钥解密所述第一认证密钥材料;
[1692]
根据解密得到的所述第一认证密钥材料得到所述第二认证密钥。
[1693]
在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述根据所述第一完整性验证信息,对所述第一协议报文进行完整性验证,包括:
[1694]
根据所述第二密钥的标识确定所述第二密钥;
[1695]
根据所述第二密钥和所述第一完整性验证信息对所述第一协议报文进行完整性验证。
[1696]
此处提及的第二密钥,可以对应方法100中公式(3)中的aik。
[1697]
在一种实现方式中,在接收所述第一协议报文之前,所述方法还包括:
[1698]
向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
[1699]
此处提及的第二协议报文,可以对应方法100中的报文2,所述第三密钥的标识可以携带在报文2的keyid字段中。
[1700]
在一种实现方式中,在接收所述第一协议报文之前,所述方法还包括:
[1701]
向所述第二通信装置发送第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1702]
在一种实现方式中,所述第三密钥包括所述第一通信装置中存储的第一psk。
[1703]
在一种实现方式中,在向所述第二通信装置发送所述第二协议报文之前,所述方法还包括:
[1704]
接收来自于所述第二通信装置的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
[1705]
此处提及的第三协议报文,可以对应方法100中的报文1。
[1706]
在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
[1707]
在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
[1708]
此处提及的第一身份认证信息,可以对应方法100中的身份认证信息1。
[1709]
在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
[1710]
在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1711]
所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1712]
此处提及的第四密钥,可以对应方法100中公式(1)中的密钥1。
[1713]
在一种实现方式中,所述方法还包括:
[1714]
利用所述第一身份认证信息对所述第二通信装置进行身份认证。
[1715]
在一种实现方式中,所述利用所述第一身份认证信息对所述第二通信装置进行身份认证,包括:
[1716]
利用所述第四密钥对目标字段进行计算,得到第三身份认证信息;
[1717]
将所述第三身份认证信息和所述第一协议报文中携带的所述第一身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:
[1718]
第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1719]
在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第三身份认证信息,包括:
[1720]
利用所述第四密钥对所述目标字段进行计算,得到第一计算结果;
[1721]
利用所述第一密钥对所述第一计算结果进行加密,得到所述第三身份认证信息。
[1722]
在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
[1723]
此处提及的第三psk,可以是不同于前述第一psk的另外一个psk。
[1724]
在一种实现方式中,所述第四密钥是由第三psk派生得到的,所述第一通信装置中存储有所述第三psk。
[1725]
在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
[1726]
在一种实现方式中,所述方法还包括:
[1727]
向所述第二通信装置发送第四协议报文,所述第四协议报文中携带第二指示信息,所述第二指示信息用于指示所述第一通信装置已保存所述第二认证密钥。
[1728]
此处提及的第四协议报文,可以对应方法100中的报文4;该第一指示信息可以携带在报文4中的密钥材料确认信息中。
[1729]
在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段包括所述第二指示信息。
[1730]
在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
[1731]
此处提及的第二完整性验证信息,可以携带在方法100的报文4的icv字段中。
[1732]
在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
[1733]
此处提及的第二身份认证信息,可以对应方法100中的身份认证信息2。
[1734]
在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
[1735]
在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1736]
所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
[1737]
在一种实现方式中,所述方法还包括:
[1738]
接收来自于所述第二通信装置的第五协议报文,所述第五协议报文中携带身份认证结果和认证密钥更新结果。
[1739]
此处提及的第五协议报文,可以对应方法100中的报文5。
[1740]
在一种实现方式中,所述方法还包括:
[1741]
若所述第五协议报文中的身份认证结果指示身份认证失败,或者,若所述第五协议报文中的认证密钥更新结果指示认证密钥更新失败,则删除所述第二认证密钥。
[1742]
在一种实现方式中,所述方法还包括:
[1743]
向所述第二通信装置发送第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
[1744]
此处提及的第六协议报文,可以对应方法100中的报文6。
[1745]
在一种实现方式中,所述方法还包括:
[1746]
对所述第五协议报文进行完整性验证。
[1747]
在一种实现方式中,
[1748]
所述第一通信装置保存有第一psk,所述第一协议报文中包括psk密钥材料,所述 psk密钥材料用于生成更新的第二psk,所述第一通信装置在所述第一psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第一通信装置在第二psk的老化周期内基于所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理;所述方法还包括:
[1749]
根据所述psk密钥材料得到所述第二psk。
[1750]
此处提及的psk密钥材料,可以对应方法100或者方法300中的psk密钥材料1;此处提及的第一psk,可以对应方法100或者方法300中的psk1;此处提及的第二psk,可以对应方法100或者方法300中的psk2。
[1751]
在一种实现方式中,所述第一通信装置保存有第一数据密钥,所述第一协议报文中包括数据密钥材料,所述数据密钥材料用于生成更新的第二数据密钥,所述第一通信装置在所述第一数据密钥的老化周期内基于所述第一数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理,所述第一通信装置在第二数据密钥的老化周期内基于所述第二数据密钥对所述第一通信装置和所述第二通信装置之间交互的数据报文进行处理;所述方法还包括:
[1752]
根据所述数据密钥材料得到所述第二数据密钥。
[1753]
此处提及的数据密钥材料,可以对应方法100中的数据密钥材料1;此处提及的第二数据密钥,可以对应方法100中的更新的数据密钥。
[1754]
在一种实现方式中,所述第二数据密钥包括以下任意一项或者多项:
[1755]
完整性计算密钥和加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
[1756]
在一种实现方式中,所述第一协议报文包括:
[1757]
eap头、eap扩展头和关键字字段。
[1758]
其中,eap头可以对应图3c中的eap header字段;eap扩展头可以对应图3c中的 eap type字段;关键字字段可以对应图3c中的其它字段。
[1759]
在一种实现方式中,所述第一认证密钥材料携带在所述关键字字段中。
[1760]
在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:
[1761]
协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
[1762]
其中:协议版本号字段可以对应图3c中的flags字段;会话标识字段可以对应图3c 中的session id字段;密钥标识字段可以对应图3c中的keyid字段;加密数据字段可以对应图3c中的encrypted payload字段;随机数字段可以对应图3b或者图3a中的nounce字段、身份标识字段可以对应图3a或者图3b中的id字段和完整性验证字段可以对应图3c 中的icv字段。
[1763]
在一种实现方式中,所述第一认证密钥材料携带在所述加密数据字段中。
[1764]
在一种实现方式中,所述方法还包括:
[1765]
向所述第二通信装置发送第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。
[1766]
此处提及的第三指示信息,可以对应方法100中的指示信息1。
[1767]
在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
[1768]
在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的载荷payload 字段中。
[1769]
在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的通知 notification payload字段中。
[1770]
在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的扩展tlv字段中。
[1771]
在一种实现方式中,所述方法还包括:
[1772]
向所述第二通信装置发送第四指示信息,所述第四指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。
[1773]
此处提及的第四指示信息,可以对应方法300中的指示信息1’。
[1774]
在一种实现方式中,所述第四指示信息携带在基于ike协议的报文的notificationpayload字段中。
[1775]
在一种实现方式中,所述第四指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
[1776]
在一种实现方式中,所述方法还包括:向所述第二通信装置发送第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二认证密钥。
[1777]
此处提及的第七协议报文,可以对应方法300中的报文4。
[1778]
在一种实现方式中,所述第七协议报文中包括第五指示信息,所述第五指示信息用于指示所述第一通信装置已保存所述第二认证密钥。
[1779]
此处提及的第五指示信息,可以对应方法300中提及的密钥更新结果。
[1780]
在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第五指示信息携带在所述第七协议报文的通知消息类型字段中。
[1781]
在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
[1782]
在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_sa
exchange报文。
[1783]
在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
[1784]
在一种实现方式中,所述身份认证密钥和所述完整性计算密钥相同。
[1785]
在一种实现方式中,所述第一通信装置为车载装置。
[1786]
在一种实现方式中,所述第二通信装置为车载装置。
[1787]
本技术实施例还提供了一种认证密钥的更新方法900,可参见图11b,该图为本技术实施例提供的一种认证密钥的更新方法的流程示意图。图11b所示的方法900,可以由第二通信装置执行,第二通信装置,可以为以上实施例中提及的通信装置1,方法900中的第一通信装置,可以为以上实施例中提及的通信装置2;图11b所示的方法900,可以应用具体实现以上实施例提及的方法100、方法200以及方法300,用于执行以上方法100、方法 200以及方法300中由通信装置1执行的步骤,该方法900例如可以包括如下s901-s902。
[1788]
s901:获取第一认证密钥材料,所述第一认证密钥材料用于指示第一通信装置生成第二认证密钥,所述第一认证密钥用于在第一认证密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的认证报文进行处理,所述第二认证密钥用于在第二认证密钥的老化周期内对所述第一通信装置和所述第二通信装置之间交互的认证报文进行处理。
[1789]
s902:在所述第一认证密钥的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一认证密钥材料;其中:所述第一通信装置和所述第二通信装置之间利用非以太接口通信,和/或,所述第一通信装置或所述第二通信装置不使用非对称密钥算法。
[1790]
在一种实现方式中,所述方法还包括:
[1791]
保存所述第一认证密钥材料。
[1792]
在一种实现方式中,所述方法还包括:
[1793]
接收所述第一通信装置发送的第三认证密钥材料;
[1794]
根据所述第三认证密钥材料获得所述第二认证密钥。
[1795]
在一种实现方式中,所述方法还包括:
[1796]
根据所述第一认证密钥材料得到所述第二认证密钥。
[1797]
在一种实现方式中,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:
[1798]
在所述第二认证密钥的老化周期开始之前,根据所述第一认证密钥材料得到所述第二认证密钥。
[1799]
在一种实现方式中,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:
[1800]
将所述第一认证密钥材料确定为所述第二认证密钥。
[1801]
在一种实现方式中,所述根据所述第一认证密钥材料得到所述第二认证密钥,包括:
[1802]
根据所述第一认证密钥材料和第一密钥派生算法,得到所述第二认证密钥。
[1803]
在一种实现方式中,所述根据所述第一认证密钥材料和第一密钥派生算法,得到
所述第二认证密钥,包括:
[1804]
利用第一算法对所述第一认证密钥材料进行计算,得到中间值;
[1805]
根据所述中间值和所述第一密钥派生算法,生成所述第二认证密钥。
[1806]
在一种实现方式中,所述方法还包括:
[1807]
保存所述第二认证密钥。
[1808]
在一种实现方式中,所述第二认证密钥包括以下任意一项或者多项:
[1809]
完整性计算密钥、加密密钥、密钥派生密钥和身份认证密钥,所述完整性计算密钥用于对身份认证报文进行完整性计算,所述加密密钥用于对身份认证报文进行加密,所述密钥派生密钥用于派生其它密钥,所述身份认证密钥用于计算认证报文中的身份认证信息。
[1810]
在一种实现方式中,所述第一认证密钥材料包括随机数。
[1811]
在一种实现方式中,所述第一认证密钥材料,包括以下任意一项或者多项:
[1812]
用于生成所述完整性计算密钥的随机数、用于生成所述加密密钥的随机数、用于生成所述密钥派生密钥的随机数以及用于生成所述身份认证密钥的随机数。
[1813]
在一种实现方式中,所述身份认证密钥和所述完整性计算密钥相同。
[1814]
在一种实现方式中,所述第一协议报文为基于psk的扩展认证协议eap-psk的报文。
[1815]
在一种实现方式中,所述第一协议报文包括扩展的类型长度值tlv字段,所述扩展的 tlv字段包括所述第一认证密钥材料。
[1816]
在一种实现方式中,在所述第一协议报文中,利用第一密钥加密所述第一认证密钥材料。
[1817]
在一种实现方式中,所述第一协议报文还包括第一完整性验证信息,所述第一完整性验证信息用于对所述第一协议报文进行完整性验证。
[1818]
在一种实现方式中,所述第一协议报文中携带所述第一密钥的标识。
[1819]
在一种实现方式中,所述第一协议报文包括第二密钥的标识,所述第二密钥的标识用于标识第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1820]
在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
[1821]
接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生所述第一密钥。
[1822]
在一种实现方式中,在向所述第一通信装置发送所述第一协议报文之前,所述方法还包括:
[1823]
接收所述第一通信装置发送的第二协议报文,所述第二协议报文中携带第三密钥的标识,所述第三密钥的标识用于标识第三密钥,所述第三密钥用于派生第二密钥,所述第二密钥用于计算所述第一完整性验证信息。
[1824]
在一种实现方式中,所述第三密钥包括所述第一通信装置和所述第二通信装置中存储的第一psk。
[1825]
在一种实现方式中,在接收所述第一通信装置发送的第二协议报文,所述方法还包括:
[1826]
向所述第一通信装置发送的第三协议报文,所述第三协议报文用于请求对所述第二通信装置进行身份认证。
[1827]
在一种实现方式中,所述第三协议报文中携带所述第三密钥的标识。
[1828]
在一种实现方式中,所述第一协议报文中包括第一身份认证信息,所述第一身份认证信息用于对所述第二通信装置进行身份认证。
[1829]
在一种实现方式中,在所述第一协议报文中,通过所述第一密钥加密所述第一身份认证信息。
[1830]
在一种实现方式中,所述第一身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1831]
所述第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1832]
在一种实现方式中,所述第四密钥由所述第三密钥派生得到。
[1833]
在一种实现方式中,所述第四密钥是所述第一通信装置和所述第二通信装置中存储的第三psk派生得到的。
[1834]
在一种实现方式中,所述第二协议报文中携带所述第三psk的标识,所述第三psk 的标识用于标识所述第三psk。
[1835]
在一种实现方式中,所述方法还包括:
[1836]
接收所述第一通信装置发送的第四协议报文,所述第四协议报文中携带第一指示信息,所述第一指示信息用于指示所述第一通信装置已保存所述第二认证密钥。
[1837]
在一种实现方式中,所述第四协议报文包括扩展的tlv字段,所述扩展的tlv字段包括所述第一指示信息。
[1838]
在一种实现方式中,所述第四协议报文中携带第二完整性验证信息,所述第二完整性验证信息用于对所述第四协议报文进行完整性验证。
[1839]
在一种实现方式中,所述第四协议报文中包括第二身份认证信息,所述第二身份认证信息用于对所述第一通信装置进行身份认证。
[1840]
在一种实现方式中,在所述第四协议报文中,通过所述第一密钥加密所述第二身份认证信息。
[1841]
在一种实现方式中,所述第二身份认证信息根据第四密钥对以下一项或者多项计算得到:
[1842]
所述第二协议报文中的部分或者全部字段、所述第三协议报文中的部分或者全部字段。
[1843]
在一种实现方式中,所述方法还包括:
[1844]
利用所述第二身份认证信息对所述第一通信装置进行身份认证。
[1845]
在一种实现方式中,所述利用所述第二身份认证信息对所述第一通信装置进行身份认证,包括:
[1846]
利用所述第四密钥对目标字段进行计算,得到第四身份认证信息;
[1847]
将所述第四身份认证信息和所述第四协议报文中携带的所述第二身份认证信息进行匹配验证;其中,所述目标字段包括以下一项或者多项:
[1848]
第三协议报文的部分或者全部字段、所述第二协议报文的部分或者全部字段。
[1849]
在一种实现方式中,所述利用所述第四密钥对目标字段进行计算,得到第四身份认证信息,包括:
[1850]
利用所述第四密钥对所述目标字段进行计算,得到第二计算结果;
[1851]
利用所述第一密钥对所述第二计算结果进行加密,得到所述第四身份认证信息。
[1852]
在一种实现方式中,所述方法还包括:
[1853]
向所述第一通信装置发送第五协议报文,所述第五协议报文中携带身份认证结果和认证密钥更新结果。
[1854]
在一种实现方式中,所述方法还包括:
[1855]
接收所述第一通信装置发送的第六协议报文,所述第六协议报文用于指示所述第一通信装置接收到了所述第五协议报文。
[1856]
在一种实现方式中,
[1857]
所述第二通信装置保存有第一psk,所述第一协议报文中还包括psk密钥材料,所述 psk密钥材料用于指示所述第一通信装置生成更新的第二psk,所述第二通信装置在所述第一psk的老化周期内基于所述第一psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二通信装置在第二psk的老化周期内基于所述第二psk对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
[1858]
在一种实现方式中,所述方法还包括:
[1859]
根据所述psk密钥材料得到所述第二psk。
[1860]
在一种实现方式中,所述第二通信装置保存有第一数据密钥,所述第一协议报文中还包括数据密钥材料,所述数据密钥材料用于指示所述第一通信装置生成更新的第二数据密钥,所述第二通信装置在所述第一数据密钥的老化周期内基于所述第一数据密钥对所述第一通信装置和所述第二通信装置之间交互的身份数据报文进行处理,所述第二通信装置在第二数据密钥的老化周期内基于所述第二数据密钥对所述第一通信装置和所述第二通信装置之间交互的身份数据报文进行处理。
[1861]
在一种实现方式中,所述方法还包括:
[1862]
根据所述数据密钥材料得到所述第二数据密钥。
[1863]
在一种实现方式中所述第二数据密钥包括以下任意一项或者多项:
[1864]
完整性计算密钥和加密密钥,所述完整性计算密钥用于对数据报文进行完整性计算,所述加密密钥用于对数据报文进行加密。
[1865]
在一种实现方式中,所述第一协议报文包括:
[1866]
扩展认证协议eap头、eap扩展头和关键字字段。
[1867]
在一种实现方式中,所述第一认证密钥材料携带在所述关键字字段中。
[1868]
在一种实现方式中,所述关键字字段包括以下任意一个或者多个字段:
[1869]
协议版本号字段、会话标识字段、密钥标识字段、加密数据字段、随机数字段、身份标识字段和完整性验证字段。
[1870]
在一种实现方式中,所述第一认证密钥材料携带在所述加密数据字段中。
[1871]
在一种实现方式中,所述方法还包括:
[1872]
接收所述第一通信装置发发送的第二指示信息,所述第二指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。
[1873]
在一种实现方式中,所述第一协议报文为基于网络密钥交换协议ike的报文。
[1874]
在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的载荷payload 字段中。
[1875]
在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的通知 notification payload字段中。
[1876]
在一种实现方式中,所述第一认证密钥材料携带在所述第一协议报文的扩展tlv字段中。
[1877]
在一种实现方式中,所述方法还包括:
[1878]
接收所述第一通信装置发送的第三指示信息,所述第三指示信息用于指示所述第一通信装置具备自动更新认证密钥的能力。
[1879]
在一种实现方式中,所述第三指示信息携带在基于ike协议的报文的notificationpayload字段中。
[1880]
在一种实现方式中,所述第三指示信息携带在所述基于ike协议的报文的通知消息类型字段中,所述基于ike协议的报文的notification payload字段包括所述通知消息类型字段。
[1881]
在一种实现方式中,所述方法还包括:
[1882]
接收所述第一通信装置发送的第七协议报文,所述第七协议报文用于指示所述第一通信装置已保存所述第二认证密钥。
[1883]
在一种实现方式中,所述第七协议报文中包括第四指示信息,所述第四指示信息用于指示所述第一通信装置已保存所述第二认证密钥。
[1884]
在一种实现方式中,所述第七协议报文为基于ike协议的报文,所述第四指示信息携带在所述第七协议报文的通知消息类型字段中。
[1885]
在一种实现方式中,所述第一协议报文为认证交换auth exchange报文。
[1886]
在一种实现方式中,所述第一协议报文为创建子安全关联交换create_child_saexchange报文。
[1887]
在一种实现方式中,所述第一协议报文为通知交换informational exchange报文。
[1888]
在一种实现方式中,所述第一通信装置为车载装置。
[1889]
在一种实现方式中,所述第二通信装置为车载装置。
[1890]
需要说明的是,方法900是与方法800对应的由第二通信装置执行的步骤,因此,关于方法900,可以参考上文对于方法800的描述部分,此处不做重复描述。
[1891]
本技术实施例还提供了一种基于psk进行macsec通信的方法1000,可参见图12a,该图为本技术实施例提供的一种基于psk进行macsec通信的方法的流程示意图。图12a 所示的方法1000,可以由第一通信装置执行,第一通信装置,可以为以上实施例中提及的通信装置2,方法1000中的第二通信装置,可以为以上实施例中提及的通信装置1;图12a 所示的方法1000,可以应用具体实现以上实施例提及的方法100、方法200以及方法300,用于执行以上方法100、方法200以及方法300中由通信装置2执行的相关步骤,该方法 1000例如可以包括如下s1001-s1003。
[1892]
s1001:在第一预共享密钥psk的老化周期内接收第二通信装置发送的第一协议报
文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成第二psk,所述第一psk用于在所述第一psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二psk用于在第二psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
[1893]
s1002:根据所述第一psk密钥材料得到所述第二psk。
[1894]
s1003:在所述第二psk的老化周期内,利用所述第二psk派生媒体接入控制安全 macsec密钥。
[1895]
此处提及的第一psk,可以对应以上方法100、方法200以及方法300中的psk1;此处提及的第一协议报文,可以对应方法100、方法200以及方法300中的报文3;此处提及的第一psk密钥材料,可以对应方法100、方法200以及方法300中的psk密钥材料1;此处提及的第二psk,可以对应以上方法100、方法200以及方法300中的psk2。
[1896]
在一种实现方式中,所述方法还包括:
[1897]
将所述第二psk保存至所述第一通信装置的非易失存储区。
[1898]
在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:
[1899]
将所述第二psk作为安全连接关联密钥cak派生所述macsec密钥。
[1900]
在一种实现方式中,所述利用所述第二psk派生macsec密钥,包括:
[1901]
根据所述第二psk生成主会话密钥msk;
[1902]
利用所述msk派生安全连接关联密钥cak;
[1903]
利用所述cak派生媒体接入控制安全macsec密钥。
[1904]
在一种实现方式中,所述方法还包括:
[1905]
在所述第一psk的老化周期内,利用所述第一psk派生macsec密钥。
[1906]
另外,在方法1000中,第一通信装置还可以执行以上方法400中第一通信装置执行的其它步骤,具体可参考上文对于方法400的描述部分,此处不再重复描述。
[1907]
本技术实施例还提供了一种基于psk进行macsec通信的方法1100,可参见图12b,该图为本技术实施例提供的一种基于psk进行macsec通信的方法的流程示意图。图12b 所示的方法1100,可以由第二通信装置执行,第二通信装置,可以为以上实施例中提及的通信装置1,方法1100中的第一通信装置,可以为以上实施例中提及的通信装置2;图12b 所示的方法1100,可以应用具体实现以上实施例提及的方法100、方法200以及方法300,用于执行以上方法100、方法200以及方法300中由通信装置1执行的相关步骤,该方法 1100例如可以包括如下s1101-s1102。
[1908]
s1101:获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成第二psk,所述第一psk用于在第一psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理,所述第二psk用于在第二psk的老化周期内对所述第一通信装置和所述第二通信装置之间交互的报文进行处理。
[1909]
s1102:在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1910]
在一种实现方式中,所述方法还包括:
[1911]
保存所述第一psk密钥材料。
[1912]
在一种实现方式中,所述方法还包括:
1300用于执行以上实施例中的方法100时,通信装置1300相当于方法100中的通信装置 2。收发单元1301用于执行方法100中通信装置2执行的收发操作。处理单元1302用于执行方法100中通信装置2执行的除收发操作之外的操作。例如:收发单元1301用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理单元1302用于根据所述密钥材料1获得更新的密钥。
[1932]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法200,当通信装置 1300用于执行以上实施例中的方法200时,通信装置1300相当于方法200中的通信装置 1。收发单元1301用于执行方法200中通信装置1执行的收发操作。处理单元1302用于执行方法200中通信装置1执行的除收发操作之外的操作。例如:处理单元1302用于获取密钥材料1,并获得包括密钥材料1的报文3;收发单元1301用于将报文3发送给通信装置2。
[1933]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法200,当通信装置 1300用于执行以上实施例中的方法200时,通信装置1300相当于方法200中的通信装置 2。收发单元1301用于执行方法200中通信装置2执行的收发操作。处理单元1302用于执行方法200中通信装置2执行的除收发操作之外的操作。例如:收发单元1301用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理单元1302用于根据所述密钥材料1获得更新的密钥。
[1934]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法300,当通信装置 1300用于执行以上实施例中的方法300时,通信装置1300相当于方法300中的通信装置 1。收发单元1301用于执行方法300中通信装置1执行的收发操作。处理单元1302用于执行方法300中通信装置1执行的除收发操作之外的操作。例如:处理单元1302用于获取密钥材料1,并获得包括密钥材料1的报文3;收发单元1301用于将报文3发送给通信装置2。
[1935]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法300,当通信装置 1300用于执行以上实施例中的方法300时,通信装置1300相当于方法300中的通信装置 2。收发单元1301用于执行方法300中通信装置2执行的收发操作。处理单元1302用于执行方法300中通信装置2执行的除收发操作之外的操作。例如:收发单元1301用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理单元1302用于根据所述密钥材料1获得更新的密钥。
[1936]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法300’,当通信装置 1300用于执行以上实施例中的方法300’时,通信装置1300相当于方法300’中的第一通信装置。收发单元1301用于执行方法300’中第一通信装置执行的收发操作。处理单元 1302用于执行方法300’中第一通信装置执行的除收发操作之外的操作。例如:处理单元 1302用于在第一psk的老化周期内,确定所述第一通信装置不能基于所述第一psk对第一通信装置和第二通信装置之间交互的报文进行处理,并基于所述第一通信装置本地保存的第二psk对第一通信装置和第二通信装置之间交互的报文进行处理。在一个示例中,收发单元用于向控制管理设备发送告警信息,所述告警信息用于指示在所述第一psk的老化周期内,所述第一通信装置不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。
[1937]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法400,当通信装置 1300用于执行以上实施例中的方法400时,通信装置1300相当于方法400中的第一通信装
置。收发单元1301用于执行方法400中第一通信装置执行的收发操作。处理单元1302 用于执行方法400中第一通信装置执行的除收发操作之外的操作。例如:收发单元1301 用于在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成更新的第二psk;处理单元 1302用于根据所述第一psk密钥材料得到所述第二psk。
[1938]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法500,当通信装置 1300用于执行以上实施例中的方法500时,通信装置1300相当于方法500中的第二通信装置。收发单元1301用于执行方法500中第二通信装置执行的收发操作。处理单元1302 用于执行方法500中第二通信装置执行的除收发操作之外的操作。例如:处理单元1302 用于获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成更新的第二psk;收发单元1301用于在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1939]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法600,当通信装置 1300用于执行以上实施例中的方法600时,通信装置1300相当于方法600中的第一通信装置。收发单元1301用于执行方法600中第一通信装置执行的收发操作。处理单元1302 用于执行方法600中第一通信装置执行的除收发操作之外的操作。例如:收发单元1301 用于在第一数据密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一数据密钥材料,所述第一数据密钥材料用于生成更新的第二数据密钥;处理单元1302用于根据所述第一数据密钥材料得到所述第二数据密钥。
[1940]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法700,当通信装置1300用于执行以上实施例中的方法700时,通信装置1300相当于方法700中的第二通信装置。收发单元1301用于执行方法700中第二通信装置执行的收发操作。处理单元1302 用于执行方法700中第二通信装置执行的除收发操作之外的操作。例如:处理单元1302 用于获取第一数据密钥材料,所述第一数据密钥材料用于指示第一通信装置生成更新的第二数据密钥;收发单元1301用于在所述第一数据密钥的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一数据密钥材料。
[1941]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法800,当通信装置 1300用于执行以上实施例中的方法800时,通信装置1300相当于方法800中的第一通信装置。收发单元1301用于执行方法800中第一通信装置执行的收发操作。处理单元1302 用于执行方法800中第一通信装置执行的除收发操作之外的操作。例如:收发单元1301 用于在第一认证密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一认证密钥材料,所述第一认证密钥材料用于生成更新的第二认证密钥;处理单元1302用于根据所述第一认证密钥材料得到所述第二认证密钥。
[1942]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法900,当通信装置 1300用于执行以上实施例中的方法900时,通信装置1300相当于方法900中的第二通信装置。收发单元1301用于执行方法900中第二通信装置执行的收发操作。处理单元1302 用于执行方法900中第二通信装置执行的除收发操作之外的操作。例如:处理单元1302 用于获取第一认证密钥材料,所述第一认证密钥材料用于指示第一通信装置生成更新的第二认证密钥;收发单元1301用于在所述第一认证密钥的老化周期内向所述第一通信装置发送第一
协议报文,所述第一协议报文中包括所述第一认证密钥材料。
[1943]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法1000,当通信装置 1300用于执行以上实施例中的方法1000时,通信装置1300相当于方法1000中的第一通信装置。收发单元1301用于执行方法1000中第一通信装置执行的收发操作。处理单元1302 用于执行方法1000中第一通信装置执行的除收发操作之外的操作。例如:收发单元1301 用于在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成更新的第二psk;处理单元 1302用于根据所述第一psk密钥材料得到所述第二psk,并在所述第二psk的老化周期内利用所述第二psk派生macsec密钥。
[1944]
在一个示例中,所述通信装置1300可以执行以上实施例中的方法1100,当通信装置 1300用于执行以上实施例中的方法1100时,通信装置1300相当于方法1100中的第二通信装置。收发单元1301用于执行方法1100中第二通信装置执行的收发操作。处理单元1302 用于执行方法1100中第二通信装置执行的除收发操作之外的操作。例如:处理单元1302 用于获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成更新的第二psk;收发单元1301用于在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1945]
此外,本技术实施例还提供了一种通信装置1400,参见图14所示,图14为本技术实施例提供的一种通信装置的结构示意图。该通信装置1400包括通信接口1401和与通信接口1401连接的处理器1402。该通信装置1400可以用于执行以上实施例中的方法100’、方法100、方法200、方法300、方法300’、方法400、方法500、方法600、方法700、方法800、方法900、方法1000或者方法1100。
[1946]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法100’,当通信装置 1400用于执行以上实施例中的方法100’时,通信装置1400相当于方法100’中的通信装置2。通信接口1401用于执行方法100’中通信装置2执行的收发操作。处理器1402用于执行方法100’中通信装置2执行的除收发操作之外的操作。例如:处理器1402用于在 psk1的老化周期内,确定通信装置2不能基于psk1对通信装置1和通信装置2之间交互的报文进行处理,并基于通信装置2本地保存的psk对通信装置1和通信装置2之间交互的报文进行处理。在一个示例中,通信接口1401用于向控制管理设备发送告警信息,所述告警信息用于指示在所述psk1的老化周期内,所述通信装置2不能基于psk1对通信装置1和通信装置2之间交互的报文进行处理。
[1947]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法100,当通信装置 1400用于执行以上实施例中的方法100时,通信装置1400相当于方法100中的通信装置 1。通信接口1401用于执行方法100中通信装置1执行的收发操作。处理器1402用于执行方法100中通信装置1执行的除收发操作之外的操作。例如:处理器1402用于获取密钥材料1,并获得包括密钥材料1的报文3;通信接口1401用于将报文3发送给通信装置 2。
[1948]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法100,当通信装置1400用于执行以上实施例中的方法100时,通信装置1400相当于方法100中的通信装置 2。通信接口1401用于执行方法100中通信装置2执行的收发操作。处理器1402用于执行方法100中通信装置2执行的除收发操作之外的操作。例如:通信接口1401用于在第一密钥的老
化周期内接收报文3,报文3中包括密钥材料1;处理器1402用于根据所述密钥材料1获得更新的密钥。
[1949]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法200,当通信装置 1400用于执行以上实施例中的方法200时,通信装置1400相当于方法200中的通信装置 1。通信接口1401用于执行方法200中通信装置1执行的收发操作。处理器1402用于执行方法200中通信装置1执行的除收发操作之外的操作。例如:处理器1402用于获取密钥材料1,并获得包括密钥材料1的报文3;通信接口1401用于将报文3发送给通信装置 2。
[1950]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法200,当通信装置 1400用于执行以上实施例中的方法200时,通信装置1400相当于方法200中的通信装置 2。通信接口1401用于执行方法200中通信装置2执行的收发操作。处理器1402用于执行方法200中通信装置2执行的除收发操作之外的操作。例如:通信接口1401用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理器1402用于根据所述密钥材料1获得更新的密钥。
[1951]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法300,当通信装置 1400用于执行以上实施例中的方法300时,通信装置1400相当于方法300中的通信装置 1。通信接口1401用于执行方法300中通信装置1执行的收发操作。处理器1402用于执行方法300中通信装置1执行的除收发操作之外的操作。例如:处理器1402用于获取密钥材料1,并获得包括密钥材料1的报文3;通信接口1401用于将报文3发送给通信装置 2。
[1952]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法300,当通信装置 1400用于执行以上实施例中的方法300时,通信装置1400相当于方法300中的通信装置 2。通信接口1401用于执行方法300中通信装置2执行的收发操作。处理器1402用于执行方法300中通信装置2执行的除收发操作之外的操作。例如:通信接口1401用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理器1402用于根据所述密钥材料1获得更新的密钥。
[1953]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法300’,当通信装置 1400用于执行以上实施例中的方法300’时,通信装置1400相当于方法300’中的第一通信装置。通信接口1401用于执行方法300’中第一通信装置执行的收发操作。处理器1402 用于执行方法300’中第一通信装置执行的除收发操作之外的操作。例如:处理器1402用于在第一psk的老化周期内,确定所述第一通信装置不能基于所述第一psk对第一通信装置和第二通信装置之间交互的报文进行处理,并基于所述第一通信装置本地保存的第二 psk对第一通信装置和第二通信装置之间交互的报文进行处理。在一个示例中,收发单元用于向控制管理设备发送告警信息,所述告警信息用于指示在所述第一psk的老化周期内,所述第一通信装置不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。
[1954]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法400,当通信装置 1400用于执行以上实施例中的方法400时,通信装置1400相当于方法400中的第一通信装置。通信接口1401用于执行方法400中第一通信装置执行的收发操作。处理器1402用于执行方法400中第一通信装置执行的除收发操作之外的操作。例如:通信接口1401用于在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成更新的第二psk;处理器1402 用于根据所述
第一psk密钥材料得到所述第二psk。
[1955]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法500,当通信装置 1400用于执行以上实施例中的方法500时,通信装置1400相当于方法500中的第二通信装置。通信接口1401用于执行方法500中第二通信装置执行的收发操作。处理器1402用于执行方法500中第二通信装置执行的除收发操作之外的操作。例如:处理器1402用于获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成更新的第二 psk;通信接口1401用于在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1956]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法600,当通信装置 1400用于执行以上实施例中的方法600时,通信装置1400相当于方法600中的第一通信装置。通信接口1401用于执行方法600中第一通信装置执行的收发操作。处理器1402用于执行方法600中第一通信装置执行的除收发操作之外的操作。例如:通信接口1401用于在第一数据密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一数据密钥材料,所述第一数据密钥材料用于生成更新的第二数据密钥;处理器1402用于根据所述第一数据密钥材料得到所述第二数据密钥。
[1957]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法700,当通信装置 1400用于执行以上实施例中的方法700时,通信装置1400相当于方法700中的第二通信装置。通信接口1401用于执行方法700中第二通信装置执行的收发操作。处理器1402用于执行方法700中第二通信装置执行的除收发操作之外的操作。例如:处理器1402用于获取第一数据密钥材料,所述第一数据密钥材料用于指示第一通信装置生成更新的第二数据密钥;通信接口1401用于在所述第一数据密钥的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一数据密钥材料。
[1958]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法800,当通信装置 1400用于执行以上实施例中的方法800时,通信装置1400相当于方法800中的第一通信装置。通信接口1401用于执行方法800中第一通信装置执行的收发操作。处理器1402用于执行方法800中第一通信装置执行的除收发操作之外的操作。例如:通信接口1401用于在第一认证密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一认证密钥材料,所述第一认证密钥材料用于生成更新的第二认证密钥;处理器1402用于根据所述第一认证密钥材料得到所述第二认证密钥。
[1959]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法900,当通信装置 1400用于执行以上实施例中的方法900时,通信装置1400相当于方法900中的第二通信装置。通信接口1401用于执行方法900中第二通信装置执行的收发操作。处理器1402用于执行方法900中第二通信装置执行的除收发操作之外的操作。例如:处理器1402用于获取第一认证密钥材料,所述第一认证密钥材料用于指示第一通信装置生成更新的第二认证密钥;通信接口1401用于在所述第一认证密钥的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一认证密钥材料。
[1960]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法1000,当通信装置 1400用于执行以上实施例中的方法1000时,通信装置1400相当于方法1000中的第一通信装置。通信接口1401用于执行方法1000中第一通信装置执行的收发操作。处理器1402 用
于执行方法1000中第一通信装置执行的除收发操作之外的操作。例如:通信接口1401 用于在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成更新的第二psk;处理器1402 用于根据所述第一psk密钥材料得到所述第二psk,并在所述第二psk的老化周期内利用所述第二psk派生macsec密钥。
[1961]
在一个示例中,所述通信装置1400可以执行以上实施例中的方法1100,当通信装置 1400用于执行以上实施例中的方法1100时,通信装置1400相当于方法1100中的第二通信装置。通信接口1401用于执行方法1100中第二通信装置执行的收发操作。处理器1402 用于执行方法1100中第二通信装置执行的除收发操作之外的操作。例如:处理器1402用于获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成更新的第二psk;通信接口1401用于在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1962]
此外,本技术实施例还提供了一种通信装置1500,参见图15所示,图15为本技术实施例提供的一种通信装置的结构示意图。
[1963]
该通信装置1500可以用于执行以上实施例中的方法100’、方法100、方法200、方法 300、方法300’、方法400、方法500、方法600、方法700、方法800、方法900、方法 1000或者方法1100。
[1964]
如图15所示,通信装置1500可以包括处理器1510,与所述处理器1510耦合连接的存储器1520,收发器1530。收发器1530例如可以是通信接口,光模块等。处理器1510 可以是中央处理器(英文:central processing unit,缩写:cpu),网络处理器(英文:networkprocessor,缩写:np)或者cpu和np的组合。处理器还可以是专用集成电路(英文: application-specific integrated circuit,缩写:asic),可编程逻辑器件(英文:programmablelogic device,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complexprogrammable logic device,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmablegate array,缩写:fpga),通用阵列逻辑(英文:generic array logic,缩写:gal)或其任意组合。处理器1510可以是指一个处理器,也可以包括多个处理器。存储器1520可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:rom),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:hdd)或固态硬盘(英文:solid-state drive,缩写: ssd);存储器1520还可以包括上述种类的存储器的组合。存储器1520可以是指一个存储器,也可以包括多个存储器。在一个实施方式中,存储器1520中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块1521,处理模块1522和接收模块 1523。处理器1510执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器1510根据所述软件模块的指示而执行的操作。
[1965]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法100’,当通信装置 1500用于执行以上实施例中的方法100’时,通信装置1500相当于方法100’中的通信装置2。收发器1530用于执行方法100’中通信装置2执行的收发操作。处理器1510用于执行方
法100’中通信装置2执行的除收发操作之外的操作。例如:处理器1510用于在 psk1的老化周期内,确定通信装置2不能基于psk1对通信装置1和通信装置2之间交互的报文进行处理,并基于通信装置2本地保存的psk对通信装置1和通信装置2之间交互的报文进行处理。在一个示例中,收发器1530用于向控制管理设备发送告警信息,所述告警信息用于指示在所述psk1的老化周期内,所述通信装置2不能基于psk1对通信装置1和通信装置2之间交互的报文进行处理。
[1966]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法100,当通信装置 1500用于执行以上实施例中的方法100时,通信装置1500相当于方法100中的通信装置 1。收发器1530用于执行方法100中通信装置1执行的收发操作。处理器1510用于执行方法100中通信装置1执行的除收发操作之外的操作。例如:处理器1510用于获取密钥材料1,并获得包括密钥材料1的报文3;收发器1530用于将报文3发送给通信装置2。
[1967]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法100,当通信装置 1500用于执行以上实施例中的方法100时,通信装置1500相当于方法100中的通信装置 2。收发器1530用于执行方法100中通信装置2执行的收发操作。处理器1510用于执行方法100中通信装置2执行的除收发操作之外的操作。例如:收发器1530用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理器1510用于根据所述密钥材料1获得更新的密钥。
[1968]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法200,当通信装置 1500用于执行以上实施例中的方法200时,通信装置1500相当于方法200中的通信装置 1。收发器1530用于执行方法200中通信装置1执行的收发操作。处理器1510用于执行方法200中通信装置1执行的除收发操作之外的操作。例如:处理器1510用于获取密钥材料1,并获得包括密钥材料1的报文3;收发器1530用于将报文3发送给通信装置2。
[1969]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法200,当通信装置 1500用于执行以上实施例中的方法200时,通信装置1500相当于方法200中的通信装置 2。收发器1530用于执行方法200中通信装置2执行的收发操作。处理器1510用于执行方法200中通信装置2执行的除收发操作之外的操作。例如:收发器1530用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理器1510用于根据所述密钥材料1获得更新的密钥。
[1970]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法300,当通信装置 1500用于执行以上实施例中的方法300时,通信装置1500相当于方法300中的通信装置 1。收发器1530用于执行方法300中通信装置1执行的收发操作。处理器1510用于执行方法300中通信装置1执行的除收发操作之外的操作。例如:处理器1510用于获取密钥材料1,并获得包括密钥材料1的报文3;收发器1530用于将报文3发送给通信装置2。
[1971]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法300,当通信装置 1500用于执行以上实施例中的方法300时,通信装置1500相当于方法300中的通信装置 2。收发器1530用于执行方法300中通信装置2执行的收发操作。处理器1510用于执行方法300中通信装置2执行的除收发操作之外的操作。例如:收发器1530用于在第一密钥的老化周期内接收报文3,报文3中包括密钥材料1;处理器1510用于根据所述密钥材料1获得更新的密钥。
[1972]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法300’,当通信装置 1500用于执行以上实施例中的方法300’时,通信装置1500相当于方法300’中的第一通信装置。收发器1530用于执行方法300’中第一通信装置执行的收发操作。处理器1510 用于执行方法300’中第一通信装置执行的除收发操作之外的操作。例如:处理器1510用于在第一psk的老化周期内,确定所述第一通信装置不能基于所述第一psk对第一通信装置和第二通信装置之间交互的报文进行处理,并基于所述第一通信装置本地保存的第二 psk对第一通信装置和第二通信装置之间交互的报文进行处理。在一个示例中,收发单元用于向控制管理设备发送告警信息,所述告警信息用于指示在所述第一psk的老化周期内,所述第一通信装置不能基于第一psk对第一通信装置和第二通信装置之间交互的报文进行处理。
[1973]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法400,当通信装置 1500用于执行以上实施例中的方法400时,通信装置1500相当于方法400中的第一通信装置。收发器1530用于执行方法400中第一通信装置执行的收发操作。处理器1510用于执行方法400中第一通信装置执行的除收发操作之外的操作。例如:收发器1530用于在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成更新的第二psk;处理器1510用于根据所述第一psk密钥材料得到所述第二psk。
[1974]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法500,当通信装置 1500用于执行以上实施例中的方法500时,通信装置1500相当于方法500中的第二通信装置。收发器1530用于执行方法500中第二通信装置执行的收发操作。处理器1510用于执行方法500中第二通信装置执行的除收发操作之外的操作。例如:处理器1510用于获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成更新的第二psk;收发器1530用于在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1975]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法600,当通信装置 1500用于执行以上实施例中的方法600时,通信装置1500相当于方法600中的第一通信装置。收发器1530用于执行方法600中第一通信装置执行的收发操作。处理器1510用于执行方法600中第一通信装置执行的除收发操作之外的操作。例如:收发器1530用于在第一数据密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一数据密钥材料,所述第一数据密钥材料用于生成更新的第二数据密钥;处理器 1510用于根据所述第一数据密钥材料得到所述第二数据密钥。
[1976]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法700,当通信装置 1500用于执行以上实施例中的方法700时,通信装置1500相当于方法700中的第二通信装置。收发器1530用于执行方法700中第二通信装置执行的收发操作。处理器1510用于执行方法700中第二通信装置执行的除收发操作之外的操作。例如:处理器1510用于获取第一数据密钥材料,所述第一数据密钥材料用于指示第一通信装置生成更新的第二数据密钥;收发器1530用于在所述第一数据密钥的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一数据密钥材料。
[1977]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法800,当通信装置 1500用于执行以上实施例中的方法800时,通信装置1500相当于方法800中的第一通信装
置。收发器1530用于执行方法800中第一通信装置执行的收发操作。处理器1510用于执行方法800中第一通信装置执行的除收发操作之外的操作。例如:收发器1530用于在第一认证密钥的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一认证密钥材料,所述第一认证密钥材料用于生成更新的第二认证密钥;处理器 1510用于根据所述第一认证密钥材料得到所述第二认证密钥。
[1978]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法900,当通信装置 1500用于执行以上实施例中的方法900时,通信装置1500相当于方法900中的第二通信装置。收发器1530用于执行方法900中第二通信装置执行的收发操作。处理器1510用于执行方法900中第二通信装置执行的除收发操作之外的操作。例如:处理器1510用于获取第一认证密钥材料,所述第一认证密钥材料用于指示第一通信装置生成更新的第二认证密钥;收发器1530用于在所述第一认证密钥的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一认证密钥材料。
[1979]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法1000,当通信装置 1500用于执行以上实施例中的方法1000时,通信装置1500相当于方法1000中的第一通信装置。收发器1530用于执行方法1000中第一通信装置执行的收发操作。处理器1510 用于执行方法1000中第一通信装置执行的除收发操作之外的操作。例如:收发器1530用于在第一psk的老化周期内接收第二通信装置发送的第一协议报文,所述第一协议报文中包括第一psk密钥材料,所述第一psk密钥材料用于生成更新的第二psk;处理器1510 用于根据所述第一psk密钥材料得到所述第二psk,并在所述第二psk的老化周期内利用所述第二psk派生macsec密钥。
[1980]
在一个示例中,所述通信装置1500可以执行以上实施例中的方法1100,当通信装置 1500用于执行以上实施例中的方法1100时,通信装置1500相当于方法1100中的第二通信装置。收发器1530用于执行方法1100中第二通信装置执行的收发操作。处理器1510 用于执行方法1100中第二通信装置执行的除收发操作之外的操作。例如:处理器1510用于获取第一psk密钥材料,所述第一psk密钥材料用于指示第一通信装置生成更新的第二psk;收发器1530用于在所述第一psk的老化周期内向所述第一通信装置发送第一协议报文,所述第一协议报文中包括所述第一psk密钥材料。
[1981]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上实施例中由第一通信装置执行的步骤。
[1982]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上实施例中由第二通信装置执行的步骤。
[1983]
本技术实施例还提供了一种通信系统,包括以上实施例提及的任一种第一通信装置和任一种第二通信装置。
[1984]
本技术实施例还提供了一种通信设备,包括以上实施例提及的任一种第一通信装置和任一种第二通信装置。在一个示例中,所述通信设备可以为t-box。
[1985]
本技术实施例还提供了一种通信方法,该通信方法由通信设备执行,该通信设备可以包括以上实施例中的第一通信装置和第二通信装置。换言之,在一个示例中,该通信设
备可以执行以上实施例中由第一通信装置执行的步骤以及由第二通信装置执行的步骤。在又一个示例中,该通信设备可以执行以上实施例中由通信装置1执行的步骤以及由通信装置 2执行的步骤。
[1986]
在一个示例中,该通信设备可以为t-box,第一通信装置可以为t-box中的通信实体,第二通信装置也为t-box中的通信实体。
[1987]
在一个示例中,该通信设备可以为t-box,通信装置1可以为t-box中的通信实体,通信装置2也为t-box中的通信实体。
[1988]
本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[1989]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[1990]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[1991]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[1992]
另外,在本技术各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
[1993]
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[1994]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[1995]
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
[1996]
以上,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1