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.

Slides:



Advertisements
Similar presentations
Spring 2000CS 4611 Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
Advertisements

Building web applications on top of encrypted data using Mylar Presented by Tenglu Liang Tai Liu.
Java Security. Overview Hermetically Sealed vs. Networked Executable Content (Web Pages & ) Java Security on the Browser Java Security in the Enterprise.
Topic 7: Using cryptography in mobile computing. Cryptography basics: symmetric, public-key, hash function and digital signature Cryptography, describing.
Lecture 5: security: PGP Anish Arora CIS694K Introduction to Network Security.
Security Overview Hofstra University University College for Continuing Education - Advanced Java Programming Lecturer: Engin Yalt May 24, 2006.
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
1 Extensible Security Architectures for Java Authors: Dan S.Wallch, Dirk Balfanz Presented by Moonjoo Kim.
1 Pertemuan 12 Security Matakuliah: H0242 / Keamanan Jaringan Tahun: 2006 Versi: 1.
BY MUKTADIUR RAHMAN MAY 06, 2010 INTERODUCTION TO CRYPTOGRAPHY.
Security Internet Management & Security 06 Learning outcomes At the end of this session, you should be able to: –Describe the reasons for having system.
Ariel Eizenberg PPP Security Features Ariel Eizenberg
Security Internet Management & Security 06 Learning outcomes At the end of this session, you should be able to: –Describe the reasons for having system.
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.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
1 Homework Study Java Cryptography by Reading the rest of slides and accessing Sun ’ s Java website:
Lecture 9: Security via PGP CS 436/636/736 Spring 2012 Nitesh Saxena.
Content  Introduction  Signing, sealing and guarding Java object Motivation Design ( in terms of API ) Performance  Summary.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
Security. Cryptography Why Cryptography Symmetric Encryption – Key exchange Public-Key Cryptography – Key exchange – Certification.
S/MIME and CMS Presentation for CSE712 By Yi Wen Instructor: Dr. Aidong Zhang.
COEN 350 Mobile Security. Wireless Security Wireless offers additional challenges: Physical media can easily be sniffed. War Driving Legal? U.S. federal.
Security.  is one of the most widely used and regarded network services  currently message contents are not secure may be inspected either.
Java Security Pingping Ma Nov 2 nd, Overview Platform Security Cryptography Authentication and Access Control Public Key Infrastructure (PKI)
Cryptography, Authentication and Digital Signatures
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.
Java Security Nathan Moore CS 665. Overview Survey of Java Inherent Security Properties Java Runtime Environment Java Virtual Machine Java Security Model.
Module 3 – Cryptography Cryptography basics Ciphers Symmetric Key Algorithms Public Key Algorithms Message Digests Digital Signatures.
Cryptography and Network Security (CS435) Part Twelve (Electronic Mail Security)
Chapter 15: Electronic Mail Security
Computer Security: Principles and Practice First Edition by William Stallings and Lawrie Brown Lecture slides by Lawrie Brown Chapter 2 – Cryptographic.
Strong Security for Distributed File Systems Group A3 Ka Hou Wong Jahanzeb Faizan Jonathan Sippel.
11.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 11 Message Integrity and Message Authentication.
MagicNET: Security System for Protection of Mobile Agents.
Middleware for Secure Environments Presented by Kemal Altıntaş Hümeyra Topcu-Altıntaş Osman Şen.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
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.
Security PGP IT352 | Network Security |Najwa AlGhamdi 1.
Enterprise Security API (ESAPI) 2.0 Crypto Changes
Lecture 2: Introduction to Cryptography
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
1 Session 3 Module 4: Java Security Module 5: Cryptography.
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.
Java Security Session 19. Java Security / 2 of 23 Objectives Discuss Java cryptography Explain the Java Security Model Discuss each of the components.
PGP & IP Security  Pretty Good Privacy – PGP Pretty Good Privacy  IP Security. IP Security.
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.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
CSI-09 COMMUNICATION TECHNOLOGY SECURITY MECHANISMS IN A NETWORK AUTHOR - V. V. SUBRAHMANYAM.
Security  is one of the most widely used and regarded network services  currently message contents are not secure may be inspected either.
By Marwan Al-Namari & Hafezah Ben Othman Author: William Stallings College of Computer Science at Al-Qunfudah Umm Al-Qura University, KSA, Makkah 1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
LAB#4 PROGRAMMING USING JAVA CRYPTOGRAPHIC LIBRARIES CPIT 425.
Outline What does the OS protect? Authentication for operating systems
Outline What does the OS protect? Authentication for operating systems
Optimal Performance of Java Encryption
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Chinese wall model in the internet Environment
Presentation transcript:

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 for Signing, Sealing, and Guarding Java Objects. These Constructs Enrich the Existing Java Security APIs So That a Wide Range of Security-aware Application Can Be Significantly Easier to Build.” Presented by Yongqiang Li

A Tutorial of Three Java Security Classes: java.security.SignedObject java.security.GuardedObject javax.crypto.SealedObject

Outline  Introduction  Signing Java Objects  Sealing Java Objects  Guarding Java Objects  Conclusion  Questions

Introduction  Java language is widely used to build applications –JDK: JVM, javac, APIs, simplicity  “…the base platform provides a consistent security model that supports…” – policy based –configurable –extensible –fine-grained access control  Protection provided by the underlying object orientation –Data encapsulation –Object name space partition –Type safety  Distributed Java application – “…protect the state of an object for integrity and confidentiality” Runtime system Transit Stored externally

Introduction 2  java.security.SignedObject  java.security.GuardedObject  Javax.crypto.SealedObject } JDK1.2 - JCE1.2

Signing Java Objects 1  Protect object integrity  A serializable object - original object  SignedObject –Signed Object Deep copy of original In serialized form –Signature Sign algorithm –DSA(Digital Signature Algorithm) (NIST FIPS 186) – SHA-1(RFC 1321) message digest algorithm –MD5(NIST FIPS 180-1) message digest algorithm –Immutable signature Original object SignedObject  What is the difference between object signing and code signing ?

Signing Java Objects 2  Potential applications of a SignObject –as an unforgeable authorization token in any Java runtime –“…transmitted across JVMs and authenticity an still be verified” –“… to sign and serialize an object for storage outside the java runtime” –“A series of nested SignedObject can be used to construct a logical sequence of signatures”

Signing Java Objects 3  API Design –Class SignedObject 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);

 Examples –Signing Signature signingEngine = Signature.getInstance(algorithm, provider); SignedObject so = new SignedObject(myobject, privatekey, signingEngine); Signing Java Objects 4 –Verifying Signature verificationEngine = Signature.getInstance(algorithm, provider); if(so.verify(publicKey, verificationEngine)) try { Object myobj = so.getContent(); } catch (ClassNotFoundException e) {};

Signing Java Objects 5  Performance Object size (bytes) Serialization (ms) 512-bit SHA-1/DSA1024-bit SHA-1/DSA Signing (ms) Verification (ms) Signing (ms) Verification (ms) K K JDK1.2beta, 166MHZ Sun Sparc Ultra-1,Solaris 2.5.1, 1000 rounds

Sealing Java Objects 1  Protect object confidentiality  A serializable object  A cryptographic algorithm –A bulk(symmetric key) encryption algorithm -DES, IDEA, RC4  Encryption  Decryption  Deserialization cipher text Original object SealedObject

Sealing Java Objects 2 cipher text Original object SignedObject and SealedObject  Using both SignedObject and SealedObject provides integrity and confidentiality –First create SignedObject –Then create SealedObject Signature  Why is blindly signing encrypted data sometimes dangerous?

Sealing Java Objects 3 –Decryption Cipher.init(Cipher.DECRYPT_MODE), desKey); try { String s = (String)so.getContent(cipher); } catch (ClassNotFoundException e) {};  Examples –Encryption KenGenerator keyGen = KeyGenerator.getInstance(“DES”); SecretKey desKey = keyGen.generateKey(); Cipher cipher = Cipher.getInstance(“DES”); Cipher.init(Cipher.ENCRYPT_MODE, desKey); String s = new String(“Greeting”); SealedObject so = new SealedObject(s, cipher);  API design –Class SealedObject public SealedObject(Serializable object, Cipher c); public final Object getContent(Cipher c);

Guarding Java Objects 1 Request object return object return guardedObject Request object Check permission Return object Check permission Provider Consumer Provider Don’t know what information needed by provider Don’t want a dialog for each request Information too security sensitive “… too much information to pass on”

Guarding Java Objects 2  What is the GuardedObject –“A GuardedObject is an object that is used to protect access to another object” requester Protected object GuardedObject Guard object 1.Request access go.getObjedct() 2. Check guard g.checkGuard() 3. Return reference

Guarding Java Objects 3  Benefits of using GuardedObject –“… access to a protected object is guaranteed to occur in a context where the protection mechanism would allow it” –Simplify sever programs –Replace access control lists with object stores –“A guarded object class itself does not need to know its own protection semantics” –“…encapsulate protection mechanisms for an object, which can differ for its different method invocations, all inside a guard.”

Guarding Java Objects 4  API design –Interface Guard public abstract void checkGuard(Object object); –Class GuardedObject public GuardedObject(Object object, Guard guard); public Object getObject();

Guarding Java Objects 5  Examples –Encapulate an objects protection semeantics inside a guard FileInputStream fis = new FileInputStream(“/a/b/c”); –Provider side Public abstract Permission implements Guard{ … Public void checkGuard{ AccessController.checkPermission(this); } FileInputStream fis = new FileInputStream(“/a/b/c”); FilePermission = new FilePermission(“/a/b/c”, “read”); GuardedObject g = new GuardedObject(fis,p); –Consumer side FileInputStream fis = (FileInputStream)g.getObject();

Conclusion  “The constructs enrich the existing Java security APIs so that security-aware application can be much easier to build.”  “The constructs are practical and usable in commercial products.”

Question?