KR102200553B1 - A method for judging application forgery using user secret key, a packet validation authentication method using dynamic token, and its system - Google Patents

A method for judging application forgery using user secret key, a packet validation authentication method using dynamic token, and its system Download PDF

Info

Publication number
KR102200553B1
KR102200553B1 KR1020180138643A KR20180138643A KR102200553B1 KR 102200553 B1 KR102200553 B1 KR 102200553B1 KR 1020180138643 A KR1020180138643 A KR 1020180138643A KR 20180138643 A KR20180138643 A KR 20180138643A KR 102200553 B1 KR102200553 B1 KR 102200553B1
Authority
KR
South Korea
Prior art keywords
application
private key
information
modified data
user private
Prior art date
Application number
KR1020180138643A
Other languages
Korean (ko)
Other versions
KR20200055251A (en
Inventor
백준선
곽문수
이병재
권오현
Original Assignee
네이버클라우드 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버클라우드 주식회사 filed Critical 네이버클라우드 주식회사
Priority to KR1020180138643A priority Critical patent/KR102200553B1/en
Publication of KR20200055251A publication Critical patent/KR20200055251A/en
Application granted granted Critical
Publication of KR102200553B1 publication Critical patent/KR102200553B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법 및 동적 토큰을 활용한 어플리케이션 관련 패킷 유효성 인증 방법 및 그 시스템에 있어서, 송수신부, 제어부, 메모리 및 제1 변형 데이터 생성부를 포함하는 사용자 단말이 어플리케이션 위변조 여부를 판단하는 방법에 있어서, 상기 제1 변형 데이터 생성부가 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 로직으로 변형하여 제1 변형 데이터를 생성하여 상기 제어부로 송신하는 단계; 상기 제어부가 상기 메모리에 저장된 상기 어플리케이션으로부터 상기 어플리케이션에 포함된 사용자 개인키에서 제2 변형 데이터를 추출하는 단계; 및 상기 제어부가 상기 수신된 제1 변형 데이터와 상기 추출된 제2 변형 데이터의 동일성 여부를 확인하는 단계;를 포함하는 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법으로서, 사용자 단말의 안전한 어플리케이션 사용을 보장받을 수 있는 효과가 있고, 인증 서버는 사용자 단말로부터 수신되는 어플리케이션 관련 패킷에 대하여, 어플리케이션 관련 패킷을 수정하거나 거짓 어플리케이션 관련 패킷을 생성하는 악의적 사용자에 의한 중간자 공격(MITM; MAN IN THE MIDDLE)으로부터 안전성을 보장받을 수 있는 효과가 있으며, 인증 서버는 유효한 메시지를 복제하여 재송신된 유효한 메시지로 가장된 어플리케이션 관련 패킷 공격인 재전송 공격(REPLAY ATTACK)으로부터 안전성을 보장받을 수 있는 효과가 있다. In the present invention, an application forgery determination method using a user private key and an application-related packet validity authentication method using a dynamic token, and a system thereof, a user terminal including a transceiver, a control unit, a memory, and a first modified data generation unit A method of determining whether or not forgery is altered, the method comprising: generating, by the first modified data generation unit, application meta information and developer signature information with preset logic, and transmitting the first modified data to the control unit; Extracting, by the control unit, second modified data from the user private key included in the application from the application stored in the memory; And checking, by the control unit, whether the received first modified data and the extracted second modified data are identical to each other. A method for determining application forgery and alteration using a user private key, comprising: There is an effect of ensuring application use, and the authentication server modifies application-related packets or creates false application-related packets with respect to application-related packets received from the user terminal, and man-in-the-middle attacks by malicious users (MITM; MAN IN THE MIDDLE) has the effect of guaranteeing safety, and the authentication server has the effect of being able to guarantee safety from a replay attack (REPLAY ATTACK), an application-related packet attack disguised as a retransmitted valid message by duplicating a valid message.

Description

사용자 개인키를 활용한 어플리케이션 위변조 판단 방법, 동적 토큰을 활용한 어플리케이션 관련 패킷 유효성 인증 방법 및 그 시스템 {A METHOD FOR JUDGING APPLICATION FORGERY USING USER SECRET KEY, A PACKET VALIDATION AUTHENTICATION METHOD USING DYNAMIC TOKEN, AND ITS SYSTEM}Application forgery determination method using user private key, application-related packet validity authentication method using dynamic token, and its system {A METHOD FOR JUDGING APPLICATION FORGERY USING USER SECRET KEY, A PACKET VALIDATION AUTHENTICATION METHOD USING DYNAMIC TOKEN, AND ITS SYSTEM}

본 발명은 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법, 동적 토큰을 활용한 어플리케이션 관련 패킷 유효성 인증 방법 및 그 시스템 에 관한 것으로, 보다 구체적으로는 사용자 개인키에 포함된 정보를 활용하여 어플리케이션 배포자로부터 수신한 어플리케이션의 위변조를 판단하고, 사용자 개인키에 포함된 정보를 활용하여 생성한 동적 토큰을 이용하여 인증 서버가 수신하는 어플리케이션과 관련된 어플리케이션 관련 패킷의 유효성을 인증하는 방법 및 그 시스템에 관한 것이다.The present invention relates to an application forgery determination method using a user private key, an application-related packet validity authentication method using a dynamic token, and a system thereof, and more specifically, a reception from an application distributor using information included in a user private key. The present invention relates to a method and a system for determining the forgery of an application and authenticating the validity of an application-related packet related to an application received by an authentication server by using a dynamic token generated by using information included in a user private key.

현재 다양한 어플리케이션이 만들어지고 배포되며 활용되고 있다. 어플리케이션이 배포되는 과정에서 정당한 어플리케이션 배포자에 의해 생성된 정당한 어플리케이션이 아닌, 제3자에 의해 위조 또는 변조된 어플리케이션이 배포되는 경우가 있다. 이렇게 정당한 어플리케이션 배포자의 허락이 없이 수행되는 어플리케이션 위조 또는 변조 행위는 정당한 어플리케이션 배포자의 재산권을 침해할 수 있다. 그리고, 올바른 어플리케이션에 악성 코드 등이 포함되는 등의 방법으로 위조 또는 변조된 어플리케이션이 배포되는 경우, 사용자 단말이 악성 코드에 노출될 수 있는 문제점이 있다. Currently, various applications are created, distributed and utilized. In the process of distributing an application, there are cases in which an application that has been forged or altered by a third party is distributed rather than a legitimate application created by a legitimate application distributor. Such an act of forgery or alteration of an application performed without the permission of a legitimate application distributor may infringe the property rights of a legitimate application distributor. In addition, when a forged or altered application is distributed by a method such as including malicious code in a correct application, there is a problem in that the user terminal may be exposed to malicious code.

그리고, 인증 서버가 사용자 단말로부터 어플리케이션 관련 패킷을 수신하는 과정에서, 인증 서버가 수신하는 어플리케이션 관련 패킷이 악의적 사용자에 의하여 위조 또는 변조될 수 있는 문제점도 있다. 이를 방지하기 위하여 여러가지 암호화 방식이 사용되고 있는데, 공개키 암호화 방식도 그 중 하나이다. 공개키 암호화 방식은 공개키와 비밀키 두 개의 키를 사용하는데, 공개키를 이용해서 암호화하고 비밀키를 이용해서 복호화하는 방법을 사용한다. 공개키를 이용해서는 암호화된 데이터를 복호화할 수 없다. 따라서, 여러 사람이 공유하는 공개키가 유출되어도 암호화된 데이터의 유출이 문제되지 않는다.In addition, while the authentication server receives an application-related packet from a user terminal, there is a problem in that the application-related packet received by the authentication server may be forged or altered by a malicious user. Various encryption methods are used to prevent this, and public key encryption is one of them. The public key encryption method uses two keys, a public key and a private key, which uses a public key to encrypt and a private key to decrypt. The encrypted data cannot be decrypted using the public key. Therefore, even if a public key shared by several people is leaked, the leak of encrypted data is not a problem.

그러나, 공개키 방식을 사용하더라도 사용자 단말이 어플리케이션 관련 패킷을 인증 서버로 송신하는 과정에서, 어플리케이션 관련 패킷을 수정하거나 거짓 어플리케이션 관련 패킷을 생성하는 악의적 사용자에 의한 중간자 공격(MITM; MAN IN THE MIDDLE)에 의하여 인증 서버는 잘못된 어플리케이션 관련 패킷을 수신할 수 있는 문제점이 여전히 존재한다. 또한, 인증 서버는 유효한 메시지를 복제하여 재송신된 유효한 메시지로 가장된 어플리케이션 관련 패킷 공격인 재전송 공격(REPLAY ATTACK)에 노출될 수 있는 문제점도 존재한다.However, even if the public key method is used, a man-in-the-middle attack (MITM; MAN IN THE MIDDLE) by a malicious user who modifies the application-related packet or creates a false application-related packet while the user terminal transmits the application-related packet to the authentication server. Accordingly, there is still a problem in that the authentication server may receive an incorrect application-related packet. In addition, there is a problem that the authentication server may be exposed to a replay attack (REPLAY ATTACK), which is an application-related packet attack disguised as a retransmitted valid message by replicating a valid message.

본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다. 또 다른 목적은 사용자 단말이 수신하는 어플리케이션의 위조 또는 변조 여부를 판단할 수 있는 방법 및 그 시스템을 제공함에 있다. 그리고, 사용자 단말이 인증 서버로 송신하는 어플리케이션 관련 패킷의 유효성을 인증할 수 있는 방법 및 그 시스템을 제공함에 있다.It is an object of the present invention to solve the above and other problems. Another object is to provide a method and a system for determining whether an application received by a user terminal is forged or altered. In addition, to provide a method and a system for authenticating the validity of an application-related packet transmitted from a user terminal to an authentication server.

상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 송수신부, 제어부, 메모리 및 제1 변형 데이터 생성부를 포함하는 사용자 단말이 어플리케이션 위변조 여부를 판단하는 방법에 있어서, 상기 제1 변형 데이터 생성부가 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 로직으로 변형하여 제1 변형 데이터를 생성하여 상기 제어부로 송신하는 단계; 상기 제어부가 상기 메모리에 저장된 상기 어플리케이션으로부터 상기 어플리케이션에 포함된 사용자 개인키에서 제2 변형 데이터를 추출하는 단계; 및 상기 제어부가 상기 수신된 제1 변형 데이터와 상기 추출된 제2 변형 데이터의 동일성 여부를 확인하는 단계;를 포함하는 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법을 제공한다.In order to achieve the above or other objects, according to an aspect of the present invention, in a method for determining whether an application is forged or altered by a user terminal including a transmission/reception unit, a control unit, a memory, and a first modified data generation unit, the first modified data is generated Generating first modified data by transforming additional application meta information and developer signature information into preset logic and transmitting the first modified data to the control unit; Extracting, by the control unit, second modified data from the user private key included in the application from the application stored in the memory; And checking, by the control unit, whether the received first modified data and the extracted second modified data are identical to each other. It provides a method for determining application forgery and alteration using a user private key.

그리고, 본 발명의 또 다른 일 측면에 따르면, 사용자 개인키를 활용하여 어플리케이션 위변조 여부를 판단하는 사용자 단말에 있어서, 어플리케이션 배포자로부터 어플리케이션을 수신하는 송수신부; 상기 수신된 어플리케이션이 저장되는 메모리; 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 로직으로 변형하여 제1 변형 데이터를 생성하고, 상기 생성된 제1 변형 데이터를 상기 제어부로 송신하는 제1 변형 데이터 생성부; 및 상기 송수신부로부터 수신된 어플리케이션을 메모리에 저장하고, 상기 메모리에 저장된 어플리케이션으로부터 상기 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 추출하여 상기 제1 변형 데이터 생성부로 송신하며, 상기 메모리에 저장된 어플리케이션으로부터 제2 변형 데이터를 추출하고, 상기 제1 변형 데이터 생성부로부터 수신된 상기 제1 변형 데이터와 상기 메모리로부터 추출된 상기 제2 변형 데이터의 동일성 여부를 판단하여 상기 메모리에 저장된 어플리케이션의 위변조 여부를 판단하는 제어부;를 포함하는 것을 특징으로 하는 사용자 단말을 제공한다.In addition, according to another aspect of the present invention, there is provided a user terminal for determining whether an application is forged or altered using a user private key, comprising: a transmission/reception unit for receiving an application from an application distributor; A memory in which the received application is stored; A first modified data generator configured to generate first modified data by transforming application meta information and developer signature information into preset logic, and transmitting the generated first modified data to the control unit; And storing the application received from the transmitting/receiving unit in a memory, extracting the application meta information and the developer signature information from the application stored in the memory, and transmitting the extracted application meta information to the first modified data generating unit, and transmitting the second modified data generation unit from the application stored in the memory. A control unit that extracts transformed data, determines whether the first transformed data received from the first transformed data generating unit and the second transformed data extracted from the memory are identical to determine whether the application stored in the memory is forged or altered It provides a user terminal comprising;

또한, 본 발명의 또 다른 일 측면에 따르면, 송수신부, 제어부, DB, 제2 변형 데이터 생성부 및 공개키 생성부를 포함하는 인증 서버가 사용자 개인키를 생성하는 방법에 있어서, 상기 제2 변형 데이터 생성부가 어플리케이션 메타 정보 및 개발자 서명 정보를 변형하여 제2 변형 데이터를 생성하는 단계; 상기 공개키 생성부가 공개키 및 비밀키를 생성하는 단계; 및 상기 제어부가 상기 제2 변형 데이터 및 상기 공개키를 포함하는 사용자 개인키 를 생성하는 단계;를 포함하는 것을 특징으로 하는 사용자 개인키 생성 방법을 제공한다.In addition, according to another aspect of the present invention, in a method for generating a user private key by an authentication server including a transmission/reception unit, a control unit, a DB, a second modified data generation unit, and a public key generation unit, the second modified data Generating, by a generator, the application meta information and the developer signature information to generate second modified data; Generating a public key and a private key by the public key generation unit; And generating, by the control unit, a user private key including the second modified data and the public key.

또, 본 발명의 또 다른 일 측면에 따르면, 어플리케이션 배포자로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 수신하고, 상기 어플리케이션 배포자에게 제어부에의해 생성된 사용자 개인키를 송신하는 송수신부; 상기 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 변형하여 변형 데이터를 생성하는 제2 변형 데이터 생성부; 공개키 및 비밀키를 생성하는 공개키 생성부; 상기 변형 데이터 및 상기 공개키를 포함하는 사용자 개인키를 생성하고 상기 생성된 사용자 개인키를 DB에 저장하며, 상기 송수신부를 통하여 상기 생성된 사용자 개인키를 상기 어플리케이션 배포자에게 송신하는 제어부; 및 상기 어플리케이션 메타 정보, 상기 개발자 서명 정보 및 상기 생성된 사용자 개인키가 저장되는 DB;를 포함하는 것을 특징으로 하는 인증 서버를 제공한다.In addition, according to another aspect of the present invention, a transmitting and receiving unit for receiving application meta information and developer signature information from an application distributor, and transmitting a user private key generated by the control unit to the application distributor; A second modified data generator configured to generate modified data by modifying the application meta information and the developer signature information; A public key generation unit that generates a public key and a private key; A control unit for generating a user private key including the modified data and the public key, storing the generated user private key in a DB, and transmitting the generated user private key to the application distributor through the transmission/reception unit; And a DB in which the application meta information, the developer signature information, and the generated user private key are stored.

또, 본 발명의 또 다른 일 측면에 따르면, 송수신부, 제어부, 메모리 및 동적 토큰 생성부를 포함하는 사용자 단말이 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 인증 서버로 송신하는 어플리케이션 관련 패킷의 유효성을 인증하는 방법에 있어서, 상기 동적 토큰 생성부가 메모리에 저장된 어플리케이션 메타 정보, 시각 정보 및 메모리에 저장된 공개키를 이용하여 동적 토큰을 생성하여 상기 제어부로 송신하는 단계; 상기 제어부가 상기 수신한 동적 토큰, 상기 공개키 및 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷을 생성하는 단계; 및 상기 제어부가 상기 어플리케이션 관련 패킷 및 상기 시각 정보를 송수신부를 통하여 인증 서버로 송신하는 단계;를 포함하는 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법을 제공한다.In addition, according to another aspect of the present invention, a user terminal including a transmission/reception unit, a control unit, a memory, and a dynamic token generation unit uses a dynamic token generated using a user private key to transmit an application-related packet to the authentication server. A method of authenticating validity, the method comprising: generating a dynamic token using application meta information, time information, and a public key stored in the memory by the dynamic token generating unit and transmitting it to the controller; Generating, by the control unit, an application-related packet including the received dynamic token, the public key, and transmission target data; And transmitting, by the control unit, the application-related packet and the time information to an authentication server through a transmitting/receiving unit; authenticating the validity of the application-related packet using a dynamic token generated using a user private key. Provides a way to do it.

또, 본 발명의 또 다른 일 측면에 따르면, 사용자 단말과 인증 서버 간 어플리케이션 관련 패킷 유효성을 인증하기 위하여 사용자 개인키를 활용한 동적 토큰을 생성하는 사용자 단말에 있어서, 어플리케이션 및 상기 인증 서버로 송신되는 전송 대상 데이터가 저장되는 메모리; 메모리에 저장된 어플리케이션 메타 정보, 시각 정보 및 메모리에 저장된 사용자 개인키에 포함된 공개키를 동적 토큰 생성부로 송신하고, 상기 동적 토큰 생성부로부터 수신한 동적 토큰, 상기 공개키 및 상기 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷 및 상기 시각 정보를 송수신부를 통하여 상기 인증 서버로 송신하는 제어부; 상기 제어부로부터 상기 어플리케이션 메타 정보, 상기 시각 정보 및 상기 공개키를 수신하여 동적 토큰을 생성하고, 상기 생성된 동적 토큰을 상기 제어부로 송신하는 동적 토큰 생성부; 및 상기 제어부로부터 수신한 상기 어플리케이션 관련 패킷 및 상기 시각 정보를 상기 인증 서버로 송신하는 송수신부;를 포함하는 것을 특징으로 하는 사용자 단말을 제공한다.In addition, according to another aspect of the present invention, in the user terminal generating a dynamic token using a user private key to authenticate the validity of an application-related packet between the user terminal and the authentication server, the application and the authentication server A memory for storing data to be transmitted; The application meta information stored in the memory, time information, and the public key included in the user private key stored in the memory are transmitted to the dynamic token generation unit, and the dynamic token received from the dynamic token generation unit, the public key, and the transmission target data are included. A control unit for transmitting the application-related packet and the time information to the authentication server through a transmission/reception unit; A dynamic token generator configured to generate a dynamic token by receiving the application meta information, the time information, and the public key from the controller, and transmitting the generated dynamic token to the controller; And a transmitting/receiving unit for transmitting the application-related packet and the time information received from the control unit to the authentication server.

또한, 본 발명의 또 다른 일 측면에 따르면, 어플리케이션 배포자, 사용자 단말 및 인증 서버를 포함하는 어플리케이션 유효성 인증 시스템에 있어서, 상기 어플리케이션 배포자로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 수신하고, 상기 수신된 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 변형하여 생성한 제2 변형 데이터와 공개키를 포함하는 사용자 개인키를 상기 어플리케이션 배포자에게 송신하는 인증 서버; 어플리케이션 메타 정보 및 개발자 서명 정보를 인증 서버로 송신하고, 상기 인증 서버로부터 수신한 사용자 개인키 활용하여 어플리케이션 위변조 여부를 판단할 수 있는 로직이 적용된 어플리케이션을 상기 사용자 단말로 송신하는 어플리케이션 배포자; 및 상기 어플리케이션 배포자로부터 수신한 상기 어플리케이션에 포함된 상기 어플리케이션 메타 정보, 상기 개발자 서명 정보 및 상기 사용자 개인키를 활용하여 상기 수신한 어플리케이션의 위변조 여부를 판단하고, 상기 어플리케이션 메타 정보 및 시각 정보를 상기 사용자 개인키에 포함된 공개키를 이용하여 암호화한 동적 토큰을 활용하여 상기 인증 서버로 송신하는 어플리케이션 관련 패킷의 유효성을 인증하는 사용자 단말;을 포함하는 것을 특징으로 하는 어플리케이션 유효성 인증 시스템을 제공한다.Further, according to another aspect of the present invention, in an application validity authentication system including an application distributor, a user terminal, and an authentication server, application meta information and developer signature information are received from the application distributor, and the received application meta information is received. An authentication server that transmits a user private key including a public key and second modified data generated by modifying information and the developer signature information to the application distributor; An application distributor that transmits application meta information and developer signature information to an authentication server, and transmits an application to the user terminal to which a logic capable of determining whether an application forgery or alteration is applied using a user private key received from the authentication server; And determining whether the received application is forged or altered by using the application meta information included in the application received from the application distributor, the developer signature information, and the user private key, and the application meta information and the time information It provides an application validity authentication system comprising; a user terminal for authenticating the validity of an application-related packet transmitted to the authentication server by using a dynamic token encrypted using a public key included in a private key.

본 발명에 의하면, 사용자 개인키를 활용하여 사용자 단말이 어플리케이션 배포자로부터 수신한 어플리케이션의 위변조 여부를 검증할 수 있어 사용자 단말의 안전한 어플리케이션 사용을 보장받을 수 있는 효과가 있다. According to the present invention, by using the user private key, the user terminal can verify whether the application received from the application distributor is forged or altered, thereby ensuring safe application use by the user terminal.

그리고, 본 발명에 의하면, 인증 서버는 사용자 단말로부터 수신되는 어플리케이션 관련 패킷에 대하여, 어플리케이션 관련 패킷을 수정하거나 거짓 어플리케이션 관련 패킷을 생성하는 악의적 사용자에 의한 중간자 공격(MITM; MAN IN THE MIDDLE)으로부터 안전성을 보장받을 수 있는 효과가 있다.And, according to the present invention, the authentication server is safe from a man-in-the-middle attack (MITM; MAN IN THE MIDDLE) by a malicious user who modifies the application-related packet or generates a false application-related packet with respect to the application-related packet received from the user terminal. There is an effect that can be guaranteed.

또한, 본 발명에 의하면, 인증 서버는 유효한 메시지를 복제하여 재송신된 유효한 메시지로 가장된 어플리케이션 관련 패킷 공격인 재전송 공격(REPLAY ATTACK)으로부터 안전성을 보장받을 수 있는 효과가 있다.In addition, according to the present invention, the authentication server has the effect of being able to guarantee safety from a replay attack (REPLAY ATTACK), an application-related packet attack disguised as a retransmitted valid message by duplicating a valid message.

도 1은 본 발명의 일 실시 예에 따른 어플리케이션 유효성 인증 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 인증 서버를 도시한 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 사용자 단말을 도시한 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 사용자 단말에 포함된 동적 토큰 생성부를 도시한 블록도이다.
도 5는 본 발명의 일 실시 예에 따른 인증 서버가 사용자 개인키를 생성하여 어플리케이션 배포자에게 송신하고, 어플리케이션 배포자가 사용자 개인키 활용 로직이 적용된 어플리케이션을 사용자 단말로 배포하는 과정을 도시한 시그널링 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 사용자 개인키의 구조를 도시한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 사용자 단말이 사용자 개인키를 활용하여 어플리케이션의 위변조 여부를 판단하는 방법을 도시한 순서도이다.
도 8은 본 발명의 일 실시 예에 따른 사용자 단말이 인증 서버로 송신되는 어플리케이션 관련 어플리케이션 관련 패킷의 유효성을 인증하기 위하여 인증 서버로 동적 토큰을 활용한 어플리케이션 관련 패킷 및 시각 정보를 송신하는 시그널링 흐름도이다.
도 9는 본 발명의 일 실시 예에 따른 사용자 단말이 동적 토큰을 생성하는 방법을 도시한 순서도이다.
도 10은 본 발명의 일 실시 예에 따른 동적 토큰을 활용한 어플리케이션 관련 패킷의 구조를 도시한 도면이다.
1 is a diagram illustrating an application validity authentication system according to an embodiment of the present invention.
2 is a block diagram showing an authentication server according to an embodiment of the present invention.
3 is a block diagram illustrating a user terminal according to an embodiment of the present invention.
4 is a block diagram illustrating a dynamic token generator included in a user terminal according to an embodiment of the present invention.
5 is a signaling flow diagram illustrating a process in which an authentication server generates a user private key and transmits it to an application distributor, and the application distributor distributes an application to which the user private key utilization logic is applied to a user terminal according to an embodiment of the present invention. .
6 is a diagram illustrating a structure of a user private key according to an embodiment of the present invention.
7 is a flowchart illustrating a method of determining whether an application is forged or altered by a user terminal using a user private key according to an embodiment of the present invention.
FIG. 8 is a signaling flowchart in which a user terminal transmits application-related packets and time information using a dynamic token to an authentication server in order to authenticate the validity of an application-related application-related packet transmitted to an authentication server according to an embodiment of the present invention. .
9 is a flowchart illustrating a method of generating a dynamic token by a user terminal according to an embodiment of the present invention.
10 is a diagram illustrating a structure of an application-related packet using a dynamic token according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Hereinafter, exemplary embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but identical or similar elements are denoted by the same reference numerals regardless of reference numerals, and redundant descriptions thereof will be omitted. The suffixes "module" and "unit" for components used in the following description are given or used interchangeably in consideration of only the ease of preparation of the specification, and do not have meanings or roles that are distinguished from each other by themselves. In addition, in describing the embodiments disclosed in the present specification, when it is determined that a detailed description of related known technologies may obscure the subject matter of the embodiments disclosed in the present specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are for easy understanding of the embodiments disclosed in the present specification, and the technical idea disclosed in the present specification is not limited by the accompanying drawings, and all modifications included in the spirit and scope of the present invention It should be understood to include equivalents or substitutes.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including ordinal numbers, such as first and second, may be used to describe various elements, but the elements are not limited by the terms. These terms are used only for the purpose of distinguishing one component from another component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. Singular expressions include plural expressions unless the context clearly indicates otherwise.

본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In the present application, terms such as "comprises" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

본 명세서에서 설명되는 단말에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 휴대형 인공지능 스피커 등의 이동 단말이 포함될 수 있다. Terminals described herein include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistants (PDA), a portable multimedia player (PMP), a navigation system, a slate PC, and Tablet PC, ultrabook, wearable device, e.g., smartwatch, smart glass, head mounted display (HMD), portable artificial intelligence speaker Mobile terminals such as, etc. may be included.

그러나, 본 명세서에 기재된 실시 예에 따른 구성은 이동 단말기에만 적용 가능한 경우를 제외하면, 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지, 인공지능 스피커 등과 같은 고정 단말기에도 적용될 수도 있음을 본 기술분야의 당업자라면 쉽게 알 수 있을 것이다.However, those skilled in the art know that the configuration according to the embodiment described in the present specification may also be applied to fixed terminals such as digital TVs, desktop computers, digital signage, artificial intelligence speakers, etc., except when applicable only to mobile terminals. It will be easy to see.

도 1은 본 발명의 일 실시 예에 따른 어플리케이션 유효성 인증 시스템(100)을 도시한 도면이다.1 is a diagram illustrating an application validity authentication system 100 according to an embodiment of the present invention.

도 1을 참조하면, 어플리케이션 유효성 인증 시스템(100)은 인증 서버(200), 사용자 단말(300) 및 어플리케이션 배포자(110)의 조합으로 구성될 수 있다. 도 1을 참조하여 본 발명에 따른 어플리케이션 유효성 인증 시스템(100)의 일 실시 예를 간단하게 설명한다. Referring to FIG. 1, the application validity authentication system 100 may be configured with a combination of an authentication server 200, a user terminal 300, and an application distributor 110. An embodiment of an application validity authentication system 100 according to the present invention will be briefly described with reference to FIG. 1.

인증 서버(200)는 어플리케이션 배포자(110)로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 수신할 수 있고, 수신된 어플리케이션 메타 정보 및 개발자 서명 정보를 변형하여 제2 변형 데이터를 생성할 수 있으며, 공개키/비밀키를 생성할 수 있고, 상기 생성한 제2 변형 데이터 및 상기 공개키를 포함하는 사용자 개인키를 어플리케이션 배포자(110)에게 송신할 수 있다. The authentication server 200 may receive application meta information and developer signature information from the application distributor 110, may generate second modified data by modifying the received application meta information and developer signature information, and generate a public key/ A private key may be generated, and a user private key including the generated second modified data and the public key may be transmitted to the application distributor 110.

어플리케이션 배포자(110)는 사용자 개인키 생성을 위한 어플리케이션 메타 정보 및 개발자 서명 정보를 인증 서버(200)로 송신할 수 있고, 상기 인증 서버(200)로부터 수신한 사용자 개인키 활용하여 어플리케이션 위변조 여부를 판단할 수 있는 로직이 적용된 어플리케이션을 상기 사용자 단말(300)로 송신하여 배포할 수 있다. The application distributor 110 may transmit application meta information and developer signature information for generating a user private key to the authentication server 200, and determine whether the application is forged or altered using the user private key received from the authentication server 200. An application to which a possible logic is applied may be transmitted to the user terminal 300 and distributed.

사용자 단말(300)은 어플리케이션 배포자(110)로부터 어플리케이션을 수신할 수 있고, 수신한 어플리케이션에 포함된 어플리케이션 메타 정보, 개발자 서명 정보 및 사용자 개인키를 활용하여 수신한 어플리케이션의 위변조 여부를 판단할 수 있으며, 인증 서버(200)로 어플리케이션과 관련된 어플리케이션 관련 패킷을 송신할 때, 인증 서버(200)로 송신하는 어플리케이션 관련 패킷의 유효성을 인증하기 위하여 어플리케이션 메타 정보 및 시각 정보를 상기 사용자 개인키에 포함된 공개키를 이용하여 암호화한 동적 토큰을 활용하여, 동적 토큰 및 전송 대상 데이터를 포함한 어플리케이션 관련 패킷을 시각 정보와 함께 인증 서버(200)로 송신할 수 있다. The user terminal 300 may receive an application from the application distributor 110, and may determine whether or not the received application is forged or altered using application meta information, developer signature information, and user private key included in the received application. , When transmitting an application-related packet related to an application to the authentication server 200, disclose application meta information and time information included in the user private key to authenticate the validity of the application-related packet transmitted to the authentication server 200 Using the dynamic token encrypted using the key, an application-related packet including the dynamic token and the transmission target data may be transmitted to the authentication server 200 together with time information.

인증 서버(200)는 상기 수신한 어플리케이션 메타 정보, 시각 정보 및 공개키를 이용하여 동적 토큰의 유효성을 인증하여 함께 수신된 전송 대상 데이터의 유효성을 인증할 수 있다. The authentication server 200 may authenticate the validity of the dynamic token using the received application meta information, time information, and public key to authenticate the validity of the transmission target data received together.

그리고, 사용자 단말(300)은 상기 어플리케이션 관련 패킷에 동적 토큰의 TTL(TIME TO LIVE) 정보를 함께 포함하여 송신할 수 있고, 인증 서버(200)는 상기 수신한 동적 토큰의 TTL 정보와 시각 정보를 이용하여 동적 토큰의 유효성을 한번 더 확인할 수 있다.In addition, the user terminal 300 may transmit the application-related packet by including TTL (TIME TO LIVE) information of the dynamic token together, and the authentication server 200 transmits the TTL information and time information of the received dynamic token. You can check the validity of the dynamic token once more.

도 2는 본 발명의 일 실시 예에 따른 인증 서버(200)를 도시한 블록도이다.2 is a block diagram showing an authentication server 200 according to an embodiment of the present invention.

도 2를 참조하여 본 발명의 일 실시 예에 따른 인증 서버(200)를 보다 자세하게 설명하면, 인증 서버(200)는 송수신부(210), 제어부(220), DB(230), 제2 변형 데이터 생성부(240) 및 공개키 생성부(250)를 포함할 수 있다. When describing the authentication server 200 according to an embodiment of the present invention in more detail with reference to FIG. 2, the authentication server 200 includes a transmission/reception unit 210, a control unit 220, a DB 230, and a second modified data. It may include a generator 240 and a public key generator 250.

송수신부(210)는 어플리케이션 배포자(110)로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 수신할 수 있고, 상기 어플리케이션 배포자(110)에게 제어부(220)에의해 생성된 사용자 개인키를 송신할 수 있으며, 사용자 단말(300)로부터 어플리케이션 관련 패킷 및 시각 정보를 수신할 수 있고, 사용자 단말(300)로 어플리케이션 관련 패킷을 송신할 수 있다. The transmission/reception unit 210 may receive application meta information and developer signature information from the application distributor 110, and may transmit a user private key generated by the control unit 220 to the application distributor 110, and the user Application-related packets and time information may be received from the terminal 300, and application-related packets may be transmitted to the user terminal 300.

제2 변형 데이터 생성부(240)는 어플리케이션 메타 정보 및 개발자 서명 정보를 변형하여 변형 데이터를 생성할 수 있다. 보다 자세하게, 제2 변형 데이터 생성부(240)는 제어부(220)에 의하여 DB(230)에 저장된 어플리케이션 메타 정보 및 개발자 서명 정보를 수신할 수 있고, 수신된 어플리케이션 메타 정보 및 개발자 서명 정보를 이용하여 변형된 변형 데이터를 생성할 수 있다. 상기 변형 방법은 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 규칙에 의하여 결합한 후 변형하는 방법일 수 있는데, 상기 결합 방법은 단순히 상기 어플리케이션 메타 정보 및 개발자 서명 정보를 단순히 나열하여 결합하는 방법일 수 있고, 어플리케이션 메타 정보 및 개발자 서명 정보와 함께 특정 데이터를 삽입하여 결합하는 방법일 수 있으며, 그 외 어플리케이션 메타 정보 및 개발자 서명 정보가 포함될 수 있는 다양한 방법으로 결합될 수 있다. 그리고, 상기 결합된 정보를 변형하는 방법에 있어서, 상기 결합된 정보를 단방향 HASH 처리하는 방법일 수 있고, 인코딩 처리하는 방법일 수 있으며, 공개키/비밀키를 이용하여 암호화 처리하는 방법일 수 있다. The second modified data generator 240 may generate modified data by modifying application meta information and developer signature information. In more detail, the second modified data generation unit 240 may receive application meta information and developer signature information stored in the DB 230 by the control unit 220, and use the received application meta information and developer signature information. You can create transformed transform data. The transformation method may be a method of combining application meta information and developer signature information according to a preset rule and then transforming it. The combining method may be a method of simply listing and combining the application meta information and developer signature information, It may be a method of inserting and combining specific data together with application meta information and developer signature information, and may be combined in various ways that may include application meta information and developer signature information. In addition, in the method of transforming the combined information, it may be a one-way HASH processing method of the combined information, an encoding processing method, and an encryption method using a public key/private key. .

공개키 생성부(250)는 공개키 및 비밀키를 생성할 수 있다. 상기 생성된 공개키 및 비밀키는 제어부(220)에 의해 DB(230)에 저장될 수 있다.The public key generation unit 250 may generate a public key and a private key. The generated public key and private key may be stored in the DB 230 by the control unit 220.

제어부(220)는 제2 변형 데이터 생성부(240)에의해 생성된 제2 변형 데이터 및 공개키 생성부(250)에의해 생성된 공개키를 포함하는 사용자 개인키를 생성할 수 있고, 상기 생성된 사용자 개인키를 DB(230)에 저장할 수 있으며, 상기 생성된 사용자 개인키를 송수신부(210)를 통하여 상기 어플리케이션 배포자(110)에게 송신할 수 있고, 사용자 단말(300)로부터 수신된 어플리케이션 관련 패킷, 시각 정보 및 TTL 정보를 이용하여 어플리케이션 관련 패킷의 유효성을 인증할 수 있다.The control unit 220 may generate a user private key including the second modified data generated by the second modified data generation unit 240 and the public key generated by the public key generation unit 250, and generate the The generated user private key may be stored in the DB 230, and the generated user private key may be transmitted to the application distributor 110 through the transceiver 210, and related to the application received from the user terminal 300. Validity of an application-related packet can be authenticated using the packet, time information, and TTL information.

DB(230)에는 어플리케이션 배포자(110)로부터 수신된 어플리케이션 메타 정보 및 개발자 정보가 저장될 수 있고, 제어부(220)에 의해 생성된 사용자 개인키 가 저장될 수 있으며, 사용자 단말(300)로부터 수신된 어플리케이션 관련 패킷, 시각 정보 및 TTL 정보가 저장될 수 있다.In the DB 230, application meta information and developer information received from the application distributor 110 may be stored, a user private key generated by the control unit 220 may be stored, and the received from the user terminal 300 may be stored. Application-related packets, time information, and TTL information may be stored.

도 3은 본 발명의 일 실시 예에 따른 사용자 단말(300)을 도시한 블록도이다. 3 is a block diagram illustrating a user terminal 300 according to an embodiment of the present invention.

도 3을 참조하여 본 발명의 일 실시 예에 따른 사용자 단말(300)을 보다 자세하게 설명하면, 사용자 단말(300)은 송수신부(310), 제어부(320), 메모리(330), 제1 변형 데이터 생성부(340) 및 동적 토큰 생성부(350)를 포함할 수 있다. When describing the user terminal 300 according to an embodiment of the present invention in more detail with reference to FIG. 3, the user terminal 300 includes a transmission/reception unit 310, a control unit 320, a memory 330, and a first modified data. A generation unit 340 and a dynamic token generation unit 350 may be included.

송수신부(310)는 어플리케이션 배포자(110)로부터 어플리케이션을 수신할 수 있고, 인증 서버(200)로 동적 토큰, 공개키, TTL(TIME TO LIVE) 정보 및 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷 및 시각 정보를 송신할 수 있다.The transmission/reception unit 310 may receive an application from the application distributor 110, and the authentication server 200 includes a dynamic token, a public key, a time to live (TTL) information, and an application-related packet and time including transmission target data. You can send information.

제1 변형 데이터 생성부(340)는 제어부(320)로부터 메모리(330)에 저장된 어플리케이션 메타 정보 및 개발자 서명 정보를 수신하여 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 로직으로 변형하여 제1 변형 데이터를 생성할 수 있고, 상기 생성된 제1 변형 데이터를 상기 제어부(320)로 송신할 수 있다. 제1 변형 데이터 생성부(340)는 상기 인증 서버(200)의 제2 변형 데이터 생성부(240)와 동일한 방법으로 변형 데이터를 생성할 수 있다. 보다 자세하게 설명하면, 제1 변형 데이터 생성부(340)는 제어부(320)에 의하여 메모리(330)에 저장된 어플리케이션에 포함되어 있는 어플리케이션 메타 정보 및 개발자 서명 정보를 수신할 수 있고, 수신된 어플리케이션 메타 정보 및 개발자 서명 정보를 이용하여 변형된 변형 데이터를 생성할 수 있다. 상기 변형 방법은 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 규칙에 의하여 결합한 후 변형하는 방법일 수 있는데, 상기 결합 방법은 단순히 상기 어플리케이션 메타 정보 및 개발자 서명 정보를 단순히 나열하여 결합하는 방법일 수 있고, 어플리케이션 메타 정보 및 개발자 서명 정보와 함께 특정 데이터를 삽입하여 결합하는 방법일 수 있으며, 그 외 어플리케이션 메타 정보 및 개발자 서명 정보가 포함될 수 있는 다양한 방법으로 결합될 수 있다. 그리고, 상기 결합된 정보를 변형하는 방법에 있어서, 상기 결합된 정보를 단방향 HASH 처리하는 방법일 수 있고, 인코딩 처리하는 방법일 수 있으며, 공개키/비밀키를 이용하여 암호화 처리하는 방법일 수 있다.The first modified data generation unit 340 receives application meta information and developer signature information stored in the memory 330 from the control unit 320 and transforms the application meta information and developer signature information into preset logic to convert the first modified data. May be generated, and the generated first modified data may be transmitted to the control unit 320. The first modified data generation unit 340 may generate the modified data in the same manner as the second modified data generation unit 240 of the authentication server 200. In more detail, the first modified data generation unit 340 may receive application meta information and developer signature information included in an application stored in the memory 330 by the control unit 320, and received application meta information And it is possible to generate the modified modified data by using the developer signature information. The transformation method may be a method of combining application meta information and developer signature information according to a preset rule and then transforming it. The combining method may be a method of simply listing and combining the application meta information and developer signature information, It may be a method of inserting and combining specific data together with application meta information and developer signature information, and may be combined in various ways that may include application meta information and developer signature information. In addition, in the method of transforming the combined information, it may be a one-way HASH processing method of the combined information, an encoding processing method, and an encryption method using a public key/private key. .

제어부(320)는 상기 송수신부(310)로부터 수신된 어플리케이션을 메모리(330)에 저장할 수 있고, 상기 메모리(330)에 저장된 어플리케이션으로부터 상기 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 추출하여 상기 제1 변형 데이터 생성부(340)로 송신할 수 있으며, 상기 메모리(330)에 저장된 어플리케이션에 포함된 사용자 개인키로부터 제2 변형 데이터를 추출할 수 있고, 상기 제1 변형 데이터 생성부(340)로부터 수신된 상기 제1 변형 데이터와 상기 메모리(330)에 저장된 사용자 개인키로부터 추출된 상기 제2 변형 데이터의 동일성 여부를 판단하여 상기 메모리(330)에 저장된 어플리케이션의 위변조 여부를 판단할 수 있다. 그리고, 제어부(320)는 메모리(330)에 저장된 어플리케이션 메타 정보, 시각 정보 및 메모리(330)에 저장된 사용자 개인키에 포함된 공개키를 동적 토큰 생성부(350)로 송신할 수 있고, 상기 동적 토큰 생성부(350)로부터 수신한 동적 토큰, 메모리(330)에 저장된 상기 공개키 및 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷 및 상기 시각 정보를 송수신부(310)를 통하여 상기 인증 서버(200)로 송신할 수 있다. 또한, 제어부(320)는 시각 정보를 생성할 수 있는데, 상기 시각 정보는 제어부가 상기 공개키 및 상기 어플리케이션 메타 정보를 동적 토큰 생성부로 송신할 때의 시각 정보이거나 어플리케이션 관련 패킷의 TTL 정보일 수 있다.The control unit 320 may store the application received from the transmission/reception unit 310 in the memory 330, and extract the application meta information and the developer signature information from the application stored in the memory 330 to modify the first It can be transmitted to the data generating unit 340, the second modified data can be extracted from the user private key included in the application stored in the memory 330, and received from the first modified data generating unit 340 By determining whether the first modified data and the second modified data extracted from the user private key stored in the memory 330 are identical to each other, it may be determined whether the application stored in the memory 330 is forged or altered. In addition, the control unit 320 may transmit application meta information stored in the memory 330, time information, and a public key included in the user private key stored in the memory 330 to the dynamic token generator 350, and the dynamic The dynamic token received from the token generation unit 350, the application-related packet including the public key and transmission target data stored in the memory 330, and the time information are transmitted to the authentication server 200 through the transmission/reception unit 310. Can send. In addition, the control unit 320 may generate time information, which may be time information when the control unit transmits the public key and the application meta information to the dynamic token generator or TTL information of an application-related packet. .

동적 토큰 생성부(350)는 제어부(320)로부터 어플리케이션 메타 정보, 시각 정보 및 공개키를 수신하여 동적 토큰을 생성할 수 있고, 생성된 동적 토큰을 제어부(320)로 송신할 수 있다. The dynamic token generator 350 may generate a dynamic token by receiving application meta information, time information, and a public key from the controller 320 and transmit the generated dynamic token to the controller 320.

메모리(330)에는 어플리케이션 배포자(110)로부터 수신된 어플리케이션이 저장될 수 있고, 상기 어플리케이션에는 어플리케이션 메타 정보, 상기 개발자 서명 정보 및 사용자 개인키가 포함될 수 있으며, 상기 사용자 개인키에는 제2 변형 데이터 및 공개키가 포함될 수 있다. 그리고, 메모리(330)에는 인증 서버(200)로 송신되는 전송 대상 데이터가 저장될 수 있다.The application received from the application distributor 110 may be stored in the memory 330, the application may include application meta information, the developer signature information, and a user private key, and the user private key may contain second modified data and Public key may be included. In addition, transmission target data transmitted to the authentication server 200 may be stored in the memory 330.

상기 제1 변형 데이터 생성부(340) 및 동적 토큰 생성부(350)는 상기에서 기술된 바와 같이, 각각 독립적인 모듈로 제어부(320)에 의해 제어될 수 있고, 또는, 제1 변형 데이터 생성부(340), 동적 토큰 생성부(350) 및 제어부(320)는 하나의 제어부(320) 모듈로 구현될 수 있다.As described above, the first modified data generation unit 340 and the dynamic token generation unit 350 may be controlled by the control unit 320 as independent modules, respectively, or the first modified data generation unit The dynamic token generation unit 350 and the control unit 320 may be implemented as a single control unit 320 module.

도 4는 본 발명의 일 실시 예에 따른 사용자 단말(300)에 포함된 동적 토큰 생성부(350)를 도시한 블록도이다. 4 is a block diagram illustrating a dynamic token generator 350 included in the user terminal 300 according to an embodiment of the present invention.

도 4를 참조하여 본 발명의 일 실시 예에 따른 동적 토큰 생성부(350)를 보다 자세하게 설명하면, 동적 토큰 생성부(350)는 어플리케이션 메타 정보 변형부(351), 조합 정보 생성부(352) 및 암호화부(353)를 포함할 수 있다. Referring to FIG. 4, the dynamic token generation unit 350 according to an embodiment of the present invention will be described in more detail. The dynamic token generation unit 350 includes an application meta information transformation unit 351 and a combination information generation unit 352 And an encryption unit 353.

어플리케이션 메타 정보 변형부(351)는 제어부(320)로부터 수신한 어플리케이션 메타 정보를 1차 처리할 수 있다. 1차 처리는 단방향 HASH 처리, 인코딩 처리 및 공개키를 이용한 암호화 처리 중 어느 하나의 처리일 수 있다. The application meta information transforming unit 351 may primary process the application meta information received from the control unit 320. The primary processing may be any one of one-way HASH processing, encoding processing, and encryption processing using a public key.

조합 정보 생성부(352)는 상기 1차 처리된 어플리케이션 메타 정보를 상기 제어부(320)로부터 수신한 시각 정보와 2차 처리하여 조합 정보를 생성할 수 있다. 2차 처리는 시각 정보를 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하여, 보정된 시각 정보를 1차 처리된 어플리케이션 메타 정보와 연산하는 방법일 수 있다. The combination information generation unit 352 may generate combination information by secondary processing the first processed application meta information with the visual information received from the control unit 320. The secondary processing may be a method of correcting the visual information to have the same length as the primary processed application meta information, and calculating the corrected visual information with the primary processed application meta information.

상기 시각 정보를 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 방법의 일 예로, 시각 정보에 기 저장된 로직에 따른 특정 정보를 더하여 상기 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 방법일 수 있고, 시각 정보에 '0'을 더하여 상기 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 방법일 수 있으며(ZERO PADDING), 시각 정보에 '1'을 더하여 상기 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 방법일 수 있다.As an example of a method of correcting the time information to have the same length as the primary processed application meta information, a method of adding specific information according to pre-stored logic to the time information and correcting it to the same length as the first processed application meta information It may be a method of correcting to the same length as the primary processed application meta information by adding '0' to the time information (ZERO PADDING), and the primary processed application meta information by adding '1' to the time information It may be a method of correcting to the same length as.

상기 보정된 시각 정보를 1차 처리된 어플리케이션 메타 정보와 연산하는 방법은 논리 연산 중 어느 하나의 연산일 수 있는데, 그 일 예로 보정된 시각 정보를 1차 처리된 어플리케이션 메타 정보와 XOR 연산하는 방법일 수 있다.A method of calculating the corrected time information with the primary processed application meta information may be any one of logical operations, for example, a method of calculating the corrected time information with the primary processed application meta information I can.

암호화부(353)는 상기 생성된 조합 정보를 제어부(320)로부터 수신한 공개키로 암호화 처리하여 동적 토큰을 생성할 수 있다.The encryption unit 353 may generate a dynamic token by encrypting the generated combination information with the public key received from the control unit 320.

도 4에 도시된 바와 같이, 동적 토큰 생성부(350)는 어플리케이션 메타 정보 변형부(351), 조합 정보 생성부(352) 및 암호화부(353)를 포함하는 하나의 모듈로 구성될 수도 있고, 또는, 사용자 단말(300) 내에서 어플리케이션 메타 정보 변형부(351), 조합 정보 생성부(352) 및 암호화부(353)가 각각 독립적인 모듈로 구성되어 기능할 수도 있다.As shown in FIG. 4, the dynamic token generation unit 350 may be composed of one module including an application meta information transformation unit 351, a combination information generation unit 352, and an encryption unit 353, Alternatively, in the user terminal 300, the application meta information transforming unit 351, the combination information generating unit 352, and the encryption unit 353 may be configured as independent modules to function.

도 5는 본 발명의 일 실시 예에 따른 인증 서버(200)가 사용자 개인키 를 생성하여 어플리케이션 배포자(110)에게 송신하고, 어플리케이션 배포자(110)가 사용자 개인키 활용 로직이 적용된 어플리케이션을 사용자 단말(300)로 배포하는 과정을 도시한 시그널링 흐름도이다.FIG. 5 shows that the authentication server 200 according to an embodiment of the present invention generates a user private key and transmits it to the application distributor 110, and the application distributor 110 transmits an application to which the user private key utilization logic is applied to a user terminal ( 300) is a signaling flow diagram showing a distribution process.

이하, 도 5를 참조하여 본 발명의 일 실시 예에 따른 인증 서버(200)가 사용자 개인키를 생성하고, 사용자 개인키를 수신한 어플리케이션 배포자(110)가 사용자 단말(300)로 어플리케이션을 배포하는 방법에 대하여 자세하게 설명한다.Hereinafter, with reference to FIG. 5, the authentication server 200 according to an embodiment of the present invention generates a user private key, and the application distributor 110 receiving the user private key distributes the application to the user terminal 300. The method will be described in detail.

송수신부(210), 제어부(220), DB(230), 제2 변형 데이터 생성부(240) 및 공개키 생성부(250)를 포함하는 인증 서버(200)가 사용자 개인키를 생성하는 방법에 있어서, 인증 서버(200)의 송수신부(210)가 어플리케이션 배포자(110)로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 수신할 수 있다(S510). The authentication server 200 including the transmission/reception unit 210, the control unit 220, the DB 230, the second modified data generation unit 240, and the public key generation unit 250 generates a user private key. Thus, the transmission/reception unit 210 of the authentication server 200 may receive application meta information and developer signature information from the application distributor 110 (S510).

제2 변형 데이터 생성부(240)는 상기 수신된 어플리케이션 메타 정보 및 개발자 서명 정보를 변형하여 제2 변형 데이터를 생성할 수 있다(S520). 보다 자세하게 설명하면, 제1 변형 데이터 생성부(340)는 제어부(320)에 의하여 메모리(330)에 저장된 어플리케이션에 포함되어 있는 어플리케이션 메타 정보 및 개발자 서명 정보를 수신할 수 있고, 수신된 어플리케이션 메타 정보 및 개발자 서명 정보를 이용하여 변형된 변형 데이터를 생성할 수 있다. 상기 변형 방법은 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 규칙에 의하여 결합한 후 변형할 수 있는데, 상기 결합 방법은 단순히 상기 어플리케이션 메타 정보 및 개발자 서명 정보를 단순히 나열하여 결합하는 방법일 수 있고, 어플리케이션 메타 정보 및 개발자 서명 정보와 함께 특정 데이터를 삽입하여 결합하는 방법일 수 있으며, 그 외 어플리케이션 메타 정보 및 개발자 서명 정보가 포함될 수 있는 다양한 방법으로 결합될 수 있다. 그리고, 상기 결합된 정보를 변형하는 방법에 있어서, 상기 결합된 정보를 단방향 HASH 처리하는 방법일 수 있고, 인코딩 처리하는 방법일 수 있으며, 공개키/비밀키를 이용하여 암호화 처리하는 방법일 수 있다.The second modified data generator 240 may generate second modified data by modifying the received application meta information and developer signature information (S520). In more detail, the first modified data generation unit 340 may receive application meta information and developer signature information included in an application stored in the memory 330 by the control unit 320, and received application meta information And it is possible to generate the modified modified data by using the developer signature information. The transformation method may be modified after combining application meta information and developer signature information according to a preset rule, and the combining method may be a method of simply listing and combining the application meta information and developer signature information. It may be a method of inserting and combining specific data together with information and developer signature information, and may be combined in various ways in which application meta information and developer signature information may be included. In addition, in the method of transforming the combined information, it may be a one-way HASH processing method of the combined information, an encoding processing method, and an encryption method using a public key/private key. .

공개키 생성부(250)가 공개키 및 비밀키를 생성할 수 있다(S530).The public key generation unit 250 may generate a public key and a private key (S530).

제어부(220)는 상기 제2 변형 데이터 및 상기 공개키를 포함하는 사용자 개인키를 생성할 수 있다(S540). 제어부(220)는 상기 생성된 사용자 개인키를 DB(230)에 저장할 수 있다.The control unit 220 may generate a user private key including the second modified data and the public key (S540). The controller 220 may store the generated user private key in the DB 230.

제어부(220)는 송수신부(210)를 통하여 상기 생성된 사용자 개인키를 어플리케이션 배포자(110)에게 송신할 수 있다(S550).The control unit 220 may transmit the generated user private key to the application distributor 110 through the transmission/reception unit 210 (S550).

어플리케이션 배포자(110)는 상기 수신한 사용자 개인키를 이용하여 사용자 개인키 활용 로직이 적용된 어플리케이션을 생성할 수 있다(S560). 사용자 개인키 활용 로직이 적용된 어플리케이션은 어플리케이션 메타 정보, 개발자 서명 정보 및 사용자 개인키를 포함하는 어플리케이션으로서, 사용자 단말(300)이 어플리케이션 메타 정보, 개발자 서명 정보 및 사용자 개인키를 이용하여 수신한 어플리케이션이 위조 또는 변조되었는지 여부를 확인할 수 있는 어플리케이션이고, 사용자 단말(300)이 인증 서버(200)로 전송 대상 데이터를 포함한 어플리케이션 관련 패킷을 전송할 때, 사용자 개인키에 포함된 공개키를 이용하여 암호화된 동적 토큰을 활용하여 인증 서버(200)로 송신하는 어플리케이션 관련 패킷의 유효성을 인증할 수 있는 어플리케이션이다. 동적 토큰을 활용한 어플리케이션 관련 패킷 유효성 인증에 관해서는 아래에서 도 8과 함께 다시 설명한다.The application distributor 110 may create an application to which the user private key utilization logic is applied using the received user private key (S560). The application to which the user private key utilization logic is applied is an application including application meta information, developer signature information, and user private key, and the application received by the user terminal 300 using application meta information, developer signature information, and user private key It is an application that can check whether it has been forged or tampered with, and when the user terminal 300 transmits an application-related packet including the transmission target data to the authentication server 200, it is dynamically encrypted using the public key included in the user's private key. An application capable of authenticating the validity of an application-related packet transmitted to the authentication server 200 using a token. Application-related packet validity authentication using a dynamic token will be described again with reference to FIG. 8 below.

어플리케이션 배포자(110)는 상기 생성된 사용자 개인키 활용 로직이 적용된 어플리케이션을 사용자 단말(300)로 송신하여 배포할 수 있다(S570).The application distributor 110 may transmit and distribute the application to which the generated user private key utilization logic is applied to the user terminal 300 (S570).

도 6은 본 발명의 일 실시 예에 따른 사용자 개인키 의 구조를 도시한 도면이다.6 is a diagram illustrating a structure of a user private key according to an embodiment of the present invention.

도 6을 참조하여 사용자 개인키에 관하여 보다 자세하게 설명하면, 사용자 개인키는 데이터 집합체로서, 헤더(HEADER), 제2 변형 데이터 및 공개키를 포함할 수 있다.Referring to FIG. 6, the user private key is described in more detail, and may include a header, second modified data, and a public key as a data set.

헤더는 사용자 개인키 전체의 길이, 제2 변형 데이터의 길이 및 공개키의 길이 정보를 포함할 수 있다. The header may include the length of the entire user private key, the length of the second modified data, and length information of the public key.

제2 변형 데이터는 제2 변형 데이터 생성부(240)에의해 생성된 데이터로서, 어플리케이션 메타 정보 및 개발자 서명 정보가 변형되어 생성된 데이터이다. 제2 변형 데이터의 생성 방법에 관하여 상기 도 2 및 도 5에서 기재하였으므로 자세한 설명은 생략한다. 어플리케이션 메타 정보는 어플리케이션을 특정 할 수 있는 정보로서, 예를 들면, 어플리케이션의 패키지 정보, 클래스 정보, 버전 정보, 파일 사이즈 등을 포함하는 android-manifext.xml 정보 전부 또는 일부의 조합일 수 있다.The second modified data is data generated by the second modified data generating unit 240, and is data generated by modifying application meta information and developer signature information. Since the method of generating the second modified data has been described in FIGS. 2 and 5, detailed descriptions will be omitted. The application meta information is information capable of specifying an application, and may be a combination of all or part of android-manifext.xml information including, for example, package information, class information, version information, and file size of the application.

공개키는 인증 서버(200)의 공개키 생성부(250)에의해 생성된 공개키이다.The public key is a public key generated by the public key generation unit 250 of the authentication server 200.

본 발명에 의한 사용자 개인키는 사용자 단말(300)이 어플리케이션 배포자(110)로부터 수신한 어플리케이션의 위조 또는 변조 여부를 판단하는데 사용될 수 있다. 보다 자세하게 설명하면, 사용자 단말(300)은 어플리케이션 배포자(110)로부터 사용자 개인키를 포함하는 어플리케이션을 수신할 수 있고, 수신한 어플리케이션에 포함된 어플리케이션 메타 정보 및 개발자 서명 정보를 이용하여 제1 변형 데이터를 생성할 수 있으며, 어플리케이션에 포함된 사용자 개인키로부터 제2 변형 데이터를 추출하여 상기 생성된 제1 변형 데이터와 상기 추출한 제2 변형 데이터의 동일성 여부를 판단하는 방법으로 어플리케이션의 위조 또는 변조 여부를 판단할 수 있다. 더욱 자세한 설명은 아래에서 도 7을 참조하여 기술한다.The user private key according to the present invention may be used by the user terminal 300 to determine whether an application received from the application distributor 110 is forged or altered. In more detail, the user terminal 300 may receive an application including a user private key from the application distributor 110, and first modified data using application meta information and developer signature information included in the received application. Can be generated, and is a method of determining whether the generated first modified data and the extracted second modified data are identical by extracting second modified data from the user private key included in the application. I can judge. A more detailed description will be given below with reference to FIG. 7.

그리고, 본 발명에 의한 사용자 개인키는 사용자 단말(300)이 인증 서버(200)로 송신하는 어플리케이션과 관련된 어플리케이션 관련 패킷의 유효성 여부를 인증하는데 사용될 수 있다. 보다 자세하게 설명하면, 사용자 단말(300)이 인증 서버(200)로 어플리케이션과 관련된 어플리케이션 관련 패킷을 송신할 때, 어플리케이션 메타 정보 및 시각 정보를 상기 사용자 개인키에 포함된 공개키를 이용하여 암호화하여 동적 토큰을 생성할 수 있다. 사용자 단말(300)은 상기 생성된 동적 토큰 및 전송 대상 데이터를 포함한 어플리케이션 관련 패킷을 시각 정보와 함께 인증 서버(200)로 송신할 수 있는데, 인증 서버(200)는 상기 어플리케이션 관련 패킷 및 시각 정보를 수신하여 상기 어플리케이션 관련 패킷의 유효성을 확인할 수 있다. 더욱 자세한 설명은 아래에서 도 8 내지 도 10을 참조하여 기술한다.In addition, the user private key according to the present invention may be used to authenticate whether an application-related packet related to an application transmitted from the user terminal 300 to the authentication server 200 is valid. In more detail, when the user terminal 300 transmits an application-related packet related to an application to the authentication server 200, application meta information and time information are encrypted using the public key included in the user private key to be Tokens can be created. The user terminal 300 may transmit an application-related packet including the generated dynamic token and transmission target data to the authentication server 200 together with time information, and the authentication server 200 transmits the application-related packet and time information. Upon receipt, the validity of the application-related packet can be checked. A more detailed description will be given with reference to FIGS. 8 to 10 below.

도 7은 본 발명의 일 실시 예에 따른 사용자 단말(300)이 사용자 개인키를 활용하여 어플리케이션의 위변조 여부를 판단하는 방법을 도시한 순서도이다.7 is a flowchart illustrating a method of determining whether an application has been forged or altered by using a user private key according to an embodiment of the present invention.

도 7을 참조하여 사용자 단말(300)이 어플리케이션 위변조 여부를 판단하는 방법을 자세하게 설명하면, 송수신부(310), 제어부(320), 메모리(330) 및 제1 변형 데이터 생성부(340)를 포함하는 사용자 단말(300)에 있어서, 제어부(320)는 메모리(330)에 저장된 어플리케이션으로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 추출하여, 제1 변형 데이터 생성부(340)로 송신할 수 있다(S710). Referring to FIG. 7, a method of determining whether the user terminal 300 has forged or altered an application will be described in detail, including a transmission/reception unit 310, a control unit 320, a memory 330, and a first modified data generation unit 340. In the user terminal 300 to perform, the controller 320 may extract application meta information and developer signature information from an application stored in the memory 330 and transmit it to the first modified data generation unit 340 (S710). .

제1 변형 데이터 생성부(340)는 상기 제어부(320)로부터 수신한 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 로직으로 변형하여 제1 변형 데이터를 생성할 수 있다(S720). 보다 자세하게 설명하면, 상기 변형 방법은 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 규칙에 의하여 결합한 후 변형하는 방법일 수 있는데, 상기 결합 방법은 단순히 상기 어플리케이션 메타 정보 및 개발자 서명 정보를 단순히 나열하여 결합하는 방법일 수 있고, 어플리케이션 메타 정보 및 개발자 서명 정보와 함께 특정 데이터를 삽입하여 결합하는 방법일 수 있으며, 그 외 어플리케이션 메타 정보 및 개발자 서명 정보가 포함될 수 있는 다양한 방법으로 결합될 수 있다. 그리고, 상기 결합된 정보를 변형하는 방법에 있어서, 상기 결합된 정보를 단방향 HASH 처리하는 방법일 수 있고, 인코딩 처리하는 방법일 수 있으며, 공개키/비밀키를 이용하여 암호화 처리하는 방법일 수 있다.The first modified data generation unit 340 may generate first modified data by transforming the application meta information and developer signature information received from the control unit 320 into preset logic (S720). In more detail, the transformation method may be a method of combining application meta information and developer signature information according to a preset rule and then transforming it. The combining method simply lists and combines the application meta information and developer signature information. It may be a method, a method of inserting and combining specific data together with application meta information and developer signature information, and other application meta information and developer signature information may be combined in various ways. In addition, in the method of transforming the combined information, it may be a one-way HASH processing method of the combined information, an encoding processing method, and an encryption method using a public key/private key. .

제어부(320)는 메모리(330)에 저장된 어플리케이션으로부터 상기 어플리케이션에 포함된 사용자 개인키에서 제2 변형 데이터를 추출할 수 있다(S730). 보다 자세하게 설명하면, 사용자 단말(300)이 수신한 어플리케이션에는 사용자 개인키가 포함되어 있고, 상기 사용자 개인키에는 제2 변형 데이터가 포함되어 있는데, 제어부(320)는 메모리(330)에 저장된 어플리케이션으로부터 제2 변형 데이터를 추출할 수 있다.The controller 320 may extract the second modified data from the user private key included in the application from the application stored in the memory 330 (S730). In more detail, the application received by the user terminal 300 includes a user private key, and the user private key includes second modified data, and the control unit 320 is configured from an application stored in the memory 330. The second transformation data can be extracted.

제어부(320)는 상기 수신된 제1 변형 데이터와 상기 추출된 제2 변형 데이터의 동일성 여부를 확인할 수 있다(S750). 보다 자세하게 설명하면, 제어부(320)는 상기 제1 변형 데이터와 상기 제2 변형 데이터의 값이 완전히 동일한지 여부를 확인할 수 있는데, 동일한 경우에는 위조 또는 변조되지 않은 올바른 어플리케이션이라고 판단할 수 있고(S750), 동일하지 않은 경우에는 위조 또는 변조된 어플리케이션이라고 판단할 수 있다(S760). 위조 또는 변조된 어플리케이션일 경우에는 상기 어플리케이션이 삭제되거나 비활성화되는 등의 방법으로 후속 조치가 행해질 수 있다(미도시).The controller 320 may check whether the received first modified data and the extracted second modified data are identical (S750). In more detail, the control unit 320 may check whether the values of the first and second modified data are exactly the same. If they are the same, it may be determined that the application is not forged or altered (S750). ), if not the same, it may be determined that the application is forged or altered (S760). In the case of a forged or altered application, a follow-up action may be performed in such a way that the application is deleted or deactivated (not shown).

상기와 같이, 본 발명에 의하면, 사용자 개인키를 활용하여 사용자 단말(300)이 어플리케이션 배포자(110)로부터 수신한 어플리케이션의 위변조 여부를 검증할 수 있어 사용자 단말(300)이 안전한 어플리케이션 사용을 보장받을 수 있는 효과가 있다. As described above, according to the present invention, by using the user private key, the user terminal 300 can verify whether the application received from the application distributor 110 is forged or altered, so that the user terminal 300 can be guaranteed safe application use. It can have an effect.

도 8은 본 발명의 일 실시 예에 따른 사용자 단말(300)이 인증 서버(200)로 송신되는 어플리케이션 관련 어플리케이션 관련 패킷의 유효성을 인증하기 위하여 인증 서버(200)로 동적 토큰을 활용한 어플리케이션 관련 패킷 및 시각 정보를 송신하는 시그널링 흐름도이다.8 is an application-related packet using a dynamic token to the authentication server 200 in order to authenticate the validity of an application-related application-related packet transmitted from the user terminal 300 to the authentication server 200 according to an embodiment of the present invention. And a signaling flowchart for transmitting time information.

도 8을 참조하여, 사용자 단말(300)이 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 인증 서버(200)로 송신하는 어플리케이션 관련 패킷의 유효성을 인증하는 방법을 자세하게 설명하면, 송수신부(310), 제어부(320), 메모리(330) 및 동적 토큰 생성부(350)를 포함하는 사용자 단말(300)에 있어서, 제어부(320)는 메모리(330)에 저장된 어플리케이션 메타 정보, 시각 정보 및 메모리(330)에 저장된 공개키를 동적 토큰 생성부(350)로 송신할 수 있고, 동적 토큰 생성부(350)는 제어부(320)로부터 수신한 어플리케이션 메타 정보, 시각 정보 및 공개키를 이용하여 동적 토큰을 생성할 수 있다(S810). 상기 공개키는 상기 메모리(330)에 저장된 사용자 개인키에 포함된 공개키이다. Referring to FIG. 8, a method of authenticating the validity of an application-related packet transmitted by the user terminal 300 to the authentication server 200 using a dynamic token generated by using a user private key will be described in detail. 310), in the user terminal 300 including the control unit 320, the memory 330, and the dynamic token generation unit 350, the control unit 320 includes application meta information, time information, and memory stored in the memory 330 The public key stored in 330 may be transmitted to the dynamic token generation unit 350, and the dynamic token generation unit 350 uses the application meta information, time information, and public key received from the control unit 320 Can be generated (S810). The public key is a public key included in a user private key stored in the memory 330.

제어부(320)는 동적 토큰 생성부(350)로부터 수신한 동적 토큰, 상기 공개키 및 메모리(330)에 저장된 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷을 생성할 수 있다(S820). 상기 공개키는 상기 메모리(330)에 저장된 사용자 개인키에 포함된 공개키이고, 전송 대상 데이터는 동적 토큰 생성부(350)에 포함된 암호화부(353)에 의하여 공개키로 암호화된 후 어플리케이션 관련 패킷에 포함될 수 있다.The controller 320 may generate an application-related packet including the dynamic token received from the dynamic token generator 350, the public key, and transmission target data stored in the memory 330 (S820). The public key is a public key included in the user private key stored in the memory 330, and the data to be transmitted is encrypted with the public key by the encryption unit 353 included in the dynamic token generation unit 350, and then an application-related packet Can be included in

제어부(320)는 상기 어플리케이션 관련 패킷 및 상기 시각 정보를 송수신부(310)를 통하여 인증 서버(200)로 송신할 수 있다(S830). The controller 320 may transmit the application-related packet and the time information to the authentication server 200 through the transmission/reception unit 310 (S830).

인증 서버(200)는 사용자 단말(300)로부터 수신한 어플리케이션 관련 패킷 및 시각 정보를 이용하여 어플리케이션 관련 패킷의 유효성을 인증할 수 있다(S840). 인증 서버(200)가 어플리케이션 관련 패킷의 유효성 인증 방법은 제어부(220)가 상기 수신된 어플리케이션 관련 패킷에 포함된 동적 토큰 및 암호화된 전송 대상 데이터를 공개키 생성부(250)에 의해 기 생성된 공개키 및 비밀키 쌍의 비밀키를 이용하여 복호화할 수 있고, 제어부(220)는 상기 동적 토큰을 비밀키로 복호화하여 조합 정보를 추출한 후 DB(230)에 저장할 수 있다. 그리고, 제어부(220)는 DB(230)에 저장된 데이터 중에서 상기 수신된 어플리케이션 관련 패킷과 연관된 기 저장된 어플리케이션 메타 정보를 확인할 수 있고, 상기 어플리케이션 메타 정보와 사용자 단말(300)로부터 수신한 시각 정보를 이용하여 사용자 단말(300)에서 조합 정보를 생성한 방법과 동일한 방법으로 조합 정보를 생성할 수 있다. 제어부(220)는 상기 동적 토큰으로부터 추출한 조합 정보와 상기 생성한 조합 정보를 비교하여 동일성을 판단하는 방법으로 어플리케이션 관련 패킷의 유효성을 인증할 수 있다. 그리고, 제어부(220)는 사용자 단말(300)로부터 수신한 어플리케이션 관련 패킷에 포함된 암호화된 전송 대상 데이터를 비밀키로 복호화하여 상기 전송 대상 데이터에 포함된 TTL(TIME TO LIVE) 정보를 추출할 수 있는데, 제어부(220)는 상기 TTL 정보를 이용하여 상기 수신된 어플리케이션 관련 패킷의 유효 기간을 확인할 수 있다. 제어부(220)는 상기 어플리케이션 관련 패킷의 수신 시각과 상기 TTL(TIME TO LIVE) 정보를 대조하여 수신 시각이 TTL 정보에 해당하는 시각보다 늦는 경우, 수신된 어플리케이션 관련 패킷이 무효라고 판단하고, 상기 어플리케이션 관련 패킷을 폐기할 수 있다. The authentication server 200 may authenticate the validity of the application-related packet using the application-related packet and time information received from the user terminal 300 (S840). In the authentication server 200, the method for authenticating the validity of the application-related packet is to disclose the dynamic token and encrypted transmission target data included in the received application-related packet by the control unit 220 previously generated by the public key generation unit 250. The decryption may be performed using a secret key of a key and a private key pair, and the controller 220 may decrypt the dynamic token with a private key, extract combination information, and store it in the DB 230. In addition, the control unit 220 may check pre-stored application meta information associated with the received application-related packet among data stored in the DB 230, and use the application meta information and the time information received from the user terminal 300. Accordingly, the combination information may be generated in the same manner as the method of generating the combination information in the user terminal 300. The controller 220 may verify the validity of an application-related packet by comparing the combination information extracted from the dynamic token with the generated combination information to determine identity. In addition, the control unit 220 may decrypt the encrypted transmission target data included in the application-related packet received from the user terminal 300 with a secret key to extract TTL (TIME TO LIVE) information included in the transmission target data. , The control unit 220 may check the validity period of the received application-related packet using the TTL information. The controller 220 compares the reception time of the application-related packet with the TIME TO LIVE (TTL) information, and determines that the received application-related packet is invalid if the reception time is later than the time corresponding to the TTL information, and the application Related packets can be discarded.

따라서, 인증 서버(200)는 어플리케이션 관련 패킷을 수정하거나 거짓 어플리케이션 관련 패킷을 생성하는 악의적 사용자에 의한 중간자 공격(MITM; MAN IN THE MIDDLE)으로부터 안전성을 보장받을 수 있다.Accordingly, the authentication server 200 may be guaranteed safety from a man-in-the-middle attack (MITM) by a malicious user who modifies an application-related packet or generates a false application-related packet.

그리고, 인증 서버(200)는 유효한 메시지를 복제하여 재송신된 유효한 메시지로 가장된 어플리케이션 관련 패킷 공격인 재전송 공격(REPLAY ATTACK)으로부터 안전성을 보장받을 수 있다.In addition, the authentication server 200 may be guaranteed safety from a replay attack (REPLAY ATTACK), which is an application-related packet attack disguised as a retransmitted valid message by duplicating a valid message.

도 9는 본 발명의 일 실시 예에 따른 사용자 단말(300)이 동적 토큰을 생성하는 방법을 도시한 순서도이다. 9 is a flowchart illustrating a method of generating a dynamic token by the user terminal 300 according to an embodiment of the present invention.

도 3, 도 4 및 도 9를 참조하여 사용자 단말(300)의 동적 토큰 생성부(350)에의한 동적 토큰 생성 방법에 관하여 보다 자세하게 설명하면, 제어부(320)가 메모리(330)에 저장된 어플리케이션으로부터 어플리케이션에 포함된 어플리케이션 메타 정보를 추출할 수 있다(S910). 제어부(320)는 상기 추출한 어플리케이션 메타 정보를 어플리케이션 메타 정보 변형부(351)로 송신할 수 있다.3, 4, and 9 will be described in more detail with respect to the dynamic token generation method by the dynamic token generation unit 350 of the user terminal 300, the control unit 320 from the application stored in the memory 330 Application meta information included in the application may be extracted (S910). The controller 320 may transmit the extracted application meta information to the application meta information transforming unit 351.

어플리케이션 메타 정보 변형부(351)는 상기 제어부(320)로부터 수신한 어플리케이션 메타 정보를 1차 처리할 수 있다(S920). 상기 1차 처리는 단방향 HASH 처리, 인코딩 처리 및 공개키를 이용한 암호화 처리 중 어느 하나의 처리일 수 있다.The application meta information transforming unit 351 may first process the application meta information received from the control unit 320 (S920). The primary processing may be any one of one-way HASH processing, encoding processing, and encryption processing using a public key.

조합 정보 생성부(352)는 상기 어플리케이션 메타 정보 변형부(351)로부터 수신한 상기 1차 처리된 어플리케이션 메타 정보를 제어부(320)로부터 수신한 시각 정보와 2차 처리하여 조합 정보를 생성할 수 있다(S930). 상기 2차 처리는 시각 정보를 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하여, 보정된 시각 정보를 1차 처리된 어플리케이션 메타 정보와 연산하는 방법일 수 있다. The combination information generation unit 352 may generate combination information by secondary processing the first processed application meta information received from the application meta information transformation unit 351 with the visual information received from the control unit 320. (S930). The secondary processing may be a method of correcting the visual information to have the same length as the first processed application meta information, and calculating the corrected visual information with the first processed application meta information.

상기 시각 정보를 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 방법의 일 예로, 시각 정보에 특정 정보를 더하여 상기 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 방법이 있을 수 있고, 시각 정보에 더해지는 특정 정보는 모두 '0'이 될 수 있고(ZERO PADDING), '1'이 될 수 있으며, 또는 '0' 과 '1'로 조합된 특정 정보일 수 있다.As an example of a method of correcting the time information to have the same length as the primary processed application meta information, there may be a method of adding specific information to the time information and correcting the time to the same length as the primary processed application meta information. All of the specific information added to the information may be '0' (ZERO PADDING), may be '1', or may be specific information combined with '0' and '1'.

상기 보정된 시각 정보를 1차 처리된 어플리케이션 메타 정보와 연산하는 방법은 논리 연산 중 어느 하나의 연산일 수 있는데, 그 일 예로 보정된 시각 정보를 1차 처리된 어플리케이션 메타 정보와 XOR 연산하는 방법일 수 있다.A method of calculating the corrected time information with the primary processed application meta information may be any one of logical operations, for example, a method of calculating the corrected time information with the primary processed application meta information I can.

암호화부(353)는 상기 생성된 조합 정보를 상기 제어부(320)로부터 수신한 공개키로 암호화 처리하여 동적 토큰을 생성할 수 있다(S940). 상기 공개키는 상기 메모리(330)에 저장된 사용자 개인키에 포함된 공개키이다.The encryption unit 353 may generate a dynamic token by encrypting the generated combination information with the public key received from the control unit 320 (S940). The public key is a public key included in a user private key stored in the memory 330.

제어부(320)는 상기 생성된 동적 토큰, 상기 공개키 및 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷을 생성할 수 있다.The controller 320 may generate an application-related packet including the generated dynamic token, the public key, and transmission target data.

도 10은 본 발명의 일 실시 예에 따른 동적 토큰을 활용한 어플리케이션 관련 패킷의 구조를 도시한 도면이다.10 is a diagram illustrating a structure of an application-related packet using a dynamic token according to an embodiment of the present invention.

이하, 도 10을 참조하여 본 발명의 일 실시 예에 따른 동적 토큰을 활용한 어플리케이션 관련 패킷의 구조를 보다 자세하게 설명한다. 동적 토큰을 활용한 어플리케이션 관련 패킷은 헤더(HEADER), 동적 토큰(DYNAMIC TOKEN), 공개키(PUBLIC KEY) 및 전송 대상 데이터를 포함할 수 있다. 헤더는 상기 어플리케이션 관련 패킷의 전체 길이 정보, 동적 토큰의 길이 정보 및 공개키의 길이 정보를 포함할 수 있다. 동적 토큰은 상기 도 9에서 살핀 바와 같이 어플리케이션 메타 정보 및 시각 정보를 이용하여 생성된 토큰이고, 공개키는 상기 메모리(330)에 저장된 사용자 개인키에 포함된 공개키이다. 전송 대상 데이터는 상기 공개키로 암호화된 데이터일 수 있다. 그리고, 상기 전송 대상 데이터는 동적 토큰의 TTL(TIME TO LIVE) 정보를 포함할 수 있다.Hereinafter, a structure of an application-related packet using a dynamic token according to an embodiment of the present invention will be described in more detail with reference to FIG. 10. An application-related packet using a dynamic token may include a header (HEADER), a dynamic token (DYNAMIC TOKEN), a public key (PUBLIC KEY), and data to be transmitted. The header may include total length information of the application-related packet, dynamic token length information, and public key length information. As shown in FIG. 9, the dynamic token is a token generated using application meta information and visual information, and the public key is a public key included in a user private key stored in the memory 330. The data to be transmitted may be data encrypted with the public key. In addition, the transmission target data may include TIME TO LIVE (TTL) information of the dynamic token.

본 발명에 의하면, 사용자 개인키를 활용하여 사용자 단말(300)이 어플리케이션 배포자(110)로부터 수신한 어플리케이션의 위변조 여부를 검증할 수 있어 사용자 단말(300)의 안전한 어플리케이션 사용을 보장받을 수 있는 효과가 있다. According to the present invention, the user terminal 300 can verify whether or not the application received from the application distributor 110 is forged or altered using the user private key, thereby ensuring safe application use of the user terminal 300. have.

그리고, 본 발명에 의하면, 인증 서버(200)는 사용자 단말(300)로부터 수신되는 어플리케이션 관련 패킷에 대하여, 어플리케이션 관련 패킷을 수정하거나 거짓 어플리케이션 관련 패킷을 생성하는 악의적 사용자에 의한 중간자 공격(MITM; MAN IN THE MIDDLE)으로부터 안전성을 보장받을 수 있는 효과가 있다.Further, according to the present invention, the authentication server 200 modifies the application-related packet or generates a false application-related packet with respect to the application-related packet received from the user terminal 300 by a malicious user (MITM; MAN; MAN) IN THE MIDDLE) has the effect of ensuring safety.

또한, 본 발명에 의하면, 인증 서버(200)는 유효한 메시지를 복제하여 재송신된 유효한 메시지로 가장된 어플리케이션 관련 패킷 공격인 재전송 공격(REPLAY ATTACK)으로부터 안전성을 보장받을 수 있는 효과가 있다.In addition, according to the present invention, the authentication server 200 has the effect of ensuring safety from a replay attack (REPLAY ATTACK), which is an application-related packet attack disguised as a retransmitted valid message by duplicating a valid message.

본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. It is obvious to those skilled in the art that the present invention can be embodied in other specific forms without departing from the spirit and essential features of the present invention.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 또한, 상기 컴퓨터는 단말기의 제어부를 포함할 수도 있다. The above-described present invention can be implemented as a computer-readable code on a medium on which a program is recorded. The computer-readable medium may be one that continuously stores a program executable by a computer, or temporarily stores a program for execution or download. In addition, the medium may be a variety of recording means or storage means in a form in which a single piece of hardware or several pieces of hardware are combined. The medium is not limited to a medium directly connected to a computer system, but may be distributed on a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks, and And ROM, RAM, flash memory, and the like may be configured to store program instructions. In addition, examples of other media include an app store that distributes applications, a site that supplies or distributes various software, and a recording medium or storage medium managed by a server. In addition, the computer may include a control unit of the terminal.

따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.Therefore, the detailed description above should not be construed as restrictive in all respects and should be considered as illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

100: 어플리케이션 유효성 인증 시스템
110: 어플리케이션 배포자
200: 인증 서버
300: 사용자 단말
100: application validation system
110: application distributor
200: authentication server
300: user terminal

Claims (20)

송수신부, 제어부, 메모리 및 제1 변형 데이터 생성부를 포함하는 사용자 단말이 어플리케이션 위변조 여부를 판단하는 방법에 있어서,
상기 제1 변형 데이터 생성부가 어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 로직으로 변형하여 제1 변형 데이터를 생성하여 상기 제어부로 송신하는 단계;
상기 제어부가 상기 메모리에 저장된 상기 어플리케이션으로부터 상기 어플리케이션에 포함된 사용자 개인키에서 제2 변형 데이터를 추출하는 단계; 및
상기 제어부가 상기 수신된 제1 변형 데이터와 상기 추출된 제2 변형 데이터의 동일성 여부를 확인하는 단계를 포함하는 것으로,
상기 사용자 개인키는 인증서버가 생성하고,
상기 사용자 개인키는 어플리케이션 배포자에 의해 상기 어플리케이션 내에 포함되어, 상기 어플리케이션과 함께 배포되는 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법.
In a method for determining whether an application forgery or not by a user terminal including a transmission/reception unit, a control unit, a memory and a first modified data generation unit,
Generating, by the first modified data generation unit, application meta information and developer signature information into preset logic, and transmitting the first modified data to the control unit;
Extracting, by the control unit, second modified data from the user private key included in the application from the application stored in the memory; And
And checking, by the control unit, whether the received first modified data and the extracted second modified data are identical,
The user private key is generated by an authentication server,
The user private key is included in the application by an application distributor and distributed together with the application.
제1항에 있어서,
상기 제어부가 상기 메모리에 저장된 어플리케이션으로부터 상기 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 추출하여 상기 제1 변형 데이터 생성부로 송신하는 단계;
를 더 포함하는 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법.
The method of claim 1,
Extracting the application meta information and the developer signature information from the application stored in the memory, and transmitting the extracted application meta information to the first modified data generation unit;
Application forgery determination method using a user private key, characterized in that it further comprises.
제1항에 있어서,
상기 사용자 개인키 는 제2 변형 데이터 및 공개키를 포함하는 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법.
The method of claim 1,
The method for determining application forgery using a user private key, wherein the user private key includes second modified data and a public key.
제1항에 있어서,
상기 제2 변형 데이터는 인증 서버에 의하여 생성되는 것으로서,
변형된 어플리케이션 메타 정보 및 변형된 개발자 서명 정보를 포함하는 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법.
The method of claim 1,
The second modified data is generated by an authentication server,
Application forgery determination method using a user private key, characterized in that it includes modified application meta information and modified developer signature information.
제1항에 있어서,
상기 제1 변형 데이터 또는 제2 변형 데이터는 단방향 HASH 처리, 인코딩 처리 및 암호화 처리 중 어느 한 방법에 의해 생성된 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법.
The method of claim 1,
The first modified data or the second modified data is generated by any one of a one-way HASH process, an encoding process, and an encryption process. An application forgery determination method using a user private key.
제1항에 있어서,
상기 제1 변형 데이터 및 상기 제2 변형 데이터는 동일한 변형 방법으로 변형되는 것을 특징으로 하는 사용자 개인키를 활용한 어플리케이션 위변조 판단 방법.
The method of claim 1,
An application forgery determination method using a user private key, characterized in that the first modified data and the second modified data are transformed by the same transforming method.
사용자 개인키를 활용하여 어플리케이션 위변조 여부를 판단하는 사용자 단말에 있어서,
어플리케이션 배포자로부터 어플리케이션을 수신하는 송수신부;
상기 수신된 어플리케이션이 저장되는 메모리;
어플리케이션 메타 정보 및 개발자 서명 정보를 기 설정된 로직으로 변형하여 제1 변형 데이터를 생성하고, 상기 생성된 제1 변형 데이터를 제어부로 송신하는 제1 변형 데이터 생성부; 및
상기 송수신부로부터 수신된 어플리케이션을 메모리에 저장하고, 상기 메모리에 저장된 어플리케이션으로부터 상기 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 추출하여 상기 제1 변형 데이터 생성부로 송신하며, 상기 메모리에 저장된 어플리케이션으로부터 제2 변형 데이터를 추출하고, 상기 제1 변형 데이터 생성부로부터 수신된 상기 제1 변형 데이터와 상기 메모리로부터 추출된 상기 제2 변형 데이터의 동일성 여부를 판단하여 상기 메모리에 저장된 어플리케이션의 위변조 여부를 판단하는 제어부를 포함하는 것으로,
상기 사용자 개인키는 인증서버가 생성하고,
상기 사용자 개인키는 어플리케이션 배포자에 의해 상기 어플리케이션 내에 포함되어, 상기 어플리케이션과 함께 배포되는 것을 특징으로 하는 사용자 단말.
In a user terminal that determines whether an application is forged or altered using a user private key,
A transceiver for receiving an application from an application distributor;
A memory in which the received application is stored;
A first modified data generator configured to generate first modified data by transforming application meta information and developer signature information into preset logic, and transmitting the generated first modified data to a control unit; And
The application received from the transmission/reception unit is stored in a memory, the application meta information and the developer signature information are extracted from the application stored in the memory and transmitted to the first modified data generator, and a second modified from the application stored in the memory A control unit for extracting data, determining whether the first modified data received from the first modified data generating unit and the second modified data extracted from the memory are identical to determine whether the application stored in the memory is forged or altered To include,
The user private key is generated by an authentication server,
The user terminal, wherein the user private key is included in the application by an application distributor and distributed together with the application.
송수신부, 제어부, DB, 제2 변형 데이터 생성부 및 공개키 생성부를 포함하는 인증 서버가 사용자 개인키를 생성하는 방법에 있어서,
상기 제2 변형 데이터 생성부가 어플리케이션 메타 정보 및 개발자 서명 정보를 변형하여 제2 변형 데이터를 생성하는 단계;
상기 공개키 생성부가 공개키 및 비밀키를 생성하는 단계; 및
상기 제어부가 상기 제2 변형 데이터 및 상기 공개키를 포함하는 사용자 개인키를 생성하는 단계;
를 포함하는 것을 특징으로 하는 사용자 개인키 생성 방법.
In the method for generating a user private key by an authentication server comprising a transmission/reception unit, a control unit, a DB, a second modified data generation unit, and a public key generation unit,
Generating, by the second modified data generation unit, application meta information and developer signature information;
Generating a public key and a private key by the public key generation unit; And
Generating, by the control unit, a user private key including the second modified data and the public key;
User private key generation method comprising a.
제8항에 있어서,
상기 제2 변형 데이터 생성부가 상기 제2 변형 데이터를 생성하는 단계 이전에,
상기 송수신부가 어플리케이션 배포자로부터 상기 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 수신하는 단계;
를 더 포함하는 것을 특징으로 하는 사용자 개인키 생성 방법.
The method of claim 8,
Before the step of generating the second modified data by the second modified data generation unit,
Receiving the application meta information and the developer signature information from an application distributor by the transceiver;
Method for generating a user private key, characterized in that it further comprises.
제8항에 있어서,
상기 제어부가 상기 생성된 사용자 개인키를 DB에 저장하는 단계; 및
상기 제어부가 상기 송수신부를 통하여 상기 생성된 사용자 개인키를 어플리케이션 배포자에게 송신하는 단계;
를 더 포함하는 것을 특징으로 하는 사용자 개인키 생성 방법.
The method of claim 8,
Storing, by the controller, the generated user private key in a DB; And
Transmitting, by the control unit, the generated user private key to an application distributor through the transmission/reception unit;
Method for generating a user private key, characterized in that it further comprises.
어플리케이션 배포자로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 수신하고, 상기 어플리케이션 배포자에게 제어부에의해 생성된 사용자 개인키를 송신하는 송수신부;
상기 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 변형하여 변형 데이터를 생성하는 제2 변형 데이터 생성부;
공개키 및 비밀키를 생성하는 공개키 생성부;
상기 변형 데이터 및 상기 공개키를 포함하는 사용자 개인키를 생성하고 상기 생성된 사용자 개인키를 DB에 저장하며, 상기 송수신부를 통하여 상기 생성된 사용자 개인키를 상기 어플리케이션 배포자에게 송신하는 제어부; 및
상기 어플리케이션 메타 정보, 상기 개발자 서명 정보 및 상기 생성된 사용자 개인키가 저장되는 DB;
를 포함하는 것을 특징으로 하는 인증 서버.
A transceiver for receiving application meta information and developer signature information from an application distributor, and transmitting a user private key generated by a control unit to the application distributor;
A second modified data generator configured to generate modified data by modifying the application meta information and the developer signature information;
A public key generation unit that generates a public key and a private key;
A control unit for generating a user private key including the modified data and the public key, storing the generated user private key in a DB, and transmitting the generated user private key to the application distributor through the transmission/reception unit; And
A DB in which the application meta information, the developer signature information, and the generated user private key are stored;
Authentication server comprising a.
송수신부, 제어부, 메모리 및 동적 토큰 생성부를 포함하는 사용자 단말이 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 인증 서버로 송신하는 어플리케이션 관련 패킷의 유효성을 인증하는 방법에 있어서,
상기 동적 토큰 생성부가 메모리에 저장된 어플리케이션 메타 정보, 시각 정보 및 메모리에 저장된 공개키를 이용하여 동적 토큰을 생성하여 상기 제어부로 송신하는 단계;
상기 제어부가 상기 수신한 동적 토큰, 상기 공개키 및 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷을 생성하는 단계; 및
상기 제어부가 상기 어플리케이션 관련 패킷 및 상기 시각 정보를 송수신부를 통하여 인증 서버로 송신하는 단계;
를 포함하는 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법.
In a method for authenticating the validity of an application-related packet transmitted to an authentication server by a user terminal including a transmission/reception unit, a control unit, a memory, and a dynamic token generation unit using a dynamic token generated using a user private key,
Generating a dynamic token using the application meta information, time information, and a public key stored in the memory by the dynamic token generation unit and transmitting it to the control unit;
Generating, by the control unit, an application-related packet including the received dynamic token, the public key, and transmission target data; And
Transmitting, by the control unit, the application-related packet and the time information to an authentication server through a transceiver;
A method for authenticating the validity of an application-related packet using a dynamic token generated using a user private key, comprising: a.
제12항에 있어서,
상기 공개키는 상기 메모리에 저장된 사용자 개인키에 포함된 공개키인 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법.
The method of claim 12,
The public key is a public key included in a user private key stored in the memory. A method of authenticating the validity of an application-related packet using a dynamic token generated using a user private key.
제12항에 있어서,
상기 동적 토큰 생성부는 어플리케이션 메타 정보 변형부, 조합 정보 생성부 및 암호화부를 포함하고,
상기 동적 토큰 생성부가 동적 토큰을 생성하는 방법에 있어서,
상기 어플리케이션 메타 정보 변형부가 상기 제어부로부터 수신한 어플리케이션 메타 정보를 1차 처리하는 단계;
상기 조합 정보 생성부가 상기 1차 처리된 어플리케이션 메타 정보를 상기 제어부로부터 수신한 시각 정보와 2차 처리하여 조합 정보를 생성하는 단계; 및
상기 암호화부가 상기 생성된 조합 정보를 상기 제어부로부터 수신한 공개키로 암호화 처리하여 동적 토큰을 생성하는 단계;
를 포함하는 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법.
The method of claim 12,
The dynamic token generation unit includes an application meta information transformation unit, a combination information generation unit, and an encryption unit,
In the method for generating a dynamic token by the dynamic token generator,
First processing the application meta information received from the control unit by the application meta information transforming unit;
Generating, by the combination information generation unit, the first processed application meta information with the visual information received from the control unit; And
Generating a dynamic token by encrypting, by the encryption unit, the generated combination information with a public key received from the control unit;
A method for authenticating the validity of an application-related packet using a dynamic token generated using a user private key, comprising: a.
제14항에 있어서,
상기 1차 처리는 단방향 HASH 처리, 인코딩 처리 및 암호화 처리 중 어느 하나의 처리인 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법.
The method of claim 14,
The first processing is one of one-way HASH processing, encoding processing, and encryption processing. A method of authenticating the validity of an application-related packet using a dynamic token generated using a user private key.
제14항에 있어서,
상기 2차 처리는,
상기 시각 정보를 상기 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 단계; 및
상기 보정된 시각 정보를 상기 1차 처리된 어플리케이션 메타 정보와 연산을 수행하는 단계;
를 포함하는 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법.
The method of claim 14,
The secondary treatment,
Correcting the time information to have the same length as the primary processed application meta information; And
Performing an operation on the corrected time information with the primary processed application meta information;
A method for authenticating the validity of an application-related packet using a dynamic token generated using a user private key, comprising: a.
제16항에 있어서,
상기 보정하는 방법은,
상기 시각 정보를 ZERO PADDING 하여 상기 1차 처리된 어플리케이션 메타 정보와 동일한 길이로 보정하는 방법인 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법.
The method of claim 16,
The correction method,
A method of authenticating the validity of an application-related packet using a dynamic token generated using a user private key, characterized in that the method of correcting the time information to the same length as the primary processed application meta information by zero padding.
제16항에 있어서,
상기 연산은 논리 연산 중 어느 하나의 연산인 것을 특징으로 하는 사용자 개인키를 활용하여 생성된 동적 토큰을 이용하여 어플리케이션 관련 패킷의 유효성을 인증하는 방법.
The method of claim 16,
The method of authenticating the validity of an application-related packet using a dynamic token generated using a user private key, wherein the operation is any one of logical operations.
사용자 단말과 인증 서버 간 어플리케이션 관련 패킷 유효성을 인증하기 위하여 사용자 개인키를 활용한 동적 토큰을 생성하는 사용자 단말에 있어서,
어플리케이션 및 상기 인증 서버로 송신되는 전송 대상 데이터가 저장되는 메모리;
메모리에 저장된 어플리케이션 메타 정보, 시각 정보 및 메모리에 저장된 사용자 개인키에 포함된 공개키를 동적 토큰 생성부로 송신하고, 상기 동적 토큰 생성부로부터 수신한 동적 토큰, 상기 공개키 및 상기 전송 대상 데이터를 포함하는 어플리케이션 관련 패킷 및 상기 시각 정보를 송수신부를 통하여 상기 인증 서버로 송신하는 제어부;
상기 제어부로부터 상기 어플리케이션 메타 정보, 상기 시각 정보 및 상기 공개키를 수신하여 동적 토큰을 생성하고, 상기 생성된 동적 토큰을 상기 제어부로 송신하는 동적 토큰 생성부; 및
상기 제어부로부터 수신한 상기 어플리케이션 관련 패킷 및 상기 시각 정보를 상기 인증 서버로 송신하는 송수신부;
를 포함하는 것을 특징으로 하는 사용자 단말.
In a user terminal that generates a dynamic token using a user private key to authenticate the validity of an application-related packet between a user terminal and an authentication server,
A memory in which an application and transmission target data transmitted to the authentication server are stored;
The application meta information stored in the memory, time information, and the public key included in the user private key stored in the memory are transmitted to the dynamic token generation unit, and the dynamic token received from the dynamic token generation unit, the public key, and the transmission target data are included. A control unit for transmitting the application-related packet and the time information to the authentication server through a transmission/reception unit;
A dynamic token generator configured to generate a dynamic token by receiving the application meta information, the time information, and the public key from the controller, and transmitting the generated dynamic token to the controller; And
A transmission/reception unit for transmitting the application-related packet and the time information received from the control unit to the authentication server;
User terminal comprising a.
어플리케이션 배포자, 사용자 단말 및 인증 서버를 포함하는 어플리케이션 유효성 인증 시스템에 있어서,
상기 어플리케이션 배포자로부터 어플리케이션 메타 정보 및 개발자 서명 정보를 수신하고, 상기 수신된 어플리케이션 메타 정보 및 상기 개발자 서명 정보를 변형하여 생성한 제2 변형 데이터와 공개키를 포함하는 사용자 개인키를 상기 어플리케이션 배포자에게 송신하는 인증 서버;
어플리케이션 메타 정보 및 개발자 서명 정보를 인증 서버로 송신하고, 상기 인증 서버로부터 수신한 사용자 개인키 활용하여 어플리케이션 위변조 여부를 판단할 수 있는 로직이 적용된 어플리케이션을 상기 사용자 단말로 송신하는 어플리케이션 배포자; 및
상기 어플리케이션 배포자로부터 수신한 상기 어플리케이션에 포함된 상기 어플리케이션 메타 정보, 상기 개발자 서명 정보 및 상기 사용자 개인키를 활용하여 상기 수신한 어플리케이션의 위변조 여부를 판단하고, 상기 어플리케이션 메타 정보 및 시각 정보를 상기 사용자 개인키에 포함된 공개키를 이용하여 암호화한 동적 토큰을 활용하여 상기 인증 서버로 송신하는 어플리케이션 관련 패킷의 유효성을 인증하는 사용자 단말;
을 포함하는 것을 특징으로 하는 어플리케이션 유효성 인증 시스템.
In an application validity authentication system including an application distributor, a user terminal, and an authentication server,
Receives application meta information and developer signature information from the application distributor, and transmits a user private key including a public key and second modified data generated by modifying the received application meta information and the developer signature information to the application distributor An authentication server;
An application distributor that transmits application meta information and developer signature information to an authentication server, and transmits an application to the user terminal to which a logic capable of determining whether an application forgery or alteration is applied using a user private key received from the authentication server; And
The application meta information included in the application received from the application distributor, the developer signature information, and the user private key are used to determine whether the received application is forged or altered, and the application meta information and the time information are transferred to the user. A user terminal for authenticating the validity of an application-related packet transmitted to the authentication server by using a dynamic token encrypted using a public key included in a key;
Application validation system comprising a.
KR1020180138643A 2018-11-13 2018-11-13 A method for judging application forgery using user secret key, a packet validation authentication method using dynamic token, and its system KR102200553B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180138643A KR102200553B1 (en) 2018-11-13 2018-11-13 A method for judging application forgery using user secret key, a packet validation authentication method using dynamic token, and its system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180138643A KR102200553B1 (en) 2018-11-13 2018-11-13 A method for judging application forgery using user secret key, a packet validation authentication method using dynamic token, and its system

Publications (2)

Publication Number Publication Date
KR20200055251A KR20200055251A (en) 2020-05-21
KR102200553B1 true KR102200553B1 (en) 2021-01-11

Family

ID=70910341

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180138643A KR102200553B1 (en) 2018-11-13 2018-11-13 A method for judging application forgery using user secret key, a packet validation authentication method using dynamic token, and its system

Country Status (1)

Country Link
KR (1) KR102200553B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101286767B1 (en) 2013-01-21 2013-07-16 주식회사 엔에스에이치씨 Verification method for application program using dynamic hashing
KR101537205B1 (en) 2014-10-20 2015-07-16 숭실대학교산학협력단 User Terminal to Detect the Tampering of the Applications Using Hash Value and Method for Tamper Detection Using the Same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101253341B1 (en) * 2011-02-08 2013-04-10 (주)바이너리소프트 System and method for verifying counterfeit or falsification of application for mobile
KR20150035249A (en) * 2013-09-27 2015-04-06 삼성전자주식회사 Recording medium storing application package, method and apparatus of creating application package, method and apparatus of executing application package
KR101532765B1 (en) * 2013-10-02 2015-07-02 주식회사 엔젠소프트 System and method for application counterfeit prevention

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101286767B1 (en) 2013-01-21 2013-07-16 주식회사 엔에스에이치씨 Verification method for application program using dynamic hashing
KR101537205B1 (en) 2014-10-20 2015-07-16 숭실대학교산학협력단 User Terminal to Detect the Tampering of the Applications Using Hash Value and Method for Tamper Detection Using the Same

Also Published As

Publication number Publication date
KR20200055251A (en) 2020-05-21

Similar Documents

Publication Publication Date Title
CN110832519B (en) Improving integrity of communications between a blockchain network and external data sources
US20240007308A1 (en) Confidential authentication and provisioning
US10116453B2 (en) Method for distributed trust authentication
CN109361668B (en) Trusted data transmission method
US10243742B2 (en) Method and system for accessing a device by a user
US8321924B2 (en) Method for protecting software accessible over a network using a key device
CN109379387B (en) Safety certification and data communication system between Internet of things equipment
CN108809633B (en) Identity authentication method, device and system
KR101879758B1 (en) Method for Generating User Digital Certificate for Individual User Terminal and for Authenticating Using the Same Digital Certificate
KR101531662B1 (en) Method and system for mutual authentication between client and server
EP2908493B1 (en) Secure communication systems
CN109525565B (en) Defense method and system for short message interception attack
CN111130799B (en) Method and system for HTTPS protocol transmission based on TEE
CN110519304A (en) HTTPS mutual authentication method based on TEE
WO2008053279A1 (en) Logging on a user device to a server
CN110519222B (en) External network access identity authentication method and system based on disposable asymmetric key pair and key fob
JP2018026631A (en) SSL communication system, client, server, SSL communication method, computer program
CN113630238B (en) User request permission method and device based on password confusion
JP2022117456A (en) Message transmission system with hardware security module
US20240106633A1 (en) Account opening methods, systems, and apparatuses
CN110912857B (en) Method and storage medium for sharing login between mobile applications
KR20210111587A (en) System and method for providing security service using blockchain and biometric information
KR102200553B1 (en) A method for judging application forgery using user secret key, a packet validation authentication method using dynamic token, and its system
US20240056433A1 (en) Identity authentication method, authentication access controller, request device, storage medium, program, and program product
CN115459929A (en) Security verification method, apparatus, electronic device, system, medium, and product

Legal Events

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