KR20050006933A - Method for maintaining security of program - Google Patents

Method for maintaining security of program Download PDF

Info

Publication number
KR20050006933A
KR20050006933A KR1020030046923A KR20030046923A KR20050006933A KR 20050006933 A KR20050006933 A KR 20050006933A KR 1020030046923 A KR1020030046923 A KR 1020030046923A KR 20030046923 A KR20030046923 A KR 20030046923A KR 20050006933 A KR20050006933 A KR 20050006933A
Authority
KR
South Korea
Prior art keywords
file
program
jar
execution
java
Prior art date
Application number
KR1020030046923A
Other languages
Korean (ko)
Other versions
KR100548377B1 (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 KR1020030046923A priority Critical patent/KR100548377B1/en
Publication of KR20050006933A publication Critical patent/KR20050006933A/en
Application granted granted Critical
Publication of KR100548377B1 publication Critical patent/KR100548377B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • G06F21/126Interacting with the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Landscapes

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

Abstract

PURPOSE: A method for securing a program on a wireless terminal environment is provided to fundamentally prevent a source code of a Java program from being opened by protecting the source of the Java program downloaded from a server on the wireless terminal environment. CONSTITUTION: A jar(Java archive) file secured against execution is downloaded from the server. The execution of the Java program is confirmed. If the execution of the Java program is confirmed, a packet for obtaining an execution-secured file of the jar file is made from a JAD(Java Descriptor) file. The downloaded jar file is updated by receiving the execution-secured file from the server with the packet. The Java program is executed by using the updated jar file.

Description

프로그램 보안 방법{METHOD FOR MAINTAINING SECURITY OF PROGRAM}Program security method {METHOD FOR MAINTAINING SECURITY OF PROGRAM}

본 발명은 보안 기술에 관한 것으로 특히, 프로그램 보안 방법에 관한 것이다.The present invention relates to security technology, and more particularly, to a program security method.

현재 자바(Java)는 모바일(mobile) 환경에서 OTA1.0 스펙에 따라 다운로드할 수 있는 모델을 운영하고 있다.Java currently operates a downloadable model based on the OTA 1.0 specification in a mobile environment.

OTA(Over The Air) 스펙에 따르면 자바는 jar(Java Archive)라는 형태로 서버에 존재하며, 무선 환경에서 단말기는 HTTP를 이용하여 jar 형태로 올려진 자바 프로그램(MIDlet)을 다운로드할 수 있다.According to the OTA (Over The Air) specification, Java exists in the server as a jar (Java Archive), and in a wireless environment, a terminal can download a Java program (MIDlet) loaded in a jar form using HTTP.

자바는 java 파일(소스 코드)을 컴파일하여 class 파일(bytecode)로 변환하고 이 class 파일이 VM(Virtual Machine : 가상 머신)에 의해 해석(interpret)되는 형태로 실행된다.Java compiles a java file (source code) into a class file (bytecode) and executes it in a form that is interpreted by the VM (Virtual Machine).

무선 단말 환경에서 자바 프로그램은 class들이 압축된 형태인 jar 파일 형태로 배포되며, 단말기에 다운로드된 jar 파일은 단말기의 파일 시스템에 저장된다.In a wireless terminal environment, Java programs are distributed in the form of jar files in which classes are compressed, and the jar files downloaded to the terminal are stored in the terminal's file system.

그러나, 종래에는 자바 프로그램에 대한 class 파일이 쉽게 역컴파일되어 자바 형태 즉, 소스 파일이 유출될 수 있다는 문제점이 있다.However, in the related art, there is a problem that a class file for a Java program is easily decompiled so that a Java form, that is, a source file, may be leaked.

즉, 종래에는 단말기에 다운로드되어 jar 파일 형태로 저장된 자바 프로그램(MIDlet)을 피씨(PC)로 업로드하고 jar 파일를 풀어서 class 파일을 얻은 후 class 파일을 역컴파일하여 java 파일 즉, 소스코드를 그대로 얻어낼 수 있기 때문에 자바 프로그램 개발업체의 지적 재산이 쉽게 공개될 수 있는 문제점이 있다.That is, conventionally, Java program (MIDlet) downloaded to the terminal and stored in jar file format is uploaded to PC, and the jar file is unpacked to obtain the class file, and the class file is decompiled to obtain the java file, that is, the source code as it is. The problem is that the intellectual property of Java program developers can be easily disclosed.

다시 말해서, 무선 환경에서 서버로부터 다운로드된 자바 프로그램(MIDlet)은 jar 파일의 형태로 단말기의 파일 시스템에 저장되는데, 이 jar 파일은 일반 사용자가 액세스하거나 피씨(PC)로 업로드하는 것이 기본적으로 불가능하지만, 단말기 제조업체에서는 그 단말기의 파일 시스템을 마음대로 액세스할 수 있으므로 자바 프로그램 개발업체의 지적 정보가 손쉽게 유출될 수 있다는 것이다.In other words, Java programs (MIDlets) downloaded from the server in a wireless environment are stored in the terminal's file system in the form of jar files, which are basically impossible for general users to access or upload to PCs. For example, handset makers can access the file system of their handsets freely, making it easier to leak information from Java program developers.

따라서, 본 발명은 종래의 문제점을 개선하기 위하여 무선 단말 환경에서 서버로부터 다운로드된 자바 프로그램(MIDlet)의 소스를 보호하는 방식을 제안함으로써 자바 프로그램 개발자의 지적 재산권에 해당하는 자바 프로그램의 소스 코드가 공개되는 것을 근본적으로 차단하고자 창안한 프로그램 보안 방법을 제공함에 목적이 있다.Accordingly, the present invention proposes a method of protecting a source of a Java program (MIDlet) downloaded from a server in a wireless terminal environment in order to improve the conventional problem, so that the source code of the Java program corresponding to the intellectual property rights of the Java program developer is disclosed. Its purpose is to provide a program security method that is designed to fundamentally block this from happening.

즉, 본 발명의 목적은 다운로드받은 jar 파일의 압축이 풀리지 않도록 함으로써 자바 프로그램의 소스코드가 공개되는 것을 근본적으로 차단하고자 하는 것이다.That is, an object of the present invention is to fundamentally block the source code of a Java program from being disclosed by not extracting the downloaded jar file.

도1은 본 발명의 실시예에서 프로그램 실행 과정을 보인 동작 순서도이다.1 is a flowchart illustrating a program execution process in an embodiment of the present invention.

본 발명은 상기의 목적을 달성하기 위하여 무선 통신 환경을 기반으로 한 프로그램 실행 방법에 있어서, 실행 보안된 jar 파일을 서버로부터 다운로드하는 단계와, 자바 프로그램(MIDlet) 실행 여부를 확인하는 단계와, 상기에서 자바 실행으로 확인되면 JAD 파일로부터 jar 파일의 실행 보안 파일을 얻기 위한 패킷을 작성하는 단계와, 상기에서 얻은 실행 보안 파일 획득을 위한 패킷을 이용하여 서버로부터 실행 보안 파일을 수신하여 jar 파일을 갱신하는 단계와, 상기에서 갱신된 jar 파일을 이용하여 응용 프로그램(MIDlet)를 실행하는 단계를 수행함을 특징으로 한다.According to an aspect of the present invention, there is provided a method of executing a program based on a wireless communication environment, the method comprising: downloading an execution-secured jar file from a server, checking whether a Java program (MIDlet) is executed, and If it is confirmed that Java execution is executed in Java, create a packet for obtaining the execution security file of the jar file from the JAD file, and update the jar file by receiving the execution security file from the server using the packet for obtaining the execution security file obtained above. And executing the application program (MIDlet) using the updated jar file.

이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the drawings.

도1은 본 발명의 실시예에서 자바 프로그램 실행 과정을 보인 동작 순서도로서 이에 도시한 바와 같이, 자바 프로그램(MIDlet) 실행 여부를 확인하는 제1 단계와, 상기에서 자바 실행으로 확인되면 서버로부터 다운로드되어 있는 jar 파일을 램(RAM)에 로딩(loading)하는 제2 단계와, JAD 파일로부터 jar 파일의 실행 보안 파일을 얻기 위한 패킷을 작성하는 제3 단계와, 상기에서 얻은 실행 보안 파일 획득을 위한 패킷을 이용하여 서버로부터 실행 보안 파일을 수신하여 jar 파일을 갱신하는 제4 단계와, 상기에서 갱신된 jar 파일을 이용하여 응용 프로그램(MIDlet)를 실행하는 제5 단계를 수행하도록 구성한다.1 is a flowchart illustrating an operation of executing a Java program according to an embodiment of the present invention. As shown in FIG. 1, a first step of confirming whether a Java program (MIDlet) is executed is downloaded from a server when the execution of Java is confirmed. A second step of loading a jar file in RAM, a third step of creating a packet for obtaining the executable security file of the jar file from the JAD file, and a packet for obtaining the executable security file obtained above Receiving the execution security file from the server using the fourth step of updating the jar file, and the fifth step of executing the application (MIDlet) using the updated jar file.

상기 제3 단계에서 서버로 전송하는 패킷은 요청하는 데이터 타입(jar 파일)과 post하는 url을 헤더에 포함하고, jar 파일이 어떤 것인지를 구분하기 위한 필드를 정의하여 구성한다.In the third step, the packet transmitted to the server is configured by including a request data type (jar file) and a post url in a header, and defining a field for identifying what the jar file is.

상기 제4 단계에서 단말기로 전송하는 응답 패킷은 HTTP 형태로서, 성공한 경우 "content-length" 필드와 실제 48바이트의 데이터를 포함하여 구성된다.In the fourth step, the response packet transmitted to the terminal is in the form of HTTP. If the packet is successful, the response packet is configured to include a "content-length" field and actual 48 bytes of data.

상기에서 서버는 MIDlet contents 서버이다.In the above, the server is a MIDlet contents server.

이와같이 구성한 본 발명의 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.Referring to the operation and effect of the embodiment of the present invention configured as described above are as follows.

우선, 서버에 jar 파일을 저장할 때 원형의 jar 파일을 저장하는 것이 아니라 파일의 앞부분 48바이트를 분리하고 그 앞부분에 0x00이라는 데이터를 채워 2가지의 파일을 저장하게 된다.First of all, when you save a jar file on the server, instead of storing the original jar file, you separate the 48 bytes at the beginning of the file and fill the data with 0x00 at the beginning to save two files.

따라서, 서버는 단말기로부터 jar 파일의 다운로드 요청이 있으면 원본에 해당하는 원형(original) jar 파일을 주는 것이 아니라 파일의 앞부분에 해당하는 48바이트를 0x00으로 채워서 만든 변환된 형태의 jar 파일만을 단말기로 전송한다.Therefore, when a server requests to download a jar file from the terminal, the server does not give the original jar file corresponding to the original, but only the converted jar file created by filling the 48 bytes corresponding to the beginning of the file with 0x00 is transmitted to the terminal. do.

이후, 단말기는 자바 프로그램(MIDlet) 실행을 인식하면 램(RAM)에 jar 파일을 복사하고 JAD(Java Descriptor) 파일을 읽어서 jar 파일의 앞부분에 해당하는 48바이트의 실제 데이터를 얻기 위한 패킷을 만드는데 필요한 정보(url, jar name, vendor name, jar version 등)을 얻는다.Then, when the terminal recognizes the execution of the Java program (MIDlet), it copies the jar file into RAM and reads the JAD (Java Descriptor) file to make a packet to obtain the 48 bytes of actual data corresponding to the beginning of the jar file. Get information (url, jar name, vendor name, jar version, etc.)

이후, 단말기는 서버로 jar 파일의 앞부분 데이터 전송을 요청한다.After that, the terminal requests the data transfer of the jar file to the server.

이때, 단말기로부터 서버에 post 방식으로 전송되는 48바이트의 실제 데이터를 요청하는 패킷(JAR_DATA_REQ)은 헤더와 데이터로 이루어진다.At this time, a packet (JAR_DATA_REQ) for requesting 48 bytes of actual data transmitted from the terminal to the server in a post method includes a header and data.

상기 헤더는 Accept 부분에 기존의 MIME 유형 외에 jar 데이터를 수신하는 요청(request)용으로 'text/vnd.sun.j2me.jar-data'가 추가되며, URL은 JAD 파일에 포함된 'MIDlet-JAR-DATA'라는 필드가 추가된다. 상기 필드(MIDlet-JAR-DATA)는 URL이 Jar 파일의 데이터를 얻는 용도로 post시에 사용된다.In the header, 'text / vnd.sun.j2me.jar-data' is added for the request to receive jar data in addition to the existing MIME type, and the URL is 'MIDlet-JAR' included in the JAD file. 'DATA' field is added. The field (MIDlet-JAR-DATA) is used at post time for the purpose of obtaining URL Jar data.

상기 데이터는 단말기가 요구하는 jar 데이터가 어떤 것인지를 서버가 구분할 수 있도록 JAD(java descriptor) 파일의 파라미터를 그대로 사용하는데, 단말기가 jar 데이터를 구분하는데 사용하는 3가지의 필드(MIDlet-Name, MIDlet-Version, MIDlet-Vendor)를 사용한다.The data uses the parameters of the JAD (java descriptor) file as it is so that the server can identify which jar data is required by the terminal. Three fields (MIDlet-Name and MIDlet) are used by the terminal to distinguish jar data. -Version, MIDlet-Vendor).

즉, 아래와 같은 패킷이 단말기로부터 서버로 전송된다.In other words, the following packet is transmitted from the terminal to the server.

이에 따라, 서버는 단말기로부터의 데이터 전송 요청에 대해 응답 패킷을 상기 단말기로 전송한다.Accordingly, the server sends a response packet to the terminal in response to the data transmission request from the terminal.

이때, 응답 패킷은 데이터 전송 요청이 실패한 경우와 성공한 경우에 따라 다르다.At this time, the response packet depends on the case where the data transmission request fails and the case where the data transmission request succeeds.

만일, 데이터 전송 요청이 실패한 경우 에러 패킷을 헤더에 정의한 패킷을 단말기로 전송한다. 여기서, 에러 패킷은 HTTP의 응답 패킷의 에러 패킷 형태를 따른다. 즉, 아래와 같은 패킷이 서버에서 단말기로 전송되어 데이터 요청이 실패되었음을 알린다.If the data transmission request fails, the packet defined in the header is transmitted to the terminal. Here, the error packet follows the error packet form of the response packet of HTTP. That is, the following packet is transmitted from the server to the terminal to inform that the data request has failed.

그리고, 데이터 전송 요청이 성공한 경우 헤더에 "content-length:48"이라는 필드가 추가되며 데이터에 48바이트의 실제 데이터가 포함되어 단말기로 전송된다. 즉, 아래와 같은 패킷이 서버에서 단말기로 전송된다.If the data transmission request is successful, a field "content-length: 48" is added to the header, and 48 bytes of actual data is included in the data and transmitted to the terminal. That is, the following packet is transmitted from the server to the terminal.

따라서, jar 파일의 앞부분에 해당하는 데이터가 성공적으로 수신되면 단말기는 그 수신 데이터를 이용하여 jar 파일의 앞부분 데이터를 갱신시키고 자바 프로그램(MIDlet)을 실행한다.Therefore, when the data corresponding to the front part of the jar file is successfully received, the terminal updates the data of the front part of the jar file by using the received data and executes a Java program (MIDlet).

상기에서 상세히 설명한 바와 같이 본 발명은 서버로부터 실행 보안 처리된 jar 파일을 다운로드한 후 자바 프로그램(MIDlet)을 실행할 때 서버로부터 실행 보안 파일을 전송받아 jar 파일을 갱신하여 해당 자바 프로그램을 실행하도록 함으로써 자바 파일의 소스 코드 유출을 방지할 수 있는 효과가 있다.As described in detail above, the present invention downloads an executable security jar file from a server and then executes the Java program by updating the jar file by receiving the execution security file from the server when executing a Java program (MIDlet). There is an effect that can prevent the source code leakage of the file.

Claims (4)

무선 환경을 기반으로 한 프로그램 실행 방법에 있어서,In the program execution method based on the wireless environment, 실행 보안되어 있는 jar 파일을 서버로부터 다운로드하는 단계와,Downloading the executable secured jar file from the server, 자바 프로그램(MIDlet) 실행 여부를 확인하는 단계와,Checking whether a Java program (MIDlet) is executed, 상기에서 자바 실행으로 확인되면 JAD 파일로부터 jar 파일의 실행 보안 파일을 얻기 위한 패킷을 작성하는 단계와,Creating a packet for obtaining the execution security file of the jar file from the JAD file when it is confirmed that the Java execution is performed; 상기에서 얻은 실행 보안 파일 획득을 위한 패킷을 이용하여 서버로부터 실행 보안 파일을 수신하여 상기 다운로드되어 있는 jar 파일을 갱신하는 단계와,Receiving the execution security file from the server using the packet for obtaining the execution security file obtained above, and updating the downloaded jar file; 상기에서 갱신된 jar 파일을 이용하여 응용 프로그램(MIDlet)를 실행하는 단계를 수행하도록 구성함을 특징으로 프로그램 보안 방법.Program security method characterized in that configured to perform the step of executing an application (MIDlet) using the updated jar file. 제1항에 있어서, 제3 단계의 요청 패킷은The method of claim 1, wherein the third step of the request packet 요청하는 데이터 타입(jar 파일)과 post하는 url을 헤더에 포함하고, jar 파일이 어떤 것인지를 구분하기 위한 파라메터를 포함하여 구성함을 특징으로 하는 프로그램 보안 방법.Program security method characterized by including the request data type (jar file) and the url to post in the header, including the parameter to distinguish what the jar file. 제2항에 있어서, 파라메터는The method of claim 2 wherein the parameter is MIDlet name, MIDlet version, MIDlet vender를 포함하는 것을 특징으로 하는 프로그램 보안 방법.Program security method comprising the MIDlet name, MIDlet version, MIDlet vendor. 제1항에 있어서, 제4 단계의 응답 패킷은The method of claim 1, wherein the response packet of the fourth step is 데이터 전송 요청이 성공한 경우 "content-length" 필드와 실제 데이터를 포함하여 HTTP 패킷 형태로 전송하도록 구성함을 특징으로 하는 프로그램 보안 방법.If the data transmission request is successful, the program security method characterized in that configured to transmit in the form of HTTP packet including the "content-length" field and the actual data.
KR1020030046923A 2003-07-10 2003-07-10 Method for maintaining security of program KR100548377B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030046923A KR100548377B1 (en) 2003-07-10 2003-07-10 Method for maintaining security of program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030046923A KR100548377B1 (en) 2003-07-10 2003-07-10 Method for maintaining security of program

Publications (2)

Publication Number Publication Date
KR20050006933A true KR20050006933A (en) 2005-01-17
KR100548377B1 KR100548377B1 (en) 2006-02-02

Family

ID=37220683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030046923A KR100548377B1 (en) 2003-07-10 2003-07-10 Method for maintaining security of program

Country Status (1)

Country Link
KR (1) KR100548377B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101246344B1 (en) * 2005-11-21 2013-03-21 엘지전자 주식회사 A method of execution contents using java MIDlet for mobile terminal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101246344B1 (en) * 2005-11-21 2013-03-21 엘지전자 주식회사 A method of execution contents using java MIDlet for mobile terminal

Also Published As

Publication number Publication date
KR100548377B1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
US11606677B2 (en) Method for sharing application between terminals, and terminal
US20200184140A1 (en) System and method for provisioning a mobile software application to a mobile device
US20040098715A1 (en) Over the air mobile device software management
US7712126B2 (en) Method and apparatus for providing dynamic security management
CA2698066A1 (en) System and method for remotely compiling multi-platform native applications for mobile devices
RU2339076C2 (en) Execution of non-verified programs in radio communication device
KR101541112B1 (en) FOTA system and the method
KR100663497B1 (en) Method for notifying service information to wireless terminal
KR20190005152A (en) Mobile terminal application update method and apparatus
KR102083751B1 (en) Methods for Managing Objects in Security Elements
WO2010130125A1 (en) Method and apparatus for realizing application right control of mobile terminal
CN104077160A (en) Android software upgrading method, device and system
CN112286586B (en) Plug-in configuration method and related equipment
KR100642998B1 (en) Policy message transmission method for upgrade policy of mobile
EP1566068B1 (en) Loading of an application that is to be deployed in a terminal and a chip card
CN110221855B (en) Method for app and server collaborative updating and offline running
KR100548377B1 (en) Method for maintaining security of program
FI106495B (en) network element
JP2018533796A (en) How to manage packages in a secure element
KR20220015067A (en) Method for maintaining security of program
US20060161839A1 (en) Method for obtaining communication settings using an application descriptor
CN114115969A (en) Hot updating method and system based on real Native
KR20060057542A (en) Method for obtaining communication settings using an application descriptor
CN105808272A (en) Data upgrading method and apparatus
EP2383960A1 (en) Method of managing the installation of an application in a telecom device

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: 20091230

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee