KR20170130904A - 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치 - Google Patents

단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20170130904A
KR20170130904A KR1020160061827A KR20160061827A KR20170130904A KR 20170130904 A KR20170130904 A KR 20170130904A KR 1020160061827 A KR1020160061827 A KR 1020160061827A KR 20160061827 A KR20160061827 A KR 20160061827A KR 20170130904 A KR20170130904 A KR 20170130904A
Authority
KR
South Korea
Prior art keywords
terminal device
application key
application
key
temporary
Prior art date
Application number
KR1020160061827A
Other languages
English (en)
Other versions
KR101827926B1 (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 KR1020160061827A priority Critical patent/KR101827926B1/ko
Publication of KR20170130904A publication Critical patent/KR20170130904A/ko
Application granted granted Critical
Publication of KR101827926B1 publication Critical patent/KR101827926B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 연결 설정 방법에 관한 것으로서, 더욱 상세하게는 협대역(Narrowband) 통신 기술이 적용된 IoT(Internet of Things, 사물인터넷)시스템에 있어서, 단말 장치와 서비스 서버 사이에서 송수신되는 데이터를 암호화하기 위한 세션 키를 생성하기 위해 최초 연결 절차에서 사용되는 어플리케이션 키의 유출을 방지하기 위한 연결 설정 방법 및 이를 위한 장치에 관한 것이다.
이를 위한 본 발명의 실시 예에 따른 연결 설정 방법은, 서비스 서버와 단말 장치 간에 임시 어플리케이션 키(Pseudo Application Key)를 공유하는 단계; 상기 서비스 장치가 상기 단말 장치로부터의 제1 가입 요청 메시지에 대응하여, 상기 공유한 임시 어플리케이션 키를 기반으로 임시 보안 연결을 수행하는 단계; 상기 임시 보안 연결을 통해서 상기 서비스 장치와 상기 단말 장치와 정규 어플리케이션 키(Real Application Key)를 공유하는 단계; 상기 서비스 장치가 상기 단말 장치로부터의 제2 가입 요청 메시지에 대응하여, 상기 정규 어플리케이션 키를 기반으로 정규 보안 연결을 수행하는 단계; 를 포함하여 이루어진다.

Description

단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치{METHOD AND APPARATUS FOR PROVISIONING BETWEEN TERMINALS AND A SERVER}
본 발명은 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치에 관한 것으로서, 더욱 상세하게는 협대역(Narrowband) 통신 기술이 적용된 IoT(Internet of Things, 사물인터넷) 시스템에 있어서, 단말과 서비스 서버 간 연결 절차를 수행할 때 보안 키가 유출되는 것을 방지하기 위한 연결 설정 방법, 이를 위한 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
IoT(Internet of the Things) 서비스의 보편적 보급을 위해서는 다양한 센서와 제어 장비의 소량 데이터를 원거리에서 신뢰성 및 보안성을 확보하여 송수신할 수 있어야 하지만, 현재까지의 IoT에 적용되는 디바이스들의 인터페이스가 규격화되어 있지 않아 범용성이 낮은 상황이다.
이러한 문제점을 해결하기 위해 최근 LPWA(Low Power Wide Area) 네트워크 기술이 주목 받고 있다. LPWA 통신 기술은 저속 전송이 용인되고, 광역 커버리지를 필요로 하는 롱 배터리 라이프(Long Battery Life)를 지원하는 소량 데이터 전송에 특화된 IoT 기반 네트워크 기술을 통칭하는 용어로, 이러한 LPWA 네트워크 기술의 대표적인 예가 LoRa 기술이다.
LoRa(Long Range Sub-Ghz Module)는 900MHz대 주파수를 사용하는 저전력 원거리 통신 프로토콜로, 많은 리피터 및 AP가 필요 없어 인프라 구축 비용이 감소되며, 셀룰러 네트워크에 비해 임베디드 애플리케이션을 위해 보다 높은 확장 가능성과 비용 효율성을 제공할 수 있는 통신 프로토콜을 의미한다.
이러한 LoRa 기술이 적용된 IoT 시스템은 LoRa 디바이스, 네트워크 서버 및 어플리케이션 서버 등으로 구현될 수 있다. 이때 IoT 서비스에 적용되는 LoRa 단말 장치는 네트워크 가입(개통) 절차 시 보안 키로서 어플리케이션 키를 이용하며, 어플리케이션 키를 이용해 통신을 위한 세션 키(Session Key)를 생성하고, 이를 통해 송수신하는 데이터를 암호화/복호화한다.
LoRa 기술이 적용된 통신 시스템에서는, 단말 장치나 기지국 사이에서 데이터를 전송할 때 별도의 설정 없이 해당 주파수 대역에 데이터를 브로드캐스팅(Broadcasting)하므로, 만약 데이터 암호화에 이용되는 어플리케이션 키가 제3자에게 유출되는 경우, 제3자는 암호화된 데이터에 접근하여 데이터를 변경할 수 있게 된다.
그런데, 현재의 LoRa 통신 시스템에서는 서비스 서버의 관리자와 단말 장치의 제조사는 어플리케이션 키를 미리 알고 있는 상태에서 수동으로 어플리케이션 키 값을 입력하여 연결 절차를 진행하며, 이러한 과정은 필수적인 것으로, 관리자나 제조사가 어플리케이션 키 값을 관리하는 과정에서 어플리케이션 키가 유출될 위험성이 있다.
따라서, LoRa 통신 시스템에서 보다 안정한 통신 환경의 확보를 위해서, 보안성을 향상시킬 수 있는 방안이 요구된다.
한국공개특허 제10-2015-0035971호 (명칭: 사물인터넷에서 스마트 디바이스 또는 스마트 센서와 네트워크 게이트웨이 사이의 안전한 데이터 전달을 위한 통신 프로토콜, 2015.04.07)
상술한 문제점을 해결하기 위하여 본 발명은, 단말 장치와 서비스 서버 간 최초 연결을 위해 관리자와 제조사가 공유하는 어플리케이션 키(임시 어플리케이션 키, Pseudo Application Key)와, 1차적으로 단말 장치와 서비스 서버가 연결된 이후, 목적한 데이터를 주고받는 데에 사용하기 위해 관리자와 제조사가 인지하지 못한 상태에서 생성되는 어플리케이션 키(정규 어플리케이션 키, Real Application Key)를 각각 제공함으로써, 실제 송수신되는 데이터의 안정성을 향상시키고자 한다.
보다 구체적으로, 상기 두 어플리케이션 키를 이용하여 단말 장치와 서비스 서버의 연결 상태를 임시 보안 연결 상태와 정규 보안 연결 상태로 구분하여, 임시 보안 연결 상태에서는 정규 보안 연결 절차를 위한 메시지 외의 다른 데이터는 드랍(Drop)하도록 하여, 실제 데이터 통신에 적용되는 보안 키의 노출을 최소화하고, 이를 통해 송수신되는 데이터의 안정성을 향상시키는데 그 목적이 있다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 연결 설정 방법은, 서비스 서버가 단말 장치와 임시 어플리케이션 키(Pseudo Application Key)를 공유하는 단계; 상기 단말 장치로부터의 제1 가입 요청 메시지에 대응하여, 상기 공유한 임시 어플리케이션 키를 기반으로 임시 보안 연결을 수행하는 단계; 상기 임시 보안 연결을 통해서 상기 단말 장치와 정규 어플리케이션 키(Real Application Key)를 공유하는 단계; 상기 단말 장치로부터의 제2 가입 요청 메시지에 대응하여, 상기 정규 어플리케이션 키를 기반으로 정규 보안 연결을 수행하는 단계; 를 포함하여 제공될 수 있다.
더하여, 상기 서비스 서버는 상기 임시 보안 연결을 통해 송수신된 데이터 중, 상기 정규 어플리케이션 키 공유를 위해 지정된 메시지 이외의 데이터를 드랍(drop)하는 단계; 를 더 포함할 수 있고, 또는, 상기 정규 보안 연결을 통해 송수신되는 데이터 중, 상기 정규 어플리케이션 키 공유를 위해 지정된 메시지가 존재하면 해당 메시지를 드랍(drop)하는 단계; 를 더 포함할 수 있다.
또한, 상술한 바와 같은 목적을 달성하기 위한 장치로 단말 장치와 보안 연결을 수행하고, 보안 연결을 수행한 단말 장치와 데이터를 송수신하는 네트워크 인터페이스 모듈; 및 상기 단말 장치와 서비스 서버 간 임시 어플리케이션 키(Pseudo Application Key)를 공유하고, 상기 네트워크 인터페이스 모듈을 통해 수신한 상기 단말 장치로부터의 제1 가입 요청(Join Request) 메시지에 대응하여, 상기 공유한 임시 어플리케이션 키를 기반으로 임시 보안 연결을 수행하고, 상기 임시 보안 연결을 통해서 상기 단말 장치와 정규 어플리케이션 키(Real Application Key)를 공유하고, 상기 단말 장치로부터의 제2 가입 요청 메시지에 대응하여, 상기 정규 어플리케이션 키를 기반으로 정규 보안 연결을 수행하는 제어 모듈; 을 포함하는 것을 특징으로 하는 서비스 서버를 제공할 수 있다.
본 발명에 따르면, 연결 설정 과정에서 세션 키 생성에 이용되는 어플리케이션 키의 노출을 방지함으로써, 제3자에 의해 IoT 단말 장치와 서비스 서버 사이에서 송수신되는 데이터에 제3자가 접근하여 각종 정보가 외부로 새어나가거나, 제3자가 데이터를 조작하여 부당한 이익을 발생시키는 등 IoT 사업에 악영향을 미치는 것을 방지할 수 있다.
더하여, IoT를 이용하는 공공사업 등에 적용되어 보안을 강화함으로써, 악의의 제3자가 공공재에 접근 및 악용하는 것을 방지하여, 산업기반을 안정시킬 수 있다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도 1은 본 발명의 실시 예에 따른 IoT 통신 시스템의 주요 구성을 나타낸 도면이다.
도 2는 본 발명에 따른 서비스 서버의 주요 구성을 도시한 블록도이다.
도 3은 LoRA 표준 기반의 단말 장치와 서비스 서버 간의 연결 설정 과정을 개략적으로 나타낸 데이터 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 연결 설정 방법을 설명하기 위한 데이터 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 연결 설정 방법에 있어서, 보안 연결 과정을 설명하기 위한 데이터 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 연결 설정 방법에 있어서, 정규 어플리케이션 키 공유 과정을 설명하기 위한 데이터 흐름도이다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하의 설명 및 특허 청구 범위에서, "네트워크" 또는 "통신망"은 컴퓨터 시스템들 및/또는 모듈들 간의 전자 데이터를 전송할 수 있게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 (유선, 무선, 또는 유선 또는 무선의 조합인) 통신 접속을 통하여 컴퓨터 시스템에 전송되거나 제공될 때, 이 접속은 컴퓨터-판독가능매체로서 이해될 수 있다.
아울러, 본 발명에 따른 실시 예는 협대역(Narrowband) 시스템이라면 어디에든 적용가능 하며, 구체적으로 LoRa 기술에 적용될 수 있다.
따라서, 앞으로 서술할 본 발명에 따른 명세서에는 LoRa 기술을 기반으로 설명을 한다. 다만, 이러한 실시 예가 LoRa 기술에 한정되는 것은 아니며, LTN, Weightless, RPMA 등의 협대역(Narrowband) 통신 네트워크 시스템이 적용가능한 곳이라면 어느 곳에나 적용이 가능하다.
그러면 이제, 도면을 참조하여 본 발명의 실시 예에 따른 연결 설정 방법을 실행하기 위한 데이터 전송 시스템의 주요 구성에 대해 설명하도록 한다.
도 1을 참조하면, 본 발명에 따른 데이터 전송 시스템은 하나 이상의 단말 장치(100), 하나 이상의 게이트웨이(200), 서비스 서버(500)를 포함하여 구성될 수 있다.
또한, 상기 서비스 서버(500)는 네트워크 서버(300)와 어플리케이션 서버(400)를 포함한다.
상기 네트워크 서버(300)와 어플리케이션 서버(400)는 그 기능이 각각 분리되어 별개의 서버로서 구현될 수도 있지만, 하나의 서버로 통합되어 구현될 수도 있다.
본 발명의 실시 예에서는 네트워크 서버(300)와 어플리케이션 서버(400)가 하나의 서비스 서버(500) 내에 통합된 경우를 예로 들어 설명하나, 반드시 그에 제한되는 것은 아니다.
한편, 서비스 서버(500)가 네트워크 서버(300)와 어플리케이션 서버(400)로 구분되어 구현되는 경우, 본 발명에 따른 실시 예는 네트워크 서버(300)를 중심으로 구현될 수 있다.
먼저, 단말 장치(100)는 사용자 측에 구비되어 협대역 통신 시스템에 연결되는 장치로서, LoRa 기술이 적용된 LoRa 디바이스가 될 수 있다. 이러한 단말 장치(100)는 IoT 시스템에 있어서, 사물 통신이 가능한 다양한 사물 기기가 이에 해당될 수 있다. 예를 들어 각종 센서, 제어 장치, 휴대폰, 냉장고, 청소기, 세탁기, 공장 기기, 자동 판매기 등 다양한 사물(things)이 본 발명의 단말 장치(100)로 동작 가능하다.
이러한 단말 장치(100)는 LoRa 타입별로 데이터 전송 동작이 달라질 수 있다. 예를 들어, 단말 장치(100)의 하향링크 데이터 패킷 수신 여부에 따라 클래스가 구분될 수 있다.
단말 장치(100)에서 데이터 전송을 위한 MAC 레이어를 통하여 구분된 클래스를 변경하여 데이터를 전송할 수 있는데, 이러한 클래스를 변경하여 데이터를 전송하기 위한 MAC 레이어가 가지고 있는 정보는 단말 장치(100)뿐만 아니라, 게이트웨이(200), 서비스 서버(500)가 공유하고 있을 수 있다.
이러한 클래스는 LoRa 기술에 정의되어 있으며, 본 발명은 클래스 별 데이터 전송 타입인 "Class A/B/C" 타입에서 동작할 수 있다.
단말 장치(100)의 클래스를 살펴보면, 클래스 A는 단말 장치(100)가 상향링크 데이터 패킷 전송 후 정해진 시간(예컨대, 1초) 간격으로 정해진 횟수만큼 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미하며, 클래스 B는 단말 장치(100)가 정해진 주기(예컨대, 128초)마다 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미하며, 클래스 C는 항상 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미한다.
그리고 이 외에 추가되는 클래스 타입으로서, 특정 그룹(Group)에 속하는 IoT 단말 장치들이 동시에 동일한 데이터를 수신하는 경우, 동일한 데이터를 브로드캐스팅(Broadcasting)하여 상기 특정 그룹에 속하는 IoT 단말 장치들이 동시에 브로드캐스팅한 데이터 패킷을 수신할 수 있는 클래스 타입이 있을 수 있다. 본 발명은 이러한 추가되는 클래스 타입에서도 동작할 수 있다.
게이트웨이(200)는 단말 장치(100)에 연결되며 단말 장치(100)로부터 전달되는 정보를 네트워크 서버(300)로 전달하고, 네트워크 서버(300)로부터 전달되는 정보를 단말 장치(100)로 전달하는 역할을 수행한다. 특히 본 발명의 게이트웨이(200)는 LoRa 기술이 적용된 기지국이 될 수 있으며, 동시 송신이 가능한 확산 스펙트럼 CDMA(Code Division Multiple Access) 방식으로 패킷을 송수신할 수 있다.
또한, 본 발명의 게이트웨이(200)는 복수 개의 단말 장치(100)와 연결될 수 있는데, 할당되거나 일정 반경 내 위치하는 단말 장치(100)로부터 전달되는 정보를 네트워크 서버(300)로 전송하며, 이때 자신의 식별번호를 포함하여 전송할 수 있다. 이를 통해 네트워크 서버(300)는 단말 장치(100)가 연결된 게이트웨이(200)를 확인할 수 있으며, 어플리케이션 서버(500)로부터 전달되는 데이터 패킷을 해당 게이트웨이(200)로 정확하게 전달하는 과정을 수행하게 된다.
네트워크 서버(300)는 단말 장치(100)를 인증하고, 패킷의 송수신을 지원하는 교환기 역할을 하는 노드를 의미한다. 보다 구체적으로 설명하면 네트워크 서버(300)는 단말 장치(100)와 어플리케이션 서버(400) 간의 보안 연결 절차를 중계할 수 있다. 즉, 단말 장치(100)로부터 어플리케이션 서버(400)에 연결하기 위한 가입 요청(Join Request) 메시지가 전달되면 상기 가입 요청 메시지에 포함된 어플리케이션 식별 정보(AppEUI)를 이용하여 어플리케이션 서버(400)를 확인하고, 확인된 어플리케이션 서버(400)로 가입 요청(Join Request) 메시지를 전달한다. 그리고 어플리케이션 서버(400)로부터 가입 요청(Join Request) 메시지에 대한 확인 메시지가 전달되면 네트워크 아이디 및 단말 장치 주소 정보를 확인하여 이를 어플리케이션 서버(400)로 전달하여, 어플리케이션 서버(400)에서의 암호화를 위한 세션 키 생성 과정을 지원할 수 있다.
이러한 과정을 거쳐 보안 연결 절차가 완료되면, 이후의 네트워크 서버(300)는 단말 장치(100) 및 어플리케이션 서버(500) 간의 송수신되는 데이터 패킷에 대한 무결성 검증(Message Integrity Check, MIC)을 수행할 수 있으며, 이때 상기 세션 키를 이용하여 무결성 검증을 수행할 수 있게 된다. 앞서 설명한 것과 같이 상기 세션 키는 네트워크 계층에서 이용되는 네트워크 세션 키와 응용계층에서 이용되는 어플리케이션 세션 키로 구분될 수 있다.
각 단말 장치(100)에 따른 그룹 설정과, 각 그룹에 따른 세션 키의 설정을 마치고 난 후, 단말 장치(100)로부터 가입 요청(Join Request) 메시지를 수신하면, 상기 가입 요청 메시지를 전송한 단말 장치(100)가 속하는 그룹을 설정된 정보로부터 확인하여, 해당 그룹에 매핑(mapping)되는 네트워크 세션 키와 어플리케이션 세션 키를 가입 승인(Join Accept) 메시지와 함께 단말 장치(100) 에 전송할 수 있다.
어플리케이션 서버(400)는 네트워크 서버(300)와 연결되며, 네트워크 서버(300)로부터 전달되는 단말 장치(100)가 전송한 각종 정보를 이용하여 어플리케이션 별로 고유 서비스를 관리, 제어하는 역할을 수행할 수 있다. 이러한 어플리케이션 서버(400)는 복수 개 존재할 수 있으며, 예를 들어, 온도 조절, 방사선 관리, 생활폐기물 관리, 선적관리, 주차관리, 대기오염관리, 화재관리, 수질오염 관리 등 다양한 어플리케이션 서비스를 제공할 수 있다. 즉, 본 발명의 어플리케이션 서버(400)는 단말 장치(100)가 생성하는 각종 정보를 네트워크 서버(300)를 거쳐 수집하고, 이에 대응하는 제어 정보를 네트워크 서버(300)를 거쳐 단말 장치(100)로 전송하게 된다.
본 발명의 실시 예에 따른 데이터 전송을 위한 IoT 시스템을 구성하는 각 장치에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
이상으로 본 발명의 실시 예에 따른 연결 설정 방법을 구현하기 위한 시스템에 대해서 살펴보았다.
이하에서, 본 발명의 실시 예에 따른 장치에 대하여 설명한다.
도 2는 본 발명에 따른 서비스 서버(500)의 주요 구성을 도시한 블록도이다.
도 2를 참조하면, 서비스 서버(500)는 네트워크 인터페이스 모듈(310), 저장모듈(320), 제어모듈(330), 사용자 인터페이스 모듈(340)을 포함하여 구성될 수 있다.
또는, 본 발명의 실시 예에 따라 네트워크 서버(300)와 어플리케이션 서버(400)가 하나의 서비스 서버(500) 내에서 동작할 수 있으므로, 도 2의 각 구성은 네트워크 서버(300)의 주요 구성으로도 이해할 수 있다.
네트워크 인터페이스 모듈(310)은 어플리케이션 서버(400) 혹은 게이트웨이(200)를 통해 단말 장치(100)와 데이터를 송수신하는 장치이다.
네트워크 서버(300)는 이러한 네트워크 인터페이스 모듈(310)을 통해서 원격지에 위치한 장치와 정보를 송수신할 수 있다.
만약, 어플리케이션 서버(400)와 네트워크 서버(300)가 일체로 구성된 경우에는, 네트워크 인터페이스 모듈(310)은 게이트웨이(200)를 통한 단말 장치(100)와의 데이터 송수신을 위해 사용될 수 있다.
네트워크 인터페이스 모듈(310)은, 예를 들면, 네트워크 인터페이스 카드 및 대응하는 네트워크 드라이버 인터페이스 사양(Network Driver Interface Specification: "NDIS") 스택과 같은 하나 이상의 소프트웨어 및/또는 하드웨어 모듈의 논리적 조합으로 나타낼 수 있다.
특히, 본 발명에 있어서 네트워크 인터페이스 모듈(310)은, 단말 장치(100)로부터 가입 요청 메시지가 수신되면 단말 장치(100)와의 보안 연결을 수행하고, 보안 연결된 단말 장치(100)와 데이터를 송수신할 수 있다.
저장 모듈(320)은 보안 연결을 수행할, 또는 수행한 단말 장치(100)의 프로파일 정보를 저장할 수 있다. 이러한 단말 장치(100)의 프로파일 정보는, 단말 장치 식별 정보(DevEUI), 어플리케이션 식별 정보(AppEUI), 단말 장치 랜덤값(DevNonce) 중 하나 이상을 포함할 수 있다.
또한, 저장 모듈(320)은 단말 장치(100)에 할당된 임시 어플리케이션 키(Pseudo Application Key), 정규 어플리케이션 키(Real Application Key), 네트워크 세션 키(Network Session Key), 어플리케이션 세션 키(Application Session key), 어플리케이션 식별 정보(AppEUI) 중 하나 이상을 저장할 수 있다.
아울러, 저장 모듈(320) 특정 단말 장치가 네트워크 서버(300) 또는 서비스 서버(500)와 임시 보안 연결 상태인지, 또는 정규 보안 연결 상태인지를 리스트(List)화 하여 저장할 수 있다. 이러한 저장하는 방법의 일 예는, 특정 단말 장치가 임시 어플리케이션 키만을 공유받은 상태인지, 또는 정규 어플리케이션 키를 공유받은 상태인지를 저장하는 것이 될 수 있다.
제어 모듈(330)은 상기 네트워크 인터페이스 모듈이 보안 연결 절차를 수행하기 위한 데이터를 송수신할 수 있도록 제어하기 위한 구성이다. 제어 모듈(330)은 네트워크 인터페이스 모듈(310)을 통해 수신한 단말 장치(100)로부터의 가입 요청에 대응하여 단말 장치(100)와 보안 연결을 수행하며, 이러한 보안 연결 수행을 위해 어플리케이션 키를 단말 장치(100)와 공유할 수 있다.
또한, 제어 모듈(330)은, 상기 보안 연결을 수행하기 위하여, 네트워크 인터페이스 모듈(310)을 통해 단말 장치(100)로부터 프로파일 정보를 수신하고, 상기 프로파일 정보를 기반으로 임시 어플리케이션 키 또는 정규 어플리케이션 키를 추출할 수 있으며, 상기 임시 어플리케이션 키 또는 정규 어플리케이션 키를 기반으로 네트워크 세션 키와 어플리케이션 세션 키를 생성할 수 있다.
또한, 제어 모듈(330)은, 정규 어플리케이션 키 생성을 위해, 네트워크 인터페이스 모듈(310)을 통해 단말 장치(100)로부터 수신한 요청에 응답하여, 어플리케이션 랜덤값(AppNonce)을 단말 장치(100)에 전송하도록 네트워크 인터페이스 모듈(310)을 제어할 수 있다. 또한, 단말 장치(100)로부터 상기 어플리케이션 랜덤값 수신을 완료했음을 보고하는 메시지를 수신하면, 이에 대응하여 단말 장치(100)에 메시지를 수신했음을 알리기 위한 응답 메시지를 네트워크 인터페이스 모듈(310)을 통해 송신할 수 있다.
더하여, 제어 모듈(330)은 상기 네크워크 세션 키 및 상기 어플리케이션 세션 키를 생성하기 위해 네트워크 인터페이스 모듈(310)을 통해 송수신되는 정보들, 예를 들어, 이전 단락에 기재된 어플리케이션 랜덤값 또는 응답 메시지를 임시 어플리케이션 키 또는 정규 어플리케이션 키를 이용하여 암호화할 수 있다.
제어 모듈(330)은, 서비스 서버(500) 또는 네트워크 서버(400)가 단말 장치(100)와 임시 보안 연결만이 수행된 경우에는, 단말 장치(100)로부터 정규 어플리케이션 키 공유를 위해 지정된 메시지 이외의 데이터를 수신하는 경우 이러한 데이터를 드랍(Drop)하도록 서비스 서버(500) 또는 네트워크 서버(400)를 설정할 수 있다. 또한, 서비스 서버(500) 또는 네트워크 서버(400) 자체에서 상기 지정된 메시지 이외의 데이터가 송신될 때에도 동일하게 적용될 수 있다.
제어 모듈(330)은, 서비스 서버(500) 또는 네트워크 서버(400)가 단말 장치(100)와 정규 보안 연결이 수행된 경우에는, 단말 장치(100)로부터 정규 어플리케이션 키 공유를 위해 지정된 메시지가 수신되는 경우 해당 메시지를 드랍할 수 있다.
여기서 정규 어플리케이션 키 공유를 위해 지정된 메시지는, 정규 어플리케이션 키 생성을 위해 송수신되는, 어플리케이션 랜덤값을 요청하는 메시지, 어플리케이션 랜덤값을 포함하는 메시지, 어플리케이션 랜덤값 수신 완료 메시지 및 상기 수신 완료 메시지에 대한 응답 메시지 중 하나 이상을 포함한다.
사용자 인터페이스 모듈(340)은 외부 소스로부터 데이터를 송수신하는 장치이다.
또한, 사용자 인터페이스 모듈(340)은 모뎀(예를 들면, 표준 모뎀, 케이블 모뎀, 또는 디지털 가입자선(digital subscriber line: "DSL") 모뎀)에 연결될 수 있으며, 이러한 모뎀을 통해 외부 소스로부터 데이터를 수신하고/거나 외부 소스로 데이터를 전송할 수 있다.
이러한 본 발명의 실시 예에 따른 네트워크 서버(300)는 하드웨어적으로는 통상적인 웹 서버(Web Server) 또는 네트워크 서버와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는 C, C++, Java, Visual Basic, Visual C 등과 같은 언어를 통하여 구현되는 프로그램 모듈(Module)을 포함한다.
한편, 본 발명의 각 장치에 탑재되는 메모리는 그 장치 내에서 정보를 저장한다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛 일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛 일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
이상, 본 발명의 실시 예에 따른 네트워크 서버(300) 또는 네트워크 서버(300)를 포함하는 서비스 서버(500)의 주요 구성에 대해 설명하였다.
이하, 본 발명의 일 실시 예에 따른 연결 설정 방법에 대해 도 3 내지 도 6을 통해 설명하도록 한다.
먼저, 기존 방식에 따른 단말 장치(100)가 서비스 서버(500)에 접속하는 과정, 즉 단말 장치(100)와 서비스 서버(500)의 개통(보안 연결) 절차를 설명한다.
도 3은 LoRA 표준 기반의 단말 장치와 서비스 서버 간의 연결 설정 과정을 개략적으로 나타낸 데이터 흐름도이다.
도 3을 참조하면, 먼저, 단말 장치(100)와 서비스 서버(500)는 상호 연결을 위한 정보를 기 설정한다(S300a, S300b). 설정되는 정보에는 단말 장치 식별 정보(DevEUI), 어플리케이션 식별 정보(AppEUI), 어플리케이션 키(Application Key, AppKey) 값이 있을 수 있다.
다음으로, 단말 장치(100)는 서비스 서버(500)에 접속하기 위해, 가입 요청(Join Request) 메시지를 게이트웨이(200)를 거쳐 서비스 서버(500) 또는 서비스 서버(500) 내의 네트워크 서버(300)로 전달하게 된다(S302). 단말 장치(100)는 최초 전원 온(on)시 등 지정된 이벤트 발생 시 가입 요청 메시지를 게이트웨이(200)를 거쳐 네트워크 서버(300)로 전달할 수 있다. 단말 장치(100)가 네트워크 서버(300)로 전달하는 가입 요청(Join Request) 메시지는 어플리케이션 식별 정보(AppEUI), 단말 장치 식별 정보(DevEUI) 및 단말 장치 랜덤값(DevNonce)을 포함하여 구성된다.
어플리케이션 식별 정보는 서비스 서버(500) 또는 서비스 서버(500) 내의 어플리케이션 서버(400)에 의해 할당되며, 사전에 설정되어 있는 어플리케이션 구분자를 의미한다. 하나의 단말 장치(100)는 복수 개의 어플리케이션 서버(400)로 정보를 전송할 수 있다. 예를 들어, 단말 장치(100)가 온도를 측정하는 역할을 수행하는 경우, 건물 관리 서비스를 제공하는 어플리케이션 서버(400)로 측정된 온도 정보를 전송할 수 있으며, 온도 정보를 이용하여 상황인지 서비스를 제공하는 어플리케이션 서버로 측정된 온도 정보를 전송할 수도 있다. 이때, 각각의 어플리케이션 서비스 별로 어플리케이션 식별 정보가 서로 다르게 할당될 수 있으며, 단말 장치(100)는 전송하고자 하는 어플리케이션 서버(400)로 자신이 생성한 정보가 전달되도록 어플리케이션 식별 정보를 포함하는 가입 요청 메시지를 네트워크 서버(300)로 전송한다.
반면, 단말 장치 식별 정보는 단말 장치(100) 간의 구분을 위한 것으로 최초 설치 시 할당되는 정보가 될 수 있다. 이러한 단말 장치 식별 정보는 네트워크 서버(300)에 의해 할당되거나, 단말 장치(100)를 생성한 사업자에 의해 할당될 수 있다. 이러한 단말 장치 식별 정보는 IEEE-SA의 규정에 의해 정해질 수도 있다.
단말 장치 랜덤값은 암호화를 위해 단말 장치(100)가 생성하는 값을 의미하며, 각 단말 장치 별 연결 설정 절차마다 달라질 수 있다.
이러한 가입 요청 메시지를 단말 장치(100)가 전송하면, 네트워크 서버(300)는 게이트웨이(200)를 거쳐 상기 가입 요청 메시지를 수신한다. 이때, 게이트웨이(200)를 거쳐 전달되는 메시지, 상기 예시에서 가입 요청 메시지는 게이트웨이 식별 정보를 포함하여 전달될 수 있으며, 네트워크 서버(300)는 게이트웨이 식별 정보를 상기 단말 장치 식별 정보에 대응하여 저장한 후 추후 어플리케이션 서버(400)로부터 전달되는 정보가 해당 게이트웨이를 거쳐 단말 장치(100)로 정확히 전송되는 과정을 지원할 수 있다.
그리고 네트워크 서버(300)는 단말 장치(100)가 전송한 가입 요청 메시지의 어플리케이션 식별 정보를 이용하여 어플리케이션 서버(400)를 확인한다.
그리고 확인된 어플리케이션 서버(400)로 가입 요청(Join Request) 메시지를 전송하며, 어플리케이션 서버(400)는 어플리케이션 키(App Key)를 이용하여 MIC(Message Integrity Code) 체크를 수행한다. 즉, 단말 장치(100)가 게이트웨이(200) 및 네트워크 서버(300)를 거쳐 전달한 가입 요청 메시지가 정상적인 메시지인지 무결성을 확인하게 된다. 그리고 정상적인 메시지로 판단되면, 어플리케이션 서버(400)는 네트워크 서버(300)로 가입 요청(Join Request) 메시지 확인 메시지를 전송한다.
이후에, 어플리케이션 서버(400)는 가입 승인(Join Accept) 메시지를 단말 장치(100)로 전송할 수 있다(S304). 이때, 어플리케이션 서버(400)가 전달하는 메시지는 네트워크 서버(300) 및 게이트웨이(200)를 거쳐 단말 장치(100)로 전달될 수 있다.
가입 승인 메시지는 어플리케이션 랜덤값(AppNonce), 네트워크 ID(NetID), 단말 장치 주소정보(DevAddress)를 포함할 수 있다.
이때, 어플리케이션 서버(400)가 네트워크 서버(300) 및 게이트웨이(200)를 거쳐 전달하는 가입 승인(Join Accept) 메시지는 어플리케이션 키(AppKey)로 암호화되어 전송되며, 단말 장치(100)는 어플리케이션 키(AppKey)로 가입 승인 메시지를 복호화할 수 있다.
이후, 네트워크 서버(300)는 네트워크 ID(NetID) 및 단말 장치 주소정보(DevAddress)를 확인하고 이를 어플리케이션 서버(400)로 전송한다.
이를 수신한 어플리케이션 서버(400)는 어플리케이션 키(AppKey), 어플리케이션 랜덤값(AppNonce), 네트워크 ID(NetID), 단말 장치 랜덤값(DevNonce)을 이용하여 네트워크 세션 키(NW(network) Session Key)를 생성하고(S306a), 어플리케이션 키(AppKey), 어플리케이션 랜덤값(AppNonce), 네트워크 아이디(NetID), 단말 장치 랜덤값(DevNonce)을 이용하여 어플리케이션 세션 키(Application Session Key)를 생성하고(S306a), 네트워크 세션 키(NW session key)를 네트워크 서버(300)로 전달한다.
네트워크 서버(300)는 수신한 네트워크 세션 키를 저장한다. 여기서 네트워크 서버(300)는 수신한 네트워크 세션 키를 이용하여 메시지의 무결성을 체크하거나, 메시지 자체를 암호화 과정을 처리할 수 있다.
이후에, 단말 장치(100)는 어플리케이션 키(AppKey), 어플리케이션 랜덤값(AppNonce), 네트워크 아이디(NetID), 단말 장치 랜덤값(DevNonce)를 이용하여 네트워크 세션 키(NW Session Key)를 생성할 수 있으며, 어플리케이션 세션 키(Application Session Key)를 생성할 수 있다(S306b).
이러한 과정이 완료되면, 단말 장치(100)와 서비스 서버(500) 간의 최초 연결 설정(개통 또는 보안 연결 절차)가 완료된 것으로(S308), 이후에, 단말 장치(100)는 네트워크 세션 키 또는 어플리케이션 세션 키를 이용하여 전송하고자 하는 데이터 패킷을 암호화한 후, 데이터 패킷을 게이트웨이(200)를 거쳐 네트워크 서버(300)로 전송할 수 있다.
이를 수신한 네트워크 서버(300)는 저장한 네트워크 세션 키를 이용하여 무결성 체크(integrity check)를 수행하고, 문제가 없을 경우, 어플리케이션 서버(400)로 전송하며, 어플리케이션 서버(500)는 네트워크 세션 키 또는 어플리케이션 세션 키를 이용하여 전달된 데이터 패킷을 복호화할 수 있다.
이때, 네트워크 세션 키는 맥(MAC) 전용 데이터, 즉, 클래스 타입 변경 요청 및 이에 대응하는 응답 메시지 등 네트워크 서버(300)와 단말 장치(100) 간의 요청, 응답 등의 시그널링(Signaling) 신호를 암/복호화 하기 위한 세션 키이며, 어플리케이션 세션 키는 단말 장치(100)가 어플리케이션 서버(400) 혹은 네트워크 서버(300)로부터 수신하는 구체적인 어플리케이션 데이터 메시지를 암/복호화 하기 위한 세션 키를 의미할 수 있다.
이상으로, 본 발명의 일반적인 실시 예에 따른 권한 설정 시스템에서의 연결 설정(보안 연결 절차)에 대하여 설명하였다.
상기한 과정 이전에, 서비스 서버(500)의 관리자와 단말 장치(100)의 제조사는 어플리케이션 식별 정보 및 어플리케이션 키를 생성하기 위해 연결을 수행할 단말 장치(100)의 수, 단말 장치 식별 정보(DevEUI), 단말 장치(100) 제조사의 ID, 단말 장치(100)의 타입, 단말 장치(100)를 통해 제공할 서비스의 분류 등 어플리케이션 키를 생성하기 위한 정보들을 사전에 주고받을 수 있다.
사전에 주고받은 정보를 통해 어플리케이션 식별 정보와 어플리케이션 키를 생성하면, 서비스 서버(500)의 관리자는 이를 단말 장치(100)의 제조사에 전달하고, 단말 장치(100)에도 상기 어플리케이션 식별 정보와 어플리케이션 키를 설정하게 된다.
그런데, 아직 단말 장치(100)와 서비스 장치(500)가 연결 설정을 수행하기 전이므로, 어플리케이션 식별 정보와 어플리케이션 키를 전달 시 도 1에 도시된 네트워크가 아닌 별개의 루트를 통하게 되며, 이 과정에서 어플리케이션 키 값이 유출될 위험성이 있다.
이하에서, 이러한 문제점을 극복하기 위한 본 발명의 실시 예에 따른 단말의 보안 연결 절차에 대하여 설명하도록 한다.
도 4는 본 발명의 일 실시 예에 따른 연결 설정 방법을 설명하기 위한 데이터 흐름도이다.
도 4를 참조하면, 먼저, 단말 장치(100)와 서비스 서버(500)는 임시 어플리케이션 키(Pseudo Application Key)를 공유한다(S400).
임시 어플리케이션 키는, 본 발명의 실시 예에 따라 2단계로 구분되는 보안 연결 절차(연결 설정)에서 첫 번째 단계인 임시 보안 연결에만 쓰이도록 설정된 어플리케이션 키이며, 이러한 임시 어플리케이션 키로 단말 장치(100)와 서비스 서버(500)가 연결되더라도 단말 장치(100)가 본래 목적하는 서비스와 관련된 데이터는 송수신할 수 없게 된다. 상기 임시 어플리케이션 키는 임의의 값으로 생성될 수 있다.
임시 어플리케이션 키의 공유 후, 단말 장치(100)가 최초 구동하여 제1 가입 요청 메시지를 서비스 서버(500)로 전송하면(S402), 서비스 서버(500)는 임시 어플리케이션 키를 기반으로 단말 장치(100)와 임시 보안 연결을 수행한다(S404). 보안 연결을 수행하기 위한 각 장치 내의 알고리즘은 도 2에서 설명한 연결 설정과 같으며, 본 발명의 실시 예에 따라 종래의 연결 설정과 차이가 있는 부분을 도 5를 참조하여 설명한다.
도 5는 본 발명의 일 실시 예에 따른 연결 설정 방법에 있어서, 보안 연결 절차를 설명하기 위한 데이터 흐름도로서, 도 4의 S404 단계 및 S410 단계에 적용될 수 있다. 참고로, S404 단계에 적용될 경우, 도 5에 기재된 어플리케이션 키는, 임시 어플리케이션 키가 되며, S410 단계에 적용될 경우, 도 5에 기재된 어플리케이션 키는 정규 어플리케이션 키가 된다.
도 5를 참조하여 상기 S404 단계를 더 구체적으로 설명하면, 단말 장치(100)는 어플리케이션 키, 더 구체적으로, 임시 어플리케이션 키를 생성하기 위해 연결을 수행할, 단말 장치 식별 정보(DevEUI), 어플리케이션 식별 정보(AppEUI), 단말 장치 랜덤값(DevNonce) 중 하나 이상을 포함하는 프로파일 정보를 제1 가입 요청 메시지에 포함시켜 서비스 서버(500)로 전송한다(S500).
서비스 서버(500)는 수신한 프로파일 정보를 통해 해당 단말 장치(100)에 적용되는 임시 어플리케이션 키를 추출한다(S502).
이후, 서비스 서버(500)는 임시 어플리케이션 키를 이용해 세션 키 생성에 필요한 정보를 암호화하여 단말 장치(100)로 전송한다(S504). 단말 장치(100)가 수신한 세션 키 생성에 필요한 정보에는 어플리케이션 랜덤값(AppNonce), 단말 장치 주소 정보(DevAddr)가 포함될 수 있다.
단말 장치(100)는 수신한 정보를 임시 어플리케이션 키를 이용하여 복호화한다.
세션 키 생성에 필요한 정보가 송수신 및 복호화되면, 단말 장치(100)와 서비스 서버(500)는 각각 복호화된 정보 및 임시 어플리케이션 키를 이용하여 세션 키를 생성한다(S506a, S506b). 세션 키에는 어플리케이션 세션 키와 네트워크 세션 키가 포함될 수 있다.
세션 키가 생성되면 보안 연결 절차(연결 설정)가 완료되고 양 장치(100, 500)가 연결된 것으로(S508), 기존 연결 설정에서는 이제 서비스 데이터를 송수신할 수 있다. 그러나 본 발명의 실시 예에 따르면, 임시 어플리케이션 키를 이용하여 생성된 세션 키는 임시 세션 키이며, 임시 보안 연결 절차만을 수행한 단말 장치(100)에 관한 리스트가 서비스 서버(500)에 의해 관리된다.
이러한 임시 보안 연결 절차만을 수행한 단말 장치(100)는, 정규 보안 연결 수행을 위해 지정된 메시지만을 서비스 서버(500)와 송수신할 수 있다. 만약 단말 장치(100)가 목적하는 서비스에 관한 데이터(예를 들어, 온도 측정을 위해 설치된 단말 장치(100)가 측정한 온도에 관한 데이터)가 서비스 서버(500)에 수신되는 경우에는, 서비스 서버(500)는 수신한 데이터를 일절 활용하지 않고 버리게 된다. 혹은, 서비스 서버(500) 자체에서 목적하는 서비스에 관한 데이터를 단말 장치(100)로 전송하도록 하는 요청이 발생하는 경우, 이를 무시하고 데이터를 단말 장치(100)에 송신하지 않는다. 본 명세서에서는 이를 데이터를 드랍(Drop)한다고 표현한다.
다시 도 4를 참조하면, 이와 같이 임시 보안 연결을 완료한 후(S404), 단말 장치(100)와 서비스 서버(500)는 임시 보안 연결을 통해 정규 어플리케이션 키(Real Application Key)를 공유한다(S406).
이러한 정규 어플리케이션 키의 공유 방법은 도 6에 보다 상세하게 나타낸다.
도 6은 본 발명의 일 실시 예에 따른 연결 설정 방법에 있어서, 정규 어플리케이션 키 공유 과정을 설명하기 위한 데이터 흐름도이다.
도 6을 참조하면, 정규 어플리케이션 키의 공유를 위해, 단말 장치(100)는 서비스 서버(500)에 어플리케이션 랜덤값(AppNonce)을 요청하는 메시지를 전송한다(S600).
서비스 서버(500)는 단말 장치(100)로부터 수신한 요청 메시지에 대응하여, 어플리케이션 랜덤값을 단말 장치(100)에 전송한다(S602).
단말 장치(100)는 서비스 서버(500)로부터 어플리케이션 랜덤값을 수신했는지 확인하여, 어플리케이션 랜덤값의 수신이 확인되지 않는 경우, 어플리케이션 랜덤값을 요청하는 메시지를 서비스 서버(500)에 전송하는 S600 단계를 재수행하게 된다.
단말 장치(100)는, 서비스 서버(500)로부터 어플리케이션 랜덤값을 수신한 이후, 어플리케이션 랜덤값을 수신했음을 알리는 수신 완료 메시지를 서비스 서버(500)에 전송한다(S604).
서비스 서버(500)는, 단말 장치(100)로부터 어플리케이션 랜덤값 수신 완료 메시지를 수신한 이후, 상기 수신 완료 메시지를 수신했음을 알리기 위한 응답 메시지를 단말 장치(100)에 전송한다(S606).
단말 장치(100)는 서비스 서버(500)로부터 수신 완료 메시지에 대한 응답 메시지를 수신하였는지를 확인하여, 응답 메시지 수신이 확인되지 않는 경우, 수신 완료 메시지를 서비스 서버(500)에 전송하는 S604 단계를 재수행하게 된다.
이와 같이 정규 어플리케이션 키 공유를 위해 4단계에 거쳐 메시지가 송수신되며, 정규 어플리케이션 키를 생성하기 위한 4단계의 송수신 메시지 중 하나에 전송 오류가 발생하는 경우, 단말 장치(100)에서 해당 단계에 맞는 메시지를 재전송하도록 함으로써, 안정적으로 정규 어플리케이션 키를 공유하기 위한 절차를 수행할 수 있다.
이러한 정규 어플리케이션 키 생성을 위해 설정된 메시지는 임시 어플리케이션 키를 통해 생성된 임시 세션 키를 이용해 암호화 및 복호화될 수 있다.
또한, 이러한 메시지는 임시 어플리케이션 키와 달리 도 1에 기재된 네트워크를 이용해 송수신되며, 단말 장치(100)의 제조사나 서비스 서버(500)의 관리자가 상기 메시지에 포함된 정보를 열람할 수 없어, 보안성을 보다 강화할 수 있다.
단말 장치(100)와 서비스 서버(500)는 송수신된 메시지에 포함된 어플리케이션 랜덤값을 이용하여 정규 어플리케이션 키를 생성한다(S608a, S608b).
상기한 정규 어플리케이션 키를 공유하는 과정이 종료되면, 도 4와 같이 단말 장치(100)는 서비스 서버(500)에 제2 가입 요청 메시지를 전송하며(S408), 단말 장치(100)와 서비스 장치(500)는 정규 어플리케이션 키를 기반으로 정규 보안 연결을 수행한다(S410).
정규 보안 연결을 수행하는 구체적인 방법은 임시 보안 연결을 수행하는 절차와 유사하며, 임시 보안 연결과 마찬가지로 도 5를 참조하여 설명한다.
정규 어플리케이션 키가 단말 장치(100) 및 서비스 서버(500)에 설정되면, 단말 장치(100)는 서비스 서버(100)가 세션 키를 생성하기 위해 필요한 프로파일 정보를 전송하게 된다(S500). 서비스 서버가(500) 수신하는 세션 키 생성에 필요한 프로파일 정보에는 단말 장치 식별 정보, 어플리케이션 식별 정보, 단말 장치 랜덤값이 포함될 수 있다.
단말 장치 식별 정보, 어플리케이션 식별 정보 및 단말 장치 랜덤값은 임시 보안 연결 절차에서 기 송수신된 정보이므로 정규 보안 연결 절차에서는 단말 장치 식별 정보, 어플리케이션 식별 정보, 단말 장치 랜덤값을 포함하지 않은 가입 요청 메시지만이 송신될 수도 있으나, 보안을 강화하기 위해, 단말 장치 랜덤값은 임시 보안 연결 절차에서 생성된 값과는 별도로 다시 생성하여 전송하는 것이 보다 바람직하다.
서비스 서버(500)는 수신한 프로파일 정보를 기반으로 해당 단말 장치(100)의 정규 어플리케이션 키를 추출하고(S502), 정규 어플리케이션 키를 이용해 단말 장치(100)가 세션 키를 생성하기 위해 필요한 정보를 암호화하여 전송한다(S504). 단말 장치(100)가 수신하는 세션 키 생성에 필요한 정보에는 어플리케이션 랜덤값, 단말 장치 주소 정보가 포함될 수 있다.
이때, 어플리케이션 랜덤값 및 단말 장치 주소 정보를 포함하지 않은 가입 승인 메시지만이 서비스 장치(500)에 의해 단말 장치(100)로 송신되는 것도 가능하나, 보안 강화를 위해 어플리케이션 랜덤값은 임시 보안 연결 절차에서 생성된 값과는 별도로 다시 생성하여 전송하는 것이 보다 바람직하다.
단말 장치(100)는 수신한 정보를 정규 어플리케이션 키를 이용하여 복호화한다.
세션 키 생성에 필요한 정보가 송수신 및 복호화되면, 단말 장치(100)와 서비스 서버(500)는 각각 복호화된 정보 및 정규 어플리케이션 키를 이용하여 세션 키를 생성한다(S506a, S506b). 세션 키에는 어플리케이션 세션 키와 네트워크 세션 키가 포함될 수 있다.
이러한 정규 보안 연결이 종료된 단말 장치(100)는 서비스 서버(500)에 의해 리스트로 관리되며, 서비스 서버(500)와 본래 목적한 데이터를 송수신할 수 있게 된다(S508).
정규 보안 연결 절차 수행에 따라 생성된 세션 키는 정규 세션 키로, 단말 장치(100)가 본래 목적한 데이터를 암호화하여 송수신하는 데에 이용될 수 있다.
만약, 정규 보안 연결 절차가 완료된 이후 단말 장치(100)에서 정규 보안 연결을 위한 메시지, 예를 들어 어플리케이션 랜덤값 요청이 서비스 장치(500)에 수신되는 경우, 서비스 장치(500)는 이러한 요청을 드랍한다. 서비스 서버(500) 자체에서 단말 장치(100)로 어플리케이션 랜덤값 전송 요청이 발생하는 경우에도 어플리케이션 랜덤값을 전송하지 않고 요청을 드랍한다.
이와 같이 정규 보안 연결 절차는 1회만이 수행되며, 정규 보안 연결 절차가 완료된 이후에는 다시 절차를 수행할 수 없도록 설정된다.
이상, 본 발명의 실시 예에 따른 연결 설정 방법에 대해 설명하였다.
본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다.
따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 본 발명이 속하는 분야의 통상의 기술자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 청구범위에 의해 정하여져야 한다.
본 발명은 단말 장치와 서비스 서버 간 연결 설정 방법에 관한 것으로서, 더욱 상세하게는 협대역(Narrowband) 통신 기술이 적용된 IoT(Internet of Things, 사물인터넷)시스템, 특히, LoRa(Long Range Sub-Ghz Module) 기술이 적용된 IoT 시스템에 있어서, 단말 장치와 서비스 서버 사이에서 송수신되는 데이터를 암호화하기 위한 세션 키를 생성하기 위해 최초 연결 절차에서 사용되는 어플리케이션 키의 유출을 방지하기 위한 연결 설정 방법 및 이를 위한 장치에 관한 것이다.
본 발명에 따르면, 어플리케이션 키를 임시 어플리케이션 키(Pseudo Application Key)와 정규 어플리케이션(Real Application Key)로 구분하여, 2단계의 연결 절차를 수행함으로써, 앞서 공유된 임시 어플리케이션 키가 담당자(제조사 또는 관리자)의 실책으로 유출되더라도, 담당자가 접근할 수 없는 정규 어플리케이션 키를 이용한 보안 연결을 수행하여 송수신 데이터를 암호화할 수 있게 된다.
따라서, 상기의 연결 설정 방법을 통해 IoT 서비스 산업 발전에 이바지 할 수 있고, 더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
100: 단말 장치
200: 게이트웨이
300: 네트워크 서버
400: 어플리케이션 서버
500: 서비스 서버

Claims (8)

  1. 서비스 서버에 의한, 하나 이상의 단말 장치와 서비스 서버 간의 연결 설정 방법에 있어서,
    상기 서비스 서버와 단말 장치 간에 임시 어플리케이션 키(Pseudo Application Key)를 공유하는 단계;
    상기 단말 장치로부터의 제1 가입 요청 메시지에 대응하여, 상기 공유한 임시 어플리케이션 키를 기반으로 임시 보안 연결을 수행하는 단계;
    상기 임시 보안 연결을 통해서 상기 단말 장치와 정규 어플리케이션 키(Real Application Key)를 공유하는 단계;
    상기 단말 장치로부터의 제2 가입 요청 메시지에 대응하여, 상기 정규 어플리케이션 키를 기반으로 정규 보안 연결을 수행하는 단계;
    를 포함하는 연결 설정 방법.
  2. 제1항에 있어서,
    상기 임시 보안 연결을 수행하는 단계 또는 상기 정규 보안 연결을 수행하는 단계는,
    상기 단말 장치로부터 프로파일 정보를 수신하는 단계;
    상기 단말 장치로부터 수신한 프로파일 정보를 기반으로 대응하는 임시 어플리케이션 키 또는 정규 어플리케이션 키를 추출하는 단계;
    상기 임시 어플리케이션 키 또는 정규 어플리케이션 키를 이용하여 세션 키를 생성하는 단계; 및
    상기 세션 키를 생성하는데 필요한 정보를 상기 임시 어플리케이션 키 또는 정규 어플리케이션 키로 암호화하여 상기 단말 장치로 전송하는 단계를 포함하며,
    상기 단말 장치가 임시 어플리케이션 키 또는 정규 어플리케이션 키로 복호화하여 상기 정보를 추출하고, 추출한 정보를 기반으로 상기 세션 키를 생성하도록 하는 것을 특징으로 하는 연결 설정 방법.
  3. 제1항에 있어서,
    상기 정규 어플리케이션 키를 공유하는 단계는,
    상기 단말 장치로부터의 어플리케이션 랜덤값 요청을 수신하여 상기 어플리케이션 랜덤값을 상기 단말 장치로 송신하는 단계;
    상기 단말 장치로부터 어플리케이션 랜덤값 수신 완료 메시지를 수신하고 상기 수신 완료 메시지에 대응하여 응답 메시지를 송신하는 단계;
    상기 어플리케이션 랜덤값을 이용하여 상기 정규 어플리케이션 키를 생성하는 단계를 포함하는
    것을 특징으로 하는 연결 설정 방법.
  4. 제1항에 있어서,
    상기 임시 보안 연결을 통해 송수신되는 데이터 중,
    상기 정규 어플리케이션 키 공유를 위해 지정된 메시지 이외의 데이터를 드랍(drop)하는 단계;
    를 더 포함하는 것을 특징으로 하는 연결 설정 방법.
  5. 제1항에 있어서,
    상기 정규 보안 연결을 통해 송수신되는 데이터 중, 상기 정규 어플리케이션 키 공유를 위해 지정된 메시지가 존재하면 해당 메시지를 드랍(drop)하는 단계;
    를 더 포함하는 것을 특징으로 하는 연결 설정 방법.
  6. 제1항에 있어서,
    상기 단말 장치와 상기 서비스 서버 간의 데이터 전송은,
    LoRa(Long Range Sub-Ghz Module) 통신 프로토콜을 따르는 것을 특징으로 하는 연결 설정 방법.
  7. 단말 장치에 의한 서비스 서버와의 연결 설정 방법에 있어서,
    상기 서비스 서버와 단말 장치 간에 임시 어플리케이션 키를 공유하는 단계;
    상기 서비스 서버로 제1 가입 요청 메시지를 전송하여, 상기 임시 어플리케이션 키(Pseudo Application Key)를 기반으로 임시 보안 연결을 수행하는 단계;
    상기 임시 보안 연결을 통해서 상기 서비스 서버와 정규 어플리케이션 키(Real Application Key)를 공유하는 단계; 및
    상기 서비스 서버로 제2 가입 요청 메시지를 전송하여, 상기 정규 어플리케이션 키를 기반으로 정규 보안 연결을 수행하는 단계;
    를 포함하고,
    상기 임시 보안 연결 상태에서, 상기 단말 장치는 상기 정규 어플리케이션 키(Real Application Key)를 공유를 위해 기 설정된 메시지만을 송수신하되, 응답을 수신하지 못한 트랜잭션에 대해 반복 재시도 하는 것을 특징으로 하는 연결 설정 방법.
  8. 단말 장치와 보안 연결을 수행하고, 보안 연결을 수행한 단말 장치와 데이터를 송수신하는 네트워크 인터페이스 모듈; 및
    상기 단말 장치와 서비스 서버 간 임시 어플리케이션 키(Pseudo Application Key)를 공유하고,
    상기 네트워크 인터페이스 모듈을 통해 수신한 상기 단말 장치로부터의 제1 가입 요청(Join Request) 메시지에 대응하여, 상기 공유한 임시 어플리케이션 키를 기반으로 임시 보안 연결을 수행하고,
    상기 임시 보안 연결을 통해서 상기 단말 장치와 정규 어플리케이션 키(Real Application Key)를 공유하고,
    상기 단말 장치로부터의 제2 가입 요청 메시지에 대응하여, 상기 정규 어플리케이션 키를 기반으로 정규 보안 연결을 수행하는 제어 모듈;
    을 포함하는 것을 특징으로 하는 서비스 서버.
KR1020160061827A 2016-05-20 2016-05-20 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치 KR101827926B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160061827A KR101827926B1 (ko) 2016-05-20 2016-05-20 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160061827A KR101827926B1 (ko) 2016-05-20 2016-05-20 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20170130904A true KR20170130904A (ko) 2017-11-29
KR101827926B1 KR101827926B1 (ko) 2018-02-09

Family

ID=60811547

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160061827A KR101827926B1 (ko) 2016-05-20 2016-05-20 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR101827926B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019221419A1 (ko) * 2018-05-16 2019-11-21 주식회사 시옷 하드웨어 보안 모듈
WO2020149548A1 (en) * 2019-01-17 2020-07-23 Samsung Electronics Co., Ltd. Electronic apparatus, system and method for providing service based on internet of things
WO2021104448A1 (zh) * 2019-11-30 2021-06-03 华为技术有限公司 一种密钥信息的同步方法、***及设备
KR20230106025A (ko) * 2022-01-05 2023-07-12 (주)성진지오텍 사물인터넷을 이용한 현장 안전 관리 방법 및 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019221419A1 (ko) * 2018-05-16 2019-11-21 주식회사 시옷 하드웨어 보안 모듈
KR20190134924A (ko) * 2018-05-16 2019-12-05 주식회사 시옷 하드웨어 보안 모듈
WO2020149548A1 (en) * 2019-01-17 2020-07-23 Samsung Electronics Co., Ltd. Electronic apparatus, system and method for providing service based on internet of things
WO2021104448A1 (zh) * 2019-11-30 2021-06-03 华为技术有限公司 一种密钥信息的同步方法、***及设备
KR20230106025A (ko) * 2022-01-05 2023-07-12 (주)성진지오텍 사물인터넷을 이용한 현장 안전 관리 방법 및 시스템

Also Published As

Publication number Publication date
KR101827926B1 (ko) 2018-02-09

Similar Documents

Publication Publication Date Title
CN102427484B (zh) 基于dns来确定设备是否处于网络内部的方法和装置
JP5595583B2 (ja) マシンツーマシン通信方法
JP6022041B2 (ja) IPSecトンネルの確立方法及びシステム
US9246763B2 (en) Device management
US9699270B2 (en) Method for commissioning and joining of a field device to a network
KR101827926B1 (ko) 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치
CN110710171B (zh) 信号通信***
US20100034386A1 (en) Device manager repository
US10009760B2 (en) Providing network credentials
EP2244496B1 (en) Wireless access system, wireless access method, and access point device
CN103095861A (zh) 确定设备是否处于网络内部
KR101767889B1 (ko) 단말 식별 방법 및 이를 위한 장치
WO2011116598A1 (zh) 一种对网关实现管理的方法及***
KR20170042947A (ko) 데이터 전송 및 수신 방법, 그리고 이를 위한 장치
KR102183958B1 (ko) 데이터 전송 제어 방법 및 이를 위한 장치
KR102209718B1 (ko) 데이터 송수신 방법, 및 이를 위한 장치
US8707435B2 (en) Method and system for identifying compromised nodes
KR101643334B1 (ko) 결제 및 원격 모니터링을 통한 제어용 m2m 보안 게이트웨이 장치 및 통신 시스템
US11778036B2 (en) Management of communication between a terminal and a network server
Tomar et al. LoRa network for cities Private and complete secured by design
KR20170025550A (ko) 게이트웨이 및 이의 제어 방법
KR102500080B1 (ko) 공동 주택 단지에서의 앱 보안 처리 방법 및 시스템
KR100846536B1 (ko) Dhcp를 이용한 가상 사설 네트워크 및 그 보안방법
US20230396492A1 (en) A method of, a provisioner and a system for provisioning a plurality of operatively interconnected node devices in a network
US20230084085A1 (en) Selective network access based on trust level

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant