KR102291919B1 - 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 otp 등록 방법 - Google Patents

복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 otp 등록 방법 Download PDF

Info

Publication number
KR102291919B1
KR102291919B1 KR1020190122998A KR20190122998A KR102291919B1 KR 102291919 B1 KR102291919 B1 KR 102291919B1 KR 1020190122998 A KR1020190122998 A KR 1020190122998A KR 20190122998 A KR20190122998 A KR 20190122998A KR 102291919 B1 KR102291919 B1 KR 102291919B1
Authority
KR
South Korea
Prior art keywords
otp
registration
authentication server
client
authentication
Prior art date
Application number
KR1020190122998A
Other languages
English (en)
Other versions
KR20210040587A (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 KR1020190122998A priority Critical patent/KR102291919B1/ko
Publication of KR20210040587A publication Critical patent/KR20210040587A/ko
Application granted granted Critical
Publication of KR102291919B1 publication Critical patent/KR102291919B1/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/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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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/0827Key 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) involving distinctive intermediate devices or communication paths
    • 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/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법에 관한 것으로서, (a) 상기 인증 서버는 각 사용자별 등록 영역 정보를 저장해두는 단계; (b) 상기 서비스 서버가 접속된 사용자에 대한 OTP 디바이스 등록을 상기 인증 서버에 요청하는 단계; (c) 상기 인증 서버는 고유 아이디, 시크릿키를 생성하고, 등록 영역을 설정하여 OTP 디바이스 목록에 등록하는 단계; (d) 상기 인증 서버는 상기 고유 아이디, 시크릿키, 및, 등록영역을 포함하는 OTP 디바이스 정보를 상기 OTP 클라이언트에 전송하는 단계; (e) 상기 OTP 클라이언트는 상기 OTP 디바이스 정보로부터 고유 아이디, 시크릿키, 및, 등록 영역을 추출하는 단계; (f) 상기 OTP 클라이언트는 측정된 현재 위치를 획득하고, 상기 현재 위치가 상기 등록 영역 내에 위치하는지를 검증하는 단계; 및, (g) 현재 위치가 등록 영역 내에 위치하면, 상기 OTP 클라이언트는 해당 고유 아이디 및 시크릿키로 OTP 디바이스를 생성하고, 등록 완료 메시지를 상기 인증서버로 전송하는 단계를 포함하는 구성을 마련한다.
상기와 같은 방법에 의하여, 등록 위치의 검증과 단일 등록 세션을 통해 지정된 위치에서 하나의 OTP 디바이스만 등록하게 함으로써, 공격자가 사용자의 화면을 캡쳐하거나 스트리밍하더라도, OTP 디바이스를 복제하거나 등록하는 것을 방지할 수 있다.

Description

복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법 { An OTP registration method based on location authentication and session, for preventing replication and multi-registration }
본 발명은 스마트 OTP(one time password) 디바이스를 등록할 때, 등록 위치의 검증과 단일 등록 세션을 통해, 지정된 위치에서 하나의 OTP 클라이언트(또는 OTP 디바이스)만 등록하도록 통제하는, 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법에 관한 것이다.
일반적으로, 2 요소 인증(2 Factor Authentication, 2FA) 방식은 첫번째 인증 후에 다른 추가의 요소를 이용하여 인증을 하는 방법을 말한다. 추가 인증을 위해, 높은 안전성을 가진 OTP(one time password) 인증 방식이 많이 사용된다. OTP를 이용하는 방법은 오래전 OTP 동글(Dongle)을 이용한 방법에서, 요즘에는 스마트폰에서 구현한 OTP(또는 스마트 OTP)를 사용하고 있다. 특히, 스마트 OTP 이용 방식은 모바일의 보안 장치 등을 이용해서 보안성을 증가시켰다[특허문헌 1,2].
스마트 OTP에서는 시간(time) 정보를 입력 값으로 하는 TOTP(Time-based One Time Password) 방식이 있으며, 동기화된 이벤트(event)를 사용하는 이벤트 방식이 있다. 즉, OTP를 생성하는 경우, 공유하는 시크릿(Secret)과 현재의 시간(또는 현재 시각) 또는 이벤트 번호를 조합하여 입력하고 생성한다. 서버와 스마트 OTP 클라이언트는 동일한 시크릿(Secret)를 가져야 하며, 서버는 클라이언트에게 시크릿(Secret)을 전송하여야 한다.
모바일 OTP 또는 스마트 OTP는 양방향으로 인증서버와 통신을 하는 경우가 있고, 네트워크에 연결이 되어 있지 않은 경우에 키를 등록하는 경우가 있다. 양방향으로 접속이 되는 경우에는 시크릿키를 암호화된 보안 네트워크를 통해서 분배한다. 그러나, 네트워크를 통해서 인증서버와 연결이 되어 있지 않은 경우에는 인증 클라이언트와 인증 서버간 공유하는 시크릿(Secret)을 전송하여 동일하게 가지고 있어야 한다.
한편, 스마트 OTP는 등록과 사용의 두가지 과정으로 나눌 수 있다. 스마트 OTP에서는 통상적으로 등록 과정을 통해서, 서버와 클라이언트 앱 간에 공유되는 시크릿(Secret)을 서버에서 클라이언트 간에 전송하게 된다. OTP(one time password)는 두번째 과정에 사용된다. 즉, 서버와 클라이언트가 동일한 시크릿(Secret)과 OTP 생성 알고리즘을 가지고 있는 상태에서, 시간이나 이벤트에 의해서 사용자별 다른 OTP 번호가 생성되어, 사용자가 가지고 있는 OTP 값과 서버에서 생성된 OTP 값이 동일한지 확인하는 것이다.
서버에서 클라이언트로 시크릿(Secret)을 전송하는 경우, 편리한 방법을 제공하기 위해서 다차원 바코드를 사용할 수 있다. 즉, 스마트폰의 앱은 서버에서 제공하는(출력하는) 다차원 바코드를 읽어서, 서버와 공유하는 시크릿(Secret)을 저장한다. 또한, OTP를 생성하여 사용할 때 위치 정보를 씨드(SEED)로 이용하는 기술이 적용되고 있다[특허문헌 3,4]. 즉, OTP를 생성하는 단계에서 위치정보를 수신하여, 그 값을 이용하여 OTP를 생성하게 된다.
그런데, 종래 기술에 따르면, 통상적으로 서버의 다차원 바코드를 표시하는 웹은 사용자의 PC에서 구동된 웹브라우저를 통해서 표시되므로, 사용자의 PC는 공격의 대상이 될 수 있다. 즉, 프락시 공격 등을 통해서 사용자의 화면이 해킹되어 해커(공격자)가 해당 화면을 동일하게 볼 수 있다. 사용자와 동일한 화면을 보고 있는 공격자가 동일한 앱을 사용하여 스마트 OTP 디바이스를 등록할 수 있다. 따라서, 사용자의 스마트 OTP 디바이스는 클론이 되며, 공격자는 사용자와 동일한 스마트 OTP 디바이스를 보유할 수 있다. OTP 디바이스가 이렇게 복제되어 등록되면, 사용자가 향후 사용시 위치 정보를 이용하여 OTP를 생성하더라도, 공격자도 동일한 위치에 있는 경우 동일한 OTP를 생성할 수 있으며, 독자적으로 동작을 하는 경우에도 사용자 자체를 인증하기 어려움으로 보안상의 헛점이 발생하게 된다.
즉, 사용자가 인지하지 못한 상태에서 공격자가 사용자의 PC화면을 보고 있고 동일한 앱을 사용하여, 동일한 다차원 바코드를 촬영하여 등록하게 되면, 공격자도 동일한 일회용 비밀번호를 생성하는 스마트 OTP 디바이스를 가지게 된다. 이 경우 ID/PW 이후의 이차 인증을 OTP를 이용하게 되는 경우, 쉽게 탈취된 ID/PW와 동일한 번호를 생성하는 스마트 OTP 디바이스를 공격자가 가지게 되어서 계정이 탈취될 수 있다.
한국 공개특허공보 제10-2016-0081255호(2019.03.12.공개) 한국 등록특허공보 제10-1580291호(2015.12.24.공고) 한국 등록특허공보 제10-1710721호(2017.03.02.공고) 한국 등록특허공보 제10-1615686호(2016.04.26.공고)
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 스마트 OTP(one time password) 디바이스를 등록할 때, 등록 위치의 검증과 단일 등록 세션을 통해, 지정된 위치에서 하나의 OTP 클라이언트(또는 OTP 디바이스)만 등록하도록 통제하는, 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법을 제공하는 것이다.
즉, 본 발명의 목적은 위치 정보를 이용하여, OTP 디바이스를 등록하는 사용자가 서버가 지정한 위치에 있는지를 확인한 후 등록을 할 수 있도록 하는, 위치 인증 및 세션 정보 기반 OTP 등록 방법을 제공하는 것이다.
특히, 본 발명의 목적은 사용자 또는 관리자가 OTP 디바이스를 등록하는 위치를 지정할 수 있고, 이 지정된 위치 정보를 다차원 바코드에 비밀스런 방식으로 들어가게 하고, 모바일 단말에서 실행되는 앱은 다차원 바코드에 포함되어 있는 위치 정보를 읽어와서, 현재 모바일의 위치를 확인하고 등록 여부를 결정하는, 위치 인증 및 세션 정보 기반 OTP 등록 방법을 제공하는 것이다.
또한, 본 발명의 목적은 OTP 디바이스의 등록시 한번에 하나의 위치만 등록하게 하여 중복으로 등록하지 않도록 하여, 공격자가 다른 위치에서 해킹을 통해 동일한 위치값을 가지고 있더라도, 서버는 클라이언트와 하나의 세션만 가지도록 하여, 다른 위치에서 등록하는 사용자를 차단하는, 위치 인증 및 세션 정보 기반 OTP 등록 방법을 제공하는 것이다.
또한, 본 발명의 목적은 OTP 관리자가 설정하여 위치정보를 이용하여 등록하거나, 위치정보를 이용하지 않고 등록할 수 있도록 설정할 수 있는, 위치 인증 및 세션 정보 기반 OTP 등록 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 사용자 단말에 설치되는 OTP 클라이언트, 서비스 서버, 및, 인증 서버가 네트워크를 통해 연결되는, 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법에 관한 것으로서, (a) 상기 인증 서버는 각 사용자별 등록 영역 정보를 저장해두는 단계; (b) 상기 서비스 서버가 접속된 사용자에 대한 OTP 디바이스 등록을 상기 인증 서버에 요청하는 단계; (c) 상기 인증 서버는 고유 아이디, 시크릿키를 생성하고, 등록 영역을 설정하여 OTP 디바이스 목록에 등록하는 단계; (d) 상기 인증 서버는 상기 고유 아이디, 시크릿키, 및, 등록영역을 포함하는 OTP 디바이스 정보를 상기 OTP 클라이언트에 전송하는 단계; (e) 상기 OTP 클라이언트는 상기 OTP 디바이스 정보로부터 고유 아이디, 시크릿키, 및, 등록 영역을 추출하는 단계; (f) 상기 OTP 클라이언트는 측정된 현재 위치를 획득하고, 상기 현재 위치가 상기 등록 영역 내에 위치하는지를 검증하는 단계; 및, (g) 현재 위치가 등록 영역 내에 위치하면, 상기 OTP 클라이언트는 해당 고유 아이디 및 시크릿키로 OTP 디바이스를 생성하고, 등록 완료 메시지를 상기 인증서버로 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 방법은, (h) 현재 위치가 등록 영역 내에 위치하지 않으면, 상기 OTP 클라이언트는 등록 실패 메시지를 상기 인증 서버로 전송하고, 상기 인증 서버는 상기 OTP 디바이스 목록에서 해당 OTP 디바이스 정보를 제거하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 (a)단계에서, 상기 인증 서버는 상기 OTP 클라이언트로부터 등록 영역 정보를 수신하여 저장하되, 상기 (b) 단계 내지 상기 (g)단계를 수행하기 전에 수행하는 것을 특징으로 한다.
또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 (b)단계에서, 상기 인증 서버는 상기 OTP 클라이언트와 양방향 통신이 가능하면, 상기 OTP 클라이언트에 대하여 유일하게 하나의 세션만을 허용하고, 허용된 세션에서만 OTP 디바이스를 등록하는 것을 특징으로 한다.
또한, 본 발명은 동적 공유 시크릿 분배 방식의 OTP 보안관리 방법에 있어서, 상기 (g)단계에서, 상기 인증 서버는 상기 OTP 클라이언트에 일회용 비밀번호를 요청하여 수신하고, 생성된 시크릿키를 이용하여 상기 OTP 디바이스의 일회용 비밀번호를 생성하고, 생성된 비밀번호와 수신한 비밀번호를 대비하여, 상기 시크릿키를 검증하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법에 의하면, 등록 위치의 검증과 단일 등록 세션을 통해 지정된 위치에서 하나의 OTP 디바이스만 등록하게 함으로써, 공격자가 사용자의 화면을 캡쳐하거나 스트리밍하더라도, OTP 디바이스를 복제하거나 등록하는 것을 방지할 수 있는 효과가 얻어진다.
즉, 본 발명은, 이미 해킹된 디바이스로 규정되는 보안성이 낮은 PC를 사용하는 환경에서 스마트 OTP의 사용을 통해서 보안성을 높이려고 할 때, 공격자가 사용자의 PC 화면을 캡쳐하거나 스트리밍하여 동일하게 클론된 스마트 OTP 디바이스를 생성하려는 공격에 대하여, 위치정보를 이용하여 다른 위치나 국가에 위치한 공격자에 의한 OTP 디바이스의 등록을 방지하고, 안전하게 스마트 OTP 디바이스를 등록하게 하고, 계정이나 로그인의 보안성을 높일 수 있다.
또한, 본 발명은, OTP 디바이스 등록시의 보안을 강화함으로써, 클론으로 생성되는 OTP 디바이스를 막을 수 있으며, 이를 통해, OTP 클라이언트(또는 OTP 디바이스)의 유일성을 증빙할 수 있고, 사용자가 인증을 위해 사용하는 OTP에 대한 신뢰성을 높일 수 있고, 사용자 인증의 강도를 강화할 수 있다.
도 1은 종래기술에 따른 모바일용 OTP 이용방식에 대한 예시도.
도 2는 본 발명을 실시하기 위한 전체 시스템의 구성도.
도 3은 본 발명의 일실시예에 따른 스마트 단말의 구성에 대한 블록도.
도 4는 본 발명의 일실시예에 따른 OTP 디바이스 목록에 대한 예시 표.
도 5는 본 발명의 제1 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 디바이스 등록 방법을 설명하는 흐름도.
도 6은 본 발명의 본 발명의 제2 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 인증 방법을 설명하는 흐름도.
도 7은 본 발명의 제3 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 오프셋 갱신 방법을 설명하는 흐름도.
도 8은 본 발명의 제4 실시예에 따른 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 OTP 디바이스 정보 다운로드 방법을 설명하는 흐름도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명의 일실시예에 따른 전체 시스템의 구성을 도 2를 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명의 일실시예에 따른 전체 시스템은 스마트 단말(10)에 설치되어 OTP 디바이스를 등록하고 OTP 일회용 비밀번호를 생성하는 OTP 클라이언트(20), 및, OTP 디바이스를 등록하고 OTP 일회용 비밀번호를 검증하여 사용자 인증을 수행하는 인증 서버(30)로 구성된다. 또한, 사용자에게 서비스를 제공하는 서비스 서버(50)를 더 포함하여 구성된다.
먼저, 스마트 단말(10)은 사용자가 이용하는 모바일 단말로서, 스마트폰, 패블릿, 태블릿PC 등 통상의 컴퓨팅 기능을 구비한 스마트 단말이다. 특히, 스마트 단말(10)은 어플리케이션 또는, 모바일용 어플리케이션(또는 앱, 어플) 등이 설치되어 실행될 수 있는 단말이다. 이하에서, 사용자가 어떤 작업을 수행하는 설명은 스마트 단말(10) 또는 스마트 단말(10)에 설치된 프로그램(또는 앱)을 통해 수행하는 작업임을 의미한다.
도 2에서 보는 바와 같이, 스마트 단말(10)은 이미지를 촬영할 수 있는 카메라(11), 이미지 또는 영상 등의 출력을 표시할 수 있는 디스플레이(12), 터치스크린 등 입력장치(13), 자이로스코프 등 단말의 회전이나 이동을 감지하는 움직임 센서(14), 외부와 통신을 수행하는 통신부(15), 위치를 감지하는 위치감지 센서(16), 및, 어플 등을 설치하여 실행시킬 수 있는 중앙처리장치(18)로 구성된다.
특히, 위치감지 센서(16)는 GPS(위성항법시스템) 등에 의해 현재 위치를 감지할 수 있다.
다음으로, OTP 클라이언트(20)는 스마트 단말(10)에 설치되어 수행되는 모바일용 어플리케이션(또는 앱, 어플)으로서, 사용자의 명령에 따라 OTP 디바이스를 등록하고 일회용 비밀번호(OTP, one-time password)를 생성하는 프로그램 시스템이다.
OTP 클라이언트(20)는 OTP 디바이스를 인증 서버(30)에 등록하고, 해당 OTP 디바이스의 시크릿키와 고유 아이디(ID)를 분배받는다.
이때, OTP 클라이언트(20)는 인증 서버(30)로부터 등록 영역(또는 위치 정보) 정보를 수신하고, 현재 위치가 등록 영역인 경우에 한하여 OTP 디바이스를 등록한다. 즉, 현재 위치가 등록 영역 내에 포함되지 않으면, OTP 클라이언트(20)는 해당 OTP 디바이스의 등록을 차단한다. 이때, 바람직하게는, 현재 위치는 스마트 단말(10)의 위치감지 센서(16)를 이용하여 획득된 위치 정보이다.
또한, OTP 클라이언트(20)는 인증 서버(30)로부터 현재 위치에 대한 요청을 수신하면, 스마트 단말(10)의 위치감지 센서(16)를 통해 현재 위치를 측정하고, 측정된 현재 위치를 인증 서버(30)로 전송한다. 이때, 현재 위치는 암호화 통신에 의해 보안된 상태에서 전송된다.
OTP 디바이스는 일회용 비밀번호를 생성하는 하나의 디바이스 역할을 하는 객체이다. OTP 클라이언트(20)는 다수의 OTP 디바이스를 등록하고 관리할 수 있다. 일례로서, OTP 디바이스는 각 사용자가 서비스 서버(50) 별로 생성될 수 있다. 다른 실시예로서, OTP 클라이언트(20)가 하나의 OTP 디바이스만 등록하도록 제한되는 경우, OTP 클라이언트 자체가 OTP 디바이스로서 역할을 할 수 있다.
각 OTP 디바이스는 고유의 시크릿키를 가지고 있고, 고유 아이디로 식별된다. 시크릿 키는 OTP 클라이언트(20)와 인증 서버(50)가 서로 분배하여 공유하는 키로서, 일회용 비밀번호를 생성하는 시드(seed)에 활용된다. 시크릿 키는 각 OTP 클라이언트 또는 OTP 디바이스 별로 각기 달리 설정된다.
또한, 고유 아이디는 시크릿 키 또는 OTP 디바이스를 식별하기 위한 식별정보이다. 바람직하게는, 사용자 아이디와 서비스 서버의 아이디(이하 서비스 아이디)를 이용하여, 고유 아이디가 생성된다.
또한, OTP 클라이언트(20)는 사용자 요청에 따라 해당 OTP 디바이스에 대한 비밀번호를 생성한다. 이때, OTP 클라이언트(20)는 생성된 시크릿 키 및 시각 정보(또는 시각 시드값)를 이용하여 일회용 비밀번호(OTP)를 생성한다. 바람직하게는, 시각 정보는 현재 시각으로 설정된다.
생성된 일회용 비밀번호(OTP)는 고유 아이디와 함께 인증 서버(50)로 전달되고, 인증 서버(50)에 의해 일회용 비밀번호에 대한 검증이 수행된다. OTP에 대한 검증이 성공되면, OTP에 의한 사용자 인증이 통과된 것으로 본다.
다음으로, 인증서버(30)는 시크릿 키 또는 OTP 디바이스를 등록시키고, 서비스 서버(50)의 요청에 따라 OTP(one time password, 일회용 비밀번호)를 검증한다.
인증서버(30)는 고유 아이디, 시크릿 키, 및, 등록 영역을 하나의 세트로 매핑하여 OTP 디바이스로 등록한다. 앞서 설명한 바와 같이, 고유 아이디는 시크릿 키 또는 OTP 디바이스를 식별하기 위한 식별정보이다. 또한, 시크릿 키는 OTP 클라이언트(20)와 인증 서버(50)가 서로 분배되어 공유되는 키이다. 시크릿 키와 시각 시드값의 조합을 시드로 하여, 일회용 비밀번호가 생성된다.
또한, 등록 영역은 OTP 디바이스를 등록할 수 있는 영역를 나타낸다. 즉, OTP 디바이스를 등록할 때, OTP 클라이언트(20) 또는 스마트 단말(10)이 해당 등록 영역 내에 위치해야 한다. 등록 영역은 복수 개의 영역으로 설정될 수 있다. 바람직하게는, 등록 영역은 행정구역 상 지역으로 설정된다. 또는, 다른 실시예로서, 등록 영역은 GPS 등 표준 위치 좌표로 설정될 수 있다. 이때, 등록 영역의 일치 여부(포함 여부)를 해당 위치 좌표에서의 소정의 범위 내에 위치하는 것으로 판단할 수 있다.
또한, 등록 영역은 국가 단위로 설정할 수 있다. 또한, "서울시 송파구" 또는 "서울시 송파구 법원로" 등 행정 구역 상 각 지역 단위로 설정할 수도 있고, 특정 건물 내로 한정할 수도 있다.
또한, 등록 영역은 사전에 설정될 수 있다. 또는, 다른 실시예로서, 인증서버(30)는 OTP 클라이언트(20) 또는 스마트 단말(10)에 현재 위치를 전달할 것으로 요청하고, 현재 위치를 수신하고, 수신한 현재 위치를 기준으로 등록 영역을 설정할 수 있다.
바람직하게는, 도 3에서 보는 바와 같이, 인증서버(30)는 고유 아이디, 시크릿 키, 등록 영역 등을 하나의 매핑 쌍으로 하여, 목록(이하 OTP디바이스 목록)으로 관리할 수 있다.
더욱 바람직하게는, 인증서버(30)는 고유 아이디, 시크릿 키, 등록 영역 외에도 주기를 추가하여 관리할 수 있다. 주기는 일회용 비밀번호를 발생시키는 시간간격을 의미한다. 즉, 일회용 비밀번호는 시크릿 키와 시각 시드값의 조합을 이용하여 생성되는데, 이때 주기는 시각 시드값의 시간 단위를 의미한다. 따라서 주기의 시간 마다 일회용 비밀번호가 변경된다. 예를 들어, 주기가 30초이면, 생성되는 일회용 비밀번호는 30초마다 변경된다.
또한, 인증서버(30)는 사용자 아이디 또는 서비스 아이디(또는 서비스 서버(50)의 아이디)를 OTP 클라이언트(20) 또는 서비스 서버(50)로부터 수신하여, 고유 아이디를 생성한다. 고유 아이디는 사전에 설정되거나, 랜덤하게 설정되거나, 시간적 요소(타임스탬프 등)를 이용하여 생성될 수 있다.
또한, 인증서버(30)는 고유 아이디 및 시크릿키, 또는 등록 영역 등(이하 시크릿키 등)을 OTP 클라이언트(20)로 함께 전송한다. 이때, 바람직하게는, 인증서버(30)는 시크릿키 등을 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여 전송할 수 있다. 일례로서, 시크릿키 등을 QR 코드로 변환하여 생성하고, 해당 QR 코드를 디스플레이(웹 화면 등)에 표시한다. 그러면 사용자는 스마트 단말(10)의 카메라 등을 이용하여 QR코드를 인식하고, QR코드로부터 시크릿키 등을 추출한다.
또한, 인증서버(30)는 OTP 클라이언트(20)와 직접 연결되어 세션을 형성하고, 형성된 세션을 통해 OTP 디바이스 등록 작업(이하 양방향 OTP 디바이스 등록 작업)을 수행할 수 있다. 이때, 인증서버(30)는 해당 시크릿키에 대하여 하나의 유일한 세션만을 통해 등록 작업을 수행한다. 즉, 인증서버(30)는 유일한 하나의 세션만을 통해 등록 작업을 수행하기 때문에, 동시에 다른 OTP 클라이언트(20)에 의해 해당 시크릿키에 대한 등록 작업을 수행하지 못하도록 방지할 수 있다.
한편, 인증서버(30)는 서비스 서버(50)로부터 시크릿 키(또는 OTP 디바이스)의 일회용 비밀번호에 대한 검증 요청(인증 요청)을 수신하면, 시크릿 키의 일회용 비밀번호(OTP)를 검증(또는 인증)하여 그 결과(또는 검증결과, 인증결과)를 회신한다.
즉, 인증서버(40)는 서비스 서버(50)로부터 고유 아이디와 일회용 비밀번호(OTP)를 수신하면, 고유 아이디에 해당되는 시크릿 키(또는 OTP 디바이스)를 검색한다. 특히, OTP 디바이스 목록에서 고유 아이디를 검색하고, 검색된 고유 아이디에 매핑되는 시크릿 키를 검색한다. 검색된 시크릿 키, 오프셋 등으로 일회용 비밀번호(OTP)를 생성하고, 생성된 일회용 비밀번호(OTP)와 수신한 일회용 비밀번호(OTP)를 대비하여, 그 동일 여부로 일회용 비밀번호를 검증(또는 인증)한다. 즉, 동일하면, 검증되는 것으로 판단한다.
한편, 인증서버(30)와 서비스 서버(50)는 서로 독립된 서버로서 설명하였으나, 이들 서버들은 하나의 시스템 또는 하나의 서버로서 구현될 수 있다.
다음으로, 서비스 서버(50)는 서비스를 제공하는 서버로서, 서비스의 사용자에 대한 사용자 인증을 처리하고, 사용자 인증이 통과되면 해당 사용자에게 서비스를 제공한다.
서비스 서버(50)는 사용자 인증을 수행한다. 이때, 1요소 인증 또는 2요소 인증을 수행할 수 있다. 특히, 서비스 서버(50)는 인증수단으로서 OTP를 이용한 인증을 함께 수행한다. 또는 다른 실시예로서, 일회용 비밀번호 방식으로 단독으로만 수행할 수도 있다.
서비스 서버(50)는 OTP 인증을 인증서버(30)에 요청한다. 이때, 서비스 서버(50)는 OTP 클라이언트(20)로부터 고유 아이디와, 일회용 비밀번호를 수신하고, 수신한 고유 아이디와 일회용 비밀번호를 인증서버(30)로 전달한다.
한편, 서비스 서버(50)는 OTP 디바이스 등록 작업을 사용자 단말(10) 또는 OTP 클라이언트(20)에 중계하거나 제공할 수 있다. 즉, 서비스 서버(50)는 인증 서버(50)와 연동되어, 인증 서버(50)의 OTP 디바이스 관리의 인터페이스를 제공할 수 있다. 따라서 사용자 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속하여, OTP 디바이스를 등록할 수 있다. 그러나 실제 OTP 디바이스의 등록 서비스는 인증 서버(30)에 의해 제공된다.
특히, 서비스 서버(50)는 OTP 디바이스 등록시, 서비스 아이디(서비스 서버의 아이디)를 인증 서버(30)에 제공한다.
다음으로, 데이터베이스(40)는 서비스 서버에 대한 정보를 저장하는 서비스DB(41), 각 OTP 디바이스의 고유 아이디, 시크릿키, 등록 영역 등의 목록을 저장하는 디바이스DB(42)로 이루어진다. 그러나 상기 데이터베이스(40)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.
다음으로, 본 발명의 일실시예에 따른 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법을 도 4를 참조하여 설명한다.
도 4에서 보는 바와 같이, 먼저, 인증 서버(30)는 등록 영역 정보를 사전에 입력받거나, OTP 클라이언트(20)로부터 수신하여 저장해둔다(S11). 이때, 등록 영역 정보는 사용자 아이디(ID) 등 사용자 식별정보와 매핑하여 저장해둔다. 바람직하게는, 인증 서버(30)는 사용자 아이드(ID) 등 사용자 식별정보를 기준(키 key)으로 목록으로 관리한다.
먼저, 사전에 입력받는 경우를 설명한다. 인증 서버(30)는 사용자로부터 등록할 위치 정보(또는 영역 정보)를 사전에 입력받아 저장한다.
다음으로, OTP 클라이언트(20)로부터 수신하는 경우를 설명한다. 인증 서버(30)는 OTP 클라이언트(20)에 영역 정보(등록시의 위치 영역)를 요청하고, OTP 클라이언트(20)로부터 위치 정보 또는 영역 정보를 수신하여, 수신된 정보로 등록 영역 정보를 저장해둔다.
이때, 인증 서버(30)는 OTP 디바이스 등록 작업을 수행하기 전에, OTP 클라이언트(20)로부터 영역 정보를 수신받아 저장해둔다. 즉, 인증 서버(30)는 영역 정보 저장 작업과, OTP 디바이스 등록 작업을 별도로 수행한다. 바람직하게는, 서로 다른 세션으로 2개의 작업을 각각 수행한다.
다음으로, 스마트 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)에 접속한다(S31). 이때, 서비스 서버(50)는 사용자 단말(10)로부터 사용자 아이디를 입력받는다. 또한, 바람직하게는, 서비스 서버(50)는 아이디와 패스워드 등에 의한 1차 사용자 인증을 수행할 수 있다. 서비스 서버(50)는 1차 인증을 수행하면서 사용자 아이디를 획득할 수 있다. 또한, 사용자 단말(10) 또는 OTP 클라이언트(20)는 서비스 서버(50)의 아이디 또는 서비스 아이디를 얻을 수 있다.
다음으로, 서비스 서버(50)는 OTP 디바이스의 등록을 인증 서버(30)에 요청한다(S32). 이때, 서비스 서버(50)는 사용자 아이디(ID)와 자신의 아이디(또는 서비스 서버의 아이디, 서비스 아이디)를 인증 서버(30)에 전송한다.
한편, 다른 실시예로서, OTP 클라이언트(20)가 직접 인증 서버(30)에 접속하여 OTP 디바이스의 등록을 신청할 수 있다(S31,S32). 이 경우, 서비스 서버(50)의 중계 없이, OTP 클라이언트(20)가 인증 서버(30)의 인터페이스를 이용하여 직접 등록 작업을 수행한다. 이때, 인증 서버(30)는 사용자 아이디(ID)만 수신한다.
또한, 이때, OTP 클라이언트(20)는 OTP 디바이스의 등록 방식을 선택할 수 있다. 즉, OTP 클라이언트(20)는 인증 서버(30)가 위치 검증 또는 유일한 세션 설정을 수행하여 OTP 디바이스를 등록할 것인지 여부를 선택할 수 있다. 즉, OTP 클라이언트(20)가 위치 검증 또는 유일한 세션 설정을 온(on)하면, 인증 서버(30)는 위치 검증을 수행하거나, 유일한 세션으로 한정한다. 또한, 오프(off)하면, 인증 서버(30)는 위치 검증을 수행하지 않거나, 유일한 세션으로 한정하지 않는다.
다음으로, 인증 서버(30)와 OTP 클라이언트(20) 간에 양방향 통신이 가능하면, 인증 서버(30)는 OTP 클라이언트(20)와 단일 세션을 설정한다(S33). 즉, 양방향 통신이 가능한 경우, 인증 서버(30)는 OTP 클라이언트(20)의 사용자 아이디에 대하여 유일하게 하나의 세션만을 허용한다. 따라서 인증 서버(30)는 해당 사용자 아이디에 대한 세션을 설정하면, 해당 사용자 아이디에 대한 추가적인 세션 설정 요청을 처리하지 않는다. 이를 통해, 동시에 다른 OTP 클라이언트(20)의 OTP 디바이스 등록을 방지할 수 있다.
다음으로, 인증 서버(30)는 고유 아이디와 시크릿 키를 생성한다(S41).
인증 서버(30)는 사용자 아이디, 또는, 사용자 아이디 및 서비스 아이디를 이용하여 고유 아이디를 생성한다. OTP 클라이언트(20)가 서비스 서버(50)를 거치지 않고 직접 인증 서버(30)에 접속하는 경우, 서비스 아이디 없이 사용자 아이디를 이용하여 고유 아이디를 생성할 수 있다.
또한, 인증 서버(30)는 고유 아이디를 이용하여 시크릿 키를 생성한다. 즉, 수학식 1과 같이, 타임스탬프(time stamp) 등을 시드(seed)로 활용하여 난수를 발생시켜, 난수발생 횟수를 생성한다. 그리고 앞서 수학식 2와 같이, 고유 아이디를 시드(Seed)로 활용하여 난수를 발생시키되, 난수발생 횟수만큼 발생시켜 시크릿 키 Secret를 획득한다.
[수학식 1]
SequenceID = RNG(PREDEFINEDVAL, TimeSTamp)
여기서, SequenceID는 난수 발생 횟수를 나타내고, RNG는 난수발생기 또는 난수발생 함수를 나타낸다. 또한, TimeSTamp는 파라미터를 나타낸다. 그리고 PREDEFINEDVAL은 사전에 정해지는 상수이다.
[수학식 2]
For (i=0; i<SequenceID; Secret = RNG(UniqueID), i++);
수학식 2는 시크릿 키를 생성하는 슈도 코드(pseudo code)로서, 고유 아이디(ID)를 시드(seed)로 난수발생기(RNG)에 의해 난수를 발생시키되, 난수 발생 횟수(SequenceID) 만큼 반복하여 난수를 발생시킨다.
또한, 인증 서버(30)는 생성된 시크릿키의 해시값을 구하여 검증값으로 활용한다.
다음으로, 인증 서버(30)는 등록 영역을 설정한다(S42).
즉, 인증 서버(30)는 저장해둔 영역 정보로 등록 영역을 설정한다. 이때, 등록 영역 정보의 목록에서 사용자 아이디 등 식별정보로 검색하고, 해당 식별정보에 대응되는 등록 영역 정보를 추출한다. 그리고 추출된 영역 정보로 등록 영역을 설정한다. 즉, OTP 디바이스 등록시, 수신받은 사용자 아이디를 이용하여 저장된 영역 정보를 검색하고, 검색된 영역 정보로 등록 영역을 설정한다.
등록 영역은 복수 개의 위치로 설정될 수 있다.
다음으로, 인증 서버(30)는 고유 아이디, 시크릿키, 등록 영역 등을 대응시켜, OTP 디바이스 목록에 등록한다(S43). 바람직하게는, 해당 목록에 주기를 설정할 수 있다. 주기는 일회용 비밀번호를 발생시키는 시간간격을 의미한다. 특히, 시크릿 키와 현재시각의 조합으로 일회용 비밀번호를 생성하는데, 현재시각의 단위가 곧 주기이다. 시크릿 키와 현재시각이 동일하면 일회용 비밀번호는 동일하므로, 현재시각이 다르면 일회용 비밀번호는 달라진다. 따라서 주가 단위로 일회용 비밀번호가 변경된다.
결국, 도 3과 같이, OTP 디바이스 정보는 고유 아이디, 시크릿키, 등록 영역, 주기 등으로 구성된다.
다음으로, 인증 서버(30)는 OTP 디바이스 정보를 서비스 서버(50) 또는 OTP 클라이언트(20)로 전송한다(S44). 바람직하게는, 인증 서버(30)는 주기도 함께 전송할 수 있다. 또한, 바람직하게는, 시크릿키의 검증값도 함께 전송할 수 있다. 특히, 서비스 서버(50)는 OTP 디바이스 정보를 수신하여 스마트 단말(10) 또는 OTP 클라이언트(20)에 전달한다.
또한, 인증 서버(30)는 OTP 클라이언트(20) 또는 스마트 단말(10)과 직접 네트워크를 통해 OTP 디바이스 정보를 전송하거나, 2차원 코드를 통해 간접적으로 전달할 수 있다.
즉, 인증 서버(30)는 OTP 디바이스 정보를 2차원 코드(QR코드, 보이스아이 코드 등)로 변환하여, 2차원 코드 또는 2차원 코드 이미지를 전송할 수 있다. 2차원 코드는 바코드 등과 같이 2차원으로 형성된 코드로서, QR코드, 보이스아이(voiceye) 코드 등이다. 특히, 인증 서버(30)는 2차원 코드 변환시, OTP 디바이스 정보를 암호화 하여, 암호화된 데이터를 2차원 코드로 변환할 수 있다.
또한, 바람직하게는, 서비스 서버(50)는 인증 서버(30)로부터 OTP 디바이스 정보의 2차원 코드를 수신하여, 2차원 코드를 화면 상에 표시한다. 사용자는 스마트 단말(10)의 카메라(11)로 해당 2차원 코드를 촬영하고, 촬영된 2차원 코드로부터 OTP 디바이스 정보를 추출한다. 이때, 2차원 코드의 내용이 암호화된 경우, 복호화 한 후 OTP 디바이스 정보를 추출한다.
다음으로, OTP 클라이언트(20)는 OTP 디바이스 정보를 수신하면, 고유 아이디, 시크릿 키, 및, 등록 영역을 추출한다(S51). 고유 아이디와 시크릿 키를 직접 수신하는 경우, 해당 2차원 코드를 디코딩하면 바로 고유 아이디와 시크릿 키, 등록 영역 등을 추출할 수 있다.
또한, OTP 클라이언트(20)는 시크릿 키의 검증값을 수신하는 경우, 생성된 시크릿 키에 해시 함수를 적용하여, 해시값을 획득한다. 그리고 획득된 해시값과 수신한 검증값을 비교하여, 시크릿 키를 검증한다.
[수학식 3]
Result = Compare(HashValue,HashValue_Server)
여기서, Result는 비교 결과 또는 검증결과이고, HashValue는 획득한 해시값이고, HashValue_Server는 서버로부터 수신한 검증값이다. Compare는 동일 여부를 판단하는 함수이다. 동일한 경우, 시크릿 키가 올바른 키로 검증된다.
다음으로, OTP 클라이언트(20)는 측정된 현재 위치를 획득한다(S52). 바람직하게는, OTP 클라이언트(20)는 스마트 단말(10)의 위치감지 센서(16)를 통해 현재 위치를 측정하게 하고, 측정된 현재 위치를 획득한다.
다음으로, OTP 클라이언트(20)는 측정된 현재 위치와 등록 영역을 대비하여, 현재 위치가 등록 영역 내에 있는지를 검증한다(S53). 현재 위치가 등록 영역 내에 위치하면 위치가 검증된 것으로 판단하고, 그렇지 않으면 위치가 검증되지 않는 것으로 판단한다.
만약, 위치가 검증되면, OTP 클라이언트(20)는 추출된 고유 아이디와 시크릿키, 주기 등 OTP 디바이스 정보로, OTP 디바이스를 등록한다(S55). 바람직하게는, OTP 클라이언트(20)는 고유 아이디, 시크릿키, 주기 등으로 구성된 클라이언트용 OTP 디바이스 목록을 관리하고, 추출된 고유 아이디와 시크릿키, 주기 등 수신한 OTP 디바이스 정보를 클라이언트용 OTP 디바이스 목록에 추가한다.
그리고 OTP 클라이언트(20)는 해당 OTP 디바이스의 등록 완료 결과를 인증 서버(30)로 전송한다(S56).
다음으로, 인증 서버(30)는 OTP 클라이언트(20)로부터 등록 완료 메시지를 수신하면, 시크릿키를 검증한다(S61). 시크릿키 검증 단계(S61)는 생략될 수 있다.
시크릿키 검증은 2가지 실시예로 구분된다. 하나는 인증서버(30)에서 요청하여 OTP 비밀번호를 입력하고 서버(30)로 전송하여 서버(30)에서 동일 여부를 검증하는 방식이고, 다른 하나의 실시예는 인증서버(30)가 OTP를 표시하고, 사용자가 일치 여부를 확인해 입력하는 방식이다.
즉, 제1-1 실시예는 인증 서버(30)와 OTP 클라이언트(20)가 온라인으로 연결되는 경우에 적용된다. 즉, 인증 서버(30)는 OTP 클라이언트(20)에 일회용 비밀번호를 요청하여, OTP 클라이언트(20)로부터 일회용 비밀번호를 수신한다. 그리고 인증 서버(30)는 자신이 생성한 시크릿키를 이용하여 일회용 비밀번호를 산출하고, 산출된 비밀번호와 수신한 비밀번호를 대비하여 검증한다. 즉, 동일하면 검증이 통과된 것으로 판단한다.
다음으로, 제1-2 실시예는 인증 서버(30)와 OTP 클라이언트(20)가 오프 라인 상태에서도 적용될 수 있다. 즉, 인증 서버(30)는 자신이 저장한 시크릿키를 이용하여 일회용 비밀번호를 생성한다. 그리고 인증 서버(30)는 생성한 일회용 비밀번호를 화면 상(예를 들어, 웹 상의 화면 등)에 표시하고, 화면에 표시된 일회용 비밀번호와, OTP 클라이언트(20)에 의해 생성하는 일회용 비밀번호의 동일 여부에 대한 확인을 요청한다. 즉, 사용자는 OTP 클라이언트(20)를 통해 일회용 비밀번호를 생성하고, 생성된 일회용 비밀번호와 화면상 비밀번호를 대비하고 동일 여부를 화면 상에 입력한다. 인증 서버(30)는 동일한 것으로 입력되면, 시크릿키가 검증된 것으로 판단한다.
다음으로, 앞서 위치 검증 단계(S53)에서 위치 검증이 실패하면, OTP 클라이언트(20)는 OTP 디바이스의 등록 실패로 판단하고(S71), 등록 실패 메시지를 인증 서버(30)로 전송한다(S72).
그리고 인증 서버(30)는 등록 실패 메시지를 수신하면, OTP 디바이스 목록에서, 등록되었던 해당 OTP 디바이스를 제거한다(S81).
다음으로, 본 발명의 일실시예에 따른 OTP 인증 방법을 도 5를 참조하여 설명한다.
도 5에서 보는 바와 같이, 사용자 단말(10) 또는 OTP 클라이언트(20)가 서비스 서버(50)에 접속한다(S151). 이때, 서비스 서버(50)는 2단계 인증을 수행하는 경우, 사용자 아이디와 패스워드 등으로 1차 사용자 인증을 수행할 수 있다(S152).
다음으로, 서비스 서버(50)는 OTP 인증을 위해, 인증 서버(50)와 OTP 인증을 개시한다(S161). 이때, 서비스 서버(50)는 인증 서버(50)의 OTP 인증을 위한 인터페이스를 이용할 수 있다. 그리고 서비스 서버(50) 또는 인증 서버(50)는 사용자 또는 사용자 단말(10), OTP 클라이언트(20)에 일회용 비밀번호를 요청한다(S162).
다음으로, 스마트 단말(10)은 OTP 클라이언트(20)를 실행시키거나, 또는 OTP 클라이언트(20)가 직접 일회용 비밀번호를 생성하여(S171), 서비스 서버(50) 또는 인증 서버(30)에 전송한다(S172).
이때, 수학식 4와 같이, OTP 클라이언트(20)는 현재 시각으로 시각 시드값을 산출하고, 시크릿 키와 시각 시드값을 이용하여 일회용 비밀번호 OTP를 생성한다. 즉, 시크릿 키와 시각 시드값이 동일하면, 동일한 일회용 비밀번호를 얻을 수 있다.
[수학식 4]
OTP_Client = GenerateOTP(Secret, GetCurrentTime())
OTP_Client는 클라이언트에서 생성한 일회용 비밀번호(이하 제1 비밀번호)이고, GetCurrentTime()은 현재시각을 얻는 함수이다. 또한, GenerateOTP()는 일방향 함수이거나 일대일 대응 함수로서, 동일한 입력값에 대해 동일한 출력값을 출력한다.
제1 비밀번호의 전송은 직접 사용자에 의해 입력될 수 있다. 즉, OTP 클라이언트(20)는 단지 제1 비밀번호를 화면 상에 출력만 하고, 사용자가 직접 서비스 서버(50) 또는 인증 서버(30)의 입력 인터페이스에 입력할 수 있다. 또는 OTP 클라이언트(20)가 서비스 서버(50) 또는 인증 서버(30)와 데이터 통신을 수행할 수 있으면, 데이터 통신을 통해 제1 비밀번호(또는, 제1 비밀번호 및 고유 아이디)를 전송할 수 있다.
한편, 바람직하게는, OTP 클라이언트(20)는 제1 비밀번호를 전송할 때, 해당 제1 비밀번호에 대응되는 고유 아이디를 함께 전송한다.
다음으로, 인증 서버(30)는 제1 비밀번호(또는 제1 비밀번호 및 고유 아이디)를 수신하고, 제2 비밀번호를 생성한다(S181). 제2 비밀번호는 고유 아이디에 해당하는 시크릿 키를 이용하여 생성된다. 제2 비밀번호는 앞서 [수학식 4]와 같은 형태로 생성될 수 있다.
다음으로, 인증 서버(30)는 제1 및 제2 비밀번호를 비교하여, 수신한 제1 비밀번호를 검증한다(S182). 즉, 제1 및 제2 비밀번호가 동일하면, 해당 인증(또는 검증)이 통과된다.
다음으로, 인증 서버(30)는 검증결과 또는 인증결과를 서비스 서버(50) 또는 OTP 클라이언트(20)에 전송한다(S183).
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 스마트 단말 20 : OTP 클라이언트
30 : 인증 서버 40 : 데이터베이스
50 : 서비스 서버 80 : 네트워크

Claims (5)

  1. 사용자 단말에 설치되는 OTP 클라이언트, 서비스 서버, 및, 인증 서버가 네트워크를 통해 연결되는, 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법에 있어서,
    (a) 상기 인증 서버는 각 사용자별 등록 영역 정보를 저장해두는 단계;
    (b) 상기 서비스 서버가 접속된 사용자에 대한 OTP 디바이스 등록을 상기 인증 서버에 요청하는 단계;
    (c) 상기 인증 서버는 고유 아이디, 시크릿키를 생성하고, 등록 영역을 설정하여 OTP 디바이스 목록에 등록하는 단계;
    (d) 상기 인증 서버는 상기 고유 아이디, 시크릿키, 및, 등록영역을 포함하는 OTP 디바이스 정보를 상기 OTP 클라이언트에 전송하는 단계;
    (e) 상기 OTP 클라이언트는 상기 OTP 디바이스 정보로부터 고유 아이디, 시크릿키, 및, 등록 영역을 추출하는 단계;
    (f) 상기 OTP 클라이언트는 측정된 현재 위치를 획득하고, 상기 현재 위치가 상기 등록 영역 내에 위치하는지를 검증하는 단계; 및,
    (g) 현재 위치가 등록 영역 내에 위치하면, 상기 OTP 클라이언트는 해당 고유 아이디 및 시크릿키로 OTP 디바이스를 생성하고, 등록 완료 메시지를 상기 인증서버로 전송하는 단계를 포함하고,
    상기 (b)단계이후, 상기 (c)단계 이전에서, 상기 인증 서버는 상기 OTP 클라이언트와 세션을 설정하고, 이후 단계에서, 상기 인증 서버와 상기 OTP 클라이언트는 설정된 세션을 통해 OTP 디바이스를 등록하고,
    상기 (b)단계이후, 상기 (c)단계 이전에서, 상기 인증 서버는 상기 OTP 클라이언트와 양방향 통신이 가능하면, 상기 OTP 클라이언트에 대하여 유일하게 하나의 세션만을 허용하고, 허용된 세션에서만 OTP 디바이스를 등록하는 것을 특징으로 하는 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법.
  2. 제1항에 있어서, 상기 방법은,
    (h) 현재 위치가 등록 영역 내에 위치하지 않으면, 상기 OTP 클라이언트는 등록 실패 메시지를 상기 인증 서버로 전송하고, 상기 인증 서버는 상기 OTP 디바이스 목록에서 해당 OTP 디바이스 정보를 제거하는 단계를 더 포함하는 것을 특징으로 하는 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법.
  3. 제1항에 있어서,
    상기 (a)단계에서, 상기 인증 서버는 상기 OTP 클라이언트로부터 등록 영역 정보를 수신하여 저장하되, 상기 (b) 단계 내지 상기 (g)단계를 수행하기 전에 수행하는 것을 특징으로 하는 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 (g)단계에서, 상기 인증 서버는 상기 OTP 클라이언트에 일회용 비밀번호를 요청하여 수신하고, 생성된 시크릿키를 이용하여 상기 OTP 디바이스의 일회용 비밀번호를 생성하고, 생성된 비밀번호와 수신한 비밀번호를 대비하여, 상기 시크릿키를 검증하는 것을 특징으로 하는 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 OTP 등록 방법.
KR1020190122998A 2019-10-04 2019-10-04 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 otp 등록 방법 KR102291919B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190122998A KR102291919B1 (ko) 2019-10-04 2019-10-04 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 otp 등록 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190122998A KR102291919B1 (ko) 2019-10-04 2019-10-04 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 otp 등록 방법

Publications (2)

Publication Number Publication Date
KR20210040587A KR20210040587A (ko) 2021-04-14
KR102291919B1 true KR102291919B1 (ko) 2021-08-23

Family

ID=75477617

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190122998A KR102291919B1 (ko) 2019-10-04 2019-10-04 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 otp 등록 방법

Country Status (1)

Country Link
KR (1) KR102291919B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6368062B1 (ja) 2018-03-29 2018-08-01 株式会社ラヴァーグ 認証装置,認証装置の制御方法およびそのプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090013618A (ko) * 2007-08-02 2009-02-05 주식회사 제이디씨텍 일회용비밀번호를 이용한 도어록 개폐시스템
KR101615686B1 (ko) 2009-07-10 2016-04-26 주식회사 비즈모델라인 위치 기반 모바일 오티피 제공 방법
KR101580291B1 (ko) 2014-06-20 2015-12-24 한국모바일인증 주식회사 모바일 otp 서비스 제공 방법과 인증 시스템 및 이를 위한 장치
KR20160081255A (ko) 2014-12-31 2016-07-08 한국전자통신연구원 Otp 제공을 위한 모바일 단말 및 그 동작 방법
KR101710721B1 (ko) * 2015-12-28 2017-03-02 주식회사 비즈모델라인 위치를 이용한 모바일 오티피 운영 방법
KR20190099175A (ko) * 2019-08-14 2019-08-26 주식회사 비즈모델라인 오티피 이용한 결제 처리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6368062B1 (ja) 2018-03-29 2018-08-01 株式会社ラヴァーグ 認証装置,認証装置の制御方法およびそのプログラム

Also Published As

Publication number Publication date
KR20210040587A (ko) 2021-04-14

Similar Documents

Publication Publication Date Title
AU2021202620B2 (en) Method of using one device to unlock another device
US20220191016A1 (en) Methods, apparatuses, and computer program products for frictionless electronic signature management
US10637650B2 (en) Active authentication session transfer
KR102202547B1 (ko) 액세스 요청을 검증하기 위한 방법 및 시스템
KR102274285B1 (ko) 동적 공유 시크릿 분배 방식의 otp 보안관리 방법
US20140289528A1 (en) System and method for privacy-enhanced data synchronization
US11544365B2 (en) Authentication system using a visual representation of an authentication challenge
US20180310174A1 (en) Anonymous authentication system
KR102137122B1 (ko) 보안 체크 방법, 장치, 단말기 및 서버
KR20210095093A (ko) 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버
KR101714742B1 (ko) 원격제어를 위한 인증 방법 및 서버
JP6378424B1 (ja) 無欠性及び保安性が強化された使用者認証方法
KR102242720B1 (ko) 클라이언트별 능동적 시각 오프셋 윈도우를 통한 고유 시각 방식의 otp 설정 방법
KR102372503B1 (ko) 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버
KR102291919B1 (ko) 복제와 다중 등록의 방지를 위한 위치 인증 및 세션 정보 기반 otp 등록 방법
KR102291942B1 (ko) 다차원 바코드 기반 임시 백업 otp 저장 방법
Shin E-payment Authentication System Using QR_code and Mobile OTP

Legal Events

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