KR101518689B1 - User Terminal to Detect the Tampering of the Applications Using Core Code and Method for Tamper Detection Using the Same - Google Patents

User Terminal to Detect the Tampering of the Applications Using Core Code and Method for Tamper Detection Using the Same Download PDF

Info

Publication number
KR101518689B1
KR101518689B1 KR1020150002934A KR20150002934A KR101518689B1 KR 101518689 B1 KR101518689 B1 KR 101518689B1 KR 1020150002934 A KR1020150002934 A KR 1020150002934A KR 20150002934 A KR20150002934 A KR 20150002934A KR 101518689 B1 KR101518689 B1 KR 101518689B1
Authority
KR
South Korea
Prior art keywords
application program
code
user terminal
core code
core
Prior art date
Application number
KR1020150002934A
Other languages
Korean (ko)
Inventor
이정현
조해현
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Application granted granted Critical
Publication of KR101518689B1 publication Critical patent/KR101518689B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

The present invention relates to a user terminal for detecting tampering of an application program using a core code, and a tamper detection method using the same. According to an embodiment of the present invention, the user terminal comprises: a communication portion for transferring information of the user terminal and information of the application program to a certificate server in a platform level or to a neighboring device paired with the user terminal if the installed application program starts, and receiving an original core code of the application program and the code property information from the certificate server or the neighboring device; a code recognition portion for recognizing the core code of the application program installed in the user terminal by using the received code property information in the platform level; and a tamper detection judgment portion for judging whether a tamper detection exists or not by comparing the original core code of the received application program in the platform level with the recognized core code. According to the present invention, it is possible to protect the user terminal from the tamper detected application program by detecting whether the tamper detection is applied to the application program. In addition, the present invention enables to overcome uppermost limit of a tamper detection method in a level of the application program, which is possible to detour or avoid, by detecting the tamper detection of the application program in the platform level.

Description

핵심 코드를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법{User Terminal to Detect the Tampering of the Applications Using Core Code and Method for Tamper Detection Using the Same}Technical Field [0001] The present invention relates to a user terminal for detecting forgery or falsification of an application program using a core code, and a forgery detection method using the same. [0002]

본 발명은 핵심 코드를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법에 관한 것으로서, 더욱 상세하게는 인증 서버 또는 사용자 단말기와 페어링된 주변기기에 저장된 핵심 코드 원본과 사용자 단말기에 설치된 응용 프로그램으로부터 인식한 핵심 코드를 비교하여 해당 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법에 관한 것이다.The present invention relates to a user terminal for detecting whether an application program is forged or falsified by using a core code, and a forgery detection method using the same. More particularly, the present invention relates to a key code source and a user terminal The present invention relates to a user terminal for detecting whether a corresponding application program is forged or falsified by comparing key codes recognized from installed application programs and a method for detecting forgery using the user terminal.

많은 사용자들이 스마트폰 뱅킹을 이용하지만 아직 스마트폰 뱅킹의 보안은 취약하다. 스마트폰은 공용 네트워크 망에 해당하는 인터넷에 연결하므로 보안의 위험성이 크다. 인터넷 망을 통하여 침입한 해커가 스마트폰 내의 정보를 유출할 수 있고, 악성코드나 피싱 공격으로부터도 자유롭지 못하다. 또한 위변조 뱅킹 애플리케이션으로 사용자의 금융 정보가 탈취될 수 있다. Many users use smartphone banking, but the security of smartphone banking is still weak. Since smart phones connect to the Internet, which is a public network, security risks are significant. A hacker who breaks through the Internet can leak information on the smartphone and is not free from malicious code or phishing attacks. Also, the user's financial information can be seized with the forgery banking application.

스마트폰 뱅킹을 지원하는 금융 애플리케이션뿐만 아니라 게임, SNS 애플리케이션도 보안에 취약하다. 유명 게임 애플리케이션의 위변조 애플리케이션에 삽입된 트로이 목마 바이러스로 개인정보가 유출되는 사건이 있었고, SNS 애플리케이션의 위변조 애플리케이션이 불법 과금하는 사건도 있었다. In addition to financial applications that support smartphone banking, games and SNS applications are also vulnerable. There was a case where a personal information was leaked by a Trojan horse virus inserted in a forgery-and-fake application of a famous game application, and a forgery-and-falsification application of an SNS application was illegally charged.

이러한 애플리케이션의 위변조를 방지하고, 무결성을 확보하려는 애플리케이션 위변조 방지 솔루션에 관한 연구가 진행되고 있다. 주로 난독화 기법과 안티 디버깅 기능을 이용하여 리버스 엔지니어링과 위변조 위험성을 낮추는 기술이 적용되고 있다. Research is underway on application forgery prevention solutions to prevent the forgery and falsification of such applications and ensure integrity. Reverse engineering and anti-forgery techniques are used mainly by obfuscation and anti-debugging.

그러나 응용 프로그램 레벨에서 위변조 탐지용 코드를 적용하여 실행하는 기존의 위변조 탐지 기술은 애플리케이션의 구조를 분석할 수 있어 위변조 공격으로부터 안전하지 못하다. 특히 안드로이드 모바일 시스템의 달빅 가상 머신에서 수행되는 달빅 바이트 코드를 추출하면 해당 응용 애플리케이션의 구조를 분석할 수 있다. 즉 응용 프로그램 레벨의 위변조 탐지 기술은 우회 및 회피가 가능하다. 따라서 응용 프로그램 레벨이 아니라 플랫폼 레벨의 위변조 탐지 기술이 필요하다. However, existing forgery detection techniques that apply the code for forgery detection at the application level can analyze the structure of the application and are not safe from forgery attacks. Especially, by extracting the dhabi byte code executed in the Dalvik virtual machine of the Android mobile system, the structure of the application can be analyzed. In other words, application-level forgery detection techniques can be bypassed and avoided. Therefore, platform-level forgery detection technology is needed instead of application level.

본 발명의 배경이 되는 기술은 한국등록특허 제10-1256462호 (2013.04.19공고)에 개시되어 있다.The technology of the background of the present invention is disclosed in Korean Patent No. 10-1256462 (published on Apr. 19, 2013).

본 발명은 핵심 코드를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법에 관한 것으로서, 더욱 상세하게는 인증 서버 또는 사용자 단말기와 페어링된 주변기기에 저장된 핵심 코드 원본과 사용자 단말기에 설치된 응용 프로그램으로부터 인식한 핵심 코드를 비교하여 해당 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법을 제공하는데 목적이 있다.The present invention relates to a user terminal for detecting whether an application program is forged or falsified by using a core code, and a forgery detection method using the same. More particularly, the present invention relates to a key code source and a user terminal The present invention provides a user terminal for detecting whether a corresponding application program is forged or falsified by comparing key codes recognized from installed application programs, and a forgery detection method using the same.

이러한 기술적 과제를 이루기 위한 본 발명의 실시예에 따른 핵심 코드를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기에 따르면, 상기 설치된 응용 프로그램이 실행되면, 플랫폼 레벨에서 인증 서버 또는 상기 사용자 단말기와 페어링된 주변기기로 상기 사용자 단말기의 정보와 상기 응용 프로그램의 정보를 전송하고, 상기 인증 서버 또는 상기 주변기기로부터 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 수신하는 통신부, 플랫폼 레벨에서 상기 수신된 코드 속성 정보를 이용하여 상기 사용자 단말기에 설치된 상기 응용 프로그램의 핵심 코드를 인식하는 코드인식부, 그리고 플랫폼 레벨에서 상기 수신된 응용 프로그램의 핵심 코드 원본과 상기 인식된 핵심 코드를 비교하여 상기 응용 프로그램의 위변조 여부를 판단하는 위변조 판단부를 포함한다. According to another aspect of the present invention, there is provided a user terminal for detecting falsification of an application program using a core code according to an embodiment of the present invention. When the installed application program is executed, A communication unit for transmitting the information of the user terminal and the information of the application program to the peripherals and receiving the core code source and the code attribute information of the application program from the authentication server or the peripheral device, A code recognition unit for recognizing a core code of the application program installed in the user terminal using the information and a core code of the received application program at a platform level, It includes the forgery determination unit determines.

또한, 상기 응용 프로그램이 설치될 때 상기 사용자 단말기가 상기 주변 기기와 페어링 되어 있는 경우, 상기 통신부는, 상기 인증 서버로부터 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 수신하여 상기 주변 기기로 전달할 수 있다. If the user terminal is paired with the peripheral device when the application program is installed, the communication unit receives the core code source and the code property information of the application program from the authentication server and transmits the key code source and the code property information to the peripheral device .

또한, 상기 위변조 판단부는, 상기 사용자 단말기를 검사 모드로 전환한 상태에서 상기 핵심 코드 원본과 상기 인식된 핵심 코드를 비교하여 상기 응용 프로그램의 위변조 여부를 판단하며, 상기 응용 프로그램이 위변조된 것으로 판단되면 상기 응용 프로그램의 실행을 종료하고, 상기 응용 프로그램이 위변조되지 않은 것으로 판단되면, 실행 모드로 전환하여 상기 응용 프로그램을 실행할 수 있다. In addition, the forgery and falsification determining unit may determine whether the application program is forged or falsified by comparing the core code source and the recognized core code in a state where the user terminal is switched to the inspection mode. If it is determined that the application program is forged The execution of the application program is terminated. If it is determined that the application program is not forged, the application program can be switched to the execution mode to execute the application program.

또한, 상기 위변조 판단부는, 상기 인증 서버로부터 수신한 핵심 코드 원본과 상기 코드인식부에서 인식된 핵심 코드를 명령어 단위로 비교할 수 있다. The forgery and falsification determining unit may compare the core code original received from the authentication server and the core code recognized by the code recognition unit on a command word basis.

또한, 상기 핵심 코드는, 사용자에 의해 선택되거나, 플랫폼에서 미리 정의한 함수를 이용하여 선택될 수 있다. The core code may be selected by a user or selected using a predefined function in the platform.

또한, 상기 인증 서버로부터 수신한 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 복호화하는 암복호화부를 더 포함할 수 있다. The information processing apparatus may further include an encryption / decryption unit for decrypting the core code source and the code attribute information of the application program received from the authentication server.

본 발명의 다른 실시예에 따른 응용 프로그램이 설치된 사용자 단말기에 의해 수행되는 응용 프로그램의 위변조 여부를 탐지하는 방법은 상기 설치된 응용 프로그램이 실행되면, 플랫폼 레벨에서 인증 서버 또는 상기 사용자 단말기와 페어링된 주변기기로 상기 사용자 단말기의 정보와 상기 응용 프로그램의 정보를 전송하고, 상기 인증 서버 또는 상기 주변기기로부터 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 수신하는 단계, 플랫폼 레벨에서 상기 수신된 코드 속성 정보를 이용하여 상기 사용자 단말기에 설치된 상기 응용 프로그램의 핵심 코드를 인식하는 단계, 그리고 플랫폼 레벨에서 상기 수신된 응용 프로그램의 핵심 코드 원본과 상기 인식된 핵심 코드를 비교하여 상기 응용 프로그램의 위변조 여부를 판단하는 단계를 포함한다. A method for detecting forgery or falsification of an application program performed by a user terminal installed with an application program according to another embodiment of the present invention is a method for detecting whether an application program is forged or falsified by using an authentication server or a peripheral device paired with the user terminal at a platform level Transmitting the information of the user terminal and the application program, receiving a core code source of the application program and the code attribute information from the authentication server or the peripheral device, using the received code attribute information at the platform level Recognizing the core code of the application program installed in the user terminal and comparing the core code of the received application program with the recognized core code at the platform level to determine whether the application program is forged or not,It should.

따라서 본 발명에 따르면 핵심 코드를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법을 이용함으로써, 위변조된 응용 프로그램으로부터 사용자 단말기를 보호할 수 있다. Therefore, according to the present invention, a user terminal that detects whether an application program is forged or falsified by using a core code and a forgery detection method using the same can be used to protect a user terminal from a forged application program.

또한 플랫폼 수준에서 응용 프로그램 위변조를 탐지함으로써, 우회 및 회피가 가능한 응용 프로그램 수준에서의 위변조 탐지 방법의 한계점을 극복할 수 있다. By detecting application forgery and alteration at platform level, we can overcome limitations of forgery detection method at application level which can bypass and avoid.

또한 응용 프로그램의 위변조 여부 탐지에 필요한 핵심 코드 원본 및 코드 속성 정보를 주변기기에 저장하는 경우, 인터넷 환경이 열악한 조건에서도 사용자 단말기는 주변기기로부터 핵심 코드 원본과 코드 속성 정보를 수신하여 해당 응용 프로그램의 위변조 여부를 탐지할 수 있다. In addition, when storing the core code source and code property information required for detecting forgery of the application program in the peripheral device, even if the internet environment is poor, the user terminal receives the core code source and code property information from the peripheral device, Can be detected.

도 1은 본 발명의 실시예에 따른 응용 프로그램의 위변조 여부 탐지 시스템을 나타내는 구성도이다.
도 2는 본 발명의 실시예에 따른 인증 서버의 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 사용자 단말기의 구성을 나타낸 블록도이다.
도 4는 본 발명의 실시예에 따른 주변기기의 구성을 나타낸 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 응용 프로그램의 위변조 여부를 탐지하는 방법을 설명하기 위한 순서도이다.
도 6a 및 도 6b는 본 발명의 제1 실시예에 따른 사용자 단말기와 인증 서버의 통신을 설명하기 위한 도면이다.
도 7은 본 발명의 제2 실시예에 따른 응용 프로그램의 위변조 여부를 탐지하는 방법을 설명하기 위한 순서도이다.
도 8은 본 발명의 제2 실시예에 따른 사용자 단말기와 주변기기의 통신을 설명하기 위한 도면이다.
1 is a block diagram illustrating a system for detecting forgery and falsification of an application program according to an embodiment of the present invention.
2 is a block diagram illustrating a configuration of an authentication server according to an embodiment of the present invention.
3 is a block diagram illustrating a configuration of a user terminal according to an embodiment of the present invention.
4 is a block diagram showing the configuration of a peripheral device according to an embodiment of the present invention.
FIG. 5 is a flowchart illustrating a method for detecting forgery or falsification of an application program according to the first embodiment of the present invention.
6A and 6B illustrate communication between a user terminal and an authentication server according to the first embodiment of the present invention.
FIG. 7 is a flowchart illustrating a method for detecting forgery or falsification of an application program according to a second embodiment of the present invention.
8 is a diagram for explaining communication between a user terminal and a peripheral device according to the second embodiment of the present invention.

그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

이하 첨부된 도면을 참조하면서 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 응용 프로그램의 위변조 여부 탐지 시스템을 나타내는 구성도이다. 도 1과 같이, 본 발명의 실시예에 따른 위변조 여부 탐지 시스템은 응용 프로그램 제공 서버(100), 인증 서버(200) 및 사용자 단말기(300)를 포함하며, 주변기기(400)를 더 포함할 수 있다.1 is a block diagram illustrating a system for detecting forgery and falsification of an application program according to an embodiment of the present invention. 1, the forgery detection system according to the embodiment of the present invention may include an application program providing server 100, an authentication server 200, and a user terminal 300, and may further include a peripheral device 400 .

도 1에 나타낸 것처럼, 응용 프로그램 제공 서버(100)와 인증 서버(200), 사용자 단말기(300) 및 주변기기(400)는 네트워크(network)를 통해 연결된다. 즉, 도 1과 같이, 네트워크를 통하여 사용자 단말기(300)는 응용 프로그램 제공 서버(100), 인증 서버(200) 및 주변기기(400)와 연결될 수 있다. 또한 응용 프로그램 제공 서버(100)는 인증 서버(200)와 네트워크를 통하여 연결될 수 있다. 1, the application providing server 100, the authentication server 200, the user terminal 300, and the peripheral device 400 are connected through a network. 1, the user terminal 300 may be connected to the application program providing server 100, the authentication server 200, and the peripheral device 400 through a network. Also, the application providing server 100 may be connected to the authentication server 200 through a network.

여기서, 네트워크는 사용자 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE, Wi-Fi 등이 포함되나 이에 한정되지는 않는다.Here, the network means a connection structure in which information can be exchanged between each node such as user terminals and servers. An example of such a network is an Internet, a LAN (Local Area Network), a Wireless LAN But are not limited to, Wireless Local Area Network (WLAN), Wide Area Network (WAN), Personal Area Network (PAN), 3G, 4G, LTE and Wi-Fi.

특히, 사용자 단말기(300)와 주변기기(400)는 블루투스(Bluetooth), 지그비(ZigBee), 적외선통신모듈(IrDA, Infrared Data Association) 등을 이용하거나 USB포트를 통하여 유선으로 연결될 수 있다.In particular, the user terminal 300 and the peripheral device 400 may be connected to each other through a Bluetooth, a ZigBee, an IrDA (Infrared Data Association), or the like via a USB port.

먼저, 응용 프로그램 제공 서버(100)는 응용 프로그램 파일을 저장하며, 사용자 단말기(300)로부터 응용 프로그램 파일의 전송을 요청 받으면 해당 사용자 단말기(300)로 해당 응용 프로그램 파일을 전송한다. 즉 사용자 단말기(300)는 응용 프로그램 제공 서버(100)에 저장된 응용 프로그램 파일을 다운로드 받아 사용자 단말기(300)에 설치하여 해당 응용 프로그램을 실행할 수 있다. First, the application program providing server 100 stores an application program file. When the application program providing server 100 receives a request for transferring the application program file from the user terminal 300, the application program providing server 100 transmits the application program file to the user terminal 300. That is, the user terminal 300 may download the application program file stored in the application program providing server 100 and install the application program file in the user terminal 300 to execute the application program.

그리고 본 발명의 실시예에 따른 응용 프로그램 제공 서버(100)는 금융, 뉴스, 쇼핑, 게임 등 다양한 종류의 응용 프로그램 파일을 저장할 수 있으며, 사용자 단말기(300)가 이러한 응용 프로그램 파일을 응용 프로그램 제공 서버(100)로부터 다운로드 받아 사용자 단말기(300)에 설치할 수 있도록 응용 프로그램 제공 서버(100)는 응용 프로그램 파일을 저장한다. 예를 들어, 구글 플레이나 애플의 앱스토어와 같은 각종 모바일 애플리케이션 마켓이 응용 프로그램 제공 서버(100)에 해당된다. The application program providing server 100 according to the embodiment of the present invention can store various kinds of application program files such as finance, news, shopping, and games, and the user terminal 300 can store the application program files in the application program providing server The application program providing server 100 stores the application program file so that the application program providing server 100 downloads the program file from the user terminal 100 and installs the application program file on the user terminal 300. [ For example, various mobile application markets, such as Google Play and Apple's App Store, correspond to the application providing server 100.

응용 프로그램 제공 서버(100)는 응용 프로그램 패키지로부터 디컴파일된 실행 파일을 통하여 핵심 코드를 설정하고, 설정된 핵심 코드와 핵심 코드의 메타 데이터인 코드 속성 정보를 저장한다. 이때, 응용 프로그램 제공 서버(100)가 설정한 핵심 코드가 해당 응용 프로그램의 핵심 코드 원본이다. 그리고 응용 프로그램 제공 서버(100)는 저장된 핵심 코드 원본과 코드 속성 정보를 인증 서버(200)로 전송한다. The application program providing server 100 sets a core code through an executable file decompiled from an application package and stores code attribute information which is metadata of the set core code and the core code. At this time, the core code set by the application providing server 100 is a core code source of the application program. Then, the application providing server 100 transmits the stored core code source and code property information to the authentication server 200.

이때, 핵심 코드는 모바일 플랫폼에서 미리 정의해둔 함수를 이용하여 핵심 코드를 설정할 수 있고, 해당 응용 프로그램의 개발자나 인증 관련 관계자로부터 핵심 코드를 직접 설정 받을 수 있다. In this case, the core code can be configured by using a predefined function in the mobile platform, and the core code can be directly set by the developer of the application program or the related person concerned with the authentication.

다음으로 인증 서버(200)는 응용 프로그램 제공 서버(100)로부터 각종 응용 프로그램의 핵심 코드 원본 및 코드 속성 정보를 네트워크를 통하여 수신하여 저장한다. 그리고 인증 서버(200)는 사용자 단말기(300)로부터 위변조 여부를 확인하고자 하는 응용 프로그램의 정보와 사용자 단말기(300) 정보를 네트워크 연결을 통하여 수신하고, 해당 사용자 단말기(300)로 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 전송한다. Next, the authentication server 200 receives and stores the core code source and code property information of various application programs from the application program providing server 100 via the network. The authentication server 200 receives the information of the application program to be checked for forgery or falsification and the information of the user terminal 300 through the network connection from the user terminal 300, Send code source and code property information.

또한 인증 서버(200)는 응용 프로그램 제공 서버(100)로부터 핵심 코드 원본과 코드 속성 정보를 수신하지 않고, 응용 프로그램 파일만 수신하며, 인증 서버(200) 자체적으로 수신한 응용 프로그램 파일을 디컴파일하여 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 추출하여 저장할 수도 있다. Also, the authentication server 200 receives only the application program file without receiving the core code source and the code property information from the application program providing server 100, and decrypts the application program file received by the authentication server 200 itself The core code source and code property information of the application can be extracted and stored.

이때, 인증 서버(200)는 모바일 플랫폼에서 미리 정의해둔 함수를 이용하여 핵심 코드를 설정할 수 있고, 해당 응용 프로그램의 개발자나 인증 관련 관계자로부터 핵심 코드를 직접 설정 받을 수 있다. At this time, the authentication server 200 can set a core code using a predefined function in the mobile platform, and can directly set a core code from a developer of the application program or an entity related to the authentication.

그리고 사용자 단말기(300)는 인증 서버(200)로부터 수신한 코드 속성 정보를 이용하여 사용자 단말기(300)에 설치된 응용 프로그램의 핵심 코드를 인식하고, 인식된 핵심 코드와 인증 서버(200)로부터 수신한 핵심 코드 원본을 비교하여 해당 응용 프로그램의 위변조 여부를 판단한다. The user terminal 300 recognizes the core code of the application program installed in the user terminal 300 by using the code property information received from the authentication server 200, And compares the original code code to judge whether the application program is forged or not.

여기서 사용자 단말기(300)는 응용 프로그램을 설치하여 실행할 수 있는 단말기로서, 스마트폰, 스마트 패드, 휴대폰, 노트북 컴퓨터, 태블릿 PC, PDA(Personal Digital Assistant) 등이 해당된다. 특히, 스마트폰 또는 스마트 패드의 경우 응용 프로그램은 기기 상에 애플리케이션으로 제공할 수 있다. The user terminal 300 includes a smart phone, a smart pad, a mobile phone, a notebook computer, a tablet PC, a PDA (Personal Digital Assistant), and the like, which can be installed and executed by an application program. In particular, in the case of a smart phone or a smart pad, the application can be provided as an application on the device.

여기서 애플리케이션은 단말 상의 응용 프로그램을 의미하며, 예를 들어 모바일 단말(스마트폰)에서 실행되는 앱(app)을 포함한다. 사용자는 앱(app)을 모바일 콘텐츠를 자유롭게 사고 파는 가상의 장터인 모바일 애플리케이션 마켓에서 다운로드 받아 스마트폰 등의 사용자 단말기(300)에 설치할 수 있으며, 여기서 모바일 애플리케이션 마켓은 응용 프로그램 제공 서버(100)에 해당한다. Here, the application refers to an application program on the terminal, for example, an app (app) running on a mobile terminal (smart phone). A user can download an application (app) from a mobile application market, which is a virtual marketplace where mobile contents can be freely purchased and sold, and install the application on a user terminal 300 such as a smart phone, where the mobile application market is connected to the application providing server 100 .

또한 사용자 단말기(300)는 응용 프로그램 제공 서버(100)에서 응용 프로그램 파일을 다운로드 받아서 설치하여 응용 프로그램을 실행할 수도 있고, 사용자 단말기(300) 자체에 기 설치된 다양한 애플리케이션을 실행할 수도 있다. In addition, the user terminal 300 may download an application program file from the application program providing server 100 to install the application program and execute the application program, or may execute various applications installed in the user terminal 300 itself.

마지막으로, 주변기기(400)는 사용자 단말기(300)로부터 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 수신하여 저장한다. 그리고 주변기기(4000는 사용자 단말기(300)로부터 실행 알림 메시지를 수신하면, 실행 알림 메시지를 통하여 요청받은 응용 프로그램의 핵심 코드 원본과 코드 속성 정보가 포함된 원본 메시지를 사용자 단말기(300)로 전송한다. Finally, the peripheral device 400 receives and stores the core code source and the code property information of the application program from the user terminal 300. Upon receiving the execution notification message from the user terminal 300, the peripheral device 4000 transmits an original message including the core code source and the code attribute information of the requested application program to the user terminal 300 through the execution notification message.

여기서 주변기기(400)는 사용자 단말기(300)와 통신할 수 있고, 핵심 코드 원본과 코드 속성 정보를 저장할 수 있는 전기기기이다. 주변기기(400)는 스마트 와치, 스마트 안경, 스마트 밴드 등의 웨어러블 기기일 수 있으며, 사용자 단말기(300)와 통신이 가능한 외장하드, USB, OTG 등의 주변기기일 수 있다. Here, the peripheral device 400 is an electric device capable of communicating with the user terminal 300 and storing a core code source and code property information. The peripheral device 400 may be a wearable device such as a smart watch, smart glasses, or a smart band, and may be a peripheral device such as an external hard disk, USB, or OTG capable of communicating with the user terminal 300.

또한 활동 추적기, 모바일 포토 프린터, 홈모니터링 장치, 장난감, 의료기기 등의 앱세서리(Appcessory)를 주변기기(400)로 사용할 수 있다. 여기서 앱세서리는 사용자 단말기(300)인 스마트폰이 애플리케이션과 연동되어 스마트폰의 기능을 확장시켜주는 액세서리를 의미한다. In addition, an appsystem such as an activity tracker, a mobile photo printer, a home monitoring device, a toy, and a medical device can be used as the peripheral device 400. Here, the appsetry refers to an accessory that allows the smartphone, which is the user terminal 300, to interoperate with the application to extend the functions of the smart phone.

도 2는 본 발명의 실시예에 따른 인증 서버의 구성을 나타낸 블록도이다. 도 2와 같이, 인증 서버(200)는 통신부(210), 암복호화부(220), 데이터베이스(230)를 포함한다. 2 is a block diagram illustrating a configuration of an authentication server according to an embodiment of the present invention. As shown in FIG. 2, the authentication server 200 includes a communication unit 210, an encryption / decryption unit 220, and a database 230.

먼저, 통신부(210)는 사용자 단말기(300)로부터 실행 알림 메시지를 수신하고, 사용자 단말기(300)로 원본 메시지를 전송한다. 여기서 실행 알림 메시지는 해당 사용자 단말기(300)의 정보와 위변조 여부를 검사할 응용 프로그램의 정보를 포함한다. 실행 알림 메시지를 수신한 인증 서버(200)의 통신부(210)는 사용자 단말기(300)로 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보가 포함된 원본 메시지를 전송한다. First, the communication unit 210 receives an execution notification message from the user terminal 300 and transmits the original message to the user terminal 300. Herein, the execution notification message includes information of the corresponding user terminal 300 and information of an application program to be checked for forgery or falsification. Upon receiving the execution notification message, the communication unit 210 of the authentication server 200 transmits the original message including the core code source and the code attribute information of the application program to the user terminal 300.

또한, 본 발명의 실시예에 따른 응용 프로그램의 위변조 여부 탐지 시스템이 주변기기(400)를 포함하는 경우, 인증 서버(200)의 통신부(210)는 사용자 단말기(300)로부터 요청 메시지를 수신하고, 사용자 단말기(300)로 응답 메시지를 전송한다. In the case where the forgery falsification detection system of the application program includes the peripheral device 400 according to the embodiment of the present invention, the communication unit 210 of the authentication server 200 receives the request message from the user terminal 300, And transmits a response message to the terminal 300.

여기서 요청 메시지는 실행 알림 메시지와 동일하게 사용자 단말기(300)의 정보와 위변조 여부를 검사할 응용 프로그램의 정보를 포함하며, 응답 메시지는 원본 메시지와 같이 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 포함한다. Here, the request message includes the information of the user terminal 300 and the information of the application program to be checked for forgery or falsification in the same manner as the execution notification message, and the response message includes a core code source and code property information of the application program, .

다음으로 암복호화부(220)는 사용자 단말기(300)로 전송할 원본 메시지를 암호화한다. 또한 암복호화부(220)는 사용자 단말기(300)가 실행 알림 메시지를 암호화하여 전송한 경우, 수신한 실행 알림 메시지를 복호화 할 수 있다. 여기서, 원본 메시지에는 핵심 코드 원본과 코드 속성 정보가 포함되어 있으며, 원본 메시지는 핵심 코드 원본과 코드 속성 정보의 해시값, 비밀키를 더 포함할 수 있다. Next, the encryption / decryption unit 220 encrypts the original message to be transmitted to the user terminal 300. Also, the encryption / decryption unit 220 may decrypt the received execution notification message when the user terminal 300 encrypts and transmits the execution notification message. Herein, the original message includes a core code source and code property information, and the original message may further include a key code source, a hash value of the code property information, and a secret key.

암복호화부(220)는 사용자 단말기(300)로 전송할 핵심 코드 원본과 코드 속성 정보를 비밀키와 함께 비밀키로 암호화한다. 그리고 암복호화부(220)는 사용자 단말기(300)의 공개키와 비밀키를 공개키를 이용하여 암호화한다. 또한 암복호화부(220)는 인증 서버(200)의 개인키와 핵심 코드 원본 및 코드 속성 정보의 해시값을 개인키를 이용하여 서명값을 생성한다. The encryption / decryption unit 220 encrypts the key code original to be transmitted to the user terminal 300 and the code property information together with the private key together with the private key. The encryption / decryption unit 220 encrypts the public key and the secret key of the user terminal 300 using a public key. Also, the encryption / decryption unit 220 generates a signature value using the private key of the authentication server 200, the key code source, and the hash value of the code property information using the private key.

또한 본 발명의 실시예에 따른 응용 프로그램의 위변조 여부 탐지 시스템이 주변기기(400)를 포함하는 경우, 암복호화부(220)는 사용자 단말기(300)로부터 수신한 요청 메시지를 복호화하고, 사용자 단말기(300)로 전송할 응답 메시지를 암호화할 수 있다.The encryption / decryption unit 220 decrypts the request message received from the user terminal 300, and transmits the decrypted request message to the user terminal 300 (step < RTI ID = 0.0 > ) To encrypt the response message.

마지막으로 데이터베이스(230)는 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 저장한다. 데이터베이스(230)는 서로 다른 복수의 응용 프로그램의 핵심 코드 원본 및 코드 속성 정보를 저장할 수 있으며, 복수의 핵심 코드 원본과 코드 속성 정보를 저장하고 있는 경우, 통신부(210)는 데이터베이스(230)에 저장된 복수의 핵심 코드 원본 및 코드 속성 정보 중에서 수신한 요청 메시지 또는 실행 알림 메시지에 포함된 응용 프로그램 정보에 대응하는 핵심 코드 원본과 코드 속성 정보를 사용자 단말기(300)로 전송한다. Finally, the database 230 stores the core code source and code property information of the application program. The database 230 may store a core code source and code property information of a plurality of different application programs and if the plurality of core code sources and code property information are stored, The core code source and the code attribute information corresponding to the application program information included in the received request message or the execution notification message among the plurality of core code sources and code attribute information to the user terminal 300.

여기서 핵심 코드 원본과 코드 속성 정보는 응용 프로그램 제공 서버(100)로부터 수신한 것이거나, 응용 프로그램 제공 서버(100)로부터 수신한 응용 프로그램 파일을 이용하여 인증 서버(200)가 설정한 것이다. Here, the core code source and the code property information are received from the application providing server 100 or are set by the authentication server 200 using the application program file received from the application providing server 100. [

인증 서버(200)가 핵심 코드와 코드 속성 정보를 설정하는 경우, 데이터베이스(230)는 응용 프로그램 제공 서버(100)로부터 수신한 응용 프로그램 파일을 더 저장할 수 있다. When the authentication server 200 sets the core code and the code attribute information, the database 230 may further store the application program file received from the application program providing server 100. [

도 3은 본 발명의 실시예에 따른 사용자 단말기의 구성을 나타낸 블록도이다. 도 3과 같이, 본 발명의 실시예에 따른 사용자 단말기(300)는 통신부(310), 암복호화부(320), 코드인식부(330), 위변조 판단부(340)를 포함한다. 3 is a block diagram illustrating a configuration of a user terminal according to an embodiment of the present invention. 3, the user terminal 300 according to the embodiment of the present invention includes a communication unit 310, an encryption / decryption unit 320, a code recognition unit 330, and a forgery / alteration determination unit 340.

먼저, 통신부(310)는 사용자 단말기(300)가 인증 서버(200)와 통신할 수 있도록 한다. 통신부(310)는 사용자 단말기(300)에 설치된 응용 프로그램 중에서 위변조 여부를 탐지하고자 하는 응용 프로그램의 정보와 사용자 단말기(300)의 정보를 포함하는 실행 알림 메시지를 인증 서버(200)로 전송한다. 이때, 위변조 여부를 탐지하려는 응용 프로그램은 사용자가 실행시키고자 하는 응용 프로그램이며, 응용 프로그램 실행시 통신부(310)는 인증 서버(200)로 실행 알림 메시지를 전송한다. 그리고 통신부(310)는 인증 서버(200)로부터 해당 응용 프로그램의 핵심 코드 원본 및 코드 속성 정보가 포함된 원본 메시지를 수신한다. First, the communication unit 310 enables the user terminal 300 to communicate with the authentication server 200. The communication unit 310 transmits to the authentication server 200 an execution notification message including information of an application program for detecting forgery or falsification and information of the user terminal 300 among application programs installed in the user terminal 300. At this time, the application program for detecting whether or not a forgery or falsification is detected is an application program to be executed by the user. When the application program is executed, the communication unit 310 transmits an execution notification message to the authentication server 200. The communication unit 310 receives an original message including a core code source and code attribute information of the application program from the authentication server 200. [

또한, 본 발명의 실시예에 따른 응용 프로그램의 위변조 여부 탐지 시스템이 주변기기(400)를 포함하는 경우, 사용자 단말기(300)의 통신부(310)는 주변기기(400)와도 통신을 수행한다. 사용자 단말기(300)가 주변기기(400)와 페어링을 수행할 때, 인증 서버(200)로부터 수신한 핵심 코드 원본 및 코드 속성 정보를 주변기기(400)로 전송한다. 그리고, 응용 프로그램이 실행될 때, 주변기기(400)로 실행 알림 메시지를 전송하고, 주변기기(400)로부터 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보가 포함된 원본 메시지를 수신한다.The communication unit 310 of the user terminal 300 also communicates with the peripheral device 400 when the forgery falsification detection system according to the embodiment of the present invention includes the peripheral device 400. [ When the user terminal 300 performs the pairing with the peripheral device 400, transmits the core code original and code property information received from the authentication server 200 to the peripheral device 400. [ When the application program is executed, the application 400 transmits an execution notification message to the peripheral device 400 and receives the original message including the core code source and the code attribute information of the application program from the peripheral device 400.

다음으로 암복호화부(320)는 통신부(310)를 통하여 인증 서버(200)로부터 수신한 원본 메시지를 복호화한다. 또한 암복호화부(320)는 인증 서버(200)로 전송할 실행 알림 메시지를 암호화할 수 있다. Next, the encryption / decryption unit 320 decrypts the original message received from the authentication server 200 through the communication unit 310. Also, the encryption / decryption unit 320 may encrypt an execution notification message to be transmitted to the authentication server 200.

그리고 코드인식부(330)는 인증 서버(200)로부터 수신한 코드 속성 정보를 이용하여 사용자 단말기(300)에 설치된 응용 프로그램의 핵심 코드를 인식한다. 그리고 핵심 코드를 인식한 코드인식부(330)는 사용자 단말기(300)를 검사 모드로 전환한다. The code recognition unit 330 recognizes the core code of the application program installed in the user terminal 300 by using the code property information received from the authentication server 200. [ Then, the code recognition unit 330 recognizing the core code switches the user terminal 300 to the inspection mode.

마지막으로, 위변조 판단부(340)는 해당 사용자 단말기(100)에 설치된 응용 프로그램에서 인식한 핵심 코드와 통신부(310)를 통하여 수신한 응용 프로그램의 핵심 코드 원본을 비교하여 해당 응용 프로그램의 위변조 여부를 판단한다. The forgery and falsification determining unit 340 compares the core code recognized by the application program installed in the corresponding user terminal 100 with the core code source of the received application program through the communication unit 310 to determine whether the application program is forged or not .

이때, 위변조 판단부(340)는 핵심 코드 원본과 코드인식부(330)에서 인식한 응용 프로그램의 핵심 코드를 명령어 단위로 비교할 수 있다. 그리고 코드인식부(330)는 사용자 단말기(300)를 검사 모드로 전환한 상태에서 핵심 코드를 비교할 수 있다. 또한 위변조 판단부(340)는 응용 프로그램의 위변조 여부 판단 결과에 따라 해당 응용 프로그램의 실행 여부를 결정한다. At this time, the forgery and falsification determining unit 340 may compare the core code source and the core code of the application program recognized by the code recognition unit 330 on a command-by-command basis. The code recognition unit 330 can compare the core code with the user terminal 300 switched to the test mode. The forgeries / falsely determining unit 340 determines whether to execute the corresponding application program according to a result of determining whether the application program is forged or falsified.

본 발명의 실시예에 따른 응용 프로그램의 위변조 여부 탐지 시스템은 주변기기를 더 포함할 수 있으며, 도 4는 본 발명의 실시예에 따른 주변기기의 구성을 나타낸 블록도이다. FIG. 4 is a block diagram illustrating a configuration of a peripheral device according to an exemplary embodiment of the present invention. Referring to FIG. 4, a system for detecting forgery or falsification of an application program according to an exemplary embodiment of the present invention may further include a peripheral device.

도 4에 나타낸 것처럼, 주변기기(400)는 통신부(410)와 저장부(420)를 포함한다. 먼저 통신부(410)는 사용자 단말기(300)와 통신을 수행한다. 사용자 단말기(300)와 유선 또는 무선으로 페어링 연결할 때, 사용자 단말기(300)로부터 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 수신한다. 그리고 사용자 단말기(300)에 설치된 응용 프로그램이 실행될 때, 사용자 단말기(300)로부터 실행 알림 메시지를 수신하고, 사용자 단말기(300)로 원본 메시지를 전송한다. As shown in FIG. 4, the peripheral device 400 includes a communication unit 410 and a storage unit 420. First, the communication unit 410 performs communication with the user terminal 300. And receives the core code source and code property information of the application program from the user terminal 300 when the user terminal 300 is paired with the wired or wireless connection. When the application program installed in the user terminal 300 is executed, the execution notification message is received from the user terminal 300 and the original message is transmitted to the user terminal 300.

그리고 저장부(420)는 통신부(410)가 수신한 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 저장한다. The storage unit 420 stores the core code source and the code property information of the application program received by the communication unit 410.

저장부(420)는 서로 다른 복수의 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 저장할 수 있으며, 복수의 핵심 코드 원본과 코드 속성 정보를 저장하고 있는 경우, 통신부(410)는 저장부(420)에 저장된 복수의 핵심 코드 원본과 코드 속성 정보 중에서 수신한 실행 알림 메시지에 포함된 응용 프로그램 정보에 대응하는 핵심 코드 원본 및 코드 속성 정보를 사용자 단말기(300)로 전송한다. The storage unit 420 may store a plurality of core code sources and code property information of a plurality of different application programs. When storing a plurality of core code sources and code property information, the communication unit 410 may include a storage unit 420, To the user terminal 300, a core code source and code attribute information corresponding to the application program information included in the received execution notification message, among the plurality of core code sources and the code property information stored in the execution notification message.

이하에서는 도 5 내지 도 8을 통하여 본 발명의 실시예에 따른 응용 프로그램의 위변조 여부를 탐지하는 방법에 대하여 더욱 상세하게 설명한다. Hereinafter, a method for detecting forgery or falsification of an application program according to an embodiment of the present invention will be described in more detail with reference to FIG. 5 through FIG.

도 5 내지 도 6b는 본 발명의 제1 실시예를 설명하기 위한 도면으로, 주변 기기를 포함하지 않고 인증 서버를 통하여 위변조 여부를 판단하기 위한 기술이며, 도 7 및 도 8은 본 발명의 제2 실시예를 설명하기 위한 도면으로, 주변 기기를 이용하여 위변조 여부를 판단하기 위한 기술이다. 5 and 6B are diagrams for explaining a first embodiment of the present invention, which is a technique for judging whether or not a forgery or falsification has been made through an authentication server without including a peripheral device. FIGS. 7 and 8 are views FIG. 3 is a diagram for explaining an embodiment, and is a technique for determining whether a peripheral device is used for forgery or falsification.

먼저, 도 5는 본 발명의 제1 실시예에 따른 응용 프로그램의 위변조 여부를 탐지하는 방법을 설명하기 위한 순서도이고, 도 6a 및 도 6b는 본 발명의 제1 실시예에 따른 사용자 단말기와 인증 서버의 통신을 설명하기 위한 도면이다. FIG. 5 is a flowchart illustrating a method for detecting whether an application program is forged or falsified according to the first embodiment of the present invention. FIGS. 6A and 6B illustrate a method for detecting whether a user program Fig.

도 5에 나타낸 것처럼, 사용자 단말기(300)에 설치된 응용 프로그램이 실행되면, 사용자 단말기(300)는 인증 서버(200)로 실행 알림 메시지를 전송한다(S510). 이때, 실행 알림 메시지에는 사용자 단말기(300)의 정보와 사용자가 실행시키고자 하는 응용 프로그램의 정보가 포함되어 있으며, 사용자 단말기(300)는 응용 프로그램의 위변조 여부 탐지에 필요한 핵심 코드 원본과 코드 속성 정보의 전송을 요청하기 위하여 실행 알림 메시지를 인증 서버(200)로 전송한다. As shown in FIG. 5, when an application program installed in the user terminal 300 is executed, the user terminal 300 transmits an execution notification message to the authentication server 200 (S510). At this time, the execution notification message includes information of the user terminal 300 and information of an application program to be executed by the user. The user terminal 300 includes a core code source necessary for detecting whether the application program is forged or not, To the authentication server 200, an execution notification message.

도 6a 및 도 6b에 나타낸 것처럼, 사용자 단말기(300)는 인증 서버(200)로 사용자 단말기 정보(DI)와 사용자 단말기(300)에서 실행하기 전에 위변조 여부를 검사하고자 하는 응용 프로그램의 정보(AS)가 포함된 실행 알림 메시지를 전송한다. 6A and 6B, the user terminal 300 transmits user terminal information DI and information AS of an application program to be checked for forgery before execution in the user terminal 300, And the like.

여기서, 인증 서버(200)는 사용자 단말기(300)에 설치된 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 응용 프로그램 제공 서버(100)로부터 수신하여 미리 저장하고 있다. Here, the authentication server 200 receives the key code source and code property information of the application program installed in the user terminal 300 from the application program providing server 100 and stores the key code source and code property information in advance.

다음으로 사용자 단말기(300)는 인증 서버(200)로부터 원본 메시지를 수신한다(S520). 이때, 원본 메시지에는 S510 단계에서 사용자 단말기(300)가 인증 서버(200)로 요청한 응용 프로그램의 핵심 코드 원본과 코드 속성 정보가 포함되어 있다. Next, the user terminal 300 receives the original message from the authentication server 200 (S520). At this time, the original message includes the core code source and the code attribute information of the application program requested by the user terminal 300 to the authentication server 200 in step S510.

한편, 핵심 코드는 응용 프로그램 제공 서버(100)가 응용 프로그램 패키지를 디컴파일한 실행 파일 중에서 설정된 것으로서, 응용 프로그램 제공 서버(100)는 응용 프로그램을 실행할 때 생략이 불가능하고, 반드시 한 번 이상 실행되어야 하는 부분을 핵심 코드로 선택한다. 즉 분기문이나 조건문 등으로 실행 순서가 여러 조건에 의해 변경되지 않는 부분들이 핵심 코드로 선택된다. On the other hand, the core code is set in the executable file in which the application program providing server 100 has decompiled the application program package. Therefore, the application program providing server 100 must not be omitted when executing the application program and must be executed at least once As the core code. In other words, branch code, conditional statement, etc. are selected as the core code in which the execution order is not changed by various conditions.

응용 프로그램 제공 서버(100)는 사용자에 의하여 응용 프로그램의 핵심 코드를 설정할 수도 있고, 모바일 플랫폼에서 미리 정의해 둔 함수를 사용하여 핵심 코드를 설정할 수도 있다. The application providing server 100 may set the core code of the application program by the user or may set the core code using the function defined in advance in the mobile platform.

그리고 응용 프로그램 제공 서버(100)는 핵심 코드를 설정할 때, 해당 응용 프로그램을 실행시키는 사용자 단말기가 외부와 통신을 하지 않고도 기기 내에서 수행 가능한 위변조 탐지 코드를 핵심 코드에 삽입할 수 있다. 삽입되는 위변조 탐지 코드는 응용 프로그램의 실행 파일 전체의 해시값을 이용할 수 있으며, 인증을 위한 데이터가 위변조 탐지 코드 내에 저장된다. When the application program providing server 100 sets the core code, the user terminal executing the application program can insert a forgery detection code that can be executed in the device into the core code without communicating with the outside. The inserted forgery detection code can use the hash value of the entire executable file of the application program, and the data for authentication is stored in the forgery detection code.

또한 핵심 코드와 함께 핵심 코드의 메타 데이터인 코드 속성 정보도 인증 서버(200)에 저장되어 있다. 코드 속성 정보는 대량의 코드 중에서 핵심 코드를 효율적으로 찾아내서 이용하기 위하여 일정한 규칙에 따라 코드에 부여된 데이터이다. 코드 속성 정보는 핵심 코드가 속한 함수와 클래스 정보, 코드의 길이 등을 포함할 수 있으며, 핵심 코드의 위치와 내용, 해당 코드의 작성자에 관한 정보, 이용 내력 등이 기록되어 있을 수 있다. In addition to the core code, code attribute information, which is metadata of the core code, is also stored in the authentication server 200. Code attribute information is data assigned to a code according to a certain rule in order to efficiently find and use a core code among a large amount of codes. The code property information may include the function and class information to which the core code belongs, the length of the code, and the like. The location and contents of the core code, information about the creator of the code, and history of use may be recorded.

그리고 인증 서버(200)는 응용 프로그램 제공 서버(100)으로부터 핵심 코드 원본과 코드 속성 정보를 수신하지 않고, 인증 서버(200)가 핵심 코드와 코드 속성 정보를 설정할 수도 있다. 인증 서버(200)는 응용 프로그램 제공 서버(100)로부터 수신한 응용 프로그램 파일을 이용하여 핵심 코드와 코드 속성 정보를 설정할 수 있으며, 핵심 코드를 설정하는 과정에서 위변조 탐지 코드가 삽입될 수 있다. 삽입된 위변조 탐지 코드를 이용하여 한 번의 핵심 코드 비교를 통하여 응용 프로그램 전체의 위변조 여부를 판단할 수 있다. The authentication server 200 can also set the core code and the code attribute information without receiving the core code source and the code attribute information from the application program providing server 100. [ The authentication server 200 can set the core code and the code attribute information using the application program file received from the application program providing server 100. In the process of setting the core code, the forgery detection code can be inserted. It is possible to judge whether or not the entire application program is forged or falsified through one key code comparison using the inserted forgery detection code.

핵심 코드 원본과 코드 속성 정보를 수신하여 저장하거나, 핵심 코드의 설정을 완료한 인증 서버(200)는 사용자 단말기(300)로부터 핵심 코드 원본의 전송을 요청하는 실행 알림 메시지를 수신하면, 인증 서버(200)는 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 포함하는 원본 메시지를 사용자 단말기(300)로 전송한다. 그리고 사용자 단말기(300)는 S520 단계에서 인증 서버(200)로부터 원본 메시지를 수신한다. Upon receiving the core code source and code property information and storing the core code or completing the setting of the core code, the authentication server 200 receives an execution notification message requesting transmission of the core code source from the user terminal 300, 200 transmits an original message including a core code source of the application program and code attribute information to the user terminal 300. The user terminal 300 receives the original message from the authentication server 200 in step S520.

도 5 내지 도 6b에 나타낸 것처럼, 인증 서버(200)는 핵심 코드 원본 및 코드 속성 정보(CM)의 해시 값(H(CM))을 구하고, 해시 값(H(CM))을 인증 서버(200)의 개인키(PR)로 암호화하여 서명값(SE(PR,H(CM)))을 생성한다. 그리고 인증 서버(200)는 사용자 단말기(300)의 공개키(PU)로 비밀키(SK)를 암호화(EP(PU,SK))하고, 핵심 코드 원본과 코드 속성 정보(CM)를 비밀키(SK)를 이용하여 암호화(EC(SK,CM))하며, 암호화된 결과((SE(PR,H(CM))), (EP(PU,SK)), (EC(SK,CM)))를 사용자 단말기(300)로 전송한다. 5 to 6B, the authentication server 200 obtains the hash value H (CM) of the key code source and the code property information CM and the hash value H (CM) ) To generate a signature value SE (PR, H (CM)). Then, the authentication server 200 encrypts the secret key SK (EP (PU, SK)) with the public key (PU) of the user terminal 300 and transmits the key code source and the code property information CM to the secret key SK), EC (SK, CM)) and encrypted results (SE (PR, H (CM)), EP (PU, SK) To the user terminal (300).

즉, 사용자 단말기(300)가 수신한 핵심 코드 원본과 코드 속성 정보는 해시 기반 메시지 인증 코드로 암호화되었다. 여기서, 해시 기반 메시지 인증 코드(HMAC, Hash-based Message Authentication Code)는 암호화 해시 기능을 이용한 메시지 인증 기능을 의미한다. HMAC는 반복적인 암호화 해시 기능을 비밀 공용키와 함께 사용하며, 체크섬을 변경하는 것이 불가능하도록 한 인증 코드이다. That is, the core code source and the code attribute information received by the user terminal 300 are encrypted with a hash-based message authentication code. Here, the hash-based message authentication code (HMAC) means a message authentication function using a cryptographic hash function. HMAC is an authentication code that uses an iterative cryptographic hash function with a secret public key, making it impossible to change the checksum.

사용자 단말기(300)는 인증 서버(200)로부터 수신한 원본 메시지를 복호화하여 핵심 코드 원본과 코드 속성 정보를 획득한다(S530). The user terminal 300 decodes the original message received from the authentication server 200 to obtain the core code source and the code attribute information (S530).

암복호화부(320)는 인증 서버(200)의 공개키를 이용하여 수신한 핵심 코드 원본과 코드 속성 정보의 서명을 검증한다. 서명 검증 결과 무결성이 입증되면, 사용자 단말기(300)는 사용자 단말기(300)의 공개키(PU)로 암호화된 메시지를 사용자 단말기(300)의 개인키로 복호화하여 비밀키(SK)를 획득한다. 그리고 획득한 비밀키(SK)를 이용하여 핵심 코드 원본과 코드 속성 정보(CM)를 복호화한다. The encryption / decryption unit 320 verifies the signature of the received core code source and code attribute information using the public key of the authentication server 200. If the integrity of the signature verification result is verified, the user terminal 300 decrypts the message encrypted with the public key (PU) of the user terminal 300 with the private key of the user terminal 300 to obtain the secret key (SK). Then, the core code source and the code property information (CM) are decoded using the obtained secret key (SK).

다음으로 사용자 단말기(300)는 사용자 단말기(300)에 설치된 응용 프로그램의 핵심 코드를 인식한다(S540). 사용자 단말기(300)는 설치된 응용 프로그램의 코드를 읽고, 인증 서버(200)로부터 수신하여 복호화한 코드 속성 정보를 이용하여 설치된 응용 프로그램의 핵심 코드를 인식한다. Next, the user terminal 300 recognizes the core code of the application program installed in the user terminal 300 (S540). The user terminal 300 reads the code of the installed application program and recognizes the core code of the installed application program using the decoded code attribute information received from the authentication server 200.

그리고 사용자 단말기(300)는 검사 모드로 전환하고, 수신된 핵심 코드 원본과 인식한 핵심 코드를 비교한다(S550). Then, the user terminal 300 switches to the test mode, and compares the received core code with the recognized core code (S550).

다음으로 사용자 단말기(300)는 핵심 코드의 비교 결과에 따라 응용 프로그램의 실행 여부를 결정한다(S560). S520 단계에서 수신된 핵심 코드 원본과 S540 단계에서 인식된 핵심 코드의 비교 결과, 핵심 코드 원본과 인식된 핵심 코드가 동일하면 사용자 단말기(300)는 해당 응용 프로그램은 위변조되지 않은 것으로 판단하고, 실행 모드로 전환하여 해당 응용 프로그램을 실행한다. Next, the user terminal 300 determines whether to execute the application program according to the comparison result of the core code (S560). As a result of comparison between the core code received in step S520 and the core code recognized in step S540, if the core code is identical to the recognized core code, the user terminal 300 determines that the application program is not forged, And executes the corresponding application program.

그러나 S520 단계에서 수신한 핵심 코드 원본과 S540 단계에서 인식한 핵심 코드가 서로 상이하면, 사용자 단말기(300)는 해당 응용 프로그램이 위변조된 것으로 판단하고 해당 프로그램의 실행을 종료한다. However, if the core code received in step S520 and the core code recognized in step S540 are different from each other, the user terminal 300 determines that the application program is forged and terminates execution of the corresponding program.

사용자 단말기(300)는 설치된 응용 프로그램이 위변조된 것으로 판단한 경우, 해당 응용 프로그램이 위변조되었음을 사용자가 인지할 수 있도록 표시하거나, 응용 프로그램 제공 서버(100) 또는 인증 서버(200)로 해당 응용 프로그램의 위변조된 프로그램이 유포되었음을 알리는 메시지를 전송할 수 있다. The user terminal 300 displays a message indicating that the application program has been forged or tampered when the installed application program is found to be falsified, or displays the application program to the application server 100 or the authentication server 200, A message indicating that the program has been circulated can be transmitted.

이하에서는 도 7 및 도 8을 통하여 본 발명의 실시예에 따른 응용 프로그램의 위변조 여부 탐지 시스템이 주변기기(400)를 포함하는 경우, 응용 프로그램의 위변조 여부를 탐지하는 방법에 대하여 상세하게 설명한다. Hereinafter, a method for detecting forgery or falsification of an application program in the case where the forgery falsification detection system according to an embodiment of the present invention includes the peripheral device 400 will be described in detail with reference to FIG. 7 and FIG.

도 7은 본 발명의 제2 실시예에 따른 응용 프로그램의 위변조 여부를 탐지하는 방법을 설명하기 위한 순서도이고, 도 8은 본 발명의 제2 실시예에 따른 사용자 단말기와 주변기기의 통신을 설명하기 위한 도면이다.FIG. 7 is a flowchart illustrating a method of detecting forgery or falsification of an application program according to a second embodiment of the present invention. FIG. 8 is a flowchart illustrating a method of detecting communication between a user terminal and a peripheral device according to a second embodiment of the present invention. FIG.

도 7에 나타낸 것처럼, 사용자 단말기(300)에 응용 프로그램을 설치하는 과정에서, 사용자 단말기(300) 주변에 주변기기(400)가 존재하는 경우, 사용자 단말기(300)는 인증 서버(200)로 요청 메시지를 전송한다(S710). 7, when the peripheral device 400 exists around the user terminal 300 in the process of installing the application program in the user terminal 300, the user terminal 300 transmits a request message to the authentication server 200 (S710).

사용자 단말기(300)가 인증 서버(200)로 요청 메시지를 전송하는 S710 단계는 도 5의 S510 단계와 실질적으로 동일한 바, 중복되는 설명은 생략한다.The step S710 of transmitting the request message from the user terminal 300 to the authentication server 200 is substantially the same as the step S510 of FIG. 5, and a duplicate description will be omitted.

그리고 사용자 단말기(300)는 인증 서버(200)로부터 응답 메시지를 수신한다(S720). 여기서 응답 메시지는 도 5의 S520 단계에서 사용자 단말기(300)가 수신하는 원본 메시지와 실질적으로 동일한 바, 중복되는 설명은 생략한다. The user terminal 300 receives a response message from the authentication server 200 (S720). Here, the response message is substantially the same as the original message received by the user terminal 300 in step S520 of FIG. 5, and redundant description will be omitted.

다음으로 사용자 단말기(300)는 수신한 응답 메시지를 복호화한다(S730). 사용자 단말기(300)는 응답 메시지를 복호화하여 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 획득한다. S730 단계는 도 5의 S530 단계와 실질적으로 동일한 바, 중복되는 설명은 생략한다.Next, the user terminal 300 decodes the received response message (S730). The user terminal 300 decodes the response message to obtain the core code source and the code property information of the application program. The step S730 is substantially the same as the step S530 of FIG. 5, and a duplicate description will be omitted.

그리고 사용자 단말기(300)는 주변기기(400)로 핵심 코드 원본과 코드 속성 정보를 전송하고(S740), 주변기기(400)는 수신한 핵심 코드 원본 및 코드 속성 정보를 저장한다(S750). Then, the user terminal 300 transmits the core code source and code attribute information to the peripheral device 400 in step S740, and the peripheral device 400 stores the received core code source and code attribute information in step S750.

S740 단계에서, 사용자 단말기(300)는 도 8에 나타낸 것처럼, 사용자 단말기(300)의 정보(DI)와 응용 프로그램의 핵심 코드 원본 및 코드 속성 정보(CM)을 함께 전송할 수 있다. In step S740, the user terminal 300 may transmit the information DI of the user terminal 300, the core code source of the application program, and the CM information CM together, as shown in FIG.

또한 사용자 단말기(300)는 S740 단계에서 주변기기(400)로 핵심 코드 원본과 코드 속성 정보를 전송하기 전에, 사용자 단말기(300)와 연결할 주변기기(400) 간의 페어링(Pairing) 작업을 수행할 수 있다. The user terminal 300 may perform a pairing operation between the user terminal 300 and the peripheral device 400 to be connected before transmitting the core code original and the code attribute information to the peripheral device 400 in step S740.

페어링이란 유선 또는 무선 통신을 통하여 두 기기를 하나의 쌍으로 묶는 것을 의미하며, 본 발명의 실시예에 따른 모바일 응용 프로그램 위변조 탐지 방법에서는 사용자 단말기(300)와 주변기기(400)를 하나의 쌍으로 연결하는 페어링 작업을 수행한다. 사용자 단말기(300)는 페어링 작업으로 주변기기(400)와 연결한 후, S740 단계를 통하여 페어링된 주변기기(400)로 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 전송할 수 있다. In the mobile application forgery detection method according to the embodiment of the present invention, the user terminal 300 and the peripheral device 400 are connected to each other in a pair To perform a pairing operation. The user terminal 300 may connect the peripheral device 400 with the peripheral device 400 through a pairing operation and then transmit the core code source and the code attribute information of the application program to the peripheral device 400 paired in operation S740.

설명의 편의상, 사용자 단말기(300)는 인증 서버(200)로부터 응답 메시지를 수신하고, 수신한 응답 메시지를 복호화한 다음에 주변기기(400)와 페어링 연결을 수행하는 것으로 설명하였다. 그러나 이에 한정하지 않고, 사용자 단말기(300)와 근접한 위치에 주변기기(400)가 존재하는 경우 통신부(310)는 해당 주변기기(400)와 페어링 작업을 수행한 후, 인증 서버(200)로 요청 메시지를 전송하도록 설계할 수 있다. For convenience of explanation, the user terminal 300 receives a response message from the authentication server 200, decrypts the received response message, and then performs a pairing connection with the peripheral device 400. [ However, the present invention is not limited thereto, and if the peripheral device 400 exists at a position close to the user terminal 300, the communication unit 310 performs a pairing operation with the peripheral device 400 and then transmits a request message to the authentication server 200 Lt; / RTI >

반면, 사용자 단말기(300)에 이미 설치되어 있는 응용 프로그램이 실행되는 경우, 주변기기(400)는 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 이미 저장하고 있으므로 사용자 단말기(300)는 S710 단계 내지 S750 단계를 생략하고, 후술할 S760 단계를 수행한다. On the other hand, when the application program already installed in the user terminal 300 is executed, since the peripheral device 400 already stores the core code source and the code property information of the application program, the user terminal 300 proceeds from step S710 to step S750 Steps are omitted, and step S760 to be described later is performed.

사용자 단말기(300)에 이미 설치되어 있는 응용 프로그램이 실행되는 경우, 사용자 단말기(300)는 사용자 단말기(300)와 페어링되어 있으며, 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보를 저장하고 있는 주변기기(400)로 실행 알림 메시지를 전송한다(S760). When an application program already installed in the user terminal 300 is executed, the user terminal 300 is paired with the user terminal 300, and is connected to a peripheral device (not shown) 400 in step S760.

도 8에 나타낸 것처럼, 사용자 단말기(300)는 사용자 단말기(300)의 정보(DI)와 응용 프로그램의 핵심 코드 원본 및 코드 속성 정보(CM)을 주변기기(400)로 전송한다. 8, the user terminal 300 transmits the information DI of the user terminal 300, the core code source of the application program, and the code attribute information CM to the peripheral device 400. [

다음으로 사용자 단말기(300)는 주변기기(400)로부터 해당 응용 프로그램의 핵심 코드 원본과 코드 속성 정보가 포함된 원본 메시지를 수신한다(S770). 도 8과 같이, 원본 메시지는 주변기기(400)의 정보(SD)와 응용 프로그램의 핵심 코드 원본 및 코드 속성 정보(CM)을 포함한다. Next, the user terminal 300 receives the original message including the core code source and the code attribute information of the application program from the peripheral device 400 (S770). As shown in FIG. 8, the original message includes information (SD) of the peripheral device 400, a core code source of the application program, and code property information (CM).

그리고 코드 인식부(330)는 수신된 코드 속성 정보를 이용하여 사용자 단말기(300)에 설치된 응용 프로그램의 핵심 코드를 인식한다(S780). Then, the code recognition unit 330 recognizes the core code of the application program installed in the user terminal 300 using the received code attribute information (S780).

다음으로 사용자 단말기(300)는 검사 모드로 전환하고, 사용자 단말기(300)가 수신한 핵심 코드 원본과 인식한 핵심 코드를 비교한다(S790). 그리고 핵심코드의 비교 결과에 따라 해당 응용 프로그램의 실행 여부를 결정한다(S800). Next, the user terminal 300 switches to the test mode and compares the received core code received by the user terminal 300 with the recognized core code (S790). Then, it is determined whether the application program is executed according to the comparison result of the core code (S800).

핵심 코드 비교 결과, 핵심 코드 원본과 인식한 핵심 코드가 동일한 경우, 위변조 판단부(340)는 해당 응용 프로그램을 위변조되지 않은 것으로 판단하고, 사용자 단말기(300)를 실행 모드로 전환하여, 해당 응용 프로그램을 실행한다. If the core code is identical to the recognized core code, the forgery and falsification determining unit 340 determines that the corresponding application program is not falsified, converts the user terminal 300 into the execution mode, .

그러나, 핵심 코드 원본과 인식한 핵심 코드가 동일하지 않은 경우, 위변조 판단부(340)는 해당 응용 프로그램이 위변조된 것으로 판단하고, 응용 프로그램을 종료한다. However, if the core code and the recognized core code are not the same, the forgery and falsification determining unit 340 determines that the application program is forged and terminates the application program.

사용자 단말기(300)에 설치된 응용 프로그램이 위변조된 것으로 판단된 경우, 위변조 판단부(340)는 해당 응용 프로그램이 위변조되었음을 사용자 단말기(300)의 사용자가 인지할 수 있도록 표시하거나, 응용 프로그램 제공 서버(100) 또는 인증 서버(200)로 해당 응용 프로그램의 위변조된 프로그램이 유포되었음을 알리는 메시지를 전송할 수 있다. If it is determined that the application program installed in the user terminal 300 has been forged or falsified, the forgery / falsification determining unit 340 displays the forgery / falsification of the application program so that the user of the user terminal 300 can recognize the application program, 100 or the authentication server 200. In this case, the authentication server 200 transmits a message indicating that the forged program of the application program has been distributed.

이와 같이 본 발명의 실시예에 따르면 핵심 코드를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법을 이용함으로써, 응용 프로그램의 위변조 여부를 탐지하여 위변조된 응용 프로그램으로부터 사용자 단말기를 보호할 수 있다. 또한 플랫폼 수준에서 응용 프로그램 위변조를 탐지함으로써, 우회 및 회피가 가능한 응용 프로그램 수준에서의 위변조 탐지 방법의 한계점을 극복할 수 있다.As described above, according to the embodiment of the present invention, by using the user terminal which detects whether the application program is forged or falsified by using the core code and the forgery detection method using the same, it is possible to detect whether the application program is forged or falsified, Can be protected. By detecting application forgery and alteration at platform level, we can overcome limitations of forgery detection method at application level which can bypass and avoid.

또한 응용 프로그램의 위변조 여부 탐지에 필요한 핵심 코드 원본과 코드 속성 정보를 주변기기에 저장하는 경우, 인터넷 환경이 열악한 조건에서도 사용자 단말기는 주변기기로부터 핵심 코드 원본과 코드 속성 정보를 수신하여 해당 응용 프로그램의 위변조 여부를 탐지할 수 있다.In addition, when storing the core code source and code property information necessary for detecting forgery of the application program in the peripheral device, even if the internet environment is poor, the user terminal receives the core code source and code property information from the peripheral device, Can be detected.

이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, Of the right.

100 : 응용 프로그램 제공 서버 200 : 인증 서버
210 : 통신부 220 : 암복호화부
230 : 데이터베이스 300 : 사용자 단말기
310 : 통신부 320 : 암복호화부
330 : 코드인식부 340 : 위변조 판단부
400 : 주변기기 410 : 통신부
420 : 저장부
100: application providing server 200: authentication server
210: communication unit 220:
230: Database 300: User terminal
310: communication unit 320:
330: code recognition unit 340: forgery /
400: peripheral device 410: communication part
420:

Claims (12)

설치된 응용 프로그램의 위변조를 탐지하기 위한 사용자 단말기에 있어서,
상기 설치된 응용 프로그램이 실행되면, 플랫폼 레벨에서 인증 서버 또는 상기 사용자 단말기와 페어링된 주변기기로 상기 사용자 단말기의 정보와 상기 응용 프로그램의 정보를 전송하고, 상기 인증 서버 또는 상기 주변기기로부터 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 수신하는 통신부,
플랫폼 레벨에서 상기 수신된 코드 속성 정보를 이용하여 상기 사용자 단말기에 설치된 상기 응용 프로그램의 핵심 코드를 인식하는 코드인식부, 그리고
플랫폼 레벨에서 상기 수신된 응용 프로그램의 핵심 코드 원본과 상기 인식된 핵심 코드를 비교하여 상기 응용 프로그램의 위변조 여부를 판단하는 위변조 판단부를 포함하며,
상기 핵심 코드는,
사용자에 의해 선택되거나, 플랫폼에서 미리 정의한 함수를 이용하여 선택되는 사용자 단말기.
A user terminal for detecting forgery and falsification of an installed application program,
When the installed application program is executed, transmits the information of the user terminal and the information of the application program to the authentication server or the peripheral device paired with the user terminal at the platform level, and transmits the information of the application program from the authentication server or the peripheral device A communication unit for receiving the original and the code property information,
A code recognition unit for recognizing a core code of the application program installed in the user terminal using the received code attribute information at a platform level,
And a forgery and falsification determining unit for determining whether the application program is forged or falsified by comparing the received core code of the received application program with the recognized core code at a platform level,
The core code includes:
Wherein the user terminal is selected by using a predefined function in the platform.
제1항에 있어서,
상기 응용 프로그램이 설치될 때 상기 사용자 단말기가 상기 주변 기기와 페어링 되어 있는 경우,
상기 통신부는,
상기 인증 서버로부터 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 수신하여 상기 주변 기기로 전달하는 사용자 단말기.
The method according to claim 1,
When the user terminal is paired with the peripheral device when the application program is installed,
Wherein,
And receiving the core code source and the code property information of the application program from the authentication server and transmitting the core code source and the code property information to the peripheral device.
제1항에 있어서,
상기 위변조 판단부는,
상기 사용자 단말기를 검사 모드로 전환한 상태에서 상기 핵심 코드 원본과 상기 인식된 핵심 코드를 비교하여 상기 응용 프로그램의 위변조 여부를 판단하며,
상기 응용 프로그램이 위변조된 것으로 판단되면 상기 응용 프로그램의 실행을 종료하고, 상기 응용 프로그램이 위변조되지 않은 것으로 판단되면, 실행 모드로 전환하여 상기 응용 프로그램을 실행하는 사용자 단말기.
The method according to claim 1,
The forgery /
Comparing the core code source with the recognized core code in a state where the user terminal is switched to the inspection mode to determine whether the application program is forged or not,
And terminates the execution of the application program if the application program is determined to be forged, and switches to the execution mode to execute the application program when the application program is determined not to be forged.
제1항에 있어서, 상기 위변조 판단부는,
상기 인증 서버로부터 수신한 핵심 코드 원본과 상기 코드인식부에서 인식된 핵심 코드를 명령어 단위로 비교하는 사용자 단말기.
The apparatus of claim 1, wherein the forgery /
And compares the core code received from the authentication server with the core code recognized by the code recognition unit on a command word basis.
삭제delete 제1항에 있어서,
상기 인증 서버로부터 수신한 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 복호화하는 암복호화부를 더 포함하는 사용자 단말기.
The method according to claim 1,
Further comprising: an encryption / decryption unit for decrypting the core code source and the code attribute information of the application program received from the authentication server.
응용 프로그램이 설치된 사용자 단말기의 응용 프로그램 위변조 탐지 방법에 있어서,
상기 설치된 응용 프로그램이 실행되면, 플랫폼 레벨에서 인증 서버 또는 상기 사용자 단말기와 페어링된 주변기기로 상기 사용자 단말기의 정보와 상기 응용 프로그램의 정보를 전송하고, 상기 인증 서버 또는 상기 주변기기로부터 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 수신하는 단계,
플랫폼 레벨에서 상기 수신된 코드 속성 정보를 이용하여 상기 사용자 단말기에 설치된 상기 응용 프로그램의 핵심 코드를 인식하는 단계, 그리고
플랫폼 레벨에서 상기 수신된 응용 프로그램의 핵심 코드 원본과 상기 인식된 핵심 코드를 비교하여 상기 응용 프로그램의 위변조 여부를 판단하는 단계를 포함하며,
상기 핵심 코드는,
사용자에 의해 선택되거나, 플랫폼에서 미리 정의한 함수를 이용하여 선택되는 응용 프로그램 위변조 탐지 방법.
A method for detecting an application forgery of a user terminal installed with an application program,
When the installed application program is executed, transmits the information of the user terminal and the information of the application program to the authentication server or the peripheral device paired with the user terminal at the platform level, and transmits the information of the application program from the authentication server or the peripheral device Receiving the original and the code property information,
Recognizing a core code of the application program installed in the user terminal using the received code attribute information at a platform level, and
Comparing the core code of the received application program with the recognized core code at the platform level to determine whether the application program is forged or not,
The core code includes:
A method for detecting forgery of an application program selected by a user or selected using a predefined function in a platform.
제7항에 있어서,
상기 응용 프로그램이 설치될 때 상기 사용자 단말기가 상기 주변 기기와 페어링 되어 있는 경우,
상기 인증 서버로부터 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 수신하여 상기 주변 기기로 전달하는 응용 프로그램 위변조 탐지 방법.
8. The method of claim 7,
When the user terminal is paired with the peripheral device when the application program is installed,
And receiving the core code source and the code attribute information of the application program from the authentication server and delivering the core code source and the code attribute information to the peripheral device.
제7항에 있어서,
상기 응용 프로그램의 위변조 여부를 판단하는 단계는,
상기 사용자 단말기를 검사 모드로 전환한 상태에서 상기 핵심 코드 원본과 상기 인식된 핵심 코드를 비교하여 상기 응용 프로그램의 위변조 여부를 판단하며,
상기 응용 프로그램이 위변조된 것으로 판단되면 상기 응용 프로그램의 실행을 종료하고, 상기 응용 프로그램이 위변조되지 않은 것으로 판단되면, 실행 모드로 전환하여 상기 응용 프로그램을 실행하는 응용 프로그램 위변조 탐지 방법.
8. The method of claim 7,
Wherein the step of determining whether the application program is forged or not,
Comparing the core code source with the recognized core code in a state where the user terminal is switched to the inspection mode to determine whether the application program is forged or not,
And terminating execution of the application program if it is determined that the application program has been forged or altered; and switching to an execution mode to execute the application program if the application program is determined not to be forged.
제7항에 있어서,
상기 인증 서버로부터 수신한 핵심 코드 원본과 상기 인식된 핵심 코드를 명령어 단위로 비교하는 응용 프로그램 위변조 탐지 방법.
8. The method of claim 7,
And comparing the core code original received from the authentication server and the recognized core code on a command word basis.
삭제delete 제7항에 있어서,
상기 인증 서버로부터 수신한 상기 응용 프로그램의 핵심 코드 원본과 상기 코드 속성 정보를 복호화하는 응용 프로그램 위변조 탐지 방법.
8. The method of claim 7,
And decrypting the core code source and the code attribute information of the application program received from the authentication server.
KR1020150002934A 2014-10-20 2015-01-08 User Terminal to Detect the Tampering of the Applications Using Core Code and Method for Tamper Detection Using the Same KR101518689B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020140141951 2014-10-20
KR20140141950 2014-10-20
KR20140141951 2014-10-20
KR1020140141950 2014-10-20

Publications (1)

Publication Number Publication Date
KR101518689B1 true KR101518689B1 (en) 2015-05-12

Family

ID=53394218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150002934A KR101518689B1 (en) 2014-10-20 2015-01-08 User Terminal to Detect the Tampering of the Applications Using Core Code and Method for Tamper Detection Using the Same

Country Status (1)

Country Link
KR (1) KR101518689B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101642252B1 (en) * 2016-06-15 2016-07-25 숭실대학교산학협력단 Apparatus for tamper detection on mobile application using image resource file and method thereof
KR20180001878A (en) * 2016-06-28 2018-01-05 삼성전자주식회사 Method for detecting the tampering of application code and electronic device supporting the same
CN107798247A (en) * 2017-11-24 2018-03-13 长沙理工大学 A kind of measurement instrument calibration method based on embedded system
CN112818348A (en) * 2021-02-24 2021-05-18 北京安信天行科技有限公司 Lesovirus file identification and detection method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067643A1 (en) * 2005-09-21 2007-03-22 Widevine Technologies, Inc. System and method for software tamper detection
KR20130085535A (en) * 2011-12-16 2013-07-30 주식회사 케이티 Apparatus for protecting forgery/alteration of application and verification apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067643A1 (en) * 2005-09-21 2007-03-22 Widevine Technologies, Inc. System and method for software tamper detection
KR20130085535A (en) * 2011-12-16 2013-07-30 주식회사 케이티 Apparatus for protecting forgery/alteration of application and verification apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101642252B1 (en) * 2016-06-15 2016-07-25 숭실대학교산학협력단 Apparatus for tamper detection on mobile application using image resource file and method thereof
KR20180001878A (en) * 2016-06-28 2018-01-05 삼성전자주식회사 Method for detecting the tampering of application code and electronic device supporting the same
KR102509594B1 (en) * 2016-06-28 2023-03-14 삼성전자주식회사 Method for detecting the tampering of application code and electronic device supporting the same
CN107798247A (en) * 2017-11-24 2018-03-13 长沙理工大学 A kind of measurement instrument calibration method based on embedded system
CN112818348A (en) * 2021-02-24 2021-05-18 北京安信天行科技有限公司 Lesovirus file identification and detection method and system
CN112818348B (en) * 2021-02-24 2023-09-08 北京安信天行科技有限公司 Leucavirus file identification and detection method and system

Similar Documents

Publication Publication Date Title
KR101537205B1 (en) User Terminal to Detect the Tampering of the Applications Using Hash Value and Method for Tamper Detection Using the Same
CN108763917B (en) Data encryption and decryption method and device
EP3704614B1 (en) Provisioning trusted execution environment based on chain of trust including platform
CN102110210B (en) Trusted Graphics Rendering for Secure Browsing on Mobile Devices
EP3142055A1 (en) Web based payment service providing apparatus, method, system, and non-transitory computer readable storage medium storing computer program recorded thereon
JP5827692B2 (en) Bound data card and mobile host authentication method, apparatus and system
EP3577616A2 (en) Terminal for conducting electronic transactions
KR20140114229A (en) Method and apparatus for mutual authenticating between applications
CN106778337B (en) Document protection method, device and terminal
KR101518689B1 (en) User Terminal to Detect the Tampering of the Applications Using Core Code and Method for Tamper Detection Using the Same
CN104123488A (en) Method and device for verifying application program
KR101566141B1 (en) User Terminal to Detect the Tampering of the Applications Using Signature Information and Method for Tamper Detection Using the Same
CN107026730B (en) Data processing method, device and system
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
CN115618306A (en) Software protection method, device and system, CPU chip and electronic equipment
KR101566143B1 (en) User Terminal to Protect the Core Codes and Method for Protecting Core Codes Using the Peripheral Devices
JP2008176429A (en) Confidential information leakage prevention system, confidential information leakage prevention method, and confidential information leakage prevention program
CN116956298A (en) Application running environment detection method and device
KR101566142B1 (en) User Terminal and Method for Protecting Core Codes of Applications Using the same
KR20150053277A (en) Method And Apparatus for Controlling Software execution
KR101566144B1 (en) User Terminal to Protect the Application Using Peripherals Authentication and Method for Protecting Application Using the same
CN105323287B (en) Third-party application program login method and system
US12125018B2 (en) Terminal for conducting electronic transactions
KR102086082B1 (en) Method and system for automatic login for legacy system using wearable terminal
KR101003242B1 (en) System for preventing illegal software copy from usb memory device and method of operating the stored software in the usb memory device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180409

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 5