Sven Rautenberg: Sicherheit mit SSL und Zertifikaten

Beitrag lesen

Moin!

Bei mir sind jetzt aber noch folgende Fragen offen:

  • kann ohne eine Zertifizierungsstelle wie VeriSign überhaupt eine komplette Sicherheit garantiert werden? Die Daten des Zertifikats sind ja mit dem privaten Schlüssel der Zertifizierungsstelle signiert und können so mit dem öffentlichen Schlüssel der Zertifizierungsstelle überprüft werden. Dies wäre ja bei meinem Ansatz nicht gegeben.

Ja, das kann trotzdem sichergestellt werden.

Dabei muß allerdings ein Aspekt zum Tragen kommen, der bei den gewöhnlichen und bekannten SSL-Verbindungen mit signierten Zertifikaten (und ohne Sicherheitsmeldung) vollkommen verdrängt wird: Vertrauen.

Jeder Browser bringt vorinstalliert einen ganzen Sack von Zertifikaten der einschlägigen Signaturlieferanten mit. Wenn ein SSL-Zertifikat von so einer Stelle (Verisign, Thawte, Equifax & Co.) singiert wurde, dann wird keinerlei Sicherheitsmeldung angezeigt, weil der Browser automatisch davon ausgeht, dass alles in Ordnung ist. Aber ist das denn tatsächlich gerechtfertigt? Vertraust du persönlich denn tatsächlich allen diesen Signaturanbietern? Und wie willst du das eigentlich genau prüfen?

Es hat unlängst einen SSL-relevanten Vorfall gegeben. Ein Subunternehmen von Equifax hat es zugelassen, dass Phisher ein gültiges Zertifikat für eine bankähnliche Domain beantragen und erhalten konnten. Das nähere ist hier nachzulesen: http://www.heise.de/newsticker/meldung/69598.

Das bedeutet im Prinzip: Das Schweigen des Browsers zu der Sicherheit von SSL-Zertifikaten ist keinesfalls irgendein Indiz dafür, dass SSL-mäßig alles in Ordnung ist. Im Gegenteil ist es nur das Indiz, dass alle Zertifikate von als vertrauenswürdig eingestufen Stellen signiert wurden. Und für die Vertrauenseinstufung ist leider normalerweise nicht der Benutzer zuständig, weil er sich damit nicht beschäftigt, sondern der Hersteller des Browsers.

Aber das Prinzip kann man natürlich auch umdrehen: Auch der Benutzer ist in der Lage, einem bislang unvertrauenswürdigen Zertifikat, sei es nun selbstsigniert, oder von einer bislang nicht als vertrauenswürdig bekannten Stelle wie CACert ausgestellt, das Vertrauen auszusprechen. Das erfordert dann, wenn es wirklich um die Sicherstellung der korrekten Kommunikation mit der richtigen Stelle geht, etwa den Aufwand an Prüfung, wie er auch bei PGP-Schlüsseln erforderlich ist, also Übermittlung von Zertifikat und Fingerprint über unabhängige Kanäle und manuelle Prüfung der Authentizität (es bringt nichts, wenn irgendeine Webseite, die ja gefälscht sein kann, parallel sagt "Hier ist das (in Wirklichkeit manipulierte) Zertifikat, und das ist der (sich daraus logisch ergebende, aber eben auch gefälschte) Fingerprint dazu").

Auch unsignierte, unvertrauenswürdige und mit ganz vielen Sicherheitswarnungen stattfindende SSL-Kommunikation ist immerhin noch verschlüsselt. Dann fällt zwar der für den Benutzer ggf. wichtige Aspekt des "Ich kann sicher sein, dass ich tatsächlich mit der richtigen Gegenstelle kommuniziere und verrate mein Login nicht aus Versehen irgendeinem Phisher" weg, aber die Kommunkation ist immerhin verschlüsselt und so gegen Mithören gesichert. Und das manuelle Vertrauen des zunächst unvertrauenswürdigen Zertifikats stellt dann auch wieder die Sicherheit der Kommunikation mit der richtigen Gegenstelle sicher.

Es ist also festzustellen: SSL ist nicht nur dann sicher und nützlich, wenn man für viel oder wenig Geld irgendeine offizielle Signatur erhält, der die Browser in der Standardinstallation automatisch vertrauen. Für zahlenmäßig eingeschränkte Nutzergruppen, denen man begreiflich machen kann, welche Hintergründe und Kostenspareffekte es hat, erweist sich oft auch ein selbstsigniertes Zertifikat als sehr sinnvoll.

Und unter dem philosophischen Aspekt würde ich letztere Methode sogar als sicherer ansehen - explizit ausgesprochenes Vertrauen dürfte doch eigentlich eine höhere Qualität haben, als vorinstalliertes Vertrauen in irgendwelche Instanzen, deren Machenschaften man nicht beurteilen kann.

- Sven Rautenberg

--
"Love your nation - respect the others."