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

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

Info

Publication number
KR20160131744A
KR20160131744A KR1020150064749A KR20150064749A KR20160131744A KR 20160131744 A KR20160131744 A KR 20160131744A KR 1020150064749 A KR1020150064749 A KR 1020150064749A KR 20150064749 A KR20150064749 A KR 20150064749A KR 20160131744 A KR20160131744 A KR 20160131744A
Authority
KR
South Korea
Prior art keywords
authentication key
user
authentication
program
secret
Prior art date
Application number
KR1020150064749A
Other languages
English (en)
Inventor
임용훈
Original Assignee
임용훈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 임용훈 filed Critical 임용훈
Priority to KR1020150064749A priority Critical patent/KR20160131744A/ko
Priority to PCT/KR2015/009523 priority patent/WO2016039568A1/ko
Publication of KR20160131744A publication Critical patent/KR20160131744A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

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

Abstract

본 발명의 일 측면에 따른 인증 서버와 통신하는 사용자 장치는, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고, 상기 프로그램은, 사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 비밀 해쉬값을 생성하여 저장하고, 상기 인증 서버로 상기 비밀 해쉬값을 전송하여 등록하는 비밀 해쉬값 생성 모듈; 사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하고, 상기 인증 서버로 상기 사용자 인증키를 전송하여 등록하는 사용자 인증키 생성 모듈; 상기 인증 서버에서 발급한 일회용 비밀 암호를 입력받는 일회용 비밀 암호 입력 모듈; 및 상기 일회용 비밀 암호 입력 모듈에서 입력받은 일회용 비밀 암호와 상기 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고 그 일회용 인증키를 상기 인증 서버로 전송하며, 그 전송한 일회용 인증키와 상기 인증 서버에서 생성한 일회용 인증키의 비교 결과를 상기 인증 서버로부터 수신하는 일회용 인증키 생성 모듈;을 포함한다.

Description

사용자 인증을 위한 장치 및 방법{APPARATUS AND METHOD FOR USER AUTHENTICATION}
본 발명은 사용자 인증에 관한 것으로서, 보다 구체적으로, 해쉬 함수를 이용하여 다중 보안을 실현하는 사용자 인증을 위한 장치 및 방법에 관한 것이다.
오늘날 세계 각국의 통신망이 상호 연결되어 인터넷을 통한 정보의 교환이 일반화되어 정보의 검색, 저장, 추출이 갈수록 활발해지고 있는 반면에, 특정 서버를 사용하는 사용자를 인식하는 기법은 초창기의 방법이 그대로 사용되고 있어서 개인 정보의 누출, 전산망 해킹(hacking) 등 그 역기능 현상 또한 심각한 사회 문제로 대두되고 있다. 그동안 국내에서 발생한 대표적인 해킹 행위는 주로 단순 침입, 사용자 식별정보(ID) 도용, 자료 절취, 자료 변조 및 파괴 등이며 외국의 해킹 실태는 국내에 비하여 매우 심각한 실정이다.
기존의 일반적인 사용자 인증 방법은 사용자가 서버에 자신의 식별정보(ID)와 패스워드(password)를 제공하면, 서버는 사용자가 제공한 식별정보와 패스워드를 기 등록되어 있는 식별정보 및 패스워드와 비교하는 것이다. 그러나 이러한 종래의 사용자 인증 방법은, 사용자 식별정보 및 패스워드가 노출되면 개인 정보도 함께 노출될 수 있어 보안이 취약하고, 또한 인증 프로그램이 복제되거나 복사되어 사용되는 경우 역시 개인 정보가 유출될 수 있는 문제점이 있다. 또한 식별정보와 패스워드에 의한 일차원 인증으로 보안이 취약한 문제점이 있다.
한국공개특허공보 제10-2010-0101887(2010.09.20)
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로, 복수의 안전 수단을 이용하여 보안을 강화하며 사용자를 인증하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 인증 서버와 통신하는 사용자 장치는, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고, 상기 프로그램은, 사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 비밀 해쉬값을 생성하여 저장하고, 상기 인증 서버로 상기 비밀 해쉬값을 전송하여 등록하는 비밀 해쉬값 생성 모듈; 사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하고, 상기 인증 서버로 상기 사용자 인증키를 전송하여 등록하는 사용자 인증키 생성 모듈; 상기 인증 서버에서 발급한 일회용 비밀 암호를 입력받는 일회용 비밀 암호 입력 모듈; 및 상기 일회용 비밀 암호 입력 모듈에서 입력받은 일회용 비밀 암호와 상기 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고 그 일회용 인증키를 상기 인증 서버로 전송하며, 그 전송한 일회용 인증키와 상기 인증 서버에서 생성한 일회용 인증키의 비교 결과를 상기 인증 서버로부터 수신하는 일회용 인증키 생성 모듈;을 포함한다.
상기 사용자 장치는, 사용자 장치의 고유 정보를 수집한 후 그 고유 정보를 해쉬 함수에 시드 값으로 입력하여 디바이스 인증키를 생성하여 저장하고, 그 디바이스 인증키를 상기 인증 서버로 전송하여 등록하는 디바이스 인증키 생성 모듈;을 더 포함할 수 있다.
상기 디바이스 인증키 생성 모듈은, 상기 프로그램의 실행시마다 디바이스 인증키를 생성하여 기 저장된 디바이스 인증키와 비교하고, 일치하지 않는 경우 상기 프로그램을 삭제할 수 있다.
상기 사용자 장치는, 타임 스탬프를 생성한 후 그 타임 스탬프와 상기 비밀 해쉬값 및 상기 디바이스 인증키를 해쉬 함수에 시드 값으로 입력하여 프로그램 인증키를 생성하여 저장하고, 그 프로그램 인증키를 상기 인증 서버로 전송하여 등록하는 프로그램 인증키 생성 모듈;을 더 포함할 수 있다.
상기 사용자 장치는, 상기 인증 서버로부터 본인 인증 알림 메시지를 수신함에 따라 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 사전 인증 요청을 상기 인증 서버로 전송하는 사전 인증 요청 모듈;을 더 포함하고, 상기 일회용 비밀 암호는, 상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키의 비교 결과, 모두 일치할 경우 상기 인증 서버에서 발급될 수 있다.
상기 사전 인증 요청 모듈은, 상기 인증 서버가 서비스 서버로부터 상기 사용자의 식별정보를 수신함에 따라 상기 인증 서버로부터 상기 본인 인증 알림 메시지를 수신할 수 있다.
상기 사용자 장치는, 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 상기 인증 서버로 전송하는 변경 모듈;을 더 포함하고, 상기 변경 모듈은, 상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈을 제어하여 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키가 생성되도록 할 수 있다.
상기 사용자 장치는, 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 상기 인증 서버로 전송하는 변경 모듈;을 더 포함하고, 상기 변경 모듈은, 상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 사용자 인증키 생성 모듈을 제어하여 새로운 사용자 인증키가 생성되도록 할 수 있다.
상기 사용자 장치는, 상기 프로그램의 재설치시, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈, 상기 디바이스 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈에서 제어하여 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 생성한 후, 그 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 상기 인증 서버로 전송하며, 그 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 인증 서버로부터 재설치 등록 완료 응답을 수신하는 변경 모듈;을 더 포함할 수 있다.
상기 사용자 장치는, 상기 사용자 장치의 변경시, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈, 상기 디바이스 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈을 제어하여 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 생성한 후, 그 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 상기 인증 서버로 전송하며, 그 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키와 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 인증 서버로부터 디바이스 변경 등록 완료 응답을 수신하는 변경 모듈;을 더 포함할 수 있다.
상기 일회용 비밀 암호는, 상기 인증 서버에서 상기 비밀 해쉬값을 이용하여 생성될 수 있다.
상기 일회용 비밀 암호는, 타임 스탬프 및 상기 비밀 해쉬값을 이용하여 생성될 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면에 따른, 사용자 장치와 통신하는 인증 장치는, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고, 상기 프로그램은, 사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 생성된 비밀 해쉬값을 상기 사용자 장치로부터 수신하여 등록하는 비밀 해쉬값 등록 모듈; 사용자의 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성된 사용자 인증키를 상기 사용자 장치로부터 수신하여 등록하는 사용자 인증키 등록 모듈; 일회용 비밀 암호를 생성하여 상기 사용자에게 전송하는 일회용 비밀 암호 생성 모듈; 및 상기 사용자 장치로부터 일회용 인증키를 수신하면, 그 수신된 일회용 인증키와, 상기 등록된 사용자 인증키 및 상기 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 일회용 인증키를 비교하여, 그 비교 결과를 상기 사용자 장치로 전송하는 일회용 인증키 비교 모듈;을 포함할 수 있다.
상기 인증 장치는, 상기 사용자 장치의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성한 디바이스 인증키를 상기 사용자 장치로부터 수신하여 등록하는 디바이스 인증키 등록 모듈;을 더 포함할 수 있다.
상기 인증 장치는, 타임 스탬프를 생성한 후 그 타임 스탬프와 상기 비밀 해쉬값 및 상기 디바이스 인증키를 해쉬 함수에 시드 값으로 입력하여 생성한 프로그램 인증키를 상기 사용자 장치로부터 수신하여 등록하는 프로그램 인증키 등록 모듈;을 더 포함할 수 있다.
상기 인증 장치는, 상기 사용자 장치로 본인 인증 알림 메시지를 전송하고 이에 대한 응답으로 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 사전 인증 요청을 상기 사용자 장치로부터 수신하는 사전 인증 요청 수신 모듈;을 더 포함하고, 상기 일회용 비밀 암호 생성 모듈은, 상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 비교하여, 모두 일치할 경우 상기 일회용 비밀 암호를 생성할 수 있다.
상기 사전 인증 요청 수신 모듈은, 서비스 서버로부터 상기 사용자의 식별정보를 수신함에 따라 상기 본인 인증 알림 메시지를 상기 사용자 장치로 전송할 수 있다.
상기 인증 장치는, 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 상기 사용자 장치로부터 수신하는 변경 등록 모듈;을 더 포함하고, 상기 변경 등록 모듈은, 상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 상기 사용자 장치로부터 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키를 수신하여 갱신할 수 있다.
상기 인증 장치는, 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 상기 사용자 장치로부터 수신하는 변경 등록 모듈;을 더 포함하고, 상기 변경 등록 모듈은, 상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 상기 사용자 장치로부터 새로운 사용자 인증키를 수신하여 갱신할 수 있다.
상기 인증 장치는, 상기 사용자 장치에서 프로그램 재설치시, 해당 사용자 장치에서 생성된 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 상기 사용자 장치로부터 수신하며, 그 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 프로그램 인증키를 갱신하는 변경 등록 모듈;을 더 포함할 수 있다.
상기 인증 장치는, 상기 사용자 장치의 변경시, 변경 후 사용자 장치로부터 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 수신하고, 그 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키와 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 디바이스 인증키 및 프로그램 인증키를 갱신하는 변경 등록 모듈;을 더 포함할 수 있다.
상기 일회용 비밀 암호 생성 모듈은, 상기 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성할 수 있다.
상기 일회용 비밀 암호 생성 모듈은, 타임 스탬프 및 상기 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성할 수 있다.
본 발명은, 개인화된 일회용 비밀 암호를 생성하여 사용자 인증에 사용함으로써 일회용 비밀 암호의 유출을 방지하여 보안을 강화한다.
또한, 본 발명은 사용자 인증키와 일회용 비밀 암호를 이용하여 생성된 일회용 인증키를 이용하여 사용자를 인증함으로써 본인이 서명하지 않았다는 사용자의 부인을 방지할 수 있다.
또한, 본 발명은 인증 프로그램을 복사해서 다른 사용자 단말에서 사용하거나 등록되지 않은 인증 프로그램을 이용하는 경우, 인증 실패 처리를 하여 보안을 강화한다.
도 1은 본 발명의 일 실시예에 따른 인증 시스템을 나타낸 도면이다.
도 2는 도 1의 사용자 단말의 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.
도 4는 도 1의 인증 서버의 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 사용자 단말에서 디바이스 인증키를 등록하는 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 비밀 해쉬값 및 프로그램 인증키를 등록는 방법을 설명하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 사용자 인증키를 등록하는 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 사용자가 서비스 서버에 회원 가입시 사용자를 인증하는 방법을 설명하는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 비밀 제수를 변경하는 방법을 설명하는 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 개인 비밀번호를 변경하는 방법을 설명하는 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 사용자 단말에서 인증 프로그램을 재설치하는 방법을 설명하는 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 사용자 단말을 변경하는 방법을 설명하는 흐름도이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 인증 시스템을 나타낸 도면이고, 도 2는 도 1의 사용자 단말의 구성을 나타낸 도면이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 인증 시스템은, 사용자 단말(100), 인증 서버(200), 통신망(300) 및 서비스 서버(400)를 포함한다.
사용자 단말(100)은 인증 프로그램을 설치하고 그 인증 프로그램을 통해 해쉬 알고리즘을 이용하여 비밀 해쉬값, 디바이스 인증키, 프로그램 인증키, 사용자 인증키를 생성하고 이를 인증용 정보로서 상기 인증 서버(200)에 전송하여 등록한다. 사용자 단말(100)은 인증용 정보로서 사용자 식별정보도 함께 인증 서버(200)에 전송하여 등록한다.
인증 서버(200)는 상기 인증용 정보를 저장하여 등록한다. 인증 서버(200)는 사용자 인증이 필요할 때, 사용자 단말(100)로부터 수신된 디바이스 인증키와 프로그램 인증키를 기 등록되어 있는 사용자의 디바이스 인증키 및 프로그램 인증키와 비교하여 사전 인증을 수행한다. 사전 인증에 성공하는 경우, 인증 서버(200)는 일회용 비밀 암호를 발급하여 사용자에게 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 상기 일회용 비밀 암호를 이용한 일회용 인증키를 수신하면, 기 등록되어 있는 사용자 인증키와 상기 발급한 일회용 비밀 암호를 이용하여 일회용 인증키를 생성하여 상기 사용자 단말(100)로부터 수신된 일회용 인증키와 비교하여 최종 인증을 수행한다.
인증 서버(200)는 상기 서비스 서버(400)로부터 사용자 식별정보를 수신하면 그 사용자 식별정보를 이용하여 사용자의 인증용 정보 및 사용자를 식별하고, 사용자 단말(100)과 상기 사전 인증 및 상기 최종 인증을 수행할 수 있다. 인증 서버(200)는 인증 결과를 서비스 서버(400)로 회신한다.
서비스 서버(400)는 로그인이 필요한 인터넷 웹 서버 또는 인터넷 뱅킹을 제공하는 금융 기관의 서버 또는 전자 결제를 제공하는 결제 서버 등일 수 있고, 또는 오프라인 키오스크나, 금융 기관과 같은 오프라인 상담 창구의 상담원 단말과 연결된 서버 등일 수 있다. 서비스 서버(400)는 사용자에 대한 본인 인증이 필요할 경우, 상기 인증 서버(200)로 사용자로부터 수신된 사용자 식별정보를 전송하며 본인 인증을 요청한다. 여기서 사용자 식별정보는 인증 서버(200)에 저장된 사용자 식별정보이다.
사용자 단말(100)은 스마트폰과 같은 이동통신단말 또는 퍼스널 컴퓨터 등일 수 있다. 도 2에 도시된 바와 같이, 사용자 단말(100)은, 메모리(110), 메모리 제어기(121), 하나 이상의 프로세서(CPU)(122), 주변 인터페이스(123), 입출력(I/O) 서브시스템(130), 디스플레이 장치(141), 입력 장치(142) 및 통신 회로(152)를 포함한다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신한다. 도 2에 도시한 여러 구성요소는 하나 이상의 신호 처리 및/또는 애플리케이션 전용 집적 회로(application specific integrated circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.
메모리(110)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 일부 실시예에서, 메모리(110)는 하나 이상의 프로세서(122)로부터 멀리 떨어져 위치하는 저장 장치, 예를 들어 통신 회로(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)"이란 용어는 텍스트, 웹 페이지, 아이콘(예컨대, 소프트 키를 포함하는 사용자 인터페이스 대상), 디지털 이미지, 비디오, 애니메이션 등을 제한 없이 포함하여, 사용자에게 표시될 수 있는 모든 대상을 포함한다.
통신 회로(152)는 유선으로 신호를 송수신하거나 무선으로 전자파를 송수신한다. 통신 회로(152)는 전기 신호를 전자파로 또는 그 반대로 변환하며 이 전자파를 통하여 통신 네트워크, 다른 이동형 게이트웨이 및 통신 장치와 통신한다. 통신 회로(152)는 예를 들어 안테나 시스템, RF 트랜시버, 하나 이상의 증폭기, 튜너, 하나 이상의 오실레이터, 디지털 신호 처리기, CODEC 칩셋, 가입자 식별 모듈(subscriber identity module, SIM) 카드, 메모리 등을 포함하지만 이에 한정되지 않는 이러한 기능을 수행하기 위한 주지의 회로를 포함할 수 있다. 통신 회로(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) 또는 앱 스토어로부터 다운로드되어 설치될 수 있고, 최초 설치 후 사용자에 의해 실행시, 인증 서버(200)에 접속하여 회원 가입 절차를 진행한다. 인증 프로그램(113)은 회원 정보로서, ID, 이름, 생년월일, 주소, 전화번호를 입력받아 인증 서버(200)로 전송할 수 있다. 인증 프로그램(113)은 회원 가입 승인 후, 비밀 해쉬값, 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 생성하여 이를 상기 인증 서버(200)에 인증용 정보로서 전송하여 등록한다. 이후 인증 프로그램(113)은 사용자가 서비스 서버(400)에 로그인을 하거나, 금융 거래, 또는 전자 상거래 등의 거래를 할 때, 상기 인증용 정보와 인증 서버(200)에서 발급된 일회용 비밀 암호로부터 생성된 일회용 인증키를 이용하여 상기 인증 서버(200)와 인증 과정을 수행한다. 이하에서 도 3을 참조하여 자세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 인증 프로그램의 구성을 나타내는 도면이다.
도 3에 도시된 바와 같이, 본 실시예에 따른 인증 프로그램(113)은 비밀 해쉬값 생성 모듈(210), 디바이스 인증키 생성 모듈(220), 프로그램 인증키 생성 모듈(230), 사용자 인증키 생성 모듈(240), 일회용 비밀 암호 입력 모듈(250), 일회용 인증키 생성 모듈(260), 사전 인증 요청 모듈(270) 및 변경 모듈(280)을 포함한다.
비밀 해쉬값 생성 모듈(210)은 입력 장치를 통해 사용자로부터 비밀 제수를 입력받는다. 여기서 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있으나 여기에 제한되는 것은 아니고 사용자만이 알 수 있는 데이터이다.
비밀 해쉬값 생성 모듈(210)은 상기 비밀 제수를 해쉬 함수에 시드 값으로 입력하여 나온 결과를 비밀 해쉬값으로 한다. 상기 비밀 해쉬값은 바이너리 파일로 저장될 수 있다. 비밀 해쉬값 생성 모듈(2210)은 상기 비밀 해쉬값을 인증 서버(200)로 전송하여 등록한다. 비밀 해쉬값 생성 모듈(210)에서 생성된 비밀 해쉬값은 사용자 단말(100)에 저장될 수 있고, 또는 통신 회로(152)를 통해 NFC 카드와 같이 별도의 저장 매체에 저장될 수도 있다. 비밀 해쉬값이 NFC 카드 등의 별도의 저장 매체에 저장되는 경우, 사용자 단말(100)에는 비밀 해쉬값이 저장되지 않는다.
디바이스 인증키 생성 모듈(220)은 인증 프로그램(113)의 최초 실행시 사용자 단말(100)의 고유 정보, 예를 들어 네트워크 인터페이스 카드(NIC)의 MAC 주소 또는 UUID(Universally Unique Identifier) 등을 수집하고 그 수집된 고유 정보를 이용하여 디바이스 인증키를 생성한다. 구체적으로, 디바이스 인증키 관리 모듈(220)은 상기 사용자 단말(100)의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성된 값을 디바이스 인증키로서 저장한다. 디바이스 인증키 생성 모듈(220)은 최초에 생성된 상기 디바이스 인증키를 인증 서버(200)로 전송하여 등록한다.
디바이스 인증키 생성 모듈(220)은 인증 프로그램(113)의 실행시마다 디바이스 인증키를 생성하고 상기 기 저장된 디바이스 인증키와 비교한다. 디바이스 인증키 생성 모듈(220)은, 비교 결과, 디바이스 인증키가 일치하지 않는 경우, 인증 프로그램(113)을 자동 삭제한다. 예를 들면, 사용자 단말(100)에 설치된 인증 프로그램(113)이 복제되어 다른 장치에 이전되어 실행되는 경우, 기 저장된 디바이스 인증키와 해당 실행시에 생성된 디바이스 인증키는 일치하지 않게 되어, 다른 장치에 복제된 인증 프로그램(113)은 자동 삭제된다.
프로그램 인증키 생성 모듈(230)은 상기 디바이스 인증키 생성 모듈(220)에서 생성된 디바이스 인증키와, 타임 스탬프, 그리고 상기 비밀 해쉬값을 이용하여 프로그램 인증키를 생성하여 저장한다. 프로그램 인증키는 바이너리 파일로 인증 프로그램(113)에 저장될 수 있다. 여기서 상기 타임 스탬프는 프로그램 인증키를 생성하는 시점의 시각을 나타내는 문자열이다. 프로그램 인증키 생성 모듈(230)은 최초 생성된 프로그램 인증키를 인증 서버(200)로 전송하여 등록한다. 비밀 해쉬값이 NFC 카드와 같은 별도의 저장 매체에 저장되어 있는 경우, 프로그램 인증키 생성 모듈(230)은 통신 회로(152)를 통해 NFC 카드 등의 저장 매체로부터 블루투스 통신 또는 NFC 통신 등의 근거리 통신을 수행하여 비밀 해쉬값을 리딩할 수 있다.
사용자 인증키 생성 모듈(240)은 상기 비밀 해쉬값 생성 모듈(210)에서 생성된 상기 비밀 해쉬값과, 입력 장치를 통해 사용자로부터 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다. 구체적으로, 사용자 인증키 생성 모듈(240)은 상기 비밀 해쉬값과 상기 입력된 개인 비밀번호를 해쉬 함수에 시드 값으로 입력하여 생성된 값을 사용자 인증키로 한다. 사용자 인증키 생성 모듈(240)은 최초 생성된 사용자 인증키를 인증 서버(200)로 전송하여 등록한다. 비밀 해쉬값이 NFC 카드와 같은 별도의 저장 매체에 저장되어 있는 경우, 사용자 인증키 생성 모듈(240)은 통신 회로(152)를 통해 NFC 카드 등의 저장 매체로부터 블루투스 통신 또는 NFC 통신 등의 근거리 통신을 수행하여 비밀 해쉬값을 리딩할 수 있다.
상기 개인 비밀번호는 예를 들어 6자리의 숫자일 수 있다. 그러나 여기에 제한되는 것은 아니고 숫자와 문자의 조합일 수도 있다. 비밀 제수와 비교하면, 비밀 제수는 장문의 문자열 또는 이미지 파일 등이나, 사용자 인증키 생성시 사용자로부터 입력되는 상기 개인 비밀번호는 일정한 자릿수의 숫자이다.
앞서 설명에서, 디바이스 인증키와 프로그램 인증키는 인증 프로그램(113)과 인증 서버(200)에 모두 저장되는 것으로 설명하였으나, 상기 사용자 인증키는 인증 프로그램(113)에 저장되지 않고, 인증 서버(200)에만 전송되어 저장되는 것이 바람직하다.
사용자는 인증 서버(200)에 회원 가입을 할 수 있고 회원 가입시 등록한 사용자 식별정보(예, ID)를 기준으로 상기 비밀 해쉬값, 상기 디바이스 인증키, 상기 프로그램 인증키 및 상기 사용자 인증키가 상기 인증 서버(200)에 인증용 정보로서 저장된다. 인증 서버(200)에는 사용자 식별정보뿐만 아니라, 이름, 생년 월일, 성별 등의 개인 정보도 저장될 수 있다.
일회용 비밀 암호 입력 모듈(250)은 인증 서버(200)에서 생성되어 사용자가 지정한 수신처로 수신된 일회용 비밀 암호를 입력받는다. 사용자가 지정한 수신처는 사용자 단말(100)이 될 수 있고, 또는 별도의 사용자가 휴대하는 웨어러블 디바이스일 수도 있으며, 또는 이메일 주소가 될 수 있다. 그러나 여기에 제한되지 않는다. 일회용 비밀 암호는 단문 메시지(SMS) 또는 푸쉬 메시지 형태로 수신될 수도 있다. 일회용 비밀 암호 입력 모듈(250)은 상기 일회용 비밀 암호를 키패드를 통해 입력받을 수 있고, 또는 이미지를 통해 입력받을 수도 있다.
일회용 인증키 생성 모듈(260)은 상기 일회용 비밀 암호 입력 모듈(250)에서 입력된 일회용 비밀 암호와, 상기 사용자 인증키 생성 모듈(240)에서 생성된 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고 이를 인증 서버(200)로 전송한다. 즉, 인증 서버(200)로부터 사용자에게 일회용 비밀 암호가 발급되면, 사용자는 사용자 단말(100)에서 개인 비밀번호와 상기 발급된 일회용 비밀 암호를 입력한다. 그러면, 사용자 인증키 생성 모듈(240)에서 상기 개인 비밀번호를 이용하여 사용자 인증키를 생성하고, 일회용 인증키 생성 모듈(260)은 사용자 인증키와 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다.
사전 인증 요청 모듈(270)은 상기 일회용 비밀 암호를 이용한 최종 인증 전에 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키를 포함하는 사전 인증 요청을 인증 서버(200)로 전송하여 사전 인증을 받을 수 있다. 인증 서버(200)는 사전 인증 요청에 포함된 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키가, 기 등록되어 있는 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키와 동일한 경우, 일회용 비밀 암호를 발급한다.
변경 모듈(280)은, 비밀 제수의 변경, 개인 비밀번호의 변경, 인증 프로그램의 재설치에 따른 프로그램 인증키의 변경, 사용자 단말(100)의 변경에 따른 디바이스 인증키 및 프로그램 인증키의 변경을 수행한다. 비밀 제수의 변경시, 비밀 해쉬값이 변경되므로 비밀 해쉬값을 이용하는 프로그램 인증키 및 사용자 인증키가 함께 변경된다. 개인 비밀번호의 변경시, 이를 이용하는 사용자 인증키가 함께 변경된다.
비밀 제수 변경
변경 모듈(280)은, 사용자로부터 비밀 제수 변경 입력이 수신되는 경우, 디바이스 인증키 및 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 인증 서버(200)로 전송한다. 상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버(200)에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 인증 서버(200)는 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(260)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(260)로 회신한다. 이와 같이 일치 응답이 회신되면, 변경 모듈(280)은 상기 비밀 해쉬값 생성 모듈(210), 상기 사용자 인증키 생성 모듈(240) 및 상기 프로그램 인증키 생성 모듈(230)을 제어하여 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키가 생성되도록 한다. 상기 비밀 해쉬값 생성 모듈(210), 상기 사용자 인증키 생성 모듈(240) 및 상기 프로그램 인증키 생성 모듈(230)은 새로 생성한 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 인증 서버(200)로 전송하고, 인증 서버(200)는 기 등록되어 있는 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 새로운 값으로 갱신한다. 변경 모듈(280)은 인증 서버(200)로부터 비밀 제수 변경 완료 응답을 수신한다.
개인 비밀번호 변경
변경 모듈(280)은, 사용자로부터 개인 비밀번호 변경 입력이 수신되는 경우, 디바이스 인증키 및 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 인증 서버(200)로 전송한다. 상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버(200)에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 인증 서버(200)는 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(260)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(260)로 회신한다. 이와 같이 일치 응답이 회신되면, 변경 모듈(280)은 상기 사용자 인증키 생성 모듈(240)을 제어하여 새로운 사용자 인증키가 생성되도록 한다. 상기 사용자 인증키 생성 모듈(240)은 새로운 사용자 인증키를 인증 서버(200)로 전송하고, 인증 서버(200)는 기 등록되어 있는 사용자 인증키를 새로운 사용자 인증키로 갱신한다. 변경 모듈(280)은 인증 서버(200)로부터 개인 비밀번호 변경 완료 응답을 수신한다.
인증 프로그램의 재설치
인증 프로그램의 재설치시, 비밀 해쉬값 생성 모듈(210)은 사용자로부터 비밀 제수를 입력받아 비밀 해쉬값을 생성하여 저장한다. 또한, 디바이스 인증키 생성 모듈(220) 및 프로그램 인증키 생성 모듈(230)도 디바이스 인증키와 프로그램 인증키를 새로 생성한다. 사용자 인증키 생성 모듈(240)은 사용자 인증키를 새로 생성한다. 인증 프로그램을 재설치하는 경우, 사용자 단말(100)은 변경이 없고 비밀 제수 및 개인 비밀번호도 동일하므로, 디바이스 인증키, 사용자 인증키, 비밀 해쉬값은 기존과 동일하지만, 프로그램 인증키는 변경된다. 변경 모듈(280)은 상기 사용자 인증키 생성 모듈(240), 상기 디바이스 인증키 생성 모듈(220) 및 상기 프로그램 인증키 생성 모듈(230)에서 생성된 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 인증 서버(200)로 전송한다. 인증 서버(200)는 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하는 경우, 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(260)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(260)로 회신한다. 그리고 인증 서버(200)는 기존에 등록되어 있는 프로그램 인증키를 상기 재설치 등록 메시지에 포함된 새로운 프로그램 인증키로 갱신한다. 변경 모듈(280)은 인증 서버(200)로부터 재설치 등록 완료 응답을 수신한다.
사용자 단말의 변경
사용자 단말(100)이 변경되면 인증 프로그램도 재설치된다. 비밀 해쉬값 생성 모듈(210)은 사용자로부터 비밀 제수를 입력받아 비밀 해쉬값을 생성하여 저장한다. 또한, 디바이스 인증키 생성 모듈(220) 및 프로그램 인증키 생성 모듈(230)도 디바이스 인증키와 프로그램 인증키를 새로 생성한다. 사용자 인증키 생성 모듈(240)은 사용자 인증키를 새로 생성한다. 사용자 단말(100)이 변경되면 인증 프로그램도 재설치되지만, 비밀 제수 및 개인 비밀번호는 동일하므로, 디바이스 인증키 및 프로그램 인증키는 기존과 달라지고, 사용자 인증키 및 비밀 해쉬값은 기존과 동일하다. 변경 모듈(280)은 상기 사용자 인증키 생성 모듈(240), 상기 디바이스 인증키 생성 모듈(220) 및 상기 프로그램 인증키 생성 모듈(230)에서 생성된 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 인증 서버(200)로 전송한다. 인증 서버(200)는 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 기 등록되어 있는 사용자 인증키와 일치하는 경우, 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 생성 모듈(260)은 사용자로부터 입력된 일회용 비밀 암호와 사용자 인증키를 이용하여 일회용 인증키를 생성하여 인증 서버(200)로 전송한다. 인증 서버(200)는 사용자 단말(100)로부터 수신된 일회용 인증키와 자체 생성한 일회용 인증키가 일치하는 경우, 일치 응답을 일회용 인증키 생성 모듈(260)로 회신한다. 그리고 인증 서버(200)는 기존에 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 상기 디바이스 변경 등록 메시지에 포함된 새로운 디바이스 인증키 및 새로운 프로그램 인증키로 갱신한다. 변경 모듈(280)은 인증 서버(200)로부터 디바이스 등록 완료 응답을 수신한다.
상술한 비밀 제수의 변경, 개인 비밀번호의 변경, 인증 프로그램의 재설치에 따른 프로그램 인증키의 변경, 사용자 단말(100)의 변경에 따른 디바이스 인증키 및 프로그램 인증키의 변경시에, 인증 서버(200)는 사용자 단말(100)로부터 사용자 식별정보를 수신하여 기 등록되어 있는 사용자 식별정보와의 일치 여부를 확인할 수 있다.
도 4는 도 1의 인증 서버의 구성을 나타낸 도면으로, 도 4에 도시된 바와 같이, 인증 서버(200)는 비밀 해쉬값 등록 모듈(410), 사용자 인증키 등록 모듈(420), 일회용 비밀 암호 생성 모듈(430), 일회용 인증키 비교 모듈(440), 디바이스 인증키 등록 모듈(450), 프로그램 인증키 등록 모듈(460), 사전 인증 요청 수신 모듈(470) 및 변경 등록 모듈(480)을 포함한다. 이들은 메모리에 설치되는 프로그램으로 구현될 수 있고, 또는 하드웨어 및 소트프웨어의 결합으로 구현될 수 있다. 인증 서버(200)는 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템 및 통신 회로를 포함하여 구성된다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신한다.
메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 일부 실시예에서, 메모리는 하나 이상의 프로세서로부터 멀리 떨어져 위치하는 저장 장치를 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다.
주변 인터페이스는 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 인증 서버(200)를 위한 여러 기능을 수행하고 데이터를 처리한다.
I/O 서브시스템은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다.
프로세서는 인증 서버(200)에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 인증 서버(200)의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. 일부 실시예에서, 소프트웨어 구성요소는 운영 체제, 그래픽 모듈(명령어 세트) 및 인증 처리 프로그램(명령어 세트)이 메모리에 탑재(설치)된다.
운영 체제는, 예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS 또는 VxWorks, 안드로이드 등과 같은 내장 운영체제일 수 있고, 일반적인 시스템 태스크(task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다.
비밀 해쉬값 등록 모듈(410)은, 사용자 단말(100)로부터 비밀 해쉬값을 수신하여 등록한다. 여기서 등록은 사용자 식별정보와 함께 저장하는 것을 의미한다. 인증 서버(200)는 사용자의 회원 가입을 처리하며 생성한 사용자 식별정보를 기준으로 비밀 해쉬값을 등록할 수 있다. 비밀 해쉬값에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.
사용자 인증키 등록 모듈(420)은 사용자 단말(100)로부터 사용자 인증키를 수신하여 등록한다. 사용자 인증키에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.
일회용 비밀 암호 생성 모듈(430)은 아래 식1 또는 식2와 같이 일회용 비밀 암호를 생성할 수 있다.
(식1)
ENC_eHPSS=f(eHPSS+TimeStamp),
일회용 비밀 암호=f(ENC_eHPSS+TimesTAMP)
(식2)
일회용 비밀 암호=f(eHPSS+TimesTAMP)
(식1) 및 (식2)에서 eHPSS는 비밀 해쉬값, f()는 해쉬 함수이다.
f(ENC_eHPSS+TimesTAMP) 또는 f(eHPSS+TimesTAMP)에서 타임 스탬프는 다른 값으로 대체될 수 있고, 또한 타임 스탬프 및 비밀 해쉬값 이외 추가적으로 다른 데이터를 시드 값으로 더 넣어 일회용 비밀 암호를 생성할 수 있다. 일회용 비밀 암호의 생성시 비밀 해쉬값이 이용되므로 일회용 비밀 암호는 개인화된 일회용 비밀 암호가 된다.
일회용 비밀 암호 생성 모듈(430)은 상기 생성한 일회용 비밀 암호를 사용자가 지정한 수신처로 전송한다. 일회용 비밀 암호는 문자 메시지(SMS) 또는 푸시 메시지 또는 이메일 또는 ARS(Automatic Response Service) 등의 형태로 전송될 수 있다. 이를 위해 일회용 비밀 암호 생성 모듈(430)은 사용자로부터 전화번호 또는 이메일 주소 등을 수신할 수 있다.
일회용 인증키 비교 모듈(440)은, 사용자 단말(100)로부터 일회용 인증키를 수신하면, 자체 생성한 일회용 인증키와 비교한다. 사용자 단말(100)에서 일회용 인증키를 생성하는 방법은 앞서 설명하였으므로 여기서는 설명을 생략한다. 일회용 인증키 비교 모듈(440)은, 상기 일회용 비밀 암호 생성 모듈(430)에서 사용자에게 발급된 일회용 비밀 암호와 상기 사용자 인증키 등록 모듈(420)에서 등록한 사용자의 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고, 그 일회용 인증키를 상기 사용자 단말(100)로부터 일회용 인증키를 비교한다. 일회용 인증키 비교 모듈(440)은 일회용 인증키 비교 결과를 사용자 단말(100)로 전송한다.
디바이스 인증키 등록 모듈(450)은 사용자 단말(100)로부터 디바이스 인증키를 수신하여 등록한다. 디바이스 인증키에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.
프로그램 인증키 등록 모듈(460)은, 사용자 단말(100)로부터 프로그램 인증키를 수신하여 등록한다. 프로그램 인증키에 관해서는 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.
인증 서버(200)는 사용자의 회원 가입을 처리하며 생성한 사용자 식별정보를 기준으로 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 저장할 수 있다.
사전 인증 요청 수신 모듈(470)은, 서비스 서버(400)로부터 사용자의 본인 인증을 위한 사용자 식별정보를 수신하면 이에 대응하는 사용자 단말(100)로 본인 인증 알림 메시지를 전송한다. 본인 인증 알림 메시지가 사용자 단말(100)로 수신됨에 따라 사용자 단말(100)은 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키를 포함하는 사전 인증 요청을 전송하고, 사전 인증 요청 수신 모듈(470)은 그 사전 인증 요청을 수신한다.
일회용 비밀 암호 생성 모듈(430)은, 상기 사전 인증 요청에 포함된 사용자 식별정보를 이용하여 인증 서버(200)에 기 등록되어 있는 디바이스 인증키와 프로그램 인증키를 검색한다. 일회용 비밀 암호 생성 모듈(430)은, 검색된 디바이스 인증키 및 프로그램 인증키와, 상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와 비교하여 일치하는 경우 일회용 비밀 암호를 생성하여 사용자가 지정한 수신처에 전송한다.
일회용 인증키 비교 모듈(440)은, 사용자 단말(100)로부터 일회용 인증키를 수신하면, 자체 생성한 일회용 인증키와 비교하고, 일치할 경우, 상기 서비스 서버(400)로 본인 인증 성공 응답을 전송한다. 일치하지 않을 경우, 일회용 인증키 비교 모듈(440)은, 본인 인증 실패 응답을 상기 서비스 서버(400)로 전송한다.
변경 등록 모듈(480)은, 비밀 제수의 변경 등록, 개인 비밀번호의 변경 등록, 인증 프로그램의 재설치에 따른 프로그램 인증키의 변경 등록, 사용자 단말(100)의 변경에 따른 디바이스 인증키 및 프로그램 인증키의 변경 등록을 수행한다. 비밀 제수의 변경시, 프로그램 인증키 및 사용자 인증키가 함께 변경되어 등록된다. 개인 비밀번호의 변경시, 이를 이용하는 사용자 인증키가 함께 변경 등록된다.
비밀 제수 변경
변경 등록 모듈(480)은, 디바이스 인증키 및 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 사용자 단말(100)로부터 수신한다. 변경 등록 모듈(480)은 상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 일회용 비밀 암호 생성 모듈(430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(480)은, 사용자 단말(100)로부터 새로 생성한 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 수신하여 기 등록되어 있는 비밀 해쉬값, 사용자 인증키 및 프로그램 인증키를 대체하여 갱신한다.
개인 비밀번호 변경
변경 등록 모듈(480)은, 디바이스 인증키 및 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 사용자 단말(100)로부터 수신한다. 변경 등록 모듈(480)은, 상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하는 경우, 일회용 비밀 암호 생성 모듈(430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(480)은, 사용자 단말(100)로부터 새로운 사용자 인증키를 수신하여 기 등록되어 있는 사용자 인증키를 대체하여 갱신한다.
인증 프로그램의 재설치
변경 등록 모듈(480)은, 사용자 단말(100)에서 인증 프로그램이 재설치됨에 따라 상기 사용자 단말(100)로부터 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 수신한다. 변경 등록 모듈(480)은, 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하는 경우, 일회용 비밀 암호 생성 모듈(430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(480)은 기 등록되어 있는 프로그램 인증키를 상기 재설치 등록 메시지에 포함된 프로그램 인증키로 대체하여 갱신한다.
사용자 단말의 변경
변경 등록 모듈(480)은, 사용자 단말(100)이 변경됨에 따라 변경 후 사용자 단말(100)로부터 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 수신한다. 변경 등록 모듈(480)은 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 기 등록되어 있는 사용자 인증키와 일치하는 경우, 일회용 비밀 암호 생성 모듈(430)을 제어하여 일회용 비밀 암호를 사용자에게 발급한다. 일회용 인증키 비교 모듈(440)은 일회용 인증키를 비교한 결과, 일치하는 경우, 일치 응답을 사용자 단말(100)로 전송한다. 그리고 변경 등록 모듈(480)은 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 상기 디바이스 변경 등록 메시지에 포함된 디바이스 인증키 및 프로그램 인증키로 대체하여 갱신한다.
도 5는 본 발명의 일 실시예에 따른 사용자 단말에서 디바이스 인증키를 등록하는 방법을 설명하는 흐름도이다.
도 5를 참조하면, 사용자 단말(100)은 통신망(300)을 통해 인증 서버(200) 또는 앱 스토어에 접속하여 인증 프로그램을 다운로드한다(S401). 사용자 단말(100)은 사용자의 입력에 따라 상기 인증 프로그램을 실행한다(S403). 상기 인증 프로그램은 사용자 단말(100)의 고유 정보, 예컨대 네트워크 인터페이스 카드의 MAC 주소 또는 UUID 등을 수집한다(S405). 그리고 상기 인증 프로그램은 상기 고유 정보를 이용하여 디바이스 인증키를 생성하고 저장한다(S407, S409). 인증 프로그램은 상기 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성되는 값을 디바이스 인증키로 한다. 이어서 상기 인증 프로그램은 상기 디바이스 인증키를 인증 서버(200)로 전송하여 등록한다(S411).
도 6은 본 발명의 일 실시예에 따른 비밀 해쉬값 및 프로그램 인증키를 등록는 방법을 설명하는 흐름도이다.
도 6을 참조하면, 사용자 단말(100)의 인증 프로그램은 사용자로부터 비밀 제수를 입력받고(S501), 그 비밀 제수를 이용하여 비밀 해쉬값을 생성하여 저장한다(S503, S505). 인증 프로그램은 비밀 제수를 해쉬 함수에 시드 값으로 입력하여 비밀 해쉬값을 생성한다. 여기서 비밀 제수는 장문의 문자열, 이미지 파일, 사운드 파일 또는 동영상 파일 중 어느 하나일 수 있다.
비밀 해쉬값을 생성한 후, 프로그램 인증키 생성 과정을 수행한다. 즉, 인증 프로그램은 타임 스탬프를 생성하고(S507), 그 타임 스탬프와 디바이스 인증키 그리고 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 프로그램 인증키를 생성하여 저장한다(S509, S511). 이와 같이 프로그램 인증키를 생성하고 나서, 인증 프로그램은 인증 서버(200)로 상기 비밀 해쉬값 및 상기 프로그램 인증키를 전송하여 등록한다(S513).
도 7은 본 발명의 일 실시예에 따른 사용자 인증키를 등록하는 방법을 설명하는 흐름도이다.
도 7을 참조하면, 사용자 단말(100)의 인증 프로그램은 사용자로부터 개인 비밀번호 입력을 수신한다(S601). 상기 개인 비밀번호는 예를 들어 6자리의 숫자일 수 있다.
인증 프로그램은, 비밀 해쉬값과 상기 개인 비밀번호를 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성한다(S603). 그리고 인증 프로그램은, 사용자 인증키를 인증 서버(200)로 전송하여 등록한다(S605).
도 8은 본 발명의 일 실시예에 따른 사용자가 서비스 서버에 회원 가입시 사용자를 인증하는 방법을 설명하는 흐름도이다.
도 8을 참조하면, 사용자는 사용자 단말(100)로 서비스 서버(400)에 접속하여 회원 가입을 신청한다(S701). 회원 가입시 사용자는 ID, 패스워드를 입력하고 이외 성별, 생년월일, 전화번호, 주민등록번호 등을 추가로 입력할 수 있다. 이때 사용자가 입력하는 ID는 인증 서버(200)에 저장된 사용자의 ID와 동일하다. 회원 가입 신청을 수신한 서비스 서버(400)는 사용자가 입력한 ID를 포함하는 본인 인증 요청을 인증 서버(200)로 전송한다(S703). 본 실시예에서는 본인 인증 요청에 ID가 포함되는 것으로 설명하나, 이외 다른 사용자의 식별정보, 예를 들어 전화번호, 주민등록번호, 주소 등의 인증 서버(200)에서 사용자를 식별할 수 있는 개인 정보가 포함될 수도 있다.
인증 서버(200)는 서비스 서버(400)로부터 수신된 본인 인증 요청에 포함된 사용자의 ID를 이용하여 사용자의 인증용 정보를 식별하고 사용자 단말(100)로 본인 인증 알림 메시지를 전송한다(S705). 사용자 단말(100)은 본인 인증 알림 메시지를 팝업 표시하고 사용자로부터 ID 및 본인 인증 시작 입력을 수신한다(S707).
사용자 단말(100)은 사용자의 ID, 디바이스 인증키 및 프로그램 인증키를 포함하는 사전 인증 요청을 인증 서버(200)로 전송한다(S709). 인증 서버(200)는 상기 사전 인증 요청에 포함된 ID, 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 사용자의 ID, 디바이스 인증키 및 프로그램 인증키를 비교하여 일치하는 경우 사전 인증을 성공 처리한다(S711).
인증 서버(200)는 기 등록되어 있는 사용자의 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성한다(S713). 일회용 비밀 암호는 앞서 설명한 (식1) 또는 (식2)에 따라 생성된다. 인증 서버(200)는 사용자가 지정한 수신처로 상기 일회용 비밀 암호를 전송한다. 본 실시예에서는 사용자 단말(100)로 전송한다(S715).
사용자 단말(100)은 사용자로부터 상기 인증 서버(200)가 발급한 일회용 비밀 암호를 입력받고 또한 사용자로부터 개인 비밀번호를 입력받는다(S717). 사용자 단말(100)은 비밀 해쉬값과 상기 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다(S719). 그리고 사용자 단말(100)은 그 사용자 인증키와 상기 사용자로부터 입력된 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다(S721).
사용자 단말(100)은 상기 생성된 일회용 인증키를 인증 서버(200)로 전송한다(S723). 인증 서버(200)는 단계 S713에서 생성한 일회용 비밀 암호와, 기 등록되어 있는 사용자의 사용자 인증키를 이용하여 일회용 인증키를 생성하고, 그 생성한 일회용 인증키와 상기 단계 S723에서 사용자 단말(100)로부터 수신된 일회용 인증키를 비교한다(S725).
일회용 인증키의 비교 결과, 일치하는 경우, 인증 서버(200)는 사용자 단말(100)과 서비스 서버(400)로 인증 성공 응답을 전송한다(S727, S729). 반면, 일회용 인증키의 비교 결과, 불일치하는 경우, 인증 서버(200)는 사용자 단말(100)과 서비스 서버(400)로 인증 실패 응답을 전송한다.
도 8을 참조하여 설명한 본 실시예는, 사용자가 서비스 서버(400)에 회원 가입할 때 본인 인증을 하는 방법이다. 그러나 여기에만 한정되는 것은 아니다. 예를 들어, 키오스크나 자판기와 같이 오프라인에서 본인 인증을 할 때도 도 8을 참조하여 설명한 본인 인증 과정이 수행된다. 즉 키오스크나 자판기는 사용자로부터 ID와 같은 사용자 식별정보를 수신하여 직접 인증 서버(200)로 그 사용자 식별정보를 전송하거나 서비스 서버(400)를 경유하여 인증 서버(200)로 사용자 식별정보를 전송하며 본인 인증 요청을 할 수 있다. 이때 키오스크나 자판기는 NFC, RFID, 또는 블루투스 등의 근거리 통신을 통해 사용자 단말(100)로부터 사용자 식별정보를 리딩할 수 있다.
또한 도 8을 참조하여 설명한 본인 인증 과정은 금융 기관에서 사용자가 오프라인 상담을 할 때도 적용될 수 있다. 사용자는 금융 기관의 상담원과 상담하며 본인 인증이 필요할 때, 상담원에게 사용자 식별정보를 제공하고, 상담원 단말은 상담원으로부터 입력된 사용자 식별정보를 직접 인증 서버(200)로 전송하거나 서비스 서버(400)를 경유하여 인증 서버(200)로 사용자 식별정보를 전송하여 본인 인증 요청을 할 수 있다. 사용자는 상담원에게 구두로 사용자 식별정보를 제공할 수도 있고, 또는 사용자 식별정보를 저장하고 있는 카드를 상담원에게 제시하고 상담원이 해당 카드를 리더기로 리딩하여 사용자 식별정보를 획득할 수도 있다.
이외에도 사용자가 온라인 쇼핑몰에서 물품을 구매하고 지불 결제를 할 때 본인 인증을 하는 과정에서 도 8을 참조하여 설명한 본인 인증을 수행할 수 있다. 또한 금융 자동화기기(ATM)나 오프라인 상점에서 POS 단말을 이용하여 거래를 할 때 본인 인증시에도 위에서 설명한 본인 인증이 수행될 수도 있다. 이와 같이 본 실시예에 따른 본인 인증은 본인 인증이 필요로 하는 서비스에서 모두 적용할 수 있다.
이상에서 설명한 실시예에 따르면, 인증 서버(200)는 디바이스 인증키 및 프로그램 인증키를 비교하는 과정을 수행한다. 즉 사용자가 정해진 사용자 단말(100)에서 그리고 기 등록되어 있는 인증 프로그램을 이용해야만 인증 서버(200)는 일회용 비밀 암호를 발급한다. 따라서 인증 프로그램을 복사해서 다른 사용자 단말에서 사용하거나 등록되지 않은 인증 프로그램을 이용하는 경우, 인증에 성공하지 못하여 보안을 강화한다.
또한, 일회용 비밀 암호는 사용자의 비밀 해쉬값을 이용하여 생성되므로 일회용 비밀 암호를 유추하여 알아낼 수 없다. 또한 사용자 단말(100)은 일회용 비밀 암호만을 인증 서버(200)로 보내지 않고, 사용자의 개인 비밀번호와 일회용 비밀 암호를 해쉬 알고리즘으로 암호화하여 보냄으로써, 일회용 비밀 암호의 원천적인 보호가 가능하다. 또한 일회용 비밀 암호를 생성할 때 타임 스탬프를 이용함으로써 보안을 한층 더 강화할 수 있다.
도 9는 본 발명의 일 실시예에 따른 비밀 제수를 변경하는 방법을 설명하는 흐름도이다.
도 9를 참조하면, 사용자 단말(100)은 사용자로부터 비밀 제수 변경 입력을 수신한다. 이에 따라 사용자 단말(100)은 사용자 식별정보(ID), 디바이스 인증키 및 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 인증 서버(200)로 전송한다(S801).
인증 서버(200)는 상기 비밀 제수 변경 요청에 포함된 값을 이용하여 1차 인증을 수행한다(S802). 구체적으로, 인증 서버(200)는 비밀 제수 변경 요청에 포함된 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키가 기 등록되어 있는 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키와 동일한지 확인한다.
1차 인증 성공시, 인증 서버(200)는 기 등록되어 있는 사용자의 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성한다(S803). 인증 서버(200)는 사용자가 지정한 수신처로 상기 일회용 비밀 암호를 전송한다. 본 실시예에서는 사용자 단말(100)로 전송한다(S804).
사용자 단말(100)은 사용자로부터 상기 인증 서버(200)가 발급한 일회용 비밀 암호를 입력받고 또한 사용자로부터 개인 비밀번호를 입력받는다(S805). 사용자 단말(100)은 비밀 해쉬값과 상기 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다(S806). 그리고 사용자 단말(100)은 그 사용자 인증키와 상기 사용자로부터 입력된 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다(S807).
사용자 단말(100)은 상기 생성된 일회용 인증키를 인증 서버(200)로 전송한다(S808). 인증 서버(200)는 단계 S803에서 생성한 일회용 비밀 암호와, 기 등록되어 있는 사용자의 사용자 인증키를 이용하여 일회용 인증키를 생성하고, 그 생성한 일회용 인증키와 상기 단계 S808에서 사용자 단말(100)로부터 수신된 일회용 인증키를 비교하는 2차 인증을 수행한다(S809).
2차 인증에 성공하는 경우, 인증 서버(200)는 사용자 단말(100)로 비밀 제수 입력 요청을 전송한다(S810). 사용자는 사용자 단말(100)에 새로운 비밀 제수를 입력하고, 사용자 단말(100)은 그 입력된 새로운 비밀 제수를 이용하여 새로운 비밀 해쉬값, 새로운 프로그램 인증키 및 새로운 사용자 인증키를 생성한다(S811).
사용자 단말(100)은 상기 새로운 비밀 해쉬값, 새로운 프로그램 인증키 및 새로운 사용자 인증키를 인증 서버(200)로 전송하고(S812), 인증 서버(200)는 기존에 등록되어 있는 비밀 해쉬값, 프로그램 인증키 및 사용자 인증키를 상기 새로운 비밀 해쉬값, 새로운 프로그램 인증키 및 새로운 사용자 인증키로 대체하여 갱신한다(S813).
도 10은 본 발명의 일 실시예에 따른 개인 비밀번호를 변경하는 방법을 설명하는 흐름도이다.
도 10을 참조하면, 사용자 단말(100)은 사용자로부터 개인 비밀번호 변경 입력을 수신한다. 이에 따라 사용자 단말(100)은 사용자 식별정보(ID), 디바이스 인증키 및 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 인증 서버(200)로 전송한다(S901).
인증 서버(200)는 상기 개인 비밀번호 변경 요청에 포함된 값을 이용하여 1차 인증을 수행한다(S902). 구체적으로, 인증 서버(200)는 개인 비밀번호 변경 요청에 포함된 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키가 기 등록되어 있는 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키와 동일한지 확인한다.
1차 인증 성공시, 인증 서버(200)는 기 등록되어 있는 사용자의 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성한다(S903). 인증 서버(200)는 사용자가 지정한 수신처로 상기 일회용 비밀 암호를 전송한다. 본 실시예에서는 사용자 단말(100)로 전송한다(S904).
사용자 단말(100)은 사용자로부터 상기 인증 서버(200)가 발급한 일회용 비밀 암호를 입력받고 또한 사용자로부터 개인 비밀번호를 입력받는다(S905). 여기서 입력받는 개인 비밀번호는 변경 전의 개인 비밀번호이다. 사용자 단말(100)은 비밀 해쉬값과 상기 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다(S906). 그리고 사용자 단말(100)은 그 사용자 인증키와 상기 사용자로부터 입력된 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다(S907).
사용자 단말(100)은 상기 생성된 일회용 인증키를 인증 서버(200)로 전송한다(S908). 인증 서버(200)는 단계 S903에서 생성한 일회용 비밀 암호와, 기 등록되어 있는 사용자의 사용자 인증키를 이용하여 일회용 인증키를 생성하고, 그 생성한 일회용 인증키와 상기 단계 S908에서 사용자 단말(100)로부터 수신된 일회용 인증키를 비교하는 2차 인증을 수행한다(S909).
2차 인증에 성공하는 경우, 인증 서버(200)는 사용자 단말(100)로 개인 비밀번호 입력 요청을 전송한다(S910). 사용자는 사용자 단말(100)에 새로운 개인 비밀번호를 입력하고, 사용자 단말(100)은 그 입력된 새로운 개인 비밀번호를 이용하여 새로운 사용자 인증키를 생성한다(S911).
사용자 단말(100)은 상기 새로운 사용자 인증키를 인증 서버(200)로 전송하고(S912), 인증 서버(200)는 기존에 등록되어 있는 사용자 인증키를 상기 새로운 사용자 인증키로 대체하여 갱신한다(S913).
도 11은 본 발명의 일 실시예에 따른 사용자 단말에서 인증 프로그램을 재설치하는 방법을 설명하는 흐름도이다.
도 11을 참조하면, 사용자 단말(100)은 인증 서버(200) 또는 앱 스토어에서 인증 프로그램을 다운로드하여 재설치한다(S1001). 이후 사용자 단말(100)은 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 생성한다(S1002). 즉 사용자 단말(100)의 인증 프로그램은 사용자 단말(100)의 고유 정보를 수집하여 디바이스 인증키를 생성한다. 그리고 인증 프로그램은 사용자로부터 비밀 제수를 입력받아 비밀 해쉬값을 생성한다. 인증 프로그램은 디바이스 인증키와 타임 스탬프 그리고 상기 비밀 해쉬값을 이용하여 프로그램 인증키를 생성한다. 또한 인증 프로그램은 사용자로부터 개인 비밀번호를 입력받아 그 개인 비밀번호와 상기 비밀 해쉬값을 이용하여 사용자 인증키를 생성한다. 사용자 단말(100)의 변경없이 인증 프로그램을 재설치하였으므로, 디바이스 인증키 및 사용자 인증키는 기존과 동일하고, 프로그램 인증키는 타임 스탬프가 달라지므로 기존과 달라진다.
사용자 단말(100)은 사용자로부터 입력된 사용자 식별정보와 상기 디바이스 인증키, 상기 프로그램 인증키 및 상기 사용자 인증키를 포함하는 재설치 등록 요청을 인증 서버(200)로 전송한다(S1003). 인증 서버(200)는 상기 재설치 등록 요청에 포함된 값을 이용하여 1차 인증을 수행한다(S1004). 구체적으로, 인증 서버(200)는 재설치 등록 요청에 포함된 사용자 식별정보, 디바이스 인증키 및 사용자 인증키가 기 등록되어 있는 사용자 식별정보, 디바이스 인증키 및 프로그램 인증키와 동일한지 확인한다.
1차 인증 성공시, 인증 서버(200)는 기 등록되어 있는 사용자의 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성한다(S1005). 인증 서버(200)는 사용자가 지정한 수신처로 상기 일회용 비밀 암호를 전송한다. 본 실시예에서는 사용자 단말(100)로 전송한다(S1006).
사용자 단말(100)은 사용자로부터 상기 인증 서버(200)가 발급한 일회용 비밀 암호를 입력받고 또한 사용자로부터 개인 비밀번호를 입력받는다. 사용자 단말(100)은 비밀 해쉬값과 상기 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다. 그리고 사용자 단말(100)은 그 사용자 인증키와 상기 사용자로부터 입력된 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다(S1007).
사용자 단말(100)은 상기 생성된 일회용 인증키를 인증 서버(200)로 전송한다(S1008). 인증 서버(200)는 단계 S1005에서 생성한 일회용 비밀 암호와, 기 등록되어 있는 사용자의 사용자 인증키를 이용하여 일회용 인증키를 생성하고, 그 생성한 일회용 인증키와 상기 단계 S1008에서 사용자 단말(100)로부터 수신된 일회용 인증키를 비교하는 2차 인증을 수행한다(S1009).
2차 인증에 성공하는 경우, 인증 서버(200)는 기존에 등록되어 있는 프로그램 인증키를 상기 재설치 등록 요청에 포함된 프로그램 인증키로 대체하여 갱신한다(S1010).
도 12는 본 발명의 일 실시예에 따른 사용자 단말을 변경하는 방법을 설명하는 흐름도이다.
도 12를 참조하면, 새로운 사용자 단말(100)은 인증 서버(200) 또는 앱 스토어에서 인증 프로그램을 다운로드하여 설치한다(S1101). 이후 사용자 단말(100)은 디바이스 인증키, 프로그램 인증키 및 사용자 인증키를 생성한다(S1102). 즉 사용자 단말(100)의 인증 프로그램은 사용자 단말(100)의 고유 정보를 수집하여 디바이스 인증키를 생성한다. 그리고 인증 프로그램은 사용자로부터 비밀 제수를 입력받아 비밀 해쉬값을 생성한다. 인증 프로그램은 디바이스 인증키와 타임 스탬프 그리고 상기 비밀 해쉬값을 이용하여 프로그램 인증키를 생성한다. 또한 인증 프로그램은 사용자로부터 개인 비밀번호를 입력받아 그 개인 비밀번호와 상기 비밀 해쉬값을 이용하여 사용자 인증키를 생성한다. 사용자 단말(100)이 변경되고 인증 프로그램도 새로 설치되었으므로, 디바이스 인증키와 프로그램 인증키는 기존과 달라지고 사용자 인증키는 기존과 동일하다.
사용자 단말(100)은 사용자로부터 입력된 사용자 식별정보와 상기 디바이스 인증키, 상기 프로그램 인증키 및 상기 사용자 인증키를 포함하는 디바이스 변경 등록 요청을 인증 서버(200)로 전송한다(S1103). 인증 서버(200)는 상기 디바이스 변경 등록 요청에 포함된 값을 이용하여 1차 인증을 수행한다(S1104). 구체적으로, 인증 서버(200)는 디바이스 변경 등록 요청에 포함된 사용자 식별정보 및 사용자 인증키가 기 등록되어 있는 사용자 식별정보 및 사용자 인증키와 동일한지 확인한다.
1차 인증 성공시, 인증 서버(200)는 기 등록되어 있는 사용자의 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성한다(S1105). 인증 서버(200)는 사용자가 지정한 수신처로 상기 일회용 비밀 암호를 전송한다. 본 실시예에서는 사용자 단말(100)로 전송한다(S1106).
사용자 단말(100)은 사용자로부터 상기 인증 서버(200)가 발급한 일회용 비밀 암호를 입력받고 또한 사용자로부터 개인 비밀번호를 입력받는다. 사용자 단말(100)은 비밀 해쉬값과 상기 입력된 개인 비밀번호를 이용하여 사용자 인증키를 생성한다. 그리고 사용자 단말(100)은 그 사용자 인증키와 상기 사용자로부터 입력된 일회용 비밀 암호를 이용하여 일회용 인증키를 생성한다(S1107).
사용자 단말(100)은 상기 생성된 일회용 인증키를 인증 서버(200)로 전송한다(S1108). 인증 서버(200)는 단계 S1105에서 생성한 일회용 비밀 암호와, 기 등록되어 있는 사용자의 사용자 인증키를 이용하여 일회용 인증키를 생성하고, 그 생성한 일회용 인증키와 상기 단계 S1108에서 사용자 단말(100)로부터 수신된 일회용 인증키를 비교하는 2차 인증을 수행한다(S1109).
2차 인증에 성공하는 경우, 인증 서버(200)는 기존에 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 상기 디바이스 변경 등록 요청에 포함된 디바이스 인증키 및 프로그램 인증키로 대체하여 갱신한다(S1110).
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
110 : 메모리
113 : 인증 프로그램
210 : 비밀 해쉬값 생성 모듈
220 : 디바이스 인증키 생성 모듈
230 : 프로그램 인증키 생성 모듈
240 : 사용자 인증키 생성 모듈
250 : 일회용 비밀 암호 입력 모듈
260 : 일회용 인증키 생성 모듈
270 : 사전 인증 요청 모듈
280 : 변경 모듈

Claims (23)

  1. 인증 서버와 통신하는 사용자 장치에 있어서,
    하나 이상의 프로세서;
    메모리; 및
    상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고,
    상기 프로그램은,
    사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 비밀 해쉬값을 생성하여 저장하고, 상기 인증 서버로 상기 비밀 해쉬값을 전송하여 등록하는 비밀 해쉬값 생성 모듈;
    사용자로부터 입력된 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 사용자 인증키를 생성하고, 상기 인증 서버로 상기 사용자 인증키를 전송하여 등록하는 사용자 인증키 생성 모듈;
    상기 인증 서버에서 발급한 일회용 비밀 암호를 입력받는 일회용 비밀 암호 입력 모듈; 및
    상기 일회용 비밀 암호 입력 모듈에서 입력받은 일회용 비밀 암호와 상기 사용자 인증키를 해쉬 함수에 시드 값으로 입력하여 일회용 인증키를 생성하고 그 일회용 인증키를 상기 인증 서버로 전송하며, 그 전송한 일회용 인증키와 상기 인증 서버에서 생성한 일회용 인증키의 비교 결과를 상기 인증 서버로부터 수신하는 일회용 인증키 생성 모듈;을 포함하는 사용자 장치.
  2. 제 1 항에 있어서,
    사용자 장치의 고유 정보를 수집한 후 그 고유 정보를 해쉬 함수에 시드 값으로 입력하여 디바이스 인증키를 생성하여 저장하고, 그 디바이스 인증키를 상기 인증 서버로 전송하여 등록하는 디바이스 인증키 생성 모듈;을 더 포함하는 사용자 장치.
  3. 제 2 항에 있어서,
    상기 디바이스 인증키 생성 모듈은,
    상기 프로그램의 실행시마다 디바이스 인증키를 생성하여 기 저장된 디바이스 인증키와 비교하고, 일치하지 않는 경우 상기 프로그램을 삭제하는 것을 특징으로 하는 사용자 장치.
  4. 제 2 항에 있어서,
    타임 스탬프를 생성한 후 그 타임 스탬프와 상기 비밀 해쉬값 및 상기 디바이스 인증키를 해쉬 함수에 시드 값으로 입력하여 프로그램 인증키를 생성하여 저장하고, 그 프로그램 인증키를 상기 인증 서버로 전송하여 등록하는 프로그램 인증키 생성 모듈;을 더 포함하는 사용자 장치.
  5. 제 4 항에 있어서,
    상기 인증 서버로부터 본인 인증 알림 메시지를 수신함에 따라 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 사전 인증 요청을 상기 인증 서버로 전송하는 사전 인증 요청 모듈;을 더 포함하고,
    상기 일회용 비밀 암호는,
    상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키의 비교 결과, 모두 일치할 경우 상기 인증 서버에서 발급되는 것을 특징으로 하는 사용자 장치.
  6. 제 5 항에 있어서,
    상기 사전 인증 요청 모듈은,
    상기 인증 서버가 서비스 서버로부터 상기 사용자의 식별정보를 수신함에 따라 상기 인증 서버로부터 상기 본인 인증 알림 메시지를 수신하는 것을 특징으로 하는 사용자 장치.
  7. 제 4 항에 있어서,
    상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 상기 인증 서버로 전송하는 변경 모듈;을 더 포함하고,
    상기 변경 모듈은,
    상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈을 제어하여 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키가 생성되도록 하는 것을 특징으로 하는 사용자 장치.
  8. 제 4 항에 있어서,
    상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 상기 인증 서버로 전송하는 변경 모듈;을 더 포함하고,
    상기 변경 모듈은,
    상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 상기 인증 서버에 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 사용자 인증키 생성 모듈을 제어하여 새로운 사용자 인증키가 생성되도록 하는 것을 특징으로 하는 사용자 장치.
  9. 제 4 항에 있어서,
    상기 프로그램의 재설치시, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈, 상기 디바이스 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈에서 제어하여 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 생성한 후, 그 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 상기 인증 서버로 전송하며, 그 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 인증 서버로부터 재설치 등록 완료 응답을 수신하는 변경 모듈;을 더 포함하는 것을 특징으로 하는 사용자 장치.
  10. 제 4 항에 있어서,
    상기 사용자 장치의 변경시, 상기 비밀 해쉬값 생성 모듈, 상기 사용자 인증키 생성 모듈, 상기 디바이스 인증키 생성 모듈 및 상기 프로그램 인증키 생성 모듈을 제어하여 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 생성한 후, 그 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 상기 인증 서버로 전송하며, 그 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키와 일치하고, 상기 일회용 인증키 생성 모듈에서 일회용 인증키의 일치 응답을 수신하는 경우, 상기 인증 서버로부터 디바이스 변경 등록 완료 응답을 수신하는 변경 모듈;을 더 포함하는 것을 특징으로 하는 사용자 장치.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 일회용 비밀 암호는,
    상기 인증 서버에서 상기 비밀 해쉬값을 이용하여 생성된 것을 특징으로 하는 사용자 장치.
  12. 제 11 항에 있어서,
    상기 일회용 비밀 암호는,
    타임 스탬프 및 상기 비밀 해쉬값을 이용하여 생성되는 것을 특징으로 하는 사용자 장치.
  13. 사용자 장치와 통신하는 인증 장치에 있어서,
    하나 이상의 프로세서;
    메모리; 및
    상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의해 실행되도록 구성되는 프로그램을 포함하고,
    상기 프로그램은,
    사용자로부터 입력된 비밀 제수를 해쉬 함수에 시드(seed) 값으로 입력하여 생성된 비밀 해쉬값을 상기 사용자 장치로부터 수신하여 등록하는 비밀 해쉬값 등록 모듈;
    사용자의 개인 비밀번호와 상기 비밀 해쉬값을 해쉬 함수에 시드 값으로 입력하여 생성된 사용자 인증키를 상기 사용자 장치로부터 수신하여 등록하는 사용자 인증키 등록 모듈;
    일회용 비밀 암호를 생성하여 상기 사용자에게 전송하는 일회용 비밀 암호 생성 모듈; 및
    상기 사용자 장치로부터 일회용 인증키를 수신하면, 그 수신된 일회용 인증키와, 상기 등록된 사용자 인증키 및 상기 일회용 비밀 암호를 해쉬 함수에 시드 값으로 입력하여 생성한 일회용 인증키를 비교하여, 그 비교 결과를 상기 사용자 장치로 전송하는 일회용 인증키 비교 모듈;을 포함하는 인증 장치.
  14. 제 13 항에 있어서,
    상기 사용자 장치의 고유 정보를 해쉬 함수에 시드 값으로 입력하여 생성한 디바이스 인증키를 상기 사용자 장치로부터 수신하여 등록하는 디바이스 인증키 등록 모듈;을 더 포함하는 인증 장치.
  15. 제 14 항에 있어서,
    타임 스탬프를 생성한 후 그 타임 스탬프와 상기 비밀 해쉬값 및 상기 디바이스 인증키를 해쉬 함수에 시드 값으로 입력하여 생성한 프로그램 인증키를 상기 사용자 장치로부터 수신하여 등록하는 프로그램 인증키 등록 모듈;을 더 포함하는 인증 장치.
  16. 제 15 항에 있어서,
    상기 사용자 장치로 본인 인증 알림 메시지를 전송하고 이에 대한 응답으로 상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 사전 인증 요청을 상기 사용자 장치로부터 수신하는 사전 인증 요청 수신 모듈;을 더 포함하고,
    상기 일회용 비밀 암호 생성 모듈은,
    상기 사전 인증 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키를 비교하여, 모두 일치할 경우 상기 일회용 비밀 암호를 생성하는 것을 특징으로 하는 인증 장치.
  17. 제 16 항에 있어서,
    상기 사전 인증 요청 수신 모듈은,
    서비스 서버로부터 상기 사용자의 식별정보를 수신함에 따라 상기 본인 인증 알림 메시지를 상기 사용자 장치로 전송하는 것을 특징으로 하는 인증 장치.
  18. 제 15 항에 있어서,
    상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 비밀 제수 변경 요청을 상기 사용자 장치로부터 수신하는 변경 등록 모듈;을 더 포함하고,
    상기 변경 등록 모듈은,
    상기 비밀 제수 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 상기 사용자 장치로부터 새로운 비밀 해쉬값, 새로운 사용자 인증키 및 새로운 프로그램 인증키를 수신하여 갱신하는 것을 특징으로 하는 인증 장치.
  19. 제 15 항에 있어서,
    상기 디바이스 인증키 및 상기 프로그램 인증키를 포함하는 개인 비밀번호 변경 요청을 상기 사용자 장치로부터 수신하는 변경 등록 모듈;을 더 포함하고,
    상기 변경 등록 모듈은,
    상기 개인 비밀번호 변경 요청에 포함된 디바이스 인증키 및 프로그램 인증키와, 기 등록되어 있는 디바이스 인증키 및 프로그램 인증키가 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 상기 사용자 장치로부터 새로운 사용자 인증키를 수신하여 갱신하는 것을 특징으로 하는 인증 장치.
  20. 제 15 항에 있어서,
    상기 사용자 장치에서 프로그램 재설치시, 해당 사용자 장치에서 생성된 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 재설치 등록 메시지를 상기 사용자 장치로부터 수신하며, 그 재설치 등록 메시지에 포함된 사용자 인증키 및 디바이스 인증키가 기 등록되어 있는 사용자 인증키 및 디바이스 인증키와 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 프로그램 인증키를 갱신하는 변경 등록 모듈;을 더 포함하는 것을 특징으로 하는 인증 장치.
  21. 제 15 항에 있어서,
    상기 사용자 장치의 변경시, 변경 후 사용자 장치로부터 비밀 해쉬값, 사용자 인증키, 디바이스 인증키 및 프로그램 인증키를 포함하는 디바이스 변경 등록 메시지를 수신하고, 그 디바이스 변경 등록 메시지에 포함된 사용자 인증키가 상기 인증 서버에 기 등록되어 있는 사용자 인증키와 일치하고, 상기 일회용 인증키 비교 모듈에서 일회용 인증키를 비교한 결과 일치하는 경우, 디바이스 인증키 및 프로그램 인증키를 갱신하는 변경 등록 모듈;을 더 포함하는 것을 특징으로 하는 인증 장치.
  22. 제 13 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 일회용 비밀 암호 생성 모듈은,
    상기 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성하는 것을 특징으로 하는 인증 장치.
  23. 제 22 항에 있어서,
    상기 일회용 비밀 암호 생성 모듈은,
    타임 스탬프 및 상기 비밀 해쉬값을 이용하여 일회용 비밀 암호를 생성하는 것을 특징으로 하는 인증 장치.
KR1020150064749A 2014-09-11 2015-05-08 사용자 인증을 위한 장치 및 방법 KR20160131744A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150064749A KR20160131744A (ko) 2015-05-08 2015-05-08 사용자 인증을 위한 장치 및 방법
PCT/KR2015/009523 WO2016039568A1 (ko) 2014-09-11 2015-09-10 사용자 인증을 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150064749A KR20160131744A (ko) 2015-05-08 2015-05-08 사용자 인증을 위한 장치 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160175958A Division KR20160150097A (ko) 2016-12-21 2016-12-21 사용자 인증을 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20160131744A true KR20160131744A (ko) 2016-11-16

Family

ID=57540944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150064749A KR20160131744A (ko) 2014-09-11 2015-05-08 사용자 인증을 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20160131744A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101987579B1 (ko) * 2018-02-06 2019-06-10 세종대학교산학협력단 웹 메일과 otp 및 디피 헬만 키교환을 이용한 보안메일의 송수신 방법 및 시스템
KR20210006782A (ko) * 2019-07-09 2021-01-19 에스지에이 주식회사 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 otp 설정 방법
CN112348998A (zh) * 2020-07-24 2021-02-09 深圳Tcl新技术有限公司 一次性密码的生成方法、装置、智能门锁及存储介质
KR20230010408A (ko) * 2021-07-12 2023-01-19 주식회사 아이디스 사전 인증정보를 이용해 네트워크 응답속도를 개선한 영상 보안 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100101887A (ko) 2009-03-10 2010-09-20 삼성전자주식회사 통신시스템에서 인증 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100101887A (ko) 2009-03-10 2010-09-20 삼성전자주식회사 통신시스템에서 인증 방법 및 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101987579B1 (ko) * 2018-02-06 2019-06-10 세종대학교산학협력단 웹 메일과 otp 및 디피 헬만 키교환을 이용한 보안메일의 송수신 방법 및 시스템
KR20210006782A (ko) * 2019-07-09 2021-01-19 에스지에이 주식회사 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 otp 설정 방법
CN112348998A (zh) * 2020-07-24 2021-02-09 深圳Tcl新技术有限公司 一次性密码的生成方法、装置、智能门锁及存储介质
CN112348998B (zh) * 2020-07-24 2024-03-12 深圳Tcl新技术有限公司 一次性密码的生成方法、装置、智能门锁及存储介质
KR20230010408A (ko) * 2021-07-12 2023-01-19 주식회사 아이디스 사전 인증정보를 이용해 네트워크 응답속도를 개선한 영상 보안 시스템

Similar Documents

Publication Publication Date Title
US10496832B2 (en) System and method for initially establishing and periodically confirming trust in a software application
JP6818679B2 (ja) セキュアホストカードエミュレーションクレデンシャル
US9900774B2 (en) Shared network connection credentials on check-in at a user's home location
JP5802137B2 (ja) 安全なプライベート・データ記憶装置を有する集中型の認証システム、および方法
US20160048796A1 (en) Delivery confirmation using a wireless beacon
US10045210B2 (en) Method, server and system for authentication of a person
JP2006294035A (ja) 移動装置を用いる認証サービスのための方法及び装置
CN105393569A (zh) 在安全元件处进行验证的系统及方法
WO2016029177A1 (en) Using a wireless beacon to provide access credentials to a secure network
KR20160131744A (ko) 사용자 인증을 위한 장치 및 방법
US20210014682A1 (en) Methods and systems for securing and utilizing a personal date store on a mobile device
KR20160150097A (ko) 사용자 인증을 위한 장치 및 방법
JP6553810B2 (ja) モバイル端末のための支払い認証方法及び装置並びにモバイル端末
US9246677B2 (en) Method and system for secure data communication between a user device and a server
US20170316418A1 (en) Leased device operations to a nearby device on detection of device inoperability
KR20140001442A (ko) 단문 메시지 서비스를 이용한 모바일 단말에서의 결제 처리 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
CN110692072A (zh) Nfc发起的代理通信
US10911236B2 (en) Systems and methods updating cryptographic processes in white-box cryptography
KR101571126B1 (ko) 사용자 인증을 위한 장치 및 방법
WO2018043466A1 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
US11809603B2 (en) Systems and methods for real-time encryption of sensitive data
KR101746598B1 (ko) 사용자 인증을 위한 장치
KR102005543B1 (ko) 사용자 인증을 위한 장치 및 방법
CA3222332A1 (en) Systems and methods for contactless card communication and key pair cryptographic authentication using distributed storage

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E601 Decision to refuse application