KR101782145B1 - 보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법 - Google Patents

보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법 Download PDF

Info

Publication number
KR101782145B1
KR101782145B1 KR1020150087252A KR20150087252A KR101782145B1 KR 101782145 B1 KR101782145 B1 KR 101782145B1 KR 1020150087252 A KR1020150087252 A KR 1020150087252A KR 20150087252 A KR20150087252 A KR 20150087252A KR 101782145 B1 KR101782145 B1 KR 101782145B1
Authority
KR
South Korea
Prior art keywords
application
file
metadata
distribution server
user terminal
Prior art date
Application number
KR1020150087252A
Other languages
English (en)
Other versions
KR20160118900A (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 US14/824,327 priority Critical patent/US10216941B2/en
Priority to PCT/KR2016/000126 priority patent/WO2016159496A1/ko
Publication of KR20160118900A publication Critical patent/KR20160118900A/ko
Application granted granted Critical
Publication of KR101782145B1 publication Critical patent/KR101782145B1/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

본 발명의 실시예는 배포 서버가 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 신호를 전송하는 단계; 상기 배포 서버가 상기 사용자 단말기로부터 제1 메타 데이터를 포함하는 응답을 수신하는 단계; 상기 배포 서버가 상기 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 상기 제1 메타 데이터 및 상기 제2 메타 데이터 사이의 일치 여부를 판단하여, 상기 제1 메타 데이터의 유효성을 판단하는 단계; 상기 배포 서버가 상기 판단 결과, 상기 제1 메타 데이터가 유효하지 않은 경우, 상기 애플리케이션이 유효하지 않다고 판단하고, 상기 애플리케이션의 재 설치를 위해서, 상기 사용자 단말기와의 연결을 설립하는 단계; 및 상기 배포 서버가 상기 설립한 연결을 통해, 상기 애플리케이션을 설치할 수 있는 하나 이상의 설치 파일을 개인키로 암호화하여, 상기 암호화된 설치 파일을 전송하는 단계;를 포함하는 애플리케이션 배포 방법를 개시한다.

Description

보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법{METHOD FOR DEPLOYING APPLICATIONS WITH SECURITY FEATURES AND METHOD FOR OPERATION OF THE APPLICATIONS}
본 발명은 보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법에 관한 것으로, 보다 구체적으로는 애플리케이션과 관련된 파일들을 개인키로 암호화하여, 저장 관리하고, 배포하고,, 개인키와 짝을 이루는 공개키를 이용하여, 다운로드 받은 하나 이상의 파일을 복호화시켜 실행시키는 방법에 관한 것이다.
소프트웨어(software)는 PC에 설치된 실행 파일, 동적 연결 파일, 데이터 파일로 구성된다. 일반적으로 실행 파일, 동적 연결 파일, 데이터 파일은 확장자에 의해 구분가능하고, 상세하게 실행 파일은 확장자가 EXE, COM이고, 동적 연결 파일은 DLL, OCX이고, 데이터 파일은 DAT, INT, TXT등이다.
사용자가 실행 파일을 실행시키면, 해당 소프트웨어 실행에 필요한 동적 연결 파일이나 데이터 파일을 참조하여 작동을 한다. 이때 만일 실행 파일 또는 동적 연결 파일이 바이러스 혹은 해킹툴에 의해 변조된 경우라면, 해당 소프트웨어 실행과 동시에 변조된 파일은 사용자가 의도하지 않은 내용의 작업을 수행하게 된다. 사용자는 기존에 사용해왔던 정상적인 프로그램을 사용한다고 생각하기 때문에 감염 여부 혹은 변조 여부를 인지하기는 거의 불가능하다.
기존 방식은 바이러스백신(anti virus) 엔진을 이용하여 단순히 해킹 툴의 패턴을 추가하고 주기적으로 프로세스들을 검사하여 등록된 해킹 패턴과 일치한 프로그램이 있으면 강제 종료시킨다. 그러나, 이러한 기존의 보안방법은 계속 쏟아져 나오는 수많은 새로운 해킹 툴 들을 모두 패턴에 추가하여야 하는 문제가 있고, 기존의 해킹툴도 다시 컴파일을 하거나 실행파일을 압축하면 프로그램의 패턴이 변형되기 때문에 더 이상 파일의 무결성 검출이 어렵다는 문제점이 있다.
본 발명은 바이러스에 감염되지 않은 애플리케이션 관련 파일을 배포하도록 하는 애플리케이션 배포 방법을 제공하는 것을 일 목적으로 한다.
또한, 본 발명은 다운로드된 파일 중에서 바이러스에 감염된 파일의 설치 및 실행을 방지하도록 하는 애플리케이션을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 애플리케이션의 실행 전에, 애플리케이션 관련 파일의 유효성을 검증하여, 유효하지 않은 파일의 재설치가 가능하도록 하는 애플리케이션의 배포 방법을 다른 목적으로 한다.
본 발명의 실시예들에 따른 애플리케이션 배포 방법은 배포 서버가 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 신호를 전송하는 단계; 상기 배포 서버가 상기 사용자 단말기로부터 제1 메타 데이터를 포함하는 응답을 수신하는 단계; 상기 배포 서버가 상기 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 상기 제1 메타 데이터 및 상기 제2 메타 데이터 사이의 일치 여부를 판단하여, 상기 제1 메타 데이터의 유효성을 판단하는 단계; 상기 배포 서버가 상기 판단 결과, 상기 제1 메타 데이터가 유효하지 않은 경우, 상기 애플리케이션이 유효하지 않다고 판단하고, 상기 애플리케이션의 재 설치를 위해서, 상기 사용자 단말기와의 연결을 설립하는 단계; 및 상기 배포 서버가 상기 설립한 연결을 통해, 상기 애플리케이션을 설치할 수 있는 하나 이상의 설치 파일을 개인키로 암호화하여, 상기 암호화된 설치 파일을 전송하는 단계;를 포함할 수 있다.
본 실시예에서, 상기 암호화된 설치 파일을 전송하는 단계는 상기 하나 이상의 설치 파일을 하나의 통합 파일로 압축하여 생성하고, 상기 통합 파일을 전송할 수 있다.
본 실시예에서, 상기 배포 서버가 메인 애플리케이션과 연동되는 하나 이상의 서브 애플리케이션에 대한 하나 이상의 설치 파일을 암호화하고, 상기 하나 이상의 서브 애플리케이션과 대응되는 메타 데이터를 저장하고, 애플리케이션별로 관리하는 단계;를 포함할 수 있다.
본 발명의 실시예들에 따른 애플리케이션 배포 방법은 배포 서버가 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 제1 신호를 전송하는 단계; 상기 배포 서버가 상기 제1 신호에 대한 응답으로, 상기 사용자 단말기로부터 제1 메타 데이터를 포함하는 응답을 수신하는 단계; 상기 배포 서버가 상기 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 상기 제1 메타 데이터 및 상기 제2 메타 데이터 사이의 일치 여부를 판단하여, 상기 제1 메타 데이터의 유효성을 판단하는 단계; 상기 배포 서버가 상기 판단 결과, 상기 제1 메타 데이터가 유효하지 않은 경우, 상기 사용자 단말기로 상기 애플리케이션과 대응되는 패쳐 파일을 요청하는 제2 신호를 전송하는 단계; 상기 배포 서버가 상기 제2 신호에 대한 응답으로, 상기 사용자 단말기로부터 제1 패쳐 파일을 포함하는 응답을 수신하는 단계; 상기 배포 서버가 상기 제1 패쳐 파일에 포함된 요청 정보를 분석하여, 상기 요청 정보와 대응되는 설치 파일을 생성하는 단계; 상기 배포 서버가 상기 설치 파일의 전송을 위해서, 상기 사용자 단말기와의 연결을 설립하는 단계; 및 상기 배포 서버가 상기 설립한 연결을 통해, 상기 설치 파일을 암호화하여, 상기 사용자 단말기로 전송하는 단계;를 포함할 수 있다.
본 실시예에서, 상기 암호화된 설치 파일을 전송하는 단계는 상기 하나 이상의 설치 파일을 하나의 통합 파일로 압축하여 생성하고, 상기 통합 파일을 전송할 수 있다.
상기 배포 서버가 메인 애플리케이션과 연동되는 하나 이상의 서브 애플리케이션에 대한 하나 이상의 설치 파일을 암호화하고, 상기 하나 이상의 서브 애플리케이션과 대응되는 메타 데이터를 저장하고, 애플리케이션별로 관리하는 단계;를 포함할 수 있다.
본 발명의 실시예들에 따른 애플리케이션의 동작 방법은 사용자 단말기가 애플리케이션에 포함된 제1 패쳐 파일과 대응되는 패쳐 파일을 요청하는 요청을 애플리케이션 배포 서버로 전송하는 단계; 상기 사용자 단말기가 상기 요청에 대한 응답으로, 상기 애플리케이션 배포 서버로부터 상기 제1 패쳐 파일과 대응되는 제2 패쳐 파일을 수신하는 단계; 상기 사용자 단말기가 제1 패쳐 파일 및 상기 제2 패쳐 파일을 비교함으로써, 상기 제1 패쳐 파일의 유효성을 판단하는 단계; 및 상기 사용자 단말기가 상기 판단 결과, 상기 제1 패쳐 파일이 유효하지 않은 경우, 상기 제1 패쳐 파일을 기초로 상기 애플리케이션의 실행 파일 중 위변조된 하나 이상의 에러 파일을 검출하고, 상기 에러 파일을 정상화 시키는 단계;를 포함할 수 있다.
본 실시예에서, 상기 에러 파일을 정상화 시키는 단계는 상기 애플리케이션 배포 서버로 상기 에러 파일과 대응되는 정상 파일을 요청하는 요청을 전송하는 단계; 상기 요청에 대한 응답으로, 상기 애플리케이션 배포 서버로부터 상기 정상 파일과 대응되는 제1 실행 파일을 수신하는 단계; 공개키를 이용하여 상기 제1 실행 파일을 복호화하는 단계; 상기 복호화 결과, 상기 제1 실행 파일이 복호화되지 않는 경우, 상기 제1 실행 파일을 삭제하고, 상기 제1 실행 파일이 복호화되는 경우, 상기 제1 실행 파일을 실행시켜서 상기 에러 파일 대신 정상 파일이 실행되도록 하는 단계;를 포함할 수 있다.
본 실시예에서, 상기 유효성 판단부는 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여, 상기 애플리케이션의 고유 코드를 생성하고, 상기 고유 코드가 상기 제1 패쳐 파일에 포함된 고유 코드와 동일한지 여부로 상기 제1 패쳐 파일의 유효성을 판단할 수 있다.
본 실시예에서, 상기 패쳐 파일을 요청하는 요청을 애플리케이션 배포 서버로 전송하는 단계는 사용자에 의해 상기 애플리케이션의 실행 시작과 대응되는 입력이 입력되는 시점에, 상기 사용자 단말기가 애플리케이션에 포함된 제1 패쳐 파일과 대응되는 패쳐 파일을 요청하는 요청을 애플리케이션 배포 서버로 전송할 수 있다.
본 실시예에서, 상기 제1 패쳐 파일의 유효성을 판단하는 단계는 상기 제1 패쳐 파일을 분석하여, 상기 애플리케이션 관련 정보를 추출하고, 추출된 애플리케이션 관련 정보가 상기 제2 패쳐 파일로부터의 기초 정보와 비교하여, 상기 사용자의 실행 관련 정보로부터 가능한 정보인지 여부를 판단함으로써, 상기 제1 패쳐 파일의 유효성을 판단할 수 있다.
본 발명의 실시예들에 따른 애플리케이션 배포 방법은 배포 서버가 제1 사용자 단말기로부터 소정의 애플리케이션의 소스 파일을 수신하는 단계; 상기 배포 서버가 상기 소스 파일을 컴파일 하여 상기 애플리케이션의 실행 파일을 생성하는 단계; 상기 배포 서버가 상기 실행 파일을 상기 실행 파일의 버전 정보와 함께 상기 애플리케이션에 대한 배포 버젼으로 설정하는 단계; 상기 배포 서버가 하나 이상의 제2 사용자 단말기로부터의 상기 애플리케이션에 대한 다운로드 요청에 대한 응답으로, 상기 애플리케이션의 실행 파일을 상기 하나 이상의 제2 사용자 단말기로 전송한 횟수를 실행 파일의 버전 정보별로 카운팅하는 단계;를 포함할 수 있다.
본 실시예에서, 상기 애플리케이션의 배포 방법은 상기 카운팅하는 단계를 반복적으로 수행하고, 카운팅된 결과를 분석하여, 상기 애플리케이션과 관련된 통계 정보를 생성하는 단계;를 더 포함할 수 있다.
본 실시예에서, 상기 통계 정보를 생성하는 단계는 상기 애플리케이션의 총 다운로드된 횟수, 및 최신 버전의 애플리케이션이 다운로드된 횟수를 지역별로 구분하여 상기 애플리케이션과 관련된 통계 정보를 생성할 수 있다.
본 발명의 실시예들에 따른 애플리케이션 배포 서버는 메인 애플리케이션과 연동된 하나 이상의 서브 애플리케이션의 설치 파일을 개인키로 암호화하여, 버전별로 저장 관리하는 저장부; 및 사용자 단말기의 다운로드 요청의 응답으로, 서브 애플리케이션의 설치 파일 및 상기 개인키와 짝을 이루는 공개키를 전송하는 배포부; 상기 서브 애플리케이션의 설치 파일이 전송된 횟수를 버전별로 카운팅하는 카운팅부; 상기 카운팅된 횟수를 상기 사용자 단말기의 위치를 기초로 지역별로 구분하여, 상기 애플리케이션과 관련된 통계 정보를 생성하는 통계 생성부;를 포함할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해 질 것이다.
본 발명에 의하면, 바이러스에 감염되지 않은 애플리케이션 관련 파일을 배포하도록 하는 애플리케이션 배포 방법을 제공할 수 있다.
또한, 본 발명에 의하면, 다운로드된 파일 중에서 바이러스에 감염된 파일의 설치 및 실행을 방지하도록 하는 애플리케이션을 제공할 수 있다.
또한, 본 발명에 의하면, 애플리케이션의 실행 전에, 애플리케이션 관련 파일의 유효성을 검증하여, 유효하지 않은 파일의 재설치가 가능하도록 하는 애플리케이션 배포 단말기 및 동작 방법을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 애플리케이션 배포 시스템(10)을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 배포 서버(100)을 나타내는 블록도이다.
도 3은 제어부(110)의 구조를 나타내는 블록도이다.
도 4는 제어부(110a)의 구조를 나타내는 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 애플리케이션 배포 방법을 나타내는 흐름도이다.
도 6은 본 발명의 제2 실시예에 따른 애플리케이션 배포 방법을 나타내는 흐름도이다.
도 7은 본 발명의 실시예에 따른 사용자 단말기의 구조를 나타내는 블록도이다.
도 8은 제어부(210)의 구조를 나타내는 블록도이다.
도 9는 처리부(214)의 구조를 나타내는 블록도이다.
도 10은 본 발명의 실시예에 따른 사용자 단말기의 동작을 설명하는 흐름도이다.
도 11은 본 발명의 실시예에 따른 애플리케이션 배포 시스템의 데이터 흐름을 설명하기 위한 도면이다.
도 12는 사용자 단말기 및 애플리케이션 배포 서버 사이의 파일 암호화 및 복호화를 설명하기 위한 도면이다.
도 13은 본 발명의 제3 실시예에 따른 배포 관리부(116, 119a)의 구조를 나타내는 도면이다.
도 14는 본 발명의 제3 실시예에 따른 애플리케이션의 배포 방법을 나타내는 흐름도이다.
도 15는 본 발명의 배포 서버에 의해 제공되는 통계 자료 제공 화면의 일 예이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한, 복수의 표현을 포함한다.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서 상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징을 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
어떤 실시예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다.
도 1은 본 발명의 실시예에 따른 애플리케이션 배포 시스템(10)을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 애플리케이션 배포 시스템(10)은 애플리케이션 배포 서버(100), 사용자 단말기(200, 400), 통신망(300)을 포함할 수 있다.
애플리케이션 배포 서버(100)는 하나 이상의 애플리케이션의 설치 파일을 사용자 단말기(200, 400)들로 배포하는 기능을 제공한다. 또한, 애플리케이션 배포 서버(100)는 업데이트 또는 재 설치가 필요한 애플리케이션이 탑재된 사용자 단말기(200, 400)로 애플리케이션 실행 파일 또는 설치 파일을 배포한다. 특히, 애플리케이션 배포 서버(100)는 애플리케이션의 설치 파일을 개인키(private key)를 이용하여 암호화한 후, 사용자 단말기(200, 400)로 배포함으로써, 애플리케이션 관련 파일이 위 변조되는 것을 방지할 수 있다. 또한, 애플리케이션 배포 서버(100)는 사용자 단말기(200, 400)과 공유하는 공개키(public key)를 이용하여, 파일의 설치 및 실행 전에 상기 파일의 복호화 여부를 판단함으로써, 위 변조된 파일이 실행되거나 설치되는 것을 방지할 수 있다.
또한, 애플리케이션 배포 서버(100)는 사용자 단말기(200, 400)로부터 메타 데이터를 수신 받아, 메타 데이터를 분석하여, 애플리케이션의 위 변조 여부, 해킹 여부 등의 유효성을 판단할 수 있다. 또한, 애플리케이션 배포 서버(100)는 사용자 단말기로부터 패쳐 파일을 수신 받아, 재 설치가 필요한 파일 또는 영역에 대한 정보를 검출할 수 있다.
또한, 애플리케이션 배포 서버(100)는 관리자 단말기(200, 400)로부터 제1 애플리케이션의 소스 파일을 수신 받아, 상기 제1 애플리케이션의 실행 파일을 생성하는 기능을 제공할 수 있다. 애플리케이션 배포 서버(100)는 제1 애플리케이션의 유효성을 판단할 수 있는 보안모듈을 포함하여, 제1 애플리케이션의 실행 파일을 생성할 수 있다. 애플리케이션 배포 서버(100)는 제1 애플리케이션에 대한 실행 파일이 배포된 횟수를 카운팅하여 관리할 수 있다. 애플리케이션 배포 서버(100)는 하나 이상의 애플리케이션의 실행 파일, 배포 버전을 관리하면서, 제1 애플리케이션의 다운로드 횟수, 최신 버전 다운로드 횟수, 최신 버전을 다운로드한 사용자 단말기의 수를 성별, 직업별, 지역별로 분석한 통계 자료를 생성할 수 있다. 또한, 애플리케이션 배포 서버(100)는 각 애플리케이션에 대한 통계자료를 각 애플리케이션의 관리자 단말기로 전송하여, 관리자가 애플리케이션의 최신 버전 다운로드 비율을 알 수 있게 하고, 애플리케이션을 다운로드한 사용자에게 애플리케이션의 업데이트를 유도할 수 있게 한다.
사용자는 사용자 단말기(200, 400)를 통해, 애플리케이션의 설치 파일을 애플리케이션 배포 서버(100)로부터 다운로드 받고, 애플리케이션을 실행시킬 수 있다. 특히, 사용자 단말기(200, 400)는 공개키(public key)를 이용하여, 다운로드 받은 애플리케이션의 설치 파일을 복호화 하며, 공개키를 통해 복호화 된 애플리케이션의 설치 파일 만을 실행하는 기능을 제공할 수 있다.
관리자는 관리자 단말기(200, 400)를 통해, 애플리케이션의 소스 파일을 애플리케이션 배포 서버(100)로 업로드할 수 있다.
복수 개의 사용자 단말기(200)들은 유무선 통신 환경에서 웹 서비스를 이용할 수 있는 통신 단말기를 의미한다. 여기서, 사용자 단말기(200, 400)는 사용자의 퍼스널 컴퓨터(201)일 수도 있고, 또는 사용자의 휴대용 단말(202)일 수도 있다. 도 1에서는 휴대용 단말기(202)가 스마트폰으로 도시되었지만, 본 발명의 사상은 이에 제한되지 아니하며, 상술한 바와 같이 웹 브라우징이 가능한 애플리케이션을 탑재한 단말은 제한 없이 차용될 수 있다.
이를 더욱 상세히 설명하면, 사용자 단말기(200, 400)는 컴퓨터(예를 들면, 데스크톱, 랩톱, 태블릿 등), 미디어 컴퓨팅 플랫폼(예를 들면, 케이블, 위성 셋톱박스, 디지털 비디오 레코더), 핸드헬드 컴퓨팅 디바이스(예를 들면, PDA, 이메일 클라이언트 등), 핸드폰의 임의의 형태, 또는 다른 종류의 컴퓨팅 또는 커뮤니케이션 플랫폼의 임의의 형태를 포함할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
한편, 통신망(300)은 복수 개의 사용자 단말기(200, 400)들과 애플리케이션 배포 서버(100)를 연결하는 역할을 수행한다. 즉, 통신망(300)은 사용자 단말기(200, 400)들이 애플리케이션 배포 서버(100)에 접속한 후 데이터를 송수신할 수 있도록 접속 경로를 제공하는 통신망을 의미한다. 통신망(300)은 예컨대 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 2는 본 발명의 실시예에 따른 배포 서버(100)을 나타내는 블록도이다.
도 2를 참조하면, 배포 서버(100)는 제어부(110, 110a), 통신부(120), 저장부(130)를 포함할 수 있다.
제어부(110, 110a)는 애플리케이션 배포자의 사용자 단말기(200, 400)로부터 애플리케이션 관련 파일들을 관리하고, 사용자 단말기(200, 400)의 요청과 대응되는 애플리케이션 관련 파일들을 제공하는 기능을 수행한다. 제어부(110, 110a)는 애플리케이션 관련 파일들을 개인키를 이용하여, 암호화하여 관리할 수 있다. 제어부(110, 110a)는 사용자 단말기(200, 400)에 저장된 애플리케이션과 대응되는 메타 데이터 및/또는 패쳐 파일을 분석하여, 애플리케이션의 유효성 및/또는 재 설치가 필요한 파일 정보를 판단할 수 있다.
또한, 제어부(110, 110a)는 애플리케이션 배포자의 사용자 단말기(200, 400)로부터 애플리케이션 소스 파일을 수신받아, 애플리케이션 실행 파일, 배포 버전을 생성하는 기능을 수행하며, 제어부(110, 110a)는 애플리케이션의 소스 파일에 보안 관련 모듈을 추가하는 배포 버전을 생성할 수 있고, 애플리케이션의 배포 버전이 다운로드된 횟수를 카운팅하는 기능을 수행할 수 있다. 제어부(110, 110a)는 카운팅된 횟수를 기반으로 통계 자료를 생성할 수도 있다.
통신부(120)는 애플리케이션 배포 서버(100) 및 사용자 단말기(200, 400)들과의 통신을 가능하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(120)는, 근거리 통신부, 이동 통신부를 포함할 수 있다. 근거리 통신부(short-range wireless communication unit)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
통신부(120)를 통해, 애플리케이션 배포 서버(100)는 사용자 단말기들(200)로부터 애플리케이션의 설치 파일의 다운로드 요청을 수신하고, 사용자 단말기(200, 400)의 요청에 대한 응답을 전송할 수 있다.
저장부(130)는 하나 이상의 애플리케이션의 설치 파일, 각 애플리케이션과 대응되는 메타 데이터, 및/또는 패쳐 파일 등을 저장 할 수 있다.
도 3은 제어부(110)의 구조를 나타내는 블록도이다.
도 3을 참조하면, 제어부(110)은 전송부(111), 수신부(112), 판단부(113), 커넥션 설정부(114), 데이터 전송부(115), 배포 관리부(116)를 포함할 수 있다.
전송부(111)는 사용자 단말기(200, 400)로 메타 데이터를 요청하는 신호를 전송한다. 여기서, 메타 데이터는 사용자 단말기(200, 400)에 탑재된 애플리케이션과 대응되는 데이터로서, 애플리케이션 관련 파일에 포함된 식별 코드, 버전 정보, 사용자의 로그인 정보, 사용자 정보, 애플리케이션 관련 히스토리 정보 등을 포함하는 데이터가 될 수 있다. 애플리케이션 관련 파일에 포함되는 식별 코드, 버전 정보, 사용자의 로그인 정보, 사용자 정보, 애플리케이션 관련 히스토리 정보(접속 시점, 접속 네트워크 정보, 실행 시점, 실행 네트워크 정보, 사용자별 단계, 레벨, 아이템 보유 현황) 등의 정보는 사용자별, 애플리케이션별로 구분하여 저장 관리 될 수 있다. 여기서, 요청하는 신호는 애플리케이션 배포 서버(100) 및 사용자 단말기(200) 사이의 통신 규격에 따라 구성되며, 추가적으로, 요청하는 정보를 식별하기 위해서, 요청하는 정보와 대응되는 코드 정보 또는 수신되어야 하는 사용자 단말기(200)에 대한 식별 코드를 포함할 수 있다.
수신부(112)는 상기 메타 데이터를 요청하는 신호에 대한 응답으로, 사용자 단말기로부터 제1 메타 데이터를 수신한다.
판단부(113)는 저장부(130)로부터 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 제1 메타 데이터 및 제2 메타 데이터 사이의 일치 여부를 판단하여, 사용자 단말기에 저장된 애플리케이션의 유효성을 판단한다. 판단부(113)는 수신한 제1 메타 데이터의 개인 정보 영역 및 시스템 영역을 구분하고, 개인 정보 영역에 저장된 데이터가 기 저장된 규칙을 따르는 유효한 데이터인지 여부를 판단하거나, 시스템 영역에 저장된 데이터가 애플리케이션과 대응되는 제2 메타 데이터의 시스템 정보와 대응되는지 여부를 판단할 수 있다. 예를 들어, 판단부(113)는 개인 정보 영역에 저장된 접속 횟수, 실행 횟수가 기 설정된 최대 접속 횟수, 최대 실행 횟수를 초과하는지 여부를 판단함으로써, 메타 데이터의 유효성을 판단하거나, 개인 정보 영역에 저장된 접속 네트워크 정보, 접속 시간, 최근 접속 정보가 존재하는 네트워크 정보인지 여부, 존재하는 시간 정보 인지 여부를 판단함으로써, 메타 데이터의 유효성을 판단한다. 또한, 판단부(113)는 시스템 정보 영역에 저장된 버전 정보 등이 저장부(130)에 저장된 메타 데이터와 일치하는지 여부를 판단함으로써, 메타 데이터의 유효성을 판단할 수 있다. 본 발명의 실시예에 따른 애플리케이션 배포 서버(100)는 판단부(113)가 판단한 유효성을 기초로, 사용자 단말기(200, 400)에 탑재된 애플리케이션의 유효성을 판단할 수 있다.
커넥션 설정부(114)는 제1 메타 데이터가 유효하지 않은 경우, 제1 메타 데이터와 대응되는 애플리케이션이 유효하지 않다고 판단하고, 상기 애플리케이션의 재 설치를 위해서, 상기 사용자 단말기와의 연결을 설립한다. 커넥션 설정부(114)는 TCP/IP, 이동 통신 등의 통신 프로토콜에 정의된 대로, 사용자 단말기(200, 400)와 애플리케이션 배포 서버(100) 사이에 연결을 설립하게 된다.
데이터 전송부(115)는 상기 설립한 연결을 통해, 상기 애플리케이션을 설치할 수 있는 하나 이상의 설치 파일을 개인키로 암호화하여, 상기 암호화된 설치 파일을 상기 사용자 단말기(200, 400)로 전송한다.
이를 통해, 본 발명의 실시예에 따른 애플리케이션 배포 서버(100)는 사용자 단말기로부터 수신한 메타 데이터를 이용하여, 사용자 단말기의 애플리케이션의 상태를 확인하고, 해킹, 데이터 위변조 등으로 인하여 재 설치가 필요한 애플리케이션을 위해서, 설치 파일을 전송할 수 있다. 또한, 본 발명의 실시예에 따른 애플리케이션 배포 서버(100)는 개인키를 이용하여 암호화된 애플리케이션 관련 파일을 저장 관리함으로써, 악성 코드 또는 해킹 등으로 인해 애플리케이션 관련 파일들이 훼손되고, 훼손된 파일들이 사용자 단말기로 전송되는 것을 방지한다.
다른 실시예에서, 데이터 전송부(115)는 사용자 단말기의 애플리케이션의 재 설치를 위한 하나 이상의 설치 파일을 하나의 통합 파일로 압축하여 생성하고, 상기 통합 파일을 전송할 수도 있다. 데이터 전송부(115)를 통해 하나 이상의 설치 파일을 하나의 통합 파일로 압축하여 생성하게 되면, 한번의 연결로 파일을 전송할 수 있게 된다. 이를 통해, 본 발명의 실시예에 따른 애플리케이션 배포 서버(100)는 인터넷 등의 네트워크 사정이 좋지 않은 상황에서도 한번의 연결로 애플리케이션의 설치 파일을 전송할 수 있게 된다.
배포 관리부(116)는 개발자 또는 관리자의 단말기(200, 400)로부터 애플리케이션의 소스 파일을 수신하고, 상기 소스 파일과 대응하는 애플리케이션의 배포 파일을 생성하고 배포하는 기능을 수행한다. 특히, 배포 관리 부(116)는 하나 이상의 사용자 단말기로 배포 또는 전송된 횟수를 카운팅함으로써, 총 다운로드된 횟수, 최신 버전의 실행 파일이 다운로드된 횟수 등을 관리할 수 있다. 배포 관리부(116)의 구조는 도 13에 대한 설명에서 좀더 구체적으로 하도록 하겠다.
도 4는 제어부(110a)의 구조를 나타내는 블록도이다.
도 4를 참조하면, 제어부(110a)는 제1 전송부(111a), 제1 수신부(112a), 판단부(113a), 제2 전송부(114a), 제2 수신부(115a), 파일 생성부(116a), 커넥션 설정부(117a), 데이터 전송부(118a), 배포 관리부(119a)를 포함할 수 있다.
제1 전송부(111a)는 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 제1 신호를 전송할 수 있다.
제1 수신부(112a)는 상기 제1 신호에 대한 응답으로, 상기 사용자 단말기로부터 제1 메타 데이터를 포함하는 응답을 수신한다.
판단부(113a)는 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 제1 메타 데이터 및 제2 메타 데이터 사이의 일치 여부를 판단하여, 상기 제1 메타 데이터의 유효성을 판단한다. 여기서, 판단부(113a)의 동작은 판단부(113)의 동작과 동일하므로, 상세한 설명을 생략한다.
제2 전송부(114a)는 상기 판단 결과, 제1 메타 데이터가 유효하지 않은 경우, 상기 사용자 단말기로 상기 애플리케이션과 대응되는 패쳐 파일을 요청하는 제2 신호를 전송한다. 여기서, 제1 신호 또는 제2 신호는 애플리케이션 배포 서버(100) 및 사용자 단말기(200) 사이의 통신 규격에 따라 구성되며, 추가적으로, 요청하는 정보를 식별하기 위해서, 요청하는 정보와 대응되는 코드 정보 또는 수신되어야 하는 사용자 단말기(200)에 대한 식별 코드를 포함할 수 있다.
제2 수신부(115a)는 제2 신호에 대한 응답으로, 상기 사용자 단말기로부터 제1 패쳐 파일을 포함하는 응답을 수신한다.
파일 생성부(116a)는 제1 패쳐 파일을 분석하여, 사용자 단말기에 탑재된 애플리케이션의 전부 또는 일부를 설치하는 설치 파일을 생성한다. 파일 생성부(116a)는 제1 패쳐 파일에 포함된 요청 정보를 분석함으로써, 애플리케이션의 전부 또는 일부를 설치하는 설치 파일을 생성할 수 있다. 파일 생성부(116a)는 종래의 설치 파일과 달리, 애플리케이션의 전부가 아닌 일부의 재설치를 할 수 있는 설치 파일을 생성할 수도 있다. 본 발명의 실시예들에 따른 배포 서버(100)가 애플리케이션의 전부 또는 일부의 설치가 가능한 설치 파일을 생성하기 위해서는 상기 애플리케이션이 탑재된 사용자 단말기에 포함된 애플리케이션 관리 모듈인 패쳐 파일의 제어가 필요하며, 사용자 단말기에 탑재된 패쳐 파일은 애플리케이션의 재 설치가 가능하도록 제어하게 된다.
다른 실시예에서, 파일 생성부(116a)는 복수의 애플리케이션의 설치를 위한 하나의 설치 파일을 생성할 수도 있다. 즉, 메인 애플리케이션 및 메인 애플리케이션과 연동되는 서브 애플리케이션이 탑재된 경우, 파일 생성부(116a)는 메인 애플리케이션의 설치를 위한 제1 설치 파일과 서브 애플리케이션의 설치를 위한 제2 설치 파일을 포함하는 설치 파일을 생성할 수도 있다.
커넥션 설정부(117a)는 생성한 설치 파일의 전송을 위해서, 사용자 단말기와의 연결을 설립한다. 커넥션 설정부(117a)의 동작은 커넥션 설정부(117)의 동작과 동일하므로, 상세한 설명을 생략한다.
데이터 전송부(118a)는 설치 파일을 암호화하여, 상기 사용자 단말기로 전송할 수 있다. 이를 통해, 본 발명의 실시예에 따른 배포 서버(100)는 애플리케이션의 설치 파일의 배포 이후에 애플리케이션의 설치 파일을 감시하고, 탑재된 애플리케이션의 설치 파일(실행 파일) 등에 발생된 위험을 감시할 수 있고, 위험에 노출된 애플리케이션의 설치 파일(실행 파일) 등을 사용자 단말기로부터 제거하고 사용자 단말기에 애플리케이션이 재 설치될 수 있도록 제어할 수 있다.
배포 관리부(119a)는 개발자 또는 관리자의 단말기(200, 400)로부터 애플리케이션의 소스 파일을 수신하고, 상기 소스 파일과 대응하는 애플리케이션의 배포 파일을 생성하고 배포하는 기능을 수행한다. 특히, 배포 관리 부(119a)는 하나 이상의 사용자 단말기로 배포 또는 전송된 횟수를 카운팅함으로써, 총 다운로드된 횟수, 최신 버전의 실행 파일이 다운로드된 횟수 등을 관리할 수 있다. 배포 관리부(116)의 구조는 도 13에 대한 설명에서 좀더 구체적으로 하도록 하겠다.
본 발명의 실시예에 따른 애플리케이션 배포 서버(100)는 사용자 단말기로 부터의 패쳐 파일을 분석함으로써, 애플리케이션의 전부의 설치를 위한 설치 파일을 전송할 뿐만 아니라, 애플리케이션의 일부 설치를 위한 설치 파일을 생성하여 전송할 수 있고, 복수의 애플리케이션의 설치를 위한 설치 파일을 생성하여 전송할 수도 있다.
도 5는 본 발명의 제1 실시예에 따른 애플리케이션 배포 방법을 나타내는 흐름도이다.
S101에서는 애플리케이션 배포 서버(100)는 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 제1 신호를 전송할 수 있다.
S102에서는 애플리케이션 배포 서버(100)는 상기 메타 데이터를 요청하는 신호에 대한 응답으로, 사용자 단말기로부터 제1 메타 데이터를 수신한다.
S103에서는 애플리케이션 배포 서버(100)는 저장부(130)로부터 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 제1 메타 데이터 및 제2 메타 데이터 사이의 일치 여부를 판단하여, 사용자 단말기에 저장된 애플리케이션의 유효성을 판단한다. 애플리케이션 배포 서버(100)는 수신한 제1 메타 데이터의 개인 정보 영역 및 시스템 영역을 구분하고, 개인 정보 영역에 저장된 데이터가 기 저장된 규칙을 따르는 유효한 데이터인지 여부를 판단하거나, 시스템 영역에 저장된 데이터가 애플리케이션과 대응되는 제2 메타 데이터의 시스템 정보와 대응되는지 여부를 판단할 수 있다.
S104에서는 애플리케이션 배포 서버(100)는 제1 메타 데이터가 유효하지 않은 경우, 제1 메타 데이터와 대응되는 애플리케이션이 유효하지 않다고 판단하고, 상기 애플리케이션의 재 설치를 위해서, 상기 사용자 단말기와의 연결을 설립한다. 애플리케이션 배포 서버(100)는 TCP/IP, 이동 통신 등의 통신 프로토콜에 정의된 대로, 사용자 단말기(200, 400)와 애플리케이션 배포 서버(100) 사이에 연결을 설립하게 된다.
S105에서는 애플리케이션 배포 서버(100)는 상기 설립한 연결을 통해, 상기 애플리케이션을 설치할 수 있는 하나 이상의 설치 파일을 개인키로 암호화하여, 상기 암호화된 설치 파일을 상기 사용자 단말기(200, 400)로 전송한다.
도 6은 본 발명의 제2 실시예에 따른 애플리케이션 배포 방법을 나타내는 흐름도이다.
S111에서는 애플리케이션 배포 서버(100)는 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 제1 신호를 전송할 수 있다.
S112에서는 애플리케이션 배포 서버(100)는 상기 제1 신호에 대한 응답으로, 상기 사용자 단말기로부터 제1 메타 데이터를 포함하는 응답을 수신한다.
S113에서는 애플리케이션 배포 서버(100)는 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 제1 메타 데이터 및 제2 메타 데이터 사이의 일치 여부를 판단하여, 상기 제1 메타 데이터의 유효성을 판단한다.
S114에서는 애플리케이션 배포 서버(100)는 상기 판단 결과, 제1 메타 데이터가 유효하지 않은 경우, 상기 사용자 단말기로 상기 애플리케이션과 대응되는 패쳐 파일을 요청하는 제2 신호를 전송한다.
S115에서는 애플리케이션 배포 서버(100)는 제2 신호에 대한 응답으로, 상기 사용자 단말기로부터 제1 패쳐 파일을 포함하는 응답을 수신한다.
S116에서는 애플리케이션 배포 서버(100)는 제1 패쳐 파일을 분석하여, 사용자 단말기에 탑재된 애플리케이션의 전부 또는 일부를 설치하는 설치 파일을 생성한다. 애플리케이션 배포 서버(100)는 제1 패쳐 파일에 포함된 요청 정보를 분석함으로써, 애플리케이션의 전부 또는 일부를 설치하는 설치 파일을 생성할 수 있다. 애플리케이션 배포 서버(100)는 종래의 설치 파일과 달리, 애플리케이션의 전부가 아닌 일부의 재설치를 할 수 있는 설치 파일을 생성할 수도 있다.
S117에서는 애플리케이션 배포 서버(100)는 생성한 설치 파일의 전송을 위해서, 사용자 단말기와의 연결을 설립한다.
S118에서는 애플리케이션 배포 서버(100)는 설치 파일을 암호화하여, 상기 사용자 단말기로 전송할 수 있다.
도 7은 본 발명의 실시예에 따른 사용자 단말기의 구조를 나타내는 블록도이다.
도 7을 참조하면, 사용자 단말기(200)는 제어부(210), 통신부(220), 표시부(230), 입력부(240), 저장부(250), 음향 출력부(260)를 포함할 수 있다.
제어부(210)는 탑재된 하나 이상의 애플리케이션을 개별적으로 관리하는 하나 이상의 패쳐 파일을 통해, 탑재된 애플리케이션 중 재 설치가 필요한 애플리케이션을 관리할 수 있다. 또한, 제어부(210)는 유효하지 않은 애플리케이션의 설치를 방지하기 위해서, 애플리케이션 배포 서버(100)로부터 수신한 공개키를 이용하여 복호화되는 설치 파일만을 설치하도록 제어할 수 있다. 또한, 제어부(210)는 설치된 애플리케이션의 변형을 방지하기 위해서, 애플리케이션의 실행 파일을 감시하는 패쳐 파일을 저장 관리 할 수 있다.
통신부(220)는 애플리케이션 배포 서버(100)와의 통신을 가능하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(420)는, 근거리 통신부, 이동 통신부를 포함할 수 있다. 근거리 통신부(short-range wireless communication unit)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
표시부(230)는 애플리케이션 설치 파일의 다운로드, 애플리케이션의 설치, 애플리케이션의 실행 화면 및 사용자 인터페이스를 표시할 수 있다. 표시부(230)는 입력부(240)를 통해 입력된 사용자 이벤트에 따라 화면이 표시할 수 있다. 한편, 표시부(230)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 표시부(230)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 표시부(230)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다.
입력부(240)는 사용자가 사용자 단말기를 제어하기 위한 이벤트, 또는 데이터를 입력하는 수단을 의미한다. 예를 들어, 입력부(240)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
입력부(240)는, 애플리케이션의 설치 파일의 다운로드 및 설치에 대한 요청 등을 입력 받을 수 있다.
저장부(250)는 통신부(220)를 통해 수신한 파일들을 저장 관리할 수 있다. 특히, 저장부(250)는 애플리케이션의 설치를 위한 공개키를 저장 관리할 수 있다.
음향 출력부(260)는 통신부(220)를 통해 획득된 음성 파일이 출력되도록 한다. 또한, 음향 출력부(260)는 사용자 단말기(200, 400)에서 수행되는 기능과 관련된 음향 신호를 출력한다. 이러한 음향 출력부(260)에는 스피커(speaker), 버저(Buzzer), 진동 모터 등이 포함될 수 있다. 진동 모터는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터는 오디오 데이터 또는 이미지 데이터의 출력에 대응하는 진동 신호를 출력할 수 있다. 또한, 진동 모터는 터치스크린에 터치가 입력되는 경우 진동 신호를 출력할 수도 있다.
도 8은 제어부(210)의 구조를 나타내는 블록도이다.
도 8을 참조하면, 제어부(210)는 메인 요청부(211), 메인 수신부(212), 유효성 판단부(213), 처리부(214)를 포함할 수 있다.
메인 요청부(211)는 애플리케이션에 포함된 제1 패쳐 파일과 대응되는 패쳐 파일을 요청하는 요청을 배포 서버로 전송한다. 여기서, 요청은 애플리케이션 배포 서버(100)로 전송되는 통신 규격에 따라 구성되며, 추가적으로, 요청하는 정보를 식별하기 위해서, 애플리케이션의 식별 코드 및/또는 패쳐 파일과 대응되는 요청 정보를 포함할 수 있다.
메인 수신부(212)는 요청에 대한 응답으로, 애플리케이션 배포 서버(100)로부터 제1 패쳐 파일과 대응되는 제2 패쳐 파일을 수신한다.
유효성 판단부(213)는 제1 패쳐 파일 및 제2 패쳐 파일을 비교함으로써, 애플리케이션의 유효성을 판단한다. 유효성 판단부(213)는 제1 패쳐 파일과 제2 패쳐 파일 사이의 유사한 정도가 기 설정된 임계 정보 이상인 경우, 제1 패쳐 파일이 유효하다고 판단하고, 그렇지 않은 경우, 제1 패쳐 파일이 유효하지 않다고 판단한다.
다른 실시예에서, 유효성 판단부(213)는 기 설정된 규칙에 따라 배열이 변경된 암호화 테이블을 이용하여, 상기 애플리케이션의 고유 코드를 생성하고, 상기 고유 코드가 상기 제1 패쳐 파일에 포함된 고유 코드와 동일한지 여부로 상기 제1 패쳐 파일의 유효성을 판단한다. 배열이 변경된 암호화 테이블을 사용함으로써, 해킹, 악성 코드에 의한 내부 변조를 막을 수 있다. 여기서, 기 설정된 규칙은 프로그램, 운영 체제, 사용자 단말기, 다운 기간 중 어느 하나의 기준마다 상이하게 설정된 것일 수 있다. 기 설정된 규칙을 수신하는 것은 최초 애플리케이션을 다운로드할 때에 1회적으로 수행될 수도 있고, 특정 그룹에 속한 단말기 들에 이미 할당된 형태로 구현될 수도 있다. 여기서, 고유 코드는 애플리케이션의 무결성을 체크하기 위해 애플리케이션의 파일 중 일부에 포함된 값으로서, 사용자 단말기의 전화 번호, 사용자 단말기의 시리얼 번호, 다운로드 요청 시간, 사용자 단말기의 아이디 등의 값을 기초로 생성될 수 있다. 본 발명의 실시예에 따른 배포 서버(100)는 상기 고유 코드를 애플리케이션의 배포 버전을 배포할 때 함께 전송하거나, 애플리케이션이 설치된 사용자 단말기(200, 400)에 의해 생성되어, 상기 사용자 단말기(200, 400)로부터 애플리케이션의 설치 완료 신호와 함께 수신할 수 있다. 여기서, 애플리케이션의 설치 완료 신호는 애플리케이션의 설치가 완료된 사용자 단말기(200, 400)로부터 수신하는 신호로서, 사용자 단말기(200, 400)에 설치 여부를 확인하기 위해서 전송되는 신호이다.
처리부(214)는 제1 패쳐 파일이 유효하지 않은 경우, 제1 패쳐 파일을 기초로 상기 애플리케이션의 실행 파일 중 전부 또는 일부가 위 변조된 하나 이상의 에러 파일을 검출하고, 상기 에러 파일을 정상화 시키는 기능을 수행한다. 에러 파일을 정상화 시키는 처리부(214)의 동작은 도 9에서 자세히 설명하겠다.
이를 통해, 본 발명의 실시예에 따른 사용자 단말기(200, 400)는 다운로드된 파일이 저장된 공개키와 짝을 이루는 개인키로 암호화된 파일인지 여부를 판단하여, 잘못된 출처에 의한 파일의 실행 및 설치를 방지할 수 있고, 본 발명의 실시예에 따른 사용자 단말기(200, 400)는 위변조된 파일이 실행되는 것을 방지함으로써, 악성 코드 및 해킹으로부터의 바이러스 감염 위험에서 벗어날 수 있다.
도 9는 처리부(214)의 구조를 나타내는 블록도이다.
도 9를 참조하면, 처리부(214)는 서브 요청부(2141), 서브 수신부(2142), 복호화부(2143), 실행부(2144)를 포함할 수 있다.
서브 요청부(2141)는 애플리케이션 배포 서버(100)로 에러 파일과 대응되는 정상 파일을 요청하는 요청을 전송한다.
서브 수신부(2142)는 요청에 대한 응답으로, 애플리케이션 배포 서버(100)로부터 상기 정상 파일과 대응되는 제1 실행 파일을 수신한다.
복호화부(2143)는 공개키를 이용하여, 제1 실행 파일을 복호화한다. 여기서, 공개키는 애플리케이션 배포 서버(100)의 개인키와 짝을 이루는 키로서, 서버(100)에 의해 암호화된 데이터를 복호화하도록 하는 열쇠이다.
실행부(2144)는 상기 복호화 결과, 제1 실행 파일이 복호화되지 않는 경우, 제1 실행 파일을 삭제하고, 제1 실행 파일이 복호화되는 경우, 제1 실행파일을 실행시켜서 상기 에러 파일 대신 정상 파일이 실행되도록 한다.
도 10은 본 발명의 실시예에 따른 애플리케이션의 동작 방법을 설명하는 흐름도이다.
S210에서는 사용자 단말기(200)는 애플리케이션에 포함된 제1 패쳐 파일과 대응되는 패쳐 파일을 요청하는 요청을 배포 서버로 전송한다.
S220에서는 사용자 단말기(200)는 요청에 대한 응답으로, 애플리케이션 배포 서버(100)로부터 제1 패쳐 파일과 대응되는 제2 패쳐 파일을 수신한다.
S230에서는 사용자 단말기(200)는 제1 패쳐 파일 및 제2 패쳐 파일을 비교함으로써, 애플리케이션의 유효성을 판단한다. 사용자 단말기(200)는 제1 패쳐 파일과 제2 패쳐 파일 사이의 유사한 정도가 기 설정된 임계 정보 이상인 경우, 제1 패쳐 파일이 유효하다고 판단하고, 그렇지 않은 경우, 제1 패쳐 파일이 유효하지 않다고 판단한다. 여기서, 제1 패쳐 파일의 유효성은 애플리케이션의 유효성과 대응될 수 있다.
S240에서는 사용자 단말기(200)는 애플리케이션 배포 서버(100)로 에러 파일과 대응되는 정상 파일을 요청하는 요청을 전송한다. 여기서, 정상 파일은 애플리케이션에 포함된 실행 파일의 전부 또는 일부를 말하며, 애플리케이션의 유효한 파일을 의미한다.
S250에서는 사용자 단말기(200)는 요청에 대한 응답으로, 애플리케이션 배포 서버(100)로부터 상기 정상 파일과 대응되는 제1 실행 파일을 수신한다.
S260에서는 사용자 단말기(200)는 공개키를 이용하여, 제1 실행 파일을 복호화한다. 여기서, 공개키는 애플리케이션 배포 서버(100)의 개인키와 짝을 이루는 키로서, 서버(100)에 의해 암호화된 데이터를 복호화하도록 하는 열쇠이다.
S270에서는 사용자 단말기(200)는 상기 복호화 결과, 제1 실행 파일이 복호화되지 않는 경우, 제1 실행 파일을 삭제하고, 제1 실행 파일이 복호화되는 경우, 제1 실행파일을 실행시켜서 상기 에러 파일 대신 정상 파일이 실행되도록 한다.
도 11은 본 발명의 실시예에 따른 애플리케이션 배포 시스템의 데이터 흐름을 설명하기 위한 도면이다.
도 11에 도시된 바와 같이 애플리케이션 배포 시스템은 Admin Tool, PatchSet Generator, Origin Server, GCDN, 사용자 단말기를 포함할 수 있다.
Admin Tool은 애플리케이션 배포 서버와는 구별되는 장치로서, 애플리케이션 설치 또는 실행 파일에 포함되는 PatchSet 파일을 저장 관리하는 기능을 수행한다. Admin Tool은 PatchSet Generator로 애플리케이션 설치 파일 또는 실행 파일에 포함될 PatchSet 파일을 생성하는 요청(1)을 전송할 수 있다. 여기서, PatchSet Generator는 애플리케이션 실행 파일 또는 설치 파일에 포함될 PatchSet 파일을 생성하는 기능을 수행하며, Admin Tool과 별도의 장치로 도시되어 있으나, Admin Tool 내에 포함될 수 있다. 상기 요청과 대응하여, PatchSet Generator는 PatchSet 파일(2)을 생성하여, Admin Tool로 전송할 수 있다. 여기서, PatchSet 파일은 애플리케이션 설치 또는 실행 파일을 기초로 생성되는 파일로서, 애플리케이션 설치 또는 실행 파일의 대략적인 구조, 애플리케이션 관련 정보(생성 날짜, 경로 정보, 버전, 운영체제 등), 애플리케이션 생성자 관련 정보 등과 대응되는 구조, 내용 등으로 구성될 수 있다. 즉, PatchSet 파일은 하나의 애플리케이션 설치 또는 실행 파일과 대응되도록 생성되며, 각 설치 또는 실행 파일과 대응되어 계속적으로 생성되고, 업데이트 되어야 한다.
Admin Tool은 생성한 PatchSet 파일(3)을 Origin Server로 업로드할 수 있다. 여기서, Origin Server는 애플리케이션 실행 파일 또는 설치 파일을 저장 관리하는 기능을 수행하며, 사용자 단말기로부터의 요청과 대응하여, 애플리케이션 실행 파일 또는 설치 파일을 제공하는 기능을 수행하고, 애플리케이션 생성자 단말기로부터 애플리케이션 실행 파일 또는 설치 파일을 수신하는 기능을 수행하기도 한다. 특히, 본 발명의 실시예에 따른 Origin Server는 애플리케이션 설치 또는 실행 파일에 Admin Tool로부터 수신한 PatchSet 파일을 포함하도록 하는 기능을 수행하기도 한다. 본 발명의 실시예에 따른 애플리케이션 배포 시스템은 애플리케이션 실행 파일 또는 설치 파일을 배포하는 시스템으로서, Origin Server 및 GCDN을 포함할 수 있다. 도 11에 도시된 바와 같이 Origin Server 및 GCDN이 별도로 구비될 수도 있으나, 이와 달리 Origin Server 및 GCDN이 하나의 장치에 포함되어 구비될 수도 있다. GCDN은 애플리케이션 설치 또는 실행 파일을 배포하는 기능을 수행하고, Origin Server로부터 배포할 파일들을 수신하고, 사용자 단말기의 요청에 따라 파일들을 사용자 단말기로 전송할 수 있다.
사용자 단말기(200, 400)는 수신한 설치 파일 또는 실행 파일을 설치 또는 실행 시키고, 실행하는 과정을 통해 애플리케이션 설치 또는 실행 파일에 포함된 패치 파일(PatchSet 파일)이 저장되고 실행된다. 특히, 사용자 단말기는 패치 파일(PatchSet 파일)을 관리하는 패쳐(Patcher)를 구비할 수 있다. 패쳐(Patcher)는 GCDN으로부터의 메타 데이터 및 PatchSet 파일을 수신하고, 수신한 파일들과 저장된 파일 사이의 유사도 또는 차이를 분석함으로써, 설치된 애플리케이션의 재설치 또는 업데이터 필요 여부를 자체적으로 판단할 수 있다.
도 12는 사용자 단말기(200, 400) 및 애플리케이션 배포 서버(100) 사이의 파일 암호화 및 복호화를 설명하기 위한 도면이다.
도 12에 도시된 바와 같이, 애플리케이션 배포 서버(100)는 PatchSet 파일을 배포하기 전에 공개키(Public Key)를 이용하여 PatchSet 파일을 암호화하고, 사용자 단말기(200, 400)은 미리 저장하고 있는 개인키(Private Key)를 이용하여 다운로드 받은 파일(설치 파일, 실행 파일, PatchSet 파일 등)을 복호화하게 된다. 사용자 단말기(200, 400)는 복호화되지 않은 파일을 실행 또는 설치 하지 않음으로써, 위변조 또는 악성 코드, 바이러스 등을 포함하는 파일의 실행을 방지할 수 있다.
도 13은 본 발명의 제3 실시예에 따른 배포 관리부(116, 119a)의 구조를 나타내는 도면이다.
배포 관리부(116, 119a)는 소스 파일 수신부(1101), 실행 파일 생성부(1102), 배포부(1103), 카운팅부(1104), 통계 생성부(1105)를 포함할 수 있다.
소스 파일 수신부(1101)는 제1 사용자 단말기로부터 소정의 애플리케이션의 소스 파일을 수신한다. 소스 파일 수신부(1101)는 애플리케이션의 소스 파일을 순차적으로 수신할 수도 있고, 애플리케이션의 하나 이상의 소스 파일을 하나의 소스 파일로 압축한 파일을 한번에 수신할 수 있다. 압축한 파일을 수신한 경우에는 소스 파일 수신부(1101)는 수신한 압축 파일을 압축 해제 하는 과정을 수행한다.
실행 파일 생성부(1102)는 상기 소스 파일을 컴파일하여 상기 애플리케이션의 실행 파일을 생성한다. 여기서, 컴파일은 프로그래밍 언어(코볼, 포트란, C 등으로 인간이 구분하기 쉬운 언어)로 작성된 프로그램을 기계어(컴퓨터 등의 기계가 이해할 수 있는 언어)로 번역하는 것으로, 컴파일러라는 프로그램을 통해서 처리된다. 즉, 실행 파일 생성부(1102)는 컴파일러를 포함할 수 있다.
배포부(1103)는 상기 실행 파일을 상기 실행 파일의 버전 정보와 함께 상기 애플리케이션에 대한 배포 버전으로 설정한다. 미리 배포 버전으로 설정되어 있었던 배포 버전(이하, 이전 배포 버전)은 배포 버전의 이력에 추가되고, 새롭게 생성된 실행 파일을 포함하는 배포 버전(이하, 최신 배포 버전)은 최신의 배포 버전으로 설정된다. 배포부(1103)는 컴파일된 실행 파일, 상기 실행 파일의 버전 정보, 실행 파일의 공개키 등을 포함하는 배포 버전을 생성하여, 상기 애플리케이션의 최신 버전으로 등록하게 된다. 배포부(1103)을 통해 등록 또는 설정된 배포 버전은 수신된 애플리케이션의 다운로드 요청에 대한 응답으로 사용자 단말기(200, 400)로 전송되게 된다.
카운팅부(1104)는 하나 이상의 제2 사용자 단말기로부터의 상기 애플리케이션에 대한 다운로드 요청에 대한 응답으로, 상기 애플리케이션의 실행 파일을 상기 하나 이상의 사용자 단말기로 전송한 횟수를 실행 파일의 버전 정보 별로 카운팅한다. 카운팅부(1104)는 동일 버전의 동일한 사용자 단말기에 대한 전송 횟수를 중복해서 카운팅하지 않을 수 있다. 예를 들어, 제2 사용자 단말기가 제1 애플리케이션의 1.0.1 버전의 실행 파일을 전송하게 되면, 카운팅부(1104)는 제1 애플리케이션의 1.0.1 버전의 전송 횟수를 1만큼 증가 시키고, 제1 애플리케이션의 전체 전송 횟수를 1 만큼 증가시킬 수 있다.
통계 생성부(1105)는 카운팅된 결과를 분석하여, 상기 애플리케이션과 관련된 통계 정보를 생성할 수 있다. 여기서, 통계 정보는 애플리케이션의 전체 다운로드 횟수, 최신 버전의 애플리케이션이 다운로드된 횟수, 상기 다운로드 횟수들을 지역별로 구분한 자료를 포함할 수 있다.
예를 들어, 카운팅부(1104)는 제1 애플리케이션이 다운로드된 횟수를 사용자 단말기의 구분 없이, 버전의 구분없이 누적적으로 카운팅하여, 전체 다운로드 횟수를 산출할 수 있다. 카운팅부(1104)는 제1 애플리케이션의 최신 버전이 다운로드된 횟수를 산출할 수 있다. 만약 개발자 또는 관리자에 의해 새로운 소스 파일의 등록 또는 수신이 있게 되면, 애플리케이션의 최신 버전이 다운로드된 횟수는 0으로 초기화되고, 카운팅부(1104)는 0부터 최신 버전의 다운로드 횟수를 카운팅하게 된다. 또한, 카운팅부(1104)는 사용자 단말기(200, 400)에 구비된 센서로부터 감지된 위치 정보를 수신받거나 사용자 단말기(200, 400)의 네트워크 환경 정보를 이용하여, 사용자 단말기(200, 400)가 위치한 지역을 검출할 수 있다. 카운팅부(1104)는 사용자 단말기(200, 400)의 위치 정보를 이용하여, 다운로드 횟수를 지역별로 산출할 수 있다.
본 발명의 실시예에 따른 배포 서버(100)는 애플리케이션과 대응되는 통계 정보를 상기 애플리케이션의 개발자 또는 관리자의 단말기로 전송할 수도 있다. 상기 통계 자료를 기초로 애플리케이션의 개발자 또는 관리자는 최신 버전의 애플리케이션을 다운로드 받지 못한 사용자 단말기(200, 400)로 최신 버전의 애플리케이션을 다운로드 받도록 하는 신호를 전송할 수 있다. 이를 통해, 본 발명의 실시예에 따른 배포 서버(100)는 배포된 애플리케이션의 실행 파일이 최신 버전으로 업그레이드 될 수 있도록 제어할 수 있다.
또한, 제1 애플리케이션에 대하여, 최신 버전으로 다운로드된 비율이 100프로에 도달하게 된 경우, 최신 버전으로 모두 업그레이드된 정보를 제1 애플리케이션의 개발자 또는 관리자로 전송하게 되고, 제1 애플리케이션의 소스 파일의 생성, 즉 제1 애플리케이션의 개발할 시에, 제1 애플리케이션의 개발자 또는 관리자는 이전 버전의 고려 없이 최신 버전의 소스 파일 만을 고려할 수 있다.
도 14는 본 발명의 제3 실시예에 따른 애플리케이션의 배포 방법을 나타내는 흐름도이다.
도 14를 참조하면, 본 발명의 제3 실시예에 따른 애플리케이션의 배포 방법은 소스 파일 수신 단계(S120), 실행 파일 생성 단계(S121), 배포 버전 설정 단계(S122), 다운로드 횟수 카운팅 단계(S123), 통계 자료 생성 단계(S124)를 포함할 수 있다.
S120에서는 배포 서버(100)는 제1 사용자 단말기로부터 소정의 애플리케이션의 소스 파일을 수신한다. S120의 동작은 소스 파일 수신부(1101)의 동작과 동일하므로, 상세한 설명을 생략한다.
S121에서는 배포 서버(100)는 상기 소스 파일을 컴파일하여 상기 애플리케이션의 실행 파일을 생성한다. S121의 동작은 실행 파일 생성부(1102)의 동작과 동일하므로, 상세한 설명을 생략한다.
S122에서는 배포 서버(100)는 상기 실행 파일을 상기 실행 파일의 버전 정보와 함께 상기 애플리케이션에 대한 배포 버전으로 설정한다. S122의 동작은 배포부(1103)의 동작과 동일하므로, 상세한 설명을 생략한다.
S123에서는 배포 서버(100)는 하나 이상의 제2 사용자 단말기로부터의 상기 애플리케이션에 대한 다운로드 요청에 대한 응답으로, 상기 애플리케이션의 실행 파일을 상기 하나 이상의 사용자 단말기로 전송한 횟수를 실행 파일의 버전 정보 별로 카운팅한다. S123의 동작은 카운팅부(1104)의 동작과 동일하므로, 상세한 설명을 생략한다.
S124에서는 배포 서버(100)는 카운팅된 결과를 분석하여, 상기 애플리케이션과 관련된 통계 정보를 생성할 수 있다. S124의 동작은 통계 생성부(1105)의 동작과 동일하므로, 상세한 설명을 생략한다.
도 15는 본 발명의 배포 서버에 의해 제공되는 통계 자료 제공 화면의 일 예이다. 도 15에 도시된 바와 같이, 통계 자료 제공 화면은 애플리케이션의 실행 파일이 배포된 수 또는 비율이 버전별로 표시될 수 있다. 통계 자료 제공 화면은 버전별 다운로드 횟수 및 비율을 제공하는 화면(501, 502, 503)을 포함하고, 각 버전별 통계 자료 제공 화면은 버전 정보(506), 비율 정보(507)을 포함할 수 있다. 도 15의 통계 자료 제공 화면을 통해, 1.3.2-102 버전의 실행 파일은 상기 애플리케이션의 전체 사용자 중 0.395 퍼센트의 사용자가 다운로드 한 상태이며, 1.4.0-101 버전의 실행 파일은 상기 애플리케이션의 전체 사용자 중 1.976 퍼센트의 사용자가, 1.4.0-102 버전의 실행 파일은 상기 애플리케이션의 전체 사용자 중 97.628 퍼센트의 사용자가, 다운로드 한 상태임을 원형 그래프로 표시할 수 있다. 사용자에 의해 애플리케이션 선택 영역(504)를 포함하며, 애플리케이션 선택 영역을 통해 선택된 제1 애플리케이션에 대한 통계 자료 제공 화면을 제공할 수 있다. 통계 자료 제공 화면의 하부 영역(505)과 같이 리스트로 배포된 게임 애플리케이션에 대한 버전별 다운로드된 횟수, 전체 사용자에 대한 비율, 포함된 보안 모듈의 버전 정보를 함께 제공할 수 있다.
이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 나아가, 매체는 네트워크 상에서 전송 가능한 형태로 구현되는 무형의 매체를 포함할 수 있으며, 예를 들어 소프트웨어 또는 애플리케이션 형태로 구현되어 네트워크를 통해 전송 및 유통이 가능한 형태의 매체일 수도 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
10: 애플리케이션 배포 시스템
100: 애플리케이션 배포 서버
200, 400: 사용자 단말기
300: 통신망

Claims (18)

  1. 배포 서버가 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 신호를 전송하는 단계;
    상기 배포 서버가 상기 사용자 단말기로부터 개인 정보 영역 및 시스템 영역을 포함하는 제1 메타 데이터를 포함하는 응답을 수신하는 단계;
    상기 배포 서버가 상기 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 상기 제1 메타 데이터 및 상기 제2 메타 데이터 사이의 일치 여부를 판단하거나 상기 제1 메타 데이터의 개인 정보 영역에 포함된 데이터가 기 저장된 규칙을 따르는 유효한 데이터인지 여부를 판단함으로써, 상기 제1 메타 데이터의 유효성을 판단하는 단계;
    상기 배포 서버가 상기 판단 결과, 상기 제1 메타 데이터가 유효하지 않은 경우, 상기 애플리케이션이 유효하지 않다고 판단하고, 상기 애플리케이션의 재 설치를 위해서, 상기 사용자 단말기와의 연결을 설립하는 단계; 및
    상기 배포 서버가 상기 설립한 연결을 통해, 상기 애플리케이션을 설치할 수 있는 하나 이상의 설치 파일을 개인키로 암호화하여, 암호화된 설치 파일을 전송하는 단계;를 포함하는 애플리케이션 배포 방법.
  2. 제1항에 있어서,
    상기 제1 메타 데이터의 유효성을 판단하는 단계는
    개인 정보 영역에 저장된 접속 횟수, 실행 횟수 중 어느 하나가 기 설정된 횟수를 초과하는지 여부를 이용하여 상기 제1 메타 데이터의 유효성을 판단하는, 애플리케이션 배포 방법.
  3. 제1항에 있어서,
    상기 제1 메타 데이터의 유효성을 판단하는 단계는
    접속 네트워크 정보, 접속 시간, 최근 접속 정보 중 적어도 하나를 이용하여 상기 제1 메타 데이터의 유효성을 판단하는, 애플리케이션 배포 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 암호화된 설치 파일을 전송하는 단계는
    상기 하나 이상의 설치 파일을 하나의 통합 파일로 압축하여 생성하고, 상기 통합 파일을 전송하는, 애플리케이션 배포 방법.
  5. 제2항 또는 제3항에 있어서, 상기 배포 서버가 메인 애플리케이션과 연동되는 하나 이상의 서브 애플리케이션에 대한 하나 이상의 설치 파일을 암호화하고, 상기 하나 이상의 서브 애플리케이션과 대응되는 메타 데이터를 저장하고, 애플리케이션별로 관리하는 단계;를 포함하는, 애플리케이션 배포 방법.
  6. 배포 서버가 애플리케이션이 탑재된 사용자 단말기로 메타 데이터를 요청하는 제1 신호를 전송하는 단계;
    상기 배포 서버가 상기 제1 신호에 대한 응답으로, 상기 사용자 단말기로부터 개인 정보 영역 및 시스템 영역을 포함하는 제1 메타 데이터를 포함하는 응답을 수신하는 단계;
    상기 배포 서버가 상기 애플리케이션과 대응되는 제2 메타 데이터를 검색하고, 상기 제1 메타 데이터 및 상기 제2 메타 데이터 사이의 일치 여부 를 판단하거나 상기 제1 메타 데이터의 개인 정보 영역에 포함된 데이터가 기 저장된 규칙을 따르는 유효한 데이터인지 여부를 판단함으로써, 상기 제1 메타 데이터의 유효성을 판단하는 단계;
    상기 배포 서버가 상기 판단 결과, 상기 제1 메타 데이터가 유효하지 않은 경우, 상기 사용자 단말기로 상기 애플리케이션과 대응되는 패쳐 파일을 요청하는 제2 신호를 전송하는 단계;
    상기 배포 서버가 상기 제2 신호에 대한 응답으로, 상기 사용자 단말기로부터 제1 패쳐 파일을 포함하는 응답을 수신하는 단계;
    상기 배포 서버가 상기 제1 패쳐 파일에 포함된 요청 정보를 분석하여, 상기 요청 정보와 대응되는 설치 파일을 생성하는 단계;
    상기 배포 서버가 상기 설치 파일의 전송을 위해서, 상기 사용자 단말기와의 연결을 설립하는 단계 및
    상기 배포 서버가 상기 설립한 연결을 통해, 상기 설치 파일을 암호화하여, 상기 사용자 단말기로 전송하는 단계;를 포함하는, 애플리케이션 배포 방법.
  7. 제6항에 있어서,
    상기 제1 메타 데이터의 유효성을 판단하는 단계는
    개인 정보 영역에 저장된 접속 횟수, 실행 횟수 중 어느 하나가 기 설정된 횟수를 초과하는지 여부를 이용하여 상기 제1 메타 데이터의 유효성을 판단하는, 애플리케이션 배포 방법.
  8. 제6항에 있어서,
    상기 제1 메타 데이터의 유효성을 판단하는 단계는
    접속 네트워크 정보, 접속 시간, 최근 접속 정보 중 적어도 하나를 이용하여 상기 제1 메타 데이터의 유효성을 판단하는, 애플리케이션 배포 방법.
  9. 제7항 또는 제8항에 있어서,
    상기 암호화된 설치 파일을 전송하는 단계는
    상기 설치 파일을 하나의 통합 파일로 압축하여 생성하고, 상기 통합 파일을 전송하는, 애플리케이션 배포 방법.
  10. 제7항 또는 제8항에 있어서,
    상기 배포 서버가 메인 애플리케이션과 연동되는 하나 이상의 서브 애플리케이션에 대한 하나 이상의 설치 파일을 암호화하고, 상기 하나 이상의 서브 애플리케이션과 대응되는 메타 데이터를 저장하고, 애플리케이션별로 관리하는 단계;를 포함하는, 애플리케이션 배포 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020150087252A 2015-04-03 2015-06-19 보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법 KR101782145B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/824,327 US10216941B2 (en) 2015-04-03 2015-08-12 Method of distributing application with security features and method of operating the application
PCT/KR2016/000126 WO2016159496A1 (ko) 2015-04-03 2016-01-07 보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150047585 2015-04-03
KR20150047585 2015-04-03

Publications (2)

Publication Number Publication Date
KR20160118900A KR20160118900A (ko) 2016-10-12
KR101782145B1 true KR101782145B1 (ko) 2017-09-26

Family

ID=57173645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150087252A KR101782145B1 (ko) 2015-04-03 2015-06-19 보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법

Country Status (1)

Country Link
KR (1) KR101782145B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101410255B1 (ko) * 2012-12-20 2014-06-20 네이버비즈니스플랫폼 주식회사 애플리케이션 파일의 잠재적인 위험성 판별 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101410255B1 (ko) * 2012-12-20 2014-06-20 네이버비즈니스플랫폼 주식회사 애플리케이션 파일의 잠재적인 위험성 판별 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Also Published As

Publication number Publication date
KR20160118900A (ko) 2016-10-12

Similar Documents

Publication Publication Date Title
US11259183B2 (en) Determining a security state designation for a computing device based on a source of software
US9940454B2 (en) Determining source of side-loaded software using signature of authorship
US11477036B2 (en) Devices and methods for application attestation
KR101558715B1 (ko) 서버 결합된 멀웨어 방지를 위한 시스템 및 방법
KR100711722B1 (ko) 이동통신 단말기의 소프트웨어 인증 장치 및 그 방법
WO2015090153A1 (zh) 应用安装包的安全检测方法、装置和系统
CN104246788A (zh) 检测并防止恶意移动应用程序的安装
US20130185564A1 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
KR20120012983A (ko) 애플리케이션 보안을 제공하는 방법, 장치, 및 컴퓨터 프로그램
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
US10216941B2 (en) Method of distributing application with security features and method of operating the application
CN113039542A (zh) 云计算网络中的安全计数
Blázquez et al. Trouble over-the-air: An analysis of fota apps in the android ecosystem
KR101256462B1 (ko) 모바일 애플리케이션의 위변조 탐지 장치, 시스템 및 방법
US11574032B2 (en) Systems and methods for signing an AI model with a watermark for a data processing accelerator
CN111399867A (zh) 一种软件升级方法、装置、设备及计算机可读存储介质
JP2021503637A (ja) 認証のためのシステムおよび方法
US11582260B2 (en) Systems and methods for verifying a watermark of an AI model for a data processing accelerator
US11481678B2 (en) Systems and methods for learning new watermark algorithms for a data processing accelerator
US11579928B2 (en) Systems and methods for configuring a watermark unit with watermark algorithms for a data processing accelerator
Choi et al. Large-scale analysis of remote code injection attacks in android apps
KR101782145B1 (ko) 보안 기능이 추가된 애플리케이션 배포 방법, 상기 애플리케이션의 동작 방법
US20220179673A1 (en) Secure virtual machine software management
CN116319082A (zh) 基于区块链的配置数据的处理方法、系统、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant