Introduction to Secure Sockets Layer
-
Upload
nascenia-it -
Category
Technology
-
view
11.721 -
download
3
description
Transcript of Introduction to Secure Sockets Layer
SSL: SECURED SOCKET LAYER
Presented by:1. Sheikh Shaer Hassan2. Taj Islam3. Mohammad Mahfuzur Rahman 4. Khaled Md. Imran
www.nascenia.com
BACKGROUNDWHY AND HOWHOW TO CHECK IN THE BROWSER.
MAIN CONCERNS SSL is a Secure Sockets Layer and
SSL is the standard security technology for establishing an encrypted link between a web server and a browser.
This link ensures that all data passed between the web server and browsers remain private and integral
Authentication of server– How does client know who they are dealing with?
Information integrity– How do we know third party has not altered data en
route?
Change so item shipped to Darth
Address information
Bob’s web site
Alice thinks she is at Bob’s site, but Darth is spoofing it
Bob’s web site
SSL HISTORY
Netscape developed The Secure Sockets Layer Protocol (SSL) in 1994, as a response to the growing concern over security on the Internet.
SSL was originally developed for securing web browser and server communications.
SSL VERSION
There are several versions of the SSL protocol defined. The latest version, the Transport Layer Security Protocol (TLS), is based on SSL 3.0
SSL Version 1.0 SSL Version 2.0 SSL Version 3.0 TLS Version 1.0 TLS Version 1.0 with SSL Version 3.0
compatibility
HOW IT WORKS
Encryption of sensitive data like DES,RSA algorithm
Sent between client and server through Certification like very sign
HOW IT WORKS IN BROWSER: HTTP
www.aiub.edu
HOW IT WORKS IN BROWSER: HTTPS
www.gmail.com
HOW IT WORKS IN BROWSER: HTTPS WITHOUT CERTIFICATION
https://www.varsityadmission.com/
HOW IT WORKS IN BROWSER: HTTPS WITHOUT CERTIFICATION
OVERALL PROCESS AND FIRST FOUR STEPS
CERTIFICATES
Web sites that deal in ecommerce must have certificates for authentication Installed at server Transmitted to client for authentication Validated using CA’s public key
Client machine
Browser
Request for secure session
Server machine
Web Container(JSP, ASP)
Certificatesigned by CA
CA
SECURE SOCKET LAYER PROTOCOL Secure Socket Layer protocol for web communication
Latest upgrade: Transport Layer Security (TLS) Same structure as SSL, somewhat more secure
SSL PROTOCOL: PHASE 1Phase 1: Information exchange Problem: Large number of encryption algorithms in use
How do client and server agree on which to use? How does client tell server which ones it supports?
SSL PROTOCOL: PHASE 1 Client passes preferred algorithms to server via
https request Public key encryption algorithms Private key encryption algorithms Hash algorithms Compression algorithms Also random number for key generation
Server replies with algorithms that will be used Also passes own random number
SSL PROTOCOL: PHASE 2Phase 2: Server Identification and Key Exchange Server passes their certificates to client
Client uses issuer public key to verify identity Client retrieves server public key from certificate Server may pass many certificates for authentication
SSL PROTOCOL: PHASE 2
If no certificate containing a public key, separate public key must be passed
Certificate contains RSA public key, so no separate key passed
No certificate, so Diffie-Hellman key exchange parameters passed
SSL PROTOCOL: PHASE 2 Server can also request appropriate client
certificates to authenticate client Online banking Remote access to company database
SSL PROTOCOL: PHASE 3Phase 3: Client Identification and Key Exchange Client sends certificate or public key if requested
by server
SSL KEY GENERATION Client generates “pre-master key” Sends to client encrypted with server public
key Client and server use to generate master key
used to create cipher keys Also use client, server random numbers exchanged
in phase 1
SSL KEY GENERATION
SSL KEY GENERATION
SSL KEY GENERATION Key material used to generate:
Keys for encryption and authentication (MAC) IV’s for block cipher chaining
PHASE 4: FINAL HANDSHAKEClient and server verify protocols and keys
Sender signs/encrypts “finished” message
Receiver decrypts/verifies message to confirm keys
SSL DATA TRANSMISSION Message broken into blocks
Block compressed
Compressed block hashed with authentication key to get MAC (message integrity)
Compressed block + MAC encrypted with cipher key
Encrypted block + record protocol header with version/length information sent
SSL DATA TRANSMISSION
MAC algorithm is modified HMAC Two stage hash with secret MAC key inserted at each stage Values similar to IPAD and OPAD also inserted
SSL DATA TRANSMISSION
ALGORITHM USED
CERTIFICATE]ION AUTHORITY
SSL IN BANGLADESH
ALGORITHM USED DES. Data Encryption Standard, an encryption algorithm used by the U.S.
Government. DSA. Digital Signature Algorithm, part of the digital authentication
standard used by the U.S. Government. KEA. Key Exchange Algorithm, an algorithm used for key exchange by the
U.S. Government. MD5. Message Digest algorithm developed by Rivest. RC2 and RC4. Rivest encryption ciphers developed for RSA Data
Security. RSA. A public-key algorithm for both encryption and authentication.
Developed by Rivest, Shamir, and Adleman. RSA key exchange. A key-exchange algorithm for SSL based on the RSA
algorithm. SHA-1. Secure Hash Algorithm, a hash function used by the U.S.
Government. SKIPJACK. A classified symmetric-key algorithm implemented in
FORTEZZA-compliant hardware used by the U.S. Government. (For more information, see FORTEZZA Cipher Suites.)
Triple-DES. DES applied three times.
CERTIFICATION AUTHORITY
50 root certificate authority worldwide Needs to listed on browsers. Undergo annual security audit (e.g. by
Webtrust). The large authorities are Verisign (acquired
Thawte and Geotrust) has 48 %, GoDaddy 23%, and Combodo 15%, others 14%
IN BANGLADESH
SSL Wireless provides Verisign certification: www.sslwireless.com
CODING
DIFFERENT VERSIONS OF SSL
OPENSSL•OpenSSL is an open source implementation of the SSL and TLS protocols.
•The core library (written in the C programming language) implements the basic cryptographic functions and provides various utility functions.
OVERVIEW OF SSL APPLICATION WITH OPENSSL APIS
INITIALIZATION SSL_library_init();/* load encryption & hash
algorithms for SSL */ SSL_load_error_strings(); /* load the error strings
for good error reporting */
meth = SSLv3_method();
ctx = SSL_CTX_new(meth); /*creates a new SSL_CTX object as framework to establish TLS/SSL enabled connections */
CERTIFICATE VERIFICATION IN THE CLIENT SIDE err = SSL_connect(ssl);
/* initiates the TLS/SSL handshake */if(SSL_get_peer_certificate(ssl) != NULL)
{if(SSL_get_verify_result(ssl) == X509_V_OK)
BIO_printf(bio_c_out, "client verification with SSL_get_verify_result() succeeded.\n"); else{BIO_printf(bio_err, "client verification with SSL_get_verify_result() failed.\n");
exit(1);}}elseBIO_printf(bio_c_out, -the peer certificate was not presented.\n-);
SSL HANDSHAKE The SSL handshake is a complicated process that involves
significant cryptographic key exchanges. However, the handshake can be completed by calling SSL_accept() on the SSL server and SSL_connect() on the SSL client.
The SSL_accept() API waits for an SSL handshake initiation from the SSL client.
On server side-
err = SSL_accept(ssl); On client side-
err = SSL_connect(ssl);
SSL VERSIONS Version 1.0 was never publicly released; version 2.0 was released in February
1995 but "contained a number of security flaws which ultimately led to the design of SSL version 3.0"
SSL Version 1.0 SSL Version 2.0 SSL Version 3.0 TLS version 1.0 TLS version 1.1 TLS version 1.2
FLAWS OF SSL 2.0
Identical cryptographic keys are used for message authentication and encryption.
SSL v2 has a weak MAC construction and relies solely on the MD5 hash function.
SSL v2 does not have any protection for the handshake, meaning a man-in-the-middle downgrade attack can go undetected.
SSL VERSION 3.0 VERSUS SSL VERSION 2.0
Uses SHA-1 instead of MD5: The SHA-1 hashing algorithm is considered to be more secure than the MD5 hashing algorithm. Having SHA-1 allows SSL Version 3.0 to support additional cipher suites which use SHA-1 instead of MD5.
Reduces MITM attack: SSL Version 3.0 protocol reduces man-in-the-middle (MITM) type of attacks from occurring during SSL handshake processing. In SSL Version 2.0, it was possible, though unlikely, that a MITM attack could accomplish cipher specification weakening.
SOURCES USED
Cryptography and Network Security, Principles and Practices, 4th Ed., William Stallings
www.wikipedia.com A few other internet resources
THANK YOU