WO2016064043A1 - 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법 - Google Patents

사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법 Download PDF

Info

Publication number
WO2016064043A1
WO2016064043A1 PCT/KR2015/002205 KR2015002205W WO2016064043A1 WO 2016064043 A1 WO2016064043 A1 WO 2016064043A1 KR 2015002205 W KR2015002205 W KR 2015002205W WO 2016064043 A1 WO2016064043 A1 WO 2016064043A1
Authority
WO
WIPO (PCT)
Prior art keywords
user terminal
core code
peripheral device
application
code
Prior art date
Application number
PCT/KR2015/002205
Other languages
English (en)
French (fr)
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 EP15853303.4A priority Critical patent/EP3057020B1/en
Priority to US14/785,637 priority patent/US20160275271A1/en
Priority to JP2016527324A priority patent/JP6203396B2/ja
Publication of WO2016064043A1 publication Critical patent/WO2016064043A1/ko

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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • 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
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/71Hardware identity

Definitions

  • the present invention relates to a method for protecting a core code using a user terminal and a peripheral device of the user terminal, and more particularly, a core using a user terminal and a peripheral device of the user terminal that can protect the core code of an application program from a reverse engineering attack. It is about a code protection method.
  • Smartphone users can use various services by downloading and running applications and content developed by third parties and uploaded to digital open markets such as Google Play. As a result, a lot of data is accumulated in the smartphone. Accumulated data also contains sensitive or sensitive information, and smartphone-related security technologies are being developed to protect such data.
  • the Android application unlike the iPhone application, can relatively easily extract and analyze the source code, and is the main target of a hacking attack that inserts malicious code through illegal copying and forgery of the application.
  • the present invention relates to a method for protecting a core code using a user terminal and a peripheral device of the user terminal, and more particularly, a core using a user terminal and a peripheral device of the user terminal that can protect the core code of an application program from a reverse engineering attack.
  • the purpose is to provide a code protection method.
  • the user terminal for protecting the core code receives the general code of the application in the process of downloading and installing the application from the application providing server, the application providing server Pairing unit for performing a pairing connection with the peripheral device received and stored from the core code, in the process of executing the application, the peripheral device to the unique information of the user terminal so that the paired peripheral device to perform encryption and decryption of the core code And a control unit for transmitting the execution call message to the peripheral device and receiving the execution result of the core code from the peripheral device.
  • the apparatus may further include a screen display unit configured to display the execution result of the received core code on a screen.
  • the peripheral device encrypts and stores the core code using the unique information of the user terminal when a request for first execution of the application is input, and uses the unique information of the user terminal when a request for re-execution of the application is input. By decrypting the encrypted core code and executing the decrypted core code can be transmitted to the user terminal execution results.
  • the unique information of the user terminal may include International Mobile Equipment Identity (IMEI), and the peripheral device may encrypt or decrypt the core code using the unique information of the user terminal.
  • IMEI International Mobile Equipment Identity
  • a method for protecting a core code wherein a user terminal receives a general code of the application in a process of downloading and installing an application from an application providing server, and the application providing server.
  • the core code is stored in a peripheral device paired with the user terminal, and the central processing unit of the peripheral device executes the core code, so that the core code is not exposed to the user terminal, thereby increasing the reverse engineering analysis resistance of the application. have.
  • the learner can not execute the application program to prevent fraudulent use of the application program.
  • FIG. 1 is a block diagram showing a core code protection system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of a user terminal according to an embodiment of the present invention.
  • FIG. 3 is a block diagram showing the configuration of a peripheral device according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a method of protecting a core code according to an embodiment of the present invention.
  • a core code protection system according to an exemplary embodiment of the present invention includes an application providing server 100, a user terminal 200, and a peripheral device 300.
  • the application providing server 100, the user terminal 200, and the peripheral device 300 are connected through a network. That is, as shown in FIG. 1, the user terminal 200 is connected to the application providing server 100 and the peripheral device 300 through a network, and the peripheral device 300 is connected to the application providing server 100 through a network. .
  • the network refers to a connection structure capable of exchanging information between respective nodes such as user terminals and servers, and an example of such a network includes the Internet, a local area network (LAN), and a wireless LAN (LAN).
  • LAN local area network
  • LAN wireless LAN
  • WAN Local Area Network
  • WAN Wide Area Network
  • PAN Personal Area Network
  • 3G, 4G, Wi-Fi and the like, but are not limited thereto.
  • the user terminal 200 and the peripheral device 300 may be wirelessly connected using Bluetooth, ZigBee, Infrared Data Association (IrDA), or the like.
  • Bluetooth ZigBee, Infrared Data Association (IrDA), or the like.
  • the application providing server 100 separates the application file into a core code and a general code. Then, the separated core codes and general codes are transmitted to the peripheral device 300 and the user terminal 200, respectively.
  • the application providing server 100 may set the core code through the executable file decompiled from the application package.
  • the application providing server 100 generates a general code by removing the core code from the application file.
  • the general code and the core code may be in the form of a file that can be installed and executed in the user terminal 200 and the peripheral device 300, respectively.
  • the application providing server 100 may store various types of general application codes and core codes such as finance, news, shopping, and games, and the user terminal 200 and the peripheral device 300 may store such a code.
  • the application providing server 100 may be a mobile application market.
  • various mobile application markets such as Google Play or Apple's App Store correspond to the application providing server 100.
  • the user terminal 200 receives the general code of the application program from the application program providing server 100 and installs in the user terminal 200.
  • the user terminal 200 transmits user terminal unique information to the paired peripheral 300 so that the peripheral device 300 encrypts the core code into user terminal unique information.
  • the user terminal 200 receives the execution result of the core code from the peripheral device 300 to apply or output the execution of the application program.
  • the user terminal 200 is a terminal that can be installed and executed by an application program, and corresponds to a smartphone, a smart pad, a mobile phone, a notebook computer, a tablet PC, a personal digital assistant (PDA), and the like.
  • the application can be provided as an application on the device.
  • the application here refers to an application on the terminal, and includes, for example, an app running on a mobile terminal (smartphone).
  • the user may download the app from the mobile application market, which is a virtual marketplace for freely buying and selling mobile content, and install the app on the user terminal 200 such as a smartphone.
  • the peripheral device 300 receives and stores the core code of the application from the application providing server 100. Then, the user terminal 200 receives the user terminal unique information from the paired user terminal 200, encrypts the core code, and the application program installed in the user terminal 200 is rerun to receive the user terminal unique information and the execution call message from the user terminal 200. Then, the core code is decoded using the unique information of the user terminal, and the execution result of the core code is transmitted to the user terminal 200.
  • the peripheral device 300 may display the execution result of the core code on the screen or output a sound through an output unit (not shown) of the peripheral device 300.
  • the peripheral device 300 may communicate with the user terminal 200 and the application providing server 100, may receive and store the core code of the application, and may execute a central processing unit capable of executing the core code of the application. It is an electric device that includes.
  • the peripheral device 300 may be a wearable device such as a smart watch, smart glasses, and a smart band.
  • an accessory such as an activity tracker, a mobile photo printer, a home monitoring device, a toy, or a medical device may be used as the peripheral device 300.
  • the app accessory refers to an accessory in which a smartphone, which is a user terminal 200, is linked with an application to extend the function of the smartphone.
  • FIG. 2 is a block diagram showing the configuration of a user terminal according to an embodiment of the present invention.
  • the user terminal 200 includes a pairing unit 210, a communication unit 220, a control unit 230, and a screen display unit 240.
  • the pairing unit 210 communicates with the application providing server 100 and the peripheral device 300.
  • the pairing unit 210 communicates with the application providing server 100 through a wireless communication method such as Wi-Fi, 3G, 4G, LTE, WiBro, and the peripheral device 300, such as Bluetooth, Zigbee, infrared communication module It can communicate via local area communication or wired.
  • the pairing unit 210 receives the general code of the application from the application providing server 100 to install the application on the user terminal 200, the core code of the application from the application providing server 100 Pairing with the peripheral device 300 receiving the file is performed.
  • the communication unit 220 transmits unique information of the user terminal to the peripheral device 300.
  • the unique information of the user terminal may include the international mobile device identification information (IMEI) of the user terminal 200.
  • the communication unit 220 may transmit the unique information of the user terminal to the peripheral device 300 through short-range communication or wired communication such as Bluetooth, Zigbee, infrared communication module.
  • the controller 230 transmits an execution call message containing information of the core code to be called in the process of executing the general code to the peripheral device 300, and receives the core code execution result of the corresponding application program from the peripheral device 300.
  • the controller 230 may transmit an execution call message through short-range communication or a wired line such as Bluetooth, Zigbee, or an infrared communication module, or may receive a core code execution result.
  • the screen display unit 240 outputs the execution result of the core code received from the peripheral device 300 on the screen.
  • the screen display unit 240 may output the execution result so that the user can recognize it as visual, auditory, and tactile.
  • FIG. 3 is a block diagram showing the configuration of a peripheral device according to an embodiment of the present invention.
  • the peripheral device 300 includes a communication unit 310, an encryption / decryption unit 320, and a code execution unit 330.
  • the communication unit 310 communicates with the application program providing server 100 and the user terminal 200.
  • the communication unit 310 may communicate with the user terminal 200 through short-range communication or wired communication such as Bluetooth, Zigbee, infrared communication module.
  • the communication unit 310 installs the core code of the application program received from the application program providing server 100 to the peripheral device (300).
  • the communication unit 310 receives user terminal unique information and execution call message from the user terminal 200.
  • the encryption and decryption unit 320 encrypts the core code by using the unique information of the user terminal received from the user terminal 200 in the step of encrypting the core code by executing the application program for the first time.
  • the encryption / decryption unit 320 decrypts the encrypted core code using the unique information of the user terminal received from the user terminal 200.
  • the code execution unit 330 when the code execution unit 330 receives the execution call message from the user terminal 200, the code execution unit 330 loads the core code to execute the core code. Then, the execution result of the core code is transmitted to the user terminal 200.
  • FIG. 4 is a flowchart illustrating a method of protecting a core code using a peripheral device according to an embodiment of the present invention.
  • steps S410 to S430 mean an application separation and delivery step
  • steps S440 and S450 mean a key code encryption step
  • step S460 From step S490 to step means executing an application program.
  • the description is divided into three stages.
  • the application program providing server 100 separates and delivers an application through steps S410 to S430.
  • the application providing server 100 separates the application file into a general code from which the core code and the core code have been removed (S410).
  • the application providing server 100 sets the core code through the executable file decompiled from the application package.
  • the application providing server 100 deletes the core code from the application file to generate a general code.
  • the application providing server 100 transmits and stores the separated core code to the peripheral device 300 (S420).
  • the application providing server 100 may communicate through a wireless communication method such as Wi-Fi, 3G, 4G, LTE, WiBro in the process of delivering the core code to the peripheral device 300, to enhance security
  • the core code can be delivered through local area communication or wired.
  • the application program providing server 100 transmits the general code to the user terminal 200 in a download manner (S430).
  • the user terminal 200 may download and install a general code of an application program to be installed using a network such as 3G, 4G, or Wi-Fi.
  • the core code is encrypted through steps S440 and S450 to be described later.
  • the application is executed through steps S460 to S510 to be described later.
  • the user terminal 200 When the first execution of the application program installed in the user terminal 200 is input, before performing the encryption of the core code, the user terminal 200 performs a pairing connection with the peripheral device 300.
  • the user terminal 200 performs a pairing connection with the peripheral device 300 distributed or sold in a state where the core code is stored.
  • the user terminal 200 may perform a pairing connection with the peripheral device 300 when the user-owned peripheral device 300 receives and stores the core code from the application providing server 100.
  • the pairing connection between the user terminal 200 and the peripheral device 300 is performed in the core code encryption step.
  • the present disclosure is not limited thereto, and the user terminal 200 and the peripheral device 300 may be separated from the application program and delivered. It can be connected via pairing.
  • the user terminal 200 After the user terminal 200 completes the pairing connection with the peripheral device 300, the user terminal 200 transmits the user terminal unique information to the peripheral device (300) (S440).
  • the unique information of the user terminal may include International Mobile Equipment Identity (IMEI) of the user terminal 200.
  • IMEI International Mobile Equipment Identity
  • the International Mobile Device Identification Code is a unique identification number assigned to each mobile phone. According to the guidelines of the World Mobile Telecommunications Business Association (GSMA), cell phone manufacturers give each cell phone an International Mobile Device Identification Code (IMEI) when it ships the manufactured cell phone.
  • the International Mobile Device Identification Code (IMEI) consists of a total of 15 digits, including an 8-digit authorization code, 6-digit model serial number, and 1-digit verification number. And blacklisting.
  • the International Mobile Device Identification Information (IMEI) is managed for the purpose of blocking a call to a lost terminal and a stolen terminal.
  • the user terminal 200 may transmit the identification information of the application program to be encrypted to the peripheral device 300 together with the unique information of the user terminal in step S440.
  • the peripheral device 300 may store core codes of a plurality of application programs, and the peripheral device 300 may distinguish the core codes of the application programs by using identification information of the application program received from the user terminal 200. .
  • peripheral device 300 encrypts the core code of the application program received and stored in step S420 (S450).
  • the peripheral device 300 encrypts the application program corresponding to the identification information of the corresponding application program using the unique information of the user terminal received in step S440.
  • the peripheral device 300 has been described as encrypting the core code using the unique information of the user terminal received from the user terminal 200.
  • the application program providing server 100 may receive the user terminal unique information from the user terminal 200, encrypt the core code, and transmit the encrypted core code to the peripheral device 300 through S420.
  • steps S440 and S450 are omitted.
  • the core code protection system uses the International Mobile Device Identification Information (IMEI) as a key for encrypting the core code or for decrypting the encrypted core code.
  • IMEI International Mobile Device Identification Information
  • the peripheral device 300 subordinates the encrypted core code stored in the peripheral device 300 to the user terminal 200 by encrypting or decrypting the core code using the international mobile device identification information (IMEI).
  • IMEI international mobile device identification information
  • the user terminal 200 and the peripheral device 300 perform an execution step of the application program requested to be re-executed through steps S460 to S500.
  • the user terminal 200 transmits the user terminal unique information to the peripheral device 300 (S460).
  • the unique information of the user terminal may include an International Mobile Device Identification Code (IMEI), and the user terminal 200 sends the identification information of the application program requested to be executed by the user together with the unique information of the user terminal to the peripheral device 300.
  • IMEI International Mobile Device Identification Code
  • the peripheral device 300 decrypts using the unique information of the user terminal that receives the encrypted core code corresponding to the identification information of the received application program (S470).
  • the core code encrypted using the user terminal unique information in step S450 is dependent on the user terminal 200 that transmits the user terminal unique information in step S440. Therefore, even if the user terminal acquires the peripheral device 300 storing the encrypted core code file, the user terminal cannot decrypt the core code file.
  • the user terminal 200 transmits the execution call message to the peripheral device 300 (S480).
  • the user terminal 200 transmits an execution call message to the peripheral device 300 in step S480.
  • the present disclosure is not limited thereto, and the user terminal 200 transmits unique information of the user terminal to the peripheral device 300 in step S460. You can send a run call message with it.
  • the execution call message is a message requesting to execute the core code of the application program stored in the peripheral device 300, and includes identification information of the application and information of a file or a function to call execution.
  • the peripheral device 300 executes the core code corresponding to the execution call message received from the user terminal 200 among the decrypted core codes (S490).
  • step S480 When the execution call message transmitted from the user terminal 200 to the peripheral device in step S480 includes the name of a specific function for calling execution, the peripheral device 300 loads and executes the corresponding function.
  • the general application code transmitted to the user terminal 200 through the application providing server 100 in step S430 may be in the form of a main routine (main routine), the peripheral device 300 through the step S420
  • the core code received and stored from the application providing server 100 may be a sub routine.
  • the general code which is a main routine, calls a core code that is a subroutine to execute a core code file decrypted by the peripheral device 300 in step S470. have. That is, the user terminal 200 may execute the general code to transmit the execution call message to the peripheral device 300 to execute the core code stored in the peripheral device 300.
  • the peripheral device 300 transmits the execution result of the core code of the application program to the user terminal 200 (S500), and the user terminal 200 displays the execution result of the received core code on the screen (S510).
  • the user terminal 200 is described as displaying the execution result of the core code received from the peripheral device 300, but when the peripheral device 300 includes an output unit (not shown), the peripheral device 300 is Omitting steps S500 and S510, the peripheral device 300 may directly output the execution result of the core code through the output unit.
  • the peripheral device 300 does not transmit the execution result of the core code to the user terminal 200, the user checks the contents output from the peripheral device 300, and inputs the contents output to the user terminal 200. You can run the application.
  • the core code is stored in the peripheral device paired with the user terminal, and the central processing unit of the peripheral device executes the core code.
  • the core code since the core code is not exposed to the user terminal, the reverse engineering analysis resistance of the application can be increased.
  • the learner can not execute the application program, thereby preventing unauthorized use of the application program.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)

Abstract

본 발명은 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법에 관한 것으로, 본 발명의 일 실시예에 따른 사용자 단말기는 응용 프로그램 제공 서버로부터 응용 프로그램을 다운로드 받아 설치하는 과정에서 상기 응용 프로그램의 일반코드를 수신하고, 상기 응용 프로그램 제공 서버로부터 핵심코드를 수신하여 저장한 주변기기와 페어링 연결을 수행하는 페어링부, 상기 응용 프로그램을 실행하는 과정에서, 상기 페어링된 주변기기가 상기 핵심코드의 암호화 및 복호화를 수행하도록 상기 사용자 단말기 고유정보를 상기 주변기기로 전송하는 통신부, 그리고 상기 주변기기로 실행 호출 메시지를 전송하고, 상기 주변기기로부터 상기 핵심코드의 실행 결과를 전달받는 제어부를 포함한다. 이와 같이 본 발명에 의하면, 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법을 이용함으로써, 핵심코드를 사용자 단말기와 페어링된 주변기기에 저장하고, 주변기기의 중앙처리장치가 핵심코드를 실행하여, 핵심코드가 사용자 단말기에 노출되지 않으므로 응용 프로그램의 역공학 분석 저항성을 증가시킬 수 있다.

Description

사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법
본 발명은 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법에 관한 것으로서, 더욱 상세하게는 역공학 공격으로부터 응용 프로그램의 핵심코드를 보호할 수 있는 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법에 관한 것이다.
스마트폰 사용자는 제3자가 개발하여 구글 플레이와 같은 디지털 오픈 마켓에 업로드한 애플리케이션 및 콘텐츠를 다운로드받아 구동시킴으로써 다양한 서비스를 이용할 수 있게 되었다. 이로 인하여 스마트폰에 많은 데이터가 축적되게 된다. 축적된 데이터 중에는 민감하거나 중요한 정보도 포함되어 있으며, 이러한 데이터를 보호하려는 스마트폰 관련 보안 기술이 개발되고 있다.
스마트폰 내에 저장된 금융 및 개인 정보를 포함하는 각종 데이터는 피싱(phishing), 파밍(pharming), 스미싱(smishing) 뿐만 아니라 위변조된 애플리케이션을 통하여 탈취될 수 있다. 공격자들은 애플리케이션을 역공학하여 디컴파일된 소스 코드를 추출한 후, 악성 코드를 삽입하여 위변조된 애플리케이션을 생성하거나, 강제로 추출한 소스코드를 불법적으로 사용하여 경제적으로 이득을 얻기도 한다.
특히 안드로이드 애플리케이션은 아이폰 애플리케이션과 달리 비교적 쉽게 소스코드를 추출하여 분석할 수 있으며, 애플리케이션의 불법 복제 및 위변조로 악성코드를 삽입하는 해킹 공격의 주요 대상이 되고 있다.
애플리케이션의 불법 복제 및 위변조를 차단하기 위하여 다양한 소스 난독화 기법 및 구글의 LVL(Licensing Verification Library)이 제시되어 애플리케이션의 분석에 걸리는 시간을 증가시키거나 역공학을 어렵게 하였다.
그러나 역공학의 난이도를 증가시키는 방법으로 역공학 공격을 방어하는 것이 아니라 애플리케이션의 소스코드를 추출하거나 분석할 수 없도록 보호하는 방법에 대한 기술을 이용하여 근본적인 측면에서 애플리케이션 및 사용자의 정보를 보호하는 기술이 필요하다.
본 발명의 배경이 되는 기술은 한국등록특허 제10-1223981호 (2013.01.21공고)에 개시되어 있다.
본 발명은 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법에 관한 것으로서, 더욱 상세하게는 역공학 공격으로부터 응용 프로그램의 핵심코드를 보호할 수 있는 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법을 제공하는데 목적이 있다.
이러한 기술적 과제를 이루기 위한 본 발명의 실시예에 따른 핵심코드를 보호하는 사용자 단말기는 응용 프로그램 제공 서버로부터 응용 프로그램을 다운로드 받아 설치하는 과정에서 상기 응용 프로그램의 일반코드를 수신하고, 상기 응용 프로그램 제공 서버로부터 핵심코드를 수신하여 저장한 주변기기와 페어링 연결을 수행하는 페어링부, 상기 응용 프로그램을 실행하는 과정에서, 상기 페어링된 주변기기가 상기 핵심코드의 암호화 및 복호화를 수행하도록 상기 사용자 단말기 고유정보를 상기 주변기기로 전송하는 통신부, 그리고 상기 주변기기로 실행 호출 메시지를 전송하고, 상기 주변기기로부터 상기 핵심코드의 실행 결과를 전달받는 제어부를 포함한다.
또한, 수신된 상기 핵심코드의 실행 결과를 화면 상에 표시하는 화면 표시부를 더 포함할 수 있다.
또한, 상기 주변기기는, 상기 응용 프로그램의 최초 실행 요청이 입력되면, 상기 사용자 단말기 고유정보를 이용하여 상기 핵심코드를 암호화하여 저장하고, 상기 응용 프로그램의 재실행 요청이 입력되면 상기 사용자 단말기 고유정보를 이용하여 상기 암호화된 핵심코드를 복호화하며 상기 복호화된 핵심코드를 실행하여 실행결과를 상기 사용자 단말기로 전송할 수 있다.
또한, 상기 사용자 단말기 고유정보는 국제모바일기기 식별정보(IMEI; International Mobile Equipment Identity)를 포함하고, 상기 주변기기는, 상기 사용자 단말기 고유정보를 이용하여 상기 핵심코드를 암호화 또는 복호화할 수 있다.
본 발명의 다른 실시예에 따른 핵심코드를 보호하기 위한 방법은 사용자 단말기가, 응용 프로그램 제공 서버로부터 응용 프로그램을 다운로드 받아 설치하는 과정에서 상기 응용 프로그램의 일반코드를 수신하는 단계, 상기 응용 프로그램 제공 서버로부터 핵심코드를 수신하여 저장한 주변기기와 페어링 연결을 수행하는 단계, 상기 응용 프로그램을 최초 실행하는 과정에서, 상기 페어링된 주변기기가 상기 핵심코드의 암호화를 수행하도록 상기 사용자 단말기 고유정보를 상기 주변기기로 전송하는 단계, 상기 응용 프로그램을 재실행하는 과정에서, 상기 주변기기가 상기 암호화된 핵심코드의 복호화를 수행하도록 상기 사용자 단말기 고유정보를 상기 주변기기로 전송하는 단계, 그리고 상기 주변기기로 실행 호출 메시지를 전송하고, 상기 주변기기로부터 상기 핵심코드의 실행 결과를 전달받는 단계를 포함한다.
따라서 본 발명에 따르면 핵심코드를 사용자 단말기와 페어링된 주변기기에 저장하고, 주변기기의 중앙처리장치가 핵심코드를 실행하여, 핵심코드가 사용자 단말기에 노출되지 않으므로 응용 프로그램의 역공학 분석 저항성을 증가시킬 수 있다.
또한 사용자 단말기 고유정보를 이용하여 암호화한 핵심코드를 주변기기에 저장하여 사용자 단말기 또는 주변기기 중에서 어느 하나를 분실하여도 습득자가 해당 응용 프로그램을 실행할 수 없도록 하여 응용 프로그램의 부정 사용을 방지할 수 있다.
도 1은 본 발명의 실시예에 따른 핵심코드 보호 시스템을 나타내는 구성도이다.
도 2는 본 발명의 실시예에 따른 사용자 단말기의 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 주변기기의 구성을 나타낸 블록도이다.
도 4는 본 발명의 실시예에 따른 핵심코드를 보호하는 방법을 설명하기 위한 순서도이다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하 첨부된 도면을 참조하면서 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 핵심코드 보호 시스템을 나타내는 구성도이다. 도 1과 같이 본 발명의 실시예에 따른 핵심코드 보호 시스템은 응용 프로그램 제공 서버(100), 사용자 단말기(200) 및 주변기기(300)를 포함한다.
도 1에 나타낸 것처럼, 응용 프로그램 제공 서버(100), 사용자 단말기(200) 및 주변기기(300)는 네트워크(network)를 통해 연결된다. 즉, 도 1과 같이, 네트워크를 통하여 사용자 단말기(200)는 응용 프로그램 제공 서버(100) 및 주변기기(300)와 연결되며, 주변기기(300)는 응용 프로그램 제공 서버(100)와 네트워크를 통하여 연결된다.
여기서, 네트워크는 사용자 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, Wi-Fi 등이 포함되나 이에 한정되지는 않는다.
특히, 사용자 단말기(200)와 주변기기(300)는 블루투스(Bluetooth), 지그비(ZigBee), 적외선통신모듈(IrDA, Infrared Data Association) 등을 이용하여 무선 연결될 수 있으며, 유선으로 연결될 수도 있다.
먼저, 응용 프로그램 제공 서버(100)는 응용 프로그램 파일을 핵심코드와 일반코드로 분리한다. 그리고 분리된 핵심코드 및 일반코드를 각각 주변기기(300) 및 사용자 단말기(200)로 전달한다.
응용 프로그램 제공 서버(100)는 응용 프로그램 패키지로부터 디컴파일된 실행 파일을 통하여 핵심코드를 설정할 수 있다. 그리고 응용 프로그램 제공 서버(100)는 응용 프로그램 파일 중에서 핵심코드를 제거하여 일반코드를 생성한다. 이때, 일반코드와 핵심코드는 각각 사용자 단말기(200)와 주변기기(300)에 설치되어 실행될 수 있는 파일 형태일 수 있다.
본 발명의 실시예에 따른 응용 프로그램 제공 서버(100)는 금융, 뉴스, 쇼핑, 게임 등 다양한 종류의 응용 프로그램 일반코드 및 핵심코드를 저장할 수 있으며, 사용자 단말기(200) 및 주변기기(300)가 이러한 응용 프로그램의 일반코드 및 핵심코드를 응용 프로그램 제공 서버(100)로부터 다운로드 받아 설치할 수 있도록 한다. 여기서 응용 프로그램 제공 서버(100)는 모바일 애플리케이션 마켓일 수 있으며, 예를 들어, 구글 플레이나 애플의 앱스토어와 같은 각종 모바일 애플리케이션 마켓이 응용 프로그램 제공 서버(100)에 해당된다.
다음으로 사용자 단말기(200)는 응용 프로그램 제공 서버(100)로부터 응용 프로그램의 일반코드를 수신하여 사용자 단말기(200)에 설치한다. 그리고 응용 프로그램의 최초 실행시, 사용자 단말기(200)는 페어링된 주변기기(300)로 사용자 단말기 고유정보를 전송하여 주변기기(300)가 핵심코드를 사용자 단말기 고유정보로 암호화하도록 한다. 그리고 응용 프로그램이 재실행 될 때, 사용자 단말기(200)는 주변기기(300)로부터 핵심코드의 실행결과를 수신하여 응용 프로그램의 실행에 적용하거나, 출력한다.
여기서 사용자 단말기(200)는 응용 프로그램을 설치하여 실행할 수 있는 단말기로서, 스마트폰, 스마트 패드, 휴대폰, 노트북 컴퓨터, 태블릿 PC, PDA(Personal Digital Assistant) 등이 해당된다. 특히, 스마트폰 또는 스마트 패드의 경우 응용 프로그램은 기기 상에 애플리케이션으로 제공할 수 있다.
여기서 애플리케이션은 단말 상의 응용 프로그램을 의미하며, 예를 들어 모바일 단말(스마트폰)에서 실행되는 앱(app)을 포함한다. 사용자는 앱(app)을 모바일 콘텐츠를 자유롭게 사고 파는 가상의 장터인 모바일 애플리케이션 마켓에서 다운로드 받아 스마트폰 등의 사용자 단말기(200)에 설치할 수 있다.
마지막으로 주변기기(300)는 응용 프로그램 제공 서버(100)로부터 응용 프로그램의 핵심코드를 수신하여 저장한다. 그리고 페어링된 사용자 단말기(200)로부터 사용자 단말기 고유정보를 수신하여 핵심코드를 암호화하고, 사용자 단말기(200)에 설치된 응용 프로그램이 재실행되어 사용자 단말기(200)로부터 사용자 단말기 고유정보 및 실행 호출 메시지를 수신하면, 사용자 단말기 고유정보를 이용하여 복호화한 핵심코드를 실행하고, 핵심코드의 실행결과를 사용자 단말기(200)로 전송한다.
이때, 주변기기(300)는 핵심코드의 실행 결과를 주변기기(300)의 출력부(미도시)를 통하여 화면에 표시하거나 소리로 출력할 수 있다.
여기서 주변기기(300)는 사용자 단말기(200) 및 응용 프로그램 제공 서버(100)와 통신할 수 있고, 응용 프로그램의 핵심코드를 수신하여 저장할 수 있으며, 응용 프로그램의 핵심코드를 실행할 수 있는 중앙처리장치를 포함하는 전기기기이다. 주변기기(300)는 스마트 와치, 스마트 안경, 스마트 밴드 등의 웨어러블 기기일 수 있다.
또한 활동 추적기, 모바일 포토 프린터, 홈모니터링 장치, 장난감, 의료기기 등의 앱세서리(Appcessory)를 주변기기(300)로 사용할 수 있다. 여기서 앱세서리는 사용자 단말기(200)인 스마트폰이 애플리케이션과 연동되어 스마트폰의 기능을 확장시켜주는 액세서리를 의미한다.
도 2는 본 발명의 실시예에 따른 사용자 단말기의 구성을 나타낸 블록도이다.
도 2와 같이, 본 발명의 실시예에 따른 사용자 단말기(200)는 페어링부(210), 통신부(220), 제어부(230) 및 화면 표시부(240)를 포함한다.
먼저, 페어링부(210)는 응용 프로그램 제공 서버(100) 및 주변기기(300)와 통신한다. 특히 페어링부(210)는 응용 프로그램 제공 서버(100)와 Wi-Fi, 3G, 4G, LTE, 와이브로 등의 무선 통신 방식을 통하여 통신하며, 주변기기(300)와는 블루투스, 지그비, 적외선통신모듈 등의 근거리 통신 또는 유선을 통하여 통신할 수 있다.
또한, 페어링부(210)는 응용 프로그램 제공 서버(100)로부터 응용 프로그램의 일반코드를 수신하여 사용자 단말기(200)에 해당 응용 프로그램을 설치하고, 응용 프로그램 제공 서버(100)로부터 응용 프로그램의 핵심코드 파일을 수신한 주변기기(300)와 페어링을 수행한다.
다음으로 통신부(220)는 주변기기(300)로 사용자 단말기 고유정보를 전송한다. 여기서 사용자 단말기 고유정보는 사용자 단말기(200)의 국제모바일기기 식별정보(IMEI)를 포함할 수 있다. 그리고 통신부(220)는 블루투스, 지그비, 적외선통신모듈 등의 근거리 통신 또는 유선을 통하여 주변기기(300)로 사용자 단말기 고유정보를 전송할 수 있다.
그리고 제어부(230)는 일반코드를 실행하는 과정에서 호출하고자 하는 핵심코드의 정보를 담은 실행 호출 메시지를 주변기기(300)로 전송하고, 주변기기(300)로부터 해당 응용 프로그램의 핵심코드 실행 결과를 수신한다. 이때, 제어부(230)는 블루투스, 지그비, 적외선통신모듈 등의 근거리 통신 또는 유선을 통하여 실행 호출 메시지를 전송하거나, 핵심코드 실행 결과를 수신할 수 있다.
마지막으로 화면 표시부(240)는 주변기기(300)로부터 수신한 핵심코드의 실행 결과를 화면상에 출력한다. 또한 화면 표시부(240)는 사용자가 시각, 청각, 촉각 등으로 인지할 수 있도록 실행 결과를 출력할 수도 있다.
도 3은 본 발명의 실시예에 따른 주변기기의 구성을 나타낸 블록도이다.
도 3에 나타낸 것처럼, 주변기기(300)는 통신부(310)와 암복호화부(320) 및 코드 실행부(330)를 포함한다.
먼저, 통신부(310)는 응용 프로그램 제공 서버(100) 및 사용자 단말기(200)와 통신을 수행한다. 특히, 통신부(310)는 사용자 단말기(200)와 블루투스, 지그비, 적외선통신모듈 등의 근거리 통신 또는 유선을 통하여 통신할 수 있다.
또한 통신부(310)는 응용 프로그램 제공 서버(100)로부터 수신한 응용 프로그램의 핵심코드를 주변기기(300)에 설치한다. 그리고 통신부(310)는 응용 프로그램이 실행될 때, 사용자 단말기(200)로부터 사용자 단말기 고유정보와 실행 호출 메시지를 수신한다.
다음으로 암복호화부(320)는 응용 프로그램이 최초 실행되어 핵심코드를 암호화하는 단계에서 사용자 단말기(200)로부터 수신한 사용자 단말기 고유정보를 이용하여 핵심코드를 암호화하여 저장한다. 그리고 응용 프로그램이 재실행되면, 암복호화부(320)는 사용자 단말기(200)로부터 수신한 사용자 단말기 고유정보를 이용하여 암호화된 핵심코드를 복호화한다.
마지막으로 코드 실행부(330)는 사용자 단말기(200)로부터 실행 호출 메시지를 수신하면, 핵심코드를 로딩하여 핵심코드를 실행한다. 그리고 핵심코드의 실행결과를 사용자 단말기(200)로 전송한다.
이하에서는 도 4를 통하여 본 발명의 실시예에 따른 주변기기를 이용하여 핵심코드를 보호하는 방법에 대하여 더욱 상세하게 설명한다.
도 4는 본 발명의 실시예에 따른 주변기기를 이용하여 핵심코드를 보호하는 방법을 설명하기 위한 순서도이다.
도 4에 나타낸 것처럼, 주변기기를 이용하여 핵심코드를 보호하는 방법에 있어서 S410 단계 내지 S430 단계는 응용 프로그램 분리 및 전달단계를 의미하고, S440 단계 및 S450 단계는 핵심코드 암호화 단계를 의미하며, S460 단계 내지 S490 단계는 응용 프로그램 실행 단계를 의미한다. 설명의 편의상 크게 세 개의 단계로 나누어 설명하였다.
먼저, 응용 프로그램 제공 서버(100)는 S410 단계 내지 S430 단계를 통하여 응용 프로그램을 분리 및 전달단계를 수행한다.
응용 프로그램 제공 서버(100)는 응용 프로그램 파일을 핵심코드와 핵심코드가 제거된 일반코드로 분리한다(S410). 응용 프로그램 제공 서버(100)는 응용 프로그램 패키지로부터 디컴파일된 실행파일을 통하여 핵심코드를 설정한다. 그리고 응용 프로그램 제공 서버(100)는 응용 프로그램 파일 중에서 핵심코드를 삭제하여 일반코드를 생성한다.
그리고 응용 프로그램 제공 서버(100)는 분리된 핵심코드를 주변기기(300)로 전송하여 저장시킨다(S420). 이때, 응용 프로그램 제공 서버(100)는 주변기기(300)로 핵심코드를 전달하는 과정에서 Wi-Fi, 3G, 4G, LTE, 와이브로 등의 무선 통신 방식을 통하여 통신할 수 있으며, 보안을 강화하기 위하여 근거리 통신 또는 유선을 통하여 핵심코드를 전달할 수 있다.
또한, 사용자가 사용자 단말기(200)를 통하여 응용 프로그램 제공 서버(100)에 접속하면, 응용 프로그램 제공 서버(100)는 일반코드를 사용자 단말기(200)로 다운로드 방식으로 전송한다(S430). 사용자 단말기(200)는 3G, 4G, Wi-Fi 등의 네트워크를 이용하여 설치하고자 하는 응용 프로그램의 일반코드를 다운로드 받아 설치할 수 있다.
응용 프로그램 분리 및 전달단계가 수행되고 난 후, 사용자로부터 사용자 단말기(200)에 설치된 응용 프로그램의 최초 실행 요청을 입력받으면 후술할 S440 단계 및 S450 단계를 통하여 핵심코드의 암호화를 수행한다. 반면, 사용자로부터 응용 프로그램의 재 실행 요청을 입력받으면 후술할 S460 단계 내지 S510 단계를 통하여 응용 프로그램을 실행한다.
사용자 단말기(200)에 설치된 응용 프로그램의 최초 실행을 입력받은 경우, 핵심코드의 암호화를 수행하기 전에, 사용자 단말기(200)는 주변기기(300)와 페어링 연결을 수행한다. 사용자 단말기(200)는 핵심코드가 저장된 상태로 배포 또는 판매된 주변기기(300)와 페어링 연결을 수행한다. 또한 사용자 단말기(200)는 사용자가 기존에 소유한 주변기기(300)가 응용 프로그램 제공 서버(100)로부터 핵심코드를 수신하여 저장하면, 해당 주변기기(300)와 페어링 연결을 수행할 수도 있다.
설명의 편의상 사용자 단말기(200)와 주변기기(300)의 페어링 연결이 핵심코드 암호화 단계에서 수행되는 것으로 설명하였으나 이에 한정하지 않고, 사용자 단말기(200)와 주변기기(300)는 응용 프로그램 분리 및 전달단계에서 페어링을 통해 연결될 수 있다.
사용자 단말기(200)가 주변기기(300)와의 페어링 연결을 완료하고 나면, 사용자 단말기(200)는 주변기기(300)로 사용자 단말기 고유정보를 전송한다(S440). 여기서 사용자 단말기 고유정보는 사용자 단말기(200)의 국제모바일기기 식별정보(IMEI; International Mobile Equipment Identity)를 포함할 수 있다.
국제모바일기기 식별코드(IMEI)는 휴대폰마다 부여되는 고유 식별번호이다. 세계이동통신사업자연합(GSMA)의 가이드라인에 따라 휴대폰 제조 업체는 제조한 휴대폰을 출고할 때, 각각의 휴대폰에 국제모바일기기 식별코드(IMEI)를 부여한다. 국제모바일기기 식별코드(IMEI)는 승인코드 8자리, 모델 일련번호 6자리, 검증용 숫자 1자리 등 총 15자리로 구성되며, 국제모바일기기 식별코드(IMEI)를 관리하는 방식에 따라 화이트리스트 제도와 블랙리스트 제도로 나뉜다. 그리고 국제모바일기기 식별정보(IMEI)는 주로 분실 단말기 및 도난 단말기에 대한 통화차단을 목적으로 관리된다.
또한, 사용자 단말기(200)는 암호화시키고자 하는 응용 프로그램의 식별 정보도 S440 단계에서 사용자 단말기 고유정보와 함께 주변기기(300)로 전송할 수 있다. 주변기기(300)는 복수의 응용 프로그램의 핵심코드를 저장하고 있을 수 있으며, 주변기기(300)는 사용자 단말기(200)로부터 수신한 응용 프로그램의 식별 정보를 이용하여 응용 프로그램의 핵심코드를 구별할 수 있다.
그리고 주변기기(300)는 S420 단계에서 수신하여 저장한 응용 프로그램의 핵심코드를 암호화한다(S450). 주변기기(300)는 S440 단계에서 수신한 사용자 단말기 고유정보를 이용하여 해당 응용 프로그램의 식별정보에 대응하는 응용 프로그램을 암호화한다.
설명의 편의상, 주변기기(300)가 사용자 단말기(200)부터 수신한 사용자 단말기 고유정보를 이용하여 핵심코드를 암호화 하는 것으로 설명하였다. 그러나 이에 한정하지 않고 응용 프로그램 제공 서버(100)가 사용자 단말기(200)로부터 사용자 단말기 고유정보를 수신하여 핵심코드를 암호화 한 뒤 암호화된 핵심코드를 S420 단계를 통하여 주변기기(300)로 전송할 수 있다. 응용 프로그램 제공 서버(100)가 핵심코드를 암호화하는 경우 S440 단계 및 S450 단계는 생략된다.
본 발명의 실시예에 따른 핵심코드 보호 시스템은 핵심코드를 암호화하거나, 암호화된 핵심코드를 복호화하는 키로 국제모바일기기 식별정보(IMEI)를 이용한다. 주변기기(300)는 국제모바일기기 식별정보(IMEI)를 이용하여 핵심코드를 암호화 또는 복호화 함으로써, 주변기기(300)에 저장한 암호화된 핵심코드를 사용자 단말기(200)에 종속시킨다.
다음으로 사용자 단말기(200)와 주변기기(300)는 S460 단계 내지 S500 단계를 통하여 재실행을 요청받은 응용 프로그램의 실행 단계를 수행한다.
사용자 단말기(200)는 사용자 단말기 고유정보를 주변기기(300)로 전송한다(S460). 이때, 사용자 단말기 고유정보는 국제모바일기기 식별코드(IMEI)를 포함할 수 있으며, 사용자 단말기(200)는 사용자 단말기 고유정보와 함께 사용자로부터 실행을 요청받은 응용 프로그램의 식별정보를 주변기기(300)로 전송할 수 있다.
그리고 주변기기(300)는 수신한 응용 프로그램의 식별정보에 대응하는 암호화된 핵심코드를 수신한 사용자 단말기 고유정보를 이용하여 복호화한다(S470). S450 단계에서 사용자 단말기 고유정보를 이용하여 암호화된 핵심코드는 S440 단계에서 사용자 단말기 고유정보를 전송한 사용자 단말기(200)에 종속된다. 따라서 타 사용자 단말기는 암호화된 핵심코드 파일이 저장된 주변기기(300)를 습득하여도 해당 핵심코드 파일을 복호화할 수 없다.
다음으로 사용자 단말기(200)는 실행 호출 메시지를 주변기기(300)로 전송한다(S480). 설명의 편의상 S480 단계에서 사용자 단말기(200)가 실행 호출 메시지를 주변기기(300)로 전송하는 것으로 설명하였으나 이에 한정하지 않고, 사용자 단말기(200)는 S460 단계에서 주변기기(300)로 사용자 단말기 고유정보를 전송할 때 실행 호출 메시지를 함께 전송할 수 있다.
여기서 실행 호출 메시지는 주변기기(300)에 저장된 응용 프로그램의 핵심코드를 실행하도록 요청하는 메시지이며, 해당 응용 프로그램의 식별정보와 실행을 호출할 파일 또는 함수의 정보를 포함한다.
다음으로 주변기기(300)는 복호화한 핵심코드 중에서 사용자 단말기(200)로부터 수신한 실행 호출 메시지에 대응하는 핵심코드를 실행한다(S490).
S480 단계에서 사용자 단말기(200)가 주변기기로 전송한 실행 호출 메시지에 실행을 호출하는 특정 함수의 이름이 포함되어 있는 경우, 주변기기(300)는 해당 함수를 로딩하여 실행한다.
응용 프로그램 분리 및 전달단계에서, 응용 프로그램 제공 서버(100)가 S430 단계를 통하여 사용자 단말기(200)로 전달한 일반코드는 메인 루틴(Main Routine) 형태일 수 있으며, 주변기기(300)가 S420 단계를 통하여 응용 프로그램 제공 서버(100)로부터 수신하여 저장한 핵심코드는 서브 루틴(Sub Routine)일 수 있다.
사용자 단말기(200)가 사용자의 응용 프로그램 실행 요청에 따라 일반코드를 실행하면, 메인 루틴인 일반코드는 서브 루틴인 핵심코드를 호출하여 주변기기(300)가 S470 단계에서 복호화한 핵심코드 파일을 실행할 수 있다. 즉 사용자 단말기(200)는 일반코드를 실행함으로써 주변기기(300)로 실행 호출 메시지를 전송하여 주변기기(300)에 저장된 핵심코드를 실행시킬 수 있다.
그리고 주변기기(300)는 응용 프로그램의 핵심코드의 실행결과를 사용자 단말기(200)로 전송하고(S500), 사용자 단말기(200)는 수신한 핵심코드의 실행결과를 화면 상에 표시한다(S510).
설명의 편의상, 사용자 단말기(200)가 주변기기(300)로부터 수신한 핵심코드의 실행결과를 표시하는 것으로 설명하였으나, 주변기기(300)가 출력부(미도시)를 포함하는 경우, 주변기기(300)는 S500 단계 및 S510 단계를 생략하고, 주변기기(300)가 직접 핵심코드의 실행결과를 출력부를 통하여 출력할 수 있다.
이 경우, 주변기기(300)가 사용자 단말기(200)로 핵심코드의 실행결과를 전송하지 않고, 사용자가 주변기기(300)로부터 출력된 내용을 확인하고, 사용자 단말기(200)에 출력된 내용을 입력하여 응용 프로그램을 실행할 수 있다.
이와 같이 본 발명의 실시예에 따른 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법을 이용함으로써, 핵심코드를 사용자 단말기와 페어링된 주변기기에 저장하고, 주변기기의 중앙처리장치가 핵심코드를 실행하여, 핵심코드가 사용자 단말기에 노출되지 않으므로 응용 프로그램의 역공학 분석 저항성을 증가시킬 수 있다.
또한 사용자 단말기 고유정보를 이용하여 암호화한 핵심코드를 주변기기에 저장하여 사용자 단말기 또는 주변기기 중에서 어느 하나를 분실하여도 습득자가 해당 응용 프로그램을 실행할 수 없어 응용 프로그램의 부정 사용을 방지할 수 있다.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
<부호의 설명>
100 : 응용 프로그램 제공 서버
200 : 사용자 단말기
210 : 페어링부
220 : 통신부
230 : 제어부
240 : 화면 표시부
300 : 주변기기
310 : 통신부
320 : 암복호화부
330 : 코드 실행부

Claims (8)

  1. 응용 프로그램 제공 서버로부터 응용 프로그램을 다운로드 받아 설치하는 과정에서 상기 응용 프로그램의 일반코드를 수신하고, 상기 응용 프로그램 제공 서버로부터 핵심코드를 수신하여 저장한 주변기기와 페어링 연결을 수행하는 페어링부,
    상기 응용 프로그램을 실행하는 과정에서, 상기 페어링된 주변기기가 상기 핵심코드의 암호화 및 복호화를 수행하도록 사용자 단말기 고유정보를 상기 주변기기로 전송하는 통신부, 그리고
    상기 주변기기로 실행 호출 메시지를 전송하고, 상기 주변기기로부터 상기 핵심코드의 실행 결과를 전달받는 제어부를 포함하는 사용자 단말기.
  2. 제1항에 있어서,
    수신된 상기 핵심코드의 실행 결과를 화면 상에 표시하는 화면 표시부를 더 포함하는 사용자 단말기.
  3. 제1항에 있어서,
    상기 주변기기는,
    상기 응용 프로그램의 최초 실행 요청이 입력되면, 상기 사용자 단말기 고유정보를 이용하여 상기 핵심코드를 암호화하여 저장하고,
    상기 응용 프로그램의 재실행 요청이 입력되면 상기 사용자 단말기 고유정보를 이용하여 상기 암호화된 핵심코드를 복호화하며 상기 복호화된 핵심코드를 실행하여 실행결과를 상기 사용자 단말기로 전송하는 사용자 단말기.
  4. 제3항에 있어서,
    상기 사용자 단말기 고유정보는 국제모바일기기 식별정보(IMEI; International Mobile Equipment Identity)를 포함하고,
    상기 주변기기는,
    상기 사용자 단말기 고유정보를 이용하여 상기 핵심코드를 암호화 또는 복호화하는 사용자 단말기.
  5. 사용자 단말기를 이용한 핵심코드 보호 방법에 있어서,
    상기 사용자 단말기는, 응용 프로그램 제공 서버로부터 응용 프로그램을 다운로드 받아 설치하는 과정에서 상기 응용 프로그램의 일반코드를 수신하는 단계,
    상기 응용 프로그램 제공 서버로부터 핵심코드를 수신하여 저장한 주변기기와 페어링 연결을 수행하는 단계,
    상기 응용 프로그램을 최초 실행하는 과정에서, 상기 페어링된 주변기기가 상기 핵심코드의 암호화를 수행하도록 상기 사용자 단말기 고유정보를 상기 주변기기로 전송하는 단계,
    상기 응용 프로그램을 재실행하는 과정에서, 상기 주변기기가 상기 암호화된 핵심코드의 복호화를 수행하도록 상기 사용자 단말기 고유정보를 상기 주변기기로 전송하는 단계, 그리고
    상기 주변기기로 실행 호출 메시지를 전송하고, 상기 주변기기로부터 상기 핵심코드의 실행 결과를 전달받는 단계를 포함하는 핵심코드 보호 방법.
  6. 제5항에 있어서,
    수신된 상기 핵심코드의 실행 결과를 화면 상에 표시하는 단계를 더 포함하는 핵심코드 보호 방법.
  7. 제5항에 있어서,
    상기 주변기기는,
    상기 응용 프로그램의 최초 실행 요청이 입력되면, 상기 사용자 단말기 고유정보를 이용하여 상기 핵심코드를 암호화하여 저장하고,
    상기 응용 프로그램의 재실행 요청이 입력되면 상기 사용자 단말기 고유정보를 이용하여 상기 암호화된 핵심코드를 복호화하며 상기 복호화된 핵심코드를 실행하여 실행결과를 상기 사용자 단말기로 전송하는 핵심코드 보호 방법.
  8. 제7항에 있어서,
    상기 사용자 단말기 고유정보는 국제모바일기기 식별정보(IMEI; International Mobile Equipment Identity)를 포함하고,
    상기 주변기기는,
    상기 사용자 단말기 고유정보를 이용하여 상기 핵심코드를 암호화 또는 복호화하는 핵심코드 보호 방법.
PCT/KR2015/002205 2014-10-21 2015-03-06 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법 WO2016064043A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP15853303.4A EP3057020B1 (en) 2014-10-21 2015-03-06 User terminal and method for protecting core code using neighboring device of same
US14/785,637 US20160275271A1 (en) 2014-10-21 2015-03-06 User Terminal And Method For Protecting Core Codes Using Peripheral Device of User Terminal
JP2016527324A JP6203396B2 (ja) 2014-10-21 2015-03-06 ユーザ端末機及び該ユーザ端末機の周辺機器を用いた核心コード保護方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2014-0142689 2014-10-21
KR20140142689 2014-10-21
KR1020150002942A KR101566143B1 (ko) 2014-10-21 2015-01-08 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법
KR10-2015-0002942 2015-01-08

Publications (1)

Publication Number Publication Date
WO2016064043A1 true WO2016064043A1 (ko) 2016-04-28

Family

ID=54601238

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/002205 WO2016064043A1 (ko) 2014-10-21 2015-03-06 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법

Country Status (5)

Country Link
US (1) US20160275271A1 (ko)
EP (1) EP3057020B1 (ko)
JP (1) JP6203396B2 (ko)
KR (1) KR101566143B1 (ko)
WO (1) WO2016064043A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019028627A (ja) * 2017-07-28 2019-02-21 公立大学法人岩手県立大学 送受信システム、ペアリング方法及びペアリングプログラム
KR102015552B1 (ko) * 2018-12-05 2019-08-28 이트너스 주식회사 Qr 코드를 활용한 박스내부 상품리스트 확인 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527905A (ja) * 2005-01-11 2008-07-24 エンキャップ エーエス セキュリティコード生成方法、セキュリティコード生成方法を用いた方法、及びセキュリティコード生成方法のためのプログラム可能な装置
KR20120002079A (ko) * 2010-06-30 2012-01-05 에스케이플래닛 주식회사 어플리케이션 저작권 보호 시스템, 어플리케이션 저작권 보호 장치 및 방법, 그리고 단말 장치 및 상기 단말 장치의 어플리케이션 저작권 보호 방법
KR101223981B1 (ko) * 2012-07-11 2013-01-21 주식회사 안랩 안전한 애플리케이션 실행을 위한 가상화 장치, 서버 및 방법
KR20140089321A (ko) * 2012-07-09 2014-07-14 주식회사 씽크풀 페어링 수행 디지털 시스템 및 그 제공방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006033267A (ja) * 2004-07-14 2006-02-02 Sony Corp 情報処理システム、情報処理方法、情報処理装置、並びにプログラム
JP2010193187A (ja) * 2009-02-18 2010-09-02 Fujitsu Ten Ltd 車載装置及び通信制御方法
EP2264635A1 (en) * 2009-06-19 2010-12-22 Thomson Licensing Software resistant against reverse engineering
JP5948680B2 (ja) * 2011-09-13 2016-07-06 パナソニックIpマネジメント株式会社 コンテンツ再生システム、情報処理端末、メディアサーバ、セキュアデバイスおよびサーバ・セキュアデバイス
US9443421B2 (en) * 2012-11-13 2016-09-13 Panasonic Intellectual Property Corporation Of America Method used in a system for remotely controlling an appliance
WO2015092930A1 (ja) * 2013-12-20 2015-06-25 株式会社 東芝 通信システム、電子機器および方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527905A (ja) * 2005-01-11 2008-07-24 エンキャップ エーエス セキュリティコード生成方法、セキュリティコード生成方法を用いた方法、及びセキュリティコード生成方法のためのプログラム可能な装置
KR20120002079A (ko) * 2010-06-30 2012-01-05 에스케이플래닛 주식회사 어플리케이션 저작권 보호 시스템, 어플리케이션 저작권 보호 장치 및 방법, 그리고 단말 장치 및 상기 단말 장치의 어플리케이션 저작권 보호 방법
KR20140089321A (ko) * 2012-07-09 2014-07-14 주식회사 씽크풀 페어링 수행 디지털 시스템 및 그 제공방법
KR101223981B1 (ko) * 2012-07-11 2013-01-21 주식회사 안랩 안전한 애플리케이션 실행을 위한 가상화 장치, 서버 및 방법

Also Published As

Publication number Publication date
EP3057020B1 (en) 2019-02-20
KR101566143B1 (ko) 2015-11-06
JP6203396B2 (ja) 2017-09-27
EP3057020A4 (en) 2017-06-21
EP3057020A1 (en) 2016-08-17
JP2017506372A (ja) 2017-03-02
US20160275271A1 (en) 2016-09-22

Similar Documents

Publication Publication Date Title
WO2018066961A1 (en) Trusted execution environment secure element communication
WO2016064041A1 (ko) 해쉬값을 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
WO2019074326A1 (en) SECURE OFFLINE PAYMENT METHOD AND APPARATUS
WO2015053509A1 (ko) 동적 라이브러리를 보호하는 방법 및 장치
WO2015147547A1 (en) Method and apparatus for supporting login through user terminal
CN107851160A (zh) 用于在isa控制下进行多个共存可信执行环境的可信i/o的技术
JPH0816387A (ja) プログラム実行装置
CN110378097A (zh) 保障传感器数据安全
WO2013191325A1 (ko) 트러스티드 플랫폼 기반의 개방형 아이디 인증 방법, 이를 위한 장치 및 시스템
WO2013100320A1 (ko) 시스템 파일 보호 및 복구를 위한 장치, 방법, 사용자 단말기 및 시스템
WO2010074449A2 (ko) 소프트웨어 라이센스 보호 방법과 그를 위한 시스템, 서버, 단말기 및 컴퓨터로 읽을 수 있는 기록매체
WO2019093808A1 (ko) 하드웨어 비트코인 지갑의 니모닉을 안전하게 저장하는 방법, 장치 및 컴퓨터 판독가능 기록 매체
WO2016085050A1 (ko) 주변기기와 연동하는 사용자 단말기 및 그것을 이용한 정보 유출 방지 방법
WO2015105222A1 (ko) 이동 단말기의 해킹 방지 시스템 및 그 방법
WO2016064040A1 (ko) 서명정보를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
WO2020032351A1 (ko) 익명 디지털 아이덴티티 수립 방법
WO2016064043A1 (ko) 사용자 단말기 및 상기 사용자 단말기의 주변기기를 이용한 핵심코드 보호 방법
WO2014107060A1 (ko) 모바일 데이터 보안 장치 및 방법
WO2012169752A2 (ko) 접속 시도 기기 인증 시스템 및 방법
WO2016064042A1 (ko) 사용자 단말기 및 그것을 이용한 응용 프로그램의 핵심코드 보호 방법
WO2015160190A1 (ko) 사용자 인증용 가상 키보드 생성 장치 및 방법
WO2013125883A1 (en) Drm/cas service device and method using security context
WO2016064044A1 (ko) 모바일 기기 및 상기 모바일 기기의 동작 방법
WO2017183799A1 (ko) 데이터 확인 장치 및 이를 이용하여 데이터를 확인하는 방법
WO2018164408A1 (ko) 어플리케이션 보안 방법 및 이를 수행하기 위한 시스템

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 14785637

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2016527324

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2015853303

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015853303

Country of ref document: EP

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

Ref document number: 15853303

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE