Content  Introduction  Signing, sealing and guarding Java object Motivation Design ( in terms of API ) Performance  Summary.

Slides:



Advertisements
Similar presentations
Transport Layer Security (TLS) Protocol Introduction to networks and communications(CS555) Prof : Dr Kurt maly Student:Abhinav y.
Advertisements

Java Security. Overview Hermetically Sealed vs. Networked Executable Content (Web Pages & ) Java Security on the Browser Java Security in the Enterprise.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Remote Method Invocation in Java Bennie Lewis EEL 6897.
Lecture 5: security: PGP Anish Arora CIS694K Introduction to Network Security.
WAP Public Key Infrastructure CSCI – Independent Study Fall 2002 Jaleel Syed Presentation No 5.
Java Security Model Lab#1 I. Omaima Al-Matrafi. Safety features built into the JVM Type-safe reference casting Structured memory access (no pointer arithmetic)
LAB#2 JAVA SECURITY OVERVIEW Prepared by: I.Raniah Alghamdi.
Lesson Title: Introduction to Cryptography Dale R. Thompson Computer Science and Computer Engineering Dept. University of Arkansas
CS255 Programming Assignment #1. Due: Friday Feb 10 th (11:59pm) –Can use extension days Can work in pairs –One solution per pair Test and submit on Sweet.
Cryptographic Techniques Instructor: Jerry Gao Ph.D. San Jose State University URL: May,
Distributed Systems1 Lecture 12: RSA Distributed Systems2 Plan for today: Introduce RSA and a toy example using small numbers. This is.
Cryptography and Network Security Chapter 15 Fourth Edition by William Stallings Lecture slides by Lawrie Brown.
Cryptography1 CPSC 3730 Cryptography Chapter 11, 12 Message Authentication and Hash Functions.
Web services security I
TrustPort Public Key Infrastructure. Keep It Secure Table of contents  Security of electronic communications  Using asymmetric cryptography.
Lecture 4 Cryptographic Tools (cont) modified from slides of Lawrie Brown.
Linux Cryptography overview and How-to’s using OpenSSL
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Lecture 2: Message Authentication Anish Arora CSE5473 Introduction to Network Security.
1 Homework Study Java Cryptography by Reading the rest of slides and accessing Sun ’ s Java website:
CS255 Programming Project 1. Programming Project 1 Due: Friday Feb 8 th (11:59pm)‏ – Can use extension days Can work in pairs – One solution per pair.
Lecture 9: Security via PGP CS 436/636/736 Spring 2012 Nitesh Saxena.
Sorting Out Digital Certificates Bill blog.codingoutloud.com ··· Boston Azure ··· 13·Dec·2012 ···
Csci5233 Computer Security1 GS: Chapter 6 Using Java Cryptography for Authentication.
Signing, Sealing, and Guarding Java TM Objects Li Gong and Roland Schemers Javasoft, Sun Microsystems, Inc. “In This Paper, We Describe a Few New Constructs.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
Identity Management and DNS Services Tianyi XING.
Principles of Computer Programming (using Java) Review Haidong Xue Summer 2011, at GSU.
Network Security. Cryptography Cryptography functions Secret key (e.g., DES) Public key (e.g., RSA) Message digest (e.g., MD5) Security services Privacy:
Message Authentication  message authentication is concerned with: protecting the integrity of a message protecting the integrity of a message validating.
Information Security Principles Assistant Professor Dr. Sana’a Wafa Al-Sayegh 1 st Semester ITGD 2202 University of Palestine.
1 Chapter 11: Message Authentication and Hash Functions Fourth Edition by William Stallings Lecture slides by Lawrie Brown (modified by Prof. M. Singhal,
Key Management with the Voltage Data Protection Server Luther Martin IEEE P May 7, 2007.
WS-Security: SOAP Message Security Web-enhanced Information Management (WHIM) Justin R. Wang Professor Kaiser.
Java Security Pingping Ma Nov 2 nd, Overview Platform Security Cryptography Authentication and Access Control Public Key Infrastructure (PKI)
Key Management Workshop November 1-2, Cryptographic Algorithms, Keys, and other Keying Material  Approved cryptographic algorithms  Security.
SEC835 Practical aspects of security implementation Part 1.
E-Commerce Security Professor: Morteza Anvari Student: Xiaoli Li Student ID: March 10, 2001.
Chapter 1: Introducing JAVA. 2 Introduction Why JAVA Applets and Server Side Programming Very rich GUI libraries Portability (machine independence) A.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Message Authentication Code July Message Authentication Problem  Message Authentication is concerned with:  protecting the integrity of a message.
Cryptography and Network Security (CS435) Part Twelve (Electronic Mail Security)
A Distributive Server Alberto Pareja-Lecaros. Introduction Uses of distributive computing - High powered applications - Ever-expanding server so there’s.
Middleware for Secure Environments Presented by Kemal Altıntaş Hümeyra Topcu-Altıntaş Osman Şen.
COMPS311F Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
Cryptography and Network Security Chapter 12 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
Jaas Introduction. Outline l General overview of Java security Java 2 security model How is security maintained by Java and JVM? How can a programmer.
A Java implemented key collision attack on the Data Encryption Standard (DES) John Loughran, Tom Dowling NUI, Maynooth, Co. Kildare, Ireland PPPJ ‘03.
ICC Module 3 Lesson 5 – IT Security 1 / 4 © 2015 Ph. Janson Information, Computing & Communication Security – Clip 0 – Introduction School of Computer.
Remote Method Invocation by James Hunt, Joel Dominic, and Adam Mcculloch.
1 Session 4 Module 6: Digital signatures. Digital Signatures / Session4 / 2 of 18 Module 4, 5 - Review (1)  Java 2 security model provides a consistent.
Old Dominion University1 eXtensible Access Control Markup Language [OASIS Standard] Kailash Bhoopalam Java and XML.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
JCA, Cryptography for Java Programmer Shawn Shuang Zhang CS 627.
By Marwan Al-Namari & Hafezah Ben Othman Author: William Stallings College of Computer Science at Al-Qunfudah Umm Al-Qura University, KSA, Makkah 1.
SOA Seminar1 Seminar on Service Oriented Architecture RSA.
11/18/2003 Smart Card Authentication Mechanism Tim W. Baldridge, CISSP Marshall Space Flight Center Office of the Chief Information Officer.
Java Cryptography Nick Pullman DSU-MSIA Citigroup Information Security
LAB#4 PROGRAMMING USING JAVA CRYPTOGRAPHIC LIBRARIES CPIT 425.
VNF Package Integrity and Authenticity – Public key based
Optimal Performance of Java Encryption
Presentation transcript:

Content  Introduction  Signing, sealing and guarding Java object Motivation Design ( in terms of API ) Performance  Summary

Introduction  Java Security Package Police-based Configurable Extensible Fine-grained access control

Introduction  Object Orientation Data encapsulation Object name space partition Type safety

Introduction  Distributed Java Application Java remote method Invocation package Convenient and necessary to protect the state of an object for integrity and confidentiality

Introduction  Java.security.SignedObject and java.security.GuardedObject are part of JDK1.2  Javax.crypto.SealedObject is included in JCE1.2

Signing Java Object  Motivation Authorization token Valid authentication across machines (JVMs) Provide authenticity of the state of an object Nested SignedObject Provide confideniality

Signing Java Object  Design SignedObject contains the signed object, must be serializable, and its signature Signing algorithm DSA SHA-1

Signing Java Object  API Design public SignedObject(Serializable object, PrivateKey signingKey, Signature signingEngine) public final void sign(PrivateKey signingkey, Signature signingEngine) public final Object getContent() public final byte[] getSignature(); public final String getAlgorithm(); public final boolean verify(PublicKey verificationKey, Signature verificationEngine);

 Example - Signing an object Signature signingEngine = Signature.getInstance(algorithm, provider) SignedObject so = new SignedObject(myobject, privatekey, signingEngine) Signing Java Object

 Example - Verification Signature verificationEngine = Signature.getInstance(algorithm, provider) If(so.verify(publickey, verificationEngine)) try { Object myobj = so.getContent(); } catch (ClassNotFoundException e) {};

Signing Java Object

Sealing Java Object  Motivation Protect its confidentiality with cryptographic algorithm (e.g. DES) Provide integrity to object

Sealing Java Object  API Design Public SealedObject(Serializable object, Cipher c); Public final Object getContent(Cipher c);

Sealing Java Object  Example - generate a DES cipher KeyGenerator keyGen = KeyGenerator.getInstance(“DES”); SecretKey desKey = KeyGen.generateKey(); Cipher cipher = Cipher.getInstance(“Des”); Cipher.init(Cipher.ENCRYPT_MODE, desKey);

Sealing Java Object  Example - create a SealedObject String s = new String(“Greetings”); SealedObject so = new SealedObject(s, cipher);

Sealing Java Object  Example - decrypt the SealedObject Cipher.init(Cipher.DECRYPT_MODE, desKey); Try { String s = (String) so.getContent(cipher); } catch(ClassNotFoundException e) {}

Sealing Java Object  Performance Similar to SignedObject. Depends on the serialization time and the speed of the underlaying cryptographic algorithm.

Guarding Java Object  Motivation Security check done in the consumer side Don’t know what information to provide Performance (e.g. faster access) Consumer environment too security sensitive Too much information Guaranteed to occur in a context where the protection mechanism would allow it Simplify server program

Sealing Java Object  API Design Public abstract void checkGuard(Object object) Public GuardedObject(Object object, Guard guard); Public Object getObject();

Sealing Java Object  Example FileInputStream fis = new FileInputStream(“/a/b/c”); FilePermission p = new FilePermission(“/a/b/c”, “read”); GuardedObject g = new GuardedObject(fis, p); FileInputStream fis = (FileInputStream) g.getObject();

Related Work  Modula-3 and Oblique is related to SignedObject and SealedObject.  Gated Object model and Guard concept in programming language research is similar to the GuardedObject

Summary  Enrich the existing Java security APIs, so security aware applications can be much easier to build.  Performance is satisfy for commercial use.

Question