CN112740733A - 一种安全接入方法及装置 - Google Patents

一种安全接入方法及装置 Download PDF

Info

Publication number
CN112740733A
CN112740733A CN202080004818.4A CN202080004818A CN112740733A CN 112740733 A CN112740733 A CN 112740733A CN 202080004818 A CN202080004818 A CN 202080004818A CN 112740733 A CN112740733 A CN 112740733A
Authority
CN
China
Prior art keywords
node
key
parameter
ciphertext
psk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202080004818.4A
Other languages
English (en)
Other versions
CN112740733B (zh
Inventor
李�泳
王勇
陈璟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112740733A publication Critical patent/CN112740733A/zh
Application granted granted Critical
Publication of CN112740733B publication Critical patent/CN112740733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供一种安全接入方法及装置,应用于通信技术、网联车领域,方法包括:接收来自第二节点的第一消息,第一消息包含第一密文,该第一密文为根据安全参数和第一密钥协商参数得到的;根据安全参数解密第一密文,得到第一密钥协商参数;根据第一密钥协商参数和密钥协商算法确定第一共享密钥;根据第一共享密钥和第一节点与第二节点之间的PSK得到第一身份认证信息,该第一身份认证信息用于认证第一节点的身份。通过本申请实施例可以防止节点与身份不可信的攻击者关联成功。该方案进一步可用于提升自动驾驶或高级驾驶辅助系统ADAS能力,可应用于车联网V2X、车间通信长期演进技术LTE‑V、车辆‑车辆V2V等领域。

Description

一种安全接入方法及装置
技术领域
本申请涉及通信技术、网联车领域,尤其涉及短距离通信技术领域,例如座舱域通信。具体涉及一种安全接入方法及装置。
背景技术
在信息化飞速发展的今天,移动终端,手机、平板还是其他可携带式智能终端是我们不可缺少的重要个人智能工具,我们在享受着信息化带来的便利的同时,也面临着安全漏洞和隐私泄露的威胁。以智能汽车为例,随着车辆通信的广泛应用,无线通信也给汽车带来了一系列的安全隐患。例如,通过现有的距离通信技术,黑客可能入侵车载信息系统,获取车辆信息,甚至远程操控汽车,对用户隐私以及车辆安全具有极高的威胁性。
为了保证通信的安全,在两个节点(方便描述称为第一节点和第二节点)通信之前,第二节点会采用配对模式接入第一节点,或者直接使用开放的模式接入第一节点。第二节点在接入第一节点时,通常会先确定双方用于通信加密的共享密钥,但是现有的接入过程中,生成的共享密钥的机密性较低。例如,蓝牙耳机接入手机时,在手机中直接点击蓝牙耳机的名称,就可以生成链路密钥(link key)、进而关联成功,后续手机第一节点和蓝牙耳机之间即可进行数据收发。不难看出,这样的接入方式容易导致数据泄漏,容易使得用户隐私及安全受到威胁。对于通信系统来说,尤其对于车载通信系统,这种情况容易造成车辆受到不信任节点的接入,导致车辆与身份不可信的攻击者进行通信,危及驾乘人员的人身安全。
因此,如何避免不可信的攻击者接入、提高节点通信的安全性是本领域技术人员正在研究的技术问题。
发明内容
本申请实施例公开了一种安全接入方法及装置,提供一种高安全的认证与密钥协商方法,可以防止节点与身份不可信的攻击者关联成功。
第一方面,本申请实施例公开了一种安全接入方法,包括:
接收来自第二节点的第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;其中,第一节点和第二节点之间的PSK是第一节点与第二节点之间共享的一个秘密值,第一口令可以看作是第二节点接入第一节点的密码;
根据所述安全参数解密所述第一密文,得到所述第一密钥协商参数;
根据所述第一密钥协商参数和密钥协商算法确定第一共享密钥。
在本申请实施例中,第二节点将第一密钥协商参数通过安全参数(该安全参数可以是PSK或者第一口令)进行加密得到所述第一密文,由于第一节点中预先配置有或者可以获取相同的安全参数,因此可以对第一密文进行解密得到第一密钥协商参数,后续可以基于该第一密钥协商参数生成共享密钥。由于没有获取安全参数不能生成共享密钥,第二节点无法接入第一节点,因此可以避免攻击者通过第二节点接入第一节点,防止第一节点与身份不可信的攻击者关联成功。
在第一方面的一种可能的实施方式中,所述方法还包括:
获取所述第一节点与所述第二节点之间的PSK;
根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
根据所述第一共享密钥和PSK得到第一身份认证信息,该第一身份认证信息可以用于认证第一节点的身份。本申请例举一种通过第一身份信息认证第一节点的身份的方法:第二节点确定第一共享密钥,根据第一共享密钥和PSK生成校验信息,若校验信息与第一身份认证信息相同,则说明第一节点与第二节点之间的第一共享密钥和PSK是相同的,从而可以认证第一节点的身份,避免节点与攻击者进行通信,提高节点的安全性。
在第一方面的又一种可能的实现方式中,所述获取所述第一节点与所述第二节点之间的PSK,包括:
根据第一对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数。
可以看出,第一节点可以通过对应关系的形式来存储PSK与第二节点的对应关系。因此,可以根据对应关系得到第一节点与第二节点之间的PSK。
在一种可能的设计中,PSK是根据第一口令、第一共享密钥、第一随机数和第二随机数来确定的。在第一节点与第二节点第一次进行关联时或者第一节点中没有获取到第一对应关系的情况下,第一节点中不存在第二节点对应的PSK,因此可以确定新的PSK。
在第一方面的又一种可能的实现方式中,所述根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK,包括:
根据所述第一共享密钥、所述第一随机数和所述第二随机数,确定第二共享密钥;
根据所述第一口令、所述第二共享密钥、所述第一随机数、所述第二随机数确定所述第一节点与所述第二节点之间的PSK。
在第一方面的又一种可能的实现方式中,所述第一密文为根据所述安全参数的哈希值和第一密钥协商参数得到的;所述根据所述第一口令解密所述第一密文,得到所述第一密钥协商参数,包括:
根据所述安全参数的哈希值解密所述第一密文,得到所述第一密钥协商参数。
在第一方面的又一种可能的实现方式中,所述第一密文为所述安全参数的哈希值和第一密钥协商参数通过椭圆曲线点加运算得到的;所述根据所述第一口令解密所述第一密文,得到所述第一密钥协商参数,包括:
根据所述安全参数的哈希值和所述第一密文,通过椭圆曲线点减运算,得到所述第一密钥协商参数。
在第一方面的又一种可能的实现方式中,所述根据所述安全参数解密所述第一密文,得到所述第一密钥协商参数,包括:
根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥对所述第一密文进行解密,得到所述第一密钥协商参数。
在第一方面的又一种可能的实现方式中,所述根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第一身份认证信息,还包括:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、所述第一随机数和所述第二随机数,生成所述第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
在第一方面的又一种可能的实现方式中,所述方法还包括:
根据所述安全参数加密第二密钥协商参数,得到第二密文;
向第二节点发送第二消息,所述第二消息包括所述第一身份认证信息和所述第二密文;所述第二密文用于所述第二节点确定所述第一共享密钥。
其中,第二密钥协商参数用于第二节点确定共享密钥。可以看出,基于安全参数可以对第二密钥协商参数进行加密,只有破解了安全参数才能解密第二密钥协商参数生成共享密钥,避免了攻击者伪装第二节点接入第一节点,保证了密钥协商过程的安全性。
在第一方面的又一种可能的实现方式中,所述方法还包括:
接收来自所述第二节点的第三消息,所述第三消息包括第二身份认证信息;
根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第二身份认证信息,确定所述第二节点的身份认证通过。
上述说明了一种认证第二节点的身份的方法,第二身份认证信息为第二节点根据PSK和第一共享密钥生成的,因此根据PSK、第一共享密钥和第二身份认证信息可以确定第二节点中的第一共享密钥和PSK是否与第一节点侧相同,从而可以认证第二节点的身份。
在第一方面的又一种可能的实现方式中,前述第一消息也可以称为接入请求消息(或者关联请求消息)。进一步的,第二消息也可以称为安全上下文请求消息(或者身份认证请求消息)。第三消息也可以称为安全上下文响应消息(或者身份认证响应消息)。
在第一方面的又一种可能的实施方式中,所述方法还包括:
向第二节点发送第四消息,所述第四消息用于指示接入成功,或者用于指示关联完成。进一步的,该第四消息可以称为关联建立消息(或者接入关联完成消息)、关联完成消息等。
第二方面,本申请实施例公开了一种安全接入方法,包括:
向第一节点发送第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;
接收来自所述第一节点的第二消息,所述第二消息包括第二密文;所述第二密文为根据所述安全参数加密第二密钥协商参数得到的;
根据所述安全参数解密所述第二密文,得到所述第二密钥协商参数;
根据所述第二密钥协商参数和密钥协商算法确定第一共享密钥;
根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息,所述第二身份认证信息用于认证所述第二节点的身份。
在本申请实施例中,将所述第一密钥协商参数通过所述安全参数(该安全参数可以是PSK或者第一口令)进行加密再发送给第一节点,相应的,第一节点也通过安全参数加密第二密钥协商参数。通信双方可以通过安全参数对密文进行解密,基于该密钥协商参数生成共享密钥。由于没有获取安全参数不能生成共享密钥,第二节点无法接入第一节点,因此可以避免第二节点接入不可信的第一节点,提高第二节点的安全性。
在第二方面的一种可能的实施方式中,所述根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息之前,还包括:
获取所述第一节点与所述第二节点之间的PSK。
在第二方面的又一种可能的实施方式中,所述获取所述第一节点与所述第二节点之间的PSK,包括:
根据第二对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数;其中,所述第一消息中包含所述第一随机数。
可以看出,可以通过对应关系的形式来存储PSK与第一节点的对应关系。因此,可以根据对应关系得到第一节点与第二节点之间的PSK。
在一种可能的设计中,PSK是根据第一口令、第一共享密钥、第一随机数和第二随机数来确定的。在第一节点与第二节点第一次进行关联时或者第一节点中没有获取到第一对应关系的情况下,第二节点中不存在与所述第一节点对应的PSK,因此可以通过上述方式确定新的PSK。
在第二方面的又一种可能的实施方式中,所述根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK,包括:
根据所述第一共享密钥、所述第一随机数和所述第二随机数,确定第二共享密钥;
根据所述第一口令、所述第二共享密钥、所述第一随机数、所述第二随机数确定所述第一节点与所述第二节点之间的PSK。
在第二方面的又一种可能的实施方式中,在发送第一消息之前,所述方法还包括:
根据所述安全参数加密所述第一密钥协商参数,得到所述第一密文。
在第二方面的又一种可能的实施方式中,所述根据所述安全参数加密所述第一密钥协商参数,得到所述第一密文,包括:
根据所述安全参数的哈希值加密所述第一密钥协商参数,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一密钥协商参数,通过椭圆曲线点加运算,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥加密所述第一密钥协商参数,得到所述第一密文。
在第二方面的又一种可能的实施方式中,所述根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息,还包括:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、第一随机数和第二随机数,生成所述第二身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
在第二方面的又一种可能的实施方式中,所述第二消息中还包括第一身份认证信息;所述方法还包括:
根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第一身份认证信息,确定所述第一节点的身份认证通过。
上述说明了一种认证第一节点的身份的方法,第一身份认证信息为第一节点根据PSK和第一共享密钥生成的,因此根据PSK、第一共享密钥和第一身份认证信息可以确定第一节点中的第一共享密钥和PSK是否与第二节点侧相同,从而可以认证第一节点的身份。需要说明的是,认证第一节点的身份的时机可以是周期的,也可以是非周期的,或者还可以在执行某些重要操作之前,认证第一节点的身份,取决于具体实施时候的实现。
在第二方面的又一种可能的实现方式中,前述第一消息也可以称为接入请求消息(或者关联请求消息)。进一步的,第二消息也可以称为安全上下文请求消息(或者身份认证请求消息)。第三消息也可以称为安全上下文响应消息(或者身份认证响应消息)。
在第二方面的又一种可能的实施方式中,所述方法还包括:
接收来自第一节点的第四消息,所述第四消息用于指示接入成功,或者用于指示关联完成。进一步的,该第四消息可以称为关联建立消息(或者接入关联完成消息)、关联完成消息等。
第三方面,本申请实施例公开了一种通信装置,该通信装置包括接收单元和处理单元。该通信装置用于实现第一方面或者第一方面的任意一种可能的实施方式所描述的安全接入方法。
第四方面,本申请实施例公开了一种通信装置,包括发送单元、接收单元和处理单元,上述通信装置用于实现第二方面或者第二方面的一种可能的实施方式所描述的安全接入方法。
第五方面,本申请实施例公开了一种通信装置,包括处理器和通信接口,所述处理器用于调用存储器中存储的计算机程序,以实现第一方面或者第一方面的任意一种可能的实施方式所描述的方法。
第六方面,本申请实施例公开了一种通信装置,包括处理器和通信接口,所述处理器用于调用存储器中存储的计算机程序,以实现第一方面或者第一方面的任意一种可能的实现方式。
第七方面,本申请实施例还提供一种芯片系统,所述芯片系统包括至少一个处理器和通信接口,所述通信接口用于发送和/或接收数据,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,使得所述芯片系统实现第一方面或者第一方面的任意一种可能的实施方式所描述的方法;又或者实现第二方面或者第二方面的任意一种可能的实施方式所描述的方法。
第八方面,本申请实施例还提供一种通信系统,该第一节点和第二节点。其中,该第一节点包含上述第三方面或者第三方面的任意一种可能的实施方式所描述的通信装置;又或者包含上述第五方面或者第五方面的任意一种可能的实施方式所描述的通信装置。该第二节点包含上述第四方面或者第四方面的任意一种可能的实施方式所描述的通信装置;又或者包含上述第六方面或者第六方面的任意一种可能的实施方式所描述的通信装置。
第九方面,本申请实施例公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面或第一方面的任意一种可能的实施方式所描述的方法,又或者执行第二方面或第二方面的任意一种可能的实施方式所描述的方法。
第十方面,本申请实施例公开了一种计算机程序产品,当所述计算机程序产品在一个或多个处理器上运行时,执行第一方面或第一方面的任意一种可能的实施方式所描述的方法,又或者执行第二方面或第二方面的任意一种可能的实施方式所描述的方法。
第十一方面,本申请实施例公开了一种终端,所述终端可以为智能座舱产品、或者车辆等,所述终端包括第一节点和/或第二节点。其中,所述第二节点(例如,摄像头、屏幕、麦克风、音响、雷达、电子钥匙、无钥匙进入、启动系统控制器以及用户设备UE等模块中的一个或者多个)包含上述第三方面或第三方面的任意一种可能的实施方式所描述的装置。所述第一节点(例如,基站、汽车座舱域控制器CDC等)包含上述第四方面或第四方面的任意一种可能的实施方式所描述的通信装置。
可替换的,上述车辆还可以替换为无人机、机器人等智能终端或者运输工具。
附图说明
以下对本申请实施例用到的附图进行介绍。
图1是一种密钥协商算法的原理示意图;
图2是一种密钥协商算法的使用场景示意图;
图3是本申请实施例提供的一种通信系统的流程示意图;
图4是本申请实施例提供的一种通信场景的示意图;
图5是本申请实施例提供的一种通信方法的流程示意图;
图6是本申请实施例提供的一种确定共享密钥的流程示意图;
图7是本申请实施例提供的又一种通信方法的流程示意图;
图8是本申请实施例提供的再一种通信方法的流程示意图;
图9是本申请实施例提供的一种通信方法的运行场景示意图;
图10是本申请实施例提供的一种通信装置的结构示意图;
图11是本申请实施例提供的又一种通信装置的结构示意图;
图12是本申请实施例提供的再一种通信装置的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中实施例提到的“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b、或c中的至少一项(个),可以表示:a、b、c、(a和b)、(a和c)、(b和c)、或(a和b和c),其中a、b、c可以是单个,也可以是多个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A、同时存在A和B、单独存在B这三种情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
以及,除非有相反的说明,本申请实施例使用“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。例如,第一信息和第二信息,只是为了区分不同的信息,而并不是表示这两种信息的内容、优先级、发送顺序或者重要程度等的不同。
下面先对本申请实施例中涉及的技术术语进行描述。
一、节点(node)
节点是具有数据处理收发能力的电子设备或者电子设备中的器件(例如芯片、或集成电路等),上述电子设备可以包括终端设备或网络侧设备。例如,节点可以为汽车座舱(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)设备;还可以包括可穿戴设备(如智能手表,智能手环,计步器等)等等。
在某些技术场景中,具备相类似数据收发能力的设备的名称也可能不称为节点,但是为了方便描述,本申请实施例中将具有数据收发能力的电子设备统称为节点。
二、安全算法(密码算法)
(1)散列算法
散列算法又称为哈希(hash)函数、哈希算法,散列算法可以将一段数据(例如字符串、数字、文件等)输出为一段预设长度(例如80位、或者128位等等)的散列值(散列值也可以称为哈希值、摘要值等),且很难找到逆向规律。常见的散列算法主要有安全散列算法(secure hash algorithm 1,SHA-1)、信息摘要(message digest,MD)算法(如MD2、MD4或MD5等)等。
(2)加密(encryption)算法
加密算法用于保护数据的机密性(confidentiality),通常表现为对明文加密得到密文。加密算法既可以包括加密运算(例如椭圆点加运算、异或运算等),也可以包括安全性较高的各种数学函数。常见的加密算法主要有异或运算、数据加密标准(dataencryption standard,DES)、三重数据加密算法(triple data encryption algorithm,3DES)、高级加密标准(advanced encryption standard,AES)、RSA加密算法、数据结构分析算法(data structure analysis,DSA)等。
(3)密钥派生算法
密钥派生算法用于从一个秘密值中推演(派生、导出)出一个或多个秘密值,又称为密钥导出算法。例如,通过秘密值Key派生的新的秘密值DK可以表示为:DK=KDF(Key)。常用的密钥派生算法有基于密码的密钥派生函数(password-based key derivationfunction,PBKDF)、斯克里普特(scrypt)算法等,其中PBKDF算法又包括第一代PBKDF1和第二代PBKDF2。一些KDF算法在派生密钥过程中,使用哈希算法对输入的秘密值进行哈希变化,因此KDF函数还可以接收算法标识作为输入,用于指示使用何种哈希算法。
需要说明的是,KDF不仅应用于派生得到秘密值得过程,在生成认证信息、身份信息等方面也可以应用。
当然,生成认证信息、身份信息时,也可以使用认证算法(authenticationfunction,AUF,或者AUTH function),该认证算法用于根据输入参数得到认证信息。
(4)密钥协商算法
密钥协商是通信双方通过交互一部分参数,从而协商得到密钥的过程。用于密钥协商的算法称为密钥协商算法,也可以称为密钥交换算法。常用的密钥协商算法有迪菲赫尔曼密钥交换(Diffie–Hellman key exchange,DH)算法、基于椭圆曲线密码(EllipticCurve Cryptosystems,ECC)的DH(ECDH)算法、国密算法(如SM1、SM2、SM3和SM4)、奥克利(Oakley)算法等。
需要说明的是,密钥协商算法也可以看做是一种密钥协商的协议,也即是说,对于通信的双方,密钥协商算法定义了密钥生成和交换的规则,至于如何用密钥进行加密取决于其他的算法。
三、DH算法
DH算法可以让双方在不安全信道创建起一个密钥,这个密钥可以在后续的通讯中作为密钥来加密通讯内容。
参见图1,图1是本申请实施例提供的一种DH算法的原理示意图,第一节点与第二节点中获取有确定素数p、随机数g,两个节点通过DH算法交换密钥的步骤如下:
步骤1:第二节点确定随机数a。
步骤2:第二节点生成第一计算值A,其中A=ga mod p。
步骤3:第二节点向第一节点发送第一计算值A。
步骤4:第一节点确定随机数b。
步骤5:第一节点计算得到第二计算值B,其中B=gb mod p。
步骤6:第一节点确定密钥s,其中s=Ab mod p。
步骤7:第一节点向第二节点发送第二计算值B。
步骤8:第二节点确定密钥s,其中s=Ba mod p。
由于s=Abmod p=(gamod p)bmod p=gabmod p=(gbmod p)amod p=Bamod p,因此第一节点和第二节点计算出的密钥s是相同的。由于密钥s没有在消息中直接传输,因此攻击者无法直接获取密钥,只能通过暴力破解获取到a或者b才可以计算出协商得到的密钥s。在这种情况下,攻击者通过A、g、p,暴力破解计算得到a的公式为:a=logg Amodp,由于对数运算没有一个快速计算的算法,而且素数p和随机数g通常数值较大,因此攻击者很难通过A、素数p和随机数g通过对数运算和模运算得到a。因此通过DH算法得到的密钥K具有安全性。
四、椭圆曲线算法
椭圆曲线算法是基于椭圆曲线数学理论实现的一种安全算法,通常我们讨论的椭圆曲线的曲线方程是一个二元三次方程,它有多种形式,最常用的是如下的通用式:
E={(x,y)∈R|y2=x3+ax+b,4a3+27b2≠0}
从曲线方程和图像易知,椭圆曲线关于X轴对称。判定式(4a3+27b2)不等于零可以实现椭圆曲线不存在奇异点,即处处光滑可导,便于进行椭圆曲线上的加法运算。
(1)点加(point addition)运算(椭圆曲线加法运算)
参见图2,图2是本申请提供的一种可能的点加运算的示意图。参见图2的(a)部分,椭圆曲线的加法运算可以通过如下的方式表示:曲线(本文中以a=0,b=7的椭圆曲线为例,即:y2=x3+7)上标出点P和点Q;做一条经过点P和Q的直线与曲线相交于第三点–R;继续做点-R关于X轴的对称点R。R点就是点P和Q相加得到的点,记作P+Q=R。
需要说明的是,因为椭圆曲线是关于X轴对称的,因此R是点-R的对称点,由于点-R在椭圆曲线上,因此点R也必然也在椭圆曲线上,也即是说,P+Q所得到的点在椭圆曲线上。
参见图2的(b)部分,当P=Q时,则以点P作为切点做一条关于椭圆曲线的切线,切线将与椭圆曲线相交与另一点,记做点-R。同样,做点-R的关于X轴的对称点R。这个R点就是点P和P相加得到的点,记作P+P=2P=R。
(2)点减运算(椭圆曲线减法运算)
参见图2的(c)部分,因R-P=R+(-P),求(R-P)就是点R与点-P的加法运算。而点-P就是点P对称点。因此,做一条经过点R和-P的直线,由于椭圆曲线是关于X轴对称的,可以看出直线与椭圆曲线相切于点-P,因此做点-P关于X轴的对称点P,P点就是点R和点-P相加得到的点。
(3)点乘(point multiplication)运算
将椭圆曲线上的一个有点连续相加n次,就可以得到n次点P相加的结果,记为nP。其中,相加的次数n是一个整数,可以称之为标量。椭圆曲线的点乘运算可以称为标量乘(scalar multiplication)运算,在涉及多个标量时,可以称为多标量乘运算(multi-scalar multiplication)。
需要说明的是,点乘算法在不同的运算场景下可能有不同的定义,实现时取决于具体定义的点乘算法的运算规律为准,此处是例举的一种可能的椭圆曲线点乘算法的计算方式。
(4)ECDH密钥交换
椭圆曲线算法需要一个定义在有限域中的椭圆曲线的循环子群,需要的参数如下:一个质数p用于描述有限域的大小、椭圆曲线方程的参数a和b、一个用于生成循环子群的基点G、子群的阶数n、子群的协因子h(h=N/n,其中N是椭圆曲线群的阶数)。一般通过六个参数(p,a,b,G,n,h)联合起来定义一种椭圆曲线算法所用到的椭圆曲线。
ECDH算法主要基于如下等式来实现:K=k×G,其中K、G为椭圆曲线Ep(a,b)上的点,n为G的阶(nG=O∞,O∞指无穷远点),k为小于n的整数。在K=kG中,对于给定的k和G,根据加法法则,计算K很容易(例如使用点加运算累加)。但反过来,对于给定的K和G,求k就非常困难。因为实际使用中的椭圆曲线算法原则上把p取得相当大,n也相当大,要把n个点逐一算出来与K进行比较是数学难题。
在密钥交换的过程中,假设密钥交换双方为Alice、Bob,其有共享曲线参数(椭圆曲线E、阶N、基点G)。可以有如下交换步骤:
步骤1:Alice生成随机整数a,计算第一计算值A=a×G。
步骤2:Bob生成随机整数b,计算第二计算值B=b×G。
步骤3:Alice将A传递给Bob。A的传递可以公开,即攻击者可以获取A、G,但是难以通过A、G计算出a。
步骤4:Bob将B传递给Alice。同理,B的传递可以公开,即攻击者可以获取B、G,但是难以通过B、G计算出a。
步骤5:Bob收到Alice传递的A,计算Q=b×A=ab×G。
步骤6:Alice收到Bob传递的B,计算Q’=a×B=ab×G。
Alice、Bob双方即得Q=b×A=b×(a×G)=(b×a)×G=(a×b)×G=a×(b×G)=a×B=Q’(交换律和结合律),即双方得到一致的密钥Q。由于密钥Q没有直接传输,攻击者难以通过获取的A、B、G计算得到Q,因此通过ECDH算法交换得到的密钥Q具有安全性。
五、新鲜性参数
新鲜性参数是一种信息安全领域中的参数,用于生成密钥和认证参数等,也可以称为新鲜度或新鲜参数。新鲜性参数可以包括随机数(number once,NONCE)、计数值(counter)、序列号(serial number)、顺序号(sequence number)等等中的至少一个。不同时刻生成的新鲜性参数通常不同。可以理解的,新鲜性参数的具体取值,在每生成一次新鲜性参数时会发生变化,从而使得这一次生成密钥(或者认证参数等)所使用的新鲜性参数与上一次生成密钥(或者认证参数等)时所使用的新鲜性参数不同的,可以提高生成的密钥的安全性。
其中,NONCE是一个只被使用一次的(非重复的)随机数值。
六、口令
口令可以理解为节点为了让其他节点可以接入从而预先配置或者预先定义的密码,或者理解为两个节点之间约定的秘密值。可选的,口令在形式上可以为数字、字母、符号等其中的一个或者多个组成的字符串,可以是通过键盘、语音、生物信息等方式输入的。例如,手机终端接入支持无线保真(Wireless fidelity,Wi-fi)协议的路由器的场景中,手机终端可以使用“Wi-fi密码”接入路由器,该“Wi-fi密码”可以理解为路由器的口令。
可选的,口令可以有如下使用场景(以第二节点请求接入第一节点为例):
场景1:第一节点预先定义或者预先配置了第一口令,第二节点的用户可以在第二节点中输入第一口令。具体的,第二节点接收用户输入的第一口令,基于该第一口令可以请求接入第一节点。例如,车主通过管理员接口为车辆配置第一口令。当车主的新智能手机需要接入车辆时,车主可以在新智能手机中输入第一口令,智能手机根据输入的口令可以请求接入车辆。
场景2:第一节点预先定义或者预先配置了第一口令。同样的,第二节点中也预先配置了接入第一节点的第一口令。当需要接入第一节点时,第二节点可以使用预先配置的第一口令进行接入。例如,主机厂在装配车辆时,可以在车辆的CDC中配置第一口令,在车辆的雷达中配置CDC的第一口令,这样一来,雷达在接入车辆的CDC时,可以使用CDC的第一口令来接入CDC。
场景3:第三方设备(如网络侧设备、证书中心、认证服务器等等设备,受第一节点信任)可以给第一节点和第二节点分配一个约定值,该约定值可以供第二节点接入第一节点。因此该约定值可以看做是第一节点的接入口令。
可以理解的,前述的关于算法的解释只是用于简单叙述实现的原理,并不限定使用时一定使用相同的参数进行实现。算法具体实现过程中还可以有其他的改进和变体,本申请中提到算法可以为经过改进和变体后的算法,例如ECC可以结合在DSA算法中,称为ECDSA算法。
另外需要说明的是,本申请各实施例中提到的“认证”、“校验”、“验证”,可以表征检查是否正确或者合理的意思。本申请各实施例中提到的“接入”表明第一节点与第二节点建立连接的过程,在一些具体的技术场景中,也可以将“接入”描述为“关联”。
下面对本申请实施例的系统架构和业务场景进行描述。需要说明的是,本申请描述的系统架构及业务场景是为了更加清楚的说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
参见图3,图3是本申请实施例提供的一种可能的通信系统的示意图,该通信系统包括第一节点301和第二节点302。第二节点302可以请求关联第一节点301,关联成功后,第一节点301可以与第二节点302进行通信。其中,第一节点301与第二节点302之间通信的链路可以包括各种类型的连接介质,包括有线链路(例如光纤)、无线链路、或者有线链路和无线链路的组合等。例如可以为近距离连接技术包括802.11b/g、蓝牙(blue tooth)、紫蜂(Zigbee)、无线射频识别技术(radio frequency identification,RFID)、超宽带(ultrawideband,UWB)技术、无线短距通信系统(例如车载无线短距通信系统)等,再如还可以为远距离连接技术包括基于长期演进(Long Term Evolution,长期演进)的通信技术、第五代移动通信技术(5th generation mobile networks或5th generation wireless systems、5th-Generation,简称5G或5G技术)、全球移动通信系统(global System for mobilecommunications,GSM)、通用分组无线业务(general packet radio Service,GPRS)、通用移动通信系统(universal mobile telecommunications system,UMTS)等无线接入类型技术。
当然,还有其他无线通信技术可以用于支撑第一节点与第二节点进行通信。例如,在一些具体的实施场景中,第一节点也可以称为G节点、控制节点或者接入点(accesspoint),第二节点也可以称为T节点或者终端。G节点向T节点的通信链路可以称为G链路,T节点向G节点的通信链路可以称为T链路。
其中,第一节点301和第二节点302可以是相同类型的设备,也可以是不同类型的设备。例如,请参见图4,图4是一种可能的通信场景的示意图。车辆的座舱域控制器(cockpit domain controller,CDC)401是车辆的智能座舱设备中的控制中心,可以看作为第一节点401。智能手机402是具有数据收发能力的设备,可以看作为第二节点402。
其中,CDC401可以通过蓝牙接入,而智能手机402支持蓝牙功能,因此智能手机402可以请求接入该CDC401。由于蓝牙技术通常采用数字配对或者直接工作(justwork)模式进行连接,在数字配对模式下,在智能手机402中直接点击CDC401的标识,通过与CDC401确认配对数字,即可通过蓝牙连接CDC401。此时,若攻击者冒用智能手机402的身份来连接CDC401,CDC401难以辨认出攻击者,将导致攻击者成功接入CDC401,使得车辆的隐私及安全受到威胁。此处仅以蓝牙接入的场景作为示例,具体接入场景还可以包括其他通信技术进行接入的情况。类似的,在其他的一些场景中,节点通过传统方法进行接入的情况下,节点也往往难以避免与不明身份的攻击者的接入,从而影响通信的安全。
因此,为了提高安全性,本申请实施例提供了图5所示的安全接入方法。
请参见图5,图5是本申请实施例提供的一种安全接入方法的流程示意图。进一步的,该方法可以基于图3所示的架构来实现。该方法至少包括如下步骤:
步骤S501:第二节点向第一节点发送的第一消息。其中,第一消息包含第一密文,该第一密文为根据第一密钥协商参数和安全参数得到的。
具体的,密钥协商参数为密钥协商过程中确定的参数,为了方便描述,本申请各实施例中将第二节点发送给第一节点的密钥协商参数称为第一密钥协商参数。
例如,第一节点与第二节点基于DH算法进行密钥协商,将较大的素数p和随机数g作为公钥,第二节点根据自己的私钥(a)和公钥(p和g)确定计算值A,该素数p、素数g、私钥a、计算值A均可以看做密钥协商过程产生的参数,由于计算值A为第二节点确定后发送给第一节点的,则计算值A可以看做第一密钥协商参数。
再如,第一节点与第二节点基于ECDH算法进行密钥协商,以确定的椭圆曲线为Ep、基点为G为例,第二节点根据自己的私钥a和基点G得到计算值A(例如:A=a×G)发送给第一节点,则该计算值A可以看做第一密钥协商参数。
安全参数为第一节点与第二节点中共享的一个参数。例如,第一节点与第二节点的共享密钥(包括预共享密钥、对称加密密钥等)、第一口令、第一节点与第二节点之间的预先配置的参数、通信协议中预先定义的参数等。
其中,预共享密钥(pre-shared key,PSK)是第一节点与第二节点之间共享的一个秘密值。第二节点中可以预先定义、预先配置或者通过互相协商生成等方式得到与第一节点共享的PSK,第二节点可以使用该PSK对消息进行加密。
其中,第一口令为第一节点与第二节点之间的约定接入口令,也可以理解为第一节点为了让第二节点可以接入从而预先配置或者预先定义的密码,或者理解为第一节点与第二节点之间约定的秘密值。此外,第一口令的相关描述还可以参见技术术语解释部分的描述,此处不再赘述。
下面以预共享密钥PSK为例,例举四种根据安全参数和第一密钥协商参数得到第一密文的实现方法:
实现方法一:第二节点将PSK和第一密钥协商参数进行点加运算,得到第一密文。进一步的,第一节点可以先将PSK进行哈希运算,然后将PSK的哈希值与第一密钥协商算法进行点加运算,得到第一密文。例如,第一密文C1满足如下式子:C1=hash(PSK)+KEt,其中,KEt为第一密钥协商参数,+为椭圆曲线点加运算,hash为哈希算法。
位于椭圆曲线上的点可以进行点加运算,但是在具体实施过程中,若第一密钥协商参数不是椭圆曲线上的点,也可以先将第一密钥协商参数映射为椭圆曲线上的点,然后再进行点加运算。其他参数,例如PSK、hash(PSK)等,也可以进行类似的映射。本申请例举一种可能的计算方法:第二节点可以将hash(PSK)作为横坐标(若超过定义域,则可以将hash(PSK)取模),在椭圆曲线上得到映射点R(hash(PSK),y1),将点R与KEt进行椭圆曲线点加运算,得到点S(x2,y2)。第二节点可以取将点S的横坐标x2或者纵坐标y2作为C1。相应的,在一个x值对应有多个y值时,可以预先约定y值需要满足的条件(例如选取绝对值最大的一个y值),从而确定对应的点。
可选的,在第一节点与第二节点直接使用的密钥协商算法属于ECDH算法的情况下,可以使用实现方式一的方法得到第一密文。当然,若密钥协商算法不属于ECDH算法,也可以将密钥协商参数映射为椭圆曲线上的一点,从而使用点加运算得到第一密文。
实现方法二:第二节点将PSK和第一密钥协商参数进行乘法运算,得到第一密文。例如,第一密文C1满足如下式子:C1=hash(PSK)*KEt,其中,KEt为第一密钥协商参数,*为乘法运算,hash为哈希算法。
可选的,在第一节点与第二节点直接使用的密钥协商算法属于DH算法的情况下,可以使用实现方式二的方法得到第一密文。当然,若密钥协商算法不属于DH算法,也可以进行乘法运算得到第一密文。
实现方法三:第二节点使用加密算法,根据PSK或者PSK的哈希值,对第一密钥协商参数进行加密得到第一密文。例如,得到的第一密文C1满足如下式子:C1=Enc(hash(PSK),KEt),其中,Enc为加密算法,具体可以为SM4算法、ZUC算法、AES算法等等中的一个或者多个的组合。
实现方法四:第二节点可以基于PSK推演密钥(便于描述,称为第一中间密钥),基于第一中间密钥对第一密钥协商参数进行加密,得到第一密文。例如,第一中间密钥K1满足如下式子:K1=KDF(Hash(PSK),NONCEd),其中,KDF为推演第一中间密钥时使用的推演算法,NONCEd为推演第一中间密钥使用的新鲜性参数(可选参数,此处仅为示例)。第二节点得到的第一密文C1满足:C1=Enc(K1,KEt)。
需要说明的是,这里是为了更清楚的阐述方案,所以上述实现方法四以多个步骤的方式解释如何得到第一密文,在实际的处理中,也可以是通过一个步骤完成,第一中间密钥K1只是一个中间的结果,即确定第一密文C1的方式满足:C1=Enc(KDF(Hash(PSK),NONCEd),KEt)。
可以理解的,上述的PSK也可以替换为第一口令、第一节点与第二节点之间的预先配置的参数、通信协议中预先定义的参数等,不在一一赘述。在一种可能的设计中,在第二节点中存在与第一节点之间的PSK的情况下,第二节点基于PSK和第一密钥协商参数得到第一密文。在第二节点中不存在与第一节点之间的PSK的情况下,则第二节点根据第一口令和第一密钥协商参数得到第一密文。
可选的,上述第一消息中还可以包含新鲜性参数(fresh parameter)。为了方便描述,本申请各实施例中,将第一消息中包含的新鲜性参数称为第一新鲜性参数。其中,新鲜性参数为包括随机数、计数值、序列号等等中的至少一个。
可选的,第一节点可以广播消息,相应的,第二节点可以接收第一节点的广播的消息。第二节点基于第一节点广播的消息,从而向第一节点发送该第一信息。进一步可选的,第一节点广播的消息中可以携带第一节点支持的密钥协商算法的指示信息(或者称为第一节点的密钥协商算法能力)。
进一步可选的,第二节点可以在第一节点支持的密钥协商算法中,确定其中一种算法作为与第一节点进行密钥协商时使用的算法。在这种情况下,第一消息中还可以携带第二节点选定的密钥协商算法的标识。
第二节点向第一节点发送第一消息。相应的,第一节点则接收来自第二节点的第一消息。
需要说明的是,第一消息也可以称为接入请求消息(或者接入请求信息),也可以被称为关联请求消息(具体场景中也可以称为关联请求信息)。本申请各个实施例中不对消息或者信息的名称进行限定,仅对消息内容进行示例性的说明和表达,消息的名称可以进行任意地替换。
步骤S502:第一节点根据安全参数解密第一密文,得到第一密钥协商参数。
具体地,第一密文为基于安全参数和第一密钥协商参数得到的,而安全参数是第一节点与第二节点中都可以获取的一个参数,因此第一节点可以根据安全参数解密第一密文,得到第一密钥协商参数。
对应于前述第二节点得到第一密文的实现方式,本申请例举以下几种解密第一密文的实现方式:
实现方式一:第一节点将第一密文和PSK(或者PSK的哈希值)进行椭圆点减运算,得到第一密钥协商参数。例如,第一密钥协商参数满足KEt如下式子:KEt=C1-hash(PSK),其中,C1为第一密文,+为椭圆曲线点减运算,hash为哈希算法。
实现方式二:第一节点将第一密文和PSK(或者PSK的哈希值)进行除法运算,得到第一密钥协商参数。例如,第一密钥协商参数KEt满足如下式子:KEt=C1÷hash(PSK),其中,C1为第一密文,÷为除法运算,hash为哈希算法。
实现方式三:第一节点使用加密算法,将PSK或者PSK的哈希值作为加密算法的输入,对第一密文进行解密。例如,第一密钥协商参数KEt满足如下式子:KEt=Dec(hash(PSK),C1),其中,Dec为加密算法Enc对应的解密算法(加密算法与解密算法一般为同一种算法,或者具体可以为算法中的不同计算流程,此处为了便于描述使用不同的名称)。
实现方式四:第一节点基于PSK推演第一中间密钥,通过第一中间密钥对第一密文进行解密,得到第一密钥协商参数。例如,第一中间密钥K1满足如下式子:K1=KDF(Hash(PSK),NONCEd),其中,KDF为推演第一中间密钥时使用的推演算法,NONCEd为推演第一中间密钥使用的新鲜性参数。得到的第一密钥协商参数KEt满足如下式子:KEt=Dec(K1,C1)。
步骤S503:第一节点根据第一密钥协商参数和密钥协商算法确定第一共享密钥。
具体的,密钥协商算法为第一节点与第二节点预先约定的密钥协商算法,或者第二节点可以在第一消息中携带该密钥协商算法的标识,用于指示使用何种密钥协商算法。
本申请例举几种根据第一密钥协商参数和密钥协商算法确定第一共享密钥的方式:
方式一:第一节点可以确定第一节点的私钥,基于密钥协商算法根据第一密钥协商参数和第一节点的私钥,确定交换密钥。该交换密钥可以作为第一共享密钥。
参见图6,图6是本申请实施例提供的确定交换密钥(第一共享密钥)的流程示意图,参见图6的(a)部分说明了基于DH算法确定交换密钥的过程,第一节点可以将第一密钥协商参数KEt输入至DH算法中,根据DH算法的流程,第一节点确定随机数b(作为第一节点的私钥),基于随机数b、第一密钥协商参数可以确定交换密钥KKE
参见图6的(b)部分,第一节点可以将第一密钥协商参数KEt输入至ECDH算法中,根据ECDH算法的流程,第一节点确定随机数b(作为第一节点的私钥),基于随机数b、椭圆曲线以确定交换密钥KKE
可以理解的,在一些具体设计中,可以将密钥协商算法封装为一个计算流程,输入为第一密钥协商参数,输出为第一共享密钥。当然,在另一些可能的设计中,也可以将确定私钥、计算交换密钥的步骤分别由不同的计算流程执行。
方式二:第一节点可以确定第一节点的私钥,基于密钥协商算法根据第一密钥协商参数和第一节点的私钥,确定交换密钥。第一节点基于交换密钥和新鲜性参数确定第一共享密钥。
例如,第一节点可以基于方式一所描述的方法确定交换密钥KKE,基于交换密钥KKE确定第一共享密钥Kgt。例如,第一共享密钥Kgt满足如下公式:Kgt=KDF(KKE,NONCEt,NONCEg),其中,NONCEt为第一新鲜性参数(可选参数),NONCEg为第二新鲜性参数(可选参数)。
需要说明的是,由于方式二中得到的第一共享密钥(后续称为第一共享密钥Kgt)是基于交换密钥KKE来确定的,而在方式一所描述的方案中将交换密钥作为第一共享密钥,因此为了方便描述,故在权利要求中将第一共享密钥kgt描述为第二共享密钥。可以理解的,本申请的“第一”“第二”只是为了区分参数,不作为对具体参数名称的限定。
可选的,图5所示的安全接入方法包括步骤S504-步骤S509中的一个或者多个步骤,步骤S504-步骤S509具体如下:
步骤S504:第一节点获取第一节点与第二节点之间的预共享密钥(pre-sharedkey,PSK)。
具体地,PSK是第一节点与第二节点之间共享的一个秘密值。下面例举两种第一节点获取第一节点与第二节点之间的PSK的可能情况:
情况一:在第一节点中存在PSK与第二节点身份标识的对应关系。也即是说,在第一节点中,第一节点与第二节点之间的PSK可以对应于第二节点的身份标识。第一节点可以根据第二节点的身份标识,根据对应关系获取对应的PSK。
其中,第二节点的身份标识可以为第二节点的ID、媒体存取控制(media accesscontrol,MAC)地址、域名、域地址或其他自定义的标识,也称为第二节点的设备标识。进一步的,第二节点可以在第一消息中携带第二节点的身份标识,从而第一节点可以获取第二节点的身份标识。可选的,PSK与第二节点的身份标识之间的对应关系,可以是在第一节点中预先配置、预先定义的对应关系,也可以是第一节点与第二节点通过协商的方式生成PSK后保存的对应关系。该对应关系的形式可以是对应关系集合、数据表、数据库等中的一个或者多个,本申请对此不做限定。参见表1,表1是本申请实施例例举的一种可能的PSK与第二节点身份标识的对应关系集合,该对应关系集合包括多个第二节点的身份标识、对应的PSK以及PSK的类型。例如,对于身份标识为“ID1”的第二节点,第一节点根据临时ID为“ID1.1”,可以确定其对应的PSK为“PSK1”。进一步的,“PSK1”的类型是预先配置的。
表1 PSK与第二节点的身份标识的对应关系集合
Figure BDA0002955296660000141
Figure BDA0002955296660000151
这里需要说明的是,在预先配置对应关系的情况下,第一节点中预先配置的PSK与第二节点预先配置的PSK是相同的;在生成PSK后保存对应关系的情况下,第一节点与第二节点生成PSK的方法以及所使用的参数也是相同的。在一种可能的设计中,若第一节点中存在PSK与第二节点的身份标识的对应关系,可以说明该第二节点之前已经接入过第一节点或者该第一节点预先配置有与第二节点之间的PSK,因此第一节点可以根据对应关系获取PSK。
需要说明是,若第一节点通过情况一的方式来获取PSK,则步骤S504也可以在步骤S502之前执行,该PSK可以用于对第一密文进行解密。本申请中其他步骤的执行的先后顺序在不影响方案实现的情况下也可以进行改变。
情况二:第一节点生成与第二节点之间的PSK。具体的,生成PSK的参数可以包括第一口令、第一共享密钥(具体可以为交换密钥KKE或者共享密钥kgt)、第一新鲜性参数、第二新鲜性参数、第一节点的身份标识、第二节点的身份标识等等中的一项或者多项。下面例举几种生成PSK的参数的案例:
案例1,第一节点确定一个随机数,将该随机数作为第一节点与第二节点之间的PSK。
案例2,第一消息中包含第一新鲜性参数,第一节点根据第一新鲜性参数和第一节点确定的新鲜性参数生成PSK。例如,生成的PSK满足:PSK=KDF(NONCEt,NONCEg),其中,KDF为生成PSK的密码算法,NONCEt为第一新鲜性参数,NONCEg为第二新鲜性参数。
案例3,第一节点根据第一口令生成PSK。例如,生成的PSK满足:PSK=KDF(pw,IDg,IDt,NONCEt,NONCEg,Kgt),其中,pw为第一口令,IDg为第一节点的身份标识,ID t为第二节点的身份标识,NONCEt为第一新鲜性参数,NONCEg为第二新鲜性参数。需要说明的是,IDt、IDg、NONCEt、NONCE g、Kgt为可选参数,Kgt也可以替换为前述的交换密钥KKE
进一步的,在第一共享密钥Kgt为基于交换密钥KKE派生得到的情况下,第一节点生成的PSK可以满足:
PSK=KDF(pw,IDt,IDg,NONCEt,NONCEg,KDF(KKE,NONCEt,NONCEg)。
其中的各项参数可以参考前述的描述,此处不再赘述。
在一种可能的设计中,第一节点生成与第二节点之间的PSK后,可以保存PSK与第二节点的身份标识的对应关系。
步骤S505:第一节点根据第一共享密钥和/或PSK得到第一身份认证信息。
具体地,第一身份认证信息用于认证第一节点的身份。例如,第一节点可以将第一身份认证信息发送给其他节点(例如第二节点),其他节点可以根据第一身份认证信息确定第一节点的身份。
本申请例举以下三种得到第一身份认证信息的实现方式:
实现方式一:第一节点根据预共享密钥PSK确定第一身份认证信息。可选的,参与生成第一身份认证信息的可选参数还可以包括第一共享密钥(可以为KKE或者kgt)、第一消息、第一身份信息所在的第二消息(下文中会进行描述)、第一节点支持的密钥协商算法的标识(或者称为第一节点的密钥协商算法能力)、第二节点支持的密钥协商算法的标识(或者称为第二节点的密钥协商算法能力)中的一项或者多项。上述的消息可以为整条消息,也可以为消息中的部分参数。例如,可以使用整条第一消息作为参数,也可以使用第一消息中的第一新鲜性参数作为参数。
例如,在一种可能的设计中,第一身份认证信息AUTHg满足:AUTHg=KDF(PSK,第一消息,第二消息中的部分参数),其中,第二消息可以为第一身份认证信息所在的消息(下文中会进行描述)。这样一来,其他节点(例如第二节点)可以根据第一身份认证信息校验自身存储的PSK是否与第一节点中的PSK(若一致,则说明第一节点的身份可信),还可以校验第一消息、第二消息中的部分参数是否遭到了篡改。也即是说,第一身份认证信息不仅可以认证第一节点身份,还可以保护第一消息、第二消息的完整性。
再如,在另一种可能的设计中,第一身份认证信息AUTHg可以满足:AUTHg=AUF(PSK,KKE,第一消息,第二新鲜性参数)。各个参数可以参考前述的描述。
实现方式二:实现方式一中的PSK也可以替换为交换密钥KKE或者替换为第一共享密钥Kgt。
实现方式三:第一节点根据第一共享密钥和/或PSK确定第一密钥(或者称为身份认证密钥),根据第一密钥生成第一身份认证信息。可理解的,在生成第一身份认证信息时,不直接使用PSK或者第一共享密钥,而是使用基于PSK和/或第一共享密钥得到的第一密钥,这样可以保护PSK、第一共享密钥的安全,提高PSK和第一共享密钥的安全性。
可选的,第一节点生成的第一身份认证信息AUTHg满足:AUTHg=KDF(Kauth,第一消息,第二消息中的部分参数),各个参数的含义可以参考前述的定义。
进一步可选的,第一节点根据第一共享密钥和/或PSK确定第一密钥(Kauth)可以有如下几种设计:
设计1:第一节点确定的第一密钥Kauth满足:
Kauth=KDF(KKE,NONCEt,NOCNEg,IDg,IDt,“authentication”),
其中,“authentication”为一种可选的密钥标识,具体实施时可以预先配置或者协议规定一段字符串作为密钥标识。NONCEt、NOCNEg、IDg、IDt、“authentication”为可选参数,具体含义可以参考前述描述。
设计2:第一节点确定的第一密钥Kauth满足:
Kauth=KDF(KKE||PSK,NONCEt,NOCNEg,IDg,IDt,“authentication”),
其中,“||”可以表示字符串连接(仅为示例,具体实现过程中也可以不进行连接,例如分别作为两个输入参数)。NONCEt、NOCNEg、IDg、IDt、“authentication”为可选参数,具体含义可以参考前述描述。
设计3:设计1、2中的KKE也可以替换为根据KKE派生得到的Kgt。进一步的,确定第一密钥Kauth的方式满足:
Kauth=KDF[KDF(KKE,NONCEt,NONCEg)||PSK,NONCEt,NOCNEg,IDg,IDt,"authentication"],
其中,各个参数可以参考前述的定义。
类似地,第一节点也可以通过如设计1-3所示的方法,派生得到加密密钥和完整性保护密钥。
例如,第一节点确定的加密密钥Kenc可以满足:
Kenc=KDF(KKE||PSK,NONCEt,NOCNEg,IDg,IDt,“EncryptionKey”)。
再如,第一节点确定的完整性保护的密钥Kmac可以满足:
Kmac=KDF(KKE||PSK,NONCEt,NOCNEg,IDg,IDt,“MACKey”)。
步骤S506:第一节点向第二节点发送第二消息。其中,第二消息包含第二密文,第二密文为根据第二密钥协商参数和安全参数得到的。可选的,第二消息中还可以包括第一身份认证信息。
具体地,为了方便描述,将第一节点发送给第二节点的密钥协商参数称为第二密钥协商参数。
第二密钥协商参数通常为第一节点根据第一节点的私钥来确定的。
安全参数为第一节点与第二节点中共享的一个参数,例如,第一节点与第二节点的共享密钥(包括预共享密钥、对称加密密钥等)、第一节点与第二节点之间约定的口令、第一节点与第二节点之间的预先配置的参数、通信协议中预先定义的参数等。具体可以参考前述S501中的详细描述,此处不再赘述。
下面以PSK为例,例举四种第一节点根据安全参数和第二密钥协商参数得到第二密文的实现方法:
实现方法一:第一节点将PSK(或者PSK的哈希值)和第二密钥协商参数进行点加运算,得到第二密文。例如,第二密文C2满足如下式子:C2=hash(PSK)+KEg,其中,KEg为第二密钥协商参数,+为椭圆曲线点加运算,hash为哈希算法。
实现方法二:第一节点将PSK(或者PSK的哈希值)和第二密钥协商参数进行乘法运算,得到二密文。例如,第二密文C2满足如下式子:C2=hash(PSK)*KEg,其中,KEg为第二密钥协商参数,*为乘法运算,hash为哈希算法。
实现方法三:第一节点使用加密算法,根据PSK或者(或者PSK的哈希值),对第二密钥协商参数进行加密得到第二密文。例如,得到的第二密文C2满足如下式子:C2= Enc(hash(PSK),KEg),其中,Enc为加密算法,具体可以为SM4算法、ZUC算法、AES算法等等中的一个或者多个。
实现方法四:第一节点可以基于PSK或者PSK的哈希值推演第一中间密钥,使用第一中间密钥对第二密钥协商参数进行加密。例如,第一中间密钥K1满足如下式子:K1=KDF(Hash(PSK),NONCEd),其中,KDF为推演密钥使用的推演算法,NONCEd为推演第一中间密钥使用的新鲜性参数(可选参数,此处仅为示例,若NONCEd为二节点确定的随机数,可以通过消息发送给第一节点)。第一节点得到的第二密文C2满足:C2=Enc(K1,KEg)。
KEg可以理解的,上述PSK也可以替换为第一口令、第一节点与第二节点之间的预先配置的参数、通信协议中预先定义的参数等,不在一一赘述。
在一种可能的设计中,在第一节点中存在与第二节点之间的PSK的情况下,第一节点基于PSK和第一密钥协商参数得到第二密文。在第一节点中不存在与第二节点之间的PSK的情况下,则第一节点根据第一口令和第二密钥协商参数得到第二密文。
在一种可能的设计中,根据协议规定,第二节点使用什么方式得到第一密文,则第一节点也使用相应的方式得到第二密文,便于进行加解密。
可选的,第二消息中还可以包含第二节点确定的新鲜性参数(fresh parameter)。为了方便描述,本申请各实施例中,将第二消息中包含的新鲜性参数称为第二新鲜性参数。其中,新鲜性参数为包括随机数、计数值、序列号等等中的至少一个。
进一步可选的,第二消息中还可以包括消息认证码(message authenticationcode,MAC)。其中,MAC是根据完整性保护算法生成的消息认证码,用于保护第二消息的完整性。
第一节点向第二节点发送第二消息。相应的,第二节点接收来自第一节点的第二消息。需要说明的是,具体实施过程中,第二消息也可以称为认证请求消息、安全上下文请求消息、身份认证请求消息,或者称为认证请求信息、安全上下文请求信息、身份认证请求信息。
步骤S507:第二节点根据安全参数解密第二密文,得到第二密钥协商参数。
具体地,第二密文为基于安全参数和第一密钥协商参数得到的,因此第二节点可以根据安全参数解密第二密文,得到第二密钥协商参数。
对应于前述第一节点得到第二密文的实现方式,本申请例举以下几种实现方式解密第二密文:
实现方式一:第二节点将第二密文和PSK(或者PSK的哈希值)进行点减运算,得到第二密钥协商参数。
实现方式二:第二节点将第二密文和PSK(或者PSK的哈希值)进行除法运算,得到第二密钥协商参数。
实现方式三:第二节点使用加密算法,将PSK(或者PSK的哈希值)作为解密算法的输入,对第二密文进行解密。例如,第一密钥协商参数KEt满足如下式子:KEg=Dec(hash(PSK),C2),其中,Dec为加密算法Enc对应的解密算法。
实现方式四:第二节点可以基于PSK推演第一中间密钥钥,使用第一中间密钥对第二密文进行解密。例如,第一中间密钥K1满足如下式子:K1=KDF(Hash(PSK),NONCEd),其中,KDF为推演第一中间密钥使用的推演算法,NONCEd为推演第一中间密钥使用的新鲜性参数。例如,第一密钥协商参数KEt满足如下式子:KEt=Enc(K1,C2)。
需要说明的是,上述各个实现方式具体可以参考步骤S502中第一节点侧的解密方式的详细描述。
步骤S508:第二节点根据第二密钥协商参数和密钥协商算法确定第一共享密钥。
具体的,密钥协商算法为第一节点与第二节点预先约定的密钥协商算法,或者第二节点可以根据需求从第一节点支持的一个或多个密钥协商算法中确定密钥协商过程中使用的算法,又或者第一节点可以在发送给第二节点的消息中携带该密钥协商算法的标识,用于指示使用何种密钥协商算法。
本申请例举几种根据第二密钥协商参数和密钥协商算法确定第一共享密钥的方式:
方式一:第二节点确定第二节点的私钥,基于密钥协商算法根据第二密钥协商参数和第二节点的私钥,确定交换密钥。该交换密钥可以作为第一共享密钥。
方式二:第二节点可以根据第二密钥协商参数和第二节点的私钥,确定交换密钥。第二节点基于交换密钥和新鲜性参数确定第一共享密钥。
需要说明的是,需要说明的是,上述各个实现方式具体可以参考步骤S503中第一节点侧的确定第一共享密钥的详细描述。
步骤S509:第二节点根据第一共享密钥和/或PSK得到第二身份认证信息。
具体地,PSK是第一节点与第二节点之间共享的一个秘密值。该PSK可以是基于来自第二节点的新鲜性参数和来自第一节点的新鲜性参数生成的,也可以是在第一节点与第二节点中预先配置、预先定义的。
在确定第二身份认证信息之前,第二节点可以先获取与第一节点之间的PSK。下面例举两种第二节点获取第一节点与第二节点之间的PSK的可能情况:
情况一:在第二节点中存在PSK与第一节点身份标识的对应关系,第二节点可以根据第一节点的身份标识,根据对应关系获取对应的PSK。该对应关系的形式可以是对应关系集合、数据表、数据库等中的一个或者多个,本申请对此不做限定。具体可以参见步骤S504中第一节点侧的相关描述,此处不再赘述。
需要说明是,若第二节点通过情况一的方式来获取PSK,则步骤S509也可以在步骤S501之前执行,该PSK可以用于对第一密钥协商参数进行加密。
情况二:第二节点生成与第一节点之间的PSK。具体的,生成PSK的参数可以包括第一口令、第一共享密钥、第一新鲜性参数、第二新鲜性参数、第一节点的身份标识、第二节点的身份标识等等中的一项或者多项。详细描述可以参见步骤S504中第一节点侧生成PSK的具体说明,此处不再赘述。
可选的,第二节点根据第一共享密钥和/或PSK得到第二身份认证信息,至少可以有以下三种实现方式:
实现方式一:第二节点根据PSK得到第二身份认证信息。可选的,参与生成第二身份认证信息的可选参数还可以包括第一共享密钥(可以为KKE或者kgt)、第一消息、第二消息以及第二身份认证信息所在的第三消息(下文中会进行描述)、第一节点的密钥协商算法能力、第二节点的密钥协商算法能力中的一项或者多项。上述的消息可以为整条消息,也可以为消息中的部分参数。例如,可以使用整条第二消息作为参数,也可以使用第二消息中的第二新鲜性参数(NONCEt)作为参数。
例如,在一种可能的设计中,第二身份认证信息AUTHt满足:AUTHt=KDF(PSK,第一消息,第二消息,第三消息中的部分参数,第一节点的密钥协商算法能力)。这样一来,其他节点(例如第一节点)可以根据第二身份认证信息校验自身的PSK是否与第二节点中的PSK一致(若一致,则说明第二节点的身份可信),还可以校验第一消息、第二消息以及第三消息中的部分参数是否遭到了篡改。也即是说,第二身份认证信息不仅可以认证第二节点的身份,还可以保护第一消息、第二消息以及第三消息中的部分参数的完整性。
再如,在另一种可能的设计中,第二身份认证信息AUTHt可以满足:AUTHg=AUF(PSK,KKE,第二消息,NONCEt,第一节点的密钥协商算法能力)。各个参数可以参考前述的描述。
实现方式二:实现方式一中的PSK可以替换为前述的交换密钥KKE或者第一共享密钥Kgt。
实现方式三:第二节点根据第一共享密钥和/或PSK确定第一密钥(或者称为身份认证密钥),根据第一密钥生成第二身份认证信息。也即是说,实现方式一中的Kgt可以替换为第一密钥Kauth。
可理解的,在生成第二身份认证信息时,不直接使用PSK或者第一共享密钥,而是使用基于PSK或者第一共享密钥得到的第一密钥,从而可以提高PSK和第一共享密钥的安全性。
可选的,第二节点生成的第二身份认证信息AUTHt满足:AUTHt=KDF(Kauth,第一消息,第二消息,第三消息中的部分参数,第一节点的密钥协商算法能力),各个参数的含义可以参考前述的定义。
需要说明的是,第二节点生成第一密钥Kauth、加密密钥、完保密钥的具体情况,可以参见步骤S505中第一节点侧的描述,此处不再赘述。
可选的,本申请实施例所述的安全接入方法,还可以包括图7所示的步骤S510-步骤S514中的一个或者多个步骤,步骤S510-步骤S514具体如下:
步骤S510:第二节点根据第一身份认证信息,认证第一节点的身份。
具体的,在第一节点将第一身份信息发送给第二节点的情况下(例如第二消息中携带有第一身份认证信息),第二节点可以根据第一身份信息认证第一节点的身份。
在一种可选的方案中,根据协议规定,第一节点使用什么参数生成第一身份认证信息,则第二节点也应当使用相同的参数生成校验信息,如果校验信息与第一身份认证信息相同,则认为验证通过。
例如,由于第一身份认证信息为根据第一共享密钥和/或PSK确定的,因此第二节点可以根据第一共享密钥和/或PSK,以及第一身份认证信息,认证第一节点的身份。具体的,若第二节点根据第一共享密钥和/或PSK生成的校验信息与第一身份认证信息相同,则确定第一节点的身份认证通过。
再如,若第一身份认证信息AUTHg满足:AUTHg=KDF(Kauth,第一消息,第二消息中的部分参数),则第二节点根据Kauth,则第二节点生成校验信息check1=KDF(Kauth,第一消息,第二消息中的部分参数),若校验信息check1与AUTHg相同,则确定第一节点的身份认证通过。
可选的,若第一身份认证信息验证不通过,第二节点可以断开与第一节点之间的通信连接或者丢弃第二消息,进一步的还可以重新向第一节点发送第一消息。例如,若第一身份认证信息验证不通过,说明第二节点中的第一共享密钥(PSK)与第二节点的第一共享密钥(PSK)不同,因此第一节点的身份不可信,第一节点可能是攻击者伪装的节点,故丢弃第二消息,重新向第一节点发送第一消息,避免接入不可信的节点。
需要说明是,步骤S510也可以在步骤S509之前执行。本申请中其他步骤的执行的先后顺序在不影响方案实现的情况下也可以进行改变。
步骤S511:第二节点向第一节点发送第三消息。
具体的,第三消息中携带有第二身份认证信息。其中,该第二身份认证信息可以为前述步骤S509中确定的第二身份认证信息。
可以理解的,第二节点向第一节点发送第三消息,相应的,第一节点则接收来自第二节点的第三消息。
步骤S512:第一节点根据第二身份认证信息,认证第二节点的身份。
具体的,由于第二身份认证信息为第二节点根据第一共享密钥和/或PSK确定的,因此第一节点中也可以获取第一共享密钥和/或PSK,从而校验第二身份认证信息。
在一种可选的方案中,根据协议规定,第二节点使用什么参数生成第二身份认证信息,则第一节点也应当使用相同的参数生成校验信息,如果校验信息与第二身份认证信息相同,则认为验证通过。
例如,由于第二身份认证信息为根据第一共享密钥和/或PSK确定的,因此第一节点可以根据第一共享密钥和/或PSK,以及第二身份认证信息,认证第二节点的身份。具体的,若第一节点根据第一共享密钥和/或PSK生成的所述校验信息与第二身份认证信息相同,则确定第一节点的身份认证通过。
再如,若第二身份认证信息AUTHt满足: AUTHt=KDF(Kauth,第一消息,第二消息,第三消息中的部分参数,第一节点的密钥协商算法能力)。在这种情况下,第一节点可以根据相同的参数和方式生成校验信息check2,即校验信息check2满足:check2=KDF(Kauth,第一消息,第二消息,第三消息的部分参数,第一节点的密钥协商算法能力),若校验信息check2与第二身份认证信息AUTHt相同,则确定第二节点的身份认证通过。
可选的,若第二身份认证信息验证不通过,第一节点可以断开与第一节点之间的通信连接。若第二身份认证信息验证通过,则说明第二节点的身份可信,第一节点可以与第二节点进行通信。
步骤S513:第一节点向第二节点发送第四消息。
可选的,该第四消息用于指示第二节点关联已经建立、或者指示第二节点接入成功或者指示验证其身份成功等等。相应的,第二节点可以接收来自第一节点的第四消息。
进一步的,该第四消息可以称为关联建立消息(具体场景中也可以称为关联完成消息)。
在图5所示的实施例中,第二节点通过安全参数(该安全参数可以是PSK或者第一口令)将第一密钥协商参数加密得到第一密文,由于第一节点中预先配置有或者可以获取相同的安全参数,因此第一节点可以对第一密文进行解密得到第一密钥协商参数,后续可以基于该第一密钥协商参数生成共享密钥。由于没有获取安全参数不能生成共享密钥,第二节点无法接入第一节点,因此可以避免攻击者通过第二节点接入第一节点,防止第一节点与身份不可信的攻击者关联成功。
以上图5以及图7所示的方法实施例中包含了很多可能的实现方案,下面结合图8对其中的部分实现方案进行举例说明,需要说明的是,图8未解释到的相关概念、操作或者逻辑关系可以参照图5以及图7所示实施例中的相应描述。
请参见图8和图9,图8是本申请实施例提供的一种安全接入方法,图9为一种可能的该安全接入方法的运行示意图,该方法可以基于图3所示的架构来实现。该安全接入方法可以包括如下步骤:
步骤S801:第二节点根据安全参数加密第一密钥协商参数,得到第一密文。
具体的,一般来说,第一密钥协商参数为根据第二节点的私钥来确定的。参见图9,以密钥协商算法为ECDH算法为例,第二节点可以根据私钥a和基点G确定第一密钥协商参数KEt。
请参见图9,第二节点可以通过安全参数901对第一密钥协商参数KEt进行加密,得到第一密文C1。具体加密方式可以参考步骤S501中的详细描述,此处不再赘述。
步骤S802:第二节点向第一节点发送第一消息。第一消息中包含第二节点的身份标识、第一密文和第一新鲜性参数NONCEt。
步骤S803:第一节点解密第一密文,得到第一密钥协商参数。
具体的,第一密文为基于安全参数和第一密钥协商参数得到的,因此第一节点可以根据安全参数解密第一密文,得到第一密钥协商参数。参见图9,由于安全参数901是第一节点与第二节点之间共享的一个参数,因此第一节点可以根据安全参数901解密第一密文C1得到第一密钥协商参数KEt。具体解密方式可以参考步骤S502中的详细描述,此处不再赘述。
步骤S804:第一节点根据安全参数加密第二密钥协商参数,得到第二密文。
一般来说,第二密钥协商参数为根据第一节点的私钥来确定的。参见图9,以密钥协商算法为ECDH算法为例,第一节点可以根据私钥b和基点G确定第二密钥协商参数KEg。具体加密方式可以参考步骤S506中的详细描述,此处不再赘述。
步骤S805:第一节点基于密钥协商算法,根据第一密钥协商参数、第一新鲜性参数和第二新鲜性参数确定第一共享密钥。
具体的,例如,参见图9,第一节点可以根据第一节点的私钥b、第一密钥协商参数KEt确定交换密钥KKE。根据交换密钥KKE、第一新鲜性参数NONCEt和第二新鲜性参数NONCEg确定第一共享密钥Kgt。
在一些可能的场景中,第一新鲜性参数NONCEt和第二新鲜性参数NONCEg为可选参数(图9中用虚线示出的参数、步骤等为可选参数、步骤)。
步骤S806:第一节点根据第一共享密钥和/或第一节点与第二节点之间的PSK确定身份认证密钥。
具体可以参见步骤S504中的相关描述,此处不再赘述。
参见图9,第一节点生成的身份认证密钥Kauth可以满足:
Kauth=KDF(Kgt||PSK,NONCEt,NOCNEg,IDg,IDt,“authentication”),
其中,“||”可以表示字符串连接(仅为示例,具体实现过程中也可以不进行连接,例如分别作为两个输入参数),Kgt为第一共享密钥,NONCEt为第一新鲜性参数,NOCNEg为第二新鲜性参数,IDg为第一节点的身份标识,IDt为第二节点的身份标识,“authentication”为字符串(可以是预先定义或者配置的,又或者是协议规定的)。在一些可能的场景中,NONCEt、NOCNEg、IDg、IDt、“authentication”为可选参数,第一共享密钥Kgt也可以替换为交换密钥KKE
步骤S807:第一节点根据身份认证密钥,以及第一消息和第二消息中的至少一个确定第一身份认证信息。
具体可以参见步骤S505中的详细描述。
步骤S808:第一节点向第二节点发送第二消息。其中,第二消息中包含第二密文、第二新鲜性参数和第一身份认证信息。
步骤S809:第二节点解密第二密文,得到第二密钥协商参数。
具体的,第二密文为基于安全参数和第二密钥协商参数得到的,因此第二节点可以根据安全参数解密第二密文,得到第二密钥协商参数。参见图9,由于安全参数902是第一节点与第二节点之间共享的一个参数,因此第一节点可以根据安全参数902解密第一密文C1得到第二密钥协商参数KEt。具体解密方式可以参考步骤S507中的详细描述,此处不再赘述。
需要说明的是,具体实现过程中,安全参数901与安全参数902通常是同一个参数,例如,第二节点使用第一口令作为安全参数901,第一节点也使用第一口令作为安全参数902。但是,某些场景中安全参数901与安全参数902也可以不是同一个参数,例如,第一节点使用第一公钥作为安全参数901,第二节点使用第一私钥作为安全参数902,该第一公钥和第一私钥为一个公私钥对。
步骤S810:第二节点基于密钥协商算法,根据第二密钥协商参数、第一新鲜性参数和第二新鲜性参数确定第一共享密钥。
例如,参见图9,第二节点可以根据第二节点的私钥a、第二密钥协商参数KEg确定交换密钥KKE。根据交换密钥KKE、第一新鲜性参数NONCEt和第二新鲜性参数NONCEg确定第一共享密钥Kgt。其中,第一新鲜性参数NONCEt和第二新鲜性参数NONCEg为可选参数。
步骤S811:第二节点根据第一共享密钥和第一节点与第二节点之间的PSK确定身份认证密钥。
具体可以参见步骤S504中的相关描述,此处不再赘述。
步骤S812:第二节点根据身份认证密钥,以及第一消息和第二消息中的至少一个校验第一身份认证信息。
具体可以参见步骤S510中的相关描述,此处不再赘述。
步骤S813:第二节点根据身份认证密钥,以及第一消息、第二消息和第三消息中的至少一个确定第二身份认证信息。
具体可以参见步骤S509中的详细描述。
步骤S814:第二节点向第一节点发送第三消息,第三消息中包括第二身份认证信息。
具体可以参见步骤S511中的描述。可选的,参见图9,该第三消息可以使用加密密钥903进行加密。该加密密钥可以根据第一共享密钥和PSK推演得到的。
可选的,该第三消息还可以使用完整性保护密钥进行完整性保护。
步骤S815:第一节点根据身份认证密钥,以及第一消息、第二消息和第三消息中的至少一个校验第二身份认证信息。
具体可以参见步骤S512中的相关描述。
可选的,图8所示的实施例还可以包括步骤S816,具体如下
步骤S816:第一节点向第二节点发送第四消息。
可选的,参见图9,该第四消息可以使用加密密钥903进行加密。
可选的,该第四消息还可以使用完整性保护密钥进行完整性保护。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图10,图10是本申请实施例提供的一种通信装置100的结构示意图,该装置100可以为一个节点,为了便于描述可以称之为第一节点。当然,该装置100也可以为第一节点中的一个器件,例如芯片或者集成电路等,该装置100可以包括接收单元1001和处理单元1002。该通信装置100用于实现前述的安全接入方法,例如图5、图7或者图8所示的任意一个实施例的安全接入方法。
在一种可能的实施方式中,接收单元1001,用于接收来自第二节点的第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;其中,第一节点和第二节点之间的PSK是第一节点与第二节点之间共享的一个秘密值,第一口令可以看作是第二节点接入第一节点的密码。
处理单元1002,用于根据所述安全参数解密所述第一密文,得到所述第一密钥协商参数;
所述处理单元1002,还用于根据所述第一密钥协商参数和密钥协商算法确定第一共享密钥。
在本申请实施例中,第二节点将第一密钥协商参数通过安全参数(该安全参数可以是PSK或者第一口令)进行加密。上述通信装置可以预先配置有或者可以获取相同的安全参数,因此可以对第一密文进行解密得到第一密钥协商参数,后续可以基于该第一密钥协商参数生成共享密钥。由于没有获取安全参数不能生成共享密钥,第二节点无法接入第一节点,因此可以避免攻击者通过第二节点接入第一节点,防止第一节点与身份不可信的攻击者关联成功。
在一种可能的实施方式中,所述处理单元1002,还用于:
获取所述第一节点与所述第二节点之间的PSK;
根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
上述通信装置100可以根据所述第一共享密钥和PSK得到第一身份认证信息,该第一身份认证信息可以用于认证第一节点的身份。本申请例举一种通过第一身份信息认证第一节点的身份的方法:第二节点确定第一共享密钥,根据第一共享密钥和PSK生成校验信息,若校验信息与第一身份认证信息相同,则说明第一节点与第二节点之间的第一共享密钥和PSK是相同的,从而可以认证第一节点的身份,避免节点与攻击者进行通信,提高节点的安全性。
在又一种可能的实现方式中,所述处理单元1002,具体用于:
根据第一对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数。
可以看出,第一节点可以通过对应关系的形式来存储PSK与第二节点的对应关系。因此,上述通信装置100可以根据第一关系得到第一节点与第二节点之间的PSK。
在一种可能的设计中,PSK是根据第一口令、第一共享密钥、第一随机数和第二随机数来确定的。在第一节点与第二节点第一次进行关联时或者第一节点中没有获取到第一对应关系的情况下,第一节点中不存在与所述第二节点的身份标识对应的PSK,因此上述通信装置100可以确定新的PSK。
在又一种可能的实现方式中,所述处理单元1002,具体用于:
根据所述第一共享密钥、所述第一随机数和所述第二随机数,确定第二共享密钥;
根据所述第一口令、所述第二共享密钥、所述第一随机数、所述第二随机数确定所述第一节点与所述第二节点之间的PSK。
在又一种可能的实现方式中,所述第一密文为根据所述安全参数的哈希值和第一密钥协商参数得到的;所述处理单元1002,具体用于:
根据所述安全参数的哈希值解密所述第一密文,得到所述第一密钥协商参数。
在又一种可能的实现方式中,所述第一密文为所述安全参数的哈希值和第一密钥协商参数通过椭圆曲线点加运算得到的;所述处理单元1002,具体用于:
根据所述安全参数的哈希值和所述第一密文,通过椭圆曲线点减运算,得到所述第一密钥协商参数。
在又一种可能的实现方式中,所述处理单元1002,具体用于:
根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥对所述第一密文进行解密,得到所述第一密钥协商参数。
在又一种可能的实现方式中,所述处理单元1002,具体用于:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、所述第一随机数和所述第二随机数,生成所述第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
在又一种可能的实现方式中,所述处理单元1002,还用于根据所述安全参数加密第二密钥协商参数,得到第二密文;
所述装置100,还包括发送单元1003,用于向第二节点发送第二消息,所述第二消息包括所述第一身份认证信息和所述第二密文;所述第二密文用于所述第二节点确定所述第一共享密钥。
其中,第二密钥协商参数用于第二节点确定共享密钥。可以看出,上述通信装置100可以基于安全参数对第二密钥协商参数进行加密,只有破解了安全参数才能解密第二密钥协商参数生成共享密钥,避免了攻击者伪装第二节点接入上述装置100,保证了密钥协商过程的安全性。
在又一种可能的实现方式中,所述接收单元1001,还用于接收来自所述第二节点的第三消息,所述第三消息包括第二身份认证信息;
所述处理单元1002,还用于根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第二身份认证信息,确定所述第二节点的身份认证通过。
上述说明了一种认证第二节点的身份的方法,第二身份认证信息为第二节点根据PSK和第一共享密钥生成的,因此上述通信装置100根据PSK、第一共享密钥和第二身份认证信息可以确定第二节点中的第一共享密钥和PSK是否与第一节点侧相同,从而可以认证第二节点的身份。
在又一种可能的实现方式中,前述第一消息也可以称为接入请求消息(或者关联请求消息)。进一步的,第二消息也可以称为安全上下文请求消息(或者身份认证请求消息)。第三消息也可以称为安全上下文响应消息(或者身份认证响应消息)。
在又一种可能的实施方式中,所述发送单元1003,还用于向第二节点发送第四消息,所述第四消息用于指示接入成功,或者用于指示关联完成。进一步的,该第四消息可以称为关联建立消息(或者接入关联完成消息)、关联完成消息等。
需要说明的是,各个单元的实现还可以对应参照图5或者图8所示的实施例的相应描述。该通信装置100可以为图5或者图8所示实施例中的第一节点。
可以理解的,本申请各个装置实施例中,对多个单元或者模块的划分仅是一种根据功能进行的逻辑划分,不作为对装置具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,装置100在安全接入的过程中所执行的大致流程是相同的。例如,上述装置100中的接收单元1001和发送单元1003也可以集成为通信单元,该通信单元可以实现接收单元1001和发送单元1003所实现的功能。通常,每个单元都对应有各自的程序代码(或者程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元受处理单元的控制而执行相应的流程从而实现相应功能。
请参见图11,图11是本申请实施例提供的一种通信装置110的结构示意图,该装置110可以为一个节点,为了便于描述可以称之为第二节点。当然,该装置110也可以为第一节点中的一个器件,例如芯片或者集成电路等,该装置110可以包括发送单元1101、接收单元1102和处理单元1103。该通信装置110用于实现前述的安全接入方法,例如图5、图7或者图8所示的任意一个实施例的安全接入方法。
在一种可能的实施方式中,发送单元1101,用于向第一节点发送第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;
接收单元1102,用于接收来自所述第一节点的第二消息,所述第二消息包括第二密文;所述第二密文为根据所述安全参数加密第二密钥协商参数得到的;
处理单元1103,用于根据所述安全参数解密所述第二密文,得到所述第二密钥协商参数;
所述处理单元1103,还用于根据所述第二密钥协商参数和密钥协商算法确定第一共享密钥;
所述处理单元1103,还用于根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息,所述第二身份认证信息用于认证所述第二节点的身份。
在本申请实施例中,上述通信装置110将所述第一密钥协商参数通过所述安全参数(该安全参数可以是PSK或者第一口令)进行加密再发送给所述第一节点,相应的,所述第一节点也通过安全参数加密第二密钥协商参数。通信双方可以通过安全参数对密文进行解密,基于该密钥协商参数生成共享密钥。由于没有获取安全参数则不能生成共享密钥,第二节点无法接入第一节点,因此可以避免第二节点接入不可信的第一节点,提高第二节点的安全性。
在一种可能的实施方式中,所述处理单元1103,还用于:
获取所述第一节点与所述第二节点之间的PSK。
在又一种可能的实施方式中,所述处理单元1103,具体用于:
根据第二对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数;其中,所述第一消息中包含所述第一随机数。
可以看出,可以通过对应关系的形式来存储PSK与第一节点的对应关系。因此,上述通信装置110可以根据对应关系得到第一节点与第二节点之间的PSK。
在一种可能的设计中,PSK是根据第一口令、第一共享密钥、第一随机数和第二随机数来确定的。在第一节点与第二节点第一次进行关联时或者第一节点中没有获取到第一对应关系的情况下,第二节点中不存在与所述第一节点对应的PSK,因此上述通信装置110可以通过上述方式确定新的PSK。
在又一种可能的实施方式中,所述处理单元1103,具体用于:
根据所述第一共享密钥、所述第一随机数和所述第二随机数,确定第二共享密钥;
根据所述第一口令、所述第二共享密钥、所述第一随机数、所述第二随机数确定所述第一节点与所述第二节点之间的PSK。
在又一种可能的实施方式中,所述处理单元1103,还用于:
根据所述安全参数加密所述第一密钥协商参数,得到所述第一密文。
在又一种可能的实施方式中,所述处理单元1103,具体用于:
根据所述安全参数的哈希值加密所述第一密钥协商参数,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一密钥协商参数,通过椭圆曲线点加运算,得到所述第一密文;
又或者,根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥加密所述第一密钥协商参数,得到所述第一密文。
在又一种可能的实施方式中,所述处理单元103,具体用于:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、第一随机数和第二随机数,生成所述第二身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
在又一种可能的实施方式中,所述第二消息中还包括第一身份认证信息;所述处理单元1103,还用于:
根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第一身份认证信息,确定所述第一节点的身份认证通过。
上述说明了一种认证第一节点的身份的方法,第一身份认证信息为第一节点根据PSK和第一共享密钥生成的,因此根据PSK、第一共享密钥和第一身份认证信息可以确定第一节点中的第一共享密钥和PSK是否与第二节点侧相同,从而可以认证第一节点的身份。需要说明的是,认证第一节点的身份的时机可以是周期的,也可以是非周期的,或者还可以在执行某些重要操作之前,认证第一节点的身份,取决于具体实施时候的实现。
在又一种可能的实现方式中,前述第一消息也可以称为接入请求消息(或者关联请求消息)。进一步的,第二消息也可以称为安全上下文请求消息(或者身份认证请求消息)。第三消息也可以称为安全上下文响应消息(或者身份认证响应消息)。
在又一种可能的实施方式中,所述接收单元1102,还用于接收来自第一节点的第四消息,所述第四消息用于指示接入成功,或者用于指示关联完成。进一步的,该第四消息可以称为关联建立消息(或者接入关联完成消息)、关联完成消息等。
需要说明的是,各个单元的实现还可以对应参照图5或者图8所示的实施例的相应描述。该通信装置110可以为图5或者图8所示实施例中的第二节点。
请参见图12,图12是本申请实施例提供的一种通信装置120的结构示意图,该通信装置120可以为节点,也可以为节点中的一个器件,例如芯片或者集成电路等。该装置120可以包括至少一个处理器1202和通信接口1204。进一步可选的,所述通信装置还可以包括至少一个存储器1201。更进一步可选的,还可以包含总线1203,其中,存储器1201、处理器1202和通信接口1204通过总线1203相连。
其中,存储器1201用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器1201可以是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)等等中的一种或者多种的组合。
处理器1202是进行算术运算和/或逻辑运算的模块,具体可以是中央处理器(central processing unit,CPU)、图片处理器(graphics processing unit,GPU)、微处理器(microprocessor unit,MPU)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、复杂可编程逻辑器件(Complex programmable logic device,CPLD)、协处理器(协助中央处理器完成相应处理和应用)、微控制单元(Microcontroller Unit,MCU)等处理模块中的一种或者多种的组合。
通信接口1204可以用于为所述至少一个处理器提供信息输入或者输出。和/或所述通信接口可以用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙、通用无线传输、车载短距通信技术等)接口。可选的,通信接口1204还可以包括与接口耦合的发射器(如射频发射器、天线等),或者接收器等。
该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行前述的安全接入方法,例如图5、图7或者图8所示实施例所描述的安全接入方法。
在一种设计中,该通信装置120可以为图5、图7或者图8所示实施例中的第一节点。该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行以下操作:
通过通信接口1204接收来自第二节点的第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;其中,第一节点和第二节点之间的PSK是第一节点与第二节点之间共享的一个秘密值,第一口令可以看作是第二节点接入第一节点的密码。
根据所述安全参数解密所述第一密文,得到所述第一密钥协商参数;
根据所述第一密钥协商参数和密钥协商算法确定第一共享密钥。
在本申请实施例中,第二节点将所述第一密钥协商参数使用所述安全参数(该安全参数可以是PSK或者第一口令)进行加密得到所述第一密文。上述通信装置120可以预先配置有或者可以获取相同的安全参数,因此可以对所述第一密文进行解密得到第一密钥协商参数,后续可以基于该第一密钥协商参数生成共享密钥。由于没有获取安全参数则不能生成共享密钥,第二节点无法接入第一节点,因此可以避免攻击者通过第二节点接入第一节点,防止第一节点与身份不可信的攻击者关联成功。
在一种可能的实施方式中,所述处理器1202,还用于:
获取所述第一节点与所述第二节点之间的PSK;
根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
第二节点可以根据所述第一共享密钥和PSK得到第一身份认证信息,该第一身份认证信息可以用于认证第一节点的身份。本申请例举一种通过第一身份信息认证第一节点的身份的方法:第二节点确定第一共享密钥,根据第一共享密钥和PSK生成校验信息,若校验信息与第一身份认证信息相同,则说明第一节点与第二节点之间的第一共享密钥和PSK是相同的,从而可以认证第一节点的身份,避免节点与攻击者进行通信,提高节点的安全性。
在又一种可能的实现方式中,所述处理器1202,具体用于:
根据第一对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数。
可以看出,第一节点可以通过对应关系的形式来存储PSK与第二节点的对应关系。因此,上述通信装置120可以根据第一关系得到第一节点与第二节点之间的PSK。
在一种可能的设计中,PSK是根据第一口令、第一共享密钥、第一随机数和第二随机数来确定的。在第一节点与第二节点第一次进行关联时或者第一节点中没有获取到第一对应关系的情况下,第一节点中不存在与所述第二节点的身份标识对应的PSK,因此上述通信装置120可以确定新的PSK。
在又一种可能的实现方式中,所述处理器1202,具体用于:
根据所述第一共享密钥、所述第一随机数和所述第二随机数,确定第二共享密钥;
根据所述第一口令、所述第二共享密钥、所述第一随机数、所述第二随机数确定所述第一节点与所述第二节点之间的PSK。
在又一种可能的实现方式中,所述第一密文为根据所述安全参数的哈希值和第一密钥协商参数得到的;所述处理器1202,具体用于:
根据所述安全参数的哈希值解密所述第一密文,得到所述第一密钥协商参数。
在又一种可能的实现方式中,所述第一密文为所述安全参数的哈希值和第一密钥协商参数通过椭圆曲线点加运算得到的;所述处理器1202,具体用于:
根据所述安全参数的哈希值和所述第一密文,通过椭圆曲线点减运算,得到所述第一密钥协商参数。
在又一种可能的实现方式中,所述处理器1202,具体用于:
根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥对所述第一密文进行解密,得到所述第一密钥协商参数。
在又一种可能的实现方式中,所述处理器1202,具体用于:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、所述第一随机数和所述第二随机数,生成所述第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
在又一种可能的实现方式中,所述处理器1202,还用于:
根据所述安全参数加密第二密钥协商参数,得到第二密文;
通过通信接口1204向第二节点发送第二消息,所述第二消息包括所述第一身份认证信息和所述第二密文;所述第二密文用于所述第二节点确定所述第一共享密钥。
其中,第二密钥协商参数用于第二节点确定共享密钥。可以看出,上述通信装置120可以基于安全参数对第二密钥协商参数进行加密,只有破解了安全参数才能解密第二密钥协商参数生成共享密钥,避免了攻击者伪装第二节点接入上述装置120,保证了密钥协商过程的安全性。
在又一种可能的实现方式中,所述处理器1202,还用于:
通过通信接口1204接收来自所述第二节点的第三消息,所述第三消息包括第二身份认证信息;
根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第二身份认证信息,确定所述第二节点的身份认证通过。
上述说明了一种认证第二节点的身份的方法,第二身份认证信息为第二节点根据PSK和第一共享密钥生成的,因此上述通信装置120根据PSK、第一共享密钥和第二身份认证信息可以确定第二节点中的第一共享密钥和PSK是否与第一节点侧相同,从而可以认证第二节点的身份。
在又一种可能的实现方式中,前述第一消息也可以称为接入请求消息(或者关联请求消息)。进一步的,第二消息也可以称为安全上下文请求消息(或者身份认证请求消息)。第三消息也可以称为安全上下文响应消息(或者身份认证响应消息)。
在又一种可能的实施方式中,所述处理器1202,还用于:
通过通信接口向第二节点发送第四消息,所述第四消息用于指示接入成功,或者用于指示关联完成。进一步的,该第四消息可以称为关联建立消息(或者接入关联完成消息)、关联完成消息等。
具体实现还可以参考图3或者图5所示实施例中的详细描述,此处不再赘述。
在一种设计中,该通信装置120可以为图5、图7或者图8所示实施例中的第二节点。该装置120中的处理器1202用于读取所述存储器1201中存储的计算机程序,用于执行以下操作:
通过通信接口1204向第一节点发送第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;
通过通信接口1204接收来自所述第一节点的第二消息,所述第二消息包括第二密文;所述第二密文为根据所述安全参数加密第二密钥协商参数得到的;
根据所述安全参数解密所述第二密文,得到所述第二密钥协商参数;
根据所述第二密钥协商参数和密钥协商算法确定第一共享密钥;
根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息,所述第二身份认证信息用于认证所述第二节点的身份。
在本申请实施例中,上述通信装置120将所述第一密钥协商参数通过所述安全参数(该安全参数可以是PSK或者第一口令)进行加密再发送给第一节点,相应的,第一节点也通过安全参数加密所述第二密钥协商参数。通信双方可以通过安全参数对密文进行解密,基于密钥协商参数生成共享密钥。由于没有获取安全参数则不能生成共享密钥,第二节点无法接入第一节点,因此可以避免第二节点接入不可信的第一节点,提高第二节点的安全性。
在一种可能的实施方式中,所述处理器1202,还用于:
获取所述第一节点与所述第二节点之间的PSK。
在第六方面的又一种可能的实施方式中,所述处理器,具体用于:
根据第二对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数;其中,所述第一消息中包含所述第一随机数。
可以看出,可以通过对应关系的形式来存储PSK与第一节点的对应关系。因此,上述通信装置120可以根据对应关系得到第一节点与第二节点之间的PSK。
在一种可能的设计中,PSK是根据第一口令、第一共享密钥、第一随机数和第二随机数来确定的。在第一节点与第二节点第一次进行关联时或者第一节点中没有获取到第一对应关系的情况下,第二节点中不存在与所述第一节点对应的PSK,因此上述通信装置120可以通过上述方式确定新的PSK。
在又一种可能的实施方式中,所述处理器1202,具体用于:
根据所述第一共享密钥、所述第一随机数和所述第二随机数,确定第二共享密钥;
根据所述第一口令、所述第二共享密钥、所述第一随机数、所述第二随机数确定所述第一节点与所述第二节点之间的PSK。
在又一种可能的实施方式中,所述处理器1202,还用于:
根据所述安全参数加密所述第一密钥协商参数,得到所述第一密文。
在又一种可能的实施方式中,所述处理器1202,具体用于:
根据所述安全参数的哈希值加密所述第一密钥协商参数,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一密钥协商参数,通过椭圆曲线点加运算,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥加密所述第一密钥协商参数,得到所述第一密文。
在又一种可能的实施方式中,所述处理器1202,具体用于:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、第一随机数和第二随机数,生成所述第二身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
在又一种可能的实施方式中,所述第二消息中还包括第一身份认证信息;所述处理器1202,还用于:
根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第一身份认证信息,确定所述第一节点的身份认证通过。
上述说明了一种认证第一节点的身份的方法,第一身份认证信息为第一节点根据PSK和第一共享密钥生成的,因此根据PSK、第一共享密钥和第一身份认证信息可以确定第一节点中的第一共享密钥和PSK是否与第二节点侧相同,从而可以认证第一节点的身份。需要说明的是,认证第一节点的身份的时机可以是周期的,也可以是非周期的,或者还可以在执行某些重要操作之前,认证第一节点的身份,取决于具体实施时候的实现。
在又一种可能的实现方式中,前述第一消息也可以称为接入请求消息(或者关联请求消息)。进一步的,第二消息也可以称为安全上下文请求消息(或者身份认证请求消息)。第三消息也可以称为安全上下文响应消息(或者身份认证响应消息)。
在又一种可能的实施方式中,所述处理器1202,还用于:
通过通信接口1204接收来自第一节点的第四消息,所述第四消息用于指示接入成功,或者用于指示关联完成。进一步的,该第四消息可以称为关联建立消息(或者接入关联完成消息)、关联完成消息等。
具体实现还可以参考图5、图7或者图8所示实施例中的详细描述,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,实现图5、图7或者图8所示的实施例所述的方法。
本申请实施例还提供了一种芯片系统,所述芯片系统包括至少一个处理器和通信接口,所述通信接口用于发送和/或接收数据,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,实现图5、图7或者图8所示的实施例所述的方法。
进一步,所述至少一个处理器可以包含CPU、MPU、MCU或者协处理器中的至少一个。
本申请实施例还提供一种终端,所述终端可以为智能座舱产品、或者车辆等,所述终端包括第一节点和/或第二节点,其中所述第一节点(例如,摄像头、屏幕、麦克风、音响、雷达、电子钥匙、无钥匙进入、启动系统控制器以及用户设备UE等模块中的一个或者多个)为图5、图7或者图8所示实施例中的第一节点,所述第二节点(例如,基站、汽车座舱域控制器CDC等)为图5、图7或者图8所示实施例中的第二节点。
进一步可选的,所述终端可以为无人机、机器人、智能家居场景中的设备、智能制造场景中的设备等。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在一个或多个处理器上运行时,可以实现如图5、图7或者图8所示的实施例所描述的通信方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。
当使用软件实现时,可以全部或部分地以计算机指令产品的形式实现。
在计算机上加载和执行该计算机指令时,可以全部或部分地实现本申请实施例所描述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid statedisk,SSD))等。
本申请方法实施例中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请装置实施例中的模块可以根据实际需要进行合并、划分和删减。

Claims (43)

1.一种安全接入方法,其特征在于,所述方法包括:
接收来自第二节点的第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;
根据所述安全参数解密所述第一密文,得到所述第一密钥协商参数;
根据所述第一密钥协商参数和密钥协商算法确定第一共享密钥;
获取所述第一节点与所述第二节点之间的PSK;
根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
2.根据权利要求1中所述的方法,其特征在于,所述获取所述第一节点与所述第二节点之间的PSK,包括:
根据第一对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数。
3.根据权利要求1或2中所述的方法,其特征在于,所述第一密文为根据所述安全参数的哈希值和第一密钥协商参数得到的;所述根据所述第一口令解密所述第一密文,得到所述第一密钥协商参数,包括:
根据所述安全参数的哈希值解密所述第一密文,得到所述第一密钥协商参数。
4.根据权利要求3中所述的方法,其特征在于,所述第一密文为所述安全参数的哈希值和第一密钥协商参数通过椭圆曲线点加运算得到的;所述根据所述第一口令解密所述第一密文,得到所述第一密钥协商参数,包括:
根据所述安全参数的哈希值和所述第一密文,通过椭圆曲线点减运算,得到所述第一密钥协商参数。
5.根据权利要求3中所述的方法,其特征在于,所述根据所述安全参数解密所述第一密文,得到所述第一密钥协商参数,包括:
根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥对所述第一密文进行解密,得到所述第一密钥协商参数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第一身份认证信息,包括:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、所述第一随机数和所述第二随机数,生成所述第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
7.根据权利要求1-6任一项中所述的方法,其特征在于,所述方法还包括:
根据所述安全参数加密第二密钥协商参数,得到第二密文;
向第二节点发送第二消息,所述第二消息包括所述第一身份认证信息和所述第二密文;所述第二密文用于所述第二节点确定所述第一共享密钥。
8.根据权利要求7中所述的方法,其特征在于,所述根据所述安全参数加密第二密钥协商参数,得到第二密文,包括:
根据所述安全参数的哈希值加密所述第二密钥协商参数,得到所述第二密文;
或者,根据所述安全参数的哈希值和所述第二密钥协商参数,通过椭圆曲线点加运算,得到所述第二密文;
或者,根据所述安全参数的哈希值和所述第二随机数,确定第二中间密钥;
根据所述第二中间密钥加密所述第二密钥协商参数,得到所述第二密文。
9.根据权利要求7或8中所述的方法,其特征在于,所述方法还包括:
接收来自所述第二节点的第三消息,所述第三消息包括第二身份认证信息;
根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第二身份认证信息,确定所述第二节点的身份认证通过。
10.一种安全接入方法,其特征在于,所述方法包括:
向第一节点发送第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;
接收来自所述第一节点的第二消息,所述第二消息包括第二密文;所述第二密文为根据所述安全参数加密第二密钥协商参数得到的;
根据所述安全参数解密所述第二密文,得到所述第二密钥协商参数;
根据所述第二密钥协商参数和密钥协商算法确定第一共享密钥;
根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息,所述第二身份认证信息用于认证所述第二节点的身份。
11.根据权利要求10中所述的方法,其特征在于,所述根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息之前,还包括:
获取所述第一节点与所述第二节点之间的PSK。
12.根据权利要求10或11中所述的方法,其特征在于,所述获取所述第一节点与所述第二节点之间的PSK,包括:
根据第二对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数;其中,所述第一消息中包含所述第一随机数。
13.根据权利要求10-12任一项所述的方法,其特征在于,在发送第一消息之前,所述方法还包括:
根据所述安全参数加密所述第一密钥协商参数,得到所述第一密文。
14.根据权利要求13中所述的方法,其特征在于,所述根据所述安全参数加密所述第一密钥协商参数,得到所述第一密文,包括:
根据所述安全参数的哈希值加密所述第一密钥协商参数,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一密钥协商参数,通过椭圆曲线点加运算,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥加密所述第一密钥协商参数,得到所述第一密文。
15.根据权利要求10-14任一项中所述的方法,其特征在于,所述第二密文为根据所述安全参数的哈希值和第二密钥协商参数得到的;所述根据所述安全参数解密所述第二密文,得到所述第二密钥协商参数,包括:
根据所述安全参数的哈希值解密所述第二密文,得到所述第二密钥协商参数。
16.根据权利要求15中所述的方法,其特征在于,所述第一密文为所述安全参数的哈希值和第一密钥协商参数通过椭圆曲线点加运算得到的;根据所述安全参数的哈希值解密所述第二密文,得到所述第二密钥协商参数,包括:
根据所述安全参数的哈希值和所述第二密文,通过椭圆曲线点减运算,得到所述第二密钥协商参数。
17.根据权利要求15中所述的方法,其特征在于,所述根据所述安全参数解密所述第二密文,得到所述第二密钥协商参数,包括:
根据所述安全参数的哈希值和所述第二随机数,确定第二中间密钥;
根据所述第二中间密钥对所述第二密文进行解密,得到所述第二密钥协商参数。
18.根据权利要求10-17任一项所述的方法,其特征在于,所述根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息,还包括:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、第一随机数和第二随机数,生成所述第二身份认证信息,所述第二身份认证信息用于认证所述第二节点的身份。
19.根据权利要求18中所述的方法,其特征在于,所述第二消息中还包括第一身份认证信息;所述根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息之前,所述方法还包括:
根据所述第一身份认证信息、所述第一共享密钥和所述PSK确定所述第一节点的身份认证通过。
20.一种通信装置,其特征在于,包括:
接收单元,用于接收来自第二节点的第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;
处理单元,用于根据所述安全参数解密所述第一密文,得到所述第一密钥协商参数;
所述处理单元,还用于根据所述第一密钥协商参数和密钥协商算法确定第一共享密钥;
所述处理单元,还用于获取所述第一节点与所述第二节点之间的PSK;
所述处理单元,还用于根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
21.根据权利要求20中所述的装置,其特征在于,所述处理单元,具体用于:
根据第一对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数。
22.根据权利要求20或21中所述的装置,其特征在于,所述第一密文为根据所述安全参数的哈希值和第一密钥协商参数得到的;所述处理单元,具体用于:
根据所述安全参数的哈希值解密所述第一密文,得到所述第一密钥协商参数。
23.根据权利要求22中所述的装置,其特征在于,所述第一密文为所述安全参数的哈希值和第一密钥协商参数通过椭圆曲线点加运算得到的;所述处理单元,具体用于:
根据所述安全参数的哈希值和所述第一密文,通过椭圆曲线点减运算,得到所述第一密钥协商参数。
24.根据权利要求22中所述的装置,其特征在于,所述处理单元,具体用于:
根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥对所述第一密文进行解密,得到所述第一密钥协商参数。
25.根据权利要求20-24任一项所述的装置,其特征在于,所述处理单元,具体用于:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、所述第一随机数和所述第二随机数,生成所述第一身份认证信息,所述第一身份认证信息用于认证所述第一节点的身份。
26.根据权利要求20-25任一项中所述的装置,其特征在于,所述处理单元,还用于:
根据所述安全参数加密第二密钥协商参数,得到第二密文;
向第二节点发送第二消息,所述第二消息包括所述第一身份认证信息和所述第二密文;所述第二密文用于所述第二节点确定所述第一共享密钥。
27.根据权利要求26中所述的装置,其特征在于,所述处理单元,具体用于:
根据所述安全参数的哈希值加密所述第二密钥协商参数,得到所述第二密文;
或者,根据所述安全参数的哈希值和所述第二密钥协商参数,通过椭圆曲线点加运算,得到所述第二密文;
或者,根据所述安全参数的哈希值和所述第二随机数,确定第二中间密钥;
根据所述第二中间密钥加密所述第二密钥协商参数,得到所述第二密文。
28.根据权利要求26或27中所述的装置,其特征在于,所述处理单元,具体用于:
接收来自所述第二节点的第三消息,所述第三消息包括第二身份认证信息;
根据所述第一节点与所述第二节点之间的PSK、所述第一共享密钥以及所述第二身份认证信息,确定所述第二节点的身份认证通过。
29.一种通信装置,其特征在于,包括:
发送单元,用于向第一节点发送第一消息,所述第一消息包含第一密文,所述第一密文为根据安全参数和第一密钥协商参数得到的;所述安全参数为第一节点与第二节点之间的预共享密钥PSK或者为第一口令;所述第一口令为第一节点与所述第二节点之间的约定接入口令;
接收单元,用于接收来自所述第一节点的第二消息,所述第二消息包括第二密文;所述第二密文为根据所述安全参数加密第二密钥协商参数得到的;
处理单元,用于根据所述安全参数解密所述第二密文,得到所述第二密钥协商参数;
所述处理单元,还用于根据所述第二密钥协商参数和密钥协商算法确定第一共享密钥;
所述处理单元,还用于根据所述第一共享密钥和所述第一节点与所述第二节点之间的PSK得到第二身份认证信息,所述第二身份认证信息用于认证所述第二节点的身份。
30.根据权利要求29中所述的装置,其特征在于,所述处理单元,还用于:
获取所述第一节点与所述第二节点之间的PSK。
31.根据权利要求29或30中所述的装置,其特征在于,所述处理单元,具体用于:
根据第二对应关系得到所述第一节点与所述第二节点之间的PSK;
或者,根据所述第一口令、所述第一共享密钥、第一随机数和第二随机数确定所述第一节点与所述第二节点之间的PSK;其中,所述第一消息还包含所述第一随机数;其中,所述第一消息中包含所述第一随机数。
32.根据权利要求29-31任一项所述的装置,其特征在于,所述处理单元,还用于:
根据所述安全参数加密所述第一密钥协商参数,得到所述第一密文。
33.根据权利要求32中所述的装置,其特征在于,所述处理单元,具体用于:
根据所述安全参数的哈希值加密所述第一密钥协商参数,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一密钥协商参数,通过椭圆曲线点加运算,得到所述第一密文;
或者,根据所述安全参数的哈希值和所述第一随机数,确定第一中间密钥;
根据所述第一中间密钥加密所述第一密钥协商参数,得到所述第一密文。
34.根据权利要求29-33任一项中所述的装置,其特征在于,所述第二密文为根据所述安全参数的哈希值和第二密钥协商参数得到的;所述处理单元,具体用于:
根据所述安全参数的哈希值解密所述第二密文,得到所述第二密钥协商参数。
35.根据权利要求34所述的装置,其特征在于,所述第一密文为所述安全参数的哈希值和第一密钥协商参数通过椭圆曲线点加运算得到的;所述处理单元,具体用于:
根据所述安全参数的哈希值和所述第二密文,通过椭圆曲线点减运算,得到所述第二密钥协商参数。
36.根据权利要求34所述的装置,其特征在于,所述处理单元,具体用于:
根据所述安全参数的哈希值和所述第二随机数,确定第二中间密钥;
根据所述第二中间密钥对所述第二密文进行解密,得到所述第二密钥协商参数。
37.根据权利要求29-36任一项所述的装置,其特征在于,所述处理单元,还用于:
根据所述第一共享密钥、所述PSK、所述第一随机数和第二随机数推演得到第一密钥;
根据所述第一密钥、第一随机数和第二随机数,生成所述第二身份认证信息,所述第二身份认证信息用于认证所述第二节点的身份。
38.根据权利要求37中所述的装置,其特征在于,所述第二消息中还包括第一身份认证信息;所述处理单元,还用于:
根据所述第一身份认证信息、所述第一共享密钥和所述PSK确定所述第一节点的身份认证通过。
39.一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器和通信接口,所述通信接口用于发送和/或接收数据,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,使得所述芯片系统实现如权利要求1-9中任一项所述的方法。
40.一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器和通信接口,所述通信接口用于发送和/或接收数据,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,使得所述芯片系统实现如权利要求10-19中任一项所述的方法。
41.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-9中任一项所述的方法。
42.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求10-19中任一项所述的方法。
43.一种安全接入系统,其特征在于,包括:
第一节点,所述第一节点包含如权利要求20-28中任一项所述的通信装置;
第二节点,所述第二节点包含如权利要求29-38中任一项所述的通信装置。
CN202080004818.4A 2020-12-24 2020-12-24 一种安全接入方法及装置 Active CN112740733B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/139154 WO2022133949A1 (zh) 2020-12-24 2020-12-24 一种安全接入方法及装置

Publications (2)

Publication Number Publication Date
CN112740733A true CN112740733A (zh) 2021-04-30
CN112740733B CN112740733B (zh) 2022-08-26

Family

ID=75609498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080004818.4A Active CN112740733B (zh) 2020-12-24 2020-12-24 一种安全接入方法及装置

Country Status (4)

Country Link
EP (1) EP4254861A4 (zh)
JP (1) JP2024500489A (zh)
CN (1) CN112740733B (zh)
WO (1) WO2022133949A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023279283A1 (zh) * 2021-07-07 2023-01-12 华为技术有限公司 建立车辆安全通信的方法、车辆、终端及系统
WO2023011277A1 (zh) * 2021-08-02 2023-02-09 华为技术有限公司 用于设备连接的方法、电子设备和系统
WO2023050373A1 (zh) * 2021-09-30 2023-04-06 华为技术有限公司 一种通信方法、装置及系统
CN116761167A (zh) * 2023-08-21 2023-09-15 北京领创医谷科技发展有限责任公司 一种数据加密传输方法、系统、电子设备及存储介质
WO2023230929A1 (zh) * 2022-05-31 2023-12-07 华为技术有限公司 通信方法及相关装置
WO2024036805A1 (zh) * 2022-08-15 2024-02-22 华为技术有限公司 通信方法、装置和系统
WO2024178591A1 (zh) * 2023-02-28 2024-09-06 华为技术有限公司 认证方法、装置和系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992331A (zh) * 2021-11-15 2022-01-28 苏州挚途科技有限公司 车载以太网数据传输方法、装置及系统
CN115599596B (zh) * 2022-09-16 2023-07-18 花瓣云科技有限公司 数据处理方法、电子设备、系统及存储介质
CN115361230B (zh) * 2022-10-18 2023-03-24 江苏智能无人装备产业创新中心有限公司 一种车载以太网的车内安全信息通信方法、系统及介质
CN117041961B (zh) * 2023-09-05 2024-06-11 北京电子科技学院 基于sm2无证书的车联网终端认证方法及系统
CN117318940B (zh) * 2023-11-27 2024-02-23 山东师范大学 基于认证秘密分享的多方协同签名方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313455A1 (en) * 2007-06-12 2008-12-18 Nokia Siemens Networks Oy Key support for password-based authentication mechanisms
CN102035646A (zh) * 2010-12-24 2011-04-27 北京工业大学 一种增强保护的混合密钥协商方法
CN104935426A (zh) * 2014-03-21 2015-09-23 华为技术有限公司 密钥协商方法、用户设备和近距离通信控制网元
CN106209369A (zh) * 2016-07-01 2016-12-07 中国人民解放军国防科学技术大学 基于身份密码系统的单交互认证密钥协商协议
WO2017100217A1 (en) * 2015-12-11 2017-06-15 Amazon Technologies, Inc. Key exchange through partially trusted third party
CN107820239A (zh) * 2016-09-12 2018-03-20 中国移动通信有限公司研究院 信息处理方法及装置
CN108574569A (zh) * 2017-03-08 2018-09-25 中国移动通信有限公司研究院 一种基于量子密钥的认证方法及认证装置
CN110366176A (zh) * 2019-06-20 2019-10-22 北京邮电大学 一种车载自组织网络的密钥协商方法
CN110572800A (zh) * 2019-08-14 2019-12-13 中国人民解放军战略支援部队信息工程大学 面向机器到机器环境下设备身份认证方法及装置
CN111835752A (zh) * 2020-07-09 2020-10-27 国网山西省电力公司信息通信分公司 基于设备身份标识的轻量级认证方法及网关

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213144B2 (en) * 2001-08-08 2007-05-01 Nokia Corporation Efficient security association establishment negotiation technique
US8126145B1 (en) * 2005-05-04 2012-02-28 Marvell International Ltd. Enhanced association for access points

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313455A1 (en) * 2007-06-12 2008-12-18 Nokia Siemens Networks Oy Key support for password-based authentication mechanisms
CN102035646A (zh) * 2010-12-24 2011-04-27 北京工业大学 一种增强保护的混合密钥协商方法
CN104935426A (zh) * 2014-03-21 2015-09-23 华为技术有限公司 密钥协商方法、用户设备和近距离通信控制网元
WO2017100217A1 (en) * 2015-12-11 2017-06-15 Amazon Technologies, Inc. Key exchange through partially trusted third party
CN106209369A (zh) * 2016-07-01 2016-12-07 中国人民解放军国防科学技术大学 基于身份密码系统的单交互认证密钥协商协议
CN107820239A (zh) * 2016-09-12 2018-03-20 中国移动通信有限公司研究院 信息处理方法及装置
CN108574569A (zh) * 2017-03-08 2018-09-25 中国移动通信有限公司研究院 一种基于量子密钥的认证方法及认证装置
CN110366176A (zh) * 2019-06-20 2019-10-22 北京邮电大学 一种车载自组织网络的密钥协商方法
CN110572800A (zh) * 2019-08-14 2019-12-13 中国人民解放军战略支援部队信息工程大学 面向机器到机器环境下设备身份认证方法及装置
CN111835752A (zh) * 2020-07-09 2020-10-27 国网山西省电力公司信息通信分公司 基于设备身份标识的轻量级认证方法及网关

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023279283A1 (zh) * 2021-07-07 2023-01-12 华为技术有限公司 建立车辆安全通信的方法、车辆、终端及系统
EP4362521A4 (en) * 2021-07-07 2024-08-14 Huawei Tech Co Ltd METHOD FOR ESTABLISHING SECURE VEHICLE COMMUNICATIONS, AND VEHICLE, TERMINAL AND SYSTEM
WO2023011277A1 (zh) * 2021-08-02 2023-02-09 华为技术有限公司 用于设备连接的方法、电子设备和系统
WO2023050373A1 (zh) * 2021-09-30 2023-04-06 华为技术有限公司 一种通信方法、装置及系统
WO2023230929A1 (zh) * 2022-05-31 2023-12-07 华为技术有限公司 通信方法及相关装置
WO2024036805A1 (zh) * 2022-08-15 2024-02-22 华为技术有限公司 通信方法、装置和系统
WO2024178591A1 (zh) * 2023-02-28 2024-09-06 华为技术有限公司 认证方法、装置和系统
CN116761167A (zh) * 2023-08-21 2023-09-15 北京领创医谷科技发展有限责任公司 一种数据加密传输方法、系统、电子设备及存储介质
CN116761167B (zh) * 2023-08-21 2023-11-03 北京领创医谷科技发展有限责任公司 一种数据加密传输方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
JP2024500489A (ja) 2024-01-09
CN112740733B (zh) 2022-08-26
EP4254861A4 (en) 2024-01-17
WO2022133949A1 (zh) 2022-06-30
EP4254861A1 (en) 2023-10-04

Similar Documents

Publication Publication Date Title
CN112740733B (zh) 一种安全接入方法及装置
CN109309569B (zh) 基于sm2算法的协同签名的方法、装置及存储介质
KR100983050B1 (ko) 네트워크 엔티티들 사이에서 데이터 협정을 인증하기 위한시스템, 방법 및 컴퓨터 프로그램 제품
CN108347404B (zh) 一种身份认证方法及装置
CN113545115B (zh) 一种通信方法及装置
CN109905348B (zh) 端到端认证及密钥协商方法、装置及系统
CN112602290B (zh) 一种身份验证方法、装置和可读存储介质
CN115104282B (zh) 一种密钥更新方法及相关装置
CN109756324A (zh) 一种Mesh网络中的密钥协商方法、终端及网关
US20230208625A1 (en) Communication method and related apparatus
US20230164560A1 (en) Bluetooth node pairing method and related apparatus
CN113228722B (zh) 一种配对方法及装置
CN113455032A (zh) 通信方法及装置
CN108429717B (zh) 一种身份认证方法及装置
WO2023230929A1 (zh) 通信方法及相关装置
US20230099065A1 (en) Key obtaining method and related apparatus
Berchtold et al. Secure communication protocol for a low-bandwidth audio channel
Kim et al. Providing secure mobile device pairing based on visual confirmation
Ramachandran et al. Modified Auxiliary Channel Diffie Hellman Encrypted Key Exchange Authentication Protocol

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant