KR20100001811A - Method for generating one time password and system therefor - Google Patents
Method for generating one time password and system therefor Download PDFInfo
- Publication number
- KR20100001811A KR20100001811A KR1020080061881A KR20080061881A KR20100001811A KR 20100001811 A KR20100001811 A KR 20100001811A KR 1020080061881 A KR1020080061881 A KR 1020080061881A KR 20080061881 A KR20080061881 A KR 20080061881A KR 20100001811 A KR20100001811 A KR 20100001811A
- Authority
- KR
- South Korea
- Prior art keywords
- otp
- index information
- event index
- hash function
- time password
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/42—User authentication using separate channels for security data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of 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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
본 발명은 비밀번호 인증 시스템에 관한 것으로, 특히 일회용 비밀번호(One-Time Password) 생성방법과 그 인증 시스템에 관한 것이다.The present invention relates to a password authentication system, and more particularly, to a one-time password generation method and an authentication system thereof.
금융거래 등에 있어서 거래 당사자가 본인인지를 확인하여 보안성을 제고시키기 위한 방안으로서 비밀번호를 널리 사용하고 있다. 이러한 비밀번호는 원격금융거래 즉, 무인 현금 인출기 내지 인터넷 뱅킹, 폰 뱅킹 등에 있어서 거래의 안정성을 담보하는 중요한 수단으로 인식되고 있다.In financial transactions, passwords are widely used as a way to enhance the security by verifying the identity of the trading party. Such a password is recognized as an important means to secure the stability of the transaction in remote financial transactions, such as unattended ATMs, Internet banking, phone banking, and the like.
그러나 해킹기술이 고도화되면서 비밀번호를 이용한 금융거래의 안정성이 위협받고 있는 실정이다. 해킹의 가능성과 보안성 저하를 방지하기 위하여 최근에는 OTP(One-Time Password)가 도입되기에 이르렀다. 일회용 비밀번호인 OTP는 한번 만들어져서 사용되면 재사용될 수 없는 특징이 있다.However, as hacking technologies become more advanced, the stability of financial transactions using passwords is threatened. Recently, one-time password (OTP) has been introduced to prevent the possibility of hacking and compromise security. OTP, a one-time password, has a feature that cannot be reused once it is created and used.
일회용 비밀번호를 프로그램 방식으로 생성하는 방법으로는 시간 동기식 방 법과 챌린지-리스판스(Challenge-Response) 방법, 이벤트 방법이 알려져 있다.As a method of generating a one-time password programmatically, a time synchronous method, a challenge-response method, and an event method are known.
이중 시간 동기식 방법은 시간을 기준으로 하여 일회용 비밀번호 생성기(일명 보안 토큰이라고도 함)와 OTP 서버간에 비밀번호키를 공유함으로서 일회용 비밀번호를 만들어 내는 방법이며, 챌린지-리스판스 방법은 OTP 서버에서 챌린지를 만들어 일회용 비밀번호 생성기를 소지한 사용자에게 알려 주면, 챌린지에 해당하는 비밀번호를 일회용 비밀번호 생성기에서 만들어 내는 방법이다.The dual time synchronous method creates a one-time password by sharing a password key between the one-time password generator (also known as a security token) and the OTP server on a time-based basis. The challenge-response method creates a one-time challenge on the OTP server to create a one-time password. If you tell the user who owns the password generator, the password for the challenge is generated by the one-time password generator.
그리고 이벤트 방법은 OTP 단말기와 OTP 서버간에 동일한 이벤트 값을 유지하여 비밀번호를 만들어 내는 방법을 말한다.The event method refers to a method of generating a password by maintaining the same event value between the OTP terminal and the OTP server.
예시한 방법들중 챌린지-리스판스 방법의 경우에는 사용자가 SMS 또는 통신을 통해서 챌린지 값을 전달받아야 하지만, 시간 동기식 방법에서는 OTP 서버와의 통신 없이도 일회용 비밀번호를 생성할 수 있으므로 챌린지-리스판스 방법에서와 같은 SMS 또는 통신 연결이 필요 없는 장점을 가진다.In the example of the challenge-response method, the user must receive the challenge value through SMS or communication. However, in the time-synchronous method, the challenge-response method can generate a one-time password without communication with the OTP server. Has the advantage of not needing SMS or communication connection.
하지만 시간 동기식 방법에서는 일회용 비밀번호 생성기와 OTP 서버간에 시간 오차가 허용 범위내에 들어야 한다는 제약사항이 있으며, 또한 시간 오차가 허용되는 범위내에서는 비밀번호가 여러 번 중복 사용될 수 있기 때문에 해킹에 의한 비밀번호 노출의 위험성이 따른다. 아울러 일회용 비밀번호를 프로그램 방식으로 생성하는 기존 방법들은 단말기에 설치된 프로그램 자체를 복제하여 사용 가능하기 때문에, 불법 복제 사용을 막을 수 있는 새로운 방법이 강구되어져야 한다.However, in the time synchronous method, there is a restriction that the time error must be within the allowable range between the one-time password generator and the OTP server. Also, since the password may be used multiple times within the allowable time error, there is a risk of password exposure due to hacking. This follows. In addition, existing methods of generating a one-time password programmatically can be used by copying the program installed in the terminal, so a new method to prevent illegal copying should be devised.
이에 본 발명의 목적은 상술한 문제점을 해결하기 위하여 안출된 것으로서, 시간 동기식 방법의 단점을 보완함은 물론 챌린지의 전달 없이 일회용 비밀번호(OTP)를 생성할 수 있는 방법을 제공함에 있으며, 더 나아가 일회용 비밀번호 생성 프로그램이 불법 복제되어 이중 사용되는 것을 검출할 수 있는 일회용 비밀번호(OTP) 인증 시스템을 제공함에 있다.Accordingly, an object of the present invention is to solve the above-mentioned problems, to compensate for the shortcomings of the time-synchronous method as well as to provide a method for generating a one-time password (OTP) without the delivery of a challenge, and furthermore disposable It is to provide a one-time password (OTP) authentication system that can detect that the password generation program is illegally duplicated and double-use.
상기 목적을 달성하기 위한 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 생성방법은 모바일 단말기에서 실행 가능한 방법으로서, 데이터 암호화 초기값(SEED)을 생성하기 위한 사용자 정보를 사용자로부터 입력받아 SEED를 생성하여 저장하는 단계와; 저장된 SEED 정보를 약정된 서버측으로 전송하는 단계와; 일회용 비밀번호 생성을 위한 이벤트 발생시마다 이벤트 인덱스 정보를 갱신하여 저장하는 단계와; 갱신된 이벤트 인덱스 정보와 저장된 SEED 정보를 해쉬함수 인자로 설정하여 일방향 해쉬함수값을 계산하는 단계와; 상기 해쉬함수에 의해 계산된 결과값에 상기 갱신된 이벤트 인덱스 정보를 조합하여 일회용 비밀번호를 생성하고 이를 표시하는 단계;를 포함함을 특징으로 한다.The method for generating a one time password (OTP) according to an embodiment of the present invention for achieving the above object is a method executable in a mobile terminal, and receives SEED by receiving user information for generating a data encryption initial value (SEED) from a user. Generating and storing; Transmitting the stored SEED information to the contracted server side; Updating and storing event index information each time an event for generating a one-time password is generated; Calculating the one-way hash function value by setting the updated event index information and the stored SEED information as a hash function factor; Generating a one-time password by combining the updated event index information with the result value calculated by the hash function and displaying the same.
한편 본 발명의 실시예에 따른 일회용 비밀번호(OTP)를 인증하기 위한 서버시스템은, 망을 통해 전송되는 사용자별 데이터 암호화 초기값(SEED), 사용자별 이 벤트 인덱스 정보를 사용자정보 DB에 저장 관리하는 사용자 정보 저장관리 모듈과; 인증 요청된 일회용 비밀번호(OTP)에 부가된 이벤트 인덱스 정보를 가지는 이벤트 인덱스 정보를 생성하는 이벤트 인덱스 정보 생성모듈과; 비밀번호 인증 요청한 사용자의 SEED정보와 생성된 이벤트 인덱스 정보를 해쉬함수 인자로 설정하여 해쉬함수값을 계산하는 해쉬함수 계산모듈과; 계산된 해쉬함수값을 인증 요청된 일회용 비밀번호(OTP)에 포함된 해쉬함수값과 비교하는 일회용 비밀번호 인증모듈과; 일회용 비밀번호(OTP)의 인증결과에 따라 상기 이벤트 인덱스 정보의 생성 혹은 저장을 요청하거나 그 인증 결과를 외부장치로 전송하는 인증결과 전송모듈;을 포함함을 특징으로 한다.On the other hand, the server system for authenticating the one-time password (OTP) according to an embodiment of the present invention, to store and manage the user-specific data encryption initial value (SEED), the event index information for each user stored in the user information DB A user information storage management module; An event index information generation module for generating event index information having event index information added to the one-time password OTP requested for authentication; A hash function calculation module configured to calculate a hash function value by setting SEED information and generated event index information of a user who has requested a password authentication as a hash function factor; A one-time password authentication module for comparing the calculated hash function value with a hash function value included in the one-time password requested for authentication (OTP); And an authentication result transmission module for requesting generation or storage of the event index information or transmitting the authentication result to an external device according to the authentication result of the one time password (OTP).
본 발명은 시간정보를 이용하지 않으므로 시간 동기화 방법에서 발생할 수 있는 문제를 원천적으로 제거할 수 있는 효과가 있으며, 더 나아가 챌린지를 서버에서 모바일 단말기측으로 전송하거나 입력해야 할 필요가 없기 때문에 그만큼 사용자의 편의성을 도모하여 줄 수 있는 장점이 있다.Since the present invention does not use time information, there is an effect that the problem that may occur in the time synchronization method can be eliminated at the source, and furthermore, the user's convenience does not need to be transmitted or inputted from the server to the mobile terminal. There is an advantage that can be promoted.
아울러 본 발명은 일회용 비밀번호 생성에 이용된 이벤트 인덱스 정보의 일부를 일회용 비밀번호의 일부로서 인증 서버측에 제공하는 구성을 가진다. 따라서 인증 서버측에서는 제공된 정보를 가지는 이벤트 인덱스 정보들만을 생성하여 일회용 비밀번호를 생성하고 그 비밀번호를 인증하기 때문에, 결과적으로 일회용 비밀번호의 인증시간을 고속화할 수 있는 장점이 있다.In addition, the present invention has a configuration that provides a part of the event index information used to generate a one-time password to the authentication server side as part of the one-time password. Therefore, since the authentication server side generates only the one-time password by generating only the event index information having the provided information and authenticates the password, there is an advantage that the authentication time of the one-time password can be speeded up as a result.
더 나아가 본 발명에서는 인증 요청된 일회용 비밀번호(OTP)에 포함된 해쉬함수값과 일치하는 해쉬함수값을 얻는데 이용된 이벤트 인덱스 정보가 기 저장되어 있는 사용자별 이벤트 인덱스 정보보다 작은 값을 가질 경우에는, 어느 하나의 일회용 비밀번호가 불법 복제된 OTP 생성 어플리케이션에 의해 생성된 것을 의미하므로, OTP 생성 프로그램이 불법 복제되어 이중 사용되는 것을 검출할 수 있는 효과를 가지게 되는 것이다.Furthermore, in the present invention, when the event index information used to obtain a hash function value that matches the hash function value included in the one-time password (OTP) requested for authentication has a value smaller than the pre-stored event index information for each user, Since any one-time password is generated by an illegally copied OTP generation application, the OTP generation program has an effect of detecting that the OTP generation program is illegally duplicated and used twice.
한편 본 발명은 도면에 도시된 실시예들을 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술분야에 통상의 지식을 지닌자라면 이로부터 다양한 변형 및 균등한 타실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.On the other hand, the present invention has been described with reference to the embodiments shown in the drawings, which are merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be defined only by the appended claims.
이하 본 발명의 바람직한 실시예들을 첨부 도면을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 관련된 공지 기능 혹은 구성에 대한 상세한 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, a detailed description of related known functions or configurations will be omitted.
우선 도 1은 본 발명의 일실시예에 따른 전체 시스템 구성도를 예시한 것으로, 본 발명의 실시예에 따른 일회용 비밀번호(이하 OTP라 함) 생성방법은 하나의 어플리케이션으로 구현되어 이동 통신 단말기와 같은 모바일 단말기(100)에 설치되어 실행되어진다. 모바일 단말기(100)에 설치된 OTP 생성 어플리케이션은 설치시에 데이터 암호화 초기값인 SEED를 생성하여 무선망을 통해 약정된 서버측으로 전송하 여 준다. 상기 약정된 서버는 도 1에서 서비스 서버(150)일 수 있으며, OTP 인증서버(200)일 수 있다. 서비스 서버(150)로 전송된 사용자별 SEED 정보는 다시 OTP 인증서버(200)로 전송되어 저장 관리되는 값이다.First, Figure 1 illustrates the overall system configuration according to an embodiment of the present invention, the method for generating a one-time password (hereinafter referred to as OTP) according to an embodiment of the present invention is implemented as a single application, such as a mobile communication terminal The
참고적으로 서비스 서버(150)는 단말기 사용자에게 소정의 서비스를 제공하는 서버로서 사용자 인증을 OTP 인증서버(200)에 의뢰할 수 있다. 이러한 서비스 서버(150)는 컴퓨터 시스템과 같은 유선 단말기를 통해 OTP를 입력받을 수도 있다. 그리고 OTP 인증서버(200)는 모바일 단말기(100) 혹은 서비스 서버(150)로부터 인증 요청된 OTP를 내부에서 생성한 OTP와 비교 인증하는 역할을 담당한다.For reference, the
이하 도 1에 도시된 모바일 단말기(100)에 설치되는 OTP 생성 어플리케이션(120)의 구성을 도 2를 참조하여 부연 설명하기로 한다.Hereinafter, the configuration of the OTP generation application 120 installed in the
도 2는 본 발명의 실시예에 따라 모바일 단말기(100)에 설치되는 OTP 생성 어플리케이션의 프로그램 모듈 구성도를 예시한 것이다.2 illustrates a program module configuration diagram of an OTP generating application installed in the
도 2를 참조하면, 우선 유저 인터페이스 모듈(121)은 PIN(Personal Identification Number), 단말기 식별정보와 같은 사용자 데이터를 입력받거나 OTP와 같은 표시 데이터를 출력하기 유저 인터페이스 화면을 제공하여 준다.Referring to FIG. 2, first, the
SEED 생성 관리모듈(123)은 PIN 혹은 모바일 단말기 식별정보 혹은 사용자에게 부여된 고유번호와 같은 사용자 정보를 유저 인터페이스 모듈(121)을 통해 입력받아 내부 알고리즘에 의거하여 데이터 암호화 초기값(SEED)을 생성한다. 생성된 SEED값은 SEED 저장부(130)에 저장 관리된다. 아울러 SEED 생성 관리모듈(123)은 사용자 인증을 위해 입력된 사용자정보를 SEED 저장부(130)에 추가 저장하고 사용 자 인증하는 역할도 수행한다.The SEED
이벤트 인덱스 갱신모듈(124)은 사용자 로그인시마다, 비밀번호 갱신요구시마다 이벤트 인덱스 정보를 갱신하여 SEED저장부(130)에 저장한다. 상기 이벤트 인덱스 정보는 최초 사용자 로그인시에 "0"으로 초기화된후 이벤트 발생시마다 하나씩 증가하는 일련번호의 값을 가진다. 그리고 정해진 값에 도달하면 다시 "0"으로 초기화된다.The event
OTP 생성모듈(125)은 갱신 저장된 이벤트 인덱스 정보와 저장된 SEED 정보를 해쉬함수 인자로 설정한후 일방향 해쉬함수(f(x))에 의거하여 해쉬함수값을 계산한다. 그리고 계산된 해쉬함수값에 이벤트 인덱스 정보(의 일부)를 조합하여 완전한 하나의 OTP를 생성하고 이를 유저 인터페이스 모듈(121)을 통해 표시 출력한다.The
SEED 전송모듈(126)은 SEED 생성 관리모듈(123)에 의해서 생성된 OTP를 무선망을 통해 약정된 서버(150 혹은 200)측으로 전송하여 준다.The SEED
이상에서 설명한 OTP 생성 어플리케이션(120)은 단말기 VM(Virtual Machine) 프레임워크상에서 구동 가능한 어플리케이션이다.The OTP generation application 120 described above is an application that can be driven on the terminal virtual machine (VM) framework.
이하 상술한 구성을 가지는 OTP 생성 어플리케이션(120)의 동작예를 도 3과 도 4를 참조하여 설명하기로 한다.An operation example of the OTP generation application 120 having the above-described configuration will be described with reference to FIGS. 3 and 4.
우선 도 3은 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 생성 어플리케이션 설치 흐름도를 도시한 것이며, 도 4는 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 생성 흐름도를 각각 도시한 것이다.First, Figure 3 shows a one-time password (OTP) generation application installation flow chart according to an embodiment of the present invention, Figure 4 shows a one-time password (OTP) generation flowchart according to an embodiment of the present invention, respectively.
도 3을 참조하면, 우선 단말기 사용자는 본 발명의 실시예에 따른 OTP 생성 어플리케이션을 서비스 제공자로부터 다운로드받아 자신의 모바일 단말기(100)에 설치(S1)한다.Referring to FIG. 3, a terminal user first downloads an OTP generating application according to an embodiment of the present invention from a service provider and installs it on his mobile terminal 100 (S1).
설치된 OTP 생성 어플리케이션은 최초 실행 구동시 사용자에게 데이터 암호화 초기값(SEED) 생성을 위한 사용자 정보의 입력을 요구한다. 이에 사용자는 PIN을 입력한다. PIN의 입력이 완료(S2)되면, SEED 생성 관리모듈(123)은 내부 알고리즘에 의거하여 SEED를 생성하고 이를 SEED 저장부(130)에 저장(S3)한다. SEED의 저장이 완료되면 SEED 전송모듈(126)은 저장된 SEED 정보를 약정된 서버(예를 들면 OTP 인증서버)측으로 전송(S4)함으로서, OTP 인증서버(200)는 사용자별 SEED 정보를 저장할 수 있게 되는 것이다.The installed OTP generating application requires the user to input user information for generating a data encryption initial value (SEED) when the first execution is executed. The user enters a PIN. When the input of the PIN is completed (S2), the SEED
이하 모바일 단말기(100)에 설치된 OTP 생성 어플리케이션에 의해 OTP가 생성되는 과정을 도 4를 참조하여 설명하기로 한다. 하기설명에서 OTPGA(OTP Generation Application)는 OTP 생성 어플리케이션을 나타내는 것으로 정의한다.Hereinafter, a process of generating an OTP by an OTP generating application installed in the
도 4를 참조하면, 사용자에 의해 OTPGA 실행 요구(S11)가 있으면 유저 인터페이스 모듈(121)은 PIN 입력을 요구(S12)한다. PIN 입력이 있으면 SEED 생성 관리모듈(123)은 PIN 인증(S13)을 통해 사용자를 인증한다. 정상적인 사용자로 인증 완료되면 이벤트 인덱스 갱신모듈(124)은 최초 사용자 로그인에 따라 이벤트 인덱스 정보를 "0000"으로 초기화 갱신한다. 이벤트 인덱스 갱신모듈(124)은 이후의 이벤트 발생시마다 상기 이벤트 인덱스 정보를 0001, 0001,0003과 같이 하나씩 증가시켜 갱신한다.Referring to FIG. 4, if an OTPGA execution request S11 is requested by a user, the
이벤트 발생에 따라 이벤트 인덱스 정보가 갱신되면 OTP 생성모듈(125)은 갱 신된 이벤트 인덱스 정보와 저장된 SEED 정보를 해쉬함수 인자로 설정한후 일방향 해쉬함수에 의거하여 해쉬함수값을 계산한다. 그리고 OTP 생성모듈(125)은 갱신된 이벤트 인덱스 정보, 바람직하게는 이벤트 인덱스 정보의 일부 정보를 상기 계산된 해쉬함수값에 부가하여 하나의 완전한 OTP를 생성하고 이를 유저 인터페이스 모듈(121)을 통해 표시(S14) 출력한다. 본 발명의 실시예에서는 이벤트 인덱스 정보의 일련번호중 십단위 두 자리값을 OTP에 부가하는 것으로 가정한다. 이러한 가정하에 따라 최종적으로 생성 표시되는 OTP 정보의 산출근거를 예시하면 하기와 같다.When the event index information is updated according to the occurrence of the event, the
OTP = f(SEED, 이벤트 인덱스 정보)*100 + ((이벤트 인덱스 정보) mod 100)OTP = f (SEED, Event Index Info) * 100 + ((Event Index Info) mod 100)
상기 수식에서 f(x)는 OTP 생성을 위한 일방향 해쉬함수를 나타낸 것이다. 해쉬함수로서 MD4, MD5, SHA 등을 이용할 수 있으며, 해쉬함수에 인자로 넘기는 x값을 상기 수식에서와 같이 SEED와 이벤트 인덱스 정보이다. 예를 들어 SEED값은 "1qaz"이고, 이벤트 인덱스가 "1234", 해쉬함수의 결과가 "495724"라 하면, OTP = f(1 qaz, 1234)*100 + (1234 mod 100) = 49572434가 된다. 즉, 최종적으로 표시 출력되는 OTP는 f(x)라는 해쉬함수에 의해 만들어진 결과값(해쉬함수값이라고 함)에 이벤트 인덱스 정보의 끝 두자리가 부가된 값이 되는 것이다.In the above formula, f (x) represents a one-way hash function for generating OTP. As a hash function, MD4, MD5, SHA, etc. can be used, and the x value passed as an argument to the hash function is SEED and event index information as in the above formula. For example, if the SEED value is "1qaz", the event index is "1234", and the result of the hash function is "495724", then OTP = f (1 qaz, 1234) * 100 + (1234 mod 100) = 49572434. . In other words, the OTP finally displayed and output is a value obtained by adding a hash function value of f (x) (called a hash function value) to the last two digits of the event index information.
위와 같이 OTP가 생성 표시되면 단말기 사용자는 그 값을 인증을 요구하는 서버에 입력하여 줌으로서 사용자 인증절차를 밟게 되는 것이다.When the OTP is generated and displayed as described above, the terminal user enters the value into the server requesting authentication, thereby performing the user authentication procedure.
한편 OTP 갱신요구(S15)와 같은 새로운 이벤트가 발생하면 이벤트 인덱스 갱신모듈(124)은 "0000"으로 갱신된 이벤트 인덱스 정보를 "0001"로 갱신(S16)한다. 이벤트 발생에 따라 이벤트 인덱스 정보가 갱신되면 OTP 생성모듈(125)은 이후 갱신된 이벤트 인덱스 정보와 저장된 SEED 정보를 해쉬함수 인자로 설정한후 일방향 해쉬함수에 의거하여 다시 해쉬함수값을 계산한다. 그리고 그 값 끝자리에 갱신된 이벤트 인덱스 정보를 부가하여 새로운 OTP를 생성하여 유저 인터페이스 모듈(121)을 통해 표시(S17) 출력한다.Meanwhile, when a new event such as an OTP update request S15 occurs, the event
만약 사용자로부터 OTPGA 종료 요청이 있으면(S18) 이벤트 인덱스 갱신모듈(124)은 현재의 이벤트 인덱스 정보를 SEED 저장부(130)에 저장(S19)하고 본 발명의 실시예에 따른 OTPGA를 종료한다. 마지막으로 갱신된 이벤트 인덱스 정보의 저장에 의해서, 추후 이벤트 발생시에는 그 저장된 차순위 값이 새로운 이벤트 인덱스 값으로 갱신된다.If there is an OTPGA termination request from the user (S18), the event
이하 상술한 OTPGA에 의해 생성된 OTP를 인증하는 시스템에 대해 설명하기로 한다.Hereinafter, a system for authenticating the OTP generated by the above-described OTPGA will be described.
도 5는 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 인증 서버 구성도를 도시한 것이다.5 is a block diagram of a one-time password (OTP) authentication server according to an embodiment of the present invention.
도 5를 참조하면, 사용자 정보 저장관리 모듈(221)은 망을 통해 전송되는 사용자별 데이터 암호화 초기값(SEED), 사용자별 이벤트 인덱스 정보를 사용자정보 DB(230)에 저장 관리하는 역할을 담당한다.Referring to FIG. 5, the user information
이벤트 인덱스 정보 생성모듈(222)은 인증 요청된 OTP에 부가된 이벤트 인덱스 정보를 가지는 이벤트 인덱스 정보를 생성한다. 이러한 경우 이벤트 인덱스 정보의 고속 서치와 OTP의 고속 인증을 위해서, 인증 요청된 OTP에 부가된 이벤트인 덱스 정보를 끝자리로 가지는 이벤트 인덱스 정보들을 생성하는 것이 바람직하다. 예를 들어 인증 요청된 OTP에 부가된 이벤트 인덱스 정보가 십단위 정보로서 "67"이라면 그 인덱스 정보를 가지는 이벤튼 인덱스 정보, 즉 "3967", "4067", "4167",..과 같은 이벤트 인덱스 정보를 생성하여 주는 역할을 담당한다.The event index
해쉬함수 계산모듈(223)은 비밀번호 인증 요청한 사용자의 SEED정보와 이벤트 인덱스 정보 생성모듈(222)에서 생성된 이벤트 인덱스 정보를 해쉬함수 인자로 설정하여 해쉬함수값((fx))을 계산한다.The hash
OTP 인증모듈(224)은 계산된 해쉬함수값을 인증 요청된 OTP에 포함된 해쉬함수값과 비교하며, 인증결과 전송모듈(225)은 OTP의 인증결과에 따라 상기 이벤트 인덱스 정보의 생성 혹은 저장을 각각 이벤트 인덱스 정보 생성모듈(222), 사용자 정보 저장관리모듈(221)로 요청하거나, 그 인증 결과를 외부장치(관리자 단말기, 사용자 단말기등)로 전송하여 준다.The
도시하지 않았지만 본 발명의 또 다른 실시예에 따른 OTP 인증 시스템은, 인증 요청된 OTP에 포함된 해쉬함수값과 일치하는 해쉬함수값을 얻는데 이용된 이벤트 인덱스 정보와 사용자 정보 DB(230)에 저장되어 있는 이벤트 인덱스 정보를 비교하여 단말기측 OTP 생성 어플리케이션의 복제여부를 판단하는 어플리케이션 복제 판단모듈;을 더 포함할 수도 있다.Although not shown, the OTP authentication system according to another embodiment of the present invention is stored in the user index DB and the event index information used to obtain a hash function value that matches the hash function value included in the OTP requested for authentication. It may further include an application replication determination module for comparing the event index information to determine whether the terminal-side OTP generation application is duplicated.
상술한 구성을 가지는 OTP 인증 시스템은 운영체제(210) 상에서 구동 가능한 하나의 OTP 인증 어플리케이션(220)으로 구현 가능하다The OTP authentication system having the above-described configuration may be implemented as one OTP authentication application 220 that can be driven on the operating system 210.
이하 상술한 구성을 가지는 OTP 인증서버(200)에서의 OTP 인증 과정을 도 6 을 참조하여 설명하기로 한다.Hereinafter, an OTP authentication process in the
우선 OTP 인증서버(200)의 사용자 정보 저장관리 모듈(221)은 무선망을 통해 모바일 단말기(100)로부터 전송되는 사용자별 SEED값을 직접 혹은 서비스 서버를 통해 전송받아 사용자 정보 DB(230)에 저장(S20) 관리한다.First, the user information
다수 사용자들에 대한 SEED값이 저장된 상태에서 만약 어느 하나의 사용자에 대해 OTP 인증 요청이 있으면(S21), 이벤트 인덱스 정보 생성모듈(221)은 우선적으로 인증 요청된 OTP에 부가된 이벤트 인덱스(EI) 정보를 끝자리로 가지는 이벤트 인덱스 정보를 생성(S22)한다. 생성되어야 하는 이벤트 인덱스 정보는 설정된 최대치를 초과할 경우 다시 초기화된다.If there is an OTP authentication request for any one user in a state in which SEED values are stored for a plurality of users (S21), the event index
이벤트 인덱스 정보가 생성되었으면, 해쉬함수 계산모듈(223)은 인증 요청한 사용자의 SEED정보와 새로이 생성된 이벤트 인덱스 정보를 해쉬함수 인자로 설정하여 해쉬함수값((fx))을 계산(S23)한다.When the event index information is generated, the hash
해쉬함수값(f(x)) 계산이 완료되면 OTP 인증모듈(224)은 계산된 해쉬함수값을 인증 요청된 일회용 비밀번호(OTP)에 포함된 해쉬함수값과 비교(S24)한다. 비교결과 해쉬함수값이 다르면, 인증결과 전송모듈(225)은 이벤트 인덱스 정보의 생성을 요청함으로서, 이벤트 인덱스 정보 생성모듈(222)은 다시 OTP에 부가된 이벤트 인덱스(EI) 정보를 가지는 이벤트 인덱스(EI) 정보를 생성한다. 즉, 본 발명의 인증 서버(200)에서는 새로이 생성된 이벤트 인덱스 정보를 이용하여 계산된 해쉬함수값이 인증 요청된 일회용 비밀번호(OTP)에 포함된 해쉬함수값과 동일할때 까지 이벤트 인덱스 정보를 생성하되, 인증 요청된 OTP에 부가된 이벤트 인덱스(EI) 정 보를 끝자리로 가지는 이벤트 인덱스 정보들을 생성함에 특징이 있는 것이다.When the calculation of the hash function value f (x) is completed, the
상술한 이벤트 인덱스 정보의 생성과 해쉬함수값의 비교 인증을 구체적인 수치로 예시하면, 우선 인증 요청된 사용자에 대해 미리 저장되어 있는 이벤트 인덱스 정보가 "3940"이라 하고, 인증 요청된 OTP에 부가된 이벤트 인덱스 정보가 "46"이라 하면, 인증서버(200) 시스템은 "3946", "4046", "4146",..과 같이 이벤트 인덱스 정보를 순차적으로 생성해 가면서 생성된 값을 이용하여 계산된 해쉬함수값을 OTP에 포함된 해쉬함수값과 비교하는 것이다.If the above-mentioned generation of the event index information and the comparison of the hash function value authentication are exemplified as specific values, the event index information stored in advance for the user who has been authenticated is called "3940", and the event added to the authentication-required OTP is described. When the index information is "46", the
이와 같은 해쉬함수값의 비교과정에서 동일한 것으로 판명(S25)되면, 인증결과 전송모듈(225)은 그 인증 결과를 외부장치(서비스 서버 혹은 사용자 단말기 등)로 전송하는 한편, 마지막으로 생성된 이벤트 인덱스 정보의 저장을 사용자 정보 저장관리 모듈(221)로 요청(S27)한다.If it is determined that the same hash function value in the comparison process (S25), the authentication
이에 사용자 혹은 서비스 서버는 OTP 인증서버(200)를 통해 사용자 인증결과를 전송받을 수 있게 되는 것이며, 사용자 정보 DB(30)에는 OTP 인증시 이용된 이벤트 인덱스 정보가 갱신 저장되게 되는 것이다.The user or service server will be able to receive the user authentication results through the
한편 본 발명의 또 다른 실시예로서 OTP 생성 어플리케이션의 복제 여부 판단모듈을 구비하여 OTP 생성 어플리케이션(OTPGA)의 복제여부를 판단할 수 있다.On the other hand, as another embodiment of the present invention is provided with a determination module for copying the OTP generation application can determine whether or not the OTP generation application (OTPGA).
즉, OTP 인증 어플리케이션 복제 판단모듈은 인증 요청된 OTP에 포함된 해쉬함수값과 일치하는 해쉬함수값을 얻는데 이용된 이벤트 인덱스 정보를 사용자 정보 DB(230)에 저장되어 있는 이벤트 인덱스 정보와 비교한다. 만약 인증 요청된 OTP에 포함된 해쉬함수값과 일치하는 해쉬함수값을 얻는데 이용된 이벤트 인덱스 정보가 기 저장되어 있는 사용자별 이벤트 인덱스 정보보다 작은 값을 가질 경우에는, 어느 하나의 OTP가 불법 복제된 OTP 생성 어플리케이션에 의해 생성된 것을 의미하므로 그 판단결과를 OTP 인증모듈(224)로 건네 준다. 이에 OTP 인증모듈(224)은 그 사실을 관리자 단말기로 출력하여 주거나 SMS를 이용하여 사용자 단말기로 복제사실이 통보될 수 있도록 조치한다.That is, the OTP authentication application replication determination module compares the event index information used to obtain a hash function value that matches the hash function value included in the OTP requested for authentication with the event index information stored in the
따라서 본 발명은 OTP 생성 프로그램이 불법 복제되어 이중 사용되는 것을 검출할 수 있는 효과도 가지게 되는 것이다.Therefore, the present invention also has the effect of detecting that the OTP generating program is illegally duplicated and double used.
도 1은 본 발명의 일실시예에 따른 시스템 구성 예시도.1 is an exemplary system configuration according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따라 모바일 단말기에 설치되는 일회용 비밀번호(OTP) 생성 어플리케이션 구성 예시도.Figure 2 is an exemplary configuration of a one-time password (OTP) generation application installed in a mobile terminal according to an embodiment of the present invention.
도 3은 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 생성 어플리케이션 설치 흐름도.Figure 3 is a one-time password (OTP) generation application installation flow chart according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 생성 흐름도.Figure 4 is a one-time password (OTP) generation flow chart according to an embodiment of the present invention.
도 5는 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 인증 서버 구성예시도.5 is an exemplary configuration of a one-time password (OTP) authentication server according to an embodiment of the present invention.
도 6은 본 발명의 일실시예에 따른 일회용 비밀번호(OTP) 인증 흐름도.6 is a one-time password (OTP) authentication flow chart according to an embodiment of the present invention.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080061881A KR20100001811A (en) | 2008-06-27 | 2008-06-27 | Method for generating one time password and system therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080061881A KR20100001811A (en) | 2008-06-27 | 2008-06-27 | Method for generating one time password and system therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100001811A true KR20100001811A (en) | 2010-01-06 |
Family
ID=41812074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080061881A KR20100001811A (en) | 2008-06-27 | 2008-06-27 | Method for generating one time password and system therefor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100001811A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014107060A1 (en) * | 2013-01-07 | 2014-07-10 | 주식회사 안랩 | Apparatus for securing mobile data and method therefor |
KR20160116728A (en) * | 2015-03-31 | 2016-10-10 | 윤재호 | Password generator, Financial transaction system and method using that password generator |
CN109472906A (en) * | 2018-12-26 | 2019-03-15 | 上海银基信息安全技术股份有限公司 | Digital key generation method, application method, device, system, terminal and medium |
-
2008
- 2008-06-27 KR KR1020080061881A patent/KR20100001811A/en not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014107060A1 (en) * | 2013-01-07 | 2014-07-10 | 주식회사 안랩 | Apparatus for securing mobile data and method therefor |
KR101473656B1 (en) * | 2013-01-07 | 2014-12-24 | 주식회사 안랩 | Method and apparatus for security of mobile data |
KR20160116728A (en) * | 2015-03-31 | 2016-10-10 | 윤재호 | Password generator, Financial transaction system and method using that password generator |
CN109472906A (en) * | 2018-12-26 | 2019-03-15 | 上海银基信息安全技术股份有限公司 | Digital key generation method, application method, device, system, terminal and medium |
CN109472906B (en) * | 2018-12-26 | 2020-11-10 | 上海银基信息安全技术股份有限公司 | Digital key generation method, application method, device, system, terminal and medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100751428B1 (en) | System for certify one-time password and method for generating one-time password | |
US11683187B2 (en) | User authentication with self-signed certificate and identity verification and migration | |
RU2506637C2 (en) | Method and device for verifying dynamic password | |
US20220191012A1 (en) | Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System | |
US9871821B2 (en) | Securely operating a process using user-specific and device-specific security constraints | |
US8417964B2 (en) | Software module management device and program | |
US20130318576A1 (en) | Method, device, and system for managing user authentication | |
CN111213171A (en) | Method and apparatus for secure offline payment | |
CN106302476B (en) | Network node encryption method and network node encryption device | |
CN112671720B (en) | Token construction method, device and equipment for cloud platform resource access control | |
JP2017517823A (en) | Techniques for operating services with machine-generated authentication tokens | |
JPWO2019239591A1 (en) | Authentication system, authentication method, application provider, authentication device, and authentication program | |
CN108335105B (en) | Data processing method and related equipment | |
KR20080087917A (en) | System for certify one-time password, system for issue a seed, and method for generating one-time password | |
AU2012244214B2 (en) | Remote device authentication system and method | |
CN110263574A (en) | Data managing method, device, system and readable storage medium storing program for executing | |
KR20210095061A (en) | Method for providing authentification service by using decentralized identity and server using the same | |
EP2273416A1 (en) | Method of managing a one-time password in a portable electronic device | |
CN109981677A (en) | A kind of credit management method and device | |
CN109257381A (en) | A kind of key management method, system and electronic equipment | |
KR20100001811A (en) | Method for generating one time password and system therefor | |
CN111178896B (en) | Bus taking payment method, device and storage medium | |
CN115115384A (en) | Processing method and device of excitation event, electronic equipment and storage medium | |
KR20090096258A (en) | user authentication method and system using detour network based on the one time password | |
US11728989B2 (en) | Information communication system for establishing pairing in information communication network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |