Nothing Special   »   [go: up one dir, main page]

KR20190017370A - 해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치 - Google Patents

해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치 Download PDF

Info

Publication number
KR20190017370A
KR20190017370A KR1020170102141A KR20170102141A KR20190017370A KR 20190017370 A KR20190017370 A KR 20190017370A KR 1020170102141 A KR1020170102141 A KR 1020170102141A KR 20170102141 A KR20170102141 A KR 20170102141A KR 20190017370 A KR20190017370 A KR 20190017370A
Authority
KR
South Korea
Prior art keywords
value
authentication
user terminal
seed
seed value
Prior art date
Application number
KR1020170102141A
Other languages
English (en)
Other versions
KR102020111B1 (ko
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 KR1020170102141A priority Critical patent/KR102020111B1/ko
Publication of KR20190017370A publication Critical patent/KR20190017370A/ko
Application granted granted Critical
Publication of KR102020111B1 publication Critical patent/KR102020111B1/ko

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

사용자 단말의 ID(identification)를 인증 장치로 송신하는 단계, 인증 장치로부터 사용자 단말의 ID에 대응하는 인덱스(index) 값을 수신하는 단계, 사용자 단말의 시드(seed) 값 및 비밀 키(key)를 기초로 다음 시드 값을 생성하는 단계, 및 시드 값 및 다음 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하는 단계를 포함하는 일회용 패스워드를 생성하는 방법이 개시된다. 본 발명은 무한히 생성하는 시드 값을 기초로 일회용 패스워드를 생성하므로, 사용 횟수 제한이 없어 재등록을 요구하지 않고, 초기 등록 과정을 통해 사용자 단말과 인증 장치 간의 비밀 정보를 공유하지 않으므로, 기존의 일회용 패스워드의 장점을 유지하고 단점을 보완하는 효과가 있다.

Description

해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치{METHOD AND APPARATUS FOR AUTHENTICATING USER USING ONE TIME PASSWORD BASED ON HASH CHAIN}
본 발명은 일회용 패스워드(One-Time Password, OTP) 기반의 사용자 인증 방법 및 장치에 관한 것으로, 더욱 상세하게는 지속적인 사용에 있어서 재등록이 필요 없고, 사용자 단말과 인증 장치 사이에 비밀 정보의 공유가 없는 해시체인 기반의 일회용 패스워드를 이용하여 사용자를 인증하는 방법 및 장치에 관한 것이다.
최근 인터넷의 발달에 따라 이격지에서 제공하는 서비스가 증가하고 있다. 다만, 이러한 서비스 중에서 금융 서비스와 같이 사용자 본인이 아닌 경우 문제가 발생할 수 있는 서비스도 있다. 따라서, 이러한 서비스의 다양화와 함께 사용자를 직접 대면하지 않고, 이격지에서 사용자를 인증하는 방법이 계속하여 연구되고 있다.
종래에는 단순 패스워드 방식이 사용되었다. 단순 패스워드 방식은 사용자 인증을 위해 항상 동일한 패스워드를 사용하는 방식으로, 인증 장치와 사용자 단말 사이에 항상 동일한 패스워드가 전달되고, 패스워드 정보가 사전에 공유되어 있어야 하는 문제점이 있다. 특히, 패스워드 정보가 사전에 공유되는 경우, 패스워드 유출 및 악용될 가능성이 존재하고, 인증 장치에서 패스워드 정보가 암호화되어 저장되어도 사용자 단말에서 인증 장치로 전송된 패스워드가 처리되는 과정에서 노출될 가능성이 있다.
이러한 단순 패스워드 방식의 문제점을 해결하기 위해 램포트(Lamport)는 일회용 패스워드(One-Time Password, OTP) 방식을 제안하였다. 램포트 일회용 패스워드 방식은 사용자 인증 시마다 상이한 패스워드를 사용하는 방식으로, 초기 등록 과정을 통해 인증 장치와 사용자 단말 사이에 항상 상이한 패스워드가 전달되고, 패스워드 정보가 사전에 공유되지 않는다는 장점이 있다. 다만, 일회용 패스워드 방식도 사용 횟수가 제한적이므로 사용 횟수를 모두 소진한 경우, 재등록이 요구되고, 사용자 인증 시마다 일회용 패스워드를 생성하기 위해 해시체인(hash chain) 길이만큼의 해시함수(hash function) 계산이 요구되는 단점이 있다.
최근 연구들은 이러한 단점을 극복하기 위해 재등록 방지를 위한 추가적인 전자 서명 등의 무거운 암호 연산을 수반하는 일회용 패스워드 및 사용자 단말과 인증 장치가 대칭키(symmetric key)를 공유하고 동기화된 클럭(clock)을 이용하는 챌린지-리스폰스(challenge-response) 방식의 일회용 패스워드를 개발하였다. 다만, 상술한 최근 연구에 따른 일회용 패스워드는 연산이 가볍고, 비밀 정보의 사전 공유가 없는 기존 일회용 패스워드의 장점을 잃어버리는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 재등록 및 비밀 공유가 없는 해시체인 기반의 일회용 패스워드를 생성하는 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 재등록 및 비밀 공유가 없는 해시체인 기반의 일회용 패스워드를 통해 사용자를 인증하는 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 재등록 및 비밀 공유가 없는 해시체인 기반의 일회용 패스워드를 생성하는 사용자 단말을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 재등록 및 비밀 공유가 없는 해시체인 기반의 일회용 패스워드를 통해 사용자를 인증하는 단말을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 단말에서 수행되는 일회용 패스워드를 생성 방법은, 사용자 단말의 ID(identification)를 인증 장치로 송신하는 단계, 인증 장치로부터 사용자 단말의 ID에 대응하는 인덱스(index) 값을 수신하는 단계, 사용자 단말의 시드(seed) 값 및 비밀 키(key)를 기초로 다음 시드 값을 생성하는 단계, 및 시드 값 및 다음 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하는 단계를 포함할 수 있다.
여기서, 사용자 단말의 ID를 인증 장치로 송신하는 단계 전에 사용자 단말을 인증 장치에 등록하는 단계를 더 포함할 수 있다.
여기서, 사용자 단말을 인증 장치에 등록하는 단계는, 두 개의 임의의 시드 값을 생성하는 단계, 두 개의 임의의 시드 값을 기초로 해시 함수를 이용하여 초기 패스워드를 생성하는 단계, 및 초기 패스워드 및 사용자 단말의 ID를 인증 장치로 송신하여 사용자 단말을 인증 장치에 등록하는 단계를 포함할 수 있다.
여기서, 사용자 단말의 시드 값 및 비밀 키를 기초로 다음 시드 값을 생성하는 단계는, 상기 사용자 단말의 시드 값은 제1 시드 값 및 제2 시드 값을 포함하고, 상기 제1 시드 값보다 생성된 시기가 늦은 상기 제2 시드 값 및 상기 비밀 키를 기초로 상기 다음 시드 값인 제3 시드 값을 생성하는 단계를 포함할 수 있다.
여기서, 제2 시드 값 및 비밀 키를 기초로 다음 시드 값인 제3 시드 값을 생성하는 단계는, 제2 시드 값 및 비밀 키에 해시 함수를 적용하여 제3 시드 값을 생성하는 단계를 포함할 수 있다.
여기서, 시드 값 및 다음 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하는 단계는, 제1 시드 값, 제2 시드 값 및 제3 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하는 단계를 포함할 수 있다.
여기서, 제1 시드 값, 제2 시드 값 및 제3 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하는 단계는, 제2 시드 값 및 제3 시드 값에 해시 함수를 적용한 값, 제2 시드 값에 해시 함수를 적용한 값 및 제1 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하는 단계를 포함할 수 있다.
여기서, 제1 시드 값을 삭제하고, 제2 시드 값 및 제3 시드 값을 사용자 단말의 새로운 시드 값으로 저장하는 단계를 더 포함할 수 있다.
여기서, 인증 장치로 인덱스 값에 대응되는 패스워드를 송신하는 단계를 더 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 인증 장치에서 수행되는 사용자 인증 방법은, 사용자 단말의 ID(identification)를 수신하는 단계, 사용자 단말로 사용자 단말의 ID에 대응하는 인덱스(index) 값을 송신하는 단계, 사용자 단말로부터 인덱스 값에 대응되는 패스워드를 수신하는 단계, 및 패스워드는 제1 인증 값, 제2 인증 값 및 제3 인증 값을 포함하고, 인증 장치의 보관 값, 제1 인증 값 및 제2 인증 값을 기초로 사용자를 인증하는 단계를 포함할 수 있다.
여기서, 사용자 단말의 ID를 수신하는 단계 전에 사용자 단말을 인증 장치에 등록하는 단계를 더 포함할 수 있다.
여기서, 사용자 단말을 인증 장치에 등록하는 단계는, 사용자 단말로부터 초기 패스워드 및 사용자 단말의 ID를 수신하는 단계, 및 초기 패스워드를 인증 장치의 보관 값으로 저장하는 단계를 포함할 수 있다.
여기서, 인증 장치의 보관 값, 제1 인증 값 및 제2 인증 값을 기초로 사용자를 인증하는 단계는, 제1 인증 값 및 제2 인증 값에 해시 함수를 적용하여 인증 장치의 보관 값과의 동일 여부를 판단하는 단계를 포함할 수 있다.
여기서, 제1 인증 값 및 제2 인증 값에 해시 함수를 적용하여 인증 장치의 보관 값과의 동일 여부를 판단하는 단계는, 인증 장치의 보관 값은 제1 보관 값 및 제2 보관 값을 포함하고, 제1 인증 값 및 제2 인증 값에 해시 함수를 적용한 값 및 제1 인증 값에 해시 함수를 적용한 값이 제1 보관 값 및 제2 보관 값과 각각 동일한지를 판단하는 단계를 포함할 수 있다.
여기서, 인증 장치의 보관 값을 삭제하고, 제2 인증 값 및 제3 인증 값을 인증 장치의 새로운 보관 값으로 저장하는 단계를 더 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 사용자 단말은, 프로세서(processor), 및 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고, 적어도 하나의 명령은, 사용자 단말의 ID(identification)를 인증 장치로 송신하도록 실행되고, 인증 장치로부터 사용자 단말의 ID에 대응하는 인덱스(index) 값을 수신하도록 실행되고, 사용자 단말의 시드 값은 제1 시드 값 및 제2 시드 값을 포함하고, 제1 시드 값보다 생성된 시기가 늦은 제2 시드 값 및 비밀 키를 기초로 제3 시드 값을 생성하도록 실행되고, 제1 시드 값, 제2 시드 값 및 제3 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 사용자 단말을 인증 장치에 등록하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 제1 시드 값을 삭제하고, 제2 시드 값 및 제3 시드 값을 사용자 단말의 새로운 시드 값으로 저장하도록 실행될 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 인증 장치는, 프로세서(processor), 및 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고, 적어도 하나의 명령은, 사용자 단말의 ID(identification)를 수신하도록 실행되고, 사용자 단말로 사용자 단말의 ID에 대응하는 인덱스(index) 값을 송신하도록 실행되고, 사용자 단말로부터 인덱스 값에 대응되는 패스워드를 수신하도록 실행되고, 패스워드는 제1 인증 값, 제2 인증 값 및 제3 인증 값을 포함하고, 인증 장치의 보관 값, 제1 인증 값 및 제2 인증 값을 기초로 사용자를 인증하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 사용자 단말을 인증 장치에 등록하도록 실행될 수 있다.
여기서, 적어도 하나의 명령은, 인증 장치의 보관 값을 삭제하고, 제2 인증 값 및 제3 인증 값을 인증 장치의 새로운 보관 값으로 저장하도록 실행될 수 있다.
본 발명에 따르면, 해시함수를 이용하여 일회용 패스워드를 생성하므로, 해시함수의 제2 역상 저항성 성실로 인해 보안의 안전성을 제공할 수 있다.
본 발명에 따르면, 항상 일회용 패스워드 생성을 하기 위해 3번의 해시함수 연산이 요구되지만, 기존의 일회용 패스워드 방식은 초반부의 일회용 패스워드 생성 시 많은 연산이 요구되므로, 기존의 일회용 패스워드 방식보다 적은 연산량이 요구될 수 있다.
본 발명에 따르면, 무한하게 일회용 패스워드를 생성할 수 있으므로, 기존 일회용 패스워드에서 요구되는 재등록을 요구하지 않을 수 있다.
본 발명에 따르면, 사용자 단말과 인증 장치 간의 비밀 정보를 공유하지 않는 기존 일회용 패스워드의 장점을 그대로 제공할 수 있다.
도 1은 램포트 일회용 패스워드를 이용하여 사용자를 인증하는 방법을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 일회용 패스워드를 생성하는 사용자 단말의 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법을 일반화한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법을 설명하는 플로우 차트이다.
도 6은 본 발명의 일 실시예에 따른 일회용 패스워드, 단순 패스워드 및 램포트 일회용 패스워드를 비교한 표이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. 이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 램포트 일회용 패스워드를 이용하여 사용자를 인증하는 방법을 설명하는 도면이다.
램포트(Lamport)가 제안한 일회용 패스워드(One-Time password, OTP) 방식은 암호 해시 함수(cryptographic hash function)을 기반으로 설계될 수 있다. 여기서, 암호 해시 함수는 제1 역상 저항성(preimage resistance), 제2 역상 저항성(second preimage resistance) 및 충돌 저항성(collision resistance)의 성질을 가질 수 있다. 제1 역상 저항성은 해시 값(hash value)으로부터 해시 값을 생성한 입력 값을 찾는 것이 계산상 매우 어려운 성질을 의미할 수 있고, 제2 역상 저항성은 입력 값이 주어진 경우 입력 값에 따른 해시 값와 동일한 해시 값을 가지는 다른 입력 값을 찾는 것이 계산상 매우 어려운 성질을 의미할 수 있다. 충돌 저항성은 동일한 해시 값을 가지는 두 개의 입력 값을 찾는 것이 계산상 매우 어려운 성질을 의미할 수 있다. 상술한 암호 해시 함수는 본 발명에 따른 일회용 패스워드를 이용하여 사용자를 인증하는 방법에서도 사용될 수 있다.
도 1을 참조하면, 램포트 일회용 패스워드 방식은 사용자 단말은 임의의 시드 값 h 0 를 생성할 수 있고, 암호 해시 함수 h( )를 연속적으로 적용하여 복수의 해시 값 h 1 , h 2 , ... , h n -1 h n 를 생성할 수 있다. 또한, 사용자 단말은 마지막으로 생성된 해시 값 h n 및 사용자 단말의 ID(Identification)를 인증 장치에 송신하여, 사용자 단말을 인증 장치에 등록시킬 수 있다. 여기서, 마지막으로 생성된 해시 값은 비밀 정보가 아닌 공개된 값으로 간주할 수 있다. 이후, 사용자 단말에서 사용자 인증을 수행하는 경우, 사용자 단말은 인증 장치로 사용자 단말의 ID를 송신할 수 있고, 인증 장치로부터 순차적인 인덱스 값(j=1, 2, ..., n)을 수신할 수 있다. 사용자 단말은 수신한 인덱스 값에 대응되는 일회용 패스워드 h n -1 , h n - 2 , ..., h 0 를 인증 장치로 송신할 수 있다. 여기서, 인증 장치가 사용자를 인증하는 방법을 설명하기 위해 인덱스 값이 임의의 j 라고 가정한다. 인증 장치는 수신한 일회용 패스워드 h n-j 에 암호 해시 함수를 적용하여 인증 장치가 보관하고 있는 h n -j+1 값과 동일한지 판단하여 사용자 인증을 수행할 수 있다. 다시 말해, 인증 장치는 h n -j+1 = h( h n -j )를 만족하는 경우, 사용자 인증에 성공할 수 있다.
또한, 램포트 일회용 패스워드 방식은 사용자 단말에서 보관하고 있는 인덱스 값 j p 가 인증 장치에서 보관하고 있는 인덱스 값 j v 보다 큰 경우, 인증 장치는 인덱스 값이 일치하도록 수신한 h n -jp 에 암호 해시 함수를 (j p -j v +1) 번 적용하여 인덱스 값의 동기화를 통해 사용자 인증을 수행할 수 있다.
램포트 일회용 패스워드 방식은 사용자 단말과 인증 장치 간의 통신에서 h n -j 이 노출되어도 암호 해시 함수의 역상 저항성으로 인해 다음 일회용 패스워드인 h n -j-1 의 도출은 계산적으로 매우 어렵고, 가벼운 연산을 수반하는 암호 해시 함수를 기반으로 하고 있으므로 매우 효율적인 장점이 있다.
이러한 램포트 일회용 패스워드 방식의 안전성을 위해서는 시드 값에 대하여 누구도 접근할 수 없는 기밀성이 요구될 수 있으며, 사용자 단말의 ID, 해시 값 및 인덱스 값에 대한 기밀성은 요구되지 않을 수 있으나, 무결성이 요구될 수 있다. 따라서, 사용자 단말의 ID, 해시 값 및 인덱스 값에 대한 불법적인 변조를 방지하는 접근 제어 메커니즘(access control mechanism)이 인증 장치에 요구될 수 있다. 또한, 램포트 일회용 패스워드 방식은 사용자 단말과 인증 장치 사이의 중간자(man-in-the-middle) 공격은 불가능하다고 가정하고 있다. 이러한 가정을 하지 않는 경우, 사용자 단말이 전송하는 일회용 패스워드를 공격자가 가로채어 인증 장치를 가장(impersonation)할 수 있다. 현재, 상술한 요구 사항 및 가정 사항은 인증 장치에 대하여 인증서 기반의 보안 모드가 적용되는 TLS(Transport Layer Security)/DTLS(Datagram Transport Layer Security)와 같은 추가적인 보안 메커니즘을 적용하여 충족될 수 있다.
다만, 램포트 일회용 패스워드 방식은 사전에 등록된 해시 값을 기준으로 역방향으로 사용되기 때문에 사용 횟수가 제한적이므로, 사용 횟수를 모두 소진한 경우 재등록이 요구되고, 사용자 단말이 일회용 패스워드를 생성하기 위해 여러 번의 암호 해시 함수 연산을 수행하여야 하는 사용상의 단점이 있다. 다시 말해, h n -j 를 산출하기 위해서는 시드 값에 n-j 번의 암호 해시 함수를 적용해야 하므로 높은 연산량을 요구하는 단점이 있다.
이후, 램포트 일회용 패스워드의 단점을 보완하기 위해 두 가지 유형의 기법들이 연구되었다. 첫 번째 유형은 사용 횟수 제한에 따른 재등록의 불편함을 해소하는 기법이다. 다만, 이들은 재등록 방지를 위해 추가적인 전자 서명 등의 무거운 암호 연산을 수반하거나, 비밀 정보의 사전 등록을 전제로 하고 있으므로, 기존의 일회용 패스워드의 연산의 가벼움 및 비밀 정보의 사전 공유가 필요 없는 장점을 잃어버려 실효성이 떨어진다. 두 번째 유형은 대칭키(symmetric key)를 공유하고 동기화된 클럭(clock)을 이용하는 챌린지-리스폰스(challenge-response) 방식의 일회용 패스워드이다. 챌린지-리스폰스 방식의 일회용 패스워드는 클럭으로부터 획득되는 타임스탬프(timestamp)를 챌린지하고, 대칭키로 암호화한 결과 값을 리스폰스하는 일회용 패스워드이다. 다시 말해, 사용자 단말은 리스폰스를 계산하고, 리스폰스를 인증 장치로 송신하면, 인증 장치는 자신이 계산한 리스폰스와 일치하는 지를 확인함으로써 사용자 인증을 수행한다. 다만, 이들도 사용자 단말 및 인증 장치 간에 비밀 정보를 공유하는 점에서 문제점이 있다. 따라서, 본 발명은 상술한 문제점을 보완하는 새로운 해시체인 기반의 일회용 패스워드를 제안한다.
도 2는 본 발명의 일 실시예에 따른 일회용 패스워드를 생성하는 사용자 단말의 블록 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 일회용 패스워드를 생성하는 사용자 단말(200)은 적어도 하나의 프로세서(210), 메모리(220) 및 저장 장치(230)를 포함할 수 있다.
프로세서(210)는 메모리(220) 및/또는 저장 장치(230)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit; CPU), 그래픽 처리 장치(graphics processing unit; GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220)와 저장 장치(230)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory; ROM) 및/또는 랜덤 액세스 메모리(random access memory; RAM)로 구성될 수 있다.
메모리(220)는 프로세서(210)를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 사용자 단말의 ID(identification)를 인증 장치로 송신하는 명령, 인증 장치로부터 사용자 단말의 ID에 대응하는 인덱스(index) 값을 수신하는 명령, 사용자 단말의 두 개의 시드 값 중 생성된 시기가 늦은 제2 시드 값 및 비밀 키를 기초로 제3 시드 값을 생성하는 명령, 및 제1 시드 값, 제2 시드 값 및 제3 시드 값을 기초로 인덱스 값에 대응되는 패스워드를 생성하는 명령을 포함할 수 있다. 또한, 사용자 단말을 인증 장치에 등록하는 명령 및 제1 시드 값을 삭제하고, 제2 시드 값 및 제3 시드 값을 사용자 단말의 새로운 시드 값으로 저장하는 명령 중 적어도 하나를 더 포함할 수 있다. 일회용 패스워드를 생성하는 방법의 더욱 상세한 설명은 도 3과 함께 후술하겠다.
본 발명의 일 실시예에 따른 일회용 패스워드를 이용하여 인증을 수행하는 인증 장치는 일회용 패스워드를 생성하는 사용자 단말(200)과 동일한 구조를 가질 수 있다. 다시 말해, 본 발명의 일 실시예에 따른 인증 장치도 적어도 하나의 프로세서, 메모리 및 저장 장치를 포함할 수 있다.
또한, 사용자 인증 장치의 메모리는 사용자 인증 장치의 프로세서를 통해 실행되는 적어도 하나의 명령을 저장하고 있을 수 있다. 적어도 하나의 명령은 사용자 단말의 ID(identification)를 수신하는 명령, 사용자 단말로부터 사용자 단말의 ID에 대응하는 인덱스(index) 값을 송신하는 명령, 사용자 단말로부터 인덱스 값에 대응되는 패스워드를 수신하는 명령, 및 패스워드는 제1 인증 값, 제2 인증 값 및 제3 인증 값을 포함하고, 인증 장치의 보관 값, 제1 인증 값 및 제2 인증 값을 기초로 사용자를 인증하는 명령을 포함할 수 있다. 또한, 사용자 단말을 인증 장치에 등록하는 명령 및 인증 장치의 보관 값을 삭제하고, 제2 인증 값 및 제3 인증 값을 인증 장치의 새로운 보관 값으로 저장하는 명령 중 적어도 하나를 더 포함할 수 있다. 일회용 패스워드를 이용하여 사용자를 인증하는 방법의 더욱 상세한 설명은 도 3과 함께 후술하겠다.
도 3은 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법을 일반화한 개념도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법은 일회용 패스워드를 생성하는 사용자 단말(200) 및 일회용 패스워드를 수신하여 사용자를 인증하는 인증 장치(300)의 각 동작 및 상호 정보 교환에 의해 수행될 수 있다.
사용자 단말(200)은 시드 값을 기초로 일회용 패스워드를 생성할 수 있다. 더욱 구체적으로는, 사용자 단말(200)은 두 개의 시드 값
Figure pat00001
Figure pat00002
을 저장하고 있으며, 두 개의 시드 값 중 생성된 시기가 늦은
Figure pat00003
및 비밀 키(key)에 해시 함수를 적용하여
Figure pat00004
를 생성할 수 있다. 여기서, 비밀 키는 사용자 단말(200)만이 접근할 수 있고, 그 외에는 접근을 금지할 수 있다. 또한, 사용자 단말(200)은
Figure pat00005
에 해시 함수를 적용하여
Figure pat00006
을 생성할 수 있으며,
Figure pat00007
에 해시 함수를 적용하여
Figure pat00008
을 생성할 수 있고,
Figure pat00009
Figure pat00010
에 해시 함수를 적용하여
Figure pat00011
을 생성할 수 있다. 사용자 단말(200)은
Figure pat00012
,
Figure pat00013
Figure pat00014
을 함께 일회용 패스워드로써 인증 장치(300)로 송신할 수 있다. 이후, 사용자 단말(200)은 세 개의 시드 값
Figure pat00015
,
Figure pat00016
Figure pat00017
중 생성된 시기가 빠른
Figure pat00018
를 제거하고,
Figure pat00019
Figure pat00020
를 저장할 수 있다.
인증 장치(300)는 수신한 일회용 패스워드 및 자신이 저장하고 있는 값을 이용하여 사용자를 인증할 수 있다. 더욱 구체적으로는, 인증 장치(300)는 초기 등록 단계에서 사용자 단말(200)로부터 수신한 초기 패스워드를 기초로
Figure pat00021
Figure pat00022
을 저장하고 있다. 인증 장치(300)는 수신한 일회용 패스워드에 포함되어 있는 세 개의 인증 값
Figure pat00023
,
Figure pat00024
Figure pat00025
중에서
Figure pat00026
에 해시 함수를 적용한 해시 값과 자신이 저장하고 있는
Figure pat00027
이 동일한지 판단할 수 있고,
Figure pat00028
Figure pat00029
에 해시 함수를 적용한 해시 값과 자신이 저장하고 있는
Figure pat00030
이 동일한지 판단할 수 있다. 인증 장치(300)는 판단 결과 모두 동일한 경우 사용자 인증에 성공한 것으로 판단할 수 있다. 또한, 인증 장치(300)는 자신이 저장하고 있던
Figure pat00031
Figure pat00032
을 수신한 일회용 패스워드에 포함되어 있는 세 개의 인증 값
Figure pat00033
,
Figure pat00034
Figure pat00035
중에서
Figure pat00036
Figure pat00037
로 교체하여 저장할 수 있다.
본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법의 초기 등록 단계를 포함하여 순차적으로 사용자를 인증하는 방법을 도 4와 함께 더욱 상세히 후술하겠다.
도 4는 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법을 설명하는 도면이다.
도 4를 참조하면, 사용자 단말(200)은 우선 초기 등록 단계를 통해 인증 장치(300)에 사용자 단말(200)을 등록할 수 있다. 구체적으로, 사용자 단말(200)은 두 개의 임의의 초기 시드 값
Figure pat00038
Figure pat00039
를 선정 또는 생성할 수 있다. 사용자 단말(200)은 초기 시드 값 중
Figure pat00040
에 해시 함수를 적용하여
Figure pat00041
를 생성할 수 있으며, 초기 시드 값 중
Figure pat00042
에 해시 함수를 적용하여
Figure pat00043
을 생성할 수 있고,
Figure pat00044
Figure pat00045
에 해시 함수를 적용하여
Figure pat00046
을 생성할 수 있다. 사용자 단말(200)은 상술한 초기 계산 과정을 통해 초기 패스워드
Figure pat00047
Figure pat00048
생성하고, 초기 패스워드와 사용자 단말의 ID를 인증 장치(300)로 송신하여 인증 장치(300)에 사용자 단말(200)을 등록할 수 있다. 여기서, 사용자 단말(200)이 등록을 위해 송신하는 정보는 인덱스 값 1을 더 포함할 수 있고, 사용자 단말(200)은
Figure pat00049
을 인증 장치(300)로 송신할 수 있다. 초기 등록 단계 이후, 사용자 단말(200) 및 인증 장치(300)는 일회용 패스워드를 통해 사용자를 인증할 수 있다.
사용자를 인증하는 방법에 대하여 구체적으로 설명하면 다음과 같다. 사용자 단말(200)은 사용자 인증을 위해 인증 장치(300)로 사용자 단말의 ID를 송신할 수 있다. 인증 장치(300)는 사용자 단말의 ID를 수신하여 등록되어 있는 사용자 단말의 ID와 비교할 수 있고, 일회용 패스워드를 수신하기 위해 인덱스 값 j=1을 사용자 단말(200)로 송신할 수 있다. 사용자 단말(200)은 수신한 인덱스 값 1에 따른 일회용 패스워드(1st OTP)를 생성할 수 있다. 인덱스 값 1에 따른 일회용 패스워드는 세 개의 인증 값
Figure pat00050
,
Figure pat00051
Figure pat00052
을 포함할 수 있다. 여기서, 사용자 단말(200)은
Figure pat00053
Figure pat00054
에 해시 함수를 적용하여
Figure pat00055
을 생성할 수 있으며,
Figure pat00056
에 해시 함수를 적용하여
Figure pat00057
를 생성할 수 있다. 또한, 사용자 단말(200)은
Figure pat00058
및 비밀 키(key)에 해시 함수를 적용하여 세 번째 시드 값인
Figure pat00059
을 생성할 수 있으며, 두 개의 시드 값 및 인덱스 값
Figure pat00060
을 저장하고 있을 수 있다.
인증 장치(300)는
Figure pat00061
을 저장하고 있을 수 있고, 수신한 인덱스 값 1에 따른 일회용 패스워드 중 하나의 인증 값
Figure pat00062
에 해시 함수를 적용한 해시 값과 자신이 저장하고 있는
Figure pat00063
이 동일한 지 판단할 수 있다. 또한, 인증 장치(300)는 두 개의 인증 값
Figure pat00064
Figure pat00065
에 해시 함수를 적용한 해시 값과 자신이 저장하고 있는
Figure pat00066
이 동일한 지 판단할 수 있다. 인증 장치(300)는 판단 결과 모두 동일한 경우 사용자를 인증할 수 있으며, 수신한 인덱스 값 1에 따른 일회용 패스워드 중 두 개의 인증 값
Figure pat00067
Figure pat00068
을 자신이 저장하고 있는
Figure pat00069
Figure pat00070
과 교체하여
Figure pat00071
를 저장할 수 있다.
상술한 바와 같이 사용자 인증을 수행한 후, 다시 사용자 인증을 하는 경우, 사용자 단말(200)은 인증 장치(300)로 사용자 단말의 ID를 송신할 수 있고, 인증 장치(300)는 인덱스 값 j=2를 사용자 단말(200)로 송신할 수 있다. 사용자 단말(200)은 수신한 인덱스 값 2에 따른 일회용 패스워드(2nd OTP)를 생성할 수 있다. 인덱스 값 2에 따른 일회용 패스워드는 인덱스 값 1에 따른 일회용 패스워드와 유사하게 세 개의 인증 값
Figure pat00072
,
Figure pat00073
Figure pat00074
를 포함할 수 있다. 여기서, 사용자 단말(200)은 인덱스 값 1에 따른 일회용 패스워드를 생성하는 것과 같이, 은
Figure pat00075
Figure pat00076
에 해시 함수를 적용하여
Figure pat00077
를 생성할 수 있으며,
Figure pat00078
에 해시 함수를 적용하여
Figure pat00079
을 생성할 수 있다. 또한, 사용자 단말(200)은
Figure pat00080
Figure pat00081
생성시 사용하였던 비밀 키(key)에 해시 함수를 적용하여 네 번째 시드 값인
Figure pat00082
를 생성할 수 있으며, 두 개의 시드 값 및 인덱스 값
Figure pat00083
을 저장하고 있을 수 있다.
인증 장치(300)는
Figure pat00084
를 저장하고 있을 수 있고, 수신한 인덱스 값 2에 따른 일회용 패스워드 중 하나의 인증 값
Figure pat00085
에 해시 함수를 적용한 해시 값과 자신이 저장하고 있는
Figure pat00086
이 동일한지 판단할 수 있다. 또한, 인증 장치(300)는 두 개의 인증 값,
Figure pat00087
Figure pat00088
에 해시 함수를 적용한 해시 값과 자신이 저장하고 있는
Figure pat00089
이 동일한지 판단할 수 있다. 인증 장치(300)는 판단 결과 모두 동일한 경우 사용자를 인증할 수 있으며, 수신한 인덱스 값 2에 따른 일회용 패스워드 중 두 개의 인증 값
Figure pat00090
Figure pat00091
를 자신이 저장하고 있는
Figure pat00092
Figure pat00093
과 교체하여
Figure pat00094
을 저장할 수 있다.
또한, 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법에서 사용자 단말(200) 및 인증 장치(300) 간에 인덱스 값의 불일치가 발생할 수 있다. 다시 말해, 인증 장치(300)의 인덱스 값이 사용자 단말(200)의 인덱스 값보다 큰 값을 가질 수 있다. 이와 관련하여, 사용자 단말(200)이 자신이 보관하고 있는 인덱스 값과 수신한 인덱스 값의 불일치를 인지할 수 있으며, 인덱스 값의 불일치를 인지한 경우, 인덱스 값의 동기화를 목적으로 동기화에 필요한 시드 값들을 함께 인증 장치(300)로 송신할 수 있다. 다시 말해, 사용자 단말(200)의 인덱스 값이 j p 이고, 인증 장치(300)의 인덱스 값이 j v 라고 가정하면, 사용자 단말(200)은
Figure pat00095
을 인증 장치(300)로 추가 송신할 수 있다. 인증 장치(300)는 수신한
Figure pat00096
을 기초로 인덱스 값 j p -1에 대응되는 일회용 패스워드
Figure pat00097
을 산출할 수 있으며, 이후 사용자 인증 과정은 동일할 수 있다.
본 발명의 일 실시예에 따르면, 상술한 과정을 반복하여 무한히 사용자 인증을 수행할 수 있으며, 사용자 단말(200)은 두 개의 시드 값을 유지할 수 있고, 인증 장치(300)는 일회용 패스워드와 비교하기 위한 두 개의 값을 유지할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 사용자 인증 시 해시 함수의 연산 횟수가 3번이므로, 항상 낮은 연산량을 유지할 수 있고, 노출되어도 무관한 초기 패스워드를 제외하고는 비밀 정보를 공유하지 않을 수 있는 장점이 있다.
도 5는 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법을 설명하는 플로우 차트이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 일회용 패스워드를 이용한 사용자 인증 방법은 일회성의 초기 등록 단계 및 반복하여 사용자를 인증하는 사용자 인증 단계를 포함할 수 있다.
초기 등록 단계에서 사용자 단말(200)은 임의의 두 개의 시드 값을 생성하고, 두 개의 시드 값을 기초로 초기 패스워드를 생성할 수 있다(S510). 또한, 사용자 단말(200)은 초기 패스워드 및 자신의 사용자 단말 ID를 인증 장치(300)로 송신하여 인증 장치(300)에 사용자 단말(200)를 등록시킬 수 있다(S520). 상술한 바와 같이 초기 등록 단계는 일회만 수행하며, 이후 사용자 인증 시에는 수행하지 않을 수 있다. 다만, 사용자 인증을 위해서는 초기 등록 단계가 적어도 한 번은 선행될 수 있다.
사용자 인증 단계에서 사용자 단말(200)은 자신의 사용자 단말 ID를 인증 장치(300)로 송신할 수 있다(S530). 사용자 단말 ID를 수신한 인증 장치(300)는 사용자 단말 ID를 확인하고, 인덱스(index) 값을 사용자 단말(200)로 송신할 수 있다(S540). 인덱스 값을 수신한 사용자 단말(200)은 인덱스 값에 대응되는 일회용 패스워드를 생성할 수 있다(S550). 여기서, 사용자 단말(200)은 이전 시드 값 및 비밀 키를 이용하여 다음 시드 값을 생성할 수 있으며, 세 개의 시드 값에 해시 함수를 적용하여 일회용 패스워드를 생성할 수 있다. 사용자 단말(200)은 사용자 인증을 위해 생성한 일회용 패스워드를 인증 장치(300)로 송신할 수 있고(S560), 세 개의 시드 값 중 생성된 시기가 가장 늦은 하나의 시드 값을 삭제하여 두 개의 시드 값을 유지할 수 있고, 이에 따라 시드 값 교체가 수행될 수 있다(S570). 일회용 패스워드를 수신한 인증 장치(300)는 자신이 저장하고 있는 보관 값과 비교하여 사용자를 인증할 수 있다(S580). 여기서, 인증 장치(300)는 수신한 일회용 패스워드에 해시 함수를 적용한 해시 값과 자신이 저장하고 있는 보관 값의 동일 여부를 판단하여 사용자를 인증할 수 있다. 이후, 인증 장치(300)는 자신이 저장하고 있는 보관 값을 삭제하고, 수신한 일회용 패스워드 중 두 개의 인증 값을 저장함으로써, 자신의 보관 값을 교체할 수 있다(S590).
도 6은 본 발명의 일 실시예에 따른 일회용 패스워드, 단순 패스워드 및 램포트 일회용 패스워드를 비교한 표이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 일회용 패스워드는 단순 패스워드 및 램포트 일회용 패스워드의 문제점을 모두 보완할 수 있다. 본 발명의 일 실시예에 따른 일회용 패스워드는 사용자 인증 시마다 상이한 패스워드를 사용하고, 사용자 단말과 인증 장치 간의 비밀 정보를 공유하지 않음으로써, 단순 패스워드의 고정 패스워드 및 비밀 정보 공유의 문제점을 보완할 수 있다. 다시 말해, 본 발명의 일 실시예에 따른 일회용 패스워드는 초기 등록 단계를 통해 인증 장치가 저장하고 있는 값들의 기밀성을 요구하지 않을 수 있다. 즉, 저장하고 있는 값들이 유출되어도 공격자가 사용자 단말을 가장하여 인증 장치로부터 인증을 성공할 수 없다.
또한, 본 발명의 일 실시예에 따른 일회용 패스워드는 재등록을 요구하지 않으며, 해시 함수 연산에 있어서, 1,000번의 사용자 인증을 기준으로 일회용 패스워드 생성 시 3,000번 및 일회용 패스워드 검증 시 2,000번을 수행하므로, 램포트 일회용 패스워드의 재등록 및 높은 해시 함수 연산량의 문제점을 보완하고 있다. 다시 말해, 본 발명의 일 실시예에 따른 일회용 패스워드는 3번의 해시 함수 연산을 수행하여 일회용 패스워드를 생성할 수 있다. 또한, 해시 값들이 순방향으로 생성되며, 부분적으로 역방향으로 사용되기 때문에 해시 값 소진에 따른 재등록을 요구하지 않을 수 있다.
본 발명의 실시예에 따른 일회용 패스워드 생성 방법 및 사용자 인증 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
200: 사용자 단말 210: 프로세서
220: 메모리 230: 저장 장치
300: 인증 장치

Claims (21)

  1. 사용자 단말에서 일회용 패스워드(one-time password)를 생성하는 방법에 있어서,
    상기 사용자 단말의 ID(identification)를 인증 장치로 송신하는 단계;
    상기 인증 장치로부터 상기 사용자 단말의 ID에 대응하는 인덱스(index) 값을 수신하는 단계;
    상기 사용자 단말의 시드(seed) 값 및 비밀 키(key)를 기초로 다음 시드 값을 생성하는 단계; 및
    상기 시드 값 및 상기 다음 시드 값을 기초로 상기 인덱스 값에 대응되는 패스워드를 생성하는 단계를 포함하는, 일회용 패스워드 생성 방법.
  2. 청구항 1에 있어서,
    상기 사용자 단말의 ID를 인증 장치로 송신하는 단계 전에 상기 사용자 단말을 상기 인증 장치에 등록하는 단계를 더 포함하는, 일회용 패스워드 생성 방법.
  3. 청구항 2에 있어서,
    상기 사용자 단말을 상기 인증 장치에 등록하는 단계는,
    두 개의 임의의 시드 값을 생성하는 단계;
    상기 두 개의 임의의 시드 값을 기초로 해시 함수를 이용하여 초기 패스워드를 생성하는 단계; 및
    상기 초기 패스워드 및 상기 사용자 단말의 ID를 인증 장치로 송신하여 상기 사용자 단말을 상기 인증 장치에 등록하는 단계를 포함하는, 일회용 패스워드 생성 방법.
  4. 청구항 1에 있어서,
    상기 사용자 단말의 시드 값 및 비밀 키를 기초로 다음 시드 값을 생성하는 단계는,
    상기 사용자 단말의 시드 값은 제1 시드 값 및 제2 시드 값을 포함하고, 상기 제1 시드 값보다 생성된 시기가 늦은 상기 제2 시드 값 및 상기 비밀 키를 기초로 상기 다음 시드 값인 제3 시드 값을 생성하는 단계를 포함하는, 일회용 패스워드 생성 방법.
  5. 청구항 4에 있어서,
    상기 제2 시드 값 및 상기 비밀 키를 기초로 상기 다음 시드 값인 제3 시드 값을 생성하는 단계는,
    상기 제2 시드 값 및 상기 비밀 키에 해시 함수를 적용하여 상기 제3 시드 값을 생성하는 단계를 포함하는, 일회용 패스워드 생성 방법.
  6. 청구항 4에 있어서,
    상기 시드 값 및 상기 다음 시드 값을 기초로 상기 인덱스 값에 대응되는 패스워드를 생성하는 단계는,
    상기 제1 시드 값, 상기 제2 시드 값 및 상기 제3 시드 값을 기초로 상기 인덱스 값에 대응되는 패스워드를 생성하는 단계를 포함하는, 일회용 패스워드 생성 방법.
  7. 청구항 6에 있어서,
    상기 제1 시드 값, 상기 제2 시드 값 및 상기 제3 시드 값을 기초로 상기 인덱스 값에 대응되는 패스워드를 생성하는 단계는,
    상기 제2 시드 값 및 상기 제3 시드 값에 해시 함수를 적용한 값, 상기 제2 시드 값에 해시 함수를 적용한 값 및 상기 제1 시드 값을 기초로 상기 인덱스 값에 대응되는 패스워드를 생성하는 단계를 포함하는, 일회용 패스워드 생성 방법.
  8. 청구항 4에 있어서,
    상기 제1 시드 값을 삭제하고, 상기 제2 시드 값 및 상기 제3 시드 값을 상기 사용자 단말의 새로운 시드 값으로 저장하는 단계를 더 포함하는, 일회용 패스워드 생성 방법.
  9. 청구항 1에 있어서,
    상기 인증 장치로 상기 인덱스 값에 대응되는 패스워드를 송신하는 단계를 더 포함하는, 일회용 패스워드 생성 방법.
  10. 인증 장치에서 사용자를 인증하는 방법에 있어서,
    사용자 단말의 ID(identification)를 수신하는 단계;
    상기 사용자 단말로 상기 사용자 단말의 ID에 대응하는 인덱스(index) 값을 송신하는 단계;
    상기 사용자 단말로부터 상기 인덱스 값에 대응되는 패스워드를 수신하는 단계; 및
    상기 패스워드는 제1 인증 값, 제2 인증 값 및 제3 인증 값을 포함하고, 상기 인증 장치의 보관 값, 상기 제1 인증 값 및 상기 제2 인증 값을 기초로 상기 사용자를 인증하는 단계를 포함하는, 사용자 인증 방법.
  11. 청구항 10에 있어서,
    상기 사용자 단말의 ID를 수신하는 단계 전에 상기 사용자 단말을 상기 인증 장치에 등록하는 단계를 더 포함하는, 사용자 인증 방법.
  12. 청구항 11에 있어서,
    상기 사용자 단말을 상기 인증 장치에 등록하는 단계는,
    상기 사용자 단말로부터 초기 패스워드 및 상기 사용자 단말의 ID를 수신하는 단계; 및
    상기 초기 패스워드를 상기 인증 장치의 보관 값으로 저장하는 단계를 포함하는, 사용자 인증 방법.
  13. 청구항 10에 있어서,
    상기 인증 장치의 보관 값, 상기 제1 인증 값 및 상기 제2 인증 값을 기초로 상기 사용자를 인증하는 단계는,
    상기 제1 인증 값 및 상기 제2 인증 값에 해시 함수를 적용하여 상기 인증 장치의 보관 값과의 동일 여부를 판단하는 단계를 포함하는, 사용자 인증 방법.
  14. 청구항 13에 있어서,
    상기 제1 인증 값 및 상기 제2 인증 값에 해시 함수를 적용하여 상기 인증 장치의 보관 값과의 동일 여부를 판단하는 단계는,
    상기 인증 장치의 보관 값은 제1 보관 값 및 제2 보관 값을 포함하고, 상기 제1 인증 값 및 상기 제2 인증 값에 해시 함수를 적용한 값 및 상기 제1 인증 값에 해시 함수를 적용한 값이 상기 제1 보관 값 및 상기 제2 보관 값과 각각 동일한지를 판단하는 단계를 포함하는, 사용자 인증 방법.
  15. 청구항 10에 있어서,
    상기 인증 장치의 보관 값을 삭제하고, 상기 제2 인증 값 및 상기 제3 인증 값을 상기 인증 장치의 새로운 보관 값으로 저장하는 단계를 더 포함하는, 사용자 인증 방법.
  16. 일회용 패스워드(one-time password) 생성 방법을 수행하는 사용자 단말에 있어서,
    프로세서(processor); 및
    상기 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고,
    상기 적어도 하나의 명령은,
    상기 사용자 단말의 ID(identification)를 인증 장치로 송신하도록 실행되고,
    상기 인증 장치로부터 상기 사용자 단말의 ID에 대응하는 인덱스(index) 값을 수신하도록 실행되고,
    상기 사용자 단말의 시드 값은 제1 시드 값 및 제2 시드 값을 포함하고, 상기 제1 시드 값보다 생성된 시기가 늦은 상기 제2 시드 값 및 비밀 키를 기초로 제3 시드 값을 생성하도록 실행되고,
    상기 제1 시드 값, 상기 제2 시드 값 및 상기 제3 시드 값을 기초로 상기 인덱스 값에 대응되는 패스워드를 생성하도록 실행되는, 사용자 단말.
  17. 청구항 16에 있어서,
    상기 적어도 하나의 명령은,
    상기 사용자 단말을 상기 인증 장치에 등록하도록 실행되는, 사용자 단말.
  18. 청구항 16에 있어서,
    상기 적어도 하나의 명령은,
    상기 제1 시드 값을 삭제하고, 상기 제2 시드 값 및 상기 제3 시드 값을 상기 사용자 단말의 새로운 시드 값으로 저장하도록 실행되는, 사용자 단말.
  19. 사용자 인증 방법을 수행하는 인증 장치에 있어서,
    프로세서(processor); 및
    상기 프로세서를 통해 실행되는 적어도 하나의 명령이 저장된 메모리(memory)를 포함하고,
    상기 적어도 하나의 명령은,
    사용자 단말의 ID(identification)를 수신하도록 실행되고,
    상기 사용자 단말로 상기 사용자 단말의 ID에 대응하는 인덱스(index) 값을 송신하도록 실행되고,
    상기 사용자 단말로부터 상기 인덱스 값에 대응되는 패스워드를 수신하도록 실행되고,
    상기 패스워드는 제1 인증 값, 제2 인증 값 및 제3 인증 값을 포함하고, 상기 인증 장치의 보관 값, 상기 제1 인증 값 및 상기 제2 인증 값을 기초로 상기 사용자를 인증하도록 실행되는, 인증 장치.
  20. 청구항 19에 있어서,
    상기 적어도 하나의 명령은,
    상기 사용자 단말을 상기 인증 장치에 등록하도록 실행되는, 인증 장치.
  21. 청구항 19에 있어서,
    상기 적어도 하나의 명령은,
    상기 인증 장치의 보관 값을 삭제하고, 상기 제2 인증 값 및 상기 제3 인증 값을 상기 인증 장치의 새로운 보관 값으로 저장하도록 실행되는, 인증 장치.
KR1020170102141A 2017-08-11 2017-08-11 해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치 KR102020111B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170102141A KR102020111B1 (ko) 2017-08-11 2017-08-11 해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170102141A KR102020111B1 (ko) 2017-08-11 2017-08-11 해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190017370A true KR20190017370A (ko) 2019-02-20
KR102020111B1 KR102020111B1 (ko) 2019-09-09

Family

ID=65562306

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170102141A KR102020111B1 (ko) 2017-08-11 2017-08-11 해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102020111B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102518469B1 (ko) * 2020-12-15 2023-04-04 현대오토에버 주식회사 전자 장치의 인증 방법 및 인증 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100097430A (ko) * 2009-02-26 2010-09-03 고려대학교 산학협력단 해시 체인을 이용한 무한 인증 방법 및 이를 적용한 장치
KR20140009105A (ko) * 2010-06-27 2014-01-22 킹 사우드 유니버시티 무한 중첩된 해시 체인들에 의한 1회용 패스워드 인증

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100097430A (ko) * 2009-02-26 2010-09-03 고려대학교 산학협력단 해시 체인을 이용한 무한 인증 방법 및 이를 적용한 장치
KR20140009105A (ko) * 2010-06-27 2014-01-22 킹 사우드 유니버시티 무한 중첩된 해시 체인들에 의한 1회용 패스워드 인증

Also Published As

Publication number Publication date
KR102020111B1 (ko) 2019-09-09

Similar Documents

Publication Publication Date Title
Das et al. A secure and efficient uniqueness-and-anonymity-preserving remote user authentication scheme for connected health care
Mishra et al. A secure user anonymity-preserving biometric-based multi-server authenticated key agreement scheme using smart cards
US8478998B2 (en) Authenticated communication using a shared unpredictable secret
ES2818199T3 (es) Método de verificación de seguridad con base en una característica biométrica, un terminal de cliente y un servidor
US11063749B2 (en) Cryptographic key management based on identity information
US9286466B2 (en) Registration and authentication of computing devices using a digital skeleton key
US10523441B2 (en) Authentication of access request of a device and protecting confidential information
US20080086771A1 (en) Apparatus, system, and method for authenticating users of digital communication devices
CN109075965B (zh) 使用口令码验证的前向安全密码技术的方法、系统和装置
CN101278538A (zh) 用于用户认证的方法和设备
US20190306153A1 (en) Adaptive risk-based password syncronization
US11831778B2 (en) zkMFA: zero-knowledge based multi-factor authentication system
Das A secure and robust password-based remote user authentication scheme using smart cards for the integrated epr information system
CN110999254B (zh) 安全地执行加密操作
US11251941B2 (en) Managing cryptographic keys based on identity information
US10749860B2 (en) Systems and methods for authenticating devices using single factor dynamic authentication
WO2018011267A1 (en) Method for providing secure digital signatures
CN117176353A (zh) 处理数据的方法及装置
Kiennert et al. Authentication systems
CN112020718B (zh) 电子装置的完整性检查
KR20190017370A (ko) 해시체인 기반의 일회용 패스워드를 이용한 사용자 인증 방법 및 장치
US20220191023A1 (en) Systems and methods for registering or authenticating a user with a relying party
US10979226B1 (en) Soft-token authentication system with token blocking after entering the wrong PIN
EP3809626A1 (en) Method for controlling validity of an attribute
Guo et al. 2FA Communication Protocol to Secure Metro Control Devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant