KR101951201B1 - Method for operating application performing security function and corresponding application - Google Patents

Method for operating application performing security function and corresponding application Download PDF

Info

Publication number
KR101951201B1
KR101951201B1 KR1020160149064A KR20160149064A KR101951201B1 KR 101951201 B1 KR101951201 B1 KR 101951201B1 KR 1020160149064 A KR1020160149064 A KR 1020160149064A KR 20160149064 A KR20160149064 A KR 20160149064A KR 101951201 B1 KR101951201 B1 KR 101951201B1
Authority
KR
South Korea
Prior art keywords
application
terminal
value
app
val
Prior art date
Application number
KR1020160149064A
Other languages
Korean (ko)
Other versions
KR20180052024A (en
Inventor
윤석구
Original Assignee
주식회사 엔오디비즈웨어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔오디비즈웨어 filed Critical 주식회사 엔오디비즈웨어
Priority to KR1020160149064A priority Critical patent/KR101951201B1/en
Publication of KR20180052024A publication Critical patent/KR20180052024A/en
Application granted granted Critical
Publication of KR101951201B1 publication Critical patent/KR101951201B1/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/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption

Abstract

애플리케이션의 작동 방법에 개시된다. 상기 방법은 제1단말기에서 실행되는 제1애플리케이션의 보안 모듈이 상기 보안 모듈의 위변조 여부를 판단하고, 상기 보안 모듈이 위변조되지 않았을 때 상기 제1애플리케이션의 메인 모듈의 위변조 여부를 판단하여 상기 제1애플리케이션의 위변조 여부를 판단하는 단계와, 판단의 결과 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 보안 모듈의 위변조 여부를 판단하는 상기 제1애플리케이션의 상기 보안 모듈이 상기 제1단말기에서 실행되는 제1OS의 위변조 여부를 판단하는 단계를 포함한다.Lt; / RTI > method of operation of an application. The method includes determining whether a security module of a first application executed in a first terminal forgery or falsifies a security module, determining whether a forgery or falsification of a main module of the first application is performed when the security module is not tampered with, The security module of the first application determines whether the security module is forged or not, when the first application is not forged or falsified as a result of the determination. And determining whether the user has falsified or not.

Description

보안 기능을 수행하는 애플리케이션의 작동 방법과 상응하는 애플리케이션{METHOD FOR OPERATING APPLICATION PERFORMING SECURITY FUNCTION AND CORRESPONDING APPLICATION}METHOD FOR OPERATING APPLICATION PERFORMING SECURITY FUNCTION AND CORRESPONDING APPLICATION [0002]

본 발명의 개념에 따른 실시 예는 애플리케이션(application)의 작동 방법에 관한 것으로, 특히 단말기에서 실행되는 운영 체제(operating system(OS))의 위변조 여부와, 상기 단말기에서 실행되는 애플리케이션의 위변조 여부를 판단하는 애플리케이션의 작동 방법과 이에 상응하는 애플리케이션에 관한 것이다.An embodiment according to the concept of the present invention relates to a method of operating an application and more particularly to a method for determining whether a forgery or falsification of an operating system (OS) executed in a terminal and forgery or falsification of an application executed in the terminal Lt; RTI ID = 0.0 > and / or < / RTI > corresponding applications.

최근 이동 통신 단말기가 널리 보급되면서, 상기 이동 통신 단말기에서 구동되는 응용 프로그램, 즉 애플리케이션이 널리 사용되고 있다. 이러한 애플리케이션은 개방형 플랫폼과 다양한 네트워크 접속 환경에서 동작하므로 상대적으로 위변조에 취약하다.2. Description of the Related Art [0002] With the recent spread of mobile communication terminals, application programs, i.e., applications, which are driven by the mobile communication terminals, are widely used. These applications are relatively vulnerable to forgery because they operate on open platforms and various network access environments.

애플리케이션의 활용이 증가하면서 애플리케이션을 불법으로 위조하거나 변조하여 사용하는 행위도 증가하고 있다. 상기 애플리케이션이 불법으로 위변조되었을 때, 휴대용 기기 사용자의 개인 정보가 무방비로 노출될 수 있다.As the use of applications increases, more and more applications are being falsified or tampered with. When the application is illegally tampered with, the personal information of the user of the portable device can be exposed with no protection.

또한, 애플리케이션을 불법으로 사용하기 위해, 스마트폰이나 태블릿 PC 등을 루팅 (rooting)하거나 탈옥 (jailbreak)하는 등 다양한 해킹 기술이 등장하고 있다.In addition, various hacking technologies are emerging, such as rooting or jailbreaking smartphones or tablet PCs to illegally use applications.

등록특허공보 제10-1297936호 (2013. 08. 19.)Patent Registration No. 10-1297936 (Feb.

본 발명이 해결하고자 하는 과제는 단말기에서 실행되는 애플리케이션을 이용하여 상기 단말기에서 실행되는 OS의 위변조 여부, 상기 애플리케이션의 위변조 여부 및 상기 단말기와 통신하는 다른 단말기에 설치된 애플리케이션의 위변조 여부를 판단하는 방법과 이에 상응하는 애플리케이션을 제공하는 것에 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for determining whether an OS executed in a terminal is forged or falsified, whether an application is forged or falsified, and whether an application installed in another terminal communicating with the terminal is falsified or not, And to provide a corresponding application.

본 발명의 실시 예에 따른 애플리케이션의 작동 방법은 제1단말기에서 실행되는 제1애플리케이션의 보안 모듈이 상기 보안 모듈의 위변조 여부를 판단하고, 상기 보안 모듈이 위변조되지 않았을 때 상기 제1애플리케이션의 메인 모듈의 위변조 여부를 판단하여 상기 제1애플리케이션의 위변조 여부를 판단하는 단계와, 판단의 결과 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 보안 모듈의 위변조 여부를 판단하는 상기 제1애플리케이션의 상기 보안 모듈이 상기 제1단말기에서 실행되는 제1OS의 위변조 여부를 판단하는 단계를 포함한다.A method of operating an application according to an exemplary embodiment of the present invention includes: determining whether a security module of a first application executed in a first terminal forgery or falsifies a security module; Determining whether the first application is forged or not, and determining whether the first application is forged or not; and if the first application has not been tampered with, the security module of the first application, And determining whether the first OS executed in the first terminal is forged or not.

본 발명의 실시 예에 따른 애플리케이션의 작동 방법은 제1단말기에서 실행되는 제1애플리케이션이 상기 제1애플리케이션의 현재 상태를 지시하는 현재 제1APP 값을 생성하는 단계와, 상기 제1애플리케이션이 상기 기준 제1APP 값을 서버로부터 수신하는 단계와, 상기 제1애플리케이션이 상기 현재 제1APP 값과 수신한 상기 기준 제1APP 값을 비교하는 단계와, 상기 비교의 결과에 따라, 상기 현재 제1APP 값과 상기 기준 제1APP 값이 동일할 때, 상기 제1애플리케이션이 상기 제1애플리케이션을 위변조되지 않은 것으로 판단하는 단계와, 판단의 결과, 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 제1애플리케이션이 상기 제1OS의 현재 상태를 지시하는 현재 OS 값을 생성하는 단계와, 상기 제1애플리케이션이 상기 기준 OS 값을 상기 서버로부터 수신하는 단계 및 상기 제1애플리케이션이 상기 현재 OS 값과 수신한 상기 기준 OS 값을 비교하는 단계를 포함한다.A method of operating an application according to an embodiment of the present invention includes generating a current first APP value indicating a current state of the first application, the first application being executed in a first terminal, Receiving a first APP value from the server; comparing the current first APP value with the received first APP value; and comparing the current first APP value with the reference APP value, Determining that the first application has not been tampered with when the AP value is equal to the first application; and when the first application has not been tampered with as a result of the determination, Generating a current OS value that indicates a status of the first OS; And wherein the first application comprises a step of comparing the current value and the OS receiving the reference OS value.

본 발명의 실시 예에 따른 애플리케이션의 작동 방법은 제1단말기에서 실행되는 제1애플리케이션의 보안 모듈이 상기 보안 모듈의 위변조 여부를 판단하고, 상기 보안 모듈이 위변조되지 않았을 때 상기 제1애플리케이션의 메인 모듈의 위변조 여부를 판단하여 상기 제1애플리케이션의 위변조 여부를 판단하는 단계와, 상기 제1애플리케이션의 위변조 여부 판단의 결과, 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 제1애플리케이션의 상기 보안 모듈이 상기 제1단말기에서 실행되는 제1OS의 위변조 여부를 판단하는 단계와, 상기 제1OS의 위변조 여부 판단의 결과, 상기 제1OS가 위변조되지 않았을 때, 상기 제1애플리케이션의 상기 보안 모듈이, 상기 제1단말기와 통신하는 제2단말기에서 실행되는 제2애플리케이션의 위변조 여부를 판단하여, 상기 제2단말기를 검증하는 단계를 포함한다.A method of operating an application according to an exemplary embodiment of the present invention includes: determining whether a security module of a first application executed in a first terminal forgery or falsifies a security module; Determining whether the first application is forged or not, determining whether the first application is forged or not, determining whether the first application is forged or not, and if the first application is forged or not, The method of claim 1, further comprising: determining whether the first OS is forged or falsified; determining whether the first OS is forged or not; and if the first OS is not forged or falsified as a result of the forgery or falsification of the first OS, Determines whether the second application executed in the second terminal communicating with the second application is forged or not, And verifying the second terminal.

본 발명의 실시 예에 따른 애플리케이션의 작동 방법은 제1단말기에서 실행되는 제1애플리케이션이 상기 제1애플리케이션의 현재 상태를 지시하는 현재 제1APP 값을 생성하는 단계와, 상기 제1애플리케이션이 상기 기준 제1APP 값을 서버로부터 수신하는 단계와, 상기 제1애플리케이션이 상기 현재 제1APP 값과 수신한 상기 기준 제1APP 값을 비교하는 단계와, 상기 비교의 결과에 따라, 상기 현재 제1APP 값과 상기 기준 제1APP 값이 동일할 때, 상기 제1애플리케이션이 상기 제1애플리케이션을 위변조되지 않은 것으로 판단하는 단계와, 상기 제1애플리케이션의 위변조 여부 판단의 결과 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 제1애플리케이션이 상기 제1OS의 현재 상태를 지시하는 현재 OS 값을 생성하는 단계와, 상기 제1애플리케이션이 상기 기준 OS 값을 상기 서버로부터 수신하는 단계와, 상기 제1애플리케이션이 상기 현재 OS 값과 수신한 상기 기준 OS 값을 비교하는 단계 및 상기 제1OS의 위변조 여부 판단의 결과 상기 제1OS가 위변조 되지 않았을 때, 상기 제1애플리케이션이, 상기 제1단말기와 통신하는 제2단말기에서 실행되는 제2애플리케이션의 위변조 여부를 판단하여, 상기 제2단말기를 검증하는 단계를 포함한다.A method of operating an application according to an embodiment of the present invention includes generating a current first APP value indicating a current state of the first application, the first application being executed in a first terminal, Receiving a first APP value from the server; comparing the current first APP value with the received first APP value; and comparing the current first APP value with the reference APP value, Determining that the first application has not been tampered with when the first AP is equal to the first application; and when the first application has not been tampered with as a result of the forgery or falsification of the first application, Generating a current OS value indicating a current state of the first OS; S value from the server; comparing the current OS value with the received reference OS value; and when the first OS is not forged or falsified as a result of the forgery or falsification of the first OS, And the first application verifies whether the second application executed in the second terminal communicating with the first terminal is forged or not, and verifying the second terminal.

본 발명의 실시 예에 따른 애플리케이션의 작동 방법은 제1단말기에서 실행되는 제1애플리케이션의 보안 모듈이 상기 보안 모듈의 위변조 여부를 판단하고, 상기 보안 모듈이 위변조되지 않았을 때 상기 제1애플리케이션의 메인 모듈의 위변조 여부를 판단하여 상기 제1애플리케이션의 위변조 여부를 판단하는 단계와, 상기 제1애플리케이션의 위변조 여부 판단의 결과, 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 제1애플리케이션의 상기 보안 모듈이 상기 제1단말기에서 실행되는 제1OS의 위변조 여부를 판단하는 단계와, 상기 제1OS의 위변조 여부 판단의 결과, 상기 제1OS가 위변조 되지 않았을 때, 상기 제1애플리케이션의 상기 보안 모듈이, 상기 제1단말기와 통신하는 제2단말기에서 실행되는 제2애플리케이션의 위변조 여부를 판단하여, 상기 제2단말기를 검증하는 단계와, 상기 제2단말기의 검증 결과 상기 제2단말기가 검증되었을 때, 상기 제1애플리케이션이, 상기 제2단말기와 통신하기 위해 메시지 키를 상기 제2단말기와 공유하는 단계와, 상기 제1애플리케이션이 제1평문을 생성하고, 상기 공유된 메시지 키를 이용하여 상기 제1평문을 암호화하여 제1암호문을 생성하고, 생성된 상기 제1암호문을 상기 제2단말기로 전송하는 단계와, 상기 제2단말기가 제2평문을 생성하고 상기 공유된 메시지 키로 제2평문을 암호화하여 제2암호문을 생성하면, 상기 제1애플리케이션이 상기 제2단말기로부터 상기 제2암호문을 수신하는 단계 및 상기 제1애플리케이션이 상기 공유된 메시지 키를 이용하여 상기 제2암호문을 복호화하여 상기 제2평문을 복원하는 단계를 포함한다.A method of operating an application according to an exemplary embodiment of the present invention includes: determining whether a security module of a first application executed in a first terminal forgery or falsifies a security module; Determining whether the first application is forged or not, determining whether the first application is forged or not, determining whether the first application is forged or not, and if the first application is forged or not, The method of claim 1, further comprising: determining whether the first OS is forged or falsified; determining whether the first OS is forged or not; and if the first OS is not forged or falsified as a result of the forgery or falsification of the first OS, Determines whether the second application executed in the second terminal communicating with the second application is forged or not, Verifying the second terminal; and when the second terminal has been verified as a result of the verification of the second terminal, the first application sharing the message key with the second terminal to communicate with the second terminal The first application generates a first plaintext, encrypts the first plaintext using the shared message key to generate a first ciphertext, and transmits the generated first ciphertext to the second terminal Wherein the first terminal receives the second ciphertext from the second terminal if the second terminal generates a second plaintext and encrypts the second plaintext with the shared message key to generate a second ciphertext, And the first application decrypting the second cipher text using the shared message key to recover the second plaintext.

본 발명의 개념에 따른 실시 예에 따른 애플리케이션의 작동 방법은 컴퓨터로 판독가능한 기록 매체에 저장된 프로그램으로 구현될 수 있다.A method of operating an application according to an embodiment according to the concept of the present invention may be implemented as a program stored in a computer-readable recording medium.

본 발명의 개념에 따른 실시 예에 따른 애플리케이션의 작동 방법은 컴퓨터로 판독가능한 기록 매체에 저장될 수 있다.A method of operating an application according to an embodiment in accordance with the inventive concept may be stored in a computer-readable recording medium.

본 발명의 개념에 따른 실시 예에 따른 컴퓨터 시스템은 프로세서 및 상기 프로세서와 연동된 메모리를 포함하고, 상기 메모리는 본 발명의 개념에 따른 실시 예에 따른 애플리케이션의 작동 방법을 수행하기 위한 프로그램을 저장한다.A computer system according to an embodiment of the present invention includes a processor and a memory associated with the processor, the memory storing a program for performing a method of operating an application according to an embodiment in accordance with the concept of the present invention .

본 발명의 개념에 따른 실시 예에 따른 애플리케이션은, 상기 애플리케이션이 설치된 단말기의 운영 체제의 위변조 여부를 판단할 수 있을 뿐 아니라, 상기 애플리케이션 자체의 위변조 여부를 스스로 판단할 수 있다.The application according to the concept of the present invention can determine whether the application itself is forged or not, as well as determine whether the operating system of the terminal installed with the application is forged or falsified.

본 발명의 개념에 따른 실시 예에 따른 애플리케이션은, 상기 애플리케이션이 설치된 단말기와 통신하는 단말기를 검증할 수 있다.An application according to an embodiment according to the concept of the present invention can verify a terminal communicating with a terminal equipped with the application.

본 발명의 개념에 따른 실시 예에 따른 애플리케이션은 서버에 저장되어 있는 운영 체제 또는 애플리케이션을 구성하는 파일(또는 코드)에 대한 정보를 이용하여 단말기의 운영 체제의 위변조 여부와 상기 애플리케이션 자체의 위변조 여부를 판단할 수 있다.An application according to an exemplary embodiment of the present invention uses information about a file (or a code) constituting an operating system or an application stored in a server to determine whether the operating system of the terminal is falsified or not and whether the application itself is falsified or not It can be judged.

본 발명의 개념에 따른 실시 예에 따른 애플리케이션은, 단말기에 저장된 운영 체제 또는 애플리케이션을 구성하는 파일(또는 코드)에 대한 정보를 이용하므로 서버와 통신을 하지 않고서도 상기 애플리케이션이 설치된 단말기의 운영 체제의 위변조 여부와 상기 애플리케이션 자체의 위변조 여부를 판단할 수 있다.Since the application according to the embodiment of the present invention uses information about a file (or a code) constituting an operating system or an application stored in a terminal, the application does not communicate with the server, It is possible to judge whether a forgery or falsification and whether the application itself is falsified or not.

본 발명의 개념에 따른 실시 예에 따른 애플리케이션이 설치된 단말기는 다른 단말기와 통신하기 전에 상기 다른 단말기를 검증하여 상기 다른 단말기와 안전하게 통신을 수행할 수 있을 뿐만 아니라, 상기 통신을 수행하는 동안 수신한 데이터들을 암호화하여 상기 단말기 또는 상기 애플리케이션에 저장할 수 있다.A terminal equipped with an application according to an embodiment of the present invention can verify the other terminal before communicating with another terminal and securely communicate with the other terminal, May be encrypted and stored in the terminal or the application.

도 1은 본 발명의 실시 예들에 따른 복수의 단말기들을 포함하는 네트워크를 개념적으로 나타낸다.
도 2는 본 발명의 개념에 따른 애플리케이션을 포함하는 단말기의 개략적인 구성을 나타낸다.
도 3은 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 OS의 위변조 여부와 상기 애플리케이션의 위변조 여부를 판단하는 방법을 설명하기 위한 플로우 차트를 나타낸다.
도 4는 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 상기 애플리케이션의 위변조 여부를 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.
도 5는 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 상기 애플리케이션의 위변조 여부를 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.
도 6은 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 상기 애플리케이션이 설치된 단말기와 통신하는 다른 단말기를 이용하여 상기 애플리케이션의 위변조 여부를 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.
도 7과 도 8은 본 발명의 개념에 따른 실시 예에 따른 애플리케이션이 OS의 위변조 여부를 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.
도 9는 본 발명의 개념에 따른 실시 예에 따라 제1애플리케이션이 제2단말기를 검증하고, 검증된 제2단말기와 통신하는 방법을 설명하기 위한 플로우 차트를 나타낸다.
도 10은 본 발명의 개념에 따른 실시 예에 따라 제1애플리케이션이 제2단말기를 검증하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.
도 11은 본 발명의 개념에 따른 실시 예에 따라, 제1애플리케이션이 제2단말기와 통신하는 방법을 설명하기 위한 데이터 처리도이다.
도 12는 본 발명의 개념에 따른 실시 예에 따라, 제1애플리케이션이 제2단말기와 통신하는 방법을 설명하기 위한 데이터 처리도이다.
도 13은 본 발명의 실시 예에 따른 애플리케이션이 상기 애플리케이션이 설치된 단말기와 통신하는 다른 단말기의 통신 패턴을 분석하는 방법을 설명하기 위한 플로우차트이다.
Figure 1 conceptually illustrates a network comprising a plurality of terminals according to embodiments of the present invention.
2 shows a schematic configuration of a terminal including an application according to the concept of the present invention.
3 is a flowchart illustrating a method for determining whether an application forgery or falsifies an OS and forgery or falsification of an application according to an embodiment of the present invention.
FIG. 4 is a flow chart for explaining in detail a method for determining whether an application is forged or falsified according to an embodiment according to the concept of the present invention.
5 is a flowchart illustrating a method for determining whether an application forgery or falsifies the application according to an embodiment of the present invention.
FIG. 6 is a flowchart illustrating a method for determining whether an application forgery or falsifies an application using another terminal communicating with a terminal equipped with the application according to an embodiment of the present invention.
FIG. 7 and FIG. 8 are flowcharts for explaining a method for determining whether an application according to an embodiment of the present invention determines whether an OS is forged or falsified.
9 is a flowchart illustrating a method for a first application to verify a second terminal and communicate with a verified second terminal in accordance with an embodiment of the present invention.
Figure 10 shows a flowchart for describing in detail a method for a first application verifying a second terminal according to an embodiment in accordance with the inventive concept.
11 is a data processing diagram illustrating a method by which a first application communicates with a second terminal, in accordance with an embodiment consistent with the present invention.
12 is a data processing diagram illustrating a method by which a first application communicates with a second terminal, in accordance with an embodiment consistent with the present invention.
13 is a flowchart illustrating a method of analyzing a communication pattern of another terminal communicating with a terminal installed with the application according to an embodiment of the present invention.

본 발명의 개념에 따른 애플리케이션(애플리케이션 소프트웨어의 준말, 또는 운영 체제를 제외한 소프트웨어 또는 프로그램)의 동작 방법은 컴퓨터로 읽을 수 있는 프로그램 코드(code)로 작성되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다. 상기 기록 매체는 앱 스토어(app store®)의 데이터베이스 또는 메모리(예컨대, 불휘발성 메모리 장치, USB 드라이브, 또는 메모리 카드 등)와 같은 저장 매체를 의미할 수 있다.The method of operation of the application (abbreviated application software or software or program except operating system) according to the concept of the present invention may be written in computer-readable program code and stored in a computer-readable recording medium have. The recording medium may refer to a storage medium such as a database of an app store (R) or a memory (e.g., a non-volatile memory device, a USB drive, or a memory card, etc.).

본 명세서에서, 운영체제 또는 애플리케이션의 위변조는, 상기 운영체제 또는 상기 애플리케이션의 프로그램 코드를 임의로 조작하는 등의 행위로 상기 운영체제 또는 상기 애플리케이션을 임의로 위조, 변조, 및/또는 변경하는 모든 행위를 의미한다. 실시 예에 따라, 운영체제의 위변조는 안드로이드 OS의 루팅 또는 iOS (애플사의 모바일 운영 체제)의 탈옥을 의미할 수 있고, 애플리케이션의 위변조는 애플리케이션의 소스 코드를 위조, 변조, 및/또는 변경하는 것을 의미할 수 있으나 이에 한정되는 것은 아니다.In this specification, the forgery or falsification of an operating system or an application refers to any action that arbitrarily falsifies, modulates, and / or changes the operating system or the application by an operation such as arbitrarily operating the operating system or the program code of the application. According to the embodiment, the forgery and falsification of the operating system may mean the routing of the Android OS or the jailbreak of iOS (Apple's mobile operating system), and the forgery or falsification of the application is meant to falsify, modulate, and / or change the source code of the application But is not limited thereto.

본 명세서에서, 애플리케이션(또는 스마트 폰 애플리케이션, 앱, 모바일 애플리케이션, 또는 웹 애플리케이션)이 어떤 기능(또는 작동)을 수행한다고 함은, 상기 애플리케이션이 상기 기능(또는 작동)을 수행하는 것을 의미할 수도 있고 또는 상기 애플리케이션이 설치된(또는 실행되는) 장치(예컨대, 단말기 또는 전자 장치)가 상기 애플리케이션을 이용하여 상기 기능(또는 작동)을 수행하는 것을 의미할 수 있다. 즉, 상기 애플리케이션이 수행하는 상기 기능은, 상기 애플리케이션이 설치된(또는 실행되는) 장치가 수행하는 기능으로 이해될 수 있다.In this specification, when an application (or a smartphone application, an application, a mobile application, or a web application) performs a certain function (or operation), it may mean that the application performs the function Or a device (e.g., a terminal or an electronic device) in which the application is installed (or executed) may perform the function (or operation) using the application. That is, the function performed by the application can be understood as a function performed by a device in which the application is installed (or executed).

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

도 1은 본 발명의 실시 예들에 따른 복수의 단말기들을 포함하는 네트워크를 개념적으로 나타낸다. 도 1에 도시된 네트워크(또는 네트워크 시스템; 10-1)은 복수의 단말기들(100-1, 100-2, …, 100-n (n은 2 이상의 자연수))를 포함할 수 있다. 도 1을 참조하면, 각 단말기(100-1, 100-2, …, 100-n)는 소프트웨어 프로그램을 저장, 실행, 제어 또는 변경 등을 할 수 있는 전자 장치를 의미할 수 있다. 실시 예에 따라, 각 단말기(100-1, 100-2, …, 100-n)는 본 명세서에서 설명될 애플리케이션을 실행하고, 모바일 환경에서 작동할 수 있는 전자 장치를 의미할 수 있다. Figure 1 conceptually illustrates a network comprising a plurality of terminals according to embodiments of the present invention. The network (or network system) 10-1 shown in Fig. 1 may include a plurality of terminals 100-1, 100-2, ..., 100-n (n is a natural number of 2 or more). Referring to FIG. 1, each of the terminals 100-1, 100-2,..., 100-n may denote an electronic device capable of storing, executing, controlling, or changing a software program. In accordance with an embodiment, each terminal 100-1, 100-2, ..., 100-n may refer to an electronic device that executes the applications described herein and may operate in a mobile environment.

각 단말기(100-1, 100-2, …, 100-n)는 각 애플리케이션(110-1, 110-2, …, 110-n)과 각 OS(120-1, 120-2, …, 120-n)을 포함(또는 실행)할 수 있다. 실시 예에 따라 각 애플리케이션(110-1, 110-2, …, 110-n)은 서로 동일한 애플리케이션 (또는 서로 동일한 기능을 수행하는 애플리케이션)일 수 있으나 이에 한정되는 것은 아니다. 예컨대, 각 단말기(100-1, 100-2, …, 100-n)는 각 애플리케이션(110-1, 110-2, …, 110-n)과 각 OS(120-1, 120-2, …, 120-n)을 저장하는 메모리 장치와, 이들을 실행하는 프로세서(또는 애플리케이션 프로세서), 및 다른 단말기와 통신을 위한 송수신기를 포함할 수 있다.Each of the terminals 100-1, 100-2, ..., and 100-n is connected to each of the applications 110-1, 110-2, ..., 110- -n) can be included (or executed). According to the embodiment, each of the applications 110-1, 110-2, ..., 110-n may be the same application (or an application performing the same function), but is not limited thereto. For example, each of the terminals 100-1, 100-2, ..., and 100-n is connected to each of the applications 110-1, 110-2, ..., 110-n and each of the OSs 120-1, 120-2, ..., , 120-n, a processor (or application processor) that executes them, and a transceiver for communication with other terminals.

예컨대, 각 단말기(100-1, 100-2, …, 100-n)는 랩탑(laptop) 컴퓨터, 스마트폰, 태블릿 (tablet) PC, PDA(personal digital assistant), 디지털 카메라, 웨어러블 (wearable) 장치, IoT(internet of things) 장치, 또는 IoE(internet of everything) 장치로 구현될 수 있으나 이에 한정되는 것은 아니다.For example, each of the terminals 100-1, 100-2, ..., 100-n may be a laptop computer, a smart phone, a tablet PC, a PDA (personal digital assistant), a digital camera, a wearable , An internet of things (IoT) device, or an internet of everything (IoE) device.

각 단말기(100-1, 100-2, …, 100-n)는 서로 통신을 수행할 수 있다. 실시 예에 따라, 각 단말기(100-1, 100-2, …, 100-n)는 무선 통신망을 이용하여 서로 데이터 등을 주고받을 수 있다.Each of the terminals 100-1, 100-2, ..., 100-n can communicate with each other. According to the embodiment, each of the terminals 100-1, 100-2, ..., and 100-n can exchange data with each other using a wireless communication network.

예컨대, 각 단말기(100-1, 100-2, …, 100-n)는 상기 무선 통신망을 이용하여 서로 채팅을 수행할 수 있고, 파일(file) 등을 공유할 수 있다. 상기 무선 통신망은 Wi-Fi(wireless fidelity)와 같은 무선 근거리 통신망(wireless local area network(WLAN)), 블루투스(bluetooth), 무선 USB(wireless universal serial bus), 지그비(Zigbee), NFC(near field communication), RFID(radio-frequency identification), 또는 3G 통신망, 4G 통신망, LTETM, LTE-A 와 같은 이동 통신망 (mobile cellular network)등으로 구현될 수 있으나, 이에 한정되는 것은 아니다.For example, each of the terminals 100-1, 100-2, ..., 100-n can chat with each other using the wireless communication network, and can share a file or the like. The wireless communication network may be a wireless local area network (WLAN) such as Wi-Fi (wireless fidelity), a bluetooth, a wireless universal serial bus (USB), a Zigbee, ), Radio-frequency identification (RFID), or a mobile cellular network such as a 3G communication network, a 4G communication network, an LTETM, or an LTE-A, but is not limited thereto.

실시 예에 따라, 각 단말기(100-1, 100-2, …, 100-n)는 서로 동일한 종류의 장치로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 도 1에 도시된 각 단말기(100-1, 100-2, …, 100-n)는 이하에서 설명될, 도 2의 단말기(100)를 의미할 수 있다.According to the embodiment, each of the terminals 100-1, 100-2, ..., 100-n may be implemented by the same kind of apparatus, but is not limited thereto. For example, each terminal 100-1, 100-2, ..., 100-n shown in FIG. 1 may refer to the terminal 100 of FIG. 2, which will be described below.

서버(200)는 특정 시스템에서 각종 자원(예컨대, 파일, 통신 회선 등)을 제공하는 장치 또는 소프트웨어를 의미할 수 있다. 서버(200)는 서버(200)에 연결된 장치들로 상기 자원을 제공할 수 있고, 서버(200)에 연결된 장치들끼리는 서로 통신할 수 있다.Server 200 may refer to a device or software that provides various resources (e.g., files, communication lines, etc.) in a particular system. The server 200 can provide the resources to the devices connected to the server 200 and the devices connected to the server 200 can communicate with each other.

서버(200)는 각 애플리케이션(110-1, 110-2, …, 110-n)의 작동에 필요한 파일 (또는 코드)를 각 단말기(100-1, 100-2, …, 100-n)로 제공할 수 있다. 즉, 각 애플리케이션(110-1, 110-2, …, 110-n)은 각 애플리케이션(110-1, 110-2, …, 110-n)의 작동에 필요한 파일(또는 코드)를 서버(200)로부터 수신할 수 있다. 실시 예들에 따라, 도 1에 도시된 바와 같이 각 단말기(100-1, 100-2, …, 100-n)는 서로 직접 (예컨대, 서버(200)를 거치지 않고) 통신하거나 서버(200)를 이용하여 서로 통신할 수 있다.The server 200 transmits a file (or code) necessary for the operation of each application 110-1, 110-2, ..., 110-n to each of the terminals 100-1, 100-2, ..., 100-n . Namely, each of the applications 110-1, 110-2, ..., 110-n transmits a file (or code) necessary for the operation of each of the applications 110-1, 110-2, As shown in Fig. 1, each terminal 100-1, 100-2, ..., 100-n may communicate directly with each other (e.g., without going through the server 200) or may communicate with the server 200 So that they can communicate with each other.

본 명세서에서 제1애플리케이션이 신호 또는 데이터를 제2애플리케이션과 주고받는다 함은 상기 제1애플리케이션이 설치된 제1단말기가 상기 제2애플리케이션이 설치된 제2단말기와 신호 또는 데이터를 주고받는 것을 의미할 수 있다.In this specification, the first application transmitting and receiving signals or data to and from the second application may mean that a first terminal installed with the first application exchanges signals or data with a second terminal installed with the second application .

도 2는 본 발명의 개념에 따른 애플리케이션을 포함하는 단말기의 개략적인 구성을 나타낸다. 도 2를 참조하면, 단말기(100)는 도 1의 제1단말기(100-1)를 의미할 수 있다. 단말기(100-1~100-n; 집합적(collectively) 또는 총괄적으로 100)는 애플리케이션(110-1~110-n; 집합적으로 또는 총괄적으로 110)과 OS(120-1~120-n; 집합적으로 또는 총괄적으로 120)을 포함한다. 예컨대, 단말기(100)는 애플리케이션(110)과 OS(120)를 저장하는 적어도 하나의 메모리 장치와, 애플리케이션(110)과 OS(120) 중에서 적어도 하나를 실행하는 프로세서를 포함할 수 있다.2 shows a schematic configuration of a terminal including an application according to the concept of the present invention. Referring to FIG. 2, the terminal 100 may refer to the first terminal 100-1 of FIG. The terminals 100-1 to 100-n (collectively or collectively, 100) are connected to the applications 110-1 to 110-n (collectively or collectively 110) and the OSs 120-1 to 120-n Collectively or collectively, 120). For example, the terminal 100 may include at least one memory device that stores the application 110 and the OS 120, and a processor that executes at least one of the applications 110 and the OS 120. [

애플리케이션(110)은 보안 모듈(112)과 메인 모듈(114)을 포함할 수 있다. 실시 예에 따라, 애플리케이션(110)은 라이브러리(library) 형태로 구현된 보안 모듈(112)과 메인 모듈(114)를 포함하는 패키지(package) 애플리케이션일 수 있다. 예컨대, 본 명세서에서 설명되는 보안 모듈(112)과 메인 모듈(114)이 수행하는 기능들은 애플리케이션(110)이 수행하는 기능들로 이해될 수 있다The application 110 may include a security module 112 and a main module 114. According to an embodiment, the application 110 may be a package application that includes a security module 112 and a main module 114 implemented in the form of a library. For example, functions performed by the security module 112 and the main module 114 described herein may be understood as functions performed by the application 110

애플리케이션(110)은 보안 모듈(112)을 이용하여 애플리케이션(110)의 (또는 애플리케이션(110)이 사용하는) 파일(또는 코드)를 위변조로부터 보호할 수 있다.The application 110 may use the security module 112 to protect the file (or code) of the application 110 (or the application 110) from tampering.

In other words

본 명세서에서 모듈(module)은 특정한 기능을 수행하는 소프트웨어의 기능적 또는 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 프로세서에 의해 실행될 수 있다.A module in this specification may mean a functional or structural combination of software that performs a specific function. For example, the module may be executed by a processor.

애플리케이션(110)은 특정 작업을 수행하기 위한 일련의 명령어들의 집합, 컴퓨터 소프트웨어, 또는 프로그램을 의미할 수 있다. 실시 예들에 따라, 애플리케이션(100)은 채팅 애플리케이션(chatting application or chat application), 뱅킹(또는 모바일 뱅킹) 애플리케이션, 모바일 결제(mobile payment) 애플리케이션, 피어-투-피어 결제(peer-to-peer payment) 애플리케이션, 증권 거래(stock trading) 애플리케이션, 모바일 메신저(mobile messenger) 애플리케이션, 소셜 네트워크 (social network) 애플리케이션, 미디어(media) 애플리케이션, 게임 (game) 애플리케이션, 트레이딩(trading) 애플리케이션 등과 같이 다양한 서비스를 사용자에게 제공할 수 있는 애플리케이션을 의미할 수 있으나 이에 한정되는 것은 아니다.Application 110 may refer to a set of instructions, computer software, or programs to perform a particular task. According to embodiments, the application 100 may be a chatting application or a chat application, a banking (or mobile banking) application, a mobile payment application, a peer-to-peer payment, A variety of services can be provided to the user, such as an application, a stock trading application, a mobile messenger application, a social network application, a media application, a game application, a trading application, But is not limited to, an application that may be provided.

애플리케이션(110)은 서버(200)로부터 다운로드 되고 단말기(100)에 설치되어 사용되는 네이티브(native) 애플리케이션 또는 별도의 다운로드 절차 없이 단말기(100)에 설치된 브라우저(browser)를 통해 사용하는 웹(web) 애플리케이션을 의미할 수 있으나, 이에 한정되는 것이 아니고, 상기 네이티브 애플리케이션과 상기 웹 애플리케이션이 결합된 하이브리드(hybrid) 애플리케이션을 의미할 수도 있다.보안 모듈(112)은 특정 프로그램 또는 소프트웨어의 위변조(위조 및/또는 변조) 여부를 판단(또는 감시)하는 기능을 수행할 수 있다. 실시 예들에 따라, 보안 모듈(112)은 보안 모듈(112) 자신의 위변조 여부, 메인 모듈(114)의 위변조 여부, OS(120)의 위변조 여부, 및 다른 단말기에 설치된 애플리케이션의 위변조 여부 중에서 적어도 하나를 판단할 수 있다.The application 110 may be a native application that is downloaded from the server 200 and installed and used in the terminal 100 or a web used through a browser installed on the terminal 100 without a separate download procedure, But may also refer to a hybrid application in which the native application and the web application are combined. The security module 112 may be used to forge or falsify a particular program or software, (Or monitoring) whether or not the received signal has been modulated (or modulated). According to embodiments, the security module 112 may determine whether at least one of the forgery and falsification of the security module 112, the forgery and falsification of the main module 114, the forgery and falsification of the OS 120, Can be determined.

보안 모듈(112)은 단말기(100)의 위변조 여부를 순차적으로 판단할 수 있다. 예컨대, 보안 모듈(112)은 먼저 보안 모듈(112) 자신의 위변조 여부를 판단하고, 판단의 결과에 따라 보안 모듈(112)이 위변조되지 않았을 때에 메인 모듈(114)의 위변조 여부를 판단할 수 있고, 이와 같은 방식으로 OS(120)의 위변조 여부를 판단하고 상기 다른 단말기에 설치된 애플리케이션의 위변조 여부를 판단할 수 있다.The security module 112 may sequentially determine whether the terminal 100 is forged or falsified. For example, the security module 112 first determines whether the security module 112 itself is forged or not, and when the security module 112 has not been tampered with according to the result of the determination, it can determine whether the main module 114 has been tampered with or not In this way, it is possible to determine whether the OS 120 is falsified or not, and determine whether the application installed in the other terminal is falsified or not.

즉, 단말기(100)에서 실행되는 애플리케이션(110)은 애플리케이션(110) (예컨대, 보안 모듈(112)과 메인 모듈(114))의 위변조 여부와 OS(120)의 위변조 여부를 스스로 판단할 수 있을 뿐만 아니라, 단말기(100)와 통신하는 다른 단말기에 설치된 애플리케이션(또는 OS)의 위변조 여부를 판단할 수 있다.보안 모듈(112)은 단말기(100) 또는 단말기(100)와 통신하는 다른 단말기에 설치된 애플리케이션의 위변조 여부를 판단하고, API(application programming interface)를 통해 상기 판단의 결과를 지시하는 신호를 메인 모듈(114)로 전송할 수 있다.That is, the application 110 executed in the terminal 100 can determine whether the application 110 (for example, the security module 112 and the main module 114) is forged or falsified and whether the OS 120 is falsified or not The security module 112 may determine whether an application (or OS) installed in another terminal communicating with the terminal 100 is forged or not. The security module 112 may be installed in the terminal 100 or another terminal communicating with the terminal 100 It is possible to determine whether the application is forged or falsified, and transmit a signal indicating the result of the determination to the main module 114 through an application programming interface (API).

보안 모듈(112)은 상기 위변조 여부들 판단에 따른 결과에 대응하는 로그(log)를 생성할 수 있다.The security module 112 may generate a log corresponding to the result of the forgery or falsification determination.

보안 모듈(112)은 애플리케이션(110)이 실행될 때 애플리케이션(110)과 동시에 실행되고, 애플리케이션(110)이 종료할 때 애플리케이션(110)과 동시에 종료될 수 있으나 이에 한정되는 것은 아니다. 여기서 동시는 약간의 시간 차이를 포함한다.The security module 112 may be executed concurrently with the application 110 when the application 110 is executed and concurrently with the application 110 when the application 110 is terminated. Where the coincidence involves some time difference.

메인 모듈(114)은 애플리케이션(110)의 주 기능을 수행하는 모듈을 의미할 수 있다. 실시 예들에 따라, 메인 모듈(114)은 애플리케이션(110) 중에서 보안 모듈 (112)을 제외한 부분을 의미할 수 있다. 예컨대, 애플리케이션(110)이 금융(결제 또는 핀 테크(Fin Tech)) 애플리케이션일 때, 보안 모듈(112)은 위변조 여부를 판단하는 모듈을 의미하고, 메인 모듈(114)은 금융(결제 또는 핀 테크) 서비스를 제공하는 모듈을 의미할 수 있다.The main module 114 may refer to a module that performs the main function of the application 110. According to embodiments, the main module 114 may refer to a portion of the application 110 other than the security module 112. For example, when the application 110 is a financial (payment or Fin Tech) application, the security module 112 refers to a module for judging whether a forgery or falsification has occurred, and the main module 114 refers to a financial ) Service. ≪ / RTI >

메인 모듈(114)은 보안 모듈(112)의 위변조 여부 판단에 따라 작동할 수 있다. 실시 예에 따라, 메인 모듈(114)은, 보안 모듈(112)에 의해 애플리케이션(110), OS (120), 및 단말기(100)와 통신하는 다른 단말기에 설치된 애플리케이션 중에서 적어도 하나가 위변조되었다고 판단되었을 때, 애플리케이션(110)의 실행을 중지할 수 있다. 또한, 메인 모듈(114)은 보안 모듈(112)이 위변조 염려가 없다고 판단했을 때, 애플리케이션(110)의 실행을 유지하고 메인 모듈(114)의 기능을 수행할 수 있다.The main module 114 may operate according to whether the security module 112 is forged or not. According to the embodiment, the main module 114 determines that at least one of the applications 110, the OS 120, and applications installed in other terminals communicating with the terminal 100 has been tampered with by the security module 112 The execution of the application 110 can be stopped. The main module 114 may maintain the execution of the application 110 and perform the function of the main module 114 when the security module 112 determines that there is no possibility of forgiveness.

예컨대, 보안 모듈(112)에 의해 생성된 위변조 판단 결과가 메인 모듈(114)로 전송되면, 메인 모듈(114)은 상기 판단 결과에 기초하여 작동을 중지할 수 있다.For example, if the forgery and falsification determination result generated by the security module 112 is transmitted to the main module 114, the main module 114 may stop the operation based on the determination result.

비록, 도 2에서는 보안 모듈(112)과 메인 모듈(114)이 분리된 형태로 도시되어 있으나, 보안 모듈(112)과 메인 모듈(114)은 일체화된 하나의 모듈로 구현될 수 있다.2, the security module 112 and the main module 114 are separated from each other. However, the security module 112 and the main module 114 may be implemented as a single integrated module.

도 3은 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 OS의 위변조 여부와 상기 애플리케이션의 위변조 여부를 판단하는 방법을 설명하기 위한 플로우 차트를 나타낸다. 도 1 내지 4을 참조하면, 제1애플리케이션(110-1)은 제1OS(120-1)의 위변조 여부를 판단할 수 있을 뿐만 아니라 제1애플리케이션(110-1)의 위변조 여부를 판단할 수 있다.3 is a flowchart illustrating a method for determining whether an application forgery or falsifies an OS and forgery or falsification of an application according to an embodiment of the present invention. 1 to 4, the first application 110-1 can judge whether the first application 120-1 is forged or not, as well as determine whether the first application 110-1 is forged or falsified .

실시 예에 따라, 제1애플리케이션(110-1)에 포함된 제1보안 모듈은 제1OS (120-1)의 위변조 여부를 판단할 수 있고, 제1애플리케이션(110-1)의 위변조 여부를 판단할 수 있다.According to the embodiment, the first security module included in the first application 110-1 can determine whether the first OS 120-1 is forged or not, and determines whether the first application 110-1 is forged or not can do.

상기 제1보안 모듈과 제1메인 모듈을 포함하는 제1애플리케이션(110-1)은 제1단말기(100-1)에서 실행될 수 있다(S100).The first application 110-1 including the first security module and the first main module may be executed in the first terminal 100-1 (SlOO).

제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 위변조 여부를 스스로 판단할 수 있다(S200). The first application 110-1 may determine whether the first application 110-1 is forged or not (S200).

상기 판단(S200)의 결과에 따라, 제1애플리케이션(110-1)이 위변조된 것으로 판단되었을 때(S200의 YES), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 실행을 종료할 수 있다(S300).When it is determined that the first application 110-1 is falsified (YES in S200), the first application 110-1 executes the execution of the first application 110-1 according to the result of the judgment (S200) (S300).

실시 예에 따라, 제1애플리케이션(110-1)은, 제1애플리케이션(110-1)이 위변조된 것으로 판단되었을 때, 제1애플리케이션(110-1)의 위변조를 지시하는 메시지를 출력하고, 제1애플리케이션(110-1)의 실행을 자동으로 종료할 수 있다.According to the embodiment, when it is determined that the first application 110-1 has been tampered with, the first application 110-1 outputs a message instructing the forgery and falsification of the first application 110-1, 1 application 110-1 can be automatically terminated.

실시 예에 따라, 제1애플리케이션(110-1)은, 제1애플리케이션(110-1)이 위변조된 것으로 판단되었더라도, 제1단말기(100-1)의 사용자가 제1애플리케이션 (110-1)의 실행의 종료를 원하지 않는 경우, 제1OS(120-1)의 위변조 여부를 판단하는 단계(S400)로 진입할 수 있다.According to the embodiment, even if the first application 110-1 is judged that the first application 110-1 is forged, the user of the first terminal 100-1 can access the first application 110-1, If the execution of the first OS 120-1 is not desired to be terminated, it may be determined whether the first OS 120-1 is falsified or not (S400).

실시 예에 따라, 제1애플리케이션(110-1)은, 제1애플리케이션(110-1)이 위변조된 것으로 판단되었을 때, 자동으로 서버(200)에 접속하여 변조가 되지 않은 제1애플리케이션을 서버(200)로부터 다운 받고, 상기 변조가 되지 않은 제1애플리케이션을 재설치 할 수 있다. 예컨대, 제1애플리케이션(110-1)은 상기 재설치 전에 상기 재설치 여부를 묻는 알림을 제1단말기(100-1)의 디스플레이를 통해 제1단말기(100-1)의 사용자에게 제공할 수 있다. 제1애플리케이션(110-1)의 재설치가 완료되었을 때, 제1애플리케이션은 자동으로(예컨대, 상기 사용자의 특별한 지시 없이) 제1애플리케이션(110-1)의 위변조 여부를 다시 판단할 수 있다.According to the embodiment, when the first application 110-1 is judged to have been tampered with, the first application 110-1 automatically accesses the server 200 to transmit the first application, which has not been tampered, 200, and re-install the first application that has not been modulated. For example, the first application 110-1 may provide a notification to the user of the first terminal 100-1 via the display of the first terminal 100-1, asking whether to re-install the first application 110-1. When the reinstallation of the first application 110-1 is completed, the first application can automatically re-determine whether the first application 110-1 has been tampered with (e.g., without the user's specific instruction).

상기 판단(S200)의 결과에 따라, 제1애플리케이션(110-1)이 위변조되지 않은 것으로 판단되었을 때(S200의 NO), 제1애플리케이션(110-1)은 제1OS(120-1)의 위변조 여부를 판단하는 단계(S400)로 자동으로 진입할 수 있다.According to the result of the judgment (S200), when it is judged that the first application 110-1 is not forged (NO in S200), the first application 110-1 judges that the forgery and falsification of the first OS 120-1 (Step S400). ≪ RTI ID = 0.0 >

제1애플리케이션(110-1)은 주기적으로(periodically) 또는 실시간으로(on-the-fly), 제1애플리케이션(110-1)의 위변조 여부를 스스로 판단할 수 있다.The first application 110-1 may periodically or on-the-fly determine whether to forgive the first application 110-1.

제1애플리케이션(110-1)은 제1단말기(100-1)에 설치된(또는 단말기(100)에서 실행되는) 제1OS(120-1)의 위변조 여부를 판단할 수 있다(S400).The first application 110-1 may determine whether the first OS 120-1 installed in the first terminal 100-1 (or executed in the terminal 100) is forged or not (S400).

상기 판단(S200)의 결과에 따라, 제1OS(120-1)가 제1애플리케이션(110-1)에 의해 위변조된 것으로 판단되었을 때(S400의 YES), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 실행을 자동으로 종료할 수 있다(S500).When it is determined that the first OS 120-1 has been falsified by the first application 110-1 according to the result of the judgment (S200) (YES in S400), the first application 110-1 1 application 110-1 can be automatically terminated (S500).

실시 예에 따라, 제1애플리케이션(110-1)은, 제1OS(120-1)가 위변조된 것으로 판단되었을 때, 제1OS(120-1)가 위변조되었음을 지시하는 메시지를 제1단말기(100-1)의 디스플레이로 출력하고, 제1애플리케이션(110-1)의 실행을 자동으로 종료할 수 있다.According to the embodiment, when it is determined that the first OS 120-1 is forged, the first application 110-1 transmits a message indicating that the first OS 120-1 has been falsified to the first terminal 100-1, 1), and the execution of the first application 110-1 can be automatically terminated.

실시 예에 따라, 제1OS(120-1)가 위변조된 것으로 판단되었더라도, 제1단말기(100-1)의 사용자가 제1애플리케이션(110-1)의 실행의 종료를 원하지 않는 경우, 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 실행을 유지할 수 있다(S600).According to the embodiment, if the user of the first terminal 100-1 does not want to terminate the execution of the first application 110-1, even if the first OS 120-1 is judged to be forged, The first application 110-1 may maintain the execution of the first application 110-1 (S600).

상기 판단(S400)의 결과에 따라, 제1애플리케이션(110-1)에 의해 제1OS(120-1)가 위변조되지 않은 것으로 판단되었을 때(S400의 YES), 제1애플리케이션(110-1)은 제1애플리케이션 110-1)의 위변조 여부를 판단하는 단계(S200)로 자동으로 진입할 수 있다.When it is determined by the first application 110-1 that the first OS 120-1 is not forged according to the result of the judgment (S400) (YES in S400), the first application 110-1 (S100) of determining whether the first application 110-1 is forged or falsified.

실시 예에 따라, 제1애플리케이션(110-1)에 의해 제1OS(120-1)가 위변조되지 않은 것으로 판단되었을 때(S400의 YES), 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조 되지 않았음을 지시하는 제1OS 검증 신호(OS1_VF)를 생성할 수 있다.According to the embodiment, when it is determined by the first application 110-1 that the first OS 120-1 has not been tampered with (YES in S400), the first application 110-1 accesses the first OS 120- 1) is not tampered with.

상기 판단(S200)의 결과에 따라, 제1애플리케이션(110-1)에 의해 제1OS(120-1)가 위변조된 것으로 판단되었을 때(S400의 YES), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 실행을 종료할 수 있다(S500).When it is determined that the first OS 120-1 has been falsified by the first application 110-1 (YES in S400) according to the result of the judgment (S200), the first application 110-1 1 application 110-1 (S500).

비록 도 3에는 제1애플리케이션(110-1)이 제1애플리케이션(110-1)의 위변조 여부를 판단한 후 제1OS(120-1)의 위변조 여부를 판단하는 것으로 도시되어 있으나 이는 예시적인 것일 뿐이며, 실시 예들에 따라 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 위변조 여부의 판단보다 제1OS(120-1)의 위변조 여부를 먼저 판단할 수 있고, 제1OS(120-1)의 위변조 여부와 제1애플리케이션(110-1)의 위변조 여부를 병렬적으로 또는 독립적으로 판단할 수 있다.Although FIG. 3 shows that the first application 110-1 determines whether the first application 110-1 is forged or falsified and then determines whether the first application 120-1 is forged or falsified, The first application 110-1 may first determine whether the first OS 120-1 is fake or not rather than whether the first application 110-1 is forged or falsified and the first application 120-1 ) And whether the first application 110-1 is forged or falsified can be determined in parallel or independently.

도 4는 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 상기 애플리케이션의 위변조 여부를 자가 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.4 shows a flowchart for explaining in detail a method for an application to self-judge whether or not the application is falsified according to an embodiment according to the concept of the present invention.

도 1 내지 도 4를 참조하면, 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 상태를 지시하는 제1APP 값(APP1_VAL)을 생성할 수 있다(S210). 실시 예에 따라, 제1애플리케이션(110-1)은 제1애플리케이션(110-1)이 실행될 때 마다 제1APP 값(APP1_VAL)을 생성할 수 있으나, 이에 한정되는 것은 아니다. Referring to FIGS. 1 to 4, the first application 110-1 may generate a first APP value APP1_VAL indicating the status of the first application 110-1 (S210). According to an embodiment, the first application 110-1 may generate a first APP value (APP1_VAL) each time the first application 110-1 is executed, but is not limited thereto.

제1APP 값(APP1_VAL)은 제1애플리케이션(110-1)를 구성하는 파일(또는 코드)의 전부 또는 일부에 기초하여 생성된 값을 의미할 수 있다. 실시 예에 따라, 제1APP 값(APP1_VAL)은 제1애플리케이션(110-1)를 구성하는 파일(또는 코드) 중, 제1애플리케이션(110-1)의 정상적인(예컨대, 위변조되지 않은) 작동 환경에서는 변화하지 않는 부분(예컨대, 제1애플리케이션(110-1)의 소스(source) 코드)에 기초하여 생성된 값을 의미할 수 있다.The first APP value (APP1_VAL) may mean a value generated based on all or a part of the file (or code) constituting the first application 110-1. According to the embodiment, the first APP value (APP1_VAL) is set to a value (APP1_VAL) in the normal (e.g., non-forged) operating environment of the first application 110-1 (E.g., a source code of the first application 110-1) that does not change.

실시 예에 따라, 제1APP 값(APP1_VAL)은 제1애플리케이션(110-1)를 구성하는 파일(또는 프로그램 코드) 중 제1애플리케이션(110-1)이 실행되는 제1단말기(100-1) 또는 제1OS(120-1)의 유형(type)에 따라 바뀌지 않는 부분에 기초하여 생성될 수 있다. 예컨대, 제1애플리케이션(110-1)이 바뀌지 않는다면 제1APP 값(APP1_VAL)은 제1OS(120-1)의 종류(예컨대, 안드로이드 OS인지 iOS인지 여부)에 상관 없이 동일한 값을 가질 수 있다. 비정상적인 사용 환경(예컨대, 제1애플리케이션(110-1)의 위변조 및/또는 제1OS(120-1)의 위변조)에 따라, 제1애플리케이션(110-1)를 구성하는 파일의 전부 또는 일부에 변화가 발생하면, 생성되는 제1APP 값(APP1_VAL)은 달라질 수 있다.According to the embodiment, the first APP value (APP1_VAL) is a value indicating whether the first application 110-1 in which the first application 110-1 is executed among the files (or program codes) constituting the first application 110-1 And may be generated based on a portion that does not change according to the type of the first OS 120-1. For example, if the first application 110-1 does not change, the first APP value APP1_VAL may have the same value regardless of the type of the first OS 120-1 (e.g., whether it is the Android OS or iOS). Changes in all or a part of the files constituting the first application 110-1, in accordance with an abnormal usage environment (for example, forgery and / or forgery of the first application 110-1 and / or forgery of the first OS 120-1) The generated first APP value (APP1_VAL) can be changed.

제1애플리케이션(110-1)은 제1애플리케이션(110-1)이 실행될 때마다 생성된 제1APP 값(APP1_VAL)을 제1애플리케이션(110-1) 또는 제1단말기(100-1)의 메모리 장치에 저장할 수 있다. 실시 예에 따라, 제1애플리케이션(110-1)은 제1APP 값(APP1_VAL)을 암호화하여 저장할 수 있다. 예컨대, 제1APP 값(APP1_VAL)은 제1애플리케이션 (110-1)의 파일(또는 코드)의 해시(hash) 함수 값일 수 있다. The first application 110-1 transmits the first APP value APP1_VAL generated each time the first application 110-1 is executed to the first application 110-1 or the first application 110-1, Lt; / RTI > According to the embodiment, the first application 110-1 may encrypt and store the first APP value (APP1_VAL). For example, the first APP value (APP1_VAL) may be a hash function value of the file (or code) of the first application 110-1.

제1애플리케이션(110-1)은 현재 제1APP 값(CUR_APP1_VAL)과, 제1애플리케이션(110-1)의 이전 상태를 지시하는 이전 제1APP 값(PRV_APP1_VAL)을 비교하고, 이들(CUR_APP1_VAL과 PRV_APP1_VAL)의 동일 여부를 판단할 수 있다(S212).The first application 110-1 compares the current first APP value CUR_APP1_VAL with the previous first APP value PRV_APP1_VAL indicating the previous state of the first application 110-1 and sets the values of these (CUR_APP1_VAL and PRV_APP1_VAL) (S212).

현재 제1APP 값(CUR_APP1_VAL)은 현재 제1애플리케이션(110-1)에 의해 생성된 제1APP 값(APP1_VAL)을 의미할 수 있다.The current first APP value (CUR_APP1_VAL) may mean the first APP value (APP1_VAL) generated by the first application 110-1.

이전 제1APP 값(PRV_APP1_VAL)은 현재 제1APP 값(CUR_APP1_VAL)의 생성 이전에 제1애플리케이션(110-1)에 의해 생성된 제1APP 값(APP1_VAL)을 의미할 수 있다. 실시 예에 따라, 이전 제1APP 값(PRV_APP1_VAL)은 현재 제1APP 값 (CUR_APP1_VAL)의 생성 바로 직전에 제1애플리케이션(110-1)에 의해 생성된 제1APP 값 (APP1_VAL)을 의미할 수 있으나, 이에 한정되는 것은 아니다. 실시 예에 따라, 이전 제1APP 값(PRV_APP1_VAL)은 복수일 수 있다.The previous first APP value PRV_APP1_VAL may mean the first APP value APP1_VAL generated by the first application 110-1 prior to the generation of the current first APP value CUR_APP1_VAL. According to an embodiment, the previous first APP value (PRV_APP1_VAL) may mean the first APP value (APP1_VAL) generated by the first application 110-1 just before the generation of the current first APP value (CUR_APP1_VAL) But is not limited thereto. According to the embodiment, the previous first APP value (PRV_APP1_VAL) may be plural.

예컨대, 제1APP 값(APP1_VAL)이 2회 생성(제1생성 후 제2생성)된다고 가정하면, 상기 제2생성에서 생성된 제1APP 값은 현재 제1APP 값 (CUR_APP1_VAL)이 될 수 있고, 상기 제1생성에서 생성된 제1APP 값은 이전 제1APP 값(PRV_APP1_VAL)이 될 수 있다.For example, assuming that the first APP value (APP1_VAL) is generated twice (second generation after the first generation), the first APP value generated in the second generation may be the current first APP value (CUR_APP1_VAL) 1 may be the previous first APP value (PRV_APP1_VAL).

이전 제1APP 값(PRV_APP1_VAL)은 제1단말기(100-1)에 저장되어 있을 수 있고, 제1애플리케이션(110-1)에 의해 리드될 수 있다.The previous first APP value PRV_APP1_VAL may be stored in the first terminal 100-1 and may be read by the first application 110-1.

제1애플리케이션(110-1)은 생성된 제1APP 값(APP1_VAL)을 주기적으로 서버(200)에 업로드 할 수 있다.현재 제1APP 값(CUR_APP1_VAL)과 이전 제1APP 값 (PRV_APP1_VAL) 각각은 이들(CUR_APP1_VAL과 PRV_APP1_VAL) 각각이 생성된 시점에 관한 정보를 포함할 수 있다. 예컨대, 현재 제1APP 값(CUR_APP1_VAL)은 현재 제1APP 값(CUR_APP1_VAL)이 생성되었을 때의 제1애플리케이션(110-1)의 버전을 식별할 수 있는 정보를 더 포함할 수 있고, 이전 제1APP 값 (PRV_APP1_VAL)은 이전 제1APP 값(PRV_APP1_VAL)이 생성되었을 때의 제1애플리케이션(110-1)의 버전을 식별할 수 있는 정보를 더 포함할 수 있다.The first application 110-1 may periodically upload the generated first APP value APP1_VAL to the server 200. The current first APP value CUR_APP1_VAL and the previous first APP value PRV_APP1_VAL are each set to CUR_APP1_VAL And PRV_APP1_VAL) are generated. For example, the current first APP value (CUR_APP1_VAL) may further include information that can identify the version of the first application 110-1 when the current first APP value (CUR_APP1_VAL) is generated, and the previous first APP value PRV_APP1_VAL) may further include information that can identify the version of the first application 110-1 when the previous first APP value (PRV_APP1_VAL) has been generated.

제1애플리케이션(110-1)이 위변조되지 않았다면 현재 제1APP 값 (CUR_APP1_VAL)과 이전 제1APP 값(PRV_APP1_VAL)이 동일할 것이다. 반대로, 제1애플리케이션(110-1)이 위변조되었다면 제1애플리케이션(110-1)을 구성하는 파일 중 적어도 일부에는 변화가 있을 것이므로, 현재 제1APP 값 (CUR_APP1_VAL)과 이전 제1APP 값(PRV_APP1_VAL)은 동일하지 않을 것이다.If the first application 110-1 is not forged, the current first APP value (CUR_APP1_VAL) and the previous first APP value (PRV_APP1_VAL) will be the same. Conversely, if the first application 110-1 is forged, there will be a change in at least some of the files constituting the first application 110-1. Therefore, the first APP value (CUR_APP1_VAL) and the previous first APP value (PRV_APP1_VAL) It will not be the same.

그러므로 상기 판단(S212)의 결과에 따라, 현재 제1APP 값(CUR_APP1_VAL)과 이전 제1APP 값(PRV_APP1_VAL)이 동일할 때(S212의 YES), 제1애플리케이션 (110-1)은 제1애플리케이션(110-1)이 위변조되지 않았다고 판단할 수 있다(S214).Therefore, when the current first APP value (CUR_APP1_VAL) and the previous first APP value (PRV_APP1_VAL) are equal (YES in S212), the first application 110-1 determines that the first application 110 -1) is not forged (S214).

제1애플리케이션(110-1)은 현재 제1APP 값(CUR_APP1_VAL)과 이전 제1APP 값(PRV_APP1_VAL)이 동일할 때, 이전 제1APP 값(PRV_APP1_VAL)을 현재 제1APP 값(CUR_APP1_VAL)으로 갱신 할 수 있다. 즉, 제1애플리케이션(110-1)은 다음 번 판단에서, 현재 판단에서 사용된 현재 제1APP 값(CUR_APP1_VAL)을 이전 제1APP 값(PRV_APP1_VAL)으로 사용할 수 있다.The first application 110-1 may update the previous first APP value PRV_APP1_VAL to the current first APP value CUR_APP1_VAL when the current first APP value CUR_APP1_VAL and the previous first APP value PRV_APP1_VAL are equal. That is, the first application 110-1 may use the current first APP value (CUR_APP1_VAL) used in the current determination as the previous first APP value (PRV_APP1_VAL) in the next determination.

상기 판단(S212)의 결과에 따라, 현재 제1APP 값(CUR_APP1_VAL)과 이전 제1APP 값(PRV_APP1_VAL)이 동일하지 않을 때(S212의 NO), 제1애플리케이션 (110-1)은 제1애플리케이션(110-1)이 위변조된 것으로 판단할 수 있다(S216).When the current first APP value CUR_APP1_VAL and the previous first APP value PRV_APP1_VAL are not equal to each other (NO in S212), the first application 110-1 transmits the first application 110 -1) is falsified (S216).

따라서, 본 발명의 개념에 따른 실시 예에 따른 애플리케이션은 상기 애플리케이션에 의해 생성된 APP 값을 이용하므로, 서버에 의존하지 않더라도 상기 애플리케이션의 위변조 여부를 자동으로 판단할 수 있다.Therefore, the application according to the embodiment of the present invention uses the APP value generated by the application, so that it is possible to automatically determine whether the application is forged or not, without depending on the server.

도 5는 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 상기 애플리케이션의 위변조 여부를 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.5 is a flowchart illustrating a method for determining whether an application forgery or falsifies the application according to an embodiment of the present invention.

도 1 내지 도 3 및 도 5을 참조하면, 본 발명의 개념에 따른 실시 예에 따른 애플리케이션은 서버를 이용하여 상기 애플리케이션의 위변조 여부를 자동으로 판단할 수 있다.1 to 3 and 5, an application according to an embodiment of the present invention can automatically determine whether or not the application is forged or falsified by using a server.

제1애플리케이션(110-1)은 서버(200)로부터 기준 제1APP 값 (REF_APP1_VAL)을 수신할 수 있다(S222). The first application 110-1 may receive the reference first APP value REF_APP1_VAL from the server 200 (S222).

기준 제1APP 값 (REF_APP1_VAL)은 제1APP 값 (APP1_VAL)을 생성하는 방식과 동일한 방식으로 생성된 값일 수 있다.The reference first APP value (REF_APP1_VAL) may be a value generated in the same manner as the method of generating the first APP value (APP1_VAL).

기준 제1APP 값(REF_APP1_VAL)은 암호화 되어 있을 수 있다. 실시 예에 따라, 기준 제1APP 값(REF_APP1_VAL)은 전자 서명(digital signature)되어 서버(200)에 저장되어 있을 수 있다.The reference first APP value (REF_APP1_VAL) may be encrypted. According to an embodiment, the reference first APP value (REF_APP1_VAL) may be digitally signed and stored in the server 200.

제1애플리케이션(110-1)은 별도의 인증 서버로부터 기준 제1APP 값(REF_APP1_VAL)을 수신할 수 있다. 실시 예에 따라, 제1애플리케이션(110-1)은, 설정된 보안 레벨(security level)에 따라, 서버(200)로부터 기준 제1APP 값 (REF_APP1_VAL)을 수신할 것인지 또는 상기 인증 서버로부터 기준 제1APP 값 (REF_APP1_VAL)을 수신할 것인지를 결정할 수 있다. 상기 보안 레벨은 제1애플리케이션(110-1)에 의해 변경될 수 있다.The first application 110-1 may receive a reference first APP value (REF_APP1_VAL) from a separate authentication server. According to an embodiment, the first application 110-1 may determine whether to receive a reference first APP value (REF_APP1_VAL) from the server 200 or a reference first APP value (REF_APP1_VAL) from the authentication server according to a set security level (REF_APP1_VAL). The security level may be changed by the first application 110-1.

제1애플리케이션(110-1)은 기준 제1APP 값(REF_APP1_VAL)과 제1애플리케이션(110-1)에 의해 생성된 제1APP 값(APP1_VAL)을 비교하고, 상기 비교의 결과에 따라 기준 제1APP 값(REF_APP1_VAL)과 제1APP 값(APP1_VAL)이 동일한지를 판단할 수 있다(S222).The first application 110-1 compares the reference first APP value REF_APP1_VAL with the first APP value APP1_VAL generated by the first application 110-1 and generates a reference first APP value REF_APP1_VAL) and the first APP value (APP1_VAL) are identical (S222).

실시 예에 따라, 제1애플리케이션(110-1)은 서버(200)로부터 제1애플리케이션(110-1)의 버전(version)에 해당하는 기준 제1APP 값(REF_APP1_VAL)을 수신하고, 기준 제1APP 값(REF_APP1_VAL)과 제1APP 값(APP1_VAL)을 비교할 수 있다. 예컨대, 제1애플리케이션(110-1)의 버전이 1.0일 때, 제1애플리케이션(110-1)은 서버(200)에서 버전 1.0에 해당하는 기준 제1APP 값(REF_APP1_VAL)을 수신할 수 있다. 상기 판단(S222)의 결과에 따라, 기준 제1APP 값(REF_APP1_VAL)과 제1APP 값(APP1_VAL)이 동일할 때(S222의 YES), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)이 위변조되지 않았다고 판단할 수 있다(S224).According to an embodiment, the first application 110-1 receives a reference first APP value (REF_APP1_VAL) corresponding to the version of the first application 110-1 from the server 200, (REF_APP1_VAL) and the first APP value (APP1_VAL). For example, when the version of the first application 110-1 is 1.0, the first application 110-1 may receive the reference first APP value (REF_APP1_VAL) corresponding to the version 1.0 in the server 200. [ When the reference first APP value REF_APP1_VAL and the first APP value APP1_VAL are equal to each other (YES in S222), the first application 110-1 receives the first application 110-1 ) Is not forged (S224).

상기 판단(S212)의 결과에 따라, 기준 제1APP 값(REF_APP1_VAL)과 제1APP 값(APP1_VAL)이 동일하지 않을 때(S222의 NO), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)이 위변조된 것으로 판단할 수 있다(S226).When the reference first APP value REF_APP1_VAL and the first APP value APP1_VAL do not equal to each other (NO in S222), the first application 110-1 determines that the first application 110- 1) is forged (S226).

본 발명의 개념에 따른 실시 예에 따른 애플리케이션은 서버로부터 수신한 파일(또는 프로그램 코드)에 대한 검증을 수행하므로, 상기 애플리케이션의 설치 이후에 상기 애플리케이션이 위변조 되더라도, 상기 위변조 여부를 판단할 수 있다. Since the application according to the embodiment of the present invention performs verification of a file (or a program code) received from a server, it can determine whether the application is forged or falsified even after the application is forged.

실시 예에 따라, 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 제1파일 (또는 제1코드)의 위변조를 서버를 이용하지 않고 판단하고, 제1애플리케이션(110-1)의 제2파일(또는 제2코드)의 위변조를 서버를 이용하여 판단할 수 있으나, 이에 한정되는 것은 아니다.According to the embodiment, the first application 110-1 determines the forgery and falsification of the first file (or the first code) of the first application 110-1 without using the server, and the first application 110-1 The second file (or the second code) of the second file can be judged using the server, but the present invention is not limited thereto.

제1파일(또는 제1프로그램 코드)는 제1애플리케이션(110-1)을 구성하는 파일 (또는 프로그램 코드) 중에서 제1애플리케이션(110-1)의 작동에 따라 변화하지 않는 파일(또는 프로그램 코드)을 의미하고, 제2파일(또는 제2프로그램 코드)는 제1애플리케이션(110-1)을 구성하는 파일 (또는 프로그램 코드) 중에서 제1애플리케이션(110-1)의 작동에 따라 변화하는 파일 (또는 프로그램 코드)를 의미한다고 가정한다.The first file (or first program code) is a file (or program code) that does not change according to the operation of the first application 110-1 among the files (or program codes) constituting the first application 110-1, And the second file (or the second program code) is a file (or program code) that constitutes the first application 110-1 and that changes according to the operation of the first application 110-1 Program code).

도 6는 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 상기 애플리케이션이 설치된 단말기와 통신하는 다른 단말기를 이용하여 상기 애플리케이션의 위변조 여부를 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.FIG. 6 is a flowchart illustrating a method for determining whether an application forgery or falsifies the application using another terminal communicating with a terminal equipped with the application according to an embodiment of the present invention.

실시 예에 따라, 도 1 내지 4 및 도 6를 참조하면, 제1애플리케이션(110-1)은 제1단말기(100-1)와 통신하는 제2단말기(100-2)를 이용하여 제1애플리케이션(110-1)의 위변조 여부를 판단할 수 있다.1 to 4 and 6, a first application 110-1 may be configured to communicate with a first application 100-1 using a second terminal 100-2 communicating with a first terminal 100-1, It is possible to judge whether or not the forgery and falsification of the data 110-1 is falsified.

제1애플리케이션(110-1)은 제1애플리케이션의 제1APP 버전 정보(APP1_VI)와 제1APP 값(APP1_VAL), 그리고 제2애플리케이션의 제2APP 버전 정보(APP2_VI)와 제2APP 값(APP2_VAL)을 이용하여 제1애플리케이션(110-1)의 위변조 여부를 판단할 수 있다.The first application 110-1 uses the first APP version information APP1_VI and the first APP value APP1_VAL of the first application and the second APP version information APP2_VI and the second APP value APP2_VAL of the second application It is possible to judge whether the first application 110-1 is forged or not.

제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)는 제1애플리케이션 (110-1)과 제2애플리케이션(110-2) 각각을 식별하기 위한 정보를 의미할 수 있다. 실시 예에 따라, 제1APP 버전 정보(APP1_VI)는 제1애플리케이션(110-1)의 파일의 전부 또는 일부를 식별하기 위한 정보를 의미할 수 있다. 예컨대, 제1APP 버전 정보(APP1_VI)는 제1애플리케이션(110-1)의 현재 버전에 관련된 정보를 의미할 수 있으나 이에 한정되는 것은 아니다. 버전 정보가 동일한 두 애플리케이션 각각의 구성 파일은 동일할 수 있다. The first APP version information APP1_VI and the second APP version information APP2_VI may be information for identifying the first application 110-1 and the second application 110-2, respectively. According to the embodiment, the first APP version information (APP1_VI) may mean information for identifying all or a part of the files of the first application 110-1. For example, the first APP version information APP1_VI may mean information related to the current version of the first application 110-1, but is not limited thereto. The configuration files of the two applications having the same version information may be the same.

제2APP 버전 정보(APP2_VI)의 구성 및 기능은 제1APP 버전 정보(APP1_VI)의 구성 및 기능과 동일 또는 유사할 수 있다. 즉, 제2APP 버전 정보(APP2_VI)는 제1APP버전 정보(APP1_VI)와 마찬가지로 이해될 수 있다. 제1APP 값(APP1_VAL)의 구성과 기능은 도 1 내지 도 4를 참조하여 설명된 제1APP 값(APP1_VAL)의 구성과 기능과 동일 또는 유사하며, 제2APP 값(APP2_VAL)은 제1APP 값 (APP1_VAL)과 마찬가지로 이해될 수 있다.The configuration and function of the second APP version information (APP2_VI) may be the same as or similar to the configuration and function of the first APP version information (APP1_VI). That is, the second APP version information (APP2_VI) can be understood similarly to the first APP version information (APP1_VI). The configuration and function of the first APP value (APP1_VAL) is the same as or similar to the configuration and function of the first APP value (APP1_VAL) described with reference to Figs. 1 to 4, and the second APP value (APP2_VAL) . ≪ / RTI >

실시 예에 따라, 제1애플리케이션(110-1)과 제2애플리케이션(110-2) 모두 위변조되지 않았다면, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일할 때 제1APP 값(APP1_VAL)과 제2APP 값(APP2_VAL)은 동일할 수 있다.According to the embodiment, when neither the first application 110-1 nor the second application 110-2 has been tampered with, the first APP value (APP1_VI) and the second APP version information (APP2_VI) APP1_VAL) and the second APP value (APP2_VAL) may be the same.

제1애플리케이션(110-1)은 제1단말기(100-1)와 통신하는 제2단말기(100-2)로부터, 제2단말기(100-2)에서 실행되는 제2애플리케이션(110-2)의 제2APP 버전 정보(APP2_VI)와 제2애플리케이션(110-2)에 관련된 제2 APP 값(APP2_VAL)을 수신할 수 있다(S230).The first application 110-1 may receive the second application 110-2 from the second terminal 100-2 in communication with the first terminal 100-1 and the second application 110-2 in the second terminal 100-2, (APP2_VI) related to the second APP version information (APP2_VI) and the second APP value (APP2_VAL) related to the second application 110-2 (S230).

실시 예에 따라, 제2애플리케이션(110-2)은 제1애플리케이션(110-1)과 동일한 애플리케이션일 수 있으나, 이에 한정되는 것은 아니다. 이하에서는 편의상 제1애플리케이션(110-1)과 제2애플리케이션(110-2)이 동일한 애플리케이션임을 가정하고 설명하도록 한다.According to an embodiment, the second application 110-2 may be the same application as the first application 110-1, but is not limited thereto. Hereinafter, it will be assumed that the first application 110-1 and the second application 110-2 are the same application.

제2애플리케이션(110-2)은 본 명세서에서 설명되는 제1애플리케이션의 작동들과 동일한 작동들을 수행할 수 있다. 즉, 제2애플리케이션(110-2)은 제2애플리케이션(110-2)의 위변조 여부와 제2단말기(100-2)에 설치된 제2OS(120-2)의 위변조 여부를 판단할 수 있다.The second application 110-2 may perform the same operations as the operations of the first application described herein. That is, the second application 110-2 can determine whether the second application 110-2 is forged or falsified and whether the second OS 120-2 installed in the second terminal 100-2 is forged or not.

제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 제1APP 버전 정보 (APP1_VI)와 제2APP 버전 정보(APP2_VI)를 비교할 수 있다(S232).The first application 110-1 may compare the first APP version information APP1_VI and the second APP version information APP2_VI of the first application 110-1 at step S232.

상기 비교(S232)의 결과에 따라, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일할 때(S2220의 YES), 제1애플리케이션(110-1)은 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)을 비교할 수 있다(S234).When the first APP version information APP1_VI and the second APP version information APP2_VI are the same (YES in S2220), the first application 110-1 updates the first APP value APP1_VAL according to the comparison result (S232) And the second APP value APP2_VAL (S234).

실시 예에 따라, 제1애플리케이션(110-1)은 수신한 제2APP 버전 정보 (APP2_VI)와 제2 APP 값(APP2_VAL)을 저장할 수 있다. According to an embodiment, the first application 110-1 may store the received second APP version information APP2_VI and the second APP value APP2_VAL.

상기 비교(S224)의 결과에 따라 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보 (APP2_VI)가 동일하고, 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)이 동일할 때, 제1애플리케이션(110)은 제1애플리케이션(110-1)이 위변조되지 않았다고 판단할 수 있다(S236).When the first APP version information APP1_VI and the second APP version information APP2_VI are the same and the first APP value APP1_VAL and the second APP value APP2_VAL are the same according to the result of the comparison S224, The first application 110 may determine that the first application 110-1 has not been tampered with (S236).

제1애플리케이션(110)은, 상기 비교(S234)의 결과에 따라 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)이 동일하지 않을 때(S234의 NO), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)이 위변조되었다고 판단할 수 있다(S238).The first application 110 determines that the first application 110-1 is not in a state where the first APP value APP1_VAL and the second APP value APP2_VAL are not equal to each other (NO in S234) May determine that the first application 110-1 has been tampered (S238).

본 발명의 개념에 따른 실시 예에 따른 애플리케이션은, 서버에 의존하지 않고서도 상기 애플리케이션이 설치된 단말기와 통신하는 또 다른 단말기를 이용하여 상기 애플리케이션의 위변조 여부를 상호 판단할 수 있다.The application according to the embodiment of the present invention can mutually determine whether or not the application is forged or falsified by using another terminal that communicates with the terminal installed with the application without depending on the server.

상기 비교(S232)의 결과에 따라, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일하지 않을 때(S232의 NO), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 위변조 여부를 제1애플리케이션(110-1)을 이용하여 판단할 수 있다.When the first APP version information APP1_VI and the second APP version information APP2_VI are not the same (NO in S232), the first application 110-1 transmits the first application 110 -1) can be judged by using the first application 110-1.

제1애플리케이션(110-1)을 이용하여 제1애플리케이션(110-1)의 위변조 여부를 판단하는 방법은 도 4 및 도 5를 참조하여 이미 설명하였으므로, 설명은 생략하도록 한다.A method for determining whether a first application 110-1 is forged or falsified using the first application 110-1 has been described with reference to FIGS. 4 and 5, and a description thereof will be omitted.

실시 예에 따라, 각 애플리케이션(110-1과 110-2)을 구성하는 파일 중, 각 애플리케이션(110-과 110-2)의 버전 정보(VI1과 VI2)가 변하더라도 변하지 않는 파일이 존재할 때, 상기 변하지 않는 파일을 이용하여 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)을 생성하는 경우, 제1애플리케이션(110-1)은 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)를 비교하지 않고, 바로 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)을 비교할 수도 있다.According to the embodiment, when there is a file that does not change even when version information (VI1 and VI2) of each application 110- and 110-2 is changed among files constituting each application 110-1 and 110-2, The first application 110-1 generates the first APP version information APP1_VI and the second APP version information APP2_VI using the unchanged file to generate the first APP value APP1_VAL and the second APP value APP2_VAL, It is possible to directly compare the first APP value APP1_VAL with the second APP value APP2_VAL without comparing them.

본 명세서에서 상기 비교(S2220)의 결과에 따라, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일하지 않을 때, 제1애플리케이션(110-1)이 제1애플리케이션(110-1)을 이용하여 제1애플리케이션(110-1)의 위변조 여부를 판단할 수 있다고 설명하였으나, 본 발명의 개념에 따른 실시 예는 위 순서에 한정되는 것이 아니다.According to the result of the comparison (S2220), when the first APP version information APP1_VI and the second APP version information APP2_VI are not the same, the first application 110-1 is the first application 110-1 , It is possible to determine whether or not the first application 110-1 is forged or falsified. However, the embodiment according to the concept of the present invention is not limited to the above.

도 7과 도 8는 본 발명의 개념에 따른 실시 예에 따라 애플리케이션이 OS의 위변조 여부를 판단하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다.FIGS. 7 and 8 are flow charts for explaining a method for determining whether an application forgery or falsifies an OS according to an embodiment of the present invention.

실시 예에 따라, 도 1 내지 4 및 도 7을 참조하면, 제1애플리케이션(110-1)은 제1OS(120-1)의 위변조 여부를 판단하기 위해, 제1OS(120-1)로 루트 권한 실행 명령(RAI)을 전송할 수 있다(S410). 1 to 4 and 7, the first application 110-1 may determine whether or not the first OS 120-1 is forged or not by using the first OS 120-1 with root authority An execution command RAI may be transmitted (S410).

루트(root) 계정은 일반적인 운영 체제에서 모든 권한 혹은 가장 높은 권한을 가지는 계정(예컨대, 관리자(administrator) 또는 슈퍼-유저(super-user(su)))을 뜻할 수 있다. 상기 루트 계정은 상기 운영 체제의 전반적인 작동을 모두 제어할 수 있다. 이하 본 명세서에서, 루트 권한이라고 함은 상기 루트 계정의 권한을 의미한다.The root account may refer to any privilege or account with the highest privilege (for example, administrator or super-user (su)) in a typical operating system. The root account can control the overall operation of the operating system. Hereinafter, the root authority means the authority of the root account.

루트 권한 실행 명령(RAI)은 루트 권한이 필요한 실행 명령을 의미할 수 있다. 실시 예에 따라, 루트 권한 실행 명령(RAI)은 루트 권한이 필요한 명령어의 실행의 명령을 의미할 수 있다. 실시 예에 따라 루트 권한 실행 명령(RAI)은 특정 사용자의 권한 변경, 시스템 폴더의 생성/변경/삭제 등의 명령을 뜻할 수 있다. 예컨대, 루트 권한 실행 명령(RAI)은 운영 체제의 시스템에 있는 API 함수 실행을 지시하는 명령을 의미할 수 있으나 이에 한정되는 것은 아니다.The root authority execution command (RAI) can mean an executable command requiring root authority. According to an embodiment, the root authority execution instruction (RAI) may mean an instruction of execution of an instruction requiring root authority. According to the embodiment, the root authority execution command (RAI) may be a command for changing a privilege of a specific user, creating / changing / deleting a system folder, and the like. For example, the root authority execution instruction (RAI) may mean, but is not limited to, an instruction to direct the execution of an API function in the system of the operating system.

제1OS(120-1)가 루트 권한 실행 명령(RAI)을 수신하면, 제1OS(120-1)은 현재 로그인(log-in)된 계정이 루트 권한을 가지고 있을 때, 루트 권한 실행 명령(RAI)에 따라 작동 (예컨대, 루트 권한 실행 명령(RAI)에 해당하는 작동을 수행)할 수 있다. 실시 예에 따라, 제1OS(120-1)는 루트 권한 실행 명령(RAI)의 수행(예컨대, 루트 권한 실행 명령(RAI)에 해당하는 동작의 수행)을 지시하는 제1응답(RESP1)을 생성할 수 있다.When the first OS 120-1 receives the root authority execution command RAI, the first OS 120-1 sends a root authority execution command (RAI) when the currently log-in account has root authority, (E.g., performing an operation corresponding to the root authority execution instruction (RAI)). According to the embodiment, the first OS 120-1 generates a first response RESP1 indicating the execution of the root authority execution instruction RAI (e.g., performing the operation corresponding to the root authority execution instruction RAI) can do.

제1OS(120-1)는 상기 현재 계정이 상기 루트 권한을 가지고 있지 않을 때 루트 권한 실행 명령(RAI)을 거부할 수 있다. 실시 예에 따라, 제1OS(120-1)는 루트 권한 실행 명령(RAI)의 거부를 지시하는 제2응답(RESP2)을 생성할 수 있다. The first OS 120-1 may deny the root authority execute command (RAI) when the current account does not have the root authority. According to the embodiment, the first OS 120-1 may generate a second response RESP2 indicating a denial of the root authority executive command RAI.

실시 예에 따라, 제1OS(120-1)는 상기 현재 계정이 상기 루트 권한을 가지고 있는지를 판단하기 위해 제1단말기(100-1)의 사용자에게 루트 계정에 관련된 정보를 입력하는 것을 요구할 수 있다.According to the embodiment, the first OS 120-1 may require the user of the first terminal 100-1 to input information related to the root account to determine whether the current account has the root privilege .

제1애플리케이션(110-1)은 루트 권한 실행 명령(RAI)이 수행되었는지를 판단할 수 있다(S212). 실시 예에 따라, 제1애플리케이션(110-1)은 제1OS(120-1)로부터 출력된 메시지를 이용하여 루트 권한 실행 명령(RAI)이 실행되었는지를 판단할 수 있다. 예컨대, 제1애플리케이션(110-1)은 제1응답(RESP1)과 제2응답(RESP2)을 이용하여 루트 권한 실행 명령(RAI)이 수행되었는지를 판단할 수 있다.The first application 110-1 may determine whether a root authority execution instruction (RAI) has been performed (S212). According to the embodiment, the first application 110-1 can determine whether the root authority execution command (RAI) has been executed using the message output from the first OS 120-1. For example, the first application 110-1 may determine whether a root authority execution instruction (RAI) has been performed using the first response RESP1 and the second response RESP2.

실시 예에 따라, 제1애플리케이션(110-1)은 시스템 폴더를 관찰하고, 상기 관찰의 결과 상기 시스템 폴더 내의 파일이 생성/변경/삭제되었는지를 판단하고, 상기 판단의 결과에 따라 루트 권한 실행 명령(RAI)이 수행되었는지를 판단할 수 있다.According to the embodiment, the first application 110-1 observes the system folder, determines whether a file in the system folder has been created / changed / deleted as a result of the observation, (RAI) has been performed.

상기 판단(S412)의 결과에 따라, 루트 권한 실행 명령(RAI) 이 거부되었을 때(S412의 NO), 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조되지 않은 것으로 판단할 수 있다(S414). 실시 예에 따라, 제1애플리케이션(110-1)은 제2응답(RESP2)를 수신했을 때, 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조되지 않은 것으로 판단할 수 있다.According to the result of the judgment (S412), when the root authority execution instruction RAI is rejected (NO in S412), the first application 110-1 judges that the first OS 120-1 is not forged (S414). According to the embodiment, when the first application 110-1 receives the second response RESP2, the first application 110-1 may determine that the first OS 120-1 is not forged .

제1애플리케이션(110-1)은 루트 권한 실행 명령(RAI)의 실행이 거부되었을 때, 제1OS(120-1)가 위변조되지 않은 것으로 판단하고, 제1애플리케이션(110-1)을 종료할 수 있다.When the execution of the root authority execution instruction RAI is denied, the first application 110-1 judges that the first OS 120-1 is not forged and can terminate the first application 110-1 have.

상기 판단(S412)의 결과에 따라, 루트 권한 실행 명령(RAI)이 수행되었을 때(S412의 YES), 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조된 것으로 판단할 수 있다(S416). 실시 예에 따라, 제1애플리케이션(110-1)은 제1응답(RESP1)를 수신했을 때, 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조된 것으로 판단할 수 있다.According to the result of the judgment (S412), when the root authority execution instruction RAI is executed (YES in S412), the first application 110-1 can judge that the first OS 120-1 is falsified (S416). According to the embodiment, when the first application 110-1 receives the first response RESP1, the first application 110-1 may determine that the first OS 120-1 is forged.

제1애플리케이션(110-1)은 루트 권한 실행 명령(RAI)이 실행되었을 때, 제1OS(120-1)가 위변조된 것으로 판단하고, 제1애플리케이션(110-1)의 실행을 종료할 수 있다. 예컨대, 제1OS(120-1)가 위변조된 것으로 판단되었을 때, 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조되었음을 지시하는 메시지를 출력하고, 제1애플리케이션(110-1)의 실행을 자동으로 종료할 수 있다.The first application 110-1 may determine that the first OS 120-1 has been tampered with and terminate the execution of the first application 110-1 when the root authority execution instruction RAI has been executed . For example, when it is determined that the first OS 120-1 is falsified, the first application 110-1 outputs a message indicating that the first OS 120-1 has been falsified, and the first application 110-1 ) Can be automatically terminated.

본 발명의 개념에 따른 실시 예에 따른 애플리케이션은 루트 권한 실행 명령(RAI)를 이용하여 OS의 위변조 여부를 판단하므로 상기 OS를 구성하는 파일에 관련된 정보가 없더라도, 빠르게 상기 OS의 위변조 여부를 판단할 수 있다.The application according to the concept of the present invention judges whether the OS is forged or falsified by using the root authority execution command (RAI). Therefore, even if there is no information related to the file constituting the OS, .

또한, 본 발명의 개념에 따른 실시 예에 따른 애플리케이션은 서버에 의존하지 않고 상기 OS의 위변조 여부를 판단할 수 있다.In addition, the application according to the embodiment of the present invention can determine whether the OS is falsified or not without depending on the server.

실시 예에 따라, 도 1 내지 도 4 및 도 8을 참조하면, 제1OS(120-1)의 상태를 지시하는 OS 값(OS_VAL)을 생성할 수 있다(S420). 실시 예에 따라, 제1애플리케이션(110-1)은 제1애플리케이션(110-1)이 실행될 때마다 OS 값(OS_VAL)을 생성할 수 있으나 이에 한정되는 것은 아니다.1 to 4 and 8, an OS value OS_VAL indicating a state of the first OS 120-1 may be generated (S420). According to an embodiment, the first application 110-1 may generate an OS value (OS_VAL) each time the first application 110-1 is executed, but is not limited thereto.

OS 값(OS_VAL)은 제1OS(120-1)를 구성하는 파일(또는 프로그램 코드)의 전부 또는 일부에 기초하여 생성된 값을 의미할 수 있다. 실시 예에 따라, OS 값(OS_VAL)은 제1OS(120-1)를 구성하는 파일(또는 코드) 중, 정상적인(예컨대, 위변조되지 않은) 작동 환경에서는 변화하지 않는 부분(예컨대, 제1OS(120-1)의 소스 코드)에 기초하여 생성된 값을 의미할 수 있다. 비정상적인 사용 환경(예컨대, 제1OS(120-1)의 위변조)에 따라, 제1OS(120-1)를 구성하는 파일의 전부 또는 일부에 변화가 발생하면, 생성되는 OS 값(OS_VAL)은 달라질 수 있다.The OS value OS_VAL may mean a value generated based on all or a part of the file (or program code) constituting the first OS 120-1. According to the embodiment, the OS value OS_VAL is set to a value that does not change in a normal (e.g., non-fake) operating environment (e.g., the first OS 120 -1)), which is the source code of the program. When a change occurs in all or a part of the files constituting the first OS 120-1 in accordance with an abnormal use environment (for example, a forgery or falsification of the first OS 120-1), the generated OS value OS_VAL may be changed have.

제1애플리케이션(110-1)은 제1애플리케이션(110-1)이 실행될 때마다 생성한 OS 값(OS_VAL)들을 제1애플리케이션(110-1) 또는 제1단말기(100-1)의 메모리 장치에 저장할 수 있다. 실시 예에 따라, 제1애플리케이션(110-1)은 OS 값(OS_VAL)을 암호화하여 저장할 수 있다. 예컨대, OS 값(OS_VAL)은 제1OS(120-1)의 파일(또는 프로그램 코드)의 해시(hash) 함수 값일 수 있다The first application 110-1 transmits the OS values OS_VAL generated each time the first application 110-1 is executed to the first application 110-1 or the memory device of the first terminal 100-1 Can be stored. According to the embodiment, the first application 110-1 may encrypt and store the OS value OS_VAL. For example, the OS value OS_VAL may be a hash function value of the file (or program code) of the first OS 120-1

제1애플리케이션(110-1)은 현재 OS 값(CUR_OS_VAL)과 제1OS(120-1)의 이전 상태를 지시하는 이전 OS 값(PRV_OS_VAL)을 비교하고, 이들(CUR_VAL_OS과 PRV_OS_VAL)의 동일 여부를 판단할 수 있다(S422). The first application 110-1 compares the current OS value CUR_OS_VAL with the previous OS value PRV_OS_VAL indicative of the previous state of the first OS 120-1 and judges whether these values CUR_VAL_OS and PRV_OS_VAL are the same (S422).

현재 OS 값(CUR_OS_VAL)은 현재 제1애플리케이션(110-1)에 의해 생성된 OS 값(OS_VAL)을 의미할 수 있다.The current OS value (CUR_OS_VAL) may mean an OS value (OS_VAL) generated by the first application 110-1.

이전 OS 값(PRV_OS_VAL)은 현재 OS 값(CUR_OS_VAL)의 생성 이전에 제1애플리케이션(110-1)에 의해 생성된 OS 값(OS_VAL)을 의미할 수 있다. 이전 OS 값(PRV_OS_VAL)은 현재 OS 값(CUR_OS_VAL)의 생성 바로 직전에 생성된 OS 값(CUR_OS_VAL)을 의미할 수 있으나, 이에 한정되는 것은 아니다. 실시 예에 따라, 이전 OS 값(PRV_OS_VAL)은 복수일 수 있다.The previous OS value PRV_OS_VAL may mean an OS value OS_VAL generated by the first application 110-1 prior to the generation of the current OS value CUR_OS_VAL. The previous OS value (PRV_OS_VAL) may mean the OS value (CUR_OS_VAL) generated just before the generation of the current OS value (CUR_OS_VAL), but is not limited thereto. According to an embodiment, the previous OS value (PRV_OS_VAL) may be plural.

예컨대, 제1애플리케이션(110-1)이 OS 값(OS_VAL)을 총 2회 생성(제1생성 후 제2생성)한다고 하면, 상기 제2생성에서 생성된 제OS 값은 현재 OS 값(CUR_OS_VAL)이 되고, 상기 제1생성에서 생성된 제OS 값은 이전 OS 값(PRV_OS_VAL)이 될 수 있다.For example, when the first application 110-1 generates the OS value OS_VAL twice in total (first generation and second generation), the OS value generated in the second generation is the current OS value CUR_OS_VAL, , And the OS value generated in the first generation may be the previous OS value (PRV_OS_VAL).

이전 OS 값(PRV_OS_VAL)은 제1단말기(100-1)에 저장되어 있을 수 있고, 제1애플리케이션(110-1)에 의해 리드될 수 있다.The previous OS value PRV_OS_VAL may be stored in the first terminal 100-1 and may be read by the first application 110-1.

제1애플리케이션(110-1)은 이전 OS 값(PRV_OS_VAL)을 주기적으로 갱신할 수 있다. 실시 예에 따라, 제1애플리케이션(110-1)은 서버(200)를 이용하여 이전 OS 값(PRV_OS_VAL)을 갱신할 수 있다. 이에 따라, 저장된 이전 OS 값(PRV_OS_VAL)의 신뢰도가 향상되는 효과가 있다.The first application 110-1 may periodically update the previous OS value PRV_OS_VAL. According to an embodiment, the first application 110-1 may update the previous OS value (PRV_OS_VAL) using the server 200. [ Thereby, the reliability of the stored previous OS value (PRV_OS_VAL) is improved.

실시 예에 따라, 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)은 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL) 각각이 생성된 시점에 관한 정보를 포함할 수 있다. 예컨대, 현재 OS 값(CUR_OS_VAL)은 현재 OS 값(CUR_OS_VAL)이 생성되었을 때의 제1OS(120-1)의 버전을 식별할 수 있는 정보를 더 포함할 수 있고, 이전 OS 값(PRV_OS_VAL)은 이전 OS 값(PRV_OS_VAL)이 생성되었을 때의 제1OS(120-1)의 버전을 식별할 수 있는 정보를 더 포함할 수 있다.According to the embodiment, the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL may include information on the time when the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL are respectively generated. For example, the current OS value (CUR_OS_VAL) may further include information for identifying the version of the first OS 120-1 when the current OS value (CUR_OS_VAL) is generated, and the previous OS value (PRV_OS_VAL) May further include information for identifying the version of the first OS 120-1 when the OS value (PRV_OS_VAL) is generated.

제1OS(120-1)가 위변조되지 않았다면 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)이 동일할 것이다. 반대로, 제1OS(120-1)가 위변조되었다면 제1OS(120-1)을 구성하는 파일 중 적어도 일부에는 변화가 있을 것이므로, 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)은 동일하지 않을 수 있다.If the first OS 120-1 is not forged, the current OS value (CUR_OS_VAL) and the previous OS value (PRV_OS_VAL) will be the same. On the other hand, if the first OS 120-1 is forged, there will be a change in at least some of the files constituting the first OS 120-1. Therefore, the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL may not be the same have.

그러므로 상기 판단(S422)의 결과에 따라, 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)이 동일할 때(S422의 YES), 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조되지 않았다고 판단할 수 있다(S424). Therefore, when the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL are equal to each other (YES in S422), the first application 110-1 accesses the first OS 120-1, (S424). ≪ / RTI >

제1애플리케이션(110-1)은 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)이 동일할 때, 제1OS(120-1)가 위변조되지 않은 것으로 판단하고, 제1애플리케이션(110-1)의 실행을 유지할 수 있다.The first application 110-1 determines that the first OS 120-1 is not forged when the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL are equal, Can be maintained.

제1애플리케이션(110-1)은 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)이 동일할 때, 이전 OS 값(PRV_OS_VAL)을 현재 OS 값(CUR_OS_VAL)으로 갱신 수 있다. 즉, 제1애플리케이션(110-1)은 다음 번 판단에서, 현재 판단에서 사용된 현재 OS 값(CUR_OS_VAL)을 이전 OS 값(PRV_OS_VAL)으로 사용할 수 있다. 상기 판단(S422)의 결과에 따라, 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)이 동일하지 않을 때(S422의 NO), 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조된 것으로 판단할 수 있다(S226). The first application 110-1 may update the previous OS value PRV_OS_VAL to the current OS value CUR_OS_VAL when the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL are equal to each other. That is, the first application 110-1 may use the current OS value (CUR_OS_VAL) used in the current determination as the previous OS value (PRV_OS_VAL) in the next determination. When the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL do not equal to each other (NO in S422), the first application 110-1 accesses the first OS 120-1, It can be determined that the information is forged (S226).

실시 예에 따라, 제1애플리케이션(110-1)은 현재 OS 값(CUR_OS_VAL)과 이전 OS 값(PRV_OS_VAL)이 동일하지 않을 때, 제1OS(120-1)가 위변조된 것으로 판단하고, 제1애플리케이션(110-1)의 실행을 종료할 수 있다. 예컨대, 제1OS(120-1)가 위변조된 것으로 판단되었을 때, 제1애플리케이션(110-1)은 제1OS(120-1)가 위변조되었음을 지시하는 메시지를 출력하고, 제1애플리케이션(110-1)의 실행을 자동으로 종료할 수 있다.According to the embodiment, the first application 110-1 determines that the first OS 120-1 is forged when the current OS value CUR_OS_VAL and the previous OS value PRV_OS_VAL are not equal, It is possible to terminate the execution of the processing unit 110-1. For example, when it is determined that the first OS 120-1 is falsified, the first application 110-1 outputs a message indicating that the first OS 120-1 has been falsified, and the first application 110-1 ) Can be automatically terminated.

따라서, 본 발명의 개념에 따른 실시 예에 따른 애플리케이션은, 상기 애플리케이션에 의해 생성된 OS 값을 이용하므로 서버에 의존하지 않고 상기 애플리케이션이 설치된 단말기의 OS의 위변조 여부를 자동으로 판단할 수 있다. 본 발명의 개념에 따른 실시 예에 따른 애플리케이션은 서버를 이용해서도 상기 애플리케이션이 설치된 단말기의 OS의 위변조 여부를 자동으로 판단할 수 있다.Therefore, the application according to the embodiment of the present invention can automatically determine whether the OS of the terminal installed with the application is falsified or not, without using the server because the OS value generated by the application is used. The application according to the embodiment of the present invention can automatically determine whether the OS of the terminal installed with the application is falsified or not using the server.

즉, 제1애플리케이션(110-1)은 제1애플리케이션(110-1)에 의해 생성된 OS 값(OS_VAL)을 서버(200)에 저장된 기준 OS 값과 비교할 수 있다. That is, the first application 110-1 may compare the OS value (OS_VAL) generated by the first application 110-1 with the reference OS value stored in the server 200. [

상기 기준 OS 값은 OS 값(OS_VAL)과 실질적으로 동일한 방식으로 생성된 제1OS(120-1)에 관련된 값일 수 있다. 상기 기준 OS 값은 암호화 되어 있을 수 있다. 실시 예에 따라, 상기 기준 OS 값은 전자 서명되어 서버(200)에 저장되어 있을 수 있다.The reference OS value may be a value related to the first OS 120-1 generated in substantially the same manner as the OS value OS_VAL. The reference OS value may be encrypted. According to an embodiment, the reference OS value may be electronically signed and stored in the server 200.

제1애플리케이션(110-1)은 별도의 인증 서버로부터 상기 기준 OS 값을 수신할 수 있다. 실시 예에 따라, 제1애플리케이션(110-1)은, 설정된 보안 레벨에 따라, 서버(200)로부터 상기 기준 OS 값을 수신할 것인지 또는 상기 인증 서버로부터 상기 기준 OS 값을 수신할 것인지를 결정할 수 있다. 상기 보안 레벨은 제1애플리케이션(110-1)에 의해 변경될 수 있다.The first application 110-1 may receive the reference OS value from a separate authentication server. According to an embodiment, the first application 110-1 may determine whether to receive the reference OS value from the server 200 or receive the reference OS value from the authentication server, in accordance with the set security level have. The security level may be changed by the first application 110-1.

상기 기준 OS 값이 저장된 별도의 인증 서버와 기준 제1APP 값(REF_APP1_VAL)이 저장된 별도의 인증 서버는 동일할 수도 있으나, 이에 한정되는 것은 아니다.A separate authentication server storing the reference OS value and a separate authentication server storing a reference first APP value (REF_APP1_VAL) may be the same, but the present invention is not limited thereto.

상기 기준 OS 값에 대한 보안 레벨과 기준 제1APP 값(REF_APP1_VAL)에 대한 보안 레벨은 연동되어 설정될 수 있으나, 이에 한정되는 것은 아니며 상기 보안 레벨들은 독립적으로 설정될 수도 있다.The security level for the reference OS value and the security level for the reference first APP value (REF_APP1_VAL) may be set to be interlocked, but the present invention is not limited thereto, and the security levels may be set independently.

제1애플리케이션(110-1)은 수신한 상기 기준 OS 값과 OS 값(OS_VAL)을 비교하고, 상기 비교의 결과에 따라 상기 기준 OS 값과 OS 값(OS_VAL)이 동일할 때 제1OS(120-1)가 위변조 되지 않았다고 판단할 수 있다.The first application 110-1 compares the received reference OS value with the OS value OS_VAL and when the reference OS value and the OS value OS_VAL are equal to each other, 1) is not forged.

상기 비교의 결과에 따라 상기 기준 OS 값과 OS 값(OS_VAL)이 동일하지 않을 때 제1OS(120-1)가 위변조 되었다고 판단할 수 있다.According to the comparison result, when the reference OS value and the OS value OS_VAL are not equal to each other, it can be determined that the first OS 120-1 is forged.

실시 예에 따라, 제1애플리케이션(110-1)은 서버(200)로부터 제1OS(120-1)의 버전에 해당하는 기준 OS 값을 수신하고, 상기 기준 OS 값과 OS 값(OS_VAL)을 비교할 수 있다. 예컨대, 제1OS(120-1)의 버전이 1.0일 때, 제1애플리케이션(110-1)은 서버(200)에서 버전 1.0에 해당하는 기준 OS 값을 수신할 수 있다.According to an embodiment, the first application 110-1 receives a reference OS value corresponding to the version of the first OS 120-1 from the server 200, and compares the reference OS value with the OS value OS_VAL . For example, when the version of the first OS 120-1 is 1.0, the first application 110-1 may receive the reference OS value corresponding to the version 1.0 in the server 200. [

도 9는 본 발명의 개념에 따른 실시 예에 따라 제1애플리케이션이 제2단말기를 검증(verify) 하고, 검증된 제2단말기와 통신하는 방법을 설명하기 위한 플로우 차트를 나타낸다. 9 is a flowchart illustrating a method for a first application to verify a second terminal and communicate with a verified second terminal in accordance with an embodiment of the present invention.

도 1 내지 4 및 도 9를 참조하면, 제1애플리케이션(110-1)은 제1단말기(100-1)와 통신하는 제2단말기(100-2)를 검증할 수 있다(S700). Referring to FIGS. 1 to 4 and 9, the first application 110-1 may verify the second terminal 100-2 in communication with the first terminal 100-1 (S700).

제1애플리케이션(110-1)은 제1단말기(100-1)의 통신범위 내에 위치한 제2단말기(100-2)를 인식하고, 제2단말기(100-2)를 검증할 수 있다. 실시 예에 따라, 제1애플리케이션(110-1)은 제2단말기(100-2)에 설치된 애플리케이션 및/또는 OS의 위변조 여부를 판단하고, 상기 판단의 결과에 기초하여 2단말기(100-2)를 검증할 수 있다.The first application 110-1 can recognize the second terminal 100-2 located within the communication range of the first terminal 100-1 and can verify the second terminal 100-2. According to the embodiment, the first application 110-1 determines whether the application and / or the OS installed in the second terminal 100-2 are forged or not, and based on the result of the determination, Can be verified.

제1단말기(100-1)는 제2단말기(100-2)로부터 제2단말기(100-2)의 제2단말 정보를 수신하고, 상기 제2단말 정보를 이용하여 제2단말기(100-2)를 인식할 수 있다. 예컨대, 상기 제2단말 정보는 UUID(universally unique identifier)일 수 있으나 이에 한정되는 것은 아니며, 제2단말기(100-2)를 인식하기 위한 정보면 족하다.The first terminal 100-1 receives the second terminal information of the second terminal 100-2 from the second terminal 100-2 and transmits the second terminal information of the second terminal 100-2 ) Can be recognized. For example, the second terminal information may be a universally unique identifier (UUID), but the present invention is not limited thereto and information for recognizing the second terminal 100-2 may be sufficient.

제1애플리케이션(110-1)은 제1단말기(100-1)의 사용자가 제2단말기(100-2)와의 통신을 시도할 때, 제2단말기(100-2)와의 본격적인 통신을 수행하기 전에 제2단말기(100-2)를 검증할 수 있다. 이 경우, 상기 본격적인 통신은 제1애플리케이션(110-1)의 메인 모듈에 의해 수행되는 기능(예컨대, 메시지 전송, 전자화폐의 전송, 주식 거래, 전자 계약의 체결 또는 전자 결제 등)을 의미할 수 있다.The first application 110-1 is configured to allow the user of the first terminal 100-1 to communicate with the second terminal 100-2 before performing the full communication with the second terminal 100-2 The second terminal 100-2 can be verified. In this case, the full-scale communication may mean a function performed by the main module of the first application 110-1 (e.g., message transmission, transmission of electronic money, stock transaction, electronic contracting, electronic payment, etc.) have.

상기 검증(S700)의 결과에 따라, 제2단말기(100-2)의 검증이 실패(fail)했을 때 (S700의 NO), 제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 실행을 종료할 수 있다(S900). 실시 예에 따라, 제2단말기(100-2)의 검증이 실패했을 때 (S700의 NO), 제1애플리케이션(110-1)은 제2단말기(100-2)의 검증 실패를 지시하는 메시지를 제1단말기(100-1)의 디스플레이로 출력하고, 제1애플리케이션(110-1)의 실행을 자동으로 종료할 수 있다. When the verification of the second terminal 100-2 fails (NO in S700), the first application 110-1 accesses the first application 110-1 according to the result of the verification (S700) (S900). According to the embodiment, when the verification of the second terminal 100-2 fails (NO in S700), the first application 110-1 transmits a message indicating the verification failure of the second terminal 100-2 To the display of the first terminal 100-1, and automatically terminate the execution of the first application 110-1.

제2단말기(100-2)의 검증이 실패했을 때 (S700의 NO), 제1애플리케이션(110-1)은 제1단말기(100-1)와 제2단말기(100-2)간의 통신을 차단할 수 있다. 실시 예에 따라, 제1애플리케이션(110-1)은 제1단말기(100-1)와 제2단말기(100-2)간의 통신을 차단하고, 제2단말기(100-2)의 제2단말 정보를 제1단말기(100-1)의 메모리 또는 제1애플리케이션(110-1)에 저장할 수 있다.When the verification of the second terminal 100-2 fails (NO of S700), the first application 110-1 blocks communication between the first terminal 100-1 and the second terminal 100-2 . The first application 110-1 blocks communication between the first terminal 100-1 and the second terminal 100-2 and the second terminal 110-1 of the second terminal 100-2, To the memory of the first terminal 100-1 or the first application 110-1.

제2단말기(100-2)의 검증이 실패했을 때 (S700의 NO), 제1애플리케이션(110-1)은제2단말기(100-2)로 추가 인증 요청을 보낼 것인지 여부를 묻는 알림을 제1단말기(100-1)의 디스플레이를 통해 제1단말기(100-1)의 사용자에게 제공할 수 있다. When the verification of the second terminal 100-2 fails (NO of S700), the first application 110-1 transmits a notification to the second terminal 100-2 to inquire whether to send an additional authentication request to the first terminal 110-1, To the user of the first terminal 100-1 through the display of the terminal 100-1.

상기 결정(S700)의 결과에 따라, 제2단말기(100-2)가 검증되었을 때 (S700의 YES), 제1애플리케이션(110-1)은 제2단말기(100-2)와 본격적인 통신을 수행할 수 있다(S800).According to the result of the determination S700, when the second terminal 100-2 is verified (YES in S700), the first application 110-1 performs full communication with the second terminal 100-2 (S800).

따라서, 본 발명의 개념에 따른 실시 예에 따른 애플리케이션은, 서버에 의존하지 않고서도 상기 애플리케이션이 설치된 단말기가 다른 단말기와 본격적인 통신을 수행하기 전에 상기 다른 단말기를 검증하므로, 안전한 통신을 수행할 수 있다.Therefore, the application according to the embodiment of the present invention can perform secure communication because the terminal installed with the application verifies the other terminal before performing full communication with the other terminal without depending on the server .

실시 예에 따라, 제1애플리케이션(110-1)은, 제2단말기(100-2)가 검증되고 제1단말기(100-1)와 제2단말기(100-2)가 통신을 하고 있는 도중에도, 주기적으로 또는 실시간으로 제2단말기를 검증할 수 있다. According to the embodiment, the first application 110-1 is configured so that even when the second terminal 100-2 is verified and the first terminal 100-1 and the second terminal 100-2 are communicating with each other , The second terminal can be verified periodically or in real time.

도 10은 본 발명의 개념에 따른 실시 예에 따라 제1애플리케이션이 제2단말기를 검증하는 방법을 상세히 설명하기 위한 플로우 차트를 나타낸다. Figure 10 shows a flowchart for describing in detail a method for a first application verifying a second terminal according to an embodiment in accordance with the inventive concept.

도 1 내지 4, 도 9 및 도 10을 참조하면, 제1애플리케이션(110-1)은 제2OS(120-1)가 위변조 되지 않았음을 지시하는 제2OS 검증 신호(OS2_VF)를 제2단말기(100-2)로 요청할 수 있다(S710).Referring to FIGS. 1 to 4, 9 and 10, the first application 110-1 transmits a second OS verification signal OS2_VF indicating that the second OS 120-1 has not been tampered with, 100-2) (S710).

실시 예에 따라, 제1애플리케이션(110-1)은 제2OS 검증 신호(OS2_VF)의 요청 시점부터 기준 시간이 경과한 경우, 제2단말기(100-2)의 검증이 실패한 것으로 판단할 수 있다.According to an embodiment, the first application 110-1 may determine that the verification of the second terminal 100-2 fails if the reference time has elapsed since the request of the second OS verification signal OS2_VF.

실시 예에 따라, 제1애플리케이션(110-1)은 제2OS 검증 신호(OS2_VF)가 수신되지 않은 경우, 제2OS(120-2)의 위변조 여부가 의심된다는 메시지를 제1단말기(100-1)의 디스플레이를 통해 출력할 수 있다. 예컨대, 제1애플리케이션(110-1)은 상기 제2OS(120-2)의 위변조 여부가 의심된다는 메시지와 함께 제2단말기(100-2)의 검증을 계속할지 여부를 묻는 알림을 상기 디스플레이로 출력할 수 있다.According to the embodiment, when the second OS verification signal OS2_VF is not received, the first application 110-1 transmits to the first terminal 100-1 a message indicating that the second OS 120-2 is forged or not, Can be output through the display of the display device. For example, the first application 110-1 outputs a message asking whether or not the second OS 120-2 is falsified or not, to the display, a message asking whether to continue the verification of the second terminal 100-2 can do.

제1애플리케이션(110-1)은 제1단말기(100-1)와 통신하는 제2단말기(100-2)로부터, 제2단말기(100-2)에서 실행되는 제2애플리케이션(110-2)의 제2APP 버전 정보(APP2_VI)와 제2애플리케이션(110-2)에 관련된 제2 APP 값(APP2_VAL)을 수신할 수 있다(S710).The first application 110-1 may receive the second application 110-2 from the second terminal 100-2 in communication with the first terminal 100-1 and the second application 110-2 in the second terminal 100-2, The second APP version information APP2_VI and the second APP value APP2_VAL related to the second application 110-2 (S710).

제1애플리케이션(110-1)은 제1애플리케이션(110-1)의 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)를 비교할 수 있다(S720).The first application 110-1 may compare the first APP version information APP1_VI and the second APP version information APP2_VI of the first application 110-1 at step S720.

상기 비교(S420)의 결과에 따라, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일할 때(S420의 YES), 제1애플리케이션(110-1)은 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)를 비교할 수 있다(S730).When the first APP version information APP1_VI and the second APP version information APP2_VI are the same (YES in S420), the first application 110-1 updates the first APP value APP1_VAL according to the comparison result (S420) And the second APP value APP2_VAL (S730).

상기 비교(S730)의 결과에 따라 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)이 동일할 때(S730의 YES), 제1애플리케이션(110-1)은 제2애플리케이션(110-2)이 위변조되지 않았다고 판단할 수 있고, 따라서 제2단말기(100-2)를 검증할 수 있다.(S740).When the first APP value APP1_VAL and the second APP value APP2_VAL are equal to each other (YES in S730), the first application 110-1 transmits the second APP 110-2 to the second application 110-2, The second terminal 100-2 can be verified (S740).

실시 예에 따라, 도 8를 참조하여 설명한 것처럼, 제1애플리케이션(110-1)은 제2애플리케이션(110-2)이 위변조 되지 않았다고 판단함과 동시에, 제1애플리케이션(110-1)도 위변조 되지 않은 것으로 판단할 수 있다. According to the embodiment, as described with reference to Fig. 8, the first application 110-1 determines that the second application 110-2 has not been tampered with, and at the same time, the first application 110-1 is also forged .

제1애플리케이션(110)은, 상기 비교(S730)의 결과에 따라 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)이 동일하지 않을 때(S730의 NO), 제1애플리케이션(110-1)은 제2애플리케이션(110-1)이 위변조 되었다고 판단할 수 있다(S750). 실시 예에 따라 제1APP 값(APP1_VAL)과 제2 APP 값(APP2_VAL)이 동일하지 않을 때(S730의 NO), 제1애플리케이션(110-1)은 제2애플리케이션(110-2)의 위변조 여부를 지시하는 알림을 제2단말기(100-2)로 전송할 수 있다.The first application 110 determines that the first application 110-1 is not the first application 110-1 when the first APP value APP1_VAL and the second APP value APP2_VAL are not equal to each other (NO in step S730) It may determine that the second application 110-1 has been tampered with (S750). When the first APP value (APP1_VAL) and the second APP value APP2_VAL are not equal to each other (NO in S730), the first application 110-1 determines whether the second application 110-2 is forged or not To the second terminal 100-2.

상기 비교(S720)의 결과에 따라, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일하지 않을 때(S720의 NO), 제1애플리케이션(110-1)은 제2APP 버전 정보(APP2_VI)에 해당하는 기준 제2APP 값(REF_APP2_VAL)과 제2APP 값(APP_VAL1)을 비교할 수 있다(S760).When the first APP version information APP1_VI and the second APP version information APP2_VI are not the same (NO in step S720), the first application 110-1 updates the second APP version information (APP1_VI) The second APP value REF_APP2_VAL and the second APP value APP_VAL1 corresponding to the first APP value APP2_VI in step S760.

실시 예에 따라, 기준 제2APP 값(REF_APP2_VAL)은 제2APP 값(APP2_VAL)을 생성하는 방식과 동일한 방식으로 생성된 값일 수 있다. 실시 예에 따라, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일하지 않을 때(S720의 NO), 제1애플리케이션(110-1)은 제1단말기(110-1)에 저장된 기준 제2APP 값(REF_APP2_VAL)을 검색하고, 기준 제2 APP 값(REF_APP_VAL2)과 제2APP 값(APP_VAL2)을 비교할 수 있다. 예컨대, 제1단말기(110-1)에 저장된 기준 제2APP 값(REF_APP2_VAL)은 제2단말기(100-2)와의 이전 통신 과정에서 저장된 값일 수 있으나 이에 한정되는 것은 아니다.According to an embodiment, the reference second APP value (REF_APP2_VAL) may be a value generated in the same manner as the manner of generating the second APP value (APP2_VAL). According to the embodiment, when the first APP version information APP1_VI and the second APP version information APP2_VI are not the same (NO at S720), the first application 110-1 is stored in the first terminal 110-1 It is possible to search the reference second APP value (REF_APP2_VAL), and to compare the reference second APP value (REF_APP_VAL2) with the second APP value (APP_VAL2). For example, the reference second APP value (REF_APP2_VAL) stored in the first terminal 110-1 may be a value stored in a previous communication process with the second terminal 100-2, but is not limited thereto.

실시 예에 따라, 제1APP 버전 정보(APP1_VI)와 제2APP 버전 정보(APP2_VI)가 동일하지 않을 때(S720의 NO), 제1애플리케이션(110-1)은 서버(200)로부터 제2APP 버전 정보(APP2_VI)에 해당하는 기준 제2APP 값(REF_APP2_VAL)을 수신할 수 있다.According to the embodiment, when the first APP version information APP1_VI and the second APP version information APP2_VI are not the same (NO at S720), the first application 110-1 receives the second APP version information ( APP2_VI) corresponding to the second APP value (REF_APP2_VAL).

예컨대, 제1애플리케이션(110-1)은 서버(200)로 제2APP 버전 정보(APP2_VI)를 전송하고, 서버(200)로부터 제2APP 버전 정보(APP2_VI)에 해당하는 기준 제2APP 값(REF_APP2_VAL)을 수신하거나 또는 제1애플리케이션(110-1)은 제2APP 버전 정보(APP2_VI)를 이용하여, 제2APP 버전 정보(APP2_VI)에 해당하는 기준 제2APP 값(REF_APP2_VAL)을 검색하고, 검색된 기준 제2APP 값(REF_APP2_VAL)을 서버(200)로부터 수신할 수 있다.For example, the first application 110-1 transmits the second APP version information APP2_VI to the server 200 and the reference second APP value REF_APP2_VAL corresponding to the second APP version information APP2_VI from the server 200 Or the first application 110-1 searches the reference second APP value REF_APP2_VAL corresponding to the second APP version information APP2_VI using the second APP version information APP2_VI, REF_APP2_VAL) from the server 200. [

제1애플리케이션(110-1)은 기준 제2APP 값(REF_APP2_VAL)과 제2APP 값(APP_VAL2)을 비교할 수 있다(S770).The first application 110-1 may compare the second APP value REF_APP2_VAL with the second APP value APP_VAL2 (S770).

상기 비교(S770)의 결과에 따라, 기준 제2APP 값(REF_APP2_VAL)과 제2 APP 값(APP2_VAL)이 동일할 때(S770의 YES), 제2애플리케이션(110-2)이 위변조되지 않았다고 판단할 수 있고 제2단말기(100-2)를 검증할 수 있다(S780). According to the result of the comparison S770, when the reference second APP value REF_APP2_VAL and the second APP value APP2_VAL are equal to each other (YES in S770), it is determined that the second application 110-2 is not forged And can verify the second terminal 100-2 (S780).

제1애플리케이션(110-1)은 제2단말기(100-2)를 검증할 때 제2단말기(100-2)로 검증 코드를 전송할 수 있다. 실시예에 따라, 제1애플리케이션(110-1)은 상기 검증 코드를 암호화하여 전송할 수 있고, 제2단말기(100-2)로부터 수신한 상기 검증 코드를 복호화하여 검증할 수 있다. 제1애플리케이션(110)은, 상기 비교(S770)의 결과에 따라 기준 제2APP 값(REF_APP2_VAL)과 제2 APP 값(APP2_VAL)이 동일하지 않을 때(S770의 NO), 제1애플리케이션(110-1)은 제2애플리케이션(110-1)이 위변조되었다고 판단할 수 있고, 제2단말기(100-2)를 검증하지 않을 수 있다(S790).The first application 110-1 may transmit the verification code to the second terminal 100-2 when verifying the second terminal 100-2. According to the embodiment, the first application 110-1 can encrypt and transmit the verification code, and can decrypt and verify the verification code received from the second terminal 100-2. The first application 110 determines whether the second AP value (REF_APP2_VAL) is equal to the second APP value APP2_VAL (NO at S770) according to the result of the comparison (S770) May determine that the second application 110-1 has been tampered with, and may not verify the second terminal 100-2 (S790).

도 11은 본 발명의 개념에 따른 실시 예에 따라, 제1애플리케이션이 제2단말기와 통신을 수행하는 방법을 설명하기 위한 데이터 처리도이다. 도 9와 도 11을 참조하면, 제1애플리케이션(110-1)은 검증된 제2단말기(100-2)와 통신을 수행할 수 있다.11 is a data processing diagram for explaining a method by which a first application performs communication with a second terminal according to an embodiment of the concept of the present invention. 9 and 11, the first application 110-1 may perform communication with the verified second terminal 100-2.

제1애플리케이션(110-1)은 제2단말기(100-2)와 암호화된 채널(channel)을 통해 통신할 수 있다. 실시 예에 따라, 제1단말기(100-1)과 제2단말기(100-2)는 공개 키 알고리즘(public key algorithm) 및/또는 대칭 키 알고리즘(symmetric key algorithm)을 이용하여 서로 통신할 수 있다.The first application 110-1 may communicate with the second terminal 100-2 via an encrypted channel. According to an embodiment, the first terminal 100-1 and the second terminal 100-2 may communicate with each other using a public key algorithm and / or a symmetric key algorithm .

예컨대, 제1애플리케이션(110-1)은 AES(advanced encryption standard), DES(data encryption standard), RC4, Twofish Serpent, Blowfish, CAST, 3DES, IDEA, SEED 또는 ARIA 등의 대칭 키 알고리즘, 및/또는 디피-헬만(Diffie-Hellman) 키 교환, DSS(digital signature standard), RSA(Ron Rivest-Adi Shamir-Leonard Adleman), Elgamal 또는 ECC 등의 공개 키 알고리즘을 이용하여 제2단말기(100-2)와 통신할 수 있으나, 상기 나열된 알고리즘에 한정되는 것은 아니다.For example, the first application 110-1 may be a symmetric key algorithm such as advanced encryption standard (AES), data encryption standard (DES), RC4, Twofish Serpent, Blowfish, CAST, 3DES, IDEA, SEED or ARIA, and / The second terminal 100-2 and the second terminal 100-2 using a public key algorithm such as Diffie-Hellman key exchange, digital signature standard (DSS), Ron Rivest-Adi Shamir-Leonard Adleman (RSA), Elgamal or ECC But it is not limited to the algorithms listed above.

제1애플리케이션(110-1)은 제1평문(PLAIN1)을 생성할 수 있다(S810). 실시 예에 따라, 제1애플리케이션(110-1)은 제2단말기(100-2)와 통신하는 동안 제1평문(PLAIN1)을 생성할 수 있으나 이에 한정되는 것은 아니며, 제1애플리케이션(110-1)은 제2단말기(100-2)와 통신하기 전에 미리 제1평문(PLAIN1)을 생성할 수 있다. The first application 110-1 may generate the first plaintext PLAIN1 (S810). According to an embodiment, the first application 110-1 may generate the first plaintext PLAIN1 while communicating with the second terminal 100-2, but is not limited thereto, and the first application 110-1 May generate the first plaintext PLAIN1 before communicating with the second terminal 100-2.

제1애플리케이션(110-1)은 미리 생성된 제1평문(PLAIN1)을 암호화하여 제1단말기(100-1) 및/또는 제1애플리케이션(110-1)에 저장할 수 있다.The first application 110-1 may encrypt the first plaintext PLAIN1 generated in advance and store it in the first terminal 100-1 and / or the first application 110-1.

제1평문(PLAIN1)은 전송 가능한 어떠한 데이터 혹은 자원을 의미할 수 있다. 예컨대, 제1평문(PLAIN1)은 채팅에 사용되는 메시지, 전자 화폐, 암호 화폐, 미디어 파일, 전자 쿠폰, 인증서, 암호 키, 프로그램 코드, 알고리즘 또는 암호화 되지 않은 데이터 파일(file)을 의미할 수 있으나, 이에 한정되는 것은 아니며 제1평문(PLAIN1)은 모든 유형의 데이터를 의미할 수 있다. 즉, 제1단말기(100-1)의 사용자는 제1애플리케이션(110-1)를 이용하여 모든 유형의 데이터를 전송할 수 있다.The first plaintext PLAIN1 may refer to any data or resource that can be transmitted. For example, the first plaintext PLAIN1 may refer to a message used for chatting, an electronic money, a password, a media file, an electronic coupon, a certificate, a cryptographic key, a program code, an algorithm or an unencrypted data file , But the present invention is not limited thereto and the first plaintext PLAIN1 may mean all types of data. That is, the user of the first terminal 100-1 can transmit all types of data using the first application 110-1.

상기 전자 화폐는 전자적 방법으로 저장되고 화폐적 가치를 가지는 데이터를 의미할 수 있으나 이에 한정되는 것은 아니며, 특정 정책에 따라 사용자들 간의 거래에 사용될 수 있는 모든 유형의 데이터를 의미할 수 있다.상기 암호 화폐는 암호(cryptography)를 거래(transaction)를 안전하게 진행할 수 있도록 매개하는 화폐를 의미할 수 있으며, 상기 암호 화폐는 암호를 이용하여 생성될 수 있다. 예컨대, 상기 암호 화폐는 비트 코인(BitCoin) 또는 이더리움(Ethereum)을 의미할 수 있으나, 이에 한정되는 것이 아니다.The electronic money may be data stored in electronic means and having a monetary value but is not limited thereto and can mean all types of data that can be used for transactions between users according to a specific policy. Money can mean currency that mediates cryptography to secure transactions, and the cryptogram can be generated using cryptography. For example, the cipher money may mean BitCoin or Ethereum, but is not limited thereto.

상기 알고리즘은 특정 작업을 수행하기 위한 여러 동작들의 모임을 의미할 수 있다. 상기 알고리즘은 프로그램 코드의 형태로 표현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 제1애플리케이션(110-1)이 제2단말기(100-2)로 상기 알고리즘을 전송한 경우, 상기 알고리즘을 수신한 제2단말기(100-2)는 상기 알고리즘에 나타난 특정 작업을 수행할 수 있다. The algorithm may refer to a collection of actions to perform a particular task. The algorithm may be expressed in the form of program code, but is not limited thereto. For example, when the first application 110-1 transmits the algorithm to the second terminal 100-2, the second terminal 100-2 receiving the algorithm performs a specific operation indicated in the algorithm .

제1애플리케이션(110-1)은 생성된 제1평문(PLAIN1)을 암호화하여 제1암호문(CYPHER1)을 생성할 수 있다(S820). 제1암호문(CYPHER1)은 다양한 암호화 방식에 의해 생성될 수 있다.The first application 110-1 may generate the first ciphertext CYPHER1 by encrypting the generated first plain text PLAIN1 (S820). The first cipher text (CYPHER1) can be generated by various encryption methods.

제1애플리케이션(110-1)은 제1암호문(CYPHER1)을 제2단말기(100-2)로 전송할 수 있다(S830). The first application 110-1 may transmit the first cipher text CYPHER1 to the second terminal 100-2 (S830).

제1애플리케이션(110-1)은 제2단말기(100-2)로부터 제2암호문(CYPHER2)를 수신할 수 있다(S840). 제2단말기(100-2)는 제2평문(PLAIN2)를 생성하고 생성된 제2평문(PLAIN2)를 암호화하여 제2암호문(CYPHER2)을 생성할 수 있다.The first application 110-1 may receive the second cipher text CYPHER2 from the second terminal 100-2 (S840). The second terminal 100-2 may generate the second plaintext PLAIN2 and generate the second ciphertext CYPHER2 by encrypting the generated second plaintext PLAIN2.

제1애플리케이션(110-1)은 제2단말기(100-2)로부터 수신한 제2암호문(CYPHER2)를 복호화하여 제2평문(PLAIN2)을 복원(또는 생성)할 수 있다(S850).The first application 110-1 may decrypt the second cipher text CYPHER2 received from the second terminal 100-2 to restore (or create) the second plaintext PLAIN2 (S850).

제1애플리케이션(110-1)은 암호화된 제2암호문(CYPHER2)를 복호화하여 제2평문(PLAIN2)을 복원(또는 생성)하고, 복원된 제2평문(PLAIN2)을 단말기(100-1) 및/또는 서버(200)에 저장할 수 있다.The first application 110-1 decrypts the second plaintext PLAIN2 by decrypting the encrypted second ciphertext CYPHER2 and transmits the restored second plaintext PLAIN2 to the terminals 100-1 and 100-2, / RTI > and / or server 200. < RTI ID = 0.0 >

실시 예에 따라, 제1애플리케이션(110-1)은 복원(또는 생성)된 제2평문(PLAIN2)을 다시 암호화하고, 암호화된 복원(또는 생성)된 제2평문(PLAIN2)을 제1단말기(100-1) 및/또는 서버(200)에 저장할 수 있다. 예컨대, 제1애플리케이션(110-1)은 제1평문(PLAIN1)을 암호화 하는 방식과 다른 방식으로 복원(또는 생성)된 제2평문(PLAIN2)을 다시 암호화할 수 있으나, 이에 한정되는 것은 아니다.According to the embodiment, the first application 110-1 re-encrypts the restored (or generated) second plaintext PLAIN2 and transmits the encrypted restored (or generated) second plaintext PLAIN2 to the first terminal 100-1) and / or the server (200). For example, the first application 110-1 may encrypt the second plaintext PLAIN2 restored (or generated) in a manner different from the method of encrypting the first plaintext PLAIN1, but is not limited thereto.

실시 예에 따라, 제1애플리케이션(110-1)은 상기 복원(또는 생성)된 제2평문(PLAIN2)을 제1단말기(100-1)의 디스플레이를 통해 일정 시간 출력한 후, 상기 복원(또는 생성)된 제2평문(PLAIN2)을 다시 암호화하여 제1단말기(100-1) 또는 제1애플리케이션(110-1)에 저장할 수 있다.According to the embodiment, the first application 110-1 outputs the restored (or generated) second plain text PLAIN2 through the display of the first terminal 100-1 for a predetermined time, The generated second plaintext PLAIN2 may be encrypted again and stored in the first terminal 100-1 or the first application 110-1.

예컨대, 제2평문(PLAIN2)이 제2단말기(100-2)로부터 지불된(paid) 전자 화폐일 때, 제2평문(PLAIN2)은, 앞서 설명한 것처럼, 암호화된 채널을 통해 암호화되어 제2암호문(CYPHER2)로서 제1단말기(100-1)로 전송되고, 제1애플리케이션(110-1)은 제2암호문(CYPHER2)을 복호화 할 수 있다. For example, when the second plaintext PLAIN2 is an electronic money paid from the second terminal 100-2, the second plaintext PLAIN2 is encrypted through the encrypted channel as described above, (CYPHER2) to the first terminal 100-1, and the first application 110-1 can decrypt the second cipher text (CYPHER2).

이 때, 제1애플리케이션(110-1)은 제2암호문(CYPHER2)을 복호화하여 복원(또는 생성된) 제2평문(PLAIN2)을 해석하고, 해석의 결과에 따라 제2단말기(100-2)에 의해 지불된 금액을 제1단말기(100-1)의 디스플레이를 통해 일정 시간 출력한 후, 제2평문(PLAIN2)을 다시 암호화하여 제1단말기(100-1) 또는 제1애플리케이션(110-1)에 저장할 수 있다.At this time, the first application 110-1 decodes the second plaintext PLAIN2 by decoding the second cipher text CYPHER2, and analyzes the restored (or generated) plaintext PLAIN2, The first mobile terminal 100-1 outputs the amount of money paid by the first terminal 100-1 through the display of the first terminal 100-1 for a predetermined time and then encrypts the second plain text PLAIN2 again, ). ≪ / RTI >

따라서, 본 발명의 개념에 따른 실시 예에 따른 애플리케이션이 설치된 단말기는 서버에 의존하지 않고 다른 단말기와 암호화된 채널을 통해 통신을 수행할 수 있을 뿐 아니라, 상기 통신을 수행하는 동안 수신한 데이터들을 암호화하여 상기 단말기 또는 상기 애플리케이션에 저장할 수 있다.Accordingly, a terminal equipped with an application according to an exemplary embodiment of the present invention can communicate with another terminal through an encrypted channel without relying on a server, and can also encrypt data received during the communication And may be stored in the terminal or the application.

도 12는 본 발명의 개념에 따른 실시 예에 따라, 제1애플리케이션이 제2단말기와 통신하는 방법을 설명하기 위한 데이터 처리도이다. 도 12를 참조하면, 제1애플리케이션(110-1)은 제2단말기(100-2)와 통신하기 위해 메시지 키(SK)를 생성하고, 메시지 키(SK)를 제2단말기(100-2)와 공유할 수 있다.12 is a data processing diagram illustrating a method by which a first application communicates with a second terminal, in accordance with an embodiment consistent with the present invention. 12, the first application 110-1 generates a message key SK to communicate with the second terminal 100-2, and transmits the message key SK to the second terminal 100-2. ≪ / RTI >

메시지 키(SK)는 제1단말기(100-1)가 생성하는 제1평문(PLAIN1)과 제2단말기(100-2)가 생성하는 제2평문(PLAIN2) 각각을 암호화 할 수 있는 키를 의미할 수 있다. The message key SK means a key capable of encrypting each of the first plaintext PLAIN1 generated by the first terminal 100-1 and the second plaintext PLAIN2 generated by the second terminal 100-2 can do.

제1단말기(100-1)와 제2단말기(100-2)는 메시지 키(SK)를 이용하여 메시지 또는 파일을 암호화 하고, 상기 암호화된 메시지 또는 파일을 서로 공유할 수 있다. 실시 예에 따라, 메시지 키(SK)는 대칭 키(symmetric key)일 수 있다.The first terminal 100-1 and the second terminal 100-2 may encrypt a message or a file using a message key SK and may share the encrypted message or file with each other. According to an embodiment, the message key SK may be a symmetric key.

메시지 키(SK)는 제1애플리케이션(110-1)이 설치될 때 생성되거나, 제1애플리케이션(110-1)이 제2단말기(100-2)와 통신을 시도할 때 마다 생성될 수 있다. 예컨대, 제1애플리케이션(110-1)은 미리 설정된 시간 간격에 따라 메시지 키(SK)를 생성할 수 있다.The message key SK may be generated when the first application 110-1 is installed or may be generated each time the first application 110-1 attempts to communicate with the second terminal 100-2. For example, the first application 110-1 may generate the message key SK according to a predetermined time interval.

제1애플리케이션(110-1)은 메시지 키(SK)를 생성할 수 있다(S910). 제1애플리케이션(110-1)은 메시지 키(SK)를 암호화하고, 상기 암호화된 메시지 키를 제2단말기(100-2)로 전송할 수 있다. The first application 110-1 may generate the message key SK (S910). The first application 110-1 may encrypt the message key SK and transmit the encrypted message key to the second terminal 100-2.

실시 예에 따라, 제1애플리케이션(110-1)은 제2단말기(100-2)의 제2공개 키(PBK2)를 이용하여 메시지 키(SK)를 암호화(S920)하고, 암호화된 메시지 키(PBK2_SK)를 제2단말기(100-2)로 전송(S930)할 수 있다. According to an embodiment, the first application 110-1 encrypts (S920) the message key SK using the second public key PBK2 of the second terminal 100-2, PBK2_SK) to the second terminal 100-2 (S930).

제2공개 키(PBK2)는 공개 키 알고리즘(public key algorithm)에서의 공개 키(public key)를 의미할 수 있다.The second public key PBK2 may refer to a public key in a public key algorithm.

제2 공개 키(PBK2)는 제2애플리케이션(110-2) 또는 서버(200)에 의해 생성될 수 있다. 실시 예에 따라, 서버(200)에 의해 생성된 제2공개 키(PBK2)는 제2단말기(100-2)로 할당될 수 있다. The second public key PBK2 may be generated by the second application 110-2 or the server 200. [ According to the embodiment, the second public key PBK2 generated by the server 200 may be assigned to the second terminal 100-2.

제1애플리케이션(110-1)은 제2공개 키(PBK2)를 제2단말기(100-2)로부터 직접 수신할 수 있다.The first application 110-1 can receive the second public key PBK2 directly from the second terminal 100-2.

실시 예에 따라, 제1애플리케이션(110-1)은 서버(200)로부터 제2단말기(100-2)의 제2공개 키(PBK2)를 수신할 수 있다. 예컨대, 제2단말기(100-2)로부터 수신한 제2단말기(100-2)의 상기 제2단말 정보를 서버(200)로 전송하고, 상기 서버(200)로부터 상기 제2단말 정보에 해당하는 제2공개 키(PBK2)를 수신할 수 있다.According to the embodiment, the first application 110-1 may receive the second public key PBK2 of the second terminal 100-2 from the server 200. [ For example, it is possible to transmit the second terminal information of the second terminal 100-2 received from the second terminal 100-2 to the server 200, and receive, from the server 200, And can receive the second public key PBK2.

실시 예에 따라, 제1애플리케이션(110-1)은 서버(200) 또는 제2단말기(100-2)로부터 제2공개 키(PBK2)를 수신할 때, 제2공개 키(PBK2)를 저장하고 저장된 제2공개 키(PBK2)를 이용할 수 있다.According to the embodiment, when the first application 110-1 receives the second public key PBK2 from the server 200 or the second terminal 100-2, it stores the second public key PBK2 The stored second public key PBK2 can be used.

제2공개 키(PBK2)에 기초하여 암호화된 메시지 키(PBK2_SK)를 수신한 제2단말기(100-2)는 제2단말기(100-2)의 제2비밀 키(PVK2)를 이용하여, 암호화된 메시지 키(PBK2_SK)를 복호화하여 메시지 키(SK)를 복원(또는 생성)할 수 있다(S940). The second terminal 100-2, which has received the encrypted message key PBK2_SK based on the second public key PBK2, uses the second secret key PVK2 of the second terminal 100-2 to encrypt (Or generates) the message key SK by decoding the received message key PBK2_SK (S940).

제2비밀 키(PVK2)는 공개 키 알고리즘에서의 비밀 키(private key)를 의미할 수 있다. 제2비밀 키(PVK2)는 제2공개 키(PBK2)와 대응되는 비밀 키를 의미한다. 실시 예에 따라, 제2비밀 키(PVK2)는 암호화되어 저장될 수 있다. 예컨대, 제2애플리케이션(110-2)는 제2비밀 키(PVK2)는 제2단말기(100-2)의 사용자가 설정한 암호(예컨대, PIN 번호)에 따라 암호화될 수 있다.The second secret key PVK2 may denote a private key in the public key algorithm. The second secret key PVK2 denotes a secret key corresponding to the second public key PBK2. According to the embodiment, the second secret key PVK2 may be encrypted and stored. For example, the second application 110-2 can encrypt the second secret key PVK2 according to a password (e.g., a PIN number) set by a user of the second terminal 100-2.

S910 내지 S940의 단계 후에, 제2단말기(100-2)는 메시지 키(SK)를 수신하므로, 제1애플리케이션(110-1)은 메시지 키(SK)를 이용하여 제2단말기(100-2)와 통신을 수행할 수 있다.Since the second terminal 100-2 receives the message key SK after the steps of S910 to S940, the first application 110-1 transmits the message key SK to the second terminal 100-2 using the message key SK. Lt; / RTI >

실시 예에 따라, 제1애플리케이션(110-1)은 제2단말기(100-2)로 메시지 키(SK)의 수신 여부를 확인하는 신호를 전송할 수 있다. 예컨대, 제1애플리케이션(110-1)은 제2단말기(100-2)로 제1단말기(100-1)의 공개 키로 암호화된 메시지 키를 전송할 것을 요청할 수 있다. 제1애플리케이션(110-1)은 제2단말기(100-2)가 전송한 상기 제1단말기(100-1)의 공개 키로 암호화된 메시지 키와 제1애플리케이션(110-1)이 생성한 상기 제1단말기(100-1)의 공개 키로 암호화된 메시지 키를 비교하고, 비교 결과에 따라 메시지 키(SK)의 공유가 제대로 수행되었는지를 판단할 수 있다.According to the embodiment, the first application 110-1 may transmit a signal for confirming whether the message key SK is received to the second terminal 100-2. For example, the first application 110-1 may request the second terminal 100-2 to transmit the message key encrypted with the public key of the first terminal 100-1. The first application 110-1 transmits the message key encrypted with the public key of the first terminal 100-1 transmitted by the second terminal 100-2 and the message key encrypted with the public key of the first terminal 110-1 1 message key encrypted with the public key of the terminal 100-1, and determine whether the message key (SK) is properly shared according to the comparison result.

이상에서는 제1애플리케이션(110-1)이 메시지 키(SK)를 생성하고, 생성된 메시지 키(SK)를 제2단말기(100-2)의 제2공개 키(PBK2)를 이용하여 암호화하여 제2단말기(100-2)로 전송하는 방법을 설명하였으나, 실시 예에 따라 제1단말기(100-1)와 제2단말기(100-2)는 역할은 서로 바뀔 수 있다.The first application 110-1 generates the message key SK and the generated message key SK is encrypted using the second public key PBK2 of the second terminal 100-2 2 terminal 100-2, the roles of the first terminal 100-1 and the second terminal 100-2 may be changed according to the embodiment.

예컨대, 제2애플리케이션(110-2)이 제1단말기(100-1)의 제1공개 키를 이용하여 메시지 키(SK)를 암호화하여 제1단말기(100-1)로 전송하고, 제1애플리케이션(110-1)이 제1단말기(100-1)의 상기 제1공개 키에 대응하는 상기 제1비밀 키를 이용하여 상기 제1공개 키로 암호화된 메시지 키를 복호화하여 메시지 키를 생성할 수 있다. For example, the second application 110-2 encrypts and transmits the message key SK to the first terminal 100-1 using the first public key of the first terminal 100-1, The mobile terminal 110-1 may generate a message key by decrypting the message key encrypted with the first public key using the first secret key corresponding to the first public key of the first terminal 100-1 .

따라서, 본 발명의 개념에 따른 실시 예에 따른 애플리케이션이 설치된 단말기는 서버에 의존하지 않고 다른 단말기와 암호화된 채널을 통해 통신을 수행할 수 있다.Accordingly, a terminal equipped with an application according to an embodiment of the present invention can communicate with another terminal through an encrypted channel without depending on a server.

도 11과 도 12에는 제1단말기(100-1)와 제2단말기(100-2)가 직접 데이터(예컨대, 메시지 키(SK) 또는 평문들(PLAIN1과 PLAIN2)를 주고받는 것이 도시되어 있으나, 본 발명의 개념에 따른 실시 예는 이에 한정되는 것이 아니다. 실시 예에 따라, 제1단말기(100-1)는 암호화된 제1암호문(CYPHER1)를 제2단말기(100-2)로 직접 전송하지 않고, 서버(200)로 전송할 수 있다. 그 후, 제2단말기(100-2)는 서버(200)로부터 암호화된 제1암호문(CYPHER1)를 수신하고, 상기 암호화된 제1암호문(CYPHER1)를 메시지 키(SK)를 이용하여 복호화할 수 있다.11 and 12 illustrate that the first terminal 100-1 and the second terminal 100-2 directly exchange data (e.g., message key SK or plaintexts PLAIN1 and PLAIN2) The first terminal 100-1 does not directly transmit the encrypted first cipher text CYPHER1 to the second terminal 100-2 according to the embodiment of the present invention The second terminal 100-2 can receive the encrypted first cipher text CYPHER1 from the server 200 and transmit the encrypted first cipher text CYPHER1 to the server 200. [ Can be decrypted using the message key (SK).

도 13는 본 발명의 실시 예에 따른 애플리케이션이 상기 애플리케이션이 설치된 단말기와 통신하는 다른 단말기의 통신 패턴을 분석하는 방법을 설명하기 위한 플로우차트이다. 도 12를 참조하면, 제1애플리케이션(110-1)은 제1단말기(100-1)와 통신을 수행하는 제2단말기(100-2) 의 통신 패턴을 수집할 수 있다. 13 is a flowchart illustrating a method of analyzing a communication pattern of another terminal communicating with a terminal installed with the application according to an embodiment of the present invention. Referring to FIG. 12, the first application 110-1 may collect communication patterns of the second terminal 100-2 that performs communication with the first terminal 100-1.

본 명세서에서 통신 패턴이라 함은 단말기들 간에 수행되는 통신들의 특정한 형태나 규칙을 의미할 수 있다. As used herein, the term " communication pattern " may refer to a particular form or rule of communications performed between terminals.

제1애플리케이션(110-1)은 제1단말기(100-1)와 제2단말기(100-2)의 통신에 관련된 데이터들로부터 제2단말기(100-2)의 통신 패턴(CPT)을 수집(또는 생성)할 수 있다(S1010). 실시 예에 따라, 제1애플리케이션(110-1)은 제1단말기(100-1)와 제2단말기(100-2)가 통신을 수행할 때 마다, 통신 패턴(CPT)을 수집(또는 생성)할 수 있다. 예컨대, 제1단말기(100-1)와 제2단말기(100-2)가 두 번 통신을 수행했을 때, 제1애플리케이션(110-1)은 상기 두 번의 통신에 대한 통신 패턴(CPT)을 각각 생성할 수도 있고, 상기 두 번의 통신에 대한 하나의 통신 패턴(CPT)을 생성할 수도 있다.The first application 110-1 collects the communication pattern (CPT) of the second terminal 100-2 from the data related to the communication between the first terminal 100-1 and the second terminal 100-2 (S1010). According to the embodiment, the first application 110-1 collects (or generates) the communication pattern (CPT) every time the first terminal 100-1 and the second terminal 100-2 perform communication, can do. For example, when the first terminal 100-1 and the second terminal 100-2 perform two communications, the first application 110-1 transmits the communication patterns (CPT) for the two communications Or may generate one communication pattern (CPT) for the two communications.

제1애플리케이션(110-1)은 제1단말기(100-1)와 제2단말기(100-2)사이의 통신이 종료된 후 통신 패턴(CPT)을 생성(또는 수집)할 수 있으나 이에 한정되는 것은 아니며, 상기 통신이 수행되는 동안 지속적으로 통신 패턴(CPT)을 생성(또는 수집)하고 통신 패턴(CPT)을 갱신할 수 있다.The first application 110-1 may generate (or collect) a communication pattern (CPT) after the communication between the first terminal 100-1 and the second terminal 100-2 is completed, And may continuously generate (or collect) the communication pattern (CPT) and update the communication pattern (CPT) while the communication is performed.

통신 패턴(CPT)은 여러 유형(type)의 패턴들을 포함할 수 있다. The communication pattern (CPT) may include various types of patterns.

실시 예에 따라, 통신 패턴(CPT)은 제1단말기(100-1)와 제2단말기(100-2)사이의 통신 시간대에 관한 패턴, 제1단말기(100-1)와 제2단말기(100-2)사이의 통신 시간에 관한 패턴, 제1단말기(100-1)와 제2단말기(100-2)의 통신 내용에 관한 패턴 및 제1단말기(100-1)와 제2단말기(100-2)사이의 통신 빈도에 관한 패턴 중 적어도 어느 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.The communication pattern CPT is a pattern related to the communication time zone between the first terminal 100-1 and the second terminal 100-2 and the communication time pattern between the first terminal 100-1 and the second terminal 100-2, A pattern related to communication contents between the first terminal 100-1 and the second terminal 100-2 and a pattern related to the communication contents between the first terminal 100-1 and the second terminal 100- 2), but the present invention is not limited thereto.

상기 통신 시간대에 관한 패턴은 제1단말기(100-1)와 제2단말기(100-2)가 통신을 시작한 시점(예컨대, 아침 6시)과 상기 통신을 종료한 시점(예컨대, 오후 12시)을 포함할 수 있다.The pattern related to the communication time zone is a time when the communication between the first terminal 100-1 and the second terminal 100-2 starts (for example, 6:00 am) and the time when the communication ends (for example, 12:00 pm) . ≪ / RTI >

상기 통신 시간에 관한 패턴은 제1단말기(100-1)와 제2단말기(100-2)가 통신을 수행한 총 시간(예컨대, 10분)을 의미할 수 있다.The pattern of the communication time may mean the total time (e.g., 10 minutes) that the first terminal 100-1 and the second terminal 100-2 have performed communication.

상기 통신 내용에 관한 패턴은 제1단말기(100-1)와 제2단말기(100-2)가 주고 받은 메시지의 내용(예컨대, “100,000 원 송금 바람”) 또는 파일의 종류 (예컨대, 워드 파일)을 의미할 수 있으나, 이에 한정되는 것은 아니다.The pattern related to the communication content may include a content of a message exchanged between the first terminal 100-1 and the second terminal 100-2 (for example, " 100,000 won transfer request ") or a file type (e.g., , But is not limited thereto.

상기 통신 빈도에 관한 패턴은 기준 기간 동안 제1단말기(100-1)와 제2단말기(100-2)사이에 통신이 이루어진 횟수(예컨대, 5회 / 주)를 의미할 수 있다.제1애플리케이션(110-1)은 생성(또는 수집)된 제2단말기(100-2)의 통신 패턴(CPT)를 이용하여 제2단말기의 기준 통신 패턴(RCPT)를 생성할 수 있다(S1020). 실시 예에 따라, 기준 통신 패턴(RCPT)는 단말기들 별로 생성될 수 있다.실시 예에 따라, 제1애플리케이션(110-1)은 통신 패턴(CPT)을 분석하고, 분석 결과에 따라 기준 통신 패턴(RCPT)를 생성(또는 추출)할 수 있다. The pattern related to the communication frequency may mean the number of times (for example, five times / week) the communication is performed between the first terminal 100-1 and the second terminal 100-2 during the reference period. The base station 110-1 may generate the reference communication pattern RCPT of the second terminal using the communication pattern CPT of the second terminal 100-2 generated (or collected) (S1020). According to the embodiment, the first application 110-1 may analyze the communication pattern (CPT), and may determine, based on the analysis result, that the reference communication pattern (RCPT) (RCPT) can be generated (or extracted).

예컨대, 제1애플리케이션(110-1)은 통신 패턴(CPT)을 통계적 기법(manner) (예컨대, 행동 분석(behavior analysis) 기법 또는 머신 러닝(machine learning) 기법)을 이용하여 분석하고, 분석 결과에 따라 기준 통신 패턴(RCPT)를 생성(또는 추출)할 수 있다. For example, the first application 110-1 may analyze the communication pattern (CPT) in a statistical manner (e.g., a behavior analysis technique or a machine learning technique) Thereby generating (or extracting) the reference communication pattern RCPT.

실시 예에 따라, 기준 통신 패턴(RCPT)은 하나의 유형의 통신 패턴(CPT)에 대한 분석 결과에 따라 생성될 수 있고, 설정된 기간 동안 생성(또는 수집)된 통신 패턴(CPT)에 대한 분석 결과에 따라 생성될 수 있다.According to the embodiment, the reference communication pattern RCPT can be generated according to the analysis result for one type of communication pattern (CPT), and the analysis result on the communication pattern (CPT) generated (or collected) ≪ / RTI >

제1애플리케이션(110-1)은 제2단말기(100-2)의 통신 패턴(CPT)과 기준 통신 패턴 (RCPT)을 비교하고, 비교 결과에 따라 제2단말기(100-2)의 통신 패턴(CPT)이, 정상인지 여부를 판단할 수 있다(S1030).The first application 110-1 compares the communication pattern CPT of the second terminal 100-2 with the reference communication pattern RCPT and transmits the communication pattern of the second terminal 100-2 CPT) is normal (S1030).

실시 예에 따라, 제1애플리케이션(110-1)은 제2단말기(100-2)의 통신 패턴(CPT)와 기준 통신 패턴 (RCPT)을 비교하고, 비교 결과에 따라 제2단말기(100-2)의 통신 패턴이 기준 통신 패턴(RCPT)으로부터 기준 범위에 있을 때, 제2단말기(100-2)의 통신 패턴(CPT)이 정상이라고 판단할 수 있다.The first application 110-1 compares the communication pattern CPT of the second terminal 100-2 with the reference communication pattern RCPT and transmits the comparison result to the second terminal 100-2 The communication pattern CPT of the second terminal 100-2 can be determined to be normal when the communication pattern of the second terminal 100-2 is within the reference range from the reference communication pattern RCPT.

예컨대, 제2단말기(100-2)의 통신 패턴(CPT) 중 통신 시간대에 관한 패턴이 기준 통신 패턴(RCPT)의 통신 시간대와 다른 경우(또는 벗어난 경우), 제1애플리케이션(110-1)은 제2단말기(100-2)의 통신 패턴이 정상이 아니라고 판단할 수 있다.For example, when the pattern of the communication time zone among the communication pattern (CPT) of the second terminal 100-2 is different from (or is out of) the communication time zone of the reference communication pattern RCPT, the first application 110-1 It can be determined that the communication pattern of the second terminal 100-2 is not normal.

실시 예에 따라, 제1애플리케이션(110-1)은 제2단말기(100-2)의 통신 패턴(CPT)이 기준 통신 패턴 (RCPT)으로부터 기준 범위를 벗어난 빈도 수를 카운트하고, 카운트 값이 기준 카운트 값보다 작을 때 제2단말기(100-2)의 통신 패턴(CPT)이 정상인지 여부를 판단할 수 있다.According to the embodiment, the first application 110-1 counts the number of frequencies that the communication pattern (CPT) of the second terminal 100-2 is out of the reference range from the reference communication pattern (RCPT) It is possible to determine whether the communication pattern (CPT) of the second terminal 100-2 is normal when the count value is smaller than the count value.

예컨대, 제2단말기(100-2)의 통신 시간대에 관한 기준 통신 패턴(RCPT)이 오후 3시 이고, 상기 기준 범위가 1시간이고, 상기 기준 카운트 값이 3이라고 가정하자. 제1단말기(100-1)와 제2단말기(100-2)가 오후 5시에 통신을 수행하고, 오후 6시에 통신을 수행하였다면 상기 카운트 값은 2 이고, 따라서 제2단말기(100-2)의 통신 패턴(CPT)은 정상인 것으로 판단된다.For example, assume that the reference communication pattern RCPT for the communication time zone of the second terminal 100-2 is 3:00 PM, the reference range is 1 hour, and the reference count value is 3. If the first terminal 100-1 and the second terminal 100-2 communicate with each other at 5:00 PM and the communication is performed at 6:00 PM, the count value is 2, and thus the second terminal 100-2 Is determined to be normal.

본 명세서에서는 제2단말기(100-2)의 통신 패턴(CPT)이 정상인지 여부가 하나의 유형에 대해서 판단되는 것으로 설명되어 있으나, 이에 한정되는 것은 아니며 복수의 유형에 대해서도 판단될 수 있다. 이 때, 유형 별로 가중치(weight)가 부가될 수도 있다. In the present specification, it is described that whether or not the communication pattern (CPT) of the second terminal 100-2 is normal is determined for one type. However, the present invention is not limited to this, and a plurality of types can also be determined. At this time, a weight may be added for each type.

제1애플리케이션(110-1)은 상기 판단(S1030)의 결과에 따라, 제2단말기(100-2)의 통신 패턴이 정상일 때(S1030의 YES), 제2단말기(100-2)와의 통신을 유지할 수 있다(S1040). 실시 예에 따라, 제1애플리케이션은, 제2단말기(100-2)의 통신 패턴이 정상일 때(S1030의 YES), 다시 제2단말기(100-2)의 통신 패턴이 정상에서 벗어났는지 여부를 판단하는 단계(S1030)로 자동으로 진입할 수 있다. 즉, 제1애플리케이션(110-1)은 주기적으로(periodically) 또는 실시간으로(on-the-fly), 제2단말기(100-2)의 통신 패턴이 정상인지 여부를 판단할 수 있다.When the communication pattern of the second terminal 100-2 is normal (YES in S1030), the first application 110-1 performs communication with the second terminal 100-2 in accordance with the result of the judgment (S1030) (S1040). According to the embodiment, when the communication pattern of the second terminal 100-2 is normal (YES in S1030), the first application judges again whether or not the communication pattern of the second terminal 100-2 is out of the normal state (S1030). ≪ / RTI > That is, the first application 110-1 may determine whether the communication pattern of the second terminal 100-2 is normal, periodically or on-the-fly.

제1애플리케이션(110-1)은 상기 판단(S1030)의 결과에 따라, 제2단말기(100-2)의 통신 패턴이 정상이 아닐 때(S1030의 NO), 제2단말기(100-2)와의 통신을 종료할 수 있다(S1050). 실시 예에 따라, 제1애플리케이션(110-1)은, 제2단말기(100-2)의 통신 패턴이 정상이 아닐 때(S1030의 NO), 제2단말기(100-2)의 통신 패턴이 비정상임을 지시하는 메시지를 출력하고, 제1애플리케이션(110-1)의 실행을 자동으로 종료할 수 있다. When the communication pattern of the second terminal 100-2 is not normal (NO in S1030), the first application 110-1 determines whether the communication pattern of the second terminal 100-2 with the second terminal 100-2 The communication can be terminated (S1050). According to the embodiment, when the communication pattern of the second terminal 100-2 is not normal (NO in S1030), the first application 110-1 determines that the communication pattern of the second terminal 100-2 is abnormal And may automatically terminate the execution of the first application 110-1.

실시 예에 따라, 제1애플리케이션(110-1)은, 제2단말기(100-2)의 통신 패턴이 정상이 아닐 때(S1030의 NO), 제2단말기(100-2)로 추가 인증을 요청할지를 묻는 알림을 제1단말기(100-1)의 사용자에게 제공할 수 있다. 상기 추가 인증은 이메일(e-mail), SMS(short message service), ARS(automatic response service), 제2애플리케이션(110-2)를 통한 푸시 알람(push alarm) 또는 제1단말기(100-1)와 제2단말기(100-2) 사이의 통신 채널을 통한 인증 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.According to the embodiment, when the communication pattern of the second terminal 100-2 is not normal (NO in S1030), the first application 110-1 requests the second terminal 100-2 to request additional authentication The user of the first terminal 100-1. The additional authentication may be an e-mail, a short message service (SMS), an automatic response service (ARS), a push alarm via the second application 110-2, And authentication through a communication channel between the first terminal 100-2 and the second terminal 100-2, but the present invention is not limited thereto.

제1애플리케이션(110-1)은 상기 추가 인증 요청을 제2단말기(100-2)로 보낸 후, 상기 추가 인증이 성공적으로 수행된 경우, 제2단말기(100-2)와의 통신을 유지할 수 있다. 제1애플리케이션(110-1)은 상기 추가 인증 요청을 제2단말기(100-2)로 보낸 후, 상기 추가 인증이 실패한 경우, 제2단말기(100-2)와의 통신을 종료할 수 있다.The first application 110-1 may send the additional authentication request to the second terminal 100-2 and then maintain the communication with the second terminal 100-2 when the additional authentication is successfully performed . The first application 110-1 may send the additional authentication request to the second terminal 100-2 and then terminate the communication with the second terminal 100-2 if the additional authentication fails.

실시 예에 따라, 제1애플리케이션(110-1)은 제1단말기(100-1)가 제2단말기(100-2)와 통신을 수행하고 있는 중에도, 주기적 또는 실시간으로, 제1애플리케이션(110-1)의 위변조 여부를 판단할 수 있고, 제1OS(120-1)의 위변조 여부를 판단할 수 있다(도 3 내지 7을 참조하여 설명됨).The first application 110-1 can periodically or real-time transmit the first application 110-1 even while the first terminal 100-1 is communicating with the second terminal 100-2, 1) can be determined, and it can be determined whether the first OS 120-1 is forged or falsified (described with reference to FIGS. 3 to 7).

본 명세서에서는 편의상 제1단말기는 제2단말기와 통신하는 것을 가정하고 설명하였으나, 실시 예에 따라 상기 제1단말기는 상기 제2단말기뿐만 아니라, 상기 제1단말기가 통신할 수 있는 다른 단말기와도 동시에 또는 순차적으로 통신할 수 있으며, 본 발명의 개념에 따른 실시 예가 단말기의 수에 한정되는 것은 아니다.Herein, it is assumed for convenience that the first terminal communicates with the second terminal, but according to an embodiment, the first terminal may be connected to the second terminal as well as to other terminals with which the first terminal can communicate Or sequentially, and the embodiment according to the concept of the present invention is not limited to the number of terminals.

본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

10-1, 10-2: 네트워크
100-1~100-n: 단말기
110-1~110-n: 애플리케이션
112: 보안 모듈
114: 메인 모듈
120-1~120-n: 운영 체제(OS)
10-1, 10-2: Network
100-1 to 100-n:
110-1 to 110-n: Application
112: Security module
114: main module
120-1 to 120-n: Operating system (OS)

Claims (31)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제1단말기에서 실행되는 제1애플리케이션이 상기 제1애플리케이션의 현재 상태를 지시하는 현재 제1APP 값을 생성하는 단계;
상기 제1애플리케이션이 기준 제1APP 값을 서버로부터 수신하는 단계;
상기 제1애플리케이션이 상기 현재 제1APP 값과 수신한 상기 기준 제1APP 값을 비교하는 단계;
상기 비교의 결과에 따라, 상기 현재 제1APP 값과 상기 기준 제1APP 값이 동일할 때, 상기 제1애플리케이션이 상기 제1애플리케이션을 위변조되지 않은 것으로 판단하는 단계;
판단의 결과, 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 제1애플리케이션이 상기 제1단말기에서 실행되는 제1OS의 현재 상태를 지시하는 현재 OS 값을 생성하는 단계;
상기 제1애플리케이션이 기준 OS 값을 상기 서버로부터 수신하는 단계; 및
상기 제1애플리케이션이 상기 현재 OS 값과 수신한 상기 기준 OS 값을 비교하는 단계를 포함하는 애플리케이션의 작동 방법.
Generating a current first APP value indicating a current state of the first application, the first application executing in the first terminal;
The first application receiving a reference first APP value from a server;
Comparing the current first APP value with the first reference APP value received by the first application;
Determining, by the result of the comparison, that the first application is not forged if the current first APP value and the reference first APP value are equal;
Generating a current OS value indicating a current state of a first OS executed by the first application when the first application is not forgiven as a result of the determination;
The first application receiving a reference OS value from the server; And
And the first application comparing the current OS value with the received reference OS value.
제10항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium storing a program for performing the method of operating the application according to claim 10. 제10항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위하여 매체에 저장된 프로그램.A program stored on a medium for performing the method of operating the application of claim 10. 프로세서; 및
상기 프로세서와 연동된 메모리를 포함하고,
상기 메모리는 제10항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터 시스템.
A processor; And
And a memory interlocked with the processor,
Wherein the memory stores a program for performing the method of operating the application of claim 10.
삭제delete 삭제delete 삭제delete 삭제delete 제1단말기에서 실행되는 제1애플리케이션이 상기 제1애플리케이션의 현재 상태를 지시하는 현재 제1APP 값을 생성하는 단계;
상기 제1애플리케이션이 기준 제1APP 값을 서버로부터 수신하는 단계;
상기 제1애플리케이션이 상기 현재 제1APP 값과 수신한 상기 기준 제1APP 값을 비교하는 단계;
상기 비교의 결과에 따라, 상기 현재 제1APP 값과 상기 기준 제1APP 값이 동일할 때, 상기 제1애플리케이션이 상기 제1애플리케이션을 위변조되지 않은 것으로 판단하는 단계;
상기 제1애플리케이션의 위변조 여부 판단의 결과 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 제1애플리케이션이 상기 제1단말기에서 실행되는 제1OS의 현재 상태를 지시하는 현재 OS 값을 생성하는 단계;
상기 제1애플리케이션이 기준 OS 값을 상기 서버로부터 수신하는 단계;
상기 제1애플리케이션이 상기 현재 OS 값과 수신한 상기 기준 OS 값을 비교하는 단계; 및
상기 제1OS의 위변조 여부 판단의 결과 상기 제1OS가 위변조되지 않았을 때, 상기 제1애플리케이션이, 상기 제1단말기와 통신하는 제2단말기에서 실행되는 제2애플리케이션의 위변조 여부를 판단하여, 상기 제2단말기를 검증하는 단계를 포함하는 애플리케이션의 작동 방법.
Generating a current first APP value indicating a current state of the first application, the first application executing in the first terminal;
The first application receiving a reference first APP value from a server;
Comparing the current first APP value with the first reference APP value received by the first application;
Determining, by the result of the comparison, that the first application is not forged if the current first APP value and the reference first APP value are equal;
Generating a current OS value indicating a current state of a first OS executed by the first application when the first application is not forgiven as a result of the forgery or falsification of the first application;
The first application receiving a reference OS value from the server;
Comparing the current OS value with the received reference OS value; And
Wherein the first application determines whether a second application executed in a second terminal communicating with the first terminal is forged or not, when the first OS is not forged or not as a result of the forgery or falsification of the first OS, And verifying the terminal.
제18항에 있어서, 상기 제2단말기를 검증하는 단계는,
상기 제1애플리케이션이 상기 제2단말기로부터 상기 제2애플리케이션의 제2APP 버전 정보와 상기 제2애플리케이션의 상태를 지시하는 제2APP 값을 수신하는 단계;
상기 제1애플리케이션이 상기 제1애플리케이션의 제1APP 버전 정보와 상기 제2APP 버전 정보를 비교하는 단계;
상기 제1APP 버전 정보와 상기 제2APP 버전 정보가 동일하지 않을 때, 상기 제1애플리케이션이 상기 제1단말기에 저장된 상기 제2APP 버전 정보에 해당하는 기준 제2APP 값을 검색하고, 검색된 상기 기준 제2APP 값과 상기 제2APP 값을 비교하는 단계; 및
상기 기준 제2APP 값과 상기 제2APP 값이 동일할 때, 상기 제1애플리케이션이 상기 제2애플리케이션을 위변조되지 않은 것으로 판단하고, 상기 제2단말기를 검증하는 단계를 포함하는 애플리케이션의 작동 방법.
19. The method of claim 18, wherein verifying the second terminal comprises:
The first application receiving a second APP value indicating the second APP version information of the second application and the status of the second application from the second terminal;
The first application comparing the first APP version information of the first application with the second APP version information;
When the first APP version information and the second APP version information are not the same, the first application retrieves a reference second APP value corresponding to the second APP version information stored in the first terminal, Comparing the first APP value with the second APP value; And
And when the second APP value is equal to the second APP value, the first application determines that the second application has not been tampered with, and verifies the second terminal.
제18항에 있어서, 상기 제2단말기를 검증하는 단계는,
상기 제1애플리케이션이 상기 제2단말기로부터 상기 제2애플리케이션의 제2APP 버전 정보와 상기 제2애플리케이션의 상태를 지시하는 제2APP 값을 수신하는 단계;
상기 제1애플리케이션이 상기 제1애플리케이션의 제1APP 버전 정보와 상기 제2APP 버전 정보를 비교하는 단계;
상기 제1APP 버전 정보와 상기 제2APP 버전 정보가 동일하지 않을 때, 상기 제1애플리케이션이 상기 제2APP 버전 정보를 서버로 전송하는 단계;
상기 제1애플리케이션이 상기 제2APP 버전 정보에 해당하는 기준 제2APP 값을 상기 서버로부터 수신하는 단계; 및
상기 기준 제2APP 값과 상기 제2APP 값이 동일할 때, 상기 제1애플리케이션이 상기 제2애플리케이션을 위변조되지 않은 것으로 판단하는 단계를 더 포함하는 애플리케이션의 작동 방법.
19. The method of claim 18, wherein verifying the second terminal comprises:
The first application receiving a second APP value indicating the second APP version information of the second application and the status of the second application from the second terminal;
The first application comparing the first APP version information of the first application with the second APP version information;
When the first APP version information and the second APP version information are not the same, the first application transmits the second APP version information to the server;
Receiving, by the first application, a reference second APP value corresponding to the second APP version information from the server; And
Further comprising the step of the first application determining that the second application is not forged when the second APP value is equal to the second APP value.
제18항 내지 제20항 중 어느 한 항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.20. A computer-readable recording medium storing a program for performing the method of operating the application as claimed in any one of claims 18 to 20. 제18항 내지 제20항 중 어느 한 항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위하여 매체에 저장된 프로그램.20. A program stored on a medium for performing the method of operating the application as claimed in any one of claims 18 to 20. 프로세서; 및
상기 프로세서와 연동된 메모리를 포함하고,
상기 메모리는 제18항 내지 제20항 중 어느 한 항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터 시스템.
A processor; And
And a memory interlocked with the processor,
Wherein the memory stores a program for performing the method of operating the application as claimed in any one of claims 18 to 20.
제1단말기에서 실행되는 제1애플리케이션의 보안 모듈이 상기 보안 모듈의 위변조 여부를 판단하고, 상기 보안 모듈이 위변조되지 않았을 때 상기 제1애플리케이션의 메인 모듈의 위변조 여부를 판단하여 상기 제1애플리케이션의 위변조 여부를 판단하는 단계;
상기 제1애플리케이션의 위변조 여부 판단의 결과, 상기 제1애플리케이션이 위변조되지 않았을 때, 상기 제1애플리케이션의 상기 보안 모듈이 상기 제1단말기에서 실행되는 제1OS의 위변조 여부를 판단하는 단계;
상기 제1OS의 위변조 여부 판단의 결과, 상기 제1OS가 위변조 되지 않았을 때, 상기 제1애플리케이션의 상기 보안 모듈이, 상기 제1단말기와 통신하는 제2단말기에서 실행되는 제2애플리케이션의 위변조 여부를 판단하여, 상기 제2단말기를 검증하는 단계;
상기 제2단말기의 검증 결과 상기 제2단말기가 검증되었을 때, 상기 제1애플리케이션이, 상기 제2단말기와 통신하기 위해 메시지 키를 상기 제2단말기와 공유하는 단계;
상기 제1애플리케이션이 제1평문을 생성하고, 상기 공유된 메시지 키를 이용하여 상기 제1평문을 암호화하여 제1암호문을 생성하고, 생성된 상기 제1암호문을 상기 제2단말기로 전송하는 단계;
상기 제2단말기가 제2평문을 생성하고 상기 공유된 메시지 키로 상기 제2평문을 암호화하여 제2암호문을 생성하면, 상기 제1애플리케이션이 상기 제2단말기로부터 상기 제2암호문을 수신하는 단계; 및
상기 제1애플리케이션이 상기 공유된 메시지 키를 이용하여 상기 제2암호문을 복호화하여 상기 제2평문을 복원하는 단계를 포함하는 애플리케이션의 작동 방법.
The security module of the first application determines whether the security module of the first application is forged or not, and when the security module is not tampered with, it determines whether the main module of the first application is forged or falsified, ;
Determining whether the security module of the first application is forged or falsified of the first OS executed in the first terminal when the first application is not forged as a result of the forgery or falsification of the first application;
Wherein the security module of the first application determines whether a second application executed in a second terminal communicating with the first terminal is forged or not, when the first OS is not forged or not as a result of the forgery or falseness determination of the first OS Verifying the second terminal;
When the second terminal is verified as a result of the verification of the second terminal, the first application shares the message key with the second terminal to communicate with the second terminal;
Generating a first plaintext by the first application, encrypting the first plaintext using the shared message key to generate a first ciphertext, and transmitting the generated first ciphertext to the second terminal;
The first application receiving the second ciphertext from the second terminal if the second terminal generates a second plaintext and encrypts the second plaintext with the shared message key to generate a second ciphertext; And
The first application decrypting the second cipher text using the shared message key to recover the second plaintext.
제24항에 있어서, 상기 메시지 키를 상기 제2단말기와 공유하는 단계는,
상기 제1애플리케이션이 제2애플리케이션의 제2공개 키를 이용하여 상기 메시지 키를 암호화하고, 상기 암호화된 메시지 키를 제2애플리케이션으로 전송하는 단계; 및
상기 제2애플리케이션이 수신한 상기 암호화된 메시지 키를 상기 제2공개 키에 대응하는 제2비밀 키를 이용하여 복호화하는 단계를 포함하는 애플리케이션의 작동 방법.
25. The method of claim 24, wherein the step of sharing the message key with the second terminal comprises:
The first application encrypting the message key using a second public key of a second application and transmitting the encrypted message key to a second application; And
And decrypting the encrypted message key received by the second application using a second secret key corresponding to the second public key.
제24항에 있어서,
상기 제1애플리케이션이 복원된 제2평문을 다시 암호화하여 제1단말기에 저장하는 하는 단계를 더 포함하는 애플리케이션의 작동 방법.
25. The method of claim 24,
Further comprising encrypting and restoring the restored second plaintext in the first terminal.
제24항에 있어서, 상기 제1평문과 상기 제2평문은 전자 화폐, 암호 화폐, 프로그램 코드 및 알고리즘 중 적어도 하나인 애플리케이션의 작동 방법.25. The method of claim 24, wherein the first plaintext and the second plaintext are at least one of electronic money, cryptography, program code, and an algorithm. 제24항에 있어서,
상기 제1애플리케이션이 상기 제1단말기와 상기 제2단말기의 통신으로부터 상기 제2단말기의 통신 패턴을 수집하는 단계;
상기 제1애플리케이션이 수집된 상기 제2단말기의 상기 통신 패턴으로부터 상기 제2단말기의 기준 통신 패턴을 생성하는 단계;
상기 제1애플리케이션이 상기 제2단말기의 상기 통신 패턴과 상기 제2단말기의 상기 기준 통신 패턴을 비교하고, 비교 결과에 따라 상기 제2단말기의 상기 통신 패턴이 정상인지 여부를 판단하는 단계; 및
상기 판단 결과에 따라, 상기 제2단말기의 상기 통신 패턴이 정상이 아닐 때, 상기 제1애플리케이션이 상기 제2단말기와의 통신을 종료하는 단계를 더 포함하는 애플리케이션의 작동 방법.
25. The method of claim 24,
The first application collecting a communication pattern of the second terminal from communication of the first terminal and the second terminal;
Generating a reference communication pattern of the second terminal from the communication pattern of the second terminal from which the first application is collected;
The first application comparing the communication pattern of the second terminal with the reference communication pattern of the second terminal and determining whether the communication pattern of the second terminal is normal according to a result of the comparison; And
Further comprising the step of the first application terminating communication with the second terminal when the communication pattern of the second terminal is not normal according to the determination result.
제24항 내지 제28항 중 어느 한 항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.28. A computer-readable recording medium storing a program for performing the method of operating the application according to any one of claims 24 to 28. 제24항 내지 제28항 중 어느 한 항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위하여 매체에 저장된 프로그램.29. A program stored on a medium for performing the method of operating the application as claimed in any one of claims 24 to 28. 프로세서; 및
상기 프로세서와 연동된 메모리를 포함하고,
상기 메모리는 제24항 내지 제28항 중 어느 한 항에 기재된 상기 애플리케이션의 작동 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터 시스템.

A processor; And
And a memory interlocked with the processor,
Said memory storing a program for performing the method of operating said application as claimed in any one of claims 24 to 28.

KR1020160149064A 2016-11-09 2016-11-09 Method for operating application performing security function and corresponding application KR101951201B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160149064A KR101951201B1 (en) 2016-11-09 2016-11-09 Method for operating application performing security function and corresponding application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160149064A KR101951201B1 (en) 2016-11-09 2016-11-09 Method for operating application performing security function and corresponding application

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190007975A Division KR102101614B1 (en) 2019-01-22 2019-01-22 Method for operating application performing security function and corresponding application

Publications (2)

Publication Number Publication Date
KR20180052024A KR20180052024A (en) 2018-05-17
KR101951201B1 true KR101951201B1 (en) 2019-02-25

Family

ID=62486137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160149064A KR101951201B1 (en) 2016-11-09 2016-11-09 Method for operating application performing security function and corresponding application

Country Status (1)

Country Link
KR (1) KR101951201B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102266561B1 (en) * 2020-01-07 2021-06-17 한국원자력 통제기술원 System for identifying friend or foe using augmented reality and security application

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101575021B1 (en) * 2015-08-20 2015-12-08 국방과학연구소 Mobile terminal for executing integrity verification and controll method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782420B2 (en) * 2011-07-22 2014-07-15 Netflix, Inc System and method for obfuscation initiation values of a cryptography protocol
KR101297936B1 (en) 2012-06-08 2013-08-19 가톨릭대학교 산학협력단 Method for security communication between mobile terminals and apparatus for thereof
KR101591503B1 (en) * 2014-02-19 2016-02-03 주식회사 테르텐 Method of operating package application including self-defense security module and computer readable medium

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101575021B1 (en) * 2015-08-20 2015-12-08 국방과학연구소 Mobile terminal for executing integrity verification and controll method thereof

Also Published As

Publication number Publication date
KR20180052024A (en) 2018-05-17

Similar Documents

Publication Publication Date Title
US20220116745A1 (en) Methods and systems for asset obfuscation
CN107533620B (en) Enhanced authentication based on secondary device interaction
JP6524347B2 (en) Information sharing system
KR102323382B1 (en) Facilitate transfer of funds between user accounts
EP3255832B1 (en) Dynamic encryption method, terminal and server
EP2359526B1 (en) System and methods for online authentication
JP5100286B2 (en) Cryptographic module selection device and program
US9197420B2 (en) Using information in a digital certificate to authenticate a network of a wireless access point
CN111654367B (en) Method for cryptographic operation and creation of working key, cryptographic service platform and device
US11675922B2 (en) Secure storage of and access to files through a web application
KR102205654B1 (en) Authentication method in a distributed circumstance
US9559737B2 (en) Telecommunications chip card
US20190098016A1 (en) Method of performing integrity verification between client and server and encryption security protocol-based communication method of supporting integrity verification between client and server
EP3780484B1 (en) Cryptographic operation and working key creation method and cryptographic service platform and device
CN110268679A (en) Authentication method and system based on block chain
CN105634720B (en) A kind of method, terminal device and the system of encryption safe configuration file
Dang et al. Pricing data tampering in automated fare collection with NFC-equipped smartphones
KR102180691B1 (en) Application stored on recording medium that perform security function, and electronic device
KR102413497B1 (en) Systems and methods for secure electronic data transmission
KR101951201B1 (en) Method for operating application performing security function and corresponding application
CN110311937B (en) Data forwarding system
Bolhuis Using an NFC-equipped mobile phone as a token in physical access control
KR102101614B1 (en) Method for operating application performing security function and corresponding application
US20210391982A1 (en) Distributed anonymized compliant encryption management system
JP2019057827A (en) Distributed authentication system and program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant