KR101553488B1 - 반접속된 디바이스들의 그룹과의 가상 페어링을 위한 방법 및 장치 - Google Patents

반접속된 디바이스들의 그룹과의 가상 페어링을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101553488B1
KR101553488B1 KR1020147000569A KR20147000569A KR101553488B1 KR 101553488 B1 KR101553488 B1 KR 101553488B1 KR 1020147000569 A KR1020147000569 A KR 1020147000569A KR 20147000569 A KR20147000569 A KR 20147000569A KR 101553488 B1 KR101553488 B1 KR 101553488B1
Authority
KR
South Korea
Prior art keywords
node
epoch
group
group node
key
Prior art date
Application number
KR1020147000569A
Other languages
English (en)
Other versions
KR20140019867A (ko
Inventor
데이비드 엠 제이콥슨
루 샤오
데이비드 제이 줄리안
잔펑 지아
브라이언 엠 부스커
비토 알 비카
에드워드 에이치 티그
Original Assignee
퀄컴 인코포레이티드
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 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20140019867A publication Critical patent/KR20140019867A/ko
Application granted granted Critical
Publication of KR101553488B1 publication Critical patent/KR101553488B1/ko

Links

Images

Classifications

    • 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/0819Key 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/083Key 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/0833Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/321Cryptographic 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/3213Cryptographic 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
    • 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/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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
    • 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/32Cryptographic 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/3297Cryptographic 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
    • 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/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/61Time-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

반접속된 디바이스들의 그룹과의 가상 페어링을 위한 방법 및 장치{METHOD AND APPARATUS FOR VIRTUAL PAIRING WITH A GROUP OF SEMI-CONNECTED DEVICES}
본 특허 출원은 2010년 6월 11일 출원된 "Method and Apparatus for Virtual Pairing with a Group of Semi-Connected Devices" 라는 제목의 미국 가특허출원 제 61/354,135 호에 대해 우선권을 주장하고, 그 전체 개시는 본원에 참조에 의해 명백하게 여기에 통합된다.
하나의 특징은 통신 시스템에 관련되고, 보다 구체적으로, 그룹 노드와 중앙 노드 사이에 세션당 통신을 필요로 함이 없이 클라이언트 노드와 그룹 노드 사이에 세션 키를 확립하는 개선된 방법에 관한 것이다.
단범위 클라이언트 노드들과 같은 단범위 디바이스들은, 암호화 및 인증을 위해 사용될 수 있는 공유 키들을 확립하기 위해 페어링 프로세스를 이용한다. 이 프로세스는 통상적으로 퍼블릭 키 암호 동작들을 수반하고, 이는 많은 중앙 처리 유닛 (CPU) 사이클들을 소모하고 따라서 상당한 양의 전기 에너지를 소모한다. 많은 이러한 디바이스들은 배터리로 전력이 공급되고, 따라서 잦은 페어링은 배터리가 재충전을 필요로할 때까지의 시간을 감소시킬 수 있다. 잦은 페어링 동작들을 회피하기 위해, 디바이스들의 "가상 페어링 (virtual pairing)" 을 허용하는 방식이 이용될 수도 있다.
가상 페어링에서, 클라이언트 노드들은 그룹 노드들 중 하나를 통해 중앙 노드와 페어링한다. 풍부한 계산 능력, 저장소, 및 물리적 보안을 갖는 하나의 중앙 노드, 및 그 중앙 노드와 통신하는 몇몇 개의 "그룹 노드들" 이 존재한다고 가정된다. 그룹 노드들은 휴대용 (예를 들어, 셀-폰 배터리 에너지로 전력이 공급되는 배터리), 및/또는 반 휴대용 (예를 들어, 카트 상의 데스크탑 컴퓨터) 일 수도 있고, 물리적으로 안전하지 않을 수도 있다. 클라이언트 노드들은 예를 들러 작은 버튼 셀들과 같이, 작은 배터리들에 의해 전력이 공급되는 매우 작은 디바이스들일 수도 있다. 클라이언트 노드들은 적어도 하나의 그룹 노드와 직접 통신할 수 있지만, 아마도 모든 그룹 노드들과 직접 통신할 수는 없을 것이고, 중앙 노드와는 직접 통신할 수 없다.
일예로, 전술된 구조는, 중앙 노드가 정보 기술 (IT) 인프라스트럭쳐의 일부이고 보안 로케이션 내에 위치될 수 있을 병원에서 이용될 수 있다. 그룹 노드는 간호사실의 카운터에 있을 수도 있을 것이고, 또는, 간호사 또는 실험실 기사에 의해 운반되는 휴대용 배터리 전원 디바이스일 수도 있다. 클라이언트 노드들은 환자 태그들일 수도 있다.
요컨대, 가상 페어링은, 클라이언트 노드가 마스터 키를 확립하고 중앙 노드와 공유하지만, 그룹 노드들 중 하나를 통해 간접적으로 중앙 노드와 통신하는 프로세스이다. 그 다음, 필요에 따라, 클라이언트 노드는 임의의 그룹 노드와의 세션 키를 확립할 수 있다. 이 세션 키를 확립하기 위한 프로토콜은 그룹 노드가 중앙 노드와 통신하는 것을 수반한다.
세션 키를 확립하기 위한 프로토콜 동안, 그룹 노드는 중앙 노드와 통신한다. 하지만, 이러한 통신은 오직 간헐적으로만 이용가능할 수도 있을 것이고, 또는 매우 제한된 대역폭을 가질 수도 있을 것이라는 예상되는 사용상의 문제점들이 존재할 수도 있다. 그 결과로서, 그룹 노드와 중앙 노드 사이에 세션당 (per-session) 통신을 필요로함이 없이 클라이언트 노드와 그룹 노드 사이의 세션 키 확립을 허용할 수 있는 장치 및 방법에 대한 필요성이 존재한다. 추가적으로, 분실된, 도난된, 손상된, 폐기된, 및/또는 고장난 그룹 노드들이 간단하고 실질적으로 수동적인 방식으로 시스템으로부터 격리될 수 있는 시스템에 대한 필요성이 존재한다. 예를 들어, 노드는 메시지를 따르도록 신뢰될 필요가 없고, 실질적으로 수동적인 시스템에서 키를 파괴, 삭제, 및/또는 대체하기 위해 기술자가 물리적으로 노드로 갈 필요가 없다.
일 특징에서, 클라이언트 노드와 그룹 노드 사이에 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법이 개시되고, 이 방법은: 현재 에포크 (epoch) 와 연관된 에포크 아이덴티티 값을 획득하는 단계로서, 에포크 아이덴티티 값을 획득하는 단계는 노드 실시간 (real time) 에 기초하여 에포크 아이덴티티 값을 계산하는 것 또는 그룹 노드와 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계; 공유 비밀 키, 에포크 아이덴티티 값, 및 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 단계로서, 공유 비밀 키는 클라이언트 노드 및 중앙 노드에 알려진, 상기 제한된 키를 계산하는 단계; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 그룹 노드와 세션 키 확립 프로토콜을 실행하는 단계를 포함한다.
일 실시형태에서, 상기 방법은: 클라이언트 노드, 그룹 노드, 및 중앙 노드 사이에 시간을 느슨하게 (loosely) 동기화하는 단계를 더 포함하고, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계는, 그룹 노드로부터 그룹 노드 실시간 및 그룹 노드 아이덴티티를 수신하는 단계, 그룹 노드 실시간을 클라이언트 노드 실시간과 비교하는 단계, 그룹 노드 실시간이 클라이언트 노드 실시간의 최대 시간 임계 차이 내인 것을 결정하는 단계, 및 노드 실시간으로부터 에포크 아이덴티티 값을 계산하는 단계를 포함한다. 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계는: 그룹 노드로부터 그룹 노드 에포크 값 및 그룹 노드 아이덴티티를 수신하는 단계; 그룹 노드 에포크 값을 클라이언트 노드 에포크 값에 비교하는 단계로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 비교하는 단계; 그룹 노드 에포크 값 및 클라이언트 노드 에포크 값 중 더 큰 값으로서 에포크 아이덴티티 값을 계산하는 단계; 및 계산된 에포크 아이덴티티 값을 그룹 노드에 송신하는 단계를 포함한다.
또 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계는: 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 단계로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 단계; 그룹 노드로부터 에포크 아이덴티티 값 및 그룹 노드 아이덴티티를 수신하는 단계; 및 수신된 에포크 아이덴티티 값이 송신된 클라이언트 노드 에포크 값보다 더 크거나 동일한 것을 확인하는 단계를 포함한다. 일 실시형태에서, 상기 방법은, 키 확인 프로토콜을 이용하여 세션 키를 확인하는 단계를 더 포함한다. 다른 실시형태에서, 그룹 노드와 중앙 노드 사이의 통신 링크는 현재 에포크 동안 오직 간헐적으로만 이용가능하다. 일 실시형태에서, 제한된 키는 에포크에 특정적이고 그룹 노드에 특정적이다. 다른 실시형태에서, 제한된 키는 중앙 노드에 의해 그룹 노드에 제공된다. 또 다른 실시형태에서, 중앙 노드는 손상되지 않은 (uncompromised) 그룹 노드들의 리스트를 유지하고, 손상된 (compromised) 그룹 노드는 리스트로부터 제거된다. 또 다른 실시형태에서, 제한된 키는 복수의 세션 키들을 도출하기 위해 현재 에포크 동안 여러 번 사용된다.
또 다른 실시형태에서, 현재 에포크는 고정되지 않은 기간의 것이고 새로운 에포크의 시작 시 만료된다. 또 다른 실시형태에서, 에포크 아이덴티티 값은 중앙 노드에 의해 생성된 순차적인 정수이고 중앙 노드에 의해 새로운 에포크의 시작 시 증분된다. 또 다른 실시형태에서, 중앙 노드는 커밋 (commit) 메시지를 그룹 노드에 송신함으로써 현재 에포크의 시작을 나타낸다. 또 다른 실시형태에서, 에포크는 실시간으로부터 도출된다. 또 다른 실시형태에서, 공유 비밀 키, 에포크 아이덴티티 값, 및 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 단계는, 암호-기반 메시지 인증 코드 (CMAC) 함수, 해시-기반 메시지 인증 코드 (HMAC) 함수, 또는 암호 블록 연쇄 메시지 인증 코드 (CBC-MAC) 함수 중 하나를 이용하여 수행된다. 또 다른 실시형태에서, 상기 방법은, 현재 에포크 동안 그룹 노드와 생성된 각각의 세션에 대해 제한된 키의 도출을 회피하기 위해 캐시 내에 투플 (tuple) 을 삽입하는 단계를 더 포함한다. 또 다른 실시형태에서, 투플은 그룹 노드 아이덴티티 및 제한된 키를 포함한다. 또 다른 실시형태에서, 캐시는 현재 에포크가 만료될 때 플러시 (flush) 된다.
다른 특징에서, 클라이언트 노드가 개시되고, 이 클라이언트 노드는: 그룹 노드와 통신하도록 구성된 통신 인터페이스; 및 통신 인터페이스에 통신적으로 커플링된 프로세싱 회로를 포함하고, 이 프로세싱 회로는, 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것으로서, 에포크 아이덴티티 값을 획득하는 것은 노드 실시간에 기초하여 에포크 아이덴티티 값을 계산하는 것 또는 그룹 노드와 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것; 공유 비밀 키, 에포크 아이덴티티 값, 및 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 것으로서, 공유 비밀 키는 클라이언트 노드 및 중앙 노드에 알려진, 상기 제한된 키를 계산하는 것; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 그룹 노드와 세션 키 확립 프로토콜을 실행하는 것을 수행하도록 구성된다. 일 실시형태에서, 프로세싱 회로는, 클라이언트 노드, 그룹 노드, 및 중앙 노드 사이에 시간을 느슨하게 동기화하도록 더 구성되고, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은 프로세싱 회로로 하여금: 그룹 노드로부터 그룹 노드 실시간 및 그룹 노드 아이덴티티를 수신하는 것; 그룹 노드 실시간을 클라이언트 노드 실시간과 비교하는 것; 그룹 노드 실시간이 클라이언트 노드 실시간의 최대 시간 임계 차이 내인 것을 결정하는 것; 및 노드 실시간으로부터 에포크 아이덴티티 값을 계산하는 것을 하게 한다.
또 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은 프로세싱 회로로 하여금: 그룹 노드로부터 그룹 노드 에포크 값 및 그룹 노드 아이덴티티를 수신하는 것; 그룹 노드 에포크 값을 클라이언트 노드 에포크 값에 비교하는 것으로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 비교하는 것; 그룹 노드 에포크 값 및 클라이언트 노드 에포크 값 중 더 큰 값으로서 에포크 아이덴티티 값을 계산하는 것; 및 계산된 에포크 아이덴티티 값을 그룹 노드에 송신하는 것을 하게 한다. 또 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은 프로세싱 회로로 하여금: 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 것으로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 것; 그룹 노드로부터 에포크 아이덴티티 값 및 그룹 노드 아이덴티티를 수신하는 것; 및 수신된 에포크 아이덴티티 값이 송신된 클라이언트 노드 에포크 값보다 더 크거나 동일한 것을 확인하는 것을 하게 한다.
또 다른 특징에서, 클라이언트 노드가 개시되고, 이 클라이언트 노드는: 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단으로서, 에포크 아이덴티티 값을 획득하는 것은 노드 실시간에 기초하여 에포크 아이덴티티 값을 계산하는 것 또는 그룹 노드와 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단; 공유 비밀 키, 에포크 아이덴티티 값, 및 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 수단으로서, 공유 비밀 키는 클라이언트 노드 및 중앙 노드에 알려진, 상기 제한된 키를 계산하는 수단; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 그룹 노드와 세션 키 확립 프로토콜을 실행하는 수단을 포함한다. 일 실시형태에서, 클라이언트 노드는: 클라이언트 노드, 그룹 노드, 및 중앙 노드 사이에 시간을 느슨하게 동기화하는 수단을 더 포함하고, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단은, 그룹 노드로부터 그룹 노드 실시간 및 그룹 노드 아이덴티티를 수신하는 수단, 그룹 노드 실시간을 클라이언트 노드 실시간과 비교하는 수단, 그룹 노드 실시간이 클라이언트 노드 실시간의 최대 시간 임계 차이 내인 것을 결정하는 수단, 및 노드 실시간으로부터 에포크 아이덴티티 값을 계산하는 수단을 포함한다.
또 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단은: 그룹 노드로부터 그룹 노드 에포크 값 및 그룹 노드 아이덴티티를 수신하는 수단; 그룹 노드 에포크 값을 클라이언트 노드 에포크 값에 비교하는 수단으로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 비교하는 수단; 그룹 노드 에포크 값 및 클라이언트 노드 에포크 값 중 더 큰 값으로서 에포크 아이덴티티 값을 계산하는 수단; 및 계산된 에포크 아이덴티티 값을 그룹 노드에 송신하는 수단을 포함한다.
또 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단은: 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 수단으로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 수단; 그룹 노드로부터 에포크 아이덴티티 값 및 그룹 노드 아이덴티티를 수신하는 수단; 및 수신된 에포크 아이덴티티 값이 송신된 클라이언트 노드 에포크 값보다 더 크거나 동일한 것을 확인하는 수단을 포함한다.
또 다른 특징에서, 클라이언트 노드와 그룹 노드 사이에 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 하나 이상의 명령들을 갖는 프로세서 판독가능 매체가 제공되고, 상기 명령들은 적어도 하나의 프로세서에 의해 실행될 때 그 프로세서로 하여금: 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것으로서, 에포크 아이덴티티 값을 획득하는 것은 노드 실시간에 기초하여 에포크 아이덴티티 값을 계산하는 것 또는 그룹 노드와 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것; 공유 비밀 키, 에포크 아이덴티티 값, 및 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 것으로서, 공유 비밀 키는 클라이언트 노드 및 중앙 노드에 알려진, 상기 제한된 키를 계산하는 것; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 그룹 노드와 세션 키 확립 프로토콜을 실행하는 것을 수행하게 한다. 일 실시형태에서, 프로세서에 의해 실행될 때 프로세서로 하여금: 클라이언트 노드, 그룹 노드, 및 중앙 노드 사이에 시간을 느슨하게 동기화하는 것을 더 수행하게 하는 추가적인 명령들이 존재하고, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은, 그룹 노드로부터 그룹 노드 실시간 및 그룹 노드 아이덴티티를 수신하는 것, 그룹 노드 실시간을 클라이언트 노드 실시간과 비교하는 것, 그룹 노드 실시간이 클라이언트 노드 실시간의 최대 시간 임계 차이 내인 것을 결정하는 것, 및 노드 실시간으로부터 에포크 아이덴티티 값을 계산하는 것을 포함한다.
또 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은: 그룹 노드로부터 그룹 노드 에포크 값 및 그룹 노드 아이덴티티를 수신하는 것; 그룹 노드 에포크 값을 클라이언트 노드 에포크 값에 비교하는 것으로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 비교하는 것; 그룹 노드 에포크 값 및 클라이언트 노드 에포크 값 중 더 큰 값으로서 에포크 아이덴티티 값을 계산하는 것; 및 계산된 에포크 아이덴티티 값을 그룹 노드에 송신하는 것을 포함한다. 또 다른 실시형태에서, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은: 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 것으로서, 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 클라이언트 노드 에포크 값을 그룹 노드에 송신하는 것; 그룹 노드로부터 에포크 아이덴티티 값 및 그룹 노드 아이덴티티를 수신하는 것; 및 수신된 에포크 아이덴티티 값이 송신된 클라이언트 노드 에포크 값보다 더 크거나 동일한 것을 확인하는 것을 포함한다.
또 다른 특징에서, 그룹 노드와 클라이언트 노드 사이에 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법이 개시되고, 이 방법은: 중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 단계로서, 프록시 토큰들의 제 1 셋트는 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 단계; 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 (reserve) 셋트로서 저장하는 단계; 에포크의 시작 시에 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 단계로서, 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 단계; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 클라이언트 노드와 세션 키 확립 프로토콜을 실행하는 단계를 포함한다.
일 실시형태에서, 이 방법은: 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계; 및 에포크 아이덴티티 값에 기초하여 제한된 키를 취출 (retrieve) 하는 단계를 더 포함한다. 일 실시형태에서, 상기 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계는: 클라이언트 노드 실시간을 수신하는 단계; 클라이언트 노드 실시간을 그룹 노드 실시간에 비교하는 단계; 그룹 노드 실시간이 클라이언트 노드 실시간의 최대 시간 임계 차이 내인 것을 결정하는 단계; 및 노드 실시간에 기초하여 에포크 아이덴티티 값을 계산하는 단계를 포함한다. 또 다른 실시형태에서, 상기 에포크 아이덴티티 값에 기초하여 제한된 키를 취출하는 단계는: 프록시 토큰들의 리저브 셋트 또는 프록시 토큰들의 활성 셋트가 에포크 아이덴티티 값에 대응하는지 여부를 결정하는 단계; 프록시 토큰들의 리저브 셋트가 에포크 아이덴티티 값과 연관되는 경우 프록시 토큰들의 리저브 셋트로부터 제한된 키를 획득하는 단계; 및 프록시 토큰들의 리저브 셋트가 에포크 아이덴티티 값과 연관되는 경우 프록시 토큰들의 셋트로부터 제한된 키를 획득하는 단계를 더 포함한다.
또 다른 실시형태에서, 방법은: 중앙 노드, 그룹 노드, 및 클라이언트 노드 사이에 시간을 느슨하게 동기화하는 단계; 현재 시간과 연관된 에포크 아이덴티티 값을 획득하는 단계; 및 에포크 아이덴티티 값 및 클라이언트 노드 아이덴티티에 기초하여 프록시 토큰들의 제 1 셋트로부터 클라이언트 노드에 대한 제한된 키를 선택하는 단계를 더 포함한다. 또 다른 실시형태에서, 방법은: 에포크와 연관된 에포크 아이덴티티 값, 및 프록시 토큰들의 제 1 셋트를 포함하는 적어도 하나의 메시지를 중앙 노드로부터 수신하는 단계; 및 에포크의 시작을 나타내는 커밋 메시지를 중앙 노드로부터 수신하는 단계를 더 포함한다. 또 다른 실시형태에서, 그룹 노드와 중앙 노드 사이의 통신 링크는 에포크 동안 오직 간헐적으로만 이용가능한다.
또 다른 특징에서, 그룹 노드가 제공되고, 이 그룹 노드는: 중앙 노드와 통신하도록 구성된 제 1 통신 인터페이스; 클라이언트 노드와 통신하도록 구성된 제 2 통신 인터페이스; 및 제 1 및 제 2 통신 인터페이스들에 통신적으로 커플링된 프로세싱 회로를 포함하고, 프로세싱 회로는, 중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 것으로서, 프록시 토큰들의 제 1 셋트는 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 것; 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 셋트로서 저장하는 것; 에포크의 시작 시에 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 것으로서, 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 것; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 클라이언트 노드와 세션 키 확립 프로토콜을 실행하는 것을 수행하도록 구성된다.
또 다른 특징에서, 그룹 노드가 개시되고, 이 그룹 노드는: 중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 수단으로서, 프록시 토큰들의 제 1 셋트는 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 수단; 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 셋트로서 저장하는 수단; 에포크의 시작 시에 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 수단으로서, 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 수단; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 클라이언트 노드와 세션 키 확립 프로토콜을 실행하는 수단을 포함한다.
또 다른 특징에서, 그룹 노드와 클라이언트 노드 사이에 세션 키를 확립하기 위해 그룹 노드에서 동작하는 하나 이상의 명령들을 갖는 프로세서 판독가능 매체가 개시되고, 상기 명령들은 적어도 하나의 프로세서에 의해 실행될 때 프로세서로 하여금: 중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 것으로서, 프록시 토큰들의 제 1 셋트는 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 것; 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 셋트로서 저장하는 것; 에포크의 시작 시에 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 것으로서, 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 것; 및 세션 키 확립 프로토콜에서 마스터 키로서 제한된 키를 이용하여 세션 키를 도출하기 위해 클라이언트 노드와 세션 키 확립 프로토콜을 실행하는 것을 하게 한다.
또 다른 특징에서, 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 방법이 개시되고, 이 방법은: 제 2 그룹 노드가 손상된 것을 결정하는 단계로서, 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 단계; 손상된 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 단계로서, 손상되지 않은 그룹 노드들의 리스트는 중앙 노드에 저장되고 제 1 그룹 노드를 포함하는, 상기 제거하는 단계; 및 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크 (upcoming epoch) 와 연관된 복수의 프록시 토큰들을 송신하는 단계로서, 복수의 프록시 토큰들은 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 제 1 그룹 노드에 송신되며, 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 제한된 키는 다가오는 에포크 아이덴티티 값, 제 1 그룹 노드 식별자, 및 클라이언트 노드와 중앙 노드 사이에 이전에 확립된 공유 키로부터 계산되는, 상기 복수의 프록시 토큰들을 송신하는 단계를 포함한다.
일 실시형태에서, 제 1 프록시 토큰은 다가오는 에포크의 시작 이전에 송신된다. 또 다른 실시형태에서, 방법은: 제 1 그룹 노드에 커밋 메시지를 송신하는 단계를 더 포함하고, 커밋 메시지는 다가오는 에포크의 시작을 나타낸다.
또 다른 특징에서, 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드가 개시되고, 이 중앙 노드는: 제 1 그룹 노드와 통신하도록 구성된 통신 인터페이스; 및 통신 인터페이스에 커플링된 프로세싱 회로를 포함하고, 프로세싱 회로는, 제 2 그룹 노드가 손상된 것을 결정하는 것으로서, 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 것; 손상된 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 것으로서, 손상되지 않은 그룹 노드들의 리스트는 중앙 노드에 저장되고 제 1 그룹 노드를 포함하는, 상기 제거하는 것; 및 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크와 연관된 복수의 프록시 토큰들을 송신하는 것으로서, 복수의 프록시 토큰들은 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 제 1 그룹 노드에 송신되며, 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 제한된 키는 다가오는 에포크 아이덴티티 값, 제 1 그룹 노드 식별자, 및 클라이언트 노드와 중앙 노드 사이에 이전에 확립된 공유 키로부터 계산되는, 상기 복수의 프록시 토큰들을 송신하는 것을 수행하도록 구성된다.
또 다른 특징에서, 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드가 개시되고, 이 중앙 노드는: 제 2 그룹 노드가 손상된 것을 결정하는 수단으로서, 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 수단; 손상된 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 수단으로서, 손상되지 않은 그룹 노드들의 리스트는 중앙 노드에 저장되고 제 1 그룹 노드를 포함하는, 상기 제거하는 수단; 및 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크와 연관된 복수의 프록시 토큰들을 송신하는 수단으로서, 복수의 프록시 토큰들은 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 제 1 그룹 노드에 송신되며, 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 제한된 키는 다가오는 에포크 아이덴티티 값, 제 1 그룹 노드 식별자, 및 클라이언트 노드와 중앙 노드 사이에 이전에 확립된 공유 키로부터 계산되는, 상기 복수의 프록시 토큰들을 송신하는 수단을 포함한다.
또 다른 특징에서, 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 하나 이상의 명령들을 갖는 프로세서 판독가능 매체가 개시되고, 상기 명령들은 적어도 하나의 프로세서에 의해 실행될 때 프로세서로 하여금: 제 2 그룹 노드가 손상된 것을 결정하는 것으로서, 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 것; 손상된 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 것으로서, 손상되지 않은 그룹 노드들의 리스트는 중앙 노드에 저장되고 제 1 그룹 노드를 포함하는, 상기 제거하는 것; 및 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크와 연관된 복수의 프록시 토큰들을 송신하는 것으로서, 복수의 프록시 토큰들은 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 제 1 그룹 노드에 송신되며, 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 제한된 키는 다가오는 에포크 아이덴티티 값, 제 1 그룹 노드 식별자, 및 클라이언트 노드와 중앙 노드 사이에 이전에 확립된 공유 키로부터 계산되는, 상기 복수의 프록시 토큰들을 송신하는 것을 수행하게 한다.
도 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 은 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위해 클라이언트 노드에서 동작하는 예시적인 방법을 예시하는 흐름도를 나타낸다.
도 18 은 에포크들을 정의하기 위해 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드의 동작의 일예를 나타낸다.
도 19 는 에포크 아이덴티티가 실시간에 관련되지 않는, 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드의 동작의 일예를 나타낸다.
이하의 상세한 설명에서, 구체적인 상세들이 실시형태들의 완전한 이해를 제공하기 위해 주어진다. 하지만, 당해 기술분야에서 통상의 지식을 가진 자 (이하, '당업자' 라 함) 는 실시형태들이 이들 구체적인 상세들 없이 실시될 수도 있다는 것을 이해할 것이다. 예를 들어, 불필요한 상세들로 실시형태들을 모호하게 하지 않도록, 동작들은 블록도들로 도시될 수도 있거나 모두 도시되지는 않을 수도 있다. 다른 견지에서, 주지의 동작들, 구조들, 및 기술들은 실시형태들을 모호하게 하지 않도록 상세하게 나타나지 않을 수도 있다.
본원에서 사용된 바와 같이, 중앙 노드는 또한, 서버, 인증 서버, 및/또는 클라이언트 노드들에 대해 서비스들을 제공하기 위한 임의의 다른 적합한 디바이스의 기능의 일부 또는 전부로서 지칭될 수도 있고 그 기능의 일부 또는 전부를 포함할 수도 있다. 클라이언트 노드는 또한, 사용자 장비 (UE), 무선 또는 유선 통신 디바이스, 노드, 모바일 단말기, 모바일 스테이션, 및/또는 네트워크를 통해 통신하기 위한 임의의 다른 적합한 디바이스의 기능의 일부 또는 전부로서 지칭될 수도 있고 그 기능의 일부 또는 전부를 포함할 수도 있다. 클라이언트 노드는 그룹 노드들의 셋트에서 하나 이상의 그룹 노드들을 통해 중앙 노드와 통신 상태에 있을 수도 있다. 반접속된 그룹 노드는 중앙 노드와 신뢰할 수 없는, 느린, 또는 간헐적인 통신을 갖는 그룹 노드일 수도 있다.
개관
하나의 특징은 그룹 노드와 중앙 노드 사이에 세션당 통신을 필요로 함이 없이 클라이언트 노드와 그룹 노드 사이에 세션 키를 확립하기 위한 시스템, 장치, 및 방법을 제공한다.
클라이언트 노드는 이전에, 중앙 노드와 그 때 통신 상태에 있었던 적어도 하나의 양호한 그룹 노드와 통신했었을 수도 있고, 성공적으로 가상 페어링 프로토콜을 실행했었을 수도 있다. 그 결과로서, 클라이언트 노드 및 중앙 노드는 공유 비밀 키 KM 를 가질 수도 있다.
일예에서, 모든 노드들 및 단말기들이 느슨하게 동기화된 실시간 (loosely-synchronized real time) 을, 말하자면 수초 내에, 획득할 수 있는 메커니즘이 제공될 수도 있다. 시스템에서, 시간은 에포크들로 나눠질 수도 있고, 여기서, 에포크의 길이는 고정되고, 예를 들어, 분 내지 수일 정도일 수도 있다. 각각의 에포크에 대해, 그룹 노드는 중앙 노드와 적어도 한번 통신할 수도 있다. 중앙 노드는 각 그룹 노드에 투플들 (tuples) 의 리스트를 전송할 수도 있다. 각 투플 엔트리는 각 클라이언트 노드를 식별하는 클라이언트 노드 식별자 "Cnode_ID", 및 각 클라이언트 노드 식별자 Cnode_ID 와 연관된 제한된 키 KR 를 포함할 수도 있다. 클라이언트 노드 식별자 Cnode_ID 는 그것의 연관된 제한된 키 KR 와 함께 "프록시 토큰 (proxy token)" 으로서 지칭될 수도 있다. 따라서, 에포크의 시작 동안 중앙 노드는 각 그룹 노드에 상이한 클라이언트 노드들과 연관된 일련의 프록시 토큰들을 송신할 수도 있다.
제한된 키 KR 는 에포크 값 "Epoch_ID" 및 그룹 아이덴티티 값 "Gnode_ID" 에 의존할 수도 있다. 예를 들어, KR 은 다음 공식에 의해 계산될 수도 있고:
KR = CMAC(KM, Gnode_lD || Epoch_ID)
여기서, Gnode_lD 는 그룹 노드 아이덴티티일 수도 있고, Epoch_ID 는 다가오는 에포크와 연관된 값일 수도 있으며, KM 은 클라이언트 노드와 중앙 노드 사이에 공유된 공유 비밀 키일 수도 있고, CMAC 은 암호-기반 메시지 인증 코드 (CMAC) 알고리즘일 수도 있다.
클라이언트 노드는, 그것이 그룹 노드 아이덴티티 Gnode_ID 및 공유 비밀 키 KM 을 알기 때문에 에포크 아이덴티티 Epoch_ID 를 획득할 수도 있고 그 다음 제한된 키 KR 를 계산할 수도 있다. 그것은 그 다음, 계산에서 마스터 키로서 제한된 키 KR 를 이용하여 단기 세션 키를 발생시키기 위해, 각 파티 (party) 에 의해 제공되는 무작위를 이용하는 2-라운드 세션 키 확립 프로토콜을 이용할 수도 있다. 세션 키 확립 프로토콜은 또한 키-확인을 제공할 수도 있다.
그룹 노드가 폐기, 분실, 도난되거나 고장나게 된거나 손상되는 경우에, 중앙 노드는 그것의 손상되지 않은 그룹 노드들의 리스트로부터 그것을 제거할 수도 있으며, 현재 에포크가 만료된 후에, 중앙 노드는 현재 에포크 값들을 반영하는 유효한 프록시 토큰들을 더 이상 포워딩하지 않을 수도 있다. 따라서, 영향을 받는 그룹 노드는 어떤 유효한 프록시 토큰들도 가지지 않을 것이고, 따라서, 클라이언트 노드들과 세션들을 확립할 수 없다.
제한된 키 KR 는 에포크 동안 여러 번 사용될 수도 있다. 동일한 에포크 기간 동안 각 세션에 대해 KR 을 도출하는 것을 회피하기 위해, 클라이언트 노드는 투플들, 예를 들어 그룹 노드 아이덴티티, 에포크 아이덴티티, 및 제한된 키로 캐시 (예를 들어, 메모리, 메모리 회로 등) 를 유지할 수도 있다. 결과로서, 클라이언트 노드에서의 배터리 전력이 절약될 수도 있다.
일예에서, 클라이언트 노드는 느슨하게 동기화된 실시간을 확보하기 위해 액세스를 가질 수도 있다. 하나의 에포크 동안, 에포크 아이덴티티 Epoch_ID 는 동일한 값을 가질 수도 있다. 메모리는, Epoch_ID 를 글로벌로 저장하고 (예를 들어, 그룹 노드 아이덴티티 Gnode_ID 및 제한된 키 KR 를 캐시 엔트리들에 배치), 에포크가 바뀔때 캐시를 플러시함으로써 절약될 수 있다.
예시적인 네트워크 동작 환경
도 1 은 무선 네트워크 통신 시스템 (100) 을 나타낸다. 이 예에서, 클라이언트 노드 (102), 그룹 노드들 (104a-104c) 의 셋트, 및 중앙 노드 (106) 가 도시되고, 여기서, 클라이언트 노드 (102) 는 그룹 노드들 (104a-104c) 중 하나 이상을 통해 간접적으로 중앙 노드 (106) 와 통신할 수도 있다. 중앙 노드 (106) 는 고정된 스테이션 또는 서버일 수도 있다. 그룹 노드들 (104a-104c) 은 휴대용, 배터리로 전력공급되는 디바이스들 및/또는 정지된 전자 디바이스들 중 어느 일방일 수도 있다. 클라이언트 노드 (102) 는 예를 들어 제한된 양의 메모리 및 제한된 배터리 에너지를 포함하는 작고, 비싸지 않고, 저전력 무선 디바이스일 수도 있다. 클라이언트 노드 (102) 는 예를 들어 Bluetooth®, Bluetooth® Low Engery, WiFi, ZigBee®, 근접장 통신들, 및/또는 다른 무선 통신 방법들을 통해 그룹 노드들 (104a-104c) 에 대해 통신할 수도 있다.
도 1 에서 도시된 바와 같이, 클라이언트 노드 (102) 는 그룹 노드 A (104a) 와 같은 그룹 노드와 통신할 수도 있다. 클라이언트 노드 (102) 는 공유 키들, 예를 들어 데이터의 암호화 및 인증에 이용될 수도 있는 세션 키들을 확립하기 위해 무선 링크를 통해 가상 페어링 프로토콜을 실행할 수도 있다. 일단 클라이언트 노드 (102) 가 그룹 노드들 (104a-104c) 중 하나, 예를 들어 그룹 노드 A (104a) 와 공유 키를 확립하면, 클라이언트 노드 (102) 는 중앙 노드 (106) 와 간접적으로 통신할 수도 있다. 3 개의 그룹 노드들이 도시되었지만, 이것은 오직 예시일 뿐이고, 더 많거나 더 적은 그룹 노드들이 통신 시스템 (100) 에서 이용될 수도 있다.
예시적인 통신 시스템
도 2 는 그룹 노드 (104) 와 중앙 노드 (106) 사이에 세션당 통신을 필요로 함이 없이 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 세션 키가 확립되는 통신 시스템 (100) 의 동작의 일예를 나타내는 흐름도이다. 첫째로, 중앙 노드 (106) 및 클라이언트 노드 (102) 는 중재자 (200) 로서 그룹 노드 (104) 를 이용하여 공유 비밀 키 KM 를 확립할 수도 있다. 예를 들어, 공유 비밀 키 KM 는 클라이언트 노드 (102) 가 통신 시스템 (100) 에 연결할 때 클라이언트 노드 (102) 와 중앙 노드 (106) 사이에 확립될 수도 있다. 공유 비밀 키 KM 는, 중재자로서 작용하는 그룹 노드 (104) 가 공유 비밀 키의 값의 지식을 갖지 않도록 예를 들어 타원 곡선 Diffie-Hellman 프로토콜을 이용하여 확립될 수도 있다. 그들 공유 비밀 키가 일단 확립되면, 중앙 노드 (106) 는 공유 비밀 키 KM (202a) 를 저장할 수도 있고 클라이언트 노드 (102) 는 동일한 키 KM (202b) 를 저장할 수도 있다. 중앙 노드 (106) 는 시스템 (100) 내의 각 클라이언트 노드와 고유한 공유 비밀 키를 확립한다. 바람직한 실시형태에서, 공유 비밀 키 KM 는 그룹 노드 (104) 에게 알려지지 않는다. 공유 비밀 키 KM 는, 통신 시스템 (100) 에서의 각 클라이언트 노드가 중앙 노드 (106) 와 상이한 비밀 키를 공유하도록 클라이언트 노드 특유의 것일 수도 있다. 클라이언트 노드 (102) 는 클라이언트 노드 식별자 Cnode_ID 와 연관될 수도 있다.
통신 시스템 (100) 에서의 시간은 에포크 A (201) 및 에포크 B (203) 와 같은 에포크들로 나누어질 수도 있고, 여기서, 에포크 B (203) 는 시간적으로 에포크 A (201) 후에 발생한다. 각 에포크의 길이는 고정일 수도 있고, 예를 들어 수분 내지 수일 정도의 것일 수도 있다. 하지만, 이들은 단지 예들일 뿐이다. 상이한 길이들의 에포크들이 전체 시스템의 요건들에 따라 선택될 수도 있다.
각각의 에포크에 대해, 그룹 노드 (104) 는 중앙 노드 (106) 와 적어도 한번 통신할 수도 있다. 예를 들어, 에포크 A 의 시작 시에 (또는 몇몇 실시형태들에서 에포크 A 의 시작 전에), 그룹 노드 (104) 는 각 클라이언트 노드 (102) 에 대해 중앙 노드 (106) 로부터 적어도 하나의 프록시 토큰을 수신할 수도 있다 (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) 는 그것이 사전에 저장하였던 클라이언트 식별자 Cnode_ID 및 에포크 아이덴티티 값 Epoch_ID 과 구체적으로 연관된 제한된 키 KR 를 획득/취출할 수 있다 (210). 따라서, 에포크 A (201) 에 대응하는 Epoch_ID 값에 대해, 그룹 노드 (104) 는 Conde_ID 및 에포크 A (201) 와 연관된 제한된 키 KR 를 취출할 수도 있다. 마찬가지로, 클라이언트 노드 (102) 는 에포크 아이덴티티 값 Epoch_ID 에 기초하여 제한된 키 KR 를 획득하여야 한다. 예를 들어, 클라이언트 노드 (102) 는 공식:
KR = CMAC(KM, Gnode lD || Epoch ID)
에 기초하여 KR 을 연산/계산할 수도 있고, 여기서, Gnode_ID 는 그룹 노드 (104) 의 아이덴티티이고, Epoch_ID 는 확립된 에포크 값이며, KM 은 클라이언트 노드 (102) 와 중앙 노드 (106) 사이에 공유된 공유 비밀 키이고, CMAC 은 암호-기반 메시지 인증 코드 (Cipher-based message authentication code; CMAC) 알고리즘이다 (212). 하지만, 제한된 키 KR 를 생성하는 것은 상기 공식에서 나타난 특정 입력들 및 인수들 (arguments) 에 한정되는 것은 아니다. 예를 들어, 비제한적으로 해시-기반 메시지 인증 코드 (Hash-based Message Authentication Code; HMAC), 암호 블록 연쇄 메시지 인증 코드 (Cipher Block Chaining Message Authentication Code; CBC-MAC), 해싱, 또는 부호화를 포함하는, 입력들 및 인수들을 결합하고, 및/또는, 적합한 암호 특성들을 갖는 다른 동작들이 또한 이용될 수도 있다. KM 은 결과로서 클라이언트 노드 식별자 Cnode_ID 에 특정적일 수도 있고, 제한된 키 KR 는 클라이언트 노드, 그룹 노드 아이덴티티 Gnode_ID, 및 에포크 아이덴티티 Epoch_ID 에 특정적일 수도 있다.
다음으로, 2-라운드 세션 키 확립 프로토콜 (214) 은, 클라이언트 노드 (102) 및 그룹 노드 (104) 양자 모두에 의해 제공된 랜덤 값들 (예를 들어 임시값들) 과 함께 마스터 키로서 제한된 키 KR 를 이용함으로써 세션 키들을 발생시키는데 이용될 수도 있다. 다르게 말하면, 제한된 키 KR 는 두 노드들 사이의 통신들을 위해 사용되는 세션 키들을 도출하기 위해 사용된다. 키 KR 은 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 직접 송신되지 않지만, 그것이 양 노드들에 알려지기 때문에, KR 은 두 노드들 사이에 세션 키를 확립하기 위해 사용될 수 있다. 이러한 방식으로, 세션 키는 보안 통신 세션을 수행하기 위해 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 확립될 수도 있다 (216).
에포크 A (201) 의 만료 전에, 중앙 노드 (106) 는 다음 에포크 B (203) 를 위해 프록시 토큰들 (218a) 의 대체 셋트를 송신할 수도 있다. 프록시 토큰들의 대체 셋트는 주어진 에포크 (에포크 B) 에 대해 주어진 클라이언트 노드에 대한 제한된 키 KR 를 식별하는 투플들을 유사하게 포함할 것이다. 에포크 B 의 시작 전에 프록시 토큰들을 송신함으로써, 에포크들이 에포크 A 에서 에포크 B 로 천이되는 시간 동안 중앙 노드 (106) 와의 통신이 분실되는 경우에 그룹 노드 (104) 는 토큰들의 셋트에 대한 액세스를 갖는다. 대안적인 실시형태에서, 에포크 B 와 연관된 프록시 토큰들의 대체 셋트는 에포크 B 의 시작 시에 송신될 수도 있다 (218b). 또 다른 실시형태들에서, 복수의 프록시 토큰들의 셋트들은 그룹 노드 (104) 에 한번에 모두 제공될 수도 있고, 여기서, 프록시 토큰들의 각 셋트는 상이한 에포크와 연관될 수도 있다.
그룹 노드 (104) 및 클라이언트 노드 (102) 가 세션 키 확립을 시작하고 그룹 노드 (104) 가 에포크의 끝까지 상기 키들을 유지하기 전에 중앙 노드 (106) 가 그룹 노드 (104) 에 프록시 토큰들을 송신하기 때문에, 그룹 노드 (104) 와 클라이언트 노드 (102) 사이에 세션 키들을 확립하는 것은 에포크의 나머지 전체를 통해 발생시키기 위해 그룹 노드 (104) 와 중앙 노드 (106) 사이에 통신을 필요로 함이 없이 발생할 수도 있다. 예를 들어, 일단 그룹 노드 (104) 가 단계 204 에서 에포크 A 에 대한 프록시 토큰들을 획득하면, 그룹 노드 (104) 는 클라이언트 노드 (102) 와 세션 키를 확립하기 위해 에포크 A 의 나머지 부분에 대해 중앙 노드 (106) 와의 통신 링크를 더 이상 필요로 하지 않는다 (예를 들어, 통신들은 간헐적일 수도 있다). 따라서, 이 기간 동안 그룹 노드 (104) 와 중앙 노드 (106) 사이의 통신들은 간헐적 및/또는 이용불가능할 수도 있다. 중앙 노드와 간헐적인 통신 링크를 갖는 그룹 노드는 "반접속된 (semi-connected)" 그룹 노드로 고려될 수도 있다.
그룹 노드가 폐기, 분실, 도난되거나, 고장나게 되거나, 손상되는 경우에, 중앙 노드 (106) 는 그것의 손상되지 않은 그룹 노드들의 리스트로부터 그것을 제거할 수도 있고, 현재 에포크가 만료된 후에, 영향을 받은 그룹 노드는 어떤 유효한 프록시 토큰들도 가지지 않을 것이고, 따라서, 클라이언트 노드들과의 보안 통신 세션들을 확립할 수 없다.
제한된 키 KR 는 그룹 노드 (104) 와 클라이언트 노드 (102) 사이에 다양한 세션 키들을 발생시키기 위해 에포크 동안 여러 번 사용될 수도 있다. 동일한 에포크 동안 그룹 노드 (104) 와 각 세션에 대한 제한된 키 KR 를 불필요하게 도출하는 것을 회피하기 위해, 클라이언트 노드 (102) 는, 예를 들어 그룹 노드 아이덴티티 Gnode_ID, 에포크 아이덴티티 값, 및 연관된 제한된 키를 포함하는 투플들로 캐시 (예를 들어, 메모리, 메모리 회로 등) 를 유지할 수도 있다. 결과로서, 클라이언트 노드 (102) 에서의 배터리 전력이 절약될 수도 있다.
일 실시형태에서, 새로운 값 또는 엔트리가 캐시 내에 삽입되어야 할 때, 캐시로부터 폐기되어야할 엔트리가 선택될 수도 있다. 캐시가 단순한 어레이인 경우, 오직 하나의 선택만이 존재할 수도 있다: 어레이 내의 타겟 로케이션에서의 것이 폐기된다. 하지만, 셋트 결합 캐시의 경우, 폐기되어야 할 엔트리는 셋트 (예를 들어, 서브-어레이) 로부터 무작위로 선택될 수도 있다. 일부 데이터 구조는 적어도 최근에 사용된 대체 폴리시 (policy) 에 대해 도움이 될 수도 있다.
예시적인 통신 시스템 - 실시간으로부터 도출가능한 에포크 아이덴티티
도 3 은 통신 시스템 (100) 의 동작의 일예를 나타내는 흐름도이고, 여기서, 세션 키는 그룹 노드 (104) 와 중앙 노드 (106) 사이에 세션당 통신을 필요로함이 없이 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 확립된다. 중앙 노드 (106) 와 클라이언트 노드 (102) 는 각각 공유 비밀 키 KM (302a, 302b) 에 대한 액세스를 가질 수도 있고, 이는 그룹 노드 (104) 에 알려지지 않을 수도 있다. 공유 비밀 키 KM 는, 통신 시스템 (100) 에서의 각 클라이언트 노드가 중앙 노드 (106) 와 상이한 비밀 키를 공유하도록 클라이언트 노드 특정적일 수도 있다. 클라이언트 노드 (102) 는 클라이언트 노드 식별자 Cnode_ID 와 연관될 수도 있다.
이 예에서, 모든 노드들이 예를 들어 수초 내에 서로의 느슨하게-동기화된 실시간 (304) 을 획득할 수 있는 메커니즘이 제공될 수도 있다. 예를 들어, 클라이언트 노드 (102) 가 먼저 통신 시스템 (100) 에 연결할 때, 그룹 노드 (104) 는 중앙 노드 (106) 로부터 클라이언트 (102) 에 실시간 정보를 송신할 수도 있다. 또한, 클라이언트 노드 (102) 의 실시간은 주기적으로 업데이트되거나 조정될 수도 있다. 예를 들어, 매 에포크, 또는 일부 다수의 에포크의 시작 시에, 그룹 노드는 중앙 노드 (106) 로부터 클라이언트 노드 (102) 에 실시간 정보를 송신할 수도 있다. 따라서, 그룹 노드 (104) 에 유지된 시간은 Gnode_time 으로서 식별될 수도 있고, 클라이언트 노드 (102) 에 유지된 시간은 Cnode_time 으로서 식별될 수도 있다.
통신 시스템 (100) 내의 시간은 에포크 A (301) 및 에포크 B (303) 와 같이, 에포크들로 나누어질 수도 있고, 여기서, 에포크 B (303) 는 시간적으로 에포크 A (301) 후에 발생한다. 각 에포크의 길이는 고정일 수도 있고, 예를 들어 수분에서 부일 정도의 것일 수도 있다. 하지만, 이들은 단지 예들일 뿐이다. 전체 시스템의 요건들에 따라 상이한 길이들의 에포크들이 선택될 수도 있다.
각각의 에포크에 대해, 그룹 노드 (104) 는 중앙 노드 (106) 와 적어도 한번 통신할 수도 있다. 예를 들어, 에포크 A (301) 의 시작 시에 (또는 몇몇 실시형태들에서 에포크 A (301) 의 시작 전에), 그룹 노드 (104) 는 각 클라이언트 노드 (102) 에 대해 중앙 노드 (106) 로부터 적어도 하나의 프록시 토큰 (306) 을 수신할 수도 있다. 수신된 프록시 토큰은 특정 에포크, 예를 들어 에포크 A (301) 와 연관된다. 따라서, 통신 시스템에서의 각 클라이언트 노드에 대해, 중앙 노드 (106) 는 그룹 노드 (104) 에 에포크와 연관된 프록시 토큰을 전송할 수도 있고, 여기서, 프록시 토큰은 클라이언트 식별자 Cnode_ID 및 제한된 키 KR 를 포함한다. 그룹 노드 (104) 는 그 다음 하나 이상의 수신된 프록시 토큰들을 저장하고 (308) 각각을 특정 에포크와 연관시킬 수도 있다. 새로운 클라이언트 노드가 에포크의 중간에서 통신 시스템에 들어가는 경우, 중앙 노드 (106) 는 모든 그룹 노드들 (104a-104c) 에 새로운 클라이언트 노드에 대한 프록시 토큰을 송신할 수도 있다.
클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 세션 키를 확립하는 것은, 개시 파티 (클라이언트 노드 (102) 또는 그룹 노드 (104) 중 어느 일방) 가 세션 키 확립 프로토콜을 개시할 때 시작할 수도 있다. 예를 들어, 그룹 노드 (104) 는 그것의 아이덴티티 Gnode_ID 및 그것의 현재 실시간 Gnode_time 을 포함하는 메시지를 클라이언트 노드 (102) 에 송신할 수도 있다 (310). 클라이언트 노드 (102) 는 그 다음, 그룹 노드 (104) 의 실시간 Gnode_time 이 그 자신의 실시간 Cnode_time 에 대해 미리결정된 시간 차이 (예를 들어, 시간 윈도우, 시간 임계치, 최대 시간 임계 차이 등) 내인지, 예를 들어, 수초 내인지 여부를 결정할 수도 있다 (312). 두 값들 사이의 시간 차이가 미리결정된 시간 차이 미만인 경우에는, 클라이언트 노드 (102) 는 실시간, 예를 들어, 노드 실시간에 기초하여 에포크 아이덴티티 값 Epoch_ID 을 계산할 수도 있다. 일 실시형태에서, Epoch_ID 를 계산하기 위해 클라이언트 노드 (102) 에 의해 사용된 노드 실시간은 그룹 노드 (104) 의 실시간 Gnode_time 일 수도 있다 (314). 다른 실시형태에서, 클라이언트 노드 (102) 는 Epoch_ID 를 계산하기 위해 그 자신의 실시간 Cnode_time 을 이용할 수도 있다. 사용된 특정 노드 실시간은 클라이언트 노드 (102) 및 그룹 노드 (104) 양자 모두에 의해 이용되어 양자 모두가 동일한 Epoch_ID 값을 계산하도록 하여야 한다. 시간 차이가 미리결정된 시간 차이보다 큰 경우, 그룹 노드 (104) 는 손상된 것으로 고려될 수도 있고 세션 키의 확립이 종결될 수도 있다.
클라이언트 노드 (102) 가 일단 Gnode_time 에 기초하여 에포크 아이덴티티 값 Epoch_ID 를 계산하면, 클라이언트 노드 (102) 는 예를 들어 공식:
KR = CMAC(KM, Gnode lD || Epoch_ID)
을 이용하여 제한된 키 KR 을 도출할 수도 있고, 여기서, Gnode_ID 는 그룹 노드 (104) 의 아이덴티티이고, Epoch_ID 는 확립된 에포크 값이며, KM 은 클라이언트 노드 (102) 와 중앙 노드 (106) 사이에 공유된 공유 비밀 키이고, CMAC 은 암호-기반 메시지 인증 코드 (CMAC) 알고리즘 이다 (316). 전술한 바와 같이, 다른 입력들, 인수들, 및/또는 코딩 방식들이 이용될 수도 있다.
그룹 노드 (104) 는 클라이언트 노드 (102) 에 의해 사용된 것과 동일한 노드 실시간에 기초하여 그 자신의 에포크 아이덴티티 값 Epoch_ID 를 결정할 수도 있다. 예를 들어, 클라이언트 노드 (102) 가 Epoch_ID 를 계산하기 위해 Gnode_time 을 사용한 경우에는, 그룹 노드 (104) 또한 그것의 실시간 Gnode_time 을 사용할 것이다 (318). Cnode_time 과 Gnode_time 사이의 차이가 미리결정된 시간 윈도우보다 작았던 경우 (단계 312), 그룹 노드 (104) 에 의해 계산된 Epoch_ID 가 클라이언트 노드 (102) 에서 계산된 Epoch_ID 와 동일하여야 하고, 이는 양자가 Epoch_ID 를 계산하기 위해 동일한 노드 실시간을 사용했기 때문이다. 그 다음, 그룹 노드는 에포크 아이덴티티 값 Epoch_ID 및 클라이언트 식별자 Cnode_ID 와 구체적으로 연관된 제한된 키 KR 를 획득/취출할 수도 있다 (320). 따라서, 에포크 A (301) 에 대응하는 Epoch_ID 값에 대해, 그룹 노드 (104) 는 Cnode_ID 및 에포크 A (301) 와 연관된 제한된 키 KR 를 취출 (retrieve) 할 수도 있다.
다음으로, 2-라운드 세션 키 확립 프로토콜 (322) 은, 클라이언트 노드 (102) 및 그룹 노드 (104) 양자 모두에 의해 제공된 랜덤 값들 (예를 들어 임시값들) 과 함께 마스터 키로서 제한된 키 KR 를 이용함으로써 세션 키들을 발생시키는데 이용될 수도 있다. 다르게 말하면, 제한된 키 KR 는 두 노드들 사이의 통신들을 위해 사용되는 세션 키들을 도출하기 위해 사용된다. 키 KR 은 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 직접 송신되지 않지만, 그것이 양 노드들에 알려지기 때문에, KR 은 두 노드들 사이에 세션 키를 확립하기 위해 사용될 수 있다. 이러한 방식으로, 세션 키는 보안 통신 세션을 수행하기 위해 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 확립될 수도 있다 (324).
일 실시형태에서, 에포크 A 의 만료 전에, 에포크 B (303) 와 연관된 프록시 토큰들의 대체 셋트가 중앙 노드 (106) 로부터 그룹 노드 (104) 로 송신될 수도 있다 (326a). 프록시 토큰들의 대체 셋트는 주어진 에포크 (에포크 B) 에 대해 주어진 클라이언트 노드에 대한 제한된 키들 KR 를 식별하는 투플들을 유사하게 포함할 것이다. 에포크 B 의 시작 전에 통신 시스템에서 그룹 노드들에 프록시 토큰들을 송신함으로써, 시스템 내의 모든 그룹 노드들이 에포크 B 의 시작에 의해 프록시 토큰의 새로운 셋트를 저장하지 않을 수도 있는 대부분의 경우에도 그것의 보다 큰 보장이 존재할 것이다. 또한, 그룹 노드 (104) 는, 중앙 노드 (106) 와의 통신이 에포크들 천이 시 동안 분실되는 경우에 새로운 토큰들의 셋트에 대한 액세스를 가질 수도 있다.
예를 들어, 중앙 노드 (106) 가 새로운 에포크에 대한 프록시 토큰들을 송신하도록 정상적으로 스케줄링되기 직전에 시작되는 통신 정지가 그룹 노드 (104) 와 중앙 노드 (106) 사이에 발생할 수도 있다. 그룹 노드와 중앙 노드 사이의 통신 정지는 그룹 노드가 새로운 프록시 토큰들을 얻는 것을 방지할 수 있을 것이고, 따라서, 통신 정지가 끝난 때까지 클라이언트-대-그룹 통신 세션들이 확립될 수 없을 것이다. 이를 극복하기 위해, 중앙 노드 (106) 는 새로운 또는 예상되는 에포크의 시작 훨씬 전에 새로운 에포크에 대한 프록시 토큰들을 전송할 수도 있다. 예를 들어, 에포크가 한 시간인 경우, 통신 정지들은 5 분 이하로 지속될 것으로 예상되고, 중앙 노드는 각 에포크 천이 전 15 분 프록시 토큰들을 전송할 수도 있다. 그 결과로서, 그룹 노드 (104) 에 대한 토큰 전달은 보다 양호하게 보장될 수도 있다. 또 다른 실시형태에서, 프록시 토큰들의 대체 셋트가 에포크 A 의 만료 시 그룹 노드에 송신될 수도 있다 (326b).
그룹 노드 (104) 와 클라이언트 노드 (102) 사이에 세션 키들을 확립하는 것은, 그룹 노드 (104) 가 일단 현재 에포크에 대한 그것의 프록시 토큰들을 수신하면, 현재 에포크 동안 그룹 노드 (104) 와 중앙 노드 (106) 사이에 통신들이 발생할 것을 요구하지 않고서도, 발생할 수도 있다. 따라서, 그룹 노드 (104) 와 중앙 노드 (106) 사이의 통신들은 그룹 노드 (104) 가 일단 프록시 토큰들을 획득했다면 에포크 전체에 걸쳐 간헐적 및/또는 이용불가능할 수도 있다.
그룹 노드가 폐기, 분실, 도난되거나, 고장나게 되거나, 손상되는 경우에, 중앙 노드 (106) 는 그것의 손상되지 않은 그룹 노드들의 리스트로부터 그것을 제거할 수도 있고, 현재 에포크가 만료된 후에, 영향을 받은 그룹 노드는 어떤 유효한 프록시 토큰들도 가지지 않을 것이고, 따라서, 클라이언트 노드들과의 보안 통신 세션들을 확립할 수 없다. 따라서, 중앙 노드는 그룹 노드에 대한 프록시 토큰들의 전송을 종결함으로써 클라이언트 노드 (102) 와의 통신들을 확립하기 위한 그룹 노드의 허가를 취소할 수도 있다. 취소 (revocation) 는 다음 에포크의 시작 시에 유효하게 된다.
제한된 키 KR 는 그룹 노드 (104) 와 클라이언트 노드 (102) 사이에 다양한 세션 키들을 발생시키기 위해 에포크 동안 여러 번 사용될 수도 있다. 동일한 에포크 동안 그룹 노드 (104) 와 각 세션에 대한 제한된 키 KR 를 불필요하게 도출하는 것을 회피하기 위해, 클라이언트 노드 (102) 는, 예를 들어 그룹 노드 아이덴티티 Gnode_ID, 에포크 아이덴티티 값, 및 연관된 제한된 키를 포함하는 투플들로 캐시를 유지할 수도 있다. 결과로서, 클라이언트 노드 (102) 에서의 배터리 전력이 절약될 수도 있다.
오직 느슨한 클럭 동기화만이 사용될 수도 있음에 따라, 그룹 노드 (104) 는 만료되는 에포크, 에포크 A 와 연관된 제한된 키 KR _ A 를 사용하고, 클라이언트 노드 (102) 는 다가오는 에포크, 에포크 B 에 대해 제한된 키 KR _B 에 대한 액세스를 이미 가질 수도 있다. 하지만, 전술한 바와 같이, 클라이언트 노드 (102) 는, Gnode_time 과 Cnode_time 사이의 차이가 미리결정된 양 미만이라는 것을 가정하여, 에포크 아이덴티티를 계산하기 위해 Gnode_time 을 사용할 수도 있다. 이것은, 클라이언트 노드 (102) 가 에포크 B 로의 에포크 천이의 통지를 수신한 경우에도, 양자가 동일한 Epoch_ID 값 및 연관된 제한된 키를 계산하는 것을 보장한다. 예를 들어, 클라이언트 노드 (102) 는 "8000" 의 Epoch_ID 값으로 천이하는 Gnode_time 을 수신 및 이용할 수도 있다. 클라이언트 노드는, 그 자신의 실시간 클럭이 느슨한 클럭 동기화로 인해 "8001" 의 에포크 값을 등록할 지라도, 여전히 에포크 값 "8000" 과 연관된 제한된 키 KR _8000 을 계산할 수도 있다.
전술한 바와 같이, 클라이언트 노드 (102) 는 메시지 (310) 에 포함된 그룹 노드 (104) 의 실시간 Gnode_time 을 수신하고, 그것의 실시간 Cnode_time 에 그룹 노드의 실시간이 가까운지를 결정하기 위해 체크하고 (312), 만약 그렇다면, 그룹 노드의 실시간 Gnode_time 으로부터 에포크 아이덴티티 값 Epoch_ID 를 계산할 수도 있다. 예를 들어 그룹 노드 (104) 가 Epoch_ID 에 대응하는 제한된 키를 갖지 않는 경우, (손상되었을 수도 있는) 그룹 노드 (104) 는 오래된 실시간을 전송하고 대응하는 오래된 제한된 키 KR 를 전송하기를 시도할 수도 있고, 또는, 그룹 노드 (104) 는 그것의 현재 에포크 아이덴티티를 전송하고 현재 제한된 키 KR 를 추측하기를 시도할 수도 있다. 그룹 노드 (104) 가 오래된/낡은 실시간을 전송하는 경우, 클라이언트 노드는, 그것의 실시간 Cnode_time 에 충분히 가깝지 않다는 것을 발견하고 통신 세션을 확립하기 위한 그룹 노드 (104) 의 요청을 거절할 수도 있다. 또한, 세션 키 확립 프로토콜에서의 키 유효화 단계 (324) 는 실패할 수도 있고, 클라이언트 노드 (102) 는 통신 세션을 확립하기 위한 요청을 거절할 수도 있다.
예시적인 통신 시스템 - 협상에 의해 도출가능한 에포크 아이덴티티
도 4 는 그룹 노드 (104) 와 중앙 노드 (106) 사이에 세션당 통신을 필요로 함이 없이 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 세션 키가 확립되는 통신 시스템 (100) 의 동작의 일예를 나타내는 흐름도이다. 중앙 노드 (106) 와 클라이언트 노드 (102) 는 각각 공유 비밀 키 KM (402a, 402b) 에 대한 액세스를 가질 수도 있고, 이는 그룹 노드 (104) 에 알려지지 않는다. 공유 비밀 키 KM 는, 통신 시스템 (100) 에서의 각 클라이언트 노드가 중앙 노드 (106) 와 상이한 비밀 키를 공유하도록 클라이언트 노드 특정적일 수도 있다. 클라이언트 노드 (102) 는 클라이언트 노드 식별자 Cnode_ID 와 연관될 수도 있다.
통신 시스템 (100) 내에서의 시간은 에포크 A (401) 및 에포크 B (403) 와 같은 에포크들로 나누어질 수도 있고, 여기서, 에포크 B (403) 는 시간적으로 에포크 A (401) 후에 발생한다. 하지만, 이 예에서, 클라이언트 노드 (102) 는 신뢰가능한 시간 클럭을 가지지 않을 수도 있고, 에포크들은 반드시 고정된 기간 동안의 것일 필요는 없을 수도 있으며, 반면 오히려 중앙 노드 (106) 가 새로운 에포크를 시작하기를 선택할 때마다 발생할 수도 있다.
각각의 에포크에 대해, 그룹 노드 (104) 는 중앙 노드 (106) 와 적어도 한번 통신할 수도 있다. 예를 들어, 에포크 A (401) 의 시작 시에 (또는 몇몇 실시형태들에서 에포크 A (401) 의 시작 전에), 중앙 노드 (106) 는 에포크 카운터를 증분하고 각 클라이언트 노드 (102) 에 대해 그룹 노드 (104) 에 적어도 하나의 프록시 토큰을 송신할 수도 있다 (404). 중앙 노드 (106) 는, 모든 그룹 노드들이 도달되는 것 또는 그것이 일부 그룹 노드들이 도달될 수 없다고 결정하는 것 중 어느 일방 때까지, 모든 그룹 노드들에게 프록시 토큰들을 송신하는 것을 계속할 수도 있다. 중앙 노드 (106) 는 하지만, 적어도 중앙 노드 (106) 와 그룹 노드 사이에 최장의 예상되는 통신 정지까지 시도할 수도 있다.
송신된 프록시 토큰은 특정 에포크, 예를 들어 에포크 A (401) 와 연관된다. 따라서, 통신 시스템에서의 각 클라이언트 노드에 대해, 중앙 노드 (106) 는 그룹 노드 (104) 에 에포크와 연관된 프록시 토큰을 전송할 수도 있고, 여기서, 프록시 토큰은 클라이언트 식별자 Cnode_ID 및 제한된 키 KR 를 포함한다. 그룹 노드 (104) 는 그 다음 수신되고 에포크 A 와 연관된 하나 이상의 프록시 토큰들을 리저브 (reserve) 에 프록시 토큰들의 리저브 셋트로서 저장할 수도 있다 (406). 중앙 노드 (106) 는 그 다음 그룹 노드 (104) 에 커밋 메시지 (408) 를 송신할 수도 있다. 커밋 메시지는 그룹 노드 (104) 에게, 에포크 A 가 시작되었고, 그룹 노드 (104) 는 리저브에 유지된 새로운 프록시 토큰들을 사용하여야 한다는 것을 지시한다 (410). 일 실시형태에서, 그룹 노드 (104) 는, 그것이 리저브 셋트에 유지된 프록시 토큰들로 일단 전환하면 이전 에포크와 연관된 임의의 오래된/낡은 프록시 토큰들을 폐기할 수도 있다. 다른 실시형태들에서, 통신들을 확립하기를 모색하는 다른 클라이언트 노드가 에포크 천이의 통지를 수신하지 못하였고 따라서 오래된 제한된 키를 사용하는 경우에, 오래된/낡은 프록시 토큰들은 유지될 수도 있다.
클라이언트 노드 (102) 와 그룹 노드 (104) 는 그 다음, 에포크 아이덴티티 값 정보를 교환하는 일방 또는 양방의 노드들에 의해 현재 에포크를 식별하는 공통 에포크 아이덴티티 값 Epoch_ID 를 협상할 수도 있다 (412). 에포크 아이덴티티 값 Epoch_ID 는 그룹 노드 (104) 에 알려진 최대 (즉, 가장 최근의) 에포크 아이덴티티 값 Epoch_IDGN 과 클라이언트 노드 (102) 에 알려진 에포크 아이덴티티 값 Epoch_IDCN 중 더 큰 값과 동등하도록 협상되어야 한다. Epoch_IDCN 의 값은 모든 그룹 노드들과의 모든 이전의 성공적인 세션 키 확립 동작들에 기초할 수도 있다.
일예에서, Epoch_ID 값의 협상은 그룹 노드 에포크 값 Epoch_IDGN 및 그룹 노드 식별자 Gnode_ID 를 포함하는 메시지를 클라이언트 노드 (102) 에 송신하는 그룹 노드 (104) 에 의해 시작될 수도 있다. 클라이언트 노드 (102) 는 그 다음, 수신된 Epoch_IDGN 값을 그 자신의 클라이언트 노드 에포크 값 Epoch_IDCN 에 비교하고 둘 중 더 큰 것을 Epoch_ID 로서 선택할 수도 있다. 클라이언트 노드 (102) 는 그 다음 그룹 노드 (104) 에 Epoch_ID 를 송신한다. 몇몇 실시형태들에서, 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 세션 키가 일단 확립되면, 클라이언트 노드 (102) 는, Epoch_ID 가 Epoch_IDCN 보다 큰 경우, 그것의 캐시를 플러시하고, 에포크 아이덴티티 값 Epoch_ID, 그룹 노드 식별자 Gnode_ID, 및 제한된 키 KR 로 이루어진 투플로 캐시 값들을 대체한다.
다른 예에서, 클라이언트 노드 (102) 는 먼저 Epoch_IDCN 를 그룹 노드 (104) 에 송신할 수도 있다. 그룹 노드 (104) 는 그 다음 Epoch_IDCN 을 그 자신의 에포크 값 Epoch_IDGN 에 비교하고 둘 중 더 큰 것을 선택할 수도 있다. 값 Epoch_IDGN_Select 를 갖는 그룹 노드 (104) 에 의해 선택된 에포크 값은 그 다음 클라이언트 노드 (102) 로 다시 거꾸로 송신될 수도 있다. 클라이언트 노드 (102) 는 그 다음, Epoch_IDGN_Select 가, 그것이 이전에 그룹 노드 (104) 에 전송하였던 에포크 값 Epoch_IDCN 보다 큰지 또는 동등한지 여부를 결정할 수도 있다. Epoch_IDGN_Select 가 Epoch_IDCN 과 동등하거나 보다 큰 경우에는, 클라이언트 노드 (102) 는 Epoch_IDGN_Select 와 동일한 Epoch_ID 를 설정할 것이다. 그렇지 않고, Epoch_IDGN_Select 가 Epoch_IDCN 보다 작은 경우에는, 클라이언트 노드 (102) 는 그룹 노드 (104) 가 손상되었다고 결정하고 세션 키 확립을 중단할 수도 있다. 몇몇 실시형태들에서, 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 세션 키가 일단 확립되면, 클라이언트 노드 (102) 는, Epoch_ID 가 Epoch_IDCN 보다 큰 경우, 그것의 캐시를 플러시하고, 에포크 아이덴티티 값 Epoch_ID, 그룹 노드 식별자 Gnode_ID, 및 제한된 키 KR 로 이루어진 투플로 캐시 값들을 대체한다.
어떻게 Epoch_ID 가 협상되는지에도 불구하고, 목적은 클라이언트 노드 (102) 및 그룹 노드 (104) 에서 동일한 에포크 아이덴티티 값 Epoch_ID 를 확립하기 위한 것이다. 클라이언트 노드 (102) 및 그룹 노드 (104) 가 Epoch_ID 를 일단 확립하면, 그룹 노드 (104) 는 저장된 클라이언트 식별자 Cnode_ID 및 Epoch_ID 와 구체적으로 연관된 제한된 키 KR 를 획득/취출할 수도 있다 (414). 그룹 노드 (104) 는, Epoch_ID 값을 포함하는 셋트에 따라, 그것이 사전에 저장한 (406) 프록시 토큰들의 리저브 셋트 또는 그것이 이미 저장한 프록시 토큰들의 활성 셋트 중 어느 일방으로부터 제한된 키 KR 를 취출할 수도 있다. 클라이언트 노드 (102) 는 예를 들어 전술한 공식: KR = CMAC (Gnode_ID || Epoch_ID, KM) 을 이용하여 제한된 키 KR 를 도출할 수도 있다 (416).
다음으로, 2-라운드 세션 키 확립 프로토콜은, 클라이언트 노드 (102) 및 그룹 노드 (104) 사이에 교환되는 랜덤 값들 (예를 들어 임시값들) 과 함께 마스터 키로서 제한된 키 KR 를 이용함으로써 세션 키들을 발생 (418) 시키는데 이용될 수도 있다. 다르게 말하면, 제한된 키 KR 는 두 노드들 사이의 통신들을 위해 사용되는 세션 키들을 도출하기 위해 사용된다. 키 KR 은 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 직접 송신되지 않지만, 그것이 양 노드들에 알려지기 때문에, KR 은 두 노드들 사이에 세션 키를 확립하기 위해 사용될 수 있다. 이러한 방식으로, 세션 키는 보안 통신 세션을 수행하기 위해 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 확립될 수도 있다 (420).
중앙 노드가 에포크 A (401) 를 끝내기를 결정할 때 에포크 B (403) 가 시작될 수도 있다. 일 실시형태에서, 대체 프록시 토큰들의 또 다른 셋트가 에포크 B 의 시작 시에 그룹 노드 (104) 에 송신된다 (422a). 또 다른 실시형태에서, 대체 프록시 토큰들은 에포크 A 의 종료 이전에 송신될 수도 있다 (422a).
그룹 노드 (104) 와 클라이언트 노드 (102) 사이에 세션 키들을 확립하는 것은, 그룹 노드 (104) 가 그 에포크와 연관된 프록시 토큰들을 이미 수신하였기 때문에, 현재 에포크 동안 그룹 노드 (104) 와 중앙 노드 (106) 사이에 통신들을 필요로 함이 없이 발생할 수도 있다. 따라서, 그룹 노드 (104) 와 중앙 노드 (106) 사이의 통신들은 그룹 노드 (104) 가 일단 프록시 토큰들을 그 에포크 동안 수신했다면 에포크 전체에 걸쳐 간헐적 및/또는 이용불가능할 수도 있다.
그룹 노드가 폐기, 분실, 도난되거나, 고장나게 되거나, 손상되는 경우에, 중앙 노드 (106) 는 그것의 손상되지 않은 그룹 노드들의 리스트로부터 그것을 제거할 수도 있고, 현재 에포크가 만료된 후에, 영향을 받은 그룹 노드는 어떤 유효한 프록시 토큰들도 가지지 않을 것이고, 따라서, 클라이언트 노드들과의 보안 통신 세션들을 확립할 수 없다. 따라서, 중앙 노드 (106) 는 그룹 노드에 대한 프록시 토큰들의 전송을 종결함으로써 클라이언트 노드 (102) 와의 통신들을 확립하기 위한 그룹 노드의 허가를 취소할 수도 있다. 취소는 다음 에포크의 시작 시에 유효하게 된다.
Epoch_ID 가 협상을 통해 확립되는 (412) 실시형태들에서, 에포크 아이덴티티 값들은 클라이언트 노드 (102) 와 그룹 노드 (104) 사이에 직접 송신될 수도 있다. 이는, 도 3 의 단계 310 에서 Gnode_time 이 그룹 노드 (104) 로부터 클라이언트 노드 (102) 로 송신되는 것과 같이, 실시간 값들이 교환되는 본원의 다른 실시형태들과 상이할 수도 있다. 또한, 중앙 노드에 의해 손상된 것으로 결정된 손상된 그룹 노드들은 클라이언트 노드가 더 큰 (시간적으로 보다 최근의) 에포크 아이덴티티 값을 알게 된 후에는 클라이언트 노드에 의해 거절될 수도 있다. 클라이언트 노드는, 중앙 노드가 손상된 그룹 노드에 프록시 토큰들을 전송하지 않은 에포크의 개시 후에 통신들이 발생하는, 다른 손상되지 않은 그룹 노드와의 통신들로부터 더 큰 에포크 값을 습득할 수도 있다.
또한, 몇몇 실시형태들에서, 클라이언트 노드 (102) 와 그룹 노드 (104) 는 실질적으로 동일 시간에 단계들 412 및 418 의 선택 송신들을 수행할 수도 있다. 예를 들어, 에포크 아이덴티티 값들 Epoch_IDCN, Epoch_IDGN, 및/또는 Epoch_IDGN_Select 는 세션 키 확립 프로토콜의 하나 이상의 메시지들 상으로 피기백 (piggyback) 될 수도 있다 (418).
몇몇 실시형태들에서, 협상된 에포크 아이덴티티 값 Epoch_ID (412) 이 리저브에 유지되고 있는 프록시 토큰에 대응한다고 그룹 노드 (104) 가 결정하는 경우, 그룹 노드 (104) 는, 그룹 노드 (104) 가 중앙 노드 (106) 로부터 커밋 메시지 (408) 를 수신하지 않은 경우에도, 리저브에 유지된 프록시 토큰으로부터 제한된 키 KR 를 취출할 수도 있다. 이것은, 적어도 일부 손상되지 않은 그룹 노드들이 커밋 메시지들을 수신한 경우에만 일어날 수 있고, 이는, 중앙 노드 (106) 가 커밋 페이즈를 시작하였지만, 문제가 되는 그룹 노드 (104) 는 아직 그 커밋 메시지 (408) 를 수신하지 않았다는 것을 의미한다. 이러한 작용은 시스템 (100) 내의 그룹 노드들 (104a-104c) 로 중앙 노드 (106) 에 의해 전송된 에포크 천이 통지들의 비동기성 성질이 세션 키 확립 실패들을 야기하는 것을 방지한다.
예시적인 클라이언트 노드
도 5 는 일예에 따른 클라이언트 노드 (102) 의 기능적 블록도를 나타낸다. 클라이언트 노드 (102) 는 프로세싱 회로 (예를 들어, 프로세서, 프로세싱 모듈, 애플리케이션 특정 집적 회로 (ASIC) 등) (502), 메모리 회로 (예를 들어, 메모리, 메모리 디바이스, 메모리 모듈 등) (504), 캐시 (506), 및/또는, 통신 인터페이스 (508) 를 포함할 수도 있고, 이 모두는 예를 들어 통신 버스 (512) 를 통해 서로에 대해 통신적으로 커플링될 수도 있다.
프로세싱 회로 (502) 는, 도면들에서 예시되고 본원에서 설명된, 클라이언트 노드에서 동작하는 단계들 중 임의의 것과 같은, 프로세서 판독가능 프로세스 단계들의 실행을 포함하는 데이터 프로세싱을 수행할 수도 있다. 예를 들어, 프로세싱 회로 (502) 는 적어도 도 6 에서 도시된 단계들 (602, 604, 및 606) 을 수행하도록 적응되는 특수화된 프로세서 (예를 들어, ASIC) 일 수도 있다. 메모리 회로 (504) 는, 그룹 노드들의 아이덴티티 Gnode_ID, 제한된 키들 KR, 및 Epoch_ID 와 같은 연관된 에포크 아이덴티티 정보를 포함하는 투플들을 저장할 수도 있는 캐시 (506) 를 포함할 수도 있다. 캐시 (506) 는 데이터가 빠르게 취출되는 것을 허용하는 가상 캐시 또는 논리적 캐시일 수도 있다. 통신 인터페이스 (508) 는, (예를 들어, 무선 접속 (510) 을 통해) 통신 시스템 (100) 에서의 하나 이상의 그룹 노드들에 클라이언트 노드 (102) 를 통신적으로 커플링하기 위해, 비제한적으로 Bluetooth®, Bluetooth® Low Engery, WiFi, 및/또는 ZigBee® 프로토콜들과 같은, 임의의 저전력 통신 프로토콜들을 이용할 수도 있다.
세션 키를 확립하는 클라이언트 노드의 예시적인 동작
도 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 을, 그것이 통신할 특정된 그룹 노드에 전송/송신할 수도 있다 (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), 제 1 통신 인터페이스 (1008), 및/또는 제 2 통신 인터페이스 (1010) 를 포함할 수도 있고, 이 모두는, 예를 들어 통신 버스 (1012) 를 통해 서로에 대해 통신적으로 커플링될 수도 있다.
프로세싱 회로 (1002) 는, 도면들에서 예시되고 및/또는 본원에서 설명된, 그룹 노드에서 동작하는 단계들 중 임의의 것과 같은, 프로세서 판독가능 프로세스 단계들의 실행을 포함하는 데이터 프로세싱을 수행할 수도 있다. 예를 들어, 프로세싱 회로 (1002) 는 적어도 도 11 에서 도시된 단계들 (1102 - 1108) 을 수행하도록 적응되는 특수화된 프로세서 (예를 들어, ASIC) 일 수도 있다. 메모리 회로 (1004) 는, 프록시 토큰들 (활성 또는 리저브 셋트들), 세션 키들, 클라이언트 노드 식별자, 제한된 키들 KR, 및 Epoch_ID 와 같은 연관된 에포크 아이덴티티 정보, 및 다른 데이터를 저장할 수도 있는 캐시 (1006) 를 포함할 수도 있다. 제 1 통신 인터페이스 (1008) 는 그룹 노드 (104) 를 중앙 노드 (106) 에 통신적으로 커플링하도록 적응된다. 제 1 통신 인터페이스는 무선 도는 유선 접속 중 어느 일방일 수도 있다. 제 2 통신 인터페이스 (1010) 는, (예를 들어, 무선 접속 (1014) 을 통해) 통신 시스템 (100) 에서 클라이언트 노드 (102) 에 그룹 노드 (104) 를 통신적으로 커플링하기 위해, 비제한적으로 Bluetooth®, Bluetooth® Low Engery, WiFi, 및/또는 ZigBee® 프로토콜들과 같은, 임의의 저전력 통신 프로토콜들을 이용할 수도 있다.
세션 키를 확립하는 그룹 노드의 예시적인 동작
도 11 은 그룹 노드와 클라이언트 노드 사이에 세션 키를 확립하기 위해 그룹 노드에서 동작하는 예시적인 방법을 예시하는 흐름도 (1100) 를 나타낸다. 먼저, 그룹 노드는 중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하고, 여기서, 프록시 토큰들의 제 1 셋트는 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함한다 (1102). 다음으로, 그룹 노드는 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 셋트로서 저장한다 (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).
클라이언트 노드와의 표준 키 확립 프로토콜이 그 다음 실행될 수도 있고, 여기서, 제한된 키가 키 확립 프로토콜에서의 마스터 키로서 사용된다. 세션 키 확인이 제공될 수도 있고, 클라이언트 노드와의 통신 세션이 확립될 수도 있다.
일 실시형태에서, 클라이언트 노드가 세션 확립을 개시하는 경우, 그룹 노드는 클라이언트 노드로부터 에포크 아이덴티티 값을 수신할 수도 있다. 다음으로, 클라이언트 노드는, 수신된 에포크 아이덴티티가 마지막으로 커밋된 에포크 아이덴티티보다 적거나 동일한 경우, 마지막으로 커밋된 에포크 아이덴티티를 전송받을 수도 있고, 수신된 에포크 아이덴티티가 커밋되지않은 (uncommitted) 에포크 아이덴티티와 동일한 경우 클라이언트 노드는 커밋되지 않은 에포크 아이덴티티를 전송받을 수도 있으며, 커밋되지 않은 에포크 아이덴티티는 커밋되지 않은 에포크를 식별한다. 다음으로, 수신된 에포크 아이덴티티가 마지막으로 커밋된 에포크 아이덴티티보다 큰지 및 수신된 에포크 아이덴티티가 커밋되지않은 에포크 아이덴티티와 동일하지 않은지가 결정될 수도 있다. 수신된 에포크 아이덴티티가 마지막으로 커밋된 에포크 아이덴티티보다 크고 수신된 에포크 아이덴티티가 커밋되지않은 에포크 아이덴티티와 동일하지 않은 경우, 세션 확립이 중단될 수도 있다.
하지만, 수신된 에포크 아이덴티티가 마지막으로 커밋된 에포크 아이덴티티보다 크지 않고 수신된 에포크 아이덴티티가 커밋되지않은 에포크 아이덴티티와 동일한 경우, 클라이언트 노드와의 표준 키 확립 프로토콜이 실행될 수도 있다. 일 실시형태에서, 키 확립 프로토콜은 키 확인 단계를 포함한다. 그룹 노드는 그 다음 클라이언트 노드와 통신 세션을 진행할 수도 있다.
예시적인 중앙 노드
도 16 은 일예에 따른 중앙 노드 (106) 의 기능적 블록도를 나타낸다. 중앙 노드 (106) 는 그룹 노드 (104a-104c) 를 통해 클라이언트 노드 (102) 와 간접적으로 통신할 수도 있다. 중앙 노드 (106) 는 프로세싱 회로 (예를 들어, 프로세서, 프로세싱 모듈, ASIC 등) (1602), 메모리 회로 (예를 들어, 메모리, 메모리 디바이스, 메모리 모듈 등) (1604), 및/또는, 통신 인터페이스 (1606) 를 포함할 수도 있고, 이 모두는 예를 들어 통신 버스 (1608) 를 통해 서로에 대해 통신적으로 커플링될 수도 있다.
프로세싱 회로 (1602) 는, 도면들에서 예시되고 본원에서 설명된, 중앙 노드에서 동작하는 단계들 중 임의의 것과 같은, 프로세서 판독가능 프로세스 단계들의 실행을 포함하는 데이터 프로세싱을 수행할 수도 있다. 예를 들어, 프로세싱 회로 (1602) 는 적어도 도 17 에서 도시된 단계들 (1702 - 1706) 을 수행하도록 적응되는 특수화된 프로세서 (예를 들어, ASIC) 일 수도 있다. 메모리 회로 (1604) 는, 비제한적으로, 연관된 공유 비밀 키 KM 와 함께 클라이언트 노드들의 리스트 및 손상되지 않은 그룹 노드들의 리스트를 저장하는 것을 포함하여, 데이터를 저장하도록 구성된다. 통신 인터페이스 (1606) 는 중앙 노드 (106) 를 그룹 노드 (104) 에 통신적으로 커플링하도록 구성된다. 통신 인터페이스는 무선 또는 유선 접속 중 어느 일방일 수도 있다.
그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드의 예시적인 동작
도 17 은 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 예시적인 방법을 예시하는 흐름도 (1700) 를 나타낸다. 먼저, 중앙 노드는, 제 2 그룹 노드가 손상된 것을 결정할 수도 있고, 여기서, 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는다 (1702). 다음으로, 중앙 노드는 손상된 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거할 수도 있고, 여기서, 손상되지 않은 그룹 노드들의 리스트는 중앙 노드에 저장되고 제 1 그룹 노드를 포함한다 (1704). 다음으로, 중앙 노드는 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크와 연관된 복수의 프록시 토큰들을 송신할 수도 있다. 복수의 프록시 토큰들은 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 제 1 그룹 노드에 송신되며, 여기서, 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함한다. 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 제한된 키는 다가오는 에포크 아이덴티티 값, 제 1 그룹 노드 식별자, 및 클라이언트 노드와 중앙 노드 사이에 이전에 확립된 공유 키로부터 계산된다 (1706).
일 실시형태에서, 프록시 토큰은 다가오는 에포크의 시작 이전에 송신될 수도 있다. 다른 실시형태에서, 중앙 노드는 제 1 그룹 노드에 커밋 메시지를 송신할 수도 있고, 커밋 메시지는 다가오는 에포크의 시작을 나타낸다.
에포크들을 정의하기 위해 실시간을 이용하는 중앙 노드의 예시적인 동작
도 18 은 에포크들을 정의하기 위해 실시간을 이용하여 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드의 동작의 일예를 나타낸다. 중앙 노드는 다가오는 에포크의 시작 전에 미리결정된 시간까지 대기할 수도 있다 (1802). 그 다음, 다가오는 에포크에 대한 에포크 아이덴티티 값을 계산할 수도 있다 (1804). 다음으로, 중앙 노드는 손상되지 않은 그룹 노드와 클라이언트 노드의 각각의 결합에 대해 제한된 키 KR 를 계산할 수도 있고, 다가오는 에포크에 대해 에포크 아이덴티티 값을 이용하여 프록시 투플들을 구축할 수도 있다 (1806). 각각의 손상되지 않은 그룹 노드에 대해, 중앙 노드는 그 그룹 노드에 대한 프록시 투플들을 전송할 수도 있다 (1808).
예를 들어, 중앙 노드는 특정 그룹 노드 및 클라이언트 노드 결합에 대해 제한된 키 KR 을 다음 공식:
KR = CMAC(KM, Gnode_lD || Epoch_ID)
에 의해 계산할 수도 있고, 여기서, Gnode_lD 는 그룹 노드 아이덴티티일 수도 있고, Epoch_ID 는 다가오는 에포크 값일 수도 있으며, KM 은 클라이언트 노드와 중앙 노드 사이에 공유된 공유 비밀 키일 수도 있고, CMAC 은 암호-기반 메시지 인증 코드 (CMAC) 알고리즘일 수도 있다.
다른 예에서, 중앙 노드는 통신 시스템에서의 그룹 노드들에 에포크에 대한 프록시 토큰을 송신할 수도 있고, 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 가지고, 여기서, 제한된 키는 에포크 아이덴티티 값 Epoch_ID, 그룹 노드 아이덴티티 Gnode_ID, 및 클라이언트 노드와 중앙 노드 사이에 이전에 확립된 공유 비밀 키 KM 로부터 계산된다. 에포크 아이덴티티 값은 실시간으로부터 계산될 수도 있다. 그 다음, 그룹 노드가 폐기, 손상, 분실, 도난, 또는 고장나게 되었는지가 결정될 수도 있다. 그룹 노드가 손상되었다고 결정되는 경우, 손상된 그룹 노드는 중앙 노드에 저장된 손상되지 않은 그룹 노드들의 리스트로부터 제거될 수도 있다. 중앙 노드는 그 다음 손상된 그룹 노드에 프록시 토큰들의 송신을 종결하고 에포크에 대한 프록시 토큰을 통신 시스템에서 손상되지 않은 그룹 노드들, 손상되지 않은 그룹 노드들의 리스트의 엘리먼트들에 송신할 수도 있으며, 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 갖고, 여기서, 제한된 키는 다가오는 에포크의 아이덴티티, 그룹 노드의 아이덴티티, 및 클라이언트 노드 및 중앙 노드 사이에 이전에 확립된 공유 키로부터 계산될 수도 있다.
에포크들을 정의하기 위해 실시간을 이용하지 않는 중앙 노드의 예시적인 동작
도 19 는 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드의 동작의 일예를 나타내고, 여기서, 에포크 아이덴티티는 실시간에 관련되지 않는다. 중앙 노드는 다음 에포크에 대한 시간 또는 이벤트를 선택할 수도 있고, 그 다음, 그 시간 또는 이벤트가 일어나기를 기다릴 수도 있다 (1902). 일단 그것이 발생하면, 에포크 아이덴티티 값 카운터가 증분될 수도 있다 (1904). 다음으로, 중앙 노드는 손상되지 않은 그룹 노드 및 클라이언트 노드의 각각의 결합에 대해 제한된 키 KR 를 계산하고 다가오는 에포크에 대한 에포크 아이덴티티를 이용하여 프록시 투플들을 구축할 수도 있다 (1906). 각각의 손상되지 않은 그룹 노드에 대해, 커밋 메시지가 전송될 수도 있고, 커밋 메시지는 에포크의 시작을 나타낸다 (1908).
예를 들어, 중앙 노드는 특정 그룹 노드 및 클라이언트 노드 결합에 대해 제한된 키 KR 을 다음 공식:
KR = CMAC(KM, Gnode_lD || Epoch_ID)
에 의해 계산할 수도 있고, 여기서, Gnode_lD 는 그룹 노드 아이덴티티일 수도 있고, 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 (50)

  1. 클라이언트 노드와 그룹 노드 사이에 세션 키를 확립하기 위해 상기 클라이언트 노드에서 동작하는 방법으로서,
    현재 에포크 (epoch) 와 연관된 에포크 아이덴티티 값을 획득하는 단계로서, 상기 에포크 아이덴티티 값을 획득하는 단계는 노드 실제 시간에 기초하여 상기 에포크 아이덴티티 값을 계산하는 것 또는 상기 그룹 노드와 상기 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계;
    공유 비밀 키, 상기 에포크 아이덴티티 값, 및 상기 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 단계로서, 상기 공유 비밀 키는 상기 클라이언트 노드 및 중앙 노드에 알려졌으나 상기 그룹 노드에는 알려지지 않은, 상기 제한된 키를 계산하는 단계; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 상기 세션 키를 도출하기 위해 상기 그룹 노드와 함께 상기 세션 키 확립 프로토콜을 실행하는 단계를 포함하는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  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 항에 있어서,
    상기 중앙 노드는 커밋 (commit) 메시지를 상기 그룹 노드에 송신함으로써 상기 현재 에포크의 시작을 나타내는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  15. 제 1 항에 있어서,
    상기 에포크는 실제 시간으로부터 도출되는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  16. 제 1 항에 있어서,
    상기 공유 비밀 키, 상기 에포크 아이덴티티 값, 및 상기 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 단계는, 암호-기반 메시지 인증 코드 (CMAC) 함수, 해시-기반 메시지 인증 코드 (HMAC) 함수, 또는 암호 블록 연쇄 메시지 인증 코드 (CBC-MAC) 함수 중 하나를 이용하여 수행되는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  17. 제 1 항에 있어서,
    상기 현재 에포크 동안 상기 그룹 노드와 생성된 각각의 세션에 대해 상기 제한된 키의 도출을 회피하기 위해 캐시 내에 투플 (tuple) 을 삽입하는 단계를 더 포함하는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  18. 제 17 항에 있어서,
    상기 투플은 상기 그룹 노드 아이덴티티 및 상기 제한된 키를 포함하는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  19. 제 17 항에 있어서,
    상기 캐시는 상기 현재 에포크가 만료될 때 플러시 (flush) 되는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  20. 클라이언트 노드로서,
    그룹 노드와 통신하도록 구성된 통신 인터페이스; 및
    상기 통신 인터페이스에 통신적으로 커플링된 프로세싱 회로를 포함하고,
    상기 프로세싱 회로는,
    현재 에포크 (epoch) 와 연관된 에포크 아이덴티티 값을 획득하는 것으로서, 상기 에포크 아이덴티티 값을 획득하는 것은 노드 실제 시간에 기초하여 상기 에포크 아이덴티티 값을 계산하는 것 또는 상기 그룹 노드와 상기 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것;
    공유 비밀 키, 상기 에포크 아이덴티티 값, 및 상기 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 것으로서, 상기 공유 비밀 키는 상기 클라이언트 노드 및 중앙 노드에 알려졌으나 상기 그룹 노드에는 알려지지 않은, 상기 제한된 키를 계산하는 것; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 세션 키를 도출하기 위해 상기 그룹 노드와 함께 상기 세션 키 확립 프로토콜을 실행하는 것을 수행하도록 구성된, 클라이언트 노드.
  21. 제 20 항에 있어서,
    상기 프로세싱 회로는, 클라이언트 노드 실제 시간의 최대 시간 임계 차이 이내에서 상기 클라이언트 노드, 상기 그룹 노드, 및 상기 중앙 노드 사이에 시간을 동기화하도록 더 구성되고,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은 상기 프로세싱 회로로 하여금,
    상기 그룹 노드로부터 그룹 노드 실제 시간 및 상기 그룹 노드 아이덴티티를 수신하는 것;
    상기 그룹 노드 실제 시간을 상기 클라이언트 노드 실제 시간과 비교하는 것;
    상기 그룹 노드 실제 시간이 상기 클라이언트 노드 실제 시간의 상기 최대 시간 임계 차이 내인 것을 결정하는 것; 및
    상기 노드 실제 시간으로부터 상기 에포크 아이덴티티 값을 계산하는 것을 하게 하는, 클라이언트 노드.
  22. 제 20 항에 있어서,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은 상기 프로세싱 회로로 하여금,
    상기 그룹 노드로부터 그룹 노드 에포크 값 및 상기 그룹 노드 아이덴티티를 수신하는 것;
    상기 그룹 노드 에포크 값을 클라이언트 노드 에포크 값에 비교하는 것으로서, 상기 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 비교하는 것;
    상기 그룹 노드 에포크 값 및 상기 클라이언트 노드 에포크 값 중 더 큰 값으로서 상기 에포크 아이덴티티 값을 계산하는 것; 및
    계산된 상기 에포크 아이덴티티 값을 상기 그룹 노드에 송신하는 것을 하게 하는, 클라이언트 노드.
  23. 제 20 항에 있어서,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은 상기 프로세싱 회로로 하여금,
    클라이언트 노드 에포크 값을 상기 그룹 노드에 송신하는 것으로서, 상기 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 클라이언트 노드 에포크 값을 상기 그룹 노드에 송신하는 것;
    상기 그룹 노드로부터 상기 에포크 아이덴티티 값 및 상기 그룹 노드 아이덴티티를 수신하는 것; 및
    수신된 상기 에포크 아이덴티티 값이 송신된 상기 클라이언트 노드 에포크 값보다 더 크거나 동일한 것을 확인하는 것을 하게 하는, 클라이언트 노드.
  24. 현재 에포크 (epoch) 와 연관된 에포크 아이덴티티 값을 획득하는 수단으로서, 상기 에포크 아이덴티티 값을 획득하는 것은 노드 실제 시간에 기초하여 상기 에포크 아이덴티티 값을 계산하는 것 또는 그룹 노드와 상기 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단;
    공유 비밀 키, 상기 에포크 아이덴티티 값, 및 상기 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 수단으로서, 상기 공유 비밀 키는 클라이언트 노드 및 중앙 노드에 알려졌으나 상기 그룹 노드에는 알려지지 않은, 상기 제한된 키를 계산하는 수단; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 세션 키를 도출하기 위해 상기 그룹 노드와 함께 상기 세션 키 확립 프로토콜을 실행하는 수단을 포함하는, 클라이언트 노드.
  25. 제 24 항에 있어서,
    클라이언트 노드 실제 시간의 최대 시간 임계 차이 이내에서 상기 클라이언트 노드, 상기 그룹 노드, 및 상기 중앙 노드 사이에 시간을 동기화하는 수단을 더 포함하고,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단은,
    상기 그룹 노드로부터 그룹 노드 실제 시간 및 상기 그룹 노드 아이덴티티를 수신하는 수단,
    상기 그룹 노드 실제 시간을 상기 클라이언트 노드 실제 시간과 비교하는 수단,
    상기 그룹 노드 실제 시간이 상기 클라이언트 노드 실제 시간의 상기 최대 시간 임계 차이 내인 것을 결정하는 수단, 및
    상기 노드 실제 시간으로부터 상기 에포크 아이덴티티 값을 계산하는 수단을 포함하는, 클라이언트 노드.
  26. 제 24 항에 있어서,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단은,
    상기 그룹 노드로부터 그룹 노드 에포크 값 및 상기 그룹 노드 아이덴티티를 수신하는 수단;
    상기 그룹 노드 에포크 값을 클라이언트 노드 에포크 값에 비교하는 수단으로서, 상기 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 비교하는 수단;
    상기 그룹 노드 에포크 값 및 상기 클라이언트 노드 에포크 값 중 더 큰 값으로서 상기 에포크 아이덴티티 값을 계산하는 수단; 및
    계산된 상기 에포크 아이덴티티 값을 상기 그룹 노드에 송신하는 수단을 포함하는, 클라이언트 노드.
  27. 제 24 항에 있어서,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 수단은,
    클라이언트 노드 에포크 값을 상기 그룹 노드에 송신하는 수단으로서, 상기 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 클라이언트 노드 에포크 값을 상기 그룹 노드에 송신하는 수단;
    상기 그룹 노드로부터 상기 에포크 아이덴티티 값 및 상기 그룹 노드 아이덴티티를 수신하는 수단; 및
    수신된 상기 에포크 아이덴티티 값이 송신된 상기 클라이언트 노드 에포크 값보다 더 크거나 동일한 것을 확인하는 수단을 포함하는, 클라이언트 노드.
  28. 클라이언트 노드와 그룹 노드 사이에 세션 키를 확립하기 위해 상기 클라이언트 노드에서 동작하는 하나 이상의 명령들을 갖는 프로세서 판독가능 매체로서,
    상기 명령들은 적어도 하나의 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    현재 에포크 (epoch) 와 연관된 에포크 아이덴티티 값을 획득하는 것으로서, 상기 에포크 아이덴티티 값을 획득하는 것은 노드 실제 시간에 기초하여 상기 에포크 아이덴티티 값을 계산하는 것 또는 상기 그룹 노드와 상기 에포크 아이덴티티 값을 협상하는 것 중 하나를 포함하는, 상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것;
    공유 비밀 키, 상기 에포크 아이덴티티 값, 및 상기 그룹 노드와 연관된 그룹 노드 아이덴티티를 이용하여 제한된 키를 계산하는 것으로서, 상기 공유 비밀 키는 상기 클라이언트 노드 및 중앙 노드에 알려졌으나 상기 그룹 노드에는 알려지지 않은, 상기 제한된 키를 계산하는 것; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 상기 세션 키를 도출하기 위해 상기 그룹 노드와 함께 상기 세션 키 확립 프로토콜을 실행하는 것을 수행하게 하는, 프로세서 판독가능 매체.
  29. 제 28 항에 있어서,
    상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    클라이언트 노드 실제 시간의 최대 시간 임계 차이 이내에서 상기 클라이언트 노드, 상기 그룹 노드, 및 상기 중앙 노드 사이에 시간을 동기화하는 것을 더 수행하게 하는 추가적인 명령들을 가지고,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은,
    상기 그룹 노드로부터 그룹 노드 실제 시간 및 상기 그룹 노드 아이덴티티를 수신하는 것,
    상기 그룹 노드 실제 시간을 상기 클라이언트 노드 실제 시간과 비교하는 것,
    상기 그룹 노드 실제 시간이 상기 클라이언트 노드 실제 시간의 상기 최대 시간 임계 차이 내인 것을 결정하는 것, 및
    상기 노드 실제 시간으로부터 상기 에포크 아이덴티티 값을 계산하는 것을 포함하는, 프로세서 판독가능 매체.
  30. 제 28 항에 있어서,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은,
    상기 그룹 노드로부터 그룹 노드 에포크 값 및 상기 그룹 노드 아이덴티티를 수신하는 것;
    상기 그룹 노드 에포크 값을 클라이언트 노드 에포크 값에 비교하는 것으로서, 상기 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 비교하는 것;
    상기 그룹 노드 에포크 값 및 상기 클라이언트 노드 에포크 값 중 더 큰 값으로서 상기 에포크 아이덴티티 값을 계산하는 것; 및
    계산된 상기 에포크 아이덴티티 값을 상기 그룹 노드에 송신하는 것을 포함하는, 프로세서 판독가능 매체.
  31. 제 28 항에 있어서,
    상기 현재 에포크와 연관된 에포크 아이덴티티 값을 획득하는 것은,
    클라이언트 노드 에포크 값을 상기 그룹 노드에 송신하는 것으로서, 상기 클라이언트 노드 에포크 값은 임의의 그룹 노드와 마지막으로 성공적으로 확립되었던 세션에서 사용된 마지막으로 알려진 에포크 아이덴티티 값과 동일한, 상기 클라이언트 노드 에포크 값을 상기 그룹 노드에 송신하는 것;
    상기 그룹 노드로부터 상기 에포크 아이덴티티 값 및 상기 그룹 노드 아이덴티티를 수신하는 것; 및
    수신된 상기 에포크 아이덴티티 값이 송신된 상기 클라이언트 노드 에포크 값보다 더 크거나 동일한 것을 확인하는 것을 포함하는, 프로세서 판독가능 매체.
  32. 그룹 노드와 클라이언트 노드 사이에 세션 키를 확립하기 위해 상기 그룹 노드에서 동작하는 방법으로서,
    중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 단계로서, 상기 프록시 토큰들의 제 1 셋트는 상기 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 상기 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 단계;
    상기 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 (reserve) 셋트로서 저장하는 단계;
    상기 에포크의 시작 시에 상기 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 단계로서, 상기 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 단계; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 상기 세션 키를 도출하기 위해 상기 클라이언트 노드와 함께 상기 세션 키 확립 프로토콜을 실행하는 단계를 포함하는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  33. 제 32 항에 있어서,
    상기 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계; 및
    상기 에포크 아이덴티티 값에 기초하여 상기 제한된 키를 취출하는 단계를 더 포함하는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  34. 제 33 항에 있어서,
    상기 에포크와 연관된 에포크 아이덴티티 값을 획득하는 단계는,
    클라이언트 노드 실제 시간을 수신하는 단계;
    상기 클라이언트 노드 실제 시간을 그룹 노드 실제 시간에 비교하는 단계;
    상기 그룹 노드 실제 시간이 상기 클라이언트 노드 실제 시간의 최대 시간 임계 차이 내인 것을 결정하는 단계; 및
    노드 실제 시간에 기초하여 상기 에포크 아이덴티티 값을 계산하는 단계를 포함하는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  35. 제 33 항에 있어서,
    상기 에포크 아이덴티티 값에 기초하여 상기 제한된 키를 취출하는 단계는,
    상기 프록시 토큰들의 리저브 셋트 또는 상기 프록시 토큰들의 활성 셋트가 상기 에포크 아이덴티티 값에 대응하는지 여부를 결정하는 단계;
    상기 프록시 토큰들의 리저브 셋트가 상기 에포크 아이덴티티 값과 연관되는 경우 상기 프록시 토큰들의 리저브 셋트로부터 상기 제한된 키를 획득하는 단계; 및
    상기 프록시 토큰들의 리저브 셋트가 상기 에포크 아이덴티티 값과 연관되는 경우 상기 프록시 토큰들의 셋트로부터 상기 제한된 키를 획득하는 단계를 더 포함하는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  36. 제 32 항에 있어서,
    클라이언트 노드 실제 시간의 최대 시간 임계 차이 이내에서 상기 중앙 노드, 상기 그룹 노드, 및 상기 클라이언트 노드 사이에 시간을 동기화하는 단계;
    현재 시간과 연관된 에포크 아이덴티티 값을 획득하는 단계; 및
    상기 에포크 아이덴티티 값 및 상기 클라이언트 노드 아이덴티티에 기초하여 상기 프록시 토큰들의 제 1 셋트로부터 상기 클라이언트 노드에 대한 상기 제한된 키를 선택하는 단계를 더 포함하는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  37. 제 32 항에 있어서,
    상기 에포크와 연관된 에포크 아이덴티티 값, 및 상기 프록시 토큰들의 제 1 셋트를 포함하는 적어도 하나의 메시지를 상기 중앙 노드로부터 수신하는 단계; 및
    상기 에포크의 시작을 나타내는 커밋 (commit) 메시지를 상기 중앙 노드로부터 수신하는 단계를 더 포함하는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  38. 제 32 항에 있어서,
    상기 그룹 노드와 상기 중앙 노드 사이의 통신 링크는 상기 에포크 동안 오직 간헐적으로만 이용가능한, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  39. 그룹 노드로서,
    중앙 노드와 통신하도록 구성된 제 1 통신 인터페이스;
    클라이언트 노드와 통신하도록 구성된 제 2 통신 인터페이스; 및
    상기 제 1 및 제 2 통신 인터페이스들에 통신적으로 커플링된 프로세싱 회로를 포함하고,
    상기 프로세싱 회로는,
    상기 중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 것으로서, 상기 프록시 토큰들의 제 1 셋트는 상기 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 상기 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 것;
    상기 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 (reserve) 셋트로서 저장하는 것;
    상기 에포크의 시작 시에 상기 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 것으로서, 상기 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 것; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 세션 키를 도출하기 위해 상기 클라이언트 노드와 함께 상기 세션 키 확립 프로토콜을 실행하는 것을 수행하도록 구성되는, 그룹 노드.
  40. 중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 수단으로서, 상기 프록시 토큰들의 제 1 셋트는 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 상기 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 수단;
    상기 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 (reserve) 셋트로서 저장하는 수단;
    상기 에포크의 시작 시에 상기 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 수단으로서, 상기 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 수단; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 세션 키를 도출하기 위해 상기 클라이언트 노드와 함께 상기 세션 키 확립 프로토콜을 실행하는 수단을 포함하는, 그룹 노드.
  41. 그룹 노드와 클라이언트 노드 사이에 세션 키를 확립하기 위해 상기 그룹 노드에서 동작하는 하나 이상의 명령들을 갖는 프로세서 판독가능 매체로서,
    상기 명령들은 적어도 하나의 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    중앙 노드로부터 에포크와 연관된 프록시 토큰들의 제 1 셋트를 수신하는 것으로서, 상기 프록시 토큰들의 제 1 셋트는 상기 클라이언트 노드와 연관된 프록시 토큰을 포함하고, 상기 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하는, 상기 프록시 토큰들의 제 1 셋트를 수신하는 것;
    상기 프록시 토큰들의 제 1 셋트를 프록시 토큰들의 리저브 (reserve) 셋트로서 저장하는 것;
    상기 에포크의 시작 시에 상기 프록시 토큰들의 리저브 셋트로 프록시 토큰들의 활성 셋트를 대체하는 것으로서, 상기 프록시 토큰들의 리저브 셋트는 프록시 토큰들의 다음 활성 셋트가 되는, 상기 프록시 토큰들의 활성 셋트를 대체하는 것; 및
    세션 키 확립 프로토콜에서 마스터 키로서 상기 제한된 키를 이용하여 상기 세션 키를 도출하기 위해 상기 클라이언트 노드와 함께 세션 키 확립 프로토콜을 실행하는 것을 하게 하는, 프로세서 판독가능 매체.
  42. 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 방법으로서,
    제 2 그룹 노드가 손상된 것을 결정하는 단계로서, 상기 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 단계;
    손상된 상기 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 단계로서, 상기 손상되지 않은 그룹 노드들의 리스트는 상기 중앙 노드에 저장되고 상기 제 1 그룹 노드를 포함하는, 상기 제거하는 단계; 및
    상기 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크 (upcoming epoch) 와 연관된 복수의 프록시 토큰들을 송신하는 단계로서, 상기 복수의 프록시 토큰들은 상기 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 상기 제 1 그룹 노드에 송신되며, 상기 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 상기 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 상기 제한된 키는 상기 다가오는 에포크 아이덴티티 값, 상기 제 1 그룹 노드 식별자, 및 공유 키로부터 계산되고, 상기 공유 키는 상기 클라이언트 노드와 상기 중앙 노드 사이에 이전에 확립되었으나 상기 그룹 노드에는 알려지지 않은, 상기 복수의 프록시 토큰들을 송신하는 단계를 포함하는, 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 방법.
  43. 제 42 항에 있어서,
    상기 제 1 프록시 토큰은 상기 다가오는 에포크의 시작 이전에 송신되는, 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 방법.
  44. 제 43 항에 있어서,
    상기 제 1 그룹 노드에 커밋 (commit) 메시지를 송신하는 단계를 더 포함하고, 상기 커밋 메시지는 상기 다가오는 에포크의 시작을 나타내는, 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 방법.
  45. 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드로서,
    상기 제 1 그룹 노드와 통신하도록 구성된 통신 인터페이스; 및
    상기 통신 인터페이스에 커플링된 프로세싱 회로를 포함하고,
    상기 프로세싱 회로는,
    제 2 그룹 노드가 손상된 것을 결정하는 것으로서, 상기 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 것;
    손상된 상기 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 것으로서, 상기 손상되지 않은 그룹 노드들의 리스트는 상기 중앙 노드에 저장되고 상기 제 1 그룹 노드를 포함하는, 상기 제거하는 것; 및
    상기 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크 (upcoming epoch) 와 연관된 복수의 프록시 토큰들을 송신하는 것으로서, 상기 복수의 프록시 토큰들은 상기 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 상기 제 1 그룹 노드에 송신되며, 상기 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 상기 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 상기 제한된 키는 상기 다가오는 에포크 아이덴티티 값, 상기 제 1 그룹 노드 식별자, 및 공유 키로부터 계산되고, 상기 공유 키는 상기 클라이언트 노드와 상기 중앙 노드 사이에 이전에 확립되었으나 상기 그룹 노드에는 알려지지 않은, 상기 복수의 프록시 토큰들을 송신하는 것을 수행하도록 구성되는, 통신 세션을 확립하기 위한 중앙 노드.
  46. 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위한 중앙 노드로서,
    제 2 그룹 노드가 손상된 것을 결정하는 수단으로서, 상기 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 수단;
    손상된 상기 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 수단으로서, 상기 손상되지 않은 그룹 노드들의 리스트는 상기 중앙 노드에 저장되고 상기 제 1 그룹 노드를 포함하는, 상기 제거하는 수단; 및
    상기 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크 (upcoming epoch) 와 연관된 복수의 프록시 토큰들을 송신하는 수단으로서, 상기 복수의 프록시 토큰들은 상기 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 상기 제 1 그룹 노드에 송신되며, 상기 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 상기 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 상기 제한된 키는 상기 다가오는 에포크 아이덴티티 값, 상기 제 1 그룹 노드 식별자, 및 공유 키로부터 계산되고, 상기 공유 키는 상기 클라이언트 노드와 상기 중앙 노드 사이에 이전에 확립되었으나 상기 그룹 노드에는 알려지지 않은, 상기 복수의 프록시 토큰들을 송신하는 수단을 포함하는, 통신 세션을 확립하기 위한 중앙 노드.
  47. 제 1 그룹 노드와 클라이언트 노드 사이에 통신 세션을 확립하기 위해 중앙 노드에서 동작하는 하나 이상의 명령들을 갖는 프로세서 판독가능 매체로서,
    상기 명령들은 적어도 하나의 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    제 2 그룹 노드가 손상된 것을 결정하는 것으로서, 상기 제 1 그룹 노드는 제 1 그룹 노드 식별자를 갖는, 상기 제 2 그룹 노드가 손상된 것을 결정하는 것;
    손상된 상기 제 2 그룹 노드를 손상되지 않은 그룹 노드들의 리스트로부터 제거하는 것으로서, 상기 손상되지 않은 그룹 노드들의 리스트는 상기 중앙 노드에 저장되고 상기 제 1 그룹 노드를 포함하는, 상기 제거하는 것; 및
    상기 손상되지 않은 그룹 노드들의 리스트 상의 각각의 손상되지 않은 그룹 노드에, 다가오는 에포크 (upcoming epoch) 와 연관된 복수의 프록시 토큰들을 송신하는 것으로서, 상기 복수의 프록시 토큰들은 상기 제 1 그룹 노드와 연관된 제 1 프록시 토큰을 포함하고 상기 제 1 그룹 노드에 송신되며, 상기 제 1 프록시 토큰은 클라이언트 노드 아이덴티티 및 제한된 키를 포함하며, 상기 다가오는 에포크는 다가오는 에포크 아이덴티티 값과 연관되고, 상기 제한된 키는 상기 다가오는 에포크 아이덴티티 값, 상기 제 1 그룹 노드 식별자, 및 공유 키로부터 계산되고, 상기 공유 키는 상기 클라이언트 노드와 상기 중앙 노드 사이에 이전에 확립되었으나 상기 그룹 노드에는 알려지지 않은, 상기 복수의 프록시 토큰들을 송신하는 것을 수행하게 하는, 프로세서 판독가능 매체.
  48. 제 1 항에 있어서,
    상기 에포크 아이덴티티 값을 획득하는 단계는, 상기 그룹 노드의 최대 에포크 값과 연관된 에포크 아이덴티티 값을 수신하는 단계를 포함하는, 세션 키를 확립하기 위해 클라이언트 노드에서 동작하는 방법.
  49. 제 32 항에 있어서,
    상기 에포크와 연관된 프록시 토큰들의 제 1 셋트는 상기 에포크의 시작 전에 수신되는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
  50. 제 32 항에 있어서,
    상기 세션 키는 중앙 노드와 통신하지 않고 확립되는, 세션 키를 확립하기 위해 그룹 노드에서 동작하는 방법.
KR1020147000569A 2011-06-09 2011-06-10 반접속된 디바이스들의 그룹과의 가상 페어링을 위한 방법 및 장치 KR101553488B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/157,048 2011-06-09
US13/157,048 US9602276B2 (en) 2010-06-11 2011-06-09 Method and apparatus for virtual pairing with a group of semi-connected devices
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
KR20140019867A KR20140019867A (ko) 2014-02-17
KR101553488B1 true KR101553488B1 (ko) 2015-09-15

Family

ID=44627443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147000569A KR101553488B1 (ko) 2011-06-09 2011-06-10 반접속된 디바이스들의 그룹과의 가상 페어링을 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US9602276B2 (ko)
EP (1) EP2719113B1 (ko)
JP (1) JP5878630B2 (ko)
KR (1) KR101553488B1 (ko)
CN (1) CN103597773B (ko)
WO (1) WO2012170039A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012205088A (ja) * 2011-03-25 2012-10-22 Toshiba Corp ノード及びグループ鍵更新方法
US20140223514A1 (en) * 2013-02-01 2014-08-07 Junaid Islam Network Client Software and System Validation
US9648125B2 (en) * 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9641640B2 (en) * 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
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
WO2016178088A2 (en) * 2015-05-07 2016-11-10 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 富士通株式会社 情報処理装置、共有メモリ管理方法及び共有メモリ管理プログラム
WO2017214380A1 (en) * 2016-06-08 2017-12-14 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
CN112074890B (zh) * 2018-04-25 2024-03-22 日本电信电话株式会社 秘密聚合最大值系统和方法、秘密聚合最小值系统和方法、秘密计算装置、以及记录介质
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
CN112751821B (zh) * 2020-07-29 2022-12-13 上海安辰网络科技有限公司 一种数据传输方法、电子设备和一种存储介质
CN114095166A (zh) * 2021-11-23 2022-02-25 北京京东方技术开发有限公司 生成节点临时身份标识的方法、节点及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070206799A1 (en) 2005-09-01 2007-09-06 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
US20100220856A1 (en) 2009-02-27 2010-09-02 Johannes Petrus Kruys Private pairwise key management for groups

Family Cites Families (12)

* Cited by examiner, † Cited by third party
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
RU2491748C2 (ru) 2006-06-22 2013-08-27 Конинклейке Филипс Электроникс, Н.В. Иерархическая детерминированная схема предварительного распределения парных ключей
US20080037791A1 (en) * 2006-08-09 2008-02-14 Jakobsson Bjorn M Method and apparatus for evaluating actions performed on a client device
EP2225848B1 (en) 2008-03-10 2012-08-15 NDS Limited Key distribution system
JP4390842B1 (ja) 2008-08-15 2009-12-24 株式会社エヌ・ティ・ティ・ドコモ 移動通信方法、無線基地局及び移動局
US8539235B2 (en) 2008-10-06 2013-09-17 Koninklijke Philips N.V. Method for operating a network, a system management device, a network and a computer program therefor
US9015487B2 (en) 2009-03-31 2015-04-21 Qualcomm Incorporated Apparatus and method for virtual pairing using an existing wireless connection key
US8452014B2 (en) 2009-06-24 2013-05-28 Cisco Technology, Inc. Group key management for mobile ad-hoc networks
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070206799A1 (en) 2005-09-01 2007-09-06 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
US20100220856A1 (en) 2009-02-27 2010-09-02 Johannes Petrus Kruys Private pairwise key management for groups

Also Published As

Publication number Publication date
CN103597773B (zh) 2016-06-15
US9602276B2 (en) 2017-03-21
JP2014520444A (ja) 2014-08-21
CN103597773A (zh) 2014-02-19
EP2719113B1 (en) 2018-05-30
US20110305333A1 (en) 2011-12-15
WO2012170039A1 (en) 2012-12-13
KR20140019867A (ko) 2014-02-17
EP2719113A1 (en) 2014-04-16
JP5878630B2 (ja) 2016-03-08

Similar Documents

Publication Publication Date Title
KR101553488B1 (ko) 반접속된 디바이스들의 그룹과의 가상 페어링을 위한 방법 및 장치
Abdmeziem et al. An end-to-end secure key management protocol for e-health applications
US11101978B2 (en) Establishing and managing identities for constrained devices
CN107508672B (zh) 一种基于对称密钥池的密钥同步方法和密钥同步装置、密钥同步系统
US20170279619A1 (en) Device-assisted verification
CN113099443B (zh) 设备认证方法、装置、设备和系统
US9258284B2 (en) Server, method of group key notification and program
Ostad‐Sharif et al. Design of a lightweight and anonymous authenticated key agreement protocol for wireless body area networks
US8325914B2 (en) Providing secure communications for active RFID tags
JP2018182665A (ja) 通信装置、通信システム及び暗号化通信制御方法
CN112753203A (zh) 一种安全通信方法及装置
US9049012B2 (en) Secured cryptographic communication system
WO2023078123A1 (zh) 区块链中继通信网络的中立性验证
JP7451738B2 (ja) 鍵更新方法および関連装置
CN107104919B (zh) 防火墙设备、流控制传输协议sctp报文的处理方法
Abdmeziem et al. Lightweighted and energy-aware MIKEY-Ticket for e-health applications in the context of internet of things
CN106888083B (zh) 物联网下组密钥生成方法及通信节点
KR20210126319A (ko) 키 관리 장치 및 방법
WO2018028359A1 (zh) 业务处理方法、装置、存储介质及电子装置
CN113141263B (zh) 一种升级方法、装置、系统和存储介质
CN114448609A (zh) 组密钥的管理方法、装置、相关设备及存储介质
Schukat et al. Trust and trust models for the iot
JP7250829B2 (ja) 認証方法
Boudguiga et al. Server assisted key establishment for WSN: A MIKEY-Ticket approach
Guštin CAN Bus Security protocol specification

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee