KR101273370B1 - Application counterfeit prevention apparatus and method - Google Patents
Application counterfeit prevention apparatus and method Download PDFInfo
- Publication number
- KR101273370B1 KR101273370B1 KR1020120095954A KR20120095954A KR101273370B1 KR 101273370 B1 KR101273370 B1 KR 101273370B1 KR 1020120095954 A KR1020120095954 A KR 1020120095954A KR 20120095954 A KR20120095954 A KR 20120095954A KR 101273370 B1 KR101273370 B1 KR 101273370B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- client terminal
- hash
- hash value
- providing server
- Prior art date
Links
- 230000002265 prevention Effects 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000004075 alteration Effects 0.000 claims abstract description 70
- 230000006870 function Effects 0.000 claims abstract description 65
- 238000012790 confirmation Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 241001634817 Cydia Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명의 실시예들은 클라이언트 단말에서 어플리케이션이 실행될 때, 상기 어플리케이션에 대한 위조나 변조 여부를 판별함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지할 수 있는 기술에 대한 것이다.Embodiments of the present invention are directed to a technique capable of preventing a forged or modulated application from being used by determining whether the application is forged or modulated when an application is executed in a client terminal.
최근, 스마트 폰이나 태블릿 PC 등과 같은 휴대용 기기가 널리 보급되면서, 이러한 휴대용 기기에서 사용 가능한 다양한 어플리케이션에 대한 관심이 증가하고 있다.Recently, as portable devices such as smartphones and tablet PCs are widely used, interest in various applications that can be used in such portable devices is increasing.
스마트 폰이나 태블릿 PC 등과 같은 휴대용 기기를 사용하는 사용자는 자신의 휴대용 기기를 통해 소정의 어플리케이션 제공 서버에 접속하여 게임이나 온라인 금융 서비스 등과 같은 다양한 어플리케이션을 다운로드 받아 사용할 수 있다.A user using a portable device such as a smart phone or a tablet PC may access a predetermined application providing server through his portable device and download and use various applications such as a game or an online financial service.
이렇게, 어플리케이션의 활용이 증가하면서, 어플리케이션을 불법으로 위조하거나 변조하여 사용하는 행위도 증가하고 있다.As such, as the utilization of applications increases, the act of illegally forging or tampering with applications increases.
어플리케이션이 불법으로 위변조되는 경우, 휴대용 기기 사용자의 개인 정보가 무방비로 노출될 수 있고, 어플리케이션 저작권이 침해되는 경우가 발생할 수 있다.When an application is illegally forged, personal information of a user of a portable device may be exposed unprotected, and an application copyright may be infringed.
또한, 최근에는 어플리케이션을 불법으로 사용하기 위해, 스마트 폰이나 태블릿 PC 등을 루팅(Rooting)하거나 탈옥(Jailbreak)하는 등 다양한 해킹 기술이 등장하고 있다.In addition, in recent years, various hacking technologies such as rooting or jailbreaking a smartphone or a tablet PC have emerged in order to illegally use an application.
따라서, 어플리케이션의 위조나 변조를 방지할 수 있고, 휴대용 기기의 해킹을 통해 불법적으로 어플리케이션을 사용하는 것을 방지할 수 있는 기법에 대한 연구가 필요하다.Therefore, there is a need for a technique that can prevent forgery or tampering of an application and prevent illegal use of the application through hacking of a portable device.
본 발명의 실시예들은 클라이언트 단말이 어플리케이션을 실행하고자 할 때, 상기 클라이언트 단말로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시(hash) 값을 수신하여 상기 수신된 해시 값이 기 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스(access)를 허가함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지할 수 있도록 한다.In an embodiment of the present invention, when a client terminal intends to execute an application, the client terminal receives a predetermined hash value for inputting a data code value constituting the application from the client terminal and stores the received hash value in advance. By granting access for the execution of the application only if it matches a hash value that is intended, it is possible to prevent a forged or forged application from being used.
본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치는 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시(hash) 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장하는 저장부, 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스(access) 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리(library)에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 해시 값 요청부, 상기 클라이언트 단말로부터 상기 해시 값을 수신하는 해시 값 수신부, 상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 판단부 및 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청하는 액세스 요청부를 포함한다.When the client terminal downloads and stores an application from an application providing server, the apparatus for preventing forgery and alteration of an application according to an embodiment of the present invention inputs information of an application downloaded by the client terminal and a data code value constituting the application. A storage unit for storing a plurality of hash values calculated based on a plurality of hash functions in a database, an access associated with execution of the application stored in the client terminal from the client terminal to the application providing server; When a request is transmitted, N (N) among the plurality of hash functions included in a user library stored in the client terminal by inputting a data code value constituting the application to the client terminal. A hash value request unit for requesting a hash value calculated based on a second hash function, a hash value receiver for receiving the hash value from the client terminal, and if the hash value is received from the client terminal, the received hash value A determining unit determining whether or not the N-th hash value among the plurality of hash values stored in the database is identical, and when it is determined that the received hash value and the N-th hash value coincide with each other, And an access request unit for requesting permission of access associated with execution of the application of the client terminal.
본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법은 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장하는 단계, 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 단계, 상기 클라이언트 단말로부터 상기 해시 값을 수신하는 단계, 상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 단계 및 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청하는 단계를 포함한다.In the method of preventing application forgery and alteration according to an embodiment of the present invention, when a client terminal downloads and stores an application from an application providing server, the client terminal inputs information of the downloaded application and data code values constituting the application. Storing a plurality of hash values calculated based on a plurality of hash functions in a database, and when an access request associated with the execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, the client N (N is a natural number) hash of the plurality of hash functions included in the user library stored in the client terminal by inputting a data code value constituting the application to the terminal. Requesting a hash value calculated based on a function, receiving the hash value from the client terminal, and when the hash value is received from the client terminal, the received hash value and a plurality of stored in the database. Determining whether or not the N-th hash value among the hash values coincides, and when it is determined that the received hash value and the N-th hash value coincide with each other, executing, by the application providing server, the application of the client terminal; Requesting permission of the associated access.
본 발명의 실시예들은 클라이언트 단말이 어플리케이션을 실행하고자 할 때, 상기 클라이언트 단말로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시(hash) 값을 수신하여 상기 수신된 해시 값이 기 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스(access)를 허가함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지할 수 있다.In an embodiment of the present invention, when a client terminal intends to execute an application, the client terminal receives a predetermined hash value for inputting a data code value constituting the application from the client terminal and stores the received hash value in advance. By granting access for the execution of the application only when it matches the hash value, it is possible to prevent the forged or forged application from being used.
도 1은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템을 개략적으로 도시한 시스템 개념도이다.
도 2는 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치의 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법을 도시한 순서도이다.1 is a system conceptual diagram schematically showing an application forgery and alteration prevention system according to an embodiment of the present invention.
2 is a diagram illustrating a structure of an application forgery and alteration prevention apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a method for preventing forgery of an application according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템을 개략적으로 도시한 시스템 개념도이다.1 is a system conceptual diagram schematically showing an application forgery and alteration prevention system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템은 어플리케이션 위변조 방지 장치(110), 어플리케이션 제공 서버(120) 및 클라이언트 단말(130)로 구성될 수 있다.Referring to FIG. 1, an application forgery and alteration prevention system according to an embodiment of the present invention may be composed of an application forgery and
우선, 도 1을 참조하여 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템의 동작을 설명하기에 앞서, 어플리케이션 제공 서버(120)와 클라이언트 단말(130)에 대해 간략히 설명하기로 한다.First, the
먼저, 어플리케이션 제공 서버(120)는 클라이언트 단말(130)에서 사용 가능한 어플리케이션을 제공하고, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 다운로드 받은 어플리케이션을 실행시키면, 클라이언트 단말(130)로 어플리케이션의 실행과 연관된 다양한 콘텐츠를 제공하는데 사용될 수 있다.First, the
예컨대, 어플리케이션 제공 서버(120)는 금융 기관에서 운영하는 금융 어플리케이션 제공 서버가 될 수 있고, 이 경우, 어플리케이션 제공 서버(120)는 클라이언트 단말(130)로 온라인 금융 서비스와 관련된 어플리케이션을 제공할 수 있다.For example, the
이때, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 온라인 금융 서비스와 관련된 어플리케이션을 다운로드 받아 실행시키면, 어플리케이션 제공 서버(120)는 클라이언트 단말(130)로 계좌 정보나 계좌 잔액 정보 등과 같은 상기 온라인 금융 서비스와 관련된 어플리케이션의 실행과 연관된 다양한 콘텐츠를 제공할 수 있다.In this case, when the
그리고, 클라이언트 단말(130)은 데스크탑 PC, 모바일 단말, PDA, 노트북, 태블릿 PC 등 어플리케이션 제공 서버(120)에 접속하여 어플리케이션을 다운로드 받을 수 있고, 상기 다운로드 받은 어플리케이션을 실행할 수 있는 마이크로프로세서 기반의 장치를 기반으로 구현될 수 있다.In addition, the
이하에서는 도 1에 도시된 어플리케이션 위변조 방지 시스템의 동작에 대해 상세히 설명하기로 한다.Hereinafter, the operation of the application forgery and alteration prevention system shown in FIG. 1 will be described in detail.
먼저, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)에 접속하여 소정의 어플리케이션을 다운로드하여 저장하면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 다운로드한 어플리케이션에 대한 정보를 어플리케이션 제공 서버(120)로부터 수신하여 데이터베이스 상에 저장할 수 있다.First, when the
이때, 어플리케이션 위변조 방지 장치(110)는 선정된(predetermined) 복수의 해시(hash) 함수들을 저장하고 있는데, 어플리케이션 제공 서버(120)로부터 클라이언트 단말(130)이 다운로드한 상기 어플리케이션에 대한 정보가 수신되면, 어플리케이션 위변조 방지 장치(110)는 상기 어플리케이션에 대한 정보를 기초로 상기 어플리케이션을 구성하는 데이터 코드 값을 확인할 수 있다.In this case, the application forgery and
여기서, 상기 어플리케이션을 구성하는 데이터 코드 값이란, 상기 어플리케이션을 구성하는 데이터를 비트열 등으로 구성한 데이터 코드 값을 의미한다.Here, the data code value constituting the application means a data code value constituting the data constituting the application in a bit string or the like.
예컨대, 상기 어플리케이션의 데이터 크기가 1Byte인 경우, 상기 어플리케이션을 구성하는 데이터 코드 값은 상기 1Byte의 데이터를 '00110001'와 같은 비트열 등으로 구성한 데이터 코드 값이 될 수 있다.For example, when the data size of the application is 1 byte, the data code value constituting the application may be a data code value in which the data of 1 byte is composed of a bit string such as '00110001'.
어플리케이션 위변조 방지 장치(110)는 상기 어플리케이션을 구성하는 데이터 코드 값의 확인을 완료하면, 상기 복수의 해시 함수들에 대해 상기 확인된 데이터 코드 값을 입력으로 넣어서 복수의 해시 값들을 연산한 후 상기 데이터베이스에 저장할 수 있다.When the application forgery and
예컨대, 어플리케이션 위변조 방지 장치(110)가 저장하고 있는 복수의 해시 함수들을 'H1(x), H2(x), ..., Hk(x)'라고 하고, 상기 확인된 데이터 코드 값을 'Ic'라고 하는 경우, 어플리케이션 위변조 방지 장치(110)는 상기 확인된 데이터 코드 값 'Ic'를 상기 복수의 해시 함수들 'H1(x), H2(x), ..., Hk(x)'에 입력으로 인가하여 복수의 해시 값들인 'H1, H2, ..., Hk'을 연산한 후 상기 연산된 복수의 해시 값들인 'H1, H2, ..., Hk'을 상기 데이터베이스에 저장할 수 있다.For example, a plurality of hash functions stored in the application forgery and
여기서, 해시 함수란 임의의 길이의 비트열을 고정된 길이의 출력 값인 해시 코드로 압축하여 출력할 수 있는 일방향 함수(one-way function)로, 다양한 길이의 입력을 고정된 짧은 길이의 출력으로 변환하며, 데이터의 무결성 검증이나 메시지 인증 등에 사용되는 보안 알고리즘인 해시 알고리즘에서 사용되는 함수를 의미한다.Here, the hash function is a one-way function that compresses and outputs a bit string of arbitrary length into a hash code, which is a fixed length output value, and converts inputs of various lengths into fixed short length outputs. It is a function used in the hash algorithm, which is a security algorithm used for data integrity verification or message authentication.
이때, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 상기 복수의 해시 값들에 대한 연산을 완료하면, 상기 복수의 해시 값들의 저장 순서를 랜덤(Random)하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있다.In this case, according to an embodiment of the present invention, when the application
예컨대, 상기 복수의 해시 값들이 'H1, H2, ..., Hk'인 경우, 어플리케이션 위변조 방지 장치(110)는 상기 복수의 해시 값들의 저장 순서를 'H4, H1, Hk, ..., H2'와 같이 랜덤하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있다.For example, when the plurality of hash values are 'H 1 , H 2 ,..., H k ', the application forgery and
이렇게, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 어플리케이션을 다운로드하여 저장하면, 어플리케이션 위변조 방지 장치(110)는 상기 어플리케이션에 대한 정보와 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있다.As such, when the
이때, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 상기 어플리케이션을 다운로드할 때, 어플리케이션 제공 서버(120)가 저장하고 있는 상기 복수의 해시 함수들이 포함된 사용자 라이브러리(library)를 구성한 후 이를 클라이언트 단말(130)로 전송할 수 있다.At this time, according to an embodiment of the present invention, the application forgery and
이때, 어플리케이션 위변조 방지 장치(110)는 상기 데이터베이스 상에 상기 복수의 해시 값들이 저장된 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 클라이언트 단말(130)로 전송할 수 있다.In this case, the application forgery and
예컨대, 어플리케이션 위변조 방지 장치(110)는 상기 데이터베이스 상에 상기 복수의 해시 값들을 'H4, H1, Hk, ..., H2' 순서로 저장한 경우, 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 상기 복수의 해시 값들의 저장 순서에 대응하여 'H4(x), H1(x), Hk(x), ..., H2(x)' 순서로 결정할 수 있다.For example, the application forgery and
이때, 어플리케이션 위변조 방지 장치(110)는 상기 데이터베이스 상에 저장된 상기 복수의 해시 값들 'H4, H1, Hk, ..., H2'을 연산하기 위해 사용된 복수의 해시 함수들 'H4(x), H1(x), Hk(x), ..., H2(x)'를 참조하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 상기 복수의 해시 값들의 저장 순서에 대응하여 'H4(x), H1(x), Hk(x), ..., H2(x)' 순서로 결정할 수 있다.At this time, the application forgery and
다시 말해서, 어플리케이션 위변조 방지 장치(110)는 'H4'를 연산하기 위해 'H4(x)'라는 해시 함수를 이용하였으므로, 상기 사용자 라이브러리에 'H4'에 대응되는 순서로 'H4(x)'라는 해시 함수를 포함시키기 위해, 'H4'를 연산하기 위해 사용된 'H4(x)'라는 해시 함수를 참조하여 상기 사용자 라이브러리 상에 'H4'에 대응되는 순서로 'H4(x)'라는 해시 함수를 포함시킬 수 있다.In other words, the application forgery and
이렇게 어플리케이션 위변조 방지 장치(110)가 클라이언트 단말(130)로 상기 사용자 라이브러리를 전송하면, 클라이언트 단말(130)은 어플리케이션 제공 서버(120)로부터 상기 어플리케이션을 다운로드함과 동시에 어플리케이션 위변조 방지 장치(110)로부터 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 수신하여 저장할 수 있다.When the application forgery and
클라이언트 단말(130)이 상기 어플리케이션을 다운로드한 이후, 클라이언트 단말(130)의 사용자가 상기 어플리케이션을 실행시키면, 클라이언트 단말(130)은 어플리케이션 제공 서버(120)로 클라이언트 단말(130)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스(access) 요청을 전송한다.After the
예컨대, 클라이언트 단말(130)의 사용자가 어플리케이션 제공 서버(120)로부터 온라인 금융 서비스와 관련된 어플리케이션을 다운로드한 후 상기 어플리케이션을 실행시키면, 클라이언트 단말(130)은 상기 어플리케이션을 통해 계좌 조회나 계좌 이체 등을 수행하기 위해 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청을 전송할 수 있다.For example, when a user of the
이렇게, 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 클라이언트 단말(130)에 저장되어 있는 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리 상에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청할 수 있다.As such, when the access request associated with the execution of the application stored in the
이때, 클라이언트 단말(130)은 어플리케이션 위변조 방지 장치(110)로부터 상기 해시 값에 대한 요청이 수신되면, 상기 어플리케이션을 구성하는 데이터 코드 값을 확인할 수 있다.In this case, when the request for the hash value is received from the application forgery and
그리고 나서, 클라이언트 단말(130)은 어플리케이션 제공 서버(120)로부터 상기 어플리케이션을 다운로드할 때 어플리케이션 위변조 방지 장치(110)로부터 수신한 사용자 라이브러리를 참조하여 상기 사용자 라이브러리 상에 포함된 상기 복수의 해시 함수들 중 어플리케이션 위변조 방지 장치(110)가 요청한 N번째 해시 함수에 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 넣어서 해시 값을 연산할 수 있다.Then, the
예컨대, 상기 어플리케이션을 구성하는 데이터 코드 값이 'Ic'이고, 상기 N번째 해시 함수가 'HN(x)'인 경우, 클라이언트 단말(130)은 상기 사용자 라이브러리에 포함되어 있는 복수의 해시 함수들 중 상기 N번째 해시 함수인 'HN(x)'에 상기 데이터 코드 값 'Ic'을 입력으로 인가하여 'HN'이라는 해시 값을 연산할 수 있다.For example, when a data code value constituting the application is 'I c ' and the N th hash function is 'H N (x)', the
이렇게, 클라이언트 단말(130)이 상기 해시 값의 연산을 완료하면, 클라이언트 단말(130)은 상기 연산된 해시 값 'HN'을 어플리케이션 위변조 방지 장치(110)로 전송할 수 있다.As such, when the
이때, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 상기 해시 값 'HN'이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 복수의 해시 값들 중 N번째로 저장되어 있는 해시 값 간의 일치 여부를 판단할 수 있다.In this case, when the hash value 'H N ' is received from the
만약, 클라이언트 단말(130)로부터 수신된 해시 값 'HN'와 상기 데이터베이스에 N번째로 저장되어 있는 해시 값이 서로 일치하는 것으로 판단되면, 어플리케이션 위변조 방지 장치(110)는 어플리케이션 제공 서버(120)에 대해, 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청할 수 있다.If it is determined that the hash value 'H N ' received from the
하지만, 클라이언트 단말(130)로부터 수신된 해시 값 'HN'과 상기 데이터베이스에 N번째로 저장되어 있는 해시 값이 서로 일치하지 않는 것으로 판단되면, 어플리케이션 위변조 방지 장치(110)는 어플리케이션 제공 서버(120)에 대해, 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.However, if it is determined that the hash value 'H N ' received from the
이때, 어플리케이션 제공 서버(120)는 어플리케이션 위변조 방지 장치(110)로부터 상기 액세스의 허가 요청이 수신된 경우, 클라이언트 단말(130)의 사용자가 상기 어플리케이션을 사용할 수 있도록 상기 어플리케이션의 실행과 연관된 액세스를 허가하고, 어플리케이션 위변조 방지 장치(110)로부터 상기 액세스의 차단 요청이 수신된 경우, 클라이언트 단말(130)의 사용자가 상기 어플리케이션을 사용할 수 없도록 상기 어플리케이션의 실행과 연관된 액세스를 차단할 수 있다.In this case, when the request for permission to access is received from the application forgery and
결국, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 어플리케이션을 실행하고자 할 때, 클라이언트 단말(130)로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시 값을 수신하여 상기 수신된 해시 값이 데이터베이스에 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스를 허가함으로써, 위조되거나 변조된 어플리케이션이 클라이언트 단말(130)에서 사용되는 것을 방지할 수 있다.As a result, the apparatus for preventing forgery and alteration of an application according to an embodiment of the present invention, when the
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(130)로 N번째 해시 함수를 기초로 연산된 해시 값을 요청하기 전에, 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.According to an embodiment of the present invention, the application forgery and
보통, 어플리케이션 위변조 방지 장치(110)의 관리자는 어플리케이션 위변조 방지를 위한 효율을 높이기 위해 주기적으로 어플리케이션 위변조 방지 장치(110)에 저장되어 있는 복수의 해시 함수들의 종류를 변경하거나 새로운 해시 함수를 추가할 수 있다.In general, an administrator of the application forgery and
이때, 어플리케이션 위변조 방지 장치(110)는 어플리케이션 위변조 방지 장치(110)에 저장되어 있는 복수의 해시 함수들의 종류가 변경되거나 새로운 해시 함수가 추가되면, 복수의 해시 값들을 다시 연산하여 상기 데이터베이스 상에 재저장할 수 있다.In this case, when the type of a plurality of hash functions stored in the application
이 경우, 어플리케이션 위변조 방지 장치(110)의 관리자는 클라이언트 단말(130)로부터 수신한 해시 값과 어플리케이션 위변조 방지 장치(110)의 데이터베이스에 저장되어 있는 해시 값 간의 비교를 위해 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리에 대한 업데이트를 수행해 주어야 할 필요가 있다.In this case, the manager of the application forgery and
따라서, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 어플리케이션을 실행함에 따라 클라이언트 단말(130)에서 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 그 때마다 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리의 버전을 확인하여 최신 버전이 아닌 경우, 업데이트를 수행할 수 있다.Therefore, the application forgery and
또한, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 소정의 주기 간격으로 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리의 버전을 확인하여 상기 사용자 라이브러리에 대한 업데이트를 수행할 수도 있다.In addition, according to an embodiment of the present invention, the application forgery and
이때, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장할 수 있다.In this case, when the application forgery and
예컨대, 어플리케이션 위변조 방지 장치(110)의 데이터베이스 상에 상기 복수의 해시 값들이 'H4, H1, Hk, ..., H2' 순서로 저장되어 있는 경우, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 복수의 해시 값들의 저장 순서를 'H5, H3, H2, ..., Hk'와 같이 랜덤하게 변경하여 상기 데이터베이스 상에 재저장할 수 있다.For example, when the plurality of hash values are stored in the order of 'H 4 , H 1 , H k , ..., H 2 ' on the database of the application forgery and
그리고 나서, 어플리케이션 위변조 방지 장치(110)는 상기 복수의 해시 값들의 변경된 저장 순서에 대응하여 상기 업데이트될 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.Then, the application forgery and
다시 말해서, 어플리케이션 위변조 방지 장치(110)는 상기 업데이트될 사용자 라이브러리 상에 상기 복수의 해시 함수들이 'H5(x), H3(x), H2(x), ..., Hk(x)' 순서로 포함되도록 순서를 변경한 후 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.In other words, the application forgery and
결국, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(110)는 복수의 해시 값들의 저장 순서를 랜덤하게 결정하여 어플리케이션 위변조 방지 장치(110)의 데이터베이스 상에 저장하고, 상기 랜덤하게 결정된 저장 순서에 대응하여 클라이언트 단말(130)에 제공할 사용자 라이브러리에 포함될 복수의 해시 함수들의 순서를 결정함으로써, 추후 클라이언트 단말(130)로부터 수신할 N번째 해시 값의 종류를 미리 예상하지 못하게 하여 보안을 강화할 수 있고, 이와 더불어 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리에 대한 업데이트가 수행될 때마다, 상기 데이터베이스 상에 저장되어 있는 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 재저장한 후 상기 변경된 저장 순서에 대응하여 상기 업데이트될 사용자 라이브러리에 포함될 복수의 해시 함수들의 순서를 변경함으로써, 추후 클라이언트 단말(130)로부터 수신할 N번째 해시 값의 종류에 대한 예상을 원천적으로 차단하여 보안을 더욱 강화할 수 있다.As a result, the application forgery and
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(130)로부터 N번째 해시 값을 수신하여 상기 어플리케이션이 위변조된 어플리케이션인지 여부를 판단할 수도 있지만, 클라이언트 단말(130)에 대해, 클라이언트 단말(130)의 해킹시 생성되는 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청할 수 있다.According to an embodiment of the present invention, the application forgery and
보통, 클라이언트 단말(130)이 루팅(Rooting)되거나 탈옥(Jailbreak)되는 등과 같이, 해킹이 수행되면, 클라이언트 단말(130)에 '/sbin/su', '/system/bin/su', '/Application/Cydia.app', '/Application/RockApp.app' 등과 같은 소정의 파일이 생성될 수 있다.Usually, when hacking is performed, such as when the
이에, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에서 상기 어플리케이션이 실행됨에 따라, 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(130)에 대해, 클라이언트 단말(130)의 해킹시 생성되는 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청할 수 있다.Accordingly, when the application is executed in the
이때, 클라이언트 단말(130)은 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼(platform) 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 그 결과를 어플리케이션 위변조 방지 장치(110)로 전송할 수 있다.In this case, when the
그리고 나서, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 의해 클라이언트 단말(130) 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 어플리케이션 제공 서버(120)에 대해, 클라이언트 단말(130)의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.Then, the application forgery and
결국, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 연산된 해시 값을 수신하여 상기 수신된 해시 값을 기초로 위변조된 어플리케이션의 실행을 위한 액세스를 방지할 수 있을 뿐만 아니라, 클라이언트 단말(130)에 클라이언트 단말(130)의 해킹시 생성되는 소정의 파일이 존재하는지 여부를 확인한 후 클라이언트 단말(130)에 상기 파일이 존재하는 것으로 확인되면, 상기 어플리케이션의 실행을 위한 액세스를 차단함으로써, 어플리케이션의 불법적 사용을 방지할 수 있다.As a result, the application forgery and
도 2는 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치의 구조를 도시한 도면이다.2 is a diagram illustrating a structure of an application forgery and alteration prevention apparatus according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(210)는 저장부(211), 해시 값 요청부(212), 해시 값 수신부(213), 판단부(214) 및 액세스 요청부(215)를 포함한다.2, the application forgery and
저장부(211)는 클라이언트 단말(230)이 어플리케이션 제공 서버(220)로부터 어플리케이션을 다운로드하여 저장하면, 클라이언트 단말(230)이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스(미도시)에 저장한다.When the
이때, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(210)는 라이브러리 전송부(216)를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, the application forgery and
라이브러리 전송부(216)는 클라이언트 단말(230)이 어플리케이션 제공 서버(220)로부터 상기 어플리케이션을 다운로드하여 저장하면, 클라이언트 단말(230)로 상기 복수의 해시 함수들이 포함된 사용자 라이브러리를 전송한다.When the
이때, 본 발명의 일실시예에 따르면, 저장부(211)는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있고, 라이브러리 전송부(216)는 상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송할 수 있다.In this case, according to an embodiment of the present invention, the
해시 값 요청부(212)는 클라이언트 단말(230)로부터 어플리케이션 제공 서버(220)로 클라이언트 단말(230)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(230)에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청한다.When the hash
해시 값 수신부(213)는 클라이언트 단말(230)로부터 상기 해시 값을 수신한다.The
판단부(214)는 클라이언트 단말(230)로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단한다.When the hash value is received from the
액세스 요청부(215)는 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 어플리케이션 제공 서버(220)에 대해, 클라이언트 단말(230)의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청한다.If it is determined that the received hash value and the N-th hash value coincide with each other, the
이때, 본 발명의 일실시예에 따르면, 액세스 요청부(215)는 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 어플리케이션 제공 서버(220)에 대해, 클라이언트 단말(230)의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.In this case, according to an embodiment of the present invention, if it is determined that the received hash value and the N-th hash value do not coincide with each other, the
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(210)는 라이브러리 업데이트부(217)를 더 포함할 수 있다.According to an embodiment of the present invention, the application forgery and
라이브러리 업데이트부(217)는 클라이언트 단말(230)로부터 어플리케이션 제공 서버(220)로 클라이언트 단말(230)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행한다.The
이때, 본 발명의 일실시예에 따르면, 저장부(211)는 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하고, 라이브러리 업데이트부(217)는 상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.In this case, according to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(210)는 확인 요청부(218)를 더 포함할 수 있다.According to an embodiment of the present invention, the application forgery and
확인 요청부(218)는 클라이언트 단말(230)로부터 어플리케이션 제공 서버(220)로 클라이언트 단말(230)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(230)에 대해, 클라이언트 단말(230)의 해킹시 생성되는 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청한다.When the request for
이때, 클라이언트 단말(230)은 확인 요청부(218)로부터 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행할 수 있다. In this case, when the
이때, 액세스 요청부(215)는 클라이언트 단말(230)에 의해 클라이언트 단말(230) 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 어플리케이션 제공 서버(220)에 대해, 클라이언트 단말(230)의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.In this case, when it is determined by the
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(210)에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(210)는 도 1을 이용하여 설명한 어플리케이션 위변조 방지 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.The application forgery and
도 3은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법을 도시한 순서도이다.3 is a flowchart illustrating a method for preventing forgery of an application according to an embodiment of the present invention.
단계(S310)에서는 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장한다.In step S310, when the client terminal downloads and stores the application from the application providing server, the client terminal calculates a plurality of hash functions based on the information of the downloaded application and data code values constituting the application. Stores multiple hash values in a database.
이때, 본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S310)이후에 상기 클라이언트 단말이 상기 어플리케이션 제공 서버로부터 상기 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말로 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 전송하는 단계를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, in the method for preventing forgery of an application, after the client terminal downloads and stores the application from the application providing server after step S310, the plurality of hash functions are transmitted to the client terminal. The method may further include transmitting the included user library.
이때, 본 발명의 일실시예에 따르면, 단계(S310)에서는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있고, 상기 사용자 라이브러리를 전송하는 단계는 상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송할 수 있다.In this case, according to an embodiment of the present invention, in step S310, the storage order of the plurality of hash values may be randomly determined and the plurality of hash values may be stored in the database according to the determined storage order. The transmitting of the library may determine the order of the plurality of hash functions to be included in the user library in response to the determined storage order, and then transmit the user library to the client terminal.
단계(S320)에서는 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청한다.In step S320, when the access request associated with the execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, the data code value constituting the application is input to the client terminal. A hash value calculated based on an N (N is a natural number) hash function among the plurality of hash functions included in the user library stored in the client terminal is requested.
단계(S330)에서는 상기 클라이언트 단말로부터 상기 해시 값을 수신한다.In step S330, the hash value is received from the client terminal.
단계(S340)에서는 상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단한다.In operation S340, when the hash value is received from the client terminal, it is determined whether the received hash value coincides with an Nth hash value among the plurality of hash values stored in the database.
만약, 단계(S350)에서 단계(S340)에 대한 판단을 수행한 결과, 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 단계(S360)에서 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청한다.If it is determined in step S350 that the received hash value and the Nth hash value coincide with each other as a result of the determination of step S340, in step S360, the application providing server, Request permission to access associated with the execution of the application of the client terminal.
하지만, 단계(S350)에서 단계(S340)에 대한 판단을 수행한 결과, 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 단계(S370)에서 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.However, if it is determined in step S350 that the received hash value and the N-th hash value do not coincide with each other, and in step S370, the application providing server is determined. The blocking of access associated with execution of the application of the client terminal may be requested.
본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S320)이전에 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, the method for preventing forgery of an application may include transmitting an access request associated with execution of the application stored in the client terminal from the client terminal to the application providing server before step S320. Checking whether the version of the user library stored in the client terminal is the latest version, and if it is determined that the version of the user library is not the latest version, performing an update to the user library stored in the client terminal It may further include.
이때, 본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S320)이전에 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하는 단계를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, in the method for preventing forgery of an application, when an update to the user library stored in the client terminal is performed before step S320, the plurality of stored in the database is stored. The method may further include randomly changing a storage order of hash values and restoring the plurality of hash values in the database according to the changed storage order.
이때, 상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계는 상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.In this case, the updating of the user library may include updating the user library after changing the order of the plurality of hash functions to be included in the user library in response to the changed storage order.
본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S310)이후에 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 클라이언트 단말의 해킹시 생성되는 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, the method for preventing the forgery of the application after the access request associated with the execution of the application stored in the client terminal from the client terminal to the application providing server after the step (S310), the The method may further include requesting, from the client terminal, whether the at least one predetermined file generated when the client terminal is hacked.
이때, 상기 클라이언트 단말은 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행할 수 있다.In this case, the client terminal detects the presence or absence of the at least one selected file located on the platform on which the application is executed when the confirmation request for the existence of the at least one selected file is received. You can check the existence of the selected file.
그리고 나서, 상기 어플리케이션 위변조 방지 방법은 상기 클라이언트 단말에 의해 상기 클라이언트 단말 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청하는 단계를 더 포함할 수 있다.Then, the method for preventing the forgery of the application is associated with the execution of the application of the client terminal, with respect to the application providing server, if the at least one selected file exists in the client terminal by the client terminal. The method may further include requesting blocking of access.
이상, 도 3을 참조하여 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법은 도 1과 도 2를 이용하여 설명한 어플리케이션 위변조 방지 장치(110, 210)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, the method for preventing forgery of an application according to an embodiment of the present invention has been described with reference to FIG. 3. Here, the method for preventing the forgery of the application according to an embodiment of the present invention may correspond to the configuration of the operation of the application forgery and
본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method for preventing forgery and alteration of an application according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described by specific embodiments such as specific components and the like. For those skilled in the art, various modifications and variations are possible from these descriptions.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .
110: 어플리케이션 위변조 방지 장치 120: 어플리케이션 제공 서버
130: 클라이언트 단말
210: 어플리케이션 위변조 방지 장치
211: 저장부 212: 해시 값 요청부
213: 해시 값 수신부 214: 판단부
215: 액세스 요청부 216: 라이브러리 전송부
217: 라이브러리 업데이트부 218: 확인 요청부
220: 어플리케이션 제공 서버 230: 클라이언트 단말110: application forgery and alteration prevention device 120: application providing server
130:
210: application forgery and alteration prevention device
211: storage unit 212: hash value request unit
213: hash value receiver 214: determination unit
215: access request unit 216: library transfer unit
217: library update unit 218: confirmation request unit
220: application providing server 230: client terminal
Claims (13)
상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스(access) 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리(library)에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 해시 값 요청부;
상기 클라이언트 단말로부터 상기 해시 값을 수신하는 해시 값 수신부;
상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 판단부; 및
상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 허가를 요청하는 액세스 요청부
를 포함하는 어플리케이션 위변조 방지 장치.When a client terminal downloads an application from an application providing server and stores the application, the client terminal receives a plurality of hash functions calculated based on a plurality of hash functions by inputting information of the downloaded application and data code values constituting the application. A storage unit to store hash values of the database in a database;
When an access request for execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, the client terminal inputs a data code value constituting the application. A hash value request unit for requesting a hash value calculated based on an N (N is a natural number) hash function among a plurality of hash functions included in a user library stored in a client terminal;
A hash value receiver configured to receive the hash value from the client terminal;
A determination unit determining whether a match is made between the received hash value and an Nth hash value among the plurality of hash values stored in the database when the hash value is received from the client terminal; And
If it is determined that the received hash value and the N-th hash value coincide with each other, the access request unit requests the application providing server for permission to access the execution of the application of the client terminal.
Application forgery and alteration prevention device comprising a.
상기 액세스 요청부는
상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하는 어플리케이션 위변조 방지 장치.The method of claim 1,
The access request unit
And if it is determined that the received hash value and the Nth hash value do not coincide with each other, requesting the application providing server to block access for execution of the application of the client terminal.
상기 클라이언트 단말이 상기 어플리케이션 제공 서버로부터 상기 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말로 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 전송하는 라이브러리 전송부; 및
상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행하는 라이브러리 업데이트부
를 더 포함하는 어플리케이션 위변조 방지 장치.The method of claim 1,
A library transmitter configured to transmit the user library including the plurality of hash functions to the client terminal when the client terminal downloads and stores the application from the application providing server; And
When the access request for execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, the user is checked whether the version of the user library stored in the client terminal is the latest version. If it is determined that the version of the library is not the latest version, the library update unit for updating the user library stored in the client terminal
Application forgery and alteration prevention device further comprising.
상기 저장부는
상기 복수의 해시 값들의 저장 순서를 랜덤(Random)하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장하고,
상기 라이브러리 전송부는
상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송하는 어플리케이션 위변조 방지 장치.The method of claim 3,
The storage unit
Randomly determining a storage order of the plurality of hash values to store the plurality of hash values in the database according to the determined storage order,
The library transmission unit
The apparatus for preventing forgery and application for transmitting the user library to the client terminal after determining the order of the plurality of hash functions to be included in the user library corresponding to the determined storage order.
상기 저장부는
상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하고,
상기 라이브러리 업데이트부는
상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행하는 어플리케이션 위변조 방지 장치.5. The method of claim 4,
The storage unit
When the update of the user library stored in the client terminal is performed, the storage order of the plurality of hash values stored in the database is randomly changed to the plurality of hash values according to the changed storage order. Restore it to the database,
The library update unit
And an update to the user library after changing the order of the plurality of hash functions to be included in the user library in response to the changed storage order.
상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 클라이언트 단말의 해킹시 생성되는 적어도 하나의 선정된(predetermined) 파일의 존재 여부에 대한 확인을 요청하는 확인 요청부
를 더 포함하고,
상기 액세스 요청부는
상기 클라이언트 단말에 의해 상기 클라이언트 단말 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하며,
상기 클라이언트 단말은
상기 확인 요청부로부터 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼(platform) 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행하는 어플리케이션 위변조 방지 장치.The method of claim 1,
When the access request for execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, at least one predetermined generated when the client terminal is hacked to the client terminal. Verification request unit requesting verification of the existence of a file
Further comprising:
The access request unit
When the client terminal determines that the at least one predetermined file exists in the client terminal, requesting the application providing server to block access for execution of the application of the client terminal,
The client terminal
When a confirmation request for the existence of the at least one selected file is received from the confirmation request unit, the presence or absence of the at least one selected file located on a platform on which the application is executed is detected. Application forgery and alteration prevention device for checking the existence of at least one selected file.
상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스(access) 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리(library)에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 단계;
상기 클라이언트 단말로부터 상기 해시 값을 수신하는 단계;
상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 단계; 및
상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 허가를 요청하는 단계
를 포함하는 어플리케이션 위변조 방지 방법.When a client terminal downloads an application from an application providing server and stores the application, the client terminal receives a plurality of hash functions calculated based on a plurality of hash functions by inputting information of the downloaded application and data code values constituting the application. Storing the hash values in the database;
When an access request for execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, the client terminal inputs a data code value constituting the application. Requesting a hash value calculated based on an N (N is a natural number) hash function among the plurality of hash functions included in a user library stored in a client terminal;
Receiving the hash value from the client terminal;
If the hash value is received from the client terminal, determining whether the received hash value coincides with an Nth hash value among the plurality of hash values stored in the database; And
If it is determined that the received hash value and the Nth hash value coincide with each other, requesting, to the application providing server, permission for access for execution of the application of the client terminal;
Application forgery prevention method comprising a.
상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하는 단계
를 더 포함하는 어플리케이션 위변조 방지 방법.The method of claim 7, wherein
If it is determined that the received hash value and the Nth hash value do not coincide with each other, requesting the application providing server to block access for execution of the application of the client terminal;
Application forgery prevention method further comprising a.
상기 클라이언트 단말이 상기 어플리케이션 제공 서버로부터 상기 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말로 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 전송하는 단계; 및
상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계
를 더 포함하는 어플리케이션 위변조 방지 방법.The method of claim 7, wherein
When the client terminal downloads the application from the application providing server and stores the application, transmitting the user library including the plurality of hash functions to the client terminal; And
When the access request for execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, the user is checked whether the version of the user library stored in the client terminal is the latest version. If it is determined that the version of the library is not the latest version, performing an update for the user library stored in the client terminal
Application forgery prevention method further comprising a.
상기 데이터베이스에 저장하는 단계는
상기 복수의 해시 값들의 저장 순서를 랜덤(Random)하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장하고,
상기 사용자 라이브러리를 전송하는 단계는
상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송하는 어플리케이션 위변조 방지 방법.10. The method of claim 9,
The step of storing in the database
Randomly determining a storage order of the plurality of hash values to store the plurality of hash values in the database according to the determined storage order,
The transmitting of the user library
And determining the order of the plurality of hash functions to be included in the user library in response to the determined storage order and transmitting the user library to the client terminal.
상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하는 단계
를 더 포함하고,
상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계는
상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행하는 어플리케이션 위변조 방지 방법.The method of claim 10,
When the update of the user library stored in the client terminal is performed, the storage order of the plurality of hash values stored in the database is randomly changed to the plurality of hash values according to the changed storage order. Steps to Resave to Database
Further comprising:
The step of updating the user library is
And updating the user library after changing the order of the plurality of hash functions to be included in the user library in response to the changed storage order.
상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 클라이언트 단말의 해킹시 생성되는 적어도 하나의 선정된(predetermined) 파일의 존재 여부에 대한 확인을 요청하는 단계; 및
상기 클라이언트 단말에 의해 상기 클라이언트 단말 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하는 단계
를 더 포함하고,
상기 클라이언트 단말은
상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼(platform) 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행하는 어플리케이션 위변조 방지 방법.The method of claim 7, wherein
When the access request for execution of the application stored in the client terminal is transmitted from the client terminal to the application providing server, at least one predetermined generated when the client terminal is hacked to the client terminal. Requesting confirmation of the existence of the file; And
When the client terminal determines that the at least one predetermined file exists in the client terminal, requesting the application providing server to block access for execution of the application of the client terminal.
Further comprising:
The client terminal
When a confirmation request for the existence of the at least one predetermined file is received, the presence or absence of the at least one predetermined file located on a platform on which the application is executed is detected and the at least one predetermined file is detected. How to prevent application forgery that checks for the existence of a file.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120095954A KR101273370B1 (en) | 2012-08-30 | 2012-08-30 | Application counterfeit prevention apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120095954A KR101273370B1 (en) | 2012-08-30 | 2012-08-30 | Application counterfeit prevention apparatus and method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101273370B1 true KR101273370B1 (en) | 2013-07-30 |
Family
ID=48996042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120095954A KR101273370B1 (en) | 2012-08-30 | 2012-08-30 | Application counterfeit prevention apparatus and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101273370B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016064040A1 (en) * | 2014-10-20 | 2016-04-28 | 숭실대학교 산학협력단 | User terminal using signature information to detect whether application program has been tampered and method for tamper detection using the user terminal |
KR20180060124A (en) * | 2016-11-28 | 2018-06-07 | (주) 세인트 시큐리티 | Method for Searching Malware Information Using Domain Name Server |
KR20210113840A (en) * | 2020-03-09 | 2021-09-17 | 엔에이치엔 주식회사 | The faking code of program detecting method and apparatus thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070111816A (en) * | 2006-05-19 | 2007-11-22 | 삼성전자주식회사 | Data output device and data output method for preventing counterfeit and falsification of the data |
KR100954758B1 (en) | 2009-07-29 | 2010-04-27 | 주식회사 코드원 | System and method for securing web application |
-
2012
- 2012-08-30 KR KR1020120095954A patent/KR101273370B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070111816A (en) * | 2006-05-19 | 2007-11-22 | 삼성전자주식회사 | Data output device and data output method for preventing counterfeit and falsification of the data |
KR100954758B1 (en) | 2009-07-29 | 2010-04-27 | 주식회사 코드원 | System and method for securing web application |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016064040A1 (en) * | 2014-10-20 | 2016-04-28 | 숭실대학교 산학협력단 | User terminal using signature information to detect whether application program has been tampered and method for tamper detection using the user terminal |
KR20180060124A (en) * | 2016-11-28 | 2018-06-07 | (주) 세인트 시큐리티 | Method for Searching Malware Information Using Domain Name Server |
KR101944809B1 (en) * | 2016-11-28 | 2019-02-01 | (주) 세인트 시큐리티 | Method for Searching Malware Information Using Domain Name Server |
KR20210113840A (en) * | 2020-03-09 | 2021-09-17 | 엔에이치엔 주식회사 | The faking code of program detecting method and apparatus thereof |
KR102337963B1 (en) | 2020-03-09 | 2021-12-10 | 엔에이치엔 주식회사 | The faking code of program detecting method and apparatus thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11127097B2 (en) | Method, apparatus, and system for copyright rights defense detection | |
US11669637B2 (en) | Decentralized token table generation | |
CN108334753B (en) | Pirate application verification method and distributed server node | |
US10007960B2 (en) | Electronic license management | |
US10019558B2 (en) | Controlling licensable features of software using access tokens | |
KR101731934B1 (en) | Fail-safe licensing for software applications | |
KR102008668B1 (en) | Security system and method for protecting personal information of file stored in external storage device | |
WO2015150391A1 (en) | Software protection | |
US9483636B2 (en) | Runtime application integrity protection | |
CN112257086B (en) | User privacy data protection method and electronic equipment | |
US20160330030A1 (en) | User Terminal For Detecting Forgery Of Application Program Based On Hash Value And Method Of Detecting Forgery Of Application Program Using The Same | |
CN104040552A (en) | Software modification for partial secure memory processing | |
JP7494205B2 (en) | Preventing the accidental transmission of copies of data records to the distributed ledger system | |
CN105612731A (en) | Roaming internet-accessible application state across trusted and untrusted platforms | |
KR101273370B1 (en) | Application counterfeit prevention apparatus and method | |
KR101642267B1 (en) | System for preventing forgery of application and method therefor | |
US11038918B1 (en) | Managing unpatched user devices | |
KR20110059363A (en) | Method for protecting application and method for executing application thereof | |
CN115840954A (en) | Privacy calculation method, device, system and storage medium | |
CN104796771A (en) | Control downloading method, system and downloading guiding module | |
EP3057020B1 (en) | User terminal and method for protecting core code using neighboring device of same | |
JP5947358B2 (en) | Authentication processing apparatus, method and program | |
KR101906484B1 (en) | Method for application security and system for executing the method | |
EP3057022B1 (en) | Mobile device and method for operating same | |
KR102410810B1 (en) | Method and system for processing extended cryptographic operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160609 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170601 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190604 Year of fee payment: 7 |