it-swarm.com.de

Möglichkeit, den öffentlichen Schlüssel einer Person zu fälschen

Ich weiß, wie Kryptographie mit öffentlichen Schlüsseln funktioniert. (sehr) vereinfacht:

  1. Alice nimmt Bobs öffentlichen Schlüssel und sendet eine verschlüsselte Nachricht mit diesem Schlüssel und sendet sie an Bob.

  2. Bob und nur Bob können die Nachricht entschlüsseln, da er der einzige ist, der den übereinstimmenden privaten Schlüssel besitzt.


Szenario (auch vereinfacht):

Ich infiziere irgendwie Alices Gerät und ersetze Bobs "gespeicherten" öffentlichen Schlüssel durch meinen eigenen öffentlichen Schlüssel. Nachdem sie ihre Nachricht mit meinem öffentlichen Schlüssel verschlüsselt und gesendet hat, fange ich die Nachricht ab und kann sie jetzt mit meinem privaten Schlüssel entschlüsseln. Ich könnte dann als der Mann in der Mitte auftreten.

Bearbeiten: Wir gehen davon aus, dass wir irgendwie nur die öffentlichen Schlüssel ändern und die Nachricht nicht im Klartext lesen können.


Meine Fragen sind:

  • Woher kennt Alice Bobs öffentlichen Schlüssel?
  • Ist es möglich, jemanden (oder das Gerät selbst) zu täuschen, so dass er denkt, dass er die Nachricht an Bob sendet, aber tatsächlich die Nachricht mit dem öffentlichen Schlüssel eines anderen verschlüsselt?
  • Wie wird dieses Problem umgangen?
16
AleksanderRas

Woher kennt Alice Bobs öffentlichen Schlüssel?

Es gibt verschiedene Möglichkeiten für Alice, Bobs öffentlichen Schlüssel zu überprüfen, jede mit ihren eigenen Vor- und Nachteilen.

Direkt und persönlich

Dies ist wahrscheinlich der sicherste Ansatz. Alice und Bob treffen sich persönlich, tauschen sich aus und unterschreiben sich möglicherweise gegenseitig öffentliche Schlüssel. Dies würde es praktisch unmöglich machen, diesen Prozess zu manipulieren.

Der Nachteil sollte leicht erkennbar sein: Dieser Ansatz ist für niemanden durchführbar, der sich nicht regelmäßig persönlich trifft. Menschen auf der ganzen Welt müssten beträchtliche Geldbeträge investieren, um sich treffen zu können, nur um Schlüssel auszutauschen.

Über Bobs Server

Bob hat einen Webserver, der durch ordnungsgemäßes TLS gesichert ist, und bietet dort seinen öffentlichen Schlüssel als Download an. Dies ist zwar viel praktischer als ein persönliches Treffen mit Bob, birgt jedoch auch das Risiko eines Kompromisses.

Wenn Eve auf Bobs Server zugreifen und ihr eigenes Schlüsselpaar generieren könnte, könnte sie Bobs öffentlichen Schlüssel durch ihren eigenen ersetzen. Dies würde offensichtlich werden, wenn Leute versuchten, Nachrichten an Bob zu senden, und er sie nicht entschlüsseln konnte, aber zu diesem Zeitpunkt könnte es bereits zu spät gewesen sein.

Über einen Schlüsselserver

Anstatt den Schlüssel selbst zu hosten, lädt Bob seinen Schlüssel auf einen Schlüsselserver hoch und verlinkt ihn einfach. Dies ist dem vorherigen Ansatz sehr ähnlich, migriert jedoch das Risiko von Bob auf denjenigen, der den Schlüsselserver kontrolliert.

Zusätzlich könnte ein Angreifer einen gefälschten öffentlichen Schlüssel in Bobs Namen ("Evil Bob") erstellen und zusätzlich gefälschte öffentliche Schlüssel für Bobs Freunde erstellen, wodurch ein gefälschtes Vertrauensnetz um "Evil Bob" entsteht.

Über "Direct Messaging"

Ein naiver Ansatz wäre, Bob auf Twitter, WhatsApp oder ähnlichen Plattformen zu benachrichtigen und ihn nach seinem öffentlichen Schlüssel zu fragen. Das Problem hier ist, dass Sie nicht wirklich überprüfen können, ob es wirklich er ist. Ein Angreifer hat möglicherweise Zugriff auf sein Konto erhalten und gefälschte öffentliche Schlüssel für "Evil Bob" verteilt.

VoIP-Systeme sind vielleicht besser, aber nicht so perfekt, wie die Leute vielleicht denken.

Ist es möglich, jemanden zu täuschen, damit er einen gefälschten öffentlichen Schlüssel verwendet?

Ja, wie oben beschrieben. Jedes Szenario, in dem Bob Ihnen den Schlüssel nicht direkt und persönlich gibt, kann gefährdet sein.

Es gibt jedoch Schutzmaßnahmen. Die Leute können Bobs Schlüssel unterschreiben und so für Bob bürgen. Je enger diese Verbindungen miteinander verwoben sind, desto schwieriger wird es, einen Schlüssel zu fälschen. Trotzdem ist es möglich.

Wie kann Alice sich davor schützen, dass Eve Bobs öffentlichen Schlüssel auf ihrem Gerät ändert?

Die Annahme ist, dass Eve Alices Gerät ausnutzen konnte, um Bobs privaten Schlüssel zu ändern.

Dieses Szenario ist schwierig, aber nicht unmöglich. Jeder Schlüssel hat einen Fingerabdruck, eigentlich zwei Fingerabdrücke: "lang" und "kurz", die den Schlüssel identifizieren. Wenn Alice sich an den langen Fingerabdruck erinnern würde, wäre es für Eve nicht möglich, eine Kollision zu erstellen und einen Schlüssel einzufügen, den sie kontrolliert, und der Alice ähnlich genug ist, um ihn für einen legitimen Schlüssel zu halten.

Wenn sie sich nur den "kurzen" Fingerabdruck merkt, wird er technisch machbar , obwohl hochwertige Schlüssel wahrscheinlich vor durchschnittlichen Menschen wie Alice und Bob als Ziel ausgewählt werden.

Ein Vertrauensnetz würde auch in diesem Fall helfen, denn selbst wenn ein gefälschtes Vertrauensnetz erzeugt würde, würde Alice keinem dieser Schlüssel vertrauen, da sie ihren eigenen privaten Schlüssel zum Signieren benötigen würde (und Alice hat ihren privaten geschützt) Schlüssel mit einem starken zufälligen Passwort, das Eve nicht kennt).

17
MechMK1

Wenn Alice den öffentlichen Schlüssel ihres Korrespondenten in einer Datenbank, einer Tabelle oder einem Textdokument aufbewahrt; Dann ist es möglich, dass Ihr Szenario funktioniert.

Die meisten (hoffentlich auch Alice) würden jedoch nur öffentlichen Schlüsseln vertrauen, die als authentisch zertifiziert wurden. Es gibt zwei gängige Methoden, mit denen dies derzeit durchgeführt wird:

Von einer zentralen Behörde zertifiziert

Der öffentliche Schlüssel wird von einer Organisation zertifiziert, die speziell für diese Aufgabe eingerichtet wurde. Diese werden als Zertifizierungsstellen (CA) bezeichnet.

Die Zertifizierungsstelle hat Bobs Anmeldeinformationen überprüft, als er sie aufforderte, seinen öffentlichen Schlüssel zu zertifizieren. Bob kann dann seinen zertifizierten öffentlichen Schlüssel (allgemein als Zertifikat bekannt) an Alice und seine vielen anderen Freunde/Kollegen senden.

Wenn Alice nur öffentlichen Schlüsseln vertraut, die von vertrauenswürdigen Zertifizierungsstellen zertifiziert wurden, schlägt Ihr Szenario jetzt fehl. Sie können Ihren öffentlichen Schlüssel nicht einschleichen, da er nicht zertifiziert wurde und Alice ihm folglich nicht vertraut.

Sie können sich mit Ihrem öffentlichen Schlüssel an die Zertifizierungsstelle wenden, diese bestätigt jedoch nur, dass er Ihnen gehört - nicht Bob (oder Alice oder sonst jemandem).

Diese Methode wird von kommerziellen Zertifizierungsstellen verwendet, die die Zertifikate signieren, mit denen die Identität von Ressourcen im Internet (z. B. dieser Site) bestätigt wird. Organisationen können auch ihre eigenen Zertifizierungsstellen betreiben.

Zertifiziert von Freunden und/oder Kollegen

Eine Alternative zu der oben genannten Methode besteht darin, dass Alice mit Freunden/Kollegen, die bereits mit Bob korrespondieren, bestätigt, ob sein öffentlicher Schlüssel echt ist. Sie werden dies wissen, indem sie es mit anderen bestätigen oder indem sie es mit Bob selbst bestätigen (möglicherweise ein persönliches Treffen). Auf diese Weise breitet sich das Vertrauen wie ein Spinnennetz aus, was dazu führt, dass dieses Konzept als Web-of-Trust bezeichnet wird.

Diese letztere Methode wird von Pretty Good Privacy und Gnu Privacy Guard verwendet.


Die Zertifizierungsstelle ist jedoch nicht das A und O des Problems. In Ihrem Szenario haben Sie das Gerät von Alice kompromittiert. Dies bedeutet, dass Sie ihr Gerät so konfigurieren können, dass es öffentlichen Schlüsseln vertraut, die von einer anderen Zertifizierungsstelle zertifiziert wurden - nämlich Ihrer. Sie können jetzt die Maskierung Ihres öffentlichen Schlüssels zertifizieren, da Bob und Alice ihm unwissentlich vertrauen würden.

CAs kommen jedoch zur Geltung, wenn wir geringfügig von Ihrer Frage abweichen und "Bob" nicht als Person, sondern als neue Ressource in einem extrem großen Netzwerk wie dem Internet betrachten. In solchen Fällen würde das Web-of-Trust-Modell aufgrund des Ausmaßes des Problems der Verwaltung aller öffentlichen Schlüssel nicht funktionieren.

Mit anderen Worten, eine Zertifizierungsstelle wäre in einem Szenario, das aus einer einzelnen Eins-zu-Eins-Beziehung besteht, wie z. B. Alice und Bob in Ihrer Frage, nicht von großem Nutzen, da sie einfach den Test ändert, den Alice implizit aus Vertraue ich Bobs öffentlichem Schlüssel? bis Vertraue ich, dass mein Gerät nicht für das Vertrauen zusätzlicher Zertifizierungsstellen konfiguriert wurde?

In einer Eins-zu-Viele-Beziehung wie dem Internet beseitigt eine Zertifizierungsstelle jedoch die Anforderung, jeden einzelnen öffentlichen Schlüssel vor der Verwendung irgendwie zu überprüfen, und ersetzt ihn durch die Überprüfung der Konfiguration Ihres Geräts (was wir alle ohne Frage tun! ).

In der realen Welt spielt es natürlich keine Rolle, ob Sie den öffentlichen Schlüssel von Bob ändern, wenn Sie das Gerät von Alice erfolgreich kompromittieren.

17
garethTheRed