KR100769482B1 - 다중 서버를 사용하는 원격 패스워드 인증을 위한 시스템, 방법 및 소프트웨어 - Google Patents

다중 서버를 사용하는 원격 패스워드 인증을 위한 시스템, 방법 및 소프트웨어 Download PDF

Info

Publication number
KR100769482B1
KR100769482B1 KR1020027016620A KR20027016620A KR100769482B1 KR 100769482 B1 KR100769482 B1 KR 100769482B1 KR 1020027016620 A KR1020027016620 A KR 1020027016620A KR 20027016620 A KR20027016620 A KR 20027016620A KR 100769482 B1 KR100769482 B1 KR 100769482B1
Authority
KR
South Korea
Prior art keywords
password
server
key
value
client
Prior art date
Application number
KR1020027016620A
Other languages
English (en)
Other versions
KR20030010667A (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 피닉스 테크놀로지 리미티드
Publication of KR20030010667A publication Critical patent/KR20030010667A/ko
Application granted granted Critical
Publication of KR100769482B1 publication Critical patent/KR100769482B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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
    • 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/3247Cryptographic 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 digital signatures
    • H04L9/3257Cryptographic 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 digital signatures using blind signatures
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

사람들이 쉽게 기억할 수 있는 로-그레이드 패스워드를 사용하여 강력한 인증을 제공하도록 제로-인식 패스워드(ZKP)를 사용하는 시스템, 방법 및 소프트웨어. 가입하기 위해서, 사용자는 패스워드를 선택하고(201) 멀티플 셰어로 이루어진 마스터 키(K)를 만든다. 랜덤값의 세트{y1, y2,...yn}가 선택되고(202), 각각의 셰어는 적합한 파이나이트 그룹에서 Ki=Pyi로서 계산된다. 각각의 yi 값은 N개의 서버 중 i번째의 것에 분배된다(203). 인증하기 위해서, 클라이언트는 각각의 서버에 대하여 랜덤 시크릿을 선택한다. 클라이언트는 K를 다시 만들고(203, 204), K상에서 유효성확인 테스트를 수행하고(206), K를 사용하여 개인 전자서명 키(U)를 해독한다(208). 유효성확인 테스트가 성공하면, 클라이언트는 동일 사용자에 의해 입력된 틀린 패스워드에 기초하여 클라이언트에 의해 송신된 임의의 다른 값 및 P를 포함하는 U로 메시지를 서명한다(207). 각각의 서버는 사용자를 인증하고 어떤 합리적인 수의 실수에 대해 사용자를 면제하도록 서명된 메시지를 검증한다. 유효한 메시지, 실수, 및 모든 것의 인식으로, 서버는 부정한 액세스 시도의 어카운팅을 파인-튜닝한다. 패스워드 보안은 사전 보안된 또는 클라이언트와 임의의 서버 사이에서 서버 인증된 채널을 요구하지 않는 아주 간단한 모델에서 유지된다.
Figure 112002040494883-pct00011
패스워드, 블라인드된 키 셰어, 패스워드 증대 요구 값, 원격 패스워드 인증, 스테일 블라인드 요구

Description

다중 서버를 사용하는 원격 패스워드 인증을 위한 시스템, 방법 및 소프트웨어{SYSTEMS, METHODS AND SOFTWARE FOR REMOTE PASSWORD AUTHENTICATION USING MULTIPLE SERVERS}
본 발명은 일반적으로 컴퓨터 보안에 관한 것이며, 더 구체적으로는, 다중 서버를 사용하는 원격 패스워드 인증을 제공하는 시스템, 방법 및 소프트웨어에 관한 것이다.
패스워드에 기초한 인증은 대부분의 개인용 인증 시스템의 기본이다. 가지고 다니는 토큰, 스마트카드, 및 생체측정법으로 보완했을 때에도 간단한 저장된 패스워드는 전형적으로 컴퓨터 처리에 있어서 사람의 신분 확인을 위한 본질적인 핵심 요인이 된다. 저급 패스워드, 즉 사람이 쉽게 기억할 수 있는 종류는 많은 다른 보안 시스템들에 대해 특히 까다로운 문제이다. 저급 패스워드를 수용하기 위해, 제로-인식 패스워드 프로토콜이 네트워크 위협을 제거히기 위해 개발되었다. 그러나, 남아있는 문제는 데이터가 적에게 들어가게 되었을 때 패스워드 검증 데이터에 대한 공격을 어떻게 방지하는가 하는 것이다.
전형적인 패스워드 시스템에서, 서버는 패스워드 자체의 사본일 수도 있는 패스워드에 대한 검증데이터를 유지하고 있다. UNIX 시스템에서, 추가 보안을 위해, 검증 데이터는 전형적으로 파일에 저장되어 있는 패스워드의 반복된 원-웨이 기능이다. 이 파일은 종종 권한이 주어지지 않은 사용자 및 프로그램이 그것에 액세스하지 않도록 더 보호된다. 고전적 UNIX 패스워드 공격은 공격자가 어떻게든 하여 패스워드 검증 데이터의 파일에 액세스하여 그것에 대한 패스워드-해독 툴을 실행하여 가능한 한 많은 패스워드를 판정하거나 "크래킹"하는 경우이다. 패스워드 해독은 단순히 후보 패스워드 리스트에 원-웨이 기능의 적용이다. 원-웨이 기능의 출력이 검증 데이터와 들어맞을때, 공격자는 올바른 패스워드를 알아 맞추었음을 알게 된다. 이러한 공격은 가장 통상적이거나 있을법한 패스워드를 먼저 시도하여 주어진 시간에 가능한 한 많은 패스워드를 해독할 수 있도록 최적화 되어 있다.
목적은 가장 간단한 가능한 보안 모델을 가지고-즉, 가능한 한 거의 가정을 사용하지 않고, 패스워드에 기초한 클라이언트/서버 인증 시스템에서 가능한 한 많이 패스워드에 대한 서버에 기초한 공격의 위협을 줄이는 것이다. 목적은 서버에 대한 완전한 제한없는 공격앞에서도 패스워드의 노출을 방지하기 위한 것이다. 본 모델에서는, 공격자가 서버의 소프트웨어를 변경하고, 그 서버에서 이용가능한 모든 데이터에 액세스하고, 적법하고 의심없는 사용자를 인증하면서 그 서버의 사용을 제어하는 능력을 갖는 것을 가정한다.
이 목적을 달성하기 위해서, 하나 이상의 기계를 사용하는 것이 필요하다는 것은 분명하다. 어떤 단일 기계 시스템에서는, 사용자의 패스워드 검증 데이터에 액세스할 수 있거나, 또는 어떤 패스워드-암호화 데이터에 액세스할 수 있는 사람 이 사용자의 액션을 시뮬레이션함으로써 제한없는 오프라인의 야만적 힘의 공격을 수행하기에 충분한 정보를 갖는다. 문제는 구체적으로 이러한 위험을 제거하도록 두개이상의 서버들간에 어떻게 패스워드 검증 데이터를 분리하는가 하는 것이다. 단일 서버가 오프라인의 야만적 힘의 공격을 장착하는 능력을 가져서는 안된다.
공개키 암호문은 이제 안전한 개인 전자 처리를 위한 중대한 툴로서 인정되고 있다. 개인의 디지털 서명은 폭넓은 이용분야를 가질것으로 기대된다. 그러나, 사용자의 비밀 키를 보호하고 관리하는 방법에는 큰 문제가 있다. 그것을 아마도 패스워드와 약하게 암호화된 클라이언트 기계에 맡기는 것은 바람직하지못한 보안 위험이다. 보안이 모두 너무 종종 악명높게 관리가 어려운 클라이언트 기계상에 지속적인 패스워드-해독가능 데이터를 남기는 것은 어리석은 것 같다. 더욱이, 수 많은 사용자가 단일 기계를 공유할 수 있는 모델에서 사용자 크리덴셜의 국소 저장을 요구하는 것은 비실용적이 된다.
소위 "로밍(roaming)" 사용자에 대한 인증 해결책의 한 부류는 원격 서버에서 저장된 사용자의 비밀 크리덴셜을 보유하고 이들 크리덴셜을 검색하기 위해 패스워드에 기초한 인증을 사용한다. 강한 제로-인식 패스워드(ZKP) 프로토콜은 네트워크에 기초한 야만적 힘의 공격을 제거함으로써 이들 해결책에 있어서 많은 위협들을 어드레스하는 한편, 동시에 클라이언트 기계상의 다른 저장된 키 및 증명서에의 의존성을 제거한다. ZKP 프로토콜은 또한 다중 서버에 필수적이다.
다중 서버 보안 로밍 시스템에 대한 두가지 모델, 즉 강한 모델과 약한 모델이 논의되어 있다. 두 모델에서, 공격자는 패스워드-검증 데이터의 사본들을 게인 액세스할 수 있는 것으로 추정되고 합리적으로 긴 기간동안에 걸쳐 컴퓨터조작을 수행할 수 있는 능력을 갖는다. (합리적으로 길다는 것은 제한이 없으나, 컴퓨터조작 가능성의 한계이내를 의미한다. 임의적으로 긴 컴퓨터 조작은 임의적으로 큰 공개키를 해독할 수 있을 것이다. 대부분의 암호화 방법에서와 같이, 어떤 실용적인 상부-한계가 잠재적인 공격자에 이용가능한 시간 및 파워동안 확립될 수 있고, 키에 대한 대응하는 안전한 최소의 합리적인 크기가 결정될 수 있다.)
약한 모델에서 공격자는 서버의 지속적인 데이터의 사본들에 액세스하는 것으로 추정되나, 실행 서버의 조작을 방해할 수 없다.
강한 모델에서, 방법은 인증 서버의 하나를 제외하고는 모두의 완전한 능동적인 절충안에 직면하여서도 패스워드의 보안을 유지해야 한다. 공격자는 서버 소프트웨어를 수정할 수 있고 유효한 사용자를 인증하면서 서버에 이용가능한 모든 정보를 액세스할 수 있는 것으로 추정된다. 강한 모델은 더 간단하고, 따라서 더 바람직하다. 그것은 또한 앞서의 보안 채널의 존재를 가정한 유사한 시스템에 대한 초기의 모델보다 더 강하다.
이들 모델 모두에서, 각 서버는 허용가능한 무효 액세스 시도의 수에 제한을 강화함으로써 제한없는 온라인 공격으로부터 자체 방어할 수도 있다. 이들 제한은 수많은 통상적인 방법으로 강화될 수 있다. 본 발명의 바람직한 구체예는 또한 패스워드 엔트리에 있어서 행해진 합법적인 실수를 더 잘 밝혀내도록 서버를 돕는 특징을 포함한다.
로밍 시스템의 목적은 모바일 사용자로 하여금 공개키 암호화 조작을 수행하기위해 그들의 비밀 키를 안전하게 액세스 및 사용하도록 허용하기 위한 것이다. 모빌리티는 넓은 의미로 현대의 손바닥크기의 무선 네트워크 장치를 사용하는 것 뿐아니라 공개키오스크 단말기를 사용하는 것, 키를 저장할 필요없이, 개인 워크스테이션, 및 다른 사용자의 워크스테이션을 사용하는 행위들을 포함한다. 사용자 패스워드-인증된 액세스에 어느 곳으로부터도 비밀키를 제공하는 한편, 적으로 하여금 패스워드를 훔치거나 해독하여 이로써 이들 키를 얻는 기회를 최소화하는 것이 요망된다.
스마트카드는 로밍 사용자들에 대한 비밀키 저장 문제를 해결하는 것을 약속하였으나, 이 해결책은 카드의 전개 및 카드 리더의 설치를 요한다. 사람들이 편이를 위해 보안을 희생하는 경향은 추가의 하드웨어를 요하는 해결책의 폭넓은 사용에 장벽임을 검증하였다. 이것은 소프트웨어에 기초한 로밍 프로토콜에 대한 하나의 동기이다.
여기서 사용된 바와 같이, 특정 사용자를 위해 작동하는 클라이언트 기계는 앨리스라고 하고, 크리덴셜 서버는 일반적으로 바브라고 하거나, 또는 여성 클라이언트 및 그녀의 남성 서버에 대한 성(性)을 특정한 대명사를 사용하여 개별적으로 Bi라고 한다.
"로밍" 시스템의 개념은 크리덴셜 서버와 밀접하게 관련된다. J. tardo and K. Alagappan in "SPX: 공개키 증명서를 사용하는 세계적인 인증", Proc. 1991 IEEE Computer Society Symposium on Security and Privacy, 1991, pp.232-244에 의해 개시된 SPX LEAF 시스템은 서버-인증된 채널을 사용하여 패스워드를 검증을 위해 크리덴셜 서버에 전송하고 사용자의 비밀 키의 후속 검색 및 해독를 수행하는 로밍 프로토콜을 제공한다. 크리덴셜 서버는 검출할 수 있는 어림짐작 공격들을 제한함으로써 자체적으로 보호하고 프로토콜은 패스워드 오프라인의 나서지 않는 어림짐작을 방지한다.
크리덴셜(인증) 서버가 패스워드 추측이 정확한지 여부를 판정할 수 있을때, 그것은 사전설정 실패 임계값 후에 교환이 계속되는 것을 방해하거나 지연시킬수 있다.
패스워드-전용 프로토콜은 또다른 중요한 관련 분야이다. "Encrypted Key Exchange: Password-based protocols secure against dictionary attacks", Proceedings of the IEEE Symposium on. Research in Security and Privacy, May 1992 에서 S. Bellovin and M. Merritt에 의해 개시된 EKE 프로토콜은 서버 인증의 앞선 행위를 요구하지 않는 위험한 네트워크상에서 안전하게 패스워드를 인증함으로써, 보안 패스워드-전용 프로토콜의 개념을 소개하였다. L. Gong, T. M. A. Lomas, R. M. Needham, 및 J. H. Saltzer에 의해 개시된 "Protecting Poorly Chosen Secrets from Guessing Attacks", IEEE Journal on Selected Areas in Communications, vol. 11, no. 5, June 1993, pp. 648-656에서 그리고 "Increasing Availability and Security of an Authentication Service", IEEE Journal on Selected Areas in Communications, vol. 11, no. 5, June 1993, pp. 657-662에서 L. Gong에 의해 발표된 "비밀 공개키" 방법, "Strong password-only authenticated key exchange", ACM Computer Communications Review, vol. 26, no. 5, October 1996, pp. 5-26, http://www. IntegritySciences. com/links.html\#Jab96에서 D. Jablon에 의해 논의된 SPEKE 방법, "Open Key Exchange: How to Defeat Dictionary Attacks Without Encrypting Public Keys", The Security Protocol Workshop'97, Ecole Normale Superieure, April 7-9,1997에서 S. Lucks에 의해 발표된 OKE 방법, "The Secure Remote Password Protocol,"Proceedings of 1998 Network and Distributed System Security Symposium, Internet Society, January 1998, pp. 97-111.에서 T.Wu에 의해 기술된 SRP-3 방법 등을 포함하여, S. Halevi 및 H. Krawczyk의 "Public-key cryptography and password protocols", Proceedings of the Fifth ACM Conference on Computer and Communications Security, 1998, M.K. Boyarsky의 "Public-Key Cryptography and Password Protocols: The Multi-User Case", Proc. 6th ACM Conference on Computer and Communications Security, November 1-4,1999, Singapore, V. Boyko, P. MacKenzie 및 S. Patel의 "Provably Secure Password Authenticated Key Exchange Using Diffie-Hellman", Advances in Cryptology-EUROCRYPT 2000, Lecture Notes in Computer Science, vol. 1807, Springer-Verlag, May 2000, 및 M. Bellare, D. Pointcheval 및 P. Rogaway의 "Authenticated Key Exchange Secure Against Dictionary Attack", Advances in Cryptology-EUROCRYPT 2000, Lecture Notes in Computer Science, vol. 1807, pp. 139-155, Springer-Verlag, May 2000]에서 발표된 것들과 같은 패스워드-전용 모델에서 이론 작업이 발전하면서, 유사한 목적을 갖는 일련의 다른 방법들이 개발되었다. 이들 문서들의 대부분은 패스워드 및 관련 기억된 비밀은 브루트 포스에 의해 해독가능하거나 또는 기껏해야, 불확정 엔트로피적이라고 조심스럽게 추정되어야 하며, 이는 나머지 수단들이 사용자들을 보호하도록 보증한다는 점을 강조한다.
본 발명의 양수인에 의해 개발된 SPEKE 법은 잘 공지된 Diffie-Hellman (DH) 지수 키 교환의 인증된 형태이며, 여기서 교환의 기초는 패스워드에 의해 결정된다. 통상적으로 사용되는 SPEKE의 형태에서, 패스워드는 파생된 Diffie-Hellman 세션 키의 상호간 인증을 제공한다. SPEKE의 변형은 또한 출원중인 미국 특허 일련 번호 08/823,961 및 D. Jablon의 제목 "Extended Password Protocols Immune to Dictionary Attack", Proceedings of the Sixtla Workshops on Enabling Technologies : Infrastructure for Collaborative Enterprises (WET-ICE'97) Enterprise Security Workshop, IEEE Computer Society, June 18-20,1997, pp. 248-255, 그리고 R. Perlman 및 C. Kaufman의,"Secure Password-Based Protocol for Downloading a Private Key", Proceedings of 1999 Network and Distributed System Security Symposium, Internet Society, February 3-5 1999의 문서에 기술되어 있다.
여기서 SK1이라 언급되는, 다중 머신중에서 분할 키를 사용하는 SPEKE-작동가능 시스템은 D. Jablon에 의해 1999년 1월 21일, 1999 RSA Data Security Conference 99에서 "Secret Public Keys and Passwords" 제목의 연설에서 <http://www.IntegritySciences.com/rsa99/index.html>에서 발표된 슬라이드와 함께 발표되었다. 이 시스템에서는, 앨리스의 개인키 U는 3개의 할당 즉, 패스워드-유도 할당 및 두개의 큰 할당 X와 Y로 분할된다. 할당은 U=P
Figure 112006019874201-pct00001
X
Figure 112006019874201-pct00002
Y와 함께
Figure 112006019874201-pct00003
함수(Bit 단위 독점 또는)를 사용하여 조합된다. SK1 등록 및 키 검색 프로세스는 하기로 요약된다.
SK1 등록에 있어서, 앨리스는 세개의 할당 {P, X, Y}을 선택하고, 할당 중 2개를 조합하여 비밀 개인키 S(단 S=P
Figure 112006019874201-pct00004
X)를 생성하고, P를 기억하고, 머신에 X를 저장한다. 그후, 그것의 몇가지 다른 형태가 June, 1997 Jablon 문서에 기술되는 B-SPEKE 프로토콜의 형태를 사용하여, 그녀는 다음과 같이 패스워드 유도 값 {P,S}에 대응하는 검증자{g,V}를 구성한다: 암호 해시 함수를 사용하는 g = hash (S), 및 적절한 그룹에서 지수화를 사용하여 V = P. 그녀는 그후 바브에게 {g, V, Y}를 보내고, 그는 그것들을 그녀의 비밀로 저장한다.
SK1 키 검색에서, 앨리스는 (몇 시간 후에) 바브으로부터 그녀의 개인키 U를 얻는다. 앨리스는 B-SPEKE 프로토콜을 사용하여 그녀의 P 와 S의 인식을 바브에게 검증하고, 인증된 세션 키 K를 바브과 함께 결정한다. 바브가 앨리스를 검증한 후에, {g,V}의 그의 인식을 사용하여, 그는 그녀에게 K하에서 대칭적으로 암호화된 Y 를 보낸다. 그후 앨리스는 해독하여 Y를 검색하고 U를 재구성한다. 이 시스템에서 패스워드 유도 값 P에 대한 브루트 포스 공격은 공격자가 두가지 다른 머신에 저장되는 할당 X와 Y로의 액세스를 갖도록 요구한다.
Figure 112006019874201-pct00017
Figure 112006019874201-pct00018
SK1에서 P에 대한 부르트 포스 공격을 가능하게 하기 위해서는, 공격자가 X와 Y 모두에 대한 액세스가 필요하다.
로밍 모델 및 패스워드-전용 방법은 Perlman 및 Kaufman 문서에서 조합되어 EKE 와 SPEKE 모두에 근거한 프로토콜을 생성한다. 이들 저자들은 간단한 형태의 패스워드-전용 방법이 크리덴셜에 대한 안전한 로밍 액세스를 위해 충분하다고 밝혔다. 다른 로밍 프로토콜은 Gong, Lomas, Needham, 및 Saltzer 문서, Wu 문서, S. Halevi 및 H. Krawczyk 문서 "Public-key cryptography and password protocols", Proceedings of the Fifth ACM Conference on Computer and Communicatiotzs Security, 1998, and the P. MacKenzie and R. Swaminathan paper"Secure Network Authentication with Password Identification", 1999년 7월 30일, IEEE P1363 작업 그룹에 제출된, http ://grouper. ieee. org/groups/1363/에서 논의되고, 그들 모두는 네트워크 메세지에 대한 오프라인 추측 공격을 중지하도록 설계되어, 키의 클라이언트-저장이 실행 불가능할 때, 강력한 소프트웨어 기반 보호를 제공한다.
변형된 Diffie-Hellman은 Eric Hughes 가 1994년 8월 CRYPTO'94 세션에서 발표한 제목 "An encrypted Key Transmission Protocol"의 문서에서 그리고 1996년 John Wiley & Sons에서 출판된, B. Schneier저서 "Applied Cryptography Second Edition"의 515페이지에서 기술되고 있다. 보통의 Diffie-Hellman에서는, 클라이언트와 서버 모두가 고정된 g를 인식하고, 공동으로 K = gxy 를 결정한다. 그러나, 변형된 Diffie-Hellman에서는, 클라이언트(앨리스)는 gx를 보내고, gxy를 받고, 서버로부터 K = gy를 검색한다. 그녀의 비밀 지수 x는 블라인딩 펙터로 사용된다. 키는 K : = (gxy)l/x에서와 같이 서버의 값을 반전된 x의 누승까지 올림으로써 검색된다. 보통의 Diffie-Hellman 방법과 달리, K에 대한 고정 값은 서버가 클라이언트의(앨리스's) gx를 받기 전에라도, 미리계산될 수 있다.
여기서 변형 SPEKE(Modified SPEKE)라고 언급하는 변형된 Diffie-Hellman에 기반하는 SPEKE의 형태는 미국 특허 출원 번호 08/823,961에서 기술된다. 변형 SPEKE에서, 앨리스는 그녀의 패스워드로부터 유도된 값 P와 바브에게 공지된 무작위 값 y의 그녀의 인식에 기반하는 키 K를 유도한다. 앨리스는 패스워드를 비밀 무작위 누승 x로 올리고, 결과값(QA)을 바브에게 보낸다. 바브 은 QA를 누승 y로 올리고, 결과 (QA)를 앨리스에게 돌려보낸다. 앨리스는 K = Py라는 결과와 함께, QB를 1/x의 누승으로 올림으로써 K를 계산한다.
앨리스 바브
QA: = Px
← QB := QA y
K: = QB (1/x)
P가 적절한 큰 유한 그룹의 발생기를 초래하는, SHA1 또는 MD5와 같은 패스워드의 암호 해시 함수인 것이 바람직하다. 좀더 자세한 것은 미국 특허 08/823,961및 SPEKE에 대한 다른 문서들에서 찾아볼 수 있다.
도난당한 검증 데이타의 위험을 분배하기 위해, 데이타는 다중 머신중에서 분할될 수 있다. 패스워드-유도 데이타에 대한 공격의 새로운 길을 노출하지 않도록 다중 머신을 이용하는 네트워크 프로토콜의 설계에서 주의해야 한다.
딕셔너리 공격을 보호하는 시스템에 대한 또다른 접근은 "Software Smart Cards via Cryptographic Camoflauge", Proceedings of 1999 IEEE Symposium on Security and Privacy에서 D. Hoover & B. Kausik에 의해 논의된 바와 같은 암호 위장(여기서는 CC로 언급한다)이라 불리는 기술이다. CC 시스템은 서버에 저장된 검증 데이타의 취약성을 감소시키는 현재의 목적과는 대조적으로, 클라이언트에 저장된 개인키의 취약성을 감소시키는 것으로 소개되었다.
하나 이상의 CC 시스템은 로밍 사용자들을 지원하도록 변형되었고, 이는 2-서버 로밍 솔루션을 제공한다. 2-서버 로밍 버전이 논의되기 전에 사용자, 클라이언트 머신 및 CC 인증 서버(CCAS)를 포함하는 기초 CC 시스템이 논의될 것이다.
CC는 공개키 기술의 원리의 일부에 명백하게 어긋나는 방식으로 공개키 기술을 사용하지만, Hoover 및 Kausik 문서에 논의된 목표들을 달성하기 위해 설계된 제한들을 갖는다. 시스템의 두가지 요소들을 지정하기 위해 용어 "CC 개인키"와 "CC 공개키" 가 사용된다.
용어 "CC 개인키"와 "CC 공개키" 에서의 "개인" 및 "공개"라는 말의 사용은 보통 사용하는 용어 "개인키"와 "공개키"와는 다른 특별한 의미를 가진다는 점을 주의하라. 특히, CC 모델은 CC 공개키가 공개적으로 공지되지 않는다고 가정한다.
CC 개인키는 클라이언트 상에, 그러나 짧은 개인확인번호(PIN)와 함께 숨겨지는 방식으로 저장된다. 그것은 똑같이 그럴듯한 어떤 가능한 PIN을 사용하여 저장된 개인키를 해독하는 특수한 구성을 사용한다. (이 논점은 이후 사람-선택 대 기계-발생 PIN, 적의 PIN에 대한 부분적 인식, 및 관련된 위협을 고려할 때 논의된다.)
오직 신뢰받고 있는 파티들만이 CC 공개키를 알아야 한다. 만약 CC-암호화된 개인키를 도둑맞는다면, CC 공개키의 입수는 도둑에게 PIN에 대한 사전적 공격을 개시할 수 있는 능력을 제공한다. 보안상의 목표를 충족시키기 위해서, CC 공개키는 단지 CCAS에만 알려져야 한다. 실지로 클라이언트는 CCAS 공개키 하에서 암호화된 형태로 CC 공개키를 저장할 수 있으며, 이로써 단지 CCAS만이 그것을 해독할 수 있다. 클라이언트가 암호화된 패키지를 CCAS로 보낼 때마다 그것은 CCAS에서 인증된다.
유사하게, 사용자의 CC 개인키로 서명되었던 임의의 디지탈 서명은 단지 CCAS에서만 보여야 한다. 따라서, 메시지는 먼저 CC 개인키로 서명된 후, CCAS 공개키로 실링된다.
Hoover와 Kausik는 더욱 개방적인 제한을 말했는데, 이것은 검증가능한 플레인텍스트를 함유하는 CC 개인키 하에서 암호화된 어떤 메세지는 오직 CCAS에 의해서만 알려져야 한다는 것이다. 실지로는 검증가능한 플레인텍스트를 가지지 않는 유용한 메시지를 생성하는 것이 과도하게 어렵다는 것이 주지된다. 플레인텍스트가 검증가능하지 않다는 가정은 시스템의 보안에 대한 미결 문제를 남기며, 이것은 적합한 검증 방법을 만들어 내는 공격자의 재주에 의존한다. 이것들과 같은 미결문제는 본 모델에서 허용되지 않으며, 그러므로 이 제한에 대한 더 빈틈 없는 진술이 사용된다. 다음은 CC 시스템의 요약이다:
CC 등록시, 클라이언트는 PIN P, 개인키 Ec, 및 상응하는 공개키 Dc를 선택한다. 또한, CC가 Ec 및 Dc의 구성을 강제한다는 더 이상의 제한이 있는데, 여기서 고려할 필요는 없다. 클라이언트는 다음을 저장한다:
CC(P, Ec) 위장된 개인키
Ds CCAS의 공개키
Ds(Dc) CCAS를 위해 실링된 클라이언트 공개키
CC 인증시, 사용자는 P를 입력하고, 클라이언트는 CC(P, Ec)로부터 Ec를 검색한다. 클라이언트는 다음을 CCAS로 보낸다:
Ds(Ec(메시지)), 및
Ds(Dc).
CCAS는 Ec(메시지) 및 Dc의 실링을 풀고, 클라이언트의 서명을 검증하여 메시지를 인증한다.
Dc가 CCAS를 위하여 키의 유효성을 증명하는 적합한 증명서 세트를 수반한다고 가정한다. 이제, Dc가 클라이언트와 CCAS에 의해 공유된 비밀을 가지고 있어야 한다고 가정하면, 이것은 3-파 증명서 인증을 사용하여 Dc를 증명하는 정규 방법을 배제하는 것처럼 보인다.
CC에서, PIN은 2개 할당으로 효과적으로 나눠진다.
CC(P, Ec) 이것은 클라이언트에게만 알려진다, 및
Dc 이것은 서버에게만 알려진다.
일반적으로, Ec 하에서 서명되거나 또는 Dc 하에서 실링된 모든 더 이상의 메시지가 또한 Ds 하에서 실링되어야 한다. 본 발명에 따라서, 이것은 2-서버 로밍 솔루션으로 변환될 수 있다.
CC 시스템은 특별한 방식으로 패스워드 입력 에러를 취급하는데, 이것은 클라이언트 상의 패스워드 입력에 있어서의 오식을 검출한다는 특징을 가진다. 클라이언트는 클라이언트 상의 로컬적으로 저장된 레퍼런스 데이타와 소량의 해시화된 패스워드를 비교한다. 그러나, 이 메카니즘은 상당한 희생이 있는데, 즉 이것은 저장된 클라이언트 데이타에 접근한 적에게 패스워드에 대한 정보 중 적은 비트를 누출하게 된다. 그 결과, 온라인 추측 공격에 대한 주어진 보안 레벨에서 CC 시스템의 패스워드를 다소 더 길거나 또는 더욱 복잡하게 만듦으로써 기억하기 더 어렵게 해야 한다. CC 에러 취급 특징은 사람들이 조금 더 어렵게 작업하면 시스템에 대한 계산 부담을 덜 수 있다는 전제하에 디자인되는데, 즉 클라이언트 상의 초기 에러 검출이 서버에 대한 불필요한 작업을 방지하게 된다. 다른 원리는 사람들을 해야할 일로부터 구제하기 위해 컴퓨터가 사용되어야 한다는 것이다. 시스템은 사용자를 곤란하게 하지 않고 사용자의 실수를 견디기 위해 열심히 일해야 하며, 여전히 패스워드 추측 공격에 대해 최고의 가능한 배리어를 유지해야 한다. 패스워드 입력에서 고의적이지 않은 실수를 최적으로 취급하는 시스템이 본 발명의 바람직한 구체예에 포함된다.
주로 스마트-카드를 이용할 수 없는 경우 "로밍" 사용자를 인증하려는 취지에서, 로밍 솔루션이 공개키 인프라구조(PKI)를 제공하는 많은 회사에 의해 디자인되어 전개되었다. 그러한 시스템에서, 사용자는 <http://www.integritysciences.c om/PKI50.html>에서 이용가능한 J. Kerstetter, "Entrust, VeriSign clear path to PKI", PC Week, June 14, 1999에 논의된 원격 크리덴셜 서버로부터 저장된 사용자 프로필(전형적으로 사용자 개인키를 함유하는)을 안전하게 검색한다. 크리덴셜 서버 상의 다른 작업은 Perlman과 Kaufman의 논문에서 설명된 EKE 및 SPEKE의 변형들을 사용한다.
상기 설명된 암호 위장 시스템은 단일 CC 서버를 가정하며, 사용자키 정보가 클라이언트 상에 저장된다고 가정한다. 이것은 클라이언트에 저장된 데이타를 CC 로밍 서버(CCRS)로 이동시키고, CCRS에 제 2의 사용자 패스워스에 대한 추가 검증 데이타를 제공함에 의해, CC Roaming으로서 언급되는 2-서버 로밍 솔루션으로 변환될 수 있다.
패스워드, 및 클라이언트로 정보를 안전하게 복귀시키는 CCRS의 능력을 가져오는 적합한 패스워드-인증 프로토콜을 사용하여 사용자가 CCRS에서 인증된다. 바람직하게, 이것은 검증자-베이스 또는 소위 "익스텐디드" 제로-인식 패스워드 프로토콜을 사용할 것이다. 그러나, 다른 구성도 가능하며, 서버-인증된 SSL(보안소켓층) 또는 TLS 채널을 통해 검증용 CCRS로 클리어-텍스트 패스워드를 보내는 것을 포함한다. SSL은 "The SSL 3.0 Protocol", Netscape Communications Corp., Nov 18, 1996에서 A. Frier, P. Karlton 및 P. Kocher에 의해 논의되며, TLS는 "The TLS Protocol Version 1.0" IETE RFC 2246, http://www.ietf.org/rfc/rfc2246 .txt, Internet Activities Board, January 1999에서 T. Dierks 및 C. Allen에 의해 논의된다. 상기 논의된 대로, 충분한 보안을 위해서, CCAS PIN 및 CCRS 패스워드는 완전히 독립적인 값으로써 선택되어야 한다. 만약 그것들이 관련된 값이라면, 패스워드에 대한 공격이 PIN의 발각을 가져올 수 있다.
본질적으로, CC Roaming은 2-패스워드 시스템으로써, 한 패스워드는 CCRS용이고, 다른 패스워드(PIN)는 CCAS용이다. CC Roaming의 분명한 한계는 제 1 서버가 제 1 패스워드에 대한 브루트 포스 공격을 개시할 기회를 얻는다는 것이다. 두 가지 다른 관련된 논점은 클라이언트 엔트로피를 사용하는 효율성, 및 PIN 및 패스워드의 독립성이다.
패스워드-thru-SSL을 가지는 CC Roaming을 사용하여 CCRS에서 인증할 때, E. Felton D. Balfanz D. Dean 및 D. Wallqch에 의해 "Web Spoofing: An Internet Con Game" 20th National Information Systems Security Conference, Oct. 7-10, 1997, Baltimore, Maryland 및 http://www.cs.princenton.edu/sip/pub/spoofing.html에서 논의된 서버-스푸핑 공격, 및 하기 논의된 관련된 패스워드/PIN 공격으로부터의 위험이 더해진다. 이들 경우 모두에서, 만약 서버 중 하나만이 공격 받는다면, 2-서버 접근법의 이점 중 일부가 상실될 가능성이 있다. 제로-인식 패스워드-증명을 사용하여 CCRS에서 인증하는 것은 서버-스푸핑 공격을 제거할 수 있으며, 관련된 PIN/패스워드 공격을 훨씬 더 어렵게 만들 수 있다.
CC 로밍 시스템은 사용자 패스워드에 내재된 엔트로피의 비효과적인 사용을 만들며, 이것은 가치있으며 진귀한 리소스로 고려되어야 한다. 패스워드 방법의 일차적 목표가 주어진 보안 레벨을 달성하기 위해 사용자가 기억해야 하는 정보의 양(유의한 비트의 수)을 최소화하는 것이라는 것을 상기하자. CC Roaming 시스템은 이들 비트를 소모하고 몇 포인트의 취약성을 도입한다. 처음에, Hoover와 Kausik는 프로토콜을 러닝하기 전에 PIN 중 일부 비트를 사용하여 PIN을 미리 유자격화하도록 제안한다. 그들은 특수하게 구성된 짧은 해시 PIN을 클라이언트에 추가로 저장함으로써 이것을 행한다. 공격자는 해시화된 PIN을 사용하여 후보 PIN의 스페이스를 감소시킬 수 있다. 이미 감소된 크기의 PIN을 고려하면, 이것은 위험할 수 있다. 만약 사용자-선택 PIN이 허용된다면, 이것은 유효한 PIN의 스페이스를 위험한 레벨까지 감소시킬 수 있다.
또한 CC로밍 시스템은 두개의 패스워드, AS PIN 및 RS 패스워드간의 관계에 민감할 수 있는바 유저 비밀의 엔트로피를 인위적으로 나눈다. Hoover 와 Kausik은 위장된 AS PIN은 임의의 다른 목적을 위해서 사용되지 않아야 함을 명확히 했 다. 그러나, 유저가 우연히 RS패스워드에서 AS PIN을 포함하거나 침입자에게 알려졌을수 있는 이러한 비밀간에 어떤 대응관계가 존재하면 CC로밍에서 기초 CC시스템은 침입당하기 쉽게 된다.
관련 패스워드/PIN 침입은 유저가 그들을 동일값 또는 명백하거나 교묘하나 구별가능한 관계를 가진 별개값으로 선택할때 가능하다. 또한 실수로 잘못 타이핑한, 진정으로 독립한 PIN 및 패스워드를 가지는 유저에게 위험이 있다.
한 사람이 복수 유저에게 광범위한 침입을 고려하면, 약한 RS패스워드를 가진 유저들을 먼저 크래킹함으로써 목표 공간을 줄일 수 있고 그 다음에 대응 AS PIN들을 크래킹하기 위해 크래킹된 RS유저들 집단에 노력을 집중시킬 수 있다. RS패스워드에 대한 이러한 정보의 누설은 잠재적 침입자에 대한 전체적인 작업을 줄일 수 있다. 대조적으로, 동일 RS패스워드 및 AS PIN이 결합되면, (기술될)이상적인 두개의 서버 시스템은 패스워드 및 PIN에 의존하는 크래킹 작업 인자를 가지므로 훨씬 많은 전체 작업 인자를 요구한다.
따라서 CC로밍 시스템에 대하여 두개의 인자로 비밀을 인위적으로 분리하는 것은 새로운 피침입용이성을 낳고 모델을 약하게 한다. 바람직한 실시예의 설명에서, 보다 강력하고, 덜 복잡하며 적어도 유저의 기억된 비밀과 동일한, CC 및 CC로밍에 대한 보다 간단한 대안이 기술된다.
모든 싱글 서버 로밍 솔루션은 고유 한계가 있다. 상기의 모든 로밍 방법에서, 싱글 크리덴셜 서버는 유저의 패스위드에 대한 정보를 검증하기 위해 사용될 수 있는 데이터를 유지한다. 해시드 패스워드(hashed-password)가 강력한 힘에 의해 깨질 수 있다고 가정하면, 패스워드 검증 서버는 필수적으로 이러한 민감한 유저 데이터에 대한 하나의 고장 지점을 대표한다. 이러한 문제에 대해 기술하는 시스템이 논의될 것이다.
멀티 서버 로밍은 더 나은 진보를 나타낸다. 싱글 서버 시스템은 클라이언트 및 네트워크로 부터의 추측 공격(guessing attack)을 방지하는 동안, 서버로 부터 도난당할 수 있었던 패스워드 검증 데이터에 기초하여 추측하는 것을 멈추지 않는다. 멀티 서버 로밍 시스템은 놀라울 정도로 그러한 침입을 방지할 수 있다. 인증을 위하여 n 관련된 크리덴셜 서버사용의 희생으로, 멀티 서버 시스템은 크리덴셜 서버 데이터베이스로 보호 범위를 확장한다. 이러한 시스템에서, 적(enemy)은 n-1서버까지 완전 제어를 할 수 있고, 유효 유저와 함께 성공적인 크리덴셜 검색을 하는 동안 이러한 서버들의 동작을 모니터할 수 있고, 잔존하는 비타협 서버(uncompromised server)에 의해 탐지됨이 없이는 임의의 사람의 패스워드에 대한 단일 추측을 검증할 수 는 없다.
2000년 6월에, VeriSign은 2000년 5월판 "VeriSign introduce new technology to enable network-based authentication, digital signature and data privacy"라는 제목의 출판물을 발행했고, 하이 레벨로 멀티 서버 로밍의 특징을 설명한 http://www.verisign.com/rsc/wp/roaming/index.html 주소의 웹페이지를 개설했다. W.Ford 와 B.Kaliski의 논문 "Server-assisted generation of a strong secret from a password"이 2000년 6월 14일 Gaithersburg MD 에서 공동 기획을 위한 하부구조: 이네이블 기술에 관한 9번째 IEEE 국제 워크셥에서 소개되었다. 본 논문의 개정본은 2000년 9월 회보에서 출판되었다( W.ford 와 B.kaliski, Server-assisted generation of a strong secret from a password", 공동 기획을 위한 하부구조 : 이네이블 기술에 관한 9번째 국제 워크셥 회보, IEEE, 2000년 9월). 이러한 논문은 서버기반의 패스워드 크래킹 침입을 좌절시키기 위하여 복수개의 서버를 사용하는 방법을 설명한다. 2000년 6월 14일자 Ford 및 Kaliski의 논문에 상세히 기술된 방법은 이전의 서버 인정 채널에 의존한다. 패스워드 보안을 위한 이전의 안전 채널에의 이러한 의존은 불필요하고도 잠재적 위험을 가진 보안 인수를 야기한다. 이러한 의존의 제거는 본 발명의 하나의 이점이 된다.
2000년 6월 14일자 논문에 개시된 방법의 하나는 상기 기술한 바와 같이 본 발명의 바람직한 실시예에서 사용되는 변형 SPEKE 프로토콜을 사용한다. 2000년 6월 14일자 논문에 기술된 다양한 방법에서, 2개 이상의 서버는 패스워드 검증 데이터 비밀을 유지하는 다발을 공유한다. 각각의 서버는 유저를 위하여 비밀을 저장한다. 클라이언트는 유저로 부터 패스워드를 획득하고 2단계 절차에서 각각의 서버와 상호작용한다. 우선 클라이언트는 각각의 서버로 부터의 패스워드에 기초하여 앰플리파이드 키를 획득하고, 그 다음에 각각의 서버로 인증하기 위해 사용되는 "마스터"키를 생성한다. (여기에서 Ford 와 Kalisky의 "하아든드 키(hardened key)"기술 대신에 "앰플리파이드 키(amplified key)"(이는 Bellovin 및 Merritt의 논문에서 온 명칭이다)용어가 사용됨을 주목하라) 각각의 앰플리파이드 키는 유저의 마스터키의 하나의 셰어를 나타낸다. 클라이언트는 마스터키를 생성하는 증대된 키 셰어를 결합하기 위하여 해시 함수의 사용과 같은 그러한 임의의 표준 기술을 사용한다.
각각의 앰플리파이드 키를 획득하기 위하여, Ford와 Kaliski는 2개의 기본적인 방법을 제안한다. 하나는 상기 기술된 변형 SPEKE방법이고, 다른 하나는 "Security without Identification: Transaction Systems to Make Big Brother Obsolete", Communications of the ACM, 28(1985), 1030-1044, 에서 D.Chaum에 의해 설명된 스타일로 블라인드 RSA 디지털 서명을 사용하는 변형된 방법이다. 이러한 방법들은 이하에서 비교된다.
서버들은 무효 접속 시도를 추적한다. 그리고, Ford와 Kaliski에 따르면, 성공적인 인증보다 "훨씬 많은" 패스워드 증대 단계가 있다면, 서버는 더 많은 요구를 제한하거나 로크아웃하도록 조치한다. 그러나 시스템은 유효 유저에 의한 실수와 패스워드로의 진정한 침입을 더 잘 반영하는 다른 사건들을 구별하지 못한다. 그 처럼, 성공적이지 못한 시도를 처리하기 위한 시스템은 여기에서 보통의 인간의 실수를 최적화하여 처리하지 못한다. 단순한 인쇄상의 에러나 다른 수정된 실수에 기인한 성공적이지 못한 증대는 다른 성공적이지 못한 시도로서 카운트되지 않아야 한다. 본 발명은 이러한 경우를 처리하는 더 나은 방법을 제공한다.
또한 2000년 6월 14일자 논문의 방법은 이전에 확보된 서버로의 서버 인증 채널에 의존한다. 이전의 인정에 대한 이러한 의존은 불필요하게 복잡한 보안 모델을 생성하고, 따라서 침입 위험을 가중한다. 이러한 위험은 하나의 고장 지점을 제거하기 위한 목표와는 불양립할 수 있다.
RSA 블라인드 공개키 서명은 2000년 6월 14일자 논문에 기술된 패스워드 증대 방법의 하나에 사용된다. 이러한 기술은 변형 SPEKE 방법과 같은 동일 효과를 가져온다--랜덤 컴포넌트에 기초하여 패스워드를 라아지 키(large key)로 증대하는 두 가지 방법은 또다른 회사에 알려져 있다. 그러나 RSA 방법은 부가적인 복잡성을 야기한다. RSA 블라인딩 방법의 상세한 설명은 Ford 와 Kaliski의 논문에 포함되지는 않으나, Chaum 블라인딩의 참조에 기초한 방법은 다음과 같은 작업으로 나타난다.
단일값 y 대신에, 서버는 각각의 유저를 위하여 값{n, e, y}을 유지한다. 이러한 값의 어떠한 것도 패스워드로 부터 유도되지는 않는다. 값 n은 pㆍq와 동일하고, 여기서 p와 q는 RSA계수의 적당한 프라임 넘버이다. e=1/d mod(p-1)(q-1)에서 e는 RSA 공개키이고 у는 대응 개인키이다. 필수적으로, 앰플리파이드 키는 KB인데, 이는 패스워드에서 RSA서명이다. x의 사용은 Chaum의 논문에서 기술된 바와 같이 이것을 블라인드 공개키 서명 스킴으로 만들고, Chaum의 논문에서 블라인딩 인자 x는 서버가 서명하고 있는 데이터(P)를 인지하는 것을 방지한다.
2000년 6월 14일자 논문에서 클라이언트를 위하여 KB의 인증을 보증하는 채널을 인증하기위해 SSL이 사용될 것이 제안되었다. 논문은 또한 RSA 블라인딩 클라이언트는 서버를 미리 인정함에 의한 것을 제외하고, n 및 e값을 유효하게 하는 이로운(즉, 유효한)방법이 없다라는 사실에서, RSA블라인딩 상의 변형 SPEKE의 이점을 주장한다.
또한 Ford와 Kaliski는 패스워드를 (종래의)크리덴셜 서버로 인증하도록 사용되는 키 K1으로 증대하기 위해 사용되는, "특별한 경우"의 프로토콜을 소개한다. K1값은 전적으로 패스워드 하드닝 서버의 응답 및 패스워드에 의해 결정된다. 첫번째 변경을 제어하는 임의의 침입자는 유저에 의해 계산된 K1값이 P'에 대한 추측에 기초하여 그가 구성하는 후보 K1'값과 동일한지를 판정할 수 없음이 분명하다. 유사하게, K1으로 암호화된 메시지가 검증가능한 평범한 텍스트를 포함했다면, 침입자 또한 그것으로 부터 추측을 입증할 수 있다. 이러한 위협을 퇴치하기 위하여, 작자는 크리덴셜 서버 통신 채널이 통합 보호되어야 함을 제안한다. 2000년 6월 14일자 논문은 명백한 방법을 규정하지는 않았으나, SSL의 사용을 제안했다. (2000년 9월자 논문은 사전 보안된 채널에 대한 필요성을 회피하는 방법에 대하여 논의하지 않았음을 주목하라) 클라이언트에서 근원적인 보증의 통상적인 세트가 양 서버를 유효하게 할 수 있음이 가정되면, 하나 이상의 하나의 고장 지점이 시스템에 도입된다. 개인키가 루트 또는 임의의 하부 인증 기관을 위해 거주하는 각각의 위치에서 하나의 고장 지점이 존재한다. 본 모델의 주된 목표는 하나의 고장 지점을 제거하는 것이므로, 이러한 사실은 중요하다.
전에 언급된 침입은 문제된 두 서버에 대한 유효하게 보이는 인증서 체인을 생성하는 키를 가지는 임의의 단일 시스템과 타협함으로써 달성될 수 있다. 또한, 상기 기술된 바와 같이, 보안의 SSL/웹 브라우저 모델에의 침입은 유저를 기만하여 좋지않은(malicious) 서버로의 "유효한"SSL 접속을 사용하도록 하거나 또는 SSL을 전혀 사용하지 못하도록 할 수 있다.
이전 서버 인증에의 의존은 심각한 제한이다. 공중 키오스크 또는 다른 도메인의 광범위 서버로 접속할 수 있는 개인 데스크탑과 같은 고객 환경에서, 유저는 적당한 서버로 위치하여 접속해야 한다. 적당한 서버로 접속하게 하고, 패스워드의 보안을 유지케 하기 위하여 유저에 의존함은 문제를 야기한다. Ford 와 Kaliski는 클라이언트가 안전한 서버 인증 채널을 생성하기 위해 SSL을 사용할 수 있는 방법을 논의한다. 이것은 클라이언트가 패스워드 보안을 유지하기 위하여 서버의 아이덴티티를 (어느정도) 확인해야함을 암시한다. 또한, 전형적인 구현에서, 클라이언트는 서버로의 통신 채널을 인증하기 위한 서버 특유 상태 정보를 저장함을 암시한다. 서버로의 안전한 채널을 확립하기 위하여, SSL 솔루션은 전형적으로 클라이언트에 인스톨된 하나 이상의 인증 기관을 위하여 기 설정된 루트 키를 가질것을 요구한다. 또한 루트 키를 명명된 서버의 공개키와 연관시키도록 구성된 인증 체인으로의 접속을 요구한다. 클라이언트는 유저에 의해 선택된 적당한 서버(또는 서버들)의 인증서의 유효성을 확인하기 위하여 인증서 유효성 확인 소프트웨어 및 정책 강화를 포함해야 한다. 결국, 유저는 서버 명 블라인딩이 옳다는 것을 보증해야 한다. 이것은 유저에 의한 상당한 조치 및 주의를 요구할 수 있다. 특히 브라우저 모델에서 사용된 것과 같은 SSL에의 의존은 불필요하게 위험이 있다. 유저는 기만되어 좋지않은 서버로의 "유효한"SSL 접속을 사용하게 될 수 있고 또는 SSL을 전혀 사용하지 않게 될 수 있다. 이러한 절차는 "인간의 실수"로 돌려질 수 있는 몇몇 타입의 고장에 달려있다. 문제는 인간의 협력자의 비현실적인 기대에 기초한 전체 시스템 디자인의 에러라고 믿어진다.
패스워드 보안을 위하여 사전에 서버-인증된 채널에 대한 의존은 불필요하다. 본 발명의 바람직한 대안의 방법은 멀티플 로밍 사용자 및 멀티플 서버의 환경에서 통상적인 인간의 행동에 더 적응하는 더 간단한 모델에서 작동한다.
바람직한 보안 모델은 멀티플 서버를 사용한다는 점에서 2000년 6월 14일 페이퍼에서의 것과 유사하다. 그러나, 본 발명의 바람직한 모델에 있어서는, 클라이언트와 서버 사이에 사전-인증된 보안 채널이 존재하는 것으로 가정되지 않는다. 바람직한 모델은 패스워드의 보안을 유지하기 위해서 사용자가 서버의 신원정보의 유효성을 주의깊게 확인할 필요가 없게 한다. 이러한 모델에 있어서, 사용자는 인터넷상에서 일반적으로 사용되는 것들과 같은 임의의 보안되지 않은 메카니즘을 통하여, 이따금, 자유로이 서버의 위치를 파악할 수 있다. 이들 방법은 수동으로 타이핑된(또는 잘못 타이핑된) URL, 보안되지 않은 DNS 프로토콜, 신뢰할만하지 못한 검색 엔진, 미지의 소스에 의해 수집된 콜렉션에서의 아이템상을 "클릭킹"하는 것을 포함한다. 모든 이들 방법은 올바른 서버에 접속하기 위한 힘든 많은 방식을 제공하지만, 이들 중 어느 것도 임포스터로의 접속의 가능성에 대해 보증할 필요가 없다. 이러한 간단한 모델에서 일어나는 최악의 위협은 서비스의 거절 중 하나이다-더 복잡한 모델에서는 어떠한 방식으로든 항상 존재하는 위협이다. 바람직한 모델의 부가 이점은 클라이언트가 어떠한 수단에 의해 임포스터에 접속될 때조차도 패스워드는 결코 노출되지 않는다는 것이다.
종래 기술의 대부분은 잘못된 패스워드 엔트리를 아주 단순하게 처리한다. 2000년 6월 14일 페이퍼에서는, 각각의 서버가 "패스워드 하든잉(hardening)" 스텝의 넘버의 진로를 쫓아 이것을 성공적인 인증의 넘버와 조화시킬 수 있는 것이 제안되어 있다. 인증보다 "상당히 많은" 하든잉이 존재한다면, 계정은 폐쇄(lock out)될 것이다. 이것은 패스워드-기반 시스템에 전형적인 것이다. 그러나, 성공적이지 못한 로그인이 매우 일반적일 수 있다는 것을 주목하자. 패스워드는 종종 잘못 타이핑되고, 사용자는 최종적으로 올바른 것을 얻기 전에 종종 멀티플 패스워드의 잘못된 선택을 입력할 수 있다. 롱-텀 고정 리미트가 그러한 실수에 놓여있다면, 유효하지만 서투른 사용자는 폐쇄될 수 있다. 다른 한편으로는, 시스템이 3번 시도에 1번 성공의 비율을 허용한다면, 롱-텀 동안 적에 의한 때때로의 추측 공격은 검출되지 않을 수 있다.
이러한 에러 처리 문제를 설명하기 위해서, 본 발명에서는 "면제(forgiveness)"의 개념이 도입된다. 시스템은 미확인 사용자에 의한 무효한 액세스 시도와 동일한 방식으로 유효한 사용자에 의한 과도기적 실수를 책임지지 않고 면제하여야 한다. 이러한 문제는 본 발명의 바람직한 실시예에서 설명된다.
따라서, 본 발명의 목적은 패스워드-기반 클라이언트/서버 인증 시스템에서의 간단한 보안 모델에서 가능한 많이 서버-기반 공격의 위협을 감소시키는 것이다. 또한 본 발명의 목적은 멀티플 서버를 사용하여 원격 사용자 인증을 제공하는 것이다. 또한 본 발명의 목적은 작은 패스워드만을 사용하여 클라이언트로부터 서버로 인증하는 것이다. 또한 본 발명의 목적은 클라이언트 머신상에 기억된 키 또 는 인증서를 필요로 하지 않는 인증을 제공하는 것이다. 또한 본 발명의 목적은 폴트-톨러런스를 위한 멀티플 서버를 사용하는 것이다. 또한 본 발명의 목적은 임의의 개개의 서버의 총 액티브 컴프로마이즈에 대해서조차도 보안되는 원격 패스워드 인증을 제공하는 것이다. 또한 본 발명의 목적은 패스워드 엔트리에서의 보통 사람의 에러를 더 잘 처리하는 것이다.
상기 및 다른 목적을 달성하기 위해서, 본 발명은 멀티플 서버를 사용하여 원격 패스워드 인증을 구현하는 시스템, 방법, 및 소프트웨어를 제공한다. 시스템, 방법, 및 소프트웨어는 멀티플-서버 시스템에서 보안을 구현하도록 변형 SPEKE의 형태를 사용한다. 본 발명에 따른 예시적인 시스템은 네트워크로 서로 연결된 복수의 인증 서버 및 하나 이상의 클라이언트를 포함한다. 예시적인 시스템에 있어서, 클라이언트는 각각의 인증 서버로부터 시크릿 마스터 키의 셰어(Ki)를 검색하도록 수정 SPEKE를 사용하는데, i는 특정 서버를 지시하는 변수이다. 클라이언트는 서버에 인증하도록 사용되는 마스터 키(Km)를 생성하고 서버 또는 그밖의 다른 곳에 보안 기억되는 기밀 데이터(개인 키를 포함)를 검색 및 해독하도록 각각의 서버로부터의 각각의 셰어를 조합한다.
각각의 인증 서버는 마스터 키의 단일 셰어에 상응하는 랜덤값(yi)을 개별적으로 알고 있다. 각각의 인증 서버는 또한 클라이언트로부터의 최근 액세스 요청의 리스트를 유지하고 유효한 클라이언트로부터 수신된 프루프 메시지를 검증함으로써 이들 액세스 시도를 조화시키는 데 책임을 진다. 특히, 각각의 서버는 면제에 대한 유효한 요청을 검증할 수 있을 때 패스워드 엔트리에서 최근 지나간 에러에 대해서 유효한 사용자를 면제해야 한다.
통신 채널의 제어에서의 적이 앨리스를 속여 적절치 못한 마스터 키(Km)를 사용하게 할 가능성을 방지하지 위해서, 앨리스는 적에게 누설될 수도 있는 임의의 데이터를 생성하도록 Km을 사용하기 전에 그것이 올바른 것인지 확인한다. 인증 단계는 이전의 합법적이지만 실수인 최근 로그인 시도에 대한 면제를 인증 및 요청할 뿐만 아니라, 유효한 로그인을 인증하도록 앨리스로부터 각각의 서버로 서명된 메시지를 사용한다.
더 특히, 가입시, 앨리스는 마스터 대칭 키(Km)의 n개의 셰어를 생성하는데 각각의 i번째 셰어(Si)는 랜덤 지수(yi)로 증대된 패스워드(P)의 함수로서 형성되어 있다. 이들 셰어는 셰어의 임의의 적절한 서브셋을 알고 있는 공격자가 동일 범위에서의 랜덤값으로부터 Km을 구별할 수 없도록 함수와 조합된다. 그 후 앨리스는 각각의 멱지수(yi)가 i번째 서버에 의해 밀접하게 가드된 시크릿으로서 기억되도록 어떻게든 전달한다. 앨리스는 또한 전자서명에 대하여 공개/개인 키 쌍{V,U}을 선택하고, 암호화된 개인 키(Uk)를 생성하도록 Km으로부터 유도된 키를 사용하여 개인 키(U)를 대칭적으로 암호화한다. 최종적으로, 앨리스는 그 마스터 키에 패스워드를 링크하는 프루프값(proof PKm)을 생성한다. 앨리스는 V를 각각의 n개의 서버에 송신하고 Ukproof PKm을 편리한 장소, 아마도 각각의 서버상에 기억시킨다. 앨리스(A)의 신원을 각각의 i번째 서버(Bi)에 인증하는 보안 채널을 통하여 가입 프로토콜 플로가 수행된다.
Client: {enroll, A, V, yi} -> Bi
Client: {record, A, UKm, proof PKm} -> Bi
키 검색시에, 앨리스가 그녀의 마스터 키를 재구성하고 그녀의 개인 키를 검색하기 위해서, 앨리스는 패스워드(Q)의 랜덤하게 블라인딩된 폼을 각각의 서버에 송신한다. 순차적으로 각각의 서버는 사용자의 마스터 키의 블라인딩된 셰어를 표시하는 시크릿 지수 값의 누승(Ri:= Qyi)로 증대된 블라인딩된 패스워드로 이루어진 블라인딩된 리플라이(Ri)와 응답한다. 서버 중 적어도 하나에서 또한 앨리스는 그녀의 암호화된 개인 서명 키 Ukproof PKm을 송신한다.
Client: {request, Q} -> Bi
Server Bi: {reply, Qyi, Uk, proof PKm} -> Client
흥미롭게도, 앨리스가 Ukproof PKm을 검색하는 채널은 이들 값의 무결성을 보증할 필요가 없다. 이것은 4.4 절에서 더 논의된다.
앨리스는 각각의 키 셰어를 얻도록 각각의 리플라이를 언블라인딩하고 셰어를 조합하여 그녀의 마스터 키(Km)를 다시 만든다. 그 후 앨리스는 프루프값(proof PKm) 및 그녀의 패스워드(P)를 사용하여 마스터 키가 옳은지를 검증한다. 프루프가 옳지 않다면, 이것은 키 셰어의 적어도 하나가 옳지 않다는 것을 암시하고, 그녀는 Km 또는 P에 관한 임의의 정보를 네트워크로 더 누설함이 없이 프로토콜을 중단해야 한다. 그렇지 않으면, Km으로부터 유도된 키는 그녀의 암호화된 개인 키( 및 임의의 다른 데이터)를 해독하도록 사용되고, 그 후 그녀는 그녀의 신원정보를 각각의 서버에 제공함으로써 프로토콜을 완수한다. 각각의 서버에 최근 송신된 각각의 블라인딩된 패스워드(Q)에 대하여, 그녀는 블라인딩된 패스워드의 서명된 카피를 보낸다.
Client: {confirm, Q1, sign(U,Q1)} -> Bi
Client: {confirm, Q2, sign(U,Q2)} -> Bi
각각의 서버는 최근에 수신된 블라인딩된 패스워드의 리스트와 대조하여 앨리스로부터의 서명된(Qx) 값을 매칭시키고, 유효한 서명을 수반한 임의의 매칭 엔트리를 제거한다. 남아있는 엔트리는, 합리적인 시간 내에 확인되지 않으면, 의심스러운 불법 액세스 시도라 생각되어지고, 부정(bad) 꼬리표가 붙여진다. 부정한 액세스 시도를 카운팅하는 것은 특정 임계값 이상으로 카운트가 올라가면 사용자의 계정에 대하여 더 블라인딩된 셰어 리플라이를 제한 또는 딜레이하도록 사용될 수 있다.
앨리스는 그녀의 마스터 키를 검증해야만 한다. 상기한 바와 같이, 앨리스는 보안되지 않은 채널을 통하여 인증을 수행할 수 있다. 앨리스는 (전형적으로 크리덴셜 서버로부터) 그녀의 검증기(proof PKm)를 검색하고 그 후 그것을 갖는 그녀의 패스워드의 키잉된 해시와 proof PKm을 비교함으로써 다시 만들어진 마스터 키의 유효성을 확인한다. 값이 매칭하지 않으면, 앨리스는 프로토콜을 중단한다.
본 발명의 또 다른 인핸스먼트는 앨리스가 마스터 키의 인식을 각각의 서버에 어떻게 증명하고, 각각의 서버는 이러한 정보를 액세스 시도의 그 자신의 기록과 어떻게 조화시키는가에 관한 것이다.
각각의 서버는 마스터 키의 인식의 프루프, 및 암시에 의해, 그녀가 패스워드를 알고 있다는 프루프를 포함하는 앨리스로부터의 메시지를 찾음으로써 불법적인 액세스 시도를 검출한다. 유효한 프루프가 블라인딩된 패스워드 값과 연관되지 않으면, 서버는 앨리스의 계정에 대해 부정한 액세스 이벤트를 트리거링해야 한다. 본 방법은 앨리스의 프루프를 만드는 것과 각각의 서버가 패스워드 엔트리에서의 앨리스의 실수를 면제하도록 프루프를 어떻게 사용하는가에 있어서 종래기술과 다르다.
보안 채널을 사용하지 않을 때 Bi에 단순하게 프루프를 보내는 것은 리플레이 공격에 방법을 노출시킬 수 있다. 이것을 방지하기 위해서, 프루프는 앨리스에 의해 송신되는 블라인딩된 요청값을 편입하고 있다. 더 나아가, 앨리스는 때때로 패스워드를 잘못 타이핑하여 조급한 계정 폐쇄를 일으킬 수도 있는 그녀의 불법적인 액세스 카운트를 증가시킴에 의해 그녀가 벌받지는 않는 것으로 인식된다. 그녀가 궁극적으로 올바른 패스워드를 입력할 수 있다는 것을 서버에 바로 증명하면, 각각의 서버는 그녀의 실수를 면제하는 것이 바람직하다.
면제 프로토콜을 사용하여, 진정한 사용자의 실수는 면제된다. 앨리스는 각각의 성공적인 인증 후에 면제에 대한 요청에서의 최근의 이전 무효한 액세스 시도의 징표(evidence)를 송신한다. 이러한 징표를 수신하고 유효성을 확인하는 때, 각각의 서버는 기록으로부터 실수를 지우거나, 또는 정정된 면제가능한 실수로서 이벤트를 기록한다. 이러한 방식으로 서버의 이벤트 로그를 파인-튜닝함으로써, 시스템 관리자는 유효한 사용자가 단지 실패하고 있는 때와 대조하여, 진짜로 시스템이 위험한 때를 더 상세히 파악한다.
면제 시스템은 클라이언트상에서 하나의 서명 생성 단계 및 각각의 서버에 대하여 하나의 서명 검증 단계를 적어도 필요로 하는 것처럼 보인다. (계산 손실으로 인하여, 공개키 서명 방법이 사용될 때 중요할 수도 있는) 계산을 최소화하기 위해서, 서명 단계는 사용자를 인증하는 조합된 함수를 제공하고 그 사용자로부터 요청이 왔음을 증명한다. 사용자를 위해 유효한 인증 메시지를 만듦에 있어서, 클라이언트는 그 사용자에 의해 발행된 모든 최근 챌린지 메시지의 세트를 포함하고, 적합한 사용자 키로 결과를 전자서명하고, 그것을 모든 서버에 송신한다. 각각의 서버는 사용자를 인증하도록 서명을 검증하고, 동시에 그녀의 면제가능한 최근 실수의 징표의 유효성을 확인한다. (이들 서명은 공개키 디지털 서명 시스템에서 클라이언트의 개인키를 사용하여 생성될 수 있고 클라이언트의 공개키를 사용하여, 또는 대안으로, 클라이언트와 각각의 서버 사이에 쌍방으로 셰어링되어 있는 별개의 대칭 키에 키잉된 keyed-MAC을 사용하여 검증될 수 있다.)
앨리스의 확인 메시지를 수신시에, 각각의 서버는 최근 시도의 기록된 리스트와 대조하여 그녀의 액세스 시도의 프루프를 조화시키려 시도한다. 각각의 Q 값상에서 앨리스의 서명을 검증함으로써 이를 행한다. 성공적인 검증시에, 그 요청 메시지가 그녀의 마스터 키를 재생성하도록 특정하게 사용되었는지에 상관없이, 패스워드를 궁극적으로 알고 있는 누군가에 의해 Q 값이 정말 송신되었음을 안다.
본 발명의 바람직한 실시예에 있어서, 어떠한 하나의 서버도 검증기를 크랙킹할 수 없도록 서버 사이에 패스워드 검증기의 발너러빌리티(vulnerability)가 퍼져 있다. 그것은 N개의 서버로 스케일링된 시스템을 제공하는데, N-1 서버까지의 임의의 넘버상의 어떠한 공격도 사용자의 패스워드 또는 임의의 패스워드-보호된 데이터를 누설하지 않는다. 인증 서버 중 하나를 제외한 모든 것까지의 총 액티브 컴프로마이즈에 직면해서조차도 및 이전의 보안되지 않은 통신 채널에 직면해서조차도 그것은 강력한 보증을 제공한다. 시스템을 구현하는 데 있어서, 패스워드는 유일한 팩터임이 이해될 것이다.
본 발명을 구현하는 데 있어서 요구되는 유일한 인증 팩터는 패스워드임이 이해될 것이다. 패스워드-온리 인증은 오늘날 사용에 있어서 지배적인 방법이다. 본 발명에 있어서, 패스워드 팩터는 가능한 강력하게 되어 있고, 다른 팩터에 의존하지 않는다.
또한 다른 부가적인 키 또는 인증서가 사용될 수 있음이 이해될 것이다. 본 발명은 멀티-팩터 시스템에서 사용될 수도 있다고 생각된다. 로컬 키를 기억할 능력이 있는 비-로밍 애플리케이션에 있어서 명백하게도, 스트렝스의 부가 레이어를 제공하도록 그렇게 할 수 있다. 예를 들어, 보안 소켓 레이어(SSL) 채널의 사용은 본 시스템에서 패스워드의 보안을 위해 요구되지는 않지만 SSL의 부가적인 사용은 이들 트랜잭션을 수행할 때 사용자의 이름에 대한 프라이버시의 증가된 레벨과 같은 다른 이점을 제공할 수 있다. 패스워드 보안에 대하여 그러한 다른 팩터에의 의존성을 제거함으로써, 전체 시스템의 스트렝스가 대단히 증가된다. 특히, 본 시스템은 오늘날 널리 사용되고 있는 웹-브라우저 인증의 단순한 패스워드-스루-SSL 시스템에 대하여 가능한 웹-서버 스푸핑(spoofing) 공격의 전체 클래스를 중지시킨다.
본 발명의 여러 특징 및 장점들은 동일한 도면부호가 동일한 구성요소를 지시하고 있는 첨부된 도면을 참조하여 이루어지는 다음의 실시예에 의해 보다 용이하게 이해되어질 수 있을 것이다.
도 1은 본 발명의 원리에 따르는 예시의 시스템의 클라이언트 및 서버 컴포넌트를 나타내는 블록도;
도 2는 본 발명의 원리에 따르는 예시의 클라이언트 오퍼레이션의 방법을 나타내는 흐름도;
도 3은 본 발명의 원리에 따르는 예시의 서버 오퍼레이션의 방법을 나타내는 흐름도;
도 4는 2개의 서버를 가진 클라이언트의 오퍼레이션을 보여주는 본 발명의 원리에 따르는 예시의 방법을 나타내는 흐름도;
도 5는 2개의 서버 중 하나만을 가지고 통신하는 클라이언트의 오퍼레이션을 보여주는 본 발명에 따르는 예시의 방법을 나타내는 흐름도.
도면을 참조하면, 도 1에는 본 발명의 원리에 따르는 예시의 다중-서버 시스템(100)을 나타내는 블록도가 도시되어 있다. 이 예시의 시스템(100)은 클라이언트(101) 또는 클라이언트 컴퓨터(101)(앨리스)와 복수의 인증 서버(103, 104)를 포함하고 있는 것으로서 도시되어 있으며, 이 경우 2개의 서버(B1;103, B2;104))는 네트워크(102)에 의해 함께 커플링되어 있다.
본 시스템(100) 및 방법은 클라이언트가 2개 이상의 서버(103, 104)로부터 마스터 키의 셰어를 검색하기 위한 변형 SPEKE 방법을 채용한다(숫자 n은 특정 실시예에 사용되는 서버(103, 104)의 수를 지시하는 데 사용된다). 본 발명을 실시하는 데 사용되는 모델은 인증 메시지가 비방호 채널 또는 네트워크(102)를 거쳐 전송되는 것을 가능하게 해주며, 요구되는 보안 채널(예컨대 SSL)은 없다. 채널의 통제에 있어서의 침입자가 앨리스를 속여 부정한 마스터 키를 사용할 수 있는 가능성을 방지하기 위해, 앨리스는 침입자에게 노출될 수 있는 임의의 데이타를 생성하기 전에 마스터 키가 정확한 것인지를 확인한다. 또한, 인증 단계는 면제 프로토콜을 감당하기 위해 사전의 정당하지만 실수의 로그인과 함께 유효 로그인을 인증하기 위해 서명된 메시지를 사용한다. 구별 함수가 지수변환을 위한 패스워드 유도 베이스 요소를 생성하기 위해 제공되며, 보다 유연한 형태의 클라이언트(101)와 서버(103, 104)를 허용하는 형식을 설명한다. 변경적인 방법이 특수화된 상황에 유용할 수 있는 약한 보안 모델에 제공된다.
바람직한 실시예에 있어서, 앨리스의 잠정적으로 작은 패스워드와 모든 앨리스의 패스워드 방호 데이타는 n-1개의 서버(103, 104) 까지의 전체 활성적 절충으로도 보안적으로 유지된다. Km으로부터 유도된 키 조건하의 앨리스의 민감성 데이타의 암호화는 앨리스의 데이타가 이 인증 과정에 정확한 패스워드를 사용하는 관계자에게만 유용하게 되는 것을 보장한다.
등록시에, 앨리스는 하나의 패스워드와 마스터 키(Km)를 생성하는 데 사용되는 일련의 셰어{y1, y2, ..., y n }를 선정한다. 이 예에서, 마스터 키 유도 함수는 각각의 셰어가 Ki = Py i 로서 계산되는 조건에서 Km = hash(K1∥K2∥...K n )이며, 다른 변경적인 키 유도 함수는 아래에 설명된다. 앨리스는 Km을 먼저 계산하고, 각각의 B i 에 대해 대응하는 키 셰어(y i ) 및 Km에 대한 검증 데이타를 저장한다. 검증 데이타는 일반적으로 공개키 디지탈 서명이나 선택적으로 대칭 키잉된 MAC 함수를 사용하는 디지탈 서명 메시지이다.
각각의 서버(B i )는 앨리스에게 y i 의 지식을 기초로 변형 SPEKE 프로토콜을 사용하는 셰어(K i )를 제공한다. 프로토콜의 각각의 운영은 블라인드 키 셰어들 중 하나를, 이 예에서는 수치 m i =Pxy i 를 검색한다. 앨리스는 이 셰어들을 결합하고 해싱하여 마스터 키를 유도하며, 이 예에서는 다음의 함수를 사용한다.
Km = hash(m1 1/x∥m2 1/x∥...m n 1/x)
랜덤 y i 수치로 인해, 이 키 셰어들은 독립적이다.
도 2를 참조하면, 앨리스는 나중에 서버(103, 104)로부터 마스터 키를 검색한다. 클라이언트(101)는 사용자가 패스워드(201)를 입력하도록 종용하고, 변형 SPEKE 방법에 따라 패스워드(202)로부터 그룹 요소를 유도한다. (그와 같은 함수의 한 예는 (p-1)/2 프라임과 함께 Z p *의 라아지 프라임 오더 서브그룹을 사용할 때 P = hash(password)2mod p 이다.) 수정 SPEKE 방법을 사용하여, 앨리스는 블라인드된 패스워드 값 Px를 각각의 서버(B i ;203)로 전송한다. 각각의 서버(B i )는 블라인드된 패스워드 값을 mi = (Px)y i 에서와 같이 적당한 누승까지 상승시키고, 그 결과값을 앨리스에게 돌려준다. 앨리스는 각각의 키 셰어(m i ;204)의 대응하는 블라인드 값을 검색하고, 각각의 결과값을 언블라인딩하고 이 예에서는 함수 Km = hash(m1 yi∥m2 y2∥...mn yn)를 가지고 앨리스의 마스터 키(205)를 생성한다.
Bi로 라벨이 부여된 임의의 서버로부터 앨리스가 키 셰어(key share)(Ki)를 검색하는 일반적인 방법이 여기에 나타나 있다:
A→Bi: m0 = Px
Bi→A: mi = m0 yi
A: Ki=mi 1/x=Pyi
B1가 인식하고 있는 비밀 값(yi)은 B2가 인식하고 있는 값(y2) 등으로부터 완전히 독립적이다. 그래서, Km 또는 P 상에 딕셔너리 어택을 하기 위한 충분한 정보를 어느 서버도 가지고 있지 않다. 이 프로토콜로서, 각각의 Bs는 yi를 미리저장하고, 또한 마스터 키(Km)의 일방향 기능인 검증 데이터(V)를 저장한다.
앨리스는 Km으로부터 유도되는 키를 사용하여 암호화된 컨테이너에 저장된 퍼스널 개인 데이터(personal private data)(208)를 해독하는데 Km을 이용할 수 있다. 이 컨테이너는 임의의 서버(103, 104)에, 또는 편리한 다른 장소에 저장될 수 있고, 비보안 채널에 걸쳐 검색될 수 있다. 그렇지만, 앨리스가 Km의 인식으로부터 유도된 임의의 데이터를 다른 측에 공개하기 전에, 먼저 앨리스는 Km이 유효(208)한지를 판정해야 한다. 특정 유효화 기술이 이하에서 논의된다.
Km이 유효하지 않으면, 로컬 패스워드 재시도 폴리시에 따라, 사용자는 패스워드(201)를 재입력하여 재시도하도록 요구받을 수도 있다. 재시도가 수행되면, 클라이언트(101)는 보호 단기 메모리에 실패한 교환에 사용된 Px 값을 저장한다.
Km이 유효하면, 앨리스는 Km, Px, 및 단기 메모리에 저장된 동일 사용자에 의해 발생된 임의의 현재 이전의 값(Px)의 리스트의 인식의 프루프를 구축하고, 각각의 서버(103, 104)에 이 프루프를 송신(207)한다. 또한 앨리스는, 암호화된 컨테이너(209)에 저장되어 있는 개인키로 공개 문서를 보내는 등과 같이 Km으로부터 유도된 데이터를 자유롭게 이용할 수 있다.
앨리스는 임의의 적당한 제로-인식 프로토콜을 사용하여 임의의 Bi에 Km의 인식을 증명할 수 있고, Km이 큰 엔트로피를 가지고 있기 때문에 제로-인식 패스워드 프로토콜이어서는 안된다. 각각의 서버(Bi)는 Km에 상당하고 앨리스의 Km의 제로 인식 프루프를 검증하게 하는 검증 데이터 정보(V)를 가지고 있다.
예를 들면, 하나의 실시예에서, Km은 공개키 디지털 서명 계획을 위해 사용자의 개인키(U)를 검색하는데 앨리스에 의해 이용되고, 여기에서 V는 U에 상응하는 사용자의 공개 신호 키이다. 앨리스는 공개키를 이용하여 메시지를 보내는 등의 많은 방법으로 임의의 Bi에 Km의 인식을 증명할 수 있고, 여기에서 Bi는 서명을 검증하고 앨리스의 Km의 인식을 증명한다.
또한 Km으로부터 U의 유도는 다양한 방식으로 행해질 수 있다. 하나의 실시예에 있어서, U 및 V의 값은 다른 데이터의 이용 없이 Km으로부터 직접 유도될 수 있다.
본 발명의 바람직한 실시예에 있어서, U의 값은 Km으로부터 유도된 대칭키로 암호화된 컨테이너 내에 실링된 채 유지된다. 이 경우에, 앨리스는 대칭 암호화 키를 유도하기 위해 Km을 이용하고 그리고 나서 개인키(U)를 실링해제한다.
그리고 나서 앨리스는 Bi에 의해 알려져 있고, Km의 인식을 증명하는 메시지를 보내고, 서명된 메시지를 Bi에 보낸다. 본 발명의 하나의 실시예에 있어서, 이 메시지는 바브로부터 앨리스에 전송된 값(RBi)이다.
Bi→A: RBi, 랜덤 원-타임 수.
A→Bi: U(RBi), 앨리스의 RBi의 서명.
대안으로서, 본 발명의 바람직한 실시예에 있어서, 앨리스는 앨리스가 QA를 이용하여 인증하는 것인 것을 더욱 증명하는 U(QA)를 보낸다. 앨리스가 QA를 인증해야 하는 이유, 및 양호 액세스 시도 및 불량 액세스 시도를 구별하는 각각의 서 버의 필요에 관계하는 방법은 이하에서 논의된다.
제 3의 접근법은 V = gkm이고, 기본적으로 Km을 위한 Diffie-Hellman 공개키이다. 이 경우에, 앨리스는 다음과 같이 인증한다:
Bi→A: gx
A→Bi: m : = hash(( gx)Km )
Bi: (m==Vx)이면, 앨리스는 Km을 반드시 인식한다.
그리고 나서 앨리스는 그 자신을 증명하기 위해 EKm(QA)을 전송할 수 있다.
어떤 경우에, 앨리스가 Km의 인식을 증명할 때, 앨리스는 패스워드(P)의 인식을 또한 증명한다.
Ki 및 yi의 조합 인식이 그 서버에 크랙(P) 능력을 제공하기 때문에, 단일 셰어(Ki)를 인식하기 위해 서버(Bi)를 필요로 하지 않는데 대한 이유가 있다. 단일 서버의 경우에는, 패스워드를 크래킹하기 위해 이용될 수 있는 일부 데이터를 서버가 반드시 저장해야 한다. 그러나 이상적인 다중-서버의 경우에는, 서버가 P, Km, 또는 Ki 또는 P의 크랙을 야기하는 또 다른 무언가를 인식하는 것은 바람직하지 않다.
요약하면, 각각의 Bi는 P 또는 Ki를 인식하지 않는다. Bi는 변형 SPEKE를 실행시키고 앨리스의 Km의 인식을 인증하기 위해서 yi를 이용한다. 각각의 Bi는 yi 및 V, Ki에 대한 검증 데이터, 또는 보다 넓게는 앨리스의 P의 인식에 대한 검증 데이터로서 또한 기능하는 Km에 대한 검증 데이터만을 인식한다.
등록할 때, 앨리스는 그녀의 패스워드, 및 공개키 디지털 신호를 실행하기에 알맞은 공개/개인키 한쌍 {V,U} 을 선택한다.
앨리스는 아래의 단계를 오프라인으로 실행한다.
패스워드에 기초한 P요소 그룹을 구성하며,
P = hash(password)2 mod P
i가 1에서 n 서버(103,104)까지 변하는 동안
{
yi를 인디펜던트 라지 랜덤 넘버로서 선택하고
Ki: = Pyi mod p를 계산한다
}
예시로서, 모든 Ki 셰어로부터 K를 구성한다.:
Km = hash(K1∥K2∥...Kn)
예로서, 마스터 키 Km을 위한 범용 확인 데이터를 구성한다.:
V = gKm mod p
다음으로 앨리스는 안전하게 이러한 자격을 n 서버(103,104)에 부여한다.
"사용자 아이디"가 사용자를 위한 확인자가 되게 한다.
i가 1에서 n서버까지 변하는 동안
{
각각의 서버에 {사용자 아이디, yi, V}를 저장한다
}
인증
앨리스는 변형 SPEKE를 사용하여 각각의 Ki 셰어를 검색함으로서 인증하고, 셰어를 결합하여 Km을 생성하고, Km의 유효성을 점검하며, 그리고 각각의 서버 Bi에 Km의 지식을 제공한다.
각 서버 Bi에 대해서
{
A→Bi:QA = Px mod p
Bi→A:QB = QA yi mod p, V
A: Ki = QB (1/x mod(m-1)) mod p
}
Km = hash(K1∥K2∥...Ki)를 계산한다
Km의 유효성을 점검한다(아래에 설명됨).
삭제
삭제
각각의 서버 Bi에 대해
{
A→Bi : proof(Km, QA)
}
각 서브 Bi 는 Ki를 인지하지 못하고, 그리고 패스워드 P를 인지하지 않고는 이것을 계산할 수 없음을 주의하라. 더욱 여전히 다른 셰어의 지식 없이 Bi ,Km 또는 P를 인지하지 못하고, V로부터 이것을 계산할 수 없다. 만일 그가 모든 셰어 yi를 획득하지 못한다면 심지어 브루트 포스로도, Bi는 또한 yi로부터 이것을 계산할 수 없다. 더욱이, 만일 모든 서버(103, 104)가 손상되지 않는다면 어떠한 부정한 서버가 P를 계산할 수 없다는 목적은 이루어 졌었다. yi 값의 단지 하나에의 접근 불가능은 브루트 포스를 실행불가능하게 한다.
온라인 브루트 포스 공격의 예방
온라인 추측 공격을 예방하기 위해서, 서버(103, 104)는 사용자 마다 프로토콜의 실행의 수와 그리고 또는 주기를 제한하는 것을 원할 것이다. 이러한 기술은 잘 알려져 있다. 그러나 이러한 시스템을 최적화하기 위해서, 서버(103, 104)는 프로토콜의 유효한 실행과 유효하지 않은 실행을 구분하는 것이 필요하다. 더욱이, 프로토콜의 유효하지 않은 실행을 위해, 정당한 사용자 에러와 추측되는 공격 사이를 구분하는 것이 유익하다.
특히, 진실임을 증명하기 위해서 진실로 인정받지 않은 시도로부터 우연한 잘못된 패스워드 유형을 구분하는 것은 바람직하다. 기계 대 기계 인증과 다르게, 사용자 인증에서의 실수는 일반적이다. 패스워드 인증에 있어서 특히, 여러가지 공통된 실수의 유형이 있다. 아마 앨리스는 잠시 그녀의 패스워드를 잊어버렸고, 그리고 어떤 유사한, 그러나 부정하지 않은 유형일 것이다. 또는 아마 앨리스는 패스워드를 알고 있지만, 그러나 그것을 누르는 동안 실수를 했을 것이다. 다른 공통된 실수는 그녀가 막연히 기억하는 다양한 패스워드를 잘못 선택하는 유형이다. 최종 시도는 분명히 유효한 경우에도 로그인 시도의 연속 동안 이러한 실수를 하는 것은 사용자에게 있어 아주 일반적이다. 만일 서버가 이러한 유형을 의심되는 해커의 공격으로 간주한다면, 그리고 만일 서버가 사용자를 폐쇄하기 전에 시도의 횟수에 대한 엄격한 제한을 가진다면 사용자는 일반적으로 뜻하지 않게 그들의 시스템에서 폐쇄될 것이다.
상기한 바와 같이 시스템(100)에서, 공격자에 의한 의심되는 공격으로부터 그녀의 합법적이지만 그러나 실수의 접근 시도를 구분하는 것을 그들에게 가능하게 하기 위해서 앨리스는 그녀의 모든 인증 서버(103, 104)에 대한 {Km∥Px}의 결합된 지식을 증명할 수 있다. 아마 소정의 시간 주기 내에서, 만일 서버가 이러한 증명을 수용하지 않는다면, 그들은 그를 유효하지 않은 그리고 공격자에 의한 허가되지 않은 공격 시도로서 Px와 함께 만들어진 추측으로 보수적으로 가정해야하고, 그리고 허락된 잘못된 추측의 한계에 대항하는 것으로 여긴다.
잘못된 접근 카운트에 대한 인쇄상의 실수의 기여를 최소화하는 하나는 클라이언트(101)의 중복된 부정한 가입을 탐지하고, 그리고 서버(103, 104)에 대한 반복된 중복 부정한 패스워드를 보내는 것을 피한다. 일단 클라이언트 소프트웨어는 서버에 의해 거절된 특정한 가입을 탐지하고, 이것은 사용자에게 거절 메시지를 표시한다. 만일 사용자가 동일한 부정한 가입을 반복한다면, 클라이언트 소프트웨어는 이것을 인식할 수 있으며, 그리고 서버와 다시 접촉하는 것을 피할 수 있다. 이 최적화는 클라이언트(101)에게 저장된 패스워드의 노출을 최소화하기 위해서, 단지 짧은 기간 동안 행해져야 한다.
면제 프로토콜
이 문제에 대한 또 다른 새로운 접근법인 소위 "면제" 프로토콜이 설명된다. 이 시스템(100)에서, 여러번 잘못된 패스워드의 잘못된 엔트리는 정확한 패스워드의 엔트리에 의해서 쇼트 오더에 따르게 될 것이라고 추정된다. 이런 일이 일어날 때, 서버(103,104)는 잘못된 엔트리를 면제하는데, 만약 이런 실수가 적법한 사용자에 의해 이루어진 것이라고 입증되면 이것은 무효 액세스 시도의 기록된 카운트로부터 우발적인 것을 효과적으로 제거함으로써 처리될 수 있다. 면제에 따라, 자신의 패스워드를 종종 잘못 입력하는 사용자는 권한이 부여되지 않은 액세스 시도에 대한 작은 장기 제한을 유지하는 시스템(100)에 의해서 불필요하게 곤란해지지 않는다.
단순한 접근법은 각각의 성공적인 시도 이후에 이전의 모든 최근 무효 시도의 기록을 간단히 지우는 것이 될 수 있다. 그러나, 이것은 시스템 스레시홀드(system threshold)를 아는 어택커가 실제 사용자에 의한 프로토콜의 유효한 실행 사이에 상호 배치되는, 패스워드에 대한 추정의 최적 숫자를 만들도록 허용한다.
이 문제에 대한 해결책은 잘못된 액세스 시도가 단순히 정당한 사용자의 우발적인 실수라고 식별(가능한 많이)하고 이 정보를 서버에 제공하는 것이다. 이것은 클라이언트가 각각의 프로토콜의 성공적인 실행 동안에 사용자에 의해 이루어진 이전의 알려진 실수에 대한 프루프를 보냄으로써 처리된다. 본질적으로, 클라이언트는 각각의 이런 실수에 대한 면제를 요청한다. 서버가 정당한 사용자가 실수한 것을 식별한 경우, 서버는 기록에서 실수를 디스카운트(제거)한다.
반복되는 사소한 정도의 입력 에러에 대해 사용자를 처벌하는 일 없이 무효 액세스 카운트에 대한 보다 엄격한 제한이 강화될 수 있는 것이 장점이다.
도 3을 참조하면, 변형 SPEKE 멀티서버 시스템(100)의 바람직한 실시예에 사용된 것과 같은 예시적인 면제 프로토콜(300)(소프트웨어(300)으로 실현된)이 도시되어 있다.
서버(103)는 각각의 사용자에 대한 아래의 데이터 변수를 유지한다.
Z 잘못된 시도의 횟수
N 최근 증대(amplification) 요구의 수
R[1..N] 최근 Px 패스워드 증대 요구 값의 리스트
T[1..N] R[1..N]과 관련된 타임 스탬프의 리스트
서버(103)는 블라인드 패스워드 요구를 수신한다(301). 사용자 계정이 로크되어 있는지 확인하기 위하여 로컬 폴리시에 따라 검사된다(302). 만약 로크되어 있으면 응답이 보내지지 않는다(303). 만약 로크되어 있지 않으면, 블라인드 패스워드가 단기 요주의 리스트에 기록되고(304), 블라인드된 키 셰어(PXYi)가 생성되고(305), 블라인드된 키 셰어(PXYi)는 클라이언트(101)로 보내진다(306).
블라인드 패스워드 요구를 기록하는 것은 계정이 로크되어 있지 않고 블라인드 셰어가 클라이언트에 보내지게 될 경우에만 이루어진다. 그러나 안전을 위해서, 기록하는 것은 블라인드 셰어가 보내지기 전에 이루어져야 한다.
따라서, 패스워드 증대 프로세스(305)가 발생되는 각각의 로그인 시도에 대하여, N의 값은 증가되고 서버(103)는 단기 메모리(315)의 리스트 값(R[N])에서 실행하는데 사용된 QA의 값을 기록한다. 서버(103)는 또한 요구가 수신된 시간을 유념하기 위하여 T[N]에 관련된 타임 스탬프 값을 기록한다.
주기적으로 서버(103)는 진부한 요구에 대하여 찾아내거나(313) 또는 검사하는(313) 프로세스를 실행한다. T에서의 어떤 타임 스탬프 값과 현재 시간 사이의 차이가 시간의 특정 주기보다 커질 때, 서버(103)는 상응하는 R 값을 삭제한다. 이 주기의 길이는 실수를 한 정당한 사용자가 정확한 패스워드를 가지고 로그인하려고 계속해서 시도할 것으로 예상되는 일반적인 최대 시간이 될 수 있다. 각각의 R 값이 리스트에서 제거될 때, 또한 상응하는 T 값과 최근 증대의 수(N)가 제거된다. 각각의 이런 경우에, 검증되지 않은 사용자에 대하여 한번 이상 패스워드 증대가 발생되었다는 것을 나타내기 위하여 장기 메모리(316)의 잘못된 시도의 횟수(Z)가 증가된다.
성공적인 로그인이 발생할 때, 클라이언트(101)는 디지탈 서명된 메세지(308)에서 각각의 서버(103)로, 동일한 로그인 세션에서 보다 앞선 실행으로부터 QA에 대한 이전의 어떤 값에 따라 랜덤 파워로 상승된 패스워드와 동등한 QA의 값을 보낸다. 이 메세지는 마스터 키(Km)의 사용자 인식으로부터 파생된 키를 사용하여 서명된다. 바람직하게 서명은 사용자의 공개키(V)를 가진 어떤 서버(103)에 의해 검증가능한 사용자의 개인키(U)를 사용한 메세지상의 공개키 디지탈 서명을 사용하여 실행된다.
대안으로, 서명은 사용자와 서버에 의해 공유되는 키에 의해서 키잉된, 키잉된-MAC(keyed-MAC)을 계산함에 의해서 실행될 수 있다. 이 경우에 키는 Km으로부터 직접 파생되거나 또는 Km에 의해 대칭적으로 암호화된 암호화 컨테이너로부터 얻어질 수 있지만, 일반적으로 공유된 키는 각각의 사용자/서버 관계에 대해 유일한 것이어야 한다.
서명된 메시지는 서버(308) 및 확인(309)에 의해 수신된다. 확인 절차는 사용자의 공개 서명키를 사용하는 공개키 디지탈 서명 검증 또는 서버에 알려진 사용자 특정 키를 사용하는 키잉된-MAC의 확인이 될 수 있다. 서버(103)는 모든 최근 QA 값의 사용자 리스트의 서명을 검증하고, 리스트(R)에서 보다 앞선 최근의 실행에서 발견된 값의 리스트와 비교한다(309). 일치하는 것이 없을 때, 리스트(R)는 변경되지 않는다(310). 시스템은 일반적으로 무효 프루프의 수취를 성공적인 또는 실패한 로그인 이벤트의 하나로 간주해서는 안된다. 일치하는 것이 있을 때, 상응하는 액세스 시도는 단기 메모리(315)의 리스트(R)로부터 제거되고(311), 또한 상응하는 타임 스탬프가 제거되고, N의 값이 감소된다.
서버(103)는 잘못된 시도의 숫자(Z), 또는 잘못된 시도와 확인되지 않은 최근 증대의 합(Z+N)을 제한하도록 선택될 수 있다. 이러한 제한은 사용자에 대하여 특정한 것이 되거나 또는 시스템-와이드 제한이 될 수 있다. 또한, 제한이 초과될 때 취해질 수 있는 조치는 계정을 영구적으로 폐쇄하는 것으로부터, 계정을 일시적으로 폐쇄하거나 및/또는 시스템 관리자에게 경계 상태를 보여주는 것으로 변경할 수 있다. 기술적으로 이러한 변경은 패스워드 베이스 시스템에서 보편적이다.
서버(103)는 또한 액세스 이벤트가 일어나는 클라이언트(101) 또는 네트워크(102)와 관련된 정보를 기록하는 것을 원할 수 있다. 서버(103)는 개개의 클라이언트 베이스에 대한 이러한 이벤트의 계정을 유지해도 좋다.
변형 SPEKE 시스템(100)에서, 데이터가 이미 공개되었을 때와 같이 QA 값의 노출된 기록은 클라이언트(101) 또는 서버에 대하여 전혀 안전상 위협을 내포하지 않는다는 것을 유의하라.
면제 프로토콜을 사용할 때의 한 가지 중요한 점은 공유 워크스테이션 셋팅에 있다. 긴 시간 간격동안 항상 작동하는 지속적인 로그인 프로그램이 있다면, 어택커(attacker)는 목표 사용자의 예상 도달 시간 직전에 워크스테이션에 도달할 수 있고, 이 어택커는 곧 면제될 몇가지 추측(guess)을 삽입할 수 있다. 따라서, 시스템 디자이너는 상기와 같은 사건의 가능성을 고려하여, 면제 시간 창(forgiveness time window)을 적절하게 조정할 필요가 있다. 이와 같은 위협을 감소시키는 또 다른 방법은 로그인에 대한 세션식(session-based) 접근방법을 제시하는 시스템을 사용하는 것이다. 클라이언트(101)는 몇 번의 엑세스 시도 동안 활성화되어 있다가 비활성화 기간 후에 사라지는 로그인 창을 개시하는 안전 주의 키(secure attention key)를 사용할 수 있다. 이러한 시스템은 이전의 세션에서 시도된 유효하지 않은 로그인 시도에 대해 면제를 요청할 수 없지만, 하나의 세션내에서의 모든 부정한 시도는 면제될 수 있다. 사용자는 또한 공유 워크스테이션을 사용하는 때 항상 새로운 로그인 세션을 사용할 수 있도록 숙련되어야 한다.
U(QA) 메시지를 분배하는 명확한 프로세스는 앨리스가 그 자신을 모든 서버(103,104)에 접촉하도록 되어 있다. 그러나, 이러한 사용량이 많은 머신에서의 중단을 최소화하기 위해, 앨리스를 서버(103,104) 중의 하나에만 접촉하게 할 수 있다. 그러면 이러한 서버(103,104)는 모든 다른 관련된 서버(103,104)에 상기와 같은 프루프를 전달할 수 있으며, 집적된 일련의 배치식 요구로 전달할 수 있다. 예를 들면, 사용하는 동안 시스템의 모든 사용자에 대해 "forgive me"라는 요구를 전달하기 위해서 수분 마다 업데이트가 될 수 있다. 이러한 기술은 각각의 사용자에 대한 전체의 중단 횟수 및 통신량을 감소시킬 수 있다.
면제 프로토콜의 개요
본 시스템이 부당한 액세스 시도의 사용자 계정의 할당량에 대해 유효 사용자에 의한 실수를 카운트하기 때문에 본 시스템(100)은 "면제(forgiving)"를 부여하고 있다. 본 시스템은 본 시스템(100)에 대해 위협이 되지 않는 유효한 일시적인 실수를 무시하며, 한편으로는 알려지지 않은 사용자에 의한 유효하지 않은 액세스 시도를 카운트하고 제한하는 능력을 여전히 유지하고 있다.
이것은 각각의 성공적인 인증 후 유효하지 않은 액세스 시도 이전의 최근의 프루프를 발송함으로써 수행된다. 이러한 프루프를 수용하여 확인하는 때에, 각각의 서버는 기록으로부터 실수를 삭제하거나, 교정된 면제가능한 실수로서 상기 사건을 기록한다. 이러한 방식으로 서버의 사건 로그를 미세조정함으로써, 시스템 관리자는 유효 사용자가 단지 좌절하고 있는 때와 반대되는 것으로서, 시스템(100)이 완전히 위험한 상태에 있는 때에 대한 보다 상세한 시각을 가진다.
면제 시스템(100)은 클라이언트(101)에 대한 적어도 하나의 서명 생성 단계와 서버(103,104)의 각각에 대한 하나의 서명 검증 단계를 요구한다. 계산을 최소화하기 위해서, 상기 서명 단계는 사용자를 인증하는 서명 단계와 조합될 수 있다. 사용자에 대한 유효 인증 메시지를 구성함에 있어서, 클라이언트(101)는 사용자에 의해 발신된 모든 최근의 시도(challenge) 메시지의 세트를 포함하며, 상기 결과와 사용자의 개인용 키를 디지털방식으로 신호화하여, 모든 서버(103,104)로 보낸다. 각각의 서버(103,104)는 사용자를 인증하는 서명을 확인하고, 동시에 최근의 면제가능한 실수의 프루프를 확인한다. 면제 시스템(100)의 이러한 실행은 어떠한 당사자에 대해서도 많은 여분의 계산을 요구하지 않는다.
서비스의 거부
계정 로크아웃에 대한 유효하지 않은 시도에 작은 제한을 설정하는 경우, 서비스 어택 거부의 증가된 위협이 있다. 유효하지 않은 액세스 시도를 반복하여 검토함으로써 어택커는 시스템(100)에 대한 특정의 사용자 액세스를 단지 거부할 수 있다.
이러한 문제를 완화시키는 한 가지 접근방법은 서버의 기록에 있어서 유효하지 않은 액세스 시도의 소스에 대한 정보를 기록하고, 서버로 하여금 소스 마다에 기초하여 로크아웃 작동을 수행하게 하는 것이다. 소스 정보는 상기와 같은 정보가 유효할 때, 시작하는 클라이언트 컴퓨터(101)의 이름 및 네트워크 어드레스를 포함할 수 있다.
익스텐션
상기한 기본 시스템(100)은, 일단 사용자가 마스터 키(Km)를 입수하면, 다양 한 방식으로 확장될 수 있다. 각각의 인증 서버, 그리고 보다 일반적으로 임의의 다른 서버는 사용자의 마스터 키(Km)하에서 대칭적으로 암호화된 클라이언트(101)용 개인 파일을 저장할 수 있다. 상기 파일은 엄격하게 암호화되어 있기 때문에, 인증없이도 사용자에게 자유롭게 발송될 수도 있다. 이러한 파일은 사용자의 개인용 키, 그리고 사용자를 위한 임의의 다른 민감성 데이타를 포함할 수 있다.
상기한 기본 멀티-서버 프로토콜은 서버(103,104)의 몇몇 서브세트가 잠정적으로 사용될 수 없는 경우를 허용하도록 확장될 수 있다.
셰어(Ki)는 다양한 방식으로 조합될 수 있다. 한 가지 실례는 n 개의 서버(103,104)의 몇몇 서브세트(m)에 대한 액세스가, K를 구성하기에 충분한 셰어를 얻기에 충분한, M-of-N 인증을 허용하도록 이 시스템(100)을 확장시키는 것이다. 이러한 한 예는 아래와 같다:
각각의 Ci가 Ki 셰어의 모든 가능한 유효 조합중의 하나인 {Cl, C2,... Cx}의 조합의 리스트를 계산한다. 예를 들면, m = n-1일 때, n-1 셰어의 모든 유효 조합를 다음과 같이 계산할 수 있다:
for i: = 1 to n
c: = null bit string
for k: = 1 to n
if k ! = i
c: =Ci ∥Kk
Ci = hash (c)
다음 단계로 서버는 K : C = {encrypt (C1, K), encrypt(C2, K),... encrypt (Cx, K)}의 x개의 상이한 대칭성 암호를 저장한다.
인증하는 때에, 클라이언트(101)는 리스트 C를 검색하고, K를 해독하며, 서버(103,104)에 대한 K의 인식을 증명한다. 이러한 접근 방식은 m 및 n의 작은 값에 대해 실용적일 수 있다.
짧은 지수(short exponent) 문제
대체적으로 q의 크기인 누승에 대한 누승법(exponentiation)이 상기 방법의 주요한 손실이므로, 지수의 크기를 감소시키는 것이 바람직하다. 짧은 지수를 갖는 효과적인 제로-인식 방법을 제공하는 방법들 중 하나가, 1998년 8월 20일 미국특허청에 출원된 문서 공개번호 제443510호인 D.Jablon의 "컴포지트 모듈러스(composite modulus)를 사용한 패스워드 키 교환"에 설명되어 있고, 본 명세서에 참조되어 있다.
또 다른 접근법은 P.C.van Oorschot 와 M.J.Wiener의 "짧은 지수를 갖는 온 디피-헬만(On Diffie-Hellman) 키"(1996년 5월, 스프링어-벌래그, 프리시딩스 오브 유로크립트 96)에 의해 논의된 것과 같은 짧은 지수를 사용하는 것이다. 이 저자들은 공지된 계산에 의한 공격의 상대적 손실을 논의하고 또한 짧은 지수의 적절한 크기를 논의하였다.
그러나, 서로 상이한 패스워드 값을 쇼트 랜덤 지수로 누승한 결과적인 도메인이 매우 명확할 때, 패스워드-유도(password-derived) 베이스에 관한 정보를 누설하는 기술이 개발될 수 있는 가능성이 남아있다는 문제가 여전히 존재한다.
[1,o(G)]에서 균일하게 분포된 범위의 값들로부터 선택된 랜덤 지수 x를 사용할 때, x에 관한 지식이 없는 Px만의 지식은 P에 대한 아무 정보도 드러내지 않는다는 것이 명백하다. 그러나 m<o(G)인 경우 [1,m]에서 짧은 지수 x를 사용할 때는, 보안은 계산의 엄격성의 몇몇 부가적인 추정에 의존한다. 이 경우에 대한 어떤 특별한 공격을 누군가가 찾는다면 어떻게 할 것인가?
디피-헬만의 짧은 지수의 사용은 van Oorschot 및 Wiener에 의해 논의되었고, 이 저자들은 폴라드 람다(Pollard lambda) 방법이, 몇몇 알려진 고정된 베이스 g에 대한 gx의 랜덤 지수 x를 계산하는 가장 효과적인 공지된 방법임을 확인하였다. 람다 이산(discrete) 로그 계산은 대략 x1/2의 연산을 요구한다. 패스워드-발생 디피-헬만 교환을 깨뜨리는 가장 간단한 접근은 각 포텐셜 베이스 P'에 대한 지수를 계산하는 것이고, 여기서 P'는 각 후보 패스워드에 대해 구성된다. 그러나, 더 쉬운 해법이 존재할 수도 있다고 생각할 수 있다.
문제(1)가 브루트-포스(brute-force) 람다 공격보다 훨씬 더 쉬울 수 있다는 (아마 공인되지는 않은) 염려에 대해, 모듈러스보다 훨씬 더 작은 프라임 오더의 서브그룹을 사용함으로써, 앨리스와 바브의 계산을 감소시키는 접근을 제시한다. 적어도 클라이언트의 Px 값만으로부터 정보를 판단하는 적(enemy)에 대해서, 계산의 엄격성에 대한 어떤 가정도 제거하는 것이 바람직하다.
패스워드-유도 발생기에 대한 P=f(g·h) 방법
이 문제점을 다루는 방법은, 모듈러스보다 훨씬 더 작은 오더를 가지는 넓은 프라임 오더 서브그룹을 사용한다. 패스워드를 이 서브그룹의 발생기로 (비교적 효과적으로) 변환하는 함수가 사용되고, 계산의 엄격성의 잠재적으로 더 작은 가정으로, 서버의 기밀 지수에 대한 정보의 누설을 감소시킴으로써 효과적으로 본안을 유지하는 수단이 사용된다. 이 실시예에서, 값 P는 두개의 독립 랜덤 그룹 요소(g,h)로부터 유도되고, 여기서 이들 요소중 하나(h)는 패스워드의 함수에 기초한 누승까지 증가한다.
고정된 시스템 파라미터:
p = k·q + 1, 여기서 21023<p<21024, 및 2159<q<2160 , p 및 q 소수(素數)
g = hash("g")k mod p
h = hash("h")k mod p, 오더 q의 두개의 관련없는 요소
해시 함수는 SHA1과 같은 표준 암호 해시 함수이다. 이 실시예에서 이 함수로의 입력 스트링(string)은 임의의 상수이고, 이 실시예에서 단일 ASCII 문자 스트링은 "g" 및 "h"이다. g와 h가 임의의 독립된 숫자라는 것이 중요하고, 따라서 임의의 공지된 지수 누승에 의해 g가 h에 관계된 것으로 알려지지 않는다.
등록(enrollment)
앨리스는 시간에 따라 다음과 같은 등록 단계를 수행한다:
y ∈ R[1,q] 를 선택, 1 에서 q의 범위에서의 랜덤 숫자
t = hash(password) mod q 를 계산,
P = g·ht mod p 를 계산,
K = Py mod p 를 계산,
서버 B에 y를 저장.
지수에서 패스워드-유도 t는 Jablon 논문(1997년 6월)에서 확인된 "지수내 패스워드" 문제에 관한 관심을 일으킨다. 공격자는 P에 대한 후보 값의 딕셔너리(dictionary) 및 고정된 베이스 g와의 일치를 성립시키는 "지수의 딕셔너리" {e1, e2, ...}를 생성하지는 못할 것이다.
{P1, P2, ...} 이고, gei = Pi 이다.
g와 h가 독립적으로 선택되어서 이들이 임의의 공지된 지수에 의해 관련되지 않는다면, 문제는 일어나지 않는다. 위에서 설명된 고정된 시스템 파라미터의 구성이 이것을 보증한다.
몇몇 이유로 인해 다양한 파라미터가 요구된다면, 클라이언트(101)는 이들의 유효성을 공격하는 공지된 인증을 검증함으로써 g 및 h가 적절하다는 것을 검증할 수 있음에 유의하라. 인증은 간단히 해시 함수의 입력이 될 수 있다-이 실시예에서는 스트링 "g" 및 "h" 이다. 해시 함수가 올바르고, 또한 해시 공간이 충돌을 방지할 정도로 충분히 커야 한다면, 결과적인 값은 본질적으로 랜덤 숫자와 구별될 수 없어야 한다. 이산 로그 문제는 두개의 이러한 랜덤 요소 사이의 지수 관계가 결정될 수 없음을 보증한다. 이러한 적당한 해시 함수의 하나는 "안전한 해시 표준"(FIPS 180-1, 미국 표준 및 기술 국가 연구소)에서 설명된 SHA1 이다.
인증
앨리스와 바브가 수행한 패스워드 증대 프로토콜에서 앨리스는 다음과 같이 처리하였다:
t = hash(password) mod q 를 계산,
P = g·ht mod p 를 계산,
x ∈ R[1,q] 를 선택, 1에서 q의 범위내의 랜덤 숫자,
r = Px 를 계산,
r을 바브에게 전송.
그러면, 바브는 다음과 같이 수행한다:
만약 (rq mod p) ≠ 1 또는 r = 1 이면 절차를 중지,
s = ry 를 계산,
s를 앨리스에게 전송.
그러면, 앨리스는 다음과 같은 단계를 수행한다:
만약 (sq mod p) ≠ 1, 또는 s = 1 이면 절차를 중지,
Km = s1/x mod p 를 계산.
이 방법에서, 바브과 앨리스는 160 비트 지수를 갖는 두개의 누승법을 각각 수행한다. 이 방법은, 유사한 포드(Ford) 및 칼리스키(Kaliski) 방법과 비교하여, 쇼트-지수 문제가 해결된다는 가정하에, 상당히 적은 계산으로 대체적으로 등가의 레벨의 보안을 제공한다.
이것은, 지수에 대한 최소 크기 및 대칭키 사이의 정확한 등가 관계를 결정하는 것의 어려움 때문에, "대체적으로" 등가인 것으로 간주된다. 상기 실시예에서는, 랜덤 지수 및 서브그룹 크기가 160 비트이고, 대칭키는 80 비트의 길이를 가지고, 모듈러스의 크기는 1024 비트인 것으로 가정한다. 이러한 관계는 정확하게 규정하기는 어렵다. 한가지 참조할 점으로서, DSS 시그너쳐 스탠더드가 512 비트 모듈러스의 160 비트 서브그룹을 사용하였음에 주의하라. 다른 레코멘데이션(recommendation)은 160 비트 서브그룹에 대한 더 큰 모듈러스 크기라고 보통 추정한다. 어떤 경우든지, 일반적으로 키 크기를 증가시키기 위해 레코멘데이션이 변화함에 따라 여기 설명된 방법에 사용된 값들의 크기가 적절하게 조절될 수 있다.
P = f(g·h)를 갖는 모듈러스 구성
p = kq+1 이고, q 오더의 서브그룹이 사용된 상기 방법에서, k의 계수(factor)에 대한 문제가 있다. k의 모든 작은 계수에 대해-여기서 작다는 것은 일부 최소 안전 크기보다 작다는 것을 의미하는데, Ty mod p 를 얻기 위해 특정값 T를 갖는 서버를 적이 탐지할 수 있다. 이 결과는 적이 서버의 지수 y에 대한 정보를 알 수 있도록 한다. 각각의 작은 계수에 대한 것을 인정하면서, S를 k의 모든 작은 계수의 배수(multiple)라고 하고, 대응하는 작은 서브그룹이 있다. k를 구성하고 s=2로 함으로써, 공격을 y의 낮은 비트만을 누설하는 최소 레벨로 감소시킬 수 있다. 일 실시예에서, p=kq+1이고, 여기서 k=S·r, S=2, 그리고 r, q, 및 p는 소수(素數)이다.
단지 y의 낮은 비트만을 누설하는 것은 지수 y가 정말로 랜덤하다면 크게 문제되지 않는다. 낮은 비트가 독립적으로 랜덤하다고 가정하면, 최소 안전 지수 크기는 보상을 위해 단순히 한 비트씩 증가될 수 있다. 이러한 1 비트 누설은 시스템(100)에 걸쳐 y의 낮은 비트를 고정된 상수값으로 함으로써 방지될 수 있다.
P = f(g·h)를 갖는 보안 및 효율
탐지 공격으로부터 정보누설을 감소시키는 유사한 접근법은 y가 S의 배수이도록 보장하는 것이다. 여기서도 역시, 랜덤성의 손실을 보상하기 위해 y의 크기가 적절하게 증가되어야 하고, 만약 S가 10 비트 숫자이면 y는 S=2인 (상술한) 경우에서보다 더 큰 10 비트가 될 것이다.
P = f(g·h) 방법에서, 클라이언트(101)에 대한 계산을 위한 단지 작은 손실을 부가하여, 더 큰 신뢰성을 갖는 짧은 지수를 사용할 수 있다. 이 방법의 수행은, 유사한 짧은 지수 및 값 P를 사용하고 더 큰 그룹을 발생하는 것에 비교될 수 있다. 이 방법은, 서버에 대해 크게 부가된 계산이 없이, 클라이언트의 첫번째 메시지의 입증가능한 보안의 부가된 보호를 얻는다. 클라이언트의 증가된 손실은 누승 t에 대한 h의 누승법이다.
결국, 계산의 엄격성의 가정을 제거함으로써 보안을 증가시키는 본 발명에 사용되는 접근법은 언젠가는 부적절한 것으로 판명될 수도 있다. 짧은 지수의 사용의 계산에 의한 보안이, 이산 대수(logarithm) 문제가 엄격하다는 가정 등과 같은, 우리가 이 방법에 대해 일체로 하는 다른 가정들과 등가로 판명될 수도 있다.
대안적 키 유도 함수
키 셰어 {y1, y2, ... yn}로부터 마스터 키를 유도하기 위한 대안적 키 유도 함수가 가능하다. 세개의 이러한 함수가 여기에서 설명되고, 이중의 첫번째는 상기 실시예에서 사용된 것과 동일하다.
Km = hash(Py1∥Py2∥...Pyn), 연쇄법(concatenation)을 사용,
Km = hash(Py1
Figure 112006019874201-pct00007
Figure 112006019874201-pct00019
Py2
Figure 112006019874201-pct00020
...Pyn), XOR 함수를 사용,
Km = hash(Py1*Py2*...Pyn), 그룹 연산자를 사용.
특별한 경우, 여기에 설명되고 아래에서 설명되는 것과 같은 결합된 키 유도 함수를 갖는 그룹 내에서의 누승법을 사용하는 것이 결합된 키 셰어에 장점이 될 수 있다.
Km = hash(Py1·y2·...yn), 반복된 그룹 누승법을 사용.
다음 섹션에서, 이러한 상이한 대안적 함수들이 이 방법의 다른 실시예에서 장점이 된다는 것이 보여진다.
대안적인 흐름 및 결합된 키 유도 함수
다중 서버(103,104)를 갖는 인증에 대한 다른 간단한 접근법은, 다음과 같이, 클라이언트(101)가 2이상의 서버(103,104)의 각각을 갖는 일련의 신청/응답 프로토콜을 수행하도록 한다:
접근(1)
A : m1 = Px
A → B1 : m1
B1 : m2 = m1 y1
B1 → A : m2
A → B2 : m1
B2 : m3 = m1 y2
B2 → A : m3
A : Km = hash(m2 (1/x), m3 (1/x))
클라이언트(101)가 단일 Px 값을 다중 서버(103,104)로 전송하도록하는 대안적인 접근(2)은, 클라이언트(101)가 비동기하여(asynchronously) 응답을 수집하는 환경에서 동시에 장점이 될 수 있고, 서버(103,104)(B1 및 B2)가 응답을 계산하고 전송하기 위해 동시에 병렬로 작동한다.
접근(2)
A : m1 = Px
A → B1 : m1
A → B2 : m1
B1 : m2 = m1 y1
B2 : m3 = m1 y2
B1 → A : m2
B2 → A : m3
A : Km = hash(m2 (1/x), m3 (1/x))
접근(2)은 접근(1)과 비교하여 전체 실행시간을 감소시킬 수 있다.
접근(2)에서의 더 이상의 최적화는, Km=hash(K1*K2*...Kn)에서와 같이, 키 셰어의 그룹 프로덕트로부터 마스터 키를 유도하는 것이다. 이 경우 앨리스는 계산 Km=hash((m2*m3)(1/x))를 수행할 수 있고, 이것은 그녀가 수행해야할 누승화의 양을 감소시킨다.
특히, 도4는 최적화된 계산을 갖는 그룹 프로덕트 키 유도 함수를 사용하고 두개의 서버를 가지는 클라이언트의 동작을 보여주는 본 발명의 원리에 따른 예시적인 방법(400)을 설명하는 흐름도이다.
단계(401)에서 등록시간 {UserID, yi, V}가 각 서버(103,104)에 저장되고, P(Hp=hash(P))의 해시의 암호화된 카피(copy) 및 사용자의 개인 키(U)가, 사용자의 식별자{UserID, encrypt(Km,{Hp,U})}에 연관되거나 또는 관련된 딕셔너리에 보관된다. 암호화된 컨테이너는, 컨테이너가 또한 Hp의 변조도 없이 U를 변조하도록 변경될 수 없다는 것을 보증하기 위해, 메시지 인증 코드를 포함한다는 것에 유의하라.
단계(402)에서, 로그인 시에, (상기 논의된 바와 같이) 입력된 패스워드의 적당한 함수인 그룹 엘리먼트(P)가 생성된다. 단계(403)에서, 블라인드된 키 셰어(m1=Px)가 형성된다. 단계(404)에서, 블라인드된 키 셰어는 각 서버 B1 (103) 및 B2(104)로 보내진다.
단계(405)에서, 블라인드된 키 셰어(m2=m1 y1)가 첫번째 서버 B1(103)에 형성된다. 단계(406)에서, 서버 B1은 단기 기억 장치에 블라인드 패스워드를 기록하고, 단계(407)에서 블라인드된 키 셰어(m2)를 앨리스에게 보낸다. 단계(408)에서, 앨리스는 공유 디렉토리로 부터 암호화된 패스워드 검증자 Hp 및 개인 키(U)를 획득한다. (단계(408)는 임의의 편리한 시간에 행해질 수 있다.) 단계(409)에서, 블라인드된 키 셰어(m3=m2 y2)는 두번째 서버(B2)(104)에 형성된다. 단계(410)에서, 두번째 서버(B2)(104)는 단기 기억 장치에 m1을 기록하고 단계(411)에서 m3를 앨리스에게 보낸다. 단계(412)에서, 앨리스(101)는 셰어를 언블라인드하고 마스트 키 Km=hash((m3*m3)(1/x))를 생성한다. 키 유도를 위한 셰어의 그룹 프로덕트를 사용하여, Km=hash(Py1*Py2)임을 주목하라.
단계(413)에서, 클라이언트(101)는 HP와 U를 검색하기 위하여 Km을 사용하여 디렉토리 데이터를 해독한다. 단계(414 및 415)에서, 클라이언트(101)는 HP가 hash(P)와 일치하지 않으면 중단한다. 단계(416)에서, 클라이언트(101)는 개인키(U)를 사용하여 블라인드 패스워드(m1)을 포함하는 서명된 메시지(m4)를 생성하고, 적법한 사용자를 대표하여 작동하고 있다는 프루프로서 B1과 B2에 그것을 송신한다. 단계(417)에서, 각각의 서버(103, 104)는 사용자의 공개키(V)를 사용하여 메시지(m4)내의 m1에 대한 서명을 검증한다. 단계(418 및 419)에서, m1에 대한 서명이 검증되고 m1이 수상한 로그인 요청의 단기 리스트에서 발견되면, 블라인드된 키 셰어(m1)는 그 리스트로부터 제거된다.
그러나, 연쇄 접근법의 예에서와 같이, 연속적인 메시지 흐름이 필수불가결한 경우가 있을 수 있고, 여기서 서버 B1은 클라이언트(101)와 서버(B2)사이의 중계자로서 작용한다. 이 경우에, 블라인드 키의 연속적인 지수화를 이용하여 마스터 키를 유도하기 위하여, Km=hash(Py1*y2*...yn)과 같은 대안적인 결합 키 유도 함수를 사용할 수 있다.
접근법(3)
Figure 112002040494883-pct00008
B1과 B2에 의해 수행되는 계산 순서는 상호 바뀔 수 있고, B2는 단순히 m3를 직접 A로 송신할 수 있다는 것을 유념해라. 이러한 접근법은 아래에서 상세히 기술되고 도5에 도시된다. 대안적인 동등한 시퀀스는 다음과 같다.
접근법(4)
Figure 112002040494883-pct00009
결합 키 유도 함수는 또한 순차적인 접근법에 있어서 중계자로서 앨리스에 의해 사용될 수 있다.
접근법(5)
Figure 112002040494883-pct00010
K를 유도함에 있어서 앨리스의 지수 계산을 줄이기 위하여 결합키 유도 함수를 사용하는 접근법(5)의 프로세스는 다중 서버(103,104)에 명백하게 확장될 수 있다. 이러한 접근법에서, 앨리스는 m1의 인식 프루프를 서버 B1에, m2의 인식 프루프를 B2에 송신해야만 한다.
그러나, 서버(103, 104)가 그 계산에서 중계자로서 작용할 때, 및 앨리스가 중간 결과에 대하여 액세스하지 않을 때에는, 또 다른 접근법이 액티브 참가(active participation)를 입증하기 위하여 요구될 수 있다. 앨리스가 단지 서버B1과 직접 통신하고 결합키 유도 함수를 사용하는 2-서버 구성의 특별한 예가 도5에 도시되어 있다. 보다 상세하게는, 도5는 두개의 서버(103, 104)중의 단지 하나와 통신하는 클라이언트(101)의 작동을 도시하는 본 발명의 기술사상에 따른 예시적인 방법(500)을 도시하는 흐름도이다.
단계(501)에서, 등록할 때에, {UserID, yi, V}가 각각의 서버(103, 104)에 기억되고, 패스워드의 해시의 암호화된 카피(Hp=hash(P))와 사용자의 개인키(U)가 사용자의 식별자와 관련된 디렉토리에 기억된다{UserID, encrypt(Km,{Hp,U})}. 암호화 콘테이너(container)는 그것이 Hp를 손상시키지 않으면서 U를 손상시키도록 변경될 수 없다는 것을 보증하기 위하여 메시지 인증 코드를 포함한다는 것에 유념해라.
로그인을 할 때, 단계(502)에서, (앞에서 설명드린 바와 같이) 입력된 패스워드의 적절한 함수인 그룹 요소(P)가 생성된다. 단계(503)에서, 블라인드된 키 셰어(m1=P*)가 형성된다. 단계(504)에서, 블라인드된 키 셰어는 서버 B1(103)에 송신된다.
단계(505)에서, 블라인드된 키 셰어(m2=m1 y1)는 제1 서버(B1)(103)에 형성된다. 단계(506)에서, 서버(B1)는 그 블라인드 패스워드를 단기 메모리에 기록하고, 단계(507)에서 그 블라인드된 키 셰어(m2)를 제2 서버(B2)(104)에 송신한다. 단계(508)에서, 앨리스는 공유 디렉토리로부터 암호화된 패스워드 검증자(HP)와 개인키(U)를 얻는다. (단계(508)은 편리한 시간에 수행될 수 있다) 단계(509)에서, 두개의 키 셰어의 블라인드 결합된 형태(m3=m2 y2)가 제2 서버(B2)(104)에서 형성된다. 단계(510)에서, 제2 서버(B2)(104)는 m3를 단기 메모리에 기록한다. (요구 값보다는 응답값을 기록한다는 것에 유념하라. 충분한 설명에 대하여는 아래를 참조하라) 단계(511)에서, B2는 m3를 B1에 송신하고, B1는 m3를 앨리스에 전달한다. 단계(512)에서, 앨리스(101)는 그 결합된 셰어를 언블라인드하고 마스터키(Km=hash(m3 (1/x))를 생성한다. 키 유도를 위한 반복된 누승법을 사용하는 Km=hash(Py1 y2)라는 것에 유념하라.
단계(513)에서, 클라이언트(101)는 HP와 U를 검색하기 위하여 Km을 사용하여 디렉토리 데이터를 해독한다. 단계(514 및 515)에서, 클라이언트(101)는 HP가 hash(P)와 일치하지 않으면 중단한다. 단계(516)에서, 클라이언트(101)는 개인키(U)를 사용하여 블라인드 패스워드(m1)와 블라인드 결합 키 셰어 값(m3)를 포함하는 서명된 메시지(m4)를 생성하고, 적법한 사용자를 대표하여 작동하고 있다는 프루프로서 B1에 그것을 송신한다. 단계(517)에서, 서버(B1)(103)는 사용자의 공개키(V)를 사용하여 메시지(m4)내의 m1에 대한 서명을 검증한다. 단계(518 및 519)에서, m1에 대한 서명이 검증되고, m1이 수상한 로그인 요청의 단기 리스트에서 발견되면, 블라인드된 키 셰어(m1)은 그 리스트로부터 제거된다.
단계(520)에서, 서버(B1)(103)는 사용자의 공개키(V)를 사용하여 메시지(m4)내의 m3에 대한 서명을 검증한다. 단계(521 및 522)에서, m3에 대한 서명이 검증되고, m3이 수상한 로그인 요청의 단기 리스트에서 발견되면, 블라인드된 키 셰어(m3)은 그 리스트로부터 제거된다.
이 경우에, B1은 앨리스와 B2사이의 중계자이다. 앨리스는 B1에 대한 요구값(Px)의 인식을 입증하고, B2에 대한 응답값(Pxy1y2)의 인식을 입증한다. 서버(B2)는 B1이 반드시 정직하다고 신뢰할 수 없기때문에, 이와 같은 변동이 요구되고, B2와 앨리스 모두에게 알려진 특정값이 Km의 계산에 사용된다는 것을 입증할 필요가 있다. 이 경우에, 그 특정값은 서버의 입력값 또는 서버의 응답값이다.
앞의 실시예에서 B1과 B2의 검증 동작에서의 비대칭성을 유념해라. B1과 B2가 유사한 동작을 수행하는 대안적인 방법을 사용하는 것이 바람직할 수 있다. 예컨대, 양자는 응답값(B1에 대한 m2과 B2에 대한 m3)뿐만 아니라 입력 요구값(B1에 대한 m1과 B2에 대한 m2)을 단기 리스트에 기억할 수 있고, 양자를 검사함으로써 검증 기능을 수행할 수 있다. 요구값 또는 응답값이 단기 리스트에 기억된 것과 매치(match)하는 경우에 있어서 서명이 수신되면, 키 검색 프로세스는 유효한 것으로 간주될 수 있다. 이러한 모든 접근법에서의 해시 함수는 고정-길이 비트스트링으로 다루어지는 독립변수의 1차 해시 함수로 구현될 수 있다. "안전한 해시 표준"(FIPS 180-1, 미국표준기술연구소)에서 논의된 SHA1 표준 해시 함수를 사용하여 구현된 바와 같이, 복수의 함수가 연결된다.
hash(x,y)=SHA1(x∥y)
다른 유사한 키 유도 함수가 널리 공지되어 있다.
Km의 검증 및 이전 서버 인증
통신 채널의 보안이 보장되어 있지 않기때문에, 사용자의 클라이언트(101)는 적에게 정보를 공개하는 어떠한 방식으로 그것을 사용하기전에 그 결합된 마스터키로 유효성 검사를 수행한다. 유효성 검사가 실패하면, 사용자는 그 프로세스를 중단한다.
사용자가 Km를 검사하는 하나의 방법은 Km의 정확한 등록값에 기초한 키로서 대칭적으로 암호화된 추가적인 메시지를 얻는 것이다. 사용자는 인증 서버(103, 104)중의 어떠한 하나와 같이, 편리한 장소로부터 이러한 암호화된 메시지를 얻을 수 있다. Km에 대하여 협의된 값을 사용하여, 사용자는 메시지를 해독하고, 그 해독된 데이터에서 유효성 검사를 수행한다. 그것이 유효하지 않으면, 클라이언트(101)는 그 프로세스를 중단할 것이고, Km에 대하여 협의된 값에 관하여 어떠한 정보도 누설되지 않도록 보증할 것이다.
메시지를 검증하는 하나의 방법은 큰 고정 시스템 상수값(J)를 데이터내에 매입(embed)하는 것이다. 클라이언트(101)는 그 해독된 값이 J와 매치할 때 그 키가 정확하다는 것을 보증받는다. 그러나, 암호화 시스템에 따라, 여러 다양한 키로서 그 메시지를 복화화함으로써 값(J)를 포함하는 클리어 텍스트 데이터를 산출하도록 메시지를 적이 특별히 구성할 수 있는 염려가 있을 수 있다. 이는 적절하게 고안된 암호화 시스템에서는 가능하지 않을지라도, 이에 대한 하나의 방어법은 J를 패스워드의 함수로 만드는 것이다.
일 실시예에서, SHA1("J"∥password)와 같이 J를 패스워드의 1차 해시로 계산한다. 클라이언트(101)는 Km를 사용하여 메시지를 해독하고 J의 그 복화화값과 SHA1("J"∥password)를 비교하고, 그것들이 매치되면 Km은 유효한 것으로 간주된다. 만약 그것들이 매치되지 않으면, 클라이언트(101)는 인증 과정을 중단해야만 하고, Km에 대한 무효값으로부터 유도된 어떠한 값도 잠재적인 적에게 이용가능하지 않다는 것을 보증해야만 한다.
Km의 확인은 Km를 생성하기 위하여 사용되는 모든 증대키 셰어를 사실상 확인한다.
셰어의 소규모 서브그룹 제한
관심을 끌 수 있는 또 다른 논점은 네트워크(102)를 제어하는 적이 Py를 반환하는 대신에 단지 아이덴티티 요소(1)와 같은 소규모 서브그룹 요소를 반환할 수 있다는 것이다. 모든 서버 응답이 소규모 그룹 요소인 경우에 있어서, Km은 그 소규모 세트의 값중에 하나로 강제되어질 것이다. 예컨대, 모든 서버 응답이 1인 특별한 경우에 있어서, Km은 다음과 같은 상수값을 가지는 것으로 계산될 것이다.
Km=hash(11/x, 11/x,...)=hash(1,1,...)
서브그룹 제한은 Km에 대한 바람직한 확인 방법에 있어서 문제될 수 없지만, 만약 J의 값이 고정 시스템 상수라면 그것은 문제될 수 있다는 것에 유념하라. 이러한 경우에 공격자는 확인 데이터를 구성할 있고, 패스워드에 상관없이 아이덴티티 요소는 J에 대한 공지된 고정값을 항상 공개하도록 그 메시지를 해독할 것이다. 유사하게, {y1, y2,...}이 소규모 서브그룹의 모든 요소인 경우에, 적은 메시지를 구성하여, 클라이언트(101)가 J에 대한 고정값을 찾기 위하여 메시지를 해독할 상당한 가능성이 존재할 수 있다.
K의 소규모 서브그룹 제한을 방지하는 대안적인 방법은 클라이언트(101)로 하여금 미국 특허출원 번호 08/823,961 및 S. Bellovin 과 M. Merritt가 발표한 논문("Encrypted Key Exchange: Password-based protocols secure against dictionary attacks", Proceedings of the IEEE Symposium on Research in Security and Privacy, May 1992)과 W.Diffie, P.C. van Oorschot와 M. Wiener가 발표한 논문("Authentication and Authenticated Key Exchanges", Designs Codes and Cryptography, 2, 107-125,(1992))에 기재된 것과 같이 직접 이것을 검출하게 하는 것이다. 클라이언트(101)가 검사해야만 하는 특별한 경우의 수를 줄이기 위하여, 클라이언트(101)는 또한 그 결과를 더 작은 세트의 요소, 아마 세트{1}로 강제하는 크기까지 그 수신된 값을 증가시킬 수 있고, 그 다음 미국 특허출원 번호 08/823,961에 기재된 바와 같이 이러한 경우에 대하여 테스트한다. 이러한 특별한 경우를 배제함으로써, Km에 대한 보다 다양한 확인 테스트가 안전하게 사용될 수 있다.
{y1, y1,...yN}에 대한 값을 제어하고 P에 대한 값을 추측하는 것에 의해 공격을 감지하는 것이 항상 가능하다는 것에 유념하라. 여기서의 목표는 적이 프로토콜의 각각의 실행에서 P에 대하여 기껏해야 추측하도록 만드는 것임을 상기하면, 이는 프로토콜 문제가 아니다.
그룹 파라미터의 변동
모듈러스(m)와 (m-1)의 임의의 필요 계수를 포함하여, 사용되는 그룹을 정의하는 시스템 파라미터는 클라이언트와 서버 구현에 내장된 고정 시스템 파라미터인 것으로 일반적으로 간주된다. 이러한 값은 시스템(100)의 모든 사용자를 위하여 사용될 수 있다.
대안적으로, 이러한 방법은 IEEE Std 1363-2000, 공개키 암호화용 IEEE 표준 지정, IEEE, 2000년 8월 29일, A.11.1, p.131에 기재되어 있는 Diffie-Hellman 및 관련 프로토콜용 타원 곡선 암호화 방법에서 통상적으로 실시되는 것과 같이, 타원 곡선에서의 포인트 그룹과 같은 어떠한 적당한 그룹을 사용할 수 있다.
그러한 방법은 서버에 의해 클라이언트(101)로 전송되거나 그 역으로 전송된 가변 파라미터를 또한 사용할 수 있다. 이 경우에, 이러한 파티들은 최초 테스트를 사용하거나 신뢰되는 부분에 의해 생성된 파라미터에 대한 인증서를 확인하거나 또는 이러한 부분에 대한 확인을 충분히 보증하는 다른 어떤 수단에 의해, 그 파라미터가 유효하다는 것을 보증하는 것을 책임져야 한다.
"랜덤" 지수
비밀 지수{y1, y2,...}는 그것들이 어떠한 잠재적인 적에게 이용될 수 없도록 선택된 독립된 수이어야만 한다. 만약 어떤 잠재적인 적에 의해 독립된 랜덤값인 것으로 보인다면, 의사난수발생기로부터 이러한 수를 유도하는 것으로 충분할 것이다. 통상적인 암호화 실행은 해시 함수를 사용하여 하나 이상의 통상적인 랜덤 입력의 비밀 소스로부터 암호화 목적을 위한 의사난수의 시퀀스를 유도하는 것이다.
취약한 모델에서의 대안
아래에 기재된 바와 같이, 본 발명의 바람직한 실시예의 개선을 위한 방편으 로, 제로-인식 패스워드 기술을 사용하지 않는 어떠한 경우에 있어서 취약한 모델에서 작동하는 대안적인 방법이 개발되었다. 비록 보다 덜 이상적이긴 하지만, 이러한 방법은 특별한 경우에 사용될 수 있는 대안을 제공한다. 여기에 기술된 3가지 실시예는 클라이언트 저장(여기서 AM1으로 언급된다), 2-서버 로밍 시스템(AM2)(100) 및 다중-서버 로밍 시스템(AMM)(100)을 구비한 단일-서버 시스템(100)이다.
CC에 대한 대안
AM1 시스템(100)은 단일-서버 환경에 대하여 CC 시스템에 대한 대안이다. AM1 시스템(100)은 CC에 의해 가해지는 모든 특별한 제약을 제거하고, 사용자의 개인키의 기능을 넓게 하고, 여전히 사용자의 패스워드에 대하여 적어도 CC와 동일한 레벨의 보안을 제공한다. CC 시스템(100)이 기본적인 공개키 시스템의 사용 및 사용자의 개인/공개키 쌍의 사용에 과도한 제한을 도입한 반면, AM1은 이러한 제한을 제거한다. 이러한 접근법은 CC에 대한 최상의 대안을 제공할 수 있고, 이러한 대안은 CC보다 이해, 생성, 및 분석에서 보다 용이하다.
등록
AMI 등록에서, 클라이언트(101)는 PIN 코드(P) 및 비대칭 암호화 시스템에 대한 개인키(Ec)와 대응하는 공개키(Dc)를 선택한다. Ec와 Dc의 구성시에 가해지는 특별한 제한은 없다. 클라이언트(101)는 제로-인식의 등록 과정 또는 다른 강력한 패스워드 시스템에 적합한 함수(f)를 사용하여, S에 대한 검증데이터로서 V와 S=f(salt,P)를 구성한다. 1997년 6월 Jablon 논문에서 논의된 B-SPEKE와 같이 작은-엔트로피(S)를 허용하는 강력한 확장 패스워드 시스템을 사용하는 것이 바람직하다.
클라이언트는 다음을 기억한다.
salt 단지 클라이언트(101)에만 기억된 비밀 솔트값
Ds 인증 서버(AS)의 공개키
Ds(V) AS에 대해 실링된 클라이언트 패스워드 검증 데이터
Ds(encrypt(K,Ec)) K하에서 암호화된 다음 AS에 대하여 실링된 클라이언트 개인키
Dc 비밀이 아닌, 클라이언트 공개키
인증
AM1인증에서, 사용자는 P를 입력하고, 클라이언트(101)는 S=f(salt,P)를 계산하고, Ds(V)를 서버로 전송하고, S와 V에 기초하여 서버로서 강력 패스워드 인증을 적절하게 수행한다. 이는 B-SPEKE 방법을 사용하여 바람직하게 행해질 수 있다.
일단 사용자가 V에 의해 검증되는 것과 같이 S로 인증되면, 서버는 encrypt(K,Ec)를 되돌려주어, S의 인식을 입증한 사용자만이 그것을 읽을 수 있게 한다. 바람직하게는, 서버는 EncK2(encrypt(K,Ec))를 전송할 수 있다. 여기서 K2는 S의 클라이언트 인식을 입증한 B-SPEKE 프로토콜에 의해 생성된 세션키이다. 클라이언트(101)는 K2와 K를 인식하므로, Ec를 해독할 수 있다.
클라이언트(101)는 일반적인 공개키 목적으로 {Ec/Dc} 키 쌍을 사용하는 것이 자유롭다. 인증 서버만으로 트랜잭션에 대한 사용을 제한하는 CC 시스템과 비교하여, Ec와 Dc의 사용에 어떠한 제한도 가해지지 않는다. 또한, 인증서 또는 인증서의 체인이 클라이언트의 공개키와 관련될 수 있다.
2-서버에 대한 CC 로밍에 대한 대안
AM2시스템(100)이 개시될 것인데, 이는 2-서버 로밍 솔루션에 사용될 수 있도록 변형된 CC 대체예를 제공한다. AM2시스템(100)은 상술한 CC 로밍 솔루션보다 간단한 솔루션이다.
등록
AM2등록에서, 유저는 P1의 인식이 P2에 대한 정보를 알려주지 않도록 그리고 그 역의 경우도 마찬가지가 되도록 바람직하게는 독립변수로서 선택되어진, 2개의 패스워드(P1, P2)를 선택한다. 유저는 각 패스워드에 대해 검증 데이터(V1, V2)를 각각 구성한다. 유저는 또한 2개의 랜덤 키(Y1,Y2)를 선택하고, K=hash(Y1, Y2)를 구성한다. 유저는 마스터 키(K)를 이용하여 대칭적으로 개인 키를 암호화하고, 바람직하게는 개인 키(DA)를 포함한다.
제1 인증 서버(AS1)는 기밀하게 {V1, Y1, 선택적으로 암호(K, DA )}를 저장한다.
제2 인증 서버(AS2)는 기밀하게 {V2, Y2, 선택적으로 암호(K, DA)}를 저장한다.
암호(K, DA)가 어디에도 저장되지 않았다면, 이 서버(103, 104)는 그것을 반드시 저장해야 하고, 클라이언트(101)가 P1, P2로 인증할 때 클라이언트(101)에 그것의 복사본을 되돌려주어야 한다.
유저가 Y1을 획득하기 위해 S1을 사용하여 AS1에 인증한다.
유저가 Y2를 획득하기 위해 S2을 사용하여 AS2에 인증한다.
유저의 마스터 키 K=hash(Y1,Y2,S1,S2)
유저는 키(K)를 이용하여 암호화된 개인 키(암호(K, DA))를 언로크한다.
EA에 특별한 제한사항이 없기 때문에, 하나 이상의 서버는 EA을 개방적으로 저장할 수 있고 암호화되지 않은 형태로 클라이언트(101)에 송신할 수 있다.
인증
AM2 인증에서, 클라이언트(101)는 AS1의 검증 데이터(V1)을 사용하여 서버(AS1 )로 인증된 세션 키(KS1)을 획득하기 위해 P1을 사용한다. AS1은 KS1하에서 대칭적으로 인증된 Y1을 되돌려 보낸다.
유사한 프로세스가 Y2를 검색하기 위하여 서버(AS2)에 인증하기 위해 P2를 사용하여 클라이언트(101)에 반복한다.
2개의 서버(103, 104)중 하나는 암호(K, DA)를 되돌려 보낸다.
클라이언트(101)는 K=hash(Y1, Y2, S1, S2)를 계산하고, DA를 해독한다.
DA와 EA는 유저의 완전히 기능적인 개인키 및 공개키로 사용되어 질 수 있다.
대체 실시예
AM2의 대체 실시예에서, 클라이언트(101) 및/또는 유저, 또는 인증 서버(103, 104)중 하나 또는 두 개가 서버의 공개키의 인증성을 미리 저장 또는 검증할 수 있는 경우라면, 서버의 저장된 데이터는 서버의 공개키로 그것을 실링(sealing)하는 것에 의해 인캡슐레이트(encapsulate)될 수 있다. 이것은 데이터가 단지 대응하는 개인키를 소유하는 하나의 엔티티가 되도록 선점되어 있는 서버에 액세스가능하게 한다. 그런 실링된 데이터 세트는 클라이언트(101), 또는 필요하면 다른 인증 서버에 저장될 수 있다.
또한 이 방법은 어떤 N개의 서버(103, 104)(N>2)에 분명한 방법으로 스케일한다. N 번째 서버로부터 키 셰어 획득 및 등록에 대한 프로세스는 제1 또는 제2서버(103, 104)에 대한 프로세스와 동일할 것이다. 결합 키는 다음과 같이 계산될 것이다.
K=hash(k1 ∥k2 ∥...kn)
스케일링 문제는 하기에 개시되고, 오류 공차는 n 개의 서버(103, 104)의 단지 M 개로 성공적인 인증을 허락할 수 있도록 될 것이다.
논-제로-인식 다중-서버 방법
AMM시스템(100)은 다중 서버 환경에 대해 기술된다. AMM 시스템(100)은 상술한 바람직한 다중-서버 로밍 시스템(100)보다 더 약한 보안 모델에 작동한다. 하나의 예는 제로-인식 패스워드 프로토콜을 전혀 사용하지 않는다. 그러나, 여전히 각각의 Bi가 그 데이터베이스에서 패스워드 또는 해독가능한 데이터를 저장하지 않는다는 특질은 여전히 지킨다.
각각의 AMM 서버 Bi는 상술한 바람직한 시스템(100)에서 각각의 유저에 대한 yi 값을 저장한다. 각각의 Bi는 앨리스로부터 P를 수신하고, 그러나 블라인드되지 않은 형태이다. 그것은 K=hash(P, yi)로 앨리스에 응답한다. Bi가 어떤 패스워드 유추 데이터를 저장하지 않기 때문에 도난당한 데이터베이스에 사전적인 공격의 위험은 없다.
각각의 서버Bi에 대해
A → Bi: P
Bi →A: Ki=hash(P, yi)
Km 은 상술한 바와 같이 계산되고 증명된다.
이 방법은 통신 채널에 대한 추가적인 방어를 필요로 한다. 그렇지 않다면 도청자가 P에 사전적인 공격을 할 수 있다. 하나의 솔루션은 SSL/TLS 서버-인증 채널을 사용하는 것이다.
한계: 바브에 대한 공격
AMM 시스템(100)에 고려되지 않은 중요한 한정사항은 패스워드가 서버에 사용되는 동안 도난당할 수 있다는 것이다. 바브의 특권의 액세스를 얻은 공격자는 바브의 소프트웨어에 악의적인 변경을 할 기회를 갖기 쉽다. 그런 변경은 악의적인 관리자, 악의적인 또는 유별난 해커, 또는 바이러스에 의해 간접적인 경우에 의해 인스톨된 갱신 또는 패치의 형태로 이루어질 수 있다. 바브가 일시적으로 시스템(100)의 유저에 대한 P의 값을 수신하였을 때, 패치된 소프트웨어는 이러한 패스워드를 제어, 인터럽터 및 접합할 수 있고 그것들이 공격자에게 이용가능하도록 할 수 있다. 효율적으로 공격자는 그런 데이터베이스가 시스템(100)에서 정상적으로 존재하지 않더라도, 그 소유의 패스워드 데이터 베이스를 빌드(build)할 수 있다.
한계: 통신채널에 대한 공격
AMM 또는 다른 논-제로 인식 다중 서버 방법의 다른 한정사항은 도청자가 P에 사전적인 공격을 방지하도록 채널을 보안할 수 있는 다른 수단이 필요하다는 것이다. 이것은 SSL 또는 다른 프로토콜로 이루어질 수 있는 것이지만, 시스템(100)이 로밍 솔루션에 대해 더 약하고 받아들여질 수 없도록 하는 경향이 있는 키 또는 확증을 유지하도록 하는 클라이언트(101)에 대한 추가적인 요구를 한다.
패스워드 인증의 많은 논-제로 인식 형태가 가능하지만, 바브는 일반적으로 그의 사적적인 공격을 가능하게 하는 이 프로토콜의 각각의 실행중에 정보를 수신한다. 따라서, 이러한 정보는 바브를 손상하는 공격자에게 누출될 수 있다. 제로 인식 패스워드 프로토콜은 활성 서버의 손상으로부터 공격자를 방어하는데 필수적이다.
현재의 단순화된 보안 모델
우리의 방법의 주목할 만한 점은 그들이 매우 단순한 보안 모델에서 작동한다는 것이다. 클라이언트 컴퓨터(101)은 어떤 유저 또는 서버의 특정 상태를 저장할 필요가 없고, 어떤 소자들 사이에 미리 보안되고 또는 인증된 통신 채널을 요구하지 않는다. 이 모델은 다중 서버 패스워드 인증 보안에 대한 어떤 종전의 방법보다 더 단순하다.
바람직한 실시예에서, 클라이언트(101)는 유저 또는 서버에 대해 장기 증명서를 유지할 필요가 없다. 더 단순한 모델은 보통의 다중 루트 증명 기관의 SSL/브라우저 모델에서 나타날 수 있는 것과 같은 실패의 추가적인 점을 감소한다. SSL/브라우저 모델은 복잡한 신뢰 체인에서 수많은 잠재적인 약한 링크를 생성하고, 이것은 유저로부터 실질적인 행동 및/또는 주의를 요구한다. 우리의 더 단순화한 모델은 서버(103, 104)의 종전 인증에 의존하는 모델에서 "인간의 에러"에 전형적으로 기인했던 실질적인 위험을 제거한다.
본 발명은 다양한 응용을 할 수 있다. 본 발명의 방법의 이점은 로밍 예에 한정되지 않는다. 논-로밍 응용, 유저의 마스터키 Km은 상술한 바람직한 시스템(100)을 사용하여 검색되고, Km은 유저의 퍼스널 랩톱 머신에 국부적으로 저장된 증명서를 액세스하고 해독하는데 사용된다. 이것은 작은 유저의 선택 패스워드에 의해 보호되는 해독 불가능한 로컬 저장 및 원격적으로 저장된 키 셰어 계수{y1, y2,...}를 어떤 특별한 하드웨어없이 제공한다. 또한, Km과 보호된 데이터가 로컬 랩탑 데이터에 액세스하지 않기만 하면 적이 모든 관련 네트워크 서버(103, 104)를 공격한다 해도, 그 적에게 알려지지 않을 것이다.
마스터 키는 공개적으로 액세스가능한 장소에 저장된 개인 데이터를 해독하기 위해 대칭 키를 생성하고, 인증하기 위한 대칭 키를 생성하고, 실링된 메시지를 수신하기 위해 공개/개인키 쌍을 유추하는데 이용될 수 있다.
상술한 시스템(100)은 스마트카드를 대체하는 가장 효율적인 소프트웨어-기반 대체예를 제공한다.
상세한 프로토콜 기술
프로토콜 구현물이 아래의 테이블 1에 요약된 표기법을 사용하여 아래에 상세히 기술된다.
테이블 1. 표기법
기호 의미[적당한 예]
Ci Bi에 저장된 크리덴셜의 리스트
P 패스워드로부터 유추된 대응 Gq의 엘리먼트
[hash(password)2r mod p]
Gq 프라임 오더 q 의 그룹
[Zp *, p=2rp+1, 22j>q>22j-1, 2k>p>2k-1 , p 및 r 소수]
hash 암호화 해시 함수 [SHA1]
j 억지 공격에 저항하는 보안 파라미터[80]
k NFS 이산 로그 공격에 저항하는 보안 파라미터[1024]
Ki 앨리스와 Bi사이의 공유키[hash(Km∥i)]
Km 앨리스의 마스터키[연쇄된 셰어의 hash hash(S1∥...∥Sn)mod 2j]
Li Bi에 의해 저장된 의심되는 배드 시도의 리스트
password 유저의 패스워드, 0<password<22j[SHA1(ASCIIpassword)]
Ri 블라인드된 키 셰어=PXYi
Si 키 셰어=(P)Yi
U 앨리스의 개인 서명 키
Uk 앨리스의 암호화된 개인 키=암호(K,U)
V U에 대응하는 앨리스의 공개키
yi Bi에의해 저장된 앨리스의 비밀 세어 지수
암호(x, y) 대칭 키 x로 암호화된 메시지 y
해독(x, y) 대칭 키 x로 해독된 메시지 y
사인(x, y) 개인 키 x로 사인된 메시지 y (메시지 y가 판독될 수 있도록)
파라미터. 이 프로토콜에서, 두 개의 보안 파라미터가 정의된다. j는 대칭 함수에 대한 바람직한 비트-강도를 나타내고, k는 비대칭 함수의 모듈러스에 대해 필요한 비트의 수를 나타낸다.
삭제
Gq는 Zp *에서 오더 q의 서브그룹으로 정의되고, 여기서 p, q, r은 홀수 소수이고, p=2rp+1, 2k>p>2k-1, r≠q, 및 22j>q>22j-1이다. 함수는 패스워드를 그룹 소자 P ∈ Gq에 맵하는데 사용된다. 여기서 P=hash(password) ^2r mod p 이다.
(대안적으로 오더 r·p에 거의 동일한 p, 소수 q, 작은 여인수 r∈[1,100] 같은 점들의 그룹을 가진 GF(p)에서 타원곡선 그룹을 사용할 수 있다. 이 경우 모든 지수는 스칼라 포인트 곱셈으로 교체되고, P=r·point(hash(password))로 정의되고, 여기서 점은 곡선상의 임의의 점을 찾기 위해 의사 난수 발생기에 공급하도록 hash(password)를 사용한다. 이것은 1996, 10, 5일자 ACM 컴퓨터 통신 리뷰, 26권 no. 5에 " 강한 패스워드-단지 인증된 키 교환"으로 명명된 D, Jablon의 논문에 개시되어 있다.
등록
앨리스는 패스워드(P)를 선택하고, P:=hash(password)2r을 계산하고, 개인키(U)와 디지털 서명을 수행하기에 적합한 대응 공개키(V)를 생성한다. 그리고, n 키 셰어를 생성한다. 여기서 각각의 i번째 셰어 Si∈Gq는 랜덤하게 선택된 Yi 를 사용하여 Si:=Pyi로 형성된다. 그리고, Km:=hash(S1∥...∥Sn) mod 2j를 사용하여 마스터 j-비트 대칭 키를 생성하고, 암호화된 개인키 Uk:=암호(Km, U)를 생성하고, 키 검증 데이터 proofPKm:= hash(Km∥g)를 생성한다.
이 증명서를 등록하기 위해, 클라이언트(101)는 앨리스의 증명서를 각 Bi에 유지된 Ci 리스트에 저장될 수 있도록 송신한다. A의 적절한 아이덴터티를 보증할 수 있는 인증된 통신 방법을 사용하여 이러한 액션을 수행해야 한다.:
클라이언트: 각 i∈ [1, n], {enroll, A, yi, V, Uk, proofPKm}→Bi
서버: Ci에 {A, yi, V, Uk, proofPKm}저장
인증된 검색
인증된 증명서 검색에 대해, 클라이언트(101)와 서버(103, 104)는 아래에 리스트된 액션을 수행한다. 이 프로세스에서, 각 서버는 의심되는 배드 액세스 시도의 기록을 포함하는 Li의 리스트를 유지한다.
클라이언트:
랜덤 수 x ∈ [1, q-1]선택
Q:=Px mod p
{request, A, Q}→ 서버
서버:
Ci로부터 {A, yi, V, Uk, proofPKm} 검색
t:=현재시간
{A, Q, V, t}를 Li에 첨부
Ri:=Qyt
{reply, Ri, Uk, proofPKm}→클라이언트
클라이언트:
각 i ∈ [1, n]에 대해
Si:=Ri 1/x mod p
K':=hash(S1∥S2∥...∥Sn)
proofPKm≠e hash(K'∥g)하다면, 중지
U:=decrypt(K, Uk)
{Q, Q1,Q2,...}에서 Q'에 대해
{confirm, Q', sign(U, Q')}→서버
서버:
각 수신된{confirm, Q', Q'u}
Li에서 어떤{A,Q,V,t}에 대해 여기서 Q=Q'
V로 Q의 서명으로서 사인(U, Q') 검증
서명이 유효하면
Li로부터{A,Q,V,t}삭제
주기적으로, 아마도 1분에 한번씩, 각각의 Bi는 (현재시간-t)가 너무 커서 받아들일 수 없는 배드 엔트리{A, Q, V, t}에 대한 리스트(Li)를 스캔한다. 배드 엔트리가 발견되면, 엔트리는 리스트로부터 제거되고, 배드 액세스 시도 이벤트는 유저(A)에 대해 트리거된다. 최적화를 위해 앨리스는 모든 최근 Q값을 모든 서버(103, 104)에 인증하기 위해 단일 서명을 계산하고 송신할 필요가 있다.
성능 향상
FK1 프로토콜을 우리 프로토콜과 비교할 때, 기본적인 블라인딩 함수에 대한 그룹 연산 손실, 관련 검증 함수, 및 각각의 서버에 서버 인증 채널을 사용하는 손실, 장점 및 리스크를 포함하여 고려해야 할 몇가지 요인이 있다.
블라인딩 오퍼레이션 손실
시큐러티 요인 j=80 및 k=1024에 대하여, FK1 프로토콜 보다 상당히 보다 높은 성능을 제공한다. q=(p-1)/2를 사용하여, 각각의 FK1 서버는 1개의 1023 비트 제곱을 실행해야 하고 클라이언트는 2개의 1023 비트 제곱을 실행해야 한다.
우리의 방법에 도시된 바와 같이 p=2rq+1을 사용할 때, 우리는 2160 >q>2159 오더의 서브그룹을 사용한다. 후자의 경우에, 2개의 클라이언트 및 하나의 서버 계산은 전자의 계산량의 1/6로 급격하게 감소된다. 동등한 대칭 및 비대칭 시큐러티 파라미터를 평가하는 상이한 방법이 주어질 때, 당신의 마일리지는 다양해질 수 있다.
그러나, 클라이언트 장점은 앨리스가 P:=hash(password)2r에서의 864 비트 누승법을 실행해야 할 때는 실현되지 않는다. 그러나, 상기 장점의 일부는 아래에 설명되는 것과 같은, P의 대안의 구조로 이용될 수 있다. 이제까지의 이러한 비교는 서버 인증된 채널의 셋업을 제거함으로써 달성될 수 있는 임의의 추가된 세이빙을 무시한다. 그러나, 모든 서버인증을 제거함으로써, 세이빙은 고장 서버(103,104)에 의해 약간의 온라인 예측을 허용하여 일치 A를 도청자에게 드러낼 수도 있게 되는 댓가로 얻을 수 있다.
P의 대안 구조
대안 구조 P:=g1˙g2 hash(password)mod q 이 사용될 수 있다. 이것은 서로에 아무런 알려진 지수 관계가 없는 오더 q의 2개의 랜덤 요소인 고정 파라미터 g1 및 g2를 사용한다. g1 및 g2에 대해 일반적으로 수용가능한 값을 생성하는 한가지 가능성은 g1:=hash("g1")2rmod p에서와 같이 랜덤 오라클로서 해시 함수를 사용하는 것이다.
동일한 보안 파라미터에 있어서, 대안의 구조는 클라이언트(101)에 대해 3개의 160 비트 누승법을 그리고 서버에 대해서는 하나의 160 비트 누승법을 필요로 하고, 이것은 FK1과 비교하여 클라이언트 손실을 53% 만큼 감소시키고 서버 손실을 84%만큼 감소시킨다.
인증 함수의 손실
상기 방법은 블라인드 패스워드의 사용자 세트의 인증성을 증명하기 위해 사용자에 대한 디지털 서명을 필요로 한다. 다행히, 클라이언트 서명 생성은 모든 서버(103,104)에 대하여 하나 이상의 최근 전송된 패스워드를 포함하는 메시지를 생성하도록 한 번 이루어질 수 있고 서버 서명 검증속도는 RSA를 사용할 때 빠르다.
또한, 클라이언트(101)상의 공개키 사인 동작의 손실을 제거하기 위하여, 앨리스는 대신에 앨리스가 Bi로 기록한 공유 비밀 키 Ki=hash(Km∥i)를 사용하여 키잉된 메시지 인증 코드로 블라인드 패스워드의 세트를 "사인"할 수도 있다. 이러한 경우에, 그녀는 명백한 키를 등록하여 각각의 서버에 대하여 분명한 서명을 구성한다.
시큐어리티에 대한 인수
본 발명의 보안에 관련하여 몇가지 단순한 논의가 아래에 제시되었다.
각각의 키 셰어는 강력한 비밀이다. 각각의 셰어에 대한 중요한 데이터는 바람직하게는 안전한 증명서 서버상의 비밀 yi에만 기억되고, 이것은 수정된 디피 헬맨 익스체인지의 지수에서만 릴리스된다. 이러한 계산은 폼 p=2rp + 1의 모듈러 프라임이고, 이것은 공격자가 yi 에 대해서 얻을 수 있는 정보를 상당히 제한한다. 공격을 프로빙함으로써 결정될 수 있는 모든 것은 yi가 2rq와 공유인 계수를 갖고 있는냐 하는 것이다. 그러나, yi가 랜덤이고 2이외의 모든 계수는 크고, 그러한 가능성은 거의 없다. 따라서, Ford 및 Kaliski 페이퍼에 2000년 6월에 언급된 바와 같이, 결정될 수 있는 유일한 정보는 yi의 로우 비트이다.
앨리스는 임의의 노출된 값에 대하여 그것이 임의의 주어진 P에 의해 생성된 동일한 가능성이 있기 때문에 그녀의 블라인드된 요구 메시지내의 P에 대한 제로 정보를 누출한다. 또한, Pxy와 같은 추가 데이터의 존재 조차 y값이 공격자에 알려진 임의의 데이터에 의해 P와 관련되지 않기 때문에 공격자가 P를 결정하는 것을 돕지 못한다.
채널의 컨트롤에서 앨리스 확인 메시지에서의 앨리스로부터 적으로의 정보 누출의 기회는 앨리스가 임의의 무효한 응답을 서버로부터 수신한다면 임의의 유용한 정보를 릴리스하기 전에 앨리스가 중단할 것이기 때문에 무시해도 좋다. 해시 함수의 조합으로 인해, 마스터 키의 하나의 셰어가 부정확하다면, 압도된 확률로 조합된 키는 부정확해질 것이다. 또한, 마스터 키가 부정확하다면, 동일한 이유로 검증자 해시 값은 부정확하게 될 것이다. 따라서, 그들이 매칭한다면, 앨리스는 그녀의 마스터 키가 정확하다는 것을 확신할 수 있다.
통신 채널은 서버에 의해 전송된 Uk 및 proofPKm의 완전성을 보장할 필요가 없다. 그 이유를 알기 위해서, 이러한 값을 생성시키고 이들을 앨리스에게 전송하는 악의의 파티를 고려해야 한다. 최악의 경우에, 이러한 적은 각각의 실행에서 패스워드에 대하여 단일 예측을 검증하거나 서비스 공격의 거부를 실행할 수 있다. 클라이언트(101)가 최대 서버정보의 불량 배드 예측의 내성을 가지도록 설계되었다면, 이러한 공격은 안전한 채널 모델에서의 가능한 공격과 거의 동일하다. 다행하게도, 사람들은 로그인 실패에 대해 낮은 참을성을 갖는 경향이 있고, 재발 문제에 대해 시스템 관리자에게 불평하는 경향이 있다.
그러나, 클라이언트(101)는 적어도 사용자가 모든 고장을 인식하도록 되어 있기를 보장하도록 설계되어야 한다. 양 모델에서, 적은 적어도 하나의 방향으로 제한된 적은 수의 온라인 예측을 만들 수 있고, 메시지를 수정하거나 삭제함으로써 서비스의 거부를 유발할 수 있다.
상술된 hash(password)2r 함수 및 대안의 구성 모두는 오더 q를 보장하고, 2000년 6월의 Ford 및 Kaliski 페이퍼에 그리고 1997년 6월의 D. Jablon 페이퍼에 언급된 쇼트-엑스포넌트 및 패스워드-인-엑스포넌트로부터 보호한다.
짧은 지수
계산을 감소시키기 위한 대안의 접근법은 더 짧은 지수를 사용하는 것이다. 예를 들어, 1023-비트 q, p=2q+1을 갖는 그룹에 있어서, [1, 2160-1] 범위에서 지수를 사용할 수 있다. Diffie-Hellman에서 짧은 지수의 사용은 1996년 5월 페이퍼의 van Oorschot 등에서 논의되었다. 짧은 지수를 사용할 때, 폴라드 람다 방법은 어떤 알려진 고정 베이스(g)에 대하여 gx의 랜덤 지수(x)를 계산하기 위한 가장 효과적인 주지의 방법이다. 람다 불연속 로그 계산은 약 x1/2 연산을 필요로 한다. 그러나, 더 간단한 솔루션이 발견되지 않을 거라는 보장은 없다.
사용자가 단순히 일련의 블라인딩된 패스워드를 누설하고 다른 정보는 어떠 한 것도 공격자에게 이용가능하지 않은 경우에, 중단된 프로토콜을 생각해보자. 균등하게 분배된 랜덤 지수 x∈R[1,o(Gq)]를 사용할 때, Px값은 P에 대하여 제로 정보를 누설한다.
짧은 지수 x∈R[1,m], m≪q를 사용할 때, 보안은 계산상의 인터랙터빌리티의 부가된 가정을 요구할 수 있고, 불필요한 가정을 제거하는 것이 바람직하다. 이러한 가정이 중요한지는 공개된 의문이다.
짧은 지수가 원치않는 가정을 도입하는가 하는 (아마도 확증되지 않은) 관심사에 대하여, 계산을 감소시키는 바람직한 접근법은 모듈러스보다 상당히 더 작은 프라임 오더의 서브그룹을 사용하는 것이다.
본 발명은 종래기술에서 사용된 것보다 더 간단한 모델을 사용한다. 그렇게 함에 있어서, 사람들이 서버(103, 104)를 보안 식별해야 하지만 하지 않는 시스템에서의 고유한 문제를 제거한다. 본 발명은 증가된 성능으로 및 패스워드 엔트리에서의 인간의 에러를 더 잘 관리하도록 강화된 어카운터빌리티로, 클라이언트-기억된 키 또는 인증서에 대한 필요 없이, 더 간단한 모델에서, 모든 이전의 목표를 달성한다. 이들 방법은 또한 상당히 더 적은 계산으로 불연속 로그 공격에 대한 보안의 적어도 등가 레벨을 제공할 수 있다.
따라서, 멀티플 서버를 사용하여 원격 패스워드 인증을 제공하는 시스템, 방법, 및 소프트웨어가 개시되었다. 상기 실시예는 본 발명의 원리의 애플리케이션 을 표현하는 많은 특수한 실시예 중 일부의 예시일 뿐임을 이해할 것이다. 명확하게도, 본 발명의 취지로부터 벗어남이 없이 당업자는 용이하게 많은 다른 배열의 고안이 가능할 것이다.

Claims (24)

  1. 원격 패스워드 인증을 제공하기 위한 시스템에 있어서,
    클라이언트 컴퓨터;
    복수의 인증 서버;
    클라이언트 컴퓨터와 복수의 인증 서버를 상호접속시키는 네트워크;
    클라이언트 컴퓨터와 복수의 인증 서버에서 실행되고, 패스워드를 상기 클라이언트 컴퓨터에 입력하고, 상기 복수의 인증 서버의 각각에 고유한 랜덤 값 yi를 저장하고, 패스워드로부터 그룹 엘리먼트(P)를 유도하고, 블라인드된 패스워드 값(PX)을 서버에 전송하고, 상기 서버로부터 블라인드된 키 셰어(PXYi)를 검색하고, 마스터 키(Km)를 생성하기 위해 상기 셰어를 언블라인드하여 조합하고, 상기 마스터 키(Km)를 사용하여 클라이언트 컴퓨터상의 암호화된 개인 데이터를 해독하도록 수행하는 소프트웨어를 포함하는 것을 특징으로 하는 시스템.
  2. 제1 항에 있어서, 상기 클라이언트 컴퓨터에서 동작하는 소프트웨어는 마스터 키(Km)를 유효화하도록 동작하는 것을 특징으로 하는 시스템.
  3. 제1 항에 있어서, 상기 클라이언트 컴퓨터에서 동작하는 소프트웨어는 마스 터 키(Km)를 사용하여 암호화된 개인 데이터를 해독하도록 동작하는 것을 특징으로 하는 시스템.
  4. 제2 항에 있어서, 상기 클라이언트 컴퓨터에서 동작하는 소프트웨어는 유효화된 마스터 키(Km)를 사용하여 암호화된 개인 데이터를 해독하도록 동작하는 것을 특징으로 하는 시스템.
  5. 제2 항에 있어서, 상기 클라이언트 컴퓨터에서 동작하는 소프트웨어는 유효화된 마스터 키(Km)의 프루프 및 각각의 블라인드된 패스워드 값(PX)을 서버에 전송하도록 동작하는 것을 특징으로 하는 시스템.
  6. 클라이언트 컴퓨터, 복수의 인증 서버, 및 상기 클라이언트 컴퓨터와 복수의 인증 서버를 상호접속하는 네트워크를 포함하는 시스템을 사용하여 원격 패스워드 인증을 제공하기 위한 방법에 있어서, 상기 방법은,
    패스워드를 입력하는 단계;
    패스워드로부터 그룹 엘리먼트(P)를 유도하는 단계;
    블라인드된 패스워드 값(PX)을 서버에 전송하는 단계;
    서버로부터 블라인드된 키 셰어(PXYi)를 검색하는 단계;
    마스터 키(Km)를 생성하기 위해 상기 셰어(PXYi)를 언블라인드하여 조합하는 단계; 및
    마스터 키(Km)를 사용하여 클라이언트 컴퓨터상의 암호화된 개인 데이터를 해독하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6 항에 있어서, 상기 마스터 키(Km)를 유효화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제6 항에 있어서, 상기 클라이언트 컴퓨터에서 동작하는 소프트웨어는 마스터 키(Km)를 사용하여 암호화된 개인 데이터를 해독하도록 동작하는 것을 특징으로 하는 방법.
  9. 제7 항에 있어서, 상기 유효화된 마스터 키(Km)를 사용하여 암호화된 개인 데이터를 해독하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제7 항에 있어서, 상기 유효화된 마스터 키(Km)의 프루프 및 각각의 블라인드된 패스워드 값(PX)을 서버에 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 클라이언트 컴퓨터, 복수의 인증 서버, 및 상기 클라이언트 컴퓨터와 복수의 인증 서버를 상호접속하는 네트워크를 포함하는 다중-서버 시스템에서 원격 패스워드 인증을 행할 수 있게 하기 위해 컴퓨터-판독가능 매체상에 구현된 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은,
    패스워드를 입력하는 코드 세그먼트;
    각각의 서버상에 고유한 랜덤값 yi를 포함하는 데이터 기억 영역;
    패스워드로부터 그룹 엘리먼트(P)를 유도하는 코드 세그먼트;
    블라인드된 패스워드 값(PX)을 서버에 전송하는 코드 세그먼트;
    블라인드된 키 셰어(PXYi)를 서버로부터 검색하는 코드 세그먼트;
    마스터 키(Km)를 생성하기 위해 상기 키 셰어를 언블라인드하여 조합하는 코드 세그먼트; 및
    마스터 키(Km)를 사용하여 클라이언트 컴퓨터상의 암호화된 개인 데이터를 해독하는 코드 세그먼트를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  12. 제11 항에 있어서, 상기 마스터 키(Km)를 유효화하는 코드 세그먼트를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  13. 제11 항에 있어서, 마스터 키(Km)를 사용하여 암호화된 개인 데이터를 해독하는 코드 세그먼트를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  14. 제12 항에 있어서, 유효화된 마스터 키(Km)를 사용하여 암호화된 개인 데이터를 해독하는 코드 세그먼트를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  15. 제12 항에 있어서, 상기 유효화된 마스터 키(Km)의 프루프 및 블라인드된 패스워드 값(PX)을 서버에 전송하는 코드 세그먼트를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  16. 제1 항에 있어서, 상기 소프트웨어는:
    악성 로그인 시도의 횟수, 최근 증대 수, 최근 PX 패스워드 증대 요구 값의 리스트, 및 서버상의 최근 패스워드 증대 요구 값의 리스트와 연관된 타임스탬프의 리스트를 유지하고;
    블라인드된 패스워드(PX) 요구를 수신하고;
    블라인드된 패스워드를 단기 리스트에 기록하고;
    사용자 계정이 로크되었는 지를 알기 위해 사용자 계정을 검사하고;
    블라인드된 키 셰어(PXYi)를 생성하고; 및
    클라이언트 컴퓨터가 로크되지 않았다면 블라인드된 키 셰어를 상기 클라이언트 컴퓨터에 전송하도록 수행되는 것을 특징으로 하는 시스템.
  17. 제16 항에 있어서, 상기 소프트웨어는:
    요구가 수신되었던 시간을 나타내기 위해 타임스탬프 값을 기록하고;
    임의의 타임스탬프 값과 현재 타임간의 차이가 특정한 시간 주기 보다 크게 되는 경우에 판정되는 스테일 요구를 주기적으로 검사하고;
    대응하는 패스워드 증대 요구 값 및 타임스탬프를 삭제하고; 및
    악성 시도 횟수를 증가시키는 것을 특징으로 하는 시스템.
  18. 제16 항에 있어서, 성공적인 로그인이 발생하는 경우, 상기 소프트웨어는:
    랜덤 파워로 누승된 패스워드와 동일한 QA 의 값을, 동일한 로그인 세션에서 이전 실행에 의해 발생된 QA에 대한 임의의 이전 값과 함께, 암호화된 메시지의 형식으로 각각의 서버에 전송하고; 및
    마스터 키(Km)를 사용하여 상기 암호화된 메시지를 인증하는 것을 특징으로 하는 시스템.
  19. 제6 항에 있어서,
    악성 로그인 시도의 횟수, 최근 증대 수, 최근 PX 패스워드 증대 요구 값의 리스트, 및 서버상의 최근 패스워드 증대 요구 값의 리스트와 연관된 타임스탬프의 리스트를 유지하는 단계;
    블라인드된 패스워드(PX) 요구를 수신하는 단계;
    블라인드된 패스워드를 단기 리스트에 기록하는 단계;
    사용자 계정이 로크되었는 지를 알기 위해 사용자 계정을 검사하는 단계;
    블라인드된 키 셰어(PXYi)를 생성하는 단계; 및
    클라이언트 컴퓨터가 로크되지 않았다면 블라인드된 키 셰어를 상기 클라이언트 컴퓨터에 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  20. 제19 항에 있어서, 상기 소프트웨어는:
    요구가 수신되었던 시간을 나타내기 위해 타임스탬프 값을 기록하고;
    임의의 타임스탬프 값과 현재 타임간의 차이가 특정한 시간 주기 보다 크게 되는 경우에 판정되는 스테일 요구를 주기적으로 검사하고;
    대응하는 패스워드 증대 요구 값 및 타임스탬프를 삭제하고; 및
    악성 시도 횟수를 증가시키는 것을 특징으로 하는 방법.
  21. 제19 항에 있어서,
    랜덤 파워로 누승된 패스워드와 동일한 QA 의 값을, 동일한 로그인 세션에서 이전 실행에 의해 발생된 QA 에 대한 임의의 이전 값과 함께, 암호화된 메시지의 형식으로 각각의 서버에 전송하는 단계; 및
    마스터 키(Km)를 사용하여 상기 암호화된 메시지를 인증하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  22. 제11 항에 있어서,
    악성 로그인 시도의 횟수, 최근 패스워드 증대 요구의 수, 최근 PX 패스워드 증대 요구 값의 리스트, 및 서버상의 최근 패스워드 증대 요구 값의 리스트와 연관된 타임스탬프의 리스트를 유지하고;
    블라인드된 패스워드(PX) 요구를 수신하고;
    블라인드된 패스워드를 단기 의심 리스트에 기록하고;
    사용자 계정이 로크되었는 지를 알기 위해 사용자 계정을 검사하고;
    사용자 계정이 로크되지 않았다면 블라인드된 키 셰어(PXYi)를 생성하고; 및
    블라인드된 키 셰어를 상기 클라이언트 컴퓨터에 전송하는 코드 세그먼트를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  23. 제22 항에 있어서,
    요구가 수신되었던 시간을 나타내기 위해 타임스탬프 값을 기록하고;
    임의의 타임스탬프 값과 현재 타임간의 차이가 특정한 시간 주기 보다 크게 되는 경우에 판정되는 스테일 요구를 주기적으로 검사하고;
    대응하는 패스워드 증대 요구 값 및 타임스탬프를 삭제하고; 및
    악성 시도 횟수를 증가시키는 코드 세그먼트를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  24. 제22 항에 있어서,
    랜덤 파워로 누승된 패스워드와 동일한 QA 의 값을, 동일한 로그인 세션에서 이전 실행에 의해 발생된 QA 에 대한 임의의 이전 값과 함께, 암호화된 메시지의 형식으로 각각의 서버에 전송하고; 및
    마스터 키(Km)를 사용하여 상기 암호화된 메시지를 인증하는 코드 세그먼트를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020027016620A 2000-06-05 2001-05-31 다중 서버를 사용하는 원격 패스워드 인증을 위한 시스템, 방법 및 소프트웨어 KR100769482B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US20925800P 2000-06-05 2000-06-05
US60/209,258 2000-06-05
US21583500P 2000-07-03 2000-07-03
US60/215,835 2000-07-03
PCT/US2001/017979 WO2001095545A2 (en) 2000-06-05 2001-05-31 Systems, methods and software for remote password authentication using multiple servers

Publications (2)

Publication Number Publication Date
KR20030010667A KR20030010667A (ko) 2003-02-05
KR100769482B1 true KR100769482B1 (ko) 2007-10-24

Family

ID=26903984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027016620A KR100769482B1 (ko) 2000-06-05 2001-05-31 다중 서버를 사용하는 원격 패스워드 인증을 위한 시스템, 방법 및 소프트웨어

Country Status (7)

Country Link
US (1) US7139917B2 (ko)
JP (1) JP4833489B2 (ko)
KR (1) KR100769482B1 (ko)
CN (1) CN1249972C (ko)
AU (1) AU6816101A (ko)
TW (1) TWI233739B (ko)
WO (1) WO2001095545A2 (ko)

Families Citing this family (223)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181953B1 (en) 2013-09-16 2019-01-15 Amazon Technologies, Inc. Trusted data verification
US7596223B1 (en) * 2000-09-12 2009-09-29 Apple Inc. User control of a secure wireless computer network
US6959394B1 (en) * 2000-09-29 2005-10-25 Intel Corporation Splitting knowledge of a password
US20030115452A1 (en) * 2000-12-19 2003-06-19 Ravi Sandhu One time password entry to access multiple network sites
US7197765B2 (en) * 2000-12-29 2007-03-27 Intel Corporation Method for securely using a single password for multiple purposes
US7590859B2 (en) * 2001-08-24 2009-09-15 Secure Computing Corporation System and method for accomplishing two-factor user authentication using the internet
US7275260B2 (en) 2001-10-29 2007-09-25 Sun Microsystems, Inc. Enhanced privacy protection in identification in a data communications network
US7496751B2 (en) * 2001-10-29 2009-02-24 Sun Microsystems, Inc. Privacy and identification in a data communications network
US20030084171A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation User access control to distributed resources on a data communications network
US20030084302A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation Portability and privacy with data communications network browsing
US7085840B2 (en) * 2001-10-29 2006-08-01 Sun Microsystems, Inc. Enhanced quality of identification in a data communications network
US7610390B2 (en) * 2001-12-04 2009-10-27 Sun Microsystems, Inc. Distributed network identity
FR2834153B1 (fr) * 2001-12-21 2004-04-23 France Telecom Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
US7325065B1 (en) * 2001-12-21 2008-01-29 Aol Llc, A Delaware Limited Liability Company Identifying unauthorized communication systems using a system-specific identifier
US7571239B2 (en) * 2002-01-08 2009-08-04 Avaya Inc. Credential management and network querying
KR100398161B1 (ko) * 2002-02-26 2003-09-26 한국정보보호진흥원 서버의 사전 탐색 공격을 고려한 패스워드 기반의 사용자인증 프로토콜
KR100450953B1 (ko) * 2002-03-05 2004-10-02 삼성전자주식회사 암호를 이용한 사용자 인증방법
US7120797B2 (en) * 2002-04-24 2006-10-10 Microsoft Corporation Methods for authenticating potential members invited to join a group
US6718536B2 (en) * 2002-06-21 2004-04-06 Atmel Corporation Computer-implemented method for fast generation and testing of probable prime numbers for cryptographic applications
KR100458254B1 (ko) * 2002-07-26 2004-11-26 학교법인 성균관대학 패스워드 강화 프로토콜을 이용한 패스워드 기반 키 분배방법
US7725730B2 (en) * 2002-08-09 2010-05-25 Emc Corporation Cryptographic methods and apparatus for secure authentication
AU2002337588A1 (en) * 2002-09-23 2004-04-08 Avner Geller Method and system for authentication
US7426382B2 (en) * 2002-10-09 2008-09-16 Motorola, Inc. Contact validation and trusted contact updating in mobile wireless communications devices
US20040073795A1 (en) * 2002-10-10 2004-04-15 Jablon David P. Systems and methods for password-based connection
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
US9503470B2 (en) * 2002-12-24 2016-11-22 Fred Herz Patents, LLC Distributed agent based model for security monitoring and response
US7480384B2 (en) * 2003-02-10 2009-01-20 International Business Machines Corporation Method for distributing and authenticating public keys using random numbers and Diffie-Hellman public keys
CA2422334C (en) * 2003-03-17 2009-06-09 British Telecommunications Public Limited Company Authentication of network users
US7836493B2 (en) 2003-04-24 2010-11-16 Attachmate Corporation Proxy server security token authorization
US6994249B2 (en) * 2003-05-27 2006-02-07 Cardinal Health Technologies, Llc System and method for drug management utilizing transferable labels
US8769680B2 (en) * 2003-06-12 2014-07-01 International Business Machines Corporation Alert passwords for detecting password attacks on systems
US8214884B2 (en) * 2003-06-27 2012-07-03 Attachmate Corporation Computer-based dynamic secure non-cached delivery of security credentials such as digitally signed certificates or keys
JP3854954B2 (ja) * 2003-09-05 2006-12-06 キヤノン株式会社 データ共有装置
US7565702B2 (en) * 2003-11-03 2009-07-21 Microsoft Corporation Password-based key management
US20050129244A1 (en) * 2003-12-16 2005-06-16 International Business Machines Corporation System and method for mitigating denial of service attacks on trusted platform
KR100744531B1 (ko) * 2003-12-26 2007-08-01 한국전자통신연구원 무선 단말기용 암호키 관리 시스템 및 방법
FR2865051B1 (fr) * 2004-01-14 2006-03-03 Stg Interactive Procede et systeme pour l'exploitation d'un reseau informatique destine a la publication de contenu
FR2865590A1 (fr) * 2004-01-23 2005-07-29 France Telecom Procede pour etablir, a partir d'un jeu de grands nombres premiers, un jeu de cles destine a prouver l'authenticite d'une entite ou l'integrite d'un message
US7818416B2 (en) * 2004-02-27 2010-10-19 Teamon Systems, Inc. Communications system and method for accessing a server and preventing access blocking and minimizing network traffic
EP1759258A1 (en) * 2004-04-06 2007-03-07 Telecom Italia S.p.A. Secure logging for irrefutable administration
US20050289645A1 (en) * 2004-06-25 2005-12-29 Kyocera Mita Corporation Image processing device and program
US8214649B2 (en) * 2004-06-30 2012-07-03 Nokia Corporation System and method for secure communications between at least one user device and a network entity
WO2006003675A2 (en) * 2004-07-12 2006-01-12 Syed Ibrahim Abdul Hameed Khan System, method of generation and use of bilaterally generated variable instant passwords
US7373516B2 (en) * 2004-08-19 2008-05-13 International Business Machines Corporation Systems and methods of securing resources through passwords
KR100608604B1 (ko) * 2004-09-15 2006-08-03 삼성전자주식회사 객체 식별자를 이용하여 이동형 저장 장치에서 권리객체를 검색하는 방법 및 장치
US7784089B2 (en) * 2004-10-29 2010-08-24 Qualcomm Incorporated System and method for providing a multi-credential authentication protocol
WO2006069082A2 (en) * 2004-12-20 2006-06-29 Bionopoly Llc Access keys
BRPI0608531A2 (pt) * 2005-02-11 2010-01-12 Nokia Corp método e aparelho para prover os procedimentos de auto-carregamento na rede de comunicação
US20090158049A1 (en) * 2005-04-06 2009-06-18 Michael Stephen Fiske Building a security access system
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks
US9087218B1 (en) 2005-08-11 2015-07-21 Aaron T. Emigh Trusted path
US7793335B2 (en) * 2005-09-12 2010-09-07 International Business Machines Corporation Computer-implemented method, system, and program product for managing log-in strikes
US7783041B2 (en) * 2005-10-03 2010-08-24 Nokia Corporation System, method and computer program product for authenticating a data agreement between network entities
US7984482B1 (en) * 2005-12-16 2011-07-19 Oracle America, Inc. Global account lockout (GAL) and expiration using an ordered message service (OMS)
US8495380B2 (en) 2006-06-06 2013-07-23 Red Hat, Inc. Methods and systems for server-side key generation
US20080126808A1 (en) * 2006-07-05 2008-05-29 Cms Products, Inc. Encrypted dataset access by custodians
US8527770B2 (en) * 2006-07-20 2013-09-03 Research In Motion Limited System and method for provisioning device certificates
US8301897B2 (en) * 2006-08-23 2012-10-30 Cisco Technology, Inc. Challenge-based authentication protocol
US8645706B2 (en) * 2006-08-31 2014-02-04 Red Hat, Inc. Preventing error in an access protocol
US7958356B1 (en) * 2006-09-29 2011-06-07 Netapp, Inc. System and method for establishing a shared secret among nodes of a security appliance
US8042155B1 (en) * 2006-09-29 2011-10-18 Netapp, Inc. System and method for generating a single use password based on a challenge/response protocol
US8245050B1 (en) * 2006-09-29 2012-08-14 Netapp, Inc. System and method for initial key establishment using a split knowledge protocol
JP5237293B2 (ja) 2006-10-26 2013-07-17 クゥアルコム・インコーポレイテッド 無線通信システムにおけるシンボルタイミング推定のための方法および装置
US8838975B2 (en) * 2006-10-31 2014-09-16 Blackberry Limited System and method for protecting a password against brute force attacks
US8752181B2 (en) * 2006-11-09 2014-06-10 Touchnet Information Systems, Inc. System and method for providing identity theft security
US9002003B2 (en) * 2006-11-29 2015-04-07 Certicom Corp. Password protocol for data communication system
US8611542B1 (en) 2007-04-26 2013-12-17 Netapp, Inc. Peer to peer key synchronization
US8824686B1 (en) 2007-04-27 2014-09-02 Netapp, Inc. Cluster key synchronization
US8196182B2 (en) 2007-08-24 2012-06-05 Netapp, Inc. Distributed management of crypto module white lists
NO327765B1 (no) * 2007-08-29 2009-09-21 Message Man As Fremgangsmate og et arrangement relatert til sikkerhetsmekanismer for meldingsbaserte elektroniske transaksjoner
US9774445B1 (en) 2007-09-04 2017-09-26 Netapp, Inc. Host based rekeying
JP4924943B2 (ja) * 2007-09-04 2012-04-25 Kddi株式会社 認証付鍵交換システム、認証付鍵交換方法およびプログラム
CN101388813B (zh) * 2007-09-14 2010-12-22 英业达股份有限公司 企业用软件注册方法及系统
DE102007000589B9 (de) * 2007-10-29 2010-01-28 Bundesdruckerei Gmbh Verfahren zum Schutz einer Chipkarte gegen unberechtigte Benutzung, Chipkarte und Chipkarten-Terminal
DE102007000587A1 (de) 2007-10-29 2009-04-30 Bundesdruckerei Gmbh Verfahren zum Freischalten einer Chipkartenfunktion mittels Fernüberprüfung
KR101452708B1 (ko) * 2008-02-01 2014-10-21 삼성전자주식회사 Ce 장치 관리 서버, ce 장치 관리 서버를 이용한drm 키 발급 방법, 및 그 방법을 실행하기 위한프로그램 기록매체
US20090202081A1 (en) * 2008-02-08 2009-08-13 Ayman Hammad Key delivery system and method
DE102008000348B4 (de) 2008-02-19 2011-04-07 Compugroup Holding Ag Verfahren zur Signierung eines medizinischen Datenobjekts
US8254577B2 (en) * 2008-02-20 2012-08-28 International Business Machines Corporation Validation of encryption key
US9479339B2 (en) * 2008-02-29 2016-10-25 Blackberry Limited Methods and apparatus for use in obtaining a digital certificate for a mobile communication device
US10015158B2 (en) * 2008-02-29 2018-07-03 Blackberry Limited Methods and apparatus for use in enabling a mobile communication device with a digital certificate
US8464058B1 (en) 2008-04-08 2013-06-11 Hewlett-Packard Development Company, L.P. Password-based cryptographic method and apparatus
US8140855B2 (en) * 2008-04-11 2012-03-20 Microsoft Corp. Security-enhanced log in
FR2931336B1 (fr) * 2008-05-19 2011-02-11 Eads Secure Networks Procedes et dispositifs d'emission et d'authentification de messages pour garantir l'authenticite d'un systeme
US7522723B1 (en) 2008-05-29 2009-04-21 Cheman Shaik Password self encryption method and system and encryption by keys generated from personal secret information
US8504481B2 (en) * 2008-07-22 2013-08-06 New Jersey Institute Of Technology System and method for protecting user privacy using social inference protection techniques
US8813197B2 (en) * 2008-12-15 2014-08-19 Novell, Inc. Techniques for network process identity enablement
DE102009000404B4 (de) 2009-01-26 2024-05-29 Bundesdruckerei Gmbh Verfahren zur Freischaltung einer Chipkartenfunktion, Lesegerät für eine Chipkarte und Chipkarte
DE102009000408A1 (de) 2009-01-26 2010-09-16 Bundesdruckerei Gmbh Lesegerät für eine Chipkarte und Computersystem
US8272040B2 (en) 2009-01-29 2012-09-18 International Business Machines Corporation Preventing inadvertent lock-out during password entry dialog
US9124431B2 (en) 2009-05-14 2015-09-01 Microsoft Technology Licensing, Llc Evidence-based dynamic scoring to limit guesses in knowledge-based authentication
US8856879B2 (en) 2009-05-14 2014-10-07 Microsoft Corporation Social authentication for account recovery
EP2285042A1 (fr) * 2009-07-07 2011-02-16 Gemalto SA Module logiciel de sécurisation utilisant le chiffrement du haché d'un mot de passe concaténé avec une graine
US8433918B2 (en) * 2009-10-14 2013-04-30 Texas Instruments Incorporated Methods and systems for improving the security of password-based authentication protocols for IEEE 802.11 networks
EP2336931B1 (fr) * 2009-11-18 2013-01-09 STMicroelectronics (Rousset) SAS Procédé de vérification de signature
TWI569615B (zh) * 2010-03-01 2017-02-01 內數位專利控股公司 機器對機器閘道器
US9015489B2 (en) 2010-04-07 2015-04-21 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
US8549314B2 (en) 2010-04-29 2013-10-01 King Saud University Password generation methods and systems
CA2759971A1 (en) * 2010-11-29 2012-05-29 Groupe Cgi Inc. Method for storing (hiding) a key in a table and corresponding method for retrieving the key from the table
US9237155B1 (en) 2010-12-06 2016-01-12 Amazon Technologies, Inc. Distributed policy enforcement with optimizing policy transformations
US8656484B2 (en) 2010-12-28 2014-02-18 Authernative, Inc. System and method for mutually authenticated cryptographic key exchange using matrices
US8621227B2 (en) 2010-12-28 2013-12-31 Authernative, Inc. System and method for cryptographic key exchange using matrices
US8971539B2 (en) 2010-12-30 2015-03-03 Verisign, Inc. Management of SSL certificate escrow
US8739260B1 (en) 2011-02-10 2014-05-27 Secsign Technologies Inc. Systems and methods for authentication via mobile communication device
US8719952B1 (en) * 2011-03-25 2014-05-06 Secsign Technologies Inc. Systems and methods using passwords for secure storage of private keys on mobile devices
US8793780B2 (en) 2011-04-11 2014-07-29 Blackberry Limited Mitigation of application-level distributed denial-of-service attacks
US10374799B2 (en) * 2011-04-13 2019-08-06 Nokia Technologies Oy Method and apparatus for identity based ticketing
GB2490483B (en) * 2011-04-26 2019-05-29 Hewlett Packard Entpr Dev Lp Digital signature method and system
US8689304B2 (en) * 2011-04-27 2014-04-01 International Business Machines Corporation Multiple independent authentications for enhanced security
US8681986B2 (en) * 2011-05-25 2014-03-25 International Business Machines Corporation Single-round password-based key exchange protocols
US8769642B1 (en) 2011-05-31 2014-07-01 Amazon Technologies, Inc. Techniques for delegation of access privileges
DE102011079441A1 (de) 2011-07-19 2013-01-24 Bundesdruckerei Gmbh Verfahren zum Schutz eines Chipkarten-Terminals gegen unberechtigte Benutzung
CN102300182B (zh) * 2011-09-07 2013-08-14 飞天诚信科技股份有限公司 一种基于短信的身份验证方法、系统和装置
US9203613B2 (en) 2011-09-29 2015-12-01 Amazon Technologies, Inc. Techniques for client constructed sessions
US9178701B2 (en) 2011-09-29 2015-11-03 Amazon Technologies, Inc. Parameter based key derivation
US9197409B2 (en) 2011-09-29 2015-11-24 Amazon Technologies, Inc. Key derivation techniques
US8842840B2 (en) 2011-11-03 2014-09-23 Arvind Gidwani Demand based encryption and key generation and distribution systems and methods
US9106635B2 (en) * 2012-03-01 2015-08-11 Certicom Corp. System and method for connecting client devices to a network
EP2639997B1 (en) * 2012-03-15 2014-09-03 ATS Group (IP Holdings) Limited Method and system for secure access of a first computer to a second computer
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
US9215076B1 (en) 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US8892865B1 (en) 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
JP5947453B2 (ja) * 2012-04-25 2016-07-06 ロウェム インコーポレイテッド パスコード運営システム、パスコード装置、及びスーパーパスコードの生成方法
US9703932B2 (en) 2012-04-30 2017-07-11 Excalibur Ip, Llc Continuous content identification of broadcast content
US9887989B2 (en) * 2012-06-23 2018-02-06 Pomian & Corella, Llc Protecting passwords and biometrics against back-end security breaches
US9660972B1 (en) 2012-06-25 2017-05-23 Amazon Technologies, Inc. Protection from data security threats
US9258118B1 (en) 2012-06-25 2016-02-09 Amazon Technologies, Inc. Decentralized verification in a distributed system
US9043388B2 (en) * 2012-06-25 2015-05-26 International Business Machines Corporation Aggregation and queuing of communications
WO2014019129A1 (en) * 2012-07-31 2014-02-06 Google Inc. Automating password maintenance
US9049011B1 (en) * 2012-08-15 2015-06-02 Washington State University Secure key storage and distribution
US9684898B2 (en) * 2012-09-25 2017-06-20 Google Inc. Securing personal identification numbers for mobile payment applications by combining with random components
US9215072B1 (en) 2012-10-23 2015-12-15 Authernative, Inc. Back-end matching method supporting front-end knowledge-based probabilistic authentication systems for enhanced credential security
US8955074B2 (en) 2012-10-23 2015-02-10 Authernative, Inc. Authentication method of enumerated pattern of field positions based challenge and enumerated pattern of field positions based response through interaction between two credentials in random partial digitized path recognition system
US8868919B2 (en) 2012-10-23 2014-10-21 Authernative, Inc. Authentication method of field contents based challenge and enumerated pattern of field positions based response in random partial digitized path recognition system
US9213812B1 (en) 2012-12-28 2015-12-15 Allscripts Software, Llc Systems and methods related to security credentials
WO2014108835A2 (en) * 2013-01-08 2014-07-17 Bar-Ilan University A method for providing security using secure computation
JP6040780B2 (ja) * 2013-01-15 2016-12-07 富士通株式会社 暗号処理装置、方法およびプログラム
US8966591B2 (en) * 2013-01-18 2015-02-24 Ca, Inc. Adaptive strike count policy
DE102013203257A1 (de) 2013-02-27 2014-08-28 Bundesdruckerei Gmbh Lesen eines Attributs aus einem ID-Token
US9032212B1 (en) * 2013-03-15 2015-05-12 Emc Corporation Self-refreshing distributed cryptography
US10270748B2 (en) * 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
EP2793157A1 (en) * 2013-04-19 2014-10-22 Thomson Licensing Apparatus and method for managing passwords
GB201310084D0 (en) * 2013-06-06 2013-07-17 Mastercard International Inc Improvements to electronic authentication systems
US9407440B2 (en) 2013-06-20 2016-08-02 Amazon Technologies, Inc. Multiple authority data security and access
US9305161B1 (en) * 2013-06-24 2016-04-05 Emc Corporation Password hardening system using password shares distributed across multiple servers
US9521000B1 (en) 2013-07-17 2016-12-13 Amazon Technologies, Inc. Complete forward access sessions
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9189617B2 (en) * 2013-09-27 2015-11-17 Intel Corporation Apparatus and method for implementing zero-knowledge proof security techniques on a computing platform
US10354084B2 (en) * 2013-10-28 2019-07-16 Sepior Aps System and a method for management of confidential data
US10243945B1 (en) 2013-10-28 2019-03-26 Amazon Technologies, Inc. Managed identity federation
US9420007B1 (en) 2013-12-04 2016-08-16 Amazon Technologies, Inc. Access control using impersonization
US10015153B1 (en) * 2013-12-23 2018-07-03 EMC IP Holding Company LLC Security using velocity metrics identifying authentication performance for a set of devices
US9292711B1 (en) 2014-01-07 2016-03-22 Amazon Technologies, Inc. Hardware secret usage limits
US9369461B1 (en) 2014-01-07 2016-06-14 Amazon Technologies, Inc. Passcode verification using hardware secrets
US9374368B1 (en) 2014-01-07 2016-06-21 Amazon Technologies, Inc. Distributed passcode verification system
US9270662B1 (en) 2014-01-13 2016-02-23 Amazon Technologies, Inc. Adaptive client-aware session security
US9275219B2 (en) * 2014-02-25 2016-03-01 International Business Machines Corporation Unauthorized account access lockout reduction
US10771255B1 (en) 2014-03-25 2020-09-08 Amazon Technologies, Inc. Authenticated storage operations
EP2955654A1 (en) 2014-06-12 2015-12-16 Thomson Licensing Apparatus and method for password authentication
US9258117B1 (en) 2014-06-26 2016-02-09 Amazon Technologies, Inc. Mutual authentication with symmetric secrets and signatures
US10326597B1 (en) 2014-06-27 2019-06-18 Amazon Technologies, Inc. Dynamic response signing capability in a distributed system
US9350545B1 (en) 2014-06-30 2016-05-24 Emc Corporation Recovery mechanism for fault-tolerant split-server passcode verification of one-time authentication tokens
US9544838B2 (en) * 2014-08-01 2017-01-10 Apple Inc. Detecting and connecting to Wi-Fi™ networks
TWI497339B (zh) * 2014-08-15 2015-08-21 Chi-Pei Wang 具有帳號密碼分散儲存防側錄功能之電腦系統
US9639687B2 (en) 2014-11-18 2017-05-02 Cloudfare, Inc. Multiply-encrypting data requiring multiple keys for decryption
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
DE102015200313A1 (de) 2015-01-13 2016-07-14 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102015017061A1 (de) 2015-01-13 2016-07-28 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102015017060A1 (de) 2015-01-13 2016-07-14 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102015204828A1 (de) 2015-03-17 2016-09-22 Bundesdruckerei Gmbh Verfahren zur Erzeugung eines Zertifikats für einen Sicherheitstoken
DE102015207064A1 (de) 2015-04-17 2016-10-20 Bundesdruckerei Gmbh Elektronisches System zur Erzeugung eines Zertifikats
US20160315927A1 (en) * 2015-04-21 2016-10-27 Zte (Usa) Inc. Method and system for establishing and managing personal black box (pbb) in virtually-networked big-data (vnbd) environment
US10374802B2 (en) 2015-04-24 2019-08-06 Red Hat, Inc. Multi-factor simple password exponential key exchange (SPEKE) authentication
DE102015207690A1 (de) 2015-04-27 2016-10-27 Bundesdruckerei Gmbh ID-Token, System und Verfahren zur Erzeugung einer elektronischen Signatur
DE102015209073B4 (de) 2015-05-18 2019-02-07 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
KR102460096B1 (ko) 2015-05-27 2022-10-27 삼성에스디에스 주식회사 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
US10122692B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
US10122689B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Load balancing with handshake offload
EP3349393A1 (en) * 2015-06-30 2018-07-18 Visa International Service Association Mutual authentication of confidential communication
WO2017001972A1 (en) * 2015-06-30 2017-01-05 Raghav Bhaskar User friendly two factor authentication
DE102015214340A1 (de) 2015-07-29 2017-02-02 Bundesdruckerei Gmbh Sperrdienst für ein durch einen ID-Token erzeugtes Zertifikat
US20170063831A1 (en) * 2015-08-24 2017-03-02 International Business Machines Corporation Authentication of a user and of access to the user's information
US20170091887A1 (en) * 2015-09-24 2017-03-30 Yahoo! Inc. Method for accessing an online account after the owner's death
US9860237B2 (en) * 2015-10-08 2018-01-02 International Business Machines Corporation Password-based authentication in server systems
US9565020B1 (en) 2016-02-02 2017-02-07 International Business Machines Corporation System and method for generating a server-assisted strong password from a weak secret
US10250591B2 (en) 2016-02-12 2019-04-02 International Business Machines Corporation Password-based authentication
US10476672B2 (en) 2016-03-14 2019-11-12 Callware Technologies, Inc Fragmented encryption of a secret
US10158651B1 (en) * 2016-04-20 2018-12-18 Wells Fargo Bank, N.A. Verifying secure transactions through distributed nodes
DE102016208040A1 (de) 2016-05-10 2017-11-16 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
DE102016208038A1 (de) 2016-05-10 2017-11-16 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
US10396991B2 (en) * 2016-06-30 2019-08-27 Microsoft Technology Licensing, Llc Controlling verification of key-value stores
US10158616B1 (en) 2016-07-20 2018-12-18 Google Llc Methods and systems for online access credential transition
US10116440B1 (en) 2016-08-09 2018-10-30 Amazon Technologies, Inc. Cryptographic key management for imported cryptographic keys
SG10201609247YA (en) * 2016-11-04 2018-06-28 Huawei Int Pte Ltd System and method for configuring a wireless device for wireless network access
DE102016222170A1 (de) 2016-11-11 2018-05-17 Bundesdruckerei Gmbh Verfahren zum Lesen von Attributen aus einem ID-Token
WO2018098686A1 (zh) * 2016-11-30 2018-06-07 深圳前海达闼云端智能科技有限公司 安全验证方法、装置、终端设备及服务器
EP3340149A1 (en) * 2016-12-22 2018-06-27 Mastercard International Incorporated Methods and systems for validating an interaction
US10250576B2 (en) 2017-02-08 2019-04-02 International Business Machines Corporation Communication of messages over networks
CN106888097B (zh) * 2017-03-30 2020-08-11 北卡科技有限公司 一种hce模式下基于零知识证明的身份认证方法
CN107248997B (zh) * 2017-07-03 2020-04-14 暨南大学 多服务器环境下基于智能卡的认证方法
US10924278B2 (en) * 2017-07-13 2021-02-16 Qwyit, Llc Method and apparatus for authentication and encryption service employing unbreakable encryption
BR112020007781A2 (pt) * 2017-10-19 2020-10-20 Autnhive Corporation sistema e método para gerar e depositar chaves para autenticação multiponto
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
KR101936955B1 (ko) * 2018-06-28 2019-04-09 펜타시큐리티시스템주식회사 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법
US11068893B2 (en) 2018-07-20 2021-07-20 Ford Global Technologies, Llc Decentralized cloud-based authentication for vehicles and associated transactions
US10576934B2 (en) 2018-07-20 2020-03-03 Ford Global Technologies, Llc Decentralized cloud-based authentication for autonomous vehicles
EP3834359A4 (en) * 2018-08-09 2022-06-08 HRL Laboratories, LLC ANONYMOUS ATTRIBUTION AND MAJOR VOTING IN A DISADVANTAGED ENVIRONMENT
US11184162B1 (en) * 2018-09-28 2021-11-23 NortonLifeLock Inc. Privacy preserving secure task automation
US11089008B2 (en) 2018-11-20 2021-08-10 HCL Technologies Italy S.p.A. System and method for facilitating pre authentication of user[s] intended to access data resources
US11127002B2 (en) * 2018-11-27 2021-09-21 Advanced New Technologies Co., Ltd. System and method for information protection
US11616774B2 (en) * 2019-01-17 2023-03-28 Blackberry Limited Methods and systems for detecting unauthorized access by sending a request to one or more peer contacts
AU2020217563A1 (en) * 2019-02-05 2021-09-30 Ethopass, Llc Security system and related methods
US11190336B2 (en) * 2019-05-10 2021-11-30 Sap Se Privacy-preserving benchmarking with interval statistics reducing leakage
CN111144885B (zh) * 2019-12-13 2023-06-06 杜晓楠 一种数字资产托管方法和系统
US11463467B2 (en) 2020-01-09 2022-10-04 Kyndryl, Inc. Advanced risk evaluation for servers
CN111277571A (zh) * 2020-01-13 2020-06-12 熊国华 一种基于零知识证明的企业app登录管理系统
US11146558B2 (en) 2020-03-11 2021-10-12 International Business Machines Corporation Stateless multi-party authorization system in web applications
US11425107B2 (en) 2020-09-09 2022-08-23 Springcoin, Inc. Method and apparatus for third-party managed data transference and corroboration via tokenization
EP4226573A1 (en) * 2020-10-05 2023-08-16 Redcom Laboratories, Inc. Zkmfa: zero-knowledge based multi-factor authentication system
CN112257119B (zh) * 2020-10-20 2022-10-28 河北素数信息安全有限公司 一种身份认证方法及用于保证加密装置安全的保护方法
CN113852461B (zh) * 2021-09-26 2024-02-02 深圳万兴软件有限公司 一种密码恢复方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544322A (en) 1994-05-09 1996-08-06 International Business Machines Corporation System and method for policy-based inter-realm authentication within a distributed processing system
US5832211A (en) 1995-11-13 1998-11-03 International Business Machines Corporation Propagating plain-text passwords from a main registry to a plurality of foreign registries
GB2329096A (en) 1997-08-29 1999-03-10 Ncipher Limited Creating sub-keys from hashed cryptographic master key

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535276A (en) * 1994-11-09 1996-07-09 Bell Atlantic Network Services, Inc. Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography
US5557346A (en) * 1994-08-11 1996-09-17 Trusted Information Systems, Inc. System and method for key escrow encryption
US5717756A (en) * 1995-10-12 1998-02-10 International Business Machines Corporation System and method for providing masquerade protection in a computer network using hardware and timestamp-specific single use keys
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
JP3656688B2 (ja) * 1997-03-31 2005-06-08 栄司 岡本 暗号データ回復方法及び鍵登録システム
KR20010013155A (ko) * 1997-05-28 2001-02-26 아담 루카스 영 자동 복구가능하고 자동 증명가능한 암호체계들
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US6161185A (en) * 1998-03-06 2000-12-12 Mci Communications Corporation Personal authentication system and method for multiple computer platform
US6311276B1 (en) * 1998-08-25 2001-10-30 3Com Corporation Secure system for remote management and wake-up commands
US6510513B1 (en) * 1999-01-13 2003-01-21 Microsoft Corporation Security services and policy enforcement for electronic data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544322A (en) 1994-05-09 1996-08-06 International Business Machines Corporation System and method for policy-based inter-realm authentication within a distributed processing system
US5832211A (en) 1995-11-13 1998-11-03 International Business Machines Corporation Propagating plain-text passwords from a main registry to a plurality of foreign registries
GB2329096A (en) 1997-08-29 1999-03-10 Ncipher Limited Creating sub-keys from hashed cryptographic master key

Also Published As

Publication number Publication date
WO2001095545A3 (en) 2002-07-04
CN1446331A (zh) 2003-10-01
US7139917B2 (en) 2006-11-21
JP2003536320A (ja) 2003-12-02
JP4833489B2 (ja) 2011-12-07
CN1249972C (zh) 2006-04-05
WO2001095545A2 (en) 2001-12-13
KR20030010667A (ko) 2003-02-05
TWI233739B (en) 2005-06-01
AU6816101A (en) 2001-12-17
US20020067832A1 (en) 2002-06-06

Similar Documents

Publication Publication Date Title
KR100769482B1 (ko) 다중 서버를 사용하는 원격 패스워드 인증을 위한 시스템, 방법 및 소프트웨어
Jablon Password authentication using multiple servers
Lin et al. Three-party encrypted key exchange: attacks and a solution
CA2335172C (en) Secure mutual network authentication and key exchange protocol
EP1197032B1 (en) Server-assisted regeneration of a strong secret from a weak secret
US7359507B2 (en) Server-assisted regeneration of a strong secret from a weak secret
US6883095B2 (en) System and method for password throttling
US6940980B2 (en) High security cryptosystem
US20070033642A1 (en) Protecting one-time-passwords against man-in-the-middle attacks
US20050027989A1 (en) One time password entry to access multiple network sites
WO2002051050A9 (en) A secure communications network with user control of authenticated personal information provided to network entities
Chakrabarti et al. Password-based authentication: Preventing dictionary attacks
Wang et al. Secure password-based remote user authentication scheme against smart card security breach
Pathak et al. Secure authentication using zero knowledge proof
Sun et al. Password-based authentication and key distribution protocols with perfect forward secrecy
İşler et al. Distributed single password protocol framework
Mannan et al. A protocol for secure public instant messaging
Hölbl et al. Improvement of the Peyravian–Jeffries’s user authentication protocol and password change protocol
WO2006078561A2 (en) Technique for asymmetric crypto-key generation
Koganti et al. Authentication protocols using encryption techniques
Boyd et al. A Tutorial Introduction to Authentication and Key Establishment
Jung et al. Secure password authentication for distributed computing
Mannan et al. A protocol for secure public Instant Messaging (extended version)
Harkut et al. A review on single sign-on mechanism for distributed computing
Tan Analysis and Improvement of a User Authentication Improved Protocol

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120924

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131008

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141007

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151006

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee