Analyse von SSL/TLS-Verbindungen
Die folgende Beschreibung soll einem normalen Anwender die Möglichkeiten geben, SSL/TLS-Verbindungen oberflächlich auf ihre Wirksamkeit hin zu prüfen. Die Prüfroutinen basieren teilweise auf Kommandozeilen-Befehlen, von denen die meisten unter Linux und MacOS funktionieren sollten. Das jeweilige zurückgelieferte Ergebnis muss auf Hinweise auf eine erfolgreich verschlüsselte Verbindung untersucht werden.
Um die Ergebnisse richtig interpretieren zu können empfiehlt es sich vorher ausreichend mit den Grundlagen vertraut zu machen.
Webserver auf SSL/TLS testen
Bei einem Webserver testet man die SSL/TLS-Eigenschaften und -Fähigkeiten am besten mit den SSL-Tests der SSL Labs. Der Webdienst führt den Verbindungsaufbau mit vielen verschiedenen Browsern durch und zeigt dann an, welche Verschlüsselung erreicht wurde. So wird in der Auswertung angezeigt, welche Verschlüsselungsverfahren und Schlüsselaustauschverfahren eingesetzt wurden. Zum Beispiel auch Diffie-Hellman und Forward Secrecy.
Das funktioniert jedoch nur mit Webservern, die mit HTTPS auf Port 443 erreichbar sind.
HTTPS-Server auf Forward Secrecy testen
Wenn es nur darum geht, einen HTTPS-Server auf das Leistungsmerkmal Perfect Forward Secrecy (PFS) zu testen reicht folgender Befehl auf der Kommandozeile, sofern OpenSSL installiert ist.
- openssl s_client -cipher 'ECDH:DH' -connect {Adresse des Webservers}:443
Befindet sich im zurückgelieferten Ergebnis die Angaben "DHE" oder "ECDHE", wobei das abschließende E für ephemeral, flüchtig oder vergänglich steht, dann wird der Sitzungsschlüssel nicht gespeichert. Sollte die Kommunikation aufgezeichnet werden, dann lässt sie sich auch nachträglich nicht entschlüsseln.
IMAP-Server auf SSL/TLS testet
Interessant ist eine verschlüsselte Kommunikation auch zwischen Mail-Clients und Mail-Servern. Auch hier bietet sich das Kommandozeilenprogramm OpenSSL für die Analyse von SSL-Funktionen an.
- openssl s_client -connect {Adresse des IMAP-Servers}:993
Hier geht es darum, ob zum jeweiligen IMAP-Server eine verschlüsselte Verbindung möglich ist. War der Verbindungsaufbau erfolgreich, dann ist eine verschlüsselte Verbindung möglich.
Server auf STARTTLS testen
STARTTLS oder StartTLS bezeichnet ein Verfahren zum Einleiten der Verschlüsselung einer Kommunikation mittels Transport Layer Security (TLS). Die folgenden Kommandozeilen-Befehle ermitteln, ob eine Verbindung mit STARTTLS möglich ist. Das funktioniert mit den Protokollen "smtp", "pop3", "imap" und "ftp", bei denen man dann jeweils den dafür zuständigen Standard-Port wählen muss.
- openssl s_client -starttls smtp -connect {Adresse des SMTP-Servers}:587
- openssl s_client -starttls pop3 -connect {Adresse des POP-Servers}:995
- openssl s_client -starttls imap -connect {Adresse des IMAP-Servers}:993
- openssl s_client -starttls ftp -connect {Adresse des FTP-Servers}:22
War der Verbindungsaufbau erfolgreich, dann ist eine verschlüsselte Verbindung möglich.
Übersicht: SSL / TLS
- SSL - Secure Socket Layer
- TLS - Transport Layer Security
- Schwachstellen von SSL/TLS
- HTTPS / HTTP Secure
- HSTS - HTTP Strict Transport Security
- OCSP - Online Certificate Status Protocol
- PFS - Perfect Forward Secrecy
- CA-Pinning / Certification Authority Authorization
- DANE - DNS-based Authentication of Named Entities