KR20200001489A - 자동 클라이언트 디바이스 등록 - Google Patents

자동 클라이언트 디바이스 등록 Download PDF

Info

Publication number
KR20200001489A
KR20200001489A KR1020190069775A KR20190069775A KR20200001489A KR 20200001489 A KR20200001489 A KR 20200001489A KR 1020190069775 A KR1020190069775 A KR 1020190069775A KR 20190069775 A KR20190069775 A KR 20190069775A KR 20200001489 A KR20200001489 A KR 20200001489A
Authority
KR
South Korea
Prior art keywords
client device
client
registration
server
message
Prior art date
Application number
KR1020190069775A
Other languages
English (en)
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 KR20200001489A publication Critical patent/KR20200001489A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/065Continuous authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Cardiology (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

일반적으로, 본 기술의 실시형태는, 핸드셰이크 프로세스 중에 송신되는 데이터의 양을 줄이는 방식으로 머신들간에서 TLS/DTLS 핸드셰이크 프로세스를 행하는 방법들, 장치들 및 시스템들을 제공한다.

Description

자동 클라이언트 디바이스 등록{AUTOMATIC CLIENT DEVICE REGISTRATION}
본 기술은 일반적으로 서버에의 클라이언트 디바이스 등록을 유지하기 위한 방법들, 장치들 및 시스템들에 관한 것이다.
"사물인터넷"(IoT)의 일부로서 서비스들에 액세스하도록 동일한 네트워크 내 또는 서로 다른 네트워크 내의 다른 디바이스들(예를 들면 엔드-포인트/클라이언트 디바이스들, 서버들 등)과 통신 가능하게 하는 처리 및 통신 능력들을 갖는 개인용 디바이스들뿐만 아니라 가정, 다른 빌딩들, 차량들 및 실외 환경 내의 디바이스들의 수가 계속 증가하고 있다.
예를 들면, 가정 내의 온도 디바이스는 감지된 데이터를 수집하고 감지된 데이터를 원격 서비스(예를 들면 '클라우드'에서 실행되는 애플리케이션)에 푸시할 수 있다. 이어서, 온도 디바이스는 원격 서비스에 의해 수신된 커맨드 데이터를 통해 원격으로 제어될 수 있다. 다른 예들에서, 팩토리 오염 모니터링 센서는 다양한 화학 센서들로부터 정보를 수집하고 수집된 정보에 의거하여 메인터넌스를 조정하는 한편, 건강관리 프로바이더는 무선 센서들, 예를 들면 심박수 모니터를 이용하여, 환자들이 가정에 있으면서 환자들의 건강을 추적할 수 있다. 이러한 디바이스들은 네트워크 범위에서 이용되어, 데이터는 일반적으로 M2M(machine-to-machine) 통신 기술을 이용하여 디바이스들간 및/또는 서비스들간에서 전송된다.
예를 들면, M2M 통신 기술은 전형적으로 보안될 필요가 있고, 이는, 민감한 데이터가 디바이스들과 서버들 사이에서 전송될 수 있거나, 및/또는 보안되지 않은 통신은 악의적인 제3자에 의해 머신들 또는 머신들간에 전송되는 데이터에 액세스될 수 있기 때문이다. M2M 통신은 암호화 프로토콜들, 예를 들면 TLS(Transport Layer Security) 프로토콜 또는 DTLS(Datagram Transport Layer Security) 프로토콜(도청, 조작 또는 메시지/데이터 위조를 방지하도록 설계됨)을 이용하여 보안될 수 있다. TLS/DTLS 프로토콜에서는, 서로 통신하고자 하는 머신들(예를 들면 엔드-포인트/클라이언트 디바이스들 및 서버들)이 핸드셰이크 프로세스에서 디지털 인증서들을 교환하고 검증함으로써 서로를 인증하는 것을 요할 수 있다.
많은 시스템들에서, 엔드-포인트 디바이스들/클라이언트 디바이스들은 하나 이상의 서버들과 연결 및 통신할 수 있다. 예를 들면, 환경의 온도를 모니터하도록 기능하는 클라이언트 디바이스는 온도 데이터를 서버에 규칙적으로/주기적으로 전송하는 것이 필요할 수 있다. 서버는, 서버에 대해 연결/통신하도록 등록된 클라이언트 디바이스들을 기록하는 클라이언트 디바이스 등록 디렉토리를 유지할 수 있다. 그러나, 일부 클라이언트 디바이스들(예를 들면 사물인터넷 시스템에서 이용되는 것들)은 제약된 리소스 디바이스들일 수 있으며, 즉 그들은 저전력, 저-메모리 및/또는 저-처리 파워 디바이스들일 수 있다. 이러한 제약된 리소스 디바이스들은 자신이 동작하는 네트워크, 및 특히 네트워크 내의 서버와 간헐적 연결성을 가질 수 있다. 따라서, 일부 클라이언트 디바이스들은 그들이 등록한 서버에 계속적으로 연결될 수 없을 수도 있다. 클라이언트 디바이스들은, 자신의 등록을 유지해서 서버에 계속해서 연결될 수 있도록, 서버와 통신하는 것이 필요할 수 있다.
본 출원인은 서버에의 클라이언트 디바이스 등록을 유지하기 위한 기술에 대한 필요성을 인식했다.
본 기술의 제1 양태에서, 클라이언트 디바이스에 의해 행해지고 LwM2M(Lightweight Machine-to-Machine) 서버에의 클라이언트 디바이스의 등록을 유지하기 위한 방법이 제공되고, 이 방법은,
상기 LwM2M 서버와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크(handshake)를 행하는 것을 포함하는 LwM2M 서버와의 보안 통신 세션을 확립하는 스텝;
상기 LwM2M 서버로부터 상기 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 수신하는 스텝 ― 상기 등록은 정의된 수명을 가짐 ―; 및
상기 수명의 만료 전에, 상기 LwM2M 서버와의 추가 TLS 또는 DTLS 핸드셰이크를 행하는 스텝 ― 상기 추가 TLS 또는 DTLS 핸드셰이크는, 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 상기 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함함 ― 을 포함한다.
본 기술의 제2 양태에서, 클라이언트 디바이스가 제공되고, 이 클라이언트 디바이스는,
LwM2M 서버와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크를 행하는 것을 포함하는 LwM2M(Lightweight Machine-to-Machine) 서버와의 보안 통신 세션을 확립하는 것;
상기 LwM2M 서버로부터 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 수신하는 것 ― 상기 등록은 정의된 수명을 가짐 ―; 및
상기 수명의 만료 전에, 상기 LwM2M 서버와의 추가 TLS 또는 DTLS 핸드셰이크를 행하는 것 ― 상기 추가 TLS 또는 DTLS 핸드셰이크는 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함함 ― 을 위한 통신 회로를 포함한다.
본 기술의 제3 양태에서, 서버에 의해 행해지고 LwM2M(Lightweight Machine-to-Machine) 서버에의 클라이언트 디바이스의 등록을 유지하기 위한 방법이 제공되고, 이 방법은,
상기 클라이언트 디바이스와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크를 행하는 것을 포함하는 클라이언트 디바이스와의 보안 통신 세션을 확립하는 스텝;
상기 보안 통신 세션의 확립 이후에, 상기 클라이언트 디바이스로부터 등록 메시지를 수신하는 스텝;
상기 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 상기 클라이언트 디바이스에 전송하는 스텝 ― 상기 등록은 정의된 수명을 가짐 ―; 및
상기 수명의 만료 전에, 상기 LwM2M 서버와의 추가 TLS 또는 DTLS 핸드셰이크를 행하는 스텝 ― 상기 추가 TLS 또는 DTLS 핸드셰이크는, 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 상기 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함함 ― 을 포함한다.
본 기술의 제4 양태에서, LwM2M 서버가 제공되고, 이 LwM2M 서버는,
클라이언트 디바이스와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크를 행하는 것을 포함하는 클라이언트 디바이스와의 보안 통신 세션을 확립하는 것;
상기 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 상기 클라이언트 디바이스에 전송하는 것 - 상기 등록은 정의된 수명을 가짐 -; 및
상기 수명의 만료 전에, 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 상기 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함하는 추가 TLS 또는 DTLS 핸드셰이크를 행하는 것
을 위한 통신 회로에 연결된 적어도 하나의 프로세서를 포함한다.
본 기술의 관련 접근법은 본원에 기술된 타입의 복수의 클라이언트 디바이스들 및 본원에 기술된 타입의 적어도 하나의 서버를 포함하는 시스템을 제공한다.
본 기술의 추가 접근법은, 프로세서 상에서 실행 시, 프로세서에게 본원에 기술된 방법 중 어느 것을 수행하게 하는 코드를 운반하는 비일시적인 데이터 캐리어를 제공한다.
당업자라면 이해할 수 있는 바와 같이, 본 기술은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 본 기술은 전체적으로 하드웨어 실시형태, 전체적으로 소프트웨어 실시형태, 또는 소프트웨어와 하드웨어 양태들을 조합하는 실시형태의 형태를 취할 수 있다.
또한, 본 기술은 컴퓨터 판독 가능한 프로그램 코드가 구현된 컴퓨터 판독 가능한 매체에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 컴퓨터 판독 가능한 매체는 컴퓨터 판독 가능한 신호 매체 또는 컴퓨터 판독 가능한 스토리지 매체일 수 있다. 컴퓨터 판독 가능한 매체는, 제한이 아닌 예시로서, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 전술한 것의 임의의 적절한 조합일 수 있다.
본 기술의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는, 객체 지향 프로그래밍 언어들 및 종래의 절차 프로그래밍 언어들을 포함하는 하나 이상의 프로그래밍 언어들의 임의의 조합으로 쓰기될 수 있다. 코드 컴포넌트들은 절차들, 방법 등으로서 구현될 수 있고, 원시 명령어 세트의 직접 머신 명령어들로부터 하이-레벨 컴파일 또는 해석 언어 구문들까지의 임의의 추상화 레벨에서의 명령어들 또는 명령어들의 시퀀스들의 형태를 취할 수 있는 하위-컴포넌트들을 포함할 수 있다.
도 1은 클라이언트 디바이스 및 서버를 포함하는 시스템의 블록도.
도 2는 보안 통신 세션을 확립하도록 클라이언트 디바이스와 서버 사이에서 핸드셰이크를 행하는 스텝의 개략도.
도 3은 서버에 클라이언트 디바이스를 등록하는 스텝의 개략도.
도 4는 서버에의 클라이언트 디바이스 등록을 유지하는 스텝의 개략도.
도 5는 서버에의 클라이언트 디바이스 등록을 유지하는 기술의 개략도.
기술은, 예를 들어 첨부 도면에 도식적으로 예시된다.
일반적으로, 본 기술의 실시형태는, 서버에의 클라이언트 디바이스 등록을 유지하고 등록이 유지되도록 송신될 필요가 있는 메시지들의 수를 줄이는 보다 효율적인 기술을 위한 방법들, 장치들 및 시스템들을 제공한다. 제약된 디바이스들(예를 들면 저전력, 저-메모리 및/또는 저-처리 파워 디바이스들)인 클라이언트 디바이스들에 대해, 본원에 기술된 기술은 유용할 수 있고, 이는, 본 기술이 메시지들을 송수신하는데 디바이스들에 의해 소비되는 전력의 양을 줄일 수 있고 디바이스가 '어웨이크(awake)' 모드인 기간을 줄일 수 있기 때문이다.
용어 "클라이언트 디바이스"는 본원에서 용어들 "사물인터넷 디바이스", "IoT 디바이스", "노드 디바이스", "노드", "엔드포인트 디바이스", "엔드포인트", "클라이언트", 및 "제약된 리소스 디바이스"와 상호 교환 가능하게 사용된다.
위에서 간략하게 설명한 바와 같이, M2M(Machine to Machine) 통신 기술은, 전형적으로, 악의적인 제3자가 머신들에 액세스할 위험을 줄이거나, 또는 각각의 머신의 특정 데이터, 머신들 또는 서비스들에의 액세스를 제한하기 위해 보안될 필요가 있다. M2M 통신은 암호화 프로토콜들, 예를 들면 TLS(Transport Layer Security) 프로토콜 또는 DTLS(Datagram Transport Layer Security) 프로토콜(도청, 조작 또는 메시지/데이터 위조를 방지하도록 설계됨)을 이용하여 보안될 수 있다. TLS 및 DTLS 프로토콜들은, 서로 통신하고자 하는 머신들(예를 들면 클라이언트 디바이스들 및 서버들)이, 임의의 다른 통신/메시지 교환이 시작될 수 있기 전에, 핸드셰이크 프로세스에서 디지털 인증서들을 교환하고 검증함으로써, 서로를 인증하는 것을 요한다.
예를 들면, TLS/DTLS 프로토콜은 사물인터넷(IoT) 디바이스(즉 클라이언트 디바이스)과 원격 또는 클라우드-기반 서버 사이에서의 통신을 보안하는데 이용될 수 있다. 이 경우에, 핸드셰이크 프로세스 중에, 클라이언트 디바이스 및 서버는 자신의 공개 키 인증서들(디지털 인증서들 또는 아이덴티티 인증서들로도 알려져 있고 본원에서 그렇게 칭함)을 교환한다. 디지털 인증서들은, (공개-개인 키 쌍의 일부를 형성하는) 비대칭 키 알고리즘의 일부로서 이용되는 공개 키의 소유권을 증명하는데 이용되는 전자 문서들이다. 디지털 인증서는 전형적으로 공개 키에 대한 정보, 그것의 소유자(예를 들면 클라이언트 디바이스 또는 서버)의 아이덴티티에 대한 정보, 및 인증서의 내용을 확인한 발급 엔티티(예를 들면 신뢰할 수 있는 제3자, 예를 들면 인증 기관)의 디지털 서명을 포함한다. 디지털 인증서는, 특히 인증서 체인을 포함하거나, 또는 각각의 인증서가 RSA 인증서(즉 공개 키가 2개의 큰 소수(prime number)에 기반을 둠)일 경우, 클 수 있다. 예를 들면, 2048-bit 키를 포함하는 단일 RSA-기반 인증서는 크기가 적어도 1024 바이트일 수 있다. 마찬가지로, 클라이언트 디바이스와 서버 사이에서 적어도 처음 TLS/DTLS 핸드셰이크가 행해질 경우, 클라이언트 디바이스 및 서버는, 통신 세션을 보안하는데, 어떤 암호화 알고리즘(들) 또는 암호들 또는 암호 스위트(cipher suite)들을 이용할지에 대해 결정할 필요가 있다. 예를 들면, 클라이언트 디바이스는 잠재적으로는 우선순위의 자신이 지원하는 암호 스위트들의 리스트를 송신할 수 있다. 서버는 리스트로부터 암호 스위트를 선택하고 클라이언트 디바이스에게 이 선택을 통지한다. 암호 스위트들의 리스트는 클 수 있어, TLS/DTLS 핸드셰이크 중에 머신들간에 송신되는 정보의 양을 증가시킨다. 이는, 클라이언트 디바이스와 서버가 보안 통신 세션(즉 클라이언트 디바이스와 서버가 암호화된 메시지들을 교환하는 세션)을 시작하는 핸드셰이크 프로세스를 행할 때마다, 많은 양의 데이터가 교환되는 것이 필요할 수 있음을 의미한다.
핸드셰이크 프로세스에서의 인증서들의 교환은, 클라이언트 디바이스들 또는 엔드-유저 디바이스들이 저전력, 저-메모리, 및/또는 저-처리 파워 디바이스들인 경향이 있는 사물인터넷 환경에서 문제가 될 수 있다. 클라이언트 디바이스들/엔드-유저 디바이스들은 그들이 동작하는 네트워크, 또는 외부 네트워크, 또는 네트워크 내의 다른 디바이스들과 간헐적 연결성을 가질 수 있다. 예를 들면, 클라이언트 디바이스들은 다른 디바이스들/머신들 또는 인터넷과 양호한 또는 연속적 연결을 가질 수 없을 수도 있으며, 이는, 클라이언트 디바이스들의 리소스들(예를 들면 파워 또는 메모리)을 소비할 수 있기 때문이다. 일부 클라이언트 디바이스들은, 네트워크 내의 다른 디바이스들/머신들/서버들에 대해 연결되거나 통신할 필요가 없을 경우, 절전을 위해 슬립 모드로 전환될 수 있다. 이는, 클라이언트 디바이스가 서버와 통신할 필요가 있을 때마다, 보안 통신 세션을 확립하도록 다시 핸드셰이크 프로세스를 행할 필요가 있음을 의미한다. 제약된 리소스 디바이스들에게는, 핸드셰이크 프로세스를 행하는 것, 및 특히 TLS/DTLS 핸드셰이크 프로세스에서 인증서들을 교환하는 것이 문제가 될 수 있지만, 보안 통신이 필요할 경우, 이는 불가피하다.
상술한 바와 같이, 많은 시스템들에서, 클라이언트 디바이스들은 하나 이상의 서버들과 연결 및 통신할 수 있다. 서버는, 서버에 대해 연결/통신하도록 등록된 클라이언트 디바이스들의 기록을 보관하도록 클라이언트 디바이스 등록 디렉토리를 유지할 수 있다. 그러나, 제약된 리소스 디바이스들은 그들이 동작하는 네트워크, 및 특히 네트워크 내의 서버와 간헐적 연결을 가질 수 있다. 따라서, 일부 클라이언트 디바이스들은 자신이 등록된 서버에 연속적으로 연결되지 않을 수도 있다. 클라이언트 디바이스들은, 서버에 대해 데이터를 송수신할 필요가 있을 때마다, 자신의 등록을 유지해서 서버에 계속해서 연결될 수 있도록, 때때로 서버와 통신하는 것이 필요할 수 있다.
본 기술은, 등록 수명의 만료 전에, LwM2M 서버와의 추가 TLS 또는 DTLS 핸드셰이크를 위해 제공되며, 추가 TLS 또는 DTLS 핸드셰이크는, LwM2M 서버의 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함한다.
실시형태에서, 클라이언트 데이터는 LwM2M 서버에서 클라이언트 디바이스를 식별하는데 이용될 수 있는 데이터이다. 이러한 방식으로, LwM2M 서버는 추가 TLS 또는 DTLS 핸드셰이크로부터 클라이언트 디바이스의 아이덴티티에 대한 정보를 추론할 수 있다.
실시형태에서, 클라이언트 데이터는 클라이언트 디바이스 식별자일 수 있고, 클라이언트 디바이스에 대한 정보는 핸드셰이크 메시지 내에 또는 클라이언트 디바이스 인증서 내에 포함되거나, 또는 인증서로부터 추출된 또는 클라이언트 헬로우 메시지로부터 추출된 식별자일 수 있다. 클라이언트 데이터는 또한 사전 공유 키(Pre-Shared Key), 또는 세션 ID(Session ID) 또는 세션 티켓(Session Ticket)을 포함할 수 있다.
따라서, 본 기술에서, 클라이언트 데이터로부터 클라이언트 디바이스를 식별하는데 이용되는 추가 TLS 또는 DTLS 핸드셰이크 프로세스는 다음 핸드셰이크 예시 경우들 중 하나 이상을 포함할 수 있다:
- 인증서가 인증서 메시지 내에서 송신되고, 클라이언트 인증서는 어느 클라이언트 디바이스 등록을 유지할지를 식별하는데 이용되는 TLS 또는 DTLS 핸드셰이크.
- 사전 공유 키가 클라이언트 헬로우 메시지 내에서 송신되고, 사전 공유 키는 어느 클라이언트 디바이스 등록을 유지할지를 식별하는데 이용되는 TLS 또는 DTLS 핸드셰이크.
- 클라이언트 헬로우 메시지 내의 정보를 이용하는 것은, 클라이언트 등록 디렉토리 내에서 클라이언트 디바이스 엔트리를 찾아내도록, 인증서 내의 클라이언트 디바이스 식별자를 이용하는 것을 포함하는 TLS 또는 DTLS 핸드셰이크.
- 클라이언트 헬로우 메시지 내에서 송신되는 세션 ID 또는 세션 티켓에 의한 세션 재개를 이용하고, 세션 ID 또는 세션 티켓은 어느 클라이언트 디바이스 등록을 유지할지를 식별하는데 이용되는 TLS 또는 DTLS 핸드셰이크.
CoAP(Constrained Application Protocol)는 구체적으로 제약된 노드들 및 제약된 네트워크들에 의한 이용을 위해 설계된 통신 프로토콜이다(즉 https://tools.ietf.org/html/rfc7252). 그것은 전형적으로 IoT 디바이스들 및 IoT 네트워크들에 의해 머신-투-머신 통신에 이용되며, 이는 프로토콜이 오버헤드가 낮고, 멀티캐스팅에 적합하고, 제약된 네트워크들에 적합하게 하는데 단순성을 갖기 때문이다. OMA LwM2M(OMA Lightweight Machine to Machine) 프로토콜은 머신-투-머신 및 IoT 디바이스 관리를 위해 설계된 애플리케이션 레이어 통신 프로토콜이다. OMA LwM2M은 클라이언트 디바이스들과 서버들 사이의 통신에 이용되고, 여기에서 예를 들면 클라이언트 디바이스들은 제약된 리소스 디바이스들일 수 있고, 부트스트래핑, 서버에의 클라이언트 디바이스 등록, 디바이스 관리 및 정보 보고에 이용될 수 있다. OMA LwM2M은 종종 CoAP 및 TLS/DTLS와 함께 이용된다.
전형적으로, 서버에 의해 클라이언트 디바이스가 자신의 네트워크 내에 있음을 알고, 클라이언트 디바이스가 서버와 통신할 수 있도록, 클라이언트 디바이스는 서버에 등록하는 것이 요구된다. 클라이언트 디바이스가 서버에 등록할 경우, 서버에게, 클라이언트 디바이스의 리소스들에 대한 정보 및 클라이언트 디바이스가 서버에 의해 식별 가능하게 하는 임의의 정보(예를 들면 엔드포인트 이름)를 제공할 수 있다. 클라이언트 디바이스는 또한 서버에게 등록을 유지하기 위한 정보, 예를 들면 등록 수명을 제공할 수 있다. 등록 수명은 서버에의 등록의 지속시간을 정의하고, 클라이언트 디바이스에 의해 정의된다. 수명은 짧거나(예를 들면 수 시간) 길수 있고(예를 들면 하루 또는 수 일), 디바이스 속성들에 의거하여 클라이언트 디바이스에 의해 정의될 수 있다. 예를 들면, 클라이언트 디바이스가, 장기간에 걸쳐 리소스들을 절약하도록 슬립 모드로 있을 제약된 리소스 디바이스일 경우, 수명은 길 수 있다(예를 들면 하루 이상). 클라이언트 디바이스는 자신의 등록 정보를 해당 서버 또는 등록한 각각의 서버에 주기적으로 업데이트하는 것이 필요할 수 있다. 전형적으로, 클라이언트 디바이스는 등록 수명 내에 업데이트 메시지를 송신하거나 업데이트 동작을 행하는 것이 필요할 수 있다. 업데이트 메시지는 클라이언트 디바이스에 대한 새로운 정보, 예를 들면 새로운 수명 또는 자신의 리소스들에 대한 새로운 정보를 포함할 수 있다. 또는, 업데이트 메시지는 임의의 파라미터들을 포함하지 않을 수 있고 이는 전형적으로 클라이언트 디바이스가 단순히 자신의 서버에의 등록을 유지하는 것을 원할 경우에 이용된다. 클라이언트 디바이스로부터 클라이언트 디바이스에 의해 설정된 수명 내에 업데이트 메시지를 수신하지 못할 경우, 클라이언트 디바이스 등록 디렉토리로부터 클라이언트 디바이스를 제거한다.
그러나, 클라이언트 디바이스가 자신의 서버에의 등록을 유지하도록 업데이트 동작을 행할 때마다, 클라이언트 디바이스는 서버와 복수의 메시지들을 교환할 수 있다. 클라이언트 디바이스가 초기 등록 프로세스 후에 서버와 연결 해제되었을 경우에, 업데이트 동작이 개시 가능하기에 앞서, 클라이언트 디바이스 및 서버는 우선 새로운 보안 통신 세션을 확립할 필요가 있다. 이것은 클라이언트 디바이스가 제약된 리소스 디바이스인 경우일 수 있으며, 이는 클라이언트 디바이스가, 서버와 통신할 필요가 없었을 경우 리소스들을 절약하도록, 슬립 모드 또는 저전력 모드로 들어갈 수 있고, 이에 따라, 이전 보안 통신 세션이 끝/종료되기 때문이다. 따라서, 클라이언트 디바이스 및 서버는 보안 통신 세션을 확립하도록 또 다른 핸드셰이크 프로세스를 행한다(예를 들면 TLS/DTLS 핸드셰이크 프로세스에서는 인증서들을 교환하는 것에 의함). 보안 통신 세션이 확립되었으면, 클라이언트 디바이스는 CoAP 업데이트 메시지(예를 들면 CoAP POST 메시지)를 서버에 송신한다. CoAP 메시지는 클라이언트 디바이스를 식별하기 위한 정보를 포함해서, 클라이언트 디바이스가 등록된 서버는 클라이언트 디바이스 등록 디렉토리 내의 클라이언트 디바이스를 찾아낼 수 있다. CoAP 메시지는, 변경되었고 등록 디렉토리 내에서 업데이트될 필요가 있는 클라이언트 디바이스 파라미터들을 포함할 수 있거나, 또는 어떠한 파라미터도 포함하지 않을 수 있다. 서버가 원래 수명 내에 CoAP 메시지를 수신할 경우, 서버는 클라이언트 디바이스에 대한 등록 디렉토리의 업데이트를 행하도록 진행한다. CoAP 메시지가 임의의 파라미터들을 포함하지 않을 경우, 서버는 클라이언트 디바이스의 등록 수명이 단순히 재설정/재시작되게 됨을 판정한다. 서버가 업데이트 프로세스를 완료했으면, 서버는 CoAP 메시지를 다시 클라이언트 디바이스에 송신해서, 업데이트가 완료되었음을 확인시킨다(예를 들면 메시지는 2.04 (변경) 응답 코드를 포함함).
본 출원인은, 이 서버에의 클라이언트 디바이스의 등록을 유지하는 프로세스는 용장 메시지들을 포함하고, 결과적으로, 제약된 리소스 클라이언트 디바이스들의 리소스들(예를 들면 전력, 메모리, 처리 파워 등)을 불필요하게 소비하는 통신들로 됨을 확인했다. 따라서, 본 기술은 서버에의 클라이언트 디바이스의 등록을 유지하는 간단하고 보다 효율적인 방법을 제공한다.
상술한 바와 같이, 클라이언트 디바이스가 간단히 서버에 자신이 여전히 "얼라이브(alive)" 또는 동작함을 통지하길 원하고, 여전히 서버와 통신하길 원할 경우에, 클라이언트 디바이스에 의해 송신되는 CoAP 메시지는 어떠한 파라미터들도 포함하지 않는다. 이에 의해 서버는, 예를 들면 등록 수명을 재시작함으로써 등록 디렉토리 내의 클라이언트 디바이스 등록을 리플레시한다. 그러나, 이것이 일어나도록, 적어도 2개의 CoAP 메시지들이 클라이언트 디바이스와 서버 사이에서 교환된다. 본 기술은 등록 유지를 위한 이들 CoAP 메시지들의 교환의 필요를 없앤다. 대신, 본 기술은 등록을 유지하기 위한 트리거로서 클라이언트 디바이스와 서버 사이에 새로운 보안 통신 세션이 확립된다는 사실을 이용한다. 따라서, 본 기술은 업데이트 동작을 위해 교환되는 메시지들의 수를 줄인다. 본 기술은 클라이언트 디바이스가 "어웨이크 모드"로 있는 시간을 줄일 수 있으며, 이는, 보안 통신 세션이 확립되면, 추가 메시지들이 클라이언트 디바이스에 의해 송수신될 필요가 없으므로, 클라이언트 디바이스는 저전력 또는 "슬립 모드"로 전환될 수 있기 때문이다. 클라이언트 디바이스에 의해 행해지는 처리의 양(및 이에 따라, 클라이언트 디바이스에 의해 이용되는 메모리 및 전력의 양)은 또한 업데이트 동작을 위해 교환되는 메시지들의 수를 줄임으로써 줄어들 수 있다. 이하 도면을 참조하여, 본 기술의 최적화된 등록 업데이트 프로세스를 보다 상세히 설명한다.
도 1은 서로 보안 통신할 수 있는 클라이언트 디바이스(102) 및 서버(104)를 포함하는 시스템(100)의 블록도를 나타낸다. 시스템(100)은 실시형태에서 부트스트랩 서버(106)를 포함할 수 있다. 시스템(100)은 다수의 클라이언트 디바이스들 및/또는 다수의 서버들을 포함할 수 있지만, 단순화를 위해 단일 클라이언트 디바이스 및 단일 서버만을 나타낸다. 상술한 바와 같이, 클라이언트 디바이스(102)는 본원에서 "디바이스", "클라이언트", "노드 디바이스", "노드", "엔드-유저 디바이스", "유저 디바이스", "사물인터넷 디바이스", "IoT 디바이스", "엔드포인트 디바이스", "엔드포인트", 및 "제약된 리소스 디바이스"라고도 할 수 있다. 클라이언트 디바이스(102)는 컴퓨터(예를 들면 PC), 랩톱, 태블릿 컴퓨터, 모바일 폰, '스마트 오브젝트' 또는 사물인터넷 오브젝트일 수 있다. 실시형태에서, 클라이언트 디바이스(102)는 전자 오브젝트들을, 사물인터넷의 부분, 예를 들면 스마트 가로등들, 전력량계들, 온도 센서들 등을 형성할 수 있는 '스마트 오브젝트들'로 전환할 수 있는 디바이스일 수 있다. 이들은 단지 제한이 아닌 예시를 위한 예시적 스마트 오브젝트들임이 이해될 것이다.
각각의 클라이언트 디바이스(102)는 서버(104)를 통해 액세스되는 하나 이상의 서비스들(108)에 대한 액세스를 요할 수 있다. 각각의 클라이언트 디바이스(102)는, 클라이언트 디바이스(102)가 다른 머신들, 예를 들면 부트스트랩 서버(106) 또는 서버(104)와, 또는 다른 클라이언트 디바이스들과 통신 가능하게 하는 통신 모듈(102a)을 포함한다. 전형적으로, 다른 머신들은 클라이언트 디바이스(102)에 대해 원격으로 위치될 수 있다. 통신 모듈(102a)은 임의의 적절한 통신 회로를 포함하고 임의의 적절한 통신 프로토콜들을 이용하여 메시지들(또는 데이터 또는 데이터 패킷들)을 송수신하는 임의의 적절한 통신 모듈일 수 있다. 통신 모듈(102a)은 임의의 적절한 통신 프로토콜을 이용하여 다른 머신들과 통신할 수 있다(제한이 아닌 예시로서, 무선 통신(예를 들면 WiFi), 단거리 통신, 예를 들면 RF 통신(RFID) 또는 근거리장 통신(NFC); 또는 ZigBee, Thread, Bluetooth, Bluetooth LE, 6LoWPAN(IPv6 over Low Power Wireless Standard), CoAP(Constrained Application Protocol), 또는 CoAP over TCP, TLS 및 WebSockets에 의해 특정된 통신 프로토콜들을 이용함). 통신 모듈(102a)은 무선 모바일 (셀룰러) 원격통신 프로토콜을 이용하여 원격 머신들과 통신할 수 있다(예를 들면 3G, 4G, 5G 등). 클라이언트 디바이스(102)는 유선 통신 기술을 이용하여, 예를 들면 금속 케이블들 또는 광섬유 케이블들을 통해 원격 머신들과 통신할 수 있다. 클라이언트 디바이스(102)는 원격 머신들과 통신하는데 하나 이상의 통신 기술을 이용할 수 있다.
클라이언트 디바이스(102)는 프로세서 또는 처리 회로(102b)를 포함한다. 프로세서(102b)는 클라이언트 디바이스(102)에 의해 행해지는 다양한 처리 동작들, 예를 들면 디지털 인증서를 식별하고 클라이언트 디바이스(102)와 통신하고자 시도하는 머신을 인증하는 것을 제어한다. 프로세서(102b)는 데이터(예를 들면 시스템(100) 내의 다른 머신들로부터 수신된 데이터 신호들 및 데이터 패킷들)를 처리하고, 처리에 응답하여 출력 데이터를 생성하는 처리 로직을 포함할 수 있다. 프로세서(102b)는 마이크로프로세서, 마이크로컨트롤러, 및 집적 회로 중 하나 이상을 포함할 수 있다.
클라이언트 디바이스(102)는 스토리지(102c)를 포함한다. 스토리지(102c)는 임시 메모리로서 이용하기 위한 휘발성 메모리, 예를 들면 랜덤 액세스 메모리(RAM), 및/또는 데이터, 프로그램들 또는 명령어들을 저장하기 위한 비휘발성 메모리, 예를 들면 플래시, 판독-전용 메모리(ROM), 또는 전기적으로 소거 가능한 프로그래머블 ROM(EEPROM)을 포함할 수 있다. 스토리지(102c)는 클라이언트 디바이스(102)를 제조하는 제조 프로세스 중에 제공되는 크리덴셜들, 예를 들면 클라이언트 디바이스(102)에 대한 디지털 인증서(클라이언트 디바이스의 공개 키에 대한 정보를 포함함)(본원에서는 Cert(C)라고도 함), 및 공개-개인 키 쌍의 개인 키(본원에서는 Priv(C)라고도 함)를 저장할 수 있다. 스토리지(102c)는 추가적 키들 및 디지털 인증서들뿐만 아니라 서버(104)를 식별/인증하는데 이용되는 정보를 저장하는데 이용될 수 있다. 스토리지(102c)는, 클라이언트 디바이스(102)를 식별하는데 이용될 수 있는 정보, 예를 들면 클라이언트 디바이스(102)에 고유한 보안 크리덴셜들 또는 엔드포인트 이름을 저장하는데 이용될 수 있다. 엔드포인트 이름은 제조자에 의해 특정되거나, 또는 부트스트래핑 프로세스 중에 특정될 수 있거나(고유한 엔드포인트 이름은, 부트스트래핑 프로비저닝 프로세스 중에, 예를 들면 부트스트랩 서버(106)에 의해, 생성되어 클라이언트 디바이스(102)에 제공됨), 또는 핸드셰이크 프로세스(예를 들면 TLS/DTLS 핸드셰이크 프로세스) 중에 특정될 수 있다. 엔드포인트 이름은 클라이언트 디바이스(102)에 대해 전역적으로 고유할 수 있다. 또는, 엔드포인트 이름은 로컬로 고유하여, 클라이언트 디바이스와 연관된 특정 어카운트 또는 유저에 고유할 수 있다. 이 경우에, 클라이언트 디바이스(102)를 식별하기 위해 엔드포인트 이름 및 어카운트/유저가 필요할 수 있다.
클라이언트 디바이스(102)는 디바이스(102)가 입력들(예를 들면 감지된/측정된 데이터)을 수신하거나, 및/또는 출력들(예를 들면 오디오 및/또는 비주얼 출력들, 또는 제어 커맨드들 등)을 생성하는 것을 가능하게 하는 하나 이상의 인터페이스들(102d)을 포함할 수 있다
클라이언트 디바이스(102)는 적절한 통신 표준들/프로토콜들을 이용하여 서버(104)와 통신할 수 있다. 머신들간의 통신을 용이하게 하기 위해 디바이스(102)와 서버(104) 사이에는 중간 디바이스들(예를 들면 게이트웨이)이 위치될 수 있음이 이해될 것이다.
클라이언트 디바이스(102)는, 실시형태에서, 사물인터넷(IoT) 디바이스 또는 제약된 리소스 디바이스일 수 있다. 서버(104)는 LWM2M 서버(lightweight machine-to-machine server)여서, 서버(104)와 클라이언트 디바이스(102)는 OMA(Open Mobile Alliance) LWM2M 프로토콜, 또는 다른 LWM2M 프로토콜을 이용하여 통신할 수 있다. 서버(104)는 OMA Device Management(DM) 서버여서, 서버(104)와 클라이언트 디바이스(102)는 OMA DM 통신 프로토콜을 이용하여 통신할 수 있다. 서버(104)는 TR-069 서버(양방향 SOAP/HTTP 기반 프로토콜임)여서, 서버(104) 및 클라이언트 디바이스(102)는 Broadband Forum에 의해 공개된 CWMP(CPE WAN Management protocol)를 이용하여 통신할 수 있다. 서버(104)는 Open Connectivity Foundation 또는 Open Interconnect Consortium에 의해 정해진 표준/프로토콜을 따르는 서버일 수 있다.
서버(104)는, 예를 들면 인터넷에서의 개인 클라우드 또는 공개 클라우드 환경의 부분일 수 있거나, 또는 서버(104) 상에서 호스팅될 수 있는 서비스들(108)과 통신할 수 있다. 서비스들(108)은 서로 다른 타입들의 서비스들, 예를 들면 데이터 스토리지, 데이터 분석, 데이터 관리, 애플리케이션 서비스들 등을 제공할 수 있다. 이들 열거된 서비스들은 제한이 아닌 단지 예시들임이 이해될 것이다.
시스템(100)은 등록 디렉토리(110)를 포함한다. 도 1에 나타난 바와 같이, 등록 디렉토리(110)는 서버(104) 내에 위치될 수 있거나, 또는 서버(104) 밖일 수 있다. 어느 경우에나, 서버(104)는 서버(104)에 등록된 각각의 클라이언트 디바이스(102)의 레지스터를 유지하도록 등록 디렉토리(110)와 통신한다. 서버(104)는, 연속적 또는 비연속적으로, 동작 가능하게 서버(104)에 연결된 클라이언트 디바이스들로부터 등록들을 수신하도록 구성될 수 있다. 클라이언트 디바이스들(102) 및 그들의 리소스들은, 다른 정보와 함께, 등록 디렉토리(110)에 등록된다. 따라서, 등록 디렉토리(110)는 머신-투-머신 네트워크에서 서버(104) 아래의 리소스들의 레지스트리라 간주될 수 있다. 이는, 어느 리소스들/디바이스들이 네트워크 내에 존재하는지를 판정하도록 네트워크를 검사/질의하는 관리 툴들 또는 다른 방법에 대한 필요성을 없앤다. 등록 디렉토리(110)는 프로세서 및 스토리지에 의해 제공될 수 있다. 예를 들면, 등록 디렉토리(110)는 데이터베이스 애플리케이션으로서 실현될 수 있다. 서버(104)에 통신 가능하게 연결된 클라이언트 디바이스들(102)은 등록 요청을 서버(104)에 송신하고, 서버(104)는 등록 디렉토리(110) 내에 클라이언트 디바이스(102)에 대한 엔트리를 생성한다. 등록 디렉토리(110) 내의 엔트리는, 서버(104)가 클라이언트 디바이스(102)를 식별 가능하게 하는 정보를 포함해서, 클라이언트 디바이스(102)로부터 수신된 후속 메시지들이 쉽게 올바른 등록된 디바이스로 귀속되게 할 수 있다.
클라이언트 디바이스(102) 및 서버(104)는 부트스트랩 서버(106)와 통신할 수 있다. 실시형태에서, 서버(106)는 임의의 타입의 서버 또는 원격 머신일 수 있고, 반드시 전용 부트스트랩 서버인 것은 아닐 수 있다. 일반적으로, 부트스트랩 서버(106)는 데이터를 클라이언트 디바이스(102) 및/또는 서버(104)에 제공할 수 있는(예를 들면 크리덴셜들을 제공할 수 있음) 임의의 수단(예를 들면 머신, 하드웨어, 기술, 서버, 소프트웨어 등)이다. 실시형태에서, 서버(104)는 부트스트랩 서버일 수 있다. 부트스트랩 서버(106)를 이용하여 클라이언트 디바이스(102)에게 필요한 정보를 프로비저닝해서, 클라이언트 디바이스(102)가 서버(104)와의 TLS/DTLS 핸드셰이크 프로세스를 취하는 것을 가능하게 할 수 있다. 부트스트랩 서버(106)는 부트스트랩 서버에 등록되는 모든 머신들의 데이터베이스, 임의의 특정 머신이 가져야 하는 권한들/액세스에 대한 정보, 다른 머신들과 통신하기 위해 머신이 어떠한 세부사항을 갖고 필요로 하는지를 포함할 수 있다. 실시형태에서, 부트스트랩 서버(106)는 클라이언트 디바이스(102)에게 임의의 필요한 크리덴셜들을 프로비저닝하는 것이 필요하지 않을 수도 있고, 대신 이들 프로비저닝은 제조 프로세스 중에 또는 핸드셰이크 프로세스 중에 일어날 수 있다.
실시형태에서, 클라이언트 디바이스(102)는, 다른 머신들과 통신하도록 LWM2M(Lightweight Machine to Machine) 프로토콜을 이용하는 제약된 리소스 디바이스일 수 있다. 서버(104)는 LWM2M 서버일 수 있다. LWM2M 프로토콜들은 부트스트래핑 기술을 이용하여, 클라이언트 디바이스(102)에게 필요한 정보, 예를 들면 TLS/DTLS 핸드셰이크들을 위한 크리덴셜들을 프로비저닝할 수 있다. 부트스트래핑 기술은 '팩토리 부트스트랩'을 포함할 수 있고, 여기에서 정보(예를 들면 크리덴셜들)는 제조 중에 클라이언트 디바이스(102)에 하드코딩(hardcoding)된다. 팩토리 부트스트랩은 다른 디바이스들(예를 들면 서버(104))과 통신하는데 클라이언트 디바이스(102)에 의해 필요로 되는 하나 이상의 크리덴셜들을 추가하는 것을 포함할 수 있거나, 또는 클라이언트 디바이스(102)가 부트스트랩 서버에 도달하는데 필요한 정보를 추가하는 것을 포함할 수 있다(다른 디바이스들과 통신하는데 클라이언트 디바이스(102)에 의해 필요로 되는 임의의 결손 정보를 제공할 수 있다). 본원에서 기술하는 프로비저닝 기술을 대신하거나 그에 더하여 클라이언트 디바이스(102)에게 크리덴셜들을 프로비저닝하는 임의의 적절한 기술이 이용될 수 있음이 이해될 것이다.
도 2는, 클라이언트 디바이스와 서버 사이에서 보안 통신 세션을 확립하도록 핸드셰이크를 행하는 스텝의 개략도를 나타낸다. 스텝 S200에서 프로세스가 시작되어, 클라이언트 디바이스(102)는 '클라이언트 헬로우' 메시지(또는 마찬가지의 것)를 서버(104)에 전송한다. 클라이언트 디바이스(102)는 팩토리 부트스트래핑 프로세스 중에, 또는 부트스트랩 서버(106)에 의해 서버(104)의 IP 어드레스 및 SNI(server name indication)를 프로비저닝받을 수 있다. (서버(104)는 동등하게 클라이언트 디바이스(102)에 초기 '헬로우' 메시지를 송신함으로써 핸드셰이크를 개시할 수 있고, 도 2의 프로세스는 단지 예시임이 이해될 것이다) '클라이언트 헬로우' 메시지는 핸드셰이크 프로세스에서 후속 계산들에서 이용되는 랜덤 바이트 스트링을 포함할 수 있다.
스텝 S202에서, 서버(104)는 '서버 헬로우' 메시지를 클라이언트 디바이스(102)에 전송함으로써 응답한다. '서버 헬로우' 메시지는 추가 랜덤 바이트 스트링, 및 그 자신의 디지털 인증서 Cert(S)를 포함할 수 있다. 서버(104)가 클라이언트 디바이스(102)를 인증하기 위해 클라이언트 디바이스의 디지털 인증서가 필요할 경우, 서버(104)는 또한 Cert(C)를 요청하는 메시지를 전송한다(스텝 S204). Cert(C)에 대한 이 요청은 스텝 S202에서 '서버 헬로우' 메시지에 포함될 수 있다.
스텝 S206에서, 클라이언트 디바이스(102)는 서버(104)로부터 수신되는 Cert(S)를 식별한다. 식별이 성공적이 아닐 경우, 클라이언트 디바이스(102)는 프로세스를 종료하거나, 또는 핸드셰이크 프로세스를 종료하기 전에 '실패' 메시지를 서버(104)에 송신할 수 있다. 식별이 성공적일 경우, 클라이언트 디바이스(102)는 암호화된 랜덤 바이트 스트링을 서버(104)에 전송한다(도 2에는 도시 생략). 랜덤 바이트 스트링은 서버의 공개 키를 이용하여 암호화되고, 암호화된 랜덤 바이트 스트링은, 머신들 간에서 교환되는 후속 메시지들을 암호화하는데 이용되는 비밀 키를 클라이언트 디바이스 및 서버가 컴퓨팅 가능하게 한다.
서버(104)가 Cert(C)를 요청할 경우, 스텝 S208에서, 클라이언트 디바이스(102)는 Cert(C)를 서버(104)에 전송한다. 클라이언트 디바이스(102)는 또한 클라이언트 디바이스의 개인 키로 암호화된 랜덤 바이트 스트링을 전송할 수 있다.
스텝 S210에서, 서버(104)는 클라이언트 디바이스(102)로부터 수신된 Cert(C)를 식별한다. 식별이 성공적이 아닐 경우, 서버(104)는 프로세스를 종료하거나, 또는 핸드셰이크 프로세스를 종료하기 전에 '실패' 메시지를 클라이언트 디바이스(102)에 송신할 수 있다.
스텝 S212에서, 클라이언트 디바이스(102)는 비밀 키로 암호화된 '완료' 메시지를 서버(104)에 전송한다. 이 '완료' 메시지는 핸드셰이크 프로세스의 클라이언트 디바이스(102) 부분이 완료됨을 지시한다. 마찬가지로, 스텝 S214에서, 서버(104)는 비밀 키로 암호화된 '완료' 메시지를 클라이언트 디바이스(102)에 전송한다. 이 '완료' 메시지는 핸드셰이크 프로세스의 서버(104) 부분이 완료됨을 지시한다. 보안 통신 세션이 이제 확립되었고, 클라이언트 디바이스(102) 및 서버(104)는 세션 중에 비밀 키로 암호화되는 메시지들을 교환할 수 있다(스텝 S216).
도 2에 나타난 바와 같이, 핸드셰이크 프로세스(TLS/DTLS 핸드셰이크 프로세스 또는 보안 크리덴셜들의 교환을 수반하는 임의의 다른 핸드셰이크 프로세스일 수 있음)는 클라이언트 디바이스(102) 및 서버(104)가 그들의 디지털 인증서들을 공유하고(스텝 S202 및 S208 참조), 각각의 머신이 수신된 디지털 인증서들을 식별하는 것을 요한다. 핸드셰이크 프로세스는, 서버(104)에 의해 클라이언트 디바이스(102)가 식별 가능하도록, 반드시 적어도 서버(104)가 클라이언트 디바이스(102)로부터 충분한 정보를 수신하는 것을 수반한다. 예를 들면, 클라이언트 디바이스(102)에 의해 송신되는 핸드셰이크 메시지들은 클라이언트 디바이스(102)를 식별하기 위한 정보, 예를 들면 클라이언트 디바이스 식별자를 포함할 수 있다. 클라이언트 디바이스 식별자는 클라이언트 디바이스 인증서 Cert(C) 내에 포함될 수 있거나 핸드셰이크 메시지들 내에서 별개로 제공될 수 있다. 본 기술은 이를 이용하여, 서버에의 클라이언트 디바이스 등록을 유지하기 위한 보다 효율적인 프로세스를 제공한다.
LWM2M 버전 1.0 사양의 현재의 설명에 따르면, CoAP 메시지들은, 서버에의 클라이언트 디바이스 등록을 행하고, 등록을 유지하고 등록의 업데이트를 행하는데 이용된다. CoAP는 평문(plain text) 메시지들을 이용하므로 제약된 리소스 디바이스들 및 제약된 네트워크들에 유용한 통신 기술이지만, 클라이언트 디바이스들이 서버 내의 자신의 등록을 유지하기 위한 LWM2M 프로토콜 요구사항과 CoAP 메시지들의 조합으로 인해, 클라이언트 디바이스가 업데이트 동작을 행할 때마다 많은 CoAP 메시지들이 송신되게 된다. 또한, LWM2M 프로토콜은, (예를 들면 TLS/DTLS를 이용하여) 보안 통신 세션이 확립될 때마다 클라이언트 디바이스와 서버 사이에서 많은 정보가 공유되어, CoAP 업데이트 메시지들이 특정 시나리오에서 용장이 될 수 있다는 사실을 고려하고 있지 않다.
도 3은 서버에 클라이언트 디바이스를 등록하는 스텝의 개략도를 나타낸다. 클라이언트 디바이스(102)와 서버(104) 사이에서 보안 통신 세션이 확립된 후에(즉 도 2의 스텝 S214 이후), 클라이언트 디바이스(102)는 CoAP 등록 메시지를 서버에 송신한다(스텝 S300). CoAP 등록 메시지는 다음 형태일 수 있다.
POST / rd?ep=node1&b=UQ&lt=6000...
이는, 클라이언트 디바이스 이름(즉 엔드포인트 이름)이 "node1"이고, 서버는 클라이언트 디바이스에 대한 모든 요청들을 큐로 해야 하고, 등록 수명은 6000초임을 지시한다. 다른 파라미터들이 CoAP 등록 메시지에 포함될 수 있다(예를 들면 클라이언트 디바이스의 리소스들의 지시(예를 들면 그것이 온도를 측정하는 것)).
스텝 S302에서, 클라이언트 디바이스(102)를 등록 디렉토리(110)에 추가 가능하도록, 서버(104)는 CoAP 등록 메시지로부터 정보/파라미터들을 추출한다. 이어서, 서버(104)는, 등록 디렉토리(110)(도 1에 나타난 바와 같이, 서버(104)의 내부 또는 외부일 수 있음)에게 클라이언트 디바이스 등록 디렉토리(110) 내에 클라이언트 디바이스(102)에 대한 엔트리를 생성하도록 명령한다(스텝 S304). 등록 디렉토리(110) 내의 클라이언트 디바이스 엔트리는 서버(104)가 클라이언트 디바이스(102)를 식별 가능하게 하는 정보를 포함해서, 클라이언트 디바이스(102)로부터 수신되는 후속 메시지들이 쉽게 올바른 등록 디바이스에 귀속될 수 있다. 등록 디렉토리(110) 내의 클라이언트 디바이스 엔트리는 또한 등록 수명을 포함해서, 서버(104)는 얼마나 오랫동안 현재의 등록이 지속되는지, 및 등록을 유지하도록 클라이언트 디바이스(102)로부터의 업데이트 메시지가 언제 기대되는지를 안다.
이것이 등록 디렉토리(110)에 의해 완료되었을 경우, 서버는 CoAP 등록 확인 메시지를 다시 클라이언트 디바이스에 송신한다(스텝 S306). CoAP 등록 확인 메시지는 2.01(생성) 응답 코드를 포함할 수 있다.
클라이언트 디바이스(102)가 서버(104)에 등록되었을 경우, 클라이언트 디바이스(102)는 서버(104)에의 등록을 유지하도록 등록 수명의 만료 전에 업데이트 동작을 행할 필요가 있다. 도 4는 서버에의 클라이언트 디바이스 등록을 유지하는 스텝의 개략도를 나타낸다. 클라이언트 디바이스(102)와 서버(104) 사이에서 보안 통신 세션이 확립된 후에(즉 도 2의 스텝 S214 이후), 클라이언트 디바이스(102)는 CoAP 업데이트 메시지를 서버에 송신한다(스텝 S400). CoAP 업데이트 메시지는 다음 형태일 수 있다.
POST / rd/{location}?lt=7000...
메시지는, 서버(104)가, 어느 클라이언트 디바이스로부터 메시지가 수신되었는지를 확인하고, 클라이언트 디바이스가 등록 디렉토리(110) 내에 엔트리를 가지는지의 여부를 판정하는데 충분한 정보를 포함한다. 메시지는, 클라이언트 디바이스(102)가 하고자 하는 것이 등록을 유지하는 것뿐일 경우에 파라미터들을 포함하지 않을 수 있거나, 클라이언트 디바이스(102)가 등록 디렉토리(110) 내의 자신의 엔트리를 변경 또는 업데이트하고자 할 경우에 하나 이상의 파라미터들을 포함할 수 있다. 예를 들면, 상기 메시지에서 메시지 내의 수명 필드는 수명이 현재 7000초임을 지시하고, 및 이에 따라 클라이언트 디바이스(102)는 등록 디렉토리(110) 내의 수명을 업데이트하고자 할 것이다.
서버(104)는 CoAP 업데이트 메시지로부터 정보를 추출하여(스텝 S402), 메시지를 송신한 클라이언트 디바이스의 아이덴티티를 판정하고, 클라이언트 디바이스 아이덴티티를 등록 디렉토리(110) 내의 엔트리에 맵핑하고(클라이언트 디바이스가 서버(104)에 등록되어 있을 경우), 등록 디렉토리(110) 내의 엔트리의 임의의 양태를 업데이트한다. 서버(104)는 추출된 정보를, 클라이언트 디바이스 엔트리를 업데이트하라는 명령어들과 함께, 등록 디렉토리(110)에 전송한다(스텝 S404). CoAP 업데이트 메시지가 파라미터들을 포함하지 않을 경우, 명령어들은 단순히 등록 디렉토리(110)에게 클라이언트 디바이스(102) 엔트리를 유지하게 하거나 및/또는 등록 수명을 재시작하게 할 수 있다. 업데이트 프로세스가 완료되었을 경우, 서버(104)는 CoAP 변경 메시지를 다시 클라이언트 디바이스(102)에 전송하고, 여기에서 CoAP 변경 메시지는 2.04(변경) 응답 코드를 포함한다.
그러나, 상술한 바와 같이, 등록을 유지하는 도 4의 프로세스는, 보안 통신 세션이 확립되어 클라이언트 디바이스(102)와 서버(104) 사이에서 CoAP 메시지들이 교환되는 것을 요한다. 클라이언트 디바이스(102)가 단순히 자신의 서버(104)에의 등록을 유지하고자 할 경우(즉 등록 디렉토리(110) 내의 자신의 엔트리에 대한 어떠한 변경도 하고자 하지 않을 경우), 스텝 S400에서 송신하는 CoAP 업데이트 메시지는 어떠한 파라미터도 포함하지 않는다. 본 기술은 클라이언트 디바이스 등록을 유지하며(즉 클라이언트 디바이스 등록에 대한 변경이 이루어지고 있지 않을 경우), 클라이언트 디바이스(102)와 서버(104) 사이에서 전송되는 CoAP 메시지들의 수를 줄이는 기술을 제공한다.
도 5는 서버에의 클라이언트 디바이스 등록을 유지하는 기술의 개략도를 나타낸다. 프로세스는 클라이언트 디바이스(102)와 서버(104) 사이에서 보안 통신 세션을 확립함으로써 시작된다(즉 도 2의 스텝 S214 이후). 보안 통신 세션이 확립되었다면, 서버(104)는 클라이언트 디바이스(102)가 여전히 '얼라이브'이고 서버의 네트워크 내에 있음을 알 것이다. 클라이언트 디바이스(102)가 등록 디렉토리(110) 내의 자신의 엔트리에 대해 할 업데이트가 없을 경우, 클라이언트 디바이스(102)는 저전력 모드 또는 슬립 모드로 되돌아갈 수 있다. 임의의 경우에, 클라이언트 디바이스(102)는 어떠한 추가 메시지도 서버(104)에 전송하지 않는다. 즉, 클라이언트 디바이스는 CoAP 업데이트 메시지를 서버에 송신(즉 도 4의 스텝 S400)하지 않는다. 서버(104)는 특정 시간 동안 보안 통신 세션을 확립한 클라이언트 디바이스(102)로부터 CoAP 업데이트 메시지(또는 다른 CoAP 메시지)가 송신되기를 대기할 수 있다(스텝 S500). 이 시간은 수 초, 수십 초, 또는 이보다 길 수 있다. 시간은, 어떻게 메시지들이 전형적으로 네트워크를 통해 전송되는지 및 얼마나 많은 클라이언트 디바이스들이 네트워크에 존재하는지를 고려하여, 서버마다 또는 네트워크마다 정의될 수 있다. 예를 들면, 멀티-홉 네트워크에서, 소스로부터 수신처까지 메시지가 진행하는데 다수의 홉들이 필요할 수 있고, 이에 따라 서버(104)에 의해 메시지가 수신되는데 걸리는 시간은 소스가 수신처와 직접 통신하는 것이 가능할 수 있는 단일 홉 네트워크들에서보다 길 수 있다.
본 기술에서, CoAP 업데이트 메시지(또는 다른 것)가 이 미리 정해진 기간/지속시간 중에 서버(104)에 의해 수신되지 않을 경우, 서버(104)는 클라이언트 디바이스(102)가 여전히 '얼라이브' 또는 동작하고 자신의 등록을 유지하고자 한다고 결론지을 수 있으며, 이는, 그렇지 않았다면 클라이언트 디바이스(102)가 보안 통신 세션을 확립하는 요청을 송신하지 않았을 것이기 때문이다. 따라서, 서버(104)는 디렉토리 내에 클라이언트 디바이스(102) 엔트리를 유지하는 명령어들을 등록 디렉토리(110)에 전송한다. 서버(104)는 보안 통신 세션을 확립하는데 이용되는 핸드셰이크 프로세스로부터 디렉토리(110) 내의 올바른 엔트리를 식별하는데 필요한 모든 정보를 갖고 있다. 이는, 핸드셰이크 프로세스 중에, 클라이언트 디바이스(102)가 서버(104)에게 정보, 예를 들면 클라이언트 디바이스 이름/엔드포인트 이름, 보안 크리덴셜들 등(서버(104)가 클라이언트 디바이스(102)를 식별하는데 이용할 수 있음)을 제공하기 때문이다. 이 정보는 등록 디렉토리(110) 내에서 클라이언트 디바이스(102) 엔트리를 찾아내는데 이용될 수 있다. 따라서, 본 기술은, 클라이언트 디바이스(102)가 서버(104)에 자신의 등록을 유지하도록 CoAP 업데이트 메시지를 전송(및 CoAP 변경 메시지를 수신)하는 것에 대한 필요성을 줄인다. 업데이트 프로세스(또는 서버에의 클라이언트 디바이스의 등록을 유지하는 프로세스)는 일부 또는 모든 용장 CoAP 메시지들을 제거하고, 결과적으로, 서버에의 클라이언트 디바이스의 등록을 유지하는 간단하고 보다 효율적인 방법을 제공하여, 클라이언트 디바이스(102)에서, 보다 적은 전력, 메모리 및/또는 처리 파워를 이용할 수 있다.
따라서, 클라이언트 디바이스(102)에 의해 행해지고 서버(104)에의 클라이언트 디바이스(102)의 등록을 유지하기 위한 방법이 제공되고, 이 방법은, 클라이언트 헬로우 메시지를 서버에 송신하고 클라이언트 디바이스 인증서를 서버에 제공하는 것을 포함하는 서버(104)와의 보안 통신 세션을 확립하는 것(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함); 보안 통신 세션의 확립 이후에, CoAP(Constrained Application Protocol) 등록 메시지를 서버에 전송하는 것(CoAP 등록 메시지는 클라이언트 디바이스 식별자 및 등록의 수명을 포함함); 서버로부터, 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 CoAP 등록 확인 메시지를 수신하는 것; 수명의 만료 전에, 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 추가 클라이언트 헬로우 메시지를 서버에 송신하는 것을 포함한다.
클라이언트 디바이스(102)는, 클라이언트 디바이스 인증서 또는 클라이언트 디바이스 인증서의 해시 중 하나 또는 모두를 저장하기 위한 스토리지(102c)(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함); 및 클라이언트 헬로우 메시지를 서버에 송신하고 클라이언트 디바이스 인증서를 서버에 제공하는 것을 포함하는 서버와의 보안 통신 세션을 확립하고; 서버에, 클라이언트 디바이스 식별자 및 등록의 수명을 포함하는 CoAP(Constrained Application Protocol) 등록 메시지를 전송하고; 서버로부터, 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 CoAP 등록 확인 메시지를 수신하고; 및 수명의 만료 전에, 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 추가 클라이언트 헬로우 메시지를 서버에 송신하기 위한 통신 회로(102a)를 포함할 수 있다.
클라이언트 디바이스(102)는, 서버(104)로부터 CoAP 등록 확인 메시지를 수신한 후에, 디바이스(102)를 슬립 모드 또는 저전력 모드로 전환하기 위한 처리 회로(102b)를 포함할 수 있다. 이로 인해, 클라이언트 디바이스(102)는 전력 소비, 메모리 사용량 또는 처리 파워를 줄일 수 있다. 따라서, 등록을 유지하는 방법은 CoAP 등록 확인 메시지를 수신한 후에 슬립 모드로 들어가는 것을 포함할 수 있다. 클라이언트 디바이스(102)의 처리 회로(102b)는 등록 수명의 만료 전에 디바이스(102)를 어웨이크 모드로 전환할 수 있어, 클라이언트 디바이스(102)는, 수명의 만료 전에, 자신의 서버(104)에의 등록을 유지하도록, 서버(104)와의 보안 통신 세션의 확립을 요청할 수 있다. 따라서, 등록을 유지하는 방법은, 수명의 만료 전에 어웨이크 모드로 들어가는 것; 및 추가 클라이언트 헬로우 메시지 송신 시 서버(104)와의 보안 통신 세션을 재확립하는 것을 포함할 수 있다.
서버(104)와의 보안 통신 세션을 확립하는 스텝은 TLS/DTLS 핸드셰이크 시퀀스를 이용하는 것, 또는 CoAP(Constrained Application Protocol) 메시지들을 이용하는 핸드셰이크 프로세스 및 임의의 키 교환을 이용하는 것을 포함할 수 있다.
클라이언트 디바이스 인증서를 제공하는 것은 클라이언트 디지털 인증서의 해시를 서버(104)에 제공하는 것을 포함할 수 있다. 클라이언트 디지털 인증서의 해시는 암호화 해시 함수를 클라이언트 디지털 인증서에 적용함으로써 생성될 수 있다. 암호화 해시 함수는 임의의 적절한 암호화 해시 함수, 예를 들면 MD5 해시 함수; SHA(Secure Hash Algorithm) 해시 함수; SHA-2 해시 함수; SHA-3 해시 함수; 또는 SHA-256 해시 함수 중 하나일 수 있다.
클라이언트 디바이스(102) 및 서버(104)는, 임의의 적절한 통신 프로토콜, 예를 들면 LWM2M(Lightweight Machine-to-Machine) 프로토콜, OMA LWM2M(OMA lightweight machine-to-machine) 프로토콜, OMA DM 사양, OIC(Open Interconnect Consortium) 프로토콜, CoAP over TCP 표준, CoAP over TLS 표준, 또는 TR-069 프로토콜 중 하나를 이용하여 통신할 수 있다.
클라이언트 디바이스(102)는 사물인터넷(IoT) 디바이스일 수 있다.
서버는 LWM2M 서버, OMA LWM2M 서버, TR-069 서버, OIC 서버, 또는 OMA DM 서버 중 어느 하나일 수 있다.
또한, 서버에 의해 행해지고 서버(104)에의 클라이언트 디바이스(102)의 등록을 유지하기 위한 방법이 제공되고, 이 방법은, 클라이언트 디바이스(102)로부터 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서를 수신하는 것(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함)을 포함하는 클라이언트 디바이스(102)와의 보안 통신 세션을 확립하는 것; 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서로부터, 클라이언트 디바이스(102)를 식별하기 위한 정보를 추출하는 것; 보안 통신 세션의 확립 이후에, 클라이언트 디바이스(102)로부터 CoAP(Constrained Application Protocol) 등록 메시지를 수신하는 것(CoAP 등록 메시지는 클라이언트 디바이스(102)에 대한 클라이언트 식별자 및 등록의 수명을 포함함); 적어도 클라이언트 디바이스를 식별하기 위한 추출된 정보 및 등록의 수명을 이용하여 클라이언트 디바이스(102)에 대해 클라이언트 등록 디렉토리(110) 내에 엔트리를 생성하는 것; 클라이언트 디바이스가 클라이언트 등록 디렉토리(110)에 추가되었음을 확인하는 CoAP 등록 메시지를 클라이언트 디바이스(102)에 전송하는 것; 수명의 만료 전에, 클라이언트 디바이스(102)로부터 추가 클라이언트 헬로우 메시지를 수신하는 것; 클라이언트 등록 디렉토리(110) 내에서 클라이언트 디바이스 엔트리를 찾아내도록 추가 클라이언트 헬로우 메시지 내의 정보를 이용하는 것; 및 클라이언트 디바이스(102)로부터 후속 CoAP 메시지가 수신되지 않을 경우, 추가 클라이언트 헬로우 메시지를 이용하여 클라이언트 등록 디렉토리(110) 내의 클라이언트 디바이스의 등록을 유지하는 것을 포함한다.
서버(104)는, 클라이언트 디바이스로부터의 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함)를 수신하는 것을 포함하는 클라이언트 디바이스(102)와의 보안 통신 세션을 확립하는 것; 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서로부터, 클라이언트 디바이스를 식별하기 위한 정보를 추출하는 것; 보안 통신 세션의 확립 이후에, 클라이언트 디바이스로부터 CoAP(Constrained Application Protocol) 등록 메시지를 수신하는 것(CoAP 등록 메시지는 클라이언트 디바이스에 대한 클라이언트 식별자 및 등록의 수명을 포함함); 적어도 클라이언트 디바이스를 식별하기 위한 추출된 정보 및 등록의 수명을 이용하여 클라이언트 디바이스에 대해 클라이언트 등록 디렉토리(110) 내에 엔트리를 생성하는 것; 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 CoAP 등록 메시지를 클라이언트 디바이스에 전송하는 것; 수명의 만료 전에, 클라이언트 디바이스로부터 추가 클라이언트 헬로우 메시지를 수신하는 것; 클라이언트 등록 디렉토리 내에서 클라이언트 디바이스 엔트리를 찾아내도록 추가 클라이언트 헬로우 메시지 내의 정보를 이용하는 것; 및 클라이언트 디바이스로부터 후속 CoAP 메시지가 수신되지 않을 경우, 추가 클라이언트 헬로우 메시지를 이용하여 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하는 것을 위한 통신 회로에 연결된 적어도 하나의 프로세서를 포함할 수 있다.
서버(104)는 클라이언트 등록 디렉토리(110)를 포함할 수 있다. 또는, 서버(104)는 외부 클라이언트 등록 디렉토리(110)에 통신 가능하게 연결될 수 있고, 클라이언트 등록 디렉토리(110) 내에 엔트리를 생성하는 스텝은 클라이언트 디바이스(102)에 대한 엔트리를 생성하는 명령어들을 (외부) 클라이언트 등록 디렉토리(110)에 송신하는 것을 포함한다.
클라이언트 등록 디렉토리(110) 내에 엔트리를 생성하는 스텝은, 클라이언트 등록 디렉토리(110) 내에, 클라이언트 디바이스 식별자, 클라이언트 디바이스와 연관된 보안 크리덴셜, 보안 크리덴셜의 해시, 및 해시를 생성하는데 이용되는 암호화 해시 함수 중 적어도 하나를 저장하는 것을 포함할 수 있다.
추가 클라이언트 헬로우 메시지는 클라이언트 디바이스 인증서를 포함할 수 있다. 이 경우에, 추가 클라이언트 헬로우 메시지 내의 정보를 이용하는 스텝은, 클라이언트 등록 디렉토리(110) 내의 클라이언트 디바이스 엔트리를 찾아내도록, 클라이언트 디바이스 인증서 내의 클라이언트 디바이스 식별자를 이용하는 것을 포함할 수 있다.
추가 클라이언트 헬로우 메시지 내의 정보를 이용하는 스텝은, 클라이언트 등록 디렉토리(110) 내의 클라이언트 디바이스 엔트리를 찾아내도록, 추가 클라이언트 헬로우 메시지 내의 보안 크리덴셜을 이용하는 것을 포함할 수 있다.
추가 클라이언트 헬로우 메시지는 보안 크리덴셜의 해시를 포함할 수 있다. 이 경우에, 추가 클라이언트 헬로우 메시지 내의 정보를 이용하는 스텝은 클라이언트 등록 디렉토리로부터 보안 크리덴셜 및 암호화 해시 함수 쌍을 검색하는 것; 암호화 해시 함수를 보안 크리덴셜에 적용하여, 보안 크리덴셜의 해시를 생성하는 것; 생성된 해시와 수신된 해시(추가 클라이언트 헬프 메시지 또는 핸드셰이크 프로세스 중에 클라이언트 디바이스(102)에 의해 송신된 다른 메시지 내에 있음)를 비교하는 것; 및 생성된 해시가 수신된 해시와 매칭될 경우, 클라이언트 등록 디렉토리(110) 내의 클라이언트 디바이스 엔트리를 식별하는 것을 포함할 수 있다. 이 프로세스는, 생성된 해시와 수신된 해시 사이에서 매칭이 발견될 때까지 반복될 수 있다.
보안 크리덴셜은 클라이언트 디바이스 인증서 및/또는 TLS 크리덴셜일 수 있다.
서버(104)는, 추가 클라이언트 헬로우 메시지가 수명의 만료 전에 수신되지 않을 경우, 클라이언트 디바이스 엔트리를 클라이언트 등록 디렉토리(110)로부터 삭제할 수 있다.
본 기술의 실시형태는 또한 프로세서 상에서 실행 시, 프로세서에게 본원에 기술된 방법을 수행하게 하는 코드를 운반하는 비일시적인 데이터 캐리어를 제공한다.
기술은 또한 예를 들면 범용 컴퓨터 시스템 상에서 또는 디지털 신호 프로세서(DSP) 상에서 상술한 방법을 실시하는 프로세서 제어 코드를 제공한다. 기술은 또한 실행 시, 상기 방법 중 어느 것을, 특히 비일시적인 데이터 캐리어 또는 비일시적인 컴퓨터-판독 가능한 매체, 예를 들면 디스크, 마이크로프로세서, CD- 또는 DVD-ROM, 프로그래밍된 메모리, 예를 들면 판독-전용 메모리(펌웨어) 상에서, 또는 데이터 캐리어, 예를 들면 광학 또는 전기 신호 캐리어 상에서 실시하는 프로세서 제어 코드를 운반하는 캐리어를 제공한다. 코드는 (비일시적인) 캐리어, 예를 들면 디스크, 마이크로프로세서, CD- 또는 DVD-ROM, 프로그래밍된 메모리, 예를 들면 비휘발성 메모리(예를 들면 플래시) 또는 판독-전용 메모리(펌웨어) 상에서 제공될 수 있다. 기술의 실시형태를 실행하는 코드(및/또는 데이터)는, 종래의 프로그래밍 언어(해석되거나 컴파일링됨)에서의 소스, 객체 또는 실행 가능 코드, 예를 들면 C, 또는 어셈블리 코드, ASIC(Application Specific Integrated Circuit) 또는 FPGA(Field Programmable Gate Array)를 설정 또는 제어하는 코드, 또는 하드웨어 디스크립션 언어, 예를 들면 VerilogTM 또는 VHDL(Very high speed integrated circuit Hardware Description Language)에 대한 코드를 포함할 수 있다. 당업자가 이해하는 바와 같이, 이러한 코드 및/또는 데이터는 서로 통신하는 복수의 연결된 컴포넌트들 간에서 분산될 수 있다. 기술은 마이크로프로세서, 시스템의 하나 이상의 컴포넌트들에 연결되는 작업 메모리 및 프로그램 메모리를 포함하는 컨트롤러를 포함할 수 있다.
상술한 기술에 대한 동작들을 수행하는 컴퓨터 프로그램 코드는, 객체 지향 프로그래밍 언어들 및 종래의 절차 프로그래밍 언어들을 포함하는 하나 이상의 프로그래밍 언어들의 임의의 조합으로 쓰여질 수 있다. 코드 컴포넌트들은 절차, 방법 등으로서 구현될 수 있고, 또한 원시 명령어 세트의 직접 머신 명령어로부터 하이 레벨 컴파일된 또는 해석된 언어 구문까지의 임의의 추상화 레벨에서의 명령어들 또는 명령어들의 시퀀스들의 형태를 취할 수 있는 하위-컴포넌트들을 포함할 수 있다.
본 기술의 바람직한 실시형태에 따른 논리 방법의 모두 또는 부분은 상술한 방법의 스텝을 행하는 논리 소자들을 포함하는 논리 장치에서 적절히 구현될 수 있고, 이러한 논리 소자들은 컴포넌트들, 예를 들면 프로그래머블 논리 어레이 또는 ASIC에서의 논리 게이트들을 포함할 수 있음은 당업자에게 명백할 것이다. 이러한 논리 배치는 또한 예를 들면, 고정 또는 전송 가능한 캐리어 매체를 이용하여 저장 및 전송될 수 있는 가상 하드웨어 디스크립터 언어를 이용하여 이러한 어레이 또는 회로에서 논리 구조들을 소자들이 일시적으로 영구적으로 확립하게 구현될 수 있다.
실시형태에서, 본 기술은 함수 데이터를 갖는 데이터 캐리어의 형태로 실현될 수 있고, 상기 함수 데이터는 컴퓨터 시스템 또는 네트워크 내로 로딩되어 실행 시 상기 컴퓨터 시스템이 상술한 방법의 모든 스텝을 행하게 할 수 있는 함수 컴퓨터 데이터 구조들을 포함한다.
본 기술의 특정 접근법들이 다음과 같이 구현될 수 있다.
본 기술의 제1 접근법은, 클라이언트 디바이스에 의해 행해지고 서버에의 클라이언트 디바이스의 등록을 유지하기 위한 방법을 제공하고, 이 방법은, 클라이언트 헬로우 메시지를 서버에 송신하고 클라이언트 디바이스 인증서를 서버에 제공하는 것을 포함하는 서버와의 보안 통신 세션을 확립하는 것(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함); 보안 통신 세션의 확립 이후에, CoAP(Constrained Application Protocol) 등록 메시지를 서버에 전송하는 것(CoAP 등록 메시지는 클라이언트 디바이스 식별자 및 등록의 수명을 포함함); 서버로부터, 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 CoAP 등록 확인 메시지를 수신하는 것; 수명의 만료 전에, 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 추가 클라이언트 헬로우 메시지를 서버에 송신하는 것을 포함한다.
본 기술의 제2 접근법은, 클라이언트 디바이스 인증서 또는 클라이언트 디바이스 인증서의 해시 중 하나 또는 모두를 저장하기 위한 스토리지(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함); 및 클라이언트 헬로우 메시지를 서버에 송신하고 클라이언트 디바이스 인증서를 서버에 제공하는 것을 포함하는 서버와의 보안 통신 세션을 확립하고; 서버에, 클라이언트 디바이스 식별자 및 등록의 수명을 포함하는 CoAP(Constrained Application Protocol) 등록 메시지를 전송하고; 서버로부터, 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 CoAP 등록 확인 메시지를 수신하고; 및 수명의 만료 전에, 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 추가 클라이언트 헬로우 메시지를 서버에 송신하기 위한 통신 회로를 포함할 수 있다.
본 기술의 제3 접근법은, 서버에 의해 행해지고 서버에의 클라이언트 디바이스의 등록을 유지하기 위한 방법이 제공되고, 이 방법은, 클라이언트 디바이스로부터 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서를 수신하는 것(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함)을 포함하는 클라이언트 디바이스와의 보안 통신 세션을 확립하는 것; 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서로부터, 클라이언트 디바이스를 식별하기 위한 정보를 추출하는 것; 보안 통신 세션의 확립 이후에, 클라이언트 디바이스로부터 CoAP(Constrained Application Protocol) 등록 메시지를 수신하는 것(CoAP 등록 메시지는 클라이언트 디바이스에 대한 클라이언트 식별자 및 등록의 수명을 포함함); 적어도 클라이언트 디바이스를 식별하기 위한 추출된 정보 및 등록의 수명을 이용하여 클라이언트 디바이스에 대해 클라이언트 등록 디렉토리 내에 엔트리를 생성하는 것; 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 CoAP 등록 메시지를 클라이언트 디바이스에 전송하는 것; 수명의 만료 전에, 클라이언트 디바이스로부터 추가 클라이언트 헬로우 메시지를 수신하는 것; 클라이언트 등록 디렉토리 내에서 클라이언트 디바이스 엔트리를 찾아내도록 추가 클라이언트 헬로우 메시지 내의 정보를 이용하는 것; 및 클라이언트 디바이스로부터 후속 CoAP 메시지가 수신되지 않을 경우, 추가 클라이언트 헬로우 메시지를 이용하여 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하는 것을 포함한다.
본 기술의 제4 접근법은, 클라이언트 디바이스로부터의 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서(클라이언트 디바이스 인증서는 적어도 클라이언트 디바이스 식별자를 포함함)를 수신하는 것을 포함하는 클라이언트 디바이스와의 보안 통신 세션을 확립하는 것; 클라이언트 헬로우 메시지 및 클라이언트 디바이스 인증서로부터, 클라이언트 디바이스를 식별하기 위한 정보를 추출하는 것; 보안 통신 세션의 확립 이후에, 클라이언트 디바이스로부터 CoAP(Constrained Application Protocol) 등록 메시지를 수신하는 것(CoAP 등록 메시지는 클라이언트 디바이스에 대한 클라이언트 식별자 및 등록의 수명을 포함함); 적어도 클라이언트 디바이스를 식별하기 위한 추출된 정보 및 등록의 수명을 이용하여 클라이언트 디바이스에 대해 클라이언트 등록 디렉토리 내에 엔트리를 생성하는 것; 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 CoAP 등록 메시지를 클라이언트 디바이스에 전송하는 것; 수명의 만료 전에, 클라이언트 디바이스로부터 추가 클라이언트 헬로우 메시지를 수신하는 것; 클라이언트 등록 디렉토리 내에서 클라이언트 디바이스 엔트리를 찾아내도록 추가 클라이언트 헬로우 메시지 내의 정보를 이용하는 것; 및 클라이언트 디바이스로부터 후속 CoAP 메시지가 수신되지 않을 경우, 추가 클라이언트 헬로우 메시지를 이용하여 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하는 것을 위한 통신 회로에 연결된 적어도 하나의 프로세서를 포함하는 서버를 제공한다.
당업자는, 전술한 바가 최선의 모드로 간주되는 것 및 본 기술을 행하는 적절한 다른 모드들을 설명했지만, 본 기술은 바람직한 실시형태의 이 설명에서 공개된 특정 구성 및 방법에 제한되지 않음을 이해할 것이다. 당업자는 본 기술은 폭넓은 적용을 갖고, 실시형태는 첨부된 특허청구범위에 정의된 임의의 발명 개념에서 벗어나지 않고 넓은 범위의 변형을 취할 수 있음을 인식할 것이다.

Claims (29)

  1. 클라이언트 디바이스에 의해 행해지고 LwM2M(Lightweight Machine-to-Machine) 서버에의 클라이언트 디바이스의 등록을 유지하기 위한 방법으로서,
    상기 LwM2M 서버와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크(handshake)를 행하는 것을 포함하는 LwM2M 서버와의 보안 통신 세션을 확립하는 스텝;
    상기 LwM2M 서버로부터 상기 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 수신하는 스텝 ― 상기 등록은 정의된 수명을 가짐 ―; 및
    상기 수명의 만료 전에, 상기 LwM2M 서버와의 추가 TLS 또는 DTLS 핸드셰이크를 행하는 스텝 ― 상기 추가 TLS 또는 DTLS 핸드셰이크는, 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 상기 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함함 ― 을 포함하는 방법.
  2. 제1항에 있어서,
    상기 등록 확인 메시지를 수신한 후에 슬립 모드(sleep mode)로 들어가는 스텝을 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 수명의 만료 전에 어웨이크 모드(awake mode)로 들어가는 것; 및
    상기 추가 TLS 또는 DTLS 핸드셰이크의 송신 시, 상기 서버와의 보안 통신 세션을 재확립하는 스텝을 더 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 LwM2M 서버와의 보안 통신 세션을 확립하는 스텝은, CoAP(Constrained Application Protocol) 메시지들을 이용하는 핸드셰이크 프로세스 및 키 교환을 이용하는 스텝을 포함하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 LwM2M 서버와의 보안 통신 세션을 확립하는 스텝은, 클라이언트 디바이스 인증서를 상기 LwM2M 서버에 제공하는 스텝을 포함하고, 또한 선택적으로는 디지털 인증서의 해시(hash)를 상기 서버에 제공하는 스텝을 포함하는 방법.
  6. 제5항에 있어서,
    상기 디지털 인증서의 해시는, 암호화 해시 함수를 상기 디지털 인증서에 적용함으로써 생성되는 방법.
  7. 제6항에 있어서,
    상기 암호화 해시 함수는, MD5 해시 함수; SHA(Secure Hash Algorithm) 해시 함수; SHA-2 해시 함수; SHA-3 해시 함수; 또는 SHA-256 해시 함수 중 어느 하나인 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 클라이언트 데이터는 클라이언트 디바이스 식별자를 포함하고, 상기 디바이스에 대한 정보는 핸드셰이크 메시지 내에 포함되거나 또는 인증서로부터 추출된 식별자 또는 클라이언트 헬로우 메시지로부터 추출된 식별자인 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 클라이언트 데이터는 사전 공유 키(Pre-Shared Key), 세션 ID 또는 세션 티켓 중 어느 하나를 포함하는 방법.
  10. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 추가 TLS 또는 DTLS 핸드셰이크를 행하는 스텝은, 클라이언트 인증서를 포함하는 인증서 메시지를 송신하는 스텝 및 어느 클라이언트 등록을 유지할지를 식별하기 위해 상기 클라이언트 인증서를 이용하는 스텝을 포함하는 방법.
  11. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 추가 TLS 또는 DTLS 핸드셰이크를 행하는 스텝은, 클라이언트 헬로우 메시지에서 사전 공유 키를 송신하는 스텝을 포함하고, 상기 사전 공유 키는 어느 클라이언트 디바이스 등록을 유지할지를 식별하기 위해 이용되는 방법.
  12. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 추가 TLS 또는 DTLS 핸드셰이크를 행하는 스텝은, 상기 클라이언트 등록 디렉토리 내에서 클라이언트 디바이스 엔트리를 찾기 위해 인증서 내의 클라이언트 식별자를 포함하는 클라이언트 헬로우 메시지 내의 정보를 이용하는 스텝을 포함하는 방법
  13. 제1항 내지 제7항 중 어느 한 항에 있어서,
    클라이언트 헬로우 메시지 내에서 송신되는 세션 ID 또는 세션 티켓에 의한 세션 재개를 이용하는 스텝을 포함하고, 상기 세션 ID 또는 상기 세션 티켓은 어느 클라이언트 디바이스 등록을 유지할지를 식별하는데 이용되는 방법.
  14. LwM2M(Lightweight Machine-to-Machine) 서버와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크를 행하는 것을 포함하는 LwM2M 서버와의 보안 통신 세션을 확립하는 것;
    상기 LwM2M 서버로부터 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 수신하는 것 ― 상기 등록은 정의된 수명을 가짐 ―; 및
    상기 수명의 만료 전에, 상기 LwM2M 서버와의 추가 TLS 또는 DTLS 핸드셰이크를 행하는 것 ― 상기 추가 TLS 또는 DTLS 핸드셰이크는 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함함 ― 을 위한 통신 회로를 포함하는
    클라이언트 디바이스.
  15. 제14항에 있어서,
    상기 등록 확인 메시지를 수신한 후에 상기 디바이스를 슬립 모드로 전환하기 위한 처리 회로를 더 포함하는 클라이언트 디바이스.
  16. 제15항에 있어서,
    상기 처리 회로는, 상기 수명의 만료 전에, 상기 디바이스를 어웨이크 모드로 전환하는 클라이언트 디바이스.
  17. 프로세서 상에서 실행 시, 프로세서에게 제1항 내지 제13항 중 어느 한 항에 기재된 방법을 실행하게 하는 코드를 운반하는 비일시적인 데이터 캐리어.
  18. 서버에 의해 행해지고 LwM2M(Lightweight Machine-to-Machine) 서버에의 클라이언트 디바이스의 등록을 유지하기 위한 방법으로서,
    상기 클라이언트 디바이스와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크를 행하는 것을 포함하는 클라이언트 디바이스와의 보안 통신 세션을 확립하는 스텝;
    상기 보안 통신 세션의 확립 이후에, 상기 클라이언트 디바이스로부터 등록 메시지를 수신하는 스텝;
    상기 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 상기 클라이언트 디바이스에 전송하는 스텝 ― 상기 등록은 정의된 수명을 가짐 ―; 및
    상기 수명의 만료 전에, 상기 LwM2M 서버와의 추가 TLS 또는 DTLS 핸드셰이크를 행하는 스텝 ― 상기 추가 TLS 또는 DTLS 핸드셰이크는, 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 상기 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함함 ― 을 포함하는 방법.
  19. 제18항에 있어서,
    상기 LwM2M 서버의 디렉토리 내에, 클라이언트 디바이스 식별자, 상기 클라이언트 디바이스와 연관된 보안 크리덴셜, 상기 보안 크리덴셜의 해시, 및 해시를 생성하는데 이용되는 암호화 해시 함수 중 적어도 하나를 저장하는 스텝을 포함하는, 상기 클라이언트 등록 디렉토리 내에 엔트리를 생성하는 스텝을 포함하는 방법.
  20. 제18항 또는 제19항에 있어서,
    추가 TLS 또는 DTLS 핸드셰이크 메시지는 클라이언트 디바이스 인증서를 포함하고, 및 상기 추가 TLS 또는 DTLS 메시지 내의 정보를 이용하는 스텝은, 상기 클라이언트 등록 디렉토리 내에서 클라이언트 디바이스 엔트리를 찾아내도록, 상기 클라이언트 디바이스 인증서 내의 클라이언트 디바이스 식별자를 이용하는 스텝을 포함하는 방법.
  21. 제19항 또는 제20항에 있어서,
    추가 TLS 또는 DTLS 핸드셰이크 메시지는 보안 크리덴셜의 해시를 포함하고, 추가 TLS 또는 DTLS 메시지 내의 정보를 이용하는 스텝은,
    상기 LwM2M 서버의 등록 디렉토리로부터 보안 크리덴셜 및 암호화 해시 함수 쌍을 검색하는 스텝;
    상기 암호화 해시 함수를 상기 보안 크리덴셜에 적용하여, 상기 보안 크리덴셜의 해시를 생성하는 스텝;
    상기 생성된 해시와 수신된 해시를 비교하는 스텝; 및
    상기 생성된 해시가 상기 수신된 해시와 매칭될 경우, 상기 클라이언트 등록 디렉토리 내에서 식별하는 스텝을 포함하는 방법.
  22. 제21항에 있어서,
    상기 보안 크리덴셜은 클라이언트 디바이스 인증서인 방법.
  23. 제19항 내지 제22항 중 어느 한 항에 있어서,
    상기 암호화 해시 함수는, MD5 해시 함수; SHA(Secure Hash Algorithm) 해시 함수; SHA-2 해시 함수; SHA-3 해시 함수; 또는 SHA-256 해시 함수 중 어느 하나인 방법.
  24. 제18항 내지 제23항 중 어느 한 항에 있어서,
    상기 LwM2M 서버와의 보안 통신 세션을 확립하는 스텝은, CoAP(Constrained Application Protocol) 메시지들을 이용하는 핸드셰이크 프로세스 및 키 교환을 이용하는 스텝을 포함하는 방법.
  25. 제18항 내지 제24항 중 어느 한 항에 있어서,
    추가 TLS 또는 DTLS 메시지가 상기 수명의 만료 전에 수신되지 않을 경우, 클라이언트 디바이스 엔트리를 상기 클라이언트 등록 디렉토리로부터 삭제하는 스텝을 더 포함하는 방법.
  26. 클라이언트 디바이스와의 TLS(Transport Layer Security) 또는 DTLS(Datagram Transport Layer Security) 핸드셰이크를 행하는 것을 포함하는 클라이언트 디바이스와의 보안 통신 세션을 확립하는 것;
    상기 클라이언트 디바이스가 클라이언트 등록 디렉토리에 추가되었음을 확인하는 등록 확인 메시지를 상기 클라이언트 디바이스에 전송하는 것 - 상기 등록은 정의된 수명을 가짐 -; 및
    상기 수명의 만료 전에, 상기 클라이언트 등록 디렉토리 내의 클라이언트 디바이스의 등록을 유지하도록, 상기 클라이언트 디바이스를 식별하는데 이용되는 클라이언트 데이터를 포함하는 추가 TLS 또는 DTLS 핸드셰이크를 행하는 것
    을 위한 통신 회로에 연결된 적어도 하나의 프로세서를 포함하는
    LwM2M(Lightweight Machine-to-Machine) 서버.
  27. 제26항에 있어서,
    상기 클라이언트 등록 디렉토리를 더 포함하는 LwM2M 서버.
  28. 제27항에 있어서,
    상기 서버는 외부 클라이언트 등록 디렉토리에 통신 가능하게 연결되고, 상기 클라이언트 등록 디렉토리 내에 엔트리를 생성하는 스텝은, 상기 클라이언트 디바이스에 대한 엔트리를 생성하는 명령어들을 상기 클라이언트 등록 디렉토리에 송신하는 것을 포함하는 LwM2M 서버.
  29. 프로세서 상에서 실행 시, 상기 프로세서에게 제18항 내지 제25항 중 어느 한 항에 기재된 방법을 실행하게 하는 코드를 운반하는 비일시적인 데이터 캐리어.
KR1020190069775A 2018-06-26 2019-06-13 자동 클라이언트 디바이스 등록 KR20200001489A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1810472.9A GB2575433B (en) 2018-06-26 2018-06-26 Automatic client device registration
GB1810472.9 2018-06-26

Publications (1)

Publication Number Publication Date
KR20200001489A true KR20200001489A (ko) 2020-01-06

Family

ID=63042776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190069775A KR20200001489A (ko) 2018-06-26 2019-06-13 자동 클라이언트 디바이스 등록

Country Status (4)

Country Link
US (1) US11522840B2 (ko)
KR (1) KR20200001489A (ko)
CN (1) CN110650114A (ko)
GB (1) GB2575433B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11516263B2 (en) * 2019-03-14 2022-11-29 T-Mobile Usa, Inc. Secure and transparent transport of application level protocols to non-IP data delivery communication channels
CN114902611B (zh) * 2020-03-12 2023-12-05 Oppo广东移动通信有限公司 配置客户端的方法和装置、及通信系统
US11973824B2 (en) * 2021-09-23 2024-04-30 Shanghai Anviz Technology Co., Ltd. Method for data transmission of audio and video in end-to-end system
CN113824723B (zh) * 2021-09-23 2023-12-08 上海安威士科技股份有限公司 一种应用于音视频数据传输的端到端系统解决方法
WO2023099018A1 (en) * 2021-12-03 2023-06-08 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus and machine-readable media relating to machine-to-machine connectivity information sharing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6871276B1 (en) * 2000-04-05 2005-03-22 Microsoft Corporation Controlled-content recoverable blinded certificates
US10085171B2 (en) * 2012-02-17 2018-09-25 Nec Corporation Method of controlling machine-type communications (MTC) in a wireless communications network
GB2518257A (en) * 2013-09-13 2015-03-18 Vodafone Ip Licensing Ltd Methods and systems for operating a secure mobile device
EP3135015A1 (en) * 2014-04-25 2017-03-01 Telefonaktiebolaget LM Ericsson (publ) Apparatus and method for managing client devices
KR101950122B1 (ko) * 2014-07-22 2019-05-22 콘비다 와이어리스, 엘엘씨 경량 기기 간 프로토콜을 디바이스 관리 프로토콜과 상호연동하기
GB2529838B (en) * 2014-09-03 2021-06-30 Advanced Risc Mach Ltd Bootstrap Mechanism For Endpoint Devices
US10868802B2 (en) * 2015-07-15 2020-12-15 Telefonaktiebolaget Lm Ericsson (Publ) Enabling setting up a secure peer-to-peer connection
US10708781B2 (en) * 2016-01-27 2020-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for setting up a secure connection between LWM2M devices
WO2018106985A1 (en) * 2016-12-09 2018-06-14 Convida Wireless, Llc Mechanisms for resource-directory to resource- directory communications
GB2561822B (en) * 2017-04-13 2020-02-19 Arm Ip Ltd Reduced bandwidth handshake communication
US20190238536A1 (en) * 2018-01-26 2019-08-01 Qualcomm Incorporated Techniques for resuming a secure communication session

Also Published As

Publication number Publication date
GB2575433A (en) 2020-01-15
CN110650114A (zh) 2020-01-03
GB2575433B (en) 2020-07-08
US11522840B2 (en) 2022-12-06
GB201810472D0 (en) 2018-08-08
US20190394174A1 (en) 2019-12-26

Similar Documents

Publication Publication Date Title
US11824643B2 (en) Security lifecycle management of devices in a communications network
US10885198B2 (en) Bootstrapping without transferring private key
US11522840B2 (en) Automatic client device registration
US20200015087A1 (en) Reduced bandwidth handshake communication
US10305862B2 (en) Secure communication with a mobile device
US20180213040A1 (en) Enabling Communications Between Devices
US20150095648A1 (en) Secure PKI Communications for "Machine-to-Machine" Modules, including Key Derivation by Modules and Authenticating Public Keys
KR101688118B1 (ko) 사물인터넷 환경에서의 보안 통신 장치 및 그 방법
US20220353060A1 (en) Handling of machine-to-machine secure sessions
US20200274719A1 (en) Generating trust for devices
US11949664B2 (en) Machine to machine communications
US20220200984A1 (en) Provisioning data on a device
US20220052999A1 (en) Bootstrapping with common credential data
US20220191089A1 (en) Electronic device configuration mechanism
GB2611284A (en) Managing Connectivity Between Devices