KR20190051363A - 재전송공격 방어 장치 및 방법 - Google Patents

재전송공격 방어 장치 및 방법 Download PDF

Info

Publication number
KR20190051363A
KR20190051363A KR1020170146907A KR20170146907A KR20190051363A KR 20190051363 A KR20190051363 A KR 20190051363A KR 1020170146907 A KR1020170146907 A KR 1020170146907A KR 20170146907 A KR20170146907 A KR 20170146907A KR 20190051363 A KR20190051363 A KR 20190051363A
Authority
KR
South Korea
Prior art keywords
key
session
integrity check
sublist
stored
Prior art date
Application number
KR1020170146907A
Other languages
English (en)
Other versions
KR101996629B1 (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 KR1020170146907A priority Critical patent/KR101996629B1/ko
Publication of KR20190051363A publication Critical patent/KR20190051363A/ko
Application granted granted Critical
Publication of KR101996629B1 publication Critical patent/KR101996629B1/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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 로라 통신(LoRaWAN: Long Range Wide Area Network)에서 제3자의 재전송공격(replay attack)으로부터 디바이스를 보호하여 서비스를 정상적으로 이용할 수 있도록 하는 재전송공격 방어 장치 및 방법에 관한 것으로, 통신 네트워크에서 재전송공격을 방어하여 서비스 품질을 높이는 재전송공격 방어 방법에 있어서, 상기 재전송공격 방어 방법은, 가입요청을 수신받으면 세션_키를 생성하여 보조목록에 임시저장하는 단계; 업 링크를 수신받으면 상기 보조목록에 임시저장된 세션_키에 대해 무결성 체크를 수행하는 단계; 및 상기 무결성 체크 결과에 따라 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하거나 삭제하여 세션_키를 관리하는 단계;를 포함하고 상기 무결성 체크는, 상기 업 링크시 메시지에 처리된 세션_키와 상기 보조목록에 저장된 세션_키를 비교하여 일치하는지를 판단하는 것을 특징으로 한다.

Description

재전송공격 방어 장치 및 방법{Apparatus and Method for Replay Attack Prevention}
본 발명은 로라 통신(LoRaWAN: Long Range Wide Area Network)에서 제3자의 재전송공격(replay attack)으로부터 디바이스를 보호하여 서비스를 정상적으로 이용할 수 있도록 하는 재전송공격 방어 장치 및 방법에 관한 것이다.
로라 통신(LoRaWAN)이라 함은 900MHz대 주파수를 사용하여 저전력 원거리 통신(Low Power Wide Area Network)을 지향하는 사물 인터넷망으로, 특히 대기 전력이 적고 모듈 가격이 저렴하여 스마트 시티와 옥외 등에서 주로 사용되는 기술이다. 특히, 로라 통신(LoRaWAN)은 초고속, 광대역 네트워크를 필요로 하는 기존의 스마트 기기 연결 환경과는 다르게 별도의 기지국이나 중계 장비 없이 기기에 칩세트를 올려 저전력으로 소규모 데이터의 송수신이 가능하다.
한편, 로라 통신(LoRaWAN)은 브로드캐스트(broadcast)로 통신하는 특성상 제3자의 재전송공격(replay attack)에 의한 보안문제가 큰 이슈다. 재전송공격은, 프로토콜상에서 유효 메시지를 골라 복사한 후 나중에 재전송함으로써 정당한 사용자로 가장하는 공격이다.
도 1은 종래 가입요청(Join Request)된 단말이 제3 디바이스의 재전송공격으로 서비스를 이용할 수 없게 되는 과정을 설명하는 흐름도이다. 도 1을 참고하면, 디바이스가 네트워크 서버로 가입요청(Join Request)을 전달하는 단계(S101)에서 제3 디바이스가 정당한 디바이스의 가입요청을 복사하여(S101_1) 동일한 내용으로 가입요청을 재전송(S107)하는 공격(이하, 재전송공격, replay attack)을 하면, 네트워크 서버는 디바이스의 정상적인 가입요청(S101)에 따라 생성하였던 제1 세션 키(NwkSKey, AppSKey)를 삭제하고, 제3 디바이스의 재전송공격(S107)에 따라 새로 생성한 제2 세션 키(NwkSKey', AppSKey')로 대체하여 저장된 정보를 갱신한다(S108, S109). 이후, 정당한 서비스 이용 디바이스(20)가 제1 세션 키(NwkSKey, AppSKey)로 처리된 메시지를 송부(S111)하더라도 네트워크 서버는 전송된 메시지를 제2 세션 키(NwkSKey', AppSKey')로는 해석할 수 없어 정상적인 서비스 제공이 불가능하게 된다.
이와 같은, 제3자에 의한 재전송공격으로부터 정상적인 디바이스를 보호할 수 있는 대책이 요구되고 있다.
한국등록특허 제10-1779201호, "로라 기반 원격 검침 시스템"
앞서 본 종래 기술의 문제점을 해결하기 위해 안출된 것으로,
본 발명의 목적은, 통신 네트워크에서 제3 디바이스에 의한 무단 공격(Replay Attack)을 방어하여 정당한 디바이스를 보호하고 서비스 품질을 향상시키는 재전송공격 방어 장치 및 방법을 제공하는 것이다.
본 발명의 다른 목적 및 장점들은 하기에 설명될 것이며, 본 발명의 실시예에 의해 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 첨부된 특허 청구 범위에 나타낸 수단 및 조합에 의해 실현될 수 있다.
본 발명은 앞서 본 목적을 달성하기 위하여 다음과 같은 실시예에 의해 구현된다.
일 측면에 따른 통신 네트워크에서 재전송공격을 방어하여 서비스 품질을 높이는 재전송공격 방어 방법에 있어서, 상기 재전송공격 방어 방법은, 가입요청을 수신받으면 세션_키를 생성하여 보조목록에 임시저장하는 단계; 업 링크를 수신받으면 상기 보조목록에 임시저장된 세션_키에 대해 무결성 체크를 수행하는 단계; 및 상기 무결성 체크 결과에 따라 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하거나 삭제하여 세션_키를 관리하는 단계;를 포함하고 상기 무결성 체크는, 상기 업 링크시 메시지에 처리된 세션_키와 상기 보조목록에 저장된 세션_키를 비교하여 일치하는지를 판단하는 것을 특징으로 한다.
상기 세션_키를 관리하는 단계는, 상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하는 단계;를 포함하는 것을 특징으로 한다.
상기 세션_키를 관리하는 단계는, 상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 실패하는 경우 주목록에 저장된 세션_키에 대해 무결성 체크를 수행하는 단계; 및 상기 주목록에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 삭제하는 단계; 를 더 포함하는 것을 특징으로 한다.
상기 보조목록에 임시저장된 세션_키는, 가입요청 수신시에 생성된 앱_난수, 상기 가입요청에 포함된 디바이스_난수 및 앱_키를 기초로 생성되어 상기 보조목록에 임시저장되는 것을 특징으로 한다.
다른 측면에 따른 통신 네트워크에서 재전송공격을 방어하여 서비스 품질을 높이는 재전송공격 방어 장치에 있어서, 상기 재전송공격 방어 장치는, 프로세서; 및 상기 프로세서가 실행 가능한 적어도 하나의 명령어를 포함하는 메모리를 포함하고,상기 프로세서는, 가입요청을 수신받으면 세션_키를 생성하여 보조목록에 임시저장하고; 업 링크를 수신받으면 상기 보조목록에 임시저장된 세션_키에 대해 무결성 체크를 수행하고 무결성 체크 결과에 따라 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하거나 삭제하여 세션_키를 관리하며; 상기 무결성 체크는, 상기 업 링크시 메시지에 처리된 세션_키와 상기 보조목록에 저장된 세션_키를 비교하여 일치하는지를 판단하는 것을 특징으로 한다.
상기 프로세서는, 상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하는 것을 특징으로 한다.
상기 프로세서는, 상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 실패하는 경우 주목록에 저장된 세션_키에 대해 무결성 체크를 추가로 수행하여 상기 주목록에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 삭제하는 것을 특징으로 한다.
상기 프로세서는, 가입요청을 수신받으면 앱_난수를 생성하고, 상기 앱_난수, 상기 가입요청에 포함된 디바이스_난수 및 앱_키를 기초로 상기 세션_키를 생성하여 상기 보조목록에 임시저장하는 것을 특징으로 한다.
또 다른 측면에 따른 통신 네트워크에서 재전송공격을 방어하여 서비스 품질을 높이는 재전송공격 방어 장치에 있어서, 상기 재전송공격 방어 장치는, 프로세서; 및 상기 프로세서가 실행 가능한 적어도 하나의 명령어를 포함하는 메모리를 포함하고, 상기 프로세서는, 가입요청을 수신받으면 상기 가입요청에서 디바이스_난수를 추출하여 추출한 디바이스_난수와 동일한 난수가 기저장되어 있는지를 조회하여 조회결과에 따라 세션_키 생성 여부를 결정하는 것을 특징으로 한다.
상기 프로세서는, 조회결과 상기 가입요청에서 추출한 디바이스_난수와 동일한 난수가 기저장되어 있는 경우 상기 가입요청을 패기 하는 것을 특징으로 한다.
상기 프로세서는, 조회결과 상기 가입요청에서 추출한 디바이스_난수와 동일한 난수가 기저장되어 있지 않은 경우 상기 가입요청에서 디바이스_난수를 기초로 세션_키를 생성하는 것을 특징으로 한다.
본 발명은 앞서 본 구성에 의하여 다음과 같은 효과를 가진다.
본 발명은, 통신 네트워크에서 제3 디바이스에 의한 무단 공격(Replay Attack)을 효율적으로 방어하여 보안성을 높임으로써 정당한 디바이스는 외부의 방해 없이 서비스를 지속적으로 이용할 수 있어 서비스 이용의 품질을 높이는 효과를 갖는다.
도 1은 종래 가입요청된 단말이 제3 디바이스의 재전송공격으로 서비스를 이용할 수 없게 되는 과정을 설명하는 흐름도이다.
도 2는 실시예에 따라 재전송공격 방어 시스템을 설명하는 블럭도이다.
도 3은 일 실시예에 따라 디바이스 난수 이력을 관리하여 재전송공격을 방어하는 방법을 설명하는 흐름도이다.
도 4는 도 3의 네트워크 서버가 디바이스 난수 이력을 저장하는 목록을 보여주는 예시도이다.
도 5는 다른 실시예에 따라 세션 키 이력을 관리하여 재전송공격을 방어하는 방법을 설명하는 흐름도이다.
도 6은 도 5에서 제1 세션_키가 보조목록에 저장되었다가 무결성 체크를 통과하여 주목록으로 변경 저장되는 예시도이다.
도 7은 도 5의 무결성 체크 방법을 설명하는 흐름도이다.
도 8은 도 5에서 제2 세션_키 이력이 보조목록에 저장되는 예시도이다.
도 9는 도 8에서 보조목록에 저장된 제2 세션_키가 무결성 체크에 성공하여 주목록으로 변경 저장되는 예시도이다.
도 10은 도 8에서 보조목록에 저장된 제2 세션_키가 무결성 체크에 실패하여 보조목록에서 삭제되는 예시도이다.
도 11은 도 2의 네트워크 서버의 구성을 보여주는 블록도이다.
이하, 본 발명의 실시 예를 첨부된 도면들을 참조하여 더욱 상세하게 설명한다. 본 발명의 실시 예는 여러 가지 형태로 변형할 수 있으며, 본 발명의 범위가 아래의 실시 예들로 한정되는 것으로 해석되어서는 안 된다. 본 실시 예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 제공되는 것이다. 또한, 본 발명의 도면과 명세서에서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
한편, 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자에 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가함을 배제하지 않는다.
그러면 도면을 참고하여 본 발명의 로라 통신에서 제3 디바이스의 재전송 공격 방어 장치 및 방법에 대하여 상세하게 설명한다
도 2는 실시예에 따라 재전송공격 방어 시스템을 설명하는 블럭도이다.
도 2를 참고하면, 재전송공격 방어 시스템(1)은 네트워크 서버(100), 디바이스(200), 그리고 제3 디바이스(300)를 포함할 수 있다.
일 실시예에 따라, 재전송공격 방어 시스템(1)은 로라 통신(LoRaWAN: Long Range Wide Area Network)에서 브로드캐스트(broadcast) 방식으로 전송(①)되는 디바이스(200)의 가입요청(Join Request) 메시지를 제3 디바이스(300)가 복사(②)하여 동일한 형태(가입요청) 및 동일한 내용(AppEUI, DevEUI, devNonce)으로 가입요청을 하여 재전송공격(Repaly Attack)(④)하는 경우 이를 방어하여(⑤) 가입수락 받은(③) 정상적인 디바이스(200)가 서비스를 정상적으로 이용하도록 한다(⑥).
로라 통신(LoRaWAN)은, 대규모 저전력 장거리 무선통신 기술로 대기전력이 적고 모듈가격이 저렴하여 스마트 시티와 옥외 등에서 쓰이는 통신기술로서, 초고속 광대역 네트워크가 필요한 기존의 스마트 기기 연결환경과는 다르게 별도의 기지국이나 중계장비 없이 기기에 칩 세트를 올려 저전력으로 소규모 데이터를 주고 받을 수 있다. 재전송공격(Repaly Attack)은, 디바이스(200)의 가입요청 메시지를 복사하여 동일한 내용으로 네트워크 서버(100)로 가입요청을 수행하여 정당한 사용자인 디바이스(200)로 가장하는 공격으로, 이러한 공격을 방어하지 못하면 정상적인 디바이스(200)는 서비스를 이용할 수 없게 된다.
네트워크 서버(100)는, 디바이스(200)가 지속적으로 서비스를 이용할 수 있도록 제3 디바이스(300)의 재전송공격을 방어한다. 실시예에 따라, 디바이스(200)와 네트워크 서버(100) 사이에 이루어지는 서비스는 디바이스(200)와 네트워크 서버(100) 사이에서 송수신되는 패킷 해석을 전제로 시행될 수 있으며, 특정 종류나 형태에 제한되지 않는다.
네트워크 서버(100)는 데이터 베이스(DB, 110)를 구비하여 디바이스(200)와 메시지 교환을 위해 필요한 각종정보를 저장하고, 재전송공격 여부를 판단할 자료를 저장할 수 있다. 데이터 베이스(DB, 110)는 디바이스(200)의 앱 키(AppKey)를 미리 등록받아 저장할 수 있다. 실시예에 따라, 네트워크 서버(100)가 디바이스(200)로부터 전송받은 각종 식별정보(AppEUI, DevEUI), 디바이스_난수(devNonce) 그리고 네트워크 서버(100)가 생성한 각종 세션_키(NwkSKey, AppSKey), 앱_난수(AppNonce) 등을 저장할 수 있다.
디바이스(200)는 통신 네트워크를 통해 네트워크 서버(100)와 통신하는 장치로서, 실시예에 따라 로라 통신(LoRaWAN) 네트워크에 접속하여 센싱데이터(sensing data)를 네트워크 서버(100)로 전송하는 IoT 디바이스(ex, 센서)로 실현될 수 있다.
제3 디바이스(300)는, 통신 네트워크를 통해 네트워크 서버(100)와 통신하는 장치로서, 실시예에 따라 로라 통신(LoRaWAN) 네트워크에 접속하여 디바이스(200)의 서비스 이용을 방해하는 각종 통신 장치로 실현될 수 있다. 예를 들어, 도 2를 참고하면, 제3 디바이스(300)는, 디바이스(200)에서 브로드캐스트된 가입요청 메시지를 복사하고 동일한 내용으로 네트워크 서버(100)로 가입요청을 수행하여 재전송공격(Repaly Attack)을 수행할 수 있다.
도 3은 일 실시예에 따라 로라 통신에서 디바이스 난수 이력을 관리하여 재전송공격을 방어하는 방법을 설명하는 흐름도이고, 도 4는 도 3의 네트워크 서버가 디바이스 난수 이력을 저장하는 목록을 보여주는 예시도이다.
일 실시예에 따라 네트워크 서버(100)는 디바이스(200)로부터 전송되는 디바이스_난수(devNonce)를 저장하고 그 이력(history)을 관리하여 재전송공격(Repaly Attack)을 방어한다.
도 3을 참고하면, 네트워크 서버(100)는 디바이스(200)로부터 가입요청(Join Request)을 받으면(S301), 가입요청 패킷에 포함되어 함께 전송된 정보(AppEUI, DevEUI, devNonce)를 기초로 세션_키(NwkSKey, AppSKey)를 생성한다(S302). 실시예에 따라 네트워크 서버(100)는 가입요청 패킷에 포함된 정보 중 디바이스_난수(devNonce)를 추출하여 세션_키(NwkSKey, AppSKey)를 생성한다. 디바이스_난수(devNonce)는 디바이스(200)가 가입요청을 전송하기 전에 랜덤으로 생성하여 네트워크 서버(100)로 전송할 수 있다.
하기 <표 1>은 세션_키(NwkSKey, AppSKey) 생성 알고리즘을 보여준다.
Figure pat00001
<표 1>
단계 S302에서, 우선, 네트워크 서버(100)는 디바이스(200)로부터 가입요청이 수신되면 앱_난수(AppNonce)를 생성한다. 앱_난수(AppNonce)는 디바이스(200)로부터 가입요청(Join Request)을 받을 때 랜덤으로 생성될 수 있다.
이후, 네트워크 서버(100)는 앱_키(AppKey), 앱_난수(AppNonce) 그리고 디바이스_난수(devNonce)에 기초하여 상기 <표 1>과 같은 알고리즘에 따라 세션_키(NwkSKey, AppSKey)를 생성한다. 앱_키(AppKey)는 데이터 베이스(DB, 110)에 기저장되어 있고, 앱_난수(AppNonce)는 네트워크 서버(100)에서 생성되고, 디바이스_난수(devNonce)는 가입요청 패킷에서 추출된 정보이다. 이때, 네트워크 서버(100)는, 가입요청 패킷에 포함된 식별정보(AppEUI, DevEUI)에 기초하여 데이터 베이스(DB, 110)에 저장된 디바이스(200)의 앱 키(AppKey)를 호출할 수 있다.
서비스 식별정보(AppEUI), 디바이스 식별정보(DevEUI) 및 앱 키(AppKey)는, 디바이스(200)와 네트워크 서버(100) 사이에 사용되며, 디바이스(200)가 로라 통신(LoRaWAN) 네트워크에 접속할 때 사용하는 식별정보(ID)와 키(Activation Key)로 사용된다. 접속과정에서 서비스 식별정보(AppEUI), 디바이스 식별정보(DevEUI)는 디바이스(200)에 할당된 유일한 식별정보(Unique ID)로 사용될 수 있으며, 앱 키(AppKey)는 데이터 암호화를 위해 사용될 수 있다.
다음으로, 네트워크 서버(100)는 세션_키(NwkSKey, AppSKey) 생성에 사용된 디바이스_난수(devNonce)를 데이터 베이스(DB, 110)에 저장하여 이력을 관리한다(S303). 도 4를 참고하면, 실시예에 따라, 네트워크 서버(100)가 복수의 세션_키를 생성하는 경우, 해당 세션_키 생성에 사용된 디바이스_난수(devNonce)들의 이력(history)을 서비스 식별정보(AppEUI) 및 디바이스 식별정보(DevEUI) 등과 매핑하여 저장할 수 있다.
그 다음으로, 네트워크 서버(100)는 디바이스(200)로 가입수락(Join Accept)을 전송하고, 이때 새로 생성된 앱_난수(AppNonce)도 함께 전달한다(S304). 가입수락으로, 디바이스(200)는 네트워크 서버(100)를 통해 각종 서비스를 이용할 수 있다.
그 다음으로, 디바이스(200)는, 네트워크 서버(100)로부터 전달받은 앱_난수(AppNonce), 자신이 저장하고 있는 앱_키(AppKey) 및 디바이스_난수(devNonce)에 기초하여 알고리즘에 따라 세션_키(NwkSKey, AppSKey)를 생성한다(S305). 디바이스(200)는, 네트워크 서버(100)와 동일한 알고리즘으로 세션_키(NwkSKey, AppSKey)를 생성할 수 있다. 따라서, 디바이스(200)가 세션_키(NwkSKey, AppSKey)로 처리된 메시지를 네트워크 서버(100)로 전송하면(S306), 네트워크 서버(100)는 메시지를 해석하여 해당 내용과 관련된 서비스를 정상적으로 처리할 수 있다(S307).
로라 통신(LoRaWAN) 네트워크에서 브로드캐스트(broadcast) 방식으로 전송되는 디바이스(200)의 가입요청을 제3 디바이스(300)가 복사하여(S301-1), 동일한 내용으로 가입요청을 전송하는 재전송공격(Repaly Attack)을 수행할 수 있다(S308). 이때, 제3 디바이스(300)가 전송하는 가입요청 패킷에는 디바이스(200)의 가입요청 패킷에 포함된 정보(AppEUI, DevEUI, devNonce)와 동일한 정보(AppEUI, DevEUI, devNonce)가 포함될 수 있다.
그 다음으로, 네트워크 서버(100)는 제3 디바이스(300)로부터 가입요청을 받으면(S308), 가입요청 패킷에 포함되어 함께 전송된 정보(AppEUI, DevEUI, devNonce) 중 디바이스_난수(devNonce)를 추출하여 데이터 베이스(DB, 110)에 동일한 디바이스_난수(devNonce)가 존재하는지를 판단한다(S309). 디바이스_난수(devNonce)는 랜덤으로 정해지는 값이므로 동일한 디바이스_난수(devNonce)에 대한 가입요청이 중복하여 있는 경우, 네트워크 서버(100)는 이를 재전송공격으로 판단할 수 있다.
만약, 데이터 베이스(DB, 110)에 동일한 디바이스_난수(devNonce)가 존재하는 경우(S309, Yes), 네트워크 서버(100)는 이를 재전송공격으로 판단하고 제3 디바이스(300)로부터 전송된 가입요청 자체를 폐기한다(S310). 즉, 네트워크 서버(100)는 제3 디바이스(300)으로부터 전송받은 가입요청에 대응하여 세션_키 생성 등을 수행하지 않는다. 따라서, 데이터 베이스(DB, 110)에 기저장된 디바이스(200)와 관련된 정보, 예를 들어, 세션_키(NwkSKey, AppSKey) 등은 삭제되지 않고 그대로 보존된다.
한편, 데이터 베이스(DB, 110)에 동일한 디바이스_난수(devNonce)가 존재하지 않는 경우(S309, No), 이는 재전송공격이 아닌 새로운 가입요청이므로 제3 디바이스(300)으로부터 전송받은 가입요청에 대응하여 세션_키(NwkSKey, AppSKey)를 생성하는 단계(S302)로 진행한다. 이때, 제3 디바이스(300)는 로라 통신(LoRaWAN) 네트워크에 접속하여 센싱 데이터(sensing data)를 네트워크 서버(100)로 전송하는 복수의 IoT 디바이스(ex, 센서) 중 하나에 해당될 수 있다. 제3 디바이스(300)는 디바이스(200)와 앱_키(AppKey), 서비스 식별정보(AppEUI), 디바이스 식별정보(DevEUI) 등으로 구별될 수 있다.
이후, 디바이스(200)가 세션_키(NwkSKey, AppSKey)로 처리된 메시지를 네트워크 서버(100)로 전송하면(S311, Uplink), 네트워크 서버(100)는 수신된 메시지를 해석하여 해당 내용과 관련된 서비스를 정상적으로 처리할 수 있다(S307).
도 5는 다른 실시예에 따라 세션 키 이력을 관리하여 재전송공격을 방어하는 방법을 설명하는 흐름도이고, 도 6은 도 5에서 제1 세션_키가 보조목록에 저장되었다가 메시지 무결성 체크(무결성 체크)를 통과하여 주목록으로 변경 저장되는 예시도이고, 도 7은 도 5에서 메시지 무결성 체크(무결성 체크) 방법을 설명하는 흐름도이고, 도 8은 도 5에서 제2 세션_키 이력이 보조목록에 저장되는 예시도이고, 도 9는 도 8에서 보조목록에 저장된 제2 세션_키가 메시지 무결성 체크(무결성 체크)에 성공하여 주목록으로 변경 저장되는 예시도이고, 도 10은 도 8에서 보조목록에 저장된 제2 세션_키가 메시지 무결성 체크(무결성 체크)에 실패하여 보조목록에서 삭제되는 예시도이다.
다른 실시예에 따라 네트워크 서버(100)는 세션_키(NwkSKey, AppSKey)를 주목록 및 보조목록으로 구별하여 저장하고, 메시지 무결성(Message Integrity Code)을 체크하여 재전송공격(Repaly Attack)을 방어한다.
도 5를 참고하면, 네트워크 서버(100)는 디바이스(200)로부터 가입요청(Join Request)을 수신받으면(S501), 가입요청 패킷에 포함되어 함께 전송된 정보(AppEUI, DevEUI, devNonce)를 기초로 제1 세션_키(NwkSKey, AppSKey)를 생성하여 데이터 베이스(DB, 110)의 보조목록에 임시저장한다(S502).
단계 S502에서, 네트워크 서버(100)는 디바이스(200)로부터 가입요청이 수신되면 제1 앱_난수(AppNonce)를 생성한다. 제1 앱_난수(AppNonce)는 디바이스(200)로부터 가입요청(Join Request)을 받을 때 랜덤으로 생성될 수 있다. 이후, 네트워크 서버(100)는 앱_키(AppKey), 제1 앱_난수(AppNonce) 그리고 디바이스_난수(devNonce)에 기초하여 상기 <표 1>과 같은 알고리즘에 따라 제1 세션_키(NwkSKey, AppSKey)를 생성한다. 앱_키(AppKey)는 데이터 베이스(DB, 110)에 기저장되어 있고, 제1 앱_난수(AppNonce)는 네트워크 서버(100)에서 생성되었으며, 디바이스_난수(devNonce)는 가입요청 패킷에서 추출된 정보이다. 이때, 네트워크 서버(100)는, 가입요청 패킷에 포함된 식별정보(AppEUI, DevEUI)에 기초하여 데이터 베이스(DB, 110)에 저장된 디바이스(200)의 앱 키(AppKey)를 호출할 수 있다.
단계 S502에서, 네트워크 서버(100)는 제1 세션_키(NwkSKey, AppSKey)를 데이터 베이스(DB, 110)에 저장한다. 도 6을 참고하면, 실시예에 따라, 네트워크 서버(100)는 생성한 제1 세션_키(NwkSKey, AppSKey)를 데이터 베이스(DB, 110)의 보조목록(B type)에 임시저장할 수 있고, 서비스 식별정보(AppEUI) 및 디바이스 식별정보(DevEUI)와 매핑하여 저장할 수 있다.
그 다음으로, 네트워크 서버(100)는 디바이스(200)로 가입수락(Join Accept)을 전송하고, 이때 새로 생성된 제1 앱_난수(AppNonce)도 함께 전달할 수 있다(S503). 가입수락으로, 디바이스(200)는 네트워크 서버(100)를 통해 각종 서비스를 이용할 수 있다.
그 다음으로, 디바이스(200)는, 네트워크 서버(100)로부터 전달받은 제1 앱_난수(AppNonce), 자신이 저장하고 있는 앱_키(AppKey) 및 디바이스_난수(devNonce)에 기초하여 알고리즘에 따라 제1 세션_키(NwkSKey, AppSKey)를 생성한다(S504). 디바이스(200)는, 네트워크 서버(100)와 동일한 알고리즘으로 제1 세션_키(NwkSKey, AppSKey)를 생성할 수 있다.
그 다음으로, 제1 세션_키(NwkSKey, AppSKey)로 처리된 메시지를 수신받으면(Uplink, S505), 네트워크 서버(100)는 보조목록(B type)에 임시저장된 제1 세션_키(NwkSKey, AppSKey)에 대해 무결성 체크를 수행한다(S506). 실시예에 따라, 네트워크 서버(100)는 업 링크(uplink) 수신시 데이터 베이스(DB, 110)를 확인하여 보조목록(B type)에 세션_키가 저장되어 있으면 해당 세션_키에 대해서 무결성을 체크한다.
무결성 체크는, 세션_키로 처리된 메시지, 즉 업 링크(Uplink) 수신시에 메시지에 처리된 세션_키와 보조목록(B type) 또는 주목록(A type)에 저장된 세션_키를 비교하여 일치하는지를 판단하는 것이다. 실시예에 따라, 무결성 체크는, 메시지 무결성 코드(Message Integrity Code)로 악의적인 데이터인지 여부를 확인할 수 있다(MIC 체크). 그러나, 무결성 체크는 MIC 체크에 한정되는 것은 아니고 다양한 무결성 체크 수단으로 실행될 수 있다.
도 7을 참고하면, 실시예에 따라 무결성 체크를 수행하는 방법에 있어서, 네트워크 서버(100)는 업 링크(Uplink)를 수신받으면, 보조목록에 임시저장된 세션_키에 대해 무결성 체크를 수행하는 한다(S701). 네트워크 서버(100)는 무결성 체크 결과에 따라 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하거나 삭제하여 세션_키를 관리할 수 있다. 구체적으로, 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 성공하는 경우(S701, Yes), 네트워크 서버(100)는 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장한다(S702). 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 실패하는 경우(S701, No), 네트워크 서버(100)는 주목록에 저장된 세션_키에 대해 무결성 체크를 추가로 수행한다(S703). 주목록에 대한 무결성 체크가 성공하는 경우(S703, Yes), 네트워크 서버(100)는 보조목록에 임시저장된 세션_키를 삭제한다. 주목록에 대한 무결성 체크가 실패하는 경우(S703, Yes), 다시 단계 S701로 진행한다.
단계 S506에서, 도 6 및 도 7을 참고하면, 보조목록(B type)에 임시저장된 제1 세션_키(NwkSKey, AppSKey)에 대해 수신받은 메시지에 포함된 제1 세션_키(NwkSKey, AppSKey)와 비교하여 무결성 체크를 수행한다(S701). 네트워크 서버(100)는 보조목록(B type)에 임시저장된 제1 세션_키(NwkSKey, AppSKey)의 무결성을 인정할 것이다(S701, Yes). 왜냐하면, 보조목록(B type)에 임시저장된 제1 세션_키(NwkSKey, AppSKey)는 디바이스(200)의 가입신청에 따라 생성되었고, 디바이스(200)는 단계 S503 및 단계 S504에서 네트워크 서버(100)로부터 전달받은 제1 앱_난수(AppNonce)에 기초하여 제1 세션_키(NwkSKey, AppSKey) 생성하여 양자 같은 정보를 같기 때문이다.
그 다음으로, 도 7을 참고하면, 보조목록(B type)에 임시저장된 제1 세션_키(NwkSKey, AppSKey)의 무결성 체크가 성공하면(S701, Yes), 네트워크 서버(100)는 보조목록(B type)에 임시저장된 제1 세션_키(NwkSKey, AppSKey)를 주목록(A type)으로 이동시켜 저장한다(S702). 도 6을 참고하면, 보조목록(B type)에서 제1 세션_키(NwkSKey, AppSKey)는 삭제되고, 주목록(A type)에 이동 저장된다. 실시예에 따라, 주목록(A type)에 저장된 세션_키는 무결성이 검증된 정보이며, 보조목록(B type)에 저장된 세션_키는 임시저장된 정보로 무결성 체크 결과에 따라 삭제될 수 있다.
한편, 로라 통신(LoRaWAN) 네트워크에서 브로드캐스트(broadcast) 방식으로 전송되는 디바이스(200)의 가입요청을 제3 디바이스(300)가 복사하여(S501-1), 동일한 내용으로 가입요청을 전송하는 재전송공격(Repaly Attack)을 수행할 수 있다(S507). 이때, 제3 디바이스(300)가 전송하는 가입요청 패킷에는 디바이스(200)가 전송한 가입요청 패킷에 포함된 정보(AppEUI, DevEUI, devNonce)와 동일한 정보(AppEUI, DevEUI, devNonce)가 포함된다.
그 다음으로, 네트워크 서버(100)는 제3 디바이스(300)로부터 가입요청을 받으면(S507), 가입요청 패킷에 포함되어 함께 전송된 정보(AppEUI, DevEUI, devNonce)를 기초로 제2 세션_키(NwkSKey', AppSKey')를 생성하여 데이터 베이스(DB, 110)의 보조목록(B type)에 임시저장한다(S508).
단계 S508에서, 구체적으로 설명하면, 네트워크 서버(100)는 제3 디바이스(300)로부터 가입요청이 수신되면 제2 앱_난수(AppNonce')를 생성한다. 제2 앱_난수(AppNonce')는 제3 디바이스(300)로부터 가입요청(Join Request)을 받을 때 랜덤으로 생성될 수 있으며, 제1 앱_난수(AppNonce)와는 다른 값이다.
이후, 네트워크 서버(100)는 앱_키(AppKey), 제2 앱_난수(AppNonce') 그리고 디바이스_난수(devNonce)에 기초하여 알고리즘에 따라 제2 세션_키(NwkSKey', AppSKey')를 생성한다. 앱_키(AppKey)는 데이터 베이스(DB, 110)에 기저장되어 있고, 제2 앱_난수(AppNonce')는 네트워크 서버(100)에서 생성되었으며, 디바이스_난수(devNonce)는 가입요청 패킷에 포함되어 전송된 정보이다. 이때, 네트워크 서버(100)는, 가입요청 패킷에 포함된 식별정보(AppEUI, DevEUI)에 기초하여 데이터 베이스(DB, 110)에 저장된 디바이스(200)의 앱 키(AppKey)를 호출할 수 있다.
단계 S508에서, 네트워크 서버(100)는 생성한 제2 세션_키(NwkSKey', AppSKey')를 데이터 베이스(DB, 110)의 보조목록(B type)에 임시저장한다. 도 8을 참고하면, 실시예에 따라, 네트워크 서버(100)는 생성한 제2 세션_키(NwkSKey', AppSKey')를 데이터 베이스(DB, 110)의 보조목록(B type)에 임시저장할 수 있고, 서비스 식별정보(AppEUI) 및 디바이스 식별정보(DevEUI)와 매핑하여 저장할 수 있다.
그 다음으로, 네트워크 서버(100)는 제3 디바이스(300)로 가입수락(Join Accept)을 전송하고, 이때 새로 생성된 제2 앱_난수(AppNonce')도 함께 전달한다(S509).
그 다음으로, 네트워크 서버(100)는 디바이스(200)로부터 제1 세션_키(NwkSKey, AppSKey)로 처리된 메시지를 수신받으면(S510, uplink), 네트워크 서버(100)는 보조목록(B type)에 임시저장된 제2 세션_키(NwkSKey', AppSKey')에 대해 무결성 체크를 수행한다(S511, S701). 실시예에 따라, 네트워크 서버(100)는 업 링크(uplink) 수신시 데이터 베이스(DB, 110)를 확인하여 보조목록(B type)에 세션_키가 저장되어 있으면 해당 세션_키에 대해서 무결성을 체크를 시행한다.
단계 S511에서, 도 7 및 도 8을 참고하면, 네트워크 서버(100)는 보조목록(B type)에 임시저장된 제2 세션_키(NwkSKey', AppSKey')에 대해 수신받은 메시지에 포함된 제1 세션_키(NwkSKey, AppSKey)와 비교하여 무결성 체크를 수행한다(S701). 이때, 보조목록(B type)에 임시저장된 제2 세션_키(NwkSKey', AppSKey')에 대한 무결성 체크는 실패한다(S701, No). 왜냐하면, 제2 세션_키(NwkSKey', AppSKey')는 제2 앱_난수(AppNonce')를 기초로하고 제1 세션_키(NwkSKey, AppSKey)는 제1 앱_난수(AppNonce)를 기초로 생성되어, 실시예에 따라 MIC 체크(Message Integrity Code)를 수행하면 양자 결과값이 다르기 때문이다.
단계 S511에서, 보조목록(B type)에 임시저장된 제2 세션_키(NwkSKey', AppSKey')에 대한 무결성 체크가 실패하면(S701, No), 네트워크 서버(100)는 주목록(A type)에 저장된 제1 세션_키(NwkSKey, AppSKey)에 대해 수신받은 메시지에 포함된 제1 세션_키(NwkSKey, AppSKey)와 비교하여 무결성 체크를 추가로 수행한다(S703). 이때, 주목록(A type)에 저장된 제1 세션_키(NwkSKey, AppSKey)에 대한 무결성 체크는 성공한다(S704, Yes). 왜냐하면, 주목록(A type)에 저장된 제1 세션_키(NwkSKey, AppSKey)와 단계 S510에서 수신받은 메시지에 포함된 제1 세션_키(NwkSKey, AppSKey)는 동일한 정보를 기초로 생성된 세션_키에 해당하기 때문이다.
단계 S511에서, 주목록(A type)에 저장된 제1 세션_키(NwkSKey, AppSKey)에 대한 무결성 체크가 성공하면(S703, Yes), 네트워크 서버(100)는 보조목록(B type)에 임시저장된 제2 세션_키(NwkSKey', AppSKey')를 삭제한다(S704). 업 링크 수신시, 네트워크 서버(100)는 무결성 체크를 수행하여 보조목록에 임시저장된 세션_키는 실패, 동시에 주목록에 저장된 세션_키는 성공인 경우에는 임시로 저장된 세션_키를 악의적인 재전송공격에 따라 생성된 것으로 판단하고 삭제할 수 있다.
도 7 및 도 8을 참고하면, 실시예에 따라, 네트워크 서버(100)는 데이터 베이스(DB, 110)의 보조목록(B type)에 세션_키가 저장되어 있는 상태에서 업 링크(uplink)를 수신하면, 보조목록(B type)에 저장된 세션_키에 대해서 무결성 체크를 시행한다(S701). 보조목록(B type)에 저장된 세션_키의 무결성 체크가 성공한 경우(S701, Yes), 도 8 및 도 9를 참고하면, 네트워크 서버(100)는 보조목록(B type)에 저장된 세션_키를 주목록(A type)으로 이동시키고, 이때, 보조목록에 기저장되었던 세션_키(ex, 제2 세션_키)는 삭제하고, 주목록에 기저장되었던 세션_키(ex, 제1 세션_키)는 보조목록에서 이동하는 새로운 세션_키(ex, 제2 세션_키)로 대체한다(S702). 보조목록(B type)에 저장된 세션_키의 무결성 체크가 실패한 경우(S701, No), 도 8 및 도 10을 참고하면, 네트워크 서버(100)는 주목록(A type)에 저장된 세션_키에 대해 무결성 체크를 추가로 시행하여 성공하면(S703, Yes) 보조목록(B type)에 저장된 세션_키는 악의적인 재전송공격에 따라 생성된 것으로 판단하고 삭제한다(S704).
도 11은 도 2의 네트워크 서버의 구성을 보여주는 블록도이다.
네트워크 서버(100)는, 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다. 메모리는 각종 정보와 프로그램 명령어를 저장할 수 있고, 프로그램은 프로세서에 의해 실행된다.
주변 인터페이스는 네트워크 서버(100)의 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 네트워크 서버(100)를 위한 여러 기능을 수행하고 데이터를 처리한다. I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. 디스플레이 장치는 LCD(liquid crystal display) 기술 또는 LPD(light emitting polymer display) 기술을 사용할 수 있다.
프로세서는 네트워크 서버(100)에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 전파 맵 생성 장치(300)의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. 통신 회로는 외부 포트를 통한 통신 또는 RF 신호에 의한 통신을 수행한다. 통신 회로는 전기 신호를 RF 신호로 또는 그 반대로 변환하며 이 RF 신호를 통하여 통신 네트워크, 다른 이동형 게이트웨이 장치 및 통신 장치와 통신할 수 있다.
도 11을 참고하면, 네트워크 서버(100)는, 가입요청 처리부(110), 업 링크 처리부(120), 난수 관리부(130), 그리고 세션_키 관리부(140)를 포함한다.
일 실시예에 따라 네트워크 서버(100)는 디바이스(200)로부터 전송되는 디바이스_난수(devNonce)를 저장하고 그 이력(history)을 관리하여 재전송공격(Repaly Attack)을 방어한다.
가입요청 처리부(110)는, 디바이스(200)로부터 가입요청(Join Request)을 수신받으면 가입요청에서 디바이스_난수(devNonce)를 추출하고, 추출한 디바이스_난수와 동일한 난수가 데이터 베이스(DB, 110)에 기저장되어 있는지를 난수 관리부(130)에 조회한다. 가입요청 처리부(110)는, 조회결과에 따라 상기 세션_키 생성 여부를 결정한다.
난수 관리부(130)에 조회결과 가입요청에서 추출한 디바이스_난수(devNonce)와 동일한 난수가 기저장되어 있는 경우, 가입요청 처리부(110)는, 수신받은 가입요청을 패기 한다. 디바이스_난수(devNonce)는, 디바이스(200)가 가입요청을 전송하기 전에 랜덤으로 생성하여 네트워크 서버(100)로 전송하는 값이므로, 가입요청 처리부(110)는, 동일한 디바이스_난수(devNonce)에 대한 가입요청이 중복하여 있는 경우 이를 재전송공격으로 판단할 수 있다.
난수 관리부(130)에 조회결과 가입요청에서 추출한 디바이스_난수(devNonce)와 동일한 난수가 기저장되어 있지 않은 경우, 가입요청 처리부(110)는, 가입요청에서 추출한 디바이스_난수(devNonce)를 기초로 세션_키(NwkSKey, AppSKey)를 생성한다.
세션_키(NwkSKey, AppSKey)를 생성하는 방법에 있어서, 우선, 가입요청 처리부(110)는 가입요청이 수신되면 앱_난수(AppNonce)를 생성한다. 앱_난수(AppNonce)는 디바이스(200)로부터 가입요청(Join Request)을 받을 때 랜덤으로 생성될 수 있다. 이후, 가입요청 처리부(110)는 앱_키(AppKey), 앱_난수(AppNonce) 그리고 디바이스_난수(devNonce)에 기초하여 상기 <표 1>과 같은 알고리즘에 따라 세션_키(NwkSKey, AppSKey)를 생성한다.
가입요청 처리부(110)는, 디바이스(200)로 가입수락(Join Accept)을 전송하고, 이때 생성한 앱_난수(AppNonce)도 함께 전달한다. 가입수락으로, 디바이스(200)는 네트워크 서버(100)를 통해 각종 서비스를 이용할 수 있다.
업 링크 처리부(120)는, 세션_키(NwkSKey, AppSKey)로 처리된 메시지를 수신받으면, 즉, 업 링크(Uplink)를 수신받으면 메시지를 해석하여 서비스를 제공한다.
난수 관리부(130)는, 가입요청 처리부(110)가 가입요청에서 추출한 디바이스_난수(devNonce)로 세션_키(NwkSKey, AppSKey)를 생성하면, 세션_키(NwkSKey, AppSKey) 생성에 이용된 디바이스_난수(devNonce)를 데이터 베이스(DB, 110)에 저장하여 이력을 관리한다. 일 실시예에 따라, 난수 관리부(130)는, 가입요청 처리부(110)로부터 디바이스_난수(devNonce) 이력조회를 요청받으면, 요청받은 디바이스_난수(devNonce)와 동일한 난수가 데이터 베이스(DB, 110)에 저장되어 있는지를 확인하고 그 결과를 전달한다.
세션_키 관리부(140)는, 가입요청 처리부(110)가 생성한 세션_키(NwkSKey, AppSKey)를 데이터 베이스(DB, 110)에 저장하여 이력을 관리한다.
다른 실시예에 따라 네트워크 서버(100)는 세션_키(NwkSKey, AppSKey)를 주목록 및 보조목록으로 구별하여 저장하고, 메시지 무결성(Message Integrity Code)을 체크하여 재전송공격(Repaly Attack)을 방어한다.
가입요청 처리부(110)는 디바이스(200) 또는 제3 디바이스(300)로부터 가입요청(Join Request)을 받으면, 가입요청 패킷에 포함된 정보(AppEUI, DevEUI, devNonce) 중 디바이스_난수(devNonce)를 추출하여 세션_키(NwkSKey, AppSKey)를 생성한다. 가입요청 처리부(110)는 생성한 세션_키(NwkSKey, AppSKey)를 데이터 베이스(DB, 110)의 보조목록(B type)에 임시저장한다.
업 링크 처리부(120)는, 세션_키(NwkSKey, AppSKey)로 처리된 메시지를 수신받으면, 즉, 업 링크(Uplink)를 수신받으면 메시지를 해석하여 서비스를 제공한다.
세션_키 관리부(140)는, 업 링크 처리부(120)로부터 업 링크 수신 내역을 전달받아 무결성 체크를 수행하고, 무결성 체크 결과에 따라 보조목록에 임시저장된 세션_키를 주목록(A type)으로 이동시켜 저장하거나, 삭제하여 세션_키를 관리한다. 무결성 체크는 업 링크시 메시지에 처리된 세션_키와 보조목록 또는 주목록에 저장된 세션_키를 비교하여 일치하는지를 판단함으로써 수행될 수 있다.
세션_키 관리부(140)는, 도 7 및 도 8을 참고하면, 실시예에 따라, 데이터 베이스(DB, 110)의 보조목록(B type)에 세션_키가 저장되어 있는 상태에서 업 링크(uplink)를 수신되면, 보조목록(B type)에 저장된 세션_키에 대해서 무결성 체크를 시행한다(S701). 보조목록(B type)에 저장된 세션_키의 무결성 체크가 성공한 경우(S701, Yes), 도 8 및 도 9를 참고하면, 세션_키 관리부(140)는 보조목록(B type)에 저장된 세션_키를 주목록(A type)으로 이동시키고, 이때, 보조목록에 기저장되었던 세션_키(ex, 제2 세션_키)는 삭제하고, 주목록에 기저장되었던 세션_키(ex, 제1 세션_키)는 보조목록에서 이동하는 새로운 세션_키(ex, 제2 세션_키)로 대체한다(S702). 보조목록(B type)에 저장된 세션_키의 무결성 체크가 실패한 경우(S701, No), 도 8 및 도 10을 참고하면, 세션_키 관리부(140)는, 주목록(A type)에 저장된 세션_키에 대해 무결성 체크를 추가로 시행하여 성공하면(S703, Yes) 보조목록(B type)에 저장된 세션_키는 악의적인 재전송공격에 따라 생성된 것으로 판단하고 삭제한다(S704).
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
1: 재전송공격 방어 시스템 100: 네트워크 서버
110: 가입요청 처리부 120: 업 링크 처리부
130: 난수 관리부 140: 세션_키 관리부
200: 디바이스 300: 제3 디바이스

Claims (11)

  1. 통신 네트워크에서 재전송공격을 방어하여 서비스 품질을 높이는 재전송공격 방어 방법에 있어서,
    가입요청을 수신받으면 세션_키를 생성하여 보조목록에 임시저장하는 단계;
    업 링크를 수신받으면 상기 보조목록에 임시저장된 세션_키에 대해 무결성 체크를 수행하는 단계; 및
    상기 무결성 체크 결과에 따라 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하거나 삭제하여 세션_키를 관리하는 단계;를 포함하고
    상기 무결성 체크는, 상기 업 링크시 메시지에 처리된 세션_키와 상기 보조목록에 저장된 세션_키를 비교하여 일치하는지를 판단하는 것을 특징으로 하는 재전송공격 방어 방법.
  2. 제1항에 있어서,
    상기 세션_키를 관리하는 단계는,
    상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하는 단계;를 포함하는 것을 특징으로 하는 재전송공격 방어 방법.
  3. 제1항에 있어서,
    상기 세션_키를 관리하는 단계는,
    상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 실패하는 경우 주목록에 저장된 세션_키에 대해 무결성 체크를 수행하는 단계; 및
    상기 주목록에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 삭제하는 단계;
    를 더 포함하는 것을 특징으로 하는 재전송공격 방어 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 보조목록에 임시저장된 세션_키는,
    가입요청 수신시에 생성된 앱_난수, 상기 가입요청에 포함된 디바이스_난수 및 앱_키를 기초로 생성되어 상기 보조목록에 임시저장되는 것을 특징으로 하는 재전송공격 방어 방법.
  5. 통신 네트워크에서 재전송공격을 방어하여 서비스 품질을 높이는 재전송공격 방어 장치에 있어서,
    프로세서; 및
    상기 프로세서가 실행 가능한 적어도 하나의 명령어를 포함하는 메모리를 포함하고,
    상기 프로세서는,
    가입요청을 수신받으면 세션_키를 생성하여 보조목록에 임시저장하고;
    업 링크를 수신받으면 상기 보조목록에 임시저장된 세션_키에 대해 무결성 체크를 수행하고 무결성 체크 결과에 따라 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하거나 삭제하여 세션_키를 관리하며;
    상기 무결성 체크는, 상기 업 링크시 메시지에 처리된 세션_키와 상기 보조목록에 저장된 세션_키를 비교하여 일치하는지를 판단하는 것을 특징으로 하는 재전송공격 방어 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 주목록으로 이동시켜 저장하는 것을 특징으로 하는 재전송공격 방어 장치.
  7. 제5항에 있어서,
    상기 프로세서는,
    상기 보조목록에 임시저장된 세션_키에 대한 무결성 체크가 실패하는 경우 주목록에 저장된 세션_키에 대해 무결성 체크를 추가로 수행하여 상기 주목록에 대한 무결성 체크가 성공하는 경우 상기 보조목록에 임시저장된 세션_키를 삭제하는 것을 특징으로 하는 재전송공격 방어 장치.
  8. 제6항 또는 제7항에 있어서,
    상기 프로세서는,
    가입요청을 수신받으면 앱_난수를 생성하고, 상기 앱_난수, 상기 가입요청에 포함된 디바이스_난수 및 앱_키를 기초로 상기 세션_키를 생성하여 상기 보조목록에 임시저장하는 것을 특징으로 하는 재전송공격 방어 장치.
  9. 통신 네트워크에서 재전송공격을 방어하여 서비스 품질을 높이는 재전송공격 방어 장치에 있어서,
    프로세서; 및
    상기 프로세서가 실행 가능한 적어도 하나의 명령어를 포함하는 메모리를 포함하고,
    상기 프로세서는,
    가입요청을 수신받으면 상기 가입요청에서 디바이스_난수를 추출하여 추출한 디바이스_난수와 동일한 난수가 기저장되어 있는지를 조회하여 조회결과에 따라 세션_키 생성 여부를 결정하는 것을 특징으로 하는 재전송공격 방어 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    조회결과 상기 가입요청에서 추출한 디바이스_난수와 동일한 난수가 기저장되어 있는 경우 상기 가입요청을 패기 하는 것을 특징으로 하는 재전송공격 방어 장치.
  11. 제9항에 있어서,
    상기 프로세서는,
    조회결과 상기 가입요청에서 추출한 디바이스_난수와 동일한 난수가 기저장되어 있지 않은 경우 상기 가입요청에서 디바이스_난수를 기초로 세션_키를 생성하는 것을 특징으로 하는 재전송공격 방어 장치.
KR1020170146907A 2017-11-06 2017-11-06 재전송공격 방어 장치 및 방법 KR101996629B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170146907A KR101996629B1 (ko) 2017-11-06 2017-11-06 재전송공격 방어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170146907A KR101996629B1 (ko) 2017-11-06 2017-11-06 재전송공격 방어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190051363A true KR20190051363A (ko) 2019-05-15
KR101996629B1 KR101996629B1 (ko) 2019-07-04

Family

ID=66579638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170146907A KR101996629B1 (ko) 2017-11-06 2017-11-06 재전송공격 방어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101996629B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3087311B1 (fr) * 2018-10-16 2020-09-18 Idemia Identity & Security France Procede de communication d’un objet avec un reseau d’objets connectes pour signaler qu’un clone se fait potentiellement passer pour l’objet dans le reseau

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101779201B1 (ko) 2017-04-12 2017-09-18 주식회사 레오테크 로라 기반 원격 검침 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101779201B1 (ko) 2017-04-12 2017-09-18 주식회사 레오테크 로라 기반 원격 검침 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Simone Zulian, "Security threat analysis and countermeasures", Master's Degree, Padova Univ. (2016) *

Also Published As

Publication number Publication date
KR101996629B1 (ko) 2019-07-04

Similar Documents

Publication Publication Date Title
US8224302B2 (en) Mobile wireless communication terminal and communication control method
CN108141838B (zh) 用于生成并且发布经证实的位置信息的方法、系统和介质
CN108702621B (zh) 用于提供安全精密定时测量交换的方法和系统
US9294463B2 (en) Apparatus, method and system for context-aware security control in cloud environment
CN105430711B (zh) 信息的传输方法、装置和设备
KR102435780B1 (ko) 분산 시스템에서 노드에 대한 제어 방법 및 관련 장치
RU2008109827A (ru) Мобильная станция, сетевое устройство радиодоступа, мобильная коммутационная станция, мобильная система связи и способ предоставления доступа к службе связи
US10638323B2 (en) Wireless communication device, wireless communication method, and computer readable storage medium
CN107666470B (zh) 一种验证信息的处理方法及装置
US10129747B2 (en) Terminal device, and authentication server using position information for authentication
CN104636645A (zh) 数据访问的控制方法及装置
US20150370516A1 (en) Directly Transferring Data Between Devices
EP3965445A1 (en) Router, network connection method and mobile terminal
CN110943840B (zh) 一种签名验证方法
KR101996629B1 (ko) 재전송공격 방어 장치 및 방법
RU2573745C2 (ru) Способ и система gsm безопасности и соответствующие устройства
CN112383572B (zh) 一种数据传输系统与方法
US20150066604A1 (en) Fare payment method and apparatus thereof
CN113709136B (zh) 一种访问请求验证方法和装置
CN112019603B (zh) 一种交易数据的处理方法及装置
JP2019140504A (ja) 通信装置及び通信方法
Nosouhi et al. Blockchain–based location proof generation and verification
JP3845106B2 (ja) 携帯端末、及び、認証方法
CN111182548B (zh) 伪网络设备识别方法及通信装置
US10893378B2 (en) Method and system of presence detection

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right