Bene: Sicherheit mit SSL und Zertifikaten

Hallo,

ich möchte einen sicheren Zugriff auf eine geschützten Bereich zur Inhaltspflege bereitstellen und habe mich über SSL und Zertifikate informiert. Ich wollte einfach die Datenübertragung über SSL laufen lassen und mir selbst ein Zertifikat erstellen. Dabei ist es mir egal, wenn der Browser eine Warnmeldung anzeigt.
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.

Vielen Dank und viele Grüße
Bene

  1. 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."
  2. 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
    1. Hallo,

      Vielen Dank für die beiden ausführlichen und hilfreichen Antworten. Dadurch ist mir die ganze Sache jetzt klar geworden.

      Vielen Dank!!!
      Bene