KR102322605B1 - 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법 - Google Patents
사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법 Download PDFInfo
- Publication number
- KR102322605B1 KR102322605B1 KR1020170088641A KR20170088641A KR102322605B1 KR 102322605 B1 KR102322605 B1 KR 102322605B1 KR 1020170088641 A KR1020170088641 A KR 1020170088641A KR 20170088641 A KR20170088641 A KR 20170088641A KR 102322605 B1 KR102322605 B1 KR 102322605B1
- Authority
- KR
- South Korea
- Prior art keywords
- authentication server
- server
- psk
- encrypted message
- authentication
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법은, 사물기기의 코드 이미지가 컨트롤러에 의해 스캔되면, 사물기기가 식별값 및 사물기기가 생성한 제1랜덤 넌스를 비접촉 근거리 통신을 이용하여 컨트롤러로 송신하는 제1단계, 컨트롤러가 식별값, 제1랜덤 넌스, 제1해쉬값, 및 제1소켓 정보를 암호화한 제1암호화 메시지를 생성하여 인증 서버로 송신하는 제2단계, 인증 서버가 식별값으로 사물기기를 가등록하는 제3단계, 인증 서버가 식별값 및 제1해쉬값을 암호화한 제2암호화 메시지를 생성하여 제1소켓 정보에 대응되는 제조사 서버로 송신하는 제4단계, 제조사 서버가 제1해쉬값에 기초하여 사물기기의 펌웨어를 검증하는 제5단계, 사물기기의 펌웨어가 검증되면, 제조사 서버가 사물기기에 대해 기 설정된 초기키를 암호화한 제3암호화 메시지를 생성하여 인증 서버로 송신하는 제6단계, 인증 서버가 제1랜덤 넌스와 인증 서버가 생성한 제2랜덤 넌스를 연산하여 PSKD를 생성하는 제7단계, 인증 서버가 초기키로 PSKD를 암호화한 암호화 PSKD를 생성하고, 암호화 PSKD를 암호화한 제4암호화 메시지를 생성하여 컨트롤러로 송신하는 제8단계, 및 컨트롤러가 암호화 PSKD 및 인증 서버의 제2소켓 정보를 비접촉 근거리 통신을 이용하여 사물기기로 송신하는 제9단계를 포함한다.
Description
본 발명은 비밀키 설정 및 상호 기기 인증 방법에 관한 것으로서, 보다 구체적으로 사물인터넷 환경에서 동작하는 사물기기의 비밀키를 안전하게 설정하는 방법에 관한 것이다.
사물인터넷(Internet of Things, IoT) 기술은 기존의 통신에서 주류를 이루던 사람과 사람, 사람과 사물 간의 통신에서 나아가 생활 속 모든 것들을 상호 연결시키려는 기술이다. 최근 들어, 센서나 액츄에이터와 같은 소형의 경량 장치들까지 인터넷에 직접 연결하여 정보를 주고 받을 수 있는 사물인터넷 기술에 대한 관심이 높아지고 있다.
사물인터넷 환경에서는 보안이 적용 환경에 따라 단순한 정보 보호의 차원을 넘어 사람의 생명에 직결될 수 있기 때문에 보안에 대한 신뢰성이 반드시 보장되어야 한다. 그러나 사물인터넷 환경은 이종의 장치들과 이종의 네트워크 기술이 혼재되어 있으며, 특히 소형의 경량 장치는 컴퓨팅 자원이 제한되기 때문에 적합한 보안 기술을 개발하는 것이 쉽지 않다. 따라서, 보안 기술에 대한 경량화가 필요한 상황이다.
PSK(Pre Shared Key)를 기반으로 하는 통신은 계산 시간과 자원 사용 등의 장점으로 인해 다양한 보안 시스템에 적용되고 있다. 특히, PSK 방식은 공개키 알고리즘을 기반으로 보안키를 공유하는 방식에 비해서 적은 비용으로 보안 세션을 구축할 수 있어서 경량 장치들로 구성되는 사물인터넷 환경에 적합한 것으로 판단되어 폭넓게 이용되고 있다.
그러나, 종래 사물인터넷 환경에서 동작하는 센서나 액츄에이터와 같은 경량 장치는 공장 출하시 설정된 기본키를 PSK로 그대로 이용하는 경우가 많기 때문에 보안이 취약하여 공격 대상이 되기 쉽다.
이러한 공격은 기본키를 안전한 PSK를 재설정함으로써 경감할 수 있지만, 대부분의 경량 장치에는 사용자 인터페이스가 제한적이거나 부재하고, 보안 지식이 부족한 일반 사용자가 PSK를 안전하게 재설정하는 데 어려움이 있다.
또한, 안전한 사물인터넷 환경을 제공하기 위해서는 경량 장치와 경량 장치가 등록되는 인증 서버가 상호 인증이 되어야 한다. 상호 인증 과정이 없다면 경량 장치나 인증 서버는 악의적인 공격자와 비밀키를 공유하게 될 수 있다.
그리고, 컴퓨팅 자원이 제한되는 경량 장치가 인증 서버와 직접 통신하여 비밀키를 설정할 수 없기 때문에 사용자 단말을 매개로 경량 장치와 인증 서버가 메시지를 주고 받는 기술이 개발되고 있으나, 신뢰할 수 없는 사용자 단말을 매개체로 비밀키가 설정될 경우 사용자 단말도 비밀키를 공유하게 되는 문제가 있을 수 있다.
따라서, 경량 장치와 인증 서버 간의 신뢰가 없는 상태에서 경량 장치를 인증 서버에 안전하게 등록하고, 신뢰성이 확보되지 않는 사용자 단말과는 비밀키를 공유하지 않으면서 비밀키를 재설정할 수 있는 기술에 대한 필요성이 증가하고 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 사용자의 직접적인 관여를 최소화하면서 컨트롤러를 통해서 사물기기를 인증 서버에 등록하고 사물기기와 인증 서버 간의 통신에 이용할 PSK를 설정함으로써, 신뢰성이 확보된 PSK를 설정하는 것을 목적으로 한다.
또한, 본 발명은 사물기기의 제조사 서버와 인증 서버 간의 상호 인증을 통해 사물기기와 인증 서버에 대한 신뢰성을 확인하고 PSK를 설정하는 것을 목적으로 한다.
또한, 본 발명은 사물기기와 인증 서버 간의 매개체 역할을 하는 컨트롤러는 PSK를 직접적으로 확인하지 못하고 전달만 하도록 함으로써, 신뢰성이 확보되지 않은 컨트롤러가 PSK를 공유하는 것을 방지하는 것을 목적으로 한다.
또한, 본 발명은 PSK 변경이 필요한 경우 PSK를 재설정하는 것을 목적으로 합니다.
상술한 문제점을 해결하기 위한 본 발명의 일 측면에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법은, 사물인터넷(Internet of Things, IoT) 환경에서 동작하는 사물기기를 제조한 제조사 서버의 제1소켓 정보(SockMS), 상기 사물기기의 펌웨어 검증을 위한 제1해쉬값, 및 상기 제조사 서버의 제1인증서(CertMS)를 포함하는 코드 이미지가 부여된 상기 사물기기의 상기 코드 이미지가 컨트롤러에 의해 스캔되면, 상기 사물기기가 상기 사물기기의 식별값(IDD) 및 상기 사물기기가 생성한 제1랜덤 넌스(RND)를 비접촉 근거리 통신을 이용하여 상기 컨트롤러로 송신하는 제1단계, 상기 컨트롤러가 상기 식별값(IDD), 상기 제1랜덤 넌스(RND), 상기 제1해쉬값, 및 상기 제1소켓 정보(SockMS)를 암호화한 제1암호화 메시지를 생성하여 상기 제1인증서(CertMS)와 함께 상기 인증 서버로 송신하는 제2단계, 상기 인증 서버가 상기 식별값(IDD)으로 상기 사물기기를 가등록하고, 상기 제1인증서(CertMS)를 이용하여 상기 제조사 서버를 인증하는 제3단계, 상기 제조사 서버가 인증되면 상기 인증 서버가 상기 식별값(IDD) 및 상기 제1해쉬값을 암호화한 제2암호화 메시지를 생성하여 상기 인증 서버의 제2인증서(CertAS)와 함께 상기 제1소켓 정보(SockMS)에 대응되는 제조사 서버로 송신하는 제4단계, 상기 제조사 서버가 상기 식별값(IDD) 및 상기 식별값(IDD)에 대응되는 펌웨어값(FWD)을 비트 연접한 결과값을 해쉬 연산하고 상기 제1해쉬값과 비교하여 상기 사물기기의 펌웨어를 검증하고, 상기 제2인증서(CertAS)를 이용하여 상기 인증 서버를 인증하는 제5단계, 상기 사물기기의 펌웨어가 검증되면, 상기 제조사 서버가 상기 사물기기에 대해 기 설정된 초기키(IKD)를 암호화한 제3암호화 메시지를 생성하여 상기 인증 서버로 송신하는 제6단계, 상기 인증 서버가 상기 제1랜덤 넌스(RND)와 상기 인증 서버가 생성한 제2랜덤 넌스(RNAS)를 미리 정해진 연산자로 연산하여 PSKD(Pre Shared Key)를 생성하는 제7단계, 상기 인증 서버가 상기 초기키(IKD)로 상기 PSKD를 암호화한 암호화 PSKD를 생성하고, 상기 암호화 PSKD를 암호화한 제4암호화 메시지를 생성하여 상기 컨트롤러로 송신하는 제8단계 및 상기 컨트롤러가 상기 암호화 PSKD 및 상기 인증 서버의 제2소켓 정보(SockAS)를 상기 비접촉 근거리 통신을 이용하여 상기 사물기기로 송신하는 제9단계를 포함한다.
본 발명에 따르면, 사물기기를 사물인터넷 환경에 처음 등록할 때 PSK를 설정 또는 갱신함으로써 사물기기와 인증 서버가 신뢰성 높은 PSK를 공유하게 되어 보안 성능을 향상시킬 수 있다.
또한, 본 발명에 따르면, 사물기기의 제조사 서버와 인증 서버 간의 상호 인증을 통해 사물기기와 인증 서버에 대한 신뢰성을 확인하고 PSK를 설정함으로써 PSK의 신뢰성을 높일 수 있다.
또한, 본 발명에 따르면, 컨트롤러는 PSK 설정에 필요한 메시지를 전달만 하고 공유하지 못하도록 함으로써, PSK의 보안을 더욱 강화할 수 있다.
또한, 본 발명에 따르면, PSK 변경이 필요한 경우 PSK를 재설정할 수 있으므로, 사물기기를 보안 중요도에 따라 안전하게 관리할 수 있다.
도 1은 본 발명의 실시예에 따른 사물기기의 비밀키 설정 시스템의 구성을 개략적으로 보여주는 도면이다.
도 2는 발명의 실시예에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법의 구현 과정을 개략적으로 나타내는 플로우차트이다.
도 3 및 도 4는 본 발명의 실시예에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법에 의해 설정된 비밀키의 보안을 검증하기 위한 프로토콜 및 검증 결과를 나타내는 도면이다.
도 2는 발명의 실시예에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법의 구현 과정을 개략적으로 나타내는 플로우차트이다.
도 3 및 도 4는 본 발명의 실시예에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법에 의해 설정된 비밀키의 보안을 검증하기 위한 프로토콜 및 검증 결과를 나타내는 도면이다.
본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
한편, 본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 정의하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다.
"포함하다" 또는 "가지다" 등의 용어는 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제 3 항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목, 또는 제3 항목 각각 뿐만 아니라 제1 항목, 제2 항목, 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들에 대해 설명한다.
도 1은 본 발명의 실시예에 따른 사물기기의 비밀키 설정 시스템의 구성을 개략적으로 보여주는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 사물기기의 비밀키 설정 시스템은 사물기기(Device)(100), 컨트롤러(Controller)(200), 인증 서버(Authentication Server)(300), 및 제조사 서버(Manufacturer Server)(400)를 포함한다.
사물기기(100)는 초기 비밀키 설정을 요청하는 자원이 제한적인 기기이다. 구체적으로, 사물기기는 사물인터넷(Internet of Things, IoT) 환경에서 동작하는 경량(Lightweight) 장치로서, 센서, 액츄에이터, 또는 복수개의 센서와 액츄에이터를 갖는 소형 장치일 수 있다. 구체적으로, 사물기기(100)는 CoAP와 6LowPAN을 사용하는 사물인터넷 환경에서 안전한 소켓을 개설할 수 있는 DTLS 프로토콜의 PSK 기반 방식을 사용하는 경량 장치일 수 있다.
사물기기(100)는 IETF의 표준 문서 RFC7228에서 정의한 Class 1(C1)과 Class 2(C2)에 해당하는 기기를 기준으로 한다. C1에는 10kib 이하의 RAM과 100Kib 이하의 ROM으로 구성된 기기들이 포함되고, C2에는 50Kib 이하의 RAM과 250Kib 이하의 ROM으로 구성된 기기들이 포함된다.
컨트롤러(200)는 사물기기(100)의 요청을 받아 비밀키 설정 기술에 정의된 방식으로 응답하는 기기이다. 컨트롤러(200)는 사물기기(100) 보다 연산 자원이 크고 전원 공급에도 제한받지 않는 제어기를 의미한다. 컨트롤러(200)는 스마트폰 또는 태블릿 PC와 같은 사용자 단말일 수 있다.
인증 서버(300)는 사물기기(100)를 인증하거나 사물기기(100)의 등록 정보를 보유하고 있는 등록 및 인증 담당 서버이다. 구체적으로, 인증 서버(300)는 컨트롤러(200)를 통해 수신되는 메시지에 기초하여 사물기기(100)를 인증하고 등록한다. 인증 서버(300)는 사물기기(100)와의 암호화된 통신을 위한 PSK(Pre Shared Key)를 생성한다. 인증 서버(300)는 PSK를 컨트롤러(200)를 통해 사물기기(100)로 전송함으로써 사물기기(100)와 PSK를 이용해 암호화된 통신을 수행할 수 있다. 인증 서버(300)는 제조사 서버(400)를 통해 사물기기(100)를 인증할 수 있다.
제조사 서버(400)는 사물기기(100)의 인증을 대신해줄 수 있는 서버이다. 제조사 서버(400)는 사물기기(100)를 제조한 제조사의 서버로서, 사물기기(100) 별로 식별값(ID) 및 펌웨어값(FW)를 관리한다. 제조사 서버(400)는 인증 서버(300)를 통해 수신되는 메시지에 기초하여 사물기기(100)의 펌웨어를 검증한다. 제조사 서버(400)는 인증 서버(300)의 인증서(CertAS)를 이용하여 인증 서버(300)를 인증할 수 있다. 사물기기(100)와 제조사 서버(400)는 사물기기(100)의 공장 출하시 제조사 서버(400)에 의해 부여된 초기키(IK)를 공유한다. 해당 초기키(IK)는 인증 서버(300)에 의해 PSK가 생성되기 전까지 사물기기(100)에 대한 초기 PSK가 된다.
본 발명의 실시예에서 컨트롤러(200), 인증 서버(300), 및 제조사 서버(400)는 컴퓨팅 및 통신을 위한 자원이 제한적이지 않고, 초기 설정 및 등록의 대상에 해당하는 사물기기(100)만 자원이 제한적이다.
일 실시예에 있어서, 본 발명이 최초 적용되는 시점에 각 구성 사이의 보안 신뢰(trust)는 다음을 가정할 수 있다.
첫째, 사물기기(100)가 안전하게 설정되고 등록되기 전까지 사물기기(100)와 컨트롤러(200)는 상호 신뢰하지 않는다.
둘째, 인증 서버(300)와 제조사 서버(400)는 각 서버의 인증서(Certificate)에 대한 보안 검증이 완료되기 전까지 상호 신뢰하지 않는다.
셋째, 컨트롤러(200)와 인증 서버(300)는 사용자가 속한 동일한 서비스 환경에 포함된 기기들로 가정하고 본 발명이 개시되기 전에 상호 신뢰를 확보하고 있고, 상호 보안키(SK)를 공유하고 있다.
이하에서는 본 발명의 실시예에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법에 대해 보다 구체적으로 살펴보기로 한다.
도 2는 발명의 실시예에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법의 구현 과정을 개략적으로 나타내는 플로우차트이다. 도 2에 도시된 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법은 도 1에서 설명한 사물인터넷 환경에서의 비밀키 설정 시스템에 의해 수행될 수 있다.
도 2에 도시된 바와 같이, 컨트롤러(200)에 의해 사물기기(100)에 부여된 코드 이미지가 스캔되면(S10), 사물기기(100)는 사물기기(100)의 식별값(IDD) 및 사물기기(100)가 생성한 제1랜덤 넌스(RND)를 비접촉 근거리 통신을 이용하여 컨트롤러(200)로 송신한다(S20).
단계 S10에 있어서, 사물기기(100)는 공장 출하시 사물기기(100)를 제조한 제조사의 제조사 서버(400)로부터 제조사 서버(400)의 제1소켓 정보(SockMS), 사물기기(100)의 펌웨어 인증을 위한 제1해쉬값, 및 제조사 서버(400)의 인증을 위한 제1인증서(CertMS)가 포함된 코드 이미지를 부여받는다. 코드 이미지는 바코드, QR코드 및 컬러짚(Colorzip) 코드 중 적어도 하나를 포함할 수 있으며, 기재된 예에 한정되지 않는다. 이하에서는 QR코드를 예로 설명하기로 한다. QR코드는 사물기기(100)에 부착되거나 사물기기(100)의 포장 박스 내부에 포함될 수 있다.
본 발명에서 사물기기(100) 별로 코드 이미지가 부여된 것은 사물기기(100)를 대신해서 제조사 서버(400)가 인증 서버(300)와 상호 인증을 수행하기 위한 것이다. 구체적으로, 사물기기(100)와 인증 서버(300)는 사물기기(100)의 등록 전까지 서로를 신뢰할 수 없는데, 사물기기(100)와 인증 서버(300)가 직접 보안 통신을 수행할 수 없으므로 제조사 서버(400)가 사물기기(100)를 대신해서 인증 서버(300)와 상호 인증을 수행한다.
따라서, 본 발명에서는 제조사 서버(400)로부터 부여받은 코드 이미지에 사물기기(100)를 인증하기 위한 정보를 포함하고, 이를 컨트롤러(200)를 통해 인증 서버(300)로 송신함으로써, 해당 정보를 이용하여 인증 서버(300)와 제조사 서버(400)가 상호 인증을 수행할 수 있다.
제1소켓 정보(SockMS)는 사물기기(100)를 제조한 제조사 서버(400)의 아이피(IP) 주소와 포트(Port) 번호를 포함할 수 있다. 상기 제1소켓 정보(SockMS)는 컨트롤러(200)를 통해 인증 서버(300)로 송신되어, 인증 서버(300)가 제조사 서버(400)와 인터넷 소켓 통신하는데 이용된다.
제1해쉬값은 아래의 수학식 1에 의해 연산될 수 있다.
수학식 1에서 H(x)는 x에 대한 해쉬 함수를 나타내고, ||는 데이터의 연결(Concatenation) 연산자를 나타낸다.
즉, 제1해쉬값은 사물기기(100)의 식별값(IDD)과 사물기기(100)의 펌웨어값(FWD)을 비트 연접하고, 비트 연접한 결과값을 해쉬 연산한 값으로 설정될 수 있다.
이와 같이, 본 발명의 실시예에서 새로운 사물기기(100)를 인증 서버(300)에 등록하는 동작은, 컨트롤러(200)로 사물기기(100)에 부여된 QR코드를 스캔하는 조작을 통해 간단하게 시작될 수 있다.
단계 S20에 있어서, 본 발명에서는 출고시 또는 설치자의 초기 설정으로 사물기기(100)와 인증 서버(300)가 공유하는 비밀키 즉, PSK 자체가 안전하지 않을 수 있다는 문제를 해결할 수 있도록 사물기기(100)의 초기 등록 시에 안전하게 PSK를 설정하거나 재설정하는 것을 목적으로 한다.
그러나, 자원이 제한적인 사물기기(100)가 직접 새로운 PSK를 설정하는 동작을 수행하는 것이 불가능하므로, 본 발명의 실시예에서는 사물기기(100)를 등록하고 PSKD를 생성하는데 필요한 정보를 컨트롤러(200)를 통해 인증 서버(300)로 전송함으로써, 인증 서버(300)가 사물기기(100)를 등록하고 PSKD를 생성하도록 한다.
이 과정에서 사물기기(100)는 컨트롤러(200)와의 통신에 있어서도 암호화된 보안 통신을 수행할 수 없으므로 상기의 정보를 안전하게 컨트롤러(200)로 송신할 수 있어야 한다.
따라서, 본 발명의 실시예에서 사물기기(100)는 NFC(Near Field Communication)와 같은 비접촉식 근거리 통신을 통해 사물기기(100)의 식별값(IDD) 및 PSKD 생성에 필요한 제1랜덤 넌스(RND)를 컨트롤러(200)로 전송한다. NFC는 RFID의 하나로서 13.56MHz의 주파수 대역을 사용하는 비접촉식 근거리 통신 방식으로서, 10cm 이내의 가까운 거리에서 다양한 데이터를 주고 받을 수 있는 통신 모드를 제공한다. 일 실시예에서, 제1랜덤 넌스(RND)는 128bit의 랜덤 숫자일 수 있으나 이에 한정되는 것은 아니다.
이 때, 사물기기(100)와 NFC 통신이 가능한 소정 거리 이내에 컨트롤러(200)가 위치해야 상기의 식별값(IDD) 및 제1랜덤 넌스(RND)를 전송할 수 있기 때문에, 중간자 공격(Man In The Middle Attack) 유무가 육안으로 확인이 되어 NFC 통신의 신뢰성이 담보될 수 있다. 즉, 와이파이(Wi-fi) 또는 블루투스(Bluetooth) 방식의 통신은 통신 반경이 상대적으로 넓어서 사용자의 시야 밖에 있는 공격자가 전송 중인 메시지를 가로챌 수 있기 때문에, 본 발명의 실시예에서 보안키를 직접 설정하기 어려운 사물기기(100)는 NFC 방식을 이용하여 등록 및 PSKD 설정에 필요한 정보를 안전하게 컨트롤러(200)로 전송할 수 있다. 또한, 사물기기(100)의 경우 입력장치나 출력장치가 포함되어 있지 않아 일반 사용자가 PSKD를 직접 설정하는데 어려움이 있을 수 있는데, NFC는 사물기기(100)와 컨트롤러(200)의 접촉으로 데이터를 송수신할 수 있기 때문에 사용자의 관여를 최소화할 수 있다.
다음으로, 컨트롤러(200)는 인증 서버(300)와 미리 공유하는 보안키(SKCS)로 상기 식별값(IDD), 제1랜덤 넌스(RND), 제1해쉬값(H(IDD||FWD)), 및 제1소켓 정보(SockMS)를 암호화한 제1암호화 메시지를 생성하고, 제1암호화 메시지 및 제1인증서(CertMS)를 인증 서버(300)로 송신한다(S30). 즉, 컨트롤러(200)는 단계 S10에서 획득한 코드 이미지에 포함된 정보 및 단계 S20에서 수신한 정보를 그대로 인증 서버(300)로 전달한다.
본 발명의 실시예에서 컨트롤러(200)는 제1암호화 메시지를 생성하기 위해 대칭키 알고리즘 또는 비대칭키 알고리즘 중 어느 알고리즘이든 이용할 수 있다. 다만, 대칭키 알고리즘을 통해 보안키를 생성한 경우에는 단순한 암호 기술이 아닌 암호, 데이터 무결성, 일대일 데이터 송신 인증 제공까지 수행할 수 있는 인증-암호 기술(Authenticated Encription, 예로서 AES의 CCM)을 이용하여 메시지의 송신을 검증하는 것이 타당할 것이다.
일 실시예에 있어서, 컨트롤러(200)는 다수의 사물기기(100)를 대상으로 초기 설정을 수행할 수 있으므로, 각 사물기기(100)의 트랜젝션을 구별하기 위한 트랜젝션 아이디(Transaction ID, TIDD)를 추가로 포함하여 제1암호화 메시지를 생성할 수 있다.
다른 실시예에 있어서, 컨트롤러(200)는 컨트롤러(200)와 인증 서버(300) 사이에서의 재전송 공격(Replay Attack)을 막기 위한 제1타임 스탬프(Time Stamp, TS1)를 추가로 포함하여 제1암호화 메시지를 생성할 수 있다.
이에 따라, 인증 서버(300)는 트랜젝션 아이디(TID)를 통해 제1암호화 메시지가 해당 사물기기(100)의 트랜젝션에 해당하는 것인지 판단할 수 있고, 제1타임 스탬프(TS1)를 통해 제1암호화 메시지가 생성되어 송신된 시간을 확인하여 공격자의 재전송 공격을 막을 수 있다.
다음으로, 인증 서버(300)는 상기 보안키(SKCS)로 제1암호화 메시지를 복호화하여 획득되는 식별값(IDD)으로 사물기기(100)를 가등록하고, 제1인증서(CertMS)를 검증하여 제조사 서버(400)를 인증한다(S40). 이 때, 인증 서버(300)가 제조사 서버(400)의 제1인증서(CertMS)를 검증하는 방식은 공개 또는 기타 공개되지 않은 다양한 방식이 적용될 수 있다.
다음으로, 인증 서버(300)는 제조사 서버(400)가 인증되면, 제조사 서버(400)의 제1공개키(PubKeyMS)로 제1해쉬값 및 식별값(IDD)을 암호화한 제2암호화 메시지를 생성하여 인증 서버(300)의 제2인증서(CertAS)와 함께 제조사 서버(400)로 송신한다(S50).
구체적으로, 인증 서버(300)는 단계 S40에서 수신된 제1암호화 메시지에 포함된 제1소켓 정보(SockMS)를 획득하고, 제1소켓 정보(SockMS)에 포함된 아이피 주소 및 포트 정보를 갖는 제조사 서버(400)로 상기 제2암호화 메시지 및 제2인증서(CertAS)를 송신할 수 있다.
인증 서버(300)가 제1공개키(PubKeyMS)로 제2암호화 메시지를 생성하는 것은, 사물기기(100)를 처음 등록하는 과정에서는 인증 서버(300)와 제조사 서버(400) 사이에 공유된 암호화 키가 없기 때문이다. 이 경우, 인증 서버(300)와 제조사 서버(400)는 사물기기(100)와 달리 컴퓨팅 자원이 제한되지 않기 때문에 공개키 알고리즘을 이용하여 통신이 가능하다. 따라서, 인증 서버(300)는 제조사 서버(400)의 제1공개키(PubKeyMS)로 제2암호화 메시지를 생성할 수 있다.
일 실시예에 있어서, 제1암호화 메시지에 트랜젝션 아이디(TIDD)가 포함된 경우, 인증 서버(300)는 해당 트랜젝션 아이디(TIDD)를 추가로 포함하여 제2암호화 메시지를 생성할 수 있다. 이에 따라, 제조사 서버(400)는 트랜젝션 아이디(TID)를 통해 제2암호화 메시지가 해당 사물기기(100)의 트랜젝션에 해당하는 것인지 판단할 수 있다.
다른 실시예에 있어서, 인증 서버(300)는 인증 서버(300)와 제조사 서버(400) 사이에서의 재전송 공격을 막기 위한 제2타임 스탬프(TS2)를 추가로 포함하여 제2암호화 메시지를 생성할 수 있다. 이에 따라, 제조사 서버(400)는 제2타임 스탬프(TS2)를 통해 제2암호화 메시지가 생성되어 송신된 시간을 확인하여 공격자의 재전송 공격을 막을 수 있다.
다음으로, 제조사 서버(400)는 식별값(IDD)에 대응되는 펌웨어값(FWD)을 검색하고, 식별값(IDD) 및 펌웨어값(FWD)을 상기 제1해쉬값과 동일한 연산자로 연산한 결과를 제1해쉬값과 비교하여 사물기기(100)의 펌웨어의 무결성을 검증하고, 제2인증서(CertAS)를 검증하여 인증 서버(300)를 인증한다(S60).
전술한 바와 같이, 제조사 서버(400)는 사물기기(100)에 제1해쉬값이 포함된 QR코드를 부여한 상태이고, 제조된 사물기기(100) 별로 식별값 및 식별값에 대응되는 펌웨어값을 매칭하여 저장하고 있다. 따라서, 제조사 서버(400)는, 수신된 식별값(IDD)과 검색된 펌웨어값(FWD)을 비트 연접하고, 비트 연접한 결과를 해쉬 연산한 값을 제1해쉬값과 비교함으로써 사물기기(100)의 펌웨어를 검증할 수 있다.
제조사 서버(400)는 제1해쉬값이 연산한 값과 일치하면 사물기기(100)의 펌웨어에 결손이나 부정합이 없는 것으로 판단할 수 있다. 반면, 제1해쉬값과 연산한 값이 일치하지 않으면 해당 사물기기(100)의 펌웨어의 무결성이 손상된 것이므로 제조사 서버(400)는 인증 서버(300)에 대해 페일(Fail) 신호를 송신하고, 이후의 과정을 진행하지 않을 수 있다.
또한, 제조사 서버(400)는 제2인증서(CertAS)를 검증한 결과, 인증 서버(300)가 인증된 경우에 한해서 제3암호화 메시지를 송신할 수 있다.
다음으로, 사물기기(100)의 펌웨어 무결성 및 인증 서버(300)에 대한 검증이 완료되면, 제조사 서버(400)는 인증 서버(300)의 제2공개키(PubKeyAS)로 사물기기(100)에 대해 기 설정된 초기키(IKD)를 암호화한 제3암호화 메시지를 생성하여 인증 서버(300)로 송신한다(S70).
이와 같이, 본 발명의 실시예에서는 제조사 서버(400)가 사물기기(100)를 대신하여 인증 서버(300)를 인증하고, 사물기기(100)의 펌웨어를 검증한 결과를 인증 서버(300)로 송신함으로써 사물기기(100)와 인증 서버(300) 간의 신뢰성을 확보할 수 있다.
제조사 서버(400)가 상기 초기키(IKD)를 암호화하여 인증 서버(300)로 송신하는 것은, 신뢰성이 확보되지 않은 컨트롤러(200)가 PSKD를 획득하지 못하게 하기 위함이다. 즉, 사물기기(100)는 인증 서버(300)에 의해 생성된 PSKD를 컨트롤러(200)를 통해 수신하는데, PSKD를 그대로 전달할 경우 이를 컨트롤러(200)가 획득하는 문제가 생길 수 있다.
따라서, 본 발명의 실시예에서는 인증 서버(300)가 해당 사물기기(100)의 초기키(IKD)로 암호화된 PSKD를 컨트롤러(200)로 송신할 수 있도록 초기키(IKD)를 암호화하여 인증 서버(300)로 송신한다.
일 실시예에 있어서, 제2암호화 메시지에 트랜젝션 아이디(TIDD)가 포함된 경우, 제조사 서버(400)는 트랜젝션 아이디(TIDD)를 추가로 포함하여 제3암호화 메시지를 생성할 수 있다. 이에 따라, 인증 서버(300)는 트랜젝션 아이디(TIDD)를 통해 제3암호화 메시지가 해당 사물기기(100)의 트랜젝션에 해당하는 것인지 판단할 수 있다.
다른 실시예에 있어서, 제2암호화 메시지에 제2타임 스탬프(TS2)가 포함된 경우, 제조사 서버(400)는 제2타임 스탬프(TS2)를 미리 약속된 정도로 변형한 값을 더 포함하여 제3암호화 메시지를 생성할 수 있다. 예컨대, 제조사 서버(400)는 제2타임 스탬프(TS2)를 1만큼 증가시킨 값을 더 포함하여 제3암호화 메시지를 생성할 수 있다.
이에 따라, 인증 서버(300)는 제2타임 스탬프(TS2)가 변형된 값에 기초하여 제3암호화 메시지가 생성되어 송신된 시간을 확인하여 공격자의 재전송 공격을 막을 수 있다. 구체적으로, 인증 서버(300)와 제조사 서버(400)가 암호화 메시지를 송수신하는 짧은 시간 사이에 공격자가 재전송 공격을 수행할 수 있는데, 이 경우 인증 서버(300)는 재전송 공격에 의한 암호화 메시지를 정상으로 판단하게 될 수 있다. 따라서, 본 발명의 실시예에서 제조사 서버(400)는 수신된 제2타임 스탬프(TS2)를 변형하여 제3암호화 메시지에 포함시킴으로써, 인증 서버(300)가 공격자의 재전송 공격을 감지할 수 있도록 한다.
다음으로, 인증 서버(300)는 제2랜덤 넌스(RNAS)를 생성하고, 제1랜덤 넌스(RND)와 제2랜덤 넌스(RNAS)를 이용하여 PSKD를 생성한다(S80). 일 실시예에서, 제2랜덤 넌스(RNAS)는 128bit의 랜덤 숫자일 수 있으나 이에 한정되는 것은 아니다.
구체적으로, 인증 서버(300)는 아래의 수학식 2를 통해 사물기기(100)와의 암호화된 통신을 위한 PSKD를 생성할 수 있다.
이와 같이, 인증 서버(300)는 사물기기(100)에 의해 랜덤하게 생성되는 제1랜덤 넌스(RND)와 인증 서버(300)가 랜덤하게 생성한 제2랜덤 넌스(RNAS)를 이용하여 PSKD를 생성함으로써 사물기기(100) 별로 상이하게 PSKD를 생성할 수 있다. 또한, PSKD를 생성하기 위해 사용되는 연산자는 이에 한정되지 않으므로 인증 서버(300)는 다양한 연산자를 이용하여 PSKD를 생성할 수 있다.
다음으로, 인증 서버(300)는 제3암호화 메시지에 포함된 초기키(IKD)로 PSKD를 암호화한 암호화 PSKD를 생성하고, 컨트롤러(200)와 공유하는 보안키(SKCS)로 상기 암호화 PSKD를 암호화한 제4암호화 메시지를 생성하여 컨트롤러(200)로 송신한다(S90).
구체적으로, 인증 서버(300)는 인증 서버(300)의 개인키로 제3암호화 메시지를 복호화하여 사물기기(100)의 초기키(IKD)를 획득할 수 있으므로, 획득한 초기키(IKD)로 PSKD를 암호화할 수 있다.
이와 같이, 본 발명의 실시예에서는 초기키(IKD)로 PSKD를 암호화하여 컨트롤러(200)로 전달함으로써, 컨트롤러(200)가 PSKD를 획득하지 못하게 한다. 반면, 사물기기(100)는 제조사 서버(400)로부터 초기키(IKD)를 할당받았기 때문에 인증 서버(300)가 생성한 PSKD를 획득할 수 있다.
일 실시예에 있어서, 제3암호화 메시지에 트랜젝션 아이디(TIDD)가 포함된 경우, 인증 서버(300)는 트랜젝션 아이디(TIDD)를 추가로 포함하여 제4암호화 메시지를 생성할 수 있다. 이에 따라, 컨트롤러(200)는 트랜젝션 아이디(TIDD)를 통해 제4암호화 메시지가 해당 사물기기(100)의 트랜젝션에 해당하는 것인지 판단할 수 있다.
다른 실시예에 있어서, 제1암호화 메시지에 제1타임 스탬프(TS1)가 포함된 경우, 인증 서버(300)는 제1타임 스탬프(TS1)를 미리 약속된 정도로 변형한 값을 더 포함하여 제4암호화 메시지를 생성할 수 있다. 예컨대, 인증 서버(300)는 제1타임 스탬프(TS1)를 1만큼 증가시킨 값을 더 포함하여 제4암호화 메시지를 생성할 수 있다.
이에 따라, 컨트롤러(200)는 제1타임 스탬프(TS1)가 변형된 값에 기초하여 제4암호화 메시지가 생성되어 송신된 시간을 확인하여 공격자의 재전송 공격을 막을 수 있다. 구체적으로, 컨트롤러(200)와 인증 서버(300)가 암호화 메시지를 송수신하는 짧은 시간 사이에 공격자가 재전송 공격을 수행할 수 있는데, 이 경우 컨트롤러(200)는 재전송 공격에 의한 암호화 메시지를 정상으로 판단하게 될 수 있다. 따라서, 본 발명의 실시예에서 인증 서버(300)는 수신된 제1타임 스탬프(TS1)를 변형하여 제4암호화 메시지에 포함시킴으로써, 컨트롤러(200)가 공격자의 재전송 공격을 감지할 수 있도록 한다.
다음으로, 컨트롤러(200)는 암호화 PSKD 및 인증 서버(300)의 아이피 주소 및 포트 정보를 포함하는 제2소켓 정보(SockAS)를 비접촉 근거리 통신을 이용하여 사물기기(100)로 송신한다(S100).
즉, 컨트롤러(200)는 사물기기(100)에 할당된 초기키(IKD)를 알지 못하므로 암호화 PSKD를 그대로 사물기기(100)로 전달한다. 따라서, 본 발명의 실시예에서는 컨트롤러(200)가 PSKD를 획득하지 못하게 함으로써 사물기기(100)의 보안을 더욱 강화할 수 있다.
일 실시예에 있어서, 제4암호화 메시지에 트랜젝션 아이디(TIDD)가 포함된 경우, 컨트롤러(200)는 트랜젝션 아이디(TIDD)를 추가로 송신할 수 있다.
다음으로, 사물기기(100)는 초기키(IKD)로 암호화 PSKD를 복호화하여 PSKD를 획득하고, 초기키(IKD)를 인증 서버(300)에서 생성한 PSKD로 갱신한다(S110).
상기와 같은 과정을 통해, 컴퓨팅 자원이 제한되는 사물기기(100)는 NFC와 같은 비접촉 근거리 통신을 통해 중간자 공격 유무를 확인하면서 PSKD를 생성하는데 필요한 정보를 컨트롤러(200)로 송신하고, 인증 서버(300)에서 생성된 PSKD를 수신하는 방식으로 공장에서 출하될 당시에 제조사 서버(400)에 의해 할당된 초기키(IKD)를 PSKD로 갱신할 수 있다.
다음으로, 사물기기(100)는 PSKD로 사물기기(100)의 인증을 위한 제2해쉬값을 암호화한 제5암호화 메시지를 생성하여 인증 서버(300)로 송신한다(S120).
구체적으로, 단계 S100에서 사물기기(100)는 암호화 PSKD와 함께 제2소켓 정보(SockAS)를 수신하므로, 제2소켓 정보(SockAS)에 포함된 아이피 주소와 포트 정보를 식별하고, 해당 정보에 대응되는 인증 서버(300)로 제5암호화 메시지를 송신할 수 있다.
이와 같이, 사물기기(100)는 인증 서버(300)에 의해 생성된 PSKD를 이용하여 인증 서버(300)와 직접 통신할 수 있게 된다.
구체적으로, 제2해쉬값은 아래의 수학식 3에 의해 연산될 수 있다.
즉, 제2해쉬값은 사물기기(100)의 식별값(IDD)과 사물기기(100)가 생성한 제1랜덤 넌스(RND)를 비트 연접하고, 비트 연접한 결과를 해쉬 연산한 값을 의미한다.
일 실시예에 있어서, 단계 S100에서 트랜젝션 아이디(TIDD)를 추가로 수신한 경우, 사물기기(100)는 트랜젝션 아이디(TIDD)를 제5암호화 메시지와 함께 송신할 수 있다. 이에 따라, 인증 서버(300)는 트랜젝션 아이디(TIDD)를 통해 제5암호화 메시지가 해당 사물기기(100)의 트랜젝션에 해당하는 것인지 판단할 수 있다.
다른 실시예에 있어서, 사물기기(100)는 PSKD의 유효 시간(Valid Time, VTD)을 제5암호화 메시지와 함께 인증 서버(300)로 송신할 수 있다. 유효 시간(VTD)은 설정된 PSKD를 얼마나 오랫동안 사용할 것인지를 나타내는 시간으로, 사물기기(100)의 보안 중요도에 따라 다르게 설정될 수 있다. 예컨대, 보안 중요도가 높은 사물기기(100)의 경우 유효 시간(VTD)이 짧게 설정되어 PSKD를 자주 갱신하도록 설정되고, 보안 중요도가 낮은 사물기기(100)의 경우 유효 시간(VTD)이 길게 설정되어 PSKD를 자주 갱신하지 않도록 설정될 수 있다.
다음으로, 인증 서버(300)는 제5암호화 메시지를 복호화하여 제2해쉬값을 획득하고, 제2해쉬값에 기초하여 인증된 사물기기(100)를 등록한다(S120).
구체적으로, 인증 서버(300)는 단계 S30에서 수신한 식별값(IDD)과 제1랜덤 넌스(RND)를 비트 연접하고, 비트 연접한 결과를 해쉬 연산한 값을 제2해쉬값과 비교함으로써 사물기기(100)를 인증할 수 있다.
인증 서버(300)는 제2해쉬값이 연산한 값과 일치하면 제5암호화 메시지를 송신한 사물기기(100)가 상기의 단계(S10 내지 S20)를 통해 등록을 요청한 사물기기(100)인 것으로 판단하고, 단계 S40에서 가등록한 식별값(IDD)으로 사물기기(100)를 등록한다. 반면, 제2해쉬값과 연산한 값이 일치하지 않으면 제5암호화 메시지를 송신한 사물기기와 등록을 요청한 사물기기가 동일하지 않으므로 인증 서버(300)는 단계 S40에서의 가등록을 취소한다.
상기에서는, 사물기기(100)의 공장 출하시 사물기기(100)를 등록하기 위해 단계 S10 내지 S120이 수행되는 예를 설명하였으나, 본 발명은 이미 등록된 사물기기(100)의 PSKD를 재설정하기 위해 구현될 수도 있다.
상기와 같은 과정을 통해, 컴퓨팅 자원이 제한되는 사물기기(100)는 NFC와 같은 비접촉 근거리 통신을 통해 인증 서버(300)에서 생성된 PSKD를 수신하고, PSKD를 이용하여 인증 서버(300)와 안전하게 통신할 수 있다.
도 3 및 도 4는 본 발명의 실시예에 따른 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법에 의해 설정된 비밀키의 보안을 검증하기 위한 프로토콜 및 검증 결과를 나타내는 도면이다.
본 발명에 따라 설정된 비밀키의 보안 안정성을 확인하기 위해 보안 프로토콜의 검증, 위조 여부를 분석해주는 도구인 Scyther를 사용하였다. Scyther 도구는 사전에 다수의 claim을 정의하고 있으며, 일례로 Alive, Secret, Niagree, Nysynch 등의 claim을 정의하고 있다. Alive는 송신자가 송신하는 메시지를 수신자가 응답할 수 있음을 검증하는 claim이고, Secret는 송신한 메시지가 도청 공격에 대응할 수 있는지를 확인하는 claim이고, Niagree, Nysynch의 Ni는 Non-Injective의 약어로 동기 및 협약에 재전송 공격에 취약한지를 검증하기 위한 claim이다.
프로토콜의 동작 절차 및 송수신 메시지는 SPDL(Security Protocol Description Language)로 기술된다. 도 3 및 도 4에 도시된 D는 사물기기(100)를 나타내고, C는 컨트롤러(200)를 나타내고, AS는 인증 서버(300)를 나타내고, MS는 제조사 서버(400)를 나타낸다.
도 3에 도시된 바와 같이, 메시지를 주고 받는 주체로서 사물기기(100), 컨트롤러(200), 인증 서버(300), 및 제조사 서버(400)를 정의하고, send 및 recv를 통해 메시지를 주고 받는다.
Scyther 도구는 각 보안 속성을 만족할 경우 상태 정보(Status)가 OK로 출력되고, 만족하지 않는 경우 상태 정보가 Fail로 표시된다.
도 4에 도시된 바와 같이, 사물기기(100), 컨트롤러(200), 인증 서버(300), 및 제조사 서버(400)는 모든 보안 속성의 상태 정보가 OK로 출력되었기 때문에, 재전송 공격이나 반사 공격에 의해 거짓 데이터가 유입되어 제안 프로토콜의 보안이 취약하게 되는 문제로부터 안전함을 확인할 수 있다.
본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 사물기기 200: 컨트롤러
300: 인증 서버 400: 제조사 서버
300: 인증 서버 400: 제조사 서버
Claims (23)
- 사물인터넷(Internet of Things, IoT) 환경에서 동작하는 사물기기를 제조한 제조사 서버의 제1소켓 정보, 상기 사물기기의 펌웨어 검증을 위한 제1해쉬값, 및 상기 제조사 서버의 제1인증서를 포함하는 코드 이미지가 부여된 상기 사물기기의 상기 코드 이미지가 컨트롤러에 의해 스캔되면, 상기 사물기기가 상기 사물기기의 식별값 및 상기 사물기기가 생성한 제1랜덤 넌스를 비접촉 근거리 통신을 이용하여 상기 컨트롤러로 송신하는 제1단계;
상기 컨트롤러가 상기 식별값, 상기 제1랜덤 넌스, 상기 제1해쉬값, 및 상기 제1소켓 정보를 암호화한 제1암호화 메시지를 생성하여 상기 제1인증서와 함께 인증 서버로 송신하는 제2단계;
상기 인증 서버가 상기 식별값으로 상기 사물기기를 가등록하고, 상기 제1인증서를 이용하여 상기 제조사 서버를 인증하는 제3단계;
상기 제조사 서버가 인증되면 상기 인증 서버가 상기 식별값 및 상기 제1해쉬값을 암호화한 제2암호화 메시지를 생성하여 상기 인증 서버의 제2인증서와 함께 상기 제1소켓 정보에 대응되는 제조사 서버로 송신하는 제4단계;
상기 제조사 서버가 상기 제1해쉬값에 기초하여 상기 사물기기의 펌웨어를 검증하고, 상기 제2인증서를 이용하여 상기 인증 서버를 인증하는 제5단계;
상기 사물기기의 펌웨어가 검증되면, 상기 제조사 서버가 상기 사물기기에 대해 기 설정된 초기키를 암호화한 제3암호화 메시지를 생성하여 상기 인증 서버로 송신하는 제6단계;
상기 인증 서버가 상기 제1랜덤 넌스와 상기 인증 서버가 생성한 제2랜덤 넌스를 미리 정해진 연산자로 연산하여 PSKD를 생성하는 제7단계;
상기 인증 서버가 상기 초기키로 상기 PSKD를 암호화한 암호화 PSKD를 생성하고, 상기 암호화 PSKD를 암호화한 제4암호화 메시지를 생성하여 상기 컨트롤러로 송신하는 제8단계; 및
상기 컨트롤러가 상기 암호화 PSKD 및 상기 인증 서버의 제2소켓 정보를 상기 비접촉 근거리 통신을 이용하여 상기 사물기기로 송신하는 제9단계를 포함하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제1항에 있어서,
상기 제9단계 이후에,
상기 사물기기가 상기 PSKD로 상기 초기키를 갱신하고, 상기 PSKD로 상기 사물기기의 인증을 위한 제2해쉬값을 암호화한 제5암호화 메시지를 생성하여 상기 제2소켓 정보에 대응되는 인증 서버로 송신하는 제10단계; 및
상기 인증 서버가 상기 제1암호화 메시지에 포함된 상기 식별값 및 상기 제1랜덤 넌스를 비트 연접한 결과값을 해쉬 연산하고 상기 제2해쉬값과 비교하여 상기 사물기기를 인증하고, 상기 인증된 사물기기를 등록하는 제11단계를 더 포함하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제2항에 있어서,
상기 제1해쉬값은, 상기 식별값과 상기 사물기기의 펌웨어값을 비트 연접한 결과값을 해쉬 연산한 값이고,
상기 제2해쉬값은, 상기 식별값과 상기 제1랜덤 넌스를 비트 연접한 결과값을 해쉬 연산한 값인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제3항에 있어서,
상기 제5단계에서, 상기 제조사 서버는 상기 제2암호화 메시지에 포함된 식별값 및 상기 식별값에 대응되는 상기 사물기기의 펌웨어값을 비트 연접한 결과값을 해쉬 연산하고, 상기 해쉬 연산한 값과 상기 제2암호화 메시지에 포함된 제1해쉬값을 비교하여 상기 사물기기의 펌웨어를 검증하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제1항에 있어서,
상기 제1암호화 메시지 및 상기 제4암호화 메시지는 상기 인증 서버가 상기 컨트롤러와 공유하는 보안키로 암호화된 것이고,
상기 제2암호화 메시지는 상기 제조사 서버의 제1공개키로 암호화된 것이고,
상기 제3암호화 메시지는 상기 인증 서버의 제2공개키로 암호화된 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제2항에 있어서,
상기 제1암호화 메시지, 상기 제2암호화 메시지, 상기 제3암호화 메시지, 및 상기 제4암호화 메시지는 트랜젝션을 구별하기 위해 상기 컨트롤러가 생성한 트랜젝션 아이디(Transaction ID)를 더 포함하여 암호화된 메시지이고,
상기 제9단계에서, 상기 컨트롤러는 상기 트랜젝션 아이디를 추가로 상기 사물기기로 송신하고,
상기 제10단계에서, 상기 사물기기는 상기 트랜젝션 아이디를 상기 제5암호화 메시지와 함께 상기 인증 서버로 송신하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제1항에 있어서,
상기 제1암호화 메시지는 상기 컨트롤러와 상기 인증 서버 사이에서의 재전송 공격(Replay Attack)을 막기 위한 제1타임 스탬프(Time Stamp)를 더 포함하여 암호화된 메시지이고,
상기 제2암호화 메시지는 상기 인증 서버와 상기 제조사 서버 사이에서의 재전송 공격을 막기 위한 제2타임 스탬프를 더 포함하여 암호화된 메시지인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제7항에 있어서,
상기 제3암호화 메시지는 상기 제2타임 스탬프를 1만큼 증가시킨 값을 더 포함하여 암호화된 메시지이고,
상기 제4암호화 메시지는 상기 제1타임 스탬프를 1만큼 증가시킨 값을 더 포함하여 암호화된 메시지인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제2항에 있어서,
상기 사물기기는 상기 PSKD의 유효 시간을 상기 제5암호화 메시지와 함께 상기 인증 서버로 송신하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제1항에 있어서,
상기 비접촉 근거리 통신은 NFC(Near Field Communication)인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제1항에 있어서,
상기 코드 이미지는 바코드, QR코드 및 컬러짚(Colorzip) 코드 중 적어도 하나를 포함하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제1항에 있어서,
상기 미리 정해진 연산자는 배타적 논리합(eXclusive OR, XOR) 연산자인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 사물인터넷(Internet of Things, IoT) 환경에서 동작하는 사물기기를 제조한 제조사 서버의 제1소켓 정보, 상기 사물기기의 펌웨어 검증을 위한 제1해쉬값, 및 상기 제조사 서버의 제1인증서를 포함하는 코드 이미지가 부여된 상기 사물기기의 상기 코드 이미지가 컨트롤러에 의해 스캔되면, 상기 사물기기가 상기 사물기기의 식별값 및 상기 사물기기가 생성한 제1랜덤 넌스를 상기 컨트롤러를 통해 인증 서버로 송신하는 단계;
상기 컨트롤러를 통해 상기 인증 서버가 상기 제조사 서버로부터 수신한 초기키로 상기 인증 서버에 의해 생성된 PSKD(Pre Shared Key)를 암호화한 암호화 PSKD 및 상기 인증 서버의 제2소켓 정보를 수신하는 단계; 및
상기 제조사 서버에 의해 기 할당된 상기 초기키로 상기 암호화 PSKD에서 상기 PSKD를 획득하여 상기 초기키를 갱신하고, 상기 인증 서버가 상기 사물기기를 인증할 수 있도록 상기 PSKD로 상기 사물기기의 인증을 위한 제2해쉬값을 암호화한 암호화 메시지를 상기 제2소켓 정보에 대응되는 인증 서버로 송신하는 단계를 포함하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제13항에 있어서,
상기 제1해쉬값은, 상기 식별값과 상기 사물기기의 펌웨어값을 비트 연접한 결과값을 해쉬 연산한 값이고,
상기 제2해쉬값은, 상기 식별값과 상기 제1랜덤 넌스를 비트 연접한 결과값을 해쉬 연산한 값인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제13항에 있어서,
상기 수신하는 단계에서, 상기 사물기기는 트랜젝션을 구별하기 위해 상기 컨트롤러가 생성한 트랜젝션 아이디(Transaction ID)를 추가로 수신하고,
상기 인증 서버로 송신하는 단계에서, 상기 사물기기는 상기 트랜젝션 아이디 및 상기 PSKD의 유효 기간(Valid Time)을 추가로 상기 인증 서버로 송신하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제13항에 있어서,
상기 사물기기는 상기 컨트롤러와 NFC(Near Field Communication)를 이용하여 통신하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제13항에 있어서,
상기 코드 이미지는 바코드, QR코드 및 컬러짚(Colorzip) 코드 중 적어도 하나를 포함하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 사물인터넷(Internet of Things, IoT) 환경에서 동작하는 사물기기를 인증 및 등록하는 인증 서버가, 컨트롤러를 통해 상기 사물기기의 식별값, 상기 사물기기가 생성한 제1랜덤 넌스, 제조사 서버의 제1소켓 정보, 및 상기 사물기기의 펌웨어 검증을 위한 제1해쉬값이 암호화된 제1암호화 메시지와 상기 제조사 서버의 제1인증서를 수신하는 단계;
상기 식별값으로 상기 사물기기를 가등록하고, 상기 제1인증서를 이용하여 상기 제조사 서버를 인증하는 단계;
상기 인증된 제조사 서버로 상기 식별값 및 상기 제1해쉬값을 암호화한 제2암호화 메시지를 생성하여 상기 인증 서버의 제2인증서와 함께 상기 제1소켓 정보에 대응되는 제조사 서버로 송신하는 단계;
상기 제조사 서버로부터 상기 사물기기에 대해 기 설정된 초기키를 암호화한 제3암호화 메시지를 수신하는 단계;
제2랜덤 넌스를 생성하고, 상기 제1랜덤 넌스와 상기 제2랜덤 넌스를 미리 정해진 연산자로 연산하여 PSKD(Pre Shared Key)를 생성하는 단계; 및
상기 초기키로 상기 PSKD를 암호화한 암호화 PSKD를 생성하고, 보안키로 상기 암호화 PSKD를 암호화한 제4암호화 메시지를 생성하여 상기 컨트롤러로 송신하는 단계를 포함하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제18항에 있어서,
상기 컨트롤러로 송신하는 단계 이후에,
상기 사물기기로부터 상기 사물기기의 인증을 위한 제2해쉬값을 암호화한 제5암호화 메시지를 수신하는 단계; 및
상기 식별값과 상기 제1랜덤 넌스를 비트 연접한 결과값을 해쉬 연산한 값이 상기 제2해쉬값과 일치하면 상기 사물기기를 최종 등록하는 단계를 더 포함하는 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제18항에 있어서,
상기 미리 정해진 연산자는 배타적 논리합(eXclusive OR, XOR) 연산자인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제18항에 있어서,
상기 제1암호화 메시지 및 상기 제4암호화 메시지는 상기 인증 서버가 상기 컨트롤러와 공유하는 보안키로 암호화된 것이고,
상기 제2암호화 메시지는 상기 제조사 서버의 제1공개키로 암호화된 것이고,
상기 제3암호화 메시지는 상기 인증 서버의 제2공개키(PubKeyAS)로 암호화된 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제18항에 있어서,
상기 제1암호화 메시지, 상기 제2암호화 메시지, 상기 제3암호화 메시지, 및 상기 제4암호화 메시지는 트랜젝션을 구별하기 위해 상기 컨트롤러가 생성한 트랜젝션 아이디(Transaction ID)를 더 포함하여 암호화된 메시지인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법. - 제18항에 있어서,
상기 제1암호화 메시지는 상기 컨트롤러와 상기 인증 서버 사이에서의 재전송 공격(Replay Attack)을 막기 위한 제1타임 스탬프(Time Stamp)를 더 포함하여 암호화된 메시지이고,
상기 제2암호화 메시지는 상기 인증 서버와 상기 제조사 서버 사이에서의 재전송 공격을 막기 위한 제2타임 스탬프를 더 포함하여 암호화된 메시지이고,
상기 제3암호화 메시지는 상기 제2타임 스탬프를 1만큼 증가시킨 값을 더 포함하여 암호화된 메시지이고,
상기 제4암호화 메시지는 상기 제1타임 스탬프를 1만큼 증가시킨 값을 더 포함하여 암호화된 메시지인 것을 특징으로 하는 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170088641A KR102322605B1 (ko) | 2017-07-12 | 2017-07-12 | 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170088641A KR102322605B1 (ko) | 2017-07-12 | 2017-07-12 | 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190007572A KR20190007572A (ko) | 2019-01-23 |
KR102322605B1 true KR102322605B1 (ko) | 2021-11-05 |
Family
ID=65280137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170088641A KR102322605B1 (ko) | 2017-07-12 | 2017-07-12 | 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102322605B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192389B (zh) * | 2023-04-26 | 2023-07-25 | 杭州海康威视数字技术股份有限公司 | 轻量级设备通信密钥协商方法、装置、设备及系统 |
CN117097561B (zh) * | 2023-10-18 | 2024-01-16 | 华东交通大学 | 面向工业物联网的可信设备传递身份认证方法 |
CN117409761B (zh) * | 2023-12-14 | 2024-03-15 | 深圳市声菲特科技技术有限公司 | 基于频率调制的人声合成方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015510743A (ja) | 2012-02-22 | 2015-04-09 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | デバイス識別子を不明瞭にするための方法およびデバイス |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100376118B1 (ko) * | 2001-02-23 | 2003-03-17 | 소프트포럼 주식회사 | 이중 해쉬 체인을 이용한 전자 지불 시스템 |
US20030037237A1 (en) * | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
KR101990882B1 (ko) | 2012-10-09 | 2019-09-30 | 에스케이 텔레콤주식회사 | 사물 인터넷을 위한 인증 방법과 그를 위한 디바이스 및 인증 장치 |
-
2017
- 2017-07-12 KR KR1020170088641A patent/KR102322605B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015510743A (ja) | 2012-02-22 | 2015-04-09 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | デバイス識別子を不明瞭にするための方法およびデバイス |
Also Published As
Publication number | Publication date |
---|---|
KR20190007572A (ko) | 2019-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3602991B1 (en) | Mechanism for achieving mutual identity verification via one-way application-device channels | |
US10785040B2 (en) | Secure communications | |
US10015159B2 (en) | Terminal authentication system, server device, and terminal authentication method | |
CN107659406B (zh) | 一种资源操作方法及装置 | |
JP4545197B2 (ja) | 無線ネットワークシステム及びこれを用いる通信方法 | |
US10033538B2 (en) | Method for safeguarding a network | |
US11757874B2 (en) | Mutual authentication system | |
EP2779524A1 (en) | Secure data transmission method, device and system | |
KR101762013B1 (ko) | Two factor 통신 채널을 활용한 사물기기의 등록 및 비밀키 설정 방법 | |
JP4803145B2 (ja) | 鍵共有方法、鍵配信システム | |
CN105847247A (zh) | 一种认证系统及其工作方法 | |
KR101706117B1 (ko) | 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법 | |
CN105162772A (zh) | 一种物联网设备认证与密钥协商方法和装置 | |
KR20170042549A (ko) | 제2 전자 엔티티에 의한 제1 전자 엔티티의 인증 방법 및 그러한 방법을 구현하는 전자 엔티티 | |
US9398024B2 (en) | System and method for reliably authenticating an appliance | |
RU2645597C2 (ru) | Способ аутентификации в канале скрытой передачи данных | |
CN102970676A (zh) | 一种对原始数据进行处理的方法、物联网系统及终端 | |
KR102322605B1 (ko) | 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법 | |
KR101677249B1 (ko) | 사용자 토큰을 이용하여 사물 인터넷 장치를 제어하기 위한 보안 처리 장치 및 방법 | |
US11178137B2 (en) | System for IoT devices communicating with server using a tentative common key | |
CN104219208A (zh) | 一种数据输入的方法、装置 | |
CN105554008A (zh) | 用户终端、认证服务器、中间服务器、系统和传送方法 | |
JP2016220062A (ja) | 通信装置、サーバ、署名検証委託システム及び署名検証委託方法 | |
WO2020188679A1 (ja) | 通信システム | |
KR20070043639A (ko) | 제2 장치에 신뢰 및 식별을 승인하기 위해 보안 장치를레버리지하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |