KR20230030606A - Apparatus for generating virtual security code based on card tagging - Google Patents

Apparatus for generating virtual security code based on card tagging Download PDF

Info

Publication number
KR20230030606A
KR20230030606A KR1020230021096A KR20230021096A KR20230030606A KR 20230030606 A KR20230030606 A KR 20230030606A KR 1020230021096 A KR1020230021096 A KR 1020230021096A KR 20230021096 A KR20230021096 A KR 20230021096A KR 20230030606 A KR20230030606 A KR 20230030606A
Authority
KR
South Korea
Prior art keywords
security code
virtual security
code
card
smart card
Prior art date
Application number
KR1020230021096A
Other languages
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 KR20230030606A publication Critical patent/KR20230030606A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)

Abstract

The present invention relates to a virtual security code generation device based on card tagging. According to the present invention, it is possible to generate a virtual security code necessary for user authentication with card data acquired based on an NFC method without a separate OTP device. In addition, according to the present invention, multiple tag information are stored in an NDEF format in a smart card including card data, so as to acquire NFC data, which is card data, without being bound by the type of user terminal, and generate an OTP without being bound by the type of operating system S of the user terminal.

Description

카드 태깅 기반의 가상 보안 코드 생성 장치{APPARATUS FOR GENERATING VIRTUAL SECURITY CODE BASED ON CARD TAGGING}Virtual security code generation device based on card tagging {APPARATUS FOR GENERATING VIRTUAL SECURITY CODE BASED ON CARD TAGGING}

본 발명은 카드 태깅 기반의 가상 보안 코드 생성 장치에 대한 것이다. 보다 구체적으로 NFC 태그를 이용하여 획득한 카드데이터와 시간데이터를 기반으로 가상보안코드를 생성하는 장치 및 방법에 관한 것이다.The present invention relates to a device for generating a virtual security code based on card tagging. More specifically, it relates to an apparatus and method for generating a virtual security code based on card data and time data acquired using an NFC tag.

코드형태 데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌 번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터이다.Code type data is used in many fields. Not only card numbers and account numbers used for payment, but also IPIN numbers and resident registration numbers for user identification are code-type data.

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

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

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

따라서 많은 사용자가 소지하고 있는 카드의 카드 데이터를 기반으로 사용자 인증에 필요한 가상 보안 코드를 생성하는 것과 같이 OTP코드를 생성하되, 별도의 OTP생성 장치를 필요로 하지 않고 동시에 시드 데이터의 유출되지 않도록 하여 보안을 높이는 방안이 필요하다. 그러나 아직까지 이에 대한 적절한 방안이 제시되지 못하는 실정이다.Therefore, based on card data of cards possessed by many users, generate OTP codes, such as generating virtual security codes necessary for user authentication, but do not require a separate OTP generating device and at the same time prevent leakage of seed data. We need a way to increase security. However, an appropriate solution for this has not yet been proposed.

상술한 바와 같은 문제점을 해결하기 위한 본 발명은 NFC를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 단말기, 카드 장치 및 그 방법을 제공할 수 있다.The present invention for solving the above 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 description below.

상술한 과제를 해결하기 위한 본 발명에 따른 카드 태깅 기반의 가상 보안 코드 생성 장치는, 스마트 카드와 태깅 시에 NFC 기반의 통신을 수행하는 통신부 및 상기 통신부를 통해 상기 스마트 카드로부터 시드 데이터를 획득하고, 상기 시드 데이터 및 시간 데이터를 기반으로 가상 보안 코드를 생성하며, 상기 가상 보안 코드를 서버로 송신하여 사용자 인증을 요청하는 제어부를 포함하고, 상기 스마트 카드는, 복수의 태그 정보를 포함하고, 상기 복수의 태그 정보는, 어플리케이션 실행에 관한 URL 정보 및 상기 가상 보안 코드의 생성을 위한 상기 시드 데이터를 포함할 수 있다.Card tagging-based virtual security code generation device according to the present invention for solving the above problems, obtains seed data from the smart card through a communication unit that performs NFC-based communication when tagging with a smart card and the communication unit, , A control unit for generating 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, wherein the smart card includes a plurality of tag information, The plurality of tag information may include URL information related to application execution and the seed data for generating the virtual security code.

또한, 상기 URL 정보에 대응하는 상기 어플리케이션이 실행되지 않은 상태에서 상기 태깅되는 경우, 상기 제어부는, 상기 스마트 카드로부터 수신된 상기 URL 정보 기반의 상기 어플리케이션의 구동 요청에 대한 응답으로 상기 어플리케이션의 실행을 차단할 수 있다. In addition, when the application corresponding to the URL information is tagged while not being executed, the control unit executes the application in response to a request for driving the application based on the URL information received from the smart card. can block

또한, 상기 가상 보안 코드의 생성 시점이 아닌 다른 시점에 상기 태깅되는 경우, 상기 제어부는, 상기 스마트 카드와 연계된 어플리케이션의 실행 관련 데이터를 획득할 수 있다.In addition, when the tagging is performed at a time other than the time at which the virtual security code is generated, the control unit may obtain execution-related data of an application associated with the smart card.

또한, 상기 연계된 어플리케이션이 복수인 경우, 상기 제어부는, 상기 복수의 어플리케이션 중 사용 빈도에 따라 설정된 우선 순위가 가장 높은 어플리케이션의 실행 관련 데이터를 상기 스마트 카드로부터 획득할 수 있다.In addition, when there are a plurality of linked applications, the controller may obtain, from the smart card, execution-related data of an application having the highest priority set according to the frequency of use among the plurality of applications.

또한, 상기 복수의 태그 정보는, 상기 스마트 카드 내에서 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역에 분리되어 저장될 수 있다.In addition, the plurality of tag information may be separately stored in a plurality of storage areas allocated to each type of tag information in the smart card.

또한, 상기 제어부는, 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보의 유형을 식별하고, 상기 복수의 저장 영역 중에서 상기 식별된 유형에 해당하는 적어도 하나의 저장 영역을 식별하고, 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드 데이터로 획득할 수 있다.In addition, the control unit identifies a type of at least one piece of tag information related to the virtual security code, identifies at least one storage area corresponding to the identified type among the plurality of storage areas, and identifies the identified storage area. The tag information stored in may be read and obtained as the seed data.

또한, 상기 사용자 인증은, 상기 가상 보안 코드의 검증을 통해 수행되며, 상기 검증은, 상기 서버가 상기 가상 보안 코드를 수신한 시간 데이터 및 상기 가상 보안 코드에 포함된 시간 데이터의 비교를 통해 수행될 수 있다.In addition, the user authentication is performed through verification of the virtual security code, and the verification is performed through comparison of time data at which the server receives the virtual security code and time data included in the virtual security code. can

또한, 상기 사용자 인증은, 상기 가상 보안 코드를 기반으로 추출된 사용자 식별 정보를 이용하여 수행될 수 있다.In addition, the user authentication may be performed using user identification information extracted based on the virtual security code.

또한, 상술한 과제를 해결하기 위한 본 발명에 따른 스마트 카드 장치는, 복수의 태그 정보를 포함하는 IC칩 및 사용자 단말기와 태깅 시에 통신을 수행하는 통신부를 포함하고, 상기 복수의 태그 정보는, 어플리케이션 실행에 관한 URL 정보 및 가상 보안 코드의 생성을 위한 시드 데이터를 포함하며, 상기 시드 데이터는, 상기 태깅 시에 상기 사용자 단말기로 제공될 수 있다.In addition, the smart card device according to the present invention for solving the above problems includes an IC chip including a plurality of tag information and a communication unit for performing communication with a user terminal during tagging, and the plurality of tag information includes: URL information related to application execution and seed data for generating a virtual security code may be included, and the seed data may be provided to the user terminal during the tagging.

또한, 상기 URL 정보에 대응하는 상기 어플리케이션이 실행되지 않은 상태에서 상기 태깅되는 경우, 상기 통신부를 통해 상기 사용자 단말로 상기 URL 정보 기반의 상기 어플리케이션의 구동을 요청해도 상기 사용자 단말에 의해 상기 어플리케이션의 실행이 차단될 수 있다.In addition, when the tagging occurs while the application corresponding to the URL information is not executed, the application is executed by the user terminal even if the user terminal requests driving of the application based on the URL information through the communication unit. this may be blocked.

상기와 같은 본 발명에 따르면 사용자는 별도의 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의 생성이 가능하다. At this time, since a plurality of tag information is stored in the form of NDEF in the smart card including card data, it is possible to acquire NFC data, which is card data, without being bound by the type of user terminal. Through this, it is possible to generate an OTP without being bound by the type of OS of the user terminal of the present invention.

한편, 복수의 태그 정보는 태그 정보의 유형에 따라 설정된 사용자 단말기에서의 사용 순서 정보와 매칭되므로, 사용자 단말기는 서버와의 통신을 통해 수행되는 명령어, 프로세스 등에 상응하는 적절한 태그 정보의 독출이 가능하다. On the other hand, since the plurality of tag information is matched with 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 or process executed 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 storage space for user identification information is added, the existing process can be maintained as it is. For example, if an application providing financial transaction service generates and provides a virtual security code that is not duplicated, the POS device and the PG company server remain intact and deliver the virtual security code to the server, and the server transmits the virtual security code to the virtual security code. Payment may be made by searching for a storage area of corresponding user identification information. Through this, it is possible to minimize the parts that need to be changed within the existing process to increase security, and the user does not have to perform a separate step to improve security.

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

도 1은 본 발명의 일 실시예에 따른 카드데이터 기반의 가상보안코드를 생성하는 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 스마트 카드의 개략적인 구성도이다.
도 3은 본 발명의 일 실시예에 따른 NDEF형식으로 저장된 태그 정보에 관한 예시도이다.
도 4는 타입 4 태그 NDEF 구조를 나타낸 도면이다.
도 5는 텍스트 RTD(Record Type Definition)를 위한 타입 4의 NDEF 파일 예를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 사용자 단말기의 구성도이다.
도 7은 본 발명의 일 실시예에 따른 NFC를 이용한 카드데이터 기반의 가상 보안 코드 생성 방법에 관한 개략적인 순서도이다.
도 8은 본 발명의 일 실시예에 따른 시드 데이터를 획득하는 방법의 개략적인 순서도이다.
도 9는 본 발명의 일 실시예에 따른 가상보안코드를 검증하는 방법의 개략적인 순서도이다.
도 10은 본 발명의 일 실시예에 따른 가상보안코드를 기반으로 사용자를 인증하는 방법의 개략적인 순서도이다.
1 is a configuration diagram of a system for generating a virtual security code based on card data according to an embodiment of the present invention.
2 is a schematic configuration diagram of a smart card according to an embodiment of the present invention.
3 is an exemplary view of tag information stored in an NDEF format according to an embodiment of the present invention.
4 is a diagram illustrating a type 4 tag NDEF structure.
5 is a diagram showing an example of a type 4 NDEF file for text RTD (Record Type Definition).
6 is a configuration diagram of a user terminal according to an embodiment of the present invention.
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 is a schematic flowchart of a method for obtaining seed data according to an embodiment of the present invention.
9 is a schematic flowchart of a method for verifying a virtual security code according to an embodiment of the present invention.
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 clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, only these embodiments are intended to complete the disclosure of the present invention, and are common in the art to which the present invention belongs. It is provided to fully inform the person skilled in the art of the scope of the invention, and the invention is only defined by the scope of the claims.

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

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

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

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

본 명세서에서 "가상 보안 코드"는 사용자 인증을 위해 임시적으로 생성되며 단위시간마다 변경되는 랜덤코드[일 예로, OTP(One Time Password)]로서, 문자로 이루어진 특정한 자릿수의 코드를 포함할 수 있다. 가상 보안 코드는 본 발명의 일 실시예에 따라서 서버에 저장된 사용자의 식별 정보를 탐색하는데 이용될 수 있다. In this specification, a "virtual security code" is a random code (eg, OTP (One Time Password)) that is temporarily generated for user authentication and changed every unit time, and may include a code of a specific number of digits made of characters. The virtual security code may be used to search for 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 a virtual code for authentication (OTAC: One Time Authentication Code) temporarily generated for the user authentication and after the primary authentication of the user is performed through the virtual code for authentication, an additional 2 It may also include a random code used for car authentication [eg, One Time Password (OTP)].

본 명세서에서 "스마트 카드"는 가상 보안 코드 생성을 위한 데이터를 제공하는 카드를 의미한다. 또한, 신용카드, 체크카드, 현금카드 등 금융거래를 진행하는 임의의 카드이며, 카드의 종류 및 목적에는 제한이 없다. In this specification, "smart card" means a card that provides data for generating a virtual security code. In addition, it is an arbitrary card for conducting financial transactions, such as a credit card, check card, cash card, etc., and there are no restrictions 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)등을 포함하며 이에 한정되는 것은 아니다 In this specification, a "user terminal" is any electronic device equipped with an application processor (application processor, AP) capable of driving an application. The user terminal may be a non-portable desktop computer or a portable mobile device (eg, smart phone, tablet PC, PDA (personal digital assistant), EDA (enterprise digital assistant), PMP (portable multimedia) 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" means a function that generates a virtual security code. For example, one time password (OTP), etc. are included, but are not limited thereto.

본 명세서에서 "세부코드생성함수"는 가상보안코드를 구성하는 각각의 세부코드를 생성하는 함수를 의미한다.In this specification, the "detailed code generating function" means a function that generates each detailed code constituting the virtual security code.

본 명세서에서 "세부코드결합함수"는 복수의 세부코드를 조합 또는 결합하여 가상보안코드를 생성하는 함수를 의미한다. In this specification, "detailed code combining function" means a function that generates a virtual security code by combining or combining a plurality of detailed codes.

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

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

도 1은 본 발명의 일 실시예에 따른 카드데이터 기반의 가상보안코드를 생성하는 시스템의 구성도이다. 1 is a configuration 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 system for generating a virtual security code based on card data 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 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)가 제작될 수 있다. 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, when input is received from a user or user identification information is set based on the user's log-in information, based on the user identification information A 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, which is not set by the user, such as the serial number of the smart card 100, is set as default when the smart card 100 is manufactured for a specific user. By matching, it may be set as user information or used. In addition, the user identification information may include not only UID, but also personal information such as resident registration number, bank account number, and credit card number.

한편, 사용자 단말기(200)는 스마트 카드(100)로부터 획득된 시드 데이터를 기반으로 가상 보안 코드를 생성한다. 이때, 전술한 바와 같이 상기 가상 보안 코드는 OTP(One Tim Password) 함수에 의해 생성될 수 있는데, 이러한 경우 가상 보안 코드는 시드 데이터와 가상 보안 코드 생성을 요청받은 시점 또는 시드 데이터를 획득한 시점의 시간 데이터를 기반으로 생성된다. Meanwhile, the user terminal 200 generates a virtual security code based on seed data obtained from the smart card 100 . At this time, as described above, the virtual security code may be generated by a One Tim Password (OTP) function. In this case, the virtual security code is generated at the time when seed data and virtual security code generation is requested or when seed data is acquired. 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 . At this time, the server 300 may be a financial company server communicating with the user terminal 200, but is not limited thereto. Also, referring to FIG. 1 , the server 300 is shown as being composed of one server, but may be composed of a system in which a plurality of servers are linked to each other.

한편, 본 발명의 일 실시예로 서버(300)는 상기 수신된 가상 보안 코드가 정상적으로 생성된 것인지 또는 중복하여 이용된 것인지 여부를 검증하는 과정을 더 수행할 수도 있다.Meanwhile, in one 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 device for generating a virtual security code based on card data using NFC, which is 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 drawing, 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 transfers 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 a PCB board and contacts a terminal of an IC-type card reader to perform data exchange. The IC chip 120 includes an arbitrary form such as a component including an integrated circuit (IC) and a system on chip (SoC). 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)의 카드 데이터를 저장한 메모리(미도시)를 포함한다. 상술한 바와 같이 카드 데이터는 해당 스마트 카드의 발급을 신청한 사용자의 사용자 식별 정보와 카드 식별 정보를 포함한다.Also, although not shown in the drawing, 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 requested 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 also store a URL address of a credit card company or 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 corresponding smart card 100 is tagged with the user terminal, the user terminal can obtain the URL address. . In this case, the URL address may be related to installation information or execution information of a program or application of the corresponding financial institution.

즉, IC칩(120)에는 사용자 식별 정보 이외에도 다양한 정보가 저장된다. 이러한, 다양한 정보는 사용자 단말기(200)에 스마트 카드(100)가 태깅되면, 사용자 단말기(200)는 스마트 카드(100)로부터 해당 정보를 수신하게 된다. That is, various types of information other than user identification information are stored in the IC chip 120 . When the smart card 100 is tagged with 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 will be referred to as tag information to help understand 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) 내에 저장된다. At this time, as an embodiment of the present invention, the applet 130 of the smart card 100 may separately store a plurality of tag information in a plurality of storage areas in the memory based on NDEF (NFC Data Exchange Format). 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 through NFC.

이때, 본 발명의 일 실시예로 스마트 카드(100)에 상기 복수의 태그 정보를 저장하는 방법으로는 스마트 카드(100)의 메모리(미도시) 내에서 빈 저장 영역(Sector)을 탐색하고, 상기 탐색된 빈 저장 영역 내에 태그 정보의 유형 별로 복수의 저장 영역을 각각 할당하고, 상기 할당된 복수의 저장 영역에 상기 복수의 태그 정보를 분리하여 MAD(Mifare Application Directory)와 NDEF Message TLV를 이용하여 저장할 수 있다. 이를 통해 상기 복수의 태그 정보는 텍스트 형식으로 상기 각각의 저장 영역(Record)에 메시지 또는 텍스트 형식으로 저장된다. At this time, as a method of storing the plurality of tag information in the smart card 100 according to an embodiment of the present invention, an empty storage area (Sector) is searched in a 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 into 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 message or text format in the respective storage area (Record) in text format.

한편 도 3을 참조하면, NDEF는 여러 태그 정보를 포함할 수 있는 메시지로 구성된 이진 포맷으로, 태그 정보는 각각의 레코드(501)에 저장되며 이때 태그 정보는 헤더(Header)(502)와 페이로드(Payload)(503)를 포함한다. 헤더(502)에는 태그 정보에 관한 여러 요소에 대한 Indicator가 포함된다. 예를 들어, 태그 정보 내용인 페이 로드의 유형, 페이 로드의 길이 등이 이에 해당한다. 페이로드(503)는 태그 정보의 내용으로, 앞서 설명한 URL, MIME 미디어 또는 NFC 데이터 등이 포함된다. 이를 통해 본 발명은 사용자 단말기의 운영체제(OS)의 유형에 구속되지 않고 스마트 카드와 사용자 단말기의 NFC 데이터 교환이 가능하다. Meanwhile, referring to FIG. 3, NDEF is a binary format composed of messages that can include various tag information. The tag information is stored in each record 501. At this time, 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, which is the content of the tag information, and the length of the payload correspond to this. The payload 503 is tag information, and includes URL, MIME media, or NFC data described above. Through this, the present invention enables NFC data exchange between a smart card and a user terminal without being bound by the type of operating system (OS) of the user terminal.

한편, 본 발명의 일 실시예로 애플릿(130)는 상기 복수의 태그 정보의 태그 정보 유형을 각각 파악하고, 상기 파악된 각각의 태그 정보 유형 별로 상기 복수의 태그 정보를 상기 복수의 저장 영역 내의 해당 저장 영역에 각각 분리하여 저장한다. Meanwhile, as an embodiment of the present invention, the applet 130 identifies the tag information types 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. It is stored separately in each storage area.

즉, 상기 복수의 저장 영역 각각에는 저장될 태그 정보의 유형이 사전에 각각 할당되는데, 예를 들어 태그 정보가 가상 보안 코드 생성을 위한 어플리케이션(또는 프로그램)의 설치에 관한 제1 URL 정보와 가상 보안 코드 생성을 위한 어플리케이션(또는 프로그램)의 실행에 관한 제2 URL 정보 및 가상 보안 코드 생성에 이용되는 시드 데이터를 포함할 수 있다. That is, the type of tag information to be stored is assigned to each of the plurality of storage areas in advance. For example, the tag information includes first URL information related to installation of an application (or program) for generating a virtual security code and virtual security code. Second URL information on execution of an application (or program) for code generation and seed data used for virtual security code generation 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 a corresponding storage area among the plurality of storage areas, respectively. Meanwhile, the plurality of storage areas may match not only the type of tag information but also information about the order in which each tag information is used in the user terminal 200 .

본 발명의 실시예로, 애플릿(130)은 복수의 레코드 중 데이터가 저장되지 않는 레코드를 탐색한 후 해당 레코드에 시드 데이터를 저장할 수 있다. 보다 구체적으로, 애플릿(130)은 사용자 단말기(100) 내에서 가상 보안 코드 생성을 위한 어플리케이션(또는 프로그램)을 실행할 수 있는 데이터(예를 들어, 어플리케이션 또는 프로그램 실행을 위한 URL정보)를 포함하는 제1 태그 정보를 제1 레코드 영역에 저장하고, 시드 데이터를 포함하는 제2 태그 정보를 제2 레코드 영역에 저장할 수도 있다. As an embodiment of the present invention, the applet 130 may search for a record in which data is not stored among a plurality of records and then store seed data in the corresponding record. More specifically, the applet 130 includes data capable of executing an application (or program) for generating a virtual security code within the user terminal 100 (eg, URL information for executing an application or program). 1 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, and use order information of the user terminal 200 for the corresponding tag information is stored in combination with corresponding stored tag information. Each can 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 an EMV chip of international credit card standards, and the second IC chip 122 may be a Mifare classic type NFC chip.

제1 IC칩은 카드 삽입을 통한 결제에 이용되고, 제2 IC칩은 NFC 안테나를 통해 비접촉식 결제나 사용자 단말기(200) 등에 대한 데이터 전달을 위해 이용될 수 있다. The first IC chip is used for payment through card insertion, and the second IC chip can be used for non-contact payment or data transmission 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 non-contact communication (NFC communication) will be described in detail.

또한, 본 발명의 일 실시예로, 가상보안코드 생성을 위한 시드데이터 등의 저장데이터는 NDEF(NFC Data Exchange Format)의 형식으로 저장될 수 있다. 스마트카드가 사용자 단말기의 운영체제(OS)의 종류(예를 들어, 구글의 안드로이드, 애플의 iOS, 심비안의 심비안 플랫폼, 블랙베리의 블랙베리 OS, 마이크로소프트의 윈도우 폰, 퀄컴의 BREW, 삼성전자의 타이젠, 카이 OS 등등)에 무관하게 NFC를 통해 사용자 단말에 저장데이터를 전달하기 위해서는 NDEF 표준 포맷을 활용할 필요가 있다.In addition, as an embodiment of the present invention, storage data such as seed data for generating a virtual security code may be stored in the form of NDEF (NFC Data Exchange Format). The smart card may be configured according to the type of operating system (OS) of the user terminal (e.g., Google's Android, Apple's iOS, Symbian's Symbian platform, BlackBerry's BlackBerry OS, Microsoft's Windows Phone, Qualcomm's BREW, Samsung Electronics' Regardless of Tizen, Kai OS, etc.), it is necessary to utilize the NDEF standard format in order to transfer stored data to the user terminal through NFC.

본 발명의 사용자 단말기(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 transfers the plurality of tag information to NDEF (NFC Data Exchange) Format), it can be separated and stored in each storage area of the meta applet in the first IC chip 121 of the EMV type. That is, a plurality of tag information may be stored in the first IC chip 121 of the EMV type 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 the empty storage area (Sector) in the second IC chip 122, the identified While each of a plurality of tag information is stored in the empty storage area, the storage format may be set to 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 message or text format in the empty storage area in text format. For example, in Korea, seed data transmitted to a user terminal in NDEF format is stored in sectors where data is not stored other than sectors stored in credit or check cards for postpaid transportation cards, and transmitted to sector 0 It is possible to store explanatory 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 of the present invention in the smart card 100, when the second IC chip is an NFC Type 4 Tag, the second IC chip is included. The second IC chip required for generating the virtual security code may store seed data and the like in the additional storage space being used.

예를 들어, 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 utilize up to 32 Kbytes per service, the second IC chip necessary 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 storing tag information 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 can be type 4, and in the case of type 4, it can have an object-oriented memory format that uses files rather than blocks for data storage.

이하, 도 4 및 도 5를 참조하여, Mifare classic 타입 4의 제2 IC칩(122)에 NDEF 포맷의 태그 정보를 저장하는 과정에 대해 상세히 설명한다.Hereinafter, with reference to FIGS. 4 and 5, a process of storing NDEF format tag information in the Mifare classic type 4 second IC chip 122 will be described in detail.

도 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 showing an example of a type 4 NDEF file for text RTD (Record Type Definition).

도 4 및 도 5를 참조하면, 타입 4로부터 NDEF 포맷의 태그 정보를 읽으려면, 태그 정보에 올바르게 액세스하기 위해 일련의 선택 및 읽기를 수행해야 한다. 첫째로, 0xD2760000850101의 애플리케이션 ID로 표시되는 NDEF 애플리케이션을 선택해야 한다. 둘째로, NDEF 애플리케이션에는 파일 ID가 0xE103 인 기능 컨테이너 파일이 있어야 한다.Referring to FIGS. 4 and 5 , in order to read tag information in NDEF format from type 4, a series of selection and reading must be performed to properly access tag information. First, you need to select the NDEF application, represented by an application ID of 0xD2760000850101. Second, the NDEF application must have a function container file with a file ID of 0xE103.

여기서, CC의 내용을 읽으려면 CC의 길이를 결정하기 위해 처음 두 바이트를 먼저 읽은 다음, CC의 나머지 부분을 읽어야 하고, CC에는 NDEF 데이터에 대한 파일 ID 정보가 포함되어 있으며, 태그에서 모든 NDEF 데이터를 읽기 위해 올바른 파일 ID를 읽는 데 사용해야 한다. CC에는 저장된 각 NDEF 메시지에 대한 TLV 필드도 포함될 수 있다. 이때, 단일 태그에 여러 NDEF 파일이 있을 수 있으므로., 각 개별 NDEF 파일에 대한 정보는 CC 내에 저장되어야 한다.Here, to read the content of CC, first two bytes should be read first to determine the length of CC, then the rest of CC should be read, CC contains file ID information for NDEF data, all NDEF data from tag should be used to read the correct file id to read. The CC may also contain a TLV field for each stored NDEF message. At this time, since there may be several NDEF files in a single tag, information on each individual NDEF file must be stored in the CC.

도 6을 참조하면, 사용자 단말기(200)는 통신부(210), 가상보안코드생성부(220), 세부코드생성부(230) 및 제어부(230)를 포함한다. Referring to FIG. 6 , the user terminal 200 includes a communication unit 210, a virtual security code generator 220, a detailed code generator 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 seed data from the smart card 100, and 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, and the like may be used.

바람직하게는, 통신부(210)는 스마트 카드(100)가 사용자 단말기(200)에 태깅되면, NFC통신을 통해 시드 데이터를 수신할 수 있다. Preferably, the communication unit 210 may receive seed data through NFC communication when the smart card 100 is tagged with the user terminal 200 .

한편, 도 8을 참조하면 본 발명의 일 실시예로 S410 단계는 상기 복수의 저장 영역에 저장된 태그 정보의 유형을 식별하는 단계(S411)와, 복수의 태그 정보 중 가상 보안코드 생성을 위한 시드데이터를 독출하는 단계(S412)를 포함한다. Meanwhile, referring to FIG. 8 , as 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 the plurality of tag information. It includes a step (S412) of reading out.

상세하게는, 사용자 단말기(200)는 상기 태그 정보의 유형 중에서 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보 유형을 식별하고, 상기 복수의 저장 영역 중에서 상기 식별된 태그 정보 유형에 해당하는 적어도 하나의 저장 영역을 식별하고, 상기 복수의 태그 정보 중에서 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드데이터로 획득할 수 있다.In detail, the user terminal 200 identifies at least one tag information type related to the virtual security code from among the tag information types, and at least one tag information type corresponding to the identified tag information type among the plurality of storage areas. A storage area may be identified, and tag information stored in the identified storage area among the plurality of tag information may be read and obtained as the seed data.

더욱 상세하게, 사용자 단말기(200)의 제어부(240)는 스마트 카드(100)로부터 수신한 복수의 태그 정보 중 각각의 태그 정보의 유형을 식별한다. 상술한 바와 같이 NDEF 형식의 복수의 태그 정보는 시드 데이터 뿐만 아니라 가상 보안 코드 생성을 위한 프로그램의 설치, 실행 등과 관련되는 다양한 정보를 포함한다. More specifically, the control unit 240 of the user terminal 200 identifies the type of each tag information among the 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 programs for generating virtual security codes.

따라서, 제어부(240)는 복수의 태그 정보의 유형을 식별한 후 가상 보안 코드의 생성을 위해 필요한 시드 데이터 유형의 태그 정보를 독출한다. 이를 위해 태그 정보의 헤더에 저장된 페이로드 유형 정보를 이용할 수 있을 것이다. Accordingly, the control unit 240 reads the tag information of the seed data type necessary for generating the virtual security code after identifying the types of the plurality of tag information. To this end, 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 the type of financial transaction requested by the user terminal. At this time, 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 to the server 300 . For example, if it is assumed that a transaction type requiring user authentication among financial transactions is a first type, seed data used for user authentication among a plurality of tag information is set to a tag information type corresponding to the first type.

제어부(240)는 가상 보안 코드 생성 프로그램에서 수행되고 있는 사용자의 금융 거래 유형을 식별한 후 해당 금융 거래 유형에 매칭되는 태그 정보만을 독출하여, 각각의 프로세스에 해당하는 적절한 태그 정보의 추출이 가능하다. The control unit 240 identifies the user's financial transaction type being performed in the virtual security code generation program, and then reads only tag information matched to the corresponding financial transaction type, thereby extracting appropriate tag information corresponding to each process. .

한편, 제어부(240)는 본 발명에 따른 가상보안코드의 생성을 위해 스마트카드(100)와 NFC 태깅된 경우에는, 스마트카드(100)로부터 시드데이터를 독출하여 가상보안코드를 생성하는데 이용할 수 있다.On the other hand, the control unit 240 can read seed data from the smart card 100 and use it to generate a virtual security code when the smart card 100 and the NFC tag are tagged for generation of the virtual security code according to the present invention. .

반면에, 제어부(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 time of generating the virtual security code described above, the user's intention of NFC tagging with the smart card 100 Since it is the intention to use the application (or program) associated with the smart card 100 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 is retrieved from the smart card 100. 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 control unit 240 has 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, the controller 240 may block the corresponding application (or program) from being automatically executed based on the obtained execution-related data even when execution-related data of the corresponding application (or program) is acquired from the smart card 100. Alternatively, in this case, the corresponding application (or program) may be executed and displayed on the screen only when authentication through the user's password is successful. At this time, the password is based on at least one of text information set by the user (a combination of at least one of Korean, English, numbers, special characters, and symbols) and biometric information (at least one of fingerprint, iris, and face) of the user. can be set by the user.

즉, 해당 어플리케이션(또는 프로그램)의 사용 목적이 없으나 실수로 스마트카드(100)와 NFC 태깅되거나, 또는 해킹 등의 외부 요인으로 인해 스마트카드(100)로부터 해당 어플리케이션(또는 프로그램)이 실행 관련 데이터를 획득하여도, 추가 사용자 인증 과정을 통해 실제 사용자의 사용 의도를 확인하고, 인증이 성공된 경우에만 해당 어플리케이션(또는 프로그램)을 실행하는 것이다.That is, there is no purpose of using the application (or program), but the smart card 100 is accidentally tagged with NFC, or the application (or program) from the smart card 100 receives execution-related data due to external factors such as hacking. Even if acquired, 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 authentication is successful.

한편, 도 7를 참조하면 사용자 단말기(200)는 스마트 카드로부터 획득한 시드데이터와 시간 데이터를 기반으로, 가상 보안 코드를 생성한다(S420).Meanwhile, referring to FIG. 7 , the user terminal 200 generates a virtual security code based on seed data and time data acquired from a smart card (S420).

이하에서는, 본 발명의 일 실시예인 가상 보안 코드를 생성하는 구체적인 방법에 대하여 설명한다. Hereinafter, a specific method of generating a virtual security code, which is an embodiment of the present invention, will be described.

세부코드생성부(230)는 하나 또는 복수의 세부코드를 생성하는 역할을 수행한다. 세부 코드는 가상 보안 코드를 구성하는 일부 코드를 의미하는데, 가상 보안 코드는 세부 코드 만으로 구성될 수도 있으며, 또는 OTP함수에 의해 생성된 제1 가상보안코드에 하나 또는 복수의 세부 코드를 결합하여 최종 가상 보안 코드(OTAC)의 형태로 형성될 수도 있다. The detail code generator 230 serves to generate one or a plurality of detail codes. The detailed code refers to some codes constituting the virtual security code. The virtual security code may consist of only the detailed code, or by combining one or more detailed codes with the first virtual security code generated by the OTP function to obtain a final It can also 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 a detailed code generation function that generates one or more detailed codes and the detailed codes. It includes a function for combining detailed codes to be generated (that is, a rule for combining a plurality of detailed codes).

즉, 가상 보안 코드가 복수의 세부코드를 포함하는 경우, 가상 보안 코드 생성 함수는 복수의 세부 코드 생성 함수를 이용하여 복수의 세부 코드를 생성하고, 상기 세부 코드 결합 함수를 통해 상기 복수의 세부 코드를 기 설정된 조합으로 결합하여 가상 보안 코드를 생성한다.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 uses the detailed code combining function to generate the plurality of detailed codes. are combined in a preset combination to generate a virtual security code.

일 실시예로, 세부코드생성부(230)는 스마트 카드(100)가 태깅됨에 따라 획득된 시드데이터(Seed data)를 기반으로 세부코드생성함수에 의해 상기 가상보안코드를 생성할 수 있다. As an embodiment, the detailed code generating unit 230 may generate the virtual security code by a detailed code generating function based on seed data obtained as the smart card 100 is tagged.

복수의 세부코드 간에는 서버(300)가 사용자 식별 정보의 저장공간을 탐색하기 위해 이용되는 상관관계를 가진다. A plurality of detailed codes have a correlation used by the server 300 to search the storage space of user identification information.

즉, 서버(300)는 탐색 알고리즘(저장공간탐색알고리즘)을 구비하고, 상기 탐색 알고리즘은 사용자 단말기(200)로부터 수신된 가상 보안 코드에 포함된 복수의 세부 코드를 추출하고, 상기 복수의 세부코드의 상관관계를 기반으로 사용자에 부여된 사용자 식별 정보[UID(User identification)]의 저장공간을 탐색한다.That is, the server 300 has a search algorithm (storage space search algorithm), and 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 user identification information [UID (User identification)] assigned to the user is searched for storage space.

상기 복수의 세부코드가 가지는 상관 관계에 대한 일 실시예로, 서버(300)에 포함된 탐색알고리즘은 복수의 세부코드 중 하나 이상의 세부코드에 대응하는 경유지점으로부터 상기 복수의 세부코드 간의 상관 관계를 기반으로 연산하여 상기 사용자 식별 정보의 저장위치를 탐색할 수 있다. 이때, 상기 경유지점은 하나 또는 복수일 수 있으며 개수 및 순서에 제한은 없다.As an example of the correlation between 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. It is possible to search the storage location of the user identification information by calculating based on the user identification information. At this time, the number of waypoints may be one or plural, and the number and order are not limited.

또한, 복수의 세부코드의 일 실시예로, 복수의 세부코드는 제1코드 및 제2코드를 포함할 수 있고, 세부코드생성부(210)는 세부코드생성함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. In addition, as an example of the plurality of detailed codes, the plurality of detailed codes may include first codes and second codes, and the detailed code generating unit 210 may generate the first and second functions as detailed code generating functions. Including, to generate the first code and the second code.

제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 second function for generating the first function and the second code may be included as the detailed code generating function, but data on 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 play respective roles for searching for a user identification information (UID) storage space. That is, the first code may include information about the waypoint, and the second code may include information necessary for an operation capable of reaching a storage space of 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)에 등록된 시점으로부터 경과된 단위 카운트 개수를 포함할 수 있다. At this time, the first count is the number of unit counts that have elapsed from the first time the virtual security code generation function was driven in the server 300 to the time the virtual security code was generated, and the second count is the user's user identification information (UID) may include the number of unit counts elapsed from the time when is registered in the server 300 or the time when the user's smart card 100 is registered in the server 300 through the user terminal 200 after issuance.

즉, 제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. am.

이를 통해, 가상보안코드의 생성시기 및 사용자와 무관하게, 동일한 가상 보안 코드가 중복되어 생성되지 않도록 할 수 있다. 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 among codes matched for each count from the initial point in time at which the first function is driven in the server 300 [eg, the time point at which generation of a virtual security code is requested ( or count)], and the user terminal 200 generates a first code having a different code value each time a virtual security code is generated by 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 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 becomes 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, resulting in 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 timing of the virtual security code generation request.

또한, 다른 일실시예로, 상기 가상보안코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성할 수 있고, 이 경우 상기 가상보안코드생성함수는 상이한 MN개의 코드가 단위카운트마다 순차적으로 변경되는 제1코드 또는 제2코드를 각각 제공하는 제1함수 및 제2함수를 포함한다. In addition, as another embodiment, the virtual security code generating function may generate the first code or the second code of N digits with M characters, in which case the virtual security code generating function is different M N and a first function and a second function respectively providing a first code or a second code in which the number of codes are 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 so that they do not overlap as the count increases, and a specific one of the M N codes is used as the first code or the second code at the count corresponding to a specific point in time. generate Through this, the user terminal 200 does not repeatedly generate the same first code or second code within M N counts (ie, the time length corresponding to the MN counts), and generates a new detailed code (ie, first code) for each unit count. 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 first code or the second code of N digits with M characters, and when M N codes are used as the first code or the second code, the first code Alternatively, the second code is matched for each count from the initial point in time when 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 generation function is first driven. In addition, 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 within the user terminal 200 is a length of time corresponding to M N counts (for example, when 1 count is 1 second , M N seconds), the first code or the second code is not repeatedly generated as the same code during the use period.

즉, 시간이 흐름에 따라 카운트가 증가할 때, 사용자가 특정시점에 가상보안코드를 생성하는 경우, 사용자 단말기(200)는 특정시점에 대응되는 카운트에 매칭된 코드값을 제1코드 또는 제2코드로 생성할 수 있는 것이다.That is, when the count increases over time and the user generates a virtual security code at a specific point in time, the user terminal 200 converts the code value matched to the count corresponding to the specific point in time into the first code or the second code value. It can be created with 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. Also, 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, the corresponding virtual security code can also be generated in various ways so as not to overlap.

가상보안코드생성부(220)는 세부코드생성부(230)에서 생성된 하나 이상의 세부코드를 조합하여 가상보안코드를 생성하는 역할을 수행한다.The virtual security code generator 220 plays a role of generating a virtual security code by combining one or more detailed codes generated by the detailed code generator 230 .

이하에서는, 서버(300)에서의 가상보안코드를 검증하고, 상기 검증된 가상보안코드를 기반으로 사용자를 인증하는 방법에 대하여 설명한다. 도 9는 본 발명의 일 실시예에 따른 가상보안코드를 검증하는 방법의 개략적인 순서도이고, 도 10은 본 발명의 일 실시예에 따른 가상보안코드를 기반으로 사용자를 인증하는 방법의 개략적인 순서도이다. Hereinafter, a method of verifying a virtual security code in the server 300 and authenticating a 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. am.

도 9를 참조하면, 본 발명의 일 실시예로, 서버(300)가 상기 사용자 단말기(200)로부터 상기 가상보안코드를 수신하는 단계(S440) 및 상기 가상보안코드를 수신한 시간 데이터 및 상기 가상 보안 코드의 시간 데이터를 비교하여 상기 가상 보안 코드를 검증하는 단계(S450)를 포함한다. Referring to FIG. 9, as an embodiment of the present invention, the server 300 receives the virtual security code from the user terminal 200 (S440), and the time data at which the virtual security code is received and the virtual security code. 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 was normally generated. That is, after receiving the virtual security code, the server 300 normally generates the received virtual security code at the time of requesting a financial transaction based on the information stored in the server 300 (ie, the virtual security code generating function and seed data). It is checked whether the virtual security code is normal or not.

예를 들어, 서버(300)(예를 들어, 금융사서버)는 가상보안코드생성함수(즉, OTP함수)를 가상보안코드를 수신한 카운트로부터 특정범위 내의 카운트를 입력하여 산출된 OTP번호 중에 가상보안코드와 일치하는 값이 있는지 여부를 확인한다. 서버(300)는 가상보안코드에 가상보안코드생성함수의 역함수를 적용하여 가상보안코드가 생성된 시점에 상응하는 카운트를 찾아낸다. 가상보안코드의 전송시간이나 딜레이에 의해 사용자 단말기(200)에서 가상보안코드가 생성된 시점과 서버(300)가 가상보안코드를 수신한 시점의 차이가 존재함에 따라 서버(300)가 가상보안코드를 수신한 카운트와 가상보안코드에 해당하는 OTP번호를 생성한 카운트가 일치하지 않을 수도 있으므로, 서버(300)는 가상보안코드를 수신한 카운트로부터 오차범위를 허용한다. For example, the server 300 (for example, the financial company server) inputs a count within a specific range from the count of receiving the virtual security code to the virtual security code generation function (ie, OTP function), Checks whether there is a value that matches the security code. The server 300 applies an inverse function of the virtual security code generation function to the virtual security code to find a count corresponding to the time point when the virtual security code is generated. Due to the transmission time or delay of the virtual security code, 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. 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)를 포함한다. On the other hand, as an embodiment of the present invention, the above-described card data-based virtual security code generation method includes the steps of the server 300 searching for a storage location of user identification information based on the virtual security code and extracting the user identification information ( 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, and the plurality of detailed codes, according to the first code for setting the starting point of the search for the storage location of the user identification information and a specific search method, It may be composed of a second code for setting a search path from 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 (first code value) corresponding to the first code is the first OTP code in the count corresponding to the current time point based on the virtual security code generation function driving time point. 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. A 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 is as follows.

제1코드 = 현재시점 카운트 + OTP코드(제1가상보안코드)1st code = current time count + OTP code (first virtual security code)

제2코드 = 제1코드 - 실제코드의 저장위치값2nd code = 1st code - storage location value of actual code

상술한 바와 같이 최종 가상보안코드는 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. At this time, 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 according to the generation time of the virtual security code, it is possible to prevent duplicative generation and has 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, the code value (first code value) corresponding to the first code is a value obtained by adding the user identification information (UID) to the OTP code value, and the 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 user terminal 200 at a specific time point (eg, product manufacturing time, user registration time, payment method registration time, etc.), and each user or user terminal It is a code value that can identify .

즉, 사용자 단말기(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 (first virtual security code) + UID

이상에서 전술한 본 발명에 따른 방법은, 하드웨어인 장치와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The method according to the present invention described above may be implemented as a program (or application) to be executed in combination with a hardware device and stored in a medium.

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

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, cache, or memory, but a medium that stores data semi-permanently and is readable by a device. Specifically, examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers accessible by the computer or various recording media on the user's computer. In addition, the medium may be distributed to computer systems connected through a network, and computer readable codes 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, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.Steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, implemented in a software module executed by hardware, or implemented by a combination thereof. A software module may include random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any form of computer readable recording medium well known in the art to which the present invention pertains.

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

Claims (10)

스마트 카드와 태깅 시에 NFC 기반의 통신을 수행하는 통신부; 및
상기 통신부를 통해 상기 스마트 카드로부터 시드 데이터를 획득하고, 상기 시드 데이터 및 시간 데이터를 기반으로 가상 보안 코드를 생성하며, 상기 가상 보안 코드를 서버로 송신하여 사용자 인증을 요청하는 제어부;를 포함하고,
상기 스마트 카드는, 복수의 태그 정보를 포함하고,
상기 복수의 태그 정보는, 어플리케이션 실행에 관한 URL 정보 및 상기 가상 보안 코드의 생성을 위한 상기 시드 데이터를 포함하는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
A communication unit for performing NFC-based communication when tagging with a smart card; and
A controller that obtains seed data from the smart card through the communication unit, generates a virtual security code based on the seed data and time data, and transmits the virtual security code to a server to request user authentication,
The smart card includes a plurality of tag information,
The plurality of tag information includes URL information related to application execution and the seed data for generating the virtual security code.
Virtual security code generator based on card tagging.
제1 항에 있어서,
상기 URL 정보에 대응하는 상기 어플리케이션이 실행되지 않은 상태에서 상기 태깅되는 경우, 상기 제어부는, 상기 스마트 카드로부터 수신된 상기 URL 정보 기반의 상기 어플리케이션의 구동 요청에 대한 응답으로 상기 어플리케이션의 실행을 차단하는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
According to claim 1,
When the application corresponding to the URL information is tagged while not being executed, the control unit blocks execution of the application in response to a driving request of the application based on the URL information received from the smart card. ,
Virtual security code generator based on card tagging.
제1 항에 있어서,
상기 가상 보안 코드의 생성 시점이 아닌 다른 시점에 상기 태깅되는 경우, 상기 제어부는, 상기 스마트 카드와 연계된 어플리케이션의 실행 관련 데이터를 획득하는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
According to claim 1,
When the tagging occurs at a time other than the time of generating the virtual security code, the control unit obtains execution-related data of an application associated with the smart card,
Virtual security code generator based on card tagging.
제3 항에 있어서,
상기 연계된 어플리케이션이 복수인 경우, 상기 제어부는, 상기 복수의 어플리케이션 중 사용 빈도에 따라 설정된 우선 순위가 가장 높은 어플리케이션의 실행 관련 데이터를 상기 스마트 카드로부터 획득하는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
According to claim 3,
When the linked applications are plural, the control unit obtains, from the smart card, execution-related data of an application having the highest priority set according to the frequency of use among the plurality of applications.
Virtual security code generator based on card tagging.
제1 항에 있어서,
상기 복수의 태그 정보는, 상기 스마트 카드 내에서 태그 정보의 유형 별로 각각 할당된 복수의 저장 영역에 분리되어 저장되는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
According to claim 1,
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.
Virtual security code generator based on card tagging.
제5 항에 있어서,
상기 제어부는, 상기 가상 보안 코드와 관련된 적어도 하나의 태그 정보의 유형을 식별하고, 상기 복수의 저장 영역 중에서 상기 식별된 유형에 해당하는 적어도 하나의 저장 영역을 식별하고, 상기 식별된 저장 영역에 저장된 태그 정보를 독출하여 상기 시드 데이터로 획득하는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
According to claim 5,
The control unit identifies a type of at least one piece of tag information related to the virtual security code, identifies at least one storage area corresponding to the identified type among the plurality of storage areas, and stores information stored in the identified storage area. Reading tag information and obtaining it as the seed data;
Virtual security code generator based on card tagging.
제1 항에 있어서,
상기 사용자 인증은, 상기 가상 보안 코드의 검증을 통해 수행되며,
상기 검증은, 상기 서버가 상기 가상 보안 코드를 수신한 시간 데이터 및 상기 가상 보안 코드에 포함된 시간 데이터의 비교를 통해 수행되는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
According to claim 1,
The user authentication is performed through verification of the virtual security code,
The verification is performed by comparing the time data at which the server receives the virtual security code and the time data included in the virtual security code.
Virtual security code generator based on card tagging.
제7항에 있어서,
상기 사용자 인증은, 상기 가상 보안 코드를 기반으로 추출된 사용자 식별 정보를 이용하여 수행되는,
카드 태깅 기반의 가상 보안 코드 생성 장치.
According to claim 7,
The user authentication is performed using user identification information extracted based on the virtual security code.
Virtual security code generator based on card tagging.
복수의 태그 정보를 포함하는 IC칩; 및
사용자 단말기와 태깅 시에 통신을 수행하는 통신부;를 포함하고,
상기 복수의 태그 정보는, 어플리케이션 실행에 관한 URL 정보 및 가상 보안 코드의 생성을 위한 시드 데이터를 포함하며,
상기 시드 데이터는, 상기 태깅 시에 상기 사용자 단말기로 제공되는,
스마트 카드 장치.
an IC chip containing a plurality of tag information; and
Including; a communication unit for performing communication with a user terminal during tagging;
The plurality of tag information includes URL information related to application execution and seed data for generating a virtual security code,
The seed data is provided to the user terminal during the tagging.
smart card device.
제9 항에 있어서,
상기 URL 정보에 대응하는 상기 어플리케이션이 실행되지 않은 상태에서 상기 태깅되는 경우, 상기 통신부를 통해 상기 사용자 단말로 상기 URL 정보 기반의 상기 어플리케이션의 구동을 요청해도 상기 사용자 단말에 의해 상기 어플리케이션의 실행이 차단되는,
스마트 카드 장치.
According to claim 9,
If the application corresponding to the URL information is tagged while not being executed, execution of the application is blocked by the user terminal even if the user terminal requests to run the application based on the URL information through the communication unit. felled,
smart card device.
KR1020230021096A 2021-03-04 2023-02-17 Apparatus for generating virtual security code based on card tagging KR20230030606A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020210029035 2021-03-04
KR20210029035 2021-03-04
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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210098432A Division 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
KR20230030606A true KR20230030606A (en) 2023-03-06

Family

ID=83154330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230021096A KR20230030606A (en) 2021-03-04 2023-02-17 Apparatus for generating virtual security code based on card tagging

Country Status (2)

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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101140639B1 (en) * 2005-02-21 2012-05-03 주식회사 비즈모델라인 IC Card, Mobile Devices, Information Storing Medium, System and Method for Processing Exchange and Recording Medium
US8494959B2 (en) * 2007-08-17 2013-07-23 Emc Corporation 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
KR101281611B1 (en) * 2011-11-18 2013-07-22 에이큐 주식회사 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
KR102005549B1 (en) * 2018-08-09 2019-07-30 주식회사 센스톤 System, method and program for providing financial transaction by virtual code, vritual code generator and vritual code verification device

Also Published As

Publication number Publication date
WO2022186681A1 (en) 2022-09-09

Similar Documents

Publication Publication Date Title
US20200202329A1 (en) Smart card for generating virtual card number, and method and program for providing smart card-based virtual card number
KR102525471B1 (en) Method and system for managing user access using virtual code for authentication
US20220318787A1 (en) Method and system for providing financial transaction using empty card
CN109389382B (en) Virtual card number generation device, virtual card number verification device, financial transaction providing system, financial transaction providing method, and financial transaction providing program
US11935044B2 (en) System, method and program for providing financial transaction by virtual code, virtual code generator and virtual code verification device
CN101755291A (en) Method, system and trusted service manager for securely transmitting an application to a mobile phone
KR102363940B1 (en) Method and system for authengicating user using virtual code for authentication
KR102346701B1 (en) Apparatus, method and program for providing financial transaction by vritual card number
WO2017118923A1 (en) Methods and devices for authentication of an electronic payment card using electronic tokens
US11429963B2 (en) Pre-approval financial transaction providing system and method therefor
KR102502339B1 (en) Terminal, card device and method for generating virtual security code based on card data using near field communication
US20110291808A1 (en) Safe initilization procedure for a communication system
KR20230030606A (en) Apparatus for generating virtual security code based on card tagging
US11783313B2 (en) Method, program, server, wearable device for providing wearable device-based financial transaction
EP4083887A1 (en) Smart card device, device for generating virtual code for authentication, method for generating virtual code for authentication using same, and server for verifying virtual code for authentication
KR102558582B1 (en) Apparatus, method and program for providing financial transaction by vritual card number
US20240020704A1 (en) Method for registering user in holderless card by using authentication virtual code
KR20230096928A (en) Smart card device, apparatus and method for generating virtual security code through determining whether the data matches
US20230385418A1 (en) Information processing device, information processing method, program, mobile terminal, and information processing system
KR20230008657A (en) Method and apparatus for generating virtual code for authentication for other purposes
CN103106380A (en) Protective method for radio frequency system
KR20150074821A (en) Method of certificating finance micro secure digital card and payment terminal device performing the same

Legal Events

Date Code Title Description
A107 Divisional application of patent