CN116437323A - 一种密钥获取方法及相关装置 - Google Patents

一种密钥获取方法及相关装置 Download PDF

Info

Publication number
CN116437323A
CN116437323A CN202310200972.4A CN202310200972A CN116437323A CN 116437323 A CN116437323 A CN 116437323A CN 202310200972 A CN202310200972 A CN 202310200972A CN 116437323 A CN116437323 A CN 116437323A
Authority
CN
China
Prior art keywords
node
psk
freshness parameter
parameter
identity
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.)
Pending
Application number
CN202310200972.4A
Other languages
English (en)
Inventor
王勇
陈璟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202310200972.4A priority Critical patent/CN116437323A/zh
Publication of CN116437323A publication Critical patent/CN116437323A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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]
    • 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/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0431Key distribution or pre-distribution; Key agreement
    • 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
    • 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]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/06Authentication
    • H04W12/062Pre-authentication
    • 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/10Integrity
    • H04W12/106Packet or message integrity

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)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本申请实施例提供一种安全认证方法及相关装置,应用于短距离通信领域,尤其涉及座舱域通信。所述方法包括:第一节点接收来自第二节点的第一关联请求消息,所述第一关联请求消息包括第一新鲜性参数;所述第一节点获取第一预共享密钥PSK;其中,所述第一PSK对应于所述第二节点的身份标识;所述第一PSK为根据来自所述第二节点的第二新鲜性参数和来自所述第一节点的第三新鲜性参数生成的PSK,所述第一PSK用于验证所述第二节点的身份。采用本申请实施例,能够提高通信的安全性。

Description

一种密钥获取方法及相关装置
本申请是分案申请,原申请的申请号是202080015291.5,原申请日是2020年5月29日,原申请的全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信技术领域,尤其涉及短距离通信技术领域,例如座舱域通信。具体涉及一种密钥获取方法及相关装置。
背景技术
在信息化飞速发展的今天,移动终端,不管是手机、平板还是其他可携带式智能终端,都是我们不可缺少的重要个人智能工具,我们在享受着信息化带来的便利的同时,也面临着安全漏洞和隐私泄露的威胁。以智能汽车为例,随着车辆通信的广泛应用,无线通信也给汽车带来了一系列的安全隐患。例如,通过现有的距离通信技术,黑客可能入侵车载信息系统,获取车辆信息,甚至远程操控汽车,对用户隐私以及车辆安全具有极高的威胁性,全球数百万台汽车受影响。
因此,为了保证通信的安全,在两个节点通信之前,通常会采用配对模式进行关联,现有的两个节点关联时,通常通过输入口令进行配对,或者直接使用开放的模式。例如,蓝牙耳机配对时,可以通过直接点击对方名称即可连接,再如,公共场合的开放式Wi-Fi常常无需输入密码,即使需要输入密码,由于Wi-Fi密码通常是容易泄漏的,往往也难以保证通信的安全,容易导致数据泄漏,使得用户隐私及安全受到威胁。对于通信系统来说,尤其对于车载通信系统,这种情况容易造成车辆受到不信任的连接,导致车辆与身份不可信的攻击者进行通信,危及驾乘人员的人身安全。
因此,如何提高节点通信的安全性是本领域技术人员正在研究的技术问题。
发明内容
本申请实施例公开了一种密钥获取方法及相关装置,能够提高通信的安全性。
第一方面,本申请实施例公开了一种密钥获取方法,该方法包括:
第一节点接收来自第二节点的第一关联请求消息,该第一关联请求消息包括第一新鲜性参数;
第一节点获取第一预共享密钥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,该第一口令为所述第一节点的接入密码。
一种可选的设计中,接入密码是其他节点请求接入第一节点时需要输入的密码,例如,连接Wi-Fi时需要输入该Wi-Fi的密码。可以看出,在第一口令为第一节点的接入密码的情况下,第二节点是通过输入的第一口令来连接第一节点的,因此通过第一口令来参与生成第一PSK,可以使得没有获取到第一口令的攻击者无法破解第一PSK,从而可以避免第一节点与没有获取到第一口令的攻击者进行关联。
在第一方面的又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数;第一节点根据第一新鲜性参数和第四新鲜性参数生成第一PSK,包括:
第一节点根据第一新鲜性参数、第四新鲜性参数、第一口令、第一密钥协商算法参数生成第一PSK。
其中,第一密钥协商算法参数是密钥协商过程中产生的算法参数,密钥协商是通信双方通过交互一部分参数,从而协商得到一个秘密值的过程。用于密钥协商的算法称为密钥协商算法,也可以称为密钥交换算法,例如,以迪菲赫尔曼DH算法为例,两个节点使用同一个数值较大的素数p和同一个随机数g(即素数p与随机数g为第一节与第二节点之间的公钥),各自产生的随机数a和b(即随机数a为第二节点的私钥,随机数b为第一节点的私钥),上述的素数p、随机数g、随机数a和b都可以看作是密钥协商算法的参数。第二节点将g的a次方模(mod)P产生的数值A(即A=ga mod p,A为第一密钥协商算法参数)发送给第一节点,第一节点再对接收的数值A做b次方运算生成秘密值K;第一节点将g的b次方mod P产生的数值B(即B=gb mod p,B为第二密钥协商算法参数)发送给第二节点,第二节点对接收的数值B做a次方运算生成秘密值K。由于K=Ab mod p=(ga mod p)b mod p=gab mod p=(gbmod p)a mod p=Ba mod p,因此第一节点与第二节点生成的秘密值K是相同的。在密钥协商算法过程中,攻击者仅仅通过第一节点和第二节点传输的算法参数,是不能推断出生成的秘密值的,例如,DH算法中,由于实际算法选择的素数p、随机数g、随机数a和随机数b的数值是非常大的,使得根据网络传输的素数p、随机数g、数值A和数值B难以推算出秘密值K,因此通过DH算法获取的秘密值具有安全性。
本申请实施例中,第二节点在第一关联请求消息中携带第一密钥协商算法参数,该第一密钥协商算法参数是基于第一密钥协商算法确定的。第一节点可以基于该第一密钥协商算法,根据第一密钥协商算法参数、第一新鲜性参数、第四新鲜性参数和所述第一口令和确定第一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对应第一节点的身份标识,用来验证第一节点的身份(例如,第一节点根据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,该第一口令为上述第一节点的接入密码。
一种可选的设计中,接入密码是其他节点请求接入第一节点时需要输入的密码,例如,连接Wi-Fi时需要输入该Wi-Fi的密码。可以看出,在第一口令为第一节点的接入密码的情况下,第二节点是通过输入的第一口令来连接第一节点的,因此通过第一口令来参与生成第二PSK,可以使得没有获取到第一口令的攻击者无法破解第二PSK,从而可以避免第二节点与没有获取到第一口令的攻击者进行关联。
在第二方面的又一种可能的实施方式中,该第一认证请求消息中还包括第二密钥协商算法参数;第二节点根据第一新鲜性参数和第四新鲜性参数生成第二PSK,包括:
第二节点根据第一新鲜性参数、第四新鲜性参数、第一口令以及上述第二密钥协商算法参数生成第二PSK。
其中,第二密钥协商算法参数是密钥协商过程中产生的算法参数,密钥协商是通信双方通过交互一部分参数,从而协商得到一个秘密值的过程。用于密钥协商的算法称为密钥协商算法,也可以称为密钥交换算法,例如,以迪菲赫尔曼DH算法为例,两个节点使用同一个数值较大的素数p和同一个随机数g(即素数p与随机数g为第一节与第二节点之间的公钥),各自产生的随机数a和b(即随机数a为第二节点的私钥,随机数b为第一节点的私钥)。第二节点将g的a次方模(mod)P产生的数值A(即A=ga mod p,A为第一密钥协商算法参数)发送给第一节点,第一节点再对接收的数值A做b次方运算生成秘密值K;第一节点将g的b次方mod P产生的数值B(即B=gb mod p,B为第二密钥协商算法参数)发送给第二节点,第二节点对接收的数值B做a次方运算生成秘密值K。由于K=Ab mod p=(ga mod p)bmod p=gab mod p=(gb mod p)a mod p=Ba mod p,因此第一节点与第二节点生成的秘密值K是相同的。在密钥协商过程中,攻击者仅仅通过第一节点和第二节点传输的算法参数,是不能推断出生成的秘密值的,例如,DH算法中,由于实际算法选择的素数p、随机数g、随机数a和随机数b的数值是非常大的,使得根据网络传输的素数p、随机数g、数值A和数值B难以推算出秘密值K,因此通过DH算法获取的秘密值具有安全性。
本申请实施例中,第一节点在第一认证请求消息中携带第二密钥协商算法参数,该第一密钥协商算法参数是基于第一密钥协商算法确定的。第二节点可以基于该第一密钥协商算法,根据第二密钥协商算法参数、第一新鲜性参数、第四新鲜性参数和所述第一口令和确定第二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可以来验证第二节点的身份认证信息;再如,第二节点通过PSK(或者根据PSK推演出来的密钥)对消息内容进行加密或者完整性保护,第一节点可以通过第一PSK获取来自第二节点的消息内容)。这样一来,若攻击者想要冒用第二节点的身份标识来关联上述装置时,由于生成第一PSK的第二新鲜性参数和第三新鲜性参数可以是在第一关联请求消息之前获取的,例如可以是上述装置与第二节点第一次关联时获取的,由于之前获取的数据通常是难以被破解的,从而使得攻击者无法伪造PSK,因此无法通过上述装置的身份验证,进而避免了上述装置与不可信的节点连接,提高了上述装置的通信安全性。
在第三方面的一种可能的实施方式中,上述装置还包括:
发送单元,用于向第二节点发送第一认证请求消息,该第一认证请求消息包括第一身份认证信息和第四新鲜性参数,其中,该第一身份认证信息为根据所述第一PSK和第一新鲜性参数生成的。
可以看出,由于PSK是上述装置与第二节点之间共享的秘密值,因此上述装置中的第一PSK通常与第二节点中的第二PSK具有相同的值。上述装置根据第一PSK和第一新鲜性参数来生成第一身份认证信息,使得第二节点可以根据第二PSK来验证上述装置的身份,若第二节点中存储的第二PSK不能验证通过,从而可以避免第二节点与不可信的节点进行关联,提高了第二节点通信的安全性。
在第三方面的又一种可能的实施方式中,该接收单元,还用于接收来自第二节点的第一认证响应消息,该第一认证响应消息中包括第二身份认证信息;
该发送单元,还用于若上述装置根据第一PSK和第四新鲜性参数(NONCEa)验证第二身份认证信息通过,则向第二节点发送第一关联响应消息。
可以看出,在上述装置与第二节点进行通信之前,上述装置与第二节点先通过身份认证信息来确定双方的身份。在身份认证通过后,才允许进行通信,从而避免了不可信的节点接入,提高了节点通信的安全性。
在第三方面的又一种可能的实施方式中,该处理单元,具体用于根据第一PSK与第二节点的身份标识的对应关系,获取第一PSK。
可以看出,上述装置中存在第一PSK与第二节点的身份标识的对应关系,可以说明该第二节点之前已经关联过上述装置或者上述装置中预先配置有第二节点的身份标识对应的第一PSK,因此上述装置可以根据对应关系获取所述第一PSK。
在第三方面的又一种可能的实施方式中,该处理单元,具体用于:
通过第一对应关系集合,根据第一PSK与第二节点的身份标识的对应关系,获取第一PSK。
可以看出,上述装置可以通过对应关系集合的形式来存储第一PSK与第二节点的身份标识的对应关系。
在第三方面的又一种可能的实施方式中,该处理单元,具体用于根据第一新鲜性参数和第四新鲜性参数生成第一PSK;其中,该第一新鲜性参数为上述第二新鲜性参数,该第四新鲜性参数为上述第三新鲜性参数。
可以看出,第一PSK是根据第一关联请求消息中的第一新鲜性参数和来自上述装置的第四新鲜性参数来生成的。通常来说,在上述装置与第二节点第一次进行关联时或者上述装置删除了对应关系的情况下,上述装置中不存在与所述第二节点的身份标识对应的PSK,因此上述装置可以根据第一新鲜性参数和第四新鲜性参数生成新的第一PSK,用于验证第二节点的身份。
在第三方面的又一种可能的实施方式中,该处理单元,还用于获取第一确认指示信息,该第一确认指示信息表征允许第二节点与上述装置关联。
可以看出,在生成新的第一PSK时,需要获得用户的确认。这样一来,若攻击者使用自己的身份标识连接上述装置时,由于上述装置中没有攻击者的身份标识对应的PSK,因此可以由用户去验证新节点的身份,在获取第一确认指示信息后,才生成第一PSK,从而避免了上述装置与不可信的节点关联,保证了上述装置通信的安全性。
在第三方面的又一种可能的实施方式中,该处理单元,具体用于根据第一新鲜性参数、第四新鲜性参数和第一口令生成第一PSK,该第一口令为所述装置的接入密码。
其中,接入密码是其他节点请求接入上述装置时需要输入的密码,例如,连接Wi-Fi时需要输入该Wi-Fi的密码。可以看出,在第一口令为上述装置的接入密码的情况下,第二节点是通过输入的第一口令来连接上述装置的,因此通过第一口令来参与生成第一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推演出来的密钥)对消息内容进行加密或者完整性保护,第二节点可以通过第一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,该第一口令为上述第一节点的接入密码。
一种可选的设计中,接入密码是其他节点请求接入第一节点时需要输入的密码,例如,连接Wi-Fi时需要输入该Wi-Fi的密码。可以看出,在第一口令为第一节点的接入密码的情况下,上述装置是通过输入的第一口令来连接第一节点的,因此通过第一口令来参与生成第二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推演出来的密钥)对消息内容进行加密或者完整性保护,第一节点可以通过第一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,该第一口令为上述装置的接入密码。
其中,接入密码是其他节点请求接入上述装置时需要输入的密码,例如,连接Wi-Fi时需要输入该Wi-Fi的密码。可以看出,在第一口令为上述装置的接入密码的情况下,第二节点是通过输入的第一口令来连接上述装置的,因此通过第一口令来参与生成第一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推演出来的密钥)对消息内容进行加密或者完整性保护,第二节点可以通过第一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,该第一口令为所述装置的接入密码。
一种可选的设计中,接入密码是其他节点请求接入第一节点时需要输入的密码,例如,连接Wi-Fi时需要输入该Wi-Fi的密码。可以看出,在第一口令为第一节点的接入密码的情况下,上述装置是通过输入的第一口令来连接第一节点的,因此通过第一口令来参与生成第二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是在第一节点中预先配置的;
若第二节点更换为第三节点,第一节点可以通过第二方面或者第二方面的任意一种可能的实施方法请求关联第三节点。
例如,在车辆的CDC为第一节点,车辆的麦克风为第二节点的情况下,若更换车辆的旧麦克风为新麦克风,由于旧麦克风与CDC的之间的PSK是预先配置的,且新麦克风不能接收用户的操作指示,因此可以通过CDC向新麦克风发送第一关联请求消息,获取新的PSK。
在第七方面的又一种可能的实施方式中,第一节点中存储有第二节点的身份标识与第一PSK的对应关系,且该第一PSK是在第一节点中预先配置的;若第一节点更换为第四节点,第四节点可以获取第一节点中的对应关系,从而获取第二节点的身份标识对应的第二PSK。
例如,在车辆的CDC为第一节点的情况下,若车辆更换CDC时,可以在新的CDC上配置旧的CDC已保存的第二节点的身份标识与第一PSK的对应关系,配置的方式可以是通过计算机存储介质从旧的CDC中拷贝到新的CDC上,也可以是新的CDC接收来自旧的CDC的对应关系。
第八方面,本申请实施例公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行第一方面、第一方面的任意一种可能的实施方式、第二方面或者第二方面的任意一种可能的实施方式所描述的方法。
第九方面,本申请实施例公开了一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,该接口电路用于为上述至少一个处理器提供信息输入/输出,该存储器中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行第一方面、第一方面的任意一种可能的实施方式、第二方面或者第二方面的任意一种可能的实施方式所描述的方法。
第十方面,本申请实施例公开了一种车辆,所述车辆包括第一节点(例如,汽车座舱域控制器CDC),其中所述第一节点为上述第三方面或第三方面的任意一种可能的实施方式、或者上述第五方面或上述第五方面的任意一种可能的实施方式所述的装置。进一步的,所述车辆还包括第二节点(例如,摄像头、屏幕、麦克风、音响、雷达、电子钥匙、无钥匙进入或启动系统控制器等模块中的至少一个),所述第二节点为上述第四方面或第四方面的任意一种可能的实施方式、或者上述第六方面或上述第六方面的任意一种可能的实施方式所述的装置。
附图说明
以下对本申请实施例用到的附图进行介绍。
图1是本申请实施例提供的一种DH算法的原理示意图;
图2是本申请实施例提供的一种密码派生算法的示意图;
图3是本申请实施例提供的一种通信系统的架构示意图;
图4是本申请实施例提供的一种密钥获取方法的使用场景示意图;
图5是本申请实施例提供的一种密钥获取方法的流程示意图;
图6是本申请实施例提供的一种获取第一PSK的方法示意图;
图7是本申请实施例提供的又一种获取第一PSK的方法示意图;
图8是本申请实施例提供的又一种密钥获取方法的流程示意图;
图9是本申请实施例提供的又一种密钥获取方法的流程示意图;
图10是本申请实施例提供的又一种密钥获取方法的流程示意图;
图11是本申请实施例提供的又一种密钥获取方法的流程示意图;
图12是本申请实施例提供的又一种密钥获取方法的流程示意图;
图13是本申请实施例提供的又一种密钥获取方法的流程示意图;
图14是本申请实施例提供的一种装置的结构示意图;
图15是本申请实施例提供的又一种装置的结构示意图;
图16是本申请实施例提供的又一种装置的结构示意图;
图17是本申请实施例提供的又一种装置的结构示意图;
图18是本申请实施例提供的一种密钥获取系统的架构示意图;
图19是本申请实施例提供的又一种密钥获取系统的架构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
下面先对本申请涉及到的相关技术和专业术语进行简单的介绍以方便理解。
一、节点(node)
节点是具有数据收发能力的电子设备。例如,节点可以为汽车座舱(CockpitDomain)设备,或者汽车座舱设备中的一个模块(座舱域控制器(cockpit domaincontroller,CDC)、摄像头、屏幕、麦克风、音响、电子钥匙、无钥匙进入或启动系统控制器等模块中的一个或者多个)。在具体实施过程中,节点可以是数据中转设备,例如路由器、中继器、桥接器或交换机,也可以是一个终端设备,例如各种类型的用户设备(user equipment,UE)、手机(mobile phone)、平板电脑(pad)、台式电脑、耳机、音响等,还可以包括机器智能设备如无人驾驶(self-driving)设备、运输安全(transportation safety)设备、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、机器类型通信(machine type communication,MTC)设备、工业控制(industrial control)设备、远程医疗(remote medical)设备、智能电网(smart grid)设备、智慧城市(smart city)设备,还可以包括可穿戴设备(如智能手表,智能手环,计步器等)等等。在某些技术场景中,具备相类似数据收发能力的设备的名称也可能不称为节点,但是为了方便描述,本申请实施例中将具有数据收发能力的电子设备统称为节点。
二、密钥协商
密钥协商是通信双方通过交互一部分参数,从而协商得到密钥的过程。用于密钥协商的密码算法称为密钥协商算法,也可以称为密钥交换算法。常用的密钥协商算法有迪菲赫尔曼(Diffie-Hellman,DH)算法、基于椭圆曲线密码(elliptic curvecryptosystems,ECC)的迪菲赫尔曼(ECDH)算法、奥克利(Oakley)算法、国密算法(如SM1、SM2、SM3和SM4)等。
其中,以DH算法为例,两个节点使用同一个数值较大的素数p和随机数g,各自产生的随机数a和b。第二节点将g的a次方mod P产生的数值发送给第一节点,第一节点将g的b次方mod P产生的数值发送给第二节点,第二节点再对接收的结果做a次方运算,第一节点对接收的结果做a次方运算,最终密码形成,密钥交换完成,其中mod表示模运算。
参见图1,图1是本申请实施例提供的一种DH算法的原理示意图,DH算法交换密钥的步骤如下:
步骤1:第二节点确定素数p,随机数g和随机数a。
步骤2:第二节点生成第一计算值A,其中A=ga mod p。
步骤3:第二节点向第一节点发送素数p,随机数g和第一计算值A。
步骤4:第一节点确定随机数b。
步骤5:第一节点计算得到第二计算值B,其中B=gb mod p。
步骤6:第一节点确定密钥s,其中s=Ab mod p。
步骤7:第一节点向第二节点发送第二计算值B。
步骤8:第二节点确定密钥s,其中s=Ba mod p。
由于s=Ab mod p=(ga mod p)b mod p=gab mod p=(gb mod p)a mod p=Ba modp,因此第一节点和第二节点计算出的密钥s是相同的。而由于密钥s没有在网络上传输,且由于实际算法选择的素数p、随机数g、随机数a和随机数b的数值是非常大的,使得根据网络传输的素数p、随机数g、第一计算值A和第二计算值B难以推算出密钥s,因此通过DH算法获取的密钥具有安全性。
三、密钥派生
密钥派生是从一个秘密值中派生出一个或多个密钥,而用于派生密钥的算法称为密钥派生算法(key derivation function,KDF),也成为密钥派生函数。例如,通过秘密值Key派生的新密钥DK可以表示为:DK=KDF(Key,fresh)。其中,fresh是新鲜性参数(freshparameter),用于派生新密钥。
常用的密钥派生算法有基于密码的密钥派生函数(password-based keyderivation function,PBKDF)、斯克里普特(scrypt)算法等,其中PBKDF算法又包括第一代PBKDF1和第二代PBKDF2。可选的,一些KDF算法在派生密钥过程中,使用哈希算法对输入的秘密值进行哈希变化,因此KDF函数还可以接收算法标识作为输入,用于指示使用何种哈希算法。
以PBKDF2为例,PBKDF2算法通过旧秘密值Key派生的新秘密值DK可以表示为:DK=PBKDF2(PRF,Key,salt,c,dk_len),其中参数PRF指示使用何种哈希算法的标识;salt是随机生成的盐,可以看作是新鲜性参数;c是迭代次数,可以缺省;dk_len是生成的新秘密值DK的长度,也可以称为块大小,可以缺省。参见图2,图2是本申请实施例提供的一个密钥派生算法的示意图,根据旧的秘密值201和新鲜性参数202,通过密钥派生函数203可以得到新的秘密值204。
四、新鲜性参数
新鲜性参数是用于参与生成密钥的参数,也可以称为新鲜度或者新鲜参数,可以包括随机数值(number once,NONCE)、计数值(counter)、序列号(number)等等中的至少一个,其中,NONCE是一个只被使用一次的(或者说非重复的)随机数值。不同时刻生成的新鲜性参数通常不同,即新鲜性参数的具体取值,在每生成一次新鲜性参数时会发生变化,从而使得这一次生成密钥所使用的新鲜性参数与上一次生成密钥时所使用的新鲜性参数不同的,可以提高生成的密钥的安全性。
例如,新鲜性参数可以是节点通过随机数发生器(random number generator)获取的随机数。
再如,新鲜性参数包括分组数据汇聚协议计数值(packet data convergenceprotocol count,PDCP COUNT),而PDCP COUNT又可以包括上行PDCP COUNT和下行PDCPCOUNT,第二节点每发送一个上行PDCP数据包则上行PDCP COUNT加1,第一节点每发送一个下行PDCP数据包则下行PDCP COUNT加1。由于PDCP COUNT是一直在变化的,使得每次通过PDCP COUNT生成的密钥与上次通过PDCP COUNT生成的密钥是不同的。
下面对本申请实施例的系统架构和业务场景进行描述。需要说明的是,本申请描述的系统架构及业务场景是为了更加清楚的说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
请参见图3,图3是本申请实施例提供的一种通信系统的架构示意图,包括第一节点301和第二节点302。第一节点301可以被第二节点302请求接入,接入成功后,第一节点301可以通过数据链路与第二节点302进行通信。可选的,第一节点301与第二节点302进行通信的数据链路可以包括各种类型的连接介质,例如无线链路,具体可以为Wi-Fi、蓝牙、紫蜂(zigbee)以及其他无线链路(如通用无线短距传输技术)等,再如有线链路,如光纤链路等。
可选的,第一节点301可以是通信的发起方,可以称为主节点或者接入点(accesspoint,AP),相应的,第二节点302是通信的接收方,可以称为从节点。
其中,第一节点301和第二节点302可以是相同类型的设备,也可以是不同类型的设备。例如,请参见图4,图4是本申请实施例提供的一种密钥获取方法的使用场景示意图。座舱域控制器(cockpit domain controller,CDC)401是智能座舱设备中的控制中心,可以看作为第一节点301。智能手机402是具有数据收发能力的设备,可以看作为第二节点302。其中,CDC401可以通过蓝牙接入,而智能手机402支持蓝牙功能,因此请求接入该CDC401。由于现有的蓝牙技术通常采用配对或者直接工作(just work)模式进行连接,在直接工作模式下,直接点击对端标识即可通过蓝牙连接。因此CDC401开启蓝牙后,智能手机402可以直接点击CDC401的蓝牙名称即可接入CDC401,此时,若攻击者冒用智能手机402的身份来连接CDC401,CDC401难以辨认出攻击者,因此将导致CDC401与攻击者进行通信,使得CDC401隐私及安全受到威胁。类似的,在其他的一些场景下,节点也往往难以避免与不明身份的攻击者的连接,从而影响通信的安全,为了解决这个问题,本申请实施例提供如下方法。
请参见图5,图5是本申请实施例提供的一种密钥获取方法的流程示意图,该密钥获取方法可以基于图3所示的架构来实现,该方法至少包括如下步骤:
步骤S501:第二节点向第一节点发送第一关联请求消息。
具体的,第一关联请求消息中包括新鲜性参数(fresh parameter)。为了方便描述,本申请各实施例中,将第一关联请求消息中的新鲜性参数称为第一新鲜性参数。其中,新鲜性参数可以包括随机数(number once,NONCE)、计数值(counter)、序列号(number)等等中的至少一个,不同时刻的新鲜性参数通常不同。
第二节点可以通过无线链路(例如Wi-Fi、蓝牙、Zigbee或者其他短距无线链路等中的一个)或者有线链路(例如光纤)向第一节点发送第一关联请求消息。相应的,第一节点接收来自第二节点的第一关联请求消息。
可选的,第一节点可以广播消息,第二节点可以接收第一节点的广播的消息,从而向第一节点发送第一关联请求消息。具体的,第一节点广播的消息中可以携带对第一节点的身份标识、该第一节点的描述信息、和用于指示其它节点接入的指示信息等等中的至少一项,第二节点接收广播的消息后,向第一节点发送第一关联请求消息来请求关联第一节点。
步骤S502:第一节点获取第一预共享密钥PSK。
具体的,PSK是第一节点与第二节点之间共享的一个秘密值,该PSK可以是基于来自第二节点的新鲜性参数和来自第一节点的新鲜性参数生成的,也可以是在第一节点与第二节点中预先配置的。为了方便描述,本申请各实施例中,将第一节点中保存的该第一节点与第二节点之间的PSK称为第一PSK,将生成第一PSK时用到的来自第二节点的新鲜性参数称为第二新鲜性参数,将生成第一PSK时用到的来自第一节点的新鲜性参数称为第三新鲜性参数。可选的,该第二新鲜性参数可以为第一关联请求消息中的第一新鲜性参数,也可以为第一关联请求消息之前来自第二节点的新鲜性参数。
第一PSK是对应第二节点的身份标识的PSK。其中,第二节点的身份标识也称为第二节点的设备标识,第二节点的身份标识可以为第二节点的ID、媒体存取控制(mediaaccess control,MAC)地址、域名、域地址或其他自定义的标识。其中,第二节点的ID可以是固定ID,也可以是临时ID。例如,第一节点在接收第一关联请求消息之前,曾经被分配了临时ID,因此第二节点可以通过曾经被分配的临时ID来连接第一节点。
第一节点在获取第一PSK之前,可以先获取第二节点的身份标识。第一节点获取第二节点的身份标识至少有如下两种方案:
方案一:第一关联请求消息中包括第二节点的身份标识。具体的,第二节点可以在第一关联请求消息中携带第二节点的身份标识,第一节点接收来自第二节点的第一关联请求消息,从而可以获取第二节点的身份标识。
方案二:通过其他消息获取第二节点的身份标识。具体的,第二节点可以通过其他消息向第一节点告知自己的身份标识。例如,在第一节点将第一口令作为接入密码的情况下,第二节点在发送第一关联请求消息之前,先通过输入的第一口令接入第一节点。第二节点可以将第一口令和第二节点的身份标识发送给第一节点,相应的,第一节点就获取了第二节点的身份标识。其中,接入密码是其他节点请求接入第一节点时需要输入的密码,如连接Wi-Fi时需要输入该Wi-Fi的密码。
第一节点获取第一PSK,至少包括如下三种情况:
情况一:第一节点根据第一PSK与第二节点的对应关系,获取第一PSK。其中,对应关系可以是第一节点中预先配置的,也可以是在生成第一PSK后保存的,这里需要说明的是,在预先配置对应关系的情况下,第一节点中预先配置的第一PSK与第二节点预先配置的PSK是相同的,在生成PSK后保存对应关系的情况下,第一节点与第二节点生成PSK的方法以及所使用的参数也是相同的。
第一节点存储对应关系的形式可以是对应关系集合、数据表、数据库等中的一个或者多个,本申请对此不做限定。例如,参见表1,表1是本申请实施例提供的一种可能的第一PSK与第二节点身份标识的对应关系集合,该对应关系集合包括多个节点的身份标识、对应的PSK以及PSK的类型。例如,身份标识为“ID1”的节点,其临时ID为“ID1.1”,对应的PSK为“PSK1”,PSK的类型是预先配置的;再如,身份标识为“ID2”的节点,其临时ID为“ID2.1”,对应的PSK为“PSK2”,PSK的类型是生成的,即PSK2是根据来自第二节点的第二新鲜性参数和来自第一节点的第三新鲜性参数来生成的。为了方便描述,本申请实施例中将第一节点中存储的对应关系集合称为第一对应关系集合。
表1第一PSK与第二节点身份标识的对应关系
身份标识 PSK 类型
ID1(临时ID1.1) PSK1 预先配置
ID2(临时ID2.1) PSK2 生成
ID3(临时ID3.1) PSK3 生成
可以理解的,第一节点中存在第一PSK与第二节点的身份标识的对应关系,可以说明该第二节点之前已经关联过第一节点或者该第一节点预先配置有第二节点的身份标识对应的PSK,因此第一节点可以根据对应关系获取第一PSK。
情况二:第一节点根据第一新鲜性参数和来自第一节点的第四新鲜性参数生成第一PSK,其中,第四新鲜性参数为第一节点确定的新鲜性参数。可选的,在第一节点与第二节点第一次请求进行关联时或者第一节点删除了对应关系的情况下,第一节点中不存在与第二节点的身份标识对应的第一PSK,因此第一节点可以根据第一新鲜性参数和第四新鲜性参数生成新的第一PSK,用于验证第二节点的身份。进一步的,第一节点根据第一新鲜性参数和第四新鲜性参数确定第一PSK,可以有如下实现方式:
实现方式一:第一节点根据第一新鲜性参数和第四新鲜性参数,通过KDF生成第一PSK。例如,以第一新鲜性参数为NONCEe,第四新鲜性参数为NONCEa为例,生成的第一PSK满足:第一PSK=KDF(NONCEe,NONCEa)。需要说明的是,本申请各实施例中,公式中的参数顺序仅为实例说明,实际处理中可以存在其它排列顺序,本申请对参数的顺序不做限定。
实现方式二:第一节点使用第一口令作为接入密码(password),因此第一节点可以根据第一新鲜性参数、第四新鲜性参数和第一口令生成第一PSK。例如,第一节点根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一口令password1,通过KDF生成第一PSK,即:第一PSK=KDF(NONCEe,NONCEa,password1)。
实现方式三:第一节点使用第一口令作为接入密码(password),因此第一节点可以根据第一节点的身份标识、第二节点的身份标识、第一新鲜性参数、第四新鲜性参数和第一口令生成第一PSK。例如,参见图6,图6是本申请实施例提供的一种可能的生成第一PSK的方法示意图,第一节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一口令password1,通过KDF601生成第一PSK602,即:第一PSK602=KDF601(IDa,IDe,NONCEe,NONCEa,password1)。
情况三:第一关联请求消息中还包括第一密钥协商算法参数,第一节点根据第一新鲜性参数、第四新鲜性参数以及上述第一密钥协商算法参数生成第一PSK。其中,第一密钥协商算法参数为密钥协商算法的参数。可选的,第一节点可以广播自己支持的一个或者多个密钥协商算法信息,第二节点确定所述一个或者多个密钥协商算法后,在第一关联请求消息中携带基于第一密钥协商算法的第一密钥协商算法参数(可选的,还可以携带第一密钥协商算法的标识信息)。第一节点基于第一密钥协商算法,根据第一新鲜性参数、第四新鲜性参数以及上述第一密钥协商算法参数,生成第一PSK。进一步的,第一节点根据第一新鲜性参数、第四新鲜性参数以及上述第一密钥协商算法参数生成第一PSK,还可以有如下实现方式:
实现方式四:第一节点根据第一新鲜性参数、第四新鲜性参数以及第一密钥协商算法参数,通过KDF生成第一PSK。例如,根据第一新鲜性参数为NONCEe,第四新鲜性参数为NONCEa,第一密钥协商算法参数为KEe,生成的第一PSK为:PSK=KDF(NONCEe,NONCEa,KEe)。
其中,第一密钥协商算法参数KEe是密钥协商过程中,第二节点基于使用的密钥协商算法产生的算法参数,例如,以使用的密钥协商算法为DH算法为例,第一节点与第二节点使用同一个数值较大的素数p和同一个随机数g。第二节点将g的a次方mod P产生的数值A(即A=ga mod p,该数值A可以看作第一密钥协商算法参数KEe,其中a为第二节点的私钥)发送给第一节点,第一节点根据该数值A和DH算法可以确定出秘密值。具体的,第一节点可以确定随机数b(即第一节点的私钥,为了方面描述,本申请各实施例中将第一节点的私钥称为第三密钥协商算法参数)。在DH算法中,第一节点对接收的数值A做b次方运算可以得到密钥协商的秘密值,即协商出的秘密值为Ab mod p,该秘密值可以参与生成第一PSK。因此,第一节点基于DH算法,根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1、第一密钥协商算法参数A,通过KDF生成第一PSK,即:第一PSK=KDF(NONCEe,NONCEa,password1,Ab mod p)。
进一步的,第一节点将g的b次方mod P产生的数值B(即B=gb mod p,该数值B可以看作第二密钥协商算法参数KEa)发送给第二节点,第二节点对接收的数值B做a次方运算,可以得到密钥协商的秘密值,即协商出的秘密值为Ab mod p,其中,a为第二节点的私钥,为了方面描述,将第二节点的私钥称为第四密钥协商算法参数。由于Ab mod p=(ga mod p)bmod p=gab mod p=(gb mod p)a mod p=Ba mod p,因此第一节点与第二节点通过密钥协商得到的秘密值是相同的。在密钥协商的过程中,攻击者仅通过第一节点和第二节点传输的算法参数,是不能推断出秘密值的,例如,DH算法中,由于实际算法选择的素数p、随机数g、随机数a和随机数b的数值是非常大的,使得根据网络传输的素数p、随机数g、第一密钥协商算法参数A和第二密钥协商算法参数B难以推算出秘密值,因此通过DH算法获取的秘密值具有安全性。
实现方式五:第一节点使用第一口令作为接入密码(password),因此第一节点可以根据第一新鲜性参数、第四新鲜性参数和第一口令生成第一PSK。例如,第一节点根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1以及第一密钥协商算法参数KEe,通过KDF生成第一PSK,即:第一PSK=KDF(NONCEe,NONCEa,password1,KEe)。
实现方式六:第一节点可以根据第一节点的身份标识、第二节点的身份标识、第一新鲜性参数、第四新鲜性参数、第一口令以及第一密钥协商算法参数生成第一PSK。例如,第一节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1以及第一密钥协商算法参数KEe,通过KDF生成第一PSK,即:第一PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KEe)。
实现方式七:第一节点可以根据第一新鲜性参数、第四新鲜性参数、第一口令以及中间密钥生成第一PSK。其中,该中间密钥是根据第一新鲜性参数、第四新鲜性参数以及上述第一密钥协商算法参数生成的。例如,第一节点先根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa以及上述第一密钥协商算法参数KEe生成中间密钥Kmid,即Kmid=F(NONCEe,NONCEa,KEe),其中F为生成中间密钥的密码算法;然后根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1以及中间密钥Kmid生成的第一PSK,即:第一PSK=KDF(NONCEe,NONCEa,password1,Kmid)。当然,在实际的处理中,也可以是通过一个步骤完成,中间密钥Kmid只是一个中间的结果,即生成第一PSK的方式满足:第一PSK=KDF(NONCEe,NONCEa,password1,F(NONCEe,NONCEa,KEe))。
实现方式八:第一节点根据第一节点的身份标识、第二节点的身份标识、第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥(或者第二中间密钥)生成第一PSK。具体的,第一节点先确定第三密钥协商算法参数(或者说第一节点的私钥),然后基于上述第一密钥协商算法,根据第一密钥协商算法参数和第三密钥协商算法参数,确定第一中间密钥。
例如,以上述的DH算法为例,第一节点基于第一密钥协商算法参数A和第三密钥协商算法参数b生成的第一中间密钥Kdh满足:Kdh=Ab mod p。进一步的,还可以根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一中间密钥Kdh确定第二中间密钥,即第二中间密钥Kgt满足:Kgt=KDF(NONCEe,NONCEa,Kdh)。第一节点根据第一节点的身份标识、第二节点的身份标识、第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥(或者第二中间密钥)生成第一PSK。例如,第一节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和第一中间密钥Kdh(或者第二中间密钥kgt),通过KDF生成第一PSK,即:PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,Kdh(或者kgt))。参见图7,图7是本申请实施例提供的有一种可能的生成第一PSK的示意图,第一节点根据第一节点的身份标识IDa、第二节点90的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和第一中间密钥Kdh(或者第二中间密钥kgt),通过KDF701生成第一PSK702。
需要说明的是,这里是为了更清楚的阐述方案,所以以多个步骤的方式解释如何得到第一PSK,在实际的处理中,也可以是通过一个步骤完成,第一中间密钥Kdh或者第二中间密钥Kgt只是一个中间的结果,即确定第一PSK的方式满足:第一PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Kdh))或者确定第一PSK的方式满足:第一PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Ab mod p))。进一步可选的,第一节点还可以根据第一中间密钥Kdh或者第二中间密钥Kgt推演(或者说派生)得到其它中间密钥,然后根据推演得到的其它中间密钥来参与生成第一PSK。
可选的,在生成第一PSK之前,第一节点获取有第一确认指示信息,该第一确认指示信息表示允许第一节点与第二节点关联,进而第一节点可以生成第一PSK。具体的,该第一确认指示信息是根据用户输入的确认操作得到的指示信息,该确认操作可以是对输出的提示信息的确认。例如,第一节点可以输出第一提示信息,提醒用户有新节点接入,在接收到用户的确认操作,得到第一确认指示信息后,通过情况二或者情况三所描述的方式生成第一PSK。这样一来,若攻击者使用自己的身份标识连接第一节点时,由于第一节点中没有攻击者的身份标识对应的PSK,因此可以提醒用户新节点请求关联,由用户去验证新节点的身份,从而可以避免第一节点与不可信的节点关联,保证了第一节点通信的安全性。
可选的,第一关联请求消息中还可以包括是否存在PSK的指示信息,用于表征第二节点中是否存在第一节点的身份标识对应的第二PSK。例如,第一关联请求消息包括第一字段,该第一字段为“0”指示第二节点中不存在该第一节点的身份标识对应的第二PSK,从而使得第一节点可以通过情况二或者情况三所描述的方法来生成第一PSK,而不通过预先存储的对应关系来获取第一PSK,避免后续验证对方的身份认证信息失败。
由上可以看出,第一PSK对应第二节点的身份标识,因此可以用来验证第二的节点的身份。具体的,PSK是第一节点与第二节点之间共享的一个秘密值,即,第一节点中的第一PSK与第二节点中的第二PSK通常具有相同的值,因此第二节点可以根据第二PSK生成身份认证信息或者通过第二PSK(或者根据第二PSK推演出来的密钥)来加密消息内容等方式,用于第一节点验证第二节点的身份。例如,第二节点根据第二PSK生成身份认证信息,第一节点可以通过第一PSK来验证第二节点的身份认证信息;再如,第二节点通过第二PSK(或者根据第二PSK推演出来的密钥)对消息内容进行加密或者完整性保护,第一节点可以通过第一PSK(或者根据第一PSK推演出来的密钥)获取来自第二节点的消息内容,从而验证了第二节点的身份。
可选的,在生成第一PSK后,第一节点可以保存第一PSK与第二节点的身份标识的对应关系,在下一次接收到来自第二节点的关联请求消息时,可以根据对应关系确定第一PSK,而无需重新生成第一PSK。进一步可选的,在第一节点的接入密码为第一口令或者第一PSK是通过第一口令来参与生成的情况下,若第一口令更新,第一节点可以删除第一PSK与第二节点的身份标识的对应关系。
在图5所示的方法中,PSK是第一节点与第二节点之间共享的一个秘密值,而第一节点中的第一PSK对应第二节点的身份标识,因此可以用来验证第二节点的身份,避免第一节点接入不可信的节点,提高通信的安全性。
可选的,本申请实施例还可以包括步骤S503或还可以包括步骤S503-步骤S504,步骤S503—S504具体如下:
步骤S503:第一节点向第二节点发送第一认证请求消息。
具体地,第一认证请求消息中包括前述第四新鲜性参数。可选的,第一认证请求消息中还可以包括消息认证码(message authentication code,MAC)。其中,MAC是根据对称密钥和完整性保护算法生成的消息认证码,用于保护第一认证请求消息的完整性。
第一节点向第二节点发送第一认证请求消息,相应的,第二节就接收了来自第一节点的第一认证请求消息。
可选的,第一认证请求消息中还可以包括更新指示信息。具体的,在第一节点通过情况二或者情况三的方式来生成第一PSK的情况下,第一节点可以向第二节点发送更新指示信息,用于指示PSK的更新。进一步的,第一节点生成新的PSK后,可以通过更新指示信息提醒第二节点更新第二PSK,避免第二节点使用之前的旧PSK来验证身份认证信息,从而避免了第二节点验证身份认证信息失败,影响用户体验。进一步可选的,更新指示信息可以是第一认证请求消息中的一个字符或者一段字符串,例如,第一认证请求消息中包括“update”字段,该字段中使用“1”指示第二节点可以使用方法二或者方法三的方式来生成第二PSK,该字段中使用“0”表示无意义。
步骤S504:第二节点获取第二PSK。
具体地,PSK是第一节点与第二节点之间共享的一个秘密值,该PSK可以是基于来自第二节点的新鲜性参数和来自第一节点的新鲜性参数生成的,也可以是在第一节点与第二节点中预先配置的。为了方便描述,本申请各实施例中,将第二节点中存在的与第一节点之间的预共享密钥称为第二PSK,将生成第二PSK时来自第二节点的新鲜性参数称为第二新鲜性参数,将生成第一PSK时来自第一节点的新鲜性参数称为第三新鲜性参数。该来自第二节点的新鲜性参数可以为第一关联请求消息中的第一新鲜性参数,也可以为第一关联请求消息之前来自第二节点的新鲜性参数。同理,来自第一节点的新鲜性参数可以为第一认证请求消息中的第四新鲜性参数,也可以为第一认证请求消息之前来自第二节点的新鲜性参数。
第二PSK是对应第一节点的身份标识的。其中,第一节点的身份标识也称为第一节点的设备标识,第一节点的身份标识可以为第一节点的ID、媒体存取控制(media accesscontrol,MAC)地址、域名、域地址或其他自定义的标识。
第二节点在获取第二PSK之前,可以先获取第一节点的身份标识。第二节点获取第一节点的身份标识至少有如下三种方案:
方案一:通过第一节点的广播消息获取第一节点的身份标识。具体的,第一节点在广播消息中携带第一节点的身份标识,第二节点可以通过接收第一节点的广播消息来获取第一节点的身份标识。
方案二:第一认证请求消息中还包括第一节点的身份标识。具体的,第一节点可以在第一认证请求消息中携带第一节点的身份标识,第二节点接收来自第一节点的第一认证请求消息,从而可以获取第一节点的身份标识。
方案三:第二节点接收输入的第一节点的身份标识。具体的,用户通过输入第一节点的身份标识来请求接入第一节点,第二节点接收用户输入的第一节点的身份标识,从而获取了第一节点的身份标识。
第二节点获取第二PSK,至少包括如下三种方法:
方法一:第二节点根据第二PSK与第一节点的身份标识的对应关系,获取第二PSK。其中,对应关系可以是第二节点中预先配置的,也可以是在生成第二PSK后保存的,第二节点存储对应关系的形式可以是对应关系集合、数据表、数据库等中的一个或者多个,本申请对此不做限定。例如,参见表2,表2是本申请实施例提供的一种可能的第二PSK与第一节点身份标识的对应关系集合,该对应关系集合包括多个节点的身份标识、对应的PSK以及PSK的类型。例如,身份标识为“ID4”的节点,对应的PSK为“PSK4”,PSK的类型是预先配置的;再如,身份标识为“ID5”的节点,对应的PSK为“PSK5”,PSK的类型是生成的,即PSK5是根据来自第二节点的第二新鲜性参数和来自第一节点的第三新鲜性参数来生成的。为了方便描述,本申请实施例中将第二节点中存储的对应关系集合称为第二对应关系集合。
表2第二PSK与第一节点身份标识的对应关系
身份标识 PSK 类型
ID4 PSK4 配置密钥
ID5 PSK5 生成
ID6 PSK6 生成
可以理解的,第二节点中存在第二PSK与第一节点的身份标识的对应关系,可以说明该第一节点之前已经关联过第二节点或者该第二节点预先配置有第一节点的身份标识对应的第二PSK,因此第二节点可以根据对应关系获取第二PSK。
方法二:第二节点根据第一新鲜性参数和前述第四新鲜性参数生成第二PSK,该第二PSK用于验证第一节点的身份。例如,在第二节点与第一节点第一次进行关联时或者第二节点删除了对应关系的情况下,第二节点中不存在与第一节点的身份标识对应的第二PSK,因此第二节点可以根据第一新鲜性参数和第四新鲜性参数生成新的第二PSK,用于验证第一节点的身份。进一步的,第二节点根据第一新鲜性参数和来自第一节点的第四新鲜性参数确定第二PSK,可以有如下实现方式:
实现方式九:第二节点根据第一新鲜性参数和第四新鲜性参数,通过KDF生成第二PSK。例如,以第一新鲜性参数为NONCEe,第四新鲜性参数为NONCEa为例,生成的第二PSK满足:第二PSK=KDF(NONCEe,NONCEa)。
实现方式十:第二节点通过输入的第一口令接入第一节点,因此第二节点可以根据第一新鲜性参数、第四新鲜性参数和第一口令生成第一PSK。例如,第二节点根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一口令password1,通过KDF生成第二PSK,即:第二PSK=KDF(NONCEe,NONCEa,password1)。
实现方式十一:第二节点通过输入的第一口令接入第一节点,因此第二节点可以根据第一节点的身份标识、第二节点的身份标识、第一新鲜性参数、第四新鲜性参数和第一口令生成第二PSK。例如,第二节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一口令password1,通过KDF生成第二PSK,即:第二PSK=KDF(Ida,Ide,NONCEe,NONCEa,password1)。
方法三:第一认证请求消息中包括第二密钥协商算法参数,第二节点根据第一新鲜性参数、第四新鲜性参数以及第二密钥协商算法参数生成第二PSK。进一步的,第二节点根据第一新鲜性参数、第四新鲜性参数以及第二密钥协商算法参数生成第二PSK,可以有如下实现方式:
实现方式十二:第二节点根据第一新鲜性参数、第四新鲜性参数以及第二密钥协商算法参数,通过KDF生成第二PSK。例如,以第一新鲜性参数为NONCEe,第四新鲜性参数为NONCEa,第二密钥协商算法参数为KEa为例,通过KDF生成的第二PSK为:第二PSK=KDF(NONCEe,NONCEa,KEa)。
其中,第二密钥协商算法参数KEa是密钥协商过程中产生的算法参数,以DH算法为例,第一节点将g的b次方mod P产生的数值B(即B=gb mod p,该数值B可以看作第二密钥协商算法参数KEa)发送给第二节点,第二节点提供随机数a(该随机数a为第二节点的私钥,为了方便描述称为第四密钥协商算法参数)。在DH算法中,第二节点对接收的数值B做a次方运算可以得到密钥协商的秘密值,即协商出的秘密值为Ba mod p,该秘密值可以参与生成第二PSK。第二节点根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1、数值B和随机数a,通过KDF生成第二PSK,即:第二PSK=KDF(NONCEe,NONCEa,password1,Ba mod p)。
进一步的,第二节点可以在第一关联请求消息或者其他消息中携带第一密钥协商算法参数A(或者说KEe),该第一密钥协商算法参数为根据第四密钥协商算法参数a生成的。第一节点对接收的第一密钥协商算法参数A做b次方运算,可以得到密钥协商的秘密值,即协商出的秘密值为Ab mod p,其中,b为第一节点的私钥。由于Ab mod p=(ga mod p)b modp=gab mod p=(gb mod p)a mod p=Ba mod p,因此第一节点与第二节点通过密钥协商得到的秘密值是相同的,从而使得生成的第二PSK与实现方式四中生成的第一PSK具有相同的值。
实现方式十三:第二节点通过输入的第一口令接入第一节点,第二节点可以根据第一新鲜性参数、第四新鲜性参数和第一口令生成第二PSK。例如,第二节点根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1以及第二密钥协商算法参数KEa,通过KDF生成第二PSK,即:第二PSK=KDF(NONCEe,NONCEa,password1,KEa)。
实现方式十四:第二节点通过输入的第一口令接入第一节点,第二节点可以根据第一节点的身份标识、第二节点的身份标识、第一新鲜性参数、第四新鲜性参数、第一口令以及第二密钥协商算法参数生成第二PSK。例如,第二节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1以及第二密钥协商算法参数KEa,通过KDF生成第二PSK,即:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KEa)。
实现方式十五:第二节点可以根据第一新鲜性参数、第四新鲜性参数、第一口令以及中间密钥生成第二PSK。其中,该中间密钥是根据第一新鲜性参数、第四新鲜性参数以及上述第二密钥协商算法参数生成的。例如,第二节点先根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa以及上述第二密钥协商算法参数KEa生成中间密钥Kmid,即Kmid=F(NONCEe,NONCEa,KEa),其中F为生成中间密钥的密码算法;然后根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1以及中间密钥Kmid生成的第二PSK,即:第二PSK=KDF(NONCEe,NONCEa,password1,Kmid)。当然,在实际的处理中,也可以是通过一个步骤完成,中间密钥Kmid只是一个中间的结果,即生成第二PSK的方式满足:第二PSK=KDF(NONCEe,NONCEa,password1,F(NONCEe,NONCEa,KEa))。
实现方式十六:第二节点通过输入的第一口令接入第一节点,第二节点根据第一节点的身份标识、第二节点的身份标识、第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥(或者第二中间密钥)生成第二PSK。具体的,以第一节点与第二节点之间的密钥协商算法为DH算法为例,第二节点先根据第二密钥协商算法参数和第四密钥协商算法参数(或者说第二节点的私钥),计算第一中间密钥。例如,以上述的DH算法为例,第二节点基于第二密钥协商算法参数B和第四密钥协商算法参数a生成的第一中间密钥Kdh为:Kdh=Bamod p。第二节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和上述第一中间密钥Kdh,通过KDF生成第二PSK,即:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,Kdh)。
进一步的,第二节点还可以根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一中间密钥Kdh确定第二中间密钥,即第二中间密钥Kgt为:Kgt=KDF(NONCEe,NONCEa,Kdh)。第二节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和第二中间密钥Kgt,通过KDF生成第二PSK,即:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,Kgt)。
需要说明的是,这里是为了更清楚的阐述方案,所以多个步骤的方式解释如何得到第一PSK,在实际的处理中,也可以是通过一个步骤完成,第一中间密钥Kdh或者第二中间密钥Kgt只是一个中间的结果,即确定第二PSK的方式满足:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Kdh))或者确定第二PSK的方式满足:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Ab mod p))。进一步可选的,第二节点还可以根据第一中间密钥Kdh或者第二中间密钥Kgt推演(或者说派生)得到其它中间密钥,然后根据推演得到的其它中间密钥来参与生成第二PSK。
通常来说,第一节点中通过什么样的实现方式所示的方法来生成第一PSK,相应的,第二节点中也使用相对应的实现方式所示的方法来生成第二PSK,从而使得第一节点生成的第一PSK与第二节点生成的第二PSK是相同的,便于验证对端节点的身份。
可选的,在生成第二PSK之前,第二节点获取第三确认指示信息,该第三确认指示信息表示允许生成第二PSK。具体的,该第三确认指示信息是根据用户输入的确认操作得到的指示信息,该确认操作可以是对输出的提示信息的确认。例如,第二节点可以输出第三提示信息,提醒用户需要接入新节点,在接收到用户确认操作,得到第三确认指示信息后,根据第一新鲜性参数和第四新鲜性参数生成第二PSK。这样一来,若攻击者使用自己的身份标识连接第二节点时,由于第二节点中没有攻击者的身份标识对应的PSK,因此可以提醒用户新节点请求关联,由用户去验证新节点的身份,从而可以避免第二节点与不可信的节点关联,保证了第二节点通信的安全性。
可选的,在生成第二PSK后,第二节点可以保存第二PSK与第一节点的身份标识的对应关系,下一次与第一节点关联时可以根据对应关系确定第二PSK,而无需重新生成第二PSK。可选的,在第二节点通过第一口令接入第一节点时或者第二PSK是通过第一口令来参与生成的情况下,若第一口令更新,第二节点可以删除第二PSK与第一节点的身份标识的对应关系。
可选的,本申请实施例所述的密钥获取方法,还可以包括图8所述的步骤S801或S801-S802,步骤S801-S802具体如下:
步骤S801:若第二节点根据第二PSK和第一新鲜性参数验证第一身份认证信息通过,则第二节点向第一节点发送第一认证响应消息。
具体的,第一认证请求消息中还包括第一身份认证信息,该第一身份认证信息是第一节点根据第一PSK和第一新鲜性参数生成的。例如,第一节点根据第一PSK和第一新鲜性参数NONCEe,通过KDF生成第一身份认证信息AUTHa,即:AUTHa=KDF(第一PSK,NONCEe)。可选的,在实际处理中,第一节点生成第一身份认证信息的参数还可以包括其他信息,例如,生成的第一身份认证信息AUTHa可以满足:AUTHa=KDF(第一PSK,第一关联请求消息),其中,第一关联请求消息中包括第一新鲜性参数NONCEe;再如,生成的第一身份认证信息AUTHa还可以满足:AUTHa=KDF(第一PSK,NONCEa,第一关联请求消息),其中,NONCEa为第四新鲜性参数。
由于第一身份认证信息是第一节点根据第一PSK和第一新鲜性参数生成的,因此第二节点可以根据第二PSK和第一新鲜性参数来验证所述第一身份认证信息是否正确。在一种可选的方案中,根据协议规定,第一节点使用什么参数生成第一身份认证信息,则第二节点也应当使用相同的参数生成用于校验信息,如果用于校验信息与第一身份认证信息相同,则认为验证通过。例如,第一身份认证信息是通过KDF生成的,因此第二节点可以通过KDF生成用于校验信息,也称为校验值check1,然后通过用于校验信息验证第一身份认证信息是否正确。下面进行举例说明:
例如,若第一身份认证信息AUTHa为KDF(第一PSK,NONCEe),则第二节点根据第二PSK和第一新鲜性参数通过KDF得到校验值check1=KDF(第二PSK,NONCEe),若校验值check1与AUTHa相同,则验证通过。
若第一身份认证信息验证通过,第二节点向第一节点发送第一认证响应消息,其中,第二认证响应消息中包括第二身份认证信息。可选的,所述第二身份认证信息用于第一节点验证第二节点的身份。该第二身份认证信息是根据第二PSK和第四新鲜性参数生成的。例如,第二节点根据第二PSK和第四新鲜性参数NONCEa,通过KDF生成第二身份认证信息AUTHe,即:AUTHe=KDF(第二PSK,NONCEa)。可选的,在实际处理中,第二节点生成第二身份认证信息的参数还可以包括其他信息,例如,生成的第二身份认证信息AUTHe可以满足:AUTHe=KDF(第二PSK,第一认证请求消息),其中,第一认证请求消息中包括第四新鲜性参数NONCEa;再如,生成的第二身份认证信息AUTHe还可以满足:AUTHe=KDF(第二PSK,NONCEe,第一认证请求消息),其中,NONCEe为第一新鲜性参数。
可选的,若第一身份认证信息验证不通过,第二节点可以通过方法二或者方法三所述的方法来生成新的第二PSK,为了方便描述,将生成的新的第二PSK称为第四PSK。第二节点通过上述第四PSK和第一新鲜性参数来再次验证第一身份认证信息,若验证通过,第二节点向第一节点发送第一认证响应消息,其中,第二响应消息中包括第二身份认证信息。该第二身份认证信息是根据第四PSK和第四新鲜性参数生成的,用于第一节点验证第二节点的身份。
可选的,在生成第四PSK之前,第二节点获取第四确认指示信息,该第四确认指示信息表示允许生成第四PSK。具体的,该第四确认指示信息是根据用户输入的确认操作得到的指示信息,该确认操作可以是对输出的提示信息的确认。例如,第二节点可以输出第四提示信息,提醒用户需要为第一节点生成第四PSK,在接收到用户的确认操作,得到第四确认指示信息后,通过方法二或者方法三所述的方法来生成第四PSK。这样一来,由用户去验证第一节点的身份,从而可以避免第二节点与不可信的节点关联,保证了第二节点通信的安全性。
可选的,若第一身份认证信息验证不通过,则第二节点可以删除与第一节点的身份标识对应的第二PSK。进一步的,第二节点还可以重新确定新的新鲜性参数以及重新发起新的关联请求消息,为了方便描述,将重新确定的新鲜性参数称为第五新鲜性参数,将重新发起的新的关联请求消息称为第二关联请求消息,便于重新获取PSK。
可选的,若第一身份认证信息验证不通过,且第二节点中没有预先存储有第一节点的身份标识对应的PSK(或者说第二PSK是通过方法二或者方法三获取的)的情况下,则第二节点可以指示用户删除第一节点中存储的第二节点的身份标识对应的PSK。第二节点获取了用户输入的确认指示信息后,第二节点向第一节点发送第二关联请求消息,便于重新获取PSK。
可选的,第一认证响应消息中还可以包括消息认证码(message authenticationcode,MAC)。其中,MAC是根据对称密钥和完整性保护算法生成的消息认证码,用于保护第一认证请求消息的完整性。其中,该对称密钥和/或完整性保护算法可以是第一节点与第二节点之间通过其他消息商定的,也可以是根据现有的参数生成的。例如,实现方式八中第一节点生成的第一中间密钥Kdh=Ba mod p,与实现方式十六中第二节点生成的第一中间密钥Kdh=Ab mod p,由于Ab mod p=Ba mod p,因此第一中间密钥Kdh也可以作为第一节点与第二节点之间的对称密钥,可以用于对第一认证请求消息进行完整性保护。
步骤S802:若第一节点根据第一PSK和第四新鲜性参数验证第二身份认证信息通过,则第一节点向第二节点发送第一关联响应消息。
具体的,由于第二身份认证信息是第二节点根据第二PSK和第四新鲜性参数生成的,因此第一节点可以根据第一PSK和第四新鲜性参数来验证所述第二身份认证信息是否正确。
在一种可选的方案中,根据协议规定,第二节点使用什么参数生成第二身份认证信息,则第一节点也应当使用相同的参数生成用于校验信息,如果用于校验信息与第二身份认证信息相同,则认为验证通过。例如,第二身份认证信息是通过KDF生成的,因此第一节点可以通过KDF生成用于校验信息,也称为校验值check2,然后通过用于校验信息验证第二身份认证信息是否正确。下面进行举例说明:
例如,若第二身份认证信息AUTHe为KDF(第二PSK,NONCEa),则第一节点根据第一PSK和第四新鲜性参数通过KDF得到校验值check2=KDF(第一PSK,NONCEa),若校验值check2与AUTHe相同,则验证通过。
若第二身份认证信息验证通过,第一节点向第二节点发送第一关联响应消息,所述第一关联响应消息可以表征允许第一节点与第二节点进行通信,相应的,第二节点接收该第一关联响应消息,可以开始与第一节点进行通信。可选的,在一种可能的方案中,该第一关联响应消息也可以不发送,例如,第二身份认证信息验证通过后,第一节点直接开始与第二节点进行数据传输。可选的,第一节点可以为第二节点分配临时ID,便于第二节点通过临时ID与第一节点进行通信。
可选的,若第二身份认证信息验证不通过,且第一节点是通过情况一所示的方法来获取第一PSK的情况下,则第一节点可以通过情况二或者情况三所述的方法来生成新的第一PSK,为了方便描述,将生成的新的第一PSK称为第三PSK,然后根据生成的第三PSK和第一新鲜性参数生成新的身份认证信息,为了方便描述,称为第三身份认证信息。进一步的,第一节点重新向第一节点发送第二身份认证请求消息,该第二身份认证请求消息中包括第三身份认证消息和第四新鲜性参数。相应的,第二节点接收来自第一节点的第二身份认证信息,认证通过后,可以向第一节点发送第二身份响应消息,该第二身份认证响应消息中包括第二节点的身份认证信息。相应的,第一节点验证第二节点的身份认证信息通过后,允许与第二节点进行通信。
可选的,在生成第三PSK之前,第一节点获取第二确认指示信息,该第二确认指示信息表示允许生成第三PSK。具体的,该第二确认指示信息是根据用户输入的确认操作得到的指示信息,该确认操作可以是对输出的提示信息的确认。例如,第一节点可以输出第二提示信息,提醒用户需要为第二节点生成第三PSK,在接收到用户的确认操作,得到第二确认指示信息后,通过情况二或者情况三所述的方法来生成第三PSK。这样一来,由用户去验证第二节点的身份,从而可以避免第一节点与不可信的节点关联,保证了第一节点通信的安全性。
可选的,第一认证响应消息中还可以包括消息认证码(message authenticationcode,MAC)。其中,MAC是根据对称密钥和完整性保护算法生成的消息认证码,用于保护第一认证请求消息的完整性。其中,该对称密钥和/或完整性保护算法可以是第一节点与第二节点之间通过其他消息商定的,也可以是根据现有的参数生成的。例如,实现方式八中的第一中间密钥或者所述第二中间密钥可以作为第一节点与第二节点之间的对称密钥。在图5所描述的方法中,PSK是第一节点与第二节点之间共享的一个秘密值。第一节点与第二节点通过来自第二节点的第二新鲜性参数和来自第一节点的第三新鲜性参数来生成PSK,并将PSK对应对端的节点的身份标识,用来验证对端的节点身份。这样一来,若攻击者想要冒用节点的身份标识来请求关联时,由于生成PSK的第二新鲜性参数和第三新鲜性参数可以是在第一关联请求消息之前获取的,例如可以是第一节点与第二节点第一次关联时获取的,由于之前获取的数据通常是难以被破解的,从而使得攻击者无法伪造PSK,因此无法通过第一节点的身份验证,进而避免了第一节点与不可信的节点连接,提高了第一节点的通信安全性。
以上图5或者图8所示的方法实施例中包含了很多可能的实现方案,下面分别结合图9、图10、图11对其中的部分实现方案进行举例说明,需要说明的是,图9、图10、图11未解释到的相关概念或者操作或者逻辑关系可以参照图5或者图8所示实施例中的相应描述,因此不再赘述。
参见图9,图9是本申请实施例提供的又一种密钥获取方法,该方法至少包括如下步骤:
步骤S901:第二节点向第一节点发送第一关联请求消息。
具体的,第一关联请求消息中包括第一新鲜性参数,该第一新鲜性参数可以包括随机数(number once,NONCE)、计数值(counter)、序列号(number)等等中的至少一个,不同时刻的新鲜性参数通常不同。
相应的,第一节点接收来自第二节点的第一关联请求消息。
步骤S902:第一节点获取第四新鲜性参数。
具体的,第四新鲜性参数可以是随机数、计数器值或者序列号等。该第四新鲜性参数可以是第一节点生成(或者说产生)的,例如第一节点通过随机数生成器生成随机数,将该随机数作为第四新鲜性参数,也可以是第一节点获取的计数器值或者序列号等,例如,第一节点中记录有PDCP COUNT,第一节点可以获取记录的PDCP COUNT作为第四新鲜性参数。
步骤S903:第一节点根据第一节点的身份标识、第二节点的身份标识、第一口令、第一新鲜性参数和第四新鲜性参数生成第一PSK。
具体的,第一节点使用第一口令作为接入密码(password),第一节点可以根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一口令password1,通过KDF生成第一PSK,即:PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1)。
可选的,在生成第一PSK之前,第一节点输出第一提示信息,所述第一提示信息用于提示是否允许与第二节点关联或者是否允许生成第一PSK。进一步的,第一节点根据用户的确认操作得到第一确认指示信息,该第一确认指示信息表征允许与第二节点关联或者允许第一PSK,从而根据第一节点的身份标识、第二节点的身份标识、第一口令、第一新鲜性参数和第四新鲜性参数生成第一PSK。
步骤S904:第一节点向第二节点发送第一认证请求消息。
具体的,第一认证请求消息中包括第四新鲜性参数和第一身份认证信息。该第一身份认证信息为第一节点根据第一PSK和第一新鲜性参数生成的。例如,第一节点根据第一PSK和第一新鲜性参数NONCEe,通过KDF生成第一身份认证信息AUTHa,即:AUTHa=KDF(第一PSK,NONCEe)。可选的,在实际处理中,第一节点生成第一身份认证信息的参数还可以包括其他信息,例如,生成的第一身份认证信息AUTHa可以满足:AUTHa=KDF(第一PSK,第一关联请求消息),其中,第一关联请求消息中包括第一新鲜性参数NONCEe;再如,生成的第一身份认证信息AUTHa还可以满足:AUTHa=KDF(第一PSK,NONCEa,第一关联请求消息),其中,NONCEa为第四新鲜性参数。
第一节点向第二节点发送第一认证请求消息,相应的,第二节点就接收了来自第一节点的第一认证请求消息。
步骤S905:第二节点根据第一节点的身份标识、第二节点的身份标识、第一口令、第一新鲜性参数和第四新鲜性参数生成第二PSK。
具体的,第二节点通过第一口令接入第一节点,第二节点可以根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一口令password1,通过KDF生成第二PSK,即:PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1)。
可选的,在生成第二PSK之前,第二节点输出第三提示信息,该第三提示信息用于提示是否允许生成第二PSK。进一步的,第二节点根据用户的确认操作得到第三确认指示信息,该第三确认指示信息表征允许生成第三PSK,从而根据第一节点的身份标识、第二节点的身份标识、第一口令、第一新鲜性参数和第四新鲜性参数生成第二PSK。
步骤S906:若根据第二PSK和第一新鲜性参数验证第一身份认证信息通过,第二节点向第一节点发送第一认证响应消息。
具体的,第一身份认证信息是根据第一PSK和第一新鲜性参数生成的,因此第二节点可以根据第二PSK和第一新鲜性参数来验证所述第一身份认证信息是否正确。通常来说,第一节点使用什么参数生成第一身份认证信息,则第二节点也应当使用相同的参数生成用于校验信息,如果用于校验信息与第一身份认证信息相同,则认为验证通过。例如,若第一身份认证信息AUTHa为KDF(第一PSK,NONCEe),则第二节点根据第二PSK和第一新鲜性参数通过KDF得到校验值check1=KDF(第二PSK,NONCEe),若校验值check1与AUTHa相同,则验证通过。
若第一身份认证信息验证通过,第二节点向第一节点发送第一认证响应消息。第一认证响应消息中包括第二身份认证信息。该第二身份认证信息为第二节点根据第二PSK和第四新鲜性参数生成的,用于第一节点验证第二节点的身份。可选的,在实际处理中,第二节点生成第二身份认证信息的参数还可以包括其他信息,例如,生成的第二身份认证信息AUTHe可以满足:AUTHe=KDF(第二PSK,第一认证请求消息),其中,第一认证请求消息中包括第四新鲜性参数NONCEa;再如,生成的第二身份认证信息AUTHe还可以满足:AUTHe=KDF(第一PSK,NONCEe,第二认证请求消息),其中,NONCEe为第一新鲜性参数。
第一节点向第二节点发送第一认证请求消息,相应的,第二节点就接收了来自第一节点的第一认证请求消息。
步骤S907:若根据第一PSK和第四新鲜性参数验证第二身份认证信息通过,第一节点向第二节点发送第一关联响应消息。
具体的,第二身份认证信息是根据第二PSK和第四新鲜性参数生成的,因此第一节点可以根据第一PSK和第四新鲜性参数验证来验证第二身份认证信息。通常来说,第二节点使用什么参数生成第二身份认证信息,则第一节点也应当使用相同的参数生成用于校验信息,如果用于校验信息与第二身份认证信息相同,则认为验证通过。例如,若第二身份认证信息AUTHe为KDF(第二PSK,NONCEa),则第一节点根据第一PSK和第四新鲜性参数通过KDF得到校验值check2=KDF(第一PSK,NONCEa),若校验值check2与AUTHe相同,则验证通过。
若第一身份认证信息验证通过,第二节点向第一节点发送第一关联响应消息。所述关联响应消息表明允许第一节点与第二节点进行通信。
可选的,本申请实施例还可以包括步骤S908或还可以包括步骤S908-步骤S909,步骤S908-步骤S909具体如下:
步骤S908:第一节点保存第一PSK与第二节点的身份标识的对应关系。
具体的,第一节点中存储了PSK与节点的身份标识的第一对应关系集合,第一节点将第一PSK与第二节点的身份标识的对应关系添加到第一对应关系集合中。
步骤S909:第二节点保存第二PSK与第一节点的身份标识的对应关系。
具体的,第二节点中存储了PSK与节点的身份标识的第二对应关系集合,第二节点将第二PSK与第一节点的身份标识的对应关系添加到第二对应关系集合中。
在图9所示的实施例中,由于PSK是第一节点与第二节点之间共享的秘密值,因此第一节点中的第一PSK通常与第二节点中的第二PSK具有相同的值。第一节点根据第一PSK和第一新鲜性参数来生成第一身份认证信息,使得第二节点可以根据第二PSK来验证第一节点的身份,若第二节点中存储的第二PSK不能验证通过,说明第一节点身份不可信,从而可以避免第二节点与不可信的节点进行关联,提高了第二节点通信的安全性。相应的,第一节点也可以验证第二节点的身份,从而可以避免第一节点与不可信的节点进行关联,提高了第一节点通信的安全性。
参见图10,图10是本申请实施例提供的又一种密钥获取方法,该方法至少包括如下步骤:
步骤S1001:第二节点向第一节点发送第一关联请求消息。
具体的,第一关联请求消息中包括第一新鲜性参数和第一密钥协商算法参数,该第一密钥协商算法参数为第二节点基于第一密钥协商算法,根据第四密钥协商算法参数生成的,该第四密钥协商算法为第二节点的私钥。例如,以DH算法为例,第一节点与第二节点使用同一个数值较大的素数p和同一个随机数g进行密钥协商,第二节点确定随机数a(即第二节点的私钥,或者说第四密钥协商算法参数),第二节点将g的a次方mod P产生的数值A发送给第一节点,即A=ga mod p,该数值A即第一密钥协商算法参数。
可选的,第一节点可以广播自己支持的一个或者多个密钥协商算法,第二节点接收一个或者多个密钥协商算法后,在第一关联请求消息中携带基于第一密钥协商算法确定的第一密钥协商算法参数(可选的,在支持多个密钥协商算法的情况下,还可以携带第一密钥协商算法的标识信息)。相应的,第一节点可以接收来自第二节点的第一关联请求消息。
步骤S1002:第一节点获取第四新鲜性参数、第三密钥协商算法参数。
具体的,第四新鲜性参数可以是随机数、计数器值或者序列号等。该第四新鲜性参数可以是第一节点生成(或者说产生)的,例如第一节点通过随机数生成器生成随机数,将该随机数作为第四新鲜性参数,也可以是第一节点获取的计数器值或者序列号等,例如,第一节点中记录有PDCP COUNT,第一节点可以获取记录的PDCP COUNT作为第四新鲜性参数。
第一节点获取的第三密钥协商算法参数也可以称为第一节点的私钥,一般可以为数值较大的随机数。
步骤S1003:第一节点根据第一密钥协商算法参数和第三密钥协商算法参数确定第一中间密钥。
具体的,第一节点基于第一密钥协商算法,根据第一密钥协商算法参数和第三密钥协商算法参数可以确定密钥协商得到的秘密值,该秘密值可以看作为第一中间密钥。例如,以DH算法为例,第一节点根据第一密钥协商算法参数A和第三密钥协商算法参数b可以确定第一中间密钥Kdh为:Kdh=Ab mod p。
可选的,该第一中间密钥可以作为第一节点与第二节点之间的共享密钥,用于进行加密消息或者进行完整性保护。
步骤S1004:第一节点根据第一节点的身份标识、第二节点的身份标识、第一口令和第一中间密钥生成第一PSK。
具体的,第一节点使用第一口令作为接入密码(password)。第一节点根据第一节点的身份标识IDa、第二节点的身份标识ID2、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和第一中间密钥Kdh,通过KDF生成第一PSK,即:第一PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,Kdh)。
可选的,第一节点可以先根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一中间密钥Kdh,通过KDF确定第二中间密钥Kgt,即:Kgt=KDF(NONCEe,NONCEa,Kdh)。再根据第一节点的身份标识IDa、第二节点的身份标识ID2、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和第二中间密钥Kgt,通过KDF生成第一PSK,即:第一PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,Kgt)。
需要说明的是,这里是为了更清楚的阐述方案,所以多个步骤的方式解释如何得到第一PSK,在实际的处理中,也可以是通过一个步骤完成,第一中间密钥Kdh或者第二中间密钥Kgt只是一个中间的结果,即确定第一PSK的方式满足:第一PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Kdh))或者确定第一PSK的方式满足:第一PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Ab mod p))。
可选的,在生成第一PSK之前,第一节点输出第一提示信息,所述第一提示信息用于提示是否允许生成第一PSK。进一步的,第一节点根据用户的确认操作得到第一确认指示信息,该第一确认指示信息表征允许生成第一PSK。
步骤S1005:第一节点向第二节点发送第一认证请求消息。
具体的,第一认证请求消息中包括第四新鲜性参数、第二密钥协商算法参数和第一身份认证信息。其中,第二密钥协商算法参数为第一节点基于第一密钥协商算法,根据第三密钥协商算法(或者说第一节点的私钥)确定的参数。例如,以DH算法为例,第一节点将g的b次方mod P产生的数值B发送给第二节点,即B=gb mod p,该数值B可以看作第二密钥协商算法参数。
该第一身份认证信息为第一节点根据第一PSK和第一新鲜性参数生成的,用于第二节点验证第一节点的身份。例如,第一节点根据第一PSK和第一新鲜性参数NONCEe,通过KDF生成第一身份认证信息AUTHa,即:AUTHa=KDF(第一PSK,NONCEe)。可选的,在实际处理中,第一节点生成第一身份认证信息的参数还可以包括其他信息,例如,生成的第一身份认证信息AUTHa可以满足:AUTHa=KDF(第一PSK,第一关联请求消息),其中,第一关联请求消息中包括第一新鲜性参数NONCEe;再如,生成的第一身份认证信息AUTHa还可以满足:AUTHa=KDF(第一PSK,NONCEa,第一关联请求消息),其中,NONCEa为第四新鲜性参数。
可选的,该第一认证请求消息中还可以包括消息认证码MAC,该消息认证码MAC是根据第一中间密钥生成的消息认证码,用于保护第一认证请求消息的完整性。
第一节点向第二节点发送第一认证请求消息,相应的,第二节点就接收了来自第一节点的第一认证请求消息。
步骤S1006:第二节点根据第二密钥协商算法参数和第四密钥协商算法参数确定第一中间密钥。
具体的,第二节点根据第二密钥协商算法参数和第四密钥协商算法参数(或者说第二节点的私钥)可以确定密钥协商得到的秘密值。例如,以DH算法为例,第二节点根据接收到的第二密钥协商算法参数B和第四密钥协商算法参数a,确定的第一中间密钥Kdh满足:Kdh=Ba mod p。由于Kdh=Ab mod p=(ga mod p)b mod p=gab mod p=(gb mod p)a mod p=Ba mod p,因此第一节点与第二节点中确定的第一中间密钥具有相同的值。
步骤S1007:第二节点根据第一节点的身份标识、第二节点的身份标识、第一口令和第一中间密钥生成第二PSK。
具体的,第二节点通过第一口令接入第一节点。第二节点根据第一节点的身份标识IDa、第二节点的身份标识IDe、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和第一中间密钥Kdh,通过KDF生成第二PSK,即:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,Kdh)。
可选的,第二节点可以先根据第一新鲜性参数NONCEe、第四新鲜性参数NONCEa和第一中间密钥Kdh,通过KDF确定第二中间密钥Kgt,即:Kgt=KDF(NONCEe,NONCEa,Kdh)。再根据第一节点的身份标识IDa、第二节点的身份标识ID2、第一新鲜性参数NONCEe、第四新鲜性参数NONCEa、第一口令password1和第二中间密钥Kgt,通过KDF生成第二PSK,即:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,Kgt)。
需要说明的是,这里是为了更清楚的阐述方案,所以多个步骤的方式解释如何得到第二PSK,在实际的处理中,也可以是通过一个步骤完成,第一中间密钥Kdh或者第二中间密钥Kgt只是一个中间的结果,即确定第二PSK的方式满足:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Kdh))或者确定第二PSK的方式满足:第二PSK=KDF(IDa,IDe,NONCEe,NONCEa,password1,KDF(NONCEe,NONCEa,Ab mod p))。
可选的,在生成第二PSK之前,第二节点输出第三提示信息,所述第三提示信息用于提示是否允许生成第二PSK。进一步的,第二节点根据用户的确认操作得到第三确认指示信息,该第三确认指示信息表征允许生成第三PSK,从而生成第二PSK。
步骤S1008:若根据第二PSK和第一新鲜性参数验证第一身份认证信息通过,第二节点向第一节点发送第一认证响应消息。
具体描述可以参考步骤S906。
步骤S1009:若根据第一PSK和第四新鲜性参数验证第二身份认证信息通过,第一节点向第二节点发送第一关联响应消息。
具体描述可以参考步骤S907。
可选的,本申请实施例还可以包括步骤S1010或还可以包括步骤S1010-步骤S1011,步骤S1010-步骤S1011具体如下:
步骤S1010:第一节点保存第一PSK与第二节点的身份标识的对应关系。
具体的,第一节点中存储了PSK与节点的身份标识的第一对应关系集合,第一节点将第一PSK与第二节点的身份标识的对应关系添加到第一对应关系集合中。
步骤S1011:第二节点保存第二PSK与第一节点的身份标识的对应关系。
具体的,第二节点中存储了PSK与节点的身份标识的第二对应关系集合,第二节点将第二PSK与第一节点的身份标识的对应关系添加到第二对应关系集合中。
在图10所示的实施例中,第二节点在第一关联请求消息中携带第一密钥协商算法参数,第一节点提供第二密钥协商算法参数,通过双方提供的密钥协商算法参数、第一新鲜性参数、第四新鲜性参数和所述第一口令和确定第一PSK。这样一来,即使攻击者在之后冒用了第二节点的身份信息,也获取了生成第一PSK时使用的第一新鲜性参数和第四新鲜性参数,也无法破解PSK,因此也不能与第一节点进行通信,提高了第一节点会通信的安全性。相应的,即使攻击者在之后冒用了第一节点的身份信息,也获取了生成第二PSK时使用的第一新鲜性参数和第四新鲜性参数,也无法破解PSK,因此也不能与第二节点进行通信,提高了第一节点会通信的安全性。
参见图11,图11是本申请实施例提供的又一种密钥获取方法,该方法可以应用于第一节点中无第一PSK,第二节点中存在第二PSK的情况下,例如,第一节点中由于格式化丢失了数据,或者第一节点中删除了PSK与节点的身份标识的对应关系的情况。该方法至少包括如下步骤:
步骤S1101:第二节点向第一节点发送第一关联请求消息。
具体的,第一关联请求消息中包括第一新鲜性参数。相应的,第一节点可以接收来自第二节点的第一关联请求消息。
步骤S1102:第一节点获取第四新鲜性参数。
具体的,第四新鲜性参数可以是随机数、计数器值或者序列号等。该第四新鲜性参数可以是第一节点生成(或者说产生)的,例如第一节点通过随机数生成器生成随机数,将该随机数作为第四新鲜性参数,也可以是第一节点获取的计数器值或者序列号等,例如,第一节点中记录有PDCP COUNT,第一节点可以获取记录的PDCP COUNT作为第四新鲜性参数。
步骤S1103:第一节点根据第一新鲜性参数和第四新鲜性参数生成第一PSK。
具体的,详细描述可以参见步骤S502中情况二和情况三的详细描述。
步骤S1104:第一节点向第二节点发送第一认证请求消息。
具体的,第一认证请求消息中包括第四新鲜性参数和第一身份认证信息。该第一身份认证信息为第一节点根据第一PSK和第一新鲜性参数生成的,用于第二节点验证第一节点的身份。可选的,在实际处理中,第一节点生成第一身份认证信息的参数还可以包括其他信息,例如,生成的第一身份认证信息AUTHa可以满足:AUTHa=KDF(第一PSK,第一关联请求消息),其中,第一关联请求消息中包括第一新鲜性参数NONCEe;再如,生成的第一身份认证信息AUTHa还可以满足:AUTHa=KDF(第一PSK,NONCEa,第一关联请求消息),其中,NONCEa为第四新鲜性参数。
步骤S1105:第二节点根据第二PSK与第一节点的身份标识的对应关系确定第二PSK。
具体的,详细描述可以参见步骤S504中方法一的详细描述。
步骤S1106:若根据第二PSK和第一新鲜性参数验证第一身份认证信息不通过,第二节点根据第一新鲜性参数和第四新鲜性参数生成第四PSK。
具体的,第二PSK,根据第二PSK与第一节点的身份标识的对应关系确定的,若根据第二PSK和第一新鲜性参数验证第一身份认证信息不通过,可能是由于第一节点中生成了新的第一PSK,从而导致认证不通过。因此第二节点根据第一新鲜性参数和第四新鲜性参数生成第四PSK,通过第四PSK和第一新鲜性参数来验证第二节点的身份。
步骤S1107:若根据第四PSK和第一新鲜性参数验证第一身份认证信息通过,第二节点向第一节点发送第一认证响应消息。
具体的,第一认证响应消息中包括第二身份认证信息,该第二身份认证信息为根据第四PSK和第四新鲜性参数生成的。可选的,在实际处理中,第二节点生成第二身份认证信息的参数还可以包括其他信息,例如,生成的第二身份认证信息AUTHe可以满足:AUTHe=KDF(第四PSK,第一认证请求消息),其中,第一认证请求消息中包括NONCEa;再如,生成的第二身份认证信息AUTHe还可以满足:AUTHe=KDF(第四PSK,NONCEe,第一认证请求消息),其中,NONCEe为第一新鲜性参数。
步骤S1108:若根据第一PSK和第四新鲜性参数验证第二身份认证信息通过,第一节点向第二节点发送第一关联响应消息。
具体的,第一关联响应消息表征允许第一节点与第二节点进行通信。相应的,第二节点接收了来自第一节点的第一关联响应消息。
可选的,本申请实施例还可以包括步骤S1109或还可以包括步骤S1109-步骤S1110,步骤S1109-步骤S1110具体如下:
步骤S1109:第一节点保存第一PSK与第二节点的身份标识的对应关系。
步骤S1110:第二节点保存第四PSK与第一节点的身份标识的对应关系。
在图11所示的实施例中,在第二节点根据对应关系来获取第二PSK时,若出现第二节点验证第一身份认证信息不通过的情况,可能是由于第一节点中使用的新生成的PSK来生成的第一身份认证信息。因此,第二节点中也根据所述第一新鲜性参数和所述第四新鲜性参数生成新的PSK(即第四PSK),根据新的PSK来重新发起认证,从而可以提高系统的稳定性。
参见图12,图12是本申请实施例提供的又一种密钥获取方法,该方法可以应用于第一节点中无第一PSK,第二节点中存在第二PSK的情况下,例如,第一节点中由于格式化丢失了数据,或者第一节点中删除了PSK与节点的身份标识的对应关系的情况。该方法至少包括如下步骤:
步骤S1201:第二节点向第一节点发送第一关联请求消息。
具体的,第一关联请求消息中包括第一新鲜性参数。相应的,第一节点可以接收来自第二节点的第一关联请求消息。
步骤S1202:第一节点获取第四新鲜性参数。
具体的,第四新鲜性参数可以是随机数、计数器值或者序列号等。该第四新鲜性参数可以是第一节点生成(或者说产生)的,例如第一节点通过随机数生成器生成随机数,将该随机数作为第四新鲜性参数,也可以是第一节点获取的计数器值或者序列号等,例如,第一节点中记录有PDCP COUNT,第一节点可以获取记录的PDCP COUNT作为第四新鲜性参数。步骤S1203:第一节点根据第一新鲜性参数和第四新鲜性参数生成第一PSK。
具体的,详细描述可以参见步骤S502中情况二和情况三的详细描述。
步骤S1204:第一节点向第二节点发送第一认证请求消息。
具体的,第一认证请求消息中包括第四新鲜性参数和第一身份认证信息。该第一身份认证信息为第一节点根据第一PSK和第一新鲜性参数生成的,用于第二节点验证第一节点的身份。可选的,在实际处理中,第一节点生成第一身份认证信息的参数还可以包括其他信息,例如,生成的第一身份认证信息AUTHa可以满足:AUTHa=KDF(第一PSK,第一关联请求消息),其中,第一关联请求消息中包括第一新鲜性参数NONCEe;再如,生成的第一身份认证信息AUTHa还可以满足:AUTHa=KDF(第一PSK,NONCEa,第一关联请求消息),其中,NONCEa为第四新鲜性参数。
步骤S1205:第二节点根据第二PSK与第一节点的身份标识的对应关系确定第二PSK。
具体的,详细描述可以参见步骤S504中方法一的详细描述。
步骤S1206:若根据第二PSK和第一新鲜性参数验证第一身份认证信息不通过,第二节点删除第二PSK。
具体的,第二节点可以删除第二PSK,或者删除第二PSK与第一节点的身份标识的对应关系。
步骤S1207:第二节点向第一节点发送第二关联请求消息。
具体的,第二关联请求消息中包括第五新鲜性参数。该第二关联请求消息表明第二节点重新发起了请求关联的流程。
在图12所示的实施例中,在第二节点根据对应关系来获取第二PSK时,若出现第二节点验证第一身份认证信息不通过的情况,可能是由于第一节点中使用的新生成的PSK来生成的第一身份认证信息。因此,第二节点中删除第二PSK,便于重新发起接入流程,重新请求接入第一节点,协商新的PSK。
参见图13,图13是本申请实施例提供的又一种密钥获取方法,该方法可以应用于第一节点中存在第一PSK,第二节点中无第二PSK的情况下,例如,第二节点中由于格式化丢失了数据,或者第二节点中删除了PSK与节点的身份标识的对应关系的情况。该方法至少包括如下步骤:
步骤S1301:第二节点向第一节点发送第一关联请求消息。
具体的,第一关联请求消息中包括第一新鲜性参数。相应的,第一节点可以接收来自第二节点的第一关联请求消息。
步骤S1302:第一节点获取第四新鲜性参数。
具体的,第四新鲜性参数可以是随机数、计数器值或者序列号等。该第四新鲜性参数可以是第一节点生成(或者说产生)的,例如第一节点通过随机数生成器生成随机数,将该随机数作为第四新鲜性参数,也可以是第一节点获取的计数器值或者序列号等,例如,第一节点中记录有PDCP COUNT,第一节点可以获取记录的PDCP COUNT作为第四新鲜性参数。步骤S1303:第一节点第一PSK与第二节点的身份标识的对应关系确定第一PSK。
具体的,详细描述可以参见步骤S502中情况一的详细描述。
步骤S1304:第一节点向第二节点发送第一认证请求消息。
具体的,第一认证请求消息中包括第四新鲜性参数和第一身份认证信息。该第一身份认证信息为第一节点根据第一PSK和第一新鲜性参数生成的,用于第二节点验证第一节点的身份。可选的,在实际处理中,第一节点生成第一身份认证信息的参数还可以包括其他信息,例如,生成的第一身份认证信息AUTHa可以满足:AUTHa=KDF(第一PSK,第一关联请求消息),其中,第一关联请求消息中包括第一新鲜性参数NONCEe;再如,生成的第一身份认证信息AUTHa还可以满足:AUTHa=KDF(第一PSK,NONCEa,第一关联请求消息),其中,NONCEa为第四新鲜性参数。
步骤S1305:第二节点根据第一新鲜性参数和第四新鲜性参数生成第二PSK。
具体的,详细描述可以参见步骤S504中方法二或者方法三的详细描述。
步骤S1306:若根据第二PSK和第一新鲜性参数验证第一身份认证信息不通过,第二节点向第一节点发送第一认证响应消息。
具体的,第二PSK是根据第一新鲜性参数和第四新鲜性参数生成的,若根据第二PSK和第一新鲜性参数验证第一身份认证信息不通过,说明第一节点的PSK和第二节点的PSK不相同,因此第二节点可以向第一发送第一认证响应消息,其中,第一认证响应消息中包括第二身份认证信息,该第二身份认证信息是根据第二PSK和第四新鲜性参数生成的。第一节点接收第二身份认证信息后,若认证不通过,可以重新确定第一PSK。
可选的,第二节点可以在第一认证响应消息中添加更新指示信息,提醒第一节点更新PSK,避免第一节点使用之前的旧PSK来验证身份认证信息,从而避免了第一节点验证身份认证信息失败,影响用户体验。进一步可选的,更新指示信息可以是第一认证响应消息中的一个字符或者一段字符串,例如,第一认证响应消息中包括“update”字段,该字段中使用“1”指示第一节点更新PSK,该字段中使用“0”表示无意义。
步骤S1307:若根据第一PSK和第一新鲜性参数验证第一身份认证信息不通过,第一节点根据第一新鲜性参数和第四新鲜性参数生成第三PSK。
可选的,在生成第三PSK之前,第一节点获取第二确认指示信息,该第二确认指示信息表示允许生成第三PSK。具体的,该第二确认指示信息是根据用户输入的确认操作得到的指示信息,该确认操作可以是对输出的提示信息的确认。例如,第一节点可以输出第二提示信息,提醒用户需要为第二节点生成第三PSK,在接收到用户的确认操作,得到第二确认指示信息后,通过情况二或者情况三所述的方法来生成第三PSK。这样一来,由用户去验证第二节点的身份,从而可以避免第一节点与不可信的节点关联,保证了第一节点通信的安全性。
步骤S1308:第一节点向第二节点发送第二认证请求消息。
具体的,第一节点中生成第三PSK后,向第二节点发送第二认证请求消息,该第二认证请求消息中包括第三身份认证信息,该第三身份认证信息为根据第三PSK和第一新鲜性参数来生成的。可选的,在实际处理中,第二节点生成第三身份认证信息的参数还可以包括其他信息,例如,生成的第三身份认证信息AUTHt可以满足:AUTHt=KDF(第三PSK,第一关联请求消息),其中,第一关联请求消息中包括NONCEa;再如,生成的第三身份认证信息AUTHt还可以满足:AUTHt=KDF(第三PSK,NONCEa,第一关联请求消息),其中,NONCEa为第四新鲜性参数。
步骤S1309:若根据第二PSK和第一新鲜性参数验证第三身份认证信息通过,向第一节点发送第二认证响应消息。
具体的,第二认证响应消息中包括第四身份认证信息,该第四身份认证信息为根据第二PSK和第四新鲜性参数生成的。可选的,在实际处理中,第二节点生成第二身份认证信息的参数还可以包括其他信息,例如,生成的第四身份认证信息AUTHf可以满足:AUTHf=KDF(第二PSK,第二认证请求消息),其中,第一认证请求消息中包括NONCEa;再如,生成的第二身份认证信息AUTHf还可以满足:AUTHf=KDF(第一PSK,NONCEe,第二认证请求消息),其中,NONCEe为第一新鲜性参数。
步骤S1310:若根据第三PSK和第四新鲜性参数验证第二身份认证信息通过,第一节点向第二节点发送第一认证响应消息。
具体的,所述第一认证响应消息表征允许所述第一节点与第二节点进行通信。相应的,第二节点接收了来自第一节点的第一认证响应消息。
可选的,本申请实施例还可以包括步骤S1311或还可以包括步骤S1311-步骤S1312,步骤S1311-步骤S1312具体如下:
步骤S1311:第一节点保存第三PSK与第二节点的身份标识的对应关系。
步骤S1312:第二节点保存第二PSK与第一节点的身份标识的对应关系。
在图13所示的实施例中,在第一节点根据对应关系来获取第一PSK时,若出现第一节点验证第二身份认证信息不通过的情况,可能是由于第二节点中使用的新生成的PSK来生成的第二身份认证信息。因此,第一节点也使用新生成PSK来重新发起认证流程,协商新的PSK提高系统的稳定性。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图14,图14是本申请实施例提供的一种装置140的结构示意图,该装置140可以为节点,也可以为带有数据收发能力的电子设备中的一个器件,例如芯片或者集成电路等,该装置140可以包括接收1401和处理单元1402。其中,各个单元的描述如下:
接收单元1401,用于接收来自第二节点的第一关联请求消息,该第一关联请求消息包括第一新鲜性参数;
处理单元1402,用于获取第一预共享密钥PSK;其中,该第一PSK对应第二节点的身份标识;该第一PSK为根据来自第二节点的第二新鲜性参数和来自上述装置140的第三新鲜性参数生成的PSK。进一步,该第一PSK用于验证所述第二节点的身份。
可以看出,PSK是上述装置140与第二节点之间共享的一个秘密值。上述装置140通过来自第二节点的第二新鲜性参数和来自上述装置140的第三新鲜性参数来生成第一PSK,并将所述第一PSK对应第二节点的身份标识,用来验证第二节点的身份(例如,第二节点根据PSK生成身份认证信息,第一节点通过第一PSK可以来验证第二节点的身份认证信息;再如,第二节点通过PSK(或者根据PSK推演出来的密钥)对消息内容进行加密或者完整性保护,第一节点可以通过第一PSK获取来自第二节点的消息内容)。这样一来,若攻击者想要冒用第二节点的身份标识来关联上述装置时,由于生成第一PSK的第二新鲜性参数和第三新鲜性参数可以是在第一关联请求消息之前获取的,例如可以是上述装置140与第二节点第一次关联时获取的,由于之前获取的数据通常是难以被破解的,从而使得攻击者无法伪造PSK,因此无法通过上述装置140的身份验证,进而避免了上述装置140与不可信的节点连接,提高了上述装置140的通信安全性。
这里需要说明的是,上述多个单元的划分仅是一种根据功能进行的逻辑划分,不作为对装置140具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,装置140在密钥获取的过程中所执行的大致流程是相同的。例如,上述多个单元也可以变换为通信单元以及处理单元,所述通信单元用于实现接收单元1401的功能。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元执行相应的流程从而实现相应功能。
在一种可能的实施方式中,上述装置140还包括:
发送单元1403,用于向第二节点发送第一认证请求消息,该第一认证请求消息包括第一身份认证信息和第四新鲜性参数,其中,该第一身份认证信息为根据所述第一PSK和第一新鲜性参数生成的。
可以看出,由于PSK是上述装置140与第二节点之间共享的秘密值,因此上述装置140中的第一PSK通常与第二节点中的第二PSK具有相同的值。上述装置140根据第一PSK和第一新鲜性参数来生成第一身份认证信息,使得第二节点可以根据第二PSK来验证上述装置140的身份,若第二节点中存储的第二PSK不能验证通过,从而可以避免第二节点与不可信的节点进行关联,提高了第二节点通信的安全性。
在又一种可能的实施方式中,该接收单元1401,还用于接收来自第二节点的第一认证响应消息,该第一认证响应消息中包括第二身份认证信息;
该发送单元1403,还用于若上述装置140根据第一PSK和第四新鲜性参数(NONCEa)验证第二身份认证信息通过,则向第二节点发送第一关联响应消息。
可以看出,在上述装置140与第二节点进行通信之前,上述装置140与第二节点先通过身份认证信息来确定双方的身份。在身份认证通过后,才允许进行通信,从而避免了不可信的节点接入,提高了节点通信的安全性。
在又一种可能的实施方式中,该处理单元1402,具体用于根据第一PSK与第二节点的身份标识的对应关系,获取第一PSK。
可以看出,上述装置140中存在第一PSK与第二节点的身份标识的对应关系,可以说明该第二节点之前已经关联过上述装置140或者上述装置140中预先配置有第二节点的身份标识对应的第一PSK,因此上述装置140可以根据对应关系获取所述第一PSK。
在又一种可能的实施方式中,该处理单元1402,具体用于:
通过第一对应关系集合,根据第一PSK与第二节点的身份标识的对应关系,获取第一PSK。
可以看出,上述装置140可以通过对应关系集合的形式来存储第一PSK与第二节点的身份标识的对应关系。
在又一种可能的实施方式中,该处理单元1402,具体用于根据第一新鲜性参数和第四新鲜性参数生成第一PSK;其中,该第一新鲜性参数为上述第二新鲜性参数,该第四新鲜性参数为上述第三新鲜性参数。
可以看出,第一PSK是根据第一关联请求消息中的第一新鲜性参数和来自上述装置140的第四新鲜性参数来生成的。通常来说,在上述装置140与第二节点第一次进行关联时或者上述装置140删除了对应关系的情况下,上述装置140中不存在与所述第二节点的身份标识对应的PSK,因此上述装置140可以根据第一新鲜性参数和第四新鲜性参数生成新的第一PSK,用于验证第二节点的身份。
在又一种可能的实施方式中,该处理单元1402,还用于获取第一确认指示信息,该第一确认指示信息表征允许所述第二节点与上述装置140关联。
可以看出,在生成新的第一PSK时,需要获得用户的确认。这样一来,若攻击者使用自己的身份标识连接上述装置140时,由于上述装置140中没有攻击者的身份标识对应的PSK,因此可以由用户去验证新节点的身份,在获取第一确认指示信息后,才生成第一PSK,从而避免了上述装置140与不可信的节点关联,保证了上述装置140通信的安全性。
在又一种可能的实施方式中,该处理单元1402,具体用于根据第一新鲜性参数、第四新鲜性参数和第一口令生成第一PSK,该第一口令为所述装置的接入密码。
可以看出,在第一口令为上述装置140的接入密码的情况下,第二节点是通过输入的第一口令来连接上述装置140的,因此通过第一口令来参与生成第一PSK,可以使得没有获取到第一口令的攻击者无法破解第一PSK,从而可以避免上述装置140与没有获取到第一口令的攻击者进行关联。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数;该处理单元1402,具体用于根据第一新鲜性参数、第四新鲜性参数、第一口令以及第一密钥协商算法参数生成第一PSK。
可以看出,第二节点在第一关联请求消息中携带第一密钥协商算法参数,该第一密钥协商算法参数是基于第一密钥协商算法确定的。上述装置140可以基于该第一密钥协商算法,根据第一密钥协商算法参数、第一新鲜性参数、第四新鲜性参数和第一口令和确定第一PSK。这样一来,即使攻击者在之后冒用了第二节点的身份信息,也获取了生成第一PSK时使用的第一新鲜性参数和第四新鲜性参数,也无法破解第一PSK,因此无法与上述装置140进行通信,提高了上述装置140通信的安全性。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数;该处理单元1402,具体用于:
根据第一新鲜性参数、第四新鲜性参数、第一口令和中间密钥生成第一PSK,该第一口令为接入密码;其中,该中间密钥为根据第一新鲜性参数、第四新鲜性参数以及上述第一密钥协商算法参数生成的。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数,该第一密钥协商算法参数为基于第一密钥协商算法确定的;该处理单元1402,具体用于:
确定第三密钥协商算法参数;
基于上述第一密钥协商算法,根据第一密钥协商算法参数和第三密钥协商算法参数确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第一PSK。
可以看出,上述装置140接收来自第二节点的第一密钥协商算法参数以后,确定第三密钥协商算法参数(或者说上述装置140的私钥)。上述装置140基于上述第一密钥协商算法,根据该第一密钥协商算法参数和第二密钥协商算法参数确定第一中间密钥,再根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第一PSK。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数,该第一密钥协商算法参数为基于第一密钥协商算法确定的;该处理单元1402,具体用于:
获取第三密钥协商算法参数;
基于第一密钥协商算法,根据第一密钥协商算法参数和第三密钥协商算法参数确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数和第一中间密钥确定第二中间密钥;
根据第一新鲜性参数、所第四新鲜性参数、第一口令和第二中间密钥生成第一PSK。
在又一种可能的实施方式中,该处理单元1402,还用于保存第二节点的身份标识与第一PSK对应关系。
可以看出,在生成第一PSK后,上述装置140保存第二节点的身份标识与第一PSK的对应关系,当之后第一节点再次接收来自第二节点的关联请求时,可以根据对应关系获取第一PSK而无需重新生成第一PSK。
在又一种可能的实施方式中,该处理单元1402,还用于若第一口令更新,则删除第二节点的身份标识与第一PSK对应关系。
在又一种可能的实施方式中,该第一认证请求消息中还包括更新指示信息,该更新指示信息用于指示PSK的更新。
可以看出,在根据第一新鲜性参数和第四新鲜性参数生成第一PSK后,上述装置140可以提醒第二节点更新PSK,避免在第二节点使用之前的旧PSK来验证身份认证信息,从而避免验证失败,影响用户体验。
在又一种可能的实施方式中,该处理单元1402,还用于若上述装置140根据第一PSK和第四新鲜性参数验证第二身份认证信息不通过,则根据第一新鲜性参数和第四新鲜性参数生成第三PSK;
该发送单元1403,还用于向第二节点发送第二认证请求消息,该第二认证请求消息包括第三身份认证信息,其中,该第三身份认证信息为根据第三PSK和第一新鲜性参数生成的。
可以看出,在上述装置140根据对应关系来获取第一PSK的情况下,若出现上述装置140验证第二身份认证信息不通过的情况,可能是由于第二节点中使用的新生成的PSK来生成了第二身份认证信息。因此,上述装置140根据所述第一新鲜性参数和所述第四新鲜性参数生成新的PSK(即第三PSK),根据新的PSK来重新发起认证,从而可以提高系统的稳定性。
在又一种可能的实施方式中,该处理单元1402,还用于若根据第一PSK和所述第四新鲜性参数验证第二身份认证信息不通过,则获取第二确认指示信息,该第二确认指示信息表征允许生成第三PSK;
该处理单元1402,还用于根据第一新鲜性参数和第四新鲜性参数生成第三PSK。
在又一种可能的实施方式中,该接收单元1401,还用于接收来自第二节点的第二认证响应消息,该第二认证响应消息中包括第四身份认证信息;
该发送单元1403,还用于若根据第三PSK和第四新鲜性参数验证第四身份认证信息通过,则向第二节点发送第二关联响应消息。
可以看出,在上述装置140根据新的PSK来重新发起认证后,再接收第二节点发送的第四身份认证信息,若验证第四身份认证信息通过,说明第二节点的身份可信,从而可以允许与第二节点进行通信。
需要说明的是,各个单元的实现还可以对应参照图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例的相应描述。该装置140可以为图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例中的第一节点。
请参见图15,图15是本申请实施例提供的一种装置150的结构示意图,该装置150可以为带有数据收发能力的电子设备,也可以为带有数据收发能力的电子设备中的一个器件,例如芯片或者集成电路等,该装置150可以包括发送单元1501、接收单元1502和处理单元1503,其中,各个单元的描述如下:
发送单元1501,用于向第一节点发送第一关联请求消息,该第一关联请求消息中包括第一新鲜性参数;
接收单元1502,用于接收来自第一节点的第一认证请求消息,该第一认证请求消息中包括第四新鲜性参数;
处理单元1503,用于获取第二PSK;其中,该第二PSK对应第一节点的身份标识;该第二PSK为根据来自上述装置150的第二新鲜性参数和来自第一节点的第三新鲜性参数生成的PSK,该第二PSK用于验证第一节点的身份。
可以看出,PSK是上述装置150与第一节点之间共享的一个秘密值。上述装置150通过第二新鲜性参数和来自上述装置150的第三新鲜性参数来生成第二PSK,并将第二PSK对应第一节点的身份标识,用来验证第一节点的身份(例如,第一节点根据PSK生成身份认证信息,第二节点通过第二PSK可以来验证第一节点的身份认证信息;再如,第一节点通过PSK(或者根据PSK推演出来的密钥)对消息内容进行加密或者完整性保护,第二节点可以通过第一PSK获取来自第二节点的消息内容)。这样一来,若攻击者想要冒用第一节点的身份标识与上述装置150关联时,由于生成第二PSK的第二新鲜性参数和第三新鲜性参数可以是在第一关联请求消息之前获取的,例如可以是上述装置150与第一节点第一次关联时获取的,由于之前获取的数据通常是难以被破解的,从而使得攻击者无法伪造PSK,因此无法通过上述装置150的身份验证,进而避免了上述装置150与不可信的节点关联,提高了上述装置150的通信安全性。
这里需要说明的是,上述多个单元的划分仅是一种根据功能进行的逻辑划分,不作为对装置150具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,装置150在密钥获取的过程中所执行的大致流程是相同的。例如,上述多个单元也可以变换为通信单元以及处理单元,所述通信单元用于实现发送单元1501和接收单元1502的功能。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元执行相应的流程从而实现相应功能。
在一种可能的实施方式中,该发送单元1501,还用于若根据第二PSK和第一新鲜性参数验证第一身份认证信息通过,则向第一节点发送第一认证响应消息,该第一认证响应消息中包括第二身份认证信息,该第二身份认证信息为根据第二PSK和第四新鲜性参数生成的;
该接收单元1502,还用于接收来自第一节点的第一关联响应消息。
可以看出,由于PSK是上述装置150与第一节点之间共享的秘密值,因此上述装置150中的第二PSK通常与第一节点中的第一PSK具有相同的值。而第一身份认证信息是第一节点根据第一PSK和第一新鲜性参数来生成的,因此上述装置150可以根据第二PSK和第一新鲜性参数来验证第一节点的身份认证信息,若上述装置150中存储的第二PSK不能验证通过,说明第一节点身份不可信,从而可以避免上述装置150与不可信的节点进行关联,提高了上述装置150通信的安全性。相应的,上述装置150也根据第二PSK和第四新鲜性参数来生成第二身份认证信息,用于第一节点来验证上述装置150的身份,在双方身份认证通过后,才允许与对端的节点进行通信,提高了节点通信的安全性。
在又一种可能的实施方式中,该处理单元1503,具体用于根据第一PSK与第一节点的身份标识的对应关系,获取第二PSK。
可以看出,上述装置150中存在第二PSK与第一节点的身份标识的对应关系,可以说明该上述装置150之前已经关联过第一节点或者第二节点中预先配置有第一节点的身份标识对应的第二PSK,因此上述装置150可以根据对应关系获取第二PSK。
在又一种可能的实施方式中,该处理单元1503,具体用于:
通过第二对应关系集合,根据第二PSK与第一节点的身份标识的对应关系,获取第二PSK。
可以看出,上述装置150可以通过对应关系集合的形式来存储第二PSK与第一节点的身份标识的对应关系。
在又一种可能的实施方式中,该处理单元,具体用于根据第一新鲜性参数和第四新鲜性参数生成第二PSK,该第一新鲜性参数为上述第二新鲜性参数,该第四新鲜性参数为上述第三新鲜性参数。
可以看出,第二PSK是根据第一关联请求消息中的第一新鲜性参数和第一认证请求消息中的第四新鲜性参数来生成的。通常来说,在上述装置150与第一节点第一次进行关联时或者上述装置150删除了对应关系的情况下,上述装置150中不存在与第一节点的身份标识对应的第二PSK,因此上述装置150可以根据第一新鲜性参数和第四新鲜性参数生成新的第二PSK,用于验证第一节点的身份。
在又一种可能的实施方式中,该处理单元1503,还用于获取第三确认指示信息,该第三确认指示信息表征允许生成第二PSK。
可以看出,在生成新的第二PSK时,需要获得用户的确认。这样一来,若攻击者使用自己的身份标识连接上述装置150时,由于上述装置150中没有攻击者的身份标识对应的PSK,因此可以由用户去验证新节点的身份,在获取第三确认指示信息后,才生成第二PSK,从而避免了上述装置150与不可信的节点关联,保证了上述装置150通信的安全性。
在又一种可能的实施方式中,该处理单元1503,具体用于根据第一新鲜性参数、第四新鲜性参数和第一口令生成第二PSK,该第一口令为上述第一节点的接入密码。
可以看出,在第一口令为第一节点的接入密码的情况下,上述装置150是通过输入的第一口令来连接第一节点的,因此通过第一口令来参与生成第二PSK,可以使得没有获取到第一口令的攻击者无法破解第二PSK,从而可以避免上述装置150与没有获取到第一口令的攻击者进行关联。
在又一种可能的实施方式中,该处理单元1503,具体用于根据第一新鲜性参数、第四新鲜性参数、第一口令以及上述第二密钥协商算法参数生成第二PSK。
可以看出,第一节点在第一认证请求消息中携带第二密钥协商算法参数,该第一密钥协商算法参数是基于第一密钥协商算法确定的。上述装置150可以基于该第一密钥协商算法,根据第二密钥协商算法参数、第一新鲜性参数、第四新鲜性参数和第一口令和确定第二PSK。这样一来,即使攻击者在之后冒用了第一节点的身份信息,也获取了生成第二PSK时使用的第一新鲜性参数和第四新鲜性参数,也无法破解PSK,因此无法与上述装置150进行通信,提高了上述装置通信的安全性。
在又一种可能的实施方式中,该第一认证请求消息中还包括第二密钥协商算法参数;该处理单元1503,具体用于:
根据第一新鲜性参数、第四新鲜性参数、第一口令和中间密钥生成所述第二PSK,该第一口令为接入密码;其中,该中间密钥为根据第一新鲜性参数、第四新鲜性参数以及上述第二密钥协商算法参数生成的。在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数,该第一密钥协商算法参数为基于第一密钥协商算法根据第四密钥协商算法参数确定的;该第一认证请求消息中还包括第二密钥协商算法参数,该第二密钥协商算法参数为第一节点基于该第一密钥协商算法,根据第三密钥协商算法参数确定的;该处理单元1503,具体用于:
根据上述第二密钥协商算法参数和上述第四密钥协商算法参数确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第二PSK。
可以看出,第一关联请求消息中的第一密钥协商算法参数是基于上述装置150的私钥(即第四密钥协商算法参数)生成的,上述装置150接收来自第一节点的第二密钥协商算法参数以后,第二节点根据第二密钥协商算法参数和上述装置150的私钥(即第四密钥协商算法参数)确定第一中间密钥,该第一中间密钥即为第一节点与上述装置之间通过密钥协商得到的秘密值。上述装置150再根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第二PSK。
在又一种可能的实施方式中,该第一认证请求消息中还包括第二密钥协商算法参数,该第二密钥协商算法参数为基于第一密钥协商算法确定的;该处理单元1503,具体用于:
获取第四密钥协商算法参数;
基于第一密钥协商算法,根据第二密钥协商算法参数和第四密钥协商算法参数确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数和第一中间密钥确定第二中间密钥;
根据第一新鲜性参数、第四新鲜性参数、第一口令和第二中间密钥生成第二PSK。
在又一种可能的实施方式中,该处理单元1503,还用于保存第一节点的身份标识与第二PSK对应关系。
可以看出,在生成第二PSK后,上述装置150保存第一节点的身份标识与第二PSK的对应关系,当之后再与第一节点关联时,可以根据对应关系获取第二PSK而无需重新生成PSK。
在又一种可能的实施方式中,该处理单元1503,还用于若第一口令更新,则删除第一节点的身份标识与第二PSK对应关系。
在又一种可能的实施方式中,该第一认证请求消息中还包括更新指示信息,该更新指示信息用于指示PSK的更新。
可以看出,在根据第一新鲜性参数和第四新鲜性参数生成第二PSK后,第一节点可以通过更新指示信息提醒上述装置150更新第二PSK,避免上述装置150使用之前的旧PSK来验证身份认证信息,从而避免验证失败,影响用户体验。
在又一种可能的实施方式中,该处理单元,还用于若根据第二PSK和第一新鲜性参数验证第一身份认证信息不通过,则根据第一新鲜性参数和第四新鲜性参数生成第四PSK;
该发送单元1501,还用于向第一节点发送第三认证响应消息,该第三认证响应消息包括第三身份认证信息,该第三身份认证信息为根据第四PSK和第四新鲜性参数生成的。
可以看出,在上述装置150根据对应关系来获取第二PSK时,若出现上述装置150验证第一身份认证信息不通过的情况,可能是由于第一节点中使用的新生成的PSK来生成的第一身份认证信息。因此,上述装置150中也根据第一新鲜性参数和第四新鲜性参数生成新的PSK(即第四PSK),根据新的PSK来重新发起认证,从而可以提高系统的稳定性。
在又一种可能的实施方式中,该接收单元1502,还用于接收来自第一节点的第三关联响应消息。
在又一种可能的实施方式中,该处理单元,还用于若根据第二PSK验证第一身份认证信息不通过,则获取第四确认指示信息,该第四确认指示信息表征允许生成第四PSK;
该处理单元,还用于根据第一新鲜性参数和第四新鲜性参数生成第四PSK。
在又一种可能的实施方式中,该处理单元1503,还用于若根据第二PSK和第一新鲜性参数验证第二身份认证信息不通过,则删除该第二PSK;
该发送单元1501,还用于向第一节点发送第二关联请求消息,该第二关联请求消息中包括第五新鲜性参数。
需要说明的是,各个单元的实现还可以对应参照图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例的相应描述。该装置150为图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例中的第二节点。
请参见图16,图16是本申请实施例提供的一种装置160的结构示意图,该装置160可以为带有数据收发能力的电子设备,也可以为带有数据收发能力的电子设备中的一个器件,例如芯片或者集成电路等。该装置160可以包括至少一个存储器1601、至少一个处理器1602和通信接口1603。进一步可选的,还可以包含总线1604,其中,存储器1601、处理器1602和通信接口1603通过总线1604相连。
其中,存储器1601用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器1601包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。
处理器1602是进行算术运算和/或逻辑运算的模块,具体可以是中央处理器(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)等处理模块中的一种或者多种的组合。
通信接口1603用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙等)接口。可选的,通信接口1603还可以包括与接口耦合的发射器(如射频发射器、天线等),或者接收器等。
该装置160中的处理器1602用于读取所述存储器1601中存储的计算机程序,用于执行前述的密钥获取方法,例如图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例所描述的密钥获取方法。
举例说明,该装置160中的处理器1602用于读取所述存储器1601中存储的计算机程序,用于执行以下操作:
通过该通信接口1603接收来自第二节点的第一关联请求消息,该第一关联请求消息包括第一新鲜性参数;
获取第一预共享密钥PSK;其中,该第一PSK对应第二节点的身份标识;该第一PSK为根据来自第二节点的第二新鲜性参数和来自上述装置160的第三新鲜性参数生成的PSK。进一步,该第一PSK用于验证第二节点的身份。
可以看出,PSK是上述装置160与第二节点之间共享的一个秘密值。上述装置160通过来自第二节点的第二新鲜性参数和来自上述装置160的第三新鲜性参数来生成第一PSK,并将所述第一PSK对应第二节点的身份标识,用来验证第二节点的身份(例如,第二节点根据PSK生成身份认证信息,第一节点通过第一PSK可以来验证第二节点的身份认证信息;再如,第二节点通过PSK(或者根据PSK推演出来的密钥)对消息内容进行加密或者完整性保护,第一节点可以通过第一PSK获取来自第二节点的消息内容)。这样一来,若攻击者想要冒用第二节点的身份标识来关联上述装置160时,由于生成第一PSK的第二新鲜性参数和第三新鲜性参数可以是在第一关联请求消息之前获取的,例如可以是上述装置160与第二节点第一次关联时获取的,由于之前获取的数据通常是难以被破解的,从而使得攻击者无法伪造PSK,因此无法通过上述装置160的身份验证,进而避免了上述装置160与不可信的节点连接,提高了上述装置160的通信安全性。
在一种可能的实施方式中,该处理器1602,还用于:
向第二节点发送第一认证请求消息,该第一认证请求消息包括第一身份认证信息和第四新鲜性参数,其中,该第一身份认证信息为根据第一PSK和第一新鲜性参数生成的。
可以看出,由于PSK是上述装置160与第二节点之间共享的秘密值,因此上述装置160中的第一PSK通常与第二节点中的第二PSK具有相同的值。上述装置160根据第一PSK和第一新鲜性参数来生成第一身份认证信息,使得第二节点可以根据第二PSK来验证上述装置160的身份,若第二节点中存储的第二PSK不能验证通过,从而可以避免第二节点与不可信的节点进行关联,提高了第二节点通信的安全性。
在又一种可能的实施方式中,该处理器1602,还用于:
通过上述通信接口1603接收来自第二节点的第一认证响应消息,该第一认证响应消息中包括第二身份认证信息;
若根据第一PSK和第四新鲜性参数验证第二身份认证信息通过,则通过上述通信接口1603向第二节点发送第一关联响应消息。
可以看出,在上述装置160与第二节点进行通信之前,上述装置160与第二节点先通过身份认证信息来确定双方的身份。在身份认证通过后,才允许进行通信,从而避免了不可信的节点接入,提高了节点通信的安全性。
在又一种可能的实施方式中,该处理器1602具体用于:
根据第一PSK与第二节点的身份标识的对应关系,获取第一PSK。
可以看出,上述装置160中存在第一PSK与第二节点的身份标识的对应关系,可以说明该第二节点之前已经关联过上述装置160或者上述装置160中预先配置有第二节点的身份标识对应的第一PSK,因此上述装置160可以根据对应关系获取第一PSK。
在又一种可能的实施方式中,该存储器1601中存在有第一对应关系集合;该处理器1602具体用于:
通过第一对应关系集合,根据第一PSK与第二节点的身份标识的对应关系,获取第一PSK。
可以看出,上述装置160可以通过对应关系集合的形式来存储第一PSK与第二节点的身份标识的对应关系。
在又一种可能的实施方式中,该处理器1602具体用于:
根据第一新鲜性参数和第四新鲜性参数生成第一PSK,第一新鲜性参数为上述第二新鲜性参数,第四新鲜性参数为上述第三新鲜性参数。
可以看出,第一PSK是根据第一关联请求消息中的第一新鲜性参数和来自上述装置160的第四新鲜性参数来生成的。通常来说,在上述装置160与第二节点第一次进行关联时或者上述装置160删除了对应关系的情况下,上述装置160中不存在与第二节点的身份标识对应的PSK,因此上述装置160可以根据第一新鲜性参数和第四新鲜性参数生成新的第一PSK,用于验证第二节点的身份。
在又一种可能的实施方式中,该装置还包括输入模块1605;该处理器1602,还用于:
通过输入模块1605获取第一确认指示信息,该第一确认指示信息表征允许第二节点与上述装置160关联。
可以看出,在生成新的第一PSK时,需要获得用户的确认。这样一来,若攻击者使用自己的身份标识连接上述装置160时,由于上述装置160中没有攻击者的身份标识对应的PSK,因此可以由用户去验证新节点的身份,在获取第一确认指示信息后,才生成第一PSK,从而避免了上述装置160与不可信的节点关联,保证了上述装置160通信的安全性。
在又一种可能的实施方式中,该处理器1602具体用于:
根据第一新鲜性参数、第四新鲜性参数和第一口令生成第一PSK,第一口令为上述装置160的接入密码。
可以看出,在第一口令为上述装置160的接入密码的情况下,第二节点是通过输入的第一口令来连接上述装置160的,因此通过第一口令来参与生成第一PSK,可以使得没有获取到第一口令的攻击者无法破解第一PSK,从而可以避免上述装置160与没有获取到第一口令的攻击者进行关联。
在又一种可能的实施方式中,第一关联请求消息中还包括第一密钥协商算法参数;该处理器1602具体用于:
根据第一新鲜性参数、第四新鲜性参数、第一口令以及第一密钥协商算法参数生成第一PSK。
可以看出,第二节点在第一关联请求消息中携带第一密钥协商算法参数,该第一密钥协商算法参数是基于第一密钥协商算法确定的。上述装置160可以基于该第一密钥协商算法,根据第一密钥协商算法参数、第一新鲜性参数、第四新鲜性参数和第一口令和确定第一PSK。这样一来,即使攻击者在之后冒用了第二节点的身份信息,也获取了生成第一PSK时使用的第一新鲜性参数和第四新鲜性参数,也无法破解第一PSK,因此无法与上述装置160进行通信,提高了上述装置160通信的安全性。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数;该处理器1602,具体用于:
根据第一新鲜性参数、第四新鲜性参数、第一口令和中间密钥生成第一PSK,该第一口令为接入密码;其中,该中间密钥为根据第一新鲜性参数、第四新鲜性参数以及上述第一密钥协商算法参数生成的。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数,该第一密钥协商算法参数为基于第一密钥协商算法确定的;该处理器1602具体用于:
确定第三密钥协商算法参数;
基于上述第一密钥协商算法,根据第一密钥协商算法和第三密钥协商算法确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第一PSK。
可以看出,上述装置160接收来自第二节点的第一密钥协商算法参数以后,确定第三密钥协商算法参数(或者说上述装置160的私钥)。上述装置160基于上述第一密钥协商算法,根据该第一密钥协商算法参数和第二密钥协商算法参数确定第一中间密钥,再根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第一PSK。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数,该第一密钥协商算法参数为基于第一密钥协商算法确定的;该处理器1602,具体用于:
获取第三密钥协商算法参数;
基于第一密钥协商算法,根据第一密钥协商算法参数和第三密钥协商算法参数确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数和第一中间密钥确定第二中间密钥;
根据第一新鲜性参数、所第四新鲜性参数、第一口令和第二中间密钥生成第一PSK。
在又一种可能的实施方式中,该处理器1602,还用于:
保存第二节点的身份标识与第一PSK对应关系。
可以看出,在生成第一PSK后,上述装置160保存第二节点的身份标识与第一PSK的对应关系,当之后第一节点再次接收来自第二节点的关联请求时,可以根据对应关系获取第一PSK而无需重新生成第一PSK。
在又一种可能的实施方式中,该处理器1602,还用于:
若第一口令更新,删除第二节点的身份标识与第一PSK对应关系。
在又一种可能的实施方式中,该第一认证请求消息中还包括更新指示信息,该更新指示信息用于指示PSK的更新。
可以看出,在根据第一新鲜性参数和第四新鲜性参数生成第一PSK后,上述装置160可以提醒第二节点更新PSK,避免在第二节点使用之前的旧PSK来验证身份认证信息,从而避免验证失败,影响用户体验。
在又一种可能的实施方式中,该处理器1602,还用于:
若根据第一PSK和第四新鲜性参数验证第二身份认证信息不通过,则根据第一新鲜性参数和第四新鲜性参数生成第三PSK;
通过通信接口1603向第二节点发送第二认证请求消息,该第二认证请求消息包括第三身份认证信息,其中,该第三身份认证信息为根据第三PSK和第一新鲜性参数生成的。
可以看出,在上述装置160根据对应关系来获取第一PSK的情况下,若出现上述装置160验证第二身份认证信息不通过的情况,可能是由于第二节点中使用的新生成的PSK来生成了第二身份认证信息。因此,上述装置160根据所述第一新鲜性参数和所述第四新鲜性参数生成新的PSK(即第三PSK),根据新的PSK来重新发起认证,从而可以提高系统的稳定性。
在又一种可能的实施方式中,该处理器1602具体用于:
若根据第一PSK和第四新鲜性参数验证第二身份认证信息不通过,则通过通信接口1603获取第二确认指示信息,该第二确认指示信息表征允许生成第三PSK;
根据第一新鲜性参数和第四新鲜性参数生成第三PSK。
在又一种可能的实施方式中,该处理器1602,还用于:
通过通信接口1603接收来自第二节点的第二认证响应消息,该第二认证响应消息中包括第四身份认证信息;
若根据第三PSK和第四新鲜性参数验证第四身份认证信息通过,则通过通信接口1603向第二节点发送第二关联响应消息。
可以看出,在上述装置160根据新的PSK来重新发起认证后,再接收第二节点发送的第四身份认证信息,若验证第四身份认证信息通过,说明第二节点的身份可信,从而可以允许与第二节点进行通信。
需要说明的是,上述各个模块的实现还可以对应参照图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例的相应描述。该装置160为图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例中的第一节点。
请参见图17,图17是本申请实施例提供的一种装置170的结构示意图,该装置170可以为带有数据收发能力的电子设备,也可以为带有数据收发能力的电子设备中的一个器件,例如芯片或者集成电路等。该装置170可以包括至少一个存储器1701、至少一个处理器1702和通信接口1703。进一步可选的,还可以包含总线1704,其中,存储器1701、处理器1702和通信接口1703通过总线1704相连。
其中,存储器1701用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器1701包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。
处理器1702是进行算术运算和/或逻辑运算的模块,具体可以是CPU、GPU、MPU、ASIC、FPGA、CPLD等处理模块中的一种或者多种的组合。
通信接口1703用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙等)接口。可选的,通信接口1703还可以包括与接口耦合的发射器(如射频发射器等),或者接收器等。
该装置170中的处理器1702用于读取所述存储器1701中存储的计算机程序,用于执行前述的密钥获取方法,例如图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例所描述的密钥获取方法。
举例说明,装置170中的处理器1702用于读取所述存储器1701中存储的计算机程序,用于执行以下操作:
通过通信接口1703向第一节点发送第一关联请求消息,该第一关联请求消息中包括第一新鲜性参数;
通过通信接口1703接收来自第一节点的第一认证请求消息,该第一认证请求消息中包括第四新鲜性参数;
获取第二PSK;其中,该第二PSK对应第一节点的身份标识;该第二PSK为根据来自上述装置170的第二新鲜性参数和来自第一节点的第三新鲜性参数生成的PSK,该第二PSK用于验证第一节点的身份。
可以看出,PSK是上述装置170与第一节点之间共享的一个秘密值。上述装置170通过第二新鲜性参数和来自上述装置170的第三新鲜性参数来生成第二PSK,并将第二PSK对应第一节点的身份标识,用来验证第一节点的身份(例如,第一节点根据PSK生成身份认证信息,第二节点通过第二PSK可以来验证第一节点的身份认证信息;再如,第一节点通过PSK(或者根据PSK推演出来的密钥)对消息内容进行加密或者完整性保护,第二节点可以通过第一PSK获取来自第二节点的消息内容)。这样一来,若攻击者想要冒用第一节点的身份标识与上述装置170关联时,由于生成第二PSK的第二新鲜性参数和第三新鲜性参数可以是在第一关联请求消息之前获取的,例如可以是上述装置170与第一节点第一次关联时获取的,由于之前获取的数据通常是难以被破解的,从而使得攻击者无法伪造PSK,因此无法通过上述装置170的身份验证,进而避免了上述装置170与不可信的节点关联,提高了上述装置170的通信安全性。
在一种可能的实施方式中,该处理器1702,还用于:
若根据第二PSK和第一新鲜性参数验证第一身份认证信息通过,则通过通信接口1703向第一节点发送第一认证响应消息,该第一认证响应消息中包括第二身份认证信息,该第二身份认证信息为根据第二PSK和第四新鲜性参数生成的;
通过通信接口1703接收来自第一节点的第一关联响应消息。
可以看出,由于PSK是上述装置170与第一节点之间共享的秘密值,因此上述装置170中的第二PSK通常与第一节点中的第一PSK具有相同的值。而第一身份认证信息是第一节点根据第一PSK和第一新鲜性参数来生成的,因此上述装置170可以根据第二PSK和第一新鲜性参数来验证第一节点的身份认证信息,若上述装置170中存储的第二PSK不能验证通过,说明第一节点身份不可信,从而可以避免上述装置170与不可信的节点进行关联,提高了上述装置170通信的安全性。相应的,上述装置170也根据第二PSK和第四新鲜性参数来生成第二身份认证信息,用于第一节点来验证上述装置170的身份,在双方身份认证通过后,才允许与对端的节点进行通信,提高了节点通信的安全性。
在又一种可能的实施方式中,该处理器1702具体用于:
根据第二PSK与第一节点的身份标识的对应关系,获取第二PSK。
可以看出,上述装置170中存在第二PSK与第一节点的身份标识的对应关系,可以说明该上述装置170之前已经关联过第一节点或者第二节点中预先配置有第一节点的身份标识对应的第二PSK,因此上述装置170可以根据对应关系获取第二PSK。
在又一种可能的实施方式中,该存储器中存储有第二对应关系集合;该处理器1702具体用于:
通过第二对应关系集合,根据第二PSK与第一节点的身份标识的对应关系,获取第二PSK。
可以看出,上述装置170可以通过对应关系集合的形式来存储第二PSK与第一节点的身份标识的对应关系。
在又一种可能的实施方式中,该处理器1702具体用于:
根据第一新鲜性参数和第四新鲜性参数生成第二PSK,第一新鲜性参数为上述第二新鲜性参数,第四新鲜性参数为上述第三新鲜性参数。
可以看出,第二PSK是根据第一关联请求消息中的第一新鲜性参数和第一认证请求消息中的第四新鲜性参数来生成的。通常来说,在上述装置170与第一节点第一次进行关联时或者上述装置170删除了对应关系的情况下,上述装置170中不存在与第一节点的身份标识对应的第二PSK,因此上述装置170可以根据第一新鲜性参数和第四新鲜性参数生成新的第二PSK,用于验证第一节点的身份。
在又一种可能的实施方式中,上述装置170还包括输入模块1705;该处理器1702,还用于:
通过该输入模块1705获取第三确认指示信息,该第三确认指示信息表征允许生成第二PSK。
可以看出,在生成新的第二PSK时,需要获得用户的确认。这样一来,若攻击者使用自己的身份标识连接上述装置170时,由于上述装置170中没有攻击者的身份标识对应的PSK,因此可以由用户去验证新节点的身份,在获取第三确认指示信息后,才生成第二PSK,从而避免了上述装置170与不可信的节点关联,保证了上述装置170通信的安全性。
在又一种可能的实施方式中,该处理器1702具体用于:
根据第一新鲜性参数、第四新鲜性参数和第一口令生成第二PSK,该第一口令为所述装置的接入密码。
可以看出,在第一口令为第一节点的接入密码的情况下,上述装置170是通过输入的第一口令来连接第一节点的,因此通过第一口令来参与生成第二PSK,可以使得没有获取到第一口令的攻击者无法破解第二PSK,从而可以避免上述装置170与没有获取到第一口令的攻击者进行关联。
在又一种可能的实施方式中,第一认证请求消息中还包括第二密钥协商算法参数;该处理器1702具体用于:
根据第一新鲜性参数、第四新鲜性参数、第一口令以及上述第二密钥协商算法参数生成第二PSK。
可以看出,第一节点在第一认证请求消息中携带第二密钥协商算法参数,该第一密钥协商算法参数是基于第一密钥协商算法确定的。上述装置170可以基于该第一密钥协商算法,根据第二密钥协商算法参数、第一新鲜性参数、第四新鲜性参数和第一口令和确定第二PSK。这样一来,即使攻击者在之后冒用了第一节点的身份信息,也获取了生成第二PSK时使用的第一新鲜性参数和第四新鲜性参数,也无法破解PSK,因此无法与上述装置170进行通信,提高了上述装置170通信的安全性。
在又一种可能的实施方式中,该第一认证请求消息中还包括第二密钥协商算法参数;该处理器1702,具体用于:
根据第一新鲜性参数、第四新鲜性参数、第一口令和中间密钥生成所述第二PSK,该第一口令为接入密码;其中,该中间密钥为根据第一新鲜性参数、第四新鲜性参数以及上述第二密钥协商算法参数生成的。
在又一种可能的实施方式中,该第一关联请求消息中还包括第一密钥协商算法参数,该第一密钥协商算法参数为基于第一密钥协商算法根据第四密钥协商算法参数确定的;该第一认证请求消息中还包括第二密钥协商算法参数,该第二密钥协商算法参数为第一节点基于该第一密钥协商算法,根据第三密钥协商算法参数确定的;该处理器1702具体用于:
根据上述第二密钥协商算法参数和上述第四密钥协商算法参数确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第二PSK。
可以看出,第一关联请求消息中的第一密钥协商算法参数是根据第二节点的私钥(即第四密钥协商算法参数)生成的,上述装置170接收来自第一节点的第二密钥协商算法参数以后,上述装置根据第二密钥协商算法参数和上述装置170的私钥(即第四密钥协商算法参数)确定第一中间密钥,该第一中间密钥即为第一节点与上述装置之间通过密钥协商得到的秘密值。上述装置170再根据第一新鲜性参数、第四新鲜性参数、第一口令和第一中间密钥生成第二PSK。
在又一种可能的实施方式中,该第一认证请求消息中还包括第二密钥协商算法参数,该第二密钥协商算法参数为基于第一密钥协商算法确定的;该处理器1702,具体用于:
获取第四密钥协商算法参数;
基于第一密钥协商算法,根据第二密钥协商算法参数和第四密钥协商算法参数确定第一中间密钥;
根据第一新鲜性参数、第四新鲜性参数和第一中间密钥确定第二中间密钥;
根据第一新鲜性参数、第四新鲜性参数、第一口令和第二中间密钥生成第二PSK。
在又一种可能的实施方式中,该处理器1702,还用于:
保存第一节点的身份标识与第二PSK对应关系。
可以看出,在生成第二PSK后,上述装置170保存第一节点的身份标识与第二PSK的对应关系,当之后再与第一节点关联时,可以根据对应关系获取第二PSK而无需重新生成PSK。
在又一种可能的实施方式中,该处理器1702,还用于:
若第一口令更新,删除第一节点的身份标识与第二PSK对应关系。
在又一种可能的实施方式中,该第一认证请求消息中还包括更新指示信息,该更新指示信息用于指示PSK的更新。
可以看出,在根据第一新鲜性参数和第四新鲜性参数生成第二PSK后,第一节点可以通过更新指示信息提醒上述装置170更新第二PSK,避免上述装置170使用之前的旧PSK来验证身份认证信息,从而避免验证失败,影响用户体验。
在又一种可能的实施方式中,该处理器1702,还用于:
若根据第二PSK和第一新鲜性参数验证第一身份认证信息不通过,则根据第一新鲜性参数和第四新鲜性参数生成第四PSK;
通过通信接口1703向第一节点发送第三认证响应消息,该第三认证响应消息包括第三身份认证信息,该第三身份认证信息为根据第四PSK和第四新鲜性参数生成的。
可以看出,在上述装置170根据对应关系来获取第二PSK时,若出现上述装置170验证第一身份认证信息不通过的情况,可能是由于第一节点中使用的新生成的PSK来生成的第一身份认证信息。因此,上述装置170中也根据第一新鲜性参数和第四新鲜性参数生成新的PSK(即第四PSK),根据新的PSK来重新发起认证,从而可以提高系统的稳定性。
在又一种可能的实施方式中,该处理器1702,还用于:
通过通信接口1703接收来自第一节点的第三关联响应消息。
在又一种可能的实施方式中,上述装置170还包括输入模块1705;该处理器1702,还用于:
若根据第二PSK验证第一身份认证信息不通过,则通过该输入模块1705获取第四确认指示信息,该第四确认指示信息表征允许生成第四PSK;
根据第一新鲜性参数和第四新鲜性参数生成第四PSK。
在又一种可能的实施方式中,该处理器1702,还用于:
若根据第一PSK和第一新鲜性参数验证第二身份认证信息不通过,则删除该第二PSK;
通过通信接口1703向第一节点发送第二关联请求消息,第二关联请求消息中包括第五新鲜性参数。
需要说明的是,各个模块的实现还可以对应参照图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例的相应描述。该装置170为图5、图8、图9、图10、图11、图12或图13所示的任意一个实施例中的第二节点。
参见图18,图18是本申请实施例提供的一种密钥获取系统,该密钥获取系统可以基于图3所示的架构来实现,该密钥获取系统包括第一节点301和第二节点302,其中,该第一节点可以为上述装置140或者上述装置160,该第二节点可以为上述装置150或者上述装置170。其中第一节点301中存储有第二节点302的身份标识对应的第一PSK,且该第一PSK是在第一节点301中预先配置的;
若第二节点302更换为第三节点1801,第一节点301可以通过图5、图8、图9或者图10所示的任意一个实施例中的第二节点一侧所述的方法请求关联第三节点1801。
例如,在车辆的CDC为第一节点,车辆的旧麦克风为第二节点302的情况下,若更换车辆的旧麦克风302为新麦克风1801,由于旧麦克风302与CDC的之间的PSK是预先配置的,且新麦克风1801不能接收用户的操作指示,因此CDC可以根据图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例中第二节点一侧的方法获取新的PSK。进一步的,若新麦克风1801存在第二口令,CDC可以先通过该第二口令接入新麦克风1801,然后根据图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例中第二节点一侧的方法获取新的PSK。
在又一种可能的实现方式中,在第一节点301为CDC的情况下,若更换第二节点302为第三节点1801,而第三节点1801存在第二口令,则CDC可以获取用户输入的第二口令接入第三节点,而第三节点可以通过图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例中第二节点一侧的方法获取新的PSK。
参见图19,图19是本申请实施例提供的另一种密钥获取系统,该密钥获取系统可以基于图3所示的架构来实现,该密钥获取系统包括第一节点301和第二节点302,其中,该第一节点可以为上述装置140或者上述装置160,该第二节点可以为上述装置150或者上述装置170。第一节点301中存储有第二节点302的身份标识与第一PSK的对应关系,且该第一PSK是在第一节点301中预先配置的;若第一节点301更换为第四节点1901,第四节点1901可以获取第一节点301中的对应关系,从而获取第二节点302的身份标识对应的第二PSK。
例如,在车辆的CDC为第一节点301的情况下,若车辆更换CDC时,可以在新的CDC1901上配置旧的CDC已保存的第二节点302的身份标识与第一PSK的对应关系,配置的方式可以是通过计算机存储介质从旧的CDC中拷贝到新的CDC上,也可以是新的CDC接收来自旧的CDC的对应关系。
可选的,若第二节点302中存在有第一节点301的设备标识与第二PSK的对应关系,且该第二PSK是在第二节点302中预先配置的;在更换第一节点301为第四节点1901后,第二节点可以通过管理接口更新对应关系,将第四节点1901的身份标识对应上述第二PSK。
例如,第一节点301为车辆的CDC,第二节点302为车辆的音响,音响中保存有该CDC301的身份标识与第二PSK的对应关系。若车辆更换CDC,可以通过诊断接口(On BoardDiagnostics,OBD)更新第二节点302中的对应关系,将第二PSK对应与新的CDC1901。
再如,第一节点301为车辆的CDC,第二节点302为车辆的电子钥匙,电子钥匙中保存有该CDC301的身份标识与第二PSK的对应关系。若车辆更换CDC为新的CDC1901,则第二节点302可以通过空中下载(Over The Air,OTA)更新第二节点302中的对应关系,将第二PSK对应与新的CDC1901。其中,OTA是通过移动通信的空中接口实现对节点进行远程管理的技术。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例所述的方法。
本申请实施例还提供了一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所示接口电路用于为所述至少一个处理器提供信息输入/输出,所述至少一个存储器中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例所述的密钥获取方法。
本申请实施例还提供一种智能座舱产品,所述智能座舱产品包括第一节点(例如,汽车座舱域控制器CDC),所述第一节点为图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例中的第一节点。进一步的,所述智能座舱产品还包括第二节点(例如,摄像头、屏幕、麦克风、音响、雷达、电子钥匙、无钥匙进入及启动系统控制器等模块中的至少一个),所述第二节点为图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例中的第二节点。
本申请实施例还提供一种车辆,所述车辆包括第一节点(例如,汽车座舱域控制器CDC)。进一步的,所述车辆还包括第二节点(例如,摄像头、屏幕、麦克风、音响、雷达、电子钥匙、无钥匙进入或启动系统控制器等模块中的至少一个),其中上述第一节点为图5、图6、图7或图8所示任意一种实施例中的第一节点,上述第二节点为图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例中的第二节点。本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在一个或多个处理器上运行时,可以执行如图5、图8、图9、图10、图11、图12或图13所示的任意一种实施例所述的密钥更新方法。可替换的,上述车辆还可以替换为无人机、机器人等智能终端或者运输工具。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,可以全部或部分地实现本申请实施例所描述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请方法实施例中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请装置实施例中的模块可以根据实际需要进行合并、划分和删减。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。

Claims (59)

1.一种密钥获取方法,其特征在于,包括:
接收来自第二节点的第一关联请求消息,所述第一关联请求消息包括第一新鲜性参数;
获取第一预共享密钥PSK;
向所述第二节点发送第一认证请求消息,所述第一认证请求消息包括第一身份认证信息和第四新鲜性参数,其中,所述第一身份认证信息为根据所述第一PSK和第一新鲜性参数生成的。
2.根据权利要求1所述的方法,其特征在于,所述第一PSK为根据来自所述第二节点的第二新鲜性参数和来自第一节点的第三新鲜性参数生成的PSK。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收来自所述第二节点的第一认证响应消息,所述第一认证响应消息中包括第二身份认证信息;
若根据所述第一PSK和所述第四新鲜性参数验证所述第二身份认证信息通过,向所述第二节点发送第一关联响应消息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述获取第一预共享密钥PSK,包括:
根据所述第一PSK与所述第二节点的身份标识的对应关系,获取所述第一PSK。
5.根据权利要求2或3所述的方法,其特征在于,所述获取第一预共享密钥PSK,包括:
根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第一PSK;
其中,所述第一新鲜性参数为所述第二新鲜性参数,所述第四新鲜性参数为所述第三新鲜性参数。
6.根据权利要求5所述的方法,其特征在于,在所述根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第一PSK之前,还包括:
获取第一确认指示信息,所述第一确认指示信息表征允许与所述第二节点关联。
7.根据权利要求5或6所述的方法,其特征在于,所述根据所述第一新鲜性参数和第四新鲜性参数生成所述第一PSK,包括:
根据所述第一新鲜性参数、所述第四新鲜性参数和第一口令生成所述第一PSK,所述第一口令为接入密码。
8.根据权利要求5或6所述的方法,其特征在于,所述第一关联请求消息中还包括第一密钥协商算法参数;所述根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第一PSK,包括:
根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令以及所述第一密钥协商算法参数生成所述第一PSK,所述第一口令为接入密码。
9.根据权利要求5或6所述的方法,其特征在于,所述第一关联请求消息中还包括第一密钥协商算法参数;所述根据所述第一新鲜性参数和所述第四新鲜性参数生成第一PSK,包括:
根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令和中间密钥生成所述第一PSK,所述第一口令为接入密码;其中,所述中间密钥为根据所述第一新鲜性参数、所述第四新鲜性参数和所述第一密钥协商算法参数生成的。
10.根据权利要求7-9中任一项所述的方法,其特征在于,所述方法还包括:
若所述第一口令更新,删除所述第二节点的身份标识与所述第一PSK的对应关系。
11.根据权利要求5-9中任一项所述的方法,其特征在于,所述第一认证请求消息中还包括更新指示信息,所述更新指示信息用于指示PSK的更新。
12.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若根据所述第一PSK和所述第四新鲜性参数验证所述第二身份认证信息不通过,则根据所述第一新鲜性参数和所述第四新鲜性参数生成第三PSK;
向所述第二节点发送第二认证请求消息,所述第二认证请求消息包括第三身份认证信息,其中,所述第三身份认证信息为根据所述第三PSK和所述第一新鲜性参数生成的。
13.根据权利要求12所述的方法,其特征在于,所述若根据所述第一PSK和所述第四新鲜性参数验证所述第二身份认证信息不通过,则根据所述第一新鲜性参数和所述第四新鲜性参数生成第三PSK,包括:
若根据所述第一PSK和所述第四新鲜性参数验证所述第二身份认证信息不通过,则获取第二确认指示信息,所述第二确认指示信息表征允许生成所述第三PSK;
根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第三PSK。
14.根据权利要求12或13所述的方法,其特征在于,所述方法还包括:
接收来自所述第二节点的第二认证响应消息,所述第二认证响应消息中包括第四身份认证信息;
若根据所述第三PSK和所述第四新鲜性参数验证所述第四身份认证信息通过,则向所述第二节点发送第二关联响应消息。
15.一种密钥获取方法,其特征在于,包括:
向第一节点发送第一关联请求消息,所述第一关联请求消息中包括第一新鲜性参数;
接收来自所述第一节点的第一认证请求消息,所述第一认证请求消息中包括第四新鲜性参数;
获取第二预共享密钥PSK;所述第二PSK为根据来自第二节点的第二新鲜性参数和来自所述第一节点的第三新鲜性参数生成的PSK,所述第二PSK用于验证所述第一节点的身份。
16.根据权利要求15所述的方法,其特征在于,所述第一认证请求消息中还包括第一身份认证信息,所述方法还包括:
若根据所述第二PSK和所述第一新鲜性参数验证所述第一身份认证信息通过,则向所述第一节点发送第一认证响应消息,所述第一认证响应消息中包括第二身份认证信息,所述第二身份认证信息为根据所述第二PSK和所述第四新鲜性参数生成的;
接收来自所述第一节点的第一关联响应消息。
17.根据权利要求15或16所述的方法,其特征在于,所述获取第二预共享密钥PSK,包括:
根据所述第二PSK与所述第一节点的身份标识的对应关系,获取所述第二PSK。
18.根据权利要求15或16所述的方法,其特征在于,所述获取第二预共享密钥PSK,包括:
根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第二PSK;
其中,所述第一新鲜性参数为所述第二新鲜性参数,所述第四新鲜性参数为所述第三新鲜性参数。
19.根据权利要求18所述的方法,其特征在于,所述根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第二PSK之前,所述方法还包括:
获取第三确认指示信息,所述第三确认指示信息表征允许生成所述第二PSK。
20.根据权利要求18或19所述的方法,其特征在于,所述根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第二PSK,包括:
根据所述第一新鲜性参数、所述第四新鲜性参数和第一口令生成所述第二PSK,所述第一口令为所述第一节点的接入密码。
21.根据权利要求18或19所述的方法,其特征在于,所述第一认证请求消息中还包括第二密钥协商算法参数;所述根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第二PSK,包括:
根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令以及所述第二密钥协商算法参数生成所述第二PSK,所述第一口令为所述第一节点的接入密码。
22.根据权利要求18或19所述的方法,其特征在于,所述第一认证请求消息中还包括第二密钥协商算法参数;所述根据所述第一新鲜性参数和所述第四新鲜性参数生成第二PSK,包括:
根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令和中间密钥生成所述第二PSK,所述第一口令为接入密码;其中,所述中间密钥为根据所述第一新鲜性参数、所述第四新鲜性参数和所述第二密钥协商算法参数生成的。
23.根据权利要求20-22中任一项所述的方法,其特征在于,所述方法还包括:
若所述第一口令更新,则删除所述第一节点的身份标识与所述第二PSK对应关系。
24.根据权利要求18-23中任一项所述的方法,其特征在于,所述第一认证请求消息中还包括更新指示信息,所述更新指示信息用于指示PSK的更新。
25.根据权利要求17所述的方法,其特征在于,所述方法还包括:
若根据所述第二PSK和所述第一新鲜性参数验证所述第一身份认证信息不通过,则根据所述第一新鲜性参数和所述第四新鲜性参数生成第四PSK;
向所述第一节点发送第三认证响应消息,所述第三认证响应消息包括第三身份认证信息,所述第三身份认证信息为根据所述第四PSK和所述第四新鲜性参数生成的。
26.根据权利要求25所述的方法,其特征在于,所述方法还包括:
接收来自所述第一节点的所述第三关联响应消息。
27.根据权利要求25所述的方法,其特征在于,所述若所述第二节点根据第二PSK验证所述第一身份认证信息不通过,则所述第二节点根据所述第一新鲜性参数和所述第四新鲜性参数生成第四PSK,包括:
若根据第二PSK验证所述第一身份认证信息不通过,则获取第四确认指示信息,所述第四确认指示信息表征允许生成所述第四PSK;
根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第四PSK。
28.根据权利要求17所述的方法,其特征在于,所述方法还包括:
若根据所述第二PSK和所述第一新鲜性参数验证所述第二身份认证信息不通过,则删除所述第二PSK;
向第一节点发送第二关联请求消息,所述第二关联请求消息中包括第五新鲜性参数。
29.一种密钥获取装置,其特征在于,包括:
接收单元,用于接收来自第二节点的第一关联请求消息,所述第一关联请求消息包括第一新鲜性参数;
处理单元,用于获取第一预共享密钥PSK;
发送单元,用于向所述第二节点发送第一认证请求消息,所述第一认证请求消息包括第一身份认证信息和第四新鲜性参数,其中,所述第一身份认证信息为根据所述第一PSK和第一新鲜性参数生成的。
30.根据权利要求29所述的装置,其特征在于,所述第一PSK为根据来自所述第二节点的第二新鲜性参数和来自第一节点的第三新鲜性参数生成的PSK。
31.根据权利要求30所述的装置,其特征在于,所述接收单元,还用于接收来自所述第二节点的第一认证响应消息,所述第一认证响应消息中包括第二身份认证信息;
所述发送单元,还用于若根据所述第一PSK和所述第四新鲜性参数验证所述第二身份认证信息通过,则向所述第二节点发送第一关联响应消息,所述第一关联响应消息表征允许与所述第二节点通信。
32.根据权利要求29-31任一项所述的装置,其特征在于,所述处理单元,具体用于根据所述第一PSK与所述第二节点的身份标识的对应关系,获取所述第一PSK。
33.根据权利要求30或31所述的装置,其特征在于,所述处理单元,具体用于根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第一PSK;其中,所述第一新鲜性参数为所述第二新鲜性参数,所述第四新鲜性参数为所述第三新鲜性参数。
34.根据权利要求33所述的装置,其特征在于,所述处理单元,还用于获取第一确认指示信息,所述第一确认指示信息表征允许与所述第二节点关联。
35.根据权利要求33或34所述的装置,其特征在于,所述处理单元,具体用于根据所述第一新鲜性参数、所述第四新鲜性参数和第一口令生成所述第一PSK,所述第一口令为所述装置的接入密码。
36.根据权利要求33或34所述的装置,其特征在于,所述第一关联请求消息中还包括第一密钥协商算法参数;所述处理单元,具体用于根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令以及所述第一密钥协商算法参数生成所述第一PSK,所述第一口令为所述装置的接入密码。
37.根据权利要求33或34所述的装置,其特征在于,所述第一关联请求消息中还包括第一密钥协商算法参数;所述处理单元,具体用于:
根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令和中间密钥生成所述第一PSK,所述第一口令为接入密码;其中,所述中间密钥为根据所述第一新鲜性参数、所述第四新鲜性参数和所述第一密钥协商算法参数生成的。
38.根据权利要求35-37任一项所述的装置,其特征在于,所述处理单元,还用于若所述第一口令更新,则删除所述第二节点的身份标识与所述第一PSK对应关系。
39.根据权利要求33-38中任一项所述的装置,其特征在于,所述第一认证请求消息中还包括更新指示信息,所述更新指示信息用于指示PSK的更新。
40.根据权利要求32所述的装置,其特征在于,所述处理单元,还用于若所述第一节点根据所述第一PSK和所述第四新鲜性参数验证所述第二身份认证信息不通过,则根据所述第一新鲜性参数和所述第四新鲜性参数生成第三PSK;
所述发送单元,还用于向所述第二节点发送第二认证请求消息,所述第二认证请求消息包括第三身份认证信息,其中,所述第三身份认证信息为根据所述第三PSK和所述第一新鲜性参数生成的。
41.根据权利要求40所述的装置,其特征在于,所述处理单元,还用于若根据所述第一PSK和所述第四新鲜性参数验证所述第二身份认证信息不通过,则获取第二确认指示信息,所述第二确认指示信息表征允许生成所述第三PSK;
所述处理单元,还用于根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第三PSK。
42.根据权利要求40或41所述的装置,其特征在于,所述接收单元,还用于所述接收来自所述第二节点的第二认证响应消息,所述第二认证响应消息中包括第四身份认证信息;
所述发送单元,还用于若根据所述第三PSK和所述第四新鲜性参数验证所述第四身份认证信息通过,则向所述第二节点发送第二关联响应消息。
43.一种密钥获取装置,其特征在于,包括:
发送单元,用于向第一节点发送第一关联请求消息,所述第一关联请求消息中包括第一新鲜性参数;
接收单元,用于接收来自所述第一节点的第一认证请求消息,所述第一认证请求消息中包括第四新鲜性参数;
处理单元,用于获取第二PSK;所述第二PSK为根据来自所述装置的第二新鲜性参数和来自所述第一节点的第三新鲜性参数生成的PSK,所述第二PSK用于验证所述第一节点的身份。
44.根据权利要求43所述的装置,其特征在于,所述发送单元,还用于若根据所述第二PSK和所述第一新鲜性参数验证所述第一身份认证信息通过,则向所述第一节点发送第一认证响应消息,所述第一认证响应消息中包括第二身份认证信息,所述第二身份认证信息为根据所述第二PSK和所述第四新鲜性参数生成的;
所述接收单元,还用于接收来自所述第一节点的第一关联响应消息。
45.根据权利要求43或44所述的装置,其特征在于,所述处理单元,具体用于根据所述第一PSK与所述第一节点的身份标识的对应关系,获取所述第二PSK。
46.根据权利要求43或44所述的装置,其特征在于,所述处理单元,具体用于根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第二PSK;其中,所述第一新鲜性参数为所述第二新鲜性参数,所述第四新鲜性参数为所述第三新鲜性参数。
47.根据权利要求46所述的装置,其特征在于,所述处理单元,还用于获取第三确认指示信息,所述第三确认指示信息表征允许生成所述第二PSK。
48.根据权利要求46或47所述的装置,其特征在于,所述处理单元,具体用于根据所述第一新鲜性参数、所述第四新鲜性参数和第一口令生成所述第二PSK,所述第一口令为所述第一节点的接入密码。
49.根据权利要求46或47所述的装置,其特征在于,所述第一认证请求消息中还包括第二密钥协商算法参数;所述处理单元,具体用于根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令以及所述第二密钥协商算法参数生成所述第二PSK,所述第一口令为所述第一节点的接入密码。
50.根据权利要求46或47所述的装置,其特征在于,所述第一认证请求消息中还包括第二密钥协商算法参数;所述处理单元,具体用于:
根据所述第一新鲜性参数、所述第四新鲜性参数、第一口令和中间密钥生成所述第二PSK,所述第一口令为接入密码;其中,所述中间密钥为根据所述第一新鲜性参数、所述第四新鲜性参数和所述第二密钥协商算法参数生成的。
51.根据权利要求48-50中任一项所述的装置,其特征在于,所述处理单元,还用于若所述第一口令更新,则删除所述第一节点的身份标识与所述第二PSK对应关系。
52.根据权利要求46-51任一项所述的装置,其特征在于,所述第一认证请求消息中还包括更新指示信息,所述更新指示信息用于指示PSK的更新。
53.根据权利要求45所述的装置,其特征在于,所述处理单元,还用于若根据所述第二PSK和所述第一新鲜性参数验证所述第一身份认证信息不通过,则根据所述第一新鲜性参数和所述第四新鲜性参数生成第四PSK;
所述发送单元,还用于向所述第一节点发送第三认证响应消息,所述第三认证响应消息包括第三身份认证信息,所述第三身份认证信息为根据所述第四PSK和所述第四新鲜性参数生成的。
54.根据权利要求53所述的装置,其特征在于,所述接收单元,还用于接收来自所述第一节点的所述第三关联响应消息。
55.根据权利要求53或54所述的装置,其特征在于,所述处理单元,还用于若根据第二PSK验证所述第一身份认证信息不通过,则获取第四确认指示信息,所述第四确认指示信息表征允许生成所述第四PSK;
所述处理单元,还用于根据所述第一新鲜性参数和所述第四新鲜性参数生成所述第四PSK。
56.根据权利要求45所述的装置,其特征在于,所述处理单元,还用于若根据所述第二PSK和所述第一新鲜性参数验证所述第二身份认证信息不通过,则删除所述第一节点的身份标识与所述第二PSK对应关系;
所述发送单元,还用于向第一节点发送第二关联请求消息,所述第二关联请求消息中包括第五新鲜性参数。
57.一种密钥获取装置,其特征在于,所述装置包括至少一个处理器和通信接口,所述至少一个处理器用于调用至少一个存储器中存储的计算机程序,以使得所述装置实现如权利要求1-28中任一项所述的方法。
58.一种密钥获取系统,其特征在于,包括:
第一节点,所述第一节点为权利要求29-42任一项所述的密钥获取装置;
第二节点,所述第二节点为权利要求43-56中任一项所述的密钥获取装置。
59.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如权利要求1-28中任一项所述的方法。
CN202310200972.4A 2020-05-29 2020-05-29 一种密钥获取方法及相关装置 Pending CN116437323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310200972.4A CN116437323A (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/CN2020/093534 WO2021237746A1 (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置
CN202310200972.4A CN116437323A (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置
CN202080015291.5A CN113455024B (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080015291.5A Division CN113455024B (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置

Publications (1)

Publication Number Publication Date
CN116437323A true CN116437323A (zh) 2023-07-14

Family

ID=77808760

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202310208271.5A Pending CN116390064A (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置
CN202080015291.5A Active CN113455024B (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置
CN202310200972.4A Pending CN116437323A (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310208271.5A Pending CN116390064A (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置
CN202080015291.5A Active CN113455024B (zh) 2020-05-29 2020-05-29 一种密钥获取方法及相关装置

Country Status (7)

Country Link
US (1) US20230099065A1 (zh)
EP (1) EP4149136A4 (zh)
JP (1) JP2023527534A (zh)
KR (1) KR20230014740A (zh)
CN (3) CN116390064A (zh)
MX (1) MX2022015023A (zh)
WO (1) WO2021237746A1 (zh)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070101122A1 (en) * 2005-09-23 2007-05-03 Yile Guo Method and apparatus for securely generating application session keys
US8578159B2 (en) * 2006-09-07 2013-11-05 Motorola Solutions, Inc. Method and apparatus for establishing security association between nodes of an AD HOC wireless network
CN102595395A (zh) * 2011-01-14 2012-07-18 中兴通讯股份有限公司 一种中继节点的认证方法及系统
CN104144424B (zh) * 2013-05-07 2018-05-11 华为终端(东莞)有限公司 一种设备之间建立连接的方法、配置设备和无线设备
CN105323754B (zh) * 2014-07-29 2019-02-22 北京信威通信技术股份有限公司 一种基于预共享密钥的分布式鉴权方法
US10158991B2 (en) * 2016-03-17 2018-12-18 M2MD Technologies, Inc. Method and system for managing security keys for user and M2M devices in a wireless communication network environment
WO2018084081A1 (ja) * 2016-11-02 2018-05-11 日本電気株式会社 端末装置、コアネットワークノード、基地局、セキュリティゲートウェイ、装置、方法、プログラム及び記録媒体
CN108347417B (zh) * 2017-01-24 2020-08-07 华为技术有限公司 一种网络认证方法、用户设备、网络认证节点及系统
JP2019195116A (ja) * 2018-05-01 2019-11-07 ルネサスエレクトロニクス株式会社 データ転送システム及び転送方法
CN108964912B (zh) * 2018-10-18 2022-02-18 深信服科技股份有限公司 Psk生成方法、装置、用户设备、服务器和存储介质
CN109714164B (zh) * 2019-02-26 2021-11-30 安徽皖通邮电股份有限公司 一种IKEv2协商使用量子密钥的方法
CN110831000B (zh) * 2019-10-31 2023-04-07 迈普通信技术股份有限公司 一种安全接入方法、设备及系统
CN111200817B (zh) * 2020-01-07 2022-07-19 湖南大学 无线设备间密钥自动协商方法

Also Published As

Publication number Publication date
US20230099065A1 (en) 2023-03-30
JP2023527534A (ja) 2023-06-29
MX2022015023A (es) 2023-03-10
EP4149136A1 (en) 2023-03-15
CN116390064A (zh) 2023-07-04
WO2021237746A1 (zh) 2021-12-02
CN113455024B (zh) 2023-01-13
CN113455024A (zh) 2021-09-28
EP4149136A4 (en) 2023-06-14
KR20230014740A (ko) 2023-01-30

Similar Documents

Publication Publication Date Title
CN112740733B (zh) 一种安全接入方法及装置
EP2955897B1 (en) Key interaction method and device
WO2016161583A1 (zh) 一种gprs系统密钥增强的方法、sgsn设备、ue、hlr/hss及gprs系统
CN113545115B (zh) 一种通信方法及装置
CN105790942A (zh) 一种安全通话的方法、终端和系统
CN112994873B (zh) 一种证书申请方法及设备
CN106031120A (zh) 密钥管理
CN115104282B (zh) 一种密钥更新方法及相关装置
CN111357305B (zh) 可移动平台的通信方法、设备、系统及存储介质
CN113455024B (zh) 一种密钥获取方法及相关装置
CN112702241B (zh) 智能设备的通信方法、系统及其装置
CN112640506B (zh) 一种蓝牙节点配对方法及相关装置
CN111083681A (zh) 近距离通信数据加密方法、终端设备及车辆
CN113228722B (zh) 一种配对方法及装置
WO2023230929A1 (zh) 通信方法及相关装置
JP7497438B2 (ja) 証明書申請方法およびデバイス
CN115885496B (zh) 一种通信方法及相关装置
CN113285805B (zh) 一种通信方法及装置

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