KR20050006933A - Method for maintaining security of program - Google Patents
Method for maintaining security of program Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
- G06F21/126—Interacting with the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
Description
본 발명은 보안 기술에 관한 것으로 특히, 프로그램 보안 방법에 관한 것이다.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)
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)
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 |
-
2003
- 2003-07-10 KR KR1020030046923A patent/KR100548377B1/en not_active IP Right Cessation
Cited By (1)
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 |