KR102005543B1 - 사용자 인증을 위한 장치 및 방법 - Google Patents

사용자 인증을 위한 장치 및 방법 Download PDF

Info

Publication number
KR102005543B1
KR102005543B1 KR1020170050550A KR20170050550A KR102005543B1 KR 102005543 B1 KR102005543 B1 KR 102005543B1 KR 1020170050550 A KR1020170050550 A KR 1020170050550A KR 20170050550 A KR20170050550 A KR 20170050550A KR 102005543 B1 KR102005543 B1 KR 102005543B1
Authority
KR
South Korea
Prior art keywords
authentication
user
icons
key
public key
Prior art date
Application number
KR1020170050550A
Other languages
English (en)
Other versions
KR20180117435A (ko
Inventor
임용훈
Original Assignee
임용훈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 임용훈 filed Critical 임용훈
Priority to KR1020170050550A priority Critical patent/KR102005543B1/ko
Priority to PCT/KR2018/004573 priority patent/WO2018194402A2/ko
Publication of KR20180117435A publication Critical patent/KR20180117435A/ko
Application granted granted Critical
Publication of KR102005543B1 publication Critical patent/KR102005543B1/ko

Links

Images

Classifications

    • 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
    • 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/45Structures or tools for the administration of authentication
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)

Abstract

사용자의 인증에 있어서 보안을 강화하여 암호의 유출, 탈취, 도용을 차단할 수 있는 사용자 인증을 위한 장치 및 방법이 개시된다. 일 측면에 따른, 인증 요청자를 인증할 비밀 인증 팩터를 생성하는 인증 요청 장치는, 인증 검증 장치와 통신하는 통신 회로; 하나 이상의 프로세서; 및 상기 프로세서에 의해 실행 가능한 인스트럭션을 저장하는 메모리를 포함하고, 상기 프로세서는, (a) 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성하고, (b) 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성하고, (c) 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 상기 메모리에 로딩하며, (d) 상기 사용자 코어와 상기 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 상기 비밀 인증 팩터를 생성하고, (e) 상기 비밀 인증 팩터를 상기 인증 검증 장치에 전송한다.

Description

