KR101767889B1 - 단말 식별 방법 및 이를 위한 장치 - Google Patents

단말 식별 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR101767889B1
KR101767889B1 KR1020160022601A KR20160022601A KR101767889B1 KR 101767889 B1 KR101767889 B1 KR 101767889B1 KR 1020160022601 A KR1020160022601 A KR 1020160022601A KR 20160022601 A KR20160022601 A KR 20160022601A KR 101767889 B1 KR101767889 B1 KR 101767889B1
Authority
KR
South Korea
Prior art keywords
terminal
mic
network server
device address
terminal identification
Prior art date
Application number
KR1020160022601A
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 KR1020160022601A priority Critical patent/KR101767889B1/ko
Application granted granted Critical
Publication of KR101767889B1 publication Critical patent/KR101767889B1/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/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2571NAT traversal for identification, e.g. for authentication or billing 
    • H04L61/20
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

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)

Abstract

본 발명은 단말 식별 방법 및 이를 위한 장치에 관한 것으로, 더욱 상세하게는 LoRa(Long Range Sub-Ghz Module) 기술이 적용된 IoT(Internet of the Things, 사물인터넷) 시스템을 제어하는 네트워크 서버가 단말의 디바이스 어드레스를 중복하여 할당하고, 이후 중복 할당된 디바이스 어드레스를 이용하여 단말을 보다 효과적으로 식별할 수 있는 단말 식별 방법 및 이를 위한 장치에 관한 것이다.
이를 위한 본 발명의 일 실시 예에 따른 단말 식별 방법은 네트워크 서버가 어느 하나의 단말로부터 데이터 패킷(Data Packet)을 수신하는 단계, 상기 네트워크 서버가 상기 단말에 대한 디바이스 어드레스(Device Address)기초로 제1 단말 식별 절차를 수행하는 단계 및 상기 제1 단말 식별 절차 수행 시, 상기 디바이스 어드레스가 중복 할당되어 상기 단말의 식별이 불가능한 것으로 판단되면, 상기 단말에 대응하여 기 생성된 세션 키(Session Key)를 기초로 제2 단말 식별 절차를 수행하는 단계를 포함하여 이뤄질 수 있다.

Description

단말 식별 방법 및 이를 위한 장치{METHOD OF IDENTIFYING TERMINAL AND APPARATUS THEREOF}
본 발명은 단말 식별 방법 및 이를 위한 장치에 관한 것으로, 더욱 상세하게는 LoRa(Long Range Sub-Ghz Module) 기술이 적용된 IoT(Internet of the 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 디바이스, 게이트웨이 및 네트워크 서버 등으로 구현될 수 있으며, 네트워크 서버 제어 하에 동작을 수행하기 위해서는 LoRa 디바이스가 네트워크 서버에 미리 가입(join)되는 절차를 수행해야 한다. 이때, 네트워크 서버는 LoRa 디바이스에 디바이스 식별을 위한 디바이스 어드레스를 할당하게 되는데, 일반적으로 단말을 식별하는 데 활용되는 디바이스 어드레스는 총 32비트로 구성되며 사업자별로 할당받는 네트워크 아이디 7비트 외에 사업자가 직접 할당할 수 있는 네트워크 어드레스 25비트로 구성된다. 즉, 기존의 방식에서는 사업자가 직접 할당할 수 있는 25비트의 네트워크 어드레스를 이용하여 최대 3,300 만개의 LoRa 디바이스에 디바이스 어드레스를 할당하고 네트워크에 수용할 수 있었다. 그러나, 향후 IoT 시스템에 적용되는 LoRa 디바이스의 수가 급격히 증가할 것으로 예상되고 있어, 더 많은 LoRa 디바이스를 수용할 수 있는 기술의 개발이 시급하다.
한국공개특허 제10-2015-0073113호, 2015년 6월 30일 공개 (명칭: 정보 송수신 방법 및 그에 관한 IOT 장치)
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 특히 LoRa(Long Range Sub-Ghz Module) 디바이스로 디바이스 어드레스를 중복 할당함으로써, 사실상 무한대의 LoRa 디바이스를 네트워크로 수용할 수 있는 단말 식별 방법 및 이를 위한 장치를 제공하는 데 목적이 있다.
아울러, 본 발명은 LoRa 디바이스의 식별 시 디바이스 어드레스가 중복 할당되어 있는 지 여부를 확인하고, 중복 할당되어 있을 경우, LoRa 디바이스에 대응하여 기 생성된 세션 키(Session Key)를 기초로 LoRa 디바이스를 식별할 수 있는 단말 식별 방법 및 이를 위한 장치를 제공하는 데 그 목적이 있다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 단말 식별 방법은 네트워크 서버가 어느 하나의 단말로부터 데이터 패킷(Data Packet)을 수신하는 단계; 상기 네트워크 서버가 상기 단말에 대한 디바이스 어드레스(Device Address)기초로 제1 단말 식별 절차를 수행하는 단계; 및 상기 제1 단말 식별 절차 수행 시, 상기 디바이스 어드레스가 중복 할당되어 상기 단말의 식별이 불가능한 것으로 판단되면, 상기 단말에 대응하여 기 생성된 세션 키(Session Key)를 기초로 제2 단말 식별 절차를 수행하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 데이터 패킷을 수신하는 단계 이전에, 상기 단말로부터 가입 요청(Join Request) 메시지를 수신하는 단계; 상기 단말로 지정된 범위 내의 디바이스 어드레스 중 어느 하나를 선택하여 할당하는 단계; 상기 단말에 대응하여 네트워크 세션 키(Network Session Key)를 생성하는 단계; 상기 단말의 단말 식별 정보에 대응하여 상기 할당된 디바이스 어드레스 및 상기 생성된 네트워크 세션 키를 매핑시켜 매핑 테이블을 구축하는 단계; 및 상기 단말로 가입 승인 메시지를 전송하는 단계;를 더 포함하여 이뤄질 수 있다.
이때, 상기 제1 단말 식별 절차를 수행하는 단계는 상기 데이터 패킷의 헤더에 포함된 디바이스 어드레스를 확인하는 단계; 상기 디바이스 어드레스에 대응하는 단말 식별 정보를 기 구축된 매핑 테이블을 통해 확인하는 단계; 및 상기 디바이스 어드레스에 대응하는 단말 식별 정보가 복수 개인 경우, 상기 단말의 식별이 불가능한 것으로 판단하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 제2 단말 식별 절차를 수행하는 단계는 상기 데이터 패킷에 포함된 MIC를 이용하여 제1 MIC(Message Integrity Code)를 생성하는 단계; 기 구축된 매핑 테이블에서 상기 디바이스 어드레스에 매핑된 네트워크 세션 키 중 어느 하나의 네트워크 세션 키를 선택하여 제2 MIC를 생성하는 단계; 상기 제1 MIC와 상기 제2 MIC를 비교하는 단계; 및 상기 비교 결과, 상기 제1 MIC와 상기 제2 MIC가 동일하면, 단말 식별을 완료하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 제1 MIC와 상기 제2 MIC를 비교하는 단계 이후에, 상기 비교 결과, 상기 제1 MIC와 상기 제2 MIC가 동일하지 않으면, 상기 기 구축된 매핑 테이블에서 상기 디바이스 어드레스에 매핑된 네트워크 세션 키 중 다른 네트워크 세션 키를 선택하여 또 다른 제2 MIC를 생성하여 상기 제1 MIC와 비교를 수행하여 단말 식별이 완료될 때까지 반복하는 단계;를 더 포함하여 이뤄질 수 있다.
또한, 상기 제2 단말 식별 절차를 수행하는 단계는 상기 데이터 패킷에 포함된 MIC를 이용하여 제1 MIC(Message Integrity Code)를 생성하는 단계; 기 구축된 매핑 테이블에서 상기 디바이스 어드레스에 매핑된 네트워크 세션 키별로 복수 개의 제2 MIC를 생성하는 단계; 상기 제1 MIC와 상기 복수 개의 제2 MIC를 동시에 비교하는 단계; 및 상기 비교 결과, 상기 제1 MIC와 상기 제2 MIC가 동일하면, 단말 식별을 완료하는 단계;를 포함하여 이뤄질 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 네트워크 서버는 어느 하나의 단말로부터 데이터 패킷(Data Packet)이 수신되면, 상기 단말에 대한 디바이스 어드레스(Device Address)를 기초로 제1 단말 식별 절차를 수행하고, 상기 제1 단말 식별 절차 수행 시, 상기 디바이스 어드레스가 중복 할당되어 상기 단말의 식별이 불가능한 것으로 판단되면, 상기 단말에 대응하여 기 생성된 세션 키(Session Key)를 기초로 제2 단말 식별 절차를 수행하는 단말 식별부;를 포함하여 구성될 수 있다.
또한, 상기 단말에 대한 초기 가입 절차 시 상기 단말로 지정된 범위 내의 디바이스 어드레스를 선택하여 할당하는 단말 관리부; 및 상기 단말에 대한 세션 키를 생성하는 세션 키 생성부;를 더 포함하여 구성될 수 있다.
또한, 상기 단말 관리부에 의해 선택되어 할당된 상기 디바이스 어드레스에 상기 세션 키 생성부를 통해 생성된 세션 키를 매핑하여 매핑 테이블을 구축하는 매핑 테이블 관리부;를 더 포함하여 구성될 수 있다.
본 발명의 단말 식별 방법 및 이를 위한 장치에 의하면, LoRa(Long Range Sub-Ghz Module) 기술이 적용된 IoT(Internet of the Things, 사물인터넷) 시스템을 제어하는 네트워크 서버가 LoRa 디바이스인 단말의 디바이스 어드레스를 중복하여 할당함으로써, 사실상 무한대의 단말을 네트워크 내로 수용할 수 있게 된다.
또한, 본 발명의 실시 예에 따르면, 네트워크 서버가 단말로부터 데이터 패킷이 수신되면, 디바이스 어드레스를 이용하여 먼저 단말 식별을 수행하고, 디바이스 어드레스를 이용한 단말 식별이 불가능한 경우에만 세션 키를 이용한 단말 식별을 수행함으로써, 보다 효율적인 단말 식별이 가능하게 된다.
또한 본 발명의 실시 예에 따르면, 세션 키를 이용한 단말 식별 절차를 통해 단말로부터 전달되는 데이터 패킷의 무결성 체크도 동시에 수행할 수 있어 복잡한 절차의 요구 없이 보다 효율적인 단말 식별이 가능하게 된다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도 1은 본 발명의 실시 예에 따른 IoT 시스템의 주요 구성을 도시한 시스템 구성도이다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 단말의 주요 구성을 도시한 블록도이다.
도 3은 도 1에 도시된 본 발명의 실시 예에 따른 네트워크 서버의 주요 구성을 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 가입 요청 메시지 포맷을 설명하기 위한 예시도이다.
도 5는 본 발명의 실시 예에 따른 디바이스 어드레스를 설명하기 위한 예시도이다.
도 6는 본 발명의 실시 예에 따른 매핑 테이블을 설명하기 위한 예시도이다.
도 7은 본 발명의 실시 예에 따른 상향 링크 데이터 패킷의 포맷을 설명하기 위한 예시도이다.
도 8은 본 발명의 실시 예에 따른 매핑 테이블 구축 과정을 설명하기 위한 데이터 흐름도이다.
도 9는 본 발명의 실시 예에 따른 단말 식별 방법을 설명하기 위한 데이터 흐름도이다.
도 10은 본 발명의 실시 예에 따른 단말 식별 방법을 구체적으로 설명하기 위한 흐름도이다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
아울러, 본 발명의 범위 내의 실시 예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광 디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 한정되지 않는다.
이하의 설명 및 특허 청구 범위에서, "네트워크" 또는 "통신망"은 컴퓨터 시스템들 및/또는 모듈들 간의 전자 데이터를 전송할 수 있게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 (유선, 무선, 또는 유선 또는 무선의 조합인) 통신 접속을 통하여 컴퓨터 시스템에 전송되거나 제공될 때, 이 접속은 컴퓨터-판독가능매체로서 이해될 수 있다. 컴퓨터 판독가능 명령어는, 예를 들면, 범용 컴퓨터 시스템 또는 특수 목적 컴퓨터 시스템이 특정 기능 또는 기능의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는, 예를 들면, 어셈블리어, 또는 심지어는 소스코드와 같은 이진, 중간 포맷 명령어일 수 있다.
아울러, 본 발명은 퍼스널 컴퓨터, 랩탑 컴퓨터, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램 가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화, PDA, 페이저(pager) 등을 포함하는 다양한 유형의 컴퓨터 시스템 구성을 가지는 네트워크 컴퓨팅 환경에서 실시될 수 있다.
본 발명은 또한 네트워크를 통해 유선 데이터 링크, 무선 데이터 링크, 또는 유선 및 무선 데이터 링크의 조합으로 링크된 로컬 및 원격 컴퓨터 시스템 모두가 태스크를 수행하는 분산형 시스템 환경에서 실행될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치될 수 있다.
이제, 본 발명의 실시 예에 따른 IoT 시스템의 주요 구성에 대해 설명하도록 한다.
도 1은 본 발명의 실시 예에 따른 IoT 시스템의 주요 구성을 도시한 시스템 구성도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 IoT 시스템(1000)은 복수 개의 단말(100)이 획득하는 정보를 모니터링하여 수집하고, 이에 따른 다양한 서비스를 제공하는 시스템을 의미한다.
본 발명의 IoT 시스템(1000)을 구성하는 각 요소에 대해 보다 더 구체적으로 설명하면, 단말(100)은 본 발명의 LoRa 기술이 적용된 LoRa 디바이스를 의미하는 것으로, 사물 통신이 가능한 다양한 사물 기기가 이에 해당될 수 있다. 예를 들어 각종 센서, 제어 장치, 휴대폰, 냉장고, 청소기, 세탁기, 공장 기기, 자동 판매기 등 다양한 사물(things)이 본 발명의 단말(100)로 동작 가능하다.
이러한 단말(100)은 LoRa 타입별로 데이터 전송 동작이 달라질 수 있다. 예를 들어, 단말(100)의 하향링크 데이터 패킷 수신 여부에 따라 클래스가 구분될 수 있는데, 클래스 A는 단말(100)이 상향링크 데이터 패킷 전송 후 정해진 시간(예컨대, 1초) 간격으로 정해진 횟수만큼 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미하며, 클래스 B는 단말(100)이 정해진 주기(예컨대, 128초)마다 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미하며, 클래스 C는 항상 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미한다.
단말(100)은 최초 설정 시 클래스 타입이 지정될 수 있으며, 서비스 동작 중에 클래스 타입이 변경될 수 있다. 다시 말해 본 발명의 단말(100)은 클래스 B로 설정되어 정해진 주기에 따라 하향링크 데이터 패킷을 수신하는 상태이더라도, 네트워크 서버(300)의 요청에 따라 클래스 C로 변경하여 항상 하향링크 데이터 패킷을 수신하도록 설정을 변경할 수 있다.
또한, 본 발명의 단말(100)은 지정된 동작을 수행하거나 네트워크 서버(300)로부터 전달되는 제어명령에 따라 이를 처리하는 역할을 수행할 수 있다. 예를 들어, 본 발명의 단말(100)이 온도 센서를 의미하는 경우 단말(100)은 주변 온도를 센싱하고, 이를 네트워크 서버(300)로 전달하는 역할을 수행할 수 있으며, 네트워크 서버(300)로부터 전달되는 제어 명령에 따라 온도를 낮추거나 올리는 등의 동작을 수행할 수 있다.
이러한 본 발명의 단말(100)은 LoRa 통신 프로토콜에 따라 어플리케이션 서버(500)에 접근하기 위해 가입 절차(Join Procedure)를 수행할 수 있으며, 가입 절차가 완료되면, 네트워크 서버(300)로부터 하향링크 데이터 패킷을 수신하거나 자신이 생성한 상향링크 데이터 패킷을 네트워크 서버(300)로 전달하는 과정을 수행할 수 있다. 이때, 단말(100)과 네트워크 서버(300) 간의 송수신되는 데이터 패킷은 암호화되어 송수신되며, 단말(100)은 네트워크 서버(300)와의 가입 절차 시 네트워크 서버(300)로부터 가입 승인 메시지가 수신됨에 따라 네트워크 세션 키(Network Session Key) 및 어플리케이션 세션 키(Application Session Key)를 생성하고, 데이터 패킷을 네트워크 세션 키(Network Session Key) 또는 어플리케이션 세션 키(Application Session Key)를 이용하여 암호화한 후 네트워크 서버(300)로 전달할 수 있으며, 네트워크 서버(300)로부터 전달되는 데이터 패킷을 복호화하는 등의 과정을 수행할 수 있다.
게이트웨이(200)는 단말(100)에 연결되며 단말(100)로부터 전달되는 정보를 네트워크 서버(300)로 전달하고, 네트워크서버(300)로부터 전달되는 정보를 단말(100)로 전달하는 역할을 수행한다. 특히 본 발명의 게이트웨이(200)는 LoRa 기술이 적용된 기지국이 될 수 있으며, 동시 송신이 가능한 확산 스펙트럼 CDMA(Code Division Multiple Access) 방식으로 패킷을 송수신할 수 있다. 이때, 본 발명의 게이트웨이(200)는 단말(100)과 네트워크 서버(300) 사이에 송수신되는 정보를 터널링하여 전달하는 역할을 수행할 수 있다.
또한, 본 발명의 게이트웨이(200)는 복수 개의 단말(100)과 연결될 수 있는데, 할당되거나 일정 반경 내 위치하는 단말(100)로부터 전달되는 정보를 네트워크 서버(300)로 전송하며, 이때 자신의 식별번호를 포함하여 전송할 수 있다. 이를 통해 네트워크 서버(300)는 단말(100)이 연결된 게이트웨이(200)를 확인할 수 있으며, 단말(100)로 전달하고자 하는 데이터 패킷을 해당 게이트웨이(200)로 정확하게 전달하는 과정을 수행하게 된다.
네트워크 서버(300)는 단말(100)을 인증하고, 패킷의 송수신을 지원하는 교환기 역할을 하는 노드를 의미한다. 보다 구체적으로 설명하면 네트워크 서버(300)는 단말(100)로부터 가입 요청(Join Request) 메시지가 전달되면 상기 가입 요청 메시지에 포함된 어플리케이션 식별 정보를 이용하여 단말(100)에 대응하는 어플리케이션을 확인한 후 이에 따른 처리 과정을 수행할 수 있다.
그리고, 네트워크 서버(300)는 단말(100)이 정상적인 장치인 것으로 확인되면 디바이스 어드레스(Device Address)를 할당하고, 단말(100)로부터 수신된 정보를 이용하여 네트워크 세션 키(Network Session Key) 및 어플리케이션 세션 키(Application Session Key)를 생성하게 된다.
그리고 네트워크 서버(300)는 생성된 네트워크 세션 키(Network Session Key)를 이용하여 단말(100)의 인증 절차를 수행할 수 있으며, 어플리케이션 세션 키(Application Session Key)를 이용하여 데이터 패킷의 페이로드를 암호화하거나 복호화하게 된다.
특히, 본 발명의 실시 예에 따른 네트워크 서버(300)는 단말(100)의 가입 절차 진행 시, 단말(100)로 디바이스 어드레스를 중복하여 할당할 수 있다. 그리고 본 발명의 네트워크 서버(300)는 단말 식별 정보에 대응하여 중복 할당되는 디바이스 어드레스와 함께 생성된 세션 키를 매칭시켜 매핑 테이블을 구축하게 된다. 이후에, 본 발명의 네트워크 서버(300)는 단말(100)로부터 데이터 패킷이 전달되면, 데이터 패킷에서 디바이스 어드레스를 확인하여, 디바이스 어드레스를 기초로 단말 식별 절차를 수행하고, 디바이스 어드레스가 중복 할당되어 단말(100)의 식별이 불가능한 것으로 판단되면, 세션 키를 이용하여 단말 식별 절차를 수행할 수 있다. 여기서 세션 키는 바람직하게는 네트워크 세션 키를 이용할 수 있다.
이러한 본 발명의 네트워크 서버(300)에서의 단말 식별 방법에 대해서는 후술하여 보다 더 구체적으로 설명하도록 한다.
아울러, 본 발명의 실시 예에 따른 네트워크 서버(300)는 단말(100)로 하향링크 데이터 패킷 전달 시, 단말(100)의 클래스 타입을 확인하여 현재 데이터 패킷을 수신할 수 있는 상태가 아닐 경우, 수신할 수 있는 상태가 될 때까지 해당 데이터 패킷을 임시 저장하는 과정 등을 수행할 수 있다.
또한, 본 발명의 네트워크 서버(300)는 본 발명의 IoT 시스템(1000)을 관리하는 서비스 사업자와 연동하여 서비스 사업자의 정책에 따라 다양한 기능을 설정하고 등록하는 역할을 수행할 수 있으며, 신규 게이트웨이(200)가 등록되는 과정을 지원할 수 있다.
또한, 본 발명의 네트워크 서버(300)는 단말(100)이 전송한 각종 정보를 이용하여 어플리케이션별로 고유 서비스를 관리, 제어하는 역할을 수행할 수 있다. 여기서 하나의 네트워크 서버(300)가 관리하는 어플리케이션은 복수 개 존재할 수 있으며, 온도 조절, 방사선 관리, 생활폐기물 관리, 선적관리, 주차관리, 대기오염관리, 화재관리, 수질오염 관리 등 다양한 어플리케이션 서비스를 제공할 수 있다.
이러한 본 발명의 실시 예에 따른 네트워크 서버(300)는 도 1에서는 하나의 장치 형태로 구현되는 것을 예시하여 도시하였으나, 이에 한정되는 것은 아니며, 복수 개의 게이트웨이(200)와 연결되는 네트워크 서버(300)와 별도로, 네트워크 서버(300)에 대한 제어를 수행하는 네트워크 컨트롤러(미도시) 및 어플리케이션 별로 서비스를 제공하는 적어도 하나 이상의 어플리케이션 서버(미도시)의 집합 형태로 구현될 수도 있다.
반면, 관리자 단말(600)은 본 발명의 LoRa 기술이 적용된 IoT 서비스를 이용하고자 하는 사용자의 장치를 의미한다. 특히 본 발명의 관리자 단말(600)은 네트워크 서버(300)가 제공하는 IoT 서비스 어플리케이션에 접속하여 단말(100)이 수집하여 네트워크 서버(300)로 전송하는 각종 정보들을 확인할 수 있으며, 이를 이용한 각종 제어 명령을 생성하여 네트워크 서버(300)를 통해 단말(100)로 전송하는 과정을 지원할 수 있다. 예를 들어, 단말(100)이 공장 내 공기 환경을 모니터링하는 환경 센서인 경우, 관리자 단말(600)은 적합한 공기 환경 정보를 생성하는 역할을 수행할 수 있다. 또한 관리자 단말(600)은 IoT 시스템(1000) 내 새로운 단말(100)이 추가되면, 단말(100)에 대한 클래스 타입을 설정할 수 있다. 또한, 관리자 단말(600)은 네트워크 서버(300)로부터 전달되는 각종 알람을 수신할 수도 있다. 이때, 관리자 단말(600)은 SMS, MMS 등과 같은 메시지 형태로 수신하거나 어플리케이션의 팝업 메시지를 통해 수신할 수 있다.
이러한 본 발명의 관리자 단말(600)은 사용자 장치(User Equipment), 이동국(Mobile Station, MS), 이동 단말(Mobile Terminal, MT), 가입자국(Subscriber Station, SS), 휴대 가입자국(Portable Subscriber Station, PSS), 접근 단말(Access Terminal, AT) 등을 지칭할 수도 있고, 이동 단말, 가입자국, 휴대 가입자국 등의 전부 또는 일부의 기능을 포함할 수도 있다. 또한, 단말(100)은 그 구현 형태에 따라 스마트 폰(smart phone), 타블렛 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player)와 같은 이동 단말기는 물론, 스마트 TV(Smart TV), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수도 있다.
이러한 본 발명의 관리자 단말(100)은 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 유닛들과 동등한 수준의 유닛이라면 그 어떠한 장치도 본 발명의 관리자 단말(100)로 적용 가능하다.
그리고, 본 발명의 실시 예에 따른 IoT 시스템(1000)을 구성하는 각 장치에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
이하, 본 발명의 실시 예에 따른 단말(100)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 단말의 주요 구성을 도시한 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 단말(100)은 메시지 처리부(110), 세션키 생성부(120) 및 데이터 처리부(130)를 포함하여 구성될 수 있다.
메시지 처리부(310)는 생성된 데이터를 지정된 메시지 타입으로 생성하는 과정을 수행할 수 있다. 예컨대, 본 발명의 메시지 처리부(310)는 초기 가입 절차 진행 시 가입 요청 메시지를 생성할 수 있으며, 데이터 처리부(130)에 의해 각종 데이터가 발생되면 이를 데이터 패킷으로 메시지를 구성하는 과정을 수행할 수 있다. 이때, 본 발명의 메시지 처리부(310)는 메시지 구성 시 필요한 각종 정보를 생성하는 역할을 수행할 수 있다. 예컨대, 네트워크 서버(300)로 가입 요청 메시지 전송 시 포함하여 전송되는 단말 랜덤값(DevNonce)을 생성할 수 있다.
그리고, 본 발명의 메시지 처리부(310)는 생성된 각종 메시지를 네트워크 서버(300)로 전송하거나, 네트워크 서버(300)로부터 메시지를 수신하는 역할을 수행할 수 있다. 예컨대 메시지 처리부(310)는 게이트웨이(200)를 통해 네트워크 서버(300)로 상향링크 데이터 패킷을 전송하고, 네트워크 서버(300)로부터 게이트웨이(200)를 통해 하향링크 데이터 패킷을 수신할 수 있다.
이때, 메시지 처리부(310)는 필요 시 패킷을 암호화하거나 복호화하는 과정을 수행할 수 있는 데, 네트워크 서버(300)로부터 수신되는 가입 승인 메시지는 어플리케이션 키(App Key)를 이용하여 복호화하는 과정을 수행할 수 있으며, 세션 키 생성부(120)를 통해 생성되는 어플리케이션 세션 키를 이용하여 상향링크 데이터 패킷의 페이로드를 암호화하거나, 세션 키 생성부(120)를 통해 생성되는 네트워크 세션 키를 이용하여 데이터 패킷 프레임에 포함되는 MIC를 생성하는 과정을 수행할 수 있다.
세션 키 생성부(120)는 본 발명의 실시 예에 따라 필요한 각종 세션 키를 생성할 수 있다. 여기서, 세션 키는 데이터 패킷을 암호화하거나, 네트워크 서버(300)에서의 무결성 체크를 위한 MIC를 생성하는 데 사용되게 되는 데, 특히, 본 발명의 세션 키 생성부(120)는 데이터 패킷 암호화 및 복호화를 위한 어플리케이션 세션 키(Application Session Key)를 생성하고, MIC 생성을 위한 네트워크 세션 키(Network Session Key)를 생성할 수 있다. 이때 상기 세션 키 생성에 필요한 파라미터는 어플리케이션 키(AppKey) 및 네트워크 서버(300)에서 임의로 생성되는 어플리케이션 랜덤값(AppNonce) 그리고 가입 승인 메시지에 포함된 네트워크 아이디(NetID) 및 단말(100)에서 임의로 생성되는 단말 랜덤값(DevNonce)이다.
여기서, 단말 랜덤값(DevNonce)은 어플리케이션 세션 키(Application Session Key)를 생성할 때와 네트워크 세션 키(Network Session Key)를 생성할 때와는 서로 다른 임의의 값이 될 수 있다.
데이터 처리부(130)는 본 발명의 실시 예에 따른 단말(100)에 지정된 데이터를 생성하고 처리하는 역할을 수행할 수 있다. 예를 들어, 본 발명의 단말(100)이 온도 센서를 의미하는 경우, 주기적으로 온도를 센싱하고 이를 메시지 처리부(110)로 전달할 수 있다. 또한, 네트워크 서버(300)로부터 메시지 처리부(110)를 거쳐 제어 정보가 전달되면 이에 따라 특정 동작을 수행할 수도 있다.
이상으로 본 발명의 실시 예에 따른 단말(100)의 주요 구성에 대해 설명하였다. 본 발명의 일 실시 예에 따른 단말(100)이 메시지 처리부(100), 세션키 생성부(120) 및 데이터 처리부(130)만을 포함하는 형태로 도면을 도시하였으나, 상기 구성에 한정되는 것은 아니며, 본 발명의 단말(100)은 LoRa 기술이 적용된 IoT 시스템에서 발생 가능한 다양한 과정을 처리할 수 있으며, 이를 위한 구성 요소를 더 포함하여 구성될 수 있다. 예컨대, 물리적인 관점에서, 각종 센서 모듈을 포함하며 센싱 정보를 생성하는 센서부(미도시), 각종 메시지의 송수신 처리를 담당하는 인터페이스부(미도시), 각종 정보를 저장하는 저장부(미도시) 등을 더 포함할 수 있으며 기능적인 관점에서, 지정된 클래스를 확인하고 클래스 타입을 변경하는 등의 동작을 수행할 수 있는 클래스 처리부(미도시)를 더 포함하여 구성될 수 있다.
이하, 본 발명의 실시 예에 따른 네트워크 서버의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 3은 도 1에 도시된 본 발명의 실시 예에 따른 네트워크 서버의 주요 구성을 도시한 블록도이다. 아울러, 도 4 내지 도 7은 본 발명의 실시 예를 설명하기 위한 예시도로, 특히, 도 4는 본 발명의 실시 예에 따른 가입 요청 메시지 포맷을 설명하기 위한 예시도이며, 도 5는 본 발명의 실시 예에 따른 디바이스 어드레스를 설명하기 위한 예시도이며, 도 6는 본 발명의 실시 예에 따른 매핑 테이블을 설명하기 위한 예시도이며, 도 7은 본 발명의 실시 예에 따른 상향 링크 데이터 패킷의 포맷을 설명하기 위한 예시도이다.
먼저, 도 1 및 도 3을 참조하면, 본 발명의 실시 예에 따른 네트워크 서버(300)는 단말 처리부(310), 세션키 생성부(320), 매핑 테이블 관리부(330) 및 단말 식별부(340)를 포함하여 구성될 수 있다.
단말 처리부(310)는 단말(100)로부터 각종 데이터를 수신하고 단말(100)로 각종 데이터를 전송하는 역할을 수행할 수 있다. 특히, 본 발명의 단말 처리부(310)는 단말(100)의 초기 가입 절차를 진행할 수 있는데, 단말(100)로부터 가입 요청(Join Request) 메시지가 수신되면 어플리케이션 키(AppKey)를 이용하여 단말(100)이 정상적인 단말인지 여부를 확인할 수 있다. 즉, 단말(100)로부터 수신되는 가입 요청 메시지는 도 4에 도시된 바와 같이, 페이로드에 단말 식별 정보(DevEUI, Device EUI), 어플리케이션 식별 정보(AppEUI, Application EUI) 및 단말 랜덤값(DevNonce)를 포함하며, 여기서 MIC는 0의 값을 나타낼 수 있다.
가입 요청 메시지를 수신한 단말 처리부(310)는 미리 알고 있는 어플리케이션 키(App Key)를 활용하여 MIC 체크를 수행하여 정상적인 단말로 판단되면, 단말(100)로 지정된 범위 내의 디바이스 어드레스를 선택하여 할당하는 역할을 수행할 수 있다. 일반적으로 디바이스 어드레스(DevAddr)는 도 5를 통해 도시된 바와 같이, 7비트의 네트워크 아이디(NwkID)와 25비트의 네트워크 어드레스(NwkAddr)를 포함하여 구성되게 되는데, 사업자 별로 할당받는 네트워크 아이디(NwkID)는 고정되어 있으며, 네트워크 어드레스는 25비트이므로, 총 3,300만 대의 단말(100)만을 수용할 수 있다. 종래의 네트워크 서버(300)는 단말(100)별로 고유한 하나의 디바이스 어드레스만을 할당하고 이를 기초로 단말(100)을 식별하였으나, 디바이스 어드레스의 비트 수가 한정되어 있어 전체 IoT 시스템에 수용할 수 있는 단말(100)의 수가 제한적이라는 문제점이 있다.
본 발명의 네트워크 서버(300)는 이러한 문제점을 해결하기 위해 제한적인 디바이스 어드레스를 중복하여 복수 개의 단말(100)로 할당하게 된다. 이를 통해 본 발명의 네트워크 서버(300)는 디바이스 어드레스 문제로 인한 단말(100) 수용 불가에 대한 문제점을 해결할 수 있다.
또한 본 발명의 단말 처리부(310)는 단말(100)에 대한 가입 절차를 진행할 수 있으며, 이에 따라 발생되는 각종 정보를 생성하는 역할을 수행할 수 있으며, 단말(100)로 전송하기 위한 제어 명령을 생성하고 이를 전달하는 역할을 수행할 수도 있다.
단말 처리부(310)에 의해 단말(100)에 대한 디바이스 어드레스 할당이 완료되면, 세션 키 생성부(320)는 단말(100)에 대한 네트워크 세션 키(Network Session Key) 및 어플리케이션 세션 키(Application Session Key)를 생성하는 역할을 수행한다. 이때, 세션 키 생성부(320)는 단말(100)로부터 전달되는 가입 요청 메시지에서 포함된 어플리케이션 키(App Key) 및 단말 랜덤값(DevNonce), 단말 처리부(310)에 의해 임의로 생성되는 어플리케이션 랜덤값(App Nonce) 및 네트워크 아이디(NetID)를 이용하여 네트워크 세션 키(Network Session Key) 및 어플리케이션 세션 키(Application Session Key)를 생성할 수 있다. 이때, 네트워크 세션 키 및 어플리케이션 세션 키 생성에 적용되는 어플리케이션 랜덤값(App Nonce)은 네트워크 세션 키 및 어플리케이션 세션 키 생성마다 달라질 수 있으며, 달라지는 어플리케이션 랜덤값(App Nonce)를 단말(100)로 전달하여 단말(100)에서도 동일한 어플리케이션 랜덤값을 이용할 수 있도록 처리하는 과정을 지원할 수 있다.
이러한 과정을 거쳐 단말(100)에 대한 디바이스 어드레스가 할당되고 네트워크 세션 키 및 어플리케이션 세션 키가 생성되면, 매핑 테이블 관리부(330)는 단말(100)로부터 수신된 가입 요청 메시지에서 포함된 단말 식별 정보(DevEUI)에 대응하여 할당된 디바이스 어드레스 및 생성된 네트워크 세션 키를 매핑시켜 저장하게 된다. 매핑 테이블의 예시가 도 6에 도시되어 있다.
다시 도 3을 참조하면, 단말 식별부(340)는 본 발명의 실시 예에 따른 단말(100)을 식별하고 인증하는 과정을 수행한다. 특히, 본 발명의 단말 식별부(340)는 디바이스 어드레스(Device Address)를 기초로 한 제1 단말 식별 절차를 수행할 수 있으며, 제1 단말 식별 절차에 실패한 경우, 상기 단말(100)에 대응하는 세션 키(Session Key)를 매핑 테이블 관리부(330)를 통해 확인하여 이를 기초로 제2 단말 식별 절차를 수행할 수 있다.
보다 구체적으로 설명하면, 단말 처리부(310)에 의해 가입 절차가 완료된 단말(100)은 이후에 데이터 패킷을 생성하여 이를 게이트웨이(200)를 통해 네트워크 서버(300)로 전송하며, 네트워크 서버(300)의 단말 처리부(310)는 이를 수신할 수 있다.
단말 처리부(310)가 수신하는 데이터 패킷은 도 7의 포맷을 따를 수 있으며, 이때의 프레임 페이로드(payload)는 어플리케이션 세션 키를 이용하여 암호화가 된 상태로 이를 확인하기 위해 단말 식별부(340)은 단말 식별 절차를 수행하게 된다. 즉, 단말 식별부(340)는 프레임 헤더(frame header)에 포함된 디바이스 어드레스(Device Address)를 이용하여 매핑 테이블에 디바이스 어드레스에 매칭되는 단말 식별 정보가 존재하는 지 확인한다. 이때, 상기 확인 과정에서 디바이스 어드레스가 중복 할당되어 단말 식별 정보 확인이 어려운 경우, 단말 식별부(340)는 동일 디바이스 어드레스에 매핑된 네트워크 세션키를 이용하여 MIC를 생성하고 단말(100)로부터 수신된 데이터 패킷에서 MIC를 확인한 후 확인된 MIC와 단말 식별부(340)가 생성한 MIC를 비교하는 절차를 통해 단말(100)을 식별할 수 있게 된다.
보다 구체적인 단말 식별 과정에 대해서는 도 10을 참조하여 설명하도록 한다.
이상으로 본 발명의 실시 예에 따른 네트워크 서버(300)의 주요 구성에 대해 설명하였다.
본 발명의 일 실시 예에서는 네트워크 서버(300)가 단말(100)을 식별하고, 단말(100)에 대한 세션 키를 생성하며 매핑 테이블을 구축하는 구성을 중심으로 설명하고 있으나, 본 발명의 네트워크 서버(300)는 다양한 동작을 수행하도록 구현될 수도 있다. 예를 들어, 본 발명의 네트워크 서버(300)는 하향링크 데이터 패킷 전송이 필요한 상황이 발생되면, 단말(100)의 클래스 타입을 확인하고, 단말(100)로 클래스 타입 변경을 요청할 수 있으며, 단말(100)의 클래스가 변경되면 데이터를 전송할 수도 있다.
이에 따라 본 발명의 네트워크 서버(300)는 도면에 도시하지 않은 다양한 구성 요소를 더 포함하여 구성될 수 있다. 예컨대, 물리적인 관점에서, 각종 메시지의 송수신 처리를 담당하는 인터페이스부(미도시) 및 매핑 테이블 관리부(340)의 제어에 따라 매핑 테이블을 비롯한 각종 정보를 저장하는 저장부(미도시) 등을 더 포함할 수 있으며 기능적인 관점에서, 어플리케이션을 관리하는 어플리케이션 관리부(미도시), 관리자 단말(600)의 인증, 등록 등 관리자 단말(600)에 대한 정보를 관리하는 사용자 관리부(미도시), 네트워크 서버(300)의 버퍼 크기를 관리하는 상기 네트워크 서버 버퍼 관리부(미도시) 등 많은 구성 요소에 의해 동작 가능함에 유의해야 한다.
이상으로 본 발명의 실시 예에 따른 단말(100) 및 네트워크 서버(300)의 주요 구성 및 동작에 대해 설명하였다.
이러한 본 발명의 실시 예에 따른 단말(100) 및 네트워크 서버(300)는 하드웨어적으로는 통상적인 웹서버(Web Server) 또는 네트워크 서버와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는 C, C++, Java, Visual Basic, Visual C 등과 같은 언어를 통하여 구현되는 프로그램 모듈(Module)을 포함한다.
한편, 본 발명의 각 장치에 탑재되는 메모리는 그 장치 내에서 정보를 저장한다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛 일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛 일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
이하, 본 발명의 실시 예에 따른 단말 식별 방법에 대해 설명하도록 한다.
본 발명의 네트워크 서버(300)가 단말(100)로부터 수신된 데이터 패킷을 처리하기 위한 단말 식별 과정을 수행하기 위해서는 먼저, 단말(100)에 대한 디바이스 어드레스를 할당하고, 이를 세션 키와 함께 매핑 테이블을 구축하는 절차를 수행해야 한다.
매핑 테이블을 구축하는 절차는 단말(100)의 초기 가입 절차 시 구축될 수 있다.
이에 대해 도 8을 참조하여 설명하도록 한다.
도 8은 본 발명의 실시 예에 따른 매핑 테이블 구축 과정을 설명하기 위한 데이터 흐름도이다.
도 8을 참조하면, 본 발명의 단말(100)은 네트워크 서버(300)에 연결되기 위한 초기 가입 절차를 진행할 수 있다. 여기서, 초기 가입 절차는 단말(100)의 최초 전원 온(on) 시 또는 지정된 이벤트 발생 시 진행될 수 있다.
초기 가입 절차를 진행하기 위해 본 발명의 단말(100)은 어플리케이션 식별 정보(AppEUI), 단말 식별 정보(DevEUI), 어플리케이션 키(App Key)를 알고 있는 상태이다(S101). 마찬가지로 네트워크 서버(300) 또한 어플리케이션 식별 정보(AppEUI), 단말 식별 정보(DevEUI), 어플리케이션 키(App Key)를 알고 있는 상태이다(S102). 아울러, 상기 정보들은 관리자 단말(600)에 의해 최초 설정될 수 있다.
이러한 상태에서, 단말(100)은 단말 랜덤값(DevNonce)을 생성하고, 이를 포함하는 가입 요청(Join Request) 메시지를 게이트웨이(200)를 거쳐 네트워크 서버(300)로 가입 요청(Join Request) 메시지를 전달한다(S103 ~ S105). 여기서 단말(100)은 단말 랜덤값(DevNonce) 생성 시 서로 다른 값 2가지를 생성하여 네트워크 서버(300)에 전송할 수 있으며, 이를 통해 후술하는 S115 단계에서 네트워크 서버(300)는 서로 다른 네트워크 세션 키와 어플리케이션 세션 키를 생성할 수 있다.
또한, 본 발명의 단말(100)이 네트워크 서버(300)로 전달하는 가입 요청(Join Request) 메시지는 전술한 단말 랜덤값(DevNonce) 뿐 아니라 어플리케이션 식별 정보(AppEUI) 및 단말 식별정보(DevEUI)를 더 포함하여 구성될 수 있다.
각 파라미터에 대해 간략히 설명하면, 어플리케이션 식별 정보(AppEUI)는 네트워크 서버(300)에 의해 할당되는 것으로, 사전에 설정되어 있는 어플리케이션 구분자를 의미한다. 이때 네트워크 서버(300)와 어플리케이션을 관리하는 별도의 어플리케이션 서버(미도시)가 분리되어 구축되는 경우, 상기 어플리케이션 식별 정보(AppEUI)는 어플리케이션 서버(미도시)에 의해 할당될 수 있다. 이러한 어플리케이션 식별 정보(AppEUI)는 단말(100)의 어플리케이션을 구분하는 역할을 수행할 수 있는데, 예를 들어, 단말(100)이 온도를 측정하는 온도 관리 어플리케이션을 처리하는 경우, 네트워크 서버(300)로 해당하는 온도 관리 어플리케이션 식별 정보(AppEUI)를 포함하여 전송하고, 네트워크 서버(300)는 이를 온도 관리 어플리케이션으로 처리하거나 해당하는 어플리케이션 서버(미도시)로 전달하는 역할을 수행할 수 있다. 이러한 어플리케이션 식별 정보(AppEUI)는 단말(100)이 처리하는 어플리케이션 별로 다르게 할당되며, 단말(100)은 자신이 서비스하고자 하는 어플리케이션 종류를 식별할 수 있도록 어플리케이션 식별 정보(AppEUI)를 포함하는 가입 요청 메시지를 네트워크 서버(300)로 전송한다.
반면, 단말 식별정보(DevEUI)는 단말(100) 기기에 부여되는 고유의 정보로 네트워크 서버(300)에 의해 할당되거나, 단말(100)을 제조한 사업자에 의해 할당될 수 있다. 이러한 단말 식별정보(DevEUI)는 예컨대 ESN(Electronic Serial Number) 등과 같이 장치 고유에 부여되는 정보가 될 수 있다.
단말 랜덤값(DevNonce)은 단말(100)이 랜덤(random)하게 생성하는 값을 의미하며, 생성될 때마다 변경될 수 있다.
이러한 가입 요청 메시지를 단말(100)이 전송하면, 네트워크 서버(300)는 게이트웨이(200)를 거쳐 상기 가입 요청 메시지를 수신한다(S107). 이때, 게이트웨이(200)를 거쳐 전달되는 메시지, 상기 예시에서 가입 요청 메시지는 게이트웨이(200)에 의해 추가된 게이트웨이 식별 정보를 포함하여 전달될 수 있으며, 네트워크 서버(300)는 게이트웨이 식별 정보를 상기 단말 식별정보(DevEUI)에 대응하여 저장한 후 특정 정보가 해당 게이트웨이(200)를 거쳐 해당 단말(100)로 정확히 전송되는 과정을 지원할 수 있다.
가입 요청 메시지를 수신한 네트워크 서버(300)는 어플리케이션 키(App Key)를 이용하여 MIC(Message Integrity Code) 체크를 수행한다. 즉, 단말(100)이 게이트웨이(200)를 거쳐 전달한 가입 요청 메시지가 정상적인 메시지인지 여부를 확인하게 되는 데, 본 발명의 네트워크 서버(300)는 S102 단계에서 단말 식별 정보(DevEUI)에 대응하여 매칭시킨 어플리케이션 키(App Key)와 가입 요청 메시지에 포함된 인자를 비교하여 일치하는 지 여부를 확인하여 MIC 체크를 수행할 수 있다.
어플리케이션 키(App Key)를 이용한 MIC 체크에 성공하면, 네트워크 서버(300)는 어플리케이션 랜덤값(AppNonce) 및 네트워크 아이디(NetID)를 생성한다(S111). 여기서, 어플리케이션 랜덤값(AppNonce)는 네트워크 서버(300)가 생성하는 임의의 값을 의미하며, 생성될 때마다 달라지는 값을 의미한다. 이때, 단말(100)로부터 수신된 단말 랜덤값(DevNonce)가 하나일 경우, 네트워크 서버(300)는 서로 다른 어플리케이션 랜덤값(AppNonce)를 2가지를 생성하여 후술하는 S125 단계에서 서로 다른 네트워크 세션 키와 어플리케이션 세션 키가 생성되도록 처리할 수 있다.
그리고 네트워크 아이디(NetID)는 네트워크를 구분하기 위한 구분자 역할을 수행한다.
이후에, 네트워크 서버(300)는 디바이스 어드레스(DevAddr)를 할당한다. 일반적으로 디바이스 어드레스(DevAddr)는 도 6을 통해 설명한 바와 같이, 7비트의 네트워크 아이디(NwkID)와 25비트의 네트워크 어드레스(NwkAddr)를 포함하여 구성되게 되는데, 사업자 별로 할당받는 네트워크 아이디(NwkID)는 고정되어 있으며, 네트워크 어드레스는 25비트이므로, 총 3,300만 대의 단말(100)만을 수용할 수 있다. 종래의 네트워크 서버(300)는 단말(100)별로 고유한 하나의 디바이스 어드레스만을 할당하였으며, 이에 따라 전체 수용할 수 있는 단말(100)의 수가 제한적이였다.
본 발명은 이러한 문제점을 해결하기 위한 것으로, 디바이스 어드레스를 중복하여 할당함으로써, 디바이스 어드레스 문제로 인한 단말(100) 수용 불가에 대한 문제점을 해결할 수 있다.
이를 위해, 본 발명의 네트워크 서버(300)는 S113 단계에서 단말(100)에 대응하는 디바이스 어드레스(DevAddr)를 할당하되, 중복을 허용하여 할당하게 된다(S113).
이후에, 네트워크 서버(300)는 어플리케이션 키(AppKey), 어플리케이션 랜덤값(AppNonce), 네트워크 아이디(NetID), 단말 랜덤값(DevNonce)를 이용하여 네트워크 세션 키(NW(network) Session Key)를 생성하고, 어플리케이션 키(AppKey), 어플리케이션 랜덤값(AppNonce), 네트워크 아이디(NetID), 단말 랜덤값(DevNonce)을 이용하여 어플리케이션 세션 키(Application Session Key)를 생성한다(S115). 이때, 네트워크 세션 키(NW session Key) 생성 시 적용되는 어플리케이션 랜덤값(AppNonce) 및 단말 랜덤값(DevNonce)은 어플리케이션 세션 키(Application Session Key) 생성 시 적용되는 어플리케이션 랜덤값(AppNonce) 및 단말 랜덤값(DevNonce)과 다르므로, 서로 다른 세션 키가 생성될 수 있다.
이후에, 네트워크 서버(300)는 단말 식별 정보(DevEUI)에 대응하여 복수 개의 단말(100)로 중복 할당된 디바이스 어드레스(Device Address) 및 S115 단계에서 생성된 네트워크 세션 키를 매핑시켜 매핑 테이블에 저장하게 된다(S117). 여기서, 바람직하게는 매핑 테이블에 네트워크 세션 키를 매핑시키는 것을 예로 들어 설명하나 반드시 이에 한정되는 것은 아니다.
이후, 네트워크 서버(300)는 가입 승인(Join Accept) 메시지를 단말(100)로 전송한다(S119). 본 발명의 가입 승인 메시지는 S111 단계에서 네트워크 서버(300)에 의해 임의로 생성된 어플리케이션 랜덤값(AppNonce) 및 네트워크 아이디(NetID), S113 단계에서 할당된 디바이스 어드레스(DevAddr)를 포함하여 구성된다.
이때, 네트워크 서버(300)가 게이트웨이(200)를 거쳐 단말(100)로 전달되는 가입 승인(Join Accept) 메시지는 어플리케이션 키(AppKey)로 네트워크 서버(300)에 의해 암호화되어 단말(100)로 전송되며(S119 ~ S121), 단말(100)은 S101 단계에서 자신이 미리 알고 있던 어플리케이션 키(AppKey)를 이용하여 가입 승인 메시지를 복호화할 수 있다(S123). 여기서, 단말(100)이 자신이 미리 알고 있던 어플리케이션 키(AppKey)를 이용하여 가입 승인 메시지를 복호화하지 못할 경우, 수신된 가입 승인 메시지는 잘못된 메시지이므로 이를 네트워크 서버(300)로 안내하는 절차를 수행할 수 있다.
또한, 본 발명의 단말(100)은 어플리케이션 키(AppKey)를 이용하여 가입 승인 메시지의 복호화가 완료되면, 네트워크 세션 키(NW Session Key) 및 어플리케이션 세션 키(Application Session Key)를 생성할 수 있다(S125).
이때, 본 발명의 네트워크 세션 키(NW Session Key)는 어플리케이션 키(AppKey) 및 단말(100)에서 임의로 생성되는 어플리케이션 랜덤값(AppNonce) 그리고 가입 승인 메시지에 포함된 네트워크 아이디(NetID) 및 단말(100)에서 임의로 생성되는 단말 랜덤값(DevNonce)을 포함하여 구성될 수 있다. 또한, 단말(100)은 상기 파라미터를 포함하는 어플리케이션 세션 키(Application Session Key)를 생성할 수 있으며, 이때의 어플리케이션 랜덤값(AppNonce) 및 단말 랜덤값(DevNonce)은 네트워크 세션 키(NW Session Key) 생성 시 적용된 어플리케이션 랜덤값(AppNonce) 및 단말 랜덤값(DevNonce)과 다를 수 있다.
이러한 과정을 모두 완료하게 되면, 단말(100)은 지정된 처리 방식에 따라 데이터 패킷을 생성하여 네트워크 서버(300)로 전달할 수 있는 상태가 된다.
이때, 본 발명의 단말(100)은 자신에게 할당된 클래스 타입을 확인한 후 확인된 클래스 타입에 따라 데이터 패킷을 네트워크 서버(300)로 전달할 수 있다. 그리고 네트워크 서버(300)는 단말(100)로부터 데이터 패킷이 수신되면, 단말(100)에 대한 식별 절차를 진행 한 후, 데이터 패킷을 처리하는 과정을 수행할 수 있다.
이하 본 발명의 실시 예에 따른 단말 식별 방법에 대해 보다 구체적으로 설명하도록 한다.
도 9는 본 발명의 실시 예에 따른 단말 식별 방법을 설명하기 위한 데이터 흐름도이다.
도 9를 참조하면, 단말(100)은 도 8을 참조하여 설명한 바와 같이 네트워크 서버(300)와 초기 가입 절차를 완료한 이후에, 네트워크 서버(300)로 데이터 패킷을 전송할 수 있다. 이를 위해 본 발명의 단말(100)은 기 설정된 조건에 따라 데이터 패킷을 생성한다(S201). 예를 들어, 단말(100)이 온도를 측정하는 역할을 수행하는 장치라면, 주변 온도를 측정하여 측정된 온도에 대한 정보를 포함하는 데이터 패킷을 생성할 수 있다.
이후에, 본 발명의 단말(100)은 생성된 데이터 패킷을 암호화한다(S203). 이때, 본 발명의 단말(100)은 도 8의 S125 단계에서 생성된 어플리케이션 세션 키(Application Session Key)를 이용하여 전송하고자 하는 데이터를 포함하는 페이로드를 암호화하고, 네트워크 세션 키(NW Session Key)를 이용하여 단말 식별을 위한 MIC를 생성한다.
그리고 나서 단말(100)은 데이터 패킷을 게이트웨이(200)를 거쳐 네트워크 서버(300)로 전송할 수 있다(S205 ~ S207). 이때, 단말(100)이 전송하는 데이터 패킷은 헤더 부분에 디바이스 어드레스를 포함하고 있는 상태이다.
아울러, 본 발명의 단말(100)은 생성된 데이터 패킷을 네트워크 서버(300)로 전송한 이후에, 자신의 클래스 타입을 확인한 후 확인된 클래스 타입에 따라 네트워크 서버(300)와의 네트워크 채널 유지 여부를 결정할 수도 있다. 다시 말해, 본 발명의 단말(100)은 클래스 A, B, C 타입 중 어느 하나의 타입으로 설정될 수 있는데, 클래스 A로 설정된 경우, 단말(100)은 상향링크 데이터 패킷 전송 후 정해진 시간(예컨대, 1초) 간격으로 정해진 횟수만큼 하향링크 데이터 패킷을 수신할 수 있으므로, 정해진 시간 간격으로 네트워크 서버(300)와의 네트워크 채널을 유지하고 종료하는 과정을 수행할 수 있다. 반면, 본 발명의 단말(100)이 클래스 B로 설정된 경우, 정해진 주기(예컨대, 128초)로 하향링크 데이터 패킷을 수신할 수 있으므로, 정해진 주기마다 네트워크 서버(300)와의 내트워크 채널을 유지하고 종료하는 과정을 수행할 수 있다. 클래스 A와 클래스 B를 비교한다면, 클래스 A로 설정된 단말(100)은 데이터 패킷을 네트워크 서버(300)로 전송한 이후에 주기에 따라 동작하는 것이며, 클래스 B로 설정된 단말(100)은 데이터 패킷의 전송 여부와 무관하게 주기에 따라 동작한다는 점이다. 반면, 클래스 C는 항상 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입이므로, 클래스 C로 설정된 단말(100)은 지속적으로 네트워크 서버(300)와의 연결된 채널을 유지할 수 있다.
그리고 S207 단계 이후에, 데이터 패킷을 수신한 네트워크 서버(300)는 데이터 패킷을 복호화한 후 이를 처리하는 과정을 수행하기 위해, 단말 식별 절차를 수행한다(S209 ~ S213). 즉 도 7을 참조하여 설명한 바와 같이 단말(100)이 전달하는 데이터 패킷은 헤더 부분에 디바이스 어드레스를 포함하며, 페이로드 부분에 실린 데이터는 암호화된 상태로, 데이터를 복호화하기 위해서는 먼저 단말 식별 절차를 수행하게 된다.
본 발명의 네트워크 서버(300)가 수행하는 단말 식별 절차는 디바이스 어드레스(Device Address)를 기초로 한 제1 단말 식별 절차(S209)와, 세션 키를 기초로 한 제2 단말 식별 절차(S213)로 구분될 수 있으며, 제2 단말 식별 절차는 제1 단말 식별 절차를 수행한 이후에, 단말 식별에 실패한 경우에(S211) 수행될 수 있다.
즉, 본 발명의 네트워크 서버(300)는 단말(100)로부터 전송된 데이터 패킷에 포함된 디바이스 어드레스(Device Address)를 확인하고, 확인된 디바이스 어드레스(Device Address)를 이용하여 단말 식별 절차를 수행하며, 디바이스 어드레스(Device Address)가 중복 할당되어 디바이스 어드레스(Device Address)만으로 단말(100)의 식별이 불가능한 것으로 판단되면(S211), 단말(100)에 대응하여 생성된 세션 키를 기초로 단말 식별 절차를 수행하게 된다.
이러한 식별 절차를 거쳐 단말 식별이 완료되면, 네트워크 서버(300)는 해당 단말에 대응하여 도 8의 S115 단계에서 생성된 네트워크 세션 키(NW Session Key) 또는 어플리케이션 세션 키(Application Session Key)를 확인하고 이를 이용하여 단말(100)로부터 수신된 데이터 패킷을 복호화하게 된다(S215).
이러한 본 발명의 네트워크 서버(300)에서의 단말 식별 방법에 대해 도 10을 참조하여 보다 더 구체적으로 설명하도록 한다.
도 10은 본 발명의 실시 예에 따른 단말 식별 방법을 구체적으로 설명하기 위한 흐름도이다.
도 10을 참조하면, 본 발명의 네트워크 서버(300)는 도 8을 참조하여 설명한 바와 같이, 단말(100)과 최초 가입 절차 진행 시 단말(100)에 대응하여 디바이스 어드레스(Device Address)를 할당하게 되는 데, 본 발명의 네트워크 서버(300)는 단말(100)에 대응하는 디바이스 어드레스(Device Address)를 중복하여 할당하므로, 단말(100) 고유로 생성되는 세션 키를 디바이스 어드레스(Device Address)와 함께 매칭시켜 매핑 테이블 형태로 저장한 상태이다.
이러한 상태에서, 본 발명의 네트워크 서버(300)는 단말(100)로부터 데이터 패킷을 수신한다(S301). 이때의 데이터 패킷은 디바이스 어드레스 (Device Address)를 포함하며, 네트워크 서버(300)는 데이터 패킷에 포함된 디바이스 어드레스(Device Address)를 확인하고, 기 구축된 매핑 테이블을 통해 디바이스 어드레스(Device Address)를 확인하여 중복 할당되었는지 여부를 판단하는 제1 단말 식별 절차를 수행한다(S303).
본 발명의 매핑 테이블은 도 7을 참조하여 설명한 바와 같이, 단말 식별 정보(DevEUI, Device EUI)에 대응하여 디바이스 어드레스(Device Address) 및 세션 키(Session Key)를 매칭시켜 구축된다. 본 발명의 일 실시 예에서는 디바이스 어드레스 및 네트워크 세션 키(Network Session Key)를 단말 식별 정보(DevEUI)에 매칭시켜 저장하게 되나, 반드시 네트워크 세션 키(NW Session Key)에 한정되는 것은 아니다.
아울러, 네트워크 서버(300)는 디바이스 어드레스(Device Address)가 중복 할당되어 있는 지 여부를 판단하게 되는 데, 여기서 디바이스 어드레스(Device Address)의 중복 할당 여부를 판단하는 과정은 순차적으로 스캔하면서 판단할 수 있으며, 네트워크 서버(300)가 디바이스 어드레스(Device Address)를 할당될 때마다 중복 횟수(k) 파라미터의 값을 증가시켜 저장시킨 상태라면, 저장된 중복 횟수(k) 파라미터의 값을 확인함으로써 중복 여부를 확인할 수 있다.
그리고 네트워크 서버(300)는 디바이스 어드레스가 중복 할당된 것으로 판단되면, 단말(100)의 식별이 불가능한 상태이므로, 단말(100)에 대응하여 기 생성된 세션 키(Session Key)를 기초로 제2 단말 식별 절차를 수행하게 된다.
제2 단말 식별 절차에 대해 예를 들어 설명하면, 단말(100)로부터 수신된 데이터 패킷에 포함된 디바이스 어드레스(Device Address)가 도 7의 예시된 123이라 가정할 경우, 네트워크 서버(300)는 매핑 테이블을 순차적으로 스캔하여 중복 횟수(k)를 카운팅하여 중복 횟수를 확인하거나 기 저장된 중복 횟수(k) 파라미터 값을 확인하게 된다(S307).
이후에, 네트워크 서버(300)는 비교 횟수(p) 파라미터 값을 0으로 초기화시킨 후 단말(100)로부터 수신된 데이터 패킷에서 MIC를 확인하고 확인된 MIC를 제1 MIC를 생성한다. 다시 말해, 단말(100)로부터 수신된 데이터 패킷은 도 5를 참조하여 설명한 봐 같이, 여러 필드로 구성되며, 네트워크 서버(300)는 프레임 헤더(Frame Header)에 포함된 디바이스 어드레스(Device Address)와 MIC 필드 값을 이용하여 제1 MIC를 생성할 수 있다.
그리고, 네트워크 서버(300)는 매핑 테이블에서 동일 디바이스 어드레스에 중복 할당된 각 네트워크 세션 키를 선택하여 제2 MIC를 생성하게 된다. 전술한 예에서, 디바이스 어드레스가 123이고, 동일 디바이스 어드레스에 매칭된 네트워크 세션 키가 모두 3개가 존재하므로, 네트워크 서버는 각 네트워크 세션 키를 선택하여 제2 MIC를 생성한다(S313). 여기서 MIC 생성은 기 정의된 함수를 이용하여 다음의 수학식에 따라 생성될 수 있다.
Figure 112016018674748-pat00001
Cmac=aes128_cmac(NwksKey, B| msg)
MIC=cmac[0...3]
즉, 먼저 단말(100)의 디바이스 어드레스, 데이터 패킷 메시지 길이, 상향링크(Uplink)/하향링크(Downlink) 플래그를 이용하여 파라미터 B를 도출하고, 도출된 파라미터 B와 네트워크 세션 키(NwksKey)를 이용하여 MIC를 생성할 수 있다.
네트워크 서버(300)는 제2 MIC가 생성되면 S311 단계에서 생성된 제1 MIC와 S313 단계에서 생성된 제2 MIC를 비교한다(S315). 예를 들어, 도 6에서, 네트워크 세션 키 KKK34를 선택하여 생성된 제2 MIC와 제1 MIC를 비교하여 일치하면 네트워크 서버(300)는 네트워크 세션 키 KKK34에 대응하는 단말 식별 정보(DevEUI)인 A가 데이터 패킷을 전송한 단말(100)임을 확인할 수 있다(S317).
그리고 단말 확인이 완료되면, 네트워크 서버(300)는 데이터 패킷의 페이로드는 암호화된 상태이므로, 단말 식별 정보(DevEUI)에 대응하는 세션 키, 예컨대 네트워크 세션 키 또는 어플리케이션 세션 키를 이용하여 데이터 패킷을 복호화한 후 이에 따른 처리 과정을 수행할 수 있다. 예를 들어, 단말(100)로부터 수신된 데이터 패킷이 온도 정보를 포함하고 있을 경우, 네트워크 서버(300)는 온도 정보를 확인하고, 식별된 단말(100)에 대응하는 제어 정보를 확인하여, 온도가 기 설정된 조건보다 낮은 것으로 판단되면, 온도를 높이라는 명령을 포함하는 응답 패킷을 단말(100)로 전송하는 것과 같은 처리를 수행할 수 있다.
반면, 네트워크 서버(300)는 S315 단계에서 단말(100)로부터 수신된 정보를 이용하여 확인된 제1 MIC와 네트워크 서버(300)가 매핑 테이블에서 선택된 네트워크 세션 키를 이용하여 생성된 제2 MIC를 비교하여 동일하지 않다면, 1회 비교를 수행한 것으로 비교 횟수(p)의 파라미터를 1 증가시킨 후 증가된 값이 중복 횟수(k)와 비교하여(S323), 중복 횟수(k)보다 작다면 네트워크 서버(300)는 매핑 테이블에서 또 다른 네트워크 세션 키를 선택하여 또 다른 제2 MIC를 생성하고 그 이후의 절차를 진행하게 된다. 반면, 네트워크 서버(300)는 S323 판단 결과, 중복 횟수(k)보다 크다면 단말 확인을 실패한 것으로 확인하고(S325), 단말(100)의 호처리를 거절할 수 있다(S327). 그리고 네트워크 서버(300)는 이에 따른 보고를 별도의 관리자 단말(600)로 통지할 수도 있다.
이상으로 본 발명의 실시 예에 따른 단말 식별 방법에 대해 설명하였다. 본 발명의 일 실시 예에 따른 단말 식별 방법은 네트워크 서버(300)가 중복 할당되는 디바이스 어드레스와 함께 네트워크 세션 키를 매칭시켜 매핑 테이블을 구축하고, 이후에 네트워크 세션 키를 이용함으로써 단말(100)을 식별하는 과정을 예로 들어 설명하였으나, 반드시 네트워크 세션 키에 한정되는 것은 아님에 유의해야 한다.
또한, 본 발명의 실시 예에 따른 단말 식별 방법은 네트워크 서버(300)가 중복 할당된 수만큼 순차적으로 네트워크 세션 키를 선택하여 제2 MIC를 생성한 후 제1 MIC와 비교하는 것을 예로 들어 설명하였으나, 제2 MIC를 동시에 생성하고 제1 MIC와 동시에 비교할 수도 있다. 즉, 네트워크 서버(300)가 매핑 테이블에서 디바이스 어드레스에 매핑된 네트워크 세션 키별로 복수 개의 제2 MIC를 생성하고 제1 MIC와 동시에 비교함으로써 단말 식별을 병렬적으로 처리할 수도 있다.
이와 같이, 본 발명의 실시 예에 따른 단말 식별 방법에 의하면, 수용 가능한 단말의 개수가 정해진 디바이스 어드레스를 중복 할당함으로써, 사실상 무한 대의 단말을 수용할 수 있게 된다.
또한 본 발명의 실시 예에 따르면, 네트워크 서버(300)는 단말(100)로부터 데이터 패킷이 전달되면 디바이스 어드레스를 이용하여 먼저 단말 식별을 수행하고, 디바이스 어드레스를 이용한 단말 식별이 불가능한 경우에만 세션 키를 이용한 단말 식별을 수행함으로써, 보다 효율적인 단말 식별이 가능하게 된다.
또한 본 발명의 실시 예에 따르면, 단말 식별 절차를 통해 단말(100)로부터 전달된 데이터 패킷의 무결성 체크도 함께 수행할 수 있어 복잡한 절차의 요구 없이 단말 식별이 가능하게 된다.
이러한, 본 발명의 단말 식별 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다. 본 발명의 일 실시 예에 따른 단말 식별 방법을 구현하기 위한 기록매체에 기록되는 프로그램은 네트워크 서버가 어느 하나의 단말로부터 데이터 패킷(Data Packet)을 수신하는 단계, 상기 네트워크 서버가 상기 단말에 대한 디바이스 어드레스(Device Address)기초로 제1 단말 식별 절차를 수행하는 단계 및 상기 제1 단말 식별 절차 수행 시, 상기 디바이스 어드레스가 중복 할당되어 상기 단말의 식별이 불가능한 것으로 판단되면, 상기 단말에 대응하여 기 생성된 세션 키(Session Key)를 기초로 제2 단말 식별 절차를 수행하는 단계 등을 실행할 수 있다.
이때, 기록매체에 기록된 프로그램은 컴퓨터에서 읽히어 설치되고 실행됨으로써 전술한 기능들을 실행할 수 있다.
여기서, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 기능들을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 컴퓨터의 장치 인터페이스(Interface)를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다. 또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다. 또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
이러한, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
본 발명은 단말 식별 방법 및 이를 위한 장치에 관한 것으로, 더욱 상세하게는 LoRa(Long Range Sub-Ghz Module) 기술이 적용된 IoT(Internet of the Things, 사물인터넷) 시스템을 제어하는 네트워크 서버가 단말의 디바이스 어드레스를 중복하여 할당하고, 이후 중복 할당된 디바이스 어드레스를 이용하여 단말을 보다 효과적으로 식별할 수 있는 단말 식별 방법 및 이를 위한 장치에 관한 것이다.
본 발명에 의하면, 네트워크 서버가 LoRa 디바이스인 단말의 디바이스 어드레스를 중복하여 할당함으로써, 사실상 무한대의 단말을 네트워크 내로 수용할 수 있어, IoT 서비스 산업의 발전에 이바지할 수 있다.
더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
100: 단말 110: 메시지 처리부
120: 세션키 생성부 130: 데이터 처리부
200: 게이트웨이 300: 네트워크 서버
310: 단말 처리부 320: 세션키 생성부
330: 매핑 테이블 관리부 340: 단말 식별부
1000: IoT 시스템

Claims (9)

  1. 네트워크 서버가 어느 하나의 단말로부터 데이터 패킷(Data Packet)을 수신하는 단계;
    상기 네트워크 서버가 상기 단말에 대한 디바이스 어드레스(Device Address)기초로 제1 단말 식별 절차를 수행하는 단계;
    상기 제1 단말 식별 절차 수행 시, 상기 디바이스 어드레스가 중복 할당되어 상기 단말의 식별이 불가능한 것으로 판단되면, 상기 데이터 패킷에 포함된 MIC를 이용하여 제1 MIC(Message Integrity Code)를 생성하고, 기 구축된 매핑 테이블에서 상기 디바이스 어드레스에 매핑된 네트워크 세션 키 중 어느 하나의 네트워크 세션 키를 선택하여 제2 MIC를 생성하는 단계; 및
    상기 제1 MIC와 상기 제2 MIC가 동일한 지 여부를 판단하여 제2 단말 식별 절차를 수행하는 단계;
    를 포함하는 것을 특징으로 하는 단말 식별 방법.
  2. 제1항에 있어서,
    상기 데이터 패킷을 수신하는 단계 이전에,
    상기 단말로부터 가입 요청(Join Request) 메시지를 수신하는 단계;
    상기 단말로 지정된 범위 내의 디바이스 어드레스 중 어느 하나를 선택하여 할당하는 단계;
    상기 단말에 대응하여 네트워크 세션 키(Network Session Key)를 생성하는 단계;
    상기 단말의 단말 식별 정보에 대응하여 상기 할당된 디바이스 어드레스 및 상기 생성된 네트워크 세션 키를 매핑시켜 매핑 테이블을 구축하는 단계; 및
    상기 단말로 가입 승인 메시지를 전송하는 단계;
    를 더 포함하는 것을 특징으로 하는 단말 식별 방법.
  3. 제1항에 있어서,
    상기 제1 단말 식별 절차를 수행하는 단계는
    상기 데이터 패킷의 헤더에 포함된 디바이스 어드레스를 확인하는 단계;
    상기 디바이스 어드레스에 대응하는 단말 식별 정보를 기 구축된 매핑 테이블을 통해 확인하는 단계; 및
    상기 디바이스 어드레스에 대응하는 단말 식별 정보가 복수 개인 경우, 상기 단말의 식별이 불가능한 것으로 판단하는 단계;
    를 포함하는 것을 특징으로 하는 단말 식별 방법.
  4. 제1항에 있어서,
    상기 제2 단말 식별 절차를 수행하는 단계는
    상기 제1 MIC와 상기 제2 MIC가 동일하면 단말 식별을 완료하는 단계;
    를 포함하는 것을 특징으로 하는 단말 식별 방법.
  5. 제1항에 있어서,
    상기 제2 단말 식별 절차를 수행하는 단계는
    상기 제1 MIC와 상기 제2 MIC가 동일하지 않으면, 상기 기 구축된 매핑 테이블에서 상기 디바이스 어드레스에 매핑된 네트워크 세션 키 중 다른 네트워크 세션 키를 선택하여 또 다른 제2 MIC를 생성하여 상기 제1 MIC와 비교를 수행하여 단말 식별이 완료될 때까지 반복하는 단계;
    를 더 포함하는 것을 특징으로 하는 단말 식별 방법.
  6. 제1항에 있어서,
    상기 제2 MIC를 생성하는 단계는
    상기 기 구축된 매핑 테이블에서 상기 디바이스 어드레스에 매핑된 네트워크 세션 키별로 복수 개의 제2 MIC를 생성하며,
    상기 제2 단말 식별 절차를 수행하는 단계는
    상기 제1 MIC와 상기 복수 개의 제2 MIC를 동시에 비교하여 동일한 지 여부를 판단하여 단말 식별을 완료하는 것을 특징으로 하는 단말 식별 방법.
  7. 어느 하나의 단말로부터 데이터 패킷(Data Packet)이 수신되면, 상기 단말에 대한 디바이스 어드레스(Device Address)를 기초로 제1 단말 식별 절차를 수행하고, 상기 제1 단말 식별 절차 수행 시, 상기 디바이스 어드레스가 중복 할당되어 상기 단말의 식별이 불가능한 것으로 판단되면, 상기 데이터 패킷에 포함된 MIC를 이용하여 제1 MIC(Message Integrity Code)를 생성하고, 기 구축된 매핑 테이블에서 상기 디바이스 어드레스에 매핑된 네트워크 세션 키 중 어느 하나의 네트워크 세션 키를 선택하여 제2 MIC를 생성한 후 상기 제1 MIC와 상기 제2 MIC가 동일한 지 여부를 판단하여 제2 단말 식별 절차를 수행하는 단말 식별부;
    를 포함하는 것을 특징으로 하는 네트워크 서버.
  8. 제7항에 있어서,
    상기 단말에 대한 초기 가입 절차 시 상기 단말로 지정된 범위 내의 디바이스 어드레스를 선택하여 할당하는 단말 관리부; 및
    상기 단말에 대한 세션 키를 생성하는 세션 키 생성부;
    를 더 포함하는 것을 특징으로 하는 네트워크 서버.
  9. 제8항에 있어서,
    상기 단말 관리부에 의해 선택되어 할당된 상기 디바이스 어드레스에 상기 세션 키 생성부를 통해 생성된 세션 키를 매핑하여 매핑 테이블을 구축하는 매핑 테이블 관리부;
    를 더 포함하는 것을 특징으로 하는 네트워크 서버.
KR1020160022601A 2016-02-25 2016-02-25 단말 식별 방법 및 이를 위한 장치 KR101767889B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160022601A KR101767889B1 (ko) 2016-02-25 2016-02-25 단말 식별 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160022601A KR101767889B1 (ko) 2016-02-25 2016-02-25 단말 식별 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR101767889B1 true KR101767889B1 (ko) 2017-08-14

Family

ID=60142022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160022601A KR101767889B1 (ko) 2016-02-25 2016-02-25 단말 식별 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR101767889B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102027255B1 (ko) * 2019-04-09 2019-10-01 (주)에어포인트 저전력 광역 통신 네트워크에서 게이트웨이 선택과 종단단말기의 식별자 및 세션키 분배 시스템 및 방법
KR20190134914A (ko) 2018-05-11 2019-12-05 한국전자통신연구원 로라 통신 디바이스의 통신 보안 방법 및 이를 위한 장치
CN111078863A (zh) * 2019-12-16 2020-04-28 北京明略软件系统有限公司 数据获取方法、装置、数据处理设备及存储介质
KR20200136759A (ko) * 2019-05-28 2020-12-08 주식회사 코맥스 사용자 단말 및 이의 IoT 게이트웨이 설정 방법
KR20210077154A (ko) * 2019-12-17 2021-06-25 주식회사 스파이어테크놀로지 LoRa 네트워크에서 멀티캐스팅 데이터 전송 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064376B1 (ko) * 2004-12-21 2011-09-14 주식회사 케이티 유동 아이피를 갖는 네트워크 장치의 관리 시스템 및 그방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064376B1 (ko) * 2004-12-21 2011-09-14 주식회사 케이티 유동 아이피를 갖는 네트워크 장치의 관리 시스템 및 그방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190134914A (ko) 2018-05-11 2019-12-05 한국전자통신연구원 로라 통신 디바이스의 통신 보안 방법 및 이를 위한 장치
KR102027255B1 (ko) * 2019-04-09 2019-10-01 (주)에어포인트 저전력 광역 통신 네트워크에서 게이트웨이 선택과 종단단말기의 식별자 및 세션키 분배 시스템 및 방법
WO2020209430A1 (ko) * 2019-04-09 2020-10-15 주식회사 에어포인트 저전력 광역 통신 네트워크에서 게이트웨이 선택과 종단단말기의 식별자 및 세션키 분배 시스템 및 방법
KR20200136759A (ko) * 2019-05-28 2020-12-08 주식회사 코맥스 사용자 단말 및 이의 IoT 게이트웨이 설정 방법
KR102295855B1 (ko) 2019-05-28 2021-08-31 주식회사 코맥스 사용자 단말 및 이의 IoT 게이트웨이 설정 방법
CN111078863A (zh) * 2019-12-16 2020-04-28 北京明略软件系统有限公司 数据获取方法、装置、数据处理设备及存储介质
KR20210077154A (ko) * 2019-12-17 2021-06-25 주식회사 스파이어테크놀로지 LoRa 네트워크에서 멀티캐스팅 데이터 전송 방법
KR102306404B1 (ko) * 2019-12-17 2021-09-30 주식회사 스파이어테크놀로지 LoRa 네트워크에서 멀티캐스팅 데이터 전송 방법

Similar Documents

Publication Publication Date Title
KR101767889B1 (ko) 단말 식별 방법 및 이를 위한 장치
CN1714560B (zh) 移动ip中的动态会话密钥产生及密钥重置的方法和装置
CN110505606B (zh) 蓝牙Mesh网络及其配网鉴权方法、设备和存储介质
US8533472B2 (en) Terminal identification method, authentication method, authentication system, server, terminal, wireless base station, program, and recording medium
US8978113B2 (en) Allocation of identifiers for application discovery
CN112291780A (zh) 用于无线站点的身份混淆
KR20080053177A (ko) 이동통신시스템에서의 인증키 생성 방법 및 갱신 방법
KR101807523B1 (ko) 무선 통신 시스템에서 무선 망 제공자를 확인하기 위한 장치 및 방법
KR102120770B1 (ko) 데이터 전송 및 수신 방법, 그리고 이를 위한 장치
CN110677849A (zh) 一种通信终端的隐私保护方法、装置、设备及存储介质
KR101827926B1 (ko) 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치
CN110166230B (zh) 秘钥管理方法和装置
KR101517096B1 (ko) 접속 식별자에 대한 애플리케이션 식별자의 레졸루션을 위한 기록 생성
KR102183958B1 (ko) 데이터 전송 제어 방법 및 이를 위한 장치
KR102199443B1 (ko) 버퍼 크기 제어 방법 및 이를 위한 장치
KR101500118B1 (ko) 데이터 공유 방법 및 이를 이용한 데이터 공유 시스템
KR102209718B1 (ko) 데이터 송수신 방법, 및 이를 위한 장치
CN111246597B (zh) 无线自组网系统
KR101242683B1 (ko) 센서네트워크를 위한 센서노드와 코어망 간의 통신방법
CN111770488A (zh) Ehplmn更新方法、相关设备及存储介质
CN109155913B (zh) 网络连接方法、安全节点的确定方法及装置
KR20080100515A (ko) 모바일 아이피를 사용하는 이동 통신 시스템에서 이동 단말의 이동성 관리 방법 및 시스템
EP1843523B1 (en) A method of performing a location update of a mobile station to a mobile communication network, a mobile station, and a mobile communication network
CN113194471B (zh) 基于区块链网络的无线网络接入方法、装置和终端
CN113452515B (zh) 通信方法、密钥配置方法及装置

Legal Events

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