Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2....

51
Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver-Konferenz, 19./20. Mai 2005, Magdeburg Postfix/TLS ... oder warum einfach, wenn es auch kompliziert geht?!

Transcript of Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2....

Page 1: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix/TLS

... oder warum einfach, wenn es auch kompliziert geht?!

Page 2: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix/TLS: Übersicht

● Motivation: Warum SMTP mit TLS?● TLS: Das Protokoll● Einbindung in Postfix und Konfiguration● Zukunft!?

Page 3: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Kurzer Hintergrund über den Autor

● Name: Lutz Jänicke– 1989­1994 wissenschaftlicher Mitarbeiter am Institut 

für Elektrische Maschinen der TU Berlin

– 1995­2001 Oberingenieur am Lehrstuhl Allgemeine Elektrotechnik der BTU Cottbus

– Arbeitsgruppen (Personal) zwischen beiden Insituten verbunden

– Jeweils Admin mit vielen Dienstreisen

● Seit 2002 Innominate Security Technologies AG

Page 4: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Warum verschlüsseln?

● Authentifizierung zumeist mit Paßwörtern● Abhören ist trivial● Kryptographisch verstärkte Verbindungen

– schützen gegen das Ausspähen von Paßwörtern

– schützen gegen Man­in­the­Middle­Angriffe

– gestatten den Einsatz von Public Key Authentifizierung

Page 5: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Verschlüsselungslösungen

● TLS Transportation Layer Security (vorm. SSL)– TCP­orientierte Lösung an der Verbindungsschicht

● SSH Secure Shell– Login­orientierte Lösung mit zusätzlichen Tunneln

● IPsec VPN– Netzwerkorientierte Lösung für Netz­zu­Netz 

Verkehr

Page 6: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Historische Entwicklung

● Erste verbreitete Version SSLv2, noch mit Sicherheitsproblemen (Autor: Netscape)

● Erheblich überarbeitetes Protokoll SSLv3 (Netscape)

● IETF Standard RFC2246 als TLSv1 (entsprechend „SSLv3.1“) Januar 1999

● Ergänzungen (z.B. AES in RFC3268) zugefügt● TLSv1.1 in Arbeit... immer noch

Page 7: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Grundeigenschaften

● TLS ist verbindungsorientiert (anders als IPsec/VPN)

● TLS setzt auf einer bestehenden Verbindung auf● TLS verlangt eine zuverlässige Verbindung 

(Vollständigkeit und Reihenfolge der Datenpakete müssen garantiert sein)

● TLS stellt genau einen Kanal in der Verbindung bereit, es gibt also kein Multiplexing oder zusätzliche Tunnel (anders als SSH)

Page 8: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: „API“ bleibt erhalten...

● read()● write()● connect()● accept()

● SSL_read(), BIO_read()

● SSL_write(), BIO_write()

● SSL_connect(), BIO_connect()

● SSL_accept(), BIO_accept()

Page 9: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Separate Ports

● Die ersten Protokolle, die mit SSL ergänzt wurden, erhielten separate Ports:– https (port 443) statt http (port 80)

– pop3s (port 995) statt pop (port 110)

– imaps (port 993) statt imap4 (port 143)

– smtps (port 465) statt smtp (port 25)!?

Page 10: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Separate Vorschaltprozesse

● DirektClient Process

socket--------------

|--------------

socketServer Process

● Mit TLSClient Process

socket--------------

socket„stunnel“socket

--------------|

--------------socket

„stunnel“socket

--------------socket

Server Process

Page 11: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Separate Ports (2)

● Separate Ports gestatten es, TLS/SSL Protokoll­Handling in separate Prozesse auszulagern

● Separate Prozesse erlauben ein höheres Sicherheitsniveau

● Separate Prozesse erschweren es dem Serverprozeß, Informationen über den Client zu sammeln

● Separate Ports verschlingen zuviele „Well Known“ Ports

Page 12: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Protokollintegration

● Neuere Definitionen integrieren einen STARTTLS­Befehl in die Protokolle:– RFC2487/3207: STARTTLS für ESMTP

– RFC2817: „Upgrade: TLS/1.0“ for HTTP/1.1

– RFC2595: STARTTLS for IMAP4

– RFC2595: STLS for POP3

Page 13: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Alogrithmen

● TLS definiert einen Satz von Algorithmen (1)DHE­DSS­AES256­SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1

AES256­SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1

EDH­RSA­DES­CBC3­SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1

EDH­DSS­DES­CBC3­SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1

DES­CBC3­SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1

DES­CBC3­MD5            SSLv2 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=MD5

DHE­RSA­AES128­SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1

DHE­DSS­AES128­SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1

AES128­SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1

IDEA­CBC­SHA            SSLv3 Kx=RSA      Au=RSA  Enc=IDEA(128) Mac=SHA1

IDEA­CBC­MD5            SSLv2 Kx=RSA      Au=RSA  Enc=IDEA(128) Mac=MD5

RC2­CBC­MD5             SSLv2 Kx=RSA      Au=RSA  Enc=RC2(128)  Mac=MD5

DHE­DSS­RC4­SHA         SSLv3 Kx=DH       Au=DSS  Enc=RC4(128)  Mac=SHA1

RC4­SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1

RC4­MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5

RC4­MD5                 SSLv2 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5

RC4­64­MD5              SSLv2 Kx=RSA      Au=RSA  Enc=RC4(64)   Mac=MD5

...

Page 14: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Algorithmen

● TLS definiert einen Satz von Algorithmen (2)...

EXP1024­DHE­DSS­DES­CBC­SHA SSLv3 Kx=DH(1024) Au=DSS  Enc=DES(56)   Mac=SHA1 export

EXP1024­DES­CBC­SHA     SSLv3 Kx=RSA(1024) Au=RSA  Enc=DES(56)   Mac=SHA1 export

EXP1024­RC2­CBC­MD5     SSLv3 Kx=RSA(1024) Au=RSA  Enc=RC2(56)   Mac=MD5  export

EDH­RSA­DES­CBC­SHA     SSLv3 Kx=DH       Au=RSA  Enc=DES(56)   Mac=SHA1

EDH­DSS­DES­CBC­SHA     SSLv3 Kx=DH       Au=DSS  Enc=DES(56)   Mac=SHA1

DES­CBC­SHA             SSLv3 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=SHA1

DES­CBC­MD5             SSLv2 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=MD5

EXP1024­DHE­DSS­RC4­SHA SSLv3 Kx=DH(1024) Au=DSS  Enc=RC4(56)   Mac=SHA1 export

EXP1024­RC4­SHA         SSLv3 Kx=RSA(1024) Au=RSA  Enc=RC4(56)   Mac=SHA1 export

EXP1024­RC4­MD5         SSLv3 Kx=RSA(1024) Au=RSA  Enc=RC4(56)   Mac=MD5  export

EXP­EDH­RSA­DES­CBC­SHA SSLv3 Kx=DH(512)  Au=RSA  Enc=DES(40)   Mac=SHA1 export

EXP­EDH­DSS­DES­CBC­SHA SSLv3 Kx=DH(512)  Au=DSS  Enc=DES(40)   Mac=SHA1 export

EXP­DES­CBC­SHA         SSLv3 Kx=RSA(512) Au=RSA  Enc=DES(40)   Mac=SHA1 export

EXP­RC2­CBC­MD5         SSLv3 Kx=RSA(512) Au=RSA  Enc=RC2(40)   Mac=MD5  export

EXP­RC2­CBC­MD5         SSLv2 Kx=RSA(512) Au=RSA  Enc=RC2(40)   Mac=MD5  export

EXP­RC4­MD5             SSLv3 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export

EXP­RC4­MD5             SSLv2 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export

Page 15: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Auswahl der Algorithmen

● Der Client sendet eine Liste der von ihm unterstützten Algorithmen, sortiert nach seinen Präferenzen

● Der Server wählt aus dieser Liste einen Algorithmus aus.– OpenSSL folgt dabei den Präferenzen des Clients

– OpenSSL 0.9.7­API würde auch ermöglichen, Präferenzen des Servers zu verwenden.

Page 16: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Symmetrische Verschlüsselung

● Symmetrische Verfahren (DES, AES, RC4) sind schnell

● Beide Seiten haben den gleichen geheimen Schlüssel, im Wesentlichen eine Zufallszahl

● Der Schlüssel wird aus dem „Premaster Secret“ gewonnen, das der Client während des Handshakes generiert und zum Server schickt– Der Client muß über einen guten Zufallsgenerator 

verfügen

Page 17: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Handshake ohne DHE

● Client sendet „Hello“ mit Liste der Algorithmen● Server sendet Antwort mit seinem Zertifikat

– Zertifikat enthält Identifikation

– Zertifikat enthält öffentlichen RSA­Schlüsselteil

● Client sendet „Premaster Secret“ verschlüsselt mit dem öffentlichen Schlüssel des Servers– Server entschlüsselt das Secret mit seinem privaten RSA­Schlüssel. Wenn 

er dies kann, hat er sich authentifiziert

– Jeder andere, der den privaten RSA­Schlüssel hat, kann das Secret auch entschlüsseln und mitlesen

Page 18: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Handshake mit DHE

● Client sendet „Hello“ mit Liste der Algorithmen● Server sendet Antwort mit seinem Zertifikat

– Zertifikat enthält Identifikation (und öffentlichen RSA­Schlüssel)

– Antwort enthält außerdem öffentlichen DH­Schlüssel unterschrieben mit dem privaten RSA­Schlüssel

– DH­Schlüssel wird vom Server jeweils frisch generiert

● Client sendet „Premaster Secret“ verschlüsselt mit dem öffentlichen DH­Schlüssel des Servers– Server entschlüsselt das Secret mit seinem privaten DH­Schlüssel.

– Ein anderer, der den privaten RSA­Schlüssel hat, kann das Secret nicht entschlüsseln, da ihm der DH­Schlüssel unbekannt bleibt

Page 19: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Vor­/Nachteile von DHE

● Diffie­Hellman Exchange– Erfordert gute Zufallszahlen auch beim Server

– Erfordert zusätzliche Rechenzeit durch Schlüsselgenerierung und zusätzliche private Schlüsseloperationen am Server

– Bietet „Forward Secrecy“ da auch beim Bekanntwerden des privaten RSA­Schlüssels des Servers keine Entschlüsselung möglich ist

– Erlaubt nur das Entschlüsseln je einer Sitzung, deren Schlüssel bekannt geworden ist

Page 20: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

X.509 Zertifikate

● X.509 Zertifikate enthalten– Informationen über ein Objekt (Server, Person)

– Ggf. zusätzliche Information, z.B. Rechte

– Den öffentlichen Schlüssel (zumeist RSA) des Objekts

● Eine Bestätigung („Zertifikat“), daß alle Angaben zusammengehören und ­passen

● Eine Information über den Aussteller

Page 21: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

X.509 Zertifikate: Modell

● Personalausweis enthält– Bild

– Name, Geburtstag, Wohnort

● Stempel bzw. Unterschrift zur Bestätigung der Zusammengehörigkeit dieser Informationen

● Eine Information über den Aussteller (z.B. Landeseinwohneramt)

Page 22: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

X.509 Zertifikate: Beispiel

● openssl x509 ­text ­in serv01_cert.pemCertificate:    Data:        Version: 3 (0x2)        Serial Number: 8426 (0x20ea)        Signature Algorithm: md5WithRSAEncryption        Issuer: C=DE, ST=Brandenburg, L=Cottbus, O=Brandenburgische Technische Universitaet Cottbus, 

OU=Rechenzentrum, CN=BTU­CA (2004­2008)/emailAddress=ca­btu@tu­cottbus.de        Validity            Not Before: May  4 14:31:03 2004 GMT            Not After : Jun  4 14:31:03 2006 GMT        Subject: C=DE, ST=Brandenburg, L=Cottbus, O=Brandenburgische TechnischeUniversitaet Cottbus, OU=Lehrstuhl 

Allgemeine Elektrotechnik und Num. Feldberechnung, CN=serv01.aet.tu­cottbus.de/[email protected]­cottbus.de

        Subject Public Key Info:            Public Key Algorithm: rsaEncryption            RSA Public Key: (2048 bit)                Modulus (2048 bit):                    00:97:c1:f8:aa:d8:50:52:67:36:2a:48:d0:27:53:...                    91:4f                Exponent: 65537 (0x10001)        X509v3 extensions:            X509v3 Basic Constraints:                CA:FALSE            X509v3 Key Usage:                Digital Signature, Key Encipherment...            X509v3 Subject Alternative Name:                email:[email protected]­cottbus.de            X509v3 CRL Distribution Points:                URI:http://WWW.RZ.TU­Cottbus.De/CA/2004­2008/btu­ca.crl

            Netscape Cert Type:                SSL Server...

Page 23: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

X.509 Zertifikate: Beispiel

● DN Distinguished Name des Objekts– Subject: C=DE, ST=Brandenburg, L=Cottbus, O=Brandenburgische Technische Universitaet Cottbus, OU=Lehrstuhl Allgemeine Elektrotechnik und Num. Feldberechnung, CN=serv01.aet.tu­cottbus.de/[email protected]­cottbus.de

Darstellung (,/= usw) durch Programm, nicht im Zertifikat kodiert!

Page 24: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

X.509 Zertifikate: Beispiel

● DN Distinguished Name des Ausstellers– Issuer: C=DE, ST=Brandenburg, L=Cottbus, O=Brandenburgische Technische Universitaet Cottbus, OU=Rechenzentrum, CN=BTU­CA (2004­2008)/emailAddress=ca­btu@tu­cottbus.de

Page 25: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

X.509 Zertifikate: Beispiel

● Extensions– X509v3 Basic Constraints:

● CA:FALSE

– X509v3 Key Usage:● Digital Signature, Key Encipherment

– X509v3 Subject Alternative Name:● email:[email protected]­cottbus.de

– X509v3 CRL Distribution Points:● URI:http://WWW.RZ.TU­Cottbus.De/CA/2004­2008/btu­ca.crl

Page 26: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

X.509 Zertifikate: Probleme

● Es gibt nur einen CN CommonName– Lösung: Verwendung des Subject Alternative Names

– Hier sind mehrere dNSName­Einträge möglich

● Zertifikatsaussteller (CA) sind nicht unumstritten– Verwendung einer eigenen CA hat Vor­ und 

Nachteile

Page 27: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Durchsatz/Performance

● Durchsatz wird durch symmetrischen Algorithmus bestimmt und sollte immer gut genug sein

● Der Handshake ist sehr aufwendig, da Operationen mit den privaten Schlüsseln notwendig sind (Signieren, Entschlüsseln)

● Problem von HTTPS bekannt, da dort viele Verbindungen aufgebaut werden müssen

● Lösung: TLS Session Caching

Page 28: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

TLS: Session Caching

● Nach erfolgreichem Handshake werden gespeichert:

– Authentifizierungsdaten und ­status der Gegenstelle

– Ausgehandelte kryptographische Algorithmen

– Premaster­Secret● Damit kann eine neue Verbindung unter Verwendung 

der alten „Session“ ohne teuren Handshake aufgebaut werden (nacheinander oder parallel)

● Aufwand immer noch hoch, vgl. SMTP Session Caching

Page 29: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

STARTTLS Protokoll

● ESMTP (Enhanced SMTP) wird um STARTTLS Option und Befehl erweitert (RFC2487/3207)

● STARTTLS wird in der EHLO­Antwort aufgelistet

● STARTTLS wird vom Client geschickt● Server antwortet (mit 220 Go on...)● TLS­Handshake wird ausgeführt● SMTP­Verbindung wird fortgesetzt mit EHLO

Page 30: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

STARTTLS: Sicherheit

● Die EHLO­Antwort könnte verfälscht worden sein. Daher darf ein Client auch STARTTLS senden, wenn kein STARTTLS angeboten wurde

● Der Client muß prüfen, ob das Zertifikat der Gegenstelle den Erwartungen entspricht

– Was sind die Erwartungen?● Nach dem STARTTLS wird ein neues EHLO abgesetzt, 

da 

– die erste EHLO­Antwort verfälscht sein könnte

– der Server mit TLS andere Optionen anbieten könnte

Page 31: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

STARTTLS: Beispiel 1

● telnet serv01.aet.tu­cottbus.de 587220 serv01.aet.tu-cottbus.de ESMTP Postfix

EHLO lutzpc

250-serv01.aet.tu-cottbus.de

250-PIPELINING

250-SIZE 60000000

250-VRFY

250-ETRN

250-STARTTLS

250 8BITMIME

STARTTLS

220 Ready to start TLS

...

Page 32: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

STARTTLS: Beispiel 2

● openssl s_client ­starttls smtp ­connect serv01.aet.tu­cottbus.de:587...

220 serv01.aet.tu-cottbus.de ESMTP Postfix

EHLO lutz

250-serv01.aet.tu-cottbus.de

250-PIPELINING

250-SIZE 60000000

250-VRFY

250-ETRN

250-AUTH LOGIN PLAIN

250 8BITMIME

...

Page 33: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

STARTTLS: Authentifikation

● Bei TLS wird zwingend das Zertifikat des Servers übertragen

● Algorithmen ohne Server­Zertifikat sind in OpenSSL per default abgeschaltet

Page 34: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

STARTTLS: Authentifikation

● Der Client kann ein Zertifikat übersenden, wenn der Server ihn dazu auffordert– Der Server liefert eine Liste der ihm bekannten CAs mit

– OpenSSL­Client ist nicht standardkonform und sendet „das“ konfigurierte Zertifikat, auch wenn keine passende CA gefunden wurde

– Automatische Auswahl eines „richtigen“ Client­Zertifikats schwer zu implementieren, da die komplette Chain passen muß

● Authentifizierung mit Client­Zertifikaten im STARTTLS­Standard nicht durchdacht

Page 35: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix und TLS

● Die Integration von TLS in Postfix beeinflußt 3 Hauptkomponenten:– smtpd (eingehende Verbindungen)

– smtp (ausgehende Verbindungen)

– tlsmgr (Hilfsfunktionen)

Page 36: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix und TLS

● Struktur:

<---seed--- ---seed--->Network-> smtpd(8) tlsmgr(8) smtp(8) ->Network <-session-> <-session->

/ | \ | / \

smtpd PRNG smtp session state session key cache file key cache

(Source: Wietse Venema: Postfix 2.2, TLS_README)

Page 37: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: smtpd

● smtpd wurde erweitert, um das STARTTLS­Protokoll zu unterstützen

● Nach erfolgreichem STARTTLS­Handshake wird SSL_accept() aufgerufen

● Bei erfolgreichem TLS­Handshake wird Verbindung verschlüsselt weitergeführt

● Bei Handshake­Fehler ist der Status der Gegenstelle unbekannt und die Verbindung muß abgebrochen werden

Page 38: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: smtpd Optionen

● smtpd_tls_cert_file, smtpd_tls_key_file– enthalten den öffentlichen und privaten Schlüssel

● smtpd_tls_CAfile, smtpd_tls_CApath– enthalten File bzw. Verzeichnis mit CA­Liste

● smtpd_use_tls, smtpd_enforce_tls– aktivieren bzw. erzwingen TLS global

● smtpd_tls_session_cache_database– Datenbank mit TLS session cache (per tlsmgr)

Page 39: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: smtpd Optionen

● smtpd_tls_ask_ccert, smtpd_tls_req_ccert– erfragen bzw. erfordern eines Client Zertifikats

● smtpd_tls_loglevel– Ausgaben im Level 1­4, empfohlen 1

● smtpd_tls_received_header– Ausgabe der TLS­Informationen im Header

● relay_clientcerts, permit_tls_clientcerts, check_ccert_access– Datenbank/Tabelle mit Fingerprints

Page 40: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: smtp

● smtp wurde erweitert, um das STARTTLS­Protokoll zu unterstützen

● Nach erfolgreichem STARTTLS­Handshake wird SSL_connect() aufgerufen

● Bei erfolgreichem TLS­Handshake wird Verbindung verschlüsselt weitergeführt

● Bei Handshake­Fehler ist Status der Gegenstelle unbekannt und die Verbindung muß abgebrochen werden

Page 41: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: smtp Optionen

● smtp_tls_cert_file, smtp_tls_key_file– Öffentlicher bzw. privater Schlüssel

● smtp_tls_CAfile, smtp_tls_CApath– Datei bzw. Verzeichnis mit CA­Zertifikaten

● smtp_tls_use_tls, smtp_tls_enforce_tls– Benutze TLS wenn angeboten oder immer

● smtp_tls_per_site– Auswahl von TLS­Benutzung nach Ziel

Page 42: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: smtp Optionen

● smtp_tls_session_cache_database– Datenbank mit Session­Informationen (via tlsmgr)

● smtp_tls_loglevel– Ausgabe mit Level 1­4, empfohlen 1

● smtp_tls_note_starttls_offer– Logge Informationen, welche Server STARTTLS 

angeboten hätten

Page 43: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: tlsmgr

● tlsmgr verwaltet Session Cache Datenbanken– Datenbanken würde ohne Grenze wachsen

– tlsmgr läuft regelmäßig durch die Datenbanken und löscht alte Einträge

– Synchronisation erfolgt durch tlsmgr, welcher als einziger auf die Datenbanken zugreift

– smtp­ und smtpd­Prozesse kommunizieren über Socket mit tlsmgr

– Verwendete Datenbank muß Objekte größer 1kB zulassen. Empfohlen: btree

Page 44: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix: tlsmgr

● tlsmgr koordiniert auch den Zugriff auf Zufallsgeneratoren– nur nötig bei EGD mit begrenztem Vorrat

Page 45: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix/TLS: Implementierung

● Integration der TLS­Funktionalität direkt in die smtp­ bzw. smtpd­Applikationen

● Applikationen werden gegen OpenSSL gelinkt● Bei Aktivierung von TLS werden Postfix' 

timed_read() und timed_write() Funktionen durch tls_timed_read() und tls_timed_write() ersetzt (VSTREAM over TLS)

● Implementierung erfolgt über OpenSSLs BIO­pair­Funktionen mit integrierten Puffern

Page 46: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix/TLS: BIO Pairs

● The TLS layer is realized with a BIO­pair: postfix | TLS-engine

| |

+--------> SSL_operations()

| /\ ||

| || \/

| BIO-pair (internal_bio)

+--------< BIO-pair (network_bio)

| |

socket |

Page 47: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix/TLS: Geschichte

● Ursprünglich entwickelt für spezielles Problem– Postfix/TLS 0.1.0: März 1999

● Entwicklung zur „Fully­Featured“ Ergänzung– Wesentliche Entwicklungen: 1999­2002

– Pflege und Anpassung: 2003­2004

● Integration in Postfix „Main Stream“– Postfix 2.2: März 2005

Page 48: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix/TLS: Zukunft(!?)

● Architektur:– Separierung von TLS­Funktion in spezifische 

Prozesse

– Dadurch Erhöhung der Sicherheit und Modularität

– Mögliche Integration in SMTP­Session Caching durch Bündelung eines TLS­Prozesses an den offenen Socket

Page 49: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Postfix/TLS: Zukunft(!?)

● TLS­Ergänzungen– Unterstützung von Certificate Revocation Lists (CRL)

● Bricht Kompatibilität mit OpenSSL 0.9.6● OpenSSL 0.9.7 seit Dezember 2002 verfügbar● Erfordert unabhängigen Download der CRL

– Angepaßte Auswahl der Ciphern nach Server­Präferenz

● Weitere kleine Maßnahmen– Anpassung des Logging

– ...

Page 50: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Tools

● OpenSSL– http://www.openssl.org/

● SSLdump– http://www.rtfm.com/ssldump/

● Stunnel– http://www.stunnel.org/

Page 51: Postfix/TLS - Heinlein Support · 2005-05-31 · Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. MailserverKonferenz, 19./20. Mai 2005, Magdeburg Kurzer Hintergrund über den Autor

Lutz Jänicke: Postfix: SSL/TLS im Detail. 2. Mailserver­Konferenz, 19./20. Mai 2005, Magdeburg

Kontaktdaten

● OpenSource [email protected]­Cottbus.DE

http://www.aet.TU­Cottbus.DE/personen/jaenicke/

● FirmenkontaktDr. Lutz Jänicke

Innominate Security Technologies AG

Albert­Einstein­Straße 14

12489 Berlin

[email protected]

http://www.innominate.com/