KR100453504B1 - Method and system for authenticating a software - Google Patents

Method and system for authenticating a software Download PDF

Info

Publication number
KR100453504B1
KR100453504B1 KR10-2002-0023618A KR20020023618A KR100453504B1 KR 100453504 B1 KR100453504 B1 KR 100453504B1 KR 20020023618 A KR20020023618 A KR 20020023618A KR 100453504 B1 KR100453504 B1 KR 100453504B1
Authority
KR
South Korea
Prior art keywords
software
mobile terminal
error code
download
security level
Prior art date
Application number
KR10-2002-0023618A
Other languages
Korean (ko)
Other versions
KR20030085270A (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 KR10-2002-0023618A priority Critical patent/KR100453504B1/en
Publication of KR20030085270A publication Critical patent/KR20030085270A/en
Application granted granted Critical
Publication of KR100453504B1 publication Critical patent/KR100453504B1/en
Priority claimed from US10/971,597 external-priority patent/US7707409B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/103Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for protecting copy right
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/71Hardware identity

Abstract

본 발명은 소프트웨어 인증 방법 및 시스템에 관한 것으로서, 보다 상세하게는 서버에서 다운로드받은 소프트웨어를 모바일 단말기에서 실행 시에 소정의 인증과정을 경유하도록 함으로써, 인증된 모바일 단말기에서만 소프트웨어를 실행시킬 수 있는 방법 및 시스템에 관한 것이다. 본 발명에 따른 소프트웨어 인증 방법 및 시스템은 상기 모바일 단말기에 설치된 소프트웨어에 대한 실행 명령을 입력부로부터 수신하고, 소프트웨어에 대하여 제1 오류 코드를 생성할 수 있다. 그리고, 모바일 단말기 식별자를 추출한 후, 모바일 단말기 식별자와 상기 제1 오류 코드를 조합하여 제1 인증키를 생성한다. 이 후, 제1 인증키를 상기 모바일 단말기내에 미리 저장된 제2 인증키와 비교하여, 제1 인증키가 상기 제2 인증키와 일치하면 상기 소프트웨어를 실행함으로써, 소프트웨어를 인증할 수 있다.The present invention relates to a method and system for authenticating a software, and more particularly, a method for executing software only on an authenticated mobile terminal by performing a predetermined authentication process when the software downloaded from a server is executed on a mobile terminal. It's about the system. The software authentication method and system according to the present invention may receive an execution command for the software installed in the mobile terminal from an input unit and generate a first error code for the software. After the mobile terminal identifier is extracted, the first authentication key is generated by combining the mobile terminal identifier and the first error code. Thereafter, the first authentication key is compared with the second authentication key previously stored in the mobile terminal, and the software can be authenticated by executing the software if the first authentication key matches the second authentication key.

Description

소프트웨어 인증 방법 및 시스템{METHOD AND SYSTEM FOR AUTHENTICATING A SOFTWARE}METHOD AND SYSTEM FOR AUTHENTICATING A SOFTWARE
본 발명은 소프트웨어 인증 방법 및 시스템에 관한 것으로서, 보다 상세하게는 서버에서 다운로드받은 소프트웨어를 모바일 단말기에서 실행 시에 소정의 인증과정을 경유하도록 함으로써, 인증된 모바일 단말기에서만 소프트웨어를 실행시킬 수 있는 방법 및 시스템에 관한 것이다.The present invention relates to a method and system for authenticating a software, and more particularly, a method for executing software only on an authenticated mobile terminal by performing a predetermined authentication process when the software downloaded from a server is executed on a mobile terminal. It's about the system.
종래에는 노력과 시간을 투입하여 완성한 소프트웨어를 인증받지 않은 모바일 단말기에서 다운로드받아 자유롭게 사용하거나, 다운로드받은 소프트웨어가 모바일 단말기를 통해 복사하는 문제점이 빈번하게 발생한다. 또한, 상기 무단 복사는 저작권 침해의 법적인 분쟁까지 발생시키곤 한다.In the related art, a problem occurs that the software completed by putting effort and time into use is freely downloaded from an unauthorized mobile terminal, or the downloaded software is copied through the mobile terminal. In addition, the unauthorized copying often causes legal disputes of copyright infringement.
특히, 모바일 단말기가 대중화됨에 따라 다양한 무선 인터넷 콘텐츠가 개발되고 있으나, 이러한 모바일 단말기용 소프트웨어의 저작권을 보호할 수 있는 기술적인 방안이 미미한 실정이다.In particular, as the mobile terminal is popularized, various wireless Internet contents have been developed. However, technical measures for protecting the copyright of such mobile terminal software are insignificant.
또한, 상기 모바일 단말기는 일반 컴퓨터에 비하여 그 성능 및 용량에 있어 많은 차이가 있다. 즉, 모바일 단말기는 제한된 메모리 및 중앙 처리 장치의 성능을 고려하여 상기 모바일 단말기용 소프트웨어는 일반 컴퓨터용 소프트웨어에 비하여 데이터의 크기가 적은 것이 특징이다.In addition, the mobile terminal has a lot of differences in performance and capacity compared to a general computer. That is, the mobile terminal software has a limited data size in consideration of the limited memory and the performance of the central processing unit.
그리하여, 모바일 단말기용 소프트웨어의 특징에 적합한 모바일 단말기용 소프트웨어의 인증 방법이 필요하나, 이러한 모바일 단말기용 소프트웨어에 적합한 인증 방법이 전무하다.Thus, there is a need for an authentication method for mobile terminal software suitable for the characteristics of the software for mobile terminal, but there is no authentication method suitable for such mobile terminal software.
또한, 모바일 단말기용 소프트웨어는 그 특성상 개발 과정 중에서도 서버에 업로드하고 이를 모바일 단말기에서 다운로드받은 과정을 거치면서 개발된다.In addition, the mobile terminal software is developed by uploading it to a server and downloading it from the mobile terminal.
그러나, 상기 과정에서 개발중인 소프트웨어가 무단 복사되어 경쟁 업체에 흘러갈 가능성이 있다. 따라서, 개발 중인 모바일 단말기용 소프트웨어의 복사를 방지할 수 있는 모바일 단말기용 소프트웨어의 인증 방법이 필요하다.However, there is a possibility that the software being developed in this process may be copied and flowed to a competitor. Therefore, there is a need for an authentication method for software for mobile terminals that can prevent copying of software for mobile terminals under development.
본 발명은 종래 기술의 제반 문제점을 해결하기 위하여 안출한 것으로서, 무선 모바일 단말기용 소프트웨어에 적합한 인증 방법 및 시스템을 제공함으로써, 상기 무선 모바일 단말기용 소프트웨어의 무단 복사 및 실행을 방지할 수 있는 방법 및 시스템을 제공함에 있다.The present invention has been made to solve the problems of the prior art, by providing an authentication method and system suitable for software for a wireless mobile terminal, a method and system that can prevent unauthorized copying and execution of the software for the wireless mobile terminal. In providing.
또한, 본 발명의 목적은 무선 모바일 단말기용 소프트웨어의 무단 복사를 방지함으로써, 상기 무선 모바일 단말기용 소프트웨어를 개발한 개발자 또는 개발사의 저작권을 실질적으로 보호할 수 있는 방법 및 시스템을 제공함에 있다.In addition, an object of the present invention is to provide a method and system that can substantially protect the copyright of the developer or developer who developed the software for the wireless mobile terminal by preventing unauthorized copying of the software for the wireless mobile terminal.
또한, 본 발명의 다른 목적은 모바일 단말기의 특성에 적합한 모바일 단말기용 소프트웨어를 인증할 수 있는 방법 및 시스템을 제공함에 있다.Another object of the present invention is to provide a method and system for authenticating software for a mobile terminal suitable for the characteristics of the mobile terminal.
또한, 본 발명의 또 다른 목적은 개발 중인 모바일 단말기용 소프트웨어의 복사를 방지할 수 있는 방법 및 시스템을 제공함에 있다.Another object of the present invention is to provide a method and a system which can prevent copying of software for a mobile terminal under development.
도 1a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 시스템의 전체 구성도를 나타낸 도면.Figure 1a is a diagram showing the overall configuration of a software authentication system according to an embodiment of the present invention.
도 1b는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버의 기능을 나타낸 블록도.Figure 1b is a block diagram showing the functionality of the download server according to an embodiment of the present invention.
도 1c는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기의 기능을 나타낸 블록도.Figure 1c is a block diagram showing the function of a mobile terminal according to an embodiment of the present invention.
도 2는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서 소프트웨어 데이터를 다운로드하는 절차를 나타낸 순서도.2 is a flowchart illustrating a procedure for downloading software data in a mobile terminal according to an embodiment of the present invention.
도 3a는 본 발명의 바람직한 일 실시예에 따른 다운로드 파일의 데이터 구조를 나타낸 도면.3A illustrates the data structure of a download file in accordance with one preferred embodiment of the present invention.
도 3b는 본 발명의 바람직한 일 실시예에 따른 보안 레벨 정보를 나타낸 테이블.3B is a table showing security level information in accordance with one preferred embodiment of the present invention.
도 4는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버에서의 다운로드 파일 생성 과정을 나타낸 순서도.4 is a flowchart illustrating a process of generating a download file in a download server according to an exemplary embodiment of the present invention.
도 5는 본 발명의 바람직한 일 실시예에 따른 프로그램의 저장 과정을 나타낸 순서도.5 is a flowchart illustrating a process of storing a program according to an exemplary embodiment of the present invention.
도 6은 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서의 소프트웨어 실행 과정을 나타낸 도면.6 is a diagram illustrating a software execution process in a mobile terminal according to an embodiment of the present invention.
도 7a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 방법을 나타낸 순서도.7A is a flow chart illustrating a software authentication method in accordance with one preferred embodiment of the present invention.
도 7b는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 데이터 복사 방지 방법을 나타낸 순서도.7B is a flow chart illustrating a software data copy protection method in accordance with one preferred embodiment of the present invention.
<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>
100 : 다운로드 서버100: download server
110 : 개발자용 모바일 단말기110: mobile terminal for developers
120 : 사용자용 모바일 단말기120: user mobile terminal
130 : 모바일 단말기130: mobile terminal
140 : 로컬 컴퓨터140: local computer
152 : 보안 레벨 정보 설정부152: security level information setting unit
154 : 오류 코드 생성부(다운로드 서버)154 error code generation unit (download server)
156 : 다운로드 파일 생성부156: download file generation unit
158 : 인증부158: certification unit
170 : 오류 코드 생성부(모바일 단말기)170: error code generation unit (mobile terminal)
172 : 보안 레벨 정보 및 오류 코드 비교부172: security level information and error code comparison unit
174 : 인증키 생성부174: authentication key generation unit
176 : 인증키 비교부176: authentication key comparison unit
상술한 목적들을 달성하기 위한 본 발명에 따르면, 모바일 단말기용 소프트웨어를 인증할 수 있는 방법 및 상기 방법에 상응하는 시스템이 제공된다. 또한, 상기 방법을 수행할 수 있는 프로그램이 수록되어 있는 기록 매체가 제공될 수 있다.According to the present invention for achieving the above objects, there is provided a method capable of authenticating software for a mobile terminal and a system corresponding to the method. In addition, a recording medium may be provided that contains a program capable of performing the method.
본 발명의 다른 실시예에 따르면, 모바일 단말기에서 소프트웨어를 인증하는 방법에 있어서, 상기 모바일 단말기에 설치된 소프트웨어에 대한 실행 명령을 입력부로부터 수신하는 단계, 상기 소프트웨어에 대하여 제1 오류 코드를 생성하는 단계, 상기 모바일 단말기 식별자를 추출하는 단계, 상기 모바일 단말기 식별자와 상기 제1 오류 코드를 조합하여 제1 인증키를 생성하는 단계, 상기 제1 인증키를 상기 모바일 단말기내에 미리 저장된 제2 인증키와 비교하는 단계 및 비교 결과, 상기 제1 인증키가 상기 제2 인증키와 일치하면 상기 소프트웨어를 실행하는 단계를 포함할 수 있다.According to another embodiment of the present invention, a method for authenticating software in a mobile terminal, the method comprising: receiving an execution command for an software installed in the mobile terminal from an input unit, generating a first error code for the software, Extracting the mobile terminal identifier, generating a first authentication key by combining the mobile terminal identifier and the first error code, comparing the first authentication key with a second authentication key previously stored in the mobile terminal And if the first authentication key matches the second authentication key, executing the software as a result of the comparison with the second authentication key.
또한, 상기 제2 인증키는 상기 모바일 단말기가 상기 모바일 단말기에 결합된 다운로드 서버로부터 다운로드 파일을 수신하는 단계-여기서, 상기 다운로드 파일은 소프트웨어 데이터, 제2 오류 코드를 포함함-, 상기 모바일 단말기에서 상기소프트웨어 데이터에 대하여 제3 오류 코드를 생성하는 단계, 상기 모바일 단말기에서 상기 제2 오류 코드와 상기 제3 오류 코드를 비교하는 단계, 비교 결과, 상기 제2 오류 코드와 상기 제3 오류 코드가 일치하면, 상기 소프트웨어 데이터를 상기 모바일 단말기에 저장하는 단계, 상기 모바일 단말기에서 상기 모바일 단말기 식별자를 추출하는 단계 및 상기 모바일 단말기에서 상기 모바일 단말기 식별자와 상기 제2 오류 코드를 조합하여 제2 인증키를 생성하는 단계, 에 의해 상기 모바일 단말기에 저장될 수 있다.In addition, the second authentication key is the mobile terminal receiving a download file from the download server coupled to the mobile terminal, wherein the download file includes software data, a second error code-in the mobile terminal Generating a third error code with respect to the software data, comparing the second error code with the third error code at the mobile terminal, and as a result of comparison, the second error code and the third error code match Storing the software data in the mobile terminal, extracting the mobile terminal identifier from the mobile terminal, and generating a second authentication key by combining the mobile terminal identifier and the second error code in the mobile terminal. It may be stored in the mobile terminal by.
그리고, 상기 모바일 단말기 식별자는 장치 일련 번호를 사용할 수 있으며, 상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 순환 잉여 검사 방식에 의해 생성된 프레임 체크열을 사용할 수 있다.The mobile terminal identifier may use a device serial number, and the first error code, the second error code, and the third error code may use a frame check string generated by a cyclic redundancy check scheme.
또한, 상기 소프트웨어가 개발용 소프트웨어이면, 상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 프레임 체크열 32를 사용할 수 있고, 상기 소프트웨어가 상용 소프트웨어이면, 상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 프레임 체크열16을 사용할 수 있다.Further, if the software is development software, the first error code, the second error code and the third error code may use a frame check string 32. If the software is commercial software, the first error code, The second error code and the third error code may use frame check sequence 16.
그리고, 상기 다운로드 파일은 상기 제1 오류 코드에 대한 정보를 포함하는 헤더를 더 포함할 수 있고, 상기 다운로드 파일은 제1 보안 레벨 정보를 더 포함할 수 있다.The download file may further include a header including information on the first error code, and the download file may further include first security level information.
또한, 상기 다운로드 파일에서 상기 제1 보안 레벨 정보를 추출하는 단계, 상기 다운로드 서버로부터 설치 정보 파일(INF)을 수신하는 단계-여기서, 상기 설치 정보 파일은 제2 보안 레벨 정보를 포함함-, 상기 제1 보안 레벨 정보 및 상기제2 보안 레벨 정보를 비교하는 단계를 포함하되, 비교 결과, 상기 제1 보안 레벨 정보 및 상기 제2 보안 레벨 정보가 일치지 않으면, 상기 소프트웨어가 상기 모바일 단말기에 저장되지 않는 것이 바람직하다.The method may further include extracting the first security level information from the download file, receiving an installation information file (INF) from the download server, wherein the installation information file includes second security level information. And comparing the first security level information and the second security level information, and if the first security level information and the second security level information do not match, the software is not stored in the mobile terminal. It is preferable not to.
본 발명의 다른 실시예에 의할 때, 모바일 단말기와 네트워크를 통하여 결합된 다운로드 서버에서 소프트웨어를 인증하는 방법에 있어서, 상기 모바일 단말기로부터 다운로드 요청 신호를 수신하는 단계-여기서, 상기 다운로드 요청 신호는 상기 모바일 단말기 식별자를 포함함, 상기 모바일 단말기 식별자를 이용하여 상기 모바일 단말기를 식별하는 단계-여기서, 상기 모바일 단말기는 사용자용 모바일 단말기 및 개발자용 모바일 단말기를 포함함-, 상기 소프트웨어가 상기 모바일 단말기에게 다운로드가 허용된 소프트웨어인지 여부를 판단하는 단계, 상기 다운로드 요청 신호에 상응하는 소프트웨어 데이터를 추출하는 단계-여기서, 상기 소프트웨어는 상용 소프트웨어 및 개발용 소프트웨어를 포함함-, 상기 소프트웨어 데이터에 대한 오류 코드를 상기 모바일 단말기에 상응하여 산출하는 단계, 상기 소프트웨어 데이터 및 상기 오류 코드를 포함한 다운로드 파일을 생성하는 단계 및 상기 다운로드 파일을 상기 모바일 단말기로 송신하는 단계를 포함하되, 상기 모바일 단말기에서 상기 오류 코드 및 상기 모바일 단말기 식별자를 조합하여 생성된 인증키를 이용하여 상기 소프트웨어의 실행을 제어할 수 있다.According to another embodiment of the present invention, a method for authenticating software in a download server coupled via a network with a mobile terminal, the method comprising: receiving a download request signal from the mobile terminal, wherein the download request signal is Identifying a mobile terminal using the mobile terminal identifier, wherein the mobile terminal comprises a user mobile terminal and a developer mobile terminal, wherein the software is downloaded to the mobile terminal. Determining whether the software is allowed, extracting software data corresponding to the download request signal, wherein the software includes commercial software and development software, and outputs an error code for the software data. Calculating corresponding to the mobile terminal, generating a download file including the software data and the error code, and transmitting the download file to the mobile terminal, wherein the error code and the The execution of the software can be controlled using an authentication key generated by combining mobile terminal identifiers.
또한, 상기 소프트웨어에 상응하는 보안 레벨 정보를 추출하는 단계, 상기 보안 레벨 정보를 더 포함한 다운로드 파일을 생성하는 단계, 상기 보안 레벨 정보를 포함한 설치 정보 파일을 생성하는 단계, 상기 설치 정보 파일을 상기 모바일단말기로 송신하는 단계를 포함하되, 상기 모바일 단말기에서 상기 설치 정보 파일에 포함된 보안 레벨 정보와 상기 다운로드 파일에 포함된 설치 정보 파일을 비교하여 설치 정보 파일의 오류를 판단할 수 있다.The method may further include extracting security level information corresponding to the software, generating a download file further including the security level information, generating an installation information file including the security level information, and transmitting the installation information file to the mobile device. Including the step of transmitting to the terminal, the mobile terminal may determine the error of the installation information file by comparing the security level information included in the installation information file and the installation information file included in the download file.
여기서, 상기 보안 레벨 정보는 상기 소프트웨어에 상응하여 상기 모바일 단말기의 리소스를 사용할 수 있는 범위에 상응하여 미리 설정되어 있는 것이 바람직하다.Here, the security level information is preferably set in advance corresponding to the range in which the resources of the mobile terminal can be used corresponding to the software.
이하, 본 발명에서 사용하는 용어는 다음과 같이 정의하기로 한다.Hereinafter, terms used in the present invention will be defined as follows.
'모바일 단말기'는 자체 메모리에 소프트웨어 데이터를 저장하여 실행시킬 수 있는 휴대폰, 피시에스(PCS, Personal Communications Service ), 피디에이(PDA, Personal Digital Assistant)뿐만 아니라, 향후 개발될 모든 모바일 단말기를 포함한다.The 'mobile terminal' includes not only a mobile phone, a personal communication service (PCS) and a personal digital assistant (PDA) that can store and execute software data in its own memory, but also all future mobile terminals.
이러한 모바일 단말기는 본 발명의 바람직한 실시예에 의할 때, '사용자용 모바일 단말기'와 '개발자용 모바일 단말기'로 구분된다.According to a preferred embodiment of the present invention, such a mobile terminal is classified into a "user mobile terminal" and a "mobile terminal for developers."
'다운로드 서버'는 모바일 단말기의 요청에 의해 소프트웨어 데이터, 오류 정정 코드, 헤더 등을 포함한 다운로드 파일을 생성하여 모바일 단말기로 전송한다.The download server generates a download file including software data, an error correction code, a header, etc. at the request of the mobile terminal and transmits the downloaded file to the mobile terminal.
'소프트웨어'는 '개발용 소프트웨어'와 '상용 소프트웨어'로 구분되며, 상기 개발용 소프트웨어는 개발자용 모바일 단말기에서만 다운받도록 함으로써, 개발 과정 중에 보안을 유지할 수 있다.'Software' is divided into 'development software' and 'commercial software', and the development software can be downloaded only from a developer mobile terminal, thereby maintaining security during the development process.
'인증키'는 오류 코드와 모바일 단말기 식별자를 조합하여 생성되며, 상기 인증키를 이용하여 소프트웨어가 무단 복사되더라도 실행되는 것을 방지할 수 있다.The 'authentication key' is generated by combining an error code and a mobile terminal identifier, and can be prevented from being executed even if the software is copied unauthorizedly using the authentication key.
'모바일 단말기 식별자'는 모바일 단말기마다 유일하게 부여되는 식별자로서, 상기 모바일 단말기 식별자를 이용하여 모바일 단말기를 식별할 수 있다. 이러한 모바일 단말기 식별자로써, 장치 일련 번호를 사용할 수 있다.The 'mobile terminal identifier' is a unique identifier assigned to each mobile terminal, and may identify the mobile terminal using the mobile terminal identifier. As such a mobile terminal identifier, a device serial number can be used.
'장치 일련 번호(ESN, Electronic Serial Number)'란, 상기 모바일 단말기에 부여되는 제조 일련번호와는 별개로 모바일 단말기마다 부여되는 번호이다.An electronic serial number (ESN) is a number assigned to each mobile terminal separately from the manufacturing serial number assigned to the mobile terminal.
제조 회사는 모바일 단말기가 사용되는 국가의 해당 이동 통신 회사에 상기 장치 일련 번호(ESN, Electronic Serial Number)를 등록시킨다. 이 후, 상기 모바일 단말기를 이동 통신 회사에 등록시키거나 기기 변경을 할 때는 이미 등록된 장치 일련 번호(ESN, Electronic Serial Number)를 이용하여 등록 또는 기기 변경이 이루어진다.The manufacturing company registers the device serial number (ESN) with the corresponding mobile communication company in the country where the mobile terminal is used. Thereafter, when the mobile terminal is registered with the mobile communication company or the device is changed, registration or device change is performed using an already registered device serial number (ESN).
따라서, 상기 장치 일련 번호(ESN, Electronic Serial Number)는 모바일 단말기마다 유일하며 임의로 복사가 어려운 특징이 있으므로, 상기 모바일 단말기 식별자로서 장치 일련 번호(ESN, Electronic Serial Number)를 이용하는 것이 바람직하다.Therefore, since the device serial number (ESN, Electronic Serial Number) is unique to each mobile terminal and is difficult to copy arbitrarily, it is preferable to use an device serial number (ESN) as the mobile terminal identifier.
'설치 정보 파일(INF, Information)'은 시스템 정보를 담고 있는 파일이다. 프로그램의 설치나 실행시에 상기 설치 정보 파일(INF, Information)에 포함된 하드웨어 설치 정보, 특히 하드웨어에 적합한 드라이버 파일을 복사할 수 있도록 하는 정보를 제공한다.The installation information file (INF, Information) is a file containing system information. When the program is installed or executed, hardware installation information included in the installation information file (INF, Information) is provided, particularly information for copying a driver file suitable for hardware.
이하, 본 발명에 따른 소프트웨어 인증 방법 및 장치의 바람직한 실시예를 첨부 도면을 참조하여 보다 상세히 설명한다.Hereinafter, preferred embodiments of the software authentication method and apparatus according to the present invention will be described in detail with reference to the accompanying drawings.
그리고, 상기 첨부 도면과 함께 본 발명을 설명함에 있어, 본 발명의 구성 요소는 도면 번호에 관계없이 동일한 도면 부호를 사용하여 설명하기로 한다.In addition, in describing the present invention together with the accompanying drawings, the components of the present invention will be described using the same reference numerals regardless of the reference numerals.
도 1a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 시스템의 전체 구성도를 나타낸 도면이다.1A is a diagram showing the overall configuration of a software authentication system according to an embodiment of the present invention.
도 1a를 참조하면, 본 발명에 따른 소프트웨어 인증 시스템은 다운로드 서버(100) 및 모바일 단말기(130)를 포함하며, 로컬 컴퓨터(140)를 더 포함할 수 있다.Referring to FIG. 1A, the software authentication system according to the present invention includes a download server 100 and a mobile terminal 130, and may further include a local computer 140.
다운로드 서버(100)는 개발 중이거나, 개발이 완료된 상용 소프트웨어 데이터를 네트워크를 통하거나, 상기 다운로드 서버(100)에 결합된 로컬 컴퓨터(140)를 통하여 상기 모바일 단말기(130)에 제공할 수 있다.The download server 100 may provide the mobile terminal 130 with commercial software data that is being developed or completed, through a network, or through a local computer 140 coupled to the download server 100.
모바일 단말기(130)는 상기 모바일 단말기(130)에 부여된 고유의 식별자를 가진 단말기(130)이다.The mobile terminal 130 is a terminal 130 having a unique identifier assigned to the mobile terminal 130.
상기 고유의 식별자를 가진 모바일 단말기(130)라면 휴대폰, 피시에스(PCS, Personal Communications Service ), 피디에이(PDA, Personal Digital Assistant) 등의 모든 모바일 단말기(130)를 포함할 수 있다.The mobile terminal 130 having the unique identifier may include all mobile terminals 130 such as a mobile phone, a personal communications service (PCS), a personal digital assistant (PDA), and the like.
상기 모바일 단말기(130)는 개발자용 모바일 단말기(130)와 사용자용 모바일단말기(130)로 구분된다.The mobile terminal 130 is divided into a developer mobile terminal 130 and a user mobile terminal 130.
개발자용 모바일 단말기(130)는 소프트웨어를 개발하는 사람들이 사용하는 모바일 단말기(130)로서, 개발 중인 소프트웨어의 테스트를 위하여 다운로드 서버(100)에서 상기 소프트웨어를 다운받는다.The developer mobile terminal 130 is a mobile terminal 130 used by people who develop software, and downloads the software from the download server 100 to test the software under development.
그리고, 사용자용 모바일 단말기(130)는 상용 소프트웨어를 다운받아 사용하는 일반 유저의 모바일 단말기로서, 유상 또는 무상으로 상기 사용자용 모바일 단말기(130)에 제공될 수 있다.In addition, the user mobile terminal 130 is a mobile terminal of a general user who downloads and uses commercial software, and may be provided to the user mobile terminal 130 for a fee or free of charge.
본 발명에 의할 때, 모바일 단말기(130)가 다운로드 서버(100)에 접속하는 방법은 네트워크를 통하여 접속하는 네트워크 접속 방법과 케이블을 통하여 접속하는 시리얼 접속 방법으로 구분될 수 있다.According to the present invention, a method of connecting the mobile terminal 130 to the download server 100 may be divided into a network connection method for connecting through a network and a serial connection method for connecting through a cable.
상기 네트워크 접속 방법은 기존의 이동 통신망을 이용하거나, 향후 개발될 통신망을 이용하여, 상기 소프트웨어가 패킷 데이터로 나뉘어 전송되는 것을 지칭한다.The network access method refers to the transmission of the software divided into packet data using an existing mobile communication network or a communication network to be developed in the future.
반면, 시리얼 접속 방법은 주로 개발자용 모바일 단말기(110)를 이용하여 다운로드 서버(100)에 접속하는 방법으로써, 개발자가 상기 소프트웨어 데이터를 개발할 때 주로 사용되는 접속 방법이다.On the other hand, the serial connection method is a method of accessing the download server 100 using a developer mobile terminal 110 mainly, and is a connection method mainly used when a developer develops the software data.
상기 시리얼 접속 방법을 이용하여 다운로드 서버(100)에 접속시에는 로컬 컴퓨터(140)를 이용하여 상기 다운로드 서버(100)에 접속할 수 있다.When the download server 100 is connected using the serial connection method, the download server 100 may be connected to the download server 100 using the local computer 140.
상기 네트워크 접속 방법은 시리얼 접속 방법에 비하여 많은 다운로드 시간이 소요되므로 개발의 효율성을 위하여 개발자용 모바일 단말기(110)는 상기 시리얼 접속 방법을 이용하여 다운로드 서버(100)에 접속하는 것이 바람직하다.Since the network access method requires more download time than the serial access method, it is preferable that the developer mobile terminal 110 access the download server 100 using the serial access method for development efficiency.
본 발명에 일 실시예에서는 상기 모바일 단말기(130)를 식별할 수 있는 식별자로써, 장치 일련 번호(ESN, Electronic Serial Number)를 이용하여 상기 소프트웨어 데이터의 인증을 실행할 수 있다.According to an exemplary embodiment of the present invention, authentication of the software data may be performed using an electronic serial number (ESN) as an identifier for identifying the mobile terminal 130.
상기 소프트웨어 인증 방법은 다운로드받은 소프트웨어가 상기 모바일 단말기(130)에 저장될 때, 상기 소프트웨어 첨부된 오류 코드와 상기 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 생성한 인증키를 이용함으로써 이루어진다.The software authentication method is performed by using an authentication key generated by combining the software attached error code and the device serial number (ESN) when the downloaded software is stored in the mobile terminal 130.
상기 인증키 생성 방법은 도 5에서 상술하기로 한다.The authentication key generation method will be described in detail with reference to FIG. 5.
본 발명에 의한 인증키는 생성 방법이 간단하여, 모바일 단말기(130)의 동작 환경, 즉 제한된 메모리, 제어 장치의 용량 등을 고려할 때, 모바일 단말기(130)에 적합한 소프트웨어 인증 방식이다.The authentication key according to the present invention is a software authentication method suitable for the mobile terminal 130 in consideration of the operating environment of the mobile terminal 130, that is, the limited memory, the capacity of the control device, etc., since the method of generating the authentication key is simple.
일반 컴퓨터에서의 복잡한 암호화 방식을 통한 인증은 모바일 단말기(130)에 많은 로드를 부여함으로써, 인증시에 많은 시간이 소요되어 모바일 단말기용 소프트웨어 인증에 적합하지 않다.Authentication through a complex encryption scheme in a general computer imposes a lot of load on the mobile terminal 130, which takes a long time at the time of authentication and is not suitable for software authentication for mobile terminals.
따라서, 상기 오류 코드와 장치 일련 번호(ESN, Electronic Serial Number)만을 이용한 생성된 인증키를 이용한 인증 방식은 모바일 단말기(130)의 동작 환경에 적합한 인증 방식이다.Therefore, the authentication method using the authentication key generated using only the error code and the device serial number (ESN, Electronic Serial Number) is an authentication method suitable for the operating environment of the mobile terminal 130.
더욱이, 상기 인증 방식은 인증 시간을 대폭 절감시킬 수 있을 뿐만 아니라, 모바일 단말기(130)마다 유일한 장치 일련 번호(ESN, Electronic Serial Number)를이용함으로써 실효성있는 복사 방지 효과를 제공할 수 있다.In addition, the authentication method can significantly reduce the authentication time, and can provide an effective copy protection effect by using a unique device serial number (ESN) for each mobile terminal 130.
도 1b는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버의 기능을 나타낸 블록도이다.1B is a block diagram illustrating the functions of a download server according to an exemplary embodiment of the present invention.
본 발명에 따른 소프트웨어 인증 방법에 대한 설명의 편의를 위하여, 다운로드 서버(100)의 기능 중 일반적인 서버 기능을 생략하고 설명하기로 한다.For convenience of explanation of the software authentication method according to the present invention, a general server function among the functions of the download server 100 will be omitted and described.
도 1b를 참조하면, 다운로드 서버(100)는 보안 레벨 정보 설정부(152), 오류 코드 생성부(154), 다운로드 파일 생성부(156)를 포함하며, 인증부(158) 및 과금부(160)를 더 포함할 수 있다.Referring to FIG. 1B, the download server 100 includes a security level information setting unit 152, an error code generation unit 154, and a download file generation unit 156, and includes an authentication unit 158 and a charging unit 160. ) May be further included.
보안 레벨 정보 설정부(152)는 다운로드 서버(100)에 업로드되는 소프트웨어마다 상기 소프트웨어에 상응하는 보안 레벨 정보를 설정하는 기능을 수행한다.The security level information setting unit 152 performs a function of setting security level information corresponding to the software for each software uploaded to the download server 100.
상기 소프트웨어가 모바일 단말기(130)에서 구동시 모바일 단말기(130)에서 사용 가능한 모바일 단말기(130)의 리소스는 보안 레벨 정보에 따라 정해진다.When the software is running on the mobile terminal 130, resources of the mobile terminal 130 available to the mobile terminal 130 are determined according to the security level information.
상기 보안 레벨 정보에 대한 상세한 설명은 도 3b에서 하기로 한다.A detailed description of the security level information will be given below with reference to FIG. 3B.
오류 코드 생성부(154)는 다운로드 파일에 포함되는 소프트웨어 데이터에 대한 오류 코드를 생성함으로써, 상기 소프트웨어 데이터를 수신한 모바일 단말기(130)에서 상기 소프트웨어 데이터에 대한 에러 발생 여부를 판단할 수 있는 오류 코드를 생성하는 기능을 수행한다.The error code generation unit 154 generates an error code for the software data included in the download file, whereby the mobile terminal 130 that receives the software data may determine whether an error with respect to the software data occurs. Performs the function of generating it.
다운로드 파일 생성부(156)는 소프트웨어 데이터에 헤더, 오류 코드, 보안 레벨 정보를 첨부하여 다운로드 파일을 생성한다.The download file generator 156 generates a download file by attaching a header, an error code, and security level information to the software data.
인증부(158)는 상기 모바일 단말기(130)가 다운로드 서버(100)에 접속시에 상기 모바일 단말기(130)에 대한 인증을 수행한다. 일반적으로 상기 모바일 단말기 사용자의 아이디 및 패스워드로 인증을 수행할 수 있음은 당연하며, 모바일 단말기 식별자, 즉 장치 일련 번호(ESN, Electronic Serial Number)를 이용하여 식별할 수 도 있다.The authentication unit 158 authenticates the mobile terminal 130 when the mobile terminal 130 accesses the download server 100. In general, the authentication may be performed using the ID and password of the mobile terminal user, and may be identified using a mobile terminal identifier, that is, an electronic serial number (ESN).
과금부(160)는 다운로드 서버(100)에서 상기 다운을 요청하는 소프트웨어 데이터에 대하여 과금 기능을 수행한다.The charging unit 160 performs a charging function on the software data requesting the download from the download server 100.
개발이 완료된 상용 소프트웨어 데이터는 유상으로 배포될 수 있으며, 이러한 경우 각 소프트웨어에 상응하여 과금 기능을 수행할 수 있다.Commercially available software data can be distributed for a fee. In this case, the charging function can be performed according to each software.
상기 과금은 모바일 단말기의 사용 요금 또는 사용자의 신용 카드 대금 등 다양한 방식으로 청구할 수 있다.The billing may be charged in various ways such as a fee for using a mobile terminal or a credit card for a user.
도 1c는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기의 기능을 나타낸 블록도이다.Figure 1c is a block diagram showing the function of a mobile terminal according to an embodiment of the present invention.
본 발명에 따른 소프트웨어 인증 방법에 대한 설명의 편의를 위하여, 모바일 단말기의 일반적인 기능을 생략하고 설명하기로 한다.For convenience of description of the software authentication method according to the present invention, a general function of the mobile terminal will be omitted and described.
도 1c를 참조하면, 모바일 단말기(130)는 오류 코드 생성부(170), 보안 레벨 정보 및 오류 코드 비교부(172), 인증키 생성부(174) 및 인증키 비교부(176)를 포함한다.Referring to FIG. 1C, the mobile terminal 130 includes an error code generator 170, a security level information and error code comparator 172, an authentication key generator 174, and an authentication key comparator 176. .
오류 코드 생성부(170)는 오류 코드를 생성하는 기능을 수행하며, 생성 방식은 다운로드 서버(100)에서 오류 코드를 생성하는 방식과 동일하다.The error code generator 170 performs a function of generating an error code, and the generating method is the same as the method of generating the error code in the download server 100.
즉, 소프트웨어 데이터에 대한 오류 코드를 생성함으로써, 상기 소프트웨어 데이터를 수신한 모바일 단말기(130)에서 에러 발생 여부를 판단할 수 있는 오류 코드를 생성하는 기능을 수행한다.That is, by generating an error code for the software data, the mobile terminal 130 that receives the software data performs a function of generating an error code that can determine whether an error occurs.
보안 레벨 정보 및 오류 코드 비교부(172)는 보안 레벨 정보 및 오류 코드를 비교하여 다운로드 파일에 포함된 보안 레벨 정보 및 소프트웨어 데이터에 대한 에러 발생 여부를 판단한다.The security level information and error code comparison unit 172 compares the security level information and the error code to determine whether an error occurs in the security level information and software data included in the download file.
즉, 소프트웨어 데이터에 대해서는 상기 오류 코드 생성부(170)에서 생성한 오류 코드와 다운로드 서버(100)에서 추출한 오류 코드를 비교하여 에러 발생 여부를 판단할 수 있다.That is, the software data may be determined by comparing the error code generated by the error code generator 170 with the error code extracted by the download server 100.
그리고, 보안 레벨 정보에 대한 에러 발생 여부는 상기 다운로드 파일에 포함된 보안 레벨 정보와 다운로드 파일과 별로도 수신한 설치 정보 파일(INF, Information)에 포함된 보안 레벨 정보를 비교하여 보안 레벨 정보에서의 에러 발생 여부를 판단할 수 있다.In addition, whether or not an error with respect to the security level information is generated by comparing the security level information included in the download file with the security level information included in the download file and separately received installation information file (INF, Information). You can determine whether an error has occurred.
인증키 생성부(174)는 다운로드 파일에서 수신한 소프트웨어 데이터를 상기 모바일 단말기(130)에 저장시에 인증키를 생성한다.The authentication key generation unit 174 generates an authentication key when storing the software data received from the download file in the mobile terminal 130.
상기 인증키는 오류 코드 및 모바일 단말기(130)의 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 생성될 수 있다.The authentication key may be generated by combining an error code and an electronic serial number (ESN) of the mobile terminal 130.
인증키 비교부(176)는 상기 인증키 생성부(174)에서 생성된 인증키를 이용하여 상기 소프트웨어 데이터의 실행을 제어할 수 있다.The authentication key comparison unit 176 may control the execution of the software data by using the authentication key generated by the authentication key generation unit 174.
즉, 모바일 단말기(130) 내에 저장된 인증키와 소프트웨어 데이터 실행시마다 생성되는 인증키와의 비교를 통하여 소프트웨어의 실행을 제어할 수 있다.That is, the execution of the software can be controlled by comparing the authentication key stored in the mobile terminal 130 with the authentication key generated every time the software data is executed.
도 2는 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서 소프트웨어 데이터를 다운로드하는 절차를 나타낸 순서도이다.2 is a flowchart illustrating a procedure for downloading software data in a mobile terminal according to an embodiment of the present invention.
현재, 모바일 단말기의 대중화에 힙입어 다양한 모바일 단말기용 소프트웨어가 개발 또는 상용화되고 있다.At present, various mobile terminal softwares have been developed or commercialized due to the popularity of mobile terminals.
따라서, 상기 모바일용 단말기 소프트웨어는 본 발명에 의한 소프트웨어 인증 방식 및 시스템에 의해 무단 복사로부터 보호받을 수 있다.Therefore, the mobile terminal software can be protected from unauthorized copying by the software authentication method and system according to the present invention.
즉, 본 발명에 의할 때, 상기 모바일 단말기용 소프트웨어 데이터는 상기 서버에서 인증된 모바일 단말기(130)에 한해 제공된다. 또한, 인증된 모바일 단말기(130)의 소프트웨어가 타 모바일 단말기(130)에 의해 무단 복사되더라도 인증키에 의해 타 모바일 단말기(130)에서 실행되는 것을 방지할 수 있다.That is, according to the present invention, the software data for the mobile terminal is provided only to the mobile terminal 130 authenticated by the server. In addition, even if the software of the authenticated mobile terminal 130 is copied by another mobile terminal 130, it can be prevented from being executed in the other mobile terminal 130 by the authentication key.
이하, 도 2를 참조하여 본 발명에 따른 다운로드 서버에서의 소프트웨어의 다운로드 과정을 설명하기로 한다.Hereinafter, the downloading process of the software in the download server according to the present invention will be described with reference to FIG. 2.
단계 200에서 상기 모바일 단말기(130)는 네트워크를 통하여 다운로드 서버(100)에 접속한다.In step 200, the mobile terminal 130 accesses the download server 100 through a network.
도 1a에서 상술한 바와 같이, 모바일 단말기(130)가 다운로드 서버(100)에 접속하는 방법은 네트워크를 통하여 접속하는 네트워크 접속 방법과 케이블을 통하여 접속하는 시리얼 접속 방법으로 구분될 수 있다.As described above with reference to FIG. 1A, a method of accessing the download server 100 by the mobile terminal 130 may be classified into a network connection method for connecting through a network and a serial connection method for connecting through a cable.
이하, 도 2에서는 네트워크 접속 방식을 중심으로 설명하기로 하면, 상기 시리얼 접속 방법에 의한 다운로드 방식은 도 7b에서 설명하기로 한다.Hereinafter, in FIG. 2, the network connection method will be described. The download method using the serial connection method will be described with reference to FIG. 7B.
단계 205에서 다운로드 서버(100)는 상기 다운로드 서버(100)에 접속한 모바일 단말기(130)의 인증을 수행한다.In operation 205, the download server 100 performs authentication of the mobile terminal 130 connected to the download server 100.
상기 다운로드 서버(100)에서의 인증 방식은 일반적으로 상기 모바일 단말기 사용자의 아이디 및 패스워드를 이용하여 이루어질 수 있다.The authentication method in the download server 100 may generally be performed using an ID and password of the mobile terminal user.
인증 후, 상기 다운로드 서버(100)에서 원하는 소프트웨어를 검색하고, 단계 210에서 상기 모바일 단말기(130)는 상기 다운로드 서버(100)에 원하는 소프트웨어에 대하여 다운로드 요청 신호를 전송한다.After authentication, the download server 100 searches for the desired software, and in step 210, the mobile terminal 130 transmits a download request signal for the desired software to the download server 100.
단계 215에서 상기 다운로드 요청 신호를 수신한 다운로드 서버(100)는 상기 소프트웨어에 대한 소프트웨어 데이터를 추출하고, 상기 소프트웨어 데이터를 포함한 다운로드 파일을 생성한다.In step 215, the download server 100 receiving the download request signal extracts software data for the software and generates a download file including the software data.
상기 다운로드 파일은 헤더, 소프트웨어 데이터, 보안 레벨 정보 및 오류 코드를 포함할 수 있다.The download file may include a header, software data, security level information, and an error code.
상기 다운로드 서버(100) 다운로드 파일을 생성한 후, 단계 225에서 상기 다운로드 파일을 모바일 단말기(130)로 송신한다.After the download server 100 generates the download file, the download file is transmitted to the mobile terminal 130 in step 225.
단계 230에서 모바일 단말기(130)는 상기 다운로드 파일을 이용하여 상기 소프트웨어 데이터에 저장한다.In operation 230, the mobile terminal 130 stores the downloaded data in the software data.
상기 저장 과정은 오류 검사 과정, 소프트웨어 데이터 저장 과정 및 인증키 생성 과정으로 구분할 수 있다.The storing process may be divided into an error checking process, a software data storing process, and an authentication key generating process.
상기 오류 검사 과정은 수신한 다운로드 파일에서 소프트웨어 데이터 및 보안 레벨에 대한 에러 발생 여부를 검사하는 과정이다.The error checking process is a process of checking whether an error regarding software data and a security level occurs in the received download file.
소프트웨어 데이터 저장 과정은 상이 오류 검사 과정에서 에러가 발생되지 않았으면, 상기 소프트웨어 데이터가 모바일 단말기(130)내에 저장되는 과정이다.The software data storing process is a process in which the software data is stored in the mobile terminal 130 when no error occurs in the different error checking process.
인증키 생성 과정은 모바일 단말기(130)에서 오류 코드와 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 인증키를 생성하는 과정이다.The authentication key generation process is a process of generating an authentication key by combining the error code and the device serial number (ESN, Electronic Serial Number) in the mobile terminal 130.
상기 단계 230의 저장 과정은 도 5에서 상세히 설명하기로 한다.The storage process of step 230 will be described in detail with reference to FIG. 5.
단계 235에서 모바일 단말기(130)는 상기 모바일 단말기내에 저장된 소프트웨어 데이터를 이용하여 상기 소프트웨어 데이터에 상응하는 소프트웨어를 실행시킬 수 있다.In operation 235, the mobile terminal 130 may execute software corresponding to the software data using the software data stored in the mobile terminal.
상기 실행시에, 단계 230에서 생성된 인증키를 이용하여 상기 소프트웨어의 실행을 제어할 수 있다.At the time of execution, the execution of the software can be controlled using the authentication key generated in step 230.
상기 단계 230의 실행 과정은 도 6에서 상세히 설명하기로 한다.The execution process of step 230 will be described in detail with reference to FIG. 6.
도 3a는 본 발명의 바람직한 일 실시예에 따른 다운로드 파일의 데이터 구조를 나타낸 도면이다.3A illustrates a data structure of a download file according to an exemplary embodiment of the present invention.
다운로드 서버(100)는 모바일 단말기(130)로부터 다운로드 요청 신호를 수신하면, 상기 다운로드 요청 신호에 상응하는 소프트웨어 데이터를 포함하는 다운로드 파일을 생성하여 상기 모바일 단말기(130)로 전송한다.When the download server 100 receives the download request signal from the mobile terminal 130, the download server 100 generates a download file including software data corresponding to the download request signal and transmits the downloaded file to the mobile terminal 130.
도 3a를 참조하면, 다운로드 파일은 헤더(300), 소프트웨어 데이터(320), 보안 레벨 정보(340), 오류 코드(360)를 포함한다.Referring to FIG. 3A, the download file includes a header 300, software data 320, security level information 340, and an error code 360.
본 발명에 의할 때, 헤더(300)는 오류 코드에 대한 정보를 포함하고 있다.In accordance with the present invention, the header 300 contains information about an error code.
모바일 단말기(130)에서는 상기 헤더에 포함된 오류 코드에 대한 정보를 추출하여, 동일한 방식에 의하여 오류 코드를 생성할 수 있다. 이 후, 상기 오류 코드의 동일성 여부를 검사함으로써, 소프트웨어 데이터에 대한 에러 발생 여부를 판단할 수 있다.The mobile terminal 130 may extract information about the error code included in the header and generate the error code in the same manner. Thereafter, by checking whether the error codes are identical, it may be determined whether an error with respect to the software data occurs.
소프트웨어 데이터(300)는 상기 모바일 단말기(130)에서 요청한 소프트웨어에 상응하는 데이터 파일로써, 압축 파일 형태로 상기 다운로드 파일에 포함되는 것이 바람직하다.Software data 300 is a data file corresponding to the software requested by the mobile terminal 130, it is preferably included in the download file in the form of a compressed file.
상기 압축 파일 형태로 포함될 때, 다운로드 서버(100)는 상기 압축 파일 형태에 대하여 오류 코드를 생성하여야 함은 당연하다.When included in the compressed file format, the download server 100 should generate an error code for the compressed file format.
보안 레벨 정보(340)는 상기 소프트웨어가 실행시에 모바일 단말기내에서 액세스할 수 있는 리소스에 대한 정보를 포함하고 있다.Security level information 340 includes information about resources that the software can access within the mobile terminal at run time.
사용 가능한 모바일 단말기(130)의 리소스는 상기 보안 레벨 정보(340)에 따라 정해지고, 상기 보안 레벨 정보(340)는 소프트웨어 데이터에 마다 설정될 수 있다.The available resources of the mobile terminal 130 may be determined according to the security level information 340, and the security level information 340 may be set for each software data.
상기 보안 레벨 정보(340)는 도 3b에서 상술하기로 한다.The security level information 340 will be described in detail with reference to FIG. 3B.
오류 코드(360)는 상기 소프트웨어 데이터(320)가 전송 과정에서 에러가 발생했는지 여부를 판단할 때 사용된다.The error code 360 is used when the software data 320 determines whether an error has occurred in the transmission process.
본 발명에 의할 때, 에러 발생 여부를 검출하기 위해 다운로드 서버(100)에서 전송하고자 하는 다운로드 파일에 오류 코드(360)를 첨부한다.According to the present invention, an error code 360 is attached to a download file to be transmitted by the download server 100 to detect whether an error occurs.
그리고, 상기 다운로드 파일을 수신한 모바일 단말기(130)에서는 상기 오류 코드(360)를 이용하여 소프트웨어 데이터(320)에 대한 에러 발생 여부를 판단할 수 있다.In addition, the mobile terminal 130 receiving the download file may determine whether an error with respect to the software data 320 occurs using the error code 360.
이하, 상기 오류 코드(360)를 이용한 에러 발생 여부 판단 방법을 상술하면 다음과 같다.Hereinafter, a method of determining whether an error occurs using the error code 360 will be described below.
상기 오류 코드(360)를 생성 방법은 패리티 검사와 순환 잉여 검사를 포함한다.The error code 360 generating method includes a parity check and a cyclic redundancy check.
패리티 검사는 한 블록의 데이터 끝에 패리티 비트를 추가하는 것으로서 가장 간단한 에러 검출 기법 중 하나이나, 짝수개의 오류가 발생한 경우에는 오류를 검출할 수 없는 단점이 있다.Parity check is the addition of parity bits to the end of a block of data, which is one of the simplest error detection techniques, but has the disadvantage of not being able to detect an error evenly.
따라서, 본 발명에 의할 때, 상기 에러 검출 방법은 순환 잉여 검사 방법을 사용하는 것이 바람직하다.Therefore, according to the present invention, it is preferable that the error detection method uses a cyclic redundancy check method.
상기 오류 코드(360)는 순환 잉여도 검사(CRC, Cyclic Redundancy Check)에 의할 때, 프레임 체크열(FCS, Frame Check Sequence)을 사용한다.The error code 360 uses a frame check sequence (FCS) when performing a cyclic redundancy check (CRC).
본 발명에 의한 모바일 단말기(130)에서 에러 발생 여부의 판단하는 방법은 다음과 같다.The method of determining whether an error occurs in the mobile terminal 130 according to the present invention is as follows.
즉, 모바일 단말기(130)에서 다운로드 서버(100)에서와 같이 소프트웨어 데이터에 대해서 프레임 체크열(FCS, Frame Check Sequence)을 생성하고, 다운로드 파일에 포함된 오류 코드와 상기 모바일 단말기(130)에서 생성한 프레임체크열(FCS, Frame Check Sequence)의 동일성을 비교함으로써 에러 발생 여부를 판단할 수 있다.That is, the mobile terminal 130 generates a frame check sequence (FCS, Frame Check Sequence) for the software data as in the download server 100, and generates an error code included in the download file and the mobile terminal 130. By comparing the identity of one frame check sequence (FCS, Frame Check Sequence), it is possible to determine whether an error occurs.
본 발명에 따른 상기 순환 잉여 검사 방식을 이용할 때, 모바일 단말기(130) 종류에 상응하여 시알시32(CRC32) 및 시알시16(CRC16)을 사용할 수 있다.When using the cyclic redundancy test method according to the present invention, sialic 32 (CRC32) and sialic 16 (CRC16) may be used according to the type of mobile terminal 130.
본 발명의 일 실시예에 따르면, 일반 사용자들이 사용하는 상용 소프트웨어 데이터는 에러 발생 여부 체크시 또는 소프트웨어 인증시에 인증 속도를 높이기 위하여 시알시16(CRC16)을 사용할 수 있고, 개발용 소프트웨어에서는 개발 과정의 검증 효과를 높이기 위하여 시알시32(CRC32)를 사용할 수 있다.According to an embodiment of the present invention, commercial software data used by general users may use CRC16 to increase the authentication speed when checking whether an error occurs or when authenticating a software. CRC32 can be used to increase the verification effect of the system.
본 발명의 다른 실시예에 따르면, 상용 소프트웨어 데이터는 일반적으로 이동 통신망을 통하여 무선으로 전송되므로, 유선에 비하여 에러 발생 가능성이 높으므로, 시알시32(CRC32) 방식에 의한 오류 코드를 사용할 수 있다. 반면, 개발용 소프트웨어 데이터는 본 발명에 의할 때, 케이블을 통하여 유선으로 전송되므로, 무선에 비하여 에러 발생 가능성이 낮다. 따라서, 시알시16(CRC16) 방식에 의한 오류 코드를 사용할 수 있다.According to another embodiment of the present invention, since commercial software data is generally transmitted wirelessly through a mobile communication network, since error occurrence is more likely than that of a wired line, an error code using the CRC32 method may be used. On the other hand, since the development software data is transmitted by wire through a cable according to the present invention, the possibility of error is lower than that of wireless. Therefore, an error code based on the CRC16 method can be used.
본 발명에 의할 때, 상술한 오류 검출뿐만 아니라 오류 정정도 수행할 수 있는 것이 바람직하다.According to the present invention, it is preferable that not only the above-described error detection but also error correction can be performed.
오류를 정정하는 기법으로서 자동 재전송 방식(ARQ, Automatic Repeat reQuest)을 사용하는 것이 바람직하다. 상기 자동 재전송 방식(ARQ, Automatic Repeat reQuest)은 오류 검출 후에 송신측에게 오류가 발생한 데이터 블럭을 다시 전송해 주도록 요청함으로써 에러를 정정하는 방식이다.As a technique for correcting an error, it is preferable to use an Automatic Repeat ReQuest (ARQ) method. The automatic retransmission method (ARQ) is a method of correcting an error by requesting a sender to retransmit a block of data after an error is detected.
상기 자동 재전송 방식(ARQ, Automatic Repeat reQuest)외에 전진 에러 수정 방식(FEC, Forward Error Corretion)은 방식이 있다. 전진 에러 수정 방식(FEC, Forward Error Corretion)은 에러의 검출과 수정을 동시에 수행하는 에러제어 기법으로 자동 재전송 방식(ARQ, Automatic Repeat reQuest)에 비해 역채널이 불필요하고 연속적인 데이터 흐름이 가능하다.In addition to the Automatic Repeat ReQuest (ARQ), there is a Forward Error Corretion (FEC) scheme. Forward Error Corretion (FEC) is an error control technique that simultaneously detects and corrects errors, and does not require reverse channels and enables continuous data flow compared to Automatic Repeat ReQuest (ARQ).
그러나, 상기 전진 에러 수정 방식(FEC, Forward Error Corretion)은 에러의 검출과 수정을 동시에 수행하기 위한 오버헤드가 크다는 단점이 있어, 모바일 단말기(130)에는 적합하지 않다. 따라서, 본 발명에 의한 오류 정정 방식은 자동 재전송 방식(ARQ, Automatic Repeat reQuest)을 사용하는 것이 바람직하다.However, the forward error correction (FEC) has a disadvantage in that a large overhead for simultaneously detecting and correcting an error is not suitable for the mobile terminal 130. Therefore, the error correction method according to the present invention preferably uses an automatic retransmission method (ARQ).
또한, 본 발명의 바람직한 일 실시예에 따른 상기 다운로드 파일의 데이터 구조에 있어서, 헤더는 1바이트, 보안 레벨 정보는 1바이트, 오류 코드는 4바이트로 구성될 수 있다.In addition, in the data structure of the download file according to an embodiment of the present invention, the header may be configured by 1 byte, the security level information by 1 byte, and the error code by 4 bytes.
도 3b는 본 발명의 바람직한 일 실시예에 따른 보안 레벨 정보를 나타낸 테이블이다.3B is a table showing security level information according to an embodiment of the present invention.
보안 레벨 정보(340)는 소프트웨어마다 지정되며, 상기 소프트웨어는 상기 보안 레벨 정보(340)에서 허용되는 범위 내에서 상기 모바일 단말기(130)의 리소스를 사용할 수 있다, 상기와 같은 보안 레벨 정보(340)를 이용함으로써, 상기 소프트웨어가 모바일 단말기(130) 내에서 실행될 때, 보안 및 안정성을 유지할 수 있다.The security level information 340 is designated for each software, and the software can use the resources of the mobile terminal 130 within the range allowed by the security level information 340. The security level information 340 as described above. By using the, when the software is executed in the mobile terminal 130, security and stability can be maintained.
본 발명에 의할 때, 보안 레벨의 단계는 응용 프로그래밍 인터페이스(application programming interface, API) 보안, 디렉토리 보안, 라이브러리 보안 등으로 구분할 수 있으며, 시스템 액세스의 중요도에 따라 더 세분화될 수 있음은 당연하다.According to the present invention, the level of security may be divided into application programming interface (API) security, directory security, library security, and the like, and may be further subdivided according to the importance of system access.
응용 프로그래밍 인터페이스(application programming interface, API)는 응용 프로그램이 컴퓨터 운영 체계(OS)나 데이터베이스 관리 시스템(DBMS) 등 다른 프로그램의 기능을 이용하기 위한 인터페이스이다.An application programming interface (API) is an interface for an application program to use functions of other programs such as a computer operating system (OS) or a database management system (DBMS).
모바일 단말기(130)의 운영 체제, 파일 또는 라이브러리에 대한 억세스 권한을 설정해둠으로써, 모바일 단말기(130) 내에 개인 정보의 보안이나, 실행 시에 상기 소프트웨어 데이터에 의해 모바일 단말기(130)가 다운되는 등의 문제점을 방지할 수 있다.By setting an access right to an operating system, a file or a library of the mobile terminal 130, the mobile terminal 130 is down due to the security of personal information in the mobile terminal 130 or the software data at the time of execution. Can prevent the problem.
이하, 도 3b를 참조하여 보안 레벨 정보(340)에 따른 기능을 설명하나, 본 발명이 도 3b에 예시한 보안 레벨 정보(340)의 구분에 한정되는 것은 아니다.Hereinafter, a function according to the security level information 340 will be described with reference to FIG. 3B, but the present invention is not limited to the division of the security level information 340 illustrated in FIG. 3B.
'0 단계'(342)는 가장 많은 모바일 단말기(130)의 리소스를 억세스할 수 있는 단계로써, 장치 일련 번호(ESN, Electronic Serial Number), 채널 할당 등의 사용자의 정보와 관련되어 있거나 모바일 단말기(130) 및 무선망의 안정성과 관련된 보안 레벨 정보(340)이다.'Step 0' 342 is a step that can access the resources of the most mobile terminal 130, and is associated with the user's information such as device serial number (ESN, Electronic Serial Number), channel assignment, or 130 and security level information 340 related to the stability of the wireless network.
'1 단계'(344)는 이동국 식별 번호(MIN, Mobile Identification Number), 모바일 단말기의 현재 상태 등의 정보 등을 억세스할 수 있는 보안 레벨 정보(340)이다.'Step 1' 344 is security level information 340 that can access information such as Mobile Identification Number (MIN), the current state of the mobile terminal, and the like.
상기 이동국 식별 번호(MIN, Mobile Identification Number)는 모바일 단말기에 할당된 10자리 전화번호를 디지털로 표시하는 34비트의 숫자를 지칭하며, 일반적으로 단말기의 전화 번호를 일컫는다.The mobile identification number (MIN) refers to a 34-bit number digitally representing a 10-digit telephone number assigned to a mobile terminal, and generally refers to a telephone number of the terminal.
그리고, '2 단계'(346)는 전화 걸기, SMS 송신 등이 가능한 보안 레벨 정보(340)이다. '3 단계'(348)는 TCP/IP, UDP, HTTP 등의 무선망 자원을 억세스할 수 있는 보안 레벨 정보(340)이며, '4 단계'(350)는 파일을 제어할 수 있는 보안 레벨 정보(340)이다.The second step 346 is security level information 340 capable of making a call, sending an SMS, and the like. 'Step 3' 348 is security level information 340 for accessing wireless network resources such as TCP / IP, UDP, HTTP, etc., and 'Step 4' 350 is security level information for controlling a file. 340.
'5 단계'(352)는 시리얼 통신을 제어할 수 있는 보안 레벨 정보(340)이고, '6 단계'(354) 이하는 일반적인 보안 레벨 정보(340)로서, 모든 개발자의 억세스가 허용되는 보안 레벨 정보(340)이다.'Step 5' 352 is security level information 340 for controlling serial communication, and Step 6 354 or less is general security level information 340, which is a security level that is accessible to all developers. Information 340.
도 4는 본 발명의 바람직한 일 실시예에 따른 다운로드 서버에서의 다운로드 파일 생성 과정을 나타낸 순서도이다.4 is a flowchart illustrating a process of generating a download file in a download server according to an exemplary embodiment of the present invention.
상기 다운로드 서버(100)에 결합된 데이터베이스에는 개발중인 소프트웨어 데이터 또는 상용 소프트웨어 데이터를 저장되어 있다.The database coupled to the download server 100 stores software data under development or commercial software data.
소프트웨어 개발자들은 상기 소프트웨어 데이터에 대한 소스코드를 생성한 후, 이를 컴파일하여 다운로드 서버(100)에 업로드한다.Software developers generate source code for the software data, compile it, and upload it to the download server 100.
상기 다운로드 서버(100)에 업로드되는 소프트웨어 데이터는 개발 중에 테스트를 위하여 업로드되는 개발용 소프트웨어 데이터 및 개발이 완료된 상용 소프트웨어 데이터를 포함한다.The software data uploaded to the download server 100 includes development software data uploaded for testing during development and commercial software data that is completed for development.
모바일 단말기(130)에서 상기 다운로드 서버(100)에 다운로드 요청 신호를 전송하면, 상기 다운로드 서버(100)에서는 모바일 단말기(130)에서 요청한 소프트웨어를 포함한 다운로드 파일을 생성하여 상기 모바일 단말기(130)로 전송한다.When the mobile terminal 130 transmits a download request signal to the download server 100, the download server 100 generates a download file including the software requested by the mobile terminal 130 and transmits the downloaded file to the mobile terminal 130. do.
이하, 도 4를 참조하여 본 발명에 따른 다운로드 서버(100)에서의 다운로드 파일 생성 절차를 설명하기로 한다.Hereinafter, a download file generation procedure in the download server 100 according to the present invention will be described with reference to FIG. 4.
단계 400에서 다운로드 서버(100)는 모바일 단말기(130)로부터 다운로드 요청 신호를 수신한다. 상기 다운로드 요청 신호를 수신한 다운로드 서버(100)는 상기 다운로드 요청 신호에 상응하는 소프트웨어 데이터를 추출한다.In operation 400, the download server 100 receives a download request signal from the mobile terminal 130. The download server 100 receiving the download request signal extracts software data corresponding to the download request signal.
상기 추출된 소프트웨어 데이터는 압축 파일 형태로 존재할 수 있고, 그렇지 않을 수도 있다. 상기 소프트웨어 데이터가 압축 파일 형태로 존재하지 않는다면, 상기 다운로드 서버(100)에서 상기 소프트웨어 데이터를 압축하고, 상기 압축 파일 형태의 소프트웨어 데이터를 다운로드 파일에 삽입할 수 있다.The extracted software data may or may not exist in the form of a compressed file. If the software data does not exist in the form of a compressed file, the download server 100 may compress the software data, and insert the software data in the form of a compressed file into a download file.
이렇게 압축 파일 형태로 삽입하는 경우, 오류 코드 또한 상기 압축 파일 형태의 소프트웨어 데이터에 의해 생성해야 함은 당연하다.When inserting in the form of a compressed file in this manner, it is natural that an error code must also be generated by the software data in the form of a compressed file.
단계 410에서 다운로드 서버(100)는 모바일 단말기(130)에서 요청한 소프트웨어의 종류를 판단한다.In operation 410, the download server 100 determines the type of software requested by the mobile terminal 130.
본 발명에 의할 때, 소프트웨어는 개발용 소프트웨어와 상용 소프트웨어로 구분된다.According to the present invention, software is divided into development software and commercial software.
상기 개발용 소프트웨어는 개발자용 모바일 단말기에서만 다운받도록 함으로써, 개발 과정 중에 보안을 유지할 수 있다.The development software can be downloaded only from the developer mobile terminal, thereby maintaining security during the development process.
상술한 오류 발생 가능성 및 개발의 효율성을 고려할 때, 소프트웨어의 종류에 상응하여 오류 코드를 생성하는 것이 바람직하다.In consideration of the possibility of error occurrence and the efficiency of development described above, it is preferable to generate an error code corresponding to the type of software.
즉, 본 발명에 따른 상기 순환 잉여도 검사 방식(CRC, Cyclic Redundancy Check)을 이용할 때, 상기 오류 코드는 소프트웨어 종류에 상응하여 시알시32(CRC32) 다항식 또는 시알시16(CRC16) 다항식에 의하여 생성될 수 있다.That is, when using the Cyclic Redundancy Check (CRC) according to the present invention, the error code is generated by the CRC32 polynomial or the SIC16 polynomial according to the software type. Can be.
이하, 시알시32(CRC32) 다항식에 의하여 생성된 오류 코드는 프레임 체크열 32(FCS 32, Frame Check Sequence 32)이라 칭하기로 한다.Hereinafter, the error code generated by the CRC32 polynomial will be referred to as a frame check sequence 32 (FCS 32).
또한, 시알시16(CRC16) 다항식에 의하여 생성된 오류 코드는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)이라 칭하기로 한다.In addition, an error code generated by the CRC16 polynomial is referred to as a frame check sequence 16 (FCS 16).
즉, 상용 소프트웨어는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하여 에러 발생 여부를 판단할 수 있고, 개발용 소프트웨어 데이터는 프레임 체크열 32(FCS 32, Frame Check Sequence 32)를 사용하여 에러 발생 여부를 판단할 수 있다.That is, commercial software can determine whether an error occurs using the frame check sequence 16 (FCS 16), and the development software data uses the frame check sequence 32 (FCS 32). It is possible to determine whether an error occurs.
물론, 상기와 반대로 개발용 소프트웨어는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하여 에러 발생 여부를 판단할 수 있고, 상용 소프트웨어 데이터는 프레임 체크열 32(FCS 32, Frame Check Sequence 32)를 사용하여 에러 발생 여부를 판단할 수 있음은 물론이다.Of course, in contrast to the above, the development software may determine whether an error occurs using the frame check sequence 16 (FCS 16), and the commercial software data may use the frame check sequence 32 (FCS 32, Frame Check Sequence 32). ) Can be used to determine whether an error has occurred.
본 발명의 일 실시예에서는, 인증 속도를 높이기 위하여 상용 소프트웨어인 경우는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하는 것을 기준으로 설명하기로 한다.In an embodiment of the present invention, in order to increase the authentication speed, the case of commercial software will be described based on the use of a frame check sequence 16 (FCS 16).
단계 410의 판단 결과, 상기 소프트웨어가 개발용 소프트웨어인 경우에는 단계 415에서 프레임 체크열 32(FCS 32, Frame Check Sequence 32)를 생성한다.As a result of the determination in step 410, if the software is development software, a frame check sequence 32 (FCS 32) is generated in step 415.
상기 프레임 체크열 32(FCS 32, Frame Check Sequence 32)의 생성 방법은 다음과 같다.A method of generating the frame check sequence 32 (FCS 32) is as follows.
상기 상용 소프트웨어 데이터의 크기가 n 비트라고 가정할 때, 이를 16 비트만큼 자리를 올리고, 미리 설정된 k 비트의 키 값으로 나누면 r 비트의 나머지가 남게 된다.When the size of the commercial software data is assumed to be n bits, it is increased by 16 bits and divided by a predetermined key value of k bits, so that the remainder of the r bits remains.
상기 나머지 r비트가 상기 프레임 체크열 32(FCS 32, Frame Check Sequence 32)이다.The remaining r bits are the frame check sequence 32 (FCS 32).
상술한 바와 갈이, 상기 k가 32 비트이며, 0x04c11db7로 미리 설정할 수 있다.As described above, k is 32 bits and can be set to 0x04c11db7 in advance.
그리고 단계 420에서 오류 코드가 프레임 체크열 32(FCS 32, Frame Check Sequence 32)라는 정보를 포함한 헤더 및 보안 레벨을 생성한다.In operation 420, an error code generates a header and a security level including information that the frame check sequence 32 (FCS 32) is used.
단계 410의 판단 결과, 상기 소프트웨어 데이터가 상용 소프트웨어 데이터인 경우에는 단계 425에서 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 생성한다.As a result of the determination in step 410, when the software data is commercial software data, a frame check sequence 16 (FCS 16) is generated in step 425.
상용 소프트웨어 데이터는 인증 속도를 높이기 위하여, 프레임 체크열 32(FCS 32, Frame Check Sequence 32)보다는 프레임 체크열 16(FCS 16, Frame Check Sequence 16)을 사용하는 것이 바람직하다.In order to speed up the authentication of commercial software data, it is preferable to use frame check sequence 16 (FCS 16) rather than frame check sequence 32 (FCS 32).
상기 상용 소프트웨어 데이터의 크기가 n 비트라고 가정할 때, 이를 16 비트만큼 자리를 올리고, 미리 설정된 k 비트의 키 값으로 나누면 r 비트의 나머지가 남게 된다.When the size of the commercial software data is assumed to be n bits, it is increased by 16 bits and divided by a predetermined key value of k bits, so that the remainder of the r bits remains.
상기 나머지 r비트가 상기 프레임 체크열 16(FCS 16, Frame Check Sequence 16)이다.The remaining r bits are the frame check sequence 16 (FCS 16).
상기 k 비트는 16비트이며, 0x8005로 미리 설정할 수 있다.The k bits are 16 bits and can be preset to 0x8005.
이하, 단계 425 및 단계 430의 과정은 단계 415 및 단계 420과 유사하므로 생략하기로 한다.Hereinafter, the processes of steps 425 and 430 are similar to steps 415 and 420 and will be omitted.
단계 435에서 상기 생성한 헤더, 소프트웨어 데이터, 보안 레벨 정보, 오류 코드를 포함한 다운로드 파일을 생성한다. 그리고, 단계 440에서 생성된 다운로드 파일을 모바일 단말기(130)로 전송한다.In step 435, a download file including the generated header, software data, security level information, and an error code is generated. Then, the download file generated in step 440 is transmitted to the mobile terminal 130.
도 5는 본 발명의 바람직한 일 실시예에 따른 프로그램의 저장 과정을 나타낸 순서도이다.5 is a flowchart illustrating a process of storing a program according to an exemplary embodiment of the present invention.
본 발명에 따르면, 모바일 단말기(130)는 본 발명에 따른 소프트웨어를 상기 모바일 단말기(130)에 저장할 때, 상기 소프트웨어에 상응하는 인증키를 생성할 수 있다.According to the present invention, when the mobile terminal 130 stores the software according to the present invention in the mobile terminal 130, the mobile terminal 130 may generate an authentication key corresponding to the software.
이 후, 상기 인증키를 이용하여 상기 소프트웨어의 실행이 제어된다.Thereafter, execution of the software is controlled using the authentication key.
본 발명에 의할 때, 모바일 단말기내에 저장된 소프트웨어가 타 모바일 단말기로의 복사가 이루어지는 경우, 상기 인증키에 의해 상기 소프트웨어의 실행이 허용되지 아니한다.According to the present invention, when the software stored in the mobile terminal is copied to another mobile terminal, execution of the software is not allowed by the authentication key.
즉, 상기 소프트웨어 데이터에 대한 오류 코드와 장치 일련 번호(ESN, Electronic Serial Number)에 의하여 암호화되어 있으므로, 상기 장치 일련 번호(ESN, Electronic Serial Number)를 가진 모바일 단말기가 아닌 단말기에서는 상기 소프트웨어를 실행시킬 수 없다.That is, since the error code and the device serial number (ESN, Electronic Serial Number) for the software data are encrypted, the terminal may not execute the software in a terminal other than the mobile terminal having the device serial number (ESN, Electronic Serial Number). Can't.
이하, 도 5를 참조하여 인증키 생성 과정을 포함한 프로그램 저장 과정을 설명하기로 한다.Hereinafter, a program storing process including an authentication key generation process will be described with reference to FIG. 5.
단계 500에서 모바일 단말기(130)는 상기 다운로드 파일에서 헤더를 추출한다.In step 500, the mobile terminal 130 extracts a header from the download file.
상술한 바와 같이 다운로드 파일은 헤더, 소프트웨어 데이터 및 프레임 체크열(FCS, Frame Check Sequence)을 포함하며, 보안 레벨 정보를 더 포함할 수 있다.As described above, the download file includes a header, software data, and a frame check sequence (FCS), and may further include security level information.
상기 헤더에는 오류 코드에 대한 정보가 포함되어 있다. 즉, 상기 소프트웨어 데이터에 대한 오류 코드, 즉 프레임 체크열(FCS, Frame Check Sequence)이 프레임 체크열(FCS, Frame Check Sequence)16인지 아니면, 프레임 체크열(FCS, Frame Check Sequence)32인지 여부에 대한 정보가 포함되어 있다.The header contains information about the error code. That is, whether the error code for the software data, that is, the frame check sequence (FCS) or the frame check sequence (FCS) or the frame check sequence (FCS) 32 is checked. Contains information about
단계 505에서 모바일 단말기(130)는 상기 헤더에 포함된 오류 코드 정보를 이용하여 프레임 체크열(FCS, Frame Check Sequence) 종류를 판별한다.In step 505, the mobile terminal 130 determines the type of frame check sequence (FCS) using the error code information included in the header.
그리고, 단계 510에서 모바일 단말기(130)는 상기 다운로드 파일에서 프레임 체크열(FCS, Frame Check Sequence) 및 보안 레벨 정보를 추출한다.In operation 510, the mobile terminal 130 extracts a frame check sequence (FCS) and security level information from the download file.
이후, 단계 515에서 모바일 단말기(130)는 상기 다운로드 파일에서 추출한 보안 레벨 정보를 설치 정보 파일(INF, Information)에서 추출한 보안레벨과 비교하여 보안 레벨 정보에 대한 에러 발생 여부를 판단한다.Thereafter, in step 515, the mobile terminal 130 compares the security level information extracted from the download file with the security level extracted from the installation information file (INF, Information) to determine whether an error with respect to the security level information occurs.
본 발명에 의할 때, 상기 다운로드 서버(100)로부터 다운로드 파일을 수신하는 경우, 상기 다운로드 파일에 상응하는 설치 정보 파일(INF, Information)도 수신하는 것이 바람직하다.According to the present invention, when receiving a download file from the download server 100, it is preferable to also receive the installation information file (INF, Information) corresponding to the download file.
상기 설치 정보 파일(INF, Information)에는 다운로드 파일에 포함된 소프트웨어 데이터가 모바일 단말기(130)에 설치될 때 필요한 설치 정보를 포함하고 있을 뿐 아니라, 보안 레벨 정보도 포함되는 것이 바람직하다.The installation information file INF may include not only the installation information required when the software data included in the download file is installed in the mobile terminal 130, but also security level information.
즉, 모바일 단말기(130)는 설치 정보 파일(INF, Information)을 수신한 후, 상기 설치 정보 파일(INF, Information)에 포함된 보안 레벨 정보를 추출하고, 상기 보안 레벨 정보와 다운로드 파일에서 추출한 보안 레벨 정보와 비교한다.That is, after receiving the installation information file (INF, Information), the mobile terminal 130 extracts security level information included in the installation information file (INF, Information), and extracts security from the security level information and the download file. Compare with level information.
비교 결과, 설치 정보 파일(INF, Information)에 포함된 보안 레벨 정보와 다운로드 파일에서 추출한 보안 레벨 정보가 동일하지 않다면, 상기 저장 작업은 중단된다.As a result of the comparison, if the security level information included in the installation information file INF and the security level information extracted from the download file are not the same, the storing operation is stopped.
그리고 비교 결과, 설치 정보 파일(INF, Information)에 포함된 보안 레벨 정보와 다운로드 파일에서 추출한 보안 레벨 정보가 동일하면, 단계 520에서 모바일 단말기(130)는 소프트웨어 데이터에 대하여 프레임 체크열(FCS, Frame Check Sequence)을 산출한다.As a result of the comparison, if the security level information included in the installation information file (INF, Information) and the security level information extracted from the download file are the same, the mobile terminal 130 checks the frame check sequence (FCS, Frame) for the software data in step 520. Check Sequence).
본 발명에 의할 때, 헤더 정보에서 추출한 오류 코드 정보에 따라 오류 코드가 프레임 체크열(FCS, Frame Check Sequence)16인 경우에는 시알시16(CRC16) 방식에 의하여 프레임 체크열(FCS, Frame Check Sequence) 16을 산출한다.According to the present invention, if the error code is a frame check sequence (FCS, Frame Check Sequence) 16 according to the error code information extracted from the header information, the frame check sequence (FCS, Frame Check) is performed by CRC16. Sequence) 16 is calculated.
그리고, 오류 코드가 프레임 체크열(FCS, Frame Check Sequence)32인 경우에는 시알시32(CRC32) 방식에 의하여 프레임 체크열(FCS, Frame Check Sequence)32를 산출한다.When the error code is a frame check sequence (FCS) 32, a frame check sequence (FCS) 32 is calculated by the CRC32 method.
단계 525에서 모바일 단말기(130)는 다운로드 파일에서 추출한 오류 코드, 즉 프레임 체크열(FCS, Frame Check Sequence)과 단계 520에서 산출한 프레임 체크열(FCS, Frame Check Sequence)을 비교한다.In operation 525, the mobile terminal 130 compares the error code extracted from the download file, that is, the frame check sequence (FCS) with the frame check sequence (FCS) calculated in operation 520.
비교 결과, 단계 520에서 산출한 프레임 체크열(FCS, Frame Check Sequence)과 다운로드 파일에서 추출한 프레임 체크열(FCS, Frame Check Sequence)이 동일하지 않다면, 상기 저장 작업은 중단된다.As a result of the comparison, if the frame check sequence (FCS, Frame Check Sequence) calculated in step 520 and the frame check sequence (FCS, Frame Check Sequence) extracted from the download file are not the same, the storing operation is stopped.
그리고 비교 결과, 단계 520에서 산출한 프레임 체크열(FCS, Frame Check Sequence)과 다운로드 파일에서 추출한 프레임 체크열(FCS, Frame Check Sequence) 이 동일하면, 단계 520으로 이동한다.As a result of the comparison, if the frame check sequence (FCS, Frame Check Sequence) calculated in step 520 and the frame check sequence (FCS, Frame Check Sequence) extracted from the download file are the same, the flow advances to step 520.
단계 530에서 모바일 단말기(130)는 다운로드에서 추출한 소프트웨어 데이터를 상기 모바일 단말기(130)에 저장할 수 있다.In operation 530, the mobile terminal 130 may store the software data extracted from the download in the mobile terminal 130.
본 발명에 의할 때, 상기 소프트웨어 데이터는 압축 파일 형태로 다운로드 파일에 포함될 수 있다. 상기 압축 파일 형태의 상기 소프트웨어 데이터는 압축 파일 형태로 모바일 단말기(130)에 저장됨으로써, 모바일 단말기(130)내의 메모리를 효율적으로 사용할 수 있다.According to the present invention, the software data may be included in a download file in the form of a compressed file. The software data in the form of the compressed file is stored in the mobile terminal 130 in the form of a compressed file, thereby efficiently using the memory in the mobile terminal 130.
즉, 상기 소프트웨어는 압축 파일 형태로 존재하다가, 상기 모바일 단말기(130)의 실행시에 상기 설치 정보 파일(INF, Information)을 이용하여 모바일 단말기(130)에서 실행되고, 상기 프로그램이 종료되면 다시 압축 파일 형태로 존재하는 것이 바람직하다.That is, the software exists in the form of a compressed file, and is executed in the mobile terminal 130 by using the installation information file (INF, Information) when the mobile terminal 130 is executed, and is compressed again when the program ends. It is preferably present in the form of a file.
즉, 일반 컴퓨터에서와 프로그램과 같이 별도의 저장 단계와 실행 단계로 구분되지 않고, 상기 프로그램의 실행시에 상기 설치 정보 파일(INF, Information)을 이용하는 것이 바람직하다.That is, it is preferable to use the installation information file (INF, Information) at the time of execution of the program, without being divided into separate storage steps and execution steps as in a general computer and a program.
단계 535에서 모바일 단말기(130)는 상기 오류 코드와 모바일 단말기(130)내의 메모리에 저장된 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여 인증키를 생성한다.In operation 535, the mobile terminal 130 generates an authentication key by combining the error code and the device serial number (ESN) stored in a memory in the mobile terminal 130.
상기 조합은 여러 가지 방식으로 수행될 수 있음은 당연하며, 본 발명의 일 실시예에 의할 때, 배타적 논리합에 의해 수행될 수 있다.Naturally, the combination may be performed in various ways, and according to one embodiment of the present invention, may be performed by an exclusive OR.
배타적 논리합(XOR, exclusive or)은 불 연산자(Boolean operator)의 하나로서, 2개의 연산 대상 중 하나가 참이고 다른 하나가 거짓일 때에만 연산의 결과가 참이 된다.The exclusive OR (XOR, exclusive or) is one of the Boolean operators. The result of the operation is true only when one of the two operations is true and the other is false.
그리고, 단계 540에서 상기 배타적 논리합의 결과, 즉 인증키는 모바일 단말기(130)내의 메모리에 저장된다.In operation 540, the result of the exclusive OR, that is, the authentication key, is stored in a memory in the mobile terminal 130.
본 발명에 의할 때, 메모리에 저장된 상기 인증키는 프로그램 관리자에 의해 수행될 수 있다.According to the present invention, the authentication key stored in the memory can be performed by the program manager.
일반적으로 프로그램 관리자는 모바일 단말기(130)에 탑재된 플랫폼 위에서 동작하며, 응용 프로그램을 관리하는 프로그램으로, 현재 거의 모든 모바일 단말기(130)에 동작하고 있다.In general, the program manager operates on a platform mounted on the mobile terminal 130 and manages an application program. Currently, the program manager operates on almost all mobile terminals 130.
상술한 단계 500 내지 단계 540의 단계를 경유하여, 상기 소프트웨어 데이터는 모바일 단말기(130)에 저장된다.The software data is stored in the mobile terminal 130 via the steps 500 to 540 described above.
도 6은 본 발명의 바람직한 일 실시예에 따른 모바일 단말기에서의 소프트웨어 실행 과정을 나타낸 도면이다.6 is a view showing a software execution process in a mobile terminal according to an embodiment of the present invention.
본 발명에 의할 때, 상기 소프트웨어 데이터가 무단 복사되더라도 도 5의 저장 단계에서 생성된 인증키를 이용하여 상기 소프트웨어 데이터의 실행을 제어할 수 있다.According to the present invention, even if the software data is copied without permission, the execution of the software data can be controlled using the authentication key generated in the storage step of FIG.
이하, 도 6을 참조하여 인증키를 이용한 소프트웨어의 실행 제어 방법을 설명하기로 한다.Hereinafter, a method of controlling execution of software using an authentication key will be described with reference to FIG. 6.
단계 600에서 모바일 단말기(130)는 상기 모바일 단말기(130)에 결합된 입력부를 통하여 소프트웨어 데이터의 실행 명령을 입력받는다.In operation 600, the mobile terminal 130 receives an execution command of software data through an input unit coupled to the mobile terminal 130.
단계 605에서 모바일 단말기(130)는 상기 소프트웨어 데이터에 대한 오류 코드, 즉 프레임 체크열(FCS, Frame Check Sequence)을 산출한다.In operation 605, the mobile terminal 130 calculates an error code for the software data, that is, a frame check sequence (FCS).
본 발명에 의할 때, 상기 소프트웨어 데이터는 압축 파일 형태도 모바일 단말기(130)내의 메모리에 저장되어 있다.According to the present invention, the software data is stored in the memory of the mobile terminal 130 in the form of a compressed file.
그리고 단계 610에서 모바일 단말기(130)는 상기 모바일 단말기(130)에 결합된 메모리에서 장치 일련 번호(ESN, Electronic Serial Number)를 추출한다.In operation 610, the mobile terminal 130 extracts a device serial number (ESN) from a memory coupled to the mobile terminal 130.
단계 615에서 모바일 단말기(130)는 상기 오류 코드와 모바일 단말기(130)내의 메모리에 저장된 장치 일련 번호(ESN, Electronic Serial Number)를 조합하여인증키를 생성한다.In operation 615, the mobile terminal 130 generates an authentication key by combining the error code and the device serial number (ESN) stored in the memory of the mobile terminal 130.
상기 조합은 여러 가지 방식으로 수행될 수 있음은 당연하며, 본 발명의 일 실시예에 의할 때, 배타적 논리합에 의해 수행될 수 있다. 즉, 도 5의 단계 535에서와 동일한 조합을 이용하여 인증키를 생성하는 것이 바람직하다.Naturally, the combination may be performed in various ways, and according to one embodiment of the present invention, may be performed by an exclusive OR. That is, it is preferable to generate the authentication key using the same combination as in step 535 of FIG.
단계 620에서 모바일 단말기(130)는 단계 615에서 생성한 인증키와 모바일 단말기(130) 내에 미리 저장된 인증키, 즉 도 5의 단계 540에서 모바일 단말기의 메모리에 저장된 인증키와 비교한다.In operation 620, the mobile terminal 130 compares the authentication key generated in operation 615 with the authentication key stored in the mobile terminal 130, that is, the authentication key stored in the memory of the mobile terminal in operation 540 of FIG. 5.
비교 결과, 말기는 단계 615에서 생성한 인증키와 모바일 단말기(130) 내에 미리 저장된 인증키, 즉 도 5의 단계 540에서 저장된 인증키가 동일하지 않다면, 상기 소프트웨어의 실행은 금지된다.As a result of the comparison, if the authentication key generated in step 615 and the authentication key previously stored in the mobile terminal 130, that is, the authentication key stored in step 540 of FIG. 5 are not the same, execution of the software is prohibited.
그리고 비교 결과, 말기는 단계 615에서 생성한 인증키와 모바일 단말기(130) 내에 미리 저장된 인증키, 즉 도 5의 단계 540에서 저장된 인증키가 동일하다면, 단계 625에서 모바일 단말기(130)는 상기 소프트웨어를 시행시킬 수 있다.As a result of comparison, if the authentication key generated in step 615 and the authentication key stored in the mobile terminal 130 in advance, that is, the authentication key stored in step 540 of FIG. Can be implemented.
상기 소프트웨어가 실행될 때, 설치 정보 파일(INF, Information)을 이용하여 실행될 수 있다.When the software is executed, it can be executed using the installation information file (INF, Information).
도 7a 및 도 7b는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 방법을 나타낸 순서도이다.7A and 7B are flowcharts illustrating a software authentication method according to an exemplary embodiment of the present invention.
개발자들에 의해 개발 중이거나 개발 완료된 모바일용 소프트웨어 데이터는다운로드 서버(100)에서 모바일 단말기(130)로 제공된다.Mobile software data being developed or completed by the developers is provided from the download server 100 to the mobile terminal 130.
상기와 같이 다운로드 서버(100)에 올려진 소프트웨어 데이터는 네트워크를 통하여 모바일 단말기(130)로 전송되거나, 시리얼 방식으로 전송된다.The software data uploaded to the download server 100 as described above is transmitted to the mobile terminal 130 through the network, or transmitted in a serial manner.
도 6은 인증된 모바일 단말기(130)에 전송된 소프트웨어 데이터의 무단 복사를 방지할 수 있는 방법을 나타낸 반면, 도 7a 내지 도 7c는 다운로드 서버(100)에서의 무단 복사를 방지할 수 있는 방법을 나타낸 도면이다.6 illustrates a method for preventing unauthorized copying of software data transmitted to an authenticated mobile terminal 130, while FIGS. 7A to 7C illustrate a method for preventing unauthorized copying in the download server 100. FIG. The figure shown.
본 발명에 의할 때, 사용자가 인증되지 않은 방법으로 프로그램을 사용하는 경우는 다음과 같다.According to the present invention, the case where the user uses the program in an unauthenticated manner is as follows.
즉, 사용자용 모바일 단말기(120)에서 네트워크 접속 방식을 통하여 개발용 소프트웨어 데이터를 다운받은 경우(도 7a 참조) 및 사용자용 모바일 단말기(120)에서 시리얼 접속 방식을 이용하여 소프트웨어 데이터를 다운받은 경우(도 7b 참조) 등이 있다.That is, when the development software data is downloaded from the user mobile terminal 120 through the network connection method (see FIG. 7A) and when the software data is downloaded from the user mobile terminal 120 using the serial connection method ( 7B).
도 7a는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 인증 방법을 나타낸 순서도이다.7A is a flowchart illustrating a software authentication method according to an exemplary embodiment of the present invention.
본 발명에 의할 때, 개발 중인 소프트웨어도 상기 다운로드 서버(100)에 업로드 및 다운로드되어 상기 소프트웨어에 대한 테스트 과정을 거친다.According to the present invention, the software under development is also uploaded and downloaded to the download server 100 and undergoes a test process for the software.
이러한 경우, 개발 중인 소프트웨어 데이터가 일반 사용자용 모바일 단말기(120)에 무단 복사되는 것을 방지함으로써, 개발 중인 소프트웨어 데이터에 대한 정보가 외부로 유출되는 것을 방지할 수 있다.In this case, by preventing unauthorized copying of the software data under development to the mobile terminal 120 for general users, it is possible to prevent information about the software data under development from leaking to the outside.
이하, 도 7a를 참조하여 본 발명의 일 실시예에 따른 소프트웨어 인증 방법을 설명하기로 한다.Hereinafter, a software authentication method according to an embodiment of the present invention will be described with reference to FIG. 7A.
단계 700에서 다운로드 서버(100)는 상기 다운로드 서버(100)에 접속한 모바일 단말기(130)로부터 다운로드 요청 신호를 수신한다.In operation 700, the download server 100 receives a download request signal from the mobile terminal 130 connected to the download server 100.
단계 705에서 다운로드 서버(100)는 상기 모바일 단말기(130)가 개발자용 모바일 단말기(110)인지 여부를 판단한다.In operation 705, the download server 100 determines whether the mobile terminal 130 is a developer mobile terminal 110.
본 발명에 따른 개발자용 모바일 단말기(110)의 판단 방법의 일 실시예에는 다음과 같다.An embodiment of the determination method of the developer mobile terminal 110 according to the present invention is as follows.
상기 다운로드 서버(100)에 접속시 아이디와 패스워드를 이용하여 인증 절차를 경유하는 경우는, 개발자에 대한 정보를 미리 상기 다운로드 서버에 저장함으로써, 상기 개발자만이 개발용 소프트웨어를 다운받을 수 있도록 허용할 수 있다.When accessing the download server 100 via an ID and password through an authentication process, information about a developer may be stored in the download server in advance so that only the developer can download the development software. Can be.
즉, 식별자로서 개발자의 아이디와 패스워드를 이용하여 판단할 수 있다.That is, it can be determined using the ID and password of the developer as an identifier.
본 발명에 따른 개발자용 모바일 단말기(110)의 판단 방법의 다른 실시예에서는, 식별자로서 개발자용 모발일 단말기(110)의 장치 일련 번호(ESN, Electronic Serial Number)를 이용할 수 있다.In another embodiment of the method for determining the developer mobile terminal 110 according to the present invention, an electronic device serial number (ESN) of the developer mobile terminal 110 may be used as an identifier.
이러한 경우, 개발자가 변경되더라도 동일한 개발자용 모바일 단말기(110)라면 다운로드 서버(100)의 데이터베이스의 갱신없이 소프트웨어를 다운로드받을 수 있다.In this case, even if the developer changes, the same developer mobile terminal 110 may download the software without updating the database of the download server 100.
단계 710에서의 판단 결과, 다운로드 서버(100)는 개발자용 모바일단말기(110)가 아닌 경우에는 다운로드 서버(100)에서 접속을 종료하거나 다운로드 요청을 거부하는 메시지를 송신할 수 있다.As a result of the determination in step 710, when the download server 100 is not the developer mobile terminal 110, the download server 100 may transmit a message for terminating the access or rejecting the download request.
그리고 단계 710의 판단 결과, 개발자용 모바일 단말기(110)인 경우에는 다운로드 서버(100)는 단계 710에서 해당 소프트웨어 데이터를 추출하고, 단계 715에서 상기 추출한 소프트웨어 데이터를 포함한 다운로드 파일을 생성한다. 이후, 단계 720에서 다운로드 서버(100)는 생성된 다운로드 파일을 모바일 단말기(130)로 전송한다.As a result of the determination in step 710, in the case of the developer mobile terminal 110, the download server 100 extracts the corresponding software data in step 710 and generates a download file including the extracted software data in step 715. In operation 720, the download server 100 transmits the generated download file to the mobile terminal 130.
상기 단계 710 내지 단계 720의 과정은 도 4의 단계 415 내지 440에서 상술하였으므로 생략하기로 한다.Since the processes of steps 710 to 720 have been described above with reference to steps 415 to 440 of FIG. 4, it will be omitted.
도 7b는 본 발명의 바람직한 일 실시예에 따른 소프트웨어 데이터 복사 방지 방법을 나타낸 순서도이다.7B is a flowchart illustrating a software data copy protection method according to an exemplary embodiment of the present invention.
본 발명에 의할 때, 개발자용 모바일 단말기(110)는 이동 통신망을 이용하여 다운로드 파일을 수신하는 것보다는 로컬 컴퓨터(140)를 통하여 다운로드 서버(100)에서 시리얼 통신을 통하여 다운받는 것이 효율적이다.According to the present invention, it is more efficient for the developer mobile terminal 110 to download through serial communication from the download server 100 through the local computer 140 than to receive the download file using the mobile communication network.
상기 소프트웨어 데이터 개발 과정에서 빈번한 소프트웨어 데이터의 다운로드가 발생하므로, 에러 발생 가능성이 낮고 수신 속도가 뛰어난 시리얼 통신 방식을 이용함으로써 개발 과정에서 효율성을 높일 수 있다.Since frequent software data downloads occur in the software data development process, the serial communication method having a low probability of error occurrence and excellent reception speed can be used to increase efficiency in the development process.
따라서, 상기 시리얼 통신을 이용한 다운로드 파일 수신은 개발자용 모바일 단말기(110)에 한정함으로써, 개발 과정 중에 개발중인 소프트웨어 데이터에 대한보안의 실효성을 높일 수 있다.Therefore, the download file reception using the serial communication is limited to the developer mobile terminal 110, thereby increasing the effectiveness of security for the software data being developed during the development process.
이하, 도 7b를 참조하여 시리얼 통신을 통한 다운로드 과정을 설명하기로 한다.Hereinafter, the downloading process through serial communication will be described with reference to FIG. 7B.
현재, 모바일 단말기(130)와 로컬 컴퓨터(140)는 케이블을 통하여 연결된 상태이며, 상기 로컬 컴퓨터(140)는 다운로드 서버(100)에 접속해 있다고 전제하고 설명하기로 한다.Currently, the mobile terminal 130 and the local computer 140 are connected via a cable, and the local computer 140 will be described on the assumption that the connection is to the download server 100.
단계 750에서 로컬 컴퓨터(140)는 모바일 단말기(130)에서 장치 일련 번호(ESN, Electronic Serial Number)를 추출한다.In operation 750, the local computer 140 extracts an electronic serial number (ESN) from the mobile terminal 130.
그리고, 단계 750에서 로컬 컴퓨터(140)는 상기 장치 일련 번호(ESN, Electronic Serial Number)를 이용하여 상기 모바일 단말기(130)가 개발자용 모바일 단말기(110)인지 여부를 판단한다.In operation 750, the local computer 140 determines whether the mobile terminal 130 is the developer mobile terminal 110 using the device serial number (ESN).
여기서, 상기 개발자용 모바일 단말기(110)의 장치 일련 번호(ESN, Electronic Serial Number)는 미리 상기 로컬 컴퓨터(140)내의 저장 장치에 저장되어 있다.Here, the device serial number (ESN, Electronic Serial Number) of the developer mobile terminal 110 is stored in advance in the storage device in the local computer 140.
단계 755에서의 판단 결과, 개발자용 모바일 단말기(110)가 아닌 경우 로컬 컴퓨터(140)는 다운로드 요청을 거부하는 메시지를 상기 로컬 컴퓨터(140)의 디스플레이 장치에서 디스플레이할 수 있다.As a result of the determination in step 755, if it is not the developer mobile terminal 110, the local computer 140 may display a message for rejecting the download request on the display device of the local computer 140.
그리고 단계 755의 판단 결과, 개발자용 모바일 단말기(110)인 경우 로컬 컴퓨터(140)는 단계 760에서 다운로드 서버(100)에 다운로드 요청 신호를 송신한다.As a result of the determination of step 755, in the case of the developer mobile terminal 110, the local computer 140 transmits a download request signal to the download server 100 in step 760.
단계 765에서 다운로드 서버(100)는 해당 소프트웨어 데이터를 추출하고, 단계 770에서 상기 추출한 소프트웨어 데이터를 포함한 다운로드 파일을 생성한다. 이후, 단계 785에서 생성된 다운로드 파일을 로컬 컴퓨터(140)로 전송한다.In operation 765, the download server 100 extracts the corresponding software data, and in operation 770, the download server 100 generates a download file including the extracted software data. Thereafter, the download file generated in step 785 is transmitted to the local computer 140.
상기 단계 765 내지 단계 770의 과정은 도 4의 단계 415 내지 440에서 상술하였으므로 생략하기로 한다.Since the processes of steps 765 to 770 have been described above with reference to steps 415 to 440 of FIG. 4, a description thereof will be omitted.
단계 790에서 로컬 컴퓨터(140)는 수신한 다운로드 파일을 상기 모바일 단말기(130)로 송신한다.In operation 790, the local computer 140 transmits the received download file to the mobile terminal 130.
상술한 단계를 거쳐, 개발자용 모바일 단말기(110)에만 개발용 소프트웨어 데이터를 송신함으로써, 무단 복사를 방지할 수 있다.Through the above-described steps, by transmitting the development software data only to the developer mobile terminal 110, unauthorized copying can be prevented.
본 발명은 무선 모바일 단말기용 소프트웨어를 인증함으로써 상기 무선 모바일 단말기용 소프트웨어의 무단 복사 및 실행을 방지할 수 있는 효과가 있다.The present invention has the effect of preventing unauthorized copying and execution of the software for the wireless mobile terminal by authenticating the software for the wireless mobile terminal.
또한, 본 발명은 무선 모바일 단말기용 소프트웨어의 무단 복사를 방지함으로써, 상기 무선 모바일 단말기용 소프트웨어를 개발한 개발자 또는 개발사의 저작권을 실질적으로 보호할 수 있는 효과도 있다.In addition, the present invention also prevents unauthorized copying of the software for the wireless mobile terminal, thereby effectively protecting the copyright of the developer or developer who developed the software for the wireless mobile terminal.
또한, 본 발명의 다른 목적은 모바일 단말기의 특성에 적합한 모바일 단말기용 소프트웨어를 인증할 수 있는 효과도 있다.In addition, another object of the present invention is to effect the authentication of the software for the mobile terminal suitable for the characteristics of the mobile terminal.
또한, 본 발명의 또 다른 목적은 개발 중인 모바일 단말기용 소프트웨어의 복사를 방지할 수 있는 효과도 있다.In addition, another object of the present invention is to prevent the copy of the software for the mobile terminal under development.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the present invention as set forth in the claims below It will be appreciated that modifications and variations can be made.

