CN103597773A - 用于与半连通设备群进行虚拟配对的方法和装置 - Google Patents
用于与半连通设备群进行虚拟配对的方法和装置 Download PDFInfo
- Publication number
- CN103597773A CN103597773A CN201180071493.2A CN201180071493A CN103597773A CN 103597773 A CN103597773 A CN 103597773A CN 201180071493 A CN201180071493 A CN 201180071493A CN 103597773 A CN103597773 A CN 103597773A
- Authority
- CN
- China
- Prior art keywords
- epoch
- node
- group node
- group
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/60—Context-dependent security
- H04W12/61—Time-dependent
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种特征提供了用于使客户端节点通过以下操作来与群节点建立会话密钥的方法:获得与当前历元相关联的历元身份值,其中获得历元身份值包括基于节点实际时间计算历元身份值或与该群节点协商历元身份值中的一者;使用共享机密密钥、历元身份值、以及与该群节点相关联的群节点身份来计算受限密钥;以及与该群节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。即使在当前历元期间该群节点与中央节点之间的通信仅间歇性地可用,也能在该群节点与客户端节点之间建立会话密钥。
Description
优先权要求
本专利申请要求于2010年6月11日提交的题为“Method and Apparatus forVirtual Pairing with a Group of Semi-Connected Devices(用于与半连通设备群进行虚拟配对的方法和装置)”的美国临时专利申请No.61/354,135的优先权,其全部内容通过援引明确纳入于此。
背景
领域
一种特征涉及通信系统,尤其涉及用于在客户端节点与群节点之间建立会话密钥而不要求该群节点与中央节点之间的每会话通信的改进方法。
背景
短程设备(诸如短程客户端节点)使用配对过程来建立可用于加密和认证的共享密钥。该过程一般涉及公钥密码运算,这会消耗许多中央处理单元(CPU)循环并由此消耗大量的电能。许多此类设备是由电池供电的,因此,频繁的配对会减少在电池需要再充电之前的时间。为了避免频繁的配对操作,可使用允许对设备进行“虚拟配对”的方案。
在虚拟配对中,客户端节点经由群节点之一与中央节点进行配对。假定存在一个中央节点,其具有充裕的计算能力、存储、以及物理安全性,并且存在与该中央节点处于通信中的某个数目的“群节点”。这些群节点可能是便携式的(例如,用蜂窝电话电池能量进行电池供电的)、和/或半便携式的(例如,推车上的台式计算机)、以及在物理上不固定的。客户端节点可以是由小电池(例如,小型纽扣电池)供电的很小的设备。客户端节点能与至少一个群节点直接通信,但或许不能与所有群节点直接通信,并且不能与中央节点直接通信。
在一个示例中,上述结构可用在医院中,其中该中央节点可以是信息技术(IT)基础设施的一部分并且位于安全位置。群节点可以在护士站的柜台上,或者可以是由护士或实验室技术员携带的由电池供电的便携式设备。客户端节点可以是患者标签。
简言之,虚拟配对就是客户端节点建立与中央节点共享的主密钥、但经由群节点之一间接地与中央节点通信的过程。那么,按照需要,客户端节点可与任何群节点建立会话密钥。用于建立会话密钥的该协议涉及群节点与中央节点通信。
在用于建立会话密钥的该协议期间,群节点与中央节点通信。然而,可能存在预料中的使用问题,其中此类通信可能仅间歇性地可用、或者具有非常有限的带宽。因此,需要能允许客户端节点与群节点之间的会话密钥建立而不要求该群节点与中央节点之间的每会话通信的装置和方法。另外,需要一种系统,其中丢失的、失窃的、受损的、退役的、和/或有故障的群节点能以简单且基本上被动的方式与该系统隔离。例如,不必寄托于节点服从消息,并且在基本上被动的系统中,无需技术员亲身去到节点处就能破坏、删除和/或替换密钥。
概述
在一种特征中,公开了一种在客户端节点处操作的用于在客户端节点与群节点之间建立会话密钥的方法,该方法包括:获得与当前历元相关联的历元身份值,其中获得历元身份值包括基于节点实际时间计算历元身份值或与该群节点协商历元身份值中的一者;使用共享机密密钥、历元身份值、以及与该群节点相关联的群节点身份来计算受限密钥,共享机密密钥是该客户端节点和中央节点所知晓的;以及与该群节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。
在一个实施例中,该方法可进一步包括:在客户端节点、群节点、以及中央节点之间宽松地同步时间,并且其中获得与当前历元相关联的历元身份值包括:从该群节点接收群节点实际时间和群节点身份,将群节点实际时间与客户端节点实际时间作比较,确定群节点实际时间与客户端节点实际时间之差在最大时间阈值差之内;以及从节点实际时间计算历元身份值。在另一实施例中,获得与当前历元相关联的历元身份值包括:从该群节点接收群节点历元值和群节点身份;将群节点历元值与客户端节点历元值作比较,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;将历元身份值计算为该群节点历元值和客户端节点历元值中的较大者;以及将计算出的历元身份值传送给该群节点。
在另一实施例中,获得与当前历元相关联的历元身份值包括:将客户端节点历元值传送给该群节点,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;从该群节点接收历元身份值和群节点身份;以及验证接收到的历元身份值等于或大于所传送的客户端节点历元值。在一个实施例中,该方法进一步包括使用密钥验证协议来验证该会话密钥。在另一个实施例中,该群节点与中央节点之间的通信链路在当前历元期间仅间歇性地可用。在一个实施例中,该受限密钥是因历元而异的并且是因群节点而异的。在另一个实施例中,该受限密钥由中央节点提供给群节点。在又一个实施例中,该中央节点维护未受损群节点列表,并且其中受损群节点从该列表中被移除。在又一个实施例中,该受限密钥在当前历元期间被使用多次以推导多个会话密钥。
在又一个实施例中,当前历元有非固定历时并且在新历元开始之际期满。在又一个实施例中,历元身份值是由中央节点生成的顺序整数,并在新历元开始之际由中央节点递增。在又一个实施例中,中央节点通过向群节点传送履行消息来指示当前历元的开始。在又一实施例中,历元是从实际时间推导出的。在又一个实施例中,使用共享机密密钥、历元身份值、以及群节点身份来计算受限密钥是使用基于密文的消息认证码(CMAC)函数、基于散列的消息认证码(HMAC)函数、或密码块链式消息认证码(CBC-MAC)函数之一来执行的。在又一个实施例中,该方法进一步包括:将元组插入高速缓存中以避免在当前历元期间为与该群节点创建的每个会话进行受限密钥的推导。在又一个实施例中,该元组包括群节点身份和受限密钥。在又一个实施例中,当当前历元期满时,高速缓存被刷新。
在另一个特征中,公开了一种客户端节点,包括:通信接口,其适配成与群节点通信;以及通信地耦合到该通信接口的处理电路,该处理电路适配成:获得与当前历元相关联的历元身份值,其中获得该历元身份值包括基于节点实际时间计算该历元身份值或与群节点协商该历元身份值中的一者;使用共享机密密钥、该历元身份值、以及与该群节点相关联的群节点身份来计算受限密钥,该共享机密密钥是该客户端节点和中央节点所知晓的;以及与该群节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。在一个实施例中,该处理电路进一步适配成:在客户端节点、群节点、以及中央节点之间宽松地同步时间,并且其中所述获得与当前历元相关联的历元身份值使该处理电路:从群节点接收群节点实际时间和群节点身份;将群节点实际时间与客户端节点实际时间作比较;确定群节点实际时间与客户端节点实际时间之差在最大时间阈值差之内;以及从节点实际时间计算历元身份值。
在另一实施例中,所述获得与当前历元相关联的历元身份值使该处理电路:从群节点接收群节点历元值和群节点身份;将群节点历元值与客户端节点历元值作比较,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;将历元身份值计算为群节点历元值和客户端节点历元值中的较大者;以及将计算出的历元身份值传送给该群节点。在又一实施例中,所述获得与当前历元相关联的历元身份值使该处理电路:将客户端节点历元值传送给群节点,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;从该群节点接收历元身份值和群节点身份;以及验证接收到的历元身份值等于或大于所传送的客户端节点历元值。
在另一个特征中,公开了一种客户端节点,包括:用于获得与当前历元相关联的历元身份值的装置,其中获得历元身份值包括基于节点实际时间计算历元身份值或与群节点协商历元身份值中的一者;用于使用共享机密密钥、该历元身份值、以及与群节点相关联的群节点身份来计算受限密钥的装置,该共享机密密钥是该客户端节点和中央节点所知晓的;以及与群节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。在一个实施例中,该客户端节点进一步包括:用于在客户端节点、群节点、以及中央节点之间宽松地同步时间的装置,并且其中用于获得与当前历元相关联的历元身份值的装置包括:用于从群节点接收群节点实际时间和群节点身份的装置;用于将群节点实际时间与客户端节点实际时间作比较的装置;用于确定群节点实际时间与客户端节点实际时间之差在最大时间阈值差之内的装置;以及用于从节点实际时间计算历元身份值的装置。
在另一实施例中,用于获得与当前历元相关联的历元身份值的装置包括:用于从群节点接收群节点历元值和群节点身份的装置;用于将群节点历元值与客户端节点历元值作比较的装置,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;用于将历元身份值计算为群节点历元值和客户端节点历元值中的较大者的装置;以及用于将计算出的历元身份值传送给群节点的装置。
在另一实施例中,用于获得与当前历元相关联的历元身份值的装置包括:用于将客户端节点历元值传送给群节点的装置,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;用于从群节点接收历元身份值和群节点身份的装置;以及用于验证接收到的历元身份值等于或大于所传送的客户端节点历元值的装置。
在另一特征中,提供了一种具有在客户端节点处操作的用于在客户端节点与群节点之间建立会话密钥的一条或多条指令的处理器可读介质,该指令在由至少一个处理器执行时使该处理器:获得与当前历元相关联的历元身份值,其中获得历元身份值包括基于节点实际时间计算历元身份值或与群节点协商历元身份值中的一者;使用共享机密密钥、历元身份值、以及与群节点相关联的群节点身份来计算受限密钥,该共享机密密钥是该客户端节点和中央节点所知晓的,以及与群节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。在一个实施例中,存在附加指令,这些附加指令在由处理器执行时进一步使该处理器:在客户端节点、群节点、以及中央节点之间宽松地同步时间,并且其中获得与当前历元相关联的历元身份值包括:从群节点接收群节点实际时间和群节点身份,将群节点实际时间与客户端节点实际时间作比较,确定群节点实际时间与客户端节点实际时间之差在最大时间阈值差之内;以及从节点实际时间计算历元身份值。
在另一实施例中,获得与当前历元相关联的历元身份值包括:从群节点接收群节点历元值和群节点身份;将群节点历元值与客户端节点历元值作比较,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;将历元身份值计算为群节点历元值和客户端节点历元值中的较大者;以及将计算出的历元身份值传送给群节点。在又一实施例中,获得与当前历元相关联的历元身份值包括:将客户端节点历元值传送给群节点,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;从群节点接收历元身份值和群节点身份;以及验证接收到的历元身份值等于或大于所传送的客户端节点历元值。
在另一特征中,公开了一种在群节点处操作的用于在群节点与客户端节点之间建立会话密钥的方法,该方法包括:从中央节点接收与一历元相关联的第一代理令牌集,第一代理令牌集包括与该客户端节点相关联的代理令牌,该代理令牌具有客户端节点身份和受限密钥;将第一代理令牌集存储为储备代理令牌集;在该历元的开始之际,用该储备代理令牌集来替换活跃代理令牌集,该储备代理令牌集变为下一个活跃代理令牌集;以及与该客户端节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。
在一个实施例中,该方法进一步包括:获得与该历元相关联的历元身份值;以及基于历元身份值来检索受限密钥。在一个实施例中,获得与历元相关联的历元身份值包括:接收客户端节点实际时间;将客户端节点实际时间与群节点实际时间作比较;确定群节点实际时间与客户端节点实际时间之差在最大时间阈值差之内;以及基于节点实际时间计算历元身份值。在另一个实施例中,基于历元身份值来检索受限密钥进一步包括:确定储备代理令牌集还是活跃代理令牌集对应于该历元身份值;若储备代理令牌集与该历元身份值相关联,则从储备代理令牌集获得受限密钥;以及若储备代理令牌集与该历元身份值相关联,则从该代理令牌集获得受限密钥。
在另一实施例中,该方法进一步包括:在中央节点、群节点、以及客户端节点之间宽松地同步时间;获得与当前时间相关联的历元身份值;以及基于历元身份值和客户端节点身份从第一代理令牌集中选择该客户端节点的受限密钥。在另一实施例中,该方法进一步包括:从中央节点接收至少一条消息,该至少一条消息包括与该历元相关联的历元身份值、以及第一代理令牌集;以及从中央节点接收履行消息,该履行消息指示该历元的开始。在另一个实施例中,群节点与中央节点之间的通信链路在该历元期间仅间歇性地可用。
在另一特征中,提供了一种群节点,包括:第一通信接口,其适配成与中央节点通信;第二通信接口,其适配成与客户端节点通信;以及通信地耦合至第一和第二通信接口的处理电路,该处理电路适配成:从中央节点接收与一历元相关联的第一代理令牌集,第一代理令牌集包括与该客户端节点相关联的代理令牌,该代理令牌具有客户端节点身份和受限密钥,将第一代理令牌集存储为储备代理令牌集,在该历元的开始之际,用该储备代理令牌集来替换活跃代理令牌集,该储备代理令牌集变为下一个活跃代理令牌集,以及与客户端节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。
在另一特征中,公开了一种群节点,包括:用于从中央节点接收与一历元相关联的第一代理令牌集的装置,第一代理令牌集包括与客户端节点相关联的代理令牌,该代理令牌具有客户端节点身份和受限密钥;用于将第一代理令牌集存储为储备代理令牌集的装置;用于在该历元的开始之际,用该储备代理令牌集来替换活跃代理令牌集的装置,该储备代理令牌集变为下一个活跃代理令牌集;以及用于与该客户端节点执行会话密钥建立协议以推导会话密钥的装置,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。
在另一特征中,公开了一种具有在群节点处操作的用于在群节点与客户端节点之间建立会话密钥的一条或多条指令的处理器可读介质,该指令在由至少一个处理器执行时使该处理器:从中央节点接收与一历元相关联的第一代理令牌集,第一代理令牌集包括与该客户端节点相关联的代理令牌,该代理令牌具有客户端节点身份和受限密钥;将第一代理令牌集存储为储备代理令牌集;在该历元的开始之际,用储备代理令牌集来替换活跃代理令牌集,该储备代理令牌集变为下一个活跃代理令牌集;以及与该客户端节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥。
在另一特征中,公开了一种在中央节点处操作的用于在第一群节点与客户端节点之间建立通信会话的方法,该方法包括:确定第二群节点已受损,第一群节点具有第一群节点标识符;将受损的第二群节点从未受损群节点列表中移除,其中未受损群节点列表被存储在中央节点处并且包括第一群节点;以及将与即将到来的历元相关联的多个代理令牌传送给未受损群节点列表上的每个未受损群节点,该多个代理令牌包括与第一群节点相关联的第一代理令牌并且被传送给第一群节点,第一代理令牌包括客户端节点身份和受限密钥,即将到来的历元与即将到来历元身份值相关联,其中受限密钥是从即将到来历元身份值、第一群节点标识符、以及先前在该客户端节点与中央节点之间建立的共享密钥计算出的。
在一个实施例中,第一代理令牌是在即将到来的历元开始之前被传送的。在另一实施例中,该方法进一步包括:向第一群节点传送履行消息,该履行消息指示即将到来的历元的开始。
在另一特征中,公开了一种用于在第一群节点与客户端节点之间建立通信会话的中央节点,该中央节点包括:通信接口,其适配成与第一群节点通信;以及处理电路,其耦合到该通信接口并适配成:确定第二群节点已受损,第一群节点具有第一群节点标识符,将受损的第二群节点从未受损群节点列表中移除,其中未受损群节点列表被存储在中央节点处并且包括第一群节点,以及将与即将到来的历元相关联的多个代理令牌传送给未受损群节点列表上的每个未受损群节点,该多个代理令牌包括与第一群节点相关联的第一代理令牌并且被传送给第一群节点,第一代理令牌包括客户端节点身份和受限密钥,即将到来的历元与即将到来历元身份值相关联,其中受限密钥是从即将到来历元身份值、第一群节点标识符、以及先前在该客户端节点与中央节点之间建立的共享密钥计算出的。
在另一特征中,公开了一种用于在第一群节点与客户端节点之间建立通信会话的中央节点,该中央节点包括:用于确定第二群节点已受损的装置,第一群节点具有第一群节点标识符;用于将受损的第二群节点从未受损群节点列表中移除的装置,其中未受损群节点列表被存储在中央节点处并且包括第一群节点;以及用于将与即将到来的历元相关联的多个代理令牌传送给未受损群节点列表上的每个未受损群节点的装置,该多个代理令牌包括与第一群节点相关联的第一代理令牌并且被传送给第一群节点,第一代理令牌包括客户端节点身份和受限密钥,即将到来的历元与即将到来历元身份值相关联,其中受限密钥是从即将到来历元身份值、第一群节点标识符、以及先前在该客户端节点与中央节点之间建立的共享密钥计算出的。
在另一特征中,公开了一种具有在中央节点处操作的用于在第一群节点与客户端节点之间建立通信会话的一条或多条指令的处理器可读介质,该指令在由至少一个处理器执行时使该处理器:确定第二群节点已受损,第一群节点具有第一群节点标识符;将受损的第二群节点从未受损群节点列表中移除,其中未受损群节点列表被存储在中央节点处并且包括第一群节点;以及将与即将到来的历元相关联的多个代理令牌传送给未受损群节点列表上的每个未受损群节点,该多个代理令牌包括与第一群节点相关联的第一代理令牌并且被传送给第一群节点,第一代理令牌包括客户端节点身份和受限密钥,即将到来的历元与即将到来历元身份值相关联,其中受限密钥是从即将到来历元身份值、第一群节点标识符、以及先前在客户端节点与中央节点之间建立的共享密钥计算出的。
附图简述
图1解说了一种无线网络通信系统。
图2和3是解说通信系统的操作的示例的流图,其中在客户端节点与群节点之间建立会话密钥而不要求该群节点与中央节点之间的每会话通信。
图4是解说通信系统的操作的一个示例的流图,其中在客户端节点与群节点之间建立会话密钥而不要求该群节点与中央节点之间的每会话通信。
图5解说了根据一个示例的客户端节点的功能框图。
图6解说了演示在客户端节点处操作的用于在客户端节点与群节点之间建立会话密钥的示例性方法的流程图。
图7(包括图7A和7B)解说了客户端节点用于使用实际时间定义历元来在客户端节点和群节点之间建立会话密钥的操作的一个示例。
图8(包括图8A和8B)解说了客户端节点用于在客户端节点和群节点之间建立会话密钥而不使用实际时间来定义历元、并且其中由客户端节点发起该会话的操作的示例。
图9(包括图9A和9B)解说了客户端节点用于在客户端节点和群节点之间建立会话密钥的操作的示例,其中不使用实际时间来定义历元,并且其中由群节点发起该会话。
图10解说了根据一个示例的群节点的功能框图。
图11解说了演示在群节点处操作的用于在该群节点与客户端节点之间建立会话密钥的示例性方法的流程图。
图12解说了群节点相对于中央节点的使用实际时间来定义历元的操作的示例。
图13(包括图13A和13B)解说了群节点用于使用实际时间定义历元来在该群节点和客户端节点之间建立通信会话的操作的示例。
图14解说了群节点相对于中央节点的不使用实际时间来定义历元的操作的示例。
图15(包括图15A和15B)解说了群节点用于不使用实际时间定义历元来在该群节点和客户端节点之间建立通信会话的操作的示例。
图16解说了根据一个示例的中央节点的功能框图。
图17解说了演示在中央节点处操作的用于在第一群节点与客户端节点之间建立通信会话的示例性方法的流程图。
图18解说了中央节点用于使用实际时间定义历元来在群节点和客户端节点之间建立通信会话的操作的示例。
图19解说了中央节点用于在群节点和客户端节点之间建立通信会话的操作的示例,其中历元身份不与实际时间相关。
详细描述
在以下描述中,给出了具体细节以提供对诸实施例的透彻理解。但是,本领域普通技术人员将可理解,没有这些具体细节也可实践这些实施例。例如,操作可能以框图形式示出,也可能根本不被示出,以免因不必要的细节而使这些实施例不明朗。在其他实例中,公知的操作、结构和技术可能不被详细示出以免使这些实施例不明朗。
如本文中所使用的,中央节点也可被称为服务器、认证服务器、和/或任何其他适于向客户端节点提供服务的设备,并且包括其一些或全部功能性。客户端节点也可被称为用户装备(UE)、无线或有线通信设备、节点、移动终端、移动站和/或任何其他适于在网络上通信的设备,并包括其一些或全部功能性。客户端节点可经由一组群节点中的一个或多个群节点来与中央节点进行通信。半连通群节点可以是与中央节点具有不可靠的、较慢的、或间歇的通信的群节点。
综览
一种特征提供了用于在客户端节点与群节点之间建立会话密钥而不要求该群节点与中央节点之间的每会话通信的系统、装置和方法。
客户端节点可能先前已经与至少一个良好群节点进行了通信,当时该至少一个良好群节点正与中央节点通信并且成功执行了虚拟配对协议。因此,该客户端节点和中央节点可具有共享机密密钥KM。
在一个示例中,可提供一种机制,所有节点和终端可藉由该机制来获取宽松地同步的实际时间(即,在几秒内)。在该系统中,时间可被划分成历元,其中历元的长度是固定的并且例如可在分钟到几天的量级上。对于每个历元,群节点可与中央节点通信至少一次。中央节点可向每个群节点发送元组列表。每个元组条目可包括标识每个客户端节点的客户端节点标识符“Cnode_ID”、以及与每个客户端节点标识符Cnode_ID相关联的受限密钥KR。客户端节点标识符Cnode_ID连同其相关联的受限密钥KR可被称为“代理令牌”。因此,在历元开始期间,中央节点可向每个群节点传送与不同客户端节点相关联的一系列代理令牌。
受限密钥KR可取决于历元值“Epoch_ID”以及群身份值“Gnode_ID”。例如,KR可按下式计算:
KR=CMAC(KM,Gnode_ID||Epoch_ID)
其中Gnode_ID可以是群节点身份,Epoch_ID可以是与即将到来的历元相关联的值,KM可以是在客户端节点与中央节点之间共享的共享机密密钥,而CMAC可以是基于密文的消息认证码(CMAC)算法。
客户端节点可获得历元身份Epoch_ID并且随后计算受限密钥KR,因为它知道群节点身份Gnode_ID和共享机密密钥KM。它随后可使用两轮会话密钥建立协议(其使用由每一方提供的随机性)来生成短期会话密钥,在该计算中将受限密钥KR用作主密钥。该会话密钥建立协议还可提供密钥验证。
如果群节点退役、丢失、失窃、变为有故障、或受损,则中央节点可将其从它的未受损群节点列表中移除,并且在当前历元期满之后,中央节点可以不再转发反映当前历元值的有效代理令牌。因此,受影响的群节点将不具有任何有效代理令牌,并且因此不能与客户端节点建立会话。
受限密钥KR可在一历元期间被使用许多次。为了避免在同一历元时段期间针对每个会话推导KR,客户端节点可维持具有元组(例如群节点身份、历元身份和受限密钥)的高速缓存(例如,存储器、存储器电路等)。因此,客户端节点中的电池电量可得到节省。
在一个示例中,客户端节点可以访问安全的宽松地同步的实际时间。在一个历元期间,历元身份Epoch_ID可具有相同的值。通过全局地存储Epoch_ID(例如,将群节点身份Gnode_ID和受限密钥KR放在高速缓存条目中)、以及在历元改变时刷新高速缓存可以节省存储器。
示例性网络操作环境
图1解说了一种无线网络通信系统100。在该示例中,解说了客户端节点102、一组群节点104a–104c、以及中央节点106,其中客户端节点102可经由一个或多个群节点104a–104c间接地与中央节点106通信。中央节点106可以是固定站或服务器。群节点104a–104c可以是由电池供电的便携式设备和/或驻定的电子设备。客户端节点102可以是例如小型的、便宜的、低功率的无线设备,其包含有限量的存储器和有限的电池能量。客户端节点102可例如通过低能量、WiFi、近场通信、和/或其他无线通信方法来与群节点104a–104c通信。
如图1中所示,客户端节点102可与群节点(诸如群节点A104a)通信。客户端节点102可在无线链路上执行虚拟配对协议以建立共享密钥(例如,会话密钥),其可用于对数据进行加密和认证。一旦客户端节点102已与群节点104a–104c之一(例如,群节点A104a)建立了共享密钥,客户端节点102就可间接地与中央节点106通信。尽管示出了三个(3个)群节点,但是这仅仅是作为解说,并且通信系统100中可利用更多或更少的群节点。
示例性通信系统
图2是解说通信系统100的操作的一个示例的流图,其中在客户端节点102与群节点104之间建立会话密钥而不要求该群节点104与中央节点106之间的每会话通信。首先,中央节点106和客户端节点102可通过将群节点104用作中介来建立共享机密密钥KM(200)。例如,在客户端节点102加入通信系统100时,可在客户端节点102与中央节点106之间建立共享机密密钥KM。可以使用例如椭圆曲线Diffie-Hellman协议来建立共享机密密钥KM,从而群节点104(其充当中介)不会知晓共享机密密钥的值。一旦建立了共享机密密钥,中央节点106就可存储该共享机密密钥KM(202a),并且客户端节点102可存储相同的密钥KM(202b)。中央节点106与系统100中的每个客户端节点建立唯一性的共享机密密钥。在优选实施例中,共享机密密钥KM是群节点104所不知晓的。共享机密密钥KM可以是因客户端节点而异的,使得通信系统100中的每个客户端节点与中央节点106共享不同的机密密钥。客户端节点102可与客户端节点标识符Cnode_ID相关联。
通信系统100内的时间可被划分成历元,诸如历元A201和历元B203,其中历元B203在时间上发生在历元A201之后。每个历元的长度可以是固定的,并且在例如几分钟到几天的量级上。然而,这些仅仅是示例。根据整个系统的要求,可以选取不同长度的历元。
对于每个历元,群节点104可与中央节点106通信至少一次。例如,在历元A开始处(或在一些实施例中,在历元A开始前),群节点104可从中央节点106接收关于每个客户端节点102的至少一个代理令牌(204)。所接收到的代理令牌是与特定历元(例如,历元A)相关联的。因此,对于通信系统中的每个客户端节点,中央节点106可将与一历元相关联的代理令牌发送给群节点104,其中该代理令牌包括客户端标识符Cnode_ID和受限密钥KR。群节点104随后可存储所接收到的一个或多个代理令牌(206)并将每个代理令牌与特定历元相关联。因此,通信系统中的每个“群节点与客户端节点”对可具有唯一性的受限密钥KM对。若新的客户端节点在一历元的中间进入该通信系统,则中央节点106可将该新客户端节点的代理令牌传送给一些或所有群节点104a–104c。
为了使客户端节点102和群节点104能建立会话密钥,客户端节点102和群节点104必须首先确立将由这两个节点使用的可接受的历元身份值Epoch_ID(208)。一旦客户端节点102和群节点104已确立了相同的Epoch_ID值,群节点104就可获得/检索其先前存储的具体与该历元身份值Epoch_ID和客户端标识符Cnode_ID相关联的受限密钥KR(210)。因此,对于与历元A201相对应的Epoch_ID值,群节点104可检索与Cnode_ID和Epoch A201相关联的受限密钥KR。类似地,客户端节点102必须基于历元身份值Epoch_ID来获得受限密钥KR。例如,客户端节点102可基于下式来计算/演算KR:
KR=CMAC(KM,Gnode_ID||Epoch_ID)
其中Gnode_ID是群节点104的身份,Epoch_ID是所确立的历元值,KM是在客户端节点102与中央节点106之间共享的共享机密密钥,而CMAC是基于密文的消息认证码(CMAC)算法(212)。然而,生成受限密钥KR不限于上式中示出的具体输入和自变量。例如,也可以使用将输入与自变量相组合、和/或具有合适的密码性质的其他运算,包括但不限于:基于散列的消息认证码(HMAC)、密码块链式消息认证码(CBC-MAC)、散列、或加密。KM可以是因客户端节点标识符Cnode_ID而异的,因此,受限密钥KR可以是因客户端节点、群节点身份Gnode_ID、以及历元身份值Epoch_ID而异的。
接下来,可使用两轮会话密钥建立协议通过将受限密钥KR用作主密钥连同由客户端节点102和群节点104双方提供的随机值(例如,一次性数)来生成会话密钥(214)。换言之,受限密钥KR被用来推导用于这两个节点之间的通信的会话密钥。注意,密钥KR并不直接在客户端节点102与群节点104之间传送,而是由于其是这两个节点所知晓的,因此KR可被用来在这两个节点之间建立会话密钥。以此方式,可在客户端节点102与群节点104之间建立会话密钥以进行安全通信会话(216)。
在历元A201期满之前,中央节点106可传送用于下一个历元(历元B203)的替换代理令牌集(218a)。该替换代理令牌集将类似地包含针对给定历元(历元B)标识关于给定客户端节点的受限密钥KR的元组。通过在历元B开始之前传送代理令牌,在从历元A到历元B的历元转变时间期间丢失与中央节点106的通信的情况下,群节点104仍能访问该令牌集。在替换实施例中,与历元B相关联的替换代理令牌集可在历元B开始处被传送(218b)。在再一其他实施例中,可以一次将多个代理令牌集全部提供给群节点104,其中每个代理令牌集可与不同的历元相关联。
由于中央节点106在群节点104和客户端节点102开始会话密钥建立之前将代理令牌传送给群节点104,并且群节点104持有所述密钥直至该历元结束,因此贯穿该历元的其余时间,在群节点104与客户端节点102之间建立会话密钥都可以发生,而不要求进行群节点104与中央节点106之间的通信。例如,一旦群节点104在步骤204获取了用于历元A的代理令牌,群节点104在历元A的其余时间里就不再需要与中央节点106的通信链路(例如,通信可以是间歇性的)来建立与客户端节点102的会话密钥。因此,在该时段期间,群节点104与中央节点106之间的通信可以是间歇性的和/或不可用的。与中央节点具有间歇性通信链路的群节点可被视为“半连通”群节点。
如果群节点退役、丢失、失窃、变为有故障、或受损,则中央节点106可将其从它的未受损群节点列表中移除,并且在当前历元期满之后,受影响的群节点将不具有任何有效代理令牌,并且因此不能与客户端节点建立安全通信会话。
在一历元期间,受限密钥KR可被使用多次以生成群节点104与客户端节点102之间的各种会话密钥。为了避免在同一历元期间不必要地针对与群节点104的每个会话推导受限密钥KR,客户端节点102可维持具有包括例如群节点身份Gnode_ID、历元身份值、和相关联的受限密钥的元组的高速缓存(例如,存储器、存储器电路等)。因此,客户端节点102中的电池电量可得到节省。
在一个实施例中,当新的值或条目要被插入该高速缓存时,可选择要从该高速缓存丢弃的条目。如果该高速缓存是简单的阵列,则可能只有一个选择:丢弃在该阵列中的目标位置处的那个条目。然而,在组关联式高速缓存的情况下,可从该组(例如,子阵列)中随机地选取要丢弃的条目。一些数据结构可能有益于至少目前所使用的替换策略。
示例性通信系统–历元身份可从实际时间导出
图3是解说通信系统100的操作的一个示例的流图,其中在客户端节点102与群节点104之间建立会话密钥而不要求该群节点104与中央节点106之间的每会话通信。中央节点106和客户端节点102可以各自能够访问共享机密密钥KM(302a、302b),该共享机密密钥KM可以是群节点104所不知晓的。共享机密密钥KM可以是因客户端节点而异的,使得通信系统100中的每个客户端节点与中央节点106共享不同的机密密钥。客户端节点102可与客户端节点标识符Cnode_ID相关联。
在该示例中,可提供一种机制,所有节点可藉由该机制来获取宽松地同步的实际时间(304),例如彼此相差在几秒内。例如,当客户端节点102首次加入通信系统100时,群节点104可将来自中央节点106的实际时间信息传送给客户端102。此外,客户端节点102的实际时间可周期性地被更新或调整。例如,在每个历元或某个倍数的历元的开始处,群节点可将来自中央节点106的实际时间信息传送给客户端节点102。因此,保持在群节点104处的时间可被标识为Gnode_time,而保持在客户端节点102处的时间可被标识为Cnode_time。
通信系统100内的时间可被划分成历元,诸如历元A301和历元B303,其中历元B303在时间上发生在历元A301之后。每个历元的长度可以是固定的,并且在例如几分钟到几天的量级上。然而,这些仅仅是示例。根据整个系统的要求,可以选取不同长度的历元。
对于每个历元,群节点104可与中央节点106通信至少一次。例如,在历元A301开始处(或在一些实施例中,在历元A301开始前),群节点104可从中央节点106接收关于每个客户端节点102的至少一个代理令牌(306)。所接收到的代理令牌是与特定历元(例如,历元A301)相关联的。因此,对于通信系统中的每个客户端节点,中央节点106可将与一历元相关联的代理令牌发送给群节点104,其中该代理令牌包括客户端标识符Cnode_ID和受限密钥KR。群节点104随后可存储所接收到的一个或多个代理令牌(308)并将每个代理令牌与特定历元相关联。若新的客户端节点在一历元的中间进入该通信系统,则中央节点106可将该新客户端节点的代理令牌传送给所有群节点104a–104c。
在客户端节点102与群节点104之间建立会话密钥可以开始于当发起方(客户端节点102或群节点104)发起会话密钥建立协议时。例如,群节点104可向客户端节点102传送包括其身份Gnode_ID及其当前实际时间Gnode_time的消息(310)。客户端节点102随后可确定群节点104的实际时间Gnode_time相对于它自己的实际时间Cnode_time是否在预定时间差(例如,时间窗、时间阈值、最大时间阈值差等)之内,例如在几秒之内(312)。如果这两个值之间的时间差小于预定时间差,则客户端节点102可基于实际时间(例如,节点实际时间)来计算历元身份值Epoch_ID。在一个实施例中,由客户端节点102用来计算Epoch_ID的节点实际时间可以是群节点104的实际时间Gnode_time(314)。在另一实施例中,客户端节点102可使用它自己的实际时间Cnode_time来计算Epoch_ID。所使用的特定节点实际时间应当由客户端节点102和群节点104双方使用,从而双方计算出相同的Epoch_ID值。如果该时间差大于预定时间差,则群节点104可被认为受损并且会话密钥建立可以终止。
一旦客户端节点102已基于Gnode_time计算出历元身份值Epoch_ID,客户端节点102就可使用例如下式来推导受限密钥KR:
KR=CMAC(KM,Gnode_ID||Epoch_ID)
其中Gnode_ID是群节点104的身份,Epoch_ID是所确立的历元值,KM是在客户端节点102与中央节点106之间共享的共享机密密钥,而CMAC是基于密文的消息认证码(CMAC)算法(316)。如以上所讨论的,可使用其他输入、自变量和/或编码方案。
群节点104可基于由客户端节点102所使用的相同的节点实际时间来确定其自己的历元身份值Epoch_ID。例如,如果客户端节点102使用了Gnode_time来计算Epoch_ID,则群节点102将也使用其实际时间Gnode_time(318)。如果Cnode_time与Gnode_time之差小于预定时间窗(步骤312),则群节点104计算出的Epoch_ID应当与客户端节点102处计算出的Epoch_ID相同,因为双方使用了相同的节点实际时间来计算Epoch_ID。接下来,群节点可获得/检索具体与该历元身份值Epoch_ID和客户端标识符Cnode_ID相关联的受限密钥KR(320)。因此,对于与历元A301相对应的Epoch_ID值,群节点104可检索与Cnode_ID和Epoch A301相关联的受限密钥KR。
接下来,可使用两轮会话密钥建立协议通过将受限密钥KR用作主密钥连同由客户端节点102和群节点104双方提供的随机值(例如,一次性数)来生成会话密钥(322)。换言之,受限密钥KR被用来推导用于这两个节点之间的通信的会话密钥。注意,密钥KR并不直接在客户端节点102与群节点104之间传送,而是由于其是这两个节点所知晓的,因此KR可被用来在这两个节点之间建立会话密钥。以此方式,可在客户端节点102与群节点104之间建立会话密钥以进行安全通信会话(324)。
在一个实施例中,在历元A期满之前,与历元B303相关联的替换代理令牌集可从中央节点106传送给群节点104(326a)。该替换代理令牌集将类似地包含针对给定历元(历元B)标识关于给定客户端节点的受限密钥KR的元组。通过在历元B开始前向通信系统中的群节点传送代理令牌,将能更好地确保该系统中的绝大多数(即使不是全部)群节点截至历元B开始之时将已经存储了新的代理令牌集。此外,在历元转变时间期间丢失与中央节点106的通信的情况下,群节点104仍能访问该新令牌集。
例如,群节点104与中央节点106之间可能发生通信中断,该通信中断刚好开始于中央节点106在正常情况下被调度成传送用于新历元的代理令牌之前。群节点与中央节点之间的通信中断可能阻碍群节点获取新代理令牌,因此在该中断结束之前无法建立客户端到群的通信会话。为了克服这一点,中央节点106可在新的或预料中的历元开始之前充分提前地发送用于新历元的代理令牌。例如,如果历元是一小时,并且预期通信中断持续不会超过5分钟,则中央节点可在每个历元转变前提前十五(15)分钟发送代理令牌。因此,至群节点104的令牌递送能更好地得到保障。在另一实施例中,替换代理令牌集可在历元A期满之际被传送给群节点(326b)。
一旦群节点104已接收到其用于当前历元的代理令牌,则在当前历元期间,在群节点104与客户端节点102之间建立会话密钥就可以发生,而不要求进行群节点104与中央节点106之间的通信。因此,一旦群节点104已获取了代理令牌,则贯穿该历元,群节点104与中央节点106之间的通信就可以是间歇性的和/或不可用的。
如果群节点退役、丢失、失窃、变为有故障、或受损,则中央节点106可将其从它的未受损群节点列表中移除,并且在当前历元期满之后,受影响的群节点将不具有任何有效代理令牌,并且因此不能与客户端节点建立安全通信会话。因此,中央节点可通过终止向群节点发送代理令牌来撤销对该群节点建立与客户端节点102的通信的准许。该撤销在下一个历元开始时生效。
在一历元期间,受限密钥KR可被使用多次以生成群节点104与客户端节点102之间的各种会话密钥。为了避免在同一历元期间不必要地针对与群节点104的每个会话推导受限密钥KR,客户端节点102可维持具有包括例如群节点身份Gnode_ID、历元身份值、和相关联的受限密钥的元组的高速缓存。因此,客户端节点102中的电池电量可得到节省。
由于可能仅使用了宽松的时钟同步,因此有可能群节点104使用与即将期满的历元(历元A)相关联的受限密钥KR_A,而客户端节点102可能已经能访问关于即将到来的历元(历元B)的受限密钥KR_B。然而,如上所述,在假定Gnode_time与Cnode_time之差小于预定量的情况下,客户端节点102可使用Gnode_time来计算历元身份值。这确保了双方计算出相同的Epoch_ID值和相关联的受限密钥,即使客户端节点102已接收到关于向历元B的历元转变的通知。例如,客户端节点102可接收并使用Gnode_time,其转译成Epoch_ID值“8000”。即使由于宽松的时钟同步,客户端节点自己的实际时间时钟可能寄存了历元值“8001”,但客户端节点仍可以计算出与历元值“8000”相关联的受限密钥KR_8000。
如上所述,客户端节点102可接收在消息中所包括的群节点104的实际时间Gnode_time(310),进行检查以确定群节点的实际时间是否接近客户端节点102自己的实际时间Cnode_time(312),并且如果是,则从群节点的实际时间Gnode_time计算历元身份值Epoch_ID。例如,如果群节点104不具有与Epoch_ID相对应的受限密钥,则群节点104(其可能是受损的)可能试图发送一个旧的实际时间并使用相应的旧的受限密钥,或者它可能发送其当前历元身份并尝试猜测当前受限密钥KR。如果群节点104的确发送旧的/过时的实际时间,则客户端节点会发现其不够接近客户端节点自己的实际时间Cnode_time并且拒绝群节点104要建立通信会话的请求。此外,会话密钥建立协议324中的密钥验证步骤可能失败,并且客户端节点102可拒绝要建立通信会话的请求。
示例性通信系统–历元身份可通过协商来导出
图4是解说通信系统100的操作的一个示例的流图,其中在客户端节点102与群节点104之间建立会话密钥而不要求该群节点104与中央节点106之间的每会话通信。中央节点106和客户端节点102可以各自能够访问共享机密密钥KM(402a、402b),该共享机密密钥KM是群节点104所不知晓的。共享机密密钥KM可以是因客户端节点而异的,使得通信系统100中的每个客户端节点与中央节点106共享不同的机密密钥。客户端节点102可与客户端节点标识符Cnode_ID相关联。
通信系统100内的时间可被划分成历元,诸如历元A401和历元B403,其中历元B403在时间上发生在历元A401之后。然而,在该示例中,客户端节点102可能不具有可靠的时间时钟,并且历元可能不一定有固定历时,而是每当中央节点106选择开始新历元时才发生。
对于每个历元,群节点104可与中央节点106通信至少一次。例如,在历元A401开始处(或在一些实施例中,在历元A401开始前),中央节点106可递增历元计数器并将关于每个客户端节点102的至少一个代理令牌传送给群节点104(404)。中央节点106可继续向所有群节点传送代理令牌,直至已联系到所有群节点、或者直至其确定不能联系到某些群节点。然而,中央节点106可尝试至少长达中央节点106与群节点之间的最长预期通信中断的时间。
所传送的代理令牌是与特定历元(例如,历元A401)相关联的。因此,对于通信系统中的每个客户端节点,中央节点106可将与一历元相关联的代理令牌发送给群节点104,其中该代理令牌包括客户端标识符Cnode_ID和受限密钥KR。群节点104随后可存储所接收到的且与储备的历元A相关联的一个或多个代理令牌作为储备代理令牌集(406)。中央节点106随后可将履行消息传送给群节点104(408)。该履行消息向群节点104指示历元A已经开始并且群节点104应当使用保持在储备中的新代理令牌(410)。在一个实施例中,一旦群节点104切换到储备集中所保持的代理令牌,群节点104就可丢弃与先前历元相关联的任何旧的/过时的代理令牌。在其他实施例中,可保留旧的/过时的代理令牌,以防另一寻求建立通信的客户端节点尚未接收到关于历元转变的通知并因此使用较旧的受限密钥。
客户端节点102和群节点104随后可通过一方或双方节点交换历元身份值信息来协商标识当前历元的共用历元身份值Epoch_ID(412)。历元身份值Epoch_ID应被协商成等于群节点104所知晓的最大(即,最新近的)历元身份值Epoch_IDGN和客户端节点102所知晓的最大历元身份值Epoch_IDCN中的较大值。Epoch_IDCN的值可以基于与所有群节点的所有先前成功的会话密钥建立操作。
在一个示例中,对Epoch_ID值的协商可以始于由群节点104向客户端节点102传送包括群节点历元值Epoch_IDGN和群节点标识符Gnode_ID的消息。客户端节点102随后可将接收到的Epoch_IDGN与它自己的客户端节点历元值Epoch_IDCN作比较,并选择这两者中的较大者作为Epoch_ID。客户端节点102随后将Epoch_ID传送给群节点104。在一些实施例中,如果Epoch_ID大于Epoch_IDCN,则一旦已在客户端节点102和群节点104之间建立了会话密钥,客户端节点102就可刷新其高速缓存并用具有历元身份值Epoch_ID、群节点标识符Gnode_ID、和受限密钥KR的元组来替换高速缓存值。
在另一示例中,客户端节点102可先将Epoch_IDCN传送给群节点104。群节点104随后可将Epoch_IDCN与它自己的历元值Epoch_IDGN作比较,并选择这两者中的较大者。由群节点104所选择的具有值Epoch_IDGN_Select(历元_IDGN_选择)的历元值随后可被回传给客户端节点102。客户端节点102随后可确定Epoch_IDGN_Select是否大于或等于其先前发送给群节点104的历元值Epoch_IDCN。如果Epoch_IDGN_Select大于或等于Epoch_IDCN,则客户端节点102将把Epoch_ID设为等于Epoch_IDGN_Select。否则,若Epoch_IDGN_Select小于Epoch_IDGN_Select,则客户端节点102可确定群节点104受损并中止会话密钥建立。在一些实施例中,如果Epoch_ID大于Epoch_IDCN,则一旦已在客户端节点102和群节点104之间建立了会话密钥,客户端节点102就可刷新其高速缓存并用具有历元身份值Epoch_ID、群节点标识符Gnode_ID、和受限密钥KR的元组来替换高速缓存值。
无论是如何协商Epoch_ID的,其目标都是在客户端节点102和群节点104处确立相同的历元身份值Epoch_ID。一旦客户端节点102和群节点104已确立了Epoch_ID,群节点104就可获得/检索其已存储的具体与该Epoch_ID和客户端标识符Cnode_ID相关联的受限密钥KR(414)。群节点104可要么从其先前存储(406)的储备代理令牌集检索受限密钥KR,要么从其已存储了的活跃代理令牌集检索受限密钥KR,这取决于哪个集合包括该Epoch_ID值。如上所述,客户端节点102可例如使用公式KR=CMAC(Gnode_ID||Epoch_ID,KM)来推导受限密钥KR(416)。
接下来,可使用两轮会话密钥建立协议通过将受限密钥KR用作主密钥连同在客户端节点102和群节点104之间交换的随机值(例如,一次性数)来生成会话密钥(418)。换言之,受限密钥KR被用来推导用于这两个节点之间的通信的会话密钥。注意,密钥KR并不直接在客户端节点102与群节点104之间传送,而是由于其是这两个节点所知晓的,因此KR可被用来在这两个节点之间建立会话密钥。以此方式,可在客户端节点102与群节点104之间建立会话密钥以进行安全通信会话(420)。
历元B403可在中央节点决定结束历元A401时开始。在一个实施例中,另一替换代理令牌集在历元B开始处被传送给群节点104(422a)。在另一实施例中,替换代理令牌可在历元A结束之前被传送(422a)。
由于群节点104已接收到与当前历元相关联的代理令牌,因此在当前历元期间,在群节点104与客户端节点102之间建立会话密钥可以发生,而不要求群节点104与中央节点106之间的通信。因此,一旦群节点104已接收到用于该历元的代理令牌,则贯穿该历元,群节点104与中央节点106之间的通信可以是间歇性的和/或不可用的。
如果群节点是退役、丢失、失窃、变为有故障、或受损的,则中央节点106可将其从它的未受损群节点列表中移除,并且在当前历元期满之后,受影响的群节点将不具有任何有效代理令牌,并且因此不能与客户端节点建立安全通信会话。因此,中央节点106可通过终止向群节点发送代理令牌来撤销对该群节点建立与客户端节点102的通信的准许。该撤销在下一个历元开始时生效。
在经由协商412来建立Epoch_ID的实施例中,可在客户端节点102和群节点104之间直接传送历元身份值。这可能不同于本文中的交换实际时间值(诸如在图3的步骤310中,将Gnode_time从群节点104传送给客户端节点102)的其他实施例。此外,在客户端节点获悉较大的(在时间上更新近的)历元身份值之后,已由中央节点确定为受损的受损群节点可被客户端节点拒绝。客户端节点可从与另一个未受损群节点的通信中获取该较大的历元值,其中该通信发生在中央节点没有向受损群节点发送代理令牌的历元开始之后。
此外,在一些实施例中,客户端节点102和群节点104可在基本上相同的时间执行步骤412和418的选择传输。例如,历元身份值Epoch_IDCN、Epoch_IDGN、和/或Epoch_IDGN_Select可被捎带在会话密钥建立协议418的一条或多条消息上。
在一些实施例中,若群节点104确定所协商(412)的历元身份值Epoch_ID对应于保持在储备中的代理令牌,则群节点104可从保持在储备中的代理令牌中检索受限密钥KR,即使群节点104尚未从中央节点106接收到履行消息408亦然。这仅会发生在至少一些未受损的群节点已接收到履行消息(这意味着中央节点106已开始履行阶段)但所议群节点104尚未接收到履行消息408的情况下。该动作防止了由中央节点106向系统100中的群节点104a–104c发送的历元转变通知的异步本质导致会话密钥建立失败。
示例性客户端节点
图5解说了根据一个示例的客户端节点102的功能框图。客户端节点102可包括处理电路(例如,处理器、处理模块、专用集成电路(ASIC)等)502、存储器电路(例如,存储器、存储器设备、存储器模块等)504、高速缓存506、和/或通信接口508,它们可全部例如经由通信总线512通信地彼此耦合。
处理电路502可执行数据处理,包括执行处理器可读过程步骤,诸如本文中描述的以及附图中解说的在客户端节点处操作的任何步骤。例如,处理电路502可以是专用处理器(例如,ASIC),其适配成至少执行图6中所示的步骤602、604和606。存储器电路504可包括高速缓存506,高速缓存506可存储包含群节点身份Gnode_ID、受限密钥KR、以及相关联的历元身份信息(诸如Epoch_ID)的元组。高速缓存506可以是允许快速地检索数据的虚拟高速缓存或逻辑高速缓存。通信接口508可利用任何低功率通信协议(诸如但不限于蓝低能量、Wifi、和/或协议)来将客户端节点102通信地耦合至通信系统100中的一个或多个群节点(例如,经由无线连接510)。
客户端节点建立会话密钥的示例性操作
图6解说了演示在客户端节点处操作的用于在客户端节点与群节点之间建立会话密钥的示例性方法的流程图600。首先,客户端节点获得与当前历元相关联的历元身份值,其中获得历元身份值包括基于节点实际时间计算历元身份值或与群节点协商历元身份值中的一者(602)。接下来,客户端节点使用共享机密密钥、历元身份值、以及与群节点相关联的群节点身份来计算受限密钥,其中共享机密密钥是客户端节点和中央节点所知晓的(604)。随后,客户端节点与群节点执行会话密钥建立协议以推导会话密钥,在该会话密钥建立协议中使用受限密钥作为主密钥(606)。客户端节点102和群节点104还可使用密钥验证过程来验证会话密钥。
在一个实施例中,可在客户端节点、群节点、以及中央节点之间宽松地同步时间。此外,获得与当前历元相关联的历元身份值可包括:从群节点接收群节点实际时间和群节点身份;将群节点实际时间与客户端节点实际时间作比较;确定群节点实际时间与客户端节点实际时间在最大时间阈值差之内;以及从节点实际时间计算历元身份值。
在另一实施例中,获得与当前历元相关联的历元身份值可包括:从群节点接收群节点历元值和群节点身份;将群节点历元值与客户端节点历元值作比较,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;将历元身份值计算为群节点历元值和客户端节点历元值中的较大者;以及将计算出的历元身份值传送给群节点。
在又一实施例中,获得与当前历元相关联的历元身份值可包括:将客户端节点历元值传送给群节点,该客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;从群节点接收历元身份值和群节点身份;以及验证接收到的历元身份值等于或大于所传送的客户端节点历元值。
客户端节点使用实际时间来定义历元的示例性操作
图7(包括图7A和7B)解说了客户端节点用于使用实际时间定义历元来在客户端节点和群节点之间建立会话密钥的操作的一个示例。首先,客户端节点可接收来自群节点的消息,该消息包括群节点的实际时间Gnode_time和群节点身份Gnode_ID(702)。接下来,客户端节点可确定群节点的实际时间是否接近客户端节点的实际时间Cnode_time(704)。这可通过将群节点的实际时间与客户端节点的实际时间作比较来确定,其中若群节点的实际时间在客户端节点的实际时间的预定时间阈值之内,则建立受限密钥KR。若群节点的实际时间不在该阈值之内,则可中止该会话(706)。
若群节点的实际时间在预定宽度的窗口之内(即,在预定时间阈值之内),则客户端节点可从节点实际时间(例如,群节点的实际时间Gnode_time)计算历元身份值Epoch_ID(708)。接下来,可确定高速缓存中是否存在关于该群节点的条目,以及高速缓存历元身份值是否等于计算出的历元身份值Epoch_ID(710)。若高速缓存中不存在关于该群节点的条目或者高速缓存历元身份值不等于计算出的历元身份值Epoch_ID,则客户端节点随后可使用共享机密KM、历元身份值Epoch_ID、以及群节点身份Gnode_ID来计算受限密钥KR(712)。共享机密密钥可能已在客户端节点首次加入该系统时通过虚拟配对协议被建立。
接下来,客户端节点可与群节点执行会话密钥建立协议以推导会话密钥,其中在会话建立协议中使用受限密钥KR作为主密钥(714)。还可实现密钥验证协议以验证会话密钥。替换地,若高速缓存中存在关于该群节点的条目并且高速缓存历元身份值等于计算出的历元身份值Epoch_ID(710),则客户端节点不计算受限密钥并且可立即与群节点执行会话密钥建立协议以推导会话密钥,其中在会话建立协议中使用受限密钥作为主密钥(714)。接下来,若成功推导出会话密钥(716),则可确定高速缓存历元身份值是否等于计算出的历元身份值Epoch_ID(718)。若会话密钥没有被成功推导出或得到验证,则可中止该会话(720)。
若高速缓存历元身份值不等于计算出的历元身份值Epoch_ID,则可刷新高速缓存并且高速缓存历元身份可被设为计算出的历元身份值Epoch_ID(722)。客户端节点随后将元组插入高速缓存中以避免在同一个和/或当前历元期间为与该群节点创建的每个会话进行受限密钥推导(724)。
否则,若高速缓存历元身份值等于计算出的历元身份值,则高速缓存不被刷新,并且客户端节点随后将元组插入高速缓存中以避免在同一个和/或当前历元期间为与该群节点创建的每个会话进行受限密钥推导(724)。
由客户端节点发起的、客户端节点不使用实际时间来定义历元的示例性操作
图8(包括图8A和8B)解说了客户端节点用于在客户端节点和群节点之间建立会话密钥而不使用实际时间来定义历元、并且其中由客户端节点发起该会话的操作的示例。首先,客户端节点可向该客户端节点将与之通信的指定群节点发送/传送客户端节点历元值Epoch_IDCN,该客户端节点历元值Epoch_IDCN等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值(802)。它随后可从该群节点接收历元值Epoch_IDGN_Select(804)。接收到的历元值Epoch_IDGN_Select应当是传送给该群节点的客户端节点历元值和群节点处的最大历元值Epoch_IDGN中的较大者(在历元时间上最新近的)。若接收到的历元身份Epoch_IDGN_Select小于传送给该群节点的客户端节点历元身份(806),则客户端节点可中止该会话建立(808)。否则,历元身份值Epoch_ID(本文也称为“有效历元身份”)等于所传送的客户端节点历元值和接收到的历元身份Epoch_IDGN_Select中的较大者(810)。
接下来,可确定历元身份值Epoch_ID是否等于高速缓存的历元身份以及高速缓存中是否存在关于该群节点的条目(812)。若历元身份值Epoch_ID等于高速缓存的历元身份或者高速缓存中存在关于该群节点的条目,则客户端节点可与该群节点执行会话密钥建立协议以推导会话密钥,其中客户端节点使用受限密钥KR作为主密钥(816)。替换地,若历元身份值Epoch_ID不等于高速缓存的历元身份并且高速缓存中不存在关于该群节点的条目,则客户端节点首先使用历元身份值Epoch_ID、群节点身份Gnode_ID、以及共享机密密钥KM来计算受限密钥KR(814)。共享机密密钥可能已经经由客户端节点和中央节点之间的先前通信被建立。接下来,客户端节点与群节点执行会话密钥建立协议以推导会话密钥,其中客户端节点使用受限密钥KR作为主密钥,并且该会话密钥通过使用密钥验证协议来被验证(816)。若会话密钥建立协议不成功,则可中止该会话(822)。若成功推导出受限密钥(818),则随后可确定高速缓存历元身份是否等于历元身份值Epoch_ID(820)。
若高速缓存历元身份不等于历元身份值Epoch_ID,则高速缓存可被刷新并且高速缓存历元身份可被设为历元身份值Epoch_ID(824)。客户端节点随后可将元组插入高速缓存中以避免在同一个历元期间为与该群节点创建的每个会话进行受限密钥推导(826)。
替换地,若高速缓存历元身份等于历元身份值Epoch_ID,则高速缓存不被刷新,并且客户端节点随后可将元组插入高速缓存中以避免在同一个历元期间为与该群节点创建的每个会话进行受限密钥推导(826)。
由群节点发起的、客户端节点不使用实际时间来定义历元的示例性操作
图9(包括图9A和9B)解说了客户端节点用于在客户端节点和群节点之间建立会话密钥的操作的示例,其中不使用实际时间来定义历元,并且其中由群节点发起该会话。首先,客户端节点可从群节点接收群节点历元值Epoch_IDGN,其中Epoch_IDGN与群节点处的最大历元值相关联(902)。随后可计算历元身份值Epoch_ID。历元身份值Epoch_ID可等于接收到的群节点历元值和客户端节点历元值Epoch_IDCN中的较大值(在历元时间上最新近的)(904)。客户端节点历元值可等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值。
历元身份值Epoch_ID随后可被传送给该群节点(906)。接下来,可确定高速缓存中是否存在关于该群节点的条目以及历元身份值Epoch_ID是否等于高速缓存的历元身份(908)。若高速缓存中存在关于该群节点的条目并且历元身份值Epoch_ID等于高速缓存的历元身份,则客户端节点可与该群节点执行会话密钥建立协议以建立会话密钥,其中客户端节点使用受限密钥KR作为主密钥(912)。替换地,若历元身份值Epoch_ID不等于高速缓存的历元身份或者高速缓存中不存在关于该群节点的条目,则客户端节点首先使用历元身份值Epoch_ID、群节点身份Gnode_ID、以及共享机密密钥KM来计算受限密钥KR(910)。共享机密密钥可能已经经由客户端节点和中央节点之间的先前通信被建立。接下来,客户端节点与群节点执行会话密钥建立协议以生成会话密钥,其中客户端节点使用受限密钥KR作为主密钥(912)。
若成功推导出会话密钥(914),则随后可确定高速缓存历元身份是否等于历元身份值Epoch_ID(916)。若会话密钥建立协议失败和/或会话密钥没有得到验证,则可中止该会话(918)。
若高速缓存历元身份不等于历元身份值Epoch_ID,则高速缓存可被刷新并且高速缓存历元身份可被设为历元身份值Epoch_ID(920)。客户端节点随后可将元组插入高速缓存中以避免在同一个历元期间为与该群节点创建的每个会话进行受限密钥推导(922)。
替换地,若高速缓存历元身份等于历元身份值Epoch_ID,则高速缓存不被刷新,并且客户端节点随后可将元组插入高速缓存中以避免在同一个历元期间为与该群节点创建的每个会话进行受限密钥推导(922)。
示例性群节点
图10解说了根据一个示例的群节点104的功能框图。群节点104可提供客户端节点102与中央节点106之间的间接通信。群节点104可包括处理电路(例如,处理器、处理模块、ASIC等)1002、存储器电路(例如,存储器、存储器设备、存储器模块等)1004、高速缓存1006、第一通信接口1008、和/或第二通信接口1010,它们可全部例如经由通信总线1012通信地彼此耦合。
处理电路1002可执行数据处理,包括执行处理器可读过程步骤,诸如本文中描述的和/或附图中解说的在群节点处操作的任何步骤。例如,处理电路1002可以是专用处理器(例如,ASIC),其适配成至少执行图11中所示的步骤1102-1108。存储器电路1004可包括高速缓存1006,高速缓存1006可存储代理令牌(活跃集或储备集)、会话密钥、客户端节点标识符、受限密钥KR和相关联的历元身份信息(诸如Epoch_ID)、以及其他数据。第一通信接口1008适配成将群节点104通信地耦合至中央节点106。第一通信接口可以是无线或有线连接。第二通信接口1010可利用任何低功率通信协议(诸如但不限于低能量、Wifi、和/或协议)来将群节点104通信地耦合至通信系统100中的客户端节点102(例如,经由无线连接1014)。
群节点建立会话密钥的示例性操作
图11解说了演示在群节点处操作的用于在该群节点与客户端节点之间建立会话密钥的示例性方法的流程图1100。首先,群节点从中央节点接收与一历元相关联的第一代理令牌集,其中第一代理令牌集包括与客户端节点相关联的代理令牌,并且该代理令牌包括客户端节点身份和受限密钥(1102)。接下来,群节点将第一代理令牌集存储为储备代理令牌集(1104)。随后,在该历元的开始之际,群节点用该储备代理令牌集来替换活跃代理令牌集,其中该储备代理令牌集变为下一个活跃代理令牌集(1106)。接下来,群节点与客户端节点执行会话密钥建立协议以推导会话密钥,在该会话密钥建立协议中使用受限密钥作为主密钥(1108)。
在一个实施例中,群节点还可获得与该历元相关联的历元身份值,并且基于该历元身份值来检索受限密钥。在一个示例中,获得与该历元相关联的历元身份值可包括:接收客户端节点实际时间;将客户端节点实际时间与群节点实际时间作比较;确定群节点实际时间与客户端节点实际时间之差在最大时间阈值差之内;以及基于节点实际时间计算历元身份值。
在一个示例中,基于该历元身份值来检索受限密钥可进一步包括:确定储备代理令牌集还是活跃代理令牌集对应于该历元身份值;若储备代理令牌集与该历元身份值相关联,则从储备代理令牌集获得受限密钥;以及若储备代理令牌集与该历元身份值相关联,则从代理令牌集获得受限密钥。
群节点使用实际时间来定义历元的示例性操作
图12解说了群节点相对于中央节点的使用实际时间来定义历元的操作的示例。群节点可从中央节点接收代理令牌集(即,来自中央节点的关于通信系统中的每个客户端节点的代理令牌),其中该集合中的每个代理令牌具有客户端节点身份和受限密钥(1202)。群节点随后可将该代理令牌集存储为储备代理令牌集(1204)。它随后可等待直至下一个历元的开始(1206)。接下来,群节点可丢弃活跃代理令牌集并用该储备代理令牌集来替换它,该储备代理令牌集变为下一个活跃代理令牌集(1208)。随后可与客户端节点执行标准会话密钥建立协议以推导会话密钥,其中群节点使用受限密钥作为主密钥(1210)。
图13(包括图13A和13B)解说了群节点用于使用实际时间定义历元来在该群节点和客户端节点之间建立通信会话的操作的示例。该会话可由群节点发起(1302)或客户端节点发起(1304)。一旦被发起,群节点就可从客户端节点接收该客户端节点的实际时间(1308)。若群节点发起了该会话,则群节点可首先向客户端节点发送请求(1306)。
接下来,群节点可确定群节点的实际时间是否接近该客户端节点的实际时间(1310)。这可通过将群节点的实际时间与客户端节点的实际时间作比较来确定,其中若群节点的实际时间在客户端节点的实际时间的预定最大时间阈值之内,则建立受限密钥。若群节点的实际时间不在该阈值之内,则可中止该会话(1312)。若群节点的实际时间在该预定最大时间阈值之内,则群节点可从节点实际时间(例如,群节点的实际时间或客户端节点的实际时间Cnode_time)计算历元身份值(1314)。无论群节点使用哪个节点的实际时间,客户端节点都必须使用相同节点的实际时间,以便计算出相同的Epoch_ID。
接下来,可确定哪个代理令牌集对应于计算出的历元身份值(1316)。若储备令牌集和活跃令牌集都不对应于计算出的历元,则可中止该会话(1318)。若储备令牌集对应于计算出的历元身份值,则从该储备集获得该客户端节点的受限密钥(1320)。若活跃令牌集对应于计算出的历元身份值,则从该活跃集获得该客户端节点的受限密钥(1322)。
在已获得受限密钥KR之后,群节点可与客户端节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥(1324)。还可执行密钥验证协议来验证会话密钥。接下来,可作出关于是否成功建立了会话密钥的确定(1326)。若会话密钥没有被成功建立和/或得到验证,则可中止该会话(1328)。
在群节点的用于在群节点与客户端节点之间建立会话密钥的操作的另一示例中,群节点可获得与历元相关联的历元身份值。接下来,群节点可基于该历元身份值来检索受限密钥。在一个实施例中,获得与历元相关联的历元身份值包括:接收客户端节点实际时间;将客户端节点实际时间与群节点实际时间作比较;确定群节点实际时间在客户端节点实际时间的最大时间阈值之内;以及基于群节点实际时间计算历元身份值。在另一个实施例中,基于历元身份值来检索受限密钥进一步包括:确定储备代理令牌集还是活跃代理令牌集对应于该历元身份值;若储备代理令牌集与该历元身份值相关联,则从储备代理令牌集获得受限密钥;以及若储备代理令牌集与该历元身份值相关联,则从代理令牌集获得受限密钥。
群节点不使用实际时间来定义历元的示例性操作
图14解说了群节点相对于中央节点的不使用实际时间来定义历元的操作的示例。群节点可从中央节点接收代理令牌集(即,来自中央节点的关于通信系统中的每个客户端节点的代理令牌),其中每个代理令牌具有客户端节点身份和受限密钥(1402)。群节点随后可将该代理令牌集存储为储备代理令牌集(1404)。一旦接收到履行消息(1406),群节点就可丢弃活跃代理令牌集并用该储备代理令牌集来替换,该储备代理令牌集变为下一个活跃代理令牌集(1408)。随后可与客户端节点执行标准会话密钥建立协议以推导会话密钥,其中群节点使用受限密钥作为主密钥(1410)。
图15(包括图15A和15B)解说了群节点的用于不使用实际时间定义历元来在该群节点和客户端节点之间建立通信会话的操作的示例。该会话可由群节点发起(1502)或客户端节点发起(1504)。若该会话由群节点发起(1502),则群节点可将本地历元身份(例如,Epoch_IDGN)发送给客户端节点(1506)并接收来自客户端节点的历元身份(例如,Epoch_IDCN)(1508)。历元身份值Epoch_ID被计算为该本地(即,群节点的)历元身份和接收到的历元身份中的较大者(1510)。
若该会话由客户端节点发起(1504),则群节点可接收来自客户端节点的历元身份(例如,Epoch_IDCN)(1512)。历元身份值Epoch_ID被计算为本地(即,群节点的)历元身份和接收到的历元身份中的较大者(1510)。历元身份值Epoch_ID随后可被发送给该客户端节点(1516)。
接下来,可确定哪个代理令牌集对应于计算出的历元身份值Epoch_ID(1518)。若储备令牌集和活跃令牌集都不对应于计算出的历元身份值Epoch_ID,则可中止该会话(1520)。若储备令牌集对应于计算出的历元身份值Epoch_ID,则从该储备集获得该客户端节点的受限密钥(1522)。若活跃令牌集对应于计算出的历元身份值Epoch_ID,则从该活跃集获得该客户端节点的受限密钥(1524)。
在已获得受限密钥KR之后,群节点可与客户端节点执行会话密钥建立协议以推导会话密钥,其中在该会话密钥建立协议中使用该受限密钥作为主密钥(1526)。还可执行密钥验证协议来验证会话密钥。接下来,可作出关于是否成功建立了会话密钥的确定(1528)。若会话密钥没有被成功建立和/或得到验证,则可中止该会话(1530)。
随后可执行与该客户端节点的标准密钥建立协议,其中在该密钥建立协议中使用该受限密钥作为主密钥。可提供会话密钥验证,并且可建立与该客户端节点的通信会话。
在一个实施例中,若客户端节点发起会话建立,则群节点可从该客户端节点接收历元身份值。接下来,若接收到的历元身份小于或等于上一个已履行历元身份,则可向客户端节点发送上一个已履行历元身份,或者若接收到的历元身份等于未履行历元身份,则可向客户端节点发送未履行历元身份,该未履行历元身份标识未履行历元。接下来,可确定接收到的历元身份是否大于上一个已履行历元身份以及接收到的历元身份是否不等于未履行历元身份。如果接收到的历元身份大于上一个已履行历元身份并且接收到的历元身份不等于未履行历元身份,则可中止该会话建立。
然而,如果接收到的历元身份不大于上一个已履行历元身份并且接收到的历元身份等于未履行历元身份,则可执行与该客户端节点的标准密钥建立协议。在一个实施例中,该密钥建立协议包含密钥验证步骤。群节点随后可进行与该客户端节点的通信会话。
示例性中央节点
图16解说了根据一个示例的中央节点106的功能框图。中央节点106可经由群节点104a–10c间接地与客户端节点102通信。中央节点106可包括处理电路(例如,处理器、处理模块、ASIC等)1602、存储器电路(例如,存储器、存储器设备、存储器模块等)1604、和/或通信接口1606,它们可全部例如经由通信总线1608通信地彼此耦合。
处理电路1602可执行数据处理,包括执行处理器可读过程步骤,诸如本文中描述的以及附图中解说的在中央节点处操作的任何步骤。例如,处理电路1602可以是专用处理器(例如,ASIC),其适配成至少执行图17中所示的步骤1702–1706。存储器电路1604适配成存储数据,包括但不限于:存储未受损群节点列表、以及客户端节点列表连同其相关联的共享机密密钥KM。通信接口1606适配成将中央节点106通信地耦合至群节点104。该通信接口可以是无线或有线连接。
中央节点用于在群节点与客户端节点之间建立通信会话的示例性操作
图17解说了演示在中央节点处操作的用于在第一群节点与客户端节点之间建立通信会话的示例性方法的流程图1700。首先,中央节点可确定第二群节点已受损,其中第一群节点具有第一群节点标识符(1702)。接下来,中央节点可将受损的第二群节点从未受损群节点列表中移除,其中该未受损群节点列表被存储在中央节点处并且包括第一群节点(1704)。接下来,中央节点可将与即将到来的历元相关联的多个代理令牌传送给未受损群节点列表上的每个未受损群节点。该多个代理令牌包括与第一群节点相关联的第一代理令牌并且被传送给第一群节点,其中第一代理令牌包括客户端节点身份和受限密钥。即将到来的历元与即将到来历元身份值相关联,并且受限密钥是从即将到来历元身份值、第一群节点标识符、以及先前在客户端节点与中央节点之间建立的共享密钥计算出的(1706)。
在一个实施例中,可在即将到来的历元开始之前传送代理令牌。在另一个实施例中,中央节点可将履行消息传送给第一群节点,该履行消息指示即将到来的历元的开始。
中央节点使用实际时间来定义历元的示例性操作
图18解说了中央节点用于使用实际时间定义历元来在群节点和客户端节点之间建立通信会话的操作的示例。中央节点可等待直至即将到来的历元开始前的预定时间(1802)。它随后可计算即将到来的历元的历元身份值(1804)。接下来,中央节点可为未受损群节点和客户端节点的每一个组合计算受限密钥KR,并使用即将到来的历元的历元身份值来构造代理元组(1806)。对于每个未受损群节点,中央节点可发送关于该群节点的代理元组(1808)。
例如,中央节点可使用下式为特定的“群节点和客户端节点”组合计算受限密钥KR:
KR=CMAC(KM,Gnode_ID||Epoch_ID)
其中Gnode_ID可以是群节点身份,Epoch_ID可以是即将到来历元值,KM可以是在客户端节点与中央节点之间共享的共享机密密钥,而CMAC可以是基于密文的消息认证码(CMAC)算法。
在另一示例中,中央节点可将用于历元的代理令牌传送给通信系统中的群节点,该代理令牌具有客户端节点身份和受限密钥,其中该受限密钥是从历元身份值Epoch_ID、群节点身份Gnode_ID、以及先前在客户端节点与中央节点之间建立的共享机密密钥KM计算出的。历元身份值可以是从实际时间计算出的。随后可确定群节点是否已退役、受损、丢失、失窃、或变为有故障。若确定群节点已受损,则可将受损群节点从中央节点上存储的未受损群节点列表中移除。中央节点随后可终止向受损群节点传送代理令牌并将用于历元的代理令牌传送给通信系统中的未受损群节点(未受损群节点列表中的元素),该代理令牌具有客户端节点身份和受限密钥,其中该受限密钥是从即将到来的历元的身份、群节点的身份、以及先前在客户端节点与中央节点之间建立的共享密钥计算出的。
中央节点不使用实际时间来定义历元的示例性操作
图19解说了中央节点用于在群节点和客户端节点之间建立通信会话的操作的示例,其中历元身份不与实际时间相关。中央节点可选取下一历元的时间或事件,并随后等待该时间或事件发生(1902)。一旦它发生,历元身份值计数器就可递增(1904)。接下来,中央节点可为未受损群节点和客户端节点的每一个组合计算受限密钥KR,并使用即将到来的历元的历元身份来构造代理元组(1906)。对于每个未受损群节点,可发送履行消息,该履行消息指示该历元的开始(1908)。
例如,中央节点可使用下式为特定的“群节点和客户端节点”组合计算受限密钥KR:
KR=CMAC(KM,Gnode_ID||Epoch_ID)
其中Gnode_ID可以是群节点身份,Epoch_ID可以是与即将到来的历元相关联的值,KM可以是在客户端节点与中央节点之间共享的共享机密密钥,而CMAC可以是基于密文的消息认证码(CMAC)算法。
在中央节点用于在群节点和客户端节点之间建立通信会话的操作的另一示例中(其中历元身份不与实际时间相关),中央节点可对加入系统的新客户端节点使用虚拟配对协议。
可作出群节点是否已受损、丢失、失窃、变为有故障、或出于管理原因而要被移除的确定。如果已发现受损群节点,则可将受损群节点从中央节点上存储的未受损群节点列表中移除。中央节点随后可终止向受损群节点传送代理令牌并将用于历元的代理令牌传送给通信系统中的每个未受损群节点(这些未受损节点取自未受损节点列表),该代理令牌具有客户端节点身份和受限密钥,其中该受限密钥是从即将到来的历元的身份、群节点的身份、以及先前在客户端节点与中央节点之间建立的共享密钥计算出的。随后可向群节点发送履行消息,该履行消息指示该历元的开始。
然而,若群节点并未受损,则可作出关于是否要开始新历元的确定。若要开始新历元,则关于每个客户端节点的新代理令牌可被发送给群节点,并且指示新历元已开始的新履行消息、以及要丢弃旧代理令牌的指示可被发送给群节点。当中央节点将要发起新历元时,它可递增历元身份值计数器。
图1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18和/或19中解说的组件、步骤、特征和/或功能之中的一个或更多个可以被重新编排和/或组合成单个组件、步骤、特征或功能,或实施在数个组件、步骤、或功能中。也可添加额外的元件、组件、步骤、和/或功能而不会脱离本发明。图1、5、10和/或16中解说的装置、设备、和/或组件可被配置成执行在图2、3、4、6、7、8、9、11、12、13、14、15、17、18和/或19中描述的方法、特征、或步骤中的一个或多个。本文中描述的算法也可以高效地实现在软件中和/或嵌入在硬件中。
还应注意,这些实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多能够并行或并发地执行。另外,这些操作的次序可以被重新安排。过程在其操作完成时终止。过程可以对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,其终止对应于该函数返回到调用方函数或主函数。
此外,存储介质可表示用于存储数据的一个或更多个设备,包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备和/或其他用于存储信息的机器可读介质、以及处理器可读介质、和/或计算机可读介质。术语“机器可读介质”、“计算机可读介质”和/或“处理器可读介质”可包括,但不限于非瞬态介质,诸如便携或固定的存储设备、光学存储设备、以及能够存储、包含或承载指令和/或数据的各种其它介质。因此,本文中描述的各种方法可全部或部分地由可存储在“机器可读介质”、“计算机可读介质”和/或“处理器可读介质”中并由一个或更多个处理器、机器和/或设备执行的指令和/或数据来实现。
此外,诸实施例可以由硬件、软件、固件、中间件、微代码、或其任何组合来实现。当在软件、固件、中间件或微码中实现时,执行必要任务的程序代码或代码段可被存储在诸如存储介质之类的机器可读介质或其它存储中。处理器可以执行这些必要的任务。代码段可表示规程、函数、子程序、程序、例程、子例程、模块、软件包、类,或是指令、数据结构、或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数、或存储器内容,一代码段可被耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等任何合适的手段被传递、转发、或传输。
结合本文中公开的示例描述的各个解说性逻辑块、模块、电路、元件和/或组件可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文中描述的功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以实现为计算组件的组合,例如DSP与微处理器的组合、数个微处理器、与DSP核心协作的一个或更多个微处理器、或任何其他此类配置。
结合本文中公开的示例描述的方法或算法可直接在硬件中、在能由处理器执行的软件模块中、或在这两者的组合中以处理单元、编程指令、或其他指示的形式实施,并且可包含在单个设备中或跨多个设备分布。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域内已知的任何其他形式的存储介质中。存储介质可被耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。替换地,存储介质可以被整合到处理器。
本领域技术人员将可进一步领会,结合本文中公开的实施例描述的各种解说性逻辑框、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。
本文中所描述的本发明的各种特征可实现于不同系统中而不脱离本发明。应注意,以上实施例仅是示例,且不应被解释成限定本发明。这些实施例的描述旨在解说,而并非旨在限定权利要求的范围。由此,本发明的教导可以现成地应用于其他类型的装置,并且许多替换、修改、和变形对于本领域技术人员将是显而易见的。
Claims (47)
1.一种在客户端节点处操作的用于在所述客户端节点与群节点之间建立会话密钥的方法,所述方法包括:
获得与当前历元相关联的历元身份值,其中获得所述历元身份值包括基于节点实际时间计算所述历元身份值或与所述群节点协商所述历元身份值中的一者;
使用共享机密密钥、所述历元身份值、以及与所述群节点相关联的群节点身份来计算受限密钥,所述共享机密密钥是所述客户端节点和中央节点所知晓的;以及
与所述群节点执行会话密钥建立协议以推导所述会话密钥,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
2.如权利要求1所述的方法,其特征在于,进一步包括:
在所述客户端节点、所述群节点、以及所述中央节点之间宽松地同步时间,并且其中获得与所述当前历元相关联的所述历元身份值包括:
从所述群节点接收群节点实际时间和所述群节点身份;
将所述群节点实际时间与客户端节点实际时间作比较;
确定所述群节点实际时间与所述客户端节点实际时间之差在最大时间阈值差之内;以及
从所述节点实际时间计算所述历元身份值。
3.如权利要求1所述的方法,其特征在于,获得与所述当前历元相关联的所述历元身份值包括:
从所述群节点接收群节点历元值和所述群节点身份;
将所述群节点历元值与客户端节点历元值作比较,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
将所述历元身份值计算为所述群节点历元值和所述客户端节点历元值中的较大者;以及
将计算出的所述历元身份值传送给所述群节点。
4.如权利要求1所述的方法,其特征在于,获得与所述当前历元相关联的所述历元身份值包括:
将客户端节点历元值传送给所述群节点,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
从所述群节点接收所述历元身份值和所述群节点身份;以及
验证接收到的所述历元身份值等于或大于所传送的所述客户端节点历元值。
5.如权利要求1所述的方法,其特征在于,进一步包括使用密钥验证协议来验证所述会话密钥。
6.如权利要求1所述的方法,其特征在于,所述群节点与所述中央节点之间的通信链路在所述当前历元期间仅间歇性地可用。
7.如权利要求1所述的方法,其特征在于,所述受限密钥是因历元而异的。
8.如权利要求7所述的方法,其特征在于,所述受限密钥是因群节点而异的。
9.如权利要求1所述的方法,其特征在于,所述受限密钥由所述中央节点提供给所述群节点。
10.如权利要求1所述的方法,其特征在于,所述中央节点维护未受损群节点列表,并且其中受损群节点从所述列表中被移除。
11.如权利要求1所述的方法,其特征在于,所述受限密钥在所述当前历元期间被使用多次以推导多个会话密钥。
12.如权利要求1所述的方法,其特征在于,所述当前历元有非固定历时并且在新历元开始之际期满。
13.如权利要求12所述的方法,其特征在于,所述历元身份值是由所述中央节点生成的顺序整数,并在所述新历元开始之际由所述中央节点递增。
14.如权利要求1所述的方法,其特征在于,所述中央节点通过向所述群节点传送履行消息来指示所述当前历元的开始。
15.如权利要求1所述的方法,其特征在于,所述历元是从实际时间推导出的。
16.如权利要求1所述的方法,其特征在于,使用所述共享机密密钥、所述历元身份值、以及所述群节点身份来计算所述受限密钥是使用基于密文的消息认证码(CMAC)函数、基于散列的消息认证码(HMAC)函数、或密码块链式消息认证码(CBC-MAC)函数之一来执行的。
17.如权利要求1所述的方法,其特征在于,进一步包括:
将元组插入高速缓存中以避免在所述当前历元期间为与所述群节点创建的每个会话进行所述受限密钥的推导。
18.如权利要求17所述的方法,其特征在于,所述元组包括所述群节点身份和所述受限密钥。
19.如权利要求17所述的方法,其特征在于,当所述当前历元期满时,所述高速缓存被刷新。
20.一种客户端节点,包括:
通信接口,其适配成与群节点通信;以及
通信地耦合到所述通信接口的处理电路,所述处理电路适配成:
获得与当前历元相关联的历元身份值,其中获得所述历元身份值包括基于节点实际时间计算所述历元身份值或与所述群节点协商所述历元身份值中的一者,
使用共享机密密钥、所述历元身份值、以及与所述群节点相关联的群节点身份来计算受限密钥,所述共享机密密钥是所述客户端节点和中央节点所知晓的,以及
与所述群节点执行会话密钥建立协议以推导会话密钥,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
21.如权利要求20所述的客户端节点,其特征在于,所述处理电路进一步适配成在所述客户端节点、所述群节点、以及所述中央节点之间宽松地同步时间,并且其中所述获得与所述当前历元相关联的所述历元身份值使所述处理电路:
从所述群节点接收群节点实际时间和所述群节点身份;
将所述群节点实际时间与客户端节点实际时间作比较;
确定所述群节点实际时间与所述客户端节点实际时间之差在最大时间阈值差之内;以及
从所述节点实际时间计算所述历元身份值。
22.如权利要求20所述的客户端节点,其特征在于,所述获得与所述当前历元相关联的所述历元身份值使所述处理电路:
从所述群节点接收群节点历元值和所述群节点身份;
将所述群节点历元值与客户端节点历元值作比较,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
将所述历元身份值计算为所述群节点历元值和所述客户端节点历元值中的较大者;以及
将计算出的所述历元身份值传送给所述群节点。
23.如权利要求20所述的客户端节点,其特征在于,所述获得与所述当前历元相关联的所述历元身份值使所述处理电路:
将客户端节点历元值传送给所述群节点,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
从所述群节点接收所述历元身份值和所述群节点身份;以及
验证接收到的所述历元身份值等于或大于所传送的所述客户端节点历元值。
24.一种客户端节点,包括:
用于获得与当前历元相关联的历元身份值的装置,其中获得所述历元身份值包括基于节点实际时间计算所述历元身份值或与群节点协商所述历元身份值中的一者;
用于使用共享机密密钥、所述历元身份值、以及与群节点相关联的群节点身份来计算受限密钥的装置,所述共享机密密钥是所述客户端节点和中央节点所知晓的;以及
与所述群节点执行会话密钥建立协议以推导会话密钥,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
25.如权利要求24所述的客户端节点,其特征在于,进一步包括:
用于在所述客户端节点、所述群节点、以及所述中央节点之间宽松地同步时间的装置,并且其中所述用于获得与所述当前历元相关联的所述历元身份值的装置包括:
用于从所述群节点接收群节点实际时间和所述群节点身份的装置;
用于将所述群节点实际时间与客户端节点实际时间作比较的装置;
用于确定所述群节点实际时间与所述客户端节点实际时间之差在最大时间阈值差之内的装置;以及
用于从所述节点实际时间计算所述历元身份值的装置。
26.如权利要求24所述的客户端节点,其特征在于,所述用于获得与所述当前历元相关联的所述历元身份值的装置包括:
用于从所述群节点接收群节点历元值和所述群节点身份的装置;
用于将所述群节点历元值与客户端节点历元值作比较的装置,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
用于将所述历元身份值计算为所述群节点历元值和所述客户端节点历元值中的较大者的装置;以及
用于将计算出的所述历元身份值传送给所述群节点的装置。
27.如权利要求24所述的客户端节点,其特征在于,所述用于获得与所述当前历元相关联的所述历元身份值的装置包括:
用于将客户端节点历元值传送给所述群节点的装置,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
用于从所述群节点接收所述历元身份值和所述群节点身份的装置;以及
用于验证接收到的所述历元身份值等于或大于所传送的所述客户端节点历元值的装置。
28.一种具有在客户端节点处操作的用于在所述客户端节点与群节点之间建立会话密钥的一条或多条指令的处理器可读介质,所述指令在由至少一个处理器执行时使所述处理器:
获得与当前历元相关联的历元身份值,其中获得所述历元身份值包括基于节点实际时间计算所述历元身份值或与所述群节点协商所述历元身份值中的一者;
使用共享机密密钥、所述历元身份值、以及与所述群节点相关联的群节点身份来计算受限密钥,所述共享机密密钥是所述客户端节点和中央节点所知晓的,以及
与所述群节点执行会话密钥建立协议以推导所述会话密钥,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
29.如权利要求28所述的处理器可读介质,其特征在于,其具有附加指令,所述附加指令在由所述处理器执行时进一步使所述处理器:
在所述客户端节点、所述群节点、以及所述中央节点之间宽松地同步时间,并且其中获得与所述当前历元相关联的所述历元身份值包括:
从所述群节点接收群节点实际时间和所述群节点身份;
将所述群节点实际时间与客户端节点实际时间作比较;
确定所述群节点实际时间与所述客户端节点实际时间之差在最大时间阈值差之内;以及
从所述节点实际时间计算所述历元身份值。
30.如权利要求28所述的处理器可读介质,其特征在于,获得与所述当前历元相关联的所述历元身份值包括:
从所述群节点接收群节点历元值和所述群节点身份;
将所述群节点历元值与客户端节点历元值作比较,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
将所述历元身份值计算为所述群节点历元值和所述客户端节点历元值中的较大者;以及
将计算出的所述历元身份值传送给所述群节点。
31.如权利要求28所述的处理器可读介质,其特征在于,获得与所述当前历元相关联的所述历元身份值包括:
将客户端节点历元值传送给所述群节点,所述客户端节点历元值等于在上一次成功建立的与任何群节点的会话中所使用的上一个已知历元身份值;
从所述群节点接收所述历元身份值和所述群节点身份;以及
验证接收到的所述历元身份值等于或大于所传送的所述客户端节点历元值。
32.一种在群节点处操作的用于在所述群节点与客户端节点之间建立会话密钥的方法,所述方法包括:
从中央节点接收与一历元相关联的第一代理令牌集,所述第一代理令牌集包括与所述客户端节点相关联的代理令牌,所述代理令牌包括客户端节点身份和受限密钥;
将所述第一代理令牌集存储为储备代理令牌集;
在所述历元的开始之际,用所述储备代理令牌集来替换活跃代理令牌集,所述储备代理令牌集变为下一个活跃代理令牌集;以及
与所述客户端节点执行会话密钥建立协议以推导所述会话密钥,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
33.如权利要求32所述的方法,其特征在于,进一步包括:
获得与所述历元相关联的历元身份值;以及
基于所述历元身份值来检索所述受限密钥。
34.如权利要求33所述的方法,其特征在于,获得与所述历元相关联的所述历元身份值包括:
接收客户端节点实际时间;
将所述客户端节点实际时间与群节点实际时间作比较;
确定所述群节点实际时间与所述客户端节点实际时间之差在最大时间阈值差之内;以及
基于节点实际时间计算所述历元身份值。
35.如权利要求33所述的方法,其特征在于,基于所述历元身份值来检索所述受限密钥进一步包括:
确定所述储备代理令牌集还是所述活跃代理令牌集对应于所述历元身份值;
若所述储备代理令牌集与所述历元身份值相关联,则从所述储备代理令牌集获得所述受限密钥;以及
若所述储备代理令牌集与所述历元身份值相关联,则从所述代理令牌集获得所述受限密钥。
36.如权利要求32所述的方法,其特征在于,进一步包括:
在所述中央节点、所述群节点、以及所述客户端节点之间宽松地同步时间;
获得与当前时间相关联的历元身份值;以及
基于所述历元身份值和所述客户端节点身份从所述第一代理令牌集中选择所述客户端节点的所述受限密钥。
37.如权利要求32所述的方法,其特征在于,进一步包括:
从所述中央节点接收至少一条消息,所述至少一条消息包括与所述历元相关联的历元身份值、以及所述第一代理令牌集;以及
从所述中央节点接收履行消息,所述履行消息指示所述历元的开始。
38.如权利要求32所述的方法,其特征在于,所述群节点与所述中央节点之间的通信链路在所述历元期间仅间歇性地可用。
39.一种群节点,包括:
第一通信接口,其适配成与中央节点通信;
第二通信接口,其适配成与客户端节点通信;以及
通信地耦合至所述第一和第二通信接口的处理电路,所述处理电路适配成:
从所述中央节点接收与一历元相关联的第一代理令牌集,所述第一代理令牌集包括与所述客户端节点相关联的代理令牌,所述代理令牌包括客户端节点身份和受限密钥,
将所述第一代理令牌集存储为储备代理令牌集,
在所述历元的开始之际,用所述储备代理令牌集来替换活跃代理令牌集,所述储备代理令牌集变为下一个活跃代理令牌集,以及
与所述客户端节点执行会话密钥建立协议以推导会话密钥,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
40.一种群节点,包括:
用于从中央节点接收与一历元相关联的第一代理令牌集的装置,所述第一代理令牌集包括与客户端节点相关联的代理令牌,所述代理令牌包括客户端节点身份和受限密钥;
用于将所述第一代理令牌集存储为储备代理令牌集的装置;
用于在所述历元的开始之际,用所述储备代理令牌集来替换活跃代理令牌集的装置,所述储备代理令牌集变为下一个活跃代理令牌集;以及
用于与所述客户端节点执行会话密钥建立协议以推导会话密钥的装置,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
41.一种具有在群节点处操作的用于在所述群节点与客户端节点之间建立会话密钥的一条或多条指令的处理器可读介质,所述指令在由至少一个处理器执行时使所述处理器:
从中央节点接收与一历元相关联的第一代理令牌集,所述第一代理令牌集包括与所述客户端节点相关联的代理令牌,所述代理令牌包括客户端节点身份和受限密钥;
将所述第一代理令牌集存储为储备代理令牌集;
在所述历元的开始之际,用所述储备代理令牌集来替换活跃代理令牌集,所述储备代理令牌集变为下一个活跃代理令牌集;以及
与所述客户端节点执行会话密钥建立协议以推导所述会话密钥,其中在所述会话密钥建立协议中使用所述受限密钥作为主密钥。
42.一种在中央节点处操作的用于在第一群节点与客户端节点之间建立通信会话的方法,所述方法包括:
确定第二群节点已受损,所述第一群节点具有第一群节点标识符;
将受损的所述第二群节点从未受损群节点列表中移除,其中所述未受损群节点列表被存储在所述中央节点处并且包括所述第一群节点;以及
将与即将到来的历元相关联的多个代理令牌传送给所述未受损群节点列表上的每个未受损群节点,所述多个代理令牌包括与所述第一群节点相关联的第一代理令牌并且被传送给所述第一群节点,所述第一代理令牌包括客户端节点身份和受限密钥,所述即将到来的历元与即将到来历元身份值相关联,其中所述受限密钥是从所述即将到来历元身份值、所述第一群节点标识符、以及先前在所述客户端节点与所述中央节点之间建立的共享密钥计算出的。
43.如权利要求42所述的方法,其特征在于,所述第一代理令牌在所述即将到来的历元开始之前被传送。
44.如权利要求43所述的方法,其特征在于,进一步包括:
向所述第一群节点传送履行消息,所述履行消息指示所述即将到来的历元的开始。
45.一种用于在第一群节点与客户端节点之间建立通信会话的中央节点,所述中央节点包括:
通信接口,其适配成与所述第一群节点通信;以及
处理电路,其耦合到所述通信接口并适配成:
确定第二群节点已受损,所述第一群节点具有第一群节点标识符,
将受损的所述第二群节点从未受损群节点列表中移除,其中所述未受损群节点列表被存储在所述中央节点处并且包括所述第一群节点,以及
将与即将到来的历元相关联的多个代理令牌传送给所述未受损群节点列表上的每个未受损群节点,所述多个代理令牌包括与所述第一群节点相关联的第一代理令牌并且被传送给所述第一群节点,所述第一代理令牌包括客户端节点身份和受限密钥,所述即将到来的历元与即将到来历元身份值相关联,其中所述受限密钥是从所述即将到来历元身份值、所述第一群节点标识符、以及先前在所述客户端节点与所述中央节点之间建立的共享密钥计算出的。
46.一种用于在第一群节点与客户端节点之间建立通信会话的中央节点,所述中央节点包括:
用于确定第二群节点已受损的装置,所述第一群节点具有第一群节点标识符;
用于将受损的所述第二群节点从未受损群节点列表中移除的装置,其中所述未受损群节点列表被存储在所述中央节点处并且包括所述第一群节点;以及
用于将与即将到来的历元相关联的多个代理令牌传送给所述未受损群节点列表上的每个未受损群节点的装置,所述多个代理令牌包括与所述第一群节点相关联的第一代理令牌并且被传送给所述第一群节点,所述第一代理令牌包括客户端节点身份和受限密钥,所述即将到来的历元与即将到来历元身份值相关联,其中所述受限密钥是从所述即将到来历元身份值、所述第一群节点标识符、以及先前在所述客户端节点与所述中央节点之间建立的共享密钥计算出的。
47.一种具有在中央节点处操作的用于在第一群节点与客户端节点之间建立通信会话的一条或多条指令的处理器可读介质,所述指令在由至少一个处理器执行时使所述处理器:
确定第二群节点已受损,所述第一群节点具有第一群节点标识符;
将受损的所述第二群节点从未受损群节点列表中移除,其中所述未受损群节点列表被存储在所述中央节点处并且包括所述第一群节点;以及
将与即将到来的历元相关联的多个代理令牌传送给所述未受损群节点列表上的每个未受损群节点,所述多个代理令牌包括与所述第一群节点相关联的第一代理令牌并且被传送给所述第一群节点,所述第一代理令牌包括客户端节点身份和受限密钥,所述即将到来的历元与即将到来历元身份值相关联,其中所述受限密钥是从所述即将到来历元身份值、所述第一群节点标识符、以及先前在所述客户端节点与所述中央节点之间建立的共享密钥计算出的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/157,048 US9602276B2 (en) | 2010-06-11 | 2011-06-09 | Method and apparatus for virtual pairing with a group of semi-connected devices |
US13/157,048 | 2011-06-09 | ||
PCT/US2011/040099 WO2012170039A1 (en) | 2011-06-09 | 2011-06-10 | Method and apparatus for virtual pairing with a group of semi-connected devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103597773A true CN103597773A (zh) | 2014-02-19 |
CN103597773B CN103597773B (zh) | 2016-06-15 |
Family
ID=44627443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180071493.2A Expired - Fee Related CN103597773B (zh) | 2011-06-09 | 2011-06-10 | 用于与半连通设备群进行虚拟配对的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9602276B2 (zh) |
EP (1) | EP2719113B1 (zh) |
JP (1) | JP5878630B2 (zh) |
KR (1) | KR101553488B1 (zh) |
CN (1) | CN103597773B (zh) |
WO (1) | WO2012170039A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751821A (zh) * | 2020-07-29 | 2021-05-04 | 上海安辰网络科技有限公司 | 一种数据传输方法、电子设备和一种存储介质 |
CN114095166A (zh) * | 2021-11-23 | 2022-02-25 | 北京京东方技术开发有限公司 | 生成节点临时身份标识的方法、节点及系统 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012205088A (ja) * | 2011-03-25 | 2012-10-22 | Toshiba Corp | ノード及びグループ鍵更新方法 |
US9398050B2 (en) * | 2013-02-01 | 2016-07-19 | Vidder, Inc. | Dynamically configured connection to a trust broker |
US9641640B2 (en) * | 2013-10-04 | 2017-05-02 | Akamai Technologies, Inc. | Systems and methods for controlling cacheability and privacy of objects |
US9648125B2 (en) * | 2013-10-04 | 2017-05-09 | Akamai Technologies, Inc. | Systems and methods for caching content with notification-based invalidation |
JP6179815B2 (ja) * | 2014-01-10 | 2017-08-16 | パナソニックIpマネジメント株式会社 | 暗号化データ通信装置、暗号化データ通信方法、プログラム、及び、記録媒体 |
EP2913955A1 (en) * | 2014-02-28 | 2015-09-02 | Gemalto SA | Method to authenticate two devices to establish a secure channel |
US9705892B2 (en) * | 2014-06-27 | 2017-07-11 | Intel Corporation | Trusted time service for offline mode |
US9436819B2 (en) * | 2014-09-23 | 2016-09-06 | Intel Corporation | Securely pairing computing devices |
EP3258375A1 (en) * | 2015-05-07 | 2017-12-20 | Cyber-Ark Software Ltd. | Systems and methods for detecting and reacting to malicious activity in computer networks |
JP2017111750A (ja) * | 2015-12-18 | 2017-06-22 | 富士通株式会社 | 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム |
US11329831B2 (en) | 2016-06-08 | 2022-05-10 | University Of Florida Research Foundation, Incorporated | Practical end-to-end cryptographic authentication for telephony over voice channels |
JP6468567B2 (ja) | 2016-09-01 | 2019-02-13 | 日本電信電話株式会社 | 鍵交換方法、鍵交換システム |
US10554480B2 (en) | 2017-05-11 | 2020-02-04 | Verizon Patent And Licensing Inc. | Systems and methods for maintaining communication links |
EP3656145B1 (en) * | 2017-07-17 | 2023-09-06 | Sonova AG | Encrypted audio streaming |
EP3786928B1 (en) * | 2018-04-25 | 2023-10-11 | Nippon Telegraph And Telephone Corporation | System, method, apparatus and program for secure aggregate maximum computation and for secure aggregate minimum computation |
US11093627B2 (en) * | 2018-10-31 | 2021-08-17 | L3 Technologies, Inc. | Key provisioning |
US11461244B2 (en) * | 2018-12-20 | 2022-10-04 | Intel Corporation | Co-existence of trust domain architecture with multi-key total memory encryption technology in servers |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101297300A (zh) * | 2005-09-01 | 2008-10-29 | 高通股份有限公司 | 多媒体内容传递的高效密钥层次 |
US20100220856A1 (en) * | 2009-02-27 | 2010-09-02 | Johannes Petrus Kruys | Private pairwise key management for groups |
US20100329463A1 (en) * | 2009-06-24 | 2010-12-30 | Cisco Technology, Inc. | Group key management for mobile ad-hoc networks |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7142814B2 (en) | 2002-12-11 | 2006-11-28 | Shary Nassimi | Automatic Bluetooth inquiry mode headset |
US7843830B1 (en) * | 2005-05-05 | 2010-11-30 | Force 10 Networks, Inc | Resilient retransmission of epoch data |
US7936878B2 (en) | 2006-04-10 | 2011-05-03 | Honeywell International Inc. | Secure wireless instrumentation network system |
CN101473626B (zh) | 2006-06-22 | 2013-09-18 | 皇家飞利浦电子股份有限公司 | 分级确定性成对密钥预分发方案 |
US20080037791A1 (en) * | 2006-08-09 | 2008-02-14 | Jakobsson Bjorn M | Method and apparatus for evaluating actions performed on a client device |
WO2009112966A2 (en) | 2008-03-10 | 2009-09-17 | Nds Limited | Key distribution system |
JP4390842B1 (ja) | 2008-08-15 | 2009-12-24 | 株式会社エヌ・ティ・ティ・ドコモ | 移動通信方法、無線基地局及び移動局 |
KR101657705B1 (ko) | 2008-10-06 | 2016-09-19 | 코닌클리케 필립스 엔.브이. | 네트워크를 운영하기 위한 방법, 시스템 관리 디바이스, 네트워크 및 이를 위한 컴퓨터 프로그램 |
US9015487B2 (en) | 2009-03-31 | 2015-04-21 | Qualcomm Incorporated | Apparatus and method for virtual pairing using an existing wireless connection key |
US8555063B2 (en) | 2009-09-30 | 2013-10-08 | Qualcomm Incorporated | Method for establishing a wireless link key between a remote device and a group device |
US8429404B2 (en) | 2009-09-30 | 2013-04-23 | Intel Corporation | Method and system for secure communications on a managed network |
-
2011
- 2011-06-09 US US13/157,048 patent/US9602276B2/en not_active Expired - Fee Related
- 2011-06-10 EP EP11727604.8A patent/EP2719113B1/en not_active Not-in-force
- 2011-06-10 CN CN201180071493.2A patent/CN103597773B/zh not_active Expired - Fee Related
- 2011-06-10 WO PCT/US2011/040099 patent/WO2012170039A1/en unknown
- 2011-06-10 KR KR1020147000569A patent/KR101553488B1/ko not_active IP Right Cessation
- 2011-06-10 JP JP2014514444A patent/JP5878630B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101297300A (zh) * | 2005-09-01 | 2008-10-29 | 高通股份有限公司 | 多媒体内容传递的高效密钥层次 |
US20100220856A1 (en) * | 2009-02-27 | 2010-09-02 | Johannes Petrus Kruys | Private pairwise key management for groups |
US20100329463A1 (en) * | 2009-06-24 | 2010-12-30 | Cisco Technology, Inc. | Group key management for mobile ad-hoc networks |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751821A (zh) * | 2020-07-29 | 2021-05-04 | 上海安辰网络科技有限公司 | 一种数据传输方法、电子设备和一种存储介质 |
CN112751821B (zh) * | 2020-07-29 | 2022-12-13 | 上海安辰网络科技有限公司 | 一种数据传输方法、电子设备和一种存储介质 |
CN114095166A (zh) * | 2021-11-23 | 2022-02-25 | 北京京东方技术开发有限公司 | 生成节点临时身份标识的方法、节点及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR101553488B1 (ko) | 2015-09-15 |
EP2719113A1 (en) | 2014-04-16 |
KR20140019867A (ko) | 2014-02-17 |
US20110305333A1 (en) | 2011-12-15 |
WO2012170039A1 (en) | 2012-12-13 |
US9602276B2 (en) | 2017-03-21 |
CN103597773B (zh) | 2016-06-15 |
JP2014520444A (ja) | 2014-08-21 |
JP5878630B2 (ja) | 2016-03-08 |
EP2719113B1 (en) | 2018-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103597773B (zh) | 用于与半连通设备群进行虚拟配对的方法和装置 | |
US8559642B2 (en) | Cryptographic communication with mobile devices | |
CN108401011B (zh) | 内容分发网络中握手请求的加速方法、设备及边缘节点 | |
CN102687482B (zh) | 数据云的分布式认证 | |
US20160099814A1 (en) | Secure pairing for secure communication across devices | |
JP2004104542A (ja) | ネットワーク、IPsec設定サーバ装置、IPsec処理装置及びそれらに用いるIPsec設定方法 | |
US9356776B2 (en) | Key managing system and method for sensor network security | |
CN104756458A (zh) | 用于保护通信网络中的连接的方法和设备 | |
CN110808834B (zh) | 量子密钥分发方法和量子密钥分发系统 | |
Khan et al. | A secure and efficient key agreement framework for critical energy infrastructure using mobile device | |
Ullah et al. | A secure NDN framework for Internet of Things enabled healthcare | |
US10999073B2 (en) | Secure network communication method | |
KR100892616B1 (ko) | 무선 센서 네트워크에서의 새로운 장치 참여 방법 | |
Roy et al. | A group key-based lightweight Mutual Authentication and Key Agreement (MAKA) protocol for multi-server environment | |
US11606193B2 (en) | Distributed session resumption | |
Abdmeziem et al. | Lightweighted and energy-aware MIKEY-Ticket for e-health applications in the context of internet of things | |
CN109088731B (zh) | 一种物联网云端通信方法及其装置 | |
KR20210126319A (ko) | 키 관리 장치 및 방법 | |
Lopes et al. | Low‐Cost Authentication Protocol for D2D Communication in m‐Health with Trust Evaluation | |
Boudguiga et al. | Server assisted key establishment for WSN: A MIKEY-Ticket approach | |
RU2722925C1 (ru) | Способ защищенного информационного обмена данными | |
Tamizhselvan et al. | Distributed time-dependent key management scheme for internet of things | |
Auten | Reconciling Nist's Post-Quantum Cryptography Candidates with Performance Requirements | |
JP2018078473A (ja) | 通信システム | |
Wang et al. | IoT data security authentication and key negotiation scheme based on edge computing and blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160615 Termination date: 20190610 |
|
CF01 | Termination of patent right due to non-payment of annual fee |