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

Tls session recovery method using paired token Download PDF

Info

Publication number
KR102577882B1
KR102577882B1 KR1020210072185A KR20210072185A KR102577882B1 KR 102577882 B1 KR102577882 B1 KR 102577882B1 KR 1020210072185 A KR1020210072185 A KR 1020210072185A KR 20210072185 A KR20210072185 A KR 20210072185A KR 102577882 B1 KR102577882 B1 KR 102577882B1
Authority
KR
South Korea
Prior art keywords
token
client
server
public
authentication information
Prior art date
Application number
KR1020210072185A
Other languages
Korean (ko)
Other versions
KR20220163704A (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

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

Abstract

본 발명의 쌍토큰을 이용한 TLS 세션 복구 방법은 클라이언트와 서버 간에 TLS 세션을 복구하는 방법에 있어서, 상기 서버가 서버 비밀키를 이용하여 공개토큰과 비밀토큰 - 상기 비밀토큰은 유효기간 정보 없이 상기 공개토큰을 반복적으로 서명함에 의해 생성됨 - 의 쌍토큰을 생성하고, 상기 쌍토큰을 상기 클라이언트에 전송하는 단계; 상기 클라이언트가 쌍토큰을 수신하여 복호화하고, 내부의 보조기억부에 저장하는 단계; 상기 클라이언트는 현재 시각과 상기 쌍토큰을 이용하여 해시 기반 메시지 암호화 코드인 클라이언트발 일회성 인증정보를 계산하고, 상기 공개토큰, 현재 시각 및 클라이언트발 일회성 인증정보를 상기 서버에 전송하는 단계; 상기 서버는 상기 공개토큰, 현재 시각, 클라이언트발 일회성 인증정보를 수신하면, 상기 현재 시각과 공개토큰을 이용하여 비밀토큰을 계산하고, 상기 현재 시각, 공개토큰, 및 비밀토큰을 이용하여 해시 기반 메시지 암호화 코드인 서버발 일회성 인증정보를 계산하는 단계; 상기 서버는 상기 클라이언트발 일회성 인증정보와 상기 서버발 일회성 인증정보를 비교하는 단계; 및 상기 클라이언트 또는 상기 서버는 상기 공개토큰, 현재 시각, 비밀토큰, 및 상호간에 약속된 문자열을 이용하여 일회성 PSK를 계산하는 단계를 포함한다.The TLS session recovery method using a paired token of the present invention is a method of recovering a TLS session between a client and a server, wherein the server uses a server secret key to create a public token and a secret token - the secret token is disclosed to the public without expiration date information. generating a pair token of - generated by repeatedly signing tokens, and transmitting the pair token to the client; The client receiving the pair token, decrypting it, and storing it in an internal auxiliary memory; The client calculates one-time authentication information from the client, which is a hash-based message encryption code, using the current time and the pair token, and transmitting the public token, the current time, and one-time authentication information from the client to the server; When the server receives the public token, current time, and one-time authentication information from the client, it calculates a secret token using the current time and the public token, and sends a hash-based message using the current time, public token, and secret token. Calculating one-time authentication information from the server, which is an encryption code; Comparing, by the server, one-time authentication information from the client and one-time authentication information from the server; and the client or the server calculating a one-time PSK using the public token, the current time, a secret token, and a mutually agreed upon string.

Description

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

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

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

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

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

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

세션 복구는 이전에 수행했던 풀 핸드쉐이크의 결과로 공유하고 있는 세션 비밀키를 재사용하여 보안 세션을 빠르게 복구하는 것을 말한다. Session recovery refers to quickly recovering a secure session by reusing the shared session secret key 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, generates a Session ID and issues it 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 can read the session secret key from the DB and reuse it. This method requires the server to manage a large session secret key DB and read it from the DB every time a connection request is made, so the communication burden is high and performance problems occur when the number of users increases.

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

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

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

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

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

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

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

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

세션 티켓의 재사용 여부를 관리할 필요가 없어서 서버의 관리가 간단해진다. 아울러 쌍토큰을 효율적으로 갱신할 수 있다. 현재 설정된 암호화 채널 내부에서 서버는 새로운 쌍토큰을 발급하여 갱신하게 할 수 있다. 이 방법을 사용하면 클라이언트는 매번 새로운 쌍토큰을 사용하게 되므로 공격자의 추적에 의한 프라이버시 문제를 방지할 수 있다. Server management is simplified as there is no need to manage whether session tickets can be reused. In addition, twin tokens can be updated efficiently. Inside the currently established encryption channel, the server can issue a new pair token and update it. Using this method, the client uses a new pair token each time, preventing privacy issues caused by attacker 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;
Figure 2 is a PSK setup procedure in a TLS session using a pair token according to an embodiment of the present invention, and
Figure 3 is a PSK setup procedure in a TLS session using a pair token according to another embodiment of the present invention.

본 발명의 상세한 설명에 앞서, 본 발명은 다양한 변경을 도모할 수 있고, 여러 가지 실시 예를 가질 수 있는바, 아래에서 설명되고 도면에 도시된 예시들은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Prior to a detailed description of the present invention, it should be noted that the present invention is capable of various modifications 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, and substitutes included in the spirit and technical scope of the present invention.

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

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도는 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification are merely 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 “comprise” or “have” are intended to indicate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

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

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, when describing with reference to the accompanying drawings, identical components will be assigned the same reference numerals regardless of the 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 gist of the present invention, the detailed description will be omitted.

도 1은 본 발명의 일실시예에 따른 클라이언트와 서버간 TLS 세션 설정 시스템 개략도이다.Figure 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) 간의 인증에 대하여 예시적으로 설명하기로 한다.The TLS session establishment system 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, multiple clients (100-1, 100-2, ..., 100-N) are individually connected to the TLS server 200 and are individually authenticated. Therefore, hereinafter, authentication between the individual client 100-1 and the TLS server 200 will be described by way of example.

여기서 각각의 클라이언트는 통상의 연산처리부, 주기억부, 보조기억부, 및 인터페이스를 포함하고, TLS 서버도 통상의 연산처리부, 주기억부, 보조기억부, 및 인터페이스를 포함한다. Here, each client includes a normal operation processing unit, a main memory, an auxiliary memory, and an interface, and the TLS server also includes a normal operation processing unit, a main memory, an auxiliary memory, 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.) in addition to the authentication service to the client 100-1.

한편, 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 that connects for the first time and generating a session secret key using a method such as Diffie-Hellman key exchange.

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), which has a pair token, transmits three pieces 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)이 유효한지 검증한다. The TLS server 200, which has received this, 1) checks whether the token it issued 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 the error range. 4) Whether the received one-time authentication value (auth) is valid. Verify.

이후 TLS 서버(200)는 서버 생성 일회성 세션 비밀키(PSK_S)를 생성한다. 이것은 클라이언트(100-1)가 생성하는 클라이언트 생성 일회성 세션 비밀키(PSK_C)와 동일한 바, 상호 암호화 통신을 수행할 수 있다.Afterwards, the TLS server 200 generates a server-generated one-time session secret key (PSK_S). This is the same as the client-generated one-time session secret key (PSK_C) generated by the client 100-1, allowing mutual encrypted communication to 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, which is basically the same as the full handshake in TLS 1.3 except that the pair token (PT) is transmitted within the NewSessionTicket message. do. Full handshake includes mandatory server authentication using a server certificate and optional client authentication using a client certificate. The key exchange within the first two movements is used to calculate a shared secret key between the client (100-1) and the TLS server (200), and this shared secret key is used to securely transmit the pair token (PT) to the client (100-1). It is used. The TLS server 200 owns the server secret key (K) used for token issuance and generates a public token (Tp) and a secret token (Ts) as follows.

Figure 112021064381616-pat00001
Figure 112021064381616-pat00001

Figure 112021064381616-pat00002
Figure 112021064381616-pat00002

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

한편, 토큰 계산시 사용하는 서버 비밀키(K)는 서버만이 소유하고 토큰발행을 위해서만 사용하는 비밀키로서, TLS에서 full handshake시 클라이언트와 서버가 공유하게 되는 공유비밀키와 다르다.Meanwhile, the server secret key (K) used when calculating tokens is a secret key owned only by the server and used only for token issuance, and is different from the shared secret key shared between 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 a shared secret key through a full handshake, and <Tp, Ts> is encrypted with the shared secret key and transmitted. Afterwards, the client 100-1 decrypts it, recovers <Tp, Ts>, and stores it in the internal storage (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 expiration date, 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, which knows the server secret key (K). do. The secret token (Ts) is generated by signing the public token (Tp) without validity period information, and can be generated only by the TLS server 200.

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

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

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

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

본 발명의 일실시예에 따르면, 클라이언트(100-1)와 TLS 서버(200)는 TLS 세션에서의 PSK 설정 절차를 다음과 같이 수행한다.According to one embodiment of the present invention, the client 100-1 and the TLS server 200 perform the PSK setting 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 a Client Hello message including parameters such as Version, Random Number, Session ID, CipherSuites, and Compression Method to the TLS server 200 (S210). Here, Session ID is set to empty when creating a new session, and CipherSuites and Compression Method indicate a list of encryption parameters supported by the client and an ID for the data compression method.

상기 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 a Server Hello message containing parameters such as Version, Random Number, Session ID, CipherSuites, and Compression Method selected by the TLS server to the client 100-1 (S215) ).

그리고, TLS 서버(200)는 Server Hello를 보낸 후에 클라이언트(100-1)로 Encrypted Extensions, CertificateRequest*, Certificate*, CertificateVerify*, 및 Finished 등과 같은 메시지를 순차적으로 전송할 수 있다(S220). 이때, "*"는 선택적(optional)인 것을 나타낸다.And, after sending 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 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 authenticated and have a TLS shared session key. Afterwards, the TLS server issues a pair token so that the client can use it to recover the session.

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 expiration date, etc., in the public token (Tp) according to its policy. The public token (Tp) is signed by the TLS server 200 with the server secret key (K), and its validity can be verified by the TLS server 200 only knowing the server secret key (K). The secret token (Ts) is generated by repeatedly signing the public token (Tp) without validity period 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 pair token <Tp, Ts> with a TLS session key and transmits it to the client 100-1 (S235). Afterwards, the client 100-1 decrypts it, recovers <Tp, Ts>, and stores it in an internal auxiliary memory (not shown) (S240).

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

Figure 112021064381616-pat00003
Figure 112021064381616-pat00003

이후, 클라이언트(100-1)는 공개토큰, 현재 시각, 클라이언트발 일회성 인증정보 <Tp, t, auth_C>를 TLS 서버(200)에 전송한다(S250).Afterwards, the client 100-1 transmits the public token, current time, and one-time authentication information <Tp, t, auth_C> from the client 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, current time, and one-time authentication information <Tp, t, auth_C> from the client, the TLS server 200 secures its own current time and determines the time difference from the client's request time t. Check whether it is within the specified tolerance. Additionally, the TLS server 200 can use the server secret key (K) to verify the validity of the public token (Tp) and identify the identity of the client 100-1. And the TLS server 200 calculates the secret token (Ts) of Equation 2 using the server secret key (K) and public token (Tp), and performs the math using the public token (Tp) and secret token (Ts). Calculate one-time authentication information (auth_S) from the server in Equation 4 (S255).

Figure 112021064381616-pat00004
Figure 112021064381616-pat00004

여기서 서버발 일회성 인증정보(auth_S)는 클라이언트의 시각 기반 일회성 인증 정보(Ts를 아는 증거)로, 비밀토큰(Ts)을 아는 클라이언트(100-1)에 의해서만 생성될 수 있고, 그 유효성은 서버 비밀키(K)를 아는 TLS 서버에 의해서만 검증될 수 있다. Here, the one-time authentication information (auth_S) from the server is the client's vision-based one-time authentication information (evidence of knowing Ts), and can only be generated by the client (100-1) who knows the secret token (Ts), and its validity is determined by the 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 matches the one-time authentication information from the server (auth_S) calculated by the TLS server (S260), and provides the one-time authentication information from the client. If (auth_C) matches the one-time authentication information from the server (auth_S) you calculated, all authentication is completed successfully.

이후, 클라이언트(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)는 동일한 값이다.Afterwards, the client 100-1 and the TLS server 200 each send a public token (Tp), the current time (t), a secret token (Ts), and a mutually agreed upon string (herein denoted as “key”). Calculate the one-time PSK (PSK_C, PSK_S) of Equation 5 (S265-C, S265-S). Here, the one-time PSK from the client (PSK_C) calculated by the client (100-1) and the one-time PSK from the server (PSK_S) calculated by the TLS server (200) are the same value.

Figure 112021064381616-pat00005
Figure 112021064381616-pat00005

공격자들은 도청된 프로토콜 메시지를 재전송하는 공격을 시도할 수 있을 것인데 다른 시각에서의 프로토콜의 응답은 무효한 것으로 결정된다. 또한, 재전송 공격이 유효하게 판정되더라도 공격자는 비밀토큰(Ts)을 가지고 있지 않기 때문에 일회성 PSK를 계산할 수 없고 암호화된 통신을 도청하거나 할 수 없게 된다. Attackers could attempt an attack that retransmits an intercepted protocol message, but the protocol's response from a different perspective is determined to be invalid. Additionally, even if the retransmission attack is determined to be valid, the attacker cannot calculate the one-time PSK and cannot eavesdrop on encrypted communications 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) with the client 100-1 in a stateless manner, and the client 100-1 and the TLS server 200 use a one-time use in any pre-agreed manner. 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, encrypted communication can be achieved using the one-time PSK if encrypted application level data in the request message is to be transmitted. Meanwhile, the technology for encrypting application-level data using one-time PSK is self-evident to technicians working in the field, so detailed explanation 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 to the application level data. Decrypt the data.

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

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

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

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

클라이언트(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 generate the public token (Tp) of Equation 1 and the secret token (Ts) of Equation 2. ) is created (S330).

TLS 서버(200)는 생성된 쌍토큰 <Tp, Ts>를 TLS 세션키로 암호화하여 클라이언트(100-1)에게 전송한다(S335). 이후 클라이언트(100-1)는 그것을 복호화하여 쌍토큰 <Tp, Ts>를 복구하고, 내부 저장부(미도시)에 저장한다(S340). The TLS server 200 encrypts the generated pair token <Tp, Ts> with a TLS session key and transmits it to the client 100-1 (S335). Afterwards, the client 100-1 decrypts it, recovers the pair token <Tp, Ts>, and stores it in the internal storage (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 twin token <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 from the client (g x ), and generates a temporary DH public key from the client (g x ) and a pair token <Tp, Using Ts>, one-time authentication information (auth1_C) from the first client is calculated as shown in Equation 6 (S345).

Figure 112021064381616-pat00006
Figure 112021064381616-pat00006

이후, 클라이언트(100-1)는 TLS 서버(200)에 공개토큰(Tp), 현재 시각(t), 클라이언트발 임시 DH 공개키(gx), 및 제1 클라이언트발 일회성 인증정보(auth1_C) <Tp, t, gx, auth1_C>를 전송한다(S350).Afterwards, the client 100-1 sends the public token (Tp), current time (t), temporary DH public key from the client (g x ), and one-time authentication information (auth1_C) from the first client to the TLS server 200 < Transmit Tp, t, g x , auth1_C> (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, the current time (t), a temporary DH public key from the client (g x ), and one-time authentication information (auth1_C) from the first client <Tp, t. , g Thereafter, the TLS server 200 can verify the validity of the public token (Tp) using the server secret key (K) and identify the identity of the client 100-1. And the TLS server 200 calculates the secret token (Ts) of Equation 2 using the server secret key (K) and public token (Tp), and uses the public token (Tp) and the temporary DH public key from the client (g x ), and the secret token (Ts) is used to calculate one-time authentication information (auth1_S) from the first server as shown in Equation 7 (S355).

Figure 112021064381616-pat00007
Figure 112021064381616-pat00007

여기서 제1 서버발 일회성 인증정보(auth_S)는 클라이언트의 시각 기반 일회성 인증 정보(Ts를 아는 증거)로, 비밀토큰(Ts)을 아는 클라이언트(100-1)에 의해서만 생성될 수 있고, 그 유효성은 서버 비밀키(K)를 아는 TLS 서버에 의해서만 검증될 수 있다. Here, the one-time authentication information (auth_S) from the first server is the client's time-based one-time authentication information (evidence of knowing Ts), and can be generated only by the client (100-1) that knows the secret token (Ts), and its validity 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 matches the one-time authentication information (auth1_S) from the first server, a server random number (y) and a temporary DH public key (g y ) from the server are generated, and the current time (t) is generated. , one-time authentication information (auth2_S) from the second server using the temporary DH public key from the client ( g Calculate (S365).

Figure 112021064381616-pat00008
Figure 112021064381616-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 generates a public token (Tp), the current time (t), a temporary DH public key from the client (g x ), a temporary DH public key from the server (g y ), and one-time authentication information from the second server (auth2_S ) <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 from the TLS server 200 a public token (Tp), the current time (t), a temporary DH public key from the client (g x ), a temporary DH public key from the server (g y ), and a second When receiving one-time authentication information (auth2_S) <Tp, t, g x , g y , auth2_S> from the server, the current time (t), temporary DH public key from the client (g y ), and the pair token <Tp, Ts> is used to calculate one-time authentication information (auth2_C) from the second client as shown in Equation 9 (S375).

Figure 112021064381616-pat00009
Figure 112021064381616-pat00009

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

이후, 클라이언트(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 from the second server (auth2_S) received from the TLS server 200 with the one-time authentication information from the second client (auth2_C) and provides the one-time authentication information from the second server (auth2_S). ) 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). Afterwards, the client (100-1) and the TLS server (200) each disclose a public token (Tp), the 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 free shared key (PSK: PSK_C, PSK_S) of Equation 10 is calculated using the key (g y ) and the mutually promised string (“key”) (S385-C, S385-S).

Figure 112021064381616-pat00010
Figure 112021064381616-pat00010

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

즉, 클라이언트(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 to the application level data. Decrypt the data.

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

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

도 2 및 도 3에서 공개토큰(Tp)은 평문 통신 채널 내에서 서버에 클라이언트 식별자로서 전송되므로, 네트워크 해커는 통신 트래픽으로부터 클라이언트를 식별할 수 있다. 만일 클라이언트를 식별하는 것보다 클라이언트의 프라이버시를 제공하는 것이 최대의 관심사라면, 서버는 공개토큰 내 클라이언트를 공개적으로 특정할 수 있는 정보를 넣지 않고 익명의 쌍토큰(PT)을 발행할 수 있다. 서버가 익명의 공개토큰(Tp)으로부터 클라이언트를 식별하는 것이 필요하다면, 서버는 클라이언트와 발행된 익명의 공개토큰(Tp) 사이의 관계 기록을 유지하면 된다. 그것은 서버의 정책에 따른다.2 and 3, the public token (Tp) is transmitted as a client identifier to the server within a plaintext communication channel, so a network hacker can identify the client from communication traffic. If providing the client's privacy is of greater interest than identifying the client, the server can issue an anonymous pair token (PT) without including any information that could publicly identify the client in the public token. If the server needs to identify a client from an anonymous public token (Tp), the server simply maintains 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 a fixed anonymous pair token (PT) is used over a long period of time, network hackers may attempt to track the behavior of the same client. To provide non-traceability, the server can update the anonymous pair token (PT) upon each session connection. In other words, the server issues a new anonymous pair token (PT) to the same client, and ensures that each anonymous pair token is used only once. Issuing updated twin tokens (PTs) to already authenticated clients through a pre-established safe security channel is not heavy on performance and can be done automatically. If the server maintains a record of updated Pair Tokens (PT), the client's identity can be traced, but network hackers cannot track the updated Pt Tokens (PT). Anonymous pair tokens (PT) issued by the server have no mutual relationship. Therefore, if an anonymous one-time Pair Token (PT) is used and the previous Pair Token (PT) is discarded, forward security can be achieved very easily.

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

FeaturesFeatures Session TicketSession Ticket PT-based(익명) PT-based (anonymous) CredentialCredentials 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 authentication 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 illustratively illustrate some of the technical ideas included in the present invention. Accordingly, the embodiments disclosed in this specification are not intended to limit the technical idea of the present invention, but rather to explain it, and therefore, it is obvious that the scope of the technical idea of the present invention is not limited by these embodiments. All modifications and specific embodiments that can be easily inferred by a person 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를 계산하는 단계
를 포함하는 쌍토큰을 이용한 TLS 세션 복구 방법.
In a method for recovering a TLS session between a client and a server,
The server uses the server secret key to generate a pair token of a public token and a secret token - the secret token is generated by repeatedly signing the public token without expiration date information - and sends the pair token to the client through an encryption channel. Transmitting via;
The client receiving the pair token, decrypting it, and storing it in an internal auxiliary memory;
The client calculates one-time authentication information from the client using the current time and the pair token, and transmitting the public token, current time, and one-time authentication information to the server;
When the server receives the public token, current time, and one-time authentication information from the client, it calculates a secret token using the public token, and calculates one-time authentication information from the server using the current time, public token, and secret token. steps;
Comparing, by the server, one-time authentication information from the client and one-time authentication information from the server; and
The client or the server calculates a one-time PSK in a mutually agreed upon manner using the public token, current time, and secret token as input information.
TLS session recovery method using a pair token including.
청구항 1에 있어서,
상기 클라이언트발 일회성 인증정보(auth_C)와 상기 일회성 PSK는 다음의 수학식에 따라 계산되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
Figure 112021064381616-pat00011

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

여기서, 상기 "key"는 상기 클라이언트와 상기 서버 간에 약속된 문자열임
In claim 1,
A TLS session recovery method using a pair token, characterized in that the one-time authentication information (auth_C) from the client and the one-time PSK are calculated according to the following equation.
Figure 112021064381616-pat00011

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

Here, the “key” is a string promised between the client and the server.
청구항 2에 있어서,
상기 공개토큰은 상기 서버 비밀키와 사용자 인증 정보를 이용하여 생성되고, 상기 비밀토큰은 상기 서버 비밀키와 상기 공개토큰을 이용하여 생성되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
In claim 2,
The public token is generated using the server secret key and user authentication information, and the secret token is generated using the server secret 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를 계산하는 단계
를 포함하는 쌍토큰을 이용한 TLS 세션 복구 방법.
In a method for recovering a TLS session between a client and a server,
The server uses the server secret key to generate a pair token of a public token and a secret token - the secret token is generated by repeatedly signing the public token without expiration date information - and sends the pair token to the client through an encryption channel. Transmitting via;
The client receiving the pair token, decrypting it, and storing it in an internal auxiliary memory;
The client calculates one-time authentication information from the first client using the current time, the pair token, and the temporary DH public key from the client, and uses 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, current time, temporary DH public key from the client, and one-time authentication information from the client, it calculates a secret token using the current time and the public token, and calculates the secret token using the current time, public token, and 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 matches the one-time authentication information from the first server, and if the one-time authentication information from the first client matches the one-time authentication information from the first server, the server Generates a temporary DH public key from the server, calculates one-time authentication information from the second server using the current time, temporary DH public key from the client, temporary DH public key from the server, and pair token, and uses the public token, the current transmitting the 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;
The client calculating one-time authentication information from a second client 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
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, the server calculates a one-time PSK in a mutually agreed upon manner using the public token, current time, secret token, temporary DH public key from the client, and temporary DH public key from the server as input information.
TLS session recovery method using a pair token including.
청구항 4에 있어서,
상기 제1 클라이언트발 일회성 인증정보(auth1_C), 상기 제2 서버발 일회성 인증정보(auth2_S) 그리고 상기 일회성 PSK는 다음의 수학식에 따라 계산되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
Figure 112021064381616-pat00013

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

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

여기서, 상기 "key"는 상기 클라이언트와 상기 서버 간에 약속된 문자열임.
In claim 4,
A TLS session recovery method using a pair token, characterized in that 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 112021064381616-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 from the client,
Figure 112021064381616-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 the client and server,
Figure 112021064381616-pat00015

Here, the “key” is a string promised between the client and the server.
청구항 5에 있어서,
상기 공개토큰은 상기 서버 비밀키와 사용자 인증 정보를 이용하여 생성되고, 상기 비밀토큰은 상기 서버 비밀키와 상기 공개토큰을 이용하여 생성되는 것을 특징으로 하는 쌍토큰을 이용한 TLS 세션 복구 방법.
In claim 5,
The public token is generated using the server secret key and user authentication information, and the secret token is generated using the server secret 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 KR20220163704A (en) 2022-12-12
KR102577882B1 true 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 (1)

* 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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9807086B2 (en) 2015-04-15 2017-10-31 Citrix Systems, Inc. Authentication of a client device based on entropy from a server or other device
KR102049527B1 (en) * 2017-07-20 2019-11-27 중부대학교 산학협력단 User Authentication Server and System
KR20200145775A (en) 2019-06-20 2020-12-30 삼성전자주식회사 Method and apparatus for providing communication service

Patent Citations (1)

* 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

Also Published As

Publication number Publication date
KR20220163704A (en) 2022-12-12

Similar Documents

Publication Publication Date Title
US11088853B2 (en) Methods and systems for PKI-based authentication
US10638321B2 (en) Wireless network connection method and apparatus, and storage medium
KR100953095B1 (en) Super peer based peer-to-peer network system and peer authentication method therefor
CN102970299B (en) File safe protection system and method thereof
KR101009330B1 (en) Method, system and authentication centre for authenticating in end-to-end communications based on a mobile network
JP4488719B2 (en) Fast authentication or re-authentication between layers for network communication
CN103391197B (en) A kind of web identity authentication based on handset token and NFC technique
US8468347B2 (en) Secure network communications
CN110519300B (en) Client-side secret key safe storage method based on password bidirectional authentication
EP2767029B1 (en) Secure communication
JP2011139457A (en) System and method for secure transaction of data between wireless communication device and server
US11431508B1 (en) Distributed ledger-based ad-hoc system, apparatus and method
US20240064143A1 (en) Methods, mediums, and systems for verifying devices in an encrypted messaging system
CN110719169A (en) Method and device for transmitting router safety information
KR102577882B1 (en) Tls session recovery method using paired token
US11658955B1 (en) Methods, mediums, and systems for verifying devices in an encrypted messaging system
US20140331303A1 (en) Apparatus and method for authenticating access of a mobile station in a wireless communication system
CN213938340U (en) 5G application access authentication network architecture
KR20080056055A (en) Communication inter-provider roaming authentication method and key establishment method, and recording medium storing program including the same
KR101451163B1 (en) System and method for access authentication for wireless network
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
US11843636B1 (en) Methods, mediums, and systems for verifying devices in an encrypted messaging system
CN115967583B (en) Key management system and method based on alliance chain
Lee Stateless One-time Authenticated Session Resumption in TLS Handshake Using Paired Token

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