KR101273370B1 - 어플리케이션 위변조 방지 장치 및 방법 - Google Patents

어플리케이션 위변조 방지 장치 및 방법 Download PDF

Info

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
Application number
KR1020120095954A
Other languages
English (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 KR1020120095954A priority Critical patent/KR101273370B1/ko
Application granted granted Critical
Publication of KR101273370B1 publication Critical patent/KR101273370B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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
    • H04L63/123Applying 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

어플리케이션 위변조 방지 장치 및 방법이 개시된다. 본 발명의 실시예들은 클라이언트 단말이 어플리케이션을 실행하고자 할 때, 상기 클라이언트 단말로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시(hash) 값을 수신하여 상기 수신된 해시 값이 기 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스(access)를 허가함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지할 수 있는 기법에 대한 것이다.

Description

어플리케이션 위변조 방지 장치 및 방법{APPLICATION COUNTERFEIT PREVENTION APPARATUS AND METHOD}
본 발명의 실시예들은 클라이언트 단말에서 어플리케이션이 실행될 때, 상기 어플리케이션에 대한 위조나 변조 여부를 판별함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지할 수 있는 기술에 대한 것이다.
최근, 스마트 폰이나 태블릿 PC 등과 같은 휴대용 기기가 널리 보급되면서, 이러한 휴대용 기기에서 사용 가능한 다양한 어플리케이션에 대한 관심이 증가하고 있다.
스마트 폰이나 태블릿 PC 등과 같은 휴대용 기기를 사용하는 사용자는 자신의 휴대용 기기를 통해 소정의 어플리케이션 제공 서버에 접속하여 게임이나 온라인 금융 서비스 등과 같은 다양한 어플리케이션을 다운로드 받아 사용할 수 있다.
이렇게, 어플리케이션의 활용이 증가하면서, 어플리케이션을 불법으로 위조하거나 변조하여 사용하는 행위도 증가하고 있다.
어플리케이션이 불법으로 위변조되는 경우, 휴대용 기기 사용자의 개인 정보가 무방비로 노출될 수 있고, 어플리케이션 저작권이 침해되는 경우가 발생할 수 있다.
또한, 최근에는 어플리케이션을 불법으로 사용하기 위해, 스마트 폰이나 태블릿 PC 등을 루팅(Rooting)하거나 탈옥(Jailbreak)하는 등 다양한 해킹 기술이 등장하고 있다.
따라서, 어플리케이션의 위조나 변조를 방지할 수 있고, 휴대용 기기의 해킹을 통해 불법적으로 어플리케이션을 사용하는 것을 방지할 수 있는 기법에 대한 연구가 필요하다.
본 발명의 실시예들은 클라이언트 단말이 어플리케이션을 실행하고자 할 때, 상기 클라이언트 단말로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시(hash) 값을 수신하여 상기 수신된 해시 값이 기 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스(access)를 허가함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지할 수 있도록 한다.
본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치는 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시(hash) 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장하는 저장부, 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스(access) 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리(library)에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 해시 값 요청부, 상기 클라이언트 단말로부터 상기 해시 값을 수신하는 해시 값 수신부, 상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 판단부 및 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청하는 액세스 요청부를 포함한다.
본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법은 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장하는 단계, 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 단계, 상기 클라이언트 단말로부터 상기 해시 값을 수신하는 단계, 상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 단계 및 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청하는 단계를 포함한다.
본 발명의 실시예들은 클라이언트 단말이 어플리케이션을 실행하고자 할 때, 상기 클라이언트 단말로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시(hash) 값을 수신하여 상기 수신된 해시 값이 기 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스(access)를 허가함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지할 수 있다.
도 1은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템을 개략적으로 도시한 시스템 개념도이다.
도 2는 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치의 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템을 개략적으로 도시한 시스템 개념도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템은 어플리케이션 위변조 방지 장치(110), 어플리케이션 제공 서버(120) 및 클라이언트 단말(130)로 구성될 수 있다.
우선, 도 1을 참조하여 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 시스템의 동작을 설명하기에 앞서, 어플리케이션 제공 서버(120)와 클라이언트 단말(130)에 대해 간략히 설명하기로 한다.
먼저, 어플리케이션 제공 서버(120)는 클라이언트 단말(130)에서 사용 가능한 어플리케이션을 제공하고, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 다운로드 받은 어플리케이션을 실행시키면, 클라이언트 단말(130)로 어플리케이션의 실행과 연관된 다양한 콘텐츠를 제공하는데 사용될 수 있다.
예컨대, 어플리케이션 제공 서버(120)는 금융 기관에서 운영하는 금융 어플리케이션 제공 서버가 될 수 있고, 이 경우, 어플리케이션 제공 서버(120)는 클라이언트 단말(130)로 온라인 금융 서비스와 관련된 어플리케이션을 제공할 수 있다.
이때, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 온라인 금융 서비스와 관련된 어플리케이션을 다운로드 받아 실행시키면, 어플리케이션 제공 서버(120)는 클라이언트 단말(130)로 계좌 정보나 계좌 잔액 정보 등과 같은 상기 온라인 금융 서비스와 관련된 어플리케이션의 실행과 연관된 다양한 콘텐츠를 제공할 수 있다.
그리고, 클라이언트 단말(130)은 데스크탑 PC, 모바일 단말, PDA, 노트북, 태블릿 PC 등 어플리케이션 제공 서버(120)에 접속하여 어플리케이션을 다운로드 받을 수 있고, 상기 다운로드 받은 어플리케이션을 실행할 수 있는 마이크로프로세서 기반의 장치를 기반으로 구현될 수 있다.
이하에서는 도 1에 도시된 어플리케이션 위변조 방지 시스템의 동작에 대해 상세히 설명하기로 한다.
먼저, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)에 접속하여 소정의 어플리케이션을 다운로드하여 저장하면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 다운로드한 어플리케이션에 대한 정보를 어플리케이션 제공 서버(120)로부터 수신하여 데이터베이스 상에 저장할 수 있다.
이때, 어플리케이션 위변조 방지 장치(110)는 선정된(predetermined) 복수의 해시(hash) 함수들을 저장하고 있는데, 어플리케이션 제공 서버(120)로부터 클라이언트 단말(130)이 다운로드한 상기 어플리케이션에 대한 정보가 수신되면, 어플리케이션 위변조 방지 장치(110)는 상기 어플리케이션에 대한 정보를 기초로 상기 어플리케이션을 구성하는 데이터 코드 값을 확인할 수 있다.
여기서, 상기 어플리케이션을 구성하는 데이터 코드 값이란, 상기 어플리케이션을 구성하는 데이터를 비트열 등으로 구성한 데이터 코드 값을 의미한다.
예컨대, 상기 어플리케이션의 데이터 크기가 1Byte인 경우, 상기 어플리케이션을 구성하는 데이터 코드 값은 상기 1Byte의 데이터를 '00110001'와 같은 비트열 등으로 구성한 데이터 코드 값이 될 수 있다.
어플리케이션 위변조 방지 장치(110)는 상기 어플리케이션을 구성하는 데이터 코드 값의 확인을 완료하면, 상기 복수의 해시 함수들에 대해 상기 확인된 데이터 코드 값을 입력으로 넣어서 복수의 해시 값들을 연산한 후 상기 데이터베이스에 저장할 수 있다.
예컨대, 어플리케이션 위변조 방지 장치(110)가 저장하고 있는 복수의 해시 함수들을 'H1(x), H2(x), ..., Hk(x)'라고 하고, 상기 확인된 데이터 코드 값을 'Ic'라고 하는 경우, 어플리케이션 위변조 방지 장치(110)는 상기 확인된 데이터 코드 값 'Ic'를 상기 복수의 해시 함수들 'H1(x), H2(x), ..., Hk(x)'에 입력으로 인가하여 복수의 해시 값들인 'H1, H2, ..., Hk'을 연산한 후 상기 연산된 복수의 해시 값들인 'H1, H2, ..., Hk'을 상기 데이터베이스에 저장할 수 있다.
여기서, 해시 함수란 임의의 길이의 비트열을 고정된 길이의 출력 값인 해시 코드로 압축하여 출력할 수 있는 일방향 함수(one-way function)로, 다양한 길이의 입력을 고정된 짧은 길이의 출력으로 변환하며, 데이터의 무결성 검증이나 메시지 인증 등에 사용되는 보안 알고리즘인 해시 알고리즘에서 사용되는 함수를 의미한다.
이때, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 상기 복수의 해시 값들에 대한 연산을 완료하면, 상기 복수의 해시 값들의 저장 순서를 랜덤(Random)하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있다.
예컨대, 상기 복수의 해시 값들이 'H1, H2, ..., Hk'인 경우, 어플리케이션 위변조 방지 장치(110)는 상기 복수의 해시 값들의 저장 순서를 'H4, H1, Hk, ..., H2'와 같이 랜덤하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있다.
이렇게, 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 어플리케이션을 다운로드하여 저장하면, 어플리케이션 위변조 방지 장치(110)는 상기 어플리케이션에 대한 정보와 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있다.
이때, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 어플리케이션 제공 서버(120)로부터 상기 어플리케이션을 다운로드할 때, 어플리케이션 제공 서버(120)가 저장하고 있는 상기 복수의 해시 함수들이 포함된 사용자 라이브러리(library)를 구성한 후 이를 클라이언트 단말(130)로 전송할 수 있다.
이때, 어플리케이션 위변조 방지 장치(110)는 상기 데이터베이스 상에 상기 복수의 해시 값들이 저장된 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 클라이언트 단말(130)로 전송할 수 있다.
예컨대, 어플리케이션 위변조 방지 장치(110)는 상기 데이터베이스 상에 상기 복수의 해시 값들을 'H4, H1, Hk, ..., H2' 순서로 저장한 경우, 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 상기 복수의 해시 값들의 저장 순서에 대응하여 'H4(x), H1(x), Hk(x), ..., H2(x)' 순서로 결정할 수 있다.
이때, 어플리케이션 위변조 방지 장치(110)는 상기 데이터베이스 상에 저장된 상기 복수의 해시 값들 'H4, H1, Hk, ..., H2'을 연산하기 위해 사용된 복수의 해시 함수들 'H4(x), H1(x), Hk(x), ..., H2(x)'를 참조하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 상기 복수의 해시 값들의 저장 순서에 대응하여 'H4(x), H1(x), Hk(x), ..., H2(x)' 순서로 결정할 수 있다.
다시 말해서, 어플리케이션 위변조 방지 장치(110)는 'H4'를 연산하기 위해 'H4(x)'라는 해시 함수를 이용하였으므로, 상기 사용자 라이브러리에 'H4'에 대응되는 순서로 'H4(x)'라는 해시 함수를 포함시키기 위해, 'H4'를 연산하기 위해 사용된 'H4(x)'라는 해시 함수를 참조하여 상기 사용자 라이브러리 상에 'H4'에 대응되는 순서로 'H4(x)'라는 해시 함수를 포함시킬 수 있다.
이렇게 어플리케이션 위변조 방지 장치(110)가 클라이언트 단말(130)로 상기 사용자 라이브러리를 전송하면, 클라이언트 단말(130)은 어플리케이션 제공 서버(120)로부터 상기 어플리케이션을 다운로드함과 동시에 어플리케이션 위변조 방지 장치(110)로부터 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 수신하여 저장할 수 있다.
클라이언트 단말(130)이 상기 어플리케이션을 다운로드한 이후, 클라이언트 단말(130)의 사용자가 상기 어플리케이션을 실행시키면, 클라이언트 단말(130)은 어플리케이션 제공 서버(120)로 클라이언트 단말(130)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스(access) 요청을 전송한다.
예컨대, 클라이언트 단말(130)의 사용자가 어플리케이션 제공 서버(120)로부터 온라인 금융 서비스와 관련된 어플리케이션을 다운로드한 후 상기 어플리케이션을 실행시키면, 클라이언트 단말(130)은 상기 어플리케이션을 통해 계좌 조회나 계좌 이체 등을 수행하기 위해 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청을 전송할 수 있다.
이렇게, 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 클라이언트 단말(130)에 저장되어 있는 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리 상에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청할 수 있다.
이때, 클라이언트 단말(130)은 어플리케이션 위변조 방지 장치(110)로부터 상기 해시 값에 대한 요청이 수신되면, 상기 어플리케이션을 구성하는 데이터 코드 값을 확인할 수 있다.
그리고 나서, 클라이언트 단말(130)은 어플리케이션 제공 서버(120)로부터 상기 어플리케이션을 다운로드할 때 어플리케이션 위변조 방지 장치(110)로부터 수신한 사용자 라이브러리를 참조하여 상기 사용자 라이브러리 상에 포함된 상기 복수의 해시 함수들 중 어플리케이션 위변조 방지 장치(110)가 요청한 N번째 해시 함수에 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 넣어서 해시 값을 연산할 수 있다.
예컨대, 상기 어플리케이션을 구성하는 데이터 코드 값이 'Ic'이고, 상기 N번째 해시 함수가 'HN(x)'인 경우, 클라이언트 단말(130)은 상기 사용자 라이브러리에 포함되어 있는 복수의 해시 함수들 중 상기 N번째 해시 함수인 'HN(x)'에 상기 데이터 코드 값 'Ic'을 입력으로 인가하여 'HN'이라는 해시 값을 연산할 수 있다.
이렇게, 클라이언트 단말(130)이 상기 해시 값의 연산을 완료하면, 클라이언트 단말(130)은 상기 연산된 해시 값 'HN'을 어플리케이션 위변조 방지 장치(110)로 전송할 수 있다.
이때, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 상기 해시 값 'HN'이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 복수의 해시 값들 중 N번째로 저장되어 있는 해시 값 간의 일치 여부를 판단할 수 있다.
만약, 클라이언트 단말(130)로부터 수신된 해시 값 'HN'와 상기 데이터베이스에 N번째로 저장되어 있는 해시 값이 서로 일치하는 것으로 판단되면, 어플리케이션 위변조 방지 장치(110)는 어플리케이션 제공 서버(120)에 대해, 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청할 수 있다.
하지만, 클라이언트 단말(130)로부터 수신된 해시 값 'HN'과 상기 데이터베이스에 N번째로 저장되어 있는 해시 값이 서로 일치하지 않는 것으로 판단되면, 어플리케이션 위변조 방지 장치(110)는 어플리케이션 제공 서버(120)에 대해, 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.
이때, 어플리케이션 제공 서버(120)는 어플리케이션 위변조 방지 장치(110)로부터 상기 액세스의 허가 요청이 수신된 경우, 클라이언트 단말(130)의 사용자가 상기 어플리케이션을 사용할 수 있도록 상기 어플리케이션의 실행과 연관된 액세스를 허가하고, 어플리케이션 위변조 방지 장치(110)로부터 상기 액세스의 차단 요청이 수신된 경우, 클라이언트 단말(130)의 사용자가 상기 어플리케이션을 사용할 수 없도록 상기 어플리케이션의 실행과 연관된 액세스를 차단할 수 있다.
결국, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 어플리케이션을 실행하고자 할 때, 클라이언트 단말(130)로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시 값을 수신하여 상기 수신된 해시 값이 데이터베이스에 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스를 허가함으로써, 위조되거나 변조된 어플리케이션이 클라이언트 단말(130)에서 사용되는 것을 방지할 수 있다.
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(130)로 N번째 해시 함수를 기초로 연산된 해시 값을 요청하기 전에, 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.
보통, 어플리케이션 위변조 방지 장치(110)의 관리자는 어플리케이션 위변조 방지를 위한 효율을 높이기 위해 주기적으로 어플리케이션 위변조 방지 장치(110)에 저장되어 있는 복수의 해시 함수들의 종류를 변경하거나 새로운 해시 함수를 추가할 수 있다.
이때, 어플리케이션 위변조 방지 장치(110)는 어플리케이션 위변조 방지 장치(110)에 저장되어 있는 복수의 해시 함수들의 종류가 변경되거나 새로운 해시 함수가 추가되면, 복수의 해시 값들을 다시 연산하여 상기 데이터베이스 상에 재저장할 수 있다.
이 경우, 어플리케이션 위변조 방지 장치(110)의 관리자는 클라이언트 단말(130)로부터 수신한 해시 값과 어플리케이션 위변조 방지 장치(110)의 데이터베이스에 저장되어 있는 해시 값 간의 비교를 위해 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리에 대한 업데이트를 수행해 주어야 할 필요가 있다.
따라서, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)이 어플리케이션을 실행함에 따라 클라이언트 단말(130)에서 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 그 때마다 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리의 버전을 확인하여 최신 버전이 아닌 경우, 업데이트를 수행할 수 있다.
또한, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 소정의 주기 간격으로 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리의 버전을 확인하여 상기 사용자 라이브러리에 대한 업데이트를 수행할 수도 있다.
이때, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장할 수 있다.
예컨대, 어플리케이션 위변조 방지 장치(110)의 데이터베이스 상에 상기 복수의 해시 값들이 'H4, H1, Hk, ..., H2' 순서로 저장되어 있는 경우, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 복수의 해시 값들의 저장 순서를 'H5, H3, H2, ..., Hk'와 같이 랜덤하게 변경하여 상기 데이터베이스 상에 재저장할 수 있다.
그리고 나서, 어플리케이션 위변조 방지 장치(110)는 상기 복수의 해시 값들의 변경된 저장 순서에 대응하여 상기 업데이트될 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.
다시 말해서, 어플리케이션 위변조 방지 장치(110)는 상기 업데이트될 사용자 라이브러리 상에 상기 복수의 해시 함수들이 'H5(x), H3(x), H2(x), ..., Hk(x)' 순서로 포함되도록 순서를 변경한 후 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.
결국, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(110)는 복수의 해시 값들의 저장 순서를 랜덤하게 결정하여 어플리케이션 위변조 방지 장치(110)의 데이터베이스 상에 저장하고, 상기 랜덤하게 결정된 저장 순서에 대응하여 클라이언트 단말(130)에 제공할 사용자 라이브러리에 포함될 복수의 해시 함수들의 순서를 결정함으로써, 추후 클라이언트 단말(130)로부터 수신할 N번째 해시 값의 종류를 미리 예상하지 못하게 하여 보안을 강화할 수 있고, 이와 더불어 클라이언트 단말(130)에 저장되어 있는 사용자 라이브러리에 대한 업데이트가 수행될 때마다, 상기 데이터베이스 상에 저장되어 있는 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 재저장한 후 상기 변경된 저장 순서에 대응하여 상기 업데이트될 사용자 라이브러리에 포함될 복수의 해시 함수들의 순서를 변경함으로써, 추후 클라이언트 단말(130)로부터 수신할 N번째 해시 값의 종류에 대한 예상을 원천적으로 차단하여 보안을 더욱 강화할 수 있다.
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(130)로부터 N번째 해시 값을 수신하여 상기 어플리케이션이 위변조된 어플리케이션인지 여부를 판단할 수도 있지만, 클라이언트 단말(130)에 대해, 클라이언트 단말(130)의 해킹시 생성되는 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청할 수 있다.
보통, 클라이언트 단말(130)이 루팅(Rooting)되거나 탈옥(Jailbreak)되는 등과 같이, 해킹이 수행되면, 클라이언트 단말(130)에 '/sbin/su', '/system/bin/su', '/Application/Cydia.app', '/Application/RockApp.app' 등과 같은 소정의 파일이 생성될 수 있다.
이에, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에서 상기 어플리케이션이 실행됨에 따라, 클라이언트 단말(130)로부터 어플리케이션 제공 서버(120)로 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(130)에 대해, 클라이언트 단말(130)의 해킹시 생성되는 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청할 수 있다.
이때, 클라이언트 단말(130)은 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼(platform) 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 그 결과를 어플리케이션 위변조 방지 장치(110)로 전송할 수 있다.
그리고 나서, 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)에 의해 클라이언트 단말(130) 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 어플리케이션 제공 서버(120)에 대해, 클라이언트 단말(130)의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.
결국, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(110)는 클라이언트 단말(130)로부터 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 연산된 해시 값을 수신하여 상기 수신된 해시 값을 기초로 위변조된 어플리케이션의 실행을 위한 액세스를 방지할 수 있을 뿐만 아니라, 클라이언트 단말(130)에 클라이언트 단말(130)의 해킹시 생성되는 소정의 파일이 존재하는지 여부를 확인한 후 클라이언트 단말(130)에 상기 파일이 존재하는 것으로 확인되면, 상기 어플리케이션의 실행을 위한 액세스를 차단함으로써, 어플리케이션의 불법적 사용을 방지할 수 있다.
도 2는 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치의 구조를 도시한 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(210)는 저장부(211), 해시 값 요청부(212), 해시 값 수신부(213), 판단부(214) 및 액세스 요청부(215)를 포함한다.
저장부(211)는 클라이언트 단말(230)이 어플리케이션 제공 서버(220)로부터 어플리케이션을 다운로드하여 저장하면, 클라이언트 단말(230)이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스(미도시)에 저장한다.
이때, 본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(210)는 라이브러리 전송부(216)를 더 포함할 수 있다.
라이브러리 전송부(216)는 클라이언트 단말(230)이 어플리케이션 제공 서버(220)로부터 상기 어플리케이션을 다운로드하여 저장하면, 클라이언트 단말(230)로 상기 복수의 해시 함수들이 포함된 사용자 라이브러리를 전송한다.
이때, 본 발명의 일실시예에 따르면, 저장부(211)는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있고, 라이브러리 전송부(216)는 상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송할 수 있다.
해시 값 요청부(212)는 클라이언트 단말(230)로부터 어플리케이션 제공 서버(220)로 클라이언트 단말(230)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(230)에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청한다.
해시 값 수신부(213)는 클라이언트 단말(230)로부터 상기 해시 값을 수신한다.
판단부(214)는 클라이언트 단말(230)로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단한다.
액세스 요청부(215)는 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 어플리케이션 제공 서버(220)에 대해, 클라이언트 단말(230)의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청한다.
이때, 본 발명의 일실시예에 따르면, 액세스 요청부(215)는 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 어플리케이션 제공 서버(220)에 대해, 클라이언트 단말(230)의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(210)는 라이브러리 업데이트부(217)를 더 포함할 수 있다.
라이브러리 업데이트부(217)는 클라이언트 단말(230)로부터 어플리케이션 제공 서버(220)로 클라이언트 단말(230)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행한다.
이때, 본 발명의 일실시예에 따르면, 저장부(211)는 클라이언트 단말(230)에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하고, 라이브러리 업데이트부(217)는 상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.
본 발명의 일실시예에 따르면, 어플리케이션 위변조 방지 장치(210)는 확인 요청부(218)를 더 포함할 수 있다.
확인 요청부(218)는 클라이언트 단말(230)로부터 어플리케이션 제공 서버(220)로 클라이언트 단말(230)에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 클라이언트 단말(230)에 대해, 클라이언트 단말(230)의 해킹시 생성되는 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청한다.
이때, 클라이언트 단말(230)은 확인 요청부(218)로부터 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행할 수 있다.
이때, 액세스 요청부(215)는 클라이언트 단말(230)에 의해 클라이언트 단말(230) 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 어플리케이션 제공 서버(220)에 대해, 클라이언트 단말(230)의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(210)에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 장치(210)는 도 1을 이용하여 설명한 어플리케이션 위변조 방지 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
도 3은 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법을 도시한 순서도이다.
단계(S310)에서는 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장한다.
이때, 본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S310)이후에 상기 클라이언트 단말이 상기 어플리케이션 제공 서버로부터 상기 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말로 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 전송하는 단계를 더 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S310)에서는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장할 수 있고, 상기 사용자 라이브러리를 전송하는 단계는 상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송할 수 있다.
단계(S320)에서는 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청한다.
단계(S330)에서는 상기 클라이언트 단말로부터 상기 해시 값을 수신한다.
단계(S340)에서는 상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단한다.
만약, 단계(S350)에서 단계(S340)에 대한 판단을 수행한 결과, 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 단계(S360)에서 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 허가를 요청한다.
하지만, 단계(S350)에서 단계(S340)에 대한 판단을 수행한 결과, 상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 단계(S370)에서 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청할 수 있다.
본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S320)이전에 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계를 더 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S320)이전에 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하는 단계를 더 포함할 수 있다.
이때, 상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계는 상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행할 수 있다.
본 발명의 일실시예에 따르면, 상기 어플리케이션 위변조 방지 방법은 단계(S310)이후에 상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행과 연관된 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 클라이언트 단말의 해킹시 생성되는 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 요청하는 단계를 더 포함할 수 있다.
이때, 상기 클라이언트 단말은 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행할 수 있다.
그리고 나서, 상기 어플리케이션 위변조 방지 방법은 상기 클라이언트 단말에 의해 상기 클라이언트 단말 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행과 연관된 액세스의 차단을 요청하는 단계를 더 포함할 수 있다.
이상, 도 3을 참조하여 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법은 도 1과 도 2를 이용하여 설명한 어플리케이션 위변조 방지 장치(110, 210)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 어플리케이션 위변조 방지 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 어플리케이션 위변조 방지 장치 120: 어플리케이션 제공 서버
130: 클라이언트 단말
210: 어플리케이션 위변조 방지 장치
211: 저장부 212: 해시 값 요청부
213: 해시 값 수신부 214: 판단부
215: 액세스 요청부 216: 라이브러리 전송부
217: 라이브러리 업데이트부 218: 확인 요청부
220: 어플리케이션 제공 서버 230: 클라이언트 단말

Claims (13)

  1. 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시(hash) 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장하는 저장부;
    상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스(access) 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리(library)에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 해시 값 요청부;
    상기 클라이언트 단말로부터 상기 해시 값을 수신하는 해시 값 수신부;
    상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 판단부; 및
    상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 허가를 요청하는 액세스 요청부
    를 포함하는 어플리케이션 위변조 방지 장치.
  2. 제1항에 있어서,
    상기 액세스 요청부는
    상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하는 어플리케이션 위변조 방지 장치.
  3. 제1항에 있어서,
    상기 클라이언트 단말이 상기 어플리케이션 제공 서버로부터 상기 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말로 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 전송하는 라이브러리 전송부; 및
    상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행하는 라이브러리 업데이트부
    를 더 포함하는 어플리케이션 위변조 방지 장치.
  4. 제3항에 있어서,
    상기 저장부는
    상기 복수의 해시 값들의 저장 순서를 랜덤(Random)하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장하고,
    상기 라이브러리 전송부는
    상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송하는 어플리케이션 위변조 방지 장치.
  5. 제4항에 있어서,
    상기 저장부는
    상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하고,
    상기 라이브러리 업데이트부는
    상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행하는 어플리케이션 위변조 방지 장치.
  6. 제1항에 있어서,
    상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 클라이언트 단말의 해킹시 생성되는 적어도 하나의 선정된(predetermined) 파일의 존재 여부에 대한 확인을 요청하는 확인 요청부
    를 더 포함하고,
    상기 액세스 요청부는
    상기 클라이언트 단말에 의해 상기 클라이언트 단말 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하며,
    상기 클라이언트 단말은
    상기 확인 요청부로부터 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼(platform) 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행하는 어플리케이션 위변조 방지 장치.
  7. 클라이언트 단말이 어플리케이션 제공 서버로부터 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말이 다운로드한 어플리케이션의 정보와, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 복수의 해시(hash) 함수들을 기초로 연산된 복수의 해시 값들을 데이터베이스에 저장하는 단계;
    상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스(access) 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하여 상기 클라이언트 단말에 저장되어 있는 사용자 라이브러리(library)에 포함된 상기 복수의 해시 함수들 중 N(N은 자연수)번째 해시 함수를 기초로 연산된 해시 값을 요청하는 단계;
    상기 클라이언트 단말로부터 상기 해시 값을 수신하는 단계;
    상기 클라이언트 단말로부터 상기 해시 값이 수신되면, 상기 수신된 해시 값과 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들 중 N번째 해시 값 간의 일치 여부를 판단하는 단계; 및
    상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 허가를 요청하는 단계
    를 포함하는 어플리케이션 위변조 방지 방법.
  8. 제7항에 있어서,
    상기 수신된 해시 값과 상기 N번째 해시 값이 서로 일치하지 않는 것으로 판단되면, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하는 단계
    를 더 포함하는 어플리케이션 위변조 방지 방법.
  9. 제7항에 있어서,
    상기 클라이언트 단말이 상기 어플리케이션 제공 서버로부터 상기 어플리케이션을 다운로드하여 저장하면, 상기 클라이언트 단말로 상기 복수의 해시 함수들이 포함된 상기 사용자 라이브러리를 전송하는 단계; 및
    상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리의 버전이 최신 버전인지 여부를 확인하여 상기 사용자 라이브러리의 버전이 최신 버전이 아닌 것으로 확인되면, 상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계
    를 더 포함하는 어플리케이션 위변조 방지 방법.
  10. 제9항에 있어서,
    상기 데이터베이스에 저장하는 단계는
    상기 복수의 해시 값들의 저장 순서를 랜덤(Random)하게 결정하여 상기 결정된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 저장하고,
    상기 사용자 라이브러리를 전송하는 단계는
    상기 결정된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 결정한 후 상기 사용자 라이브러리를 상기 클라이언트 단말로 전송하는 어플리케이션 위변조 방지 방법.
  11. 제10항에 있어서,
    상기 클라이언트 단말에 저장되어 있는 상기 사용자 라이브러리에 대한 업데이트가 수행될 경우, 상기 데이터베이스에 저장되어 있는 상기 복수의 해시 값들의 저장 순서를 랜덤하게 변경하여 상기 변경된 저장 순서에 따라 상기 복수의 해시 값들을 상기 데이터베이스에 재저장하는 단계
    를 더 포함하고,
    상기 사용자 라이브러리에 대한 업데이트를 수행하는 단계는
    상기 변경된 저장 순서에 대응하여 상기 사용자 라이브러리에 포함될 상기 복수의 해시 함수들의 순서를 변경한 후 상기 사용자 라이브러리에 대한 업데이트를 수행하는 어플리케이션 위변조 방지 방법.
  12. 제7항에 있어서,
    상기 클라이언트 단말로부터 상기 어플리케이션 제공 서버로 상기 클라이언트 단말에 저장되어 있는 상기 어플리케이션의 실행을 위한 액세스 요청이 전송되면, 상기 클라이언트 단말에 대해, 상기 클라이언트 단말의 해킹시 생성되는 적어도 하나의 선정된(predetermined) 파일의 존재 여부에 대한 확인을 요청하는 단계; 및
    상기 클라이언트 단말에 의해 상기 클라이언트 단말 내에 상기 적어도 하나의 선정된 파일이 존재하는 것으로 확인된 경우, 상기 어플리케이션 제공 서버에 대해, 상기 클라이언트 단말의 상기 어플리케이션의 실행을 위한 액세스의 차단을 요청하는 단계
    를 더 포함하고,
    상기 클라이언트 단말은
    상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인 요청이 수신되면, 상기 어플리케이션이 실행되는 플랫폼(platform) 상에 위치하는 상기 적어도 하나의 선정된 파일의 존재 유무를 탐지하여 상기 적어도 하나의 선정된 파일의 존재 여부에 대한 확인을 수행하는 어플리케이션 위변조 방지 방법.
  13. 제7항 내지 제12항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020120095954A 2012-08-30 2012-08-30 어플리케이션 위변조 방지 장치 및 방법 KR101273370B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120095954A KR101273370B1 (ko) 2012-08-30 2012-08-30 어플리케이션 위변조 방지 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120095954A KR101273370B1 (ko) 2012-08-30 2012-08-30 어플리케이션 위변조 방지 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101273370B1 true KR101273370B1 (ko) 2013-07-30

Family

ID=48996042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120095954A KR101273370B1 (ko) 2012-08-30 2012-08-30 어플리케이션 위변조 방지 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101273370B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064040A1 (ko) * 2014-10-20 2016-04-28 숭실대학교 산학협력단 서명정보를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
KR20180060124A (ko) * 2016-11-28 2018-06-07 (주) 세인트 시큐리티 도메인 네임 서버를 이용한 악성 코드 정보 조회 방법
KR20210113840A (ko) * 2020-03-09 2021-09-17 엔에이치엔 주식회사 프로그램 코드 조작 검출 방법 및 그 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070111816A (ko) * 2006-05-19 2007-11-22 삼성전자주식회사 데이터의 위`변조 차단기능을 구비한 데이터 출력 시스템장치 및 데이터 출력 방법
KR100954758B1 (ko) 2009-07-29 2010-04-27 주식회사 코드원 웹 애플리케이션 보안 시스템 및 이를 이용한 웹 애플리케이션의 보안 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070111816A (ko) * 2006-05-19 2007-11-22 삼성전자주식회사 데이터의 위`변조 차단기능을 구비한 데이터 출력 시스템장치 및 데이터 출력 방법
KR100954758B1 (ko) 2009-07-29 2010-04-27 주식회사 코드원 웹 애플리케이션 보안 시스템 및 이를 이용한 웹 애플리케이션의 보안 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064040A1 (ko) * 2014-10-20 2016-04-28 숭실대학교 산학협력단 서명정보를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
KR20180060124A (ko) * 2016-11-28 2018-06-07 (주) 세인트 시큐리티 도메인 네임 서버를 이용한 악성 코드 정보 조회 방법
KR101944809B1 (ko) * 2016-11-28 2019-02-01 (주) 세인트 시큐리티 도메인 네임 서버를 이용한 악성 코드 정보 조회 방법
KR20210113840A (ko) * 2020-03-09 2021-09-17 엔에이치엔 주식회사 프로그램 코드 조작 검출 방법 및 그 장치
KR102337963B1 (ko) 2020-03-09 2021-12-10 엔에이치엔 주식회사 프로그램 코드 조작 검출 방법 및 그 장치

Similar Documents

Publication Publication Date Title
US11127097B2 (en) Method, apparatus, and system for copyright rights defense detection
US11669637B2 (en) Decentralized token table generation
CN108334753B (zh) 盗版应用验证方法和分布式服务器节点
US10007960B2 (en) Electronic license management
US20170116410A1 (en) Software protection
US10019558B2 (en) Controlling licensable features of software using access tokens
KR101731934B1 (ko) 소프트웨어 애플리케이션을 위한 안전장치 라이센싱
KR102008668B1 (ko) 외부 저장 장치에 저장되는 파일의 개인정보를 보호하는 보안 시스템 및 방법
US9483636B2 (en) Runtime application integrity protection
CN112257086B (zh) 一种用户隐私数据保护方法及电子设备
JP7494205B2 (ja) データレコードのコピーの分散型台帳システムへの誤伝送の防止
CN104040552A (zh) 用于部分安全存储器处理的软件修改
CN105612731A (zh) 跨受信和非受信平台漫游互联网可访问应用状态
KR101273370B1 (ko) 어플리케이션 위변조 방지 장치 및 방법
KR101642267B1 (ko) 앱 위변조 방지시스템 및 그 방법
KR20110059363A (ko) 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법
CN104796771A (zh) 控件下载方法和***以及下载引导模块
EP3057020B1 (en) User terminal and method for protecting core code using neighboring device of same
JP5947358B2 (ja) 認証処理装置、方法およびプログラム
EP3057022B1 (en) Mobile device and method for operating same
KR102410810B1 (ko) 확장 암호연산 처리 방법 및 시스템
US20210056234A1 (en) Data management apparatus for securely updating dynamic data and operating method thereof
WO2016177172A1 (zh) 管理方法及***、终端、密钥管理***及终端厂商***
KR102190359B1 (ko) 무결성 검증 방법 및 장치
US10776457B1 (en) System and method for preventing execution of unauthorized code

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