KR101776882B1 - IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치 - Google Patents

IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치 Download PDF

Info

Publication number
KR101776882B1
KR101776882B1 KR1020160135083A KR20160135083A KR101776882B1 KR 101776882 B1 KR101776882 B1 KR 101776882B1 KR 1020160135083 A KR1020160135083 A KR 1020160135083A KR 20160135083 A KR20160135083 A KR 20160135083A KR 101776882 B1 KR101776882 B1 KR 101776882B1
Authority
KR
South Korea
Prior art keywords
iot device
domain name
dns
key
name
Prior art date
Application number
KR1020160135083A
Other languages
English (en)
Inventor
정재훈
이근태
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020160135083A priority Critical patent/KR101776882B1/ko
Application granted granted Critical
Publication of KR101776882B1 publication Critical patent/KR101776882B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • H04L61/2007
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/6059
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L67/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses

Abstract

IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법은 이동 단말이 제1 키를 인증 서버로부터 수신하고, 도메인 이름 수집장치가 제2 키를 인증 서버로부터 수신하는 단계, 상기 도메인 이름 수집장치가 IoT 디바이스로부터 모델 정보가 포함된 도메인 이름 및 서명을 수신하는 단계, 상기 도메인 이름 수집장치가 상기 디지털 서명을 상기 제2 키로 복호하여 상기 서명을 검증하는 단계 및 상기 도메인 이름 수집장치가 상기 검증이 성공하면 상기 IoT 디바이스에 대한 DNS 이름을 DNS 서버에 등록하는 단계를 포함한다. 상기 제1 키 및 상기 제2 키는 인증 서버가 상기 IoT 디바이스에 대한 인증을 위해 생성하는 비대칭 키이고, 상기 서명은 상기 IoT 디바이스가 상기 이동 단말로부터 근거리 통신을 통해 전달받은 상기 제1 키를 이용하여 생성한다.

Description

IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치{SECURE DNS NAMING METHOD FOR IOT DEVICE AND ROUTER APPARATUS FOR REGISTERING DNS NAME}
이하 설명하는 기술은 보안성을 고려한 IoT 디바이스의 DNS 네이밍 기법에 관한 것이다.
IoT(Internet of Things)는 최근 가장 주목받고 있는 인터넷 관련 기술이다. IoT를 이용한 서비스는 기본적으로 인터넷에 연결된 매우 많은 디바이스를 통해 일정한 서비스를 제공할 수 있다.
DNS(Domain Name System)는 인터넷에 연결된 개체에 대한 IP 주소와 도메인 이름을 관리한다. 종래 인터넷 환경에서는 도메인 이름을 사용자가 수동으로 설정하였다.
한국공개특허 제10-2015-0066475
IoT 환경에서 IoT 디바이스는 매우 많은 개수가 사용된다. 따라서 각 IoT 디바이스에 대한 도메인 이름을 일일이 설정하는 것은 매우 번거로운 일이 된다. mDNS(multicast Domain Name System)과 같이 도메인 이름을 자동으로 부여하기 위한 기술이 있다. 대표적으로 애플(Apple)이 개발한 Bonjour와 같은 프로토콜이 있다. mDNS는 기본적으로 멀티캐스트 기반으로 네트워크에 많은 트래픽을 발생시키고, 인터넷에 연결된 디바이스가 항상 깨어 있는 경우에만 네이밍 요청 메시지에 응답할 수 있다. 또한 애플의 로컬(Local) DNS 네이밍 서비스는 로컬에서 개인(Private) IP 주소로 맵핑되어 인터넷을 통해 원격 제어를 수행하기 어렵다.
이하 설명하는 기술은 IoT 디바이스가 자동으로 생성한 도메인 이름을 DNS 서버에 등록하는 기법을 제공하고자 한다. 특히 이하 설명하는 기술은 사용자(Administrator)가 허용한 IoT 디바이스를 인증하여 인증이 성공한 IoT 디바이스의 도메인 이름만을 등록하게 하고자 한다.
IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법은 이동 단말이 제1 키를 인증 서버로부터 수신하고, 도메인 이름 수집장치가 제2 키를 인증 서버로부터 수신하는 단계, 상기 도메인 이름 수집장치가 IoT 디바이스로부터 모델 정보가 포함된 도메인 이름 및 서명을 수신하는 단계, 상기 도메인 이름 수집장치가 상기 디지털 서명을 상기 제2 키로 복호하여 상기 서명을 검증하는 단계 및 상기 도메인 이름 수집장치가 상기 검증이 성공하면 상기 IoT 디바이스에 대한 DNS 이름을 DNS 서버에 등록하는 단계를 포함한다.
다른 측면에서 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법은 이동 단말이 제1 키를 인증 서버로부터 수신하고, 도메인 이름 수집장치가 제2 키를 인증 서버로부터 수신하는 단계, 상기 이동 단말이 IoT 디바이스로부터 모델 정보가 포함된 도메인 이름을 수신하는 단계, 상기 이동 단말이 상기 제1 키를 이용하여 서명을 생성하는 단계, 상기 도메인 이름 수집 장치가 상기 이동 단말로터 상기 도메인 이름 및 상기 서명을 수신하는 단계, 상기 도메인 이름 수집장치가 상기 서명을 상기 제2 키로 복호하여 상기 서명을 검증하는 단계 및 상기 도메인 이름 수집장치가 상기 검증이 성공하면 상기 IoT 디바이스에 대한 DNS 이름을 DNS 서버에 등록하는 단계를 포함한다. 상기 제1 키 및 상기 제2 키는 인증 서버가 상기 IoT 디바이스에 대한 인증을 위해 생성한 비대칭 키이다.
IoT 디바이스에 대한 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치는 IoT 디바이스로부터 모델 정보가 포함된 도메인 이름 및 인증 서버가 전달한 제1 키로 암호화한 서명을 수신하고, 상기 인증 서버로부터 수신한 제2 키로 상기 서명을 복호하여 상기 서명을 검증하고, 상기 검증이 성공하면 상기 IoT 디바이스에 대한 DNS 이름을 DNS 서버에 등록한다. 상기 제1 키 및 상기 제2 키는 인증 서버가 상기 IoT 디바이스에 대한 인증을 위해 생성하는 비대칭 키이고, 상기 제1 키는 이동 단말이 상기 인증 서버로부터 수신한 것을 근거리 통신을 통해 상기 이동 단말로부터 상기 IoT 디바이스가 전달받은 것이다.
다른 측면에서 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치는 이동 단말로부터 IoT 디바이스의 모델 정보가 포함된 도메인 이름 및 인증 서버가 전달한 제1 키로 암호화한 서명을 수신하고, 상기 인증 서버로부터 수신한 제2 키로 상기 서명을 복호하여 상기 서명을 검증하고, 상기 검증이 성공하면 상기 IoT 디바이스에 대한 DNS 이름을 DNS 서버에 등록한다. 상기 제1 키 및 상기 제2 키는 인증 서버가 상기 IoT 디바이스에 대한 인증을 위해 생성하는 비대칭 키이고, 상기 제1 키는 이동 단말이 상기 인증 서버로부터 전달받은 것이다.
이하 설명하는 기술은 IoT 디바이스에 대한 모델 정보 등을 포함하는 도메인 이름을 제공하여 도메인 이름을 기반으로 다양한 서비스 제공이 가능하다. 또한 이하 설명하는 기술은 도메인 이름으로 식별되는 디바이스에 대한 원격 제어가 가능하다. 나아가 이하 설명하는 기술은 보안 요소를 추가하여 인증된 IoT 디바이스에 대한 도메인 등록을 수행한다.
도 1은 종래 DNS의 구성을 도시한 블록도의 예이다.
도 2는 DNSNA의 구성을 도시한 블록도의 예이다.
도 3은 DNSNA에서 IoT 디바이스가 도메인 이름을 생성하는 과정에 대한 예이다.
도 4는 DNSNA에서 IoT 디바이스에 대한 도메인 이름을 등록하는 과정에 대한 예이다.
도 5는 DNSNA에서 클라이언트 장치가 IoT 디바이스를 제어하는 과정에 대한 예이다.
도 6은 댁내에서 사용하는 IoT 디바이스에 대한 DNS 이름에 대한 예이다.
도 7은 댁내에서 사용하는 IoT 디바이스에 대한 DNS 이름의 다른 예이다.
도 8은 댁내에서 사용하는 IoT 디바이스에 대한 DNS 이름의 또 다른 예이다.
도 9는 SDNSNA에서 도메인 이름을 등록하는 과정에 대한 예이다.
도 10은 SDNSNA에서 도메인 이름을 등록하는 과정에 대한 절차 흐름도의 예이다.
도 11은 SDNSNA에서 도메인 이름을 등록하는 과정에 대한 다른 예이다.
도 12는 SDNSNA에서 도메인 이름을 등록하는 과정에 대한 절차 흐름도의 다른 예이다.
도 13은 도메인 이름을 수신한 이동 단말의 화면을 도시한 예이다.
이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
이하 설명하는 기술은 보안성을 고려하여 DNS 이름을 자동으로 생성하고 관리하는 기법에 관한 것이다. 이하 설명하는 기술은 IPv6에 기반을 둔 IP 주소를 사용한다고 가정한다. 따라서 이하 설명하는 기술은 DNS 이름을 생성하고 등록하는 과정에서 IPv6 표준에서 재정된 프로토콜을 기반으로 설명한다. IPv6 표준에 정의된 프로토콜은 이미 공개된 것이므로 이하 자세한 설명은 생략한다. 다만 이하 설명하는 기술은 IPv4 등과 같은 프로토콜에도 적용이 가능하다.
도 1은 종래 DNS(100)의 구성을 도시한 블록도의 예이다. 종래 DNS(Domain Name System)은 DNS 서버(160)가 핵심적인 구성에 해당한다. 도 1에서는 "www.sample.com"이라는 서비스를 제공하는 서비스 서버(110)를 예로 도시하였다. 서비스 제공자가 서비스 서버(110)를 이용하여 인터넷으로 다른 사용자에게 특정한 서비스를 제공하기 위해서는 서비스 서버(110)에 대한 도메인 이름을 등록해야 한다. 서비스 제공자는 컴퓨터 장치(50)를 통해 DNS 서버(160)에 접근하고, 자신의 서비스 서버(110)에 대한 도메인 이름을 등록한다. DNS 서버(160)는 널리 알려진 바와 같이 도메인 이름과 도메인 이름이 나타내는 실제 IP 주소를 저장하고 관리한다. 도 1에서 DNS 서버(160)는 서비스 서버(110)에 대한 도메인 이름(www.sample.com) 및 서비스 서버(110)에 대한 IP 주소(214.11.00.124)를 저장한다. 도 1은 IPv4를 사용한 예를 도시하였다. 라우터(150)는 DNS 서버(160) 및 서비스 서버(110)에 대한 데이터 전달을 제어하는 구성이다.
이후 서비스를 제공받기 위한 사용자가 클라이언트 장치를 사용하여 도메인 이름으로 서비스 서버에 접속을 시도한다고 가정한다. 클라이언트 장치가 전달한 접속 명령은 DNS 서버(160)에서 도메인 이름에 해당하는 IP 주소를 찾아내고, 해당 IP 주소를 갖는 서비스 서버(110)에 클라이언트 장치가 접속되게 한다.
그러나 IoT 환경에서는 수많은 IoT 디바이스에 대한 도메인 이름을 일일이 설정하기가 어려울 수 있다. 따라서 이하 설명하는 기술에서 IoT 디바이스(예, 센서, 가전제품, 신호등, 자동차 등)는 IPv6 네트워크에 참여할 때 자신의 디바이스 정보를 기반으로 DNS 이름을 생성한다. 이렇게 생성된 유일한 DNS 이름은 IoT 디바이스를 위한 DNS 서버에 등록된다. 이후 사용자는 클라이언트 장치(PC, 스마트폰, 태블릿 PC 등)를 이용해서 DNS 서버를 통해 IoT 디바이스에 대한 도메인 이름을 획득하여 IoT 디바이스를 원격 제어할 수 있다. 종래 DNS와는 달리 이름을 자동으로 설정한다는 의미에서 도메인 이름을 설정하고 등록하는 시스템을 이하 DNSNA(DNS Name Autoconfiguration)라고 명명한다.
DNSNA은 IoT 디바이스를 관리하기 위해 DNS 서버(DNS Server)를 이용하여 IoT 디바이스의 유일한 이름을 생성, 등록, 관리한다. IoT 디바이스가 IPv6 네트워크에 들어올 때 IoT 디바이스는 자신의 디바이스 정보를 기반으로 현재 IPv6 네트워크에 유일한 DNS 이름을 생성한다. 생성된 DNS 이름은 라우터(Router)에 등록되고 IoT 디바이스의 정보는 동적으로 DNS 서버에 등록한다. 사용자는 클라이언트 장치를 이용해 IoT 디바이스 정보를 DNS 서버로부터 수신하여 IoT 디바이스를 원격제어를 할 수 있다.
도 2는 DNSNA(200)의 구성을 도시한 블록도의 예이다. 도 2는 IoT 디바이스(210)로 댁내에서 사용하는 냉장고를 예로 도시하였다. IoT 디바이스는 일반적으로 무선 통신을 수행하므로, 도 2는 IoT 디바이스(210)가 댁내에 있는 AP(Access Point, 230)를 통해 네트워크에 연결된 형태를 도시하였다. 라우터(250)는 도 1과 같이 DNS 서버(260) 및 IoT 디바이스(210)에 전달되는 데이터 패킷을 제어한다.
IoT 디바이스(210)는 네트워크에 최초 접속하는 경우 또는 일정한 요청이 있는 경우 자신이 직접 DNS 이름을 생성한다. 도 2에서 IoT 디바이스(210)는 "refrigerator1.samsung_RH269LP.refrigerator.home"이라는 DNS 이름을 생성하였다. IoT 디바이스가 DNS 이름을 생성하고 등록하는 과정 및 DNS 이름이 의미하는 내용은 후술한다. IoT 디바이스(210)가 생성한 DNS 이름은 DNS 서버(260)에 저장된다. DNS 서버(260)는 IoT 디바이스(210)가 전달한 DNS 이름과 해당 DNS 이름이 의미하는 IP 주소를 저장한다. 도 2에서 IP 주소는 IPv6에 따른 주소이다. 도 2에 도시한 바와 같이 IPv6에 따른 IP 주소는 콜론으로 구분된 모두 8개의 세그먼트를 갖고, 각 세그먼트는 16bits로 표현된다. IPv6는 128bits를 사용하여 IP 주소를 표현한다.
사용자는 클라이언트 장치(80)를 통해 DNS 서버(260)로부터 IoT 디바이스(210)에 대한 DNS 이름을 획득하고, IoT 디바이스(210)에 접근하여 냉장고의 상태를 확인할 수 있다. 또한 사용자는 IoT 디바이스(210)에 접근하여 냉장고를 제어할 수도 있다.
도 3은 DNSNA(200)에서 IoT 디바이스가 도메인 이름을 생성하는 과정에 대한 예이다.
IoT 디바이스(210)는 라우터(250)를 통해 DNSSL(DNS Search list, DNS 검색 리스트) 옵션(option)을 수신한다(①). DNSSL은 IoT 디바이스가 도메인 이름을 등록하는 과정에서 사용하는 DNS 도메인 서픽스(suffix)의 리스트이다. DNSSL에는 복수의 DNS 서픽스가 있을 수 있다. DNSSL 옵션은 IPv6 표준에 따른 RA(Router Advertisement) 옵션 또는 DHCP(Dynamic Host Configuration Protocol) 옵션을 통해 전달된다. IPv6 표준에 따른 RA 옵션은 DNSSL 정보를 IPv6 호스트(IoT 디바이스)에 전달한다. 또한 DHCP 옵션도 DNSSL 정보를 IPv6 호스트(IoT 디바이스)에 전달한다.
IPv6 호스트인 IoT 디바이스(210)는 수신한 DNSSL 옵션이 유효한지 점검할 수 있다. DNSSL 옵션이 유효하다면 IoT 디바이스(210)는 자신의 DNS 이름을 생성한다(②). IoT 디바이스(210)는 생산 과정에서 부여되는 모델 이름 등과 같은 모델 정보를 보유한다. IoT 디바이스(210)는 모델 정보를 이용하여 DNS 이름을 생성할 수 있다. IoT 디바이스(210)는 DNS 도메인 서픽스에 자신의 디바이스 정보(예, Device Category, Vendor Name, Model Name)을 결합해서 자동으로 설정할 수 있다. 나아가 IoT 디바이스(210)는 DNS 이름은 디바이스 정보에 고유 식별자(unique_id)를 결합할 수 있다. 도 3에서 DNS 이름 중 "refrigerator1"은 동일한 모델의 디바이스를 구별하기 위한 고유 식별자이고, "samsung_RH269LP"는 제조사이름을 포함하는 모델 이름이고, "refrigerator"는 모델 카테고리이고, "home"은 DNS 도메인 서픽스에 해당한다.
IoT 디바이스(210)는 생성한 DNS 이름이 도메인 이름(subnet)에서 유일한 DNS 이름인지 여부를 확인하는 것이 바람직하다. IoT 디바이스(210)는 ND(Neighbor Discovery) 프로토콜에 따라 도메인 이름에 대한 중복 검사를 수행할 수 있다(③). IoT 디바이스(210)는 IPv6 멀티캐스트 주소(Multicast Address)로 DAD(Duplicate Address Detection)을 수행할 수 있다.
DNS 이름의 IPv6 멀티캐스트 주소는 네트워크 프리픽스(Prefix)에 해당하는 상위 64 비트를 위해 Link-Local Multicast Address Prefix인 ff02::/16를 이용하고, 네트워크 인터페이스(Network Interface) ID에 해당하는 하위 64 비트를 위해 DNS 이름에 대한 해싱값인 128 비트 중에서 MSB(Most Significant Bit)를 포함하는 상위 64비트를 취한다. IoT 디바이스(210)는 ND 프로토콜에 따라 DNS 이름에 해당하는 해싱값을 이용하여 DAD 과정을 수행한다.
도메인 이름이 중복된 경우 IoT 디바이스(210)는 종전의 도메인 이름에서 디바이스의 고유 식별자를 새로운 식별자로 변경한 새로운 도메인 이름을 생성하고, 새로운 도메인 이름에 대한 중복 검사를 수행한다. IoT 디바이스(210)가 도메인 이름에서 중복되지 않은 도메인 이름을 생성했다고 확인해야 도메인 이름 생성과정이 종료된다.
만약 DNSSL에 복수의 DNS 도메인 서픽스가 있는 경우 IoT 디바이스(210)는 모든 DNS 도메인 서픽스에 대해 각각 도메인 이름 생성 과정을 반복한다.
도 4는 DNSNA(200)에서 IoT 디바이스에 대한 도메인 이름을 등록하는 과정에 대한 예이다. 도 3에서 IoT 디바이스(210)는 자신의 DNS 이름을 생성하였고, 도메인 이름에서 중복되지 않는다는 것을 확인한 상태이다.
네트워크에 연결된 도메인 이름 수집 장치가 IoT 디바이스(210)에 도메인 이름을 묻고(Query), 응답으로 수신한 IoT 디바이스(210)의 도메인 이름은 DNS 서버(260)에 저장하게 된다. 도메인 이름 수집 장치는 네트워크 구성 중 IoT 디바이스(210)의 도메인 이름에 대한 등록 과정을 제어한다. 일반적으로 도메인 이름 수집 장치는 IoT 디바이스(210)의 도메인 이름을 관리하는 장치일 수 있다. 도 4에서는 라우터(250)가 IoT 디바이스(210)에 대한 도메인 이름을 수집한다.
라우터(250)은 먼저 IoT 디바이스(210)에 대해 DNS 이름을 요청한다. 라우터(250)는 NI(Node Information) 프로토콜을 이용하여 IoT 디바이스(210)에 DNS 이름을 묻는다(NI query,①). 이 과정은 종래 NI 프로토콜에서 새로운 NI query가 필요하다. 즉, NI 타입에 대한 새로운 코드가 정의되어야 한다. IoT 디바이스(210)는 NI query에 대한 응답으로 자신의 DNS 이름을 전달한다(NI reply,②).
한편 NI query는 동일한 서브넷에 있는 IoT 디바이스에 멀티캐스트로 전달될 수 있다. 이 경우 도메인 이름에 있는 복수의 IoT 디바이스들은 서로 다른 시간에 NI reply를 하는 것이 바람직하다. 따라서 복수의 IoT 디바이스들은 각각 임의(Random)로 지연된 시간을 두고 NI reply를 전송할 수 있다.
라우터(250)는 NI reply를 통해 수신한 IoT 디바이스(210)의 DNS 이름을 DNS 서버(260)에 전송하고, DNS 서버(260)는 IoT 디바이스(210)의 DNS 이름을 저장한다(③). 경우에 따라서 DNS 서버(260)에 이미 도메인 이름이 존재하는 IoT 디바이스가 있을 수 있다. 후술하겠지만 IoT 디바이스의 도메인 이름에 위치 정보 등이 들어갈 수 있기 때문에 IoT 디바이스가 이동하면 도메인 이름도 변경될 수 있다. 따라서 이 경우 DNS 서버(260)는 IoT 디바이스에 대한 DNS 이름을 새롭게 수신한 DNS 이름으로 업데이트한다. 라우터(250)는 IoT 디바이스(210)의 도메인 이름과 함께 IPv6의 IP 주소를 수집하여 DNS 서버(260)에 함께 저장한다.
도 5는 DNSNA(200)에서 클라이언트 장치가 IoT 디바이스를 제어하는 과정에 대한 예이다. 도 5는 도4와 같이 DNS 서버(260)에 IoT 디바이스(210)에 대한 DNS 이름이 저장된 상태를 전제로 한다.
사용자는 스마트폰과 같은 클라이언트 장치(80)를 통해 IoT 디바이스(210)에 대한 정보를 확인하거나, IoT 디바이스(210)를 제어할 수 있다. 클라이언트 장치(80)는 DNS 서버(260)에 접속하여 네트워크에 존재하는 IoT 디바이스(210)에 대한 DNS 이름을 획득한다(①). 도 5에서는 하나의 IoT 디바이스(210)만을 도시하였으나, 네트워크에는 다수의 IoT 디바이스들이 있을 수 있다. 이 경우 클라이언트 장치(80)는 DNS 서버(260)로부터 네트워크에 존재하는 다수의 IoT 디바이스들에 대한 DNS 이름을 획득할 수 있다. 클라이언트 장치(80)는 획득한 DNS 이름을 이용하여 IoT 디바이스(210)에 접근할 수 있다. 이후 클라이언트 장치(80)는 IoT 디바이스(210)인 냉장고의 정보를 확인하거나, 냉장고의 동작을 제어할 수 있다.
DNS 이름은 IoT 디바이스의 모델 이름, IoT 디바이스의 종류를 나타내는 모델 카테고리, 동일한 모델 이름을 갖는 IoT 디바이스 마다 서로 다른 디바이스 식별자 및 IoT 디바이스의 네트워크 도메인 중 적어도 하나를 포함할 수 있다. DNS 이름은 IoT 디바이스의 모델과 관련된 정보(모델 정보)를 DNS 이름에 갖는 것이 특징이다.
도 6은 댁내에서 사용하는 IoT 디바이스에 대한 DNS 이름에 대한 예이다. 도 6에서 DNS 이름은 IoT 디바이스의 제품 종류(카테고리) 및 도메인 이름으로 구성된다. 도 6은 DNS 이름이 IoT 디바이스의 모델 정보 중 모델 카테고리에 해당하는 정보를 포함한 예이다. 도 6에서 도메인 이름은 "home"이고, 도메인 이름 앞에 위치한 정보가 모델 카테고리에 해당한다. 도 6에서 TV는 "tv.home", 냉장고는 "refrigerator.home", 세탁기는 "washer.home", 통풍팬(fan)은 "fan.home", 난방기구인 히터는 "heater.home", 컴퓨터는 "computer.home", 전화기는 "phone.home", 체중계는 "scale.home"이란 DNS 이름을 갖는다.
DNS 이름에 도메인 이름 외에 모델 카테고리가 포함되면, DNS 이름이 IoT 디바이스에 대한 정보를 제공하게 된다. 물론 DNS 이름에 포함된 모델 정보가 어떤 의미인지에 대해서는 사전에 정의되고, 공유되어야 할 것이다. 예컨대, 사용자는 자신의 스마트폰을 통해 DNS 서버에 접속하여 DNS 이름을 획득하면, 스마트폰은 사전에 정의된 규약에 따라 모델 카테고리를 기준으로 도 6과 같이 댁내(home)에 어떠한 종류의 IoT 디바이스가 있는지 표시할 수 있다.
DNS 이름은 아래의 표 1과 같은 형태를 가질 수 있다.
Figure 112016100921734-pat00001
unique_id는 도메인 이름에 존재하는 동일한 모델에 대해 서로 다른 고유 식별자를 의미한다. device_model은 IoT 디바이스를 제조한 제조자 또는 판매자가 제공하는 모델 이름을 말한다. 모델 이름에는 제품을 생산한 제조자의 이름이 포함될 수 있다. device_category는 IoT 디바이스의 모델 카테고리를 나타낸다. domain_name은 IoT 디바이스가 갖는 네트워크 도메인의 DNS 서픽스를 의미한다. 물론 DNS 이름을 구성하는 요소의 순서는 표1과 다를 수 있다. 모델 이름 및 모델 카테고리는 사전에 IoT 디바이스에 저장된 정보에 해당한다. 고유 식별자는 DNS 이름 생성 과정에서 IoT 디바이스가 생성하는 정보이다. DNS 서픽스는 DNSSL에 포함되어 전달된 정보이다.
예컨대, 도 3에서 IoT 디바이스(210)는 "refrigerator1.samsung_RH269LP. refrigerator.home"이란 DNS 이름을 생성하였다. 이미 설명한 바와 같이 "refrigerator1"은 동일한 모델의 디바이스를 구별하기 위한 고유 식별자이고, "samsung_RH269LP"는 제조사이름을 포함하는 모델 이름이고, "refrigerator"는 모델 카테고리이고, "home"은 DNS 도메인 서픽스에 해당한다.
한편 IoT 디바이스의 개체 수가 많을 경우 모델 정보만으로는 IoT 디바이스를 구분하기 어려울 수 있다. 이 경우 DNS 이름은 IoT 디바이스의 위치 정보라는 추가적인 정보를 포함할 수 있다. 장치의 구별 가능성과는 관계없이 DNS 이름에 포함되는 위치 정보는 새로운 정보를 사용자에게 제공할 수 있다. 위치 정보가 포함된 DNS 이름의 예는 아래의 표 2와 같다.
Figure 112016100921734-pat00002
표 2의 DNS 이름은 표1의 DNS 이름에 location_of_device가 추가되었다. location_of_device는 IoT 디바이스의 위치 정보를 의미한다. 위치 정보는 IoT 디바이스가 사전에 미리 획득한 것을 전제로 한다.
위치 정보는 다음과 같이 다양한 방법으로 수집이 가능하다. (1) IoT 디바이스가 GPS 센서와 같은 위치 추적 장치를 갖고 있다면 GPS 좌표와 같은 절대적인 좌표 정보를 사용할 수 있다. GPS 좌표 정보와 같이 위성 신호를 이용하는 경우 주로 실외에 배치되는 IoT 디바이스가 좌표를 획득할 수 있다. 또는 실내 통신 신호(WiFi 등)를 이용하여 실내에서 위치 측위를 하는 시스템이 있는 경우, IoT 디바이스는 실내에서의 위치 정보도 획득할 수 있다.
(2) IoT 디바이스가 가속도 센서, 지자기 센서 등을 내장하고 있다면 특정 기준 지점을 기준으로 IoT 디바이스가 이동하여 위치한 지점에 대한 상대적인 위치 정보를 생성할 수 있다. 예컨대, 댁내에 배치되는 IoT 디바이스는 댁내의 구조를 사전에 알고 있다는 전제하에 출입문과 같은 기준 위치에서 이동을 시작하여 배치되는 위치를 파악할 수 있다.
(3) 특정 영역에 이미 일정한 위치 정보를 보유하고 있는 다른 IoT 디바이스나 장치가 있다고 가정하면, IoT 디바이스는 무선 통신을 통해 통신 가능한 거리에 특정 IoT 디바이스가 있다는 것을 알 수 있다. 따라서 IoT 디바이스는 주변에 있는 다른 장치의 위치 정보를 참조하여 자신의 위치를 대략 추정할 수 있다. 또한 IoT 디바이스는 통신 가능한 거리에 다수의 위치 정보를 갖고 있는 장치가 3개 이상 있다면 서로 주고받는 신호의 세기를 이용하여, 자신이 주변 장치와의 사이에서 어떤 위치에 있는지 비교적 정확하게 파악할 수도 있다.
(4) IoT 디바이스에 대한 위치 정보를 획득하는 별도의 장치를 사용할 수도 있다. 예컨대, 사용자가 자신의 실외 또는 실내에서 위치를 측위할 수 있는 장치를 이용하여 근처에 배치된 IoT 디바이스에 IoT 디바이스의 위치 정보를 전달할 수 있다.
도 7은 댁내에서 사용하는 IoT 디바이스에 대한 DNS 이름의 다른 예이다. 도 7은 댁내에서 사용하는 IoT 디바이스가 모델 정보 및 위치 정보를 사용하여 DNS 이름을 생성한 예를 도시한다.
도 7은 댁내에서의 각 공간(거실, 주방, 침실 등)을 알파벳(A, B, C, D, E 및 F)로 표시하였다. 각 구역에 있는 IoT 디바이스의 DNS 이름은 아래의 표 3과 같다.
영역 IoT 디바이스 DNS 이름
A 에어컨 air_conditioner1.samsung_AC64.air conditiner.bed_room1.home
B 스마트TV smart_tv1.samsung_HG32N.smart_tv.living_room.home
C 에어컨 air_conditioner2.samsung_AC64.air conditiner.bed_room2.home
D 에어컨 air_conditioner3.samsung_AC64.air conditiner.bed_room3.home
E 냉장고 refrigerator1.samsung.regrigerator.home
F 세탁기 washer.home
F로 표시된 세탁실에 있는 세탁기의 DNS 이름은 모델 카테고리 및 도메인 이름 이름을 포함한다. E로 표시된 주방에 있는 냉장고의 DNS 이름은 고유 식별자,제조사만 표시된 모델 이름, 모델 카테고리 및 도메인 이름 이름을 포함한다. B로 표시된 거실에 있는 스마트 TV의 DNS 이름은 고유 식별자, 모델 이름, 모델 카테고리, 위치 정보(living_room) 및 도메인 이름 이름을 포함한다.
A, C 및 D로 표시된 침실에 있는 에어컨도 각각 고유 식별자, 모델 이름, 모델 카테고리, 위치 정보 및 도메인 이름 이름을 DNS 이름으로 갖는다. A, C 및 D로 표시된 침실에 있는 에어컨은 모델 이름이 동일하다. 따라서 고육 식별자가 각각 air conditioner1, air conditioner2 및 air conditioner3로 각각 다르다. 또한 각 에어컨이 위치한 위치 정보도 bed_room1, bed_room2 및 bed_room3으로 서로 다르다. 도 7과 같은 비교적 작은 영역에서 사용되는 IoT 디바이스라면 고유 식별자를 사용하지 않고, 위치 정보만으로도 서로 구분 가능할 수도 있다.
사용자는 IoT 디바이스의 상태를 확인할 수 있고, 각 IoT 디바이스를 제어할 수도 있다. 도 7에서 사용자는 댁내에 있는 WiFi AP를 이용하여 인터넷을 통해 댁내에 배치된 IoT 디바이스에 접속할 수 있다.
전술한 DNS 이름은 장치의 모델 이름 내지 모델 카테고리를 포함하였다. DNS 이름은 모델 이름 대신에 장치를 특정하기 위한 다른 정보를 포함할 수도 있다. 예컨대, DNS 이름은 아래의 표 4와 같이 모델 이름 내지 모델 카테고리 대신에 object_identifier를 포함할 수 있다. object_identifier는 국제표준화기구인 ISO/IEC이 객체에 대한 ID를 위해 ISO/IEC 9834-1:2012를 제정하였고, 사물 통신을 위한 사실 표준화 단체인 oneM2M에서 사물을 식별하는데 사용하자고 제안한 정보이다. object_identifier는 M2M 노드 ID(M2M node indication ID), 제조사 ID(Manufacturer ID), 모델 ID(Model ID), 시리얼 ID(Serial Number ID)를 포함한다. M2M 노드 ID는 M2M 노드를 관리하는 주체(예컨대, 국가, 조직 등)에 대한 식별자를 포함한다. object_identifier은 제조사 식별자, 모델 식별자 및 제품에 대한 시리얼 정보를 포함한다. 결국 object_identifier도 IoT 디바이스에 대한 모델 정보를 포함한다.
Figure 112016100921734-pat00003
unique_id는 동일한 도메인 서픽스(domain_name)에 존재하는 동일한 모델에 대해 서로 다른 고유 식별자를 의미한다. domain_name은 IoT 디바이스가 갖는 네트워크 도메인의 DNS 서픽스를 의미한다. 물론 DNS 이름을 구성하는 요소의 순서는 표1과 다를 수 있다.
나아가 DNS 이름은 아래의 표 5와 같이 object_identifier와 함께 IoT 디바이스의 위치 정보를 더 포함할 수 있다.
Figure 112016100921734-pat00004
표 5의 DNS 이름은 표4의 DNS 이름에 location_of_device가 추가되었다. location_of_device는 IoT 디바이스의 위치 정보를 의미한다. 위치 정보는 IoT 디바이스가 사전에 미리 획득한 것을 전제로 한다.
도 8은 댁내에서 사용하는 IoT 디바이스에 대한 DNS 이름의 또 다른 예이다. 도 8은 댁내에서 사용하는 IoT 디바이스가 object_identifier 및 위치 정보를 사용하여 DNS 이름을 생성한 예를 도시한다. 도 8은 댁내에서의 각 공간(거실, 주방, 침실 등)을 알파벳(A, B, C, D, E 및 F)로 표시하였다. 각 구역에 있는 IoT 디바이스의 DNS 이름은 아래의 표 6과 같다.
영역 IoT 디바이스 DNS 이름
A 에어컨 air_conditioner1.object_identifier2.bed_room1.home
B 스마트TV smart_tv1.object_identifier1.living_room.home
C 에어컨 air_conditioner2.object_identifier3.bed_room2.home
D 에어컨 air_conditioner3.object_identifier4.bed_room3.home
E 냉장고 refrigerator1.object_identifier5.kitchen.home
F 세탁기 washer1.object_identifier6.laundry_room.home
A, C 및 D로 표시된 침실에 있는 에어컨의 DNS 이름은 각각 고유 식별자, object_identifier, 위치 정보 및 도메인 서픽스(home)를 갖는다. A, C 및 D로 표시된 침실에 있는 에어컨은 모델 이름이 동일하다. 따라서 고육 식별자가 각각 air_conditioner1, air_conditioner2 및 air_conditioner3로 각각 다르다. 또한 각 에어컨이 위치한 위치 정보도 bed_room1, bed_room2 및 bed_room3으로 서로 다르다. 도 8과 같은 비교적 작은 영역에서 사용되는 IoT 디바이스라면 고유 식별자를 사용하지 않고, 위치 정보만으로도 서로 구분 가능할 수도 있다.
B로 표시된 영역에 있는 스마트 TV의 DNS 이름은 고유 식별자(smart_tv1), object_identifier, 위치 정보(living_room) 및 도메인 서픽스(home)를 포함한다. E로 표시된 영역에 있는 냉장고의 DNS 이름은 고유 식별자(refrigerator1), object_identifier, 위치 정보(living_room) 및 도메인 서픽스(home)를 포함한다. F로 표시된 영역에 있는 세탁기의 DNS 이름은 고유 식별자(washer1), object_identifier, 위치 정보(laundry_room) 및 도메인 서픽스(home)를 포함한다.
사용자는 IoT 디바이스의 상태를 확인할 수 있고, 각 IoT 디바이스를 제어할 수도 있다. 도 8에서 사용자는 댁내에 있는 AP를 이용하여 인터넷을 통해 댁내에 배치된 IoT 디바이스에 접속할 수 있다. 또는 사용자는 댁내에 있는 AP를 통해 직접 근거리 통신을 통해 IoT 디바이스에 접속할 수 있다.
이하 전술한 DNSNA에 기반하여 보안성을 갖는 도메인 이름 생성 및 등록 과정에 대해 설명한다. 이하 보안성을 갖는 DNSNA를 SDNSNA(Secure DNSNA)라고 명명한다.
도 9는 SDNSNA(300)에서 도메인 이름을 등록하는 과정에 대한 예이다. SDNSNA(300)는 IoT 디바이스(310), 이동 단말(320), 인증 서버(340), 라우터(350) 및 DNS 서버(360)를 포함한다.
인증 서버(340)는 IoT 디바이스(310)에 대한 인증을 수행하기 위한 비대칭키 쌍을 생성한다. SDNSNA는 기본적으로 디지털 서명(Digital Signature) 방식에 기반한 인증을 수행한다고 가정한다. 디지털 서명 방식은 DSA(Digital Signature Algorithm), RSA(Rivest-Shamir-Adleman) 방식, ElGamal 방식, Rabin 방식 등이 있다. 물론 SDNSNA는 다양한 방식의 다른 인증 기법을 사용할 수도 있다.
이동 단말(320)은 보안성이 보장된 채널을 통해 인증 서버(340)에 접속한다. 예컨대, 이동 단말(320)은 인증 서버(340)과 TSL, SSH 등과 같은 기법으로 보안성이 보장된 채널을 수립한다. 이동 단말(320)은 IoT 디바이스(310)가 위치한 영역의 AP(330)를 통해 인증 서버(340)에 접속할 수 있다. 또는 이동 단말(320)은 별도의 이동 통신 네트워크를 통해 인증 서버(340)에 접속할 수도 있다. 이동 단말(320)은 인증 서버(340)가 생성한 키 중 비밀키에 해당하는 제1 키(서명용 키, Signing Key)를 전달받는다. 이동 단말(320)은 제1 키를 IoT 디바이스(310)에 전달한다. 이동 단말(320)은 근거리 통신을 통해 제1 키를 IoT 디바이스(310)에 전달한다. 즉 사용자가 이동 단말(320)을 소지하고, IoT 디바이스(310)와 통신 가능한 거리에 접근하여 제1 키를 IoT 디바이스(310)에 전달한다.
도 9에서 IoT 디바이스(310)는 일 예로 냉장고를 도시하였다. 전술한 바와 같이 IoT 디바이스(310)는 도메인 이름을 생성한다. 추가적으로 IoT 디바이스(310)는 수신한 제1 키를 이용하여 디지털 서명을 생성한다. IoT 디바이스(310)는 도메인 이름, 도메인 이름에 대응하는 IPv6 주소 및 디지털 서명을 라우터(350)에 전달한다.
라우터(350)는 인증 서버(340)로부터 공용키에 해당하는 제2 키(검증용 키, Verification Key)를 수신한다. 라우터(350)는 제2 키를 이용하여 IoT 디바이스(310)로부터 수신한 서명을 검증한다. 라우터(350)는 전술한 도메인 이름 수집 장치에 해당한다.
SDNSNA에서 이용하는 인증 방식에 따라 구체적인 알고리즘이 상이할 수 있다. 디지털 서명 방식을 기준으로 설명하면 (1) IoT 디바이스(310)는 도메인 이름 전체 또는 일부를 제1 키로 암호화하여 서명을 생성한다. 라우터(350)는 제2 키로 서명을 복호하고, 복호한 메시지와 IoT 디바이스(310)로부터 수신한 도메인 이름이 일치하는지 확인한다. 라우터(350)는 복호한 메시지와 도메인 이름이 동일하면 검증이 성공했다고 판단한다. (2) 또는 IoT 디바이스(310)는 도메인 이름 전체 또는 일부를 해싱한 값을 제1 키로 암호화하여 서명을 생성한다. 라우터(350)는 IoT 디바이스(310)에서 사용한 동일한 해싱 함수로 수신한 도메인 이름 전체 또는 일부를 해싱한다. 라우터(350)는 제2 키로 서명을 복호하고, 복호한 값과 사전에 도메인 이름을 해싱한 값이 일치하는지 확인한다. 라우터(350)는 복호한 값과 도메인 이름을 해싱한 값이 동일하면 검증이 성공했다고 판단한다.
라우터(350)는 서명에 대한 검증이 성공하면 해당 도메인 이름 및 IPv6 주소를 DNS 서버(360)에 등록한다.
도 10은 SDNSNA에서 도메인 이름을 등록하는 과정(400)에 대한 절차 흐름도의 예이다.
이동 단말(320)은 인증 서버(340)와 보안 채널을 수립한다(401). 이동 단말(320)은 인증 서버(340)에 IoT 디바이스(310)의 DNS 이름 등록을 위한 인증 정보를 요청한다(411). 인증 서버(340)는 전술한 비대칭키 쌍(제1 키 및 제2 키)를 생성한다(412). 인증 서버(340)는 생성한 제1 키(서명용 키)를 이동 단말(320)에 전달한다(413). 또한 인증 서버(340)는 생성한 제2 키(검증용 키)를 라우터(350)에 전달한다(414).
이동 단말(320)은 근거리 통신으로 제1 키를 IoT 디바이스(310)에 전달한다. 근거리 통신은 IEEE 802.11 기반의 통신, IEEE 802.15 기반의 통신 기법 등을 포함한다. 예컨대, 근거리 통신은 NFC, 와이파이, 블루투스 또는 Zigbee 중 적어도 하나에 해당할 수 있다.
IoT 디바이스(310)는 자신의 DNS 네임을 생성하기 위해서 라우터(350)로부터 IPv6 프로토콜에 따른 RA 옵션 또는 DHCP 옵션을 통해 DNS 검색 리스트가 포함된 메시지를 수신하여 자신의 디바이스 정보와 수신한 DNS 검색 리스트에 있는 DNS 서픽스를 결합하여 DNS 이름을 생성할 수 있다. IoT 디바이스(310)는 수신한 제1 키를 이용하여 전술한 바와 같이 DNS 등록 메시지에 대해 디지털 서명을 생성할 수 있다. 즉, IoT 디바이스(310)는 DNS 이름과 IPv6 주소를 포함한 DNS 등록 메시지에 대해 디지털 서명을 생성한다(431).
한편 IoT 디바이스(350)는 IPv6 프로토콜의 ND 프로토콜에 따라 상기 도메인 이름에 대한 중복 검사를 수행할 수 있다. 도메인 이름이 중복된 경우 전술한 바와 같이 IoT 디바이스(350)는 새로운 식별자를 포함하는 새로운 도메인 이름을 생성할 수 있다.
이후 라우터(350)는 NI 프로토콜을 이용하여 IoT 디바이스(310)에 DNS 이름을 묻는다(441). 이 과정은 종래 NI 프로토콜에서 새로운 NI query가 필요하다. 즉, NI 타입에 대한 새로운 코드가 정의되어야 한다. IoT 디바이스(310)는 NI query에 대한 응답으로 자신의 DNS 이름가 IPv6 주소를 포함하는 NI reply를 생성하고, 이 메시지에 대해 디지털 서명을 생성한 뒤 NI reply를 라우터(350) 전달한다(442).
한편 NI query는 동일한 서브넷에 있는 IoT 디바이스에 멀티캐스트로 전달될 수 있다. 이 경우 도메인 이름에 있는 복수의 IoT 디바이스들은 서로 다른 시간에 NI reply를 하는 것이 바람직하다. 따라서 복수의 IoT 디바이스들은 각각 임의로 지연된 시간을 두고 NI reply를 전송할 수 있다.
라우터(350)는 인증 서버(340)로부터 수신한 제2 키를 이용하여 IoT 디바이스(310)가 전달한 디지털 서명을 검증한다(451). 서명에 대한 검증이 성공하면 라우터(350)는 IoT 디바이스(310)의 도메인 이름과 함께 IPv6의 IP 주소를 DNS 서버(360)에 저장한다(461).
한편 IoT 디바이스(310)는 이동할 수 있다. 예컨대, IoT 디바이스(310)가 차량일 경우 위치가 변경될 수 있다. 이 경우 도메인 이름이 변경될 수 있다. 전술한 바와 같이 도메인 이름에 위치 정보 등이 포함될 수 있기 때문이다. 종래 DNS 서버(360)에 도메인 이름이 등록되어 있는 IoT 디바이스인 경우, 라우터(350)는 새로운 도메인 이름을 업데이트(DNS 업데이트)한다.
도 11은 SDNSNA(500)에서 도메인 이름을 등록하는 과정에 대한 다른 예이다. 즉 이동단말이 다수의 IoT 디바이스들의 DNS 정보를 라우터 대신에 이동 라우터로서 수집하고 라우터에게 요청하여 DNS 서버에 해당 정보들을 일괄적으로 등록하는 과정을 기술하고자 한다.
SDNSNA(500)는 IoT 디바이스(510), 이동 단말(520), 인증 서버(540), 라우터(550) 및 DNS 서버(560)를 포함한다. 도 11은 복수의 IoT 디바이스(510A, 510B 및 510C)를 도시한다.
인증 서버(540)는 IoT 디바이스(510)에 대한 인증을 수행하기 위한 비대칭키 쌍을 생성한다. SDNSNA는 기본적으로 디지털 서명 방식에 기반한 인증을 수행한다고 가정한다.
이동 단말(520)은 보안성이 보장된 채널을 통해 인증 서버(540)에 접속한다. 예컨대, 이동 단말(520)은 인증 서버(340)과 TSL, SSH 등과 같은 기법으로 보안성이 보장된 채널을 수립한다. 이동 단말(520)은 IoT 디바이스(510)가 위치한 영역의 AP(530)을 통해 인증 서버(540)에 접속할 수 있다. 또는 이동 단말(520)은 별도의 이동 통신 네트워크를 통해 인증 서버(540)에 접속할 수도 있다. 이동 단말(520)은 인증 서버(540)가 생성한 키 중 비밀키에 해당하는 제1 키(서명용 키)를 전달받는다.
이동 단말(520)은 근거리 통신을 통해 IoT 디바이스(510)로부터 도메인 이름을 수집한다. 이동 단말(520)은 NI 질의 메시지를 IoT 디바이스(510)에 전달하여 도메인 이름을 요청한다. 도 11에서 IoT 디바이스(510)는 일 예로 냉장고(510A), 세탁기(510B) 및 TV(510C)를 도시하였다. 전술한 바와 같이 IoT 디바이스(510)는 도메인 이름을 생성한다. IoT 디바이스(310)는 NI 응답(NI reply)으로 생성한 도메인 이름 및 도메인 이름에 대응하는 IPv6 주소를 이동 단말(520)에 전달한다. 이동 단말(520)은 제1 키를 이용하여 도메인 이름을 등록하고자 하는 특정 IoT 디바이스에 대한 디지털 서명을 생성한다.
라우터(550)는 NI 프로토콜을 이용하여 이동 단말(520)에게 DNS 이름을 요청한다. 이 과정은 종래 NI 프로토콜에서 새로운 NI query가 필요하다. 즉, NI 타입에 대한 새로운 코드가 정의되어야 한다. 이동 단말(520)은 NI query에 대한 응답으로 특정 IoT 디바이스에 대한 DNS 이름, IPv6 주소 및 디지털 서명을 라우터(550)에 전달한다.
라우터(550)는 인증 서버(540)로부터 공용키에 해당하는 제2 키(검증용 키)를 수신한다. 라우터(550)는 제2 키를 이용하여 이동 단말(520)로부터 수신한 서명을 검증한다. 라우터(550)는 서명에 대한 검증이 성공하면 해당 도메인 이름 및 IPv6 주소를 DNS 서버(660)에 등록한다.
도 12는 SDNSNA에서 도메인 이름을 등록하는 과정(600)에 대한 절차 흐름도의 다른 예이다.
이동 단말(520)은 인증 서버(540)와 보안 채널을 수립한다(601). 이동 단말(520)은 인증 서버(540)에 IoT 디바이스(510)의 DNS 이름 등록을 위한 인증 정보를 요청한다(611). 인증 서버(540)는 전술한 비대칭키 쌍(제1 키 및 제2 키)를 생성한다(612). 인증 서버(540)는 생성한 제1 키(서명용 키)를 이동 단말(520)에 전달한다(613). 또한 인증 서버(540)는 생성한 제2 키(검증용 키)를 라우터(550)에 전달한다(614).
IoT 디바이스(510)는 라우터(550)로부터 IPv6 프로토콜에 따른 RA 옵션 또는 DHCP 옵션을 통해 DNS 검색 리스트가 포함된 메시지를 수신하면 DNS 이름을 생성할 수 있다. IoT 디바이스(510)는 DNS 이름을 생성한다(621).
이동 단말(520)은 IoT 디바이스의 DNS 네임 수집을 위한 이동 라우터로서 근거리 통신으로 IoT 디바이스(510)에 NI 질의로 도메인 이름을 요청한다(631). 이 과정은 종래 NI 프로토콜에서 새로운 NI query가 필요하다. 즉, NI 타입에 대한 새로운 코드가 정의되어야 한다. 한편 NI query는 동일한 서브넷에 있는 IoT 디바이스에 멀티캐스트로 전달될 수 있다. 이 경우 도메인 이름에 있는 복수의 IoT 디바이스(510)들은 서로 다른 시간에 NI reply를 하는 것이 바람직하다. 따라서 복수의 IoT 디바이스들은 각각 임의로 지연된 시간을 두고 NI reply를 전송할 수 있다. IoT 디바이스(310)는 NI query에 대한 응답으로 자신의 DNS 이름, IPv6 주소 및 디지털 서명을 전달한다(442).
근거리 통신은 IEEE 802.11 기반의 통신, IEEE 802.15 기반의 통신 기법 등을 포함한다. 예컨대, 근거리 통신은 NFC, 와이파이, 블루투스 또는 Zigbee 중 적어도 하나에 해당할 수 있다. IoT 디바이스(510)는 NI 응답으로 생성한 DNS 이름 및 IPv6 주소를 이동 단말(520)에 전달한다(632).
라우터(350)는 NI 프로토콜을 이용하여 이동 단말(520)에 DNS 이름을 묻는다(641). 이 과정은 종래 NI 프로토콜에서 새로운 NI query가 필요하다. 즉, NI 타입에 대한 새로운 코드가 정의되어야 한다. 이동 단말(520)은 요청받은 또는 사용자로부터 선택된 특정 IoT 디바이스에 대한 디지털 서명을 생성한다(642). 이동 단말(520)는 인증 서버(540)로부터 수신한 제1 키를 이용하여 특정 도메인 이름을 기준으로 디지털 서명을 생성한다. 이동 단말(520)은 NI query에 대한 응답으로 특정 IoT 디바이스에 대한 DNS 이름, IPv6 주소 및 디지털 서명을 라우터(550)에 전달한다(643).
라우터(550)는 인증 서버(540)로부터 수신한 제2 키를 이용하여 이동 단말(520)이 전달한 디지털 서명을 검증한다(651). 서명에 대한 검증이 성공하면 라우터(550)는 IoT 디바이스(510)의 도메인 이름과 함께 IPv6의 IP 주소를 DNS 서버(560)에 저장한다(661).
한편 IoT 디바이스(510)는 이동할 수 있다. 예컨대, IoT 디바이스(510)가 차량일 경우 위치가 변경될 수 있다. 이 경우 도메인 이름이 변경될 수 있다. 전술한 바와 같이 도메인 이름에 위치 정보 등이 포함될 수 있기 때문이다. 종래 DNS 서버(560)에 도메인 이름이 등록되어 있는 IoT 디바이스인 경우, 라우터(550)는 새로운 도메인 이름을 업데이트(DNS 업데이트)한다.
특정 IoT 디바이스에 대한 도메인 이름이 중복되는 경우 라우터(550)는 DNS 서버(560)로부터 도메인 이름 등록 실패 메시지를 수신할 수 있다(671). 이 경우 라우터(550)는 도메인 이름 등록 실패에 대한 정보를 NI 질의로 이동 단말(520) 및/또는 IoT 디바이스(510)에 전달할 수 있다(672, 673). 등록 실패 메시지를 수신한 이동 단말(520)은 다시 IoT 디바이스(510)에 도메인 이름을 요청할 수 있고, IoT 디바이스(510)는 자신의 식별자를 변경한 새로운 도메인 이름을 이동 단말(520)에 전송할 수 있다. 이후 전술한 과정을 거쳐 도메인 이름 등록을 수행하게 된다.
이동 단말(520)은 복수의 IoT 디바이스(510)에 대해 NI 질의로 도메인 이름 생성을 요청할 수 있다. 이 경우 이동 단말(520)은 복수의 IoT 디바이스(510)에 대한 도메인 이름 목록을 저장하고 관리할 수 있다. 도 13은 도메인 이름을 수신한 이동 단말의 화면을 도시한 예이다. 도 13은 이동 단말(520)의 화면에 3개의 도메인 이름을 출력하였다. 라우터(550)가 도메인 이름 등록을 위한 요청을 한 경우 사용자는 이동 단말(520)에 표시된 목록 중 특정 도메인 이름을 선택하여 이후 도메인 이름 등록 절차를 진행할 수 있다. 도메인 이름에 모델 정보, 위치 정보 등이 포함되기 때문에 사용자는 특정한 IoT 디바이스를 식별할 수 있다. 도 13은 사용자가 거실(living room)에 있는 스마트 TV(smart tv)를 선택한 예를 도시한다(굵은 실선으로 표시하였음). 이후 이동 단말(520)은 선택된 도메인 이름에 대한 디지털 서명을 생성한다. 이동 단말(520)은 선택된 도메인 이름, IPv6 주소 및 생성한 디지털 서명을 라우터(550)에 전달한다.
본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.
50 : 컴퓨터 장치
100 : DNS
110 : 서비스 서버
150 : 라우터
160 : DNS 서버
80 : 클라이언트 장치
200 : DNSNA
210 : IoT 디바이스
230 : AP
250 : 라우터
260 : DNS 서버
300 : SDNSNA
310 : IoT 디바이스
320 : 이동 단말
330 : AP
340 : 인증 서버
350 : 라우터
360 : DNS 서버
500 : SDNSNA
510 : IoT 디바이스
520 : 이동 단말
530 : AP
540 : 인증 서버
550 : 라우터
560 : DNS 서버

