KR101967874B1 - 주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법 - Google Patents

주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법 Download PDF

Info

Publication number
KR101967874B1
KR101967874B1 KR1020170023232A KR20170023232A KR101967874B1 KR 101967874 B1 KR101967874 B1 KR 101967874B1 KR 1020170023232 A KR1020170023232 A KR 1020170023232A KR 20170023232 A KR20170023232 A KR 20170023232A KR 101967874 B1 KR101967874 B1 KR 101967874B1
Authority
KR
South Korea
Prior art keywords
dynamic code
authentication
time
information
code
Prior art date
Application number
KR1020170023232A
Other languages
English (en)
Other versions
KR20180096887A (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 KR1020170023232A priority Critical patent/KR101967874B1/ko
Publication of KR20180096887A publication Critical patent/KR20180096887A/ko
Application granted granted Critical
Publication of KR101967874B1 publication Critical patent/KR101967874B1/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)

Abstract

본 발명에 의한 동적 코드 인증 방법의 제1 형태는, 동적 코드가 현출되는 사용자 단말기와, 사용자 단말기에 현출된 동적 코드를 판독하는 판독 장치와, 인증 서버를 포함하는 환경에서 수행되며, 사용자 단말기가 시간 정보 및 핵심 정보를 포함하는 동적 코드를 현출하는 제1 단계와; 사용자 단말기가 미리 지정되어 있는 변경 주기만큼의 시간이 경과했는지를 판단하는 제2 단계와; 변경 주기가 경과한 경우에는 새로운 시간 정보를 포함하도록 사용자 단말기가 동적 코드를 변경하고 변경된 동적 코드를 현출하는 제3 단계와; 판독 장치가 현출된 동적 코드를 판독하는 제4 단계와; 판독 장치가 판독된 동적 코드 정보를 인증 서버로 전송하는 제5 단계와; 인증 서버가, 판독 시간과 동적 코드에 포함되어 있는 시간과의 차이가 허용 오차보다 작거나 같은 경우 또는 작은 경우에 동적 코드의 시간 인증을 성공으로 처리하는 제6 단계를 포함한다.

Description

주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법{Method for Generating Dynamic Code Which Varies Periodically and Method for Authenticating the Dynamic Code}
본 발명은 주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드를 인증하는 방법에 관한 것이다.
소정의 정보를 포함하도록 생성할 수 있는 바코드 또는 2차원 코드가 각종 인증에 널리 사용되고 있다. 본 명세서에서는 소정의 정보가 포함되고 시각적으로 인식할 수 있는 바코드 또는 2차원 코드, 그리고 그 이외의 형태를 모두 포함하는 포괄적인 의미로서 "코드"라는 표현을 사용한다.
최근에는 PC 또는 스마트폰이나 태블릿 PC에서 예를 들어, 일회용 비밀번호 즉 OTP 번호를 포함하는 코드를 생성하고, 생성된 코드를 스캐너와 같은 판독 장치로 판독해서 코드에 포함되어 있는 OTP 번호를 판독하고 인증하는 방식이 널리 보급되고 있다.
그런데 이처럼 디스플레이 장치에 현출된 코드를 사용하면, 화면 캡쳐나 카메라 촬영을 통해서 그 코드 이미지를 악의의 제3자가 획득하면 부정한 목적으로 사용될 수 있다. OTP 번호는 일정한 시간 동안만 유효한 숫자이기 때문에 제3자가 획득한 코드 이미지를 그 시간 안에 사용한다면 부정한 사용을 막을 도리가 없다. OTP 뿐만 아니라 소정의 정보가 화체된 QR 코드를 부정하게 획득하여 사용하는 경우도 있으며, 그러한 부정 사용은, 출입 통제 시스템, 근태 관리 시스템, 출결관리 시스템, 온라인 결제 시스템 등에서 쉽게 이루어질 수 있다.
본 발명은 이러한 종래 기술의 문제점을 해결함으로써, 악의의 제3자가 동적 코드를 획득하더라도 부정하게 사용할 수 없도록 하는 동적 코드 인증 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 동적 코드 인증 방법의 제1 형태는, 동적 코드가 현출되는 사용자 단말기와, 사용자 단말기에 현출된 동적 코드를 판독하는 판독 장치와, 인증 서버를 포함하는 환경에서 수행되며, 사용자 단말기가 시간 정보 및 핵심 정보를 포함하는 동적 코드를 현출하는 제1 단계와; 사용자 단말기가 미리 지정되어 있는 변경 주기만큼의 시간이 경과했는지를 판단하는 제2 단계와; 변경 주기가 경과한 경우에는 새로운 시간 정보를 포함하도록 사용자 단말기가 동적 코드를 변경하고 변경된 동적 코드를 현출하는 제3 단계와; 판독 장치가 현출된 동적 코드를 판독하는 제4 단계와; 판독 장치가 판독된 동적 코드 정보를 인증 서버로 전송하는 제5 단계와; 인증 서버가, 판독 시간과 동적 코드에 포함되어 있는 시간과의 차이가 허용 오차보다 작거나 같은 경우 또는 작은 경우에 동적 코드의 시간 인증을 성공으로 처리하는 제6 단계를 포함한다.
본 발명의 다른 형태에서는 판독 장치가 동적코드의 시간 인증하는데, 이 형태에 의한 동적 코드 인증 방법은, 사용자 단말기가 시간 정보와 핵심 정보를 포함하는 동적 코드를 현출하는 제1 단계와; 사용자 단말기가 미리 지정되어 있는 변경 주기만큼의 시간이 경과했는지를 판단하는 제2 단계와; 변경 주기가 경과한 경우에는 새로운 시간 정보를 포함하도록 사용자 단말기가 동적 코드를 변경하고 변경된 동적 코드를 현출하는 제3 단계와; 판독 장치가 제1 단계에서 현출된 동적 코드를 판독하는 제4 단계와; 판독 장치가, 판독된 동적 코드의 시간 정보를 확인하고, 판독 시간과 동적 코드에 포함되어 있는 시간과의 차이가 허용 오차보다 작거나 같은 경우 또는 작은 경우에 동적 코드의 시간 인증을 성공으로 처리하는 제5 단계를 포함한다.
상기 핵심 정보는 OTP 번호를 포함할 수 있으며, 인증 서버가, 동적 코드에 포함된 OTP 번호의 인증을 수행하는 제7 단계를 더 포함할 수 있다.
상기 다른 형태에 의한 동적 코드 인증 방법의 환경은 인증 서버를 더 포함할 수 있다. 그리고 이 실시예에서 상기 핵심 정보는 OTP 번호를 포함하며, 제5 단계에서 시간 인증이 성공하면, 판독 장치가 동적 코드 또는 핵심 정보를 인증 서버로 전송하여 인증 서버가 OTP 인증을 수행하는 제6 단계를 더 포함할 수 있다.
상기 허용 오차는 상기 변경 주기가 될 수 있다.
상기 변경 주기는 핵심 정보의 유효 시간보다 짧게 설정될 수 있다.
제1 단계에서 현출되는 동적 코드는 평문 정보로서의 시간 정보와, 시간 정보 및 핵심 정보를 암호화한 암호화 정보를 포함할 수 있다.
상기 인증 서버 또는 상기 판독 장치는, 동적 코드에 포함된 암호화 정보를 복호화하고 암호화 정보에 포함된 시간 정보와, 평문 정보로 포함된 시간 정보가 일치하는지 여부를 판단하는 단계를 더 수행할 수 있다.
본 발명에 의한 동적 코드 인증 방법은, 사용자 단말기가 동적 코드를 현출하기에 앞서 사전 인증을 수행하는 제1-1 단계를 더 포함할 수 있고, 제1 단계는 제1-1 단계에서 사전 인증이 성공하는 경우에만 수행될 수 있다.
사전 인증은, 생체 인증, ARS 인증, 문자 메시지 인증, 비밀번호 인증 중 적어도 어느 하나가 될 수 있다.
상기 환경은 인증 코드 생성 서버를 더 포함할 수 있으며, 이 실시예에서는 상기 핵심 정보는, 상기 인증 코드 생성 서버로부터 전달받은 인증 코드를 포함할 수 있다. 이 경우, 상기 인증 코드는, 사용자의 사전 인증에 성공하는 경우에 생성될 수 있다.
상기 핵심 정보는 사용자 단말기의 위치 정보를 포함할 수 있으며, 이 실시예에서는, 동적 코드에 포함된 사용자 단말기의 위치 정보와, 판독 장치의 위치 정보를 비교하여 미리 설정되어 있는 범위에 속하는 경우에만 위치 인증을 하는 제6-1 단계를 더 포함할 수 있다.
본 발명에 의한, 사용자 단말기가 동적 코드를 생성하는 방법은, 시간 정보와 핵심 정보를 포함하는 동적 코드를 생성하는 제1 단계와; 미리 지정되어 있는 변경 주기 만큼 시간이 경과하면 새로운 시간 정보와 제1 단계의 핵심 정보를 포함하는 동적 코드로 변경하는 제2 단계를 포함한다.
제1 단계에서 생성되는 동적 코드는 평문 정보로서의 시간 정보와, 시간 정보 및 핵심 정보를 암호화한 암호화 정보를 포함할 수 있다.
그리고 동적 코드 생성시에 미리 지정되어 있는 변경 주기는 핵심 정보의 유효 시간보다 짧게 할 수 있다.
본 발명에 의하면, 동적 코드에 포함되어 있는 시간 정보가 소정의 변경 주기마다 변경되도록 동적 코드가 변경되기 때문에, 악의의 제3자가 동적 코드를 가로채서 사용하더라도 시간 인증을 통해서 인증을 금지시킬 수 있다. 따라서, 코드의 부정한 사용을 방지할 수 있는 효과가 제공된다.
도 1은 본 발명에 의한 동적 코드 인증 방법이 수행되는 환경의 일례를 도시한 도면.
도 2는 본 발명에 의한 동적 코드 인증 과정의 흐름도.
도 3은 동적 코드에 포함된 핵심 정보가 OTP인 경우의 동적 코드 인증 방법이 수행되는 환경의 일례를 도시한 도면.
도 4는 도 3의 환경에서 수행되는 동적 코드 인증 과정의 흐름도.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 자세하게 설명한다.
본 명세서에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것 뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서 "모듈"이라 함은 범용적인 하드웨어와 그 기능을 수행하는 소프트웨어의 논리적 결합을 의미한다.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
도 1에는 본 발명에 의한 동적 코드 인증 방법이 수행되는 환경의 일례가 도시되어 있다. 이 환경은, 사용자 단말기(10)와, 판독 장치(20)와, 인증 서버(30)를 포함한다. 사용자 단말기(10)는 동적 코드를 생성해서 현출하는 장치라면 어느 것이든 포괄적으로 포함하는 것으로 정의된다. 예를 들어, PC, 스마트폰, 태블릿PC 등 전자적 연산이 가능한 중앙처리장치를 포함하고 동적 코드를 현출할 수 있는 디스플레이 장치가 전자적으로 연결될 수 있는 장치가 될 수 있다.
사용자 단말기(10)는, 동적 코드 생성 모듈(12)과, 동적 코드 생성을 위한 인증 모듈(14)과, 동적 코드 현출 모듈(16)을 포함한다. 동적 코드 현출 모듈(16)은 사용자 단말기(10)에 반드시 일체로 탑재될 필요는 없고 별도의 디스플레이 장치로 구성해도 무방하다. 동적 코드를 생성하기에 앞서서 동적 코드 생성을 위한 인증 모듈(14)에 의해 생체 인증과 같은 인증을 수행할 수 있다. 사전 인증은 생체 인증 뿐만 아니라, ARS 인증, 문자 메시지 인증, 비밀번호 인증 등 현존하는 다양한 인증을 모두 포함하는 개념으로 이해되어야 한다. 사용자 단말기(10)에 인증 모듈이 탑재될 필요가 없는 방식의 인증만 적용되는 경우라면 인증 모듈(14)이 사용자 단말기(10)에 탑재되지 않아도 무방하다.
동적 코드 현출 모듈(16)은 모니터 또는 스마트폰 화면과 같은 디스플레이 장치가 될 수 있다. 동적 코드(40)는 바코드 또는 QR 코드와 같은 2차원 코드가 될 수 있으며, 시간 정보(42)와 핵심 정보(44)를 포함할 수 있는 코드라면 그 종류를 불문하고 적용될 수 있다. 후술하는 바와 같이 미리 지정되어 있는 변경 주기가 지나면 새로운 시간 정보(42)로 업데이트되도록 동적 코드(40)가 변경된다. 본 명세서에서 "핵심 정보"라 함은 동적 코드에 화체되어 사용되는 주요 정보를 포함하는 정보로 정의되며, 동적 코드(40)에 포함되는 정보 중에서 적어도 시간 정보(42)는 제외한 정보를 의미한다. 핵심 정보에는 예를 들어 OTP, 위치 정보 등이 포함될 수 있다. 위치 정보는 사용자 단말기(10)의 위치 정보가 될 수 있다.
판독 장치(20)는 동적 코드를 판독하는 장치로서 판독하려는 동적 코드의 종류에 따라서 달리 결정될 수 있다. 판독 장치(20)는 동적 코드를 판독하는 판독 모듈(22)과, 통신 모듈(24)을 포함한다. 통신 모듈(24)은 판독 장치에 일체로 탑재될 필요는 없고, 판독 모듈(22)에 의해 판독된 별도의 장치로 구성해도 무방하다.
인증 서버(30)는 판독 장치(20)가 판독한 동적 코드 정보를 전달받아서 인증한다. 동적 코드에는 시간 정보(42)와, 핵심 정보(44)가 포함되어 있는데 인증 서버(30)가 이 둘을 모두 인증할 수도 있고, 핵심 정보만 인증할 수도 있다.
본 발명의 다른 실시예에 의하면, 인증 코드 생성 서버(도시되지 않음)를 더 포함할 수 있는데, 이 실시예에서는 후술하는 핵심 정보(44)에 인증 코드 생성 서버가 생성한 인증 코드가 포함된다.
도 2에는 본 발명에 의한 동적 코드 인증 방법의 순서도가 도시되어 있다.
먼저 동적 코드(40) 생성을 위한 사전 인증을 수행한다(200). 앞서 기술한 바와 같이 사전 인증은 생체 인증이나, 문자 메시지를 이용한 인증, ARS 인증, 비밀번호 입력에 의한 인증 등이 포함된다. 이 인증은 종래 기술에 의해서 적용가능하므로 자세한 설명은 생략한다. 또한, 이 인증이 본 발명의 필수적인 구성요소는 아니라는 점이 이해되어야 한다.
인증에 성공하면 사용자 단말기의 동적 코드 생성 모듈(12) 동적 코드를 생성하고(205), 동적 코드 현출 모듈(16)이 이를 현출한다(210). 동적 코드(40)에는 시간 정보(42)와 핵심 정보(44)가 포함된다.
시간 정보(42)는 평문 형태(41)로 포함되고, 핵심 정보(44)는 시간 정보(42)와 함께 암호문 형태(43)로 동적 코드(40)에 포함될 수 있다. 핵심 정보(44)가 시간 정보(42)와 함께 암호문 형태(43)로 포함되지 않는 실시예에서는 후술하는 1차 인증 과정(단계(230) 내지 단계(245))는 생략될 수 있다.
단계(215)에서는 변경 주기가 경과되는지 여부를 판단하고, 변경 주기가 도래하면 동적 코드 생성 모듈(12)이 동적 코드(40)를 새로운 시간 정보(42)가 포함되도록 변경하고(220), 판독 장치(20)에 의해서 동적 코드가 판독된다(225). 변경 주기가 도래하지 않았다면 원래의 시간 정보(42)가 포함되어 있는 동적 코드(40)가 판독 장치(20)에 의해서 판독된다(225).
단계(230)에서는 동적 코드(40)의 암호화된 정보를 복호화한다. 복호화하면 암호문 형태로 포함되어 있는 시간 정보(42)와 핵심 정보(44)가 추출된다. 단계(235)에서는 동적 코드(40)에 평문 형태로 포함되어 있는 시간 정보(42)와, 복호화되어 추출된 시간 정보(42)가 동일한지 여부를 비교한다. 양 시간 정보가 서로 동일하면 1차 인증에 성공한 것으로 처리하고(245), 양 시간 정보가 다른 경우라면 동적 코드가 조작된 것으로 판단하고 1차 인증에 실패한 것으로 처리한다(240).
1차 인증에 성공하면 단계(250)로 이행하여 동적 코드의 판독 시간과 동적 코드에 포함된 시간의 차이가 허용오차보다 작거나 같은지 여부를 판단한다. 도 2의 단계(250)에서는 두 시간의 차이가 허용오차 이하인 경우로 도시되어 있지만, 두 시간의 차이가 허용오차 미만인지를 판단할 수도 있다. 허용 오차는 변경 주기일 수 있다.
단계(250)에서의 판단 결과가 "예"이면 동적 코드의 시간 인증에 성공한 것으로 처리하고(255), 그렇지 않으면 시간 인증에 실패한 것으로 처리한다(260).
1차 인증과 시간 인증에 성공하면 해당 동적 코드는 올바른 것으로 인증한다(265). 시간 정보(42)와 핵심 정보(44)가 암호문의 형태로 동적 코드에 포함되어 있지 아니하면, 시간 인증만 수행할 수 있다.
암호화 및 복호화에 필요한 키는, 사용자 단말기(10)와 판독 장치(20)가 미리 공유하고 있는 대칭키를 사용할 수 있다.
전술한 동적 코드의 1차 인증과 시간 인증은 판독 장치(20)에서 수행될 수도 있고, 인증 서버(30)에 의해서 수행될 수도 있다. 1차 인증 및/또는 시간 인증이 인증 서버(30)에서 수행되는 실시예에서는, 판독 모듈(20)이 복호화하여 추출된 정보를 인증 서버(30)에 전송할 수도 있고, 복호화하지 않은 동적 코드 판독 정보를 인증 서버(30)에 전송하고 인증 서버(30)가 복호화를 한 후에 1차 인증, 그리고 시간 인증을 수행할 수도 있다.
본 발명에 의한 인증을 수행하기 위해서 사용자 단말기(10)와 판독 장치(20)의 시간이 동기화될 수 있다.
도 2에 도시된 방법에 위치 정보를 이용한 인증이 추가될 수 있다. 핵심 정보(44)에 사용자 단말기(10)의 위치 정보가 포함되는 경우에는, 동적 코드에 포함되어 있는 사용자 단말기(10)의 위치 정보와, 판독 장치(20)의 위치 정보를 비교하여 미리 설정되어 있는 범위가 아니라면, 사용자 단말기(10)에 의해 생성된 동적 코드를 적법하게 판독하는 경우가 아닌 것으로 판단하여 인증 실패로 처리할 수 있다.
도 3 및 도 4에는 핵심 정보(44)가 OTP를 포함하는 정보인 실시예가 도시되어 있다. 도 1 및 도 2를 참조하여 설명한 본 발명의 기술적 사상은 별도의 설명이 없더라도 도 3 및 도 4의 실시예도 공유한다.
도 3은 도 1에 도시된 환경과 비교할 때, OTP 생성 모듈(11)이 더 포함되어 있는 점에서 도 1의 환경과 상이하다. OTP는 사용자 단말기(10)가 생성하지 않고, 별도의 OTP 생성 단말기(도시되지 않음)가 생성한 것을 사용자가 사용자 단말기(10)에 입력하게 할 수도 있다.
동적 코드 생성을 위한 인증 단계(400)는 도 2의 단계(200)의 사전 인증 단계와 대동소이하다.
OTP가 생성되거나 사용자 단말기(10)에 입력되면, 동적 코드 생성 모듈(12)이 생성된 OTP 정보(44')와 시간 정보(42)를 포함하는 동적 코드(40)를 생성한다(410).
시간 정보(42)는 평문 형태(41)로 포함되고, OTP(44')는 시간 정보(42)와 함께 암호문 형태(43)로 동적 코드(40)에 포함될 수 있다. OTP(44')가 시간 정보(42)와 함께 암호문 형태(43)로 포함되지 않는 실시예에서는 후술하는 1차 인증 과정(단계(430) 내지 단계(445))은 생략될 수 있다.
판독 장치(20)가 동적 코드(40)를 판독하기까지에는 약간의 시간이 경과할 수 있다. 미리 지정되어 있는 변경 주기가 도래한지를 판단하고(415), 변경 주기가 도래하면 동적 코드 생성 모듈(12)이 동적 코드(40)를 새로운 시간 정보(42)가 포함되도록 변경하고(420), 판독 장치(20)에 의해서 동적 코드가 판독된다(425). 변경 주기가 도래하지 않았다면 원래의 시간 정보(42)가 포함되어 있는 동적 코드(40)가 판독 장치(20)에 의해서 판독된다(425).
OTP는 통상적으로 일정한 시간 동안만 유효한 일회용 비밀번호이며, 그 시간이 지나고 나면 더이상 유효하지 않기 때문에 새롭게 생성해야 한다.
동적 코드의 변경 주기는 OTP 번호가 유효한 시간보다 짧게 설정할 수 있다. 예를 들어 OTP 번호가 1분간 유효하다면 동적 코드의 변경 주기를 1초로 설정할 수 있는데, 변경 주기가 짧을수록 후술하는 바와 같이 악의의 제3자에 의한 도용을 방지하기 용이해진다.
판독 장치(20)는 판독된 동적 코드(40) 정보를 직접 인증하거나 또는 인증 서버(30)로 전송하여 인증을 수행한다.
단계(430)에서는 동적 코드(40)의 암호화된 정보를 복호화한다. 복호화하면 암호문 형태로 포함되어 있는 시간 정보(42)와 OTP(44')가 추출된다. 단계(435)에서는 동적 코드(40)에 평문 형태로 포함되어 있는 시간 정보(42)와, 복호화되어 추출된 시간 정보(42)가 동일한지 여부를 비교한다. 양 시간 정보가 서로 동일하면 1차 인증에 성공한 것으로 처리하고(445), 양 시간 정보가 다른 경우라면 동적 코드가 조작된 것으로 판단하고 1차 인증에 실패한 것으로 처리한다(440).
1차 인증에 성공하면 단계(450)로 이행하여 시간 인증을 수행한다.
이하에서는 인증 서버(30)가 시간 인증을 수행하는 것에 대해서 설명하지만, 인증 과정의 수행 주체는 판독 장치(20)로 대체될 수 있다.
인증 서버(30)는 판독한 시간과 동적 코드(40)에 포함되어 있는 시간(42)의 차이가 허용 오차보다 작거나 같거나 또는 작은지 여부를 판단한다. 이하의 실시예에서는 허용 오차가 변경 주기(tp)인 실시예에 대해서 설명한다. 그러나 허용 오차가 변경 주기가 아닌 값이어도 무방하다.
만약 판독 시간과 동적 코드(40)에 포함되어 있는 시간의 차이가 변경 주기(tp) 이내라면 동적 코드의 시간 인증을 성공한 것으로 처리하고(235), 그렇지 아니하면 시간 인증에 실패한 것으로 처리하여(240), 인증 과정을 종료시킨다. 판독 시간과 동적 코드(40)에 포함되어 있는 시간(42)의 차이가 변경 주기(tp)보다 작은 경우에 시간 인증에 성공한 것으로 처리하고, 그렇지 않은 경우에 실패한 것으로 처리할 수 있다. 시간의 차이가 변경 주기(tp)보다 같거나 작은 경우를 시간 인증 성공으로 처리하면, 시간의 차이가 변경 주기(tp)보다 큰 경우를 시간 인증 실패로 처리하고, 시간의 차이가 변경 주기(tp)보다 작은 경우를 시간 인증 성공을 처리하면, 시간의 차이가 변경 주기(tp)보다 같거나 큰 경우를 시간 인증 실패로 처리한다.
예를 들어, 변경 주기(tp)가 1초라고 하면, 동적 코드(40)는 1초 단위로 계속 변경되어, 동적 코드(40)에 포함되어 있는 시간 정보 역시 변경된다. 만약 제1 시간(t1)에서 최초로 동적 코드(40)가 생성된다고 하면, 동적 코드(40)는 1초 단위로 바뀌게 된다. 악의의 제3자가 생성된 동적 코드(40)를 제2 시간(t2)에 화면 캡쳐나 카메라 촬영을 통해서 가로채는 경우를 상정한다. 그러면 가로챈 동적 코드에 포함되어 있는 시간 정보는 제2 시간(t2)의 직전의 시간(t2p = t1 + ntp: n은 0 또는 양의 정수)로 고정된다.
악의의 제3자가 가로챈 동적 코드(40)를 제3 시간(t3)에 판독할 때, 제3 시간(t3)과 동적 코드에 포함된 제2 시간(t2p)의 차이는 변경 주기(tp) 보다 크거나 같을 가능성이 높다. 정상적인 사용자가 생성하여 판독하는 동적 코드는 변경 주기(tp)에 따라서 계속 동적 코드(40)에 포함된 시간 정보(42)가 변하기 때문에 어느 때에 판독을 하더라도 판독 시간과 동적 코드의 시간 정보의 차이는 변경 주기(tp)보다 작거나 같다. 그러나 악의의 제3자가 가로챈 동적 코드의 시간 정보는 고정되어 있기 때문에 판독 시간과 동적 코드에 포함된 시간의 차이가 변경 주기(tp)보다 크거나 같게 된다.
이러한 이유로 변경 주기(tp)는 가급적 작은 값으로 지정되는 편이 바람직하다. 변경 주기(tp)가 길면, 악의의 제3자가 가로챈 동적 코드에 포함된 시간(t2p)와 판독 시간의 차이가 변경 주기(tp)보다 작을 가능성이 높아지기 때문이다.
시간 인증에 성공하면 인증 서버는 OTP 인증을 수행한다(445). OTP 인증은 종래 기술을 사용하면 되므로 본 명세서에서는 자세한 설명을 생략하기로 한다.
시간 인증을 인증 서버(30)가 아니라 사용자 단말기(10) 또는 판독 장치(20)가 연결되어 있는 인증 단말기(도시되지 않음)에서 처리하도록 구성할 수도 있다. 이 경우 전술한 방식으로 시간 인증을 수행하되, 시간 인증이 성공하는 경우에만 판독된 OTP 정보를 인증 서버(30)로 전송하여 OTP 인증을 수행하게 할 수도 있다.
핵심 정보(44')에 사용자 단말기(10)의 위치 정보를 더 포함시켜서 전술한 바와 같인 위치 정보 인증을 추가로 수행할 수도 있다.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
10: 사용자 단말기
20: 판독 장치
30: 인증 서버

Claims (16)

  1. 동적 코드가 현출되는 사용자 단말기와, 사용자 단말기에 현출된 동적 코드를 판독하는 판독 장치와, 인증 서버를 포함하는 환경에서 수행되는 동적 코드 인증 방법에 있어서,
    사용자 단말기가, 평문 정보로서의 시간 정보와, 상기 시간 정보 및 OTP를 암호화한 암호화 정보를 포함하는 동적 코드를 현출하는 제1 단계와,
    사용자 단말기가 미리 지정되어 있는 변경 주기만큼의 시간이 경과했는지를 판단하는 제2 단계와,
    변경 주기가 경과한 경우에는 새로운 시간 정보를 포함하도록 사용자 단말기가 동적 코드를 변경하고 변경된 동적 코드를 현출하는 제3 단계와,
    판독 장치가 현출된 동적 코드를 판독하는 제4 단계와,
    판독 장치가, 동적 코드의 암호화 정보를 복호화하여 획득한 시간 정보와, 평문 정보로 포함된 시간 정보를 비교하여 1차 인증을 수행하는 제4-1 단계와,
    판독 장치가, 1차 인증에 성공하는 경우 판독된 동적 코드 정보 및 판독 시간 정보를 인증 서버로 전송하는 제5 단계와,
    인증 서버가, 판독 시간과 동적 코드에 포함되어 있는 시간과의 차이가 변경 주기보다 작거나 같은 경우 또는 작은 경우에 동적 코드의 시간 인증을 성공으로 처리하는 제6 단계를 포함하며,
    상기 변경 주기는 OTP의 유효 시간보다 짧게 설정되는,
    동적 코드 인증 방법.
  2. 동적 코드가 현출되는 사용자 단말기와, 사용자 단말기에 현출된 동적 코드를 판독하는 판독 장치를 포함하는 환경에서 수행되는 동적 코드 인증 방법에 있어서,
    사용자 단말기가, 평문 정보로서의 시간 정보와, 상기 시간 정보 및 OTP를 암호화한 암호화 정보를 포함하는 동적 코드를 현출하는 제1 단계와,
    사용자 단말기가 미리 지정되어 있는 변경 주기만큼의 시간이 경과했는지를 판단하는 제2 단계와,
    변경 주기가 경과한 경우에는 새로운 시간 정보를 포함하도록 사용자 단말기가 동적 코드를 변경하고 변경된 동적 코드를 현출하는 제3 단계와,
    판독 장치가 제1 단계에서 현출된 동적 코드를 판독하는 제4 단계와,
    판독 장치가, 동적 코드의 암호화 정보를 복호화하여 획득한 시간 정보와, 평문 정보로 포함된 시간 정보를 비교하여 1차 인증을 수행하는 제4-1 단계와,
    판독 장치가, 1차 인증에 성공하는 경우, 판독 시간과 동적 코드에 포함되어 있는 시간과의 차이가 변경 주기보다 작거나 같은 경우 또는 작은 경우에 동적 코드의 시간 인증을 성공으로 처리하는 제5 단계를 포함하며,
    상기 변경 주기는 OTP의 유효 시간보다 짧게 설정되는,
    동적 코드 인증 방법.
  3. 청구항 1에 있어서,
    인증 서버가, 동적 코드에 포함된 OTP 번호의 인증을 수행하는 제7 단계를 더 포함하는,
    동적 코드 인증 방법.
  4. 청구항 2에 있어서,
    상기 환경은 인증 서버를 더 포함하며,
    제5 단계에서 시간 인증이 성공하면, 판독 장치가 OTP를 인증 서버로 전송하여 인증 서버가 OTP 인증을 수행하는 제6 단계를 더 포함하는,
    동적 코드 인증 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 청구항 1 또는 청구항 2에 있어서,
    사용자 단말기가 동적 코드를 현출하기에 앞서 사전 인증을 수행하는 제1-1 단계를 더 포함하며,
    제1 단계는 제1-1 단계에서 사전 인증이 성공하는 경우에만 수행되는,
    동적 코드 인증 방법.
  10. 청구항 9에 있어서,
    사전 인증은, 생체 인증, ARS 인증, 문자 메시지 인증, 비밀번호 인증 중 적어도 어느 하나인,
    동적 코드 인증 방법.
  11. 청구항 1 또는 청구항 2에 있어서,
    상기 환경은 인증 코드 생성 서버를 더 포함하며,
    상기 암호화 정보는, 상기 인증 코드 생성 서버로부터 전달받은 인증 코드와 OTP와 상기 시간 정보를 암호화한 정보인,
    동적 코드 인증 방법.
  12. 청구항 11에 있어서,
    상기 인증 코드는, 사용자의 사전 인증에 성공하는 경우에 생성되는,
    동적 코드 인증 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
KR1020170023232A 2017-02-22 2017-02-22 주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법 KR101967874B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170023232A KR101967874B1 (ko) 2017-02-22 2017-02-22 주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170023232A KR101967874B1 (ko) 2017-02-22 2017-02-22 주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법

Publications (2)

Publication Number Publication Date
KR20180096887A KR20180096887A (ko) 2018-08-30
KR101967874B1 true KR101967874B1 (ko) 2019-04-10

Family

ID=63453565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170023232A KR101967874B1 (ko) 2017-02-22 2017-02-22 주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법

Country Status (1)

Country Link
KR (1) KR101967874B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021040359A1 (ko) * 2019-08-30 2021-03-04 주식회사 센스톤 Qr 코드를 이용한 방문자 관리 방법 및 시스템
KR20210027074A (ko) * 2019-08-30 2021-03-10 주식회사 센스톤 Qr 코드를 이용한 방문자 관리 방법 및 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032864B (zh) * 2019-03-08 2023-10-17 平安科技(深圳)有限公司 动态码生成方法、装置、计算机设备和存储介质
CN110909519B (zh) * 2019-11-18 2023-06-06 湖南一路畅行互联科技有限公司 一种基于时间限定的票据动态码生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101296137B1 (ko) * 2012-11-30 2013-08-13 주식회사 한국심트라 큐알코드이용 모바일아이디데이터 보안 방법 및 시스템
KR101683349B1 (ko) * 2014-12-16 2016-12-20 주식회사 디케이아이테크놀로지 Qr코드를 이용한 인증서비스 제공시스템 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102252396B1 (ko) * 2014-10-13 2021-05-13 삼성에스디에스 주식회사 Otp 기반 인증 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101296137B1 (ko) * 2012-11-30 2013-08-13 주식회사 한국심트라 큐알코드이용 모바일아이디데이터 보안 방법 및 시스템
KR101683349B1 (ko) * 2014-12-16 2016-12-20 주식회사 디케이아이테크놀로지 Qr코드를 이용한 인증서비스 제공시스템 및 그 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021040359A1 (ko) * 2019-08-30 2021-03-04 주식회사 센스톤 Qr 코드를 이용한 방문자 관리 방법 및 시스템
KR20210027074A (ko) * 2019-08-30 2021-03-10 주식회사 센스톤 Qr 코드를 이용한 방문자 관리 방법 및 시스템
KR102451863B1 (ko) * 2019-08-30 2022-10-07 주식회사 센스톤 Qr 코드를 이용한 방문자 관리 방법 및 시스템

Also Published As

Publication number Publication date
KR20180096887A (ko) 2018-08-30

Similar Documents

Publication Publication Date Title
US20200404019A1 (en) Mutual authentication security system with detection and mitigation of active man-in-the-middle browser attacks, phishing, and malware and other security improvements
US20200252797A1 (en) System and method for dynamic multifactor authentication
Chang et al. Untraceable dynamic‐identity‐based remote user authentication scheme with verifiable password update
JP6017650B2 (ja) ある装置を使用して別の装置をアンロックする方法
CN101897165B (zh) 数据处理系统中验证用户的方法
JP5216932B1 (ja) ワンタイムパスワード装置、システム及びプログラム
JP5959410B2 (ja) 決済方法、これを実行する決済サーバ、これを実行するためのプログラム及びこれを実行するシステム
TWI486045B (zh) 使用機密視覺信息以用於螢幕上認證的方法及系統
KR101967874B1 (ko) 주기적으로 변경되는 동적 코드 생성 방법과 그러한 동적 코드의 인증 방법
CN109510802B (zh) 鉴权方法、装置及系统
US20200028679A1 (en) Public-private key pair protected password manager
JP2008269610A (ja) リモートアプリケーションを対象とした機密データの保護
KR102578428B1 (ko) 생체 인식 템플릿 보호 키 업데이트
CN114266033A (zh) 验证码生成方法、装置、验证码登录系统及电子设备
CN110999254A (zh) 安全地执行加密操作
KR102079431B1 (ko) 인증 스틱
WO2015192656A1 (zh) 一种安全模式提示方法及装置
JP2007060581A (ja) 情報管理システム及び方法
KR102053993B1 (ko) 인증서를 이용한 사용자 인증 방법
KR101255258B1 (ko) 2차원바코드를 이용한 금융거래정보 인증 시스템 및 방법
Divya et al. An impervious QR-based visual authentication protocols to prevent black-bag cryptanalysis
KR101617875B1 (ko) 전자문서 제공 서비스를 위한 인증방법, 전자문서 제공 서비스 방법 및 시스템
KR102095368B1 (ko) 디지털 인증서 이동 방법
JP7403430B2 (ja) 認証装置、認証方法及び認証プログラム
US11968202B2 (en) Secure authentication in adverse environments

Legal Events

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