CS 255 – Cryptography & Computer Security Programming Project 2 – Winter 04 Priyank Patel

Slides:



Advertisements
Similar presentations
Security Protocols Sathish Vadhiyar Sources / Credits: Kerberos web pages and documents contained / pointed.
Advertisements

Grid Computing, B. Wilkinson, 20045a.1 Security Continued.
Presented by Fengmei Zou Date: Feb. 10, 2000 The Secure Sockets Layer (SSL) Protocol.
SSL CS772 Fall Secure Socket layer Design Goals: SSLv2) SSL should work well with the main web protocols such as HTTP. Confidentiality is the top.
VOYAGER: Yet Another Secure Web Browser to Demonstrate Secure Socket Layer Working and Implementation By : Shrinivas G. Deshpande Advisor: Dr. Chung E.
SSL (Secure Socket Layer)
SSL : An Overview Bruhadeshwar Bezawada International Institute of Information Technology, Hyderabad.
Topic 8: Secure communication in mobile devices. Choice of secure communication protocols, leveraging SSL for remote authentication and using HTTPS for.
Lori Fitterling LI843 SSL Secured Sockets Layer. What is Secure Sockets Layer (SSL)? It is protection of data transferred over the Internet using encryption.
Java Security CS-328. JDK 1.0 Security Model Sandbox Java Virtual Machine Local Code Remote Code Local Host System Resources (File System, Sockets, Printers…)
Grid Security Infrastructure Tutorial Von Welch Distributed Systems Laboratory U. Of Chicago and Argonne National Laboratory.
Csci5233 Computer Security1 GS: Chapter 6 Using Java Cryptography for Authentication (Part B)
Lecture 2: Security Rachana Ananthakrishnan Argonne National Lab.
1 Supplement III: Security Controls What security services should network systems provide? Confidentiality Access Control Integrity Non-repudiation Authentication.
Web Security CS-431. HTTP Authentication Protect web content from those who don’t have a “need to know” Require users to authenticate using a userid/password.
Public Key Infrastructure (PKI) Providing secure communications and authentication over an open network.
Kerberos and PKI Cooperation Daniel Kouřil, Luděk Matyska, Michal Procházka Masaryk University AFS & Kerberos Best Practices Workshop 2006.
16.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft® Windows® Server 2003 Active Directory Infrastructure.
6/3/2015topic1 Web Security Qiang Yang Simon Fraser University Thanks: Francis Lau (HKU)
An Introduction to Security Concepts and Public Key Infrastructure (PKI) Mary Thompson.
LAB#2 JAVA SECURITY OVERVIEW Prepared by: I.Raniah Alghamdi.
1 Encryption What is EncryptionWhat is Encryption Types of EncryptionTypes of Encryption.
Encryption An Overview. Fundamental problems Internet traffic goes through many networks and routers Many of those networks are broadcast media Sniffing.
EECC694 - Shaaban #1 lec #16 Spring Properties of Secure Network Communication Secrecy: Only the sender and intended receiver should be able.
SSL By: Anthony Harris & Adam Shkoler. What is SSL? SSL stands for Secure Sockets Layer SSL is a cryptographic protocol which provides secure communications.
1 Internet and Intranet Protocols and Applications Lecture 9b: How Java Supports SSL March, 2004 Arthur Goldberg Computer Science Department New York University.
SSL Man in the Middle Proxy Srinivas Inguva Dan Boneh Ian Baker Stanford University.
Certificates, SSL and IPsec Ahmed Muaydh Sara Bin Saif Shi-Jey Chou Advisor:Dr. Leszek Lilien.
Secure Sockets SSL/TLS ICW: Lecture 6 Tom Chothia.
SSL Technology Overview and Troubleshooting Tips.
Cryptography 101 Frank Hecker
JSSE API University of Palestine Eng. Wisam Zaqoot April 2010.
1 Lecture 5 George Koutsogiannakis/ Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.
Softsmith Infotech Secure Socket Layer (SSL) and Tomcat.
CSCI 6962: Server-side Design and Programming
Digital Certificates Public Key Deception Digital Certificates Certificate Authorities Public Key Infrastructures (PKIs)
CRYPTOGRAPHY PROGRAMMING ON ANDROID Jinsheng Xu Associate Professor North Carolina A&T State University.
SYSTEM ADMINISTRATION Chapter 13 Security Protocols.
Securing Data at the Application Layer Planning Authenticity and Integrity of Transmitted Data Planning Encryption of Transmitted Data.
SSL and https for Secure Web Communication CSCI 5857: Encoding and Encryption.
Masud Hasan Secue VS Hushmail Project 2.
Securing Large Applications CSCI 5931 Web Security Rungang Mo, Yingying Sun.
Introduction to Secure Sockets Layer (SSL) Protocol Based on:
XMPP Concrete Implementation Updates: 1. Why XMPP 2 »XMPP protocol provides capabilities that allows realization of the NHIN Direct. Simple – Built on.
Module 9: Fundamentals of Securing Network Communication.
SE-2840 Dr. Mark L. Hornick1 Web Application Security.
Building Security into Your System Bill Major Gregory Ponto.
1 Security Protocols in the Internet Source: Chapter 31 Data Communications & Networking Forouzan Third Edition.
Washington System Center © 2005 IBM Corporation August 25, 2005 RDS Training Secure Socket Layer (SSL) Overview z/Series Security (Mary Sweat, Greg Boyd)
Java Security Session 19. Java Security / 2 of 23 Objectives Discuss Java cryptography Explain the Java Security Model Discuss each of the components.
Security fundamentals Topic 5 Using a Public Key Infrastructure.
Cybersecurity Computer Science Innovations, LLC. Certificates Generate Public and Private Key Sign the Public Key with a CA Private Key Append the Cert.
TIBCO BusinessWorks.  Generating the key   You will have to create a certificate as you own the server.  The ‘Keytool’ is a utility provided in the.
1 Thuy, Le Huu | Pentalog VN Web Services 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.
Mar 28, 2003Mårten Trolin1 This lecture Certificates and key management Non-interactive protocols –PGP SSL/TLS –Introduction –Phases –Commands.
TCS Internal Security. 2 TCS Internal Objective Objective :  Android Platform Security Architecture.
4.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 12: Implementing Security.
LAB#8 PKI & DIGITAL CERTIFICATE CPIT 425. Public Key Infrastructure PKI 2  Public key infrastructure is the term used to describe the laws, policies,
EMI is partially funded by the European Commission under Grant Agreement RI Common Authentication Library Daniel Kouril, for the CaNL PT EGI CF.
X509 Web Authentication From the perspective of security or An Introduction to Certificates.
Encryption and Security Tools for IA Management Nick Hornick COSC 481 Spring 2007.
The Secure Sockets Layer (SSL) Protocol
Web Security CS-431.
Data Virtualization Tutorial… SSL with CIS Web Data Sources
Secure Sockets Layer (SSL)
CIPHER SUITE Each name has an algorithm divided into four parts: protocol, key exchange algorithm, encryption algorithm, and checksum. For example, the.
NETWORK PROGRAMMING CNET 441
The Secure Sockets Layer (SSL) Protocol
Unit 8 Network Security.
Presentation transcript:

CS 255 – Cryptography & Computer Security Programming Project 2 – Winter 04 Priyank Patel

Chat System so far … Offline ChatAdmin PT file CT file Chat ServerChat Client Encrypt Decrypt Handle/username Y/N Encrypted Session

New Setup Offline ChatAdmin PT file with privileges CT file Online Certificate Authority Encrypt Decrypt Chat Server Chat Client 1- way authenticated SSL Session Password authenticate client and issue certificate 2- way authenticated SSL Session Room A Room B Determine privileges from certificate Admit to the appropriate room

Requirements Secure all traffic using SSL Use X509 certificates for authentication Use password authentication only to procure certificates Use X509 V3 extensions to provide access control Implement a secure and efficient online certificate revocation system (extra-credit)

Offline PKI Setup keytool – command line utility organizes key material into keystores one keystore file for each entity initially keystore contains the public/private key pair and a self-signed certificate allows storage of trusted certificate entries and trusted certificate chains

Offline PKI Setup (contd..) Generate keystore for the RootCA (verigoodsign, inc.) keytool -genkey –alias mykey -keystore RootCA [asks a bunch of information …] [similar for every other entity] RootCA mykey... ChatServer mykey Client_1 mykey Keystores

Offline PKI Setup (contd..) Everybody trusts the RootCA (verigoodsign) keytool -export -alias mykey -file RootCA.cer -keystore RootCA [dumps the RootCA’s self-signed certificate to disk] keytool -import -trustcacerts -alias rootca -file RegCA.cer -keystore ChatServer [similar for every other entity] RootCA mykey... ChatServer mykey rootca Client_1 mykey rootca Keystores

Offline PKI Setup (contd..) ChatServer public key signed by the RootCA (create the class KeySigner) Create a new certificate for the ChatServer’s public key, signed by the RootCA’s private key ( Chat.X509CertificateGenerator ) Replace self-signed cert in “ChatServer” KS with a certificate signed by the RootCA. java.security.KeyStore allows you to load a keystore from a file and manipulate entries in it. ChatServer mykey (signed by RootCA) rootca ChatServer mykey rootca

SSL – Secure Socket Layer Provides authentication (optional), handshaking and encryption and integrity. Normally, server authenticates to the client, but the client does not as part of the SSL setup(unless explicitly required by the server) Once handshake has been done, symmetric encryption is used for the rest of the session. SSL setup requires 2 steps (roughly speaking) : Trust establishment Key Generation

SSL – JSSE API

javax.net.SSLContext – encapsulates the information required for setting up a connection javax.net.SSL.KeyManager Obtained from the KeyManagerFactory Initialized with the KeyStore and KeyStore password javax.net.SSL.TrustManager Obtained from the TrustManagerFactory Initialized with the KeyStore [does not require the password – because does not require to use the private key of the keystore]

SSL – JSSE API Client sockets : javax.net.ssl.SSLSocket Useful way to create sockets on the client: SSLSocketFactory.createSocket(host, port); SSLSocketFactory created from SSLContext [this call actually connects to the server running on “host” and listening on port number “port”] SSLSocket object also returned on a server when a remote client connects.

SSL – JSSE API Server sockets : javax.net.ssl.SSLServerSocket Useful way to create sockets on the server: SSLServerSocketFactory. createSocket(port); SSLServerSocketFactory created from SSLContext Socket created in this manner is bound to the “port”. Client authentication required or not SSLServerSocket.setNeedClientAuth(true/false)

SSL – JSSE API Server : SSLServerSocket.accept() Returns SSLSocket object on connection from client. No SSL handshake, authentication yet. SSLSock.handshake() : perform actual SSL handshake throws Exception on failure can be one of several exceptions CertificateExpiredException, CertificateParsingexception, etc.

SSL – JSSE API After successful handshake, use like normal sockets. Get a BufferedReader and Writer and start exchanging messages. Every message using the socket’s I/O objects will be encrypted and checked for integrity by the underlying library

Certificate Extensions Customized v3 extensions RoomAExtension and RoomBExtension Are true/false based on the privileges in the initial file Make sense only for the client certificates Client can have access to either room A or room B Rejected if {true,true} or {false,false}

Certificate Extensions Where in the system do you check for valid privileges? At the time when the client handshakes with the server. A question of trust? => modification required in the TrustManager Extend the TrustManager to MyTrustManager (MTM) Use MTM with your SSLContext on the server.

Certificate Extensions (contd..) MyTrustManager class Override checkClientTrusted(…) Check if the client certificate has the invalid privileges [i.e. allowed in both rooms or none] If failure, throw CertificateException MTM will be called by the system during the SSL handshake.

Certificate Revocation Need to add checks on the ChatServer and the CertificateAuthority. Space-efficient.

Finally … Document succinctly but comprehensively. (without aiming for the Pulitzer prize!) Best of luck…