KR20170131467A - 가속화된 패스프레이즈 검증 - Google Patents

가속화된 패스프레이즈 검증 Download PDF

Info

Publication number
KR20170131467A
KR20170131467A KR1020177027347A KR20177027347A KR20170131467A KR 20170131467 A KR20170131467 A KR 20170131467A KR 1020177027347 A KR1020177027347 A KR 1020177027347A KR 20177027347 A KR20177027347 A KR 20177027347A KR 20170131467 A KR20170131467 A KR 20170131467A
Authority
KR
South Korea
Prior art keywords
substring
user
value
security string
entire security
Prior art date
Application number
KR1020177027347A
Other languages
English (en)
Other versions
KR101977672B1 (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 KR20170131467A publication Critical patent/KR20170131467A/ko
Application granted granted Critical
Publication of KR101977672B1 publication Critical patent/KR101977672B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

가속화된 패스프레이즈 검증을 제공하기 위한 시스템들 및 방법들이 개시된다. 일 실시예에서, 방법은 전체 보안 스트링을 수신하는 단계, 전체 보안 스트링 해시 코드를 생성하는 단계, 전체 보안 스트링 해시 코드를 메모리에 저장하는 단계, 전체 보안 스트링의 하나 또는 그 초과의 선두 문자들과 연관된 엔트로피 값에 기초하여 적어도 하나의 서브스트링을 결정하는 단계, 대응하는 문자 카운트 값이 적어도 하나의 서브스트링의 문자들의 수와 동일하도록, 적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 생성하는 단계, 및 적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 메모리에 저장하는 단계를 포함한다.

Description

가속화된 패스프레이즈 검증
[0001] 서비스 제공자들 및 소비자들에 의해, 고품질의 디지털 인코딩된 콘텐츠(예를 들어, 데이터, 음성 및 비디오)를 고정식 디바이스 및 모바일 디바이스 둘 모두에 분배하고자 하는 요구가 있다. 콘텐츠에 대한 액세스는 종종 제한되며 사용자들은 보안 자격증명(credential)들을 제공하도록 요구될 수 있다. 패스워드들, 패스프레이즈들, 패턴 검증, 제스처들 및 다른 사용자 입력과 같은 자격증명들이, 보안에 중요한 사용 케이스들에서 사용될 수 있다. 자격증명은 문자들, 단어들, 숫자들, 기호들, 제스처들 또는 다른 사용자 입력으로 구성된 스트링들과 같은 여러 문자들로 구성될 수 있다. 일반적으로, 문자가 더 많은 자격증명이 짧은 패스워드보다 더 안전하다.
[0002] 컴퓨터 네트워크 내에서 보안을 증가시키기 위한 노력으로, 컴퓨터 운영 시스템은 최대 256개의 문자들의 패스프레이즈들을 지원할 수 있다. 그러나 종종, 사용자가 긴 패스프레이즈를 키잉(key)하는 것이 편리하지 않을 수 있는데, 작은 터치 스크린을 갖는 모바일 디바이스가 사용되고 있는 경우에 특히 그러하다. 긴 패스프레이즈들은 별개의, 그리고 통상적으로 더 짧은 패스워드로 대체될 수 있다. 그러나 더 짧은 패스워드는 다른 문제들을 가질 수 있다. 예를 들어, 쉬운 패스워드들은 약한 반면 강한 패스워드들은 기억하기 어렵다. 또한, 특정 클라이언트 측의 애플리케이션은, 패스프레이즈가 시행되는 동일한 서버와 토킹(talk)하기 위해서 PC 버전 및 휴대폰 버전을 둘 모두를 구비할 수 있다. PC 버전에서 패스프레이즈가 시행되는 경우, 더 짧은 패스워드의 사용을 통해 모바일 버전의 요건들을 완화시키는 것은 종종 어렵다.
[0003] 본 개시내용에 따른, 컴퓨팅 디바이스에서 사용자의 보안 자격증명들을 검증하기 위한 예시적인 방법은, 전체 보안 스트링이 첫 번째 문자로 시작하도록, 사용자ID 값 및 전체 보안 스트링을 포함하는 사용자 계정을 서버 상에서 생성하는 단계, 및 서브스트링이 첫 번째 문자로 시작하는 전체 보안 스트링의 연속 문자들의 서브셋을 포함하도록, 사용자ID 값 및 서브스트링을 제공함으로써 사용자 계정에 액세스하는 단계를 포함한다.
[0004] 본 개시내용에 따른, 클라이언트로부터 수신된 액세스 요청을 검증하기 위한 예시적인 방법은, 액세스 요청이 사용자 식별을 포함하도록, 클라이언트로부터 액세스 요청을 수신하는 단계, 사용자 식별에 적어도 부분적으로 기초하여 문자 카운트 값을 결정하는 단계, 문자 카운트 값을 클라이언트에 제공하는 단계, 서브스트링의 길이가 문자 카운트 값에 대응하도록, 클라이언트로부터 서브스트링을 수신하는 단계, 서브스트링을 검증하는 단계, 서브스트링이 유효한 경우 액세스 요청을 승인하는 단계, 및 서브스트링이 유효하지 않은 경우 액세스 요청을 거부하는 단계를 포함한다.
[0005] 이러한 방법의 구현들은 다음 특징들: 콘텍스트 정보를 수신하는 것, 및 사용자 식별 및 콘텍스트 정보에 적어도 부분적으로 기초하여 문자 카운트 값을 결정하는 것 중 하나 또는 그 초과의 것을 포함할 수 있다. 콘텍스트 정보는 클라이언트의 현재 위치를 포함할 수 있다. 콘텍스트 정보는 액세스 요청이 수신되는 시간을 포함할 수 있다. 서브스트링을 검증하는 것은 서브스트링에 대한 서브스트링 해시 코드를 결정하는 것을 포함할 수 있다. 솔트 값이 사용자 식별에 적어도 부분적으로 기초하여 결정될 수 있고, 서브스트링 및 솔트 값의 결합에 대해 서브스트링 해시 코드가 결정되도록, 서브스트링이 솔트 값과 결합될 수 있다. 액세스 제어 데이터베이스가 사용자 식별, 해시 코드들 및 문자 카운트 값들을 포함하는 데이터 구조이도록, 문자 카운트 값을 결정하는 것은 액세스 제어 데이터베이스에 질의하기 위해 사용자 식별을 이용하는 것을 포함할 수 있다.
[0006] 본 개시내용에 따른 예시적인 장치는 메모리, 메모리에 동작가능하게 결합된 적어도 하나의 프로세서를 포함하며, 적어도 하나의 프로세서는, 전체 보안 스트링을 수신하고, 전체 보안 스트링 해시 코드를 생성하고, 전체 보안 스트링 해시 코드를 메모리에 저장하고, 전체 보안 스트링의 하나 또는 그 초과의 선두 문자들과 연관되는 엔트로피 값에 기초하여 적어도 하나의 서브스트링을 결정하고, 적어도 하나의 대응하는 문자 카운트 값이 적어도 하나의 서브스트링의 문자들의 수와 동일하도록, 적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 생성하고, 그리고 적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 메모리에 저장하도록 구성된다.
[0007] 이러한 장치의 구현들은 다음 특징들 중 하나 또는 그 초과의 것을 포함할 수 있다. 제 1 솔트 값이 생성되고 전체 보안 스트링 해시 코드를 생성하기 위해 전체 보안 스트링과 결합될 수 있다. 제 2 솔트 값이 생성되고, 서브스트링 해시 코드를 생성하기 위해 서브스트링과 결합될 수 있다. 전체 보안 스트링은 제스처 입력들에 대응하는 영구 데이터일 수 있다. 전체 보안 해시 코드를 생성하는 것은 전체 보안 스트링에 대해 암호 해시를 수행하는 것을 포함할 수 있다. 적어도 하나의 서브스트링 해시 코드를 생성하는 것은 적어도 하나의 서브스트링에 대해 암호 해시를 수행하는 것을 포함할 수 있다. 서브스트링에 대한 엔트로피 값이 적어도 강한 레벨의 복잡도 레벨로서 평가된다.
[0008] 본 개시내용에 따른 장치의 일 예는 메모리, 메모리에 동작가능하게 결합된 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 전체 보안 스트링이 첫 번째 문자로 시작하도록, 사용자ID 값 및 전체 보안 스트링을 포함하는 사용자 계정을 서버 상에서 생성하고, 사용자ID 값 및 서브스트링을 제공함으로써 사용자 계정에 액세스하도록 구성되며, 서브스트링은 첫 번째 문자로 시작하는 전체 보안 스트링의 연속 문자들의 서브셋을 포함한다.
[0009] 이러한 장치의 구현들은 다음 특징들 중 하나 또는 그 초과의 것을 포함할 수 있다. 문자 카운트 값이, 사용자ID 값을 제공한 후 서버로부터 수신될 수 있다. 장치에 대한 콘텍스트 정보가 결정될 수 있으며, 사용자 계정은 콘텍스트 정보, 사용자ID 값, 및 서브스트링을 제공함으로써 액세스될 수 있다. 사용자ID 값 및 콘텍스트 정보의 제공 이후, 문자 카운트 값이 서버로부터 수신될 수 있다. 콘텍스트 정보는 장치의 현재 위치 및/또는 현재 시간을 포함할 수 있다.
[0010] 본원에 설명된 항목 및/또는 기술들은, 다음 능력들뿐만 아니라 언급되지 않은 다른 능력들 중 하나 또는 그 초과의 것을 제공할 수 있다. 사용자 계정이 시스템 상에 생성된다. 시스템은 로컬 디바이스 또는 네트워크의 일부일 수 있다. 사용자 계정은 사용자 식별 정보(예를 들어, 사용자ID) 및 전체 보안 스트링을 포함한다. 전체 보안 스트링은 문자들, 제스처들, 패턴 검증, 또는 다른 사용자 입력을 포함할 수 있다. 전체 보안 스트링에 대응하는 해시 코드가 저장된다. 솔트 값이, 해시 함수의 입력을 형성하기 위해서 보안 스트링과 함께 사용될 수 있다. 전체 보안 스트링의 복잡도 스코어(예컨대, 강도 값)가 결정된다. 기성(Off-the-shelf) 알고리즘이 스트링의 복잡도(즉, 강도)를 평가하는데 사용될 수 있다. 예를 들어, 강도 측정은 스트링의 엔트로피에 기초할 수 있다. 전체 보안 스트링의 처음 'x'개의 문자들로 이루어진 서브스트링이 결정된다. 서브스트링의 강도가 평가된다. 'x'의 값은 서브스트링의 대응하는 복잡도(즉, 강도)에 기초하여 가변적이다. 서브스트링 (및 선택적 솔트 값)에 대응하는 해시 코드가 저장된다. 다수의 서브스트링들이 평가될 수 있고 그들의 대응하는 해시 코드들이 저장될 수 있다. 사용자의 자격증명들은 서브스트링에 기초하여 검증된다. 즉, 사용자 검증은, 전체 보안 스트링의 처음 'x'개의 문자들만으로 성취된다. 사용자와 연관된 콘텍스트가 결정될 수 있다. 콘텍스트는 현재 위치, 주변 노이즈, 거동 데이터 및/또는 이력 데이터에 기초할 수 있다. 서브스트링이 콘텍스트에 기초하여 결정될 수 있다. 시스템 보안 정책은, 검증이 전체 보안 스트링의 입력 또는 서브스트링의 입력을 요구하는 경우를 확립될 수 있다. 다른 능력들이 제공될 수 있고, 본 개시내용에 따른 모든 각각의 구현이, 논의된 능력들 모두를 제공하는 것이 아니라 임의의 특정 능력을 제공하는 것이 틀림없다. 또한, 위에서 언급된 효과가 언급된 것 이외의 수단에 의해 달성되는 것이 가능할 수 있고 언급되는 항목/기술이 반드시 언급된 효과를 나타내는 것은 아닐 수 있다.
[0011] 도 1은 모바일 디바이스의 일 실시예의 컴포넌트들의 블록도이다.
[0012] 도 2는 예시적인 네트워크 시스템의 블록도이다.
[0013] 도 3은 컴퓨터 시스템의 예의 블록도이다.
[0014] 도 4는 모바일 디바이스 상에서 보안 자격증명들을 제공하는 사용자의 예시이다.
[0015] 도 5a는 전체 보안 스트링 및 대응하는 서브스트링들을 포함하는 테이블이다.
[0016] 도 5b는 선택적인 솔트 값들을 가진 스트링들의 콜렉션이다.
[0017] 도 6은 예시적인 클라이언트-서버 메시지 흐름의 흐름도이다.
[0018] 도 7은 가속화된 패스프레이즈 검증과 함께 사용하기 위한 데이터 구조의 예이다.
[0019] 도 8은 서브스트링 해시 코드를 생성하는 프로세스의 블록 흐름도이다.
[0020] 도 9는 서버에서의 가속화된 패스프레이즈 검증을 위한 프로세스의 블록 흐름도이다.
[0021] 도 10은 클라이언트에서의 가속화된 패스프레이즈 검증을 위한 프로세스의 블록 흐름도이다.
[0022] 사용자 검증 프로세스를 가속화하기 위한 기술들이 논의된다. 사용자는 긴 보안 자격증명(예를 들어, 스트링, 패스워드, 패스프레이즈)을 네트워크 서버에 제공할 수 있다. 보안 자격증명의 처음 'x'개의 문자들의 강도가 평가될 수 있다. 예를 들어, 긴 보안 자격증명의 처음 6 내지 8개의 문자들은 수용가능한 자격증명으로서 역할을 하기에 충분한 엔트로피를 가질 수 있다. 자격증명은 실제로 6 내지 8개의 문자들만으로도 충분히 강력하기 때문에, 사용자 경험을 개선하기 위해서, 긴 보안 자격증명의 후속 문자들이 스킵될 수 있다(즉, 사용자가 추가 문자들을 입력하지 않을 것이다). 가속화된 자격증명 검증을 활용하는 시스템은, 충분한 강도(즉, 엔트로피)가 획득될 때까지 처음 'x'개의 문자들로 입력 자격증명의 강도를 평가할 수 있다. 시스템은 처음 'x'개의 문자들의 제 1 해시뿐만 아니라 전체 긴 보안 자격증명의 해시를 저장할 수 있으며, 패스워드 검증은, 특정 보안 정책에 기초한 전체 긴 보안 자격증명 또는 처음 'x'개의 문자들만으로도 성취될 수 있다. 보안 정책은 디폴트 셋팅, 셋업 중 사용자 선택, 위치/거동의 실시간 모니터링, 또는 다른 콘텍스트일 수 있다. 동작 시, 사용자는 원래 자격증명(예를 들어, 패스프레이즈)만 기억할 필요가 있다. 'x'의 값(즉, 충분한 엔트로피를 획득하기 위해 입력될 문자들의 수)는 사용자에 의해 알려지지 않았을 수 있다. 즉, 소프트웨어는 자격증명 셋업 동안 값 'x'를 결정할 수 있다. 'x'의 값은 (예를 들어, 공공 또는 개인 영역에서) 콘텍스트에 기초하여 변할 수 있다. 값 'x'는 다수의 해시들과 함께 저장될 수 있다. 예를 들어, 제 1 해시(즉, 처음 'x'개의 문자들의 경우) 및 제 2 해시(즉, 전체 긴 자격증명의 경우) 둘 모두가 동일한 사용자ID에 대해 저장된다. 'x'는 적어도, 수용가능한 엔트로피 레벨을 허용해야 할 것이 요구된다. 각각의 원래 보안 스트링은 엔트로피 평가에 따라 'x'의 자신의 특정 값을 가질 수 있다. 해시는 딕셔너리 공격(dictionary attack)들을 좌절시키기 위해서 내부적으로 솔팅 메커니즘들을 포함할 수 있는데, 즉, 해시(패스프레이즈)=SHA-256(솔트∥패스프레이즈)이며, 여기서 "∥"는 스트링 연접을 나타낸다. 처음 'x'개의 문자의 검증 시, UI(User Interface)는 후속 사용자 입력 콜렉션을 스킵하고 검증 성공에 대해 사용자에게 통지할 수 있다.
[0023] 도 1을 참조하면, 본원의 다양한 기술들이 활용될 수 있는 모바일 디바이스(100)가 도시된다. 모바일 디바이스(100)는 다양한 모바일 통신 및/또는 컴퓨팅 디바이스들의 기능을 포함하거나 또는 구현할 수 있으며; 예를 들어, 현재 존재하든지 아니면 미래에 개발되든지 간에, PDA(personal digital assistant)들, 스마트폰들, 컴퓨팅 디바이스들, 이를 테면, 랩톱들, 데스크톱들 또는 테블릿 컴퓨터들, 자동차 컴퓨팅 시스템들 등을 포함(그러나 이것으로 제한되지 않음)할 수 있다.
[0024] 모바일 디바이스(100)는 프로세서(111)(또는 프로세서 코어) 및 메모리(140)를 포함한다. 모바일 디바이스는 선택적으로, 공공 버스(101) 또는 개인 버스(미도시)에 의해 메모리(140)에 동작가능하게 연결된 트러스티드 환경(160)을 포함할 수 있다. 트러스티드 환경(160)은 프로세서(111)로 통합될 수 있는 ARM TrustZone® 기술과 같은 TEE(Trusted Execution Environment)를 포함할 수 있다. 모바일 디바이스(100)는 또한, 무선 안테나(122)를 통해 무선 네트워크를 거쳐 무선 신호들(123)을 전송 및 수신하도록 구성되는 통신 인터페이스(120) 및 무선 트랜시버(121)를 포함할 수 있다. 무선 트랜시버(121)는 버스(101)에 연결된다. 여기서, 모바일 디바이스(100)는 단일 무선 트랜시버(121)를 갖는 것으로 도시된다. 그러나, 모바일 디바이스(100)는 대안으로, 다수의 통신 표준들, 이를 테면, Wi-Fi, CDMA, WCDMA(Wideband CDMA), LTE(Long Term Evolution), BLUETOOTH 단거리 무선 통신 기술 등을 지원하기 위해 다수의 무선 트랜시버들(121) 및 무선 안테나들(122)을 구비할 수 있다.
[0025] 통신 인터페이스(120) 및/또는 무선 트랜시버(121)는 다수의 반송파들(상이한 주파수들의 파형 신호들) 상에서의 동작을 지원할 수 있다. 멀티-반송파 송신기들은 변조된 신호들을 다수의 반송파들 상에서 동시에 송신할 수 있다. 각각의 변조된 신호는 CDMA(Code Division Multiple Access) 신호, TDMA(Time Division Multiple Access) 신호, OFDMA(Orthogonal Frequency Division Multiple Access) 신호, SC-FDMA(Single-Carrier Frequency Division Multiple Access) 신호 등일 수 있다. 각각의 변조된 신호는 상이한 반송파 상에서 전송될 수 있고 파일롯, 오버헤드 정보, 데이터 등을 전달할 수 있다.
[0026] 모바일 디바이스(100)는 또한 SPS 안테나(158)를 통해 (예를 들어, SPS 위성들로부터) SPS(satellite positioning system) 신호들(159)을 수신하는 SPS 수신기(155) 및 사용자 인터페이스(150)(예를 들어, 디스플레이, GUI)를 포함한다. SPS 수신기(155)는 단일 GNSS(global navigation satellite system) 또는 다수의 이러한 시스템들과 통신할 수 있다. GNSS는, GPS(Global Positioning System), 갈릴레오(Galileo), 글로나스(Glonass), 베이두(Beidou)(콤파스(Compass)) 등을 포함할 수 있지만, 이것으로 한정되지 않는다. SPS 위성들은 또한, 위성들, 우주선들(SV들) 등으로도 지칭된다. SPS 수신기(155)는, 전체적으로 또는 부분적으로 SPS 신호들(159)을 프로세싱하고, 이들 SPS 신호들(159)을 사용하여 모바일 디바이스(100)의 위치를 결정한다. 프로세서(111), 메모리(140), DSP(112) 및/또는 특수화된 프로세서(들)(미도시)이 또한, SPS 수신기(155)와 함께, SPS 신호들(159)을 전체적으로 또는 부분적으로 프로세싱하고 그리고/또는 모바일 디바이스(100)의 위치를 계산하기 위해 활용될 수 있다. SPS 신호들(159) 또는 다른 위치 신호들로부터의 정보 저장은 메모리(140) 또는 레지스터들(미도시)을 사용하여 수행된다. 단지 하나의 프로세서(111), 하나의 DSP(112) 및 하나의 메모리(140)가 도 1에 도시되어 있지만, 이들 컴포넌트들 중 임의의 것, 한 쌍 또는 전부 중 2 이상이 모바일 디바이스(100)에 의해 사용될 수 있다. 모바일 디바이스(100)와 연관된 프로세서(111) 및 DSP(112)가 버스(101)에 연결된다.
[0027] 메모리(140)는, 하나 또는 그 초과의 명령들 또는 코드로서의 기능들을 저장하는 비일시적 컴퓨터-판독가능 저장 매체(또는 매체들)를 포함할 수 있다. 메모리(140)를 구성할 수 있는 매체들은, RAM, ROM, FLASH, 디스크 드라이브들 등을 포함(그러나 이것으로 제한되지 않음)한다. 메모리는 운영 시스템(141), 애플리케이션들(142), 데이터 파일들(143) 및 인증 모듈(144)을 위한 코드를 포함할 수 있다. 일반적으로, 메모리(140)에 의해 저장된 기능들은 범용 프로세서(들)(111), 특수 프로세서들, 또는 DSP(들)(112)에 의해 실행된다. 따라서, 메모리(140)는, 프로세서(들)(111) 및/또는 DSP(들)(112)로 하여금 설명된 기능들을 수행하게 하도록 구성되는 소프트웨어(프로그래밍 코드, 명령들 등)를 저장하는 프로세서 판독가능 메모리 및/또는 컴퓨터 판독가능 메모리이다. 대안으로, 모바일 디바이스(100)의 하나 또는 그 초과의 기능들은 하드웨어에서 전체적으로 또는 부분적으로 수행될 수 있다.
[0028] 모바일 디바이스(100)는, 모바일 디바이스(100)에 대해 이용가능한 뷰 및/또는 정보 내부의 다른 통신 엔티티들에 기초하여, 다양한 기술들을 사용하여 연관된 시스템 내의 그의 현재 포지션을 추정할 수 있다. 예를 들어, 모바일 디바이스(100)는, 하나 또는 그 초과의 무선 LAN(wireless local area network)들, BLUETOOTH 또는 ZIGBEE® 등과 같은 단거리 무선 통신 기술을 활용하는 PAN(personal area network)들, SPS 위성들과 연관되는 AP(access point)들로부터 획득되는 정보 및/또는 맵 서버 또는 LCI 서버로부터 획득된 맵 제약 데이터를 사용하여 그의 포지션을 추정할 수 있다.
[0029] 다음으로 도 2를 참조하면, 예시적인 네트워크 컴퓨터 시스템(200)의 블록도가 도시된다. 네트워크 컴퓨터 시스템(200)은 모바일 디바이스(100) 및 개인용 컴퓨터(208)와 같은 다수의 데이터 프로세싱 디바이스들을 포함한다. 데이터 프로세싱 디바이스들은 사용자 자격증명들을 수신할 수 있는 임의의 적절한 전자 디바이스(예를 들어, 노트북 컴퓨터, 태블릿 컴퓨터, 넷북, 모바일 폰, 게이밍 콘솔, ATM(Automatic Teller Machine), 키오스크, PDA(personal digital assistant) 등…)일 수 있다. 네트워크 컴퓨터 시스템(200)은 또한, 데이터 프로세싱 디바이스들과 통신하고 하나 또는 그 초과의 네트워크들(210)과의 연결을 가능하게 하도록 구성된 하나 또는 그 초과의 액세스 포인트들(212) 및/또는 기지국들(214)을 포함할 수 있다. 예를 들어, 네트워크(210)는 WAN(Wide Area Network) 및/또는 WLAN(Wireless Local Area Network)일 수 있고, 인터넷에 대한 연결을 더 포함할 수 있다. 액세스 포인트(212)는, 진보된 WLAN 액세스 포인트일 수 있고, 기지국(214)은 전자 스위칭 기능을 포함할 수 있으며, MGW(Media Gateway) 또는 GMSC(Gateway Media Switching Center Server)로서 구성될 수 있다.
[0030] 네트워크(210)는 하나 또는 그 초과의 서버들(202)에 대한 연결을 제공할 수 있다. 서버(202)는 프로세서 및 메모리를 포함하는 데이터 프로세싱 디바이스이며, 컴퓨터 실행 가능 명령들을 실행하도록 구성된다. 예를 들어, 서버(202)는 프로세서, 비일시적 메모리, 디스크 드라이브들, 디스플레이, 키보드, 마우스를 포함하는 컴퓨터 시스템을 포함할 수 있다. 프로세서는 바람직하게는, 지능형 디바이스, 예를 들어, Intel® 코포레이션, 또는 AMD®에 의해 제조된 것들과 같은 퍼스널 컴퓨터 CPU(central processing unit), 마이크로제어기, ASIC(application specific integrated circuit) 등이다. 메모리는 RAM(random access memory) 및 ROM(read-only memory)을 포함한다. 디스크 드라이브들은 하드-디스크 드라이브, CD-ROM 드라이브, 및/또는 zip 드라이브를 포함하며, 다른 형태들의 드라이브들을 포함할 수 있다. 다른 형태의 디스플레이들, 예를 들어, CRT(cathode-ray tube)가 수용가능하지만, 디스플레이는 LCD(liquid-crystal display)(예를 들어, TFT(thin-film transistor) 디스플레이)이다. 키보드 및 마우스는 사용자에게 데이터 입력 메커니즘들을 제공한다. 서버(202)는, 본원에 설명된 기능들을 수행하도록 프로세서를 제어하기 위한 명령들을 포함하는 프로세서 판독가능, 프로세서-실행가능 소프트웨어 코드를 (예를 들어, 메모리에) 저장할 수 있다. 이 기능들은, 하나 또는 그 초과의 데이터 프로세싱 디바이스들에서 가속화된 자격증명 검증을 지원한다. 기능들은, 예를 들어, 보안 스트링들을 수신하는 것, 보안 스트링들 및 대응하는 서브스트링들의 강도를 결정하는 것, 보안 의사 난수(secure pseudo-random number)들을 암호로 생성하는 것, 암호 함수들(예를 들어, 해시 코드들)을 생성하고 및 저장하는 것, 문자 카운트 정보를 결정하는 것, 사용자 콘텍스트 데이터를 평가하는 것, 및 데이터 액세스 요청들을 검증하는 것을 포함할 수 있다. 소프트웨어는 네트워크 연결을 통해 다운로드되거나 디스크로부터 업로드되는 식에 의해 메모리 상으로 로딩될 수 있다. 또한, 소프트웨어는 예를 들어, 실행 전에 컴파일링하는 것을 요구하여 직접 실행가능하지 않을 수 있다. 서버(202)는 보안 자격증명 정보를 저장하기 위한 액세스 제어 데이터베이스(204)(예를 들어, 데이터 구조, 관계형 데이터베이스, 플랫 파일들)를 포함할 수 있다. 서버(202)는 또한, 사용자에게 제공될 수 있는 디지털식으로 인코딩된 콘텐츠(예를 들어, 데이터, 음성 및 비디오)를 포함하는 콘텐츠 데이터베이스(206)를 포함할 수 있다. 서버(202), 액세스 제어 데이터베이스(204), 및 콘텐츠 데이터베이스(206)의 구성은 단지 예시적인 것이며, 이것으로 제한되지 않는다. 2 이상의 서버 및 데이터베이스가 사용될 수 있다.
[0031] 도 3에 도시된 바와 같은 컴퓨터 시스템(300)은 서버(202)의 기능을 적어도 부분적으로 구현하는데 활용될 수 있다. 도 3은, 본원에 설명된 바와 같이 다양한 다른 실시예들에 의해 제공되는 방법들을 수행할 수 있고 그리고/또는 모바일 디바이스 또는 다른 컴퓨터 시스템으로서 기능할 수 있는 컴퓨터 시스템(300)의 일 실시예의 개략도를 제공한다. 도 3은 다양한 컴포넌트들의 일반화된 예시를 제공하며, 그 중 임의의 것 또는 전부는 적절하게 활용될 수 있다. 따라서, 도 3은, 개별 시스템 엘리먼트들이 상대적으로 분리되거나 또는 상대적으로 더 많은 통합된 방식으로 구현될 수 있는 방법을 광범위하게 도시한다.
[0032] 버스(305)를 통해 전기적으로 결합될 수 있는 (또는 적절히 다른 방식으로 통신할 수 있는) 하드웨어 엘리먼트들을 포함하는 컴퓨터 시스템(300)이 도시된다. 하드웨어 엘리먼트들은, 하나 또는 그 초과의 범용 프로세서들 및/또는 하나 또는 그 초과의 특수 목적 프로세서들(이를 테면, 디지털 신호 프로세싱 칩들, 그래픽스 가속 프로세서들 등)을 포함하는(이것으로 제한되지 않음) 하나 또는 그 초과의 프로세서들(310); 마우스, 키보드 등을 포함할 수 있는(이것으로 제한되지 않음) 하나 또는 그 초과의 입력 디바이스들(315); 및 디스플레이 디바이스, 프린터 등을 포함할 수 있는(이것으로 제한되지 않음) 하나 또는 그 초과의 출력 디바이스들(320)을 포함할 수 있다. 프로세서(들)(310)는 예를 들어, 지능형 하드웨어 디바이스들, 예를 들어, CPU(central processing unit), 이를 테면, Intel® 코포레이션 또는 ARM®에 의해 제조된 것들과 같은 CPU(central processing unit), 마이크로제어기, ASIC(application specific integrated circuit) 등을 포함할 수 있다. 다른 프로세서 타입들도 또한 활용될 수 있다.
[0033] 컴퓨터 시스템(300)은, 로컬 및/또는 네트워크 액세스가능 저장소를 포함할 수 있고(이것으로 제한되지 않음), 그리고/또는 디스크 드라이브, 드라이브 어레이, 광학 저장 디바이스, 고체-상태 저장 디바이스, 이를 테면, 프로그램가능하고, 플래시-업데이트가능한 "RAM(random access memory)" 및/또는 "ROM(read-only memory)" 등을 포함할 수 있는(이것으로 제한하지 않음) 하나 또는 그 초과의 비일시적 저장 디바이스들(325)을 더 포함할 수 있다(그리고/또는 이와 통신할 수 있다). 이러한 저장 디바이스들은, 다양한 파일 시스템들, 데이터베이스 구조들 등(이것으로 제한되지 않음)을 비롯한 임의의 적절한 데이터 저장부들을 구현하도록 구성될 수 있다.
[0034] 컴퓨터 시스템(300)은 또한, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(이를 테면, BLUETOOTH 단거리 무선 통신 기술 트랜시버/디바이스, 802.11 디바이스, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 설비들 등) 등을 포함할 수 있는 (이것으로 제한되지 않음) 통신 서브시스템(330)을 포함할 수 있다. 통신 서브시스템(330)은, 본원에 설명된 네트워크(이를 테면, 일 예를 들자면, 아래에 설명된 네트워크), 다른 컴퓨터 시스템들, 및/또는 본원에 설명된 임의의 다른 디바이스들과의 데이터 교환을 허용할 수 있다. 많은 실시예들에서, 컴퓨터 시스템(300)은, 상술된 바와 같이, RAM 또는 ROM 디바이스를 포함할 수 있는 작업 메모리(335)를 본원에서 더 포함할 것이다.
[0035] 컴퓨터 시스템(300)은 또한 운영 시스템(340), 디바이스 드라이버, 실행가능 라이브러리들, 및/또는 다른 코드, 이를 테면, 다양한 실시예들에 의해 제공되는 컴퓨터 프로그램들을 포함할 수 있는 하나 또는 그 초과의 애플리케이션 프로그램들(345)을 포함하는 작업 메모리(335) 내에 현재 위치되는 것으로서 도시된 소프트웨어 엘리먼트들을 포함할 수 있으며 그리고/또는 본원에 설명된 바와 같이 다른 실시예들에 의해 제공되는 방법들을 구현하고 그리고/또는 시스템들을 구성하도록 설계될 수 있다. 단지 예시로서, 본원에 설명된 하나 또는 그 초과의 프로세스들은, 컴퓨터 (및/또는 컴퓨터 내의 프로세서)에 의해 실행가능한 코드 및/또는 명령들로서 구현될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 인증 모듈(322), 액세스 제어기(324), 콘텍스트 평가기(326), 및/또는 본원에 설명된 다른 기능 모듈들은, 프로세서(들)(310)를 통해 작업 메모리(335)로부터 실행되는 프로세서 실행가능 소프트웨어 코드를 통해 컴퓨터 시스템(300)을 통해 구현될 수 있다. 이러한 코드 및/또는 명령들은, 설명된 방법들에 따라 하나 또는 그 초과의 동작들을 수행하도록 범용 컴퓨터 (또는 다른 디바이스)를 구성 및/또는 적응시키는데 사용될 수 있다.
[0036] 이들 명령들 및/또는 코드의 세트는 컴퓨터 판독가능 저장 매체, 이를 테면, 상술된 저장 디바이스(들)(325) 상에 저장될 수 있다. 일부 경우들에서, 저장 매체는, 컴퓨터 시스템, 이를 테면, 컴퓨터 시스템(300) 내에 통합될 수 있다. 다른 실시예들에서, 저장 매체는 컴퓨터 시스템(예를 들어, 콤팩트 디스크와 같은 착탈식 매체)으로부터 분리되고 그리고/또는 설치 패키지로 제공될 수 있으므로, 저장 매체는, 저장되어 있는 명령들/코드를 이용하여 범용 컴퓨터를 프로그래밍, 구성 그리고/또는 적응시키기 위해 사용될 수 있다. 이들 명령들은, 컴퓨터 시스템(300)에 의해 실행가능한 실행가능 코드의 형태를 취할 수 있고 그리고/또는 소스 및/또는 인스톨가능 코드의 형태를 취할 수 있고, 이 코드는 이후, (예를 들어, 다양한 일반적으로 이용가능한 컴파일러들, 인스톨레이션 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 이용하여) 컴퓨터 시스템(300) 상에서의 컴파일레이션 및/또는 인스톨레이션 시 실행가능한 코드의 형태를 취할 수 있다.
[0037] 도 4를 참조하면, 모바일 디바이스 상에서 보안 자격증명들을 제공하는 사용자의 예시가 도시된다. 모바일 디바이스(100)는, 데이터 엔트리 디바이스로서 프로그램가능한 키보드(152) 및 시각적 피드백 메커니즘으로서의 텍스트 박스 오브젝트(153)를 갖는 터치 스크린 디스플레이(151)를 포함한다. 디스플레이(151), 키보드(152) 및 텍스트 박스 오브젝트(153)는, 다른 데이터 엔트리 및 디스플레이 디바이스들/오브젝트들이 사용될 수 있기 때문에, 단지 예시일뿐이며 이것으로 제한되지 않는다. 동작 시, 사용자는 보안 코드, 이를 테면, 패스워드, 패스프레이즈, 제스처들, 또는 다른 정보를 모바일 디바이스(100) 상에서 실행되는 애플리케이션에 입력하도록 프롬프팅될 수 있다. 일 예로, 모바일 디바이스(100)는 네트워크식 컴퓨터 시스템(200)의 일부이고, 사용자는 네트워크 콘텐츠(즉, 콘텐츠 데이터베이스(206))에 액세스하려고 시도한다. 사용자가, 시스템(200) 상에서 사전에 계정을 확립했을 수 있거나, 또는 그들의 계정 정보를 리셋했을 수 있으며, 각각의 시간에 보안 자격증명을 제공했을 수 있다. 시스템에 액세스하려는 후속 시도 시, 사용자는 키보드(152)에 보안 자격증명을 입력하도록 프롬프팅될 수 있다. 보안 자격증명의 문자들 중 'x' 개의 문자(여기서, 'x'는 완전한 보안 자격증명보다 적은 수의 문자들임)를 입력한 후, 원하는 콘텐츠에 대한 액세스가 사용자에게 승인된다. 따라서, 사용자가 전체 보안 자격증명을 입력할 필요가 없기 때문에, 검증 프로세스가 가속화된다. 사용자가 'x'의 값을 반드시 알 필요는 없으며, 'x'의 값은 보안 자격증명의 문자들에 기초하여 다를 수 있다. 일 실시예에서, 'x'의 값은 모바일 디바이스(100)가 사용되고 있는 콘텍스트에 기초하여 변경될 수 있다. 텍스트 박스 오브젝트(153) 내의 문자들은 시연(demonstration)으로서만 도시되고 보안 자격증명의 무결성을 보존하는 것을 돕기 위해 일반적인 기호(예를 들어, 점, 별표 등…)로서 디스플레이될 수 있다.
[0038] 도 1, 도 2 및 도 4를 추가로 참조하면서, 도 5a 및 도 5b를 참조하면, 전체 보안 스트링 및 대응하는 서브스트링들을 포함하는 테이블(500)이 도시된다. 테이블(500)은 전체 보안 스트링/서브스트링 컬럼(502), 복잡도 컬럼(504) 및 문자들 컬럼(506)을 포함한다. 전체 보안 스트링/서브스트링 컬럼(502)의 필드들은 전체 보안 스트링 및 전체 보안 스트링으로부터의 상이한 수의 문자들을 활용하는 6개의 서브스트링들의 예들이다. 문자 컬럼(506)은, 전체 보안 스트링 및 서브스트링들(예를 들어, 처음 'x'개의 문자들) 각각에서의 문자들의 각각의 수를 나타낸다. 복잡도 컬럼(504)은 각각의 스트링들 상의 패스워드 강도 알고리즘의 결과들을 나타낸다. 패스워드 강도 알고리즘은 스트링의 엔트로피를 측정하도록 구성된다. 예로서, 패스워드 강도 알고리즘이 www.passwordmeter.com에서 발견될 수 있으며, 이것으로 제한되지는 않는다. 다른 패스워드 강도 및/또는 엔트로피 측정 알고리즘들 또한 사용될 수 있다. 도 5b를 참조하면, 사용자 계정은, 전체 보안 스트링(512), 제 1 서브스트링(514a), 제 2 서브스트링(514b), 및 제 n 서브스트링(514n)으로서 나타내어지는 임의의 수의 추가 서브스트링들을 포함하는 보안 스트링들(510)의 콜렉션과 연관될 수 있다. 스트링들의 콜렉션에서의 스트링들 각각은, 스트링 값을 해시하기 전에 선택적인 솔트 값과 결합될 수 있다. 예를 들어, 전체 보안 스트링(512)에는 제 1 솔트 값(516a)이 어펜딩될 수 있고, 제 1 서브스트링(514a)에는 제 2 솔트 값(516b)이 어펜딩될 수 있고, 제 2 서브스트링(514b)에는 제 3 솔트 값(516c)이 어펜딩될 수 있는 식이므로, 제 n 서브스트링(514n)에는 제 n 솔트 값(516n)으로 솔팅될 수 있다. 각각의 솔트 값은 일반적으로 CSPRNG(cryptographically secure pseudo-random number generator)를 사용하여 생성되지만, 보안 계획이나 다른 하드웨어 고려사항들에 기초하여 솔트들의 다른 값들이 사용될 수 있다. 딕셔너리 공격들을 좌절시키기 위해서 솔트가 스트링에 추가된다. 스트링을 해시 코드로서 저장하기 전에, 솔트가 문자 스트링의 시작부(즉, 앞에)에 프리펜딩되거나 또는 문자 스트링의 끝에(즉, 뒤에) 어펜딩될 수 있다. 예를 들어, 스트링들(510)의 콜렉션, 및 대응하는 솔트들은 각각, 암호 해시 함수(예를 들어, SHA256, SHA512, SHA3 등)를 통해 변환될 수 있고, 결과적으로 발생된 해시 코드는, 문자 카운트 컬럼(506)로부터의 대응하는 값과 함께 액세스 제어 데이터베이스(204)에 저장될 수 있다. 일 실시예에서, 솔트들 및 결과적으로 발생된 해시 코드들 중 하나 또는 그 초과의 것이 로컬 사용자 검증을 위해 트러스티드 환경(160)에 저장될 수 있다. 인증 모듈(144)은, 트러스티드 환경(160)으로부터 솔트 값을 리트리빙하고, 텍스트 박스 오브젝트(153)에 제공된 데이터를 솔팅하고, 솔팅된 스트링에 대해 해시 함수를 수행하고, 그 결과들을 트러스티드 환경에 저장된 해시 코드들과 비교하도록 구성된다.
[0039] 도 1 내지 도 5를 추가로 참조하면서, 도 6을 참조하면, 예시적인 클라이언트-서버 메시지 흐름의 흐름도(600)가 도시되어있다. 흐름도(600)는, 클라이언트(602)와 서버(604) 사이에서 흐르는 예시적인 메시지들을 도시한다. 클라이언트(602)는 모바일 디바이스(100)일 수 있고, 서버(604)는 서버(202)일 수 있으며, 각각의 예시적인 메시지는 네트워크(210) 및 무선 신호들(123)을 통해 송신될 수 있다. 메시지는 SSL(Secure Sockets Layer) 또는 HTTPS(Hypertext Transfer Protocol Secure)와 같은 보안 인터넷 프로토콜을 통해 교환될 수 있다. 사용자는 서버(604) 상에 계정을 생성하기 위해 클라이언트(602)를 활용할 수 있고 그들의 계정을 식별하기 위해 사용자ID와 같은 로그-인 정보를 제공할 수 있다. (이전 사용자ID를 포함하는) 계정을 서버(604) 상에 이전에 확립했었지만 사용자들의 보안 자격증명들을 리셋해야 하는 사용자에 대해 유사한 프로세스가 발생할 수 있다. 하나 또는 그 초과의 생성 계정 메시지들(606)이 서버(604)와 교환될 수 있다. 응답으로, 전체 보안 스트링을 제공하도록 사용자를 프롬프팅하는 요청 보안 정보 메시지(608)가 서버로부터 전송될 수 있다. 전체 보안 스트링 메시지(610)는 긴 패스워드, 패스프레이즈, 일련의 제스처들, 또는 사용자가 계정 액세스 요청을 검증하기 위해 보안 자격증명으로서 활용하기를 원하는 다른 정보를 포함할 것이다. 스테이지(612)에서, 서버(604)는 전체 보안 스트링에 대한 해시 코드를 생성하고 저장하도록 구성된다. 서버(604)는 하나 또는 그 초과의 서브스트링들(즉, 전체 보안 스트링의 처음 'x'개의 문자들)의 보안 강도를 평가하고, 각각의 서브스트링 해시 코드들 및 대응하는 문자 카운트들(즉, 'x' 값들)을 생성하고 저장할 것이다. 해시 코드들은 사용자ID 또는 다른 인덱싱 정보를 통해 사용자와 연관될 수 있다.
[0040] 후속 로그-인 시도 시, 사용자는, 그들의 사용자ID 또는 다른 식별 정보를 포함하는 사용자 ID 로그-인 메시지(614)를 제공할 수 있다. 스테이지(616)에서, 서버(604)는, 이전에 결정된 서브스트링들 중 어느 것을 가속화된 검증을 위해 사용할지를 결정하도록 구성된다. 서브스트링의 선택은, 현재 콘텍스트, 이를 테면, 모바일 디바이스의 위치, 현재 시간, 또는 다른 고려사항들에 기초할 수 있다. 일 실시예에서, 하나의 서브스트링만이 각각의 전체 보안 스트링에 대해 저장된다. 서브스트링과 관련된 문자들의 수가 결정되고(예를 들어, 액세스 제어 데이터베이스(204)로부터 리트리빙되고), 그 수치 값이 문자 카운트 정보 메시지(618)를 통해 클라이언트(602)로 제공된다. 클라이언트(602)는, 전체 보안 스트링을 입력하도록 사용자를 프롬프팅하고 사용자에 의해 그것이 입력되면 각각의 문자를 카운트하도록 구성된다. 사용자는, 문자 카운트 정보 메시지(618)의 수치 값을 인지하지 못한다. 사용자에 의해 입력된 문자들의 수가 문자 카운트 정보 메시지(618)에 제공된 값과 동일할 경우, 클라이언트(602)는 입력된 문자들(즉, 서브스트링)을 서브스트링 메시지(620)를 통해 서버(604)에 제공하도록 구성된다. 사용자는 서브스트링 메시지(620) 교환을 인지하지 못한다. 스테이지(622)에서, 서버(604)는 서브스트링 메시지(620)에서 수신된 서브스트링을 검증하도록 구성된다. 검증은 수신된 서브스트링에 대한 해시 코드를 생성하고 결과적으로 발생된 해시 코드를 액세스 제어 데이터베이스(204)에 이전에 저장된 해시 코드들과 비교하는 것을 포함한다. 앞서 설명된 바와 같이 솔트 값들이 또한 사용될 수 있다. 검증 결과들에 기초하여, 하나 또는 그 초과의 승인/거부 메시지들(624)이 클라이언트(602)에 제공된다. 검증을 성공하면, 사용자는 그들의 전체 보안 스트링을 전체적으로 입력하지 않고 그들의 계정에 액세스할 수 있다. 서브스트링 메시지(620)가 사용자의 지식없이 송신되기 때문에, 사용자에 대한 효과는 가속화된 검증 프로세스이다. 스테이지(622)에서의 검증 프로세스가 실패하는 경우, 승인/거부 메시지(624)는, 계정에 대한 액세스가 거부되고 서버(604)가, 실패한 액세스 시도를 기록할 수 있다는 것을 사용자에게 나타낼 수 있다.
[0041] 도 2 및 도 5를 추가로 참조하면서, 도 7을 참조하면, 가속화된 패스프레이즈 검증과 함께 사용하기 위한 예시적인 데이터 구조(700)가 도시된다. 추가 테이블들, 필드들, 인덱스들, 및 관계들이 사용될 수 있으므로, 데이터 구조(700)는 단지 예시일뿐 이것으로 제한되지 않는다. 데이터 구조(700)는 서버(202), 또는 네트워크(210) 상의 다른 저장 디바이스들에서 지속될 수 있고, 하나 또는 그 초과의 데이터베이스들, 이를 테면, 액세스 제어 데이터베이스(204), 및 콘텐츠 데이터베이스(206)를 포함할 수 있다. 데이터베이스(204, 206)는 테이블들의 콜렉션과 하나 또는 그 초과의 상관관계에 있는 데이터베이스들일 수 있다. 데이터베이스(204, 206) 내의 데이터들 중 일부 또는 전부는 또한 모바일 디바이스(100)에 저장될 수 있다. 데이터베이스(204, 206)는 사용자 계정들 및 로그-인 검증과 관련된 데이터 필드들을 포함하는 하나 또는 그 초과의 테이블들(702, 704)을 포함할 수 있다. 데이터 필드들은 본 기술에 알려진 바와 같은 데이터 타입들(예를 들어, 숫자, 문자, 변수문자(varchar), 날짜 등…)일 수 있다. 액세스 제어 데이터베이스(204)에 포함된 정보는, 사용자 계정, 이를 테면, 사용자ID, 및 사용자 정보, 이를 테면, 연락처 정보, 과금 정보, 보안 질문들 등을 표현하기 위한 다수의 필드들(예를 들어, 사용자정보1, 사용자정보2 등…)을 포함하는 계정 테이블(702)을 포함할 수 있다. 사용자 계정은, 현재 콘텍스트를 사용자와 연관시키기 위해 콘텍스트 데이터베이스(예를 들어, 콘텍스트링크)에 링크될 수 있다. 콘텍스트는 포지션 정보, 주변 소리들, 사용자 거동 및 사용 이력 데이터 파일들에 기초할 수 있다. 사용자 계정 테이블은 사용자 보안 데이터를 포함할 수 있거나, 또는 사용자 보안 정보를 포함하는 보안 테이블(704)에 링크될 수 있다. 사용자 보안 정보는, 필드들, 이를 테면, 인덱스(704a), 링크 ID(704b), 솔트 값들(704c), 해시 코드들(704d), 문자 카운트 값들(704e), 및 콘텍스트 선택 기준(704f)을 포함할 수 있다. 인덱스(704a)는 보안 테이블(704) 내의 개별 레코드들을 식별하는데 사용될 수 있고, 링크ID(704b)는 계정 테이블(702) 내의 레코드들에, 대응하는 레코드들을 링크시키는데 사용될 수 있다. 보안 스트링들의 암호 해시에서 솔트 값들이 사용되는 경우 솔트 값들(704c)이 요구된다. 해시 코드들(704d)은, 전체 보안 스트링/서브스트링들 컬럼(502)의 값들을 각각의 솔트 값들(704c)과 연접하여 수행되는 해시 함수들의 결과들이다. 도 7의 솔트 값들(704c) 및 해시 코드들(704d)은 단지 예시들이며, 도 7의 시각적인 심미성을 향상시키기 위해 절단(truncate)되었다. 문자 카운트 값들(704e)은 문자 카운트 컬럼(506)의 각각의 값들에 대응한다. 콘텍스트 선택 기준(704f)은, 클라이언트(602)가 액세스를 요청하고 있는 현재 콘텍스트에 대응하는 상대적인 값들을 나타낸다. 예를 들어, 현재 콘텍스트가 비지(busy) 영역 또는 이전에 방문하지 않은 위치와 연관되는 경우, 사용자는 그들의 계정에 대한 액세스를 획득하기 위해서 더 많은 보안 서브스트링을 제공하도록 요구될 수 있다. 반대로, 콘텍스트가, 사용자가 기존 사용 패턴들을 따르고 있거나, 또는 개인 위치에 있음을 나타내는 경우, 더 적은 보안 서브스트링으로도 검증을 가능하게 한다.
[0042] 해시 코드(704d)는 서브스트링 및 솔트 상에서 SHA256과 같은 암호 해시 함수를 수행한 결과일 수 있다. 예를 들어, 서브스트링이 (예를 들어, 전체 보안 스트링/서브스트링들 컬럼(502)에 나타내어진 바와 같이) 8개의 문자 스트링 "
Figure pct00001
"이고, 대응하는 솔트 값(704c)이 "
Figure pct00002
"이면(예를 들어, 도 7에서 레코드 인덱스(48)를 참조), 대응하는 해시 함수는 다음과 같다:
해시 코드 =
Figure pct00003
여기서, ∥는 연접 동작이다.
도 7의 사용자 보안 테이블에서의 해시 코드(704d)의 값은 시각적인 심미성의 목적들을 위해 절단된다. 솔트 값(704c)은 16 진수 난수를 포함하는 예이지만, 솔트 값들은 다른 데이터 값들을 포함할 수 있다. 솔트 값(704c) 및 SHA256 암호 해시 함수는, 다른 솔트 값들 및 암호 알고리즘들이 사용될 수 있는 경우의 예들에 불과하다.
[0043] 도 1 내지 도 7을 추가로 참조하면서, 도 8을 참조하면, 서브스트링을 생성하기 위한 프로세스(800)는 도시된 스테이지들을 포함하는 코드를 갖는다. 그러나, 프로세스(800)는 단지 예일뿐이고 이것으로 제한되지 않는다. 프로세스(800)는, 예를 들어, 스테이지들로 하여금 추가, 제거, 재배열, 결합 및/또는 동시 수행되게 함으로써 변경될 수 있다. 예를 들어, 제 1 및/또는 제 2 솔트 값들을 생성하는 것은 선택적이며, 대응하는 스테이지들은 도 8에서 점선으로 도시된다. 프로세스(800)는 클라이언트-서버 애플리케이션(예를 들어, 원격 로그인)의 경우 서버(202) 상에서, 또는 모바일 디바이스(100)(예를 들어, 로컬 인증) 상에서 국부적으로 실행될 수 있다.
[0044] 스테이지(802)에서, 서버(202)는 전체 보안 스트링을 수신하도록 구성된다. 전체 보안 스트링이 모바일 디바이스(100)에 입력될 수 있고 네트워크(210)를 통해 서버에 제공될 수 있다. 모바일 디바이스(100)는 또한, 전체 보안 스트링을 수신하도록 구성될 수 있다. 서버(202) 및 모바일 디바이스(100)는 전체 보안 스트링을 수신하기 위한 수단이다. 전체 보안 스트링은, 사용자가 컴퓨팅 디바이스에 입력할 수 있는 상대적으로 긴 보안 자격증명, 이를 테면, 패스워드, 패스프레이즈, 제스처, 또는 기타 정보이다. 도 5에 나타내어진 바와 같이, 길이가 21개의 문자들인 전체 보안 스트링의 예는 스트링 "
Figure pct00004
"이다. 다른 길이들 및 엘리먼트들, 이를 테면, 제스처 입력들(예를 들어, ASCII, 16진수, 및/또는 2진 표현 제스처 입력들)에 대응하는 영구 데이터가 사용될 수 있다.
[0045] 스테이지(804)에서, 서버(202) 상의 인증 모듈(322)은, 전체 보안 스트링에 기초하여 전체 보안 스트링 해시 코드를 생성하고 저장하도록 구성된다. 전체 보안 스트링 해시 코드는 액세스 제어 데이터베이스(204)에 저장될 수 있다. 로컬 인증을 위해, 모바일 디바이스(100) 상의 인증 모듈(144) 및 트러스티드 환경(160)은 또한 전체 보안 해시 코드를 생성하고 저장하도록 구성될 수 있다. 서버(202) 또는 모바일 디바이스(100)는 전체 보안 해시 코드를 생성하고 저장하기 위한 수단일 수 있다. 전체 보안 스트링 해시 코드는 스테이지(806)에서 생성된 솔트 값을 포함할 수 있다. 솔트 값은 선택적이지만 룩업 테이블들 및 레인보우 테이블들을 사용하여 공격들을 좌절시키기 위해서 일반적으로 추천된다. 임의의 값이 솔트로서 사용될 수 있지만, 바람직한 솔루션은 암호 보안 의사 난수를 발생기(예를 들어, Java의 경우 java.security.SecureRandom, MS dot NET의 경우 system.security.cryptography.RNGCyptoServiceProvider, C/C++의 경우 CryptGenRandom)를 사용하는 것이다. 솔트는 스테이지(802)에서 수신된 전체 보안 스트링 값과 (예를 들어, 프리펜트, 어펜드로) 연접될 수 있다. 전체 보안 스트링 해시 코드는, 전체 보안 스트링 및 연접된 솔트(존재할 경우)에 대해 암호 해시 함수를 실행한 결과이다. 암호 해시 함수들의 예들은 SHA256, SHA512, RipeMD, Whirlpool을 포함한다. 다른 암호 해시 함수들이 또한 사용될 수 있다. 결과적으로 발생된 전체 보안 해시 코드가 메모리, 이를 테면, 액세스 제어 데이터베이스(204)에 저장된다. 예를 들어, 전체 보안 해시 코드 및 선택적인 솔트 값이, 특정 사용자(예를 들어, 계정 테이블(702) 내의 레코드)와 연관되는 보안 테이블(704)에 저장될 수 있다. 다른 데이터 구조들이 또한 전체 스트링 해시 코드를 사용자와 연관시키기 위해 사용될 수 있다.
[0046] 스테이지(808)에서, 서버(202) 상의 인증 모듈(322)은, 전체 보안 스트링 내의 하나 또는 그 초과의 선두 문자들과 연관된 엔트로피 값에 기초하여 적어도 하나의 서브스트링을 결정하도록 구성된다. 로컬 인증의 경우, 모바일 디바이스(100) 상의 인증 모듈(144) 및 트러스티드 환경(160)은 또한, 전체 보안 스트링 내의 하나 또는 그 초과의 선두 문자들과 연관된 엔트로피 값에 기초하여 적어도 하나의 서브스트링을 결정하도록 구성될 수 있다. 서버(202) 또는 모바일 디바이스(100)는, 전체 보안 스트링 중 한 개 또는 그 초과의 선두 문자들과 연관된 엔트로피 값에 기초하여 적어도 하나의 서브스트링을 결정하기 위한 수단일 수 있다. 전체 보안 스트링에서 처음 'x'개의 문자들의 엔트로피는, 충분히 강한 수준의 서브스트링이 실현될 때까지 문자 단위로 문자에 대해 평가될 수 있다. 충분히 강한 것의 요건들은, 네트워크 보안 설계 요건들에 기반할 수 있다. 도 5a를 참조하면, 복잡도 컬럼(504)은 엔트로피 복잡도 레벨 또는 강도 레벨(예를 들어, 약함, 양호, 강함, 매우 강함)의 상대적 표시를 제공하고, 충분히 강한 서브스트링은 설계 요건들에 기초하여 양호, 강함, 또는 매우 강함의 값들에 대응할 수 있다. 스트링의 복잡도 레벨을 결정하기 위해 기성(off-the-shelf) 강도 계측 알고리즘들이 사용될 수 있다. 예를 들어, 스트링 '
Figure pct00005
'는, 이것이 '강한' 복잡도 값에 대응하는 엔트로피를 갖기 때문에, 충분히 강한 서브스트링으로 간주된다. 서브스트링 '
Figure pct00006
'는 전체 보안 스트링 "
Figure pct00007
"의 8개의 선두 문자들이다. 따라서, 이 예에서, 서브스트링 ‘
Figure pct00008
’는, 전체 보안 스트링의 하나 또는 그 초과의 선두 문자들과 연관된 엔트로피 값에 기초하여 적어도 하나의 서브스트링이 되도록 결정된다.
[0047] 스테이지(810)에서, 서버(202) 상의 인증 모듈(322)은, 적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 생성하고 저장하도록 구성된다. 로컬 인증을 위해, 모바일 디바이스(100) 상의 인증 모듈(144) 및 트러스티드 환경(160)은 또한 적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 생성하고 저장하도록 구성될 수 있다. 서버(202) 또는 모바일 디바이스(100)는, 적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 생성하고 저장하기 위한 수단일 수 있다. 상기 예를 계속하면, (예를 들어, 전술된 바와 같은 암호 해시 함수를 통해) 서브스트링 해시 코드를 생성하기 위해 서브스트링 '
Figure pct00009
' 및 선택적인 솔트 값(스테이지(812)에서 생성됨)이 사용될 수 있다. 도 7에 도시된 바와 같이, 서브스트링 해시 코드, 대응하는 문자 카운트 값, 및 선택적인 솔트 값이 보안 테이블(704)(즉, 704c, 704d, 704e)에 저장될 수 있다. 로컬 인증 실시예에서, 보안 테이블(704)은 모바일 디바이스 상의 트러스티드 환경(160)에서 유지될 수 있다.
[0048] 도 1 내지 도 7을 추가로 참조하면서, 도 9를 참조하면, 서버 상에서 가속화된 패스프레이즈 검증을 위한 프로세스(900)는 도시된 스테이지들을 포함한다. 그러나, 프로세스(900)는 단지 예일 뿐이고 이것으로 제한되지 않는다. 프로세스(900)는, 예를 들어, 스테이지들로 하여금 추가, 제거, 재배열, 결합 및/또는 동시 수행되게 함으로써 변경될 수 있다. 예를 들어, 콘텍스트 정보를 수신하는 것은 선택적이며, 따라서 스테이지(906)는 점선들로 도시된다.
[0049] 스테이지(902)에서, 서버(604) 상의 액세스 제어기(324)는 클라이언트(602)로부터 액세스 요청을 수신하도록 구성되어, 액세스 요청은 사용자 식별을 포함한다. 일 예에서, 클라이언트(602)는 모바일 디바이스(100)이고 액세스 요청이 네트워크(210)를 통해 수신된다. 서버(604)는 클라이언트로부터 액세스 요청을 수신하기 위한 수단이다. 사용자 식별은 사용자에 의해 선택된 사용자 이름에 기초할 수 있거나, 또는 이는 특정 클라이언트 디바이스(예를 들어, NIC(network interface controller), SIM(subscriber identification module) 또는 다른 고유 키)와 연관될 수 있다. 클라이언트(602)는 콘텐츠 데이터베이스(206) 상의 정보에 액세스하기를 원할 수 있고 서버(202)는 보안 패스프레이즈와 같은 이전에 제공된 정보에 기초하여 클라이언트의 자격증명들을 검증하도록 구성된다. 사용자 식별은, 보안 자격증명들을 특정 클라이언트/사용자에 대해 연관시키기 위해 사용된다.
[0050] 선택적 스테이지(906)에서, 서버(604) 상의 콘텍스트 평가기(326)는 콘텍스트 정보를 수신하도록 구성된다. 콘텍스트 정보는 위치 정보(예를 들어, 모바일 디바이스의 현재 위치), 또는 다른 동시발생적 환경 정보, 이를 테면, 모바일 디바이스(100) 상의 마이크로폰을 통해 캡처된 주변 노이즈일 수 있다. 콘텍스트 정보는, 액세스 요청이 스테이지(902)에서 수신된 시간일 수 있고, 콘텍스트 평가기(326)는, 클라이언트의 사용 이력들 및 이전 거동에 대응하는 데이터 파일들과 그 시간을 비교하도록 구성된다. 콘텍스트 평가기(326)는, 클라이언트(602)가 액세스를 요청하고 있는 현재 콘텍스트에 대응하는 콘텍스트 선택 기준(704f)을 할당할 수 있다. 콘텍스트 선택 기준(704f)은, 그 콘텍스트와 연관된 보안 요구들의 상대적인 스케일을 나타내는, 정수 값, 또는 다른 데이터 타입들일 수 있다. 도 7에 도시된 바와 같이, 보안 테이블(704)은, 높은 콘텍스트 선택 기준(704f)(예를 들어, 10의 값)이 사용자를 검증하기 위해 전체 보안 스트링의 엔트리를 요구하는 반면, 더 낮은 콘텍스트 선택 기준(704f)(예를 들어, 7의 값)은 사용자를 검증하기 위해 입력될 전체 보안 스트링의 처음 8개 문자들(예를 들어, 서브스트링)만을 요구한다는 것을 나타낸다. 일 실시예에서, 액세스 제어 데이터베이스(204)는 클라이언트에 대한 2개의 보안 스트링들(즉, 전체 보안 스트링 및 단일 서브스트링)만을 포함할 수 있다. 콘텍스트 정보가 서버(604)에 의해 수신되는 경우, 이는, 전체 보안 스트링 또는 서브스트링이 요구되는지 (즉, 2개의 콘텍스트 선택 기준 값들만이 요구되는지) 여부를 결정하는데 사용될 수 있다. 콘텍스트 선택은 (즉, 계정에 대한 다수 회의 액세스 시도들을 검출하기 위해) 하나 또는 그 초과의 인자들, 이를 테면, 위치 및 시간, 또는 시간 및 이력에 기초할 수 있다. 환경 인자 및 거동 인자의 다른 결합들이, 현재 콘텍스트 값을 결정하기 위해 사용될 수 있다. 서버(604) 상의 콘텍스트 평가기(326)는 현재 콘텍스트 값을 결정하기 위한 수단이다.
[0051] 스테이지(904)에서, 서버(604) 내의 액세스 제어기(324)는, 스테이지(902)에서 수신된 사용자 식별 정보에 적어도 부분적으로 기초하여 문자 카운트 값을 결정하도록 구성된다. 서버(604) 상의 액세스 제어 데이터베이스(204)는 문자 카운트 값을 결정하기 위한 수단이다. 서버(604)는, 문자 카운트 값을 결정하기 위해서 (예를 들어, 저장된 절차들 또는 다른 데이터 액세스 커맨드들을 통해) 액세스 제어 데이터베이스(204)에 질의하기 위해 사용자 식별 및 선택적 콘텍스트 선택 기준을 활용할 수 있다. 문자 카운트 값들(704e)은, 대응하는 서브스트링들의 문자들(예를 들어, 도 5a, 처음 'x'개의 문자들)의 수이다. 스테이지(908)에서, 전체 보안 스트링 및 단일 서브스트링만이 사용자와 연관되는 경우, 서브스트링에 대한 문자 카운트가 선택되고 클라이언트로 제공된다. 예를 들어, 클라이언트는 네트워크(210)를 통해 문자 카운트 정보 메시지(618)를 수신할 수 있다.
[0052] 스테이지(910)에서, 서버(604) 상의 액세스 제어기(324)는 클라이언트로부터 서브스트링을 수신하도록 구성되므로, 서브스트링의 길이는 문자 카운트 값에 대응한다. 액세스 제어기(324)는 클라이언트로부터 서브스트링을 수신하기 위한 수단이다. 클라이언트는, 대응하는 길이의 서브스트링을 포함하는 서브스트링 메시지(620)를 전송할 수 있다. 상술된 예를 계속하면, 스테이지(908)에서 서버(604)가 문자 카운트 값 '8'을 제공하면, 클라이언트(602)는 서브스트링 메시지(620)의 서브스트링 '
Figure pct00010
'를 포함할 수 있다.
[0053] 스테이지(912)에서, 서버(604) 상의 액세스 제어기(324)는 스테이지(910)에서 수신된 서브스트링을 검증하도록 구성된다. 액세스 제어기(324)는 서브스트링을 검증하기 위한 수단이다. 수신된 서브스트링은 이전에 저장된 솔트 값(예를 들어, 704c)과 결합될 수 있고 암호 해시 코드가 결정될 수 있다. 결과적으로 발생된 해시 코드는 액세스 제어 데이터베이스(204)의 각각의 레코드(예를 들어, 704d)와 비교된다. 해시 코드가 일치하는 경우, 서브스트링이 유효하고 액세스 요청은 스테이지(914)에서 승인된다. 해시 코드가 일치하지 않는 경우, 서브스트링이 무효이고 액세스 요청은 스테이지(914)에서 거부된다. 검증의 승인된 결과 또는 거부된 결과에 기초하는 서버(604)의 기능이 애플리케이션들에 기초하여 변할 수 있다. 일 예에서, 검증이 실패한 후에, 서버(604)는 문자 카운트 값에 기초하여 하나 또는 그 초과의 추가 시도들을 할 것을 사용자에게 요청하도록 구성될 수 있으며, 그런다음, 후속 시도들 시에 전체 보안 스트링을 입력할 것을 사용자에게 요청할 수 있다.
[0054] 도 1 내지 도 7을 추가로 참조하면서, 도 10을 참조하면, 클라이언트 상에서 가속화된 패스프레이즈 검증을 위한 프로세스(1000)는 도시된 스테이지들을 포함한다. 그러나, 프로세스(1000)는 단지 예일뿐이고 이것으로 제한되지 않는다. 프로세스(1000)는, 예를 들어, 스테이지들로 하여금 추가, 제거, 재배열, 결합 및/또는 동시 수행되게 함으로써 변경될 수 있다. 클라이언트(602), 이를 테면, 모바일 디바이스(100)는 프로세스(1000)를 실행하기 위한 수단이다.
[0055] 스테이지(1002)에서, 모바일 디바이스(100)는, 전체 보안 스트링이 첫 번째 문자로 시작하도록 사용자ID 값 및 전체 보안 스트링을 포함하는 사용자 계정을 서버 상에 생성하도록 구성된다. 사용자ID 값은, 사용자에 의해 입력되거나 또는 사용자에게 제공되는 스트링(예를 들어, 이메일 주소 또는 다른 고유 식별자)일 수 있다. 사용자ID는 NIC 또는 SIM 값과 같은 시스템 변수일 수 있다. 전체 보안 스트링은 순차적인 문자들의 비교적 긴 스트링 또는 다른 데이터(예를 들어, 제스처 입력에 대응하는 영구 데이터)일 수 있다. 시퀀스는 첫 번째 문자로 시작한다. 예를 들어, 도 5에 제공된 전체 보안 스트링 "
Figure pct00011
"은 첫 번째 문자 'J'로 시작한다. 전체 보안 스트링은 사용자에 의한 터치 스크린 디스플레이(151)를 통해, 또는 다른 타입들의 입력 디바이스들을 통해 제공될 수 있다.
[0056] 스테이지(1004)에서, 모바일 디바이스(100)는 사용자ID 값 및 서브스트링을 제공함으로써 사용자 계정에 액세스하도록 구성되므로, 서브스트링은, 첫 번째 문자로 시작하는 전체 보안 스트링의 연속 문자들의 서브셋으로 이루어진다. 사용자는 후속하여, 적절한 보안 자격증명들을 제공함으로써 스테이지(1002)에서 생성된 사용자 계정에 액세스하려고 시도할 수 있다. 적절한 데이터 오브젝트에 이를 타이핑함으로써 사용자ID가 제공되거나, 또는 하드웨어 구성(예를 들어, NIC, SIM)에 기초하여 수동으로 사용자ID가 제공될 수 있다. 사용자는 그런다음, 그들이 스테이지(1002)에서 제공했던 전체 보안 스트링을 입력하기 시작할 수 있다. 상기 예를 계속하면, 사용자가, 첫 번째 문자 'J'를 적절한 데이터 오브젝트(예를 들어, 텍스트 박스 오브젝트(153))에 입력하면 연속 문자들이 이어진다. 즉, 사용자에 의해 제공된 서브스트링은 'J'와 그 다음 'u'와 그 다음 '3'과 그 다음 'T'와 그 다음 'o'와 그 다음 'u'와 그 다음 '2'와 그 다음 'W'인 식이다. 이 프로세스의 임의의 포인트에서 적어도 첫 번째 문자 'J'를 입력한 후, 그러나 전체 보안 스트링을 입력하기도 전에, 사용자의 자격증명들이 검증되거나 또는 거부된다. 입력될 서브스트링의 문자들의 수는 사용자가 알 수 없다. 상기 언급된 바와 같이, 서브스트링의 문자들의 수는 서브스트링의 이전에 평가된 엔트로피 (즉, 강도)에 기초하여 변할 수 있다. 일 실시예에서, 모바일 디바이스의 현재 콘텍스트는 또한 서브스트링의 길이를 결정하는데 사용될 수 있다. 따라서, 프로세스(1000)을 통해, 가속화된 패스프레이즈 검증이 모바일 디바이스에 의해 실현된다.
[0057] 특정 요구사항들에 따라 상당한 변화들이 이루어질 수 있다. 예를 들어, 커스터마이징된 하드웨어가 또한 사용될 수 있고, 그리고/또는 특정 엘리먼트들이 하드웨어, (휴대용 소프트웨어, 이를 테면, 애플릿들 등을 포함한) 소프트웨어, 또는 이 둘 모두로 구현될 수 있다. 또한, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들에 대한 연결이 활용될 수 있다.
[0058] 컴퓨터 시스템(이를 테면, 컴퓨터 시스템(300))은 본 개시내용에 따른 방법들을 수행하는데 사용될 수 있다. 이러한 방법들의 절차들 중 일부 또는 전부는, 프로세서(310)가 작업 메모리(335)에 포함되는 (운영 시스템(340) 및/또는 다른 코드, 이를 테면, 애플리케이션 프로그램들(345)에 포함될 수 있는) 하나 또는 그 초과의 명령들의 하나 또는 그 초과의 시퀀스들을 실행하는 것에 대한 응답으로 컴퓨터 시스템(300)에 의해 수행될 수 있다. 이러한 명령들은, 다른 컴퓨터-판독가능 매체, 이를 테면, 저장 디바이스(들)(325) 중 하나 또는 그 초과의 것으로부터 작업 메모리(335)로 판독될 수 있다. 단지 예시로서, 작업 메모리(335)에 포함된 명령들의 시퀀스들의 실행은 프로세서(들)(310)로 하여금 본원에 설명된 방법들의 하나 또는 그 초과의 절차들을 수행하게 할 수 있다.
[0059] 본원에 사용된 용어 "머신 판독가능한 매체" 및 "컴퓨터 판독가능한 매체"는, 머신을 특정 방식으로 동작시키는 데이터를 제공하는데 참여하는 임의의 매체를 지칭한다. 모바일 디바이스(100) 및/또는 컴퓨터 시스템(300)을 사용하여 구현되는 실시예에서, 다양한 컴퓨터 판독가능 매체는, 실행을 위해 프로세서(들)(111, 310)에 명령들/코드를 제공하는 것과 관련될 수 있고 그리고/또는 그러한 명령들/코드를 (예를 들어, 신호들로서) 저장하고 그리고/또는 반송하는데 사용될 수 있다. 많은 구현들에서, 컴퓨터 판독가능 매체는 물리적 및/또는 유형의 저장 매체이다. 그러한 매체는, 비휘발성 매체들, 휘발성 매체들, 및 전송 매체들을 포함하는 (그러나 이것으로 제한되지 않음) 다수의 형태들을 취할 수 있다. 비휘발성 매체들은, 예를 들어, 광학 디스크 및/또는 자기 디스크, 이를테면 저장 디바이스(들)(140, 325)를 포함한다. 휘발성 매체는, 작업 메모리(140, 335)와 같은 동적 메모리(이것으로 제한되지 않음)를 포함한다. 송신 매체는, 버스(101, 305)뿐만 아니라 통신 서브시스템(330)의 다양한 컴포넌트들(및/또는 통신 서브시스템(330)이 다른 디바이스들과의 통신을 제공하는 매체들)을 포함하는 와이어들을 포함하는 동축 케이블들, 구리 와이어 및 광섬유(이것으로 제한되지 않음)를 포함할 수 있다. 따라서, 전송 매체는 또한, 웨이브들(라디오, 청각 및/또는 라이트(light) 웨이브들, 이를 테면, 라디오 웨이브 및 적외선 데이터 통신들 동안 생성되는 것들을 포함하지만 이것으로 제한되지 않음)의 형태를 취할 수 있다.
[0060] 일반적인 형태의 물리적 및/또는 유형의 컴퓨터 판독가능한 매체들은, 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, CD-ROM, 블루레이 디스크, 임의의 다른 광학 매체, 천공 카드, 종이 테이프, 구멍들의 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM 및 EPROM, 플래시-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 이후에 설명되는 바와 같은 반송파, 또는 컴퓨터가 명령들 및/또는 코드를 판독할 수 있는 임의의 다른 매체를 포함한다.
[0061] 컴퓨터 판독가능 매체의 다양한 형태들은, 실행을 위해 하나 또는 그 초과의 명령들의 하나 또는 그 초과의 시퀀스들을 프로세서(들)(111, 310)에 반송하는 것과 관련될 수 있다. 단지 예시로서, 명령들은 초기에 원격 컴퓨터의 자기 디스크 및/또는 광학 디스크 상에서 반송될 수 있다. 원격 컴퓨터는 명령들을 그의 동적 메모리로 로딩할 수도 있고, 명령들을, 모바일 디바이스(100) 및/또는 컴퓨터 시스템(300)에 의해 수신되고 그리고/또는 실행되도록 송신 매체를 통해 신호들로서 전송할 수 있다. 전자기 신호들, 음향 신호들, 광학 신호들 등의 형태로 존재할 수 있는 이들 신호들은, 본 발명의 다양한 실시예들에 따라, 명령들이 인코딩될 수 있는 반송파들의 모든 예들이다.
[0062] 위에서 논의된 방법들, 시스템들 및 디바이스들은 예들이다. 다양한 대안적인 구성들은 적절히 다양한 프로시저들 또는 컴포넌트들을 생략하거나, 대체하거나, 또는 부가할 수 있다. 예를 들어, 대안적인 방법들에서, 스테이지들은 위에서 논의된 것과 상이한 순서로 수행될 수 있고 다양한 스테이지들이 부가되거나, 생략되거나, 또는 결합될 수 있다. 또한, 특정한 구성들에 관하여 설명된 특징들이 다양한 다른 구성들에서 결합될 수 있다. 구성들의 상이한 양상들 및 엘리먼트들은 유사한 방식으로 결합될 수 있다. 또한, 기술은 진화하고 이에 따라 엘리먼트들 대부분은 예들이며, 본 개시내용 또는 청구항들의 범위를 제한하지 않는다.
[0063] 특정한 세부사항들이 예시적인 구성들(구현들을 포함함)의 완전한 이해를 제공하도록 설명에서 제공되었다. 그러나 구성들은 이들 특정한 세부사항들 없이 실시될 수 있다. 예를 들어, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들 및 기술들은 구성들을 모호하게 하지 않도록 불필요한 세부사항 없이 도시된다. 이 설명은 단지 예시적인 구성들을 제공하며, 청구항들의 범위, 응용성 또는 구성들을 제한하지 않는다. 오히려, 앞의 구성들의 설명은 설명된 기술들을 구현할 수 있는 설명을 당업자들에게 제공할 것이다. 다양한 변화들이, 본 개시내용의 사상 또는 범위로부터 벗어남 없이 엘리먼트들의 기능 및 어레인지먼트에서 이루어질 수 있다.
[0064] 구성들은 흐름도 또는 블록도로서 도시된 프로세스로서 설명될 수 있다. 각각은, 순차적인 프로세스로 동작들을 설명할 수 있지만, 동작들 중 많은 것이 병행하여 또는 동시에 수행될 수 있다. 이외에도, 동작들의 순서는 재배열될 수 있다. 프로세스는, 도면에 포함되지 않은 추가 단계들을 구비할 수 있다. 또한, 방법들의 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어들, 또는 이들의 임의의 결합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현될 경우, 필수 작업들을 수행할 프로그램 코드 또는 코드 세그먼트들이 저장 매체와 같은 비일시적 컴퓨터 판독가능 매체에 저장될 수 있다. 프로세서들은 설명되는 작업들을 수행할 수 있다.
[0065] 청구항들을 포함하여 본원에서 사용되는 바와 같이, "~중 적어도 하나"의 앞에 나오는, 아이템들의 리스트에서 이용되는 것과 같은 "또는"은 예를 들어, "A, B, C 중 적어도 하나"의 리스트가 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(즉, A 및 B 및 C) 또는 2개 이상의 특징과의 결합들(예를 들어, AA, AAB, ABBC 등)을 의미하도록 이접적 리스트를 나타낸다.
[0066] 청구항들을 포함하여 본원에 사용되는 바와 같이, 다르게 명시되지 않는 한, 기능 또는 동작이 항목 또는 조건에 "기초"한다라는 설명은, 그 기능 또는 동작이 명시된 항목 또는 조건에 기초한다 그리고 명시된 항목 또는 조건 이외의 하나 또는 그 초과의 항목들 및/또는 조건들에 기초할 수 있다는 것을 의미한다.
[0067] 몇 가지 예시적인 구성들이 설명되었지만, 다양한 변형들, 대안적인 구성들, 및 등가물들이 본 개시내용의 정신으로부터 벗어나지 않고 사용될 수 있다. 예를 들어, 위의 엘리먼트들은 더욱 대규모 시스템의 컴포넌트들일 수 있으며, 다른 규칙들이 보다 우선하여 택하여 지거나 또는 본 발명의 애플리케이션을 다른 방식으로 변경할 수 있다. 또한, 다수의 단계들이, 상기 엘리먼트들이 고려되기 이전에, 그 동안에, 또는 그 이후에 수행될 수 있다. 따라서, 상기 설명은 본 청구항들의 범위를 제한하지 않는다.

Claims (18)

  1. 컴퓨팅 디바이스에서 사용자의 보안 자격증명들을 검증하는 방법으로서,
    사용자ID 값 및 전체 보안 스트링을 포함하는 사용자 계정을 서버 상에서 생성하는 단계 -상기 전체 보안 스트링은 첫 번째 문자로 시작함-;
    상기 서버에 상기 사용자ID를 제공하는 것;
    상기 사용자ID와 연관된 문자 카운트 값을 상기 서버로부터 수신하는 것 -상기 문자 카운트 값은 상기 컴퓨팅 디바이스의 현재 콘텍스트에 기초한 패스워드 강도에 대응함-;
    사용자로부터 입력을 수신하는 것 -상기 입력은 상기 첫 번째 문자로 시작하는 상기 전체 보안 스트링의 연속 문자들의 서브셋으로 이루어짐-; 및
    상기 입력의 문자들의 수가 상기 문자 카운트 값과 동일할 경우 상기 서버에 상기 입력을 제공하는 것에 의해
    상기 사용자 계정에 후속하여 액세스하는 단계를 포함하는, 컴퓨팅 디바이스에서 사용자의 보안 자격증명들을 검증하는 방법.
  2. 클라이언트로부터 수신한 액세스 요청을 검증하기 위한 방법으로서,
    사용자로부터 사용자 식별 및 전체 보안 스트링을 수신하는 단계 -상기 전체 보안 스트링은 첫 번째 문자로 시작함-;
    복수의 서브스트링들을 생성하는 단계 -상기 복수의 서브스트링들 각각은 상기 첫 번째 문자로 시작하는 상기 전체 보안 스트링의 연속 문자들의 서브셋으로 이루어지고, 상기 복수의 서브스트링들 각각은 패스워드 강도 값 및 문자 카운트 값과 연관됨-;
    상기 클라이언트로부터 상기 액세스 요청을 수신하는 단계 -상기 액세스 요청은 상기 사용자 식별을 포함함-;
    상기 사용자 식별 및 상기 클라이언트의 현재 콘텍스트에 적어도 부분적으로 기초하여 상기 복수의 서브스트링들 중 하나를 결정하는 단계;
    상기 복수의 서브스트링들 중 하나와 연관된 상기 문자 카운트 값을 상기 클라이언트에 제공하는 단계;
    상기 클라이언트로부터 입력 서브스트링을 수신하는 단계 -상기 입력 서브스트링의 길이는 상기 문자 카운트 값에 대응함-;
    상기 입력 서브스트링을 검증하는 단계;
    상기 입력 서브스트링이 유효한 경우 상기 액세스 요청을 승인하는 단계; 및
    상기 입력 서브스트링이 유효하지 않은 경우 상기 액세스 요청을 거부하는 단계를 포함하는, 클라이언트로부터 수신한 액세스 요청을 검증하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 현재 콘텍스트는 상기 클라이언트의 현재 위치를 포함하는, 클라이언트로부터 수신한 액세스 요청을 검증하기 위한 방법.
  4. 제 2 항에 있어서,
    상기 현재 콘텍스트는, 상기 액세스 요청이 수신되는 시간을 포함하는, 클라이언트로부터 수신한 액세스 요청을 검증하기 위한 방법.
  5. 제 2 항에 있어서,
    상기 입력 서브스트링을 검증하는 단계는 상기 입력 서브스트링을 위한 서브스트링 해시 코드를 결정하는 단계를 포함하는, 클라이언트로부터 수신한 액세스 요청을 검증하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 사용자 식별에 적어도 부분적으로 기초하여 솔트 값을 결정하는 단계; 및
    상기 입력 서브스트링을 상기 솔트 값에 결합하는 단계를 더 포함하고,
    상기 서브스트링 해시 코드는 상기 입력 서브스트링 및 상기 솔트 값의 결합에 대해 결정되는, 클라이언트로부터 수신한 액세스 요청을 검증하기 위한 방법.
  7. 장치로서,
    메모리;
    상기 메모리에 동작가능하게 결합된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    전체 보안 스트링을 수신하고 -상기 전체 보안 스트링은 첫 번째 문자로 시작함-;
    전체 보안 스트링 해시 코드를 생성하고;
    상기 전체 보안 스트링 해시 코드를 상기 메모리에 저장하고;
    엔트로피에 기초하여 적어도 하나의 서브스트링을 결정하고 -상기 적어도 하나의 서브스트링은 상기 첫 번째 문자로 시작하는 상기 전체 보안 스트링의 연속 문자들의 서브셋으로 이루어짐-;
    적어도 하나의 서브스트링 해시 코드 및 적어도 하나의 대응하는 문자 카운트 값을 생성하고 -상기 적어도 하나의 대응하는 문자 카운트 값은 상기 적어도 하나의 서브스트링의 문자들의 수와 동일함-; 그리고
    상기 적어도 하나의 서브스트링 해시 코드 및 상기 적어도 하나의 대응하는 문자 카운트 값을 메모리에 저장하도록 구성되는, 장치.
  8. 제 7 항에 있어서,
    상기 적어도 하나의 프로세서는,
    제 1 솔트 값을 생성하고;
    상기 제 1 솔트 값을 상기 전체 보안 스트링과 결합하고; 그리고
    상기 제 1 솔트 값 및 상기 전체 보안 스트링의 결합에 기초하여 상기 전체 보안 스트링 해시 코드를 생성하도록 구성되는, 장치.
  9. 제 7 항에 있어서,
    상기 적어도 하나의 프로세서는,
    제 2 솔트 값을 생성하고;
    상기 제 2 솔트 값을 상기 적어도 하나의 서브스트링과 결합하고; 그리고
    상기 제 2 솔트 값 및 상기 적어도 하나의 서브스트링의 결합에 기초하여 상기 적어도 하나의 서브스트링 해시 코드를 생성하도록 구성되는, 장치.
  10. 제 7 항에 있어서,
    상기 전체 보안 스트링은 제스처 입력들에 대응하는 영구 데이터를 포함하는, 장치.
  11. 제 7 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 전체 보안 스트링 해시 코드를 생성하기 위해 상기 전체 보안 스트링에 대해 암호 해시를 수행하도록 구성되는, 장치.
  12. 제 7 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 적어도 하나의 서브스트링 해시 코드를 생성하기 위해 상기 적어도 하나의 서브스트링에 대해 암호 해시를 수행하도록 구성되는, 장치.
  13. 제 7 항에 있어서,
    상기 적어도 하나의 서브스트링에 대한 상기 엔트로피 값은, 상기 전체 보안 스트링의 엔트로피 값에 대한 복잡도 레벨보다 낮은 복잡도 레벨로서 평가되는, 장치.
  14. 장치로서,
    메모리;
    상기 메모리에 동작가능하게 결합된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    사용자ID 값 및 전체 보안 스트링을 포함하는 사용자 계정을 서버 상에서 생성하고 -상기 전체 보안 스트링은 첫 번째 문자로 시작함-;
    상기 사용자ID 값을 제공한 후 상기 서버로부터 문자 카운트 값을 수신하고 -상기 문자 카운트 값은, 요구되는 패스워드 강도에 대응함-; 그리고
    상기 사용자ID 값 및 상기 문자 카운트 값과 동일한 길이의 서브스트링을 제공함으로써 상기 사용자 계정에 액세스하도록 구성되고,
    상기 서브스트링은, 첫 번째 문자로 시작하는 전체 보안 스트링의 연속 문자들의 서브셋을 포함하는, 장치.
  15. 제 14 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 장치에 대한 콘텍스트 정보를 결정하고 -상기 요구되는 패스워드 강도는 상기 콘텍스트 정보에 적어도 부분적으로 기초함-; 그리고
    상기 콘텍스트 정보, 상기 사용자ID 값, 및 상기 서브스트링을 제공함으로써 상기 사용자 계정에 액세스하도록 구성되는, 장치.
  16. 제 15 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 사용자ID 값 및 상기 콘텍스트 정보를 제공한 후 상기 서버로부터 상기 문자 카운트 값을 수신하도록 구성되는, 장치.
  17. 제 15 항에 있어서,
    상기 콘텍스트 정보는 상기 장치의 현재 위치를 포함하는, 장치.
  18. 제 15 항에 있어서,
    상기 콘텍스트 정보는 현재 시간을 포함하는, 장치.
KR1020177027347A 2015-03-30 2016-03-16 가속화된 패스프레이즈 검증 KR101977672B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/673,561 2015-03-30
US14/673,561 US10091188B2 (en) 2015-03-30 2015-03-30 Accelerated passphrase verification
PCT/US2016/022564 WO2016160333A1 (en) 2015-03-30 2016-03-16 Accelerated passphrase verification

Publications (2)

Publication Number Publication Date
KR20170131467A true KR20170131467A (ko) 2017-11-29
KR101977672B1 KR101977672B1 (ko) 2019-05-13

Family

ID=55637490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177027347A KR101977672B1 (ko) 2015-03-30 2016-03-16 가속화된 패스프레이즈 검증

Country Status (6)

Country Link
US (1) US10091188B2 (ko)
EP (2) EP3278528B1 (ko)
JP (1) JP6453486B2 (ko)
KR (1) KR101977672B1 (ko)
CN (1) CN107431624B (ko)
WO (1) WO2016160333A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10116441B1 (en) * 2015-06-11 2018-10-30 Amazon Technologies, Inc. Enhanced-security random data
JP6310620B1 (ja) * 2016-11-30 2018-04-11 株式会社オプティム コンピュータシステム、IoT機器監視方法及びプログラム
US10681037B2 (en) * 2017-06-29 2020-06-09 Amadeus S.A.S. Terminal authentication
US11036780B2 (en) * 2018-03-08 2021-06-15 Ebay Inc. Automatic lot classification
WO2020159533A1 (en) * 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11503465B2 (en) 2019-02-20 2022-11-15 Coretigo Ltd. Secure pairing mechanism in a wireless communication system
US11514149B2 (en) 2019-06-10 2022-11-29 Microsoft Technology Licensing, Llc Pattern matching for authentication with random noise symbols and pattern recognition
US11736472B2 (en) 2019-06-10 2023-08-22 Microsoft Technology Licensing, Llc Authentication with well-distributed random noise symbols
US11240227B2 (en) * 2019-06-10 2022-02-01 Microsoft Technology Licensing, Llc Partial pattern recognition in a stream of symbols
US11178135B2 (en) 2019-06-10 2021-11-16 Microsoft Technology Licensing, Llc Partial pattern recognition in a stream of symbols
US20200389443A1 (en) * 2019-06-10 2020-12-10 Microsoft Technology Licensing, Llc Authentication with random noise symbols and pattern recognition
US11496457B2 (en) 2019-06-10 2022-11-08 Microsoft Technology Licensing, Llc Partial pattern recognition in a stream of symbols
US11258783B2 (en) 2019-06-10 2022-02-22 Microsoft Technology Licensing, Llc Authentication with random noise symbols and pattern recognition
CN110489466B (zh) * 2019-07-03 2023-09-08 平安证券股份有限公司 邀请码的生成方法、装置、终端设备及存储介质
US11394551B2 (en) 2019-07-17 2022-07-19 Microsoft Technology Licensing, Llc Secure authentication using puncturing
US11133962B2 (en) 2019-08-03 2021-09-28 Microsoft Technology Licensing, Llc Device synchronization with noise symbols and pattern recognition
US11258779B2 (en) * 2020-01-14 2022-02-22 Cisco Technology, Inc. Wireless LAN (WLAN) public identity federation trust architecture
US11528276B2 (en) * 2020-04-16 2022-12-13 Bank Of America Corporation System for prevention of unauthorized access using authorized environment hash outputs
US11425123B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for network isolation of affected computing systems using environment hash outputs
US11481484B2 (en) 2020-04-16 2022-10-25 Bank Of America Corporation Virtual environment system for secure execution of program code using cryptographic hashes
US11423160B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for analysis and authorization for use of executable environment data in a computing system using hash outputs
EP3901926A1 (en) * 2020-04-21 2021-10-27 Deutsche Post AG Validation method and apparatus for identification documents
CN111797285A (zh) * 2020-06-30 2020-10-20 深圳壹账通智能科技有限公司 字符串模糊匹配方法、装置、设备及可读存储介质
US11625477B2 (en) * 2020-08-13 2023-04-11 Capital One Services, Llc Automated password generation
US11657142B2 (en) 2021-05-12 2023-05-23 Micro Focus Llc Stateless password manager
CN113806730B (zh) * 2021-09-18 2024-03-08 北京安天网络安全技术有限公司 一种安全密码输入方法、系统、设备及介质
US20230198978A1 (en) * 2021-12-22 2023-06-22 Mcafee, Llc Deterministic hash to secure personal data and passwords

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172535A1 (en) * 2002-11-27 2004-09-02 Rsa Security Inc. Identity authentication system and method
US20130326611A1 (en) * 2012-05-30 2013-12-05 Google Inc. Variable-strength security based on time and/or number of partial password unlocks
US20150254444A1 (en) * 2014-03-06 2015-09-10 International Business Machines Corporation Contemporaneous gesture and keyboard entry authentication

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3829355B2 (ja) * 1996-04-09 2006-10-04 松下電器産業株式会社 利用者照合装置
JP2002091921A (ja) * 2000-09-20 2002-03-29 Nippon Telegraph & Telephone East Corp 認証方法及び認証装置
US7299359B2 (en) * 2003-04-23 2007-11-20 Apple Inc. Apparatus and method for indicating password quality and variety
US7886345B2 (en) 2004-07-02 2011-02-08 Emc Corporation Password-protection module
US8145912B2 (en) 2005-03-01 2012-03-27 Qualcomm Incorporated System and method for using a visual password scheme
US8046827B2 (en) * 2007-06-12 2011-10-25 Francisco Corella Access control of interaction context of application
US8386461B2 (en) 2008-06-16 2013-02-26 Qualcomm Incorporated Method and apparatus for generating hash mnemonics
US8131738B2 (en) * 2008-12-30 2012-03-06 International Business Machines Corporation Search engine service utilizing hash algorithms
US8495715B2 (en) 2009-02-23 2013-07-23 Oracle International Corporation Techniques for credential auditing
JP5289152B2 (ja) * 2009-04-14 2013-09-11 三菱電機株式会社 生体認証装置および生体認証システム
CN101902461B (zh) * 2010-04-07 2013-01-30 北京星网锐捷网络技术有限公司 一种数据流内容过滤的方法及装置
US8832807B1 (en) 2010-08-05 2014-09-09 Christine E. Kuo Method and apparatus for asynchronous dynamic password
EP2686997B1 (en) 2011-03-14 2018-10-10 Qualcomm Incorporated Hybrid networking master passphrase
US9471772B2 (en) 2011-06-01 2016-10-18 Paypal, Inc. Password check by decomposing password
US8869305B1 (en) * 2011-09-22 2014-10-21 Symantec Corporation Systems and methods for implementing password-protection policies based on physical locations of mobile devices
JP2013131164A (ja) * 2011-12-22 2013-07-04 Internatl Business Mach Corp <Ibm> ロック機能を有する情報処理装置およびロック機能を実行させるためのプログラム
US8613066B1 (en) 2011-12-30 2013-12-17 Amazon Technologies, Inc. Techniques for user authentication
CN102693380A (zh) * 2012-05-07 2012-09-26 李良 一种密码验证方法
US9245107B2 (en) 2012-12-21 2016-01-26 Paypal, Inc. Systems and methods for determining a strength of a created credential
US20140189885A1 (en) * 2012-12-27 2014-07-03 Microsoft Corporation Permitting a user access to password protected data
US9135427B2 (en) 2013-01-30 2015-09-15 Arris Technology, Inc. Authentication using a subset of a user-known code sequence
US9654479B2 (en) * 2013-02-28 2017-05-16 Apple Inc. Private discovery of electronic devices
CN105830085B (zh) * 2014-01-31 2020-06-16 麦克赛尔株式会社 便携终端装置
US9390242B2 (en) * 2014-02-07 2016-07-12 Bank Of America Corporation Determining user authentication requirements based on the current location of the user being within a predetermined area requiring altered authentication requirements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172535A1 (en) * 2002-11-27 2004-09-02 Rsa Security Inc. Identity authentication system and method
US20130326611A1 (en) * 2012-05-30 2013-12-05 Google Inc. Variable-strength security based on time and/or number of partial password unlocks
US20150254444A1 (en) * 2014-03-06 2015-09-10 International Business Machines Corporation Contemporaneous gesture and keyboard entry authentication

Also Published As

Publication number Publication date
US20160294802A1 (en) 2016-10-06
US10091188B2 (en) 2018-10-02
EP3278528A1 (en) 2018-02-07
CN107431624B (zh) 2020-11-20
EP3300333A1 (en) 2018-03-28
CN107431624A (zh) 2017-12-01
JP2018514030A (ja) 2018-05-31
KR101977672B1 (ko) 2019-05-13
EP3278528B1 (en) 2018-09-05
JP6453486B2 (ja) 2019-01-16
WO2016160333A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
KR101977672B1 (ko) 가속화된 패스프레이즈 검증
US9491165B2 (en) Providing a service based on time and location based passwords
US11520868B2 (en) Multi-factor authentication with URL validation
US10255425B2 (en) Secure authentication protocol systems and methods
KR101970123B1 (ko) 듀얼 채널 신원 인증
US9690926B2 (en) User authentication based on established network activity
US11509642B2 (en) Location-based mobile device authentication
US20170308695A1 (en) Smart random password generation
EP2951950B1 (en) Methods for activation of an application on a user device
EP3289519B1 (en) Acquisition of a device fingerprint from an instance of a client application
US10582348B2 (en) Message-based management service enrollment
US20230171087A1 (en) Server Side Authentication
US20190052628A1 (en) Authenticate a first device based on a push message to a second device
EP4040720A1 (en) Secure identity card using unclonable functions
US11575666B2 (en) Website verification service

Legal Events

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