KR20190034053A - 보안 부품을 포함하는 장치 및 그것에 보안 정보를 주입하는 방법 - Google Patents

보안 부품을 포함하는 장치 및 그것에 보안 정보를 주입하는 방법 Download PDF

Info

Publication number
KR20190034053A
KR20190034053A KR1020180018066A KR20180018066A KR20190034053A KR 20190034053 A KR20190034053 A KR 20190034053A KR 1020180018066 A KR1020180018066 A KR 1020180018066A KR 20180018066 A KR20180018066 A KR 20180018066A KR 20190034053 A KR20190034053 A KR 20190034053A
Authority
KR
South Korea
Prior art keywords
security
data
server
information
communication
Prior art date
Application number
KR1020180018066A
Other languages
English (en)
Other versions
KR102477263B1 (ko
Inventor
김정태
강보경
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/121,763 priority Critical patent/US10951653B2/en
Publication of KR20190034053A publication Critical patent/KR20190034053A/ko
Application granted granted Critical
Publication of KR102477263B1 publication Critical patent/KR102477263B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • 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/602Providing cryptographic facilities or services
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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

Landscapes

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

Abstract

본 개시의 예시적 실시예에 따라 서버와의 통신을 통해서 보안 정보가 주입되는 장치는, 서버로부터 보안 데이터를 수신하도록 구성된 통신 인터페이스, 및 보안 저장소 및 보안 데이터에 기초하여 보안 저장소에 보안 정보를 저장하도록 구성된 컨트롤러를 포함하는 보안 부품을 포함할 수 있다. 통신 인터페이스는, 보안 부품의 고유 정보에 기초하여 제1 암호화 프로토콜에 따라 서버와 상호(mutual) 인증하도록 구성된 표현(presentation) 계층 핸들러, 및 제2 암호화 프로토콜에 따라 서버에 보안 데이터를 요청하고 수신하도록 구성된 응용(application) 계층 핸들러를 포함할 수 있다.

Description

보안 부품을 포함하는 장치 및 그것에 보안 정보를 주입하는 방법{APPARATUS INCLUDING SECURE COMPONENT AND METHOD FOR PROVISIONING OF SECURITY INFORMATION TO THE SAME}
본 개시의 기술적 사상은 보안 정보의 주입에 관한 것으로서, 자세하게는 보안 부품을 포함하는 장치 및 장치에 보안 정보를 주입하는 방법에 관한 것이다.
외부의 부적절한 접근으로부터 보호되어야 하는 보안 정보는 다양한 방식으로 장치에 포함될 수 있다. 예를 들면, 보안 부품의 사용자는 보안 정보가 포함된 보안 부품을 부품 공급자로부터 공급받을 수도 있고, 또는 보안 부품을 포함하는 장치의 생산 단계에서 보안 정보를 보안 부품에 주입할 수도 있다. 전자의 방식은 상대적으로 안전하게 보안 정보를 장치에 포함시킬 수 있는 한편, 보안 부품의 공급자에 대한 보안 정보의 노출이 불가피할 뿐만 아니라 보안 부품의 사용환경 변화에 따른 보안 정보의 변경이 용이하지 아니할 수 있다. 후자의 방식은 보안 정보의 변경이 용이할 수 있는 한편, 보안 정보의 주입을 위한 인터페이스에 기인하여 장치 외부의 부적절한 접근에 대한 보안 정보의 보호가 취약할 수 있다. 또한, 장치의 사용자에 의해서 장치가 사용되는 중에 보안 정보의 갱신 또는 추가가 필요할 수도 있다.
본 개시의 기술적 사상은, 외부의 부적절한 접근으로부터 보호되는 보안 정보를 안전하게 장치에 주입하기 위한 장치 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따라 서버와의 통신을 통해서 보안 정보가 주입되는 장치는, 서버로부터 보안 데이터를 수신하도록 구성된 통신 인터페이스, 및 보안 저장소 및 보안 데이터에 기초하여 보안 저장소에 보안 정보를 저장하도록 구성된 컨트롤러를 포함하는 보안 부품을 포함할 수 있다. 통신 인터페이스는, 보안 부품의 고유 정보에 기초하여 제1 암호화 프로토콜에 따라 서버와 상호(mutual) 인증하도록 구성된 표현(presentation) 계층 핸들러, 및 제2 암호화 프로토콜에 따라 서버에 보안 데이터를 요청하고 수신하도록 구성된 응용(application) 계층 핸들러를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라, 서버와의 통신을 통해서 보안 부품을 포함하는 장치에 보안 정보를 주입하기 위한 방법은, 보안 부품의 고유 정보를 획득하는 단계, 통신의 표현(presentation) 계층에서 제1 암호화 프로토콜에 따라 고유 정보에 기초하여 서버와 상호(mutual) 인증하는 단계, 통신의 응용(application) 계층에서 제2 암호화 프로토콜에 따라 서버에 보안 데이터를 요청하는 단계, 서버로부터 제2 암호화 프로토콜에 따라 보안 데이터를 수신하는 단계, 및 수신된 보안 데이터에 기초하여 보안 부품에 보안 정보를 저장하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따라, 서버 및 장치 사이 통신에 의해서 장치에 보안 정보를 주입하기 위한 방법은, 서버에서 보안 데이터를 준비하는 단계, 장치에 포함된 보안 부품의 고유 정보에 기초하여, 통신의 표현(presentation) 계층에서 제1 암호화 프로토콜에 따라 서버 및 장치를 상호(mutual) 인증하는 단계, 장치에서 통신의 응용(application) 계층에서 제2 암호화 프로토콜에 따라 보안 데이터를 요청하는 단계, 서버로부터 제2 암호화 프로토콜에 따라 장치로 보안 데이터를 전송하는 단계, 및 장치에서 보안 데이터에 기초하여 보안 정보를 보안 부품에 저장하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 보안 정보의 주입을 위한 장치 및 방법에 의하면, 보안 부품의 사용자 또는 장치의 생산자의 제어 하에서 보안 정보가 장치에 안전하게 주입될 수 있다.
또한, 본 개시의 기술적 사상에 따른 보안 정보의 주입을 위한 장치 및 방법에 의하면, 보안 부품 사용자에 의한 보안 부품을 포함하는 장치의 활용도가 향상될 수 있고, 장치의 출하 후 보안 정보의 추가 및/또는 변경이 용이하게 가능할 수 있다.
또한, 본 개시의 기술적 사상에 따른 보안 정보의 주입을 위한 장치 및 방법에 의하면, 예비적인 보안 정보를 포함하는 보안 부품의 생산이 방지됨으로써 보안 부품의 공급자에 의한 보안 부품의 생산성이 향상될 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따라 장치 및 서버를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따라 도 1의 장치 및 서버 사이 통신의 프로토콜 스택(stack)을 나타내는 도면이다.
도 3은 본 개시의 예시적 실시예에 따라 보안 정보를 주입하기 위한 동작을 시간의 흐름에 따라 나타내는 도면이다.
도 4a 및 도 4b는 본 개시의 예시적 실시예들에 따라 도 3의 단계 S10a의 예시들을 나타내는 순서도들이다.
도 5는 본 개시의 예시적 실시예에 따라 보안 정보를 주입하기 위한 동작을 시간의 흐름에 따라 나타내는 도면이다.
도 6은 본 개시의 예시적 실시예에 따라 도 5의 단계 S10b의 예시를 나타내는 도면이다.
도 7은 본 개시의 예시적 실시예에 따라 보안 정보를 주입하기 위한 방법을 나타내는 순서도이다.
도 8은 본 개시의 예시적 실시예에 따라 도 7의 단계 S140의 예시를 나타낸다.
도 9는 본 개시의 예시적 실시예에 따라 도 1의 장치의 예시를 나타내는 블록도이다.
도 10은 본 개시의 예시적 실시예에 따라 도 9의 IoT 기기의 하드웨어 및 소프트웨어의 예시적인 구조를 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따른 보안 부품을 포함하는 장치가 사용되는 네트워크 시스템을 나타내는 도면이다.
도 1은 본 개시의 예시적 실시예에 따라 장치(100) 및 서버(200)를 나타내는 블록도이다. 도 1에 도시된 바와 같이, 장치(100)는 서버(200)와 통신함으로써 서버(200)로부터 보안 데이터(S_DATA)를 수신할 수 있다.
장치(100)는 보안 정보(예컨대, SI1, SI2)를 저장하고 처리하는 보안 부품(120)을 포함하는 개체(entity)로서, 보안 정보에 기초하여 외부의 요청, 예컨대 인증 요청 등에 응답할 수 있다. 장치(100)는 비제한적인 예시로서, 퍼스널 컴퓨터, 네트워크 서버, 태블릿 PC, e-리더, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 모바일 폰, 스마트 폰, 웨어러블 기기 등과 같이 독립적인 컴퓨팅 장치일 수도 있고, 자동차, 기계 장치, 생산 설비, 도어, 조명 등과 같이 특정한 기능을 제공하는 임의의 대상(object)일 수도 있다. 도 1에 도시된 바와 같이, 장치(100)는 통신 인터페이스(110) 및 보안 부품(120)을 포함할 수 있다. 장치(100)에 포함되는 구성요소들로서, 통신 인터페이스(110) 및 보안 부품(120) 각각은 논리 합성 등을 통해서 설계되는 로직 블록을 포함할 수도 있고, 프로세서에 의해서 실행되는 소프트웨어 블록을 포함할 수도 있다.
장치(100)는 장치(100)에 포함된 통신 인터페이스(110)를 통해서 다른 장치, 예컨대 서버(200) 또는 장치(100)와 유사한 다른 장치 등과 통신할 수 있다. 예를 들면, 장치(100)는 통신 인터페이스(110)를 통해서, 예컨대 LTE(Long Term Evolution) 시스템, CDMA(Code Division Multiple Access) 시스템, GSM(Global System for Mobile Communications) 시스템 등과 같은 이동 통신(mobile telecommunication) 시스템에 접속할 수도 있고, WAN(wide area network), LAN(local area network), WLAN(wireless local area network) 등과 같이 통신 네트워크에 접속할 수도 있고, 사물 인터넷(Internet of Things; IoT)에 접속할 수도 있다. 일부 실시예들에서, 통신 인터페이스(110)는 하나 이상의 통신 방식을 지원할 수도 있다. 이하에서, 장치(100)는 서버(200)와 통신하는 클라이언트로서 지칭될 수도 있다.
보안 정보(예컨대, SI1, SI2)는 장치(100)의 사용자에 관한 개인 정보를 포함할 수도 있고, 장치(100)의 인증을 위한 정보로서 장치(100)의 식별자(ID), 장치(100)의 공급자 정보, 인증서(certificate), 개인 키(private key) 및 사전공유 키(pre-shared key; PSK) 중 적어도 하나를 포함할 수도 있다. 보안 정보에 포함된 장치(100)의 인증을 위한 정보는, 비제한적인 예시로서 장치(100)의 원격 조작, 소프트웨어 업그레이드 등과 같이, 장치(100)의 인증을 필요로 하는 작업에 이용될 수 있다. 예를 들면, 장치(100)가 통신 인터페이스(110)를 통해서 사물 인터넷에 접속하는 경우, 장치(100)에서 스스로 취득된 정보의 통신 인터페이스(110)를 통한 전송 또는 통신 인터페이스(110)를 통해서 외부로부터 수신되는 정보에 대한 신뢰도는 장치(100)의 인증에 기반할 수 있다. 이에 따라, 보안 정보가 정당하지 아니한 시도에 기인하여 노출, 삭제 또는 변경되는 것을 방지하기 위하여, 장치(100) 외부의 부적절한 접근으로부터 보안 정보는 안전하게 보호될 필요가 있다.
보안 부품(120)은 도 1에 도시된 바와 같이, 컨트롤러(121) 및 보안 저장소(122)를 포함할 수 있고, 보안 정보는 보안 저장소(122)에 저장될 수 있다. 보안 저장소(122)는 보안 부품(120)에 공급되는 전력이 차단되더라도 저장된 데이터를 소실하지 아니하는 비휘발성 메모리로서, 비제한적인 예시로서 EEPROM(non-volatile memory such as a Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등을 포함할 수 있다.
보안 부품(120)에 보안 정보를 주입(또는 저장)하기 위하여, 보안 부품(120)의 생산 단계에서 보안 부품(120)에 보안 정보가 주입되는 경우, 보안 부품(120)의 사용자(예컨대, 장치(100)의 공급자 또는 생산자)에 의한 보안 부품(120)의 활용도가 감소할 뿐만 아니라, 보안 부품(120)의 공급자에 의한 보안 부품(120)의 생산 효율이 감소할 수 있다. 예를 들면, 장치(100)가 통신 인터페이스(110)를 통해서 사물 인터넷에 접속되는 경우와 같이, 다양한 사용 환경들에 적합하도록 장치(100)가 공급될 필요가 있는 경우, 보안 부품(120)에 포함된 보안 정보의 수정이 용이하지 아니함에 기인하여 보안 부품(120)의 사용자에 의한 보안 부품(120)의 활용도는 감소할 수 있다. 또한, 보안 정보의 주입을 위한 공정 및 예비적으로 주입된 보안 부품(120)의 준비 등에 기인하여, 보안 부품(120)의 공급자(또는 생산자)에 의한 보안 부품(120)의 생산 효율은 감소할 수 있다.
장치(100)의 생산 과정뿐만 아니라, 보안 부품(120)의 사용자에 의해서 장치(100)가 장치(100)의 사용자에게 제공된 후, 보안 정보의 추가 및/또는 변경이 필요할 수 있다. 예를 들면, 보안 정보가 인증서를 포함하는 경우, 인증서는 주기적으로 갱신될 필요가 있고, 이에 따라 새로운 보안 정보를 장치(100)에 주입하는 것이 요구될 수 있다. 예를 들면, 도 1에 도시된 바와 같이, 보안 부품(120)은 제1 보안 정보(SI1) 및 제2 보안 정보(SI2)를 포함할 수 있고, 제2 보안 정보(SI2)는 장치(100)의 출하 후 장치(100)에 주입된 보안 정보일 수 있다.
후술되는 바와 같이, 본 개시의 예시적 실시예들에 따른 보안 정보의 주입을 위한 장치(100) 및 방법에 의하면, 보안 정보는 보안 부품(120)에 안전하게 사후적으로(예컨대, 보안 부품(120)의 출하 후) 주입될 수 있고, 이에 따라 보안 부품(120)의 사용자 및 공급자뿐만 아니라 장치(100)의 사용자 모두가 유리할 수 있다. 본 명세서에서, 보안 부품(120)의 공급자는 보안 부품(120)을 공급하는 보안 부품(120)의 생산자를 포함할 수 있다. 본 명세서에서, 보안 부품(120)의 사용자는 보안 부품(120)을 사용하여 장치(100)를 공급하는, 장치(100)의 공급자 및/또는 생산자를 포함할 수도 있고, 보안 부품(120)을 포함하는 장치(100)를 (예컨대, 커스텀화하여) 사용하는 개발자 및/또는 사용자를 포함할 수도 있다. 또한, 본 명세서에서, 장치(100)의 사용자는 장치(100)의 공급자에 의해서 제공된 장치(100)의 사용자를 포함할 수 있다.
서버(200)는, 보안 정보를 포함하거나 또는 보안 정보로부터 생성된, 보안 데이터(S_DATA)를 장치(100)에 제공할 수 있다. 서버(200)는 보안 정보의 주입을 위하여 보안 부품(120)의 사용자, 예컨대 장치(100)의 공급자 또는 공급자에 의해서 지정된 서버(200)의 운영자에 의해서 운영될 수 있다. 예를 들면, 서버(200)는 장치(100)의 생산 과정에서 보안 데이터(S_DATA)를 제공할 수도 있고, 장치(100)가 출하된 이후 보안 데이터(S_DATA)를 제공할 수도 있다. 도 2를 참조하여 후술되는 바와 같이, 장치(100) 및 서버(200)는 복수의 계층들에 대응하는 통신 프로토콜들에 따라 통신할 수 있고, 보안 데이터(S_DATA)는 암호화 프로토콜(cryptographic protocol)에 따라 서버(200)로부터 장치(100)에 제공될 수 있다. 일부 실시예들에서, 서버(200)는 보안 정보를 획득할 수 있고, 보안 정보를 암호화함으로써 보안 데이터(S_DATA)를 생성할 수 있다. 보안 부품(120)의 컨트롤러(121)는 통신 인터페이스(110)를 통해서 서버(200)로부터 보안 데이터(S_DATA)를 수신할 수 있고, 보안 데이터(S_DATA)로부터 보안 정보(예컨대, SI2)를 생성하여 보안 저장소(122)에 저장할 수 있다.
보안 부품(120)은 고유 정보를 포함할 수 있고, 보안 부품(120)의 고유 정보는 다른 보안 부품의 고유 정보와 상이할 수 있다. 일부 실시예들에서, 보안 부품(120)의 고유 정보는, (예컨대, 보안 부품(120)의 생산시) 보안 부품(120)의 공급자에 의해서 보안 부품(120)에 주입될 수 있다. 일부 실시예들에서, 보안 부품(120)의 고유 정보는, (예컨대, 장치(100)의 생산시) 보안 부품(120)의 사용자에 의해서 보안 부품(120)에 주입될 수 있다. 일부 실시예들에서, 보안 부품(120)의 고유 정보는 인증서(certificate), 개인 키(private key) 및 사전공유 키(pre-shared key; PSK) 중 적어도 하나를 포함할 수도 있다.
보안 부품(120)의 고유 정보는, 일부 실시예들에서 제1 보안 정보(SI1)로서 보안 저장소(122)에 저장될 수도 있다. 컨트롤러(121)는, 보안 부품(120)의 고유 정보로서 제1 보안 정보(SI1)를 획득할 수 있고, 제1 보안 정보(SI1)를 통신 인터페이스(110)에 제공할 수 있다. 통신 인터페이스(110)는 제1 보안 정보(SI1)에 기초하여 암호화 프로토콜에 따라 서버(200)와 상호(mutual) 인증을 수행할 수 있다. 일부 실시예들에서, 고유 정보는 컨트롤러(121)에 포함될 수도 있다.
이하에서 도면들을 참조하여 후술되는 바와 같이, 보안 부품(120)의 고유 정보가 장치(100) 및 서버(200)의 상호 인증에 사용됨에 따라, 서버(200)가 장치(100)를 인증하기 위하여 정보, 예컨대 장치(100)의 식별자(ID) 및/또는 패스워드의 제공이 생략될 수 있고, 그러한 정보의 노출이 방지됨으로써 보안 데이터(S_DATA)를 장치(100)에 전송하기 위한 높은 보안 수준이 달성될 수 있다. 이하에서, 제1 보안 정보(SI1)는 보안 부품(120)의 고유 정보로서 지칭될 수 있고, 제2 보안 정보(SI2)는 신규 보안 정보로서 지칭될 수 있다.
도 2는 본 개시의 예시적 실시예에 따라 도 1의 장치(100) 및 서버(200) 사이 통신의 프로토콜 스택(stack)을 나타내는 도면이다. 구체적으로 도 2는, 장치(100) 및 서버(200) 사이 통신의 프로토콜 스택에서 일부 계층들, 즉 표현(presentation) 계층 및 응용(application) 계층을 나타낸다. 이하에서, 도 2는 도 1을 참조하여 설명될 것이다.
도 2를 참조하면, 장치(100) 및 서버(200)는 표현 계층에서 제1 프로토콜에 따라 통신할 수 있고, 표현 계층의 상위 계층인 응용 계층에서 제2 프로토콜에 따라 통신할 수 있다. 표현 계층은, 코드들 사이 번역을 담당할 수 있고, 데이터의 형식상 차이를 처리함으로써 응용 계층으로부터 상이한 코드들을 처리하는 부담을 제거할 수 있다. 일부 실시예들에서, 표현 계층에서 정의된 제1 프로토콜은 암호화 프로토콜로서 TLS(Transport Layer Security)일 수 있다. TLS는 응용 계층 및 TCP 전송 계층 사이에서 안전한 보안 채널을 형성하는데 사용될 수 있고, 후술되는 바와 같이, EST(Enrollment over Secure Transport)는 하위 계층의 프로토콜로서 TLS를 사용할 수 있다.
응용 계층은 응용 프로세스와 관계될 수 있고, 응용 서비스를 수행할 수 있다. 예를 들면, 응용 계층은 소프트웨어 어플리케이션과 상호작용할 수 있고, 응용 계층의 기능들은, 통신 상대방의 식별, 사용가능 리소스의 결정, 통신의 동기화 등을 포함할 수 있다. 일부 실시예들에서, 응용 계층에서 정의된 제2 프로토콜은 암호화 프로토콜로서 EST(Enrollment over Secure Transport)일 수 있다. EST는, 클라이언트 인증서 및 CA(Certificate Authority) 인증서를 필요로 하는 PKI(Public Key Infrastructure) 클라이언트들을 위한 인증서의 관리에 사용되는 암호화 프로토콜을 지칭할 수 있다. EST는 서버 및 클라이언트의 인증에 TLS에 의한 인증을 이용할 수 있고, 서버 및 클라이언트는 TLS 핸드셰이킹(handshaking)에 의해서 상호 인증될 수 있다.
EST는 TLS-기반 서버 인증 및 TLS-기반 클라이언트 인증을 정의하고, 또한 인증서가 없는 TLS 상호 인증(certificate-less TLS mutual Authentication)을 정의한다. 인증서가 없는 TLS 상호 인증의 경우, 서버 및 클라이언트는 상호 인증을 위하여, 인증서가 없는 암호화 스위트(certificate-less cipher suite)를 협상할 수 있다. 이를 위하여, 클라이언트는, 예컨대 서버로부터 식별자(ID) 및/또는 패스워드를 요청하거나 수신할 수 있다. 도 1을 참조하여 전술된 바와 같이, 보안 부품(120)은 고유 정보를 포함할 수 있고, 장치(100)는 보안 부품(120)의 고유 정보를 사용하여 EST에서 정의하는 TLS-기반 클라이언트 인증을 수행함으로써, 인증서가 없는 TLS 상호 인증이 배제될 수 있다. 이에 따라 서버(200) 및 장치(100)의 상호 인증이 완료될 수 있고, 보안 데이터(S_DATA)가 안전하게 장치(100)로 제공될 수 있다.
도 2를 참조하면, 도 1의 통신 인터페이스(110)의 예시로서, 도 2의 통신 인터페이스(110')는 제1 핸들러(H11) 및 제2 핸들러(H12)를 포함할 수 있다. 제1 핸들러(H11)는 표현 계층 핸들로로서 지칭될 수 있고, 보안 부품(120)의 고유 정보에 기초하여 제1 프로토콜(또는 제1 암호화 프로토콜)에 따라 서버(200)와 상호 인증을 수행할 수 있다. 또한, 제2 핸들러(H12)는 어플리케이션 핸들러로서 지칭될 수도 있고, 제2 프로토콜(또는 제2 암호화 프로토콜)에 따라 서버(200)에 보안 데이터(S_DATA)를 요청하고 서버(200)로부터 보안 데이터(S_DATA)를 수신할 수 있다. 장치(100)와 유사하게, 도 2에 도시된 바와 같이, 서버(200) 또한 제1 프로토콜 및 제2 프로토콜에 따라 통신을 수행하는 핸들러들(H21, H22)을 포함할 수 있다. 이하에서, 본 개시의 예시적 실시예들에서 표현 계층의 제1 프로토콜이 TLS이고 응용 계층의 제2 프로토콜이 EST인 것으로 가정되나, 본 개시의 예시적 실시예들이 이에 제한되지 아니하는 점은 이해될 것이다.
도 3은 본 개시의 예시적 실시예에 따라 보안 정보를 주입하기 위한 동작을 시간의 흐름에 따라 나타내는 도면이다. 구체적으로, 도 3은 장치(100a)와 서버(200a)의 내부 동작들 및 장치(100a)와 서버(200a) 사이에서 전송되는 신호들을 시간의 흐름에 따라 나타낸다. 일부 실시예들에서, 도 3의 장치(100a)는 도 1의 장치(100)와 같이 통신 인터페이스(110) 및 보안 부품(120)을 포함할 수 있고, 보안 부품(120)은 컨트롤러(121) 및 보안 저장소(122)를 포함할 수 있다. 이하에서 도 3은 도 1 및 도 2를 참조하여 설명될 것이다.
단계 S10a에서, 서버(200a)는 보안 데이터(S_DATA)를 준비하는 동작을 수행할 수 있다. 보안 데이터(S_DATA)는 장치(100a)에 전송되는 데이터로서, 보안 정보를 포함하거나 보안 정보로부터 생성될 수 있다. 예를 들면, 서버(200a)는 보안 정보를 암호화함으로써 보안 데이터(S_DATA)를 생성할 수 있다. 단계 S10a의 예시들은 도 4a 및 도 4b를 참조하여 후술될 것이다.
단계 S20a에서, 장치(100a)는 고유 정보를 획득하는 동작을 수행할 수 있다. 도 1을 참조하여 전술된 바와 같이, 고유 정보는 보안 부품(120)에 포함될 수 있고, 다른 보안 부품에 포함된 고유 정보와 상이할 수 있다. 예를 들면, 컨트롤러(121)는 보안 저장소(122)로부터 고유 정보로서 제1 보안 정보(SI1)를 독출할 수 있다.
단계 S30a에서, 장치(100a) 및 서버(200a)는 상호(mutual) 인증을 수행할 수 있다. 일부 실시예들에서, 장치(100a) 및 서버(200a)는 표현 계층의 제1 암호화 프로토콜, 예컨대 TLS의 TLS 핸드셰이킹에 따라 상호 인증을 수행할 수 있다. TLS 핸드셰이킹에서, 장치(100a)는 단계 S20a에서 획득된 고유 정보를 장치(100a)의 인증에 사용할 수 있다. 예를 들면, 고유 정보는 인증서 및 키 페어(key pair) 중 적어도 하나를 포함할 수 있고, 장치(100a)는 서버(200a)가 장치(100a)를 인증하는데 이러한 고유 정보를 사용할 수 있다. 이에 따라, EST에서 정의된, 인증서가 없는 TLS 상호 인증이 배제될 수 있다.
단계 S40a에서, 장치(100a)는 서버(200a)에 보안 데이터(S_DATA)를 요청하는 동작을 수행할 수 있다. 일부 실시예들에서, 통신 인터페이스(110)는 응용 계층의 제2 암호화 프로토콜, 예컨대 EST에 따라 보안 데이터(S_DATA)를 요청할 수 있다.
단계 S50a에서, 서버(200a)는 보안 데이터(S_DATA)를 전송할 수 있다. 일부 실시예들에서, 서버(200a)는 단계 S40a의 요청에 응답하여, 응용 계층의 제2 암호화 프로토콜, 예컨대 EST에 따라 보안 데이터(S_DATA)를 전송할 수 있다. 장치(100a)의 통신 인터페이스(110)는 서버(200a)로부터 보안 데이터(S_DATA)를 수신할 수 있고, 컨트롤러(121)에 보안 데이터(S_DATA)를 전달할 수 있다.
단계 S60a에서, 장치(100a)는 보안 정보를 생성하고 저장하는 동작을 수행할 수 있다. 예를 들면, 컨트롤러(121)는 단계 S50a에서 수신된 보안 데이터(S_DATA)를 복호화(decryption)함으로써 보안 정보를 생성할 수 있고, 보안 정보를 보안 저장소(122)에 저장할 수 있다.
도 4a 및 도 4b는 본 개시의 예시적 실시예들에 따라 도 3의 단계 S10a의 예시들을 나타내는 순서도들이다. 도 3을 참조하여 전술된 바와 같이, 도 4a 및 도 4b의 단계들(S10a', S10a")에서, 서버(200a)는 보안 데이터(S_DATA)를 준비하는 동작을 수행할 수 있다. 이하에서, 도 4a 및 도 4b는 도 1을 참조하여 설명될 것이며, 도 4a 및 도 4b에 대한 설명 중 중복되는 내용은 생략될 것이다.
도 4a를 참조하면, 단계 S10a'은 단계 S11 및 단계 S12를 포함할 수 있다. 단계 S11에서, 소스 정보를 수신하는 동작이 수행될 수 있다. 예를 들면, 보안 부품(120)의 사용자는 장치(100)에 주입하고자 하는 보안 정보로서 소스 정보를 서버(200)에 제공할 수 있다. 소스 정보는, 예컨대 보안 정보의 암호화에 사용되는 키, 장치(100)의 인증에 사용되는 키, 인증서, 키 페어 중 적어도 하나를 포함할 수 있다.
단계 S12에서, 보안 데이터(S_DATA)를 생성하는 동작이 수행될 수 있다. 예를 들면, 서버(200)는 단계 S11에서 수신된 소스 정보 중 적어도 일부를 암호화함으로써 보안 데이터(S_DATA)를 생성할 수 있다. 이에 따라, 서버(200)는 보안 데이터(S_DATA)를 준비할 수 있고, 장치(100)의 요청에 응답하여 보안 데이터(S_DATA)를 장치(100)에 제공할 수 있다.
도 4b를 참조하면, 단계 S10a"은 단계 S13 및 단계 S14를 포함할 수 있다. 도 4a의 단계 S10a'와 비교할 때, 도 4b의 단계 S10a"은 보안 데이터(S_DATA)를 미리 저장할 수 있다. 예를 들면, 도 4a의 단계 S10a'는 장치(100)의 출하 후에 신규 보안 정보를 주입하기 위하여, 신규 보안 정보에 대응하는 보안 부품(120)의 사용자에 의해서 제공되는 소스 정보로부터 보안 데이터(S_DATA)를 생성하는 예시에서 수행될 수 있다. 또한, 예를 들면, 도 4b의 단계 S10a"은, 보안 부품(120)의 사용자로부터 분리된 장치(100)의 생산자에 의해서 장치(100)의 생산 과정에서 보안 부품(120)의 사용자가 운영하는 서버(200)에 미리 저장된 보안 데이터(S_DATA)가 장치(100)에 전송되는 예시에서 수행될 수 있다. 즉, 장치(100)의 생산자에 보안 정보의 노출 없이 보안 데이터(S_DATA)가 장치(100)에 전송될 수 있다.
단계 S13에서, 보안 데이터(S_DATA)를 저장하는 동작이 수행될 수 있다. 예를 들면, 서버(200)는 스토리지를 포함할 수 있고, 보안 데이터(S_DATA)를 스토리지에 저장할 수 있다. 스토리지에 저장되는 보안 데이터(S_DATA)는 서버(200) 외부로부터 보안 부품(120)의 사용자로부터 획득될 수도 있고, 보안 부품(120)의 사용자에 의해서 제공된 소스 정보로부터 서버(200)에서 생성될 수도 있다.
단계 S14에서, 보안 데이터(S_DATA)를 검색하는 동작이 수행될 수 있다. 예를 들면, 서버(200)는 스토리지에 저장된 데이터 중 장치(100)에 전송하고자 하는 보안 데이터(S_DATA)를 검색할 수 있다. 일부 실시예들에서, 스토리지에 저장된 데이터는 보안 데이터(S_DATA)가 암호화된 데이터일 수 있고, 이에 따라 검색된 데이터를 복호화함으로써 보안 데이터(S_DATA)가 생성될 수도 있다.
도 5는 본 개시의 예시적 실시예에 따라 보안 정보를 주입하기 위한 동작을 시간의 흐름에 따라 나타내는 도면이다. 구체적으로, 도 5의 예시는 도 3의 예시와 비교할 때, 장치(100b)의 보안 데이터(S_DATA)에 대한 요청에 응답하여 서버(200b)에서 보안 데이터(S_DATA)가 준비될 수 있다. 일부 실시예들에서, 도 5의 장치(100b)는 도 1의 장치(100)와 같이 통신 인터페이스(110) 및 보안 부품(120)을 포함할 수 있고, 보안 부품(120)은 컨트롤러(121) 및 보안 저장소(122)를 포함할 수 있다. 이하에서 도 5는 도 1 및 도 2를 참조하여 설명될 것이고, 도 5에 대한 설명 중 도 3에 대한 설명과 중복되는 내용은 생략될 것이다.
단계 S20b에서, 장치(100b)는 고유 정보를 획득하는 동작을 수행할 수 있다. 전술된 바와 같이, 고유 정보는 보안 부품(120)의 생산 과정에서 보안 부품(120)에 주입될 수도 있고, 장치(100b)의 생산 과정에서 보안 부품(120)에 주입될 수도 있다.
단계 S30b에서, 장치(100b) 및 서버(200b)는 상호 인증을 수행할 수 있다. 일부 실시예들에서, 장치(100b) 및 서버(200b)는 TLS 핸드셰이킹에 따라 상호 인증할 수 있고, 단계 S20b에서 획득한 고유 정보가 TLS 핸드셰이킹에서 사용될 수 있다. 이에 따라, 장치(100b) 및 서버(200b)는 인증서를 각각 가지고 상호 인증을 수행할 수 있다.
단계 S40b에서, 장치(100b)는 서버(200b)에 보안 데이터(S_DATA)를 요청하는 동작을 수행할 수 있다. 일부 실시예들에서, 장치(100b)는 EST에 따라 CSR(Certificate Signing Request)을 서버(200b)에 전송함으로써 보안 데이터(S_DATA)를 요청할 수 있다. 장치(100b)가 보안 데이터(S_DATA)를 요청하는 동작의 예시는 도 8을 참조하여 후술될 것이다.
단계 S10b에서, 서버(200b)는 보안 데이터(S_DATA)를 준비하는 동작을 수행할 수 있다. 서버(200b)는, 도 3의 예시와 같이 보안 데이터(S_DATA)를 미리 준비하는 대신, 장치(100b)로부터의 보안 데이터(S_DATA)에 대한 요청에 응답하여 보안 데이터(S_DATA)를 준비할 수 있다. 단계 S10b의 예시는 도 6을 참조하여 후술될 것이다.
단계 S50b에서, 서버(200b)는 보안 데이터(S_DATA)를 전송할 수 있다. 일부 실시예들에서, 서버(200b)는 EST에 따라 보안 데이터(S_DATA)를 전송할 수 있다. 그 다음에, 단계 S60b에서, 장치(100b)는 보안 정보를 생성하고 저장할 수 있다. 일부 실시예들에서, 컨트롤러(121)는 보안 데이터(S_DATA)를 복호화함으로서 보안 정보를 생성할 수 있고, 보안 정보를 보안 저장소(122)에 저장할 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 도 5의 단계 S10b의 예시를 나타내는 도면이다. 도 5를 참조하여 전술된 바와 같이, 도 6의 단계 S10b'에서 보안 데이터(S_DATA)를 준비하는 동작이 수행될 수 있다. 구체적으로, 도 6의 단계 S10b'은 도 5의 단계 S40b에서 장치(100b)로부터 수신된 CSR을 응답하여 수행될 수 있다. 도 6에 도시된 바와 같이, 단계 S10b'은 단계 S15 및 단계 S16을 포함할 수 있고, 이하에서 도 6은 도 5를 참조하여 설명될 것이다.
단계 S15에서, CSR을 수신하는 동작이 수행될 수 있다. 예를 들면, 도 5를 참조하여 전술된 바와 같이, 장치(100b) 및 서버(200b)의 상호 인증이 완료된 후, 서버(200b)는 장치(100b)로부터 보안 데이터(S_DATA)에 대한 요청을 수신할 수 있고, 보안 데이터(S_DATA)에 대한 요청은 CSR을 포함할 수 있다.
단계 S16에서, 신규 인증서를 생성하는 동작이 수행될 수 있다. 예를 들면, 서버(200b)는 단계 S15에서 수신된 CSR에 응답하여, 예컨대 도 4a를 참조하여 전술된 소스 정보에 기초하여, 신규 인증서를 생성할 수 있다. 그 다음에, 도 5의 단계 S50b에서, 서버(200b)는 신규 인증서를 포함하는 보안 데이터(S_DATA)를 장치(100b)로 전송할 수 있다. 일부 실시예들에서, 단계 S15에서 수신된 CSR은 공개 키를 포함할 수 있고, 신규 인증서가 CSR에 포함된 공개 키에 의해서 암호화됨으로써 보안 데이터(S_DATA)가 생성될 수 있다.
도 7은 본 개시의 예시적 실시예에 따라 보안 정보를 주입하기 위한 방법을 나타내는 순서도이다. 구체적으로, 도 7은 보안 정보를 주입하기 위하여 도 1의 장치(100)에서 수행되는 동작을 나타내고, 예컨대 도 3 및 도 5의 예시들에서 장치(100a, 100b)의 동작들에 대응할 수 있다. 이하에서 도 7은 도 1을 참조하여 설명될 것이다.
단계 S120에서, 보안 부품(120)의 고유 정보를 획득하는 동작이 수행될 수 있다. 예를 들면, 도 1을 참조하여 전술된 바와 같이, 고유 정보는 제1 보안 정보(SI1)로서 보안 저장소(122)에 저장되어 있을 수 있고, 컨트롤러(121)는 보안 저장소(122)으로부터 제1 보안 정보(SI1)를 획득할 수 있다.
단계 S130에서, 서버(200)와 상호 인증이 수행될 수 있다. 통신 인터페이스(110)는 표현 계층의 제1 암호화 프로토콜, 예컨대 TLS에 따라 서버(200)와의 상호 인증을 수행할 수 있다. 예를 들면, 통신 인터페이스(110)(또는 도 2의 H11)는 협상(negotiation), 인증(authentication) 및 보안 채널 형성을 포함하는 TLS 핸드셰이킹을 수행할 수 있다. 컨트롤러(121)는 단계 S120에서 획득된 고유 정보를 통신 인터페이스(110)에 제공할 수 있고, 통신 인터페이스(110)는 고유 정보에 기초하여 TLS 핸드셰이킹을 수행할 수 있다. 예를 들면, 고유 정보는 인증서 및 키 페어 중 적어도 하나를 포함할 수 있고, 통신 인터페이스(110)는 고유 정보의 적어도 일부를 서버(200)에 제공할 수 있고, 서버(200)는 장치(100)를 인증할 수 있다. 유사하게, 통신 인터페이스(110)는 서버(200)로부터 제공된 인증서를 사용하여 서버(200)를 인증할 수 있다. 이에 따라, 전술된 바와 같이, EST가 정의하는, 인증서가 없는 TLS 상호 인증이 배제될 수 있다.
단계 S140에서, 보안 데이터(S_DATA)를 요청하는 동작이 수행될 수 있다. 통신 인터페이스(110)는 응용 계층의 제2 암호화 프로토콜, 예컨대 EST에 따라 서버(200)에 보안 데이터(S_DATA)를 요청할 수 있다.
단계 S150에서, 보안 데이터(S_DATA)를 수신하는 동작이 수행될 수 있다. 통신 인터페이스(110)는 응용 계층의 제2 암호화 프로토콜, 예컨대 EST에 따라 서버(200)로부터 보안 데이터(S_DATA)를 수신할 수 있다. 보안 데이터(S_DATA)는 서버(200)에 의해서 암호화된 보안 정보를 포함할 수 있다. 통신 인터페이스(110)는 보안 데이터(S_DATA)를 컨트롤러(121)에 전달할 수 있다.
단계 S160에서, 보안 부품(120)에 보안 정보를 주입하는 동작이 수행될 수 있다. 컨트롤러(121)는 통신 인터페이스(110)로부터 보안 데이터(S_DATA)를 수신할 수 있고, 보안 데이터(S_DATA)로부터 보안 정보를 생성할 수 있다. 예를 들면, 컨트롤러(121)는 보안 데이터(S_DATA)를 복호화함으로써 보안 정보를 생성할 수 있고, 보안 정보를 보안 저장소(122)에 저장할 수 있다.
도 8은 본 개시의 예시적 실시예에 따라 도 7의 단계 S140의 예시를 나타낸다. 구체적으로, 도 8의 단계 S140'은 도 5의 예시에서 장치(100b)가 보안 데이터(S_DATA)를 요청하는 단계 S40b의 예시에 대응할 수 있다. 도 8에 도시된 바와 같이, 장치(100b)는 서버(200b)에 CSR(Certificate Signing Request)를 제공할 수 있고, 단계 S140'은 단계 S141 및 단계 S142를 포함할 수 있다. 이하에서 도 8은 도 5 및 도 7을 참조하여 설명될 것이다.
단계 S141에서, 키 페어(key pair)를 생성하는 동작이 수행될 수 있다. PKI(Public Key Infrastructure) 시스템을 위한 EST에서, CSR을 생성하기 전에 장치(100b), 예컨대 컨트롤러(121)는 공개 키(public key) 및 개인 키(private key)를 포함하는 키 페어를 생성할 수 있다. 일부 실시예들에서, 컨트롤러(121)는 사전공유 키(PSK)를 더 생성할 수 있다.
단계 S142에서, 공개 키를 포함하는 CSR을 전송하는 동작이 수행될 수 있다. 예를 들면, 컨트롤러(121)는 단계 S141에서 생성된 공개 키를 통신 인터페이스(110)에 제공할 수 있고, 통신 인터페이스(110)는 공개 키를 포함하는 CSR을 서버(200b)에 제공할 수 있다.
도 8의 단계 S140'이 수행된 후, 예컨대 도 7의 단계 S150에서, 통신 인터페이스(110)는 서버(200b)로부터 신규 인증서를 포함하는 보안 데이터(S_DATA)를 수신할 수 있다. 그 다음에, 예컨대 도 7의 단계 S160에서, 컨트롤러(121)는 신규 인증서 및 단계 S141에서 생성된 키 페어를 포함하는 보안 정보를 생성할 수 있고, 보안 정보를 보안 부품(120)에 저장할 수 있다.
도 9는 본 개시의 예시적 실시예에 따라 도 1의 장치(100)의 예시를 나타내는 블록도이다. 도 9에 도시된 바와 같이, 도 1의 장치(100)의 예시로서 IoT 기기(600)는 사물 인터넷에 접속가능할 수 있고, 어플리케이션 프로세서(Application Processor; AP)(610), 버스(620), 센서(630), 노멀 메모리(640), 보안 메모리(650), 보안 모듈(660), 디스플레이(670), 입출력 장치(680)를 포함할 수 있다. IoT 기기(600)의 각 구성요소들(610, 630 내지 680)은 버스(620)에 접속될 수 있고, 버스(620)를 통해 서로 데이터를 주고 받을 수 있다.
사물 인터넷(IoT)은 유/무선 통신을 이용하는 사물 상호 간의 네트워크를 지칭할 수 있다. 예를 들면, 사물 인터넷(IoT)은 IoT 네트워크 시스템, USN(Ubiquitous Sensor Network) 통신 시스템, MTC(Machine Type Communications) 통신 시스템, MOC(Machine Oriented Communication) 통신 시스템, M2M(Machine to Machine) 통신 시스템 또는 D2D(Device to Device) 통신 시스템 등과 같이 다양하게 지칭될 수 있다.
어플리케이션 프로세서(610)는 IoT 기기(600)의 전반적인 동작을 제어할 수 있다. 예를 들면, 어플리케이션 프로세서(610)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 일 실시예에서, 어플리케이션 프로세서(610)는 하나 이상의 코어(core)를 포함할 수 있다. 예를 들면, 어플리케이션 프로세서(610)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 어플리케이션 프로세서(610)는 캐시 메모리를 더 포함할 수 있다.
센서(630)는 IoT 기기(600)의 외부 환경을 센싱할 수 있다. 일 실시예에서, 센서(630)는 이미지 센서일 수 있고, 이미지 정보를 생성하여 어플리케이션 프로세서(610)에 제공할 수 있다. 다른 실시예에서, 센서(630)는 신체 정보(biometric information)를 감지하는 바이오 센서일 수 있고, 비제한적인 예시로서 지문, 홍체 패턴, 핏줄 패턴, 심박수, 혈당 등을 감지함으로써 감지된 정보에 대응하는 센싱 데이터를 생성할 수 있다. 일부 실시예들에서, 센서(630)는 조도(illuminance) 센서, 음향 센서, 가속도 센서 등과 같은 임의의 센서를 포함할 수도 있다.
노멀 메모리(640)는 IoT 기기(600)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들면, 노멀 메모리(640)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM) 등과 같은 휘발성 메모리 장치 및/또는 플래시 메모리 장치(flash memory device), 솔리드 스테이트 드라이브(Solid State Drive; SSD) 등과 같은 비휘발성 메모리 장치를 포함할 수 있다.
보안 메모리(650)는 IoT 기기(600)가 동작하는 과정에서 보안이 필요한 데이터를 저장할 수 있다. 예를 들면, 보안 메모리(650)는, 도 1의 보안 저장소(122)와 유사하게, 외부의 부적절한 접근으로부터 보호가 필요한 IoT 기기(600)에 대한 보안 정보(예컨대, 도 1의 SI2)를 저장할 수 있다. 일부 실시예들에서, 보안 메모리(650)는 센서(630)를 통해 감지된 정보, 예컨대 신체 정보를 포함하는 데이터를 저장할 수도 있다. 비록 도 9에서 노멀 메모리(640)와 보안 메모리(650)는 분리되어 도시되었으나, 본 개시의 기술적 사상이 이에 제한되는 것은 아니며, 노멀 메모리(640)와 보안 메모리(650)는 하나의 물리적인 메모리로 통합되어 구현될 수도 있다. 일부 실시예들에서, 노멀 메모리(640) 및/또는 보안 메모리(650)는 IoT 기기(600)에 착탈식으로 결합될 수 있고, 예컨대 노멀 메모리(640) 및/또는 보안 메모리(650)는 커넥터 핀 및/또는 소켓 등을 이용하여 IoT 기기(600)에 접속될 수 있다.
보안 모듈(660)은 보안 모듈(660)의 고유 정보를 포함할 수 있고, 보안 메모리(650)를 관리할 수 있다. 보안 모듈(660)은, 고유 정보를 사용하여 상호 인증된 서버로부터 보안 데이터를 수신할 수 있고, 보안 데이터로부터 보안 정보를 생성할 수 있다. 또한, 보안 모듈(660)은 IoT 기기(600)가 동작하는 과정에서 보안이 필요한 데이터를 보안 메모리(650)에 저장하거나, 보안 메모리(650)로부터 독출할 수도 있다. 또한, 보안 모듈(660)은, 일부 실시예들에서 외부로부터 수신된 보안 데이터로부터 보안 정보를 생성할 수도 있고, 일부 실시예들에서 키 페어를 생성할 수도 있다. 보안 모듈(660)은, 논리 합성에 의해서 설계되는 로직 블록을 포함할 수도 있고, 프로세서 및 프로세서에 의해서 실행되는 소프트웨어 블록을 포함할 수도 있다.
디스플레이(670)는 데이터를 출력할 수 있다. 예를 들어, 디스플레이(670)는 센서(630)를 이용하여 센싱된 이미지 데이터를 출력하거나, 어플리케이션 프로세서(610)를 이용하여 연산된 데이터를 출력할 수 있다.
입출력 장치(680)는 터치패드, 키패드, 입력 버튼 등과 같은 IoT 기기(600) 사용자의 입력을 수신하기 위한 부품을 포함할 수도 있고, LED, 스피커 등과 같은 신호를 외부로 출력하기 위한 부품을 포함할 수도 있다. 또한, 입출력 장치(680)는 통신 모듈을 포함할 수 있고, IoT 기기(600) 외부의 개체, 예컨대 서버와의 계층화된 통신을 제공할 수 있다.
도 10은 본 개시의 예시적 실시예에 따라 도 9의 IoT 기기(600)의 하드웨어 및 소프트웨어의 예시적인 구조를 나타내는 블록도이다. 도 10에 도시된 바와 같이, IoT 장치(700)는 IoT 장치 어플리케이션(710) 및 통신 모듈(720)을 포함할 수 있고, 통신 모듈(720)은 펌웨어(721), 무선 베이스밴드 칩셋(722) 및 보안 모듈(723)을 포함할 수 있다.
IoT 장치 어플리케이션(710)은 소프트웨어 블록으로서 통신 모듈(720)을 제어할 수 있고, IoT 장치(700)의 CPU(예컨대, 도 10의 어플리케이션 프로세서(610))에 의해서 실행될 수 있다. 통신 모듈(720)은, LAN(Local Area Network), Wi-Fi와 같은 WLAN(Wireless Local Area Network), 블루투스(Bluetooth) 같은 WPAN(Wireless personal area network), 무선 USB(Universal Serial Bus), 지그비(Zigbee); NFC(Near Field Communication), RFID(Radio-Frequency Identification), 또는 이동 통신 시스템을 통해서 데이터를 주고받을 수 있는 무선 통신 블록일 수 있다.
펌웨어(721)는 IoT 장치 어플리케이션(710)에 API(Application Programming Interface)를 제공할 수 있고, IoT 장치 어플리케이션(710)의 제어에 기초하여 무선 베이스 밴드 칩셋(722)을 제어할 수 있다. 무선 베이스 밴드 칩셋(722)은 무선 통신 네트워크에 대한 접속을 제공할 수 있다.
보안 모듈(723)은 프로세서(723_1) 및 SE(Secure Element)(723_2)를 포함할 수 있다. SE(723_2)는, 도 1의 보안 저장소(122)와 유사하게, 무선 통신 네트워크에 접속하기 위해 IoT 장치(700)를 인증하기 위한 보안 정보(예컨대, 도 1의 SI1, SI2)를 저장할 수 있다. 프로세서(723_1)는, 도 1의 컨트롤러(121)와 유사하게, 보안 모듈(723)의 고유 정보에 기초하여 상호 인증된 서버로부터 보안 데이터를 수신할 수 있고, 보안 데이터로부터 보안 정보를 생성하여 SE(723_2)에 저장할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 보안 부품을 포함하는 장치가 사용되는 네트워크 시스템(900)을 나타내는 도면이다. 도 11을 참조하면, 네트워크 시스템(900)은 통신 연결 장치(910), 통신 연결 장치(910)와 통신 가능하도록 연결되는 복수의 조명 기구들(920, 930), 서버(940), 서버(940)를 관리하기 위한 컴퓨터(950), 통신 기지국(960), 통신망(970) 및 모바일 기기(980)를 포함할 수 있다.
거리 또는 공원 등의 개방적인 외부 공간에 설치되는 복수의 조명 기구들(920, 930) 각각은 스마트 엔진들(921, 931)을 포함할 수 있다. 스마트 엔진들(921, 931)은 주변 환경의 정보를 수집하는 센서 및 통신 모듈 등을 포함할 수 있고, 비제한적인 예시로서 WiFi, Zigbee, LiFi 등의 통신 프로토콜에 따라 주변의 다른 장비들과 통신할 수 있다. 예를 들면, 스마트 엔진(921)은 다른 스마트 엔진(931)과 통신 가능하도록 연결될 수 있고, 스마트 엔진들(921, 931) 상호 간의 통신에는 WiFi 확장 기술(WiFi Mesh)이 사용될 수 있다. 스마트 엔진(921)은 통신망(970)에 연결되는 통신 연결 장치(910)와 유/무선 통신에 의해 연결될 수 있다. 높은 통신 효율성을 위하여, 2이상의 스마트 엔진들(예컨대, 921, 931)은 하나의 그룹으로서 통신 연결 장치(910)에 연결될 수 있다.
스마트 엔진들(921, 931) 각각은 조명 기구들(920, 930)의 고유 정보를 포함할 수 있다. 스마트 엔진들(921, 931) 각각에 저장된 고유 정보는 상이할 수 있다. 이러한 고유 정보를 이용하여 본 개시의 예시적 실시예에 따라 조명 기구들(920, 930)이 설치된 이후에 고유 정보에 기초하여 다른 개체(entity), 예컨대 서버(940)와의 상호 인증이 수행될 수 있고, 그 다음에 보안 정보가 스마트 엔진들(921, 931)에 주입될 수 있다.
통신 연결 장치(910)는 유/무선 통신이 가능한 액세스 포인트(access point, AP)로서, 통신망(970)과 다른 장비 사이의 통신을 중개할 수 있다. 통신 연결 장치(910)는 유/무선 방식 중 적어도 하나에 의해 통신망(970)과 연결될 수 있으며, 예컨대 조명 기구들(920, 930) 중 적어도 하나의 내부에 기구적으로 수납될 수 있다.
통신 연결 장치(910)는 WiFi 등의 통신 프로토콜을 통해 모바일 기기(980)와 연결될 수 있고, 스마트 엔진들(921, 931)과 모바일 기기(980)와의 통신을 중계할 수 있다. 모바일 기기(980)의 사용자는 인접한 주변의 조명 기구(920)의 스마트 엔진(921)과 연결된 통신 연결 장치(910)를 통해, 스마트 엔진들(921, 931)이 수집한 주변 환경 정보를 수신할 수 있다. 통신 연결 장치(910)는 모바일 기기(980)는 통신 기지국(960)을 통해 3G 또는 4G 등의 무선 셀룰러 통신 방식으로 통신망(970)에 연결될 수도 있다.
통신망(970)에 연결되는 서버(940)는, 조명 기구들(920, 930)의 스마트 엔진들(921, 931)이 수집하는 정보를 통신 연결 장치(910)를 통해서 수신함과 동시에, 조명 기구들(920, 930)의 동작 상태 등을 모니터링 할 수 있다. 조명 기구들(920, 930)의 동작 상태의 모니터링 결과에 기초하여 각 조명 기구들(920, 930)를 관리하기 위해, 서버(940)는 관리 시스템을 제공하는 컴퓨터(950)와 연결될 수 있다. 본 개시의 예시적 실시예에 따라, 서버(940)는 도 1의 서버(200)와 유사하게, 스마트 엔진들(921, 931)과 상호 인증을 수행할 수 있고, 보안 데이터를 스마트 엔진들(921, 931)에 제공할 수 있다. 컴퓨터(950)는 스마트 엔진들(921, 931)을 통해서 조명 기구들(920, 930)의 동작 상태를 모니터링하고 관리할 수 있는 소프트웨어 등을 실행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 서버와의 통신을 통해서 보안 정보가 주입되는 장치로서,
    상기 서버로부터 보안 데이터를 수신하도록 구성된 통신 인터페이스; 및
    보안 저장소 및 상기 보안 데이터에 기초하여 상기 보안 저장소에 상기 보안 정보를 저장하도록 구성된 컨트롤러를 포함하는 보안 부품을 포함하고,
    상기 통신 인터페이스는,
    상기 보안 부품의 고유 정보에 기초하여 제1 암호화 프로토콜에 따라 상기 서버와 상호(mutual) 인증하도록 구성된 표현 계층 핸들러; 및
    제2 암호화 프로토콜에 따라 상기 서버에 보안 데이터를 요청하고 수신하도록 구성된 응용 계층 핸들러를 포함하는 것을 특징으로 하는 장치.
  2. 서버와의 통신을 통해서 보안 부품을 포함하는 장치에 보안 정보를 주입하기 위한 방법으로서,
    상기 보안 부품의 고유 정보를 획득하는 단계;
    상기 통신의 표현(presentation) 계층에서 제1 암호화 프로토콜에 따라 상기 고유 정보에 기초하여 상기 서버와 상호(mutual) 인증하는 단계;
    상기 통신의 응용(application) 계층에서 제2 암호화 프로토콜에 따라 상기 서버에 보안 데이터를 요청하는 단계;
    상기 서버로부터 상기 제2 암호화 프로토콜에 따라 보안 데이터를 수신하는 단계; 및
    수신된 상기 보안 데이터에 기초하여 상기 보안 부품에 상기 보안 정보를 저장하는 단계를 포함하는 보안 정보를 주입하기 위한 방법.
  3. 청구항 2에 있어서,
    상기 제1 암호화 프로토콜은 TLS(Transport Layer Security)이고,
    상기 상호 인증하는 단계는, TLS 핸드셰이크(handshake)를 수행하는 단계를 포함하는 것을 특징으로 하는 보안 정보를 주입하기 위한 방법.
  4. 청구항 3에 있어서,
    상기 고유 정보는, 인증서(certificate) 및 키 페어(key pair) 중 적어도 하나를 포함하는 것을 특징으로 하는 보안 정보를 주입하기 위한 방법.
  5. 청구항 2에 있어서,
    상기 제2 암호화 프로토콜은 EST(Enrollment over Security Transport)인 것을 특징으로 하는 보안 정보를 주입하기 위한 방법.
  6. 청구항 2에 있어서,
    상기 고유 정보는 상기 보안 부품의 생산 과정에서 상기 보안 부품에 주입된 것을 특징으로 하는 보안 정보를 주입하기 위한 방법.
  7. 청구항 2에 있어서,
    상기 보안 데이터는, 신규 인증서(certificate) 및 신규 키 페어(key pair) 중 적어도 하나를 포함하는 것을 특징으로 하는 보안 정보를 주입하기 위한 방법.
  8. 청구항 2에 있어서,
    상기 보안 데이터를 요청하는 단계는,
    공개 키(public key) 및 개인 키(private key)를 포함하는 키 페어(key pair)를 생성하는 단계; 및
    상기 공개 키를 포함하는 CSR(Certificate Signing Request)을 상기 서버에 전송하는 단계를 포함하고,
    상기 보안 데이터를 수신하는 단계는, 상기 서버로부터 상기 보안 데이터로서 신규 인증서를 수신하는 단계를 포함하는 것을 특징으로 하는 보안 정보를 주입하기 위한 방법.
  9. 청구항 8에 있어서,
    상기 보안 정보를 저장하는 단계는, 상기 신규 인증서 및 상기 키 페어로부터 상기 보안 정보를 생성하는 단계를 포함하는 것을 특징으로 하는 보안 정보를 주입하기 위한 방법.
  10. 서버 및 장치 사이 통신에 의해서 상기 장치에 보안 정보를 주입하기 위한 방법으로서,
    상기 서버에서 보안 데이터를 준비하는 단계;
    상기 장치에 포함된 보안 부품의 고유 정보에 기초하여, 상기 통신의 표현(presentation) 계층에서 제1 암호화 프로토콜에 따라 상기 서버 및 상기 장치를 상호(mutual) 인증하는 단계;
    상기 장치에서 상기 통신의 응용(application) 계층에서 제2 암호화 프로토콜에 따라 보안 데이터를 요청하는 단계;
    상기 서버로부터 상기 제2 암호화 프로토콜에 따라 상기 장치로 보안 데이터를 전송하는 단계; 및
    상기 장치에서 상기 보안 데이터에 기초하여 상기 보안 정보를 상기 보안 부품에 저장하는 단계를 포함하는 보안 정보를 주입하기 위한 방법.
KR1020180018066A 2017-09-22 2018-02-13 보안 부품을 포함하는 장치 및 그것에 보안 정보를 주입하는 방법 KR102477263B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/121,763 US10951653B2 (en) 2017-09-22 2018-09-05 Apparatus including secure component and method of provisioning security information into the apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170122878 2017-09-22
KR20170122878 2017-09-22

Publications (2)

Publication Number Publication Date
KR20190034053A true KR20190034053A (ko) 2019-04-01
KR102477263B1 KR102477263B1 (ko) 2022-12-14

Family

ID=66104558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180018066A KR102477263B1 (ko) 2017-09-22 2018-02-13 보안 부품을 포함하는 장치 및 그것에 보안 정보를 주입하는 방법

Country Status (1)

Country Link
KR (1) KR102477263B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080178006A1 (en) * 2007-01-19 2008-07-24 Microsoft Corporation Secure pin transmission
US20100042848A1 (en) * 2008-08-13 2010-02-18 Plantronics, Inc. Personalized I/O Device as Trusted Data Source

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080178006A1 (en) * 2007-01-19 2008-07-24 Microsoft Corporation Secure pin transmission
US20100042848A1 (en) * 2008-08-13 2010-02-18 Plantronics, Inc. Personalized I/O Device as Trusted Data Source

Also Published As

Publication number Publication date
KR102477263B1 (ko) 2022-12-14

Similar Documents

Publication Publication Date Title
US20230009787A1 (en) Secure device onboarding techniques
US10979412B2 (en) Methods and apparatus for secure device authentication
CN110881184B (zh) 通信方法和装置
KR101941049B1 (ko) 암호화된 통신을 위한 방법 및 시스템
US11943615B2 (en) Method and apparatus for discussing digital certificate by ESIM terminal and server
EP2697949B1 (en) Method and apparatus for providing secret delegation
CN107667554A (zh) 分散式配置器实体
CN107005569A (zh) 端对端服务层认证
GB2568873A (en) Distributed management system for internet of things devices and methods thereof
KR20160078475A (ko) 키 구성 방법, 시스템, 및 장치
KR101297648B1 (ko) 서버와 디바이스간 인증방법
US11991527B2 (en) Communication method and communication device
WO2019178312A1 (en) Configuration systems and methods for secure operation of networked transducers
JP6970256B2 (ja) ネットワーク環境におけるピア電子デバイスによるリモート電子デバイスの構成
US11210678B2 (en) Component for provisioning security data and product including the same
EP3282639B1 (en) Method for operating server and client, server, and client apparatus
CN109075966B (zh) 通信安全系统和方法
US10212598B2 (en) Access point information for wireless access
US10951653B2 (en) Apparatus including secure component and method of provisioning security information into the apparatus
KR20190117302A (ko) eUICC 버전을 협상하는 방법 및 장치
JP4635182B2 (ja) 無線通信システム
KR102477263B1 (ko) 보안 부품을 포함하는 장치 및 그것에 보안 정보를 주입하는 방법
KR20220155867A (ko) Uwb 보안 레인징을 수행하기 위한 방법 및 장치
JP7300529B2 (ja) 匿名デバイス認証
WO2021208027A1 (zh) 一种入网双向鉴权的方法及装置

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