HH maczarr.de

Sicherheit geht vor

Nach dem Beitrag neulich wie man Android verschlüsselt soll es diesmal auch noch mal um Verschlüsselung gehen. Nämlich um die Verschlüsselung der Verbindung zu dieser Website.

Seit gut einer Stunde kann man meine Website nur noch mittels https erreichen - die Verbindung ist 128-Bit verschlüsselt. Die Anpassung bei ein paar wenigen Scripten, die Videos und Bilder einbinden, war nötig, aber dann konnte ich bereits keine Fehler mehr feststellen. Wem etwas auffällt: gerne melden hier im Kommentar.

Was bringt das denn?

Bisher hat die Verbindung zu dieser Website vom Besucher ohne Verschlüsselung statt gefunden. Man kann sich das vorstellen, als hätten sich Besucher und Webserver Postkarten geschrieben - jeder an dem die Postkarte vorbeikam konnte einfach den Inhalt mitlesen. Die Kommunikation jetzt mit https ist eher wie mit verschlossenen Briefen, für die man zum Öffnen einen Schlüssel benötigt.
Zwischen Benutzer und Webserver gehen keine strenggeheimen Inhalte hin und her, aber seitdem Geheimdienste der Meinung sind, nur weil im Internet viel unverschlüsselt kommuniziert wurde, einfach mal alles mitzuschneiden, ist man gut damit beraten überall zu verschlüsseln wo es nur geht in der Hoffnung, dass die pauschale Überwachung irgendwann für den Aufwand nicht mehr nützlich ist und die Geheimdienste sich bei der Überwachung wieder auf Personen beschränken müssen, zu denen es konkrete Verdachtsmomente gibt.

Die Krux mit den Zertifizierungsstellen

Nun ist das mit SSL (das ist die Verschlüsseung bei https) so eine Sache. Wie funktioniert das? Mein Hoster 1und1 arbeitet mit dem CA (Certificate Authority = Zertifizierungsstelle) Geotrust zusammen. Geotrust ist ein US-Unternehmen. An diesem Punkt könnte ich eigentlich aufhören und sagen "Die Verbindungsverschlüsselung ist nützlich und hilfreich, aber gegen die NSA ist auch sie machtlos" - das kann leider auch so stehen bleiben. Man muss nach aktuellem Stand davon ausgehen, dass die NSA Geotrust einfach im Geheimen dazu zwingt die privaten Schlüssel der SSL-Zertifikate heraus zu rücken. Da es aber leider (oder glücklicherweise? Ich bin mir grad unschlüssig...) auch noch andere Bedrohungen gibt im Web, die gerne alles mitlesen wollen zwischen Websites und Besuchern nützt eine SSL-Verschlüssung sehr wohl was. Außerdem erschwert sie $Geheimdienst dennoch die Arbeit, weil man nicht mehr so einfach alle massenhaft überwachen und unter Generalverdacht stellen kann.

Ich schweife ab - zurück zum Text. Es läuft also so, dass Geotrust als große Firma ihr Stammzertifikat bereits in den Browsern platzieren durfte. Das bedeutet, dass der Browser Zertifikate von Geotrust prinzipiell als vertrauensvoll einstuft. Mein SSL-Zertifikat - ausgestellt von Geotrust - ist nun also nur noch eine Art Unter-Zertifikat des Geotrust-Stammzertifikats. Die Vertrauenskette läuft also so: Der Browser vertraut Geotrust, Geotrust vertraut mir und gibt mir ein SSL-Zertifikat und weil Geotrust mir vertraut und der Browser wiederum Geotrust vertraut besteht auch ein Vertrauen vom Browser mir (respektive meiner Website) gegenüber, weshalb da oben in der URL dieses hübsche grüne Schlösschen angezeigt wird.
Das klingt ja alles schön und gut, aber wenn man mal genau hinsieht fragt man sich natürlich: wieso vertraut Geotrust mir? Und das ist ganz einfach mit einem simplen Wort gesagt: Geld! In meinem Fall ist ein SSL-Zertifikat bereits in meinem 1und1-Paket enthalten gewesen, aber das ändert nichts an der Sache. Es werden zwar noch minimal Daten abgefragt, ob ich tatsächlich als Domain-Eigentümer in der Whois-Datenbank stehe, aber wirklich vertrauensvoller macht mich dieser Eintrag auch nicht.
Das gesamte Zertifizierungssystem basiert nun also darauf, dass ein Domain-Inhaber einer Firma Geld zahlt, damit die bestätigen, dass man vertrauensvoll ist und quasi für einen bürgen bei den Browser-Herstellern.

Es geht doch nur um Verschlüsselung - wozu der ganze Heckmeck?

Und wieder lautet die Antwort: Geld! Denn ein SSL-Zertifikat kann ich mir mit wenigen Befehlen auf der Kommandozeile auch selbst erstellen und schon kann der Benutzer binnen weniger Minuten mit meiner Website hochverschlüsselt per SSL kommunizieren. Und es kommt noch besser: den privaten Schlüssel habe ich, nicht irgendeine US-Firma.

Warum aber dann der ganze Kram mit den Zertifizierungsstellen?

Ich hab leider nicht einen ganz so guten Draht zu Chrome, Firefox, Safari, Opera und dem Internet Explorer und daher wird bei einem selbst erstellten SSL-Zertifikat in der Adress-Leiste des Browsers kein grünes Schloss angezeigt, sogar noch schlimmer: der Benutzer wird explizit gewarnt, dass die Identität der Website nicht festgestellt werden konnte (es gibt ja keine große Firma die gegen Geld für mich bürgt) und der Benutzer muss in einem Zwischenschritt bestätigen, dass er meine Website wirklich besuchen möchte und das Risiko kennt.
Dabei muss der Besucher eigentlich nur eine Sache machen, die heutzutage nicht mehr so en vogue ist: er müsste mir einfach vertrauen.
Bei meinem Hoster hier habe ich keinen Vollzugriff auf den Webserver, daher kann ich auch kein selbst signiertes SSL-Zertifikat ausstellen.

Der Chaos Computer Club arbeitet übrigens auch mit keiner CA zusammen und hat ein selbst erstelltes Zertifikat. Wie das für den Benutzer dann aussieht kann man sich mal anschauen, wenn man die CCC-Seiten mit SSL aufruft.