Dieser Gastblog ist Teil einer Serie und wurde in Zusammenarbeit mit F5 erstellt.
CSR, PEM, DER, X509 … kein Wunder, dass Zertifikate oft als eine Art Zauberei angesehen werden.
Als ich zum allerersten Mal ein Arbeitszertifikat erwerben musste, hatte ich keine Ahnung, was ich tat! Ich habe ziellos eine Reihe von Befehlen kopiert und gehofft, dass sie funktionieren. Wenn es jedoch um Sicherheit geht, ist es riskant, von jemandem zu erwarten, dass er Befehle blind kopiert. Das gilt vor allem für Zertifikate.
Zertifikate sind der Grundstein von TLS-Verbindungen (und am häufigsten von HTTPS, das TLS verwendet). Wenn Sie dies falsch machen, setzen Sie sich dem Risiko aus, dass die Verbindung von einem Angreifer abgefangen wird (wodurch der Schutz, den die TLS-Verbindung bietet, effektiv zunichte gemacht wird).
Dieser Blog ist Teil einer Reihe, die die Rolle von Zertifikaten und insbesondere des Zertifikatsmanagements beleuchtet. Im ersten Teil untersuchen wir den Zweck von Zertifikaten und warum sie bei der Sicherung von Verbindungen (insbesondere TLS-Verbindungen) eine wichtige Rolle spielen.
Wenn ein Client eine Verbindung zu einem Server herstellt, müssen wir zwei Sicherheitsprinzipien berücksichtigen.
Das erste ist Vertraulichkeit. Dies ist wichtig, damit die zum und vom Client übertragenen Daten für niemanden außerhalb dieses Datenverkehrs sichtbar sind. Ein gutes Beispiel ist eine Anmeldeseite. Wir möchten sicherstellen, dass der von Ihnen eingegebene Benutzername und das Passwort für niemanden sichtbar sind, wenn sie mit dem Server transportiert werden, bei dem Sie sich anmelden möchten. Es ist außerdem erwähnenswert, dass Vertraulichkeit auch den Datenschutzaspekt beeinflusst, da sie verhindert, dass neugierige Blicke Einblick in die von Ihnen angezeigten Aktionen oder Informationen nehmen.
Das zweite Prinzip ist Integrität. Dies ist ein Punkt, den viele Leute vergessen oder sich nicht bewusst sind, wenn es um TLS geht. Unter Integrität verstehen wir, dass niemand die zum und vom Client übertragenen Daten manipulieren kann. Auch wenn die Ressource öffentlich ist, möchten wir die Integrität dieser Daten sicherstellen.
Erwägen Sie eine öffentlich zugängliche Nachrichten-Site. Der Vertraulichkeitsaspekt ist für uns nicht so wichtig (abgesehen vom Datenschutz, aber den lassen wir in diesem Beispiel mal außen vor), da diese Seite öffentlich zugänglich ist. Wir möchten jedoch sicherstellen, dass die vom Server an den Client (den Browser eines Benutzers) gesendeten Daten nicht manipuliert wurden. Ohne Berücksichtigung der Integrität eines Servers könnte ein Angreifer den Inhalt eines Nachrichtenartikels bearbeiten (denken Sie an Fake News) oder schädliche Inhalte in die Seite einschleusen, beispielsweise einen Browser Exploitation Framework-Hook.
Welche Rolle spielen Zertifikate in all dem? Wenn ein Client eine Verbindung zu einem Server herstellt, muss er sicherstellen, dass er zuerst eine Verbindung zum gewünschten Server herstellt. Kein Server, den ein Angreifer nachgeahmt hat. Darüber hinaus möchten wir eine Ende-zu-Ende-Verschlüsselung der Verbindung garantieren. Damit ist gemeint, dass die Verbindung nicht irgendwo beendet wurde, um eine Überprüfung und Änderung des Datenverkehrs zu ermöglichen, sondern an den ursprünglichen Server weitergeleitet wurde. Dies wird als Machine-in-the-Middle-Angriff bezeichnet .
Um es klar zu sagen: Es gibt hierfür gültige Anwendungsfälle, insbesondere in einer Unternehmensumgebung, in der der Internetverkehr oft überprüft wird, um die Sicherheit der Organisation zu verbessern. Hier kommen Zertifikate ins Spiel. Wenn ein Client eine Verbindung zu einem TLS-Server herstellt, muss der Server dem Client sein (Server-)Zertifikat zur Verfügung stellen. Der Client validiert dann dieses Zertifikat, um sicherzustellen, dass es zum richtigen Server gehört, mit dem der Client ursprünglich eine Verbindung herstellen wollte. Sobald dies als Teil des TLS-Handshakes hergestellt ist, kann die Kommunikation zwischen Client und Server beginnen.
Im nächsten Teil dieser Serie werde ich dieses Thema in meinem eigenen Blog weiter untersuchen. Dort behandeln wir den Prozess der Zertifikatsvalidierung. Hier werden wir uns mit der menschlichen Seite des Zertifikatsmanagements und seiner Bedeutung befassen.
Bis dahin empfehle ich Ihnen dringend, sich eine informative F5 myForum-Sitzung ( Be Prepared for the Changing SSL Landscape ) von David Warburton und Nigel Ashworth anzusehen. Es bietet einen großartigen Überblick über die sich ständig weiterentwickelnde SSL- und TLS-Landschaft und ist Ihre Zeit absolut wert.
Sean Wright ist ein erfahrener Anwendungssicherheitsingenieur, der als Softwareentwickler begann. Sein Hauptaugenmerk liegt auf der Sicherheit webbasierter Anwendungen, mit besonderem Interesse an TLS und Supply-Chain-bezogenen Themen. Sean verfügt außerdem über Erfahrung in der technischen Leitung von Anwendungssicherheitsfragen und arbeitet mit Teams zusammen, um die Sicherheit der von ihnen entwickelten und gewarteten Systeme und Anwendungen zu verbessern. Seinen Blog können Sie hier lesen.