Claims (20)

  1. 모바일 단말기에서 소프트웨어를 인증하는 방법에 있어서,In the method of authenticating software in a mobile terminal,
    (a)상기 모바일 단말기에 설치된 소프트웨어에 대한 실행 명령을 상기 모바일 단말기에 포함된 입력부로부터 입력하는 단계;(a) inputting an execution command for software installed in the mobile terminal from an input unit included in the mobile terminal;
    (b)상기 소프트웨어에 대하여 제1 오류 코드를 생성하는 단계;(b) generating a first error code for the software;
    (c)상기 모바일 단말기 식별자를 추출하는 단계;(c) extracting the mobile terminal identifier;
    (d)상기 모바일 단말기 식별자와 상기 제1 오류 코드를 조합하여 제1 인증키를 생성하는 단계;(d) generating a first authentication key by combining the mobile terminal identifier and the first error code;
    (e)상기 제1 인증키가 상기 모바일 단말기내에 미리 저장된 제2 인증키와 일치하면, 상기 소프트웨어를 실행하는 단계(e) executing the software if the first authentication key matches a second authentication key previously stored in the mobile terminal;
    를 포함하는 것을 특징으로 하는 소프트웨어 인증 방법.Software authentication method comprising a.
  2. 제1항에 있어서,The method of claim 1,
    상기 모바일 단말기에 결합된 다운로드 서버로부터 다운로드 파일을 수신하는 단계-여기서, 상기 다운로드 파일은 소프트웨어 데이터 및 제2 오류 코드를 포함함-;Receiving a download file from a download server coupled to the mobile terminal, wherein the download file includes software data and a second error code;
    상기 모바일 단말기에서 상기 소프트웨어 데이터에 대하여 제3 오류 코드를 생성하는 단계;Generating a third error code for the software data at the mobile terminal;
    상기 제2 오류 코드가 상기 제3 오류 코드에 일치하면, 상기 소프트웨어 데이터를 상기 모바일 단말기에 저장하는 단계;If the second error code matches the third error code, storing the software data on the mobile terminal;
    상기 모바일 단말기에서 상기 모바일 단말기 식별자를 추출하는 단계; 및Extracting the mobile terminal identifier from the mobile terminal; And
    상기 모바일 단말기에서 상기 모바일 단말기 식별자와 상기 제2 오류 코드를 조합하여 상기 제2 인증키를 생성하는 단계;Generating the second authentication key by combining the mobile terminal identifier and the second error code in the mobile terminal;
    가 더 포함되는 것을 특징으로 하는 소프트웨어 인증 방법.Software authentication method characterized in that it further comprises.
  3. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2,
    상기 모바일 단말기 식별자는 장치 일련 번호인 것을 특징으로 하는 소프트웨어 인증 방법.And wherein said mobile terminal identifier is a device serial number.
  4. 제1 또는 제2항에 있어서,The method according to claim 1 or 2,
    상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는The first error code, the second error code and the third error code
    순환 잉여 검사 방식에 의해 생성된 프레임 체크열인 것을 특징으로 하는 소프트웨어 인증 방법.And a frame check string generated by the cyclic redundancy check method.
  5. 제4항에 있어서,The method of claim 4, wherein
    상기 소프트웨어가 개발용 소프트웨어이면,If the software is development software,
    상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 프레임 체크열 32인 것을 특징으로 하는 소프트웨어 인증 방법.And the first error code, the second error code and the third error code are frame check string 32.
  6. 제4항에 있어서,The method of claim 4, wherein
    상기 소프트웨어가 상용 소프트웨어이면,If the software is commercial software,
    상기 제1 오류 코드, 상기 제2 오류 코드 및 상기 제3 오류 코드는 프레임 체크열16인 것을 특징으로 하는 소프트웨어 인증 방법.And the first error code, the second error code, and the third error code are frame check strings.
  7. 제2항에 있어서,The method of claim 2,
    상기 다운로드 파일은 상기 제1 오류 코드에 대한 정보를 포함하는 헤더를 더 포함하는 것을 특징으로 하는 소프트웨어 인증 방법.The download file further comprises a header including information on the first error code.
  8. 제2항에 있어서,The method of claim 2,
    상기 다운로드 파일은 보안 레벨 정보를 더 포함하는 것을 특징으로 하는 소프트웨어 인증 방법.The download file further comprises a security level information.
  9. 제8항에 있어서,The method of claim 8,
    상기 보안 레벨 정보는 제1 보안 레벨 정보 및 제2 보안 레벨 정보를 포함하며, 상기 다운로드 파일에서 상기 제1 보안 레벨 정보를 추출한 후, 상기 다운로드 서버로부터 제2 보안 레벨 정보를 포함하는 설치 정보 파일(INF)을 수신하고, 상기 제1 보안 레벨 정보 및 상기 제2 보안 레벨 정보를 비교한 후, 비교 결과, 상기 제1 보안 레벨 정보 및 상기 제2 보안 레벨 정보가 일치지 않으면, 상기 소프트웨어가 상기 모바일 단말기에 저장되지 않는 것을 특징으로 하는 소프트웨어 인증 방법.The security level information includes first security level information and second security level information, and after extracting the first security level information from the download file, the installation information file including second security level information from the download server ( INF), the first security level information and the second security level information are compared, and if the result of the comparison does not match the first security level information and the second security level information, the software causes the mobile Software authentication method, characterized in that not stored in the terminal.
  10. 모바일 단말기와 네트워크를 통하여 결합된 다운로드 서버에서 소프트웨어를 인증하는 방법에 있어서,In the method of authenticating software in a download server coupled via a mobile terminal and a network,
    (a)상기 모바일 단말기로부터 다운로드 요청 신호를 수신하는 단계-여기서, 상기 다운로드 요청 신호는 상기 모바일 단말기 식별자를 포함함;(a) receiving a download request signal from the mobile terminal, wherein the download request signal includes the mobile terminal identifier;
    (b)상기 모바일 단말기 식별자를 이용하여 상기 모바일 단말기를 식별하는 단계-여기서, 상기 모바일 단말기는 사용자용 모바일 단말기 및 개발자용 모바일단말기를 포함함-;(b) identifying the mobile terminal using the mobile terminal identifier, wherein the mobile terminal comprises a user mobile terminal and a developer mobile terminal;
    (c)상기 소프트웨어가 상기 모바일 단말기에게 다운로드가 허용된 소프트웨어인지 여부를 판단하는 단계;(c) determining whether the software is software that is allowed to be downloaded to the mobile terminal;
    (d)상기 다운로드 요청 신호에 상응하는 소프트웨어 데이터를 추출하는 단계-여기서, 상기 소프트웨어는 상용 소프트웨어 및 개발용 소프트웨어를 포함함-;(d) extracting software data corresponding to the download request signal, wherein the software includes commercial software and development software;
    (e)상기 소프트웨어 데이터에 대한 오류 코드를 상기 모바일 단말기에 상응하여 산출하는 단계;(e) calculating an error code for the software data corresponding to the mobile terminal;
    (f)상기 소프트웨어 데이터 및 상기 오류 코드를 포함한 다운로드 파일을 생성하는 단계; 및(f) generating a download file including the software data and the error code; And
    (g)상기 다운로드 파일을 상기 모바일 단말기로 송신하는 단계;(g) transmitting the download file to the mobile terminal;
    를 포함하되,Including,
    상기 모바일 단말기에서 상기 오류 코드 및 상기 모바일 단말기 식별자를 조합하여 생성된 인증키를 이용하여 상기 소프트웨어의 실행을 제어하는 것을 특징으로 하는 소프트웨어 인증 방법.And executing the software using the authentication key generated by combining the error code and the mobile terminal identifier in the mobile terminal.
  11. 제10항에 있어서,The method of claim 10,
    상기 모바일 단말기 식별자는The mobile terminal identifier is
    장치 일련 번호인 것을 특징으로 하는 소프트웨어 인증 방법.Software authentication method, characterized in that the device serial number.
  12. 제10항에 있어서,The method of claim 10,
    상기 오류 코드는The error code above
    순환 잉여 검사 방식에 의한 프레임 체크열인 것을 특징으로 하는 소프트웨어 인증 방법.A software check method comprising a frame check sequence by a cyclic redundancy check method.
  13. 제10항에 있어서,The method of claim 10,
    상기 (c)단계에서의 판단 방법은The determination method in the step (c)
    상기 소프트웨어가 개발용 소프트웨어이면, 개발자용 모바일 단말기에만 다운로드가 허용되는 것을 특징으로 하는 소프트웨어 인증 방법.If the software is development software, the software authentication method, characterized in that the download is allowed only to the developer mobile terminal.
  14. 제10항에 있어서,The method of claim 10,
    상기 (e)단계에서In step (e)
    상기 소프트웨어가 상용 소프트웨어이면,If the software is commercial software,
    상기 오류 코드는 프레임 체크열16인 것을 특징으로 하는 소프트웨어 인증 방법.The error code is a frame check sequence 16. The software authentication method.
  15. 제10항에 있어서,The method of claim 10,
    상기 (e)단계에서In step (e)
    상기 소프트웨어가 개발용 소프트웨어이면,If the software is development software,
    상기 오류 코드는 프레임 체크열 32인 것을 특징으로 하는 소프트웨어 인증 방법.The error code is a frame check sequence 32, characterized in that the software authentication method.
  16. 제10항에 있어서,The method of claim 10,
    상기 소프트웨어에 상응하는 보안 레벨 정보를 추출하는 단계;Extracting security level information corresponding to the software;
    상기 보안 레벨 정보를 더 포함한 다운로드 파일을 생성하는 단계;Generating a download file further including the security level information;
    상기 보안 레벨 정보를 포함한 설치 정보 파일을 생성하는 단계; 및Generating an installation information file including the security level information; And
    상기 설치 정보 파일을 상기 모바일 단말기로 송신하는 단계;Transmitting the installation information file to the mobile terminal;
    가 더 포함되며,More,
    상기 모바일 단말기에서 상기 설치 정보 파일에 포함된 보안 레벨 정보와 상기 다운로드 파일에 포함된 설치 정보 파일을 비교하여 설치 정보 파일의 오류를 판단하는 것을 특징으로 하는 소프트웨어 인증 방법.And comparing the security level information included in the installation information file with the installation information file included in the download file in the mobile terminal to determine an error of the installation information file.
  17. 제16항에 있어서,The method of claim 16,
    상기 보안 레벨 정보는The security level information is
    상기 소프트웨어가 상기 모바일 단말기의 리소스를 사용할 수 있는 범위에 상응하여 설정되는 것을 특징으로 하는 소프트웨어 인증 방법.The software authentication method, characterized in that the software is set in accordance with the range that can use the resources of the mobile terminal.
  18. 제10항에 있어서,The method of claim 10,
    상기 (e)단계에서,In the step (e),
    상기 오류 코드에 대한 정보를 포함하는 헤더가 상기 다운로드 파일에 더 포함되는 것을 특징으로 하는 소프트웨어 인증 방법.And a header including information on the error code is further included in the download file.
  19. 제1항 내지 제9항 중 어느 한 항에 기재된 소프트웨어 인증 방법을 수행하기 위하여 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 기록 매체.A recording medium in which a program of instructions executable by a digital processing apparatus is tangibly embodied and readable by the digital processing apparatus for performing the software authentication method according to any one of claims 1 to 9.
  20. 프로그램이 저장되어 있는 메모리; 및A memory in which a program is stored; And
    상기 메모리에 결합되어 상기 프로그램을 실행하는 프로세서를 구비하되,A processor coupled to the memory to execute the program,
    상기 프로세서는 상기 프로그램에 의해, 제10항 내지 제18항 중 어느 한 항에 기재된 소프트웨어 인증 방법을 실행하는 소프트웨어 인증 시스템.The processor executes the software authentication method according to any one of claims 10 to 18, by the program.
KR10-2002-0023618A 2002-04-30 2002-04-30 Method and system for authenticating a software KR100453504B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0023618A KR100453504B1 (en) 2002-04-30 2002-04-30 Method and system for authenticating a software

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2002-0023618A KR100453504B1 (en) 2002-04-30 2002-04-30 Method and system for authenticating a software
AU2002368021A AU2002368021A1 (en) 2002-04-30 2002-07-31 Method and system for authenticating a software
PCT/KR2002/001447 WO2003107201A1 (en) 2002-04-30 2002-07-31 Method and system for authenticating a software
US10/971,597 US7707409B2 (en) 2002-04-30 2004-10-21 Method and system for authenticating software

Publications (2)

Publication Number Publication Date
KR20030085270A KR20030085270A (en) 2003-11-05
KR100453504B1 true KR100453504B1 (en) 2004-10-20

Family

ID=29728604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0023618A KR100453504B1 (en) 2002-04-30 2002-04-30 Method and system for authenticating a software

Country Status (3)

Country Link
KR (1) KR100453504B1 (en)
AU (1) AU2002368021A1 (en)
WO (1) WO2003107201A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US8156488B2 (en) 2004-10-20 2012-04-10 Nokia Corporation Terminal, method and computer program product for validating a software application
WO2006053304A2 (en) * 2004-11-12 2006-05-18 Pufco, Inc. Volatile device keys and applications thereof
JP5248328B2 (en) 2006-01-24 2013-07-31 ヴェラヨ インク Equipment security based on signal generators
US8270941B2 (en) * 2006-02-24 2012-09-18 Qualcomm Incorporated System and method for downloading user interface components to wireless devices
WO2008091963A2 (en) * 2007-01-23 2008-07-31 Ascenna Mobile, Inc. Automated authentication process for application clients
US8782396B2 (en) 2007-09-19 2014-07-15 Verayo, Inc. Authentication with physical unclonable functions
KR100926822B1 (en) * 2007-12-04 2009-11-12 (주)유디피 Method for providing protection means of software, and network SYSTEM performing the same
EP3436949A4 (en) * 2016-07-29 2020-03-25 Hewlett-Packard Development Company, L.P. Data recovery with authenticity

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2301744B (en) * 1995-06-02 2000-01-12 Dsc Communications Software download for a subscriber terminal of a wireless telecommunications system
JPH10327139A (en) * 1997-05-23 1998-12-08 Advance Co Ltd Data communication system
JPH11203128A (en) * 1998-01-09 1999-07-30 Canon Inc Digital software distribution system, terminal and recording medium
US6253326B1 (en) * 1998-05-29 2001-06-26 Palm, Inc. Method and system for secure communications

Also Published As

Publication number Publication date
KR20030085270A (en) 2003-11-05
WO2003107201A1 (en) 2003-12-24
AU2002368021A1 (en) 2003-12-31

Similar Documents

Publication Publication Date Title
US7707409B2 (en) Method and system for authenticating software
KR100453504B1 (en) Method and system for authenticating a software
CN102830992B (en) Plug-in loading method and system
CN100432932C (en) Updating data in a mobile terminal
US8452970B2 (en) System and method for code signing
US8683610B2 (en) Method and apparatus for managing digital rights of secure removable media
JP2015092374A (en) Apparatus and methods for managing firmware verification on wireless device
US7480907B1 (en) Mobile services network for update of firmware/software in mobile handsets
EP2425367B1 (en) Method and apparatus for improving code and data signing
CN1946222B (en) Software certification device for mobile communication terminal and method thereof
KR20040028597A (en) Test enabled application execution
JP2005536780A (en) Method for transmitting encrypted user data objects
JP2000059440A (en) Verification of data transfer based on specific id code
US9015481B2 (en) Methods and systems for access security for dataloading
US20130114808A1 (en) System and method for providing an indication of randomness quality of random number data generated by a random data service
CN104918252A (en) Method for WTRU execution integrity verification and WTRU
CN101099385A (en) Methods and apparatus for enforcing application level restrictions on local and remote content
US8578170B2 (en) Bundle verification
CN107483419B (en) Method, device and system for authenticating access terminal by server, server and computer readable storage medium
CN110008757B (en) Data protection method and system in updating of terminal firmware of Internet of things
US9443067B1 (en) System for the distribution and deployment of applications, with provisions for security and policy conformance
KR20130018397A (en) System and method for performing commands from a remote source
CN107948235B (en) JAR-based cloud data security management and audit device
Tomimori et al. An efficient and flexible access control framework for Java programs in mobile terminals
CN107743115B (en) Identity authentication method, device and system for terminal application

Legal Events

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

Payment date: 20101006

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170921

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 15