Internet Security: Verfahren & Protokolle 39 20 13 Vorlesung im Grundstudium NWI (auch MGS) im Sommersemester 2003 2 SWS, Freitag 10-12, H10 Peter Koch pk@techfak.uni-bielefeld.de 20.06.2003 Internet Security: Verfahren und Protokolle Transport Layer Security 1 von 26
Heutige Themen Transport Layer Security TCP-Probleme SSL/TLS Protokollintegration SASL Internet Security: Verfahren und Protokolle Transport Layer Security 2 von 26
Probleme mit TCP Kommunikation unverschlüsselt man-in-the-middle attack connection hijacking (keine einheitliche Client-Authentisierung) Internet Security: Verfahren und Protokolle Transport Layer Security 3 von 26
Historie von SSL/TLS Secure Socket Layer Transport Layer Security SSLv2, Netscape, 1995 Private Communications Technology (Microsoft) SSLv3, Netscape, 1996 TLS 1.0 (RFC 2246), 1999 TLS 1.1 Internet Security: Verfahren und Protokolle Transport Layer Security 4 von 26
SSL Grundfunktion A "Hallo", ALGOs, R A CERT B, ALGO, RB K (S), H(K, msg) B H(K, msg) B Internet Security: Verfahren und Protokolle Transport Layer Security 5 von 26
Schlüsselaustausch Alice: Geheimnis S (pre-master secret), K = f(s, R A, R B ) Bob: K = f(s, R A, R B ) Internet Security: Verfahren und Protokolle Transport Layer Security 6 von 26
Schlüsselmengen SSLv3 Verschlüsselung Alice Verschlüsselung Bob Integrität Alice Integrität Bob IV Alice IV Bob SSLv2 Verschlüsselung/Integrität Alice Verschlüsselung/Integrität Bob Internet Security: Verfahren und Protokolle Transport Layer Security 7 von 26
Verfügbare Algorithmen TLS_NULL_WITH_NULL_NULL TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA TLS_RSA_WITH_RC4_128_SHA TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA... Internet Security: Verfahren und Protokolle Transport Layer Security 8 von 26
Verhandlungen 2-Byte-Felder (SSLv2: 3 Byte) für Verschlüsselungsverfahren Client schlägt vor, Server wählt aus SSLv2: Server wählt Untermenge, Client trifft Entscheidung Kompression nicht im Detail standardisiert Internet Security: Verfahren und Protokolle Transport Layer Security 9 von 26
Downgrade attack SSLv2 schützt die Liste der Krypto-Algorithmen nicht Angreifer kann starke Verfahren aus dem Datenstrom entfernen SSLv3/TLS verwenden Integritäts-Check (Hash, HMAC) für die ausgetauschten Nachrichten Internet Security: Verfahren und Protokolle Transport Layer Security 10 von 26
Truncation attack SSLv2 erkennt Verbindungsende durch Abbauch der TCP-Verbindung Angriffsmöglichkeit, DoS, Informationsverfälschung SSLv3 führt finished-meldungen bzw. close alerts ein Internet Security: Verfahren und Protokolle Transport Layer Security 11 von 26
Version rollback attacks Server bieten oft SSLv2, SSLv3 und TLS parallel an Angreifer führt SSLv2-Verbindung herbei auf SSLv2 grundsätzlich verzichten Internet Security: Verfahren und Protokolle Transport Layer Security 12 von 26
SSL-Sitzungen Problem: HTTP/1.0 hat kurzlebige Verbindungen SSL-Verhandlungen relativ aufwendig Sitzungen (sessions) Internet Security: Verfahren und Protokolle Transport Layer Security 13 von 26
SSL-Sitzungen (ii) SESSION ID, ALGOs, R A SESSION ID, ALGO, R, H(K, msg) B H(K, msg) A B Internet Security: Verfahren und Protokolle Transport Layer Security 14 von 26
SSL-Sitzungen (iii) Session-ID unverschlüsselt darf keine vertrauliche Information tragen Session-ID ungeeignet als persistenter Identifikator für einen Benutzer (weder Client noch Server müssen session resumption anbieten bzw. akzeptieren) Internet Security: Verfahren und Protokolle Transport Layer Security 15 von 26
Client-Authentisierung prinzipiell möglich per X.509-Zertifikat selten implementiert Username/Passwort über verschlüsselte Verbindung Internet Security: Verfahren und Protokolle Transport Layer Security 16 von 26
Integration in andere Protokolle SMTP, HTTP,... RFC 2487 SMTP Service Extension for Secure SMTP over TLS RFC 2595 Using TLS with IMAP, POP3 and ACAP Internet Security: Verfahren und Protokolle Transport Layer Security 17 von 26
Zwei Ports pro Protokoll? geübte Praxis: je ein Port pro Protokoll mit/ohne TLS http vs. https imap vs. imaps... Nachteil: Verschwendung von Portnummern Nachteil: nachträgliche Sicherung nicht/ineffizient möglich IETF Dezember 1997: separate Ports nicht länger erwünscht... Integrationsmethoden Internet Security: Verfahren und Protokolle Transport Layer Security 18 von 26
http vs. https RFC 2818, HTTP Over TLS Nachteil: separater Port (443 statt 80) Nachteil: separater Namensraum https: Vorteil: sichtbare Sicherheit Problem: namensbasiertes virtual Hosting RFC 2817, Upgrading to TLS Within HTTP/1.1 Proxies load balancing, load distribution Internet Security: Verfahren und Protokolle Transport Layer Security 19 von 26
Weitere Protokolle telnet: Integration seit 1998, derzeit eingeschlafen wird voraussichtlich zusätzlich SRP (Secure Remote Passwords) benutzen ftp seit 1996 in der Standardisierung Internet Security: Verfahren und Protokolle Transport Layer Security 20 von 26
SASL: Simple Authentication and Security Layer Authentisierungs- und (optional) Security-Framework für verbindungsorientierte (textbasierte) Protokolle statt jedes Authentisierungsverfahren mit jedem Protokoll zu verbinden: je ein SASL-Profil pro Protokoll und eine SASL-Spezifikation pro Mechanismus Unterscheidung zw. Authentication ID und Authorization ID für Proxy-Authentisierung Internet Security: Verfahren und Protokolle Transport Layer Security 21 von 26
SASL: Spezifikationen und Nutzer Spezifikation: RFC 2222 (J. Myers, Netscape, 1997) Mechanismen ANONYMOUS: RFC 2245 (1997) CRAM-MD5: RFC 2195 (1997) DIGEST-MD5: RFC 2831 (2000) EXTERNAL: RFC 2222 (1997) GSSAPI: RFC 2222 (1997) OTP: RFC 2444 (1998) PLAIN: RFC 2595 (1999) Nutzer: BEEP, IMAP, ACAP, LDAP, POP, SMTP, ggfs. HTTP Internet Security: Verfahren und Protokolle Transport Layer Security 22 von 26
SASL: Beispiel mit IMAP S: * OK imap.techfak.uni-bielefeld.de Cyrus IMAP4 v2.1.12 server ready C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA... STARTTLS LOGINDISABLED AUTH=GSSAPI S: C01 OK Completed C: A01 AUTHENTICATE GSSAPI S: + C: YIICHgYJKoZIhvcSAQICAQBuggINMIICCaADAgEFoQMCAQ6iBwMFACAAAACjggFBYYIBP... S: + YGgGCSqGSIb3EgECAgIAb1kwV6ADAgEFoQMCAQ+iSzBJoAMCAQGiQgRAiKeAys2uhqv... C: S: + YDMGCSqGSIb3EgECAgIBAAD/////vGH6MSnsyvVE+vpJI+gJw0d7nZw4ftFJBAAQAAQEBAQ= C: YDMGCSqGSIb3EgECAgIBAAD/////YPcESBF05yRn5yqed1hg56BbgHErzFVGBAAEAAQEBAQ= S: A01 OK Success (privacy protection) Internet Security: Verfahren und Protokolle Transport Layer Security 23 von 26
SASL: Beispiel 2 mit IMAP und STARTTLS S: * OK imap.techfak.uni-bielefeld.de Cyrus IMAP4 v2.1.12 server ready C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA... STARTTLS LOGINDISABLED AUTH=GSSAPI S: C01 OK Completed C: S01 STARTTLS S: S01 OK Begin TLS negotiation now TLS connection established: TLSv1 with cipher DES-CBC3-SHA (168/168 bits) C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA... STARTTLS AUTH=PLAIN AUTH=GSSAPI S: C01 OK Completed C: A01 AUTHENTICATE PLAIN S: + Please enter your password: C: cm8acm8ar2xkvyt3c1m= S: A01 OK Success (tls protection) Internet Security: Verfahren und Protokolle Transport Layer Security 24 von 26
SASL-Implementierungen C- und Java-APIs als Internet-Drafts Implementierungen Cyrus SASL 2.1.13 GNU SASL 0.0.7 Cryptix 0.8.8 (Java) Internet Security: Verfahren und Protokolle Transport Layer Security 25 von 26
Zusammenfassung SSL/TLS bietet sichere (authentisiert, vertraulich) Kommunikation über TCP Zertifikate notwendig, PKI hilfreich Client-Authentisierung optional möglich Protokollintegration fortgeschritten künftig nicht mehr zwei Ports pro Protokoll SASL ist orthogonales Konzept (Dank an Rainer Orth für die Folien) Internet Security: Verfahren und Protokolle Transport Layer Security 26 von 26