KR20070050504A - 일회용 비밀번호 - Google Patents

일회용 비밀번호 Download PDF

Info

Publication number
KR20070050504A
KR20070050504A KR1020077009339A KR20077009339A KR20070050504A KR 20070050504 A KR20070050504 A KR 20070050504A KR 1020077009339 A KR1020077009339 A KR 1020077009339A KR 20077009339 A KR20077009339 A KR 20077009339A KR 20070050504 A KR20070050504 A KR 20070050504A
Authority
KR
South Korea
Prior art keywords
time password
verification
verification server
token
password
Prior art date
Application number
KR1020077009339A
Other languages
English (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 베리사인 인코포레이티드
Publication of KR20070050504A publication Critical patent/KR20070050504A/ko

Links

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Abstract

토큰은 키 K 및 카운터 수치에 기반한 HMAC-SHA-1 수치를 생성하고 HMAC-SHA-1 수치를 10^디지트법으로 절단함으로서 일회용 비밀번호를 계산하고, 상기 디지트는 일회용 비밀번호 내 숫자의 수이다. 일회용 비밀번호는 K 및 그 자신의 카운터 수치 C'를 이용한 그 자신의 비밀번호 버전을 계산하는 검증 서버에 의해 검증될 수 있다. 초기 불일치가 존재하는 경우 검증 서버는 크기가 파라미터 s에 의해 세팅될 수 있는 미리보기 윈도우 내에서 카운터 C와 C' 사이의 동시화 결여를 보정한다.
일회용 비밀번호, 토큰, 디지트, 검증 서버, 인증, 파라미터, 모듈로

Description

일회용 비밀번호{One time password}
본 발명의 분야는 컴퓨터 보안, 특히 일회용 비밀번호에 의한 인증이다.
현재 2-인자 인증 배치는 범위 및 규모가 극히 제한적이다. 증가하는 높은 수준의 위협 및 공격에도 불구하고 대부분의 인터넷 적용은 여전히 사용자 접근을 경비하는 약한 인증 방식에 의존하고 있다. 하드웨어 및 소프트웨어 기술 매각인간의 상호운영성의 결여는 2-인자 인증 기술의 채택에 제한적 인자가 되어 왔다. 특히 하드웨어 및 소프트웨어 구성요소는 소유 기술을 통해 강하게 연결되어 고비용의 솔류선, 빈약한 채택 및 제한된 기술혁신을 유발한다.
지난 2년간 네트워크 위협의 빠른 증가는 인터넷 상에서의 1차 인증 수단으로서 정적인 비밀번호의 무능성을 노출시켰다. 이와 동시에 최종-사용자가 네트워크를 인증하는데만 사용되는 고비용의 단일-기능 장치를 휴대하는 것을 필요로 하 는 현재 접근은 명확하게 적당한 답변이 아니다. 2 인자 인증이 인터넷 상에서 전파되기 위해 광범위한 적용범위에 걸쳐 작용할 수 있는 더욱 유연한 장치 내에 함몰되어야 할 것이다.
일회용 비밀번호는 확실히 네트워크 접근을 보안하기 위한 2-인자 인증의 가장 간단하고 가장 대중적인 형태 중의 하나이다. 예를 들어 대규모 기업에서 가상 사설 통신망(Virtual Private Network) 접근은 원거리 사용자 인증을 위한 일회용 비밀번호 토큰의 사용을 종종 필요로 한다. 공극(air-gap) 장치가 사용자 기계 상에 어떠한 의뢰인 데스크탑 소프트웨어의 설치도 필요로 하지 않고 따라서 가정 컴퓨터, 키오스크(kiosk) 및 개인 휴대 정보 단말기를 포함한 다수의 기계에 걸쳐 배회하는 것을 가능하게 하기 때문에 일회용 비밀번호는 PKI 또는 생체인식과 같은 더 강한 형태의 인증보다 더 바람직하다.
발명의 요약
본 발명의 하나의 실시태양에 따라 일회용 비밀번호 알고리즘은 상호운용가능한 인증 장치 및 소프트웨어 에이전트(software agent)를 생성하기 위해 어떠한 하드웨어 제조사 또는 소프트웨어 개발자에 의해서도 수행될 수 있다. 본 알고리즘은 이벤트-기반이 될 수 있어 자바 스마트 카드(Java smart card), USB 동글(dongle) 및 GSM SIM 카드와 같은 높은 부피 장치 내에 함몰될 수 있다. 본 알고 리즘은 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force, IETF)의 기간 및 조건 하에서 개발자 집단에 신선하게 유용하게 제조될 수 있다.
본 발명의 하나의 실시태양에 따라 알고리즘은 수열 또는 카운터(counter) 기반이 될 수 있고 배터리 상의 필요조건, 버튼 수, 컴퓨터 마력 및 디스플레이 크기를 최소화함으로서 하드웨어 내에서 실행되도록 경제적이 될 수 있다. 어떠한 숫자 입력도 지지하지 않는 토큰(token)을 사용하여 작동될 수 있으나 보안 PIN-패드와 같은 더욱 정밀화된 장치와 함께 사용될 수 있다.
토큰 상에 디스플레이된 수치는 용이하게 판독될 수 있고 사용자에 의해 개인용 컴퓨터, 휴대전화기, 현금 자동 입출금기 또는 어떠한 적당한 장치와 같은 또다른 장치로 입력될 수 있다. 이는 일회용 비밀번호(One Time Password, OTP) 수치가 합리적인 길이되는 것을 요구한다. 대부분의 경우 OTP 수치는 보안 논리를 위해 적어도 6-디지트 이상이어야 한다. OTP 수치가 전화기와 같은 단순 키패드를 지닌 장치 상에 용이하게 입력될 수 있는 수인 것이 유리할 수 있다.
카운터를 재동시화하는데 유용한 사용자-친화적 메커니즘이 존재할 수 있다. 본 알고리즘은 강한 공유 비밀을 사용하여야 한다. 이 때문에 공유 비밀의 길이는 128 비트 이상이 될 수 있다.
본 발명에 따른 알고리즘의 실시태양은 하기 표시법 및 기호를 사용하여 설명된다:
문자열(string)은 0과 1의 수열을 의미하는 이진 문자열을 의미한다.
s가 문자열인 경우 |s|는 그의 길이를 표시한다.
n인 숫자인 경우 |n|은 그의 절대치를 표시한다.
s가 문자열인 경우 s[i]는 그의 i 번째 비트를 표시한다. 비트는 0의 비트에서 시작하여 번호가 매겨지고, 따라서 s = s[0]s[l]..s[n-l]이고 n = |s|은 s의 길이이다.
Let StToNum(String to Number)은 입력 문자열 s의 이진수의 십진법 표시로 복귀하는 함수를 표시한다. 예를 들어 StToNum(l 10) = 6.
하기 표시는 기호로 사용된다:
C 8-바이트 카운터 수치, 이동 인자, 이러한 카운터는 OTP 생성기(즉, 의뢰인)과 OTP 검사기(즉, 서버) 사이에서 동시화될 수 있다.
K 의뢰인과 서버 사이의 공유 비밀. 각 OTP 생성기는 다르고 특정한 비 밀 K를 지닐 수 있다.
T 조절 파라미터: 서버는 T 실패 인증 시도 후 사용자로부터 접속을 거 부할 수 있거나 제공된 출처로부터 과도한 수의 검증 시도를 나타내 는 수령인에게 전달 신호를 송신할 수 있다.
s 재동시화 파라미터: 서버는 s 연속 카운터 수치를 교차하여 수신된 인증기를 검증하는 시도를 할 수 있다.
디지트 OTP 수치 내 숫자 수이고, 이는 시스템 파라미터가 될 수 있 다.
본 발명에 따른 OTP 알고리즘은 증가하는 카운터 수치 및 토큰에만 알려진 정적인 대칭 키에 기반할 수 있다. OTP 수치를 생성하기 위해 HMAC-SHA-1 알고리즘은 M. Bellare, R. Canetti and H. Krawczyk, "HMAC: Keyed-Hashing for Message Authentication", IETF Network Working Group, RFC 2104, February 1997에서 정의된 바와 같이 사용될 수 있다.
HHMAC-SHA-I MAC-SHAl 계산의 출력은 사용자에 의해 용이하게 입력될 수 있는 크기로 절단될 수 있는 수치인 160 비트이다. 따라서
HOTP(K,C) = 절단(HMAC-SHA-l(K,C)),
절단은 HHMAC-SHA-1 수치를 HMAC-SHAl OTP(HOTP) 수치로 전환시키는 함수를 나타낸다. 키(K), 카운터(C) 및 데이터 수치는 먼저 해쉬드 높은-자릿수 바이트가 될 수 있다. HOTP 생성기에 의해 생성된 HOTP 수치는 큰 엔디안(endian)으로 처리될 수 있다.
HOTP 수치는 3개의 개별적 단계에 의해 생성될 수 있다:
단계 1: HMAC-SHA-1 수치를 생성
Let HS = HMAC-SHA-1(K,C), HS는 20 바이트 문자열이 될 수 있음.
단계 2: 4-바이트 문자열을 생성(동적 절단)
Let S비트 = DT(HS), 31 비트 문자열로 복귀될 수 있음.
동적 절단 DT(문자열)은 하기와 같이 문자열 = 문자열[0]...문자열[19] 상에서 연산될 수 있다:
Let 오프셋비트는 문자열[19]의 낮은 자릿수 4 비트임.
오프셋 = StToNum(OffsetBits), 0 <= Offset <= 15
Let P = 문자열[오프셋]...문자열[오프셋+3]
P의 최종 31 비트로 복귀함.
P의 가장 유의적인 비트을 차폐(masking)하는 것은 서명된 모듈로(modulo) 계산과 서명되지 않은 것 사이의 혼동을 방지할 수 있다. 다른 프로세서는 이들 연산을 다르게 수행하고, 서명된 비트를 차폐하는 것은 모호성을 제거할 수 있다.
단계 3: HOTP 수치를 계산
Let Snum = StToNum(S), 즉, S를 O...2^{31}-1의 수로 전환시킴.
복귀 D = Snum mod 10^디지트, D는 0...10^{디지트}-1 범위의 수임.
절단 함수는 단계 2 및 단계 3 즉, 동적 절단을 수행한 후 10^디지트법으로 정리(reduction)를 수행한다. 동적 오프셋 절단 기술의 목적은 160-비트(20-바이트) HMAC-SHAl 결과로부터 4-바이트 동적 이진 코드를 추출하는 것이다.
실행은 적어도 6-디지트 코드 이상을 추출해야 한다. 보안 필요조건에 따라 달리 더 긴 HOTP 수치를 추출하기 위해 디지트 = 7 이상이 고려되어야 한다.
하기는 디지트 = 6에 대한 이러한 기술의 사용 예이고, 즉 6-디지트 HOTP 수치는 HMAC 수치로부터 계산된다. 이러한 코드 예는 hmac-결과가 HMAC-SHAl 결과와의 바이트 정렬인 경우 동적 이진 코드의 추출을 설명한다:
int 오프셋 = hmac_결과[19] & 0xf ;
int bin_코드 = (hmac_결과[오프셋] & OxIf) << 24
|(hmac_결과[오프셋+1] & Oxffj << 16
|(hmac_결과[오프셋+2] & Oxff) ≪ 8
|(hmac_결과[오프셋+3] & Oxff) ;
SHA-I HMAC 바이트 (예)
___________________________________________________________
| 바이트 수 |
___________________________________________________________
|00|01|02|03|04|05|06|07|08|09|11|12|13|14|15|16|17|18|19|
___________________________________________________________
| 바이트 수치 |
___________________________________________________________
|1f|86|98|69|0e|02|ca|16|61|85|50|efl7f]19|da|8e|94|5b|55|5a|
__________________________***********_____________________++|
* 최종 바이트(바이트 19)는 hex 수치 0x5a를 지님.
* 하위 4 비트의 수치는 0xa임(오프셋 수치).
* 오프셋 수치는 바이트 10임(0xa).
* 바이트 10에서 시작하는 4 바이트의 수치는 Ox5Oef7fl9이고, 이는 동적 이진 코드 DBCl임.
* DBCl의 MSB는 0x50이고 따라서 DBC2 = DBCl = 0x50ef7fl9임.
* HOTP = DBC2 모듈로 10^6 = 872921임.
본 발명자는 31-비트의 서명되지 않은 큰-엔디안 정수로 동적 이진 코드를 처리하고; 첫 번째 바이트는 0x7f로 차폐된다. 이후 본 발명자는 이러한 숫자 모듈로 1,000,000(10^6)이 6-디지트 HOTP 수치 872921 소수를 생성하게 한다.
어떠한 일회용 비밀번호 알고리즘도 이를 실행하는 적용 및 인증 프로토콜만큼 안전하다. 파라미터 T 및 s는 보안 상의 유의적인 영향력을 지닐 수 있다. HMAC-SHAl 수치를 더 짧은 수치로 절단시키는 것은 무차별 대입 공격을 가능하게 한다. 따라서 인증 서버는 무차별 대입 공격을 탐지하고 정지시켜야 한다. 일회용 비밀번호 검증에 대한 가능한 시도의 최대 수를 정의하는 조절 파라미터 T는 적당하게 작은 수로 세팅되어야 한다. 검증 서버는 어떠한 실패한 시도도 기록하기 위해 HOTP 장치 당 개별 카운터를 관리할 수 있다. 서버 상에서 사용되는 재동시화 방법이 윈도우-기반이고 윈도우 크기가 큰 경우 T는 특히 너무 크지 않아야 한다. T는 너무 많이 유용성에 악영향을 미치지 않도록 가능한 낮게 세팅되어야 한다.
또다른 옵션은 무차별 대입 공격을 방지하도록 지연 방식을 실행하게 된다. 각각의 실패 시도 A 이후 인증 서버는 증가된 T*A 초 동안 기다리게 된다 즉 T = 5인 경우 1차 시도 후 서버는 5분간 기다리고 두 번째 실패 시도시 5*2 = 10초간 기다린다.
지연 또는 폐쇄 방식은 다수의 병렬 추측 기술에 기반한 공격을 방지하기 위해 로그인 세션을 교차해야 한다.
프루버(prover)와 검증기 사이에서 인증 방법으로서 HOTP를 실행하기 위한 프로토콜 P는 목적 보안 내 특정한 목적을 지녀야 한다. P는 2-인자 즉 알고 있는 어떤 것(비밀번호, 비밀문구, PIN 코드 등과 같은 비밀 코드) 및 지니고 있는 어떤 것(토큰)이어야 한다. 비밀 코드는 사용자에게만 알려져야 하고 인증(2-인자 인증)의 목적으로 일회용 비밀번호로 입력될 수 있어야 한다.
P는 무차별 대입 공격에 취약하지 않아야 한다. 이는 조절/폐쇄 방식이 검증 서버 측면 상에서 실행되어야 함을 의미한다.
P는 공공 네트워크에 걸친 민감한 데이터(사생활, 재전송 공격 등)의 전송과 관련된 일반적인 공격 및 위험을 방지하기 위해 보안의 측면에서 당분야 상태에 관하여 실행되어야 한다.
HOTP 의뢰인(하드웨어 또는 소프트웨어 토큰) 그의 카운터를 증가시킨 후 다음 HOTP 수치, "HOTP-의뢰인"을 계산한다. 인증 서버로부터 수신된 수치가 의뢰인에 의해 계산된 수치와 일치하면 HOTP 수치는 검증된다. 이러한 경우 서버는 하나로 카운터 수치를 증가시킨다.
서버에서 수신된 수치가 의뢰인에 의해 계산된 수치와 일치하지 않으면 서버는 또다른 패스를 요청하기 전에 재동시화("resynch") 프로토콜(즉, 미리보기 윈도우)을 착수한다.
resynch가 실패하면 인증된 시도의 최대 수에 도달할 때까지 서버는 발생하는 프로토콜의 또다른 인증 패스에 대해 질문할 수 있다.
인증된 시도의 최대 수에 도달하면 서버는 계정을 폐쇄시키고 사용자에게 실패 시도의 수가 계정에 접근하게 하였다고 알려주는 절차를 착수할 수 있다.
또한 HOTP 의뢰인은 검증 서버를 인증하는데 사용될 수 있고, 공유 비밀을 알고 있는 실제 실체임을 주장할 수 있다. HOTP 의뢰인 및 서버가 동시화되고 동일한 비밀(또는 이를 재계산하는 방법)을 공유하기 때문에 단순한 3-패스 프로토콜 적소에 입력될 수 있고, 예를 들어:
1- 최종 사용자는 토큰ID 및 첫 번째 OTP 수치 OTP1을 입력할 수 있고;
2- 서버는 OTP1을 검사할 수 있고, 정확한 경우 OTP2를 반송할 수 있고;
3- 최종 사용자는 그의 HOTP 장치를 사용하여 OTP2를 검사할 수 있고, 정확한 경우 서버는 인증되고 최종 사용자는 웹사이트를 사용한다.
명백하게는 앞서 나타낸 바와 같이 모든 OTP 커뮤니케이션은 보안(즉, SSL) 접속 전반에 발생해야 한다.
서버의 카운터가 성공적인 HOTP 인증 후 증가하더라도 토큰 상의 카운터는 새로운 HOTP가 사용자에 요청될 때마다 증가된다. 이러한 이유로 서버 상 및 토크 상의 카운터 수치는 동시화되지 않는다.
미리보기 파라미터 s는 서버 상에서 세팅될 수 있고, 이는 미리보기 윈도우 크기를 한정한다. 서버는 다음 s HOTP-서버 수치를 다시 계산하고 수신된 HOTP-의뢰인에 대해 이를 검사할 수 있다. 이러한 시나리오 내 카운터의 동시화는 서버가 다음 HOTP 수치를 계산하는 것을 요구하고 일치가 존재하는지 여부를 측정한다. 연속 HOTP 수치의 수열을 보류하는 것이 단일 HOTP 수치를 추측하는 것보다 더욱 더 어렵기 때문에 시스템은 재동시화의 목적으로 사용자가 (즉 2, 3) HOTP 수열을 송신하는 것을 요구한다.
파라미터 s에 의해 세팅된 상한선은 서버가 HOTP 수치 검사를 영원히 진행하지 않음(서비스 공격의 거부 유발)을 보증하고 또한 공격자가 HOTP 수치를 제작하려고 시도하는 가능한 솔루션 공간을 제한한다. s는 유용성이 너무 낮아 악영향을 미치지 않음을 보증하면서 가능한 낮게 세팅되어야 한다.
OTP 수치를 생성하고 검증하는데 사용되는 공유 비밀을 처리하는 연산은 민감한 정보의 어떠한 유출의 위험도 완화하도록 안전하게 수행되어야 한다. 검증 시스템 내 공유 비밀을 안전하게 생성하고 저장하기 위한 2개의 다른 애비뉴(avenue)를 고려할 것:
1) 결정론적 생성: 비밀은 권한설정 및 검증 단계 모두에서 마스터 씨드(master seed)로부터 유도되고 필요할 때마다 온-더-플라이(on-the-fly)로 생성된다; 및
2) 무작위 생성: 비밀은 권한설정 단계에서 무작위로 생성되고 즉시 저장되어야 하고 그의 활동 주기 동안 보안을 유지한다.
결정론적 생성
가능한 전략은 마스터 비밀로부터 공유 비밀을 유도하는 것이다. 마스터 비밀은 서버에만 저장될 수 있다. 변형 저항 장치가 마스터 키를 저장하고 마스터 키로 및 일부 공공 정보로부터 공유 비밀을 유도하는데 사용되어야 한다. 공유 비밀이 권한설정 및 검증 시기에 필요시 주문형으로 생성될 수 있기 때문에 주요 이익은 어느 때에나 공유 비밀의 노출을 방지할 수 있고 또한 저장 상에 특정한 필요조건을 방지할 수 있다.
2개의 다른 경우를 고려:
1) 단일 마스터 키 MK는 공유 비밀을 유도하는데 사용된다; 각각의 HOTP 장치는 다른 비밀을 지니고, K_i = SHA-1 (MK,i), i는 일련번호, 토큰 ID 등과 같은 HOTP 장치를 특정하게 확인하는 공공의 정보를 나타낸다. 이는 적용 또는 서비스의 배경 하에 존재할 수 있다. 다른 적용 또는 서비스 제공자는 다른 비밀 및 세팅을 지닐 수 있다.
2) 일부 마스터 키 MK_i가 사용되고 각각의 HOTP 장치는 한 세트의 다른 유도된 비밀을 저장하고, {K_i,j = SHA-1(MK_i,j)}에서 j는 장치를 확인하는 공공의 정보를 나타낸다. 활동적인 마스터 키는 HSM 내의 검증 서버에서만 저장되고 How to Share a Secret, by Adi Shamir. In Communications of the ACM, Vol. 22, No. 11, pp. 612-613, November, 1979에서 개시된 바와 같이 비밀 공유 방법을 이용하여 안전한 위치에서 유지될 수 있다. 이러한 경우 마스터 비밀 MK_i가 절충된 후 모든 장치를 대체하지 않고 또다른 비밀로 스위치되는 것이 가능하다.
결정론적 경우의 결점은 마스터 비밀의 노출이 공격자가 정확한 공공 정보에 기반한 어떠한 공유 비밀도 명백히 개조할 수 있게 있다는 사실을 포함한다. 모든 비밀의 폐기가 요구되거나 다중 마스터 키의 경우 새로운 세트의 비밀로 스위치된다.
한편 마스터 키(들)를 저장하고 공유 비밀을 생성하는데 사용되는 장치는 변형 저항적이어야 한다. 더욱이 HSM은 검증 시스템의 보안 주변 외부에 노출되지 않을 것이고 따라서 누출 위험을 감소시킨다.
무작위 생성
공유 비밀은 무작위로 생성될 수 있다. 우수하고 안전한 무작위 소스는 이들 비밀을 생성하기 위해 선택되어야 한다. (진성) 무작위 생성기는 무작위의 자연 발생적 소스를 필요로 한다. 특히 공유 비밀의 생성을 고려하기 위해 2개의 가능한 애비뉴가 존재한다.
1) 하드웨어-기반 생성기는 물리적 현상으로 발생하는 무작위를 이용할 수 있다. 실행은 발진기 상에 기반할 수 있고 활동적 공격이 수행하기 더 어려운 방식으로 형성된다.
2) 소프트웨어-기반 생성기는 우수한 소프트웨어 무작위 생성기를 고안하더라도 용이한 작업은 아니다. 간단하나 효율적인 실행은 다양한 소스에 기반하여야 하고 SHA-1와 같은 표본화된 수열 한쪽 방향 기능에 적용되어야 한다.
공유 비밀은 변형-저항적 하드웨어 암호를 사용하여 저장시 공유 비밀을 암호화하고 이를 필요한 경우에만 노출시킴으로서 안정하게 저장된다. 예를 들어 공유 비밀은 HOTP 수치를 검증하는데 필요한 경우 해독되고 짧은 기간동안 RAM so 노출을 제한하기 위해 즉시 재-암호화된다. 검증 시스템 및 비밀 데이터베이스 상의 직접적인 공격을 방지하기 위해 공유 비밀을 유지하는 데이터 기억장치는 안전한 영역 내에 존재하여야 한다.
특히 공유 비밀로의 접근은 검증 시스템에 의해서만 요구되는 프로그램 및 프로세스에 한정적이어야 한다. 공유 비밀의 보호는 최대로 중요한 것이다.
HOTP 알고리즘의 보안은 하기 식에 의해 근접될 수 있다:
Sec = sv/10^디지트
- Sec는 상대의 성공 가능성이다;
- s는 미리보기 동시화 윈도우 크기를 나타낸다;
- v는 검증 시도 횟수를 나타낸다;
- 디지트는 HOTP 수치 내 디지트 수를 나타낸다.
시스템 유용성을 보존하면서 바람직한 수준의 보안이 달성될 때까지 s, T(공격자에 의해 공격기에 의한 시도 횟수를 한정하는 조절 파라미터) 및 디지트를 조정할 수 있다.
공유 비밀 K 내 추가 인증 인자를 포함하는 것이 바람직할 수 있다. 이들 추가 인자는 다른 것에 의해 용이하게 획득되는 것이 아닌 토큰에 알려진 어떠한 데이터로 구성될 수 있다. 이러한 데이터의 예는 하기를 포함한다:
* 사용자가 토큰에 입력시 획득되는 PIN 또는 비밀번호
* 전화번호
* 토큰에서 프로그램적으로 유용한 어떠한 특정 식별기
이러한 시나리오에서 혼성 공유 비밀 K는 하나 이상의 추가 인증 인자와 결합된 무작위 씨드 수치로부터 권한설정 과정 동안 구축된다. 서버는 주문시 형성되거나 혼성 비밀을 저장할 수 있다. 어떠한 경우에 있어서도 실행 선택에 따라 다르게 토큰은 씨드 수치만을 저장할 수 있다. 토큰이 HOTP 계산을 수행시 씨드 수치 또는 다른 인증 인자의 지역적으로 유도되거나 입력된 수치로부터 K를 계산할 수 있다.
혼성 공유 비밀의 사용은 토큰에서 추가 인증 인자의 포함을 통해 HOTP-기반 인증 시스템을 강화시킬 수 있다. 토큰이 신뢰받는 장치라는 점에서 이러한 접근은 인증 인자(사용자 입력 PIN과 같은)의 다른 장치로의 노출을 필요로 하지 않는 또다른 이익을 지닌다.
하기는 HOTP 알고리즘의 실행 예이다:
/*
* OneTimePasswordAlgorithm.java
* OATH Initiative,
* HOTP one-time password algorithm
*
*/
/* Copyright (C) 2004, OATH. All rights reserved.
*
* License to copy and use this software is granted provided that it
* is identified as the "OATH HOTP Algorithm" in all material
* mentioning or referencing this software or this function.
*
* License is also granted to make and use derivative works provided
* that such works are identified as
* "derived from OATH HOTP algorithm"
* in all material mentioning or referencing the derived work.
*
* OATH (Open AuTHentication) and its members make no
* representations concerning either the merchantability of this
* software or the suitability of this software for any particular
* purpose.
*
* It is provided "as is" without express or implied warranty
* of any kind and OATH AND ITS MEMBERS EXPRESSELY DISCLAIMS
* ANY WARRANTY OR LIABILITY OF ANY KIND relating to this software.
*
* These notices must be retained in any copies of any part of this
* documentation and/or software.
*/
package org.openauthentication.otp;_
import j ava.io.IOException;
import java.io.File;
import java.io.DatalnputStream;
import java.io.FilelnputStream;
import java.lang.reflect.UndeclaredThrowableException;
import java.security.GeneralSecurityException;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
/**
* This class contains static methods that are used to calculate the
* One-Time Password (OTP) using
* JCE to provide the HMAC-SHAl.
*
* @author Loren Hart
* @version 1.0
*/
public class OneTimePasswordAlgorithm {
private OneTimePassword Algorithm() {}
// These are used to calculate the check-sum digits.
// 0 1 2 3 4 5 6 7 8 9
private static final int[] doubleDigits =
{ 0, 2, 4, 6, 8, 1, 3, 5, 7, 9 };
/**
* Calculates the checksum using the credit card algorithm.
* This algorithm has the advantage that it detects any single
* mistyped digit and any single transposition of
* adjacent digits.
*
* @param num the number to calculate the checksum for
* @param digits number of significant places in the number
*
* @return the checksum of num
*/
public static int calcChecksum(long num, int digits) {
boolean doubleDigit = true;
int total = 0;
while (0 < digits--) {
int digit = (int)(num % 10);
num /= 10;
if(doubleDigit) {
digit = doubleDigits[digit];
}
total += digit;
doubleDigit = ! doubleDigit;
} _
int result = total % 10;
if(result > 0) {
result = 10 - result;
}
return result;
}
/**
* This method uses the JCE to provide the HMAC-SHAl
* algorithm.
* HMAC computes a Hashed Message Authentication Code and
* in this case SHAl is the hash algorithm used.
*
* @param keyBytes the bytes to use for the HMAC-SHAl key
* @param text the message or text to be authenticated.
*
* @throws NoSuchAlgorithmException if no provider makes
* either HmacSHAl or HMAC-SHAl
* digest algorithms available.
* @throws InvalidKeyException
* The secret provided was not a valid HMAC-SHAl key.
*
*/
public static byte[] hmac_shal(byte[] keyBytes, byte[] text)
throws NoSuchAlgorithmException, InvalidKeyException
{
// try {
Mac hmacShal;
try {
hmacShal = Mac.getInstance("HmacSHAl");
} catch (NoSuchAlgorithmException nsae) {
hmacShal = Mac.getInstance("HMAC-SHAl");
}
SecretKeySpec macKey =
new SecretKeySpec(keyBytes, "RAW");
hmacShal.init(macKey);
return hmacShal.doFinal(text);
// } catch(GeneralS ecurityException gse) {
// throw new UndeclaredThrowableException(gse);
// }
}
private static final int[] DIGITS_POWER
// 0 1 2 3 4 5 6 7 8
= {1,10,100,1000,10000,100000,1000000,10000000,100000000};
/**
* This method generates an OTP value for the given
* set of parameters.
*
* @param secret the shared secret
* @param movingFactor the counter, time, or other value that _
* changes on a per use basis.
* @param codeDigits the number of digits in the OTP, not
* including the checksum, if any.
* @param addChecksum a flag that indicates if a checksum digit
* should be appended to the OTP.
* @param truncationOffset the offset into the MAC result to
* begin truncation. If this value is out of
* the range of 0 ... 15, then dynamic
* truncation will be used.
* Dynamic truncation is when the last 4
* bits of the last byte of the MAC are
* used to determine the start offset.
* @throws NoSuchAlgorithmException if no provider makes
* either HmacSHAl or HMAC-SHAl
* digest algorithms available.
* @throws InvalidKeyException
* The secret provided was not
* a valid HMAC-SHAl key.
*
* @return A numeric String in base 10 that includes
* {@link codeDigits} digits plus the optional checksum
* digit if requested.
*/
static public String generateOTP(byte[] secret,
long movingFactor,
int codeDigits,
boolean addChecksum,
int truncationOffset)
throws NoSuchAlgorithrnException, InvalidKeyException
{
// put movingFactor value into text byte array
String result = null;
int digits = addChecksum ? (codeDigits + 1): codeDigits;
byte[] text = new byte[8];
for (int i = text.length - 1; i >= 0; i--) {
text[i] = (byte)(movingFactor & Oxff);
movingFactor >>= 8;
}
// compute hmac hash
byte[] hash = hmac_shal (secret, text);
// put selected bytes into result int
int offset = hash[hash.length - 1] & Oxf;
if ( (0<=truncationOffset) &&
(truncationOffset<(hash.length-4))) {
offset = truncationOffset;
}
int binary =
((hash[offset] & 0x7f) << 24)
|((hash[offset + 1] & Oxff) << 16)
|((hash[offset + 2] & Oxff) << 8)
|(hash[offset + 3] & Oxff); _
int otp = binary % DIGITS_POWER[codeDigits];
if (addChecksum) {
otp = (otp * 10) + calcChecksum(otp, codeDigits);
}
result = Integer.toString(otp);
while (result.length() < digits) {
result = "0" + result;
}
return result;
}
}
HOTP 알고리즘에 대한 일부 강화가 주문제작된 실행에 사용될 수 있는 변이로서 이루어질 수 있다.
보안의 측면에서 단순한 강화는 HMAC-SHA1 수치로부터 더 많은 숫자를 추출하게 된다. 예를 들어 8진 숫자 HOTP 수치를 형성하기 위해 HOTP 수치 모듈로를 계산하는 것은 sv/10^6에서 sv/10^8까지 적대 성공 가능성을 감소시킨다. 이는 더 우수한 전체 보안을 달성하면서 T 및/또는 s를 증가시킴으로서 유용성을 증가시키는 기회를 제공할 수 있다. 예를 들어 s = 10 및 10v/10^8 = v/10^7 < v/10^6에서 s = 1일 때 6진 숫자에 대한 이론 최적조건이다.
문자 사이의 어떠한 혼동을 방지하기 위해 또다른 옵션은 A-Z 및 0-9 수치; 또는 문자 숫자식 알파벳에서 취한 32 기호 서브세트를 사용하는 것이다: 0, O 및 Q 뿐만 아니라 1, l 및 I는 매우 유사하고 작은 디스플레이 상에서 동일한 것을 관찰할 수 있다. 즉각적인 결과는 보안이 6진-숫자 HOTP 수치에 대해 sv/32^6 및 7진-숫자 HOTP 수치에 대해 sv/32^8의 순서로 존재한다는 것이다. 32^6 > 10^9이면 6-문자숫자식 HOTP 코드의 보안은 9진-숫자 HOTP 수치보다 다소 우수하고, 이는 제안된 알고리즘에 의해 지지되는 HOTP 코드의 최대 길이다. 32^8 > 10^12이면 8-문자숫자식 HOTP 코드의 보안은 9진-숫자 HOTP 수치보다 유의적으로 우수하다. HOTP 수치를 디스플레이하고 입력하는데 사용되는 적용 및 토큰/인터페이스에 따라 문자숫자식 수치의 선택은 사용자 상에 감소된 비용 및 영향으로 보안을 증가시키는 단순하고 효과적인 방법이 될 수 있다.
HOTP 수치의 짧은 수열(즉, 2 또는 3)을 입력하는 재동시화에 있어서 이는 프로토콜에 대한 개념으로서 일반화될 수 있다. 입력되는 HOTP 수열의 길이를 한정하도록 파라미터 L이 첨가될 수 있다. 디폴트에 의해 수치 L은 1에 세팅되어야 하나 보안이 증가될 필요가 있는 경우 사용자는 L HOTP 수치를 입력하도록 요구된다(가능한 단기간 또는 특정 연산 동안). 이는 HOTP 길이를 증가시키거나 문자숫자식 수치를 사용하지 않고 보안을 강화하는 또다른 방법이 될 수 있다.
또한 시스템은 일반적인 베이시스(basis) 상에 동시화를 요청하고 이러한 목적을 달성하고, L HOTP 수치의 수열을 요청하도록 프로그램화될 수 있다.
의뢰인이 HOTP 수치뿐만 아니라 카운터 수치와 같은 또다른 정보에 접근하고 이를 송신할 수 있다고 가정하면 더 효과적이고 안전한 재동시화 방법이 가능하다. 의뢰인 적용은 HOTP-의뢰인 수치 및 관련 C-의뢰인 카운터 수치를 송신할 수 있고, HOTP 수치는 카운터의 인증 코드 메시지로서 작용할 수 있다.
서버는 하기가 진실인 경우 이를 수용하고, C-서버는 그 자신의 현재 카운터 수치이다:
1) C-의뢰인 >= C-서버
2) C-의뢰인 - C-서버 <= s
3) HOTP-의뢰인이 유효한 HOTP(K,C-의뢰인)인지를 검사
4) 진실인 경우 서버는 C를 C-의뢰인 + 1로 세팅하고 의뢰인은 인증된다.
이러한 경우 미리보기 윈도우를 더 이상 관리할 필요가 없다. 적대 성공 가능성은 단지 v/10^6 또는 대략 100만 분의 v 이다. 부수적인 이익은 명백히 s를 "무한히" 증가시킬 수 있고 따라서 보안에 영향을 미치지 않고 시스템 유용성을 개선시킬 수 있다. 이러한 재동시화 프로토콜은 의뢰인 및 서버 적용 상의 관련 작용이 수용 가능한 것으로 간주될 때마다 사용될 수 있다.
또다른 옵션은 일회용 비밀번호 수치를 생성하는데 사용되는 데이터 필드의 도입이 될 수 있다: HOTP(K, C, [데이터])에서 데이터는 다양한 신원-관련 정보의 연결이 될 수 있는 옵션 필드이다 즉, 데이터 = 주소 | PIN.
또한 이동 인자로서만 또는 카운터와 함께 타이머를 사용할 수 있다 - 이러한 경우 즉 데이터 = 타이머, 타이머는 특정 시간 단계를 제공하기 위해 일부 인자(8, 16, 32 등)로 나누어진 UNIX-시간(1/1/1970 이후 GMT초)이 될 수 있다. 이후 일회용 비밀번호에 대한 시간 윈도우는 앞서 한정된 재동시화 파라미터에 의해 곱셈된 시간 단계와 동일하다 - 즉 시간 단계로 64초가 소요되고 재동시화 파리미터로 7을 취하면 +/- 3분의 수용 윈도우를 획득한다. 데이터 필드가 명확히 명기되는 경우 데이터 필드를 사용하는 것은 알고리즘 실행시 더 많이 유연하게 할 수 있다.
본 발명의 하나의 실시태양은 메모리에 결합된 프로세서에 의해 실행될 수 있다. 프로세서는 하드웨어 및/또는 펌웨어 내에서 본 발명의 실시태양에 따른 적어도 일부분으로서 구현되는 일반적인 취지의 마이크로프로세서 또는 주문형 반도체(Application Specific Integrated Circuit)가 될 수 있다. 메모리는 임의 추출 기억장치(Random Acess Memory), 하드 디스크, 플래시 메모리 등과 같은 디지털 정보를 저장할 수 있는 어떠한 장치도 될 수 있다. 메모리는 본 발명의 실시태양에 따른 방법의 적어도 일부를 수행하도록 프로세서에 의해 실행되도록 변형된 명령을 저장할 수 있다. 프로세서는 네트워크에 결합될 수 있고, 이를 통해 인증 데이터(OTP 및 다른 데이터와 같은)가 검증을 위해 송신될 수 있다.
본 발명에 따른 인증 시스템은 토큰 프로세서 및 토큰 메모리를 지닌 토큰 및 서버 프로세서 및 서버 메모리를 지닌 검증 서버를 포함할 수 있다. 토큰 프로세서는 토큰 메모리에 저장된 명령에 기반한 OTP 생성 알고리즘을 실행한다. 또한 토큰 메모리는 공유 비밀 K 및 토큰 카운터 수치 C를 저장할 수 있다. 검증 서버 프로세서는 검증 서버 메모리에 저장된 명령에 기반한 OTP 검증 알고리즘을 실행할 수 있고, 검증 서버 카운터 수치 C' 및 공유 비밀 K도 검증 서버 메모리에 저장된다. 또한 검증 서버 메모리는 조절 파라미터 T, 미리보기 윈도우 크기 s 등과 같은 다른 파라미터를 저장할 수 있다.
토큰은 K 및 C에 기반하여 계산된 그의 일회용 비밀번호를 검증 서버에 송신할 수 있다. 검증 서버는 K 및 C'에 기반한 일회용 비밀번호를 계산할 수 있다. 일치하지 않는 경우 검증 서버는 K 및 C'+n에 기반한 다음 일회용 비밀번호를 계산할수 있고, n은 1∼s의 정수이다. 이러한 계산된 일회용 비밀번호가 토큰에서 수신된 비밀번호와 전혀 일치하지 않는 경우 검증 서버는 실패 검증 시도를 나타내는 신호를 송신할 수 있다. 계산된 일회용 비밀번호 중 하나가 토큰에서 수신된 일회용 비밀번호와 일치하는 경우 검증 서버는 성공 인증을 나타내는 신호를 송신할 수 있다. 검증 서버는 T 비성공 검증 시도 이후 또다른 검증 시도를 보류시킬 수 있고 그 효과에 대한 시스템 관리자에게 제공된 토큰이 일부 이러한 실패한 시도의 소스라고 경고할 수 있다.
상기 설명은 본 발명의 범위를 설명할 뿐 이의 범위를 한정하는 것은 아니다. 당업자에 의해 상기 기술된 것 이외의 또다른 실시태양은 본 발명의 범위 내에 존재함이 판명될 것이다.

Claims (15)

  1. 공유 비밀 키 K 및 토큰 카운터 수치 C를 저장하고, 일회용 비밀번호를 생성하도록 프로세서에 의해 실행되도록 변형된 명령을 더욱 저장하는 토큰 메모리에 결합된 토큰 프로세서;
    공유 비밀 키 K 및 검증 서버 카운터 수치 C'를 저장하는 검증 서버 메모리에 결합된 검증 서버를 포함한 인증 시스템에 있어서,
    상기 토큰 프로세서는 키 K 및 카운터 수치 C에 기반한 HMAC-SHA-1 수치를 생성하고 생성된 HMAC-SHA-1 수치를 10^디지트(Digit)법으로 절단함으로서 일회용 비밀번호를 계산하고, 상기 디지트는 일회용 비밀번호 내 숫자 수이고;
    상기 일회용 비밀번호를 검증을 위해 검증 서버에 송신함을 특징으로 하는 시스템
  2. 제 1항에 있어서, 상기 검증 서버 메모리는 미리보기 파라미터 s를 더욱 저장하고, 상기 검증 서버에 의해 계산된 일회용 비밀번호가 토큰에서 수신된 일회용 비밀번호와 일치하거나 n=s가 될 때까지 상기 검증 서버 메모리 명령은 K 및 C'+n, n은 1∼s의 정수에 기반한 일회용 비밀번호를 계산하도록 상기 검증 서버 프로세서에 의해 실행됨을 특징으로 하는 시스템
  3. 제 2항에 있어서, 수신된 일회용 비밀번호와 계산된 일회용 비밀번호 사이의 일치가 존재하지 않는 경우 실패한 검증 시도를 나타내는 신호를 송신함을 특징으로 하는 시스템
  4. 제 2항에 있어서, 수신된 일회용 비밀번호와 계산된 일회용 비밀번호 사이의 일치가 존재하는 경우 상기 검증 서버 프로세서는 성공적인 검증을 나타내는 신호를 송신함을 특징으로 하는 시스템
  5. 제 3항에 있어서, 상기 검증 서버 메모리는 조절 파라미터 T를 더욱 저장하고, 실패한 검증 시도의 수가 T와 동일한 경우 조절 신호가 송신됨을 특징으로 하는 시스템
  6. 제 1항에 있어서, 상기 검증 서버 메모리는 조절 파라미터 T를 더욱 저장하고, 실패한 검증 시도의 수가 T와 동일한 경우 또다른 검증 시도가 보류됨을 특징으로 하는 시스템
  7. 프로세서;
    상기 프로세서에 결합된 메모리를 포함한 검증 서버에 있어서, 상기 메모리는 공유 비밀 키 K, 검증 서버 카운터 수치 C', 미리보기 윈도우 파라미터 s 및 토큰에서 일회용 비밀번호를 수신하도록 상기 프로세서에 의해 실행되도록 변형된 명령을 저장하고, 키 K 및 카운터 수치 C'에 기반한 HMAC-SHA-1 수치를 생성하고 디지트는 생성된 HMAC-SHA-1 수치를 10^디지트법으로 절단함으로서 일회용 비밀번호를 계산하고, 상기 디지트는 일회용 비밀번호 내 숫자의 수이고, 상기 계산된 일회용 비밀번호를 토큰에서 수신된 일회용 비밀번호와 비교함을 특징으로 하는 검증 서버
  8. 제 7항에 있어서, 계산된 일회용 비밀번호가 토큰에서 수신된 일회용 비밀번호와 일치하지 않는 경우 상기 검증 서버는 키 K 및 카운터 수치 C'+n, n은 1∼s의 정수에 기반한 일회용 비밀번호를 계산함을 특징으로 하는 검증 서버
  9. 제 8항에 있어서, 상기 수신된 일회용 비밀번호가 계산된 일회용 비밀번호와 일치하지 않는 경우 실패한 검증 시도를 나타내는 신호를 송신함을 특징으로 하는 검증 서버
  10. 제 8항에 있어서, 상기 수신된 일회용 비밀번호가 계산된 일회용 비밀번호와 일치하지 않는 경우 성공적인 검증을 나타내는 신호를 송신함을 특징으로 하는 검증 서버
  11. 제 8항에 있어서, 상기 메모리는 조절 파라미터 T를 저장하고, 실패한 검증 시도 후 토큰으로부터의 또다른 검증 시도가 보류됨을 특징으로 하는 검증 서버
  12. 키 K 및 카운터 수치 C에 기반한 HMAC-SHA-1 수치를 생성하고, 생성된 HMAC-SHA-1 수치를 10^디지트법으로 절단함으로서 토큰에 의해 생성된 일회용 비밀번호의 검증 방법에 있어서, 상기 디지트는 일회용 비밀번호 내 숫자의 수이고;
    키 K 및 카운터 수치 C'에 기반한 HMAC-SHA-1 수치를 생성하고 생성된 HMAC-SHA-1 수치를 10^디지트법으로 절단함으로서 수신된 일회용 비밀번호와 비교되는 일회용 비밀번호 계산하고, 상기 디지트는 일회용 비밀번호 내 숫자의 수이고;
    계산된 일회용 비밀번호와 수신된 일회용 비밀번호를 비교하고 일치가 존재하지 않는 경우 C'를 1로 증분시키고 일회용 비밀번호를 재계산하고, 여전히 일치가 존재하는 않는 경우 C' 증분을 지속하고, 일회용 비밀번호를 재계산하고 C'=C'+s, s는 미리보기 윈도우 파라미터가 될 때까지 재계산된 일회용 비밀번호를 수신된 일회용 비밀번호와 비교하는 단계를 포함함을 특징으로 하는 방법
  13. 제 12항에 있어서, 상기 계산된 또는 재계산된 일회용 비밀번호가 수신된 비밀번호와 일치하는 경우 성공적인 검증을 나타내는 신호를 송신함을 특징으로 하는 방법
  14. 제 12항에 있어서, 상기 계산된 또는 재계산된 일회용 비밀번호가 수신된 비밀번호와 일치하는 경우 실패한 검증 시도를 나타내는 신호를 송신함을 특징으로 하는 방법
  15. 제 14항에 있어서, 실패한 검증 시도의 수가 조절 파라미터인 T를 초과하는 경우 검증 시도를 보류하는 단계를 더욱 포함함을 특징으로 하는 방법
KR1020077009339A 2004-10-15 2005-10-17 일회용 비밀번호 KR20070050504A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61860004P 2004-10-15 2004-10-15
US60/618,600 2004-10-15

Publications (1)

Publication Number Publication Date
KR20070050504A true KR20070050504A (ko) 2007-05-15

Family

ID=36203583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077009339A KR20070050504A (ko) 2004-10-15 2005-10-17 일회용 비밀번호

Country Status (9)

Country Link
US (2) US8087074B2 (ko)
EP (1) EP1828946B1 (ko)
JP (1) JP4938673B2 (ko)
KR (1) KR20070050504A (ko)
CN (2) CN104104517B (ko)
AU (1) AU2005295579B2 (ko)
CA (1) CA2583741C (ko)
SG (1) SG156643A1 (ko)
WO (1) WO2006044717A2 (ko)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2005295579B2 (en) 2004-10-15 2011-08-04 NortonLifeLock Inc. One time password
US8832458B2 (en) * 2005-03-22 2014-09-09 Seagate Technology Llc Data transcription in a data storage device
EP1987650A2 (en) * 2006-02-22 2008-11-05 Axalto SA An authentication token for identifying a cloning attack onto such authentication token
US9106409B2 (en) 2006-03-28 2015-08-11 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for handling keys used for encryption and integrity
PT1999930T (pt) * 2006-03-28 2017-04-07 ERICSSON TELEFON AB L M (publ) Método e aparelho para gestão de chaves utilizadas para cifra e integridade
US9258124B2 (en) 2006-04-21 2016-02-09 Symantec Corporation Time and event based one time password
FR2902253B1 (fr) * 2006-06-13 2009-04-03 Ingenico Sa Procede et dispositif d'authentification d'un utilisateur
JP5053617B2 (ja) * 2006-10-20 2012-10-17 株式会社リコー ソフトウェア実行制御プログラム及びソフトウェア実行制御方法
US8958562B2 (en) * 2007-01-16 2015-02-17 Voltage Security, Inc. Format-preserving cryptographic systems
GB2442249B (en) * 2007-02-20 2008-09-10 Cryptomathic As Authentication device and method
CA2590989C (en) * 2007-06-05 2014-02-11 Diversinet Corp. Protocol and method for client-server mutual authentication using event-based otp
US8494959B2 (en) * 2007-08-17 2013-07-23 Emc Corporation Payment card with dynamic account number
CN101106455B (zh) 2007-08-20 2010-10-13 北京飞天诚信科技有限公司 身份认证的方法和智能密钥装置
GB2458470A (en) * 2008-03-17 2009-09-23 Vodafone Plc Mobile terminal authorisation arrangements
US8543091B2 (en) * 2008-06-06 2013-09-24 Ebay Inc. Secure short message service (SMS) communications
US20090307140A1 (en) 2008-06-06 2009-12-10 Upendra Mardikar Mobile device over-the-air (ota) registration and point-of-sale (pos) payment
US9363262B1 (en) * 2008-09-15 2016-06-07 Galileo Processing, Inc. Authentication tokens managed for use with multiple sites
FR2941833B1 (fr) * 2009-02-03 2011-04-01 Oberthur Technologies Serveur, systeme et procede d'authentification a partir de mots de passe dynamiques.
US20110083018A1 (en) * 2009-10-06 2011-04-07 Validity Sensors, Inc. Secure User Authentication
US8544075B2 (en) * 2010-06-15 2013-09-24 Microsoft Corporation Extending a customer relationship management eventing framework to a cloud computing environment in a secure manner
US8627424B1 (en) * 2010-06-30 2014-01-07 Emc Corporation Device bound OTP generation
US8832807B1 (en) * 2010-08-05 2014-09-09 Christine E. Kuo Method and apparatus for asynchronous dynamic password
US8312519B1 (en) * 2010-09-30 2012-11-13 Daniel V Bailey Agile OTP generation
US8756652B2 (en) 2010-11-03 2014-06-17 Ebay Inc. Automatic PIN creation using password
US20130047210A1 (en) * 2011-02-14 2013-02-21 Mark Philip Rotman Systems and Methods for Providing Security When Accessing a User Account of a Browser-Based Communications Application
US8885833B2 (en) 2011-04-11 2014-11-11 Microsoft Corporation One-time recovery credentials for encrypted data access
LT2699264T (lt) 2011-04-20 2018-07-10 Medimmune, Llc Antikūnai ir kitos molekulės, kurios jungiasi prie b7-h1 ir pd-1
CN102307095B (zh) * 2011-04-27 2014-08-27 上海动联信息技术股份有限公司 一种动态令牌种子密钥注入和变形方法
US9104993B2 (en) 2011-04-28 2015-08-11 Lantronix, Inc. Asset management via virtual tunnels
CN102347942B (zh) * 2011-07-01 2016-09-28 飞天诚信科技股份有限公司 一种基于图像采集的信息安全方法及系统
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
US8862767B2 (en) 2011-09-02 2014-10-14 Ebay Inc. Secure elements broker (SEB) for application communication channel selector optimization
US20130085944A1 (en) * 2011-09-29 2013-04-04 Pacid Technologies, Llc System and method for application security
CN104025504B (zh) * 2011-12-27 2018-07-31 英特尔公司 用于通过设备特定的一次性密码向网络认证的方法、系统、设备和装置
US9258249B2 (en) * 2012-02-13 2016-02-09 Microsoft Technology Licensing, Llc Resource access throttling
CN103294938B (zh) 2012-02-29 2016-08-24 国际商业机器公司 访问请求验证方法及系统、授权信息生成方法、硬件设备
US20140330578A1 (en) * 2012-03-13 2014-11-06 Theodore Pincus Electronic medical history (emh) data management system for standard medical care, clinical medical research, and analysis of long-term outcomes
US9589399B2 (en) 2012-07-02 2017-03-07 Synaptics Incorporated Credential quality assessment engine systems and methods
CN103679492B (zh) * 2012-09-12 2017-07-28 卓望数码技术(深圳)有限公司 一种o2o模式下的商品订购及消费识别的方法和系统
GB201217084D0 (en) 2012-09-25 2012-11-07 Uni I Oslo Network security
JP5216932B1 (ja) * 2012-10-01 2013-06-19 さくら情報システム株式会社 ワンタイムパスワード装置、システム及びプログラム
DE102012218943A1 (de) * 2012-10-17 2014-04-17 Bundesdruckerei Gmbh Verfahren zur Initialisierung von Datenbankmitteln
DE102012218944A1 (de) * 2012-10-17 2014-04-17 Bundesdruckerei Gmbh Verfahren zur Erzeugung eines One-Time-Password (OTP)
CN103838753B (zh) * 2012-11-23 2018-04-27 腾讯科技(北京)有限公司 一种兑换码的存储、验证方法和装置
US9430655B1 (en) * 2012-12-28 2016-08-30 Emc Corporation Split tokenization
US20140222671A1 (en) * 2013-02-07 2014-08-07 Aurelio Elias System and method for the execution of third party services transaction over financial networks through a virtual integrated automated teller machine on an electronic terminal device.
US10110578B1 (en) * 2013-03-12 2018-10-23 Amazon Technologies, Inc. Source-inclusive credential verification
WO2015023341A2 (en) 2013-05-23 2015-02-19 Intertrust Technologies Corporation Secure authorization systems and methods
WO2014194293A1 (en) 2013-05-30 2014-12-04 Amplimmune, Inc. Improved methods for the selection of patients for pd-1 or b7-h4 targeted therapies, and combination therapies thereof
US10460314B2 (en) * 2013-07-10 2019-10-29 Ca, Inc. Pre-generation of session keys for electronic transactions and devices that pre-generate session keys for electronic transactions
US9218473B2 (en) * 2013-07-18 2015-12-22 Suprema Inc. Creation and authentication of biometric information
US9531541B2 (en) 2013-09-12 2016-12-27 Carl BEAME Cryptographic storage device controller
US9917694B1 (en) * 2013-11-27 2018-03-13 EMC IP Holding Company LLC Key provisioning method and apparatus for authentication tokens
US10084601B2 (en) * 2014-06-17 2018-09-25 Sony Corporation Method, system and electronic device
TWI693232B (zh) 2014-06-26 2020-05-11 美商宏觀基因股份有限公司 與pd-1和lag-3具有免疫反應性的共價結合的雙抗體和其使用方法
US10212136B1 (en) 2014-07-07 2019-02-19 Microstrategy Incorporated Workstation log-in
CN104158664A (zh) * 2014-08-11 2014-11-19 北京唐桓科技发展有限公司 一种身份认证方法及系统
US9860242B2 (en) * 2014-08-11 2018-01-02 Vivint, Inc. One-time access to an automation system
FR3030828A1 (fr) * 2014-12-22 2016-06-24 Orange Procede de securisation de transactions sans contact
CN104484596B (zh) * 2015-01-07 2018-02-13 宇龙计算机通信科技(深圳)有限公司 多操作系统中创建密码的方法及终端
US10701067B1 (en) 2015-04-24 2020-06-30 Microstrategy Incorporated Credential management using wearable devices
US10299118B1 (en) * 2015-06-01 2019-05-21 Benten Solutions Inc. Authenticating a person for a third party without requiring input of a password by the person
TW201709929A (zh) 2015-06-12 2017-03-16 宏觀基因股份有限公司 治療癌症的聯合療法
US9648012B1 (en) * 2015-06-26 2017-05-09 EMC IP Holding Company LLC Automatic propagation of password updates on multiple devices
WO2017007767A1 (en) * 2015-07-08 2017-01-12 Alibaba Group Holding Limited Method and device for authentication using dynamic passwords
CN106341372A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 终端的认证处理、认证方法及装置、系统
US9860243B2 (en) 2015-07-29 2018-01-02 International Business Machines Corporation Authenticating applications using a temporary password
US9930034B2 (en) 2015-07-29 2018-03-27 International Business Machines Corporation Authenticating applications using a temporary password
KR20180034588A (ko) 2015-07-30 2018-04-04 마크로제닉스, 인크. Pd-1-결합 분자 및 그것의 사용 방법
US9853968B2 (en) 2015-08-19 2017-12-26 Winifred Shen Systems and methods for authenticating users accessing a secure network with one-session-only, on-demand login credentials
WO2017062619A2 (en) 2015-10-08 2017-04-13 Macrogenics, Inc. Combination therapy for the treatment of cancer
EP3387604A1 (en) 2015-12-07 2018-10-17 Mastercard International Incorporated Systems and methods for utilizing vehicle connectivity in association with payment transactions
CR20180318A (es) 2015-12-14 2018-09-19 Macrogenics Inc Moléculas biespecíficas que tienen inmunorreactividad con pd-1 y ctla-4, y métodos de uso de las mismas
WO2017106372A1 (en) 2015-12-15 2017-06-22 Oncoimmune, Inc. Chimeric and humanized anti-human ctla4 monoclonal antibodies and uses thereof
US9830445B1 (en) 2015-12-18 2017-11-28 EMC IP Holding Company LLC Personal identification number (PIN) replacement in a one-time passcode based two factor authentication system
US10855664B1 (en) 2016-02-08 2020-12-01 Microstrategy Incorporated Proximity-based logical access
US10231128B1 (en) 2016-02-08 2019-03-12 Microstrategy Incorporated Proximity-based device access
CN105871866B (zh) * 2016-04-28 2018-10-12 济南大学 一种基于计算机硬件信息的密码管理系统及方法
TWI596556B (zh) * 2016-07-29 2017-08-21 臺灣集中保管結算所股份有限公司 使用通用一次性密碼以將一用戶與多個服務提供者進行認證之方法及系統
JP6404958B2 (ja) * 2017-01-20 2018-10-17 日本電信電話株式会社 認証システム、方法及びプログラム並びにサーバ
US11459394B2 (en) 2017-02-24 2022-10-04 Macrogenics, Inc. Bispecific binding molecules that are capable of binding CD137 and tumor antigens, and uses thereof
US10657242B1 (en) 2017-04-17 2020-05-19 Microstrategy Incorporated Proximity-based access
US10771458B1 (en) 2017-04-17 2020-09-08 MicoStrategy Incorporated Proximity-based user authentication
US11140157B1 (en) 2017-04-17 2021-10-05 Microstrategy Incorporated Proximity-based access
US10749674B2 (en) 2017-09-29 2020-08-18 Micro Focus Llc Format preserving encryption utilizing a key version
CN108024249B (zh) * 2017-11-30 2021-08-06 郑州云海信息技术有限公司 一种防止wifi暴力破解的方法及系统
PE20211001A1 (es) 2018-02-27 2021-06-01 Incyte Corp Imidazopirimidinas y triazolopirimidinas como inhibidores de a2a / a2b
JP6538923B2 (ja) * 2018-04-26 2019-07-03 日本電信電話株式会社 認証システム、方法及びプログラム並びにサーバ
JP7391046B2 (ja) 2018-05-18 2023-12-04 インサイト・コーポレイション A2a/a2b阻害剤としての縮合ピリミジン誘導体
MX2020014158A (es) 2018-06-20 2021-04-12 Incyte Corp Anticuerpos anti proteína de muerte programada 1 (pd-1) y usos de estos.
SG11202102798TA (en) 2018-10-02 2021-04-29 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
US10581611B1 (en) * 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CN111321947A (zh) * 2018-12-14 2020-06-23 云丁网络技术(北京)有限公司 一种基于一次性密码的控制方法及装置
CN112585602A (zh) 2018-11-14 2021-03-30 惠普发展公司,有限责任合伙企业 基于临时密码的固件访问
TWI829857B (zh) 2019-01-29 2024-01-21 美商英塞特公司 作為a2a / a2b抑制劑之吡唑并吡啶及三唑并吡啶
CN110602142B (zh) * 2019-09-29 2022-07-19 成都安恒信息技术有限公司 一种基于密码链的后台认证方法
EP4085060A1 (en) 2020-01-03 2022-11-09 Incyte Corporation Combination therapy comprising a2a/a2b and pd-1/pd-l1 inhibitors
CA3207066A1 (en) 2020-12-29 2022-07-07 Incyte Corporation Combination therapy comprising a2a/a2b inhibitors, pd-1/pd-l1 inhibitors, and anti-cd73 antibodies
CN113507368A (zh) * 2021-06-17 2021-10-15 北京惠而特科技有限公司 基于动态口令的工业控制设备身份认证方法及装置
CN114067497B (zh) * 2021-11-06 2023-08-08 威胜能源技术股份有限公司 一种基于动态口令的离线换电方法
CN115225673A (zh) * 2022-07-14 2022-10-21 蔚来汽车科技(安徽)有限公司 车辆监控方法、设备和存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168520A (en) * 1984-11-30 1992-12-01 Security Dynamics Technologies, Inc. Method and apparatus for personal identification
US4998279A (en) * 1984-11-30 1991-03-05 Weiss Kenneth P Method and apparatus for personal verification utilizing nonpredictable codes and biocharacteristics
AU3777593A (en) * 1992-02-26 1993-09-13 Paul C. Clark System for protecting computers via intelligent tokens or smart cards
JP3053527B2 (ja) * 1993-07-30 2000-06-19 インターナショナル・ビジネス・マシーンズ・コーポレイション パスワードを有効化する方法及び装置、パスワードを生成し且つ予備的に有効化する方法及び装置、認証コードを使用して資源のアクセスを制御する方法及び装置
US5937068A (en) * 1996-03-22 1999-08-10 Activcard System and method for user authentication employing dynamic encryption variables
US5802176A (en) * 1996-03-22 1998-09-01 Activcard System for controlling access to a function, using a plurality of dynamic encryption variables
US6178236B1 (en) * 1996-03-27 2001-01-23 Siemens Information And Communication, Networks, Inc. Method and system for providing password protection
KR100213188B1 (ko) * 1996-10-05 1999-08-02 윤종용 사용자 인증 장치 및 방법
US6292896B1 (en) * 1997-01-22 2001-09-18 International Business Machines Corporation Method and apparatus for entity authentication and session key generation
US6891819B1 (en) * 1997-09-05 2005-05-10 Kabushiki Kaisha Toshiba Mobile IP communications scheme incorporating individual user authentication
US6370649B1 (en) * 1998-03-02 2002-04-09 Compaq Computer Corporation Computer access via a single-use password
JPH11282982A (ja) * 1998-03-31 1999-10-15 Oki Electric Ind Co Ltd 利用者カード、通信端末機、通信サーバ、通信システム、および、通信システムの利用者認証方法
JPH11316740A (ja) * 1998-05-06 1999-11-16 Meidensha Corp ワンタイムパスワード認証システム
AU774003B2 (en) * 1998-09-22 2004-06-10 Avocent Huntsville Corporation System for accessing personal computers remotely
JP2001175599A (ja) * 1999-12-15 2001-06-29 Metro Inc 認証システム
EP1254547B1 (en) * 2000-02-08 2005-11-23 Swisscom Mobile AG Single sign-on process
JP2001352324A (ja) * 2000-06-07 2001-12-21 Nec Corp ワンタイムパスワード生成装置、認証方法およびワンタイムパスワード生成プログラムを記録した記録媒体
AU7182701A (en) * 2000-07-06 2002-01-21 David Paul Felsher Information record infrastructure, system and method
AU2002239500A1 (en) * 2000-10-20 2002-06-03 Wave Systems Corporation Cryptographic data security system and method
WO2002048846A2 (en) 2000-12-14 2002-06-20 Quizid Technologies Limited An authentication system
GB0119629D0 (en) * 2001-08-10 2001-10-03 Cryptomathic As Data certification method and apparatus
CN100454809C (zh) * 2001-12-20 2009-01-21 西北工业大学 利用一次性口令进行交易认证的方法
US7661129B2 (en) * 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
JP4090251B2 (ja) * 2002-03-05 2008-05-28 パスロジ株式会社 認証装置、認証方法、ならびに、プログラム
GB0210692D0 (en) * 2002-05-10 2002-06-19 Assendon Ltd Smart card token for remote authentication
US7523490B2 (en) * 2002-05-15 2009-04-21 Microsoft Corporation Session key security protocol
US7069438B2 (en) * 2002-08-19 2006-06-27 Sowl Associates, Inc. Establishing authenticated network connections
US7171564B2 (en) * 2002-08-29 2007-01-30 International Business Machines Corporation Universal password generation method
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7519989B2 (en) * 2003-07-17 2009-04-14 Av Thenex Inc. Token device that generates and displays one-time passwords and that couples to a computer for inputting or receiving data for generating and outputting one-time passwords and other functions
US7529371B2 (en) * 2004-04-22 2009-05-05 International Business Machines Corporation Replaceable sequenced one-time pads for detection of cloned service client
US7886345B2 (en) * 2004-07-02 2011-02-08 Emc Corporation Password-protection module
US7373516B2 (en) * 2004-08-19 2008-05-13 International Business Machines Corporation Systems and methods of securing resources through passwords
AU2005295579B2 (en) 2004-10-15 2011-08-04 NortonLifeLock Inc. One time password
US7840993B2 (en) * 2005-05-04 2010-11-23 Tricipher, Inc. Protecting one-time-passwords against man-in-the-middle attacks

Also Published As

Publication number Publication date
JP4938673B2 (ja) 2012-05-23
CA2583741C (en) 2014-10-14
CN101076807B (zh) 2014-09-03
CA2583741A1 (en) 2006-04-27
JP2008517384A (ja) 2008-05-22
WO2006044717A2 (en) 2006-04-27
US8087074B2 (en) 2011-12-27
AU2005295579A1 (en) 2006-04-27
US8434138B2 (en) 2013-04-30
WO2006044717A3 (en) 2006-09-28
EP1828946A4 (en) 2010-12-29
EP1828946B1 (en) 2018-02-28
US20090313687A1 (en) 2009-12-17
CN104104517A (zh) 2014-10-15
US20120096535A1 (en) 2012-04-19
AU2005295579B2 (en) 2011-08-04
SG156643A1 (en) 2009-11-26
CN101076807A (zh) 2007-11-21
EP1828946A2 (en) 2007-09-05
CN104104517B (zh) 2017-11-07

Similar Documents

Publication Publication Date Title
EP1828946B1 (en) One time password
M'Raihi et al. Hotp: An hmac-based one-time password algorithm
KR101095239B1 (ko) 보안 통신
Jablon Password authentication using multiple servers
Wu et al. Robust smart‐cards‐based user authentication scheme with user anonymity
Turan et al. Recommendation for password-based key derivation
JP4833489B2 (ja) 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア
US8775794B2 (en) System and method for end to end encryption
CN107094108B (zh) 连接到数据总线的部件和在该部件中实现加密功能的方法
Karuppiah et al. A secure lightweight authentication scheme with user anonymity for roaming service in ubiquitous networks
US20060036857A1 (en) User authentication by linking randomly-generated authentication secret with personalized secret
US8438393B2 (en) Quadratic residue based password authenticated key exchange method and system
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
M'Raihi et al. RFC 4226: HOTP: An HMAC-based one-time password algorithm
Hwang et al. Round-reduced modular construction of asymmetric password-authenticated key exchange
Turan et al. Sp 800-132. recommendation for password-based key derivation: Part 1: Storage applications
Narendrakumar et al. Token security for internet of things
Lee et al. A study on efficient OTP generation using stream cipher with random digit
Mitchell Remote user authentication using public information
TWI381696B (zh) 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證
Skanda et al. Secure Hashing using BCrypt for Cryptographic Applications
Zhu Analysis and design of authentication and encryption algorithms for secure cloud systems
Hoornaert et al. Network Working Group D. M’Raihi Request for Comments: 4226 VeriSign Category: Informational M. Bellare UCSD
Bhatia Cryptography-The Hidden Message
Suvidha Secure Authentication Schemes for Roaming Service in Global Mobility Networks

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid