tls-verschlüsselung bei qmail/spamcontrol

Transcrição

tls-verschlüsselung bei qmail/spamcontrol
TLS-VERSCHLÜSSELUNG
BEI
QMAIL/SPAMCONTROL
!
!
MAILSERVER KONFERENZ, BERLIN 2014
!
ERWIN HOFFMANN - FEHCOM
[email protected]
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Architektur
Zu meiner Person
• Qmail Anwender
und Supporter seit 1998
• Support
und Konfiguration umfangreicher Qmail-Sites
• FreeBSD
Junki mit Qmail-Ports • Professor
für IT Security und IT Governance an der
• Provadis
Hochschule in Frankfurt/Main und vorher an der
• Fachhochschule
• Autor
Frankfurt/Main
einiger Bücher zu Rechnernetzen • Technik
© Dr. Erwin Hoffmann - FEHCom
der IP-Netze
TLS + Qmail/Spamcontrol | Architektur
Überblick
• Qmail, seine Architektur
• Überlegungen
Qmail
und Weiterentwicklung
zu Transport Layer Security bei
• Server-Daemons
(qmail-smtpd/qmail-pop3d)
mit TLS-Verschlüsselung
• qmail-remote
• Fazit
mit TLS-Verschlüsselung und Ausblick für Qmail
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Architektur
Entwicklung
• Daniel
Bernstein entwickelte Qmail zwischen 1995
und 1998 (Version 1.03) als reine (E)STMP
Implementierung (also ungefähr zeitgleich mit
Wietse Venema's Postfix)
• Letzter
ESMTP RFC, mit dem djb sich herumschlug,
war RFC 2821(‚Klensin-Draft‘) • Etwa
im Jahr 2004 waren die Bestandteile
Daemontools, djbdns und ucspi-tcp vollständig
entwickelt
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Architektur
Architektur
Internet
tcpserver
cdb
FQDN:deny
IP:deny
:allow,ENV=ok
Listen: IP-Adresse, Port
daemontools: supervise + multilog
rblsmtpd
Bounces, NDR
qmail-smtpd
qmail-send
Intern
qmail-inject
‚sendmail‘
qmail-qmqpd
qmailqueue
Queue
qmail-qmtpd
userspace
qmail-remote
djbdns: dnscache +
Resolver libs
© Dr. Erwin Hoffmann - FEHCom
qmail-local
.alias
forwarding
Internet
SMTP-Client
Internet
EZMLM
tcpserver
qmail-pop3d
LDA
Mail
dir Mail
dir Mail
dir
TLS + Qmail/Spamcontrol | Architektur
Vorteile
• Vorteile
von Qmail:
• Strenge Trennung
der Aufgaben (einzelne
Daemons); minimale Rechte
• Modulares
Konzept, kompakter Source-Code für
einzelne Routinen (wenige hunderte Zeilen)
• QMTP
und Maildir-Unterstützung (von Postfix
adaptiert) • String-Library
© Dr. Erwin Hoffmann - FEHCom
stralloc von Bernstein
TLS + Qmail/Spamcontrol | Architektur
Nachteile
• Nachteile
• Keine
von Qmail (in Bezug auf SMTP):
SMTP-Authentication
• Keine TLS-Verschlüsslung
• Eine
Mail ist eine Transaktion (Pipelining nur bei
qmail-smtpd)
• Keine
Plugin zum Scannen der Mail während der
SMTP-Transaktion
• Keine
© Dr. Erwin Hoffmann - FEHCom
Recipient-Überprüfung beim SMTP-Daemon
TLS + Qmail/Spamcontrol | Architektur
Aktueller Stand
• Letzte
‚offizielle‘ Version ist qmail-1.03 + einige (4 Bugfixes)
+ Qmail-Queue API
☞ netqmail 1.06 (tarball + wenige Patches)
• AMD64
Support problematisch; clang ??
• Kein
utmpx.h Support
• Kein
IPv6 ;-)
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Architektur
Patches
• Weiterentwicklung
durch Patches:
• Qmail
ist seit 2008 in der Public Domain; vorher
waren Änderungen nur über Patches machbar
Felix von
Eric Vermeulen’s Leitner’s IPv6
TLS Patch
Patch
Andre
Oppermann’s
LDAP Patch
!
netqmail 1.06
netqmail-1.05-
+ TLS + 20110119 fefe3.diff.bz2
Status ?
Indimail ist ein Fork von Qmail!
© Dr. Erwin Hoffmann - FEHCom
Spamcontrol
Patch
Bill Shupp’s „Qmail Toaster“
Patchsammlung
1.0 RECIPIENTS Extension
Status
2.0 AUTH qmail-smtpd
2.3 QHPSI + WARLORD
2.4 TLS + STARTTLS (qmail-smtpd)
2.5 RECIPIENTS PAM qmail-remote AUTH
2.6 TLS qmail-remote
2.7 AMD64 compatibility
?
TLS + Qmail/Spamcontrol | TLS
TLS im Schichtenmodell
Protokolle
der
Anwendungsschicht
Verbindungsorientiert
HTTPS,
SMTPS,
IMAP4S,
...
6: Anwendungsschicht
5: Supportschicht
4: Transportschicht
3: Netzwerkschicht
2: Data-Link-Schicht
1: Physikalische Schicht
© Dr. Erwin Hoffmann - FEHCom
HTTP,
FTP,
SMTP,
IMAP4,
...
Echtzeit
H.323SIG
SIP
SRTCP
RTSCP
SRTP RTP
DTLS
RTCP
TCP/FO
TCP
IPSec
RARP
DNS,
DHCP,
SNMP,
RIP,
NTP, ...
BGP
TLS
SCTP
Verbindungslos
ARP
RSVP
OSPF
...
UDP
IP
NIC
ICMP
IGMP
Übermittlungsnetze
TLS + Qmail/Spamcontrol | TLS
TLS hat selbst mehrere Schichten …
HTTP, SMTP, LDAP, ...
HandT shake
L (Type 22)
S
HeartChange
beat CipherSpec
(Type 24)
(Type 20)
Alert
Applikationsprotokoll
(Type 21)
(Type 23)
Record Layer Protocol
Transmission Control Protocol (TCP)
Internet Protocol (IP)
• Die
Record Layer dient als Transportschicht
• Handshake
für den Sitzungsaufbau
Nachrichten mittels Change Cipher
Spec, Alerts und - neu - per Heartbeat (RFC 6520)
• Out-of-Band
• Verschlüsselte
Anwendungsdaten werden als
Nachrichtentyp ‚23‘ übertragen
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | TLS
Cipher Suite
KeyExchange+Authentisierung Verschlüsselung+Betriebs-Mode
TLS_
_
RSA
DH/DHE
ECDH
Anonymous
RSA
RSA (Export)
DSA
DSS
ECDSA
MAC
_
Null
ECB(default)
*RC4(_40/_56/_128) CBC
DES(_40/_56)
GCM
3DES_EDE(3)
AES(_128/_256/_512)
RC2(_128/_256) *) Stream Cipher;
SEED
alle anderen:
CAMILLA
Block Cipheren
Null
MD5
SHA(1)
SHA256
SHA384
Cipher Suite beschreibt den SecurityKontext für TLS
• Die
Cipher Suite wird beim Handshake
ausgehandelt; kann aber per Change Cipher
Spec nachträglich geändert werden
• Die
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | TLS
X.509 Zertifikate
Version of Certificate
Certificate Serial Number
Signature Algorithm for Cert Auth.
Issuer (CA) DN
Subject of Cert (DN)
Subject
Algorithm Identifier
Public Key
Information Public Key Value
Issuer Unique Identifier
Subject Unique Identifier
DN of Issuer =
DN der ausgebenden
Zertifizierungs-Behörde (CA)
X.509.v1
DN of Subject =
DN des Besitzers des Zertifikates
X.509.v2
=> PKIX Konventionen
Server: CN=host.example.com
Client: [email protected]
X.509.v3
Critical flags: CA = true
Extension Field (Variable)
Certification Authority's
Digital Signature
Usage: KeX, Authentication, Signing
Subject Alternative Name (FQDN, IP)
• X.509
Zertifikate werden beim ephemeralen DiffieHellman zur Signierung der DH-Parameter benötigt
• Sie
dienen daher nur zur Authentisierung des Servers
Anonymous DH verzichtet der Client überhaupt
auf die Validierung des Server-Certs
• Beim
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | TLS
Transparenz von TLS + OpenSSL
• TLS
war als ‚transparente‘ Sicherheitsschicht für die
Applikation geplant; d.h. die Applikation merkt
weder etwas von der stattfindenden
Verschlüsselung; noch kann sie darauf Einfluss
nehmen
• Spätestens
mit STARTTLS/STLS ist dieses (falsche)
Paradigma nicht mehr gültig
• Was
ist mit TLS ALARM-Nachrichten ?
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | TLS
OpenSSL Schnittstellen
• Input: • Die
Cipher Suite, die vorgegeben werden kann (C+S)
• Der
Trust- und Key-Store (bzw. dessen Inhalt)
• Die
Diffie-Hellman Parameter (DHPARAM)
• Validierung
des Zertifikates (ansonsten Anonym)
• Verifikation
des Hostname gegenüber Zertifikat
• Output: (genutzte Cipher Suite und Partner-DN; aber keine EKUs)
• mod_ssl
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | TLS
ucspi-ssl
‚Superscript‘ gibt es als Ersatz von ucspi-tcp
ucspi-ssl:
• Von
• ucspi-tcp
+ OpenSSL Libraries
• Keine
Unterstützung für STARTTLS/STLS
• Keine
CRL-Unterstützung
• Kein
OCSP
• STARTTLS-Erweiterung
© Dr. Erwin Hoffmann - FEHCom
von Scott Gifford !
TLS + Qmail/Spamcontrol | Server
sslserver als Ersatz für tcpserver
• Qmail
Empfangsprozesse:
• qmail-smtpd
• qmail-pop3d/qmail-popup
• qmail-qmtpd
• qmail-qmqpd
Alle diese Daemons nutzten tcpserver (ucspi-tcp)
Und für den gibt es Ersatz: sslserver (ucspi-ssl)
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Architektur
sslserver im Einsatz
Internet
sslserver
cdb
FQDN:deny
IP:deny
:allow,ENV=ok
Listen: IP-Adresse, Port
daemontools: supervise + multilog
rblsmtpd
Bounces, NDR
qmail-smtpd
qmail-send
Intern
Queue
qmail-qmtpd
qmail-remote
djbdns: dnscache +
Resolver libs
© Dr. Erwin Hoffmann - FEHCom
qmail-inject
‚sendmail‘
qmail-qmqpd
Internet
Internet
qmailqueue
qmail-pop3d
qmail-local
EZMLM
sslserver
Mail
dir Mail
dir Mail
dir
TLS + Qmail/Spamcontrol | Server
sslserver Anwendungsfälle
SMTPClient
(MUA)
TCP SYN
Internet
TLS Handshake
SMTPSMTPSClient
Server
(MUA)
TCPListen TCP SYN
Port 465
Internet
220 hostname EMSTP
EHLO client
220 hostname EMSTP
EHLO client
250-hostname
250-PIPELINING
250-8BITMIME
250-SIZE 0
250 AUTH LOGIN
TLS
Tunnel
STARTTLS
220 Ready to start TLS
TLS Handshake
TLS Tunnel
b)
Internet
TCP-Verbindungsaufbau
TCP-Segment 1 ClientHello
ServerHello
Server Certificate(s) Exchange
Certificate Request (+ Client CAs)
ServerKeyExchange
ServerHelloDone
7
8
TCP-Segment
9
10
11
c)
© Dr. Erwin Hoffmann - FEHCom
TCPListen
Port 25
250-hostname
250-PIPELINING
250-8BITMIME
250-SIZE 0
250-AUTH LOGIN
250 STARTTLS
a)
(TLS-)Client
SMTPServer
(TLS-)Server
2
3
4
5
6
Drei Anwendungsfälle:
TCP-Segment
Client Certificate Exchange
ClientKeyExchange
Client Certificate Verify
ChangeCipherSpec
Finished
ChangeCipherSpec 12
Finished 13
TLS-Verbindung
TCP-Segment
!
a) SMTPS
b) (E)STMP + STARTTLS
c) Client-Zertifikate
TLS + Qmail/Spamcontrol | Server
Fall a) sslserver für SMTPS
mod_ssl
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | TLS
sslserver mit Stores
sslserver/sslclient lassen sich verschlüsselte
Client/Server-Anwendungen realisieren, ohne dass die
Anwendung ein Socket-IF besitzen muss
• Mittels
•
TCP-Verbindungen können bei
sslserver per IP-Adresse oder per FQDN kontrolliert werden
•
Applikation läuft in einer chroot-Umgebung
•
Auch das Einlesen der
Zertifikate + Keys geschieht in eigener
Umgebung
DNS Stubresolver
IDENT/TAP
FD 0
FD 1
sslserver
IPv4
IPv6
OpenSSL Libs
© Dr. Erwin Hoffmann - FEHCom
Listen: IP-Adresse, SMTPS (465)
qmail-smtpd
cdb
Key
Trust
Stores
TLS + Qmail/Spamcontrol | Server
sslserver
Syntax
!
• sslserver
-4 | -6 -I ifname -Rhp -x cdb \
-sevn -m \
-c connections \
-u user -g group \
Default ist immer
IPv6 !
-l localhost \
IP-Adresse Port \
progX args progX server args
DHFILE= CIPHERS=
export
KeyStore
TrustStore
VERIFYDEPTH=
CRL
CCAFILE =!
KEYFILE= CERTFILE=!
CERTCHAINFILE= !
CADIR=
© Dr. Erwin Hoffmann - FEHCom
Keystore und
Truststore können
pro IP-Verbindung
gewählt werden!
TLS + Qmail/Spamcontrol | Server
Fall b) sslserver mit STARTTLS Unterstützung
mod_ssl
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Server
ucspi-ssl 0.94
• ucspi-ssl
0.94 ist Weiterentwicklung von
Superscript’s ucspi-ssl 0.72
Unterstützung + CIDR Filterung von IP-Adressen
• IPv6
• STARTTLS
• Zulässig
© Dr. Erwin Hoffmann - FEHCom
nun auch ‚User’ Client-Zertifikate für SMTP
TLS + Qmail/Spamcontrol | Server
Fall c) X.509 Client Certificate based Authentication
signiert
CA
Host/
User
Signing
Issuer DN: rootCA
Subject
DN: rootCA
keyCertSign
(critical) CA:True
Signing
encipherment
Privater Schlüssel only
ist 'online'
b)
a)
• X509
none
digital
keyEncipherment dataEncipherment Repudiation Signature
Issuer DN: rootCA
Subject DN:
intermediateCA
Privater Schlüssel cCRLSign OCSPSign
ist 'offline'
Signature
De(En)Cipherment
decipherment
only
codeSigning
emailProt
serverAuth clientAuth
Certs (+Keys) werden an Clients ausgeliefert
• Server
muss Stammzertifikat
besitzen und dieses anbieten:
• ClientCA
MUA
CA
Host/
User
© Dr. Erwin Hoffmann - FEHCom
(CCA)
+ Key
qmail-smtpd
Zertifikat bitte!
CCA=myCA
Hello
sslserver
OpenSSL Libs
CA
cdb
Key
Trust
CCA
TLS + Qmail/Spamcontrol | Server
Fall c) X.509 Client Certificate based Authentication Voraussetzungen
• Eigene
CA (self-signed Zertifikate sind ok)
• Personengebundene
X.509 Zertifikate werden
erzeugt
• Im
DN des Client-Certs ist die Email-Adresse (des
Benutzers) anzugeben
• Das
Client-Cert wird mit der (eigenen) CA signiert
• Client-Cert
+ Keyfile (mit Passphrase geschützt)
werden an die Benutzer/MUAs ausgerollt
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Server
Fall c) X.509 Client Certificate based Authentication - Server
• Eigenes
CA Cert + Cert wird eingebunden.
• sslserver
wird angewiesen, Client-Cert anzufordern
• Eigenes
CA Cert (es können auch mehrere sein)
werden an Client im erweiterten Handshake
mitgegeben
• Client
wählt passendes CA Cert aus und teilt sein
Cert mit
• Server
überprüft Client Cert gegen CA Cert und ob
Client Key File vorliegt
• Optionale
• Keine
© Dr. Erwin Hoffmann - FEHCom
Überprüfung der Email-Adresse
anschliessende SMTP Authentication !
TLS + Qmail/Spamcontrol | Client
qmail-remote als TLS-Client
• Anforderungen
für qmail-remote:
• ‚Passiver‘ TLS-Client: SMTPS Verbindungen
auf Port
465 werden unterstützt (z.B. via sslclient, ssltunnel)
• STARTTLS-fähiger
Client: STARTTLS vom Server wird
erkannt und in den TLS-Mode gewechselt
• Überprüfender
Client: X.509 Server-Zertifikate
werden • validiert
(Syntax, Signierung der DH-Parameter)
• verifiziert
(gegenüber einem bekannten CA Cert) • Common
Name bzw. SAN gegenüber Hostname
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Client
qmail-remote Architektur
für qmail-remote
wurde von mir von Grunde auf neu entwickelt und
für Spamcontrol 2.6 implementiert
• Die TLS-Implementierung
ist allerdings ucspi-ssl, da dessen
high-level APIs auch hier genutzt werden
• Voraussetzung
Kompilieren werden die ucspi-ssl Libraries
eingebunden (und die von OpenSSL als Shared
Libs)
• Beim
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Fazit
TLS-Konfiguration qmail-remote
• Konfigurationsdatei:
control/tlsdestinations
UCSPITLS=„“
UCSPITLS=„!“
UCSPITLS=„-„
STARTTLS (?) für alle:
*:
.example.com:
TLS mit CA Cert + Cipher: securityfirst.com:/etc/ssl/cafile||!SSLv2:HIGH
TLS mit CA Dir:
.remote.com:/etc/ssl/certdir/|3:465
TLS für Absender:
mx.partner.com:/etc/ssl/partnerca||:26|mydomain.net
TLS mit Host-Überprüfung: =mx.myfriend.com:/etc/ssl/cacert|4
-.adhonlydomain.com:|aNULL:!kRSA
Anonymous DH:
=*:
hiddenpartner.org:||:35
TLS auf Port 35:
TLS nicht für diesen:
!nosslhost.example.com:
qmail-remote erlaubt die Verwendung dedizierter Cipher pro
Kommunikationspartner. Bedingt durch die Canonicalization ist der Trigger die ‚Mail From:‘ Adresse.
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Client
TLS-Authentication mit qmail-remote
• Bei
geschäftskritischer Kommunikation sollte dem
Partner ein X.509 Zertifikat angeboten werden
• Konfigurationsdatei:
control/domaincerts
Server-Zertifikat:
Domain-Zertifikat:
*:mycert|mykey|mypassword
example.com:thiscert|thiskey|thispassword
qmail-remote erlaubt pro sendender Domain in ‚Mail From:‘
die Angabe eines dedizierten X.509 Zertifikates.
!
Für Mailserver, die viele Domains hosten, kann statt eines Server-
Zertifikates ein Domain-Zertifikat genutzt werden.
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Fazit
Zusammenfassung
bietet mit zusammen ucspi-ssl
die weitgehende Nutzung von TLS für die SMTPKommunikation:
• qmail/Spamcontrol
• qmail-smtpd
unterstützt unterschiedliche Key/
Trust-Stores pro Verbindung
• Dies
gilt auch für qmail-pop3d
• qmail-remote
• Besonderheit
© Dr. Erwin Hoffmann - FEHCom
bietet umfangreiches TLS tweaking
ist die Domain-Konfiguration
TLS + Qmail/Spamcontrol | Fazit
Ausblick
• qmail/Spamcontrol
realisiert alle meine
Anforderungen an die TLS-Kommunikation
• Es
fehlt noch die Einbeziehung der OpenSSL
ALARM Mitteilung (bzw. dessen Ausgabe im Log)
• Die
Komplexität von qmail/Spamcontrol erlaubt
keine Weiterentwicklung als Patch (➪ s/qmail)
• IPv6
Integration ist notwendig
• djbdnscurve6
© Dr. Erwin Hoffmann - FEHCom
ist auf der Warteliste
TLS + Qmail/Spamcontrol | Fazit
Quellen
•
•
•
•
•
•
•
•
•
•
•
•
•
http://cr.yp.to/ucspi-tcp.html
http://cr.yp.to/qmail.html
http://www.qmail.org
http://www.fehcom.de/qmail/qmailbook.html
http://www.fehcom.de/qmail/smtptls.html
http://www.fehcom.de/ipnet/ucspi-ssl.html
http://www.fehcom.de/ipnet/ucspi-tcp6.html
http://www.superscript.com/ucspi-ssl/index.html
http://www.suspectclass.com/sgifford/ucspi-tls
http://inoa.net/qmail-tls/
http://www.qmail-ldap.org/
http://www.fefe.de/qmail/
http://www.qmailtoaster.com/
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Fazit
Fragen ?
Antworten !
anatol BADACH
erwin HOFFMANN
Technik der
IP-NETZE
3. Auflage
INTERNET-KOMMUNIKATION
IN THEORIE UND EINSATZ
EXTRA: Mit kostenlosem E-Book
Im Internet: XXX
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Heartbeat
Asymmetrische Verschlüsselung
Privater Schlüssel
Bereitstellung
der Schlüssel
Schlüsseltausch
Methode
SchlüsselBerechnung
SchlüsselBeglaubigung
Asymmetrische
Verschlüsselung
Ephemeral
El Gamal
Diskreter
Logarithmus
Elliptische
Kurven
Ephemeral
DSS
© Dr. Erwin Hoffmann - FEHCom
Statisch
Diffie-Hellmann
Anonym
Öffentlicher Schlüssel
RSA
RSA
Faktorisierung
in Primzahlen
Fix
TLS + Qmail/Spamcontrol | Heartbeat
TLS Nachrichten
a)
RLHeader
b) Daten eines Applikationsprotokolls
verschlüsselt (optional)
Nachricht(en)
Protocol (1 Byte)
Version (2 Byte)
Length (2 Byte)
MAC MP PL
Hash-Wert
Padding
(optional )
Segment
Segment
Segment
Kompression
MACBerechnung
MAC
Verschlüsselung
20: ChangeCipherSpec Protocol
Record Layer
21: Alert Protocol
Header
Protocol = 22: Handshake Protocol
23: Application Protocol (HTTP, ...)
Record Layer Frame
24: Heartbeat Protocol (DTLS aber auch TLS)
© Dr. Erwin Hoffmann - FEHCom
TLS + Qmail/Spamcontrol | Fazit
Heartbeart Funktion
DTLSClient
timer
Zeit
abgelaufen
Internet
ClientHello (epoch=0,seq=0)
DTLSClient
DTLSServer
UDP
Listen
Flight 1
Flight 2
Flight 3
HelloVerifyRequest
(epoch=0,seq=0,Cookie)
Flight 3
ClientHello (epoch=0,seq=0)
HelloVerifyRequest
(epoch=0,seq=1,Cookie)
a)
ClientHello
(epoch=0,seq=1,Cookie)
Flight 4
Flight 5
b)
© Dr. Erwin Hoffmann - FEHCom
Internet
ClientHello
HelloVerifyRequest
ClientHello
DTLSServer
UDP
Listen
ChangeCipherSpec
Finished
TLS Tunnel
DTLSServer
UDP
Listen
Internet
ClientHello (....)
ServerHello
(Heartbeat_allowed_to send)
ServerHello
Certificate
ServerKeyExchange
CertificateRequest
ServerHelloDone
Certificate *
ClientKeyExchange
CertificateVerify *
ChangeCipherSpec
Finished
DTLSClient
Retransmissiontime = 0
Epoche 1
Heartbeat_Request
(Type=1, Data=X, Padding)
Heartbeat_Response
(Type=2, Data=X, Padding)
c)
Record-Layer Frame (Type = 24)
T = 1,2
PLen
Epoche 2
Payload
d)
Padding
TLS + Qmail/Spamcontrol | Heartbeat
Heartbeart Funktion
• sslserver
hängt von OpenSSL ab.
•
Daher ist sslserver auch vom Heartbleed Bug in OpenSSL 1.0.1 betroffen …
aber
•
er kann nicht ausgenutzt werden, da pro Client-IP eine sslserver-Instanz
geöffnet wird (neuer Speicherbereich) und dieser auch nur für diesem Client.
•
Nach dem Lesen der CA Certs und des Keyfiles erfolgt die eigentliche
Verbindungs-ver/entschlüsselung in einer chroot-Umgebung statt. •
Diese werden für die aktuelle Verschlüsselung auch gar nicht benötigt; ausser
zum Schlüsseltausch bei RSA (keine Perfect Forward Secrecy PFS).
•
Allerdings stehen die Certs im Kontext der SSL-Verbindung.
© Dr. Erwin Hoffmann - FEHCom