34
Web Security Network Systems Security Mort Anvari

Web Security Network Systems Security Mort Anvari

Embed Size (px)

Citation preview

Page 1: Web Security Network Systems Security Mort Anvari

Web Security Network Systems Security

Mort Anvari

Page 2: Web Security Network Systems Security Mort Anvari

10/19/2004 2

Web Security Web is now widely used by business,

government, and individuals But Internet and Web are vulnerable Have a variety of threats

integrity confidentiality denial of service authentication

Need to add security mechanisms

Page 3: Web Security Network Systems Security Mort Anvari

10/19/2004 3

TCP/IP Protocol Stack

Application Layer

Transport Layer

Network Layer

Data Link Layer

• Each layer interacts with neighboring layers above and below• Each layer can be defined independently• Complexity of the networking is hidden from the application

Page 4: Web Security Network Systems Security Mort Anvari

10/19/2004 4

Security -- At What Level? Secure traffic at various levels in the

network Where to implement security? -- Depends

on the security requirements of the application and the user

Basic services need to be implemented: Key management Confidentiality Nonrepudation Integrity/authentication Authorization

Page 5: Web Security Network Systems Security Mort Anvari

10/19/2004 5

TCP/IP Protocol Stack

Application Layer

Transport Layer

Internetwork Layer

Network Access Layer

Provides services to the application layer

Services: Connection-oriented

or connectionless transport

Reliable or unreliable transport

Security

Page 6: Web Security Network Systems Security Mort Anvari

10/19/2004 6

Transport Layer Security Advantages:

Does not require enhancement to each application

Disadvantages: Obtaining user context gets complicated Protocol specific --> need to duplicated

for each transport protocol Need to maintain context for connection

(not currently implemented for UDP)

Page 7: Web Security Network Systems Security Mort Anvari

10/19/2004 7

Transport Layer Security Protocols

Connectionless and connection-oriented transport layer service: Security Protocol 4 (SP4) – NSA, NIST Transport Layer Security (TLSP) – ISO

Connection-oriented transport layer service: Encrypted Session Manager (ESM) – AT&T Bell Labs. Secure Socket Layer (SSL) – Netscape Communications Transport Layer Security (TLS) – IETF TLS WG

Most popular transport layer security protocols

Page 8: Web Security Network Systems Security Mort Anvari

10/19/2004 8

SSL

SSL versions: 1.0: serious security flaws – never

released to public 2.0: some weaknesses (man-in-the-

middle attack) – in Netscape Navigator 1.0-2.x

3.0: no serious security flaws – in Netscape Navigator 3.0 and higher, MS Explorer 3.0 and higher

Page 9: Web Security Network Systems Security Mort Anvari

10/19/2004 9

SSL

Intermediate security layer between the transport layer and the application layer

Based on connection-oriented and reliable service (e.g., TCP)

Able to provide security services for any TCP-based application protocol, e.g., HTTP,FTP, TELNET, POP3, etc.

Application independent

Page 10: Web Security Network Systems Security Mort Anvari

10/19/2004 10

SSL Services SSL provides

Client- server authentication (public-key cryptography)

Data traffic confidentiality Message authentication and integrity

check SSL does not provide

Traffic analysis TCP implementation oriented attacks

Page 11: Web Security Network Systems Security Mort Anvari

10/19/2004 11

SSL State Information

SSL session is stateful SSL protocol must initialize and maintain session state information on either side of the session

SSL session can be used for several connections connection state information

Page 12: Web Security Network Systems Security Mort Anvari

10/19/2004 12

SSL Session State Information Elements

Session ID: chosen by the server to identify an active or resumable session state

Peer certificate: certificate for peer entity (X.509 v. 3)

Compression method: algorithm to compress data before encryption

Cipher spec: specification of data encryption and Message Authentication Code (MAC) algorithms

Master secret: 48-byte secret shared between client and server

Is resumable: flag that indicates whether the session can be used to initiate new connections

Page 13: Web Security Network Systems Security Mort Anvari

10/19/2004 13

SSL Connection State Information Elements

Server and client random: byte sequences that are chosen by server and client for each connection

Server write MAC secret: secret used for MAC on data written by server

Client write MAC secret: secret used for MAC on data written by client

Server write key: key used for data encryption by server and decryption by client

Client write key: key used for encryption by client and decryption by server

Initialization vector: for CBC block ciphers Sequence number: for both transmitted and received

messages, maintained by each party

Page 14: Web Security Network Systems Security Mort Anvari

10/19/2004 14

SSL Protocol Architecture

Page 15: Web Security Network Systems Security Mort Anvari

10/19/2004 15

SSL Protocol

Components: SSL Record Protocol

Layered on top of a connection-oriented and reliable transport layer service

Provides message origin authentication, data confidentiality, and data integrity

SSL sub-protocols Layered on top of the SSL Record Protocol Provides support for SSL session and

connection establishment

Page 16: Web Security Network Systems Security Mort Anvari

10/19/2004 16

SSL Record Protocol

Receives data from higher layer SSL sub-protocols

Addresses Data fragmentation Compression Authentication Encryption

Page 17: Web Security Network Systems Security Mort Anvari

10/19/2004 17

SSL Record Protocol confidentiality

using symmetric encryption with a shared secret key defined by Handshake Protocol

IDEA, RC2-40, DES-40, DES, 3DES, Fortezza, RC4-40, RC4-128

message is compressed before encryption (optional)

message integrity using a MAC with shared secret key similar to HMAC but with different padding

Page 18: Web Security Network Systems Security Mort Anvari

10/19/2004 18

SSL Record Protocol Operation

Page 19: Web Security Network Systems Security Mort Anvari

10/19/2004 19

SSL Sub-protocols Alert Protocol

Used to transmit alerts via SSL Record Protocol Alert message: (alert level, alert description)

Handshake Protocol Used to mutually authenticate client and server and

exchange session key ChangeCipherSpec Protocol

Used to change cipher specifications Can be changed at the end of the handshake or later

Application Protocol Used to directly pass application data to the SSL

Record Protocol

Page 20: Web Security Network Systems Security Mort Anvari

10/19/2004 20

SSL Alert Protocol Use two-byte message to convey SSL-

related alerts to peer entity First byte is severity level

warning(1) or fatal(2) Second byte is specific alert

Always fatal: unexpected_message, bad_record_mac, decompression_failure, handshake_failure, illegal_parameter

Other alerts: close_notify, no_certificate, bad_certificate, unsupported_certificate, certificate_revoked, certificate_expired, certificate_unknown

Compressed and encrypted like all SSL data

Page 21: Web Security Network Systems Security Mort Anvari

10/19/2004 21

SSL Handshake Protocol Allow server and client to

authenticate each other negotiate encryption and MAC algorithms negotiate cryptographic keys to be used

Comprise a series of messages in phases Establish Security Capabilities Server Authentication and Key Exchange Client Authentication and Key Exchange Finish

Page 22: Web Security Network Systems Security Mort Anvari

10/19/2004 22

SSL Handshake Messages

Page 23: Web Security Network Systems Security Mort Anvari

10/19/2004 23

SSL Handshake1. C S: CLIENTHELLO2. S C: SERVERHELLO

[CERTIFICATE]

[SERVERKEYEXCHANGE]

[CERTIFICATEREQUEST]

SERVERHELLODONE3. C S: [CERTIFICATE]

CLIENTKEYEXCHANGE[CERTIFICATEVERIFY]CHANGECIPHERSPECFINISH

4. S C: CHANGECIPHERSPECFINISH

Page 24: Web Security Network Systems Security Mort Anvari

10/19/2004 24

SSL Handshake CLIENTHELLO message is sent by the client

When the client wants to establish a TCP connection to the server,

When a HELLOREQUEST message is received, or When client wants to renegotiate security parameters of

an existing connection Message content:

Number of highest SSL understood by the client Client’s random structure (32-bit timestamp and 28-byte

pseudorandom number) Session ID client wishes to use (ID is empty for existing

sessions) List of cipher suits the client supports List of compression methods the client supports

1. C S: CLIENTHELLO

Page 25: Web Security Network Systems Security Mort Anvari

10/19/2004 25

Server processes CLIENTHELLO message Server Respond to client with SERVERHELLO message:

Server version number: lower version of that suggested by the client and the highest supported by the server

Server’s random structure: 32-bit timestamp and 28-byte pseudorandom number

Session ID: corresponding to this connection Cipher suite: selected by the server for client’s list Compression method: selected by the server from

client’s list

2. S C: SERVERHELLO [CERTIFICATE] [SERVERKEYEXCHANGE] [CERTIFICATEREQUEST] SERVERHELLODONE

SSL Handshake

Page 26: Web Security Network Systems Security Mort Anvari

10/19/2004 26

Optional messages: CERTIFICATE:

If the server is using certificate-based authentication May contain RSA public key good for key

exchange SERVERKEYEXCHANGE:

If the client does not have certificate, has certificate that can only be used to verify digital signatures, or uses FORTEZZA token-based key exchange

CERTIFICATEREQUEST: Server may request personal certificate to

authenticate a client

SSL Handshake

2. S C: SERVERHELLO [CERTIFICATE] [SERVERKEYEXCHANGE] [CERTIFICATEREQUEST] SERVERHELLODONE

}

Page 27: Web Security Network Systems Security Mort Anvari

10/19/2004 27

Client processing: Verifies site certification

Valid site certification if the server’s name matches the host part of the URL the client wants to access

Checks security parameters supplied by the SERVERHELLO

3. C S: [CERTIFICATE] CLIENTKEYEXCHANGE [CERTIFICATEVERIFY] CHANGECIPHERSPEC FINISH SSL Handshake

Page 28: Web Security Network Systems Security Mort Anvari

10/19/2004 28

Client messages: CERTIFICATE

If server requested a client authentication, client sends CLIENTKEYEXCHANGE

Format depends on the key exchange algorithm selected by the server

RSA: 48-byte premaster secret encrypted by the server’s public key

Diffie-Hellman: public parameters between server and client in SERVERKEYEXCHANGE and CLIENTKEYEXCHANGE msgs.

FORTEZZA: token-based key exchange based on public and private parameters

Premaster key is transformed into a 48-byte master secret, stored in the session state

SSL Handshake

3. C S: [CERTIFICATE] CLIENTKEYEXCHANGE [CERTIFICATEVERIFY] CHANGECIPHERSPEC FINISH

Page 29: Web Security Network Systems Security Mort Anvari

10/19/2004 29

Client messages: CERTIFICATEVERIFY

If client authentication is required Provides explicit verification of the use’s identity

(personal certificate) CHANGECIPHERSPEC

Completes key exchange and cipher specification FINISH

Encrypted by the newly negotiated session key Verifies that the keys are properly installed in

both sites

SSL Handshake3. C S: [CERTIFICATE]

CLIENTKEYEXCHANGE [CERTIFICATEVERIFY] CHANGECIPHERSPEC FINISH

Page 30: Web Security Network Systems Security Mort Anvari

10/19/2004 30

Server finishes handshake by sending CHANGECIPHERSPEC and FINISH messages

After SSL handshake completed a secure connection is established to send application data encapsulated in SSL Record Protocol

4. S C: CHANGECIPHERSPEC FINISH

SSL Handshake

Page 31: Web Security Network Systems Security Mort Anvari

10/19/2004 31

SSL Handshake to Resume session

1. C S: CLIENTHELLO2. S C: SERVERHELLO

CHANGECIPHERSPECFINISH

3. C S: CHANGECIPHERSPECFINISH

Page 32: Web Security Network Systems Security Mort Anvari

10/19/2004 32

SSL Change Cipher Spec Protocol

A single message with only one byte “1”

Cause pending state to become current, hence updating the cipher suite in use

Page 33: Web Security Network Systems Security Mort Anvari

10/19/2004 33

Transport Layer Security (TLS) Specified as IETF standard RFC 2246 Similar to SSLv3 but with minor differences

in record format version number use HMAC for MAC a pseudo-random function expands secrets has additional alert codes some changes in supported ciphers changes in certificate negotiations changes in use of padding

Page 34: Web Security Network Systems Security Mort Anvari

10/19/2004 34

Next Class

Kerberos and authentication