KR20220064567A - Apparatus and method for constructing virtual private network based on quantum random number - Google Patents

Apparatus and method for constructing virtual private network based on quantum random number Download PDF

Info

Publication number
KR20220064567A
KR20220064567A KR1020200150769A KR20200150769A KR20220064567A KR 20220064567 A KR20220064567 A KR 20220064567A KR 1020200150769 A KR1020200150769 A KR 1020200150769A KR 20200150769 A KR20200150769 A KR 20200150769A KR 20220064567 A KR20220064567 A KR 20220064567A
Authority
KR
South Korea
Prior art keywords
vpn
session
random number
quantum random
client
Prior art date
Application number
KR1020200150769A
Other languages
Korean (ko)
Other versions
KR102558457B1 (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 KR1020200150769A priority Critical patent/KR102558457B1/en
Publication of KR20220064567A publication Critical patent/KR20220064567A/en
Application granted granted Critical
Publication of KR102558457B1 publication Critical patent/KR102558457B1/en

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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Abstract

Disclosed are a device and a method for constructing a virtual private network (VPN) based on a quantum random number, which cannot be inferred. According to an embodiment of the present invention, the VPN device for constructing a VPN by communicating with a VPN client, comprises: a quantum random number generator for generating a quantum random number; and a session management unit for exchanging a pseudorandom number with a VPN client to generate a first session key, establishing a first VPN session, transmitting a first quantum random number generated by the quantum random number generator to the first client, and generating a second session key on the basis of the first quantum random number to establish a second VPN session.

Description

양자 난수 기반의 가상 사설망을 구축하기 위한 장치 및 방법{Apparatus and method for constructing virtual private network based on quantum random number}Apparatus and method for constructing virtual private network based on quantum random number}

본 발명은 가상 사설망(VPN:Virtual Private Network) 기술에 관한 것으로, 보다 구체적으로 양자 난수 기반의 가상 사설망을 구축하기 위한 장치 및 방법에 관한 것이다.The present invention relates to a virtual private network (VPN) technology, and more particularly, to an apparatus and method for constructing a virtual private network based on quantum random numbers.

가상 사설망(VPN:Virtual Private Network)은 두개의 서로 다른 네트워크에 속하는 호스트가 서로 통신이 가능하도록 가상으로 묶어 제공되는 네트워크이다. 가상 사설망 구축시 VPN 서버와 VPN 클라이언트는 SSL 핸드쉐이크(handshake) 과정을 통해 인증 절차를 진행하고 데이터를 암호화 및 복호화하기 위한 세션 키를 생성한다. VPN 서버와 VPN 클라이언트는 각각 대킹 키인 세션 키를 생성하기 위해 Hello 메시지를 통해 난수를 서로 교환한다. A virtual private network (VPN) is a network in which hosts belonging to two different networks are virtually bundled so that they can communicate with each other. When establishing a virtual private network, a VPN server and a VPN client perform an authentication procedure through an SSL handshake process and generate a session key for encrypting and decrypting data. The VPN server and VPN client exchange random numbers with each other through Hello messages to generate a session key, which is a proxy key, respectively.

상기 세션 키를 생성하기 위한 난수는 유사 난수이다. 유사 난수는 말그대로 컴퓨터가 난수처럼 보이게끔 유사하게 만든 수이다. 완전한 난수가 아니라 소정의 수식을 통해 컴퓨터가 생성한 수이기 때문에 확률은 낮지만 일정한 주기성과 패턴을 가지고 수가 생성되어 어느 정도 유사 난수의 생성 패턴이 파악된다면 앞으로 생성될 난수의 예측도 가능해진다. 즉, VPN 서버와 VPN 클라이언트가 각각 생성하는 유사 난수를 유추하고 이를 이용하여 세션 키를 생성하는 것이 가능하므로, 유사 난수는 보안상 활용하기에 다소 위험도가 높다. 또한, VPN 서버와 VPN 클라이언트가 SSL 핸드쉐이크 과정에서 난수를 교환하기 위해 생성하는 Hello 메시지는 암호화되지 않는다. 따라서, Hello 메시지를 통해 난수가 해킹되어 세션 키가 노출될 수 있다. The random number for generating the session key is a pseudo-random number. A pseudorandom number is literally a number that a computer makes similar to look like a random number. Since it is not a completely random number, but a number generated by a computer through a predetermined formula, the probability is low, but the number is generated with a certain periodicity and pattern. In other words, since it is possible to infer the pseudo-random number generated by the VPN server and the VPN client and use it to generate a session key, the pseudo-random number is somewhat risky to use for security. Also, the Hello message generated by the VPN server and VPN client to exchange random numbers during the SSL handshake is not encrypted. Therefore, the session key may be exposed by hacking the random number through the Hello message.

난수 예측 또는 유출에 의해 세션 키가 노출될 경우, 기존 VPN 세션을 보호하기 위한 2차적인 백업 및 방어 수단이 없다. 보통은 세션 키가 노출되면 VPN 세션을 끊어 재연결을 통해 새로 생성된 난수를 가지고 새로운 세션 키를 생성하면 되겠지만 결국 네트워크 연결이 끊어지고 재연결되는 것이기 때문에 네트워크 신뢰성에 문제점이 발생하게 되고, 통신사 입장에서는 고객에게 최고의 네트워크 서비스를 제공해주는데 지장이 발생할 수 밖에 없다. If the session key is exposed by random number prediction or leakage, there is no secondary backup and defense measures to protect the existing VPN session. Normally, if the session key is exposed, you can break the VPN session and generate a new session key with a newly generated random number through reconnection. in providing the best network service to customers inevitably causes difficulties.

본 발명은, 유추가 불가능한 양자 난수 기반으로 가상 사설망(VPN)을 구축하기 위한 장치 및 방법을 제공하는데 목적이 있다. An object of the present invention is to provide an apparatus and method for establishing a virtual private network (VPN) based on quantum random numbers that cannot be inferred.

또한, 본 발명은, 가상 사설망 환경에서 양자 난수 기반으로 미인증 VPN 클라이언트를 관제하기 위한 장치 및 방법을 제공하는데 다른 목적이 있다.Another object of the present invention is to provide an apparatus and method for controlling an unauthenticated VPN client based on a quantum random number in a virtual private network environment.

일 실시예에 따른 VPN(Virtual Private Network) 클라이언트와 통신하여 가상 사설망을 구축하기 위한 VPN 장치는, 양자 난수를 생성하는 양자 난수 생성기; 및 상기 VPN 클라이언트와 유사 난수를 교환하여 1차 세션 키를 생성하고 1차 VPN 세션을 수립하며, 상기 양자 난수 생성기에서 생성된 제1 양자 난수를 상기 VPN 클라이언트로 전송하고 상기 제1 양자 난수를 기초로 2차 세션 키를 생성하여 2차 VPN 세션을 수립하는 세션 관리부를 포함한다.A VPN device for establishing a virtual private network by communicating with a VPN (Virtual Private Network) client according to an embodiment includes: a quantum random number generator for generating a quantum random number; and exchanging pseudorandom numbers with the VPN client to generate a first session key and establish a first VPN session, transmit the first quantum random number generated by the quantum random number generator to the VPN client, and based on the first quantum random number and a session manager for establishing a secondary VPN session by generating a secondary session key with

상기 세션 관리부는, 상기 제1 양자 난수를 포함하는 양자 난수 교환 메시지를 생성하고 상기 양자 난수 교환 메시지를 상기 1차 세션 키로 암호화하여 상기 VPN 클라이언트로 전송할 수 있다.The session manager may generate a quantum random number exchange message including the first quantum random number, encrypt the quantum random number exchange message with the primary session key, and transmit it to the VPN client.

상기 세션 관리부는, 상기 VPN 클라이언트로부터, 상기 2차 VPN 세션에 대한 세션 식별정보 및 IP 주소를 포함하고 상기 2차 세션 키로 암호화된 양자 난수 교환 완료 메시지를 수신하며, 상기 암호화된 양자 난수 교환 완료 메시지를 상기 2차 세션 키로 복호화할 수 있다.The session manager receives, from the VPN client, a quantum random number exchange completion message including session identification information and an IP address for the secondary VPN session and encrypted with the secondary session key, the encrypted quantum random number exchange completion message can be decrypted with the secondary session key.

상기 세션 관리부는, 물리적 네트워크 인터페이스 카드(NIC: Network Interface Card)를 기반으로 제1 가상 NIC를 생성한 후, 제1 가상 NIC를 기반으로 상기 1차 VPN 세션을 수립하고, 상기 제1 가상 NIC를 기반으로 제2 가상 NIC를 생성한 후 상기 제2 가상 NIC를 기반으로 상기 2차 VPN 세션을 수립할 수 있다.The session manager, after creating a first virtual NIC based on a physical network interface card (NIC), establishes the first VPN session based on the first virtual NIC, and configures the first virtual NIC After creating a second virtual NIC based on the second virtual NIC, the second VPN session may be established based on the second virtual NIC.

상기 VPN 장치는, 인증 기관으로부터 인증 기관 개인키를 발급받아 저장하는 인증서 관리부;를 더 포함하고, 상기 세션 관리부는, 상기 양자 난수 생성기에서 생성된 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하고, 상기 VPN 클라이언트로부터 상기 제2 양자 난수의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료할 수 있다.The VPN device further includes a certificate manager for receiving and storing the certificate authority private key from a certificate authority, wherein the session manager encrypts the second quantum random number generated by the quantum random number generator with the certificate authority private key It is transmitted to the VPN client, and the VPN session with the VPN client may be forcibly terminated depending on whether the second quantum random number is received from the VPN client.

상기 세션 관리부는, 상기 VPN 클라이언트로부터 주기적으로 수신되는 세션 상태 정보에 기초하여 상기 VPN 클라이언트가 데이터를 전송하지 않고 비활성 상태인 것으로 판단되는 경우, 상기 제2 양자 난수를 상기 VPN 클라이언트로 전송할 수 있다.The session manager may transmit the second quantum random number to the VPN client when it is determined that the VPN client is in an inactive state without transmitting data based on the session state information periodically received from the VPN client.

상기 세션 관리부는, 상기 제2 양자 난수를 해쉬 알고리즘에 적용하여 특정 사이즈의 축소된 메시지를 생성하고, 상기 축소된 메시지를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송할 수 있다.The session manager may generate a reduced message of a specific size by applying the second quantum random number to a hash algorithm, encrypt the reduced message with the authentication authority private key, and transmit it to the VPN client.

상기 세션 관리부는, 상기 VPN 클라이언트로부터 상기 축소된 메시지와 동일한 메시지의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료할 수 있다.The session manager may forcibly terminate the VPN session with the VPN client according to whether the same message as the reduced message is received from the VPN client.

일 실시예에 따른 VPN(Virtual Private Network) 서버가 VPN 클라이언트와 통신하여 가상 사설망을 구축하는 방법은, 상기 VPN 클라이언트와 유사 난수를 교환하여 1차 세션 키를 생성하고 1차 VPN 세션을 수립하는 단계; 및 양자 난수 생성기에서 생성된 제1 양자 난수를 상기 VPN 클라이언트로 전송하고 상기 제1 양자 난수를 기초로 2차 세션 키를 생성하여 2차 VPN 세션을 수립하는 단계를 포함한다.According to an embodiment, a method in which a virtual private network (VPN) server communicates with a VPN client to establish a virtual private network includes the steps of exchanging a pseudorandom number with the VPN client to generate a primary session key and establishing a primary VPN session ; and transmitting the first quantum random number generated by the quantum random number generator to the VPN client and generating a secondary session key based on the first quantum random number to establish a secondary VPN session.

상기 2차 VPN 세션을 수립하는 단계는, 상기 제1 양자 난수를 포함하는 양자 난수 교환 메시지를 생성하고 상기 양자 난수 교환 메시지를 상기 1차 세션 키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계를 포함할 수 있다.The establishing of the secondary VPN session may include generating a quantum random number exchange message including the first quantum random number, encrypting the quantum random number exchange message with the primary session key, and transmitting the message to the VPN client. there is.

상기 방법은, 상기 VPN 클라이언트로부터, 상기 2차 VPN 세션에 대한 세션 식별정보 및 IP 주소를 포함하고 상기 2차 세션 키로 암호화된 양자 난수 교환 완료 메시지를 수신하며, 상기 암호화된 양자 난수 교환 완료 메시지를 상기 2차 세션 키로 복호화하는 단계를 더 포함할 수 있다.The method includes receiving, from the VPN client, a quantum random number exchange completion message including session identification information and IP address for the secondary VPN session and encrypted with the secondary session key, and receiving the encrypted quantum random number exchange completion message The method may further include decrypting with the secondary session key.

상기 1차 VPN 세션을 수립하는 단계는, 물리적 네트워크 인터페이스 카드(NIC: Network Interface Card)를 기반으로 제1 가상 NIC를 생성하고, 상기 제1 가상 NIC를 기반으로 상기 1차 VPN 세션을 수립하며, 상기 2차 VPN 세션을 수립하는 단계는, 상기 제1 가상 NIC를 기반으로 제2 가상 NIC를 생성하고, 상기 제2 가상 NIC를 기반으로 상기 2차 VPN 세션을 수립할 수 있다.The step of establishing the first VPN session includes creating a first virtual NIC based on a physical network interface card (NIC), and establishing the first VPN session based on the first virtual NIC; The establishing of the secondary VPN session may include creating a second virtual NIC based on the first virtual NIC and establishing the secondary VPN session based on the second virtual NIC.

상기 방법은, 인증 기관으로부터 인증 기관 개인키를 발급받아 저장하는 단계; 상기 양자 난수 생성기에서 생성된 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계; 및 상기 VPN 클라이언트로부터 상기 제2 양자 난수의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료하는 단계를 더 포함할 수 있다.The method includes the steps of receiving and storing a certificate authority private key issued from a certificate authority; encrypting the second quantum random number generated by the quantum random number generator with the certificate authority private key and transmitting the encrypted second quantum random number to the VPN client; and forcibly terminating the VPN session with the VPN client according to whether the second quantum random number is received from the VPN client.

상기 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계는, 상기 VPN 클라이언트로부터 주기적으로 수신되는 세션 상태 정보에 기초하여 상기 VPN 클라이언트가 데이터를 전송하지 않고 비활성 상태인 것으로 판단되는 경우, 상기 제2 양자 난수를 상기 VPN 클라이언트로 전송할 수 있다.In the step of encrypting the second quantum random number with the certificate authority private key and transmitting it to the VPN client, it is determined that the VPN client is in an inactive state without transmitting data based on session state information periodically received from the VPN client In this case, the second quantum random number may be transmitted to the VPN client.

상기 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계는, 상기 제2 양자 난수를 해쉬 알고리즘에 적용하여 특정 사이즈의 축소된 메시지를 생성하고, 상기 축소된 메시지를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송할 수 있다.The step of encrypting the second quantum random number with the authentication authority private key and transmitting it to the VPN client includes generating a reduced message of a specific size by applying the second quantum random number to a hash algorithm, and authenticating the reduced message. It can be transmitted to the VPN client by encrypting it with an institution private key.

상기 강제 종료하는 단계는, 상기 VPN 클라이언트로부터 상기 축소된 메시지와 동일한 메시지의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료할 수 있다.In the forced termination, the VPN session with the VPN client may be forcibly terminated depending on whether a message identical to the reduced message is received from the VPN client.

일 실시예에 따른 VPN(Virtual Private Network) 서버와 통신하여 가상 사설망을 구축하기 위한 VPN 장치는, 상기 VPN 서버와 통신하는 통신부; 프로세서; 및 상기 프로세서에 의해 실행 가능한 명령어를 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 VPN 서버와 유사 난수를 교환하여 1차 세션 키를 생성하고 1차 VPN 세션을 수립하며, 상기 VPN 서버로부터 수신되는 제1 양자 난수를 기초로 2차 세션 키를 생성하여 2차 VPN 세션을 수립할 수 있다.A VPN device for establishing a virtual private network by communicating with a VPN (Virtual Private Network) server according to an embodiment includes: a communication unit communicating with the VPN server; processor; and a memory for storing instructions executable by the processor, wherein the processor exchanges a pseudorandom number with the VPN server to generate a primary session key and establish a primary VPN session, which is received from the VPN server A secondary VPN session may be established by generating a secondary session key based on the first quantum random number.

본 발명은, 유추가 불가능한 양자 난수 기반으로 가상 사설망(VPN)을 구축함으로써 가상 사설망의 보안성을 향상시킬 수 있다.According to the present invention, the security of a virtual private network can be improved by constructing a virtual private network (VPN) based on a quantum random number that cannot be inferred.

본 발명은, 가상 사설망 환경에서 양자 난수 기반으로 미인증 VPN 클라이언트를 탐지함으로써 가상 사설망의 보안성을 향상시킬 수 있다. The present invention can improve the security of a virtual private network by detecting an unauthenticated VPN client based on a quantum random number in a virtual private network environment.

본 발명은, 종래의 SSL 프로토콜의 수정 없이 이중 VPN 터널링을 구축함으로써 저비용으로 보안성을 향상시키면서 SDN(Software Defined Network) 기반 네트워크 환경이라면 어디든 적용할 수 있어 높은 호환성을 확보할 수 있다.The present invention can be applied to any SDN (Software Defined Network)-based network environment while improving security at low cost by establishing double VPN tunneling without modification of the conventional SSL protocol, thereby ensuring high compatibility.

도 1은 본 발명의 일 실시예에 따른 VPN 환경을 나타낸 도면이다.
도 2는 종래의 VPN 세션의 이중화 구조를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 VPN 세션의 이중화 구조를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 VPN 서버의 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 VPN 서버에서 VPN 클라이언트의 VPN 세션을 관제하는 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 VPN 서버와 VPN 클라이언트의 세션 수립 방법을 설명하는 흐름도이다.
1 is a diagram illustrating a VPN environment according to an embodiment of the present invention.
2 is a diagram showing a duplex structure of a conventional VPN session.
3 is a diagram illustrating a redundant structure of a VPN session according to an embodiment of the present invention.
4 is a diagram showing the configuration of a VPN server according to an embodiment of the present invention.
5 is a flowchart illustrating a method for controlling a VPN session of a VPN client in a VPN server according to an embodiment of the present invention.
6 is a flowchart illustrating a method for establishing a session between a VPN server and a VPN client according to an embodiment of the present invention.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above-described objects, features, and advantages will become more apparent through the following detailed description in relation to the accompanying drawings, whereby those of ordinary skill in the art to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in the description of the present invention, if it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 VPN 환경을 나타낸 도면이다. 도 1을 참조하면, 본 실시예에 따른 VPN 환경은 하나의 VPN 서버(110)에 적어도 하나의 VPN 클라이언트(120)가 연결된 1 대 N(N은 자연수) 구조이다. VPN 클라이언트(120)는 예를 들어 퍼스널 컴퓨터나, 태블릿 PC, 스마트폰 등과 같은 통신이 가능한 전자 기기이다. 1 is a diagram illustrating a VPN environment according to an embodiment of the present invention. Referring to FIG. 1 , the VPN environment according to the present embodiment has a one-to-N (N is a natural number) structure in which at least one VPN client 120 is connected to one VPN server 110 . The VPN client 120 is, for example, an electronic device capable of communication, such as a personal computer, a tablet PC, or a smart phone.

VPN 서버(110)와 VPN 클라이언트(120)는, 네트워크를 통해 서로 통신하고, SSL 핸드쉐이크(handshake) 과정을 통해 인증 절차를 진행하며, 데이터를 암호화 및 복호화하기 위한 대킹 키인 세션 키를 생성하고, 상호 간의 VPN 세션을 생성한다. 바람직하게는, VPN 서버(110)와 VPN 클라이언트(120)는, 이중화 VPN 세션을 생성한다. VPN 서버(110)와 VPN 클라이언트(120)는, 상호 간에 유사 난수를 공유하여 1차 VPN 세션을 생성하고, 이후 VPN 서버(110)는, 양자 난수를 생성하여 VPN 클라이언트(120)로 전송하여 2차 VPN 세션을 생성한다. The VPN server 110 and the VPN client 120 communicate with each other through a network, perform an authentication procedure through an SSL handshake process, and generate a session key that is a proxy key for encrypting and decrypting data, Create a mutual VPN session. Preferably, the VPN server 110 and the VPN client 120 create a redundant VPN session. The VPN server 110 and the VPN client 120 create a first VPN session by sharing a pseudo random number with each other, and then the VPN server 110 generates a quantum random number and transmits it to the VPN client 120 for 2 Create a primary VPN session.

VPN 서버(110)와 VPN 클라이언트(120)는, 서로 VPN으로 연결하기 위한 신뢰성 판단을 위해, 인증 기관(CA, Certificate authority)으로부터 인증서 및 개인키를 발급받아 저장할 수 있다. 구체적으로, VPN 서버(110)는 인증 기관으로부터 VPN 서버 인증서와 VPN 서버 개인키, 그리고 인증 기관 인증서를 발급받아 저장하고, VPN 클라이언트(120)는 인증 기관으로부터 VPN 클라이언트 인증서와 VPN 클라이언트 개인키 그리고 인증 기관 인증서를 발급받아 저장한다. The VPN server 110 and the VPN client 120 may receive and store a certificate and a private key from a Certificate Authority (CA) to determine reliability for connecting to each other through a VPN. Specifically, the VPN server 110 receives and stores a VPN server certificate, a VPN server private key, and a certification authority certificate from a certification authority, and the VPN client 120 receives a VPN client certificate, a VPN client private key, and authentication from a certification authority. Receive and store the agency certificate.

여기서 VPN 서버 인증서에는 VPN 서버 공개키가 포함되고, VPN 클라이언트 인증서에는 VPN 클라이언트 공개키가 포함되며, 인증 기관 인증서에는 인증 기관 공개키가 포함된다. VPN 서버 인증서와 VPN 클라이언트 인증서는, 인증 기관 개인키로 암호화되어 있기 때문에, 인증 기관 인증서에 포함된 인증 기관 공개키로만 복호화가 가능하다.Here, the VPN server certificate includes the VPN server public key, the VPN client certificate includes the VPN client public key, and the certification authority certificate includes the certification authority public key. Since the VPN server certificate and VPN client certificate are encrypted with the CA private key, decryption is possible only with the CA public key included in the CA certificate.

VPN 서버(110)는, VPN 클라이언트(120)에게 자신이 신뢰할 수 있는 서버임을 알려주기 위해, 자신의 인증서, 즉 VPN 서버 인증서를 VPN 클라이언트(120)로 전송한다. VPN 서버(110)가 인증 기관으로부터 인증받은 호스트라면, VPN 클라이언트(120)는 자신이 가지고 있는 인증 기관 인증서에 포함된 인증 기관 공개키로 VPN 서버 인증서를 복호화하여 VPN 서버 공개키를 획득할 수 있다. VPN 클라이언트(120)도, VPN 클라이언트 인증서를 VPN 서버(110)로 전송하고, VPN 클라이언트(120)가 인증 기관으로부터 인증받은 호스트라면, VPN 서버(110)는 자신이 가지고 있는 인증 기관 인증서에 포함된 인증 기관 공개키로 VPN 클라이언트 인증서를 복호화하여 VPN 클라이언트 공개키를 획득할 수 있다.The VPN server 110 transmits its own certificate, that is, the VPN server certificate, to the VPN client 120 in order to inform the VPN client 120 that it is a trusted server. If the VPN server 110 is a host authenticated by a certification authority, the VPN client 120 may obtain the VPN server public key by decrypting the VPN server certificate with the certification authority public key included in the certification authority certificate it owns. The VPN client 120 also transmits the VPN client certificate to the VPN server 110, and if the VPN client 120 is a host certified by a certification authority, the VPN server 110 includes The VPN client public key can be obtained by decrypting the VPN client certificate with the public key of the certification authority.

VPN 서버(110)와 VPN 클라이언트(120)는, 상대에게 메시지나 데이터를 전송할 때, 메시지 또는 데이터를 상대의 공개키로 암호화하여 전송하고, 상대는 자신의 개인키로 암호화된 메시지 또는 데이터를 복호화할 수 있다. 예를 들어, SSL 핸드쉐이크 과정에서 VPN 클라이언트(120)는, 유사 난수를 VPN 서버 공개키로 암호화하여 VPN 서버(110)로 전송하거나, 또는 유사 난수를 이용하여 생성되는 pre-master-secret 값을 생성한 후 VPN 서버 공개키로 암호화하여 VPN 서버(110)로 전송할 수 있고, VPN 서버(110)는 자신의 개인키로 암호화된 난수 또는 pre-master-secret 값을 복호화할 수 있다.When the VPN server 110 and the VPN client 120 transmit a message or data to the other party, the message or data is encrypted with the public key of the other party and transmitted, and the other party can decrypt the message or data encrypted with its own private key. there is. For example, during the SSL handshake process, the VPN client 120 encrypts the pseudo-random number with the VPN server public key and transmits it to the VPN server 110, or generates a pre-master-secret value generated using the pseudo-random number. After encryption, it can be transmitted to the VPN server 110 by encrypting it with the VPN server public key, and the VPN server 110 can decrypt a random number or pre-master-secret value encrypted with its private key.

VPN 서버(110)는, VPN 클라이언트(120)와 VPN 세션 수립 후, VPN 세션을 관제하여 VPN 클라이언트(120)가 미인증 단말인지를 체크할 수 있다. 이를 위해 VPN 서버(110)는, 인증 기관 개인키를 저장하고, VPN 클라이언트(120)와 VPN 세션 수립 후, 일정한 주기로 VPN 클라이언트(120)의 세션 상태 정보를 수집한다. VPN 서버(110)는, 세션 상태 정보를 기초로 VPN 클라이언트(120)가 데이터를 전송하지 않고 비활성 상태(Active Off)인지 확인하고, VPN 클라이언트(120)가 데이터를 전송하지 않고 비활성 상태인 경우, 양자 난수를 이용하여 해당 VPN 클라이언트(120)가 미인증 단말인지 확인한다. After establishing a VPN session with the VPN client 120 , the VPN server 110 may control the VPN session to check whether the VPN client 120 is an unauthenticated terminal. To this end, the VPN server 110 stores the certificate authority private key, and after establishing a VPN session with the VPN client 120 , collects session state information of the VPN client 120 at regular intervals. The VPN server 110 checks whether the VPN client 120 is in an inactive state (Active Off) without transmitting data based on the session state information, and when the VPN client 120 is in an inactive state without transmitting data, It is checked whether the VPN client 120 is an unauthenticated terminal using a quantum random number.

구체적으로, VPN 서버(110)는, 양자 난수를 해쉬 알고리즘에 적용하여 특정 사이즈의 축소된 메시지를 생성하고, 축소된 메시지를 인증 기관 개인키로 암호화하여 비활성화된 VPN 세션이 아닌 TCP 세션을 통해 VPN 클라이언트(120)로 전송한다. 인증 기관 개인키로 암호화된 데이터는 인증 기관 공개키로만 복호화 가능하기 때문에, 만약 VPN 클라이언트(120)가 미인증 단말이라면, 인증 기관 공개키를 가지고 있지 않아, 상기 TCP 세션을 통해 VPN 서버(110)로부터 수신되는 암호화된 메시지를 복호화할 수 없고, 인증 단말이라면 인증 기관 공개키를 가지고 있으므로 상기 암호화된 메시지를 복호화할 수 있다.Specifically, the VPN server 110 applies a quantum random number to a hash algorithm to generate a reduced message of a specific size, and encrypts the reduced message with a certificate authority private key to enable a VPN client through a TCP session rather than an inactive VPN session. (120). Since data encrypted with the certification authority private key can only be decrypted with the certification authority public key, if the VPN client 120 is an unauthenticated terminal, it does not have the certification authority public key, so it is transmitted from the VPN server 110 through the TCP session. The received encrypted message cannot be decrypted, and since the authentication terminal has the public key of the certification authority, the encrypted message can be decrypted.

VPN 클라이언트(120)가 인증 단말이라면, VPN 클라이언트(120)는, VPN 서버(110)로 인증 단말임을 알리기 위해, 상기 암호화된 메시지를 복호화하여 상기 축소된 메시지를 추출하고, 그 추출한 축소된 메시지를 자신의 개인키로 암호화하여 VPN 서버(110)로 전송한다. VPN 서버(110)는, VPN 클라이언트 공개키를 보유하고 있으므로, VPN 클라이언트(120)로부터 수신되는 암호화된 상기 축소된 메시지를 복호화하여, 자신이 생성했던 축소된 메시지와 비교하여 일치하는지 확인한다. 양자 난수는 추정이 불가능한 고유값이기 때문에, VPN 클라이언트(120)가 미인증 단말이라면, 상기 축소된 메시지는 일치하지 않게 된다. VPN 클라이언트(120)가 인증 단말이라면, VPN 서버(110)에서 생성된 축소된 메시지와 VPN 클라이언트(120)로부터 수신된 축소된 메시지는 동일하고, 따라서 VPN 서버(110)는 VPN 클라이언트(120)가 인증 단말임을 알 수 있게 된다. If the VPN client 120 is an authentication terminal, in order to inform the VPN server 110 that it is an authentication terminal, the VPN client 120 decrypts the encrypted message to extract the reduced message, and the extracted reduced message It is encrypted with its own private key and transmitted to the VPN server 110 . Since the VPN server 110 holds the VPN client public key, it decrypts the encrypted reduced message received from the VPN client 120 and compares it with the reduced message it has generated to confirm whether it matches. Since the quantum random number is an eigenvalue that cannot be estimated, if the VPN client 120 is an unauthenticated terminal, the reduced message does not match. If the VPN client 120 is an authentication terminal, the reduced message generated by the VPN server 110 and the reduced message received from the VPN client 120 are the same, so the VPN server 110 is the VPN client 120 It can be recognized that it is an authentication terminal.

일 실시예에서, VPN 서버(110)는, VPN 클라이언트(120)와 VPN 세션을 이중으로 생성할 수 있다. 즉, VPN 서버(110)는, 하나의 물리 네트워크 인터페이스 카드(NIC, Network Interface Card) 기반으로 제1 가상 NIC를 먼저 생성하여 VPN 클라이언트(120)와 1차 VPN 세션을 수립한 후, 상기 제1 가상 NIC를 기반으로 또 다른 제2 가상 NIC를 생성하여 VPN 클라이언트(120)와 2차 VPN 세션을 수립한다. 논리적으로 1차 VPN 세션을 2차 VPN 세션으로 한번 더 감싸는 형태로 이해될 수 있고, 최종적으로 이중화된 VPN 세션은 하나의 세션 ID가 부여되어 일괄 관리된다. In one embodiment, the VPN server 110 may create a VPN session with the VPN client 120 dually. That is, the VPN server 110 first creates a first virtual NIC based on a single physical network interface card (NIC), establishes a first VPN session with the VPN client 120, and then Another second virtual NIC is created based on the virtual NIC to establish a second VPN session with the VPN client 120 . Logically, it can be understood as a form of wrapping the primary VPN session with a secondary VPN session once more, and finally, a duplicated VPN session is assigned a single session ID and collectively managed.

종래의 VPN 세션 이중화는 하나의 물리 NIC를 기반으로 서로 독립적인 두 개의 가상 NIC를 각각 생성하여 각 가상 NIC별로 VPN 세션을 수립하는 방식으로서 VPN 서버(110)와 VPN 클라이언트(120)는 모두 동시에 2개의 세션을 유지해야 하므로 리소스 소모가 크고 VPN 서버(110) 입장에서 VPN 클라이언트(120)마다 관제해야 하는 세션의 수가 2개가 되어 VPN 클라이언트(120)의 수의 2배만큼의 관제 데이터(예, 가상 NIC의 IP 주소, 세션 ID, 활성화 정보 등)가 수집 및 관리된다. 그러나 본 실시예에서는 하나의 물리 NIC 기반으로 제1 가상 NIC를 생성한 후 제1 가상 NIC를 기반으로 제2 가상 NIC를 생성하는 방식으로서 최종적으로 이중화된 VPN 세션은 하나의 세션 ID가 부여되어 일괄 관리되기 때문에 소모되는 리소스는 하나의 세션을 관리할 때와 동일하다. The conventional VPN session duplication is a method of establishing a VPN session for each virtual NIC by creating two virtual NICs independent of each other based on one physical NIC. Since the number of sessions must be maintained, resource consumption is high and the number of sessions to be controlled for each VPN client 120 from the VPN server 110 standpoint becomes two, so that twice as much control data as the number of VPN clients 120 (e.g., virtual NIC's IP address, session ID, activation information, etc.) are collected and managed. However, in this embodiment, a first virtual NIC is created based on one physical NIC and then a second virtual NIC is created based on the first virtual NIC. Finally, a duplicated VPN session is given a single session ID and batch Because it is managed, the resource consumed is the same as when managing one session.

도 2는 종래의 VPN 세션의 이중화 구조를 나타낸 도면이고, 도 3은 본 발명의 일 실시예에 따른 VPN 세션의 이중화 구조를 나타낸 도면이다. 도 2를 참조하면, 종래의 VPN 세션 이중화에서 VPN 서버(210)와 VPN 클라이언트(220)는 하나의 물리 NIC(211, 221)를 기반으로 서로 독립적인 두 개의 가상 NIC(212a, 212b, 222a, 222b)를 각각 생성하여 각 가상 NIC(212a와 222a, 212b와 222b)별로 VPN 세션을 수립하고, 각 세션마다 세션 ID(a0001, a0002)를 부여한다. 반면, 도 3을 참조하면, 본 실시예에 따른 VPN 세션 이중화에서, VPN 서버(110)와 VPN 클라이언트(120)는, 하나의 물리 NIC(111, 121) 기반으로 제1 가상 NIC(112a, 122a)를 생성한 후 제1 가상 NIC(112a, 122a)를 기반으로 제2 가상 NIC(112b, 122b)를 생성한다. 따라서, 최종적으로 이중화된 VPN 세션은 하나의 세션 ID(예, b0001)가 부여되어 일괄 관리되기 때문에 소모되는 리소스는 하나의 세션을 관리할 때와 동일하다. FIG. 2 is a diagram illustrating a conventional duplication structure of a VPN session, and FIG. 3 is a view showing a duplication structure of a VPN session according to an embodiment of the present invention. 2, in the conventional VPN session duplication, the VPN server 210 and the VPN client 220 are two virtual NICs (212a, 212b, 222a) independent of each other based on one physical NIC (211, 221). 222b) is created, VPN sessions are established for each virtual NIC 212a and 222a, 212b and 222b are established, and session IDs a0001 and a0002 are assigned to each session. On the other hand, referring to FIG. 3 , in the VPN session duplication according to the present embodiment, the VPN server 110 and the VPN client 120 are first virtual NICs 112a and 122a based on one physical NIC 111 and 121 . ) and then create second virtual NICs 112b and 122b based on the first virtual NICs 112a and 122a. Therefore, finally, since one session ID (eg, b0001) is assigned to a duplicated VPN session and collectively managed, the resource consumed is the same as when managing one session.

VPN 서버(110)는, VPN 클라이언트(120)와 2차 VPN 세션을 수립하기 위해, 양자 난수를 생성한 후 양자 난수를 포함하는 양자 난수 교환 메시지를 생성하고, 1차 VPN 세션 수립시 생성된 1차 세션 키로 상기 양자 난수 교환 메시지를 암호화하여 VPN 클라이언트(120)로 전송한다. 따라서 VPN 클라이언트(120)는 기 보유하고 있는 1차 세션 키로 상기 양자 난수 교환 메시지를 복호화하여 양자 난수를 추출할 수 있다. 이에 따라 VPN 서버(110)와 VPN 클라이언트(120)는 동일한 양자 난수를 공유하게 되고, VPN 서버(110)와 VPN 클라이언트(120)는 양자 난수를 이용하여 2차 세션 키를 생성한다. 그리고 VPN 서버(110)와 VPN 클라이언트(120)는 2차 세션 키를 이용하여 2차 VPN 세션을 수립한다. The VPN server 110 generates a quantum random number and then generates a quantum random number exchange message including the quantum random number in order to establish a secondary VPN session with the VPN client 120, and generates a quantum random number exchange message including the quantum random number The quantum random number exchange message is encrypted with the secondary session key and transmitted to the VPN client 120 . Accordingly, the VPN client 120 can extract the quantum random number by decrypting the quantum random number exchange message with the primary session key it possesses. Accordingly, the VPN server 110 and the VPN client 120 share the same quantum random number, and the VPN server 110 and the VPN client 120 generate a secondary session key using the quantum random number. Then, the VPN server 110 and the VPN client 120 establish a secondary VPN session using the secondary session key.

2차 VPN 세션이 수립되면, 기존 1차 VPN 세션과 새로 수립된 2차 VPN 세션은 하나의 단일 세션으로 취급되므로, 새로운 세션 ID가 할당되고, 2차 VPN 세션과 연결되는 가상 NIC에도 새로운 IP 주소가 할당된다. 따라서, VPN 서버(110)는, 2차 VPN 세션이 수립된 VPN 클라이언트(120)의 세션 상태 정보를 갱신해야 하고, 이를 위해 VPN 클라이언트(120)는 양자 난수 교환 메시지에 대한 응답 메시지로서 양자 난수 교환 완료 메시지를 생성하여 VPN 서버(110)로 전송한다. 양자 난수 교환 완료 메시지에는 2차 VPN 세션 수립을 통해 생성된 새로운 세션 ID, 새로운 IP 주소가 포함되고, 양자 난수 교환 완료 메시지는 2차 세션 키로 암호화되어 VPN 서버(110)로 전송된다. VPN 서버(110)는 2차 세션 키로 양자 난수 교환 완료 메시지를 복호화하여 세션 상태 정보를 갱신한다. When the secondary VPN session is established, the existing primary VPN session and the newly established secondary VPN session are treated as one single session, so a new session ID is assigned, and a new IP address is also assigned to the virtual NIC associated with the secondary VPN session. is allocated Accordingly, the VPN server 110 needs to update the session state information of the VPN client 120 with which the secondary VPN session is established, and for this purpose, the VPN client 120 exchanges quantum random numbers as a response message to the quantum random number exchange message. A completion message is generated and transmitted to the VPN server 110 . The quantum random number exchange completion message includes a new session ID and a new IP address generated through establishment of the secondary VPN session, and the quantum random number exchange completion message is encrypted with the secondary session key and transmitted to the VPN server 110 . The VPN server 110 decrypts the quantum random number exchange completion message with the secondary session key to update the session state information.

2차 VPN 세션의 수립이 최종 완료되면, 앞서 설명한 바와 같이, 논리적으로 기존 1차 VPN 세션이 2차 VPN 세션으로 한번 더 감싸진 형태로 설명될 수 있지만, 실제 데이터의 흐름을 살펴보면, 데이터는 제1 가상 NIC를 통해 1차 세션 키로 1차 암호화되어 제2 가상 NIC로 전달되고, 1차 암호화된 데이터는 제2 가상 NIC를 통해 2차 세션 키로 2차 암호화된 다음, 최종 생성된 하나의 세션을 통해 상대 장치로 전송된다. 즉, 논리적으로 2개의 세션이 이중으로 구성된 형태이지만, 데이터 흐름 관점에서 보면 2차 VPN 세션 수립을 통해 생성된 최종적인 하나의 세션으로 암호화된 데이터를 주고받게 되는 것이다. When the establishment of the secondary VPN session is finally completed, as described above, the existing primary VPN session can be logically described as being wrapped once more with the secondary VPN session, but looking at the actual data flow, the data is First encrypted with the primary session key through 1 virtual NIC and delivered to the second virtual NIC, the primary encrypted data is secondary encrypted with the secondary session key through the second virtual NIC, and then one finally created session transmitted to the other device via That is, two sessions are logically configured in duplicate, but from a data flow point of view, encrypted data is exchanged with one final session created through the establishment of the secondary VPN session.

본 실시예에서 설명하는 이중화된 VPN 세션을 통해 VPN 서버(110)와 VPN 클라이언트(120)는 이중 암호화 및 이중 복호화를 통해 데이터를 송수신함으로써 보안을 향상시킨다. 일정한 패턴을 가지는 유사 난수를 통해 생성되는 1차 세션 키가 노출되더라도 패턴을 추측할 수 없는 양자 난수를 통해 생성되는 2차 세션 키 없이는 데이터의 복호화가 불가능하다. Through the duplicated VPN session described in this embodiment, the VPN server 110 and the VPN client 120 improve security by transmitting and receiving data through double encryption and double decryption. Even if the primary session key generated through the pseudo random number having a certain pattern is exposed, data cannot be decrypted without the secondary session key generated through the quantum random number whose pattern cannot be guessed.

도 4는 본 발명의 일 실시예에 따른 VPN 서버의 구성을 나타낸 도면이다. 도 4를 참조하면, VPN 서버(110)는, 양자 난수 생성기(410), 인증서 관리부(420), 세션 관리부(430) 및 저장부(440)를 포함한다. 이들은 프로그램으로 구현되어 메모리에 저장되고 하나 이상의 프로세서에 의해 실행될 수 있고, 또는 하드웨어와 소프트웨어의 조합으로 구현되어 동작할 수 있으며, 도 4에 도시되어 있지 않은 통신부를 통해 VPN 클라이언트(120)와 통신할 수 있다. 4 is a diagram showing the configuration of a VPN server according to an embodiment of the present invention. Referring to FIG. 4 , the VPN server 110 includes a quantum random number generator 410 , a certificate manager 420 , a session manager 430 , and a storage 440 . These may be implemented as a program, stored in a memory, and executed by one or more processors, or may be implemented and operated as a combination of hardware and software, and communicate with the VPN client 120 through a communication unit not shown in FIG. can

양자 난수 생성기(410)는, 방사성 동위 원소를 활용하여 난수를 생성한다. 방사성 동위 원소는 반감기 동안 알파라는 입자를 방출하는데 이때 입자가 발생되는 시간격은 양자역학적으로 불확정성을 따르기 때문에 완전한 난수성을 가진다고 정의한다. 그리고 이런 불확정성을 가지는 시간격을 측정하여 수치로 변환한 값이 바로 양자 난수이다. 양자 난수 생성기(410)는 방사성 동위 원소의 반감기 동안 발생하는 알파 입자의 시간격을 다이오드로 측정하여 양자 난수를 생성한다. 양자 난수 생성기(410)는, 세션 관리부(430)에서 요청하는 길이를 갖는 양자 난수를 생성할 수 있다.The quantum random number generator 410 generates a random number by using a radioactive isotope. A radioisotope emits a particle called alpha during its half-life, and the time interval at which the particle is generated follows quantum mechanical uncertainty, so it is defined as having perfect randomness. And the value converted into a numerical value by measuring a time interval with such uncertainty is a quantum random number. The quantum random number generator 410 generates a quantum random number by measuring the time interval of alpha particles generated during the half-life of the radioisotope with a diode. The quantum random number generator 410 may generate a quantum random number having a length requested by the session manager 430 .

인증서 관리부(420)는, 인증 기관(CA, Certificate authority)으로부터 인증서 및 개인키를 발급받아 저장할 수 있다. 구체적으로, 인증서 관리부(420)는, 인증 기관으로부터 VPN 서버 인증서와 VPN 서버 개인키, 그리고 인증 기관 인증서와 인증 기관 개인키를 발급받아 저장부(440)에 저장할 수 있다. 여기서 VPN 서버 인증서에는 VPN 서버 공개키가 포함되고, 인증 기관 인증서에는 인증 기관 공개키가 포함된다. VPN 서버 인증서는, 인증 기관 개인키로 암호화되어 있기 때문에, 인증 기관 인증서에 포함된 인증 기관 공개키로만 복호화가 가능하다.The certificate management unit 420 may receive and store a certificate and a private key from a certificate authority (CA). Specifically, the certificate management unit 420 may receive a VPN server certificate, a VPN server private key, and a certificate authority certificate and a certificate authority private key from a certification authority, and store it in the storage unit 440 . Here, the VPN server certificate includes the VPN server public key, and the certification authority certificate includes the certification authority public key. Since the VPN server certificate is encrypted with the certificate authority private key, decryption is possible only with the certificate authority public key included in the certificate authority certificate.

인증서 관리부(420)는, VPN 클라이언트(120)에게 VPN 서버(110)가 신뢰할 수 있는 서버임을 알려주기 위해, VPN 서버 인증서를 VPN 클라이언트(120)로 전송한다. VPN 서버(110)가 인증 기관으로부터 인증받은 호스트라면, VPN 클라이언트(120)는 자신이 가지고 있는 인증 기관 인증서에 포함된 인증 기관 공개키로 VPN 서버 인증서를 복호화하여 VPN 서버 공개키를 획득할 수 있다. The certificate management unit 420 transmits the VPN server certificate to the VPN client 120 in order to inform the VPN client 120 that the VPN server 110 is a trusted server. If the VPN server 110 is a host authenticated by a certification authority, the VPN client 120 may obtain the VPN server public key by decrypting the VPN server certificate with the certification authority public key included in the certification authority certificate it owns.

인증서 관리부(420)는, VPN 클라이언트(120)로부터 VPN 클라이언트 인증서를 수신할 수 있다. VPN 클라이언트(120)가 인증 기관으로부터 인증받은 호스트라면, 인증서 관리부(420)는, 인증 기관 인증서에 포함된 인증 기관 공개키로 VPN 클라이언트 인증서를 복호화하여 VPN 클라이언트 공개키를 획득할 수 있다.The certificate management unit 420 may receive a VPN client certificate from the VPN client 120 . If the VPN client 120 is a host authenticated by the certification authority, the certificate management unit 420 may obtain the VPN client public key by decrypting the VPN client certificate with the certification authority public key included in the certification authority certificate.

세션 관리부(430)는, VPN 서버(110)와 VPN 클라이언트(120) 간의 세션을 생성하고 관리한다. 세션 관리부(430)는, VPN 클라이언트(120)별로 세션을 생성하고 관리한다. 세션 관리부(430)는, SSL 핸드쉐이크(handshake) 과정을 통해 인증 절차를 진행하며, 데이터를 암호화 및 복호화하기 위한 대킹 키인 세션 키를 생성하고, 상호 간의 VPN 세션을 생성할 수 있다. 바람직하게는, 세션 관리부(430)는, VPN 클라이언트(120)별로 이중화 VPN 세션을 생성한다. 세션 관리부(430)는, VPN 클라이언트(120)와 유사 난수를 공유하여 1차 VPN 세션을 생성하고, 이후 양자 난수를 생성하여 VPN 클라이언트(120)로 전송하여 2차 VPN 세션을 생성할 수 있다. The session manager 430 creates and manages a session between the VPN server 110 and the VPN client 120 . The session manager 430 creates and manages a session for each VPN client 120 . The session manager 430 may perform an authentication procedure through an SSL handshake process, generate a session key that is a proxy key for encrypting and decrypting data, and may create a mutual VPN session. Preferably, the session manager 430 creates a redundant VPN session for each VPN client 120 . The session manager 430 may create a first VPN session by sharing a pseudo random number with the VPN client 120 , and then generate a quantum random number and transmit it to the VPN client 120 to create a second VPN session.

보다 구체적으로, 세션 관리부(430)는, 기존의 공지된 SSL 핸드쉐이크 과정을 통해, 유사 난수를 생성하여 VPN 클라이언트(120)와 유사 난수를 교환하고, VPN 서버(110)에서 생성한 유사 난수와 VPN 클라이언트(120)로부터 수신된 유사 난수를 이용하여 VPN 클라이언트(120)와 동일하게 공유하는 1차 세션 키를 생성할 수 있다. 세션 관리부(430)는, 1차 세션 키를 이용하여 VPN 클라이언트(120)와 1차 VPN 세션을 수립한다. 바람직하게는, 세션 관리부(430)와 VPN 클라이언트(120)는, 물리적 NIC를 기반으로 제1 가상 NIC를 생성한 후, 제1 가상 NIC를 기반으로 서로 간의 1차 VPN 세션을 수립한다.More specifically, the session manager 430 generates a pseudo-random number through the known SSL handshake process, exchanges the pseudo-random number with the VPN client 120 , and uses the pseudo-random number generated by the VPN server 110 and A primary session key shared with the VPN client 120 may be generated using the pseudo random number received from the VPN client 120 . The session manager 430 establishes a primary VPN session with the VPN client 120 using the primary session key. Preferably, the session manager 430 and the VPN client 120 create a first virtual NIC based on the physical NIC, and then establish a primary VPN session with each other based on the first virtual NIC.

일 실시예에서, 세션 관리부(430)는, VPN 클라이언트(120)로 메시지나 데이터를 전송할 때, VPN 클라이언트 공개키로 메시지나 데이터를 암호화하여 전송할 수 있고, 또한 VPN 클라이언트(120)로부터 VPN 서버 공개키로 암호화된 데이터를 수신할 수 있다. VPN 클라이언트 공개키로 암호화된 데이터는 VPN 클라이언트(120)에서 VPN 클라이언트 개인키로 복호화될 수 있고, VPN 서버 공개키로 암호화된 데이터는 세션 관리부(430)가 VPN 서버 개인키로 복호화할 수 있다. 예를 들어, SSL 핸드쉐이크 과정에서 VPN 클라이언트(120)가, 유사 난수를 VPN 서버 공개키로 암호화하여 전송하면, 세션 관리부(430)는, VPN 서버 개인키로 이를 복호화하여 유사 난수를 추출할 수 있다. In one embodiment, the session manager 430 may transmit the message or data to the VPN client 120 by encrypting the message or data with the VPN client public key, and may also transmit the message or data from the VPN client 120 to the VPN server public key. Encrypted data can be received. Data encrypted with the VPN client public key may be decrypted by the VPN client 120 with the VPN client private key, and data encrypted with the VPN server public key may be decrypted by the session manager 430 with the VPN server private key. For example, when the VPN client 120 encrypts and transmits a pseudo-random number with the VPN server public key during the SSL handshake process, the session manager 430 may extract the pseudo-random number by decrypting it with the VPN server private key.

세션 관리부(430)는, VPN 세션이 수립되면, 주기적으로 세션 상태 정보를 수집하여 저장부(440)에 저장할 수 있다. 세션 상태 정보는, VPN 클라이언트(120)의 식별정보(Client ID), VPN 클라이언트(120)의 가상 NIC에 할당된 IP 주소, 세션 키(Session Key), 세션 ID, 세션의 활성화 여부(Activity, on은 활성화/off는 비활성화), 세션 수립 후 VPN 클라이언트(120)가 전송한 데이터의 누적 크기(ByteCount), 세션 수립 후 VPN 클라이언트(120)가 패킷을 전송하지 않을 경우 세션 유지 시간(Idle Time, 디폴트로서 10분)을 포함한다. 세션 상태 정보의 예는 다음 [표1]과 같다. [표2]의 세션 상태 정보는, 1차 VPN 세션 수립 후의 세션 상태 정보이다.When a VPN session is established, the session manager 430 may periodically collect session state information and store it in the storage unit 440 . The session state information includes identification information (Client ID) of the VPN client 120, an IP address assigned to the virtual NIC of the VPN client 120, a session key, a session ID, and whether a session is activated (Activity, on) is active/off disabled), the accumulated size of data transmitted by the VPN client 120 after session establishment (ByteCount), and the session maintenance time (Idle Time, default) when the VPN client 120 does not transmit packets after session establishment as 10 minutes). An example of session state information is as follows [Table 1]. The session state information in [Table 2] is the session state information after establishing the first VPN session.

[표1][Table 1]

Figure pat00001
Figure pat00001

세션 관리부(430)는, VPN 클라이언트(120)와 1차 VPN 세션을 수립한 후, 해당 VPN 클라이언트(120)와 2차 VPN 세션을 수립할 수 있다. 세션 관리부(430)는, VPN 클라이언트(120)와 2차 VPN 세션을 수립하기 위해, 양자 난수 생성기(410)로 양자 난수 생성을 요청하고, 양자 난수 생성기(410)에서 생성한 양자 난수를 포함하는 양자 난수 교환 메시지를 생성하여 상기 1차 세션 키로 암호화한 후, VPN 클라이언트(120)로 전송한다. 따라서 VPN 클라이언트(120)는 기 보유하고 있는 1차 세션 키로 상기 양자 난수 교환 메시지를 복호화하여 양자 난수를 추출할 수 있다. 이에 따라 세션 관리부(430)와 VPN 클라이언트(120)는 동일한 양자 난수를 공유하게 되고, 세션 관리부(430)와 VPN 클라이언트(120)는 동일한 양자 난수를 이용하여 2차 세션 키를 생성한다. 그리고 세션 관리부(430)와 VPN 클라이언트(120)는 2차 세션 키를 이용하여 2차 VPN 세션을 수립한다. 바람직하게는, 세션 관리부(430)와 VPN 클라이언트(120)는, 1차 VPN 세션을 수립하는데 사용한 제1 가상 NIC를 기반으로 또 다른 제2 가상 NIC를 생성하여 서로 간의 2차 VPN 세션을 수립한다.After establishing the first VPN session with the VPN client 120 , the session manager 430 may establish a second VPN session with the VPN client 120 . The session manager 430 requests the quantum random number generator 410 to generate a quantum random number to establish a secondary VPN session with the VPN client 120, and includes the quantum random number generated by the quantum random number generator 410 A quantum random number exchange message is generated, encrypted with the primary session key, and transmitted to the VPN client 120 . Accordingly, the VPN client 120 can extract the quantum random number by decrypting the quantum random number exchange message with the primary session key it possesses. Accordingly, the session manager 430 and the VPN client 120 share the same quantum random number, and the session manager 430 and the VPN client 120 generate a secondary session key using the same quantum random number. Then, the session manager 430 and the VPN client 120 establish a secondary VPN session using the secondary session key. Preferably, the session manager 430 and the VPN client 120 establish a second VPN session between each other by creating another second virtual NIC based on the first virtual NIC used to establish the first VPN session. .

2차 VPN 세션이 수립되면, 기존 1차 VPN 세션과 새로 수립된 2차 VPN 세션은 하나의 단일 세션으로 취급되므로, 새로운 세션 ID가 할당되고, 2차 VPN 세션과 연결되는 가상 NIC에도 새로운 IP 주소가 할당된다. 따라서, VPN 클라이언트(120)는 양자 난수 교환 메시지에 대한 응답 메시지로서 양자 난수 교환 완료 메시지를 생성하여 세션 관리부(430)로 전송한다. 양자 난수 교환 완료 메시지에는 2차 VPN 세션 수립을 통해 생성된 새로운 세션 ID, 새로운 IP 주소가 포함되고, 양자 난수 교환 완료 메시지는 2차 세션 키로 암호화되어 세션 관리부(430)로 전송된다. 따라서, 세션 관리부(430)는, 2차 세션 키로 양자 난수 교환 완료 메시지를 복호화하여 세션 상태 정보를 갱신한다. 갱신된 세션 상태 정보의 예는 다음 [표2]와 같다. 앞서 1차 세션 수립시의 세션 상태 정보의 예인 [표1]과 비교하면, IP 주소가 10.0.0.2에서 11.0.0.2로 변경되고, 세션 키도 session1.key에서 session2.key로 변경된다.When the secondary VPN session is established, the existing primary VPN session and the newly established secondary VPN session are treated as one single session, so a new session ID is assigned, and a new IP address is also assigned to the virtual NIC associated with the secondary VPN session. is allocated Accordingly, the VPN client 120 generates a quantum random number exchange completion message as a response message to the quantum random number exchange message and transmits it to the session manager 430 . The quantum random number exchange completion message includes a new session ID and a new IP address generated through establishment of the secondary VPN session, and the quantum random number exchange completion message is encrypted with the secondary session key and transmitted to the session manager 430 . Accordingly, the session manager 430 updates the session state information by decoding the quantum random number exchange completion message with the secondary session key. An example of the updated session state information is as follows [Table 2]. Compared with [Table 1], which is an example of session state information during the establishment of the first session, the IP address is changed from 10.0.0.2 to 11.0.0.2, and the session key is also changed from session1.key to session2.key.

[표2][Table 2]

Figure pat00002
Figure pat00002

세션 관리부(430)는, VPN 클라이언트(120)와 1차 또는 2차 VPN 세션 수립 후, VPN 세션을 관제하여 VPN 클라이언트(120)가 미인증 단말인지를 체크할 수 있다. 세션 관리부(430)는, VPN 클라이언트(120)와 VPN 세션 수립 후, 일정한 주기로 VPN 클라이언트(120)의 세션 상태 정보를 수집하여 저장부(440)에 저장하고, 세션 상태 정보를 기초로 VPN 클라이언트(120)가 데이터를 전송하지 않으며 비활성 상태(Active Off)인지 확인한다. After establishing the first or second VPN session with the VPN client 120 , the session manager 430 may control the VPN session to check whether the VPN client 120 is an unauthenticated terminal. After establishing a VPN session with the VPN client 120, the session manager 430 collects and stores the session state information of the VPN client 120 in the storage unit 440 at regular intervals, and based on the session state information, the VPN client ( 120) does not transmit data and checks whether it is in an inactive state (Active Off).

세션 관리부(430)는, VPN 클라이언트(120)가 데이터를 전송하지 않고 비활성 상태인 경우, 양자 난수 생성기(410)로 양자 난수의 생성을 요청하고, 양자 난수 생성기(410)에서 생성된 양자 난수를 이용하여 해당 VPN 클라이언트(120)가 미인증 단말인지 확인한다. 세션 관리부(430)는, 양자 난수를 해쉬 알고리즘에 적용하여 특정 사이즈의 축소된 메시지를 생성하고, 축소된 메시지를 인증 기관 개인키로 암호화하여 비활성화된 VPN 세션이 아닌 TCP 세션을 통해 VPN 클라이언트(120)로 전송한다. 인증 기관 개인키로 암호화된 데이터는 인증 기관 공개키로만 복호화 가능하기 때문에, 만약 VPN 클라이언트(120)가 미인증 단말이라면, 인증 기관 공개키를 가지고 있지 않아, 상기 TCP 세션을 통해 VPN 서버(110)로부터 수신되는 암호화된 메시지를 복호화할 수 없고, 인증 단말이라면 인증 기관 공개키를 가지고 있으므로 상기 암호화된 메시지를 복호화할 수 있다.When the VPN client 120 is in an inactive state without transmitting data, the session manager 430 requests the quantum random number generator 410 to generate a quantum random number, and receives the quantum random number generated by the quantum random number generator 410 . It is used to check whether the VPN client 120 is an unauthenticated terminal. The session management unit 430 applies a quantum random number to a hash algorithm to generate a reduced message of a specific size, and encrypts the reduced message with a certificate authority private key, so that the VPN client 120 through a TCP session rather than an inactive VPN session. send to Since data encrypted with the certification authority private key can only be decrypted with the certification authority public key, if the VPN client 120 is an unauthenticated terminal, it does not have the certification authority public key, so it is transmitted from the VPN server 110 through the TCP session. The received encrypted message cannot be decrypted, and since the authentication terminal has the public key of the certification authority, the encrypted message can be decrypted.

VPN 클라이언트(120)가 인증 단말이라면, VPN 클라이언트(120)는, VPN 서버(110)로 인증 단말임을 알리기 위해, 상기 암호화된 메시지를 복호화하여 상기 축소된 메시지를 추출하고, 그 추출한 축소된 메시지를 자신의 개인키로 암호화하여 세션 관리부(430)로 전송한다. 세션 관리부(430)는, 저장부(440)에 VPN 클라이언트 공개키가 저장되어 있으므로, VPN 클라이언트(120)로부터 수신되는 암호화된 상기 축소된 메시지를 복호화하여, 자신이 생성했던 축소된 메시지와 비교하여 일치하는지 확인한다. 양자 난수는 추정이 불가능한 고유값이기 때문에, VPN 클라이언트(120)가 미인증 단말이라면, 상기 축소된 메시지는 일치하지 않게 되고, VPN 클라이언트(120)가 인증 단말이라면, 상기 축소된 메시지는 일치하게 된다. 세션 관리부(430)는, VPN 클라이언트(120)가 미인증 단말인 것으로 확인되면, 해당 VPN 클라이언트(120)의 VPN 세션을 강제로 종료한다.If the VPN client 120 is an authentication terminal, in order to inform the VPN server 110 that it is an authentication terminal, the VPN client 120 decrypts the encrypted message to extract the reduced message, and the extracted reduced message It is encrypted with its own private key and transmitted to the session management unit 430 . Since the VPN client public key is stored in the storage unit 440, the session management unit 430 decrypts the encrypted reduced message received from the VPN client 120, and compares it with the reduced message it has generated. Make sure they match. Since quantum random numbers are eigenvalues that cannot be estimated, if the VPN client 120 is an unauthenticated terminal, the reduced message does not match, and if the VPN client 120 is an authenticated terminal, the reduced message matches . When it is confirmed that the VPN client 120 is an unauthenticated terminal, the session manager 430 forcibly terminates the VPN session of the VPN client 120 .

저장부(440)는, 고속 랜덤 액세스 메모리, 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 저장부(440)는, 프로세서에 의해 실행 가능한 명령어들을 저장할 수 있다. 본 실시예에서 저장부(440)는, 인증 기관으로부터 발급되는 VPN 서버 인증서와 VPN 서버 개인키, 그리고 인증 기관 인증서와 인증 기관 개인키를 저장한다. 또한 저장부(440)는, 앞서 설명한 바와 같은 VPN 클라이언트(120)들의 세션 상태 정보를 저장한다. The storage unit 440 may include a high-speed random access memory, a magnetic disk storage device, a nonvolatile memory such as a flash memory device, or other nonvolatile semiconductor memory device. The storage unit 440 may store instructions executable by the processor. In this embodiment, the storage unit 440 stores the VPN server certificate and the VPN server private key issued from the certification authority, and the certification authority certificate and the certification authority private key. In addition, the storage unit 440 stores the session state information of the VPN clients 120 as described above.

도 5는 본 발명의 일 실시예에 따른 VPN 서버에서 VPN 클라이언트의 VPN 세션을 관제하는 방법을 설명하는 흐름도이다.5 is a flowchart illustrating a method for controlling a VPN session of a VPN client in a VPN server according to an embodiment of the present invention.

도 5를 참조하면, 단계 S501에서, VPN 서버(110)는, VPN 세션이 수립된 VPN 클라이언트(120)의 세션 상태 정보를 주기적으로, 예를 들어 2분마다 수집하여 저장한다. 바람직하게, VPN 서버(110)는 VPN 클라이언트(120)에 설치된 에이전트로부터 세션 상태 정보를 수집할 수 있다. 세션 상태 정보는, VPN 클라이언트(120)의 식별정보(Client ID), VPN 클라이언트(120)의 가상 NIC에 할당된 IP 주소, 세션 키(Session Key), 세션 ID, 세션의 활성화 여부(Activity, on은 활성화/off는 비활성화), 세션 수립 후 VPN 클라이언트(120)가 전송한 데이터의 누적 크기(ByteCount), 세션 수립 후 VPN 클라이언트(120)가 패킷을 전송하지 않을 경우 세션 유지 시간(Idle Time, 디폴트로서 10분)을 포함한다.Referring to FIG. 5 , in step S501 , the VPN server 110 collects and stores session state information of the VPN client 120 with which the VPN session is established periodically, for example, every 2 minutes. Preferably, the VPN server 110 may collect session state information from an agent installed in the VPN client 120 . The session state information includes identification information (Client ID) of the VPN client 120, an IP address assigned to the virtual NIC of the VPN client 120, a session key, a session ID, and whether a session is activated (Activity, on) is active/off disabled), the accumulated size of data transmitted by the VPN client 120 after session establishment (ByteCount), and the session maintenance time (Idle Time, default) when the VPN client 120 does not transmit packets after session establishment as 10 minutes).

단계 S502에서, VPN 서버(110)는, VPN 클라이언트(120)로부터 현재까지 수신된 데이터의 누적 크기(ByteCount)가 2분 전 누적 크기와 동일한지 확인한다. 2분 전 누적 크기와 현재까지 수신된 데이터의 누적 크기가 다르면, VPN 클라이언트(120)가 데이터를 전송하고 있는 것이므로, 단계 S503에서, VPN 서버(110)는, 기 저장된 세션 상태 정보의 데이터 누적 크기를 현재까지 수신된 데이터의 누적 크기로 갱신한다. In step S502, the VPN server 110 checks whether the accumulated size (ByteCount) of the data received from the VPN client 120 to date is the same as the accumulated size 2 minutes ago. If the accumulated size 2 minutes ago and the accumulated data received so far are different from each other, the VPN client 120 is transmitting data. In step S503, the VPN server 110 determines the data accumulation size of the pre-stored session state information. is updated with the accumulated size of data received so far.

만약, 2분 전 누적 크기와 현재까지 수신된 데이터의 누적 크기가 동일하면, VPN 클라이언트(120)가 데이터를 전송하고 있지 않는 것을 의미하므로, 단계 S504에서, VPN 서버(110)는 VPN 클라이언트(120)의 세션 유지 시간, 즉 Idle Time을 10분으로 갱신하고, 단계 S505에서 10분 동안 VPN 클라이언트(120)로부터 데이터가 계속해서 수신되지 않는지 확인한다. If the accumulated size 2 minutes ago and the accumulated data received so far are the same, it means that the VPN client 120 is not transmitting data. In step S504, the VPN server 110 sends the VPN client 120 ), that is, the Idle Time is updated to 10 minutes, and in step S505, it is checked whether data is not continuously received from the VPN client 120 for 10 minutes.

10분 동안 VPN 클라이언트(120)로부터 데이터가 수신되지 않으면, 단계 S506에서, VPN 서버(110)는 VPN 클라이언트(120)로부터 가장 최근에 수집된 세션 상태 정보에서 Active 값이 'on'인지 확인한다. 즉, VPN 클라이언트(120)의 세션이 활성화 상태인지 확인한다. 세션이 활성화 상태인 경우, 단계 S504로 되돌아가, Idle Time을 10분으로 재갱신하여 이후 단계를 반복한다.If data is not received from the VPN client 120 for 10 minutes, in step S506 , the VPN server 110 checks whether the Active value is 'on' in the session state information most recently collected from the VPN client 120 . That is, it is checked whether the session of the VPN client 120 is active. If the session is in the active state, the flow returns to step S504, the idle time is re-updated to 10 minutes, and the subsequent steps are repeated.

세션이 비활성 상태인 경우, 즉 Active 값이 'off'인 경우, 단계 S507에서, VPN 서버(110)는, 양자 난수 생성기(410)에서 생성된 양자 난수를 해쉬 알고리즘에 적용하여 특정 사이즈의 축소된 메시지를 생성하고, 축소된 메시지를 인증 기관 개인키로 암호화하여 비활성화된 VPN 세션이 아닌 TCP 세션을 통해 VPN 클라이언트(120)로 전송한다. When the session is in an inactive state, that is, when the Active value is 'off', in step S507, the VPN server 110 applies the quantum random number generated by the quantum random number generator 410 to the hash algorithm to reduce a specific size A message is generated, the reduced message is encrypted with the certificate authority private key, and transmitted to the VPN client 120 through a TCP session rather than a deactivated VPN session.

단계 S508에서, VPN 서버(110)는, 일정한 시간 동안 VPN 클라이언트(120)로부터 양자 난수가 수신되는지 확인한다. 바람직하게, VPN 클라이언트(120)는, 단계 S507에서 수신된 상기 암호화된 메시지를 복호화하여 상기 축소된 메시지를 추출하고, 그 추출한 축소된 메시지를 자신의 개인키로 암호화하여 VPN 서버(110)로 전송할 수 있고, VPN 서버(110)는 이 암호화된 메시지가 수신되는 경우 양자 난수가 수신된 것으로 볼 수 있다. In step S508, the VPN server 110 checks whether a quantum random number is received from the VPN client 120 for a predetermined time. Preferably, the VPN client 120 decrypts the encrypted message received in step S507 to extract the reduced message, encrypts the extracted reduced message with its own private key, and transmits it to the VPN server 110 And, the VPN server 110 can see that a quantum random number has been received when this encrypted message is received.

만약 일정한 시간 동안 VPN 클라이언트(120)로부터 양자 난수가 수신되지 않는다면, 단계 S509에서 VPN 서버(110)는 VPN 클라이언트(120)가 미인증 단말인 것으로 판단하고 해당 VPN 클라이언트(120)의 VPN 세션을 강제로 종료한다. 인증 기관 개인키로 암호화된 데이터는 인증 기관 공개키로만 복호화 가능하기 때문에, 만약 VPN 클라이언트(120)가 미인증 단말이라면, 인증 기관 공개키를 가지고 있지 않아, 상기 TCP 세션을 통해 VPN 서버(110)로부터 수신되는 암호화된 메시지를 복호화할 수 없어, 양자 난수를 VPN 서버(110)로 전송하지 않을 것이기 때문이다.If the random quantum number is not received from the VPN client 120 for a certain period of time, in step S509, the VPN server 110 determines that the VPN client 120 is an unauthenticated terminal and forces the VPN session of the VPN client 120 ends with Since data encrypted with the certification authority private key can only be decrypted with the certification authority public key, if the VPN client 120 is an unauthenticated terminal, it does not have the certification authority public key, so it is transmitted from the VPN server 110 through the TCP session. This is because the received encrypted message cannot be decrypted, and the quantum random number will not be transmitted to the VPN server 110 .

만약, 일정한 시간 내에 VPN 클라이언트(120)로부터 양자 난수가 수신되는 경우, 단계 S510에서, VPN 서버(110)는, VPN 클라이언트(120)로부터 수신되는 양자 난수와, 상기 단계 S507에서 생성하여 VPN 클라이언트(120)로 전송하였던 양자 난수가 동일한지 확인한다. 바람직하게, VPN 서버(110)는, VPN 클라이언트(120)로부터 수신된 암호화된 메시지를 VPN 클라이언트 공개키로 복호화하고, 그 복호화된 메시지와 상기 단계 S507에서 해쉬 알고리즘에 적용되어 생성된 축소된 메시지를 비교함으로써 양자 난수를 비교할 수 있다. 양자 난수는 추정이 불가능한 고유값이기 때문에, VPN 클라이언트(120)가 미인증 단말이라면, 상기 축소된 메시지는 일치하지 않게 되고, 이 경우, VPN 서버(110)는 단계 S509에서 VPN 세션을 강제 종료한다. VPN 클라이언트(120)가 인증 단말이라면, 상기 축소된 메시지는 일치하게 되고, VPN 서버(110)는, VPN 세션을 유지한다. If a quantum random number is received from the VPN client 120 within a predetermined time, in step S510, the VPN server 110 generates the quantum random number received from the VPN client 120 and the VPN client ( 120) to check whether the quantum random number transmitted is the same. Preferably, the VPN server 110 decrypts the encrypted message received from the VPN client 120 with the VPN client public key, and compares the decrypted message with the reduced message generated by applying the hash algorithm in step S507. By doing so, quantum random numbers can be compared. Since the quantum random number is a eigenvalue that cannot be estimated, if the VPN client 120 is an unauthenticated terminal, the reduced message does not match, and in this case, the VPN server 110 forcibly terminates the VPN session in step S509 . If the VPN client 120 is an authentication terminal, the reduced message is matched, and the VPN server 110 maintains the VPN session.

도 6은 본 발명의 일 실시예에 따른 VPN 서버와 VPN 클라이언트의 세션 수립 방법을 설명하는 흐름도이다.6 is a flowchart illustrating a method for establishing a session between a VPN server and a VPN client according to an embodiment of the present invention.

도 6을 참조하면, 단계 S601에서, VPN 서버(110)와 VPN 클라이언트(120)는 기 공지된 SSL 핸드쉐이크 과정을 통해 유사 난수를 이용하여 1차 VPN 세션을 수립한다. 바람직하게, VPN 서버(110)와 VPN 클라이언트(120)는, 물리적 NIC를 기반으로 제1 가상 NIC를 생성한 후, 제1 가상 NIC를 기반으로 서로 간의 1차 VPN 세션을 수립한다. 1차 VPN 세션이 수립되면, 상술한 [표1]의 세션 상태 정보가 저장부(440)에 저장된다.Referring to FIG. 6 , in step S601 , the VPN server 110 and the VPN client 120 establish a primary VPN session using a pseudorandom number through a known SSL handshake process. Preferably, the VPN server 110 and the VPN client 120 create a first virtual NIC based on the physical NIC, and then establish a primary VPN session with each other based on the first virtual NIC. When the primary VPN session is established, the session state information of Table 1 described above is stored in the storage unit 440 .

단계 S602에서, VPN 서버(110)는, VPN 클라이언트(120)와 2차 VPN 세션을 수립하기 위해, 양자 난수 생성기(410)를 통해 양자 난수를 생성한다. 그리고, 단계 S603에서, VPN 서버(110)는, 양자 난수 및 상기 세션 상태 정보를 참조하여 양자 난수 교환 메시지를 생성한다. 양자 난수 교환 메시지의 필드는 다음의 [표3]의 예와 같다.In step S602 , the VPN server 110 generates a quantum random number through the quantum random number generator 410 to establish a secondary VPN session with the VPN client 120 . Then, in step S603, the VPN server 110 generates a quantum random number exchange message with reference to the quantum random number and the session state information. The fields of the quantum random number exchange message are as shown in Table 3 below.

[표3][Table 3]

Figure pat00003
Figure pat00003

단계 S604에서, VPN 서버(110)는, 상기 양자 난수 교환 메시지를 단계 S601의 1차 VPN 세션 수립 과정에서 생성한 1차 세션 키로 암호화한다. 그리고 단계 S605에서, VPN 서버(110)는, 암호화한 양자 난수 교환 메시지를 VPN 클라이언트(120)로 전송한다. In step S604, the VPN server 110 encrypts the quantum random number exchange message with the primary session key generated in the process of establishing the primary VPN session in step S601. And in step S605 , the VPN server 110 transmits the encrypted quantum random number exchange message to the VPN client 120 .

단계 S606에서, VPN 클라이언트(120)는 단계 S601의 1차 VPN 세션 수립 과정에서 생성한 1차 세션 키로 상기 암호화된 양자 난수 교환 메시지를 복호화한다. 따라서, VPN 클라이언트(120)는 복호화한 양자 난수 교환 메시지에서 양자 난수를 추출할 수 있다.In step S606, the VPN client 120 decrypts the encrypted quantum random number exchange message with the primary session key generated in the process of establishing the primary VPN session in step S601. Accordingly, the VPN client 120 may extract a quantum random number from the decoded quantum random number exchange message.

단계 S607 및 단계 S608에서, VPN 서버(110) 및 VPN 클라이언트(120) 각각은, 동일하게 보유하고 있는 양자 난수를 이용하여 2차 세션 키를 생성한다. 그리고 단계 S609에서, VPN 서버(110)와 VPN 클라이언트(120)는 2차 세션 키를 이용하여 2차 VPN 세션을 수립한다. 바람직하게는, VPN 서버(110)와 VPN 클라이언트(120)는, 1차 VPN 세션을 수립하는데 사용한 제1 가상 NIC를 기반으로 또 다른 제2 가상 NIC를 생성하여 서로 간의 2차 VPN 세션을 수립한다.In steps S607 and S608, each of the VPN server 110 and the VPN client 120 generates a secondary session key using a quantum random number held in the same way. And in step S609, the VPN server 110 and the VPN client 120 establish a secondary VPN session using the secondary session key. Preferably, the VPN server 110 and the VPN client 120 establish a secondary VPN session between each other by creating another second virtual NIC based on the first virtual NIC used to establish the primary VPN session. .

단계 S610에서, VPN 클라이언트(120)는, 양자 난수 교환 완료 메시지를 생성한다. 양자 난수 교환 완료 메시지에는 2차 VPN 세션 수립을 통해 생성된 새로운 2차 세션 ID, 새로운 IP 주소 등이 포함된다. 양자 난수 교환 완료 메시지의 예는 다음 [표4]와 같다. In step S610, the VPN client 120 generates a quantum random number exchange completion message. The quantum random number exchange completion message includes a new secondary session ID and a new IP address generated through secondary VPN session establishment. An example of a quantum random number exchange completion message is as follows [Table 4].

[표4][Table 4]

Figure pat00004
Figure pat00004

단계 S611에서, VPN 클라이언트(120)는, 양자 난수 교환 완료 메시지를 2차 세션 키로 암호화한다. 그리고 단계 S612에서, VPN 클라이언트(120)는 암호화한 양자 난수 교환 완료 메시지를 VPN 서버(110)로 전송한다. 그리고 단계 S613에서, VPN 서버(110)는 2차 세션 키로 상기 암호화된 양자 난수 교환 완료 메시지를 복호화하고, 양자 난수 교환 완료 메시지를 기초로 세션 상태 정보를 갱신한다. In step S611, the VPN client 120 encrypts the quantum random number exchange completion message with the secondary session key. And in step S612 , the VPN client 120 transmits the encrypted quantum random number exchange completion message to the VPN server 110 . And in step S613, the VPN server 110 decrypts the encrypted quantum random number exchange completion message with the secondary session key, and updates the session state information based on the quantum random number exchange completion message.

이상의 실시예를 위해, VPN 클라이언트(120)는, 메모리, 통신부 및 하나 이상의 프로세서를 포함할 수 있다. 메모리는, 고속 랜덤 액세스 메모리, 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 메모리는, 각종 정보와 프로그램 명령어를 저장할 수 있다. 메모리는, VPN 서버(110)와 VPN 세션을 생성하고, 세션 상태 정보를 VPN 서버(110)로 전송하기 위한 프로그램을 포함할 수 있다. 메모리에 저장되는 프로그램은 프로세서에 의해 실행될 수 있다. 통신부는 전기 신호를 전자파로 또는 그 반대로 변환하며 이 전자파를 통하여 통신 네트워크, 다른 이동형 게이트웨이 및 전자 기기와 통신할 수 있다. 통신부는 예를 들어 안테나 시스템, RF 트랜시버, 하나 이상의 증폭기, 튜너, 하나 이상의 오실레이터, 디지털 신호 처리기, CODEC 칩셋, 가입자 식별 모듈(subscriber identity module, SIM) 카드, 메모리 등을 포함하지만 이에 한정되지 않는 이러한 기능을 수행하기 위한 주지의 회로를 포함할 수 있다. 하나 이상의 프로세서는 메모리에 저장된 프로그램에 따라 앞서 설명한 실시예에서의 VPN 클라이언트(120)의 동작을 수행할 수 있다.For the above embodiment, the VPN client 120 may include a memory, a communication unit, and one or more processors. The memory may include a high-speed random access memory, a magnetic disk storage device, a nonvolatile memory such as a flash memory device, or other nonvolatile semiconductor memory device. The memory may store various types of information and program instructions. The memory may include a program for creating a VPN session with the VPN server 110 , and transmitting session state information to the VPN server 110 . The program stored in the memory may be executed by the processor. The communication unit converts electrical signals into electromagnetic waves or vice versa, and can communicate with communication networks, other mobile gateways, and electronic devices through the electromagnetic waves. A communications unit may include, but is not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, and the like, for example. It may include well-known circuitry for performing the function. One or more processors may perform the operation of the VPN client 120 in the above-described embodiment according to a program stored in the memory.

이상의 실시예에 따르면, VPN 서버(110)와 VPN 클라이언트(120)는 유사 난수가 아닌 가장 완전한 난수인 양자 난수를 이용하여 2차 세션 키를 생성함으로써 가장 안전한 대칭키 기반의 암호화 통신을 할 수 있다. 특히, 종래의 SSL 프로토콜의 수정 없이 간단하게 VPN을 구축할 수 있어 SDN(Software Defined Network) 기반 네트워크 환경이라면 어디든 적용할 수 있어 높은 호환성을 확보할 수 있다.According to the above embodiment, the VPN server 110 and the VPN client 120 can perform the most secure symmetric key-based encrypted communication by generating a secondary session key using a quantum random number that is the most complete random number, not a pseudo-random number. . In particular, since VPN can be easily established without modification of the conventional SSL protocol, it can be applied to any SDN (Software Defined Network)-based network environment, thereby ensuring high compatibility.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification contains many features, such features should not be construed as limiting the scope of the invention or the claims. Also, features described in individual embodiments herein may be implemented in combination in a single embodiment. Conversely, various features described herein in a single embodiment may be implemented in various embodiments individually, or may be implemented in appropriate combination.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although acts are described in a particular order in the drawings, it should not be understood that the acts are performed in the particular order as shown, or that all of the described acts are performed in a continuous order, or to obtain a desired result. . Multitasking and parallel processing can be advantageous in certain circumstances. In addition, it should be understood that the division of various system components in the above-described embodiments does not require such division in all embodiments. The program components and systems described above may generally be implemented as a package in a single software product or multiple software products.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a computer-readable form in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.). Since this process can be easily performed by a person skilled in the art to which the present invention pertains, it will not be described in detail any longer.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above, for those of ordinary skill in the art to which the present invention pertains, various substitutions, modifications and changes are possible within the scope without departing from the technical spirit of the present invention. It is not limited by the drawings.

110, 210 : VPN 서버
120, 220 : VPN 클라이언트
111, 121, 211, 221 : 물리 NIC
112a, 112b, 122a, 122b : 가상 NIC
410 : 양자 난수 생성기
420 : 인증서 관리부
430 : 세션 관리부
440 : 저장부
110, 210: VPN Server
120, 220: VPN client
111, 121, 211, 221 : Physical NIC
112a, 112b, 122a, 122b : Virtual NIC
410: quantum random number generator
420: certificate management unit
430: session management unit
440: storage

Claims (17)

VPN(Virtual Private Network) 클라이언트와 통신하여 가상 사설망을 구축하기 위한 VPN 장치로서,
양자 난수를 생성하는 양자 난수 생성기; 및
상기 VPN 클라이언트와 유사 난수를 교환하여 1차 세션 키를 생성하고 1차 VPN 세션을 수립하며, 상기 양자 난수 생성기에서 생성된 제1 양자 난수를 상기 VPN 클라이언트로 전송하고 상기 제1 양자 난수를 기초로 2차 세션 키를 생성하여 2차 VPN 세션을 수립하는 세션 관리부를 포함하는 VPN 장치.
A VPN device for establishing a virtual private network by communicating with a VPN (Virtual Private Network) client, comprising:
a quantum random number generator for generating quantum random numbers; and
A first session key is generated by exchanging a pseudorandom number with the VPN client, a first VPN session is established, the first quantum random number generated by the quantum random number generator is transmitted to the VPN client, and based on the first quantum random number A VPN device including a session manager for establishing a secondary VPN session by generating a secondary session key.
제1항에 있어서,
상기 세션 관리부는,
상기 제1 양자 난수를 포함하는 양자 난수 교환 메시지를 생성하고 상기 양자 난수 교환 메시지를 상기 1차 세션 키로 암호화하여 상기 VPN 클라이언트로 전송하는 것을 특징으로 하는 VPN 장치.
According to claim 1,
The session management unit,
VPN device, characterized in that generating a quantum random number exchange message including the first quantum random number, encrypting the quantum random number exchange message with the primary session key and transmitting the message to the VPN client.
제2항에 있어서,
상기 세션 관리부는,
상기 VPN 클라이언트로부터, 상기 2차 VPN 세션에 대한 세션 식별정보 및 IP 주소를 포함하고 상기 2차 세션 키로 암호화된 양자 난수 교환 완료 메시지를 수신하며, 상기 암호화된 양자 난수 교환 완료 메시지를 상기 2차 세션 키로 복호화하는 것을 특징으로 하는 VPN 장치.
3. The method of claim 2,
The session management unit,
Receives, from the VPN client, a quantum random number exchange completion message including session identification information and IP address for the secondary VPN session and encrypted with the secondary session key, and sends the encrypted quantum random number exchange completion message to the secondary session VPN device, characterized in that decryption with a key.
제1항에 있어서,
상기 세션 관리부는,
물리적 네트워크 인터페이스 카드(NIC: Network Interface Card)를 기반으로 제1 가상 NIC를 생성한 후, 제1 가상 NIC를 기반으로 상기 1차 VPN 세션을 수립하고, 상기 제1 가상 NIC를 기반으로 제2 가상 NIC를 생성한 후 상기 제2 가상 NIC를 기반으로 상기 2차 VPN 세션을 수립하는 것을 특징으로 하는 VPN 장치.
According to claim 1,
The session management unit,
After a first virtual NIC is created based on a physical network interface card (NIC), the first VPN session is established based on the first virtual NIC, and a second virtual NIC is established based on the first virtual NIC. VPN device, characterized in that after the NIC is created, the secondary VPN session is established based on the second virtual NIC.
제1항에 있어서,
인증 기관으로부터 인증 기관 개인키를 발급받아 저장하는 인증서 관리부;를 더 포함하고,
상기 세션 관리부는,
상기 양자 난수 생성기에서 생성된 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하고, 상기 VPN 클라이언트로부터 상기 제2 양자 난수의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료하는 것을 특징으로 하는 VPN 장치.
According to claim 1,
It further includes; a certificate management unit for receiving and storing the certificate authority private key from the certification authority;
The session management unit,
The second quantum random number generated by the quantum random number generator is encrypted with the certificate authority private key and transmitted to the VPN client, and the VPN session with the VPN client is forcibly terminated depending on whether the second quantum random number is received from the VPN client VPN device, characterized in that.
제5항에 있어서,
상기 세션 관리부는,
상기 VPN 클라이언트로부터 주기적으로 수신되는 세션 상태 정보에 기초하여 상기 VPN 클라이언트가 데이터를 전송하지 않고 비활성 상태인 것으로 판단되는 경우, 상기 제2 양자 난수를 상기 VPN 클라이언트로 전송하는 것을 특징으로 하는 VPN 장치.
6. The method of claim 5,
The session management unit,
The VPN device, characterized in that when it is determined that the VPN client is in an inactive state without transmitting data based on the session state information periodically received from the VPN client, the second quantum random number is transmitted to the VPN client.
제5항에 있어서,
상기 세션 관리부는,
상기 제2 양자 난수를 해쉬 알고리즘에 적용하여 특정 사이즈의 축소된 메시지를 생성하고, 상기 축소된 메시지를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 것을 특징으로 하는 VPN 장치.
6. The method of claim 5,
The session management unit,
A VPN device, characterized in that by applying the second quantum random number to a hash algorithm to generate a reduced message of a specific size, encrypting the reduced message with the private key of the certification authority and transmitting the reduced message to the VPN client.
제7항에 있어서,
상기 세션 관리부는,
상기 VPN 클라이언트로부터 상기 축소된 메시지와 동일한 메시지의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료하는 것을 특징으로 하는 VPN 장치.
8. The method of claim 7,
The session management unit,
The VPN device, characterized in that forcibly terminating the VPN session with the VPN client according to whether a message identical to the reduced message is received from the VPN client.
VPN(Virtual Private Network) 서버가 VPN 클라이언트와 통신하여 가상 사설망을 구축하는 방법으로서,
상기 VPN 클라이언트와 유사 난수를 교환하여 1차 세션 키를 생성하고 1차 VPN 세션을 수립하는 단계; 및
양자 난수 생성기에서 생성된 제1 양자 난수를 상기 VPN 클라이언트로 전송하고 상기 제1 양자 난수를 기초로 2차 세션 키를 생성하여 2차 VPN 세션을 수립하는 단계를 포함하는 방법.
A method in which a VPN (Virtual Private Network) server communicates with a VPN client to establish a virtual private network, the method comprising:
exchanging pseudo-random numbers with the VPN client to generate a primary session key and establishing a primary VPN session; and
A method comprising: transmitting a first quantum random number generated by a quantum random number generator to the VPN client and generating a secondary session key based on the first quantum random number to establish a secondary VPN session.
제9항에 있어서,
상기 2차 VPN 세션을 수립하는 단계는,
상기 제1 양자 난수를 포함하는 양자 난수 교환 메시지를 생성하고 상기 양자 난수 교환 메시지를 상기 1차 세션 키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
10. The method of claim 9,
The step of establishing the second VPN session comprises:
generating a quantum random number exchange message including the first quantum random number, encrypting the quantum random number exchange message with the primary session key, and transmitting the encrypted quantum random number exchange message to the VPN client.
제10항에 있어서,
상기 VPN 클라이언트로부터, 상기 2차 VPN 세션에 대한 세션 식별정보 및 IP 주소를 포함하고 상기 2차 세션 키로 암호화된 양자 난수 교환 완료 메시지를 수신하며, 상기 암호화된 양자 난수 교환 완료 메시지를 상기 2차 세션 키로 복호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
11. The method of claim 10,
Receives, from the VPN client, a quantum random number exchange completion message including session identification information and IP address for the secondary VPN session and encrypted with the secondary session key, and transmits the encrypted quantum random number exchange completion message to the secondary session and decrypting with the key.
제9항에 있어서,
상기 1차 VPN 세션을 수립하는 단계는,
물리적 네트워크 인터페이스 카드(NIC: Network Interface Card)를 기반으로 제1 가상 NIC를 생성하고, 상기 제1 가상 NIC를 기반으로 상기 1차 VPN 세션을 수립하며,
상기 2차 VPN 세션을 수립하는 단계는,
상기 제1 가상 NIC를 기반으로 제2 가상 NIC를 생성하고, 상기 제2 가상 NIC를 기반으로 상기 2차 VPN 세션을 수립하는 것을 특징으로 하는 방법.
10. The method of claim 9,
The step of establishing the first VPN session comprises:
creating a first virtual NIC based on a physical network interface card (NIC), establishing the first VPN session based on the first virtual NIC,
The step of establishing the second VPN session comprises:
Creating a second virtual NIC based on the first virtual NIC, and establishing the secondary VPN session based on the second virtual NIC.
제9항에 있어서,
인증 기관으로부터 인증 기관 개인키를 발급받아 저장하는 단계;
상기 양자 난수 생성기에서 생성된 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계; 및
상기 VPN 클라이언트로부터 상기 제2 양자 난수의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료하는 단계를 더 포함하는 것을 특징으로 하는 방법.
10. The method of claim 9,
receiving and storing a certification authority private key from a certification authority;
encrypting the second quantum random number generated by the quantum random number generator with the certificate authority private key and transmitting the encrypted second quantum random number to the VPN client; and
The method further comprising the step of forcibly terminating the VPN session with the VPN client according to whether the second quantum random number is received from the VPN client.
제13항에 있어서,
상기 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계는,
상기 VPN 클라이언트로부터 주기적으로 수신되는 세션 상태 정보에 기초하여 상기 VPN 클라이언트가 데이터를 전송하지 않고 비활성 상태인 것으로 판단되는 경우, 상기 제2 양자 난수를 상기 VPN 클라이언트로 전송하는 것을 특징으로 하는 방법.
14. The method of claim 13,
The step of encrypting the second quantum random number with the authentication authority private key and transmitting it to the VPN client comprises:
When it is determined that the VPN client is in an inactive state without transmitting data based on the session state information periodically received from the VPN client, the second quantum random number is transmitted to the VPN client.
제13항에 있어서,
상기 제2 양자 난수를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 단계는,
상기 제2 양자 난수를 해쉬 알고리즘에 적용하여 특정 사이즈의 축소된 메시지를 생성하고, 상기 축소된 메시지를 상기 인증 기관 개인키로 암호화하여 상기 VPN 클라이언트로 전송하는 것을 특징으로 하는 방법.
14. The method of claim 13,
The step of encrypting the second quantum random number with the authentication authority private key and transmitting it to the VPN client comprises:
A method of generating a reduced message of a specific size by applying the second quantum random number to a hash algorithm, encrypting the reduced message with the certificate authority private key, and transmitting the reduced message to the VPN client.
제15항에 있어서,
상기 강제 종료하는 단계는,
상기 VPN 클라이언트로부터 상기 축소된 메시지와 동일한 메시지의 수신 여부에 따라 상기 VPN 클라이언트와의 VPN 세션을 강제 종료하는 것을 특징으로 하는 방법.
16. The method of claim 15,
The step of forcibly quitting is
Method, characterized in that forcibly terminating the VPN session with the VPN client according to whether the same message as the reduced message is received from the VPN client.
VPN(Virtual Private Network) 서버와 통신하여 가상 사설망을 구축하기 위한 VPN 장치로서,
상기 VPN 서버와 통신하는 통신부;
프로세서; 및
상기 프로세서에 의해 실행 가능한 명령어를 저장하는 메모리를 포함하고,
상기 프로세서는,
상기 VPN 서버와 유사 난수를 교환하여 1차 세션 키를 생성하고 1차 VPN 세션을 수립하며, 상기 VPN 서버로부터 수신되는 제1 양자 난수를 기초로 2차 세션 키를 생성하여 2차 VPN 세션을 수립하는 것을 특징으로 하는 VPN 장치.
A VPN device for establishing a virtual private network by communicating with a VPN (Virtual Private Network) server, comprising:
a communication unit communicating with the VPN server;
processor; and
a memory for storing instructions executable by the processor;
The processor is
A first session key is generated by exchanging a pseudorandom number with the VPN server, a first VPN session is established, and a second VPN session is established by generating a second session key based on the first quantum random number received from the VPN server VPN device, characterized in that.
KR1020200150769A 2020-11-12 2020-11-12 Apparatus and method for constructing virtual private network based on quantum random number KR102558457B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200150769A KR102558457B1 (en) 2020-11-12 2020-11-12 Apparatus and method for constructing virtual private network based on quantum random number

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200150769A KR102558457B1 (en) 2020-11-12 2020-11-12 Apparatus and method for constructing virtual private network based on quantum random number

Publications (2)

Publication Number Publication Date
KR20220064567A true KR20220064567A (en) 2022-05-19
KR102558457B1 KR102558457B1 (en) 2023-07-20

Family

ID=81801195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200150769A KR102558457B1 (en) 2020-11-12 2020-11-12 Apparatus and method for constructing virtual private network based on quantum random number

Country Status (1)

Country Link
KR (1) KR102558457B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101886367B1 (en) * 2017-10-12 2018-08-09 (주)티엔젠 Generation of device individual session key in inter-object communication network and verification of encryption and decryption function between devices using it

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101886367B1 (en) * 2017-10-12 2018-08-09 (주)티엔젠 Generation of device individual session key in inter-object communication network and verification of encryption and decryption function between devices using it

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
QDK, Q#기반 양자난수생성기를 OpenVPN에 적용한 양자 VPN(Q-VPN) 개발하기, 2020.08.21* *

Also Published As

Publication number Publication date
KR102558457B1 (en) 2023-07-20

Similar Documents

Publication Publication Date Title
CN100591003C (en) Enabling stateless server-based pre-shared secrets
US6539479B1 (en) System and method for securely logging onto a remotely located computer
US7334255B2 (en) System and method for controlling access to multiple public networks and for controlling access to multiple private networks
RU2734294C2 (en) Method and system for distributing keys between a server and a medical device
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
US20100195824A1 (en) Method and Apparatus for Dynamic Generation of Symmetric Encryption Keys and Exchange of Dynamic Symmetric Key Infrastructure
EP2355401A1 (en) Key distribution system
CN110505055B (en) External network access identity authentication method and system based on asymmetric key pool pair and key fob
CN109379345B (en) Sensitive information transmission method and system
CN104243452B (en) A kind of cloud computing access control method and system
CN110519222B (en) External network access identity authentication method and system based on disposable asymmetric key pair and key fob
CN110493124A (en) Protect the encryption instantaneous communication system and communication means of data safety
CN110730071A (en) Power distribution communication equipment safety access authentication method, device and equipment
KR20190040443A (en) Apparatus and method for creating secure session of smart meter
KR20160100078A (en) Client Terminal for Supporting Banking Service, Authentication Server, Method and Application for User Terminal
JP2007104118A (en) Protection method of secret information and communication apparatus
CN115473655B (en) Terminal authentication method, device and storage medium for access network
CN110166460B (en) Service account registration method and device, storage medium and electronic device
CN110417722B (en) Business data communication method, communication equipment and storage medium
US6975729B1 (en) Method and apparatus for facilitating use of a pre-shared secret key with identity hiding
JP2022523068A (en) Systems and methods for secure electronic data transfer
JP4924943B2 (en) Authenticated key exchange system, authenticated key exchange method and program
KR102558457B1 (en) Apparatus and method for constructing virtual private network based on quantum random number
JP2023145915A (en) Cryptographic communication path monitoring system and monitoring method
KR20190115489A (en) IOT equipment certification system utilizing security technology

Legal Events

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