KR101494431B1 - 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101494431B1
KR101494431B1 KR20120076772A KR20120076772A KR101494431B1 KR 101494431 B1 KR101494431 B1 KR 101494431B1 KR 20120076772 A KR20120076772 A KR 20120076772A KR 20120076772 A KR20120076772 A KR 20120076772A KR 101494431 B1 KR101494431 B1 KR 101494431B1
Authority
KR
South Korea
Prior art keywords
signature information
mobile application
user terminal
signature
extracting
Prior art date
Application number
KR20120076772A
Other languages
English (en)
Other versions
KR20140027588A (ko
Inventor
정석봉
주성범
Original Assignee
네이버비즈니스플랫폼 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버비즈니스플랫폼 주식회사 filed Critical 네이버비즈니스플랫폼 주식회사
Priority to KR20120076772A priority Critical patent/KR101494431B1/ko
Publication of KR20140027588A publication Critical patent/KR20140027588A/ko
Application granted granted Critical
Publication of KR101494431B1 publication Critical patent/KR101494431B1/ko

Links

Images

Classifications

    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud

Landscapes

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

Abstract

본 발명은 시그니처(signature)(서명 정보)가 포함된 모바일 애플리케이션 파일에 대해 리패키징이 이루어졌는지에 기초하여 조작 여부를 탐지하기 위한 모바일 애플리케이션 파일 조작 여부 탐지 장치에 관한 것으로, 특히 모바일 애플리케이션 파일 조작 여부 탐지 장치에 있어서, 사용자 단말로부터의 요청을 수신하는 수신부; 및 상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 제공부를 포함하고, 상기 모바일 애플리케이션은, 최초 실행시 또는 최초 설치시 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부; 및 상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부를 포함한다.

Description

모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체{SYSTEM, DEVICE, METHOD AND COMPUTER READABLE RECORDING MEDIUM FOR DETECTING MANIPULATION OF A MOBILE APPLICATION FILE}
본 발명은 모바일 애플리케이션 파일의 조작 여부를 탐지하기 위한 시스템 등에 관한 것으로, 보다 상세하게는 시그니처(signature)(서명 정보)가 포함된 모바일 애플리케이션 파일에 대해 리패키징이 이루어졌는지에 기초하여 조작 여부를 탐지하기 위한 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
오늘날 인터넷의 광범위한 보급은 이제 유선을 넘어 무선 이동통신 기술로의 급발전을 가져오게 되었고, 실생활에 있어서도 휴대폰, PDA, 핸드헬드(Hand-Held) 컴퓨터 등의 휴대용 단말을 통한 인터넷상에서의 정보 검색이 시간과 장소에 구애받지 않고 가능하게 되었다.
한편, 최근 출시되는 스마트폰들의 성능이 향상되면서, 일반 휴대폰에서 스마트폰으로 사용자들이 많이 옮겨가고 있는 추세이다. 스마트폰(smart phone)이란 휴대폰에 컴퓨터 지원 기능을 추가한 지능형 휴대폰으로서, 휴대폰 기능에 충실하면서도 개인 휴대 정보 단말기(PDA) 기능, 인터넷 기능, 동영상 재생 기능 등이 추가되며, 다양한 입력 방식과 터치스크린 등이 구비되어 사용에 보다 편리한 인터페이스를 제공한다. 또한, 무선 인터넷 기능의 지원으로 인터넷 및 컴퓨터에 접속되어 이메일, 웹브라우징, 팩스, 뱅킹, 게임 등 단말기로서의 기능도 수행한다. 한편, 스마트폰은 다양한 기능의 수용을 위하여 표준화된 운영 체제(OS) 또는 전용 운영 체제를 갖추기도 한다.
이와 같이, 스마트폰 등 다양한 모바일 단말을 통해 다양한 기능의 구현이 가능해짐에 따라, 모바일 단말 내에서 구동되는 다양한 전용 애플리케이션 프로그램(application program)들과 콘텐츠(content)들이 개발되고 있다.
이러한, 스마트폰에 설치되어 구동되는 전용 애플리케이션은 통상적으로 '앱(App.)'이라고도 하며, 각종 애플리케이션 마켓 등을 통해 유료 또는 무료로 다운로드 받아 스마트폰에 설치하여 사용된다. 따라서, 사용자는 스마트폰에서 특정 애플리케이션 마켓에 접속하여 원하는 애플리케이션을 검색하고, 해당 애플리케이션을 선택하여 다운로드 받아 설치할 수 있다.
특히, 안드로이드 기반의 운영체제에서는 리소스 파일과 소스 코드를 패키징한 형태(즉, APK 파일 포맷)로 애플리케이션 파일을 제작 및 배포한다. 상기 안드로이드 기반의 APK 파일은 패키징 상태에서 서명(signing)을 하여야 배포가 가능하며, 파일 내에 서명 정보가 함께 포함된다. 따라서, 동일한 서명으로 서명하여야 기존의 애플리케이션을 업데이트할 수 있다.
한편, 상기 안드로이드 기반의 애플리케이션 파일은 원본 소스와 거의 유사한 정도로 디컴파일(de-compile)이 가능하여 역분석(reverse engineering)이 용이하다. 이와 같이, 역분석을 통해 애플리케이션의 원래 제작자가 아닌 일반 사용자라도 소스 코드 또는 리소스 파일을 직접 조작한 후, 리패키징하여 재배포하는 것이 가능하다.
도 1은 일반적인 안드로이드 기반의 애플리케이션 리패키징 절차를 나타낸 흐름도이다. 도 1을 참조하면, APK 파일을 다운로드(S101) 또는 전송받은 후, 소정의 디컴파일 툴(예컨대, ApkTool.jar, dex2jar, jd 등)을 이용하여 디컴파일(S102)하면, 소스 코드 및 리소스 파일을 확인할 수 있다. 이때, 상기 소스 코드를 수정(S103)한 후, 다시 컴파일(S104)하고, 서명(S105)하여 다시 패키징하면 리패키징된 APK 파일이 생성되며, 이를 재배포하여 사용할 수 있다.
상기 APK 파일을 디컴파일하는 방법의 예를 보다 구체적으로 설명하면 다음과 같다. 도 2는 안드로이드 기반의 애플리케이션 파일 구조를 나타내는 도면이다. 즉, APK 파일 포맷은 일반 압축과 같은 방식으로 압축되어 있으므로, 일반적인 압축툴로 압축을 해제하면 도 2에 도시된 바와 같은 폴더 및 파일을 확인할 수 있다.
상기 도 2에서 'META-INF' 폴더는, APK 서명 정보를 포함하는 폴더를 나타낸다. 'res' 폴더는 안드로이드 기반에서 사용하는 이미지, 레이아웃(layout), 스트링(string) 등을 저장하는 폴더이다. 'AndroidManifest' 파일은 해당 프로젝트에서 사용하는 액티비티(activity)/서비스(service)에 대한 정의를 나타내며 XML 형태로 구성된다. 'classes.dex' 파일은 소스 파일을 컴파일한 후, 클래스(class) 파일을 다시 dex 파일 포맷으로 변경한 파일이다. 'resources.arsc' 파일은 해당 프로젝트의 리소스 테이블 정보를 나타낸다.
이때, 상기 'classes.dex' 파일로부터 소스 코드의 내용을 확인하기 위해서는 도 3에 도시된 바와 같이 몇 가지 툴을 사용하여 디컴파일하여야 한다. 예컨대, 'dex' 파일 포맷을 'jar' 파일 포맷으로 변환하고, 'jar'파일 포맷을 디컴파일하여 패키지 주소와 함께 소스 코드를 확인할 수 있다. 이처럼, APK 파일을 디컴파일함으로써 소스 코드를 사용자가 확인하여 수정할 수가 있다.
이와 같이, 안드로이드 기반의 APK 파일은 디컴파일을 통한 역분석이 용이하기 때문에 일반인이 악의적으로 애플리케이션을 조작한 후 재배포할 수 있는 문제가 있다. 예컨대, 애플리케이션에 포함된 광고 정보를 변경하거나 클릭 수 등을 조작함으로써 애플리케이션을 악용할 수 있는 문제가 있다.
한편, 이러한 안드로이드 기반의 APK 파일을 생성하는 기술로서 대한민국등록공보 제10-1112697호 "에스케이브이엠 및 위피자바 응용프로그램을 안드로이드 응용프로그램으로 변환하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체(주식회사 인프라웨어테크놀러지)"(문헌 1)에는 에스케이브이엠 및 위피자바 응용프로그램의 바이트코드로 구성된 클래스 파일과 리소스 파일을 변환하고, 그 변환된 바이트코드로 구성된 클래스 파일에 OEM API와 MIDP API를 래핑(wrapping)한 후, OEM API와 MIDP API가 래핑된 클래스 파일과 그 변환된 리소스 파일을 안드로이드 응용프로그램으로 생성하는 방법이 개시된다.
그러나, 이와 같이 생성된 안드로이드 기반의 애플리케이션 프로그램의 경우에도 마찬가지로, 역분석에 의한 애플리케이션 악용이 가능하므로, 애플리케이션에 대한 조작을 근본적으로 방지하고, 조작된 애플리케이션의 실행을 차단할 수 있는 방법의 필요성이 요구되고 있는 실정이다.
[문헌 1] 대한민국특허등록공보 제10-1112697호 에스케이브이엠 및 위피자바 응용프로그램을 안드로이드 응용프로그램으로 변환하는 프로그램을 기록한 컴퓨터로 판독가능한 기록매체(주식회사 인프라웨어테크놀러지) 2012.01.30
본 발명의 목적은 안드로이드 기반의 애플리케이션 파일을 역분석하여 리패키징한 경우, 애플리케이션 파일 내에 포함된 서명 정보를 확인하여 검증함으로써 조작 여부를 탐지할 수 있는 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체를 제공함에 있다.
또한, 본 발명의 다른 목적은 안드로이드 기반의 애플리케이션 파일을 역분석하여 리패키징한 경우, 애플리케이션 파일 내에 포함된 서명 정보를 사용자 단말 내에 저장된 서명 정보와 비교하여 검증함으로써 조작 여부를 탐지할 수 있는 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체를 제공함에 있다.
또한, 본 발명의 다른 목적은 안드로이드 기반의 애플리케이션 파일을 역분석하여 리패키징한 경우, 애플리케이션 파일 내에 포함된 서명 정보를 온라인을 통해 서명 인증 서버에 저장된 서명 정보와 비교하여 검증함으로써 조작 여부를 탐지할 수 있는 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체를 제공함에 있다.
또한, 본 발명의 다른 목적은 안드로이드 기반의 애플리케이션 파일을 역분석하여 리패키징하여, 사용자 단말 내에 저장된 애플리케이션 파일에 대한 서명 정보가 온라인상의 서명 인증 서버에 저장된 서명 정보와 상이할 경우, 사용자 단말 내의 서명 정보를 서명 인증 서버의 서명 정보로 갱신함으로써 조작 여부를 탐지할 수 있는 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체를 제공함에 있다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특유의 효과를 달성하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 측면에 따르면, 모바일 애플리케이션 파일 조작 여부 탐지 장치는, 사용자 단말로부터의 요청을 수신하는 수신부; 및 상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 제공부를 포함하고, 상기 모바일 애플리케이션은, 최초 실행시 또는 최초 설치시 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부; 및 상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부를 포함한다.
바람직하게는, 상기 서명 비교부는, 상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하지 않을 경우, 상기 모바일 애플리케이션에 대한 실행을 중단시킨다.
바람직하게는, 상기 수신부는 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제3 서명 정보의 요청을 더 수신받고, 상기 제공부는 상기 제3 서명 정보의 요청에 대응하여 상기 장치 내에 저장된 상기 제3 서명 정보를 상기 사용자 단말로 제공하며, 상기 제3 서명 정보의 요청은 상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하는 경우 발생된다.
바람직하게는, 상기 수신부는 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제2 서명 정보를 더 수신받고, 상기 제공부는 상기 제2 서명 정보와 상기 장치 내에 저장된 제3 서명 정보가 일치하지 않을 경우, 상기 제3 서명 정보를 상기 사용자 단말로 전송한다.
바람직하게는, 상기 모바일 애플리케이션은, 상기 장치로부터 상기 제3 서명 정보를 수신하는 서명 수신부를 더 포함하고, 상기 서명 비교부는, 상기 수신한 제3 서명 정보가 상기 사용자 단말 내에 저장된 상기 제2 서명 정보와 일치하지 않을 경우 상기 제2 서명 정보를 상기 제3 서명 정보로 갱신시킨다.
바람직하게는, 상기 서명 비교부는, 상기 수신한 제3 서명 정보가 상기 사용자 단말 내에 저장된 상기 제2 서명 정보와 일치하지 않을 경우, 상기 모바일 애플리케이션에 대한 실행을 중단시킨다.
바람직하게는, 상기 모바일 애플리케이션은, 상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하지 않을 경우, 상기 사용자 단말 또는 상기 모바일 애플리케이션에 포함된 사용자 로그 정보를 추출하는 로그 정보 추출부; 및 상기 추출된 로그 정보를 상기 장치로 전송하는 로그 정보 전송부를 더 포함한다.
본 발명의 다른 측면에 따르면, 모바일 애플리케이션 파일 조작 여부 탐지 시스템은, 상기 모바일 애플리케이션을 사용자 단말에 제공하는 서명 인증 서버 장치; 및 상기 서명 인증 서버로부터 상기 모바일 애플리케이션을 제공받아 설치하는 사용자 단말을 포함하며, 상기 모바일 애플리케이션은, 최초 실행시 또는 최초 설치시, 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부; 및 상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부를 포함한다.
본 발명의 또 다른 측면에 따르면, 모바일 애플리케이션 파일 조작 여부 탐지 방법은, 서명 인증 서버 장치에 의해 수행되는 각 단계가, 사용자 단말으로부터의 요청을 수신하는 단계; 및 상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 단계를 포함하고, 상기 모바일 애플리케이션은, 최초 실행시, 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하는 단계; 재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 단계; 상기 제1 서명 정보와 상기 제2 서명 정보를 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 단계를 수행한다.
바람직하게는, 상기 모바일 애플리케이션의 실행 여부를 결정하는 단계는, 상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하지 않을 경우, 상기 모바일 애플리케이션에 대한 실행을 중단시키는 단계이다.
바람직하게는, 상기 방법은, 상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하는 경우, 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제3 서명 정보의 요청을 더 수신하는 단계; 및 상기 제3 서명 정보의 요청에 대응하여 상기 서명 인증 서버 장치 내에 저장된 상기 제3 서명 정보를 상기 사용자 단말로 제공하는 단계를 더 포함한다.
바람직하게는, 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제2 서명 정보를 수신받는 단계; 상기 제2 서명 정보와 상기 장치 내에 저장된 제3 서명 정보가 일치하지 않을 경우, 상기 제3 서명 정보를 상기 사용자 단말로 전송하는 단계;를 더 포함한다.
바람직하게는, 상기 모바일 애플리케이션은, 상기 장치로부터 상기 요청한 제3 서명 정보를 수신하고, 상기 수신한 제3 서명 정보가 상기 사용자 단말 내에 저장된 상기 제2 서명 정보와 일치하지 않을 경우, 상기 제2 서명 정보를 상기 제3 서명 정보로 갱신시키는 단계를 더 수행한다.
한편, 상기 모바일 애플리케이션 파일 조작 여부 탐지 방법을 제공받기 위한 정보는 서버 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함한다. 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk), DVD(Digital Video Disk)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
상술한 바와 같이, 본 발명에 따르면 정당한 제작자의 허락 없이 역분석에 의해 리패키징된 안드로이드 기반의 애플리케이션 파일을 실행할 경우, 애플리케이션 파일에 포함된 서명 정보를 추출하여 검증함으로써 역분석에 의한 조작 여부를 탐지하여 조작에 따른 애플리케이션의 악용을 근본적으로 방지하며, 조작된 애플리케이션의 실행을 차단할 수 있는 장점이 있다.
또한, 본 발명에 따르면 사용자 단말 내에 애플리케이션 파일에 대한 서명 정보를 저장하고, 애플리케이션 파일 내에 포함된 서명 정보를 상기 사용자 단말 내에 저장된 서명 정보와 비교하여 검증함으로써 조작 여부를 효과적으로 탐지할 수 있는 장점이 있다.
또한, 본 발명에 따르면 사용자 단말 내에 저장된 애플리케이션 파일에 대한 서명 정보를 온라인상의 서명 인증 서버에 저장된 서명 정보와 비교하고, 사용자 단말 내의 서명 정보를 서명 인증 서버의 서명 정보로 갱신함으로써 조작 여부를 효과적으로 탐지할 수 있는 장점이 있다.
도 1은 일반적인 안드로이드 기반의 애플리케이션 리패키징 절차를 나타낸 흐름도이다.
도 2는 안드로이드 기반의 애플리케이션 파일 구조를 나타내는 도면이다.
도 3은 안드로이드 기반의 애플리케이션 파일에 대한 디컴파일 단계를 나타내는 도면이다.
도 4는 본 발명에 따른 모바일 애플리케이션 파일의 조작 여부 탐지 개념을 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 모바일 애플리케이션 파일의 조작 여부 탐지 시스템을 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 사용자 단말에서 모바일 애플리케이션 파일 조작 여부 탐지 기능을 수행하는 세부 구조를 나타내는 블록도이다.
도 7은 본 발명의 실시예에 따른 모바일 애플리케이션 파일 조작 여부 탐지 절차를 나타내는 흐름도이다.
도 8은 본 발명의 실시예에 따른 서명 정보를 비교하는 세부 절차를 나타내는 흐름도이다.
도 9는 본 발명의 다른 실시예에 따른 모바일 애플리케이션 파일 조작 여부 탐지 절차를 나타내는 흐름도이다.
도 10은 본 발명의 실시예에 따른 서명 정보의 예를 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는 적절하게 설명된다면 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 발명은 시그니처(서명 정보)가 파일 내에 포함된 안드로이드 기반의 애플리케이션 파일(예컨대, APK 파일)을 역분석하여 리패키징한 경우, 상기 파일 내에 포함된 서명 정보를 확인하여 검증함으로써 파일의 조작 여부를 탐지할 수 있는 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체를 개시한다.
이때, 본 발명의 실시예에 따라 해당 애플리케이션 파일에 대한 서명 정보를 사용자 단말 내에 저장하고, 애플리케이션 파일을 역분석하여 리패키징한 때, 애플리케이션 파일 내에 포함된 서명 정보를 상기 사용자 단말 내에 저장된 서명 정보와 비교하여 검증함으로써 조작 여부를 효과적으로 탐지할 수 있다.
또한, 본 발명의 실시예에 따라 애플리케이션 파일을 역분석하여 리패키징한 때, 애플리케이션 파일 내에 포함된 서명 정보를 온라인을 통해 서명 인증 서버에 저장된 서명 정보와 비교하여 검증함으로써 조작 여부를 탐지할 수도 있다.
아울러, 상기 사용자 단말 내에 포함된 서명 정보를 상기 서명 인증 서버에 저장된 서명 정보와 비교하고, 비교 결과 서명 정보가 서로 상이할 경우, 단말 내의 서명 정보를 상기 서명 인증 서버의 서명 정보로 갱신함으로써 조작 여부를 보다 효과적으로 탐지할 수 있다.
한편, 후술하는 설명에서의 사용자 단말은 일반적인 데스크톱 컴퓨터뿐만 아니라 스마트폰을 포함하는 개념으로서, 이동 통신 단말기, 데스크톱 컴퓨터, 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant: PDA), 웹 패드 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기라면 얼마든지 본 발명에 따른 사용자 단말로서 채택될 수 있다.
또한, 후술하는 설명에서의 애플리케이션 파일은 서명 정보가 파일 내에 포함되어 배포되는 어떠한 애플리케이션 파일도 본 발명의 애플리케이션 파일에 포함될 수 있으며, 이하에서는 안드로이드 기반의 애플리케이션 파일을 예로 들어 설명하기로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
먼저, 도 4 내지 도 6을 참조하여 본 발명의 실시예에 따른 시스템 및 장치의 구조를 설명하며, 다음으로 도 7 내지 도 9를 참조하여 본 발명의 실시예에 따른 절차를 상세히 설명한다.
애플리케이션 파일 조작 여부 탐지 시스템
도 4는 본 발명에 따른 모바일 애플리케이션 파일 조작 여부 탐지 개념을 나타내는 도면이다. 도 4를 참조하면, 안드로이드 기반의 모바일 애플리케이션과 같이 애플리케이션에 서명 정보가 포함된 모바일 애플리케이션에 대해 본 발명에 따라 상기 서명 정보를 확인함으로써 조작 여부를 탐지할 수 있다.
보다 구체적으로 설명하면, 애플리케이션에 포함된 서명 정보를 추출하고, 이를 사용자 단말(내부 디바이스)에 저장된 서명 정보와 비교함으로써 조작 여부를 탐지할 수 있다. 즉, 상기 애플리케이션으로부터 추출한 서명 정보가 사용자 단말 내에 저장된 서명 정보와 일치할 경우 조작된 것이 아닌, 정상적인 개발자가 제작한 애플리케이션으로 판단한다. 그러나, 상기 애플리케이션으로부터 추출한 서명 정보가 사용자 단말 내에 저장된 서명 정보와 상이할 경우 역분석을 통해 조작되고 리패키징된 애플리케이션으로 판단한다.
또한, 온라인을 통해 원격 사이트(예컨대, 애플리케이션을 배포하는 안드로이드 마켓 서버 등)에 저장된 서명 정보를 상기 사용자 단말에 저장된 서명 정보와 비교하여 동기화할 수 있다. 즉, 상기 원격 사이트에 저장된 서명 정보가 사용자 단말에 저장된 서명 정보와 다를 경우, 상기 사용자 단말에 저장된 서명 정보를 원격 사이트에 저장된 서명 정보로 갱신한다.
도 5는 본 발명의 실시예에 따른 모바일 애플리케이션 파일 조작 여부 탐지 시스템을 나타내는 도면이다. 도 5를 참조하면, 사용자 단말(510) 내에는 애플리케이션(511)이 저장되고, 상기 애플리케이션(511)은 서명 정보(512)를 포함하고 있다. 상기 서명 정보(512)는 애플리케이션 생성시 사용자가 설정하는 키 값 및/또는 패스워드 등에 의해 생성되는 정보로서 해쉬 코드 등에 의해 암호화되어 저장되는 것이 바람직하다.
또한, 서명 인증 서버(530)에는 배포용 애플리케이션(531)이 저장될 수 있으며, 상기 애플리케이션(531)에 대한 서명 정보(532)도 함께 저장된다. 이밖에도, 도 5에 도시되지는 않았지만 서명 인증 서버(530)는 사용자 단말(510)로부터 상기 배포용 애플리케이션이나 상기 서명 정보의 요청을 수신하는 수신부 및/또는 상기 요청에 대응하여 상기 배포용 애플리케이션이나 상기 서명 정보를 상기 사용자 단말(510)로 제공하는 제공부를 포함할 수 있다.
한편, 본 발명에 따라 상기 사용자 단말(510)에는 애플리케이션(511)을 최초 실행시에 서명 정보가 저장되는 것이 바람직하며, 여기서 서명 정보는 리패키징이 이루어지기 전의 원본 애플리케이션이 갖고 있는 서명 정보를 의미한다. 한편, 애플리케이션(511)이 조작된 후 리패키징될 경우, 상기 리패키징된 애플리케이션(511)의 실행시마다 서명 정보를 추출하여 사용자 단말(510)에 기저장된 서명 정보와 비교함으로써 조작 여부를 탐지한다.
통신 네트워크(520)는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN; Personal Area Network), 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다. 또한, 상기 통신 네트워크(520)는 공지의 월드와이드웹(WWW; World Wide Web)일 수 있으며, 적외선(Infrared Data Association; IrDA) 또는 블루투스(Bluetooth)와 같이 단거리 통신에 이용되는 무선전송기술을 이용할 수도 있다.
애플리케이션 파일 조작 여부 탐지 장치
도 6은 본 발명의 실시예에 따른 사용자 단말에서 모바일 애플리케이션 파일 조작 여부 탐지 기능을 수행하는 세부 구조를 나타내는 블록도이다. 본 발명에 따라 모바일 애플리케이션 실행시 자체적으로 자신의 서명 정보가 유효한지 여부를 판단한다. 이때, 상기 판단을 위해 모바일 애플리케이션으로부터 직접 서명 정보를 추출하고, 사용자 단말에 기저장된 서명 정보와 비교함으로써 애플리케이션의 리패키징 또는 조작 여부를 판단하게 된다. 또한, 본 발명의 실시예에 따른 파일 리패키징 탐지 장치의 각 기능들은 애플리케이션 내에 포함되어 동작할 수 있다.
즉, 도 6을 참조하면, 본 발명의 실시예에 따라 사용자 단말 내에는 모바일 애플리케이션의 파일 조작 여부 탐지를 위해 앱 실행부(610), 서명 인증부(620) 등을 포함하여 구성될 수 있으며, 상기 서명 인증부(620)는 로컬 서명 정보 추출부(621), 해쉬 코드 추출부(622), 서명 비교부(623), 해쉬 코드 생성부(624), 앱 서명 정보 추출부(625), 서명 정보 갱신부(626), 서명 정보 수신부(627), 온라인 상태 감지부(628), 서명 정보 요청부(629), 로그 정보 추출부(631) 및 로그 정보 전송부(632) 등을 포함하여 구성될 수 있다.
먼저, 사용자 단말에 저장된 모바일 애플리케이션이 최초 실행될 때, 앱 실행부(610)에서는 앱 서명 정보 추출부(625)에 앱 실행 정보를 전송한다. 이때, 앱 서명 정보 추출부(625)에서는 본 발명의 실시예에 따라 APK 파일 내에 포함된 서명 정보를 추출하여 로컬 서명 정보(512)로 사용자 단말 내에 저장한다. 또한, 본 발명의 실시예에 따라 모바일 애플리케이션이 최초 설치될 때 APK 파일 내에 포함된 서명 정보를 추출하여 로컬 서명 정보(512)로 사용자 단말 내에 저장하도록 할 수도 있다.
이에 따라, 사용자가 리패키징하기 전 원본 APK 파일에 포함된 서명 정보를 사용자 단말 내에 저장함으로써 후술하는 절차에 따라 리패키징 파일의 서명 정보와 비교하여 조작 여부를 판단하게 된다.
따라서, 상술한 바와 같이 사용자가 원본 APK 파일을 디컴파일하여 소스를 수정한 다음 리패키징한 후, 상기 리패키징된 애플리케이션을 실행하면, 앱 실행부(610)에서는 실행 정보를 로컬 서명 정보 추출부(621)로 제공한다. 이때, 로컬 서명 정보 추출부(621)에서는 상술한 바와 같이 모바일 애플리케이션의 최초 실행 시 추출하여 사용자 단말(510)에 기저장된 로컬 서명 정보(512)를 추출한다. 그런 다음, 해쉬 코드 추출부(622)에서는 상기 추출된 로컬 서명 정보를 공개키와 연산하여 해쉬 코드를 추출한다. 한편, 로컬 서명 정보(512)는 상술한 바와 같이 애플리케이션의 설치 후 최초 실행되는 경우에 한하여 앱 서명 정보 추출부(625)에 의해 추출되어 저장될 수 있으나 반드시 이에 한정되는 것은 아니다.
한편, 앱 실행부(610)에서는 모바일 애플리케이션의 실행 정보를 앱 서명 정보 추출부(625)로도 제공한다. 앱 서명 정보 추출부(625)에서는 리패키징된 APK 파일로부터 서명 정보를 추출한다. 그런 다음, 해쉬 코드 생성부(624)에서는 추출된 서명 정보를 해쉬 함수에 의해 연산하여 해쉬 코드를 생성한다.
서명 비교부(623)에서는 사용자 단말에 저장된 상기 로컬 서명 정보(512)로부터 추출하여 생성한 해쉬 코드와 상기 리패키징된 APK 파일로부터 추출하여 생성한 해쉬 코드를 서로 비교함으로써 서명 정보의 일치 여부를 판단한다. 또는, 해쉬 코드의 생성 없이 로컬 서명 정보(512)와 APK 파일에 포함된 서명 정보를 직접 비교할 수도 있다.
상기 서명 비교부(623)의 판단 결과, 사용자 단말에 저장된 로컬 서명 정보와 APK 파일에 포함된 서명 정보가 일치하지 않을 경우, 앱 실행부(610)로 실행 중지 명령을 전송할 수 있으며, 앱 실행부(610)에서는 상기 APK 파일의 실행을 중단시키고 애플리케이션을 종료할 수 있다.
반면, 상기 서명 비교부(623)의 판단 결과, 사용자 단말에 저장된 로컬 서명 정보와 APK 파일에 포함된 서명 정보가 일치할 경우, 앱 실행부(610)로 애플리케이션 실행 명령을 전송할 수 있으며, 앱 실행부(610)에서는 상기 APK 파일의 실행 작업을 정상적으로 진행할 수 있다.
한편, 본 발명의 실시예에 따라 상기 서명 비교부(623)의 판단 결과, 사용자 단말에 저장된 로컬 서명 정보와 APK 파일에 포함된 서명 정보가 일치할 경우, 서명 인증 서버(530)에 저장된 온라인 서명 정보(532)를 로컬 서명 정보와 동기화시킬 수 있다.
즉, 온라인 상태 감지부(628)에서는 사용자 단말의 온라인 연결 상태를 감지하고, 정상적으로 온라인 연결이 가능할 경우, 서명 정보 요청부(629)에서는 서명 인증 서버(530)로 해당 애플리케이션에 대한 온라인 서명 정보(532)를 요청한다. 서명 인증 서버(530)에서는 상기 요청에 따라 온라인 서명 정보(532)를 사용자 단말로 제공한다.
그런 다음, 서명 정보 수신부(627)에서는 상기 서명 인증 서버(530)로부터 온라인 서명 정보(532)를 수신하고, 서명 비교부(623)를 통해 로컬 서명 정보(512)와 비교한다.
상기 비교 결과, 로컬 서명 정보(512)가 수신된 온라인 서명 정보(532)와 상이할 경우, 로컬 서명 정보(512)를 수신된 온라인 서명 정보(532)로 갱신하며, 앱 실행부(610)로 실행 중지 명령을 전송할 수 있으며, 앱 실행부(610)에서는 상기 APK 파일의 실행을 중단시키고 애플리케이션을 종료할 수 있다.
반면, 상기 비교 결과, 로컬 서명 정보(512)가 수신된 온라인 서명 정보(532)와 동일할 경우, 앱 실행부(610)로 애플리케이션 실행 명령을 전송할 수 있으며, 앱 실행부(610)에서는 상기 APK 파일의 실행 작업을 정상적으로 진행할 수 있다.
한편, 본 발명의 실시예에 따라 상기 서명 비교부(623)의 판단 결과, 사용자 단말에 저장된 로컬 서명 정보와 APK 파일에 포함된 서명 정보가 일치하지 않을 경우, 로그 정보 추출부(631)에서는 상기 사용자 단말 또는 애플리케이션의 로그 정보를 추출하여 로그 정보 전송부(632)를 통해 서명 인증 서버(530)로 전송한다.
서명 인증 서버(530)에서는 이와 같이 각 사용자 단말로부터 로그 정보를 수신하고, 이를 목록화하여 관리(예컨대, 블랙 리스트로 관리)함으로써 리패키징을 통해 조작된 애플리케이션에서 발생할 수 있는 각종 어뷰징 행위를 차단할 수 있다.
애플리케이션 파일 조작 여부 탐지 방법
도 7은 본 발명의 실시예에 따른 모바일 애플리케이션 파일 조작 여부 탐지 절차를 나타내는 흐름도이다. 도 7을 참조하면, 리패키징된 애플리케이션에 대해 실행이 요청(S701)되면, 본 발명의 실시예에 따라 애플리케이션 내에 포함된 프로세스에 의해 조작 여부를 판단한다. 즉, 애플리케이션에 포함된 서명 정보를 추출(S702)하고, 추출한 서명 정보를 사용자 단말 내에 저장된 서명 정보와 비교(S703)한다. 여기서 사용자 단말 내에 저장된 서명 정보는 애플리케이션의 설치 후 최초 실행 시 추출하는 방식 등에 의해 사용자 단말 내에 저장되며, 리패키징되지 않고 정당하게 개발된 애플리케이션으로부터 추출된 서명 정보를 의미한다.
상기 비교 결과, 서명이 일치하지 않은 경우(S704)에는 애플리케이션의 실행을 종료(S707)시킨다. 반면, 상기 비교 결과, 서명이 일치할 경우, 애플리케이션을 정상적으로 실행(S705)한다. 상기 애플리케이션 실행 후 사용자가 실행 중인 애플리케이션에 대한 종료를 요청(S706)하면, 해당 애플리케이션의 실행을 종료(S707)시킨다.
도 8은 본 발명의 실시예에 따른 서명 정보를 비교하는 세부 절차를 나타내는 흐름도이다. 상기 도 7에서 애플리케이션의 서명 정보와 사용자 단말에 저장된 서명 정보를 비교하는 S703 단계의 절차는 본 발명의 실시예에 따라 다음과 같이 진행될 수 있다.
도 8을 참조하면, 먼저 사용자 단말 내에 저장된 서명 정보를 추출(S801)한다. 그런 다음, 추출된 서명 정보를 공개키로 복호화하여 해쉬 코드를 추출(S082)한다.
또한, 애플리케이션에 포함된 서명 정보를 추출(S803)함으로써 애플리케이션의 서명 정보를 추출한다. 즉, 추출된 서명 정보를 해쉬 함수로 연산하여 해쉬 코드를 생성(S804)하고, 상기 사용자 단말 내에 저장된 서명 정보로부터 추출한 해쉬 코드와 상기 애플리케이션에 포함된 서명 정보로부터 연산한 해쉬 코드를 서로 비교(S805)함으로써 악의적인 조작 후 리패키징하였는지 여부를 탐지한다. 단 전술한 바와 같이 추출되는 서명정보들을 비교할 때 반드시 해쉬 코드를 생성해야 하는 것은 아니다.
도 9는 본 발명의 다른 실시예에 따른 모바일 애플리케이션 파일 조작 여부 탐지 절차를 나타내는 흐름도이다. 도 9를 참조하면, 리패키징된 애플리케이션에 대해 실행이 요청(S901)되면, 본 발명의 실시예에 따라 애플리케이션 내에 포함된 프로세스에 의해 조작 여부를 판단한다. 즉, 애플리케이션에 포함된 서명 정보를 추출(S902)하고, 추출한 서명 정보를 사용자 단말 내에 저장된 서명 정보와 비교(S903)한다. 여기서 사용자 단말 내에 저장된 서명 정보는 전술한 바와 같이 애플리케이션의 설치 후 최초 실행 시 추출하는 방식 등에 의해 사용자 단말 내에 저장되며, 리패키징 되지 않고 정당하게 개발된 애플리케이션으로부터 추출된 서명 정보를 의미한다. 상기 비교 결과, 서명이 일치하지 않은 경우(S904)에는 애플리케이션의 실행을 종료(S912)시킨다.
반면, 상기 비교 결과, 서명이 일치할 경우, 본 발명의 다른 실시예에 따라 사용자 단말이 온라인 상태인지를 판단(S905)한다. 상기 판단 결과 사용자 단말이 온라인 상태가 아닐 경우, 애플리케이션의 실행을 종료(S912)시킨다.
그러나, 상기 판단 결과 사용자 단말이 온라인 상태일 경우(S905), 서명 인증 서버에 온라인 서명 정보를 요청(S906)한다. 그런 다음, 수신된 온라인 서명 정보를 사용자 단말 내에 저장된 서명 정보와 비교(S907)한다.
상기 비교 결과, 수신된 온라인 서명 정보가 사용자 단말 내에 저장된 서명 정보와 일치할 경우(S908), 해당 애플리케이션을 실행(S910)한다. 상기 애플리케이션 실행 후 사용자가 실행 중인 애플리케이션에 대한 종료를 요청(S911)하면, 해당 애플리케이션의 실행을 종료(S912)시킨다.
반면, 상기 비교 결과, 수신된 온라인 서명 정보가 사용자 단말 내에 저장된 로컬 서명 정보와 일치하지 않는 경우(S908), 수신된 온라인 서명 정보로 사용자 단말 내에 저장된 로컬 서명 정보를 갱신(S909)하고, 추가적으로 애플리케이션의 실행을 종료시킬 수도 있으며, 사용자 단말 또는 애플리케이션의 로그 정보를 추출하여 서명 인증 서버로 전송하고, 전송된 로그 정보는 목록화하여 관리될 수도 있다.
한편, 본 발명의 다른 실시예에 따라 상기 온라인 서명 정보 비교를 서버(예컨대, 서명 인증 서버(530))에서 비교하도록 구현할 수도 있다. 보다 구체적으로 설명하면, 상기 S904 단계에서 서명이 일치하고, S905 단계에서 단말이 온라인 상태일 경우, 사용자 단말 내에 저장된 서명 정보를 서버로 전송하여 온라인 서명 정보와 비교하도록 한다. 즉, 서버의 수신부는 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 사용자 단말 내에 저장된 서명 정보를 수신하고, 상기 수신된 서명 정보를 서버에 기저장된 온라인 서명 정보와 비교한다. 상기 비교 결과 일치하지 않을 경우, 상기 서버의 제공부에서는 상기 온라인 서명 정보를 상기 사용자 단말로 전송하여, 사용자 단말 내에 저장된 서명 정보를 갱신하도록 한다.
실시예
도 10은 본 발명의 실시예에 따른 서명 정보의 예를 나타내는 도면이다. 도 10을 참조하면, 사용자 단말에 저장된 애플리케이션에 대해 리패키징을 탐지하기 위한 프로그램은 애플리케이션이 실행될 때 도시된 바와 같은 정보들을 확인하여 리패키징 여부를 판단한다. 예컨대, 사용자 단말에 저장된 서명 정보(1010)를 추출하고, 이를 공개키로 복호화하여 해쉬 코드(1020)를 추출한다.
또한, 애플리케이션에 포함된 서명의 바이너리 정보(1030)를 해쉬 함수에 의해 연산함으로써 해쉬 코드를 생성하고, 이를 사용자 단말에 저장된 서명 정보를 복호화하여 추출한 해쉬 코드와 비교함으로써 애플리케이션의 조작 또는 리패키징 여부를 확인할 수 있다.
여기에서 다양한 방법들에 관해 설명된 바와 같은 다양한 동작들 및 기능들은 특정 프로세싱 기능부 및/또는 그 안에 구현된 프로세싱 기능부, 및/또는 그 안의 다른 구성요소들과 같은 많은 유형의 기능부들 중 어느 것 내에서 수행될 수 있다. 예를 들면, 그러한 기능부들은 여기에 설명된 바와 같은 다양한 동작들 및 처리들, 또는 여기에 설명된 바와 같은 어느 다른 동작들 및 기능들, 등 또는 그 각 등가물들을 수행하는 것뿐만 아니라 여기에 설명된 바와 같은 그러한 정보들을 생성하고 그러한 동작들, 처리들 등을 수행할 수 있다.
일부 실시예들에서, 그러한 기능부들(동일한 장치 또는 구별된 장치들상에서 구현될 수 있는)은 본 발명의 다양한 측면들에 따른 그러한 처리 및 동작들, 등, 및/또는 여기에 개시된 바와 같은 어느 다른 동작들 및 기능들, 및 그 각 등가물들을 수행할 수 있다. 일부 실시예들에서, 그러한 처리는 제1 장치에서의 제1 기능부, 및 제2 장치 내의 제2 기능부에 의해 함께 수행된다. 다른 실시예들에서, 그러한 프로세싱, 동작들 등은 하나의 특정 장치 내에서 처리부들에 의해 전적으로 수행된다. 심지어 다른 실시예들에서는, 그러한 프로세싱, 동작들이 하나의 단일 디바이스내에서 적어도 제1 기능부 및 제2 기능부를 사용하여 수행된다.
또한 상술한 설명에서, 용어들 '시스템', '장치', '~부'는 단일 프로세싱 디바이스 또는 복수의 프로세싱 디바이스들일 수 있다. 그러한 프로세싱 디바이스는 마이크로 프로세서, 마이크로 컨트롤러, 디지털 신호 처리기, 마이크로 컴퓨터, 중앙 처리 유닛, 필드 프로그래머블 게이트 어레이, 프로그래머블 로직 디바이스, 스테이트 머신, 로직 회로, 아날로그 회로, 디지털 회로, 및/또는 상기 회로 및/또는 동작 지시들의 하드 코딩에 기반하여 신호들(아날로그 및/또는 디지털)을 조작하는 소정의 디바이스일 수 있다. 상기 프로세싱 모듈, 모듈, 프로세싱 회로, 및/또는 프로세싱 유닛은 단일 메모리 디바이스, 복수의 메모리 디바이스들, 및/또는 상기 프로세싱 모듈, 모듈, 프로세싱 회로, 및/또는 프로세싱 유닛의 내장된 회로일 수 있는 결합된 메모리 및/또는 집적된 메모리 엘리먼트를 가질 수 있다. 그러한, 메모리 디바이스는 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 휘발성 메모리, 비휘발성 메모리, 정적 메모리, 동적 메모리, 플래시 메모리, 캐시 메모리, 및/또는 디지털 정보를 저장하는 소정의 디바이스일 수 있다. 만약, 상기 프로세싱 모듈, 모듈, 프로세싱 회로, 및/또는 프로세싱 유닛이 하나 이상의 프로세싱 디바이스를 포함한다면, 상기 프로세싱 디바이스들은 집중적으로 위치될 수 있거나(즉, 유선 및/또는 무선 버스 구조를 통해 함께 직접적으로 연결된), 분산되어 위치될 수 있음(예컨대, 근거리 통신망 및/또는 광역 네트워크를 통한 간접적인 연결을 통한 클라우드 컴퓨팅)을 주목하여야 한다. 만약, 상기 프로세싱 모듈, 모듈, 프로세싱 회로, 및/또는 프로세싱 유닛이 정적 머신, 아날로그 회로, 디지털 회로, 및/또는 회로, 저장하는 메모리 및/또는 메모리 구성요소를 통해 하나 이상의 그 기능들을 구현한다면, 그 대응하는 동작 지시들은 상기 정적 머신, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 포함하는 회로의 내부에 내장되거나 외부에 있을 수 있음을 더 주목하여야 한다. 상기 메모리 엘리먼트는 저장할 수 있으며, 상기 프로세싱 모듈, 모듈, 프로세싱 회로, 및/또는 프로세싱 유닛은 상기 도면들 중 하나 이상에서 나타내는 단계들 및/또는 기능들 중 적어도 일부에 대응하는 하드 코딩된 및/또는 동작 지시들을 실행한다는 것을 여전히 더 주목하여야 한다. 그러한 메모리 디바이스 또는 메모리 엘리먼트는 제조의 부품 내에서 포함될 수 있다.
본 발명은 특정 기능들 및 그의 관계들의 성능을 나타내는 방법 단계들의 목적을 가지고 위에서 설명되었다. 이러한 기능적 구성 요소들 및 방법 단계들의 경계들 및 순서는 설명의 편의를 위해 여기에서 임의로 정의되었다. 상기 특정 기능들 및 관계들이 적절히 수행되는 한 대안적인 경계들 및 순서들이 정의될 수 있다. 임의의 그러한 대안적인 경계들 및 순서들은 그러므로 상기 청구된 발명의 범위 및 사상 내에 있다. 추가로, 이러한 기능적 구성 요소들의 경계들은 설명의 편의를 위해 임의로 정의되었다. 어떠한 중요한 기능들이 적절히 수행되는 한 대안적인 경계들이 정의될 수 있다. 마찬가지로, 흐름도 블록들은 또한 어떠한 중요한 기능성을 나타내기 위해 여기에서 임의로 정의되었을 수 있다. 확장된 사용을 위해, 상기 흐름도 블록 경계들 및 순서는 정의되었을 수 있으며 여전히 어떠한 중요한 기능을 수행한다. 기능적 구성 요소들 및 흐름도 블록들 및 순서들 둘 다의 대안적인 정의들은 그러므로 청구된 본 발명의 범위 및 사상 내에 있다. 당업자는 또한 여기에서의 상기 기능적 구성 요소들 및 다른 도시된 블록들, 모듈들, 및 구성요소들이 도시된 바와 같이 또는 분리된 구성요소들, 반도체 집적 회로(ASIC)들, 적절한 소프트웨어를 실행하는 프로세서들 및 그와 유사한 또는 임의의 조합에 의해 구현될 수 있음을 인지할 것이다.
본 발명은 또한 하나 이상의 실시예들의 용어로, 적어도 부분적으로 설명되었을 수 있다. 본 발명의 실시예는 본 발명, 그 측면, 그 특징, 그 개념, 및/또는 그 예를 나타내기 위해 여기에서 사용된다. 본 발명을 구현하는 장치, 제조의 물건, 머신, 및/또는 프로세스의 물리적인 실시예는 여기에 설명된 하나 이상의 실시예들을 참조하여 설명된 하나 이상의 측면들, 특징들, 개념들, 예들 등을 포함할 수 있다. 더구나, 전체 도면에서, 실시예들은 상기 동일한 또는 상이한 참조 번호들을 사용할 수 있는 상기 동일하게 또는 유사하게 명명된 기능들, 단계들, 모듈들 등을 통합할 수 있으며, 그와 같이, 상기 기능들, 단계들, 모듈들 등은 상기 동일한 또는 유사한 기능들, 단계들, 모듈들 등 또는 다른 것들일 수 있다.
한편, 용어 "~처리부"는 본 발명의 다양한 실시예들의 설명에서 사용된다. 모듈은 하나 이상의 출력 신호들을 생성하기 위해 하나 이상의 입력 신호들의 처리와 같은 하나 이상의 기능들을 수행하기 위해 하드웨어를 통해 구현되는 기능적 블록을 포함한다. 상기 기능적 블록을 구현하는 하드웨어는 소프트웨어 및/또는 펌웨어를 결합하여 직접 동작할 수 있다. 여기에서 사용된 바와 같이, 모듈은 자체적으로 모듈인 하나 이상의 서브-모듈들을 포함할 수 있다.
본 발명의 여러가지 기능들 및 특정들의 특별한 조합들이 여기에 분명히 설명된 반면, 이러한 특징들 및 기능들의 다른 조합들이 마찬가지로 가능하다. 본 발명은 여기에 개시된 특정한 예들에 제한되지 않으며, 이러한 다른 조합들을 명백히 통합한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
510 : 사용자 단말 511 : 애플리케이션
512 : 서명 정보 520 : 통신 네트워크
530 : 서명 인증 서버 531 : 애플리케이션
532 : 서명 정보 610 : 앱 실행부
620 : 서명 인증부 621 : 로컬 서명 정보 추출부
622 : 해쉬 코드 추출부 623 : 서명 비교부
624 : 해쉬 코드 생성부 625 : 앱 서명 정보 추출부
626 : 서명 정보 갱신부 627 : 서명 정보 수신부
628 : 온라인 상태 감지부 629 : 서명 정보 요청부

Claims (14)

  1. 삭제
  2. 모바일 애플리케이션 파일 조작 여부 탐지 장치에 있어서,
    사용자 단말로부터의 요청을 수신하는 수신부; 및
    상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 제공부를 포함하고,
    상기 모바일 애플리케이션은,
    최초 실행시 또는 최초 설치시 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부; 및
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부를 포함하고,
    상기 서명 비교부는,
    상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하지 않을 경우, 상기 모바일 애플리케이션에 대한 실행을 중단시키는, 모바일 애플리케이션 파일 조작 여부 탐지 장치.
  3. 모바일 애플리케이션 파일 조작 여부 탐지 장치에 있어서,
    사용자 단말로부터의 요청을 수신하는 수신부; 및
    상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 제공부를 포함하고,
    상기 모바일 애플리케이션은,
    최초 실행시 또는 최초 설치시 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부; 및
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부를 포함하고,
    상기 수신부는 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제3 서명 정보의 요청을 더 수신받고,
    상기 제공부는 상기 제3 서명 정보의 요청에 대응하여 상기 장치 내에 저장된 상기 제3 서명 정보를 상기 사용자 단말로 제공하며,
    상기 제3 서명 정보의 요청은 상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하는 경우 발생되는, 모바일 애플리케이션 파일 조작 여부 탐지 장치.
  4. 모바일 애플리케이션 파일 조작 여부 탐지 장치에 있어서,
    사용자 단말로부터의 요청을 수신하는 수신부; 및
    상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 제공부를 포함하고,
    상기 모바일 애플리케이션은,
    최초 실행시 또는 최초 설치시 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부; 및
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부를 포함하고,
    상기 수신부는 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제2 서명 정보를 더 수신받고,
    상기 제공부는 상기 제2 서명 정보와 상기 장치 내에 저장된 제3 서명 정보가 일치하지 않을 경우, 상기 제3 서명 정보를 상기 사용자 단말로 전송하는, 모바일 애플리케이션 파일 조작 여부 탐지 장치.
  5. 청구항 3 또는 4에 있어서, 상기 모바일 애플리케이션은,
    상기 장치로부터 상기 제3 서명 정보를 수신하는 서명 수신부를 더 포함하고,
    상기 서명 비교부는, 상기 수신한 제3 서명 정보가 상기 사용자 단말 내에 저장된 상기 제2 서명 정보와 일치하지 않을 경우 상기 제2 서명 정보를 상기 제3 서명 정보로 갱신시키는, 모바일 애플리케이션 파일 조작 여부 탐지 장치.
  6. 청구항 5에 있어서, 상기 서명 비교부는,
    상기 수신한 제3 서명 정보가 상기 사용자 단말 내에 저장된 상기 제2 서명 정보와 일치하지 않을 경우, 상기 모바일 애플리케이션에 대한 실행을 중단시키는, 모바일 애플리케이션 파일 조작 여부 탐지 장치.
  7. 모바일 애플리케이션 파일 조작 여부 탐지 장치에 있어서,
    사용자 단말로부터의 요청을 수신하는 수신부; 및
    상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 제공부를 포함하고,
    상기 모바일 애플리케이션은,
    최초 실행시 또는 최초 설치시 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부;
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부;,
    상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하지 않을 경우, 상기 사용자 단말 또는 상기 모바일 애플리케이션에 포함된 사용자 로그 정보를 추출하는 로그 정보 추출부; 및
    상기 추출된 로그 정보를 상기 장치로 전송하는 로그 정보 전송부를 포함하는, 모바일 애플리케이션 파일 조작 여부 탐지 장치.
  8. 모바일 애플리케이션 파일 조작 여부 탐지 시스템에 있어서,
    상기 모바일 애플리케이션을 사용자 단말에 제공하는 서명 인증 서버 장치; 및
    상기 서명 인증 서버로부터 상기 모바일 애플리케이션을 제공받아 설치하는 사용자 단말을 포함하며,
    상기 모바일 애플리케이션은,
    최초 실행시 또는 최초 설치시, 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하고, 재실행시 상기 모바일 애플리케이션로부터 제2 서명 정보를 추출하는 앱 서명 정보 추출부; 및
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하고, 상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 서명 비교부를 포함하고,
    상기 서명 비교부는,
    상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하지 않을 경우, 상기 모바일 애플리케이션에 대한 실행을 중단시키는, 모바일 애플리케이션 파일 조작 여부 탐지 시스템.


  9. 삭제
  10. 모바일 애플리케이션 파일 조작 여부 탐지 방법에 있어서, 서명 인증 서버 장치에 의해 수행되는 각 단계가,
    사용자 단말으로부터의 요청을 수신하는 단계; 및
    상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 단계를 포함하고,
    상기 모바일 애플리케이션은,
    최초 실행시, 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하는 단계;
    재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 단계;
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 단계를 수행하고,
    상기 모바일 애플리케이션의 실행 여부를 결정하는 단계는,
    상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하지 않을 경우, 상기 모바일 애플리케이션에 대한 실행을 중단시키는 단계인, 모바일 애플리케이션 파일 조작 여부 탐지 방법.
  11. 모바일 애플리케이션 파일 조작 여부 탐지 방법에 있어서, 서명 인증 서버 장치에 의해 수행되는 각 단계가,
    사용자 단말으로부터의 요청을 수신하는 단계; 및
    상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 단계를 포함하고,
    상기 모바일 애플리케이션은,
    최초 실행시, 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하는 단계;
    재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 단계;
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 단계를 수행하고,
    상기 방법은,
    상기 비교 결과 상기 제1 서명 정보와 상기 제2 서명 정보가 일치하는 경우, 상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제3 서명 정보의 요청을 더 수신하는 단계; 및
    상기 제3 서명 정보의 요청에 대응하여 상기 서명 인증 서버 장치 내에 저장된 상기 제3 서명 정보를 상기 사용자 단말로 제공하는 단계를 더 포함하는, 모바일 애플리케이션 파일 조작 여부 탐지 방법.
  12. 모바일 애플리케이션 파일 조작 여부 탐지 방법에 있어서, 서명 인증 서버 장치에 의해 수행되는 각 단계가,
    사용자 단말으로부터의 요청을 수신하는 단계; 및
    상기 요청에 대응하여 모바일 애플리케이션을 상기 사용자 단말에 제공하는 단계를 포함하고,
    상기 모바일 애플리케이션은,
    최초 실행시, 상기 모바일 애플리케이션으로부터 제1 서명 정보를 추출하여 상기 사용자 단말 내에 저장하는 단계;
    재실행시 상기 모바일 애플리케이션으로부터 제2 서명 정보를 추출하는 단계;
    상기 제1 서명 정보와 상기 제2 서명 정보를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 모바일 애플리케이션의 실행 여부를 결정하는 단계를 수행하고,
    상기 방법은
    상기 사용자 단말로부터 상기 모바일 애플리케이션에 대한 제2 서명 정보를 수신받는 단계; 및
    상기 제2 서명 정보와 상기 장치 내에 저장된 제3 서명 정보가 일치하지 않을 경우, 상기 제3 서명 정보를 상기 사용자 단말로 전송하는 단계;를 더 포함하는, 모바일 애플리케이션 파일 조작 여부 탐지 방법.
  13. 청구항 11 또는 12에 있어서, 상기 모바일 애플리케이션은,
    상기 장치로부터 상기 요청한 제3 서명 정보를 수신하고, 상기 수신한 제3 서명 정보가 상기 사용자 단말 내에 저장된 상기 제2 서명 정보와 일치하지 않을 경우, 상기 제2 서명 정보를 상기 제3 서명 정보로 갱신시키는 단계를 더 수행하는, 모바일 애플리케이션 파일 조작 여부 탐지 방법.
  14. 청구항 10 내지 청구항 12 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
KR20120076772A 2012-07-13 2012-07-13 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 KR101494431B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20120076772A KR101494431B1 (ko) 2012-07-13 2012-07-13 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20120076772A KR101494431B1 (ko) 2012-07-13 2012-07-13 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20140027588A KR20140027588A (ko) 2014-03-07
KR101494431B1 true KR101494431B1 (ko) 2015-02-23

Family

ID=50641396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20120076772A KR101494431B1 (ko) 2012-07-13 2012-07-13 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR101494431B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392813B1 (en) 2003-03-17 2003-07-28 Dream To Reality Co Ltd Edms for verifying forgery/alteration and method using the same
KR20060005529A (ko) * 2004-07-13 2006-01-18 엘지엔시스(주) 하드 디스크의 일련번호를 이용한 프로그램의 실행 제어방법
KR20060133305A (ko) * 2005-06-20 2006-12-26 에스케이 텔레콤주식회사 코드 서명 모듈을 장착한 이동통신 단말기를 이용하여애플리케이션의 다운로드를 제어하는 시스템 및 방법
JP2012078953A (ja) 2010-09-30 2012-04-19 Kyocera Mita Corp 改ざん検知装置及び改ざん検知方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392813B1 (en) 2003-03-17 2003-07-28 Dream To Reality Co Ltd Edms for verifying forgery/alteration and method using the same
KR20060005529A (ko) * 2004-07-13 2006-01-18 엘지엔시스(주) 하드 디스크의 일련번호를 이용한 프로그램의 실행 제어방법
KR20060133305A (ko) * 2005-06-20 2006-12-26 에스케이 텔레콤주식회사 코드 서명 모듈을 장착한 이동통신 단말기를 이용하여애플리케이션의 다운로드를 제어하는 시스템 및 방법
JP2012078953A (ja) 2010-09-30 2012-04-19 Kyocera Mita Corp 改ざん検知装置及び改ざん検知方法

Also Published As

Publication number Publication date
KR20140027588A (ko) 2014-03-07

Similar Documents

Publication Publication Date Title
US11100546B2 (en) Method and system for provenance tracking in software ecosystems
JP5900911B2 (ja) 1つ以上のサンドボックス化されたアプリケーションのためのファイルシステムアクセス
KR101740256B1 (ko) 모바일 앱 무결성 보증 장치 및 방법
KR101238572B1 (ko) 신뢰 환경을 지원하기 위한 컴퓨터 판독가능 구성요소의자동 업데이트
US20170116410A1 (en) Software protection
US10019558B2 (en) Controlling licensable features of software using access tokens
US10397191B2 (en) Passing content securely from web browsers to computer applications
CN102982258A (zh) 一种对移动应用程序进行原版校验的系统
Blasco et al. Automated generation of colluding apps for experimental research
CN104424423A (zh) 应用程序的权限确定方法和装置
CN103544434A (zh) 用于确保应用程序安全运行的方法和终端
Alfalqi et al. Android platform malware analysis
JP2012008732A (ja) インストール制御装置およびプログラム
KR101757407B1 (ko) 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
KR101410255B1 (ko) 애플리케이션 파일의 잠재적인 위험성 판별 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
WO2020233044A1 (zh) 一种插件校验方法、设备、服务器及计算机可读存储介质
KR102133251B1 (ko) 애플리케이션 프로그램 보호 방법 및 장치
KR101604891B1 (ko) 실행 파일의 부분 정보를 이용한 소프트웨어 불법 복제 및 표절 탐지 방법 및 이를 이용한 장치
KR101494431B1 (ko) 모바일 애플리케이션 파일 조작 여부 탐지 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
KR101273370B1 (ko) 어플리케이션 위변조 방지 장치 및 방법
Kim et al. Detecting illegally-copied apps on android devices
Heriniaina et al. CoSINcheck to protect users from installing potentially harmfull Android applications
CN110046493B (zh) 一种数据处理方法、装置、设备和机器可读介质
KR101745821B1 (ko) 시큐어 부팅 방법 및 시스템
KR101594643B1 (ko) 실행 파일의 부분 정보에 기반한 소프트웨어 불법 복제 및 표절 탐지 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 6