Claims (20)

  1. 인증 서버가 서명용 키인 제1 키를 이동 단말로 전송하고, 상기 제1 키에 대한 검증용 키인 제2 키를 도메인 이름 수집장치로 전송하는 단계;
    상기 이동 단말이 근거리 통신을 통해 상기 제1 키를 IoT(Internet of Things) 디바이스로 전달하는 단계;
    상기 IoT 디바이스가 상기 제1 키를 이용하여 상기 IoT 디바이스의 도메인 이름의 적어도 일부를 암호화한 디지털 서명을 생성하는 단계;
    상기 IoT 디바이스가 상기 디지털 서명, 상기 도메인 이름 및 상기 도메인 이름에 대응되는 IPv6 주소를 상기 도메인 이름 수집장치로 전송하는 단계;
    상기 도메인 이름 수집장치가 상기 디지털 서명을 상기 제2 키로 복호하고, 복호 결과가 상기 도메인 이름과 동일한지 판단함으로써 상기 디지털 서명을 검증하는 단계; 및
    상기 도메인 이름 수집장치가 상기 검증에 성공하면 상기 IoT 디바이스로부터 수신한 상기 도메인 이름 및 상기 IPv6 주소를 DNS(Domain Name System) 서버에 등록하는 단계; 를 포함하되,
    상기 제1 키 및 상기 제2 키는 상기 인증 서버가 상기 IoT 디바이스에 대한 인증을 위해 생성되는 비대칭 키인, IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 도메인 이름은 상기 IoT 디바이스의 모델 이름, 상기 IoT 디바이스의 생산자, 상기 IoT 디바이스의 판매자, 상기 IoT 디바이스의 모델 카테고리, 동일한 모델 이름을 갖는 IoT 디바이스를 구별하는 식별자 및 상기 IoT 디바이스의 네트워크 도메인 중 적어도 하나를 포함하는 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  4. 제1항에 있어서,
    상기 도메인 이름은 상기 IoT 디바이스에 대한 위치 정보를 더 포함하는 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  5. 제1항에 있어서,
    상기 IoT 디바이스는 IPv6 프로토콜의 ND(neighbor discovery) 프로토콜에 따라 상기 도메인 이름에 대한 중복 검사를 수행하고, 상기 도메인 이름이 중복된 경우 상기 IoT 디바이스는 새로운 식별자를 포함하는 새로운 도메인 이름을 생성하는 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  6. 제1항에 있어서,
    상기 도메인 이름 수집장치는 IPv6의 NI(Node Information) 프로토콜에 따라 상기 도메인 이름과 상기 IPv6 주소를 상기 DNS 서버에 등록하는 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  7. 제1항에 있어서,
    상기 근거리 통신은 NFC(Near Field Communication), 와이파이, 블루투스 또는 Zigbee 중 적어도 하나인 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  8. 제1항에 있어서,
    상기 도메인 이름은 상기 IoT 디바이스가 IPv6 프로토콜에 따른 RA(Router Advertisement) 옵션 또는 DHCP(Dynamic Host Configuration Protocol) 옵션을 통해 DNS 검색 리스트가 포함된 메시지를 수신하면 상기 IoT 디바이스가 자신의 모델 정보 및 위치 정보를 포함하여 생성하는 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  9. 제1항에 있어서,
    상기 도메인 이름 수집장치는 IPv6 프로토콜에 따른 NI(Node Information) 질의를 상기 IoT 디바이스에 전송하고, 상기 NI 질의에 대한 NI 응답으로 상기 도메인 이름 및 상기 디지털 서명을 수신하는 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. IoT(Internet of Things) 디바이스로부터 모델 정보가 포함된 도메인 이름, 상기 도메인 이름에 대응되는 IPv6 주소 및 인증 서버가 전달한 서명용 키인 제1 키로 상기 도메인 이름의 적어도 일부를 암호화한 디지털 서명을 수신하고, 상기 인증 서버로부터 수신한 검증용 키인 제2 키로 상기 디지털 서명을 복호하고, 복호 결과가 상기 도메인 이름과 동일한지 판단함으로써 상기 디지털 서명을 검증하고, 상기 검증에 성공하면 상기 IoT 디바이스로부터 수신한 상기 도메인 이름 및 상기 IPv6 주소를 DNS(Domain Name System) 서버에 등록하되,
    상기 제1 키 및 상기 제2 키는 상기 인증 서버가 상기 IoT 디바이스에 대한 인증을 위해 생성되는 비대칭 키인, IoT 디바이스에 대한 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치.
  20. 삭제
KR1020160135083A 2016-10-18 2016-10-18 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치 KR101776882B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160135083A KR101776882B1 (ko) 2016-10-18 2016-10-18 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160135083A KR101776882B1 (ko) 2016-10-18 2016-10-18 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치

Publications (1)

Publication Number Publication Date
KR101776882B1 true KR101776882B1 (ko) 2017-09-08

Family

ID=59926003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160135083A KR101776882B1 (ko) 2016-10-18 2016-10-18 IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치

Country Status (1)

Country Link
KR (1) KR101776882B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110099064A (zh) * 2019-05-08 2019-08-06 广州创想云科技有限公司 一种基于物联网的文件处理方法、装置、设备和存储介质
US20210367775A1 (en) * 2020-05-21 2021-11-25 Sectigo, Inc. Devices, Systems, And Methods For Providing Security To IoT Networks And Sensors
US11509622B2 (en) * 2020-12-15 2022-11-22 Sap Se Facilitating communication between resources in different network environments

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140304785A1 (en) * 2012-01-26 2014-10-09 National Institute Of Information And Communications Technology Method for securing name registries, network access and data communication in id/locator split-base networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140304785A1 (en) * 2012-01-26 2014-10-09 National Institute Of Information And Communications Technology Method for securing name registries, network access and data communication in id/locator split-base networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. Jeong외 2명, "DNS Name Autoconfiguration for Internet of Things Devices", Network Working Group, IETF, draft-jeong-6man-iot-dns-autoconf-00 (2015.10.14.)*

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110099064A (zh) * 2019-05-08 2019-08-06 广州创想云科技有限公司 一种基于物联网的文件处理方法、装置、设备和存储介质
CN110099064B (zh) * 2019-05-08 2021-07-09 广州创想云科技有限公司 一种基于物联网的文件处理方法、装置、设备和存储介质
US20210367775A1 (en) * 2020-05-21 2021-11-25 Sectigo, Inc. Devices, Systems, And Methods For Providing Security To IoT Networks And Sensors
US11509622B2 (en) * 2020-12-15 2022-11-22 Sap Se Facilitating communication between resources in different network environments

Similar Documents

Publication Publication Date Title
CN110235456B (zh) 智能设备入网方法、移动终端、云服务器、设备及系统
KR102318279B1 (ko) 무선 통신 시스템에서 인증 정보 송수신 방법 및 장치
US10778637B2 (en) Method for naming domain name system (DNS) for internet of things (IoT) device
KR101908618B1 (ko) 디지털 홈에서의 스마트 객체 식별
CN106851632B (zh) 一种智能设备接入无线局域网的方法及装置
KR101144016B1 (ko) Wi?Fi 신호지문 데이터베이스 확보 방법 및 이를 위한 시스템
KR101328779B1 (ko) 이동 단말기, 서버 및 이를 이용한 정보 제공 방법
JP5890037B2 (ja) 位置認識リソースロケータ
WO2020103360A1 (zh) 设备配网方法、装置、家电设备和服务器
WO2013118511A1 (ja) 設定方法、機器認証方法、機器認証システム、およびコントローラ
KR101937388B1 (ko) Dns 명칭 설정 방법 및 이를 위한 장치
JP5030681B2 (ja) 機器設定装置、ネットワーク機器、機器名設定方法および機器名設定プログラム
JP5276592B2 (ja) ネットワーク・アクセスを獲得するためのシステムおよび方法
KR102010488B1 (ko) 안전한 사물 인터넷 단말 원격 접속 시스템 및 그 방법, ip 주소 할당 방법
CN112737902B (zh) 网络配置方法和装置、存储介质及电子设备
WO2018210401A1 (en) Topic handling in mqtt networks
KR101776882B1 (ko) IoT 디바이스에 대한 보안성 있는 DNS 네이밍 방법 및 보안성 있는 DNS 네이밍 등록을 수행하는 라우터 장치
TW201505469A (zh) 一種建立點對點(p2p)連線之通訊系統及其裝置
TWI508609B (zh) 無線網路設定方法與無線網路系統
KR101795598B1 (ko) 네트워크 설정 방법, 그에 따른 서버 장치, 및 그에 따른 네트워크 시스템
JP5721183B2 (ja) 無線lan通信システム、無線lan親機、通信接続確立方法、及びプログラム
Jian et al. Internet of things (IOT) cybersecurity based on the hybrid cryptosystem
Lee et al. Secure DNS name autoconfiguration for IPv6 internet-of-things devices
JP2014175698A (ja) スマートアクセスシステム
KR20120053849A (ko) 단말 위치 기반 인터넷 뱅킹 서비스 제공 장치 및 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant