• Title/Summary/Keyword: 자바가상기계

Search Result 86, Processing Time 0.029 seconds

Applet Security Technique against Hostile Applet's Attack (유해 애플릿 공격에 대한 애플릿 보안 기술)

  • Park, Sang-Kil;Noh, Bong-Nam
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2000.04a
    • /
    • pp.491-496
    • /
    • 2000
  • 웹상의 자바 애플릿은 클라이언트의 웹 브라우저에 다운로드 되어서 브라우저 내부에 있는 자바가상기계(JVM : Java Virtual Machine)내에서 실행된다. 각 자바가상기계에는 실행 전에 바이트 코드 검증기와 바이트 코드 인터프리터를 통하여 오류문법을 점검한다. 애플릿을 이용한 잠재적인 공격형태는 시스템 수정, 개인정보의 침해, 서비스 거부공격, 강한 거부감을 느끼게 하는 공격이 있다. 이러한 유해한 애플릿의 공격에 대응하기 위한 방법으로 코드분석, 행위분석, 위치정보등을 이용한 보안기법이 제시되었지만 효율적인 대응을 하지 못하고 있다. 이 논문에서는 자바의 특성을 이용하여 자바클래스 내부의 바이트 코드 수정을 통한 애플릿 보안기술에 대해 기술한다. 유해한 행동이 예상되는 애플릿의 클래스에 대하여 바이트 코드 수정을 통하여 안전한 클래스로 대체함으로서 유해 애플릿 공격으로부터 시스템을 보호한다. 이를 수행하기 위해 프록시 서버를 두어서 웹브라우저의 요구를 수용하고, 이를 웹 서버에게 Safe클래스로 수정하여 요구하며, 그에 대한 응답도 처리한 후 애플릿에게 보여준다. 이는 런타임때 수행되며 웹브라우저, 서버, 클라이언트의 수정없이 프록시 서버의 개입으로 이루어진다.

  • PDF

Study of Garbage Collection Algorithm and Heap Memory for Java Virtual Machine Optimization (자바가상기계 최적화를 위한 가비지 컬렉션 알고리즘과 힙 메모리 연구)

  • 임동기;배철성;정민수
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2002.05d
    • /
    • pp.989-994
    • /
    • 2002
  • 최근에 발표된 마이크로소프트의 C#이라는 언어에서도 채택했듯이 그 동안 자바 개발자의 특권으로만 여겨졌던 가비지 컬렉션(garbage collection)은 개발자로 하여금 메모리와 관련된 고인으로부터 해방시켰다. 단순히 메모리의 효율적 관리뿐 만 아니라 프로그램의 무결성을 높여 자바 보안정책에 중요한 부분을 제공한다. 본 논문에서는 자바 가상 머신의 최적화를 위해서 가비지 컬렉션을 처리에 효과적인 알고리즘과 힙 메모리를 설계하였다.

  • PDF

A Definition of Loop Byteocode for Performance Improvement of Java Virtual Machine (루프 바이트코드의 정의를 통한 자바가상머신의 성능 개선)

  • Lee, Ji-Hyun;Won, Hee-Sun;Moon, Kyung-Doek;Kim, Young-Kuk
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2002.11b
    • /
    • pp.1387-1390
    • /
    • 2002
  • 자바가상머신은 플랫폼에 독립적인 실행을 위해서 바이트코드라고 하는 스택(stack) 기반의 가상 기계어를 사용하므로 실행 속도가 느리다는 단점이 있다. 특히 루프문을 포함하는 자바프로그램을 자바가상머신에서 수행 시키면 루프에 관련된 몇 개의 동일한 바이트코드가 루프의 실행 횟수만큼 반복적으로 인터프리트해서 수행하므로 상당한 성능 저하를 유발한다. 본 논문에서는 이런 비효율적인 성능상의 문제점을 개선하기 위해 루프를 수행하는 새로운 바이트코드를 정의 및 구현하고, 이를 실제 클래스 파일에 적용하기 위한 코드 변경 절차와 방법을 제시한다. 제안된 바이트코드를 사용해서 루프의 처리 속도를 개선할 경우, 클래스 파일의 크기를 줄일 수 있을 뿐만 아니라 간단한 성능 평가를 통해서 자바가상머신의 성능 개선 효과를 확인할 수 있다.

  • PDF

A Migration Method from Java Runtime Environment to SPARC Runtime Environment (자바 실행 환경에서 SPARC 실행환경으로의 이전 방법)

  • 황은희;오세만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1998.10b
    • /
    • pp.416-418
    • /
    • 1998
  • 이기종간의 실행 환경에 적합하도록 설계된 자바 바이트코드는 각 플랫폼에서 인터프리터 방식으로 수행되므로 효율성에서 단점을 가지고 있다. 따라서 바이트코드의 효율적인 실행을 위해 목적 코드로의 변환 과정이 요구된다. 목적 코드로 변환 과정에서 자바의 실행 환경 또한 목적 기계의 실행 환경으로 이전이 이루어져야 한다. 본 논문에서는 자바 실행 환경을 SPARC 실행 환경으로 이전하는 방법을 제시한다. 먼저, 자바 가상 기계의 구성 요소를 분석한 후 이에 대응하는 SPARC 실행 환경에 필요한 각각의 구성 요소들을 제시하고, SPARC 실행 환경에 맞는 모델을 구축한다. 마지막으로, 자바에서 제공하는 표준 클래스 라이브러리에 대해서는 SPARC 라이브러리 형태로 변환하여 제공하게 된다.

Memory Access Behavior of Embedded Java Virtual Machine in Energy Viewpoint (에너지 관점에서 임베디드 자바가상기계의 메모리 접근 형태)

  • Yang Heejae
    • The KIPS Transactions:PartA
    • /
    • v.12A no.3 s.93
    • /
    • pp.223-228
    • /
    • 2005
  • Several researchers have pointed out that the energy consumption in memory takes a dominant fraction on the energy budget of a whole embedded system. This applies to the embedded Java virtual machine tn, and to develop a more energy-efficient JVM it is absolutely necessary to optimize the energy usage in Jana memory. In this paper we have analyzed the logical memory access pattern in JVM as it executes numerous number of bytecode instructions while running a Java program. The access pattern gives us an insight how to design and select a suitable memory technology for Java memory. We present the memory access pattern for the three logical data spaces of JVM: heap, operand stack, and local variable array. The result saws that operand stack is accessed most frequently and uniformly, whereas heap used least frequently and non-uniformly among the three. Both heap and local variable array are accessed mostly in read-only fashion, but no remarkable difference is found between read and write operations for operand stack usage.

Multiple Fixed-Size Memory Allocation Scheme for Embedded Java Virtual Machine (내장형 자바가상기계를 위한 다중 고정크기 메모리 할당 기법)

  • 김세영;지정훈;양희재
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.10a
    • /
    • pp.229-231
    • /
    • 2003
  • 내장형 실시간 시스템에서는 메모리 관리시스템의 구현에 있어 메모리 단편화와 시간 결정성 (determinism)의 문제를 해결하기 위한 방법 중의 하나로 고정크기의 메모리를 할당하는 기법이 사용되어진다 내장형 자바가상기계에서도 객체를 관리하는 메모리 구조인 힙에 이를 적용하여 활용할 수 있으며 실제 구현으로는 simpleRTJ가 있다. 고정크기의 메모리 할당기법은 구현이 간단하기 때문에 시스템이 단순해지고 실행에서의 오버헤드도 작아지는 장점이 있다. 하지만 고정크기의 객체할당 방식은 가장 큰 객체의 크기를 이용하여 모든 객체를 할당하기 때문에 내부단편화를 발생시키는 단점이 있다. 본 논문에서는 내부 단편화를 최소화하면서 고정크기 할당기법의 장점을 최대한 이용할 수 있도록 하기 위해 다수의 고정크기를 이용하여 객체를 할당하는 기법에 관해 설명하며 관련 실험을 통해 내부단편화 문제를 얼마나 해결할 수 있는지에 관해 기술한다.

  • PDF

Design of C Compiler to Generate Java Class File (자바클래스 파일을 생성하는 C컴파일러 설계)

  • Choi, Won-Ho;Jung, Min-Soo;Kim, Do-Woo;Jin, Min;Yoon, Ki-Song
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1999.10a
    • /
    • pp.418-420
    • /
    • 1999
  • 기존의 고급 언어들로 작성된 응용 프로그램들은 인터넷이나 다른 플랫폼(Platform)에서 수행되는 것이 어렵다. 본 논문에서는 자바의 플랫폼 독립적인 특성을 C언어와 같은 고급 언어에 적용해 보고자 한다. 즉 C 언어로 작성된 원시 코드(Source code)를 컴파일러를 이용해서 자바 가상 기계가 인식할 수 있는 목적 코드인 바이트 코드(Bytecode)로 변환하여 자바 가상 기계(Java Virtual Machine)가 탑재되어 있는 어떠한 플랫폼에서도 수행할 수 있도록 하는 것이다. 따라서, 본 논문에서는 C 언어로 작성된 응용 프로그램을 이기종 플랫폼 상에서 실행 가능하도록 바이트 코드를 생성하는 컴파일러를 설계하고자 한다.

  • PDF

An Efficient Memory Allocation Scheme for Real-Time Java Virtual Machine (실시간 자바가상기계를 위한 효율적인 메모리 할당 기법)

  • Kim, Seyoung;Yang, Heejae
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.05a
    • /
    • pp.1677-1680
    • /
    • 2004
  • 내장형 실시간 시스템에서는 메모리관리시스템의 구현에 있어 메모리 단편화와 시간 결정성의 문제를 해결하기 위한 방법 중의 하나로 고정크기의 메모리를 할당하는 기법이 사용된다. 내장형 자바가상기계에서도 객체를 관리하는 메모리 구조인 힙에 이를 적용하여 활용할 수 있으며 구현된 예로는 simpleRTJ가 있다. 고정크기 메모리 할당 기법은 구현이 간단하기 때문에 시스템이 단순해지고 실행 시 오버헤드의 발생이 줄어드는 장점이 있다. 하지만 실제 구현에 있어서 구현의 단순화에 초점을 맞추어 프리 리스트가 구성되지 않아 메모리할당에 있어 예상할 수 없는 시간 지연이 있을 수 있으며 이는 실시간성의 보장에 치명적인 결함이 될 수 있다. 또한 배열과 문자열의 구성에 있어 실제 크기를 그대로 사용함으로써 고정크기 할당방식의 장점을 완전히 이용되지 못하고 있다. 본 논문에서는 실질적인 고정크기 할당방식의 장점을 최대한으로 이용하기 위해 객체와 메소드의 구조, 그리고 힙을 재구성하였다.

  • PDF

A Study on Virtual Execution To Understand the Behavior of Software (소프트웨어의 행위를 이해하기 위한 가상 실행에 관한 연구)

  • 정양재;이문근
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.10a
    • /
    • pp.436-438
    • /
    • 2000
  • 다양한 실행 경로가 존재하는 실시간 시스템을 이해하기 위해 시스템의 정적 정보와 함께 동정 정보가 사용자에게 적절히 제공되어야 한다. 본 논문은 정적 정보와 동적 정보를 표현하기 위해 SRL(System Representation Language)을 사용한다. 정적 정보는 SRL 노드를 분석해서 얻고 동적 정보는 SRL을 실행함으로 얻는다. SRL의 가상 실행은 시스템 독립적인 자바 가상 기계를 통해 이루어진다. 가상 실행은 순방향뿐만 아니라 역방향으로도 이루어진다. SRL 실행 라이브러리는 순.역방향 실행을 위해 SRL 각 구문의 의미 규칙에 맞게 정의하며 자바 가상 기계를 통해 실행되는 클래스 파일로 컴파일된다. 메모리에 로딩된 SRL은 SRL 실행 라이브러리를 동적으로 호출하여 가상 실행을 이룬다. 동적 실행을 통해 추출된 동적 정보는 SRL에 포함된다.

  • PDF

A Study on the Java Decompilation-Preventive Method by Obfuscating Algorithm (난독화 알고리즘을 이용한 자바 역컴파일 방지기법에 관한 연구)

  • Ahn, Hwa-Su
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2007.05a
    • /
    • pp.1457-1458
    • /
    • 2007
  • 자바 언어의 중요한 특징 중의 하나는 어떤 기계에서든지 실행될 수 있다는 점이다. 이러한 플랫폼에 대한 독립성은 자바 프로그램이 바이트 코드 형태로 배포되기 때문에 가능한 일이다. 바이트 코드는 특정 기계에 종속되지 않고 자바 가상 머신(Java Virtual Machine:JVM)를 지원하는 곳이면 어디에서든지 실행 가능하다. 그런데 바이트 코드로 번역된 코드에는 자바 소스 코드의 정보가 그대로 포함되어 있는데, 이로 인해서 바이트 코드에서 자바 소스코드로의 역컴파일(Decompilation)이 쉽게 이루어진다는 취약점이 있다. 본 논문에서는 자바 바이트 코드의 난독화 기법을 살펴보고, Code Encryption Algorithm을 이용해서 역컴파일 하기 어려운 형태로 만드는 기술인 코드 난독처리(Code Obfuscation) 기법을 제안하였다.

  • PDF