WO2022186681A1 - Terminal, card device, and method for generating card data-based virtual security code by using nfc - Google Patents

Terminal, card device, and method for generating card data-based virtual security code by using nfc Download PDF

Info

Publication number
WO2022186681A1
WO2022186681A1 PCT/KR2022/095022 KR2022095022W WO2022186681A1 WO 2022186681 A1 WO2022186681 A1 WO 2022186681A1 KR 2022095022 W KR2022095022 W KR 2022095022W WO 2022186681 A1 WO2022186681 A1 WO 2022186681A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual security
security code
code
tag information
data
Prior art date
Application number
PCT/KR2022/095022
Other languages
French (fr)
Korean (ko)
Inventor
유창훈
Original Assignee
주식회사 센스톤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020210098432A external-priority patent/KR102502339B1/en
Application filed by 주식회사 센스톤 filed Critical 주식회사 센스톤
Publication of WO2022186681A1 publication Critical patent/WO2022186681A1/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/385Payment protocols; Details thereof using an alias or single-use codes
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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
    • 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
    • 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/355Personalisation of cards for use
    • 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
    • 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
    • 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
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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

Abstract

The present invention relates to a terminal, a card device, and a method for generating a device for generating a card data-based virtual security code by using NFC. According to the present invention, a virtual security code required for user authentication can be generated by using card data obtained on the basis of an NFC scheme even without a separate OTP device. In addition, according to the present invention, multiple pieces of tag information are stored in an NDEF form in a smart card including card data, so that NFC data, which is card data, can be obtained without being limited by the type of user terminal, and accordingly, an OTP can be generated without being limited by the type of operating system S of a user terminal.

Description

NFC를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 단말기, 카드 장치 및 그 방법Terminal, card device and method for generating virtual security code based on card data using NFC
본 발명은 NFC를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 단말기, 카드 장치 및 방법에 대한 것이다. The present invention relates to a terminal, a card device and a method for generating a virtual security code based on card data using NFC.
보다 구체적으로 NFC 태그를 이용하여 획득한 카드데이터와 시간데이터를 기반으로 가상보안코드를 생성하는 장치 및 방법에 관한 것이다.More specifically, it relates to an apparatus and method for generating a virtual security code based on card data and time data obtained using an NFC tag.
코드형태 데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌 번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터이다.Coded data is used in many areas. In addition to the card number and account number used for payment, the IPIN number and resident registration number for user identification are code-type data.
그러나 이러한 코드데이터를 이용하는 과정에서 유출되는 사고가 많이 발생한다. 카드번호의 경우, 카드 표면에 실제카드번호가 그대로 기재되어 있어서 타인에게 시각적으로 유출되며, 마그네틱을 이용한 결제 시에 카드번호가 그대로 POS장치로 전달되면서 유출된다.However, many leaks occur in the process of using such code data. 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 the card number is leaked as it is delivered to the POS device when making a payment using a magnet.
실제코드가 그대로 유출되지 않도록 하기 위해 가상코드를 이용하고자 하는 시도가 많았으나, 가상코드에 대응되는 실제코드를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다. There have been many attempts to use the virtual code to prevent the actual code from being leaked, but data for identifying the user is required to search for the actual code corresponding to the virtual code.
그러나 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, and in particular, in the case of a user terminal, there is a security vulnerability due to leakage of seed data used for OTP generation.
따라서 많은 사용자가 소지하고 있는 카드의 카드 데이터를 기반으로 사용자 인증에 필요한 가상 보안 코드를 생성하는 것과 같이 OTP코드를 생성하되, 별도의 OTP생성 장치를 필요로 하지 않고 동시에 시드 데이터의 유출되지 않도록 하여 보안을 높이는 방안이 필요하다. 그러나 아직까지 이에 대한 적절한 방안이 제시되지 못하는 실정이다.Therefore, OTP code is generated like generating a virtual security code required for user authentication based on the card data of the card possessed by many users. We need a way to increase security. However, an appropriate method for this has not yet been proposed.
상술한 바와 같은 문제점을 해결하기 위한 본 발명은 NFC를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 단말기, 카드 장치 및 그 방법을 제공할 수 있다.The present invention for solving the above-described problems can provide a terminal, a card device, and a method for generating a virtual security code based on card data using NFC.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.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 following description.
상술한 과제를 해결하기 위한 본 발명에 따른 NFC를 이용한 카드데이터 기반의 가상보안코드 생성방법은, 사용자 단말기가 스마트 카드로부터 가상 보안 코드의 생성에 필요한 시드 데이터를 획득하는 단계; 상기 사용자 단말기가 상기 시드 데이터 및 시간 데이터를 기반으로, 가상 보안 코드를 생성하는 단계; 및 상기 가상 보안 코드를 서버로 송신하여 사용자 인증을 요청하는 단계를 포함하는 것을 특징으로 한다.A method for generating a virtual security code based on card data using NFC according to the present invention for solving the above-mentioned problems, the method comprising: obtaining, by a user terminal, seed data necessary for generating a virtual security code from a smart card; generating, by the user terminal, a virtual security code based on the seed data and time data; and transmitting the virtual security code to a server to request user authentication.
이때, 상기 스마트 카드는, 복수의 태그 정보를 포함하고, 상기 복수의 태그 정보는, 상기 스마트 카드 내에서 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역에 분리되어 저장되며, 상기 획득 단계는, 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하는 단계; 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하는 단계; 및 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드 데이터로 획득하는 단계를 포함할 수 있다.In this case, the smart card includes a plurality of tag information, and the plurality of tag information is stored separately in a plurality of storage areas allocated for each type of tag information in the smart card, and the acquiring step includes: identifying at least one type of tag information related to the virtual security code from among the types of tag information; identifying at least one storage area corresponding to the identified tag information type among the plurality of storage areas; and reading tag information stored in the identified storage area from among the plurality of tag information and obtaining the seed data as the seed data.
한편, 상기 복수의 태그 정보는, NDEF(NFC Data Exchange Format)의 형식으로 상기 복수의 저장 영역에 분리되어 저장되고, 상기 시드 데이터는, 상기 사용자 단말기에 상기 스마트 카드가 태깅될 경우, NFC방식을 기초로 획득될 수 있다.On the other hand, the plurality of tag information is stored separately in the plurality of storage areas in the format of NDEF (NFC Data Exchange Format), and the seed data is, when the smart card is tagged in the user terminal, NFC method. can be obtained on the basis of
또한, 상기 복수의 태그 정보는, 상기 태그 정보의 유형에 따라 설정된 상기 사용자 단말기의 각각의 태그 정보의 사용 순서 정보와 매칭되어 상기 복수의 저장 영역에 분리되어 저장되거나, 또는 텍스트 형식으로 상기 복수의 저장 영역에 분리되어 저장될 수 있다.In addition, the plurality of tag information is stored separately in the plurality of storage areas by matching with use order information of each tag information of the user terminal set according to the type of the tag information, or the plurality of pieces of tag information are stored in a text format. It may be stored separately in the storage area.
또한, 상기 식별된 태그 정보 유형은, 상기 사용자 단말기에서 요청한 금융 거래 유형을 포함하고, 상기 시드 데이터는, 상기 복수의 저장 영역 중에서 상기 사용자 단말기에서 요청한 금융 거래 유형에 해당하는 적어도 하나의 저장 영역에 저장된 태그 정보로부터 획득될 수 있다.In addition, the identified tag information type includes a financial transaction type requested by the user terminal, and the seed data is stored in at least one storage area corresponding to the financial transaction type requested by the user terminal from among the plurality of storage areas. It can be obtained from stored tag information.
또한, 본 발명에 따른 NFC를 이용한 카드데이터 기반의 가상보안코드 생성방법은, 상기 사용자 단말기가 상기 획득된 시드 데이터를 기반으로 상기 가상 보안 코드를 생성하여 서버로 송신하는 단계; 및 상기 서버로부터 상기 가상 보안 코드를 검증받는 단계;를 더 포함하고, 상기 서버는, 상기 가상 보안 코드를 수신한 시간 데이터 및 상기 가상 보안 코드의 시간 데이터를 비교하여 상기 가상 보안 코드를 검증할 수 있다.In addition, the method for generating a virtual security code based on card data using NFC according to the present invention comprises the steps of: generating, by the user terminal, the virtual security code based on the obtained seed data and transmitting the virtual security code to a server; and verifying the virtual security code from the server, wherein the server may verify the virtual security code by comparing time data of the virtual security code with time data at which the virtual security code is received have.
이때, 상기 서버는, 상기 가상 보안 코드를 기반으로 사용자 식별 정보의 저장 위치를 탐색함으로써 상기 사용자 식별 정보를 추출하고, 상기 추출된 사용자 식별 정보를 기반으로 사용자 인증을 수행하며, 상기 가상 보안 코드는, 복수의 세부코드를 포함하고, 상기 복수의 세부코드는, 상기 사용자 식별 정보의 저장 위치 탐색의 시작지점을 설정하는 제1코드; 및 특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 사용자 식별 정보의 저장위치로의 탐색경로를 설정하는 제2코드를 포함할 수 있다.At this time, the server extracts the user identification information by searching for a storage location of the user identification information based on the virtual security code, and performs user authentication based on the extracted user identification information, and the virtual security code is , a plurality of detailed codes, wherein the plurality of detailed codes include: a first code for setting a starting point of a search for a storage location of the user identification information; and a second code for setting a search path from the starting point to a storage location of the user identification information according to a specific search method.
또한, 상기 스마트 카드는, 상기 가상 보안 코드 생성을 위한 프로그램의 실행 데이터를 포함한 제1 태그 정보를 상기 복수의 저장 영역 중 제1 저장 영역에 저장하고, 상기 시드 데이터를 포함하는 제2 태그 정보를 상기 복수의 저장 영역 중 제2 저장 영역에 저장할 수 있다. In addition, the smart card stores first tag information including execution data of a program for generating the virtual security code in a first storage area among the plurality of storage areas, and stores second tag information including the seed data It may be stored in a second storage area among the plurality of storage areas.
상술한 과제를 해결하기 위한 본 발명에 따른 NFC를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 카드 장치는, 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역을 구비한 IC칩; 및 사용자 단말기와 태깅 시에 NFC 기반의 통신을 수행하는 통신부;를 포함하고, 상기 복수의 저장 영역에는, 상기 사용자 단말기에서 가상 보안 코드를 생성하는데 필요한 시드 데이터를 포함한 복수의 태그 정보가 분리되어 각각 저장되며, 상기 시드 데이터는, 상기 사용자 단말기와 태깅 시에 상기 NFC 기반의 통신을 통해 상기 사용자 단말기로 제공되는 것을 특징으로 한다.A card device for generating a virtual security code based on card data using NFC according to the present invention for solving the above problems includes: an IC chip having a plurality of storage areas allocated to each type of tag information; and a communication unit for performing NFC-based communication with the user terminal during tagging, wherein a plurality of tag information including seed data required for generating a virtual security code in the user terminal is separated in the plurality of storage areas, each It is stored, and the seed data is characterized in that it is provided to the user terminal through the NFC-based communication when tagging with the user terminal.
또한, 상기 가상 보안 코드는, 상기 시드 데이터 및 시간 데이터를 기반으로 상기 사용자 단말기에 의해 생성되어 사용자 인증을 위해 서버로 송신될 수 있다.Also, the virtual security code may be generated by the user terminal based on the seed data and time data and transmitted to the server for user authentication.
또한, 상기 시드 데이터는, 상기 사용자 단말기에 의해 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형이 식별되고, 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역이 식별되고, 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보가 독출되어 획득될 수 있다.In addition, in the seed data, at least one tag information type related to the virtual security code is identified by the user terminal among types of the tag information, and at least one corresponding to the identified tag information type among the plurality of storage areas. One storage area may be identified, and tag information stored in the identified storage area may be read and obtained from among the plurality of tag information.
상술한 과제를 해결하기 위한 본 발명에 따른 NFC를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 단말기는, 가상 보안 코드의 생성에 필요한 시드 데이터를 제공하는 스마트 카드와 태깅 시에 NFC 기반의 통신을 수행하는 통신부; 및 상기 통신부를 통해 상기 시드 데이터를 획득하고, 상기 시드 데이터 및 시간 데이터를 기반으로 상기 가상 보안 코드를 생성하며, 상기 가상 보안 코드를 서버로 송신하여 사용자 인증을 요청하는 제어부;를 포함하는 것을 특징으로 한다.A terminal for generating a virtual security code based on card data using NFC according to the present invention for solving the above-mentioned problems, NFC-based communication at the time of tagging with a smart card that provides seed data necessary for generating a virtual security code communication unit to perform; and a control unit that obtains the seed data through the communication unit, generates the virtual security code based on the seed data and time data, and transmits the virtual security code to a server to request user authentication. do it with
또한, 복수의 태그 정보는, 상기 스마트 카드 내에서 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역에 분리되어 저장되며, 상기 제어부는, 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하고, 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하고, 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드 데이터로 획득할 수 있다.In addition, a plurality of tag information is stored separately in a plurality of storage areas each allocated for each type of tag information in the smart card, and the controller includes at least one of the types of tag information related to the virtual security code. Identifies a tag information type, identifies at least one storage area corresponding to the identified tag information type from among the plurality of storage areas, reads tag information stored in the identified storage area from among the plurality of tag information, and It can be obtained as seed data.
상기와 같은 본 발명에 따르면 사용자는 별도의 OTP 장치 없이도 NFC 방식을 기초로 획득한 카드데이터로 사용자 인증에 필요한 가상보안코드를 생성할 수 있다. According to the present invention as described above, the user can generate a virtual security code required for user authentication with card data obtained based on the NFC method without a separate OTP device.
이때, 카드데이터를 포함하는 스마트카드 내에는 복수의 태그 정보가 NDEF 형태로 저장됨으로써, 사용자 단말기의 유형에 구속되지 않고, 카드데이터인 NFC 데이터의 획득이 가능하다. 이를 통해, 본 발명의 사용자 단말기의 OS의 유형에 구속되지 않고 OTP의 생성이 가능하다. In this case, since a plurality of tag information is stored in the smart card including card data in the form of NDEF, it is possible to obtain NFC data, which is card data, without being limited by the type of the user terminal. Through this, OTP generation is possible without being limited by the type of OS of the user terminal of the present invention.
한편, 복수의 태그 정보는 태그 정보의 유형에 따라 설정된 사용자 단말기에서의 사용 순서 정보와 매칭되므로, 사용자 단말기는 서버와의 통신을 통해 수행되는 명령어, 프로세스 등에 상응하는 적절한 태그 정보의 독출이 가능하다. On the other hand, since the plurality of tag information matches the use order information in the user terminal set according to the type of tag information, the user terminal can read appropriate tag information corresponding to a command, process, etc. performed through communication with the server. .
또한 상기 본 발명에 의하면, 가상 보안 코드 생성 및 사용자 식별 정보 저장공간 탐색을 위한 알고리즘이 추가되면 되므로, 기존의 프로세스를 그대로 유지할 수 있다. 예를 들어, 금융거래 서비스를 제공하는 애플리케이션에서 중복 생성되지 않는 가상 보안 코드를 생성하여 제공하는 경우, POS장치와 PG사서버는 그대로 유지되어 가상 보안 코드를 서버로 전달하고, 서버가 가상 보안 코드에 상응하는 사용자 식별 정보의 저장영역을 탐색하여 결제를 진행할 수 있다. 이를 통해, 보안성을 높이기 위해 기존프로세스 내에서 변경되어야 하는 부분을 최소화할 수 있고, 사용자는 보안성 향상을 위한 별도 단계를 수행하지 않아도 된다.In addition, according to the present invention, since an algorithm for generating a virtual security code and searching for a user identification information storage space is added, the existing process can be maintained as it is. For example, if an application that provides financial transaction services generates and provides a virtual security code that is not duplicated, the POS device and PG company server are maintained as they are, and the virtual security code is delivered to the server, and the server sends the virtual security code to the virtual security code. The payment may be performed by searching the storage area of the corresponding user identification information. Through this, it is possible to minimize the part that needs to be changed in the existing process to increase security, and the user does not need to perform a separate step for improving security.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.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 following description.
도 1은 본 발명의 일 실시예에 따른 카드데이터 기반의 가상보안코드를 생성하는 시스템의 구성도이다. 1 is a block diagram of a system for generating a virtual security code based on card data according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 스마트 카드의 개략적인 구성도이다.2 is a schematic configuration diagram of a smart card according to an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 NDEF형식으로 저장된 태그 정보에 관한 예시도이다. 3 is an exemplary diagram of tag information stored in an NDEF format according to an embodiment of the present invention.
도 4는 타입 4 태그 NDEF 구조를 나타낸 도면이다.4 is a diagram illustrating a type 4 tag NDEF structure.
도 5는 텍스트 RTD(Record Type Definition)를 위한 타입 4의 NDEF 파일 예를 나타낸 도면이다.5 is a diagram illustrating an example of a type 4 NDEF file for a text RTD (Record Type Definition).
도 6은 본 발명의 일 실시예에 따른 사용자 단말기의 구성도이다.6 is a block diagram of a user terminal according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 NFC를 이용한 카드데이터 기반의 가상 보안 코드 생성 방법에 관한 개략적인 순서도이다. 7 is a schematic flowchart of a method for generating a virtual security code based on card data using NFC according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 시드 데이터를 획득하는 방법의 개략적인 순서도이다.8 is a schematic flowchart of a method for obtaining seed data according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 가상보안코드를 검증하는 방법의 개략적인 순서도이다. 9 is a schematic flowchart of a method of verifying a virtual security code according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 가상보안코드를 기반으로 사용자를 인증하는 방법의 개략적인 순서도이다.10 is a schematic flowchart of a method for authenticating a user based on a virtual security code according to an embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail 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, and only these embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully inform those skilled in the art of the scope of the present invention, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural, unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, 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 elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly specifically defined.
본 명세서에서 "문자"는 코드를 구성하는 구성요소로서, 대문자 알파벳, 소문자 알파벳, 숫자 및 특수문자 등의 전부 또는 일부를 포함한다.In the present specification, "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 character string in which characters are listed.
본 명세서에서 "가상 보안 코드"는 사용자 인증을 위해 임시적으로 생성되며 단위시간마다 변경되는 랜덤코드[일 예로, OTP(One Time Password)]로서, 문자로 이루어진 특정한 자릿수의 코드를 포함할 수 있다. 가상 보안 코드는 본 발명의 일 실시예에 따라서 서버에 저장된 사용자의 식별 정보를 탐색하는데 이용될 수 있다. In the present specification, the "virtual security code" is a random code (eg, One Time Password (OTP)) that is temporarily generated for user authentication and is changed every unit time, and may include a code of a specific number of characters. The virtual security code may be used to retrieve the user's identification information stored in the server according to an embodiment of the present invention.
또한, 상기 "가상 보안 코드"는 상기 사용자 인증을 위해 임시적으로 생성되는 인증용 가상코드(OTAC: One Time Authentication Code) 및 상기 인증용 가상 코드를 통해 상기 사용자의 1차적 인증이 수행된 후에 추가적으로 2차 인증에 이용되는 랜덤코드[일 예로, OTP(One Time Password)]를 포함할 수도 있다.In addition, the "virtual security code" is additionally 2 after the primary authentication of the user is performed through the authentication virtual code (OTAC: One Time Authentication Code) temporarily generated for the user authentication and the authentication virtual code It may include a random code (eg, One Time Password (OTP)) used for car authentication.
본 명세서에서 "스마트 카드"는 가상 보안 코드 생성을 위한 데이터를 제공하는 카드를 의미한다. 또한, 신용카드, 체크카드, 현금카드 등 금융거래를 진행하는 임의의 카드이며, 카드의 종류 및 목적에는 제한이 없다. As used herein, a “smart card” refers to a card that provides data for generating a virtual security code. In addition, it is an arbitrary card that conducts financial transactions, such as a credit card, a check card, and a cash card, and there is no limitation on the type and purpose of the card.
본 명세서에서 "사용자 단말기"는 어플리케이션을 구동할 수 있는 어플리케이션 프로세서(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)등을 포함하며 이에 한정되는 것은 아니다 As used herein, a “user terminal” is any electronic device having an application processor (AP) capable of running an application. The user terminal is a non-portable desktop computer or a portable mobile device (eg, a smart phone, a tablet PC, a personal digital assistant (PDA), an enterprise digital assistant (EDA), a portable multimedia (PMP) player), personal navigation device (PND), wearable device, etc., but is not limited thereto.
본 명세서에서 "가상보안코드생성함수"는 가상보안코드를 생성하는 함수를 의미한다. 예를 들어, OTP(One Time Password) 등을 포함하며, 이에 한정하는 것은 아니다. In this specification, "virtual security code generation function" refers to a function that generates a virtual security code. Examples include, but are not limited to, One Time Password (OTP).
본 명세서에서 "세부코드생성함수"는 가상보안코드를 구성하는 각각의 세부코드를 생성하는 함수를 의미한다.In the present specification, the "detail code generation function" refers to a function that generates each detailed code constituting the virtual security code.
본 명세서에서 "세부코드결합함수"는 복수의 세부코드를 조합 또는 결합하여 가상보안코드를 생성하는 함수를 의미한다. In the present specification, the "detail code combination function" refers to a function that generates a virtual security code by combining or combining a plurality of detailed codes.
본 명세서에서 "UID(user identification)"는 사용자를 식별하기 위해 사용자별로 중복되지 않게 부여되는 고유한 코드 형태의 값을 의미한다. In the present specification, "UID (user identification)" refers to a value in the form of a unique code that is not duplicated for each user to identify a user.
본 명세서에서 "단위카운트"는 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것으로 정의된 단위이다. 예를 들어, 1카운트는 특정한 시간간격(예를 들어, 1.5초)으로 설정되어 사용될 수 있다.In the present specification, "unit count" is a unit defined as being set at a specific time interval and changing as the time interval elapses. For example, 1 count may be set to a specific time interval (eg, 1.5 seconds) and used.
도 1은 본 발명의 일 실시예에 따른 카드데이터 기반의 가상보안코드를 생성하는 시스템의 구성도이다. 1 is a block diagram of a system for generating a virtual security code based on card data according to an embodiment of the present invention.
도 1을 참조하면, 카드데이터 기반의 가상보안코드 생성 시스템은, 스마트카드(100), 사용자 단말기(200) 및 서버(300)를 포함한다. Referring to FIG. 1 , the card data-based virtual security code generation system includes a smart card 100 , a user terminal 200 , and a server 300 .
본 발명의 일 실시예에 따라 사용자 단말기(200)는 스마트카드(100)로부터 수신되어 획득되는 카드데이터를 기반으로 사용자 인증을 위한 가상보안코드를 생성한다. According to an embodiment of the present invention, the user terminal 200 generates a virtual security code for user authentication based on card data received and obtained from the smart card 100 .
보다 구체적으로, 사용자 단말기(200) 내의 프로그램 또는 어플리케이션은 스마트카드(100)로부터 획득한 시드데이터 및 시간데이터를 기반으로 가상보안코드를 생성한다. 이를 위해 상기 프로그램 또는 어플리케이션은 OTP함수를 포함할 수 있다. More specifically, a program or application in the user terminal 200 generates a virtual security code based on the seed data and time data obtained from the smart card 100 . To this end, the program or application may include an OTP function.
스마트카드(100)의 시드데이터는 해당 스마트카드(100)의 사용자 정보를 포함할 수 있다. 즉, 사용자 단말기(200)의 프로그램 또는 어플리케이션이 실행 시에, 사용자에 의해 입력되어 설정된 사용자 식별 정보[UID (User ID)]를 기반으로 스마트카드(100)가 제작될 수 있다. The seed data of the smart card 100 may include user information of the corresponding smart card 100 . That is, when a program or application of the user terminal 200 is executed, the smart card 100 may be manufactured based on user identification information [UID (User ID)] input and set by the user.
보다 구체적으로, 사용자 단말기(200)를 통한 프로그램 또는 어플리케이션이 실행 시에, 사용자로부터 입력받거나 또는 사용자의 로그인(Log-in) 정보를 기반으로 사용자 식별 정보가 설정되면, 상기 사용자 식별 정보를 기반으로 스마트카드(100)가 제작된다. 결론적으로 각각의 스마트카드(100)는 각각의 사용자에 해당하는 사용자 식별 정보를 포함한다. More specifically, when a program or application through the user terminal 200 is executed, input from the user or when user identification information is set based on the user's log-in information, based on the user identification information The smart card 100 is manufactured. Consequently, each smart card 100 includes user identification information corresponding to each user.
그러나, 본 발명의 사용자 식별 정보는 이에 제한되는 것은 아니며, 스마트카드(100)의 일련번호와 같이 사용자에 의해 설정된 것인 아닌 스마트카드(100) 제작 시 디폴트로 설정된 특정 고유 정보가 특정 사용자에 대하여 매칭됨으로써 사용자 정보로 설정되거나 또는 이용될 수도 있다. 또한, 상기 사용자 식별 정보는, 비단 UID 뿐만 아니라, 주민등록번호, 은행계좌번호, 신용카드번호와 같은 개인 정보를 포함할 수도 있다.However, the user identification information of the present invention is not limited thereto, and specific unique information set as a default when the smart card 100 is manufactured, which is not set by the user, such as the serial number of the smart card 100, is provided for a specific user. It may be set or used as user information by matching. In addition, the user identification information may include personal information such as a resident registration number, a bank account number, and a credit card number, as well as a UID.
한편, 사용자 단말기(200)는 스마트 카드(100)로부터 획득된 시드 데이터를 기반으로 가상 보안 코드를 생성한다. 이때, 전술한 바와 같이 상기 가상 보안 코드는 OTP(One Tim Password) 함수에 의해 생성될 수 있는데, 이러한 경우 가상 보안 코드는 시드 데이터와 가상 보안 코드 생성을 요청받은 시점 또는 시드 데이터를 획득한 시점의 시간 데이터를 기반으로 생성된다. Meanwhile, the user terminal 200 generates a virtual security code based on the seed data obtained from the smart card 100 . In this case, as described above, the virtual security code may be generated by an OTP (One Tim Password) function. In this case, the virtual security code is generated at the time of requesting to generate the seed data and the virtual security code or at the time of acquiring the seed data. It is created based on time data.
구체적으로, 상기 가상 보안 코드는 사용자 단말기(200)에 구비된 가상 보안 코드 생성 함수에 의해 생성되며, 특히 상기 가상 보안 코드는 적어도 하나 또는 복수의 세부 코드를 포함할 수 있는데, 이에 대해서는 자세히 후술하도록 한다. Specifically, the virtual security code is generated by a virtual security code generation function provided in the user terminal 200, and in particular, the virtual security code may include at least one or a plurality of detailed codes, which will be described in detail later. do.
한편, 서버(300)는 사용자 단말기(200)로부터 수신된 가상 보안 코드를 기초로 사용자 인증을 수행한다. 이때, 서버(300)는 사용자 단말기(200)와 통신하는 금융사 서버일 수 있으나 이에 한정하는 것은 아니다. 또한 도 1을 참조하면, 서버(300)는 하나의 서버로 구성된 것으로 표시되어 있지만, 복수의 서버가 서로 연계된 시스템 형태로 구성될 수도 있다. Meanwhile, the server 300 performs user authentication based on the virtual security code received from the user terminal 200 . In this case, the server 300 may be a financial company server that communicates with the user terminal 200 , but is not limited thereto. Also, referring to FIG. 1 , the server 300 is shown as being configured as one server, but a plurality of servers may be configured in a system form linked to each other.
한편, 본 발명의 일 실시예로 서버(300)는 상기 수신된 가상 보안 코드가 정상적으로 생성된 것인지 또는 중복하여 이용된 것인지 여부를 검증하는 과정을 더 수행할 수도 있다.Meanwhile, according to an embodiment of the present invention, the server 300 may further perform a process of verifying whether the received virtual security code is normally generated or used repeatedly.
이하, 도 2 내지 도 10을 참조하여 본 발명의 일 실시예인 NFC를 이용한 카드데이터 기반의 가상 보안 코드 생성 방법 및 장치에 관하여 설명한다. Hereinafter, a method and apparatus for generating a virtual security code based on card data using NFC as an embodiment of the present invention will be described with reference to FIGS. 2 to 10 .
먼저, 도 2를 참조하면, 스마트 카드(100)는 통신부(110), IC칩(120), 애플릿(130) 및 프로세스(140)를 포함한다. First, referring to FIG. 2 , the smart card 100 includes a communication unit 110 , an IC chip 120 , an applet 130 , and a process 140 .
통신부(110)는 사용자 단말기로 카드 데이터를 송신한다. 보다 구체적으로 도면에 명확히 도시되지는 않았으나, 통신부(110)는 NFC(Narrow Frequency Communication) 모듈(미도시)을 포함한다. The communication unit 110 transmits card data to the user terminal. In more detail, although not clearly shown in the drawings, the communication unit 110 includes a Narrow Frequency Communication (NFC) module (not shown).
스마트 카드(100) 및 사용자 단말기(200)가 양자 간에 서로 태그(Tag)되면, 스마트 카드(100)의 프로세서(140)는 IC칩(120)에 저장된 카드 데이터를 통신부(110)를 통해 사용자 단말기(200)로 송신한다. When the smart card 100 and the user terminal 200 are tagged with each other, the processor 140 of the smart card 100 transmits the card data stored in the IC chip 120 to the user terminal through the communication unit 110 . Send to (200).
한편, IC칩(120)는 PCB판 내에 실장되어 IC방식의 카드리더기의 단자와 접 촉하여 데이터 교환을 수행하도록 한다. IC칩(120)은 집적회로(Integrated circuit; IC)를 포함하는 부품, 시스템 온칩(System on chip; SoC) 등 임의의 형태를 포함한다. 예를 들어, IC칩은 본 발명에 따라 ISO 14443 NXP Mifare Classic 타입일 수 있으나, 이에 한정하는 것은 아니다. On the other hand, the IC chip 120 is mounted in the PCB board to contact the terminal of the IC type card reader to perform data exchange. The IC chip 120 includes any form, such as a component including an integrated circuit (IC), a system on chip (SoC), or the like. For example, the IC chip may be an ISO 14443 NXP Mifare Classic type according to the present invention, but is not limited thereto.
또한, 도면에 도시되지는 않았으나, 스마트 카드(100)의 카드 데이터를 저장한 메모리(미도시)를 포함한다. 상술한 바와 같이 카드 데이터는 해당 스마트 카드의 발급을 신청한 사용자의 사용자 식별 정보와 카드 식별 정보를 포함한다.In addition, although not shown in the drawings, a memory (not shown) for storing card data of the smart card 100 is included. As described above, the card data includes user identification information and card identification information of a user who applied for issuance of a corresponding smart card.
IC칩(120)에는 사용자 식별 정보 이외에도 스마트 카드(100)를 발급하고 관리하는 카드사 또는 금융사의 URL 주소 등이 저장될 수도 있다. 예를 들어, 스마트 카드(100)의 IC칩(120)에 특정 금융사의 URL 주소가 저장된 경우에는, 사용자 단말기에 해당 스마트 카드(100)가 태그되면, 사용자 단말기는 상기 URL 주소를 획득할 수 있다. 이때 URL 주소는 해당 금융사의 프로그램 또는 어플리케이션의 설치 정보 또는 실행 정보에 관한 것일 수 있다. In addition to user identification information, the IC chip 120 may store a URL address of a card company or a financial company that issues and manages the smart card 100 . For example, when the URL address of a specific financial company is stored in the IC chip 120 of the smart card 100, when the smart card 100 is tagged in the user terminal, the user terminal can obtain the URL address. . In this case, the URL address may relate to installation information or execution information of a program or application of the financial company.
즉, IC칩(120)에는 사용자 식별 정보 이외에도 다양한 정보가 저장된다. 이러한, 다양한 정보는 사용자 단말기(200)에 스마트 카드(100)가 태깅되면, 사용자 단말기(200)는 스마트 카드(100)로부터 해당 정보를 수신하게 된다. That is, various information is stored in the IC chip 120 in addition to user identification information. When the smart card 100 is tagged to the user terminal 200 , the user terminal 200 receives the corresponding information from the smart card 100 .
이하, 본 발명의 이해를 돕기 위하여 IC칩에 저장된 각각의 정보를 태그 정보라고 명칭하여 설명하도록 한다. Hereinafter, each piece of information stored in the IC chip is referred to as tag information to help the understanding of the present invention.
애플릿(130)은 스마트 카드(100)에 복수의 태그 정보를 저장하여 관리한다. The applet 130 stores and manages a plurality of tag information in the smart card 100 .
이때, 본 발명의 일 실시예로 스마트 카드(100)의 애플릿(130)은 복수의 태그 정보를 NDEF(NFC Data Exchange Format)에 기반하여 상기 메모리 내의 복수의 저장 영역에 각각 분리하여 저장할 수 있다. 즉, 스마트 카드(100)와 사용자 단말기(200)가 상호 간에 NFC를 통해 정보 교환이 가능하도록, 상기 복수의 태그 정보는 표준화된 NDEF형식으로 스마트 카드(100) 내에 저장된다. In this case, according to an embodiment of the present invention, the applet 130 of the smart card 100 may separately store a plurality of pieces of tag information in a plurality of storage areas in the memory based on the NFC Data Exchange Format (NDEF). That is, the plurality of tag information is stored in the smart card 100 in a standardized NDEF format so that the smart card 100 and the user terminal 200 can exchange information with each other through NFC.
이때, 본 발명의 일 실시예로 스마트 카드(100)에 상기 복수의 태그 정보를 저장하는 방법으로는 스마트 카드(100)의 메모리(미도시) 내에서 빈 저장 영역(Sector)을 탐색하고, 상기 탐색된 빈 저장 영역 내에 태그 정보의 유형 별로 복수의 저장 영역을 각각 할당하고, 상기 할당된 복수의 저장 영역에 상기 복수의 태그 정보를 분리하여 MAD(Mifare Application Directory)와 NDEF Message TLV를 이용하여 저장할 수 있다. 이를 통해 상기 복수의 태그 정보는 텍스트 형식으로 상기 각각의 저장 영역(Record)에 메시지 또는 텍스트 형식으로 저장된다. At this time, in an embodiment of the present invention, as a method of storing the plurality of tag information in the smart card 100, an empty storage area (Sector) is searched for in the memory (not shown) of the smart card 100, and the A plurality of storage areas are allocated for each type of tag information in the searched empty storage area, and the plurality of tag information is separated in the allocated plurality of storage areas and stored using MAD (Mifare Application Directory) and NDEF Message TLV. can Through this, the plurality of tag information is stored in a text format in a message or text format in each of the storage areas (Record).
한편 도 3을 참조하면, NDEF는 여러 태그 정보를 포함할 수 있는 메시지로 구성된 이진 포맷으로, 태그 정보는 각각의 레코드(501)에 저장되며 이때 태그 정보는 헤더(Header)(502)와 페이로드(Payload)(503)를 포함한다. 헤더(502)에는 태그 정보에 관한 여러 요소에 대한 Indicator가 포함된다. 예를 들어, 태그 정보 내용인 페이 로드의 유형, 페이 로드의 길이 등이 이에 해당한다. 페이로드(503)는 태그 정보의 내용으로, 앞서 설명한 URL, MIME 미디어 또는 NFC 데이터 등이 포함된다. 이를 통해 본 발명은 사용자 단말기의 운영체제(OS)의 유형에 구속되지 않고 스마트 카드와 사용자 단말기의 NFC 데이터 교환이 가능하다. Meanwhile, referring to FIG. 3 , the NDEF is a binary format composed of a message that can include multiple tag information, and the tag information is stored in each record 501 , wherein the tag information includes a header 502 and a payload. (Payload) 503 . The header 502 includes indicators for various elements related to tag information. For example, the type of payload that is the tag information content, the length of the payload, etc. correspond to this. The payload 503 is the content of tag information, and includes the aforementioned URL, MIME media, or NFC data. Through this, the present invention enables NFC data exchange between the smart card and the user terminal without being limited by the type of the operating system (OS) of the user terminal.
한편, 본 발명의 일 실시예로 애플릿(130)는 상기 복수의 태그 정보의 태그 정보 유형을 각각 파악하고, 상기 파악된 각각의 태그 정보 유형 별로 상기 복수의 태그 정보를 상기 복수의 저장 영역 내의 해당 저장 영역에 각각 분리하여 저장한다. Meanwhile, according to an embodiment of the present invention, the applet 130 identifies each tag information type of the plurality of tag information, and stores the plurality of tag information for each identified tag information type in the plurality of storage areas. Each is stored separately in the storage area.
즉, 상기 복수의 저장 영역 각각에는 저장될 태그 정보의 유형이 사전에 각각 할당되는데, 예를 들어 태그 정보가 가상 보안 코드 생성을 위한 어플리케이션(또는 프로그램)의 설치에 관한 제1 URL 정보와 가상 보안 코드 생성을 위한 어플리케이션(또는 프로그램)의 실행에 관한 제2 URL 정보 및 가상 보안 코드 생성에 이용되는 시드 데이터를 포함할 수 있다. That is, each type of tag information to be stored is allocated in advance to each of the plurality of storage areas. For example, the tag information includes first URL information regarding installation of an application (or program) for generating a virtual security code and virtual security information. Second URL information regarding the execution of an application (or program) for code generation and seed data used for generating a virtual security code may be included.
이 경우, 스마트 카드(100)는 상기 제1 URL 정보, 상기 제2 URL 정보 및 상기 시드 데이터를 상기 복수의 저장 영역 중 해당하는 저장 영역에 각각 저장할 수 있다. 한편, 상기 복수의 저장 영역은 태그 정보의 유형 뿐만 아니라 각각의 태그 정보가 사용자 단말기(200)에서 사용되는 순서 정보와 매칭될 수도 있다. In this case, the smart card 100 may store the first URL information, the second URL information, and the seed data in corresponding storage areas among the plurality of storage areas, respectively. Meanwhile, the plurality of storage areas may match not only the type of tag information but also the order information in which each tag information is used in the user terminal 200 .
본 발명의 실시예로, 애플릿(130)은 복수의 레코드 중 데이터가 저장되지 않는 레코드를 탐색한 후 해당 레코드에 시드 데이터를 저장할 수 있다. 보다 구체적으로, 애플릿(130)은 사용자 단말기(100) 내에서 가상 보안 코드 생성을 위한 어플리케이션(또는 프로그램)을 실행할 수 있는 데이터(예를 들어, 어플리케이션 또는 프로그램 실행을 위한 URL정보)를 포함하는 제1 태그 정보를 제1 레코드 영역에 저장하고, 시드 데이터를 포함하는 제2 태그 정보를 제2 레코드 영역에 저장할 수도 있다. In an embodiment of the present invention, after searching for a record in which data is not stored among a plurality of records, the applet 130 may store the seed data in the corresponding record. More specifically, the applet 130 includes data (eg, URL information for running the application or program) that can execute an application (or program) for generating a virtual security code in the user terminal 100 . One tag information may be stored in the first record area, and second tag information including seed data may be stored in the second record area.
한편, 본 발명의 일 실시예로 상기 복수의 저장 영역에는 상기 복수의 태그 정보 중 해당 태그 정보가 각각 저장되되, 상기 해당 태그 정보에 대한 사용자 단말기(200)의 사용 순서 정보가 해당 저장된 태그 정보와 각각 매칭되어 저장될 수 있다.Meanwhile, according to an embodiment of the present invention, corresponding tag information among the plurality of tag information is stored in the plurality of storage areas, respectively, and the use order information of the user terminal 200 for the corresponding tag information is stored with the stored tag information Each may be matched and stored.
또한, 본 발명에 따른 스마트 카드(100)는 복수의 제1 IC칩(121) 및 제2 IC칩(122)을 포함되는 콤비 카드 형태가 될 수 있다. 이 경우, 제1 IC칩(121)은 신용카드 국제 표준의 EMV칩이 될 수 있고, 제2 IC칩(122)은 Mifare classic 타입의 NFC칩이 될 수 있다.In addition, the smart card 100 according to the present invention may be in the form of a combination card including a plurality of first IC chips 121 and second IC chips 122 . In this case, the first IC chip 121 may be a credit card international standard EMV chip, and the second IC chip 122 may be a Mifare classic type NFC chip.
제1 IC칩은 카드 삽입을 통한 결제에 이용되고, 제2 IC칩은 NFC 안테나를 통해 비접촉식 결제나 사용자 단말기(200) 등에 대한 데이터 전달을 위해 이용될 수 있다. The first IC chip may be used for payment through card insertion, and the second IC chip may be used for contactless payment or data transfer to the user terminal 200 through an NFC antenna.
예를 들어, 제2 IC칩은 사용자 단말기(200)에서 가상보안코드 생성에 필요한 시드데이터를 저장할 수 있다. 이하, 스마트 카드(100)가 가상보안코드 생성을 위한 시드데이터 등의 저장데이터를 비접촉식 통신(NFC통신)을 통해 전달하기 위해 저장하는 방식에 대해 상세히 기재한다.For example, the second IC chip may store seed data necessary for generating a virtual security code in the user terminal 200 . Hereinafter, a method in which the smart card 100 stores stored data such as seed data for generating a virtual security code to be transmitted through contactless communication (NFC communication) will be described in detail.
또한, 본 발명의 일 실시예로, 가상보안코드 생성을 위한 시드데이터 등의 저장데이터는 NDEF(NFC Data Exchange Format)의 형식으로 저장될 수 있다. 스마트카드가 사용자 단말기의 운영체제(OS)의 종류(예를 들어, 구글의 안드로이드, 애플의 iOS, 심비안의 심비안 플랫폼, 블랙베리의 블랙베리 OS, 마이크로소프트의 윈도우 폰, 퀄컴의 BREW, 삼성전자의 타이젠, 카이 OS 등등)에 무관하게 NFC를 통해 사용자 단말에 저장데이터를 전달하기 위해서는 NDEF 표준 포맷을 활용할 필요가 있다.In addition, according to an embodiment of the present invention, storage data such as seed data for generating a virtual security code may be stored in a format of NFC Data Exchange Format (NDEF). The type of operating system (OS) of the user terminal (eg, Google's Android, Apple's iOS, Symbian's Symbian platform, BlackBerry's BlackBerry OS, Microsoft's Windows Phone, Qualcomm's BREW, Samsung Electronics' In order to deliver stored data to a user terminal through NFC regardless of Tizen, Kai OS, etc.), it is necessary to use the NDEF standard format.
본 발명의 사용자 단말기(200)로 전송되는 데이터를 스마트 카드(100) 내에 저장하는 방식의 일 실시예로, 스마트 카드(100)의 애플릿(130)은 상기 복수의 태그 정보를 NDEF(NFC Data Exchange Format)의 형식에 기반하여 EMV 타입의 제1 IC칩(121) 내의 메타애플릿의 각각의 저장 영역에 분리하여 저장할 수 있다. 즉, 스마트 카드(100)와 사용자 단말기(200)의 태그를 통하여 정보를 교환할 수 있도록 복수의 태그 정보는 표준화된 NDEF형식으로 EMV 타입의 제1 IC칩(121) 내에 저장될 수 있다. As an embodiment of a method of storing data transmitted to the user terminal 200 of the present invention in the smart card 100, the applet 130 of the smart card 100 converts the plurality of tag information to NDEF (NFC Data Exchange). Format), it can be stored separately in each storage area of the meta applet in the EMV-type first IC chip 121 . That is, the plurality of tag information may be stored in the EMV type first IC chip 121 in a standardized NDEF format so that information can be exchanged through the tags of the smart card 100 and the user terminal 200 .
본 발명의 사용자 단말기(200)로 전송되는 데이터를 스마트 카드(100) 내에 저장하는 방식의 다른 일 실시예로, 제2 IC칩(122) 내의 빈 저장 영역(Sector)를 확인한 후, 상기 확인된 빈 저장 영역에 복수의 태그 정보 각각을 저장하면서, MAD(Mifare Application Directory) 저장 영역(Sector 0)과 NDEF Message TLV를 이용하여 저장되는 포맷을 NDEF 포맷으로 설정할 수 있다. As another embodiment of a method of storing data transmitted to the user terminal 200 in the smart card 100 of the present invention, after checking an empty storage area (Sector) in the second IC chip 122, the checked While each of a plurality of pieces of tag information is stored in the empty storage area, the stored format may be set as the NDEF format using the MAD (Mifare Application Directory) storage area (Sector 0) and the NDEF Message TLV.
이를 통해 상기 복수의 태그 정보는 텍스트 형식으로 상기 빈 저장 영역에 메시지 또는 텍스트 형식으로 저장될 수 있다. 예를 들어, 우리나라에서 이미 후불교통카드를 위해 신용카드 또는 체크카드에 저장되는 섹터(Sector) 외에 데이터가 저장되지 않는 섹터에 NDEF 포맷으로 사용자 단말로 전송되는 시드데이터를 저장하면서, Sector 0에 전송용 데이터가 저장된 Sector에 대한 설명 정보를 저장을 할 수 있다.Through this, the plurality of tag information may be stored in a text format in the empty storage area in a message or text format. For example, for postpaid transportation cards in Korea, the seed data transmitted to the user terminal in the NDEF format is stored in the sector where data is not stored other than the sector stored in the credit card or check card, and transmitted to Sector 0. It is possible to save the descriptive information about the sector in which the data for use is stored.
또한, 본 발명의 사용자 단말기(200)로 전송되는 데이터를 스마트 카드(100) 내에 저장하는 방식의 또 다른 일 실시예로, 제2 IC칩이 NFC Type 4 Tag인 경우, 제2 IC칩이 포함하고 있는 추가적인 저장공간에 가상보안코드 생성에 필요한 제2 IC칩은 시드데이터 등을 저장할 수 있다. In addition, as another embodiment of a method of storing data transmitted to the user terminal 200 in the smart card 100 of the present invention, when the second IC chip is an NFC Type 4 Tag, the second IC chip is included. The second IC chip necessary for generating a virtual security code in the additional storage space being used may store seed data and the like.
예를 들어, NFC Type 4 Tag인 제2 IC칩은 서비스 당 32 Kbyte까지 활용할 수 있는 메모리가 있어서, 가상보안코드 생성에 필요한 제2 IC칩은 시드데이터 등을 해당 저장공간 내에 저장될 수 있다. 예를 들어, 본 발명의 일실시예에 따른 NDEF 포맷으로 태그 정보가 저장되는 제2 IC칩(122)이 ISO 14443 NXP Mifare "Classic"인 경우, 제2 IC칩(122)의 Mifare classic 타입은 타입 4가 될 수 있고, 상기 타입 4의 경우 데이터 저장을 위한 블록들이 아닌 파일들을 사용하는 객체 지향 메모리 포맷을 가질 수 있다.For example, since the second IC chip, which is an NFC Type 4 Tag, has a memory that can be utilized up to 32 Kbytes per service, the second IC chip required for generating a virtual security code can store seed data and the like in the corresponding storage space. For example, when the second IC chip 122 in which tag information is stored in the NDEF format according to an embodiment of the present invention is ISO 14443 NXP Mifare "Classic", the Mifare classic type of the second IC chip 122 is It may be type 4, and in the case of type 4, it may have an object-oriented memory format using files rather than blocks for data storage.
이하, 도 4 및 도 5를 참조하여, Mifare classic 타입 4의 제2 IC칩(122)에 NDEF 포맷의 태그 정보를 저장하는 과정에 대해 상세히 설명한다.Hereinafter, a process of storing tag information in the NDEF format in the second IC chip 122 of the Mifare classic type 4 will be described in detail with reference to FIGS. 4 and 5 .
도 4는 타입 4 태그 NDEF 구조를 나타낸 도면이다.4 is a diagram illustrating a type 4 tag NDEF structure.
도 5는 텍스트 RTD(Record Type Definition)를 위한 타입 4의 NDEF 파일 예를 나타낸 도면이다.5 is a diagram illustrating an example of a type 4 NDEF file for a text RTD (Record Type Definition).
도 4 및 도 5를 참조하면, 타입 4로부터 NDEF 포맷의 태그 정보를 읽으려면, 태그 정보에 올바르게 액세스하기 위해 일련의 선택 및 읽기를 수행해야 한다. 첫째로, 0xD2760000850101의 애플리케이션 ID로 표시되는 NDEF 애플리케이션을 선택해야 한다. 둘째로, NDEF 애플리케이션에는 파일 ID가 0xE103 인 기능 컨테이너 파일이 있어야 한다.4 and 5 , in order to read tag information in the NDEF format from Type 4, a series of selection and reading must be performed in order to correctly access the tag information. First, you need to select the NDEF application represented by the application ID of 0xD2760000850101. Second, the NDEF application must have a function container file with file ID 0xE103.
여기서, CC의 내용을 읽으려면 CC의 길이를 결정하기 위해 처음 두 바이트를 먼저 읽은 다음, CC의 나머지 부분을 읽어야 하고, CC에는 NDEF 데이터에 대한 파일 ID 정보가 포함되어 있으며, 태그에서 모든 NDEF 데이터를 읽기 위해 올바른 파일 ID를 읽는 데 사용해야 한다. CC에는 저장된 각 NDEF 메시지에 대한 TLV 필드도 포함될 수 있다. 이때, 단일 태그에 여러 NDEF 파일이 있을 수 있으므로., 각 개별 NDEF 파일에 대한 정보는 CC 내에 저장되어야 한다.Here, to read the contents of the CC, the first two bytes are first read to determine the length of the CC, and then the rest of the CC is read, the CC contains the file ID information for the NDEF data, and all NDEF data from the tag should be used to read the correct file id to read . The CC may also include a TLV field for each stored NDEF message. At this time, since there may be multiple NDEF files in a single tag, information about each individual NDEF file should be stored in CC.
도 6을 참조하면, 사용자 단말기(200)는 통신부(210), 가상보안코드생성부(220), 세부코드생성부(230) 및 제어부(230)를 포함한다. Referring to FIG. 6 , the user terminal 200 includes a communication unit 210 , a virtual security code generation unit 220 , a detailed code generation unit 230 , and a control unit 230 .
도 7을 참조하면, 먼저 사용자 단말기(200)는 통신부(210)를 통해 스마트 카드(100)로부터 가상 보안 코드 생성을 위한 시드 데이터를 수신하여 획득한다(S410). Referring to FIG. 7 , first, the user terminal 200 receives and obtains seed data for generating a virtual security code from the smart card 100 through the communication unit 210 ( S410 ).
구체적으로, 사용자 단말기(200)의 통신부(210)는 스마트 카드(100)로부터 시드 데이터를 수신하는데, 무선통신 방식으로는 NFC(Near Field Communication), 블루투스(Bluetooth), BLE(Bluetooth Low Energy), 비콘(Beacon), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다. Specifically, the communication unit 210 of the user terminal 200 receives the seed data from the smart card 100, as a wireless communication method, NFC (Near Field Communication), Bluetooth (Bluetooth), BLE (Bluetooth Low Energy), Beacon, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, etc. may be used.
바람직하게는, 통신부(210)는 스마트 카드(100)가 사용자 단말기(200)에 태깅되면, NFC통신을 통해 시드 데이터를 수신할 수 있다. Preferably, when the smart card 100 is tagged to the user terminal 200 , the communication unit 210 may receive the seed data through NFC communication.
한편, 도 8을 참조하면 본 발명의 일 실시예로 S410 단계는 상기 복수의 저장 영역에 저장된 태그 정보의 유형을 식별하는 단계(S411)와, 복수의 태그 정보 중 가상 보안코드 생성을 위한 시드데이터를 독출하는 단계(S412)를 포함한다. Meanwhile, referring to FIG. 8 , according to an embodiment of the present invention, step S410 includes identifying types of tag information stored in the plurality of storage areas ( S411 ), and seed data for generating a virtual security code among a plurality of tag information. and reading ( S412 ).
상세하게는, 사용자 단말기(200)는 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하고, 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하고, 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드데이터로 획득할 수 있다.In detail, the user terminal 200 identifies at least one type of tag information related to the virtual security code among the types of the tag information, and selects at least one type of tag information corresponding to the identified type of tag information from among the plurality of storage areas. A storage area may be identified, and tag information stored in the identified storage area may be read out of the plurality of pieces of tag information to obtain the seed data.
더욱 상세하게, 사용자 단말기(200)의 제어부(240)는 스마트 카드(100)로부터 수신한 복수의 태그 정보 중 각각의 태그 정보의 유형을 식별한다. 상술한 바와 같이 NDEF 형식의 복수의 태그 정보는 시드 데이터 뿐만 아니라 가상 보안 코드 생성을 위한 프로그램의 설치, 실행 등과 관련되는 다양한 정보를 포함한다. In more detail, the control unit 240 of the user terminal 200 identifies the type of each tag information among a plurality of tag information received from the smart card 100 . As described above, the plurality of tag information in the NDEF format includes not only seed data but also various information related to installation and execution of a program for generating a virtual security code.
따라서, 제어부(240)는 복수의 태그 정보의 유형을 식별한 후 가상 보안 코드의 생성을 위해 필요한 시드 데이터 유형의 태그 정보를 독출한다. 이를 위해 태그 정보의 헤더에 저장된 페이로드 유형 정보를 이용할 수 있을 것이다. Accordingly, after identifying the types of the plurality of tag information, the controller 240 reads the tag information of the seed data type required to generate the virtual security code. For this, payload type information stored in the header of tag information may be used.
한편, 본 발명의 일 실시예로 태그 정보의 유형은 상기 사용자 단말기에서 요청하는 금융 거래 유형에 따라 설정될 수 있다. 이때 S410 단계는, 사용자 단말기에서 요청하는 금융 거래 유형을 식별하고, 상기 금융 거래 유형에 상응하는 태그 정보 유형의 태그 정보를 독출할 수 있다. Meanwhile, according to an embodiment of the present invention, the type of tag information may be set according to a financial transaction type requested by the user terminal. In this case, in step S410, a financial transaction type requested by the user terminal may be identified, and tag information of a tag information type corresponding to the financial transaction type may be read.
즉, 사용자 단말기(200)에서 수행되거나 서버(300)로 요청한 금융 거래 유형에 따라 태그 정보의 유형이 설정될 수 있다. 예를 들어, 금융 거래 중 사용자 인증이 필요한 거래 유형을 제1 유형이라고 가정한다면, 복수의 태그 정보 중 사용자 인증에 이용되는 시드 데이터를 상기 제1 유형에 상응하는 태그 정보 유형으로 설정한다. That is, the type of tag information may be set according to the type of financial transaction performed by the user terminal 200 or requested by the server 300 . For example, if it is assumed that a transaction type requiring user authentication during a financial transaction is a first type, seed data used for user authentication among a plurality of tag information is set as a tag information type corresponding to the first type.
제어부(240)는 가상 보안 코드 생성 프로그램에서 수행되고 있는 사용자의 금융 거래 유형을 식별한 후 해당 금융 거래 유형에 매칭되는 태그 정보만을 독출하여, 각각의 프로세스에 해당하는 적절한 태그 정보의 추출이 가능하다. After identifying the user's financial transaction type being performed in the virtual security code generation program, the control unit 240 reads only tag information matching the corresponding financial transaction type, and it is possible to extract appropriate tag information corresponding to each process .
한편, 제어부(240)는 본 발명에 따른 가상보안코드의 생성을 위해 스마트카드(100)와 NFC 태깅된 경우에는, 스마트카드(100)로부터 시드데이터를 독출하여 가상보안코드를 생성하는데 이용할 수 있다.On the other hand, when NFC is tagged with the smart card 100 for the generation of the virtual security code according to the present invention, the control unit 240 may read the seed data from the smart card 100 and use it to generate a virtual security code. .
반면에, 제어부(240)는 앞서 설명한 가상보안코드의 생성 시점이 아닌 다른 시점에 스마트카드(100)와 NFC 통신 방식으로 태깅된 경우에는, 상기 스마트카드(100)와 NFC 태깅한 사용자의 의도가 상기 가상보안코드의 생성이 아닌 스마트카드(100)과 연계된 어플리케이션(또는 프로그램)의 사용 의도이므로, 스마트카드(100)로부터 스마트카드(100)와 연계된 어플리케이션(또는 프로그램)의 실행 관련 데이터를 획득할 수 있다. On the other hand, if the control unit 240 is tagged with the smart card 100 and the NFC communication method at a time other than the generation time of the virtual security code described above, the intention of the user who tagged the smart card 100 with the smart card 100 is Since the application (or program) associated with the smart card 100 is intended to be used rather than the generation of the virtual security code, data related to the execution of the application (or program) associated with the smart card 100 from the smart card 100 is retrieved. can be obtained
이때, 제어부(240)는 사용자 단말기(200)에 스마트카드(100)와 연계된 복수의 어플리케이션(또는 프로그램)이 설치된 경우, 상기 복수의 어플리케이션(또는 프로그램) 중 기 설정된 우선 순위가 가장 높은 어플리케이션(또는 프로그램)의 실행 관련 데이터를 스마트카드(100)로부터 획득할 수 있다. 일 예로, 상기 우선 순위는 스마트카드(100)에 디폴트로 설정된 어플리케이션(또는 프로그램) 및 사용자의 사용 빈도 중 적어도 하나를 포함할 수 있다.At this time, when a plurality of applications (or programs) associated with the smart card 100 are installed in the user terminal 200, the controller 240 controls the application (or the application having the highest preset priority among the plurality of applications (or programs)) or program) execution related data may be obtained from the smart card 100 . For example, the priority may include at least one of an application (or program) set as a default in the smart card 100 and a user's frequency of use.
또한, 제어부(240)는 스마트카드(100)로부터 해당 어플리케이션(또는 프로그램)의 실행 관련 데이터가 획득되어도, 상기 획득된 실행 관련 데이터를 기반으로 상기 해당 어플리케이션(또는 프로그램)이 자동으로 실행되지 않도록 차단할 수도 있고, 이 경우 사용자의 패스워드를 통한 인증이 성공된 경우에만 상기 해당 어플리케이션(또는 프로그램)을 실행하여 화면 상에 출력할 수 있다. 이때, 상기 패스워드는 사용자가 설정한 텍스트 정보(한글, 영문, 숫자, 특수문자, 기호 중 하나 이상이 조합된 형태) 및 사용자의 생체 정보(지문, 홍채, 얼굴 중 적어도 하나) 중 적어도 하나를 기반으로 사용자에 의해 설정될 수 있다.In addition, even when execution-related data of the corresponding application (or program) is obtained from the smart card 100 , the control unit 240 blocks the corresponding application (or program) from being automatically executed based on the obtained execution-related data. Also, in this case, only when authentication through the user's password is successful, the corresponding application (or program) may be executed and outputted on the screen. In this case, the password is based on at least one of text information (a combination of one or more of Korean, English, numbers, special characters, and symbols) and user's biometric information (at least one of a fingerprint, iris, and face) set by the user. can be set by the user.
즉, 해당 어플리케이션(또는 프로그램)의 사용 목적이 없으나 실수로 스마트카드(100)와 NFC 태깅되거나, 또는 해킹 등의 외부 요인으로 인해 스마트카드(100)로부터 해당 어플리케이션(또는 프로그램)이 실행 관련 데이터를 획득하여도, 추가 사용자 인증 과정을 통해 실제 사용자의 사용 의도를 확인하고, 인증이 성공된 경우에만 해당 어플리케이션(또는 프로그램)을 실행하는 것이다.That is, the application (or program) has no purpose of use, but is accidentally tagged with the smart card 100 and NFC, or the application (or program) receives execution-related data from the smart card 100 due to external factors such as hacking. Even if obtained, the actual user's intention to use is confirmed through an additional user authentication process, and the corresponding application (or program) is executed only when the authentication is successful.
한편, 도 7를 참조하면 사용자 단말기(200)는 스마트 카드로부터 획득한 시드데이터와 시간 데이터를 기반으로, 가상 보안 코드를 생성한다(S420).Meanwhile, referring to FIG. 7 , the user terminal 200 generates a virtual security code based on the seed data and time data obtained from the smart card ( S420 ).
이하에서는, 본 발명의 일 실시예인 가상 보안 코드를 생성하는 구체적인 방법에 대하여 설명한다. Hereinafter, a specific method of generating a virtual security code according to an embodiment of the present invention will be described.
세부코드생성부(230)는 하나 또는 복수의 세부코드를 생성하는 역할을 수행한다. 세부 코드는 가상 보안 코드를 구성하는 일부 코드를 의미하는데, 가상 보안 코드는 세부 코드 만으로 구성될 수도 있으며, 또는 OTP함수에 의해 생성된 제1 가상보안코드에 하나 또는 복수의 세부 코드를 결합하여 최종 가상 보안 코드(OTAC)의 형태로 형성될 수도 있다. The detailed code generator 230 generates one or a plurality of detailed codes. The detailed code refers to some codes constituting the virtual security code. The virtual security code may consist only of the detailed code, or by combining one or more detailed codes with the first virtual security code generated by the OTP function, the final It may be formed in the form of a virtual security code (OTAC).
사용자 단말기(200)는 가상 보안 코드를 생성하는 가상 보안 코드 생성 함수를 포함하고, 가상 보안 코드 생성 함수는 하나 이상의 세부코드를 생성하는 세부 코드 생성 함수와, 상기 세부코드를 결합하여 가상보안코드를 생성하는 세부 코드 결합 함수(즉, 복수의 세부코드를 조합하는 규칙)를 포함한다. The user terminal 200 includes a virtual security code generation function that generates a virtual security code, and the virtual security code generation function generates a virtual security code by combining the detailed code generation function and the detailed code generation function for generating one or more detailed codes. Includes a subcode combining function that generates (ie, a rule for combining multiple subcodes).
즉, 가상 보안 코드가 복수의 세부코드를 포함하는 경우, 가상 보안 코드 생성 함수는 복수의 세부 코드 생성 함수를 이용하여 복수의 세부 코드를 생성하고, 상기 세부 코드 결합 함수를 통해 상기 복수의 세부 코드를 기 설정된 조합으로 결합하여 가상 보안 코드를 생성한다.That is, when the virtual security code includes a plurality of detailed codes, the virtual security code generating function generates a plurality of detailed codes using the plurality of detailed code generating functions, and the plurality of detailed codes through the detailed code combining function are combined in a preset combination to generate a virtual security code.
일 실시예로, 세부코드생성부(230)는 스마트 카드(100)가 태깅됨에 따라 획득된 시드데이터(Seed data)를 기반으로 세부코드생성함수에 의해 상기 가상보안코드를 생성할 수 있다. In an embodiment, the detailed code generation unit 230 may generate the virtual security code by a detailed code generation function based on seed data obtained as the smart card 100 is tagged.
복수의 세부코드 간에는 서버(300)가 사용자 식별 정보의 저장공간을 탐색하기 위해 이용되는 상관관계를 가진다. There is a correlation between the plurality of detailed codes used by the server 300 to search for a storage space of user identification information.
즉, 서버(300)는 탐색 알고리즘(저장공간탐색알고리즘)을 구비하고, 상기 탐색 알고리즘은 사용자 단말기(200)로부터 수신된 가상 보안 코드에 포함된 복수의 세부 코드를 추출하고, 상기 복수의 세부코드의 상관관계를 기반으로 사용자에 부여된 사용자 식별 정보[UID(User identification)]의 저장공간을 탐색한다.That is, the server 300 includes a search algorithm (storage space search algorithm), the search algorithm extracts a plurality of detailed codes included in the virtual security code received from the user terminal 200, and the plurality of detailed codes Based on the correlation of , the storage space of user identification information [UID (User identification)] assigned to the user is searched.
상기 복수의 세부코드가 가지는 상관 관계에 대한 일 실시예로, 서버(300)에 포함된 탐색알고리즘은 복수의 세부코드 중 하나 이상의 세부코드에 대응하는 경유지점으로부터 상기 복수의 세부코드 간의 상관 관계를 기반으로 연산하여 상기 사용자 식별 정보의 저장위치를 탐색할 수 있다. 이때, 상기 경유지점은 하나 또는 복수일 수 있으며 개수 및 순서에 제한은 없다.As an embodiment of the correlation of the plurality of detailed codes, the search algorithm included in the server 300 determines the correlation between the plurality of detailed codes from a waypoint corresponding to one or more detailed codes among the plurality of detailed codes. Based on the calculation, the storage location of the user identification information may be searched. In this case, there may be one or a plurality of the waypoints, and the number and order are not limited.
또한, 복수의 세부코드의 일 실시예로, 복수의 세부코드는 제1코드 및 제2코드를 포함할 수 있고, 세부코드생성부(210)는 세부코드생성함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. In addition, as an embodiment of the plurality of detailed codes, the plurality of detailed codes may include a first code and a second code, and the detailed code generating unit 210 is a first function and a second function as a detailed code generating function. Including, the first code and the second code are generated.
제1코드와 제2코드는 서버(300) 내에서 사용자 식별 정보(UID)의 저장공간을 탐색하기 위한 상관관계를 가지나, 사용자 단말기(200)는 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드생성함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다. The first code and the second code have a correlation for searching the storage space of the user identification information (UID) in the server 300, but the user terminal 200 generates the first code to increase security. The first function and the second function for generating the second code may be included as the detailed code generating function, and data on the correlation between the first code and the second code may not be included.
제1코드와 제2코드의 상관관계의 구체적인 예로, 제1코드와 제2코드는 사용자 식별 정보(UID)의 저장공간을 탐색하기 위한 각각의 역할을 수행할 수 있다. 즉, 제1코드는 상기 경유지점에 대한 정보를 포함하고, 제2코드는 상기 경유지점으로부터 사용자 식별 정보의 저장공간에 도달할 수 있는 연산에 필요한 정보를 포함할 수 있다.As a specific example of the correlation between the first code and the second code, the first code and the second code may perform respective roles for searching a storage space of user identification information (UID). That is, the first code may include information on the waypoint, and the second code may include information necessary for an operation that can reach the storage space of the user identification information from the waypoint.
한편, 본 발명의 일 실시예로 제1코드는 제1카운트를 기반으로 생성되며, 제2코드는 제2카운트를 기반으로 생성될 수 있다. Meanwhile, according to an embodiment of the present invention, the first code may be generated based on the first count, and the second code may be generated based on the second count.
이때, 제1카운트는 서버(300)에서 가상 보안 코드 생성 함수가 구동된 최초시점으로부터 가상 보안 코드가 생성된 시점까지 경과된 단위 카운트의 개수이고, 제2카운트는 사용자의 사용자 식별 정보(UID)가 서버(300)에 등록된 시점 또는 사용자의 스마트 카드(100)가 발급된 후 사용자 단말기(200)를 통해 서버(300)에 등록된 시점으로부터 경과된 단위 카운트 개수를 포함할 수 있다. In this case, the first count is the number of unit counts that have elapsed from the first time the virtual security code generation function is driven in the server 300 to the time when the virtual security code is generated, and the second count is the user's user identification information (UID) may include the number of unit counts that have elapsed from the time of registration with the server 300 or the time of registration with the server 300 through the user terminal 200 after the user's smart card 100 is issued.
즉, 제1코드를 생성하는 제1함수는 제1카운트에 대응되는 특정한 코드값을 제공하는 함수이고, 제2코드를 생성하는 제2함수는 제2카운트에 대응되는 특정한 코드값을 제공하는 함수이다. That is, the first function generating the first code is a function providing a specific code value corresponding to the first count, and the second function generating the second code is a function providing a specific code value corresponding to the second count. to be.
이를 통해, 가상보안코드의 생성시기 및 사용자와 무관하게, 동일한 가상 보안 코드가 중복되어 생성되지 않도록 할 수 있다. Through this, it is possible to prevent duplicate generation of the same virtual security code regardless of the generation time and user of the virtual security code.
예를 들어, 제1코드는 서버(300) 내에서 제1함수가 구동되는 초기시점으로부터 각 카운트마다 매칭된 코드 중에서 어느 하나의 코드값[예를 들어, 가상 보안 코드의 생성이 요청된 시점(또는 카운트)에 대응되는 코드값]으로 설정되고, 사용자 단말기(200)는 동일한 사용자에서 가상 보안 코드의 생성 시기마다 다른 코드값을 가지는 제1코드를 생성한다. For example, the first code is any one code value [for example, when generation of a virtual security code is requested ( or a code value corresponding to the count)], and the user terminal 200 generates a first code having a different code value at each generation time of the virtual security code in the same user.
또한, 동일한 시점의 경우에도 사용자 단말기(200)마다 항상 상이한 제2카운트 값을 가지게 되어, 사용자 단말기(200)는 사용자마다 동일 시점에 항상 상이한 제2코드를 생성한다. Also, even at the same time point, each user terminal 200 always has a different second count value, so that the user terminal 200 always generates a different second code at the same time point for each user.
즉, 제1코드는 각 카운트마다 상이한 코드값이 되고, 제2코드는 동일시점에 각 사용자의 사용자 단말기(200)에 설치된 앱카드 어플리케이션마다 상이한 코드값을 가지게 되어서, 결과적으로 제1코드와 제2코드가 결합된 가상 보안 코드(OTAC)는 사용자 및 가상 보안 코드 생성요청시기와 관계없이 항상 동일하지 않거나 또는 중복되지 않는 코드값으로 출력되는 것이다.That is, the first code has a different code value for each count, and the second code has a different code value for each app card application installed in the user terminal 200 of each user at the same time, as a result, the first code and the second code The virtual security code (OTAC) in which the two codes are combined is always output as a code value that is not the same or does not overlap regardless of the user and the time of request for generating the virtual security code.
또한, 다른 일실시예로, 상기 가상보안코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성할 수 있고, 이 경우 상기 가상보안코드생성함수는 상이한 MN개의 코드가 단위카운트마다 순차적으로 변경되는 제1코드 또는 제2코드를 각각 제공하는 제1함수 및 제2함수를 포함한다. Also, in another embodiment, the virtual security code generating function may generate the first N-digit code or the second code with M characters, and in this case, the virtual security code generating function is different M N The code includes a first function and a second function that respectively provide a first code or a second code that is sequentially changed for each unit count.
즉, 제1함수 또는 제2함수는 MN개의 코드가 카운트 증가에 따라 중복되지 않게 생성하는 함수로서, 특정한 시점에 대응하는 카운트에 MN개의 코드 중에 특정한 하나를 제1코드 또는 제2코드로 생성한다. 이를 통해, 사용자 단말기(200)는 MN카운트(즉, MN개의 카운트에 대응하는 시간길이) 내에 동일한 제1코드 또는 제2코드를 중복 생성하지 않고, 단위카운트마다 새로운 세부코드(즉, 제1코드 또는 제2코드)를 생성하여, 단위카운트마다 새로운 가상보안코드(OTAC)를 생성한다.That is, the first function or the second function is a function that generates M N codes not to be duplicated as the count increases, and a specific one of M N codes is designated as the first code or the second code at a count corresponding to a specific time point. create Through this, the user terminal 200 does not repeatedly generate the same first code or second code within the M N counts (ie, the length of time corresponding to the MN counts), and a new detailed code (ie, the first code or second code) to generate a new virtual security code (OTAC) for each unit count.
구체적으로, 상기 가상보안코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성함에 따라 MN개의 코드를 제1코드 또는 제2코드로 이용하는 경우, 제1코드 또는 제2코드를 세부코드생성함수가 구동되는 초기시점으로부터 각 카운트마다 매칭한다. Specifically, the virtual security code generation function generates the N-digit first code or the second code with M characters. When using the M N codes as the first code or the second code, the first code Alternatively, the second code is matched for each count from the initial time point at which the detailed code generation function is driven.
예를 들어, 단위카운트를 1초로 설정하는 경우, 세부코드생성함수가 최초 구동된 시점에서부터 매초에 상이한 MN개의 코드를 매칭한다. 그리고, 특정한 세부코드생성함수를 이용하는 주기 또는 사용자 단말기(200) 내에 가상보안코드의 생성을 위한 프로그램 또는 어플리케이션의 사용주기를 MN 카운트에 해당하는 시간길이(예를 들어, 1카운트가 1초인 경우, MN 초)보다 짧은 시간길이로 설정하면, 제1코드 또는 제2코드는 사용주기 동안에는 서로 동일한 코드로 중복 생성되지 않는다. For example, when the unit count is set to 1 second, different M N codes are matched every second from the time when the detailed code generating function is first driven. And, the period of using a specific detailed code generation function or the period of use of a program or application for generating a virtual security code in the user terminal 200 is a time length corresponding to M N count (for example, when 1 count is 1 second) , M N seconds), the first code or the second code is not duplicated with the same code during the use cycle.
즉, 시간이 흐름에 따라 카운트가 증가할 때, 사용자가 특정시점에 가상보안코드를 생성하는 경우, 사용자 단말기(200)는 특정시점에 대응되는 카운트에 매칭된 코드값을 제1코드 또는 제2코드로 생성할 수 있는 것이다.That is, when the count increases over time, when the user generates a virtual security code at a specific time point, the user terminal 200 sets the code value matched to the count corresponding to the specific time point as the first code or the second code. It can be created in code.
또한, 복수의 세부코드를 결합하여 하나의 가상보안코드(OTAC)를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. 상기 세부코드결합함수의 일 예로, 세부코드결합함수는 N자리의 제1코드와 N자리의 제2코드를 번갈아 배치하는 방식으로 가상보안코드를 생성할 수 있다. 또한, 다른 일 예로, 세부코드결합함수는 제1코드 뒤에 제2코드를 결합하는 방식으로 가상보안코드를 생성할 수도 있다. 가상보안코드에 포함되는 세부코드의 개수가 늘어남에 따라 이에 따른 가상보안코드도 중복되지 않게 다양하게 생성될 수 있다.In addition, various methods may be applied as a method of generating one virtual security code (OTAC) by combining a plurality of detailed codes. As an example of the detailed code combining function, the detailed code combining function may generate a virtual security code by alternately arranging an N-digit first code and an N-digit second code. In addition, as another example, the detailed code combining function may generate a virtual security code by combining the second code after the first code. As the number of detailed codes included in the virtual security code increases, a corresponding virtual security code may also be generated in various ways without being duplicated.
가상보안코드생성부(220)는 세부코드생성부(230)에서 생성된 하나 이상의 세부코드를 조합하여 가상보안코드를 생성하는 역할을 수행한다.The virtual security code generation unit 220 serves to generate a virtual security code by combining one or more detailed codes generated by the detailed code generation unit 230 .
이하에서는, 서버(300)에서의 가상보안코드를 검증하고, 상기 검증된 가상보안코드를 기반으로 사용자를 인증하는 방법에 대하여 설명한다. 도 9는 본 발명의 일 실시예에 따른 가상보안코드를 검증하는 방법의 개략적인 순서도이고, 도 10은 본 발명의 일 실시예에 따른 가상보안코드를 기반으로 사용자를 인증하는 방법의 개략적인 순서도이다. Hereinafter, a method of verifying the virtual security code in the server 300 and authenticating the user based on the verified virtual security code will be described. 9 is a schematic flowchart of a method for verifying a virtual security code according to an embodiment of the present invention, and FIG. 10 is a schematic flowchart of a method for authenticating a user based on a virtual security code according to an embodiment of the present invention to be.
이하, 도 4 및 도 5를 참조하여, Mifare classic 타입 4의 제2 IC칩(122)에 NDEF 포맷의 태그 정보를 저장하는 과정에 대해 상세히 설명한다.Hereinafter, a process of storing tag information in the NDEF format in the second IC chip 122 of the Mifare classic type 4 will be described in detail with reference to FIGS. 4 and 5 .
도 4는 타입 4 태그 NDEF 구조를 나타낸 도면이다.4 is a diagram illustrating a type 4 tag NDEF structure.
도 5는 텍스트 RTD(Record Type Definition)를 위한 타입 4의 NDEF 파일 예를 나타낸 도면이다.5 is a diagram illustrating an example of a type 4 NDEF file for a text RTD (Record Type Definition).
도 4 및 도 5를 참조하면, 타입 4로부터 NDEF 포맷의 태그 정보를 읽으려면, 태그 정보에 올바르게 액세스하기 위해 일련의 선택 및 읽기를 수행해야 한다. 첫째로, 0xD2760000850101의 애플리케이션 ID로 표시되는 NDEF 애플리케이션을 선택해야 한다. 둘째로, NDEF 애플리케이션에는 파일 ID가 0xE103 인 기능 컨테이너 파일이 있어야 한다.4 and 5 , in order to read tag information in the NDEF format from Type 4, a series of selection and reading must be performed in order to correctly access the tag information. First, you need to select the NDEF application represented by the application ID of 0xD2760000850101. Second, the NDEF application must have a function container file with file ID 0xE103.
여기서, CC의 내용을 읽으려면 CC의 길이를 결정하기 위해 처음 두 바이트를 먼저 읽은 다음, CC의 나머지 부분을 읽어야 하고, CC에는 NDEF 데이터에 대한 파일 ID 정보가 포함되어 있으며, 태그에서 모든 NDEF 데이터를 읽기 위해 올바른 파일 ID를 읽는 데 사용해야 한다. CC에는 저장된 각 NDEF 메시지에 대한 TLV 필드도 포함될 수 있다. 이때, 단일 태그에 여러 NDEF 파일이 있을 수 있으므로., 각 개별 NDEF 파일에 대한 정보는 CC 내에 저장되어야 한다.Here, to read the contents of the CC, the first two bytes are first read to determine the length of the CC, and then the rest of the CC is read, the CC contains the file ID information for the NDEF data, and all NDEF data from the tag should be used to read the correct file id to read . The CC may also include a TLV field for each stored NDEF message. At this time, since there may be multiple NDEF files in a single tag, information about each individual NDEF file should be stored in CC.
도 6을 참조하면, 사용자 단말기(200)는 통신부(210), 가상보안코드생성부(220), 세부코드생성부(230) 및 제어부(230)를 포함한다. Referring to FIG. 6 , the user terminal 200 includes a communication unit 210 , a virtual security code generation unit 220 , a detailed code generation unit 230 , and a control unit 230 .
도 7을 참조하면, 먼저 사용자 단말기(200)는 통신부(210)를 통해 스마트 카드(100)로부터 가상 보안 코드 생성을 위한 시드 데이터를 수신하여 획득한다(S410). Referring to FIG. 7 , first, the user terminal 200 receives and obtains seed data for generating a virtual security code from the smart card 100 through the communication unit 210 ( S410 ).
구체적으로, 사용자 단말기(200)의 통신부(210)는 스마트 카드(100)로부터 시드 데이터를 수신하는데, 무선통신 방식으로는 NFC(Near Field Communication), 블루투스(Bluetooth), BLE(Bluetooth Low Energy), 비콘(Beacon), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다. Specifically, the communication unit 210 of the user terminal 200 receives the seed data from the smart card 100, as a wireless communication method, NFC (Near Field Communication), Bluetooth (Bluetooth), BLE (Bluetooth Low Energy), Beacon, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, etc. may be used.
바람직하게는, 통신부(210)는 스마트 카드(100)가 사용자 단말기(200)에 태깅되면, NFC통신을 통해 시드 데이터를 수신할 수 있다. Preferably, when the smart card 100 is tagged to the user terminal 200 , the communication unit 210 may receive the seed data through NFC communication.
한편, 도 8을 참조하면 본 발명의 일 실시예로 S410 단계는 상기 복수의 저장 영역에 저장된 태그 정보의 유형을 식별하는 단계(S411)와, 복수의 태그 정보 중 가상 보안코드 생성을 위한 시드데이터를 독출하는 단계(S412)를 포함한다. Meanwhile, referring to FIG. 8 , according to an embodiment of the present invention, step S410 includes identifying types of tag information stored in the plurality of storage areas ( S411 ), and seed data for generating a virtual security code among a plurality of tag information. and reading ( S412 ).
상세하게는, 사용자 단말기(200)는 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하고, 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하고, 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드데이터로 획득할 수 있다.In detail, the user terminal 200 identifies at least one type of tag information related to the virtual security code among the types of the tag information, and selects at least one type of tag information corresponding to the identified type of tag information from among the plurality of storage areas. A storage area may be identified, and tag information stored in the identified storage area may be read out of the plurality of pieces of tag information to obtain the seed data.
더욱 상세하게, 사용자 단말기(200)의 제어부(240)는 스마트 카드(100)로부터 수신한 복수의 태그 정보 중 각각의 태그 정보의 유형을 식별한다. 상술한 바와 같이 NDEF 형식의 복수의 태그 정보는 시드 데이터 뿐만 아니라 가상 보안 코드 생성을 위한 프로그램의 설치, 실행 등과 관련되는 다양한 정보를 포함한다. In more detail, the control unit 240 of the user terminal 200 identifies the type of each tag information among a plurality of tag information received from the smart card 100 . As described above, the plurality of tag information in the NDEF format includes not only seed data but also various information related to installation and execution of a program for generating a virtual security code.
따라서, 제어부(240)는 복수의 태그 정보의 유형을 식별한 후 가상 보안 코드의 생성을 위해 필요한 시드 데이터 유형의 태그 정보를 독출한다. 이를 위해 태그 정보의 헤더에 저장된 페이로드 유형 정보를 이용할 수 있을 것이다. Accordingly, after identifying the types of the plurality of tag information, the controller 240 reads the tag information of the seed data type required to generate the virtual security code. For this, payload type information stored in the header of tag information may be used.
한편, 본 발명의 일 실시예로 태그 정보의 유형은 상기 사용자 단말기에서 요청하는 금융 거래 유형에 따라 설정될 수 있다. 이때 S410 단계는, 사용자 단말기에서 요청하는 금융 거래 유형을 식별하고, 상기 금융 거래 유형에 상응하는 태그 정보 유형의 태그 정보를 독출할 수 있다. Meanwhile, according to an embodiment of the present invention, the type of tag information may be set according to a financial transaction type requested by the user terminal. In this case, in step S410, a financial transaction type requested by the user terminal may be identified, and tag information of a tag information type corresponding to the financial transaction type may be read.
즉, 사용자 단말기(200)에서 수행되거나 서버(300)로 요청한 금융 거래 유형에 따라 태그 정보의 유형이 설정될 수 있다. 예를 들어, 금융 거래 중 사용자 인증이 필요한 거래 유형을 제1 유형이라고 가정한다면, 복수의 태그 정보 중 사용자 인증에 이용되는 시드 데이터를 상기 제1 유형에 상응하는 태그 정보 유형으로 설정한다. That is, the type of tag information may be set according to the type of financial transaction performed by the user terminal 200 or requested by the server 300 . For example, if it is assumed that a transaction type requiring user authentication during a financial transaction is a first type, seed data used for user authentication among a plurality of tag information is set as a tag information type corresponding to the first type.
제어부(240)는 가상 보안 코드 생성 프로그램에서 수행되고 있는 사용자의 금융 거래 유형을 식별한 후 해당 금융 거래 유형에 매칭되는 태그 정보만을 독출하여, 각각의 프로세스에 해당하는 적절한 태그 정보의 추출이 가능하다. After identifying the user's financial transaction type being performed in the virtual security code generation program, the control unit 240 reads only tag information matching the corresponding financial transaction type, and it is possible to extract appropriate tag information corresponding to each process .
한편, 제어부(240)는 본 발명에 따른 가상보안코드의 생성을 위해 스마트카드(100)와 NFC 태깅된 경우에는, 스마트카드(100)로부터 시드데이터를 독출하여 가상보안코드를 생성하는데 이용할 수 있다.On the other hand, when NFC is tagged with the smart card 100 for the generation of the virtual security code according to the present invention, the control unit 240 may read the seed data from the smart card 100 and use it to generate a virtual security code. .
반면에, 제어부(240)는 앞서 설명한 가상보안코드의 생성 시점이 아닌 다른 시점에 스마트카드(100)와 NFC 통신 방식으로 태깅된 경우에는, 상기 스마트카드(100)와 NFC 태깅한 사용자의 의도가 상기 가상보안코드의 생성이 아닌 스마트카드(100)과 연계된 어플리케이션(또는 프로그램)의 사용 의도이므로, 스마트카드(100)로부터 스마트카드(100)와 연계된 어플리케이션(또는 프로그램)의 실행 관련 데이터를 획득할 수 있다. On the other hand, if the control unit 240 is tagged with the smart card 100 and the NFC communication method at a time other than the generation time of the virtual security code described above, the intention of the user who tagged the smart card 100 with the smart card 100 is Since the application (or program) associated with the smart card 100 is intended to be used rather than the generation of the virtual security code, data related to the execution of the application (or program) associated with the smart card 100 from the smart card 100 is retrieved. can be obtained
이때, 제어부(240)는 사용자 단말기(200)에 스마트카드(100)와 연계된 복수의 어플리케이션(또는 프로그램)이 설치된 경우, 상기 복수의 어플리케이션(또는 프로그램) 중 기 설정된 우선 순위가 가장 높은 어플리케이션(또는 프로그램)의 실행 관련 데이터를 스마트카드(100)로부터 획득할 수 있다. 일 예로, 상기 우선 순위는 스마트카드(100)에 디폴트로 설정된 어플리케이션(또는 프로그램) 및 사용자의 사용 빈도 중 적어도 하나를 포함할 수 있다.At this time, when a plurality of applications (or programs) associated with the smart card 100 are installed in the user terminal 200, the controller 240 controls the application (or the application having the highest preset priority among the plurality of applications (or programs)) or program) execution related data may be obtained from the smart card 100 . For example, the priority may include at least one of an application (or program) set as a default in the smart card 100 and a user's frequency of use.
또한, 제어부(240)는 스마트카드(100)로부터 해당 어플리케이션(또는 프로그램)의 실행 관련 데이터가 획득되어도, 상기 획득된 실행 관련 데이터를 기반으로 상기 해당 어플리케이션(또는 프로그램)이 자동으로 실행되지 않도록 차단할 수도 있고, 이 경우 사용자의 패스워드를 통한 인증이 성공된 경우에만 상기 해당 어플리케이션(또는 프로그램)을 실행하여 화면 상에 출력할 수 있다. 이때, 상기 패스워드는 사용자가 설정한 텍스트 정보(한글, 영문, 숫자, 특수문자, 기호 중 하나 이상이 조합된 형태) 및 사용자의 생체 정보(지문, 홍채, 얼굴 중 적어도 하나) 중 적어도 하나를 기반으로 사용자에 의해 설정될 수 있다.In addition, even when execution-related data of the corresponding application (or program) is obtained from the smart card 100 , the control unit 240 blocks the corresponding application (or program) from being automatically executed based on the obtained execution-related data. Also, in this case, only when authentication through the user's password is successful, the corresponding application (or program) may be executed and outputted on the screen. In this case, the password is based on at least one of text information (a combination of one or more of Korean, English, numbers, special characters, and symbols) and user's biometric information (at least one of a fingerprint, iris, and face) set by the user. can be set by the user.
즉, 해당 어플리케이션(또는 프로그램)의 사용 목적이 없으나 실수로 스마트카드(100)와 NFC 태깅되거나, 또는 해킹 등의 외부 요인으로 인해 스마트카드(100)로부터 해당 어플리케이션(또는 프로그램)이 실행 관련 데이터를 획득하여도, 추가 사용자 인증 과정을 통해 실제 사용자의 사용 의도를 확인하고, 인증이 성공된 경우에만 해당 어플리케이션(또는 프로그램)을 실행하는 것이다.That is, the application (or program) has no purpose of use, but is accidentally tagged with the smart card 100 and NFC, or the application (or program) receives execution-related data from the smart card 100 due to external factors such as hacking. Even if obtained, the actual user's intention to use is confirmed through an additional user authentication process, and the corresponding application (or program) is executed only when the authentication is successful.
한편, 도 7를 참조하면 사용자 단말기(200)는 스마트 카드로부터 획득한 시드데이터와 시간 데이터를 기반으로, 가상 보안 코드를 생성한다(S420).Meanwhile, referring to FIG. 7 , the user terminal 200 generates a virtual security code based on the seed data and time data obtained from the smart card ( S420 ).
이하에서는, 본 발명의 일 실시예인 가상 보안 코드를 생성하는 구체적인 방법에 대하여 설명한다. Hereinafter, a specific method of generating a virtual security code according to an embodiment of the present invention will be described.
세부코드생성부(230)는 하나 또는 복수의 세부코드를 생성하는 역할을 수행한다. 세부 코드는 가상 보안 코드를 구성하는 일부 코드를 의미하는데, 가상 보안 코드는 세부 코드 만으로 구성될 수도 있으며, 또는 OTP함수에 의해 생성된 제1 가상보안코드에 하나 또는 복수의 세부 코드를 결합하여 최종 가상 보안 코드(OTAC)의 형태로 형성될 수도 있다. The detailed code generator 230 generates one or a plurality of detailed codes. The detailed code refers to some codes constituting the virtual security code. The virtual security code may consist only of the detailed code, or by combining one or more detailed codes with the first virtual security code generated by the OTP function, the final It may be formed in the form of a virtual security code (OTAC).
사용자 단말기(200)는 가상 보안 코드를 생성하는 가상 보안 코드 생성 함수를 포함하고, 가상 보안 코드 생성 함수는 하나 이상의 세부코드를 생성하는 세부 코드 생성 함수와, 상기 세부코드를 결합하여 가상보안코드를 생성하는 세부 코드 결합 함수(즉, 복수의 세부코드를 조합하는 규칙)를 포함한다. The user terminal 200 includes a virtual security code generation function that generates a virtual security code, and the virtual security code generation function generates a virtual security code by combining the detailed code generation function and the detailed code generation function for generating one or more detailed codes. Includes a subcode combining function that generates (ie, a rule for combining multiple subcodes).
즉, 가상 보안 코드가 복수의 세부코드를 포함하는 경우, 가상 보안 코드 생성 함수는 복수의 세부 코드 생성 함수를 이용하여 복수의 세부 코드를 생성하고, 상기 세부 코드 결합 함수를 통해 상기 복수의 세부 코드를 기 설정된 조합으로 결합하여 가상 보안 코드를 생성한다.That is, when the virtual security code includes a plurality of detailed codes, the virtual security code generating function generates a plurality of detailed codes using the plurality of detailed code generating functions, and the plurality of detailed codes through the detailed code combining function are combined in a preset combination to generate a virtual security code.
일 실시예로, 세부코드생성부(230)는 스마트 카드(100)가 태깅됨에 따라 획득된 시드데이터(Seed data)를 기반으로 세부코드생성함수에 의해 상기 가상보안코드를 생성할 수 있다. In an embodiment, the detailed code generation unit 230 may generate the virtual security code by a detailed code generation function based on seed data obtained as the smart card 100 is tagged.
복수의 세부코드 간에는 서버(300)가 사용자 식별 정보의 저장공간을 탐색하기 위해 이용되는 상관관계를 가진다. There is a correlation between the plurality of detailed codes used by the server 300 to search for a storage space of user identification information.
즉, 서버(300)는 탐색 알고리즘(저장공간탐색알고리즘)을 구비하고, 상기 탐색 알고리즘은 사용자 단말기(200)로부터 수신된 가상 보안 코드에 포함된 복수의 세부 코드를 추출하고, 상기 복수의 세부코드의 상관관계를 기반으로 사용자에 부여된 사용자 식별 정보[UID(User identification)]의 저장공간을 탐색한다.That is, the server 300 includes a search algorithm (storage space search algorithm), the search algorithm extracts a plurality of detailed codes included in the virtual security code received from the user terminal 200, and the plurality of detailed codes Based on the correlation of , the storage space of user identification information [UID (User identification)] assigned to the user is searched.
상기 복수의 세부코드가 가지는 상관 관계에 대한 일 실시예로, 서버(300)에 포함된 탐색알고리즘은 복수의 세부코드 중 하나 이상의 세부코드에 대응하는 경유지점으로부터 상기 복수의 세부코드 간의 상관 관계를 기반으로 연산하여 상기 사용자 식별 정보의 저장위치를 탐색할 수 있다. 이때, 상기 경유지점은 하나 또는 복수일 수 있으며 개수 및 순서에 제한은 없다.As an embodiment of the correlation of the plurality of detailed codes, the search algorithm included in the server 300 determines the correlation between the plurality of detailed codes from a waypoint corresponding to one or more detailed codes among the plurality of detailed codes. Based on the calculation, the storage location of the user identification information may be searched. In this case, there may be one or a plurality of the waypoints, and there is no limitation on the number and order.
또한, 복수의 세부코드의 일 실시예로, 복수의 세부코드는 제1코드 및 제2코드를 포함할 수 있고, 세부코드생성부(210)는 세부코드생성함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. In addition, as an embodiment of the plurality of detailed codes, the plurality of detailed codes may include a first code and a second code, and the detailed code generating unit 210 is a first function and a second function as a detailed code generating function. Including, the first code and the second code are generated.
제1코드와 제2코드는 서버(300) 내에서 사용자 식별 정보(UID)의 저장공간을 탐색하기 위한 상관관계를 가지나, 사용자 단말기(200)는 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드생성함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다. The first code and the second code have a correlation for searching the storage space of the user identification information (UID) in the server 300, but the user terminal 200 generates the first code to increase security. The first function and the second function for generating the second code may be included as the detailed code generating function, and data on the correlation between the first code and the second code may not be included.
제1코드와 제2코드의 상관관계의 구체적인 예로, 제1코드와 제2코드는 사용자 식별 정보(UID)의 저장공간을 탐색하기 위한 각각의 역할을 수행할 수 있다. 즉, 제1코드는 상기 경유지점에 대한 정보를 포함하고, 제2코드는 상기 경유지점으로부터 사용자 식별 정보의 저장공간에 도달할 수 있는 연산에 필요한 정보를 포함할 수 있다.As a specific example of the correlation between the first code and the second code, the first code and the second code may perform respective roles for searching a storage space of user identification information (UID). That is, the first code may include information on the waypoint, and the second code may include information necessary for an operation that can reach the storage space of the user identification information from the waypoint.
한편, 본 발명의 일 실시예로 제1코드는 제1카운트를 기반으로 생성되며, 제2코드는 제2카운트를 기반으로 생성될 수 있다. Meanwhile, according to an embodiment of the present invention, the first code may be generated based on the first count, and the second code may be generated based on the second count.
이때, 제1카운트는 서버(300)에서 가상 보안 코드 생성 함수가 구동된 최초시점으로부터 가상 보안 코드가 생성된 시점까지 경과된 단위 카운트의 개수이고, 제2카운트는 사용자의 사용자 식별 정보(UID)가 서버(300)에 등록된 시점 또는 사용자의 스마트 카드(100)가 발급된 후 사용자 단말기(200)를 통해 서버(300)에 등록된 시점으로부터 경과된 단위 카운트 개수를 포함할 수 있다. In this case, the first count is the number of unit counts that have elapsed from the first time the virtual security code generation function is driven in the server 300 to the time when the virtual security code is generated, and the second count is the user's user identification information (UID) may include the number of unit counts that have elapsed from the time of registration with the server 300 or the time of registration with the server 300 through the user terminal 200 after the user's smart card 100 is issued.
즉, 제1코드를 생성하는 제1함수는 제1카운트에 대응되는 특정한 코드값을 제공하는 함수이고, 제2코드를 생성하는 제2함수는 제2카운트에 대응되는 특정한 코드값을 제공하는 함수이다. That is, the first function generating the first code is a function providing a specific code value corresponding to the first count, and the second function generating the second code is a function providing a specific code value corresponding to the second count. to be.
이를 통해, 가상보안코드의 생성시기 및 사용자와 무관하게, 동일한 가상 보안 코드가 중복되어 생성되지 않도록 할 수 있다. Through this, it is possible to prevent duplicate generation of the same virtual security code regardless of the generation time and user of the virtual security code.
예를 들어, 제1코드는 서버(300) 내에서 제1함수가 구동되는 초기시점으로부터 각 카운트마다 매칭된 코드 중에서 어느 하나의 코드값[예를 들어, 가상 보안 코드의 생성이 요청된 시점(또는 카운트)에 대응되는 코드값]으로 설정되고, 사용자 단말기(200)는 동일한 사용자에서 가상 보안 코드의 생성 시기마다 다른 코드값을 가지는 제1코드를 생성한다. For example, the first code is any one code value [for example, when generation of a virtual security code is requested ( or a code value corresponding to the count)], and the user terminal 200 generates a first code having a different code value at each generation time of the virtual security code in the same user.
또한, 동일한 시점의 경우에도 사용자 단말기(200)마다 항상 상이한 제2카운트 값을 가지게 되어, 사용자 단말기(200)는 사용자마다 동일 시점에 항상 상이한 제2코드를 생성한다. Also, even at the same time point, each user terminal 200 always has a different second count value, so that the user terminal 200 always generates a different second code at the same time point for each user.
즉, 제1코드는 각 카운트마다 상이한 코드값이 되고, 제2코드는 동일시점에 각 사용자의 사용자 단말기(200)에 설치된 앱카드 어플리케이션마다 상이한 코드값을 가지게 되어서, 결과적으로 제1코드와 제2코드가 결합된 가상 보안 코드(OTAC)는 사용자 및 가상 보안 코드 생성요청시기와 관계없이 항상 동일하지 않거나 또는 중복되지 않는 코드값으로 출력되는 것이다.That is, the first code has a different code value for each count, and the second code has a different code value for each app card application installed in the user terminal 200 of each user at the same time, as a result, the first code and the second code The virtual security code (OTAC) in which the two codes are combined is always output as a code value that is not the same or does not overlap regardless of the user and the time of request for generating the virtual security code.
또한, 다른 일실시예로, 상기 가상보안코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성할 수 있고, 이 경우 상기 가상보안코드생성함수는 상이한 MN개의 코드가 단위카운트마다 순차적으로 변경되는 제1코드 또는 제2코드를 각각 제공하는 제1함수 및 제2함수를 포함한다. Also, in another embodiment, the virtual security code generating function may generate the first N-digit code or the second code with M characters, and in this case, the virtual security code generating function is different M N The code includes a first function and a second function that respectively provide a first code or a second code that is sequentially changed for each unit count.
즉, 제1함수 또는 제2함수는 MN개의 코드가 카운트 증가에 따라 중복되지 않게 생성하는 함수로서, 특정한 시점에 대응하는 카운트에 MN개의 코드 중에 특정한 하나를 제1코드 또는 제2코드로 생성한다. 이를 통해, 사용자 단말기(200)는 MN카운트(즉, MN개의 카운트에 대응하는 시간길이) 내에 동일한 제1코드 또는 제2코드를 중복 생성하지 않고, 단위카운트마다 새로운 세부코드(즉, 제1코드 또는 제2코드)를 생성하여, 단위카운트마다 새로운 가상보안코드(OTAC)를 생성한다.That is, the first function or the second function is a function that generates M N codes not to be duplicated as the count increases, and a specific one of M N codes is designated as the first code or the second code at a count corresponding to a specific time point. create Through this, the user terminal 200 does not repeatedly generate the same first code or second code within the M N counts (ie, the length of time corresponding to the MN counts), and a new detailed code (ie, the first code or second code) to generate a new virtual security code (OTAC) for each unit count.
구체적으로, 상기 가상보안코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성함에 따라 MN개의 코드를 제1코드 또는 제2코드로 이용하는 경우, 제1코드 또는 제2코드를 세부코드생성함수가 구동되는 초기시점으로부터 각 카운트마다 매칭한다. Specifically, the virtual security code generation function generates the N-digit first code or the second code with M characters. When using the M N codes as the first code or the second code, the first code Alternatively, the second code is matched for each count from the initial time point at which the detailed code generation function is driven.
예를 들어, 단위카운트를 1초로 설정하는 경우, 세부코드생성함수가 최초 구동된 시점에서부터 매초에 상이한 MN개의 코드를 매칭한다. 그리고, 특정한 세부코드생성함수를 이용하는 주기 또는 사용자 단말기(200) 내에 가상보안코드의 생성을 위한 프로그램 또는 어플리케이션의 사용주기를 MN 카운트에 해당하는 시간길이(예를 들어, 1카운트가 1초인 경우, MN 초)보다 짧은 시간길이로 설정하면, 제1코드 또는 제2코드는 사용주기 동안에는 서로 동일한 코드로 중복 생성되지 않는다. For example, when the unit count is set to 1 second, different M N codes are matched every second from the time when the detailed code generating function is first driven. And, the period of using a specific detailed code generation function or the period of use of a program or application for generating a virtual security code in the user terminal 200 is a time length corresponding to M N count (for example, when 1 count is 1 second) , M N seconds), the first code or the second code is not duplicated with the same code during the use cycle.
즉, 시간이 흐름에 따라 카운트가 증가할 때, 사용자가 특정시점에 가상보안코드를 생성하는 경우, 사용자 단말기(200)는 특정시점에 대응되는 카운트에 매칭된 코드값을 제1코드 또는 제2코드로 생성할 수 있는 것이다.That is, when the count increases over time, when the user generates a virtual security code at a specific time point, the user terminal 200 sets the code value matched to the count corresponding to the specific time point as the first code or the second code. It can be created in code.
또한, 복수의 세부코드를 결합하여 하나의 가상보안코드(OTAC)를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. 상기 세부코드결합함수의 일 예로, 세부코드결합함수는 N자리의 제1코드와 N자리의 제2코드를 번갈아 배치하는 방식으로 가상보안코드를 생성할 수 있다. 또한, 다른 일 예로, 세부코드결합함수는 제1코드 뒤에 제2코드를 결합하는 방식으로 가상보안코드를 생성할 수도 있다. 가상보안코드에 포함되는 세부코드의 개수가 늘어남에 따라 이에 따른 가상보안코드도 중복되지 않게 다양하게 생성될 수 있다.In addition, various methods may be applied as a method of generating one virtual security code (OTAC) by combining a plurality of detailed codes. As an example of the detailed code combining function, the detailed code combining function may generate a virtual security code by alternately arranging an N-digit first code and an N-digit second code. In addition, as another example, the detailed code combining function may generate a virtual security code by combining the second code after the first code. As the number of detailed codes included in the virtual security code increases, a corresponding virtual security code may also be generated in various ways without being duplicated.
가상보안코드생성부(220)는 세부코드생성부(230)에서 생성된 하나 이상의 세부코드를 조합하여 가상보안코드를 생성하는 역할을 수행한다.The virtual security code generation unit 220 serves to generate a virtual security code by combining one or more detailed codes generated by the detailed code generation unit 230 .
이하에서는, 서버(300)에서의 가상보안코드를 검증하고, 상기 검증된 가상보안코드를 기반으로 사용자를 인증하는 방법에 대하여 설명한다. 도 9는 본 발명의 일 실시예에 따른 가상보안코드를 검증하는 방법의 개략적인 순서도이고, 도 10은 본 발명의 일 실시예에 따른 가상보안코드를 기반으로 사용자를 인증하는 방법의 개략적인 순서도이다. Hereinafter, a method of verifying the virtual security code in the server 300 and authenticating the user based on the verified virtual security code will be described. 9 is a schematic flowchart of a method for verifying a virtual security code according to an embodiment of the present invention, and FIG. 10 is a schematic flowchart of a method for authenticating a user based on a virtual security code according to an embodiment of the present invention to be.
이하, 도 4 및 도 5를 참조하여, Mifare classic 타입 4의 제2 IC칩(122)에 NDEF 포맷의 태그 정보를 저장하는 과정에 대해 상세히 설명한다.Hereinafter, a process of storing tag information in the NDEF format in the second IC chip 122 of the Mifare classic type 4 will be described in detail with reference to FIGS. 4 and 5 .
도 4는 타입 4 태그 NDEF 구조를 나타낸 도면이다.4 is a diagram illustrating a type 4 tag NDEF structure.
도 5는 텍스트 RTD(Record Type Definition)를 위한 타입 4의 NDEF 파일 예를 나타낸 도면이다.5 is a diagram illustrating an example of a type 4 NDEF file for a text RTD (Record Type Definition).
도 4 및 도 5를 참조하면, 타입 4로부터 NDEF 포맷의 태그 정보를 읽으려면, 태그 정보에 올바르게 액세스하기 위해 일련의 선택 및 읽기를 수행해야 한다. 첫째로, 0xD2760000850101의 애플리케이션 ID로 표시되는 NDEF 애플리케이션을 선택해야 한다. 둘째로, NDEF 애플리케이션에는 파일 ID가 0xE103 인 기능 컨테이너 파일이 있어야 한다.4 and 5 , in order to read tag information in the NDEF format from Type 4, a series of selection and reading must be performed in order to correctly access the tag information. First, you need to select the NDEF application represented by the application ID of 0xD2760000850101. Second, the NDEF application must have a function container file with file ID 0xE103.
여기서, CC의 내용을 읽으려면 CC의 길이를 결정하기 위해 처음 두 바이트를 먼저 읽은 다음, CC의 나머지 부분을 읽어야 하고, CC에는 NDEF 데이터에 대한 파일 ID 정보가 포함되어 있으며, 태그에서 모든 NDEF 데이터를 읽기 위해 올바른 파일 ID를 읽는 데 사용해야 한다. CC에는 저장된 각 NDEF 메시지에 대한 TLV 필드도 포함될 수 있다. 이때, 단일 태그에 여러 NDEF 파일이 있을 수 있으므로., 각 개별 NDEF 파일에 대한 정보는 CC 내에 저장되어야 한다.Here, to read the contents of the CC, the first two bytes are first read to determine the length of the CC, and then the rest of the CC is read, the CC contains the file ID information for the NDEF data, and all NDEF data from the tag should be used to read the correct file id to read . The CC may also include a TLV field for each stored NDEF message. At this time, since there may be multiple NDEF files in a single tag, information about each individual NDEF file should be stored in CC.
도 6을 참조하면, 사용자 단말기(200)는 통신부(210), 가상보안코드생성부(220), 세부코드생성부(230) 및 제어부(230)를 포함한다. Referring to FIG. 6 , the user terminal 200 includes a communication unit 210 , a virtual security code generation unit 220 , a detailed code generation unit 230 , and a control unit 230 .
도 7을 참조하면, 먼저 사용자 단말기(200)는 통신부(210)를 통해 스마트 카드(100)로부터 가상 보안 코드 생성을 위한 시드 데이터를 수신하여 획득한다(S410). Referring to FIG. 7 , first, the user terminal 200 receives and obtains seed data for generating a virtual security code from the smart card 100 through the communication unit 210 ( S410 ).
구체적으로, 사용자 단말기(200)의 통신부(210)는 스마트 카드(100)로부터 시드 데이터를 수신하는데, 무선통신 방식으로는 NFC(Near Field Communication), 블루투스(Bluetooth), BLE(Bluetooth Low Energy), 비콘(Beacon), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다. Specifically, the communication unit 210 of the user terminal 200 receives the seed data from the smart card 100, as a wireless communication method, NFC (Near Field Communication), Bluetooth (Bluetooth), BLE (Bluetooth Low Energy), Beacon, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, etc. may be used.
바람직하게는, 통신부(210)는 스마트 카드(100)가 사용자 단말기(200)에 태깅되면, NFC통신을 통해 시드 데이터를 수신할 수 있다. Preferably, when the smart card 100 is tagged to the user terminal 200 , the communication unit 210 may receive the seed data through NFC communication.
한편, 도 8을 참조하면 본 발명의 일 실시예로 S410 단계는 상기 복수의 저장 영역에 저장된 태그 정보의 유형을 식별하는 단계(S411)와, 복수의 태그 정보 중 가상 보안코드 생성을 위한 시드데이터를 독출하는 단계(S412)를 포함한다. Meanwhile, referring to FIG. 8 , according to an embodiment of the present invention, step S410 includes identifying types of tag information stored in the plurality of storage areas ( S411 ), and seed data for generating a virtual security code among a plurality of tag information. and reading ( S412 ).
상세하게는, 사용자 단말기(200)는 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하고, 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하고, 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드데이터로 획득할 수 있다.In detail, the user terminal 200 identifies at least one type of tag information related to the virtual security code among the types of the tag information, and selects at least one type of tag information corresponding to the identified type of tag information from among the plurality of storage areas. A storage area may be identified, and tag information stored in the identified storage area may be read out of the plurality of pieces of tag information to obtain the seed data.
더욱 상세하게, 사용자 단말기(200)의 제어부(240)는 스마트 카드(100)로부터 수신한 복수의 태그 정보 중 각각의 태그 정보의 유형을 식별한다. 상술한 바와 같이 NDEF 형식의 복수의 태그 정보는 시드 데이터 뿐만 아니라 가상 보안 코드 생성을 위한 프로그램의 설치, 실행 등과 관련되는 다양한 정보를 포함한다. In more detail, the control unit 240 of the user terminal 200 identifies the type of each tag information among a plurality of tag information received from the smart card 100 . As described above, the plurality of tag information in the NDEF format includes not only seed data but also various information related to installation and execution of a program for generating a virtual security code.
따라서, 제어부(240)는 복수의 태그 정보의 유형을 식별한 후 가상 보안 코드의 생성을 위해 필요한 시드 데이터 유형의 태그 정보를 독출한다. 이를 위해 태그 정보의 헤더에 저장된 페이로드 유형 정보를 이용할 수 있을 것이다. Accordingly, after identifying the types of the plurality of tag information, the controller 240 reads the tag information of the seed data type required to generate the virtual security code. For this, payload type information stored in the header of tag information may be used.
한편, 본 발명의 일 실시예로 태그 정보의 유형은 상기 사용자 단말기에서 요청하는 금융 거래 유형에 따라 설정될 수 있다. 이때 S410 단계는, 사용자 단말기에서 요청하는 금융 거래 유형을 식별하고, 상기 금융 거래 유형에 상응하는 태그 정보 유형의 태그 정보를 독출할 수 있다. Meanwhile, according to an embodiment of the present invention, the type of tag information may be set according to a financial transaction type requested by the user terminal. In this case, in step S410, a financial transaction type requested by the user terminal may be identified, and tag information of a tag information type corresponding to the financial transaction type may be read.
즉, 사용자 단말기(200)에서 수행되거나 서버(300)로 요청한 금융 거래 유형에 따라 태그 정보의 유형이 설정될 수 있다. 예를 들어, 금융 거래 중 사용자 인증이 필요한 거래 유형을 제1 유형이라고 가정한다면, 복수의 태그 정보 중 사용자 인증에 이용되는 시드 데이터를 상기 제1 유형에 상응하는 태그 정보 유형으로 설정한다. That is, the type of tag information may be set according to the type of financial transaction performed by the user terminal 200 or requested by the server 300 . For example, if it is assumed that a transaction type requiring user authentication during a financial transaction is a first type, seed data used for user authentication among a plurality of tag information is set as a tag information type corresponding to the first type.
제어부(240)는 가상 보안 코드 생성 프로그램에서 수행되고 있는 사용자의 금융 거래 유형을 식별한 후 해당 금융 거래 유형에 매칭되는 태그 정보만을 독출하여, 각각의 프로세스에 해당하는 적절한 태그 정보의 추출이 가능하다. After identifying the user's financial transaction type being performed in the virtual security code generation program, the control unit 240 reads only tag information matching the corresponding financial transaction type, and it is possible to extract appropriate tag information corresponding to each process .
한편, 제어부(240)는 본 발명에 따른 가상보안코드의 생성을 위해 스마트카드(100)와 NFC 태깅된 경우에는, 스마트카드(100)로부터 시드데이터를 독출하여 가상보안코드를 생성하는데 이용할 수 있다.On the other hand, when NFC is tagged with the smart card 100 for the generation of the virtual security code according to the present invention, the control unit 240 may read the seed data from the smart card 100 and use it to generate a virtual security code. .
반면에, 제어부(240)는 앞서 설명한 가상보안코드의 생성 시점이 아닌 다른 시점에 스마트카드(100)와 NFC 통신 방식으로 태깅된 경우에는, 상기 스마트카드(100)와 NFC 태깅한 사용자의 의도가 상기 가상보안코드의 생성이 아닌 스마트카드(100)과 연계된 어플리케이션(또는 프로그램)의 사용 의도이므로, 스마트카드(100)로부터 스마트카드(100)와 연계된 어플리케이션(또는 프로그램)의 실행 관련 데이터를 획득할 수 있다. On the other hand, if the control unit 240 is tagged with the smart card 100 and the NFC communication method at a time other than the generation time of the virtual security code described above, the intention of the user who tagged the smart card 100 with the smart card 100 is Since the application (or program) associated with the smart card 100 is intended to be used rather than the generation of the virtual security code, data related to the execution of the application (or program) associated with the smart card 100 from the smart card 100 is retrieved. can be obtained
이때, 제어부(240)는 사용자 단말기(200)에 스마트카드(100)와 연계된 복수의 어플리케이션(또는 프로그램)이 설치된 경우, 상기 복수의 어플리케이션(또는 프로그램) 중 기 설정된 우선 순위가 가장 높은 어플리케이션(또는 프로그램)의 실행 관련 데이터를 스마트카드(100)로부터 획득할 수 있다. 일 예로, 상기 우선 순위는 스마트카드(100)에 디폴트로 설정된 어플리케이션(또는 프로그램) 및 사용자의 사용 빈도 중 적어도 하나를 포함할 수 있다.At this time, when a plurality of applications (or programs) associated with the smart card 100 are installed in the user terminal 200, the controller 240 controls the application (or the application having the highest preset priority among the plurality of applications (or programs)) or program) execution related data may be obtained from the smart card 100 . For example, the priority may include at least one of an application (or program) set as a default in the smart card 100 and a user's frequency of use.
또한, 제어부(240)는 스마트카드(100)로부터 해당 어플리케이션(또는 프로그램)의 실행 관련 데이터가 획득되어도, 상기 획득된 실행 관련 데이터를 기반으로 상기 해당 어플리케이션(또는 프로그램)이 자동으로 실행되지 않도록 차단할 수도 있고, 이 경우 사용자의 패스워드를 통한 인증이 성공된 경우에만 상기 해당 어플리케이션(또는 프로그램)을 실행하여 화면 상에 출력할 수 있다. 이때, 상기 패스워드는 사용자가 설정한 텍스트 정보(한글, 영문, 숫자, 특수문자, 기호 중 하나 이상이 조합된 형태) 및 사용자의 생체 정보(지문, 홍채, 얼굴 중 적어도 하나) 중 적어도 하나를 기반으로 사용자에 의해 설정될 수 있다.In addition, even when execution-related data of the corresponding application (or program) is obtained from the smart card 100 , the control unit 240 blocks the corresponding application (or program) from being automatically executed based on the obtained execution-related data. Also, in this case, only when authentication through the user's password is successful, the corresponding application (or program) may be executed and outputted on the screen. In this case, the password is based on at least one of text information (a combination of one or more of Korean, English, numbers, special characters, and symbols) and user's biometric information (at least one of a fingerprint, iris, and face) set by the user. can be set by the user.
즉, 해당 어플리케이션(또는 프로그램)의 사용 목적이 없으나 실수로 스마트카드(100)와 NFC 태깅되거나, 또는 해킹 등의 외부 요인으로 인해 스마트카드(100)로부터 해당 어플리케이션(또는 프로그램)이 실행 관련 데이터를 획득하여도, 추가 사용자 인증 과정을 통해 실제 사용자의 사용 의도를 확인하고, 인증이 성공된 경우에만 해당 어플리케이션(또는 프로그램)을 실행하는 것이다.That is, the application (or program) has no purpose of use, but is accidentally tagged with the smart card 100 and NFC, or the application (or program) receives execution-related data from the smart card 100 due to external factors such as hacking. Even if obtained, the actual user's intention to use is confirmed through an additional user authentication process, and the corresponding application (or program) is executed only when the authentication is successful.
한편, 도 7를 참조하면 사용자 단말기(200)는 스마트 카드로부터 획득한 시드데이터와 시간 데이터를 기반으로, 가상 보안 코드를 생성한다(S420).Meanwhile, referring to FIG. 7 , the user terminal 200 generates a virtual security code based on the seed data and time data obtained from the smart card ( S420 ).
이하에서는, 본 발명의 일 실시예인 가상 보안 코드를 생성하는 구체적인 방법에 대하여 설명한다. Hereinafter, a specific method of generating a virtual security code according to an embodiment of the present invention will be described.
세부코드생성부(230)는 하나 또는 복수의 세부코드를 생성하는 역할을 수행한다. 세부 코드는 가상 보안 코드를 구성하는 일부 코드를 의미하는데, 가상 보안 코드는 세부 코드 만으로 구성될 수도 있으며, 또는 OTP함수에 의해 생성된 제1 가상보안코드에 하나 또는 복수의 세부 코드를 결합하여 최종 가상 보안 코드(OTAC)의 형태로 형성될 수도 있다. The detailed code generator 230 generates one or a plurality of detailed codes. The detailed code refers to some codes constituting the virtual security code. The virtual security code may consist only of the detailed code, or by combining one or more detailed codes with the first virtual security code generated by the OTP function, the final It may be formed in the form of a virtual security code (OTAC).
사용자 단말기(200)는 가상 보안 코드를 생성하는 가상 보안 코드 생성 함수를 포함하고, 가상 보안 코드 생성 함수는 하나 이상의 세부코드를 생성하는 세부 코드 생성 함수와, 상기 세부코드를 결합하여 가상보안코드를 생성하는 세부 코드 결합 함수(즉, 복수의 세부코드를 조합하는 규칙)를 포함한다. The user terminal 200 includes a virtual security code generation function that generates a virtual security code, and the virtual security code generation function generates a virtual security code by combining the detailed code generation function and the detailed code generation function for generating one or more detailed codes. Includes a subcode combining function that generates (ie, a rule for combining multiple subcodes).
즉, 가상 보안 코드가 복수의 세부코드를 포함하는 경우, 가상 보안 코드 생성 함수는 복수의 세부 코드 생성 함수를 이용하여 복수의 세부 코드를 생성하고, 상기 세부 코드 결합 함수를 통해 상기 복수의 세부 코드를 기 설정된 조합으로 결합하여 가상 보안 코드를 생성한다.That is, when the virtual security code includes a plurality of detailed codes, the virtual security code generating function generates a plurality of detailed codes using the plurality of detailed code generating functions, and the plurality of detailed codes through the detailed code combining function are combined in a preset combination to generate a virtual security code.
일 실시예로, 세부코드생성부(230)는 스마트 카드(100)가 태깅됨에 따라 획득된 시드데이터(Seed data)를 기반으로 세부코드생성함수에 의해 상기 가상보안코드를 생성할 수 있다. In an embodiment, the detailed code generation unit 230 may generate the virtual security code by a detailed code generation function based on seed data obtained as the smart card 100 is tagged.
복수의 세부코드 간에는 서버(300)가 사용자 식별 정보의 저장공간을 탐색하기 위해 이용되는 상관관계를 가진다. There is a correlation between the plurality of detailed codes used by the server 300 to search for a storage space of user identification information.
즉, 서버(300)는 탐색 알고리즘(저장공간탐색알고리즘)을 구비하고, 상기 탐색 알고리즘은 사용자 단말기(200)로부터 수신된 가상 보안 코드에 포함된 복수의 세부 코드를 추출하고, 상기 복수의 세부코드의 상관관계를 기반으로 사용자에 부여된 사용자 식별 정보[UID(User identification)]의 저장공간을 탐색한다.That is, the server 300 includes a search algorithm (storage space search algorithm), the search algorithm extracts a plurality of detailed codes included in the virtual security code received from the user terminal 200, and the plurality of detailed codes Based on the correlation of , the storage space of user identification information [UID (User identification)] assigned to the user is searched.
상기 복수의 세부코드가 가지는 상관 관계에 대한 일 실시예로, 서버(300)에 포함된 탐색알고리즘은 복수의 세부코드 중 하나 이상의 세부코드에 대응하는 경유지점으로부터 상기 복수의 세부코드 간의 상관 관계를 기반으로 연산하여 상기 사용자 식별 정보의 저장위치를 탐색할 수 있다. 이때, 상기 경유지점은 하나 또는 복수일 수 있으며 개수 및 순서에 제한은 없다.As an embodiment of the correlation of the plurality of detailed codes, the search algorithm included in the server 300 determines the correlation between the plurality of detailed codes from a waypoint corresponding to one or more detailed codes among the plurality of detailed codes. Based on the calculation, the storage location of the user identification information may be searched. In this case, there may be one or a plurality of the waypoints, and there is no limitation on the number and order.
또한, 복수의 세부코드의 일 실시예로, 복수의 세부코드는 제1코드 및 제2코드를 포함할 수 있고, 세부코드생성부(210)는 세부코드생성함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. In addition, as an embodiment of the plurality of detailed codes, the plurality of detailed codes may include a first code and a second code, and the detailed code generating unit 210 is a first function and a second function as a detailed code generating function. Including, the first code and the second code are generated.
제1코드와 제2코드는 서버(300) 내에서 사용자 식별 정보(UID)의 저장공간을 탐색하기 위한 상관관계를 가지나, 사용자 단말기(200)는 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드생성함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다. The first code and the second code have a correlation for searching the storage space of the user identification information (UID) in the server 300, but the user terminal 200 generates the first code to increase security. The first function and the second function for generating the second code may be included as the detailed code generating function, and data on the correlation between the first code and the second code may not be included.
제1코드와 제2코드의 상관관계의 구체적인 예로, 제1코드와 제2코드는 사용자 식별 정보(UID)의 저장공간을 탐색하기 위한 각각의 역할을 수행할 수 있다. 즉, 제1코드는 상기 경유지점에 대한 정보를 포함하고, 제2코드는 상기 경유지점으로부터 사용자 식별 정보의 저장공간에 도달할 수 있는 연산에 필요한 정보를 포함할 수 있다.As a specific example of the correlation between the first code and the second code, the first code and the second code may perform respective roles for searching a storage space of user identification information (UID). That is, the first code may include information on the waypoint, and the second code may include information necessary for an operation that can reach the storage space of the user identification information from the waypoint.
한편, 본 발명의 일 실시예로 제1코드는 제1카운트를 기반으로 생성되며, 제2코드는 제2카운트를 기반으로 생성될 수 있다. Meanwhile, according to an embodiment of the present invention, the first code may be generated based on the first count, and the second code may be generated based on the second count.
이때, 제1카운트는 서버(300)에서 가상 보안 코드 생성 함수가 구동된 최초시점으로부터 가상 보안 코드가 생성된 시점까지 경과된 단위 카운트의 개수이고, 제2카운트는 사용자의 사용자 식별 정보(UID)가 서버(300)에 등록된 시점 또는 사용자의 스마트 카드(100)가 발급된 후 사용자 단말기(200)를 통해 서버(300)에 등록된 시점으로부터 경과된 단위 카운트 개수를 포함할 수 있다. In this case, the first count is the number of unit counts that have elapsed from the first time the virtual security code generation function is driven in the server 300 to the time when the virtual security code is generated, and the second count is the user's user identification information (UID) may include the number of unit counts that have elapsed from the time of registration with the server 300 or the time of registration with the server 300 through the user terminal 200 after the user's smart card 100 is issued.
즉, 제1코드를 생성하는 제1함수는 제1카운트에 대응되는 특정한 코드값을 제공하는 함수이고, 제2코드를 생성하는 제2함수는 제2카운트에 대응되는 특정한 코드값을 제공하는 함수이다. That is, the first function generating the first code is a function providing a specific code value corresponding to the first count, and the second function generating the second code is a function providing a specific code value corresponding to the second count. to be.
이를 통해, 가상보안코드의 생성시기 및 사용자와 무관하게, 동일한 가상 보안 코드가 중복되어 생성되지 않도록 할 수 있다. Through this, it is possible to prevent duplicate generation of the same virtual security code regardless of the generation time and user of the virtual security code.
예를 들어, 제1코드는 서버(300) 내에서 제1함수가 구동되는 초기시점으로부터 각 카운트마다 매칭된 코드 중에서 어느 하나의 코드값[예를 들어, 가상 보안 코드의 생성이 요청된 시점(또는 카운트)에 대응되는 코드값]으로 설정되고, 사용자 단말기(200)는 동일한 사용자에서 가상 보안 코드의 생성 시기마다 다른 코드값을 가지는 제1코드를 생성한다. For example, the first code is any one code value [for example, when generation of a virtual security code is requested ( or a code value corresponding to the count)], and the user terminal 200 generates a first code having a different code value at each generation time of the virtual security code in the same user.
또한, 동일한 시점의 경우에도 사용자 단말기(200)마다 항상 상이한 제2카운트 값을 가지게 되어, 사용자 단말기(200)는 사용자마다 동일 시점에 항상 상이한 제2코드를 생성한다. Also, even at the same time point, each user terminal 200 always has a different second count value, so that the user terminal 200 always generates a different second code at the same time point for each user.
즉, 제1코드는 각 카운트마다 상이한 코드값이 되고, 제2코드는 동일시점에 각 사용자의 사용자 단말기(200)에 설치된 앱카드 어플리케이션마다 상이한 코드값을 가지게 되어서, 결과적으로 제1코드와 제2코드가 결합된 가상 보안 코드(OTAC)는 사용자 및 가상 보안 코드 생성요청시기와 관계없이 항상 동일하지 않거나 또는 중복되지 않는 코드값으로 출력되는 것이다.That is, the first code has a different code value for each count, and the second code has a different code value for each app card application installed in the user terminal 200 of each user at the same time, as a result, the first code and the second code The virtual security code (OTAC) in which the two codes are combined is always output as a code value that is not the same or does not overlap regardless of the user and the time of request for generating the virtual security code.
또한, 다른 일실시예로, 상기 가상보안코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성할 수 있고, 이 경우 상기 가상보안코드생성함수는 상이한 MN개의 코드가 단위카운트마다 순차적으로 변경되는 제1코드 또는 제2코드를 각각 제공하는 제1함수 및 제2함수를 포함한다. Also, in another embodiment, the virtual security code generating function may generate the first N-digit code or the second code with M characters, and in this case, the virtual security code generating function is different M N The code includes a first function and a second function that respectively provide a first code or a second code that is sequentially changed for each unit count.
즉, 제1함수 또는 제2함수는 MN개의 코드가 카운트 증가에 따라 중복되지 않게 생성하는 함수로서, 특정한 시점에 대응하는 카운트에 MN개의 코드 중에 특정한 하나를 제1코드 또는 제2코드로 생성한다. 이를 통해, 사용자 단말기(200)는 MN카운트(즉, MN개의 카운트에 대응하는 시간길이) 내에 동일한 제1코드 또는 제2코드를 중복 생성하지 않고, 단위카운트마다 새로운 세부코드(즉, 제1코드 또는 제2코드)를 생성하여, 단위카운트마다 새로운 가상보안코드(OTAC)를 생성한다.That is, the first function or the second function is a function that generates M N codes not to be duplicated as the count increases, and a specific one of M N codes is designated as the first code or the second code at a count corresponding to a specific time point. create Through this, the user terminal 200 does not repeatedly generate the same first code or second code within the M N counts (ie, the length of time corresponding to the MN counts), and a new detailed code (ie, the first code or second code) to generate a new virtual security code (OTAC) for each unit count.
구체적으로, 상기 가상보안코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성함에 따라 MN개의 코드를 제1코드 또는 제2코드로 이용하는 경우, 제1코드 또는 제2코드를 세부코드생성함수가 구동되는 초기시점으로부터 각 카운트마다 매칭한다. Specifically, the virtual security code generation function generates the N-digit first code or the second code with M characters. When using the M N codes as the first code or the second code, the first code Alternatively, the second code is matched for each count from the initial time point at which the detailed code generation function is driven.
예를 들어, 단위카운트를 1초로 설정하는 경우, 세부코드생성함수가 최초 구동된 시점에서부터 매초에 상이한 MN개의 코드를 매칭한다. 그리고, 특정한 세부코드생성함수를 이용하는 주기 또는 사용자 단말기(200) 내에 가상보안코드의 생성을 위한 프로그램 또는 어플리케이션의 사용주기를 MN 카운트에 해당하는 시간길이(예를 들어, 1카운트가 1초인 경우, MN 초)보다 짧은 시간길이로 설정하면, 제1코드 또는 제2코드는 사용주기 동안에는 서로 동일한 코드로 중복 생성되지 않는다. For example, when the unit count is set to 1 second, different M N codes are matched every second from the time when the detailed code generating function is first driven. And, the period of using a specific detailed code generation function or the period of use of a program or application for generating a virtual security code in the user terminal 200 is a time length corresponding to M N count (for example, when 1 count is 1 second) , M N seconds), the first code or the second code is not duplicated with the same code during the use cycle.
즉, 시간이 흐름에 따라 카운트가 증가할 때, 사용자가 특정시점에 가상보안코드를 생성하는 경우, 사용자 단말기(200)는 특정시점에 대응되는 카운트에 매칭된 코드값을 제1코드 또는 제2코드로 생성할 수 있는 것이다.That is, when the count increases over time, when the user generates a virtual security code at a specific time point, the user terminal 200 sets the code value matched to the count corresponding to the specific time point as the first code or the second code. It can be created in code.
또한, 복수의 세부코드를 결합하여 하나의 가상보안코드(OTAC)를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. 상기 세부코드결합함수의 일 예로, 세부코드결합함수는 N자리의 제1코드와 N자리의 제2코드를 번갈아 배치하는 방식으로 가상보안코드를 생성할 수 있다. 또한, 다른 일 예로, 세부코드결합함수는 제1코드 뒤에 제2코드를 결합하는 방식으로 가상보안코드를 생성할 수도 있다. 가상보안코드에 포함되는 세부코드의 개수가 늘어남에 따라 이에 따른 가상보안코드도 중복되지 않게 다양하게 생성될 수 있다.In addition, various methods may be applied as a method of generating one virtual security code (OTAC) by combining a plurality of detailed codes. As an example of the detailed code combining function, the detailed code combining function may generate a virtual security code by alternately arranging an N-digit first code and an N-digit second code. In addition, as another example, the detailed code combining function may generate a virtual security code by combining the second code after the first code. As the number of detailed codes included in the virtual security code increases, a corresponding virtual security code may also be generated in various ways without being duplicated.
가상보안코드생성부(220)는 세부코드생성부(230)에서 생성된 하나 이상의 세부코드를 조합하여 가상보안코드를 생성하는 역할을 수행한다.The virtual security code generation unit 220 serves to generate a virtual security code by combining one or more detailed codes generated by the detailed code generation unit 230 .
이하에서는, 서버(300)에서의 가상보안코드를 검증하고, 상기 검증된 가상보안코드를 기반으로 사용자를 인증하는 방법에 대하여 설명한다. 도 9는 본 발명의 일 실시예에 따른 가상보안코드를 검증하는 방법의 개략적인 순서도이고, 도 10은 본 발명의 일 실시예에 따른 가상보안코드를 기반으로 사용자를 인증하는 방법의 개략적인 순서도이다. Hereinafter, a method of verifying the virtual security code in the server 300 and authenticating the user based on the verified virtual security code will be described. 9 is a schematic flowchart of a method for verifying a virtual security code according to an embodiment of the present invention, and FIG. 10 is a schematic flowchart of a method for authenticating a user based on a virtual security code according to an embodiment of the present invention to be.
도 9를 참조하면, 본 발명의 일 실시예로, 서버(300)가 상기 사용자 단말기(200)로부터 상기 가상보안코드를 수신하는 단계(S440) 및 상기 가상보안코드를 수신한 시간 데이터 및 상기 가상 보안 코드의 시간 데이터를 비교하여 상기 가상 보안 코드를 검증하는 단계(S450)를 포함한다. Referring to FIG. 9 , in an embodiment of the present invention, the server 300 receives the virtual security code from the user terminal 200 ( S440 ) and time data and the virtual security code received and verifying the virtual security code by comparing time data of the security code (S450).
구체적으로, 서버(300)에서 사용자 단말기(200)를 통해 전달된 가상보안코드가 정상적으로 생성된 것인지를 검증한다. 즉, 서버(300)는 가상보안코드를 수신한 후 서버(300)에 저장된 정보(즉, 가상보안코드생성함수 및 시드 데이터)를 바탕으로 상기 수신한 가상보안코드가 금융 거래 요청 시점에 정상적으로 생성된 것인지를 확인하여 가상보안코드의 정상여부를 판단한다.Specifically, it is verified whether the virtual security code transmitted from the server 300 through the user terminal 200 is normally generated. That is, after the server 300 receives the virtual security code, the received virtual security code is normally generated at the time of the financial transaction request based on information stored in the server 300 (ie, virtual security code generation function and seed data). Check whether the virtual security code is normal or not.
예를 들어, 서버(300)(예를 들어, 금융사서버)는 가상보안코드생성함수(즉, OTP함수)를 가상보안코드를 수신한 카운트로부터 특정범위 내의 카운트를 입력하여 산출된 OTP번호 중에 가상보안코드와 일치하는 값이 있는지 여부를 확인한다. 서버(300)는 가상보안코드에 가상보안코드생성함수의 역함수를 적용하여 가상보안코드가 생성된 시점에 상응하는 카운트를 찾아낸다. 가상보안코드의 전송시간이나 딜레이에 의해 사용자 단말기(200)에서 가상보안코드가 생성된 시점과 서버(300)가 가상보안코드를 수신한 시점의 차이가 존재함에 따라 서버(300)가 가상보안코드를 수신한 카운트와 가상보안코드에 해당하는 OTP번호를 생성한 카운트가 일치하지 않을 수도 있으므로, 서버(300)는 가상보안코드를 수신한 카운트로부터 오차범위를 허용한다. For example, the server 300 (eg, a financial institution server) uses the virtual security code generation function (ie, OTP function) to input a count within a specific range from the count of receiving the virtual security code, and a virtual among the calculated OTP numbers. Check whether there is a value that matches the security code. The server 300 applies the inverse function of the virtual security code generation function to the virtual security code to find a count corresponding to the time when the virtual security code is generated. As there is a difference between the time when the virtual security code is generated in the user terminal 200 and the time when the server 300 receives the virtual security code due to the transmission time or delay of the virtual security code, the server 300 generates the virtual security code Since the count of receiving , and the count of generating the OTP number corresponding to the virtual security code may not match, the server 300 allows an error range from the count of receiving the virtual security code.
한편 본 발명의 일 실시예로 상술한 카드데이터 기반의 가상보안코드생성방법은 서버(300)가 상기 가상보안코드를 기반으로 사용자 식별 정보의 저장 위치를 탐색하여 상기 사용자 식별 정보를 추출하는 단계(S460)와, 상기 추출한 사용자 식별 정보를 기반으로 사용자 인증을 수행하는 단계(S470)를 포함한다. Meanwhile, in the above-described card data-based virtual security code generation method as an embodiment of the present invention, the server 300 extracts the user identification information by searching for a storage location of the user identification information based on the virtual security code ( S460) and performing user authentication based on the extracted user identification information (S470).
이때 상술한 바와 같이 상기 가상보안코드는 복수의 세부코드를 포함하는데, 복수의 세부코드는, 사용자 식별 정보의 저장 위치 탐색의 시작지점을 설정하는 제1코드와 특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 사용자 식별 정보의 저장위치로의 탐색경로를 설정하는 제2코드로 구성될 수 있다. At this time, as described above, the virtual security code includes a plurality of detailed codes. The plurality of detailed codes includes a first code for setting a starting point of a search for a storage location of user identification information and a specific search method, the starting point It may be composed of a second code for setting a search path from the to the storage location of the user identification information.
한편, 제1코드 및 제2코드의 구체적인 예로, 제1코드에 대응되는 코드값(제1코드값)은 가상보안코드생성함수 구동시점을 기준으로 현재시점에 대응되는 카운트에서 OTP코드에 제1가상보안코드값을 더한 값일 수 있다. 제1코드값은 실제코드 탐색 과정에서 경유지점의 역할을 한다. 제2코드에 대응되는 코드값(제2코드값)은 상기 제1코드값에서 사용자 식별 정보(예를 들어, UID)의 저장위치값을 뺀 값일 수 있다. 제2코드값은 경유지점(제1코드값)으로부터 사용자 식별 정보의 저장위치값까지의 카운트이다.On the other hand, as a specific example of the first code and the second code, the code value (the first code value) corresponding to the first code is the first in the OTP code in the count corresponding to the current time based on the driving time of the virtual security code generation function. It may be a value obtained by adding a virtual security code value. The first code value serves as a waypoint in the actual code search process. The code value (second code value) corresponding to the second code may be a value obtained by subtracting a storage location value of user identification information (eg, UID) from the first code value. The second code value is a count from the waypoint (first code value) to the storage location value of the user identification information.
즉, 사용자 단말기(200)가 생성하는 제1코드 및 제2코드의 일 실시예는 다음과 같다.That is, an embodiment of the first code and the second code generated by the user terminal 200 are as follows.
제1코드 = 현재시점 카운트 + OTP코드(제1가상보안코드)1st code = current time count + OTP code (1st virtual security code)
제2코드 = 제1코드 - 실제코드의 저장위치값2nd code = 1st code - actual code storage location value
상술한 바와 같이 최종 가상보안코드는 OTP함수에 의해 생성된 제1 가상보안코드, 제1코드 및 제2 코드로 구성될 수 있다. 이때 제1가상보안코드는 OTP함수에 의해 생성되는 코드로서, 매 시점 다르게 생성되는 코드이다. 따라서, 세부코드는 가상보안코드의 생성시점에 따라 다르게 생성되므로 중복되어 생성되는 것을 방지할 수 있고, 보안성을 강화시키는 효과가 있다.As described above, the final virtual security code may be composed of the first virtual security code, the first code, and the second code generated by the OTP function. In this case, the first virtual security code is a code generated by the OTP function, and is a code generated differently every time. Therefore, since the detailed code is generated differently depending on the generation time of the virtual security code, it is possible to prevent duplicated generation, and there is an effect of enhancing security.
제1코드 및 제2코드의 구체적인 다른 예로, 제1코드에 대응되는 코드값(제1코드값)은 OTP코드값에 사용자 식별정보(UID)를 더한 값이고, 제2코드에 대응되는 코드값(제2코드값)은 OTP코드값일 수 있다. 이때, 사용자 식별 정보(UID)의 값은 사용자 또는 사용자 단말기(200)에 대하여 특정 시점(예를 들어, 제품 제조시점, 사용자 등록시점, 결제수단 등록시점 등)에 부여되어, 각 사용자 또는 사용자 단말기를 식별할 수 있는 코드값이다.As another specific example of the first code and the second code, a code value (first code value) corresponding to the first code is a value obtained by adding user identification information (UID) to an OTP code value, and a code value corresponding to the second code (second code value) may be an OTP code value. At this time, the value of the user identification information (UID) is given to the user or the user terminal 200 at a specific time (eg, product manufacturing time, user registration time, payment method registration time, etc.), each user or user terminal It is a code value that can be identified.
즉, 사용자 단말기(200)가 생성하는 제1코드의 다른 실시예는 다음과 같다. 이때, 가상보안코드는 제1 가상보안코드와 제1 코드를 기초로 생성된다. That is, another embodiment of the first code generated by the user terminal 200 is as follows. At this time, the virtual security code is generated based on the first virtual security code and the first code.
제1코드 = OTP코드(제1가상보안코드) + UID1st code = OTP code (1st virtual security code) + UID
이상에서 전술한 본 발명에 따른 방법은, 하드웨어인 장치와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The method according to the present invention described above may be implemented as a program (or application) and stored in a medium in order to be executed in combination with a hardware device.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-described program is C, C++, JAVA, machine language, etc. that a processor (CPU) of the computer can read through a device interface of the computer in order for the computer to read the program and execute the methods implemented as a program It may include code (Code) coded in the computer language of Such code may include functional code related to a function defining functions necessary for executing the methods, etc. can do. In addition, the code may further include additional information necessary for the processor of the computer to execute the functions or code related to memory reference for which location (address address) in the internal or external memory of the computer should be referenced. have. In addition, when the processor of the computer needs to communicate with any other computer or server located remotely in order to execute the above functions, the code uses the communication module of the computer to determine how to communicate with any other computer or server remotely. It may further include a communication-related code for whether to communicate and what information or media to transmit and receive during communication.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, a cache, a memory, etc., but a medium that stores data semi-permanently and can be read by a device. Specifically, examples of the storage medium include, but are not limited to, a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like. That is, the program may be stored in various recording media on various servers accessible by the computer or in various recording media on the computer of the user. In addition, the medium may be distributed in a computer system connected by a network, and a computer-readable code may be stored in a distributed manner.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of the method or algorithm described in relation to the embodiment of the present invention may be implemented directly in hardware, implemented as 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 type of computer-readable recording medium well known in the art to which the present invention pertains.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.As mentioned above, although 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 realize that the present invention can be embodied in other specific forms without changing its technical spirit or essential features. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

Claims (13)

  1. 사용자 단말기가 스마트 카드로부터 가상 보안 코드의 생성에 필요한 시드 데이터를 획득하는 단계;obtaining, by the user terminal, seed data necessary for generating a virtual security code from the smart card;
    상기 사용자 단말기가 상기 시드 데이터 및 시간 데이터를 기반으로, 가상 보안 코드를 생성하는 단계; 및generating, by the user terminal, a virtual security code based on the seed data and time data; and
    상기 가상 보안 코드를 서버로 송신하여 사용자 인증을 요청하는 단계를 포함하는, sending the virtual security code to a server to request user authentication,
    카드데이터 기반의 가상보안코드생성방법.A method of generating a virtual security code based on card data.
  2. 제1항에 있어서,According to claim 1,
    상기 스마트 카드는, 복수의 태그 정보를 포함하고, The smart card includes a plurality of tag information,
    상기 복수의 태그 정보는, 상기 스마트 카드 내에서 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역에 분리되어 저장되며,The plurality of tag information is stored separately in a plurality of storage areas allocated to each type of tag information in the smart card,
    상기 획득 단계는, The acquisition step is
    상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하는 단계;identifying at least one type of tag information related to the virtual security code from among the types of tag information;
    상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하는 단계; 및identifying at least one storage area corresponding to the identified tag information type among the plurality of storage areas; and
    상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드 데이터로 획득하는 단계를 포함하는,reading tag information stored in the identified storage area from among the plurality of tag information and obtaining the seed data as the seed data;
    카드데이터 기반의 가상보안코드생성방법.A method of generating a virtual security code based on card data.
  3. 제2항에 있어서, 3. The method of claim 2,
    상기 복수의 태그 정보는, NDEF(NFC Data Exchange Format)의 형식으로 상기 복수의 저장 영역에 분리되어 저장되고,The plurality of tag information is stored separately in the plurality of storage areas in a format of NDEF (NFC Data Exchange Format),
    상기 시드 데이터는, The seed data is
    상기 사용자 단말기에 상기 스마트 카드가 태깅될 경우, NFC방식을 기초로 획득되는,When the smart card is tagged in the user terminal, obtained based on the NFC method,
    카드데이터 기반의 가상보안코드생성방법.A method of generating a virtual security code based on card data.
  4. 제3항에 있어서, 4. The method of claim 3,
    상기 복수의 태그 정보는, The plurality of tag information,
    상기 태그 정보의 유형에 따라 설정된 상기 사용자 단말기의 각각의 태그 정보의 사용 순서 정보와 매칭되어 상기 복수의 저장 영역에 분리되어 저장되거나, 또는 텍스트 형식으로 상기 복수의 저장 영역에 분리되어 저장되는,카드데이터 기반의 가상보안코드생성방법.The card is stored separately in the plurality of storage areas by matching the use order information of each tag information of the user terminal set according to the type of the tag information, or stored separately in the plurality of storage areas in a text format, Card Data-based virtual security code generation method.
  5. 제2항에 있어서, 3. The method of claim 2,
    상기 식별된 태그 정보 유형은, 상기 사용자 단말기에서 요청한 금융 거래 유형을 포함하고,The identified tag information type includes a financial transaction type requested by the user terminal,
    상기 시드 데이터는, 상기 복수의 저장 영역 중에서 상기 사용자 단말기에서 요청한 금융 거래 유형에 해당하는 적어도 하나의 저장 영역에 저장된 태그 정보로부터 획득되는,The seed data is obtained from tag information stored in at least one storage area corresponding to the type of financial transaction requested by the user terminal among the plurality of storage areas,
    카드데이터 기반의 가상보안코드생성방법.A method of generating a virtual security code based on card data.
  6. 제2항에 있어서, 3. The method of claim 2,
    상기 사용자 단말기가 상기 획득된 시드 데이터를 기반으로 상기 가상 보안 코드를 생성하여 서버로 송신하는 단계; 및generating, by the user terminal, the virtual security code based on the obtained seed data and transmitting the virtual security code to a server; and
    상기 서버로부터 상기 가상 보안 코드를 검증받는 단계;를 더 포함하고,The method further comprising: verifying the virtual security code from the server;
    상기 서버는, 상기 가상 보안 코드를 수신한 시간 데이터 및 상기 가상 보안 코드의 시간 데이터를 비교하여 상기 가상 보안 코드를 검증하는,The server verifies the virtual security code by comparing the time data for receiving the virtual security code with the time data of the virtual security code,
    카드데이터 기반의 가상보안코드생성방법.A method of generating a virtual security code based on card data.
  7. 제6항에 있어서, 7. The method of claim 6,
    상기 서버는, 상기 가상 보안 코드를 기반으로 사용자 식별 정보의 저장 위치를 탐색함으로써 상기 사용자 식별 정보를 추출하고, 상기 추출된 사용자 식별 정보를 기반으로 사용자 인증을 수행하며, The server extracts the user identification information by searching for a storage location of the user identification information based on the virtual security code, and performs user authentication based on the extracted user identification information,
    상기 가상 보안 코드는, 복수의 세부코드를 포함하고, The virtual security code includes a plurality of detailed codes,
    상기 복수의 세부코드는,The plurality of detailed codes,
    상기 사용자 식별 정보의 저장 위치 탐색의 시작지점을 설정하는 제1코드; 및 a first code for setting a starting point of a search for a storage location of the user identification information; and
    특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 사용자 식별 정보의 저장위치로의 탐색경로를 설정하는 제2코드를 포함하는,a second code for setting a search path from the starting point to a storage location of the user identification information according to a specific search method;
    카드데이터 기반의 가상보안코드생성방법.A method of generating a virtual security code based on card data.
  8. 제2항에 있어서, 3. The method of claim 2,
    상기 스마트 카드는, The smart card is
    상기 가상 보안 코드 생성을 위한 프로그램의 실행 데이터를 포함한 제1 태그 정보를 상기 복수의 저장 영역 중 제1 저장 영역에 저장하고, 상기 시드 데이터를 포함하는 제2 태그 정보를 상기 복수의 저장 영역 중 제2 저장 영역에 저장하는,First tag information including execution data of a program for generating the virtual security code is stored in a first storage area of the plurality of storage areas, and second tag information including the seed data is stored in a second storage area of the plurality of storage areas 2 to save to the storage area,
    카드데이터 기반의 가상보안코드생성방법.A method of generating a virtual security code based on card data.
  9. 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역을 구비한 IC칩; 및an IC chip having a plurality of storage areas each allocated to each type of tag information; and
    사용자 단말기와 태깅 시에 NFC 기반의 통신을 수행하는 통신부;를 포함하고,Including; a communication unit that performs NFC-based communication when tagging with the user terminal;
    상기 복수의 저장 영역에는, 상기 사용자 단말기에서 가상 보안 코드를 생성하는데 필요한 시드 데이터를 포함한 복수의 태그 정보가 분리되어 각각 저장되며,In the plurality of storage areas, a plurality of tag information including seed data required for generating a virtual security code in the user terminal is separately stored,
    상기 시드 데이터는, 상기 사용자 단말기와 태깅 시에 상기 NFC 기반의 통신을 통해 상기 사용자 단말기로 제공되는,The seed data is provided to the user terminal through the NFC-based communication at the time of tagging with the user terminal,
    카드데이터 기반의 가상보안코드생성을 위한 카드 장치.Card device for generating virtual security code based on card data.
  10. 제9항에 있어서,10. The method of claim 9,
    상기 가상 보안 코드는, 상기 시드 데이터 및 시간 데이터를 기반으로 상기 사용자 단말기에 의해 생성되어 사용자 인증을 위해 서버로 송신되는,The virtual security code is generated by the user terminal based on the seed data and time data and transmitted to the server for user authentication,
    카드데이터 기반의 가상보안코드생성을 위한 카드 장치.Card device for generating virtual security code based on card data.
  11. 제10항에 있어서,11. The method of claim 10,
    상기 시드 데이터는,The seed data is
    상기 사용자 단말기에 의해 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형이 식별되고, 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역이 식별되고, 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보가 독출되어 획득되는,At least one tag information type related to the virtual security code is identified from among the types of the tag information by the user terminal, and at least one storage area corresponding to the identified tag information type is identified from among the plurality of storage areas, , obtained by reading out the tag information stored in the identified storage area from among the plurality of tag information,
    카드데이터 기반의 가상보안코드생성을 위한 카드 장치.Card device for generating virtual security code based on card data.
  12. 가상 보안 코드의 생성에 필요한 시드 데이터를 제공하는 스마트 카드와 태깅 시에 NFC 기반의 통신을 수행하는 통신부; 및a communication unit for performing NFC-based communication when tagging with a smart card that provides seed data necessary for generating a virtual security code; and
    상기 통신부를 통해 상기 시드 데이터를 획득하고, 상기 시드 데이터 및 시간 데이터를 기반으로 상기 가상 보안 코드를 생성하며, 상기 가상 보안 코드를 서버로 송신하여 사용자 인증을 요청하는 제어부;를 포함하는,a control unit that obtains the seed data through the communication unit, generates the virtual security code based on the seed data and time data, and transmits the virtual security code to a server to request user authentication;
    카드데이터 기반의 가상보안코드생성을 위한 단말기.A terminal for generating a virtual security code based on card data.
  13. 제12항에 있어서,13. The method of claim 12,
    복수의 태그 정보는, 상기 스마트 카드 내에서 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역에 분리되어 저장되며,A plurality of tag information is stored separately in a plurality of storage areas allocated to each type of tag information in the smart card,
    상기 제어부는,The control unit is
    상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하고,identify at least one type of tag information related to the virtual security code among the types of tag information;
    상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하고,identify at least one storage area corresponding to the identified tag information type among the plurality of storage areas;
    상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드 데이터로 획득하는,reading tag information stored in the identified storage area from among the plurality of tag information and obtaining the seed data as the seed data;
    카드데이터 기반의 가상보안코드생성을 위한 단말기.A terminal for generating a virtual security code based on card data.
PCT/KR2022/095022 2021-03-04 2022-02-07 Terminal, card device, and method for generating card data-based virtual security code by using nfc WO2022186681A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0029035 2021-03-04
KR20210029035 2021-03-04
KR10-2021-0098432 2021-07-27
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

Publications (1)

Publication Number Publication Date
WO2022186681A1 true WO2022186681A1 (en) 2022-09-09

Family

ID=83154330

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/095022 WO2022186681A1 (en) 2021-03-04 2022-02-07 Terminal, card device, and method for generating card data-based virtual security code by using nfc

Country Status (2)

Country Link
KR (1) KR20230030606A (en)
WO (1) WO2022186681A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060093397A (en) * 2005-02-21 2006-08-25 주식회사 비즈모델라인 Ic card, mobile devices, information storing medium, system and method for processing exchange and recording medium
US20090048971A1 (en) * 2007-08-17 2009-02-19 Matthew Hathaway Payment Card with Dynamic Account Number
KR101272600B1 (en) * 2011-08-23 2013-06-10 (주)에이티솔루션즈 Method and System for Mobile Payment by Using Near Field Communication
KR20130062431A (en) * 2011-11-18 2013-06-13 에이큐 주식회사 Nfc information tag service system and method thereof
KR101675945B1 (en) * 2015-07-17 2016-11-15 코나아이 (주) Smart card and method for user authentication based on the smart card
KR20200018228A (en) * 2018-08-09 2020-02-19 주식회사 센스톤 Method and system for authengicating user using virtual code for authentication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060093397A (en) * 2005-02-21 2006-08-25 주식회사 비즈모델라인 Ic card, mobile devices, information storing medium, system and method for processing exchange and recording medium
US20090048971A1 (en) * 2007-08-17 2009-02-19 Matthew Hathaway Payment Card with Dynamic Account Number
KR101272600B1 (en) * 2011-08-23 2013-06-10 (주)에이티솔루션즈 Method and System for Mobile Payment by Using Near Field Communication
KR20130062431A (en) * 2011-11-18 2013-06-13 에이큐 주식회사 Nfc information tag service system and method thereof
KR101675945B1 (en) * 2015-07-17 2016-11-15 코나아이 (주) Smart card and method for user authentication based on the smart card
KR20200018228A (en) * 2018-08-09 2020-02-19 주식회사 센스톤 Method and system for authengicating user using virtual code for authentication

Also Published As

Publication number Publication date
KR20230030606A (en) 2023-03-06

Similar Documents

Publication Publication Date Title
WO2020032321A1 (en) Virtual code-based financial transaction provision system, virtual code generation device, virtual code verification device, virtual code-based financial transaction provision method, and virtual code-based financial transaction provision program
WO2020032482A1 (en) Method and system for providing financial transaction using empty card
WO2017195998A1 (en) Smart card and method for controlling the same
WO2018097662A1 (en) Method and apparatus for managing program of electronic device
WO2020050555A1 (en) Method for uwb transaction and electronic device therefor
WO2017116144A1 (en) Electronic device and payment performance method using handoff thereof
WO2017171445A2 (en) Product payment method and electronic device for supporting the same
WO2021025482A1 (en) Electronic device and method for generating attestation certificate based on fused key
WO2017142256A1 (en) Electronic device for authenticating based on biometric data and operating method thereof
WO2020246822A1 (en) Electronic device and method for switching electronic device between dual standby mode and single standby mode
WO2018093106A1 (en) Payment method using agent device and electronic device for performing the same
WO2016076638A1 (en) Apparatus and method for payment
WO2009148273A2 (en) Rfid tag for rfid service and rfid service method thereof
WO2016143962A1 (en) Terminal and operating method thereof
WO2014171680A1 (en) Mobile terminal, security server and payment method thereof
WO2018034491A1 (en) A primary device, an accessory device, and methods for processing operations on the primary device and the accessory device
WO2017010823A1 (en) Payment system, electronic device and payment method thereof
AU2019337074A2 (en) Method for UWB transaction and electronic device therefor
WO2019190132A1 (en) Banking processing method and computer-readable storage medium having application for banking processing stored therein
WO2016143964A1 (en) Terminal and operating method thereof
WO2017188497A1 (en) User authentication method having strengthened integrity and security
WO2016175422A1 (en) Mobile stamp device
WO2022186681A1 (en) Terminal, card device, and method for generating card data-based virtual security code by using nfc
WO2019031716A2 (en) Virtual token-based settlement providing system, virtual token generation apparatus, virtual token verification server, virtual token-based settlement providing method, and virtual token-based settlement providing program
WO2020149500A1 (en) Method and apparatus for registering shared key

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22763662

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22763662

Country of ref document: EP

Kind code of ref document: A1