KR20200040022A - 멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치 - Google Patents

멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치 Download PDF

Info

Publication number
KR20200040022A
KR20200040022A KR1020180119740A KR20180119740A KR20200040022A KR 20200040022 A KR20200040022 A KR 20200040022A KR 1020180119740 A KR1020180119740 A KR 1020180119740A KR 20180119740 A KR20180119740 A KR 20180119740A KR 20200040022 A KR20200040022 A KR 20200040022A
Authority
KR
South Korea
Prior art keywords
key
server
group
client terminal
client
Prior art date
Application number
KR1020180119740A
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 KR1020180119740A priority Critical patent/KR20200040022A/ko
Publication of KR20200040022A publication Critical patent/KR20200040022A/ko

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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)
    • H04L9/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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)
    • H04L9/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

적어도 하나의 서버를 포함하는 서버 그룹 및 그룹 컨트롤러와 메시지를 송수신하는 클라이언트 단말의 종단간 인증 방법에 있어서, 특정 범위 내의 임의의 값을 기초로 산출한 등록요청 값 및 클라이언트 단말의 식별 정보를 기초로 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계, 키 생성 기초 정보를 기초로 클라이언트 단말의 개인키 및 클라이언트 단말의 공개키를 생성하는 단계, 클라이언트 단말의 개인키를 기초로 제1 멀티캐스트 키를 생성하는 단계 및 제1 멀티캐스트 키에 기초한 메시지를 서버 그룹에 송신하여 클라이언트 단말의 인증을 요청하는 단계를 포함하는 종단간 인증 방법이 개시된다.

Description

멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치{METHOD AND APPARATUS FOR END-TO-END AUTHENTICATION FOR MULTICAST CONSTRAINED APPLICATION PROTOCOL SECURITY}
본 발명은 멀티캐스트 CoAP(Constrained Application Protocol) 보안을 위한 종단간 인증 방법 및 장치에 관한 것으로, 더욱 상세하게는 그룹 컨트롤러(GC, Group Controller), 서버 및 클라이언트가 존재하는 환경에서 그룹 키 및 유니캐스트 키를 이용하여 멀티캐스트 CoAP 보안을 위해 종단간에 인증하는 방법 및 장치에 관한 것이다.
최근 LLN(Low-power Lossy Networks) 내에서 작동하는 다양한 센서 디바이스들이 IoT(Internet of Things)에 연동되고 있으며, 연동되는 디바이스들의 수가 증가할수록 메시지 송수신의 효율을 위해 다양한 IoT 시나리오에서 동질적인 IoT 디바이스들의 그룹에 대한 제어를 위한 그룹 통신의 필요성이 대두되었다.
이에 따라, 그룹 통신을 위한 다양한 방법이 제안되었으며, CoAP(Constrained Application Protocol)에서 멀티캐스트를 지원하는 방법도 제안되었다. 여기서, CoAP는 사물 통신(M2M, Machine to Machine) 및 IoT와 같은 대역폭이 제한된 통신 환경에 최적화하여 개발된 레스트(REST, Representational State Transfer) 기반의 경량 명세지 전송 프로토콜을 의미할 수 있다.
기존의 멀티캐스트 CoAP 응용을 살펴보면, 클라이언트는 복수의 서버를 포함하는 서버 그룹에게 CoAP 요청 메시지를 멀티캐스트로 송신하고, CoAP 요청 메시지를 수신한 각 서버는 클라이언트에게 CoAP 응답 메시지를 유니캐스트로 송신한다. 다시 말해, CoAP 요청 메시지는 그룹 키에 의해 보호될 수 있으나, 각각의 CoAP 응답 메시지는 개별 키로 보호된다. 다만, 개별 키에 의한 보호는 DTLS(Datagram Transport Layer Security) handshake 프로토콜에 따르며, DTLS handshake는 한 쌍의 클라이언트 및 서버 간의 상호 인증만 가능하므로, 멀티캐스트 CoAP 보안에는 이용될 수 없는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 멀티캐스트 CoAP 보안을 위한 종단간 인증 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 멀티캐스트 CoAP 보안을 위한 종단간 인증 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 클라이언트 단말의 종단간 인증 방법은, 특정 범위 내의 임의의 값을 기초로 산출한 등록요청 값 및 클라이언트 단말의 식별 정보를 기초로 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계, 키 생성 기초 정보를 기초로 클라이언트 단말의 개인키 및 클라이언트 단말의 공개키를 생성하는 단계, 클라이언트 단말의 개인키를 기초로 제1 멀티캐스트 키를 생성하는 단계 및 제1 멀티캐스트 키에 기초한 메시지를 서버 그룹에 송신하여 클라이언트 단말의 인증을 요청하는 단계를 포함할 수 있다.
여기서, 서버 그룹 중 하나의 서버로부터 제1 유니캐스트 키에 기초한 메시지를 수신하는 단계 및 제1 유니캐스트 키에 기초한 메시지에 포함된 정보 및 클라이언트 단말의 개인키를 기초로 제2 유니캐스트 키를 생성하는 단계를 더 포함할 수 있다.
여기서, 제2 유니캐스트 키를 생성하는 단계는, 제1 유니캐스트 키에 기초한 메시지에 포함된 정보를 기초로 하나의 서버의 공개키를 산출하는 단계 및 하나의 서버의 공개키 및 클라이언트 단말의 개인키를 기초로 제2 유니캐스트 키를 생성하는 단계를 포함할 수 있다.
여기서, 제2 유니캐스트 키를 기초로 제1 유니캐스트 키에 기초한 메시지를 검증하여 하나의 서버를 인증하는 단계를 더 포함할 수 있다.
여기서, 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계는, 등록요청 값 및 클라이언트 단말의 식별 정보를 그룹 컨트롤러로 송신하는 단계 및 그룹 컨트롤러로부터 키 생성 기초 정보를 획득하는 단계를 포함할 수 있다.
여기서, 클라이언트 단말의 공개키는, ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 클라이언트 단말의 개인키로부터 산출될 수 있다.
여기서, 키 생성 기초 정보는, ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 클라이언트 단말의 등록요청 값을 기초로 산출되는 클라이언트 단말의 증명 정보 및 그룹 컨트롤러의 공개키를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 하나의 서버의 종단간 인증 방법은, 특정 범위 내의 임의의 값을 기초로 산출한 등록요청 값 및 하나의 서버의 식별 정보를 기초로 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계, 키 생성 기초 정보를 기초로 하나의 서버의 개인키 및 하나의 서버의 공개키를 생성하는 단계, 클라이언트 단말로부터 제1 멀티캐스트 키에 기초한 메시지를 수신하는 단계, 제1 멀티캐스트 키에 기초한 메시지에 포함된 정보 및 키 생성 기초 정보를 기초로 제2 멀티캐스트 키를 생성하는 단계 및 제2 멀티캐스트 키를 기초로 제1 멀티캐스트 키에 기초한 메시지를 검증하여 클라이언트 단말을 인증하는 단계를 포함할 수 있다.
여기서, 제2 멀티캐스트 키를 생성하는 단계는, 제1 멀티캐스트 키에 기초한 메시지에 포함된 정보를 기초로 클라이언트 단말의 공개키를 산출하는 단계 및 클라이언트 단말의 공개키 및 키 생성 기초 정보를 기초로 제2 멀티캐스트 키를 생성하는 단계를 포함할 수 있다.
여기서, 클라이언트 단말의 공개키 및 하나의 서버의 개인키를 기초로 제1 유니캐스트 키를 생성하는 단계 및 제1 유니캐스트 키에 기초한 메시지를 클라이언트 단말로 송신하여 하나의 서버의 인증을 요청하는 단계를 더 포함할 수 있다.
여기서, 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계는, 등록요청 값 및 하나의 서버의 식별 정보를 그룹 컨트롤러로 송신하는 단계 및 그룹 컨트롤러로부터 키 생성 기초 정보를 획득하는 단계를 포함할 수 있다.
여기서, 하나의 서버의 공개키는, ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 하나의 서버의 개인키로부터 산출될 수 있다.
여기서, 키 생성 기초 정보는, ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 하나의 서버의 등록요청 값을 기초로 산출되는 하나의 서버의 증명 정보 및 그룹 컨트롤러의 공개키를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 그룹 컨트롤러의 종단간 인증 방법은, 적어도 하나의 서버 및 클라이언트 단말 중 어느 하나의 등록 요청 단말로부터 등록 요청 단말의 식별 정보 및 등록요청 값을 수신하는 단계, 그룹 컨트롤러의 개인키 및 등록 요청 단말의 식별 정보 및 등록요청 값을 기초로 키 생성 기초 정보를 생성하는 단계 및 키 생성 기초 정보를 등록 요청 단말로 송신하는 단계를 포함할 수 있다.
여기서, 키 생성 기초 정보는, ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 등록 요청 단말의 등록요청 값을 기초로 산출되는 등록 요청 단말의 증명 정보 및 그룹 컨트롤러의 공개키를 포함할 수 있다.
여기서, 미리 정해진 방법에 따라 그룹 개인키를 설정하는 단계, 그룹 개인키를 기초로 그룹 공개키를 생성하는 단계 및 등록 요청 단말이 클라이언트 단말인 경우 그룹 공개키를 클라이언트 단말로 송신하고, 등록 요청 단말이 적어도 하나의 서버인 경우, 그룹 개인키 및 상기 그룹 공개키를 상기 적어도 하나의 서버로 송신하는 단계를 더 포함할 수 있다.
여기서, 그룹 개인키를 기초로 그룹 공개키를 생성하는 단계는, ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 그룹 개인키로부터 산출될 수 있다.
본 발명에 따르면, 클라이언트 및 복수의 서버를 포함하는 서버 그룹 간에 DTLS handshake 프로토콜을 이용하지 않으며 그룹 키 및 개별 키를 설정할 수 있다.
본 발명에 따르면, 클라이언트 및 복수의 서버를 포함하는 서버 그룹 간에 안전한 멀티캐스트를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 네트워킹 환경을 나타낸 개념도이다.
도 2는 본 발명의 일 실시예에 따른 등록 단계를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 인증 단계를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 클라이언트 단말의 블록 구성도이다.
도 5는 본 발명의 일 실시예에 따른 클라이언트 및 서버 그룹을 그룹 컨트롤러에 등록하는 방법을 나타낸 플로우차트이다.
도 6은 본 발명의 일 실시예에 따른 종단간 인증 방법을 나타낸 플로우차트이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 설명에서 CoAP(Constrained Application Protocol)은 UDP(User Datagram Protocol)를 기반으로 한 IoT(Internet of Things) 환경을 애플리케이션 단에서 제어하기 위한 목적을 가지는 프로토콜을 의미할 수 있으며, HTTP(Hypertext Transfer Protocol)를 기반으로 데이터의 기밀성과 무결성 등의 보안을 적용하기 위해 DTLS(Datagram Transport Layer Security)를 이용하여 보안 모드를 지원할 수 있다.
여기서, DTLS는 통신 주체 간의 종단간 보안을 위해 TCP(Transmission Control Protocol)에서 사용되는 프로토콜인 TLS(Transport Layer Security)를 UDP에서 사용할 수 있도록 제안된 프로토콜을 의미할 수 있다. DTLS는 안전한 통신을 위해 사용되는 암호화 키 생성과 상호 인증을 위한 handshake 작업을 수행할 수 있다. 다만, DTLS handshake는 한 쌍의 통신 주체 간의 상호 인증만 가능하므로, 멀티캐스트 CoAP 보안에는 이용될 수 없는 문제점이 있다.
본 발명의 설명에서 ECQV(Elliptic Curve Qu-Vanstone) 인증서는 묵시적 인증서(implicit certificate)의 종류 중 하나로, 공개키와 전자서명을 별도로 명시하는 기존의 인증서와 달리 공개키와 전자서명을 하나의 리컨스트럭션(reconstruction) 데이터로 융합하여 사용하는 인증서를 의미할 수 있다. 또한, ECQV 인증서는 CA(Certificate Authority)의 공개키를 가지고 있다면 특정 연산을 통해 해당 데이터에서 소유자의 공개키를 추출할 수 있는 특징을 가지고 있을 수 있다.
본 발명의 설명에서 ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키는 ECC(Elliptic Curve Cryptography)에 기반하여 개인키로부터 공개키를 도출할 수 있으나, 공개키로부터 개인키를 도출할 수 없는 개인키 및 공개키를 의미할 수 있다.
여기서, ECC는 타원 곡선 이산대수 문제에 기반한 암호를 의미할 수 있으며, 유한체 Fp 상의 타원 곡선 E(Fp)는 y2=x3+ax+b (mod p)를 만족하는 점들과 무한대 점 O의 집합일 수 있다. 타원 곡선 매개 변수는 (p, a, b, G, n)으로 나타낼 수 있으며, p는 소수를 의미할수 있고, n은 타원 곡선 E(Fp)의 위수일 수 있고, G는 n을 위수로 가지는 베이스 포인트 생성자(base-point generator)를 의미할 수 있다. 이에 따라, ECDH 공개키는 ECDH 개인키 및 베이스 포인트 생성자를 기초로 산출될 수 있다.
ECDH 방식에서 세션키를 설명하게 위해 단말 A가 특정 범위 내의 하나의 값을 ECDH 개인키(qA)로 생성하고, 이에 따라 ECDH 공개키(QA)를 산출하였으며, 단말 B가 동일한 범위 내의 하나의 값을 ECDH 개인키(qB)로 생성하고, 이에 따라 ECDH 공개키(QB)를 산출하였다고 가정한다. 이러한 경우, 단말 A 및 단말 B는 서로 ECDH 공개키를 교환할 수 있으며, 자신의 ECDH 개인키와 수신한 상대의 ECDH 공개키를 EC(Elliptic Curve) 덧셈 연산을 수행하여 세션키를 산출할 수 있으며, 수학식 1과 같이 산출되는 세션키는 서로 동일할 수 있다.
Figure pat00001
수학식 1에서, ECDH는 EC 덧셈 연산 함수를 의미할 수 있다.
본 발명의 일 실시예에 따른 공개키 및 개인키는 ECDH 공개키 및 개인키일 수 있으므로, 상술한 성질에 따라 서로 공개키를 교환함으로써 상호 검증을 수행할 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. 이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 네트워킹 환경을 나타낸 개념도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 네트워킹 환경은 클라이언트(C), 서버들(S1, S2, ..., Sj) 및 그룹 컨트롤러(GC, Group Gcontroller)를 포함할 수 있다.
여기서, 클라이언트(C)는 CoAP 메시지를 송수신하는 CoAP 클라이언트를, 서버들(S1, S2, ..., Sj)은 CoAP 메시지를 송수신하는 CoAP 서버들을 의미할 수 있으며, 그룹 컨트롤러(GC)는 CoAP 서버들로 구성된 멀티캐스트 그룹에게 IPv6 멀티캐스트 주소를 할당하며 멀티캐스트 그룹을 관리하는 장치를 의미할 수 있다. 또한, 그룹 컨트롤러(GC)에는 그룹 컨트롤러(GC)의 기능을 수행하는 RD(Resource Directory)가 이용될 수 있으며, RD는 모든 CoAP 서버들이 어떠한 자원을 가지고 있는지에 대한 정보를 저장하고 있는 장치를 의미할 수 있다.
다시 말해, 본 발명의 일 실시예에서 종단은 클라이언트(C) 및 서버들(S1, S2, ..., Sj)을 의미할 수 있으며, 그룹 컨트롤러(GC)는 종단간 인증을 위해 클라이언트(C) 및 서버들(S1, S2, ..., Sj)를 등록할 수 있으며, 그룹 키 및 그룹 컨트롤러 키 등을 등록한 클라이언트(C) 및 서버들(S1, S2, ..., Sj)로 분배할 수 있다. 본 발명의 설명에서 등록 및 키 분배를 수행하는 단계를 등록 단계라 지칭할 수 있다.
키를 분배받은 클라이언트(C) 및 서버들(S1, S2, ..., Sj)은 멀티캐스트 또는 유니캐스트로 메시지를 송수신하여 상호 인증을 수행할 수 있으며, 본 발명의 설명에서 상호 인증을 수행하는 단계를 인증 단계라 지칭할 수 있다.
다시 말해, 본 발명의 일 실시예에 따른 종단간 인증 방법은 등록 단계 및 인증 단계로 구분할 수 있다. 등록 단계는 인증 단계의 선행 단계로 특정 종단간 초기에 일회 수행될 수 있으며, 이후에는 인증 단계에 따라 종단간 인증이 지속적으로 수행될 수 있다. 본 발명의 일 실시예에 따른 등록 단계는 도 2와 함께 상세히 후술하고, 인증 단계는 도 3과 함께 상세히 후술하겠다.
도 2는 본 발명의 일 실시예에 따른 등록 단계를 나타낸 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 등록 단계는 클라이언트(C) 및 서버들(S1, S2, ..., Sj)이 유사하게 동작하므로, 도 2의 X는 동작의 주체가 클라이언트인 경우 C가 될 수 있고, 제j 서버인 경우, j가 될 수 있다. 다만, 설명의 편의를 위해 클라이언트(C)를 그룹 컨트롤러(GC)에 등록하는 경우로 가정한다. 또한, 그룹 컨트롤러(GC)는 등록 단계 이전에 ECDH에 따른 그룹 컨트롤러의 개인키(qGC) 및 공개키(QGC)를 생성하여 저장하고 있다고 가정한다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 등록 절차에서 클라이언트(C)는 1 및 n-1 사이의 임의의 정수 rC를 생성할 수 있으며, 수학식 2와 같이 ECDH에 따라 rC를 기초로 RC를 산출할 수 있고, 자신의 고유의 ID(ClientIDC) 및 RC를 그룹 컨트롤러(GC)로 송신할 수 있다. 여기서, n은 미리 설정된 양의 정수를 의미할 수 있으며, G는 베이스 포인트 생성자를 의미할 수 있다.
Figure pat00002
그룹 컨트롤러(GC)는 1 및 n-1 사이의 임의의 정수 rGC를 생성할 수 있으며, 수학식 3와 같이 rGC 및 클라이언트(C)로부터 수신한 RC를 기초로 클라이언트(C)에 대한 ECQV 묵시적 인증서인 증명 정보(CertC)를 생성할 수 있다. 여기서, n은 미리 설정된 양의 정수를 의미할 수 있으며, G는 베이스 포인트 생성자를 의미할 수 있다.
Figure pat00003
또한, 그룹 컨트롤러(GC)는 서버들(S1, S2, ..., Sj)로부터 클라이언트(C)와 동일 또는 유사하게 정보를 수신하여, 서버들을 인식할 수 있으며, 이를 기초로 그룹을 생성하고, 그룹 ID(GroupID = TR112(IPv6Multicast))를 설정할 수 있으며, ECDH에 따른 그룹 개인키 및 그룹 공개키를 생성할 수 있다. 여기서, 그룹 개인키 및 그룹 공개키는 각각 qG 및 QG로 나타낼 수 있다.
이후, 그룹 컨트롤러(GC)는 수학식 4과 같이 클라이언트(C)로부터 수신한 ClientIDC 및 GroupID를 기초로 클라이언트(C)에 대한 인증 정보(AuthC)를 생성할 수 있다.
Figure pat00004
여기서, 서버들(S1, S2, ..., Sj)을 그룹 컨트롤러(GC)에 등록하는 경우에는 수학식 5와 같이 서버 ID(ServerID1, ServerID2, ..., ServerIDj)만을 기초로 인증 정보(Auth1, Auth2, ..., Authj)를 생성할 수 있다.
Figure pat00005
또한, 그룹 컨트롤러(GC)는 수학식 6와 같이 그룹 컨트롤러의 개인키(qGC), 임의로 생성한 rGC, 클라이언트(C)에 대한 묵시적 증명 정보(CertC) 및 클라이언트(C)에 대한 인증 정보(AuthC)를 기초로 해시함수(H)를 이용하여 클라이언트(C)에 대한 서명 정보(sC)를 산출할 수 있다. 여기서, 해시함수(H)는 임의의 길이의 데이터를 고정된 길이의 데이터로 축약하는 단방향 함수를 의미할 수 있으며, 제1 역상 저항성(preimage resistance), 제2 역상 저항성(second preimage resistance) 및 충돌 저항성(collision resistance)의 성질을 가질 수 있다.
Figure pat00006
그룹 컨트롤러(GC)는 클라이언트(C)에 대한 그룹 보안 연관 정보(GSAC)도 생성할 수 있다. 여기서, GSA(Group Security Association)는 IPv6Multicast, Epoch, Ciphersuite 및 그룹키를 포함할 수 있으며, IPv6Multicast는 그룹으로 설정된 서버들의 주소를 의미할 수 있으며, Epoch는 초기 0으로 설정되어 그룹키의 분배 시마다 1씩 증가하는 값을 의미할 수 있고, Ciphersuite는 안전한 네트워크 보안을 위한 알고리즘의 집합을 의미할 수 있으며, 보안 모드, 암호화 기법, 해시 알고리즘 및 MAC 알고리즘 등과 같은 알고리즘 중 적어도 하나를 포함할 수 있다. 또한, 클라이언트(C)에 대한 그룹 보안 연관 정보(GSAC)의 그룹키는 그룹 공개키(QG)만을 포함할 수 있으며, 서버들(S1, S2, ..., Sj)에 대한 그룹 보안 연관 정보(GSA1, GSA2, ..., GSAj)의 그룹키는 그룹 공개키(QG) 및 그룹 개인키(qG)를 포함할 수 있다.
이후, 그룹 컨트롤러(GC)는 그룹 컨트롤러(GC)의 공개키(QGC), 클라이언트(C)에 대한 증명 정보(CertC), 클라이언트(C)에 대한 서명 정보(sC), 그룹 ID(GroupID), 그룹 구성원에 대한 정보 및 클라이언트(C)에 대한 그룹 보안 연관 정보(GSAC)를 클라이언트(C)로 송신할 수 있다.
여기서, 서버들(S1, S2, ..., Sj)을 그룹 컨트롤러(GC)에 등록하는 경우에는 그룹 컨트롤러(GC)는 그룹 ID(GroupID) 및 그룹 구성원에 대한 정보를 생략하고 상술한 정보들을 서버들(S1, S2, ..., Sj)로 송신할 수 있다.
클라이언트(C)는 수신한 그룹 ID(GroupID) 및 자신의 고유 ID(ClientIDC)를 기초로 인증 정보(AuthC)를 생성할 수 있으며, 수학식 7과 같이 임의로 생성한 rC, 그룹 컨트롤러(GC)로부터 수신한 클라이언트(C)에 대한 서명 정보(sC), 증명 정보(CertC) 및 인증 정보(AuthC)를 기초로 클라이언트의 개인키(qC)를 생성할 수 있다.
Figure pat00007
또한, 클라이언트(C)는 수학식 8과 같이 ECDH에 따라 클라이언트의 개인키(qC)를 기초로 클라이언트의 공개키(QC)를 산출할 수 있다. 여기서, G는 베이스 포인트 생성자를 의미할 수 있다.
Figure pat00008
결과적으로, 클라이언트(C)는 클라이언트(C)의 개인키(qC) 및 공개키(QC)의 한 쌍과 클라이언트에 대한 그룹 보안 연관 정보(GSAC)에 포함된 그룹 공개키(QG) 및 서버 그룹의 주소들을 획득할 수 있다.
또한, 클라이언트(C)와 유사하게 서버들(S1, S2, ..., Sj)을 그룹 컨트롤러(GC)에 등록하는 경우, 서버들(S1, S2, ..., Sj) 각각은 서버(Sj)의 개인키(qj) 및 공개키(Qj)의 한 쌍과 서버에 대한 그룹 보안 연관 정보(GSAj)에 포함된 그룹 개인키(qG), 그룹 공개키(QG) 및 서버 그룹의 주소들을 획득할 수 있다.
이하에서는 클라이언트(C)의 개인키(qC), 공개키(QC) 및 그룹 공개키(QG)를 획득한 클라이언트(C)와 서버(Sj)의 개인키(qj), 공개키(Qj), 그룹 개인키(qG) 및 그룹 공개키(QG)를 각각 획득한 서버들(S1, S2, ..., Sj) 간에 인증을 수행하는 인증 단계에 대하여 설명하겠다.
도 3은 본 발명의 일 실시예에 따른 인증 단계를 나타낸 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 인증 단계는 도 2와 함께 설명한 등록 단계 이후에 수행되는 단계일 수 있으며, 클라이언트(C) 및 서버들(S1, S2, ..., Sj) 간에 최초로 메시지를 송수신하는 제1 단계와 제1 단계 이후 계속적으로 메시지를 송수신하는 제2 단계로 구분될 수 있다. 각 단계에서 클라이언트(C)는 모든 서버들(S1, S2, ..., Sj)로 멀티캐스트 송신을 수행할 수 있고, 서버들(S1, S2, ..., Sj) 각각은 클라이언트(C)로 유니캐스트 송신을 수행할 수 있다. 여기서, 서버들(S1, S2, ..., Sj) 각각의 유니캐스트 송신을 수행하는 동작은 설명의 편의를 위해 제j 서버(Sj)가 클라이언트(C)로 유니캐스트 송신을 수행하는 동작으로 가정하여 설명하겠다.
또한, 클라이언트(C)의 주소는 IPv6C로, 제j 서버(Sj)의 주소는 IPv6j로 가정하며, 모든 서버들(S1, S2, ..., Sj)의 주소는 IPv6Multicast로 나타낼 수 있다. 후술하는 Epoch는 초기에 0으로 설정되어 그룹 키의 재분배 시마다 1씩 증가하는 값을 의미할 수 있으며, SEQC 및 SEQj는 각각 초기에 0으로 설정되어 클라이언트(C) 및 제j 서버(Sj)가 메시지를 송신할 때마다 1씩 증가하는 값을 의미할 수 있다. 또한, 각 메시지는 DTLS로 보호되는 CoAP 메시지를 의미할 수 있다.
이하, 각 단계에 대하여 상세히 설명하겠다.
제1 단계는 표 1과 같이 나타낼 수 있다.
Figure pat00009
표 1를 참조하면, 우선, 클라이언트(C)는 Epoch, SEQC, 클라이언트(C)의 증명 정보(CertC) 및 멀티캐스트 키(MK, Multicast Key)를 기초로 산출한 클라이언트(C)의 메시지 무결성 코드(MIC, Message Integrity Code)(MICC(MK))를 포함하는 정보를 서버들(S1, S2, ..., Sj)로 멀티캐스트 송신을 수행할 수 있다. 여기서, 멀티캐스트 키(MK)는 수학식 9과 같이 산출될 수 있다.
Figure pat00010
수학식 9에서, kdf는 키 유도 함수(key derivation function)를 의미할 수 있고, ECDH는 Elliptic-Curve Diffie-Hellman 함수를 의미할 수 있다. 또한, QG는 그룹 공개키를 의미할 수 있고, qC는 클라이언트(C)의 개인키를 의미할 수 있다. ClientIDC는 클라이언트(C)의 주소(IPv6C)에 대한 64비트 인터페이스 식별자를 의미할 수 있고, ServerIDj는 제j 서버(Sj)의 주소(IPv6j)에 대한 64비트 인터페이스 식별자를 의미할 수 있다.
이후, 클라이언트(C)로부터 메시지를 수신한 제j 서버(Sj)는 수학식 10와 같이 클라이언트(C)의 공개키(QC)를 산출할 수 있다.
Figure pat00011
수학식 10에서, ECQV는 Elliptic Curve Qu-Vanstone 함수를 의미할 수 있고, CertC는 클라이언트(C)로부터 수신한 메시지에 포함된 클라이언트(C)에 대한 증명 정보를 의미할 수 있다. 또한, QGC는 등록 단계에서 그룹 컨트롤러(GC)로부터 수신한 그룹 컨트롤러(GC)의 공개키를 의미할 수 있고, AuthC는 수학식 4과 같이 클라이언트(C)의 주소(IPv6C)에 대한 64비트 인터페이스 식별자 및 그룹 ID를 기초로 산출되는 클라이언트(C)에 대한 인증 정보를 의미할 수 있다.
또한, 제j 서버(Sj)는 산출한 클라이언트(C)의 공개키(QC)를 이용하여 수학식 11과 같이 멀티캐스트 키(MK)를 산출할 수 있다.
Figure pat00012
수학식 11에서, kdf는 키 유도 함수(key derivation function)를 의미할 수 있고, ECDH는 Elliptic-Curve Diffie-Hellman 함수를 의미할 수 있으며, 각각 수학식 9에서 사용된 함수와 동일할 수 있다. 또한, QC는 클라이언트(C)의 공개키를 의미할 수 있고, qG는 그룹 비밀키를 의미할 수 있다. ClientIDC는 클라이언트(C)의 주소(IPv6C)에 대한 64비트 인터페이스 식별자를 의미할 수 있고, ServerIDj는 제j 서버(Sj)의 주소(IPv6j)에 대한 64비트 인터페이스 식별자를 의미할 수 있다.
여기서, 클라이언트(C)가 산출한 멀티캐스트 키(MK)를 제1 MK로 지칭할 수 있고, 제j 서버(Sj)가 산출한 멀티캐스트 키(MK)를 제2 MK로 지칭할 수 있다.
제j 서버(Sj)는 상술한 바에 따라 제2 MK를 산출한 후, 제2 MK를 기초로 클라이언트(C)로부터 수신한 제1 MK를 기초로 산출된 메시지 무결성 코드(MICC(MK))를 검증할 수 있다.
이후, 제j 서버(Sj)는 Epoch, SEQj, 제j 서버(Sj)의 증명 정보(Certj) 및 유니캐스트 키(UK, Unicast Key)를 기초로 산출한 제j 서버(Sj)의 메시지 무결성 코드(MICj(UKj))를 포함하는 정보를 클라이언트(C)로 유니캐스트 송신을 수행할 수 있다. 여기서, 제j 서버(Sj)의 유니캐스트 키(UKj)는 수학식 12과 같이 산출될 수 있다.
Figure pat00013
수학식 12에서, kdf는 키 유도 함수(key derivation function)를 의미할 수 있고, ECDH는 Elliptic-Curve Diffie-Hellman 함수를 의미할 수 있다. 또한, QC는 클라이언트(C)의 공개키를 의미할 수 있고, qj는 제j 서버(Sj)의 개인키를 의미할 수 있다. ClientIDC는 클라이언트(C)의 주소(IPv6C)에 대한 64비트 인터페이스 식별자를 의미할 수 있고, ServerIDj는 제j 서버(Sj)의 주소(IPv6j)에 대한 64비트 인터페이스 식별자를 의미할 수 있다.
이후, 제j 서버(Sj)로부터 메시지를 수신한 클라이언트(C)는 수학식 13와 같이 제j 서버(Sj)의 공개키(Qj)를 산출할 수 있다.
Figure pat00014
수학식 13에서, ECQV는 Elliptic Curve Qu-Vanstone 함수를 의미할 수 있고, Certj는 제j 서버(Sj)로부터 수신한 메시지에 포함된 제j 서버(Sj)에 대한 증명 정보를 의미할 수 있다. 또한, QGC는 등록 단계에서 그룹 컨트롤러(GC)로부터 수신한 그룹 컨트롤러(GC)의 공개키를 의미할 수 있고, Authj는 수학식 4과 같이 클라이언트(C)의 주소(IPv6C)에 대한 64비트 인터페이스 식별자 및 그룹 ID를 기초로 산출되는 제j 서버(Sj)에 대한 인증 정보를 의미할 수 있다.
또한, 클라이언트(C)는 산출한 제j 서버(Sj)의 공개키를 이용하여 수학식 14과 같이 제j 서버(Sj)에 대한 유니캐스트 키(UKj)를 산출할 수 있다.
Figure pat00015
수학식 14에서, kdf는 키 유도 함수(key derivation function)를 의미할 수 있고, ECDH는 Elliptic-Curve Diffie-Hellman 함수를 의미할 수 있으며, 각각 수학식 12에서 사용된 함수와 동일할 수 있다. 또한, Qj는 제j 서버(Sj)의 공개키를 의미할 수 있고, qC는 클라이언트(C)의 비밀키를 의미할 수 있다. ClientIDC는 클라이언트(C)의 주소(IPv6C)에 대한 64비트 인터페이스 식별자를 의미할 수 있고, ServerIDj는 제j 서버(Sj)의 주소(IPv6j)에 대한 64비트 인터페이스 식별자를 의미할 수 있다.
여기서, 제j 서버(Sj)가 산출한 유니캐스트 키(UKj)를 제1 UKj로 지칭할 수 있고, 클라이언트(C)가 산출한 유니캐스트 키(UKj)를 제2 UKj로 지칭할 수 있다.
클라이언트(C)는 상술한 바에 따라 제2 UKj를 산출한 후, 제2 UKj를 기초로 제j 서버(Sj)로부터 수신한 제1 UKj를 기초로 산출된 메시지 무결성 코드(MICj(UKj))를 검증할 수 있다.
상술한 바와 같이, 클라이언트(C) 및 제j 서버(Sj)는 메시지의 송수신을 통해 상호 검증을 수행할 수 있으며, 멀티캐스트 키(MK) 및 유니캐스트 키(UKj)를 통해 각각의 메시지는 보호될 수 있다. 이하에서는, 상술한 제1 단계 이후 계속적으로 메시지를 송수신하는 제2 단계에 대하여 설명하겠다.
제2 단계는 표 2와 같이 나타낼 수 있다.
Figure pat00016
표 2를 참조하면, 제2 단계의 클라이언트(C) 및 제j 서버(Sj)의 동작은 제1 단계와 유사하다. 다만, 클라이언트(C) 및 제j 서버(Sj)가 제1 단계에서 송수신한 메시지에 포함된 클라이언트(C)에 대한 증명 정보(CertC) 및 제j 서버(Sj)에 대한 증명 정보(Certj)를 그대로 이용할 수 있으므로, 클라이언트(C)가 제j 서버(Sj)로 송신하는 메시지에 클라이언트(C)에 대한 증명 정보(CertC)가 생략될 수 있고, 제j 서버(Sj)가 클라이언트(C)로 송신하는 메시지에 제j 서버(Sj)에 대한 증명 정보(Certj)가 생략될 수 있다. 그 외에 제1 단계와 제2 단계에서의 클라이언트(C) 및 제j 서버(Sj)의 동작은 동일할 수 있다.
여기서, 클라이언트(C) 및 제j 서버(Sj)가 서로 송신하는 메시지에 포함된 정보 중 {Epoch, SEQC or SEQj, CertC or Certj}는 DTLS 레코드 헤더(DTLS record header)의 보안 관련 필드에 포함될 수 있으며, {MICC(MK) or MICj(UK)}는 DTLS 레코드 트레일러(DTLS record trailer)에 포함될 수 있다.
도 4는 본 발명의 일 실시예에 따른 클라이언트 단말의 블록 구성도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 클라이언트 단말(400)은 적어도 하나의 프로세서(410), 메모리(420) 및 저장 장치(430)를 포함할 수 있다.
프로세서(410)는 메모리(420) 및/또는 저장 장치(430)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(410)는 중앙 처리 장치(CPU, Central Processing Unit), 그래픽 처리 장치(GPU, Graphics Processing Unit) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(420)와 저장 장치(430)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(420)는 읽기 전용 메모리(ROM, Read Only Memory) 및/또는 랜덤 액세스 메모리Rrandom Access Memory)로 구성될 수 있다.
메모리(420)는 프로세서(410)를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 특정 범위 내의 임의의 값을 기초로 산출한 등록요청 값 및 클라이언트 단말의 식별 정보를 기초로 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 명령, 키 생성 기초 정보를 기초로 클라이언트 단말의 개인키 및 클라이언트 단말의 공개키를 생성하는 명령, 클라이언트 단말의 개인키를 기초로 제1 멀티캐스트 키를 생성하는 명령 및 제1 멀티캐스트 키에 기초한 메시지를 서버 그룹에 송신하여 클라이언트 단말의 인증을 요청하는 명령을 포함할 수 있다.
또한, 적어도 하나의 명령은 서버 그룹 중 하나의 서버로부터 제1 유니캐스트 키에 기초한 메시지를 수신하는 명령 및 제1 유니캐스트 키에 기초한 메시지에 포함된 정보 및 클라이언트 단말의 개인키를 기초로 제2 유니캐스트 키를 생성하는 명령을 더 포함할 수 있다.
여기서, 제2 유니캐스트 키를 생성하는 명령은, 제1 유니캐스트 키에 기초한 메시지에 포함된 정보를 기초로 하나의 서버의 공개키를 산출하는 명령 및 하나의 서버의 공개키 및 클라이언트 단말의 개인키를 기초로 제2 유니캐스트 키를 생성하는 명령을 포함할 수 있다.
여기서, 적어도 하나의 명령은 제2 유니캐스트 키를 기초로 제1 유니캐스트 키에 기초한 메시지를 검증하여 하나의 서버를 인증하는 명령을 더 포함할 수 있다.
여기서, 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 명령은, 등록요청 값 및 클라이언트 단말의 식별 정보를 그룹 컨트롤러로 송신하는 명령 및 그룹 컨트롤러로부터 키 생성 기초 정보를 획득하는 명령을 포함할 수 있다.
여기서, 클라이언트 단말의 공개키는, ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 클라이언트 단말의 개인키로부터 산출될 수 있다.
여기서, 키 생성 기초 정보는, ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 클라이언트 단말의 등록요청 값을 기초로 산출되는 클라이언트 단말의 증명 정보 및 그룹 컨트롤러의 공개키를 포함할 수 있다.
본 발명의 일 실시예에 따른 하나의 서버는 도 4의 본 발명의 일 실시예에 따른 클라이언트 단말(400)과 유사하게 적어도 하나의 프로세서, 메모리 및 저장 장치를 포함할 수 있다.
하나의 서버의 메모리는 하나의 서버의 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 특정 범위 내의 임의의 값을 기초로 산출한 등록요청 값 및 하나의 서버의 식별 정보를 기초로 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 명령, 키 생성 기초 정보를 기초로 하나의 서버의 개인키 및 하나의 서버의 공개키를 생성하는 명령, 클라이언트 단말로부터 제1 멀티캐스트 키에 기초한 메시지를 수신하는 명령, 제1 멀티캐스트 키에 기초한 메시지에 포함된 정보 및 키 생성 기초 정보를 기초로 제2 멀티캐스트 키를 생성하는 명령 및 제2 멀티캐스트 키를 기초로 제1 멀티캐스트 키에 기초한 메시지를 검증하여 클라이언트 단말을 인증하는 명령을 포함할 수 있다.
여기서, 제2 멀티캐스트 키를 생성하는 명령은, 제1 멀티캐스트 키에 기초한 메시지에 포함된 정보를 기초로 클라이언트 단말의 공개키를 산출하는 명령 및 클라이언트 단말의 공개키 및 키 생성 기초 정보를 기초로 제2 멀티캐스트 키를 생성하는 명령을 포함할 수 있다.
또한, 적어도 하나의 명령은 클라이언트 단말의 공개키 및 하나의 서버의 개인키를 기초로 제1 유니캐스트 키를 생성하는 명령 및 제1 유니캐스트 키에 기초한 메시지를 클라이언트 단말로 송신하여 하나의 서버의 인증을 요청하는 명령을 더 포함할 수 있다.
여기서, 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 명령은, 등록요청 값 및 하나의 서버의 식별 정보를 그룹 컨트롤러로 송신하는 명령 및 그룹 컨트롤러로부터 키 생성 기초 정보를 획득하는 명령을 포함할 수 있다.
여기서, 하나의 서버의 공개키는, ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 하나의 서버의 개인키로부터 산출될 수 있다.
여기서, 키 생성 기초 정보는, ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 하나의 서버의 등록요청 값을 기초로 산출되는 하나의 서버의 증명 정보 및 그룹 컨트롤러의 공개키를 포함할 수 있다.
본 발명의 일 실시예에 따른 그룹 컨트롤러는 도 4의 본 발명의 일 실시예에 따른 클라이언트 단말(400)과 유사하게 적어도 하나의 프로세서, 메모리 및 저장 장치를 포함할 수 있다.
그룹 컨트롤러의 메모리는 그룹 컨트롤러의 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 적어도 하나의 서버 및 클라이언트 단말 중 어느 하나의 등록 요청 단말로부터 등록 요청 단말의 식별 정보 및 등록요청 값을 수신하는 명령, 그룹 컨트롤러의 개인키 및 등록 요청 단말의 식별 정보 및 등록요청 값을 기초로 키 생성 기초 정보를 생성하는 명령 및 키 생성 기초 정보를 등록 요청 단말로 송신하는 명령을 포함할 수 있다.
여기서, 키 생성 기초 정보는, ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 등록 요청 단말의 등록요청 값을 기초로 산출되는 등록 요청 단말의 증명 정보 및 그룹 컨트롤러의 공개키를 포함할 수 있다.
또한, 적어도 하나의 명령은 미리 정해진 방법에 따라 그룹 개인키를 설정하는 명령, 그룹 개인키를 기초로 그룹 공개키를 생성하는 명령 및 등록 요청 단말이 클라이언트 단말인 경우 그룹 공개키를 클라이언트 단말로 송신하고, 등록 요청 단말이 적어도 하나의 서버인 경우, 그룹 개인키 및 상기 그룹 공개키를 상기 적어도 하나의 서버로 송신하는 명령을 더 포함할 수 있다.
여기서, 그룹 개인키를 기초로 그룹 공개키를 생성하는 명령은, ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 그룹 개인키로부터 산출될 수 있다.
상술한 본 발명의 설명에서, 단말 X의 등록요청 값은 rX를 의미할 수 있으며, 단말 X에 대한 키 생성 기초 정보는 단말 X에 대한 증명 정보 CertX, 인증 정보 AuthX 및 서명 정보 sX 등을 포괄적으로 의미할 수 있다. 또한, 그 밖에 동일한 정보를 나타내나 서로 다른 명칭인 경우 또는 복수의 정보를 나타내는 포괄적인 명칭이 사용된 경우도 있을 수 있으나, 본 발명의 설명을 통해 통상의 기술자가 쉽게 인식할 수 있을 것이다.
도 5는 본 발명의 일 실시예에 따른 등록 단계를 나타낸 플로우차트이다.
본 발명의 일 실시예에 따른 등록 단계는 클라이언트(C)의 동작과 서버들(S1, S2, ..., Sj) 각각의 동작이 유사하므로, 클라이언트(C)와 그룹 컨트롤러(GC) 간의 동작을 중심으로 설명하겠다. 다만, 본 발명은 이에 한정되는 것은 아니며, 서버들 각각도 이와 유사한 동작을 통해 그룹 컨트롤러(GC)에 등록을 수행할 수 있다.
본 발명의 일 실시예에 따른 등록 단계의 설명에 앞서, 그룹 컨트롤러(GC)는 등록 단계 이전에 ECDH에 따른 그룹 컨트롤러의 개인키(qGC) 및 공개키(QGC)를 생성하여 저장하고 있다고 가정한다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 등록 단계는 우선 클라이언트(100)가 특정 범위 내에서 임의의 수 rC를 생성할 수 있으며, ECDH 방식에 따라 rC로부터 RC를 산출할 수 있고(S510), 클라이언트의 ID(ClientID) 및 산출한 RC를 그룹 컨트롤러(200)로 송신할 수 있다(S520).
그룹 컨트롤러(200)는 특정 범위 내에서 임의의 수 rGC를 생성할 수 있으며, ECDH 방식에 따라 rGC로부터 RGC를 산출할 수 있고(S530), 서버들(S1, S2, ..., Sj)의 정보를 기초로 그룹을 설정하고 그룹 키를 생성할 수 있다(S540). 여기서, 그룹 키는 그룹 개인키 qG와 ECDH 방식에 따라 그룹 개인키 qG를 기초로 산출된 그룹 공개키 QG를 포함할 수 있다.
이후, 그룹 컨트롤러(200)는 rGC와 클라이언트(100)로부터 수신한 RC를 기초로 클라이언트의 증명 정보 CertC를 생성할 수 있으며, 클라이언트(100)로부터 수신한 클라이언트의 ID 및 설정한 그룹에 대한 정보에 따른 그룹 ID를 기초로 클라이언트의 인증 정보 AuthC를 생성할 수 있고, 클라이언트의 증명 정보 CertC, 클라이언트의 인증 정보 AuthC, 그룹 컨트롤러의 개인키 qGC 및 rGC를 기초로 클라이언트의 서명 정보 sc를 생성할 수 있다(S550). 여기서, 증명 정보 CertC는 ECQV 묵시적 인증서 방식에 의해 생성될 수 있다.
또한, 그룹 컨트롤러(200)는 설정한 그룹에 포함된 서버들의 주소 정보, Epoch, Ciphersuite 및 그룹 공개키 QG를 기초로 클라이언트의 그룹 보안 연관 정보(GSAC)를 생성할 수 있으며(S560), 그룹 컨트롤러의 공개키 QGC, 클라이언트의 증명 정보 CertC, 클라이언트의 서명 정보 sC, 설정한 그룹에 대한 정보 및 클라이언트의 그룹 보안 연관 정보 GSAC를 클라이언트(100)로 송신할 수 있다(S570). 여기서, Epoch는 그룹 컨트롤러로부터 그룹키의 분배 횟수에 따라 0부터 1씩 증가할 수 있는 값을 의미할 수 있다.
클라이언트(100)는 그룹 컨트롤러(200)로부터 수신한 클라이언트의 증명 정보 CertC, 클라이언트의 인증 정보 AuthC, 클라이언트의 서명 정보 sC 및 임의로 생성한 rC를 기초로 클라이언트의 개인키 qC를 생성할 수 있으며, ECDH 방식에 따라 클라이언트의 개인키 qC를 기초로 클라이언트의 공개키 QC를 산출할 수 있다(S580).
결과적으로, 상술한 동작에 따라 그룹 컨트롤러(200)에 등록한 클라이언트(100)는 클라이언트의 개인키(qC) 및 공개키(QC)의 한 쌍과 클라이언트에 대한 그룹 보안 연관 정보(GSAC)에 포함된 그룹 공개키(QG) 및 서버 그룹의 주소들을 획득할 수 있다.
또한, 상술한 동작에 따라 클라이언트(100)와 유사하게 서버들(S1, S2, ..., Sj)을 그룹 컨트롤러(200)에 등록하는 경우, 서버들(S1, S2, ..., Sj) 각각은 서버(Sj)의 개인키(qj) 및 공개키(Qj)의 한 쌍과 서버에 대한 그룹 보안 연관 정보(GSAj)에 포함된 그룹 개인키(qG), 그룹 공개키(QG) 및 서버 그룹의 주소들을 획득할 수 있다.
도 6은 본 발명의 일 실시예에 따른 인증 단계를 나타낸 플로우차트이다.
본 발명의 일 실시예에 따른 인증 단계는 클라이언트(C)와 각 서버들(S1, S2, ..., Sj) 간에 수행되는 동작일 수 있으나, 설명의 편의를 위해 클라이언트(C)와 제j 서버(Sj) 간에 수행되는 동작을 예로 들어 설명하겠다. 다시 말해, 본 발명은 하나의 클라이언트와 하나의 서버 간에 수행되는 동작으로 한정되지 않는다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 인증 단계는 우선 클라이언트(100)가 등록 단계에서 획득한 그룹 공개키 QG, 클라이언트의 개인키 qC, 클라이언트 ID 및 제j 서버 ID를 기초로 제1 멀티캐스트 키 MK1을 생성할 수 있고(S605), {Epoch, SEQC, CertC} 및 MICC(MK1)를 포함하는 CoAP 요청 메시지를 제j 서버로 송신할 수 있다(S610). 여기서, Epoch는 그룹 컨트롤러로부터 그룹키의 분배 횟수에 따라 0부터 1씩 증가할 수 있는 값을 의미할 수 있고, SEQC는 클라이언트가 제j 서버로 송신하는 메시지의 횟수에 따라 0부터 1씩 증가할 수 있는 값을 의미할 수 있다.
제j 서버(300)는 클라이언트로부터 수신한 클라이언트 ID 및 그룹 컨트롤러로부터 수신한 그룹 설정 정보에 따른 그룹 ID를 기초로 클라이언트의 인증 정보 AuthC를 생성할 수 있으며, 클라이언트로부터 수신한 증명 정보 CertC, 그룹 컨트롤러로부터 수신한 그룹 컨트롤러의 공개키 QGC 및 생성한 클라이언트의 인증 정보 AuthC를 기초로 클라이언트 공개키 QC를 산출할 수 있다(S615).
또한, 제j 서버(300)는 산출한 클라이언트 공개키 QC, 그룹 컨트롤러로부터 수신한 그룹 개인키 qG, 클라이언트 ID 및 제j 서버 ID를 기초로 제2 멀티캐스트 키 MK2를 생성할 수 있고(S620), 생성한 MK2를 기초로 클라이언트로부터 수신한 MICC(MK1)를 검증할 수 있다(S625).
이후, 제j 서버(300)는 클라이언트 검증이 완료된 경우, 클라이언트 공개키 QC, 제j 서버 개인키 qj, 클라이언트 ID 및 제j 서버 ID를 기초로 제j 서버에 대한 제1 유니캐스트 키 UKj1을 생성할 수 있고(S630), {Epoch, SEQj, Certj} 및 MICj(UKj1)를 포함하는 CoAP 응답 메시지를 클라이언트로 송신할 수 있다(S635). 여기서, Epoch는 그룹 컨트롤러로부터 그룹키의 분배 횟수에 따라 0부터 1씩 증가할 수 있는 값을 의미할 수 있고, SEQj는 제j 서버가 클라이언트로 송신하는 메시지의 횟수에 따라 0부터 1씩 증가할 수 있는 값을 의미할 수 있다.
클라이언트(100)는 제j 서버 ID를 기초로 제j 서버의 인증 정보 Authj를 생성할 수 있으며, 제j 서버로부터 수신한 증명 정보 Certj, 그룹 컨트롤러로부터 수신한 그룹 컨트롤러의 공개키 QGC 및 생성한 제j 서버의 인증 정보 Authj를 기초로 제j 서버 공개키 Qj를 산출할 수 있다(S640).
또한, 클라이언트(100)는 산출한 제j 서버 공개키 Qj, 클라이언트 개인키 qC, 클라이언트 ID 및 제j 서버 ID를 기초로 제j 서버에 대한 제2 유니캐스트 키 UKj2를 생성할 수 있고(S645), 생성한 UKj2를 기초로 제j 서버로부터 수신한 MICj(UKj1)를 검증할 수 있다(S650).
다시 말해, 제j 서버가 멀티캐스트 키를 이용하여 클라이언트를 검증할 수 있으며, 클라이언트는 유니캐스트 키를 이용하여 제j 서버를 검증할 수 있고, 이에 따라 종단간 상호 인증이 달성될 수 있다.
본 발명의 실시예에 따른 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그래머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 클라이언트 200: 그룹 컨트롤러
300: 제j 서버

Claims (17)

  1. 적어도 하나의 서버를 포함하는 서버 그룹 및 그룹 컨트롤러와 메시지를 송수신하는 클라이언트 단말의 종단간 인증 방법에 있어서,
    특정 범위 내의 임의의 값을 기초로 산출한 등록요청 값 및 상기 클라이언트 단말의 식별 정보를 기초로 상기 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계;
    상기 키 생성 기초 정보를 기초로 상기 클라이언트 단말의 개인키 및 상기 클라이언트 단말의 공개키를 생성하는 단계;
    상기 클라이언트 단말의 개인키를 기초로 제1 멀티캐스트 키를 생성하는 단계; 및
    상기 제1 멀티캐스트 키에 기초한 메시지를 상기 서버 그룹에 송신하여 상기 클라이언트 단말의 인증을 요청하는 단계를 포함하는, 종단간 인증 방법.
  2. 청구항 1에 있어서,
    상기 서버 그룹 중 하나의 서버로부터 제1 유니캐스트 키에 기초한 메시지를 수신하는 단계; 및
    상기 제1 유니캐스트 키에 기초한 메시지에 포함된 정보 및 상기 클라이언트 단말의 개인키를 기초로 제2 유니캐스트 키를 생성하는 단계를 더 포함하는, 종단간 인증 방법.
  3. 청구항 2에 있어서,
    상기 제2 유니캐스트 키를 생성하는 단계는,
    상기 제1 유니캐스트 키에 기초한 메시지에 포함된 정보를 기초로 상기 하나의 서버의 공개키를 산출하는 단계; 및
    상기 하나의 서버의 공개키 및 상기 클라이언트 단말의 개인키를 기초로 상기 제2 유니캐스트 키를 생성하는 단계를 포함하는, 종단간 인증 방법.
  4. 청구항 2에 있어서,
    상기 제2 유니캐스트 키를 기초로 상기 제1 유니캐스트 키에 기초한 메시지를 검증하여 상기 하나의 서버를 인증하는 단계를 더 포함하는, 종단간 인증 방법.
  5. 청구항 1에 있어서,
    상기 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계는,
    상기 등록요청 값 및 상기 클라이언트 단말의 식별 정보를 상기 그룹 컨트롤러로 송신하는 단계; 및
    상기 그룹 컨트롤러로부터 상기 키 생성 기초 정보를 획득하는 단계를 포함하는, 종단간 인증 방법.
  6. 청구항 1에 있어서,
    상기 클라이언트 단말의 공개키는,
    ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 상기 클라이언트 단말의 개인키로부터 산출되는, 종단간 인증 방법.
  7. 청구항 1에 있어서,
    상기 키 생성 기초 정보는,
    ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 상기 클라이언트 단말의 등록요청 값을 기초로 산출되는 상기 클라이언트 단말의 증명 정보 및 상기 그룹 컨트롤러의 공개키를 포함하는, 종단간 인증 방법.
  8. 클라이언트 단말 및 그룹 컨트롤러와 메시지를 송수신하는 서버 그룹에 포함된 하나의 서버의 종단간 인증 방법에 있어서,
    특정 범위 내의 임의의 값을 기초로 산출한 등록요청 값 및 상기 하나의 서버의 식별 정보를 기초로 상기 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계;
    상기 키 생성 기초 정보를 기초로 상기 하나의 서버의 개인키 및 상기 하나의 서버의 공개키를 생성하는 단계;
    상기 클라이언트 단말로부터 제1 멀티캐스트 키에 기초한 메시지를 수신하는 단계;
    상기 제1 멀티캐스트 키에 기초한 메시지에 포함된 정보 및 상기 키 생성 기초 정보를 기초로 제2 멀티캐스트 키를 생성하는 단계; 및
    상기 제2 멀티캐스트 키를 기초로 상기 제1 멀티캐스트 키에 기초한 메시지를 검증하여 상기 클라이언트 단말을 인증하는 단계를 포함하는, 종단간 인증 방법.
  9. 청구항 8에 있어서,
    상기 제2 멀티캐스트 키를 생성하는 단계는,
    상기 제1 멀티캐스트 키에 기초한 메시지에 포함된 정보를 기초로 상기 클라이언트 단말의 공개키를 산출하는 단계; 및
    상기 클라이언트 단말의 공개키 및 상기 키 생성 기초 정보를 기초로 상기 제2 멀티캐스트 키를 생성하는 단계를 포함하는, 종단간 인증 방법.
  10. 청구항 9에 있어서,
    상기 클라이언트 단말의 공개키 및 상기 하나의 서버의 개인키를 기초로 제1 유니캐스트 키를 생성하는 단계; 및
    상기 제1 유니캐스트 키에 기초한 메시지를 상기 클라이언트 단말로 송신하여 상기 하나의 서버의 인증을 요청하는 단계를 더 포함하는, 종단간 인증 방법.
  11. 청구항 8에 있어서,
    상기 그룹 컨트롤러에 등록하여 키 생성 기초 정보를 획득하는 단계는,
    상기 등록요청 값 및 상기 하나의 서버의 식별 정보를 상기 그룹 컨트롤러로 송신하는 단계; 및
    상기 그룹 컨트롤러로부터 상기 키 생성 기초 정보를 획득하는 단계를 포함하는, 종단간 인증 방법.
  12. 청구항 8에 있어서,
    상기 하나의 서버의 공개키는,
    ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 상기 하나의 서버의 개인키로부터 산출되는, 종단간 인증 방법.
  13. 청구항 8에 있어서,
    상기 키 생성 기초 정보는,
    ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 상기 하나의 서버의 등록요청 값을 기초로 산출되는 상기 하나의 서버의 증명 정보 및 상기 그룹 컨트롤러의 공개키를 포함하는, 종단간 인증 방법.
  14. 적어도 하나의 서버를 포함하는 서버 그룹 및 클라이언트 단말과 메시지를 송수신하는 그룹 컨트롤러의 종단간 인증 방법에 있어서,
    상기 적어도 하나의 서버 및 상기 클라이언트 단말 중 어느 하나의 등록 요청 단말로부터 상기 등록 요청 단말의 식별 정보 및 등록요청 값을 수신하는 단계;
    상기 그룹 컨트롤러의 개인키 및 상기 등록 요청 단말의 식별 정보 및 등록요청 값을 기초로 키 생성 기초 정보를 생성하는 단계; 및
    상기 키 생성 기초 정보를 상기 등록 요청 단말로 송신하는 단계를 포함하는, 종단간 인증 방법.
  15. 청구항 14에 있어서,
    상기 키 생성 기초 정보는,
    ECQV(Elliptic Curve Qu-Vanstone) 인증서 방식에 따라 상기 등록 요청 단말의 등록요청 값을 기초로 산출되는 상기 등록 요청 단말의 증명 정보 및 상기 그룹 컨트롤러의 공개키를 포함하는, 종단간 인증 방법.
  16. 청구항 14에 있어서,
    미리 정해진 방법에 따라 그룹 개인키를 설정하는 단계;
    상기 그룹 개인키를 기초로 그룹 공개키를 생성하는 단계; 및
    상기 등록 요청 단말이 상기 클라이언트 단말인 경우 상기 그룹 공개키를 상기 클라이언트 단말로 송신하고, 상기 등록 요청 단말이 상기 적어도 하나의 서버인 경우, 상기 그룹 개인키 및 상기 그룹 공개키를 상기 적어도 하나의 서버로 송신하는 단계를 더 포함하는, 종단간 인증 방법.
  17. 청구항 16에 있어서,
    상기 그룹 개인키를 기초로 그룹 공개키를 생성하는 단계는,
    ECDH(Elliptic-Curve Diffie-Hellman) 개인키 및 공개키의 관계에 따라 상기 그룹 개인키로부터 산출되는, 종단간 인증 방법.
KR1020180119740A 2018-10-08 2018-10-08 멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치 KR20200040022A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180119740A KR20200040022A (ko) 2018-10-08 2018-10-08 멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180119740A KR20200040022A (ko) 2018-10-08 2018-10-08 멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20200040022A true KR20200040022A (ko) 2020-04-17

Family

ID=70460906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180119740A KR20200040022A (ko) 2018-10-08 2018-10-08 멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20200040022A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114007220A (zh) * 2021-10-20 2022-02-01 武汉大学 短期阶段会话密钥生成方法、认证密钥协商方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114007220A (zh) * 2021-10-20 2022-02-01 武汉大学 短期阶段会话密钥生成方法、认证密钥协商方法及系统
CN114007220B (zh) * 2021-10-20 2023-12-08 武汉大学 短期阶段会话密钥生成方法、认证密钥协商方法及系统

Similar Documents

Publication Publication Date Title
US10263969B2 (en) Method and apparatus for authenticated key exchange using password and identity-based signature
US11265709B2 (en) Efficient internet-of-things (IoT) data encryption/decryption
US9621545B2 (en) System and method for connecting client devices to a network
JP6301244B2 (ja) モノのインターネットのためのデータグラム転送における軽量認証のためのコンピュータ実施システムおよび方法
Zhang et al. A privacy-aware PUFs-based multiserver authentication protocol in cloud-edge IoT systems using blockchain
Ha et al. Efficient authentication of resource-constrained IoT devices based on ECQV implicit certificates and datagram transport layer security protocol
US10693879B2 (en) Methods, devices and management terminals for establishing a secure session with a service
US10158636B2 (en) Method for setting up a secure end-to-end communication between a user terminal and a connected object
WO2013087039A1 (zh) 一种安全传输数据方法,装置和系统
RU2530691C1 (ru) Способ защищенного удаленного доступа к информационным ресурсам
US20220141004A1 (en) Efficient Internet-Of-Things (IoT) Data Encryption/Decryption
Srikanth et al. An efficient Key Agreement and Authentication Scheme (KAAS) with enhanced security control for IIoT systems
KR101704540B1 (ko) M2m 환경의 다중 디바이스 데이터 공유를 위한 그룹키 관리 방법
JP5614465B2 (ja) 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム
KR20200040022A (ko) 멀티캐스트 CoAP 보안을 위한 종단간 인증 방법 및 장치
Buschsieweke et al. Securing critical infrastructure in smart cities: Providing scalable access control for constrained devices
CN107070869A (zh) 一种基于安全硬件的匿名认证方法
CN115955320A (zh) 一种视频会议身份认证方法
CN113163399A (zh) 一种终端与服务器的通信方法和装置
CN115766119A (zh) 通信方法、装置、通信系统及存储介质
CN110572788B (zh) 基于非对称密钥池和隐式证书的无线传感器通信方法和系统
WO2021064978A1 (ja) 端末、サーバ、方法及びプログラム
CN112235320A (zh) 一种基于密码的视联网组播通信方法及装置
Tankovic et al. Performance Analysis of ETSI GS QKD 014 Protocol in 5G/6G Networks
Gerber Authentication and Authorization for Constrained Environments

Legal Events

Date Code Title Description
E601 Decision to refuse application