KR20130125245A - 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템 - Google Patents

모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템 Download PDF

Info

Publication number
KR20130125245A
KR20130125245A KR1020120048836A KR20120048836A KR20130125245A KR 20130125245 A KR20130125245 A KR 20130125245A KR 1020120048836 A KR1020120048836 A KR 1020120048836A KR 20120048836 A KR20120048836 A KR 20120048836A KR 20130125245 A KR20130125245 A KR 20130125245A
Authority
KR
South Korea
Prior art keywords
mobile device
server
executable file
random key
app
Prior art date
Application number
KR1020120048836A
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 KR1020120048836A priority Critical patent/KR20130125245A/ko
Publication of KR20130125245A publication Critical patent/KR20130125245A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Landscapes

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

Abstract

모바일 디바이스에 설치된 소프트웨어 무결성 유지 방법 및 소프트웨어 무결성 유지 시스템이 개시된다. 그 무결성 유지 방법은 모바일 디바이스에서 실행되는 앱의 실행파일을 서버에 등록하는 단계; 모바일 디바이스가 앱의 실행파일을 서버로부터 다운로드 받아 설치하는 단계; 모바일 디바이스가 설치된 앱의 실행파일을 실행하여 서버에 접속하면, 실행파일에 상응하는 랜덤 키를 모바일 디바이스로 전송하는 단계; 모바일 디바이스는 랜덤키를 수신하면, 실행파일과 수신한 랜덤 키를 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 서버로 전송하는 단계; 서버는 암호화된 결과 값을 수신하면, 서버에서 랜덤 키와 앱 실행파일을 위변조 방지 함수를 이용하여 암호화한 결과값과 수신한 암호화된 결과값을 비교하는 단계; 및 비교결과 동일하면 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 단계를 포함한다.
본 발명에 의하면, 강력한 앱 위변조 상시 모니터링이 가능하면, 모바일 디바이스 앱 실행파일들을 등록함과 동시에 관리자 페이지(Admin Page)를 통하여 등록된 앱의 실시간 위변조 유무를 탐지할 수 있고, 디바이스 차단, 엔진 업데이트 등의 일련의 과정을 통합 관리 할 수 있다.

Description

모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템{Method and system for maintaining integrity of software installed in mobile device}
본 발명은 소프트웨어 무결성 유지에 관한 것으로서, 특히 모바일 디바이스에서 실행되는 소프트웨어의 무결성을 유지하는 방법 및 시스템에 관한 것이다.
스마트 폰, 스마트 패드, IPTV 등 스마트 디바이스의 보급이 증가함에 따라 스마트 디바이스 자체를 해킹하거나 불법적(탈옥)으로 사용하면서 스마트 디바이스에 설치된 응용 소프트웨어(application software)인 앱(app)을 위변조하는 사례가 점차 급증하고 있어 안전한 금융서비스 제공이 위협받고 있다.
스마트 폰 뱅킹 앱 변조의 예로서, 위변조된 앱을 정상적인 앱처럼 위조하여 마켓에 등록한 후 등록된 앱을 다운로드 받아 사용하면 해킹하기도 하며, 악의적인 목적을 가지고 악성 앱을 불법적으로 배포하기도 한다. 그리고 안드로이드 앱의 코드 서명은 self-sign이 적용된 개발자 식별을 위한 장치로서 쉽게 생성 및 교체할 수 있으며, 앱의 위변조 여부를 검출하거나 차단하지 못한다.
즉, 모바일 디바이스에서 실행되는 응용 소프트웨어(application software)인 앱(app)은 실행파일로부터 비교적 쉽게 소스 코드를 획득할 수 있을 뿐만 아니라 앱 마켓과 OTA로도 배포가 가능해 쉽게 악성코드를 배포할 수 있다. 예를 들어 OTA로 배포되는 APK를 획득하고 리소스와 dex(Dalvik Binary)를 획득하여 공개된 툴을 이용하여 Java Class로 파일로 변환한 후 Java 소스코드를 회득한다. 그리고 나서 코드를 수정하여 위변조하여, APK 빌드, 카페 및 블로그 등을 통해 위변조된 코드를 배포한다.
따라서 다양한 앱 사용자는 앱 변조 방지를 위해 무결성을 검증할 수 있는 방법이 필요하다. 특히 금융기관 또는 전자금융업자는 전자금융거래에서 이용자에게 제공하거나 거래를 처리하기 위한 전자금융거래 프로그램(거래전문 포함)의 위변조 여부 등 무결성을 검증할 수 있는 방법이 필요하다.
본 발명이 해결하고자 하는 과제는 상술한 소트트웨어 무결성 검증을 위해, 모바일 디바이스에서 실행되는 소프트웨어 무결성 유지 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 소프트웨어 무결성 유지 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 소프트웨어 무결성 유지 시스템을 구성하는 서버 및 모바일 디바이스를 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는 상기의 모바일 디바이스에서 실행되는 소프트웨어 무결성 유지방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 모바일 디바이스에 설치된 소프트웨어 무결성 유지 방법은, (a) 모바일 디바이스에서 실행되는 앱의 실행파일을 서버에 등록하는 단계; (b) 모바일 디바이스가 상기 앱의 실행파일을 서버로부터 다운로드 받아 설치하는 단계; (c) 상기 모바일 디바이스가 상기 설치된 앱의 실행파일을 실행하여 상기 서버에 접속하면, 상기 서버는 상기 실행파일에 상응하는 랜덤 키를 상기 모바일 디바이스로 전송하는 단계; (d) 상기 모바일 디바이스는 상기 랜덤키를 수신하면, 상기 실행파일과 상기 수신한 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 상기 서버로 전송하는 단계; (e) 상기 서버는 상기 암호화된 결과 값을 수신하면, 서버에서 상기 랜덤 키와 앱 실행파일을 소정의 위변조 방지 함수를 이용하여 암호화한 결과값과 상기 수신한 암호화된 결과값을 비교하는 단계; 및 (f) 비교결과 상기 결과 값이 서로 동일하면 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 단계를 포함한다.
상기 서버는, 상기 서버에 등록된 실행파일 각각에 상응하는 랜덤키를 미리 할당하고 상기 실행파일과 랜덤키를 소정의 위변조 방지 함수를 이용하여 암호화한 결과값을 미리 생성하여 구비하고 있는 것을 특징으로 한다. 또한 상기 서버와 상기 모바일 디바이스는 상기 암호화된 결과값을 각각 저장하고, 상기 서버 및 모바일 디바이스 간 메시지 송수신시 상기 암호화된 결과값을 메시지 패킷의 헤더에 부가하여 상기 부가된 결과값을 이용하여 상기 메시지 패킷의 유효성을 검증하는 것을 특징으로 한다.
상기 서버는 상기 모바일 디바이스가 상기 설치된 앱의 실행파일을 실행하여 상기 서버에 접속된 후, 미리 설정된 시점에서 상기 실행파일에 상응하는 랜덤 키를 상기 모바일 디바이스로 전송하고, 상기 (d)단계 내지 상기(f) 단계를 수행하여 상기 앱이 실행되는 동안 무결성이 유지되게 하는 것을 특징으로 한다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 모바일 디바이스에 설치된 소프트웨어 무결성 유지 시스템은, 모바일 디바이스에서 실행되는 앱의 실행파일을 등록하고, 상기 등록된 앱이 설치된 모바일 디바이스가 접속하면, 상기 실행파일의 무결성 유지를 위해 적어도 한 번 상기 등록된 실행파일에 상응하는 랜덤 키를 생성하여 상기 모바일 디바이스에게 전송하는 서버; 및 상기 앱의 실행파일을 상기 서버로부터 다운로드 받아 설치하고, 상기 서버에 접속하여 상기 실행파일에 상응하는 랜덤 키를 상기 서버로부터 수신하고, 상기 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 상기 서버로 전송하는 모바일 디바이스를 포함하고, 상기 서버는 상기 모바일 디바이스에 설치된 실행파일과 상기 모바일 디바이스로 전송한 랜덤 키를 소정의 위변조방지함수를 이용하여 암호화하고, 상기 모바일 디바이스로부터 상기 암호화된 결과 값을 수신하면 상기 서버에서 암호화된 결과값과 상기 수신된 모바일 디바이스에서 암호화된 결과값을 비교하고, 비교결과 상기 암호화된 결과 값이 서로 동일하면 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 것을 특징으로 한다.
또한 상기 서버는 상기 서버에 등록된 실행파일 각각에 상응하는 랜덤키를 미리 할당하고 상기 실행파일과 랜덤키를 소정의 위변조 방지 함수를 이용하여 암호화한 결과값을 미리 생성하여 구비하고 있는 것을 특징으로 한다. 또한 상기 서버와 모바일 디바이스는 상기 암호화된 결과값을 각각 저장하고, 상기 서버와 모바일 디바이스 간 메시지 송수신시 상기 암호화된 결과값을 메시지 패킷의 헤더에 부가하여 상기 헤더에 부가된 상기 암호화된 결과값을 이용하여 상기 메시지 패킷의 유효성을 검증하는 것을 특징으로 한다.
상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 모바일 디바이스에 설치된 소프트웨어 무결성 유지 시스템을 구성하는 서버는, 모바일 디바이스에서 실행되는 앱의 실행파일을 등록하는 실행파일 등록부; 상기 등록된 앱이 설치된 모바일 디바이스가 접속하면, 무결성 유지를 위해 적어도 한 번 상기 등록된 실행파일에 상응하는 랜덤 키를 생성하여 상기 모바일 디바이스에게 전송하는 랜덤 키 생성부; 상기 모바일 디바이스에게 전송한 랜덤키와 상기 랜덤키에 상응하는 실행파일을 소정의 위변조방지 함수를 이용하여 암호화하는 서버 암호화부; 및 상기 모바일 디바이스로부터 암호화된 결과 값을 수신하면 상기 수신한 암호화된 결과값과 상기 암호화한 결과값을 비교하고, 비교결과 상기 결과 값이 동일하면 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 무결성 검증부를 포함하고, 이 때 상기 모바일 디바이스는 상기 등록된 앱의 실행파일을 다운로드 받아 설치하고, 상기 랜덤 키 생성 부로부터 상기 설치된 실행파일에 상응하는 랜덤 키를 수신하고, 상기 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 상기 무결성 검증부로 전송하는 것을 특징으로 한다.
상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 모바일 디바이스에 설치된 소프트웨어 무결성 유지 시스템을 구성하는 모바일 디바이스는, 앱의 실행파일을 서버로부터 다운로드 받아 설치하는 앱 설치부; 상기 서버에 접속하여 상기 실행파일에 상응하는 랜덤 키를 상기 서버로부터 수신하는 랜덤 키 수신부; 및 상기 설치된 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 생성하여 상기 서버로 전송하는 모바일 암호화부를 포함하고, 여기서 상기 서버는 상기 모바일 디바이스에서 실행되는 앱의 실행파일을 등록하고, 상기 등록된 앱이 설치된 모바일 디바이스가 접속하면 상기 등록된 실행파일에 상응하는 랜덤 키를 생성하여 상기 모바일 디바이스에게 전송하고, 상기 모바일 디바이스로부터 상기 암호화된 결과 값을 수신하여, 상기 서버에서 암호화된 결과값과 상기 수신된 모바일 디바이스에서 암호화된 결과값을 비교하여 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 것을 특징으로 한다.
본 발명에 의한 소트트웨어 무결성 유지 방법 및 시스템에 의하면, 강력한 앱 위변조 상시 모니터링이 가능하면, 모바일 디바이스 앱 실행파일들을 등록함과 동시에 관리자 페이지(Admin Page)를 통하여 등록된 앱의 실시간 위변조 유무를 탐지할 수 있고, 디바이스 차단, 엔진 업데이트 등의 일련의 과정을 통합 관리 할 수 있다.
도 1은 본 발명에 의한 소프트웨어 무결성 유지 시스템의 구성에 대한 일예를 블록도로 나타낸 것이다.
도 2는 본 발명에 의한 소프트웨어 무결성 유지 시스템의 전체적인 구성 및 대략적인 동작 흐름을 나타낸 것이다.
도 3은 도 1에 나타낸 본 발명에 의한 소프트웨어 무결성 유지 시스템에 대한 구현 예를 나타낸 것이다.
도 4는 본 발명에 의한 소트트웨어 무결성 유지 방법에 대한 일실시예를 흐름도로 나타낸 것이다.
이하, 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명에 의한 소프트웨어 무결성 유지 시스템의 구성에 대한 일예를 블록도로 나타낸 것으로서, 서버(100) 및 모바일 디바이스(150)가 네트워크(190)를 통해 연결되어 있다. 서버(100)는 실행파일 등록부(110), 랜덤키 생성부(120), 서버 암호화부(130) 및 무결정 검증부(140)를 포함하여 이루어진다.
서버(100)는 모바일 디바이스(150)에서 실행되는 앱(APP)의 실행파일을 등록하고, 상기 등록된 앱의 실행파일이 설치된 모바일 디바이스(150)가 상기 실행파일을 실행시켜 접속하면, 상기 실행파일의 무결성 유지를 위해 적어도 한 번 미리 설정된 시점에서 상기 등록된 실행파일에 상응하는 랜덤 키(random key)를 생성하여 모바일 디바이스(150)로 전송한다.
서버(100)는 모바일 디바이스(150)에 설치된 실행파일과 모바일 디바이스(150)로 전송한 랜덤 키를 소정의 위변조 방지함수, 예를 들어 해쉬 알고리즘을 이용하여 암호화한다. 상기 해쉬 알고리즘은 SHA1/SHA2, MD5, HAS160, CRC32 등을 이용할 수 있다.
그리고 서버(100)는 모바일 디바이스(150)로부터 상기 암호화된 결과 값을 수신하면 서버(100)에서 암호화된 결과값과 모바일 디바이스(150)에서 암호화된 결과값을 비교하여 상기 암호화된 결과 값이 서로 동일하면 모바일 디바이스(150)에 설치된 실행파일이 무결성임을 확증하고, 동일하지 않으면 위변조된 것으로 판단하여 모바일디바이스(150)의 접속을 차단한다.
서버(100)의 구성요소를 구체적으로 설명하면, 실행파일 등록부(110)는 모바일 디바이스(100)에서 실행되는 앱의 실행파일을 등록한다. 실행파일 등록부(110)는 통상적으로 다운로드 서버 형태로 구현할 수 있다.
랜덤키 생성부(120)는 상기 등록된 앱의 실행파일이 설치된 모바일 디바이스(150)가 상기 앱의 실행파일을 실행하여 서버(100)에 접속하여 보안세션을 생성하면, 무결성 유지를 위해 상기 등록된 실행파일에 상응하는 랜덤 키를 생성하여 모바일 디바이스(150)에게 전송한다. 상기 랜덤 키 값은 무결성 체크를 할 때 마다 다른 값으로 생성하는 것이 바람직하며, 랜덤키 생성과 무결성 검증은 앱이 실행되고 있는 동안 적어도 한 번 이상 이루어지는 것이 바람직하다.
서버 암호화부(130)는 모바일 디바이스(150)에게 전송한 랜덤키와 상기 랜덤키에 상응하는 실행파일을 소정의 위변조방지 함수, 바람직하게는 해쉬 알고리즘을 이용하여 암호화한다. 상기 암호화는 모바일 디바이스(150)에서 수행되는 암호화와 동일한 방식으로 이루어지는 것이 바람직하며 해쉬 알고리즘도 서버(100)에서 암호화할 때 사용되는 것과 동일한 함수인 것이 바람직하다.
무결성 검증부(140)는 모바일 디바이스(150)로부터 암호화된 결과 값을 수신하면 상기 수신한 암호화된 결과값과 서버암호화부(130)에서 암호화한 결과값을 비교하고, 비교결과 동일하면 모바일 디바이스(150)에 설치된 실행파일이 무결성임을 확증한다. 그리고 상기 비교결과 동일하지 않으면 앱 실행파일을 실행하여 접속한 모바일 디바이스(150)를 차단한다.
모바일 디바이스(150)는 상기 앱의 실행파일을 서버(100)로부터 다운로드 받아 설치하고, 서버(100)에 접속하여 상기 실행파일에 상응하는 랜덤 키를 서버(100)로부터 수신하고, 상기 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수, 예를 들어 해쉬 알고리즘을 이용하여 암호화하여 암호화된 결과 값을 서버(100)로 전송한다. 여기서, 모바일 디바이스(150)는 앱(APP)을 다운로드 받아 설치할 수 있으며, 스마트 폰, PDA(Personal Digital Assistant), 핸드 헬드 PC(Hand Held PC), GSM 폰, W_CDMA 폰 등 앱을 설치하여 실행할 수 있는 모바일 기기를 포함한다.
서버(100)에 등록된 실행파일 각각에 상응하는 랜덤키를 미리 할당하고 상기 실행파일과 랜덤키를 소정의 위변조 방지 함수, 예를 들어 해쉬 알고리즘을 이용하여 암호화한 결과값을 미리 생성하여 구비하고 있다가, 실행파일 무결성 검증이 이루어질 때 상기 암호화된 결과값, 예를 들어 해쉬 결과값을 신속하게 제공하는 것이 바람직하다.
또한 서버(100)와 모바일 디바이스(150)는 메시지 패킷을 송수신할 때 상기 메시지 패킷의 유효성을 확보하기 위해, 상기 암호화된 결과값을 각각 저장하고 있는 것이 바람직하다. 서버(100)와 모바일 디바이스(150) 간 메시지를 송수신할 때 저장하고 있던 암호화된 결과값, 해쉬 알고리즘을 이용할 때는 해쉬 결과값을 메시지 패킷(packet)의 헤더(header)에 부가하여 메시지 패킷의 헤더에 포함된 해쉬 결과값이 저장하고 있는 해쉬 결과값과 같은지 비교함으로써 메시지 패킷의 유효성을 검증할 수 있다.
앱 설치부(150)는 서버(100)로부터 앱의 실행파일을 다운로드 받아 모바일 디바이스(150)에 설치한다.
랜덤키 수신부(170)는 모바일 디바이스(150)에 설치된 앱 실행파일을 실행하여 서버(100)에 접속하면, 상기 실행파일에 상응하는 랜덤 키를 서버(100)로부터 수신한다.
모바일 암호화부(180)는 모바일 디바이스(150)에 설치된 앱의 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수, 바람직하게는 해쉬 알고리즘을 이용하여 암호화하고, 암호화된 결과 값을 서버(100)로 전송한다.
도 2는 본 발명에 의한 소프트웨어 무결성 유지 시스템의 전체적인 구성 및 대략적인 동작 흐름을 나타낸 것이다.
소프트웨어 무결성을 관리하는 관리자(Administrator, 200)가 모바일 디바이스 앱 실행파일을 무결성 유지서버(220)에 등록한다. 무결성 유지서버(220)가 등록된 실행파일을 다운로드 서버(240)에 배포하면, 다운로드 서버(240)는 실행파일을 저장한다.
모바일 디바이스(260)는 다운로드 서버(240)로부터 원하는 앱의 실행파일을 다운로드하여 모바일 디바이스(260)에 설치한다. 모바일 디바이스(260)가 설치된 앱 실행파일을 실행하여 무결성 유지서버(220)에 접속하면, 모바일 디바이스(260)에 설치된 앱의 실행파일이 위변조 되었는지를 검증한다.
이러한 과정을 통해 관리자(200)는 실시간으로 앱 실행파일의 위변조를 탐지하고 만일 위변조 되었다면 모바일 디바이스(260)의 접속을 차단한다. 또한 관리자(200)는 위변조 엡을 발견시 무결성 유지서버(220)의 엔진 업데이트(update)를 통한 차단 기술을 적용할 수 있다. 또한 관리자(200)는 무결성 유지서버(220)를 통해 앱 등록과 실행파일 버전을 관리하고 사용자 목록 및 모바일 디바이스의 ID를 관리한다.
무결성 유지서버(220)는 필터 방식을 적용하여 기존 서버의 소스코드를 수정하지 않고도 무결성 검증이 가능하며, 다양한 DBMS와 연동할 수 있는 연동모듈을 제공하며, 웹 어플리케이션 서버(WAS)와 연동하는 모듈을 제공한다.
모바일 디바이스(260)는 랜덤 키를 활용한 검증값이 계속 바뀌는 것이 바람직하며, 모바일 디바이스 앱 실행파일 뿐만아니라 관련된 모듈 파일, 예를 들어 V3 모듈 등도 검증할 수 있다. 그리고 안드로이드, 아이폰 계열 모바일 디바이스에도 무결성 검증이 가능하다.
도 3은 도 1에 나타낸 본 발명에 의한 소프트웨어 무결성 유지 시스템에 대한 구현 예를 나타낸 것이다.
도 1의 서버(100)는 그 기능을 분리하여 위변조 방지서버(330), 운영서버(350) 및 다운로드 서버(370)으로 구성할 수 있다. 위변조 방지서버(330)는 랜덤키 생성부(332) 및 서버 암호화부(334)를 포함할 수 있으며, 램덤키 생성부(332)는 도 1의 랜덤키 생성부(120)에 해당하고, 서버 암호화부(334)는 도 1의 서버 암호화부(130)에 해당한다.
앱을 개발하는 개발도구(300)에서 앱을 개발하여 모바일 디바이스 앱 실행파일(310)을 위변조 방지서버(330)로 업로드하면, 위변조 방지서버(330)는 업로드된 실행파일에 상응하는 랜덤키를 생성하고, 실행파일과 랜덤키를 위변조 방지함수 예를 들어 해쉬 알고리즘을 이용하여 암호화하여 해쉬 결과값을 생성한다. 이와 같이 앱의 실행파일이 업로드될 때 마다, 서버 암호화부(334)는 암호화를 수행하여 해쉬 결과값을 생성하여 테이블 형태로 저장해 놓는다. 그리고 업로드된 앱 실행파일을 운영서버(350)를 통해 다운로드 서버(370)에 배포한다. 다운로드 서버(370)는 실행파일 등록부(372)를 통해 앱 실행파일을 등록해 놓는다.
모바일 디바이스(390)의 앱설치부(392)는 다운로드 서버(370)를 통해 등록된 앱 실행파일을 다운로드 받아 설치한다. 그리고 나서 설치된 앱 실행파일을 실행한다. 또한 외부모듈 예를 들어 V3 모듈 실행 루틴을 체크하고, 실행파일 버전을 체크하고 업데이트를 수행할 수 있다. 이렇게 하여 앱 실행파일이 실행되어 운영서버(350)에 접속하여 보안 세션(session)을 생성하면, 운영서버(350)는 모바일 디바이스(390)에 설치되어 실행되는 앱의 실행파일 정보를 획득하여 위변조 방지서버(330)에게 전달한다. 위변조 방지 서버(330)는 테이블을 참조하여 앱 실행파일에 상응하는 랜덤키와 해쉬 결과값을 운영서버(350)에 전달한다. 운영서버(350)는 랜덤 키를 모바일 디바이스(390)에게 전송하고, 모바일 디바이스(390)의 랜덤키 수신부(392)는 랜덤 키를 수신한다. 랜덤키가 수신되면 모바일 암호화부(396)은 수신된 랜덤 키와 설치되어 실행된 앱 실행파일을 해쉬 알고리즘을 이용하여 암호화한다.
암호화된 해쉬 결과값은 운영서버(350)의 운영서버(350)로 전송되고, 운영서버(350)의 무결성 검증부(352)는 위변조 방지서버(330)로부터 전달받은 해쉬 결과값과 모바일 디바이스(396)으로부터 수신한 해쉬 결과값을 비교하여 해쉬 결과값이 서로 동일하면 앱 실행파일이 무결성임을 확증하고, 동일하지 않으면 모바일 디바이스(390)를 차단한다.
또한 운영서버(350)와 모바일 디바이스(390)는 메시지 패킷을 송수신할 때 상기 메시지 패킷의 유효성을 확보하기 위해, 상기 암호화된 결과값을 각각 저장하고 있는 것이 바람직하다. 서버(350)와 모바일 디바이스(390) 간 메시지를 송수신할 때 저장하고 있던 암호화된 결과값, 해쉬 알고리즘을 이용할 때는 해쉬 결과값을 메시지 패킷(packet)의 헤더(header)에 부가하여 메시지 패킷의 헤더에 포함된 해쉬 결과값이 저장하고 있는 해쉬 결과값과 같은지 비교함으로써 메시지 패킷의 유효성을 검증할 수 있다.
한편, 상술한 실행파일 무결성 유지는 앱의 실행파일 뿐만아니라 앱 실행파일과 관련된 외부 모듈들에 대해서도 실행파일 검증과 마찬가지의 방법으로 외부 모듈 파일을 검증할 수 있다. 그리고 상기 앱 실행파일이 뱅킹에 관한 것이면 모바일 디바이스(390)에는 뱅킹 앱과 뱅킹앱에 관련된 V3 모듈이 설치될 수 있다. 또한 뱅킹 앱이 설치되어 있을 경우, 뱅킹이 이루어지는 복수의 단계 중 미리 설정된 단계, 예를 들어 모바일 디바이스가 서버에 접속하는 단계, 이체를 실행하는 단계 등복수의 단계에서 무결성 검증을 수행할 수 있다.
본 발명에 의한 서버는 로그인, 앱 관리 메뉴를 제공하고, 로그인이 되면 앱 관리 메뉴를 선택하면 위변조 방지 대상 관리앱 업로드 및 관리상황 모니터링을 제공한다. 또한 상기 서버는 사용자 관리 메뉴 및 실시간 관제 메뉴를 제공하며, 사용자 관리 메뉴를 선택하면 앱등록 사용자의 IP별, 앱(APP) 이름, 모바일 디바이스 정보별로 상시 관리할 수 있게 하며 불법적 사용자에 대한 상시 모니터링을 할 수 있다. 또한 실시간 관제 메뉴를 선택하면 등록된 앱의 24시간 실시간 모니터를 통한 감시할 수 있으며 위변조 내용을 확인시 즉시 접속을 차단할 수 있게 한다.
상기 서버는 또한 엔진업데이트 메뉴와 설정 메뉴를 제공할 수 있으며, 엔진 업데이트 메뉴를 선택하면 사용자의 위변조 방지 엔진 업데이트를 위한 모듈을 등록 및 관리할 수 있게 하며, 설정 메뉴를 선택하면 등록된 앱 대상의 파일 수를 제한하고 용량을 제한 할 수 있게 하는 등 관리자가 상황에 맞게 앱의 실행파일 수와 용량을 제한 할 수 있다.
그리고 도 4는 본 발명에 의한 소트트웨어 무결성 유지 방법에 대한 일실시예를 흐름도로 나타낸 것이다.
모바일 디바이스(150)에서 실행되는 앱의 실행파일을 서버(100)에 등록한다.(S400 단계)
모바일 디바이스(150)가 상기 앱의 실행파일을 서버(100)로부터 다운로드 받아 설치한다.(S410단계)
모바일 디바이스(150)가 상기 설치된 앱의 실행파일을 실행하여 서버(100)에 접속하면(S420 단계), 서버(100)는 상기 실행파일에 상응하는 랜덤 키를 모바일 디바이스(150)로 전송한다.(S430 단계)
모바일 디바이스(150)는 상기 랜덤키를 수신하면, 상기 실행파일과 상기 수신한 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 서버(100)로 전송한다.(S440 단계)
서버(100)는 상기 암호화된 결과 값을 수신하면, 서버(100)에서 상기 랜덤 키와 앱 실행파일을 소정의 위변조 방지 함수를 이용하여 암호화한 결과값과 상기 수신한 암호화된 결과값을 비교한다.(S460 단계)
비교결과 상기 결과 값이 서로 동일하면 모바일 디바이스(150)에 설치된 실행파일이 무결성임을 확증하고(S470단계), 동일하지 않으면 모바일 디바이스(150)의 접속을 차단한다.(S480 단계)
여기서, 서버(100)는 서버(100)에 등록된 실행파일 각각에 상응하는 랜덤키를 미리 할당하고 상기 실행파일과 랜덤키를 소정의 위변조 방지 함수를 이용하여 암호화한 결과값을 미리 생성하여 구비하고 있는 것이 바람직하다.
또한 서버(100)와 모바일 디바이스(150)는 상기 암호화된 결과값을 각각 저장하고, 서버(100)와 모바일 디바이스(150) 간 메시지 송수신시 상기 암호화된 결과값을 메시지 패킷의 헤더에 부가하여 상기 부가된 결과값을 이용하여 상기 메시지 패킷의 유효성을 검증하는 것이 바람직하다.
또한 서버(100)는 모바일 디바이스(150)가 상기 설치된 앱의 실행파일을 실행하여 서버(100)에 접속된 후, 미리 설정된 시점에서 상기 실행파일에 상응하는 랜덤 키를 모바일 디바이스(150)로 전송하고, 상기 S430 단계 내지 S480 단계를 수행하여 상기 앱이 실행되는 동안 무결성이 유지되게 하는 것이 바람직하다.
본 발명은 다양한 운영체제(OS), 예를 들어 윈도우, WinCE, 안드로이드, iOS를 기반으로 하여 적용가능하다. 그리고 위변조 방지 함수로 Hash 알고리즘(SHA1/SHA2, MD5, HAS160, CRC32 등)을 적용하여 암호화할 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100 : 서버 150 : 모바일 디바이스
110 : 실행파일 등록부 120 : 랜덤키 생성부
130 : 서버 암호화부 140 : 무결성 검증부
150 : 모바일 디바이스 160 : 앱 설치부
170 : 랜덤키 수신부 180 : 모바일 암호화부
190 : 네트워크 200 : 관리자
220 : 무결성 유지서버 240 : 다운로드 서버
260 : 모바일 디바이스 300 : 개발도구
310 : 실행파일 330 : 위변조 방지 서버
332 : 랜덤키 생성부 334 : 서버 암호화부
350 : 운영서버 352 : 무결성 검증부
370 : 다운로드 서버 372 : 실행파일 등록부
390 : 모바일 디바이스 392 : 앱설치부
394 : 랜덤키 수신부 396 : 모바일 암호화부

Claims (9)

  1. (a) 모바일 디바이스에서 실행되는 앱의 실행파일을 서버에 등록하는 단계;
    (b) 모바일 디바이스가 상기 앱의 실행파일을 서버로부터 다운로드 받아 설치하는 단계;
    (c) 상기 모바일 디바이스가 상기 설치된 앱의 실행파일을 실행하여 상기 서버에 접속하면, 상기 서버는 상기 실행파일에 상응하는 랜덤 키를 상기 모바일 디바이스로 전송하는 단계;
    (d) 상기 모바일 디바이스는 상기 랜덤키를 수신하면, 상기 실행파일과 상기 수신한 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 상기 서버로 전송하는 단계;
    (e) 상기 서버는 상기 암호화된 결과 값을 수신하면, 서버에서 상기 랜덤 키와 앱 실행파일을 소정의 위변조 방지 함수를 이용하여 암호화한 결과값과 상기 수신한 암호화된 결과값을 비교하는 단계; 및
    (f) 비교결과 상기 결과 값이 서로 동일하면 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 단계를 포함하는 것을 특징으로 하는 모바일 기기에서의 소프트웨어 무결성 유지 방법.
  2. 제1항에 있어서, 상기 서버는
    상기 서버에 등록된 실행파일 각각에 상응하는 랜덤키를 미리 할당하고 상기 실행파일과 랜덤키를 소정의 위변조 방지 함수를 이용하여 암호화한 결과값을 미리 생성하여 구비하고 있는 것을 특징으로 하는 모바일 기기에서의 소프트웨어 무결성 유지 방법.
  3. 제1항에 있어서, 상기 서버와 상기 모바일 디바이스는
    상기 암호화된 결과값을 각각 저장하고, 상기 서버 및 모바일 디바이스 간 메시지 송수신시 상기 암호화된 결과값을 메시지 패킷의 헤더에 부가하여 상기 부가된 결과값을 이용하여 상기 메시지 패킷의 유효성을 검증하는 것을 특징으로 하는 모바일 기기의 소프트웨어 무결성 유지 방법.
  4. 제1항에 있어서, 상기 서버는
    상기 모바일 디바이스가 상기 설치된 앱의 실행파일을 실행하여 상기 서버에 접속된 후, 미리 설정된 시점에서 상기 실행파일에 상응하는 랜덤 키를 상기 모바일 디바이스로 전송하고,
    상기 (d)단계 내지 상기(f) 단계를 수행하여 상기 앱이 실행되는 동안 무결성이 유지되게 하는 것을 특징으로 하는 모바일 기기의 소프트웨어 무결성 유지 방법.
  5. 모바일 디바이스에서 실행되는 앱의 실행파일을 등록하고, 상기 등록된 앱이 설치된 모바일 디바이스가 접속하면, 상기 실행파일의 무결성 유지를 위해 적어도 한 번 상기 등록된 실행파일에 상응하는 랜덤 키를 생성하여 상기 모바일 디바이스에게 전송하는 서버; 및
    상기 앱의 실행파일을 상기 서버로부터 다운로드 받아 설치하고, 상기 서버에 접속하여 상기 실행파일에 상응하는 랜덤 키를 상기 서버로부터 수신하고, 상기 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 상기 서버로 전송하는 모바일 디바이스를 포함하고,
    상기 서버는
    상기 모바일 디바이스에 설치된 실행파일과 상기 모바일 디바이스로 전송한 랜덤 키를 소정의 위변조방지함수를 이용하여 암호화하고, 상기 모바일 디바이스로부터 상기 암호화된 결과 값을 수신하면 상기 서버에서 암호화된 결과값과 상기 수신된 모바일 디바이스에서 암호화된 결과값을 비교하고, 비교결과 상기 암호화된 결과 값이 서로 동일하면 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 것을 특징으로 하는 모바일 기기에서의 소프트웨어 무결성 유지 시스템.
  6. 제5항에 있어서, 상기 서버는
    상기 서버에 등록된 실행파일 각각에 상응하는 랜덤키를 미리 할당하고 상기 실행파일과 랜덤키를 소정의 위변조 방지 함수를 이용하여 암호화한 결과값을 미리 생성하여 구비하고 있는 것을 특징으로 하는 모바일 기기에서의 소프트웨어 무결성 유지 시스템.
  7. 제5항에 있어서, 상기 서버와 모바일 디바이스는
    상기 암호화된 결과값을 각각 저장하고, 상기 서버와 모바일 디바이스 간 메시지 송수신시 상기 암호화된 결과값을 메시지 패킷의 헤더에 부가하여 상기 헤더에 부가된 상기 암호화된 결과값을 이용하여 상기 메시지 패킷의 유효성을 검증하는 것을 특징으로 하는 모바일 기기의 소프트웨어 무결성 유지 시스템.
  8. 모바일 디바이스에서 실행되는 앱의 실행파일을 등록하는 실행파일 등록부;
    상기 등록된 앱이 설치된 모바일 디바이스가 접속하면, 무결성 유지를 위해 적어도 한 번 상기 등록된 실행파일에 상응하는 랜덤 키를 생성하여 상기 모바일 디바이스에게 전송하는 랜덤 키 생성부;
    상기 모바일 디바이스에게 전송한 랜덤키와 상기 랜덤키에 상응하는 실행파일을 소정의 위변조방지 함수를 이용하여 암호화하는 서버 암호화부; 및
    상기 모바일 디바이스로부터 암호화된 결과 값을 수신하면 상기 수신한 암호화된 결과값과 상기 암호화한 결과값을 비교하고, 비교결과 상기 결과 값이 동일하면 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 무결성 검증부를 포함하고,
    상기 모바일 디바이스는
    상기 등록된 앱의 실행파일을 다운로드 받아 설치하고, 상기 랜덤 키 생성 부로부터 상기 설치된 실행파일에 상응하는 랜덤 키를 수신하고, 상기 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 상기 무결성 검증부로 전송하는 것을 특징으로 하는 소프트웨어 무결성 유지 서버.
  9. 앱의 실행파일을 서버로부터 다운로드 받아 설치하는 앱 설치부;
    상기 서버에 접속하여 상기 실행파일에 상응하는 랜덤 키를 상기 서버로부터 수신하는 랜덤 키 수신부; 및
    상기 설치된 실행파일과 상기 랜덤 키를 소정의 위변조 방지 함수를 이용하여 암호화하여 암호화된 결과 값을 생성하여 상기 서버로 전송하는 모바일 암호화부를 포함하고,
    상기 서버는
    상기 모바일 디바이스에서 실행되는 앱의 실행파일을 등록하고, 상기 등록된 앱이 설치된 모바일 디바이스가 접속하면 상기 등록된 실행파일에 상응하는 랜덤 키를 생성하여 상기 모바일 디바이스에게 전송하고, 상기 모바일 디바이스로부터 상기 암호화된 결과 값을 수신하여, 상기 서버에서 암호화된 결과값과 상기 수신된 모바일 디바이스에서 암호화된 결과값을 비교하여 상기 모바일 디바이스에 설치된 실행파일이 무결성임을 확증하는 것을 특징으로 하는 모바일 디바이스.
KR1020120048836A 2012-05-08 2012-05-08 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템 KR20130125245A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120048836A KR20130125245A (ko) 2012-05-08 2012-05-08 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120048836A KR20130125245A (ko) 2012-05-08 2012-05-08 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20130125245A true KR20130125245A (ko) 2013-11-18

Family

ID=49853748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120048836A KR20130125245A (ko) 2012-05-08 2012-05-08 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20130125245A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9867051B2 (en) 2014-03-19 2018-01-09 Electronics And Telecommunications Research Institute System and method of verifying integrity of software
CN112328291A (zh) * 2020-12-11 2021-02-05 上海市民信箱信息服务有限公司 一种app轻应用市场软件版本管控的方法
US11308238B2 (en) 2018-11-28 2022-04-19 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9867051B2 (en) 2014-03-19 2018-01-09 Electronics And Telecommunications Research Institute System and method of verifying integrity of software
US11308238B2 (en) 2018-11-28 2022-04-19 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application
CN112328291A (zh) * 2020-12-11 2021-02-05 上海市民信箱信息服务有限公司 一种app轻应用市场软件版本管控的方法

Similar Documents

Publication Publication Date Title
CN111164948B (zh) 使用区块链网络管理网络安全漏洞
KR101740256B1 (ko) 모바일 앱 무결성 보증 장치 및 방법
CN110597538B (zh) 一种基于ota升级系统的软件升级方法和ota升级系统
Sundareswaran et al. Ensuring distributed accountability for data sharing in the cloud
Tan et al. A root privilege management scheme with revocable authorization for Android devices
KR20130080862A (ko) 트러스티드 프로세싱 기술을 사용하는 디지탈 권리 관리
CN105656860A (zh) Android系统的安全管控方法、装置及其系统
CN104199654A (zh) 开放平台的调用方法及装置
CN106295350B (zh) 一种可信执行环境的身份验证方法、装置及终端
US20160330030A1 (en) User Terminal For Detecting Forgery Of Application Program Based On Hash Value And Method Of Detecting Forgery Of Application Program Using The Same
CN104199657A (zh) 开放平台的调用方法及装置
CN104579657A (zh) 身份认证方法及装置
CN104123488A (zh) 应用程序的验证方法和装置
US11003435B2 (en) Manifest trialing techniques
CN116781359A (zh) 一种使用网络隔离和密码编译的门户安全设计方法
CN112702419B (zh) 基于区块链的数据处理方法、装置、设备和存储介质
CN103188677A (zh) 一种客户端软件的认证方法、装置及系统
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
CN111585995B (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
CN110135149A (zh) 一种应用安装的方法及相关装置
US20230229752A1 (en) Attestation of application identity for inter-app communications
KR20130125245A (ko) 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템
KR101451323B1 (ko) 애플리케이션 보안 시스템, 보안 서버, 보안 클라이언트 장치 및 기록매체
KR101324693B1 (ko) 어플리케이션 보안 시스템 및 방법
KR101286767B1 (ko) 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20120508

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20130826

Patent event code: PE09021S01D

PG1501 Laying open of application
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20140528

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20130826

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I