The Beautiful Features of SSL And Why You Want to Use Them?



Similar documents
Communication Systems 16 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2009

Real-Time Communication Security: SSL/TLS. Guevara Noubir CSU610

Overview of CSS SSL. SSL Cryptography Overview CHAPTER

Communication Systems SSL

Chapter 17. Transport-Level Security

Overview. SSL Cryptography Overview CHAPTER 1

CSC 474 Information Systems Security

CSC Network Security

Managing and Securing Computer Networks. Guy Leduc. Chapter 4: Securing TCP. connections. connections. Chapter goals: security in practice:

Web Security Considerations

Security Engineering Part III Network Security. Security Protocols (I): SSL/TLS

How To Understand And Understand The Ssl Protocol ( And Its Security Features (Protocol)

Communication Security for Applications

Authenticity of Public Keys

Lecture 31 SSL. SSL: Secure Socket Layer. History SSL SSL. Security April 13, 2005

ERserver. iseries. Securing applications with SSL

Network Security Web Security and SSL/TLS. Angelos Keromytis Columbia University

Announcement. Final exam: Wed, June 9, 9:30-11:18 Scope: materials after RSA (but you need to know RSA) Open books, open notes. Calculators allowed.

Secure Socket Layer/ Transport Layer Security (SSL/TLS)

Lecture 7: Transport Level Security SSL/TLS. Course Admin

mod_ssl Cryptographic Techniques

How to get SSL into Apache?

SECURE SOCKETS LAYER (SSL)

Certificates and network security

Secure Sockets Layer (SSL ) / Transport Layer Security (TLS) Network Security Products S31213

Secure Socket Layer. Security Threat Classifications

Overview SSL/TLS HTTPS SSH. TLS Protocol Architecture TLS Handshake Protocol TLS Record Protocol. SSH Protocol Architecture SSH Transport Protocol

Transport Layer Security Protocols

Apache Security with SSL Using Ubuntu

Outline. Transport Layer Security (TLS) Security Protocols (bmevihim132)

Secure Socket Layer (SSL) and Transport Layer Security (TLS)

TLS/SSL in distributed systems. Eugen Babinciuc

Chapter 7 Transport-Level Security

Cryptography and Network Security Sicurezza delle reti e dei sistemi informatici SSL/TSL

Enabling SSL and Client Certificates on the SAP J2EE Engine

SSL/TLS: The Ugly Truth

Secure Socket Layer. Carlo U. Nicola, SGI FHNW With extracts from publications of : William Stallings.

SSL: Secure Socket Layer

CS 356 Lecture 27 Internet Security Protocols. Spring 2013

Apache, SSL and Digital Signatures Using FreeBSD

Security Protocols and Infrastructures. h_da, Winter Term 2011/2012

SSL Secure Socket Layer

Secure Socket Layer (SSL) and Trnasport Layer Security (TLS)

[SMO-SFO-ICO-PE-046-GU-

Network Security Essentials Chapter 5

3.2: Transport Layer: SSL/TLS Secure Socket Layer (SSL) Transport Layer Security (TLS) Protocol

Overview of SSL. Outline. CSC/ECE 574 Computer and Network Security. Reminder: What Layer? Protocols. SSL Architecture

Using etoken for SSL Web Authentication. SSL V3.0 Overview

Transport Level Security

Secure Socket Layer. Introduction Overview of SSL What SSL is Useful For

Protocol Rollback and Network Security

Secure Sockets Layer (SSL) / Transport Layer Security (TLS)

Secure Socket Layer (TLS) Carlo U. Nicola, SGI FHNW With extracts from publications of : William Stallings.

ISA 562 Information System Security

Information Security

SBClient SSL. Ehab AbuShmais

ERserver. iseries. Secure Sockets Layer (SSL)

The Secure Sockets Layer (SSL)

Managing SSL certificates in the ServerView Suite

Securing Your Apache Web Server With a Thawte Digital Certificate

Web Security: Encryption & Authentication

SSL Secure Socket Layer

Learning Network Security with SSL The OpenSSL Way

WEB Security & SET. Outline. Web Security Considerations. Web Security Considerations. Secure Socket Layer (SSL) and Transport Layer Security (TLS)

Web Security. Mahalingam Ramkumar

Secure Sockets Layer

Low-Level TLS Hacking

HTTPS: Transport-Layer Security (TLS), aka Secure Sockets Layer (SSL)

Today s Topics SSL/TLS. Certification Authorities VPN. Server Certificates Client Certificates. Trust Registration Authorities

Dr. Cunsheng DING HKUST, Hong Kong. Security Protocols. Security Protocols. Cunsheng Ding, HKUST COMP685C

As enterprises conduct more and more

Apache Security with SSL Using Linux

Lecture 4: Transport Layer Security (secure Socket Layer)

Security. Contents. S Wireless Personal, Local, Metropolitan, and Wide Area Networks 1

Software Engineering 4C03 Research Project. An Overview of Secure Transmission on the World Wide Web. Sean MacDonald

ISM/ISC Middleware Module

Lab Exercise SSL/TLS. Objective. Step 1: Open a Trace. Step 2: Inspect the Trace

RED HAT SECURE WEB SERVER 3.0 DEVELOPER EDITION FOR COBALT NETWORKS SERVERS

Unifying Information Security. Implementing TLS on the CLEARSWIFT SECURE Gateway

SSL/TLS. What Layer? History. SSL vs. IPsec. SSL Architecture. SSL Architecture. IT443 Network Security Administration Instructor: Bo Sheng

Web Application Entity Session Management using the eid Card Frank Cornelis 03/03/2010. Fedict All rights reserved

2014 IBM Corporation

Web Security (SSL) Tecniche di Sicurezza dei Sistemi 1

Lab 7. Answer. Figure 1

Computer and Network Security

SSL A discussion of the Secure Socket Layer

Implementing Secure Sockets Layer on iseries

Secure network protocols: how SSL/TLS, SSH, SFTP and FTPS work

Implementing Secure Sockets Layer (SSL) on i

Binding Security Tokens to TLS Channels. A. Langley, Google Inc. D. Balfanz, Google Inc. A. Popov, Microsoft Corp.

By Jan De Clercq. Understanding. and Leveraging SSL-TLS. for Secure Communications

MatrixSSL Developer s Guide

Angel Dichev RIG, SAP Labs

Introduction. Haroula Zouridaki Mohammed Bin Abdullah Waheed Qureshi

Security. Learning Objectives. This module will help you...

SECURE SOCKETS LAYER (SSL) SECURE SOCKETS LAYER (SSL) SSL ARCHITECTURE SSL/TLS DIFFERENCES SSL ARCHITECTURE. INFS 766 Internet Security Protocols

SSL Protect your users, start with yourself

Other VPNs TLS/SSL, PPTP, L2TP. Advanced Computer Networks SS2005 Jürgen Häuselhofer

INF3510 Information Security University of Oslo Spring Lecture 9 Communication Security. Audun Jøsang

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Transcription:

The Beautiful Features of SSL And Why You Want to Use Them? Holger Reif <holger@reif.net> 1999/08/24

Content What is SSL? Apache based SSL servers mod_ssl Crypto basics SSL basics Server certificates and CAs Session concept and caching SSL and Authentication Client certificates Selected aspects Holger Reif <holger@reif.net> 2/51

What is SSL? SSL = Secure Socket Layer ancestor of TLS What is TLS? Transport Layer Security Protocol that sits between TCP/IP socket and application developed since 1994 TLS published as RFC current version: TLS 1.0 (SSL 3.1) Holger Reif <holger@reif.net> 3/51

What can SSL? secure your data transport secure tunnel for applications provide secured access to protected content (intranet usage) better authentication mechanisms protect from some types of spoofing attacks handshake needs interaktion Holger Reif <holger@reif.net> 4/51

What can SSL not? enhance your overall server security at the tunnel s end the data are clear again process credit cards you can only secure the transport provide for non-repudiation application data are not secured themselves Holger Reif <holger@reif.net> 5/51

Design goals of SSL Cryptographic secure to much snake oil out there Interoperability Can two person speaking same protocol communicate? Extensibility What about new requirements? Relative efficiency don t require to much resources! Holger Reif <holger@reif.net> 6/51

Apache based SSL server History What is available - a comparison Suggestions for arguments when you need to choose Holger Reif <holger@reif.net> 7/51

Apache based SSL server history time Hockey Raven SSL Raven SSL RH SWS RH SWS Apache-SSL Apache-SSL U.S. 1.0 mod_ssl mod_ssl 2.0 2.1 Stronghold Sioux 1.1 Stronghold 1.0 (free) 1995 1996 1997 1998 1999 Holger Reif <holger@reif.net> 8/51

What is available - a comparison Product Apache-SSL mod_ssl RH SS Raven SSL Stronghold Hockey Author B. Laurie R. Engeschall RedHat Covalent C2 Net M. Steiger Location UK DE US US US US License open-source open-source commercial commercial commercial commercial Price $0 $0 $249 $357 $995 $149 (bundle) Availability world wide world wide US only US only world wide US only US Usage restricted restricted unlimited unlimited unlimited Unlimited Support voluntary, always free voluntary, always free conceding, 90 d. free conceding, 90 d. free conceding, 90 d. free conceding, 90 d. free SSL Engine OpenSSL (+ RSAref) OpenSSL (+ RSAref) OpenSSL + BSafe OpenSSL + BSafe SSLeay OpenSSL + BSafe Version 1.38 2.3.10 2.0 2.4.2 2.2.8 Holger Reif <holger@reif.net> 9/51

Suggestions for arguments when you need to choose Legal - crypto export control Apache can t contain cryptography at all US Products are not available elsewhere Legal - intellectual property RSA algorithm patented in USA by RSADSI RC2 treated as trade secret of RSADSI quality of documentation? probable future developments? mandatory support needed? flexibility / integration of other modules? Holger Reif <holger@reif.net> 10/51

mod_ssl architecture Holger Reif <holger@reif.net> 11/51

Installation of mod_ssl extract sources build openssl build mm lib $ gunzip -c apache_1.3.6.tar.gz tar xf - $ gunzip -c mod_ssl-2.3.10-1.3.6.tar.gz tar xf - $ gunzip -c openssl-0.9.4.tar.gz tar xf - $ gunzip -c mm-1.0.10.tar.gz tar xf - $ cd openssl-0.9.4 $./config $ make $ cd.. $ cd mm-1.0.10 $./configure --disable-shared $ make $ cd.. Holger Reif <holger@reif.net> 12/51

Installation of mod_ssl (contd.) apply mod_ssl to apache build apache test the server $ cd mod_ssl-2.3.10-1.3.6 $./configure --with-apache=../apache_1.3.6 \ --with-ssl=../openssl-0.9.4 --with-mm=../mm-1.0.10 $ cd.. $ cd apache-1.3.6 $ make $ make certificate $ make install $ cd.. $ /usr/local/apache/sbin/httpd -DSSL $ netscape https://localhost Holger Reif <holger@reif.net> 13/51

Crypto basics Symmetric Cryptography both partners share the same key Asymmetric Cryptography key pair: private is secret, public wellknown efficient scaling - PKI (public key infrastructure) Hash functions calculates short but unique fingerprint of data different combinations in use key exchange Holger Reif <holger@reif.net> 14/51

SSL basics How is SSL structured? The different protocols Record Layer A full handshake Holger Reif <holger@reif.net> 15/51

How is SSL structured? Application Handshake protocol Alert protocol Change cipher spec protocol Record Layer TCP Layer IP Layer App data protocol SSL/TLS layer Socket interface network stack Holger Reif <holger@reif.net> 16/51

The different protocols Record layer (Record protocol) requires reliable transport (no missing packets, correct order) Blocking, compression, encryption, integrity Handshake protocol (Re-)Negotiate parameters Alert protocol Notify about possible problems Change cipher spec protocol short cut Holger Reif <holger@reif.net> 17/51

Record Layer picture taken from mod_ssl manual Holger Reif <holger@reif.net> 18/51

A full handshake ClientHello (HelloRequest) ServerHello Certificate [ServerKeyExchange] ServerHelloDone unprotected ClientKeyExchange ChangeCipherSpec Finished Application Data ChangeCipherSpec Finished Application Data Protected by new cipher spec bold messages only for server authentication Holger Reif <holger@reif.net> 19/51

Why do I need a server certificate? Certificate = digital passport your name your (public) key certification authority s name signature of that authority authenticating yourself in the web world security to the wrong person is no security at all! Holger Reif <holger@reif.net> 20/51

A sample certificate screenshot of security info of https://holger.reif.net Holger Reif <holger@reif.net> 21/51

Why do I need a CA? CA assures your identity but you don t need one build your own (see later) Question: Do you accept ID cards issued by an unknown golf club? popular Browsers have preconfigured CAs Verisign, Thawte, lots of others... You are not recognized automatically if you don t have a cert issued by them Holger Reif <holger@reif.net> 22/51

session concept and caching Why is the handshake expensive? Session concept - Find a way to avoid usage of server s private Key An abbreviated handshake (session resume) session caching concepts Holger Reif <holger@reif.net> 23/51

Why is the handshake expensive? Client side generating random nonce generating a random secret checking a signature with CA s public key encrypting random secret with server public key calculating key from raw material (hash) Server side generating random nonce decrypting random secret with private key calculating key from raw material (hash) Holger Reif <holger@reif.net> 24/51

Session concept - Find a way to avoid usage of server s private Key secret values premaster / master secret Ciphersuite compression, key exchange, authentication, encryption, MAC cryptographic parameters encryption keys integrity preserving keys initialization vectors Session Keys Holger Reif <holger@reif.net> 25/51

An abbreviated handshake (session resume) ClientHello (HelloRequest) ServerHello unprotected ChangeCipherSpec Finished Application Data ChangeCipherSpec Finished Application Data Protected by new cipher spec Holger Reif <holger@reif.net> 26/51

Session caching concepts Separate process Approach (Apache-SSL) gcache connected over socket (TCP/IP or UNIX domain socket) SSLCacheServerPath /path/to/gcache_exe SSLCacheServerPort 12345 /path/to/socket can (in principle) work across multiple servers DBM approach (mod_ssl) locally stored in vendor or mod_ssl supplied DBM library SSLSessionCache dbm:/path/to/dbmfile stable solution w/o problem of child processes Holger Reif <holger@reif.net> 27/51

Session caching concepts (contd.) Shared memory (mod_ssl) hash table in memory SSLSessionCache shm:/path/to/keyfile extremely fast not very portable not available on every platform Holger Reif <holger@reif.net> 28/51

SSL and Authentication host based authentication cookie based authentication Basic authentication client based authentication - FakeBasicAuth client based authentication - SSLRequire Holger Reif <holger@reif.net> 29/51

Host based Authentication only certain IP addresses allowed usual problem: IP-Spoofing addressed by handshake remaining problem: man in the middle (MITM) sitting at intermediate router Holger Reif <holger@reif.net> 30/51

Cookie based authentication, Basic authentication none can observe authentication data none can spoof data improved security! But cookies are stored unprotected on user s disk works the same way as with non-ssl hosts already understood easy utilization First starters step-up Holger Reif <holger@reif.net> 31/51

SSL state-of-the-art authentication: client certificates overcomes the problems of passwords and stored cookies Contains authenticated information (e.g. name, age, affiliation) no need for further questions user has better control over his information can provide different certificates to different servers deploys PKI (public key infrastructure) step to single logon instead of multiple passwords a single certificate Holger Reif <holger@reif.net> 32/51

Renegotiation (with client certificate required) ClientHello Certificate CertificateVerify ChangeCipherSpec Finished (HelloRequest) ServerHello CertificateRequest ServerHelloDone ChangeCipherSpec Protected by current cipher spec Protected by new cipher spec Application Data Finished Application Data Holger Reif <holger@reif.net> 33/51

Traditional FakeBasicAuth directive Simplest approach maps subject s DN into Basic Authentication user name password always set to password (encrypted: xxj31zmtzzkva) inflexible No distinction between different CAs No grouping according to structure in DN Just works... Holger Reif <holger@reif.net> 34/51

Authentication check within CGI SSL modules export a lot of environment variables access to whole certificate (opt.) fine grained access to certificate content via variables information about cipher strength via variables Holger Reif <holger@reif.net> 35/51

SSLRequire Approach of mod_ssl mod_ssl comes with new directive: SSLRequire requirement is a regular expression CGI variables available incorporates aspects from host based access can be combined with other requirements not only for client authentication usable Holger Reif <holger@reif.net> 36/51

Renegotiation again SSLRequire might force a renegotiation cipher not strong enough client cert not requested during initial handshake client cert issued by special CA wanted per directory requirements not known during initial handshake (cf. name based SSL Host problem) supported by all OpenSSL based Apache solutions feature needed for Global Server IDs Holger Reif <holger@reif.net> 37/51

Example: SSLRequire Approach of mod_ssl access for bearers with a recently issued client certificate with strong cryptographically protected SSL connection during normal working hours or access from the intranet SSLRequire ( ( %{SSL_CIPHER}!~ m/^(exp NULL)-/ \ and %{SSL_CLIENT_S_DN_O} eq Snake Oil, Ltd. \ and %{SSL_CLIENT_S_DN_OU} in { staff, CA, Dev } \ and %{SSL_CLIENT_V_START} >= 19990504 \ and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 \ ) or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ Holger Reif <holger@reif.net> 38/51

Client certificates - be your own CA + full control over issuing process + ability to control the cert content + low price for additional certs + tight integration of identification - need for secure key storage - fight with CA management software - fight with browser compatibility - keep it running Holger Reif <holger@reif.net> 39/51

Open Source software for your own CA OpenSSL: ca utility customization with configuration file several support scripts available no full life cycle management just simple pyhton-ca (by Michael Ströder) better user interface OpenCA project not completed yet, but have a look at it Holger Reif <holger@reif.net> 40/51

Outsourcing the CA task + trusted third party (TTP) identifies your clients and issues them with certificates + TTP is specialized to deliver cutting edge PKI technology + many to choose from standard internet CAs local companies + more competition than on server cert market get the best price for your requirements - cost intensive Holger Reif <holger@reif.net> 41/51

Thawte Strong Extranet Hybrid approach Thawte operates the CA facilities you do the identification based on Thawte s Freemail cert program with extended enrollment process cert extensions contain zones with information controlled by you cert extension can be grabbed by CGI programs to do authorization supported by mod_ssl (and Apache-SSL?) Holger Reif <holger@reif.net> 42/51

Certificate Revocation exclude specific users from access private key lost or stolen individual left organisation check them within SSLRequire directive inflexible and costly use a black list issued by the CA: CRL (Certificate Revocation List) check them automatically SSLCARevocation{File Path} Holger Reif <holger@reif.net> 43/51

Selected Aspects Randomness aspects Security of private server key Global Server IDs Architectural aspects of mod_ssl Holger Reif <holger@reif.net> 44/51

Randomness aspects needed for random values in handshake sequence temporary keys 1024 Bit server key and export cipher seldom: server cert contains only signature key server have few random sources go for external sources! SSLPassPhraseDialog exec:/your/rng/program use operating system resources SSLPassPhraseDialog file:/dev/(u)random Holger Reif <holger@reif.net> 45/51

Security of private server key password protected single files (or DBM file) automatic startup (and even graceful restart) problematic passphrase caching of mod_ssl simplifies the task PassphraseDialog makes more sophisticated scenarios for secure start clear text keys protected by file system only root can read these files used keys are in memory anyway Holger Reif <holger@reif.net> 46/51

Global Server IDs support for 128 Bit certificates included lot of engineering necessary spec not open source :-( no real certs for testing available renegotiation support by OpenSSL needed explicit certificate chain required special Verisign root signed intermediate cert intermediate key signs server cert Holger Reif <holger@reif.net> 47/51

Additional features of mod_ssl EAPI: patch once, use many EAPI provides Context Attachment Support for Data Structures Loosely-coupled Hook Interface for Inter-Module Communication Direct and Pool-based Shared Memory Support Additional Apache Module Hooks Specialized EAPI Goodies Holger Reif <holger@reif.net> 48/51

Apache based SSL server (contd.) EAPI decouples Apache and mod_ssl (and OpenSSL) development one EAPI version per Apache release mod_ssl itsself uses only (E)API calls and doesn t touch the source DSO support (mod_ssl as dynamic object!) provides EAPI based vendor hooks makes life easier for package maintainers Holger Reif <holger@reif.net> 49/51

Future development Improved per directory renegotiations less cryptographic operations Full HTTPS support for mod_proxy gather data from a SSL hosts SSLListen Directive add the SSL with just one directive LDAP support Improved stability See README.Wishes Holger Reif <holger@reif.net> 50/51

Closure Any questions? holger@reif.net www.modssl.org (+ mailing list) www.apache-ssl.org (+ mailing list) www.openssl.org (+ mailing list) comp.www.servers.unix Holger Reif <holger@reif.net> 51/51