KR101022157B1 - Method for processing service in secure socket layer virtual private network - Google Patents

Method for processing service in secure socket layer virtual private network Download PDF

Info

Publication number
KR101022157B1
KR101022157B1 KR1020030091901A KR20030091901A KR101022157B1 KR 101022157 B1 KR101022157 B1 KR 101022157B1 KR 1020030091901 A KR1020030091901 A KR 1020030091901A KR 20030091901 A KR20030091901 A KR 20030091901A KR 101022157 B1 KR101022157 B1 KR 101022157B1
Authority
KR
South Korea
Prior art keywords
server
client
message
protocol
private network
Prior art date
Application number
KR1020030091901A
Other languages
Korean (ko)
Other versions
KR20050060314A (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 KR1020030091901A priority Critical patent/KR101022157B1/en
Publication of KR20050060314A publication Critical patent/KR20050060314A/en
Application granted granted Critical
Publication of KR101022157B1 publication Critical patent/KR101022157B1/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
    • 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/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 쿠키(Cookie) 값을 이용하여 정당한 IP(Internet Protocol) 주소를 사용하는 가입자 여부를 판단한 후에 서비스를 제공하는 SSL(Secure Socket Layer) 가상 사설망(VPN : Virtual Private Network) 서비스 처리 방법에 관한 것이다.The present invention relates to a method of processing a Secure Socket Layer (VPN) Virtual Private Network (VPN) service that provides a service after determining whether a subscriber uses a legitimate Internet Protocol (IP) address using a cookie value. will be.

이를 위하여, 본 발명은 클라이언트와 서버로 구성된 SSL 가상 사설망 서비스 처리 방법에 있어서, Handshake 프로토콜을 이용하여 상기 클라이언트 측의 사용자 IP 주소의 정당성을 판단 한 후 상기 클라이언트와 상기 서버 간의 SSL 연결을 수행하는 제 1 과정; Record Layer 프로토콜에서 사용될 보안 파라미터를 설정하는 제 2 과정; Change CipherSpec 프로토콜을 이용하여 상기 설정된 보안 파라미터를 활성화하는 제 3 과정; 및 Application Data 프로토콜을 이용하여 응용 계층의 데이터를 상기 Record Layer 프로토콜로 전달하고 상기 데이터를 보호하여 전송하는 제 4 과정을 포함하는 것을 특징으로 하며, 가상 사설망의 클라이언트와 서버가 SSL 통신을 시작하기 전에 접속을 시도하는 사용자의 IP 주소가 유효한 주소인지 확인되기 전까지는 어떠한 상태의 저장이나 CPU를 소모시키는 암호 알고리즘을 수행하지 않음으로써 서버가 DoS 공격을 받아도 안정적으로 SSL 가상 사설망 서비스를 제공할 수 있는 효과가 있다.To this end, the present invention is a method for processing an SSL virtual private network service composed of a client and a server, the method comprising performing an SSL connection between the client and the server after determining the legitimacy of the user IP address of the client side using the Handshake protocol. 1 course; A second step of setting a security parameter to be used in the Record Layer protocol; A third step of activating the set security parameter using a Change CipherSpec protocol; And transmitting a data of an application layer to the Record Layer protocol by using an application data protocol and protecting and transmitting the data, before the client and server of the virtual private network start SSL communication. It is possible to reliably provide SSL virtual private network service even when the server is attacked by DoS attack by not performing any state saving or CPU-consuming encryption algorithm until the IP address of the user attempting to connect is verified as a valid address. There is.

Description

SSL 가상 사설망 서비스 처리 방법{Method for processing service in secure socket layer virtual private network}Method for processing service in secure socket layer virtual private network}

도 1은 일반적인 SSL 프로토콜의 구조도.1 is a structural diagram of a general SSL protocol.

도 2는 도 1의 Record Layer 프로토콜(10)의 동작 과정을 나타내는 도면.FIG. 2 is a diagram illustrating an operation process of the Record Layer protocol 10 of FIG. 1.

도 3은 본 발명에 따른 SSL 가상 사설망에서 서비스를 처리하는 동작 흐름도.3 is an operational flowchart of processing a service in an SSL virtual private network according to the present invention;

도 4는 본 발명에 따른 SSL 가상 사설망에서 서비스를 처리하는데 송수신되는 프로토콜 메시지를 나타내는 도면.4 is a diagram illustrating a protocol message transmitted and received for processing a service in an SSL virtual private network according to the present invention.

본 발명은 SSL(Secure Socket Layer) 가상 사설망(VPN : Virtual Private Network) 서비스 처리 방법에 관한 것으로, 보다 상세하게는 쿠키(Cookie) 값을 이용하여 정당한 IP(Internet Protocol) 주소를 사용하는 가입자 여부를 판단한 후에 서비스를 제공하는 SSL 가상 사설망 서비스 처리 방법에 관한 것이다.The present invention relates to a method of processing a SSL (Secure Socket Layer) virtual private network (VPN) service, and more particularly, a subscriber value using a valid IP (Internet Protocol) address using a cookie value. The present invention relates to a method for processing an SSL virtual private network service that provides a service after the determination.

SSL 프로토콜은 클라이언트-서버 환경에서 TCP(Transmission Control Protocol) 상의 응용 프로토콜에 대한 종단 간 보안을 제공하기 위해 고안된 전송 계층 보안 프로토콜로서, 인증서를 통해 클라이언트와 서버 간 인증을 수행하고 대칭키 암호 방식을 이용한 암호화를 통해 기밀성(Confidentiality)을 제공하고 있으며 메시지 인증 코드(MAC : Message Authentication Code)를 사용하여 데이터의 위조 및 변조를 탐지할 수 있는 무결성 서비스를 제공한다.The SSL protocol is a transport layer security protocol designed to provide end-to-end security for application protocols over Transmission Control Protocol (TCP) in a client-server environment. The SSL protocol performs client-server authentication with certificates and uses symmetric key cryptography. It provides confidentiality through encryption and provides an integrity service that can detect forgery and tampering with data using Message Authentication Code (MAC).

도 1은 일반적인 SSL 프로토콜의 구조를 도시한 것이다.1 illustrates the structure of a general SSL protocol.

도시된 바와 같이 SSL 프로토콜은 2계층으로 이루어졌으며, 상층은 Handshake 프로토콜(2), Change CipherSpec 프로토콜(4), Alert 프로토콜(6) 및 Application Data 프로토콜(8)로 이루어지고, 하층은 Record Layer 프로토콜(10)로 이루어져있다. 여기서 상층의 Handshake 프로토콜(2)과 Change CipherSpec 프로토콜(4)은 SSL 통신을 수행하는데 필요한 보안 파라미터들을 설정하고 관리하고, 하층의 Record Layer 프로토콜(10)은 상층에 위치하는 4개의 프로토콜(2 내지 8)에 기밀성과 무결성 같은 보안 서비스를 제공하는데 사용된다.As shown, the SSL protocol consists of two layers. The upper layer consists of the Handshake protocol (2), the Change CipherSpec protocol (4), the Alert protocol (6), and the Application Data protocol (8). 10) Here, the upper layer Handshake protocol (2) and the Change CipherSpec protocol (4) set and manage the security parameters necessary to perform SSL communication, and the lower layer Record Layer protocol (10) has four protocols (2 to 8) located at the upper layer. Is used to provide security services such as confidentiality and integrity.

보다 구체적으로, Handshake 프로토콜(2)은 클라이언트와 서버가 SSL 통신을 시작하기 전에 수행되며, SSL 프로토콜의 버전과 암호 알고리즘(키 교환, 비밀 키, MAC)을 설정하고 상호 인증 및 키 교환 알고리즘을 사용하여 비밀 키를 공유하는 프로토콜이다.More specifically, the Handshake protocol (2) is performed before the client and server start SSL communication, setting the version and encryption algorithm (key exchange, secret key, MAC) of the SSL protocol and using mutual authentication and key exchange algorithms. Is a protocol for sharing secret keys.

Change CipherSpec 프로토콜(4)은 Handshake 과정에서 설정된 상태를 활성화시키는 프로토콜로 단일 메시지로 구성된다.The Change CipherSpec protocol (4) is a protocol that activates the state set during the handshake process and consists of a single message.

Alert 프로토콜(6)은 통신 중에 오류가 발생했음을 알려주는 것으로, Alert 메시지는 오류의 레벨과 구체적인 내용을 표시하는 구성요소로 이루어지는데, 경고(값=1)와 치명적 오류(값=2)의 2개 레벨에 대해 고유한 할당 값을 부여받은 12개의 오류 내용이 있다. 경고 Alert 메시지를 받으면 통신을 계속할 수 있지만, 치명적 오류 Alert 메시지를 받으면 즉시 연결이 중단되고 세션 ID가 무효화되어 이 세션으로 재접속을 할 수 없게 된다. 다른 메시지와 마찬가지로 Alert 메시지는 Record Layer 프로토콜(10)을 통해 보호되어 전송된다.The Alert protocol (6) informs you that an error has occurred during communication. The Alert message consists of components that indicate the level and specific details of the error. The alert protocol (6) represents two levels of warning (value = 1) and fatal error (value = 2). There are 12 errors that are assigned unique values for the dog levels. If you receive a warning Alert message, you can continue to communicate, but receiving a Fatal Error Alert message immediately disconnects and invalidates the session ID, preventing you from reconnecting to this session. Like other messages, Alert messages are protected and transmitted via the Record Layer protocol 10.

Record Layer 프로토콜(10)은 Application Data 프로토콜(8)을 포함해 Handshake 과정 이후에 전송되는 모든 데이터에 대하여 MAC을 계산하고 암호화하여 전송하는 역할을 한다. 도 2는 이러한 Record Layer 프로토콜(10)의 동작 과정을 도시하는 것이다.The record layer protocol 10 calculates, encrypts and transmits a MAC for all data transmitted after the handshake process, including the application data protocol 8. 2 illustrates the operation of the Record Layer protocol 10.

도시된 바와 같이 Record Layer 프로토콜(10)은 Application Data 프로토콜(8)을 전송할 때는 데이터 단편화(12), 압축/MAC(14), 암호화(16) 순서로 동작하며, 반대로 Application Data 프로토콜(8)을 수신할 때는 복호화(18), 압축해제/MAC(20), 데이터 재결합(22) 순서로 동작하여 기밀성과 함께 무결성을 제공할 수 있다. As shown, the Record Layer protocol 10 operates in the order of data fragmentation 12, compression / MAC 14, and encryption 16 when the Application Data protocol 8 is transmitted. When received, it may operate in the order of decryption 18, decompression / MAC 20, and data recombination 22 to provide integrity with confidentiality.

이때 압축, MAC, 암호의 일부 혹은 전부의 선택은 cipher_suite에 의해 결정된다. 그리고 모든 데이터는 214 바이트 또는 이보다 작은 크기로 단편화(12)되고 단편화된 데이터는 현재 세션 상태에서 정의된 압축 알고리즘에 의해 214 + 1024 바이트보다 작은 크기로 압축된다(14). 압축된 데이터는 암호화되기 전에 MAC 값이 계산되고, 마지막으로 헤더를 생성하고 압축된 데이터를 MAC과 함께 대칭키 알고리 즘으로 암호화된다(16).At this time, the selection of some or all of compression, MAC, and cipher is determined by cipher_suite. And all data is fragmented 12 to 2 14 bytes or less in size, and the fragmented data is compressed to a size smaller than 2 14 + 1024 bytes by a compression algorithm defined in the current session state. Before the compressed data is encrypted, the MAC value is calculated, and finally, a header is generated and the compressed data is encrypted with the MAC using a symmetric key algorithm (16).

상술된 바와 같이 보안성을 제공하는 SSL 프로토콜은 최근 가상 사설망 서비스에 이용되고 있다. 그러나 가상 사설망에 위조된 IP 주소들을 이용해 무수히 많은 연결을 요청하고 이로 인해 서버 메모리와 CPU(Central Processing Unit)를 소모시키는 DoS(Denial Of Service) 공격이 시도되면 서버 상태가 불안정하게 되어 서비스를 원활하게 제공하지 못하는 경우가 발생한다.As described above, the SSL protocol for providing security has recently been used for virtual private network services. However, if a denial of service (DoS) attack that attempts to request a myriad of connections using forged IP addresses in a virtual private network and consumes server memory and central processing units (CPUs), the server state becomes unstable and service is smooth. Failure to provide

상술된 문제점을 해결하기 위하며, 본 발명의 목적은 가상 사설망 서비스를 제공하기 위해 클라이언트와 서버 간 SSL 통신을 시작하기 전에 사용자의 IP 주소의 유효성을 확인한 후 암호 알고리즘을 수행하여 안정적인 SSL 가상 사설망 서비스를 제공하는데 있다.In order to solve the above problems, an object of the present invention is to verify the validity of the user's IP address before starting the SSL communication between the client and server to provide a virtual private network service and perform a cryptographic algorithm to ensure a stable SSL virtual private network service To provide.

이를 위하여, 본 발명은 클라이언트와 서버로 구성된 SSL 가상 사설망 서비스 처리 방법에 있어서, Handshake 프로토콜을 이용하여 상기 클라이언트 측의 사용자 IP 주소의 정당성을 판단 한 후 상기 클라이언트와 상기 서버 간의 SSL 연결을 수행하는 제 1 과정; Record Layer 프로토콜에서 사용될 보안 파라미터를 설정하는 제 2 과정; Change CipherSpec 프로토콜을 이용하여 상기 설정된 보안 파라미터를 활성화하는 제 3 과정; 및 Application Data 프로토콜을 이용하여 응용 계층의 데이터를 상기 Record Layer 프로토콜로 전달하고 상기 데이터를 보호하여 전송하는 제 4 과정을 포함하는 것을 특징으로 한다. To this end, the present invention is a method for processing an SSL virtual private network service composed of a client and a server, the method comprising performing an SSL connection between the client and the server after determining the legitimacy of the user IP address of the client side using the Handshake protocol. 1 course; A second step of setting a security parameter to be used in the Record Layer protocol; A third step of activating the set security parameter using a Change CipherSpec protocol; And a fourth step of transmitting data of an application layer to the Record Layer protocol using an application data protocol and protecting and transmitting the data.                     

이하, 본 발명에 대한 바람직한 실시 예를 첨부 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명에 따라 SSL 프로토콜을 이용하는 가상 사설망에서 서비스를 처리하는 전체적인 동작 흐름도이다.3 is a flowchart illustrating the overall operation of processing a service in a virtual private network using the SSL protocol according to the present invention.

먼저 사용자 측의 SSL 클라이언트는 Handshake 프로토콜을 이용하여 클라이언트 난수 값과 IP 주소를 포함하는 연결 요청 메시지(ClientHello)를 서버에게 전송한다(S2).First, the SSL client of the user side transmits a connection request message (ClientHello) including a client random number value and an IP address to the server by using the Handshake protocol (S2).

서버는 연결을 시도하는 클라이언트의 사용자 IP 주소가 정당한지를 확인하기 위하여 ServerHello 메시지에 쿠키(Cookie) 값을 포함하여 클라이언트로 전송한다(S4).In order to check whether the user IP address of the client attempting to connect is valid, the server transmits a cookie value in the ServerHello message to the client (S4).

클라이언트는 서버로부터 ServerHello 메시지의 수신 여부를 판단하고(S6), 서버로부터 ServerHello 메시지의 수신한 경우에는 연결 요청 메시지에 ServerHello 메시지에 포함되어 있던 쿠키 값을 포함하여 서버에게 전송한다(S10). 만약 이때 클라이언트가 서버로부터 ServerHello 메시지의 수신한 경우가 아니면, 서버에게 치명적인 오류 메시지를 서버에게 전송하고 처리 과정을 종료하며, 서버 또한 클라이언트로부터 치명적인 오류 메시지를 수신한 후 서비스 처리 과정을 종료한다(S8).The client determines whether to receive the ServerHello message from the server (S6), and if the ServerHello message is received from the server, and transmits to the server including the cookie value included in the ServerHello message in the connection request message (S10). If the client does not receive the ServerHello message from the server, the server sends a fatal error message to the server and terminates the processing. The server also receives a fatal error message from the client and terminates the service processing (S8). ).

한편, 두번째 연결 요청 메시지를 수신한 서버는 쿠키 값을 재계산하여 이를 클라이언트로부터 수신한 쿠키 값과 비교함으로써 사용자의 IP 주소가 정당한지 판단한다(S12). Meanwhile, the server receiving the second connection request message recalculates the cookie value and compares it with the cookie value received from the client to determine whether the user's IP address is valid (S12).                     

판단 결과 사용자의 IP 주소가 정당하지 않으면, 서버는 치명적인 오류 메시지를 클라이언트에게 전송하고 종료하며 클라이언트 또한 수신된 치명적인 오류 메시지에 의해 종료된다(S8).If it is determined that the user's IP address is not valid, the server sends a fatal error message to the client and terminates, and the client is also terminated by the received fatal error message (S8).

그러나 사용자의 IP 주소가 정당하면, 서버는 세션 상태와 보안 파라미터를 설정하고(S14, S16), 클라이언트와 Handshake 프로토콜의 ServerKeyExchange/Certificate 메시지 및 ClientKeyExchange/Certificate 메시지의 교환을 통해 키 블록을 생성하고(S18) 연결 상태를 설정한 후(S20) SSL로 암호화된 데이터를 전송한다(S22).However, if the user's IP address is justified, the server sets the session state and security parameters (S14, S16), generates a key block through the exchange of the ServerKeyExchange / Certificate and ClientKeyExchange / Certificate messages of the Handshake protocol with the client (S18). After setting the connection state (S20) and transmits the data encrypted with SSL (S22).

이하에서는 도 4를 참조하여 도 3에 설명한 바와 같은 흐름에 따라 구체적으로 송수신되는 프로토콜 메시지를 보다 상세하게 언급하면서, 가상 사설망 서비스 처리를 위해 Handshake 프로토콜을 이용하여 클라이언트와 서버 간의 SSL 프로토콜 버전 및 암호 알고리즘을 설정하고 상호 인증 및 키 교환 알고리즘을 사용하여 비밀 키를 공유하는 과정을 상세히 설명한다. 그리고 도 4에 도시된 바와 같이 Handshake 프로토콜은 클라이언트와 서버 간에 교환되는 연속된 메시지들로 구성되며, *가 표시되어 있는 메시지는 상황에 따라 선택적으로 전송할 수 있는 메시지를 나타낸다.Hereinafter, referring to FIG. 4, the protocol message specifically transmitted and received according to the flow as described in FIG. 3 will be described in detail, and the SSL protocol version and encryption algorithm between the client and the server using the Handshake protocol for processing a virtual private network service. It describes the process of setting up and sharing secret keys using mutual authentication and key exchange algorithms. As shown in FIG. 4, the Handshake protocol is composed of consecutive messages exchanged between a client and a server, and a message marked with * indicates a message that can be selectively transmitted according to a situation.

ClientHello 메시지(30)는 클라이언트가 서버와 연결하기 위해 전송하는 메시지로, 클라이언트는 ClientHello 메시지를 전송하고 서버로부터 ServerHello 메시지(32)가 도착할 때까지 대기하며, 다른 Handshake 메시지를 받으면 치명적인 오류로 처리한다. The ClientHello message 30 is a message sent by the client to connect to the server. The client sends the ClientHello message and waits for the ServerHello message 32 to arrive from the server. If the client receives another Handshake message, it is treated as a fatal error.                     

클라이언트가 서버에게 전송하는 첫번째 ClientHello 메시지(30)는 Client_version , Random, Session_ID, Cipher_suite, Compression_methods를 포함하는 변수로 이루어진다. 그리고 클라이언트가 서버에게 전송하는 후술될 두번째 ClientHello 메시지(34)는 서버로부터 수신한 ServerHello 메시지(32)에 포함된 쿠키가 추가된 변수로 이루어진다.The first ClientHello message 30 that the client sends to the server consists of variables including Client_version, Random, Session_ID, Cipher_suite, and Compression_methods. The second ClientHello message 34, which will be described later, transmitted by the client to the server, consists of a variable added with a cookie included in the ServerHello message 32 received from the server.

Client_version은 클라이언트가 지원하는 SSL 프로토콜의 버전을 나타내고, Random은 키 블록 생성을 위해 사용되는 것으로 클라이언트가 생성한 임의의 난수 값과 현재 시간 및 날짜를 나타낸다. Session_ID는 현재 세션에 대한 ID 값을 나타내고, Cipher_suite는 클라이언트가 사용하고자 하는 암호 알고리즘을 우선순위별로 나열한 것으로 키 교환 알고리즘, 대칭키 암호 알고리즘, 해쉬 알고리즘을 포함한다. Compression_methods는 데이터 압축에 사용하는 알고리즘들의 목록을 나타내고, 쿠키는 본 발명에 따라 추가된 것으로 SSL을 구별하는 식별자 기능과 DoS 공격을 예방하는 값으로 사용자의 IP 주소와 공격자가 예측할 수 없는 랜덤한 값을 반드시 포함하는 것을 특징으로 한다.Client_version indicates the version of the SSL protocol supported by the client, and Random is used for generating the key block. It indicates the random number generated by the client and the current time and date. Session_ID represents the ID value for the current session. Cipher_suite lists the cipher algorithms to be used by the client in order of priority, and includes key exchange algorithm, symmetric key cryptographic algorithm, and hash algorithm. Compression_methods represents a list of algorithms used for data compression. Cookies are added according to the present invention. The identifier function distinguishes SSL and prevents DoS attacks. The user's IP address and a random value that the attacker cannot predict are used. It is characterized by including necessarily.

클라이언트로부터 ClientHello 메시지(30)를 수신한 서버는 응답으로서 쿠키를 포함하는 ServerHello 메시지(32)를 클라이언트에게 전송한다.Having received the ClientHello message 30 from the client, the server sends a ServerHello message 32 containing the cookie as a response to the client.

이렇게 Hello 메시지를 교환함으로써 클라이언트와 서버는 SSL 프로토콜의 버전, 세션 ID, Cipher Suite(암호화 방법), 및 압축 방법을 설정하고 각자가 생성한 랜덤한 난수 값을 교환한다.By exchanging Hello messages, the client and server set the SSL protocol version, session ID, cipher suite (encryption method), and compression method, and exchange random random values generated by them.

ServerHello 메시지(32)는 Server_version, Random, Session_ID, Cipher_suite, Compression_methods, 쿠키가 포함된 변수로 이루어진다.ServerHello message 32 consists of variables including Server_version, Random, Session_ID, Cipher_suite, Compression_methods, and cookies.

Server_version은 서버가 지원하는 SSL 프로토콜의 버전을 나타내는 것으로 서버의 버전과 클라이언트의 버전 중 낮은 버전으로 선택되고, Random은 ClientHello 메시지와 마찬가지로 키 블록 생성을 위해 클라이언트가 생성한 임의의 난수 값과 현재 시간 및 날짜를 나타낸다. Session_ID는 현재 세션에 대한 ID 값을 나타내고, Cipher_suite는 클라이언트로부터 수신한 암호 알고리즘의 목록 중에서 하나가 선택되어 결정된다. Compression_methods 또한 클라이언트로부터 수신한 압축 알고리즘의 목록 중에서 하나가 선택되어 결정되고, 쿠키는 ClientHello 메시지와 마찬가지로 SSL을 구별하는 식별자 기능과 DoS 공격을 예방하는 값으로서 사용자의 IP 주소와 공격자가 예측할 수 없는 랜덤한 값을 반드시 포함하는 것을 특징으로 한다.Server_version indicates the version of the SSL protocol supported by the server. The server_version is selected as the lower of the server version and the client version. Random, like the ClientHello message, is a random random value generated by the client for generating a key block, the current time, and Represents a date. Session_ID represents an ID value for the current session, and Cipher_suite is determined by selecting one from a list of cipher algorithms received from a client. Compression_methods is also determined by selecting one of the list of compression algorithms received from the client. Cookies, like ClientHello messages, are unique identifiers that distinguish SSL and prevent DoS attacks. It is characterized by including a value necessarily.

상술한 바와 같이 서버는 많은 수의 SSL 설정 요청을 받게 되는데, 이때 서버는 쿠키 값을 포함하는 ServerHello 메시지(32)를 이용하여 ClientHello 메시지(30)들을 거부할 수 있다. 이에 자신의 연결 요청에 대하여 응답을 수신한 클라이언트는 서버가 전송한 ServerHello 메시지(32)의 쿠키 값을 이전의 ClientHello 메시지(30)에 포함시켜 ClientHello 메시지(34)로서 재전송하게 되는 것이다.As described above, the server receives a large number of SSL setting requests, where the server may reject the ClientHello messages 30 using the ServerHello message 32 including the cookie value. In response, the client receiving the response to the connection request includes the cookie value of the ServerHello message 32 transmitted by the server in the previous ClientHello message 30 and resends it as the ClientHello message 34.

서버에서 쿠키를 계산하는 방식은 다음과 같다.The server calculates the cookie as follows.

쿠키 = <SecretVersionNumber> | Hash( Nc | IPc | <secret> )Cookie = <SecretVersionNumber> | Hash (Nc | IPc | <secret>)

여기서, <secret>은 서버만이 알고 있는 랜덤한 비밀정보로 주기적으로 변경 된다. <SecretVersionNumber>는 <secret> 값이 재생성될 때마다 변경되는 값이고, Nc는 클라이언트의 난수 값을 나타내며, IPc는 클라이언트의 IP 주소를 나타낸다. Nc와 IPc는 ClientHello 메시지 안에 포함되어 있는 값이다.Here, <secret> is periodically changed to random secret information that only the server knows. <SecretVersionNumber> is a value that is changed each time a <secret> value is regenerated, Nc represents a random number value of the client, and IPc represents an IP address of the client. Nc and IPc are the values contained in the ClientHello message.

서버가 상술한 바와 같이 쿠키를 계산하게 되면, 서버는 이전에 계산된 어떤 상태 정보의 저장 없이 두번째 ClientHello 메시지(34)가 도착했을 때 쿠키 값을 재계산하여 이를 수신된 두번째 ClientHello 메시지(34)의 쿠키 값과 비교함으로써 사용자의 IP 주소가 유효한 것인지를 결정할 수 있게 된다.When the server calculates the cookie as described above, the server recalculates the cookie value when the second ClientHello message 34 arrives without storing any previously calculated state information and then re-calculates the value of the second ClientHello message 34 received. By comparing the cookie value, you can determine whether the user's IP address is valid.

서버는 사용자의 IP 주소가 정당하다 판단되면 ServerKeyExchange 메시지(38)를 클라이언트로 전송하고 클라이언트는 ClientKeyExchange 메시지(46)를 서버에게 전송하여 키 생성에 필요한 pre-master secret과 master secret 정보를 서로 공유하게 된다. 이때 서버의 인증이 필요하면 서버는 Certificate 메시지(36)를 클라이언트로 전송하고, 만일 서버가 인증을 하지 않거나 서버가 서명용의 인증서만을 클라이언트로 전송하는 경우에는 ServerKeyExchange 메시지(38)를 통해 서버의 공개 정보를 전송한다. 그리고 서버가 클라이언트에게 인증서를 보낸 경우에는 서버가 CertificateRequest 메시지(40)를 통해 클라이언트에게 인증서를 요청할 수도 있다. 그리고 서버는 ServerHelloDone 메시지(42)를 전송하여 ServerHello 메시지(32)가 끝났음을 알리고 클라이언트의 응답을 기다린다.If the server determines that the user's IP address is justified, the server sends a ServerKeyExchange message (38) to the client, and the client sends the ClientKeyExchange message (46) to the server to share the pre-master secret and master secret information required for key generation. . If the server requires authentication, the server sends a certificate message (36) to the client. If the server does not authenticate or the server sends only a certificate for signing to the client, the server's public information is sent through the ServerKeyExchange message (38). Send it. When the server sends a certificate to the client, the server may request a certificate from the client through a CertificateRequest message 40. The server then sends a ServerHelloDone message 42 to indicate that the ServerHello message 32 has finished and waits for a response from the client.

한편, 서버가 클라이언트에게 Certificate 메시지(36)를 통해 인증을 요구한 경우, 클라이언트는 반드시 Certificate 메시지(44)를 서버에게 전송해야 한다. 그리고 클라이언트는 ClientKeyExchange 메시지(46)를 통해 ServerHello 메시지(32) 에서 선택된 키 교환 알고리즘에 따라 pre-master secret에 대한 정보를 서버에게 전송한다. 또한 CertificateRequest 메시지(40)를 이용한 서버의 요청에 의해 클라이언트가 서버에게 인증서를 전송하는 경우, 클라이언트는 메시지와 master secret에 대한 서명을 생성하여 서버에게 CertificateVerify 메시지(48)를 전송함으로써 인증을 수행한다.On the other hand, when the server requests the client to authenticate through the certificate message 36, the client must send the certificate message 44 to the server. The client then sends information about the pre-master secret to the server via the ClientKeyExchange message 46 according to the key exchange algorithm selected in the ServerHello message 32. In addition, when the client sends a certificate to the server by the request of the server using the CertificateRequest message 40, the client performs authentication by generating a signature for the message and the master secret and sending the CertificateVerify message 48 to the server.

그리고 클라이언트는 설정된 보안 파라미터를 활성화시키기 위하여 Change CipherSpec 프로토콜(50)을 수행한 후 Finished 메시지(52)를 서버에게 전송하며, 서버 또한 Change CipherSpec 프로토콜(54)을 수행한 후 Finished 메시지(56)를 클라이언트에게 전송한다. Finished 메시지(52, 56)는 키 교환과 인증이 성공적으로 수행되었음을 확인하기 위하여 지금까지 전송된 모든 Handshake 프로토콜 메시지들에 대한 일종의 MAC을 계산하여 전송하는 것이다.The client executes the Change CipherSpec protocol 50 to activate the set security parameters, and then sends a Finished message 52 to the server. The server also executes the Change CipherSpec protocol 54 and then sends the Finished message 56 to the client. Send to. Finished messages 52 and 56 calculate and transmit a kind of MAC for all Handshake protocol messages transmitted so far to confirm that key exchange and authentication have been successfully performed.

상기와 같이 Handshake 프로토콜의 동작이 완료되면 Application Data 프로토콜을 이용하여 응용 계층의 데이터를 Record Layer 프로토콜로 전달함으로써 응용 계층의 데이터는 SSL로 보호되어 전송된다.When the handshake protocol is completed as described above, the application layer data is transmitted to the record layer protocol using the application data protocol, and the data of the application layer is protected by SSL.

상술한 바와 같이, 본 발명은 가상 사설망의 클라이언트와 서버가 SSL 통신을 시작하기 전에 접속을 시도하는 사용자의 IP 주소가 유효한 주소인지 확인되기 전까지는 어떠한 상태의 저장이나 CPU를 소모시키는 암호 알고리즘을 수행하지 않음으로써 서버가 DoS 공격을 받아도 안정적으로 SSL 가상 사설망 서비스를 제공할 수 있는 효과가 있다.As described above, the present invention performs an encryption algorithm that saves any state or consumes CPU until the IP address of the user attempting to connect is verified before the client and server of the virtual private network start SSL communication. By not doing so, it is possible to reliably provide SSL virtual private network service even when the server is attacked by DoS.

Claims (7)

클라이언트와 서버로 구성된 SSL 가상 사설망 서비스 처리 방법에 있어서,In the SSL virtual private network service method consisting of a client and server, Handshake 프로토콜을 이용하여 상기 클라이언트 측의 사용자 IP 주소의 정당성을 판단 한 후 상기 클라이언트와 상기 서버 간의 SSL 연결을 수행하는 제 1 과정;A first step of performing an SSL connection between the client and the server after determining the legitimacy of the user IP address of the client using a handshake protocol; Record Layer 프로토콜에서 사용될 보안 파라미터를 설정하는 제 2 과정;A second step of setting a security parameter to be used in the Record Layer protocol; Change CipherSpec 프로토콜을 이용하여 상기 설정된 보안 파라미터를 활성화하는 제 3 과정;A third step of activating the set security parameter using a Change CipherSpec protocol; Application Data 프로토콜을 이용하여 응용 계층의 데이터를 상기 Record Layer 프로토콜로 전달하고 상기 데이터를 보호하여 전송하는 제 4 과정을 포함하는 것을 특징으로 하는 SSL 가상 사설망 서비스 처리 방법.And transmitting a data of an application layer to the record layer protocol by using an application data protocol, and protecting and transmitting the data. 제 1항에 있어서,The method of claim 1, 상기 제 1 과정은,The first process, 상기 클라이언트가 상기 서버에게 ClientHello 메시지를 전송하여 상기 연결을 요청하는 제 1 단계;A first step of the client requesting the connection by sending a ClientHello message to the server; 상기 서버가 상기 클라이언트에게 제 1 쿠키 값을 포함하는 ServerHello 메시지를 전송하는 제 2 단계;A second step of the server sending a ServerHello message including a first cookie value to the client; 상기 클라이언트가 상기 ClientHello 메시지에 상기 제 1 쿠키 값을 포함하 여 상기 서버에게 전송하여 상기 연결을 재요청하는 제 3 단계;A third step of the client resending the connection by including the first cookie value in the ClientHello message and transmitting it to the server; 상기 서버가 제 2 쿠키 값을 계산하여 상기 제 2 쿠키 값과 수신된 상기 ClientHello 메시지에 포함된 제 1 쿠키 값을 비교하여 상기 사용자 IP 주소의 정당성을 판단하는 제 4 단계를 포함하는 것을 특징으로 하는 SSL 가상 사설망 서비스 처리 방법.And a fourth step of the server calculating a second cookie value and comparing the second cookie value with a first cookie value included in the received ClientHello message to determine the validity of the user IP address. How to handle SSL virtual private network service. 제 2항에 있어서,3. The method of claim 2, 상기 ServerHello 메시지는, 상기 제 1 쿠키 값, Server_version, Random, Session_ID, Cipher_suite, 및 Compression_methods 정보를 포함하는 것을 특징으로 하는 SSL 가상 사설망 서비스 처리 방법.The ServerHello message includes the first cookie value, Server_version, Random, Session_ID, Cipher_suite, and Compression_methods information. 제 2항에 있어서,3. The method of claim 2, 상기 제 3 단계에서 재요청되는 상기 ClientHello 메시지는, 상기 제 1 쿠키 값, Client_version , Random, Session_ID, Cipher_suite, 및 Compression_methods 정보를 포함하는 것을 특징으로 하는 SSL 가상 사설망 서비스 처리 방법.The ClientHello message re-requested in the third step includes the first cookie value, Client_version, Random, Session_ID, Cipher_suite, and Compression_methods information. 제 1항에 있어서,The method of claim 1, 상기 제 2 과정은,The second process, 상기 서버가 상기 클라이언트에게 ServerKeyExchange 메시지와 ServerHelloDone 메시지를 전송하는 제 1 단계와;A first step of the server sending a ServerKeyExchange message and a ServerHelloDone message to the client; 상기 클라이언트가 상기 서버에게 ClientKeyExchange 메시지를 전송하는 제 2 단계를 포함하는 것을 특징으로 하는 SSL 가상 사설망 서비스 처리 방법.And a second step of the client sending a ClientKeyExchange message to the server. 제 5항에 있어서,The method of claim 5, 상기 제 2 과정은,The second process, 상기 서버가 상기 클라이언트에게 제 1 Certificate 메시지를 전송하면, 상기 클라이언트가 상기 서버에게 제 2 Certificate 메시지를 전송하는 제 3 단계와;A third step of the client sending a second Certificate message to the server if the server sends a first Certificate message to the client; 상기 서버가 상기 클라이언트에게 CertificateRequest 메시지를 전송하면, 상기 클라이언트가 상기 서버에게 CertificateVerify 메시지를 전송하는 제 4 단계를 더 포함하는 것을 특징으로 하는 SSL 가상 사설망 서비스 처리 방법.And if the server sends a CertificateRequest message to the client, the client sends a CertificateVerify message to the server. 삭제delete
KR1020030091901A 2003-12-16 2003-12-16 Method for processing service in secure socket layer virtual private network KR101022157B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030091901A KR101022157B1 (en) 2003-12-16 2003-12-16 Method for processing service in secure socket layer virtual private network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030091901A KR101022157B1 (en) 2003-12-16 2003-12-16 Method for processing service in secure socket layer virtual private network

Publications (2)

Publication Number Publication Date
KR20050060314A KR20050060314A (en) 2005-06-22
KR101022157B1 true KR101022157B1 (en) 2011-03-17

Family

ID=37253034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030091901A KR101022157B1 (en) 2003-12-16 2003-12-16 Method for processing service in secure socket layer virtual private network

Country Status (1)

Country Link
KR (1) KR101022157B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940525B1 (en) 2007-11-21 2010-02-10 한국전자통신연구원 Apparatus and method for VPN communication in socket-level
KR101275708B1 (en) * 2011-12-20 2013-06-17 (주)소만사 Network-based data loss prevention system using information of ssl/tls handshaking packet and https access selection block method thereof
KR101429687B1 (en) * 2013-01-25 2014-08-13 주식회사 시큐아이 Apparatus and method for detecting proxy
KR102058888B1 (en) * 2017-08-29 2020-02-11 한국전자통신연구원 Security method and apparatus using tfo cookie value, and communication method and apparatus using the same
KR102086739B1 (en) * 2018-06-27 2020-03-09 주식회사 수산아이앤티 Electronic re-signing method to support various digital signature algorithms in secure sockets layer decryption device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6079020A (en) 1998-01-27 2000-06-20 Vpnet Technologies, Inc. Method and apparatus for managing a virtual private network
KR20010071713A (en) * 1998-07-03 2001-07-31 다니엘 태그리아페리, 라이조 캐르키, 모링 헬레나 Secure session set up based on the Wireless Application Protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6079020A (en) 1998-01-27 2000-06-20 Vpnet Technologies, Inc. Method and apparatus for managing a virtual private network
KR20010071713A (en) * 1998-07-03 2001-07-31 다니엘 태그리아페리, 라이조 캐르키, 모링 헬레나 Secure session set up based on the Wireless Application Protocol

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SSL Handshake 프로토콜의 성능 개선[대한전자공학회 학술대회 논문집 제21권 1호, 1998. 7]
SSL을 위한 Signcryption 기반 Ciphersuite[한국정보과학회 2002년도 봄 학술발표논문집 제29권 제1호(A), 2002. 4]

Also Published As

Publication number Publication date
KR20050060314A (en) 2005-06-22

Similar Documents

Publication Publication Date Title
US9992222B2 (en) Systems and methods for inhibiting attacks with a network
KR101055861B1 (en) Communication system, communication device, communication method and communication program for realizing it
JP5651313B2 (en) SIP signaling that does not require continuous re-authentication
CN111901355B (en) Authentication method and device
RU2554532C2 (en) Method and device for secure data transmission
EP1746802A2 (en) User authentication in connection with a security protocol
US20020073322A1 (en) Countermeasure against denial-of-service attack on authentication protocols using public key encryption
US8650397B2 (en) Key distribution to a set of routers
CN106688218B (en) Method and apparatus for controlling handshaking in a packet transport network
WO2004017552A2 (en) Establishing authenticated network connections
EP1493243B1 (en) Secure file transfer
CN112637136A (en) Encrypted communication method and system
CN105359480A (en) Key establishment for constrained resource devices
Lopez et al. Pceps: Usage of tls to provide a secure transport for the path computation element communication protocol (pcep)
JP4783340B2 (en) Protecting data traffic in a mobile network environment
JP4870427B2 (en) Digital certificate exchange method, terminal device, and program
CN110855561A (en) Intelligent gateway of Internet of things
US20210176051A1 (en) Method, devices and computer program product for examining connection parameters of a cryptographically protected communication connection during establishing of the connection
JP4183664B2 (en) Authentication method, server computer, client computer, and program
KR101022157B1 (en) Method for processing service in secure socket layer virtual private network
CN113922974A (en) Information processing method and system, front end, server and storage medium
JP2005165671A (en) Multiplex system for authentication server and multiplex method therefor
KR102580639B1 (en) Data system and encryption method based on key exchange cryptographic protocol using enhanced security function in network layer
US20240154949A1 (en) Devices and Methods for Performing Cryptographic Handshaking
JP4866150B2 (en) FTP communication system, FTP communication program, FTP client device, and FTP server device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee