2010-01-21 2 views
11

Meine Frage bezieht sich auf Zertifikate speziell in ssl, aber ich denke, die Fragen sollten für alle Zertifikate gelten. Ich habe das SSL-Verfahren aus Gründen der Übersichtlichkeit eingefügt.SSL: Wie sind Zertifikate gegen Menschen in der Mitte Angriffe geschützt?

In SSL das ist, was ich verstehe, das Verfahren zu sein:

1) Client

  • Sends unterstützten Verschlüsselungsalgorithmen
  • sendet Client nonce

2) Server

  • wählt (und sendet) ein
    • symmetrischen Algorithmus
    • ein öffentlicher Schlüsselalgorithmus
    • ein MAC-Algorithmus
  • sendet es Zertifikat des
  • Server Nonce sendet

3) Kunde

  • prüft Zertifikat
    • Extracts öffentlichen Schlüssel
  • Erzeugt eine pre-Master-Geheimschlüssel (pms)
  • mit Servern öffentlichen Schlüssel verschlüsselt und sendet

4) Kunden und Server

  • Rechen Master absondern (MS) von PMS und Nonces
  • PMS in Scheiben geschnitten zwei Schlüssel-Verschlüsselung & zwei mac

5) Auftraggeber

  • sendet einen Mac aller Handschläge zu erzeugen (sie, um sicherzustellen, nicht vorher modifide) waren

6) Server

  • sendet einen Mac aller Handschläge

Frage

Was geschieht bei Schritt zwei einen Mann in der Mitte Angriff stoppt?Warum kann ein Mann in der Mitte nicht sagen, trudy, das vom Server gesendete Zertifikat erfassen und den öffentlichen Schlüssel darin ändern (zu etwas, zu dem es den privaten Schlüssel hat).

Ich gehe davon aus, dass das Zertifikat irgendwie verschlüsselt ist.

Jedoch kann der Server das Zertifikat nicht verschlüsselt werden, da der Client noch den öffentlichen Schlüssel nicht hat. Wenn der Server den Schlüssel von einer Autorität bekommt (wie ein Veri-Zeichen), würde der Schlüssel mit dem öffentlichen Schlüssel von verisign vorinklinkt werden? Ich denke, das sollte funktionieren, weil alle Webbrowser die öffentlichen Schlüssel der meisten Behörden haben sollten.

+1

In Ausführliche Beschreibung, wie ssl (oder TLS) arbeitet für alle Interessierten: http://www.moserware.com/2009/06/first-few-milliseconds-of-https.html – sixtyfootersdude

Antwort

10

Nein, das Zertifikat ist nicht verschlüsselt. Aber es ist von einer Zertifizierungsstelle (CA) unterzeichnet. Da diese die im Zertifikat enthaltenen Informationen überprüfen (insbesondere die URL, zu der das Zertifikat gehört), sollte für eine bestimmte URL kein zweites gültiges Zertifikat vorhanden sein.

Die cert der CA wird gegen einen Trust Store überprüft (zum Beispiel im Browser). Wenn diese Trusts gefährdet ist, oder wenn Sie nicht gültige Zertifikate vertrauen, gibt es keinen Schutz gegen Mann in den mittleren Angriffe

+1

Was verhindert also, dass Tudy (ein Mann in der Mitte) die Informationen in einem Zertifikat ändert, aber die gleiche Signatur hinterlässt? Ist die Signatur irgendwie ein Hash der Informationen im Zertifikat? Wie stellt die Signatur sicher, dass das Zertifikat sicher ist? – sixtyfootersdude

+1

@sixtyfootersdude Sie sind genau richtig. Das Cert ist im Grunde ein Stück Inhalt (öffentlicher Schlüssel von jemandem, die URL, für die es gehört ...) + ein Hash dieses Inhalts, der mit dem privaten Schlüssel der CA verschlüsselt ist. So kann jeder den Hash entschlüsseln und mit dem acutal Hash vergleichen. Aber jemand, der den Inhalt ändert, kann den verschlüsselten Hash nicht neu erstellen. –

+3

Es wird ein Hash des Zertifikats erstellt. Dieser Hash wird dann mit dem privaten Schlüssel der CA verschlüsselt. Um zu verifizieren, wird der gleiche Hash vom Verifizierer berechnet und die Signatur wird mit dem öffentlichen Schlüssel der CA entschlüsselt und die beiden Hashes verglichen. – Vatine

4

Zertifikate werden von einigen vertrauenswürdige Autorität, wie Verisign unterzeichnet.

Die Zertifikate für diese Root-Autoritäten sind direkt in die Browser integriert, wenn Sie sie herunterladen. Sie können die Stammzertifikate beispielsweise in Firefox anzeigen, indem Sie Werkzeuge -> Optionen -> Erweitert -> Verschlüsselung -> Zertifikate anzeigen -> Behörden.

Wenn eine dieser Wurzelzertifizierungsstellen gefährdet ist, jedoch sind Sie richtig, dass ein Zertifikat gefälscht werden könnte, ein Man-in-the-Middle-Angriff möglich zu machen.

+0

einfach auf erarbeiten Der Prozess: Wenn Sie ein Zertifikat haben möchten, das beispielsweise von Verisign signiert wurde, müssen Sie ihnen beweisen, dass Sie den zugehörigen privaten Schlüssel haben (indem Sie etwas für sie signieren), und dass Sie die betreffende Domain besitzen. In der Regel wird dazu nur auf eine E-Mail in dieser Domäne geantwortet, aber es ist * viel * mehr involviert (erfordert, dass Sie physisch zu ihrem Gebäude gehen und verschiedene Formen der Identifikation angeben) für EV-Zertifikate (http://en.wikipedia.org/wiki/Extended_Validation_Certificate) –

+0

... und das ist der Grund, warum CACert leider so eine schlechte Zeit hat. – Boldewyn

2

Sie tatsächlich eine Schwachstelle von PKI hingewiesen.

Say Trudy ist in der Mitte von Ihnen und Ihrer Bank (bank.com). Trudy kann den öffentlichen Schlüssel nach Belieben in Schritt 2 ändern, aber die Signatur des Zertifikats ist ungültig. Also muss Trudy einen Weg finden, die Signatur erneut zu generieren. Es ist sicher zu sagen, dass die vertrauenswürdigen Zertifizierungsstellen dies nicht für ihn tun werden. Er muss also mit einer gefälschten Zertifizierungsstelle signieren, die Ihrem Browser nicht vertraut. Dies ist theoretisch noch sicher.

jedoch die meisten Browser (insbesondere IE 6) zeigen eine vage Sicherheitswarnung und die meisten Menschen nicht verstehen und einfach zu ignorieren, nach einigen Tests.

+0

Huh, scheint wie ein interessanter Betrug. Ich wette für die meisten Dinge, dass die Leute diese vagen (und technischen) Warnungen nicht beachten. Aber ich würde vermuten, dass die Leute für Bankgeschäfte und solche Dinge vorsichtiger sind. Ich frage mich, ob es möglich wäre, eine klarere Warnung zu haben. – sixtyfootersdude

+2

Die Erfahrung hat gezeigt, dass die einzige Lösung ist, die Verbindung zu verbieten. Egal wie klar die Warnung ist, der Benutzer klickt sich durch. Ich erinnere mich an ein urkomisches Beispiel, in dem eine Message Box erscheint, mit dem Titel "Virus Warning", der Inhalt der Box war "This is a virus, willst du weitermachen" mit zwei Kästchen, von denen jedes "Yes" sagt. –

+0

> "Es ist sicher zu sagen, dass die vertrauenswürdigen CAs das nicht für ihn tun werden." Äh, nein. Es gibt Hunderte von vertrauenswürdigen CAs und Sie müssen nur eine von ihnen erhalten, um ein gefälschtes Zertifikat zu erstellen, damit Sie ein stilles MITM ausführen können. Einige CAs wurden wegen des weitverbreiteten Missbrauchs dieser Daten widerrufen, und wir können davon ausgehen, dass die NSA dies seit dem späten 200. Lebensjahr getan hat und dass andere kriminelle Organisationen kein Problem beim Kauf oder der Ausstellung gefälschter Zertifikate haben. Um dies in Echtzeit für Facebook, Google und andere zu sehen, installieren Sie Firefox Certificate Patrol Extension. – martinwguy