KR101740256B1 - 모바일 앱 무결성 보증 장치 및 방법 - Google Patents

모바일 앱 무결성 보증 장치 및 방법 Download PDF

Info

Publication number
KR101740256B1
KR101740256B1 KR1020120134418A KR20120134418A KR101740256B1 KR 101740256 B1 KR101740256 B1 KR 101740256B1 KR 1020120134418 A KR1020120134418 A KR 1020120134418A KR 20120134418 A KR20120134418 A KR 20120134418A KR 101740256 B1 KR101740256 B1 KR 101740256B1
Authority
KR
South Korea
Prior art keywords
mobile
developer
app
mobile app
integrity
Prior art date
Application number
KR1020120134418A
Other languages
English (en)
Other versions
KR20140081912A (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 KR1020120134418A priority Critical patent/KR101740256B1/ko
Priority to US13/775,585 priority patent/US20140150096A1/en
Publication of KR20140081912A publication Critical patent/KR20140081912A/ko
Application granted granted Critical
Publication of KR101740256B1 publication Critical patent/KR101740256B1/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]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 실시예에서는 모바일 앱 개발자의 가입 및 등록 요청에 응답하여, 인증 수단을 기반으로 모바일 앱 개발자를 인증하는 개발자 등록 관리부; 및 패키징 상태로 앱 스토어 서버에 업로드된 모바일 앱을 언패키징하여 모바일 앱의 무결성 여부에 대한 검증을 하고, 무결성 검증 결과에 기반하여 모바일 앱에 앱 스토어 서버의 코드 서명 기재 여부를 결정하는 무결성 검증부를 포함하는 모바일 앱 무결성 보증 장치를 제공한다. 이에 따라, 안전한 모바일 생태계를 구축할 수 있는 효과가 있다.

Description

모바일 앱 무결성 보증 장치 및 방법{Apparatus for mobile app integrity assurance and method thereof}
본 발명은 모바일 앱 무결성 보증 장치에 관한 것으로서, 더욱 상세하게는, 자동으로 모바일 앱 무결성을 보증하는 모바일 앱 무결성 보증 장치 및 방법에 관한 것이다.
모바일(mobile) 생태계에서 이동 통신의 혁신과 함께 애플 아이폰, 구글 안드로이드 등 스마트 폰(smart phone) 시장이 폭발적인 성장세를 보이고 있다. 이러한 모바일 생태계의 진화와 함께, 모바일 앱(app: 응용 소프트웨어 혹은 애플리케이션의 줄임말) 개발 및 배포 등에 관한 경쟁과 논의가 활발하게 이루어지고 있다. 이에 따라, 애플 앱 스토어(app store), 안드로이드 마켓 등 애플리케이션(application)과 서비스가 유통되는 시장에서는 자연스럽게 모바일 앱의 보안 및 안정성에 관한 논쟁이 촉발되고 있다. 그 이유는, 개방형 모바일 플랫폼의 마켓 운영 방식은 보안에 매우 취약한 구조이며, 실제로 모바일 악성 코드 감염 등 피해 사례가 증가하고 있기 때문이다. 즉, 개방형 운영 체제(Operating System)를 적용한 스마트폰 등 모바일 디바이스가 빠르게 확산됨에 따라 악성 코드 등 모바일 앱의 무결성, 보안성 등을 분석, 관리, 대응하기 위한 인프라에 대한 요구사항이 커지고 있다.
구체적으로, 모바일 악성 코드는 심비안 등 시장 점유가 높은 전통적인 모바일 운영 체제를 중심으로 많이 발생하고 있으며, 최근에는 안드로이드 등 모바일 오픈 플랫폼의 모바일 생태계를 통해 급격하게 증가하고 있다. 악성 코드의 증가, 보안성의 취약점 등에 대한 우려가 확산됨에 따라 안드로이드 마켓 등 모바일 앱 스토어들은 사용자들이 다운로드 받는 모바일 앱들의 무결성과 보안성을 확인하는 과정에 관심을 가지게 되었다. 특히, 애플 앱 스토어의 경우, 수많은 인력이 모바일 앱의 악성 행위를 탐지하고 분석하는 데 동원되고 있다.
그러나, 일반적인 모바일 앱의 악성 행위를 탐지하는 방법, 다시 말하면, 일반적인 모바일 앱 무결성 보증 장치 및 방법은 자동으로 이루어지지 않아 많은 인력을 요구하는 문제점을 가지고 있다. 이에 따라, 모바일 앱의 무결성을 보증하기 위한 비용 및 시간이 증가하는 문제점이 함께 발생한다.
또한, 일반적인 모바일 앱 무결성 보증 장치 및 방법은, 앱 스토어에 앱을 등록하는 앱 개발자들을 추적하지 못하여, 앱 개발자들의 반복적인 악성 행위를 방지하지 못하는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 안전한 모바일 생태계를 구축할 수 있는 모바일 앱 무결성 보증 장치를 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 앱 스토어에 등록된 앱의 무결성을 확보할 수 있는 자동화된 기술을 제공하는 모바일 앱 무결성 보장 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 모바일 앱 개발자의 가입 및 등록 요청에 응답하여, 인증 수단을 기반으로 상기 모바일 앱 개발자를 인증하는 개발자 등록 관리부; 및 패키징 상태로 앱 스토어 서버에 업로드된 모바일 앱을 언패키징하여 상기 모바일 앱의 무결성 여부에 대한 검증을 하고, 무결성 검증 결과에 기반하여 상기 모바일 앱의 재패키징 타입을 결정하는 무결성 검증부를 포함하는 모바일 앱 무결성 보증 장치를 제공한다.
여기서, 상기 무결성 검증부는, 상기 모바일 앱이 무결성 흠결을 가지고 있는 경우, 상기 모바일 앱에 모바일 무결성 흠결 정보를 포함하여 언패키징 모바일 앱을 재패키징하는 것을 특징으로 한다.
여기서, 상기 무결성 검증부는, 상기 모바일 앱이 무결성인 경우, 언패키징된 모바일 앱을 제 0 내지 제 2타입 중 어느 하나로 재패키징하고, 상기 제 0 타입은 상기 언패키징된 모바일 앱이 상기 모바일 앱 개발자가 업로드한 본래의 상태인 모바일 앱 개발자의 코드 서명만을 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며, 상기 제 1 타입은 상기 모바일 앱이 상기 모바일 앱 개발자의 코드 서명 및 상기 앱 스토어 서버의 코드 서명을 함께 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며, 상기 제 2 타입은 상기 제 1 타입을 암호화하여 상기 언패키징된 모바일 앱을 재패키징한다.
여기서, 상기 암호화는, 상기 사용자의 패스워드의 해쉬 값을 기반으로 이루어지는 것을 특징으로 한다.
여기서, 상기 모바일 앱 무결성 보증 장치는, 상기 모바일 앱 개발자가 업로드한 모바일 앱을 상기 앱 스토어 서버로부터 다운로드하여 상기 무결성 검증부에 제공하는 모바일 앱 등록 관리부를 더 포함한다.
여기서, 상기 모바일 앱 무결성 보증 장치는, 사용자 단말의 상기 앱 스토어 서버의 모바일 앱의 다운로드 요청에 응답하여, 상기 모바일 앱을 상기 사용자 단말에게 제공하는 모바일 앱 설치부를 더 포함한다.
여기서, 상기 모바일 앱 무결성 보증 장치는, 상기 무결성 검증부의 처리 과정에서 관리자의 개입이 필요한 경우, 관리자가 직접적으로 관리할 수 있도록 해주는 시스템 관리 인터페이스를 더 포함한다.
상기 목적을 달성하기 위한 본 발명의 다른 일 측면은, 모바일 앱의 무결성을 보증하는 모바일 앱 무결성 보증 장치에 의해 수행되는 모바일 앱 무결성 보증 방법에 있어서, 모바일 앱 개발자의 가입 및 등록 요청에 응답하여, 인증 수단을 기반으로 상기 모바일 앱 개발자를 인증하는 단계; 패키징 상태로 앱 스토어 서버에 업로드된 모바일 앱을 언패키징하여 상기 모바일 앱의 무결성 여부에 대한 검증을 하는 단계; 및 무결성 검증 결과에 기반하여 상기 모바일 앱의 재패키징 타입을 결정하는 단계를 포함하는 모바일 앱 무결성 보증 방법을 제공한다.
상기 재패키징 타입을 결정하는 단계는, 상기 모바일 앱이 무결성 흠결을 가지고 있는 경우, 상기 모바일 앱에 모바일 무결성 흠결 정보를 포함하여 언패키징 모바일 앱을 재패키징하는 것을 특징으로 한다.
여기서, 상기 재패키징 타입을 결정하는 단계는, 상기 모바일 앱이 무결성인 경우, 언패키징된 모바일 앱을 제 0 내지 제 2타입 중 어느 하나로 재패키징하고, 상기 제 0 타입은 상기 언패키징된 모바일 앱이 상기 모바일 앱 개발자가 업로드한 본래의 상태인 모바일 앱 개발자의 코드 서명만을 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며, 상기 제 1 타입은 상기 모바일 앱이 상기 모바일 앱 개발자의 코드 서명 및 상기 앱 스토어 서버의 코드 서명을 함께 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며, 상기 제 2 타입은 상기 제 1 타입을 암호화하여 상기 언패키징된 모바일 앱을 재패키징한다.
여기서, 상기 암호화는, 상기 사용자의 패스워드의 해쉬 값을 기반으로 이루어지는 것을 특징으로 한다.
여기서, 상기 모바일 앱 무결성 보증 방법은, 상기 모바일 앱 무결성을 검증하기 위하여, 상기 모바일 앱 개발자가 업로드한 모바일 앱을 상기 앱 스토어 서버로부터 다운로드하는 단계를 더 포함한다.
여기서, 상기 모바일 앱 무결성 보증 방법은, 상기 사용자의 상기 앱 스토어 서버의 모바일 앱의 다운로드 요청에 응답하여, 상기 모바일 앱을 상기 사용자에게 제공하는 단계를 더 포함한다.
상기와 같은 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치는, 모바일 앱의 무결성을 확인하고 검증하여, 악성 프로그램 등 위해 요소를 사전에 탐지 및 제거하고, 유사 현상 발생 시에, 개발자를 추적할 수 있는 안전한 모바일 생태계를 구축할 수 있는 효과를 제공한다.
또한, 상기와 같은 본 발명의 실시예에 따른 모바일 앱 무결성 보증 방법은, 모바일 앱 개발자를 인증하고, 등록된 앱의 무결성을 확보할 수 있는 자동화된 기술을 제공하여 안전한 모바일 생태계를 보장함으로써, 앱 스토어 관리자가 악성 프로그램을 관리하기 위해 소비하는 금전적 및 시간적 비용을 줄여줄 수 있는 효과를 제공한다.
도 1은 본 발명의 실시예에 따른 모바일 앱의 무결성을 보증하는 환경을 제공하기 위한 모바일 앱 무결성 보증 환경의 개념을 개략적으로 도시한 도면이다.
도 2는 모바일 앱 무결성 보증 환경을 구현하기 위해서 개발자 단말, 앱 스토어 보안 시스템 및 사용자 단말에서 제공하는 기능을 개략적으로 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치의 개념을 개략적으로 도시한 개념도이다.
도 4는 본 발명의 실시예에 따른 제 0 내지 제 2 타입에 따른 모바일 앱 재패키징 개념을 개략적으로 보여주는 도면이다.
도 5는 본 발명의 실시예에 따른 타입 2의 개념을 보여주기 위한 것으로서, 사용자 단말과 앱 스토어 서버 간의 통신을 보여주는 흐름도이다.
도 6은 모바일 앱 무결성 보증 장치에 의해서 개발자가 인증되는 과정을 보여주는 흐름도이다.
도 7은 모바일 앱 무결성 보증 장치에 의해서 모바일 앱 무결성이 검증되는 과정을 보여주는 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 보다 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 모바일 앱의 무결성을 보증하는 환경을 제공하기 위한 모바일 앱 무결성 보증 환경(100)의 개념을 개략적으로 도시한 도면이다.
모바일 앱 무결성 보증 환경(100)은, 앱 개발자를 인증할 뿐만 아니라, 앱 개발자가 개발한 모바일 앱의 무결성을 검증하여 사용자에게 인증된 개발자가 개발한 안전한 모바일 앱을 제공할 수 있는 환경을 제공한다.
이를 위하여, 모바일 앱 무결성 보증 환경(100)은, 앱 스토어 보안 시스템(200)과, 개발자 단말(310)과, 사용자 단말(320)과, 인증 기관(330)으로 구현될 수 있다.
이때, 앱 스토어 보안 시스템(200)은 인증된 개발자를 앱 스토어 서버(210)에 등록하고, 개발자가 앱 스토어 서버(210)에 등록하고자 하는 모바일 앱의 무결성을 검증하여, 검증된 모바일 앱에 앱 스토어의 코드 서명을 부가하여 앱 스토어 서버(210)에 등록함으로써, 사용자에게 안전한 모바일 앱을 제공할 수 있다. 이를 위하여, 앱 스토어 보안 시스템(200)은, 앱 스토어 서버(210)와, 인증 서버(220)와, 무결성 검증 서버(230)를 포함할 수 있다. 한편, 설명의 편의를 위하여, 인증 서버(220) 및 무결성 검증 서버(230)를 앱 스토어 서버(210)와 별개로 도시하였으나, 인증 서버(220) 및 무결성 검증 서버(230)는, 예를 들면, 앱 스토어 서버(210) 내에 함께 구성될 수 있다. 다시 말하면, 인증 서버(220) 및 무결성 검증 서버(230)는, 예를 들면, 별개의 서버가 아니라 앱 스토어 서버(210) 내에서 하나의 서버로 구현될 수 있다.
먼저, 개발자는 개발자 단말(310)을 통하여 인증 기관(330)으로부터 인증 수단을 제공받고, 인증 수단을 기반으로 앱 스토어 보안 시스템(200)의 앱 스토어 서버(210)에 개발자 등록을 요청한다.
구체적으로, 개발자는 인증 기관(330)에 인증 수단의 발급을 요청하고, 인증 기관(330)은 개발자의 인증 수단의 발급 요청에 따라 인증 수단을 개발자에게 발급한다. 이때, 개발자가 인증 기관(330)에 인증 수단을 요청하고, 인증 기관(330)으로부터 인증 수단을 발급받는 과정은 개발자 단말(310)을 통하여 이루어질 수 있다.
개발자는 인증 기관(330)으로부터 발급받은 인증 수단을 이용하여, 앱 스토어 보안 시스템(200)의 앱 스토어 서버(210)에 개발자 가입 및 등록 요청을 한다.
개발자가 앱 스토어 서버(210)에 개발자 가입 및 등록 요청을 하면, 인증 서버(210)는 개발자가 인증 기관(330)으로부터 발급 받은 인증 수단을 기반으로 개발자를 검증한다.
또한, 앱 스토어 서버(210)는 개발자 검증 결과에 기반하여 개발자를 앱 스토어 서버(210)에 완전히 적합하게 등록할 것인지 또는 등록하지 않을 것인지에 대한 결정을 한다. 즉, 앱 스토어 서버(210)는 개발자 검증 결과에 기반하여 개발자를 앱 스토어 서버(210)에 완전 등록할 것인지에 대해서 결정한다.
구체적으로 예를 들면, 인증 서버(220)가 인증 수단을 기반으로 개발자를 검증하고, 이때, 개발자가 앱 스토어 서버(210)에 가입 및 등록될 수 있는 적합한 개발자로 판단된 경우, 앱 스토어 서버(210)는 개발자를 등록한다.
반면에, 인증 서버(220)가 검증 요청된 개발자의 인증 수단을 기반으로 개발자를 검증하고, 개발자가 앱 스토어 서버(210)에 가입 및 등록될 수 없는 부적합한 개발자로 판단된 경우, 앱 스토어 서버(210)는 개발자의 개발자 가입 및 등록 요청을 무시하고 개발자를 등록하지 않는다.
이때, 인증 서버(220)는, 예를 들면, 검증 요청된 개발자의 인증 수단의 적합성을 검증하기 위하여 인증 기관(330)과 서로 통신할 수 있으며, 개발자의 인증 수단이 인증 기관(330)으로부터 부여 받은 적합한 인증 수단인지 검증한다.
개발자가 앱 스토어 서버(210)에 모바일 앱의 등록 요청과 함께 모바일 앱을 업로드하면, 무결성 검증 서버(230)는 모바일 앱의 무결성을 검증한다.
또한, 앱 스토어 서버(210)는 모바일 앱의 무결성 검증 결과에 기반하여 모바일 앱의 재패키징 타입을 결정한다.
구체적으로 예를 들면, 무결성 검증 서버(230)가 모바일 앱이 무결성임을 검증한 경우, 제 0 내지 제2 타입 중 어느 하나로 모바일 앱을 재패키징한다.
반면에, 무결성 검증 서버(230)가 모바일 앱에 무결성 흠결이 있다고 판단한 경우, 무결성 흠결이 있다는 정보인 무결성 흠결 정보를 포함하여 모바일 앱을 재패키징한다. 모바일 앱의 재패키징에 대한 설명은 차후 도 3을 참고하여 보다 상세하게 설명한다.
사용자는 사용자 단말(320)을 이용하여, 앱 스토어 서버(210)에 접속하고, 인증된 개발자가 업로드한 모바일 앱을 다운받고, 모바일 앱의 코드 서명 및 무결성 흠결 정보를 검증함으로써 최종적으로 모바일 앱의 설치 여부를 결정할 수 있다.
이와 같이, 앱 스토어 서버(210)는 인증된 개발자 및 무결성의 검증 결과가 반영된 모바일 앱을 자신의 서버에 등록함으로써, 사용자에게 악성 코드가 없는 모바일 앱을 제공하여 안전한 모바일 생태계를 구축할 수 있다.
이하, 도 2를 참고하여, 본 발명의 실시예에 따른 모바일 앱 무결성 보증 환경(100)에 대해서 보다 상세하게 살펴본다.
도 2는 모바일 앱 무결성 보증 환경(100)을 구현하기 위해서 개발자 단말(310), 앱 스토어 보안 시스템(200) 및 사용자 단말(320)에서 제공하는 기능을 개략적으로 나타낸 도면이다.
먼저, 모바일 앱 무결성 보증 환경(100)을 구현하기 위해서 개발자 단말(310)이 개발자에게 제공하는 기능에 대해서 살펴본다.
개발자 단말(310)은 앱 스토어 보안 시스템(200)과 상호 연동하여, 최종적으로 인증된 개발자가 개발한 검증된 모바일 앱이 사용자에게 제공될 수 있도록 한다.
이를 위하여, 개발자 단말(310)은 개발자에게 개발자 앱 코드 서명(311)과, 개발자 등록 요청(312)과, 앱 등록 요청(313)의 기능을 제공한다.
개발자 앱 코드 서명(311)은 모바일 앱이 개발된 경우, 개발자가 모바일 앱의 프로그램에 개발자 자신의 코드 서명을 할 수 있도록 한다. 예를 들면, 개발자가 자바(Java)로 모바일 앱을 개발한 경우, 개발자는 자바로 모바일 앱의 프로그램에 자신의 코드 서명을 한다. 다시 말하면, 개발자는 개발자 앱 코드 서명(311)을 통하여 자신의 코드 서명을 모바일 앱의 프로그램에 서명함으로써, 모바일 앱이 누구에 의해 개발된 것인지에 대한 정보를 제공한다. 이에 따라, 언제든지 모바일 앱 개발자가 추적될 수 있다.
개발자 등록 요청(312)은 개발자가 앱 스토어 서버(도 1의 210)에 개발자 가입 및 등록 요청을 할 수 있도록 해준다. 이때, 개발자는 전술한 바와 같이, 인증 기관(도 1의 330)에 인증 수단을 제공받고, 인증 수단을 이용하여 앱 스토어 서버(도 1의 210)에 개발자 가입 및 등록 요청을 하게 된다.
앱 등록 요청(313)은 개발자가 앱 스토어 서버(도 1의 210)에 개발자가 개발한 모바일 앱의 등록 요청 및 업로드를 할 수 있도록 해준다.
다시 말하면, 개발자는 개발자 단말(310)의 개발자 앱 코드 서명(311), 개발자 등록 요청(312) 및 앱 등록 요청(313) 기능을 이용하여, 자신이 개발한 모바일 앱 프로그램에 개발자 앱 코드 서명을 하며, 인증 수단과 함께 앱 스토어 서버(도 1의 210)에 개발자 가입 및 등록 요청과, 모바일 앱의 등록 요청을 한다.
이어서, 모바일 앱 무결성 보증 환경(100)을 구현하기 위해서 모바일 앱 보안 시스템(200)이 제공하는 기능에 대해서 살펴본다.
모바일 앱 보안 시스템(200)은 개발자의 등록 요청 및 모바일 앱의 등록 요청이 있을 경우, 이들을 검증하여 검증된 개발자 및 모바일 앱을 앱 스토어 서버(도 1의 210)에 등록하여 사용자에게 무결성이 보증된 안전한 모바일 앱을 제공한다.
이를 위하여, 모바일 앱 보안 시스템(200)은 앱 스토어 앱 코드 서명(201)과, 앱 무결성 검증(202)과, 개발자 인증 등록 관리(203)의 기능을 제공한다.
앱 스토어 앱 코드 서명(201)은 무결성이 검증된 모바일 앱에 앱 스토어 서버(도 1의 210)의 코드 서명을 기재하는 기능을 제공한다. 다시 말하면, 앱 스토어 앱 코드 서명(201)은 무결성이 검증된 모바일 앱에 앱 스토어 서버(도 210)의 코드 서명을 기재함으로써, 모바일 앱이 앱 스토어 서버(201)에 의해서 무결성이 보증되었다는 것을 보여준다. 앱 스토어의 코드 서명에 대해서는 차후 도 3을 참고하여 보다 상세하게 설명한다.
앱 무결성 검증(202)은 개발자가 등록 및 업로드한 모바일 앱의 무결성을 검증하는 기능을 제공한다. 구체적으로, 앱 무결성 검증(202)은 모바일 앱의 패키지를 분석하고, 분석 결과를 기반으로 모바일 앱이 악성 코드를 포함하고 있는지 아닌지에 대한 무결성을 검증하게 된다.
개발자 인증 등록 관리(203)는 개발자의 인증 수단을 기반으로 모바일 앱의 개발자를 인증 및 검증하여, 앱 스토어 서버(도 1의 210)에 등록 여부를 결정하는 기능을 제공한다. 구체적으로 예를 들면, 개발자 인증 등록 관리(203)는 개발자의 인증 수단을 기반으로, 적합한 개발자로 판단한 경우, 개발자를 앱 스토어 서버(도 1의 210)에 등록하며, 부적합한 개발자로 판단한 경우, 개발자를 앱 스토어 서버(도 1의 210)에 등록하지 않도록 한다. 이에 따라, 개발자를 인증 및 추적할 수 있는 바, 모바일 앱 개발자 인증을 통하여 투명하고 안전한 모바일 앱 유통 환경을 보장한다.
마지막으로, 모바일 앱 무결성 보증 환경(100)을 구현하기 위해서, 사용자 단말(320)이 사용자에게 제공하는 기능에 대해서 살펴본다.
사용자 단말(320)은 사용자가 인증된 개발자가 개발한 모바일 앱을 최종적으로 앱 스토어 서버(도 1의 210)에서 다운로드 받고, 모바일 앱의 코드 서명을 검증하여 최종적으로 모바일 앱의 설치 여부를 결정할 수 있도록 한다.
이를 위하여, 사용자 단말(320)은 앱 다운로드(321)와, 앱 분석 리포트 뷰(322)와, 앱 코드 서명 검증(323)의 기능을 제공한다.
앱 다운로드(321)는 사용자가 앱 스토어 서버(도 1의 210)로부터 모바일 앱의 검증 과정을 거친 모바일 앱을 다운로드 할 수 있는 기능을 제공하며, 사용자가 앱 분석 결과 및 앱 코드 서명 검증 결과에 기반하여 모바일 앱을 설치할 수 있도록 해준다.
앱 분석 리포트 뷰(322)는 사용자가 모바일 앱의 분석 결과를 확인할 수 있도록 해주며, 앱 코드 서명 검증(323)은 사용자가 다운로드 받은 모바일 앱의 코드 서명, 예를 들면 개발자 앱 코드 서명 및 앱 스토어 앱 코드 서명 중 적어도 하나, 또는 "무결성 흠결 정보"를 확인할 수 있도록 해준다.
이때, "무결성 흠결 정보"가 있는 경우, 모바일 앱이 무결성이라는 앱 스토어 서버(210)의 보증이 없는 바, 사용자는 앱 스토어 서버(210)로부터 다운로드 받은 모바일 앱을 설치하지 않을 수 있다.
반면에, "무결성 흠결 정보"가 없으며, 모바일 앱이 제 0 내지 제 2 타입으로 재패키징된 경우, 모바일 앱이 무결성 하다는 것이 앱 스토어 서버(210)에 의해서 보증된 바, 사용자는 모바일 앱을 최종적으로 자신의 사용자 단말, 예를 들면, 모바일에 설치할 수 있다.
이에 따라, 사용자는 앱 스토어 서버(도 1의 210)에 등록된 모바일 앱을 앱 스토어 서버(도 1의 210)로부터 다운로드 받고, 앱 코드 서명을 검증하여 무결성 여부를 확인한 뒤, 사용자 단말(320)에 설치할 수 있다. 이러한 기능들을 통하여, 사용자에게 모바일 앱의 무결성이 보장되는 동시에, 앱 스토어 서버(도 1의 210)의 무결성 분석 과정을 통과한 정상적인 앱 패키지임이 확인된다.
이하, 도 3을 참고하여, 앱 스토어 보안 시스템(도 1의 200)을 구축하는 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치에 대해서 상세하게 살펴본다.
도 3은 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치(400)의 개념을 개략적으로 도시한 개념도이다.
도 3에 도시한 바와 같이, 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치(400)는 개발자 등록 관리부(410)와, 모바일 앱 등록 관리부(420)와, 무결성 검증부(430)와, 모바일 앱 설치부(440)와, 시스템 관리 인터페이스(450)를 포함할 수 있다. 또한, 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치(400)는 개발자 관리 데이터베이스(460)와 모바일 앱 관리 데이터베이스(470)를 더 포함할 수 있다.
여기서, 개발자 등록 관리부(410)는 개발자가 인증 기관(도 1의 330)으로부터 제공받은 인증 수단을 이용하여 앱 스토어 서버(도 1의 210)에 개발자 등록 요청을 하면, 개발자의 인증 수단을 기반으로 개발자를 인증한다.
또한, 개발자 등록 관리부(410)는 개발자 인증 결과를 기반으로 개발자를 앱 스토어 서버(도 1의 210)에 등록할 것인지 아니면 개발자의 개발자 가입 및 등록 요청을 거부할 것인지에 대한 개발자 인증 정보를 생성한다.
구체적으로 예를 들면, 개발자 등록 관리부(410)는 개발자가 앱 스토어 서버(도 1의 210)에 등록될 수 있는 적합한 개발자라고 판단한 경우, 개발자가 앱 스토어 서버(도 1의 210)에 등록 가능하다는 정보를 생성하여 앱 스토어 서버(도 1의 210)에 제공한다. 이에 따라, 앱 스토어 서버(도 1의 210)는 개발자가 적합한 개발자라는 개발자 인증 정보에 기반하여 개발자를 앱 스토어 서버(도 1의 210)에 등록한다.
반면에, 개발자 등록 관리부(410) 개발자가 앱 스토어 서버(도 1의 210)에 등록될 수 없는 부적합한 개발자라고 판단한 경우, 개발자가 앱 스토어 서버(도 1의 210)에 등록될 수 없다는 정보를 생성하여 앱 스토어 서버(도 1의 210)에 제공한다. 이에 따라, 앱 스토어 서버(도 1의 210)는 개발자가 부적합한 개발자라는 개발자 인증 정보에 기반하여 개발자를 앱 스토어 서버(도 1의 210)에 등록하지 않는다. 이때, 예를 들면, 앱 스토어 서버(도 1의 210)는 개발자에게 등록될 수 없다는 메시지 등을 출력할 수 있다.
이때, 개발자 등록 관리부(410)는 개발자를 등록 및 관리하기 위하여, 예를 들면, 가입 및 등록 요청한 개발자와 인증 결과를 개발자 관리 데이터베이스(460)에 저장할 수 있다.
모바일 앱 등록 관리부(420)는 개발자가 앱 스토어 서버(도 1의 210)에 모바일 앱 등록 요청 및 업로드한 경우, 모바일 앱의 무결성을 검증하기 위하여 앱 스토어 서버(도 1의 210)로부터 모바일 앱을 다운로드한다.
이때, 개발자는 앱 스토어 서버(도 1의 210)에 모바일 앱을 업로드 하기 위해서, 예를 들면, 자신이 개발한 모바일 앱에 코드 서명하고, 표준 포맷이 기반하여 모바일 앱을 패키징(packaging)한다. 다시 말하면, 개발자는 코드 서명된 모바일 앱을 표준 포맷에 기반하여 패키징하여, 앱 스토어 서버(도 1의 210)에 업로드한다. 이때, 표준 포맷은 예를 들면, APK 포맷이 될 수 있다.
또한, 모바일 앱 등록 관리부(420)는 개발자가 업로드한 모바일 앱들을 앱 스토어 서버(도 1의 210)에 등록, 갱신, 분류, 삭제 등의 관리를 할 수 있다.
또한, 모바일 앱 등록 관리부(420)는 모바일 앱의 무결성 정보를 제공하기 위해서, 무결성 검증부(430)에 모바일 앱의 분석을 요청할 수 있으며, 분석 요청 결과를 관리한다.
한편, 모바일 앱은 모바일 앱 관리 데이터베이스(470)에 저장되어 관리될 수 있다.
무결성 검증부(430)는 모바일 앱 등록 관리부(420)로부터 모바일 앱을 제공받고, 모바일 앱이 악성 코드를 포함하고 있는지에 대한 모바일 앱의 무결성 여부를 검증하며, 모바일 앱의 무결성 검증 결과에 기반하여, 모바일 앱의 재패키징 상태를 결정한다.
구체적으로 예를 들면, 무결성 검증부(430)는 모바일 앱이 무결성 흠결을 가지는 경우, 모바일 앱이 무결성 흠결을 가지고 있다는 정보인 "무결성 흠결 정보"메시지를 함께 포함하여 모바일 앱을 재패키징한다.
반면에, 무결성 검증부(430)는 모바일 앱이 무결성임을 판단한 경우, 무결성 흠결 정보를 포함하지 않고, 제 0 내지 제 2 타입 중 어느 하나로 모바일 앱을 재패키징한다.
제 0 내지 제 2 타입 각각은 차례로 예를 들면, 모바일 앱에 모바일 앱 개발자의 코드 서명만이 포함, 모바일 앱에 모바일 앱 개발자의 코드 서명 및 앱 스토어 서버(도 1의 210)의 코드 서명 모두 포함, 모바일 앱 개발자의 코드 서명 및 앱 스토어 서버(도 1의 210)의 코드 서명 모두 포함한 모바일 앱을 암호화하여 모바일 앱을 재패키징한다.
보다 구체적으로, 무결성 검증부(430)는 모바일 앱 개발자가 업로드한 패키징된 모바일 앱을 제공받고, 모바일 앱을 언패키징하여 모바일 앱의 패키지 분석 작업을 수행한다. 예를 들면, 무결성 검증부(430)는 모바일 앱의 개발자의 코드 서명을 분석하여 모바일 앱의 무결성을 검증한다. 이때, 무결성 검증부(430)는 분석 작업을 통하여 모바일 앱의 무결성이 검증되면, 예를 들면, 앱 스토어 서버(도 1의 210)의 인증서를 기반으로 모바일 앱을 제 0 내지 제 2 타입 중 어느 하나로 모바일 앱을 재패키징한다.
이하, 도 4를 참고하여, 본 발명의 실시예에 따른 제 0 내지 제 2 타입에 대해서 보다 구체적으로 살펴본다.
도 4는 본 발명의 실시예에 따른 제 0 내지 제 2 타입에 따른 모바일 앱 재패키징 개념을 개략적으로 보여주는 도면이다.
먼저, 제 0 타입(타입 0)은 앱 스토어 서버(도 1의 210)의 코드 서명을 적용하지 않고, 개발자 코드 서명만 포함된 패키지를 의미한다. 즉, 제 0 타입은 모바일 앱의 서명 검증 과정을 통하여, 모바일 앱의 무결성이 검증된 경우, 원래의 모바일 앱의 상태, 예를 들면, APK 상태로 모바일 앱을 출력한다. 보다 구체적으로 예를 들면, 제 0 타입에 따른 모바일 앱 재패키징은 모바일 앱 개발자의 기본 코드 서명, 예를 들면 안드로이드 제공 기본 코드 서명만이 적용된 본래의 모바일 앱의 APK 파일로 모바일 앱을 재패키징한다.
제 1 타입은 제 0 타입에 앱 스토어 서버의 코드 서명을 추가한 것을 나타낸다. 다시 말하면, 제 1 타입에 따른 모바일 앱의 재패키징은 예를 들면, APK 포맷에 본래의 개발자 코드 서명과 함께 앱 스토어 서버 코드 서명을 더 추가하여 모바일 앱을 패키지한다. 이는, 모바일 검증 과정을 통하여, 모바일 앱의 무결성을 앱 스토어 서버(도 1의 210)가 보증하는 것을 의미한다. 즉, 제 1 타입은 모바일 앱에 앱 스토어 서버(도 1의 210)의 더블 서명을 통하여, 모바일 앱의 무결성을 보장한다.
구체적으로 예를 들면, 본래의 모바일 앱의 APK 패키지는 메타 데이터 정보로서, CERT.RSA와, CERT.SF와, MENIFST.MF를 포함할 수 있는데, 타입 1에 따른 모바일 앱 재패키징은 메타 데이터 정보에 전술한 정보 외에 Appstore.SF 및 Appstore.RSA(.DSA) 파일을 추가하여 모바일 앱을 패키지한다.
타입 2는 타입 1을 사용자의 패스워드의 해쉬 값에 기반하여 APK 파일을 암호화하여 새로운 형태의 포맷으로 모바일 앱을 패키지하는 것을 의미한다. 구체적으로, 타입 2에 따른 재패키징은 개발자 코드 서명 및 앱 스토어 서버의 서명이 모두 포함된 모바일 앱의 APK 파일을 모바일 앱 사용자의 패스워드의 해쉬 값에 기반하여 암호화한다. 타입 2도 타입 1과 마찬가지로 앱 스토어 서버(도 1의 210)에 의해서 모바일 앱의 무결성을 보증한다.
한편, 타입 0 내지 타입 2는 예를 들면, 앱 스토어 서버(도 1의 210)의 설정 사항에 따라 선택적으로 선택될 수 있다.
이하, 도 5를 참고하여, 본 발명의 실시예에 따른 타입 2에 대해서 보다 상세하게 설명한다.
도 5는 본 발명의 실시예에 따른 타입 2의 개념을 보여주기 위한 것으로서, 사용자 단말과 앱 스토어 서버 간의 통신을 보여주는 흐름도이다.
먼저, 제 1 단계(510)에서, 사용자 단말(320)은 앱 스토어 서버(210)에 보안 연관을 요청한다. 이때, 예를 들면, 해쉬(hash)는 SHA-1(Secure Hash Algorithm)이 이용될 수 있으며, 암호화는 AES(Advanced Encryption Algorithm)이 이용될 수 있다.
제 2 단계(520)에서, 사용자 단말(320)은 앱 스토어 서버(210)에 사용자 등록 요청을 하는데, 이때, 사용자 단말(320)은 사용자 등록 요청을 하기 위하여, 사용자 ID 및 사용자 패스워드(PW사용자)를 앱 스토어 서버(210)에 제공한다.
제 3 단계(530)에서, 앱 스토어 서버(210)는 사용자 단말(320)에 사용자 등록 결과를 전송해준다.
제 4 단계(540)에서, 사용자 단말(320)이 앱 스토어 서버(210)에 모바일 앱 다운로드를 요청하는데, 이때, 다운로드 하고자 하는 앱 정보를 함께 전송한다.
제 5 단계(550)에서, 앱 스토어 서버(210)는 사용자 패스워드의 해쉬 값을 기반으로 개발자의 코드 서명과 앱 스토어 서버의 코드 서명을 포함한 모바일 앱의 파일을 암호화(EK[APK file])하여 사용자 단말(320)에 제공한다.
여기서, 도 5의 K=hash(PW사용자) 및 EK[APK file]에서, APK 파일인 모바일 앱을 키(key)를 기반으로 암호화한다는 것을 나타내는 것으로서, 키(K)는 사용자의 패스워드의 해쉬 값이라는 것을 의미한다.
한편, 도시하지는 않았으나, 타입 2로 재패키징된 모바일 앱을 다운로드한 사용자는 사용자 전용 복호화 과정을 통하여 개발자 코드 서명 및 앱 스토어 서버 코드 서명을 추출하고 이들 서명에 대해서 검증한다. 예를 들면, 사용자는 사용자 패스워드의 해쉬 값으로 파일을 복호화한다.
다시 도 3을 참고하여, 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치(400)의 나머지 구성에 대해서 살펴본다.
모바일 앱 설치부(440)는 사용자가 앱 스토어 서버(도 1의 210)에 모바일 앱 다운로드를 요청하면, 해당하는 모바일 앱을 모바일 앱 관리 데이터베이스(470)에서 검색하여, 이를 사용자에게 제공한다.
이때, 사용자는 다운로드한 모바일 앱에서 앱 스토어 서버 및 개발자의 코드 서명을 검증한다. 검증이 완료되면, 사용자는 다운로드 받은 모바일 앱을 사용자의 단말에 설치 여부를 결정하고, 만약 설치한 경우, 지속적으로 모바일 앱의 업데이트 체크 및 삭제를 수행할 수 있다.
구체적으로, 사용자는 다운로드한 모바일 앱에 개발자의 코드 서명만이 있는 경우, 모바일 앱이 앱 스토어 서버(210)에 의해서 무결성이 보장되지 않기 때문에, 사용자는 모바일 앱을 설치하지 않을 수 있다. 반면에, 모바일 앱에 개발자의 코드 서명뿐만 아니라 앱 스토어 서버(210)의 코드 서명이 함께 있는 경우, 모바일 앱의 무결성이 앱 스토어 서버(210)에 의해서 보장되는 바, 사용자는 모바일 앱을 최종적으로 설치할 수 있다.
마지막으로, 시스템 관리 인터페이스(450)에 대해서 살펴본다.
시스템 관리 인터페이스(450)는 모바일 앱 무결성 보증 장치(400)에서 수행되는 무결성 검증의 분석 및 판단, 최종 등록 여부 결정까지의 단계에서 관리자의 개입이 필요한 경우, 관리자가 직접적으로 관리할 수 있도록 한다.
또한, 시스템 관리 인터페이스(450)는 전술한 각각의 구성에서 필요한 설정을 각 구성에 제공하며, 각각의 구성으로부터 각 구성의 수행 결과 및 수행 오류 등의 다양한 정보를 포함하는 수행에 대한 정보인 수행 정보를 제공받아, 이를 관리자에게 알리거나 직접 관리한다.
시스템 관리 인터페이스(450)의 주요 기능은, 예를 들면, 시스템 및 서비스 관리 기능, 개발자 인터페이스 기능, 사용자 인터페이스 기능, 분석 결과 확인 기능, 악성 코드 수집 및 대응 기능, 모바일 앱 분석 가상화 기능이 있다.
한편, 도 3에서는 설명의 편의를 위하여, 모바일 앱 무결성 보증 장치(400)를 도 1의 앱 스토어 서버(210)와 구분하여 도시하였으나, 모바일 앱 무결성 보증 장치(400)는 예를 들면, 앱 스토어 서버(도 1의 210) 내에 구성되어, 전술한 각각의 동작들을 수행할 수 있다.
이하, 도 6 및 도 7을 참고하여, 본 발명의 실시예에 따른 모바일 앱 무결성 보증 방법에 대해서 살펴본다.
도 6 및 도 7은 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치에 의해서 구현되는 모바일 앱 무결성 보증 방법을 보여주는 흐름도로서, 도 6은 모바일 앱 무결성 보증 장치에 의해서 개발자가 인증되는 과정을 보여주며, 도 7은 모바일 앱 무결성 보증 장치에 의해서 모바일 앱 무결성이 검증되는 과정을 보여주는 흐름도이다.
먼저, 도 6을 살펴본다. 개발자는 개발자 단말(310)을 통하여 인증 기관(330)에 인증 수단을 요청(S601)을 요청하고, 인증 기관(330)으로부터 인증 수단을 발급받는다(S602).
개발자 단말(310)은 인증 수단을 가지고 앱 스토어 서버(210)에 개발자 가입 및 등록 요청(S603)을 하며, 이에 따라 앱 스토어 서버(210)는 모바일 앱 무결성 보증 장치(400)에 개발자 인증 요청을 한다(S604).
이후, 모바일 앱 무결성 보증 장치(400)는 인증 수단을 기반으로 개발자를 검증하고(S605), 개발자 검증 결과에 대한 정보를 앱 스토어 서버(210)에 제공한다(S606).
앱 스토어 서버(210)는 개발자 검증 정보를 기반으로 개발자가 적합한 개발자인지 부적합한 개발자인지 판단하고(S607), 적합한 개발자인 경우, 개발자를 앱 스토어 서버(210)에 등록한다(S608). 반면에, 개발자가 부적합하다고 판단한 경우, 앱 스토어 서버(210)는 예를 들면, 개발자 단말(310)로 개발자 가입 및 등록 거부 메시지를 출력할 수 있다.
이하, 도 7을 참고하여 본 발명의 실시예에 따른 모바일 앱 무결성 보증 방법에 대해서 살펴본다.
먼저, 인증된 개발자는 개발자 단말(310)을 통하여 앱 스토어 서버(210)에 모바일 앱 등록 요청 및 모바일 앱 업로드를 한다(S701). 이때, 개발자는 모바일 앱에 개발자 코드 서명을 하고, 표준 포맷에 맞도록 모바일 앱을 패키징하여 업로드 한다.
이어서, 앱 스토어 서버(210)는 모바일 앱 무결성 보증 장치(400)에 모바일 앱 무결성 검증 요청을 한다(S702).
이어서, 모바일 앱 무결성 보증 장치(400)는 모바일 앱을 앱 스토어 서버(210)로부터 다운로드받고(S703), 모바일 앱을 언패키징(S704)한 후, 모바일 앱의 무결성을 검증한다(S705).
이어서, 모바일 앱 무결성 보증 장치(400)는 모바일 앱을 재패키징하는데(S706), 이 경우, 모바일 앱 무결성 보증 장치(400)는 모바일 앱의 무결성 검증 결과에 기반하여 모바일 앱의 재패키징 타입을 결정한다. 이에 대해서는, 전술한 바와 같다.
이어서, 모바일 앱 무결성 보증 장치(400)는 재패키징한 모바일 앱을 앱 스토어 서버(210)에 제공한다. 한편, 사용자 단말(320)에서 모바일 앱 요청을 앱 스토어 서버(210)로 모바일 앱 다운로드 요청을 하게 되면(S708), 앱 스토어 서버(210)는 사용자 단말(320)에 모바일 앱을 제공한다(S709).
사용자 단말(320)에서 사용자는 모바일 앱의 코드 서명을 검증(S710)하여, 최종적으로 다운로드한 모바일 앱의 설치 여부를 최종적으로 판단하게 된다.
구체적으로 예를 들면, 사용자는 다운로드 한 모바일 앱의 메시지 및 코드 서명을 검증하여 설치 여부를 결정하는데, 무결성 흠결 정보가 포함된 모바일 앱을 설치하지 않을 수 있으며, 타입 0 내지 타입 2로 재패키징된 모바일 앱을 설치할 수 있다.
이와 같이, 본 발명의 실시예에서는 인증된 모바일 앱 개발자만이 앱 스토어 서버에 모바일 앱을 등록할 수 있으며, 자동으로 모바일 앱이 분석되어, 모바일 앱의 무결성 흠결 여부에 대한 정보가 사용자에게 제공된다. 즉, 모바일 앱이 앱 스토어 서버에 업로드되면, 관리자 개입 없이 모바일 앱에 대해 자동으로 무결성 흠결 여부가 검증된다.
또한, 무결성 검증 결과에 기반하여 다양한 정보를 사용자에게 제공함으로써, 사용자에게 사용의 편리성이 제공될 수 있다.
또한, 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치는 높은 정확도로 인한 시스템 신뢰도 향상 및 관리 비용을 최소화를 달성할 수 있으며, 처리 속도 면에서 고성능을 통한 빠른 서비스를 사용자에게 제공할 수 있다. 이에 따라, 본 발명의 실시예에 따른 모바일 앱 무결성 보증 장치는, 모바일 앱의 무결성 검증뿐만 아니라 앱 스토어 서버를 통해 배포된 모바일 앱의 무결성 보증까지 제공함으로써, 안전한 모바일 앱의 유통 시장을 형성할 수 있다.
전술한 도 1 내지 도 3의 경우, 설명의 편의를 위하여 각각의 구성을 별개로 구분하여 도시화하고 설명하였으나, 각각의 구성은 하나의 블록으로 구성되어 전술한 일련의 단계를 처리할 수 있다. 이때, 각각의 구성은 전술한 단계를 처리하기 위하여, 제어부 또는 프로세서(processor) 등으로 구성될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
400: 모바일 앱 무결성 보증 장치
410: 개발자 등록 관리부 420: 모바일 앱 등록 관리부
430: 무결성 검증부 440: 모바일 앱 설치부

Claims (13)

  1. 모바일 앱 개발자의 가입 및 등록 요청에 응답하여, 인증 수단을 기반으로 상기 모바일 앱 개발자를 인증하는 개발자 등록 관리부; 및
    패키징 상태로 앱 스토어 서버에 업로드된 모바일 앱을 언패키징하여 상기 모바일 앱의 무결성 여부에 대한 검증을 하고, 무결성 검증 결과에 기반하여 상기 모바일 앱의 재패키징 타입을 결정하는 무결성 검증부를 포함하며,
    상기 무결성 검증부는,
    상기 모바일 앱이 무결성인 경우, 언패키징된 모바일 앱을 제 0 내지 제 2타입 중 어느 하나로 재패키징하고,
    상기 제 0 타입은 상기 언패키징된 모바일 앱이 상기 모바일 앱 개발자가 업로드한 본래의 상태인 모바일 앱 개발자의 코드 서명만을 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며,
    상기 제 1 타입은 상기 모바일 앱이 상기 모바일 앱 개발자의 코드 서명 및 상기 앱 스토어 서버의 코드 서명을 함께 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며,
    상기 제 2 타입은 상기 제 1 타입을 암호화하여 상기 언패키징된 모바일 앱을 재패키징하는, 모바일 앱 무결성 보증 장치.
  2. 청구항 1에 있어서, 상기 무결성 검증부는,
    상기 모바일 앱이 무결성 흠결을 가지고 있는 경우, 상기 모바일 앱에 모바일 무결성 흠결 정보를 포함하여 언패키징 모바일 앱을 재패키징하는 것을 특징으로 하는 모바일 앱 무결성 보증 장치.
  3. 삭제
  4. 청구항 1에 있어서, 상기 암호화는,
    사용자의 패스워드의 해쉬 값을 기반으로 이루어지는 것을 특징으로 하는 모바일 앱 무결성 보증 장치.
  5. 청구항 1에 있어서, 상기 모바일 앱 무결성 보증 장치는,
    상기 모바일 앱 개발자가 업로드한 모바일 앱을 상기 앱 스토어 서버로부터 다운로드하여 상기 무결성 검증부에 제공하는 모바일 앱 등록 관리부를 더 포함하는 모바일 앱 무결성 보증 장치.
  6. 청구항 1에 있어서, 상기 모바일 앱 무결성 보증 장치는,
    사용자 단말의 상기 앱 스토어 서버의 모바일 앱의 다운로드 요청에 응답하여, 상기 모바일 앱을 상기 사용자 단말에게 제공하는 모바일 앱 설치부를 더 포함하는 모바일 앱 무결성 보증 장치.
  7. 청구항 1에 있어서, 상기 모바일 앱 무결성 보증 장치는,
    상기 무결성 검증부의 처리 과정에서 관리자의 개입이 필요한 경우, 관리자가 직접적으로 관리할 수 있도록 해주는 시스템 관리 인터페이스를 더 포함하는 모바일 앱 무결성 보증 장치.
  8. 모바일 앱의 무결성을 보증하는 모바일 앱 무결성 보증 장치에 의해 수행되는 모바일 앱 무결성 보증 방법에 있어서,
    모바일 앱 개발자의 가입 및 등록 요청에 응답하여, 인증 수단을 기반으로 상기 모바일 앱 개발자를 인증하는 단계;
    패키징 상태로 앱 스토어 서버에 업로드된 모바일 앱을 언패키징하여 상기 모바일 앱의 무결성 여부에 대한 검증을 하는 단계; 및
    무결성 검증 결과에 기반하여 상기 모바일 앱의 재패키징 타입을 결정하는 단계를 포함하며,
    상기 재패키징 타입을 결정하는 단계는,
    상기 모바일 앱이 무결성인 경우, 언패키징된 모바일 앱을 제 0 내지 제 2타입 중 어느 하나로 재패키징하고,
    상기 제 0 타입은 상기 언패키징된 모바일 앱이 상기 모바일 앱 개발자가 업로드한 본래의 상태인 모바일 앱 개발자의 코드 서명만을 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며,
    상기 제 1 타입은 상기 모바일 앱이 상기 모바일 앱 개발자의 코드 서명 및 상기 앱 스토어 서버의 코드 서명을 함께 포함하도록 상기 언패키징된 모바일 앱을 재패키징하며,
    상기 제 2 타입은 상기 제 1 타입을 암호화하여 상기 언패키징된 모바일 앱을 재패키징하는, 모바일 앱 무결성 보증 방법.
  9. 청구항 8에 있어서, 상기 재패키징 타입을 결정하는 단계는,
    상기 모바일 앱이 무결성 흠결을 가지고 있는 경우, 상기 모바일 앱에 모바일 무결성 흠결 정보를 포함하여 언패키징 모바일 앱을 재패키징하는 것을 특징으로 하는 모바일 앱 무결성 보증 방법.
  10. 삭제
  11. 청구항 8에 있어서, 상기 암호화는,
    사용자의 패스워드의 해쉬 값을 기반으로 이루어지는 것을 특징으로 하는 모바일 앱 무결성 보증 방법.
  12. 청구항 8에 있어서, 상기 모바일 앱 무결성 보증 방법은,
    상기 모바일 앱 무결성을 검증하기 위하여, 상기 모바일 앱 개발자가 업로드한 모바일 앱을 상기 앱 스토어 서버로부터 다운로드하는 단계를 더 포함하는 모바일 앱 무결성 보증 방법.
  13. 청구항 8에 있어서, 상기 모바일 앱 무결성 보증 방법은,
    사용자의 상기 앱 스토어 서버의 모바일 앱의 다운로드 요청에 응답하여, 상기 모바일 앱을 상기 사용자에게 제공하는 단계를 더 포함하는 모바일 앱 무결성 보증 방법.

KR1020120134418A 2012-11-26 2012-11-26 모바일 앱 무결성 보증 장치 및 방법 KR101740256B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120134418A KR101740256B1 (ko) 2012-11-26 2012-11-26 모바일 앱 무결성 보증 장치 및 방법
US13/775,585 US20140150096A1 (en) 2012-11-26 2013-02-25 Method for assuring integrity of mobile applications and apparatus using the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120134418A KR101740256B1 (ko) 2012-11-26 2012-11-26 모바일 앱 무결성 보증 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140081912A KR20140081912A (ko) 2014-07-02
KR101740256B1 true KR101740256B1 (ko) 2017-06-09

Family

ID=50774548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120134418A KR101740256B1 (ko) 2012-11-26 2012-11-26 모바일 앱 무결성 보증 장치 및 방법

Country Status (2)

Country Link
US (1) US20140150096A1 (ko)
KR (1) KR101740256B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210051608A (ko) * 2019-10-31 2021-05-10 삼성에스디에스 주식회사 데이터 보안 장치 및 방법
KR20220014852A (ko) 2020-07-29 2022-02-07 시큐차트 비.브이. 어플리케이션 검증 시스템 및 검증방법
KR20240037647A (ko) 2022-09-15 2024-03-22 시큐차트글로벌 주식회사 어플리케이션 검증 시스템 및 검증방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9323936B2 (en) * 2013-03-15 2016-04-26 Google Inc. Using a file whitelist
US9223941B2 (en) * 2013-03-15 2015-12-29 Google Inc. Using a URI whitelist
CN103345602B (zh) * 2013-06-14 2015-08-19 腾讯科技(深圳)有限公司 一种客户端代码完整性检测方法、装置和***
US9531718B2 (en) * 2013-09-19 2016-12-27 Google Inc. Confirming the identity of integrator applications
EP3081016A1 (en) * 2013-12-12 2016-10-19 Telefonaktiebolaget LM Ericsson (publ) An intermediate network node providing a service to a mobile terminal in a wireless communications network
CN103886260B (zh) * 2014-04-16 2016-09-14 中国科学院信息工程研究所 一种基于二次签名验签技术的应用程序管控方法
US9762657B2 (en) * 2014-06-17 2017-09-12 International Business Machines Corporation Authentication of mobile applications
US20150373048A1 (en) * 2014-06-24 2015-12-24 Kashif Ali Siddiqui Enterprise Mobile Notification Solution
US9843451B2 (en) * 2014-10-30 2017-12-12 Motorola Solutions, Inc. Apparatus and method for multi-state code signing
CN104486086B (zh) * 2014-12-26 2017-10-20 北京奇虎科技有限公司 数字签名方法及移动终端和服务器
KR102324336B1 (ko) 2015-03-20 2021-11-11 한국전자통신연구원 사용자 장치 및 그것에 대한 무결성 검증 방법
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
KR102446384B1 (ko) 2015-09-18 2022-09-22 삼성전자주식회사 사용자 단말 및 서버 장치
CN105740708A (zh) * 2016-01-28 2016-07-06 博雅网信(北京)科技有限公司 一种基于Java反射机制的安卓应用自动脱壳方法
KR101872104B1 (ko) 2016-08-30 2018-06-28 한남대학교 산학협력단 Apk 파일 동적로딩 기법을 이용한 뱅킹 어플리케이션 무결성 검증 시스템 및 무결성 검증방법
CN106355081A (zh) * 2016-09-07 2017-01-25 深圳市新国都支付技术有限公司 一种安卓程序启动校验方法和装置
CN107273741A (zh) * 2017-05-18 2017-10-20 努比亚技术有限公司 一种***运行方法及终端
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
WO2019080110A1 (zh) * 2017-10-27 2019-05-02 福建联迪商用设备有限公司 一种 apk 签名认证方法及***
CN107994993B (zh) * 2017-11-21 2021-10-08 北京奇虎科技有限公司 应用程序检测方法及装置
KR102434444B1 (ko) * 2017-11-29 2022-08-19 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
CN108460273B (zh) * 2017-12-27 2022-10-14 ***股份有限公司 一种终端的应用管理方法、应用服务器及终端
KR102537788B1 (ko) * 2018-11-28 2023-05-30 삼성전자주식회사 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
CN109977662B (zh) * 2019-03-01 2021-04-02 晋商博创(北京)科技有限公司 基于组合公钥的应用程序处理方法、装置、终端及存储介质
CN112508138B (zh) * 2020-11-18 2024-03-26 北京融讯科创技术有限公司 单板服务器管理方法、装置、设备及计算机可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210051608A (ko) * 2019-10-31 2021-05-10 삼성에스디에스 주식회사 데이터 보안 장치 및 방법
KR102644153B1 (ko) * 2019-10-31 2024-03-07 삼성에스디에스 주식회사 데이터 보안 장치 및 방법
KR20220014852A (ko) 2020-07-29 2022-02-07 시큐차트 비.브이. 어플리케이션 검증 시스템 및 검증방법
KR20240037647A (ko) 2022-09-15 2024-03-22 시큐차트글로벌 주식회사 어플리케이션 검증 시스템 및 검증방법

Also Published As

Publication number Publication date
KR20140081912A (ko) 2014-07-02
US20140150096A1 (en) 2014-05-29

Similar Documents

Publication Publication Date Title
KR101740256B1 (ko) 모바일 앱 무결성 보증 장치 및 방법
US8966248B2 (en) Secure software file transfer systems and methods for vehicle control modules
CN112507328B (zh) 一种文件签名方法、计算设备及存储介质
CN102314578B (zh) 一种实现软件保护的***及方法
US9900157B2 (en) Object signing within a cloud-based architecture
WO2015101149A1 (zh) 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器
WO2009107351A1 (ja) 情報セキュリティ装置および情報セキュリティシステム
CN102171652A (zh) 为电子装置提供可信软件的方法
CN103677892A (zh) 在安全电子控制单元中启用特殊优先模式的授权方案
CN103679005A (zh) 启用安全电子控制单元的开发模式的方法
KR101509585B1 (ko) 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템
KR101523309B1 (ko) 어플리케이션 배포 시스템 및 방법
KR102013983B1 (ko) 애플리케이션 무결성 인증 방법 및 인증 서버
CN102035653A (zh) 软件审核阶段的可控分发方法及***
CN110708310B (zh) 租户级权限管理方法、装置及设备
CN104426658A (zh) 对移动终端上的应用进行身份验证的方法及装置
JP2016025628A (ja) 情報処理システム、および電子機器
US20100223469A1 (en) Method, System and Computer Program Product for Certifying Software Origination
WO2016165215A1 (zh) 应用程序加载代码签名的方法和装置
CN105227545A (zh) 智能操作平台中实现用户和开发者划分控制的***及方法
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
KR20210016547A (ko) 데이터 처리
KR102256249B1 (ko) 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법
CN116964586A (zh) 授权加密
KR101324693B1 (ko) 어플리케이션 보안 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant