KR102649485B1 - 가상 사설 네트워크 시스템 및 그 제어방법 - Google Patents
가상 사설 네트워크 시스템 및 그 제어방법 Download PDFInfo
- Publication number
- KR102649485B1 KR102649485B1 KR1020220083695A KR20220083695A KR102649485B1 KR 102649485 B1 KR102649485 B1 KR 102649485B1 KR 1020220083695 A KR1020220083695 A KR 1020220083695A KR 20220083695 A KR20220083695 A KR 20220083695A KR 102649485 B1 KR102649485 B1 KR 102649485B1
- Authority
- KR
- South Korea
- Prior art keywords
- vpn
- key
- authentication
- tunnel
- information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000015654 memory Effects 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 4
- 230000005641 tunneling Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
- H04L9/3242—Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
VPN 시스템 및 그 제어 방법이 개시된다. 와이어가드 프로토콜 기반의 VPN 시스템에서의 제어 방법은 접속을 원하는 디바이스의 개인키와 공개키를 포함하는 키 쌍을 생성하고 상기 개인키를 PUF 칩에 저장하는 단계, 상기 디바이스로부터 제공되는 인증을 위한 정보를 이용하여 상기 디바이스가 사전에 허용된 디바이스인지를 확인하고, 상기 디바이스에 VPN 터널 정보와 공개키를 제공하는 단계, 상기 디바이스의 터널 생성 요청에 따라 상기 VPN 터널 정보와 상기 디바이스의 개인키를 기반으로 디지털 서명값을 생성하여 상기 디바이스에 제공하는 단계, 및 상기 디바이스에서 상기 디지털 서명값의 인증이 완료되면 VPN 터널 연결을 위해 VPN 핸드쉐이킹을 수행하는 단계를 포함할 수 있다.
Description
본 명세서는 가상 사설 네트워크(Virtual Private Network, VPN) 시스템 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 와이어가드(WireGuard) 프로토콜에서 보안 서비스를 제공하기 위한 시스템 및 방법에 관한 것이다.
가상화(Virtualization)란 물리적으로 다른 시스템을 논리적으로 통합하거나 반대로 하나의 시스템을 논리적으로 분할해 자원을 효율적으로 사용케 하는 기술을 말한다. 가상화의 종류에는 어플리케이션 가상화, 데스크탑 가상화, 서버 가상화, 스토리지 가상화, 네트워크 가상화 등으로 구분될 수 있다.
VPN은 네트워크 가상화의 예로서, 인터넷과 같은 공용 네트워크(public network)를 이용하여 사설 네트워크(private network)와 같이 안전한 네트워크를 구성하는 방법으로서, 상대적으로 저렴한 공용 네트워크를 통해 안전한 통신을 제공한다는 장점이 있다.
도 1은 일반적인 VPN 시스템의 개념을 보인 도면이다.
즉, 인터넷과 같은 공용 네트워크에서 두 네트워크 또는 지점간 연결(예를 들어, 본사(head office)와 지사(regional office)와의 연결 또는 지사와 지사와의 연결 또는 원격/로밍 사용자들(remote/roaming users)과 본사와의 연결)을 사설 네트워크(private network)처럼 사용하기 위해 터널링, 암호화 등을 사용한다.
VPN은 일반적으로 SSL/TLS (Secure Sockets Layer/Transport Layer Security)을 이용한 VPN인 오픈 VPN(open VPN)과 느린 속도를 개선한 IPsec(IP Security) VPN이 있다.
SSL/TLS VPN은 서버를 두고 여러 클라이언트들(PC, 스마트폰, 태블릿 PC, 노트북 등)들이 웹 브라우저를 통해 서버에 접근하고 인증을 통과하면 사설 네트워크가 구성되는 방식이다. 즉, SSL/TLS VPN은 서버 장비 1개와 클라이언트를 인터넷 웹브라우저를 통해 연결하는 방식이다.
IPsec VPN은 서버 장비 2개를 서로 연결함으로써, 네트워크와 네트워크를 연결하는 방식이다.
이러한 VPN은 원격지 연결 유형에 따라 사이트-투-사이트(site-to-site) VPN 방식과 원격 억세스(remote access) VPN 방식으로 구분할 수 있다.
도 2(a)는 일반적인 사이트-투-사이트(site-to-site) VPN 방식의 예시를 보인 도면이다. 즉, 사이트-투-사이트 VPN 방식은 공용 네트워크를 통해 두 네트워크를 내부 네트워크처럼 연결하는 방식으로 본사와 지사와의 연결이나 지사와 지사와의 연결 등에 사용될 수 있다. 이 방식은 2개의 VPN 장비를 통해 터널링을 구성하며, IPsec 등을 사용한다.
도 2(b)는 일반적인 원격 억세스(remote access) VPN 방식의 예시를 보인 도면이다. 즉, 원격 억세스(remote access) VPN 방식은 공용 네트워크를 통해 원격 사용자가 내부 네트워크에 접속한 것처럼 연결하는 방식으로, 원격/로밍 사용자들과 본사와의 연결 등에 사용될 수 있다. 이 방식은 사용자의 VPN 프로그램으로 VPN 터널링을 구성하며, SSL/TLS 등을 사용한다.
한편, 최근에는 VPN 프로토콜로 와이어가드(WireGuard) VPN 프로토콜이 주목받고 있다. 와이어가드 VPN 프로토콜은 기존의 IPsec VPN이나 SSL/TLS VPN 기술보다 경량화된 알고리즘을 통해 성능을 개선한 것이 특징이다. 또한 SSL/TLS VPN의 경우에는 한번 핸드쉐이킹(handshaking)을 통해 암호화를 위한 대칭키를 교환하고 세션(session)이 끝날 때까지 동일한 키를 사용한다. 이에 반해, 와이어가드 VPN 프로토콜은 2분마다 ECC(Elliptic Curve Cryptosystem)를 이용하여 대칭키를 교환함으로써 PFS(Perfect Forward Secrecy)를 제공하는 프로토콜로 제로 트러스트(Zero Trust) 시대에 맞는 VPN 프로토콜이다.
하지만, 종래의 와이어가드 VPN 프로토콜에서는 ECC 기반으로 생성된 개인키(private key)를 보호하는 방법이 없다.
본 발명은 전술한 문제점 및 이와 연관된 다양한 문제점을 해결하기 위해 제안되는 것으로서, 본 발명의 목적은 와이어가드 VPN 프로토콜에서 ECC 기반으로 생성된 개인키를 보호할 수 있도록 하는 가상 사설 네트워크 시스템 및 그 제어 방법을 제공함에 있다.
본 발명의 다른 목적은 물리적 복제 방지 기능(Physically Unclonable Functions, PUF) 칩을 이용하여 개인키를 저장함으로써, 매우 높은 보안 성능을 제공하는 가상 사설 네트워크 시스템 및 그 제어 방법을 제공함에 있다.
다만, 전술한 기술적 과제만으로 제한되는 것은 아니고, 본 문서 전체 내용에 기초하여 당업자가 유추할 수 있는 다른 기술적 과제로 실시예들의 권리범위가 확장될 수 있다.
상술한 목적 및 다른 이점을 달성하기 위해서 실시예들에 따른 와이어가드(wireguard) 프로토콜 기반의 VPN 시스템에서의 제어 방법은 접속을 원하는 디바이스의 개인키와 공개키를 포함하는 키 쌍을 생성하고 상기 개인키를 PUF 칩에 저장하는 단계, 상기 디바이스로부터 제공되는 인증을 위한 정보를 이용하여 상기 디바이스가 사전에 허용된 디바이스인지를 확인하고, 상기 디바이스에 VPN 터널 정보와 공개키를 제공하는 단계, 상기 디바이스의 터널 생성 요청에 따라 상기 VPN 터널 정보와 상기 디바이스의 개인키를 기반으로 디지털 서명값을 생성하여 상기 디바이스에 제공하는 단계, 및 상기 디바이스에서 상기 디지털 서명값의 인증이 완료되면 VPN 터널 연결을 위해 VPN 핸드쉐이킹을 수행하는 단계를 포함할 수 있다.
상기 VPN 터널 정보는 상기 PUF 칩에서 생성한 디바이스의 고유 식별 정보를 포함하는 것을 일 실시예로 한다.
상기 디바이스로부터 제공되는 인증을 위한 정보는 상기 디바이스의 MAC(Media Access Control) 주소와 시리얼 번호를 포함하는 것을 일 실시예로 한다.
상기 디바이스로부터 제공되는 인증을 위한 정보는 암호화 해시 함수와 기밀 암호화 키를 수반하는 HMAC(Hash-based Message Authentication Code)를 더 포함하는 것을 일 실시예로 한다.
상기 디지털 서명값은 상기 디바이스의 고유 식별 정보의 해시된 값을 상기 디바이스의 개인키로 암호화하여 생성되는 것을 일 실시예로 한다.
상기 VPN 핸드쉐이킹을 수행하는 단계는 상기 디바이스와 키 교환을 통해 대칭키를 생성하고, 생성된 대칭키를 상기 PUF 칩에 저장하는 것을 일 실시예로 한다.
실시예들에 따른 VPN 시스템의 제어 방법은 상기 대칭키를 이용하여 데이터를 암호화하여 전송하는 단계를 더 포함할 수 있다.
상기 대칭키를 이용하여 암호화된 데이터는 패킷 형태인 것을 일 실시예로 한다.
실시예들에 따른 VPN 시스템의 제어 방법은 상기 대칭키를 이용하여 암호화된 데이터가 수신되면, 상기 대칭키의 인증을 수행한 후 상기 데이터의 복호화를 수행하는 단계를 더 포함할 수 있다.
실시예들에 따른 와이어가드 프로토콜 기반의 VPN 시스템은 접속을 원하는 디바이스, PUF 칩들의 어레이로 구성된 보안 메모리를 포함하는 VPN 서버, 및 상기 디바이스와 상기 VPN 서버를 연결하기 위한 네트워크를 포함할 수 있다.
상기 VPN 서버는 상기 보안 메모리에서 상기 디바이스의 개인키와 공개키를 포함하는 키 쌍을 생성한 후 상기 개인키를 상기 보안 메모리에 저장하는 것을 일 실시예로 한다
상기 VPN 서버는 상기 디바이스로부터 제공되는 인증을 위한 정보를 이용하여 상기 디바이스가 사전에 허용된 디바이스인지를 확인한 후 상기 디바이스에 VPN 터널 정보와 공개키를 제공하는 것을 일 실시예로 한다
상기 VPN 서버는 상기 디바이스의 터널 생성 요청에 따라 상기 VPN 터널 정보와 상기 디바이스의 개인키를 기반으로 디지털 서명값을 생성하여 상기 디바이스에 제공하는 것을 일 실시예로 한다
상기 VPN 서버는 상기 디바이스에서 상기 디지털 서명값의 인증이 완료되면 VPN 터널 연결을 위해 VPN 핸드쉐이킹을 수행하는 것을 일 실시예로 한다.
상기 VPN 터널 정보는 상기 보안 메모리에서 생성한 디바이스의 고유 식별 정보를 포함하는 것을 일 실시예로 한다.
상기 디바이스로부터 제공되는 인증을 위한 정보는 상기 디바이스의 MAC 주소와 시리얼 번호를 포함하는 것을 일 실시예로 한다.
상기 디바이스로부터 제공되는 인증을 위한 정보는 암호화 해시 함수와 기밀 암호화 키를 수반하는 HMAC를 더 포함하는 것을 일 실시예로 한다.
상기 VPN 서버는 상기 디바이스의 고유 식별 정보의 해시된 값을 상기 디바이스의 개인키로 암호화하여 상기 디지털 서명값을 생성하는 것을 일 실시예로 한다.
상기 VPN 서버는 상기 디바이스와 키 교환을 통해 대칭키를 생성하는 VPN 핸드쉐이킹을 수행하고, 상기 생성된 대칭키를 상기 보안 메모리에 저장하는 것을 일 실시예로 한다.
상기 VPN 서버는 상기 대칭키를 이용하여 데이터를 암호화하여 전송하는 것을 일 실시예로 한다.
상기 대칭키를 이용하여 암호화된 데이터는 패킷 형태인 것을 일 실시예로 한다.
상기 VPN 서버는 상기 대칭키를 이용하여 암호화된 데이터가 수신되면, 상기 대칭키의 인증을 수행한 후 상기 데이터의 복호화를 수행하는 것을 일 실시예로 한다.
실시예들에 따른 컴퓨터에서 판독 가능한 기록매체에 저장된 컴퓨터 프로그램은 하드웨어인 컴퓨터와 결합되어, 위의 방법을 수행할 수 있다.
상기 해결 수단들은 본 명세서의 다양한 실시예들 중 일부에 불과하며, 본 명세서의 기술적 특징들이 반영된 변형 실시예들도, 본 명세서에 기재된 전반적인 취지를 통해 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자들이 추론할 수 있다.
실시예들에 따른 가상 사설 네트워크 시스템 및 그 제어 방법은 VPN 서버에 접속하는 VPN 클라이언트 별로 PKI 키 쌍(공개키+개인키)을 만들고, 이 중 개인키를 VPN 서버의 물리적 복제 방지 기능 (Physically Unclonable Functions, PUF) 칩에 저장하도록 함으로써, VPN 서버의 개인키를 보호할 수 있다. 또한, 각 VPN 클라이언트별로 생성된 PKI 키 쌍을 통해서 인증과 보안 통신을 함으로써 보안성을 더욱 높일 수 있다.
위에서 명시적으로 언급한 기술적 효과 이외에, 본 명세서 전체 기재를 통해 당업자에게 자명한 효과도 추론할 수 있다.
도면은 실시예들을 더욱 이해하기 위해서 포함되며, 도면은 실시예들에 관련된 설명과 함께 실시예들을 나타낸다.
도 1은 일반적인 VPN 시스템의 개념을 보인 도면이다.
도 2(a)는 일반적인 사이트-투-사이트 VPN 방식의 예시를 보인 도면이다.
도 2(b)는 일반적인 원격 억세스 VPN 방식의 예시를 보인 도면이다.
도 3은 실시예들에 따른 VPN 시스템의 개념을 보인 블록도이다.
도 4는 실시예들에 따른 와이어가드 VPN 시스템의 개념을 보인 블록도이다.
도 5는 실시예들에 따른 터널 VPN의 PUF 칩에서 PKI 키 쌍을 생성하여 저장하는 예시를 보인 흐름도이다.
도 6은 실시예들에 따른 디바이스 인증 요청 과정의 예시를 보인 흐름도이다.
도 7은 실시예들에 따른 터널 생성 요청 인증 과정의 예시를 보인 흐름도이다.
도 8은 실시예들에 따른 와이어가드 VPN 핸드쉐이킹 과정의 예시를 보인 흐름도이다.
도 1은 일반적인 VPN 시스템의 개념을 보인 도면이다.
도 2(a)는 일반적인 사이트-투-사이트 VPN 방식의 예시를 보인 도면이다.
도 2(b)는 일반적인 원격 억세스 VPN 방식의 예시를 보인 도면이다.
도 3은 실시예들에 따른 VPN 시스템의 개념을 보인 블록도이다.
도 4는 실시예들에 따른 와이어가드 VPN 시스템의 개념을 보인 블록도이다.
도 5는 실시예들에 따른 터널 VPN의 PUF 칩에서 PKI 키 쌍을 생성하여 저장하는 예시를 보인 흐름도이다.
도 6은 실시예들에 따른 디바이스 인증 요청 과정의 예시를 보인 흐름도이다.
도 7은 실시예들에 따른 터널 생성 요청 인증 과정의 예시를 보인 흐름도이다.
도 8은 실시예들에 따른 와이어가드 VPN 핸드쉐이킹 과정의 예시를 보인 흐름도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 하기의 실시예들은 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예들로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
본 명세서의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 안되며, 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
바람직한 실시예들에 대해 구체적으로 설명하되, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 구현될 수 있는 실시예들만을 나타내기보다는 바람직한 실시예들을 설명하기 위한 것이다. 이하에서는 본 발명에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함하여 설명한다. 그러나 본 발명이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다. 본 명세서에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 본 발명은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다. 또한 이하의 도면들 및 상세한 설명은 구체적으로 기술된 실시예들에만 국한되어 해석되지 않고, 도면 및 상세한 설명에 기재된 실시예들과 균등하거나, 대체 가능한 것들까지 포함하는 것으로 해석되어야만 한다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 또한, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능하다. 예를 들어, 연속적으로 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
본 발명은 개인키를 물리적 복제 방지 기능 (Physically Unclonable Functions, PUF) 칩에 보관을 하도록 한다.
본 발명은 각 VPN 클라이언트의 유효성 검증을 위한 개인키를 보안 메모리에 저장하도록 한다. 본 발명은 복수개의 PUF 칩들을 모아 어레이 형태로 만든 PUF 어레이를 보안 메모리라 칭하기로 한다.
도 3은 실시예들에 따른 VPN 시스템의 개념을 보인 블록도이다.
도 3은 보면, 하나 이상의 VPN 클라이언트들(301~30N), VPN 서버(330), 및 하나 이상의 VPN 클라이언트들(301~30N)과 VPN 서버(330)를 연결하는 공용 네트워크(310)를 포함할 수 있다. 여기서, 공용 네트워크 중 하나로 인터넷이 있다.
도 3에서 VPN 클라이언트는 공용 네트워크(310)을 통해 VPN 서버(330)에 접속 가능한 기기는 어느 것이나 가능하다. 본 발명에서 디바이스는 VPN 클라이언트들 중 하나이다. 실시예들에 따르면, 디바이스는 CCTV와 같은 카메라, 개인 컴퓨터(PC), 스마트폰, 노트북, 태블릿 PC, 개인 휴대 정보 단말기(PDA) 또는 스마트 티브이(Smart TV) 등과 같이 다양한 형태로 구현될 수 있다. 본 문서에서 디바이스는 VPN 클라이언트 또는 클라이언트와 동일한 의미로 해석된다.
그리고, VPN 서버(330)는 보안 메모리를 포함하는 것을 일 실시예로 한다. 상기 보안 메모리는 복수개의 물리적 복제 방지 기능 (Physically Unclonable Functions, PUF) 칩들의 어레이(이를 멀티 보안칩이라 칭함)로 이루어지는 것을 일 실시예로 한다. 즉, 본 발명은 복수개의 PUF 칩들을 모아 어레이 형태로 만든 PUF 어레이를 보안 메모리(또는 secure storage라 칭함) 라 칭하기로 한다. 본 문서에서 PUF 칩과 PUF 보안칩은 서로 동일한 의미로 해석된다. 실시예들에 따르면, PUF 칩은 CPU(Central Processing Unit) 또는 CPU와 유사한 동작을 수행하는 프로세서 및 메모리를 포함할 수 있다.
본 발명에서 VPN 클라이언트(301)의 유효성 검증을 위한 개인키는 VPN 서버(330)의 보안 메모리의 PUF 칩에 저장하는 것을 일 실시예로 한다.
본 발명에서 PUF 칩은 반도체 공정에서 생기는 미세 간극 차이를 이용하여 복제 불가능한 개인키(또는 보안키라 함)를 생성한다. 즉, PUF 칩은 이 미세 간극차(즉, 고유값)를 이용하여 터널 생성 요청 인증, VPN 핸드쉐이킹(handshaking) 시 사용하는 개인키(private key)를 만든다. 이때, 미세 간극 차이가 물리적으로 복제가 불가능 하기 때문에 이 값을 이용하여 만든 개인키도 복제가 불가능하며, 따라서 본 발명은 이를 이용하여 보안을 강화한다.
다음은 VPN 클라이언트가 카메라와 같은 디바이스일 때 와이어가드 VPN에서 보안을 강화하는 실시예들에 대해 설명하기로 한다.
도 4는 실시예들에 따른 와이어가드 VPN 시스템의 개념을 보인 블록도이다. 도 4에서 VPN 서버(330)는 인증 VPN(410)과 터널 VPN(420)를 포함하는 것을 일 실시예로 한다. 도 4에서 인증 VPN(410)은 인증 VPN 서버 또는 인증부라 칭할 수 있고, 터널 VPN(420)는 터널 VPN 서버 또는 터널 할당부라 칭할 수 있다.
상기 터널 VPN(420)는 보안 메모리(421)를 포함하는 것을 일 실시예로 한다. 상기 보안 메모리(421)는 복수개의 PUF 칩들이 어레이 형태로 이루어지는 것을 일 실시예로 한다. 즉, 보안 메모리(421)는 물리적 복제방지 기능이 탑재된 복수개의 PUF 칩들을 하나의 모듈에 넣어서 구성된다.
본 발명에서 상기 디바이스(400)의 유효성 검증을 위한 개인키는 보안 메모리(421)에 저장되는 것을 일 실시예로 한다. 상기 보안 메모리(421)에 저장된 개인키는 복제가 불가능하고, 외부로 적출된다고 하여도 탈취가 불가능하다.
도 4에서 디바이스(400)와 인증 VPN(410) 사이에는 카메라 인증 과정이 있다. 카메라 인증 과정은 디바이스(400)가 카메라라고 가정하였을 때, 카메라를 연결해서 사용하는 어떤 서비스 플랫폼(ex. CCTV)인 경우, 허용된 카메라만 VPN 연결 후 데이터 송수신을 해야 하기 때문에 사전 허용된 카메라인지 판단하는 과정이다.
또한, 도 4에서 디바이스(400)와 터널 VPN(420) 사이에는, 터널 생성 요청 인증 과정과 와이어가드 VPN 핸드쉐이킹(handshaking) 과정이 있다. 터널 생성 요청 인증 과정은 현재 터널 생성을 요청하고 있는 디바이스(400)가 정말로 인증 VPN(410)으로 부터 할당 받은 디바이스 인지 유효성 체크를 하는 과정이고, 와이어가드 VPN handshaking 과정은 상기 디바이스가 터널 생성 요청 인증 과정에서 유효하다고 확인되면 VPN 터널 연결을 위한 인증을 수행하는 과정이다. 이 두 가지 과정에서 각각 다른 공개키를 사용한다. 그러므로, 보안 메모리(421)의 PUF 칩에서는 하나의 디바이스에 대해 두 쌍의 공개키를 생성한다.
실시예들에 따르면, 터널 생성 요청 인증 과정은 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA) 서명값 인증을 통해 유효성 체크를 하는데, 이 서명값을 인증할 때 공개키 하나를 사용한다. 그리고, 와이어가드 VPN handshaking 시에도 대칭키 생성을 위해 키 교환을 하는데 여기서 또 다른 공개키를 사용한다. 본 발명은 설명의 편의를 위해 터널 생성 요청 인증 과정에서 사용되는 공개키를 제1 공개키라 칭하고, 와이어가드 VPN handshaking 과정에서 사용되는 공개키를 제2 공개키라 칭하기로 한다.
도 5는 실시예들에 따른 터널 VPN의 PUF 칩에서 PKI 키 쌍을 생성하여 저장하는 예시를 보인 흐름도이다.
즉, 디바이스(400)가 공용 네트워크(310)를 통해 접속하면 터널 VPN(420)의 보안 메모리(421)의 PUF 칩에서 ECC 기반의 PKI 키 쌍을 생성한다(S501). 여기서, ECC는 PKI 키 쌍의 생성 시 타원 곡선을 이용하여 만드는 것을 의미한다. PKI 키 쌍은 접속을 원하는 VPN 클라이언트(즉, 디바이스(401))의 개인키와 공개키로 이루어지는 것을 일 실시예로 한다. 그리고, 개인키는 PUF 칩의 반도체 공정에서 생기는 미세 간극 차이를 이용하여 생성되는 것을 일 실시예로 한다. 즉, PUF 칩 자체의 간극을 이용하여 개인키를 여러 개 만들 수 있고, 마찬가지로 그 수만큼 페어가 되는 공개키(즉, PKI 키 쌍)도 만들 수 있다.
단계 S501에서 생성된 PKI 키 쌍은 PUF 칩에 저장된다(S502). 이때, 개인키와 공개키 모두 PUF 칩에 저장될 수도 있고, 개인키만 PUF 칩에 저장될 수도 있다. 본 발명은 PKI 키 쌍 중 개인키만 PUF 칩에 저장하는 것을 일 실시예로 한다.
단계 S502에서 개인키 또는 PKI 키 쌍의 저장이 완료되면 디바이스(400) 즉, 카메라의 연결이 준비된 상태가 된다.
전술한 바와 같이, 터널 생성 요청 인증 과정과 와이어가드 VPN handshaking 과정에서 각각 다른 공개키를 사용하므로, 보안 메모리(421)의 PUF 칩에서는 상기 디바이스(400)에 대해 두 개의 PKI 키 쌍을 생성한다.
도 5는 VPN 서버(330)에 접속되는 VPN 클라이언트별로 수행된다. 즉, VPN 서버(330)에 접속하는 VPN 클라이언트 당 2개의 PKI 키 쌍을 만들어 보안 메모리(421)에 저장한다. 다시 말해, 각 VPN 클라이언트의 유효성을 검증하기 위해 서명값을 인증할 수 있는 PKI 키 쌍을 보안 메모리(421)에 미리 생성하여 저장해둔다.
일 실시예로, 본 발명의 보안 메모리(421)에서는 PKI 키 쌍들을 생성하여 디바이스들의 연결 준비 상태를 미리 만들어 저장하고 있고, 디바이스가 연결이 될 때 인증 완료 후 내부적으로 하나씩 PKI 키 쌍을 발급해준다.
도 6은 실시예들에 따른 디바이스 인증 요청 과정의 예시를 보인 흐름도이다.
실시예들에 따르면, 디바이스 인증을 위해 디바이스(400) 내에 인증을 위한 VPN 에이전트가 탑재되는 것을 일 실시예로 한다. 실시예들에 따른 디바이스 인증 요청 과정은 디바이스(400)와 인증 VPN(410) 사이에서 수행된다.
본 발명에서 디바이스(400)가 카메라라고 가정하였을 때, 카메라를 연결해서 사용하는 어떤 서비스 플랫폼(ex. CCTV)인 경우, 허용된 카메라만 VPN 연결 후 데이터 송수신을 해야 하기 때문에 사전 허용된 카메라인지 판단하는 것을 도 4에서 카메라 인증으로 표시하였다.
즉, 디바이스 인증을 위해, 디바이스(400)(즉, VPN 에이전트)는 디바이스의 MAC(Media Access Control) 주소, 시리얼 번호, HMAC(Hash-based Message Authentication Code)를 인증 VPN(410)으로 전달한다(S601). HMAC는 암호화 해시 함수와 기밀 암호화 키를 수반하는 특정한 유형의 메시지 인증 코드(MAC)이다. 일 실시예로, 디바이스(400)는 키와 메시지를 이용하여 해시함수로부터 HMAC를 생성하고, 생성된 HMAC과 메시지를 인증 VPN(410)로 전송한다. 여기서, 키는 디바이스(400)와 인증 VPN(410)만이 공유하는 비밀키(secret key, 즉 대칭키)이고, 메시지는 임의의 길이를 가지며, 디바이스(400)가 전송하는 요청의 전체(header+body)가 될 수도 있고, URL(Uniform Resource Locator)만 될 수도 있다. 상기 MAC 주소와 시리얼 번호는 인증을 위한 수단의 예시이다. 인증을 위한 정보는 변경, 추가, 삭제될 수 있으므로 본 발명은 MAC 주소와 시리얼 번호로 한정되지 않는다.
인증 VPN(410)은 상기 디바이스(400)가 허용된 디바이스인지를 확인하기 위해 디바이스(400)로부터 전달받은 MAC 주소, 시리얼 번호를 기 저장된 MAC 주소, 시리얼 번호와 비교하여 일치 여부를 판단한다(S602).
단계 S602는 인증 VPN(410)에서 수행될 수도 있고 또는 인증 VPN(410)에 연결된 서비스 플랫폼(예, API 등)에서 수행될 수도 있다. 본 발명은 서비스 플랫폼에서 수행되는 것을 일 실시예로 하다. 즉, 서비스 플랫폼은 MAC 주소와 시리얼 번호를 기반으로 상기 디바이스(400)가 허용할 디바이스인지를 판단한 후, 일치한다고 확인되면 인증 VPN(410)에 상기 디바이스(400)가 허용된 디바이스라는 응답을 전송한다.
단계 S602에서 일치하지 않는다고 확인되면 인증에 실패한 경우이므로 단계 S601로 되돌아간다. 만일 단계 S602에서 일치한다고 확인되면 디바이스(400)로부터 전달받은 HMAC과 인증 VPN(410)에서 생성된 HMAC의 일치 여부를 확인한다(S603). 일 실시예로, 인증 VPN(410)는 디바이스(400)로부터 전달받은 메시지와 갖고 있는 키를 이용하여 해시 함수로부터 HAMC을 생성한 후, 이 HMAC의 값이 상기 디바이스(400)로부터 전달받은 HMAC의 값과 같은지를 비교한다.
단계 S603에서 HMAC이 일치하지 않는다고 확인되면 인증에 실패한 경우이므로 단계 S601로 되돌아간다. 만일 단계 S603에서 HMAC이 일치한다고 확인되면 인증에 성공한 경우이므로, 인증 VPN(410)은 디바이스(400)의 터널 VPN을 할당한다(S604). 즉, 디바이스(400)에게 연결되어야 할 터널 VPN 정보를 전달한다. 일 실시예로, 터널 VPN 정보는 PUF 칩 내에서 생성한 디바이스 별 고유 ID 값이다.
터널 VPN(420)은 실제 VPN 연결을 진행하는 VPN 서버이다. 그리고, 복수개의 디바이스들이 하나의 터널 VPN으로 연결되는 구조를 고려하여 터널 VPN에서는 현재 자신에게 연결되어 있는 디바이스로부터 들어오는 트래픽(traffic)을 항상 체크하고 있다. 한대의 터널 VPN에서 무한개의 디바이스들을 수용할 수 없기 때문에 복수개의 터널 VPN들이 구비된다. 각각의 터널 VPN은 자신의 트래픽 양을 체크하고 이 트래픽 양을 인증 VPN(410)에 전달한다. 그러면, 인증 VPN(410)은 터널 VPN 각각의 트래픽 양을 보고 새로운 디바이스가 연결되었을때 트래픽 양이 적은 터널 VPN을 선정한 후, 디바이스(400)에게 연결되어야 할 터널 VPN 정보(즉, 선정된 터널 VPN 정보)를 전달한다. 즉, 인증 VPN(410)에서 터널 VPN들의 트래픽 양을 보고 load balancing(즉, 부하 분산) 해준다. 일 실시예로, 터널 VPN(420)의 보안 메모리(421)에는 프리 공유 키 값(즉, 사전에 정의되며, 키 교환 과정에서 서로만 알고 있는 노이즈 값)과 디바이스 고유 ID 등이 AES256으로 암호화되어 저장되어 있다.
그리고 나서, 인증 VPN(410)은 터널 VPN(420)의 PUF 칩에서 생성한 공개키를 디바이스(400)로 전달한다(S605). 이를 위해, 인증 VPN(410)과 터널 VPN(420) 사이에서 터널 정보 수집과 키 전달 과정이 수행된다.
상기 공개키는 터널 생성 요청 인증 과정에서 사용할 공개키와 와이어가드 VPN 핸드쉐이킹 과정에서 사용할 공개키이다. 두 과정에서 사용하는 공개키는 서로 다르다. 즉, PUF 칩은 하나의 디바이스에 대해 두 쌍의 공개키를 생성한다.
상기 디바이스(400)는 터널 생성 요청 인증 과정에서 ECDSA 서명값을 인증할 때 공개키 하나를 사용하고, 와이어가드 VPN handshaking 시 대칭키 생성을 위해 키 교환을 할 때 또 다른 공개키를 사용한다. 설명의 편의를 위해, 터널 생성 요청 인증 과정에서 사용되는 공개키를 제1 공개키라 칭하고, 와이어가드 VPN handshaking 과정에서 사용되는 공개키를 제2 공개키라 칭한다.
실시예들에 따르면, 인증 VPN(410)에서는 터널 VPN의 트래픽 양 뿐만 아니라 터널 VPN 내 보안 메모리(421)에서 사전에 생성해 놓은 공개키 정보를 제공받아 메모리 DB에 저장하고 있다. 그리고, 터널 VPN 할당 시에 터널 VPN 정보와 메모리 DB에 저장된 공개키 정보를 같이 디바이스(400)에 전달한다.
도 7은 실시예들에 따른 터널 생성 요청 인증 과정의 예시를 보인 흐름도이다. 실시예들에 따른 터널 생성 요청 인증 과정은 디바이스(400)와 터널 VPN(430) 사이에서 수행된다.
즉, 상기 디바이스(400)로부터 터널 생성을 위한 요청이 오면, 터널 VPN(410)의 PUF 칩은 기 저장된 개인키와 터널 VPN 정보를 이용하여 디지털 서명을 생성한다(S701). 일 실시예로, 터널 VPN 정보는 PUF 칩 내에서 생성한 디바이스 별 고유 ID 값이다. 단계 S701은 이 고유 ID를 SHA(Secure Hash Algorithm, 안전한 해시 알고리즘)-256을 통해 해시(hash) 값으로 만들고 개인키를 통해 서명 값을 만들어낸다. SHA-256은 해시 함수 중의 하나이며, 해시의 결과는 256비트이다. 일 예로, 상기 디바이스(400)의 디지털 서명은 고유 ID(즉, 터널 VPN 정보)의 해시된 값(SHA256)을 상기 디바이스(400)의 개인키로 암호화하여 생성된다. 본 발명에서 디바이스를 구분할 수 있는 고유값이면 어떤 데이터든 디지털 서명으로 만들 수 있다.
그리고, 생성된 디지털 서명 값(또는 디지털 서명 정보라 함)을 상기 디바이스(400)로 전달한다(S702).
상기 디바이스(400)는 PUF 칩에서 사전에 생성하여 배포한 제1 공개키를 사용하여 서명값 동일 여부를 확인한다(S703).
실시예들에 따르면, 상기 디바이스(400)는 제1 공개키 기반의 ECDSA 서명값 인증을 통해 유효성 체크를 수행하는 것을 일 실시예로 한다.
좀 더 상세하게는, 상기 디바이스(400)는 터널 VPN(420)에서 전달 받은 디지털 서명값으로부터 제1 공개키를 통해 해시 값을 도출해내고, 터널 VPN 할당시 인증 VPN(410)으로부터 전달받은 고유 ID를 동일하게 SHA-256으로 암호화 하여 두 해시 값(즉, 디지털 서명값)이 동일한지 비교한다.
두 해시 값의 비교 결과, 즉 디지털 서명값이 일치하지 않는다고 확인되면 터널 생성 요청 인증에 실패한 경우이므로, 터널 생성 요청을 종료한다(S705). 만일, 두 해시 값의 비교 결과, 즉 디지털 서명값이 일치한다고 확인되면 터널 생성 요청 인증에 성공한 경우이므로, 와이어가드 VPN 핸드쉐이킹을 진행한다(S706).
도 8은 실시예들에 따른 와이어가드 VPN 핸드쉐이킹 과정의 예시를 보인 흐름도이다. 실시예들에 따른 와이어가드 VPN 핸드쉐이킹 과정은 디바이스(400)와 터널 VPN(430) 사이에서 수행된다.
즉, 상기 디바이스(400)에서 두 디지털 서명값이 일치한다고 확인되면, 상기 디바이스(400, 또는 VPN 에이전트)는 VPN 터널 연결을 위해 터널 VPN(420)에 와이어가드 VPN 핸드쉐이킹을 요청한다. 와이어가드 VPN 핸드쉐이킹은 암호화된 데이터 처리를 위해 키를 교환하고 교환된 키를 기반으로 대칭키를 생성하는 과정이다.
즉, VPN 터널 연결을 위해서 상기 디바이스(400)와 상기 터널 VPN(420) 간의 상호 키 교환을 통해 대칭키를 생성한다(S801). 실시예들에 따르면, 대칭키 생성을 위해 키 교환을 할 때 상기 디바이스(400)의 제2 공개키를 사용한다. 일 예로, DH(디피-헬만) 키 교환을 사용하는데, 키 교환이 일어나면 교환한 공개키와 자신의 개인키의 조합으로 서로 동일한 키 값이 생성된다. 즉, 키를 교환하고 교환된 키를 기반으로 대칭키를 생성하는 와이어가드 VPN 핸드쉐이킹을 수행함으로써, 디바이스(400)와 터널 VPN(420) 간에 터널이 생성된다.
이때, 터널 VPN(420)은 단계 S801에서 생성된 대칭키를 보안 메모리(421)의 PUF 칩에 저장한다(S802). 터널 VPN(420)과 디바이스(400) 간 키 교환으로 대칭키 생성 단계(S801)와 PUF 칩 내 대칭키 저장 단계(S802)는 2분 주기로 무한 반복되는 것을 일 실시예로 한다.
그리고, 상기 디바이스(400) 및/또는 상기 터널 VPN(420)은 대칭키로 암호화한 데이터를 전송한다(S803). 이때, 암호화되어 전송되는 데이터는 패킷 형태인 것을 일 실시예로 한다. 즉, 실시예들에 따른 와이어가든 VPN은 대칭키를 이용하여 터널링을 하고, 내부 데이터는 chacha20 알고리즘을 이용하여 암호화를 한다. chacha20 알고리즘은 대칭 암호화 알고리즘 중 하나이다.
실시예들에 따르면, VPN 터널 연결을 하게 되면 디바이스(400) 또는 터널 VPN(420)에서 전송하는 데이터들은 모두 터널에 쌓여 볼 수 없게 된다. 따라서, 터널을 통해 받은 데이터는 대칭키를 통해 캡슐링된 터널을 제거해야 내부 데이터를 볼 수 있다.
그러므로, 디바이스(400) 또는 터널 VPN(420)은 대칭키로 암호화된 데이터를 받으면, 대칭키 일치 여부를 판단한다(S804). 단계 S804에서 대칭키가 일치하지 않는다고 확인되면 단계 S803로 진행한다. 만일 단계 S804에서 대칭키가 일치한다고 확인되면 대칭키를 이용하여 수신된 데이터의 캡슐링된 터널을 제거하고, 터널이 제거된 데이터의 복호화를 수행한다(S805). 즉, 암호화된 데이터로부터 원래 패킷을 복원한다.
이상에서와 같이 본 발명은 인터넷을 사용하는 개인과 서버간 개인 사설 네트워크 구성시에 복제 불가능한 키로 보안 인증을 함으로써, 해킹 자체를 원천 차단하여 안전한 데이터 전송 서비스를 제공할 수 있게 한다.
특히, 본 발명은 각 VPN 클라이언트의 유효성 검증을 위해 서명값을 인증할 수 있는 PKI 키 쌍(개인키+공개키)을 미리 만들어서 보안 메모리에 저장한 후, 각 VPN 클라이언트가 각자의 공개키를 가지고 보안 인증과 통신을 하도록 함으로써, 기존의 VPN 서버가 가지고 있는 하나의 PKI 쌍을 통해서 인증과 보안 통신을 하는 방법에 비해 높은 보안성을 제공할 수 있다. 즉, 본 발명은 VPN 서버에 접속하는 VPN 클라이언트 별로 PKI 키 쌍을 만들어 멀티 보안칩으로 구성된 VPN 서버의 보안 메모리에 저장하여 VPN 서버의 개인키를 보호함으로써 기본적인 보안 요소를 달성할 수 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.
본 발명의 또 다른 양태(aspect)로서, 앞서 설명한 제안 또는 발명의 동작이 "컴퓨터"(시스템 온 칩(system on chip; SoC) 또는 (마이크로) 프로세서 등을 포함하는 포괄적인 개념)에 의해 구현, 실시 또는 실행될 수 있는 코드 또는 상기 코드를 저장 또는 포함한 어플리케이션(앱, Application), 컴퓨터-판독가능한 저장 매체 또는 컴퓨터 프로그램 제품(product) 등으로도 제공될 수 있고, 본 발명의 권리범위가 상기 코드 또는 상기 코드를 저장 또는 포함한 컴퓨터-판독가능한 저장 매체 또는 컴퓨터 프로그램 제품으로 확장가능하다.
전술한 실시예에 기술된 각 단계들은 프로세서, 소프트웨어, 하드웨어 파트들에 의해 수행될 수 있다. 전술한 실시예에 기술된 각 모듈/블락/유닛들은 프로세서, 소프트웨어, 하드웨어로서 동작할 수 있다. 또한, 실시예들이 제시하는 방법들은 코드로서 실행될 수 있다. 이 코드는 프로세서가 읽을 수 있는 저장매체에 쓰여질 수 있고, 따라서 장치(apparatus)가 제공하는 프로세서에 의해 읽혀질 수 있다.
또한 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 그리고 명세서에 기재된 "??부"등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 명세서는 설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 실시예들의 권리범위에 속한다.
실시예들에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
실시예들의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 실시예들은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 실시예들의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 실시예들의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
실시예들의 장치의 다양한 구성요소들은 하드웨어, 소프트웨어, 펌웨어 또는 그것들의 조합에 의해 수행될 수 있다. 실시예들의 다양한 구성요소들은 하나의 칩, 예를 들면 하나의 하드웨어 서킷으로 구현될 수 있다. 실시예들에 따른 구성요소들은 각각 별도의 칩들로 구현될 수 있다. 실시예들에 따른 장치의 구성요소들 중 적어도 하나 이상은 하나 또는 그 이상의 프로그램들을 실행 할 수 있는 하나 또는 그 이상의 프로세서들로 구성될 수 있으며, 하나 또는 그 이상의 프로그램들은 실시예들에 따른 동작/방법들 중 어느 하나 또는 그 이상의 동작/방법들을 수행시키거나, 수행시키기 위한 인스트럭션들을 포함할 수 있다. 실시예들에 따른 장치의 방법/동작들을 수행하기 위한 실행 가능한 인스트럭션들은 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적이지 않은 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있거나, 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적인 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있다. 또한 실시예들에 따른 메모리는 휘발성 메모리(예를 들면 RAM 등)뿐 만 아니라 비휘발성 메모리, 플래쉬 메모리, PROM등을 전부 포함하는 개념으로 사용될 수 있다. 또한, 인터넷을 통한 전송 등과 같은 반송파의 형태로 구현되는 것도 포함될 수 있다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
실시예들의 다양한 엘리먼트들은 하드웨어, 소프트웨어, 펌웨어 또는 그것들의 조합에 의해 수행될 수 있다. 실시예들의 다양한 엘리먼트는 하드웨어 회로와 같은 싱글 칩 상에서 수행될 수 있다. 실시예들에 따라, 실시예들은 선택적으로 개별적인 칩들 상에서 수행될 수 있다. 실시예들에 따라, 실시예들의 엘리먼트들 중 적어도 하나는 실시예들에 따른 동작을 수행하는 인스트럭션들을 포함하는 하나 또는 하나 이상의 프로세서 내에서 수행될 수 있다.
또한, 본 문서에서 설명하는 실시예들에 따른 동작은 실시예들에 따라서 하나 이상의 메모리들 및/또는 하나 이상의 프로세서들을 포함하는 송수신 장치에 의해 수행될 수 있다. 하나 이상의 메모리들을 실시예들에 따른 동작을 처리/제어하기 위한 프로그램들을 저장할 수 있고, 하나 이상의 프로세서들을 본 문서에서 설명한 다양한 동작을 제어할 수 있다. 하나 이상의 프로세서들은 컨트롤러 AP 등으로 지칭 가능하다. 실시예들에 동작들은 펌웨어, 소프트웨어, 및/또는 그것들의 조합에 의해 수행될 수 있고, 펌웨어, 소프트웨어, 및/또는 그것들의 조합은 프로세서에 저장되거나 메모리에 저장될 수 있다.
제1, 제2 등과 같은 용어는 실시예들의 다양한 구성요소들을 설명하기 위해 사용될 수 있다. 하지만 실시예들에 따른 다양한 구성요소들은 위 용어들에 의해 해석이 제한되어서는 안된다. 이러한 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것에 불과하다. 것에 불과하다. 예를 들어, 제1 사용자 인풋 시그널은 제2사용자 인풋 시그널로 지칭될 수 있다. 이와 유사하게, 제2사용자 인풋 시그널은 제1사용자 인풋 시그널로 지칭될 수 있다. 이러한 용어의 사용은 다양한 실시예들의 범위 내에서 벗어나지 않는 것으로 해석되어야만 한다. 제1사용자 인풋 시그널 및 제2사용자 인풋 시그널은 모두 사용자 인풋 시그널들이지만, 문맥 상 명확하게 나타내지 않는 한 동일한 사용자 인풋 시그널들을 의미하지 않는다.
실시예들을 설명하기 위해 사용된 용어는 특정 실시예들을 설명하기 위한 목적으로 사용되고, 실시예들을 제한하기 위해서 의도되지 않는다. 실시예들의 설명 및 청구항에서 사용된 바와 같이, 문맥 상 명확하게 지칭하지 않는 한 단수는 복수를 포함하는 것으로 의도된다. 및/또는 표현은 용어 간의 모든 가능한 결합을 포함하는 의미로 사용된다. "포함한다" 표현은 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들이 존재하는 것을 설명하고, 추가적인 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들을 포함하지 않는 것을 의미하지 않는다. 실시예들을 설명하기 위해 사용되는, ~인 경우, ~때 등의 조건 표현은 선택적인 경우로만 제한 해석되지 않는다. 특정 조건을 만족하는 때, 특정 조건에 대응하여 관련 동작을 수행하거나, 관련 정의가 해석되도록 의도되었다.
301-30N: VPN 클라이언트
310: 공용 네트워크
330: VPN 서버
400: 디바이스
410: 인증 VPN
420: 터널 VPN
421: 보안 메모리
310: 공용 네트워크
330: VPN 서버
400: 디바이스
410: 인증 VPN
420: 터널 VPN
421: 보안 메모리
Claims (19)
- 와이어가드(wireguard) 프로토콜 기반의 가상 사설 네트워크(Virtual Private Network, VPN) 시스템에서의 제어 방법에 있어서,
접속을 원하는 디바이스의 개인키와 공개키를 포함하는 키 쌍을 생성하고 상기 개인키를 물리적 복제 방지 기능 (Physically Unclonable Functions, PUF) 칩에 저장하는 단계;
상기 디바이스로부터 제공되는 인증을 위한 정보를 이용하여 상기 디바이스가 사전에 허용된 디바이스인지를 확인하고, 상기 디바이스에 VPN 터널 정보와 공개키를 제공하는 단계;
상기 디바이스의 터널 생성 요청에 따라 상기 VPN 터널 정보와 상기 디바이스의 개인키를 기반으로 디지털 서명값을 생성하여 상기 디바이스에 제공하는 단계; 및
상기 디바이스에서 상기 디지털 서명값의 인증이 완료되면 VPN 터널 연결을 위해 VPN 핸드쉐이킹을 수행하는 단계를 포함하는 VPN 시스템에서의 제어 방법. - 제 1 항에 있어서,
상기 VPN 터널 정보는 상기 PUF 칩에서 생성한 디바이스의 고유 식별 정보를 포함하는 VPN 시스템에서의 제어 방법. - 제 1 항에 있어서,
상기 디바이스로부터 제공되는 인증을 위한 정보는 상기 디바이스의 MAC(Media Access Control) 주소와 시리얼 번호를 포함하는 VPN 시스템에서의 제어 방법. - 제 3 항에 있어서,
상기 디바이스로부터 제공되는 인증을 위한 정보는
암호화 해시 함수와 기밀 암호화 키를 수반하는 HMAC(Hash-based Message Authentication Code)를 더 포함하는 VPN 시스템에서의 제어 방법. - 제 1 항에 있어서,
상기 디지털 서명값은 상기 디바이스의 고유 식별 정보의 해시된 값을 상기 디바이스의 개인키로 암호화하여 생성되는 VPN 시스템에서의 제어 방법. - 제 1 항에 있어서,
상기 VPN 핸드쉐이킹을 수행하는 단계는 상기 디바이스와 키 교환을 통해 대칭키를 생성하고, 생성된 대칭키를 상기 PUF 칩에 저장하는 VPN 시스템에서의 제어 방법. - 제 6 항에 있어서,
상기 대칭키를 이용하여 데이터를 암호화하여 전송하는 단계를 더 포함하는 VPN 시스템에서의 제어 방법. - 제 7 항에 있어서,
상기 대칭키를 이용하여 암호화된 데이터는 패킷 형태인 VPN 시스템에서의 제어 방법. - 제 7 항에 있어서,
상기 대칭키를 이용하여 암호화된 데이터가 수신되면, 상기 대칭키의 인증을 수행한 후 상기 데이터의 복호화를 수행하는 단계를 더 포함하는 VPN 시스템에서의 제어 방법. - 와이어가드 프로토콜 기반의 VPN 시스템에 있어서,
접속을 원하는 디바이스;
PUF 칩들의 어레이로 구성된 보안 메모리를 포함하는 VPN 서버; 및
상기 디바이스와 상기 VPN 서버를 연결하기 위한 네트워크를 포함하며,
상기 VPN 서버는 상기 보안 메모리에서 상기 디바이스의 개인키와 공개키를 포함하는 키 쌍을 생성한 후 상기 개인키를 상기 보안 메모리에 저장하고,
상기 VPN 서버는 상기 디바이스로부터 제공되는 인증을 위한 정보를 이용하여 상기 디바이스가 사전에 허용된 디바이스인지를 확인한 후 상기 디바이스에 VPN 터널 정보와 공개키를 제공하고,
상기 VPN 서버는 상기 디바이스의 터널 생성 요청에 따라 상기 VPN 터널 정보와 상기 디바이스의 개인키를 기반으로 디지털 서명값을 생성하여 상기 디바이스에 제공하고,
상기 VPN 서버는 상기 디바이스에서 상기 디지털 서명값의 인증이 완료되면 VPN 터널 연결을 위해 VPN 핸드쉐이킹을 수행하는 VPN 시스템. - 제 10 항에 있어서,
상기 VPN 터널 정보는 상기 보안 메모리에서 생성한 디바이스의 고유 식별 정보를 포함하는 VPN 시스템. - 제 10 항에 있어서,
상기 디바이스로부터 제공되는 인증을 위한 정보는 상기 디바이스의 MAC 주소와 시리얼 번호를 포함하는 VPN 시스템. - 제 12 항에 있어서,
상기 디바이스로부터 제공되는 인증을 위한 정보는
암호화 해시 함수와 기밀 암호화 키를 수반하는 HMAC를 더 포함하는 VPN 시스템. - 제 10 항에 있어서,
상기 VPN 서버는 상기 디바이스의 고유 식별 정보의 해시된 값을 상기 디바이스의 개인키로 암호화하여 상기 디지털 서명값을 생성하는 VPN 시스템. - 제 10 항에 있어서,
상기 VPN 서버는 상기 디바이스와 키 교환을 통해 대칭키를 생성하는 VPN 핸드쉐이킹을 수행하고, 상기 생성된 대칭키를 상기 보안 메모리에 저장하는 VPN 시스템. - 제 15 항에 있어서,
상기 VPN 서버는 상기 대칭키를 이용하여 데이터를 암호화하여 전송하는 VPN 시스템. - 제 16 항에 있어서,
상기 대칭키를 이용하여 암호화된 데이터는 패킷 형태인 VPN 시스템. - 제 16 항에 있어서,
상기 VPN 서버는 상기 대칭키를 이용하여 암호화된 데이터가 수신되면, 상기 대칭키의 인증을 수행한 후 상기 데이터의 복호화를 수행하는 VPN 시스템. - 하드웨어인 컴퓨터와 결합되어, 제 1 항의 방법을 수행할 수 있도록 컴퓨터에서 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220083695A KR102649485B1 (ko) | 2022-07-07 | 2022-07-07 | 가상 사설 네트워크 시스템 및 그 제어방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220083695A KR102649485B1 (ko) | 2022-07-07 | 2022-07-07 | 가상 사설 네트워크 시스템 및 그 제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20240006876A KR20240006876A (ko) | 2024-01-16 |
KR102649485B1 true KR102649485B1 (ko) | 2024-03-21 |
Family
ID=89719416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220083695A KR102649485B1 (ko) | 2022-07-07 | 2022-07-07 | 가상 사설 네트워크 시스템 및 그 제어방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102649485B1 (ko) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200073103A (ko) * | 2018-12-13 | 2020-06-23 | 주식회사 아이씨티케이 홀딩스 | 클라이언트 장치, 발급 장치 및 서버의 통신 방법 |
KR102591826B1 (ko) * | 2020-06-10 | 2023-10-24 | 한국전자통신연구원 | Puf를 이용한 인증서 기반 디바이스 인증 장치 및 방법 |
KR20210046615A (ko) * | 2021-04-14 | 2021-04-28 | 시큐리티플랫폼 주식회사 | 가상사설망을 통해 메시지를 전송하는 시스템 |
-
2022
- 2022-07-07 KR KR1020220083695A patent/KR102649485B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20240006876A (ko) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230155821A1 (en) | Secure shared key establishment for peer to peer communications | |
JP6968223B2 (ja) | 量子鍵配送のための方法、装置、及びシステム | |
US11968206B2 (en) | Non-custodial tool for building decentralized computer applications | |
CN108768633B (zh) | 实现区块链中信息共享的方法及装置 | |
US11153085B2 (en) | Secure distributed storage of encryption keys | |
JP2023099091A (ja) | セキュア・ダイナミック閾値署名スキームのための方法、記憶媒体及び電子デバイス | |
US11303431B2 (en) | Method and system for performing SSL handshake | |
US20130227286A1 (en) | Dynamic Identity Verification and Authentication, Dynamic Distributed Key Infrastructures, Dynamic Distributed Key Systems and Method for Identity Management, Authentication Servers, Data Security and Preventing Man-in-the-Middle Attacks, Side Channel Attacks, Botnet Attacks, and Credit Card and Financial Transaction Fraud, Mitigating Biometric False Positives and False Negatives, and Controlling Life of Accessible Data in the Cloud | |
WO2017020452A1 (zh) | 认证方法和认证系统 | |
CN114584307B (zh) | 一种可信密钥管理方法、装置、电子设备和存储介质 | |
US20210143986A1 (en) | Method for securely sharing data under certain conditions on a distributed ledger | |
WO2019110018A1 (zh) | 通信网络系统的消息验证方法、通信方法和通信网络系统 | |
US20240146728A1 (en) | Access control method, access control system, and related device | |
TW202231014A (zh) | 訊息傳輸系統以及應用其中之使用者裝置與資訊安全硬體模組 | |
Rizvi et al. | A trusted third-party (TTP) based encryption scheme for ensuring data confidentiality in cloud environment | |
CN114793184B (zh) | 一种基于第三方密钥管理节点的安全芯片通信方法及装置 | |
CN114826702B (zh) | 数据库访问密码加密方法、装置和计算机设备 | |
CN114244508A (zh) | 数据加密方法、装置、设备及存储介质 | |
CN114338091B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN106257859A (zh) | 一种密码使用方法 | |
KR102649485B1 (ko) | 가상 사설 네트워크 시스템 및 그 제어방법 | |
US20240193255A1 (en) | Systems and methods of protecting secrets in use with containerized applications | |
WO2017020720A1 (zh) | 一种数据访问的方法及设备 | |
CN116599771B (zh) | 数据分级保护传输方法及装置、存储介质和终端 | |
TW202327313A (zh) | 訊息傳輸系統以及應用其中之使用者裝置與資訊安全硬體模組 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |