KR20210006782A - An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client - Google Patents

An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client Download PDF

Info

Publication number
KR20210006782A
KR20210006782A KR1020190082820A KR20190082820A KR20210006782A KR 20210006782 A KR20210006782 A KR 20210006782A KR 1020190082820 A KR1020190082820 A KR 1020190082820A KR 20190082820 A KR20190082820 A KR 20190082820A KR 20210006782 A KR20210006782 A KR 20210006782A
Authority
KR
South Korea
Prior art keywords
otp
offset
time
client
seed
Prior art date
Application number
KR1020190082820A
Other languages
Korean (ko)
Other versions
KR102242720B1 (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 KR1020190082820A priority Critical patent/KR102242720B1/en
Publication of KR20210006782A publication Critical patent/KR20210006782A/en
Application granted granted Critical
Publication of KR102242720B1 publication Critical patent/KR102242720B1/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/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/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • 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 setting method of a unique time scheme through an active time offset window for each client, which comprises the steps of: (a) requesting, by a service server, an authentication server for registration of an OTP device for an accessed user; (b) generating, by the authentication server, a unique ID and a secret key to register the same in an OTP device list, and setting a time offset as a default value; (c) transmitting, by the authentication server, OTP device information including the unique ID and the secret key to an OTP client; (d) extracting, by the OTP client, the unique ID and the secret key from the OTP device information; (e) generating, by the OTP client, a first offset seed, and generating a first time offset from the first offset seed; (f) transmitting, by the OTP client, the first offset seed to the authentication server; and (g) generating, by the authentication server, the first time offset using the first offset seed, and setting a corresponding time offset of the OTP device list as the first time offset. According to the present invention, an offset of time information on each OTP device is differently set for each device, such that OTP security can be further strengthened.

Description

클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법 { An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client }OTP configuration method of setting time seed with unique cycle by using active time offset window per each client}

본 발명은 시크릿키와 시각(time) 정보로 시드(seed)를 생성하여 OTP 값을 생성하되, 시각 정보를 현재 시각에 오프셋(offset)을 적용하여 설정하고, 오프셋(offset)을 각 디바이스마다 다르게 설정하는, 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법에 관한 것이다.In the present invention, a seed is generated with a secret key and time information to generate an OTP value, but the time information is set by applying an offset to the current time, and the offset is different for each device. The present invention relates to a method of setting OTP of a unique time method through an active time offset window for each client.

일반적으로, 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에서는 시각(time) 정보를 입력 값으로 하는 TOTP(Time-based One Time Password) 방식이 있으며, 동기화된 이벤트(event)를 사용하는 이벤트 방식이 있다. 즉, OTP를 생성하는 경우, 공유하는 시크릿(Secret)과 현재의 시각 또는 이벤트 번호를 조합하여 입력하고 생성한다. 서버와 스마트 OTP 클라이언트는 동일한 시크릿(Secret)를 가져야 하며, 서버는 클라이언트에게 시크릿(Secret)을 전송하여야 한다.In smart OTP, there is a Time-based One Time Password (TOTP) method that uses time information as an input value, and there is an event method that uses a synchronized event. In other words, when creating an OTP, the shared secret and the current time or event number are input 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.

종래 기술에 따른 방법은 시각 정보를 바꿀 수 없는 정보로 간주하므로, 서버와 클라이언트 간의 시각 동기가 매우 중요한 요소였다. 그런데 OTP 동글(Dongle)은 저렴한 진동소자를 사용하고 있기 때문에 시각이 편차(Drift) 될 수 있다. 이를 보완하기 위해서, 서버에서 동일하게 허용 한도 내의 특정 시각대에서, OTP 클라이언트가 잘못된 값을 올리게 되면, 서버에서 시각정보를 변경하는 기술이 제시되고 있다[특허문헌 3]. 이러한 방법은 서버에 종속되어 일부 오류를 수정하기 위한 것이다. 즉, 이 방식은 적극적인 사용자 의지에 따른 각각 다른 클라이언트들이 자기의 시간대를 가지는 것이 아니다. Since the method according to the prior art regards visual information as information that cannot be changed, visual synchronization between the server and the client was a very important factor. However, since the OTP Dongle uses an inexpensive vibrating element, the time may be drifted. In order to compensate for this, when the OTP client raises an incorrect value at a specific time zone within the same allowable limit in the server, a technology for changing the time information in the server has been proposed [Patent Document 3]. This method is server dependent and is intended to correct some errors. In other words, this method does not allow different clients to have their own time zone according to the active user will.

종래의 기술에서 OTP를 생성할 때 주요한 정보인 시각정보는 각 디바이스(Device)마다 동일하다. 따라서 이 시각 정보가 트리거(Trigger) 역할을 할 뿐이지, OTP 값에 지대하게 영향을 미치는 요소는 아니다. 즉, NTP(네트워크 타임 프로토콜, network time protocol) 등을 통해서 시각 동기화가 된다. 따라서 시각 정보는 해커 등 공격자에게 해킹을 하거나, 수고를 통해서 얻어야 되는 정보가 아니다.In the conventional technology, when OTP is generated, the main information, the time information, is the same for each device. Therefore, this visual information only serves as a trigger, but it is not a factor that significantly affects the OTP value. That is, time synchronization is performed through NTP (network time protocol) or the like. Therefore, visual information is not information that must be obtained through hacking or hard work to attackers such as hackers.

다시 말하면, 기존의 시각 동기 기반의 OTP에서는 시각 정보가 중요한 정보가 아니며, 이미 공유되어 있는 정보로서만 의미를 갖는다. 따라서, 이 시각 정보를 통해서 추가적인 보안을 얻을 수는 없고, 서버와 클라이언트간의 동기화를 통해서 단지 주기를 맞추는 역할을 한다.In other words, in the existing OTP based on visual synchronization, visual information is not important information, and has meaning only as information that is already shared. Therefore, it is not possible to obtain additional security through this visual information, and it plays the role of just matching the cycle through synchronization between the server and the client.

그러나 각 디바이스(Device) 마다 다르게 시각을 가지고 있다면, 공격자는 이러한 시각 정보를 획득하기 위하여, 추가적인 수고를 해야 한다. 즉, 각 디바이스별로 다른 시각 정보는 OTP 디바이스의 해킹을 어렵게 만들 수 있으며, 이를 통해 보안성을 높일 수 있을 것이다.However, if each device has a different view, the attacker has to do additional work to obtain such visual information. In other words, different visual information for each device may make it difficult to hack the OTP device, and through this, security may be improved.

한국 공개특허공보 제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) 한국 등록특허공보 제10-1494313호(2015.02.23.공고)Korean Registered Patent Publication No. 10-1494313 (announced on February 23, 2015)

본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 시크릿키와 시각(time) 정보로 시드(seed)를 생성하여 OTP 값을 생성하되, 시각 정보를 현재 시각에 오프셋(offset)을 적용하여 설정하고, 오프셋(offset)을 각 디바이스마다 다르게 설정하는, 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법을 제공하는 것이다.An object of the present invention is to solve the above-described problems, and generate an OTP value by generating a seed with a secret key and time information, but applying an offset to the current time It is to provide a method of setting an OTP of a unique time method through an active time offset window for each client in which an offset is set differently for each device.

상기 목적을 달성하기 위해 본 발명은 사용자 단말에 설치되는 OTP 클라이언트, 서비스 서버, 및, 인증 서버가 네트워크를 통해 연결되는, 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법에 관한 것으로서, (a) 상기 서비스 서버가 접속된 사용자에 대한 OTP 디바이스 등록을 상기 인증 서버에 요청하는 단계; (b) 상기 인증 서버는 고유 아이디 및 시크릿키를 생성하여 OTP 디바이스 목록에 등록하되, 시각 오프셋을 디폴트 값으로 설정하는 단계; (c) 상기 인증 서버는 상기 고유 아이디 및 시크릿키를 포함하는 OTP 디바이스 정보를 상기 OTP 클라이언트에 전송하는 단계; (d) 상기 OTP 클라이언트는 상기 OTP 디바이스 정보로부터 고유 아이디 및 시크릿키를 추출하는 단계; (e) 상기 OTP 클라이언트는 제1 오프셋 시드를 생성하고, 상기 제1 오프셋 시드로부터 제1 시각 오프셋을 생성하는 단계; (f) 상기 OTP 클라이언트는 상기 제1 오프셋 시드를 상기 인증서버로 전송하는 단계; 및, (g) 상기 인증 서버는 상기 제1 오프셋 시드를 이용하여 제1 시각 오프셋을 생성하고, 상기 제1 시각 오프셋으로 상기 OTP 디바이스 목록의 해당 시각 오프셋을 설정하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to a method for setting OTP in a unique time system through an active time offset window for each client, in which an OTP client installed in a user 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 generating a unique ID and a secret key and registering it in the OTP device list, setting a time offset as a default value; (c) the authentication server transmitting OTP device information including the unique ID and secret key to the OTP client; (d) the OTP client extracting a unique ID and secret key from the OTP device information; (e) the OTP client generating a first offset seed, and generating a first time offset from the first offset seed; (f) the OTP client transmitting the first offset seed to the authentication server; And, (g) the authentication server generating a first time offset by using the first offset seed, and setting a corresponding time offset of the OTP device list as the first time offset. .

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 (g)단계에서, 상기 인증 서버는 상기 OTP 클라이언트에 일회용 비밀번호를 요청하여 수신하고, 생성된 시각 오프셋을 이용하여 상기 OTP 디바이스의 일회용 비밀번호를 생성하고, 생성된 비밀번호와 수신한 비밀번호를 대비하여, 상기 시각 오프셋을 검증하는 것을 특징으로 한다.In addition, the present invention is a dynamic shared secret distribution method of OTP security management, in the step (g), the authentication server requests and receives a one-time password from the OTP client, and uses the generated time offset to receive the OTP A one-time password of the device is generated, and the time offset is verified by comparing the generated password with the received password.

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 인증 서버 또는 상기 OTP 클라이언트는 현재 시각에 상기 시각 오프셋을 더하여 시각 시드값을 생성하고, 상기 시크릿키와 상기 시각 시드값을 조합한 값으로 시드로 설정하여, 난수발생기로 난수를 발생시켜 일회용 비밀번호를 생성하는 것을 특징으로 한다.In addition, in the present invention, in the OTP security management method of the dynamic shared secret distribution method, the authentication server or the OTP client generates a time seed value by adding the time offset to the current time, and calculates the secret key and the time seed value. The combined value is set as a seed, and a random number is generated by a random number generator to generate a one-time password.

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 시각 오프셋은 상기 오프셋 시드를 시드로 하여 난수발생기에 의해 발생된 난수인 것을 특징으로 한다.In addition, in the OTP security management method of the dynamic shared secret distribution method, the present invention is characterized in that the time offset is a random number generated by a random number generator using the offset seed as a seed.

또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 방법은, (h1) 상기 OTP 클라이언트는 상기 인증 서버에 접속하는 단계; (h2) 상기 인증 서버는 상기 OTP 클라이언트에 대해 상기 OTP 디바이스에 의한 OTP 인증을 수행하는 단계; (h3) OTP 인증이 통과되면, 상기 OTP 클라이언트는 오프셋 시드(이하 제2 오프셋 시드)를 생성하고, 상기 제2 오프셋 시드를 상기 인증 서버로 전송하는 단계; (h4) 상기 인증 서버는 상기 제2 오프셋 시드를 이용하여 제2 시각 오프셋을 생성하고, 상기 제2 시각 오프셋으로 상기 OTP 디바이스 목록의 해당 시각 오프셋을 갱신하는 단계를 포함하는 것을 특징으로 한다.In addition, the present invention provides a dynamic shared secret distribution method of OTP security management, the method comprising: (h1) connecting the OTP client to the authentication server; (h2) the authentication server performing OTP authentication by the OTP device for the OTP client; (h3) when the OTP authentication passes, the OTP client generates an offset seed (hereinafter referred to as a second offset seed), and transmits the second offset seed to the authentication server; (h4) The authentication server comprises the step of generating a second time offset by using the second offset seed, and updating a corresponding time offset of the OTP device list with the second time offset.

상술한 바와 같이, 본 발명에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법에 의하면, 각 OTP 디바이스의 시각 정보의 오프셋(offset)을 디바이스별로 달리 설정함으로써, OTP 보안을 보다 강화할 수 있는 효과가 얻어진다.As described above, according to the OTP setting method of the unique time method through the active time offset window for each client according to the present invention, the OTP security can be further strengthened by setting the offset of the time information of each OTP device differently for each device. A possible effect is obtained.

기존의 OTP 시스템에서의 시각 정보는 각 단말기 마다 동일한 값을 가지도록 설계되므로, 각 단말의 시각 정보는 공개된 정보로서 보안을 유지하는데 중요한 가치를 지니지 아니하였다. 본 발명은 각각의 단말이 다른 시각 정보를 가지고 동작을 하도록 구성함으로써, 시각 정보가 공개되지 않은 개인의 정보로서 가치를 지니게 된다. 즉, 이 시각 정보를 통해서 생성되는 OTP 값은 보다 높은 수준의 보안을 가질 수 있게 된다.Since the visual information in the existing OTP system is designed to have the same value for each terminal, the visual information of each terminal is public information and has no important value in maintaining security. According to the present invention, since each terminal is configured to operate with different visual information, the visual information has value as personal information that is not disclosed. That is, the OTP value generated through this visual information can have a higher level of security.

또한 기존의 서버에만 의존하여 동기화 되었던 클라이언트들이 능동적으로 보안의 파라미터(Parameter)를 변경함으로써, 해커들에게 더욱 복잡하고 귀찮은 시스템이 될 수 있다. 또한, 이렇게 함으로써 보안의 강도는 높아지게 된다. 즉, 정성적으로, 사용자가 보안의 주체가 됨으로써 자기의 보안을 높일 수 있으며, 사용자가 직접 참여하게 함으로써 주도적으로 2차 인증이나 보안성을 높일 수 있다.In addition, clients that have been synchronized by relying only on the existing server can actively change security parameters, making it a more complex and cumbersome system for hackers. Also, by doing this, the strength of the security is increased. That is, qualitatively, the user can increase his/her security by being the subject of security, and by allowing the user to directly participate, it is possible to proactively increase secondary authentication or security.

도 1은 종래기술에 따른 모바일용 OTP 이용방식에 대한 예시도.
도 2는 본 발명을 실시하기 위한 전체 시스템의 구성도.
도 3은 본 발명의 일실시예에 따른 스마트 단말의 구성에 대한 블록도.
도 4는 본 발명의 일실시예에 따른 OTP 디바이스 목록에 대한 예시 표.
도 5는 본 발명의 제1 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 디바이스 등록 방법을 설명하는 흐름도.
도 6은 본 발명의 본 발명의 제2 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 인증 방법을 설명하는 흐름도.
도 7은 본 발명의 제3 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 오프셋 갱신 방법을 설명하는 흐름도.
도 8은 본 발명의 제4 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 디바이스 정보 다운로드 방법을 설명하는 흐름도.
1 is an exemplary diagram for a method of using OTP for mobile according to the prior art.
2 is a block diagram of an entire system for implementing the present invention.
3 is a block diagram of a configuration of a smart terminal according to an embodiment of 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 in a unique time system through an active time offset window for each client according to the first embodiment of the present invention.
6 is a flowchart illustrating a method of authenticating OTP using a unique time method through an active time offset window for each client according to a second embodiment of the present invention.
7 is a flowchart illustrating a method of updating an offset of a unique time method through an active time offset window for each client according to a third embodiment of the present invention.
8 is a flowchart illustrating a method of downloading OTP device information in a unique time method through an active time offset window for each client according to a fourth 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.

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

도 2에서 보는 바와 같이, 본 발명의 일실시예에 따른 전체 시스템은 스마트 단말(10)에 설치되어 OTP 일회용 비밀번호를 생성하는 OTP 클라이언트(20), 및, OTP 일회용 비밀번호를 검증하여 사용자 인증을 수행하는 인증 서버(30)로 구성된다. 또한, 사용자에게 서비스를 제공하는 서비스 서버(50)를 더 포함하여 구성된다.As shown in FIG. 2, the entire system according to an embodiment of the present invention performs user authentication by verifying the OTP one-time password and the 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.

도 3에서 보는 바와 같이, 스마트 단말(10)은 이미지를 촬영할 수 있는 카메라(11), 이미지 또는 영상 등의 출력을 표시할 수 있는 디스플레이(12), 터치스크린 등 입력장치(13), 자이로스코프 등 단말의 회전이나 이동을 감지하는 움직임 센서(14), 외부와 통신을 수행하는 통신부(15), 및, 어플 등을 설치하여 실행시킬 수 있는 중앙처리장치(18)로 구성된다.As shown in FIG. 3, the smart terminal 10 includes a camera 11 capable of capturing an image, a display 12 capable of displaying an output such as an image or image, an input device 13 such as a touch screen, and a gyroscope. It consists of a motion sensor 14 that detects rotation or movement of the terminal, a communication unit 15 that communicates with the outside, and a central processing unit 18 that can install and execute an application.

특히, 움직임 센서(14)는 사용자가 단말을 흔들면 그에 대한 움직임 값을 획득한다.In particular, when the user shakes the terminal, the motion sensor 14 acquires a motion value for the user.

다음으로, 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 디바이스를 인증 서버(30)에 등록하고, 해당 OTP 디바이스의 시크릿키와 고유 아이디(ID)를 분배받는다.The OTP client 20 registers the OTP device with the authentication server 30, and receives a secret key and a unique ID (ID) of the corresponding OTP device.

OTP 디바이스는 일회용 비밀번호를 생성하는 하나의 디바이스 역할을 하는 객체이다. OTP 클라이언트(20)는 다수의 OTP 디바이스를 등록하고 관리할 수 있다. 일례로서, OTP 디바이스는 각 사용자가 서비스 서버(50) 별로 생성될 수 있다. 다른 실시예로서, OTP 클라이언트(20)가 하나의 OTP 디바이스만 등록하도록 제한되는 경우, OTP 클라이언트 자체가 OTP 디바이스로서 역할을 할 수 있다.The OTP device is an object that acts as a device that creates a one-time password. The OTP client 20 may register and manage a plurality of OTP devices. As an example, in the OTP device, each user may be created for each service server 50. As another embodiment, when the OTP client 20 is limited to register only one OTP device, the OTP client itself may serve as an OTP device.

각 OTP 디바이스는 고유의 시크릿키를 가지고 있고, 고유 아이디로 식별된다. 시크릿 키는 OTP 클라이언트(20)와 인증 서버(50)가 서로 분배하여 공유하는 키로서, 일회용 비밀번호를 생성하는 시드(seed)에 활용된다. 시크릿 키는 각 OTP 클라이언트 또는 OTP 디바이스 별로 각기 달리 설정된다.Each OTP device has a unique secret key and is identified by a unique ID. The secret key is a key distributed and shared by the OTP client 20 and the authentication server 50, and is used as a seed for generating a one-time password. The secret key is set differently for each OTP client or OTP device.

또한, 고유 아이디는 시크릿 키 또는 OTP 디바이스를 식별하기 위한 식별정보이다. 바람직하게는, 사용자 아이디와 서비스 서버의 아이디(이하 서비스 아이디)를 이용하여, 고유 아이디가 생성된다.In addition, the unique ID is a secret key or identification information for identifying the OTP device. Preferably, a unique ID is generated using the user ID and the ID of the service server (hereinafter, service ID).

또한, OTP 클라이언트(20)는 시각 정보의 오프셋(이하 오프셋 또는 시각 오프셋) 또는 오프셋 시드를 생성하고, 생성된 오프셋(또는 시각 오프셋) 또는 오프셋 시드를 인증 서버(30)에 전송하여, 해당 OTP 디바이스의 오프셋(또는 시각 오프셋)을 설정하거나 갱신한다.In addition, the OTP client 20 generates an offset (hereinafter, offset or time offset) or an offset seed of the time information, transmits the generated offset (or time offset) or an offset seed to the authentication server 30, and transmits the corresponding OTP device. Set or update the offset (or time offset) of.

오프셋은 현재 시각에 더해지는 값이다. 즉, 현재 시각에 오프셋을 더하여, 일회용 비밀번호 생성에 이용되는 시각 값(이하 시각 시드값)을 구한다. 특히, 시크릿키와 시각 시드값을 조합하여 시드(이하 OTP 시드)를 생성하고, OTP 시드로 난수를 발생시켜 일회용 비밀번호를 생성한다. 동일한 OTP 시드로 동일한 난수 발생기를 이용하면, 동일한 일회용 비밀번호를 구할 수 있다.Offset is a value added to the current time. That is, an offset is added to the current time to obtain a time value used for generating a one-time password (hereinafter, a time seed value). In particular, a seed (hereinafter referred to as an OTP seed) is generated by combining the secret key and the time seed value, and a one-time password is generated by generating a random number using the OTP seed. If the same random number generator is used with the same OTP seed, the same one-time password can be obtained.

오프셋 시드는 오프셋을 생성하기 위한 시드(seed) 값이다. 오프셋 시드를 이용하여 난수를 발생시켜 오프셋을 생성한다. 동일한 오프셋 시드로 동일한 난수 발생기를 통해 오프셋을 구하면, 동일한 오프셋을 구할 수 있다. OTP 클라이언트(20)와 인증 서버(30)는 동일한 난수발생기(RNG)를 사전에 서로 공유한다.The offset seed is a seed value for generating an offset. An offset is generated by generating a random number using an offset seed. If the offset is obtained through the same random number generator with the same offset seed, the same offset can be obtained. The OTP client 20 and the authentication server 30 share the same random number generator (RNG) with each other in advance.

바람직하게는, OTP 디바이스가 등록될 때, 오프셋은 디폴트 값으로 등록될 수 있다. 예를 들어, 디폴트 값은 0으로 설정될 수 있다. 또는, 다른 실시예로서, OTP 디바이스가 등록될 대, OTP 클라이언트(20)가 사용자의 제스처를 입력받아 생성된 오프셋 또는 오프셋 시드를 인증 서버(30)로 전송하여 등록할 수 있다.Advantageously, when the OTP device is registered, the offset may be registered as a default value. For example, the default value may be set to 0. Alternatively, as another embodiment, when the OTP device is registered, the OTP client 20 may register by transmitting an offset or an offset seed generated by receiving a user's gesture to the authentication server 30.

또한, OTP 디바이스가 등록된 후, OTP 클라이언트(20)는 인증 서버(30)에 접속하여, 오프셋을 변경할 수 있다.Further, after the OTP device is registered, the OTP client 20 can access the authentication server 30 and change the offset.

한편, 오프셋 시드는 단말의 움직임이나 터치의 입력 등을 기초로 하여 제스처를 인식하고, 제스처 값을 시드 값으로 추출한다. 바람직하게는, 단말의 흔들기나 터치 화면의 긋는 터치를 하나의 제스처로 인식하고, 제스처가 인식되는 횟수를 오프셋 시드로 설정할 수 있다. 예를 들어, 좌우 또는 상하 등으로 한번 갖다가 다시 제자리로 돌아오는 것을 1회 흔들기의 제스처로 인식하거나, 터치 화면에서 한방향으로 긋고 다시 원래로 돌아오는 것을 1회 긋기의 제스처로 인식할 수 있다.Meanwhile, the offset seed recognizes a gesture based on a motion of a terminal or an input of a touch, and extracts a gesture value as a seed value. Preferably, the shaking of the terminal or the flicking touch of the touch screen may be recognized as one gesture, and the number of times the gesture is recognized may be set as an offset seed. For example, moving it left or right or up and down, and returning to its original position, may be recognized as a gesture of shaking once, or drawing in one direction on the touch screen and returning to the original position may be recognized as a gesture of flicking once.

또한, OTP 클라이언트(20)는 사용자 요청에 따라 해당 OTP 디바이스에 대한 비밀번호를 생성한다. 이때, OTP 클라이언트(20)는 생성된 시크릿 키 및 시각 정보(또는 시각 시드값)를 이용하여 일회용 비밀번호(OTP)를 생성한다. 이때, 시각 정보는 현재 시각에서 오프셋을 더한 값으로 설정된다.In addition, the OTP client 20 generates a password for the corresponding OTP device according to a user request. In this case, the OTP client 20 generates a one-time password (OTP) using the generated secret key and time information (or time seed value). At this time, the time information is set as a value obtained by adding an offset from the current time.

생성된 일회용 비밀번호(OTP)는 고유 아이디와 함께 인증 서버(50)로 전달되고, 인증 서버(50)에 의해 일회용 비밀번호에 대한 검증이 수행된다. OTP에 대한 검증이 성공되면, OTP에 의한 사용자 인증이 통과된 것으로 본다.The generated one-time password OTP is transmitted 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)는 시크릿 키 또는 OTP 디바이스를 등록시키고, 서비스 서버(50)의 요청에 따라 OTP(one time password, 일회용 비밀번호)를 검증한다.Next, the authentication server 30 registers the secret key or OTP device, and verifies the OTP (one time password, one-time password) according to the request of the service server 50.

인증서버(30)는 고유 아이디, 시크릿 키, 및, 오프셋을 하나의 세트로 매핑하여 OTP 디바이스로 등록한다. 앞서 설명한 바와 같이, 고유 아이디는 시크릿 키 또는 OTP 디바이스를 식별하기 위한 식별정보이다. 또한, 시크릿 키는 OTP 클라이언트(20)와 인증 서버(50)가 서로 분배되어 공유되는 키이다. 또한, 오프셋은 현재 시각에 더해지는 값이며, 현재 시각에 오프셋이 더해져서 시각 시드값이 구해진다. 시크릿 키와 시각 시드값의 조합을 시드로 하여, 일회용 비밀번호가 생성된다.The authentication server 30 maps a unique ID, a secret key, and an offset into one set and registers it as an OTP device. As described above, the unique ID is a secret key or identification information for identifying an OTP device. In addition, the secret key is a key shared by the OTP client 20 and the authentication server 50. In addition, the offset is a value added to the current time, and the time seed value is obtained by adding the offset to the current time. A one-time password is generated using the combination of the secret key and the time seed value as a seed.

바람직하게는, 도 4에서 보는 바와 같이, 인증서버(30)는 고유 아이디, 시크릿 키, 오프셋을 하나의 매핑 쌍으로 하여, 목록(이하 OTP디바이스 목록)으로 관리할 수 있다.Preferably, as shown in FIG. 4, the authentication server 30 may manage a list (hereinafter, referred to as an OTP device list) by using a unique ID, a secret key, and an offset as one mapping pair.

더욱 바람직하게는, 인증서버(30)는 고유 아이디와 시크릿 키, 오프셋 외에도 주기를 추가하여 관리할 수 있다. 주기는 일회용 비밀번호를 발생시키는 시간간격을 의미한다. 즉, 일회용 비밀번호는 시크릿 키와 시각 시드값의 조합을 이용하여 생성되는데, 이때 주기는 시각 시드값의 시간 단위를 의미한다. 따라서 주기의 시간 마다 일회용 비밀번호가 변경된다. 예를 들어, 주기가 30초이면, 생성되는 일회용 비밀번호는 30초마다 변경된다.More preferably, the authentication server 30 may manage by adding a period in addition to the unique ID, secret key, and offset. 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 time seed value, and the period means the time unit of the time seed value. 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초이면, 오프셋은 30초, 1분, 1분30초, 2분, 2분30초 등 30초 단위로 설정된다.Meanwhile, the offset is set in cycle units. That is, if the period is 30 seconds, the offset is set in units of 30 seconds, such as 30 seconds, 1 minute, 1 minute 30 seconds, 2 minutes, 2 minutes and 30 seconds.

또한, 인증서버(30)는 사용자 아이디 또는 서비스 아이디(또는 서비스 서버(50)의 아이디)를 OTP 클라이언트(20) 또는 서비스 서버(50)로부터 수신하여, 고유 아이디를 생성한다. 고유 아이디는 사전에 설정되거나, 랜덤하게 설정되거나, 시간적 요소를 이용하여 생성될 수 있다. 이하에서 설명의 편의를 위하여 시간적 요소를 이용하는 방식을 중점으로 설명한다.In addition, the authentication server 30 receives a user ID or service ID (or ID of the service server 50) from the OTP client 20 or the service server 50, and generates a unique ID. The unique ID may be set in advance, set randomly, or generated using a temporal element. Hereinafter, for convenience of explanation, a method of using temporal elements will be mainly described.

바람직하게는, 인증서버(30)는 타임스탬프 등 시간적 요소인 파라미터를 더 추가하여 고유 아이디를 생성할 수 있다. 즉, 다음 수학식 1과 같이, 인증서버(30)는 사용자 아이디와 서비스 아이디, 및, 파리미터(또는 타임스탬프)를 이용하여 고유 아이디를 생성한다.Preferably, the authentication server 30 may generate a unique ID by adding a parameter that is a temporal element such as a timestamp. That is, as shown in Equation 1 below, the authentication server 30 generates a unique ID using a user ID, a service ID, and a parameter (or timestamp).

[수학식 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.

또한, 인증서버(30)는 시크릿 키를 생성한다. 생성된 시크릿키는 OTP 클라이언트(20)와 공유된다. 이때, 시크릿키를 직접 OTP 클라이언트(20)에 전송하는 방식이나, 시크릿키를 생성할 수 있는 파라미터만을 전송하는 방식 등을 모두 이용할 수 있다. 이하에서 설명의 편의를 위하여 후자의 방식을 중점으로 설명한다.In addition, the authentication server 30 generates a secret key. The generated secret key is shared with the OTP client 20. In this case, a method of directly transmitting the secret key to the OTP client 20 or a method of transmitting only a parameter capable of generating a secret key may be used. Hereinafter, for convenience of explanation, the latter method will be mainly described.

바람직하게는, 인증서버(30)는 고유 아이디 및 파라미터를 난수발생기에 적용하여 시크릿 키를 생성할 수 있다. 즉, 고유 아이디, 파라미터, 난수발생기가 동일하면, 동일한 시크릿 키를 생성할 수 있다.Preferably, the authentication server 30 may generate a secret key by applying the unique ID and parameters to the random number generator. That is, if the unique ID, parameter, and random number generator are the same, the same secret key can be generated.

구체적으로, 다음 수학식과 같이, 인증서버(30)는 파라미터를 이용하여 난수 발생 횟수를 추출한다. 즉, 난수 발생 횟수는 난수발생을 통해 추출하되, 파라미터가 시드(seed)로 이용된다.Specifically, as shown in the following equation, the authentication server 30 extracts the number of occurrences of a random number using a parameter. 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)는 앞서와 같이 고유 아이디나 시크릿 키를 생성하기 위하여, 타임스탬프 등 파라미터를 설정할 수 있다. 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(time stamp)이다. 즉, 파라미터는 시크릿 키를 생성할 때마다(또는 OTP 디바이스를 등록할 때) 달리 설정된다.Meanwhile, the authentication server 30 may set parameters such as a time stamp to generate a unique ID or secret key as described above. The parameter is a parameter by a temporal factor, preferably a time stamp. That is, the parameters are set differently each time the secret key is generated (or when the OTP device is registered).

또한, 인증서버(30)는 OTP 클라이언트(20)로부터 직접 또는 서비스 서버(50)를 통해, 오프셋 또는 오프셋 시드를 수신하여 설정하거나 갱신한다. 바람직하게는, 인증서버(30)는 OTP 디바이스를 등록할 때 오프셋 정보(오프셋 또는 오프셋 시드)를 수신받지 못하면 디폴트 값(예를 들어 0)으로 오프셋을 설정할 수 있다. 또한, 인증서버(30)는 OTP 디바이스가 등록된 후, OTP 클라이언트(20)의 요청에 따라 오프셋을 갱신할 수 있다.In addition, the authentication server 30 receives and sets or updates an offset or an offset seed directly from the OTP client 20 or through the service server 50. Preferably, the authentication server 30 may set the offset to a default value (eg, 0) if offset information (offset or offset seed) is not received when registering the OTP device. In addition, after the OTP device is registered, the authentication server 30 may update the offset according to the request of the OTP client 20.

바람직하게는, 다음 수학식과 같이, 인증서버(30)는 오프셋 시드를 시드로 하여, 난수발생기(RNG)로 난수를 발생시켜 오프셋을 생성한다.Preferably, as shown in the following equation, the authentication server 30 generates an offset by generating a random number with the random number generator (RNG) using the offset seed as a seed.

[수학식 4][Equation 4]

Server_Offset = RNG(Offset_Seed)Server_Offset = RNG(Offset_Seed)

여기서, Server_Offset은 서버에서 생성된 오프셋을 나타내고, Offset_Seed는 오프셋 시드를 나타낸다.Here, Server_Offset represents an offset generated by the server, and Offset_Seed represents an offset seed.

한편, 인증서버(30)는 생성된 시크릿 키의 해시값을 획득하여, 해당 해시값을 시크릿 키의 검증값으로 활용할 수 있다.Meanwhile, the authentication server 30 may obtain a hash value of the generated secret key and use the hash value as a verification value of the secret key.

또한, 인증서버(30)는 고유 아이디 및 파라미터, 또는 검증값 등(이하 파라미터 등)을 OTP 클라이언트(20)로 함께 전송한다. 이때, 바람직하게는, 인증서버(30)는 파라미터 등을 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여 전송할 수 있다. 일례로서, 파라미터 등을 QR 코드로 변환하여 생성하고, 해당 QR 코드를 디스플레이에 표시한다. 그러면 사용자는 사용자 단말(10)의 카메라 등을 이용하여 QR코드를 인식하고, QR코드로부터 파라미터 등을 추출한다.In addition, the authentication server 30 transmits a unique ID and parameter, or a verification value (hereinafter, a parameter, 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 user terminal 10 and extracts parameters, etc. from the QR code.

한편, 인증서버(30)는 서비스 서버(50)로부터 시크릿 키(또는 OTP 디바이스)의 일회용 비밀번호에 대한 검증 요청(인증 요청)을 수신하면, 시크릿 키의 일회용 비밀번호(OTP)를 검증(또는 인증)하여 그 결과(또는 검증결과, 인증결과)를 회신한다.On the other hand, when the authentication server 30 receives the verification request (authentication request) for the one-time password of the secret key (or OTP device) from the service server 50, the authentication server 30 verifies (or authenticates) the one-time password (OTP) of the secret key. Then, 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 from the OTP device list, and a secret key, offset, etc. mapped to the searched unique ID is searched.

검색된 시크릿 키, 오프셋 등으로 일회용 비밀번호(OTP)를 생성하고, 생성된 일회용 비밀번호(OTP)와 수신한 일회용 비밀번호(OTP)를 대비하여, 그 동일 여부로 일회용 비밀번호를 검증(또는 인증)한다. 즉, 동일하면, 검증되는 것으로 판단한다.A one-time password (OTP) is created with the retrieved secret key, offset, etc., 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. In this case, 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 user 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 user 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), 각 OTP 디바이스의 고유 아이디, 시크릿키, 오프셋 등의 목록을 저장하는 디바이스DB(42)로 이루어진다. 그러나 상기 데이터베이스(40)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.Next, the database 40 includes a service DB 41 that stores information on a service server, and a device DB 42 that stores a list of unique IDs, secret keys, and offsets of each OTP device. 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 unique time method through an active time offset window for each client according to the first embodiment of the present invention will be described with reference to FIG. 5.

도 5에서 보는 바와 같이, 먼저, 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속한다(S11). 이때, 서비스 서버(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 (S11). At this time, the service server 50 receives a user ID from the user 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 user terminal 10 or the OTP client 20 may obtain an ID or service ID of the service server 50.

다음으로, 서비스 서버(50)는 OTP 디바이스의 등록을 인증 서버(30)에 요청한다(S12). 이때, 서비스 서버(50)는 사용자 아이디(ID)와 자신의 아이디(또는 서비스 서버의 아이디, 서비스 아이디)를 인증 서버(30)에 전송한다.Next, the service server 50 requests the authentication server 30 to register the OTP device (S12). 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.

한편, 다른 실시예로서, OTP 클라이언트(20)가 직접 인증 서버(30)에 접속하여 OTP 디바이스의 등록을 신청할 수 있다. 이 경우, 서비스 서버(50)의 중계 없이, OTP 클라이언트(20)가 인증 서버(30)의 인터페이스를 이용하여 직접 등록 작업을 수행한다.Meanwhile, as another embodiment, the OTP client 20 may directly access the authentication server 30 to request registration of the OTP device. In this case, without relaying from the service server 50, the OTP client 20 directly performs the registration operation using the interface of the authentication server 30.

다음으로, 인증 서버(30)는 고유 아이디와 시크릿 키를 생성하여 OTP 디바이스를 등록한다. 이때, 인증 서버(30)는 고유 아이디와 시크릿키를 직접 생성하거나, 파라미터를 먼저 생성한 후 이를 이용하여 고유 아이디와 시크릿 키를 생성할 수 있다. 이하에서 후자의 경우를 보다 구체적으로 설명한다.Next, the authentication server 30 registers the OTP device by generating a unique ID and a secret key. In this case, the authentication server 30 may directly generate a unique ID and a secret key, or may generate a parameter first and then use them to generate a unique ID and a secret key. Hereinafter, the latter case will be described in more detail.

즉, 인증 서버(30)는 파라미터를 설정한다. 파라미터는 시간적 요소에 의한 매개변수로서, 바람직하게는, 타임스탬프(time stamp)로 설정된다. 파라미터는 OTP 디바이스의 요청이 있을 때, 생성되므로, 각 요청마다 다른 값을 가진다.That is, the authentication server 30 sets parameters. 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)는 사용자 아이디 및 서비스 아이디, 파라미터를 이용하여 고유 아이디를 생성한다. 앞서 수학식 1을 이용하여 고유 아이디를 생성한다. 이때, OTP 클라이언트(20)가 서비스 서버(50)를 거치지 않고 직접 인증 서버(30)에 접속하는 경우, 서비스 아이디 없이 사용자 아이디를 이용하여 고유 아이디를 생성할 수 있다.Next, the authentication server 30 generates a unique ID using a user ID, a service ID, and a parameter. A unique ID is created using Equation 1 above. In this case, when the OTP client 20 directly accesses the authentication server 30 without passing through the service server 50, a unique ID may be generated using a user ID without a service ID.

다음으로, 인증 서버(30)는 고유 아이디와 파라미터를 이용하여 시크릿 키를 생성하고, 시크릿 키에 대한 검증값을 생성한다. 즉, 앞서 수학식 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. 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 디바이스 목록에 등록한다(S22). 바람직하게는, 해당 목록에 주기를 설정할 수 있다. 주기는 일회용 비밀번호를 발생시키는 시간간격을 의미한다. 특히, 시크릿 키와 현재시각의 조합으로 일회용 비밀번호를 생성하는데, 현재시각의 단위가 곧 주기이다. 시크릿 키와 현재시각이 동일하면 일회용 비밀번호는 동일하므로, 현재시각이 다르면 일회용 비밀번호는 달라진다. 따라서 주가 단위로 일회용 비밀번호가 변경된다.Next, the authentication server 30 associates the unique ID with the secret key and registers it in the OTP device list (S22). 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)는 오프셋을 디폴트 값(예를 들어, 0)으로 설정한다.Further, the authentication server 30 sets the offset to a default value (eg, 0).

결국, 도 4와 같이, OTP 디바이스 정보는 고유 아이디, 시크릿키, 오프셋, 주기 등으로 구성된다.As a result, as shown in FIG. 4, the OTP device information is composed of a unique ID, a secret key, an offset, and a period.

다음으로, 인증 서버(30)는 OTP 디바이스 정보 또는 파라미터 등을 서비스 서버(50) 또는 OTP 클라이언트(20)로 전송한다(S23). 바람직하게는, 인증 서버(30)는 주기도 함께 전송할 수 있다. 특히, 서비스 서버(50)는 파라미터 등을 수신하여 사용자 단말(10)에 전달한다.Next, the authentication server 30 transmits OTP device information or parameters to the service server 50 or the OTP client 20 (S23). Preferably, the authentication server 30 may also transmit a period. In particular, the service server 50 receives parameters and the like and transmits them to the user terminal 10.

이때, 인증 서버(30)는 OTP 디바이스 정보로서 고유 아이디와 시크릿키 등을 직접 전송하거나, 고유 아이디와 시크릿키를 생성할 수 있는 파라미터만을 전송할 수 있다. 이하에서, 파라미터를 보내는 후자의 경우를 설명한다.In this case, the authentication server 30 may directly transmit a unique ID and secret key as OTP device information, or may transmit only a parameter capable of generating a unique ID and secret key. In the following, the latter case of sending parameters will be described.

또한, 인증 서버(30)는 OTP 클라이언트(20) 또는 스마트 단말(10)과 직접 네트워크를 통해 OTP 디바이스 정보 또는 파라미터를 전송하거나, 2차원 코드를 통해 간접적으로 전달할 수 있다.In addition, the authentication server 30 may transmit OTP device information or parameters through a network directly with the OTP client 20 or the smart terminal 10, or may indirectly transmit it through a two-dimensional code.

즉, 인증 서버(30)는 파라미터 등을 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여, 2차원 코드 또는 2차원 코드 이미지를 전송할 수 있다. 2차원 코드는 바코드 등과 같이 2차원으로 형성된 코드로서, QR코드, 보이스아이(voiceye) 코드 등이다. 특히, 인증 서버(30)는 2차원 코드 변환시, 파라미터 등을 암호화 하여, 암호화된 데이터를 2차원 코드로 변환할 수 있다.That is, 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. In particular, 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차원 코드로부터 OTP 디바이스 정보 또는 파라미터 등을 추출한다. 이때, 2차원 코드의 내용이 암호화된 경우, 복호화 한 후 OTP 디바이스 정보 또는 파라미터 등을 추출한다.Also, 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 OTP device information or parameters from the captured 2D code. At this time, if the contents of the 2D code are encrypted, the OTP device information or parameters are extracted after decryption.

다음으로, OTP 클라이언트(20)는 OTP 디바이스 정보 또는 파라미터 등을 수신하면, 고유 아이디 및 시크릿 키를 추출한다(S31). 고유 아이디와 시크릿 키를 직접 수신하는 경우, 해당 2차원 코드를 디코딩하면 바로 고유 아이디와 시크릿 키를 추출할 수 있다.Next, upon receiving OTP device information or parameters, the OTP client 20 extracts a unique ID and a secret key (S31). When a unique ID and secret key are directly received, the unique ID and secret key can be extracted immediately by decoding the corresponding 2D code.

또한, 파라미터만 전송되는 경우, OTP 클라이언트(20)는 사용자 아이디 및 서비스 아이디, 파라미터를 이용하여 고유 아이디를 생성한다. 고유 아이디 생성방식은 앞서 인증 서버(30)에서 수행된 방식과 동일하다.In addition, when only parameters are transmitted, the OTP client 20 generates a unique ID using the user ID, service ID, and parameters. The unique ID generation method is the same as the method performed in the authentication server 30 above.

그리고 OTP 클라이언트(20)는 생성된 고유 아이디와 수신한 파라미터를 이용하여 시크릿 키를 생성한다. 즉, OTP 클라이언트(20)는 앞서 수학식 2와 3과 같이, 파라미터로 난수발생 횟수를 생성하고, 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시키되, 난수발생 횟수만큼 발생시켜, 시크릿 키를 획득한다. 시크릿 키 생성방식은 앞서 인증 서버(30)에서 수행된 방식과 동일하다.In addition, the OTP client 20 generates a secret key using the generated unique ID and the received parameter. 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)는 시크릿 키의 검증값을 수신하는 경우, 생성된 시크릿 키에 해시 함수를 적용하여, 해시값을 획득한다. 그리고 획득된 해시값과 수신한 검증값을 비교하여, 시크릿 키를 검증한다.Also, when receiving the verification value of the secret key, 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.

다음으로, OTP 클라이언트(20)는 오프셋 시드를 생성한다(S32). 오프셋 시드는 단말의 움직임이나 터치의 입력 등을 기초로 하여 제스처를 인식하고, 제스처 값을 시드 값으로 추출한다. 바람직하게는, 단말의 흔들기나 터치 화면의 긋는 터치를 하나의 제스처로 인식하고, 제스처가 인식되는 횟수를 오프셋 시드로 설정할 수 있다.Next, the OTP client 20 generates an offset seed (S32). The offset seed recognizes a gesture based on a motion of a terminal or a touch input, and extracts the gesture value as a seed value. Preferably, the shaking of the terminal or the flicking touch of the touch screen may be recognized as one gesture, and the number of times the gesture is recognized may be set as an offset seed.

더욱 바람직하게는, OTP 클라이언트(20)는 사용자 단말(10)을 통해, 화면 상에서 “단말을 힘차게 흔들어 주세요”, “단말기의 화면을 랜덤하게 세번 꾹 꾹 눌러주세요” 등 제스처 요청 메시지를 표시한다. 이때, 사용자가 사용자 단말(10)을 이용한 제스처 동작을 취하면, 사용자 단말(10)에서 인식된 제스처의 인식값이 오프셋 시드가 된다.More preferably, the OTP client 20 displays a gesture request message on the screen through the user terminal 10, such as "Please shake the terminal vigorously" and "Please press and hold the terminal screen randomly three times." At this time, when the user performs a gesture operation using the user terminal 10, the recognition value of the gesture recognized by the user terminal 10 becomes an offset seed.

바람직하게는, OTP 클라이언트(20)는 오프셋 시드를 생성하기 위한 방식(예를 들어, 단말 흔들기 또는 터치 입력 등)을 스마트 단말(10)을 통해 사용자에 요청하고, 스마트 단말(10)을 통해 입력된 제스처의 횟수를 감지한다.Preferably, the OTP client 20 requests a method for generating an offset seed (eg, shaking the terminal or inputting a touch) from the user through the smart terminal 10 and inputting through the smart terminal 10 The number of gestures made is detected.

다음으로, OTP 클라이언트(20)는 오프셋 시드로 오프셋을 생성한다(S33).Next, the OTP client 20 generates an offset as an offset seed (S33).

바람직하게는, 다음 수학식과 같이, OTP 클라이언트(20)는 오프셋 시드를 시드로 하여, 난수발생기(RNG)로 난수를 발생시켜 오프셋을 생성한다.Preferably, as shown in the following equation, the OTP client 20 generates an offset by generating a random number with the random number generator (RNG) using the offset seed as a seed.

[수학식 6][Equation 6]

Client_Offset = RNG(Offset_Seed)Client_Offset = RNG(Offset_Seed)

여기서, Client_Offset은 클라이언트에서 생성된 오프셋을 나타내고, Offset_Seed는 오프셋 시드를 나타낸다.Here, Client_Offset represents an offset generated by the client, and Offset_Seed represents an offset seed.

다음으로, OTP 클라이언트(20)는 생성된 오프셋 또는 오프셋 시드를 인증 서버(30)로 전송한다(S34).Next, the OTP client 20 transmits the generated offset or offset seed to the authentication server 30 (S34).

다음으로, 인증 서버(30)는 오프셋 시드를 수신하여 오프셋을 생성한다(S41). 앞서 수학식 4를 이용하여, 오프셋 시드를 시드로 하여 난수 발생기(RNG)로 난수를 발생시켜 오프셋을 생성한다.Next, the authentication server 30 generates an offset by receiving the offset seed (S41). Using Equation 4 above, the offset seed is used as a seed to generate a random number by a random number generator (RNG) to generate an offset.

다음으로, 바람직하게는, 인증 서버(30)는 오프셋을 검증한다(S42).Next, preferably, the authentication server 30 verifies the offset (S42).

오프셋 검증 단계(S42)는 2가지 실시예로 구분된다.The offset verification step S42 is divided into two embodiments.

먼저, 제1-1 실시예는 인증 서버(30)와 OTP 클라이언트(20)가 온라인으로 연결되는 경우에 적용된다. 즉, 인증 서버(30)는 OTP 클라이언트(20)에 일회용 비밀번호를 요청하여, OTP 클라이언트(20)로부터 일회용 비밀번호를 수신한다. 그리고 인증 서버(30)는 자신이 생성한 오프셋을 이용하여 일회용 비밀번호를 산출하고, 산출된 비밀번호와 수신한 비밀번호를 대비하여 검증한다. 즉, 동일하면 검증이 통과된 것으로 판단한다.First, the embodiment 1-1 is applied when the authentication server 30 and the OTP client 20 are connected online. That is, the authentication server 30 requests the one-time password from the OTP client 20 and receives the one-time password from the OTP client 20. In addition, the authentication server 30 calculates a one-time password by using the offset generated by itself, and verifies the calculated password and the received password. That is, if it is the same, it is determined that the verification has passed.

다음으로, 제1-2 실시예는 인증 서버(30)와 OTP 클라이언트(20)가 오프 라인 상태에서도 적용될 수 있다. 즉, 인증 서버(30)는 자신이 생성한 오프셋을 이용하여 일회용 비밀번호를 생성한다. 그리고 인증 서버(30)는 생성한 일회용 비밀번호를 화면 상(예를 들어, 웹 상의 화면 등)에 표시하고, 화면에 표시된 일회용 비밀번호와, OTP 클라이언트(20)에 의해 생성하는 일회용 비밀번호의 동일 여부에 대한 확인을 요청한다. 즉, 사용자는 OTP 클라이언트(20)를 통해 일회용 비밀번호를 생성하고, 생성된 일회용 비밀번호와 화면상 비밀번호를 대비하고 동일 여부를 화면 상에 입력한다. 인증 서버(30)는 동일한 것으로 입력되면, 오프셋이 검증된 것으로 판단한다.Next, the 1-2 embodiment can be applied even when the authentication server 30 and the OTP client 20 are offline. That is, the authentication server 30 generates a one-time password using the offset generated by it. In addition, the authentication server 30 displays the generated one-time password on a screen (eg, a screen on the web, etc.), and determines whether the one-time password displayed on the screen and the one-time password generated by the OTP client 20 are the same. Ask for confirmation. That is, the user generates a one-time password through the OTP client 20, compares the generated one-time password with the on-screen password, and inputs whether the same or not on the screen. If the authentication server 30 is input as the same, it determines that the offset has been verified.

다음으로, OTP 클라이언트(20)는 OTP 디바이스 정보에 오프셋을 추가하여 저장한다(S35). 이때, OTP 클라이언트(20)는 인증 서버(30)로부터 검증 결과를 수신하여, 검증이 통과된 경우에만, 오프셋을 추가하여 저장한다.Next, the OTP client 20 adds and stores the offset to the OTP device information (S35). At this time, the OTP client 20 receives the verification result from the authentication server 30, and only when the verification passes, adds an offset and stores it.

또한, 인증 서버(30)도 검증이 통과되면, 해당 오프셋을 해당 OTP 디바이스 목록에서 해당 OTP 디바이스 정보로서 추가한다.In addition, when the verification is passed, the authentication server 30 also adds the corresponding offset as the OTP device information in the OTP device list.

다음으로, 본 발명의 제2 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 인증 방법을 도 6을 참조하여 설명한다.Next, an OTP authentication method using a unique time method through an active time offset window for each client according to a second embodiment of the present invention will be described with reference to FIG. 6.

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

다음으로, 서비스 서버(50)는 OTP 인증을 위해, 인증 서버(50)와 OTP 인증을 개시한다(S61). 이때, 서비스 서버(50)는 인증 서버(50)의 OTP 인증을 위한 인터페이스를 이용할 수 있다. 그리고 서비스 서버(50) 또는 인증 서버(50)는 사용자 또는 사용자 단말(10), OTP 클라이언트(20)에 일회용 비밀번호를 요청한다(S62).Next, the service server 50 starts OTP authentication with the authentication server 50 for OTP authentication (S61). 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 user terminal 10 or the OTP client 20 (S62).

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

이때, 수학식 7과 같이, OTP 클라이언트(20)는 현재 시각에 오프셋을 더하여 시각 시드값을 산출하고, 시크릿 키와 시각 시드값을 이용하여 일회용 비밀번호 OTP를 생성한다. 즉, 시크릿 키와 시각 시드값이 동일하면, 동일한 일회용 비밀번호를 얻을 수 있다. At this time, as shown in Equation 7, the OTP client 20 calculates a time seed value by adding an offset to the current time, and generates a one-time password OTP using the secret key and the time seed value. That is, if the secret key and the time seed value are the same, the same one-time password can be obtained.

[수학식 7][Equation 7]

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

OTP_Client는 클라이언트에서 생성한 일회용 비밀번호(이하 제1 비밀번호)이고, GetCurrentTime()은 현재시각을 얻는 함수이고, Client_Offset은 OTP 클라이언트에서 보관되는 오프셋이다. 또한, GenerateOTP()는 일방향 함수이거나 일대일 대응 함수로서, 동일한 입력값에 대해 동일한 출력값을 출력한다.OTP_Client is a one-time password generated by the client (hereinafter, the first password), GetCurrentTime() is a function that gets the current time, and Client_Offset is an offset stored in the OTP client. 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 비밀번호를 생성한다(S81). 제2 비밀번호는 고유 아이디에 해당하는 시크릿 키를 이용하여 생성된다. 제2 비밀번호는 다음 [수학식 8]과 같이 생성될 수 있다.Next, the authentication server 30 receives a first password (or a first password and a unique ID) and generates a second password (S81). The second password is generated using a secret key corresponding to the unique ID. The second password may be generated as follows [Equation 8].

[수학식 8][Equation 8]

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

여기서, OTP_Server는 제2 비밀번호로서, 인증 서버(30)에서 생성된 일회용 비밀번호이고, Server_Offset은 인증 서버(30)에서 보관되는 오프셋이다.Here, OTP_Server is a second password, which is a one-time password generated by the authentication server 30, and Server_Offset is an offset stored in the authentication server 30.

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

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

다음으로, 본 발명의 제3 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 오프셋 갱신 방법을 도 7을 참조하여 설명한다.Next, a method of updating an offset of a unique time method through an active time offset window for each client according to a third embodiment of the present invention will be described with reference to FIG. 7.

도 7에서 보는 바와 같이, 먼저, 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속한다(S111). 이때, 바람직하게는, 서비스 서버(50)는 아이디와 패스워드 등에 의한 1차 사용자 인증을 수행할 수 있다(S112).As shown in FIG. 7, first, the smart terminal 10 or the OTP client 20 accesses the service server 50 (S111). At this time, preferably, the service server 50 may perform primary user authentication based on an ID and a password (S112).

다음으로, 인증 서버(30)는 OTP 클라이언트(20)에 대하여 OTP 사용자 인증을 수행한다(S120). 이때 사용자 인증 과정은 앞서 OTP 인증 방법에 의해 수행된다. 즉, OTP 클라이언트(20)는 현재시각에 오프셋을 더하여 시각 시드값을 산출하고, 시크릿키와 시각 시드값의 조합을 시드로 하여, 난수발생기를 통해 난수를 발생시켜 일회용 비밀번호를 획득한다. OTP 클라이언트(20)는 일회용 비밀번호를 인증 서버(30)로 전송한다. 인증 서버(30)는 자신이 저장한 OTP 디바이스 정보를 이용하여 일회용 비밀번호를 생성한다. 이때 시각 시드값은 현재 시각에 서버의 오프셋(저장된 오프셋)을 더하여 산출된다. 그리고 생성된 비밀번호와 수신한 비밀번호를 대비하여 OTP 인증을 수행한다.Next, the authentication server 30 performs OTP user authentication with respect to the OTP client 20 (S120). At this time, the user authentication process is previously performed by the OTP authentication method. That is, the OTP client 20 calculates a time seed value by adding an offset to the current time, uses a combination of the secret key and the time seed value as a seed, and generates a random number through the random number generator to obtain a one-time password. The OTP client 20 transmits a one-time password to the authentication server 30. The authentication server 30 generates a one-time password using the OTP device information stored therein. At this time, the time seed value is calculated by adding the server offset (stored offset) to the current time. And it performs OTP authentication by comparing the generated password and the received password.

다음으로, 인증 서버(30)는 OTP 인증이 통과되면, 오프셋 갱신 작업을 개시한다(S131). 즉, 인증 서버(30)는 OTP 클라이언트(20) 또는 서비스 서버(50)에 오프셋 시드를 요청한다(S132).Next, when the OTP authentication passes, the authentication server 30 starts an offset update operation (S131). That is, the authentication server 30 requests an offset seed from the OTP client 20 or the service server 50 (S132).

다음으로, OTP 클라이언트(20)는 오프셋 시드를 생성한다(S141). 오프셋 시드는 단말의 움직임이나 터치의 입력 등을 기초로 하여 제스처를 인식하고, 제스처 값을 시드 값으로 추출한다.Next, the OTP client 20 generates an offset seed (S141). The offset seed recognizes a gesture based on a motion of a terminal or a touch input, and extracts the gesture value as a seed value.

다음으로, OTP 클라이언트(20)는 오프셋 시드로 오프셋을 생성한다(S142). 바람직하게는, 앞서 수학식 6과 같이, OTP 클라이언트(20)는 오프셋 시드를 시드로 하여, 난수발생기(RNG)로 난수를 발생시켜 오프셋을 생성한다.Next, the OTP client 20 generates an offset as an offset seed (S142). Preferably, as shown in Equation 6 above, the OTP client 20 generates an offset by generating a random number with the random number generator (RNG) using the offset seed as a seed.

다음으로, OTP 클라이언트(20)는 생성된 오프셋 또는 오프셋 시드를 인증 서버(30)로 전송한다(S143).Next, the OTP client 20 transmits the generated offset or offset seed to the authentication server 30 (S143).

다음으로, 인증 서버(30)는 오프셋 시드를 수신하여 오프셋을 생성한다(S151). 앞서 수학식 4를 이용하여, 오프셋 시드를 시드로 하여 난수 발생기(RNG)로 난수를 발생시켜 오프셋을 생성한다.Next, the authentication server 30 generates an offset by receiving the offset seed (S151). Using Equation 4 above, the offset seed is used as a seed to generate a random number by a random number generator (RNG) to generate an offset.

다음으로, 바람직하게는, 인증 서버(30)는 오프셋을 검증한다(S152).Next, preferably, the authentication server 30 verifies the offset (S152).

오프셋 검증 단계(S152)는 앞서 제1 실시예의 오프셋 검증 단계(S42)와 같이, 2가지 실시예로 구분된다. 즉, 하나의 실시예는 온라인으로 연결된 경우, 인증 서버(30)가 OTP 클라이언트(20)에 일회용 비밀번호를 요청하여, 자신이 생성한 비밀번호와 대비하고 동일 여부를 판단한다. 다른 실시예는 오프 라인에도 적용되는 경우로서, 인증 서버(30)가 일회용 비밀번호를 생성하여 표시하고, OTP 클라이언트(20)에서 생성된 일회용 비밀번호와의 동일 여부를 입력받아 검증한다.The offset verification step S152 is divided into two embodiments, as in the offset verification step S42 of the first embodiment. That is, in one embodiment, when connected online, the authentication server 30 requests the OTP client 20 for a one-time password, and determines whether the password is identical to the password generated by the authentication server 30. Another embodiment is applied to offline, and the authentication server 30 generates and displays a one-time password, and receives and verifies whether the same as the one-time password generated by the OTP client 20 is input.

즉, 2가지 실시예 모두, OTP 클라이언트(20)에서 생성한 비밀번호와, 인증 서버(30)에서 생성한 비밀번호가 동일한지 여부에 따라, 오프셋이 검증된다. 양쪽의 일회용 비밀번호가 동일하면, 생성된 오프셋이 검증된 것으로 판단한다.That is, in both embodiments, the offset is verified according to whether the password generated by the OTP client 20 and the password generated by the authentication server 30 are the same. If both the one-time passwords are the same, it is determined that the generated offset is verified.

다음으로, OTP 클라이언트(20)는 OTP 디바이스 정보에 오프셋을 갱신한다(S144). 이때, OTP 클라이언트(20)는 인증 서버(30)로부터 검증 결과를 수신하여, 검증이 통과된 경우에만, 오프셋을 갱신한다.Next, the OTP client 20 updates the offset in the OTP device information (S144). In this case, the OTP client 20 receives the verification result from the authentication server 30 and updates the offset only when the verification passes.

또한, 인증 서버(30)도 검증이 통과되면, 해당 오프셋을 해당 OTP 디바이스 목록에서 해당 OTP 디바이스 정보로서 추가한다(S153).In addition, when the verification is passed, the authentication server 30 also adds the corresponding offset as the OTP device information in the OTP device list (S153).

다음으로, 본 발명의 제4 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 디바이스 정보 다운로드 방법을 도 8을 참조하여 설명한다.Next, a method of downloading OTP device information in a unique time method through an active time offset window for each client according to a fourth embodiment of the present invention will be described with reference to FIG. 8.

도 8에서 보는 바와 같이, 먼저, 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속한다(S211). 이때, 바람직하게는, 서비스 서버(50)는 아이디와 패스워드 등에 의한 1차 사용자 인증을 수행할 수 있다(S212).As shown in FIG. 8, first, the smart terminal 10 or the OTP client 20 accesses the service server 50 (S211). At this time, preferably, the service server 50 may perform primary user authentication based on an ID and a password (S212).

다음으로, 인증 서버(30)는 OTP 클라이언트(20)에 대하여 대체 인증을 수행한다(S220). 대체 인증은 OTP 인증 외 사용자 인증이다. 예를 들어, 대체인증은 아이디와 패스워드, 공인인증서에 의한 인증, 이메일 또는 이동통신번호에 의한 인증 등, OTP 디바이스 분실시 사용자를 인증할 수 있는 수단이다. 대체인증은 통상의 인증수단을 사용한다.Next, the authentication server 30 performs alternative authentication for the OTP client 20 (S220). Alternative authentication is user authentication other than OTP authentication. For example, alternative authentication is a means for authenticating a user when an OTP device is lost, such as ID and password, authentication using an accredited certificate, or authentication using an email or mobile communication number. Alternative authentication uses conventional authentication means.

다음으로, 대체 인증이 완료되면, OTP 클라이언트(20)는 OTP 디바이스 정보를 인증 서버(30)에 요청한다(S231). 이때, OTP 디바이스 정보는 고유 아이디, 시크릿키, 오프셋, 주기 등으로 구성된다.Next, when alternative authentication is completed, the OTP client 20 requests OTP device information to the authentication server 30 (S231). At this time, the OTP device information is composed of a unique ID, a secret key, an offset, and a period.

다음으로, 인증 서버(30)는 OTP 디바이스 정보를 OTP 클라이언트(20)에 전송한다(S232). 이때, 바람직하게는, OTP 디바이스 정보는 암호화 하여 전송한다.Next, the authentication server 30 transmits the OTP device information to the OTP client 20 (S232). At this time, preferably, the OTP device information is encrypted and transmitted.

또한, 인증 서버(30)는 OTP 클라이언트(20) 또는 스마트 단말(10)과 직접 네트워크를 통해 OTP 디바이스 정보를 전송하거나, 2차원 코드를 통해 간접적으로 전달할 수 있다. 즉, 인증 서버(30)는 암호화된 OTP 디바이스 정보를 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여, 2차원 코드 또는 2차원 코드 이미지를 전송할 수 있다. 예를 들어, 인증 서버(30) 또는 서비스 서버(50)는 2차원 코드 이미지를 화면 상에 표시하고, 스마트 단말(10)의 카메라를 통해 상기 2차원 코드 이미지를 촬상하고, 획득된 이미지에서 OTP 디바이스 정보를 추출한다.In addition, the authentication server 30 may transmit OTP device information through a network directly with the OTP client 20 or the smart terminal 10, or may indirectly transmit it through a two-dimensional code. That is, the authentication server 30 may convert the encrypted OTP device information into a two-dimensional code (QR code, voice-eye code, etc.) and transmit a two-dimensional code or a two-dimensional code image. For example, the authentication server 30 or the service server 50 displays a two-dimensional code image on the screen, captures the two-dimensional code image through the camera of the smart terminal 10, and OTP from the obtained image. Extract device information.

다음으로, 본 발명의 제5 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 등록 방법 또는 오프셋 갱신 방법을 설명한다.Next, an OTP registration method or an offset update method of a unique time method through an active time offset window for each client according to a fifth embodiment of the present invention will be described.

본 발명의 제5 실시예는 제1, 제3, 또는 제4 실시예와 달리, 서비스 서버(50)를 거치지 않고, OTP 클라이언트(20) 또는 사용자 단말(10)이 인증 서버(30)에 직접 접속하여 OTP 디바이스를 등록하거나, OTP 오프셋을 갱신하거나, OTP 디바이스 정보를 수신할 수 있다.In the fifth embodiment of the present invention, unlike the first, third, or fourth embodiments, the OTP client 20 or the user terminal 10 directly contacts the authentication server 30 without going through the service server 50. You can connect to register an OTP device, update an OTP offset, or receive OTP device information.

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

특히, 제5 실시예에 의해 OTP 디바이스가 등록된 경우, 등록된 OTP 디바이스를 이용하여 인증하고자 할 때, OTP 클라이언트(20)는 생성된 일회용 비밀번호와 함께 고유 아이디를 함께 인증 서버(30) 또는 서비스 서버(50)에 전송한다. 따라서 인증 서버(30)는 고유 아이디를 이용하여 시크릿 키를 식별한다.In particular, in the case where the OTP device is registered according to the fifth embodiment, when attempting to authenticate using the registered OTP device, the OTP client 20 includes the generated one-time password and a unique ID together with the authentication server 30 or service. 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 it goes without saying that various modifications 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) 상기 인증 서버는 고유 아이디 및 시크릿키를 생성하여 OTP 디바이스 목록에 등록하되, 시각 오프셋을 디폴트 값으로 설정하는 단계;
(c) 상기 인증 서버는 상기 고유 아이디 및 시크릿키를 포함하는 OTP 디바이스 정보를 상기 OTP 클라이언트에 전송하는 단계;
(d) 상기 OTP 클라이언트는 상기 OTP 디바이스 정보로부터 고유 아이디 및 시크릿키를 추출하는 단계;
(e) 상기 OTP 클라이언트는 제1 오프셋 시드를 생성하고, 상기 제1 오프셋 시드로부터 제1 시각 오프셋을 생성하는 단계;
(f) 상기 OTP 클라이언트는 상기 제1 오프셋 시드를 상기 인증서버로 전송하는 단계; 및,
(g) 상기 인증 서버는 상기 제1 오프셋 시드를 이용하여 제1 시각 오프셋을 생성하고, 상기 제1 시각 오프셋으로 상기 OTP 디바이스 목록의 해당 시각 오프셋을 설정하는 단계를 포함하는 것을 특징으로 하는 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법.
In the OTP setting method of a unique time method through an active time offset window for each client, in which an OTP client installed in a user 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 generating a unique ID and a secret key and registering it in the OTP device list, setting a time offset as a default value;
(c) the authentication server transmitting OTP device information including the unique ID and secret key to the OTP client;
(d) the OTP client extracting a unique ID and secret key from the OTP device information;
(e) the OTP client generating a first offset seed, and generating a first time offset from the first offset seed;
(f) the OTP client transmitting the first offset seed to the authentication server; And,
(g) the authentication server generating a first time offset using the first offset seed, and setting a corresponding time offset of the OTP device list as the first time offset. OTP setting method of unique visual method through active visual offset window.
제1항에 있어서,
상기 (g)단계에서, 상기 인증 서버는 상기 OTP 클라이언트에 일회용 비밀번호를 요청하여 수신하고, 생성된 시각 오프셋을 이용하여 상기 OTP 디바이스의 일회용 비밀번호를 생성하고, 생성된 비밀번호와 수신한 비밀번호를 대비하여, 상기 시각 오프셋을 검증하는 것을 특징으로 하는 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법.
The method of claim 1,
In the step (g), the authentication server requests and receives a one-time password from the OTP client, generates a one-time password for the OTP device using the generated time offset, and compares the generated password with the received password. And verifying the time offset. A method of setting OTP of a unique time method through an active time offset window for each client.
제1항에 있어서,
상기 인증 서버 또는 상기 OTP 클라이언트는 현재 시각에 상기 시각 오프셋을 더하여 시각 시드값을 생성하고, 상기 시크릿키와 상기 시각 시드값을 조합한 값으로 시드로 설정하여, 난수발생기로 난수를 발생시켜 일회용 비밀번호를 생성하는 것을 특징으로 하는 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법.
The method of claim 1,
The authentication server or the OTP client generates a time seed value by adding the time offset to the current time, sets a seed as a value obtained by combining the secret key and the time seed value, and generates a random number with a random number generator to generate a one-time password. OTP setting method of a unique time method through an active time offset window for each client, characterized in that generating.
제1항에 있어서,
상기 시각 오프셋은 상기 오프셋 시드를 시드로 하여 난수발생기에 의해 발생된 난수인 것을 특징으로 하는 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법.
The method of claim 1,
The time offset is a random number generated by a random number generator using the offset seed as a seed.
제1항에 있어서, 상기 방법은,
(h1) 상기 OTP 클라이언트는 상기 인증 서버에 접속하는 단계;
(h2) 상기 인증 서버는 상기 OTP 클라이언트에 대해 상기 OTP 디바이스에 의한 OTP 인증을 수행하는 단계;
(h3) OTP 인증이 통과되면, 상기 OTP 클라이언트는 오프셋 시드(이하 제2 오프셋 시드)를 생성하고, 상기 제2 오프셋 시드를 상기 인증 서버로 전송하는 단계;
(h4) 상기 인증 서버는 상기 제2 오프셋 시드를 이용하여 제2 시각 오프셋을 생성하고, 상기 제2 시각 오프셋으로 상기 OTP 디바이스 목록의 해당 시각 오프셋을 갱신하는 단계를 포함하는 것을 특징으로 하는 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 설정 방법.
The method of claim 1, wherein the method comprises:
(h1) the OTP client accessing the authentication server;
(h2) the authentication server performing OTP authentication by the OTP device for the OTP client;
(h3) when the OTP authentication passes, the OTP client generates an offset seed (hereinafter referred to as a second offset seed) and transmits the second offset seed to the authentication server;
(h4) the authentication server generating a second time offset by using the second offset seed, and updating a corresponding time offset of the OTP device list with the second time offset. OTP setting method of unique visual method through active visual offset window.
KR1020190082820A 2019-07-09 2019-07-09 An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client KR102242720B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190082820A KR102242720B1 (en) 2019-07-09 2019-07-09 An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190082820A KR102242720B1 (en) 2019-07-09 2019-07-09 An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client

Publications (2)

Publication Number Publication Date
KR20210006782A true KR20210006782A (en) 2021-01-19
KR102242720B1 KR102242720B1 (en) 2021-04-21

Family

ID=74237433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190082820A KR102242720B1 (en) 2019-07-09 2019-07-09 An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client

Country Status (1)

Country Link
KR (1) KR102242720B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095154A (en) * 2021-10-12 2022-02-25 福建升腾资讯有限公司 Dynamic password implementation method, device, equipment and medium for App login
KR102453310B1 (en) * 2022-06-20 2022-10-11 주식회사 피씨티 Method and System for Provide OTP

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100136077A (en) * 2009-06-18 2010-12-28 주식회사 비즈모델라인 System and method for managing seed combination otp by index exchange and recording medium
KR20120065089A (en) * 2010-12-10 2012-06-20 한국전자통신연구원 System and method for authenticating terminal device based on otp
KR20140013672A (en) * 2012-07-26 2014-02-05 주식회사 케이티 User authorization method and system
KR101494313B1 (en) 2013-11-04 2015-02-23 김승훈 Time Correction Method of OTP(One Time Password)
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
KR20160131744A (en) * 2015-05-08 2016-11-16 임용훈 Apparatus and method for user authentication
JP2017017711A (en) * 2015-07-01 2017-01-19 イノアウス・コリア・インコーポレイテッド Electronic device and method for generating random and specific code

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100136077A (en) * 2009-06-18 2010-12-28 주식회사 비즈모델라인 System and method for managing seed combination otp by index exchange and recording medium
KR20120065089A (en) * 2010-12-10 2012-06-20 한국전자통신연구원 System and method for authenticating terminal device based on otp
KR20140013672A (en) * 2012-07-26 2014-02-05 주식회사 케이티 User authorization method and system
KR101494313B1 (en) 2013-11-04 2015-02-23 김승훈 Time Correction Method of OTP(One Time Password)
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
KR20160131744A (en) * 2015-05-08 2016-11-16 임용훈 Apparatus and method for user authentication
JP2017017711A (en) * 2015-07-01 2017-01-19 イノアウス・コリア・インコーポレイテッド Electronic device and method for generating random and specific code

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095154A (en) * 2021-10-12 2022-02-25 福建升腾资讯有限公司 Dynamic password implementation method, device, equipment and medium for App login
CN114095154B (en) * 2021-10-12 2023-06-27 福建升腾资讯有限公司 Method, device, equipment and medium for realizing dynamic password of App login
KR102453310B1 (en) * 2022-06-20 2022-10-11 주식회사 피씨티 Method and System for Provide OTP

Also Published As

Publication number Publication date
KR102242720B1 (en) 2021-04-21

Similar Documents

Publication Publication Date Title
JP6571250B2 (en) How to use one device to unlock another
US10574460B2 (en) Mechanism for achieving mutual identity verification via one-way application-device channels
US10637650B2 (en) Active authentication session transfer
JP6399382B2 (en) Authentication system
US9338164B1 (en) Two-way authentication using two-dimensional codes
Dodson et al. Secure, consumer-friendly web authentication and payments with a phone
KR102274285B1 (en) An OTP security management method by using dynamic shared secret distribution algorithm
JPWO2019239591A1 (en) Authentication system, authentication method, application provider, authentication device, and authentication program
GB2586065A (en) Secure media delivery
KR20210095093A (en) Method for providing authentification service by using decentralized identity and server using the same
KR102242720B1 (en) An OTP configuration method of setting time seed with unique cycle by using active time offset window per each client
JP6378424B1 (en) User authentication method with enhanced integrity and security
KR20190010016A (en) User Authentication Server and System
WO2017029708A1 (en) Personal authentication system
KR101900060B1 (en) Security element operating with wireless router, the wireless router, and method of forming internet network using the security element
CN112653676B (en) Identity authentication method and equipment crossing authentication system
KR102291919B1 (en) An OTP registration method based on location authentication and session, for preventing replication and multi-registration
KR102291942B1 (en) A method of saving and using OTP backup codes or temporal user OTP codes by using multi-dimensional barcode
JP2015176167A (en) Network authentication method for secure user identification information verification
KR20120107175A (en) Image based authentication system and method therefor
KR20170099339A (en) System and method for providing security membership and login hosting service
US20220052838A1 (en) Reinitialization of an application secret by way of the terminal
KR101576038B1 (en) Network authentication method for secure user identity verification
KR101737925B1 (en) Method and system for authenticating user based on challenge-response
JP6364957B2 (en) Information processing system, information processing method, and program

Legal Events

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