410 likes | 576 Views
Web Security with SSL. Prof. Reuven Aviv Dept. of Computer Science Tel Hai Academic College. Outline. Introduction - Web Security Considerations Secure Socket Layer (SSL) and Transport Layer Security (TLS) SSL Architecture SSL Record Protocol Handshake Protocol
E N D
Web Security with SSL Prof. Reuven Aviv Dept. of Computer Science Tel Hai Academic College Prof. Reuven Aviv, SSL
Outline • Introduction - Web Security Considerations • Secure Socket Layer (SSL) and Transport Layer Security (TLS) • SSL Architecture • SSL Record Protocol • Handshake Protocol • In Closing: What does the SSL Really Protect? • Why the Web Service is special? Prof. Reuven Aviv, SSL
Introduction Prof. Reuven Aviv, SSL
Introduction • All businesses have Web sites • Most public organizations have Web sites • Many individuals have Web sites • Business are enthusiastic about setting facilities on the Web for electronic commerce • However: • Internet and the Web Servers are vulnerable • Demand for security increases What software options are available? Prof. Reuven Aviv, SSL
Web Security Options • HTTP Client Server; Standard IPSec is applicable (later lecture) • BUT – we need special security mechanism: • The WEB is very visible. • It is the front end of business • Breaking into it makes bad business • What risks are (not) countered by SSL Prof. Reuven Aviv, SSL
Web Security risks & counter-measures • Corrupt server or browser data • done by Trojans, ActiveX, Applets • Corrupt data in transit and session hijacking • Cryptographic checksum, Encryption • web proxy • Denial of Service: flooding server, DNS attacks • Network Mitigation procedures • Impersonation of users, and programs • signatures Prof. Reuven Aviv, SSL
Approaches to network Security Advantages and Disadvantages? Prof. Reuven Aviv, SSL
Approaches to network Security • IPSec – below TCP • transparent to applications (and users) • Only filtered packets incur overhead • General purpose client server security • Complex configuration (packet oriented) Prof. Reuven Aviv, SSL
Approaches to network Security • SSL/TLS – above TCP • General purpose • but controllable by application • What does that mean? • At the application layer: PGP, S/MIME • Specific, tailored to the application Prof. Reuven Aviv, SSL
Secure Socket Layer Prof. Reuven Aviv, SSL
SSL (Secure Socket Layer) & TLS • SSL: Netscape, later Microsoft • SSL 3.0 Submitted to IETF • IETF TLS: Transport Layer Security • essentially SSLv3.1 • Free Implementations: SSLRef, OpenSSL • SSL support included in Microsoft IIS & IE What technologies are used for Privacy, Inegrity, Authentication, Non-Repudiation? Prof. Reuven Aviv, SSL
SSL Services • Privacy – via user defined encryption algorithms • Integrity – user specified hash functions • Authentication – using X.509.3 public key certificates, also Passwords, or none • Non Repudiation – using signed messages Prof. Reuven Aviv, SSL
SSL/TLS Features I • Separation of duties: encryption, authentication and data integrity use different keys (secrets) What are the benefits? • decreasing risks & different key lengths • Flexibility: authenticated connections with/without encryption • Note: algorithm & keys determined by server, limited by both Prof. Reuven Aviv, SSL
SSL/TLS Features II • Efficiency – use (slow) public key once to create “master secret”. “connection Secrets” on the fly • Mutual Certificate based authentication • Protect against MIM & Replay • how? • validating identities, sequencing messages and nonces Prof. Reuven Aviv, SSL
SSL Protocol Architecture • SSL Record Protocol: transmission of blocks of data (records) between applications (e.g. HTTP) What are the purpose of the SSL Handshake & Alert protocols? Prof. Reuven Aviv, SSL
SSL Record Protocol • Provides Services -- to whom?: • Encryption Decryption of the payloads (TCP/HTTP, …) • conventional encryption algorithms (DES, AES,…) • Message integrity • using MAC Via hash function • secrets as agreed by a Handshake Protocol Prof. Reuven Aviv, SSL
SSL Record Protocol Operation What’s in the header? Prof. Reuven Aviv, SSL
Record Construction • Compress Fragment • Add Hash (MD5/SHA-1) of Fragment + Secret, SeqNum, Compression parameters • Encrypt by (IDEA, DES, 3DES, RC4,…) • Add a record header: • Payload Type (e.g. HTTP, Handshake, …) • Major/Minor version of SSL • Compressed Length of fragment • why names of algorithms not in header? Prof. Reuven Aviv, SSL
SSL Record Format What is to be agreed by client/server during handshake? Prof. Reuven Aviv, SSL
What is to be agreed: Cipher Suit • Key Exchange algorithm ID: Name of method to be used to create SSL Pre-Master Secret • One of four (e.g. D.H.), discussed below • Cipher-Spec: Specifications of algorithms and parameters that will be used by the SSL Record Protocol to encrypt/authenticate Prof. Reuven Aviv, SSL
What’s in Cipher-Spec? • Encryption Algorithms – RC4, AES, 3DES, … • Cipher Type: Stream or Block • IV size, Hash size in Bytes: 0, 16 (MD5), 20 (SHA-1), .. • MAC Algorithm: HMAC-MD5 / HMAC-SHA-1 • Key Materials: Sequence of Bytes • data used in creating Secrets Prof. Reuven Aviv, SSL
SSL: 6 Secrets • two keys for encryption ; Two values of Initial Values (for encryption); Two secrets for MAC • Procedure for derivation of secrets: • Pre_Master_Secret (48 Bytes PMS): one time value • Pre_master_secret Master Secret Secrets • Several methods for deriving Pre_Master_Secret(PMS) • Who calculates PMS / Master / Secrets? Prof. Reuven Aviv, SSL
What is to be agreed: PMS derivation method • [1] RSA Method: • Client creates PMS (random) • send PMS to server encrypted by Server’s RSA public key • Client needs Server’s Public Key Certificate Prof. Reuven Aviv, SSL
PMS derivation methods • [2] Anonymous DiffieHellman Method • q, a agreed by two sides • Public keys (Y) are exchanged • PMS (calculated by each party) = YX(modq) • No exchange of Certificates • [3] Fixed DiffieHellman Method • Server is authenticated by a D.H. certificate (with D.H. public key). Rest is Anonymous D.H. • Disadvantage relative to RSA method? Prof. Reuven Aviv, SSL
PMS derivation methods • [4] Ephemeral DiffieHellmanMethod: • Most secure way - both parties are authenticated • D.H. public keys are exchanged by messages • signed by senders’ private keys (RSA) • PMS is created by both parties • Signing keys (RSA or DSS) keys are presented via Certificates, themselves signed by CAs Prof. Reuven Aviv, SSL
Handshake Protocol: full scenario Prof. Reuven Aviv, SSL
1. Hello Phase Prof. Reuven Aviv, SSL
Hello messages: Establishing Security Capabilities • Client sends ClientHello (1) • ProtocolVersion (3.1 for TLS 1.0) • timestamp + random_num1 What are the purpose of these? • Session ID What is the purpose of this? • Lists of Cipher-Suites & Compression methods supported by client Prof. Reuven Aviv, SSL
Hello messages: Establishing Security Capabilities • Server sends ServerHello (2) • Protocol Version, Timestamp, random num2 • Session ID: new value (or, if updating, old) • Selected Cipher-Suite, compression method Is the PMS Derivation method determined at this stage? Prof. Reuven Aviv, SSL
2. Server Authentication & Key exchange • Certificate (3): one (or more) X.509 certificate • Certificate present public key, that will be used for encrypting secrets and/or signing client Server These are optional. Who determines if these Messages are sent? Prof. Reuven Aviv, SSL
Server Key_exchange_Message (4) • Sent from the Server to provide its public key • Not needed in RSA [1] or fixed D.H [3] methods – public key of Server was sent by Certificate (3) • What is the content of this message? • The Diffie Hellman public key (Y) • Message required in the Anonymous D.H. [2] • Message not signedWhy not? Prof. Reuven Aviv, SSL
Server Key_exchange_Message (4) • Message required in the Ephemeral D.H [4] • Message signedby what? • by RSA or DSS private key What is the signature? • encrypted hash of D.H. parameters and the rand. in the Hello messages why? • KRSA{hash(Cl.Hello.rand|| Ser.Hello.rand || D.H. parameters)} Prof. Reuven Aviv, SSL
End of Phase 2: Server • In all methods except Anonymous D.H. [2] Server sends Ceritificate_Request(5) requesting Client to authenticate itself by Certificate(s) • List of types, usages & names of acceptable certificates & CAs • Server sends ServerDone(6) message What will the client do? Prof. Reuven Aviv, SSL
End of Phase 2: Client • Client Checks the acceptability of parameters in ServerHello (selected Cipher Suite & PMS method) • Client checks receipt of the required certificates • Client checks the validity of certificates Prof. Reuven Aviv, SSL
Client Server Phase 3: Client Authentication & Key Exchange What’s in Client_key_Exchange (8)? • CertificateVerify (9): a signed hash of previous messages. What is the purpose of this? Prof. Reuven Aviv, SSL
ClientKeyExchange (8) • Required. PMS calculated after this message • Content depends on method of key generation: • RSA [1]: Client generates a 48-byte PMS, encrypts with the certified Server’s public key • Ephemeral [4] or Anonymous D.H. [2]: Client sends its public D.H. key (Y) • Fixed D.H. (3): null, because Client’s public D.H. sent in previous message, Certificate (7) • In all D.H. methods [2], [3], [4] both Client and Server now calculate PMS Prof. Reuven Aviv, SSL
Certificate_Verify (9) • Sent by Client – if previously sent a Certificate with signing capabilities • i.e. Not Certificates with D.H. parameters • Purpose: proving that the client in the negotiation and the owner of the certificate are the same entities • What could be in this message? Prof. Reuven Aviv, SSL
Certificate_Verify (cont’d) • Hash of collected shared knowledge • KClient{hash(Master_Secret || pad2 || hash (handshake_messages||Master_Secret||pad1))} • Signed by Client Private key • cannot be done by one who stole the Client certificate why? Prof. Reuven Aviv, SSL
4. Finish phase • ChangeCipherSpec: • Let’s start using agreed Cipher-Suite • Finished: hash of master secret, & other info • Using the agreed upon Cipher Suit Prof. Reuven Aviv, SSL
In closing: What does SSL really protect? • It protects data in transit, mitigates attacks like MIM, Replay, and in general makes other attacks difficult to perform • It does not solve the hard problems of E-Commerce: • DOS Attacks • Application Layer Attacks on the client and servers. A notable risk of the later is stealing credit cards Prof. Reuven Aviv, SSL
In closing: What does SSL really protect? • These are “solved” by: • Multi-layer Enterprise security system (last lecture) • Policies of Credit cards companies (Canceling cards and returning charges Prof. Reuven Aviv, SSL