KR20210002955A - An OTP security management method by using dynamic shared secret distribution algorithm - Google Patents

An OTP security management method by using dynamic shared secret distribution algorithm Download PDF

Info

Publication number
KR20210002955A
KR20210002955A KR1020190078869A KR20190078869A KR20210002955A KR 20210002955 A KR20210002955 A KR 20210002955A KR 1020190078869 A KR1020190078869 A KR 1020190078869A KR 20190078869 A KR20190078869 A KR 20190078869A KR 20210002955 A KR20210002955 A KR 20210002955A
Authority
KR
South Korea
Prior art keywords
otp
secret key
parameter
unique
authentication server
Prior art date
Application number
KR1020190078869A
Other languages
Korean (ko)
Other versions
KR102274285B1 (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 KR1020190078869A priority Critical patent/KR102274285B1/en
Publication of KR20210002955A publication Critical patent/KR20210002955A/en
Application granted granted Critical
Publication of KR102274285B1 publication Critical patent/KR102274285B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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

Abstract

The present invention relates to an OTP security management method using a dynamic sharing secret distribution scheme. According to the present invention, the OTP security management method using a dynamic sharing secret distribution scheme comprises the steps of: requesting registration of an OTP device; setting a parameter; generating a first unique ID; generating a first secret key; transmitting the parameter to an OTP client; generating a second unique ID; and generating a second secret key. According to the present invention, it is possible to prevent a secret from being exposed.

Description

동적 공유 시크릿 분배 방식의 OTP 보안관리 방법 { An OTP security management method by using dynamic shared secret distribution algorithm }OTP security management method by using dynamic shared secret distribution algorithm}

본 발명은 OTP에서 공유 시크릿 자체를 전송하여 공유하지 않고, 파라미터(Parameter)와 결과값에 대한 해시(Hash) 값만 전송하고, 서버와 클라이언트가 자체적으로 생성한 시크릿(Secret)이 맞는지 검증하여 시크릿을 분배하는, 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 관한 것이다.In the present invention, the OTP does not transmit and share the shared secret, but only transmits the hash value for the parameter and the result value, and verifies that the secret generated by the server and the client is correct to verify the secret. It relates to a distribution, a dynamic shared secret distribution method OTP security management method.

일반적으로, 2 요소 인증(2 Factor Authentication, 2FA) 방식은 첫번째 인증 후에 다른 추가의 요소를 이용하여 인증을 하는 방법을 말하며, 각각의 요소는 지식(Knowledge), 소유(Possession), 속성(Inherence) 등의 요소가 있다. 아이디(ID)와 패스워드(Password)를 사용하는 방식을 지식 기반 인증이라고 하고, OTP(one time password) 등을 이용하는 방법을 소유 기반 인증이라고 한다.In general, the two-factor authentication (2FA) method refers to a method of authentication using additional elements after the first authentication, and each element is knowledge, possession, and inheritance. There are factors such as. The method of using ID and password is called knowledge-based authentication, and the method of using OTP (one time password) is called ownership-based authentication.

도 1에서 보는 바와 같이, OTP를 이용하는 방법은 오래전 OTP 동글(Dongle)을 이용한 방법에서, 요즘에는 스마트폰에서 구현한 OTP를 사용하고 있다. 특히, OTP 이용 방식은 모바일의 보안 장치 등을 이용해서 보안성을 증가시켰다[특허문헌 1,2].As shown in FIG. 1, a method of using OTP is a method using an OTP dongle a long time ago, and nowadays, an OTP implemented in a smartphone is used. In particular, the OTP use method has increased security by using a mobile security device [Patent Documents 1 and 2].

스마트 OTP에서는 시각 정보를 입력 값으로 하는 TOTP(Time-based One Time Password)가 있으며, OTP를 생성하는 경우 공유하는 시크릿(Secret)과 현재의 시각을 조합하여 입력하고 생성하게 된다. 서버와 스마트 OTP 클라이언트는 동일한 시크릿(Secret)를 가져야 하며, 서버는 클라이언트에게 시크릿(Secret)을 전송하여야 한다. In smart OTP, there is a Time-based One Time Password (TOTP) that uses time information as an input value, and when OTP is created, a shared secret and the current time are entered and created in combination. The server and the smart OTP client must have the same secret, and the server must send a secret to the client.

모바일 OTP는 양방향으로 인증서버와 통신을 하는 경우가 있고, 네트워크에 연결이 되어 있지 않은 경우에 키를 등록을 하는 경우가 있다. 양방향으로 접속이 되는 경우에는 시크릿키를 암호화된 보안 네트워크를 통해서 분배한다. 그러나, 네트워크를 통해서 인증서버와 연결이 되어 있지 않은 경우에는 인증 클라이언트와 인증 서버간 공유하는 시크릿(Secret)을 전송을 해서 동일하게 가지고 있어야 한다.Mobile OTP may communicate with an authentication server in both directions, and may register a key when there is no network connection. In the case of a bidirectional connection, the secret key is distributed through an encrypted secure network. However, if there is no connection to the authentication server through the network, a secret shared between the authentication client and the authentication server must be transmitted to have the same.

도 2에서 보는 바와 같이, 종래기술에 따른 방법에 의하면, 시크릿(Secret)을 알파벳과 숫자로 나타내어서 사용자가 16자리의 코드를 입력하거나, QR 코드를 인증서버에서 표시하고 모바일 기기에서는 QR 코드를 읽어서 거기에 포함되어 있는 시크릿(Secret)을 단말에 저장한다.As shown in Fig. 2, according to the method according to the prior art, the secret is represented by alphabets and numbers, so that the user enters a 16-digit code or displays the QR code on the authentication server, and the QR code is displayed on the mobile device. It reads and stores the secret contained therein in the terminal.

이렇게 기존의 방법을 이용하는 경우 시크릿(Secret)은 사용자가 직접 입력하거나, QR 코드를 통해서 전달을 하므로, 시크릿(Secret)이 그대로 노출되는 문제점이 있다.In the case of using the conventional method, since the user directly enters the secret or transmits it through a QR code, there is a problem that the secret is exposed as it is.

이러한 문제점을 해결하고자, 종래의 기술에서 시크릿(Secret)에 대한 보안을 강화하기 위해서, 추가로 이메일, SMS 등을 이용해서 인증코드를 보낸다. 그리고 인증 코드가 맞는 경우에만 등록을 하도록 하여, 등록 과정에서 시크릿(Secret)이 본인의 시크릿(Secret)인 것을 확인을 할 수 있도록 추가의 인증 방법을 취하는 경우가 있다. 하지만, 이 방법은 인증을 등록하는 사용자에 대한 추가 인증이지 시크릿(Secret) 자체에 대한 보안을 유지하는 방법이 될 수는 없다.In order to solve this problem, in order to reinforce the security of the secret in the prior art, an authentication code is additionally sent using e-mail or SMS. In addition, there are cases where registration is performed only when the authentication code is correct, so that an additional authentication method can be used to confirm that the secret is the person's secret during the registration process. However, this method is an additional authentication for the user registering authentication, and cannot be a method of maintaining the security of the secret itself.

따라서, 기존의 방법을 그대로 사용하게 되는 경우, 사용자가 암호화되지 않은 평문(Plain Text)으로 표시된다. 즉, 웹에 표시되어 있는 16자리 시크릿(Secret)을 불편하게 입력을 하거나, QR코드를 사용해서 입력을 할 때도 암호화되지 않은 상래로 입력하게 되어서 그대로 노출된다. 따라서, 사용자에 대해서 등록시 추가인증을 한다고 하더라도, 사용자의 인증을 추가로 하는 것이지, 시크릿(Secret) 자체에 대한 보안을 높이는 방법은 없다.Therefore, when the existing method is used as it is, the user is displayed in plain text without encryption. In other words, even when inputting a 16-digit secret displayed on the web inconveniently or using a QR code, the input is unencrypted and exposed as it is. Therefore, even if additional authentication is performed when registering a user, authentication of the user is additionally performed, and there is no way to increase security for the secret itself.

따라서, 전송시 시크릿(Secret) 자체를 전송하는 방법이 아닌, 공유하는 방식을 통해서 생성하고, 단방향 함수로 만들어진 결과값을 비교함으로써, 쌍방간에 동일한 시크릿(Secret)을 가지고 있는지를 확인할 수 있는 방법이 필요하다.Therefore, there is a way to check whether the two parties have the same secret by comparing the result values created by the one-way function and not through the method of transmitting the secret itself. need.

한국 공개특허공보 제10-2016-0081255호(2019.03.12.공개)Korean Patent Application Publication No. 10-2016-0081255 (published on March 12, 2019) 한국 등록특허공보 제10-1580291호(2015.12.24.공고)Korean Patent Publication No. 10-1580291 (announced on December 24, 2015)

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, OTP에서 공유 시크릿 자체를 전송하여 공유하지 않고, 파라미터(Parameter)와 결과값에 대한 해시(Hash) 값만 전송하고, 서버와 클라이언트가 자체적으로 생성한 시크릿(Secret)이 맞는지 검증하여 시크릿을 분배하는, 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법을 제공하는 것이다.An object of the present invention is to solve the above-described problem, and the OTP does not transmit and share the shared secret itself, but only transmits the hash value for the parameter and result value, and the server and the client It is to provide a dynamic shared secret distribution method of OTP security management method that distributes the secret by verifying that the generated secret is correct.

상기 목적을 달성하기 위해 본 발명은 사용자 단말에 설치되는 OTP 클라이언트, 서비스 서버, 및, 인증 서버가 네트워크를 통해 연결되는, 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 관한 것으로서, (a) 상기 서비스 서버가 접속된 사용자에 대한 OTP 디바이스 등록을 상기 인증 서버에 요청하는 단계; (b) 상기 인증 서버는 파라미터를 설정하는 단계; (c) 상기 인증 서버는 상기 사용자의 사용자 아이디, 상기 서비스 서버의 아이디(이하 서비스 아이디), 및, 상기 파라미터를 이용하여 고유 아이디(이하 제1 고유 아이디)를 생성하는 단계; (d) 상기 인증 서버는 상기 파라미터와 상기 제1 고유 아이디를 이용하여 시크릿 키(이하 제1 시크릿 키)를 생성하는 단계; (e) 상기 인증 서버는 상기 제1 고유 아이디와 상기 제1 시크릿 키를 매핑하여 OTP 디바이스로 등록하는 단계; (f) 상기 인증 서버는 상기 파라미터를 상기 OTP 클라이언트로 전송하는 단계; (g) 상기 OTP 클라이언트는 상기 파라미터를 수신하여, 상기 파라미터를 이용하여 고유 아이디(이하 제2 고유 아이디)를 생성하는 단계; (h) 상기 OTP 클라이언트는 상기 파라미터와 상기 제2 고유 아이디를 이용하여 시크릿 키(이하 제2 시크릿 키)를 생성하는 단계; 및, (i) 상기 OTP 클라이언트는 상기 제2 고유 아이디와 상기 제2 시크릿 키를 매핑하여 OTP 디바이스로 등록하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to an OTP security management method of a dynamic shared secret distribution method in which an OTP client installed in a user terminal, a service server, and an authentication server are connected through a network, and (a) the service Requesting the authentication server to register an OTP device for a user connected to the server; (b) the authentication server setting parameters; (c) the authentication server generating a unique ID (hereinafter, a first unique ID) using the user ID of the user, the ID of the service server (hereinafter referred to as the service ID), and the parameter; (d) the authentication server generating a secret key (hereinafter, a first secret key) using the parameter and the first unique ID; (e) the authentication server registering the first unique ID and the first secret key as an OTP device by mapping the first unique ID and the first secret key; (f) the authentication server transmitting the parameter to the OTP client; (g) the OTP client receiving the parameter and generating a unique ID (hereinafter, a second unique ID) using the parameter; (h) the OTP client generating a secret key (hereinafter, referred to as a second secret key) using the parameter and the second unique ID; And, (i) the OTP client mapping the second unique ID and the second secret key to register as an OTP device.

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 (d)단계에서, 상기 인증 서버는 상기 제1 시크릿 키를 해싱하여 해시값(이하 검증값)을 생성하고, 상기 (f)단계에서 상기 인증 서버는 상기 검증값을 상기 파라미터와 함께 전송하고, 상기 (h)단계에서, 상기 OTP 클라이언트는 상기 제2 시크릿키의 해시값을 구하고, 구한 해시값과 상기 검증값을 대비하여 상기 제2 시크릿키를 검증하는 것을 특징으로 한다.In addition, the present invention in the OTP security management method of the dynamic shared secret distribution method, in the step (d), the authentication server generates a hash value (hereinafter, a verification value) by hashing the first secret key, and the ( In step f), the authentication server transmits the verification value together with the parameter, and in step (h), the OTP client obtains a hash value of the second secret key, and compares the obtained hash value with the verification value. And verifying the second secret key.

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 파라미터는 시간적 요소에 의한 매개변수인 것을 특징으로 한다.In addition, according to the present invention, in the OTP security management method of the dynamic shared secret distribution method, the parameter is a parameter based on a temporal factor.

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 (d)단계에서, 상기 인증 서버는 상기 파라미터를 시드(Seed)로 활용하여 난수를 발생시켜 제1 난수발생 횟수를 생성하고, 상기 제1 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시켜 제1 시크릿 키를 생성하되, 상기 제1 난수발생 횟수 만큼 난수를 발생시켜 제1 시크릿 키를 생성하고, 상기 (h)단계에서, 상기 OTP 클라이언트는 수신한 파라미터를 시드(Seed)로 활용하여 난수를 발생시켜 제2 난수발생 횟수를 생성하고, 상기 제2 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시켜 제2 시크릿 키를 생성하되, 상기 제2 난수발생 횟수 만큼 난수를 발생시켜 제2 시크릿 키를 생성하는 것을 특징으로 한다.In addition, in the present invention, in the OTP security management method of the dynamic shared secret distribution method, in the step (d), the authentication server generates a random number by using the parameter as a seed to generate the first number of random number generation. And, generating a first secret key by generating a random number using the first unique ID as a seed, generating a first secret key by generating a random number as many as the number of times the first random number is generated, and the (h) In step, the OTP client generates a second random number by using the received parameter as a seed to generate a random number, and uses the second unique ID as a seed to generate a second random number. A secret key is generated, and a second secret key is generated by generating a random number as many times as the second random number is generated.

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 (f)단계에서, 상기 인증 서버는 상기 파라미터를 2차원 코드로 변환하고, 상기 2차원 코드는 화면에 표시되어, 상기 사용자 단말의 카메라에 의해 촬영되고, 상기 OTP 클라이언트에 의해 촬영된 2차원 코드 이미지로부터 상기 파라미터가 추출되어 인식되는 것을 특징으로 한다.In addition, the present invention in the OTP security management method of the dynamic shared secret distribution method, in the step (f), the authentication server converts the parameter into a two-dimensional code, the two-dimensional code is displayed on the screen, the It is characterized in that the parameter is extracted and recognized from a two-dimensional code image photographed by a camera of a user terminal and photographed by the OTP client.

상술한 바와 같이, 본 발명에 따른 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 의하면, 시크릿을 생성하기 위하여 파라미터와 해시값만을 전송함으로써, 직접 시크릿이 평문의 텍스트나 QR 코드로 노출되는 것을 방지할 수 있는 효과가 얻어진다.As described above, according to the OTP security management method of the dynamic shared secret distribution method according to the present invention, by transmitting only the parameter and the hash value to generate the secret, direct secret is prevented from being exposed as plain text or QR code. A possible effect is obtained.

즉, 기존의 OTP 방식에서 공유 시크릿을 전송하는 방법은 QR 코드(QRCODE)를 통해서 또는 텍스트(TEXT)를 통해서 평문(PLAIN)으로 전송하여 시크릿(SECRET)이 노출될 가능성이 높고 보안에 취약하였다. 이것을 등록하는 사용자에 대한 인증을 강화한다고 해도, 평문(PLAIN)화된 시크릿(SECRET)을 탈취하면, 복제 클라이언트를 만들 수도 있다. 동일한 OTP 코드를 생성하는 클론이 있다는 것은 2차 인증을 통한 인증 방법도 문제가 될 수 있다.In other words, the method of transmitting the shared secret in the existing OTP method is high possibility of exposing the secret (SECRET) by transmitting it in plain text (PLAIN) through QRCODE or text (TEXT) and was vulnerable to security. Even if the authentication for the user who registers this is strengthened, it is possible to create a duplicate client by stealing the plaintext (PLAIN)ized secret (SECRET). The fact that there are clones that generate the same OTP code can also be a problem with the authentication method through secondary authentication.

따라서, 본원발명은 동적 시드(Dynamic SEED)와 공유하는 알고리즘을 통해서 시크릿(SECRET)을 안전하게 서버와 클라이언트에서 자체 생성을 해서 보관하고, 각각 생성된 시크릿(SECRET)은 원래의 값이 아닌 단방향 해시(HASH) 함수를 통해서 동일한 값을 가진지를 증명하게 된다. 이러한 방식을 통하여, 본원발명은 실제 시크릿(SECRET)이 전송이 되거나, 평문으로 웹 상에 표출되지 않는다. 이를 통해, 2 요소 인증(Two Factor Authentication) 방식과 같은 인증 효과를 발휘할 수 있으며, 인증의 강도가 그만큼 높아지게 된다.Therefore, in the present invention, the secret (SECRET) is safely generated and stored in the server and the client through an algorithm shared with the dynamic seed, and each generated secret is a one-way hash (not the original value). HASH) function is used to prove whether they have the same value. Through this method, the actual secret (SECRET) of the present invention is not transmitted or expressed on the web in plain text. Through this, the same authentication effect as the two factor authentication method can be exhibited, and the strength of authentication is increased that much.

도 1은 종래기술에 따른 모바일용 OTP 이용방식에 대한 예시도.
도 2는 종래기술에 따른 모바일용 OTP의 QR코드 방식에 대한 예시도.
도 3은 본 발명을 실시하기 위한 전체 시스템의 구성도.
도 4는 본 발명의 일실시예에 따른 OTP 디바이스 목록에 대한 예시 표.
도 5는 본 발명의 제1 실시예에 따른 동적 공유 시크릿 분배 방식의 OTP 디바이스 등록 방법을 설명하는 흐름도.
도 6 및 본 발명의 제1 실시예에 따른 동적 공유 시크릿 분배 방식의 OTP 인증 방법을 설명하는 흐름도.
1 is an exemplary diagram for a method of using OTP for mobile according to the prior art.
Figure 2 is an example of the QR code method of the mobile OTP according to the prior art.
3 is a block diagram of an entire system for implementing the present invention.
4 is an exemplary table for a list of OTP devices according to an embodiment of the present invention.
5 is a flowchart illustrating a method of registering an OTP device using a dynamic shared secret distribution method according to the first embodiment of the present invention.
6 and a flowchart illustrating a dynamic shared secret distribution method OTP authentication method according to the first embodiment of the present invention.

이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.Hereinafter, specific details for the implementation of the present invention will be described with reference to the drawings.

또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.In addition, in describing the present invention, the same parts are denoted by the same reference numerals, and repeated explanations thereof are omitted.

먼저, 본 발명의 일실시예에 따른 전체 시스템의 구성을 도 3을 참조하여 설명한다.First, a configuration of an entire system according to an embodiment of the present invention will be described with reference to FIG. 3.

도 3에서 보는 바와 같이, 본 발명의 일실시예에 따른 전체 시스템은 스마트 단말(10)에 설치되어 OTP 일회용 비밀번호를 생성하는 OTP 클라이언트(20), 및, OTP 일회용 비밀번호를 검증하여 사용자 인증을 수행하는 인증 서버(30)로 구성된다. 또한, 사용자에게 서비스를 제공하는 서비스 서버(50)를 더 포함하여 구성된다.As shown in FIG. 3, the entire system according to an embodiment of the present invention performs user authentication by verifying an OTP one-time password and an OTP client 20 installed in the smart terminal 10 to generate an OTP one-time password. It consists of an authentication server (30). In addition, it is configured to further include a service server 50 that provides a service to the user.

먼저, 스마트 단말(10)은 사용자가 이용하는 모바일 단말로서, 스마트폰, 패블릿, 태블릿PC 등 통상의 컴퓨팅 기능을 구비한 스마트 단말이다. 특히, 스마트 단말(10)은 어플리케이션 또는, 모바일용 어플리케이션(또는 앱, 어플) 등이 설치되어 실행될 수 있는 단말이다. 이하에서, 사용자가 어떤 작업을 수행하는 설명은 스마트 단말(10) 또는 스마트 단말(10)에 설치된 프로그램(또는 앱)을 통해 수행하는 작업임을 의미한다.First, the smart terminal 10 is a mobile terminal used by a user, and is a smart terminal having ordinary computing functions such as a smart phone, phablet, and tablet PC. In particular, the smart terminal 10 is a terminal in which an application or a mobile application (or an app, an application) can be installed and executed. Hereinafter, a description of a task performed by a user means a task performed through the smart terminal 10 or a program (or app) installed in the smart terminal 10.

다음으로, OTP 클라이언트(20)는 스마트 단말(10)에 설치되어 수행되는 모바일용 어플리케이션(또는 앱, 어플)으로서, 사용자의 명령에 따라 일회용 비밀번호(OTP, one-time password)를 생성하는 프로그램 시스템이다.Next, the OTP client 20 is a mobile application (or app, application) installed and executed on the smart terminal 10, a program system that generates a one-time password (OTP, one-time password) according to a user's command to be.

OTP 클라이언트(20)는 해시 함수, 시드 상수 등을 사전에 저장한다. 이들은 사전에 OTP 클라이언트(20)에 디폴트로 설정되거나 입력되어 설정되거나 저장된다.The OTP client 20 stores a hash function, a seed constant, and the like in advance. These are previously set or input to the OTP client 20 as defaults, and are set or stored.

그리고 OTP 클라이언트(20)는 파라미터와 검증값을 인증서버(30)로부터 수신하고, 수신된 파라미터를 이용하여 시크릿 키 및 고유 아이디(ID)를 생성하고, 생성된 시크릿 키를 검증값으로 검증한다.In addition, the OTP client 20 receives the parameter and the verification value from the authentication server 30, generates a secret key and a unique ID (ID) using the received parameter, and verifies the generated secret key as a verification value.

여기서, 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(time stamp)이다.Here, the parameter is a parameter by a temporal factor, preferably, a time stamp.

또한, 시크릿 키와 고유 아이디의 생성 방식은 인증 서버(30)에서 생성하는 방식과 동일하다. 구체적인 생성 방식은 이하에서 인증 서버(30)에 대한 설명에서 기술한다.In addition, the method of generating the secret key and the unique ID is the same as that of the authentication server 30. The specific generation method will be described in the description of the authentication server 30 below.

또한, 생성된 시크릿 키를 해시 함수로 해싱하여 해시값을 획득하고, 획득한 해시값과, 수신한 검증값을 대비하여, 그 동일 여부로 시크릿 키의 값을 검증한다. 즉, 동일한 경우에 시크릿 키가 검증된 것으로 판단한다.In addition, the generated secret key is hashed with a hash function to obtain a hash value, and the obtained hash value and the received verification value are compared, and the value of the secret key is verified based on the same. That is, in the same case, it is determined that the secret key has been verified.

또한, OTP 클라이언트(20)는 사용자 요청에 따라 일회용 비밀번호(OTP)를 생성한다. 이때, OTP 클라이언트(20)는 생성된 시크릿 키를 이용하여 일회용 비밀번호(OTP)를 생성한다.In addition, the OTP client 20 generates a one-time password (OTP) according to a user request. At this time, the OTP client 20 generates a one-time password (OTP) using the generated secret key.

생성된 일회용 비밀번호(OTP)는 고유 아이디와 함께 인증 서버(50)로 보내지고, 인증 서버(50)에 의해 일회용 비밀번호에 대한 검증이 수행된다. OTP에 대한 검증이 성공되면, OTP에 의한 사용자 인증이 통과된 것으로 본다.The generated one-time password (OTP) is sent to the authentication server 50 together with the unique ID, and verification of the one-time password is performed by the authentication server 50. If the verification for OTP is successful, it is considered that the user authentication by OTP has passed.

다음으로, 인증서버(30)는 시크릿 키를 등록시키고, 서비스 서버(50)의 요청에 따라 OTP(one time password, 일회용 비밀번호)를 검증한다.Next, the authentication server 30 registers the secret key and verifies the OTP (one time password, one-time password) according to the request of the service server 50.

인증서버(30)는 시크릿 키를 생성(등록)하기 위하여 파라미터를 설정한다. 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(time stamp)이다. 즉, 파라미터는 시크릿 키를 생성할 때마다 달리 설정된다.The authentication server 30 sets a parameter to generate (register) a secret key. The parameter is a parameter by a temporal factor, preferably a time stamp. In other words, the parameters are set differently each time the secret key is generated.

또한, 인증서버(30)는 파라미터를 이용하여 시크릿 키와 고유 아이디(ID)를 생성하고, 고유 아이디를 식별자로 하여 시크릿 키를 등록한다. 따라서 시크릿 키는 고유 아이디(ID)에 의해 식별되고 매핑된다. 바람직하게는, 고유 아이디와 시크릿 키는 하나의 매핑 쌍으로 목록(이하 OTP디바이스 목록)으로 관리된다.In addition, the authentication server 30 generates a secret key and a unique ID (ID) using the parameter, and registers the secret key using the unique ID as an identifier. Thus, the secret key is identified and mapped by a unique ID (ID). Preferably, the unique ID and the secret key are managed in a list (hereinafter, referred to as OTP device list) as a single mapping pair.

도 4에서 보는 바와 같이, OTP 디바이스 목록은 고유 아이디와 시크릿 키 외에도 주기 등의 항목을 추가하여 설정된다. 주기는 일회용 비밀번호를 발생시키는 시간간격을 의미한다. 즉, 일회용 비밀번호는 시크릿 키와 현재 시각(current time)의 조합을 이용하여 생성되는데, 이때 주기는 현재 시각의 시간 단위를 의미한다. 따라서 주기의 시간 마다 일회용 비밀번호가 변경된다. 예를 들어, 주기가 30초이면, 생성되는 일회용 비밀번호는 30초마다 변경된다.As shown in FIG. 4, the OTP device list is set by adding items such as a period in addition to the unique ID and secret key. Period refers to the time interval for generating a one-time password. That is, the one-time password is generated using a combination of the secret key and the current time, and the period refers to the time unit of the current time. Therefore, the one-time password is changed every time of the cycle. For example, if the period is 30 seconds, the generated one-time password is changed every 30 seconds.

또한, 인증서버(30)는 사용자 아이디(사용자 식별정보)와 서비스 아이디(서비스 식별정보), 및, 파리미터(또는 타임스탬프)를 이용하여 고유 아이디를 생성한다. 즉, 고유 아이디는 다음 수학식 1에 의해 생성된다.In addition, the authentication server 30 generates a unique ID using a user ID (user identification information), a service ID (service identification information), and a parameter (or time stamp). That is, the unique ID is generated by the following equation (1).

[수학식 1][Equation 1]

UniqueID = GenerateUniqueID (CompanyID, UserID, TimeStamp)UniqueID = GenerateUniqueID (CompanyID, UserID, TimeStamp)

여기서, UniqueID는 고유 아이디이고, CompanyID는 서비스 아이디이고, UserID는 사용자 아이디이고, TimeStamp는 타임스탬프로서 파라미터이다. GenerateUniqueID는 임의 매핑 함수로서, 바람직하게는, 일대일 매핑 함수이거나 일방향 함수이다.Here, UniqueID is a unique ID, CompanyID is a service ID, UserID is a user ID, and TimeStamp is a timestamp and is a parameter. GenerateUniqueID is an arbitrary mapping function, preferably, a one-to-one mapping function or a one-way function.

또한, 사용자 식별정보는 사용자의 아이디(ID) 등 사용자를 식별할 수 있는 정보이고, 서비스 식별정보는 서비스 서버(50)의 아이디 등 서비스 서버(또는 서비스)를 식별할 수 있는 정보이다.In addition, the user identification information is information that can identify the user, such as the user's ID (ID), and the service identification information is information that can identify the service server (or service), such as the ID of the service server 50.

또한, 인증서버(30)는 고유 아이디 및 파라미터를 이용하여 시크릿 키를 생성한다. 이때, 난수발생기(RNG, random number generator)에 의하여 시크릿 키를 생성하되, 고유 아이디는 시드(seed)로 이용되고, 파라미터는 난수 발생 횟수에 이용된다.In addition, the authentication server 30 generates a secret key using a unique ID and parameters. At this time, a secret key is generated by a random number generator (RNG), but the unique ID is used as a seed, and the parameter is used for the number of random number generation.

특히, 파라미터는 난수발생기를 이용하여 난수 발생 횟수를 추출한다. 즉, 다음 수학식과 같이, 난수 발생 횟수를 추출한다. 즉, 난수 발생 횟수는 난수발생을 통해 추출하되, 파라미터가 시드(seed)로 이용된다.In particular, the parameter extracts the number of occurrences of a random number using a random number generator. That is, the number of occurrences of random numbers is extracted as in the following equation. That is, the number of occurrences of the random number is extracted through the generation of the random number, but the parameter is used as a seed.

[수학식 2][Equation 2]

SequenceID = RNG(PREDEFINEDVAL, TimeSTamp)SequenceID = RNG(PREDEFINEDVAL, TimeSTamp)

여기서, SequenceID는 난수 발생 횟수를 나타내고, RNG는 난수발생기 또는 난수발생 함수를 나타낸다. 또한, TimeSTamp는 파라미터를 나타낸다. 그리고 PREDEFINEDVAL은 사전에 정해지는 상수이다.Here, SequenceID represents the number of occurrences of a random number, and RNG represents a random number generator or a random number generation function. In addition, TimeSTamp represents a parameter. And PREDEFINEDVAL is a constant determined in advance.

그리고 인증서버(30)는 다음 수학식에 의하여, 시크릿 키 Secret를 생성한다.Then, the authentication server 30 generates a secret key Secret by the following equation.

[수학식 3][Equation 3]

For (i=0; i<SequenceID; Secret = RNG(UniqueID), i++);For (i=0; i<SequenceID; Secret = RNG(UniqueID), i++);

수학식 3은 시크릿 키를 생성하는 슈도 코드(pseudo code)로서, 고유 아이디(ID)를 시드(seed)로 난수발생기(RNG)에 의해 난수를 발생시키되, 난수 발생 횟수(SequenceID) 만큼 반복하여 난수를 발생시킨다.Equation 3 is a pseudo code that generates a secret key. A random number is generated by a random number generator (RNG) using a unique ID (ID) as a seed, but is repeated as many times as the number of random numbers (SequenceID). Occurs.

또한, 인증서버(30)는 생성된 시크릿 키의 해시값을 획득한다. 시크릿 키의 해시값은 다음 수학식에 의해 산출된다.In addition, the authentication server 30 obtains a hash value of the generated secret key. The hash value of the secret key is calculated by the following equation.

[수학식 4][Equation 4]

HashValue = SHA256(Secret)HashValue = SHA256(Secret)

여기서, HashValue는 해시값 또는 검증값이고, SHA256는 해시함수를 나타낸다. 그리고 Secret는 시크릿 키를 나타낸다.Here, HashValue is a hash value or a verification value, and SHA256 is a hash function. And Secret represents the secret key.

또한, 인증서버(30)는 고유 아이디, 파라미터, 검증값 등(이하 파라미터 등)을 OTP 클라이언트(20)로 함께 전송한다. 이때, 바람직하게는, 인증서버(30)는 파라미터 등을 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여 전송할 수 있다. 일례로서, 파라미터 등을 QR 코드로 변환하여 생성하고, 해당 QR 코드를 디스플레이에 표시한다. 그러면 사용자는 스마트 단말(10)의 카메라 등을 이용하여 QR코드를 인식하고, QR코드로부터 파라미터 등을 추출한다.In addition, the authentication server 30 transmits the unique ID, parameters, verification values, etc. (hereinafter, parameters, etc.) to the OTP client 20 together. At this time, preferably, the authentication server 30 may convert and transmit a parameter or the like into a two-dimensional code (QR code, voice-eye code, etc.). As an example, a parameter or the like is converted into a QR code and generated, and the QR code is displayed on the display. Then, the user recognizes the QR code using the camera of the smart terminal 10 and extracts parameters, etc. from the QR code.

한편, 인증서버(30)는 서비스 서버(50)로부터 시크릿 키 또는 OTP 디바이스의 일회용 비밀번호에 대한 검증 요청(인증 요청)을 수신하면, OTP 디바이스의 일회용 비밀번호(OTP)를 검증(또는 인증)하여 그 결과(또는 검증결과, 인증결과)를 회신한다.On the other hand, when the authentication server 30 receives the verification request (authentication request) for the secret key or the one-time password of the OTP device from the service server 50, the authentication server 30 verifies (or authenticates) the one-time password (OTP) of the OTP device. The result (or verification result, authentication result) is returned.

즉, 인증서버(40)는 서비스 서버(50)로부터 고유 아이디와 일회용 비밀번호(OTP)를 수신하면, 고유 아이디에 해당되는 시크릿 키(또는 OTP 디바이스)를 검색한다. 특히, OTP 디바이스 목록에서 고유 아이디를 검색하고, 검색된 고유 아이디에 매핑되는 시크릿 키를 검색한다.That is, when the authentication server 40 receives the unique ID and one-time password (OTP) from the service server 50, the authentication server 40 searches for a secret key (or OTP device) corresponding to the unique ID. In particular, a unique ID is searched in the OTP device list, and a secret key mapped to the searched unique ID is searched.

검색된 시크릿 키로 일회용 비밀번호(OTP)를 생성하고, 생성된 일회용 비밀번호(OTP)와 수신한 일회용 비밀번호(OTP)를 대비하여, 그 동일 여부로 일회용 비밀번호를 검증(또는 인증)한다. 즉, 동일하면, 검증되는 것으로 판단한다.A one-time password (OTP) is generated with the retrieved secret key, and the one-time password is verified (or authenticated) by comparing the generated one-time password (OTP) with the received one-time password (OTP). That is, if it is the same, it is determined that it is verified.

한편, 인증서버(30)와 서비스 서버(50)는 서로 독립된 서버로서 설명하였으나, 이들 서버들은 하나의 시스템 또는 하나의 서버로서 구현될 수 있다.Meanwhile, although the authentication server 30 and the service server 50 have been described as independent servers, these servers may be implemented as one system or one server.

다음으로, 서비스 서버(50)는 서비스를 제공하는 서버로서, 서비스의 사용자에 대한 사용자 인증을 처리하고, 사용자 인증이 통과되면 해당 사용자에게 서비스를 제공한다.Next, the service server 50, as a server providing a service, processes user authentication for a user of the service, and provides a service to the user when the user authentication passes.

서비스 서버(50)는 사용자 인증을 수행한다. 이때, 1요소 인증 또는 2요소 인증을 수행할 수 있다. 특히, 서비스 서버(50)는 인증수단으로서 OTP를 이용한 인증을 함께 수행한다. 또는 다른 실시예로서, 일회용 비밀번호 방식으로 단독으로만 수행할 수도 있다.The service server 50 performs user authentication. At this time, one-factor authentication or two-factor authentication may be performed. In particular, the service server 50 performs authentication using OTP as an authentication means. Alternatively, as another embodiment, it may be performed alone with a one-time password method.

서비스 서버(50)는 OTP 인증을 인증서버(30)에 요청한다. 이때, 서비스 서버(50)는 OTP 클라이언트(20)로부터 고유 아이디와, 일회용 비밀번호를 수신하고, 수신한 고유 아이디와 일회용 비밀번호를 인증서버(30)로 전달한다.The service server 50 requests OTP authentication from the authentication server 30. At this time, the service server 50 receives the unique ID and one-time password from the OTP client 20, and transmits the received unique ID and one-time password to the authentication server 30.

한편, 서비스 서버(50)는 OTP 디바이스 등록이나 오프셋 갱신 작업을 스마트 단말(10) 또는 OTP 클라이언트(20)에 중계하거나 제공할 수 있다. 즉, 서비스 서버(50)는 인증 서버(50)와 연동되어, 인증 서버(50)의 OTP 디바이스 관리의 인터페이스를 제공할 수 있다. 따라서 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속하여, OTP 디바이스를 등록하거나 오프셋 갱신 작업을 수행할 수 있다. 그러나 실제 OTP 디바이스의 등록 서비스나 오프셋 갱신 서비스는 인증 서버(30)에 의해 제공된다.Meanwhile, the service server 50 may relay or provide an OTP device registration or offset update operation to the smart terminal 10 or the OTP client 20. That is, the service server 50 may be interlocked with the authentication server 50 to provide an interface for OTP device management of the authentication server 50. Accordingly, the smart terminal 10 or the OTP client 20 may access the service server 50 to register an OTP device or perform an offset update operation. However, the actual OTP device registration service or offset update service is provided by the authentication server 30.

특히, 서비스 서버(50)는 OTP 디바이스 등록시, 서비스 아이디(서비스 서버의 아이디)를 인증 서버(30)에 제공한다.In particular, the service server 50 provides a service ID (the ID of the service server) to the authentication server 30 when registering an OTP device.

다음으로, 데이터베이스(40)는 서비스 서버에 대한 정보를 저장하는 서비스DB(41), 고유 아이디와 시크릿키의 매핑 테이블 또는 목록을 저장하는 시크릿키DB(42)로 이루어진다. 그러나 상기 데이터베이스(40)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.Next, the database 40 includes a service DB 41 that stores information on a service server, and a secret key DB 42 that stores a mapping table or list of unique IDs and secret keys. However, the configuration of the database 40 is only a preferred embodiment, and may be configured in a different structure according to the database construction theory in consideration of ease and efficiency of access and search in developing a specific device.

다음으로, 본 발명의 제1 실시예에 따른 동적 공유 시크릿 분배 방식의 OTP 디바이스 등록 방법을 도 5를 참조하여 설명한다.Next, a method of registering an OTP device using a dynamic shared secret distribution method according to a first embodiment of the present invention will be described with reference to FIG. 5.

도 5에서 보는 바와 같이, 먼저, 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속한다(S10). 이때, 서비스 서버(50)는 스마트 단말(10)로부터 사용자 아이디를 입력받는다. 또한, 바람직하게는, 서비스 서버(50)는 아이디와 패스워드 등에 의한 1차 사용자 인증을 수행할 수 있다. 서비스 서버(50)는 1차 인증을 수행하면서 사용자 아이디를 획득할 수 있다. 또한, 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)의 아이디 또는 서비스 아이디를 얻을 수 있다.As shown in FIG. 5, first, the smart terminal 10 or the OTP client 20 accesses the service server 50 (S10). At this time, the service server 50 receives a user ID from the smart terminal 10. Also, preferably, the service server 50 may perform primary user authentication based on an ID and a password. The service server 50 may acquire a user ID while performing primary authentication. In addition, the smart terminal 10 or the OTP client 20 may obtain an ID or service ID of the service server 50.

다음으로, 서비스 서버(50)는 OTP 디바이스의 등록을 인증 서버(30)에 요청한다(S21). 이때, 서비스 서버(50)는 사용자 아이디(ID)와 자신의 아이디(또는 서비스 서버의 아이디, 서비스 아이디)를 인증 서버(30)에 전송한다.Next, the service server 50 requests the authentication server 30 to register the OTP device (S21). At this time, the service server 50 transmits a user ID (ID) and its own ID (or service server ID, service ID) to the authentication server 30.

다음으로, 인증 서버(30)는 파라미터를 설정한다(S22). 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(time stamp)로 설정된다. 파라미터는 OTP 디바이스의 요청이 있을 때, 생성되므로, 각 요청마다 다른 값을 가진다.Next, the authentication server 30 sets parameters (S22). The parameter is a parameter by a temporal factor, preferably set to a time stamp. Since the parameter is generated when there is a request from the OTP device, each request has a different value.

다음으로, 인증 서버(30)는 사용자 아이디 및 서비스 아이디, 파라미터를 이용하여 고유 아이디를 생성한다(S23). 앞서 수학식 1을 이용하여 고유 아이디를 생성한다.Next, the authentication server 30 generates a unique ID using a user ID, a service ID, and a parameter (S23). A unique ID is created using Equation 1 above.

다음으로, 인증 서버(30)는 고유 아이디와 파라미터를 이용하여 시크릿 키를 생성하고, 시크릿 키에 대한 검증값을 생성한다(S24). 즉, 앞서 수학식 2와 같이, 파라미터를 시드(seed)로 활용하여 난수를 발생시켜, 난수발생 횟수를 생성한다. 그리고 앞서 수학식 3과 같이, 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시키되, 난수발생 횟수만큼 발생시켜, 시크릿 키를 획득한다. 그리고 생성된 시크릿 키의 해시값을 구하여 검증값으로 활용한다.Next, the authentication server 30 generates a secret key using a unique ID and parameters, and generates a verification value for the secret key (S24). That is, as shown in Equation 2 above, a random number is generated by using a parameter as a seed to generate the number of random number generation. And, as shown in Equation 3 above, a random number is generated by using a unique ID as a seed, but by generating the number of times the random number is generated, a secret key is obtained. Then, the hash value of the generated secret key is obtained and used as a verification value.

다음으로, 인증 서버(30)는 고유 아이디와 시크릿 키를 대응시켜, OTP 디바이스 목록에 등록한다(S25). 바람직하게는, 해당 목록에 주기를 설정할 수 있다. 주기는 일회용 비밀번호를 발생시키는 시간간격을 의미한다. 특히, 시크릿 키와 현재시각의 조합으로 일회용 비밀번호를 생성하는데, 현재시각의 단위가 곧 주기이다. 시크릿 키와 현재시각이 동일하면 일회용 비밀번호는 동일하므로, 현재시각이 다르면 일회용 비밀번호는 달라진다. 따라서 주가 단위로 일회용 비밀번호가 변경된다.Next, the authentication server 30 associates the unique ID with the secret key and registers it in the OTP device list (S25). Preferably, it is possible to set a period in the list. Period refers to the time interval for generating a one-time password. In particular, a one-time password is created by combining the secret key and the current time, and the unit of the current time is the cycle. If the secret key and the current time are the same, the one-time password is the same, so if the current time is different, the one-time password will be different. Therefore, the one-time password is changed by stock price.

다음으로, 인증 서버(30)는 파라미터 등을 서비스 서버(50) 또는 OTP 클라이언트(20)로 전송한다(S26). 즉, 시크릿 키를 직접 전송하지 않고, 파라미터만을 전송한다. 바람직하게는, 주기도 함께 전송할 수 있다. 특히, 서비스 서버(50)는 파라미터 등을 수신하여 스마트 단말(10)에 전달한다.Next, the authentication server 30 transmits the parameters and the like to the service server 50 or the OTP client 20 (S26). That is, the secret key is not transmitted directly, only the parameters are transmitted. Preferably, the period can also be transmitted. In particular, the service server 50 receives parameters and the like and transmits them to the smart terminal 10.

이때, 인증 서버(30)는 파라미터 등을 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여, 2차원 코드 또는 2차원 코드 이미지를 전송할 수 있다. 2차원 코드는 바코드 등과 같이 2차원으로 형성된 코드로서, QR코드, 보이스아이(voiceye) 코드 등이다.In this case, the authentication server 30 may convert a parameter or the like into a two-dimensional code (QR code, voice-eye code, etc.) and transmit a two-dimensional code or a two-dimensional code image. The two-dimensional code is a code formed in two dimensions, such as a bar code, and is a QR code and a voiceye code.

또한, 인증 서버(30)는 2차원 코드 변환시, 파라미터 등을 암호화 하여, 암호화된 데이터를 2차원 코드로 변환할 수 있다.In addition, the authentication server 30 may convert the encrypted data into a two-dimensional code by encrypting parameters and the like when converting a two-dimensional code.

특히, 바람직하게는, 서비스 서버(50)는 인증 서버(30)로부터 파라미터 등의 2차원 코드를 수신하여, 2차원 코드를 화면 상에 표시한다. 사용자는 스마트 단말(10)의 카메라(미도시)로 해당 2차원 코드를 촬영하고, 촬영된 2차원 코드로부터 파라미터 등을 추출한다. 이때, 2차원 코드의 내용이 암호화된 경우, 복호화 한 후 파라미터 등을 추출한다.In particular, preferably, the service server 50 receives a two-dimensional code such as a parameter from the authentication server 30 and displays the two-dimensional code on the screen. The user photographs a corresponding 2D code with a camera (not shown) of the smart terminal 10 and extracts parameters, etc. from the captured 2D code. At this time, if the contents of the 2D code are encrypted, parameters, etc. are extracted after decryption.

다음으로, OTP 클라이언트(20)는 파라미터 등을 수신하면, 고유 아이디를 생성한다(S31). OTP 클라이언트(20)는 사용자 아이디 및 서비스 아이디, 파라미터를 이용하여 고유 아이디를 생성한다(S31). 고유 아이디 생성방식은 앞서 인증 서버(30)에서 수행된 방식과 동일하다.Next, when the OTP client 20 receives a parameter or the like, it generates a unique ID (S31). The OTP client 20 generates a unique ID using a user ID, a service ID, and a parameter (S31). The unique ID generation method is the same as the method performed in the authentication server 30 above.

다음으로, OTP 클라이언트(20)는 생성된 고유 아이디와 수신한 파라미터를 이용하여 시크릿 키를 생성하고, 시크릿 키를 검증한다(S32). 즉, OTP 클라이언트(20)는 앞서 수학식 2와 3과 같이, 파라미터로 난수발생 횟수를 생성하고, 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시키되, 난수발생 횟수만큼 발생시켜, 시크릿 키를 획득한다. 시크릿 키 생성방식은 앞서 인증 서버(30)에서 수행된 방식과 동일하다.Next, the OTP client 20 generates a secret key using the generated unique ID and the received parameter, and verifies the secret key (S32). That is, the OTP client 20 generates the number of random number generation as a parameter as shown in Equations 2 and 3 above, and generates a random number by using the unique ID as a seed, but generates as many times as the number of random number generation, and the secret key Get The secret key generation method is the same as the method performed by the authentication server 30 above.

또한, OTP 클라이언트(20)는 생성된 시크릿 키에 해시 함수를 적용하여, 해시값을 획득한다. 그리고 획득된 해시값과 수신한 검증값을 비교하여, 시크릿 키를 검증한다.In addition, the OTP client 20 obtains a hash value by applying a hash function to the generated secret key. And by comparing the obtained hash value and the received verification value, the secret key is verified.

[수학식 5][Equation 5]

Result = Compare(HashValue,HashValue_Server)Result = Compare(HashValue,HashValue_Server)

여기서, Result는 비교 결과 또는 검증결과이고, HashValue는 획득한 해시값이고, HashValue_Server는 서버로부터 수신한 검증값이다. Compare는 동일 여부를 판단하는 함수이다. 동일한 경우, 시크릿 키가 올바른 키로 검증된다.Here, Result is a comparison result or verification result, HashValue is an acquired hash value, and HashValue_Server is a verification value received from the server. Compare is a function that determines whether they are the same. In the same case, the secret key is verified with the correct key.

다음으로, 본 발명의 제2 일실시예에 따른 동적 공유 시크릿 분배 방식의 OTP 보안 관리 방법을 도 6을 참조하여 설명한다.Next, an OTP security management method using a dynamic shared secret distribution method according to a second embodiment of the present invention will be described with reference to FIG. 6.

도 6에서 보는 바와 같이, 스마트 단말(10) 또는 OTP 클라이언트(20)가 서비스 서버(50)에 접속한다(S41). 이때, 서비스 서버(50)는 2단계 인증을 수행하는 경우, 사용자 아이디와 패스워드 등으로 1차 사용자 인증을 수행할 수 있다(S42).As shown in Fig. 6, the smart terminal 10 or the OTP client 20 connects to the service server 50 (S41). In this case, when performing two-step authentication, the service server 50 may perform primary user authentication with a user ID and password (S42).

다음으로, 서비스 서버(50)는 OTP 인증을 위해, 인증 서버(50)와 OTP 인증을 개시한다(S51). 이때, 서비스 서버(50)는 인증 서버(50)의 OTP 인증을 위한 인터페이스를 이용할 수 있다. 그리고 서비스 서버(50) 또는 인증 서버(50)는 사용자 또는 스마트 단말(10), OTP 클라이언트(20)에 일회용 비밀번호를 요청한다(S52).Next, the service server 50 starts OTP authentication with the authentication server 50 for OTP authentication (S51). In this case, the service server 50 may use an interface for OTP authentication of the authentication server 50. Then, the service server 50 or the authentication server 50 requests a one-time password from the user or the smart terminal 10 or the OTP client 20 (S52).

다음으로, 스마트 단말(10)는 OTP 클라이언트(20)를 실행시키거나, 또는 OTP 클라이언트(20)가 직접 일회용 비밀번호를 생성하여(S61), 서비스 서버(50) 또는 인증 서버(30)에 전송한다(S62).Next, the smart terminal 10 executes the OTP client 20, or the OTP client 20 directly generates a one-time password (S61) and transmits it to the service server 50 or the authentication server 30. (S62).

이때, 수학식 6과 같이, 일회용 비밀번호 OTP는 시크릿 키와 현재 시각을 이용하여 생성한다. 즉, 시크릿 키와 현재 시각이 동일하면, 동일한 일회용 비밀번호를 얻을 수 있다. At this time, as shown in Equation 6, the one-time password OTP is generated using the secret key and the current time. That is, if the secret key and the current time are the same, the same one-time password can be obtained.

[수학식 6][Equation 6]

OTP_Client = GenerateOTP(Secret, GetCurrentTime())OTP_Client = GenerateOTP(Secret, GetCurrentTime())

OTP_Client는 클라이언트에서 생성한 일회용 비밀번호(이하 제1 비밀번호)이고, GetCurrentTime()은 현재시각을 얻는 함수이다. 또한, GenerateOTP()는 일방향 함수이거나 일대일 대응 함수로서, 동일한 입력값에 대해 동일한 출력값을 출력한다.OTP_Client is a one-time password generated by the client (hereinafter, the first password), and GetCurrentTime() is a function that gets the current time. Also, GenerateOTP() is a one-way function or one-to-one correspondence function, and outputs the same output value for the same input value.

제1 비밀번호의 전송은 직접 사용자에 의해 입력될 수 있다. 즉, OTP 클라이언트(20)는 단지 제1 비밀번호를 화면 상에 출력만 하고, 사용자가 직접 서비스 서버(50) 또는 인증 서버(30)의 입력 인터페이스에 입력할 수 있다. 또는 OTP 클라이언트(20)가 서비스 서버(50) 또는 인증 서버(30)와 데이터 통신을 수행할 수 있으면, 데이터 통신을 통해 제1 비밀번호(또는, 제1 비밀번호 및 고유 아이디)를 전송할 수 있다.Transmission of the first password may be directly input by the user. That is, the OTP client 20 only outputs the first password on the screen, and the user can directly input it to the input interface of the service server 50 or the authentication server 30. Alternatively, if the OTP client 20 can perform data communication with the service server 50 or the authentication server 30, it can transmit a first password (or a first password and a unique ID) through data communication.

한편, 바람직하게는, OTP 클라이언트(20)는 제1 비밀번호를 전송할 때, 해당 제1 비밀번호에 대응되는 고유 아이디를 함께 전송한다.Meanwhile, preferably, when transmitting the first password, the OTP client 20 transmits a unique ID corresponding to the corresponding first password together.

다음으로, 인증 서버(30)는 제1 비밀번호(또는 제1 비밀번호 및 고유 아이디)를 수신하고, 제2 비밀번호를 생성한다(S71). 제2 비밀번호는 고유 아이디에 해당하는 시크릿 키를 이용하여 생성된다. 제2 비밀번호는 다음 [수학식 7]과 같이 생성될 수 있다.Next, the authentication server 30 receives a first password (or a first password and a unique ID) and generates a second password (S71). The second password is generated using a secret key corresponding to the unique ID. The second password may be generated as follows [Equation 7].

[수학식 7][Equation 7]

OTP_Server = GenerateOTP(Secret, GetCurrentTime())OTP_Server = GenerateOTP(Secret, GetCurrentTime())

여기서, OTP_Server는 제2 비밀번호로서, 인증 서버(30)에서 생성된 일회용 비밀번호이다.Here, OTP_Server is a second password, and is a one-time password generated by the authentication server 30.

다음으로, 인증 서버(30)는 제1 및 제2 비밀번호를 비교하여, 수신한 제1 비밀번호를 검증한다(S72). 즉, 제1 및 제2 비밀번호가 동일하면, 해당 인증(또는 검증)이 통과된다.Next, the authentication server 30 compares the first and second passwords and verifies the received first password (S72). That is, if the first and second passwords are the same, the authentication (or verification) is passed.

다음으로, 인증 서버(30)는 검증결과 또는 인증결과를 서비스 서버(50) 또는 OTP 클라이언트(20)에 전송한다(S73).Next, the authentication server 30 transmits the verification result or the authentication result to the service server 50 or the OTP client 20 (S73).

다음으로, 본 발명의 제3 실시예에 따른 동적 공유 시크릿 분배 방식의 OTP 디바이스의 등록 방법을 설명한다.Next, a method of registering an OTP device using a dynamic shared secret distribution method according to a third embodiment of the present invention will be described.

본 발명의 제3 실시예는 제1 실시예와 달리, 서비스 서버(50)를 거치지 않고, OTP 클라이언트(20) 또는 스마트 단말(10)이 인증 서버(30)에 직접 접속하여 OTP 디바이스를 등록할 수 있다.In the third embodiment of the present invention, unlike the first embodiment, the OTP client 20 or the smart terminal 10 directly accesses the authentication server 30 to register the OTP device without going through the service server 50. I can.

이 경우, 고유 아이디는 서비스 아이디를 사용하지 않고, 사용자 아이디와 파라미터만 이용하여 생성될 수 있다.In this case, the unique ID may be generated using only the user ID and parameters without using the service ID.

특히, 제3 실시예에 의해 OTP 디바이스가 등록된 경우, 등록된 OTP 디바이스를 이용하여 인증하고자 할 때, OTP 클라이언트(20)는 생성된 일회용 비밀번호와 함께 고유 아이디를 함께 인증 서버(30) 또는 서비스 서버(50)에 전송한다. 따라서 인증 서버(30)는 고유 아이디를 이용하여 시크릿 키를 식별한다.In particular, when an OTP device is registered according to the third embodiment, when attempting to authenticate using the registered OTP device, the OTP client 20 provides the authentication server 30 or service with a unique ID together with the generated one-time password. It transmits to the server 50. Therefore, the authentication server 30 identifies the secret key using the unique ID.

이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.In the above, the invention made by the present inventors has been described in detail according to the embodiments, but the invention is not limited to the embodiments, and of course, various changes can be made without departing from the gist of the invention.

10 : 스마트 단말 20 : OTP 클라이언트
30 : 인증 서버 40 : 데이터베이스
50 : 서비스 서버 80 : 네트워크
10: smart terminal 20: OTP client
30: authentication server 40: database
50: service server 80: network

Claims (5)

스마트 단말에 설치되는 OTP 클라이언트, 서비스 서버, 및, 인증 서버가 네트워크를 통해 연결되는, 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서,
(a) 상기 서비스 서버가 접속된 사용자에 대한 OTP 디바이스 등록을 상기 인증 서버에 요청하는 단계;
(b) 상기 인증 서버는 파라미터를 설정하는 단계;
(c) 상기 인증 서버는 상기 사용자의 사용자 아이디, 상기 서비스 서버의 아이디(이하 서비스 아이디), 및, 상기 파라미터를 이용하여 고유 아이디(이하 제1 고유 아이디)를 생성하는 단계;
(d) 상기 인증 서버는 상기 파라미터와 상기 제1 고유 아이디를 이용하여 시크릿 키(이하 제1 시크릿 키)를 생성하는 단계;
(e) 상기 인증 서버는 상기 제1 고유 아이디와 상기 제1 시크릿 키를 매핑하여 OTP 디바이스로 등록하는 단계;
(f) 상기 인증 서버는 상기 파라미터를 상기 OTP 클라이언트로 전송하는 단계;
(g) 상기 OTP 클라이언트는 상기 파라미터를 수신하여, 상기 파라미터를 이용하여 고유 아이디(이하 제2 고유 아이디)를 생성하는 단계;
(h) 상기 OTP 클라이언트는 상기 파라미터와 상기 제2 고유 아이디를 이용하여 시크릿 키(이하 제2 시크릿 키)를 생성하는 단계; 및,
(i) 상기 OTP 클라이언트는 상기 제2 고유 아이디와 상기 제2 시크릿 키를 매핑하여 OTP 디바이스로 등록하는 단계를 포함하는 것을 특징으로 하는 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법.
In the OTP security management method of a dynamic shared secret distribution method in which an OTP client installed in a smart terminal, a service server, and an authentication server are connected through a network,
(a) requesting the authentication server to register an OTP device for a user connected to the service server;
(b) the authentication server setting parameters;
(c) the authentication server generating a unique ID (hereinafter, a first unique ID) using the user ID of the user, the ID of the service server (hereinafter referred to as the service ID), and the parameter;
(d) the authentication server generating a secret key (hereinafter, a first secret key) using the parameter and the first unique ID;
(e) the authentication server registering the first unique ID and the first secret key as an OTP device by mapping the first unique ID and the first secret key;
(f) the authentication server transmitting the parameter to the OTP client;
(g) the OTP client receiving the parameter and generating a unique ID (hereinafter, a second unique ID) using the parameter;
(h) the OTP client generating a secret key (hereinafter referred to as a second secret key) using the parameter and the second unique ID; And,
(i) the OTP client mapping the second unique ID and the second secret key to register the OTP device as an OTP security management method.
제1항에 있어서,
상기 (d)단계에서, 상기 인증 서버는 상기 제1 시크릿 키를 해싱하여 해시값(이하 검증값)을 생성하고,
상기 (f)단계에서 상기 인증 서버는 상기 검증값을 상기 파라미터와 함께 전송하고,
상기 (h)단계에서, 상기 OTP 클라이언트는 상기 제2 시크릿키의 해시값을 구하고, 구한 해시값과 상기 검증값을 대비하여 상기 제2 시크릿키를 검증하는 것을 특징으로 하는 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법.
The method of claim 1,
In the step (d), the authentication server generates a hash value (hereinafter, a verification value) by hashing the first secret key,
In the step (f), the authentication server transmits the verification value together with the parameter,
In the step (h), the OTP client obtains a hash value of the second secret key, and verifies the second secret key by comparing the obtained hash value and the verification value. OTP security management method.
제1항에 있어서,
상기 파라미터는 시간적 요소에 의한 매개변수인 것을 특징으로 하는 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법.
The method of claim 1,
The parameter is a dynamic shared secret distribution method OTP security management method, characterized in that the parameter according to a temporal factor.
제1항에 있어서,
상기 (d)단계에서, 상기 인증 서버는 상기 파라미터를 시드(Seed)로 활용하여 난수를 발생시켜 제1 난수발생 횟수를 생성하고, 상기 제1 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시켜 제1 시크릿 키를 생성하되, 상기 제1 난수발생 횟수 만큼 난수를 발생시켜 제1 시크릿 키를 생성하고,
상기 (h)단계에서, 상기 OTP 클라이언트는 수신한 파라미터를 시드(Seed)로 활용하여 난수를 발생시켜 제2 난수발생 횟수를 생성하고, 상기 제2 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시켜 제2 시크릿 키를 생성하되, 상기 제2 난수발생 횟수 만큼 난수를 발생시켜 제2 시크릿 키를 생성하는 것을 특징으로 하는 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법.
The method of claim 1,
In the step (d), the authentication server generates a random number by using the parameter as a seed to generate a first number of random numbers, and uses the first unique ID as a seed to generate a random number. To generate a first secret key, and generate a first secret key by generating a random number as many as the number of times the first random number is generated,
In step (h), the OTP client generates a random number by using the received parameter as a seed to generate a second number of random number generation, and uses the second unique ID as a seed to generate a random number. And generating a second secret key by generating a second secret key, and generating a second secret key by generating a random number as many as the number of times the second random number is generated.
제1항에 있어서,
상기 (f)단계에서, 상기 인증 서버는 상기 파라미터를 2차원 코드로 변환하고,
상기 2차원 코드는 화면에 표시되어, 상기 스마트 단말의 카메라에 의해 촬영되고, 상기 OTP 클라이언트에 의해 촬영된 2차원 코드 이미지로부터 상기 파라미터가 추출되어 인식되는 것을 특징으로 하는 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법.
The method of claim 1,
In the step (f), the authentication server converts the parameter into a two-dimensional code,
The two-dimensional code is displayed on the screen, photographed by the camera of the smart terminal, and the parameter is extracted and recognized from the two-dimensional code image photographed by the OTP client. Security management method.
KR1020190078869A 2019-07-01 2019-07-01 An OTP security management method by using dynamic shared secret distribution algorithm KR102274285B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190078869A KR102274285B1 (en) 2019-07-01 2019-07-01 An OTP security management method by using dynamic shared secret distribution algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190078869A KR102274285B1 (en) 2019-07-01 2019-07-01 An OTP security management method by using dynamic shared secret distribution algorithm

Publications (2)

Publication Number Publication Date
KR20210002955A true KR20210002955A (en) 2021-01-11
KR102274285B1 KR102274285B1 (en) 2021-07-07

Family

ID=74128954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190078869A KR102274285B1 (en) 2019-07-01 2019-07-01 An OTP security management method by using dynamic shared secret distribution algorithm

Country Status (1)

Country Link
KR (1) KR102274285B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102479036B1 (en) * 2022-07-29 2022-12-16 강원식 Method and System for Providing OTP to Integrated Emergency Broadcasting System
KR102509931B1 (en) * 2022-07-29 2023-03-14 강원식 Method and System for Providing OTP to Parking Management System
KR102509928B1 (en) * 2022-07-29 2023-03-14 강원식 Method and System for Provide OTP to Public Facilities Management Terminal
CN116782210A (en) * 2023-08-07 2023-09-19 北京数盾信息科技有限公司 Dynamic encryption key generation method of high-speed encryption algorithm
CN117579402A (en) * 2024-01-17 2024-02-20 北京大学 Platform secondary authentication login system and method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102602230B1 (en) * 2023-03-02 2023-11-14 주식회사 루테스 Method and system for authenticating client device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130018061A (en) * 2011-08-12 2013-02-20 주식회사 비즈모델라인 Method and system for operating one time code by using connectionless network seed
KR20140131201A (en) * 2013-05-03 2014-11-12 주식회사 티비허브 Smart card having OTP generation function and OTP authentication server
KR101580291B1 (en) 2014-06-20 2015-12-24 한국모바일인증 주식회사 Method for providing mobile on time password service and authentication system
KR20160081255A (en) 2014-12-31 2016-07-08 한국전자통신연구원 A mobile terminal for providing one time password and methed thereof
JP2016537888A (en) * 2013-11-15 2016-12-01 ランディス・ギア イノベーションズ インコーポレイテッドLandis+Gyr Innovations, Inc. System and method for updating encryption keys across a network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130018061A (en) * 2011-08-12 2013-02-20 주식회사 비즈모델라인 Method and system for operating one time code by using connectionless network seed
KR20140131201A (en) * 2013-05-03 2014-11-12 주식회사 티비허브 Smart card having OTP generation function and OTP authentication server
JP2016537888A (en) * 2013-11-15 2016-12-01 ランディス・ギア イノベーションズ インコーポレイテッドLandis+Gyr Innovations, Inc. System and method for updating encryption keys across a network
KR101580291B1 (en) 2014-06-20 2015-12-24 한국모바일인증 주식회사 Method for providing mobile on time password service and authentication system
KR20160081255A (en) 2014-12-31 2016-07-08 한국전자통신연구원 A mobile terminal for providing one time password and methed thereof

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102479036B1 (en) * 2022-07-29 2022-12-16 강원식 Method and System for Providing OTP to Integrated Emergency Broadcasting System
KR102509931B1 (en) * 2022-07-29 2023-03-14 강원식 Method and System for Providing OTP to Parking Management System
KR102509928B1 (en) * 2022-07-29 2023-03-14 강원식 Method and System for Provide OTP to Public Facilities Management Terminal
CN116782210A (en) * 2023-08-07 2023-09-19 北京数盾信息科技有限公司 Dynamic encryption key generation method of high-speed encryption algorithm
CN116782210B (en) * 2023-08-07 2024-04-30 数盾信息科技股份有限公司 Dynamic encryption key generation method of high-speed encryption algorithm
CN117579402A (en) * 2024-01-17 2024-02-20 北京大学 Platform secondary authentication login system and method

Also Published As

Publication number Publication date
KR102274285B1 (en) 2021-07-07

Similar Documents

Publication Publication Date Title
KR102274285B1 (en) An OTP security management method by using dynamic shared secret distribution algorithm
JP6571250B2 (en) How to use one device to unlock another
CN108235806B (en) Method, device and system for safely accessing block chain, storage medium and electronic equipment
CN106357649B (en) User identity authentication system and method
US10929524B2 (en) Method and system for verifying an access request
KR102424055B1 (en) Apparatus and Method for Providing API Authentication using Two API Tokens
CN104065653B (en) A kind of interactive auth method, device, system and relevant device
JP6399382B2 (en) Authentication system
JP4617763B2 (en) Device authentication system, device authentication server, terminal device, device authentication method, and device authentication program
KR101982237B1 (en) Method and system for data sharing using attribute-based encryption in cloud computing
CN101291224A (en) Method and system for processing data in communication system
US10133861B2 (en) Method for controlling access to a production system of a computer system not connected to an information system of said computer system
WO2023174038A9 (en) Data transmission method and related device
JP6378424B1 (en) User authentication method with enhanced integrity and security
KR102242720B1 (en) An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client
JP2016139910A (en) Authentication system, authentication key management device, authentication key management method and authentication key management program
RU2698424C1 (en) Authorization control method
KR102053993B1 (en) Method for Authenticating by using Certificate
JP2017108237A (en) System, terminal device, control method and program
KR102291919B1 (en) An OTP registration method based on location authentication and session, for preventing replication and multi-registration
CN111586024A (en) Authentication method, authentication equipment and storage medium
KR102291942B1 (en) A method of saving and using OTP backup codes or temporal user OTP codes by using multi-dimensional barcode
JP6165044B2 (en) User authentication apparatus, system, method and program
US20220086171A1 (en) Communication system, communication method, and computer program product
KR101737925B1 (en) Method and system for authenticating user based on challenge-response

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant