KR20220163704A - Tls session recovery method using paired token - Google Patents

Tls session recovery method using paired token Download PDF

Info

Publication number
KR20220163704A
KR20220163704A KR1020210072185A KR20210072185A KR20220163704A KR 20220163704 A KR20220163704 A KR 20220163704A KR 1020210072185 A KR1020210072185 A KR 1020210072185A KR 20210072185 A KR20210072185 A KR 20210072185A KR 20220163704 A KR20220163704 A KR 20220163704A
Authority
KR
South Korea
Prior art keywords
client
server
token
time
public
Prior art date
Application number
KR1020210072185A
Other languages
Korean (ko)
Other versions
KR102577882B1 (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 KR1020210072185A priority Critical patent/KR102577882B1/en
Publication of KR20220163704A publication Critical patent/KR20220163704A/en
Application granted granted Critical
Publication of KR102577882B1 publication Critical patent/KR102577882B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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/3242Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

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)
  • Computer And Data Communications (AREA)

Abstract

The present invention relates to a transport layer security (TLS) session recovery method using paired tokens. The method for recovering a TLS session between a client and a server, includes: a step in which the server generates paired tokens of a public token and a private token through a server secret key, and transmits the paired tokens to the client, wherein the private token is generated by repetitively signing the public token without expiry date information; a step in which the client receives and decodes the paired tokens, and stores the paired tokens in an internal auxiliary memory unit; a step in which the client calculates client-sent one-time authentication information which is a hash-based message encoding code by using the present time and the paired tokens, and transmits the public token, the present time and the client-sent one-time authentication information to the server; a step in which when receiving the public token, the present time and the client-sent one-time authentication information, the server calculates the private token using the present time and the public token, and calculates server-sent one-time authentication information which is a hash-based message encoding code by using the present time, the public token and the private token; a step in which the server compares the client-sent one-time authentication information with the server-sent one-time authentication information; a step in which the client or the server calculates a one-time PSK by using the public token, the present time, the private token and mutually agreed character strings; a step in which the client transmits encoded application level data by using the one-time PSK; and a step in which the server decodes the application level data by using the one-time PSK. Therefore, the present invention enables one single private token to be used for a long period without exposing the token.

Description

쌍토큰을 이용한 TLS 세션 복구 방법{TLS SESSION RECOVERY METHOD USING PAIRED TOKEN}TLS session recovery method using pair token {TLS SESSION RECOVERY METHOD USING PAIRED TOKEN}

본 발명은 쌍토큰을 이용한 TLS 세션 복구 방법에 관한 것으로, 더욱 상세하게는 서버가 풀 핸드쉐이크(Full handshake) 완료된 클라이언트에게 쌍토큰을 발급하고 이에 기반하여 시각 기반 일회성 세션키를 설정하여 사용할 수 있도록 하는 방법으로 동일 쌍토큰을 유효기간 동안 다수회 사용할 수 있는 특징을 가진 쌍토큰을 이용한 TLS 세션 복구 방법에 관한 것이다.The present invention relates to a method for recovering a TLS session using a pair token, and more particularly, a server issues a pair token to a client that has completed a full handshake, and based on this, sets a time-based one-time session key so that it can be used The present invention relates to a TLS session recovery method using a paired token having a feature in that the same paired token can be used multiple times during a validity period.

전송계층 보안프로토콜인 전송계층 보안프로토콜인 TLS(transport layer security) 프로토콜은 인터넷상의 통신을 보호하기 위하여 널리 사용되는 가장 기본적인 보안 프로토콜이다. A transport layer security protocol (TLS) protocol, which is a transport layer security protocol, is the most basic security protocol widely used to protect communication on the Internet.

TLS는 크게 핸드쉐이크 프로토콜과 레코드 프로토콜로 구성된다. 핸드쉐이크 프로토콜을 통해 인증서를 이용하여 상호 신분을 확인하고 메시지 암호화에 사용할 세션 비밀키를 생성하며, 레코드 프로토콜을 통해 상기 세션 비밀키를 이용하여 이후의 모든 통신 내용을 암호화하여 보호하게 된다. TLS consists of a handshake protocol and a record protocol. Through the handshake protocol, authentication is used to verify mutual identity, a session secret key to be used for message encryption is generated, and all future communications are encrypted and protected using the session secret key through the record protocol.

핸드쉐이크 프로토콜은 풀 핸드쉐이크(Full handshake)와 세션 복구(Session resumption)로 구별된다. Handshake protocols are divided into full handshake and session resumption.

풀 핸드쉐이크는 처음 접속하는 클라이언트와 서버가 상호 인증을 하고 Diffie-Hellman 키교환 방식 등으로 세션 비밀키를 생성하는데 1~2 라운드의 통신이 필요하고 서버의 계산량이 많다. Full handshake requires 1~2 rounds of communication and requires a lot of server calculations to mutually authenticate the client and server connecting for the first time and to generate a session secret key using the Diffie-Hellman key exchange method.

세션 복구는 이전에 수행했던 풀 핸드쉐이크의 결과로 공유하고 있는 세션 비밀키를 재사용하여 보안 세션을 빠르게 복구하는 것을 말한다. Session recovery refers to quickly recovering a secure session by reusing the session secret key shared as a result of a previously performed full handshake.

TLS 세션 복구에 사용되는 종래 기술에 따른 방법은 2가지가 있다. There are two methods according to the prior art used for TLS session recovery.

첫번째 방법에 따르면, 서버가 세션 비밀키를 DB에 저장하고 이것을 다시 읽어올 수 있도록 Session ID를 생성하여 클라이언트에게 발급한다. 클라이언트가 서버에 Session ID를 제시하며 세션 복구를 요청하면, 서버는 DB에서 세션 비밀키를 읽어와 재사용할 수 있게 된다. 이 방법은 서버가 대규모의 세션비밀키 DB를 관리해야 하고 접속요청시마다 DB에서 읽어와야 하므로 통신 상 부담이 커서 사용자 수가 많아지면 성능에 문제가 발생한다. According to the first method, the server stores the session secret key in the DB and issues a session ID to the client so that it can be read again. When the client presents the session ID to the server and requests session recovery, the server reads the session secret key from the DB and reuses it. This method causes a performance problem when the number of users increases because the server has to manage a large-scale session secret key DB and reads from the DB whenever a connection is requested.

두번째 방법에 따르면, 서버가 세션 비밀키 관련 정보를 서버만 가지고 있는 비밀키로 암호화한 세션 티켓(Session Ticket)을 생성하여 클라이언트에게 발급한다. 클라이언트가 서버에 세션 티켓을 제시하며 세션 복구를 요청하면, 서버는 세션 티켓을 복호화하여 세션을 복구할 수 있다. 이 방법은 서버가 클라이언트별 세션 비밀키를 직접 관리하지 않고도 클라이언트가 제시하는 정보만을 이용하여 빠르게 세션을 복구할 수 있는 효율적인 방식이다. According to the second method, the server creates a session ticket in which information related to the session secret key is encrypted with a secret key possessed only by the server, and issues it to the client. When a client presents a session ticket to the server and requests session recovery, the server can restore the session by decrypting the session ticket. This method is an efficient method for rapidly recovering a session using only information presented by a client without the server directly managing the session secret key for each client.

공개특허 10-2020-0145775호 통신서비스를 제공하는 방법 및 장치Publication No. 10-2020-0145775 Method and apparatus for providing communication service 등록특허 10-2057159호 서버 또는 다른 디바이스로부터의 엔트로피에 기초한 클라이언트 디바이스의 인증Registered Patent No. 10-2057159 Authentication of a client device based on entropy from a server or other device

그런데 세션 티켓을 이용하는 세션복구 기법은 다음과 같은 문제가 있다. 동일한 세션 비밀키를 유효기간 동안 반복해서 사용하게 되므로 보안 측면에서 문제가 발생할 수 있다. 즉, 동일한 세션 비밀키를 유효기간 동안 여러 번 사용하게 되면 세션 비밀키가 누출될 가능성이 있으며 동일한 정보가 여러 번 서버에게 전송되기 때문에 공격자가 이를 추적하여 사용자의 활동을 추적할 수 있게 된다. However, the session recovery technique using session tickets has the following problems. Since the same session secret key is repeatedly used during the validity period, a problem may occur in terms of security. That is, if the same session secret key is used several times during the validity period, there is a possibility that the session secret key may be leaked, and since the same information is transmitted to the server several times, an attacker can trace the activity of the user by tracking it.

본 발명은 위와 같이 세션 티켓을 통해 동일한 세션 비밀키가 여러 번 반복 사용되는 문제점을 해결하고 더 효율적인 TLS 세션 복구 방법을 제공하고자 함에 목적이 있다. An object of the present invention is to solve the above problem of repeatedly using the same session secret key through a session ticket several times and to provide a more efficient TLS session recovery method.

또한, 본 발명은 서버가 클라이언트에 대한 정보를 저장할 필요 없이 쌍토큰을 이용하여 클라이언트에 대한 신뢰를 확인할 수 있고 시각 기반 일회성 세션키를 생성하여 사용할 수 있는 쌍토큰을 이용한 TLS 세션 복구 방법을 제공함에 다른 목적이 있다.In addition, the present invention provides a method for restoring a TLS session using a pair token in which a server can verify trust in a client using a pair token without having to store information about the client and can generate and use a time-based one-time session key. It has a different purpose.

본 발명의 쌍토큰을 이용한 TLS 세션 복구 방법은 클라이언트와 서버 간에 TLS 세션을 복구하는 방법에 있어서, 클라이언트와 서버 간에 TLS 세션을 복구하는 방법에 있어서, 상기 서버가 서버 비밀키를 이용하여 공개토큰과 비밀토큰 - 상기 비밀토큰은 유효기간 정보 없이 상기 공개토큰을 반복적으로 서명함에 의해 생성됨 - 의 쌍토큰을 생성하고, 상기 쌍토큰을 상기 클라이언트에 암호화 채널을 통해 전송하는 단계; 상기 클라이언트가 쌍토큰을 수신하여 복호화하고, 내부의 보조기억부에 저장하는 단계; 상기 클라이언트는 현재 시각과 상기 쌍토큰을 이용하여 클라이언트발 일회성 인증정보를 계산하고, 상기 공개토큰, 현재 시각 및 일회성 인증정보를 상기 서버에 전송하는 단계; 상기 서버는 상기 공개토큰, 현재 시각, 클라이언트발 일회성 인증정보를 수신하면, 공개토큰을 이용하여 비밀토큰을 계산하고, 상기 현재 시각, 공개토큰, 및 비밀토큰을 이용하여 서버발 일회성 인증정보를 계산하는 단계; 상기 서버는 상기 클라이언트발 일회성 인증정보와 상기 서버발 일회성 인증정보를 비교하는 단계; 상기 클라이언트 또는 상기 서버는 상기 공개토큰, 현재 시각, 비밀토큰, 및 상호간에 약속된 문자열을 이용하여 일회성 일회성 PSK(Pre-shared key, 세션키)를 계산하는 단계; 상기 클라이언트 또는 서버는 상기 일회성 PSK를 사용하여 암호화된 응용 레벨 데이터를 전송하는 단계; 및 상기 클라이언트 또는 서버는 상기 일회성 PSK를 이용하여 상기 응용 레벨 데이터를 복호화하는 단계를 포함한다.The method for recovering a TLS session using a paired token of the present invention is a method for recovering a TLS session between a client and a server, in which the server uses a server secret key to restore a TLS session generating a pair token of a secret token, wherein the secret token is generated by repeatedly signing the public token without valid period information, and transmitting the pair token to the client through an encryption channel; receiving, decrypting, and storing the paired tokens in an internal secondary storage unit by the client; calculating, by the client, one-time authentication information from the client using the current time and the twin token, and transmitting the public token, the current time, and the one-time authentication information to the server; When the server receives the public token, the current time, and the one-time authentication information from the client, the server calculates a secret token using the public token, and calculates the one-time authentication information from the server using the current time, the public token, and the secret token. doing; comparing, by the server, one-time authentication information from the client with one-time authentication information from the server; calculating, by the client or the server, a one-time PSK (Pre-shared key, session key) using the public token, the current time, the secret token, and a mutually promised string; transmitting, by the client or server, encrypted application level data using the one-time PSK; and decrypting, by the client or server, the application level data using the one-time PSK.

또한, 본 발명의 쌍토큰을 이용한 TLS 세션 복구 방법은, 클라이언트와 서버 간에 TLS 세션을 복구하는 방법에 있어서, 상기 서버가 서버 비밀키를 이용하여 공개토큰과 비밀토큰 - 상기 비밀토큰은 유효기간 정보 없이 상기 공개토큰을 반복적으로 서명함에 의해 생성됨 - 의 쌍토큰을 생성하고, 상기 쌍토큰을 상기 클라이언트에 암호화 채널을 통해 전송하는 단계; 상기 클라이언트가 쌍토큰을 수신하여 복호화하고, 내부의 보조기억부에 저장하는 단계; 상기 클라이언트는 현재 시각과 상기 쌍토큰 그리고 클라이언트발 임시 DH 공개키를 이용하여 제1 클라이언트발 일회성 인증정보를 계산하고, 상기 공개토큰, 현재 시각, 클라이언트발 임시 DH 공개키 및 제1 클라이언트발 일회성 인증정보를 상기 서버에 전송하는 단계; 상기 서버는 상기 공개토큰, 현재 시각, 클라이언트발 임시 DH 공개키 및 클라이언트발 일회성 인증정보를 수신하면, 상기 현재 시각과 공개토큰을 이용하여 비밀토큰을 계산하고, 상기 현재 시각, 공개토큰, 비밀토큰, 및 클라이언트발 임시 DH 공개키를 이용하여 제1 서버발 일회성 인증정보를 계산하는 단계; 상기 서버는 상기 제1 클라이언트발 일회성 인증정보와 상기 제1 서버발 일회성 인증정보의 일치여부를 판단하고, 상기 제1 클라이언트발 일회성 인증정보와 상기 제1 서버발 일회성 인증정보가 일치하면, 상기 서버는 서버발 임시 DH 공개키를 생성하고, 현재시각, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키, 및 쌍토큰을 이용하여 제2 서버발 일회성 인증정보를 계산하고, 상기 공개토큰, 현재 시각, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키, 및 제2 서버발 일회성 인증정보를 상기 클라이언트에 전송하는 단계; 상기 클라이언트는 상기 현재시각, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키, 및 쌍토큰을 이용하여 제2 클라이언트발 일회성 인증정보를 계산하는 단계; 상기 클라이언트는 상기 제2 클라이언트발 일회성 인증정보와 상기 제2 서버발 일회성 인증정보가 일치여부를 판단하고, 상기 제2 클라이언트발 일회성 인증정보와 상기 제2 서버발 일회성 인증정보가 일치하면, 상기 클라이언트 또는 상기 서버는 상기 공개토큰, 현재 시각, 비밀토큰, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키 및 상호간에 약속된 문자열을 이용하여 일회성 PSK를 계산하는 단계; 상기 클라이언트 또는 서버는 상기 일회성 PSK를 사용하여 암호화된 응용 레벨 데이터를 전송하는 단계; 및 상기 서버 또는 클라이언트는 상기 일회성 PSK를 이용하여 상기 응용 레벨 데이터를 복호화하는 단계를 포함한다.In addition, in the TLS session recovery method using a pair token of the present invention, in the method of recovering a TLS session between a client and a server, the server uses a server secret key to generate a public token and a secret token - the secret token is valid period information Generating a pair of tokens of − generated by repeatedly signing the public token without any signature, and transmitting the pair token to the client through an encryption channel; receiving, decrypting, and storing the paired tokens in an internal secondary storage unit by the client; The client calculates one-time authentication information from the first client using the current time, the twin token, and the temporary DH public key from the client, and the public token, the current time, the temporary DH public key from the client, and the one-time authentication from the first client. transmitting information to the server; When the server receives the public token, the current time, the temporary DH public key from the client, and the one-time authentication information from the client, the server calculates a secret token using the current time and the public token, and calculates the current time, the public token, and the secret token. , and calculating one-time authentication information from the first server using the temporary DH public key from the client; The server determines whether the one-time authentication information from the first client and the one-time authentication information from the first server match, and if the one-time authentication information from the first client and the one-time authentication information from the first server match, the server generates a temporary DH public key from the server, calculates one-time authentication information from the second server using the current time, the temporary DH public key from the client, the temporary DH public key from the server, and the pair token, and calculates the public token, the current transmitting a time, a temporary DH public key from a client, a temporary DH public key from a server, and one-time authentication information from a second server to the client; calculating, by the client, one-time authentication information from a second client using the current time, a temporary DH public key from a client, a temporary DH public key from a server, and a pair of tokens; The client determines whether the one-time authentication information from the second client and the one-time authentication information from the second server match, and if the one-time authentication information from the second client and the one-time authentication information from the second server match, the client or calculating, by the server, a one-time PSK using the public token, the current time, the secret token, the temporary DH public key from the client, the temporary DH public key from the server, and a mutually agreed string; transmitting, by the client or server, encrypted application level data using the one-time PSK; and decrypting, by the server or client, the application level data using the one-time PSK.

본 발명의 쌍토큰을 이용한 TLS 세션 복구 방법에 따르면, 세션 복구시 쌍토큰을 이용하여 시각 기반 일회성 세션키 설정을 제공하므로, 동일 쌍토큰이 더 긴 시간동안 세션 복구를 위해 다수회 사용될 수 있고, 재전송 공격에 대한 저항, 서비스 거부 공격에 대한 저항과 같은 기본적인 보안 특징을 만족할 수 있으며, 익명의 쌍토큰과 안전한 쌍토큰 갱신의 사용으로, 세션 복구 프로토콜은 프라이버시, 비추적성, 및 전방향 보안을 제공할 수 있고, 대규모의 분산서비스 환경에서 상태 비보존형 서비스의 도움으로 막대한 성능 이득과 손쉬운 확장성을 제공할 수 있고, 하나의 비밀토큰을 노출시키지 않고 더 오랜 기간 안전하게 사용할 수 있는 효과가 있다. According to the TLS session recovery method using a paired token of the present invention, a time-based one-time session key setting is provided using a paired token during session recovery, so that the same paired token can be used multiple times for session recovery for a longer period of time, It can satisfy basic security features such as resistance to replay attacks and resistance to denial of service attacks. With the use of anonymous twin tokens and secure twin token updates, the session recovery protocol provides privacy, non-traceability, and forward security. In a large-scale distributed service environment, it can provide huge performance gains and easy scalability with the help of stateless services, and it has the effect of being able to use it safely for a longer period of time without exposing a single secret token.

이 방법은 기존의 세션 티켓을 이용하는 세션 비밀키 복구와 비교하여 다음과 같은 장점이 있다. This method has the following advantages compared to session secret key recovery using an existing session ticket.

비밀토큰은 클라이언트와 서버가 공유하는 기밀정보인데 직접 통신암호화 비밀키로 사용하지 않고 비밀토큰과 현재시각에 기반하여 일회성 세션 비밀키를 생성하여 사용한다. 그러므로 하나의 비밀토큰을 노출시키지 않고 더 오랜 기간 안전하게 사용할 수 있다. The secret token is confidential information shared by the client and server. It is not directly used as a secret key for communication encryption, but a one-time session secret key is generated and used based on the secret token and the current time. Therefore, it can be safely used for a longer period of time without exposing a single secret token.

세션 티켓의 재사용 여부를 관리할 필요가 없어서 서버의 관리가 간단해진다. 아울러 쌍토큰을 효율적으로 갱신할 수 있다. 현재 설정된 암호화 채널 내부에서 서버는 새로운 쌍토큰을 발급하여 갱신하게 할 수 있다. 이 방법을 사용하면 클라이언트는 매번 새로운 쌍토큰을 사용하게 되므로 공격자의 추적에 의한 프라이버시 문제를 방지할 수 있다. Server management is simplified because there is no need to manage whether session tickets are reused or not. In addition, twin tokens can be updated efficiently. Inside the currently set encryption channel, the server can issue a new pair token and update it. If this method is used, the client uses a new pair of tokens each time, so it can prevent privacy problems caused by an attacker's tracking.

도 1은 본 발명의 일실시예에 따른 클라이언트와 서버간 TLS 세션 설정 시스템 개략도,
도 2는 본 발명의 일실시예에 따른 쌍토큰을 이용한 TLS 세션에서의 PSK 설정 절차도, 및
도 3은 본 발명의 다른 실시예에 따른 쌍토큰을 이용한 TLS 세션에서의 PSK 설정 절차도이다.
1 is a schematic diagram of a TLS session establishment system between a client and a server according to an embodiment of the present invention;
2 is a PSK setup procedure diagram in a TLS session using twin tokens according to an embodiment of the present invention, and
3 is a PSK setup procedure diagram in a TLS session using twin tokens according to another embodiment of the present invention.

본 발명의 상세한 설명에 앞서, 본 발명은 다양한 변경을 도모할 수 있고, 여러 가지 실시 예를 가질 수 있는바, 아래에서 설명되고 도면에 도시된 예시들은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Prior to the detailed description of the present invention, the present invention may make various changes and may have various embodiments, and the examples described below and shown in the drawings are not intended to limit the present invention to specific embodiments. No, it should be understood to include all changes, equivalents or substitutes included in the spirit and scope of the present invention.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when an element is referred to as “directly connected” or “directly connected” to another element, it should be understood that no other element exists in the middle.

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도는 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

또한, 명세서에 기재된 "...부", "...유닛", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as "...unit", "...unit", and "...module" described in the specification mean a unit that processes at least one function or operation, which is hardware, software, or hardware and It can be implemented as a combination of software.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing the present invention, if it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted.

도 1은 본 발명의 일실시예에 따른 클라이언트와 서버간 TLS 세션 설정 시스템 개략도이다.1 is a schematic diagram of a TLS session establishment system between a client and a server according to an embodiment of the present invention.

본 발명의 일실시예에 따른 클라이언트와 서버간 TLS 세션 설정 시스템은 다수의 클라이언트(100: 100-1, 100-2, ..., 100-N)와 TLS 서버(200)를 포함한다. 여기서, 다수의 클라이언트(100-1, 100-2, ..., 100-N)는 TLS 서버(200)와 개별적으로 연결되고, 개별적으로 인증된다. 따라서 이하에서는 개별 클라이언트(100-1)와 TLS 서버(200) 간의 인증에 대하여 예시적으로 설명하기로 한다.A system for establishing a TLS session between a client and a server according to an embodiment of the present invention includes a plurality of clients 100 (100-1, 100-2, ..., 100-N) and a TLS server 200. Here, the plurality of clients 100-1, 100-2, ..., 100-N are individually connected to the TLS server 200 and individually authenticated. Accordingly, authentication between the individual client 100-1 and the TLS server 200 will be exemplarily described below.

여기서 각각의 클라이언트는 통상의 연산처리부, 주기억부, 보조기억부, 및 인터페이스를 포함하고, TLS 서버도 통상의 연산처리부, 주기억부, 보조기억부, 및 인터페이스를 포함한다. Here, each client includes a normal operation processing unit, a main storage unit, an auxiliary storage unit, and an interface, and the TLS server also includes a normal operation processing unit, a main storage unit, an auxiliary storage unit, and an interface.

TLS 서버(200)는 클라이언트(100-1)에게 사용자 인증 권한을 부여할 수 있다. 아울러, TLS 서버(200)는 인증 서비스 이외에 다양한 서비스(가령, 정보 제공 서비스, 결재 서비스 등)를 클라이언트(100-1)에게 제공할 수 있다.The TLS server 200 may grant user authentication authority to the client 100-1. In addition, the TLS server 200 may provide various services (eg, information provision service, payment service, etc.) to the client 100-1 in addition to the authentication service.

한편, TLS 서버(200)는 처음 접속하는 클라이언트(100-1)와 상호 인증을 하고 Diffie-Hellman 키교환 등의 방식으로 세션 비밀키를 생성함으로써 Full handshake를 수행한다.Meanwhile, the TLS server 200 performs a full handshake by performing mutual authentication with the client 100-1 accessing for the first time and generating a session secret key using a Diffie-Hellman key exchange method.

Full handshake에 성공하면 TLS 서버(200)는 클라이언트(100-1)에게 공개토큰(Tp) 및 비밀토큰(Ts)의 쌍토큰(PT: paired token)을 발급한다. If the full handshake is successful, the TLS server 200 issues a paired token (PT) of a public token (Tp) and a secret token (Ts) to the client 100-1.

쌍토큰을 가지고 있는 클라이언트(100-1)는 3가지 정보<공개토큰, 현재 시각, 일회성 인증값>를 TLS 서버(200)에게 전송하며 세션 복구를 요청한다. The client 100-1 having the pair token transmits three types of information <public token, current time, and one-time authentication value> to the TLS server 200 and requests session recovery.

이를 수신한 TLS 서버(200)는 1) 수신된 공개토큰(Tp)으로부터 자신이 발급한 토큰이 맞는지 확인한다, 2) 수신된 공개토큰(Tp)으로부터 클라이언트의 비밀토큰(Ts)을 계산한다, 3) 수신한 클라이언트(100-1)의 현재시각 정보(t)가 TLS 서버(200)의 현재시각 정보와 오차범위 내에서 일치하는지 확인한다, 4) 수신한 일회성 인증값(auth)이 유효한지 검증한다. Upon receiving this, the TLS server 200 1) checks whether the token issued by itself is correct from the received public token (Tp), 2) calculates the client's secret token (Ts) from the received public token (Tp), 3) Check whether the received current time information (t) of the client 100-1 matches the current time information of the TLS server 200 within an error range, 4) Whether the received one-time authentication value (auth) is valid verify

이후 TLS 서버(200)는 서버 생성 일회성 세션 비밀키(PSK_S)를 생성한다. 이것은 클라이언트(100-1)가 생성하는 클라이언트 생성 일회성 세션 비밀키(PSK_C)와 동일한 바, 상호 암호화 통신을 수행할 수 있다.Then, the TLS server 200 generates a server-generated one-time session secret key (PSK_S). Since this is the same as the client-generated one-time session secret key (PSK_C) generated by the client 100-1, mutual encryption communication can be performed.

TLS 서버(200)가 Full handshake 수행시 클라이언트에게 쌍토큰(PT)을 발행하는데, 기본적으로 뉴세션티켓(NewSessionTicket) 메시지 내에서 쌍토큰(PT)을 전송하는 것을 제외하고 TLS 1.3 내 Full handshake와 동일하다. Full handshake는 서버 인증서를 사용한 의무적 서버 인증과 클라이언트 인증서를 사용한 선택적 클라이언트 인증을 포함한다. 첫 두 움직임 내 키 교환은 클라이언트(100-1)와 TLS 서버(200) 사이에 공유비밀키를 계산하도록 사용되고, 이 공유비밀키는 클라이언트(100-1)에게 쌍토큰(PT)을 안전하게 전송하도록 사용된다. TLS 서버(200)는 토큰 발행에 사용하는 서버 비밀키(K)를 소유하고 있으며 공개토큰(Tp)과 비밀토큰(Ts)을 다음과 같이 생성한다. When the TLS server 200 performs a full handshake, it issues a pair token (PT) to the client. It is basically the same as the full handshake in TLS 1.3 except for transmitting the pair token (PT) in the NewSessionTicket message. do. The full handshake includes mandatory server authentication using a server certificate and optional client authentication using a client certificate. The key exchange in the first two moves is used to compute a shared secret between the client 100-1 and the TLS server 200, which is used to securely transmit the pair token (PT) to the client 100-1. used The TLS server 200 possesses a server secret key (K) used for token issuance, and generates a public token (Tp) and a secret token (Ts) as follows.

Figure pat00001
Figure pat00001

Figure pat00002
Figure pat00002

여기서, GJWT(K, Info)는 JWT 발행 과정을 수식으로 표현한 추상적 표기법이다. Here, G JWT (K, Info) is an abstract notation expressing the JWT issuance process as a formula.

한편, 토큰 계산시 사용하는 서버 비밀키(K)는 서버만이 소유하고 토큰발행을 위해서만 사용하는 비밀키로서, TLS에서 full handshake시 클라이언트와 서버가 공유하게 되는 공유비밀키와 다르다.On the other hand, the server secret key (K) used in token calculation is a secret key owned only by the server and used only for token issuance, and is different from the shared secret key shared by the client and server during a full handshake in TLS.

TLS 서버(200)는 서버 비밀키(K)를 사용하여 생성된 <Tp, Ts>를 클라이언트(100-1)에게 전송한다. 사용자 인증서버와 클라이언트는 full handshake를 통해 공유비밀키를 공유하고 있으며 <Tp, Ts>는 공유비밀키로 암호화하여 전송된다. 이후 클라이언트(100-1)는 그것을 복호화하여 <Tp, Ts>를 복구하고, 내부 저장부(미도시)에 저장한다. The TLS server 200 transmits <Tp, Ts> generated using the server secret key (K) to the client 100-1. The user authentication server and client share the shared secret key through full handshake, and <Tp, Ts> is transmitted after being encrypted with the shared secret key. Then, the client 100-1 decrypts it to restore <Tp, Ts> and stores it in an internal storage unit (not shown).

TLS 서버(200)는 그 정책에 따라 공개토큰(Tp)에 IP 주소, OS 정보, 브라우저 정보, 발행 시각, 토큰의 유효기간 등과 같은 여하의 클라이언트-특화 정보를 포함할 수 있다. TLS 서버(200)는 서버 비밀키(K)를 이용하여 공개토큰(Tp)을 생성하고, 공개토큰(Tp)의 유효성은 단지 서버 비밀키(K)를 아는 TLS 서버(200)에 의해 검증 가능하다. 비밀토큰(Ts)은 유효기간 정보 없이 공개토큰(Tp)을 서명함에 의해 생성되고, 단지 TLS 서버(200)에 의해서만 생성될 수 있다.The TLS server 200 may include any client-specific information such as IP address, OS information, browser information, issuance time, token validity period, etc. in the public token Tp according to its policy. The TLS server 200 generates a public token Tp using the server secret key K, and the validity of the public token Tp can be verified only by the TLS server 200 knowing the server secret key K. do. The secret token (Ts) is generated by signing the public token (Tp) without valid period information, and can be generated only by the TLS server 200.

동일 쌍토큰(PT)는 유효기간 동안 세션 복구를 위해 복수회 사용될 것이기 때문에 쌍토큰(PT) 발행 절차는 full handshake 내에서 매우 가끔씩 실행된다. 클라이언트가 유효한 쌍토큰(PT)을 가지고 있으면, 쌍토큰(PT)을 사용한 세션 복구는 더 지배적으로 사용될 것이다.Since the same pair of tokens (PT) will be used multiple times for session recovery during the validity period, the process of issuing the pair of tokens (PT) is very infrequently executed within the full handshake. If the client has a valid pair token (PT), session recovery using the pair token (PT) will be used more predominantly.

클라이언트가 PT를 가지고 있으면, 안전한 세션키는 PT를 사용한 무상태적 방법으로 매우 빠르게 설정될 수 있다. 이 절차는 매 복구 요청에서 실행되고, 반복적으로 사용되는 동일한 PT를 통해 다른 세션키를 생성한다. 본 발명에 따르면, 일회성 세션 비밀키(PSK)는 다양한 양태로 생성될 수 있는바, 도 2 및 도 3에서 예시하기로 한다.If the client has a PT, a secure session key can be established very quickly in a stateless way using the PT. This procedure is executed on every recovery request and generates another session key with the same PT used repeatedly. According to the present invention, the one-time session secret key (PSK) can be generated in various ways, and will be exemplified in FIGS. 2 and 3 .

i) Model 1(쌍토큰을 이용한 단일 메시지형 세션 복구)i) Model 1 (single message type session recovery using twin tokens)

도 2는 본 발명의 일실시예에 따른 쌍토큰을 이용한 TLS 세션에서의 PSK 설정 절차도이다.2 is a PSK configuration procedure diagram in a TLS session using twin tokens according to an embodiment of the present invention.

본 발명의 일실시예에 따르면, 클라이언트(100-1)와 TLS 서버(200)는 TLS 세션에서의 PSK 설정 절차를 다음과 같이 수행한다.According to an embodiment of the present invention, the client 100-1 and the TLS server 200 perform a PSK setup procedure in the TLS session as follows.

먼저 클라이언트(100-1)는 Client Hello 메시지에 Version, Random Number, Session ID, CipherSuites, 및 Compression Method 등의 파라미터를 포함하여 TLS 서버(200)로 전송한다(S210). 여기서 Session ID는 새로운 세션을 생성할 경우에는 empty로 설정되며, CipherSuites, 및 Compression Method는 클라이언트가 지원하는 암호화 파라미터의 리스트와 데이터 압축 방식에 대한 ID를 나타낸다.First, the client 100-1 transmits the Client Hello message to the TLS server 200 including parameters such as Version, Random Number, Session ID, CipherSuites, and Compression Method (S210). Here, Session ID is set to empty when a new session is created, and CipherSuites and Compression Method indicate IDs for a list of encryption parameters and a data compression method supported by the client.

상기 Client Hello에 대한 응답으로 TLS 서버(200)는 자신이 선택한 Version, Random Number, Session ID, CipherSuites, 및 Compression Method 등의 파라미터가 포함된 Server Hello 메시지를 클라이언트(100-1)로 전송한다(S215). In response to the Client Hello, the TLS server 200 transmits to the client 100-1 a Server Hello message including parameters such as the Version, Random Number, Session ID, CipherSuites, and Compression Method selected by the TLS server (S215). ).

그리고, TLS 서버(200)는 Server Hello를 보낸 후에 클라이언트(100-1)로 Encrypted Extensions, CertificateRequest*, Certificate*, CertificateVerify*, 및 Finished 등과 같은 메시지를 순차적으로 전송할 수 있다(S220). 이때, "*"는 선택적(optional)인 것을 나타낸다.And, after sending the Server Hello, the TLS server 200 may sequentially transmit messages such as Encrypted Extensions, CertificateRequest*, Certificate*, CertificateVerify*, and Finished to the client 100-1 (S220). At this time, "*" indicates that it is optional.

TLS 서버(200)로부터 Finished가 입력되면, 클라이언트(100-1)는 Certificate*, CertificateVerify*, 및 Finished 등과 같은 메시지를 TLS 서버(200)로 전송한다(S225).When Finished is input from the TLS server 200, the client 100-1 transmits messages such as Certificate*, CertificateVerify*, and Finished to the TLS server 200 (S225).

클라이언트(100-1)가 TLS 서버(200)에 Finished를 보내면, 클라이언트와 TLS 서버는 서로 인증된 상태이며 TLS 공유세션키를 가지게 된다. 이후 TLS 서버는 클라이언트가 세션 복구에 사용할 수 있도록 쌍토큰을 발급하게 된다. When the client 100-1 sends Finished to the TLS server 200, the client and the TLS server are mutually authenticated and have a TLS shared session key. Afterwards, the TLS server issues a pair token so that the client can use it for session recovery.

TLS 서버(200)는 서버 비밀키(K)를 이용하여 수학식 1의 공개토큰(Tp)과 수학식 2의 비밀토큰(Ts)을 생성한다(S230). TLS 서버(200)는 그 정책에 따라 공개토큰(Tp)에 IP 주소, OS 정보, 브라우저 정보, 발행 시각, 토큰의 유효기간 등과 같은 여하의 클라이언트-특화 정보를 포함할 수 있다. 공개토큰(Tp)은 서버 비밀키(K)와 함께 TLS 서버(200)에 의해 서명되고, 그 유효성은 단지 서버 비밀키(K)를 아는 TLS 서버(200)에 의해 인증 가능하다. 비밀토큰(Ts)은 유효기간 정보 없이 공개토큰(Tp)을 반복적으로 서명함에 의해 생성되고, 단지 TLS 서버(200)에 의해 생성될 수 있다.The TLS server 200 generates a public token (Tp) of Equation 1 and a secret token (Ts) of Equation 2 using the server secret key (K) (S230). The TLS server 200 may include any client-specific information such as IP address, OS information, browser information, issuance time, token validity period, etc. in the public token Tp according to its policy. The public token (Tp) is signed by the TLS server 200 with a server secret key (K), and its validity can only be verified by the TLS server 200 knowing the server secret key (K). The secret token (Ts) is generated by repeatedly signing the public token (Tp) without expiration date information, and can be generated only by the TLS server 200.

TLS 서버(200)는 쌍토큰 <Tp, Ts>를 TLS 세션키로 암호화하여 클라이언트(100-1)에게 전송한다(S235). 이후 클라이언트(100-1)는 그것을 복호화하여 <Tp, Ts>를 복구하고, 내부의 보조기억부(미도시)에 저장한다(S240). The TLS server 200 encrypts the paired token <Tp, Ts> with the TLS session key and transmits it to the client 100-1 (S235). Then, the client 100-1 decodes it to restore <Tp, Ts>, and stores it in an internal auxiliary storage unit (not shown) (S240).

클라이언트(100-1)는 보유하고 있는 쌍토큰 <Tp, Ts>를 이용하여 TLS 서버(200)에 세션복구를 요청할 수 있다. 클라이언트(100-1)는 현재 시각 정보 t를 준비하고, 쌍토큰 <Tp, Ts>을 이용하여 클라이언트발 일회성 인증정보(auth_C)를 수학식 3과 같이 계산한다(S245).The client 100-1 may request session recovery from the TLS server 200 using the paired tokens <Tp, Ts> it possesses. The client 100-1 prepares the current time information t, and calculates one-time authentication information (auth_C) from the client as shown in Equation 3 using the pair of tokens <Tp, Ts> (S245).

Figure pat00003
Figure pat00003

이후, 클라이언트(100-1)는 공개토큰, 현재 시각, 클라이언트발 일회성 인증정보 <Tp, t, auth_C>를 TLS 서버(200)에 전송한다(S250).Thereafter, the client 100-1 transmits the public token, the current time, and one-time authentication information from the client <Tp, t, auth_C> to the TLS server 200 (S250).

TLS 서버(200)는 공개토큰, 현재 시각, 클라이언트발 일회성 인증정보 <Tp, t, auth_C>를 수신하면, TLS 서버(200)는 자신의 현재 시각을 확보하고, 클라이언트의 요청 시각 t로부터 시간차가 소정의 허용치 내에 있는지를 체크한다. 또한, TLS 서버(200)는 서버 비밀키(K)를 사용하여 공개토큰(Tp)의 유효성을 검증하고, 클라이언트(100-1)의 신원을 식별할 수 있다. 그리고 TLS 서버(200)는 서버 비밀키(K)와 공개토큰(Tp)를 이용하여 수학식 2의 비밀토큰(Ts)을 계산하고, 공개토큰(Tp) 및 비밀토큰(Ts)를 이용하여 수학식 4의 서버발 일회성 인증정보(auth_S)를 계산한다(S255).When the TLS server 200 receives the public token, the current time, and the one-time authentication information <Tp, t, auth_C> from the client, the TLS server 200 secures its current time, and the time difference from the client's request time t Check whether it is within the predetermined tolerance. In addition, the TLS server 200 may verify the validity of the public token Tp using the server secret key K and identify the identity of the client 100-1. Further, the TLS server 200 calculates the secret token (Ts) of Equation 2 using the server secret key (K) and the public token (Tp), and calculates the secret token (Ts) using the public token (Tp) and the secret token (Ts). One-time authentication information (auth_S) from the server of Equation 4 is calculated (S255).

Figure pat00004
Figure pat00004

여기서 서버발 일회성 인증정보(auth_S)는 클라이언트의 시각 기반 일회성 인증 정보(Ts를 아는 증거)로, 비밀토큰(Ts)을 아는 클라이언트(100-1)에 의해서만 생성될 수 있고, 그 유효성은 서버 비밀키(K)를 아는 TLS 서버에 의해서만 검증될 수 있다. Here, the one-time authentication information (auth_S) from the server is time-based one-time authentication information (evidence of knowing Ts) of the client, and can be generated only by the client 100-1 knowing the secret token (Ts), and its validity is server secret. It can only be verified by a TLS server that knows the key (K).

TLS 서버(200)는 클라이언트(100-1)로부터 수신되는 클라이언트발 일회성 인증정보(auth_C)와 자신이 계산한 서버발 일회성 인증정보(auth_S)가 일치하는지를 판단하고(S260), 클라이언트발 일회성 인증정보(auth_C)와 자신이 계산한 서버발 일회성 인증정보(auth_S)가 일치하면, 모든 인증이 성공적으로 완료된다.The TLS server 200 determines whether the one-time authentication information from the client (auth_C) received from the client 100-1 and the one-time authentication information from the server (auth_S) calculated by the server 200 match (S260), and the one-time authentication information from the client. If (auth_C) matches the one-time authentication information from the server (auth_S) calculated by the user, all authentication is successfully completed.

이후, 클라이언트(100-1) 및 TLS 서버(200)는 각각 공개토큰(Tp), 현재 시각(t), 비밀토큰(Ts), 및 상호간에 약속된 문자열(여기서는 "key"로 표기함)을 이용하여 수학식 5의 일회성 PSK(PSK_C, PSK_S)를 계산한다(S265-C, S265-S). 여기서 클라이언트(100-1)가 계산해내는 클라이언트발 일회성 PSK(PSK_C)와 TLS 서버(200)가 계산해내는 서버발 일회성 PSK(PSK_S)는 동일한 값이다.Thereafter, the client 100-1 and the TLS server 200 each transmit a public token (Tp), a current time (t), a secret token (Ts), and a mutually agreed string (herein referred to as “key”). Calculate the one-time PSK (PSK_C, PSK_S) of Equation 5 using Equation 5 (S265-C, S265-S). Here, the client-generated one-time PSK (PSK_C) calculated by the client 100-1 and the server-generated one-time PSK (PSK_S) calculated by the TLS server 200 are the same value.

Figure pat00005
Figure pat00005

공격자들은 도청된 프로토콜 메시지를 재전송하는 공격을 시도할 수 있을 것인데 다른 시각에서의 프로토콜의 응답은 무효한 것으로 결정된다. 또한, 재전송 공격이 유효하게 판정되더라도 공격자는 비밀토큰(Ts)을 가지고 있지 않기 때문에 일회성 PSK를 계산할 수 없고 암호화된 통신을 도청하거나 할 수 없게 된다. An attacker could attempt an attack by retransmitting an intercepted protocol message, but the protocol's response at any other time is determined to be invalid. In addition, even if the replay attack is determined to be valid, the attacker cannot calculate the one-time PSK and eavesdrop on encrypted communication because he does not have the secret token Ts.

TLS 서버(200)는 무상태형 방식으로 클라이언트(100-1)와 동일한 비밀토큰(Ts)을 공유하고 있는 것이며, 클라이언트(100-1)와 TLS 서버(200)는 여하의 미리 합의된 방식으로 일회성 PSK를 설정할 수 있다. The TLS server 200 shares the same secret token (Ts) as the client 100-1 in a stateless manner, and the client 100-1 and the TLS server 200 share the one-time PSK can be set.

클라이언트(100-1)와 TLS 서버(200)가 동일한 일회성 PSK를 공유하면, 요청 메시지 내 암호화된 응용 레벨 데이터를 전송코자 한다면 일회성 PSK를 사용하여 암호화 통신을 달성할 수 있다. 한편, 일회성 PSK를 사용하여 응용 레벨 데이터를 암호화하는 기술은 당해 분야에 종사하는 기술자에게 자명한 사항이므로 자세한 설명은 생략하기로 한다.If the client 100-1 and the TLS server 200 share the same one-time PSK, if they want to transmit encrypted application level data in a request message, they can achieve encrypted communication using the one-time PSK. Meanwhile, since a technique of encrypting application level data using a one-time PSK is obvious to those skilled in the art, a detailed description thereof will be omitted.

즉, 클라이언트(100-1)가 TLS 서버(200)에 클라이언트발 일회성 PSK(PSK_C)를 사용하여 응용 레벨 데이터를 전송하면, TLS 서버(200)는 서버발 일회성 PSK(PSK_S)를 계산하여 응용 레벨 데이터를 복호화한다.That is, when the client 100-1 transmits application level data to the TLS server 200 using the one-time PSK (PSK_C) from the client, the TLS server 200 calculates the one-time PSK (PSK_S) from the server and applies it to the application level. decrypt the data

이 방법은 단일 메시지, 일방향, 결정론적 키 설정으로서 세션키를 오랜 시간동안 사용하는 세션형 암호화 통신에도 유용하지만, IoT 응용 서비스와 같이 가벼운 클라이언트와의 간헐적 통신 환경에서도 세션설정 과정 없이 암호화된 메시지를 직접 보낼 수 있기 때문에 매우 유용하다.This method is a single message, one-way, deterministic key setting, and is useful for session-type encrypted communication that uses a session key for a long time. However, even in an intermittent communication environment with a lightweight client such as an IoT application service, an encrypted message can be transmitted without a session establishment process. It is very useful because you can send it directly.

한편, 도 2에 도시된 본 발명의 일실시예에 따른 쌍토큰을 이용한 TLS 세션에서의 PSK 설정 절차는, 전방향 보안(Forward Security)을 제공하지 않는다. 해커가 여하의 방식으로 비밀토큰(Ts)에 접근한다면, 해커는 쌍토큰(PT)의 유효기간 동안의 모든 이전 세션의 PSK를 계산할 수 있게 된다. On the other hand, the PSK setup procedure in the TLS session using a pair of tokens according to an embodiment of the present invention shown in FIG. 2 does not provide forward security. If the hacker accesses the secret token (Ts) in any way, the hacker can calculate the PSK of all previous sessions during the validity period of the pair token (PT).

ii) Model 2(쌍토큰을 이용한 Diffie-Hellman형 세션 복구)ii) Model 2 (Diffie-Hellman type session recovery using twin tokens)

따라서 전방향 보안을 얻기 위해서는 임시 Diffie-Hellman 키 교환을 이용하여 프로토콜을 재구성할 수 있는데, 도 3에 도시된 본 발명의 다른 실시예에 따른 쌍토큰을 이용한 TLS 세션에서의 PSK 설정 절차에서는 Diffie-Hellman 키 교환을 이용하고 양방향으로 일회성 인증정보(auth)를 검증함으로써 전방향 보안을 확보한다.Therefore, in order to obtain omnidirectional security, the protocol can be reconstructed using temporary Diffie-Hellman key exchange. It secures forward security by using Hellman key exchange and verifying one-time authentication information (auth) in both directions.

단계 S310 내지 단계 S325의 수행 절차는 도 2에서의 단계 S210 내지 단계 S225의 수행 절차와 동일하므로 이에 대한 구체적인 설명은 생략하고, 이후 절차에 대하여 설명하기로 한다. Since the procedure of performing steps S310 to S325 is the same as that of steps S210 to S225 in FIG. 2 , detailed descriptions thereof will be omitted and the following procedures will be described.

클라이언트(100-1)가 TLS 서버(200)에 Finished를 보내면, TLS 서버(200)는 서버 비밀키(K)를 이용하여 수학식 1의 공개토큰(Tp)과 수학식 2의 비밀토큰(Ts)을 생성한다(S330). When the client 100-1 sends Finished to the TLS server 200, the TLS server 200 uses the server secret key K to obtain the public token Tp of Equation 1 and the secret token Ts of Equation 2 ) is generated (S330).

TLS 서버(200)는 생성된 쌍토큰 <Tp, Ts>를 TLS 세션키로 암호화하여 클라이언트(100-1)에게 전송한다(S335). 이후 클라이언트(100-1)는 그것을 복호화하여 쌍토큰 <Tp, Ts>를 복구하고, 내부 저장부(미도시)에 저장한다(S340). The TLS server 200 encrypts the generated pair of tokens <Tp, Ts> with the TLS session key and transmits them to the client 100-1 (S335). Then, the client 100-1 decrypts it to restore the pair of tokens <Tp, Ts> and stores them in an internal storage unit (not shown) (S340).

클라이언트(100-1)는 보유하고 있는 쌍토큰 <Tp, Ts>를 이용하여 TLS 서버(200)에 세션복구를 요청할 수 있다. 클라이언트(100-1)는 현재 시각 t를 준비하고, 클라이언트 난수(x) 및 클라이언트발 임시 DH 공개키(gx)를 생성하고, 클라이언트발 임시 DH 공개키(gx)와 쌍토큰 <Tp, Ts>을 이용하여 제1 클라이언트발 일회성 인증정보(auth1_C)를 수학식 6과 같이 계산한다(S345).The client 100-1 may request session recovery from the TLS server 200 using the paired tokens <Tp, Ts> it possesses. The client 100-1 prepares the current time t, generates a client random number (x) and a temporary DH public key (g x ) from the client, and generates the temporary DH public key (g x ) from the client and the pair token <Tp;Ts> is used to calculate the one-time authentication information (auth1_C) from the first client as shown in Equation 6 (S345).

Figure pat00006
Figure pat00006

이후, 클라이언트(100-1)는 TLS 서버(200)에 공개토큰(Tp), 현재 시각(t), 클라이언트발 임시 DH 공개키(gx), 및 제1 클라이언트발 일회성 인증정보(auth1_C) <Tp, t, gx, auth1_C>를 전송한다(S350).Thereafter, the client 100-1 sends the TLS server 200 the public token (Tp), the current time (t), the temporary DH public key (g x ) from the client, and the one-time authentication information (auth1_C) from the first client. < Tp, t, g x , auth1_C> is transmitted (S350).

TLS 서버(200)는 클라이언트(100-1)로부터 공개토큰(Tp), 현재 시각(t), 클라이언트발 임시 DH 공개키(gx), 제1 클라이언트발 일회성 인증정보(auth1_C) <Tp, t, gx, auth1_C>를 수신하면, TLS 서버(200)는 자신의 현재 시각을 확보하고, 클라이언트의 요청 시각 t로부터 시간차가 소정의 허용치 내에 있는지를 체크한다. 이후, TLS 서버(200)는 서버 비밀키(K)를 사용하여 공개토큰(Tp)의 유효성을 검증하고, 클라이언트(100-1)의 신원을 식별할 수 있다. 그리고 TLS 서버(200)는 서버 비밀키(K)와 공개토큰(Tp)를 이용하여 수학식 2의 비밀토큰(Ts)를 계산하고, 공개토큰(Tp), 클라이언트발 임시 DH 공개키(gx), 및 비밀토큰(Ts)를 이용하여 제1 서버발 일회성 인증정보(auth1_S)를 수학식 7과 같이 계산한다(S355).The TLS server 200 receives a public token (Tp) from the client 100-1, a current time (t), a temporary DH public key (g x ) from the client, and one-time authentication information (auth1_C) from the first client <Tp, t , g x , auth1_C>, the TLS server 200 secures its current time and checks whether the time difference from the requested time t of the client is within a predetermined tolerance. Thereafter, the TLS server 200 may verify the validity of the public token Tp using the server secret key K, and identify the identity of the client 100-1. In addition, the TLS server 200 calculates the secret token (Ts) of Equation 2 using the server secret key (K) and the public token (Tp), and calculates the public token (Tp) and the temporary DH public key (g x ), and the secret token (Ts), the one-time authentication information (auth1_S) from the first server is calculated as shown in Equation 7 (S355).

Figure pat00007
Figure pat00007

여기서 제1 서버발 일회성 인증정보(auth_S)는 클라이언트의 시각 기반 일회성 인증 정보(Ts를 아는 증거)로, 비밀토큰(Ts)을 아는 클라이언트(100-1)에 의해서만 생성될 수 있고, 그 유효성은 서버 비밀키(K)를 아는 TLS 서버에 의해서만 검증될 수 있다. Here, the one-time authentication information (auth_S) from the first server is time-based one-time authentication information (evidence of knowing Ts) of the client, and can be generated only by the client 100-1 knowing the secret token (Ts), the validity of which is It can only be verified by a TLS server that knows the server secret key (K).

TLS 서버(200)는 클라이언트(100-1)로부터 수신되는 제1 클라이언트발 일회성 인증정보(auth1_C)와 제1 서버발 일회성 인증정보(auth1_S)가 일치하는지를 판단한다(S360).The TLS server 200 determines whether the one-time authentication information (auth1_C) from the first client received from the client 100-1 and the one-time authentication information (auth1_S) from the first server match (S360).

제1 클라이언트발 일회성 인증정보(auth1_C)와 제1 서버발 일회성 인증정보(auth1_S)가 일치하면, 서버 난수(y) 및 서버발 임시 DH 공개키(gy)를 생성하고, 현재시각(t), 클라이언트발 임시 DH 공개키(gx), 서버발 임시 DH 공개키(gy), 및 쌍토큰 <Tp, Ts>을 이용하여 제2 서버발 일회성 인증정보(auth2_S)를 수학식 8과 같이 계산한다(S365).If the one-time authentication information (auth1_C) from the first client and the one-time authentication information (auth1_S) from the first server match, a server random number (y) and a temporary DH public key (g y ) are generated, and the current time (t) , the temporary DH public key from the client (g x ), the temporary DH public key from the server (g y ), and the pair token <Tp, Ts> to obtain the one-time authentication information (auth2_S) from the second server as shown in Equation 8 Calculate (S365).

Figure pat00008
Figure pat00008

TLS 서버(200)가 공개토큰(Tp), 현재 시각(t), 클라이언트발 임시 DH 공개키(gx), 서버발 임시 DH 공개키(gy), 및 제2 서버발 일회성 인증정보(auth2_S) <Tp, t, gx, gy, auth2_S>를 클라이언트(100-1)에 전송한다(S370).The TLS server 200 receives a public token (Tp), a current time (t), a temporary DH public key (g x ) from the client, a temporary DH public key (g y ) from the server, and one-time authentication information (auth2_S) from the second server. ) <Tp, t, g x , g y , auth2_S> is transmitted to the client 100-1 (S370).

클라이언트(100-1)가 TLS 서버(200)로부터 공개토큰(Tp), 현재 시각(t), 클라이언트발 임시 DH 공개키(gx), 서버발 임시 DH 공개키(gy), 및 제2 서버발 일회성 인증정보(auth2_S) <Tp, t, gx, gy, auth2_S>를 수신하면, 현재시각(t), 클라이언트발 임시 DH 공개키(gx), 서버발 임시 DH 공개키(gy), 및 쌍토큰 <Tp, Ts>을 이용하여 제2 클라이언트발 일회성 인증정보(auth2_C)를 수학식 9와 같이 계산한다(S375).The client 100-1 receives a public token (Tp) from the TLS server 200, a current time (t), a temporary DH public key (g x ) from the client, a temporary DH public key (g y ) from the server, and a second Upon receiving the one-time authentication information from the server (auth2_S) <Tp, t, g x , g y , auth2_S>, the current time (t), the temporary DH public key from the client (g x ), and the temporary DH public key from the server (g y ) and the pair of tokens <Tp, Ts>, the one-time authentication information (auth2_C) from the second client is calculated as shown in Equation 9 (S375).

Figure pat00009
Figure pat00009

여기서 gxy는 Diffie-Hellman 공유키 값으로 클라이언트와 TLS 서버만이 계산할 수 있는 값이다. Here, g xy is a Diffie-Hellman shared key value that can only be calculated by the client and the TLS server.

이후, 클라이언트(100-1)는 TLS 서버(200)로부터 수신된 제2 서버발 일회성 인증정보(auth2_S)와 제2 클라이언트발 일회성 인증정보(auth2_C)를 비교하여 제2 서버발 일회성 인증정보(auth2_S)의 유효성을 검증하고(S380), 일치하면 모든 인증이 성공적으로 완료된다.Thereafter, the client 100-1 compares the one-time authentication information (auth2_S) from the second server received from the TLS server 200 with the one-time authentication information (auth2_C) from the second client, and the one-time authentication information (auth2_S) from the second server. ) is verified (S380), and if they match, all authentication is successfully completed.

이후, 클라이언트(100-1) 및 TLS 서버(200)는 각각 공개토큰(Tp), 현재 시각(t), 비밀토큰(Ts), 클라이언트발 임시 DH 공개키(gx), 서버발 임시 DH 공개키(gy), 및 상호간에 약속된 문자열("key")을 이용하여 수학식 10의 프리 쉐어드 키(PSK: PSK_C, PSK_S)를 계산한다(S385-C, S385-S). Thereafter, the client 100-1 and the TLS server 200 each provide a public token (Tp), a current time (t), a secret token (Ts), a temporary DH public key from the client (g x ), and a temporary DH from the server. The pre-shared keys (PSK: PSK_C, PSK_S) of Equation 10 are calculated using the key (g y ) and the mutually agreed string ("key") (S385-C, S385-S).

Figure pat00010
Figure pat00010

클라이언트(100-1)와 TLS 서버(200)가 동일한 일회성 PSK를 공유하면, 요청 메시지 내 암호화된 응용 레벨 데이터를 전송코자 한다면 일회성 PSK를 사용하여 암호화 통신을 달성할 수 있다.If the client 100-1 and the TLS server 200 share the same one-time PSK, if they want to transmit encrypted application level data in a request message, they can achieve encrypted communication using the one-time PSK.

즉, 클라이언트(100-1)가 TLS 서버(200)에 클라이언트발 일회성 PSK(PSK_C)를 사용하여 응용 레벨 데이터를 전송하면, TLS 서버(200)는 서버발 일회성 PSK(PSK_S)를 계산하여 응용 레벨 데이터를 복호화한다.That is, when the client 100-1 transmits application level data to the TLS server 200 using the one-time PSK (PSK_C) from the client, the TLS server 200 calculates the one-time PSK (PSK_S) from the server and applies it to the application level. decrypt the data

클라이언트와 서버가 동일 PSK를 공유하고, TLS1.3의 근본적인 PSK 모드 기능을 사용하여 레코드 프로토콜을 위한 안전한 세션 키를 계산한다. 이 키 설정 프로토콜은 1 라운드의 추가 통신을 이용하여 전방향 보안을 제공한다. The client and server share the same PSK and use TLS1.3's native PSK mode features to compute secure session keys for record protocols. This key establishment protocol uses one round of additional communication to provide forward secrecy.

iii) Model 3(익명의 쌍토큰을 이용한 프라이버시 제공형 세션 복구)iii) Model 3 (privacy-providing session recovery using anonymous twin tokens)

도 2 및 도 3에서 공개토큰(Tp)은 평문 통신 채널 내에서 서버에 클라이언트 식별자로서 전송되므로, 네트워크 해커는 통신 트래픽으로부터 클라이언트를 식별할 수 있다. 만일 클라이언트를 식별하는 것보다 클라이언트의 프라이버시를 제공하는 것이 최대의 관심사라면, 서버는 공개토큰 내 클라이언트를 공개적으로 특정할 수 있는 정보를 넣지 않고 익명의 쌍토큰(PT)을 발행할 수 있다. 서버가 익명의 공개토큰(Tp)으로부터 클라이언트를 식별하는 것이 필요하다면, 서버는 클라이언트와 발행된 익명의 공개토큰(Tp) 사이의 관계 기록을 유지하면 된다. 그것은 서버의 정책에 따른다.In Figures 2 and 3, the public token (Tp) is transmitted as a client identifier to the server within a clear text communication channel, so that network hackers can identify the client from the communication traffic. If it is in the best interest to provide the client's privacy rather than to identify the client, the server may issue an anonymous pair token (PT) without putting any information that would publicly identify the client in the public token. If the server needs to identify the client from the anonymous public token Tp, the server just needs to keep a record of the relationship between the client and the issued anonymous public token Tp. It depends on the server's policy.

고정된 익명의 쌍토큰(PT)이 오랜 시간 동안 사용되면, 네트워크 해커는 동일 클라이언트의 행위를 추적하려고 시도할 수 있다. 비추적성을 제공하기 위해, 서버는 매 세션 연결시 마다 익명의 쌍토큰(PT)을 갱신하도록 할 수 있다. 즉, 서버는 동일 클라이언트에게 새로운 익명의 쌍토큰(PT)을 발행하고, 매 익명의 쌍토큰은 1회만 사용되도록 한다. 기 설정된 안전한 보안채널을 통해 기 인증된 클라이언트에게 갱신된 쌍토큰(PT)을 발행하는 것은 성능상 무겁지 않고, 자동으로 수행하도록 하는 것이 가능하다. 서버가 갱신된 쌍토큰(PT)의 기록을 유지한다면 클라이언트의 신원을 추적할 수 있지만, 네트워크 해커는 갱신된 쌍토큰(PT)을 추적할 수 없다. 서버에 의해 발행된 익명의 쌍토큰(PT)은 상호 관계를 갖지 않는다. 그러므로 익명의 일회성 쌍토큰(PT)이 사용되고, 이전 쌍토큰(PT)이 버려진다면, 전방향 보안은 매우 쉽게 달성될 수 있다.If the fixed anonymous pair token (PT) is used for a long time, a network hacker may try to track the behavior of the same client. To provide traceability, the server can force the anonymous pair token (PT) to be updated on every session connection. That is, the server issues a new anonymous pair token (PT) to the same client, and each anonymous pair token is used only once. Issuing an updated pair token (PT) to a pre-authenticated client through a pre-established safe secure channel is not heavy on performance and can be performed automatically. If the server keeps a record of the updated pair (PT), it can track the client's identity, but a network hacker cannot track the updated pair (PT). The anonymous pair token (PT) issued by the server has no correlation. Therefore, if an anonymous one-time pair (PT) is used and the previous pair (PT) is discarded, forward secrecy can be achieved very easily.

표 1은 세션 티켓과 익명의 쌍토큰(Model 3)의 특성을 대비한 것이고, 표 2는 Model 1 내지 Model 3의 특성을 비교한 것이다.Table 1 compares the characteristics of a session ticket and an anonymous pair token (Model 3), and Table 2 compares the characteristics of Models 1 to 3.

FeaturesFeatures Session TicketSession Ticket PT-based(익명) PT-based (anonymous) CredentialCredential Session KeySession Key Secret TokenSecret Token Session KeySession Key fixedfixed one-timeone-time Multiple UsageMultiple Usage YesYes YesYes AuthenticationAuthentication No authNo auth one-time authone-time auth Anti-replayAnti-replay NoNo YesYes Anti-DOSAnti-DOS NoNo YesYes Anti-tracingAnti-tracing NoNo YesYes Forward securityForward security NoNo YesYes 0-RTT0-RTT YesYes YesYes

FeaturesFeatures Model 1Model 1 Model 2Model 2 Model 3Model 3 Forward SecurityForward Security NONO YesYes YesYes Anti-tracingAnti-tracing NoNo NoNo YesYes PerformancePerformance HighHigh LowLow LowLow

본 명세서에서 설명되는 실시 예와 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 예시적으로 설명하는 것에 불과하다. 따라서, 본 명세서에 개시된 실시 예는 본 발명의 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이므로, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아님은 자명하다. 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시 예는 모두 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The embodiments described in this specification and the accompanying drawings merely illustrate some of the technical ideas included in the present invention by way of example. Therefore, since the embodiments disclosed in this specification are not intended to limit the technical idea of the present invention but to explain it, it is obvious that the scope of the technical idea of the present invention is not limited by these embodiments. All modified examples and specific examples that can be easily inferred by those skilled in the art within the scope of the technical idea included in the specification and drawings of the present invention should be construed as being included in the scope of the present invention.

100-1, 100-2, ..,100-N: 클라이언트
200: TLS 서버
100-1, 100-2, ..,100-N: Client
200: TLS server

Claims (6)

클라이언트와 서버 간에 TLS 세션을 복구하는 방법에 있어서,
상기 서버가 서버 비밀키를 이용하여 공개토큰과 비밀토큰 - 상기 비밀토큰은 유효기간 정보 없이 상기 공개토큰을 반복적으로 서명함에 의해 생성됨 - 의 쌍토큰을 생성하고, 상기 쌍토큰을 상기 클라이언트에 암호화 채널을 통해 전송하는 단계;
상기 클라이언트가 쌍토큰을 수신하여 복호화하고, 내부의 보조기억부에 저장하는 단계;
상기 클라이언트는 현재 시각과 상기 쌍토큰을 이용하여 클라이언트발 일회성 인증정보를 계산하고, 상기 공개토큰, 현재 시각 및 일회성 인증정보를 상기 서버에 전송하는 단계;
상기 서버는 상기 공개토큰, 현재 시각, 클라이언트발 일회성 인증정보를 수신하면, 공개토큰을 이용하여 비밀토큰을 계산하고, 상기 현재 시각, 공개토큰, 및 비밀토큰을 이용하여 서버발 일회성 인증정보를 계산하는 단계;
상기 서버는 상기 클라이언트발 일회성 인증정보와 상기 서버발 일회성 인증정보를 비교하는 단계;
상기 클라이언트 또는 상기 서버는 상기 공개토큰, 현재 시각, 비밀토큰, 및 상호간에 약속된 문자열을 이용하여 일회성 PSK를 계산하는 단계;
상기 클라이언트 또는 서버는 상기 일회성 PSK를 사용하여 암호화된 응용 레벨 데이터를 전송하는 단계; 및
상기 클라이언트 또는 서버는 상기 일회성 PSK를 이용하여 상기 응용 레벨 데이터를 복호화하는 단계
를 포함하는 쌍토큰을 이용한 TLS 세션 복구 방법.
A method for recovering a TLS session between a client and a server,
The server generates a pair token of a public token and a secret token using the server secret key, wherein the secret token is generated by repeatedly signing the public token without valid period information, and transmits the pair token to the client through an encryption channel. Transmitting through;
receiving, decrypting, and storing the paired tokens in an internal secondary storage unit by the client;
calculating, by the client, one-time authentication information from the client using the current time and the twin token, and transmitting the public token, the current time, and the one-time authentication information to the server;
When the server receives the public token, the current time, and the one-time authentication information from the client, the server calculates a secret token using the public token, and calculates the one-time authentication information from the server using the current time, the public token, and the secret token. doing;
comparing, by the server, one-time authentication information from the client with one-time authentication information from the server;
calculating, by the client or the server, a one-time PSK using the public token, the current time, the secret token, and a mutually promised string;
transmitting, by the client or server, encrypted application level data using the one-time PSK; and
Decrypting, by the client or server, the application level data using the one-time PSK
TLS session recovery method using a pair token comprising a.
청구항 1에 있어서,
상기 클라이언트발 일회성 인증정보(auth_C)와 상기 일회성 PSK는 다음의 수학식에 따라 계산되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
Figure pat00011

여기서, 상기 t는 현재 시각, 상기 Tp는 공개토큰, 상기 Ts는 비밀토큰임
Figure pat00012

여기서, 상기 "key"는 상기 클라이언트와 상기 서버 간에 약속된 문자열임
The method of claim 1,
The one-time authentication information (auth_C) from the client and the one-time PSK are calculated according to the following equation.
Figure pat00011

Here, t is the current time, Tp is a public token, and Ts is a secret token.
Figure pat00012

Here, the "key" is a string agreed upon between the client and the server.
청구항 2에 있어서,
상기 공개토큰은 상기 서버 비밀키와 사용자 인증 정보를 이용하여 생성되고, 상기 비밀토큰은 상기 서버 비밀키와 상기 공개토큰을 이용하여 생성되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
The method of claim 2,
The public token is generated using the server private key and user authentication information, and the secret token is generated using the server private key and the public token.
클라이언트와 서버 간에 TLS 세션을 복구하는 방법에 있어서,
상기 서버가 서버 비밀키를 이용하여 공개토큰과 비밀토큰 - 상기 비밀토큰은 유효기간 정보 없이 상기 공개토큰을 반복적으로 서명함에 의해 생성됨 - 의 쌍토큰을 생성하고, 상기 쌍토큰을 상기 클라이언트에 암호화 채널을 통해 전송하는 단계;
상기 클라이언트가 쌍토큰을 수신하여 복호화하고, 내부의 보조기억부에 저장하는 단계;
상기 클라이언트는 현재 시각과 상기 쌍토큰 그리고 클라이언트발 임시 DH 공개키를 이용하여 제1 클라이언트발 일회성 인증정보를 계산하고, 상기 공개토큰, 현재 시각, 클라이언트발 임시 DH 공개키 및 제1 클라이언트발 일회성 인증정보를 상기 서버에 전송하는 단계;
상기 서버는 상기 공개토큰, 현재 시각, 클라이언트발 임시 DH 공개키 및 클라이언트발 일회성 인증정보를 수신하면, 상기 현재 시각과 공개토큰을 이용하여 비밀토큰을 계산하고, 상기 현재 시각, 공개토큰, 비밀토큰, 및 클라이언트발 임시 DH 공개키를 이용하여 제1 서버발 일회성 인증정보를 계산하는 단계;
상기 서버는 상기 제1 클라이언트발 일회성 인증정보와 상기 제1 서버발 일회성 인증정보의 일치여부를 판단하고, 상기 제1 클라이언트발 일회성 인증정보와 상기 제1 서버발 일회성 인증정보가 일치하면, 상기 서버는 서버발 임시 DH 공개키를 생성하고, 현재시각, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키, 및 쌍토큰을 이용하여 제2 서버발 일회성 인증정보를 계산하고, 상기 공개토큰, 현재 시각, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키, 및 제2 서버발 일회성 인증정보를 상기 클라이언트에 전송하는 단계;
상기 클라이언트는 상기 현재시각, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키, 및 쌍토큰을 이용하여 제2 클라이언트발 일회성 인증정보를 계산하는 단계;
상기 클라이언트는 상기 제2 클라이언트발 일회성 인증정보와 상기 제2 서버발 일회성 인증정보가 일치여부를 판단하고, 상기 제2 클라이언트발 일회성 인증정보와 상기 제2 서버발 일회성 인증정보가 일치하면, 상기 클라이언트 또는 상기 서버는 상기 공개토큰, 현재 시각, 비밀토큰, 클라이언트발 임시 DH 공개키, 서버발 임시 DH 공개키 및 상호간에 약속된 문자열을 이용하여 일회성 PSK를 계산하는 단계;
상기 클라이언트 또는 서버는 상기 일회성 PSK를 사용하여 암호화된 응용 레벨 데이터를 전송하는 단계; 및
상기 서버 또는 클라이언트는 상기 일회성 PSK를 이용하여 상기 응용 레벨 데이터를 복호화하는 단계
를 포함하는 쌍토큰을 이용한 TLS 세션 복구 방법.
A method for recovering a TLS session between a client and a server,
The server generates a pair token of a public token and a secret token using the server secret key, wherein the secret token is generated by repeatedly signing the public token without valid period information, and transmits the pair token to the client through an encryption channel. Transmitting through;
receiving, decrypting, and storing the paired tokens in an internal secondary storage unit by the client;
The client calculates one-time authentication information from the first client using the current time, the twin token, and the temporary DH public key from the client, and the public token, the current time, the temporary DH public key from the client, and the one-time authentication from the first client. transmitting information to the server;
When the server receives the public token, the current time, the temporary DH public key from the client, and the one-time authentication information from the client, the server calculates a secret token using the current time and the public token, and calculates the current time, the public token, and the secret token. , and calculating one-time authentication information from the first server using the temporary DH public key from the client;
The server determines whether the one-time authentication information from the first client and the one-time authentication information from the first server match, and if the one-time authentication information from the first client and the one-time authentication information from the first server match, the server generates a temporary DH public key from the server, calculates one-time authentication information from the second server using the current time, the temporary DH public key from the client, the temporary DH public key from the server, and the pair token, and calculates the public token, the current transmitting a time, a temporary DH public key from a client, a temporary DH public key from a server, and one-time authentication information from a second server to the client;
calculating, by the client, one-time authentication information from a second client using the current time, a temporary DH public key from a client, a temporary DH public key from a server, and a pair of tokens;
The client determines whether the one-time authentication information from the second client and the one-time authentication information from the second server match, and if the one-time authentication information from the second client and the one-time authentication information from the second server match, the client or calculating, by the server, a one-time PSK using the public token, the current time, the secret token, the temporary DH public key from the client, the temporary DH public key from the server, and a mutually agreed string;
transmitting, by the client or server, encrypted application level data using the one-time PSK; and
Decrypting, by the server or the client, the application level data using the one-time PSK
TLS session recovery method using a pair token comprising a.
청구항 4에 있어서,
상기 제1 클라이언트발 일회성 인증정보(auth1_C), 상기 제2 서버발 일회성 인증정보(auth2_S) 그리고 상기 일회성 PSK는 다음의 수학식에 따라 계산되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
Figure pat00013

여기서, 상기 t는 현재 시각, 상기 Tp는 공개토큰, 상기 Ts는 비밀토큰, 상기 gx는 클라이언트발 임시 DH 공개키이고,
Figure pat00014

여기서, 상기 t는 현재 시각, 상기 Tp는 공개토큰, 상기 Ts는 비밀토큰, 상기 gxy는 Diffie-Hellman 공유키 값으로 클라이언트와 서버만이 계산할 수 있는 값이고,
Figure pat00015

여기서, 상기 "key"는 상기 클라이언트와 상기 서버 간에 약속된 문자열임.
The method of claim 4,
The one-time authentication information (auth1_C) from the first client, the one-time authentication information (auth2_S) from the second server, and the one-time PSK are calculated according to the following equation.
Figure pat00013

Here, t is the current time, Tp is a public token, Ts is a secret token, and g x is a temporary DH public key issued by a client;
Figure pat00014

Here, t is the current time, Tp is a public token, Ts is a secret token, and g xy is a Diffie-Hellman shared key value that can only be calculated by a client and a server.
Figure pat00015

Here, the "key" is a string agreed upon between the client and the server.
청구항 5에 있어서,
상기 공개토큰은 상기 서버 비밀키와 사용자 인증 정보를 이용하여 생성되고, 상기 비밀토큰은 상기 서버 비밀키와 상기 공개토큰을 이용하여 생성되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
The method of claim 5,
The public token is generated using the server private key and user authentication information, and the secret token is generated using the server private key and the public token.
KR1020210072185A 2021-06-03 2021-06-03 Tls session recovery method using paired token KR102577882B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210072185A KR102577882B1 (en) 2021-06-03 2021-06-03 Tls session recovery method using paired token

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210072185A KR102577882B1 (en) 2021-06-03 2021-06-03 Tls session recovery method using paired token

Publications (2)

Publication Number Publication Date
KR20220163704A true KR20220163704A (en) 2022-12-12
KR102577882B1 KR102577882B1 (en) 2023-09-12

Family

ID=84391718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210072185A KR102577882B1 (en) 2021-06-03 2021-06-03 Tls session recovery method using paired token

Country Status (1)

Country Link
KR (1) KR102577882B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101924683B1 (en) * 2013-04-26 2018-12-03 인터디지탈 패튼 홀딩스, 인크 Multi-factor authentication to achieve required authentication assurance level
KR20190010016A (en) * 2017-07-20 2019-01-30 중부대학교 산학협력단 User Authentication Server and System
KR102057159B1 (en) 2015-04-15 2019-12-18 사이트릭스 시스템스, 인크. Authentication of client devices based on entropy from the server or other device
KR20200145775A (en) 2019-06-20 2020-12-30 삼성전자주식회사 Method and apparatus for providing communication service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101924683B1 (en) * 2013-04-26 2018-12-03 인터디지탈 패튼 홀딩스, 인크 Multi-factor authentication to achieve required authentication assurance level
KR102057159B1 (en) 2015-04-15 2019-12-18 사이트릭스 시스템스, 인크. Authentication of client devices based on entropy from the server or other device
KR20190010016A (en) * 2017-07-20 2019-01-30 중부대학교 산학협력단 User Authentication Server and System
KR20200145775A (en) 2019-06-20 2020-12-30 삼성전자주식회사 Method and apparatus for providing communication service

Also Published As

Publication number Publication date
KR102577882B1 (en) 2023-09-12

Similar Documents

Publication Publication Date Title
KR100953095B1 (en) Super peer based peer-to-peer network system and peer authentication method therefor
US10638321B2 (en) Wireless network connection method and apparatus, and storage medium
CN103391197B (en) A kind of web identity authentication based on handset token and NFC technique
EP2984782B1 (en) Method and system for accessing device by a user
JP2017521934A (en) Method of mutual verification between client and server
Kaur et al. A Secure Two‐Factor Authentication Framework in Cloud Computing
US9608971B2 (en) Method and apparatus for using a bootstrapping protocol to secure communication between a terminal and cooperating servers
KR100842267B1 (en) Server, Client and Method for integrated user authentication in a system of multi-authentication means
Lounis et al. Bad-token: denial of service attacks on WPA3
US11811739B2 (en) Web encryption for web messages and application programming interfaces
CN115473655B (en) Terminal authentication method, device and storage medium for access network
KR100957044B1 (en) Method and system for providing mutual authentication using kerberos
US20240064143A1 (en) Methods, mediums, and systems for verifying devices in an encrypted messaging system
CN110719169A (en) Method and device for transmitting router safety information
CN213938340U (en) 5G application access authentication network architecture
US11658955B1 (en) Methods, mediums, and systems for verifying devices in an encrypted messaging system
KR102577882B1 (en) Tls session recovery method using paired token
CN111682936B (en) Kerberos authentication method based on physical unclonable function
KR20080056055A (en) Communication inter-provider roaming authentication method and key establishment method, and recording medium storing program including the same
CN107360132B (en) Method and system for preventing session replay
KR102345093B1 (en) Security session establishment system and security session establishment method for wireless internet
Ordean et al. Towards securing client-server connections against man-in-the-middle attacks
CN114218555B (en) Method and device for enhancing password security strength of password management APP (application) password and storage medium
CN110225011B (en) Authentication method and device for user node and computer readable storage medium
CN115967583B (en) Key management system and method based on alliance chain

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