Christian Seiler: Sicherheit mit SSL und Zertifikaten

Beitrag lesen

Hallo Bene,

  • 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.

Kommt darauf an[tm]. Die Übetragung ist natürlich weiterhin genauso verschlüsselt, wie vorher, d.h. insofern ändert sich nichts. Allerdings: Wenn jedes Mal im Browser eine Warnmeldung kommt und die Benutzer diese einfach *jedesmal* wegklicken, führt dies zu einer Sicherheitseinbuße: Jemand anderes könnte sich ja für Deinen Hostnamen auch ein Zertifikat anlegen und sich in die Kommunikation einklinken (Man-in-the-middle) - das würde im Normalfall dazu führen, dass eine Warnung angezeigt wird, wenn alle Benutzer die jedoch ignorieren, weil diese sowieso kommt, ist es nicht möglich, einen derartigen Angriff zu erkennen.

Wenn Du allerdings über einen vertraulichen Kanal (z.B. indem Du sie persönlich triffst) den Benutzern den Fingerabdruck Deines Zertifikats mitteilst, die Personen gleichen diesen beim *ersten* Auftreten der Warnung mit dem Fingerabdruck, der im Browser angezeigt wird ab, und (sofern er übereinstimmt) akzeptieren das Zertifikat _permanent_ (d.h. die Warnung kommt dann nicht mehr), dann können die Leute sicher sein, dass es wirklich _Dein_ Server ist, der mit ihnen kommuniziert (sie haben ja den Fingerabdruck abgeglichen). Auch möglich wäre, dass die User den Fingerabdruck immer abgleichen und das Zertifikat nicht installieren, aber naja, das ist ziemlich lästig für den Benutzer, daher empfielt es sich schon, das Zertifikat im Browser permanent zu installieren.

Die großen Zertifizierungsstellen machen übrigens im Prinzip nichts anderes, als dass sie für die Echtheit des Zertifikats bürgen, damit Du den Fingerabdruck eben nicht über einen sicheren Kanal (d.h. persönlich treffen o.ä.) übertragen musst, da dies im allgemeinen Fall ziemlich unpraktikabel wäre.

Übrigens: So ganz blind würde ich den großen Zertifizierungsstellen auch nicht trauen. Verisign hat mindestens 2x ein Zertifikat auf »microsoft.com« an jemnaden ausgestellt, dem diese Domain nicht gehörte.

Als kleiner Hinweis noch: Es gibt auch ernstzunehmende Zertifizierungsstellen, die kostenlose Zertifikate verteilen, wie z.B. CACert - allerdings sind die Root-Zertifikate dieser Stellen m.W. in noch keinem Browser vorinstalliert, weswegen bei diesen Zertifikaten auch Warnungen kommen. Allerdings hat ein CACert-signiertes Zertifikat den Vorteil, dass Du damit zwar bei normalen Usern die Warnungen nicht unterdrückst (es ändert sich allerdings auch nichts, Du kannst bei diesen weiterhin mit dem Fingerabdruck abgleichen), bei den Usern, die das CACert-Root-Zertifikat jedoch manuell installiert haben, kommt keine Warnung mehr. Insofern wäre durchaus zu überlegen, ob Du Dir nicht lieber so ein Zertifikat besorgst, das bei den meisten Leuten keinen Unterschied zu selbstsignierten macht (aber auch keine Nachteile), bei einigen jedoch eine Verbesserung bringen könnte.

Viele Grüße,
Christian

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup