KR102479730B1 - Smart card apparatus, apparatus for generating virtual code for authentication, method for generating virtual code for authentication using the same, server for verifying virtual code for authentication - Google Patents

Smart card apparatus, apparatus for generating virtual code for authentication, method for generating virtual code for authentication using the same, server for verifying virtual code for authentication Download PDF

Info

Publication number
KR102479730B1
KR102479730B1 KR1020220021278A KR20220021278A KR102479730B1 KR 102479730 B1 KR102479730 B1 KR 102479730B1 KR 1020220021278 A KR1020220021278 A KR 1020220021278A KR 20220021278 A KR20220021278 A KR 20220021278A KR 102479730 B1 KR102479730 B1 KR 102479730B1
Authority
KR
South Korea
Prior art keywords
authentication
virtual code
code
virtual
verification
Prior art date
Application number
KR1020220021278A
Other languages
Korean (ko)
Other versions
KR20220125161A (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 PCT/KR2022/002954 priority Critical patent/WO2022186605A1/en
Priority to JP2022572460A priority patent/JP7509923B2/en
Priority to EP22726576.6A priority patent/EP4083887B1/en
Priority to CN202280004617.3A priority patent/CN115668255A/en
Priority to US17/741,430 priority patent/US20220286449A1/en
Publication of KR20220125161A publication Critical patent/KR20220125161A/en
Priority to KR1020220176606A priority patent/KR20230008657A/en
Application granted granted Critical
Publication of KR102479730B1 publication Critical patent/KR102479730B1/en
Priority to JP2024099774A priority patent/JP2024120050A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/383Anonymous user system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/351Virtual cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10009Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
    • G06K7/10237Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves the reader and the record carrier being capable of selectively switching between reader and record carrier appearance, e.g. in near field communication [NFC] devices where the NFC device may function as an RFID reader or as an RFID tag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Storage Device Security (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Devices For Checking Fares Or Tickets At Control Points (AREA)
  • Lock And Its Accessories (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

스마트 카드 장치, 인증용가상코드 생성 장치, 이를 이용한 인증용가상코드 생성 방법 및 인증용가상코드 검증 서버가 제공된다. 상기 방법은, IC 칩이 내장된 카드 태깅 시, 상기 카드로 시간 데이터를 송신하는 단계, 상기 시간 데이터를 기반으로 생성된 1차 인증용가상코드를 상기 카드로부터 수신하는 단계, 상기 1차 인증용가상코드를 이용하여 2차 인증용가상코드를 생성하는 단계, 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나를 서버로 송신하는 단계 및 상기 서버가 상기 적어도 하나에 대한 검증을 수행하도록 요청하는 단계를 포함한다.Provided are a smart card device, a device for generating a virtual code for authentication, a method for generating a virtual code for authentication using the same, and a virtual code verification server for authentication. The method includes, when tagging a card having an IC chip, transmitting time data to the card, receiving a virtual code for primary authentication generated based on the time data from the card, and performing the primary authentication Generating a virtual code for secondary authentication using a virtual code, transmitting at least one of the virtual code for primary authentication and the virtual code for secondary authentication to a server, and verifying the at least one by the server It includes the step of requesting to perform.

Description

스마트 카드 장치, 인증용가상코드 생성 장치, 이를 이용한 인증용가상코드 생성 방법 및 인증용가상코드 검증 서버{SMART CARD APPARATUS, APPARATUS FOR GENERATING VIRTUAL CODE FOR AUTHENTICATION, METHOD FOR GENERATING VIRTUAL CODE FOR AUTHENTICATION USING THE SAME, SERVER FOR VERIFYING VIRTUAL CODE FOR AUTHENTICATION}Smart card device, virtual code generation device for authentication, method for generating virtual code for authentication using the same, and virtual code verification server for authentication SERVER FOR VERIFYING VIRTUAL CODE FOR AUTHENTICATION}

본 발명은 스마트 카드 장치, 인증용가상코드 생성 장치, 이를 이용한 인증용가상코드 생성 방법 및 인증용가상코드 검증 서버에 관한 것이다. The present invention relates to a smart card device, a device for generating a virtual code for authentication, a method for generating a virtual code for authentication using the same, and a virtual code verification server for authentication.

코드 형태데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터인증용가상코드 생성 장치다.Code form data is used in many areas. It is a device for generating virtual codes for data authentication in the form of codes, such as IPIN numbers and resident registration numbers for user identification, as well as card numbers and account numbers used for payment.

그러나 이러한 코드데이터를 이용하는 과정에서 유출되는 사고가 많이 발생한다. 카드번호의 경우, 카드표면에 실제카드번호가 그대로 기재되어 있어서 타인에게 시각적으로 유출되며, 마그네틱을 이용한 결제 시에 카드번호가 그대로 POS장치로 전달되면서 유출된다.However, in the process of using such code data, many leak accidents occur. In the case of the card number, the actual card number is written on the surface of the card as it is, so it is visually leaked to others, and when paying using a magnetic card, the card number is transmitted to the POS device as it is and leaked.

실제코드가 그대로 유출되지 않도록 하기 위해 가상코드를 이용하고자 하는 시도가 많았으나, 가상코드에 대응되는 실제코드를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다.Many attempts have been made to use virtual codes to prevent actual codes from being leaked as they are, but data for identifying users was needed to search for real codes corresponding to virtual codes.

그러나 OTP(One Time Password)의 경우, 별도의 OTP생성 장치를 필요로 하여 불편함을 수반하고, 특히 사용자 단말기의 경우 OTP생성에 이용되는 시드 데이터의 유출로 보안상의 취약점 존재한다.However, in the case of OTP (One Time Password), a separate OTP generating device is required, which is inconvenient. In particular, in the case of a user terminal, there is a security vulnerability due to the leakage of seed data used for OTP generation.

따라서 많은 사용자가 소지하고 있는 카드의 카드 데이터를 기반으로 사용자 인증에 필요한 가상 보안 코드를 생성하는 것과 같이 OTP코드를 생성하되, 별도의 OTP생성 장치를 필요로 하지 않고 동시에 시드 데이터가 유출되지 않도록 하여 보안을 높이는 방안이 필요하다. Therefore, based on card data of cards possessed by many users, generate OTP codes such as generating virtual security codes necessary for user authentication, but do not require a separate OTP generator and at the same time prevent seed data from being leaked. We need a way to increase security.

한국등록특허 제10-1316466호, 2013.10.01.Korean Patent Registration No. 10-1316466, 2013.10.01.

본 발명이 해결하고자 하는 과제는 스마트 카드 장치, 인증용가상코드 생성 장치, 이를 이용한 인증용가상코드 생성 방법 및 인증용가상코드 검증 서버를 제공하는 것이다.The problem to be solved by the present invention is to provide a smart card device, a virtual code generation device for authentication, a virtual code generation method for authentication using the same, and a virtual code verification server for authentication.

본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the description below.

상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 인증용가상코드 생성 장치에 의해 수행되는 인증용가상코드 생성 방법은, IC 칩이 내장된 카드 태깅 시, 상기 카드로 시간 데이터를 송신하는 단계, 상기 시간 데이터를 기반으로 생성된 1차 인증용가상코드를 상기 카드로부터 수신하는 단계, 상기 1차 인증용가상코드를 이용하여 2차 인증용가상코드를 생성하는 단계, 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나를 서버로 송신하는 단계 및 상기 서버가 상기 적어도 하나에 대한 검증을 수행하도록 요청하는 단계를 포함한다.A virtual code generation method for authentication performed by an apparatus for generating a virtual code for authentication according to an aspect of the present invention for solving the above problems includes the steps of transmitting time data to the card when tagging a card having an embedded IC chip therein. , Receiving a virtual code for primary authentication generated based on the time data from the card, generating a virtual code for secondary authentication using the virtual code for primary authentication, and transmitting at least one of a code and the virtual code for secondary authentication to a server and requesting the server to verify the at least one.

본 발명에서, 상기 1차 인증용가상코드는, 복수의 코드를 포함하고, 상기 복수의 코드 중 제1 코드는, 상기 시간 데이터 및 제1 OTP를 기반으로 생성되고, 상기 복수의 코드 중 제2 코드는, 상기 제1 코드에서 상기 카드의 식별 정보인 제1 UID (user identification)를 제외하여 생성될 수 있다.In the present invention, the virtual code for primary authentication includes a plurality of codes, a first code of the plurality of codes is generated based on the time data and the first OTP, and a second code of the plurality of codes The code may be generated by excluding a first user identification (UID), which is identification information of the card, from the first code.

본 발명에서, 상기 2차 인증용가상코드를 생성 단계는, 상기 제1 코드에서 상기 인증용가상코드 생성 장치의 식별 정보인 제2 UID를 제외하여 제3 코드를 생성하고, 상기 제1 코드, 상기 제2 코드 및 상기 제3 코드를 결합하여 상기 2차 인증용가상코드를 생성할 수 있다.In the present invention, the generating of the virtual code for secondary authentication may include generating a third code by excluding the second UID, which is identification information of the virtual code for authentication, from the first code, The second code and the third code may be combined to generate the virtual code for secondary authentication.

본 발명에서, 상기 카드는, 상기 제1 코드 및 상기 제2 코드를 기반으로 검증이 수행되고, 상기 인증용가상코드 생성 장치는, 상기 제1 코드 및 상기 제3 코드를 기반으로 검증이 수행될 수 있다.In the present invention, the card is verified based on the first code and the second code, and the device for generating a virtual code for authentication is verified based on the first code and the third code. can

본 발명에서, 상기 2차 인증용가상코드를 생성 단계는, 상기 1차 인증용가상코드를 기반으로 제2 OTP를 생성하고, 상기 제2 OTP 및 상기 인증용가상코드 생성 장치의 식별 정보인 제2 UID를 기반으로 상기 2차 인증용가상코드를 생성할 수 있다.In the present invention, the step of generating the virtual code for secondary authentication generates a second OTP based on the virtual code for primary authentication, and identifies the second OTP and the virtual code for authentication as identification information of the device. Based on the 2 UID, the virtual code for the second authentication may be generated.

본 발명에서, 상기 2차 인증용가상코드는, 상기 2차 인증용가상코드에 포함된 상기 제2 OTP 및 검증용 제2 OTP의 비교를 통해 검증되고, 상기 검증용 제2 OTP는, 상기 제2 OTP 생성 시에 이용된 시드 데이터와 동일한 시드 데이터를 기반으로 상기 서버에 의해 생성된 것일 수 있다.In the present invention, the virtual code for secondary authentication is verified by comparing the second OTP included in the virtual code for secondary authentication and the second OTP for verification, and the second OTP for verification is 2 It may be generated by the server based on the same seed data as the seed data used when generating the OTP.

본 발명에서, 상기 1차 인증용가상코드는, 오프라인 출입통제 및 온라인 로그인 시 사용자 인증용으로 이용될 수 있다.In the present invention, the virtual code for primary authentication may be used for user authentication during offline access control and online login.

본 발명에서, 상기 2차 인증용가상코드는, 금융 결제 시 사용자 인증용으로 이용될 수 있다.In the present invention, the virtual code for secondary authentication may be used for user authentication during financial settlement.

본 발명에서, 상기 시간 데이터는, APDU(Application Protocol Data Unit) 명령어와 결합된 형태일 수 있다.In the present invention, the time data may be combined with an Application Protocol Data Unit (APDU) command.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 스마트 카드 장치는, 카드 태깅을 통해 인증용가상코드 생성 장치로부터 시간 데이터를 수신하는 NFC 모듈 및 상기 수신된 시간 데이터를 기반으로 1차 인증용가상코드를 생성하는 IC 모듈을 포함하고, 상기 1차 인증용 가상코드는 자체적으로 송신되어 사용자 인증에 이용되거나, 2차 인증용 가상코드 생성에 이용되는 것이고, 상기 2차 인증용가상코드는, 상기 1차 인증용가상코드를 이용하여 상기 인증용가상코드 생성 장치에 의해 생성되는 것이고, 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나는, 서버에 의해 검증이 수행되도록 상기 인증용가상코드 생성 장치에 의해 상기 서버로 전송된다.A smart card device according to another aspect of the present invention for solving the above problems is an NFC module for receiving time data from a virtual code generation device for authentication through card tagging and for primary authentication based on the received time data. An IC module that generates a virtual code, wherein the virtual code for primary authentication is transmitted by itself and used for user authentication or used for generating a virtual code for secondary authentication, and the virtual code for secondary authentication is: It is generated by the virtual code generation device for authentication using the virtual code for primary authentication, and at least one of the virtual code for primary authentication and the virtual code for secondary authentication is verified by the server. It is transmitted to the server by the virtual code generation device for authentication.

상술한 과제를 해결하기 위한 본 발명의 또 다른 면에 따른 인증용가상코드 생성 장치는, IC 칩이 내장된 카드 태깅 시, 상기 카드로 시간 데이터를 송신하고, 상기 시간 데이터를 기반으로 생성된 1차 인증용가상코드를 상기 카드로부터 수신하는 통신부, 상기 1차 인증용가상코드를 이용하여 2차 인증용가상코드를 생성하는 코드생성부 및 상기 통신부를 통해 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나를 서버로 송신하여, 상기 서버가 상기 적어도 하나에 대한 검증을 수행하도록 요청하는 검증요청부를 포함한다.An apparatus for generating a virtual code for authentication according to another aspect of the present invention for solving the above problems is, when tagging a card with a built-in IC chip, transmits time data to the card, and generates 1 time data based on the time data. A communication unit for receiving a virtual code for secondary authentication from the card, a code generator for generating a virtual code for secondary authentication using the virtual code for primary authentication, and a virtual code for primary authentication and the second authentication unit through the communication unit. and a verification request unit for transmitting at least one of the virtual codes for car authentication to the server and requesting that the server perform verification for the at least one.

상술한 과제를 해결하기 위한 본 발명의 또 다른 면에 따른 서버에 의해 수행되는 인증용가상코드 검증 방법에 있어서, 인증용가상코드 생성 장치로부터 1차 인증용가상코드 및 2차 인증용가상코드 중 적어도 하나를 수신하는 단계 및 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나에 대한 검증을 수행하는 단계를 포함하고, 상기 2차 인증용가상코드가 복수의 코드를 포함하는 경우, 상기 검증 수행 단계는, 상기 복수의 코드 중 제1 코드 및 제2 코드를 기반으로 카드의 식별 정보인 제1 UID (user identification)를 추출하여 상기 카드에 대한 검증을 수행하고, 상기 복수의 코드 중 상기 제1 코드 및 제3 코드를 기반으로 상기 인증용가상코드 생성 장치의 식별 정보인 제2 UID를 추출하여 상기 인증용가상코드 생성 장치에 대한 검증을 수행한다.In the method for verifying a virtual code for authentication performed by a server according to another aspect of the present invention for solving the above problems, a virtual code for primary authentication and a virtual code for secondary authentication are selected from a virtual code generation device for authentication. Receiving at least one and verifying at least one of the virtual code for primary authentication and the virtual code for secondary authentication, wherein the virtual code for secondary authentication includes a plurality of codes. In this case, the verifying step extracts first user identification (UID), which is identification information of the card, based on the first code and the second code among the plurality of codes, performs verification on the card, and performs verification on the card. Based on the first code and the third code among the codes, a second UID, which is identification information of the virtual code generation device for authentication, is extracted to verify the virtual code generation device for authentication.

본 발명에서, 상기 2차 인증용가상코드가 제2 OTP 및 상기 제2 UID를 포함하는 경우, 상기 검증 수행 단계는, 상기 제2 OTP 생성 시에 이용된 시드 데이터와 동일한 시드 데이터를 기반으로 검증용 제2 OTP를 생성하고, 상기 2차 인증용가상코드에 포함된 상기 제2 OTP 및 상기 검증용 제2 OTP를 비교하고, 상기 제2 OTP 및 상기 검증용 제2 OTP가 동일하면 상기 카드 및 상기 인증용가상코드 생성 장치에 대한 검증을 완료할 수 있다.In the present invention, when the virtual code for secondary authentication includes the second OTP and the second UID, the verifying step is performed based on the same seed data as the seed data used when generating the second OTP. generate a second OTP for authentication, compare the second OTP included in the virtual code for secondary authentication and the second OTP for verification, and if the second OTP and the second OTP for verification are the same, the card and Verification of the device for generating the virtual code for authentication may be completed.

본 발명에서, 상기 1차 인증용가상코드가 수신된 경우, 상기 검증 수행 단계는, 제1 검증 알고리즘을 이용하여 상기 1차 인증용가상코드를 기반으로 카드의 식별 정보인 제1 UID (user identification)를 추출하여 상기 카드에 대한 검증을 수행할 수 있다.In the present invention, when the virtual code for primary authentication is received, the verification step is performed by using a first verification algorithm based on the virtual code for primary authentication. ) can be extracted to verify the card.

이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.In addition to this, another method for implementing the present invention, another system, and a computer readable recording medium recording a computer program for executing the method may be further provided.

본 발명에 따르면, 카드 태깅 시에 인증용가상코드 생성 장치가 스마트 카드 장치로 시간 데이터를 제공함으로써, 별도의 OTP 장치 없이도 NFC 방식을 기초로 획득한 시간 데이터를 이용하여 사용자 인증에 필요한 가상보안코드를 생성할 수 있다.According to the present invention, the virtual code generation device for authentication provides time data to the smart card device at the time of card tagging, so that the virtual security code required for user authentication is obtained using the time data obtained based on the NFC method without a separate OTP device. can create

인증용가상코드 생성 장치에 스마트 카드 장치를 태깅할 때, 두 개의 장치 간 데이터가 송수신될 때 해당 데이터의 탈취를 방어하기 위해, 스마트 카드 장치에서 생성된 1차 인증용가상코드를 재가공해 인증용가상코드 생성 장치에서 2차 인증용가상코드를 새롭게 생성할 수 있다.When tagging a smart card device with a virtual code generation device for authentication, when data is transmitted and received between the two devices, in order to prevent data theft, the virtual code for primary authentication generated by the smart card device is reprocessed for authentication. The virtual code generating device may newly generate a virtual code for secondary authentication.

또한, 오프라인 출입통제 또는 온라인 로그인 상황에서는 1차 인증용가상코드 검증을 통해 사용자 인증을 수행하고, 금융 결제 상황에서는 1차 인증용가상코드를 이용하여 생성된 2차 인증용가상코드의 검증을 통해 사용자 인증을 수행함으로써, 상황에 따라 보안 수준을 달리할 수 있다.In addition, in offline access control or online login situations, user authentication is performed through the verification of the virtual code for primary authentication, and in financial payment situations, the virtual code for secondary authentication generated using the virtual code for primary authentication is verified. By performing user authentication, the security level can be different depending on the situation.

또한, 스마트 카드 장치가 오프라인 출입통제 상황과 금융 결제 상황 모두에 적용될 수 있기 때문에, 금융카드(개인카드 또는 법인카드)를 회사의 출입카드로도 확장하여 활용할 수 있다.In addition, since the smart card device can be applied to both offline access control situations and financial payment situations, financial cards (personal cards or corporate cards) can be extended and used as company access cards.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명에 따른 인증용가상코드 기반 사용자 인증 시스템의 구성도이다.
도 2는 본 발명에 따른 스마트 카트 장치의 개략적인 구성도이다.
도 3은 본 발명에 따른 인증용가상코드 생성 장치의 개략적인 구성도이다.
도 4는 본 발명에 따른 인증용가상코드 생성 장치에 의해 수행되는 인증용가상코드 생성 방법의 순서도이다.
도 5는 본 발명에 따른 시간 데이터를 설명하기 위한 도면이다.
도 6은 본 발명에 따른 1차 인증용가상코드 검증을 설명하기 위한 도면이다.
도 7은 본 발명에 따른 2차 인증용가상코드 검증을 설명하기 위한 도면이다.
도 8은 본 발명에 따른 스마트 카드 장치에 의해 수행되는 인증용가상코드 생성 방법의 순서도이다.
1 is a configuration diagram of a user authentication system based on a virtual code for authentication according to the present invention.
2 is a schematic configuration diagram of a smart cart device according to the present invention.
3 is a schematic configuration diagram of an apparatus for generating a virtual code for authentication according to the present invention.
4 is a flowchart of a virtual code generation method for authentication performed by the virtual code generation device for authentication according to the present invention.
5 is a diagram for explaining time data according to the present invention.
6 is a diagram for explaining virtual code verification for primary authentication according to the present invention.
7 is a diagram for explaining virtual code verification for secondary authentication according to the present invention.
8 is a flowchart of a virtual code generation method for authentication performed by a smart card device according to the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, only these embodiments are intended to complete the disclosure of the present invention, and are common in the art to which the present invention belongs. It is provided to fully inform the person skilled in the art of the scope of the invention, and the invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.Terminology used herein is for describing the embodiments and is not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. As used herein, "comprises" and/or "comprising" does not exclude the presence or addition of one or more other elements other than the recited elements. Like reference numerals throughout the specification refer to like elements, and “and/or” includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various components, these components are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first element mentioned below may also be the second element within the technical spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings commonly understood by those skilled in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined.

설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그렇지만 용어의 설명은 본 명세서의 이해를 돕기 위한 것이므로, 명시적으로 본 발명을 한정하는 사항으로 기재하지 않은 경우에 본 발명의 기술적 사상을 한정하는 의미로 사용하는 것이 아님을 주의해야 한다.Prior to the description, the meaning of the terms used in this specification will be briefly described. However, it should be noted that the description of terms is intended to help the understanding of the present specification, and is not used in the sense of limiting the technical spirit of the present invention unless explicitly described as limiting the present invention.

본 명세서에서 '문자'는 코드를 구성하는 구성요소로서, 대문자알파벳, 소문자알파벳, 숫자 및 특수문자 등의 전부 또는 일부를 포함한다.In this specification, a 'character' is a component constituting a code, and includes all or part of uppercase alphabets, lowercase alphabets, numbers, and special characters.

본 명세서에서 '코드'는 문자가 나열된 문자열을 의미한다.In this specification, 'code' means a string in which characters are listed.

본 명세서에서 'OTP(One Time Password)'는 사용자 인증을 위해 임시적으로 생성되며 단위시간마다 변경되는 랜덤코드로서, 문자로 이루어진 특정한 자릿수의 코드를 포함할 수 있다. In this specification, 'OTP (One Time Password)' is a random code that is temporarily generated for user authentication and changed every unit time, and may include a code of a specific number of digits made of characters.

본 명세서에서 '인증용가상코드'는 인증용가상코드생성수단에서 생성되는 코드로서, 인증용가상코드검증수단에서 검증되는 코드를 의미한다. 즉, '인증용가상코드'는 검증이 수행될 수 있도록 단위카운트마다 임시적으로 부여된 가상의 코드를 의미한다. 여기서, 인증용가상코드생성수단은 실시예에 따라 스마트 카드 장치가 될 수도 있고, 인증용가상코드 생성 장치가 될 수도 있지만, 이에 제한되지는 않는다.In this specification, 'virtual code for authentication' refers to a code generated by a virtual code generation unit for authentication and verified by a virtual code verification unit for authentication. That is, 'virtual code for authentication' refers to a virtual code temporarily assigned to each unit count so that verification can be performed. Here, the virtual code generating means for authentication may be a smart card device or a virtual code generating device for authentication, but is not limited thereto.

본 명세서에서 '세부코드'는 인증용가상코드에 포함되는 일부코드를 의미한다. In this specification, 'detailed code' means a partial code included in the virtual code for authentication.

본 명세서에서 '단위카운트'는 특정한 시간간격으로 설정되어, 시간간격이 경과됨에 따라 변경되는 것으로 정의된 단위이다. 예를 들어, 1카운트는 특정한 시간간격(예를 들어, 1.5초)으로 설정되어 사용될 수 있다.In this specification, a 'unit count' is a unit defined as being set at a specific time interval and changed as the time interval elapses. For example, 1 count may be set to a specific time interval (eg, 1.5 seconds) and used.

본 명세서에서 '인증용가상코드생성함수'는 인증용가상코드를 생성하는데 이용되는 함수를 의미한다. In this specification, a 'virtual code generation function for authentication' refers to a function used to generate a virtual code for authentication.

본 명세서에서, '사용자'는 스마트 카드 장치를 이용하여 보안이 필요한 특정 공간(오프라인 또는 온라인 공간)에 접근하거나, 또는 스마트 카드 장치를 이용하여 금융 결제를 수행하는 사용자일 수 있지만, 이에 제한되는 것은 아니다.In the present specification, a 'user' may be a user who accesses a specific space (offline or online space) requiring security using a smart card device or performs a financial payment using a smart card device, but is not limited thereto. no.

본 명세서에서 "UID(user identification)"는 사용자를 식별하기 위해 사용자별로 중복되지 않게 부여되는 고유한 코드 형태의 값을 의미한다.In this specification, "user identification (UID)" means a value in the form of a unique code assigned to each user in order to identify the user.

본 명세서에서 “시간 데이터”는 현재 시점의 시간 데이터를 의미한다. 즉, 인증용가상코드 생성 및 검증에 사용되는 시간 데이터는 모두 동일 시점의 시간 데이터를 의미할 수 있다.In this specification, “time data” means time data at the current point in time. That is, the time data used for generating and verifying the virtual code for authentication may all mean time data at the same point in time.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 인증용가상코드 기반 사용자 인증 시스템의 구성도이다.1 is a configuration diagram of a user authentication system based on a virtual code for authentication according to the present invention.

도 2는 본 발명에 따른 스마트 카트 장치의 개략적인 구성도이다.2 is a schematic configuration diagram of a smart cart device according to the present invention.

도 3은 본 발명에 따른 인증용가상코드 생성 장치의 개략적인 구성도이다.3 is a schematic configuration diagram of an apparatus for generating a virtual code for authentication according to the present invention.

도 4는 본 발명에 따른 인증용가상코드 생성 장치에 의해 수행되는 인증용가상코드 생성 방법의 순서도이다.4 is a flowchart of a virtual code generation method for authentication performed by the virtual code generation device for authentication according to the present invention.

도 5는 본 발명에 따른 시간 데이터를 설명하기 위한 도면이다.5 is a diagram for explaining time data according to the present invention.

도 6은 본 발명에 따른 1차 인증용가상코드 검증을 설명하기 위한 도면이다.6 is a diagram for explaining virtual code verification for primary authentication according to the present invention.

도 7은 본 발명에 따른 2차 인증용가상코드 검증을 설명하기 위한 도면이다.7 is a diagram for explaining virtual code verification for secondary authentication according to the present invention.

도 8은 본 발명에 따른 스마트 카드 장치에 의해 수행되는 인증용가상코드 생성 방법의 순서도이다.8 is a flowchart of a virtual code generation method for authentication performed by a smart card device according to the present invention.

도 1을 참조하면, 인증용가상코드 기반 사용자 인증 시스템(이하, 시스템)은 관제 서버(100), 스마트 카드 장치(10), 인증용가상코드 생성 장치(20) 및 서버(30)를 포함한다. 여기서, 시스템은 도 1에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수 있다.Referring to FIG. 1, the virtual code-based user authentication system for authentication (hereinafter, the system) includes a control server 100, a smart card device 10, a virtual code generation device 20 for authentication, and a server 30. . Here, the system may include fewer or more components than those shown in FIG. 1 .

스마트 카드 장치(10)는 사용자가 사용하는 실물카드를 의미한다. 실시예에 따라, 스마트 카드 장치(10)의 표면에는 카드 또는 사용자를 식별할 만한 정보 중 일부만 표시될 수 있고 또는 어떠한 정보도 표시되지 않을 수 있다.The smart card device 10 refers to a physical card used by a user. Depending on the embodiment, on the surface of the smart card device 10, only a part of information capable of identifying a card or a user may be displayed, or no information may be displayed.

실시예에 따라, 스마트 카드 장치(10)는 출입통제용 카드일 수 있고, 금융 결제용 카드(예를 들어, 신용카드, 체크카드, 현금카드, 법인카드 등)일 수 있다. Depending on the embodiment, the smart card device 10 may be an access control card or a financial payment card (eg, credit card, check card, cash card, corporate card, etc.).

구체적으로, 스마트 카드 장치(10)가 출입통제용 출입카드인 경우, 스마트 카드 장치(10)는 사용자가 오프라인 상에서 보안이 필요한 특정 공간으로 출입할 때 사용되거나, 온라인 상에서 특정 웹사이트 또는 앱에 로그인할 때 사용될 수 있다. 스마트 카드 장치(10)가 금융 결제용 카드인 경우, 스마트 카드 장치(10)는 사용자가 금융거래를 진행할 때 사용될 수 있다. 그러나, 카드의 형태, 종류 및 목적은 상술한 바에 제한되지 않는다. 스마트 카드 장치(10)에 대한 상세한 설명은 후술한다.Specifically, when the smart card device 10 is an access card for access control, the smart card device 10 is used when a user accesses a specific space requiring security offline, or logs in to a specific website or app online. can be used when If the smart card device 10 is a card for financial payment, the smart card device 10 may be used when a user conducts a financial transaction. However, the shape, type and purpose of the card are not limited to those described above. A detailed description of the smart card device 10 will be described later.

인증용가상코드 생성 장치(20)는 출입통제 장치(예를 들어, 게이트 리더기, 도어락 등)일 수 있고, 사용자가 사용하는 사용자 단말기일 수 있다. 이때, 사용자 단말기는 어플리케이션을 구동할 수 있는 어플리케이션 프로세서(application processor, AP)를 구비한 임의의 전자기기이다. 사용자 단말기는 휴대가 불가능한 데스크탑(desktop) 컴퓨터 또는 휴대가 가능한 모바일 기기(예를 들어, 스마트폰(smart phone), 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), PMP(portable multimedia player), PND(personal navigation device), 웨어러블 디바이스(wearable device)등을 포함하며 이에 한정되는 것은 아니다. 인증용가상코드 생성 장치(20)에 대한 상세한 설명은 후술한다.The virtual code generation device 20 for authentication may be an access control device (eg, a gate reader, a door lock, etc.) or a user terminal used by a user. At this time, the user terminal is any electronic device having an application processor (application processor, AP) capable of driving an application. The user terminal may be a non-portable desktop computer or a portable mobile device (eg, smart phone, tablet PC, PDA (personal digital assistant), EDA (enterprise digital assistant), PMP (portable multimedia) players), personal navigation devices (PNDs), wearable devices, etc., but are not limited thereto, etc. A detailed description of the virtual code generation device 20 for authentication will be described later.

서버(30)는 인증용가상코드검증수단으로서, 인증용가상코드 생성 장치(20)로부터 수신된 인증용가상코드에 대한 검증을 수행한다. 그러나, 이에 제한되지 않고, 실시예에 따라 서버(30 대신 인증용가상코드 생성 장치(20)가 인증용가상코드를 검증할 수도 있다. The server 30, as a virtual code verification means for authentication, verifies the virtual code for authentication received from the virtual code generation device 20 for authentication. However, the present invention is not limited thereto, and the device 20 for generating the virtual code for authentication may verify the virtual code for authentication instead of the server 30 according to embodiments.

이때, 서버(30)는 인증용가상코드 생성 장치(20)와 통신하는 보안 관련 서버 또는 금융사 서버일 수 있으나 이에 한정하는 것은 아니다. 또한, 도 1을 참조하면, 서버(30)는 하나의 서버로 구성된 것으로 표시되어 있지만, 복수의 서버가 서로 연계된 시스템 형태로 구성될 수도 있다.At this time, the server 30 may be a security related server or a financial company server communicating with the virtual code generation device 20 for authentication, but is not limited thereto. Also, referring to FIG. 1 , the server 30 is shown as being composed of one server, but may be composed of a system in which a plurality of servers are linked to each other.

도 1에 도시된 바와 같이, 스마트 카드 장치(10), 인증용가상코드 생성 장치(20) 및 서버(30)는 통신망을 통해 서로 각종 데이터, 신호 또는 정보를 송수신할 수 있다. As shown in FIG. 1, the smart card device 10, the virtual code generation device 20 for authentication, and the server 30 may transmit and receive various data, signals, or information to each other through a communication network.

여기서, 통신망은 다양한 형태의 통신망이 이용될 수 있으며, 예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coax), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신방식이 이용될 수 있다.Here, various types of communication networks may be used as the communication network, for example, wireless LANs such as WLAN (Wireless LAN), Wi-Fi, Wibro, Wimax, and High Speed Downlink Packet Access (HSDPA). A wired communication method such as communication method or Ethernet, xDSL (ADSL, VDSL), HFC (Hybrid Fiber Coax), FTTC (Fiber to The Curb), FTTH (Fiber To The Home) may be used.

한편, 통신망은 상기에 제시된 통신방식에 한정되는 것은 아니며, 상술한 통신방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.On the other hand, the communication network is not limited to the communication methods presented above, and may include all other types of communication methods that are widely known or will be developed in the future in addition to the above communication methods.

도 2를 참조하면, 스마트 카드 장치(10)는 NFC 모듈(12) 및 IC 모듈(14)을 포함할 수 있다. 여기서, 스마트 카드 장치(10)는 도 2에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수 있다.Referring to FIG. 2 , a smart card device 10 may include an NFC module 12 and an IC module 14 . Here, the smart card device 10 may include fewer or more components than those shown in FIG. 2 .

NFC(Narrow Frequency Communication) 모듈(12)(즉, NFC 칩)은 통신 모듈로서, 인증용가상코드 생성 장치(20)와 각종 데이터를 송수신할 수 있다. 여기서, NFC 모듈(12)은 애플릿(applet) 형태로 형성될 수 있지만, 이제 제한되는 것은 아니다. NFC 모듈(12)은 스마트 카드 장치(10)가 인증용가상코드 생성 장치(20)에 태그(tag)되면, 인증용가상코드 생성 장치(20)로부터 시간 데이터를 수신할 수 있다.A Narrow Frequency Communication (NFC) module 12 (ie, an NFC chip) is a communication module and can transmit/receive various types of data with the virtual code generation device 20 for authentication. Here, the NFC module 12 may be formed in the form of an applet, but is not limited thereto. When the smart card device 10 is tagged with the virtual code generating device 20 for authentication, the NFC module 12 may receive time data from the virtual code generating device 20 for authentication.

IC 모듈(14)(즉, IC 칩)은 1차 인증용가상코드 생성할 수 있다. 여기서, IC 모듈(14)은 애플릿(applet) 형태로 형성될 수 있지만, 이제 제한되는 것은 아니다. The IC module 14 (ie, the IC chip) may generate virtual codes for primary authentication. Here, the IC module 14 may be formed in the form of an applet, but is not limited thereto.

IC 모듈(14)은 수신된 시간 데이터를 이용하여 1차 인증용가상코드를 생성할 수 있다. 구체적으로, IC 모듈(14)은 수신된 시간 데이터뿐만 아니라 메모리(미도시)에 저장된 카드 데이터 및 인증용가상코드생성함수를 이용하여 1차 인증용가상코드를 생성할 수 있다. The IC module 14 may generate a virtual code for primary authentication using the received time data. Specifically, the IC module 14 may generate a virtual code for primary authentication using not only the received time data but also card data stored in a memory (not shown) and a virtual code generation function for authentication.

여기서, 카드 데이터는 해당 스마트 카드 장치(10)의 발급을 신청한 사용자의 사용자 식별 정보와 카드 식별 정보를 포함할 수 있다. 여기서, 상기 카드 식별 정보는, 상기 스마트 카드 장치(10)의 식별 정보인 제1 UID (user identification), 시크릿(secret), 카드번호, 시리얼넘버를 포함할 수 있으며, 이에 제한되지 않고 카드 관련 정보는 모두 포함할 수 있다. 여기서, 상기 사용자 식별 정보는 주민등록번호를 포함할 수 있으며, 이에 제한되지 않고 사용자 관련한 개인 정보는 모두 포함할 수 있다.Here, the card data may include user identification information and card identification information of a user who requested issuance of the corresponding smart card device 10 . Here, the card identification information may include a first UID (user identification), a secret, a card number, and a serial number, which are identification information of the smart card device 10, but are not limited thereto, and card-related information. can include all Here, the user identification information may include a resident registration number, but is not limited thereto and may include all user-related personal information.

IC 모듈(14)에는 사용자 식별 정보 및 카드 식별 정보 이외에도 스마트 카드 장치(10)를 발급하고 관리하는 회사(예를 들어, 카드 제작 회사, 금융사, 보안 회사, 온라인 웹 또는 앱 서비스 회사 등)의 URL 주소 등이 저장될 수 있다. 예를 들어, 스마트 카드 장치(10)의 IC 모듈(14)에 특정 금융사의 URL 주소가 저장된 경우에는, 인증용가상코드 생성 장치(20)에 해당 스마트 카드 장치(10)가 태그되면, 인증용가상코드 생성 장치(20)는 상기 URL 주소를 획득할 수 있다. 이때 URL 주소는 해당 금융사의 프로그램 또는 어플리케이션의 설치 정보 또는 실행 정보에 관한 것일 수 있다.In addition to user identification information and card identification information, the IC module 14 includes the URL of a company that issues and manages the smart card device 10 (eg, a card manufacturing company, a financial company, a security company, an online web or app service company, etc.) Addresses and the like may be stored. For example, when the URL address of a specific financial company is stored in the IC module 14 of the smart card device 10, when the corresponding smart card device 10 is tagged with the virtual code generation device 20 for authentication, authentication The virtual code generating device 20 may obtain the URL address. In this case, the URL address may be related to installation information or execution information of a program or application of the corresponding financial institution.

즉, IC 모듈(14)에는 사용자 식별 정보 및 카드 식별 정보 이외에도 다양한 정보가 저장된다. 이러한, 다양한 정보는 인증용가상코드 생성 장치(20)에 스마트 카드 장치(10)가 태깅되면, 인증용가상코드 생성 장치(20)는 스마트 카드 장치(10)로부터 해당 정보를 수신하게 된다. That is, various types of information other than user identification information and card identification information are stored in the IC module 14 . When the smart card device 10 is tagged with the virtual code generating device 20 for authentication, the virtual code generating device 20 for authentication receives corresponding information from the smart card device 10.

스마트 카드 장치(10)는 스마트 카드 장치(10)의 전반적인 동작을 제어하는 프로세서(미도시)를 더 포함할 수 있다. 프로세서(미도시)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 저장된 응용 프로그램을 구동할 수 있다. 여기서는 프로세서(미도시)가 IC 모듈(14)과 구별되는 구성으로 설명하였지만, 실시예에 따라 IC 모듈(14)이 프로세서(미도시) 역할을 수행할 수 있다.The smart card device 10 may further include a processor (not shown) that controls overall operations of the smart card device 10 . A processor (not shown) may process signals, data, information, etc. input or output through the components described above or drive a stored application program. Although the processor (not shown) has been described as a configuration distinct from the IC module 14, the IC module 14 may serve as a processor (not shown) according to embodiments.

도 3을 참조하면, 인증용가상코드 생성 장치(20)는 통신부(22), 메모리(24) 및 프로세서(26)를 포함할 수 있다. 여기서, 인증용가상코드 생성 장치(20)는 도 3에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수 있다.Referring to FIG. 3 , the virtual code generation device 20 for authentication may include a communication unit 22 , a memory 24 and a processor 26 . Here, the virtual code generation device 20 for authentication may include fewer or more components than those shown in FIG. 3 .

통신부(22)는 상기 스마트 카드 장치(10)가 인증용가상코드 생성 장치(20)에 태깅되면, 상기 통신망을 통해 상기 스마트 카드 장치(10)로 시간 데이터를 송신하고, 상기 시간 데이터를 기반으로 생성된 1차 인증용가상코드를 상기 스마트 카드 장치(10)로부터 수신할 수 있다. 이외에도, 두 장치는 태깅 시에 다양한 데이터들을 서로 송수신할 수 있다.When the smart card device 10 is tagged with the virtual code generation device 20 for authentication, the communication unit 22 transmits time data to the smart card device 10 through the communication network, and based on the time data The generated virtual code for primary authentication may be received from the smart card device 10 . In addition, the two devices may transmit and receive various data to each other during tagging.

메모리(24)는 인증용가상코드 생성 장치(20)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 메모리(24)는 인증용가상코드 생성 장치(20)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 인증용가상코드 생성 장치(20)의 동작을 위한 적어도 하나의 프로세스, 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 인증용가상코드 생성 장치(20)의 기본적인 기능을 위하여 존재할 수 있다. The memory 24 may store data supporting various functions of the virtual code generation device 20 for authentication. The memory 24 includes a plurality of application programs (application programs or applications) running in the virtual code generating device 20 for authentication, at least one process for the operation of the virtual code generating device 20 for authentication, and data. , commands can be stored. At least some of these application programs may exist for basic functions of the virtual code generation device 20 for authentication.

프로세서(26)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 인증용가상코드 생성 장치(20)의 전반적인 동작을 제어할 수 있다. 프로세서(26)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(24)에 저장된 응용 프로그램을 구동함으로써, 상기 스마트 카드 장치(10) 또는 서버(30)에 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.In addition to operations related to the application program, the processor 26 may control general operations of the virtual code generation device 20 for authentication. The processor 26 processes signals, data, information, etc. input or output through the components described above or runs an application program stored in the memory 24, so that the smart card device 10 or the server 30 may provide or process information or functions;

또한, 프로세서(26)는 메모리(24)에 저장된 응용 프로그램을 구동하기 위하여, 도 3과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(26)는 상기 응용 프로그램의 구동을 위하여, 인증용가상코드 생성 장치(20)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작 시킬 수 있다.In addition, the processor 26 may control at least some of the components discussed in conjunction with FIG. 3 in order to drive an application program stored in the memory 24 . Furthermore, the processor 26 may combine and operate at least two or more of the components included in the virtual code generation device 20 for authentication to drive the application program.

도 3을 참조하면, 프로세서(26)는 코드생성부(262) 및 검증요청부(164)를 포함할 수 있다. 여기서, 프로세서(26)는 도 3에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수 있다.Referring to FIG. 3 , the processor 26 may include a code generator 262 and a verification request unit 164 . Here, the processor 26 may include fewer or more components than those shown in FIG. 3 .

코드생성부(262)는 스마트 카드 장치(10)에서 생성된 1차 인증용가상코드를 이용하여 2차 인증용가상코드를 생성할 수 있다.The code generator 262 may generate a virtual code for secondary authentication using the virtual code for primary authentication generated by the smart card device 10 .

검증요청부(264)는 통신부(22)를 통해 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나를 서버로 송신하여, 상기 서버가 상기 적어도 하나에 대한 검증을 수행하도록 요청할 수 있다.The verification request unit 264 transmits at least one of the virtual code for primary authentication and the virtual code for secondary authentication to the server via the communication unit 22, and requests the server to verify the at least one. can

도 3에 도시하지는 않았지만, 프로세서(26)는 코드생성부(262) 및 검증요청부(264) 이외에도, 다양한 연산 동작 및 판단 동작 등을 수행하는 구성요소들을 더 포함할 수 있다.Although not shown in FIG. 3 , the processor 26 may further include components that perform various calculation operations and judgment operations, in addition to the code generator 262 and the verification request unit 264 .

이하에서는, 도 4 내지 도 7을 참조하여, 인증용가상코드 생성 장치(20)에 의해 수행되는 인증용가상코드 기반 사용자 인증 방법에 대해 상세히 설명하도록 한다.Hereinafter, with reference to FIGS. 4 to 7 , a virtual code-based user authentication method performed by the virtual code generation device 20 for authentication will be described in detail.

도 4를 참조하면, 인증용가상코드 생성 장치(20)의 통신부(22)는 IC 칩이 내장된 카드 태깅 시, 상기 스마트 카드 장치(10)로 시간 데이터를 송신할 수 있다(S110).Referring to FIG. 4 , the communication unit 22 of the virtual code generation device 20 for authentication may transmit time data to the smart card device 10 when tagging a card having an IC chip embedded therein (S110).

스마트 카드 장치(10)는 자체적으로 시간 데이터를 획득할 수 없기 때문에, 태깅을 통해 인증용가상코드 생성 장치(20)로부터 시간 데이터를 제공받을 수 있다.Since the smart card device 10 cannot acquire time data by itself, it can receive time data from the virtual code generation device 20 for authentication through tagging.

이때, 상기 시간 데이터는, APDU(Application Protocol Data Unit) 명령어와 결합된 형태일 수 있다. 도 5를 참조하면, 시간 데이터는 APDU 명령어 뒤에 결합된 형태로 스마트 카드 장치(10)로 전달될 수 있다. 그러나 결합 형태는 이에 제한되는 것은 아니다.In this case, the time data may be combined with an Application Protocol Data Unit (APDU) command. Referring to FIG. 5 , time data may be transmitted to the smart card device 10 in a combined form after an APDU command. However, the binding form is not limited thereto.

인증용가상코드 생성 장치(20)의 통신부(22)는 상기 시간 데이터를 기반으로 생성된 1차 인증용가상코드를 상기 스마트 카드 장치(10)로부터 수신할 수 있다(S120).The communication unit 22 of the virtual code generation device 20 for authentication may receive the first virtual code for authentication generated based on the time data from the smart card device 10 (S120).

즉, 스마트 카드 장치(10)는 시간 데이터를 수신하여, 수신된 시간 데이터와 카드 내에 저장되어 있던 카드 데이터(예를 들어, 시크릿, 제1 UID)를 함께 이용하여 1차 인증용가상코드를 생성하고, 이를 인증용가상코드 생성 장치(20)로 전달할 수 있다.That is, the smart card device 10 receives time data and generates a virtual code for primary authentication using the received time data and card data (eg, secret, first UID) stored in the card together. And, it can be transmitted to the virtual code generation device 20 for authentication.

상기 1차 인증용가상코드는, 제1 코드 및 제2 코드를 포함할 수 있다. 여기서, 제1 코드 및 제2 코드는 상기 1차 인증용가상코드의 세부코드이며, 1차 인증용가상코드는 제1 코드 및 제2 코드 이외에도 더 많은 수의 세부코드를 포함할 수 있다.The virtual code for primary authentication may include a first code and a second code. Here, the first code and the second code are detailed codes of the virtual code for primary authentication, and the virtual code for primary authentication may include a larger number of detailed codes in addition to the first code and the second code.

상기 1차 인증용가상코드의 제1 코드는 상기 시간 데이터 및 제1 OTP를 기반으로 생성될 수 있다. 먼저, 스마트 카드 장치(10)는 제1 인증용가상코드생성함수를 이용하여 카드 내에 저장되어 있던 시크릿 값과 상기 시간 데이터를 시드 데이터로 하여 제1 OTP를 생성할 수 있다. 이때, 시드 데이터는 실시예에 따라 시크릿 값 및 시간 데이터 이외의 값을 더 이용할 수도 있다. The first code of the virtual code for primary authentication may be generated based on the time data and the first OTP. First, the smart card device 10 may generate a first OTP using a secret value stored in the card and the time data as seed data by using a virtual code generation function for first authentication. In this case, as the seed data, values other than the secret value and the time data may be further used according to embodiments.

그런 다음, 스마트 카드 장치(10)는 제1 인증용가상코드생성함수를 이용하여 상기 수신된 시간 데이터에 생성된 제1 OTP를 더하여 제1 코드를 생성할 수 있다.Then, the smart card device 10 may generate a first code by adding the generated first OTP to the received time data using a virtual code generation function for first authentication.

스마트 카드 장치(10)는 제1 인증용가상코드생성함수를 이용하여 상기 제1 코드에서 상기 카드의 식별 정보인 제1 UID (user identification)를 제외하여 상기 제2 코드를 생성할 수 있다. 여기서, 제1 UID는 스마트 카드 장치(10)에 저장된 데이터로서 스마트 카드 장치(10)를 식별할 수 있는 고유 값이다.The smart card device 10 may generate the second code by excluding a first user identification (UID), which is identification information of the card, from the first code by using a first virtual code generation function for authentication. Here, the first UID is data stored in the smart card device 10 and is a unique value capable of identifying the smart card device 10 .

제1 코드 = 시간 데이터 + 제1 OTP1st code = time data + 1st OTP

제2 코드 = 제1 코드 - 제1 UID2nd code = 1st code - 1st UID

스마트 카드 장치(10)는 생성된 세부코드(제1 코드 및 제2 코드)를 조합하여 1차 인증용가상코드를 생성할 수 있다. 일 실시예로, 스마트 카드 장치(10)는 제1 인증용가상코드생성함수를 이용하여 복수의 세부코드를 특정한 규칙에 따라 결합함으로써 상기 1차 인증용가상코드를 생성할 수 있다. 상기 제1 인증용가상코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함할 수 있다. The smart card device 10 may generate a virtual code for primary authentication by combining the generated detailed codes (first code and second code). As an embodiment, the smart card device 10 may generate the virtual code for primary authentication by combining a plurality of detailed codes according to a specific rule using a virtual code generation function for first authentication. The first virtual code generation function for authentication may include a rule for combining a plurality of detailed codes (ie, a detailed code combining function).

복수의 세부코드를 결합하여 하나의 인증용가상코드를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. 상기 세부코드결합함수의 일 예로, 스마트 카드 장치(10)는 M자리의 제1 코드와 N자리의 제2 코드를 번갈아 배치하는 방식으로 인증용가상코드를 생성할 수 있다. 또한, 다른 일 예로, 세부코드결합함수는 제1 코드 뒤에 제2 코드를 결합하는 함수일 수 있다. 인증용가상코드에 포함되는 세부코드가 늘어남에 따라 세부코드결합함수도 다양하게 생성될 수 있다.Various methods may be applied as a method of generating one virtual code for authentication by combining a plurality of detailed codes. As an example of the detailed code combining function, the smart card device 10 may generate a virtual code for authentication by alternately arranging an M-digit first code and an N-digit second code. Also, as another example, the detailed code combination function may be a function that combines a second code after the first code. As the number of detailed codes included in the virtual code for authentication increases, various detailed code combining functions can be created.

이렇게 생성된 1차 인증용가상코드는 인증용가상코드 생성 장치(20)로 송신된다.The virtual code for primary authentication thus generated is transmitted to the virtual code generation device 20 for authentication.

인증용가상코드 생성 장치(20)의 코드생성부(262)는 상기 1차 인증용가상코드를 이용하여 2차 인증용가상코드를 생성할 수 있다(S130).The code generation unit 262 of the virtual code generation device 20 for authentication may generate a virtual code for secondary authentication using the virtual code for primary authentication (S130).

단계 S130 이전에, 인증용가상코드 생성 장치(20)의 코드생성부(262)는 상기 스마트 카드 장치(10)의 종류에 따라 2차 인증용가상코드를 생성할지의 여부를 먼저 판단할 수 있다. 보다 상세하게, 코드생성부(262)는 1차 인증용가상코드와 함께 수신된 카드 데이터를 기반으로 상기 판단 동작을 수행할 수 있다(실시예에 따라, 카드 데이터는 태깅 시에 수신될 수도 있다). 즉, 코드생성부(262)는 상기 카드 데이터를 기반으로 상기 스마트 카드 장치(10)가 출입통제용 카드인지 금융 결제용 카드인지를 판단할 수 있다. 그리고, 상기 스마트 카드 장치(10)가 출입통제용 카드인 것으로 확인되면 2차 인증용가상코드를 생성하지 않고, 상기 카드 데이터를 기반으로 상기 스마트 카드 장치(10)가 금융 결제용 카드인 것으로 확인되면 2차 인증용가상코드를 생성할 수 있다. Before step S130, the code generation unit 262 of the virtual code generation device 20 for authentication may first determine whether or not to generate a virtual code for secondary authentication according to the type of the smart card device 10. . In more detail, the code generator 262 may perform the determination operation based on the card data received along with the virtual code for primary authentication (depending on the embodiment, the card data may be received during tagging). ). That is, the code generator 262 may determine whether the smart card device 10 is an access control card or a financial payment card based on the card data. And, if it is confirmed that the smart card device 10 is a card for access control, it is confirmed that the smart card device 10 is a card for financial payment based on the card data without generating a virtual code for secondary authentication. If so, a virtual code for secondary authentication can be created.

실시예에 따라, 인증용가상코드 생성 장치(20)의 종류에 따라 2차 인증용가상코드 생성 여부가 결정될 수 있다. 구체적으로, 인증용가상코드 생성 장치(20)가 출입통제 장치인 경우에는 상기 판단 동작 없이 2차 인증용가상코드를 생성하지 않을 수 있다. 인증용가상코드 생성 장치(20)가 사용자 단말인 경우에는 코드생성부(262)는 상기 스마트 카드 장치(10)의 종류에 따라 2차 인증용가상코드를 생성할지의 여부를 판단할 수 있다. 보다 상세하게, 코드생성부(262)는 1차 인증용가상코드와 함께 수신된 카드 데이터를 기반으로 상기 판단 동작을 수행할 수 있다(실시예에 따라, 카드 데이터는 태깅 시에 수신될 수도 있다). 즉, 코드생성부(262)는 상기 카드 데이터를 기반으로 상기 스마트 카드 장치(10)가 출입통제용 카드인 것으로 확인되면 2차 인증용가상코드를 생성하지 않고, 상기 카드 데이터를 기반으로 상기 스마트 카드 장치(10)가 금융 결제용 카드인 것으로 확인되면 2차 인증용가상코드를 생성할 수 있다. Depending on the embodiment, whether to generate the virtual code for secondary authentication may be determined according to the type of the device 20 for generating the virtual code for authentication. Specifically, when the virtual code generation device 20 for authentication is an access control device, the virtual code for secondary authentication may not be generated without the above-described determination operation. When the virtual code generating device 20 for authentication is a user terminal, the code generating unit 262 may determine whether to generate a virtual code for secondary authentication according to the type of the smart card device 10 . In more detail, the code generator 262 may perform the determination operation based on the card data received along with the virtual code for primary authentication (depending on the embodiment, the card data may be received during tagging). ). That is, the code generator 262 does not generate a virtual code for secondary authentication when it is confirmed that the smart card device 10 is an access control card based on the card data, and based on the card data, the smart card When it is confirmed that the card device 10 is a card for financial payment, a virtual code for secondary authentication may be generated.

상기에서는 코드생성부(262)가 상기 판단 동작을 수행하는 것으로 설명하였지만, 이에 제한되지 않고 프로세서(260)의 다른 구성요소가 상기 판단 동작을 수행할 수도 있다.Although it has been described above that the code generator 262 performs the determining operation, other elements of the processor 260 may also perform the determining operation without being limited thereto.

상기 과정을 통해 2차 인증용가상코드를 생성하는 것으로 결정되면, 단계 S130에서, 코드생성부(262)는 상기 1차 인증용가상코드를 이용하여 2차 인증용가상코드를 생성할 수 있다. 이때, 2차 인증용가상코드를 생성하기 위해서, 우선 서버(30)에서 1차 인증용가상코드에 대한 검증이 수행되어야 한다. 서버(30)는 검증을 통해 1차 인증용가상코드에 포함된 복수의 세부코트(제1 코드 및 제2 코드)를 추출하고, 이를 인증용가상코드 생성 장치(20)로 전달할 수 있다. If it is determined to generate the virtual code for secondary authentication through the above process, in step S130, the code generator 262 may generate a virtual code for secondary authentication using the virtual code for primary authentication. At this time, in order to generate the virtual code for the second authentication, first, the server 30 should verify the virtual code for the first authentication. The server 30 may extract a plurality of detailed codes (first code and second code) included in the virtual code for primary authentication through verification, and transmit them to the virtual code generation device 20 for authentication.

상기에서는 2차 인증용가상코드 생성을 위한 1차 인증용가상코드에 대한 검증을 서버(30)에서 수행하는 것으로 설명하였지만, 실시예에 따라 서버(30)가 아닌 인증용가상코드 생성 장치(20)가 해당 검증을 수행할 수도 있다. 인증용가상코드를 검증하는 방법에 대한 설명은 후술한다.In the above, it has been described that the verification of the first authentication virtual code for generating the second authentication virtual code is performed in the server 30, but according to the embodiment, the virtual code generation device 20 for authentication instead of the server 30 ) may perform the verification. A description of a method of verifying the virtual code for authentication will be described later.

본 명세서에서 2차 인증용가상코드를 생성하는 방식은 OTP 연산을 한번 수행하는 방식과 두번 수행하는 방식으로 구분될 수 있다.In this specification, a method of generating a virtual code for secondary authentication can be divided into a method of performing an OTP operation once and a method of performing the OTP operation twice.

OTP 연산을 한번 수행하는 방식(제1 방식)은 스마트 카드 장치(10)에서 1차 인증용가상코드가 생성될 때만 OTP 연산이 수행되며, 2차 인증용가상코드의 코드길이가 길어지게 된다. In the method of performing the OTP calculation once (the first method), the OTP calculation is performed only when the virtual code for primary authentication is generated in the smart card device 10, and the code length of the virtual code for secondary authentication becomes longer.

상기 제1 방식에서, 코드생성부(262)는 제2 인증용가상코드생성함수를 이용하여 수신된 제1 코드에서 상기 인증용가상코드 생성 장치(20)의 식별 정보인 제2 UID를 제외하여 제3 코드를 생성할 수 있다. 여기서, 제2 UID는 인증용가상코드 생성 장치(20)에 저장된 데이터로서 인증용가상코드 생성 장치(20)를 식별할 수 있는 고유 값이다.In the first method, the code generator 262 excludes the second UID, which is identification information of the virtual code for authentication 20, from the first code received using the second virtual code generation function for authentication. A third code can be generated. Here, the second UID is data stored in the virtual code generating device 20 for authentication and is a unique value capable of identifying the virtual code generating device 20 for authentication.

제3 코드 = 제1 코드 - 제2 UID3rd code = 1st code - 2nd UID

그런 다음, 코드생성부(262)는 제2 인증용가상코드생성함수를 이용하여 스마트 카드 장치(10)에서 생성된 제1 코드, 스마트 카드 장치(10)에서 생성된 제2 코드 및 인증용가상코드 생성 장치(20)에서 생성된 제3 코드를 결합하여 2차 인증용가상코드를 생성할 수 있다.Then, the code generator 262 uses the second virtual code generation function for authentication to generate the first code generated by the smart card device 10, the second code generated by the smart card device 10, and the virtual code for authentication. A virtual code for secondary authentication may be generated by combining the third code generated by the code generating device 20 .

코드생성부(262)는 생성된 복수의 세부코드(제1 코드, 제2 코드 및 제3 코드)를 조합하여 2차 인증용가상코드를 생성할 수 있다. 일 실시예로, 코드생성부(262)는 제2 인증용가상코드생성함수를 이용하여 복수의 세부코드를 특정한 규칙에 따라 결합함으로써 상기 2차 인증용가상코드를 생성할 수 있다. 상기 제2 인증용가상코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함할 수 있다. 복수의 세부코드를 결합하여 하나의 인증용가상코드를 생성하는 방식으로는 상술한 방식들이 적용될 수 있다. The code generator 262 may generate a virtual code for secondary authentication by combining the generated detailed codes (first code, second code, and third code). As an embodiment, the code generator 262 may generate the virtual code for secondary authentication by combining a plurality of detailed codes according to a specific rule using a virtual code generation function for second authentication. The second virtual code generation function for authentication may include a rule for combining a plurality of detailed codes (ie, a detailed code combining function). The above-described methods may be applied as a method of generating one virtual code for authentication by combining a plurality of detailed codes.

상기 제1 방식에서, 1차 인증용가상코드에 포함된 제1 코드 및 제2 코드와 2차 인증용가상코드에 포함된 제1 코드 및 제2 코드는 모두 스마트 카드 장치(10)에서 생성된 것으로 동일한 코드를 의미한다. 제3 코드가 스마트 인증 장치(20)에서 새롭게 생성되어 상기 제1 코드 및 제2 코드와 결합되어 2차 인증용가상코드가 생성되는 것이다.In the first method, the first code and the second code included in the virtual code for primary authentication and the first code and the second code included in the virtual code for secondary authentication are all generated by the smart card device 10. means the same code. A third code is newly generated in the smart authentication device 20 and combined with the first code and the second code to generate a virtual code for secondary authentication.

OTP 연산을 두번 수행하는 방식(제2 방식)은 스마트 카드 장치(10)에서 1차 인증용가상코드가 생성될 때 OTP 연산이 수행되고 이후에 인증용가상코드 생성 장치(20)에서 2차 인증용가상코드가 생성될 때 OTP 연산이 또 한번 수행되며, 2차 인증용가상코드의 코드길이에는 변화가 없다(즉, 1차 인증용가상코드의 길이와 동일)In the method of performing the OTP calculation twice (the second method), the OTP calculation is performed when the first virtual code for authentication is generated in the smart card device 10, and then the second authentication is performed in the virtual code generation device 20 for authentication. When the virtual code for authentication is generated, the OTP operation is performed again, and the code length of the virtual code for secondary authentication does not change (i.e., the same as the length of the virtual code for primary authentication).

상기 제2 방식에서, 코드생성부(262)는 상기 1차 인증용가상코드를 기반으로 제2 OTP를 생성하고, 상기 제2 OTP 및 상기 인증용가상코드 생성 장치의 식별 정보인 제2 UID를 기반으로 상기 2차 인증용가상코드를 생성할 수 있다. 여기서, 제2 UID는 인증용가상코드 생성 장치(20)에 저장된 데이터로서 인증용가상코드 생성 장치(20)를 식별할 수 있는 고유 값이다.In the second method, the code generator 262 generates a second OTP based on the virtual code for primary authentication, and generates a second OTP and a second UID that is identification information of the virtual code for authentication device. Based on this, it is possible to generate the virtual code for the second authentication. Here, the second UID is data stored in the virtual code generating device 20 for authentication and is a unique value capable of identifying the virtual code generating device 20 for authentication.

코드생성부(262)는 제2 인증용가상코드생성함수를 이용하여 상기 시간 데이터 및 시크릿 값뿐만 아니라 상기 1차 인증용가상코드를 추가 시드 데이터로 더 활용하여 상기 제2 OTP를 생성할 수 있다.The code generator 262 may generate the second OTP by further utilizing the virtual code for primary authentication as additional seed data as well as the time data and the secret value using a virtual code generation function for second authentication. .

그런 다음, 코드생성부(262)는 제2 인증용가상코드생성함수를 이용하여 스마트 카드 장치(10)에서 생성된 제1 코드에 포함된 상기 시간 데이터(시간 데이터는 2차 인증용가상코드 생성 요청 시점일 수 있다)에 상기 생성된 제2 OTP를 더하여 제1 코드를 생성할 수 있다. 코드생성부(262)는 제2 인증용가상코드생성함수를 이용하여 상기 제1 코드에서 상기 인증용가상코드 생성 장치(20)의 식별 정보인 제2 UID (user identification)를 제외하여 제2 코드를 생성할 수 있다. 여기서 제2 UID는 인증용가상코드 생성 장치(20)에 저장된 데이터로서 인증용가상코드 생성 장치(20)를 식별할 수 있는 고유 값이다.Then, the code generator 262 uses the second authentication virtual code generation function to generate the time data included in the first code generated by the smart card device 10 (the time data generates a virtual code for second authentication). The first code may be generated by adding the generated second OTP at the time of request). The code generator 262 removes the second UID (user identification), which is identification information of the virtual code for authentication 20, from the first code using a second virtual code generation function for authentication, and generates a second code. can create Here, the second UID is data stored in the virtual code generating device 20 for authentication, and is a unique value capable of identifying the virtual code generating device 20 for authentication.

제1 코드 = 시간 데이터 + 제2 OTP1st code = time data + 2nd OTP

제2 코드 = 제1 코드 - 제2 UID2nd code = 1st code - 2nd UID

여기서, 시간 데이터는 현재 시점의 시간 데이터로서, 상기 1차 인증용가상코드를 생성할 때 사용되는 시간 데이터와 상기 2차 인증용가상코드를 생성할 때 사용되는 시간 데이터는 동일할 수 있다. 즉, 제1 OTP와 제2 OTP는 동일 시점에 생성되는 것이기 때문에 동일한 현재 시간 데이터를 이용할 수 있다. Here, the time data is time data of a current point in time, and the time data used when generating the virtual code for primary authentication and the time data used when generating the virtual code for secondary authentication may be the same. That is, since the first OTP and the second OTP are generated at the same time, the same current time data can be used.

코드생성부(262)는 생성된 세부코드(제1 코드 및 제2 코드)를 조합하여 2차 인증용가상코드를 생성할 수 있다. 일 실시예로, 코드생성부(262)는 제2 인증용가상코드생성함수를 이용하여 복수의 세부코드를 특정한 규칙에 따라 결합함으로써 상기 2차 인증용가상코드를 생성할 수 있다. 상기 제2 인증용가상코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함할 수 있다. 복수의 세부코드를 결합하여 하나의 인증용가상코드를 생성하는 방식으로는 상술한 방식들이 적용될 수 있다.The code generator 262 may generate a virtual code for secondary authentication by combining the generated detailed codes (first code and second code). As an embodiment, the code generator 262 may generate the virtual code for secondary authentication by combining a plurality of detailed codes according to a specific rule using a virtual code generation function for second authentication. The second virtual code generation function for authentication may include a rule for combining a plurality of detailed codes (ie, a detailed code combining function). The above-described methods may be applied as a method of generating one virtual code for authentication by combining a plurality of detailed codes.

상기 제2 방식에서, 1차 인증용가상코드에 포함된 제1 코드 및 제2 코드와 2차 인증용가상코드에 포함된 제1 코드 및 제2 코드는 각각 스마트 카드 장치(10)와 인증용가상코드 생성 장치(20)에서 생성된 것으로 각각 상이한 코드이다. 즉, 1차 인증용가상코드에 포함된 제1 코드 및 제2 코드는 제1 OTP 및 제1 UID를 이용하여 생성된 것이고, 2차 인증용가상코드에 포함된 제1 코드 및 제2 코드는 제2 OTP 및 제2 UID를 이용하여 생성된 것이므로 각각 상이하다.In the second method, the first code and the second code included in the virtual code for primary authentication and the first code and the second code included in the virtual code for secondary authentication are used for authentication with the smart card device 10, respectively. They are generated by the virtual code generating device 20 and are different codes. That is, the first code and the second code included in the virtual code for primary authentication are generated using the first OTP and the first UID, and the first code and the second code included in the virtual code for secondary authentication are They are different because they are generated using the second OTP and the second UID.

상술한 제1 인증용가상코드생성함수와 제2 인증용가상코드생성함수는 각각 스마트 카드 장치(10)와 인증용가상코드 생성 장치(20)에 저장되지만, 구동된 최초시점은 동일할 수 있다. 즉, 사용자가 스마트 카드 장치(10)를 발급받아 인증용가상코드 생성 장치(20)에 최초 태깅을 통해 서버(30)에 상기 스마트 카드 장치(10)에 대한 사용자 등록을 완료하면, 스마트 카드 장치(10)와 인증용가상코드 생성 장치(20) 각각에 저장된 제1 인증용가상코드생성함수와 제2 인증용가상코드생성함수가 구동을 시작할 수 있다. 즉, 제1 인증용가상코드생성함수와 제2 인증용가상코드생성함수는 동일할 수 있다. Although the above-described first virtual code generating function for authentication and second virtual code generating function for authentication are stored in the smart card device 10 and the virtual code generating device 20, respectively, they may be driven at the same initial time point. . That is, when the user receives the smart card device 10 and completes user registration of the smart card device 10 with the server 30 through initial tagging with the virtual code generation device 20 for authentication, the smart card device (10) and the first virtual code generating function for authentication and the second virtual code generating function for authentication stored in each of the virtual code generating devices 20 for authentication may start driving. That is, the virtual code generating function for first authentication and the virtual code generating function for second authentication may be the same.

이와 같이 사용자 등록이 완료되면, 서버에는 스마트 카드 장치(10)의 식별 정보인 제1 UID 및 인증용가상코드 생성 장치(20)의 식별 정보인 제2 UID 중 적어도 하나가 저장될 수 있다. 즉, 서버(30)는 사용자 등록 시에 검증 알고리즘 내에서 사용자에게 할당되는 영역에 상기 제1 UID 및 상기 제2 UID 중 적어도 하나를 저장할 수 있다. 실시예에 따라, 서버(30)는 하나의 영역에 상기 제1 UID를 저장하고 제2 UID를 상기 제1 UID에 매칭하여 저장할 수 있다. 실시예에 따라, 서버(30)는 하나의 영역에 상기 제2 UID를 저장하고 제1 UID를 상기 제2 UID에 매칭하여 저장할 수 있다. 실시예에 따라, 서버(30)는 두 개의 영역 각각에 상기 제1 UID 및 상기 제2 UID를 저장할 수 있다.When the user registration is completed in this way, at least one of the first UID as identification information of the smart card device 10 and the second UID as identification information of the virtual code generation device 20 for authentication may be stored in the server. That is, the server 30 may store at least one of the first UID and the second UID in an area allocated to the user within a verification algorithm upon user registration. Depending on the embodiment, the server 30 may store the first UID in one area and match and store a second UID with the first UID. According to an embodiment, the server 30 may store the second UID in one area, match the first UID to the second UID, and store the second UID. Depending on the embodiment, the server 30 may store the first UID and the second UID in each of the two areas.

또한, 사용자 등록 시에, 서버(30)는 상기 제1 UID 및 상기 제2 UID 뿐만 아니라 상기 스마트 카드 장치(10)와 관련된 상기 카드 데이터 및 상기 인증용가상코드 생성 장치(20)와 관련된 단말 데이터를 함께 저장할 수 있다.In addition, upon user registration, the server 30 performs not only the first UID and the second UID, but also the card data related to the smart card device 10 and terminal data related to the virtual code generation device 20 for authentication. can be stored together.

인증용가상코드 생성 장치(20)의 통신부(22)는 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나를 서버로 송신할 수 있다(S140).The communication unit 22 of the virtual code generation device 20 for authentication may transmit at least one of the virtual code for primary authentication and the virtual code for secondary authentication to the server (S140).

인증용가상코드 생성 장치(20)의 검증요청부(264)는 상기 서버(30)가 상기 적어도 하나에 대한 검증을 수행하도록 요청할 수 있다(S150).The verification request unit 264 of the virtual code generation device 20 for authentication may request the server 30 to verify at least one of the above (S150).

실시예에 따라, 스마트 카드 장치(10)가 출입통제용 출입카드인 경우, 즉, 사용자가 스마트 카드 장치(10)를 이용하여 오프라인 상에서 보안이 필요한 특정 공간으로 출입하거나, 온라인 상에서 특정 웹사이트 또는 앱에 로그인하는 경우, 서버(30)는 상기 1차 인증용가상코드에 대한 검증 요청을 수신할 수 있다. 구체적으로, 스마트 카드 장치(10)에서 생성된 1차 인증용가상코드는 자체적으로 서버(30)로 송신되어 사용자 인증에 이용될 수 있다. According to the embodiment, when the smart card device 10 is an access card for access control, that is, a user uses the smart card device 10 to access a specific space requiring security offline, or to a specific website or website online using the smart card device 10. When logging in to the app, the server 30 may receive a verification request for the virtual code for primary authentication. Specifically, the virtual code for primary authentication generated by the smart card device 10 may be transmitted to the server 30 itself and used for user authentication.

도 6을 참조하면, 인증용가상코드 생성 장치(20)(보다 상세하게, 검증요청부(264))는 스마트 카드 장치(10)에서 생성된 1차 인증용가상코드를 서버(30)로 송신하여 검증을 요청할 수 있다. 서버(30)는 검증 알고리즘을 기반으로 1차 인증용가상코드에 대한 검증을 수행하여 검증 결과를 인증용가상코드 생성 장치(20)로 송신할 수 있다. Referring to FIG. 6, the virtual code generation device 20 for authentication (more specifically, the verification request unit 264) transmits the virtual code for primary authentication generated by the smart card device 10 to the server 30. You can request verification by doing so. The server 30 may perform verification on the virtual code for primary authentication based on the verification algorithm and transmit the verification result to the virtual code generation device 20 for authentication.

이때, 인증용가상코드 생성 장치(20)는 1차 인증용가상코드를 서버(30)로 바로 전달하여 검증 요청을 할 수도 있지만, 사용자가 1차 인증용가상코드를 시각적으로 확인하거나 복사하여 다른 프로그램 또는 웹페이지에 입력하거나 붙여넣을 수 있도록 디스플레이부(미도시)에 출력할 수 있다. 인증용가상코드 생성 장치(20)는 사용자에 의해 입력되거나 붙여넣어진 1차 인증용가상코드를 서버(30)로 송신하여 검증 요청을 할 수 있다. At this time, the virtual code generation device 20 for authentication may directly transmit the virtual code for primary authentication to the server 30 and request verification, but the user may visually check or copy the virtual code for primary authentication to another It can be output to a display unit (not shown) so that it can be input or pasted into a program or web page. The apparatus 20 for generating a virtual code for authentication may request verification by transmitting the virtual code for primary authentication input or pasted by the user to the server 30 .

인증용가상코드 생성 장치(20)는 검증 결과에 따라 오프라인 출입통제 및 온라인 로그인 시 사용자 인증을 수행할 수 있다. 즉, 1차 인증용가상코드가 정상 코드이면, 사용자가 상기 보안이 필요한 특정 공간으로 출입하는 것을 허용하거나 상기 특정 웹사이트 또는 앱에 로그인하는 것을 허용할 수 있다.The virtual code generation device 20 for authentication may perform user authentication during offline access control and online login according to the verification result. That is, if the virtual code for primary authentication is a normal code, the user may be permitted to enter or exit a specific space requiring security or log in to the specific website or app.

실시예에 따라, 스마트 카드 장치(10)가 금융 결제용 카드인 경우, 즉, 사용자가 스마트 카드 장치(10)를 이용하여 금융거래를 진행하는 경우, 서버(30)는 상기 2차 인증용가상코드에 대한 검증 요청을 수신할 수 있다. 즉, 스마트 카드 장치(10)에서 생성된 1차 인증용가상코드는 인증용가상코드 생성 장치(20)로 송신되어 2차 인증용가상코드 생성에 이용될 수 있다.Depending on the embodiment, when the smart card device 10 is a card for financial payment, that is, when the user proceeds with a financial transaction using the smart card device 10, the server 30 performs a virtual transaction for secondary authentication. You can receive verification requests for your code. That is, the virtual code for primary authentication generated by the smart card device 10 may be transmitted to the virtual code generation device 20 for authentication and used to generate a virtual code for secondary authentication.

도 7을 참조하면, 인증용가상코드 생성 장치(20)(보다 상세하게, 코드생성부(262))는 스마트 카드 장치(10)에서 생성된 1차 인증용가상코드를 이용하여 2차 인증용가상코드를 생성할 수 있다. 인증용가상코드 생성 장치(20)(보다 상세하게, 검증요청부(264))는 생성된 2차 인증용가상코드를 서버(30)로 송신하여 검증을 요청할 수 있다. 서버(30)는 검증 알고리즘을 기반으로 2차 인증용가상코드에 대한 검증을 수행하여 검증 결과를 인증용가상코드 생성 장치(20)로 송신할 수 있다. Referring to FIG. 7 , the virtual code generation device 20 for authentication (more specifically, the code generator 262) uses the virtual code for primary authentication generated by the smart card device 10 for secondary authentication. Virtual code can be generated. The apparatus 20 for generating the virtual code for authentication (more specifically, the verification request unit 264) may transmit the generated virtual code for secondary authentication to the server 30 to request verification. The server 30 may perform verification on the virtual code for secondary authentication based on the verification algorithm and transmit the verification result to the virtual code generation device 20 for authentication.

이때, 인증용가상코드 생성 장치(20)는 2차 인증용가상코드 생성을 위한 시드 데이터를 획득하기 위해 서버(30)로 1차 인증용가상코드에 대한 검증 요청을 할 수 있다. 서버(30)는 검증 알고리즘을 기반으로 1차 인증용가상코드로부터 제1 코드, 제2 코드, 시간 데이터, 시크릿 값, 제1 UID 중 적어도 하나를 추출하여 인증용가상코드 생성 장치(20)로 전달할 수 있다. 인증용가상코드 생성 장치(20)는 제1 코드, 제2 코드, 시간 데이터, 시크릿 값, 제1 UID, 1차 인증용가상코드 중 적어도 하나를 시드 데이터로 하여 2차 인증용가상코드를 생성할 수 있다. 상술한 바와 같이, 2차 인증용가상코드 생성을 위한 1차 인증용가상코드에 대한 검증은 서버(30)에서 수행할 수도 있지만, 실시예에 따라 인증용가상코드 생성 장치(20)가 직접 해당 검증을 수행할 수도 있다. In this case, the device 20 for generating the virtual code for authentication may request verification of the virtual code for the first authentication to the server 30 in order to obtain seed data for generating the virtual code for the second authentication. The server 30 extracts at least one of a first code, a second code, time data, a secret value, and a first UID from the virtual code for primary authentication based on a verification algorithm, and sends the virtual code for authentication to the device 20. can be conveyed The virtual code generation device 20 for authentication uses at least one of a first code, a second code, time data, a secret value, a first UID, and a virtual code for primary authentication as seed data to generate a virtual code for secondary authentication can do. As described above, the verification of the virtual code for primary authentication for generating the virtual code for secondary authentication may be performed by the server 30, but according to the embodiment, the virtual code generation device 20 for authentication directly corresponds to the corresponding virtual code. Verification can also be performed.

인증용가상코드 생성 장치(20)는 검증 결과에 따라 금융 결제 시 사용자 인증을 수행할 수 있다. 즉, 2차 인증용가상코드가 정상 코드이면, 사용자가 금융거래를 진행하도록 할 수 있다.The virtual code generation device 20 for authentication may perform user authentication upon financial payment according to the verification result. That is, if the virtual code for secondary authentication is a normal code, the user can proceed with a financial transaction.

이하에서는, 인증용가상코드에 대한 검증 방법을 구체적으로 설명하도록 한다.Hereinafter, a verification method for the virtual code for authentication will be described in detail.

실시예에 따라, 서버(30)가 1차 인증용가상코드에 대한 검증 요청을 수신한 경우, 제1 인증용가상코드생성함수에 대응하는 검증 알고리즘을 이용하여 상기 1차 인증용가상코드를 기반으로 제1 UID가 저장된 영역을 탐색하여 제1 UID 를 추출할 수 있다.Depending on the embodiment, when the server 30 receives a verification request for the virtual code for primary authentication, the virtual code for primary authentication is based on the verification algorithm corresponding to the virtual code generation function for first authentication. The first UID may be extracted by searching for an area in which the first UID is stored.

이때 상술한 바와 같이 상기 1차 인증용가상코드는 복수의 세부코드를 포함하는데, 복수의 세부코드는, 제1 UID의 저장 영역 탐색의 시작지점을 설정하는 제1 코드와 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 제1 UID의 저장 영역으로의 탐색경로를 설정하는 제2 코드로 구성될 수 있다.At this time, as described above, the virtual code for primary authentication includes a plurality of detailed codes, and the plurality of detailed codes are the first code for setting the starting point of the storage area search of the first UID and the specific search method. It may be composed of a second code for setting a search path from the starting point to the storage area of the first UID.

제1 코드와 제2 코드는 인증용가상코드검증수단을 구비하는 서버(30) 내에서 1차 인증용가상코드를 검증하기 위한 상관관계를 가지나 인증용가상코드생성수단을 구비하는 스마트 카드 장치(10)는 보안성을 높이기 위해 제1 코드를 생성하는 제1 함수와 제2 코드를 생성하는 제2 함수를 세부코드생성함수로 포함할 뿐, 제1 코드와 제2 코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다.The first code and the second code have a correlation for verifying the first virtual code for authentication in the server 30 having a virtual code verification means for authentication, but a smart card device having a virtual code generation means for authentication ( 10) only includes a first function for generating a first code and a second function for generating a second code as detailed code generating functions to increase security, data for correlation between the first code and the second code may not include

또한, 일 실시예로, 1차 인증용가상코드가 제1 코드 및 제2 코드의 특정한 규칙에 따른 조합으로 생성되는 경우, 제1 코드와 제2 코드는 검증 알고리즘 내의 실제값(제1 UID)의 저장 영역을 탐색하기 위한 각각의 역할을 수행할 수 있다. 예를 들어, 제1 코드는 저장위치탐색의 시작지점을 설정하고, 제2 코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 제1 UID의 저장 영역으로의 탐색경로를 설정한다. 따라서 이후, 스마트 카드 장치(10)에서 단위카운트마다 정상적으로 생성된 인증용가상코드가 제공되면, 서버(30)는 제1 코드에 대응하는 시작지점으로부터 제2 코드에 상응하는 탐색경로에 따라 이동한 지점을 제1 UID가 저장된 영역으로 판단한다. In addition, as an embodiment, when the virtual code for primary authentication is generated by a combination of the first code and the second code according to a specific rule, the first code and the second code are actual values (first UID) in the verification algorithm. It can perform each role to search the storage area of. For example, the first code sets the starting point of the storage location search, and the second code sets the search path from the starting point to the storage area of the first UID according to a specific search method. Therefore, when the virtual code for authentication normally generated for each unit count is provided from the smart card device 10 thereafter, the server 30 moves from the starting point corresponding to the first code along the search path corresponding to the second code. The point is determined as an area where the first UID is stored.

구체적으로, 서버(30)는 검증 알고리즘을 이용하여 1차 인증용가상코드에 포함된 복수의 세부코드를 추출할 수 있다. 상기 1차 인증용가상코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 서버(30)는 1차 인증용가상코드 생성 시 사용된 세부코드결합함수와 동일한 함수를 적용하여 1차 인증용가상코드에서 복수의 세부코드를 추출할 수 있다. 예를 들어, 두 개의 세부코드(즉, 제1 코드 및 제2 코드)가 결합된 1차 인증용가상코드가 생성된 경우, 서버(30)는 1차 인증용가상코드의 문자배열에서 세부코드결합함수를 적용하여 제1 코드 및 제2 코드를 분리해낼 수 있다. 이때, 세부코드 간에는 상관관계를 포함할 수 있다.Specifically, the server 30 may extract a plurality of detailed codes included in the virtual code for primary authentication using a verification algorithm. The virtual code for primary authentication is generated by combining a plurality of detailed codes according to a specific rule. The server 30 may extract a plurality of detailed codes from the virtual code for primary authentication by applying the same function as the detailed code combining function used when generating the virtual code for primary authentication. For example, when a virtual code for primary authentication in which two detailed codes (ie, a first code and a second code) are combined is generated, the server 30 determines the detailed code from the character array of the virtual codes for primary authentication. The first code and the second code may be separated by applying a combination function. In this case, a correlation may be included between detailed codes.

1차 인증용가상코드가 제1 코드 및 제2 코드를 포함하는 경우, 세부코드 간에 상관관계를 가지는 일 실시예로, 서버(30)는 제1 코드에 대응하는 탐색의 시작지점을 결정하고, 상기 탐색시작지점으로부터 제2 코드에 상응하는 탐색경로에 따라 이동한 지점에 대응하는 값을 제1 UID로 간주할 수 있다. When the virtual code for primary authentication includes the first code and the second code, as an embodiment having a correlation between detailed codes, the server 30 determines a search starting point corresponding to the first code, A value corresponding to a point moved from the search start point along the search path corresponding to the second code may be regarded as the first UID.

또한, 다른 일 실시예로, 스마트 카드 장치(10)가 단위카운트마다 새로운 1차 인증용가상코드를 제공함에 따라, 서버(30)는 각 카운트마다 변경되는 제1 코드 및 제2 코드를 기반으로 시작지점과 탐색경로를 설정하여 제1 UID를 탐색할 수 있다.In addition, as another embodiment, as the smart card device 10 provides a new primary authentication virtual code for each unit count, the server 30 based on the first code and the second code changed for each count The first UID may be searched by setting a starting point and a search path.

또한, 일 실시예로, 서버(30)는 상관관계를 가지는 복수의 세부코드를 이용하여 제1 UID를 찾기 위해, 검증 알고리즘을 포함할 수 있다. 검증 알고리즘은 1차 인증용가상코드에 포함되는 각각의 세부코드 적용 시에 제1 UID 탐색이 가능하도록 하는 알고리즘이다. 예를 들어, 1차 인증용가상코드로부터 제1 UID의 탐색의 시작지점을 결정하는 제1 코드와 시작지점으로부터의 저장 영역의 방향을 제시하는 제2 코드를 포함하는 경우, 검증 알고리즘은 제1 코드에 대응되는 지점에서 제2 코드에 대응되는 방향을 지시할 때, 해당 위치에 제1 UID가 배치되도록 조절하는 알고리즘이다. 검증 알고리즘을 이용함에 따라, 서버(30)는 1차 인증용가상코드에 포함된 제1 코드와 제2 코드가 변경되어도 제1 UID를 찾을 수 있다.Also, as an embodiment, the server 30 may include a verification algorithm to find the first UID using a plurality of detailed codes having a correlation. The verification algorithm is an algorithm that makes it possible to search for the first UID when each detailed code included in the virtual code for primary authentication is applied. For example, if the first code for determining the starting point of the search for the first UID from the virtual code for primary authentication and the second code for presenting the direction of the storage area from the starting point are included, the verification algorithm is When a direction corresponding to a second code is indicated at a point corresponding to a code, the first UID is arranged at the corresponding location. As the verification algorithm is used, the server 30 may find the first UID even if the first code and the second code included in the virtual code for primary authentication are changed.

또한, 일 실시예로, 상기 1차 인증용가상코드가 상기 시간 데이터에 제1 OTP를 더한 제1 코드와, 상기 제1 코드에서 제1 UID를 제외한 제2 코드가 결합되어 생성된 경우, 서버(30)는 상기 제1 코드 값에서 상기 제2 코드 값을 빼서 실제값(즉, 제1 UID)을 추출할 수 있다. In addition, as an embodiment, when the virtual code for primary authentication is generated by combining a first code obtained by adding a first OTP to the time data and a second code excluding the first UID from the first code, the server (30) may extract an actual value (ie, a first UID) by subtracting the second code value from the first code value.

또한, 일 실시예로, 서버(30)는 상기 저장 영역을 탐색하여 추출된 제1 UID와 상기 제1 코드 값에서 상기 제2 코드 값을 빼서 추출된 제1 UID를 비교하여, 두 값이 동일하면 상기 1차 인증용가상코드가 정상적인 코드인 것으로 판단할 수 있다. 그러나, 이러한 비교 과정 없이도, 서버(30)는 각각의 값만으로도 해당 1차 인증용가상코드가 정상적인 코드인지를 판단할 수 있다(예를 들어, 추출된 값이 서버(30)의 DB 내 저장된 정보와 일치하는 지의 여부를 통해 판단).In addition, in one embodiment, the server 30 compares the first UID extracted by searching the storage area with the first UID extracted by subtracting the second code value from the first code value, and the two values are identical. Then, it can be determined that the virtual code for primary authentication is a normal code. However, even without such a comparison process, the server 30 can determine whether the corresponding virtual code for primary authentication is a normal code only with each value (for example, the extracted value is information stored in the DB of the server 30). judged by whether it matches).

실시예에 따라, 서버(30)가 2차 인증용가상코드에 대한 검증 요청을 수신한 경우, 제2 인증용가상코드생성함수에 대응하는 검증 알고리즘을 이용하여 상기 2차 인증용가상코드를 기반으로 제1 UID가 저장된 영역 및 제2 UID가 저장된 영역 중 적어도 하나를 탐색하여 제1 UID 및 제2 UID 중 적어도 하나를 추출할 수 있다.Depending on the embodiment, when the server 30 receives a verification request for the virtual code for secondary authentication, the virtual code for secondary authentication is based on the verification algorithm corresponding to the virtual code generation function for second authentication. At least one of the first UID and the second UID may be extracted by searching for at least one of the area where the first UID is stored and the area where the second UID is stored.

상기 제1 방식에서, 상기 2차 인증용가상코드는 상술한 바와 같이 제1 코드, 제2 코드 및 제3 코드를 결합하여 생성된다. 서버(30)는 제2 인증용가상코드생성함수에 대응하는 검증 알고리즘을 이용하여 상기 2차 인증용가상코드를 기반으로 제1 UID가 저장된 영역을 탐색하여 제1 UID 를 추출하고, 제2 UID가 저장된 영역을 탐색하여 제2 UID 를 추출 수 있다.In the first method, the virtual code for secondary authentication is generated by combining the first code, the second code, and the third code as described above. The server 30 searches an area where the first UID is stored based on the virtual code for second authentication using a verification algorithm corresponding to the virtual code generation function for second authentication, extracts the first UID, and extracts the second UID. The second UID may be extracted by searching for an area where is stored.

서버(30)는 검증 알고리즘을 이용하여 2차 인증용가상코드에 포함된 복수의 세부코드를 추출할 수 있다. 상기 2차 인증용가상코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 서버(30)는 2차 인증용가상코드 생성 시 사용된 세부코드결합함수와 동일한 함수를 적용하여 2차 인증용가상코드에서 복수의 세부코드를 추출할 수 있다. 예를 들어, 세 개의 세부코드(즉, 제1 코드, 제2 코드 및 제3 코드)가 결합된 2차 인증용가상코드가 생성된 경우, 서버(30)는 2차 인증용가상코드의 문자배열에서 세부코드결합함수를 적용하여 제1 코드, 제2 코드 및 제3 코드를 분리해낼 수 있다. 이때, 세부코드 간에는 상관관계를 포함할 수 있다.The server 30 may extract a plurality of detailed codes included in the virtual code for secondary authentication using a verification algorithm. The virtual code for secondary authentication is generated by combining a plurality of detailed codes according to a specific rule. The server 30 may extract a plurality of detailed codes from the virtual code for secondary authentication by applying the same function as the detailed code combining function used when generating the virtual code for secondary authentication. For example, when a virtual code for secondary authentication in which three detailed codes (ie, a first code, a second code, and a third code) are combined is generated, the server 30 determines the characters of the virtual code for secondary authentication. The first code, the second code, and the third code may be separated by applying the detailed code combining function in the array. In this case, a correlation may be included between detailed codes.

2차 인증용가상코드가 제1 코드, 제2 코드 및 제3 코드를 포함하는 경우, 세부코드 간에 상관관계를 가지는 일 실시예로, 서버(30)는 제1 코드에 대응하는 탐색의 시작지점을 결정하고, 상기 탐색시작지점으로부터 제2 코드에 상응하는 탐색경로에 따라 이동한 지점에 대응하는 값을 제1 UID로 간주할 수 있다. 그리고, 제1 코드에 대응하는 탐색의 시작지점을 결정하고, 상기 시작지점으로부터 제3 코드에 상응하는 탐색경로에 따라 이동한 지점에 대응하는 값을 제2 UID로 간주할 수 있다.When the virtual code for secondary authentication includes the first code, the second code, and the third code, as an embodiment having a correlation between the detailed codes, the server 30 sets the search starting point corresponding to the first code. , and a value corresponding to a point moved from the search start point along the search path corresponding to the second code may be regarded as the first UID. Then, a starting point of the search corresponding to the first code is determined, and a value corresponding to a point moved from the starting point along the search path corresponding to the third code may be regarded as the second UID.

또한, 다른 일 실시예로, 인증용가상코드 생성 장치(20)가 단위카운트마다 새로운 2차 인증용가상코드를 제공함에 따라, 서버(30)는 각 카운트마다 변경되는 제1 코드, 제2 코드 및 제3 코드를 기반으로 시작지점과 탐색경로를 설정하여 제1 UID 및 제2 UID를 탐색할 수 있다.In addition, as another embodiment, as the virtual code generation device 20 for authentication provides a new virtual code for secondary authentication for each unit count, the server 30 generates a first code and a second code that are changed for each count And it is possible to search for the first UID and the second UID by setting a starting point and a search path based on the third code.

또한, 일 실시예로, 서버(30)는 상관관계를 가지는 복수의 세부코드를 이용하여 제1 UID 및 제2 UID를 찾기 위해, 검증 알고리즘을 포함할 수 있다. 검증 알고리즘은 2차 인증용가상코드에 포함되는 각각의 세부코드 적용 시에 제1 UID 탐색 및 제2 UID 탐색이 가능하도록 하는 알고리즘이다. 예를 들어, 2차 인증용가상코드로부터 제1 UID 및 제2 UID의 탐색의 시작지점을 결정하는 제1 코드와 시작지점으로부터의 제1 UID 저장 영역의 방향을 제시하는 제2 코드와 시작지점으로부터의 제2 UID 저장 영역의 방향을 제시하는 제3 코드를 포함하는 경우, 검증 알고리즘은 제1 코드에 대응되는 지점에서 제2 코드에 대응되는 방향을 지시할 때 해당 위치에 제1 UID가 배치되도록 조절하고, 제1 코드에 대응되는 지점에서 제3 코드에 대응되는 방향을 지시할 때, 해당 위치에 제2 UID가 배치되도록 조절하는 알고리즘이다. 검증 알고리즘을 이용함에 따라, 서버(30)는 2차 인증용가상코드에 포함된 제1 코드, 제2 코드 및 제3 코드가 변경되어도 제1 UID 및 제2 UID를 찾을 수 있다.Also, as an embodiment, the server 30 may include a verification algorithm to find the first UID and the second UID using a plurality of detailed codes having a correlation. The verification algorithm is an algorithm that makes it possible to search for the first UID and the second UID when each detailed code included in the virtual code for secondary authentication is applied. For example, the first code for determining the starting point of the search for the first UID and the second UID from the virtual code for secondary authentication, the second code and the starting point for presenting the direction of the first UID storage area from the starting point In the case of including a third code suggesting a direction of the second UID storage area from, the verification algorithm places the first UID at the corresponding position when the direction corresponding to the second code is indicated at a point corresponding to the first code. It is an algorithm that adjusts so that the second UID is placed at the corresponding position when the direction corresponding to the third code is indicated at the point corresponding to the first code. As the verification algorithm is used, the server 30 can find the first UID and the second UID even if the first code, the second code, and the third code included in the virtual code for secondary authentication are changed.

또한, 일 실시예로, 상기 2차 인증용가상코드가 상기 시간 데이터에 제1 OTP를 더한 제1 코드와, 상기 제1 코드에서 제1 UID를 제외한 제2 코드와 상기 제1 코드에서 제2 UID를 제외한 제3 코드가 결합되어 생성된 경우, 서버(30)는 상기 제1 코드 값에서 상기 제2 코드 값을 빼서 실제값(즉, 제1 UID)을 추출하고, 상기 제1 코드 값에서 상기 제3 코드 값을 빼서 실제값(즉, 제2 UID)을 추출할 수 있다. Further, in one embodiment, the virtual code for secondary authentication is a first code obtained by adding a first OTP to the time data, a second code excluding a first UID from the first code, and a second code obtained by subtracting a first UID from the first code. When the third code except for the UID is combined and generated, the server 30 subtracts the second code value from the first code value to extract an actual value (ie, the first UID), and from the first code value An actual value (ie, the second UID) may be extracted by subtracting the third code value.

즉, 상기 서버(30)는 상기 제1 코드 및 상기 제2 코드를 기반으로 상기 제1 UID를 추출하여 상기 스마트 카드 장치(10)에 대한 검증을 수행하고, 상기 제1 코드 및 상기 제3 코드를 기반으로 상기 제2 UID를 추출하여 상기 인증용가상코드 생성 장치(20)에 대한 검증을 수행할 수 있다.That is, the server 30 extracts the first UID based on the first code and the second code, performs verification on the smart card device 10, and performs verification on the first code and the third code. It is possible to perform verification of the virtual code generation device 20 for authentication by extracting the second UID based on .

또한, 일 실시예로, 서버(30)는 상기 저장 영역을 탐색하여 추출된 제1 UID와 상기 제1 코드 값에서 상기 제2 코드 값을 빼서 추출된 제1 UID를 비교하여, 두 값이 동일하면 상기 2차 인증용가상코드에 대한 1차 검증을 완료하고(즉, 상기 스마트 카드 장치에 대한 검증), 상기 저장 영역을 탐색하여 추출된 제2 UID와 상기 제1 코드 값에서 상기 제3 코드 값을 빼서 추출된 제2 UID를 비교하여, 두 값이 동일하면 상기 2차 인증용가상코드에 대한 2차 검증을 완료하여(즉, 상기 인증용가상코드 생성 장치에 대한 검증), 상기 2차 인증용가상코드가 정상적인 코드인 것으로 판단할 수 있다. 그러나, 이러한 비교 과정 없이도, 서버(30)는 각각의 값만으로도 해당 2차 인증용가상코드가 정상적인 코드인지를 판단할 수 있다(예를 들어, 추출된 값이 서버(30)의 DB 내 저장된 정보와 일치하는 지의 여부를 통해 판단).In addition, in one embodiment, the server 30 compares the first UID extracted by searching the storage area with the first UID extracted by subtracting the second code value from the first code value, and the two values are identical. , the first verification of the virtual code for secondary authentication is completed (ie, verification of the smart card device), and the third code is extracted from the second UID and the first code value extracted by searching the storage area. The second UID extracted by subtracting the value is compared, and if the two values are the same, the second verification of the virtual code for second authentication is completed (ie, the verification of the virtual code generation device for authentication). It can be determined that the virtual code for authentication is a normal code. However, even without such a comparison process, the server 30 can determine whether the corresponding virtual code for secondary authentication is a normal code only with each value (for example, the extracted value is information stored in the DB of the server 30). judged by whether it matches).

상기 제2 방식에서, 상기 2차 인증용가상코드는 상술한 바와 같이 1차 인증용가상코드를 기반으로 생성된 제2 OTP 및 상기 제2 UID를 기반으로 생성된 제1 코드 및 제2 코드를 결합하여 생성된다. 서버(30)는 수신된 상기 2차 인증용가상코드에 포함된 상기 제2 OTP 및 검증용 제2 OTP의 비교를 통해 상기 2차 인증용가상코드의 검증을 수행할 수 있다. 여기서, 상기 검증용 제2 OTP는, 상기 제2 OTP 생성 시에 이용된 시드 데이터와 동일한 시드 데이터를 기반으로 상기 서버(30)에 의해 생성될 수 있다.In the second method, the virtual code for secondary authentication includes the first code and the second code generated based on the second OTP and the second UID generated based on the virtual code for primary authentication as described above. created by combining The server 30 may perform verification of the virtual code for secondary authentication by comparing the second OTP included in the received virtual code for secondary authentication with the second OTP for verification. Here, the second OTP for verification may be generated by the server 30 based on the same seed data as the seed data used when generating the second OTP.

구체적으로, 서버(30)는 상기 2차 인증용가상코드에서 상기 제1 코드와 상기 제2 코드를 분리하고, 분리된 상기 제1 코드와 상기 제2 코드를 기반으로 상기 제2 UID를 탐색하여, 함께 저장되어 있었던 카드 데이터(예를 들어, 시크릿 값)을 확인할 수 있다. 여기서, 세부코드를 분리하고 세부코드를 이용하여 실제값을 탐색하는 방법은 상술한 바와 같다.Specifically, the server 30 separates the first code and the second code from the virtual code for secondary authentication, searches for the second UID based on the separated first code and the second code, , card data (eg, secret value) stored together can be checked. Here, the method of separating the detailed code and searching for the actual value using the detailed code is as described above.

그런 다음, 서버(30)는 탐색된 제2 UID에 매칭되어 있는 제1 UID를 탐색할 수 있다. Then, the server 30 may search for a first UID that matches the searched second UID.

서버(30)는 이렇게 제2 UID를 통해 추출된 값들, 즉 시크릿 값 및 제1 UID와, 현재 시간 데이터를 이용하여 1차 인증용가상코드를 생성하고, 생성된 1차 인증용가상코드와 상기 시크릿 값 및 시간 데이터를 시드 데이터로 하여 검증용 제2 OTP를 생성할 수 있다.The server 30 generates a virtual code for primary authentication using the values extracted through the second UID, that is, the secret value, the first UID, and the current time data, and generates the virtual code for primary authentication and the virtual code for primary authentication. A second OTP for verification may be generated using the secret value and time data as seed data.

이렇게 생성된 검증용 제2 OTP와 상기 제2 인증용가상코드에 포함된 제2 OTP를 비교했을 때, 두 값이 동일하면 서버(30)는 상기 제2 인증용가상코드가 정상적인 코드인 것으로 판단할 수 있다. 즉, 상기 제2 OTP와 상기 검증용 제2 OTP가 동일하면, 시드 데이터로 사용된 값(1차 인증용가상코드와 상기 시크릿 값 및 시간 데이터)들이 전부 동일하고, 또한 1차 인증용가상코드가 동일하면 해당 값으로 생성되는 2차 인증용가상코드도 동일한 것이므로, 상기 스마트 카드 장치(10) 및 상기 인증용가상코드 생성 장치(20)가 정상적인 것으로 검증될 수 있는 것이다.When the generated second OTP for verification is compared with the second OTP included in the second virtual code for authentication, if the two values are the same, the server 30 determines that the second virtual code for authentication is a normal code. can do. That is, if the second OTP and the second OTP for verification are the same, the values used as seed data (virtual code for primary authentication, the secret value, and time data) are all the same, and also the virtual code for primary authentication If is the same, the virtual code for secondary authentication generated with the corresponding value is the same, so the smart card device 10 and the virtual code generation device 20 for authentication can be verified as normal.

이하에서는, 도 8을 참조하여, 스마트 카드 장치(10)에 의해 수행되는 인증용가상코드 기반 사용자 인증 방법에 대해 상세히 설명하도록 한다.Hereinafter, with reference to FIG. 8, a virtual code-based user authentication method performed by the smart card device 10 will be described in detail.

도 8을 참조하면, 스마트 카드 장치(10)는 카드 태깅을 통해 인증용가상코드 생성 장치로부터 시간 데이터를 수신하고(S210), 상기 수신된 시간 데이터를 기반으로 1차 인증용가상코드를 생성할 수 있다(S220).Referring to FIG. 8, the smart card device 10 receives time data from the virtual code generation device for authentication through card tagging (S210), and generates a first virtual code for authentication based on the received time data. It can (S220).

스마트 카드 장치(10)가 1차 인증용가상코드를 생성하는 것과, 사용자 인증용 장치(20)가 2차 인증용가상코드를 생성하는 것과, 서버(30)가 1차 인증용가상코드 및 2차 인증용가상코드 중 적어도 하나에 대한 검증을 수행하는 것은 상기 도 1 내지 도 7을 참조하여 설명한 바와 중복되므로 상세한 설명은 생략하도록 한다.The smart card device 10 generates a virtual code for primary authentication, the device 20 for user authentication generates a virtual code for secondary authentication, and the server 30 generates a virtual code for primary authentication and 2 Verification of at least one of the virtual codes for car authentication is redundant with the description with reference to FIGS. 1 to 7, so a detailed description thereof will be omitted.

한편, 본 발명의 스마트 카드 장치(10)는 금융 결제용 및 출입통제용의 기능을 함께 수행할 수 있다. 즉, 스마트 카드 장치(10)가 회사의 법인 카드이거나 또는 직원의 개인 카드인 경우 각 사용자는 해당 카드를 이용하여 회사의 출입카드로 사용할 수 있다.Meanwhile, the smart card device 10 of the present invention can perform both functions for financial settlement and access control. That is, when the smart card device 10 is a corporate card of a company or a personal card of an employee, each user can use the corresponding card as an access card of the company.

도 4 및 도 8에 도시된 단계들은 순차적으로 실행되는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 4 및 도 8에 기재된 단계들의 순서를 변경하여 실행하거나, 하나 이상의 단계를 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 4 및 도 8에 기재된 단계들은 시계열적인 순서로 한정되는 것은 아니다.Although the steps shown in FIGS. 4 and 8 are described as being executed sequentially, this is merely an example of the technical idea of this embodiment, and those skilled in the art to which this embodiment belongs can Since it is possible to change the order of the steps described in FIGS. 4 and 8 without departing from the essential characteristics of the example, or to execute one or more steps in parallel, various modifications and variations can be applied. The described steps are not limited to a chronological order.

이상에서 전술한 본 발명은 상기 인증용가상코드 생성 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체를 더 제공할 수 있다.The present invention described above may further provide a computer readable recording medium storing a computer program for executing the virtual code generation method for authentication.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The aforementioned program is C, C++, JAVA, machine language, etc. It may include a code coded in a computer language of. These codes may include functional codes related to functions defining necessary functions for executing the methods, and include control codes related to execution procedures necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, these codes may further include memory reference related codes for which location (address address) of the computer's internal or external memory should be referenced for additional information or media required for the computer's processor to execute the functions. there is. In addition, when the processor of the computer needs to communicate with any other remote computer or server in order to execute the functions, the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes for whether to communicate, what kind of information or media to transmit/receive during communication, and the like.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.Steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, implemented in a software module executed by hardware, or implemented by a combination thereof. A software module may include random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any form of computer readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains can be implemented in other specific forms without changing the technical spirit or essential features of the present invention. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

10: 스마트 카드 장치
12: NFC 모듈
14: IC 모듈
20: 인증용가상코드 생성 장치
22: 통신부
24: 메모리
26: 프로세서
262: 코드생성부
264: 검증요청부
30: 서버
10: smart card device
12: NFC module
14: IC module
20: virtual code generation device for authentication
22: Ministry of Communications
24: memory
26: processor
262: code generator
264: verification request unit
30: server

Claims (15)

인증용가상코드 생성 장치에 의해 수행되는 방법에 있어서,
IC 칩이 내장된 카드 태깅 시, 상기 카드로 시간 데이터를 송신하는 단계;
상기 시간 데이터를 기반으로 생성된 1차 인증용가상코드를 상기 카드로부터 수신하는 단계;
상기 1차 인증용가상코드를 시드 데이터로 활용하여 2차 인증용가상코드를 생성하는 단계;
상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나를 서버로 송신하는 단계; 및
상기 서버가 상기 적어도 하나에 대한 검증을 수행하도록 요청하는 단계;를 포함하고,
상기 1차 인증용가상코드는, 오프라인 출입 및 온라인 로그인에 활용되고,
상기 2차 인증용가상코드는, 금융결제에 활용되는, 인증용가상코드 생성 방법.
In the method performed by the virtual code generation device for authentication,
When tagging a card with a built-in IC chip, transmitting time data to the card;
receiving a first authentication virtual code generated based on the time data from the card;
generating a virtual code for secondary authentication by using the virtual code for primary authentication as seed data;
transmitting at least one of the virtual code for primary authentication and the virtual code for secondary authentication to a server; and
Including; requesting that the server perform verification for the at least one;
The virtual code for primary authentication is used for offline access and online login,
The method of generating a virtual code for authentication, wherein the virtual code for secondary authentication is used for financial settlement.
제1 항에 있어서,
상기 1차 인증용가상코드는, 복수의 코드를 포함하고,
상기 복수의 코드 중 제1 코드는, 상기 시간 데이터 및 제1 OTP를 기반으로 생성되고,
상기 복수의 코드 중 제2 코드는, 상기 제1 코드에서 상기 카드의 식별 정보인 제1 UID (user identification)를 제외하여 생성되는, 인증용가상코드 생성 방법.
According to claim 1,
The virtual code for primary authentication includes a plurality of codes,
A first code among the plurality of codes is generated based on the time data and the first OTP,
A second code among the plurality of codes is generated by excluding a first user identification (UID), which is identification information of the card, from the first code.
제2 항에 있어서,
상기 2차 인증용가상코드를 생성 단계는,
상기 제1 코드에서 상기 인증용가상코드 생성 장치의 식별 정보인 제2 UID를 제외하여 제3 코드를 생성하고,
상기 제1 코드, 상기 제2 코드 및 상기 제3 코드를 결합하여 상기 2차 인증용가상코드를 생성하는, 인증용가상코드 생성 방법.
According to claim 2,
In the step of generating the virtual code for secondary authentication,
generating a third code by excluding a second UID, which is identification information of the virtual code generation device for authentication, from the first code;
wherein the virtual code for secondary authentication is generated by combining the first code, the second code, and the third code.
제3 항에 있어서,
상기 카드는, 상기 제1 코드 및 상기 제2 코드를 기반으로 검증이 수행되고,
상기 인증용가상코드 생성 장치는, 상기 제1 코드 및 상기 제3 코드를 기반으로 검증이 수행되는, 인증용가상코드 생성 방법.
According to claim 3,
The card is verified based on the first code and the second code,
Wherein the virtual code generation device for authentication performs verification based on the first code and the third code.
제2 항에 있어서,
상기 2차 인증용가상코드를 생성 단계는,
상기 1차 인증용가상코드를 기반으로 제2 OTP를 생성하고,
상기 제2 OTP 및 상기 인증용가상코드 생성 장치의 식별 정보인 제2 UID를 기반으로 상기 2차 인증용가상코드를 생성하는, 인증용가상코드 생성 방법.
According to claim 2,
In the step of generating the virtual code for secondary authentication,
A second OTP is generated based on the virtual code for primary authentication;
The method of generating the virtual code for authentication, wherein the virtual code for secondary authentication is generated based on the second OTP and the second UID, which is identification information of the virtual code generation device for authentication.
제5 항에 있어서,
상기 2차 인증용가상코드는,
상기 2차 인증용가상코드에 포함된 상기 제2 OTP 및 검증용 제2 OTP의 비교를 통해 검증되고,
상기 검증용 제2 OTP는,
상기 제2 OTP 생성 시에 이용된 시드 데이터와 동일한 시드 데이터를 기반으로 상기 서버에 의해 생성된 것인, 인증용가상코드 생성 방법.
According to claim 5,
The virtual code for secondary authentication,
It is verified by comparing the second OTP included in the virtual code for secondary authentication and the second OTP for verification,
The second OTP for verification is,
The method of generating the virtual code for authentication, which is generated by the server based on the same seed data as the seed data used when generating the second OTP.
삭제delete 삭제delete 제1 항에 있어서,
상기 시간 데이터는,
APDU(Application Protocol Data Unit) 명령어와 결합된 형태인, 인증용가상코드 생성 방법.
According to claim 1,
The time data is
A virtual code generation method for authentication, which is a form combined with an APDU (Application Protocol Data Unit) command.
컴퓨터와 결합되어, 제1 항 내지 제6 항, 제9 항 중 어느 하나의 방법을 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램.A program stored in a computer readable recording medium to be combined with a computer to execute the method of any one of claims 1 to 6 and 9. 카드 태깅을 통해 인증용가상코드 생성 장치로부터 시간 데이터를 수신하는 NFC 모듈; 및
상기 수신된 시간 데이터를 기반으로 1차 인증용가상코드를 생성하는 IC 모듈;을 포함하고,
상기 1차 인증용가상코드는 2차 인증용가상코드 생성을 위한 시드 데이터로 활용되고,
상기 2차 인증용가상코드는 상기 인증용가상코드 생성 장치에 의해 생성되고,
상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나는, 서버에 의해 검증이 수행되도록 상기 인증용가상코드 생성 장치에 의해 상기 서버로 전송되고,
상기 1차 인증용가상코드는, 오프라인 출입 및 온라인 로그인에 활용되고,
상기 2차 인증용가상코드는, 금융결제에 활용되는, 스마트 카드 장치.
An NFC module for receiving time data from a device for generating a virtual code for authentication through card tagging; and
An IC module generating a virtual code for primary authentication based on the received time data;
The virtual code for primary authentication is used as seed data for generating a virtual code for secondary authentication,
The virtual code for secondary authentication is generated by the virtual code generation device for authentication;
At least one of the virtual code for primary authentication and the virtual code for secondary authentication is transmitted to the server by the virtual code generation device for authentication so that verification is performed by the server;
The virtual code for primary authentication is used for offline access and online login,
The virtual code for secondary authentication is used for financial settlement, the smart card device.
IC 칩이 내장된 카드 태깅 시, 상기 카드로 시간 데이터를 송신하고, 상기 시간 데이터를 기반으로 생성된 1차 인증용가상코드를 상기 카드로부터 수신하는 통신부;
상기 1차 인증용가상코드를 시드 데이터로 활용하여 2차 인증용가상코드를 생성하는 코드생성부; 및
상기 통신부를 통해 상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나를 서버로 송신하여, 상기 서버가 상기 적어도 하나에 대한 검증을 수행하도록 요청하는 검증요청부;를 포함하고,
상기 1차 인증용가상코드는, 오프라인 출입 및 온라인 로그인에 활용되고,
상기 2차 인증용가상코드는, 금융결제에 활용되는, 인증용가상코드 생성 장치.
a communication unit for transmitting time data to the card and receiving a virtual code for primary authentication generated based on the time data from the card when tagging a card having an IC chip;
a code generator for generating a virtual code for secondary authentication by using the virtual code for primary authentication as seed data; and
and a verification request unit for transmitting at least one of the virtual code for primary authentication and the virtual code for secondary authentication to a server through the communication unit and requesting that the server perform verification for the at least one,
The virtual code for primary authentication is used for offline access and online login,
The virtual code for secondary authentication is used for financial settlement, and the virtual code for authentication is generated.
서버에 의해 수행되는 방법에 있어서,
인증용가상코드 생성 장치로부터 1차 인증용가상코드 및 2차 인증용가상코드 중 적어도 하나를 수신하는 단계; 및
상기 1차 인증용가상코드 및 상기 2차 인증용가상코드 중 적어도 하나에 대한 검증을 수행하는 단계;를 포함하고,
상기 2차 인증용가상코드가 복수의 코드를 포함하는 경우, 상기 검증 수행 단계는,
상기 복수의 코드 중 제1 코드 및 제2 코드를 기반으로 카드의 식별 정보인 제1 UID (user identification)를 추출하여 상기 카드에 대한 검증을 수행하고,
상기 복수의 코드 중 상기 제1 코드 및 제3 코드를 기반으로 상기 인증용가상코드 생성 장치의 식별 정보인 제2 UID를 추출하여 상기 인증용가상코드 생성 장치에 대한 검증을 수행하고,
상기 1차 인증용가상코드는 상기 카드에서 생성되고, 상기 2차 인증용가상코드는 상기 인증용가상코드 생성 장치에서 생성되고,
상기 1차 인증용가상코드는, 오프라인 출입 및 온라인 로그인에 활용되고,
상기 2차 인증용가상코드는, 금융결제에 활용되며,
상기 1차 인증용가상코드는, 상기 2차 인증용가상코드 생성을 위한 시드 데이터로 활용되는, 인증용가상코드 검증 서버.
In the method performed by the server,
receiving at least one of a virtual code for primary authentication and a virtual code for secondary authentication from a virtual code generation device for authentication; and
Including; verifying at least one of the virtual code for primary authentication and the virtual code for secondary authentication;
If the virtual code for secondary authentication includes a plurality of codes, the verification step,
Based on a first code and a second code among the plurality of codes, a first user identification (UID), which is identification information of the card, is extracted and the card is verified;
Extracting a second UID, which is identification information of the virtual code generation device for authentication, based on the first code and the third code among the plurality of codes, and verifying the virtual code generation device for authentication;
The virtual code for primary authentication is generated by the card, and the virtual code for secondary authentication is generated by the virtual code generation device for authentication;
The virtual code for primary authentication is used for offline access and online login,
The virtual code for secondary authentication is used for financial settlement,
The virtual code verification server for authentication, wherein the virtual code for primary authentication is used as seed data for generating the virtual code for secondary authentication.
제13 항에 있어서,
상기 2차 인증용가상코드가 제2 OTP 및 상기 제2 UID를 포함하는 경우, 상기 검증 수행 단계는,
상기 제2 OTP 생성 시에 이용된 시드 데이터와 동일한 시드 데이터를 기반으로 검증용 제2 OTP를 생성하고,
상기 2차 인증용가상코드에 포함된 상기 제2 OTP 및 상기 검증용 제2 OTP를 비교하고,
상기 제2 OTP 및 상기 검증용 제2 OTP가 동일하면 상기 카드 및 상기 인증용가상코드 생성 장치에 대한 검증을 완료하는, 인증용가상코드 검증 서버.
According to claim 13,
When the virtual code for secondary authentication includes the second OTP and the second UID, the verification step,
Generating a second OTP for verification based on the same seed data as the seed data used when generating the second OTP;
Compare the second OTP included in the virtual code for secondary authentication and the second OTP for verification;
If the second OTP and the second OTP for verification are the same, the verification of the card and the virtual code generation device for verification is completed.
제13 항에 있어서,
상기 1차 인증용가상코드가 수신된 경우,
상기 검증 수행 단계는,
제1 검증 알고리즘을 이용하여 상기 1차 인증용가상코드를 기반으로 카드의 식별 정보인 제1 UID (user identification)를 추출하여 상기 카드에 대한 검증을 수행하는, 인증용가상코드 검증 서버.
According to claim 13,
When the virtual code for primary authentication is received,
In the verification step,
A virtual code verification server for authentication, which extracts a first user identification (UID), which is identification information of a card, based on the virtual code for primary authentication using a first verification algorithm and performs verification of the card.
KR1020220021278A 2021-03-04 2022-02-18 Smart card apparatus, apparatus for generating virtual code for authentication, method for generating virtual code for authentication using the same, server for verifying virtual code for authentication KR102479730B1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
PCT/KR2022/002954 WO2022186605A1 (en) 2021-03-04 2022-03-02 Smart card device, device for generating virtual code for authentication, method for generating virtual code for authentication using same, and server for verifying virtual code for authentication
JP2022572460A JP7509923B2 (en) 2021-03-04 2022-03-02 Smart card device, authentication virtual code generating device, authentication virtual code generating method using the same, and authentication virtual code verification server
EP22726576.6A EP4083887B1 (en) 2021-03-04 2022-03-02 Smart card device, device for generating virtual code for authentication, method for generating virtual code for authentication using same, and server for verifying virtual code for authentication
CN202280004617.3A CN115668255A (en) 2021-03-04 2022-03-02 Smart card device, virtual code generation device for authentication, virtual code generation method for authentication using virtual code generation device for authentication, and virtual code verification server for authentication
US17/741,430 US20220286449A1 (en) 2021-03-04 2022-05-10 Smart card device, device for generating virtual code for authentication, method of generating virtual code for authentication using the same, and server for verifying virtual code for authentication
KR1020220176606A KR20230008657A (en) 2021-03-04 2022-12-16 Method and apparatus for generating virtual code for authentication for other purposes
JP2024099774A JP2024120050A (en) 2021-03-04 2024-06-20 Smart card device, authentication virtual code generating device, authentication virtual code generating method using the same, and authentication virtual code verification server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210029035 2021-03-04
KR1020210029035 2021-03-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220176606A Division KR20230008657A (en) 2021-03-04 2022-12-16 Method and apparatus for generating virtual code for authentication for other purposes

Publications (2)

Publication Number Publication Date
KR20220125161A KR20220125161A (en) 2022-09-14
KR102479730B1 true KR102479730B1 (en) 2022-12-20

Family

ID=83278671

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020210098432A KR102502339B1 (en) 2021-03-04 2021-07-27 Terminal, card device and method for generating virtual security code based on card data using near field communication
KR1020220021278A KR102479730B1 (en) 2021-03-04 2022-02-18 Smart card apparatus, apparatus for generating virtual code for authentication, method for generating virtual code for authentication using the same, server for verifying virtual code for authentication
KR1020220027774A KR20220125186A (en) 2021-03-04 2022-03-04 Smart card device, apparatus and method for generating virtual security code through determining whether the data matches

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210098432A KR102502339B1 (en) 2021-03-04 2021-07-27 Terminal, card device and method for generating virtual security code based on card data using near field communication

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220027774A KR20220125186A (en) 2021-03-04 2022-03-04 Smart card device, apparatus and method for generating virtual security code through determining whether the data matches

Country Status (1)

Country Link
KR (3) KR102502339B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102073883B1 (en) * 2017-08-09 2020-03-02 주식회사 센스톤 System, method and program for controlling device by virtual code, controlled device, and the means for making control signal

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101140639B1 (en) * 2005-02-21 2012-05-03 주식회사 비즈모델라인 IC Card, Mobile Devices, Information Storing Medium, System and Method for Processing Exchange and Recording Medium
KR101316466B1 (en) 2012-11-20 2013-10-08 신한카드 주식회사 Mobile transaction system using dynamic track 2 data and method using the same
KR101508320B1 (en) * 2014-06-30 2015-04-07 주식회사 인포바인 Apparatus for issuing and generating one time password using nfc card, and method using the same
KR102005549B1 (en) * 2018-08-09 2019-07-30 주식회사 센스톤 System, method and program for providing financial transaction by virtual code, vritual code generator and vritual code verification device
EP4421717A2 (en) * 2018-08-09 2024-08-28 SSenStone Inc. User authentication method and program using virtual authentication code

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102073883B1 (en) * 2017-08-09 2020-03-02 주식회사 센스톤 System, method and program for controlling device by virtual code, controlled device, and the means for making control signal

Also Published As

Publication number Publication date
KR20220125186A (en) 2022-09-14
KR20220125128A (en) 2022-09-14
KR20220125161A (en) 2022-09-14
KR102502339B1 (en) 2023-02-23

Similar Documents

Publication Publication Date Title
KR102525471B1 (en) Method and system for managing user access using virtual code for authentication
KR20200038916A (en) System, method and program for providing financial transaction by vritual card number, vritual card number generator and vritual card number verification device
KR102363940B1 (en) Method and system for authengicating user using virtual code for authentication
KR102501750B1 (en) Method and system for authengicating user using virtual code for authentication
KR20240121701A (en) Method and apparatus for approving procedure based on virtual authentication code
KR20230008657A (en) Method and apparatus for generating virtual code for authentication for other purposes
JP2024099552A (en) Device and method for virtual authentication code-based process authorization
KR20230096928A (en) Smart card device, apparatus and method for generating virtual security code through determining whether the data matches
KR20230030606A (en) Apparatus for generating virtual security code based on card tagging
KR102479730B1 (en) Smart card apparatus, apparatus for generating virtual code for authentication, method for generating virtual code for authentication using the same, server for verifying virtual code for authentication
JP7509923B2 (en) Smart card device, authentication virtual code generating device, authentication virtual code generating method using the same, and authentication virtual code verification server
JP7338043B2 (en) User authentication method using authentication virtual code and system therefor
US20240020704A1 (en) Method for registering user in holderless card by using authentication virtual code
KR20230131434A (en) Method for registering user in holderless card using virtual code for authentication
KR20170072654A (en) Smart banking apparatus and method for enhanced security