사용자 인증을 위한 장치 및 방법{APPARATUS AND METHOD FOR USER AUTHENTICATION}
본 발명은 사용자 인증에 관한 것으로서, 보다 구체적으로, 암호의 유출, 탈취, 도용을 차단할 수 있는 사용자 인증을 위한 장치 및 방법에 관한 것이다.
오늘날 세계 각국의 통신망이 상호 연결되어 인터넷을 통한 정보의 교환이 일반화되어 정보의 검색, 저장, 추출이 갈수록 활발해지고 있다. 반면, 특정 서버를 사용하는 사용자를 인식하는 기법은 초창기의 방법이 그대로 사용되고 있어서 개인 정보의 유출, 전산망 해킹(hacking) 등 그 역기능 현상 또한 심각한 사회문제가 되고 있다. 그동안 국내에서 발생한 대표적인 해킹 행위는 주로 단순 침입, 사용자 식별정보(예, ID) 도용, 자료 절취, 자료 변조 및 파괴 등이며 외국의 해킹 실태는 국내에 비하여 매우 심각한 실정이다.
기존의 일반적인 사용자 인증 기법은 사용자가 서버측에 자신의 식별정보(예, ID)와 패스워드(password)를 제공하면, 서버측은 모든 사용자의 패스워드에 대한 해쉬(hash) 함수를 저장하고 있어서, 수신한 패스워드의 해쉬값을 취하여, 두 값을 비교한 후 해당 사용자가 정당한 사용자인지 확인한다. 참고로 해쉬 함수는 일방향으로 계산이 가능한 반면, 역방향으로는 계산이 이론적으로 불가능한 함수를 말한다.
그러나 이러한 종래의 사용자 인증 기법은, 사용자 식별정보와 패스워드가 노출되면 개인 정보도 함께 노출될 수 있어 보안이 취약하고, 또한 인증 프로그램이 복제되어 사용되는 경우 역시 개인 정보가 유출될 수 있는 문제점이 있다. 또한 사용자 식별정보와 패스워드에 의한 일차원 인증으로 보안이 취약한 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로, 사용자의 인증에 있어서 보안을 강화하여 암호의 유출, 탈취, 도용을 차단할 수 있는 사용자 인증을 위한 장치 및 방법을 제공하는데 그 목적이 있다.
일 측면에 따른, 인증 요청자를 인증할 비밀 인증 팩터를 생성하는 인증 요청 장치는, 인증 검증 장치와 통신하는 통신 회로; 하나 이상의 프로세서; 및 상기 프로세서에 의해 실행 가능한 인스트럭션을 저장하는 메모리를 포함하고, 상기 프로세서는, (a) 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성하고, (b) 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성하고, (c) 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 상기 메모리에 로딩하며, (d) 상기 사용자 코어와 상기 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 상기 비밀 인증 팩터를 생성하고, (e) 상기 비밀 인증 팩터를 상기 인증 검증 장치에 전송한다.
상기 프로세서는, 상기 (b) 과정에서 상기 복수의 사용자 코드로서 난수 함수를 이용하여 복수의 난수를 생성하고, 상기 (d) 과정에서 상기 사용자 코어와, 상기 적어도 하나 이상의 사용자 코드에 대응하는 적어도 하나 이상의 난수에, 해쉬 함수를 적용하여 상기 비빌 인증 팩터를 생성할 수 있다.
상기 프로세서는, 상기 (b) 과정에서 상기 복수의 사용자 코드로서 0과 P(>0) 사이의 중복을 허용하는 복수의 자연수를 생성한 후, 상기 (c) 과정에서 적어도 하나의 사용자 코드로서 적어도 하나의 자연수를 로딩하고, 상기 (d) 과정에서 상기 사용자 코어를 순서를 갖는 상기 P 개의 블럭으로 분할하여 상기 적어도 하나 이상의 자연수에 대응하는 순서의 적어도 하나 이상의 블럭을 선택한 후, 그 선택한 적어도 하나 이상의 블럭에 해쉬 함수를 적용하여 상기 비밀 인증 팩터를 생성할 수 있다.
상기 프로세서는, 상기 (b) 과정에서 표시된 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 저장하고, 인증 실행시에 상기 (a) 내지 상기 (e) 과정을 반복 수행하되, 상기 (b) 과정에서, 상기 저장된 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 이용할 수 있다.
상기 프로세서는, 상기 (a) 과정에서 생성한 사용자 코어를 저장하며, 상기 (b) 과정에서 표시된 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 저장하고, 인증 실행시에 상기 (a) 내지 상기 (e) 과정을 반복 수행하되, 상기 (a) 및 (b) 과정에서 상기 저장한 사용자 코어, 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 이용할 수 있다.
상기 프로세서는, 상기 인증 요청자의 개인키와 공개키를 생성하여 저장하고, 상기 인증 검증 장치로부터 상기 인증 검증 장치의 공개키를 수신하여 저장하며, 상기 인증 검증 장치로 상기 인증 요청자의 공개키를 전송하고, 상기 (a) 과정에서 생성한 사용자 코어를 저장하는데 있어서, 상기 인증 요청자의 공개키로 암호화하여 저장하거나, 상기 인증 요청자의 공개키로 암호화한 후 상기 인증 검증 장치의 공개키로 재암호화하거나, 또는 상기 인증 검증 장치의 공개키로 암호화하여 저장하고, 상기 인증 실행시에 그 역과정을 수행하여 사용자 코어를 복원할 수 있다.
상기 프로세서는, 상기 인증 요청자의 개인키와 공개키를 생성하여 저장하고, 상기 인증 검증 장치로부터 상기 인증 검증 장치의 공개키를 수신하여 저장하며, 상기 인증 검증 장치로 상기 인증 요청자의 공개키를 전송하고, 상기 (e) 과정에서 상기 비밀 인증 팩터를 상기 인증 요청자의 개인키로 암호화한 후 상기 인증 검증 장치의 공개키로 재암호화하여 상기 인증 검증 장치에 전송할 수 있다.
상기 프로세서는, 상기 인증 요청자의 임시 개인키와 임시 공개키를 새로 생성하여 저장하고, 상기 비밀 인증 팩터를 상기 인증 요청자의 임시 개인키로 암호화한 후 상기 인증 검증 장치의 공개키로 재암호화하여 상기 인증 검증 장치에 전송함으로써, 상기 인증 검증 장치로 전송한 상기 인증 요청자의 공개키를 상기 인증 요청자의 임시 공개키로 갱신할 수 있다.
상기 프로세서는, 상기 인증 요청 장치의 고유 값을 해쉬 연산하여 디바이스 인증 키를 생성하고, 상기 디바이스 인증 키를 상기 인증 검증 장치의 공개키로 암호화하여 상기 메모리 및 상기 인증 검증 장치에 저장하며, 인증 실행시에, 새로운 디바이스 인증 키를 생성하고 그 새로운 디바이스 인증 키와 상기 메모리에 저장된 디바이스 인증 키를 상기 인증 검증 장치에 전송함으로써 상기 인증 요청 장치에 대한 디바이스 인증을 수행할 수 있다.
상기 프로세서는, 인증 실행시에 상기 (a) 내지 상기 (e) 과정을 수행하되, 상기 (e) 과정에서 상기 비밀 인증 팩터와 타임 스탬프에 해쉬 함수를 적용하여 생성한 일회용 비밀 인증 팩터와, 상기 타임 스탬프를 함께 상기 인증 검증 장치로 전송할 수 있다.
상기 프로세서는, 상기 (a) 과정에서 선택된 디지털 객체, 이에 대한 색인 정보로서의 난수, 상기 난수를 수신할 전화번호를 상기 인증 검증 장치에 저장할 수 있다.
상기 프로세서는, 상기 인증 요청자의 개인키와 공개키를 생성하여 저장하고, 상기 인증 검증 장치로부터 상기 인증 검증 장치의 공개키를 수신하여 저장하며, 상기 인증 검증 장치로 상기 인증 요청자의 공개키를 전송하고, 상기 사용자 코어와 상기 인증 요청 장치의 디바이스 인증 키를 결합한 후 그 결합 결과를 상기 인증 요청자의 공개키로 암호화하고 상기 인증 검증 장치의 공개키로 재암호화하여 저장하며, 인증 실행시에, 그 역과정을 수행하여 상기 결합 결과를 복원한 후 복원된 결합 결과에서 분리한 디바이스 인증 키와 실시간으로 새로 생성한 디바이스 인증 키가 일치하면 상기 복원된 결합 결과에서 분리한 사용자 코어를 이용하고, 상기 인증 요청 장치의 고유 값을 해쉬 연산하여 상기 디바이스 인증 키를 생성할 수 있다.
다른 측면에 따른 인증 검증 장치와 통신하는 인증 요청 장치에서 인증 요청자를 인증할 비밀 인증 팩터를 생성하는 방법은, (a) 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성하는 단계; (b) 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성하는 단계; (c) 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 상기 메모리에 로딩하는 단계; (d) 상기 사용자 코어와 상기 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 상기 비밀 인증 팩터를 생성하는 단계; 및 (e) 상기 비밀 인증 팩터를 상기 인증 검증 장치에 전송하는 단계를 포함한다.
또 다른 측면에 따른, 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 인증 요청자를 인증할 비밀 인증 팩터를 생성하여 인증 검증 장치로 전송하는 방법을 수행하도록 하는 인스트럭션을 저장하는 비일시적 컴퓨터 판독 가능한 기억 매체로서, 상기 방법은, (a) 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성하는 단계; (b) 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성하는 단계; (c) 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 상기 메모리에 로딩하는 단계; (d) 상기 사용자 코어와 상기 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 상기 비밀 인증 팩터를 생성하는 단계; 및 (e) 상기 비밀 인증 팩터를 상기 인증 검증 장치에 전송하는 단계를 포함한다.
일 실시예에 따르면, 인증 요청자를 인증하는 인증 키로서 사용되는 비밀 인증 팩터를 인증 요청자가 선택한 디지털 객체의 해쉬 값을 이용하여 생성한다. 따라서 디지털 객체의 유추가 불가능하여 보안을 강화한다.
또한, 일 실시예에 따르면, 상기 비밀 인증 팩터를 생성할 때, 그래픽 인터페이스를 이용하여 인증 요청자별로 서로 다른 개인화된 사용자 코드를 이용함으로써 이중 보안을 수행한다.
또한, 일 실시예에 따르면, 디지털 객체의 해쉬 값이나 비밀 인증 팩터를 PKI(Public Key Infrastructure)의 암호화 키를 이용하여 보관함으로써 보안을 강화한다.
도 1은 본 발명의 일 실시예에 따른 인증 시스템을 나타낸 도면이다.
도 2는 도 1의 인증 요청 장치의 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 비밀 인증 팩터를 생성하여 인증 검증 장치에 등록하는 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 인증 실행 방법을 설명하는 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 인증 실행 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 인증 요청 장치의 디바이스 인증 키를 인증 검증 장치에 등록하는 방법을 설명하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 인증 요청 장치의 디바이스 인증 방법을 설명하는 흐름도이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 인증 시스템을 나타낸 도면이고, 도 2는 도 1의 인증 요청 장치의 구성을 나타낸 도면이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 인증 시스템은, 인증 요청 장치(100) 및 인증 검증 장치(200) 그리고 이들을 연결하는 통신망(300)을 포함한다.
인증 요청 장치(100)는 인증 프로그램을 설치하고 그 인증 프로그램을 통해 비밀 인증 팩터를 생성하며 이를 인증 요청자의 인증 키로서 상기 인증 검증 장치(200)에 전송하여 등록한다. 그리고 인증 요청 장치(100)는 인증 요청자의 인증 실행시에 비밀 인증 팩터를 생성하여 인증 검증 장치(200)로 전송하고, 그 전송된 비밀 인증 팩터와 인증 검증 장치(200)에 기 등록되어 있는 비밀 인증 팩터와의 비교 결과에 따른 인증 응답(실패 또는 성공)을 인증 검증 장치(200)로부터 수신한다. 인증 요청 장치(100)는 스마트폰과 같은 이동통신단말 또는 퍼스널 컴퓨터, 웨어러블 디바이스, IOT(Internet Of Things) 디바이스 등일 수 있다. 그리고 인증 검증 장치(200)는 인증 요청 장치(100)와 마찬가지로 스마트폰과 같은 이동통신단말 또는 퍼스널 컴퓨터, 웨어러블 디바이스, IOT 디바이스 등일 수 있고, 또는 서버일 수도 있다. 역할에 따라 웨어러블 디바이스 등의 장치들은 인증 요청 장치(100)가 될 수도 있고, 또는 인증 검증 장치(200)가 될 수도 있다.
도 2에 도시된 바와 같이, 인증 요청 장치(100)는, 메모리(110), 메모리 제어기(121), 하나 이상의 프로세서(CPU)(122), 주변 인터페이스(123), 입출력(I/O) 서브시스템(130), 디스플레이 장치(141), 입력 장치(142) 및 RF 회로(152)를 포함한다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신한다. 도 2에 도시한 여러 구성요소는 하나 이상의 신호 처리 및/또는 애플리케이션 전용 집적 회로(application specific integrated circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.
메모리(110)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 일부 실시예에서, 메모리(110)는 하나 이상의 프로세서(122)로부터 멀리 떨어져 위치하는 저장 장치, 예를 들어 RF 회로(152)와, 인터넷, 인트라넷, LAN(Local Area Network), WLAN(Wide LAN), SAN(Storage Area Network) 등, 또는 이들의 적절한 조합과 같은 통신 네트워크(도시하지 않음)를 통하여 액세스되는 네트워크 부착형(attached) 저장 장치를 더 포함할 수 있다. 프로세서(122) 및 주변 인터페이스(123)와 같은 인증 요청 장치(100)의 다른 구성요소에 의한 메모리(110)로의 액세스는 메모리 제어기(121)에 의하여 제어될 수 있다.
주변 인터페이스(123)는 인증 요청 장치(100)의 입출력 주변 장치를 프로세서(122) 및 메모리(110)와 연결한다. 하나 이상의 프로세서(122)는 다양한 소프트웨어 프로그램 및/또는 메모리(110)에 저장되어 있는 명령어 세트를 실행하여 장치(100)를 위한 여러 기능을 수행하고 데이터를 처리한다.
일부 실시예에서, 주변 인터페이스(123), 프로세서(122) 및 메모리 제어기(121)는 칩(120)과 같은 단일 칩 상에서 구현될 수 있다. 일부 다른 실시예에서, 이들은 별개의 칩으로 구현될 수 있다.
I/O 서브시스템(130)은 디스플레이 장치(141), 입력 장치(142)와 같은 인증 요청 장치(100)의 입출력 주변장치와 주변 인터페이스(123) 사이에 인터페이스를 제공한다.
디스플레이 장치(141)는 LCD(liquid crystal display) 기술 또는 LPD(light emitting polymer display) 기술을 사용할 수 있고, 이러한 디스플레이 장치(141)는 용량형, 저항형, 적외선형 등의 터치 디스플레이일 수 있다. 터치 디스플레이는 단말과 사용자 사이에 출력 인터페이스 및 입력 인터페이스를 제공한다. 터치 디스플레이는 사용자에게 시각적인 출력을 표시한다. 시각적 출력은 텍스트, 그래픽, 비디오와 이들의 조합을 포함할 수 있다. 시각적 출력의 일부 또는 전부는 사용자 인터페이스 대상에 대응할 수 있다. 터치 디스플레이는 사용자 입력을 수용하는 터치 감지면을 형성한다.
프로세서(122)는 인증 요청 장치(100)에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리(110)로부터 검색된 명령어들을 이용하여, 인증 요청 장치(100)의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다.
일부 실시예에서, 소프트웨어 구성요소는 운영 체제(111), 그래픽 모듈(명령어 세트)(112) 및 인증 프로그램(명령어 세트)(113)이 메모리(110)에 탑재(설치)된다.
운영 체제(111)는, 예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS 또는 VxWorks, 안드로이드 등과 같은 내장 운영체제일 수 있고, 일반적인 시스템 태스크(task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다.
그래픽 모듈(112)은 디스플레이 장치(141) 상에 그래픽을 제공하고 표시하기 위한 주지의 여러 소프트웨어 구성요소를 포함한다. "그래픽(graphics)"이란 용어는 텍스트, 웹 페이지, 아이콘(예컨대, 소프트 키를 포함하는 사용자 인터페이스 대상), 디지털 이미지, 비디오, 애니메이션 등을 제한 없이 포함하여, 사용자에게 표시될 수 있는 모든 대상을 포함한다.
RF 회로(152)는 전자파를 송수신한다. RF 회로(152)는 전기 신호를 전자파로 또는 그 반대로 변환하며 이 전자파를 통하여 통신 네트워크, 다른 이동형 게이트웨이 및 통신 장치와 통신한다. RF 회로(152)는 예를 들어 안테나 시스템, RF 트랜시버, 하나 이상의 증폭기, 튜너, 하나 이상의 오실레이터, 디지털 신호 처리기, CODEC 칩셋, 가입자 식별 모듈(subscriber identity module, SIM) 카드, 메모리 등을 포함하지만 이에 한정되지 않는 이러한 기능을 수행하기 위한 주지의 회로를 포함할 수 있다. RF 회로(152)는 월드 와이드 웹(World Wide Web, WWW)으로 불리는 인터넷, 인트라넷과 네트워크 및/또는, 셀룰러 전화 네트워크, 무선 LAN 및/또는 MAN(metropolitan area network)와 같은 무선 네트워크, 그리고 근거리 무선 통신에 의하여 다른 장치와 통신할 수 있다. 무선 통신은 GSM(Global System for Mobile Communication), EDGE(Enhanced Data GSM Environment), WCDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access), VoIP(voice over Internet Protocol), Wi-MAX, 블루투스(Bluetooth), 지그비(zigbee), 엔에프씨(NFC:Near Field Communication) 또는 본 출원의 출원 시점에 아직 개발되지 않은 통신 프로토콜을 포함하는 기타 다른 적절한 통신 프로토콜을 포함하지만 이에 한정되지 않는 복수의 통신 표준, 프로토콜 및 기술 중 어느 것을 이용할 수 있다.
인증 프로그램(113)은 인증 검증 장치(200)로부터 또는 앱 스토어로부터 다운로드되어 설치될 수 있다. 인증 프로그램(113)은 프로세서(122)로 하여금 비밀 인증 팩터를 생성하고 이를 인증 요청자의 인증 키로서 상기 인증 검증 장치(200)에 전송하여 등록하도록 구성될 수 있다. 또한 인증 프로그램(113)은, 인증 요청자의 인증 실행시에 프로세서(122)로 하여금 비밀 인증 팩터를 생성하여 인증 검증 장치(200)로 전송하고, 그 전송된 비밀 인증 팩터와 인증 검증 장치(200)에 기 등록되어 있는 비밀 인증 팩터와의 비교 결과에 따른 인증 응답(실패 또는 성공)을 인증 검증 장치(200)로부터 수신하도록 구성될 수 있다. 인증 프로그램(113)에 의해 프로세서(122)가 수행하는 동작들은 이하에서 도면을 참고하여 자세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 비밀 인증 팩터를 생성하여 인증 검증 장치에 등록하는 방법을 설명하는 흐름도이다.
도 3을 참조하면, 인증 요청 장치(100)는 상기 인증 요청자에 의해 지정된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성한다(S301). 인증 요청자는, 인증 요청 장치(100)에서 다수의 비디오, 오디오, 이미지, 문서 파일 등이 저장된 폴더를 열어 특정의 디지털 객체를 지정할 수 있다. 또는 인증 요청자는, 인증 요청 장치(100)와 연결된 USB 메모리, 웨어러블 디바이스, 지문 인식 카드 등의 분리 가능한 비일시적 기억 매체(non-transitory storage meduium)에서 다수의 비디오, 오디오, 이미지, 문서 파일 등이 저장된 폴더를 열어 디지털 객체를 지정할 수 있다. 또는 인증 요청자는, 인증 요청 장치(100)를 이용하여 촬영, 녹음 등의 방법으로 실시간으로 디지털 객체를 제작하여 지정할 수 있다. 또는, 인증 요청자는, 인증 요청 장치(100)로 접근이 가능한 원격 저장소(예컨대, 클라우드 저장소)에 저장된 다수의 비디오, 오디오, 이미지, 문서 파일 등에서 디지털 객체를 지정할 수 있다. 또는 인증 요청자는, 인증 검증 장치(200)로부터 제시되는 복수의 디지털 객체 중에서 특정 디지털 객체를 지정할 수도 있다.
인증 요청 장치(100)는, 사용자 코어를 저장하여 인증 실행시에 그 저장된 사용자 코어를 읽어들여 이용할 수 있다. 이를 위해 인증 요청 장치(100)와 인증 검증 장치(200)는, PKI(Public Key Infrastructure)의 암호화 키, 즉 개인키와 공개키를 생성하여 공개키를 상호 교환할 수 있다. 인증 요청 장치(100)는 인증 요청자의 공개키로 사용자 코어를 암호화하여 별도의 분리 가능한 비일시적 기억 매체나 인증 검증 장치(200)에 저장하고, 인증 실행시에 인증 요청자의 개인키로 복호화하여 이용할 수 있다. 또는 인증 요청 장치(100)는, 인증 요청자의 공개키로 사용자 코어를 암호화한 후 인증 검증 장치(200)의 공개키로 재암호화하여 별도의 분리 가능한 비일시적 기억 매체나 인증 검증 장치(200)에 저장하고, 인증 실행시에 인증 검증 장치(200)의 개인키로 1차 복호화한 후 인증 요청자의 개인키로 2차 복호화하여 이용할 수 있다. 인증 검증 장치(200)의 공개키로 재암호화하고 복호화하는 과정을 거치는 경우, 인증 검증 장치(200)의 신뢰성을 확보할 수 있다.
또는, 인증 요청 장치(100)는 디바이스 인증 키와 사용자 코어를 결합한 후, 그 결합 결과를 인증 요청자의 공개키로 암호화한 후 인증 검증 장치(200)의 공개키로 재암호화하여 별도의 분리 가능한 비일시적 기억 매체나 인증 검증 장치(200)에 저장한다. 그리고 인증 실행시에, 인증 요청 장치(100)는, 그 암호화되어 저장된 결합 결과를 인증 검증 장치(200)의 개인키로 1차 복호화한 후 인증 요청자의 개인키로 2차 복호화하고, 복호화된 결합 결과에서 디바이스 인증 키를 분리한다. 이후 인증 요청 장치(100)는, 실시간으로 생성한 디바이스 인증 키와 상기 분리한 디바이스 인증 키를 비교하여, 일치하면 상기 복호화된 결합 결과에서 사용자 코어를 분리하여 이용하고, 일치하지 않으면 인증 실패로 처리한다. 디바이스 인증 키는 이하에서 자세히 설명한다.
인증 요청 장치(100)는, 사용자 코어를 별도로 저장하지 않고 인증 실행시마다 인증 요청자로부터 디지털 객체를 선택받아 사용자 코어를 실시간으로 생성하여 이용할 수 있다.
인증 요청 장치(100)는, 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 디스플레이 장치(141)에 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성한다(S303). 인증 요청 장치(100)는, 인증 검증 장치(200)로부터 디자인 템플릿의 리스트를 수신하고 그 중에서 하나를 인증 요청자로부터 선택받을 수 있고, N(2 이상의 자연수) 개의 아이콘을 인증 요청 장치(200)로부터 수신하여 상기 디자인 템플릿에 배치할 수 있다. 또는 인증 요청 장치(100)는, 인증 검증 장치(200)로부터 디자인 템플릿의 리스트를 수신하고 그 중에서 하나를 인증 요청자로부터 선택받을 수 있고, K(K>N, N은 2 이상의 자연수) 개의 아이콘을 인증 요청 장치(200)로부터 수신하여 이 중에서 N 개의 아이콘을 인증 요청자로부터 선택받을 수 있다. 또는 인증 요청 장치(200)는 인증 검증 장치(200)로부터 디자인 템플릿의 리스트를 수신하고 그 중에서 하나를 인증 요청자로부터 선택받고, 인증 요청자가 직접 제작하거나 가지고 있는 이미지를 이용하여 복수의 아이콘을 배치할 수 있다. 이때, 인증 요청 장치(100)는, 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면, 그리고 복수의 사용자 코드를 메모리(110)에 저장하거나, 또는 인증 검증 장치(200)로 전송하여 인증 검증 장치(200)에 저장할 수 있다.
인증 요청 장치(100)는, 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 메모리(110)에 로딩한다(S307).
인증 요청 장치(100)는, 상기 단계 S301에서 생성한 사용자 코어와, 상기 메모리(110)에 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 비밀 인증 팩터를 생성한다(S309).
예를 들어, 인증 요청 장치(100)는, 상기 복수의 사용자 코드로서 난수 함수를 이용하여 복수의 난수를 생성하고, 상기 사용자 코어와, 상기 적어도 하나 이상의 사용자 코드에 대응하는 적어도 하나 이상의 난수에, 해쉬 함수를 적용하여 비밀 인증 팩터를 생성할 수 있다.
또는, 인증 요청 장치(100)는, 상기 복수의 사용자 코드로서 0과 P(>0) 사이의 중복을 허용하는 복수의 자연수를 생성한다. 예를 들어, 1, 3, 3, 5, 7 등과 같이 중복을 허용하는 복수의 자연수를 생성한다. 그리고 인증 요청 장치(100)는, 상기 사용자 코어를, 순서를 갖는 P 개의 블럭으로 분할한다. 즉 사용자 코어는 디지털 값으로서 P 개의 블럭으로 분할되고 P 개의 블럭은 순서를 갖는다. 다음으로, 인증 요청 장치(100)는, 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드로서 이에 대응하는 적어도 하나 이상의 자연수를 로딩한다. 그리고 인증 요청 장치(100)는, 상기 P 개의 블럭 중에서 상기 적어도 하나 이상의 자연수에 대응하는 순서의 적어도 하나 이상의 블럭을 선택한다. 예를 들어, 상기 복수의 사용자 코드로서 복수의 자연수가, 상기와 같이 1, 3, 3, 5, 7이고, 인증 요청자가 선택한 아이콘들의 사용자 코드들이 1, 3, 3이라면, 상기 P 개의 블럭 중에서 1번째 블럭 하나와, 3번째 블럭을 두 번 선택한다. 인증 요청 장치(100)는, 그 선택한 적어도 하나 이상의 블럭을 단순 나열하거나 순서를 변경하여 나열한 후 해쉬 함수를 적용하여 상기 비밀 인증 팩터를 생성한다.
인증 요청 장치(100)는, 단계 S309에서 생성한 비밀 인증 팩터를 인증 요청자의 인증 키로서 인증 검증 장치(200)에 전송하여 등록한다(S311). 이때, 인증 요청 장치(100)는, 비밀 인증 팩터를 인증 요청자의 개인키로 암호화한 후 인증 검증 장치(200)의 공개키로 재암호화하여 인증 검증 장치(200)로 전송할 수 있다. 인증 실행시에, 인증 검증 장치(200)는, 암호화된 비밀 인증 팩터를 인증 검증 장치(200)의 개인키로 1차 복호화한 후, 인증 요청자의 공개키로 2차 복호화하여 최종적으로 비밀 인증 팩터를 추출할 수 있다.
도 4는 본 발명의 일 실시예에 따른 인증 실행 방법을 설명하는 흐름도이다. 도 4를 참조한 실시예는 도 3을 참조하여 설명한 실시예 과정 이후의 인증 실행시를 나타낸다. 도 4를 참조한 실시예는 인증 실행시 인증 요청자가 사용자 코어를 실시간으로 생성하는 경우이다.
도 4를 참조하면, 인증 요청 장치(100)는 인증 요청자로부터 디지털 객체를 선택받는다(S401). 인증 요청자는, 도 3을 참조하여 설명한 실시예에서 비밀 인증 팩터를 생성하여 등록할 때 사용한 디지털 객체와 동일한 디지털 객체를 선택한다. 인증 요청자는, 인증 요청 장치(100)에서 다수의 비디오, 오디오, 이미지, 문서 파일 등이 저장된 폴더를 열어 특정의 디지털 객체를 지정할 수 있고, 이외 도 3을 참조하여 설명한 다양한 방식으로 디지털 객체를 선택할 수 있다.
인증 요청 장치(100)는, 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성한다(S403).
다음으로, 인증 요청 장치(100)는, 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 디스플레이 장치(141)에 표시한다(S405). 이때, 인증 요청 장치(100)는, 인증 화면을 메모리(111)에서 로딩하여 표시하거나, 또는 인증 검증 장치(200)로부터 수신하여 표시할 수 있다.
또한, 인증 요청 장치(100)는, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 로딩한다(S407). 인증 요청 장치(100)는, 메모리(111)에 저장된 복수의 사용자 코드를 이용하거나, 또는 인증 검증 장치(200)로부터 복수의 사용자 코드를 수신하여 로딩할 수 있다. 여기서 사용자 코드는 도 3을 참조하여 설명한 난수 또는 자연수이다.
인증 요청 장치(100)는, 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 추출한다(S409). 그리고 인증 요청 장치(100)는, 상기 단계 S403에서 생성한 사용자 코어와, 상기 추출된 상기 적어도 하나 이상의 사용자 코드를 이용하여 비밀 인증 팩터를 생성한다(S411). 비밀 인증 팩터의 생성 방법은, 도 3을 참조하여 설명한 실시예의 단계 S309의 방법과 동일하다.
인증 요청 장치(100)는, 단계 S411에서 생성한 비밀 인증 팩터를 인증 검증 장치(200)로 전송하며 인증을 요청한다(S413). 인증 검증 장치(200)는, 단계 S413에서 수신된 비밀 인증 팩터와, 도 3을 참조하여 설명한 실시예의 단계 S311에서 저장한 비밀 인증 팩터를 비교하여 동일하면 인증 성공으로 판단하고 동일하지 않으면 인증 실패로 판단한다.
한편, 단계 S413에서 인증 요청 장치(100)는, 비밀 인증 팩터를 인증 요청자의 개인키로 암호화한 후 인증 검증 장치(200)의 공개키로 재암호화하여 인증 검증 장치(200)로 전송할 수 있다. 인증 검증 장치(200)는, 암호화된 비밀 인증 팩터를 인증 검증 장치(200)의 개인키로 1차 복호화한 후, 인증 요청자의 공개키로 2차 복호화하여 최종적으로 비밀 인증 팩터를 추출하고, 그 추출한 비밀 인증 팩터와 도 3을 참조하여 설명한 실시예의 단계 S311에서 저장한 비밀 인증 팩터를 비교하여 동일하면 인증 성공으로 판단하고 동일하지 않으면 인증 실패로 판단할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 인증 실행 방법을 설명하는 흐름도이다. 도 5를 참조한 실시예는 도 3을 참조하여 설명한 실시예 과정 이후의 인증 실행시를 나타낸다. 도 5를 참조한 실시예는 인증 실행시 암호화되어 있는 사용자 코어를 복호화하여 이용하는 경우이다.
도 5를 참조하면, 인증 요청 장치(100)는 분리 가능한 비일시적 기억 매체나 인증 검증 장치(200)에 암호화되어 있는 사용자 코어를 인증 요청자의 입력에 따라 복호화한다(S501). 사용자 코어의 암호화는 도 3을 참조하여 설명한 바와 같다. 즉 인증 요청 장치(100)는 인증 요청자의 공개키로 사용자 코어를 암호화하여 별도의 분리 가능한 비일시적 기억 매체나 인증 검증 장치(200)에 저장하고, 인증 실행시에 인증 요청자의 개인키로 복호화하여 사용자 코어를 추출할 수 있다. 또는 인증 요청 장치(100)는, 인증 요청자의 공개키로 사용자 코어를 암호화한 후 인증 검증 장치(200)의 공개키로 재암호화하여 별도의 분리 가능한 비일시적 기억 매체나 인증 검증 장치(200)에 저장하고, 인증 실행시에 인증 검증 장치(200)의 개인키로 1차 복호화한 후 인증 요청자의 개인키로 2차 복호화하여 사용자 코어를 추출할 수 있다.
인증 요청 장치(100)는, 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 디스플레이 장치(141)에 표시한다(S503). 이때, 인증 요청 장치(100)는, 인증 화면을 메모리(111)에서 로딩하여 표시하거나, 또는 인증 검증 장치(200)로부터 수신하여 표시할 수 있다.
또한, 인증 요청 장치(100)는, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 로딩한다(S505). 인증 요청 장치(100)는, 메모리(111)에 저장된 복수의 사용자 코드를 이용하거나, 또는 인증 검증 장치(200)로부터 복수의 사용자 코드를 수신하여 로딩할 수 있다. 여기서 사용자 코드는 도 3을 참조하여 설명한 난수 또는 자연수이다.
인증 요청 장치(100)는, 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 추출한다(S507). 그리고 인증 요청 장치(100)는, 상기 단계 S501에서 복호화한 사용자 코어와, 상기 추출된 상기 적어도 하나 이상의 사용자 코드를 이용하여 비밀 인증 팩터를 생성한다(S509). 비밀 인증 팩터의 생성 방법은, 도 3을 참조하여 설명한 실시예의 단계 S309의 방법과 동일하다.
인증 요청 장치(100)는, 단계 S509에서 생성한 비밀 인증 팩터를 인증 검증 장치(200)로 전송하며 인증을 요청한다(S511). 인증 검증 장치(200)는, 단계 S511에서 수신된 비밀 인증 팩터와, 도 3을 참조하여 설명한 실시예의 단계 S311에서 저장한 비밀 인증 팩터를 비교하여 동일하면 인증 성공으로 판단하고 동일하지 않으면 인증 실패로 판단한다.
한편, 단계 S511에서 인증 요청 장치(100)는, 비밀 인증 팩터를 인증 요청자의 개인키로 암호화한 후 인증 검증 장치(200)의 공개키로 재암호화하여 인증 검증 장치(200)로 전송할 수 있다. 인증 검증 장치(200)는, 암호화된 비밀 인증 팩터를 인증 검증 장치(200)의 개인키로 1차 복호화한 후, 인증 요청자의 공개키로 2차 복호화하여 최종적으로 비밀 인증 팩터를 추출하고, 그 추출한 비밀 인증 팩터와 도 3을 참조하여 설명한 실시예의 단계 S311에서 저장한 비밀 인증 팩터를 비교하여 동일하면 인증 성공으로 판단하고 동일하지 않으면 인증 실패로 판단할 수 있다.
도 6은 본 발명의 일 실시예에 따른 인증 요청 장치의 디바이스 인증 키를 인증 검증 장치에 등록하는 방법을 설명하는 흐름도이다.
도 6을 참조하면, 인증 요청 장치(100)는, 인증 요청 장치(100)의 고유 값을 해쉬 연산하여 디바이스 인증 키를 생성한다(S601). 여기서 고유 값은, 네트워크 인터페이스 카드(NIC)의 MAC 주소나, 하드웨어의 고유 정보 등을 포함하나 여기에 제한되지 않는다.
인증 요청 장치(100)는, 상기 다바이스 인증 키를 인증 검증 장치(200)의 공개키로 암호화한다(S603). 그리고 인증 요청 장치(100)는, 암호화된 디바이스 인증 키를 메모리(111)에 저장하고(S605), 또한 인증 검증 장치(200)로 전송하여 저장한다(S607).
도 7은 본 발명의 일 실시예에 따른 인증 요청 장치의 디바이스 인증 방법을 설명하는 흐름도이다.
도 6을 참조하여 설명한 실시예에 따라 인증 요청 장치(100)의 디바이스 인증 키가 암호화되어 인증 요청 장치(100)의 메모리(111) 및 인증 검증 장치(200)에 저장된 상태에서, 인증 요청 장치(100)는 인증 요청자의 인증 실행 전에, 디바이스 인증을 수행한다.
도 7을 참조하면, 인증 요청 장치(100)는, 새로운 디바이스 인증 키를 생성한다(S701). 즉 인증 요청 장치(100)는, 인증 요청자의 인증 실행 전에, 인증 요청 장치(100)의 고유 값을 해쉬 연산하여 새로운 디바이스 인증 키를 생성한다.
그리고, 인증 요청 장치(100)는, 메모리(111)에 기 저장되어 있는 암호화된 디바이스 인증 키와, 상기 새로운 디바이스 인증 키를 함께 인증 검증 장치(200)로 전송한다(S703).
인증 검증 장치(200)는, 상기 단계 S703에서 수신된 암호화된 디바이스 인증 키를 인증 검증 장치(200)의 개인키로 복호화하고, 또한 도 6의 단계 S607에서 수신하여 기 저장하고 있는 암호화된 디바이스 인증 키를 인증 검증 장치(200)의 개인키로 복호화한다(S705).
인증 검증 장치(200)는, 단계 S705에서 복호화한 두 개의 디바이스 인증 키와, 상기 단계 S703에서 수신된 새로운 디바이스 인증 키가 모두 동일한지 판단한다(707). 모두 동일하면, 인증 검증 장치(200)는, 디바이스 인증에 성공한 것으로 결정하고(S711), 하나라도 동일하지 않으면 디바이스 인증에 실패한 것으로 결정한다(S709).
도 6 및 도 7을 참조하여 설명한 디바이스 인증 방법에 따라 인증 요청자의 인증을 수행하기 전에 디바이스 인증을 수행함으로써, 디바이스 인증에 성공할 때만 인증 요청자의 인증을 수행하여 보안을 강화할 수 있다. 즉 미리 등록되지 않은 장치에서 인증 요청자의 인증이 시도되면 인증 자체가 이루어지지 않도록 하여 보안을 강화한다.
도 6 및 도 7은 인증 요청 장치(100)의 디바이스 인증에 관해 설명하였으나, 도 6 및 도 7을 참조하여 설명한 인증 방법은, 사용자 코어가 저장되는 분리 가능한 비일시적 기억 매체에 대해서도 동일하게 적용될 수 있다. 즉, 사용자 코어를 분리 가능한 비일시적 기억 매체에 저장하고 인증 실행시에 분리 가능한 비일시적 기억 매체에서 사용자 코어를 읽어와 이용할 때, 분리 가능한 비일시적 기억 매체가 미리 지정된 것이 아니면, 인증 요청자의 인증을 실행하지 않는다. 즉 지정된 분리 가능한 비일시적 기억 매체가 아닌 분리 가능한 비일시적 기억 매체에 사용자 코어를 복사하여 이용하는 것을 차단하는 것이다.
한편, 상술한 실시예에서, 인증 요청 장치(100)는, 비밀 인증 팩터를 인증 요청자의 개인키로 암호화한 후 인증 검증 장치(200)의 공개키로 재암호화하여 인증 검증 장치(200)로 전송할 수 있다. 그리고 인증 실행시에, 인증 검증 장치(200)는, 암호화된 비밀 인증 팩터를 인증 검증 장치(200)의 개인키로 1차 복호화한 후, 인증 요청자의 공개키로 2차 복호화하여 최종적으로 비밀 인증 팩터를 추출할 수 있다. 그런데, 인증 요청자의 개인키가 분실되거나 삭제되거나 유출되어 재생성이 필요한 경우가 발생할 수 있다. 이때, 인증 요청 장치(100)는, 인증 요청자의 임시 개인키와 임시 공개키를 새로 생성하여 저장하고 임시 공개키는 인증 검증 장치(200)에 공유한 후, 비밀 인증 팩터를 상기 인증 요청자의 임시 개인키로 암호화한 후 상기 인증 검증 장치(200)의 공개키로 재암호화하여 상기 인증 검증 장치(200)에 전송한다. 그러면, 인증 검증 장치(200)는, 기 저장되어 있는 암호화된 비밀 인증 팩터를 인증 검증 장치(200)의 개인키로 1차 복호화하고, 인증 요청자의 이전 공개키로 2차 복호화하여 비밀 인증 팩터(이하, 제 1 비밀 인증 팩터)를 추출한다. 그리고 인증 검증 장치(200)는, 임시 개인키 등으로 암호화된 비밀 인증 팩터를 인증 검증 장치(200)의 개인키로 1차 복호화하고, 인증 요청자의 임시 공개키로 2차 복호화하여 비밀 인증 팩터(이하, 제 2 비밀 인증 팩터)를 추출한다. 인증 검증 장치(200)는, 상기 제 1 비밀 인증 팩터와 상기 제 2 비밀 인증 팩터가 동일하면, 기존 암호화된 비밀 인증 팩터를, 임시 개인키 등으로 암호화된 비밀 인증 팩터로 갱신하고, 인증 요청자의 기존 공개키를 임시 공개키로 갱신한다. 이때, 사용자 코어도 인증 요청자의 이전 공개키로 암호화되어 있는 경우 새로운 공개키, 즉 상기 임시 공개키로 암호화하여 갱신한다.
한편, 사용자 코어를 인증 실행시마다 매번 생성할 때, 인증 요청자는 사용자 코어를 생성하는데 사용할 디지털 객체를 인증 검증 장치(200)에서 검색하여 이용할 수 있다. 이때 인증 요청 장치(100)는, 디지털 객체, 그리고 이에 대한 색인 정보로서의 난수, 그리고 난수를 수신할 인증 요청자의 전화번호를 인증 검증 장치(200)에 함께 저장할 수 있다. 인증 실행시, 인증 검증 장치(200)는 인증 요청자의 전화번호로 상기 색인 정보로서의 난수를 문자 메시지 형태로 전송하고, 인증 요청자는 그 문자 메시지 형태로 수신된 난수를 힌트로 하여 인증 검증 장치(200)에서 디지털 객체를 검색하여 다운로드할 수 있다.
또한, 실시 형태에 따라, 인증 요청 장치(100)는, 인증 실행 단계에서 비밀 인증 팩터와 타임 스탬프를 결합하여 해쉬 연산함으로써 일회용 비밀 인증 팩터를 생성한다. 그리고 인증 요청 장치(100)는 일회용 비밀 인증 팩터를 인증 요청자의 개인키 및 인증 검증 장치(200)의 공개키로 순차 암호화하여 상기 타임 스탬프와 함께 인증 검증 장치(200)로 전송한다. 인증 검증 장치(200)는 인증 검증 장치(200)의 개인키 및 인증 요청자의 공개키로 일회용 비밀 인증 팩터를 순차적으로 복호화한다. 그리고 인증 검증 장치(200)는, 기 저장된 비밀 인증 팩터를 복호화한 후 상기 타임 스탬프와 결합하여 해쉬 연산하고, 그 해쉬 연산 값과 상기 일회용 비밀 인증 팩터와 비교하여 일치하면 인증 성공으로 판단할 수 있다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100 : 인증 요청 장치
200 : 인증 검증 장치
300 : 통신망

Claims (14)

  1. 인증 요청자를 인증할 인증 키로서의 비밀 인증 팩터를 생성하는 인증 요청 장치에 있어서,
    인증 검증 장치와 통신하는 통신 회로;
    하나 이상의 프로세서; 및
    상기 프로세서에 의해 실행 가능한 인스트럭션을 저장하는 메모리를 포함하고,
    상기 프로세서는,
    (a) 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성하고,
    (b) 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성하고,
    (c) 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 상기 메모리에 로딩하며,
    (d) 상기 사용자 코어와 상기 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 상기 비밀 인증 팩터를 생성하고,
    (e) 상기 비밀 인증 팩터를 상기 인증 검증 장치에 전송하는 인증 요청 장치.
  2. 제 1 항에 있어서,
    상기 프로세서는,
    상기 (b) 과정에서 상기 복수의 사용자 코드로서 난수 함수를 이용하여 복수의 난수를 생성하고,
    상기 (d) 과정에서 상기 사용자 코어와, 상기 적어도 하나 이상의 사용자 코드에 대응하는 적어도 하나 이상의 난수에, 해쉬 함수를 적용하여 상기 비밀 인증 팩터를 생성하는 인증 요청 장치.
  3. 제 1 항에 있어서,
    상기 프로세서는,
    상기 (b) 과정에서 상기 복수의 사용자 코드로서 0과 P(>0) 사이의 중복을 허용하는 복수의 자연수를 생성한 후, 상기 (c) 과정에서 적어도 하나의 사용자 코드로서 적어도 하나의 자연수를 로딩하고,
    상기 (d) 과정에서 상기 사용자 코어를 순서를 갖는 상기 P 개의 블럭으로 분할하여 상기 적어도 하나 이상의 자연수에 대응하는 순서의 적어도 하나 이상의 블럭을 선택한 후, 그 선택한 적어도 하나 이상의 블럭에 해쉬 함수를 적용하여 상기 비밀 인증 팩터를 생성하는 인증 요청 장치.
  4. 제 1 항에 있어서,
    상기 프로세서는,
    상기 (b) 과정에서 표시된 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 저장하고,
    인증 실행시에 상기 (a) 내지 상기 (e) 과정을 반복 수행하되, 상기 (b) 과정에서, 상기 저장된 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 이용하는 인증 요청 장치.
  5. 제 1 항에 있어서,
    상기 프로세서는,
    상기 (a) 과정에서 생성한 사용자 코어를 저장하며, 상기 (b) 과정에서 표시된 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 저장하고,
    인증 실행시에 상기 (a) 내지 상기 (e) 과정을 반복 수행하되, 상기 (a) 및 (b) 과정에서 상기 저장한 사용자 코어, 복수의 아이콘, 디자인 템플릿 및 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 이용하는 인증 요청 장치.
  6. 제 5 항에 있어서,
    상기 프로세서는,
    상기 인증 요청자의 개인키와 공개키를 생성하여 저장하고, 상기 인증 검증 장치로부터 상기 인증 검증 장치의 공개키를 수신하여 저장하며, 상기 인증 검증 장치로 상기 인증 요청자의 공개키를 전송하고,
    상기 (a) 과정에서 생성한 사용자 코어를 저장하는데 있어서, 상기 인증 요청자의 공개키로 암호화하여 저장하거나, 상기 인증 요청자의 공개키로 암호화한 후 상기 인증 검증 장치의 공개키로 재암호화하거나, 또는 상기 인증 검증 장치의 공개키로 암호화하여 저장하고, 상기 인증 실행시에 그 역과정을 수행하여 사용자 코어를 복원하는 인증 요청 장치.
  7. 제 1 항에 있어서,
    상기 프로세서는,
    상기 인증 요청자의 개인키와 공개키를 생성하여 저장하고, 상기 인증 검증 장치로부터 상기 인증 검증 장치의 공개키를 수신하여 저장하며, 상기 인증 검증 장치로 상기 인증 요청자의 공개키를 전송하고,
    상기 (e) 과정에서 상기 비밀 인증 팩터를 상기 인증 요청자의 개인키로 암호화한 후 상기 인증 검증 장치의 공개키로 재암호화하여 상기 인증 검증 장치에 전송하는 인증 요청 장치.
  8. 제 7 항에 있어서,
    상기 프로세서는,
    상기 인증 요청자의 임시 개인키와 임시 공개키를 새로 생성하여 저장하고, 상기 비밀 인증 팩터를 상기 인증 요청자의 임시 개인키로 암호화한 후 상기 인증 검증 장치의 공개키로 재암호화하여 상기 인증 검증 장치에 전송함으로써, 상기 인증 검증 장치로 전송한 상기 인증 요청자의 공개키를 상기 인증 요청자의 임시 공개키로 갱신하는 인증 요청 장치.
  9. 제 1 항에 있어서,
    상기 프로세서는,
    상기 인증 요청 장치의 고유 값을 해쉬 연산하여 디바이스 인증 키를 생성하고,
    상기 디바이스 인증 키를 상기 인증 검증 장치의 공개키로 암호화하여 상기 메모리 및 상기 인증 검증 장치에 저장하며,
    인증 실행시에, 새로운 디바이스 인증 키를 생성하고 그 새로운 디바이스 인증 키와 상기 메모리에 저장된 디바이스 인증 키를 상기 인증 검증 장치에 전송함으로써 상기 인증 요청 장치에 대한 디바이스 인증을 수행하는 인증 요청 장치.
  10. 제 1 항에 있어서,
    상기 프로세서는,
    인증 실행시에 상기 (a) 내지 상기 (e) 과정을 수행하되, 상기 (e) 과정에서 상기 비밀 인증 팩터와 타임 스탬프에 해쉬 함수를 적용하여 생성한 일회용 비밀 인증 팩터와, 상기 타임 스탬프를 함께 상기 인증 검증 장치로 전송하는 인증 요청 장치.
  11. 제 1 항에 있어서,
    상기 프로세서는,
    상기 (a) 과정에서 선택된 디지털 객체, 이에 대한 색인 정보로서의 난수, 상기 난수를 수신할 전화번호를 상기 인증 검증 장치에 저장하는 인증 요청 장치.
  12. 제 1 항에 있어서,
    상기 프로세서는,
    상기 인증 요청자의 개인키와 공개키를 생성하여 저장하고, 상기 인증 검증 장치로부터 상기 인증 검증 장치의 공개키를 수신하여 저장하며, 상기 인증 검증 장치로 상기 인증 요청자의 공개키를 전송하고,
    상기 사용자 코어와 상기 인증 요청 장치의 디바이스 인증 키를 결합한 후 그 결합 결과를 상기 인증 요청자의 공개키로 암호화하고 상기 인증 검증 장치의 공개키로 재암호화하여 저장하며, 인증 실행시에, 그 역과정을 수행하여 상기 결합 결과를 복원한 후 복원된 결합 결과에서 분리한 디바이스 인증 키와 실시간으로 새로 생성한 디바이스 인증 키가 일치하면 상기 복원된 결합 결과에서 분리한 사용자 코어를 이용하고,
    상기 인증 요청 장치의 고유 값을 해쉬 연산하여 상기 디바이스 인증 키를 생성하는 인증 요청 장치.
  13. 인증 검증 장치와 통신하는 인증 요청 장치에서 인증 요청자를 인증할 인증 키로서의 비밀 인증 팩터를 생성하는 방법에 있어서,
    (a) 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성하는 단계;
    (b) 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성하는 단계;
    (c) 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 메모리에 로딩하는 단계;
    (d) 상기 사용자 코어와 상기 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 상기 비밀 인증 팩터를 생성하는 단계; 및
    (e) 상기 비밀 인증 팩터를 상기 인증 검증 장치에 전송하는 단계를 포함하는 방법.
  14. 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 인증 요청자를 인증할 인증 키로서의 비밀 인증 팩터를 생성하여 인증 검증 장치로 전송하는 방법을 수행하도록 하는 인스트럭션을 저장하는 비일시적 컴퓨터 판독 가능한 기억 매체에 있어서,
    상기 방법은,
    (a) 상기 인증 요청자에 의해 선택된 디지털 객체에 해쉬 함수를 적용하여 사용자 코어를 생성하는 단계;
    (b) 복수의 아이콘 및 그 복수의 아이콘이 배치되는 디자인 템플릿을 포함하는 인증 화면을 표시하며, 상기 복수의 아이콘에 매핑되는 복수의 사용자 코드를 생성하는 단계;
    (c) 상기 복수의 아이콘 중 상기 인증 요청자에 의해 선택된 적어도 하나 이상의 아이콘에 매핑된 적어도 하나 이상의 사용자 코드를 메모리에 로딩하는 단계;
    (d) 상기 사용자 코어와 상기 로딩된 상기 적어도 하나 이상의 사용자 코드를 이용하여 상기 비밀 인증 팩터를 생성하는 단계; 및
    (e) 상기 비밀 인증 팩터를 상기 인증 검증 장치에 전송하는 단계를 포함하는 비일시적 컴퓨터 판독 가능한 기억 매체.
KR1020170050550A 2017-04-19 2017-04-19 사용자 인증을 위한 장치 및 방법 KR102005543B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170050550A KR102005543B1 (ko) 2017-04-19 2017-04-19 사용자 인증을 위한 장치 및 방법
PCT/KR2018/004573 WO2018194402A2 (ko) 2017-04-19 2018-04-19 사용자 인증을 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170050550A KR102005543B1 (ko) 2017-04-19 2017-04-19 사용자 인증을 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180117435A KR20180117435A (ko) 2018-10-29
KR102005543B1 true KR102005543B1 (ko) 2019-10-01

Family

ID=63856897

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170050550A KR102005543B1 (ko) 2017-04-19 2017-04-19 사용자 인증을 위한 장치 및 방법

Country Status (2)

Country Link
KR (1) KR102005543B1 (ko)
WO (1) WO2018194402A2 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101621002B1 (ko) * 2015-09-02 2016-05-13 주식회사 베이스인 네트웍스 이미지 배열을 이용한 로그인 서비스 제공 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4758175B2 (ja) * 2005-08-15 2011-08-24 株式会社みずほ銀行 利用者認証方法及び利用者認証プログラム
KR20120037330A (ko) * 2010-10-11 2012-04-19 (주) 나무인터넷 이미지객체를 이용한 로그인 인증 방법 및 그 시스템
KR101812765B1 (ko) * 2011-12-01 2017-12-28 주식회사 비즈모델라인 일회용코드와 매핑된 객체를 이용한 서비스 제공 방법 및 시스템
KR101714742B1 (ko) * 2015-10-22 2017-03-10 고려대학교 산학협력단 원격제어를 위한 인증 방법 및 서버

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101621002B1 (ko) * 2015-09-02 2016-05-13 주식회사 베이스인 네트웍스 이미지 배열을 이용한 로그인 서비스 제공 방법

Also Published As

Publication number Publication date
WO2018194402A3 (ko) 2018-12-13
WO2018194402A2 (ko) 2018-10-25
KR20180117435A (ko) 2018-10-29

Similar Documents

Publication Publication Date Title
US10277591B2 (en) Protection and verification of user authentication credentials against server compromise
EP3257194B1 (en) Systems and methods for securely managing biometric data
US9813400B2 (en) Computer-implemented systems and methods of device based, internet-centric, authentication
US9727715B2 (en) Authentication method and system using password as the authentication key
US9813247B2 (en) Authenticator device facilitating file security
US9118662B2 (en) Method and system for distributed off-line logon using one-time passwords
US20160104154A1 (en) Securing host card emulation credentials
US9769654B2 (en) Method of implementing a right over a content
KR101416542B1 (ko) 패스코드 관리 방법 및 장치
CN106452770B (zh) 一种数据加密方法、解密方法、装置和系统
CN109672521B (zh) 基于国密加密引擎实现的安全存储系统和方法
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
JP6756056B2 (ja) 身元検証による暗号チップ
US20180048471A1 (en) System and storage medium
US11321471B2 (en) Encrypted storage of data
US9443069B1 (en) Verification platform having interface adapted for communication with verification agent
US20150333909A1 (en) Information processing system and information processing method
KR102005543B1 (ko) 사용자 인증을 위한 장치 및 방법
US11516215B2 (en) Secure access to encrypted data of a user terminal
JP7119660B2 (ja) スマートスピーカ、セキュアエレメント及びプログラム
KR101746598B1 (ko) 사용자 인증을 위한 장치

Legal Events

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