PowerPoint Presentation

Similar documents
1

Chap7.PDF

02 C h a p t e r Java

MasoJava4_Dongbin.PDF

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

PCServerMgmt7

PowerPoint 프레젠테이션

JVM 메모리구조

초보자를 위한 ADO 21일 완성

Voice Portal using Oracle 9i AS Wireless

PowerPoint 프레젠테이션

C# Programming Guide - Types

thesis

SMB_ICMP_UDP(huichang).PDF

TTA Journal No.157_서체변경.indd

ETL_project_best_practice1.ppt

Secure Programming Lecture1 : Introduction

01-OOPConcepts(2).PDF

6주차.key

Dialog Box 실행파일을 Web에 포함시키는 방법

rmi_박준용_final.PDF

1217 WebTrafMon II

No Slide Title

PowerPoint 프레젠테이션

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

MAX+plus II Getting Started - 무작정따라하기

untitled

歯이시홍).PDF

Intro to Servlet, EJB, JSP, WS

Remote UI Guide

APOGEE Insight_KR_Base_3P11

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

¨ìÃÊÁ¡2

untitled

歯I-3_무선통신기반차세대망-조동호.PDF

Interstage5 SOAP서비스 설정 가이드

초보자를 위한 자바 2 21일 완성 - 최신개정판

Portal_9iAS.ppt [읽기 전용]

THE TITLE

구문 분석

DE1-SoC Board

final_thesis

ODS-FM1

Microsoft PowerPoint - 04-UDP Programming.ppt

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - RMI.ppt

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

hw 2006 Tech guide 64p v5

자바 프로그래밍

chapter1,2.doc

Service-Oriented Architecture Copyright Tmax Soft 2005

untitled

슬라이드 1

UDP Flooding Attack 공격과 방어

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

The_IDA_Pro_Book

gnu-lee-oop-kor-lec06-3-chap7

F1-1(수정).ppt

J2EE & Web Services iSeminar

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

Network Programming

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

<31325FB1E8B0E6BCBA2E687770>

Subnet Address Internet Network G Network Network class B networ

Deok9_PE Structure

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Week13

thesis

PowerPoint 프레젠테이션

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx


Backup Exec

MS-SQL SERVER 대비 기능


SchoolNet튜토리얼.PDF

4S 1차년도 평가 발표자료

Microsoft PowerPoint - CSharp-10-예외처리

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for


05Àå

Assign an IP Address and Access the Video Stream - Installation Guide

강의10

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Runtime Data Areas 엑셈컨설팅본부 /APM 팀임대호 Runtime Data Area 구조 Runtime Data Area 는 JVM 이프로그램을수행하기위해할당받는메모리영역이라고할수있다. 실제 WAS 성능문제에직면했을때, 대부분의문제점은 Runtime Da

Analyst Briefing

ESP1ºÎ-04

Design Issues

Microsoft PowerPoint - chap01-C언어개요.pptx


No Slide Title

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

을 할 때, 결국 여러 가지 단어를 넣어서 모두 찾아야 한다는 것이다. 그 러나 가능한 모든 용어 표현을 상상하기가 쉽지 않고, 또 모두 찾기도 어 렵다. 용어를 표준화하여 한 가지 표현만 쓰도록 하여야 한다고 하지만, 말은 쉬워도 모든 표준화된 용어를 일일이 외우기는

Transcription:

Java 보안 오세종 1

목차 Java 의역사 Java 의특징 Java Development Kit (JDK) Java 에서의보안문제 Security Layer in Java Java 보안참조모델 Java 보안 API Java Protected Domains 보안모델 2

Java 의역사 1991년 Sun Microsystem 에 Green Team 발족 가정용기구들에대한운영체제개발착수. ( 제임스고슬링 ) C++ 를기반으로한 Oak 개발 PDA(Personal Disital Assistant) 에적용 1992년 Timer Waner 의대화형 TV System 3DO 의 Game기 1994년 NCSA 의모자이크와 Oak 의인터페이스개발 이름개명 : Java 1995년 Java, HotJava 공식발표 Java를수용한 Netscape Navigator 베타버전발표 JDK 1.2 발표 http://java.sun.com 3

Java 의역사 네트워크상에서실행되기위하여코드는플랫폼에의존하지않으며안전성이보장되어야한다. 단순, 친숙, 객체지향, 안전, 강력, 간편, 확장성, 동적,... 4

Java 의특징 Compile 도되고 Interpret 도된다. Java Source Java Compiler Byte Code.class 실행 Java Interpreter Byte Code :.exe 형태의실행파일과는다르다. 특정하드웨어또는 OS 에종속된기계어가아닌가상기계어 Applet, Application 5

Java 의특징 구조중립과이식성 Machine A C Pgm. Compile 실행화일 Machine B? 실행되지않을수있다. 재 Compile 필요 (Porting) 6

Java 의특징 친숙, 단순 C, C++ 에기반 Pointer 등복잡한부분제외 객체지향 객체지향언어의모든장점제공 multi thread 동일한 Program 안에있는여러독립적인명령어들이동시에실행될수있도록지원 ( 멀티쓰레드는프로그램내부에서한번에여러가지일을할수있게한다. 예를들면한쓰레드는애니메이션을플레이하고다른쓰레드에서는오디오를플레이할수있다 ). 7

Java 의특징 dynamic Loading Java Program 이실행될때전체가메모리에 load 되는것이아니고필요한객체 class 만 load ( 주어진시간에필요한만큼만메모리차지 ) Java API 제공 표준 Library + API(Application Programmer s Interface ) 언어, multi thread, 예외처리, 그래픽, 오디오, 네트워크지원등 Window Programming 에필요한거의모든기능지원 ) 8

Java Development Kit (JDK) JDK 에포함된내용 (JDK 1.2) Java Virtual Machine (JVM) and core Java API class libraries Core source code for the Java API libraries (JFC) Developer and administrative tools Demos showing the new JDK 1.2 features C header files to extend the core platform with C native methods 9

Java Development Kit (JDK) Java Virtual Machine JVM 은플랫폼독립적인가상컴퓨팅환경으로서 Java 언로로작성된프로그램들은 JVM 위에서실행된다. JVM 은높은보안성을제공한다. Java Program JVM JVM JVM Window NT Unix Mac. 10

Java Development Kit (JDK) 인터넷익스플로러에설치된 JVM 11

Java Development Kit (JDK) Core API Libraries Performance enhancements Security enhancements Java Foundation Classes (JFC) enhancements JDBCTM enhancements Java Interface Definition Language (IDL) JavaBeansTM enhancements Audio enhancements Internationalization Input Method Framework Remote Method Invocation (RMI) enhancements Serialization enhancements Collections enhancements Reference Objects Reflection enhancements Java Native Interface (JNI) enhancements Java Extensions Framework Java ARchive (JAR) enhancements Package Version Identification New Debugger Interface 12

Java Development Kit (JDK) Java Runtime Environment (JRE) Java Virtual Machine (JVM) core API libraries 와다른지원화일들로구성 자바프로그램이실행될수있는최소한의환경 컴파일러, 디버거, tool 등은포함되어있지않다. JDK 를설치하면 JRE 는따로설치할필요가없다. 경우에따라 JRE 만을다운로드해서쓸수있다. 13

Java 에서의보안문제 Remote Java Applet Web Browser Attacker 다른컴퓨터에서만들어진프로그램이내컴퓨터에서실행!? 그것도인지하지못한상태에서 14

Java 에서의보안문제 applet 개발자에의한보안위협 트로이목마삽입, 자원불법 access 기능삽입 시스템수행방해기능삽입 불쾌감을유발하는화면,sound 생성 applet 전송시의보안위협 전송방해, 가로채기, 변조, 위조 applet 수행시의보안위협 server 의정보유출 (disclosure) 불법수정사용, 불법복제 15

Security Layer in Java Java 프로그램의생성과실행 Compile Time Run Time Source Compiler Byte Code Verifier Class Loader ( move through the network or a file system ) Interpreter Code gen. 16

Security Layer in Java.class 파일의실행과정 Remote class file Local class file Bytecode verifier Core API class file Class loader Security package Core Java API Security manager Access controller Operating System 17

Security Layer in Java Security Layer L4 L3 L2 L1 Protecting the F.S. & N/W Class loader Verify the byte code The language & compiler 18

Security Layer in Java Layer 1 : The Language & Compiler Language 수준에서프로그래머의의도적인,, 혹은혹은실수에의한의한error 의유발을최소화 no pointer pointer 가가리키는데이터를우연히지우거나새데이터를그지점에저장하는오류가능성 pointer 대신에 real array 제공 garbage collection programmer 의관리소홀에의한메모리누출방지 garbage collector 19

Security Layer in Java Layer 1 : The Language & Compiler 엄격한 type checking private type 의객체를지원하여다른 class 에서이용할수없도록함 (cf. C++ 의 data hiding ) 적용예 : password 를다루는객체 bound checking 배열사용시배열의 size 를넘어서객체를사용하고자시도하면 compile error 발생 int arry[10] -> arry[11]? (cf. C/C++) 20

Security Layer in Java Layer 1 : The Language & Compiler late binding (dynamic binding) 객체들이필요하기전까지는메모리위치로 load 되거나지정되지않게함으로써클라이언트머신에서 Java 프로그램이 class 의물리적메모리위치를예측하는것이불가능하도록만든다. final method/class 선언 중요한 class 에대해서는 sub classing 하는것을방지, 주요 method 에대한 overriding 방지 21

Security Layer in Java Layer 2 : Verify the byte code 악의적공격자가 Java compiler 를수정하여 Java 의 safety rule rule을범하거나,, 정상적 code 가 N/W N/W 전송도중변경변경되는되는것에것에대한대한검증 byte code 가실행되기전에 Verifier 가 byte code 에대한완전성여부를 check 하여보안성보장 verification 이끝나면다음의 property 를보장 그코드는 server 에의해정상적으로 compile 되었고안전하게전송되었다. 그코드는 operand stack overflow 혹은 underflow 를일으키지않는다. 22

Security Layer in Java Layer 2 : Verify the byte code 모든 opcode 에대한 parameter 의 type 은 correct 하다. integer 가 pointer 로 convert 되는것과같은 illegal data conversion 은일어나지않는다. object field access are known to be correct. 이와같은 verification 은 runtime 시 code 의실행속도를빠르게하는요인으로작용한다 23

Security Layer in Java Layer 3 : The class Loader Server remote.class untrusted? Client Class loader local.class trusted Class Loader 가 class 를 load 할때그것이네트워크로부터온것인지, local file 시스템에서 load 된것인지를구별하여서로독립된실행환경을갖도록함으로써네트워크 source 로부터의보안위협을방지한다. (Sandbox Model) 24

Security Layer in Java 외부로부터온클래스가마치내부의클래스인것처럼위장할수있는방법은없다. I do whatever I want! Free me! Local code sandbox valuable resources <Sandbox Model> Remote code 25

Security Layer in Java Layer 4 : 파일시스템, 네트워크접근보호 파일시스템보호 (protecting the file system) remote code 가 local file 시스템을 access 하려고할때이를방지함 네트워크접근보호 (network security) check the origin of code fragment. public key, cryptography 지원으로 remote code 가전송도중변형되는것을방지 26

Java 보안참조모델 ( for JDK ) Security Reference Model 기초가되는보안요구사항을정의 보안테스트계획을위한기준의역할 JDK 의보안내용에대해기술 (JDK 가어떻게보안을구현하는지는설명없음 ) for Developers of Java enabled applications System administrator Security auditors Licenses 27

Java 보안참조모델 ( for JDK ) Classes of Model Components Server Application Java Applet JVM Server Platform Client Platform 28

Java 보안참조모델 Classes of Model Components Java Applet the executable Java program ( downloaded from the server) applet 의 loading 과 security 는 application 의 control 하에있음. Java-enabled application A trusted, statically configured web-client program application 은 Java-supplied class code + application-defined extensions 포함 HotJava, Nevigator 등의 Web Browser 29

Java 보안참조모델 Classes of Model Components Java Virtual Machine (JVM) the runtime environment for Java application and applets client/server platform JVM, Java app., server 의실행을지원하는 middleware, os, h/w, n/w 의집합 server the source of web data, including applet the server is not necessarily Java program 30

Java 보안참조모델 Principals (users) Client Administrator Java-enabled app. 를설정, setup End-user Java-enabled app. 의사용자 Server administrator controls Java applet Application provider Java-enabled app. 의제작업체 (ex. Netscape) security policy 모델을 implement 31

Java 보안참조모델 Resources Client devices client platform 에존재하는 file, terminal, n/w 등 Server devices server platform 에존재하는 file, terminal, n/w 등 Object Data Java environment 내에정의된 Object client 와 server 간에주고받는임의의 binary data 32

Java 보안참조모델 Global Security Invariant Security reference 모델은 security 에대한 layered definition 으로구성되어있다. Global security invariant 는가장상위의 layer 에해당하는 abstract security Property Download 된 applet 은 client system admin. 이나 end user 가설정한 application policy 에의해제약을받는다 33

Java 보안참조모델 Security Transaction 이후의내용은 Java application 이수행됨에있어서 initial state 로부터시작하여, execution 이이루어지는각단계마다의필요한보안요구사항을정의한다. 또한보안을위배하려는시도가발생할때어떻게처리해야하는지를규정하고있다. 34

Java 보안참조모델 Security Transaction Secure initial state Class Loader constructor Load Class Very/Link Class Class Initialization Applet Access Device attempt Applet Manipulate Thread Attempt Applet Manipulate Process Attempt Applet Modify NameSpace Attempt Application Manipulate Process Attempt Server Platform to Client Platform Data stream 35

Java 보안참조모델 Security Transaction Ex) Load class JVM 이 application 의 loadclass method 를 call Java-supplied class loader 를사용하여 System class 를찾는다. non-system class 들을검증하기위해 Java-supplied Verifier/Linker 를 call 한다. class code 에이름을올바르게 mapping 한다. linking/verifying 동안 exception 들을 catch 하거나 ignore 하지않는다. 36

Java 보안 API 개요 Java 로개발된 applet 에대한무결성을보장하고, 거기에추가하여인증성과기밀성을부여함으로서보안기능을향상시키고자함. SandBox 모델에의한 applet 의응용성저하보완 JDK1.1 version 부터지원 ( java.security package ) 제공기능 전자서명 (digital signature ) : DSA, RSA Message Digest : MD5, SHA-1 37

Java Protected Domains 보안모델 sandbox 모델의한계를극복하고자제안 sandbox 모델의확장개념 Java 보안 API 와연계해서사용 기본개념 (applet) d.class c.class Protected Domain A Permission 1 N/W b.class a.class Protected Domain B Permission 2 File System Execution Stack Security Policy 38

Java Protected Domains 보안모델 전자서명이된 applet 은소속 domain 에따라 N/W, file 시스템을선택적으로 access 가능 ( 전자서명이되지않은 applet 은기존의 sandbox 모델을동일하게적용 ) protect domain 은 security level 과유사한개념 domain 에따라 permission 의내용이결정됨 ( domain = a set of permission ) 39

Java Protected Domains 보안모델 Java Protected Domains - 네트워크자원에대한접근을선택적으로허용 - 관리자는보안정책을설정할수있다. - Default for Java protected domains - 파일시스템에대한제한적접근 Extended Java Sandbox Java Sandbox -Unsigned code -no access 40

Java Protected Domains 보안모델 Remote class file Local class file Signed class file Core API class file Bytecode verifier Class loader Security package Core Java API key database Security manager Access controller Operating System 41

참고문헌 이강수, Java 환경에서의보안위협과메커니즘, 한국정보과학회지, 1972 년 7 월 pp48-56. HotJava : The Security Story, http://www.javasoft.com/sfag/may95/security.html M.Erdos, B.Hartman, M.Mueller, Security Reference Model for the Java Developer Kit 1.0.2, http://www.javasoft.com/security/srm.html. Java Security, http://www.javasoft.com/security/ FAQ s - Java Protected Domains Security Model, http://java.sun.com/marketing/collcteral/prot_dom.html Java Security API Overview, http://www.javasoft.com/security/ 42