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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-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
Description
본 발명은 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 [
스마트 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.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 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
먼저, 스마트 단말(10)은 사용자가 이용하는 모바일 단말로서, 스마트폰, 패블릿, 태블릿PC 등 통상의 컴퓨팅 기능을 구비한 스마트 단말이다. 특히, 스마트 단말(10)은 어플리케이션 또는, 모바일용 어플리케이션(또는 앱, 어플) 등이 설치되어 실행될 수 있는 단말이다. 이하에서, 사용자가 어떤 작업을 수행하는 설명은 스마트 단말(10) 또는 스마트 단말(10)에 설치된 프로그램(또는 앱)을 통해 수행하는 작업임을 의미한다.First, the
다음으로, OTP 클라이언트(20)는 스마트 단말(10)에 설치되어 수행되는 모바일용 어플리케이션(또는 앱, 어플)으로서, 사용자의 명령에 따라 일회용 비밀번호(OTP, one-time password)를 생성하는 프로그램 시스템이다.Next, the
OTP 클라이언트(20)는 해시 함수, 시드 상수 등을 사전에 저장한다. 이들은 사전에 OTP 클라이언트(20)에 디폴트로 설정되거나 입력되어 설정되거나 저장된다.The
그리고 OTP 클라이언트(20)는 파라미터와 검증값을 인증서버(30)로부터 수신하고, 수신된 파라미터를 이용하여 시크릿 키 및 고유 아이디(ID)를 생성하고, 생성된 시크릿 키를 검증값으로 검증한다.In addition, the
여기서, 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(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
또한, 생성된 시크릿 키를 해시 함수로 해싱하여 해시값을 획득하고, 획득한 해시값과, 수신한 검증값을 대비하여, 그 동일 여부로 시크릿 키의 값을 검증한다. 즉, 동일한 경우에 시크릿 키가 검증된 것으로 판단한다.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)는 고유 아이디와 함께 인증 서버(50)로 보내지고, 인증 서버(50)에 의해 일회용 비밀번호에 대한 검증이 수행된다. OTP에 대한 검증이 성공되면, OTP에 의한 사용자 인증이 통과된 것으로 본다.The generated one-time password (OTP) is sent to the
다음으로, 인증서버(30)는 시크릿 키를 등록시키고, 서비스 서버(50)의 요청에 따라 OTP(one time password, 일회용 비밀번호)를 검증한다.Next, the
인증서버(30)는 시크릿 키를 생성(등록)하기 위하여 파라미터를 설정한다. 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(time stamp)이다. 즉, 파라미터는 시크릿 키를 생성할 때마다 달리 설정된다.The
또한, 인증서버(30)는 파라미터를 이용하여 시크릿 키와 고유 아이디(ID)를 생성하고, 고유 아이디를 식별자로 하여 시크릿 키를 등록한다. 따라서 시크릿 키는 고유 아이디(ID)에 의해 식별되고 매핑된다. 바람직하게는, 고유 아이디와 시크릿 키는 하나의 매핑 쌍으로 목록(이하 OTP디바이스 목록)으로 관리된다.In addition, the
도 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
[수학식 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
또한, 인증서버(30)는 고유 아이디 및 파라미터를 이용하여 시크릿 키를 생성한다. 이때, 난수발생기(RNG, random number generator)에 의하여 시크릿 키를 생성하되, 고유 아이디는 시드(seed)로 이용되고, 파라미터는 난수 발생 횟수에 이용된다.In addition, the
특히, 파라미터는 난수발생기를 이용하여 난수 발생 횟수를 추출한다. 즉, 다음 수학식과 같이, 난수 발생 횟수를 추출한다. 즉, 난수 발생 횟수는 난수발생을 통해 추출하되, 파라미터가 시드(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
[수학식 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
[수학식 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
한편, 인증서버(30)는 서비스 서버(50)로부터 시크릿 키 또는 OTP 디바이스의 일회용 비밀번호에 대한 검증 요청(인증 요청)을 수신하면, OTP 디바이스의 일회용 비밀번호(OTP)를 검증(또는 인증)하여 그 결과(또는 검증결과, 인증결과)를 회신한다.On the other hand, when the
즉, 인증서버(40)는 서비스 서버(50)로부터 고유 아이디와 일회용 비밀번호(OTP)를 수신하면, 고유 아이디에 해당되는 시크릿 키(또는 OTP 디바이스)를 검색한다. 특히, OTP 디바이스 목록에서 고유 아이디를 검색하고, 검색된 고유 아이디에 매핑되는 시크릿 키를 검색한다.That is, when the
검색된 시크릿 키로 일회용 비밀번호(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
다음으로, 서비스 서버(50)는 서비스를 제공하는 서버로서, 서비스의 사용자에 대한 사용자 인증을 처리하고, 사용자 인증이 통과되면 해당 사용자에게 서비스를 제공한다.Next, the
서비스 서버(50)는 사용자 인증을 수행한다. 이때, 1요소 인증 또는 2요소 인증을 수행할 수 있다. 특히, 서비스 서버(50)는 인증수단으로서 OTP를 이용한 인증을 함께 수행한다. 또는 다른 실시예로서, 일회용 비밀번호 방식으로 단독으로만 수행할 수도 있다.The
서비스 서버(50)는 OTP 인증을 인증서버(30)에 요청한다. 이때, 서비스 서버(50)는 OTP 클라이언트(20)로부터 고유 아이디와, 일회용 비밀번호를 수신하고, 수신한 고유 아이디와 일회용 비밀번호를 인증서버(30)로 전달한다.The
한편, 서비스 서버(50)는 OTP 디바이스 등록이나 오프셋 갱신 작업을 스마트 단말(10) 또는 OTP 클라이언트(20)에 중계하거나 제공할 수 있다. 즉, 서비스 서버(50)는 인증 서버(50)와 연동되어, 인증 서버(50)의 OTP 디바이스 관리의 인터페이스를 제공할 수 있다. 따라서 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속하여, OTP 디바이스를 등록하거나 오프셋 갱신 작업을 수행할 수 있다. 그러나 실제 OTP 디바이스의 등록 서비스나 오프셋 갱신 서비스는 인증 서버(30)에 의해 제공된다.Meanwhile, the
특히, 서비스 서버(50)는 OTP 디바이스 등록시, 서비스 아이디(서비스 서버의 아이디)를 인증 서버(30)에 제공한다.In particular, the
다음으로, 데이터베이스(40)는 서비스 서버에 대한 정보를 저장하는 서비스DB(41), 고유 아이디와 시크릿키의 매핑 테이블 또는 목록을 저장하는 시크릿키DB(42)로 이루어진다. 그러나 상기 데이터베이스(40)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.Next, the
다음으로, 본 발명의 제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
다음으로, 서비스 서버(50)는 OTP 디바이스의 등록을 인증 서버(30)에 요청한다(S21). 이때, 서비스 서버(50)는 사용자 아이디(ID)와 자신의 아이디(또는 서비스 서버의 아이디, 서비스 아이디)를 인증 서버(30)에 전송한다.Next, the
다음으로, 인증 서버(30)는 파라미터를 설정한다(S22). 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(time stamp)로 설정된다. 파라미터는 OTP 디바이스의 요청이 있을 때, 생성되므로, 각 요청마다 다른 값을 가진다.Next, the
다음으로, 인증 서버(30)는 사용자 아이디 및 서비스 아이디, 파라미터를 이용하여 고유 아이디를 생성한다(S23). 앞서 수학식 1을 이용하여 고유 아이디를 생성한다.Next, the
다음으로, 인증 서버(30)는 고유 아이디와 파라미터를 이용하여 시크릿 키를 생성하고, 시크릿 키에 대한 검증값을 생성한다(S24). 즉, 앞서 수학식 2와 같이, 파라미터를 시드(seed)로 활용하여 난수를 발생시켜, 난수발생 횟수를 생성한다. 그리고 앞서 수학식 3과 같이, 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시키되, 난수발생 횟수만큼 발생시켜, 시크릿 키를 획득한다. 그리고 생성된 시크릿 키의 해시값을 구하여 검증값으로 활용한다.Next, the
다음으로, 인증 서버(30)는 고유 아이디와 시크릿 키를 대응시켜, OTP 디바이스 목록에 등록한다(S25). 바람직하게는, 해당 목록에 주기를 설정할 수 있다. 주기는 일회용 비밀번호를 발생시키는 시간간격을 의미한다. 특히, 시크릿 키와 현재시각의 조합으로 일회용 비밀번호를 생성하는데, 현재시각의 단위가 곧 주기이다. 시크릿 키와 현재시각이 동일하면 일회용 비밀번호는 동일하므로, 현재시각이 다르면 일회용 비밀번호는 달라진다. 따라서 주가 단위로 일회용 비밀번호가 변경된다.Next, the
다음으로, 인증 서버(30)는 파라미터 등을 서비스 서버(50) 또는 OTP 클라이언트(20)로 전송한다(S26). 즉, 시크릿 키를 직접 전송하지 않고, 파라미터만을 전송한다. 바람직하게는, 주기도 함께 전송할 수 있다. 특히, 서비스 서버(50)는 파라미터 등을 수신하여 스마트 단말(10)에 전달한다.Next, the
이때, 인증 서버(30)는 파라미터 등을 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여, 2차원 코드 또는 2차원 코드 이미지를 전송할 수 있다. 2차원 코드는 바코드 등과 같이 2차원으로 형성된 코드로서, QR코드, 보이스아이(voiceye) 코드 등이다.In this case, the
또한, 인증 서버(30)는 2차원 코드 변환시, 파라미터 등을 암호화 하여, 암호화된 데이터를 2차원 코드로 변환할 수 있다.In addition, the
특히, 바람직하게는, 서비스 서버(50)는 인증 서버(30)로부터 파라미터 등의 2차원 코드를 수신하여, 2차원 코드를 화면 상에 표시한다. 사용자는 스마트 단말(10)의 카메라(미도시)로 해당 2차원 코드를 촬영하고, 촬영된 2차원 코드로부터 파라미터 등을 추출한다. 이때, 2차원 코드의 내용이 암호화된 경우, 복호화 한 후 파라미터 등을 추출한다.In particular, preferably, the
다음으로, OTP 클라이언트(20)는 파라미터 등을 수신하면, 고유 아이디를 생성한다(S31). OTP 클라이언트(20)는 사용자 아이디 및 서비스 아이디, 파라미터를 이용하여 고유 아이디를 생성한다(S31). 고유 아이디 생성방식은 앞서 인증 서버(30)에서 수행된 방식과 동일하다.Next, when the
다음으로, OTP 클라이언트(20)는 생성된 고유 아이디와 수신한 파라미터를 이용하여 시크릿 키를 생성하고, 시크릿 키를 검증한다(S32). 즉, OTP 클라이언트(20)는 앞서 수학식 2와 3과 같이, 파라미터로 난수발생 횟수를 생성하고, 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시키되, 난수발생 횟수만큼 발생시켜, 시크릿 키를 획득한다. 시크릿 키 생성방식은 앞서 인증 서버(30)에서 수행된 방식과 동일하다.Next, the
또한, OTP 클라이언트(20)는 생성된 시크릿 키에 해시 함수를 적용하여, 해시값을 획득한다. 그리고 획득된 해시값과 수신한 검증값을 비교하여, 시크릿 키를 검증한다.In addition, the
[수학식 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
다음으로, 서비스 서버(50)는 OTP 인증을 위해, 인증 서버(50)와 OTP 인증을 개시한다(S51). 이때, 서비스 서버(50)는 인증 서버(50)의 OTP 인증을 위한 인터페이스를 이용할 수 있다. 그리고 서비스 서버(50) 또는 인증 서버(50)는 사용자 또는 스마트 단말(10), OTP 클라이언트(20)에 일회용 비밀번호를 요청한다(S52).Next, the
다음으로, 스마트 단말(10)는 OTP 클라이언트(20)를 실행시키거나, 또는 OTP 클라이언트(20)가 직접 일회용 비밀번호를 생성하여(S61), 서비스 서버(50) 또는 인증 서버(30)에 전송한다(S62).Next, the
이때, 수학식 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 클라이언트(20)는 제1 비밀번호를 전송할 때, 해당 제1 비밀번호에 대응되는 고유 아이디를 함께 전송한다.Meanwhile, preferably, when transmitting the first password, the
다음으로, 인증 서버(30)는 제1 비밀번호(또는 제1 비밀번호 및 고유 아이디)를 수신하고, 제2 비밀번호를 생성한다(S71). 제2 비밀번호는 고유 아이디에 해당하는 시크릿 키를 이용하여 생성된다. 제2 비밀번호는 다음 [수학식 7]과 같이 생성될 수 있다.Next, the
[수학식 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
다음으로, 인증 서버(30)는 제1 및 제2 비밀번호를 비교하여, 수신한 제1 비밀번호를 검증한다(S72). 즉, 제1 및 제2 비밀번호가 동일하면, 해당 인증(또는 검증)이 통과된다.Next, the
다음으로, 인증 서버(30)는 검증결과 또는 인증결과를 서비스 서버(50) 또는 OTP 클라이언트(20)에 전송한다(S73).Next, the
다음으로, 본 발명의 제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
이 경우, 고유 아이디는 서비스 아이디를 사용하지 않고, 사용자 아이디와 파라미터만 이용하여 생성될 수 있다.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
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.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)
(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.
상기 (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.
상기 파라미터는 시간적 요소에 의한 매개변수인 것을 특징으로 하는 동적 공유 시크릿 분배 방식의 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.
상기 (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.
상기 (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.
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)
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)
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)
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 |
-
2019
- 2019-07-01 KR KR1020190078869A patent/KR102274285B1/en active IP Right Grant
Patent Citations (5)
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)
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 |