KR102662935B1 - 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템 - Google Patents

양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템 Download PDF

Info

Publication number
KR102662935B1
KR102662935B1 KR1020230025307A KR20230025307A KR102662935B1 KR 102662935 B1 KR102662935 B1 KR 102662935B1 KR 1020230025307 A KR1020230025307 A KR 1020230025307A KR 20230025307 A KR20230025307 A KR 20230025307A KR 102662935 B1 KR102662935 B1 KR 102662935B1
Authority
KR
South Korea
Prior art keywords
quantum
resistant
client
message
client device
Prior art date
Application number
KR1020230025307A
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 KR1020230025307A priority Critical patent/KR102662935B1/ko
Application granted granted Critical
Publication of KR102662935B1 publication Critical patent/KR102662935B1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법에 관한 것으로서, 더욱 상세히는 양자내성암호 알고리즘(Post-Quantum Cryptography)을 기반으로 키교환 및 전자서명을 수행하는 TLS(Transport Layer Security)프로토콜을 인증 및 과금을 위한 국제 표준 AAA(Authorization, Authorization, Accounting) 프로토콜인 RADIUS(Remote Authentication Dial-up in Service) 프로토콜에 적용하여 상호인증을 수행하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템에 관한 것이다. 본 발명은, EAP-TLS 프로토콜에 격자기반의 양자내성암호 알고리즘을 적용하여 양자컴퓨터를 이용한 해킹을 용이하게 차단할 수 있음과 아울러 다수의 클라이언트 장치로부터 수신되는 다수의 인증 요청에 따른 양자내성암호화 과정에서 양자내성암호화 처리를 위한 쓰레드를 비동기 방식으로 병렬 생성하여 할당함으로써, 양자내성암호화로 인한 생성키의 크기 증가와 키 교환 및 전자서명 과정에서의 연산량 증가에 따른 부하를 효과적으로 분배하여 처리할 수 있도록 지원할 수 있다.

Description

양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템{Service providing apparatus and method for authentication using post-quantum cryptography, and service providing system therefor}
본 발명은 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법에 관한 것으로서, 더욱 상세히는 양자내성암호 알고리즘(Post-Quantum Cryptography)을 기반으로 키교환 및 전자서명을 수행하는 TLS(Transport Layer Security)프로토콜을 인증 및 과금을 위한 국제 표준 AAA(Authorization, Authorization, Accounting) 프로토콜인 RADIUS(Remote Authentication Dial-up in Service) 프로토콜에 적용하여 상호인증을 수행하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템에 관한 것이다.
RADIUS(Remote Authentication Dial In User Service: RADIUS) 프로토콜은 RFC-2685에 정의된 국제표준 프로토콜으로서 스마트폰, IoT 단말등의 유,무선 인터넷 단말기를 인증하고 과금에 필요한 정보를 수집하는 프로토콜이다.
RADIUS 프로토콜은 RFC 3748에 정의된 확장인증프로토콜(Extensible Authentication Protocol:EAP)를 사용하여 인증서기반, 암호/비밀번호 기반, USIM 기반의 다양한 인증을 지원할 수 있다. 이중 인증서 기반의 인증은 RFC 5216에 정의된 EAP-TLS(Extensible Authentication Protocol-Transport Layer Security)를 사용하며 상호인증 및 키교환을 위해 RSA 또는 타원곡선 기반의 암호가 사용된다.
이러한 키교환 및 전자서명 알고리즘은 양자컴퓨터가 활성화되면서 보안성이 취약할 것으로 예상되며 이에 대비하여 보안성이 강화된 양자내성암호 알고리즘(Post Quantum Cryptography)이 연구되어 국제표준으로 확정될 것으로 예상된다.
현재 미국 NIST(National Institute of Standards and Technology)에서 3 Round 심사가 진행되고 있으며 4종류의 공개키 암호알고리즘과 3종류의 전자서명 알고리즘이 후보로 등록되어 있다.
상술한 바에 따라, RSA 또는 타원곡선을 사용하는 현행 RADIUS 서버는 양자컴퓨터의 발달로 보안이 취약할 것으로 예상되며, 보안성 강화를 위해 양자내성암호를 도입한 RADIUS 서버가 요구되고 있다.
양자내성암호 체계를 RADIUS 프로토콜에 적용하기 위해서는 상호인증을 위한 확장인증 프로토콜인 EAP-TLS 내에 양자내성암호를 적용하여야 한다.
그러나, 양자내성암호 중 표준화가 유력시 되고 있는 격자기반의 암호화 알고리즘은 기존의 RSA 또는 타원곡선등의 알고리즘에 비하여 키의 크기가 클 뿐만 아니라 에러를 포함하여 연산을 해야 하므로 연산량도 증가하여 다수의 클라이언트의 인증 요청을 처리하기 위해서는 서버의 부하를 효과적으로 분배할 필요가 있다.
한국공개특허 제10-2022-0012851호
본 발명은 양자내성암호 체계의 키교환 및 전자서명알고리즘을 적용한 확장인증프로토콜인 EAP-TLS를 사용하는 RADIUS 프로토콜을 제공하여 양자컴퓨터에 의한 해킹으로부터의 보안성을 강화함과 아울러 다수의 클라이언트의 요청을 효율적으로 분배 처리하여 서버 부하를 경감시키면서 효율성을 높인 인증 시스템을 제공하는데 그 목적이 있다.
본 발명의 실시예에 따른 양자내성암호를 이용한 인증을 위한 서비스 제공 장치는, 클라이언트 장치로부터 RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지를 수신하고, 상기 메시지를 분석하여 인증 요청 정보를 작업 큐에 저장하는 메시지 관리부와, 양자내성암호 처리 쓰레드를 병렬적으로 생성하여 관리하며, 키쌍 생성에 대한 요청 수신시 상기 양자내성암호 처리 쓰레드에 기설정되거나 상기 클라이언트 장치로부터 요청된 양자내성암호 알고리즘을 통해 키쌍을 생성하는 양자내성암호 프로세스 처리부 및 상기 작업 큐에 저장된 인증 요청 정보마다 비동기 작업 쓰레드 모듈을 비동기 방식으로 병렬 생성하여 할당하고, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치와 통신하여 상기 클라이언트 장치를 식별하고, 상기 클라이언트 장치에서 상기 양자내성암호 알고리즘을 이용하여 생성한 클라이언트 공개키를 수신하면, 상기 양자내성암호 프로세스 처리부에 키쌍 생성을 요청하고, 상기 양자내성암호 프로세스 처리부로부터 상기 키쌍 중 서버 공개키를 포함하는 응답 메시지를 수신하여 상기 클라이언트 장치로 전송하며, 상기 양자내성암호 프로세스 처리부와 연동하여 상기 클라이언트 공개키와 상기 키쌍 중 서버 개인키를 이용하여 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 작업 쓰레드 관리부를 포함할 수 있다.
본 발명과 관련된 일 예로서, 상기 메시지 관리부는, 상기 클라이언트 장치로부터 UDP 통신을 통해 상기 메시지를 수신하는 UDP 메시지 수신 모듈 및 상기 메시지를 파싱하여 상기 인증 요청 정보를 생성한 후 상기 작업 큐에 전송하여 저장하는 RADIUS 메시지 처리 모듈을 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 서비스 제공 장치는, 상기 인증 요청 정보를 저장하는 상기 작업 큐의 사용량을 연산하고, 상기 작업 큐의 사용량 범위별 작업 큐의 크기에 대한 설정값이 미리 설정된 설정 정보를 기초로 상기 작업 큐의 사용량이 속한 사용량 범위에 대응하는 설정값으로 작업 큐의 크기를 가변하는 큐 관리 모듈을 더 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 비동기 작업 쓰레드 모듈은, 상기 양자내성암호 프로세스 처리부와 연동하기 위한 IPC 연동부와, 상기 작업 큐로부터 상기 작업 쓰레드 관리부에 의해 상기 비동기 작업 쓰레드 모듈에 할당된 인증 요청 정보를 추출하는 작업 큐 로딩 모듈 및 상기 인증 요청 정보 추출시 상기 작업 큐 로딩 모듈에 의해 호출되어 상기 클라이언트 장치와 통신하여 상기 클라이언트 장치를 식별하고, 상기 마스터 세션 키 생성을 위해 상기 IPC 연동부를 통해 상기 양자내성암호 프로세스 처리부로 양자내성암호화 요청 메시지를 전달하고, 상기 양자내성암호 프로세스 처리부로부터 상기 양자내성암호화 요청 메시지에 대응하는 상기 서버 공개키 및 서버 인증서를 포함하는 상기 응답 메시지를 수신한 후 상기 클라이언트 장치에 전송하는 EAP-TLS 처리 모듈을 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 서비스 제공 장치는, 상기 작업 쓰레드 관리부와 상기 양자내성암호 프로세스 처리부 사이에 메시지를 공유하도록 중개하는 IPC 메시지 큐 및 상기 작업 쓰레드 관리부와 상기 양자내성암호 프로세스 처리부 사이에 상기 양자내성암호화 요청 메시지에 대한 처리 결과를 공유하도록 중개하는 IPC 공유 메모리를 더 포함하고, 상기 IPC 연동부는, 상기 양자내성암호화 요청 메시지를 상기 IPC 메시지 큐를 통해 상기 양자내성암호 프로세스 처리부로 전송하는 메시지 큐 IPC 연동 모듈 및 상기 양자내성암호 프로세스 처리부에 의해 생성된 상기 처리 결과인 상기 응답 메시지를 상기 IPC 공유 메모리를 통해 수신하여 상기 EAP-TLS 처리 모듈에 제공하는 공유 메모리 IPC 연동 모듈을 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 EAP-TLS 처리 모듈은, 상기 작업 큐에서 인증 요청 정보를 추출시 상기 인증 요청 정보에 대응하는 상기 클라이언트 장치로 식별자 요청을 위한 식별자 요청 정보를 전송하고, 상기 클라이언트 장치로부터 수신된 식별자를 기초로 상기 클라이언트 장치 식별시 EAP-TLS 시작 메시지를 전송하여 상기 클라이언트 장치로부터 상기 클라이언트 공개키를 포함하는 TLS 클라이언트 요청 메시지를 수신하면, 상기 IPC 연동부를 통해 상기 양자내성암호 프로세스 처리부로 상기 키쌍의 생성을 요청하기 위한 상기 TLS 클라이언트 요청 메시지를 근거로 생성한 양자내성암호화 요청 메시지를 전송하고, 상기 양자내성암호 프로세스 처리부로부터 상기 IPC 연동부를 통해 상기 서버 공개키 및 서버 인증서를 포함하는 상기 응답 메시지를 수신하여 상기 클라이언트 장치로 전송하고, 상기 클라이언트 장치로부터 클라이언트 인증서 수신시 EAP-TLS에 대한 완료 메시지를 상기 클라이언트 장치로 전송하고, 상기 양자내성암호 프로세스 처리부는, 상기 양자내성암호화 요청 메시지에 대응하는 병렬 생성되는 양자내성암호 처리 쓰레드를 생성하여 할당하며, 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 양자내성암호화 요청 메시지에 포함된 양자내성암호 알고리즘 식별정보를 기초로 상기 클라이언트 장치로부터 요청된 상기 양자내성암호 알고리즘을 통해 서버 개인키 및 서버 공개키를 포함하는 키쌍을 생성하고 상기 키쌍 중 서버 공개키 및 미리 저장된 상기 서버 인증서를 포함하는 응답 메시지를 생성하여 상기 EAP-TLS 처리 모듈로 전송하고, 상기 키쌍 중 서버 개인키와 상기 양자내성암호화 요청 메시지에 포함된 클라이언트 공개키로 상기 마스터 세션 키를 생성하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 식별자는 사용자 ID와, MAC 주소 및 상기 식별자에 대응하는 상기 클라이언트 장치의 명칭을 포함하는 확장된 식별자인 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 서비스 제공 장치는, 상기 EAP-TLS 처리 모듈에 대한 복수의 서로 다른 작업 상태가 사전 정의된 유한 상태 기계부(Finite State Machine)를 더 포함하고, 상기 EAP-TLS 처리 모듈은 현재 작업 상태를 저장하고, 상기 유한 상태 기계부와 연동하여 상기 사전 정의된 복수의 서로 다른 작업 상태 중 현재 작업 상태 다음 순서에 해당하는 다음 작업 상태를 확인하여 상기 다음 작업 상태에 대응하는 작업을 수행하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 양자내성암호 프로세스 처리부는, DILITHIUM 서명 알고리즘를 통해 상기 응답 메시지를 상기 서버 개인키로 전자서명한 후 상기 전자서명된 응답 메시지를 상기 EAP-TLS 처리 모듈에 전송하고, 상기 EAP-TLS 처리 모듈은 상기 전자서명된 응답 메시지를 상기 클라이언트 장치에 전송하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 양자내성암호 알고리즘은 CRYSTAL-KYBER 또는 NTRU인 것을 특징으로 할 수 있다.
본 발명의 실시예에 따른 양자내성암호를 이용한 인증을 위한 서비스 제공 방법은, 서비스 제공 장치가, 상기 서비스 제공 장치에 접속한 클라이언트 장치로부터 RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지를 수신한 후 분석하여 인증 요청 정보를 작업 큐에 저장하는 단계와, 상기 서비스 제공 장치가, 상기 작업 큐에 저장된 인증 요청 정보에 대해 비동기 방식으로 병렬 할당되는 비동기 작업 쓰레드 모듈을 생성하여 할당하고, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치를 식별하는 단계와, 상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치에서 양자내성암호 알고리즘을 이용하여 생성한 제 1 키쌍에 포함된 클라이언트 공개키를 수신하면, 병렬 생성되는 양자내성암호 처리 쓰레드를 상기 클라이언트 공개키에 대응되도록 생성하여 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 클라이언트 장치로부터 요청된 상기 양자내성암호 알고리즘을 통해 제 2 키쌍을 생성하는 단계 및 상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 제 2 키쌍 중 서버 공개키를 포함하는 응답 메시지를 상기 클라이언트 장치로 전송하며, 상기 클라이언트 공개키와 상기 제 2 키쌍 중 서버 개인키를 이용하여 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서, 상기 클라이언트 장치를 식별하는 단계는, 상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 작업 큐에서 상기 인증 요청 정보 추출시 상기 인증 요청 정보에 대응하는 상기 클라이언트 장치로 식별자 요청을 위한 식별자 요청 정보를 전송하는 단계와, 상기 클라이언트 장치가 상기 식별자 요청 정보에 대한 응답으로 식별자를 상기 서비스 제공 장치에 전송하는 단계 및 상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치로부터 수신된 식별자를 기초로 상기 클라이언트 장치 식별시 상기 클라이언트 장치로 EAP-TLS 시작 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 식별자는 사용자 ID와, MAC 주소 및 상기 식별자에 대응하는 상기 클라이언트 장치의 명칭을 포함하는 확장된 식별자인 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 제 2 키쌍을 생성하는 단계는, 상기 클라이언트 장치가, 상기 EAP-TLS 시작 메시지 수신시 미리 설정된 상기 양자내성암호 알고리즘을 이용하여 상기 제 1 키쌍을 생성한 후 상기 1 키쌍에 포함된 공개키인 상기 클라이언트 공개키를 포함하는 TLS 클라이언트 요청 메시지를 전송하는 단계와, 상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치로부터 상기 TLS 클라이언트 요청 메시지 수신시 상기 TLS 클라이언트 요청 메시지로부터 상기 클라이언트 공개키를 추출하여 등록하고, 상기 클라이언트 공개키에 대응하는 상기 양자내성암호 처리 쓰레드를 생성하는 단계 및 상기 서비스 제공 장치가, 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 TLS 클라이언트 요청 메시지에 포함된 양자내성암호 알고리즘 식별정보를 기초로 식별된 상기 양자내성암호 알고리즘을 통해 상기 클라이언트 공개키에 대응하는 상기 제 2 키쌍을 생성하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 단계는, 상기 서비스 제공 장치가, 상기 제 2 키쌍 중 서버 공개키와 미리 저장된 서버 인증서를 포함하는 응답 메시지를 상기 제 2 키쌍 중 서버 개인키로 전자서명한 후 상기 클라이언트 장치에 전송하며, 상기 제 2 키쌍에 포함된 서버 개인키 및 상기 클라이언트 공개키를 이용하여 서버용 마스터 세션 키를 생성하는 단계와, 상기 클라이언트 장치가, 상기 전자서명된 응답 메시지를 상기 서버 공개키로 검증하여 검증이 완료되면 상기 서버 공개키 및 상기 제 1 키쌍에 포함된 클라이언트 개인키를 이용하여 클라이언트용 마스터 세션 키를 생성하고, 미리 저장된 클라이언트 인증서를 포함하는 EAP-TLS 종료 메시지를 상기 클라이언트 개인키로 전자서명한 후 상기 서비스 제공 장치에 전송하는 단계 및 상기 서비스 제공 장치가, 상기 전자서명된 EAP-TLS 종료 메시지를 상기 식별자와 매칭하여 저장하고, 상기 전자서명된 EAP-TLS 종료 메시지를 상기 클라이언트 공개키로 검증하여 검증 완료시 상기 클라이언트 장치와의 통신에 상기 서버용 마스터 세션 키를 이용하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 양자내성암호 알고리즘은 CRYSTAL-KYBER 또는 NTRU인 것을 특징으로 할 수 있다.
본 발명의 실시예에 따른 양자내성암호를 이용한 인증을 위한 서비스 제공 시스템은, RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지를 전송하고, 식별자 요청 수신시 미리 설정된 식별자를 전송하며, EAP-TLS 시작 메시지 수신시 미리 설정된 양자내성암호 알고리즘을 이용하여 제 1 키쌍을 생성한 후 상기 제 1 키쌍에 포함된 클라이언트 공개키를 전송하는 클라이언트 장치 및 상기 메시지를 수신한 후 분석하여 인증 요청 정보를 작업 큐에 저장하고, 상기 작업 큐에 저장된 인증 요청 정보에 대해 비동기 방식으로 병렬 할당되는 비동기 작업 쓰레드 모듈을 생성하여 할당하고, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치에 식별자를 요청하여 상기 클라이언트 장치로부터 수신된 식별자를 기초로 상기 클라이언트 장치가 식별되면 상기 EAP-TLS 시작 메시지를 상기 클라이언트 장치로 전송하며, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치로부터 상기 클라이언트 공개키를 포함하는 응답 메시지를 수신하면 병렬 생성되는 양자내성암호 처리 쓰레드를 상기 클라이언트 공개키에 대응되도록 생성하여 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 클라이언트 장치로부터 요청된 양자내성암호 알고리즘을 통해 제 2 키쌍을 생성한 후 상기 제 2 키쌍 중 서버 공개키를 상기 클라이언트 장치로 전송하고, 상기 클라이언트 공개키와 상기 제 2 키쌍 중 서버 개인키를 이용하여 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 서비스 제공 장치를 포함할 수 있다.
본 발명은 LTE를 포함한 IoT 단말장비를 상호 인증하기 위한 국제표준인 RADIUS 프로토콜에서 기존의 RSA(Rivest Shamir Adleman) 또는 ECDSA(Elliptic Curve Digital Signature Algorithm) 등의 암호화 알고리즘을 사용하는 방식이 양자컴퓨터의 발달로 인해 용이하게 해킹이 될 수 있는 점을 보완하기 위해 EAP-TLS 프로토콜에 격자기반의 양자내성암호 알고리즘을 적용하여 양자컴퓨터를 이용한 해킹을 용이하게 차단할 수 있음과 아울러 다수의 클라이언트 장치로부터 수신되는 다수의 인증 요청에 따른 양자내성암호화 과정에서 양자내성암호화 처리를 위한 쓰레드를 비동기 방식으로 병렬 생성하여 할당함으로써, 양자내성암호화로 인한 생성키의 크기 증가와 키 교환 및 전자서명 과정에서의 연산량 증가에 따른 부하를 효과적으로 분배하여 처리할 수 있도록 지원하는 RADIUS 기반의 AAA 서비스를 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 양자내성암호를 이용한 인증을 위한 서비스 제공 시스템의 구성도.
도 2 및 도 3은 본 발명의 실시예에 따른 양자내성암호를 이용한 인증을 위한 서비스 제공 장치의 상세 구성도.
도 4는 본 발명의 실시예에 따른 양자내성암호를 이용한 인증을 위한 서비스 제공 방법에 대한 순서도.
도 5는 본 발명의 실시예에 따른 양자내성암호를 이용하여 생성된 개인키 및 공개키의 예시도.
이하, 도면을 참고하여 본 발명의 상세 실시예를 설명한다.
도 1은 본 발명의 실시예에 따른 양자내성암호를 이용한 인증을 위한 서비스 제공 시스템(이하, 서비스 제공 시스템)의 구성도이다.
도시된 바와 같이, 본 발명에 따른 서비스 제공 시스템은, 클라이언트(Client) 장치(10)와 UDP(User Datagram Protocol) 기반으로 통신망을 통해 통신하며 상기 클라이언트 장치(10)의 인증 요청을 처리하는 서비스 제공 장치(100) 및 상기 클라이언트 장치(10)를 포함하여 구성될 수 있다.
이때, 본 발명에서 설명하는 통신망은 널리 알려진 다양한 유무선 통신망을 포함할 수 있으며, 이러한 무선 통신망의 일례로 무선랜(Wireless LAN: WLAN), DLNA(Digital Living Network Alliance), 와이브로(Wireless Broadband: Wibro), 와이맥스(World Interoperability for Microwave Access: Wimax), GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution: LTE), LTE-A(Long Term Evolution-Advanced), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service: WMBS), 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association: IrDA), UWB(Ultra Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication: NFC), 초음파 통신(Ultra Sound Communication: USC), 가시광 통신(Visible Light Communication: VLC), 와이 파이(Wi-Fi), 와이 파이 다이렉트(Wi-Fi Direct) 등이 포함될 수 있다. 또한, 유선 통신망으로는 전력선 통신(Power Line Communication: PLC), USB 통신, 이더넷(Ethernet), 시리얼 통신(serial communication), 광/동축 케이블 등이 포함될 수 있다.
또한, 상기 서비스 제공 장치(100)는 하나 이상의 클라이언트 장치(10)와 UDP 기반으로 통신할 수 있다.
또한, 상기 클라이언트 장치(10) 및 서비스 제공 장치(100)는 인증 및 과금을 위한 국제 표준 AAA(Authorization, Authorization, Accounting) 프로토콜인 RADIUS(Remote Authentication Dial In User Service) 프로토콜을 이용하여 사용자의 인증 및 과금을 수행할 수 있다.
이때, 상기 클라이언트 장치(10)는 RADIUS 클라이언트(또는 인증 에이전트)로서 구성될 수 있으며, 이러한 상기 클라이언트 장치(10)의 일례로서, AP(Access Point), WAP(Wireless Access Point), NAS(Network Access Server), IoT(Internet of Things) 단말 등을 포함할 수 있다.
또한, 상기 클라이언트 장치(10)는 서비스 제공 장치(100)와 통신을 위한 장치 통신부, 각종 정보를 저장하기 위한 장치 저장부, 상기 클라이언트 장치(10)의 전반적인 제어 기능을 수행하는 장치 제어부 등을 포함하여 구성될 수 있다.
또한, 상기 서비스 제공 장치(100)는, RADIUS 서버로 구성될 수 있으며, RADIUS 프로토콜을 이용한 키교환 및 전자서명에 기반한 인증 및 과금을 수행할 수 있다.
또한, 기존에는 RADIUS 프로토콜을 이용한 인증서 기반의 전자서명 알고리즘은 EAP-TLS를 사용하고, 키교환을 위해 RSA(Rivest Shamir Adleman) 또는 타원곡선 기반의 암호화 방식을 이용하고 있으나, 최근 양자 컴퓨터의 발전과 더불어 이러한 기존의 키교환 및 전자서명 알고리즘은 보안성이 취약한 문제가 발생하며 이로 인해 해킹이 쉽게 발생되는 문제가 발생한다.
따라서, 본 발명은 RADIUS 프로토콜의 보안성 강화를 위해 양자내성암호(Post-Quantum Cryptography) 알고리즘을 적용한 EAP-TLS를 이용한 인증 방식을 제안한다.
이때, 상기 EAP-TLS(확장성 인증 프로토콜-전송 계층 보안, Extensible Authentication Protocol-Transport Layer Security)는 무선 통신망에서 전송 계층 보안(TLS) 프로토콜을 활용한 확장성 인증 프로토콜(EAP)로서, 인터넷 엔지니어링 태스크 포스(IETF) 표준이며(RFC 5216), EAP-TLS를 사용하는 경우에 클라이언트 장치(10)는 클라이언트 인증서를 인증 서버에 제공하며, 인증 서버(서비스 제공 장치(100))는 서버 인증서를 클라이언트 장치(10)에 제공하도록 구성된다. 클라이언트 인증서는 서버에 확실한 클라이언트 인증을 제공하며 서버 인증서는 클라이언트 장치(10)가 원하는 서버에 연결된 것을 확인할 수 있게 한다.
또한, 본 발명은 이러한 양자내성암호 알고리즘에 의해 생성되는 키의 크기가 기존 RSA 또는 타원곡선 등의 기존 키 생성 알고리즘에 의해 생성된 키의 크기보다 클 뿐만 아니라 에러를 포함하여 연산을 수행해야 하므로 기존 RADIUS 서버의 부하가 증가하는 문제점을 해결하기 위해, 양자내성암호 프로세스를 병렬 처리함으로써 RADIUS 서버의 부하를 경감시켜 다수의 클라이언트 장치(10)의 인증 요청을 효율적으로 처리할 수 있는 방안을 제시한다.
이하, 상술한 구성을 토대로 본 발명의 상세 실시예를 이하 도면을 참고하여 설명한다.
도 2는 본 발명의 실시예에 따른 서비스 제공 시스템을 구성하는 서비스 제공 장치(100)의 구성도이다.
우선, 상기 서비스 제공 장치(100)는 통신부와, 저장부 및 제어부를 포함하여 구성될 수 있다.
이때, 상기 통신부는 상기 통신망을 통해 상기 하나 이상의 클라이언트 장치(10)와 통신할 수 있으며, 일례로 UDP 기반의 통신 방식으로 각 클라이언트 장치(10)와 통신할 수 있다.
또한, 상기 저장부는 각종 정보를 저장할 수 있으며, 상기 저장부는 HDD(Hard Disk Drive), SSD(Solid State Drive) 등과 같은 다양한 형태로 구성될 수 있으며, DB로 구성되거나 하나 이상의 DB를 포함하여 구성될 수 있다.
또한, 상기 제어부는 상기 서비스 제공 장치(100)의 전반적인 제어 기능을 수행하고, 상기 제어부는 RAM, ROM, CPU, GPU, 버스를 포함할 수 있으며, RAM, ROM, CPU, GPU 등은 버스를 통해 서로 연결될 수 있다.
또한, 상기 통신부 및 저장부는 상기 제어부에 포함되어 구성될 수도 있다.
또한, 상기 제어부는 상기 서비스 제공 장치(100)의 전반적인 제어 기능을 수행할 수 있는데, 이를 상세히 설명한다.
이때, 상기 제어부 및 상기 제어부를 구성하는 다양한 구성부 중 적어도 하나는 상기 통신부를 통해 상기 클라이언트 장치(10)와 통신할 수 있으며, 이하에서는 상기 통신부를 통한 통신 구성은 생략하기로 한다.
도시된 바와 같이, 상기 제어부는, RADIUS 서버 프로세스 처리부(200), 양자내성암호 프로세스 처리부(300) 등을 포함하여 구성될 수 있다.
이때, 상기 제어부를 구성하는 복수의 구성부는 데이터 처리가 가능한 프로세서 등에 의해 구현될 수 있으며, 각각이 분리되어 상이한 프로세서에 의해 구현될 수도, 하나의 프로세서 내에서 기능적으로 분리될 수도 있다.
또한, 상기 RADIUS 서버 프로세스 처리부(200)는 메시지 관리부(201), 작업 큐(Queue)(240), 작업 쓰레드(thread) 관리부(250), 유한 상태 기계부(Finite State Machine)(270)를 포함하여 구성될 수 있다.
우선, 상기 메시지 관리부(201)는, 클라이언트 장치(10)로부터 RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지를 수신하고, 상기 메시지를 분석하여 인증 요청 정보를 작업 큐(240)에 저장할 수 있다.
이때, 상기 메시지 관리부(201)는, 상기 클라이언트 장치(10)로부터 UDP 메시지를 수신하기 위한 UDP 메시지 수신 모듈(210)과, 상기 UDP 메시지를 파싱(parsing)하여 상기 UDP 메시지로부터 인증 요청 정보에 해당하는 데이터를 추출하여 상기 추출된 데이터를 기초로 인증 요청 정보를 생성한 후 상기 작업 큐(240)에 전송하여 저장하는 RADIUS 메시지 처리 모듈(220)을 포함하여 구성될 수 있다.
또한, 상기 RADIUS 메시지 처리 모듈(220)은, RADIUS 기반의 메시지의 적합성을 검증하고 단말의 IP 및 PORT를 식별하고 작업 정보인 상기 인증 요청 정보를 생성할 수 있다.
이때, 상기 RADIUS 메시지 처리 모듈(220)은, UDP 특성상 메시지가 단편화(Fragmentation)된 경우 이를 확인하고 메시지를 조합하여 작업 정보를 갱신한 후 작업 큐(240)에 등록할 수 있다.
또한, 상기 작업 큐(240)는, 상기 인증 요청 정보를 저장할 수 있으며, 상기 제어부는, 상기 인증 요청 정보를 저장하는 상기 작업 큐(240)의 사용량을 연산하고, 상기 작업 큐(240)의 사용량 범위별 작업 큐(240)의 크기(용량)에 대한 설정값이 미리 설정된 설정 정보를 기초로 상기 작업 큐(240)의 사용량이 속한 사용량 범위에 대응하는 설정값으로 작업 큐(240)의 크기를 가변하는 큐 관리 모듈(230)을 더 포함하여 구성될 수 있다.
이때, 상기 큐 관리 모듈(230)은 작업큐의 초기 크기와 사용량 범위별 작업 큐(240)의 크기(용량)에 대한 설정값이 미리 설정된 설정 정보가 상기 큐 관리 모듈(230)에 미리 설정될 수 있으며, 상기 설정 정보를 기초로 상기 작업 큐(240)의 사용량을 관리할 수 있다.
일례로, 상기 큐 관리 모듈(230)은 상기 작업 큐(240)의 사용량이 증가하여 변경된 사용량이 상기 설정 정보에 미리 설정된 특정 사용량 범위에 포함되는(속하는) 경우 상기 특정 사용량 범위에 대응하는 설정값으로 상기 작업 큐(240)의 크기를 변경할 수 있다.
또한, 상기 작업 쓰레드 관리부(250)는, 상기 작업 큐(240)에 저장된 인증 요청 정보마다 비동기 작업 쓰레드 모듈(비동기 작업 쓰레드)(260)을 생성하여 비동기 방식으로 병렬 할당하고, 상기 비동기 작업 쓰레드 모듈(260)을 통해 상기 클라이언트 장치(10)와 통신하여 상기 클라이언트 장치(10)를 식별하고, 상기 클라이언트 장치(10)에서 상기 양자내성암호 프로세스 처리부(300)에 미리 설정된 하나 이상의 양자내성암호 알고리즘 중 어느 하나와 동일한 알고리즘을 이용하여 생성한 제 1 키쌍에 포함되는 클라이언트 공개키를 포함하는 TLS 클라이언트 요청 메시지(또는 TLS 클라이언트 요청 정보)를 상기 클라이언트 장치(10)로부터 수신하면, 상기 양자내성암호 프로세스 처리부(300)에 키쌍(제 2 키쌍) 생성을 요청하고, 상기 양자내성암호 프로세스 처리부(300)로부터 상기 키쌍(제 2 키쌍) 중 서버 공개키를 수신하여 클라이언트 장치(10)로 전송하며, 상기 양자내성암호 프로세스 처리부(300)와 연동하여 상기 클라이언트 공개키와 상기 키쌍(제 2 키쌍) 중 서버 개인키를 이용하여 마스터 세션 키(Master Session Key)(서버용 마스터 세션 키)를 생성한 후 상기 마스터 세션 키를 상기 클라이언트 장치(10)와의 통신에 이용하도록 구성될 수 있다.
즉, 상기 작업 쓰레드 관리부(250)는, 양자내성암호 알고리즘을 통해 키쌍 생성시 키쌍에 포함되는 공개키 및 개인키의 크기가 기존 AAA 프로토콜에서 사용되는 암호 알고리즘(암호화 알고리즘)에 의해 생성되는 공개키 및 개인키보다 증가되어 서비스 제공 장치(100)의 부하가 증가되는 양자내성암호 프로세스(양자내성암호화 프로세스)를 최적화하기 위해, 복수의 비동기 작업 쓰레드 모듈(260)을 비동기 방식으로 병렬적으로 생성하여 복수의 클라이언트 장치(10)별 인증 요청 작업에 분배할 수 있다.
이때, 상기 작업 쓰레드 관리부(250)는, 작업 큐(240)에 저장된 인증 요청 정보의 개수가 증가할 때마다 또는 미리 설정된 기준값 이상으로 증가하면, 비동기 작업 쓰레드 모듈(260)을 추가로 생성하여 메시지 처리 성능을 보장하도록 한다.
한편, 도 3에 도시된 바와 같이, 상기 작업 쓰레드 관리부(250)에 의해 생성되는 상기 비동기 작업 쓰레드 모듈(260)은, 작업 큐 로딩 모듈(261) 및 EAP-TLS 모듈(262)을 포함하여 구성될 수 있으며, 상기 EAP-TLS 모듈(262)은 IPC 연동부, EAP-TLS 처리 모듈(263) 등을 포함하여 구성될 수 있다.
상기 IPC(Inter Process Communication) 연동부는, 상기 양자내성암호 프로세스 처리부(300)와 통신하여(연결되어) 상기 비동기 작업 쓰레드 모듈(260)이 상기 양자내성암호 프로세스 처리부(300)와 연동할 수 있도록 구성될 수 있다.
또한, 상기 작업 큐 로딩 모듈(261)은, 상기 작업 큐(240)로부터 상기 작업 쓰레드 관리부(250)에 의해 할당된 인증 요청 정보를 추출할 수 있다.
또한, 상기 EAP-TLS 처리 모듈(263)은, 상기 작업 큐 로딩 모듈(261)에서 상기 인증 요청 정보 추출시 상기 작업 큐 로딩 모듈(261)에 의해 호출되어 상기 클라이언트 장치(10)와 통신하여 상기 클라이언트 장치(10)를 식별하고, 상기 마스터 세션 키 생성을 위해 상기 IPC 연동부를 통해 상기 양자내성암호 프로세스 처리부(300)로 상기 클라이언트 공개키를 포함하는 양자내성암호화 요청 메시지를 전달하고, 상기 양자내성암호 프로세스 처리부(300)로부터 상기 양자내성암호화 요청 메시지에 대응하는 처리 결과인 응답 메시지를 수신한 후 상기 클라이언트 장치(10)에 전송하여 상기 클라이언트 장치(10)에서 클라이언트용 마스터 세션 키가 생성되도록 할 수 있으며, 상기 비동기 작업 쓰레드 모듈(260)의 전반적인 동작을 수행하면서 상기 양자내성암호 프로세스 처리부(300)와 연동하여 상술한 바와 같이 서버용 마스터 세션 키가 생성되도록 할 수 있다.
또한, 상기 제어부는, 상기 작업 쓰레드 관리부(250)에 의해 생성된 비동기 작업 쓰레드 모듈(260)에 포함된 EAP-TLS 처리 모듈(263)과 상기 양자내성암호 프로세서 처리부 사이의 정보 송수신(또는 정보 공유)을 위해 상기 EAP-TLS 처리 모듈(263)과 상기 양자내성암호 프로세스 처리부(300) 사이에 메시지를 공유하도록 중개하는 IPC 메시지 큐(290) 및 상기 EAP-TLS 처리 모듈(263)과 상기 양자내성암호 프로세스 처리부(300) 사이에 상기 양자내성암호화 요청 정보에 대한 처리 결과를 공유하도록 중개하는 IPC 공유 메모리(280)를 포함하여 구성될 수 있다.
이때, 상기 IPC 메시지 큐(290)는, 상기 작업 쓰레드 관리부(250)에 의해 생성된 비동기 작업 쓰레드 모듈(260)에 포함된 EAP-TLS 처리 모듈(263)과 상기 양자내성암호 프로세스 처리부(300) 사이에 메시지를 송수신(공유)하기 위해 구성될 수 있으며, 일례로 상기 EAP-TLS 처리 모듈(263)에서 전송하는 양자내성암호화 요청 메시지를 저장하고, 상기 양자내성암호 프로세스 처리부(300)의 요청에 따라 상기 저장된 양자내성암호화 요청 메시지를 상기 양자내성암호 프로세스 처리부(300)에 제공(전송)할 수 있다.
또한, 상기 IPC 공유 메모리(280)는, 상기 작업 쓰레드 관리부(250)와 상기 양자내성암호 프로세스 처리부(300) 사이의 상기 양자내성암호화 요청 메시지에 대한 처리 결과를 공유하기 위해 구성될 수 있으며, 일례로 상기 IPC 공유 메모리(280)는 상기 양자내성암호 프로세스 처리부(300)에서 제공한 상기 처리 결과인 응답 메시지를 저장하고, 상기 저장된 응답 메시지를 상기 작업 쓰레드 관리부(250)에 의해 생성된 상기 EAP-TLS 처리 모듈(263)의 요청에 따라 상기 EAP-TLS 처리 모듈(263)로 제공할 수 있다.
또한, 상기 IPC 연동부는, 메시지 큐 IPC 연동 모듈(266) 및 공유 메모리 IPC 연동 모듈(265)을 포함할 수 있다.
이때, 상기 메시지 큐 IPC 연동 모듈(266)은, 상기 EAP-TLS 처리 모듈(263)에서 전송하는(생성한) 상기 양자내성암호화 요청 메시지를 상기 IPC 메시지 큐(290)를 통해 상기 양자내성암호 프로세스 처리부(300)로 전송할 수 있다.
또한, 상기 공유 메모리 IPC 연동 모듈(265)은, 상기 양자내성암호 프로세스 처리부(300)에 의해 생성된 처리 결과인 서버 공개키 및 서버 인증서를 포함하는 응답 메시지를 상기 IPC 공유 메모리(280)를 통해 수신할 수 있다.
또한, 상기 비동기 작업 쓰레드 모듈(260)의 메시지 처리 흐름 제어를 위한 상기 유한 상태 기계부(270)는, 상기 EAP-TLS 처리 모듈(263)에 대한 복수의 서로 다른 작업 상태가 사전 정의될 수 있으며, 상기 EAP-TLS 처리 모듈(263)은 현재 작업 상태를 상태 벡터(State Vector) 모듈(264)에 저장하고, 상기 유한 상태 기계부(270)와 연동하여 상기 사전 정의된 복수의 서로 다른 작업 상태 중 상기 현재 작업 상태 다음 순서에 해당하는 다음 작업 상태를 확인하고, 상기 다음 작업 상태로 상태 전이를 수행하여 다음 작업 상태에 대응하는 작업을 수행할 수 있다.
한편, 상기 양자내성암호 프로세스 처리부(300)는, 상기 IPC 메시지 큐(290)를 확인하여 상기 작업 쓰레드 관리부(250)에 의해 생성된 비동기 작업 쓰레드 모듈(260)의 EAP-TLS 처리 모듈(263)에서 상기 IPC 메시지 큐(290)에 전송한 양자내성암호화 요청 메시지를 확인하고, 상기 IPC 메시지 큐(290)를 통해 서로 다른 양자내성암호화 요청 메시지 확인시마다 상기 각 양자내성암호화 요청 메시지에 대해 양자내성암호 처리 쓰레드(340)를 병렬적으로 할당하여 복수의 서로 다른 양자내성암호화 요청 메시지와 각각 대응하는 복수의 양자내성암호 처리 쓰레드(340)를 병렬 생성하고, 상기 양자내성암호 처리 쓰레드(340)에 미리 설정되거나 상기 클라이언트 장치(10)로부터 요청된 양자내성암호 알고리즘을 통해 양자내성암호화 요청 메시지에 대응하는 키쌍을 생성하여 저장할 수 있다.
즉, 양자내성암호 프로세스 처리부(300) 역시 양자내성암호 알고리즘을 통해 키쌍 생성시 키쌍에 포함되는 공개키 및 개인키의 크기가 기존 AAA 프로토콜에서 사용되는 암호 알고리즘(암호화 알고리즘)에 의해 생성되는 공개키 및 개인키보다 증가되어 서비스 제공 장치(100)의 부하가 증가되는 양자내성암호 프로세스를 최적화하기 위해, 양자내성암호 처리 쓰레드(340)를 병렬적으로 생성할 수 있다.
이를 위해, 상기 양자내성암호 프로세스 처리부(300)는, 양자내성암호 쓰레드 관리 모듈(320) 및 IPC 인터페이스 처리 모듈(310)을 포함할 수 있다.
상기 IPC 인터페이스 처리 모듈(310)은, 상기 IPC 메시지 큐(290) 및 IPC 공유 메모리(280)를 통해 상기 작업 쓰레드 관리부(250) 또는 EAP-TLS 처리 모듈(263)과 연동하도록 구성될 수 있으며, 일례로 상기 IPC 메시지 큐(290)를 통해 양자내성암호화 요청 메시지를 확인하여 추출하고, 상기 추출한 양자내성암호화 요청 메시지를 상기 양자내성암호 쓰레드 관리 모듈(320)에 제공하며, 상기 양자내성암호 프로세스 처리부(300)의 처리 결과인 응답 메시지를 상기 IPC 공유 메모리(280)를 통해 상기 작업 쓰레드 관리부(250) 또는 EAP-TLS 처리 모듈(263)에 전송할 수 있다.
또한, 상기 양자내성암호 쓰레드 관리 모듈(320)은 상기 EAP-TLS 처리 모듈(263)에서 전송한 상기 양자내성암호화 요청 메시지를 상기 IPC 인터페이스 처리 모듈(310)로부터(상기 IPC 인터페이스 처리 모듈(310)을 통해) 수신하면, 상기 수신된 양자내성암호화 요청 메시지에 대응하는 양자내성암호 처리 쓰레드(340)를 병렬 할당할 수 있다.
또한, 상기 양자내성암호 처리 쓰레드(340)는, 키 생성 모듈(341), 키 교환 모듈(342) 및 전자서명 모듈(343)을 포함하여 구성될 수 있다.
이에 따라, 상기 키 생성 모듈(341)은 미리 설정되거나 상기 양자내성암호화 요청 메시지에 포함된 양자내성암호 알고리즘 식별정보를 기초로 미리 설정된 하나 이상의 양자내성암호화 알고리즘 중 상기 클라이언트 장치에 의해 요청된 것으로 식별된 양자내성암호 알고리즘을 수행하여 상기 양자내성암호화 요청 메시지에 대응하는 제 2 키쌍을 생성할 수 있다.
이때, 본 발명에서 설명하는 양자내성암호 알고리즘(양자내성암호화 알고리즘)은 격자 기반 암호(화) 알고리즘일 수 있으며, 일례로 CRYSTAL-KYBER 또는 NTRU 알고리즘일 수 있다.
또한, 상기 키 교환 모듈(342)은 상기 양자내성암호화 요청 메시지 및 상기 제 2 키쌍을 대상으로 미리 설정된 키 교환 알고리즘을 수행하여 상기 제 2 키쌍에서 상기 클라이언트 장치로 전송할 서버 공개키를 추출하여 전송 대상으로 결정하고, 상기 제 2 키쌍 중 서버 개인키와 상기 양자내성암호화 요청 메시지에 포함된 클라이언트 공개키를 상호 매칭하여 상기 양자내성암호 프로세스 처리부(300)에 포함된 키쌍 저장소(330)에 저장할 수 있다.
이때, 상기 키 교환 모듈(342)은 상기 제 2 키쌍과 상기 클라이언트 공개키를 상호 매칭하여 상기 키쌍 저장소(330)에 저장할 수도 있다.
또한, 상기 전자서명 모듈(343)은 상기 서비스 제공 장치(100)의 저장부에 미리 저장된 서버 인증서와 상기 키 교환 모듈(342)에 의해 결정된 서버 공개키를 포함하는 응답 메시지를 생성한 후 해당 응답 메시지에 상기 제 2 키쌍 중 서버 개인키를 이용한 전자서명을 수행하여 전자서명된 응답 메시지를 상기 양자내성암호 쓰레드 관리 모듈(320)에 제공할 수 있다.
이때, 상기 전자서명 모듈(343)은 전자서명을 위한 양자내성암호 알고리즘인 DILITHIUM 서명 알고리즘을 이용하여 상기 응답 메시지에 대한 전자서명을 수행할 수 있다.
또한, 상기 서비스 제공 장치(100)는 상기 서비스 제공 장치(100)에 대한 인증을 수행하는 외부 인증 서버로부터 상기 서버 인증서를 발급받아 수신하여 보유한 상태일 수 있으며, 상기 서버 인증서는 상기 저장부에 저장될 수 있다.
또한, 상기 전자서명 모듈(343)은 상기 응답 메시지를 생성하기 이전에 상기 저장부에 저장된 서버 인증서를 상기 외부 인증 서버로부터 제공된 공개키를 이용하여 검증할 수 있으며, 검증이 완료된 경우(검증에 성공한 경우)에만 상기 응답 메시지를 생성할 수 있다.
또한, 상기 전자서명 모듈(343)에서 이용하는 전자서명을 위한 양자내성암호 알고리즘(또는 제 2 양자내성암호 알고리즘)과 상기 키 교환 모듈(342)에서 이용하는 키교환 또는 키 생성을 위한 양자내성암호 알고리즘(또는 제 1 양자내성암호 알고리즘)은 서로 상이할 수 있다.
이에 따라, 상기 양자내성암호 쓰레드 관리 모듈(320)은, 상기 양자내성암호 처리 쓰레드(340)를 통해 생성된 전자서명된 응답 메시지를 제공받아(수신하여) 상기 IPC 인터페이스 처리 모듈(310)을 통해 상기 작업 쓰레드 관리부(250)에 전송할 수 있으며, 상기 작업 쓰레드 관리부(250)에서 상기 제 2 키쌍에 대응하는 비동기 작업 쓰레드 모듈(260)의 EAP-TLS 처리 모듈(263)은 상기 응답 메시지를 상기 IPC 연동부를 통해 수신할 수 있다.
일례로, 상기 IPC 연동부에 포함된 공유 메모리 IPC 연동 모듈(265)은, 상기 양자내성암호 프로세스 처리부(300)에 의해 생성된 응답 메시지(전자서명된 응답 메시지)를 상기 IPC 공유 메모리(280)로부터 추출한 후 상기 IPC 연동부와 연결된 EAP-TLS 처리 모듈(263)에 제공할 수 있다.
이때, 상기 EAP-TLS 처리 모듈(263)에서 생성한 양자내성암호화 요청 메시지는 메시지 식별 정보를 포함하고, 상기 메시지 식별 정보에 대응하도록 생성된 양자내성암호 처리 쓰레드(340)는 상기 메시지 식별 정보를 더 포함하는 응답 메시지(전자서명된 응답 메시지)를 생성할 수 있다. 이에 따라, 상기 공유 메모리 IPC 연동 모듈(265)은 상기 EAP-TLS 처리 모듈(263)과 연동하여 상기 양자내성암호화 요청 메시지에 포함된 메시지 식별 정보를 기초로 상기 메시지 식별 정보에 대응하는 응답 메시지(전자서명된 응답 메시지)를 상기 IPC 공유 메모리(280)에서 식별하여 추출한 후 자신과 연동하는 EAP-TLS 처리 모듈(263)에 제공할 수 있다.
여기서, 상기 메시지 식별 정보는 상기 클라이언트 공개키일 수 있다.
또한, 상기 양자내성암호 쓰레드 관리 모듈(320)은 상기 제 2 키쌍을 생성한 양자내성암호 처리 쓰레드(340)를 통해 상기 제 2 키쌍에 대응하는 클라이언트 공개키 및 제 2 키쌍에 포함된 개인키인 서버 개인키를 이용하여 세션을 유도하여 마스터 세션 키(서버용 마스터 세션 키)를 생성할 수 있다.
또한, 상기 양자내성암호 처리 쓰레드(340)는 클라이언트 공개키와 제 2 키쌍 및 마스터 세션 키를 상호 매칭하여 상기 양자내성암호 프로세스 처리부(300)에 포함된 키쌍 저장소(330)에 저장할 수 있다.
이때, 상기 양자내성암호 처리 쓰레드에 포함된 키 교환 모듈(342)이 상기 양자내성암호 쓰레드 관리 모듈(320)과 연동하여 상기 클라이언트 공개키와 제 2 키쌍 및 마스터 세션 키를 상호 매칭하여 상기 키쌍 저장소(330)에 저장할 수 있다.
한편, 상기 EAP-TLS 처리 모듈(263)은 상기 IPC 연동부를 통해 상기 양자내성암호 프로세스 처리부(300)로부터 상기 응답 메시지(전자서명된 응답 메시지)를 수신하고, 상기 응답 메시지(전자서명된 응답 메시지)를 상기 클라이언트 장치(10)에 전송할 수 있다.
이에 따라, 상기 클라이언트 장치(10)는 상기 응답 메시지(전자서명된 응답 메시지) 수신시 상기 응답 메시지에 포함된 서버 공개키와 상기 클라이언트 장치(10)에서 양자내성암호 알고리즘을 통해 생성한 제 1 키쌍에 포함되는 개인키인 클라이언트 개인키를 이용하여 클라이언트용 마스터 세션 키를 생성하고, 해당 클라이언트용 마스터 세션 키를 저장할 수 있다.
또한, 상기 클라이언트 장치(10)는 상기 클라이언트용 마스터 세션 키를 상기 서비스 제공 장치(100)와의 통신에 이용할 수 있다.
상술한 서비스 제공 장치(100)의 구성을 토대로, 본 발명의 실시예에 따른 서비스 제공 시스템의 양자내성암호를 적용한 키교환 및 인증 과정(T300)을 도 4의 순서도를 참고하여 상세히 설명한다.
설명에 앞서, 상기 클라이언트 장치(10) 및 서비스 제공 장치(100)는 각각 클라이언트 장치 및 서비스 제공 장치의 인증을 수행하고 이에 따른 인증서를 발급하는 외부 인증 서버(외부 인증 센터)와 통신할 수 있으며, 이에 따라 상기 클라이언트 장치는 상기 외부 인증 서버로부터 클라이언트 인증서를 발급받아 저장한 상태이며, 상기 서비스 제공 장치는 상기 외부 인증 서버로부터 서버 인증서를 발급받아 저장한 상태일 수 있다.
또한, 상기 클라이언트 인증서 및 서버 인증서 각각은 상기 외부 인증 서버에서 생성한 개인키로 전자서명된 인증서일 수 있으며, 상기 클라이언트 장치(10) 및 서비스 제공 장치(100)는 각각 상기 외부 인증 서버에서 제공한 공개키를 보유하여 저장한 상태일 수 있다.
우선, 클라이언트 장치(10)는 상기 서비스 제공 장치(100)로 UDP 통신을 통해 RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지(또는 인증 요청 메시지)를 전송할 수 있다.
또한, 서비스 제공 장치(100)의 메시지 관리부(201)는, 상기 클라이언트 장치(10)로부터 수신된 상기 메시지(인증 요청 메시지)를 분석하여 인증 요청 정보를 생성하고, 상기 작업 큐(240)에 저장할 수 있다.
또한, 상기 서비스 제공 장치(100)의 작업 쓰레드 관리부(250)는, 상기 작업 큐(240)에 저장된 인증 요청 정보를 확인하면, 상기 확인된 인증 요청 정보에 대해 병렬적으로 생성되는 비동기 작업 쓰레드 모듈(260)을 생성하여 할당(분배)할 수 있다.
또한, 상기 서비스 제공 장치(100)에서 생성된 상기 비동기 작업 쓰레드 모듈(260)에 포함되는 EAP-TLS 처리 모듈(263)은, 작업 큐 로딩 모듈(261)을 통해 상기 비동기 작업 쓰레드 모듈(260)에 미리 지정된 인증 요청 정보를 상기 작업 큐(240)로부터 추출할 수 있다.
또한, 상기 EAP-TLS 처리 모듈(263)은 상기 추출된 인증 요청 정보에 대응하는 클라이언트 장치(10)로 식별자 요청을 위한 식별자 요청 정보를 전송할 수 있다(T310).
또한, 상기 클라이언트 장치(10)는, 상기 식별자 요청 정보에 대한 응답으로 식별자를 상기 서비스 제공 장치(100)에 전송할 수 있다(T311).
일반적인 상호인증에서는 클라이언트의 REALM 정보를 이용하여 서비스 도메인을 구분하고 사용자의 ID를 가지고 단말을 구분할 수 있으나 IoT 단말들은 단말의 MAC(Media Access Control) 주소, 인증서의 CN(Common Name) 정보를 추가적으로 필요로 한다.
따라서, 본 발명의 예시에 의해서 클라이언트 장치(10)의 식별자(Identity)는 하기와 같이 기존의 식별(identity) 정보에 임의의 Key와 Value를 더 포함하는 JSON (Javascript Object Notation)을 Base64로 인코딩(Encoding) 한 텍스트를 사용한다.
- Identity = Base64(Key-Value JSON)
- Key-Value JSON = {“identity”:“userid@Realm”, “key1”:“value1”, “key2”:“value2”}
즉, 상기 클라이언트 장치(10)에서 전송하는 식별자는, 사용자 ID와, 상기 클라이언트 장치(10)의 MAC 주소 및 상기 클라이언트 장치(10)의 명칭(CN)을 포함하는 확장된 식별자일 수 있다.
또한, 상기 EAP-TLS 처리 모듈(263)은 상기 클라이언트 장치(10)로부터 수신되는 식별자를 기초로 상기 식별자에 대응하는 클라이언트 장치(10)를 식별할 수 있다(T320). 또한, 상기 EAP-TLS 처리 모듈(263)은 상기 식별자를 상기 저장부에 포함된 DB에 저장할 수 있다.
또한, 상기 EAP-TLS 처리 모듈(263)은 상기 식별자를 기초로 상기 클라이언트 장치(10) 식별시 상기 클라이언트 장치(10)로 EAP-TLS 시작 메시지를 전송할 수 있다(T321).
이때, 상기 DB에 상기 클라이언트 장치(10)에 대응하는 장치 정보가 미리 저장될 수도 있으며, 상기 EAP-TLS 처리 모듈(263)은 상기 식별자에 대응하는 장치 정보가 존재하는지 여부에 따른 상기 클라이언트 장치(10)의 등록 여부를 판단하고, 판단 결과 미리 등록된 장치인 경우에만 상기 EAP-TLS 시작 메시지를 상기 클라이언트 장치(10)에 전송할 수도 있다.
또한, 상기 클라이언트 장치(10)는, 상기 EAP-TLS 시작 메시지 수신시 상기 클라이언트 장치(10)에 미리 설정된 상기 양자내성암호 알고리즘을 이용하여 제 1 키쌍을 생성한 후(T330) 상기 제 1 키쌍에 포함된 공개키인 상기 클라이언트 공개키를 포함하는 TLS 클라이언트 요청 메시지를 상기 서비스 제공 장치(100)에 전송할 수 있다(T340).
이때, 상기 클라이언트 장치(10)는 양자내성암호 알고리즘인 CRYSTAL-KYBER 또는 NTRU 알고리즘을 사용하여 제 1 키쌍을 생성할 수 있으며, 상기 클라이언트 장치(10)에서 미리 설정된 양자내성암호 알고리즘은 상기 서비스 제공 장치(100)에 미리 설정된 양자내성암호 알고리즘과 동일할 수 있다.
또한, 상기 클라이언트 장치(10)는, 상기 제 1 키쌍 생성시 이용한 양자내성암호 알고리즘의 식별을 위한 양자내성암호 알고리즘 식별정보를 상기 TLS 클라이언트 요청 메시지에 더 포함시켜 전송할 수 있다.
또한, 상기 EAP-TLS 처리 모듈(263)은 상기 TLS 클라이언트 요청 메시지 수신시 상기 TLS 클라이언트 요청 메시지로부터 상기 클라이언트 공개키를 추출하고, 상기 IPC 연동부를 통해 상기 양자내성암호 프로세스 처리부(300)로 키쌍의 생성을 요청하기 위한 상기 클라이언트 공개키를 포함하는 양자내성암호화 요청 메시지를 전송할 수 있다.
이때, 상기 EAP-TLS 처리 모듈(263)은 상기 TLS 클라이언트 요청 메시지로부터 상기 클라이언트 공개키 및 상기 양자내성암호 알고리즘 식별정보를 추출한 후 상기 추출된 클라이언트 공개키 및 상기 양자내성암호 알고리즘 식별정보를 포함하는 양자내성암호화 요청 메시지를 생성하여 전송할 수 있다.
또한, 상기 서비스 제공 장치(100)에 포함된 상기 양자내성암호 프로세스 처리부(300)는, 상기 양자내성암호화 요청 메시지 수신시 상기 양자내성암호화 요청 메시지에 대응하는 병렬 생성되는 양자내성암호 처리 쓰레드(340)를 생성하고, 상기 양자내성암호 처리 쓰레드(340)를 통해 상기 양자내성암호화 요청 메시지에 대응하는 키교환 시 협의된 양자내성암호 알고리즘을 통해 제 2 키쌍을 생성할 수 있다.
일례로, 상기 양자내성암호 프로세스 처리부(300)는, 상기 양자내성암호 처리 쓰레드(340)에 미리 설정된 양자내성암호 알고리즘을 통해 제 2 키쌍을 생성하거나, 상기 양자내성암호 프로세스 처리부(300)에 미리 설정된 하나 이상의 양자내성암호 알고리즘 중 상기 양자내성암호화 요청 메시지에 포함된 양자내성암호 알고리즘 식별정보에 대응하는 특정 양자내성암호 알고리즘을 식별한 후 상기 식별된 특정 양자내성암호 알고리즘(또는 제 1 양자내성암호 알고리즘)을 이용하여 서버 개인키 및 서버 공개키를 포함하는 제 2 키쌍을 생성할 수 있다.
또한, 상기 양자내성암호 프로세스 처리부(300)는, 키교환을 위해 상기 제 2 키쌍에 포함되는 공개키인 서버 공개키를 상기 제 2 키쌍으로부터 추출하고, 상기 서비스 제공 장치에 미리 저장된 서버 인증서 및 상기 추출된 서버 공개키를 포함하는 응답 메시지를 생성한 후 상기 응답 메시지를 상기 제 2 키쌍 중 서버 개인키를 이용하여 전자서명을 위한 미리 설정된 양자내성암호 알고리즘(또는 제 2 양자내성암호 알고리즘)을 통해 전자서명하고, 상기 서버 개인키로 전자서명된 응답 메시지를 상기 EAP-TLS 처리 모듈(263)로 전송할 수 있다(T350).
이때, 상기 양자내성암호 프로세스 처리부(300)는, 상기 클라이언트 공개키에 대응하는 제 2 키쌍(또는 제 2 키쌍의 서버 개인키)을 상기 클라이언트 공개키와 상호 매칭하여 상기 양자내성암호 프로세스 처리부(300)에 포함된 키쌍 저장소(330)에 저장하거나 상기 저장부에 저장할 수 있다.
여기서, 상기 키쌍 저장소(330)는 상기 저장부에 포함될 수도 있다.
또한, 상기 EAP-TLS 처리 모듈(263)은 상기 양자내성암호 프로세스 처리부(300)로부터 수신된 서버 공개키 및 서버 인증서를 포함하는 상기 응답 메시지(전자서명된 응답 메시지)를 상기 TLS 클라이언트 요청 메시지에 대한 응답으로 상기 클라이언트 장치(10)에 전송할 수 있다(T370).
또한, 상기 클라이언트 장치(10)는 상기 응답 메시지 수신시 상기 응답 메시지에 포함된 서버 공개키와 상기 클라이언트 개인키를 이용하여 세션키를 유도하여 클라이언트용 마스터 세션 키를 생성할 수 있다(T381).
이때, 상기 클라이언트 장치(10)는 상기 전자서명된 응답 메시지에 포함된 서버 공개키로 상기 전자서명된 응답 메시지를 검증할 수 있으며, 검증이 완료된 경우 상기 클라이언트용 마스터 세션 키를 생성할 수 있다.
또한, 상기 양자내성암호 프로세스 처리부(300) 역시 상기 클라이언트 공개키에 대응하는 제 2 키쌍에 포함된 개인키인 서버 개인키와 상기 클라이언트 공개키를 기초로 세션키를 유도하여 서버용 마스터 세션 키를 생성할 수 있다(T380). 이때, 상기 양자내성암호 프로세스 처리부(300)는, 상기 생성된 서버용 마스터 세션 키를 상기 생성된 서버용 마스터 세션 키에 대응하는 제 2 키쌍 또는 클라이언트 공개키와 매칭하여 상기 키쌍 저장소(330) 또는 상기 저장부에 저장할 수 있다.
또한, 상기 클라이언트 장치(10)는 상기 클라이언트 장치(10)에 미리 저장된 클라이언트 인증서를 포함하는 EAP-TLS 종료 메시지를 상기 서비스 제공 장치(100)에 전송할 수 있다(T395, T396).
이때, 상기 클라이언트 장치(10)는, 양자내성암호 알고리즘 중 전자서명을 위한 알고리즘인 DILITHIUM 서명 알고리즘을 통해 상기 제 1 키쌍 중 클라이언트 개인키를 이용하여 상기 EAP-TLS 종료 메시지에 대한 전자서명을 수행하고, 상기 전자서명된 EAP-TLS 종료 메시지를 상기 서비스 제공 장치(100)에 전송할 수 있다(T390).
또한, 상기 클라이언트 장치(10)는, 클라이언트 인증서를 외부 인증 서버로부터 수신한 공개키를 이용하여 검증할 수 있으며, 검증이 완료된 경우(검증에 성공한 경우) 상기 EAP-TLS 종료 메시지를 생성하여 전송할 수도 있다.
또한, 상기 EAP-TLS 처리 모듈(263)은 상기 클라이언트 인증서가 포함된 상기 EAP-TLS 종료 메시지(상기 전자서명된 EAP-TLS 종료 메시지)를 상기 클라이언트 장치(10)에 대응하는 식별자와 매칭하여 상기 DB에 저장할 수 있으며, 상기 EAP-TLS 종료 메시지 수신시 EAP 전체에 대한 완료 메시지를 클라이언트 장치(10)에 전송할 수 있다(T397).
이때, 상기 EAP-TLS 처리 모듈(263)은, 상기 양자내성암호 프로세스 처리부(300)와 연동하여 상기 EAP-TLS 종료 메시지에 대응하는 클라이언트 공개키로 상기 EAP-TLS 종료 메시지를 검증할 수 있으며, 상기 EAP-TLS 종료 메시지 검증시 상기 EAP 전체에 대한 완료 메시지를 상기 클라이언트 장치(10)에 전송할 수 있다.
또한, 상기 클라이언트 장치(10)는 상기 클라이언트용 마스터 세션 키를 단말 저장부에 저장할 수 있으며(T401), 상기 서비스 제공 장치(100)에 포함된 양자내성암호 프로세스 처리부(300)는 상기 서버용 마스터 세션 키를 상기 키 저장소 또는 저장부에 저장할 수 있다(T400).
또한, 상기 클라이언트 장치(10)는 상기 서비스 제공 장치(100)에 데이터 전송시 상기 클라이언트용 마스터 세션 키로 데이터를 암호화하여 전송할 수 있으며, 상기 EAP-TLS 모듈(262)(또는 비동기 작업 쓰레드 모듈(260) 또는 EAP-TLS 처리 모듈(263)) 또는 작업 쓰레드 관리부(250)는 상기 양자내성암호 프로세스 처리부(300)와 연동하여 상기 클라이언트 장치(10)로 데이터 전송시 상기 서버용 마스터 세션 키로 데이터를 암호화하여 전송할 수 있다.
도 5는 양자내성암호의 격자기반 알고리즘인 DILITHIUM 알고리즘을 사용한 개인키 및 공개키의 예시이다. DILITHIUM 알고리즘 중의 세부알고리즘인 DILITHIUM 2의 경우 공개키(502)는 1312 바이트에 해당하며 전자서명에 사용되는 개인키(501)는 2420 바이트에 해당한다.
상술한 바와 같이, 본 발명은 LTE를 포함한 IoT 단말장비를 상호 인증하기 위한 국제표준인 RADIUS 프로토콜에서 기존의 RSA(Rivest Shamir Adleman) 또는 ECDSA(Elliptic Curve Digital Signature Algorithm) 등의 암호화 알고리즘을 사용하는 방식이 양자컴퓨터의 발달로 인해 용이하게 해킹이 될 수 있는 점을 보완하기 위해 EAP-TLS 프로토콜에 격자기반의 양자내성암호 알고리즘을 적용하여 양자컴퓨터를 이용한 해킹을 용이하게 차단할 수 있음과 아울러 다수의 클라이언트 장치로부터 수신되는 다수의 인증 요청에 따른 양자내성암호화 과정에서 양자내성암호화 처리를 위한 쓰레드를 비동기 방식으로 병렬 생성하여 할당함으로써, 양자내성암호화로 인한 생성키의 크기 증가와 키 교환 및 전자서명 과정에서의 연산량 증가에 따른 부하를 효과적으로 분배하여 처리할 수 있도록 지원하는 RADIUS 기반의 AAA(Authorization, Authorization, Accounting) 서비스를 제공할 수 있다.
본 발명의 실시예들에서 설명된 다양한 장치, 구성부, 모듈 등을 포함하는 구성요소는, 예를 들어, 메모리 등의 저장부, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(programmable logic unit), 마이크로프로세서 등의 하드웨어, 명령어 세트를 포함하는 소프트웨어 내지 이들의 조합 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 클라이언트 장치 100: 서비스 제공 장치
200: RADIUS 서버 프로세스 처리부
201: 메시지 관리부 210: UDP 메시지 수신 모듈
220: RADIUS 메시지 처리 모듈 230: 큐 관리 모듈
240: 작업 큐 250: 작업 쓰레드 관리부
260: 비동기 작업 쓰레드 모듈 261: 작업 큐 로딩 모듈
262: EAP-TLS 모듈 263: EAP-TLS 처리 모듈
264: 상태 벡터 모듈 265: 공유 메모리 IPC 연동 모듈
266: 메시지 큐 IPC 연동 모듈 270: 유한 상태 기계부
280: IPC 공유 메모리 290: IPC 메시지 큐
300: 양자내성암호 프로세스 처리부
310: IPC 인터페이스 처리 모듈 320: 양자내성암호 쓰레드 관리 모듈
330: 키쌍 저장소 340: 양자내성암호 처리 쓰레드
341: 키 생성 모듈 342: 키 교환 모듈
343: 전자서명 모듈

Claims (17)

  1. 클라이언트 장치로부터 RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지를 수신하고, 상기 메시지를 분석하여 인증 요청 정보를 작업 큐에 저장하는 메시지 관리부;
    양자내성암호 처리 쓰레드를 병렬적으로 생성하여 관리하며, 키쌍 생성에 대한 요청 수신시 상기 양자내성암호 처리 쓰레드에 기설정되거나 상기 클라이언트 장치로부터 요청된 양자내성암호 알고리즘을 통해 키쌍을 생성하는 양자내성암호 프로세스 처리부; 및
    상기 작업 큐에 저장된 인증 요청 정보마다 비동기 작업 쓰레드 모듈을 비동기 방식으로 병렬 생성하여 할당하고, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치와 통신하여 상기 클라이언트 장치를 식별하고, 상기 클라이언트 장치에서 상기 양자내성암호 알고리즘을 이용하여 생성한 클라이언트 공개키를 수신하면, 상기 양자내성암호 프로세스 처리부에 키쌍 생성을 요청하고, 상기 양자내성암호 프로세스 처리부로부터 상기 키쌍 중 서버 공개키를 포함하는 응답 메시지를 수신하여 상기 클라이언트 장치로 전송하며, 상기 양자내성암호 프로세스 처리부와 연동하여 상기 클라이언트 공개키와 상기 키쌍 중 서버 개인키를 이용하여 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 작업 쓰레드 관리부
    를 포함하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  2. 청구항 1에 있어서,
    상기 메시지 관리부는,
    상기 클라이언트 장치로부터 UDP 통신을 통해 상기 메시지를 수신하는 UDP 메시지 수신 모듈; 및
    상기 메시지를 파싱하여 상기 인증 요청 정보를 생성한 후 상기 작업 큐에 전송하여 저장하는 RADIUS 메시지 처리 모듈
    을 포함하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  3. 청구항 1에 있어서,
    상기 인증 요청 정보를 저장하는 상기 작업 큐의 사용량을 연산하고, 상기 작업 큐의 사용량 범위별 작업 큐의 크기에 대한 설정값이 미리 설정된 설정 정보를 기초로 상기 작업 큐의 사용량이 속한 사용량 범위에 대응하는 설정값으로 작업 큐의 크기를 가변하는 큐 관리 모듈을 더 포함하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  4. 청구항 1에 있어서,
    상기 비동기 작업 쓰레드 모듈은,
    상기 양자내성암호 프로세스 처리부와 연동하기 위한 IPC 연동부;
    상기 작업 큐로부터 상기 작업 쓰레드 관리부에 의해 상기 비동기 작업 쓰레드 모듈에 할당된 인증 요청 정보를 추출하는 작업 큐 로딩 모듈; 및
    상기 인증 요청 정보 추출시 상기 작업 큐 로딩 모듈에 의해 호출되어 상기 클라이언트 장치와 통신하여 상기 클라이언트 장치를 식별하고, 상기 마스터 세션 키 생성을 위해 상기 IPC 연동부를 통해 상기 양자내성암호 프로세스 처리부로 양자내성암호화 요청 메시지를 전달하고, 상기 양자내성암호 프로세스 처리부로부터 상기 양자내성암호화 요청 메시지에 대응하는 상기 서버 공개키 및 서버 인증서를 포함하는 상기 응답 메시지를 수신한 후 상기 클라이언트 장치에 전송하는 EAP-TLS 처리 모듈
    을 포함하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  5. 청구항 4에 있어서,
    상기 작업 쓰레드 관리부와 상기 양자내성암호 프로세스 처리부 사이에 메시지를 공유하도록 중개하는 IPC 메시지 큐; 및
    상기 작업 쓰레드 관리부와 상기 양자내성암호 프로세스 처리부 사이에 상기 양자내성암호화 요청 메시지에 대한 처리 결과를 공유하도록 중개하는 IPC 공유 메모리
    를 더 포함하고,
    상기 IPC 연동부는,
    상기 양자내성암호화 요청 메시지를 상기 IPC 메시지 큐를 통해 상기 양자내성암호 프로세스 처리부로 전송하는 메시지 큐 IPC 연동 모듈; 및
    상기 양자내성암호 프로세스 처리부에 의해 생성된 상기 처리 결과인 상기 응답 메시지를 상기 IPC 공유 메모리를 통해 수신하여 상기 EAP-TLS 처리 모듈에 제공하는 공유 메모리 IPC 연동 모듈
    을 포함하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  6. 청구항 4에 있어서,
    상기 EAP-TLS 처리 모듈은, 상기 작업 큐에서 인증 요청 정보를 추출시 상기 인증 요청 정보에 대응하는 상기 클라이언트 장치로 식별자 요청을 위한 식별자 요청 정보를 전송하고, 상기 클라이언트 장치로부터 수신된 식별자를 기초로 상기 클라이언트 장치 식별시 EAP-TLS 시작 메시지를 전송하여 상기 클라이언트 장치로부터 상기 클라이언트 공개키를 포함하는 TLS 클라이언트 요청 메시지를 수신하면, 상기 IPC 연동부를 통해 상기 양자내성암호 프로세스 처리부로 상기 키쌍의 생성을 요청하기 위한 상기 TLS 클라이언트 요청 메시지를 근거로 생성한 양자내성암호화 요청 메시지를 전송하고, 상기 양자내성암호 프로세스 처리부로부터 상기 IPC 연동부를 통해 상기 서버 공개키 및 서버 인증서를 포함하는 상기 응답 메시지를 수신하여 상기 클라이언트 장치로 전송하고, 상기 클라이언트 장치로부터 클라이언트 인증서 수신시 EAP-TLS에 대한 완료 메시지를 상기 클라이언트 장치로 전송하고,
    상기 양자내성암호 프로세스 처리부는, 상기 양자내성암호화 요청 메시지에 대응하는 병렬 생성되는 양자내성암호 처리 쓰레드를 생성하여 할당하며, 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 양자내성암호화 요청 메시지에 포함된 양자내성암호 알고리즘 식별정보를 기초로 상기 클라이언트 장치로부터 요청된 상기 양자내성암호 알고리즘을 통해 서버 개인키 및 서버 공개키를 포함하는 키쌍을 생성하고 상기 키쌍 중 서버 공개키 및 미리 저장된 상기 서버 인증서를 포함하는 응답 메시지를 생성하여 상기 EAP-TLS 처리 모듈로 전송하고, 상기 키쌍 중 서버 개인키와 상기 양자내성암호화 요청 메시지에 포함된 클라이언트 공개키로 상기 마스터 세션 키를 생성하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  7. 청구항 6에 있어서,
    상기 식별자는 사용자 ID와, MAC 주소 및 상기 식별자에 대응하는 상기 클라이언트 장치의 명칭을 포함하는 확장된 식별자인 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  8. 청구항 4에 있어서,
    상기 EAP-TLS 처리 모듈에 대한 복수의 서로 다른 작업 상태가 사전 정의된 유한 상태 기계부(Finite State Machine)를 더 포함하고,
    상기 EAP-TLS 처리 모듈은 현재 작업 상태를 저장하고, 상기 유한 상태 기계부와 연동하여 상기 사전 정의된 복수의 서로 다른 작업 상태 중 현재 작업 상태 다음 순서에 해당하는 다음 작업 상태를 확인하여 상기 다음 작업 상태에 대응하는 작업을 수행하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  9. 청구항 4에 있어서,
    상기 양자내성암호 프로세스 처리부는, DILITHIUM 서명 알고리즘를 통해 상기 응답 메시지를 상기 서버 개인키로 전자서명한 후 상기 전자서명된 응답 메시지를 상기 EAP-TLS 처리 모듈에 전송하고,
    상기 EAP-TLS 처리 모듈은 상기 전자서명된 응답 메시지를 상기 클라이언트 장치에 전송하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  10. 청구항 1에 있어서,
    상기 양자내성암호 알고리즘은 CRYSTAL-KYBER 또는 NTRU인 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 장치.
  11. 양자내성암호를 이용한 인증을 위한 서비스 제공 방법에 있어서,
    서비스 제공 장치가, 상기 서비스 제공 장치에 접속한 클라이언트 장치로부터 RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지를 수신한 후 분석하여 인증 요청 정보를 작업 큐에 저장하는 단계;
    상기 서비스 제공 장치가, 상기 작업 큐에 저장된 인증 요청 정보에 대해 비동기 방식으로 병렬 할당되는 비동기 작업 쓰레드 모듈을 생성하여 할당하고, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치를 식별하는 단계;
    상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치에서 양자내성암호 알고리즘을 이용하여 생성한 제 1 키쌍에 포함된 클라이언트 공개키를 수신하면, 병렬 생성되는 양자내성암호 처리 쓰레드를 상기 클라이언트 공개키에 대응되도록 생성하여 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 클라이언트 장치로부터 요청된 상기 양자내성암호 알고리즘을 통해 제 2 키쌍을 생성하는 단계; 및
    상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 제 2 키쌍 중 서버 공개키를 포함하는 응답 메시지를 상기 클라이언트 장치로 전송하며, 상기 클라이언트 공개키와 상기 제 2 키쌍 중 서버 개인키를 이용하여 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 단계;
    를 포함하는 양자내성암호를 이용한 인증을 위한 서비스 제공 방법.
  12. 청구항 11에 있어서,
    상기 클라이언트 장치를 식별하는 단계는,
    상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 작업 큐에서 상기 인증 요청 정보 추출시 상기 인증 요청 정보에 대응하는 상기 클라이언트 장치로 식별자 요청을 위한 식별자 요청 정보를 전송하는 단계;
    상기 클라이언트 장치가 상기 식별자 요청 정보에 대한 응답으로 식별자를 상기 서비스 제공 장치에 전송하는 단계; 및
    상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치로부터 수신된 식별자를 기초로 상기 클라이언트 장치 식별시 상기 클라이언트 장치로 EAP-TLS 시작 메시지를 전송하는 단계;
    를 더 포함하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 방법.
  13. 청구항 12에 있어서,
    상기 식별자는 사용자 ID와, MAC 주소 및 상기 식별자에 대응하는 상기 클라이언트 장치의 명칭을 포함하는 확장된 식별자인 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 방법.
  14. 청구항 12에 있어서,
    상기 제 2 키쌍을 생성하는 단계는,
    상기 클라이언트 장치가, 상기 EAP-TLS 시작 메시지 수신시 미리 설정된 상기 양자내성암호 알고리즘을 이용하여 상기 제 1 키쌍을 생성한 후 상기 1 키쌍에 포함된 공개키인 상기 클라이언트 공개키를 포함하는 TLS 클라이언트 요청 메시지를 전송하는 단계;
    상기 서비스 제공 장치가, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치로부터 상기 TLS 클라이언트 요청 메시지 수신시 상기 TLS 클라이언트 요청 메시지로부터 상기 클라이언트 공개키를 추출하여 등록하고, 상기 클라이언트 공개키에 대응하는 상기 양자내성암호 처리 쓰레드를 생성하는 단계; 및
    상기 서비스 제공 장치가, 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 TLS 클라이언트 요청 메시지에 포함된 양자내성암호 알고리즘 식별정보를 기초로 식별된 상기 양자내성암호 알고리즘을 통해 상기 클라이언트 공개키에 대응하는 상기 제 2 키쌍을 생성하는 단계;
    를 더 포함하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 방법.
  15. 청구항 14에 있어서,
    상기 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 단계는,
    상기 서비스 제공 장치가, 상기 제 2 키쌍 중 서버 공개키와 미리 저장된 서버 인증서를 포함하는 응답 메시지를 상기 제 2 키쌍 중 서버 개인키로 전자서명한 후 상기 클라이언트 장치에 전송하며, 상기 제 2 키쌍에 포함된 서버 개인키 및 상기 클라이언트 공개키를 이용하여 서버용 마스터 세션 키를 생성하는 단계;
    상기 클라이언트 장치가, 상기 전자서명된 응답 메시지를 상기 서버 공개키로 검증하여 검증이 완료되면 상기 서버 공개키 및 상기 제 1 키쌍에 포함된 클라이언트 개인키를 이용하여 클라이언트용 마스터 세션 키를 생성하고, 미리 저장된 클라이언트 인증서를 포함하는 EAP-TLS 종료 메시지를 상기 클라이언트 개인키로 전자서명한 후 상기 서비스 제공 장치에 전송하는 단계; 및
    상기 서비스 제공 장치가, 상기 전자서명된 EAP-TLS 종료 메시지를 상기 식별자와 매칭하여 저장하고, 상기 전자서명된 EAP-TLS 종료 메시지를 상기 클라이언트 공개키로 검증하여 검증 완료시 상기 클라이언트 장치와의 통신에 상기 서버용 마스터 세션 키를 이용하는 단계;
    를 더 포함하는 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 방법.
  16. 청구항 11에 있어서,
    상기 양자내성암호 알고리즘은 CRYSTAL-KYBER 또는 NTRU인 것을 특징으로 하는 양자내성암호를 이용한 인증을 위한 서비스 제공 방법.
  17. RADIUS(remote authentication dial in user service) 프로토콜 기반의 메시지를 전송하고, 식별자 요청 수신시 미리 설정된 식별자를 전송하며, EAP-TLS 시작 메시지 수신시 미리 설정된 양자내성암호 알고리즘을 이용하여 제 1 키쌍을 생성한 후 상기 제 1 키쌍에 포함된 클라이언트 공개키를 전송하는 클라이언트 장치; 및
    상기 메시지를 수신한 후 분석하여 인증 요청 정보를 작업 큐에 저장하고, 상기 작업 큐에 저장된 인증 요청 정보에 대해 비동기 방식으로 병렬 할당되는 비동기 작업 쓰레드 모듈을 생성하여 할당하고, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치에 식별자를 요청하여 상기 클라이언트 장치로부터 수신된 식별자를 기초로 상기 클라이언트 장치가 식별되면 상기 EAP-TLS 시작 메시지를 상기 클라이언트 장치로 전송하며, 상기 비동기 작업 쓰레드 모듈을 통해 상기 클라이언트 장치로부터 상기 클라이언트 공개키를 포함하는 응답 메시지를 수신하면 병렬 생성되는 양자내성암호 처리 쓰레드를 상기 클라이언트 공개키에 대응되도록 생성하여 상기 양자내성암호 처리 쓰레드에 미리 설정되거나 상기 클라이언트 장치로부터 요청된 양자내성암호 알고리즘을 통해 제 2 키쌍을 생성한 후 상기 제 2 키쌍 중 서버 공개키를 상기 클라이언트 장치로 전송하고, 상기 클라이언트 공개키와 상기 제 2 키쌍 중 서버 개인키를 이용하여 마스터 세션 키를 생성한 후 상기 클라이언트 장치와의 통신에 이용하는 서비스 제공 장치
    를 포함하는 양자내성암호를 이용한 인증을 위한 서비스 제공 시스템.
KR1020230025307A 2023-02-24 2023-02-24 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템 KR102662935B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230025307A KR102662935B1 (ko) 2023-02-24 2023-02-24 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230025307A KR102662935B1 (ko) 2023-02-24 2023-02-24 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템

Publications (1)

Publication Number Publication Date
KR102662935B1 true KR102662935B1 (ko) 2024-05-07

Family

ID=91078021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230025307A KR102662935B1 (ko) 2023-02-24 2023-02-24 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템

Country Status (1)

Country Link
KR (1) KR102662935B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180094157A (ko) * 2017-02-13 2018-08-23 고려대학교 산학협력단 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법
KR20180104449A (ko) * 2017-03-13 2018-09-21 엔에이치엔엔터테인먼트 주식회사 메시지 큐를 이용한 처리 순서 보장 시스템 및 방법
US20190313246A1 (en) * 2018-04-06 2019-10-10 Iot And M2M Technologies, Llc Device default wifi credentials for simplified and secure configuration of networked transducers
KR20220012851A (ko) 2019-05-30 2022-02-04 김봉만 대칭 키 암호화/교환을 위한 양자 내성 암호화 및 진보된 암호화 및 키 교환(aeke) 방법
US20230014894A1 (en) * 2021-07-08 2023-01-19 Cisco Technology, Inc. Quantum resistant secure key distribution in various protocols and technologies

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180094157A (ko) * 2017-02-13 2018-08-23 고려대학교 산학협력단 안전한 프로세스 간 통신을 위한 프로세스 상호 인증 장치 및 방법
KR20180104449A (ko) * 2017-03-13 2018-09-21 엔에이치엔엔터테인먼트 주식회사 메시지 큐를 이용한 처리 순서 보장 시스템 및 방법
US20190313246A1 (en) * 2018-04-06 2019-10-10 Iot And M2M Technologies, Llc Device default wifi credentials for simplified and secure configuration of networked transducers
KR20220012851A (ko) 2019-05-30 2022-02-04 김봉만 대칭 키 암호화/교환을 위한 양자 내성 암호화 및 진보된 암호화 및 키 교환(aeke) 방법
US20230014894A1 (en) * 2021-07-08 2023-01-19 Cisco Technology, Inc. Quantum resistant secure key distribution in various protocols and technologies

Similar Documents

Publication Publication Date Title
US10601594B2 (en) End-to-end service layer authentication
US11272365B2 (en) Network authentication method, and related device and system
US10943005B2 (en) Secure authentication of devices for internet of things
US10827351B2 (en) Network authentication method, relay node, and related system
RU2696208C1 (ru) Способ и устройство для аутентификации беспроводных устройств
US12022010B2 (en) Reduced bandwidth handshake communication
US10158991B2 (en) Method and system for managing security keys for user and M2M devices in a wireless communication network environment
Shen et al. Secure key establishment for device-to-device communications
EP2634993B1 (en) Devices and methods for connecting client devices to a network
CN107005927B (zh) 用户设备ue的接入方法、设备及系统
US11582233B2 (en) Secure authentication of devices for Internet of Things
CN112514436B (zh) 发起器和响应器之间的安全的、被认证的通信
Urien et al. An innovative solution for cloud computing authentication: Grids of EAP-TLS smart cards
CN111970699B (zh) 一种基于ipk的终端wifi登录认证方法以及系统
US20220353060A1 (en) Handling of machine-to-machine secure sessions
WO2021109753A1 (zh) 一种应用于极简网络的机卡验证方法和相关设备
US20180069836A1 (en) Tiered attestation for resource-limited devices
US20200389788A1 (en) Session Key Establishment
US11316670B2 (en) Secure communications using network access identity
CN111031540A (zh) 一种无线网络连接方法及计算机存储介质
CN116368833A (zh) 针对边缘计算服务的安全连接的建立和认证的方法和系统
CN108259157B (zh) 一种ike协商中身份认证的方法及网络设备
Pesavento et al. PION: Password-based IoT onboarding over named data networking
US20180287798A1 (en) Key exchange and mutual authentication in low performance devices
KR102662935B1 (ko) 양자내성암호를 이용한 인증을 위한 서비스 제공 장치 및 방법, 그리고 이를 위한 서비스 제공 시스템

Legal Events

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