KR102520088B1 - 사물 인터넷 플랫폼, 장치, 및 방법 - Google Patents

사물 인터넷 플랫폼, 장치, 및 방법 Download PDF

Info

Publication number
KR102520088B1
KR102520088B1 KR1020177019906A KR20177019906A KR102520088B1 KR 102520088 B1 KR102520088 B1 KR 102520088B1 KR 1020177019906 A KR1020177019906 A KR 1020177019906A KR 20177019906 A KR20177019906 A KR 20177019906A KR 102520088 B1 KR102520088 B1 KR 102520088B1
Authority
KR
South Korea
Prior art keywords
iot
hub
public
delete delete
private key
Prior art date
Application number
KR1020177019906A
Other languages
English (en)
Other versions
KR20170097143A (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
Priority claimed from US14/575,463 external-priority patent/US9832173B2/en
Priority claimed from US14/575,535 external-priority patent/US20160180100A1/en
Application filed by 어페로, 인크. filed Critical 어페로, 인크.
Publication of KR20170097143A publication Critical patent/KR20170097143A/ko
Application granted granted Critical
Publication of KR102520088B1 publication Critical patent/KR102520088B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/42User authentication using separate channels for security data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • 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
    • 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
    • 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/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)

Abstract

사물 인터넷 구현을 위한 플랫폼, 장치 및 방법. 예를 들어, 시스템의 일 실시예는 사물 인터넷(IoT) 허브 - IoT 허브는 광역 네트워크(WAN)를 통해 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -; 및 IoT 디바이스와의 암호화된 통신을 설정하는 데 사용 가능한 하나 이상의 암호화 키를 갖도록 식별 디바이스를 프로그래밍하기 위한 프로그래밍 로직; 및 IoT 허브에 의한 식별 디바이스의 프로그래밍 후에 식별 디바이스와 인터페이싱하는 적어도 하나의 IoT 디바이스를 포함하며, 일단 식별 디바이스가 프로그래밍되고 IoT 디바이스와 인터페이싱되면, IoT 디바이스는 하나 이상의 키를 사용하여 IoT 허브 및/또는 IoT 서비스와의 보안 통신 채널을 설정한다.

Description

사물 인터넷 플랫폼, 장치, 및 방법{INTERNET OF THINGS PLATFORMS, APPARATUSES, AND METHODS}
본 발명은 일반적으로 컴퓨터 시스템 분야에 관한 것이다. 보다 구체적으로, 본 발명은 네트워크 디바이스들을 안전하게 접속하기 위한 시스템 및 방법의 인터넷에 관한 것이다.
"사물 인터넷"은 인터넷 기반구조 내의 고유하게 식별 가능한 임베딩된 디바이스들의 상호접속을 지칭한다. 궁극적으로, IoT는, 사실상 임의의 타입의 물리적인 물건이 그 자체 또는 그의 주변에 대한 정보를 제공할 수 있고 그리고/또는 인터넷을 통하여 클라이언트 디바이스를 통해 원격으로 제어될 수 있는 새로운 광범위한 타입의 애플리케이션을 생성할 것으로 예상된다.
IoT 개발 및 채택은 접속성, 전력, 및 표준화의 결여에 관련된 이슈로 인해 느렸다. 예를 들어, IoT 개발 및 채택에 대한 하나의 장애물은 개발자가 새로운 IoT 디바이스 및 서비스를 설계 및 제공하도록 허용하기 위한 어떠한 표준 플랫폼도 존재하지 않는다는 것이다. IoT 시장에 진입하기 위해, 개발자는 원하는 IoT 구현을 지원하는 데 요구되는 네트워크 프로토콜 및 기반구조, 하드웨어, 소프트웨어 및 서비스를 포함하여 처음부터 끝까지 전체 IoT 플랫폼을 설계해야 한다. 결과적으로, IoT 디바이스의 각각의 제공자는 IoT 디바이스를 설계하고 접속하기 위한 독점적인 기법을 사용하여, 다수의 타입의 IoT 디바이스의 채택을 최종 사용자에게 부담이 되게 한다. IoT 채택에 대한 다른 장애물은 IoT 디바이스들을 접속하고 전력공급하는 것과 연관된 어려움이다. 예를 들어, 냉장고, 차고 도어 오프너, 환경 센서, 집 보안 센서/제어기 등과 같은 기기를 접속시키는 것은, 각각의 접속된 IoT 디바이스에 전력공급하기 위한 전기 소스를 요구하고, 그러한 전기 소스는 종종 편리하게 위치되어 있지 않다.
아래의 도면들과 관련된 아래의 상세한 설명으로부터 본 발명의 더 양호한 이해가 얻어질 수 있다.
도 1a 및 도 1b는 IoT 시스템 아키텍처의 상이한 실시예들을 예시한다.
도 2는 본 발명의 일 실시예에 따른 IoT 디바이스를 예시한다.
도 3은 본 발명의 일 실시예에 따른 IoT 허브를 예시한다.
도 4는 보안 아키텍처의 일 실시예의 고레벨 도면을 예시한다.
도 5는 IoT 디바이스 상에 키를 저장하기 위해 가입자 식별 모듈(SIM)이 사용되는 아키텍처의 일 실시예를 예시한다.
도 6a는 IoT 디바이스가 바코드 또는 QR 코드를 사용하여 등록되는 일 실시예를 예시한다.
도 6b는 바코드 또는 QR 코드를 사용하여 페어링이 수행되는 일 실시예를 예시한다.
도 7은 IoT 허브를 사용하여 SIM을 프로그래밍하는 방법의 일 실시예를 예시한다.
도 8은 IoT 디바이스를 IoT 허브 및 IoT 서비스에 등록하는 방법의 일 실시예를 예시한다.
도 9는 IoT 디바이스로 전송될 데이터를 암호화하는 방법의 일 실시예를 예시한다.
아래의 설명에서, 설명의 목적으로, 아래에 설명되는 본 발명의 실시예의 완전한 이해를 제공하기 위해 다수의 특정 상세들이 기재된다. 그러나, 본 발명의 실시예는 이러한 특정 상세들 중 일부 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우에서, 잘 알려진 구조 및 디바이스는 본 발명의 실시예의 기본 원리를 불명확하게 하는 것을 피하기 위해 블록도 형태로 도시된다.
본 발명의 일 실시예는 새로운 IoT 디바이스 및 애플리케이션을 설계 및 구축하기 위해 개발자에 의해 이용될 수 있는 사물 인터넷(IoT) 플랫폼을 포함한다. 특히, 일 실시예는 IoT 디바이스들이 그것을 통해 인터넷에 결합되는 미리 정의된 네트워킹 프로토콜 스택 및 IoT 허브를 포함한 IoT 디바이스들을 위한 기반 하드웨어/소프트웨어 플랫폼을 포함한다. 부가적으로, 일 실시예는 IoT 허브들 및 접속된 IoT 디바이스들이 그것을 통해 아래에 설명되는 바와 같이 액세스 및 관리될 수 있는 IoT 서비스를 포함한다. 부가적으로, IoT 플랫폼의 일 실시예는 IoT 서비스, 허브 및 접속된 디바이스들에 액세스하고 그들을 구성하기 위한 (예를 들어, 클라이언트 디바이스 상에서 실행되는) IoT 앱 또는 웹 애플리케이션을 포함한다. 기존의 온라인 소매상 및 다른 웹사이트 운영자는 고유 IoT 기능을 기존의 사용자 기반에 쉽게 제공하기 위해 본 명세서에 설명된 IoT 플랫폼을 레버리징할 수 있다.
도 1a는 본 발명의 실시예가 구현될 수 있는 아키텍처 플랫폼의 개요를 예시한다. 특히, 예시된 실시예는 그 자체가 인터넷(220)을 통해 IoT 서비스(120)에 통신 가능하게 결합된 중앙 IoT 허브(110)에 로컬 통신 채널(130)을 통해 통신 가능하게 결합된 복수의 IoT 디바이스(101 내지 105)를 포함한다. IoT 디바이스(101 내지 105) 각각은 로컬 통신 채널들(130) 각각을 인에이블하기 위해 (예를 들어, 아래에 설명되는 페어링 기법을 사용하여) IoT 허브(110)에 초기에 페어링될 수 있다. 일 실시예에서, IoT 서비스(120)는 각각의 사용자의 IoT 디바이스로부터 수집된 사용자 계정 정보 및 데이터를 유지하기 위한 최종 사용자 데이터베이스(122)를 포함한다. 예를 들어, IoT 디바이스가 센서(예를 들어, 온도 센서, 가속도계, 열 센서, 모션 검출기 등)를 포함하면, 데이터베이스(122)는 IoT 디바이스(101 내지 105)에 의해 수집된 데이터를 저장하도록 계속 업데이트될 수 있다. 이어서, 데이터베이스(122)에 저장된 데이터는 사용자의 디바이스(135) 상에 설치된 IoT 앱 또는 브라우저를 통해(또는 데스크톱 또는 다른 클라이언트 컴퓨터 시스템을 통해) 최종 사용자에 의해 그리고 (예를 들어, IoT 서비스(120)에 가입한 웹사이트(130)와 같은) 웹 클라이언트에 의해 액세스 가능하게 될 수 있다.
IoT 디바이스(101 내지 105)에는 그들 및 그들의 주변에 대한 정보를 수집하고 수집된 정보를 IoT 허브(110)를 통해 IoT 서비스(120), 사용자 디바이스(135) 및/또는 외부 웹사이트(130)에 제공하기 위한 다양한 타입들의 센서가 탑재될 수 있다. IoT 디바이스(101 내지 105) 중 일부는 IoT 허브(110)를 통해 전송된 제어 커맨드에 응답하여 지정된 기능을 수행할 수 있다. IoT 디바이스(101 내지 105)에 의해 수집된 정보 및 제어 커맨드의 다양한 특정 예가 아래에서 제공된다. 아래에 설명된 일 실시예에서, IoT 디바이스(101)는, 사용자 선택을 기록하고 사용자 선택을 IoT 서비스(120) 및/또는 웹사이트에 전송하도록 설계된 사용자 입력 디바이스이다.
일 실시예에서, IoT 허브(110)는 4G(예를 들어, 모바일 WiMAX, LTE) 또는 5G 셀룰러 데이터 서비스와 같은 셀룰러 서비스(115)를 통해 인터넷(220)에 대한 접속을 설정하기 위한 셀룰러 라디오를 포함한다. 대안적으로 또는 부가적으로, IoT 허브(110)는 (예를 들어, 인터넷 서비스를 최종 사용자에게 제공하는 인터넷 서비스 제공자를 통해) IoT 허브(110)를 인터넷에 결합시키는 WiFi 액세스 포인트 또는 라우터(116)를 통해 WiFi 접속을 설정하기 위한 WiFi 라디오를 포함할 수 있다. 물론, 본 발명의 기본 원리는 임의의 특정 타입의 통신 채널 또는 프로토콜로 제한되지 않는다는 것에 유의하여야 한다.
일 실시예에서, IoT 디바이스(101 내지 105)는 배터리 전력으로 장기간(예를 들어, 수년) 동안 동작할 수 있는 초 저전력 디바이스이다. 전력을 보전하기 위해, 로컬 통신 채널(130)은 블루투스 저에너지(LE)와 같은 저전력 무선 통신 기술을 사용하여 구현될 수 있다. 이러한 실시예에서, IoT 디바이스(101 내지 105) 각각 및 IoT 허브(110)에는 블루투스 LE 라디오 및 프로토콜 스택이 탑재된다.
언급된 바와 같이, 일 실시예에서, IoT 플랫폼은 사용자가 접속된 IoT 디바이스(101 내지 105), IoT 허브(110), 및/또는 IoT 서비스(120)에 액세스하고 그들을 구성하도록 허용하기 위해 사용자 디바이스(135) 상에서 실행되는 IoT 앱 또는 웹 애플리케이션을 포함한다. 일 실시예에서, 앱 또는 웹 애플리케이션은 IoT 기능을 그의 사용자 기반에 제공하도록 웹사이트(130)의 운영자에 의해 설계될 수 있다. 예시된 바와 같이, 웹사이트는 각각의 사용자에 관련된 계정 기록을 포함하는 사용자 데이터베이스(131)를 유지할 수 있다.
도 1b는 복수의 IoT 허브(110, 111, 190)에 대한 추가의 접속 옵션들 예시한다. 이러한 실시예에서, 단일 사용자는 단일 사용자 구내(premises)(180)(예를 들어, 사용자의 집 또는 사업체)에 현장 설치된 다수의 허브(110, 111)를 가질 수 있다. 이것은 예를 들어 IoT 디바이스(101 내지 105) 모두를 접속시키기 위해 필요한 무선 범위를 확장시키기 위해 행해질 수 있다. 표시된 바와 같이, 사용자가 다수의 허브(110, 111)를 갖는 경우, 그것들은 로컬 통신 채널(예를 들어, Wifi, 이더넷, 전력 라인 네트워킹 등)을 통해 접속될 수 있다. 일 실시예에서, 허브(110, 111) 각각은 (도 1b에 명시적으로 도시되지 않은) 셀룰러(115) 또는 WiFi(116) 접속을 통해 IoT 서비스(120)에 대한 직접 접속을 설정할 수 있다. 대안적으로 또는 부가적으로, IoT 허브(110)와 같은 IoT 허브들 중 하나는 (IoT 허브(110)와 IoT 허브(111)를 연결하는 점선에 의해 표시된 바와 같이) IoT 허브(111)와 같은, 사용자 구내(180) 상의 다른 IoT 허브들 모두에 접속 및/또는 로컬 서비스를 제공하는 "마스터" 허브로서 동작할 수 있다. 예를 들어, 마스터 IoT 허브(110)는 IoT 서비스(120)에 대한 직접 접속을 설정하기 위한 유일한 IoT 허브일 수 있다. 일 실시예에서, "마스터" IoT 허브(110)에만 IoT 서비스(120)에 대한 접속을 설정하기 위한 셀룰러 통신 인터페이스가 탑재된다. 그렇기 때문에, IoT 서비스(120)와 다른 IoT 허브(111) 사이의 모든 통신은 마스터 IoT 허브(110)를 통해 흐를 것이다. 이러한 역할에서, 마스터 IoT 허브(110)는 다른 IoT 허브(111)와 (예를 들어, 가능한 경우 로컬식으로 일부 데이터 요청들을 서비스하는) IoT 서비스(120) 사이에서 교환되는 데이터에 대해 필터링 동작을 수행하기 위한 부가적인 프로그램 코드를 제공받을 수 있다.
IoT 허브(110, 111)가 어떻게 접속되는지에 관계없이, 일 실시예에서, IoT 서비스(120)는 앱이 설치된 사용자 디바이스(135)를 통해 액세스 가능한 단일의 포괄적인 사용자 인터페이스 (및/또는 브라우저-기반 인터페이스)하에서 허브를 사용자와 논리적으로 연관시키고 부착된 IoT 디바이스(101 내지 105) 모두를 결합시킬 것이다.
이러한 실시예에서, 마스터 IoT 허브(110) 및 하나 이상의 슬레이브 IoT 허브(111)는 WiFi 네트워크(116), 이더넷 네트워크, 및/또는 사용 전력-라인 통신(PLC) 네트워킹일 수 있는 로컬 네트워크를 통해 접속될 수 있다(예를 들어, 여기서 네트워크의 전부 또는 일부가 사용자의 전력 라인을 통해 구동됨). 부가적으로, IoT 허브(110, 111)에 대해, IoT 디바이스(101 내지 105) 각각은, 몇몇 예를 들자면, WiFi, 이더넷, PLC 또는 블루투스 LE와 같은 임의의 타입의 로컬 네트워크 채널을 사용하여 IoT 허브(110, 111)와 상호접속될 수 있다.
도 1b는 또한 제 2 사용자 구내(181)에 설치된 IoT 허브(190)를 도시한다. 사실상 제한되지 않는 수의 그러한 IoT 허브(190)가 전세계의 사용자 구내에서 IoT 디바이스(191, 192)로부터 데이터를 수집하도록 설치 및 구성될 수 있다. 일 실시예에서, 2개의 사용자 구내(180, 181)가 동일한 사용자에 대해 구성될 수 있다. 예를 들어, 하나의 사용자 구내(180)는 사용자의 주된 집일 수 있고, 다른 사용자 구내(181)는 사용자의 별장일 수 있다. 그러한 경우에, IoT 서비스(120)는 앱이 설치된 사용자 디바이스(135)를 통해 액세스 가능한 단일의 포괄적인 사용자 인터페이스 (및/또는 브라우저-기반 인터페이스)하에서 IoT 허브(110, 111, 190)를 사용자와 논리적으로 연관시키고 부착된 IoT 디바이스(101 내지 105, 191, 192) 모두를 결합시킬 것이다.
도 2에 예시된 바와 같이, IoT 디바이스(101)의 예시적인 실시예는 프로그램 코드 및 데이터(201 내지 203)를 저장하기 위한 메모리(210) 및 프로그램 코드를 실행하고 데이터를 처리하기 위한 저전력 마이크로제어기(200)를 포함한다. 메모리(210)는 동적 랜덤 액세스 메모리(DRAM)와 같은 휘발성 메모리일 수 있거나, 플래시 메모리와 같은 비-휘발성 메모리일 수 있다. 일 실시예에서, 비-휘발성 메모리는 영속적인 저장을 위해 사용될 수 있고, 휘발성 메모리는 런타임 시에 프로그램 코드 및 데이터의 실행을 위해 사용될 수 있다. 또한, 메모리(210)는 저전력 마이크로제어기(200) 내에 통합될 수 있거나, 버스 또는 통신 패브릭(fabric)을 통해 저전력 마이크로제어기(200)에 결합될 수 있다. 본 발명의 기본 원리는 메모리(210)의 임의의 특정 구현으로 제한되지 않는다.
예시된 바와 같이, 프로그램 코드는 IoT 디바이스(201)에 의해 수행될 기능들의 애플리케이션-특정 세트를 정의하는 애플리케이션 프로그램 코드(203), 및 IoT 디바이스(101)의 애플리케이션 개발자에 의해 이용될 수 있는 미리 정의된 빌딩 블록(building block)들의 세트를 포함하는 라이브러리 코드(202)를 포함할 수 있다. 일 실시예에서, 라이브러리 코드(202)는 각각의 IoT 디바이스(101)와 IoT 허브(110) 사이의 통신을 인에이블하기 위한 통신 프로토콜 스택(201)과 같은, IoT 디바이스를 구현하는 데 요구되는 기본 기능들의 세트를 포함한다. 언급된 바와 같이, 일 실시예에서, 통신 프로토콜 스택(201)은 블루투스 LE 프로토콜 스택을 포함한다. 이러한 실시예에서, 블루투스 LE 라디오 및 안테나(207)는 저전력 마이크로제어기(200) 내에 통합될 수 있다. 그러나, 본 발명의 기본 원리는 임의의 특정 통신 프로토콜로 제한되지 않는다.
도 2에 도시된 특정 실시예는 또한 사용자 입력을 수신하고 사용자 입력을 저전력 마이크로제어기에 제공하기 위한 복수의 입력 디바이스 또는 센서(210)를 포함하며, 저전력 마이크로제어기는 애플리케이션 코드(203) 및 라이브러리 코드(202)에 따라 사용자 입력을 처리한다. 일 실시예에서, 입력 디바이스들 각각은 최종 사용자에게 피드백을 제공하기 위한 LED(209)를 포함한다.
부가적으로, 예시된 실시예는 저전력 마이크로제어기에 전력을 공급하기 위한 배터리(208)를 포함한다. 일 실시예에서, 비-충전 가능 코인 셀 배터리가 사용된다. 그러나, 대안적인 실시예에서, 통합된 재충전 가능 배터리가 사용될 수 있다(예를 들어, IoT 디바이스를 AC 전력 공급부(도시되지 않음)에 접속시킴으로써 충전 가능함).
오디오를 생성하기 위한 스피커(205)가 또한 제공된다. 일 실시예에서, 저전력 마이크로제어기(299)는 스피커(205)에서 오디오를 생성하기 위해 (예를 들어, MPEG-4/어드밴스드 오디오 코딩(AAC) 스트림과 같은) 압축된 오디오 스트림을 디코딩하기 위한 오디오 디코딩 로직을 포함한다. 대안적으로, 저전력 마이크로제어기(200) 및/또는 애플리케이션 코드/데이터(203)는 사용자가 입력 디바이스(210)를 통해 선택을 입력할 때 언어 피드백을 최종 사용자에게 제공하기 위한 오디오의 디지털 샘플링된 단편(snippet)을 포함할 수 있다.
일 실시예에서, 하나 이상의 다른/대안적인 I/O 디바이스 또는 센서(250)가, IoT 디바이스(101)가 그것을 위해 설계되는 특정 애플리케이션에 기초하여 IoT 디바이스(101) 상에 포함될 수 있다. 예를 들어, 온도, 압력, 습도 등을 측정하기 위해 환경 센서가 포함될 수 있다. IoT 디바이스가 보안 디바이스로서 사용되는 경우 보안 센서 및/또는 도어록 오프너가 포함될 수 있다. 물론, 이들 예는 단지 예시의 목적으로 제공된다. 본 발명의 기본 원리는 IoT 디바이스의 임의의 특정 타입으로 제한되지 않는다. 사실, 라이브러리 코드(202)가 탑재된 저전력 마이크로제어기(200)의 고도로 프로그래밍 가능한 속성을 고려해 볼 때, 애플리케이션 개발자는 사실상 임의의 타입의 IoT 애플리케이션을 위한 저전력 마이크로제어기와 인터페이싱하기 위해 새로운 애플리케이션 코드(203) 및 새로운 I/O 디바이스(250)를 쉽게 개발할 수 있다.
일 실시예에서, 저전력 마이크로제어기(200)는 또한 아래에서 설명되는 실시예(예를 들어, 도 4 내지 도 6 및 연관된 텍스트 참조)에 의해 사용되는 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다. 대안적으로, 키는 아래에서 논의되는 바와 같이 가입자 식별 모듈(SIM)에서 보안될 수 있다.
일 실시예에서, IoT 디바이스가 사실상 어떠한 전력도 소비하고 있지 않은 초 저전력 상태로부터 그 IoT 디바이스를 웨이크하기 위해 웨이크업 수신기(207)가 포함된다. 일 실시예에서, 웨이크업 수신기(207)는 도 3에 도시된 바와 같이 IoT 허브(110) 상에 구성된 웨이크업 송신기(307)로부터 수신된 웨이크업 신호에 응답하여 IoT 디바이스(101)로 하여금 이러한 저전력 상태를 빠져나가게 하도록 구성된다. 특히, 일 실시예에서, 송신기(307) 및 수신기(207)는 테슬라 코일과 같은 전기 공진 변압기 회로를 함께 형성한다. 동작 시에, 허브(110)가 매우 낮은 전력 상태로부터 IoT 디바이스(101)를 웨이크할 필요가 있을 때 에너지가 라디오 주파수 신호를 통해 송신기(307)로부터 수신기(207)로 송신된다. 에너지 전달 때문에, IoT 디바이스(101)는 그것이 그것의 저전력 상태에 있을 때 사실상 어떠한 전력도 소비하지 않도록 구성될 수 있는데, 왜냐하면 (디바이스가 네트워크 신호를 통해 어웨이크되도록 허용하는 네트워크 프로토콜에서 그러한 바와 같이) 그것이 허브로부터의 신호를 계속 "청취"할 필요가 없기 때문이다. 오히려, IoT 디바이스(101)의 마이크로제어기(200)는 송신기(307)로부터 수신기(207)로 전기적으로 송신된 에너지를 사용함으로써 사실상 전력 차단된 후에 웨이크 업하도록 구성될 수 있다.
도 3에 예시된 바와 같이, IoT 허브(101)는 또한 프로그램 코드 및 데이터(305)를 저장하기 위한 메모리(317), 및 프로그램 코드를 실행하고 데이터를 처리하기 위한 마이크로제어기와 같은 하드웨어 로직(301)을 포함한다. 광역 네트워크(WAN) 인터페이스(302) 및 안테나(310)가 IoT 허브(110)를 셀룰러 서비스(115)에 결합시킨다. 대안적으로, 위에서 언급된 바와 같이, IoT 허브(110)는 또한 근거리 네트워크 통신 채널을 설정하기 위한 WiFi 인터페이스(및 WiFi 안테나) 또는 이더넷 인터페이스와 같은 로컬 네트워크 인터페이스(도시되지 않음)를 포함할 수 있다. 일 실시예에서, 하드웨어 로직(301)은 또한 아래에서 설명되는 실시예(예를 들어, 도 4 내지 도 6 및 연관된 텍스트 참조)에 의해 사용되는 암호화 키를 저장하기 위한 보안 키 저장소를 포함한다. 대안적으로, 키는 아래에서 논의되는 바와 같이 가입자 식별 모듈(SIM)에서 보안될 수 있다.
로컬 통신 인터페이스(303) 및 안테나(311)가 IoT 디바이스(101 내지 105) 각각과 로컬 통신 채널을 설정한다. 위에서 언급된 바와 같이, 일 실시예에서, 로컬 통신 인터페이스(303)/안테나(311)는 블루투스 LE 표준을 구현한다. 그러나, 본 발명의 기본 원리는 IoT 디바이스(101 내지 105)와 로컬 통신 채널을 설정하기 위한 임의의 특정 프로토콜로 제한되지 않는다. 도 3에서 별개의 유닛으로서 예시되지만, WAN 인터페이스(302) 및/또는 로컬 통신 인터페이스(303)는 하드웨어 로직(301)과 동일한 칩 내에 임베딩될 수 있다.
일 실시예에서, 프로그램 코드 및 데이터는 로컬 통신 인터페이스(303) 및 WAN 인터페이스(302)를 통해 통신하기 위한 별개의 스택을 포함할 수 있는 통신 프로토콜 스택(308)을 포함한다. 부가적으로, IoT 허브가 새로운 IoT 디바이스와 페어링하도록 허용하기 위해 디바이스 페어링 프로그램 코드 및 데이터(306)가 메모리에 저장될 수 있다. 일 실시예에서, 각각의 새로운 IoT 디바이스(101 내지 105)는 페어링 프로세스 동안 IoT 허브(110)에 통신되는 고유 코드를 할당받는다. 예를 들어, 고유 코드는 IoT 디바이스 상의 바코드에 임베딩될 수 있으며, 바코드 판독기(106)에 의해 판독될 수 있거나 로컬 통신 채널(130)을 통해 통신될 수 있다. 대안적인 실시예에서, 고유 ID 코드는 IoT 디바이스 상에 자기적으로 임베딩되며, IoT 허브는 IoT 디바이스(101)가 IoT 허브(110)로부터 수 인치 이내로 이동될 때 코드를 검출하기 위한 라디오 주파수 ID(RFID) 또는 근거리장 통신(NFC) 센서와 같은 자기 센서를 갖는다.
일 실시예에서, 일단 고유 ID가 통신되면, IoT 허브(110)는 로컬 데이터베이스(도시되지 않음)에 질의하고/하거나, 코드가 수용 가능한지를 검증하기 위해 해시(hash)를 수행하고/하거나, ID 코드를 확인하기 위해 IoT 서비스(120), 사용자 디바이스(135) 및/또는 웹사이트(130)와 통신함으로써 고유 ID를 검증할 수 있다. 일단 확인되면, 일 실시예에서, IoT 허브(110)는 IoT 디바이스(101)를 페어링하고, (언급된 바와 같이, 비-휘발성 메모리를 포함할 수 있는) 메모리(317)에 페어링 데이터를 저장한다. 일단 페어링이 완료되면, IoT 허브(110)는 본 명세서에 설명된 다양한 IoT 기능을 수행하기 위해 IoT 디바이스(101)와 접속할 수 있다.
일 실시예에서, IoT 서비스(120)를 구동하는 조직은 개발자가 새로운 IoT 서비스를 용이하게 설계하도록 허용하기 위해 IoT 허브(110) 및 기본적인 하드웨어/소프트웨어 플랫폼을 제공할 수 있다. 특히, IoT 허브(110)에 더하여, 개발자는 허브(110) 내에서 실행되는 프로그램 코드 및 데이터(305)를 업데이트하기 위한 소프트웨어 개발 키트(SDK)를 제공받을 수 있다. 부가적으로, IoT 디바이스(101)에 대해, SDK는 다양한 상이한 타입의 애플리케이션(101)의 설계를 용이하게 하기 위하여 기반 IoT 하드웨어(예를 들어, 도 2에 도시된 저전력 마이크로제어기(200) 및 다른 컴포넌트)에 대해 설계된 광범위한 세트의 라이브러리 코드(202)를 포함할 수 있다. 일 실시예에서, SDK는 개발자가 단지 IoT 디바이스에 대한 입력 및 출력만을 지정할 필요가 있는 그래픽 설계 인터페이스를 포함한다. IoT 디바이스(101)가 허브(110) 및 서비스(120)에 접속하도록 허용하는 통신 스택(201)을 포함한 모든 네트워킹 코드가 이미 개발자를 위해 제 위치에 있다. 부가적으로, 일 실시예에서, SDK는 또한 모바일 디바이스(예를 들어, 아이폰 및 안드로이드 디바이스)를 위한 앱의 설계를 용이하게 하기 위한 라이브러리 코드 기반을 포함한다.
일 실시예에서, IoT 허브(110)는 IoT 디바이스(101 내지 105)와 IoT 서비스(120) 사이의 데이터의 연속적인 양방향 스트림을 관리한다. IoT 디바이스(101 내지 105)로의/로부터의 업데이트가 실시간으로 요구되는(예를 들어, 사용자가 보안 디바이스 또는 환경 측정의 현재 상태를 볼 필요가 있는) 상황에서, IoT 허브는 정기 업데이트를 사용자 디바이스(135) 및/또는 외부 웹사이트들(130)에 제공하기 위한 개방형 TCP 소켓을 유지할 수 있다. 업데이트를 제공하는 데 사용되는 특정 네트워킹 프로토콜은 기본 애플리케이션의 필요에 기초하여 미조정될 수 있다. 예를 들어, 연속적인 양방향 스트림을 갖는 것이 타당하지 않을 수 있는 일부 경우에, 간단한 요청/응답 프로토콜이 필요할 경우 정보를 수집하는 데 사용될 수 있다.
일 실시예에서, IoT 허브(110) 및 IoT 디바이스(101 내지 105) 둘 모두는 네트워크를 통해 자동적으로 업그레이드 가능하다. 특히, 새로운 업데이트가 IoT 허브(110)에게 이용 가능한 경우, 그것은 IoT 서비스(120)로부터 업데이트를 자동적으로 다운로드 및 설치할 수 있다. 그것은 먼저 업데이트된 코드를 로컬 메모리에 복사하고, 구동하고, 구형 프로그램 코드를 교체하기 전에 업데이트를 검증할 수 있다. 유사하게, 업데이트가 IoT 디바이스(101 내지 105) 각각에게 이용 가능한 경우, 업데이트는 초기에 IoT 허브(110)에 의해 다운로드되고 IoT 디바이스(101 내지 105) 각각에 푸시 아웃될 수 있다. 그 후, 각각의 IoT 디바이스(101 내지 105)는 IoT 허브에 대해 위에서 설명된 것과 유사한 방식으로 업데이트를 적용하고 업데이트의 결과를 IoT 허브(110)에 다시 보고할 수 있다. 업데이트가 성공적이면, IoT 허브(110)는 그것의 메모리로부터 업데이트를 삭제하고 (예를 들어, 그것이 각각의 IoT 디바이스에 대한 새로운 업데이트를 계속 체크할 수 있도록) 각각의 IoT 디바이스 상에 설치된 코드의 최신 버전을 기록할 수 있다.
일 실시예에서, IoT 허브(110)는 A/C 전력을 통해 전력공급된다. 특히, IoT 허브(110)는 A/C 전력 코드를 통해 공급된 A/C 전압을 더 낮은 DC 전압으로 변압시키기 위한 변압기를 갖는 전력 유닛(390)을 포함할 수 있다.
도 4는 IoT 서비스(120), IoT 허브(110) 및 IoT 디바이스(101, 102) 간의 통신을 암호화하기 위해 공개 키 기반구조(PKI) 기술 및/또는 대칭 키 교환/암호화 기술을 사용하는 고레벨 아키텍처를 예시한다.
공개/비공개 키 쌍을 사용하는 실시예가 먼저 설명될 것이고, 이어서 대칭 키 교환/암호화 기술을 사용하는 실시예가 설명될 것이다. 특히, PKI를 사용하는 실시예에서는, 고유 공개/비공개 키 쌍이 각각의 IoT 디바이스(101, 102), 각각의 IoT 허브(110) 및 IoT 서비스(120)와 관련된다. 일 실시예에서, 새로운 IoT 허브(110)가 설정될 때, 그것의 공개 키가 IoT 서비스(120)에 제공되고, 새로운 IoT 디바이스(101)가 설정될 때, 그것의 공개 키가 IoT 허브(110) 및 IoT 서비스(120) 둘 모두에 제공된다. 디바이스들 사이에서 공개 키를 안전하게 교환하기 위한 다양한 기술이 아래에서 설명된다. 일 실시예에서, 임의의 수신 디바이스가 서명을 확인함으로써 공개 키의 유효성을 검증할 수 있도록 모든 수신 디바이스에 알려진(즉, 인증서 형태의) 마스터 키에 의해 모든 공개 키가 서명된다. 따라서, 단지 원시 공개 키만을 교환하기보다는 이러한 인증서가 교환될 것이다.
예시된 바와 같이, 일 실시예에서, 각각의 IoT 디바이스(101, 102)는 각각의 디바이스의 비공개 키를 보안 저장하기 위한 보안 키 저장소(401, 403)를 각각 포함한다. 이어서, 보안 로직(402, 404)은 안전하게 저장된 비공개 키를 사용하여 본 명세서에 설명된 암호화/해독 동작을 수행한다. 유사하게, IoT 허브(110)는 IoT 허브 비공개 키 및 IoT 디바이스(101, 102) 및 IoT 서비스(120)의 공개 키를 저장하기 위한 보안 저장소(411)뿐만 아니라, 키를 사용하여 암호화/해독 동작을 수행하기 위한 보안 로직(412)을 포함한다. 마지막으로, IoT 서비스(120)는 그 자신의 비공개 키, 다양한 IoT 디바이스 및 IoT 허브의 공개 키를 보안 저장하기 위한 보안 저장소(421), 및 키를 사용하여 IoT 허브 및 디바이스와의 통신을 암호화/해독하기 위한 보안 로직(413)을 포함할 수 있다. 일 실시예에서, IoT 허브(110)가 IoT 디바이스로부터 공개 키 인증서를 수신할 때, IoT 허브는 (예를 들어, 전술한 바와 같이 마스터 키를 사용하여 서명을 확인함으로써) 그것을 검증할 수 있고, 이어서 그것 내부로부터 공개 키를 추출하여 그 공개 키를 그것의 보안 키 저장소(411)에 저장할 수 있다.
예로서, 일 실시예에서, IoT 서비스(120)가 커맨드 또는 데이터(예를 들어, 도어를 열기 위한 커맨드, 센서를 판독하기 위한 요청, IoT 디바이스에 의해 처리/디스플레이될 데이터 등)를 IoT 디바이스(101)로 전송할 필요가 있을 때, 보안 로직(413)은 IoT 디바이스(101)의 공개 키를 사용하여 데이터/커맨드를 암호화하여 암호화된 IoT 디바이스 패킷을 생성한다. 일 실시예에서, 보안 로직은 이어서 IoT 허브(110)의 공개 키를 사용하여 IoT 디바이스 패킷을 암호화하여 IoT 허브 패킷을 생성하고 IoT 허브 패킷을 IoT 허브(110)로 전송한다. 일 실시예에서, 서비스(120)는 암호화된 메시지를 그것의 비공개 키 또는 상기에 언급된 마스터 키로 서명하여, 디바이스(101)는 그것이 신뢰 소스로부터 변경되지 않은 메시지를 수신하고 있는지를 검증할 수 있다. 이어서, 디바이스(101)는 비공개 키 및/또는 마스터 키에 대응하는 공개 키를 사용하여 서명을 확인할 수 있다.전술한 바와 같이, 공개/비공개 키 암호화 대신에 대칭 키 교환/암호화 기술이 사용될 수 있다. 이들 실시예에서, 하나의 키를 비공개적으로 저장하고 대응하는 공개 키를 다른 디바이스에 제공하기보다는, 디바이스들은 각각 암호화에 사용되고 서명을 확인하는 데 사용되는 동일한 대칭 키의 사본을 제공받을 수 있다. 대칭 키 알고리즘의 일례는 진보된 암호화 표준(AES)이지만, 본 발명의 기본 원리는 임의의 타입의 특정 대칭 키로 제한되지 않는다.
대칭 키 구현을 사용하여, 각각의 디바이스(101)는 IoT 허브(110)와 대칭 키를 교환하기 위해 보안 키 교환 프로토콜에 들어간다. 동적 대칭 키 프로비저닝 프로토콜(DSKPP)과 같은 보안 키 프로비저닝 프로토콜이 보안 통신 채널을 통해 키를 교환하는 데 사용될 수 있다(예를 들어, RFC(Request for Comments) 6063 참조). 그러나, 본 발명의 기본 원리는 임의의 특정 키 프로비저닝 프로토콜로 제한되지 않는다.
일단 대칭 키가 교환되면, 대칭 키는 통신을 암호화하기 위해 각각의 디바이스(101) 및 IoT 허브(110)에 의해 사용될 수 있다. 유사하게, IoT 허브(110) 및 IoT 서비스(120)는 보안 대칭 키 교환을 수행 한 다음, 교환된 대칭 키를 사용하여 통신을 암호화할 수 있다. 일 실시예에서, 새로운 대칭 키가 디바이스(101)와 허브(110) 사이에서 그리고 허브(110)와 IoT 서비스(120) 사이에서 주기적으로 교환된다. 일 실시예에서, 새로운 대칭 키가 디바이스(101), 허브(110) 및 서비스(120) 사이에서 각각의 새로운 통신 세션을 이용하여 교환된다(예를 들어, 새로운 키가 생성되고 각각의 통신 세션 동안 안전하게 교환된다). 일 실시예에서, IoT 허브 내의 보안 모듈(412)이 신뢰되는 경우, 서비스(120)는 허브 보안 모듈(412)과 세션 키를 협상할 수 있고, 이어서 보안 모듈(412)은 각각의 디바이스(120)와 세션 키를 협상할 것이다. 이어서, 서비스(120)로부터의 메시지가 디바이스(101)로의 전송을 위해 재암호화되기 전에 허브 보안 모듈(412)에서 해독 및 검증될 것이다.
일 실시예에서, 허브 보안 모듈(412) 상의 타협(compromise)을 방지하기 위해, 설치 시에 1회(영구) 설치 키가 디바이스(101)와 서비스(120) 사이에서 협상될 수 있다. 메시지를 디바이스(101)로 전송할 때, 서비스(120)는 먼저 이 디바이스 설치 키로 암호화/MAC하고, 이어서 허브의 세션 키로 암호화/MAC할 수 있다. 이어서, 허브(110)는 암호화된 디바이스 블롭(device blob)을 검증 및 추출하여, 이를 디바이스로 전송할 것이다.
본 발명의 일 실시예에서, 재생 공격을 방지하기 위해 카운터 메커니즘이 구현된다. 예를 들어, 디바이스(101)로부터 허브(110)로의(또는 그 반대로의) 각각의 연속적인 통신이 계속 증가하는 카운터 값을 할당받을 수 있다. 허브(110) 및 디바이스(101) 둘 모두는 이 값을 추적하고 이 값이 디바이스들 간의 각각의 연속적인 통신에서 정확한지를 검증할 것이다. 동일한 기술이 허브(110)와 서비스(120) 사이에서 구현될 수 있다. 이러한 방식으로 카운터를 사용하는 것은 (카운터 값이 부정확할 것이기 때문에) 각각의 디바이스들 간의 통신을 스푸핑(spoofing)하는 것을 더 어렵게 할 것이다. 그러나, 이것 없이도, 서비스와 디바이스 간의 공유 설치 키가 모든 디바이스에 대한 네트워크(허브) 전반적 공격을 방지할 것이다.
일 실시예에서, 공개/비공개 키 암호화를 사용할 때, IoT 허브(110)는 그것의 비공개 키를 사용하여 IoT 허브 패킷을 해독하고 암호화된 IoT 디바이스 패킷을 생성하여, 이것을 관련 IoT 디바이스(101)로 전송한다. 이어서, IoT 디바이스(101)는 그것의 비공개 키를 사용하여 IoT 디바이스 패킷을 해독하여, IoT 서비스(120)로부터 시작되는 커맨드/데이터를 생성한다. 이어서, IoT 디바이스는 데이터를 처리하고/하거나 커맨드를 실행할 수 있다. 대칭 암호화를 사용하여, 각각의 디바이스는 공유 대칭 키를 사용하여 암호화하고 해독할 것이다. 어느 경우에나, 각각의 송신 디바이스는 또한 메시지를 그것의 비공개 키로 서명할 수 있어서, 수신 디바이스는 그것의 진정성을 검증할 수 있다.
IoT 디바이스(101)로부터 IoT 허브(110)로의 그리고 IoT 서비스(120)로의 통신을 암호화하기 위해 상이한 키 세트가 사용될 수 있다. 예를 들어, 공개/비공개 키 배열을 사용하여, 일 실시예에서, IoT 디바이스(101) 상의 보안 로직(402)은 IoT 허브(110)의 공개 키를 사용하여, IoT 허브(110)로 전송되는 데이터 패킷을 암호화한다. 이어서, IoT 허브(110) 상의 보안 로직(412)은 IoT 허브의 비공개 키를 사용하여 데이터 패킷을 해독할 수 있다. 유사하게, IoT 디바이스(101) 상의 보안 로직(402) 및/또는 IoT 허브(110) 상의 보안 로직(412)은 IoT 서비스(120)의 공개 키를 사용하여 IoT 서비스(120)로 전송되는 데이터 패킷을 암호화할 수 있다(데이터 패킷은 이어서 IoT 서비스(120) 상의 보안 로직(413)에 의해 서비스의 비공개 키를 사용하여 해독될 수 있다). 대칭 키를 사용하는 경우, 디바이스(101) 및 허브(110)는 하나의 대칭 키를 공유할 수 있는 반면, 허브 및 서비스(120)는 상이한 대칭 키를 공유할 수 있다.
소정의 특정 상세가 위의 설명에서 기재되지만, 본 발명의 기본 원리는 다양한 상이한 암호화 기술을 사용하여 구현될 수 있다는 점에 유의해야 한다. 예를 들어, 상기에 논의된 일부 실시예는 비대칭 공개/비공개 키 쌍을 사용하지만, 대안적인 실시예는 다양한 IoT 디바이스(101, 102), IoT 허브(110) 및 IoT 서비스(120) 사이에서 안전하게 교환되는 대칭 키를 사용할 수 있다. 더욱이, 일부 실시예에서, 데이터/커맨드 그 자체가 암호화되는 것이 아니라, 키가 데이터/커맨드(또는 다른 데이터 구조)에 대한 서명을 생성하는 데 사용된다. 이어서, 수신자는 그것의 키를 사용하여 서명을 확인할 수 있다.
도 5에 예시된 바와 같이, 일 실시예에서, 각각의 IoT 디바이스(101) 상의 보안 키 저장소는 프로그래밍 가능 가입자 식별 모듈(SIM)(501)을 사용하여 구현된다. 이 실시예에서, IoT 디바이스(101)는 처음에, IoT 디바이스(101) 상의 SIM 인터페이스(500) 내에 안착되는 프로그래밍되지 않은 SIM 카드(501)와 함께 최종 사용자에게 제공될 수 있다. 하나 이상의 암호화 키의 세트를 갖도록 SIM을 프로그래밍하기 위해, 사용자는 SIM 인터페이스(500)로부터 프로그래밍 가능 SIM 카드(501)를 취하여, 그것을 IoT 허브(110) 상의 SIM 프로그래밍 인터페이스(502) 안에 삽입한다. 이어서, IoT 허브 상의 프로그래밍 로직(525)은 SIM 카드(501)를 안전하게 프로그래밍하여, IoT 디바이스(101)를 IoT 허브(110) 및 IoT 서비스(120)에 대해 등록/페어링한다. 일 실시예에서, 공개/비공개 키 쌍이 프로그래밍 로직(525)에 의해 무작위로 생성될 수 있고, 이어서 그 쌍의 공개 키는 IoT 허브의 보안 저장소(411)에 저장될 수 있는 반면, 비공개 키는 프로그래밍 가능 SIM(501) 내에 저장될 수 있다. 게다가, 프로그래밍 로직(525)은 IoT 허브(110), IoT 서비스(120) 및/또는 임의의 다른 IoT 디바이스(101)의 공개 키를 (IoT 디바이스(101) 상의 보안 로직(402)에 의해 발신 데이터를 암호화하는 데 사용되도록) SIM 카드(501) 상에 저장할 수 있다. 일단 SIM(501)이 프로그래밍되면, 새로운 IoT 디바이스(101)는 SIM을 보안 식별자로서 사용하여(예를 들어, SIM을 사용하여 디바이스를 등록하기 위한 기존 기술을 사용하여) IoT 서비스(120)로 프로비저닝될 수 있다. 프로비저닝 후에, IoT 허브(110) 및 IoT 서비스(120) 둘 모두는 IoT 디바이스(101)와의 통신을 암호화할 때 사용될 IoT 디바이스의 공개 키의 사본을 안전하게 저장할 것이다.
도 5와 관련하여 전술한 기술은 새로운 IoT 디바이스를 최종 사용자에게 제공할 때 엄청난 유연성을 제공한다. 사용자가 (현재 행해지고 있는 바와 같이) 판매/구매 시에 각각의 SIM을 특정 서비스 제공자에 직접 등록할 것을 요구하기보다는, SIM은 IoT 허브(110)를 통해 최종 사용자에 의해 직접 프로그래밍될 수 있고 프로그래밍의 결과는 IoT 서비스(120)로 안전하게 통신될 수 있다. 결과적으로, 새로운 IoT 디바이스(101)는 온라인 또는 로컬 소매상으로부터 최종 사용자에게 판매될 수 있고, 나중에 IoT 서비스(120)로 안전하게 프로비저닝될 수 있다.
등록 및 암호화 기술이 SIM(가입자 식별 모듈)의 특정 상황에서 전술되지만, 본 발명의 기본 원리는 "SIM" 디바이스로 제한되지 않는다. 오히려, 본 발명의 기본 원리는 암호화 키 세트를 저장하기 위한 보안 저장소를 갖는 임의의 타입의 디바이스를 사용하여 구현될 수 있다. 또한, 위의 실시예가 이동 가능한 SIM 디바이스를 포함하지만, 일 실시예에서, SIM 디바이스는 이동 가능한 것이 아니라, IoT 디바이스 그 자체가 IoT 허브(110) 상의 프로그래밍 인터페이스(502) 내에 삽입될 수 있다.
일 실시예에서, 사용자가 SIM(또는 다른 디바이스)을 프로그래밍할 것을 요구하기보다는, SIM은 최종 사용자에게 배포되기 전에 IoT 디바이스(101) 내에 미리 프로그래밍된다. 이 실시예에서, 사용자가 IoT 디바이스(101)를 설정할 때, 본 명세서에서 설명되는 다양한 기술은 IoT 허브(110)/IoT 서비스(120)와 새로운 IoT 디바이스(101) 사이에서 암호화 키를 안전하게 교환하는 데 사용될 수 있다.
예를 들어, 도 6a에 예시된 바와 같이, 각각의 IoT 디바이스(101) 또는 SIM(401)은 IoT 디바이스(101) 및/또는 SIM(401)을 고유하게 식별하는 바코드 또는 QR 코드(601)와 함께 패키징될 수 있다. 일 실시예에서, 바코드 또는 QR 코드(601)는 IoT 디바이스(101) 또는 SIM(401)에 대한 공개 키의 인코딩된 표현을 포함한다. 대안적으로, 바코드 또는 QR 코드(601)는 IoT 허브(110) 및/또는 IoT 서비스(120)에 의해 공개 키를 식별하거나 생성하는 데 사용될 수 있다(예를 들어, 보안 저장소에 이미 저장된 공개 키에 대한 포인터로서 사용될 수 있다). 바코드 또는 QR 코드(601)는 (도 6a에 도시된 바와 같이) 별도의 카드 상에 인쇄될 수 있거나 IoT 디바이스 그 자체 상에 직접 인쇄될 수 있다. 바코드가 인쇄되는 곳에 관계없이, 일 실시예에서, IoT 허브(110)에는 바코드를 판독하고 결과적인 데이터를 IoT 허브(110) 상의 보안 로직(412) 및/또는 IoT 서비스(120) 상의 보안 로직(413)에 제공하기 위한 바코드 판독기(206)가 탑재된다. 이어서, IoT 허브(110) 상의 보안 로직(412)은 IoT 디바이스에 대한 공개 키를 그것의 보안 키 저장소(411) 내에 저장할 수 있고, IoT 서비스(120) 상의 보안 로직(413)은 공개 키를 (후속 암호화된 통신에 사용되도록) 그것의 보안 저장소(421) 내에 저장할 수 있다.
일 실시예에서, 바코드 또는 QR 코드(601)에 포함되는 데이터는 또한 IoT 서비스 제공자에 의해 설계된 IoT 앱 또는 브라우저 기반 애플릿이 설치된 (예를 들어, 아이폰 또는 안드로이드 디바이스와 같은) 사용자 디바이스(135)를 통해 캡처될 수 있다. 일단 캡처되면, 바코드 데이터는 (예를 들어, 보안 소켓 계층(SSL) 접속과 같은) 보안 접속을 통해 IoT 서비스(120)로 안전하게 통신될 수 있다. 바코드 데이터는 또한 보안 로컬 접속을 통해(예를 들어, 로컬 WiFi 또는 블루투스 LE 접속을 통해) 클라이언트 디바이스(135)로부터 IoT 허브(110)로 제공될 수 있다.
IoT 디바이스(101) 상의 보안 로직(402) 및 IoT 허브(110) 상의 보안 로직(412)은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 예를 들어, 일 실시예에서, 보안 로직(402, 412)은 IoT 디바이스(101)와 IoT 허브(110) 사이에 로컬 통신 채널(130)을 설정하는 데 사용되는 칩(예를 들어, 로컬 채널(130)이 블루투스 LE인 경우에 블루투스 LE 칩) 내에 구현된다. 보안 로직(402, 412)의 특정 위치에 관계없이, 일 실시예에서, 보안 로직(402, 412)은 소정 타입의 프로그램 코드를 실행하기 위한 보안 실행 환경을 설정하도록 설계된다. 이것은 예를 들어 트러스트존(TrustZone) 기술(일부 ARM 프로세서 상에서 이용 가능함) 및/또는 신뢰 실행 기술(Trusted Execution Technology)(인텔(Intel)에 의해 설계됨)을 사용하여 구현될 수 있다. 물론, 본 발명의 기본 원리는 임의의 특정 타입의 보안 실행 기술로 제한되지 않는다.
일 실시예에서, 바코드 또는 QR 코드(601)는 각각의 IoT 디바이스(101)를 IoT 허브(110)와 페어링하는 데 사용될 수 있다. 예를 들어, 블루투스 LE 디바이스를 페어링하기 위해 현재 사용되는 표준 무선 페어링 프로세스를 사용하기보다는, 바코드 또는 QR 코드(601) 내에 임베딩되는 페어링 코드가 IoT 허브를 대응하는 IoT 디바이스와 페어링하기 위해 IoT 허브(110)에 제공될 수 있다.
도 6b는 IoT 허브(110) 상의 바코드 판독기(206)가 IoT 디바이스(101)와 관련된 바코드/QR 코드(601)를 캡처하는 일 실시예를 예시한다. 언급된 바와 같이, 바코드/QR 코드(601)는 IoT 디바이스(101) 상에 직접 인쇄될 수 있거나, IoT 디바이스(101)가 제공된 별개의 카드 상에 인쇄될 수 있다. 어느 경우에나, 바코드 판독기(206)는 바코드/QR 코드(601)로부터 페어링 코드를 판독하고 로컬 통신 모듈(680)에 페어링 코드를 제공한다. 일 실시예에서, 로컬 통신 모듈(680)은 블루투스 LE 칩 및 관련 소프트웨어이지만, 본 발명의 기본 원리는 임의의 특정 프로토콜 표준으로 제한되지 않는다. 일단 페어링 코드는 수신되면, 그것은 페어링 데이터(685)를 포함하는 보안 저장소에 저장되고, IoT 디바이스(101) 및 IoT 허브(110)는 자동적으로 페어링된다. IoT 허브가 이러한 방식으로 새로운 IoT 디바이스와 페어링될 때마다, 그러한 페어링을 위한 페어링 데이터는 보안 저장소(685) 내에 저장된다. 일 실시예에서, 일단 IoT 허브(110)의 로컬 통신 모듈(680)이 페어링 코드를 수신하면, 그것은 IoT 디바이스(101)와의 로컬 무선 채널을 통한 통신을 암호화하기 위한 키로서 코드를 사용할 수 있다.
유사하게, IoT 디바이스(101) 측에서, 로컬 통신 모듈(690)은 로컬 보안 저장 디바이스(695) 내에 IoT 허브와의 페어링을 지시하는 페어링 데이터를 저장한다. 페어링 데이터(695)는 바코드/QR 코드(601)에서 식별된 미리 프로그래밍된 페어링 코드를 포함할 수 있다. 페어링 데이터(695)는 또한 보안 로컬 통신 채널을 설정하는 데 필요한, IoT 허브(110) 상의 로컬 통신 모듈(680)로부터 수신된 페어링 데이터(예를 들어, IoT 허브(110)와의 통신을 암호화하기 위한 추가 키)를 포함할 수 있다.
따라서, 바코드/QR 코드(601)는 페어링 코드가 무선으로 전송되지 않기 때문에 현재 무선 페어링 프로토콜보다 훨씬 더 안전한 방식으로 로컬 페어링을 수행하는 데 사용될 수 있다. 또한, 일 실시예에서, 페어링에 사용되는 동일한 바코드/QR 코드(601)는 IoT 디바이스(101)로부터 IoT 허브(110)로의 그리고 IoT 허브(110)로부터 IoT 서비스(120)로의 보안 접속을 구축하기 위한 암호화 키를 식별하는 데 사용될 수 있다.
본 발명의 일 실시예에 따른 SIM 카드를 프로그래밍하는 방법이 도 7에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.
701에서 사용자는 블랭크(blank) SIM 카드를 갖는 새로운 IoT 디바이스를 수신하고, 702에서 사용자는 블랭크 SIM 카드를 IoT 허브 안에 삽입한다. 703에서, 사용자는 하나 이상의 암호화 키의 세트를 갖도록 블랭크 SIM 카드를 프로그래밍한다. 예를 들어, 전술한 바와 같이, 일 실시예에서, IoT 허브는 공개/비공개 키 쌍을 무작위로 생성하고, SIM 카드 상에 비공개 키를 저장하고 그것의 로컬 보안 저장소에 공개 키를 저장할 수 있다. 또한, 704에서, 적어도 공개 키가 IoT 서비스로 전송되어, 그것은 IoT 디바이스를 식별하고 IoT 디바이스와의 암호화된 통신을 설정하는 데 사용될 수 있다. 전술한 바와 같이, 일 실시예에서, "SIM" 카드 이외의 프로그래밍 가능 디바이스가 도 7에 도시된 방법에서 SIM 카드와 동일한 기능을 수행하는 데 사용될 수 있다.
새로운 IoT 디바이스를 네트워크 안에 통합하는 방법이 도 8에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.
801에서, 사용자는 암호화 키가 미리 할당된 새로운 IoT 디바이스를 수신한다. 802에서, 키는 IoT 허브에 안전하게 제공된다. 전술한 바와 같이, 일 실시예에서, 이것은 디바이스에 할당된 공개/비공개 키 쌍의 공개 키를 식별하기 위해 IoT 디바이스와 관련된 바코드를 판독하는 것을 포함한다. 바코드는 IoT 허브에 의해 직접 판독되거나 모바일 디바이스를 통해 앱 또는 브라우저를 통해 캡처될 수 있다. 대안적인 실시예에서, 블루투스 LE 채널, 근거리장 통신(NFC) 채널 또는 보안 WiFi 채널과 같은 보안 통신 채널이 IoT 디바이스와 IoT 허브 사이에 설정되어 키를 교환할 수 있다. 키가 전송되는 방식에 상관없이, 일단 수신되면, 그것은 IoT 허브 디바이스의 보안 키 저장소에 저장된다. 전술한 바와 같이, 보안 엔클레이브(Secure Enclave), 신뢰 실행 기술(TXT) 및/또는 트러스트존과 같은 다양한 보안 실행 기술이 키를 저장하고 보호하기 위해 IoT 허브 상에서 사용될 수 있다. 또한, 803에서, 키는 IoT 서비스로 안전하게 전송되며, IoT 서비스는 그 자신의 보안 키 저장소에 키를 저장한다. 이어서, IoT 서비스는 키를 사용하여 IoT 디바이스와의 통신을 암호화할 수 있다. 다시 한번, 교환은 인증서/서명된 키를 사용하여 구현될 수 있다. 허브(110) 내에서, 저장된 키의 변경/추가/제거를 방지하는 것이 특히 중요하다.
공개/비공개 키를 사용하여 커맨드/데이터를 IoT 디바이스로 안전하게 통신하는 방법이 도 9에 예시되어 있다. 방법은 전술한 시스템 아키텍처 내에서 구현될 수 있지만, 임의의 특정 시스템 아키텍처로 제한되지 않는다.
901에서, IoT 서비스는 IoT 디바이스 공개 키를 사용하여 데이터/커맨드를 암호화하여 IoT 디바이스 패킷을 생성한다. 이어서 그것은 IoT 허브의 공개 키를 사용하여 IoT 디바이스 패킷을 암호화하여 IoT 허브 패킷을 생성한다(예를 들어, IoT 디바이스 패킷 주위에 IoT 허브 래퍼(wrapper)를 생성함). 902에서, IoT 서비스는 IoT 허브 패킷을 IoT 허브로 전송한다. 903에서, IoT 허브는 IoT 허브의 비공개 키를 사용하여 IoT 허브 패킷을 해독하여 IoT 디바이스 패킷을 생성한다. 904에서, 그것은 이어서 IoT 디바이스 패킷을 IoT 디바이스로 전송하고, IoT 디바이스는 905에서 IoT 디바이스 비공개 키를 사용하여 IoT 디바이스 패킷을 해독하여 데이터/커맨드를 생성한다. 906에서, IoT 디바이스는 데이터/커맨드를 처리한다.
대칭 키를 사용하는 실시예에서, 대칭 키 교환은 각각의 디바이스들 사이에서(예를 들어, 각각의 디바이스와 허브 사이에서 그리고 허브와 서비스 사이에서) 협상될 수 있다. 일단 키 교환이 완료되면, 각각의 송신 디바이스는 데이터를 수신 디바이스로 송신하기 전에 대칭 키를 사용하여 각각의 송신을 암호화 및/또는 서명한다.
본 발명의 실시예는 위에서 설명된 다양한 단계를 포함할 수 있다. 단계는 범용 또는 특수-목적 프로세서로 하여금 그 단계를 수행하게 하기 위해 사용될 수 있는 기계-실행 가능 명령어들로 구현될 수 있다. 대안적으로, 이들 단계는 단계를 수행하기 위한 하드와이어드 로직(hardwired logic)을 포함하는 특정 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트와 맞춤형 하드웨어 컴포넌트의 임의의 조합에 의해 수행될 수 있다.
본 명세서에 설명된 바와 같이, 명령어는, 소정의 동작을 수행하도록 구성되거나, 비일시적인 컴퓨터 판독 가능 매체에 수록되는 메모리에 저장된 소프트웨어 명령어 또는 미리 결정된 기능을 갖는 주문형 집적 회로(ASIC)와 같은 하드웨어의 특정한 구성을 지칭할 수 있다. 따라서, 도면에 도시된 기법은 하나 이상의 전자 디바이스(예를 들어, 최종 스테이션, 네트워크 요소 등) 상에 저장되고 그것 상에서 실행되는 코드 및 데이터를 사용하여 구현될 수 있다. 그러한 전자 디바이스는 비일시적 컴퓨터 기계 판독 가능 저장 매체(예를 들어, 자기 디스크, 광 디스크, 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리 디바이스, 상변화 메모리) 및 일시적 컴퓨터 기계 판독 가능 통신 매체(예를 들어, 전기, 광학, 음향 또는 다른 형태의 전파 신호 - 예를 들어, 반송파, 적외선 신호, 디지털 신호 등)와 같은 컴퓨터 기계 판독 가능 매체를 사용하여 코드 및 데이터를 저장하고 (내부적으로 그리고/또는 네트워크를 통해 다른 전자 디바이스와) 통신한다. 부가적으로, 그러한 전자 디바이스는 전형적으로 하나 이상의 저장 디바이스(비일시적 기계 판독 가능 저장 매체), 사용자 입력/출력 디바이스(예를 들어, 키보드, 터치스크린, 및/또는 디스플레이), 및 네트워크 접속부와 같은 하나 이상의 다른 컴포넌트에 결합된 하나 이상의 프로세서의 세트를 포함한다. 프로세서의 세트와 다른 컴포넌트의 결합은 전형적으로 하나 이상의 버스 및 브리지(또한 버스 제어기로 지칭됨)를 통해 이루어진다. 저장 디바이스 및 네트워크 트래픽을 반송하는 신호는 각각 하나 이상의 기계 판독 가능 저장 매체 및 기계 판독 가능 통신 매체를 대표한다. 따라서, 주어진 전자 디바이스의 저장 디바이스는 전형적으로 그 전자 디바이스의 하나 이상의 프로세서의 세트 상에서의 실행을 위한 코드 및/또는 데이터를 저장한다. 물론, 본 발명의 실시예의 하나 이상의 부분이 소프트웨어, 펌웨어, 및/또는 하드웨어의 상이한 조합을 사용하여 구현될 수 있다.
이러한 상세한 설명 전반에 걸쳐, 설명의 목적으로, 본 발명의 완전한 이해를 제공하기 위해 다수의 특정 상세가 기술되었다. 그러나, 본 발명은 이러한 특정 상세들 중 일부 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 소정의 경우에, 잘 알려진 구조 및 기능은 본 발명의 주제를 불명확하게 하는 것을 피하기 위해 정성 들여 상세히 설명되지 않았다. 따라서, 본 발명의 범주 및 사상은 후속하는 청구범위의 관점에서 판단되어야 한다.

Claims (54)

  1. 시스템으로서,
    하드웨어 사물 인터넷(IoT) 허브 - 상기 IoT 허브는 광역 네트워크(WAN)를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -;
    IoT 디바이스와의 암호화된 통신을 설정하는 데 사용 가능한 하나 이상의 암호화 키들을 갖도록 식별 디바이스를 프로그래밍하기 위한 프로그래밍 로직; 및
    상기 IoT 허브에 의한 상기 식별 디바이스의 프로그래밍 후에 상기 식별 디바이스와 인터페이싱하는 IoT 디바이스
    를 포함하며,
    일단 상기 식별 디바이스가 프로그래밍되고 상기 IoT 디바이스와 인터페이싱되면, 상기 IoT 디바이스는 상기 하나 이상의 키들을 사용하여 상기 IoT 허브 및 상기 IoT 서비스와의 보안 통신 채널을 설정하고,
    상기 식별 디바이스를 프로그래밍하는 것은 공개/비공개 키 쌍을 생성하고 적어도 상기 공개/비공개 키 쌍의 상기 비공개 키를 상기 식별 디바이스 상에 저장하는 것을 포함하고,
    상기 식별 디바이스를 프로그래밍하는 것은 적어도 상기 공개 키를 상기 IoT 허브 상의 보안 저장소에 저장하는 것을 추가로 포함하고,
    상기 IoT 허브는, 대응하는 서명을 갖는 상기 공개 키를 상기 네트워크 인터페이스를 통해 상기 IoT 서비스로 안전하게 전달하고, 또한 상기 IoT 허브와 관련되고 IoT 허브 비공개 키에 대응하는 IoT 허브 공개 키를 상기 IoT 서비스로 안전하게 전달하고 ― 상기 IoT 허브 공개 키는 대응하는 서명을 가짐 ―, 그리고
    커맨드/데이터를 상기 IoT 디바이스로 안전하게 전송하기 위해, 상기 IoT 서비스는 상기 커맨드/데이터를 암호화하고, 상기 공개 키를 사용하여 제1 서명을 생성하여 암호화된 IoT 디바이스 패킷을 생성하고, 이어서 상기 IoT 디바이스 패킷을 암호화하고, 상기 IoT 허브 공개 키를 사용하여 제2 서명을 생성하여 IoT 허브 패킷을 생성하는, 시스템.
  2. 제1항에 있어서,
    상기 식별 디바이스는 가입자 식별 모듈(SIM)을 포함하는,
    시스템.
  3. 제1항에 있어서,
    상기 식별 디바이스는 상기 IoT 디바이스에 부착된,
    시스템.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 IoT 허브는 상기 IoT 허브 패킷을 해독하고, 상기 IoT 허브의 비공개 키를 사용하여 상기 제2 서명을 확인하여 상기 IoT 디바이스 패킷을 생성하고, 상기 IoT 디바이스 패킷을 상기 IoT 디바이스로 전달하며, 상기 IoT 디바이스는 상기 비공개 키를 사용하여 상기 제1 서명을 확인하고 상기 IoT 디바이스 패킷을 해독하는, 시스템.
  9. 제1항에 있어서, 상기 식별 디바이스는 상기 프로그래밍 로직에 의해 제공된 비공개 키를 저장하기 위한 보안 키 저장소를 포함하는, 시스템.
  10. 제1항에 있어서, 상기 암호화 키들은 대칭 암호화 키들을 포함하는, 시스템.
  11. 시스템으로서,
    하드웨어 사물 인터넷(IoT) 허브 - 상기 IoT 허브는 광역 네트워크(WAN)를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 -; 및
    IoT 디바이스와의 보안 통신 채널을 설정하는 데 사용 가능한 하나 이상의 암호화 키들을 수신하기 위한 상기 IoT 허브 상의 로컬 인터페이스
    를 포함하며,
    일단 상기 IoT 허브가 상기 하나 이상의 암호화 키들을 수신하면, 상기 IoT 허브 및 IoT 서비스는 상기 하나 이상의 암호화 키들을 사용하여 상기 IoT 디바이스와의 보안 통신 채널을 설정하고,
    제1 공개/비공개 키 쌍이 상기 IoT 디바이스와 관련되고, 상기 IoT 허브는 적어도 상기 제1 공개/비공개 키 쌍의 상기 공개 키를 수신하고 상기 공개 키를 상기 IoT 서비스로 전달하고,
    제2 공개/비공개 키 쌍이 상기 IoT 허브와 관련되고, 상기 IoT 허브는 적어도 상기 제2 공개/비공개 키 쌍의 상기 공개 키를 상기 IoT 디바이스 및 상기 IoT 서비스에 제공하고,
    상기 IoT 디바이스는 상기 제2 공개/비공개 키 쌍의 상기 공개 키를 사용하여 상기 IoT 허브로 향하는 통신들을 암호화하고, 상기 IoT 허브 및 IoT 서비스는 상기 제1 공개/비공개 키 쌍의 상기 공개 키를 사용하여 상기 IoT 디바이스로 향하는 통신들을 암호화하고, 그리고
    커맨드/데이터를 상기 IoT 디바이스로 안전하게 전송하기 위해, 상기 IoT 서비스는 상기 제1 공개/비공개 키 쌍의 상기 공개 키를 사용하여 상기 커맨드/데이터를 암호화하여 암호화된 IoT 디바이스 패킷을 생성하고, 이어서 상기 제2 공개/비공개 키 쌍의 상기 공개 키를 사용하여 상기 IoT 디바이스 패킷을 암호화하여 IoT 허브 패킷을 생성하는, 시스템.
  12. 제11항에 있어서, 상기 로컬 인터페이스는 상기 하나 이상의 암호화 키들을 식별하는 바코드 또는 QR 코드를 판독하기 위한 바코드 또는 QR 코드 판독기를 포함하는, 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제11항에 있어서, 상기 IoT 허브는 상기 제1 및 제2 공개/비공개 키 쌍들의 상기 공개 키들을 상기 IoT 서비스로 안전하게 전달하는, 시스템.
  17. 삭제
  18. 제11항에 있어서, 상기 IoT 서비스는 상기 제1 공개/비공개 키 쌍의 상기 공개 키를 사용하여 각각의 커맨드/데이터와 함께 전송될 서명을 생성하고, 상기 IoT 디바이스는 상기 제1 공개/비공개 키 쌍의 상기 비공개 키를 사용하여 상기 서명을 검증하는, 시스템.
  19. 제11항에 있어서, 상기 IoT 서비스는 상기 IoT 디바이스로 전송되는 각각의 커맨드/데이터와 함께 시퀀스 번호 또는 논스(nonce)를 포함하며, 상기 IoT 디바이스는 상기 시퀀스 번호 또는 논스를 검증하는, 시스템.
  20. 제11항에 있어서, 상기 IoT 허브는 상기 제2 공개/비공개 키 쌍의 상기 비공개 키를 사용하여 상기 IoT 허브 패킷을 해독하여 상기 IoT 디바이스 패킷을 생성하고, 상기 IoT 디바이스 패킷을 상기 IoT 디바이스로 전달하며, 상기 IoT 디바이스는 상기 제1 공개/비공개 키 쌍의 상기 비공개 키를 사용하여 상기 IoT 디바이스 패킷을 해독하는, 시스템.
  21. 제11항에 있어서, 상기 로컬 인터페이스는 블루투스 저에너지(LE) 통신 채널 또는 WiFi 통신 채널을 포함하는, 시스템.
  22. 제10항에 있어서, 상기 암호화 키들은 상기 IoT 디바이스 및 IoT 허브에 의해 공유되는 대칭 암호화 키들을 포함하는, 시스템.
  23. 방법으로서,
    사물 인터넷(IoT) 허브 - 상기 IoT 허브는 광역 네트워크(WAN)를 통해 상기 IoT 허브를 IoT 서비스에 결합하기 위한 네트워크 인터페이스를 포함함 - 를 제공하는 단계;
    IoT 디바이스와의 암호화된 통신을 설정하는 데 사용 가능한 하나 이상의 암호화 키들을 포함하도록 상기 IoT 허브에 의해 식별 디바이스를 프로그래밍하는 단계; 및
    상기 IoT 허브에 의한 상기 식별 디바이스의 프로그래밍 후에 IoT 디바이스를 상기 식별 디바이스와 인터페이싱하는 단계
    를 포함하며,
    일단 상기 식별 디바이스가 프로그래밍되고 상기 IoT 디바이스와 인터페이싱되면, 상기 IoT 디바이스는 상기 하나 이상의 키들을 사용하여 상기 IoT 허브 및 상기 IoT 서비스와의 보안 통신 채널을 설정하고,
    상기 식별 디바이스를 프로그래밍하는 것은 공개/비공개 키 쌍을 생성하고 적어도 상기 공개/비공개 키 쌍의 상기 비공개 키를 상기 식별 디바이스 상에 저장하는 것을 포함하고,
    상기 식별 디바이스를 프로그래밍하는 것은 적어도 상기 공개 키를 상기 IoT 허브 상의 보안 저장소에 저장하는 것을 추가로 포함하고,
    상기 IoT 허브는, 대응하는 서명을 갖는 상기 공개 키를 상기 네트워크 인터페이스를 통해 상기 IoT 서비스로 안전하게 전달하고, 또한 상기 IoT 허브와 관련되고 IoT 허브 비공개 키에 대응하는 IoT 허브 공개 키를 상기 IoT 서비스로 안전하게 전달하고 ― 상기 IoT 허브 공개 키는 대응하는 서명을 가짐 ―, 그리고
    커맨드/데이터를 상기 IoT 디바이스로 안전하게 전송하기 위해, 상기 IoT 서비스는 상기 커맨드/데이터를 암호화하고, 상기 공개 키를 사용하여 제1 서명을 생성하여 암호화된 IoT 디바이스 패킷을 생성하고, 이어서 상기 IoT 디바이스 패킷을 암호화하고, 상기 IoT 허브 공개 키를 사용하여 제2 서명을 생성하여 IoT 허브 패킷을 생성하는, 방법.
  24. 제23항에 있어서, 상기 식별 디바이스는 가입자 식별 모듈(SIM)을 포함하는, 방법.
  25. 제23항에 있어서, 상기 식별 디바이스는 상기 IoT 디바이스에 부착된, 방법.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
KR1020177019906A 2014-12-18 2015-12-14 사물 인터넷 플랫폼, 장치, 및 방법 KR102520088B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/575,463 2014-12-18
US14/575,535 2014-12-18
US14/575,463 US9832173B2 (en) 2014-12-18 2014-12-18 System and method for securely connecting network devices
US14/575,535 US20160180100A1 (en) 2014-12-18 2014-12-18 System and method for securely connecting network devices using optical labels
PCT/US2015/065539 WO2016100200A1 (en) 2014-12-18 2015-12-14 Internet of things platforms, apparatuses, and methods

Publications (2)

Publication Number Publication Date
KR20170097143A KR20170097143A (ko) 2017-08-25
KR102520088B1 true KR102520088B1 (ko) 2023-04-07

Family

ID=56127426

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177019906A KR102520088B1 (ko) 2014-12-18 2015-12-14 사물 인터넷 플랫폼, 장치, 및 방법

Country Status (4)

Country Link
JP (1) JP6596091B2 (ko)
KR (1) KR102520088B1 (ko)
CN (1) CN107111515B (ko)
WO (1) WO2016100200A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10863234B2 (en) 2009-03-03 2020-12-08 Mobilitie, Llc System and method for secure appliance operation
US10798216B2 (en) * 2016-10-15 2020-10-06 Microsoft Technology Licensing, Llc Automatic provisioning of IoT devices
KR101857392B1 (ko) 2017-01-03 2018-06-19 주식회사 엘지화학 변성 공액디엔계 중합체 제조방법
US20180375665A1 (en) * 2017-06-21 2018-12-27 Microsoft Technology Licensing, Llc Device provisioning
US11374760B2 (en) 2017-09-13 2022-06-28 Microsoft Technology Licensing, Llc Cyber physical key
KR102024376B1 (ko) * 2017-12-14 2019-09-23 아주대학교산학협력단 사물 인터넷 장치의 부트스트랩 방법
BR102019007103A2 (pt) * 2018-04-09 2019-10-22 Mobilitie LLC sistema
EP3788809A1 (en) * 2018-05-03 2021-03-10 Telefonaktiebolaget Lm Ericsson (Publ) Device enrollment using serialized application
RU2695487C1 (ru) * 2018-09-26 2019-07-23 Олег Дмитриевич Гурин Способ и система обеспечения взаимодействия устройств интернета вещей (iot)
US10798572B2 (en) 2018-10-25 2020-10-06 Ioxt, Llc System and method for secure appliance operation
CN113518056A (zh) * 2020-04-09 2021-10-19 武汉慧禹信息科技有限公司 一种物联网链路安全传输方法
WO2022186654A1 (ko) * 2021-03-04 2022-09-09 주식회사 센스톤 Iot 디바이스의 보안을 위해 생성된 인증용가상코드의 검증을 위한 심카드 장치
EP4303799A4 (en) * 2021-03-04 2024-04-24 Ssenstone Inc SIM CARD DEVICE FOR VERIFYING A VIRTUAL AUTHENTICATION CODE GENERATED FOR THE SECURITY OF AN IOT DEVICE

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122083A1 (en) 2008-11-10 2010-05-13 Samsung Electronics Co., Ltd. Method and apparatus for securely communicating personal health information
US20150113592A1 (en) 2013-10-17 2015-04-23 Arm Ip Limited Method of establishing a trusted identity for an agent device
US20150121470A1 (en) 2013-10-25 2015-04-30 Qualcomm Incorporated Peer-to-peer onboarding of internet of things (iot) devices over various communication interfaces

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7165180B1 (en) * 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
JP3802023B2 (ja) * 2003-10-24 2006-07-26 松下電器産業株式会社 通信販売方法
CA2644772A1 (en) * 2006-03-16 2007-09-20 British Telecommunications Public Limited Company Methods, apparatuses and software for authentication of devices temporarily provided with a sim to store a challenge-response
EP1881664B1 (en) * 2006-07-17 2008-10-15 Research In Motion Limited Automatic management of security information for a security token access device with multiple connections
WO2009111522A1 (en) * 2008-03-04 2009-09-11 Alcatel-Lucent Usa Inc. System and method for securing a base station using sim cards
US8996885B2 (en) * 2008-10-02 2015-03-31 Broadcom Corporation Secure virtual machine manager
JP5250456B2 (ja) * 2009-03-10 2013-07-31 株式会社日立製作所 通信機器システム及びカード型機器
US9729516B2 (en) * 2010-04-09 2017-08-08 Gemalto Sa Method of machine-to-machine communication
CN102238203A (zh) * 2010-04-23 2011-11-09 中兴通讯股份有限公司 一种实现物联网业务的方法及系统
US20120280790A1 (en) * 2011-05-02 2012-11-08 Apigy Inc. Systems and methods for controlling a locking mechanism using a portable electronic device
ES2535386T3 (es) * 2011-06-08 2015-05-11 Giesecke & Devrient Gmbh Procedimientos y dispositivos para gestión durante la comunicación (OTA) de módulos de identificación de abonado
US9105025B2 (en) * 2011-10-17 2015-08-11 Capital One Financial Corporation Enhanced near field communications attachment
CN202364249U (zh) * 2011-11-07 2012-08-01 曹庆瑞 家居物联智能管理系统
US20130342314A1 (en) * 2012-06-22 2013-12-26 Gun Chen Smart lock structure and operating method thereof
JP6437433B2 (ja) * 2012-07-09 2018-12-12 デバイオテック・ソシエテ・アノニム 医療デバイスとその遠隔デバイスの間の保護された通信
US20140038526A1 (en) * 2012-08-03 2014-02-06 Louis C. ENNIS Mobile Social Media Platform and Devices
WO2014148960A1 (en) * 2013-03-22 2014-09-25 Telefonaktiebolaget L M Ericsson (Publ) Communication apparatus, control method thereof, and computer program thereof
US9930142B2 (en) * 2013-05-24 2018-03-27 Hand Held Products, Inc. System for providing a continuous communication link with a symbol reading device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122083A1 (en) 2008-11-10 2010-05-13 Samsung Electronics Co., Ltd. Method and apparatus for securely communicating personal health information
US20150113592A1 (en) 2013-10-17 2015-04-23 Arm Ip Limited Method of establishing a trusted identity for an agent device
US20150121470A1 (en) 2013-10-25 2015-04-30 Qualcomm Incorporated Peer-to-peer onboarding of internet of things (iot) devices over various communication interfaces

Also Published As

Publication number Publication date
JP6596091B2 (ja) 2019-10-23
JP2018504033A (ja) 2018-02-08
KR20170097143A (ko) 2017-08-25
CN107111515A (zh) 2017-08-29
WO2016100200A1 (en) 2016-06-23
CN107111515B (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
US9832173B2 (en) System and method for securely connecting network devices
US9894473B2 (en) System and method for securely connecting network devices using optical labels
KR102520088B1 (ko) 사물 인터넷 플랫폼, 장치, 및 방법
US11683307B2 (en) System and method for automatic wireless network authentication
US11626974B2 (en) System and method for securely configuring a new device with network credentials
US10613499B2 (en) System and method for virtual internet of things (IoT) devices and hubs
JP7075345B2 (ja) モノのインターネット(IoT)システムにおける自動的無線ネットワーク認証のためのシステム及び方法
US10841759B2 (en) Securely providing a password using an internet of things (IoT) system
US11855839B2 (en) System and method for pre-enrollment and network pre-configuration of internet of things (IoT) devices
US10291595B2 (en) System and method for securely connecting network devices
JP7122964B2 (ja) モノのインターネット(IoT)システムに安全な通信チャネルを確立するための装置及び方法
US20160349127A1 (en) System and method for using internet of things (iot) devices to capture and play back a massage
US20230379169A1 (en) Apparatus and method for cryptographically securing unpowered or non-electronic iot devices

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