KR101802655B1 - 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법 - Google Patents

원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법 Download PDF

Info

Publication number
KR101802655B1
KR101802655B1 KR1020160072660A KR20160072660A KR101802655B1 KR 101802655 B1 KR101802655 B1 KR 101802655B1 KR 1020160072660 A KR1020160072660 A KR 1020160072660A KR 20160072660 A KR20160072660 A KR 20160072660A KR 101802655 B1 KR101802655 B1 KR 101802655B1
Authority
KR
South Korea
Prior art keywords
authenticator
generating
seed
cloud server
password
Prior art date
Application number
KR1020160072660A
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 KR1020160072660A priority Critical patent/KR101802655B1/ko
Application granted granted Critical
Publication of KR101802655B1 publication Critical patent/KR101802655B1/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
    • 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
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

일 실시예에 따른 일회용 비밀번호 생성 방법은, 동형 암호를 위한 키를 생성하고 상기 생성된 키를 저장소에 저장하는 단계; 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계; 상기 원격 클라우드 서버에서 상기 생성된 일회용 비밀번호에 대한 암호화 값을 계산함에 따라 사용자 단말이 상기 계산된 암호화 값을 복호화하는 단계; 상기 복호화된 복호화 값과 상기 인증자의 일회용 비밀번호를 비교하여 일치하는지 여부를 판단하는 단계; 및 상기 인증자의 일회용 비밀번호와 상기 복호화된 일회용 비밀번호가 일치함에 따라 상기 인증자와 트랜잭션을 수행하는 단계를 포함할 수 있다.

Description

원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법{METHOD AND SYSTEM FOR SAGE SOFTWATE-BASED ONE TIME PASSWORD GENERATION USING REMOTE SERVER}
아래의 설명은 사용자 인증 기술에 관한 것으로, 원격 서버를 이용한 소프트웨어 기반 일회용 비밀번호 생성 방법 및 시스템에 관한 것이다.
일회용 비밀번호(One Time Password: 이하 OTP)는 기존의 비밀번호 기반 사용자 인증의 약점인 엿보기, 키보드 로깅, 재사용 공격 등의 문제를 해결하는 효과적인 방법으로, 최근 인터넷 뱅킹, 게임 사용자 인증 등 다양한 분야에서 활용되고 있다. OTP는 다양한 형태가 존재할 수 있으나, 현재 이용되고 있는 가장 전형적인 형태는 하드웨어 장치(동글이나 카드 형태의 소형 OTP 단말)를 이용한 방법이다. 다시 말해서, OTP 단말과 인증 서버(예: 은행의 인터넷 뱅킹 서버)에서 시드(seed) 정보를 미리 공유하여 동기화한 후, 인증이 필요할 때에는 OTP 단말에서 동기화된 시간 또는 이벤트 정보를 기반으로 OTP 번호를 생성하여 LCD 화면 등으로 출력하며, 사용자는 이 번호를 입력하는 방식이다. 이러한 방법은 결국 사용자가 OTP 단말 장치를 소유하고 있는지 여부를 확인하여 인증하는 소유 기반 인증 방식의 일종으로, 기존의 비밀번호 방식의 몇 가지 문제를 해결할 수 있으나, 사용자가 별도의 단말을 항상 소지하여야 하는 불편함이 있다. 이를 해결하는 방안으로 스마트폰에 어플리케이션 형태로 설치되는 소프트웨어 OTP가 사용되고 있는데, 스마트폰은 대부분의 사용자가 항상 소지하고 있으므로 큰 불편함 없이 사용할 수 있다. 단, 스마트폰에 존재할 수 있는 여러 취약점들로 인해, 외부의 공격자가 해당 어플리케이션에 내재된 OTP 시드 정보를 탈취할 수 있는 위험성이 있다. 일시적으로 단말의 사용 권한을 획득함으로 인해 시드 정보를 탈취한 공격자는 이후에는 단말의 동작과는 무관하게 사용자 개입이 전혀 없이 모든 인증에 성공할 수 있게 된다.
본 발명은 동형 암호(homomorphic encryption) 기술을 이용하여 시드 정보를 외부 서버에 암호화된 형태로 저장함으로써, OTP 어플리케이션이 공격당하더라도 시드 정보가 유출되지 않는 안전한 소프트웨어 OTP를 구성하는 방법을 제공할 수 있다.
일 실시예에 따르면, 일회용 비밀번호 생성 방법은, 동형 암호를 위한 키를 생성하고 상기 생성된 키를 저장소에 저장하는 단계; 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계; 상기 원격 클라우드 서버에서 상기 생성된 일회용 비밀번호에 대한 암호화 값을 계산함에 따라 사용자 단말이 상기 계산된 암호화 값을 복호화하는 단계; 상기 복호화된 복호화 값과 상기 인증자의 일회용 비밀번호를 비교하여 일치하는지 여부를 판단하는 단계; 및 상기 인증자의 일회용 비밀번호와 상기 복호화된 일회용 비밀번호가 일치함에 따라 상기 인증자와 트랜잭션을 수행하는 단계를 포함할 수 있다.
일측에 따르면, 상기 동형 암호를 위한 키를 생성하고 상기 생성된 키를 저장소에 저장하는 단계는, 상기 인증자와 사용자 단말이 시드를 생성하여 공유하고, OTP 알고리즘에 동의함에 따라 상기 키에 의해 상기 시드를 암호화하여 상기 원격 클라우드 서버에 상기 암호화된 암호화 값을 전송하거나 상기 인증자와 상기 사용자 단말이 시드를 생성하여 공유하고, 초기 계수를 공유하고, 상기 OTP 알고리즘에 동의함에 따라 상기 키에 의하여 상기 시드 및 상기 초기 계수를 암호화하여 상기 원격 클라우드 서버에 상기 암호화된 암호화 값을 전송하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계는, 시간 동기화 방식에 기초하여 상기 인증자가 현재의 시간 정보를 이진 코딩한 코딩 정보를 생성하고, 상기 코딩 정보와 시드를 이용하여 일회용 비밀번호를 생성하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계는, 이벤트 동기화 방식을 통하여 상기 인증자가 초기 계수와 시드를 이용하여 일회용 비밀번호를 생성하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계는, 챌린지-응답 방식에 기초하여 상기 인증자가 랜덤 챌린지를 생성하고, 상기 생성된 랜덤 챌린지와 시드를 이용하여 일회용 비밀번호를 생성하는 단계를 포함할 수 있다.
일 실시예에 따르면, 일회용 비밀번호 생성 시스템은, 동형 암호를 위한 키를 생성하고 상기 생성된 키를 저장소에 저장하는 암호화부; 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 상기 일회용 비밀번호를 생성하는 생성부; 상기 원격 클라우드 서버에서 상기 생성된 일회용 비밀번호에 대한 암호화 값을 계산함에 따라 사용자 단말이 상기 계산된 암호화 값을 복호화하는 복호화부; 상기 복호화된 복호화 값과 상기 인증자의 일회용 비밀번호를 비교하여 일치하는지 여부를 판단하는 판단부; 및 상기 인증자의 일회용 비밀번호와 상기 복호화된 일회용 비밀번호가 일치함에 따라 상기 인증자와 트랜잭션을 수행하는 수행부를 포함할 수 있다.
일 실시예에 따른 일회용 비밀번호 생성 시스템은 동형 암호를 이용하여 안전하게 소프트웨어 OTP를 생성할 수 있다.
일 실시예에 따른 일회용 비밀번호 생성 시스템은 사용자 단말이 외부 공격자에 의하여 공격당해도 해당 세션의 OTP 번호만 유출될 뿐, 시드 정보는 유출되지 않는다.
도 1은 일 실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 일 실시예에 따른 일회용 비밀번호 생성 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 일 실시예에 따른 시간 동기화 방식에서 일회용 비밀번호를 등록하는 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 시간 동기화 방식에서 일회용 비밀번호를 이용한 인증 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 이벤트 동기화 방식에서 일회용 비밀번호를 등록하는 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 따른 이벤트 동기화 방식에서 일회용 비밀번호를 이용한 인증 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 따른 챌린지-응답 방식에서 일회용 비밀번호를 등록하는 방법을 설명하기 위한 흐름도이다.
도 8은 일 실시예에 따른 챌린지-응답 방식에서 일회용 비밀번호를 이용한 인증 방법을 설명하기 위한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1의 네트워크 환경은 사용자 단말(110), 복수의 서버들(100, 101, 102) 및 네트워크(120)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 사용자 단말의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
사용자 단말(110)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 사용자 단말(110)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 사용자 단말(110)은 무선 또는 유선 통신 방식을 이용하여 네트워크(120)를 통해 다른 사용자 단말들 및/또는 서버(100, 101, 102)와 통신할 수 있다. 사용자 단말(110)은 유권자로부터 투표가 실시될 수 있도록 제공할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(120)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(120)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(100, 101, 102) 각각은 사용자 단말(110)과 네트워크(120)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.
일례로, 서버(100)는 네트워크(120)를 통해 접속한 사용자 단말(110)로 어플리케이션의 설치를 위한 파일을 제공할 수 있다. 이 경우 사용자 단말(110)은 서버(100)로부터 제공된 파일을 이용하여 어플리케이션을 설치할 수 있다. 또한 사용자 단말(110)이 포함하는 운영체제(Operating System, OS) 및 적어도 하나의 프로그램(일례로 브라우저나 상기 설치된 어플리케이션)의 제어에 따라 서버(100)에 접속하여 서버(100)가 제공하는 서비스나 컨텐츠를 제공받을 수 있다. 예를 들면, 사용자 단말(110)이 어플리케이션의 제어에 따라 네트워크(120)를 통해 서비스 요청 메시지를 서버(100)로 전송하면, 서버(100)는 서비스 요청 메시지에 대응하는 코드를 사용자 단말(110)로 전송할 수 있고, 사용자 단말(110)은 어플리케이션의 제어에 따라 코드에 따른 화면을 구성하여 표시함으로써 사용자에게 컨텐츠를 제공할 수 있다.
도 2는 일 실시예에 따른 일회용 비밀번호 생성 시스템의 구성을 설명하기 위한 블록도이다.
일회용 비밀번호 생성 시스템에 포함된 프로세서(200)는 암호화부(210), 생성부(220), 복호화부(230), 판단부(240) 및 수행부(250)를 포함할 수 있다. 이러한 프로세서(200) 및 프로세서(200)의 구성요소들은 일회용 비밀번호를 생성하도록 일회용 비밀번호 생성 시스템을 제어할 수 있다. 이때, 프로세서(200) 및 프로세서(200)의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(200)의 구성요소들은 일회용 비밀번호 생성 장치에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(200)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다.
암호화부(210)는 동형 암호를 위한 키를 생성하고 생성된 키를 보안이 적용되는 안전한 저장소에 저장할 수 있다. 암호화부(210) 인증자와 사용자 단말이 시드를 생성하여 공유하고, OTP 알고리즘에 동의함에 따라 키에 의해 시드를 암호화하여 원격 클라우드 서버에 암호화된 암호화 값을 전송하거나 인증자와 사용자 단말이 시드를 생성하여 공유하고, 초기 계수를 공유하고, OTP 알고리즘에 동의함에 따라 키에 의하여 시드 및 초기 계수를 암호화하여 원격 클라우드 서버에 암호화된 암호화 값을 전송할 수 있다.
생성부(220)는 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성할 수 있다. 생성부(220)는 시간 동기화 방식에 기초하여 인증자가 현재의 시간 정보를 이진 코딩한 코딩 정보를 생성하고, 코딩 정보와 시드를 이용하여 일회용 비밀번호를 생성할 수 있다. 생성부(220)는 이벤트 동기화 방식을 통하여 인증자가 초기 계수와 시드를 이용하여 일회용 비밀번호를 생성할 수 있다. 생성부(220)는 챌린지-응답 방식에 기초하여 인증자가 랜덤 챌린지를 생성하고, 생성된 랜덤 챌린지와 시드를 이용하여 일회용 비밀번호를 생성할 수 있다.
복호화부(230)는 원격 클라우드 서버에서 생성된 일회용 비밀번호에 대한 암호화 값을 계산함에 따라 계산된 암호화 값을 복호화할 수 있다.
판단부(240)는 복호화된 복호화 값과 인증자의 일회용 비밀번호를 비교하여 일치하는지 여부를 판단할 수 있다.
수행부(250)는 인증자의 일회용 비밀번호와 복호화된 일회용 비밀번호가 일치함에 따라 인증자와 트랜잭션을 수행할 수 있다.
도 3은 일 실시예에 따른 시간 동기화 방식에서 일회용 비밀번호를 등록하는 방법을 설명하기 위한 흐름도이다.
동형 암호(homomorphic encryption)란 평문(plaintext)에 특정 연산을 수행하여 암호화한 결과와 평문에 바로 암호화를 한 후 같은 연산을 적용한 결과가 서로 같은 암호이다. 예를 들면, 덧셈에 대한 동형 암호는 평문
Figure 112016056065092-pat00001
의 암호화 연산 E 및 복호화 연산 D 에 대해
Figure 112016056065092-pat00002
를 만족하는 암호이며, 곱셈에 대한 동형 암호는
Figure 112016056065092-pat00003
를 만족하는 암호이다. 덧셈과 곱셈에 대해 모두 동형인 암호를 완전 동형 암호(fully homomorphic encryption)라 한다.
아래의 실시예에서는 평문
Figure 112016056065092-pat00004
가 이진수 비트인 경우, 다시 말해서, 평문
Figure 112016056065092-pat00005
인 경우를 고려하며, 평문의 덧셈 및 곱셈 연산은 mod 2로 수행하고, 암호문의 덧셈 및 곱셈은 mod 연산 없이 수행하는 경우를 고려한다. 즉,
Figure 112016056065092-pat00006
가 성립하는 완전 동형 암호(fully homomorphic encryption) 또는 일정 수의 곱셈까지 가능한 부분 동형 암호(somewhat homomorphic encryption)를 고려한다. Mod 2에 대한 덧셈 및 곱셈은 각각 배타적 논리합(Exclusive OR: 기호
Figure 112016056065092-pat00007
)과 논리곱(Logical AND: 기호
Figure 112016056065092-pat00008
) 연산과 동치이므로,
Figure 112016056065092-pat00009
,
Figure 112016056065092-pat00010
를 만족한다. 평문 자체가 자기 자신의 유효한 암호문인 성질이 만족되는 동형 암호의 경우,
Figure 112016056065092-pat00011
Figure 112016056065092-pat00012
도 만족한다.
도 3 내지 도 8에서는 동형 암호를 이용하여 안전하게 소프트웨어 일회용 비밀번호(OTP)를 구성하는 방법을 설명하기로 한다. 일 실시예에 따른 일회용 비밀번호 생성 시스템은 사용자를 인증하고자 하는 인증자(A)(310, 410, 510, 610, 710, 810), 소프트웨어 OTP가 탑재된 사용자 단말(D)(320, 420, 520, 620, 720, 820), OTP 생성을 돕는 원격 클라우드 서버(C)(330, 430, 530, 630, 730, 830)로 구성될 수 있으며, 등록 과정과 인증 과정으로 구분될 수 있다. 일회용 비밀번호 생성 시스템에서 일회용 비밀번호 생성 방식은 시간 동기화 방식, 이벤트 동기화 방식, 챌린지-응답 방식이 적용될 수 있으며, 각각의 등록 과정과 인증 과정은 다음과 같이 설명될 수 있다.
도 3을 참고하면, 시간 동기화 방식으로 일회용 비밀번호를 등록하는 방법을 설명하기로 한다. 사용자 단말(D)은 동형 암호를 위한 키
Figure 112016056065092-pat00013
를 생성하고, 키를 저장할 수 있다(S341). 인증자(A)와 사용자 단말(D)은 시드
Figure 112016056065092-pat00014
를 생성할 수 있다(S342, S343). 인증자와 사용자 단말은 시드
Figure 112016056065092-pat00015
를 공유하고 OTP 생성 알고리즘 G에 동의할 수 있다(S344). 사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00016
에 의해 시드
Figure 112016056065092-pat00017
를 암호화할 수 있다. 사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00018
에 의해 시드
Figure 112016056065092-pat00019
를 암호화하여 암호화 값
Figure 112016056065092-pat00020
을 생성한 후, 암호화 값을 원격 클라우드 서버에게 전송할 수 있다(S345, S346). 이때, 사용자 단말은 시드
Figure 112016056065092-pat00021
를 삭제할 수 있다(S347).
도 4는 일 실시예에 따른 시간 동기화 방식에서 일회용 비밀번호를 이용한 인증 방법을 설명하기 위한 흐름도이다.
사용자 단말이 인증자에게 사용자 인증을 요청할 수 있다(S441). 인증자는 현재의 시간 정보를 이진 코딩한 코딩 정보
Figure 112016056065092-pat00022
를 생성하고, 코딩 정보
Figure 112016056065092-pat00023
와 시드
Figure 112016056065092-pat00024
를 이용하여 일회용 비밀번호
Figure 112016056065092-pat00025
를 생성할 수 있다(S442). 사용자 단말은 원격 클라우드 서버에게 일회용 비밀번호를 생성할 것을 요청할 수 있다(S443).
원격 클라우드 서버는 암호화된 시드
Figure 112016056065092-pat00026
와 현재 시간 정보
Figure 112016056065092-pat00027
를 이용하여 암호화 값
Figure 112016056065092-pat00028
를 계산하고, 암호화 값을 사용자 단말에게 전송할 수 있다(S444, S445). 이때, 동형 암호의 성질에 의하여
Figure 112016056065092-pat00029
가 성립된다.
사용자 단말은 암호화 값을 복호화하여 복호화 값
Figure 112016056065092-pat00030
을 계산하고, 복호화 값을 일회용 비밀번호로 인증자에게 전송할 수 있다(S446, S447). 인증자는 생성된 일회용 비밀번호와 사용자 단말로부터 전송된 일회용 비밀번호가 일치하는지 여부를 확인할 수 있다(S448). 다시 말해서, 인증자는
Figure 112016056065092-pat00031
여부를 확인하고,
Figure 112016056065092-pat00032
가 일치하는 경우 인증이 성공하였음을 사용자 단말에게 통보할 수 있다(S449). 사용자 단말은 인증자로부터 인증이 성공하였음을 알리는 인증 성공 정보를 수신할 수 있다(S450). 사용자 단말과 인증자 사이에 트랜잭션이 수행될 수 있다(S451).
도 5는 일 실시예에 따른 이벤트 동기화 방식에서 일회용 비밀번호를 등록하는 방법을 설명하기 위한 흐름도이다.
사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00033
를 생성하고, 키를 저장할 수 있다(S541). 인증자와 사용자 단말은 시드
Figure 112016056065092-pat00034
를 생성할 수 있다(S542, S543). 인증자와 사용자 단말은 시드
Figure 112016056065092-pat00035
를 공유하고 초기 계수
Figure 112016056065092-pat00036
도 공유하고, OTP 생성 알고리즘 G에 동의할 수 있다(S544). 사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00037
에 의해 시드
Figure 112016056065092-pat00038
및 초기 계수
Figure 112016056065092-pat00039
을 암호화할 수 있다(S545). 사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00040
에 의해 시드
Figure 112016056065092-pat00041
및 초기 계수
Figure 112016056065092-pat00042
각각을 암호화하여 암호화 값
Figure 112016056065092-pat00043
,
Figure 112016056065092-pat00044
을 생성한 후, 암호화 값을 원격 클라우드 서버에게 전송할 수 있다(S546). 이때, 사용자 단말은 시드
Figure 112016056065092-pat00045
를 삭제할 수 있다(S547).
도 6은 일 실시예에 따른 이벤트 동기화 방식에서 일회용 비밀번호를 이용한 인증 방법을 설명하기 위한 흐름도이다.
사용자 단말이 인증자에게 사용자 인증을 요청할 수 있다(S641). 인증자는 초기 계수
Figure 112016056065092-pat00046
와 시드
Figure 112016056065092-pat00047
를 이용하여 일회용 비밀번호
Figure 112016056065092-pat00048
를 생성할 수 있다(S642). 사용자 단말은 원격 클라우드 서버에게 일회용 비밀번호를 생성할 것을 요청할 수 있다(S643).
원격 클라우드 서버는 암호화된 시드
Figure 112016056065092-pat00049
와 암호화된 계수
Figure 112016056065092-pat00050
를 이용하여 암호화 값
Figure 112016056065092-pat00051
를 계산하고, 암호화 값을 사용자 단말에게 전송할 수 있다(S644, S645). 이때, 동형 암호의 성질에 의하여
Figure 112016056065092-pat00052
가 성립된다. 원격 클라우드 서버는 동형 연산을 이용하여
Figure 112016056065092-pat00053
, 즉,
Figure 112016056065092-pat00054
를 계산하고, 이를 새로운
Figure 112016056065092-pat00055
로 할당할 수 있다(S646).
사용자 단말은 암호화 값
Figure 112016056065092-pat00056
을 복호화하여 복호화 값
Figure 112016056065092-pat00057
을 계산하고, 복호화 값을 일회용 비밀번호로 인증자에게 전송할 수 있다(S647, S648). 사용자 단말은 계수값
Figure 112016056065092-pat00058
을 1 증가시킬 수 있다(S649).
인증자는 생성된 일회용 비밀번호와 사용자 단말로부터 전송된 일회용 비밀번호가 일치하는지 여부를 확인할 수 있다(S650). 다시 말해서, 인증자는
Figure 112016056065092-pat00059
여부를 확인하고,
Figure 112016056065092-pat00060
가 일치하는 경우 인증이 성공하였음을 사용자 단말에게 통보할 수 있다(S651). 사용자 단말은 인증자로부터 인증이 성공하였음을 알리는 인증 성공 정보를 수신할 수 있다. 인증자는 계수값
Figure 112016056065092-pat00061
을 1 증가시킬 수 있다(S652). 사용자 단말과 인증자 사이에 트랜잭션이 수행될 수 있다(S653).
도 7은 일 실시예에 따른 챌린지-응답 방식에서 일회용 비밀번호를 등록하는 방법을 설명하기 위한 흐름도이다.
사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00062
를 생성하고, 키를 저장할 수 있다(S741). 인증자와 사용자 단말은 시드
Figure 112016056065092-pat00063
를 생성할 수 있다(S742, S743). 인증자와 사용자 단말은 시드
Figure 112016056065092-pat00064
를 공유하고 OTP 생성 알고리즘 G에 동의할 수 있다(S744). 사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00065
에 의해 시드
Figure 112016056065092-pat00066
를 암호화할 수 있다(S745). 사용자 단말은 동형 암호를 위한 키
Figure 112016056065092-pat00067
에 의해 시드
Figure 112016056065092-pat00068
를 암호화하여 암호화 값
Figure 112016056065092-pat00069
을 생성한 후, 암호화 값을 원격 클라우드 서버에게 전송할 수 있다(S746). 이때, 사용자 단말은 시드
Figure 112016056065092-pat00070
를 삭제할 수 있다(S747).
도 8은 일 실시예에 따른 챌린지-응답 방식에서 일회용 비밀번호를 이용한 인증 방법을 설명하기 위한 흐름도이다.
사용자 단말이 인증자에게 사용자 인증을 요청할 수 있다(S841). 인증자는 랜덤 챌린지
Figure 112016056065092-pat00071
을 생성하고, 생성된 랜덤 챌린지
Figure 112016056065092-pat00072
을 사용자 단말에게 전송할 수 있다(S842, S843). 인증자는 랜덤 챌린지
Figure 112016056065092-pat00073
과 시드
Figure 112016056065092-pat00074
를 이용하여 일회용 비밀번호
Figure 112016056065092-pat00075
를 생성할 수 있다(S844). 사용자 단말은 원격 클라우드 서버에게 랜던 챌린지
Figure 112016056065092-pat00076
을 전달하고, 일회용 비밀번호를 생성할 것을 요청할 수 있다(S845).
원격 클라우드 서버는 암호화된 시드
Figure 112016056065092-pat00077
와 랜덤 챌린지
Figure 112016056065092-pat00078
을 이용하여 암호화 값
Figure 112016056065092-pat00079
를 계산하고, 암호화 값을 사용자 단말에게 전송할 수 있다(S846, S847). 이때, 동형 암호의 성질에 의하여
Figure 112016056065092-pat00080
가 성립된다.
사용자 단말은 암호화 값을 복호화하여 복호화 값
Figure 112016056065092-pat00081
을 계산하고, 복호화 값을 일회용 비밀번호로 인증자에게 전송할 수 있다(S848, S849). 인증자는 생성된 일회용 비밀번호와 사용자 단말로부터 전송된 일회용 비밀번호가 일치하는지 여부를 확인할 수 있다(S850). 다시 말해서, 인증자는
Figure 112016056065092-pat00082
여부를 확인하고,
Figure 112016056065092-pat00083
가 일치하는 경우 인증이 성공하였음을 사용자 단말에게 통보할 수 있다(S851). 사용자 단말과 인증자 사이에 트랜잭션이 수행될 수 있다(S852).
위와 같이 구성한 소프트웨어 OTP는 사용자 단말이 외부 공격자에 의해 공격당해도 해당 세션의 OTP 번호만이 유출될 뿐, 시드 정보는 유출되지 않는다. 또한, 외부 공격자에 의해 동형 암호 키
Figure 112016056065092-pat00084
가 유출되는 경우에도 공격자는 이후의 인증에 필요한 암호화된 OTP 값
Figure 112016056065092-pat00085
Figure 112016056065092-pat00086
로부터 받을 수 없으므로 OTP 번호를 정상적으로 생성할 수 없다. 다만, 일시적인 공격이 아니라, 외부 공격에 의해 단말이 영구적으로 공격자의 제어 하에 놓이는 경우에는, 매 세션마다 사용자 단말이 인증자로부터 받는
Figure 112016056065092-pat00087
를 키
Figure 112016056065092-pat00088
로 복호화 가능하므로 공격자는 유효한 OTP 번호를 지속적으로 생성할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (6)

  1. 일회용 비밀번호 생성 방법에 있어서,
    동형 암호를 위한 키를 생성하고 상기 생성된 키를 저장소에 저장하는 단계;
    인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계;
    상기 원격 클라우드 서버에서 상기 생성된 일회용 비밀번호에 대한 암호화 값을 계산함에 따라 사용자 단말이 상기 계산된 암호화 값을 복호화하는 단계;
    상기 복호화된 복호화 값과 상기 인증자의 일회용 비밀번호를 비교하여 일치하는지 여부를 판단하는 단계; 및
    상기 인증자의 일회용 비밀번호와 상기 복호화된 일회용 비밀번호가 일치함에 따라 상기 인증자와 트랜잭션을 수행하는 단계
    를 포함하고,
    상기 동형 암호를 위한 키를 생성하고 상기 생성된 키를 저장소에 저장하는 단계는,
    상기 인증자와 사용자 단말이 시드를 생성하여 공유하고, OTP 알고리즘에 동의함에 따라 상기 키에 의해 상기 시드를 암호화하여 상기 원격 클라우드 서버에 상기 암호화된 암호화 값을 전송하거나 상기 인증자와 상기 사용자 단말이 시드를 생성하여 공유하고, 초기 계수를 공유하고, 상기 OTP 알고리즘에 동의함에 따라 상기 키에 의하여 상기 시드 및 상기 초기 계수를 암호화하여 상기 원격 클라우드 서버에 상기 암호화된 암호화 값을 전송하는 단계
    를 포함하는 일회용 비밀번호 생성 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계는,
    시간 동기화 방식에 기초하여 상기 인증자가 현재의 시간 정보를 이진 코딩한 코딩 정보를 생성하고, 상기 코딩 정보와 시드를 이용하여 일회용 비밀번호를 생성하는 단계
    를 포함하는 일회용 비밀번호 생성 방법.
  4. 제1항에 있어서,
    상기 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계는,
    이벤트 동기화 방식을 통하여 상기 인증자가 초기 계수와 시드를 이용하여 일회용 비밀번호를 생성하는 단계
    를 포함하는 일회용 비밀번호 생성 방법.
  5. 제1항에 있어서,
    상기 인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 일회용 비밀번호를 생성하는 단계는,
    챌린지-응답 방식에 기초하여 상기 인증자가 랜덤 챌린지를 생성하고, 상기 생성된 랜덤 챌린지와 시드를 이용하여 일회용 비밀번호를 생성하는 단계
    를 포함하는 일회용 비밀번호 생성 방법.
  6. 일회용 비밀번호 생성 시스템에 있어서,
    동형 암호를 위한 키를 생성하고 상기 생성된 키를 저장소에 저장하는 암호화부;
    인증자 및 원격 클라우드 서버에서 기 설정된 방식으로 상기 일회용 비밀번호를 생성하는 생성부;
    상기 원격 클라우드 서버에서 상기 생성된 일회용 비밀번호에 대한 암호화 값을 계산함에 따라 사용자 단말이 상기 계산된 암호화 값을 복호화하는 복호화부;
    상기 복호화된 복호화 값과 상기 인증자의 일회용 비밀번호를 비교하여 일치하는지 여부를 판단하는 판단부; 및
    상기 인증자의 일회용 비밀번호와 상기 복호화된 일회용 비밀번호가 일치함에 따라 상기 인증자와 트랜잭션을 수행하는 수행부
    를 포함하고,
    상기 암호화부는,
    상기 인증자와 사용자 단말이 시드를 생성하여 공유하고, OTP 알고리즘에 동의함에 따라 상기 키에 의해 상기 시드를 암호화하여 상기 원격 클라우드 서버에 상기 암호화된 암호화 값을 전송하거나 상기 인증자와 상기 사용자 단말이 시드를 생성하여 공유하고, 초기 계수를 공유하고, 상기 OTP 알고리즘에 동의함에 따라 상기 키에 의하여 상기 시드 및 상기 초기 계수를 암호화하여 상기 원격 클라우드 서버에 상기 암호화된 암호화 값을 전송하는
    일회용 비밀번호 생성 시스템.

KR1020160072660A 2016-06-10 2016-06-10 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법 KR101802655B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160072660A KR101802655B1 (ko) 2016-06-10 2016-06-10 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160072660A KR101802655B1 (ko) 2016-06-10 2016-06-10 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법

Publications (1)

Publication Number Publication Date
KR101802655B1 true KR101802655B1 (ko) 2017-11-29

Family

ID=60811614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160072660A KR101802655B1 (ko) 2016-06-10 2016-06-10 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법

Country Status (1)

Country Link
KR (1) KR101802655B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200066259A (ko) * 2018-11-27 2020-06-09 알리바바 그룹 홀딩 리미티드 정보 보호를 위한 시스템 및 방법
US10885735B2 (en) 2018-11-27 2021-01-05 Advanced New Technologies Co., Ltd. System and method for information protection
US10938549B2 (en) 2018-11-27 2021-03-02 Advanced New Technologies Co., Ltd. System and method for information protection
US11102184B2 (en) 2018-11-27 2021-08-24 Advanced New Technologies Co., Ltd. System and method for information protection
US11144918B2 (en) 2018-08-06 2021-10-12 Advanced New Technologies Co., Ltd. Method, apparatus and electronic device for blockchain transactions
US11218455B2 (en) 2018-11-27 2022-01-04 Advanced New Technologies Co., Ltd. System and method for information protection

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144918B2 (en) 2018-08-06 2021-10-12 Advanced New Technologies Co., Ltd. Method, apparatus and electronic device for blockchain transactions
US11295303B2 (en) 2018-08-06 2022-04-05 Advanced New Technologies Co., Ltd. Method, apparatus and electronic device for blockchain transactions
KR20200066259A (ko) * 2018-11-27 2020-06-09 알리바바 그룹 홀딩 리미티드 정보 보호를 위한 시스템 및 방법
KR102139897B1 (ko) * 2018-11-27 2020-07-31 알리바바 그룹 홀딩 리미티드 정보 보호를 위한 시스템 및 방법
US10885735B2 (en) 2018-11-27 2021-01-05 Advanced New Technologies Co., Ltd. System and method for information protection
US10938549B2 (en) 2018-11-27 2021-03-02 Advanced New Technologies Co., Ltd. System and method for information protection
US11080694B2 (en) 2018-11-27 2021-08-03 Advanced New Technologies Co., Ltd. System and method for information protection
US11102184B2 (en) 2018-11-27 2021-08-24 Advanced New Technologies Co., Ltd. System and method for information protection
US11127002B2 (en) 2018-11-27 2021-09-21 Advanced New Technologies Co., Ltd. System and method for information protection
US11218455B2 (en) 2018-11-27 2022-01-04 Advanced New Technologies Co., Ltd. System and method for information protection
US11277389B2 (en) 2018-11-27 2022-03-15 Advanced New Technologies Co., Ltd. System and method for information protection
US11282325B2 (en) 2018-11-27 2022-03-22 Advanced New Technologies Co., Ltd. System and method for information protection

