一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种通信方法及装置与流程

2021-10-23 04:55:00 来源:中国专利 TAG:通信 座舱 无线通信 通信技术 网联


1.本发明涉及通信技术、网联车领域,尤其涉及短距离无线通信技术领域,例如座舱域通信。具体涉及一种通信方法及装置。


背景技术:

2.随着社会的不断发展,通信技术与应用呈现出如火如荼的发展态势。智能运输设备、智能家居设备、机器人等基于无线通信技术的智能终端正在逐步进入人们的日常生活中。
3.在通信系统中,节点(为了方便描述称为第二节点)在接入另一节点(为了方便描述称为第一节点)时,都需要向对方节点表明自己的身份,其中,第二节点向第一节点发送自己的身份标识(identification,id)是常用的第二节点向第一节点表明自己身份的方式。
4.但是,节点的真实身份通常关联着节点中的隐私和数据安全。例如,攻击者可以通过节点的身份来追踪用户的位置、获取终端最近处理的业务等,使得用户的隐私、个人数据等遭到泄露。例如,攻击者在10:00时在a处监听到id为“n”的节点正在执行视频上传业务,又在10:30时在b处监听到id为“n”的节点正在执行更新业务,从而可以知道id为“n”的节点在10:00

10:30中间从a处到达了b处,从而可以收集id为“n”的节点的行动轨迹,使得用户的隐私遭到泄露。
5.因此,需要对节点的身份(例如节点的id)进行私密性保护,防止攻击者获取用户的真实身份。


技术实现要素:

6.本技术实施例提供了一种通信方法及装置,能够保护节点的真实id不被泄露,提高数据安全性。
7.第一方面,本技术实施例提供了一种通信方法,包括:
8.发送第一公钥以及所述第一公钥的签名;
9.接收来自第二节点的第一信息,所述第一信息包含身份标识id密文,所述id密文对应于所述第一公钥以及所述第二节点的id;
10.根据所述第一公钥对应的第一私钥解密所述id密文,得到所述第二节点的id;
11.向所述第二节点发送第二信息,所述第二信息包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。进一步的,所述通信方法可以应用于第一节点中。
12.其中,第二节点的id为第二节点的永久id(或者也称为真实id、固定id),例如手机终端的国际移动设备识别码(international mobile equipment identity,imei)就可以理解为手机终端的永久id,通过永久id可以标识节点的身份。
13.本技术实施例中,第二节点通过第一公钥可以对id进行保护得到id密文,从而使
得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,第二节点可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
14.具体实施过程中,所述第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息),所述第二信息也可以称为关联建立信息(具体场景中也可以称为关联建立消息)。
15.在第一方面的一种可能的实施方式中,所述第一公钥为临时公钥,所述第一私钥为临时私钥。
16.其中,临时密钥(包括临时公钥、临时私钥)是一个短期密钥。临时密钥具体可以为生存时长较短的密钥,例如生存时长为1小时的密钥。临时密钥还可以为加密次数较少的密钥,例如只能用于加密1次的密钥,或者只用于加密序号为1

100的数据单元(data unit)的密钥。
17.可以看出,由于临时密钥的存在的时长通常较短,相比长期密钥来说,临时密钥不容易被破解,因此使用临时公钥对真实id进行加密可以提高真实id的私密性。此外,由于长期密钥通常使用的期限较长,因此长期密钥被破解时,所有使用该长期密钥的通信的数据均收到影响,不具有前向安全。而临时密钥由于存在的时长通常较短,即使被破解,也不影响该临时密钥使用之前的通信数据的安全,提高了数据安全性。
18.在第一方面的又一种可能的实施方式中,所述第一公钥为一次性公钥,所述第一私钥为一次性私钥。
19.可以看出,本技术实施例中使用的第一公钥和第一私钥可以是一次性密钥,即只用于该id的加密及解密。例如,使用第一私钥解密该id密文后,可以将该第一私钥删除,从而使得该私钥不容易被攻破,从而保护节点的真实id不被泄露,提高数据安全性。
20.在第一方面的又一种可能的实施方式中,基于数字证书(digital certificate,dc)对应的私钥对所述第一公钥进行签名,得到所述第一公钥的签名;
21.向所述第二节点发送所述dc。
22.其中,数字证书(也可以称为安全证书)是标志身份的一个数字认证,是由证书授权(certificate authority,ca)中心所颁发的一种较为权威与公正的证书。
23.可以看出,dc可以用于验证第一公钥的来源。例如,证书中心为第一节点的公钥pk以及一些信息(例如对第一节点的描述信息等)生成dc,第二节点使用该dc对应的密钥对(即该公钥pk对应的私钥sk),通过“私钥签名,公钥验签”的方式,可以确定第一公钥来源于第一节点。
24.在一种具体的实施方式中,第一节点中存在一个长期密钥对(长期公钥pk和长期私钥sk),ca中心为长期公钥pk做认证,ca中心用自己的私钥cpk,对该长期公钥pk和一些相关信息(例如对第一节点的描述信息)一起加密生成dc。第一节点使用证书对应的私钥生成第一公钥的签名,将第一公钥、第一公钥的签名以及dc发送给第二节点,第二节点使用ca中心的公钥csk解密证书,可以确定该dc为ca颁发的,以及确定该dc中的长期公钥pk为第一节点的公钥,从而认证了长期公钥pk的来源。第二节点使用长期公钥对第一公钥的签名进行
验签,从而确定第一公钥来自第一节点,从而使用第一公钥对id进行加密。
25.在第一方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
26.可选的,该第一指示信息可以为第一信息中包括的第一字段。例如,该第一字段的取值为“0”指示第一信息中包含有所述id密文。这样一来,第一节点可以通过解析第一信息,从而确定是否要执行解密id密文的步骤。进一步的,该第一字段的取值为“1”时,指示第一信息中包含临时id。再如,第一信息中可以包含id类型,该id类型可以为id密文、临时id等等中的一项或者多项。
27.在第一方面的又一种可能的实施方式中,所述方法还包括:
28.确定所述第二节点的身份认证通过;
29.为所述第二节点分配所述临时id。
30.在第一方面的又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述确定所述第二节点的身份认证通过,包括:
31.根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
32.向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
33.接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
34.根据所述第二身份认证信息确认所述第二节点的身份认证通过。
35.可以看出,通过密钥协商可以生成第一密钥,使用该第一密钥生成第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
36.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
37.在第一方面的又一种可能的实施方式中,所述方法还包括:
38.接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
39.第二方面,本技术实施例提供了一种通信方法,该方法进一步可以应用于第一节点中,包括:
40.接收来自第二节点的第一信息,所述第一信息包含身份标识id密文,所述id密文对应第一保护密钥和所述第二节点的id;
41.基于安全参数确定所述第一保护密钥,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
42.根据所述第一保护密钥解密所述id密文,得到所述第二节点的id;
43.向所述第二节点发送第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。进一步的,上述通信方法可以应用于第一节点中。
44.其中,psk是第一节点与第二节点之间共享的一个秘密值。可以看出,第二节点中
预先定义、预先配置或者预先生成有与第一节点共享的psk,因此可以使用psk对真实id进行加密。相应的,根据该psk对id密文进行解密从而可以获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
45.而第一节点的第一口令,可以看作是第一节点的接入密码(password),具体可以为第一节点为了让第二节点可以接入从而预先配置或者预先定义的密码,或者第一节点与第二节点之间约定的秘密值。例如,手机接入支持无线保真(wireless fidelity,wi

fi)协议的路由器的场景中,手机终端可以使用“wi

fi密码”接入路由器,该“wi

fi密码”可以理解为路由器的第一口令。
46.可以看出,第二节点可以基于该第一口令加密第二节点的id,从而可以基于该第一口令解密id密文得到该第二节点的id。由于获取有该第一口令的节点通常是可信的,因此可以保证通信的安全性,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
47.具体实施过程中,所述第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息),所述第二信息也可以称为关联建立信息(具体场景中也可以称为关联建立消息)。
48.在第二方面的一种可能的实施方式中,所述基于所述安全参数确定所述第一保护密钥,包括:
49.根据所述安全参数和第一新鲜性参数,确定所述第一保护密钥。
50.上述说明了一种解密的方法,由于解密使用的第一保护密钥与加密使用的第一保护密钥是相对应的,因此加密使用的第一保护密钥也是基于所述安全参数和所述第一新鲜性参数生成的。在加密的过程中,由于新鲜性参数的值在不同时刻的取值是不同的,使得每一次加密第一节点的id的第一保护密钥是不同的,从而提高了组密钥的私密性。
51.在第二方面的又一种可能的实施方式中,所述基于所述安全参数确定所述第一保护密钥,包括:
52.根据所述安全参数,根据密码算法确定所述第一保护密钥。
53.在第二方面的又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
54.在第二方面的又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
55.在第二方面的又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id。进一步的,所述第一信息中还包含所述第一pskid。
56.在第二方面的又一种可能的实施方式中,所述安全参数为第一节点的第一口令;所述第一口令对应于第一口令id。进一步的,所述第一信息中还包含所述第一口令id。
57.在第二方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
58.在第二方面的又一种可能的实施方式中,所述方法还包括:
59.确定所述第二节点的身份认证通过;
60.为所述第二节点分配所述临时id。
61.在第二方面的又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述确定所述第二节点的身份认证通过,包括:
62.根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
63.向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
64.接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
65.根据所述第一密钥和所述第二身份认证信息确认所述第二节点的身份认证通过。
66.可以看出,通过密钥协商可以生成第一密钥,使用该第一密钥生成第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
67.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
68.在第二方面的又一种可能的实施方式中,所述方法还包括:
69.接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
70.第三方面,本技术实施例提供了一种通信方法,该方法进一步可以应用于第二节点中,包括:
71.接收来自第一节点的第一公钥和所述第一公钥的签名;
72.根据所述第一公钥的签名确定所述第一公钥的完整性验证通过;
73.向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
74.接收来自所述第一节点的第二信息(关联建立信息),所述第二信息中包括与所述第二节点的id对应的临时id,所述临时id用于临时标记所述第二节点的身份。
75.本技术实施例中,通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,第一节点通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
76.具体实施过程中,所述第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息),所述第二信息也可以称为关联建立信息(具体场景中也可以称为关联建立消息)。
77.在第三方面的一种可能的实施方式中,所述第一公钥为临时公钥。
78.在第三方面的又一种可能的实施方式中,所述第一公钥为一次性公钥。
79.在第三方面的又一种可能的实施方式中,所述根据所述一次性公钥的签名确定所
述一次性公钥验证通过,包括:
80.接收来自所述第一节点的数字证书dc;
81.根据所述dc对应的公钥和所述第一公钥的签名,确定所述第一公钥验证通过。
82.在第三方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求中包含有所述id密文。
83.在第三方面的又一种可能的实施方式中,所述方法还包括:
84.接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
85.根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
86.根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
87.向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
88.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
89.在第三方面的又一种可能的实施方式中,所述方法还包括:
90.向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
91.第四方面,本技术实施例提供了一种通信方法,该方法进一步可以应用于第二节点中,包括:
92.基于安全参数确定第一保护密钥,所述安全参数为第一节点与第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
93.根据所述第一保护密钥对第二节点的身份标识id进行加密得到id密文;
94.向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
95.接收来自所述第一节点的第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用临时标记所述第二节点的身份。
96.其中,psk是第一节点与第二节点之间共享的一个秘密值。可以看出,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此可以使用psk对真实id进行加密。相应的,第一节点根据该psk对id密文进行解密从而可以获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
97.而第一节点的第一口令,可以看作是第一节点的接入密码(password),具体可以为第一节点为了让第二节点可以接入从而预先配置的密码,或者第一节点与第二节点之间约定的秘密值。例如,手机接入支持无线保真(wireless fidelity,wi

fi)协议的路由器的场景中,手机终端可以使用“wi

fi密码”接入路由器,该“wi

fi密码”可以理解为路由器的第一口令。
98.可以看出,第二节点可以基于该第一口令加密第二节点的id,从而可以基于该第一口令解密id密文得到该第二节点的id。由于获取有该第一口令的节点通常是可信的,因
此可以保证通信的安全性,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
99.在第四方面的一种可能的实施方式中,所述基于所述安全参数确定所述第一保护密钥,包括:
100.根据所述安全参数和第一新鲜性参数,确定所述第一保护密钥。
101.在第四方面的又一种可能的实施方式中,所述基于所述安全参数确定所述第一保护密钥,包括:
102.根据所述安全参数,根据密码算法确定所述第一保护密钥。
103.在第四方面的又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
104.在第四方面的又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
105.在第四方面的又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id。进一步的,所述第一信息中还包含所述第一pskid。
106.在第四方面的又一种可能的实施方式中,所述安全参数为第一节点的第一口令;所述第一口令对应于第一口令id。进一步的,所述第一信息中还包含所述第一口令id。
107.在第四方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求中包含有所述id密文。
108.在第四方面的又一种可能的实施方式中,所述方法还包括:
109.接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
110.根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
111.根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
112.向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
113.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
114.在第四方面的又一种可能的实施方式中,所述方法还包括:
115.向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
116.第五方面,本技术实施例提供了一种通信装置,所述通信装置包括用于执行第一方面或者第一方面的任意一种可能的实施方式所描述的方法的单元。
117.在第五方面的一种可能的实施方式中,所述通信装置包括:
118.发送单元,用于发送第一公钥以及所述第一公钥的签名;
119.接收单元,用于接收来自第二节点(t节点)的第一信息(关联请求信息),所述第一
信息包含身份标识id密文,所述id密文对应于所述第一公钥以及所述第二节点的id;
120.处理单元,用于根据所述第一公钥对应的第一私钥解密所述id密文,得到所述第二节点的id;
121.所述发送单元,还用于向所述第二节点发送第二信息(关联建立信息),所述第二信息包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。
122.本技术实施例中,第二节点通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,第二节点可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,上述通信装置通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
123.在第五方面的又一种可能的实施方式中,所述第一公钥为临时公钥,所述第一私钥为临时私钥。
124.可以看出,由于临时密钥的存在的时长通常较短,相比长期密钥来说,临时密钥不容易被破解,因此使用临时公钥对真实id进行加密可以提高真实id的私密性。此外,由于长期密钥通常使用的期限较长,因此长期密钥被破解时,所有使用该密钥的通信的数据均收到影响,不具有前向安全。而临时密钥由于存在的时长通常较短,即使被破解,也不影响该临时密钥使用之前的通信数据的安全,提高了数据安全性。
125.在第五方面的又一种可能的实施方式中,所述第一公钥为一次性公钥,所述第一私钥为一次性私钥。
126.可以看出,本技术实施例中使用的第一公钥和第一私钥可以是一次性密钥,即只用于该id的加密及解密。例如,使用第一私钥解密该id密文后,可以将该第一私钥删除,从而使得该私钥不容易被攻破,从而保护节点的真实id不被泄露,提高数据安全性。
127.在第五方面的又一种可能的实施方式中,所述处理单元,还用于基于数字证书(digital certificate,dc)对应的私钥对所述第一公钥进行签名,得到所述第一公钥的签名;
128.所述发送单元,还用于向所述第二节点发送所述dc。
129.可以看出,dc可以用于验证第一公钥的来源。例如,证书中心为第一节点的公钥pk以及一些信息(例如对第一节点的描述信息等)生成dc,第二节点使用该dc对应的密钥对(即该公钥pk对应的私钥sk),通过“私钥签名,公钥验签”的方式,可以确定第一公钥来源于第一节点。
130.在一种具体的实施方式中,第一节点中存在一个长期密钥对(长期公钥pk和长期私钥sk),ca中心为长期公钥pk做认证,ca中心用自己的私钥cpk,对该长期公钥pk和一些相关信息(例如对第一节点的描述信息)一起加密生成dc。第一节点使用证书对应的私钥生成第一公钥的签名,将第一公钥、第一公钥的签名以及dc发送给第二节点,第二节点使用ca中心的公钥csk解密证书,可以确定该dc为ca颁发的,以及确定该dc中的长期公钥pk为第一节点的公钥,从而认证了长期公钥pk的来源。第二节点使用长期公钥对第一公钥的签名进行验签,从而确定第一公钥来自第一节点,从而使用第一公钥对id进行加密。
131.在第五方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,
所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
132.在第五方面的又一种可能的实施方式中,所述处理单元,还用于:
133.确定所述第二节点的身份认证通过;
134.为所述第二节点分配所述临时id。
135.在第五方面的又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述处理单元,还用于根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
136.所述发送单元,还用于向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
137.所述接收单元,还用于接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
138.所述处理单元,还用于根据所述第一密钥和所述第二身份认证信息确认所述第二节点的身份认证通过。
139.可以看出,上述通信装置通过密钥协商可以生成第一密钥,使用该第一密钥生成第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,上述通信装置也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
140.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
141.在第五方面的又一种可能的实施方式中,所述接收单元,还用于接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
142.第六方面,本技术实施例提供了一种通信装置,所述通信装置包括用于执行第一方面或者第二方面的任意一种可能的实施方式所描述的方法的单元。
143.在第六方面的一种可能的实施方式中,所述通信装置包括:
144.接收单元,用于接收来自第二节点的第一信息,所述第一信息包含身份标识id密文,所述id密文对应第一保护密钥和所述第二节点的id;
145.处理单元,用于基于安全参数确定所述第一保护密钥,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
146.所述处理单元,还用于根据所述第一保护密钥解密所述id密文,得到所述第二节点的id;
147.发送单元,用于向所述第二节点发送第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。
148.可以看出,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此可以使用psk对真实id进行加密。相应的,上述通信装置可以根据该psk对id密文进行解密,从而获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
149.而第一节点的第一口令,可以看作是第一节点的接入密码(password),具体可以
为第一节点为了让第二节点可以接入从而预先配置或者预先定义的密码,或者第一节点与第二节点之间约定的秘密值。例如,手机接入支持无线保真(wireless fidelity,wi

fi)协议的路由器的场景中,手机终端可以使用“wi

fi密码”接入路由器,该“wi

fi密码”可以理解为路由器的第一口令。
150.可以看出,第二节点可以基于该第一口令加密第二节点的id,从而可以基于该第一口令解密id密文得到该第二节点的id。由于获取有该第一口令的节点通常是可信的,因此可以保证通信的安全性,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
151.在第六方面的又一种可能的实施方式中,所述处理单元,具体用于:
152.根据所述安全参数、第一新鲜性参数,确定所述第一保护密钥。
153.上述说明了一种解密的方法,由于解密使用的第一保护密钥与加密使用的第一保护密钥是相对应的,因此加密使用的第一保护密钥也是基于所述安全参数和所述第一新鲜性参数生成的。在加密的过程中,由于新鲜性参数的值在不同时刻的取值是不同的,使得每一次加密第一节点的id的第一保护密钥是不同的,从而提高了组密钥的私密性。
154.在第六方面的又一种可能的实施方式中,所述处理单元,具体用于:
155.根据所述安全参数,根据密码算法确定所述第一保护密钥。
156.在第六方面的又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
157.在第六方面的又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
158.在第六方面的又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id;所述第一信息中还包含所述第一pskid。
159.在第六方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
160.在第六方面的又一种可能的实施方式中,所述处理单元还用于:
161.确定所述第二节点的身份认证通过;
162.为所述第二节点分配所述临时id。
163.在第六方面的又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述处理单元,还用于根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
164.所述发送单元,还用于向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
165.所述接收单元,还用于接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
166.所述处理单元,还用于根据所述第一密钥和所述第二身份认证信息确认所述第二节点的身份认证通过。
167.可以看出,上述通信装置通过密钥协商可以生成第一密钥,使用该第一密钥生成
第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,上述通信装置也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
168.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
169.在第六方面的又一种可能的实施方式中,所述接收单元,还用于接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
170.第七方面,本技术实施例提供了一种通信装置,所述通信装置包括用于执行第一方面或者第三方面的任意一种可能的实施方式所描述的方法的单元。
171.在第七方面的一种可能的实施方式中,所述通信装置包括:
172.接收单元,用于接收来自第一节点的第一公钥和所述第一公钥的签名;
173.处理单元,用于根据所述第一公钥的签名确定所述第一公钥的完整性验证通过;
174.发送单元,用于向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
175.所述接收单元,还用于接收来自所述第一节点的第二信息(关联建立信息),所述第二信息中包括与所述第二节点的id对应的临时id,所述临时id用于临时标记所述第二节点的身份。
176.本技术实施例中,上述装置通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,上述装置可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,第一节点通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
177.具体实施过程中,所述第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息),所述第二信息也可以称为关联建立信息(具体场景中也可以称为关联建立消息)。
178.在第七方面的一种可能的实施方式中,所述第一公钥为临时公钥。
179.在第七方面的又一种可能的实施方式中,所述第一公钥为一次性公钥。
180.在第七方面的又一种可能的实施方式中,所述接收单元,还用于接收来自所述第一节点的数字证书dc;
181.所述处理单元,还用于根据所述dc对应的公钥和所述第一公钥的签名,确定所述第一公钥验证通过。
182.在第七方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求中包含有所述id密文。
183.在第七方面的又一种可能的实施方式中,所述接收单元,还用于接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
184.所述处理单元,还用于根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
185.所述处理单元,还用于根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
186.所述发送单元,还用于向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
187.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
188.在第七方面的又一种可能的实施方式中,所述发送单元,还用于向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
189.第八方面,本技术实施例提供了一种通信装置,所述通信装置包括用于执行第一方面或者第四方面的任意一种可能的实施方式所描述的方法的单元。
190.在第八方面的一种可能的实施方式中,所述通信装置包括:
191.处理单元,用于基于安全参数确定第一保护密钥,所述安全参数为第一节点与第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
192.所述处理单元,还用于根据所述第一保护密钥对第二节点的身份标识id进行加密得到id密文;
193.发送单元,用于向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
194.接收单元,用于接收来自所述第一节点的第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用临时标记所述第二节点的身份。
195.可以看出,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此上述通信装置可以使用psk对真实id进行加密。相应的,第一节点根据该psk对id密文进行解密从而可以获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
196.在第八方面的一种可能的实施方式中,所述处理单元,具体用于:
197.根据所述安全参数和第一新鲜性参数,确定所述第一保护密钥。
198.在第八方面的又一种可能的实施方式中,所述处理单元,具体用于:
199.根据所述安全参数,根据密码算法确定所述第一保护密钥。
200.在第八方面的又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
201.在第八方面的又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
202.在第八方面的又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id;所述第一信息中还包含所述第一
pskid。
203.在第八方面的又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求中包含有所述id密文。
204.在第八方面的又一种可能的实施方式中,所述接收单元,还用于接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
205.所述处理单元,还用于根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
206.所述处理单元,还用于根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
207.所述发送单元,还用于向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
208.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
209.在第八方面的又一种可能的实施方式中,所述发送单元,还用于向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
210.第九方面,本技术实施例提供了一种通信装置,包括至少一个处理器和通信接口,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,以使得所述通信装置实现第一方面或者第一方面的任意一种可能的实施方式所描述的方法,或者实现第二方面或者第二方面的任意一种可能的实施方式所描述的方法。
211.第十方面,本技术实施例提供了一种芯片系统,包括至少一个处理器和通信接口,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,以使得该芯片系统所在的装置实现第一方面或者第一方面的任意一种可能的实施方式所描述的方法,或者实现第二方面或者第二方面的任意一种可能的实施方式所描述的方法。
212.第十一方面,本技术实施例还提供一种信息传输系统,该信息传输系统包括第一节点和第二节点,其中,该第一节点包含上述第三方面或第三方面的任意一种可能的实施方式所描述的通信装置,该第二节点包含上述第四方面或第四方面的任意一种可能的实施方式所描述的通信装置。
213.第十二方面,本技术实施例公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,实现第一方面或第一方面的任意一种可能的实施方式所描述的方法,又或者实现第二方面或第二方面的任意一种可能的实施方式所描述的方法,又或者实现第三方面或第三方面的任意一种可能的实施方式所描述的方法,又或者实现第四方面或第四方面的任意一种可能的实施方式所描述的方法。
214.第十三方面,本技术实施例公开了一种计算机程序产品,当所述计算机程序产品在一个或多个处理器上运行时,实现第一方面或第一方面的任意一种可能的实施方式所描述的方法,又或者实现第二方面或第二方面的任意一种可能的实施方式所描述的方法,又或者实现第三方面或第三方面的任意一种可能的实施方式所描述的方法,又或者实现第四
方面或第四方面的任意一种可能的实施方式所描述的方法。
215.第十四方面,本技术实施例公开了一种终端,所述终端可以为智能座舱产品、或者车辆等,所述终端包括第一节点和/或第二节点,其中所述第一节点(例如,摄像头、屏幕、麦克风、音响、雷达、电子钥匙、无钥匙进入、启动系统控制器以及用户设备ue等模块中的一个或者多个)包含上述第三方面或第三方面的任意一种可能的实施方式所描述的装置,所述第二节点(例如,基站、汽车座舱域控制器cdc等)包含上述第四方面或第四方面的任意一种可能的实施方式所描述的通信装置。可替换的,上述车辆还可以替换为无人机、机器人等智能终端或者运输工具。
附图说明
216.以下对本技术实施例用到的附图进行介绍。
217.图1是本技术实施例的一种通信系统的架构示意图;
218.图2是本技术实施例提供的一种通信方法的使用场景示意图;
219.图3是本技术实施例提供的一种通信方法的流程示意图;
220.图4是本技术实施例提供的又一种通信方法的流程示意图;
221.图5是本技术实施例提供的再一种通信方法的流程示意图;
222.图6是本技术实施例提供的再一种通信方法的流程示意图;
223.图7是本技术实施例提供的再一种通信方法的流程示意图;
224.图8是本技术实施例提供的一种通信装置的结构示意图;
225.图9是本技术实施例提供的又一种通信装置的结构示意图;
226.图10是本技术实施例提供的再一种通信装置的结构示意图;
227.图11是本技术实施例提供的再一种通信装置的结构示意图;
228.图12是本技术实施例提供的再一种通信装置的结构示意图。
具体实施方式
229.下面结合本技术实施例中的附图对本技术实施例进行描述。本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
230.下面先对本技术涉及到的相关技术和专业术语进行简单的介绍以方便理解。
231.一、节点(node)
232.节点是具有数据处理收发能力的电子设备,可以包括终端设备或网络侧设备。例如,节点可以为汽车座舱(cockpit domain)设备,或者汽车座舱设备中的一个模块(例如座舱域控制器(cockpitdomain controller,cdc)、摄像头、屏幕、麦克风、音响、电子钥匙、无钥匙进入或启动系统控制器等模块中的一个或者多个)。在具体实施过程中,节点还可以是数据中转设备,例如基站、路由器、中继器、桥接器或交换机;也可以是一个终端设备,例如各种类型的用户设备(user equipment,ue)、手机(mobile phone)、平板电脑(pad)、台式电脑、耳机、音响等;还可以包括机器智能设备,如无人驾驶(self

driving)设备、运输安全(transportationsafety)设备、虚拟现实(virtualreality,vr)终端设备、增强现实
(augmented reality,ar)终端设备、机器类型通信(machine type communication,mtc)设备、工业控制(industrial control)设备、远程医疗(remote medical)设备、智能电网(smart grid)设备、智慧城市(smart city)设备;还可以包括可穿戴设备(如智能手表,智能手环,计步器等)等等。
233.在某些技术场景中,具备相类似数据收发能力的设备的名称也可能不称为节点,但是为了方便描述,本技术实施例中将具有数据收发能力的电子设备统称为节点。
234.二、密码算法
235.密码算法可以是用于加密、或者解密、或者生成密钥、或者导出密码等等中的一项或者多项的数学函数,也可以称为密码函数。常用的密码算法包括散列算法、加密算法、认证算法、密钥派生算法(key derivation function,kdf)或者认证算法等。
236.(1)散列算法
237.其中,散列算法又称为哈希(hash)函数、哈希算法,散列算法可以将任意长度的信息转换为一个标识,且很难找到逆向规律。
238.(2)加密(encryption)算法
239.加密算法包括对称加密算法和非对称加密算法。通常来说,对称加密算法的加密密钥与解密密钥相同,非对称加密算法的加密密钥与解密密钥不同,此外,还有一类不需要密钥的散列算法。常见的对称加密算法主要有数据加密标准(data encryption standard,des)、三重数据加密算法(triple data encryption algorithm,3des)、高级加密标准(advanced encryption standard,aes)等,常见的非对称算法主要有rsa加密算法、数据结构分析算法(data structure analysis,dsa)等,散列算法主要有安全散列算法(secure hash algorithm 1,sha

1)、信息摘要(message digest,md)算法(如md2、md4或md5等)等。
240.(3)完整性保护算法
241.完整性保护算法是用于保护消息完整性的算法,也可以称为mac(message authentication code,mac)算法或者完保算法。例如,通过哈希算法来实现的完整性保护算法称为基于哈希的消息认证码(hash

based message authentication code,hmac)算法,其中的哈希算法可以为md5、sha

1、sha

256等等中的一个,这些不同的hmac实现通常标记为:hmac

md5,hmac

sha1,hmac

sha256等等。
242.在一些具体场景中,通过认证加密算法,对与给定的原文既可以加密数据也可以生成消息认证码,因此认证加密算法既可以作为加密算法也可以作为完保算法。例如,基于gmac和计数加密模式的aes算法(aes

galois/counter mode,aes

gcm)和基于cmac和计数加密模式的aes算法(aes

cmac/counter mode,aes

ccm)等可以对消息进行认证加密,而进行认证加密的过程中能够生成mac来保护消息的完整性。
243.(4)密钥派生算法
244.密钥派生算法用于从一个秘密值中派生出一个或多个秘密值,又称为密钥导出算法。例如,通过秘密值key派生的新的秘密值dk可以表示为:dk=kdf(key)。常用的密钥派生算法有基于密码的密钥派生函数(password

based key derivation function,pbkdf)、斯克里普特(scrypt)算法等,其中pbkdf算法又包括第一代pbkdf1和第二代pbkdf2。可选的,一些kdf算法在派生密钥过程中,使用哈希算法对输入的秘密值进行哈希变化,因此kdf函数还可以接收算法标识作为输入,用于指示使用何种哈希算法。
245.(5)密钥协商算法
246.密钥协商是通信双方通过交互一部分参数,从而协商得到密钥的过程。用于密钥协商的算法称为密钥协商算法,也可以称为密钥交换算法。常用的密钥协商算法有迪菲赫尔曼(diffie

hellman,dh)算法、基于椭圆曲线密码(elliptic curve cryptosystems,ecc)的迪菲赫尔曼(ecdh)算法、奥克利(oakley)算法、国密算法(如sm1、sm2、sm3和sm4)等。
247.其中,以dh算法为例,两个节点使用两个数值较大的素数p和随机数g,各自产生的随机数a和b。第一节点将g的a次方mod p产生的数值a(a=g
a mod p)发送给第二节点,第二节点将g的b次方mod p产生的数值b(b=g
b mod p)发送给第一节点,第一节点再对接收的结果做a次方运算(k=b
a mod p),第二节点对接收的结果做b次方运算(k=a
b mod p),由于k=a
b mod p=(g
a mod p)
b mod p=g
ab mod p=(g
b mod p)
a mod p=b
a mod p,因此第一节点和第二节点计算出的密钥k是相同的。
248.在这种情况下,若攻击者通过a、g、p,计算得到a的公式为:a=log
ga
modp,由于对数运算没有一个快速计算的算法,而且素数p和随机数g通常数值较大,因此攻击者很难通过a、素数p和随机数g通过对数运算和模运算得到a。因此通过dh算法得到的密钥k是具有安全性的。
249.三、新鲜性参数
250.新鲜性参数用于生成密钥和认证参数等,也可以称为新鲜度或新鲜参数,可以包括随机数(number once,nonce)、计数值(counter)、序列号(serial number)、顺序号(sequence number)等等中的至少一个。其中,nonce是一个只被使用一次的(或者说非重复的)随机数值。不同时刻生成的新鲜性参数通常不同,即新鲜性参数的具体取值,在每生成一次新鲜性参数时会发生变化,从而使得这一次生成密钥(或者认证参数等)所使用的新鲜性参数与上一次生成密钥(或者认证参数等)时所使用的新鲜性参数不同的,可以提高生成的密钥的安全性。
251.例如,新鲜性参数可以是节点通过随机数发生器(random number generator)获取的随机数。
252.四、数字证书
253.数字证书(也可以称为安全证书)是标志身份的一个数字认证,是由证书授权(certificate authority,ca)中心所颁发的一种较为权威与公正的证书。
254.例如,第一节点中存在一个长期密钥对(长期公钥pk和长期私钥sk),ca中心为长期公钥pk做认证,ca中心用自己的私钥cpk,对该长期公钥pk和一些相关信息(例如对第一节点的描述信息)一起加密生成dc。第一节点使用证书对应的私钥生成第一公钥的签名(即“私钥签名”),将第一公钥、第一公钥的签名以及dc发送给第二节点,第二节点使用ca中心的公钥csk解密证书,可以确定该dc为ca颁发的,以及确定该dc中的长期公钥pk为第一节点的公钥,从而认证了长期公钥pk的来源。第二节点使用长期公钥pk对第一公钥的签名进行验签(即“公钥验签”),从而确定第一公钥来自第一节点。
255.另外需要说明的是,本技术各实施例中提到的“认证”、“校验”、“验证”,可以表征检查是否正确或者合理的意思。本技术各实施例中提“关联”表明第一节点与第二节点建立连接的过程,在一些具体的技术场景中,也可以将“关联”描述为“接入”。
256.下面对本技术实施例的系统架构和业务场景进行描述。需要说明的是,本技术描
述的系统架构及业务场景是为了更加清楚的说明本技术的技术方案,并不构成对于本技术提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本技术提供的技术方案对于类似的技术问题,同样适用。
257.参见图1,图1是本技术实施例提供的一种可能的通信系统的示意图,该通信系统包括第一节点101和第二节点102。第一节点101与第二节点102可以进行通信,其中,第一节点101与第二节点102之间通信的链路可以包括各种类型的连接介质,包括有线链路(例如光纤)、无线链路、或者有线链路和无线链路的组合等。例如可以为近距离连接技术包括802.11b/g、蓝牙(blue tooth)、紫蜂(zigbee)、无线射频识别技术(radio frequency identification,rfid)、超宽带(ultra wideband,uwb)技术、无线短距通信系统(例如车载无线短距通信系统)等,再如还可以为远距离连接技术包括全球移动通信系统(global system for mobile communications,gsm)、通用分组无线业务(general packet radio service,gprs)、通用移动通信系统(universal mobile telecommunications system,umts)等无线接入类型技术。
258.当然,还有其他无线通信技术可以用于支撑第一节点101与第二节点102进行通信。在一些具体的实施场景中,第二节点102也可以称为c节点或者控制节点,第一节点101也可以称为t节点或者终端。c节点向t节点的通信链路可以称为c链路,t节点向c节点的通信链路可以称为t链路。
259.第二节点102可以请求与第一节点101关联,在关联时,第二节点102需要向第一节点101表明自己的身份。通常来说,第二节点102可以通过向第一节点101发送自己的id向第一节点101表明自己身份。但是,节点(如第一节点101、第二节点102)的真实身份通常关联着节点中的隐私和数据安全,节点的id被窃取会使得用户的隐私、个人数据等遭到泄露。
260.例如,参见图2,图2是本技术实施例中提供的一种车辆中的无线通信的场景的示意图,车辆的座舱域控制器(cockpit domain controller,cdc)201是智能座舱设备中的控制中心,可以看作为第一节点101;车辆中的一个支持无线通信技术的麦克风202可以看作是第二节点102。麦克风202可以与cdc201进行通信,但是,通信时需要标识对方节点的身份,此时,若麦克风202使用自己的永久id来与cdc201进行通信,可能会遭到攻击者监听从而根据id获取用户(如该车辆的车主)的隐私。例如,攻击者在10:00时在a处监听到麦克风202正在执行音频上传业务,又在10:30时在b处监听到麦克风202正在执行更新业务,从而可以知道麦克风202在10:00

10:30中间从a处到达了b处,从而可以收集麦克风202的行动轨迹,进而暴露车辆的位置和行动轨迹,甚至记录活跃的时间段等等,使得用户的隐私遭到泄露。
261.请参见图3,图3是本技术实施例提供的一种通信方法的流程示意图,进一步的,该方法可以基于图1所示的架构来实现。该方法至少包括如下步骤:
262.步骤s301:第一节点发送第一公钥以及第一公钥的签名。
263.具体地,第一公钥和第一私钥为一个密钥对,由该第一公钥加密的密文可以使用第一私钥进行解密,由该第一私钥加密的密文可以使用第一公钥进行解密。通常情况下,第一公钥向外界公开,所以称为公钥,而第一私钥由自己私密保存,所以称为私钥。
264.可选的,第一公钥可以是临时公钥,例如,第一节点确定一个临时密钥(temporary key)对,该临时密钥对包括一个临时公钥和第一个临时私钥。其中,临时密钥(包括临时公
钥、临时私钥)是一个短期密钥,具体可以为生存时长较短的密钥,例如生存时长为1小时的密钥,或者还可以为加密次数较少的密钥,例如只能用于加密1次的密钥,或者只用于加密序号为1

100的数据单元(data unit)的密钥。本技术不对上述临时密钥对的生存期做具体限定。
265.进一步可选的,第一公钥以及第一私钥为一次性密钥(one timekey),即通常来说只使用一次或者使用一次后即失效或被删除的密钥。例如,使用第一公钥otpk该加密数据a后,则将该第一公钥otpk删除;使用第一私钥otsk解密该数据a后,可以将该第一私钥otsk删除。这样一来,可以只使用一次第一公钥进行加密以及只使用一次第一私钥进行解密,从而使得该第一私钥不容易被攻破,提高数据安全性。
266.第一公钥的签名可以用于验证第一公钥。具体地,该第一公钥的签名可以是基于数字证书(digital certificate,dc,也可以称为证书)对应的私钥对所述第一公钥进行签名得到的。例如,第一节点的公钥pk(可以是一个长期公钥,也可以是临时公钥),经过证书授权(certificate authority,ca)中心的私钥签名,得到证书dc。第一节点使用证书dc的pk对应的私钥sk对第一公钥进行签名,得到第一公钥的签名s。后续第二节点可以使用证书dc的公钥对签名s进行验签,从而确定该第一公钥来自第一节点。例如,以第一公钥为otpk为例,s=sign(sk,otpk)。其中,sign为数字签名算法。
267.第一节点可以通过单播方式向第二节点发送第一公钥及第一公钥的签名,或者,也可以通过广播或者组播方式发送第一公钥及第一公钥的签名。相应的,第二节点接收来自第一节点的第一公钥及第一公钥的签名。可选的,第一节点还可以发送dc,相应的,第二节点接收来自第一节点的dc。
268.可选的,第一节点可以通过单播(unicast)方式向第二节点发送接入信息,又或者通过组播(mulitcast)方式发送接入信息,又或者通过广播(broadcast)方式发送广播信息。其中,单播方式通常只有一个发送方和一个接收方,具体体现为单播时发送的数据单元的目的地址为接收方接口的地址,例如,第一节点通过单播向第二节点发送接入信息,该接入信息所在数据单元中包括第二节点的网际互连(internet protocol,ip)地址和/或第二节点的媒体存取控制(media access control,mac)地址。组播(或者在某些场景也称为多播)方式通常为一个发送方和一组指定接收方,具体体现为组播时发送的数据单元的目的地址为组播地址(组播地址可以标识一组接口的地址,一些场景中为保留的d类地址),发送到多播地址的数据单元被送到由该地址标识的一组接口。广播方式通常为一个发送方和该子网内的所有接收方,广播地址(broadcast address)是专门用于同时向网络中所有工作站进行发送的一个地址。具体体现为广播时发送的数据单元的目的地址为广播地址,例如,在使用传输控制协议/网际协议(transmission control protocol/internet protocol,tcp/ip)协议的网络中,主机标识段host id为全1的ip地址为广播地址,发送到广播址的数据单元被送到host id段所涉及的所有节点。例如,对于10.1.1.0(255.255.255.0)网段,其广播地址为10.1.1.255(255即为2进制的11111111),当发出一个目的地址为10.1.1.255的数据单元时,它将被分发给该网段上的所有节点。
269.进一步可选的,在所述接入信息或者广播信息包含有该第一公钥及第一公钥的签名,还可以包含dc、第一节点的身份标识、该第一节点的描述信息或者用于指示其它节点接入的信息等等中的一项或者多项。
270.在一种可能的设计中,该第一公钥以及第一私钥可以是第一节点确定的,例如,第一节点可以周期或者非周期的产生密钥对(包含第一公钥和第一私钥)。具体实施时,至少可以有以下几种可能的情况:
271.情况一:第一节点可以确定一个或者多个密钥对,并确定该密钥对的标识。第二节点可以使用一个或者多个密钥对中的任意一个密钥对中的第一公钥对数据进行加密得到密文,向第一节点发送密文时携带所使用的第一公钥对应的密钥对标识。例如,第一节点可以非周期性(例如基于配置或者需求)或者周期性(例如十分钟或者预先定义的时长)产生一次密钥对,并配置该密钥对的标识。再如,第一节点可以每接收到一个第二节点的响应,则确定密钥对。进一步,还可以确定该密钥对的标识或者通过确定该密钥对的标识的方式确定该密钥对。由于第二节点使用的密钥可能是之前接收到的多个第一公钥中的任意一个,因此第二节点在发送经过第一公钥加密的密文时也携带该密钥对的标识,便于第一节点使用该密钥对的标识确定用于解密密文的第一私钥。
272.情况二:第一节点为第二节点确定一个密钥对(或者还可以确定该密钥对的标识),将该密钥对中的第一公钥和/或密钥对的标识发送给第二节点。第二节点使用密钥对中的第一公钥对数据加密,由于该密钥对是第一节点为第二节点确定的,所以第一节点接收来自第二节点的密文时,使用密钥对中的第一私钥对密文进行解密。
273.例如,第一节点可以发送广播信息,该广播信息中包含第一节点的标识、地址或者对第一节点的描述信息等,第二节点基于该广播信息向第一节点发送响应信息,第一节点接收所述响应信息,为第二节点确定一个密钥对,将密钥对中的第一公钥发送给第二节点。后续第一节点接收到来自第二节点的密文时,可以使用为第二节点确定的密钥对中的第一私钥来解密密文。进一步的,响应信息中可以包括第二节点的ip地址,第一节点通过该ip地址向第二节点发送第一公钥,后续接收到来自该ip地址的密文时,可以使用第一私钥来解密密文。
274.再如,第一节点为第二节点确定一个密钥对以及该密钥对的标识,该密钥对与密钥对的标识可以保存在第三方设备(例如服务器、密钥分发中心等等设备中)。第一节点将密钥对的标识发送给第二节点,第二节点可以通过密钥对的标识从第三方设备中获取密钥对中的第一公钥。
275.情况三:第一节点确定一个或者多个密钥对,通过广播、组播或者单播形式发送密钥对中的第一公钥,在收到来自第二节点的密文时,使用最新的(或者说确定密钥的时间距离现在最短的)的第一私钥进行加密。进一步的,在确定有多个密钥对的情况下,密钥对可以存在一定的有效期或者使用时长,当一个旧的密钥对到期时,应用新的密钥对。
276.步骤s302:第二节点根据第一公钥的签名确定第一公钥验证通过。
277.具体的,第二节点可以根据第一公钥的签名,从而确定第一公钥来自第一节点和/或确定第一公钥的完整性验证通过。
278.在一种可能的实施方式中,第二节点中获取证书dc,第二节点根据ca中心验证证书,若验证通过则根据证书对应的公钥,验证第一公钥的签名,若验证第一公钥的签名通过,则确定第一公钥来自第一节点且没有被纂改(即完整性验证通过)。
279.步骤s303:第二节点使用第一公钥加密第二节点的id,得到id密文。
280.其中,第二节点的id为第二节点的永久id(或者也称为真实id、固定id),例如,手
机终端的国际移动设备识别码(international mobile equipment identity,imei)就可以理解为手机终端的永久id,通过永久id可以标识节点的身份。再如,第二节点的永久id也可以为第二节点的mac地址、第二节点的设备id,或者是其他可以标识第二节点的标识、字符串或者地址等。
281.以第一公钥为一次性公钥otpk为例,第二节点使用第一公钥otpk对第二节点的id(永久id)进行加密,得到id密文idc,例如:idc=enc(otpk,id),其中,enc为加密算法。进一步可选的,该加密算法可以是第一节点与第二节点预先商量的,也可以是第一节点通过指示信息(例如携带在接入信息或者广播信息中)发送给第二节点的,也可以是协议或者标准中预先定义的。
282.步骤s304:第二节点向第一节点发送第一信息。
283.具体的,第一信息包含id密文。第二节点向第一节点发送第一信息,相应的,第一节点接收来自第二节点的第一信息。
284.可选的,该第一信息中还可以包括第一密钥协商参数(在一些场景中,该密钥协商参数也可以理解为密钥协商过程中的公钥),该第一密钥协商参数可以是基于密钥协商算法生成的,或者是根据预先配置或者预先定义的计算方式得到的。
285.可选的,在第一公钥对应有密钥对的标识时,第一信息中还包含第一公钥对应的密钥对的标识,便于第一节点使用该密钥对的标识确定第一私钥。
286.进一步可选的,该第一信息中还包括新鲜性参数(为了方便描述,称为第一新鲜性参数)。该第一新鲜性参数可以包括nonce、计数值(counter)、序列号(serial number)、顺序号(sequence number)等等中的至少一个。例如,第一新鲜性参数可以是第二节点确定的一个随机数noncee。
287.可选的,该第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。可选的,该第一指示信息可以为第一信息中包括的第一字段。例如,该第一字段的取值为“0”指示第一信息中包含有所述id密文。这样一来,第一节点可以通过解析第一信息,从而确定是否要执行解密id密文的步骤。进一步的,该第一字段的取值为“1”时,指示第一信息中包含临时id。再如,第一信息中可以包含id类型,该id类型可以为id密文、临时id等等中的一项或者多项。
288.可选的,第一信息中还包括psk id,该pskid为第一节点与第二节点之间共享的psk对应的id。进一步的,该pskid可以用于确定psk,或者说psk id与psk一一对应。
289.可选的,具体实施过程中,第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息),也可以被称为接入请求信息(或者接入请求消息)。本技术中不对消息或者信息的名称进行限定,仅是进行示例性的说明和表达,名称可以进行任意替换。
290.步骤s305:第一节点根据第一私钥解密id密文,得到第二节点的id。
291.具体的,第一公钥和第一私钥为一个密钥对,因此使用第一公钥加密的密文可以使用第一私钥解密。
292.以第一私钥为一次性私钥otsk为例,第一节点使用第一私钥otsk对id密文idc进行解密,得到第二节点的id(永久id),例如,id=dec(otsk,idc),其中,dec为加密算法对应的解密算法(通常来说,加密算法与解密算法为同一种算法,此处为了便于描述使用不同的名称)。
293.步骤s306:第一节点向第二节点发送第二信息。
294.具体的,第二信息中包括为第二节点分配的临时id。其中,临时id用于临时标记所述第二节点的身份。例如,后续第二节点向第一节点发送信息时可以携带该临时id,第一节点根据该临时id,可以确定该信息来自第二节点。
295.其中,临时标记可以指在一段时长内使用该临时id标记第二节点的身份,或者在某一段通信过程中使用该临时id标记第二节点的身份,又或者是在处理某一业务时使用该id标记第二节点的身份。至少可以有如下实现方式:
296.实现方式1:第一节点在第二信息中包含第二节点的临时id,该临时id存在有效期,或者临时id具有一定的使用时长和/或使用次数。例如,临时id的使用时长可以为1小时或者可以用于发送和/或接收1000个数据单元。例如,以临时id的使用时间从发送该第二信息的时间10:00:00起,该临时id可以在10:00:00

11:00:00中间临时标记第二节点的身份。当时间到达11:00:00,第一节点可以向第二节点发送新的临时id,用于下一个小时内标记第二节点的身份。
297.实现方式2:第一节点在第二信息中包含第二节点的临时id,该临时id在一定通信期间使用。例如,第二节点请求关联第一节点,第一节点向第二节点发送临时id,那么在第一节点与第二节点本次关联期间,通信时使用该临时标记第二节点的身份,当关联断开时则失效。下一次关联时则第一节点重新发送新的临时id。
298.实现方式3:第一节点在第二信息中包含第二节点的临时id,该临时id用于第二节点在处理第一业务时使用。可选的,对于并行处理多个业务的节点,第一节点还可以发送多个临时id。例如,该临时id用于第二节点在执行视频上传业务时临时标记第二节点的身份,当执行软件升级时,则使用其它临时id标记第二节点的身份。
299.可选的,第一节点可以为第二节点分配临时id,通过第二信息发送给第二节点。进一步的,还可以存储第二节点的id(永久id)与临时id的对应关系,并在临时id失效后删除或者清除所述对应关系。
300.可选的,第一节点可以确定第二节点的身份可信,为第二节点分配(或者说确定)临时id。其中,临时id可以是通过固定的算法分配的,或者随机分配的。例如,第一节点预先定义、预先设置或者根据协议规定有临时id的长度和/或格式(例如包含数字、大写字母、小写字母等等中的一个或者多个),根据该长度和/或格式随机为第二节点分配临时id。
301.进一步的,第一节点可以通过多种方式确定第二节点的身份可信,例如,至少可以通过如下两种方式:
302.方式一:第二节点与第一节点中预先配置或者预先获取有第一节点与第二节点之间的预共享密钥psk,第二节点可以通过psk加密一段信息(例如可以加密上述第一信息,再如加密身份校验信息、或者对第二节点的描述信息、或者预先定义的一段测试信息等中的一个或者多个),第一节点接收经过加密的一段信息,使用与第二节点共享的psk解密,若可以成功解密获取该一段信息,则确定第二节点的身份可信。
303.方式二:第二节点根据生成第二身份认证信息,第一节点根据该第二身份认证信息认证第二节点的身份(例如第一节点通过相同的方式生成校验信息check1,若check1与第二身份认证信息相同,则说明认证成功),若认证成功则确定第二节点的身份可信。
304.在一种可能的设计中,第二节点与第一节点中预先配置或者预先获取有第一节点
与第二节点之间的psk,第一节点与第二节点通过密钥协商算法确定第一密钥。第一节点根据psk和/或第一密钥生成用于身份认证的第二密钥(或者称为身份认证密钥kauth),相应的,第二节点根据psk和/或第一密钥生成用于身份认证的第二密钥。
305.具体的,第一节点可以根据第二密钥生成第一身份认证信息,该第一身份认证信息可以发送给第二节点,用于第二节点根据第二密钥和第一身份认证信息验证第一节点的身份。第二节点可以根据第二密钥生成第二身份认证信息,该第二身份认证信息可以发送给第一节点,用于第一节点根据第二密钥和第二身份认证信息验证第二节点的身份。
306.在一种可能的设计中,第一节点可以向第二节点发送第三信息,第三信息中携带有第一身份认证信息autha,该第一身份认证信息autha为根据第二密钥kauth和其他信息生成的,该其他信息包括第一信息、第一信息中的部分参数(例如第一新鲜性参数noncee)或者该第三信息中的部分参数等等中的一个或者多个。
307.例如:autha=kdf(kauth,第一信息,noncee,第三信息中的部分参数),其中第一信息、noncee、第三信息中的部分参数为可选参数。相应的,第二节点接收第三信息后,通过相同的方式生成校验值check2,例如:check2=kdf(kauth,第一信息,noncee,第三信息中的部分参数),其中第一信息、noncee、第三信息中的部分参数为可选参数(与第一节点生成时使用的参数一致)。若校验值check2与第一身份认证信息autha,则第二节点可以确定第一节点的身份可信。
308.在又一种可能的设计中,第二节点可以向第一节点发送第四信息,第四信息中携带有第二身份认证信息authe,该第二身份认证信息authe为根据第二密钥kauth和其他信息生成的,该其他信息包括第一信息、第一信息中的部分参数(例如第一新鲜性参数noncee)、第三信息、该第三信息中的部分参数(例如第二新鲜性参数noncea)、第四信息中的部分参数等等中的一个或者多个。例如:authe=kdf(kauth,第一信息,noncee,第三信息,noncea,第四信息中的部分参数),其中第一信息、noncee、第三信息、noncea、第四信息中的部分参数为可选参数。相应的,第一节点接收第四信息后,通过相同的方式生成校验值check1,例如:check1=kdf(kauth,第一信息,noncee,第三信息,noncea,第四信息中的部分参数),其中,生成校验值check1的参数与第二节点生成authe时使用的参数一致)。若校验值check1与第二身份认证信息authe,则第一节点可以确定第二节点的身份可信。
309.在上述方式二的多种设计中,第二密钥kauth可以是根据第一密钥kdh和/或psk,以及第一新鲜性参数noncee、第二新鲜性参数noncea、第一节点的id、第二节点的id和密钥标识等等中的一个或者多个,通过kdf生成的。其中,密钥标识是预先定义或者预先配置的标识,用于指示生成的密钥的种类,可以是字符串、数字等等。
310.例如,生成第二密钥kauth的公式满足:kauth=kdf(kdh||psk,noncee,nocnea,ida,ide,“authentication”),其中,“||”可以表示字符串连接(仅为示例,具体实现过程中也可以不进行连接,例如分别作为两个输入参数),ida指示第一节点的id,ide指示第二节点的id,“authentication”为一种可选的密钥标识。
311.可替代的,第一密钥kdh也可以替换为根据第一密钥kdh派生得到的密钥kgt,例如:kgt=kdf(kdh,noncee,noncea),又或者,kgt=kdf(kdh,fresh),其中,fresh为新鲜性参数,可以使得每次根据kdh派生得到的kgt是不同的。进一步的,生成第二密钥kauth的公式满足:kauth=kdf(kgt||psk,noncee,nocnea,ida,ide,“authentication”),其中,ida、
ide、“authentication”为可选参数,具体含义可以参考前述描述。需要说明的是,这里是为了更清楚的阐述方案以两个步骤的方式解释如何得到密钥kgt,在实际的处理中,也可以是通过一个步骤完成,密钥kgt只是一个中间的结果,即确定第二密钥kauth的方式满足:kauth=kdf(kdf(kdh,fresh)||psk,noncee,nocnea,ida,ide,“authentication”)。
312.具体实施过程中,所述第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息),所述第二信息也可以称为关联建立信息(具体场景中也可以称为关联建立消息)。
313.可选的,第二节点还可以向第一节点发送第五信息,该第五信息用于指示关联完成或者包含用于指示关联完成的信息。相应的,第一节点可以接收来自第二节点的第五信息,确定关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
314.可选的,在一种可能的设计中,前述的第三信息、第四信息、第五信息中的一个或者多个可以通过发送方的加密密钥进行加密,相应的,接收方使用对应的解密密钥进行解密。进一步的,还可以通过完整性保护算法和完整性保护密钥进行完整性保护。例如,第五信息中可以携带第一消息认证码mac,该mac为根据完整性保护算法和完整性保护密钥kmac,对第五信息中的数据进行完整性保护得到的。
315.进一步可选的,加密/解密密钥、完整性保护密钥等可以是根据第一密钥推演出来的。具体可以是根据第一密钥kdh和/或psk,以及第一新鲜性参数noncee、第二新鲜性参数noncea、第一节点的id、第二节点的id和密钥标识等等中的一个或者多个,通过kdf生成的,其中,密钥标识可以是预先配置或者协议规定的字符串、数字等。例如,加密密钥kenc的生成方式满足如下公式:kenc=kdf(kdh||psk,noncee,nocnea,ida,ide,“encryptionkey”),其中,“||”可以表示字符串连接(仅为示例,具体实现过程中也可以不进行连接,例如分别作为两个输入参数),ida指示第一节点的id,ide指示第二节点的id,“encryptionkey”为一种可选的密钥标识。需要说明的是,其中“encryptionkey”为加密密钥的密钥标识,此处仅以“encryptionkey”为例,具体实现过程中也可以为其他字符串、数字等,本技术对此不做限定。
316.再如,完整性保护密钥kmac的生成方式满足如下公式:kmac=kdf(kdh||psk,noncee,nocnea,ida,ide,“mackey”),或者满足,kmac==kdf(kgt,noncee,nocnea,ida,ide,“mackey”),其中“mackey”为完整性密钥的密钥标识,此处仅以“mackey”为例,具体实现过程中也可以为其他字符串、数字等,本技术对此不做限定。
317.在一种可能的设计中,加密密钥和/或完整性保护密钥可以是根据第一密钥或者根据由第一密钥推演出来的密钥来生成的,推演的过程中没有使用到psk。例如,加密密钥kenc的生成方式满足如下公式:kenc=kdf(kgt,noncee,nocnea,ida,ide,“encryptionkey”),其中,密钥kgt为根据第一密钥kdh推演出来的密钥,密钥kgt满足如下公式:kgt=kdf(kdh,noncee,noncea),其他参数可以参考前述描述,此处不再赘述。再如,完整性保护密钥kmac的生成方式满足如下公式:kmac=kdf(kdh,noncee,nocnea,ida,ide,“encryptionkey”),各项参数可以参考前述描述,此处不再赘述。
318.在图3所示的实施例中,第二节点通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进
行保护。进一步的,第二节点可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,第一节点通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
319.请参见图4,图4是本技术实施例提供的一种通信方法的流程示意图,进一步的,该方法可以基于图1所示的架构来实现。该方法至少包括如下步骤:
320.步骤s401:第二节点基于安全参数对第二节点的id进行加密得到id密文。
321.具体的,该安全参数为第一节点与第二节点都能获取的一个秘密值,例如该安全参数可以为第一节点与所述第二节点之间的预共享密钥psk、第一节点的第一口令或者第三方设备为第一节点和第二节点分配的一个约定值等等。
322.其中,psk是第一节点与第二节点中预先配置、或者预先定义又或者预先获取的一个秘密值。例如,车辆的座舱域控制器(cockpit domain controller,cdc)与车辆座舱域中的麦克风是车辆内可以进行通信的两个节点,cdc与麦克风在主机厂时已经预先配置了psk,因此cdc可以通过psk验证车辆的麦克风。再如,psk也可以是通信双方通过密钥获取方式获取的,如cdc与手机终端可以通过蓝牙技术互相关联,cdc与手机终端可以在第一次关联时通过配对生成psk,后续手机只需要打开蓝牙,cdc与手机终端就能通过psk认证对方身份、建立关联,无需重新配对等。除此之外,psk还可以是一个设备(如密钥分发中心(key distribution center,kdc)、车辆配置设备、车辆诊断设备等中的一个或者多个)分别发送给第一节点和第二节点的。
323.在一种可能的实施方式中,psk对应于第一节点的身份标识和/或第二节点的身份标识。可以理解,节点(如第一节点、第二节点等)可以通过是对应关系集合、数据表、数据库等等中的一个或者多个格式来存储psk与节点的对应关系,或者节点通过第三方设备(例如服务器、网络侧设备)等查询psk与节点得对应关系,本技术对此不做限定。例如,参见表1,表1是本技术实施例提供的一种可能的第二节点中的psk的信息表,该信息表包括多个节点的身份标识、对应的psk、psk的id(本技术实施例中称为pskid)以及psk的类型(此处仅为示例,具体实现过程中可以不包括其中的部分信息,又或者还可以包括其它信息,如配置时间、有效时长等等中的一个或者多个)。参见表1可以看出,第二节点与身份标识为“ida1”的节点之间共享的psk为“psk1”,pskid为“pid1”,psk的类型是预先配置的;第二节点与身份标识为“ida2”的节点之间共享的psk为“psk2”,pskid为“pid2”,psk的类型是生成的。
324.表1第二节点中的psk的信息表
325.身份标识pskpskid获得类型ida1psk1pid1预先配置ida2psk2pid2生成ida3psk3pid3生成
326.第一口令,可以看作是接入密码(password),具体可以为第一节点为了让第二节点可以接入从而预先配置或者预先定义的密码,或者第一节点与第二节点之间约定的秘密值。例如,手机接入支持无线保真(wireless fidelity,wi

fi)协议的路由器的场景中,手机终端可以使用“wi

fi密码”接入路由器,该“wi

fi密码”可以理解为路由器的第一口令。再如,第一节点的接入口令为password,第二节点可以通过password生成接入信息,第二节
点使用相同的口令和生成方式生成验证信息,若验证信息与接入信息相同,则说明第二节点的接入口令正确,从而允许第二节点接入第一节点。
327.可选的,第一口令也可以是第二节点接收用户输入的,或者第二节点接收其他节点(例如服务器、kdc等等中的至少一个)发送给第二节点的,或者还可以是在第二节点中预先配置(例如在出厂设置时配置对应的口令)。
328.第二节点的id为第二节点的永久id(或者也称为真实id、固定id等),例如手机终端的国际移动设备识别码(international mobile equipment identity,imei)就可以理解为手机终端的永久id,通过永久id可以标识节点的身份。
329.第二节点基于安全参数对第二节点的id进行加密得到id密文,至少可以有如下几种可能的实现方式:
330.实现方式一:第二节点根据安全参数,通过加密算法对第二节点的id进行加密,得到id密文。具体的,以安全参数为psk为例,第二节点根据psk,通过加密算法enc,生成id密文idc,例如:idc=enc(psk,ide),其中enc可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。再如,以安全参数为第一口令pw为例,第二接待节点根据第一口令pw,通过加密算法enc,生成id密文idc,例如:idc=enc(pw,ide)。
331.实现方式二:第二节点根据安全参数确定第一保护密钥,根据第一保护密钥对第二节点的id进行加密,得到id密文。
332.其中,该第一保护密钥是基于安全参数确定的。例如,第一节点将安全参数与秘密值kor进行异或操作得到第一保护密钥,该秘密值kor可以是预先定义或者预先配置的秘密值,或者可以是第一节点与第二节点之间协商的得到秘密值。具体地,以安全参数为第一节点与第二节点之间的psk、预先定义或者预先配置的秘密值为kor为例,第一保护密钥k1满足如下公式:k1=psk

kor,其中,

指异或操作。需要说明的是,此处为了表明该秘密值kor可以与安全参数进行异或操作,因此描述为秘密值kor,具体实现过程中可以有其它名称(例如可以为某一会话密钥等)或者也可以不进行命名。
333.进一步可选的,第二节点可以基于安全参数和散列算法生成第一保护密钥,使用第一保护密钥加密第二节点的id。其中,该第一保护密钥也可以理解为安全参数的哈希值。例如,第一保护密钥k1满足:k1=hash(psk),或者满足:k1=hash(pw)。例如,生成id密文idc的方式满足如下公式:idc=enc(k1,ide)。
334.可替换的,第二节点可以基于安全参数和kdf,生成第一保护密钥。进一步的可选的,生成第一保护密钥时还可以有其他的参数,例如新鲜性参数等。以安全参数为psk为例,第二节点根据psk、fresh和kdf可以生成第一保护密钥k1,例如:k1=kdf(psk,fresh),其中fresh1可以为第二节点确定的新鲜性参数(便于描述称为第一新鲜性参数),例如可以是随机数noncee。再如,以安全参数为第一口令pw为例,第二节点根据第一口令pw可以生成第一保护密钥k1,例如:k1=kdf(pw,fresh)。第一节点使用第一保护密钥k1加密第一节点的id,得到id密文idc,例如:idc=enc(k1,ide),其中enc可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。
335.需要说明的是,这里是为了更清楚的阐述方案以两个步骤的方式解释如何得到第一保护密钥,在实际的处理中,也可以是通过一个步骤完成,第一保护密钥k1只是一个中间的结果,例如确定id密文idc的方式满足:idc=enc(kdf(psk,fresh),ide)或者满足idc=
enc(kdf(pw,fresh),ide)。
336.步骤s402:第二节点向第一节点发送第一信息。
337.具体的,第一信息包含id密文。第二节点向第一节点发送第一信息,相应的,第一节点接收来自第二节点的第一信息,从而可以获取第一信息中的内容。
338.可选的,该第一信息中还可以包括第一密钥协商参数,该第一密钥协商参数可以是基于密钥协商算法生成的,或者是根据预先配置或者预先定义的计算方式得到的。
339.进一步可选的,该第一信息中还包括第一新鲜性参数。例如,第一新鲜性参数可以是第二节点确定的一个随机数noncee。
340.可选的,该第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。可选的,该第一指示信息可以为第一信息中包括的第一字段。例如,该第一字段的取值为“0”指示第一信息中包含有所述id密文。这样一来,第一节点可以通过解析第一信息,从而确定是否要执行解密id密文的步骤。进一步的,该第一字段的取值为“1”时,指示第一信息中包含临时id。再如,第一信息中可以包含id类型,该id类型可以为id密文、临时id等等中的一项或者多项。
341.可选的,第一信息中还包括psk id,该pskid为第一节点与第二节点之间共享的psk对应的id。进一步的,在上述id密文是基于psk进行加密的情况下,第一节点可以根据第一信息中的pskid确定与第二节点共享的psk,然后使用该psk对id密文进行解密,获得第二节点的id。
342.可选的,第一信息中还包括第一口令对应的id。在一种可能设计中,不同的口令对应有不同的口令id,通过第一口令对应的id,从而可以确定用于解密第一密文的第一口令。进一步的,不同的口令可以对应有不同的权限控制,因此第一节点可以根据第一口令对应的id,确定第一口令,进而确定第二节点对应的权限信息等等。
343.可选的,具体实施过程中,第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息)。
344.步骤s403:第一节点基于安全参数对id密文进行解密得到第二节点的id。
345.具体的,由于id密文对应于安全参数和第二节点的id,因此第一节点可以根据安全参数和id密文,确定第二节点的id。
346.在一种实现方式中,根据协议规定,第二节点通过什么样的方式加密第二节点的id得到的id密文,第一节点则使用相对应的方式解密id密钥获取第二节点的id。具体地,第一节点基于安全参数对id密文进行解密得到第二节点的id,至少可以有如下几种可能的实现方式:
347.实现方式一:第一节点根据安全参数,通过解密算法(具体算法可以与加密算法相同)对id密文进行解密,得到第二节点的id。具体的,以安全参数为psk为例,第一节点根据psk,通过解密算法dec和密文idc,得到第二节点的id,例如:ide=dec(psk,idc),其中dec可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。再如,以安全参数为第一节点的第一口令pw为例,第一节点根据第一口令pw,通过解密算法dec和密文idc,得到第二节点的id,例如:ide=dec(pw,idc)。
348.实现方式二:第一节点根据安全参数确定第一保护密钥,根据第一保护密钥对id密文进行解密,得到第二节点的id。
349.进一步可选的,第一节点可以基于安全参数和散列算法生成第一保护密钥,使用第一保护密钥对id密文进行解密。其中,该第一保护密钥也可以理解为安全参数的哈希值。例如,第一保护密钥k1满足:k1=hash(psk),或者满足:k1=hash(pw)。例如,解密id密文idc得到第二节点的id的方式,满足如下公式:ide=dec(k1,idc)。
350.可替换的,第二节点可以基于安全参数和kdf,生成第一保护密钥。进一步的可选的,生成第一保护密钥时还可以有其他的参数,例如新鲜性参数等。以安全参数为psk为例,第一节点根据psk、fresh和kdf可以生成第一保护密钥k1,例如:k1=kdf(psk,fresh),其中fresh1可以为第一信息中的第一新鲜性参数noncee。再如,以安全参数为第一口令pw为例,第一节点根据第一口令pw可以生成第一保护密钥k1,例如:k1=kdf(pw,fresh)。第一节点使用第一保护密钥k1对id密文进行解密,得到第一节点的id,例如:ide=dec(k1,idc),其中dec可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。
351.需要说明的是,这里是为了更清楚的阐述方案以两个步骤的方式解释如何得到第一保护密钥,在实际的处理中,也可以是通过一个步骤完成,第一保护密钥k1只是一个中间的结果,即确定id密文idc的方式满足:ide=dec(kdf(psk,fresh),idc)或者满足ide=dec(kdf(pw,fresh),idc)。
352.步骤s404:第一节点向第二节点发送第二信息。
353.具体的,第二信息中包括为第二节点分配的临时id。其中,临时id用于临时标记所述第二节点的身份。例如,后续第二节点向第一节点发送信息时可以携带该临时id,第一节点根据该临时id,可以确定该信息来自第二节点。
354.具体实现还可以参见步骤s306中的具体描述,此处不再赘述。
355.在图4所示的实施例中,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此可以使用psk对真实id进行加密。相应的,根据该psk对id密文进行解密从而可以获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
356.或者,第二节点可以基于该第一口令加密第二节点的id,从而第一节点可以基于该第一口令解密id密文得到该第二节点的id。由于获取有该第一口令的节点通常是可信的,因此可以保证通信的安全性,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
357.以上图3以及图4所示的方法实施例中包含了很多可能的实现方案,下面结合图5、图6或者图7对其中的部分实现方案进行举例说明,需要说明的是,图5、图6或者图7未解释到的相关概念或者操作或者逻辑关系可以参照图3以及图4所示实施例中的相应描述。
358.请参见图5,图5是本技术实施例提供的又一种可能的通信方法示意图,该方法至少包括如下步骤:
359.可选的,上述通信方法可以包括步骤s501,具体如下:
360.步骤s501:第一节点确定临时公钥和临时公钥。这里的可选可以理解为,在实际的实施场景中,临时公钥和临时私钥可以是第一节点确定的,也可以不是第一节点确定的(例如为其它节点确定后发送给第一节点的),具体可以取决于第一节点的实现、预先的约定或者标准的定义。
361.具体的,第一节点可以周期或者非周期的产生临时密钥对(包含临时公钥和临时
私钥)。例如,第一节点可以每隔十分钟广播一次临时密钥对。再如,第一节点可以向第二节点发送单播或者组播形式的接入信息,在接收到第二节点对接入信息的响应后,确定临时密钥对用于通信加密。
362.步骤s502:第一节点发送证书、临时公钥以及临时公钥的签名。
363.具体的,第一节点可以通过单播方式向第二节点发送证书、临时公钥以及临时公钥的签名,或者,也可以通过广播或者组播方式发送证书、临时公钥以及临时公钥的签名。相应的,第二节点接收来自第一节点的证书、临时公钥以及临时公钥的签名。
364.可选的,该证书、临时公钥以及临时公钥的签名可以是包含在同一个信息中,可以是分别通过不同的信息发送给第二节点的。此处为了方便描述写作一个发送动作,具体实现中,第一节点可以通过发送一条或者多条信息,将证书、临时公钥以及临时公钥的签名发送给第二节点。
365.具体实现可以参见步骤s301中的详细描述。
366.步骤s503:第二节点根据证书、临时公钥的签名确定临时公钥验证通过。
367.具体实现可以参见步骤s302中的详细描述。
368.步骤s504:第二节点使用临时公钥加密第二节点的id,得到id密文。
369.具体实现可以参见步骤s303中的详细描述。
370.步骤s505:第二节点向第一节点发送关联请求信息。
371.具体的,关联请求信息中包含id密文。第二节点向第一节点发送关联请求信息,相应的,第一节点接收来自第二节点的关联请求信息。
372.可选的,该关联请求信息中还可以包括第一密钥协商参数kee,该第一密钥协商参数可以是基于密钥协商算法生成的,或者是根据预先配置或者预先定义的计算方式得到的。例如,以dh算法为例,第一节点与第二节点之间预先获取两个个数值较大的素数,分别素数p和素数g,基于dh算法,第二节点生成一个随机数a,并计算第一密钥协商参数kee=g
a mod p,其中,mod为模运算。该第一密钥协商参数kee用于发送给第一节点生成第一密钥。需要说明的是,本技术实施例中仅以dh算法为例,具体实现过程中还包括其它的密钥协商算法,相应的,也生成具体使用的密钥协商算法的密钥协商参数,此处不再一一例举。
373.可选的,该关联请求信息中还包括第一新鲜性参数noncee。
374.可选的,在第一公钥对应有密钥对的标识时,第一信息中还包含第一公钥对应有密钥对的标识,便于第一节点使用该密钥对的标识确定用于解密密文的第一私钥。
375.可选的,该第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。可选的,该第一指示信息可以为第一信息中包括的第一字段。例如,该第一字段的取值为“0”指示第一信息中包含有所述id密文。这样一来,第一节点可以通过解析第一信息,从而确定是否要执行解密id密文的步骤。进一步的,该第一字段的取值为“1”时,指示第一信息中包含临时id。再如,第一信息中可以包含id类型,该id类型可以为id密文、临时id等等中的一项或者多项。
376.可选的,第一信息中还包括psk id,该psk id为第一节点与第二节点之间共享的psk对应的id。进一步的,该psk id可以用于第一节点确定其与第二节点共享的psk。
377.步骤s506:第一节点根据临时私钥解密id密文,得到第二节点的id。
378.具体实现可以参见步骤s305中的详细描述。
379.可选的,上述通信方法可以包括步骤s505

步骤s515,具体如下:
380.步骤s507:第一节点根据第一密钥协商参数和密钥协商算法确定第一密钥。
381.具体的,第一节点通过密钥协商算法可以确定第一节点在密钥协商过程中的私钥,从而根据kee和第一节点在密钥协商过程中的私钥确定第一密钥。
382.例如,以dh算法为例,由于kee=g
a mod p,第一节点可以基于密钥协商算法确定一个随机数b,第一密钥kdh满足如下公式:kdh=kee
b mod p。
383.进一步的,该第一密钥可以用于后续通信加密或者用于推演用于通信加密的密钥(例如推演加密密钥、完整性保护密钥等等中的一个或者多个)。
384.步骤s508:第一节点生成第一身份认证信息。
385.具体的,第一节点根据生成第一身份认证信息,至少有以下几种实现方式:
386.实现方式一:在第一节点中存在与第二节点之间的psk的情况下,第一节点根据psk,以及关联请求信息、关联请求信息中的部分参数(例如第一新鲜性参数noncee)、第二新鲜性参数noncea、或者该第一身份认证信息所在的安全上下文请求信息(或者具体为其中的部分参数)中的一项或者多项生成第一身份认证信息autha。其中,第二新鲜性参数为第一节点确定的nonce、计数器值、序列号等中的一个。
387.例如,第一身份认证信息autha满足如下公式:autha=kdf(psk,关联请求信息,安全上下文请求信息)。
388.再如,第一身份认证信息autha满足如下公式:autha=kdf(psk,noncee,noncea)。
389.实现方式二:在第一节点中存在与第二节点之间的psk的情况下,第一节点根据psk生成第二密钥,使用第二密钥得到第一身份认证信息。
390.可选的,第一节点根据psk和其他信息生成第二密钥,该其他信息包括第一新鲜性参数noncee、第二新鲜性参数noncea、第一节点的id、第二节点的id和密钥标识中的一项或者多项。其中,密钥标识是预先定义或者预先配置的标识,用于指示生成的密钥的种类,可以是字符串、数字等等。例如,第二密钥kauth满足如下公式:kauth=kdf(psk,noncee,nocnea,ida,ide,“authentication”),ida指示第一节点的id,ide指示第二节点的id,“authentication”为一种可选的密钥标识。
391.第一节点根据第二密钥以及关联请求信息、关联请求信息中的部分参数(例如第一新鲜性参数noncee)、第二新鲜性参数noncea、或者该第一身份认证信息所在的安全上下文请求信息(或者具体为其中的部分参数)中的一项或者多项生成第一身份认证信息autha。
392.例如,第一身份认证信息autha满足如下公式:autha=kdf(kauth,关联请求信息,安全上下文请求信息)。
393.再如,第一身份认证信息autha满足如下公式:autha=kdf(kauth,noncee,noncea)。
394.实现方式三:在第一节点中存在与第二节点之间的psk的情况下,第一节点根据第一密钥和psk生成第二密钥,使用第二密钥得到第一身份认证信息。
395.可选的,第一节点根据第一密钥kdh、psk和其他信息生成第二密钥,该其他信息包括第一新鲜性参数noncee、第二新鲜性参数noncea、第一节点的id、第二节点的id和密钥标识中的一项或者多项。其中,密钥标识是预先定义或者预先配置的标识,用于指示生成的密
钥的种类,可以是字符串、数字等等。例如,第二密钥kauth满足如下公式:kauth=kdf(kdh||psk,noncee,nocnea,ida,ide,“authentication”),其中,“||”可以表示字符串连接(仅为示例,具体实现过程中也可以不进行连接,例如分别作为两个输入参数),ida指示第一节点的id,ide指示第二节点的id,“authentication”为一种可选的密钥标识。
396.第一节点根据第二密钥以及关联请求信息、关联请求信息中的部分参数(例如第一新鲜性参数noncee)、第二新鲜性参数noncea、或者该第一身份认证信息所在的安全上下文请求信息(或者具体为其中的部分参数)中的一项或者多项生成第一身份认证信息autha。
397.例如,第一身份认证信息autha满足如下公式:autha=kdf(kauth,关联请求信息,安全上下文请求信息)。
398.再如,第一身份认证信息autha满足如下公式:autha=kdf(kauth,noncee,noncea)。
399.需要说明的是,这里是为了更清楚的阐述方案以两个步骤的方式解释如何得到第二密钥kauth,在实际的处理中,也可以是通过一个步骤完成,第二密钥kauth只是一个中间的结果。
400.可替代的,第一密钥kdh也可以替换为根据第一密钥kdh派生得到的密钥kgt,例如:kgt=kdf(kdh,noncee,noncea),又或者,kgt=kdf(kdh,fresh),其中,fresh为新鲜性参数,可以使得每次根据kdh派生得到的kgt都是不同的。具体可以参考图3所示实施例的相关描述,此处不再赘述。
401.步骤s509:第一节点向第二节点发送安全上下文请求信息。
402.具体的,安全上下文请求信息中包括第二身份认证信息、第二密钥协商参数kea、第二新鲜性参数。可选的,还可以包括第一身份认证信息。
403.可选的,该关联请求信息中还可以包括第一密钥协商参数kee,该第一密钥协商参数可以是基于密钥协商算法生成的,或者是根据预先配置或者预先定义的计算方式得到的。例如,以dh算法为例,第一节点与第二节点之间预先获取两个个数值较大的素数,分别素数p和素数g,基于dh算法,第二节点生成一个随机数a,并计算第一密钥协商参数kee=g
a mod p,其中,mod为模运算。该第一密钥协商参数kee用于发送给第一节点生成第一密钥。需要说明的是,本技术实施例中仅以dh算法为例,具体实现过程中还包括其它的密钥协商算法,相应的,也生成具体使用的密钥协商算法的密钥协商参数,此处不再一一例举。
404.其中,该第二密钥协商参数可以是基于密钥协商算法生成的,或者是根据预先配置或者预先定义的计算方式得到的。例如,以dh算法为例,第一节点与第二节点之间预先获取两个个数值较大的素数,分别素数p和素数g,基于dh算法,第一节点生成一个随机数b,并计算第二密钥协商参数kea=g
b mod p,其中,mod为模运算。该第二密钥协商参数kea用于发送给第二节点生成第一密钥。需要说明的是,本技术实施例中仅以dh算法为例,具体实现过程中还包括其它的密钥协商算法,相应的,也生成具体使用的密钥协商算法的密钥协商参数,此处不再一一例举。
405.步骤s510:第二节点根据第二密钥协商参数和密钥协商算法确定第一密钥。
406.具体的,第二节点通过密钥协商算法可以确定第二节点在密钥协商过程中的私钥,从而根据kee和第一节点在密钥协商过程中的私钥确定第一密钥。
407.例如,以dh算法为例,由于kea=g
b mod p,第一密钥kdh满足如下公式:kdh=kea
a mod p。由于kee
b
mod p=(g
a
mod p)
b
mod p=g
ab
mod p=(g
b
mod p)
a
mod p=kea
a
mod p,因此第一节点与第二节点确定的kdh是相同的。
408.步骤s511:第二节点根据第一身份认证信息确定第一节点的身份认证通过。
409.在一种可选的方案中,根据协议规定,第一节点使用什么参数生成第一身份认证信息,则第二节点也应当使用相同的参数生成校验信息,如果校验信息与第一身份认证信息相同,则认为验证通过。例如,第一身份认证信息是通过kdf生成的,因此第二节点可以通过kdf生成校验信息,也称为校验值check2,然后通过校验信息验证第一身份认证信息是否正确。
410.下面进行举例说明:
411.例如,若第一身份认证信息autha=kdf(kauth,关联请求信息,安全上下文请求信息),则第二节点根据第一密钥和/或psk确定kauth,生成校验值check2=kdf(kauth,关联请求信息,安全上下文请求信息),若校验值check2与autha相同,则确定第一节点的身份认证通过。
412.可选的,若第一身份认证信息验证不通过,第二节点可以断开与第一节点之间的通信连接。
413.步骤s512:第二节点生成第二身份认证信息。
414.具体的,第二节点生成第二身份认证信息的实现可以参考步骤s508中第一节点侧的相关描述。
415.例如,在第二节点中存在与第一节点对应之间的psk的情况下,第二节点根据psk生成的第二身份认证信息authe可以满足如下公式:authe=kdf(psk,安全上下文请求信息,安全上下文响应信息)。
416.再如,在第二节点中存在与第一节点对应之间的psk的情况下,第二节点根据第一密钥kdh和/或psk确定第二密钥kauth,使用第二kauth生成的第二身份认证信息authe可以满足如下公式:authe=kdf(kauth,安全上下文请求信息,安全上下文响应信息)。
417.步骤s513:第二节点向第一节点发送安全上下文响应信息。
418.可选的,安全上下文请求信息中包括第二身份认证信息。
419.步骤s514:第一节点根据第二身份认证信息确定第二节点的身份认证通过。
420.在一种可选的方案中,根据协议规定,第二节点使用什么参数生成第二身份认证信息,则第一节点也应当使用相同的参数生成校验信息,如果校验信息与第二身份认证信息相同,则认为验证通过。例如,第二身份认证信息是通过kdf生成的,因此第二以节点可以通过kdf生成校验信息,也称为校验值check1,然后通过校验信息验证第一身份认证信息是否正确。下面进行举例说明:
421.例如,若第二身份认证信息authe=kdf(kauth,安全上下文请求信息,安全上下文响应信息),则第一节点根据第一密钥和/或psk确定kauth,生成校验值check1=kdf(kauth,安全上下文请求信息,安全上下文响应信息),若校验值check1与authe相同,则确定第二节点的身份认证通过。
422.可选的,若第二身份认证信息验证不通过,第一节点可以断开与第二节点之间的通信连接。
423.步骤s515:第一节点为第二节点分配临时id。
424.具体的,临时id用于临时标记所述第二节点的身份。进一步的,还可以存储id(永久id)与临时id的对应关系。
425.其中,临时id可以是通过固定的算法分配的,或者随机分配的。例如,第一节点预先定义、预先设置或者根据协议规定有临时id的长度和/或格式(例如包含数字、大写字母、小写字母等等中的一个或者多个),根据该长度和/或格式随机为第二节点分配临时id。
426.可选的,第一节点确定第二节点的身份可信,为第二节点分配临时id。例如,可以通过步骤s507

步骤s514中描述的方式确定第二节点的身份可信。
427.步骤s516:第一节点向第二节点发送关联建立信息。
428.具体实现可以参见步骤s305的相关描述。
429.可选的,上述通信方法可以包括步骤s517,具体如下:
430.步骤s517:第二节点向第一节点发送关联完成信息。
431.具体的,关联完成信息用于指示关联完成或者包含用于指示关联完成的信息。
432.在图5所示的实施例中,第二节点通过临时公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而临时公钥的来源和完整性可以通过临时公钥的签名来进行保护。进一步的,第二节点可以根据临时公钥的签名验证临时公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,第一节点通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
433.请参见图6,图6是本技术实施例提供的又一种可能的通信方法示意图,该方法至少包括如下步骤:
434.步骤s601:第二节点基于psk对第二节点的id进行加密得到id密文。
435.具体的,第二节点基于psk对第二节点的id进行加密得到id密文,至少可以有如下几种可能的实现方式:
436.实现方式一:第二节点根据psk,通过加密算法对第二节点的id进行加密,得到id密文。具体的,第二节点根据psk,通过加密算法enc,生成id密文idc,例如:idc=enc(psk,ide),其中enc可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。
437.实现方式二:第二节点根据psk生成第一保护密钥,根据第一保护密钥对第二节点的id进行加密,得到id密文。
438.进一步可选的,第二节点可以使用psk和散列算法生成第一保护密钥,使用第一保护密钥加密第二节点的id。其中,该第一保护密钥也可以理解为psk的哈希值。例如,第一保护密钥k1满足:k1=hash(psk)。进一步的,生成id密文idc的方式满足如下公式:idc=enc(k1,ide)。
439.可替换的,第二节点可以基于psk和kdf,生成第一保护密钥。进一步的可选的,生成第一保护密钥时还可以有其他的参数,例如新鲜性参数等。例如:k1=kdf(psk,fresh)。
440.需要说明的是,这里是为了更清楚的阐述方案以两个步骤的方式解释如何得到第一保护密钥,在实际的处理中,也可以是通过一个步骤完成,第一保护密钥k1只是一个中间的结果,例如确定id密文idc的方式满足:idc=enc(kdf(psk,fresh),ide)。
441.步骤s602:第二节点向第一节点发送关联请求信息。
442.具体的,关联请求信息包含id密文。第二节点向第一节点发送关联请求信息,相应的,第一节点接收来自第二节点的关联请求信息,从而可以获取关联请求信息中的内容。
443.可选的,该关联请求信息中还可以包括第一密钥协商参数,该第一密钥协商参数可以是基于密钥协商算法生成的,或者是根据预先配置或者预先定义的计算方式得到的。
444.进一步可选的,该关联请求信息中还包括第一新鲜性参数。例如,第一新鲜性参数可以是第二节点确定的一个随机数noncee。
445.可选的,该关联请求信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。可选的,该第一指示信息可以为第一信息中包括的第一字段。例如,该第一字段的取值为“0”指示第一信息中包含有所述id密文。这样一来,第一节点可以通过解析第一信息,从而确定是否要执行解密id密文的步骤。进一步的,该第一字段的取值为“1”时,指示第一信息中包含临时id。再如,第一信息中可以包含id类型,该id类型可以为id密文、临时id等等中的一项或者多项。
446.可选的,关联请求信息中还包括psk id,该psk id为第一节点与第二节点之间共享的psk对应的id。进一步的,在上述id密文是基于psk进行加密的情况下,第一节点可以根据关联请求信息中的psk id确定与第二节点共享的psk,然后使用该psk对id密文进行解密,获得第二节点的id。
447.步骤s603:第一节点基于psk对id密文进行解密得到第二节点的id。
448.具体的,由于id密文对应于psk和第二节点的id,因此第一节点可以根据psk和id密文,确定第二节点的id。
449.在一种实现方式中,根据协议规定,第二节点通过什么样的方式加密第二节点的id得到的id密文,第一节点则使用相对应的方式解密id密钥获取第二节点的id。具体地,第一节点基于psk对id密文进行解密得到第二节点的id,至少可以有如下几种可能的实现方式:
450.实现方式一:第一节点根据psk,通过解密算法(具体算法可以与加密算法相同)对id密文进行解密,得到第二节点的id。例如:ide=dec(psk,idc),其中dec可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。
451.实现方式二:第一节点根据psk生成第一保护密钥,根据第一保护密钥对id密文进行解密,得到第二节点的id。
452.进一步可选的,第一节点可以基于psk和散列算法生成第一保护密钥,使用第一保护密钥对id密文进行解密。其中,该第一保护密钥也可以理解为psk的哈希值。例如,第一保护密钥k1满足:k1=hash(psk)。例如,解密id密文idc得到第二节点的id的方式,满足如下公式:ide=dec(k1,idc)。
453.具体实现可以参见步骤s403中的具体描述。
454.可选的,上述通信方法可以包括步骤s604

步骤s613,步骤s604

步骤s613中的具体实现可以参见步骤s505

步骤s515中的对应步骤的描述,此处不再赘述。s604

步骤s613具体如下:
455.步骤s604:第一节点根据第一密钥协商参数和密钥协商算法确定第一密钥。
456.步骤s605:第一节点根据第一密钥生成第一身份认证信息。
457.步骤s606:第一节点向第二节点发送安全上下文请求信息。
458.步骤s607:第二节点根据第二密钥协商参数和密钥协商算法确定第一密钥。
459.步骤s608:第二节点根据第一身份认证信息确定第一节点的身份认证通过。
460.步骤s609:第二节点生成第二身份认证信息。
461.步骤s610:第二节点向第一节点发送安全上下文响应信息。
462.步骤s611:第一节点根据第二身份认证信息确定第二节点的身份认证通过。
463.步骤s612:第一节点为第二节点分配临时id。
464.步骤s613:第一节点向第二节点发送关联建立信息。
465.具体实现可以参见步骤s404的相关描述。
466.步骤s614:第二节点向第一节点发送关联完成信息。
467.具体的,关联完成信息用于指示关联完成或者包含用于指示关联完成的信息。第二节点向第一节点发送关联完成信息,相应的,第一节点则接收来自第二节点的关联完成信息。
468.在图6所示的实施例中,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此可以使用psk对真实id进行加密。相应的,根据该psk对id密文进行解密从而可以获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
469.请参见图7,图7是本技术实施例提供的又一种可能的通信方法示意图,该方法至少包括如下步骤:
470.步骤s701:第二节点基于第一口令对第二节点的id进行加密得到id密文。
471.具体的,第二节点基于第一口令对第二节点的id进行加密得到id密文,至少可以有如下几种可能的实现方式:
472.实现方式一:第二节点根据第一口令,通过加密算法对第二节点的id进行加密,得到id密文。具体的,第二节点根据第一口令pw,通过加密算法enc,生成id密文idc,例如:idc=enc(pw,ide),其中enc可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。
473.实现方式二:第二节点根据第一口令生成第一保护密钥,根据第一保护密钥对第二节点的id进行加密,得到id密文。
474.进一步可选的,第二节点可以使用第一口令和散列算法生成第一保护密钥,使用第一保护密钥加密第二节点的id。其中,该第一保护密钥也可以理解为第一口令的哈希值。例如,第一保护密钥k1满足:k1=hash(pw)。进一步的,生成id密文idc的方式满足如下公式:idc=enc(k1,ide)。
475.可替换的,第二节点可以基于第一口令和kdf,生成第一保护密钥。进一步的可选的,生成第一保护密钥时还可以有其他的参数,例如新鲜性参数等。例如:k1=kdf(pw,fresh)。
476.需要说明的是,这里是为了更清楚的阐述方案以两个步骤的方式解释如何得到第一保护密钥,在实际的处理中,也可以是通过一个步骤完成,第一保护密钥k1只是一个中间的结果,例如确定id密文idc的方式满足:idc=enc(kdf(pw,fresh),ide)。
477.步骤s702:第二节点向第一节点发送关联请求信息。
478.具体的,关联请求信息包含id密文。第二节点向第一节点发送关联请求信息,相应
的,第一节点接收来自第二节点的关联请求信息,从而可以获取关联请求信息中的内容。
479.可选的,该关联请求信息中还可以包括第一密钥协商参数,该第一密钥协商参数可以是基于密钥协商算法生成的,或者是根据预先配置或者预先定义的计算方式得到的。
480.进一步可选的,该关联请求信息中还包括第一新鲜性参数。例如,第一新鲜性参数可以是第二节点确定的一个随机数noncee。
481.可选的,该关联请求信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。可选的,该第一指示信息可以为第一信息中包括的第一字段。例如,该第一字段的取值为“0”指示第一信息中包含有所述id密文。这样一来,第一节点可以通过解析第一信息,从而确定是否要执行解密id密文的步骤。进一步的,该第一字段的取值为“1”时,指示第一信息中包含临时id。再如,第一信息中可以包含id类型,该id类型可以为id密文、临时id等等中的一项或者多项。
482.可选的,关联请求信息中还包括psk id,该psk id为第一节点与第二节点之间共享的psk对应的id。进一步的,在上述id密文是基于psk进行加密的情况下,第一节点可以根据关联请求信息中的psk id确定与第二节点共享的psk,然后使用该psk对id密文进行解密,获得第二节点的id。
483.可选的,关联请求信息中还包括第一口令对应的id。在一种可能设计中,不同的口令对应有不同的口令id,通过第一口令对应的id,从而可以确定用于解密第一密文的第一口令。进一步的,不同的口令可以对应有不同的权限控制,因此第一节点可以根据第一口令对应的id,确定第一口令,进而确定第二节点对应的权限信息等等。
484.步骤s703:第一节点基于第一口令对id密文进行解密得到第二节点的id。
485.具体的,由于id密文对应于第一口令和第二节点的id,因此第一节点可以根据第一口令和id密文,确定第二节点的id。
486.在一种实现方式中,根据协议规定,第二节点通过什么样的方式加密第二节点的id得到的id密文,第一节点则使用相对应的方式解密id密钥获取第二节点的id。具体地,第一节点基于第一口令对id密文进行解密得到第二节点的id,至少可以有如下几种可能的实现方式:
487.实现方式一:第一节点根据第一口令pw,通过解密算法(具体算法可以与加密算法相同)对id密文进行解密,得到第二节点的id。例如:ide=dec(pw,idc),其中dec可以为aes、des、3des、aes

ccm、aes

gcm等算法中的一个或者多个。
488.实现方式二:第一节点根据第一口令生成第一保护密钥,根据第一保护密钥对id密文进行解密,得到第二节点的id。
489.进一步可选的,第一节点可以基于第一口令和散列算法生成第一保护密钥,使用第一保护密钥对id密文进行解密。其中,该第一保护密钥也可以理解为psk的哈希值。例如,第一保护密钥k1满足:k1=hash(pw)。例如,解密id密文idc得到第二节点的id的方式,满足如下公式:ide=dec(k1,idc)。
490.具体实现可以参见步骤s403中的具体描述。
491.可选的,上述通信方法可以包括步骤s704

步骤s713,步骤s704

步骤s713中的具体实现可以参见步骤s505

步骤s515中的对应步骤的描述,此处不再赘述。s704

步骤s713具体如下:
492.步骤s704:第一节点根据第一密钥协商参数和密钥协商算法确定第一密钥。
493.步骤s705:第一节点根据第一密钥生成第一身份认证信息。
494.步骤s706:第一节点向第二节点发送安全上下文请求信息。
495.步骤s707:第二节点根据第二密钥协商参数和密钥协商算法确定第一密钥。
496.步骤s708:第二节点根据第一身份认证信息确定第一节点的身份认证通过。
497.步骤s709:第二节点生成第二身份认证信息。
498.步骤s710:第二节点向第一节点发送安全上下文响应信息。
499.步骤s711:第一节点根据第二身份认证信息确定第二节点的身份认证通过。
500.步骤s712:第一节点为第二节点分配临时id。
501.步骤s713:第一节点向第二节点发送关联建立信息。
502.具体实现可以参见步骤s404的相关描述。
503.步骤s714:第二节点向第一节点发送关联完成信息。
504.具体的,关联完成信息用于指示关联完成或者包含用于指示关联完成的信息。第二节点向第一节点发送关联完成信息,相应的,第一节点则接收来自第二节点的关联完成信息。
505.在图7所示的实施例中,第二节点可以基于第一口令加密第二节点的id,从而第一节点可以基于该第一口令解密id密文得到该第二节点的id。由于获取有该第一口令的节点通常是可信的,因此可以保证通信的安全性,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
506.上述详细阐述了本技术实施例的方法,下面提供了本技术实施例的装置。
507.请参见图8,图8是本技术实施例提供的一种通信装置80的结构示意图,该装置80可以为节点,也可以为节点中的一个器件,例如芯片或者集成电路等,该装置80可以包括发送单元801、接收单元802和处理单元803。该通信装置80用于实现前述的通信方法,例如图3或者图5所示实施例的通信方法。
508.在一种可能的实施方式中,发送单元801,用于发送第一公钥以及所述第一公钥的签名;
509.接收单元802,用于接收来自第二节点(t节点)的第一信息(关联请求信息),所述第一信息包含身份标识id密文,所述id密文对应于所述第一公钥以及所述第二节点的id;
510.处理单元803,用于根据所述第一公钥对应的第一私钥解密所述id密文,得到所述第二节点的id;
511.该发送单元801,还用于向所述第二节点发送第二信息(关联建立信息),所述第二信息包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。
512.本技术实施例中,第二节点通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,第二节点可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,上述通信装置80通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
513.在又一种可能的实施方式中,所述第一公钥为临时公钥,所述第一私钥为临时私
钥。
514.可以看出,由于临时密钥的存在的时长通常较短,相比长期密钥来说,临时密钥不容易被破解,因此使用临时公钥对真实id进行加密可以提高真实id的私密性。此外,由于长期密钥通常使用的期限较长,因此长期密钥被破解时,所有使用该密钥的通信的数据均收到影响,不具有前向安全。而临时密钥由于存在的时长通常较短,即使被破解,也不影响该临时密钥使用之前的通信数据的安全,提高了数据安全性。
515.在又一种可能的实施方式中,所述第一公钥为一次性公钥,所述第一私钥为一次性私钥。
516.可以看出,本技术实施例中使用的第一公钥和第一私钥可以是一次性密钥,即只用于该id的加密及解密。例如,使用第一私钥解密该id密文后,可以将该第一私钥删除,从而使得该私钥不容易被攻破,从而保护节点的真实id不被泄露,提高数据安全性。
517.在又一种可能的实施方式中,所述处理单元803,还用于基于数字证书(digital certificate,dc)对应的私钥对所述第一公钥进行签名,得到所述第一公钥的签名;
518.所述发送单元801,还用于向所述第二节点发送所述dc。
519.可以看出,dc可以用于验证第一公钥的来源。例如,证书中心为第一节点的公钥pk以及一些信息(例如对第一节点的描述信息等)生成dc,第二节点使用该dc对应的密钥对(即该公钥pk对应的私钥sk),通过“私钥签名,公钥验签”的方式,可以确定第一公钥来源于第一节点。
520.在一种具体的实施方式中,第一节点中存在一个长期密钥对(长期公钥pk和长期私钥sk),ca中心为长期公钥pk做认证,ca中心用自己的私钥cpk,对该长期公钥pk和一些相关信息(例如对第一节点的描述信息)一起加密生成dc。第一节点使用证书对应的私钥生成第一公钥的签名,将第一公钥、第一公钥的签名以及dc发送给第二节点,第二节点使用ca中心的公钥csk解密证书,可以确定该dc为ca颁发的,以及确定该dc中的长期公钥pk为第一节点的公钥,从而认证了长期公钥pk的来源。第二节点使用长期公钥对第一公钥的签名进行验签,从而确定第一公钥来自第一节点,从而使用第一公钥对id进行加密。
521.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
522.在又一种可能的实施方式中,所述处理单元803,还用于:
523.确定所述第二节点的身份认证通过;
524.为所述第二节点分配所述临时id。
525.在又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述处理单元,还用于根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
526.所述发送单元801,还用于向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
527.所述接收单元802,还用于接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
528.所述处理单元803,还用于根据所述第一密钥和所述第二身份认证信息确认所述第二节点的身份认证通过。
529.可以看出,上述通信装置通过密钥协商可以生成第一密钥,使用该第一密钥生成第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,上述通信装置也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
530.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
531.在又一种可能的实施方式中,所述接收单元802,还用于接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
532.需要说明的是,各个单元的实现还可以对应参照图3、图5所示的实施例的相应描述。该通信装置80可以为图3、图5所示实施例中的第一节点。
533.可以理解的,本技术各个装置实施例中,对多个单元或者模块的划分仅是一种根据功能进行的逻辑划分,不作为对装置具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,装置80在数据传输的过程中所执行的大致流程是相同的。例如,上述装置80中的接收单元802和发送单元801也可以集成为通信单元,该通信单元可以实现接收单元802和发送单元801所实现的功能。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元受处理单元的控制而执行相应的流程从而实现相应功能。
534.请参见图9,图9是本技术实施例提供的一种通信装置90的结构示意图,该装置90可以为节点,也可以为节点中的一个器件,例如芯片或者集成电路等,该装置90可以包括接收单元901、处理单元902和发送单元903。该通信装置90用于实现前述的通信方法,例如图4、图6或者图7所示实施例的通信方法。
535.在一种可能的实施方式中,该接收单元901,用于接收来自第二节点的第一信息,所述第一信息包含身份标识id密文,所述id密文对应第一保护密钥和所述第二节点的id;
536.处理单元902,用于基于安全参数确定所述第一保护密钥,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
537.所述处理单元902,还用于根据所述第一保护密钥解密所述id密文,得到所述第二节点的id;
538.发送单元903,用于向所述第二节点发送第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。
539.可以看出,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此可以使用psk对真实id进行加密。相应的,上述通信装置90可以根据该psk对id密文进行解密,从而获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
540.而第一节点的第一口令,可以看作是第一节点的接入密码(password),具体可以为第一节点为了让第二节点可以接入从而预先配置或者预先定义的密码,或者第一节点与
第二节点之间约定的秘密值。例如,手机接入支持无线保真(wireless fidelity,wi

fi)协议的路由器的场景中,手机终端可以使用“wi

fi密码”接入路由器,该“wi

fi密码”可以理解为路由器的第一口令。
541.可以看出,第二节点可以基于该第一口令加密第二节点的id,从而上述通信装置90可以基于该第一口令解密id密文得到该第二节点的id。由于获取有该第一口令的节点通常是可信的,因此可以保证通信的安全性,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
542.在又一种可能的实施方式中,所述处理单元902,具体用于:
543.根据所述安全参数、第一新鲜性参数,确定所述第一保护密钥。
544.上述说明了一种解密的方法,由于解密使用的第一保护密钥与加密使用的第一保护密钥是相对应的,因此加密使用的第一保护密钥也是基于所述安全参数和所述第一新鲜性参数生成的。在加密的过程中,由于新鲜性参数的值在不同时刻的取值是不同的,使得每一次加密第一节点的id的第一保护密钥是不同的,从而提高了组密钥的私密性。
545.在又一种可能的实施方式中,所述处理单元902,具体用于:
546.根据所述安全参数,根据密码算法确定所述第一保护密钥。
547.在又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
548.在又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
549.在又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id;所述第一信息中还包含所述第一pskid。
550.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
551.在又一种可能的实施方式中,所述处理单元902还用于:
552.确定所述第二节点的身份认证通过;
553.为所述第二节点分配所述临时id。
554.在又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述处理单元902,还用于根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
555.所述发送单元,还用于向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
556.所述接收单元901,还用于接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
557.所述处理单元902,还用于根据所述第一密钥和所述第二身份认证信息确认所述第二节点的身份认证通过。
558.可以看出,上述通信装置90通过密钥协商可以生成第一密钥,使用该第一密钥生成第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,上述通信装置90也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点
的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
559.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
560.在又一种可能的实施方式中,所述接收单元901,还用于接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
561.需要说明的是,各个单元的实现还可以对应参照图4、图6或者图7所示的实施例的相应描述。该通信装置90可以为图4、图6或者图7所示实施例中的第一节点。
562.请参见图10,图10是本技术实施例提供的一种通信装置100的结构示意图,该装置100可以为节点,也可以为节点中的一个器件,例如芯片或者集成电路等,该装置100可以包括接收单元1001、处理单元1002和发送单元1003。该通信装置100用于实现前述的通信方法,例如图3或者图5所示实施例的通信方法。
563.在一种可能的实施方式中,接收单元1001,用于接收来自第一节点的第一公钥和所述第一公钥的签名;
564.处理单元1002,用于根据所述第一公钥的签名确定所述第一公钥的完整性验证通过;
565.发送单元1003,用于向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
566.所述接收单元1001,还用于接收来自所述第一节点的第二信息(关联建立信息),所述第二信息中包括与所述第二节点的id对应的临时id,所述临时id用于临时标记所述第二节点的身份。
567.本技术实施例中,上述通信装置100通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,上述通信装置100可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,第一节点通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
568.具体实施过程中,所述第一信息也可以称为关联请求信息(具体场景中也可以称为关联请求消息),所述第二信息也可以称为关联建立信息(具体场景中也可以称为关联建立消息)。
569.在一种可能的实施方式中,所述第一公钥为临时公钥。
570.在又一种可能的实施方式中,所述第一公钥为一次性公钥。
571.在又一种可能的实施方式中,所述接收单元1001,还用于接收来自所述第一节点的数字证书dc;
572.所述处理单元1002,还用于根据所述dc对应的公钥和所述第一公钥的签名,确定所述第一公钥验证通过。
573.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指
示信息用于指示所述关联请求中包含有所述id密文。
574.在又一种可能的实施方式中,所述接收单元1001,还用于接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
575.所述处理单元1002,还用于根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
576.所述处理单元1002,还用于根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
577.所述发送单元1003,还用于向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
578.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
579.在又一种可能的实施方式中,所述发送单元1003,还用于向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
580.需要说明的是,各个单元的实现还可以对应参照图3或者图5所示的实施例的相应描述。该通信装置100可以为图3或者图5所示实施例中的第二节点。
581.请参见图11,图11是本技术实施例提供的一种通信装置110的结构示意图,该装置110可以为节点,也可以为节点中的一个器件,例如芯片或者集成电路等,该装置110可以包括处理单元1101、发送单元1102和接收单元1103。该通信装置110用于实现前述的通信方法,例如图4、图6或者图7所示实施例的通信方法。
582.在一种可能的实施方式中,处理单元1101,用于基于安全参数确定第一保护密钥,所述安全参数为第一节点与第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
583.所述处理单元1101,还用于根据所述第一保护密钥对第二节点的身份标识id进行加密得到id密文;
584.发送单元1102,用于向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
585.接收单元1103,用于接收来自所述第一节点的第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用临时标记所述第二节点的身份。
586.可以看出,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此上述通信装置可以使用psk对真实id进行加密。相应的,第一节点根据该psk对id密文进行解密从而可以获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
587.在一种可能的实施方式中,所述处理单元1101,具体用于:
588.根据所述安全参数和第一新鲜性参数,确定所述第一保护密钥。
589.在又一种可能的实施方式中,所述处理单元1101,具体用于:
590.根据所述安全参数,根据密码算法确定所述第一保护密钥。
591.在又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函
数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
592.在又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
593.在又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id;所述第一信息中还包含所述第一pskid。
594.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求中包含有所述id密文。
595.在又一种可能的实施方式中,所述接收单元1103,还用于接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
596.所述处理单元1101,还用于根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
597.所述处理单元1101,还用于根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
598.所述发送单元1102,还用于向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
599.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
600.在又一种可能的实施方式中,所述发送单元1102,还用于向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
601.需要说明的是,各个单元的实现还可以对应参照图4、图6或者图7所示的实施例的相应描述。该通信装置110可以为图4、图6或者图7所示实施例中的第二节点。
602.请参见图12,图12是本技术实施例提供的一种通信装置120的结构示意图,该通信装置120可以为节点,也可以为节点中的一个器件,例如芯片或者集成电路等。该装置120可以包括至少一个处理器1202和通信接口1204。进一步可选的,所述通信装置还可以包括至少一个存储器1201。更进一步可选的,还可以包含总线1203,其中,存储器1201、处理器1202和通信接口1204通过总线1203相连。
603.其中,存储器1201用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器1201可以是随机存储记忆体(random access memory,ram)、只读存储器(read

only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、或便携式只读存储器(compact disc read

only memory,cd

rom)等等中的一种或者多种的组合。
604.处理器1202是进行算术运算和/或逻辑运算的模块,具体可以是中央处理器(central processing unit,cpu)、图片处理器(graphics processing unit,gpu)、微处理器(microprocessor unit,mpu)、专用集成电路(application specific integrated circuit,asic)、现场可编程逻辑门阵列(field programmable gate array,fpga)、复杂可
编程逻辑器件(complex programmable logic device,cpld)、协处理器(协助中央处理器完成相应处理和应用)、微控制单元(microcontroller unit,mcu)等处理模块中的一种或者多种的组合。
605.通信接口1204可以用于为所述至少一个处理器提供信息输入或者输出。和/或所述通信接口可以用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(wi

fi、蓝牙、通用无线传输、车载短距通信技术等)接口。可选的,通信接口1204还可以包括与接口耦合的发射器(如射频发射器、天线等),或者接收器等。
606.该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行前述的通信方法,例如图3、图4、图5、图6、图7所示实施例所描述的通信方法。
607.在一种设计中,该通信装置120可以为图3或者图5所示实施例中的第一节点。该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行以下操作:
608.通过通信接口1204发送第一公钥以及所述第一公钥的签名;
609.通过通信接口1204接收来自第二节点(t节点)的第一信息(关联请求信息),所述第一信息包含身份标识id密文,所述id密文对应于所述第一公钥以及所述第二节点的id;
610.根据所述第一公钥对应的第一私钥解密所述id密文,得到所述第二节点的id;
611.向所述第二节点发送第二信息(关联建立信息),所述第二信息包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。
612.本技术实施例中,第二节点通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,第二节点可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,上述通信装置120通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
613.在又一种可能的实施方式中,所述第一公钥为临时公钥,所述第一私钥为临时私钥。
614.可以看出,由于临时密钥的存在的时长通常较短,相比长期密钥来说,临时密钥不容易被破解,因此使用临时公钥对真实id进行加密可以提高真实id的私密性。此外,由于长期密钥通常使用的期限较长,因此长期密钥被破解时,所有使用该密钥的通信的数据均收到影响,不具有前向安全。而临时密钥由于存在的时长通常较短,即使被破解,也不影响该临时密钥使用之前的通信数据的安全,提高了数据安全性。
615.在又一种可能的实施方式中,所述第一公钥为一次性公钥,所述第一私钥为一次性私钥。
616.可以看出,本技术实施例中使用的第一公钥和第一私钥可以是一次性密钥,即只用于该id的加密及解密。例如,使用第一私钥解密该id密文后,可以将该第一私钥删除,从而使得该私钥不容易被攻破,从而保护节点的真实id不被泄露,提高数据安全性。
617.在又一种可能的实施方式中,所述处理器1202,还用于:
618.基于数字证书(digital certificate,dc)对应的私钥对所述第一公钥进行签名,得到所述第一公钥的签名;
619.通过通信接口1204向所述第二节点发送所述dc。
620.可以看出,dc可以用于验证第一公钥的来源。例如,证书中心为第一节点的公钥pk以及一些信息(例如对第一节点的描述信息等)生成dc,第二节点使用该dc对应的密钥对(即该公钥pk对应的私钥sk),通过“私钥签名,公钥验签”的方式,可以确定第一公钥来源于第一节点。
621.在一种具体的实施方式中,第一节点中存在一个长期密钥对(长期公钥pk和长期私钥sk),ca中心为长期公钥pk做认证,ca中心用自己的私钥cpk,对该长期公钥pk和一些相关信息(例如对第一节点的描述信息)一起加密生成dc。第一节点使用证书对应的私钥生成第一公钥的签名,将第一公钥、第一公钥的签名以及dc发送给第二节点,第二节点使用ca中心的公钥csk解密证书,可以确定该dc为ca颁发的,以及确定该dc中的长期公钥pk为第一节点的公钥,从而认证了长期公钥pk的来源。第二节点使用长期公钥对第一公钥的签名进行验签,从而确定第一公钥来自第一节点,从而使用第一公钥对id进行加密。
622.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
623.在又一种可能的实施方式中,所述处理器1202,还用于:
624.确定所述第二节点的身份认证通过;
625.为所述第二节点分配所述临时id。
626.在又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述处理器元,还用于:
627.根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
628.通过通信接口1204向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
629.通过通信接口1204接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
630.根据所述第一密钥和所述第二身份认证信息确认所述第二节点的身份认证通过。
631.可以看出,上述通信装置通过密钥协商可以生成第一密钥,使用该第一密钥生成第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,上述通信装置也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
632.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
633.在又一种可能的实施方式中,所述处理器1202,还用于:
634.通过通信接口1204接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
635.具体实现还可以参考图3或者图5所示实施例中的详细描述,此处不再赘述。
636.在一种设计中,该通信装置120可以为图4、图6或者图7所示实施例中的第一节点。该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行以下
操作:
637.通过通信接口1204接收来自第二节点的第一信息,所述第一信息包含身份标识id密文,所述id密文对应第一保护密钥和所述第二节点的id;
638.基于安全参数确定所述第一保护密钥,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
639.根据所述第一保护密钥解密所述id密文,得到所述第二节点的id;
640.通过通信接口1204向所述第二节点发送第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用于临时标记所述第二节点的身份。
641.可以看出,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此可以使用psk对真实id进行加密。相应的,上述通信装置可以根据该psk对id密文进行解密,从而获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
642.而第一节点的第一口令,可以看作是第一节点的接入密码(password),具体可以为第一节点为了让第二节点可以接入从而预先配置或者预先定义的密码,或者第一节点与第二节点之间约定的秘密值。例如,手机接入支持无线保真(wireless fidelity,wi

fi)协议的路由器的场景中,手机终端可以使用“wi

fi密码”接入路由器,该“wi

fi密码”可以理解为路由器的第一口令。
643.可以看出,第二节点可以基于该第一口令加密第二节点的id,从而可以基于该第一口令解密id密文得到该第二节点的id。由于获取有该第一口令的节点通常是可信的,因此可以保证通信的安全性,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
644.在又一种可能的实施方式中,所述处理器1202,具体用于:
645.根据所述安全参数、第一新鲜性参数,确定所述第一保护密钥。
646.上述说明了一种解密的方法,由于解密使用的第一保护密钥与加密使用的第一保护密钥是相对应的,因此加密使用的第一保护密钥也是基于所述安全参数和所述第一新鲜性参数生成的。在加密的过程中,由于新鲜性参数的值在不同时刻的取值是不同的,使得每一次加密第一节点的id的第一保护密钥是不同的,从而提高了组密钥的私密性。
647.在又一种可能的实施方式中,所述处理器1202,具体用于:
648.根据所述安全参数,根据密码算法确定所述第一保护密钥。
649.在又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
650.在又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
651.在又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id;所述第一信息中还包含所述第一pskid。
652.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求信息中包含有所述id密文。
653.在又一种可能的实施方式中,所述处理器1202,还用于:
654.确定所述第二节点的身份认证通过;
655.为所述第二节点分配所述临时id。
656.在又一种可能的实施方式中,所述第一信息中还包含第一密钥协商参数;所述处理器1202,还用于:
657.根据所述第一密钥协商参数和密钥协商算法确定第一密钥;
658.通过通信接口1204向所述第二节点发送第三信息,所述第三信息包括第一身份认证信息和第二密钥协商参数,所述第一身份认证信息用于所述第一节点的身份认证;
659.通过通信接口1204接收来自所述第二节点的第四信息,所述第四信息中包括第二身份认证信息;
660.根据所述第一密钥和所述第二身份认证信息确认所述第二节点的身份认证通过。
661.可以看出,上述通信装置通过密钥协商可以生成第一密钥,使用该第一密钥生成第一身份认证信息,该第一身份认证信息用于第二节点验证身份。进一步的,上述通信装置也可以通过第二身份认证信息来验证第二节点的身份,若有攻击者想要冒用第二节点的身份标识时,由于无法伪造第一密钥,无法通过身份验证,进而避免了与不可信的节点通信,提高了节点的数据安全性。
662.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
663.在又一种可能的实施方式中,所述处理器,还用于:
664.通过通信接口1204接收来自第二节点的第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
665.具体实现还可以参考图4、图6或者图7所示实施例中的详细描述,此处不再赘述。
666.在一种设计中,该通信装置120可以为图3或者图5所示实施例中的第二节点。该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行以下操作:
667.通过通信接口1204接收来自第一节点的第一公钥和所述第一公钥的签名;
668.根据所述第一公钥的签名确定所述第一公钥的完整性验证通过;
669.通过通信接口1204向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
670.所述接收单元,还用于接收来自所述第一节点的第二信息(关联建立信息),所述第二信息中包括与所述第二节点的id对应的临时id,所述临时id用于临时标记所述第二节点的身份。
671.本技术实施例中,上述通信装置120通过第一公钥可以对id进行保护得到id密文,从而使得真实的id不被直接传输,而第一公钥的来源和完整性可以通过第一公钥的签名来进行保护。进一步的,上述通信装置120可以根据第一公钥的签名验证第一公钥,然后将id使用“公钥加密,私钥解密”的方式来传输。这样一来,第一节点通过解密id密文可以获取第二节点的真实id,后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
672.具体实施过程中,所述第一信息也可以称为关联请求信息(具体场景中也可以称
为关联请求消息),所述第二信息也可以称为关联建立信息(具体场景中也可以称为关联建立消息)。
673.在一种可能的实施方式中,所述第一公钥为临时公钥。
674.在又一种可能的实施方式中,所述第一公钥为一次性公钥。
675.在又一种可能的实施方式中,所述处理器,还用于:
676.通过通信接口1204接收来自所述第一节点的数字证书dc;
677.所述处理单元,还用于根据所述dc对应的公钥和所述第一公钥的签名,确定所述第一公钥验证通过。
678.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求中包含有所述id密文。
679.在又一种可能的实施方式中,所述处理器1202,还用于:
680.通过通信接口1204接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
681.根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
682.根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
683.通过通信接口1204向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
684.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
685.在又一种可能的实施方式中,所述处理器1202,还用于:
686.通过通信接口1204向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
687.具体实现还可以参考图3或者图5所示实施例中的详细描述,此处不再赘述。
688.在一种设计中,该通信装置120可以为图4、图6或者图7所示实施例中的第二节点。该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行以下操作:
689.基于安全参数确定第一保护密钥,所述安全参数为第一节点与第二节点之间的预共享密钥psk或者为所述第一节点的第一口令;
690.根据所述第一保护密钥对第二节点的身份标识id进行加密得到id密文;
691.通过通信接口1204向所述第一节点发送第一信息,所述第一信息包含身份标识id密文,所述id密文是通过所述第一保护密钥对第二节点的id进行加密得到的;
692.通过通信接口1204接收来自所述第一节点的第二信息,所述第二信息中包括与所述第二节点对应的临时id,所述临时id用临时标记所述第二节点的身份。
693.可以看出,第二节点中预先定义、预先配置或者预先生成有与第一节点共享的psk,因此上述通信装置可以使用psk对真实id进行加密。相应的,第一节点根据该psk对id密文进行解密从而可以获取第二节点的真实id,确定第二节点的身份。后续通信时可以使用临时id来标记第二节点的身份,从而保护节点的真实id不被泄露,提高数据安全性。
694.在一种可能的实施方式中,所述处理器1202,具体用于:
695.根据所述安全参数和第一新鲜性参数,确定所述第一保护密钥。
696.在又一种可能的实施方式中,所述处理器1202,具体用于:
697.根据所述安全参数,根据密码算法确定所述第一保护密钥。
698.在又一种可能的实施方式中,所述密码算法至少包括散列算法和/或密钥导出函数(key derivation function,kdf)。例如,根据第一节点的口令pw,通过散列算法hash,得到第一保护密钥k1,具体例如:k1=hash(pw)。再如,根据第一节点的口令pw的哈希值和第一新鲜性参数fresh1,通过kdf得到第一保护密钥k1,具体例如:k1=kdf(hash(pw,fresh1))。
699.在又一种可能的实施方式中,所述第一新鲜性参数为第一随机数。
700.在又一种可能的实施方式中,所述安全参数为第一节点与所述第二节点之间的预共享密钥psk;所述psk对应于第一psk id;所述第一信息中还包含所述第一pskid。
701.在又一种可能的实施方式中,所述第一信息中还包含第一指示信息,所述第一指示信息用于指示所述关联请求中包含有所述id密文。
702.在又一种可能的实施方式中,所述处理器1202,还用于:
703.通过通信接口1204接收来自第一节点的第三信息,所述第三信息包括第一身份认证信息和第二密钥协商算法参数;
704.根据所述第二密钥协商算法参数和密钥协商算法,确定第一密钥;
705.根据所述第一密钥和所述第一身份认证信息确认所述第一节点的身份认证通过;
706.通过通信接口1204向所述第一节点发送第四信息,所述第四信息包括第二身份认证信息;所述第二身份认证信息用于认证所述第二节点的身份。
707.具体实施过程中,所述第三信息也可以称为安全上下文请求信息(具体场景中也可以称为安全上下文请求消息),所述第四信息也可以称为安全上下文响应信息(具体场景中也可以称为安全上下文响应消息)。
708.在又一种可能的实施方式中,所述处理器1202,还用于:
709.通过通信接口1204向所述第一节点发送第五信息,所述第五信息用于指示关联完成。进一步的,该第五信息可以称为关联完成信息(具体场景中也可以称为关联完成消息)。
710.具体实现还可以参考图4、图6或者图7所示实施例中的详细描述,此处不再赘述。
711.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,实现图3、图4、图5、图6或者图7所示的实施例所述的方法。
712.本技术实施例还提供了一种芯片系统,所述芯片系统包括至少一个处理器和通信接口,所述通信接口用于发送和/或接收数据,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,实现图3、图4、图5、图6或者图7所示的实施例所述的方法。
713.进一步,所述至少一个处理器可以包含cpu、mpu、mcu或者协处理器中的至少一个。
714.本技术实施例还提供一种终端,所述终端可以为智能座舱产品、或者车辆等,所述终端包括第一节点和/或第二节点,其中所述第一节点(例如,摄像头、屏幕、麦克风、音响、雷达、电子钥匙、无钥匙进入、启动系统控制器以及用户设备ue等模块中的一个或者多个)为图3、图4、图5、图6或者图7所示实施例中的第一节点,所述第二节点(例如,基站、汽车座舱域控制器cdc等)为图3、图4、图5、图6或者图7所示实施例中的第二节点。
715.进一步可选的,所述终端可以为无人机、机器人、智能家居场景中的设备、智能制造场景中的设备等。
716.本技术实施例还提供一种计算机程序产品,当所述计算机程序产品在一个或多个处理器上运行时,可以实现如图3、图4、图5、图6或者图7所示的实施例所描述的通信方法。
717.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。
718.当使用软件实现时,可以全部或部分地以计算机指令产品的形式实现。
719.在计算机上加载和执行该计算机指令时,可以全部或部分地实现本技术实施例所描述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
720.本技术方法实施例中的步骤可以根据实际需要进行顺序调整、合并和删减。
721.本技术装置实施例中的模块可以根据实际需要进行合并、划分和删减。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