KR20220151589A - Device and method for authentication between device based on virtual authentication code - Google Patents

Device and method for authentication between device based on virtual authentication code Download PDF

Info

Publication number
KR20220151589A
KR20220151589A KR1020220144135A KR20220144135A KR20220151589A KR 20220151589 A KR20220151589 A KR 20220151589A KR 1020220144135 A KR1020220144135 A KR 1020220144135A KR 20220144135 A KR20220144135 A KR 20220144135A KR 20220151589 A KR20220151589 A KR 20220151589A
Authority
KR
South Korea
Prior art keywords
code
client device
authentication
virtual
information
Prior art date
Application number
KR1020220144135A
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 KR1020210025002A external-priority patent/KR102464002B1/en
Application filed by 주식회사 센스톤 filed Critical 주식회사 센스톤
Publication of KR20220151589A publication Critical patent/KR20220151589A/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/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/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
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/405Establishing or using transaction specific rules

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention provides a method for authentication between devices based on a virtual authentication code. The method comprises: a first code transmitting step; a second code receiving step of receiving, from a verification device, a second code in which an authentication result for a first code is reflected, wherein the second code includes a hash value and qualification information about a client device generated by the verification device based on the first code; a step of generating a third code that is a virtual authentication code based on the first code and the second code; and a step of transmitting the third code to at least one second device associated with the qualification information.

Description

가상인증코드 기반의 장치 간 인증 방법 및 프로그램{DEVICE AND METHOD FOR AUTHENTICATION BETWEEN DEVICE BASED ON VIRTUAL AUTHENTICATION CODE}Authentication method and program between devices based on virtual authentication code {DEVICE AND METHOD FOR AUTHENTICATION BETWEEN DEVICE BASED ON VIRTUAL AUTHENTICATION CODE}

본 발명은 가상인증코드 기반의 장치 간 인증 방법 및 프로그램에 관한 것이다. The present invention relates to a method and program for authentication between devices based on a virtual authentication code.

코드형태 데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌번호뿐만 아니라 사용자 식별을 위한 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.

실제코드가 그대로 유출되지 않도록 하기 위해 가상코드를 이용하고자 하는 시도가 많았으나, 가상코드에 대응되는 실제코드를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다. 예를 들어, OTP(One Time Password)의 경우, 시간마다 코드가 변경되어 생성되지만, 사용자에게 부여된 알고리즘 판단을 위해 로그인 절차가 필요하여 다양한 영역에 적용되기 어렵다.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. For example, in the case of OTP (One Time Password), the code is changed and generated every hour, but it is difficult to apply to various areas because a login procedure is required to determine the algorithm assigned to the user.

따라서 실제카드번호, 주민등록번호 등과 같이 사용자나 장치의 식별정보를 제공하지 않으면서 실시간으로 변동되는 가상인증코드를 기반으로 사용자 또는 장치를 인증할 수 있는 발명이 필요하다.Therefore, there is a need for an invention capable of authenticating a user or device based on a virtual authentication code that changes in real time without providing identification information of the user or device, such as a real card number or resident registration number.

최근 많은 웹사이트, 플램폼 등에서는 이용자들이 해당 웹사이트 상에 사용자 정보를 등록하지 않고, 다른 웹사이트 상의 등록된 사용자 정보에 대한 접근 권한을 부여받는 OAuth 인증 방식이 많이 이용되고 있다. OAuth 인증 방식의 경우 클라이언트 서버가 해당 플랫폼의 사용자 정보에 대한 접근 권한을 부여 받기 위하여, 접근 토큰(Access Token)을 사전에 획득해야만 한다. In recent years, many websites, platforms, etc., use OAuth authentication methods in which users are granted access rights to registered user information on other websites without registering user information on the corresponding website. In the case of the OAuth authentication method, the client server must obtain an access token in advance in order to be granted access to the user information of the corresponding platform.

이때, 접근 토큰은 해당 플랫폼 내 특정 어플리케이션 또는 웹사이트에 대한 특정 정보에 대해서만 유효하다. 예를 들어, 특정 클라이언트 서버가 특정 회원에 대한 구글 캘린더에 대한 접근 토큰을 획득하였다고 하더라도, 구글 드라이버, 구글 스프레드시트 등과 같은 다른 어플리케이션에 대해서는 접근이 허용되지 않는다. 결국, 클라이언트 서버는 특정 회원에 관한 다른 어플리케이션에 대한 접근 토큰을 획득해야만 하고, 이를 위해 인증서버에 접속해야만 한다. 결국, 이러한 상황이 반복된다면, 사용자는 각각의 서버 장치에 대한 접근 토큰, 즉 접근 권한을 부여 받기 위하여 매번 인증서버에 접속해야만 한다. 이는 불필요한 시간을 소요할 뿐만 아니라 궁극적으로 반복적인 인증 절차가 누적되므로, 효율성이 떨어지는 결과를 초래한다. At this time, the access token is valid only for specific information about a specific application or website within the corresponding platform. For example, even if a specific client server acquires an access token for Google Calendar for a specific member, access to other applications such as Google Driver and Google Spreadsheet is not allowed. Ultimately, the client server must acquire access tokens for other applications related to a specific member, and must access the authentication server for this purpose. After all, if this situation is repeated, the user must access the authentication server each time to receive an access token, that is, an access right for each server device. Not only does this take unnecessary time, but ultimately, repetitive authentication procedures are accumulated, resulting in reduced efficiency.

등록특허공보 제10-1316466호, 2013.10.01.Registered Patent Publication No. 10-1316466, 2013.10.01.

상술한 바와 같은 문제점을 해결하기 위한 본 발명은 가상인증코드 기반의 서버 간 인증 장치 및 방법을 제공하는 것이다. The present invention for solving the above problems is to provide a virtual authentication code-based server-to-server authentication device and method.

다만 본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.However, 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.

상술한 과제를 해결하기 위한 가상인증코드 기반의 장치간 인증 방법은, 제1 장치에 의해 수행되는 방법으로서, 클라이언트 장치로부터 수신된 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 송신하되, 상기 제1 코드는, 상기 클라이언트 장치의 식별 정보를 기반으로 생성되며, 검증장치에서 상기 제1 코드의 검증을 통해 상기 클라이언트 장치의 권한 부여에 이용되는, 제1 코드 송신 단계, 상기 검증 장치로부터 상기 제1 코드에 대한 인증 결과가 반영된 제2 코드를 수신하되, 상기 제2 코드는, 상기 제1 코드를 기반으로 상기 검증 장치에 의해 생성된 상기 클라이언트 장치에 관한 해쉬값 및 자격 정보를 포함하는, 제2 코드 수신 단계, 상기 제1 코드 및 상기 제2 코드를 기반으로 상기 가상인증코드인 제3 코드를 생성하는 단계 및 상기 자격 정보와 관련된 적어도 하나의 제2 장치로 상기 제3 코드를 송신하는 단계를 포함한다. A virtual authentication code-based device-to-device authentication method for solving the above problems is a method performed by a first device, and transmits a first code, which is a source code for generating a virtual authentication code received from a client device, The first code is generated based on the identification information of the client device and is used to authorize the client device through verification of the first code in the verification device. Receiving a second code in which an authentication result for the first code is reflected, wherein the second code includes a hash value and qualification information about the client device generated by the verification device based on the first code, Receiving a second code, generating a third code that is the virtual authentication code based on the first code and the second code, and transmitting the third code to at least one second device related to the qualification information Include steps.

또는 상기 제2 코드는, 상기 제2 코드에 관한 유효시간정보를 더 포함하고, 상기 제1 장치는, 상기 제2 장치로부터 만료된 제2 코드의 갱신을 위한 상기 제3 코드를 수신하고, 상기 제1 코드를 상기 검증장치로 송신하여, 상기 검증장치가 상기 제1 코드를 기반으로 상기 클라이언트 장치의 인증이 완료될 경우 상기 제2 코드를 갱신한 후 상기 갱신된 제2 코드를 상기 제1 장치로 송신하도록 요청하고, 상기 제1 코드, 상기 갱신된 제2 코드 및 상기 갱신된 제2 코드가 수신된 시간데이터를 기반으로 제3 코드를 재 생성하여, 제2 장치로 송신하는 단계를 포함한다. or the second code further includes valid time information on the second code, and the first device receives the third code for updating the expired second code from the second device; A first code is transmitted to the verification device, and the verification device updates the second code when authentication of the client device is completed based on the first code, and then transmits the updated second code to the first device. and regenerating a third code based on the first code, the updated second code, and the time data from which the updated second code is received, and transmitting the third code to a second device. .

또는 상기 제2 코드는, 복수의 세부코드를 포함하고, 상기 복수의 세부코드는, 상기 클라이언트 장치에 의해 단위카운트마다 변경되어 생성되는 것이고, 상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것이다. Alternatively, the second code includes a plurality of detailed codes, and the plurality of detailed codes are changed and generated for each unit count by the client device, and the unit count is set at a specific time interval, so that the time It changes as the interval elapses.

또는 상기 세부코드는, 서로 상관관계를 가지는 복수의 제1 세부코드 및 제2 세부코드를 포함하고, 상기 제1 세부코드는, 상기 검증장치에서의 상기 클라이언트 장치의 인증정보에 관한 탐색시작지점을 결정하고, 상기 제2 세부코드는, 상기 탐색시작지점으로부터 상기 인증정보에 관한 탐색경로를 결정한다. Alternatively, the detailed code includes a plurality of first detailed codes and second detailed codes having a correlation with each other, and the first detailed code determines a search start point for authentication information of the client device in the verification device. and the second detailed code determines a search path for the authentication information from the search start point.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른, 제2 장치에 의해 수행되는 가상인증코드 기반의 장치 간 인증방법으로서, 제1 장치로부터 가상인증코드인 제3 코드를 수신하는 단계 및 상기 제3 코드를 기반으로, 상기 클라이언트 장치의 권한을 승인하는 단계를 포함하고, 상기 권한 승인 단계는, 상기 제3 코드 내에 포함된 상기 제3 코드의 생성에 사용된 제1 코드(를 기반으로 클라이언트 장치에 관한 해쉬값을 생성하는 단계, 상기 생성된 해쉬값과 상기 제3 코드 내에 해쉬값을 비교하여, 상기 클라이언트 장치를 검증하는 단계 및 상기 제3 코드를 기반으로, 상기 클라이언트 장치에 관한 자격 정보를 판단하여 상기 클라이언트 장치의 권한을 승인하는 단계를 포함한다. According to another aspect of the present invention for solving the above problems, an authentication method between devices based on a virtual authentication code performed by a second device, comprising the steps of receiving a third code, which is a virtual authentication code, from a first device and the Approving the authority of the client device based on a third code, wherein the authority approval step includes a first code (based on the client device) used to generate the third code included in the third code. Generating a hash value for the device, comparing the generated hash value with the hash value in the third code to verify the client device, and based on the third code, qualification information about the client device and approving the authority of the client device by determining.

또는 상기 권한 승인 단계는 상기 제3 코드를 기반으로, 상기 클라이언트 장치의 접근 가능한 장치에 상기 제2 장치가 포함되는지 여부를 판단하는 단계 및 상기 제3 코드 내에 포함된 시간데이터 및 제2 코드를 기반으로, 상기 제2 장치에 대한 상기 클라이언트 장치의 자격에 해당하는 권한을 승인하는 단계를 포함한다. Alternatively, the permission approval step may include determining whether or not the second device is included in accessible devices of the client device based on the third code, and based on the time data and the second code included in the third code. In this way, the step of approving the right corresponding to the qualification of the client device to the second device.

또는 상기 제2 코드는 상기 제2 코드에 관한 유효시간정보를 더 포함하고, 상기 제2 코드의 유효시간이 만료되면, 상기 제1 장치로 상기 제3 코드를 반환하여, 상기 제2 코드를 갱신할 것을 요청하는 단계를 더 포함한다. or, the second code further includes valid time information regarding the second code, and when the valid time of the second code expires, the third code is returned to the first device to update the second code. It further includes the step of asking to do.

또는 상기 제3 코드는 상기 제1 코드 및 상기 제2 코드와, 상기 제2 코드를 수신한 시간 데이터를 기반으로 생성되고, 상기 권한 승인 단계는, 상기 제3 코드를 기반으로, 상기 클라이언트 장치에 관한 자격 정보 및 상기 제2 코드를 수신한 시간을 기반으로, 상기 클라이언트 장치의 권한을 승인한다. Alternatively, the third code is generated based on the first code, the second code, and time data of receiving the second code, and the permission approval step is based on the third code to the client device. Authorization of the client device is approved based on the time when the second code is received and qualification information about the client device.

또는 상기 클라이언트 장치 검증 성공 및 상기 승인된 권한을 식별하는 정보를 생성하는 단계 및 상기 제3 코드 및 상기 식별 정보를 기반으로 제2 장치에 관한 신규 제3 코드를 생성하는 단계를 포함한다. or generating information identifying the client device verification success and the approved authority, and generating a new third code for a second device based on the third code and the identification information.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른, 검증 장치에 의해 가상인증코드 기반의 장치 간 인증 방법으로서, 제1 장치를 통해 클라이언트 장치로부터 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 수신하되, 상기 제1 코드는, 상기 클라이언트 장치의 식별 정보를 기반으로 생성된 것인, 제1 코드 수신 단계, 상기 제1 코드를 기반으로, 상기 클라이언트 장치의 식별 정보의 저장위치를 탐색하여 상기 클라이언트 장치의 인증을 수행하는 단계, 상기 클라이언트 장치의 인증이 완료되면, 상기 클라이언트 장치에 관한 자격 정보를 생성하는 단계, 상기 제1 코드를 기반으로 상기 클라이언트 장치에 관한 해쉬값을 생성하는 단계, 상기 생성된 자격 정보 및 해쉬값을 기반으로, 상기 제1 코드에 대한 인증 결과가 반영된 제2 코드를 생성하는 단계 및 상기 제1 장치가 상기 제2 코드를 기반으로 상기 가상인증코드인 제3 코드를 생성하도록 상기 제2 코드를 상기 제1 장치로 송신하는 단계를 포함한다. As a device-to-device authentication method based on a virtual authentication code by a verification device according to another aspect of the present invention for solving the above-mentioned problems, the first source code for generating a virtual authentication code from a client device through a first device Receiving a code, wherein the first code is generated based on the identification information of the client device, receiving a first code, based on the first code, searching for a storage location of the identification information of the client device and performing authentication of the client device, generating qualification information about the client device when the authentication of the client device is completed, and generating a hash value of the client device based on the first code. , Generating a second code in which the authentication result for the first code is reflected based on the generated qualification information and hash value, and the first device generating a third code that is the virtual authentication code based on the second code. and sending the second code to the first device to generate a code.

또는 상기 제2 코드는, 상기 제2 코드에 관한 유효시간정보를 더 포함하고, 상기 검증 장치는, 상기 제1 장치로부터 수신된 제1 코드에 대한 제2 코드의 유효시간이 만료된 상태에서 상기 만료된 제2 코드에 관한 갱신을 요청 받으면, 상기 제1 장치로부터 수신된 제1 코드 및 기 저장된 제1 코드의 동일 여부를 판단하여, 상기 클라이언트 장치의 인증을 수행하는 단계 및 상기 클라이언트 장치의 인증이 완료되면, 상기 제2 코드를 갱신하여, 상기 제1 장치로 송신하는 단계를 더 포함한다. or, the second code further includes valid time information on the second code, and the verification device, in a state in which the valid time of the second code for the first code received from the first device has expired, When a renewal request for the expired second code is received, determining whether the first code received from the first device and the previously stored first code are the same, and performing authentication of the client device and authentication of the client device When this is completed, updating the second code and transmitting it to the first device is further included.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른, 클라이언트 장치에 의해 수행되는 가상인증코드 기반의 장치 간 인증방법으로서, 상기 클라이언트 장치의 식별 정보를 기반으로, 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 생성하는 단계 및 상기 제1 코드를 제1 장치를 통해 검증 장치로 송신하여, 상기 제1 장치에 대한 상기 클라이언트 장치의 권한 승인을 요청하는 단계를 포함하고, 상기 제1 코드는, 복수의 세부코드를 포함하고, 상기 복수의 세부코드는, 상기 클라이언트 장치에 의해 단위카운트마다 변경되어 생성되는 것이고, 상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것이다. According to another aspect of the present invention for solving the above problems, a method for device-to-device authentication based on a virtual authentication code performed by a client device, based on identification information of the client device, is a source for generating a virtual authentication code. Generating a first code that is a code and transmitting the first code to a verification device through a first device to request authorization of the client device for the first device, includes a plurality of detailed codes, and the plurality of detailed codes are changed and generated for each unit count by the client device, and the unit count is set at a specific time interval, and as the time interval elapses, It will change.

또는 상기 세부코드는, 서로 상관관계를 가지는 복수의 제1 세부코드 및 제2 세부코드를 포함하고, 상기 제1 세부코드는, 상기 검증장치에서의 상기 클라이언트 장치의 인증정보에 관한 탐색시작지점을 결정하고, 상기 제2 세부코드는, 상기 탐색시작지점으로부터 상기 인증정보에 관한 탐색경로를 결정한다. Alternatively, the detailed code includes a plurality of first detailed codes and second detailed codes having a correlation with each other, and the first detailed code determines a search start point for authentication information of the client device in the verification device. and the second detailed code determines a search path for the authentication information from the search start point.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 가상인증코드를 기반으로 한 서버간 인증 방법을 수행하는 컴퓨터 프로그램은, 저장 매체에 저장될 수 있다.A computer program for performing an authentication method between servers based on a virtual authentication code in another aspect of the present invention for solving the above problems may be stored in a storage medium.

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

상기와 같은 본 발명에 따르면, 검증 장치에서의 클라이언트 장치의 단 한번의 인증만으로도, 복수의 서비스 장치에 대한 권한 인증이 가능하다. 이를 통해, 클라이언트 장치가 각각의 서비스 장치에 권한 인증을 위해 검증 장치에 접속한 후 인증 과정을 수행하는데 소요된 시간 및 비용을 절약할 수 있다. According to the present invention as described above, authorization for a plurality of service devices can be authenticated with only one authentication of a client device in a verification device. Through this, it is possible to save time and cost required to perform an authentication process after a client device accesses a verification device for authorization authentication to each service device.

한편, 클라이언트 장치에 관한 복수의 서비스 장치에 대한 자격 정보를 포함하는 가상코드를 생성함으로써, 상기 클라이언트 장치의 접근 권한이 인정되는 적어도 하나 이상의 서비스 장치에 대한 정보가 유출되는 것을 방지할 수 있다. Meanwhile, by generating a virtual code including qualification information on a plurality of service devices of the client device, it is possible to prevent leakage of information about at least one service device to which the access authority of the client device is recognized.

또한, 상기 본 발명에 의하면, 가상인증코드생성 및 자격정보저장공간 탐색을 위한 알고리즘이 추가되면 되므로, 기존의 프로세스를 그대로 유지할 수 있다. 이를 통해, 보안성을 높이기 위해 기존 프로세스 내에서 변경되어야 하는 부분을 최소화할 수 있고, 사용자는 보안성 향상을 위한 별도 단계를 수행하지 않아도 된다.In addition, according to the present invention, since an algorithm for generating a virtual authentication code and searching for a storage space for qualification information needs only be added, the existing process can be maintained as it is. 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은 본 발명의 일 실시예에 따른, 클라이언트 장치의 제1 코드를 기반으로 제1 장치에 대한 권한 승인을 요청하는 방법을 개략적으로 나타낸 순서도이다.
도 4는 본 발명의 일 실시예에 따른, 클라이언트 장치의 제1 코드의 개략적인 구성도이다.
도 5는 본 발명의 일 실시예에 따른, 검증 장치의 개략적인 구성도이다.
도 6은 본 발명의 일 실시예에 따른, 제1 코드를 기반으로 클라이언트 장치를 검증하여, 제2 코드를 생성하는 방법을 개략적으로 나타낸 순서도이다.
도 7은 본 발명의 일 실시예에 따라 k각형의 구름이동을 통해 클라이언트 장치의 인증 정보의 저장 위치를 탐색하는 저장위치탐색알고리즘에 대한 예시도이다.
도 8는 본 발명의 일 실시예에 따른 검증 장치에 의해 생성된 제2 코드의 개략적인 구성도이다.
도 9는 본 발명의 일 실시예에 따른 서비스 장치에 대한 개략적인 구성도이다.
도 10은 본 발명의 일 실시예에 따른 제1 장치에 의해 수행되는 제1 코드 및 제2 코드를 기반으로 가상인증코드인 제3 코드를 생성하는 방법을 개략적으로 나타낸 순서도이다.
도 11는 본 발명의 일 실시예에 따른 제3 코드의 개략적인 구성도이다.
도 12는 본 발명의 일 실시예에 따른, 제3 코드 기반의 서버 간 인증 방법을 개략적으로 나타낸 예시도이다.
도 13은 본 발명의 일 실시예에 따른, 제3 코드를 기반으로 한 서버 간 인증 방법을 개략적으로 나타낸 순서도이다.
도 14는 본 발명의 일 실시예에 따른, 제3 코드를 기반으로 한 클라이언트 장치에 대한 권한 승인 방법을 개략적으로 나타낸 순서도이다.
도 15는 본 발명의 일 실시예에 따른, 제3 코드를 기반으로 클라이언트 장치에 대한 권한을 승인하는 방법을 개략적으로 나타낸 순서도이다.
도 16은 본 발명의 제2 장치의 클라이언트 장치의 검증 및 권한 승인 정보를 기반으로, 새로운 제3 코드를 생성하는 것을 개략적으로 나타낸 순서도이다.
1 is a flowchart schematically illustrating a server-to-server authentication method based on a virtual authentication code according to an embodiment of the present invention.
2 is a schematic configuration diagram of a client device according to an embodiment of the present invention.
3 is a flowchart schematically illustrating a method of requesting authorization for a first device based on a first code of a client device according to an embodiment of the present invention.
4 is a schematic structural diagram of a first code of a client device according to an embodiment of the present invention;
5 is a schematic configuration diagram of a verification device according to an embodiment of the present invention.
6 is a flowchart schematically illustrating a method of generating a second code by verifying a client device based on a first code, according to an embodiment of the present invention.
7 is an exemplary view of a storage location search algorithm for searching a storage location of authentication information of a client device through k-shaped cloud movement according to an embodiment of the present invention.
8 is a schematic configuration diagram of a second code generated by a verification device according to an embodiment of the present invention.
9 is a schematic configuration diagram of a service device according to an embodiment of the present invention.
10 is a flowchart schematically illustrating a method of generating a third code, which is a virtual authentication code, based on a first code and a second code performed by a first device according to an embodiment of the present invention.
11 is a schematic configuration diagram of a third code according to an embodiment of the present invention.
12 is an exemplary view schematically illustrating a method for authentication between servers based on a third code according to an embodiment of the present invention.
13 is a flowchart schematically illustrating an authentication method between servers based on a third code according to an embodiment of the present invention.
14 is a flowchart schematically illustrating a method for authorizing a client device based on a third code according to an embodiment of the present invention.
15 is a flowchart schematically illustrating a method for authorizing a client device based on a third code according to an embodiment of the present invention.
16 is a flowchart schematically illustrating generation of a new third code based on verification of a client device and authorization information of a second device 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.

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

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

또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 엘리먼트를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 엘리먼트들, 객체지향 소프트웨어 엘리먼트들, 클래스 엘리먼트들 및 태스크 엘리먼트들과 같은 엘리먼트들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 엘리먼트들과 "부"들 안에서 제공되는 기능은 더 작은 수의 엘리먼트들 및 "부"들로 결합되거나 추가적인 엘리먼트들과 "부"들로 더 분리될 수 있다.Also, the term "unit" used in the specification means a hardware element such as software, FPGA or ASIC, and "unit" performs certain roles. However, "unit" is not meant to be limited to software or hardware. A “unit” may be configured to reside in an addressable storage medium and may be configured to reproduce on one or more processors. Thus, as an example, “unit” can refer to elements such as software elements, object-oriented software elements, class elements and task elements, processes, functions, properties, procedures, subroutines, programs Segments of code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Functionality provided within elements and “sections” may be combined into a smaller number of elements and “sections” or further separated into additional elements and “sections”.

또한, 본 명세서에서 모든 “부”는 적어도 하나의 프로세서에 의해 제어될 수 있으며 본 개시의 “부”가 수행하는 동작을 적어도 하나의 프로세서가 수행할 수도 있다.In addition, all “units” in this specification may be controlled by at least one processor, and at least one processor may perform operations performed by “units” of the present disclosure.

본 명세서의 실시예들은 기능 또는 기능을 수행하는 블록의 관점에서 설명될 수 있다. 본 개시의 ‘부’ 또는 ‘모듈’ 등으로 지칭될 수 있는 블록은 논리 게이트, 집적 회로, 마이크로 프로세서, 마이크로 컨트롤러, 메모리, 수동 전자 부품, 능동 전자 부품, 광학 컴포넌트, 하드와이어드 회로(hardwired circuits) 등과 같은 아날로그 또는 디지털 회로에 의해 물리적으로 구현되고, 선택적으로 펌웨어 및 소프트웨어에 의해 구동될 수 있다. Embodiments herein may be described in terms of a function or a block performing a function. Blocks that may be referred to as 'units' or 'modules' of the present disclosure include logic gates, integrated circuits, microprocessors, microcontrollers, memories, passive electronic components, active electronic components, optical components, and hardwired circuits. may be physically implemented by analog or digital circuitry such as the like, and optionally driven by firmware and software.

본 명세서의 실시예는 적어도 하나의 하드웨어 디바이스 상에서 실행되는 적어도 하나의 소프트웨어 프로그램을 사용하여 구현될 수 있고 엘리먼트를 제어하기 위해 네트워크 관리 기능을 수행할 수 있다.Embodiments herein may be implemented using at least one software program running on at least one hardware device and may perform network management functions to control elements.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.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.

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

본 명세서에서 "문자"는 코드를 구성하는 구성요소로서, 대문자알파벳, 소문자알파벳, 숫자 및 특수문자 등의 전부 또는 일부를 포함한다.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.

본 명세서에서 '세부코드'는 가상코드에 포함되는 일부 코드를 의미한다. 즉, 가상코드가 별도로 생성된 복수의 코드를 결합하여 생성되는 경우, 세부코드는 별도로 생성되어 가상코드를 구성하는 개별 코드를 의미한다.In this specification, 'detailed code' refers to some codes included in virtual codes. That is, when the virtual code is generated by combining a plurality of separately generated codes, the detailed code refers to an individual code that is separately generated and constitutes the virtual code.

본 명세서에서 '단위카운트'는 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것으로 정의된 단위이다. 예를 들어, 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.

본 명세서에서 "ID(identifier)"는 클라이언트 장치를 식별하기 위해 클라이언트 장치 별로 중복되지 않게 서버 장치에 의해 부여되는 고유한 코드 형태의 값을 의미한다.In this specification, "ID (identifier)" means a value in the form of a unique code given by a server device so as not to be duplicated for each client device in order to identify the client device.

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

본 명세서에서 '구름이동'은 대상체가 회전하면서 병진운동을 하는 것을 의미한다. 즉, '구름이동'은 회전운동과 병진운동을 함께 수행하면서 이동하는 것으로서, 회전하는 대상체의 각 지점이 이동하는 축사에 차례대로 접하면서 이동하는 것을 의미한다.In the present specification, 'cloud movement' means that an object performs translational motion while rotating. That is, 'moving the cloud' means moving while performing both rotational motion and translational motion, and each point of the rotating object moves while contacting the moving barn in turn.

도 1은 본 발명의 일 실시예에 따른, 가상인증코드 기반의 서버 간 인증 방법을 개략적으로 나타낸 예시도이다. 1 is an exemplary diagram schematically illustrating a server-to-server authentication method based on a virtual authentication code according to an embodiment of the present invention.

도 1을 참조하면, 클라이언트 장치(100)는 복수의 서비스 장치(200) 중 특정 장치에 대한 접근 또는 이용 권한을 승인 받고자 할 때, 검증 장치(300)에 인증 및 검증을 받아야 한다. 클라이언트 장치(100)를 검증하기 위해서는, 검증 장치(300)에 저장된 해당 클라이언트 장치(100)의 인증 정보를 활용해야 하기 때문이다. 도 1을 참조하면, 클라이언트 장치는, 제1 장치에 관한 권한을 승인 받고자 제1 코드를 생성한 후 제1 장치를 통해 검증 장치에 송신하였다. 이때 검증 장치(300)는, 수신한 제1 코드를 기반으로 클라이언트 장치에 대한 검증을 수행하게 될 것이다. 만약, 클라이언트 장치(100)가 서비스 장치(200) 중 제1 장치(200_1)가 아닌 제2 장치(200_2)에 대한 권한을 승인 받고자 한다면, 클라이언트 장치(100)를 인증하기 위한 또 다른 제1 코드를 생성한 후 검증 장치(300)로 송신하여, 검증 과정을 다시 수행하여야 한다. 즉, 클라이언트 장치(100)는 각각의 서비스 장치(200)에 대한 권한 승인을 위하여, 매번 검증 장치(300)에 권한 승인을 요청해야 한다. 이는 시간적으로 비효율적이며, 반복되는 과정으로 인하여, 효율성이 떨어진다. 따라서, 본 발명은 이러한 문제점을 해결하고, 검증 장치(300)에서의 클라이언트 장치(100)에 대한 한번의 인증 후 해당 인증 정보를 포함하는, 가상인증코드를 생성하도록 하여, 클라이언트 장치(100)의 검증 장치(300)에 대한 반복적인 권한 승인 없이도 서비스 장치(200) 간의 클라이언트 장치(100)의 검증이 가능하도록 한다. Referring to FIG. 1 , the client device 100 needs to be authenticated and verified by the verification device 300 when trying to obtain permission to access or use a specific device among a plurality of service devices 200 . This is because authentication information of the corresponding client device 100 stored in the verification device 300 must be used to verify the client device 100 . Referring to FIG. 1 , the client device generates a first code to obtain authorization for the first device and transmits the first code to the verification device through the first device. At this time, the verification device 300 will perform verification on the client device based on the received first code. If the client device 100 wants to obtain permission for the second device 200_2 other than the first device 200_1 among the service devices 200, another first code for authenticating the client device 100 After generating, it must be transmitted to the verification device 300 to perform the verification process again. That is, the client device 100 must request permission approval from the verification device 300 each time for permission approval for each service device 200 . This is time inefficient, and due to repeated processes, efficiency is reduced. Therefore, the present invention solves this problem, and after one-time authentication of the client device 100 in the verification device 300, a virtual authentication code including corresponding authentication information is generated, so that the client device 100 Verification of the client device 100 between service devices 200 is possible without repetitive authorization of the verification device 300 .

도 1을 참조하면, 상술한 본 발명의 과제 해결 원리는, 검증 장치(300)에 의해 생성되는 제2 코드를 기반으로 제1 장치(200_1)에서 생성되는 제3 코드를 통해 발휘될 수 있다. 이하, 이에 대한 본 발명의 실시예에 대하여 자세히 설명하도록 한다. Referring to FIG. 1 , the above-described problem solving principle of the present invention can be demonstrated through a third code generated by the first device 200_1 based on the second code generated by the verification device 300 . Hereinafter, embodiments of the present invention will be described in detail.

도 2는 본 발명의 일 실시예에 따른, 클라이언트 장치의 개략적인 구성도이다. 도 3은 본 발명의 일 실시예에 따른, 클라이언트 장치의 제1 코드를 기반으로 제1 장치에 대한 권한 승인을 요청하는 방법을 개략적으로 나타낸 순서도이다. 도 4는 본 발명의 일 실시예에 따른, 클라이언트 장치의 제1 코드의 개략적인 구성도이다. 2 is a schematic configuration diagram of a client device according to an embodiment of the present invention. 3 is a flowchart schematically illustrating a method of requesting authorization for a first device based on a first code of a client device according to an embodiment of the present invention. 4 is a schematic structural diagram of a first code of a client device according to an embodiment of the present invention;

먼저, 제1 코드는 상술한 가상인증코드 중 하나로서, 클라이언트 장치에 대한 인증을 위해 생성된 가상코드를 의미한다. 발명의 이해를 돕기 위하여, 클라이언트 장치에 관한 가상인증코드를 본 명세서에서는 상기 제1 코드로 설명하도록 한다. First, the first code is one of the virtual authentication codes described above, and refers to a virtual code generated for authentication of a client device. In order to help understand the invention, the virtual authentication code for the client device will be described as the first code in this specification.

한편, 제1 코드는 검증 장치(300)에서 상기 클라이언트 장치를 인증하는데 이용된다. 구체적으로, 제1 코드에 포함된 클라이언트 장치(100)의 식별정보와 상응하여 검증 장치 내 저장된, 클라이언트 장치(100)의 인증정보의 저장위치를 탐색하여, 상기 클라이언트 장치를 인증한다. Meanwhile, the first code is used to authenticate the client device in the verification device 300 . Specifically, the storage location of the authentication information of the client device 100 stored in the verification device corresponding to the identification information of the client device 100 included in the first code is searched for, and the client device is authenticated.

도 2 및 도 3을 참조하여, 클라이언트 장치(100) 및 클라이언트 장치(100)의 제 1코드 생성 방법에 대하여 설명하도록 한다. Referring to FIGS. 2 and 3 , the client device 100 and the first code generating method of the client device 100 will be described.

도 2를 참조하면, 클라이언트 장치(100)는 세부코드생성부(110), 제1코드생성부(120) 및 통신부(130)를 포함한다. 한편, 클라이언트 장치(100)는 리소스 서버(Resource Server)에 대한 접근 권한 및 데이터 이용 권한을 검증 서버(Authentication Server)에 요청하는 클라이언트 서버(Client Server)에 해당할 수 있다. 그러나 이에 한정하는 것은 아니다.Referring to FIG. 2 , the client device 100 includes a detailed code generator 110 , a first code generator 120 and a communication unit 130 . Meanwhile, the client device 100 may correspond to a client server that requests an authentication server for access rights and data use rights for a resource server. However, it is not limited thereto.

세부코드생성부(110)는, 상기 제1코드 내 포함된 복수의 세부코드를 생성한다. 이때, 제1코드생성부(120)는 하나 이상의 세부코드를 조합하여 제1코드로 생성하는 역할을 수행한다. 일 실시예로, 상기 제1코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. The detail code generator 110 generates a plurality of detail codes included in the first code. At this time, the first code generator 120 plays a role of generating a first code by combining one or more detailed codes. In one embodiment, the first code is generated by combining a plurality of detailed codes according to a specific rule.

한편, 세부코드는, 클라이언트 장치(100)에 의해 단위카운트마다 변경되어 생성되는 것으로, 이때 단위카운트는, 특정한 시간간격으로 설정되어 시간간격에 따라 변경되는 것을 의미한다. 예를 들어, 시간간격이 2초라고 가정한다면, 각각의 2초가 경과될 때마다 상기 단위카운트가 누적되어 산출되게 될 것이다. On the other hand, the detailed code is generated by being changed for each unit count by the client device 100. In this case, the unit count is set at a specific time interval and is changed according to the time interval. For example, if it is assumed that the time interval is 2 seconds, the unit count will be accumulated and calculated whenever each 2 seconds elapses.

도 3을 참조하면, 클라이언트 장치(100)는 식별 정보를 기반으로, 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 생성한다(S410). Referring to FIG. 3 , the client device 100 generates a first code, which is a source code for generating a virtual authentication code, based on the identification information (S410).

구체적으로, 클라이언트 장치(100)의 제1코드생성부(120)는 클라이언트 장치의 식별 정보를 기반으로 제1 코드를 생성한다. 이때, 클라이언트 장치(100)는 특정 서비스 장치에 대한 접근 권한 승인을 위하여, 제1코드생성함수에 따라 제1 코드를 생성한다. 클라이언트 장치(100)의 식별 정보란, 검증 장치에 설정된 해당 클라이언트 장치의 ID(Identifier) 및 비밀값(Secret)일 수 있다. 그러나 이에 제한되는 것은 아니다. Specifically, the first code generator 120 of the client device 100 generates a first code based on identification information of the client device. At this time, the client device 100 generates a first code according to a first code generation function in order to approve access to a specific service device. The identification information of the client device 100 may be an ID (Identifier) and a secret value of the corresponding client device set in the verification device. However, it is not limited thereto.

도 4를 참조하면, 제1 코드의 개략적인 구성을 알 수 있다. 제1코드 생성부(120)는 해당 클라이언트 장치의 검증장치에 대한 ID(Identifier) 및 해쉬값이 포함된 제1코드를 생성하였다. 그러나 이에 제한되는 것은 아니다. Referring to FIG. 4 , a schematic configuration of the first code can be seen. The first code generation unit 120 generates a first code including an ID (Identifier) and hash value for the verification device of the corresponding client device. However, it is not limited thereto.

예를 들어, 도면에 명확히 도시되지는 않았으나, 본 발명의 일 실시예로, 클라이언트 장치의 ID를 상기 제1코드생성함수에 적용하여 가상인증코드를 생성한 후 상기 클라이언트 장치(100)의 검증 장치에 대한 비밀값(SECRET)을 해쉬함수(Hash Function)에 적용하여 해쉬값을 산출한다. 그리고 상기 가상인증코드와 상기 해쉬값을 결합하여 최종적으로 제1 코드를 생성할 수도 있을 것이다. For example, although not clearly shown in the drawing, in one embodiment of the present invention, a verification device of the client device 100 after generating a virtual authentication code by applying the ID of the client device to the first code generating function The hash value is calculated by applying the secret value (SECRET) to the hash function. In addition, the first code may be finally generated by combining the virtual authentication code and the hash value.

또한, 도면에 명확히 도시되지는 않았으나, 제1 코드를 생성함에 있어서, 시간 데이터를 활용할 수도 있을 것이다. 여기서 시간 데이터란, 클라이언트 장치(100)의 제1 장치에 대한 권한 승인 요청 시간일 수 있다. 그러나 이에 제한되는 것은 아니다. 시간 데이터를 활용한 경우, 클라이언트 장치(100)의 식별 정보, 예를 들어 ID 및 상기 시간 데이터를 상기 제1코드생성함수에 적용하여 가상인증코드를 생성한다. 그리고 상기 시간 데이터 및 클라이언트 장치(100)의 비밀값을 해쉬함수(Hash Function)에 적용하여 해쉬값을 산출한다. 가상인증코드 및 해쉬값을 결합하여 제1 코드를 생성할 수도 있을 것이다. In addition, although not clearly shown in the drawing, time data may be utilized in generating the first code. Here, the time data may be the permission approval request time for the first device of the client device 100 . However, it is not limited thereto. When time data is used, a virtual authentication code is generated by applying the identification information of the client device 100, for example, the ID and the time data to the first code generating function. A hash value is calculated by applying the time data and the secret value of the client device 100 to a hash function. The first code may be generated by combining the virtual authentication code and the hash value.

한편, 도 3을 참조하면, 클라이언트 장치(100)는 제1 코드를 제1 장치로 송신하여, 상기 제1 장치에 대한 상기 클라이언트 장치의 권한 승인을 요청한다(S420). 보다 상세하게는, 클라이언트 장치(100)는 제1 장치를 통해 검증 장치로 제1 코드를 송신하여, 제1 장치에 대한 클라이언트 장치의 권한 승인을 요청한다. Meanwhile, referring to FIG. 3 , the client device 100 transmits a first code to the first device and requests authorization of the client device for the first device (S420). More specifically, the client device 100 requests authorization of the client device for the first device by transmitting a first code to the verification device through the first device.

한편, 본 발명의 일 실시예로는, 클라이언트 장치(100)가 검증 장치(300)에 등록된 복수의 서비스 장치(200)에 대한 권한 승인을 위하여, 검증 장치(300)로 직접 제1코드를 송신하여, 복수의 서비스 장치(200)에 대한 권한 승인을 요청할 수 있을 것이다. 이때, 검증 장치(300)에 의해 해당 클라이언트 장치(100)에 대한 인증이 완료되면, 검증 장치(300)는 제1 코드를 기반으로 생성된 제2 코드를 서비스 장치(200)가 아닌 클라이언트 장치(100)로 직접 송신한다. Meanwhile, in an embodiment of the present invention, the client device 100 directly transmits the first code to the verification device 300 in order to authorize the plurality of service devices 200 registered in the verification device 300. By sending, permission approval for the plurality of service devices 200 may be requested. At this time, when authentication of the corresponding client device 100 is completed by the verification device 300, the verification device 300 transmits the second code generated based on the first code to the client device (not the service device 200). 100) is sent directly to

상술한 바와 같이, 클라이언트 장치(100)가 접근 권한 승인을 받고자 하는 제1 장치로 제1 코드를 송신한다. 이때, 제1 장치는 상술한 바와 같이, 복수의 서비스 장치(200) 중 클라이언트 장치(100)의 최초 접근 권한 승인을 요청한 장치로 결정될 수 있다. 즉, 제1 장치는 클라이언트 장치(100)가 접근 권한 승인을 요청하기 위하여 제1 코드를 송신함으로써, 결정될 수 있다. 그러나 이에 제한되는 것은 아니다. As described above, the client device 100 transmits the first code to the first device for which access authority is to be approved. At this time, as described above, the first device may be determined as a device requesting approval of the first access right of the client device 100 among the plurality of service devices 200 . That is, the first device may be determined by transmitting the first code in order for the client device 100 to request permission for access. However, it is not limited thereto.

예를 들어, 복수의 서비스 장치(200)가 순서를 가지고 연동하는 경우, 즉 클라이언트 장치(100)가 최초 서비스 장치(200)에 대한 접근 및/또는 해당 장치의 이용 권한 승인을 받아야만, 나머지 서비스 장치(200)에 대한 접근 및/또는 나머지 서비스 장치(200)에 대한 이용 권한 승인이 가능하다면, 제1 장치는 사전에 설정될 수도 있을 것이다. 또한, 제1 장치를 비롯한 서비스 장치(200) 내 나머지 장치에 대해서도 순서에 기반하여, 명칭이 결정될 수 있다. For example, when a plurality of service devices 200 are interlocked in order, that is, the client device 100 must receive access to and/or permission to use the first service device 200, and then the remaining service devices 200. If access to 200 and/or permission to use other service devices 200 is approved, the first device may be set in advance. In addition, the names of the remaining devices in the service device 200, including the first device, may be determined based on the order.

통신부(130)는 제1코드를 검증장치(300)로 송신하는 역할을 수행한다. 통신부(130)는 제1코드를 외부로 제공할 수 있는 다양한 구성을 포함할 수 있다. The communication unit 130 serves to transmit the first code to the verification device 300 . The communication unit 130 may include various components capable of providing the first code to the outside.

도면에 명확히 도시되지는 않았으나, 무선통신모듈; 근거리통신모듈; IC칩; 자장발생부; 디스플레이부 등의 전부 또는일부를 포함한다.Although not clearly shown in the drawing, a wireless communication module; short distance communication module; IC chip; magnetic field generating unit; It includes all or part of the display unit and the like.

무선 인터넷 모듈은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 이동 단말기(100)에 내장되거나 외장될 수 있다. 무선 인터넷 기술로는 WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), LTE(long term evolution), LTE-A(Long Term Evolution-Advanced) 등이이용될 수 있다.The wireless Internet module refers to a module for wireless Internet access, and may be built into or external to the mobile terminal 100 . Wireless Internet technologies include WLAN (Wireless LAN) (Wi-Fi), Wibro (Wireless broadband), Wimax (World Interoperability for Microwave Access), HSDPA (High Speed Downlink Packet Access), LTE (long term evolution), LTE-A (Long Term Evolution-Advanced) and the like may be used.

근거리 통신 모듈은 근거리 통신을 위한 모듈을 말한다. 근거리 통신(short range communication) 기술로 블루투스(Bluetooth), BLE(Bluetooth Low Energy), 비콘(Beacon), RFID(Radio Frequency Identification), NFC(Near Field Communication), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다.The short-distance communication module refers to a module for short-distance communication. Bluetooth, BLE (Bluetooth Low Energy), Beacon, RFID (Radio Frequency Identification), NFC (Near Field Communication), infrared data association (IrDA), UWB (Ultra Wideband), ZigBee, and the like may be used.

이하에서는, 세부코드를 기반으로 클라이언트장치(100)가 제1코드를 생성하는 방법에 대하여 설명한다. Hereinafter, a method for generating the first code by the client device 100 based on the detailed code will be described.

도면에 명확히 도시되지는 않았으나, 제1코드생성부(120)는 하나 이상의 세부코드를 조합하여 제1코드로 생성하는 역할을 수행한다. 일 실시예로, 상기 제1코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 제1코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함한다. Although not clearly shown in the drawing, the first code generator 120 plays a role of generating a first code by combining one or more detailed codes. In one embodiment, the first code is generated by combining a plurality of detailed codes according to a specific rule. The first code generating function includes a rule for combining a plurality of detailed codes (ie, a detailed code combining function).

복수의 세부코드를 결합하여 하나의 가상코드를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. Various methods may be applied as a method of generating one virtual code by combining a plurality of detailed codes.

클라이언트 장치(100)는, 일 실시예로, 클라이언트 장치의 인증을 위한 가상인증코드, 즉 제1코드를 생성하는 프로그램(즉, 애플리케이션)을 포함할 수 있다. The client device 100, in one embodiment, may include a program (ie, an application) that generates a virtual authentication code, that is, a first code for authentication of the client device.

이때 세부코드생성부(110)는 클라이언트의 식별 정보(Identifier, Secret 등)를 기반으로 하나 이상의 세부코드를 생성하는 역할을 수행한다. 제1코드생성함수는 하나 이상의 세부코드생성함수를 포함한다. 예를 들어, 제1코드가 복수의 세부코드를 포함하는 경우, 제1코드생성함수는 복수의 세부코드생성함수를 이용하여 복수의 세부코드를 생성하고, 복수의 세부코드를 결합하는 세부코드결합함수를 이용하여 제1코드를 생성한다.At this time, the detailed code generator 110 plays a role of generating one or more detailed codes based on client identification information (Identifier, Secret, etc.). The first code generating function includes one or more detailed code generating functions. For example, when the first code includes a plurality of detailed codes, the first code generating function generates a plurality of detailed codes using the plurality of detailed code generating functions and combines the detailed codes to combine the plurality of detailed codes. A first code is generated using a function.

이때, 제1코드는 클라이언트 장치(100)에 내장 또는 설치된 전용프로그램에 의해 단위카운트마다 생성한다.At this time, the first code is generated for each unit count by a dedicated program built into or installed in the client device 100 .

본 발명의 일 실시예로, 클라이언트 장치(100)는 클라이언트 장치의 식별 정보, 예를 들어 클라이언트 장치의 ID(Identifier)를 제1코드생성함수의 시드데이터 중 하나로 이용할 수 있다. 구체적인 예로, 세부코드생성부(110)는 하나의 세부코드생성함수를 이용하여 클라이언트 장치의 ID(Identifier)와 클라이언트 장치(100)에 내장 또는 설치된 전용프로그램의 시리얼번호를 조합한 조합시리얼번호를 각 세부코드생성함수의 시드데이터로 이용하여 각각의 세부코드를 생성한다..As an embodiment of the present invention, the client device 100 may use identification information of the client device, for example, ID (Identifier) of the client device as one of the seed data of the first code generation function. As a specific example, the detailed code generating unit 110 uses a single detailed code generating function to generate a combined serial number obtained by combining the ID (Identifier) of the client device and the serial number of a dedicated program embedded or installed in the client device 100, respectively. Each detailed code is generated by using it as the seed data of the detailed code generation function.

일 실시예로, 세부코드생성부(110)는 세부코드생성함수로 제1세부코드생성함수와 제2세부코드생성함수를 포함하여, 제1세부코드 및 제2세부코드를 생성할 수 있다. 이때, 클라이언트 장치(100)는 보안성을 높이기 위해 제1세부코드를 생성하는 제1세부코드생성함수와 제2세부코드를 생성하는 제2세부코드생성함수를 세부코드생성함수로 포함할 뿐, 제1세부코드와 제2세부코드의 상관관계에 대한 데이터는 포함하지 않을 수 있다.As an embodiment, the detailed code generating unit 110 may generate a first detailed code and a second detailed code by including a first detailed code generating function and a second detailed code generating function as the detailed code generating function. At this time, the client device 100 only includes a first detailed code generating function for generating a first detailed code and a second detailed code generating function for generating a second detailed code as detailed code generating functions in order to increase security, Data on the correlation between the first detail code and the second detail code may not be included.

제1코드생성부(120)는 제1코드생성함수를 이용하여 하나 이상의 세부코드를 조합하여 제1코드로 생성하는 역할을 수행한다. 일 실시예로, 제1코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성된다. 제1코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함한다. 즉, 제1코드생성부(120)는 하나 이상의 세부코드를 제1코드생성함수에 포함된 세부코드결합함수를 이용하여 조합할 수 있다.The first code generating unit 120 plays a role of generating a first code by combining one or more detailed codes using the first code generating function. In one embodiment, the first code is generated by combining a plurality of detailed codes according to a specific rule. The first code generating function includes a rule for combining a plurality of detailed codes (ie, a detailed code combining function). That is, the first code generator 120 may combine one or more detailed codes using a detailed code combining function included in the first code generating function.

이때, 본 발명의 일 실시예로, 제1코드가 제1세부코드 및 제2세부코드의 특정한 규칙에 따른 조합으로 생성되는 경우, 제1세부코드와 제2세부코드는 클라이언트 정보가 저장된 저장위치탐색알고리즘 내의 클라이언트 인증 정보의 저장위치를 탐색하기 위한 각각의 역할을 수행할 수 있다. 예를 들어, 제1세부코드는 저장위치탐색의 시작지점을 설정하고, 제2세부코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 클라이언트 장치의 인증 정보의 저장위치로의 탐색경로를 설정한다. 즉, 클라이언트장치(100)에서 단위카운트마다 정상적으로 생성된 제1코드가 제공되면, 검증장치(200)는 제1코드에 포함된, 제1세부코드에 대응하는 탐색시작지점으로부터 제2세부코드에 상응하는 탐색경로에 따라 이동한 지점을 클라이언트 장치의 인증 정보가 저장된 지점(즉, 클라이언트 장치의 인증정보의 저장위치)으로 판단한다. 제1코드를 구성하는 제1세부코드와 제2세부코드를 기반으로 클라이언트 장치의 인증 정보의 저장위치를 탐색하는 구체적인 방식은 후술한다.At this time, as an embodiment of the present invention, when the first code is generated by a combination of the first detail code and the second detail code according to a specific rule, the first detail code and the second detail code are the storage locations where the client information is stored. It can perform each role to search for the storage location of client authentication information in the search algorithm. For example, the first detailed code sets the starting point of the storage location search, and the second detailed code sets a search path from the starting point to the storage location of the authentication information of the client device according to a specific search method. That is, when the first code normally generated for each unit count is provided by the client device 100, the verification device 200 searches for the second detailed code from the search start point corresponding to the first detailed code included in the first code. A point moved along the corresponding search path is determined as a point where authentication information of the client device is stored (ie, a storage location of the authentication information of the client device). A detailed method of searching for a storage location of authentication information of a client device based on the first detailed code and the second detailed code constituting the first code will be described later.

세부코드생성부(110)가 세부코드를 생성하는 방식의 일 실시예로, 세부코드생성부(110)는 단위카운트마다 새로운 세부코드를 생성하고, 이에 따라 클라이언트 장치(100)는 단위카운트마다 새로운 제1코드를 생성한다. 단위카운트마다 신규로 생성되는 제1코드는 중복되어 생성되지 않는다. 구체적으로, 세부코드생성부(110)는, 단위카운드마다 신규 생성되는 제1코드가 특정한 클라이언트장치(100)에게 정해진 기간 동안 중복 생성되지 않도록 설정될 수 있다.As an example of a method in which the detail code generator 110 generates a detail code, the detail code generator 110 generates a new detail code for each unit count, and accordingly, the client device 100 generates a new detail code for each unit count. Generates the first code. The first code newly generated for each unit count is not duplicated. Specifically, the detailed code generation unit 110 may be set so that the first code newly generated for each unit count is not repeatedly generated for a predetermined period for a specific client device 100 .

또한, 본 발명의 일 실시예로, 상술한 제1 코드 생성에 이용되는, 클라이언트 장치(100)의 식별 정보를 기반으로 복수의 세부코드를 생성하여, 궁극적으로 제1 코드를 생성하는 방법과 관련하여, 클라이언트 장치(100)의 검증 장치(300)에 대한 ID를 기반으로 제1 세부코드를 생성하고, 상술한 시간데이터를 기반으로 제2 세부코드를 생성하여, 상기 제1 세부코드 및 제2 세부코드를 결합한 제1 코드를 생성할 수도 있다. 그러나 이에 한정하는 것은 아니다. In addition, as an embodiment of the present invention, a method of generating a plurality of detailed codes based on the identification information of the client device 100 used for generating the above-described first code and ultimately generating the first code is related to Thus, a first detailed code is generated based on the ID of the verification device 300 of the client device 100, and a second detailed code is generated based on the above-described time data, and the first detailed code and the second detailed code are generated. A first code combining detailed codes may be generated. However, it is not limited thereto.

이하에서는, 검증장치(300)의 제1코드를 기반으로 클라이언트장치(100)를 검증하고, 궁극적으로 클라이언트장치(100)의 적어도 하나의 서비스장치(200)에 대한 자격 정보를 추출하고, 상기 자격 정보를 기반으로 제2코드를 생성하는 방법에 대하여 구체적으로 서술하도록 한다. Hereinafter, the client device 100 is verified based on the first code of the verification device 300, and ultimately, qualification information for at least one service device 200 of the client device 100 is extracted, and the qualification A method of generating the second code based on the information will be described in detail.

도 5는 본 발명의 일 실시예에 따른, 검증 장치의 개략적인 구성도이고, 도 6은 본 발명의 일 실시예에 따른, 제1 코드를 기반으로 클라이언트 장치를 검증하여, 제2 코드를 생성하는 방법을 개략적으로 나타낸 순서도이고, 도 7은 본 발명의 일 실시예에 따라 k각형의 구름이동을 통해 클라이언트 장치의 인증 정보의 저장 위치를 탐색하는 저장위치탐색알고리즘에 대한 예시도이다. 도 8는 본 발명의 일 실시예에 따른 검증 장치에 의해 생성된 제2 코드의 개략적인 구성도이다. 5 is a schematic configuration diagram of a verification device according to an embodiment of the present invention, and FIG. 6 is a second code generated by verifying a client device based on a first code according to an embodiment of the present invention. 7 is an exemplary view of a storage location search algorithm for searching for a storage location of authentication information of a client device through k-shaped cloud movement according to an embodiment of the present invention. 8 is a schematic configuration diagram of a second code generated by a verification device according to an embodiment of the present invention.

도 5를 참조하면, 검증 장치(300)는, 통신부(310), 세부코드추출부(320), 인증정보탐색부(330) 및 제2코드생성부(340)를 포함한다. 검증 장치(300)는, 서버 장치일 수 있으며, 예를 들어, 클라이언트 장치(100)가 OAuth 인증 방식을 이용하는 클라이언트 서버인 경우, 리소스 서버(Resource Server)에 대한 클라이언트 장치(100)의 접근 권한을 부여 및 관리하는 검증 서버일 수 있다. 그러나 이에 한정하는 것은 아니다. Referring to FIG. 5 , the verification device 300 includes a communication unit 310 , a detailed code extraction unit 320 , an authentication information search unit 330 and a second code generation unit 340 . The verification device 300 may be a server device, and for example, when the client device 100 is a client server using the OAuth authentication method, the access authority of the client device 100 to the resource server is granted. It may be a verification server that grants and manages. However, it is not limited thereto.

먼저 도 6을 참조하면, 검증 장치(300)는 제1 장치를 통해 클라이언트 장치로부터 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 수신한다(S430). 이때, 상술한 바와 같이 제1 코드는, 클라이언트 장치의 식별 정보를 기반으로 생성된 것이다. First, referring to FIG. 6 , the verification device 300 receives a first code, which is a source code for generating a virtual authentication code, from a client device through the first device (S430). At this time, as described above, the first code is generated based on the identification information of the client device.

구체적으로, 검증 장치(300)는 제1 장치(200_1)의 클라이언트 장치(100)에 대한 인증 요청을 수신한다. 그리고 검증 장치(300)는 해당 클라이언트 장치(100)가 검증 장치(300)에 등록된, 신뢰할 수 있는 장치에 해당하는지 여부를 검증한다. 즉, 제1 코드를 기반으로 검증 장치(300)내 저장된 클라이언트 장치(100)의 인증 정보를 추출하여, 상기 제1 코드 내 포함된 클라이언트 장치(100)의 식별 정보와 비교한다. 그리고 인증 정보 및 식별 정보가 일치하거나 또는 적합하게 매칭된다면, 클라이언트 장치(100)의 인증을 완료할 것이다. Specifically, the verification device 300 receives an authentication request for the client device 100 of the first device 200_1. Then, the verification device 300 verifies whether the corresponding client device 100 corresponds to a trusted device registered in the verification device 300 . That is, authentication information of the client device 100 stored in the verification device 300 is extracted based on the first code and compared with identification information of the client device 100 included in the first code. And if the authentication information and the identification information match or are properly matched, the authentication of the client device 100 will be completed.

한편, 클라이언트 장치(100)가 인증되었음이 곧 클라이언트 장치(100)의 제1 장치에 대한 권한 승인을 의미하는 것은 아니다. 왜냐하면, 클라이언트 장치(100)는 전체 서비스 장치(200) 중에서 접근 권한이 인정되지 않는 장치가 존재할 수 있기 때문이다. 예를 들어, OAuth 인증 방식을 가정한다면, 검증 서버로부터 Access Token을 획득하지 못한 서버에 대해서는, 클라이언트 서버의 클라이언트 ID 및 비밀번호가 인증되었다 하더라도, 해당 서버에 대한 권한을 인정할 수 없기 때문이다. 이하, 이에 대한 검증 장치(300)의 인증 수행 및 자격 정보 생성에 관한 과정을 상세히 설명한다. Meanwhile, the fact that the client device 100 has been authenticated does not mean that the client device 100 has authorized the first device. This is because the client device 100 may have devices for which access rights are not recognized among the entire service devices 200 . For example, assuming an OAuth authentication method, for a server that has not obtained an Access Token from a verification server, even if the client ID and password of the client server are authenticated, the authority for the corresponding server cannot be recognized. Hereinafter, a process of performing authentication and generating qualification information of the verification device 300 will be described in detail.

도 6을 참조하면, 검증 장치(300)는 제1 장치로부터 수신한 제1 코드를 기반으로, 클라이언트 장치(100)의 인증 정보의 저장위치를 탐색하여 상기 클라이언트 장치의 인증을 수행한다(S440). Referring to FIG. 6 , the verification device 300 searches the storage location of the authentication information of the client device 100 based on the first code received from the first device and performs authentication of the client device (S440). .

여기서, 클라이언트 장치(100)의 인증 정보라, 클라이언트 장치(100)가 검증 장치(300)에 등록할 때, 제공된 정보로 특정 클라이언트 장치임을 식별할 수 있는 식별 정보와 대응되는 것을 의미한다. 예를 들어, 클라이언트 장치(100) 자체의 시리얼 번호, 발급된 ID(예를 들어, Client ID), 해당 ID(Identifier)와 관련한 비밀값(예를 들어, Client Secret) 등이 이에 해당할 수 있다. Here, the authentication information of the client device 100 means that when the client device 100 registers with the verification device 300, provided information corresponds to identification information capable of identifying a specific client device. For example, the serial number of the client device 100 itself, an issued ID (eg, Client ID), and a secret value related to the ID (Identifier) (eg, Client Secret) may correspond to this. .

보다 구체적으로, 다시 도 4를 참조하면, 제1 코드는 클라이언트 장치(100)의 식별정보를 기반으로 생성된 가상인증코드이다. 제1 코드 내에는 클라이언트 장치(100)의 검증 장치(300)에 대한 ID(Identifier) 및 비밀값(Secret)이 포함될 수 있다. 이때, 검증 장치(300) 내 저장된 상기 클라이언트 장치(100)에 대한 인증 정보, 예를 들어 저장된 ID ID(Identifier) 및 비밀값(Secret)의 저장위치를 탐색한다. 그리고 상기 제1 코드 내 포함된, 식별값과 저장위치 내 저장된 식별값을 비교하여 클라이언트 장치(100)에 대한 인증을 수행할 수 있을 것이다. More specifically, referring to FIG. 4 again, the first code is a virtual authentication code generated based on the identification information of the client device 100 . An ID (Identifier) and a secret value (Secret) for the verification device 300 of the client device 100 may be included in the first code. At this time, the authentication information for the client device 100 stored in the verification device 300, for example, the storage location of the stored ID ID (Identifier) and secret value (Secret) is searched. In addition, authentication of the client device 100 may be performed by comparing the identification value included in the first code with the identification value stored in the storage location.

또 다른 실시예로, 검증 장치(300)의 인증정보탐색부(330)는 클라이언트 장치(100)의 제1코드생성함수와 동일한 함수를 포함할 수도 있다. 이때, 검증 장치(300)는 수신한 제1코드를 상기 제1코드생성함수에 적용하여, 클라이언트 장치(100)의 식별 정보를 추출할 수 있을 것이다. 예를 들어 클라이언트 장치(100)의 ID(Identifier)가 이에 해당할 것이다. 이때, 인증정보탐색부(330)는 상기 ID(Identifier)에 매칭되는 상기 클라이언트 장치(100)의 인증 정보 저장위치를 탐색한다. 그리고 인증 정보 저장위치로부터 상기 클라이언트 장치(100)의 비밀값을 추출한다. 추출된 비밀값을 해쉬함수에 적용하여 해쉬값을 산출한다. 그리고 산출된 해쉬값을 제1코드 내 해쉬값과 비교하여, 클라이언트 장치(100)의 인증을 완료할 수 있을 것이다. As another embodiment, the authentication information search unit 330 of the verification device 300 may include the same function as the first code generating function of the client device 100 . At this time, the verification device 300 may extract the identification information of the client device 100 by applying the received first code to the first code generating function. For example, the ID (Identifier) of the client device 100 will correspond to this. At this time, the authentication information search unit 330 searches for an authentication information storage location of the client device 100 that matches the ID (Identifier). Then, the secret value of the client device 100 is extracted from the authentication information storage location. The extracted secret value is applied to the hash function to calculate the hash value. And, by comparing the calculated hash value with the hash value in the first code, authentication of the client device 100 may be completed.

한편, 제1 코드 생성 과정에서, 시간 데이터를 활용할 수 있다고 상술하여 설명한 바 있다. 시간 데이터를 활용하여 생성된 제1 코드를 기반으로, 클라이언트 장치(100)의 인증을 수행할 경우에는, 시간 데이터(클라이언트 장치(100)가 제1 장치에 대하 권한 승인을 요청한 시점) 및 저장위치로부터 추출된 비밀값을 해쉬함수에 적용하여 해쉬값을 산출한 후 제1 코드 내 해쉬값과 비교하여, 클라이언트 장치(100)의 인증을 완료할 수 있다. Meanwhile, it has been described above that time data can be used in the first code generation process. When authentication of the client device 100 is performed based on the first code generated by utilizing the time data, the time data (when the client device 100 requests authorization for the first device) and the storage location After calculating the hash value by applying the secret value extracted from the hash function and comparing it with the hash value in the first code, authentication of the client device 100 may be completed.

이때 상술한 인증 수행을 위해, 클라이언트 장치(100)와 검증 장치(300)의 해쉬 함수는 동일한 함수에 해당할 수 있다. At this time, to perform the above-described authentication, hash functions of the client device 100 and the verification device 300 may correspond to the same function.

이하에서는, 검증 장치(300)의 클라이언트 장치(100)의 세부코드 기반의 식별 정보의 저장위치를 탐색하는 구체적인 방법에 대하여 설명한다. Hereinafter, a detailed method of searching for a storage location of identification information based on a detailed code of the client device 100 of the verification device 300 will be described.

세부코드추출부(320)는 상기 제1코드에 포함된 복수의 세부코드를 추출한다. 상기 제1 코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성The detail code extraction unit 320 extracts a plurality of detail codes included in the first code. The first code is generated by combining a plurality of detailed codes according to a specific rule.

되는 것이다. 검증장치(300)의 세부코드추출부(320)는 클라이언트 장치(100)와 동일한 세부코드결합함수를 포함하여, 세부코드추출부(320)는 세부코드결합함수를 적용하여 제1코드에서 복수의 세부코드를 추출할 수 있다. 예를 들어, 클라이언트 장치(100)에서 두 개의 세부코드(즉, 제1세부코드 및 제2세부코드)가 결합된 제1 코드를 생성하는 경우, 세부코드추출부(220)는 제1코드의 문자배열에서 세부코드결합함수를 적용하여 제1세부코드 및 제2세부코드를 분리해낼 수 있다.It will be. The detailed code extracting unit 320 of the verification device 300 includes the same detailed code combining function as the client device 100, and the detailed code extracting unit 320 applies the detailed code combining function to obtain a plurality of codes from the first code. The detailed code can be extracted. For example, when the client device 100 generates a first code in which two detailed codes (ie, a first detailed code and a second detailed code) are combined, the detailed code extraction unit 220 extracts the first code. The first detail code and the second detail code may be separated by applying the detail code combining function in the character array.

그리고 인증정보탐색부(230)는 복수의 세부코드를 기반으로 클라이언트 장치(100)의 저장위치를 탐색한다. 인증정보탐색부(230)가 각각의 세부코드를 기반으로 인증정보의 저장위치를 탐색하는 방식으로는 다양한 방식이 적용될 수 있다. 인증정보탐색부(230)가 복수의 세부코드를 기반으로 저장위치를 탐색하기 위해 세부코드 간에는 상관관계를 포함할 수 있다.Further, the authentication information search unit 230 searches for a storage location of the client device 100 based on a plurality of detailed codes. Various methods may be applied as a method for the authentication information search unit 230 to search for a storage location of authentication information based on each detailed code. In order for the authentication information search unit 230 to search for a storage location based on a plurality of detailed codes, a correlation may be included between detailed codes.

제1 코드가 제1세부코드 및 제2세부코드로 구성되는 경우, 세부코드 간에 상관관계를 가지는 일 실시예로, 인증정보탐색부(230)는 제1세부코드에 대응하는 탐색시작 지점을 결정하고, 상기 탐색시작지점으로부터 제2세부코드에 상응하는 탐색경로에 따라 이동한 지점을 실제코드의 인증정보의 저장위치로 찾을 수 있다. 즉, 상기 세부코드는, 저장위치탐색의 시작지점을 설정하는 제1세부코드 및 특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 제2세부코드를 포함할 수 있다.When the first code is composed of the first detailed code and the second detailed code, as an embodiment having a correlation between the detailed codes, the authentication information search unit 230 determines a search start point corresponding to the first detailed code. And, a point moved from the search start point along the search path corresponding to the second detailed code can be found as the storage location of the authentication information of the actual code. That is, the detailed code may include a first detailed code for setting a starting point of the storage location search and a second detailed code for setting a search path from the starting point to the storage location according to a specific search method. .

또한, 다른 일 실시예로, 클라이언트 장치(100)가 단위카운트마다 신규 제1코드를 제공함에 따라, 검증장치(300)는 저장위치 탐색을 위한 제1세부코드와 제2세부코드가 단위카운트의 경과 시마다 변경된다. 검증장치(300)는 각 카운트마다 변경되는 제1세부코드 및 제2세부코드를 기반으로 탐색시작지점과 탐색경로를 설정하여 클라이언트 장치(100)의 인증정보의 저장위치를 탐색할 수 있다.In addition, as another embodiment, as the client device 100 provides a new first code for each unit count, the verification device 300 determines that the first detail code and the second detail code for searching the storage location are the values of the unit count. It changes every time it passes. The verification device 300 may set a search starting point and a search path based on the first detailed code and the second detailed code that are changed for each count to search for the storage location of the authentication information of the client device 100 .

또한, 다른 일 실시예로, 인증정보탐색부(230)는 상관관계를 가지는 복수의 세부코드를 이용하여 인증정보의 저장위치를 찾기 위해, 저장위치탐색알고리즘을 포함할 수 있다. 저장위치탐색알고리즘은 제1코드에 포함되는 각각의 세부코드 적용 시에 인증정보의 저장위치 탐색이 가능하도록 하는 알고리즘이다. Also, as another embodiment, the authentication information search unit 230 may include a storage location search algorithm to find a storage location of authentication information using a plurality of detailed codes having a correlation. The storage location search algorithm is an algorithm that makes it possible to search the storage location of authentication information when each detailed code included in the first code is applied.

예를 들어, 제1코드로부터 인증정보의 저장위치의 탐색시작지점을 결정하는 제1세부코드와 탐색시작지점으로부터의 저장위치 방향을 제시하는 제2세부코드를 포함하는 경우, 저장위치탐색알고리즘은 제1세부코드에 대응되는 지점에서 제2세부코드에 대응되는 방향을 지시할 때, 해당 위치에 클라이언트 장치(100)의 인증정보가 매칭되는 저장위치가 배치되도록 조절하는 알고리즘이다. 저장위치탐색알고리즘을 이용함에 따라, 검증장치(200)는 제1코드에 포함된 제1세부코드와 제2세부코드가 변경되어도, 해당 클라이언트 장치(100)의 인증정보의 저장위치 또는 저장위치에 매칭된 지점을 찾을 수 있다. 저장위치탐색알고리즘은 다양한 방식이 적용될 수 있으며, 구체적인 예시는 후술한다. 다만, 저장위치탐색알고리즘은 후술되는 예시에 한정되지 않는다.For example, in the case of including a first detailed code for determining the search start point of the storage location of authentication information from the first code and a second detailed code for suggesting a storage location direction from the search start point, the storage location search algorithm is When a direction corresponding to the second detailed code is indicated at a point corresponding to the first detailed code, it is an algorithm that adjusts the storage location matching the authentication information of the client device 100 to the corresponding location. As the storage location search algorithm is used, the verification device 200 searches the storage location of the authentication information of the corresponding client device 100 even if the first detailed code and the second detailed code included in the first code are changed. Matching points can be found. Various methods may be applied to the storage location search algorithm, and specific examples will be described later. However, the storage location search algorithm is not limited to the examples described below.

도 7을 참조하면, 저장위치탐색알고리즘이 제1세부코드에 해당하는 MN개의 코드가 나열된 트랙을 따라 구름 이동하는 k각형(k는 MN)이며, k각형의 꼭지점이 제1세부코드 트랙 상에 코드가 배치되는 지점에 대응되면서 이동하는 경우, k각형의 각 꼭지점이 클라이언트의 인증정보의 저장위치와 매칭되고, 제1세부코드 트랙(즉, 제1트랙)과 k각형이 대응되는 지점이 제1세부코드에 대응하는 저장위치 탐색시작지점이 될 수 있다. 이 때, 인증정보탐색부(230)는 세부코드추출부(220)에서추출된 제1세부코드에 대응되는 지점에 k각형의 꼭지점이 접하도록 k각형을 구름이동을 적용할 수 있다. 이를 통해, 인증정보탐색부(230)는 k각형이 접한 제1트랙 상의 위치에서 제2세부코드에 상응하는 각도(예를 들어, k각형의 꼭지점을 향하도록 180도를 MN개로 분할한 특정한 각도)로 지시함에 따라, 제1코드에 대응하는 클라이언트 장치(100)의 인증정보가 저장된 저장위치인 k각형의 꼭지점을 탐색할 수 있다.Referring to FIG. 7, the storage location search algorithm is a k polygon (k is M N ) in which M N codes corresponding to the first detailed code are rolled and moved along tracks, and the vertex of the k polygon is the first detailed code track. When moving while corresponding to the point where the code is placed on the image, each vertex of the k-gon is matched with the storage location of the authentication information of the client, and the point where the first detailed code track (i.e., the first track) and the k-gon correspond to each other. This may be a storage location search start point corresponding to the first detailed code. At this time, the authentication information search unit 230 may apply cloud movement to the k-gon so that the vertex of the k-gon comes into contact with the point corresponding to the first detailed code extracted by the detailed code extraction unit 220 . Through this, the authentication information search unit 230 determines the angle corresponding to the second detailed code at the position on the first track where the k-gon faces (for example, 180 degrees is divided into M N pieces toward the vertex of the k-gon). angle), it is possible to search for a vertex of a k-gon, which is a storage location where authentication information of the client device 100 corresponding to the first code is stored.

구체적으로, 도 7에서와 같이, 검증장치(300)는 제1세부코드에 대응하는 지점으로 k각형을 구름이동(즉, k각형의 각 꼭지점과 트랙 상의 각 지점이 차례대로 접하도록 하면서 이동)시킨다. 그 후, 검증장치(200)는 제2세부코드에 상응하는 각도 방향을 지시하여 클라이언트 장치(100)의 인증정보의 저장위치에 상응하는 꼭지점을 탐색한다. 예를 들어, 클라이언트 장치B는 상기 검증장치(200) 내 등록하여, ID(Identifier) 및 비밀값을 발급받은 후 2카운트가 경과하였으므로 클라이언트 장치B는 2카운트를 함수값으로 적용한 제2세부코드를 생성하여 검증장치(200)로 제공한다. 검증장치(200)는 k각형과 트랙이 접하는 지점에서 각 꼭지점을 향하는 각도에 각 카운트마다 제2세부코드생성함수에 의해 생성되는 제2세부코드를 매칭하여 저장(즉, n카운트가 적용된 제2세부코드를 k각형의 n카운트만큼 구름이동함에 따라 구름이동된 n번째 꼭지점을 향하는 각도로 매칭하여 저장)하므로, 검증장치(300)는 제2세부코드에 상응하는 각도를 제1세부코드 대응지점에 적용하여 실제코드 저장위치에 대응하는 k각형의 꼭지점을 탐색할 수 있다. Specifically, as shown in FIG. 7, the verification device 300 rolls the k-gon to a point corresponding to the first detailed code (that is, moves while making each vertex of the k-gon and each point on the track contact each other in turn). let it Then, the verification device 200 searches for a vertex corresponding to the storage location of the authentication information of the client device 100 by instructing an angular direction corresponding to the second detailed code. For example, since 2 counts have elapsed since client device B registered in the verification device 200 and received an ID (Identifier) and secret value, client device B receives a second detailed code to which 2 counts are applied as a function value. It is generated and provided to the verification device 200. The verification device 200 matches and stores the second detail code generated by the second detail code generating function for each count at the angle from the point where the k-gon and the track meet to each vertex (that is, the second detail code to which n counts are applied). As the detail code is moved by n counts of the k-gon, it is matched and stored as an angle toward the n-th vertex moved by the cloud), so the verification device 300 converts the angle corresponding to the second detail code to the first detail code corresponding point. , it is possible to search the vertices of the k-gon corresponding to the actual code storage location.

한편, 본 발명의 다른 일 실시예로, 제1세부코드 및 제2세부코드는 클라이언트 장치(100)의 인증 정보가 등록된 시점 또는 클라이언트 장치(100)의 인증이 요청된 시점(예를 들어, 클라이언트 장치가 제1코드를 생성한 시점)으로부터 랜덤으로 생성되는 가상보안코드(예를 들어, OTP코드)만큼 부가된 기준 카운트에 대한 코드일 수 있다. Meanwhile, as another embodiment of the present invention, the first detailed code and the second detailed code are the time when the authentication information of the client device 100 is registered or the time when authentication of the client device 100 is requested (eg, It may be a code for a reference count added as much as a virtual security code (eg, OTP code) randomly generated from the point at which the client device generates the first code.

구체적인 실시예로, 클라이언트 장치(100)는 가상보안코드를 외부로 출력하지 않고 제1세부코드 및 제2세부코드에 반영하여 생성한다. 검증 장치(300)는 클라이언트 장치(100)) 내 시리얼번호(즉, 고유값) 및 클라이언트 장치(100)의 식별정보 중 일부 또는 클라이언트 장치(100)와 클라이언트 장치(100) 내 프로그램의 시리얼번호의 조합을 기반으로 가상보안코드값(예를 들어, OTP코드)를 생성하고, 클라이언트 장치의 인증 정보 등록시점에 상보안코드값을 더한 카운트의 제1세부코드를 생성하고, 가상보안코드값에 대응되는 카운트의 제2세부코드 생성(즉, 가상보안코드 자체를 제2코드로 생성)한다. In a specific embodiment, the client device 100 generates the virtual security code by reflecting it to the first detailed code and the second detailed code without outputting the virtual security code to the outside. The verification device 300 is a part of the serial number (i.e., a unique value) of the client device 100 and identification information of the client device 100 or the serial number of the client device 100 and the program in the client device 100. Generates a virtual security code value (eg, OTP code) based on the combination, generates a first detail code of the count by adding the security code value at the time of registering the authentication information of the client device, and corresponds to the virtual security code value The second detailed code of the count to be generated (ie, the virtual security code itself is generated as the second code).

즉, 제1세부코드 및 제2세부코드는 클라이언트 장치(100)에 의해 클라이언트 장치의 인증 정보가 검증 장치(300)에 등록된 A시점(또는, 검증 장치에 의해 클라이언트 장치에 대한 ID(Identifier)가 발급된 시점)으로부터 가상보안코드값만큼 이동(shifting)된 카운트를 기반으로 생성된다. A시점으로부터 가상보안코드값만큼 이동(Shifting)된 카운트는 생성되는 가상보안코드 값에 따라 현재시점에 대응하는 카운트보다 이전 카운트가 될 수도 있고, 이후 카운트가 될 수도 있다. That is, the first detailed code and the second detailed code are the point A at which the authentication information of the client device is registered in the verification device 300 by the client device 100 (or ID (Identifier) for the client device by the verification device) is issued) based on the shifted count by the virtual security code value. The count shifted by the virtual security code value from point A may be a previous count or a later count than the count corresponding to the current point in time according to the generated virtual security code value.

검증 장치(300)는 수신된 제1코드에 포함된 제1세부코드와 제2세부코드를 저장위치탐색알고리즘에 적용하여 클라이언트 장치(100)의 인증 정보 저장위치(또는 등록위치)를 탐색할 수 있다. The verification device 300 may search the authentication information storage location (or registration location) of the client device 100 by applying the first detailed code and the second detailed code included in the received first code to a storage location search algorithm. have.

또한, 다른 일 실시예로, 검증 장치(300)는 가상보안코드를 기반으로 생성된 제2세부코드에서 가상보안코드를 추출한 후, 가상보안코드생성함수(즉, OTP함수)를 제1코드를 수신한 카운트로부터 특정범위 내의 카운트를 입력하여 산출된 OTP번호 중에 가상보안코드와 일치하는 값이 있는지 여부를 확인한다. 그리고 검증 장치(300)는 제2코드에 제2함수의 역함수를 적용하여 제2코드 생성에 이용된 가상보안코드값(즉, OTP함수값)을 획득하고, 가상보안코드값과 동일한 값을 산출하는 카운트를 찾아낸다. In addition, as another embodiment, the verification device 300 extracts the virtual security code from the second detailed code generated based on the virtual security code, and then converts the virtual security code generation function (ie, OTP function) to the first code. It is checked whether there is a value matching the virtual security code among the calculated OTP numbers by inputting a count within a specific range from the received count. Further, the verification device 300 obtains a virtual security code value (ie, an OTP function value) used in generating the second code by applying an inverse function of the second function to the second code, and calculates the same value as the virtual security code value. find the count that

제1코드의 전송시간이나 딜레이에 의해 클라이언트 장치(100)에서 가상보안코드가 생성된 시점과 검증 장치(300)가 가상보안코드를 수신한 시점(정확하게는 가상보안코드를 포함하는 제1코드를 수신한 시점)의 차이가 존재함에 따라 검증 장치(300)가 제1코드를 수신한 카운트와 가상보안코드에 해당하는 OTP번호를 생성한 카운트가 일치하지 않을 수도 있다. The time when the virtual security code is generated by the client device 100 due to the transmission time or delay of the first code and the time when the verification device 300 receives the virtual security code (to be precise, the first code including the virtual security code) Receiving time), the verification device 300 may not match the count of receiving the first code and the count of generating the OTP number corresponding to the virtual security code.

그렇기 때문에 검증 장치(300)는 제1코드를 수신한 카운트로부터 오차범위를 허용한다. 이를 통해, 검증 장치(300)는 현시점에 생성된 제1코드가 아닌 이전에 생성된 제1코드로 클라이언트 장치의 인증을 수행하려는 것을 막을 수 있어서, 보안성이 향상될 수 있다. Therefore, the verification device 300 allows an error range from the count of receiving the first code. Through this, the verification device 300 can prevent the authentication of the client device from being performed with the previously generated first code instead of the currently generated first code, so that security can be improved.

또한, 다른 일 실시예로, 클라이언트 장치(100)는 클라이언트 장치의 인증이 요청된 또는 권한 승인을 요청한 시점에 클라이언트 장치(100) 또는 전용프로그램 내의 시리얼번호(즉, 고유값) 및 클라이언트 장치(100)의 식별 정보 중 일부 또는 양자의 조합을 시드데이터로 사용하여 생성된 가상보안코드값을 더한 카운트에 대응하는 제1세부코드를 생성할 수 있다. 이때, 클라이언트 장치의 식별 정보가 등록된 시점(A시점)과 권한 승인을 요청한 시점 (B시점) 간의 카운트 차이와 가상보안코드값을 더한 카운트에 대응하는 제2세부코드를 생성한다. 즉, 제1코드를 생성하는 클라이언트 장치(100) 내 전용프로그램이 제1세브코드와 제2세부코드를 생성하는 수식은 다음과 같다.In addition, in another embodiment, the client device 100 includes a serial number (ie, a unique value) in the client device 100 or a dedicated program and the client device 100 at the time when authentication of the client device is requested or permission approval is requested. ) It is possible to generate a first detailed code corresponding to a count obtained by adding a virtual security code value generated by using some or a combination of both of the identification information as seed data. At this time, a second detailed code corresponding to a count obtained by adding the virtual security code value and the difference in count between the time when the identification information of the client device is registered (time A) and the time when permission approval is requested (time B) is generated. That is, the formula for generating the first subcode and the second subcode by the exclusive program in the client device 100 that generates the first code is as follows.

제1세부코드 = f1(B시점 카운트 + 가상보안코드)1st detailed code = f1 (point B count + virtual security code)

제2세부코드 = f2(B시점 카운트 - A시점 카운트 + 가상보안코드)Second detailed code = f2 (point B count - point A count + virtual security code)

(A시점: 클라이언트 장치의 인증 정보 등록시점, B시점: 클라이언트 장치의 권한 승인 요청 시점의 카운트, 가상보안코드: OTP번호)(Point A: when the authentication information is registered in the client device, Point B: the count at the time of requesting permission approval from the client device, virtual security code: OTP number)

검증 장치(300)는 수신한 제1코드 내의 제1세부코드 및 제2세부코드를 기반으로 클라이언트 장치의 정보가 저장된 위치를 탐색하고, 해당 위치에 함께 저장된 시드데이터(즉, 제1코드생성 전용프로그램 또는 클라이언트 장치의 시리얼번호, 클라이언트 장치 정보, 제1코드생성 전용프로그램 시리얼번호 및 클라이언트 장치 정보 시리얼번호를 조합한 조합시리얼번호 중 제1코드 생성 시에 이용되는 것)을 추출한다. 검증 장치(300)는 시드 데이터를 기반으로 권한 승인 요청 수신시점으로부터 특정카운트 범위 내의 가상보안코드(즉, OTP번호)를 생성한다. The verification device 300 searches for a location where the information of the client device is stored based on the first detailed code and the second detailed code in the received first code, and generates seed data (that is, only for generating the first code) stored in the corresponding location. The serial number of the program or client device, the client device information, the serial number of the program dedicated to generating the first code, and the serial number of the client device information used in generating the first code) are extracted. The verification device 300 generates a virtual security code (ie, OTP number) within a specific count range from the time of receiving the permission approval request based on the seed data.

그 후, 검증 장치(300)는 제1세부코드 및 제2세부코드를 기반으로 클라이언트 장치의 정보가 저장된 지점을 탐색함에 따라 클라이언트 장치 인증 또는 식별 정보의 등록시점(A시점)을 파악한다. 검증 장치(300)는 클라이언트 장치의 인증 정보 등록시점(A시점)으로부터 권한 승인 요청 수신시점을 기준으로 특정카운트범위 내의 각각의 카운트까지의 카운트 개수와 가상보안코드(즉, OTP번호)의 합에 해당하는 계산값을 각각 산출하고, 상기 각각의 계산값 중에 제2세부코드에 대응하는 카운트수(즉, 제2코드에 제2함수의 역함수를 적용한 값)와 같은 카운트가 존재하는지 확인한다. 이를 통해, 검증 장치(300)는 제1코드가 정상적으로 제공된 것인지 확인할 수 있다.After that, the verification device 300 detects the registration point (point A) of authentication or identification information of the client device by searching for a point where the information of the client device is stored based on the first detailed code and the second detailed code. The verification device 300 calculates the sum of the number of counts and the virtual security code (ie, OTP number) from the time of registering the authentication information of the client device (point A) to the time of receiving the permission approval request to each count within a specific count range. Each corresponding calculated value is calculated, and it is checked whether a count equal to the number of counts corresponding to the second detailed code (ie, a value obtained by applying the inverse function of the second function to the second code) exists among the respective calculated values. Through this, the verification device 300 can check whether the first code is normally provided.

한편, 검증 장치(300)는 클라이언트 장치(100)에 대한 인증이 완료되면, 후술할 제3 코드 생성에 이용되는 제2 코드를 생성한다(S450). Meanwhile, when authentication of the client device 100 is completed, the verification device 300 generates a second code used for generating a third code to be described later (S450).

도 6을 참조하면, 먼저 검증 장치(300)는 클라이언트 장치의 인증이 완료되면, 상기 클라이언트 장치에 관한 자격 정보를 생성한다(S451). 이때, 자격 정보는 상기 클라이언트 장치(100)의 식별정보에 매칭되어 저장될 수 있다. 예를 들어, 검증 장치(300)에 저장된 클라이언트 장치(100)의 ID(Identifier) 또는 비밀값에 연결되어 저장될 수 있다. 그렇기 때문에, 검증 장치(300)는 클라이언트 장치(100)의 인증이 완료되면, 해당 인증 정보에 매칭 또는 연결되어 저장된 자격 정보를 추출한다. Referring to FIG. 6 , first, when authentication of the client device is completed, the verification device 300 generates qualification information about the client device (S451). At this time, the qualification information may be matched with the identification information of the client device 100 and stored. For example, it may be stored in connection with an ID (Identifier) or secret value of the client device 100 stored in the verification device 300 . Therefore, when authentication of the client device 100 is completed, the verification device 300 matches or connects to the corresponding authentication information and extracts stored qualification information.

이때, 자격 정보는 클라이언트 장치(100)의 서비스 장치(200)에 대한 권한 정보를 포함한다. 권한 정보란, 클라이언트 장치(100)가 접근 또는 이용 권한을 갖는 서비스 장치(200)에 대한 정보(예를 들어, 서비스 장치 리스트)뿐만 아니라, 권한과 관련하여, 해당 서비스 장치(200)에서 상기 클라이언트 장치(100)가 접근 또는 이용할 수 있는 범위(Scope)에 대한 정보를 포함한다. In this case, the qualification information includes authority information for the service device 200 of the client device 100 . Rights information refers to information on the service device 200 to which the client device 100 has access or use rights (eg, a list of service devices), as well as rights, in relation to the service device 200 to the client. It includes information about a scope that the device 100 can access or use.

한편, 자격 정보의 경우, 해당 자격 정보에 대응되는 자격 ID(Role Identifier) 및 자격 비밀값(Role Secret)이 설정될 수 있다. 상기 자격 ID(Role Identifier) 및 자격 비밀값(Role Secert)은 각각의 클라이언트 장치(100)에 대하여 설정된다. 본 발명의 일 실시예로, 각각의 클라이언트 장치(100)의 자격 ID(Role Identifier) 및 자격 비밀값(Role Secert)은 각각의 클라이언트 장치(100)의 인증 정보의 저장위치에 저장될 수도 있으며, 또는 각각의 클라이언트 장치(100)의 ID에 매칭되어 저장될 수도 있을 것이다. 그러나 이에 제한되는 것은 아니다. Meanwhile, in the case of qualification information, a qualification ID (Role Identifier) and a qualification secret value (Role Secret) corresponding to the corresponding qualification information may be set. The qualification ID (Role Identifier) and the qualification secret value (Role Secert) are set for each client device 100 . As an embodiment of the present invention, the qualification ID (Role Identifier) and the qualification secret value (Role Secert) of each client device 100 may be stored in a storage location of authentication information of each client device 100, Alternatively, the ID of each client device 100 may be matched and stored. However, it is not limited thereto.

다시 도 6을 참조하면, 검증 장치(300)는 인증이 완료된 클라이언트 장치에 관한 자격 정보를 추출한 후, 제1 코드를 기반으로 상기 클라이언트 장치에 관한 해쉬값을 생성한다(S452). Referring back to FIG. 6 , the verification device 300 extracts qualification information about the client device for which authentication has been completed, and then generates a hash value about the client device based on the first code (S452).

즉, 각 검증 장치(300)가 제1 코드를 해쉬함수에 적용하여 해쉬값을 산출한다. 이때, 본 발명의 일 실시예로, 서비스 장치(200)는 검증 장치의 해쉬함수와 동일한 해쉬함수를 포함할 수 있다. 한편, 해쉬값은 제1코드를 기반으로 생성되므로, 클라이언트 장치(100)에 대하여 매칭된다. 상술한 바와 같이, 제1 코드는 각각의 클라이언트 장치(100)의 식별 정보에 기반하여 생성되므로, 각각의 클라이언트 장치(100)의 제1 코드는 상이할 수 밖에 없으며, 따라서 제1 코드를 기반으로 생성된 해쉬값 또는 클라이언트 장치(100)마다 상이하다.That is, each verification device 300 calculates a hash value by applying the first code to the hash function. At this time, as an embodiment of the present invention, the service device 200 may include the same hash function as the hash function of the verification device. Meanwhile, since the hash value is generated based on the first code, it matches the client device 100. As described above, since the first code is generated based on the identification information of each client device 100, the first code of each client device 100 is inevitably different, and therefore, based on the first code It is different for each generated hash value or client device 100 .

한편, 해쉬값을 생성한 후 검증 장치(300)의 제2코드생성부(340)는 생성된 자격 정보 및 해쉬값을 기반으로, 제1 코드에 대한 인증 결과가 반영된 제2 코드를 생성한다. 즉 검증 장치(300)는 제2코드생성함수를 기반으로, 제2 코드를 생성할 수 있다(S453). Meanwhile, after generating the hash value, the second code generator 340 of the verification device 300 generates a second code reflecting the authentication result of the first code based on the generated qualification information and the hash value. That is, the verification device 300 may generate a second code based on the second code generating function (S453).

도 8을 참조하면, 제2 코드는 제1 코드를 해쉬함수에 적용하여 산출된 제2 해쉬값과 해당 클라이언트에 대한 자격 정보(예를 들어, 자격 ID) 및 자격 정보에 관한 비밀(예를 들어, 자격 비밀값)을 해쉬함수에 적용하여 산출된 제3 해쉬값을 포함할 수 있다. Referring to FIG. 8, the second code is a second hash value calculated by applying the first code to a hash function, entitlement information (eg, entitlement ID) for the corresponding client, and a secret (eg, entitlement ID) about the entitlement information. , qualification secret value) to the hash function, and may include a third hash value calculated.

제1코드를 기반으로 생성된 해쉬값은 이후 서비스 장치(300)에서 클라이언트 장치(100)에 대한 검증 및 권한을 승인하는데 이용된다. 구체적으로, 서비스 장치(300)는 제3 코드에 포함된 제1코드를 추출하고 해쉬값을 생성한다. 그리고 검증장치(300)에서 클라이언트 장치(100)로부터 수신한 제1코드를 기반으로 생성된 해쉬값과 비교하여, 클라이언트 장치(100)에 대한 인증 및 검증을 수행할 수 있다. 이에 대해서는 자세히 후술하도록 한다. The hash value generated based on the first code is then used in the service device 300 to verify and approve the client device 100. Specifically, the service device 300 extracts the first code included in the third code and generates a hash value. In addition, the verification device 300 may perform authentication and verification of the client device 100 by comparing the hash value generated based on the first code received from the client device 100 . This will be described later in detail.

본 발명의 일 실시예로, 클라이언트에 대한 자격 정보를 상기 제2코드생성함수에 적용하여 가상인증코드를 생성한 후 상기 제2 해쉬값과 제3 해쉬값을 결합하여 최종적으로 제2코드를 생성할 수 있다. In one embodiment of the present invention, a virtual authentication code is generated by applying qualification information about a client to the second code generation function, and then a second code is finally generated by combining the second hash value and the third hash value. can do.

한편, 도면에 명확히 도시되지는 않았으나, 제2 코드는, 복수의 세부코드를 포함할 수 있다. 이때, 복수의 세부코드는, 상기 검증 장치에 의해 단위 카운트마다 변경되어 생성되는 것이고, 상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간 간격이 경과됨에 따라 변경되는 것일 수 있다. 즉, 클라이언트 장치(100)의 세부코드에 기반하여 제1 코드를 생성하는 것과 마찬가지로, 검증 장치(300)에 의해 생성되는 제2 코드 또한 복수의 세부코드를 포함할 수 있다. 일 실시예로, 상기 제1코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 이를 위해, 도면에 명확히 도시되지는 않았으나, 제2코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함할 수 있다. 세부코드를 조합하여 가상인증코드를 생성하는 방법에 대해서는, 상술하였는바 생략하도록 한다.Meanwhile, although not clearly shown in the drawing, the second code may include a plurality of detailed codes. In this case, the plurality of detailed codes may be changed and generated for each unit count by the verification device, and the unit count may be set at a specific time interval and changed as the time interval elapses. That is, similar to generating the first code based on the detailed code of the client device 100, the second code generated by the verification device 300 may also include a plurality of detailed codes. In one embodiment, the first code is generated by combining a plurality of detailed codes according to a specific rule. To this end, although not clearly shown in the drawing, the second code generating function may include a rule for combining a plurality of detailed codes (ie, a detailed code combining function). The method for generating a virtual authentication code by combining detailed codes will be omitted as described above.

한편, 본 발명의 일 실시예로, 제2 코드에 포함된 세부코드는, 서로 상관관계를 가지는 복수의 제1 세부코드 및 제2 세부코드를 포함하고, 상기 제1 세부코드는, 상기 검증장치에서의 상기 클라이언트 장치의 자격 정보에 관한 탐색시작지점을 결정하고, 상기 제2 세부코드는, 상기 탐색시작지점으로부터 상기 자격정보에 관한 탐색경로를 결정할 수 있다. 제1 코드에 포함된 제1 세부코드 및 제2 세부코드가 클라이언트 장치(100)의 인증 정보를 탐색하는데 이용되었다면, 제2 코드에 포함된 제1 세부코드 및 제2 세부코드는, 상기 클라이언트 장치(100)의 자격정보를 탐색하는데 이용될 수 있다. Meanwhile, as an embodiment of the present invention, the detailed code included in the second code includes a plurality of first detailed codes and second detailed codes having a correlation with each other, and the first detailed code is A search starting point for qualification information of the client device in is determined, and the second detailed code determines a search path for the qualification information from the search starting point. If the first detail code and the second detail code included in the first code are used to search for authentication information of the client device 100, the first detail code and the second detail code included in the second code are It can be used to search for qualification information of (100).

한편, 클라이언트 장치의 자격 정보는 클라이언트 장치의 인증 정보의 저장위치에 저장될 수도 있으며, 또는 실시예에 따라서는 인증 정보의 저장위치에 매칭되거나 또는 연결되어 저장될 수 있다. Meanwhile, the qualification information of the client device may be stored in a storage location of authentication information of the client device, or may be matched with or connected to the storage location of authentication information according to an embodiment and stored.

다시 도 6을 참조하면, 검증 장치(300)는 제1 장치(200_1)가 제2 코드를 기반으로 가상인증코드인 제3 코드를 생성하도록 상기 제2 코드를 제1 장치로 송신한다(S460). Referring back to FIG. 6 , the verification device 300 transmits the second code to the first device so that the first device 200_1 generates a third code that is a virtual authentication code based on the second code (S460). .

한편, 제2 코드는, 제2 코드에 관한 유효시간정보를 더 포함할 수 있다. 이때, 검증 장치(300)는, 제1 장치(200_1)로부터 수신된 제1 코드에 대한 제2 코드의 유효시간이 만료된 경우, 만료된 제2 코드에 관한 갱신을 요청 받으면, 제1 장치로부터 수신된 제1 코드 및 기 저장된 제1 코드의 동일 여부를 판단하여, 상기 클라이언트 장치의 인증을 수행할 수 있다. 이때, 클라이언트 장치의 인증(100)이 완료되면, 제2 코드를 갱신하여, 제1 장치로 송신한다. 이에 대해서는 자세히 후술하도록 한다. Meanwhile, the second code may further include valid time information about the second code. At this time, when the valid time of the second code for the first code received from the first device 200_1 has expired, the verification device 300 receives a request for renewal of the expired second code, from the first device 200_1. Authentication of the client device may be performed by determining whether the received first code and the pre-stored first code are the same. At this time, when authentication 100 of the client device is completed, the second code is updated and transmitted to the first device. This will be described later in detail.

도 9는, 서비스 장치(200)에 대한 개략적인 구성도이고, 도 10은, 제1 장치에 의해 수행되는 제1 코드 및 제2 코드를 기반으로 가상인증코드인 제3 코드를 생성하는 방법을 개략적으로 나타낸 순서도이고, 도 11는 제3 코드의 개략적인 구성도이다. 9 is a schematic configuration diagram of the service device 200, and FIG. 10 shows a method for generating a third code, which is a virtual authentication code, based on a first code and a second code performed by a first device. It is a schematic flowchart, and FIG. 11 is a schematic configuration diagram of the third code.

도 9를 참조하면, 서비스 장치(200)는, 통신부(210), 제3코드생성부(220), 제1코드추출부(230) 및 자격정보검증부(240)를 포함한다. 한편, 본 명세서에서는, 서비스 장치(200)의 클라이언트 장치(100)의 권한 승인 요청에 따라서 제1 장치 및 제2 장치로 구분되어 설명되나, 이는 발명의 이해를 위해 구분되는 것이다. 즉, 제1 장치(200_1) 및 제2 장치(200_2)는 검증 장치(300)와 연동하는 서비스를 제공하는 장치로, 예를 들어 Oauth 인증 방식에 의할 경우, 각각의 리소스 서버(Resource Server)가 이에 해당할 수 있을 것이다. 한편, 리소스 서버는 동일한 플랫폼에서 제공되는 각각의 서버일 수도 있으나, 서로 다른 플랫폼에서 제공되는 각각의 리소스 서버일 수도 있다. 그러나 이에 제한되는 것은 아니다. Referring to FIG. 9 , the service device 200 includes a communication unit 210, a third code generator 220, a first code extraction unit 230, and a qualification information verification unit 240. Meanwhile, in the present specification, according to the permission approval request of the client device 100 of the service device 200, it is described as being divided into a first device and a second device, but this is to be distinguished for understanding of the present invention. That is, the first device 200_1 and the second device 200_2 are devices that provide services interworking with the verification device 300, for example, when using the Oauth authentication method, each Resource Server may correspond to this. Meanwhile, the resource server may be each server provided on the same platform, or may be each resource server provided on different platforms. However, it is not limited thereto.

도 10을 참조하면, 클라이언트 장치(100)로부터 수신된 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 통신부(210)를 통해 검증 장치(300)로 송신한다(S430). Referring to FIG. 10 , the first code, which is the source code for generating the virtual authentication code received from the client device 100, is transmitted to the verification device 300 through the communication unit 210 (S430).

이때 제1 코드는, 클라이언트 장치의 식별 정보를 기반으로 생성되며, 검증 장치(300)에서 제1 코드의 검증을 통해 클라이언트 장치(100)의 권한 부여에 이용된다. 한편, 도면에 명확히 도시되지는 않았으나, 제1 장치는 제3 코드 생성을 위하여, 상기 제1 코드를 메모리(미도시)에 저장할 수 있다. At this time, the first code is generated based on the identification information of the client device, and is used to authorize the client device 100 through verification of the first code in the verification device 300 . Meanwhile, although not clearly shown in the drawing, the first device may store the first code in a memory (not shown) in order to generate a third code.

한편, 제1 장치(100_1)는 검증 장치(300)로부터 상기 제1 코드에 대한 인증 결과가 반영된 제2 코드를 수신한다(S460). 이때 제2 코드는, 상기 제1 코드를 기반으로 검증 장치(300)에 의해 생성된 클라이언트 장치(100)에 관한 해쉬값 및 자격 정보를 포함한다. Meanwhile, the first device 100_1 receives the second code to which the authentication result for the first code is reflected from the verification device 300 (S460). In this case, the second code includes a hash value and qualification information about the client device 100 generated by the verification device 300 based on the first code.

상술한 바와 같이, 클라이언트 장치(100)에 의해 생성된 제1 코드를 기반으로 생성된 해쉬값 및 검증 장치(300)에서 클라이언트 장치(100)의 인증을 완료한 후 추출된 자격 정보가 제2 코드에 포함된다. 이와 관련하여 상술한 바 상세한 설명은 생략한다. As described above, the hash value generated based on the first code generated by the client device 100 and the qualification information extracted after completing the authentication of the client device 100 in the verification device 300 are the second code included in In this regard, detailed descriptions of the foregoing will be omitted.

구체적으로, 제1 장치(200_1)는 검증 장치(300)로부터 제1 코드에 대한 인증 결과가 반연된 제2 코드를 수신하면, 클라이언트 장치(100)의 해당 제1 장치에 대한 권한을 승인한다. 이때, 제1 장치(200_1)는 자격정보검증부(240)를 통해, 제2 코드 내 클라이언트 장치(100)에 대한 해당 제1 장치에 대한 자격 정보를 검증할 수도 있을 것이다. 보다 상세하게, 자격 정보에 포함된, 클라이언트 장치(100)의 접근 및/또는 이용 권한이 있는 서비스 장치(200)에 해당 제1 장치가 포함되는지를 판단할 것이다. 그리고, 자격 정보를 기반으로, 클라이언트 장치(100)의 해당 제1 장치에 대한 접근 및/또는 이용 권한에 대한 범위(Scope)를 검증할 수도 있을 것이다. 그리고, 자격 검증이 완료되면, 클라이언트 장치(100)의 제1 장치에 대한 권한을 승인할 것이다. Specifically, when the first device 200_1 receives the second code in which the verification result for the first code is reflected from the verification device 300, it approves the authority of the client device 100 for the corresponding first device. At this time, the first device 200_1 may verify qualification information for the corresponding first device of the client device 100 in the second code through the qualification information verification unit 240 . In more detail, it will be determined whether the corresponding first device is included in the service device 200 included in the qualification information and authorized to access and/or use the client device 100 . Further, based on the qualification information, the scope of access and/or use rights of the client device 100 to the corresponding first device may be verified. And, when the qualification verification is completed, the authority for the first device of the client device 100 will be approved.

도 10을 참조하면, 상기 제1 코드 및 상기 제2 코드를 기반으로 상기 가상인증코드인 제3 코드를 생성한다(S470). 제3 코드는, 서버 간 인증과정에서 이용되는 가상인증코드를 의미한다.Referring to FIG. 10 , a third code, which is the virtual authentication code, is generated based on the first code and the second code (S470). The third code means a virtual authentication code used in an authentication process between servers.

한편, 도 11를 참조하면, 본 발명의 일 실시예로, 상기 제3 코드는 상술한 제1 코드 및 제2 코드와 함께 검증 장치(300)로부터 제2 코드를 수신한 시간(Time Stamp) 또는 검증 장치에서의 제2 코드 생성 시간(Time Stamp)를 기반으로 생성될 수 있다.On the other hand, referring to FIG. 11, in one embodiment of the present invention, the third code is the time (Time Stamp) at which the second code is received from the verification device 300 together with the above-described first code and second code, or It may be generated based on the second code generation time (Time Stamp) in the verification device.

예를 들어, 도 11을 참조하면 제3코드는 검증 장치(300)의 클라이언트 장치(100)에 대한 인증이 완료된 시간(Time Stamp) 또는 검증이 완료된 후 제2코드를 생성한 시간(Time Stamp) 정보를 더 포함할 수 있다. For example, referring to FIG. 11, the third code is the time when authentication of the client device 100 of the verification device 300 is completed (Time Stamp) or the time when the second code is generated after verification is completed (Time Stamp). It may contain more information.

이는, 클라이언트 장치(100)에 대한 검증과 검증 결과를 기반으로 최종적으로 생성된 제3 코드를 통해 각각의 서비스 장치(200)에 대한 클라이언트 장치(100)의 권한 승인이 단위 카운트 또는 기 설정된 카운트 내 완료되지 않는 경우에 클라이언트 장치(100)에 대한 권한을 승인하기 위함이다. 각각의 서비스 장치(200)는 제3 코드 내 인증 완료 시간(Time Stamp) 또는 제2코드의 생성 시간(Time Stamp)를 기반으로, 해당 제3 코드 및 제3코드에 포함된 제2 코드가 권한 승인을 위해 정상적으로 생성된 것인지 여부를 판단할 수 있다. 보다 구체적으로는, 클라이언트 장치(100)의 권한 승인 요청에 상응하여 생성된 제3코드 및 제2코드에 대한 것인지를 판단하기 위함이다. 복수의 서비스 장치(200)에서 클라이언트 장치(100)에 대한 인증 및 권한 승인을 수행하기 위해서는, 검증 장치(300)에서의 클라이언트 장치(100)에 대한 인증 결과가 반영된 제2 코드가 유효한지를 판단해야 한다. 이를 위해 제3 코드에 포함된 생성 시점(Time Stamp)을 기반으로 판다하기 위함이다. This is because the authorization of the client device 100 for each service device 200 through the third code finally generated based on the verification and verification result of the client device 100 is within a unit count or a preset count This is to approve the authority for the client device 100 if it is not completed. Each service device 200 is authorized by the third code and the second code included in the third code based on the authentication completion time (Time Stamp) or the generation time (Time Stamp) of the second code in the third code. It can be determined whether or not it is normally created for approval. More specifically, it is to determine whether the third code and the second code generated in response to the permission approval request of the client device 100 are used. In order to perform authentication and permission approval for the client device 100 in the plurality of service devices 200, it is necessary to determine whether the second code reflecting the authentication result for the client device 100 in the verification device 300 is valid. do. To this end, it is to sell based on the time stamp included in the third code.

도 12은 본 발명의 일 실시예에 따른, 제3 코드 기반의 서버 간 인증 방법을 개략적으로 나타낸 예시도이다. 12 is an exemplary diagram schematically illustrating a third code-based server-to-server authentication method according to an embodiment of the present invention.

클라이언트 장치(100)가 최초 권한 승인을 요청한 제1 장치의 경우, 검증 장치(200)에 의하여, 해당 클라이언트 장치(100)를 인증하고, 권한을 부여할 수 있었다. 그러나, 도 12를 참조하면, 제1 장치(200_1)에 의해 생성되는 제3 코드의 경우, 클라이언트 장치(100)의 인증 정보와 관련되는 제1 코드 및 자격 정보와 관련되는 제2 코드를 포함하므로, 제1 장치(200_1) 이외의 서비스 장치(200)는 검증 장치(300)의 개입 없이도 클라이언트 장치(100)에 대한 인증 및 권한 승인이 가능하다. 이에 대하여 자세히 후술하도록 한다. In the case of the first device for which the client device 100 initially requested permission approval, the corresponding client device 100 could be authenticated and authorized by the verification device 200 . However, referring to FIG. 12 , the third code generated by the first device 200_1 includes the first code related to authentication information of the client device 100 and the second code related to qualification information. , Service devices 200 other than the first device 200_1 can authenticate and authorize the client device 100 without intervention of the verification device 300 . This will be described in detail below.

또한 본 발명의 다른 실시예로, 도면에 명확히 도시되지는 않았으나, 상기 제3 코드는 클라이언트 장치에 의해 생성될 수도 있다. 이를 위해, 제1 장치(200_1)는 검증 장치(300)로부터 수신한 제2 코드를 클라이언트 장치(100)로 송신할 수 있다. 이때, 제3 코드 생성 방법에 따라서, 제1 장치(200_1)는 검증 장치로부터 제2 코드를 수신한 시간 정보 또는 검증 장치에서의 제2 코드 생성 시간 정보를 제2 코드와 함께 클라이언트 장치(100)로 송신할 수도 있을 것이다. 한편, 클라이언트 장치(100)의 제3 코드 생성방법에 대해서는, 상술한 제1 장치에 의한 제3 코드 생성방법과 생성 주체의 차이점만을 가지므로, 상세한 설명은 생략하도록 한다. Also, as another embodiment of the present invention, although not clearly shown in the drawing, the third code may be generated by a client device. To this end, the first device 200_1 may transmit the second code received from the verification device 300 to the client device 100 . At this time, according to the third code generation method, the first device 200_1 transmits the time information at which the second code is received from the verification device or the second code generation time information in the verification device to the client device 100 together with the second code. could also be sent to Meanwhile, the third code generation method of the client device 100 has only a difference between the above-described third code generation method by the first device and the subject of generation, and thus a detailed description thereof will be omitted.

한편, 제1 장치는 자격 정보와 관련된 적어도 하나의 제2 장치(200_2)로 제3 코드를 송신한다(S480). Meanwhile, the first device transmits a third code to at least one second device 200_2 related to qualification information (S480).

본 발명의 일 실시예로, 제1 장치(200_1)는 제3 코드에 포함된 제2 코드의 자격 정보를 기반으로, 클라이언트 장치(100)의 권한 인증이 가능한 적어도 하나의 제2 장치(200_2)를 식별한 후 제2 장치(200_2)로 제3 코드를 송신할 수 있다. 그러나 이에 제한되는 것은 아니다. In an embodiment of the present invention, the first device 200_1 includes at least one second device 200_2 capable of authenticating the authority of the client device 100 based on qualification information of the second code included in the third code. After identifying, the third code may be transmitted to the second device 200_2. However, it is not limited thereto.

한편 도 12를 참조하면, 제1 장치(200_1)가 제3 코드를 하나의 제2 장치에 대하여 송신한 것으로 나타나 있지만, 클라이언트 장치(100)의 자격 정보에 근거하여, 서비스 장치 중 복수의 제2 장치(200_2)에 대하여 제3 코드를 송신할 수도 있을 것이다. 이를 통해, 클라이언트 장치(100)는 각각의 서비스 장치(200)의 권한 인증을 위하여, 검증 장치(300)에 접속하지 않아도, 접근 권한을 부여 받을 수 있다. Meanwhile, referring to FIG. 12 , although it is shown that the first device 200_1 transmits a third code to one second device, based on the qualification information of the client device 100, a plurality of second devices among the service devices A third code may be transmitted to the device 200_2. Through this, the client device 100 can be granted access rights without accessing the verification device 300 for authorization authentication of each service device 200 .

도 13은 본 발명의 일 실시예에 따른, 제3 코드를 기반으로 한 서버 간 인증 방법을 개략적으로 나타낸 순서도이다. 도 14는 본 발명의 일 실시예에 따른, 제3 코드를 기반으로 한 클라이언트 장치에 대한 권한 승인 방법을 개략적으로 나타낸 순서도이고, 도 15는 제3 코드를 기반으로 클라이언트 장치에 대한 권한을 승인하는 방법을 개략적으로 나타낸 순서도이다. 13 is a flowchart schematically illustrating an authentication method between servers based on a third code according to an embodiment of the present invention. 14 is a flowchart schematically illustrating a method for authorizing a client device based on a third code according to an embodiment of the present invention, and FIG. 15 is a flowchart for authorizing a client device based on a third code. It is a flow chart schematically showing the method.

도 13을 참조하면, 제2 장치(200_2)는 제1 장치로부터 가상인증코드인 제3 코드를 수신한다(S480). 그리고 제3 코드를 기반으로, 클라이언트 장치(100)의 상기 제2 장치(200_2)에 대한 권한을 승인한다(S490). Referring to FIG. 13 , the second device 200_2 receives a third code, which is a virtual authentication code, from the first device (S480). Based on the third code, the client device 100 approves the authority for the second device 200_2 (S490).

이때, 도 14를 참조하면, S490 단계는, 상기 제3 코드 내에 포함된 상기 제3 코드의 생성에 사용된 제1 코드를 기반으로 클라이언트 장치에 관한 해쉬값을 생성하고(S491), 상기 생성된 해쉬값과 상기 제3 코드 내에 해쉬값을 비교하여, 상기 클라이언트 장치를 검증한다(S492). 그리고 상기 제3 코드를 기반으로, 상기 클라이언트 장치에 관한 자격 정보를 판단하여 상기 클라이언트 장치의 권한을 승인한다(S493). At this time, referring to FIG. 14, in step S490, a hash value for the client device is generated based on the first code used to generate the third code included in the third code (S491), and the generated The client device is verified by comparing the hash value with the hash value in the third code (S492). Based on the third code, qualification information on the client device is determined and authority of the client device is approved (S493).

구체적으로, 제2 장치(200_2)는 제3 코드에 포함된 제1 코드를 추출한다. 그리고 제1 코드를 해쉬함수에 적용하여 해쉬값을 산출한다. 이를 위해, 제2 장치를 비롯한 모든 서비스 장치(200)는 검증 장치(300)와 동일한 해쉬함수를 포함한다. 한편, 해쉬값을 추출한 후 제3 코드 내 제2 코드를 추출하고, 상기 제2 코드에 포함되는 해쉬값을, 제2 장치(200_2)에서의 해쉬함수를 적용하여 산출된 해쉬값과 비교한다. 이때, 두 해쉬값이 일치하면, 클라이언트 장치를 인증하고, 해당 클라이언트 장치에 관한 자격 정보를 판단한다. 상술한 바와 같이, 제2 코드는 자격 정보(예를 들어, 자격 ID 및 자격 비밀값)을 포함하므로, 상기 자격 정보를 기반하여, 클라이언트 장치(100)의 제2 장치에 대한 권한을 승인한다.Specifically, the second device 200_2 extracts the first code included in the third code. Then, the hash value is calculated by applying the first code to the hash function. To this end, all service devices 200 including the second device include the same hash function as the verification device 300 . Meanwhile, after extracting the hash value, a second code within the third code is extracted, and the hash value included in the second code is compared with the hash value calculated by applying the hash function in the second device 200_2. At this time, if the two hash values match, the client device is authenticated and qualification information about the corresponding client device is determined. As described above, since the second code includes entitlement information (eg, entitlement ID and entitlement secret value), authorization of the client device 100 for the second device is granted based on the entitlement information.

한편, 본 발명의 일 실시예로, 제3 코드는, 제1 코드 및 상기 제2 코드와, 제2 코드를 수신한 시간 데이터를 기반으로 생성될 수 있다. 이때, 권한 승인 단계는, 제3 코드를 기반으로, 상기 클라이언트 장치(100)에 관한 자격 정보 및 상기 제2 코드를 수신한 시간을 기반으로, 클라이언트 장치의 권한을 승인할 수 있을 것이다. 즉, 제2 장치(100_2)는, 제2 코드를 수신한 시간 데이터를 기반으로, 제2 코드에 대한 유효성을 검증한 후 제2 코드에 포함된 자격 정보를 기반으로 클라이언트 장치(100)에 대한 권한을 승인할 수 있을 것이다.Meanwhile, according to an embodiment of the present invention, the third code may be generated based on the first code, the second code, and time data of receiving the second code. At this time, in the permission approval step, based on the third code, based on the qualification information about the client device 100 and the time at which the second code was received, the permission of the client device may be approved. That is, the second device 100_2 verifies the validity of the second code based on the time data at which the second code was received, and then, based on the entitlement information included in the second code, the second device 100_2 determines information about the client device 100. You will be able to grant permission.

한편, 도 15를 참조하면, 본 발명의 일 실시예로, 상기 권한 승인 단계(S493)는, 제3 코드를 기반으로, 상기 클라이언트 장치의 접근 가능한 장치에 상기 제2 장치가 포함되는지 여부를 판단하고(S493_a), 제3 코드 내에 포함된 시간데이터 및 제2 코드를 기반으로, 상기 제2 장치에 대한 상기 클라이언트 장치의 자격에 해당하는 권한을 승인할 수 있다(S493_b)Meanwhile, referring to FIG. 15 , according to an embodiment of the present invention, in the permission approval step (S493), based on a third code, it is determined whether the second device is included in the accessible devices of the client device. And (S493_a), based on the time data and the second code included in the third code, it is possible to approve the right corresponding to the qualification of the client device for the second device (S493_b)

보다 상세하게, 자격 정보에 포함된, 클라이언트 장치(100)의 접근 및/또는 이용 권한이 있는 서비스 장치(200)에 해당 제2 장치가 포함되는지를 판단할 것이다. 그리고, 자격 정보를 기반으로, 클라이언트 장치(100)의 해당 제2 장치에 대한 접근 및/또는 이용 권한에 대한 범위(Scope)를 검증할 수도 있을 것이다. 그리고, 자격 검증이 완료되면, 클라이언트 장치(100)의 제2 장치에 대한 권한을 승인할 것이다. In more detail, it will be determined whether the corresponding second device is included in the service device 200 included in the entitlement information and authorized to access and/or use the client device 100 . In addition, based on the qualification information, the scope of access and/or use rights for the corresponding second device of the client device 100 may be verified. And, when the qualification verification is completed, the authority of the second device of the client device 100 will be approved.

한편, 도면에 명확히 도시되지는 않았으나, 서비스 장치(200)는 세부코드추출부(미도시)를 더 포함할 수도 있을 것이다. Meanwhile, although not clearly shown in the drawing, the service device 200 may further include a detailed code extraction unit (not shown).

즉, 검증 장치(300)에 의해 생성된 제2 코드가 복수의 세부코드를 포함하는 경우, 서비스 장치(200)는 상기 세부코드를 추출하여, 자격 정보의 저장위치를 탐색할 수도 있을 것이다. 이는, 제1 코드가 복수의 세부코드를 포함하는 경우, 검증 장치(300)에서의 세부코드를 추출하여, 클라이언트 장치(100)의 인증 정보의 저장위치를 탐색하는 방법과 방식이 유사하므로, 상세한 설명은 생략하도록 한다. That is, when the second code generated by the verification device 300 includes a plurality of detailed codes, the service device 200 may extract the detailed codes and search the storage location of qualification information. This is because, when the first code includes a plurality of detailed codes, the method is similar to the method of extracting the detailed codes from the verification device 300 and searching for the storage location of the authentication information of the client device 100. The description is omitted.

한편, 본 발명의 일 실시예로, 제2 코드는, 제2 코드에 관한 유효시간정보를 더 포함할 수 있다. 즉, 도면에 명확히 도시되지는 않았으나, 검증 장치(300)는 제2 코드를 생성할 때, 상기 제2 코드의 유효시간정보를 더 포함할 수도 있다. 이때, 제2 장치(200_2)는 제1 장치(200_1)로부터 수신한 제3 코드 내 제2 코드의 유효시간이 만료되면, 제1 장치(200_1)로 수신한 제3 코드를 반환하여, 상기 제2 코드를 갱신할 것을 요청한다. Meanwhile, as an embodiment of the present invention, the second code may further include valid time information about the second code. That is, although not clearly shown in the drawing, the verification device 300 may further include valid time information of the second code when generating the second code. At this time, the second device 200_2 returns the third code received to the first device 200_1 when the validity time of the second code within the third code received from the first device 200_1 expires, 2 Request to update the code.

그리고 제1 장치(200_1)는, 제2 장치(200_2)로부터 만료된 제2 코드의 갱신을 위한 상기 제3 코드를 수신하고, 제3 코드에 포함된 제1 코드를 상기 검증장치(300)로 송신한다. 검증장치(300)는 제1 코드를 기반으로 클라이언트 장치(100)의 인증을 다시 수행한다. 그리고 상기 클라이언트 장치(100)의 인증이 완료되면, 제2 코드를 갱신한 후 상기 갱신된 제2 코드를 상기 제1 장치로 송신하도록 요청할 수 있다. 제2 코드의 갱신 방법은, 제2 코드의 생성 방법과 동일한 바 자세한 설명은 생략하도록 한다. The first device 200_1 receives the third code for renewal of the expired second code from the second device 200_2, and transfers the first code included in the third code to the verification device 300. transmit The verification device 300 re-authenticates the client device 100 based on the first code. When the authentication of the client device 100 is completed, the second code may be updated and then the updated second code may be transmitted to the first device. A method of updating the second code is the same as a method of generating the second code, so a detailed description thereof will be omitted.

한편, 검증 장치(300)는, 제1 장치(200_1)로 제1 코드를 수신한 경우, 상기 제1 코드를 저장한 후, 상기 제2 장치(200_2)의 제1 장치(200_1)를 통한 제2 코드의 갱신 요청을 수신하면, 저장된 제1 코드와 제1 장치(200_1)로부터 수신한 제1 코의 직접 비교를 통해 유효성 여부를 확인할 수 있다. Meanwhile, when the first code is received by the first device 200_1, the verification device 300 stores the first code, and then transmits the first code through the first device 200_1 of the second device 200_2. When the update request for the 2 codes is received, validity can be confirmed through direct comparison between the stored first code and the first code received from the first device 200_1.

한편, 검증 장치(300)에 의한, 제2 코드의 갱신 과정이 중지되거나, 갱신을 허용하지 않으면, 제2 장치(200_2)에서의 클라이언트 장치(100)에 대한 검증 및 권한 부여 과정이 중지된다. Meanwhile, when the process of updating the second code by the verification device 300 is stopped or the renewal is not allowed, the process of verifying and granting authority to the client device 100 in the second device 200_2 is stopped.

한편, 제1 장치(100_1)는 검증 장치(300)로부터 갱신된 제2 코드를 수신하면, 제1 코드, 제2코드 및 상기 갱신된 제2 코드가 수신된 시간데이터를 기반으로 제3 코드를 재생성하여, 제2 장치(100_2)로 다시 송신한다. 이를 통해, 제2 장치(100_2)는 클라이언트 장치(100)에 관한 인증 및 권한 승인 과정을 다시 수행할 수 있을 것이다. Meanwhile, when the first device 100_1 receives the updated second code from the verification device 300, the first device 100_1 generates a third code based on the first code, the second code, and the time data from which the updated second code is received. It is regenerated and transmitted again to the second device 100_2. Through this, the second device 100_2 will be able to perform the authentication and authorization process for the client device 100 again.

도 16은 본 발명의 제2 장치의 클라이언트 장치의 검증 및 권한 승인 정보를 기반으로, 새로운 제3 코드를 생성하는 것을 개략적으로 나타낸 순서도이다. 16 is a flowchart schematically illustrating generation of a new third code based on verification of a client device and authorization information of a second device of the present invention.

클라이언트 장치(100)에 대한 검증 및 권한 승인이 완료된 제2 장치(200_2)는 해당 클라이언트 장치(100)의 서비스 장치(200)내 또 다른 장치에 대한 인증을 위한 새로운 제3 코드를 생성할 수 있다. 예를 들어, 제1 장치(200_1)의 제3 코드를 기반으로 클라이언트 장치(100)에 제2 장치(200_2)에 대한 인증이 완료되어야만, 클라이언트 장치(300)에 대한 권한을 승인할 수 있는 제3 장치(미도시)가 존재할 수 있다. 이때, 제2 장치(200_2)는 제1 장치(200_1)로부터 수신한 제3 코드를 기반으로, 제2 장치(200_2)에 대한 클라이언트 장치(100)의 검증 및 권한 승인이 완료되었음을 나타내는 정보와 함께 새로운 제3 코드를 생성할 수 있을 것이다. The second device 200_2, which has been verified and authorized for the client device 100, may generate a new third code for authentication of another device within the service device 200 of the corresponding client device 100. . For example, the client device 100 must complete authentication of the second device 200_2 based on the third code of the first device 200_1 to authorize the client device 300. 3 devices (not shown) may be present. At this time, based on the third code received from the first device 200_1, the second device 200_2 together with information indicating that the verification and authority approval of the client device 100 for the second device 200_2 has been completed. You will be able to generate a new third code.

도 16을 참조하면, 클라이언트 장치 검증 성공 및 상기 승인된 권한을 식별하는 정보를 생성하고, 상기 제3 코드 및 상기 식별 정보를 기반으로 제2 장치에 관한 신규 제3 코드를 생성한다.Referring to FIG. 16 , information identifying success of client device verification and the approved authority is generated, and a new third code for a second device is generated based on the third code and the identification information.

구체적으로, 제2 장치(200_2)는 클라이언트 장치(100)에 대한 제2 장치(200_2)의 검증이 완료된 후 해당 제2 장치(200_2)에 대한 권한 승인이 완료되었음을 인증하는 정보를 생성한다. 그리고 해당 정보를 포함한, 새로운 제3 코드를 생성하여, 서비스 장치(200) 내 클라이언트 장치(100)의 인증이 필요한 또 다른 장치(예를 들어, 제3 장치)로 새로운 제3 코드를 송신한다. Specifically, after the verification of the second device 200_2 with respect to the client device 100 is completed, the second device 200_2 generates information for authenticating that permission approval for the corresponding second device 200_2 has been completed. Then, a new third code including the corresponding information is generated, and the new third code is transmitted to another device (eg, a third device) requiring authentication of the client device 100 within the service device 200.

이는, 복수의 서비스 장치(300)가 순차적으로 클라이언트 장치(100)에 대한 인증을 필요로 하는 경우, N번째(N은 2이상의 자연수)서비스 장치가 N-1번째 서비스 장치로부터 수신한 제3코드를 기반으로 클라이언트 장치(100)에 대해 N번째 서비스 장치에서의 검증을 완료하고 권한을 승인하였음을 식별하였음을 N+1번째 장치가 인지할 수 있도록 하기 위함이다. 이를 위해 권한 승인이 완료되었음을 인증하는 정보 및 N-1번째 장치로부터 수신한 제3코드를 기반을 새로운 제3코드를 생성하여 N+1번째 장치로 송신할 수 있다. This is the third code received by the Nth (N is a natural number of 2 or more) service device from the N-1th service device when the plurality of service devices 300 sequentially require authentication for the client device 100. This is to allow the N+1 th device to recognize that it has completed verification in the N th service device for the client device 100 based on and identified that the authority has been approved. To this end, a new third code may be generated based on the third code received from the N−1 th device and information for authenticating that permission approval has been completed and transmitted to the N+1 th device.

한편, 위 실시예에서는 복수의 서비스 장치(200)의 클라이언트 장치(100)에 대한 순차적 인증 및 검증 상황을 예시로 설명하였으나, A 서비스 장치(200_A)가 또 다른 B 서비스 장치(200_B)에 대한 클라이언트 장치(100)의 선 검증 및 선 권한 부여를 필요로 하는 경우에도, B 서비스 장치는 새로운 제3 코드를 생성하여, A 서비스 장치로 송신할 수 있다. Meanwhile, in the above embodiment, the sequential authentication and verification situation for the client device 100 of the plurality of service devices 200 has been described as an example, but the A service device 200_A is a client for another B service device 200_B. Even when the device 100 requires pre-validation and pre-authorization, the B service device may generate a new third code and transmit it to the A service device.

이상에서 전술한 본 발명의 일 실시예에 가상인증코드 기반의 장치간 인증방법은, 하드웨어인 서버와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The virtual authentication code-based device-to-device authentication method according to one embodiment of the present invention described above may be implemented as a program (or application) and stored in a medium to be executed in combination with a server, which is hardware.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(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. have. 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.

100 : 클라이언트 장치
110 : 세부코드 생성부
120 : 제1코드 생성부
130 : 통신부
200 : 서비스 장치
200_1 : 제1 장치
200_2 : 제2 장치
210 : 통신부
220 : 제3코드생성부
230 : 제1코드 추출부
240 : 자격정보검증부
300 : 검증 장치
310 : 통신부
320 : 세부코드추출부
330 : 인증정보탐색부
340 : 제2코드생성부
100: client device
110: detailed code generation unit
120: first code generator
130: Ministry of Communication
200: service device
200_1: first device
200_2: Second device
210: Ministry of Communication
220: third code generator
230: first code extraction unit
240: qualification information verification unit
300: verification device
310: Communication Department
320: detail code extraction unit
330: authentication information search unit
340: second code generator

Claims (15)

제1 장치에 의해 수행되는 가상인증코드 기반의 장치 간 인증방법으로서,
클라이언트 장치로부터 수신된 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 송신하되, 상기 제1 코드는, 상기 클라이언트 장치의 식별 정보를 기반으로 생성되며, 검증장치에서 상기 제1 코드의 검증을 통해 상기 클라이언트 장치의 권한 부여에 이용되는, 제1 코드 송신 단계;
상기 검증 장치로부터 상기 제1 코드에 대한 인증 결과가 반영된 제2 코드를 수신하되, 상기 제2 코드는, 상기 제1 코드를 기반으로 상기 검증 장치에 의해 생성된 상기 클라이언트 장치에 관한 해쉬값 및 자격 정보를 포함하는, 제2 코드 수신 단계;
상기 제1 코드 및 상기 제2 코드를 기반으로 상기 가상인증코드인 제3 코드를 생성하는 단계; 및
상기 자격 정보와 관련된 적어도 하나의 제2 장치로 상기 제3 코드를 송신하는 단계;를 포함하는,
가상인증코드 기반의 장치 간 인증방법.
An authentication method between devices based on a virtual authentication code performed by a first device,
Transmit a first code, which is a source code for generating a virtual authentication code received from a client device, the first code is generated based on identification information of the client device, and the verification device verifies the first code. transmitting a first code, which is used to authorize the client device through;
Receive a second code in which the authentication result for the first code is reflected from the verification device, wherein the second code includes a hash value and qualifications for the client device generated by the verification device based on the first code. receiving a second code, including information;
generating a third code that is the virtual authentication code based on the first code and the second code; and
Transmitting the third code to at least one second device associated with the entitlement information;
Authentication method between devices based on virtual authentication code.
제1항에 있어서
상기 제2 코드는, 상기 제2 코드에 관한 유효시간정보를 더 포함하고,
상기 제1 장치는,
상기 제2 장치로부터 만료된 제2 코드의 갱신을 위한 상기 제3 코드를 수신하고,
상기 제1 코드를 상기 검증 장치로 송신하여,
상기 검증장치가 상기 제1 코드를 기반으로 상기 클라이언트 장치의 인증이 완료될 경우 상기 제2 코드를 갱신한 후 상기 갱신된 제2 코드를 상기 제1 장치로 송신하도록 요청하고,
상기 제1 코드, 상기 갱신된 제2 코드 및 상기 갱신된 제2 코드가 수신된 시간데이터를 기반으로 제3 코드를 재 생성하여, 제2 장치로 송신하는 단계를 포함하는,
가상인증코드 기반의 장치 간 인증방법.
According to claim 1
The second code further includes valid time information about the second code,
The first device,
Receiving the third code for renewal of the expired second code from the second device;
By sending the first code to the verification device,
Requesting that the verification device update the second code and transmit the updated second code to the first device when authentication of the client device is completed based on the first code;
Regenerating a third code based on the first code, the updated second code, and the time data from which the updated second code is received, and transmitting the third code to a second device,
Authentication method between devices based on virtual authentication code.
제1항에 있어서,
상기 제2 코드는, 복수의 세부코드를 포함하고,
상기 복수의 세부코드는, 상기 클라언트 장치에 의해 단위카운트마다 변경되어 생성되는 것이고,
상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것인,
가상인증코드 기반의 장치간 인증방법.
According to claim 1,
The second code includes a plurality of detailed codes,
The plurality of detailed codes are changed and generated for each unit count by the client device,
The unit count is set at a specific time interval and is changed as the time interval elapses.
Authentication method between devices based on virtual authentication code.
제1항에 있어서,
상기 세부코드는, 서로 상관관계를 가지는복수의 제1 세부코드 및 제2 세부코드를 포함하고,
상기 제1 세부코드는, 상기 검증장치에서의 상기 클라이언트 장치의 자격정보에 관한 탐색시작지점을 결정하고,
상기 제2 세부코드는, 상기 탐색시작지점으로부터 상기 자격정보에 관한 탐색경로를 결정하는,
가상인증코드 기반의 장치간 인증방법.
According to claim 1,
The detailed code includes a plurality of first detailed codes and second detailed codes having a correlation with each other;
The first detailed code determines a search start point for qualification information of the client device in the verification device;
The second detailed code determines a search path for the qualification information from the search start point,
Authentication method between devices based on virtual authentication code.
제2 장치에 의해 수행되는 가상인증코드 기반의 장치 간 인증방법으로서,
제1 장치로부터 가상인증코드인 제3 코드를 수신하는 단계; 및
상기 제3 코드를 기반으로, 상기 클라이언트 장치의 권한을 승인하는 단계;를 포함하고,
상기 권한 승인 단계는,
상기 제3 코드 내에 포함된 상기 제3 코드의 생성에 사용된 제1 코드(를 기반으로 클라이언트 장치에 관한 해쉬값을 생성하는 단계;
상기 생성된 해쉬값과 상기 제3 코드 내에 해쉬값을 비교하여, 상기 클라이언트 장치를 검증하는 단계; 및
상기 제3 코드를 기반으로, 상기 클라이언트 장치에 관한 자격 정보를 판단하여 상기 클라이언트 장치의 권한을 승인하는 단계를 포함하는,
가상인증코드 기반의 장치 간 인증방법.
As an authentication method between devices based on a virtual authentication code performed by a second device,
Receiving a third code that is a virtual authentication code from the first device; and
Approving the authority of the client device based on the third code; includes,
In the permission approval step,
Generating a hash value for the client device based on the first code (used to generate the third code included in the third code);
verifying the client device by comparing the generated hash value with a hash value in the third code; and
Based on the third code, determining entitlement information about the client device and approving the authority of the client device.
Authentication method between devices based on virtual authentication code.
제5항에 있어서,
상기 권한 승인 단계는,
상기 제3 코드를 기반으로, 상기 클라이언트 장치의 접근 가능한 장치에 상기 제2 장치가 포함되는지 여부를 판단하는 단계; 및
상기 제3 코드 내에 포함된 시간데이터 및 제2 코드를 기반으로, 상기 제2 장치에 대한 상기 클라이언트 장치의 자격에 해당하는 권한을 승인하는 단계를 포함하는,
가상인증코드 기반의 장치 간 인증방법.
According to claim 5,
In the permission approval step,
determining whether the second device is included in accessible devices of the client device based on the third code; and
Approving an authority corresponding to the qualification of the client device to the second device based on the time data and the second code included in the third code,
Authentication method between devices based on virtual authentication code.
제5항에 있어서,
상기 제2 코드는,
상기 제2 코드에 관한 유효시간정보를 더 포함하고,
상기 제2 코드의 유효시간이 만료되면, 상기 제1 장치로 상기 제3 코드를 반환하여, 상기 제2 코드를 갱신할 것을 요청하는 단계를 더 포함하는,
가상인증코드 기반의 장치 간 인증방법.
According to claim 5,
The second code is,
Further including valid time information about the second code,
When the valid time of the second code expires, returning the third code to the first device to request renewal of the second code.
Authentication method between devices based on virtual authentication code.
제5 항에 있어서,
상기 제3 코드는,
상기 제1 코드 및 상기 제2 코드와, 상기 제2 코드를 수신한 시간 데이터를 기반으로 생성되고,
상기 권한 승인 단계는,
상기 제3 코드를 기반으로, 상기 클라이언트 장치에 관한 자격 정보 및 상기 제2 코드를 수신한 시간을 기반으로, 상기 클라이언트 장치의 권한을 승인하는,
가상인증코드 기반의 장치 간 인증방법.
According to claim 5,
The third code,
Generated based on the first code, the second code, and time data of receiving the second code;
In the permission approval step,
Approving the authority of the client device based on the third code, based on the qualification information about the client device and the time at which the second code was received,
Authentication method between devices based on virtual authentication code.
제5항에 있어서,
상기 클라이언트 장치 검증 성공 및 상기 승인된 권한을 식별하는 정보를 생성하는 단계; 및
상기 제3 코드 및 상기 식별 정보를 기반으로 제2 장치에 관한 신규 제3 코드를 생성하는 단계;를 포함하는,
가상인증코드 기반의 장치 간 인증방법.
According to claim 5,
generating information identifying the client device verification success and the authorized authority; and
Generating a new third code for a second device based on the third code and the identification information; including,
Authentication method between devices based on virtual authentication code.
검증 장치에 의해 가상인증코드 기반의 장치 간 인증 방법으로서,
제1 장치를 통해 클라이언트 장치로부터 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 수신하되, 상기 제1 코드는, 상기 클라이언트 장치의 식별 정보를 기반으로 생성된 것인, 제1 코드 수신 단계;
상기 제1 코드를 기반으로, 상기 클라이언트 장치의 식별 정보의 저장위치를 탐색하여 상기 클라이언트 장치의 인증을 수행하는 단계;
상기 클라이언트 장치의 인증이 완료되면, 상기 클라이언트 장치에 관한 자격 정보를 생성하는 단계;
상기 제1 코드를 기반으로 상기 클라이언트 장치에 관한 해쉬값을 생성하는 단계;
상기 생성된 자격 정보 및 해쉬값을 기반으로, 상기 제1 코드에 대한 인증 결과가 반영된 제2 코드를 생성하는 단계; 및
상기 제1 장치가 상기 제2 코드를 기반으로 상기 가상인증코드인 제3 코드를 생성하도록 상기 제2 코드를 상기 제1 장치로 송신하는 단계;를 포함하는,
가상인증코드 기반의 장치간 인증방법.
As a device-to-device authentication method based on a virtual authentication code by a verification device,
Receiving a first code, which is a source code for generating a virtual authentication code, from a client device through a first device, wherein the first code is generated based on identification information of the client device. ;
performing authentication of the client device by searching for a storage location of identification information of the client device based on the first code;
generating entitlement information about the client device when authentication of the client device is completed;
generating a hash value for the client device based on the first code;
generating a second code in which an authentication result for the first code is reflected, based on the generated qualification information and the hash value; and
Transmitting the second code to the first device so that the first device generates a third code that is the virtual authentication code based on the second code; Including,
Authentication method between devices based on virtual authentication code.
제10항에 있어서,
상기 제2 코드는, 상기 제2 코드에 관한 유효시간정보를 더 포함하고,
상기 검증 장치는,
상기 제1 장치로부터 수신된 제1 코드에 대한 제2 코드의 유효시간이 만료된 상태에서 상기 만료된 제2 코드에 관한 갱신을 요청 받으면, 상기 제1 장치로부터 수신된 제1 코드 및 기 저장된 제1 코드의 동일 여부를 판단하여, 상기 클라이언트 장치의 인증을 수행하는 단계; 및.
상기 클라이언트 장치의 인증이 완료되면, 상기 제2 코드를 갱신하여, 상기 제1 장치로 송신하는 단계;를 더 포함하는,
가상인증코드 기반의 장치간 인증방법.
According to claim 10,
The second code further includes valid time information about the second code,
The verification device,
When a renewal request for the expired second code is received in a state where the validity time of the second code for the first code received from the first device has expired, the first code received from the first device and the previously stored second code are requested. 1 determining whether the codes are the same, and performing authentication of the client device; and.
Further comprising, when the authentication of the client device is completed, updating the second code and transmitting it to the first device.
Authentication method between devices based on virtual authentication code.
클라이언트 장치에 의해 수행되는 가상인증코드 기반의 장치 간 인증방법으로서,
상기 클라이언트 장치의 식별 정보를 기반으로, 가상인증코드의 생성을 위한 소스 코드인 제1 코드를 생성하는 단계; 및
상기 제1 코드를 제1 장치를 통해 검증 장치로 송신하여, 상기 제1 장치에 대한 상기 클라이언트 장치의 권한 승인을 요청하는 단계;를 포함하는,
가상인증코드 기반의 장치간 인증방법.
As a device-to-device authentication method based on a virtual authentication code performed by a client device,
Generating a first code that is a source code for generating a virtual authentication code based on the identification information of the client device; and
Sending the first code to a verification device through a first device to request authorization of the client device for the first device; Including,
Authentication method between devices based on virtual authentication code.
제12항에 있어서,
상기 제1 코드는, 복수의 세부코드를 포함하고,
상기 복수의 세부코드는, 상기 클라언트 장치에 의해 단위카운트마다 변경되어 생성되는 것이고,
상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것인,
가상인증코드 기반의 장치간 인증방법.
According to claim 12,
The first code includes a plurality of detailed codes,
The plurality of detailed codes are changed and generated for each unit count by the client device,
The unit count is set at a specific time interval and is changed as the time interval elapses.
Authentication method between devices based on virtual authentication code.
제13항에 있어서,
상기 세부코드는, 서로 상관관계를 가지는 복수의 제1 세부코드 및 제2 세부코드를 포함하고,
상기 제1 세부코드는, 상기 검증장치에서의 상기 클라이언트 장치의 인증정보에 관한 탐색시작지점을 결정하고,
상기 제2 세부코드는, 상기 탐색시작지점으로부터 상기 인증정보에 관한 탐색경로를 결정하는,
가상인증코드 기반의 장치간 인증방법.
According to claim 13,
The detailed codes include a plurality of first detailed codes and second detailed codes having a correlation with each other;
The first detailed code determines a search start point for authentication information of the client device in the verification device;
The second detailed code determines a search path for the authentication information from the search start point,
Authentication method between devices based on virtual authentication code.
하드웨어인 컴퓨터와 결합되어, 제1항 내지 제14항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된, 가상법인카드를 기반으로 금융거래를 제공하는 프로그램.A program for providing financial transactions based on a virtual corporate card stored in a medium in order to execute the method of any one of claims 1 to 14 in combination with a computer, which is hardware.
KR1020220144135A 2020-02-24 2022-11-02 Device and method for authentication between device based on virtual authentication code KR20220151589A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020200022023 2020-02-24
KR20200022023 2020-02-24
KR1020210025002A KR102464002B1 (en) 2020-02-24 2021-02-24 Device and method for authentication between device based on virtual authentication code

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210025002A Division KR102464002B1 (en) 2020-02-24 2021-02-24 Device and method for authentication between device based on virtual authentication code

Publications (1)

Publication Number Publication Date
KR20220151589A true KR20220151589A (en) 2022-11-15

Family

ID=77490255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220144135A KR20220151589A (en) 2020-02-24 2022-11-02 Device and method for authentication between device based on virtual authentication code

Country Status (2)

Country Link
KR (1) KR20220151589A (en)
WO (1) WO2021172877A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (en) 2012-11-20 2013-10-08 신한카드 주식회사 Mobile transaction system using dynamic track 2 data and method using the same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102008945B1 (en) * 2013-04-26 2019-08-08 에스케이플래닛 주식회사 System and method for public terminal security
KR101800737B1 (en) * 2016-06-27 2017-11-23 경북대학교 산학협력단 Control method of smart device for self-identification, recording medium for performing the method
KR101978812B1 (en) * 2017-08-09 2019-05-15 주식회사 센스톤 System, method and program for providing financial transaction by vritual card number, vritual card number generator and vritual card number verification device
KR101995339B1 (en) * 2017-11-30 2019-07-04 (주)시큐어비즈 A IoT sensor authentication method based on block-chain
TWI660606B (en) * 2018-04-17 2019-05-21 鉅康科技股份有限公司 Intelligent monitoring system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (en) 2012-11-20 2013-10-08 신한카드 주식회사 Mobile transaction system using dynamic track 2 data and method using the same

Also Published As

Publication number Publication date
WO2021172877A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
US11625460B1 (en) Security platform
US9613205B2 (en) Alternate authentication
US10755237B2 (en) Method for creating, registering, revoking authentication information and server using the same
US20200302086A1 (en) Controlling access to a secure computing resource
EP3008876B1 (en) Roaming internet-accessible application state across trusted and untrusted platforms
KR102501750B1 (en) Method and system for authengicating user using virtual code for authentication
KR102011363B1 (en) Method for software authentication using block-chain authentication
KR102464002B1 (en) Device and method for authentication between device based on virtual authentication code
KR20200089562A (en) Method and apparatus for managing a shared digital key
KR20220151589A (en) Device and method for authentication between device based on virtual authentication code
KR20230008657A (en) Method and apparatus for generating virtual code for authentication for other purposes
KR102209481B1 (en) Method for operating account reinstating service based account key pairs, system and computer-readable medium recording the method
US20220182376A1 (en) User authentication method using authentication virtual code and system therefor
KR102479729B1 (en) Device, method and program for verifying user setting information using virtual code
KR102647041B1 (en) Method and apparatus for performing control command based on virtual code
US20230090508A1 (en) Device and method for virtual authentication code-based process authorization
KR102479730B1 (en) Smart card apparatus, apparatus for generating virtual code for authentication, method for generating virtual code for authentication using the same, server for verifying virtual code for authentication
KR20230131442A (en) Industrial control apparatus for performing authentication based on dynamic authentication code and method using the same
KR20220105503A (en) Method and program for providing electronic registration service based on virtual authentication code
KR20230110217A (en) System, method and program for transaction by virtual code

Legal Events

Date Code Title Description
A107 Divisional application of patent