Similar Documents

Publication Publication Date Title
KR101802655B1 (ko) 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법
EP3420677B1 (en) System and method for service assisted mobile pairing of password-less computer login
KR101130415B1 (ko) 비밀 데이터의 노출 없이 통신 네트워크를 통해 패스워드 보호된 비밀 데이터를 복구하는 방법 및 시스템
US20170353450A1 (en) Protection and Verification of User Authentication Credentials against Server Compromise
US20180091487A1 (en) Electronic device, server and communication system for securely transmitting information
JP2007174633A (ja) トークンデバイス及びセキュアメモリデバイスのためのバインディング鍵をセキュアに取得するためのコンピュータ実施方法、および、トークンデバイスとセキュアメモリデバイスとをセキュアにバインドするシステム
EP4322464A1 (en) Information transmission method, storage medium and electronic device
US8918844B1 (en) Device presence validation
KR102008101B1 (ko) 함수 암호를 이용한 안전한 바이오 인증 방법
KR20170053063A (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
KR102510868B1 (ko) 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버
US20240305450A1 (en) Authentication system for a multiuser device
CN110838919B (zh) 通信方法、存储方法、运算方法及装置
CN111008400A (zh) 数据处理方法、装置及系统
US20240007445A1 (en) Optimized authentication system
JP2017108237A (ja) システム、端末装置、制御方法、およびプログラム
CN113439292B (zh) 用于管理计算机芯片模块中可信应用程序的系统和方法
JP2008048166A (ja) 認証システム
US11528130B1 (en) Stateless system to protect data
US10491385B2 (en) Information processing system, information processing method, and recording medium for improving security of encrypted communications
US11949772B2 (en) Optimized authentication system for a multiuser device
US11856105B1 (en) Secure multi-factor authentication system including identity verification of an authorized user
US11979501B2 (en) Optimized access in a service environment
KR20240135359A (ko) 동형 암호를 이용하여 사용자 인증을 수행하는 전자 장치 및 이의 제어 방법
CN117728976A (zh) 数据传输方法、装置、设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant