KR20150022429A - 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템 - Google Patents

모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템 Download PDF

Info

Publication number
KR20150022429A
KR20150022429A KR20130100265A KR20130100265A KR20150022429A KR 20150022429 A KR20150022429 A KR 20150022429A KR 20130100265 A KR20130100265 A KR 20130100265A KR 20130100265 A KR20130100265 A KR 20130100265A KR 20150022429 A KR20150022429 A KR 20150022429A
Authority
KR
South Korea
Prior art keywords
application
execution
information
integrity verification
unit
Prior art date
Application number
KR20130100265A
Other languages
English (en)
Other versions
KR101509585B1 (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 KR20130100265A priority Critical patent/KR101509585B1/ko
Publication of KR20150022429A publication Critical patent/KR20150022429A/ko
Application granted granted Critical
Publication of KR101509585B1 publication Critical patent/KR101509585B1/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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/602Providing cryptographic facilities or services
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 제 1 디바이스로부터의 암호화 요청에 의해 모바일 애플리케이션의 각 구성요소를 암호화 처리하는 암호화부 및 상기 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성하는 무결성 정보 생성부를 포함하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치를 개시하고 있다. 따라서, 애플리케이션의 배포 전 암호화 처리 및 무결성 검증 데이터를 생성 및 관리함으로써 애플리케이션 개발자 및 관리자가 애플리케이션의 관리를 효율적으로 할 수 있게 지원해주고, 기존 앱 스토어 시스템과도 연동이 가능하므로 기존 시스템의 변화를 최소화하면서 위변조로부터 애플리케이션을 보호할 수 있다.

Description

모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템{COUNTERFEITING PREVENTING APPRATUS, USER DEVICE, METHOD AND SYSTEM FOR MOBILE APPLICATION}
본 발명은 위변조 방지 방법에 관한 것으로, 보다 상세하게는 모바일 애플리케이션의 구성요소들을 안전하게 보호하고 위변조를 방지하기 위한 방법 및 장치에 관한 것이다.
모바일 애플리케이션의 위변조를 방지하기 위해, 많은 앱 스토어(APP Store)에서 개발자들에게 애플리케이션의 배포 전 소스 난독화를 권장하고 있다. 그러나 난독화는 일반적으로 소스코드 내에 변수명 또는 함수명 등을 임의의 문자열로 치환하는 방식을 취하고 있다. 난독화된 애플리케이션을 리버스 툴(reverse tool)을 이용하여 소스를 추출하면 다소 시간은 소요되지만 리버스된 소스로도 애플리케이션의 로직 분석이 가능하다. 게다가 실행에 영향을 주는 부분의 경우 난독화되지 않기 때문에 개발시 이러한 점을 고려해야 해야 하는 어려움이 있다.
최근 이를 보완하기 위해 애플리케이션의 실행 파일 자체를 난독화하는 방안이 나왔지만 리소스 파일을 위한 방안이 제시되지 않아 근본적인 애플리케이션의 위변조 방지 및 위변조 여부를 확인하기는 어렵다는 문제점이 있다.
상술한 문제점을 해결하기 위한 본 발명의 목적은 개발자가 개발한 애플리케이션을 배포되기 전에 애플리케이션의 구성 요소 대부분을 암호화 처리하며, 해당 애플리케이션이 위변조되지 않았음을 증명할 무결성 검증 데이터를 생성 관리하는 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은 애플리케이션을 배포한 이후 사용자가 해당 애플리케이션을 실행 시에 복호화 진행 후 시스템으로부터 위변조 여부 확인을 위한 검증 데이터를 획득하여 이를 확인, 실행권한이 존재하는지 확인하여 적절한 권한이 있는 사용자의 단말에서 애플리케이션이 실행할 수 있도록 하는 방법 및 장치를 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명의 모바일 애플리케이션의 위변조를 방지하기 위한 장치는 제 1 디바이스로부터의 암호화 요청에 의해 모바일 애플리케이션의 각 구성요소를 암호화 처리하는 암호화부 및 상기 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성하는 무결성 정보 생성부를 포함할 수 있다.
상기 암호화부는 상기 애플리케이션의 바이너리(binary), 실행 파일, 리소스(resource) 및 이미지 중 적어도 어느 하나를 암호화할 수 있다.
상기 암호화부는 상기 제 1 디바이스에서의 선택 신호 또는 시스템의 설정에 따라 상기 애플리케이션의 암호화 범위 - 암호화 범위는 바이너리 암호화, 리소스 난독화, 리소스 암호화 및 실행 권한 확인 여부 중 적어도 어느 하나를 포함함 - 를 선택하여 암호화 처리할 수 있다.
상기 무결성 검증 데이터는 상기 애플리케이션이 배포되기 전에 생성될 수 있다.
상기 위변조 방지 장치는 상기 암호화된 애플리케이션 관련 정보와 상기 애플리케이션의 실행 및 검증에 필요한 모듈을 추가하여 패키지 처리하는 애플리케이션 패키지부를 더 포함할 수 있다.
상기 애플리케이션 패키지부는 제 2 디바이스에서 상기 애플리케이션을 복호화를 수행하기 위한 모듈, 상기 제 2 디바이스에서 상기 무결성 검증 데이터를 요청하는 모듈, 상기 무결성 검증 데이터와 상기 제 2 디바이스에서 실행되는 애플리케이션의 현재 정보를 비교하는 모듈 및 상기 제 2 디바이스의 상기 애플리케이션의 실행 권한을 확인하는 모듈을 포함시켜 패키지 처리할 수 있다.
상기 애플리케이션 패키지부는 상기 제 2 디바이스에서 애플리케이션 실행시 애플리케이션의 플랫폼의 변조를 탐지하기 위한 모듈 및 상기 제 2 디바이스에서 애플리케이션 실행 도중에 주기적으로 악의적인 접근을 탐지하기 위한 모듈을 더 포함시켜 패키지 처리할 수 있다.
상기 위변조 방지 장치는 상기 애플리케이션의 무결성 검증 데이터를 저장 관리하고, 제 2 디바이스에서의 애플리케이션 실행에 대응하여 상기 무결성 검증 데이터를 상기 제 2 디바이스로 제공하는 무결성 정보 관리부를 더 포함할 수 있다.
상기 무결성 정보 관리부는 상기 애플리케이션의 버전(version) 또는 실행 파일별로 무결성 검증 데이터를 관리할 수 있다.
상기 위변조 방지 장치는 제 2 디바이스에서 상기 애플리케이션을 실행하는 경우, 상기 애플리케이션의 실행 권한 관련 정보를 확인하고, 확인된 정보를 상기 제 2 디바이스로 제공하는 실행 권한 확인부를 더 포함할 수 있다.
상기 실행 권한 확인부는 앱 스토어(app store)와 연동하여 상기 실행 권한 관련 정보를 확인할 수 있다.
상기 애플리케이션의 실행 권한 관련 정보는 애플리케이션 인가 사용자 정보, 실행 기간 정보 및 실행 횟수 정보 중 적어도 어느 하나를 포함할 수 있다.
상기 위변조 방지 장치는 상기 제 1 디바이스로부터 서명 관련 신호 또는 공통 인증서를 수신하여 상기 애플리케이션에 대한 서명을 수행하는 애플리케이션 서명부를 더 포함할 수 있다.
상기 위변조 방지 장치는 상기 애플리케이션의 무결성 검증의 성공 여부 및 실행 권한의 존재 여부와 관련된 정보를 매회 저장 관리할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 모바일 애플리케이션의 위변조를 방지하기 위한 방법은 제 1 디바이스로부터의 암호화 요청에 의해 모바일 애플리케이션의 각 구성요소를 암호화 처리하는 암호화 단계 및 상기 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성하는 무결성 검증 데이터 생성 단계를 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 모바일 애플리케이션의 위변조를 방지하기 위한 사용자 디바이스는 암호화된 모바일 애플리케이션을 복호화하는 복호화부, 복호화된 모바일 애플리케이션을 실행하는 애플리케이션 실행부, 상기 애플리케이션의 실행시 상기 애플리케이션이 위변조되지 않았음을 증명하는 무결성 검증 데이터를 서버에 요청하는 무결성 정보 요청부 및 상기 무결성 검증 데이터를 기반으로 상기 애플리케이션의 무결성을 검증하는 무결성 검증부를 포함할 수 있다.
상기 무결성 검증부는 상기 무결성 검증 데이터와 현재 애플리케이션의 정보를 비교하여 무결성을 검증할 수 있다.
상기 무결성 검증 데이터는 보안 영역에 보관하여 재사용 가능하게 관리할 수 있다.
상기 사용자 디바이스는 상기 애플리케이션의 실행 권한과 관련된 정보를 요청하는 실행 권한 정보 요청부 및 상기 실행 권한 관련 정보를 기반으로 애플리케이션의 실행 권한이 있는지 확인하는 실행 권한 확인부를 더 포함할 수 있다.
상기 사용자 디바이스는 상기 애플리케이션 실행시 애플리케이션의 플랫폼의 변조를 탐지하기 위한 플랫폼 변조 여부 확인부 및 상기 애플리케이션 실행 도중에 주기적으로 악의적인 접근을 탐지하기 위한 악의적 접근 탐지부를 더 포함할 수 있다.
상기 사용자 디바이스는 상기 애플리케이션에 대한 무결성 검증의 실패 여부, 실행 권한 확인 결과, 플랫폼의 변조 여부 및 악의적 접근 여부와 관련된 정보 중 적어도 어느 하나의 정보를 상기 서버로 보고할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 모바일 애플리케이션의 위변조를 방지하기 위한 방법은 암호화된 애플리케이션을 복호화하는 복호화 단계, 복호화된 애플리케이션을 실행하는 애플리케이션 실행 단계, 상기 애플리케이션의 실행시 상기 애플리케이션이 위변조되지 않았음을 증명하는 무결성 검증 데이터를 서버에 요청하는 무결성 정보 요청 단계 및 상기 무결성 검증 데이터를 기반으로 상기 애플리케이션의 무결성을 검증하는 무결성 검증 단계를 포함할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 모바일 애플리케이션의 위변조를 방지하기 위한 시스템은 모바일 애플리케이션을 생성하여 서버로 전송하고, 상기 애플리케이션의 구성요소에 대한 암호화 또는 무결성 검증 데이터 생성을 요청하는 제 1 디바이스, 상기 제 1 디바이스로부터의 요청에 의해 모바일 애플리케이션의 각 구성요소를 암호화 처리하고 상기 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성 및 관리하며 제 2 디바이스에서의 애플리케이션 실행시 상기 무결성 검증 데이터를 제공하는 서버 및 상기 암호화된 애플리케이션을 복호화 및 실행하고, 상기 애플리케이션의 실행시 상기 애플리케이션이 위변조되지 않았음을 증명하는 무결성 검증 데이터를 상기 서버에 요청하여 상기 무결성 검증 데이터를 기반으로 상기 애플리케이션의 무결성을 검증하는 제 2 디바이스를 포함할 수 있다.
본 발명의 모바일 애플리케이션의 위변조 방지 방법, 장치 및 시스템에 따르면, 애플리케이션의 배포 전 암호화 처리 및 무결성 검증 데이터를 생성 및 관리함으로써 애플리케이션 개발자 및 관리자가 애플리케이션의 관리를 효율적으로 할 수 있게 지원해주고, 기존 앱 스토어 시스템과도 연동이 가능하므로 기존 시스템의 변화를 최소화하면서 위변조로부터 애플리케이션을 보호하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지 방법이 적용되는 프로세스를 개략적으로 나타낸 블록도,
도 2는 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치의 구성을 개략적으로 나타낸 블록도,
도 3은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치의 검증 준비 모듈을 구체적으로 나타낸 상세블록도,
도 4는 모바일 애플리케이션 패키지의 구성을 나타낸 도면,
도 5는 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치의 검증 모듈을 구체적으로 나타낸 상세블록도,
도 6은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치의 무결성 정보 관리부가 버전 별로 무결성 검증 데이터를 관리하는 것을 설명하기 위한 개념도,
도 7은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 구성을 개략적으로 나타낸 블록도,
도 8은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 검증 및 확인 모듈을 구체적으로 나타낸 상세블록도,
도 9는 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 애플리케이션 실행 과정을 나타낸 흐름도,
도 10은 본 발명의 다른 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 구성을 개략적으로 나타낸 블록도,
도 11은 본 발명의 다른 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 애플리케이션 실행 과정을 나타낸 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 명세서에 걸쳐서, 모바일(mobile) 애플리케이션은 모바일 디바이스에서 실행될 수 있는 애플리케이션을 의미하고, 모바일 디바이스는 스마트폰, 태블릿, 스마트 패드 등의 포터블(portable) 디바이스를 통칭하는 의미로 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지 방법이 적용되는 프로세스를 개략적으로 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 위변조 방지 시스템은 개발자(10), 서버(20), 앱스토어(30) 및 사용자(40)를 포함할 수 있다. 본 명세서에 걸쳐서, 개발자 관련 디바이스는 제 1 디바이스(10)로, 사용자 관련 디바이스는 제 2 디바이스(40)로 표현될 수 있다.
도 1을 참조하면, 개발자(10)는 애플리케이션을 개발하고, 개발된 애플리케이션을 앱 스토어(30)를 통해 배포하기 전에 서버(20)로 전송한다. 개발자(10)는 애플리케이션의 배포 전에 애플리케이션에 대한 암호화를 서버(20)에 요청할 수 있다. 개발자(10)는 서버(20)와 신호를 주고 받음으로써 애플리케이션의 패키징을 지시할 수 있고, 또한 무결성 검증 데이터 생성 및 관리를 지시할 수 있다. 개발자(10)는 무결성 검증 및 애플리케이션의 복호화를 위한 모듈을 애플리케이션에 삽입하도록 지시할 수 있다. 또한, 애플리케이션에 대한 서명을 지시할 수 있다. 개발자(10)는 앱 스토어(30)를 활용하여 애플리케이션을 배포하도록 지시할 수 있다.
서버(20)는 개발자(10)로부터 애플리케이션을 수신하여 애플리케이션에 대한 암호화, 무결성 검증 데이터 생성 등의 동작을 수행할 수 있다. 먼저, 애플리케이션을 수신하고 나면, 개발자(10)로부터 요청을 받아 애플리케이션에 대한 암호화를 수행할 수 있다. 이때, 암호화는 애플리케이션의 실행 파일, 리소스 및 이미지 등에 대해서 수행될 수 있다. 서버(20)는 개발자(10)로부터 지시 신호를 수신하여 애플리케이션을 패키징할 수 있다. 그리고는, 서버(20)는 선택적으로 애플리케이션에 서명을 수행한다. 이는 개발자(10)의 선택에 따라 개발자(10)가 진행할 수도 있다. 서버(20)는 서명이 완료된 애플리케이션에 대해 무결성 검증 데이터를 생성한다. 이는 앱 스토어(30)를 통한 배포 전에 이루어질 수 있다. 무결성 검증 데이터는 해당 애플리케이션이 위변조되지 않았음을 증명할 수 있는 데이터로서, 배포 전 애플리케이션으로부터 데이터를 추출하여 생성될 수 있다. 이는 애플리케이션의 유니크한 식별자로서 활용될 수 있다. 서명이 완료된 애플리케이션은 앱 스토어(30)를 통해 배포될 수 있다. 서버(20)는 배포된 애플리케이션의 사용자(40)가 애플리케이션을 실행할 때, 무결성 검증 데이터를 제공할 수 있고, 애플리케이션의 실행 인증 권한을 확인할 수 있다.
앱 스토어(30)는 애플리케이션을 공중에 배포하는 기능을 수행하며, 기존 앱 스토어를 활용할 수 있다.
사용자(40)는 앱 스토어(30)로부터 배포되는 애플리케이션을 수신하여 애플리케이션을 실행할 수 있다. 이때, 애플리케이션의 위변조를 검증하기 위해 서버(20)에 무결성 검증 데이터를 요청할 수 있고, 이를 기반으로 애플리케이션의 위변조 여부를 확인할 수 있다. 또한, 서버(20)에 애플리케이션의 실행 권한 정보를 요청하여, 실행 권한이 있는지 여부를 확인할 수 있고, 위변조 검증 및 실행 권한의 존재 여부를 기반으로 애플리케이션의 실행을 제어할 수 있다.
도 2는 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치(200)의 구성을 개략적으로 나타낸 블록도이다. 도 2를 참조하면, 본 발명의 일 실시예에 따른 서버 장치(200)는 검증 준비 모듈(210) 및 검증 모듈(220)을 포함할 수 있다.
도 2를 참조하면, 검증 준비 모듈(210)은 제 1 디바이스(10)로부터 개발된 애플리케이션을 수신할 수 있다. 검증 준비 모듈(210)은 제 1 디바이스(10)로부터 요청을 수신하여 애플리케이션에 대한 암호화를 수행할 수 있다. 그리고는, 암호화된 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성하여 검증에 필요한 준비를 수행한다. 이때, 무결성 검증 데이터는 애플리케이션이 배포되기 전에 생성되는 것이 바람직할 수 있다.
검증 모듈(220)은 제 2 디바이스(40)에서 애플리케이션을 실행할 때, 애플리케이션의 위변조 여부에 대한 검증 및 애플리케이션의 실행 권한의 존부 확인 기능을 지원할 수 있다. 검증 모듈(220)은 제 2 디바이스(40)의 실행 요청에 대응하여 해당 애플리케이션의 무결성 검증 데이터를 조회하여 제 2 디바이스(40)로 전송할 수 있다. 또한, 제 2 디바이스(40)의 사용자 또는 디바이스 정보를 수신하여 해당 사용자 또는 디바이스에게 실행 권한이 있는지에 대해 확인하고, 관련 정보를 제 2 디바이스(40)로 전송할 수 있다. 이러한 과정을 통해 애플리케이션의 실행을 제어할 수 있다.
도 3은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치의 검증 준비 모듈(210)을 구체적으로 나타낸 상세블록도이다. 도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 검증 준비 모듈(210)은 암호화부(310), 애플리케이션 패키지부(320), 애플리케이션 서명부(330) 및 무결성 정보 생성부(340)를 포함할 수 있다. 여기서, 암호화부(310)와 애플리케이션 패키지부(320) 및 애플리케이션 서명부(330)는 별도의 실행 파일로 제 1 디바이스(10)에 프로그램 형태로 제공될 수 있다.
도 3을 참조하면, 암호화부(310)는 애플리케이션의 기밀성을 보장하기 위해 애플리케이션을 암호화한다. 암호화부(310)는 제 1 디바이스(10)로부터 암호화 요청을 수신하고, 수신된 암호화 요청에 대응하여 애플리케이션에 대한 암호화를 수행한다. 이때, 애플리케이션의 주요 구성요소에 대한 암호화를 수행할 수 있다. 즉, 암호화부(310)는 애플리케이션의 바이너리(binary), 실행 파일, 리소스 및 이미지 중 적어도 어느 하나에 대해 암호화를 수행할 수 있다. 암호화부(310)는 실행 파일뿐만 아니라 바이너리 및 리소스 파일에 대해서도 암호화를 수행할 수 있다. 암호화부(310)는 안드로이드(android) 기반의 애플리케이션의 경우, dex 및 리소스 이미지 등에 대해 암호화를 수행할 수 있다.
본 발명의 다른 실시예에 따르면, 암호화부(310)는 애플리케이션의 암호화 범위를 선택할 수 있다. 이는 개발자의 선택에 따라 이루어질 수 있다. 암호화부(310)는 제 1 디바이스(10)로부터의 암호화 선택 신호를 수신하여 선택 신호에 따라 암호화 범위를 달리하여 암호화를 수행할 수 있다. 예컨대, 개발자는 바이너리 암호화, 리소스 난독화, 리소스 암호화 및 실행 권한 체크 여부 중 적어도 어느 하나와 관련된 부분이 선택적으로 처리되도록 할 수 있다. 해당 부분은 시스템에서 설정할 수도 있고, 개발자가 애플리케이션에 따라 개별적으로 설정할 수도 있다.
애플리케이션 패키지부(320)는 무결성 검증 및 애플리케이션의 복호화를 수행할 모듈을 삽입하여 애플리케이션을 패키지 처리한다. 애플리케이션 패키지부(320)는 암호화 관련 정보와 애플리케이션의 실행 및 검증에 필요한 모듈을 추가하여 애플리케이션 패키지를 생성할 수 있다. 이때, 추가되는 모듈은 다음과 같다.
도 4는 모바일 애플리케이션 패키지(400)의 구성을 나타낸 도면이다. 도 4에 도시된 바와 같이, 애플리케이션 패키지(400)는 복호화 모듈(410), 검증 및 실행 권한 정보 요청 모듈(420), 무결성 검증 모듈(430) 및 실행 권한 확인 모듈(440)을 포함할 수 있다.
도 4를 참조하면, 애플리케이션 패키지(400)는 기본적으로 암호화된 바이너리, 암호화된 리소스 등 애플리케이션 생성시 암호화 처리되는 기본적인 구성요소를 포함할 수 있다(미도시).
애플리케이션 패키지(400)는 애플리케이션의 사용자의 디바이스, 즉 제 2 디바이스(40)에서 애플리케이션이 원활하게 동작하도록 하기 위한 모듈을 포함한다.
복호화 모듈(410)은 암호화된 구성요소들을 복호화하기 위한 모듈이다.
검증 및 실행 권한 정보 요청 모듈(420)은 서버에서 생성 및 관리하고 있는 애플리케이션의 무결성 검증 데이터 또는 실행 권한 정보 관련 정보를 요청하는 모듈이다.
무결성 검증 모듈(430)은 서버 또는 보안이 확보된 보안 영역에서 조회한 해당 애플리케이션에 대한 무결성 검증 데이터와 현재 애플리케이션의 정보를 비교하여 무결성을 검증하는 모듈이다. 즉, 서버로부터 무결성 검증 데이터를 수신하여 제 2 디바이스(40)에서 실행되는 애플리케이션의 현재 시점의 무결성 검증 데이터와 비교하여 상기 두 데이터가 동일한지 아니면 변경된 부분이 존재하는지 판단하고, 판단 결과에 따라 위변조 여부를 결정한다.
실행 권한 확인 모듈(440)은 서버 또는 보안 영역에서 조회한 애플리케이션 실행 권한 관련 정보를 기반으로 애플리케이션의 실행 권한이 존재하는지 확인하는 모듈이다. 실행 권한 관련 정보는 해당 애플리케이션에 대해 인가받은 사용자 또는 디바이스인지에 대한 정보, 실행 기간 관련 정보, 실행 횟수 정보 중 적어도 어느 하나의 정보를 포함할 수 있다. 특히 실행 기간과 실행 횟수와 관련하여, 무기한인지, 일정 기간으로 제한되어 있는지 확인할 수 있고, 실행 횟수도 일정한 횟수로 제한이 되어 있을 수 있다. 또한, 일정 기간 내 일정 횟수로 제한을 걸 수도 있고, 일정 기간 내 하루에 사용가능한 횟수에 대한 제한을 둘 수도 있다. 실행 권한 확인 모듈(440)은 상기 정보들을 조회하여 실행 권한을 확인하고, 확인 결과, 애플리케이션의 실행 권한이 만료된 경우 서버에 재확인할 수 있다.
또한, 플랫폼 변조 여부 탐지 모듈(450)은 제 2 디바이스(40)에서 애플리케이션 실행시 애플리케이션의 플랫폼의 변조를 확인하기 위한 모듈이고, 악의적 접근 탐지 모듈(460)은 제 2 디바이스(40)에서 애플리케이션 실행 도중에 주기적으로 악의적인 접근을 탐지하기 위한 모듈이다.
다시 도 3으로 돌아가서, 애플리케이션 패키지부(320)는 상기한 모듈들을 포함하여 애플리케이션을 패키지 처리한다.
애플리케이션 패키지부(320)에서의 패키지 처리가 완료되면, 애플리케이션 서명부(330)는 애플리케이션에 대한 서명을 수행한다. 즉, 애플리케이션의 패키징 처리가 완료된 애플리케이션에 대해 서명을 수행하여 개발자가 누구인지 확인할 수 있도록 처리한다. 경우에 따라, 서명 관련 동작은 제 1 디바이스(10)의 선택에 따라 제 1 디바이스(10)가 별도로 진행할 수 있다. 서명은 개발자 또는 공통 인증서를 활용하여 수행될 수 있다.
무결성 정보 생성부(340)는 서명이 완료된 애플리케이션의 위변조 여부 확인시 필요할 수 있는 무결성 검증 데이터를 생성한다. 즉, 무결성 정보 생성부(340)는 해당 애플리케이션이 위변조되지 않았음을 증명할 수 있는 무결성 검증 데이터를 생성한다. 이는 애플리케이션의 생성 직후, 애플리케이션이 배포되기 전에 이루어지는 것이 바람직할 수 있다. 즉, 애플리케이션의 배포된 이후에는 이미 위변조가 일어났을 가능성이 있으므로, 애플리케이션이 배포되기 전에 무결성 검증 데이터를 생성하는 것이 바람직할 수 있다. 무결성 정보 생성부(340)는 배포 전의 애플리케이션 관련 파일들의 중요한 값에 대한 해시값(hash value)을 추출하여 무결성 검증 데이터를 생성할 수 있다. 이후, 이를 제 2 디바이스(40)에서 실행되는 애플리케이션의 검증 데이터와 비교하여 해당 애플리케이션의 위변조 여부를 판별할 수 있다. 또한, 경우에 따라, 무결성 정보 생성부(340)는 제 2 디바이스(40)에서 서로 약속된 메커니즘(또는 알고리즘)에 의해 생성된 시드(seed) 값을 생성하고, 이 시드 값을 근거로 무결성 검증 데이터를 생성할 수 있다. 이때, 제 2 디바이스(40)도 상기 메커니즘(또는 알고리즘)을 사용하여 시드 값 및 무결성 검증 데이터를 생성하여 비교함으로써 무결성을 검증할 수 있다.
무결성 정보 생성부(340)는 동일한 애플리케이션에 대해서도 버전별로 또는 실행 파일별로 서로 다른 무결성 검증 데이터를 생성할 수 있다. 무결성 정보 생성부(340)는 생성된 무결성 검증 데이터를 무결성 정보 관리부에 저장하여 관리한다.
도 5는 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치의 검증 모듈(220)을 구체적으로 나타낸 상세블록도이다. 도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 검증 모듈(220)은 실행 권한 확인부(510) 및 무결성 정보 관리부(520)를 포함할 수 있다.
도 5를 참조하면, 실행 권한 확인부(510)는 제 2 디바이스(40)에서 애플리케이션을 실행할 때, 애플리케이션의 실행 권한 정보를 확인하고 그 정보를 제 2 디바이스(40)에 제공한다. 이때, 실행 권한 확인부(510)는 기존의 다양한 앱 스토어(505)와 연동하여 실행 권한 정보를 확인할 수 있다.
실행 권한 확인부(510)는 제 2 디바이스(40)로부터 사용자 또는 디바이스 관련 정보를 수신할 수 있다. 그리고는 수신된 사용자 또는 디바이스 정보를 기반으로 실행 권한이 있는지 확인한다. 여기서, 실행 권한 정보는 인가된 사용자인지에 대한 정보를 포함할 수 있다. 즉, 실행 권한 확인부(510)는 인가된 사용자인지 또는 애플리케이션을 구매한 사용자인지 조회하여 실행 권한이 있는지 확인한다. 실행 권한 확인부(510)는 실행 기간 정보를 확인할 수 있다. 실행 기간은 일정 기간으로 정해져 있을 수 있고, 또는 무기한일 수도 있다. 이렇게 제 2 디바이스(40)의 실행 기간 정보를 조회하여 제 2 디바이스(40)가 실행 가능 기간 내에서 해당 애플리케이션을 사용하고 있는지 확인할 수 있다. 또한, 실행 권한 확인부(510)는 실행 횟수 정보를 조회하여 실행 가능 여부를 확인할 수 있다. 예컨대, 일정한 횟수로 실행 권한을 제한할 수 있고, 일정 기간 내 일정 횟수로 제한을 걸 수도 있으며, 일정 기간 내 하루에 사용가능한 횟수에 대한 제한을 둘 수도 있다. 실행 권한 확인부(510)는 실행 권한과 관련된 정보를 조회하여 직접 제 2 디바이스(40)의 실행 권한이 있는지 여부를 확인할 수 있고, 또는 경우에 따라 실행 권한 관련 정보를 제 2 디바이스(40)에 제공하여 제 2 디바이스(40)가 실행 권한의 존재 여부를 확인하는 작업을 지원할 수도 있다.
무결성 정보 관리부(520)는 제 2 디바이스(40)의 애플리케이션 실행에 대응하여 무결성 검증 데이터를 제 2 디바이스(40)로 제공한다. 제 2 디바이스(40)에서 애플리케이션을 실행하면, 제 2 디바이스(40)는 애플리케이션의 위변조 여부를 검증하기 위해 해당 애플리케이션의 무결성 검증 데이터를 요청할 수 있다. 무결성 정보 관리부(520)는 제 2 디바이스(40)의 요청에 대응하여 해당 애플리케이션의 무결성 검증 데이터를 제 2 디바이스(40)로 제공할 수 있다. 이때, 제 2 디바이스(40)는 해당 애플리케이션과 관련하여 복수 개의 버전 또는 실행 파일이 존재하는 경우, 해당 애플리케이션의 버전 또는 실행 파일을 특정하여 무결성 검증 데이터를 요청해야 한다. 이러한 경우, 무결성 정보 관리부(520)는 특정된 버전 또는 실행 파일의 무결성 검증 데이터를 제 2 디바이스(40)에 제공해야 하고, 따라서, 버전 또는 실행 파일별로 무결성 검증 데이터를 관리해야 한다.
도 6은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 서버 장치의 무결성 정보 관리부(520)가 버전 별로 무결성 검증 데이터를 관리하는 것을 설명하기 위한 개념도이다.
도 6을 참조하면, 무결성 정보 관리부(520)는 애플리케이션별로 무결성 검증 데이터를 관리한다. 또한, 동일한 애플리케이션에 대해서도 버전 별로 무결성 검증 데이터를 관리할 수 있다. 무결성 정보 생성부(340)(도 3 참조)는 버전 별로 또는 실행 파일 별로 무결성 검증 데이터를 생성하고 이를 무결성 정보 관리부(520)로 전송하면, 무결성 정보 관리부(520)는 생성된 무결성 검증 데이터를 버전 별로 또는 실행 파일별로 별도로 관리한다. 즉, 애플리케이션 1에 대해서 버전 1의 무결성 검증 데이터, 버전 2 및 버전 N의 무결성 검증 데이터를 각각 별도로 관리할 수 있다. 버전이 하나밖에 없는 경우에는 하나의 무결성 검증 데이터만 있으면 충분할 수 있다. 무결성 정보 관리부(520)는 제 2 디바이스(40)로부터 애플리케이션의 버전 정보 또는 실행 파일 정보를 수신하여 해당 정보에 대응되는 무결성 검증 데이터를 조회하여 제공할 수 있다.
경우에 따라, 무결성 정보 관리부(520)는 버전이 동일하더라도 애플리케이션의 내용이 조금이라도 바뀌면 별도의 애플리케이션으로 관리할 수 있다.
추가적으로, 애플리케이션의 패키징시 개발자가 설정한 정보 중 디버깅 관련 항목 등 해커들에 의해 악용될 수 있는 항목들을 제거할 수도 있다.
무결성 검증과 실행 권한 인증은 별도의 기능으로 서로 독립적으로 수행될 수 있다. 즉, 어느 하나의 동작이 다른 하나의 동작에 관여하지 않고, 순서가 바뀌어도 상관없다.
도 7은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스(700)의 구성을 개략적으로 나타낸 블록도이다. 도 7에 도시된 바와 같이, 본 발명의 일 실시예에 따른 사용자 디바이스(700)는 복호화부(710), 애플리케이션 실행부(720) 및 검증 및 확인 모듈(730)을 포함할 수 있다.
도 7을 참조하면, 복호화부(710)는 암호화된 애플리케이션의 각각의 구성요소를 복호화하여 실행할 수 있는 형태로 변환할 수 있다. 복호화부(710)는 애플리케이션 패키지에 포함된 복호화 모듈을 파싱하여 암호화된 바이너리, 리소스, 실행 파일 및 이미지 중 적어도 어느 하나를 복호화할 수 있다.
애플리케이션 실행부(720)는 복호화된 애플리케이션을 실행한다. 애플리케이션 실행부(720)에서 애플리케이션을 실행하겠다는 신호를 검증 및 확인 모듈(730)로 보내면 검증 및 확인 모듈(730)은 애플리케이션에 대한 무결성, 즉 위변조 여부에 대한 검증 및 실행 권한이 있는지에 대한 확인을 수행한다. 이는 선택적으로 수행될 수 있다. 또한, 시스템 또는 개발자의 설정에 따라 어느 하나의 검증 또는 확인만을 수행할 수도 있다.
검증 및 확인 모듈(730)은 서버(705)와 통신하면서 해당 애플리케이션과 관련된 무결성 검증 데이터 및 실행 권한 존재 여부 관련 정보를 수신할 수 있다. 검증 및 확인 모듈(730)은 애플리케이션과 관련된 무결성 검증 데이터 및 실행 권한 정보를 요청하고, 수신된 데이터를 기반으로 무결성 검증 및 실행 권한을 확인할 수 있으며, 관련 정보를 서버(705)로 전송하여 보고(report)할 수 있다. 이는 이하 도 8을 참조하여 상세히 설명한다.
도 8은 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 검증 및 확인 모듈(730)을 구체적으로 나타낸 상세블록도이다. 도 8에 도시된 바와 같이, 본 발명의 일 실시예에 따른 검증 및 확인 모듈(730)은 정보 요청부(810), 무결성 검증부(820), 실행 권한 확인부(830) 및 정보 관리부(840)를 포함할 수 있다.
도 8을 참조하면, 정보 요청부(810)는 서버(705)에서 관리하고 있는 애플리케이션 관련 무결성 검증 데이터 및 실행 권한 정보를 요청한다. 정보 요청부(810)는 무결성 정보 요청부(812) 및 실행 권한 정보 요청부(814)를 포함할 수 있다. 무결성 정보 요청부(812)는 실행하고자 하는 애플리케이션의 식별 정보(식별 정보에는 애플리케이션 ID 및 애플리케이션의 버전 정보, 실행 파일 정보 등이 포함될 수 있음)를 포함하여 해당 애플리케이션의 무결성 검증 데이터를 요청하는 요청 신호를 서버(705)로 전송한다. 특히, 무결성 검증 데이터는 동일한 애플리케이션에 대해서도 버전 또는 실행 파일별로 다를 수 있으므로, 요청 신호에 명확히 어느 버전 또는 실행 파일에 대응하는 무결성 검증 데이터를 필요로 하는지에 대한 정보를 포함시켜야 한다. 실행 권한 정보 요청부(814)도 마찬가지로, 실행하고자 하는 애플리케이션의 식별 정보 및 디바이스 정보를 포함하여 해당 애플리케이션의 무결성 검증 데이터를 서버(705)에 요청한다. 서버(705)는 사용자 디바이스에서 실행되는 애플리케이션이 어떤 애플리케이션인지 식별하여 해당 애플리케이션과 관련된 무결성 검증 데이터를 전송할 수 있다. 또한, 서버(705)는 실행 권한 정보와 관련하여, 식별된 애플리케이션과 디바이스 정보를 기반으로 실행 권한 정보를 조회하여 사용자 디바이스로 전송할 수 있다.
무결성 검증부(820)는 무결성 정보 요청부(812)의 요청에 의해 서버(705) 또는 사용자 디바이스 내의 보안 영역으로부터 수신되는 해당 애플리케이션에 대한 무결성 검증 데이터를 현재 애플리케이션의 정보와 비교한다. 무결성 검증부(820)는 현재 애플리케이션의 무결성 검증 데이터를 자체적으로 생성하고, 생성된 현재 시점의 무결성 검증 데이터와 애플리케이션 배포 전에 서버(705)에서 생성되었던 무결성 검증 데이터를 비교하여 애플리케이션의 위변조 여부를 판단한다. 자체 생성되는 무결성 검증 데이터는 서버(705)에서 생성되는 무결성 검증 데이터와 대응되는 것으로, 동일한 방식이 사용될 수 있고, 경우에 따라 생성 방식 정보를 서버(705)로부터 수신하여 서버(705)의 무결성 검증 데이터와 동일한 방식으로 생성되도록 지원받을 수 있다. 이때, 서버(705)와 서로 약속된 메커니즘(또는 알고리즘)에 의해 시드(seed) 값을 생성하고, 생성된 시드 값을 근거로 무결성 검증 데이터를 생성할 수 있다.
양 무결성 검증 데이터의 비교는 무결성 검증 데이터가 해쉬 값으로 생성될 수 있으므로, 구간별로 해쉬 값을 비교하여 동일한 값을 갖는지 여부를 통해 수행될 수 있다. 만약 애플리케이션의 배포 후에도 위변조가 이루어지지 않았다면, 현재 시점에 무결성 검증부(820)에서 생성한 무결성 검증 데이터와 배포 전에 생성된 무결성 검증 데이터가 동일한 값을 가질 수 있다. 만약 비교 결과, 값이 동일하지 않으면, 위변조가 이루어진 것으로 판단할 수 있다. 또는 개발자 또는 시스템 설정에 의해 임계값을 설정하여 일정 값 이상 차이가 나타나는 경우에 위변조가 이루어진 것으로 판단하도록 제어할 수 있다. 무결성 검증부(820)는 검증 결과 및 서버(705)로부터 수신된 애플리케이션 무결성 검증 데이터를 정보 관리부(840)로 전송하여 보관하고 있도록 한다.
실행 권한 확인부(830)는 실행 권한 정보 요청부(814)의 요청에 의해 서버(705) 또는 사용자 디바이스 내의 보안 영역으로 수신되는 해당 애플리케이션에 대한 실행 권한 관련 정보를 수신하여 애플리케이션에 대한 실행 권한이 있는지 확인한다. 실행 권한 확인부(830)는 서버(705)가 실행 권한이 있는지 판단한 정보를 수신하여 실행 권한이 있는지 확인할 수도 있다. 또한, 서버(705)가 해당 디바이스에 대한 실행 권한 관련 정보로서 조회한 정보를 수신하여 실행 권한 확인부(830)가 직접 실행 권한이 있는지 여부를 판단할 수도 있다. 예컨대, 서버(705)로부터 해당 디바이스에는 실행 권한이 있는지 또는 없는지에 대한 직접적인 정보가 포함된 정보를 수신할 수도 있다. 반면, 해당 디바이스에 실행 권한이 어느 시점까지 존재한다는 실행 기간 정보를 수신하여 실행 권한 확인부(830)가 현재 시점과 비교하여 실행 권한이 있는지 확인할 수도 있다. 실행 권한 정보는 인가받은 사용자인지, 애플리케이션의 구매자인지, 실행 기간(무기한 또는 일정 기간)과 관련된 정보 및 실행 횟수와 관련된 정보 중 적어도 어느 하나를 포함할 수 있다. 실행 권한 확인부(830)는 만약, 실행 권한이 만료된 경우, 서버(705)에 재확인 요청을 할 수 있다. 실행 권한 확인부(830)는 무결성 검증부(820)는 확인 결과 및 서버(705)로부터 수신된 애플리케이션 실행 권한 정보를 정보 관리부(840)로 전송하여 보관하고 있도록 한다.
정보 관리부(840)는 무결성 검증부(820) 및 실행 권한 확인부(830)로부터 수신한 검증 결과 정보(예컨대, 검증 성공인지 실패인지에 대한 정보), 서버(705)부터 수신한 무결성 검증 데이터 정보, 실행 권한 확인 결과 정보(권한 확인 성공인지 실패인지에 대한 정보) 및 서버(705)로부터 수신한 실행 권한 관련 정보 중 적어도 어느 하나를 보관 및 저장할 수 있고, 관련 정보를 서버(705)로 보고할 수 있다. 검증 및 확인 결과 정보와 관련하여 정보 관리부(840)는 어느 시점에 어떤 사유로 실패했는지에 대한 정보를 서버(705)로 보고할 수 있다. 또한, 정보 관리부(840)는 보안이 확실히 지켜질 수 있는 보안 영역일 수 있다. 따라서, 서버(705)로부터 수신한 무결성 검증 데이터 정보 및 실행 권한 관련 정보를 안전하게 보관 및 관리할 수 있다. 그렇게 함으로써 정보 관리부(840)에서 보관하고 있는 무결성 또는 실행 권한 관련 정보에 대해 서버(705)에 불필요하게 요청하는 것을 방지할 수 있다. 또한, 단말이 네트워크 접속 불가능시 저장된 정보를 활용하여 애플리케이션의 실행 여부를 결정할 수 있도록 하기 위함이다.
도 9는 본 발명의 일 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 애플리케이션 실행 과정을 나타낸 흐름도이다.
도 9를 참조하면, 사용자가 애플리케이션의 실행을 클릭하면(S910), 애플리케이션의 복호화가 수행된다(S920). 이는 암호화된 애플리케이션을 실행할 수 있는 형태로 변환하는 과정이다. 만약 복호화가 이루어지지 않는 경우, 실패 관련 정보를 서버에 보고할 수 있다(S980). 그리고는 사용자 디바이스는 복호화된 애플리케이션 정보에서 현재 시점의 애플리케이션 무결성 검증 데이터를 생성한다(S930). 이는 서버에서 무결성 검증 데이터를 생성하는 과정에 대응되는 과정으로 동일한 방식을 사용할 수 있다. 다음으로, 사용자 디바이스는 해당 애플리케이션의 무결성 검증 데이터 및 실행 권한 정보를 서버 또는 사용자 디바이스 내의 정보 관리부(미도시)에 요청하여 획득한다(S940). 서버로부터 수신되는 정보는 사용자 디바이스의 보안 영역에 저장되어 추후 검증시 활용될 수 있다. 사용자 디바이스는 획득된 무결성 검증 데이터와 현재 시점에 자체 생성한 무결성 검증 데이터를 비교하여 위변조 여부를 검증한다(S950). 만약 무결성 검증이 성공하면, 실행 권한이 있는지 확인한다(S960). 만약 검증 실패가 된 경우, 서버로 실패 관련 정보를 보고하고(S980), 애플리케이션을 종료한다. 서버는 보고된 실패 정보를 관리한다. 무결성 검증이 성공하여 실행 권한 확인 결과, 실행 권한이 있는 것으로 판단된 경우, 애플리케이션을 실행할 수 있다(S970). 만약 확인 실패가 된 경우, 서버로 실패 관련 정보를 보고하고(S980), 애플리케이션을 종료한다(S990). 서버는 보고된 실패 정보를 관리한다. 여기서, 무결성 검증 과정(S950)과 실행 권한 확인 과정(S960)은 순서가 바뀔 수 있고, 경우에 따라 선택적으로 수행될 수 있다. 또한, 무결성 데이터 생성 단계(S930)와 무결성 데이터 획득 단계(S940)의 순서도 바뀔 수 있다.
도 10은 본 발명의 다른 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 구성을 개략적으로 나타낸 블록도이다. 도 10에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 사용자 디바이스는 복호화부(1010), 애플리케이션 실행부(1020) 및 검증 및 확인 모듈(1030)을 포함할 수 있다.
도 10을 참조하면, 복호화부(1010) 및 애플리케이션 실행부(1020)는 도 7의 복호화부(710) 및 애플리케이션 실행부(720)와 동일한 기능을 수행할 수 있다.
본 발명의 다른 실시예에 따르면, 검증 및 확인 모듈(1030)은 정보 요청부(1032), 무결성 검증부(1034), 실행 권한 확인부(1036), 정보 관리부(1038), 플랫폼 변조 여부 확인부(1040) 및 악의적 접근 탐지부(1042)를 포함할 수 있다. 여기서, 정보 요청부(1032), 무결성 검증부(1034), 실행 권한 확인부(1036) 및 정보 관리부(1038)는 도 8의 정보 요청부(810), 무결성 검증부(820), 실행 권한 확인부(830) 및 정보 관리부(840)과 동일한 기능을 수행할 수 있다.
플랫폼 변조 여부 확인부(1040)는 복호화된 애플리케이션을 실행함에 있어서, 플랫폼이 변조되었는지 여부를 확인한다. 예컨대, 애플리케이션에 루팅 또는 탈옥 등과 같은 변조가 일어났는지에 대해 체크하여 탐지하는 기능을 갖는다. 플랫폼 변조 여부 확인부(1040)는 애플리케이션 플랫폼의 변조를 확인하는 경우, 애플리케이션의 실행 실패를 서버(1005)에 보고하고, 애플리케이션을 강제 종료할 수 있다.
다음으로, 악의적 접근 탐지부(1042)는 애플리케이션의 실행 중에 동작할 수 있다. 악의적 접근 탐지부(1042)는 주기적으로 악의적인 접근을 탐지하여 서버(1005)에 해당 정보를 보고하고 애플리케이션을 강제 종료시킬 수 있다. 이때, 탐지 주기는 개발자 또는 시스템에서 설정할 수 있다.
도 11은 본 발명의 다른 실시예에 따른 모바일 애플리케이션 위변조 방지를 위한 사용자 디바이스의 애플리케이션 실행 과정을 나타낸 흐름도이다.
도 11을 참조하면, 사용자가 애플리케이션의 실행을 클릭하면(S1110), 애플리케이션의 복호화가 수행된다(S1112). 이는 암호화된 애플리케이션을 실행할 수 있는 형태로 변환하는 과정이다. 만약 복호화가 이루어지지 않는 경우, 실패 관련 정보를 서버에 보고할 수 있다(S1128). 다음으로, 사용자 디바이스는 애플리케이션의 플랫폼 변조 여부를 확인한다(S1114). 사용자 디바이스는 애플리케이션의 실행시 플랫폼이 루팅 또는 탈옥 등에 의해 변조되었는지 탐지하여 만약 변조가 되었다고 확인되는 경우 실패 정보를 서버에 보고하고(S1128), 애플리케이션을 종료할 수 있다(S1130). 그리고는 사용자 디바이스는 복호화된 애플리케이션 정보에서 현재 시점의 애플리케이션 무결성 검증 데이터를 생성한다(S1116). 이는 서버에서 무결성 검증 데이터를 생성하는 과정에 대응되는 과정으로 동일한 방식을 사용할 수 있다. 사용자 디바이스는 해당 애플리케이션의 무결성 검증 데이터 및 실행 권한 정보를 서버 또는 사용자 디바이스 내의 정보 관리부(미도시)에 요청하여 획득한다(S1118). 서버로부터 수신되는 정보는 사용자 디바이스의 보안 영역에 저장되어 추후 검증시 활용될 수 있다. 사용자 디바이스는 획득된 무결성 검증 데이터와 현재 시점에 자체 생성한 무결성 검증 데이터를 비교하여 위변조 여부를 검증한다(S1120). 만약 무결성 검증이 성공하면, 실행 권한이 있는지 확인한다(S1122). 만약 검증 실패가 된 경우, 서버로 실패 관련 정보를 보고하고(S1128), 애플리케이션을 종료한다(S1130). 서버는 보고된 실패 정보를 관리한다. 무결성 검증이 성공하여 실행 권한 확인 결과, 실행 권한이 있는 것으로 판단된 경우, 애플리케이션을 실행할 수 있다(S1124). 만약 확인 실패가 된 경우, 서버로 실패 관련 정보를 보고하고(S1128), 애플리케이션을 종료한다(S1130). 서버는 보고된 실패 정보를 관리한다. 애플리케이션의 실행 중에, 사용자 디바이스는 주기적으로 악의적인 애플리케이션 접근을 탐지한다(S1126). 그리고는, 악의적인 접근이 감지되면, 해당 정보를 서버에 보고하고(S1128), 애플리케이션을 강제 종료시킨다(S1130). 여기서, 무결성 검증 과정(S1120)과 실행 권한 확인 과정(S1122)은 순서가 바뀔 수 있고, 경우에 따라 선택적으로 수행될 수 있다. 또한, 무결성 데이터 생성 단계(S1116)와 무결성 데이터 획득 단계(S1118)의 순서도 바뀔 수 있다.
이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (23)

  1. 제 1 디바이스로부터의 암호화 요청에 의해 모바일 애플리케이션의 각 구성요소를 암호화 처리하는 암호화부; 및
    상기 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성하는 무결성 정보 생성부를 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  2. 제 1 항에 있어서, 상기 암호화부는
    상기 애플리케이션의 바이너리(binary), 실행 파일, 리소스(resource) 및 이미지 중 적어도 어느 하나를 암호화하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  3. 제 1 항에 있어서, 상기 암호화부는
    상기 제 1 디바이스에서의 선택 신호 또는 시스템의 설정에 따라 상기 애플리케이션의 암호화 범위 - 암호화 범위는 바이너리 암호화, 리소스 난독화, 리소스 암호화 및 실행 권한 확인 여부 중 적어도 어느 하나를 포함함 - 를 선택하여 암호화 처리하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  4. 제 1 항에 있어서,
    상기 무결성 검증 데이터는 상기 애플리케이션이 배포되기 전에 생성되는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  5. 제 1 항에 있어서,
    상기 암호화된 애플리케이션 관련 정보와 상기 애플리케이션의 실행 및 검증에 필요한 모듈을 추가하여 패키지 처리하는 애플리케이션 패키지부를 더 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  6. 제 5 항에 있어서, 상기 애플리케이션 패키지부는
    제 2 디바이스에서 상기 애플리케이션을 복호화를 수행하기 위한 모듈;
    상기 제 2 디바이스에서 상기 무결성 검증 데이터를 요청하는 모듈;
    상기 무결성 검증 데이터와 상기 제 2 디바이스에서 실행되는 애플리케이션의 현재 정보를 비교하는 모듈; 및
    상기 제 2 디바이스의 상기 애플리케이션의 실행 권한을 확인하는 모듈을 포함시켜 패키지 처리하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  7. 제 6 항에 있어서, 상기 애플리케이션 패키지부는
    상기 제 2 디바이스에서 애플리케이션 실행시 애플리케이션의 플랫폼의 변조를 탐지하기 위한 모듈; 및
    상기 제 2 디바이스에서 애플리케이션 실행 도중에 주기적으로 악의적인 접근을 탐지하기 위한 모듈을 더 포함시켜 패키지 처리하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  8. 제 5 항에 있어서,
    상기 애플리케이션의 무결성 검증 데이터를 저장 관리하고, 제 2 디바이스에서의 애플리케이션 실행에 대응하여 상기 무결성 검증 데이터를 상기 제 2 디바이스로 제공하는 무결성 정보 관리부를 더 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  9. 제 8 항에 있어서, 상기 무결성 정보 관리부는
    상기 애플리케이션의 버전(version) 또는 실행 파일별로 무결성 검증 데이터를 관리하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  10. 제 5 항에 있어서,
    제 2 디바이스에서 상기 애플리케이션을 실행하는 경우, 상기 애플리케이션의 실행 권한 관련 정보를 확인하고, 확인된 정보를 상기 제 2 디바이스로 제공하는 실행 권한 확인부를 더 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  11. 제 10 항에 있어서,
    상기 실행 권한 확인부는 앱 스토어(app store)와 연동하여 상기 실행 권한 관련 정보를 확인하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  12. 제 10 항에 있어서,
    상기 애플리케이션의 실행 권한 관련 정보는 애플리케이션 인가 사용자 정보, 실행 기간 정보 및 실행 횟수 정보 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  13. 제 1 항에 있어서,
    상기 제 1 디바이스로부터 서명 관련 신호 또는 공통 인증서를 수신하여 상기 애플리케이션에 대한 서명을 수행하는 애플리케이션 서명부를 더 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  14. 제 1 항에 있어서,
    상기 애플리케이션의 무결성 검증의 성공 여부 및 실행 권한의 존재 여부와 관련된 정보를 매회 저장 관리하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 장치.
  15. 제 1 디바이스로부터의 암호화 요청에 의해 모바일 애플리케이션의 각 구성요소를 암호화 처리하는 암호화 단계; 및
    상기 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성하는 무결성 검증 데이터 생성 단계를 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 방법.
  16. 암호화된 모바일 애플리케이션을 복호화하는 복호화부;
    복호화된 모바일 애플리케이션을 실행하는 애플리케이션 실행부;
    상기 애플리케이션의 실행시 상기 애플리케이션이 위변조되지 않았음을 증명하는 무결성 검증 데이터를 서버에 요청하는 무결성 정보 요청부; 및
    상기 무결성 검증 데이터를 기반으로 상기 애플리케이션의 무결성을 검증하는 무결성 검증부를 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 사용자 디바이스.
  17. 제 16 항에 있어서,
    상기 무결성 검증부는 상기 무결성 검증 데이터와 현재 애플리케이션의 정보를 비교하여 무결성을 검증하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 사용자 디바이스.
  18. 제 16 항에 있어서,
    상기 무결성 검증 데이터는 보안 영역에 보관하여 재사용 가능하게 관리하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 사용자 디바이스.
  19. 제 16 항에 있어서,
    상기 애플리케이션의 실행 권한과 관련된 정보를 요청하는 실행 권한 정보 요청부; 및
    상기 실행 권한 관련 정보를 기반으로 애플리케이션의 실행 권한이 있는지 확인하는 실행 권한 확인부를 더 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 사용자 디바이스.
  20. 제 16 항에 있어서,
    상기 애플리케이션 실행시 애플리케이션의 플랫폼의 변조를 탐지하기 위한 플랫폼 변조 여부 확인부; 및
    상기 애플리케이션 실행 도중에 주기적으로 악의적인 접근을 탐지하기 위한 악의적 접근 탐지부를 더 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 사용자 디바이스.
  21. 제 20 항에 있어서,
    상기 애플리케이션에 대한 무결성 검증의 실패 여부, 실행 권한 확인 결과, 플랫폼의 변조 여부 및 악의적 접근 여부와 관련된 정보 중 적어도 어느 하나의 정보를 상기 서버로 보고하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 사용자 디바이스.
  22. 암호화된 애플리케이션을 복호화하는 복호화 단계;
    복호화된 애플리케이션을 실행하는 애플리케이션 실행 단계;
    상기 애플리케이션의 실행시 상기 애플리케이션이 위변조되지 않았음을 증명하는 무결성 검증 데이터를 서버에 요청하는 무결성 정보 요청 단계; 및
    상기 무결성 검증 데이터를 기반으로 상기 애플리케이션의 무결성을 검증하는 무결성 검증 단계를 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 방법.
  23. 모바일 애플리케이션을 생성하여 서버로 전송하고, 상기 애플리케이션의 구성요소에 대한 암호화 또는 무결성 검증 데이터 생성을 요청하는 제 1 디바이스;
    상기 제 1 디바이스로부터의 요청에 의해 모바일 애플리케이션의 각 구성요소를 암호화 처리하고 상기 애플리케이션이 위변조되지 않음을 증명하는 무결성 검증 데이터를 생성 및 관리하며 제 2 디바이스에서의 애플리케이션 실행시 상기 무결성 검증 데이터를 제공하는 서버; 및
    상기 암호화된 애플리케이션을 복호화 및 실행하고, 상기 애플리케이션의 실행시 상기 애플리케이션이 위변조되지 않았음을 증명하는 무결성 검증 데이터를 상기 서버에 요청하여 상기 무결성 검증 데이터를 기반으로 상기 애플리케이션의 무결성을 검증하는 제 2 디바이스를 포함하는 것을 특징으로 하는 모바일 애플리케이션의 위변조를 방지하기 위한 시스템.
KR20130100265A 2013-08-23 2013-08-23 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템 KR101509585B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130100265A KR101509585B1 (ko) 2013-08-23 2013-08-23 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130100265A KR101509585B1 (ko) 2013-08-23 2013-08-23 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20150022429A true KR20150022429A (ko) 2015-03-04
KR101509585B1 KR101509585B1 (ko) 2015-04-07

Family

ID=53020432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130100265A KR101509585B1 (ko) 2013-08-23 2013-08-23 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101509585B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101642252B1 (ko) * 2016-06-15 2016-07-25 숭실대학교산학협력단 이미지 리소스 파일을 이용한 모바일 응용 프로그램 위변조 탐지 장치 및 그 방법
WO2018084434A1 (ko) * 2016-11-03 2018-05-11 시큐리티플랫폼 주식회사 서명된 공개 키를 이용한 시큐어 부트 방법
KR20200094324A (ko) * 2019-01-30 2020-08-07 순천향대학교 산학협력단 적은 자원을 활용한 무결성 상호 검증 방법 및 시스템
KR20200094323A (ko) * 2019-01-30 2020-08-07 순천향대학교 산학협력단 적은 자원을 활용한 무결성 자체 검증 방안
WO2021225329A1 (ko) * 2020-05-06 2021-11-11 네이버클라우드 주식회사 사용자 식별자 및 서명 수집을 이용한 모바일 애플리케이션 위변조 탐지 방법 및 시스템
KR20210135907A (ko) * 2020-05-06 2021-11-16 네이버클라우드 주식회사 사용자 식별자 및 서명 수집을 이용한 모바일 애플리케이션 위변조 탐지 방법 및 시스템
US11308238B2 (en) 2018-11-28 2022-04-19 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101872104B1 (ko) 2016-08-30 2018-06-28 한남대학교 산학협력단 Apk 파일 동적로딩 기법을 이용한 뱅킹 어플리케이션 무결성 검증 시스템 및 무결성 검증방법
KR20220102483A (ko) * 2021-01-13 2022-07-20 삼성전자주식회사 어플리케이션 패키지를 실행하기 위한 전자 장치 및 그의 동작 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030075018A (ko) * 2002-03-15 2003-09-22 주식회사 셈틀로미디어 변조 방지용 소프트웨어 파일 생성 장치와 그 소프트웨어파일의 자가 무결성 검증 방법 및 클라이언트-서버환경에서의 소프트웨어 파일의 자가 무결성 검증 방법
JP5622668B2 (ja) 2011-06-16 2014-11-12 株式会社エヌ・ティ・ティ・データ アプリケーション認証システム、アプリケーション認証方法
KR101269089B1 (ko) * 2011-08-19 2013-05-29 고려대학교 산학협력단 자가암호화를 이용한 소프트웨어 변조방지 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101642252B1 (ko) * 2016-06-15 2016-07-25 숭실대학교산학협력단 이미지 리소스 파일을 이용한 모바일 응용 프로그램 위변조 탐지 장치 및 그 방법
WO2018084434A1 (ko) * 2016-11-03 2018-05-11 시큐리티플랫폼 주식회사 서명된 공개 키를 이용한 시큐어 부트 방법
US11308238B2 (en) 2018-11-28 2022-04-19 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application
KR20200094324A (ko) * 2019-01-30 2020-08-07 순천향대학교 산학협력단 적은 자원을 활용한 무결성 상호 검증 방법 및 시스템
KR20200094323A (ko) * 2019-01-30 2020-08-07 순천향대학교 산학협력단 적은 자원을 활용한 무결성 자체 검증 방안
WO2021225329A1 (ko) * 2020-05-06 2021-11-11 네이버클라우드 주식회사 사용자 식별자 및 서명 수집을 이용한 모바일 애플리케이션 위변조 탐지 방법 및 시스템
KR20210135907A (ko) * 2020-05-06 2021-11-16 네이버클라우드 주식회사 사용자 식별자 및 서명 수집을 이용한 모바일 애플리케이션 위변조 탐지 방법 및 시스템

Also Published As

Publication number Publication date
KR101509585B1 (ko) 2015-04-07

Similar Documents

Publication Publication Date Title
KR101509585B1 (ko) 모바일 애플리케이션의 위변조 방지 장치, 사용자 디바이스, 방법 및 시스템
US11076295B2 (en) Remote management method, and device
KR101740256B1 (ko) 모바일 앱 무결성 보증 장치 및 방법
US8683214B2 (en) Method and device that verifies application program modules
US8966248B2 (en) Secure software file transfer systems and methods for vehicle control modules
CN102855446B (zh) 资源管理系统及相应方法
CN107534551B (zh) 提供加密数据的方法、计算设备和计算机可读介质
CN111143856A (zh) 一种plc远程固件升级系统及方法
CN111367532A (zh) 软件许可本地部署方法、装置、设备及存储介质
CN107257282B (zh) 一种基于rc4算法的代码全包加密方法
KR101642267B1 (ko) 앱 위변조 방지시스템 및 그 방법
CN102270285B (zh) 密钥授权信息管理方法及装置
CN114598501A (zh) 一种基于物联网的数据处理方法和装置
CN110619194B (zh) 一种升级包加密、解密方法及装置
JP2016012902A (ja) 電子データ利用システム、携帯端末装置、及び電子データ利用システムにおける方法
CN112115430A (zh) 一种apk的加固方法、电子设备及存储介质
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
CN115795438A (zh) 应用程序授权的方法、系统及可读存储介质
CN110837643A (zh) 一种可信执行环境的激活方法和装置
CN110210189B (zh) 软件验证方法、软硬件绑定方法及其可编程器件
KR20130125245A (ko) 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템
KR101415786B1 (ko) 온라인 실행 코드 기술과 암호화 기반 불법 복제 방지 시스템 및 그 방법
KR101286767B1 (ko) 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법
KR101294866B1 (ko) 개발환경 관리 시스템 및 이의 개발환경 관리 방법
CN112817615A (zh) 文件处理方法、设备、系统和存储介质

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
FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 5

R401 Registration of restoration