Frage

Zwei Kunden Alice und Bob verwenden, um einen Server einzuloggen und der Austausch von Nachrichten über den Server. Auf Login werden sie beide schicken ihre öffentlichen Schlüssel auf dem Server gespeichert werden. Wenn Alice will Bob sprechen, sie enrypts einen symmetrischen Schlüssel mit dem öffentlichen Schlüssel des Bob und sendet sie über den Server an Bob.

Wie kann ich sicherstellen, dass der Server nicht über eine eigenes Public-Key-Paar macht und es zu Alice statt Bobs öffentlicher Schlüssel zu senden. Auf diese Weise wird der Server zuerst entschlüsseln, was Alice geschickt hat und verschlüsselt sie wieder Bobs echte öffentliche Schlüssel verwendet wird.

Danke

War es hilfreich?

Lösung

Da Alice und Bob können den Server nicht vertrauen, müssen sie einen anderen Weg der Bestätigung finden jeden Schlüssel des anderen. Eine Möglichkeit ist, auf eine andere Partei verlassen. Wenn Bob Candice vertraut (und kennt den öffentlichen Schlüssel des Candice), der Alice kennt, kann Candice unterzeichnen Alices dann öffentlichen Schlüssel die signierte Version an Bob senden. Dies nennt man web of trust .

Andere Tipps

Indem Bobs Zertifikat von einer signierten vertrauenswürdigen Dritten (Verisign, Ihr Unternehmen, ein Web of Trust, etc.), oder indem Bob sein Zertifikat aus Band durch einen separaten sicheren Weg zu Alice senden (Gabe ihr ein USB Schlüssel persönlich zum Beispiel).

Diese beiden get in das Herz von dem, was Bobs Zertifikat bedeuten soll. Sie vertrauen nur, dass Bob Zertifikat Bob Zertifikat ist, weil jemand Sie hat es zertifiziert vertrauen. Das „jemand“ kann Bob selbst sein oder eine vertrauenswürdige dritte Partei, den Bob Zertifikat signiert. Sie immer nur kann dies so viel Vertrauen, wie Sie den Zertifizierer vertrauen.

In der Kryptographie sind Sie, was Sie wissen. Wenn Sie MITM vermeiden wollen, dann muss Alice eine Vorstellung davon, wer „Bob“ ist, was bedeutet, dass Bob ein Datenelement muss wissen, dass ein Angreifer nicht weiß. Hier Angreifer ist der Server, die ideal gelegen ist, einen Angriff zu montieren.

Die Frage ist also: Wer ist Bob? Wie ist der Server "nicht-Bob"?

Zum Beispiel: „Bob“ definiert werden kann als: „Bob ist ein Mensch, der einen Führerschein mit‚Bob‘hat darauf geschrieben“. Oder: „Bob ist, dass Typ, den ich in einer Bar getroffen und trank ein Bier mit“

.

Mit der asymmetrischen Kryptographie ermöglicht es Ihnen, das Problem auf eine Frage des Vertrauens in einem öffentlichen Schlüssel zu reduzieren. Alice wird verwenden, was sie glaubt, dass Bob der öffentliche Schlüssel zu sein. Daher Alice braucht nur einen Weg, um sicherzustellen, dass der öffentliche Schlüssel hat sie in der Tat von Bob gehört. Der Besitz eines öffentlichen Schlüssel durch die Steuerung des entsprechenden privaten Schlüssels definiert: Bob Öffentliche Schlüssel sind der Schlüssel für die die privaten Schlüssel unter dem ausschließlichen Kontrolle über Bob ist (zB nur Bob weiß, dass Schlüssel oder der private Schlüssel in einem Hardware-Token - ein Smartcard -., dass Bob in seiner Brieftasche hält)

Die basische Lösung ist die direkten Austausch öffentlicher Schlüssel zu haben. Wenn Alice Bob in einer Bar traf, gaben sie einander ihre öffentlichen Schlüssel. So kann Alice Bobs öffentlichen Schlüssel „per definitionem“ vertrauen. Zum leichteren Austausch (vor allem nach ein paar Bier), Alice und Bob kann nur „Fingerabdrücke“, das heißt Hash-Werte berechnet über die öffentlichen Schlüssel austauschen. Diese Werte sind kürzer als öffentliche Schlüssel (zum Beispiel 128 Bit anstelle von mehr als tausend Bits für einen typischen öffentlichen RSA-Schlüssel) und sind ausreichend, um verifizieren , die eine gegebene öffentliche Schlüssel Streichhölzer. In diesem Setup hat der Server ein Repository für öffentliche Schlüssel, und Alice und Bob nur recompute Fingerabdrücke sicherstellen, dass der Server nicht unecht Spiele gespielt wird.

Eine Voraus-Lösung, die die Notwendigkeit einer direkten Alkoholkonsum vermindert, ist die Verwendung Zertifikate . Ein Zertifikat ist eine Box, die eine Identität enthält (zum Beispiel ein Name, wie „Bob“) und einem öffentlichen Schlüssel. Die Box unterzeichnet wird durch ein Certification Authority (CA): Die CA behauptet, dass der öffentliche Schlüssel wirklich zu Bob gehört, durch seine Unterschrift Anwendung. Wenn Alice die CA öffentlichen Schlüssel kennt, dann kann sie die Unterschrift auf dem Zertifikat überprüfen, und dann das Vertrauen in der Verbindung zwischen dem öffentlichen Schlüssel gewinnen und der Identität im Zertifikat enthalten ist.

Die Zertifizierung ist eine Delegation des Vertrauens. Alice Delegierten ihr Vertrauen in die CA; angeblich, ging die CA (lass es Charlie nennen) an der Bar zu treffen Bob; durch das Zertifikat, sagt Charlie Alice: „Ja, das ist wirklich Schlüssel Bob ist, ist er es nach seinem dritten Pint mir gezeigt“. Die Dinge werden ein wenig trübe hier, weil das Vertrauen zu delegieren nicht einfach ist (vor allem, wenn Charlie in der Gewohnheit des Alkoholexzessen ist). Delegation kann noch weiter gehen, wenn ein CA ein Zertifikat für eine andere Zertifizierungsstelle signiert Hier erzählt Charlie zu Alice: „Ich habe nicht Bob getroffen, aber ich getroffen habe Daphne, die Bob getroffen haben und fungierte als CA“. Alice, sowohl das Zertifikat von Charlie zu Daphne ausgestellt verwenden und das Zertifikat von Daphne zu Bob ausgestellt, so kann überprüfen, dass Kette von Unterschriften.

Der schwierige Punkt hier ist, dass, während Alice Charlie wissen und ihm in seiner Fähigkeit vertrauen, richtig Bob zu identifizieren, wenn er ihn trifft, auch unter dem Einfluss einer Gallone Guinness, Alice nicht weiß, Daphne. In der Alice-Charlie-Daphne-Bob-Kette, Alice muss nicht nur darauf vertrauen, dass Charlie zuverlässig war (er hat identifizieren Daphne richtig), sondern auch, dass Charlie nicht leichtgläubig war, das heißt, dass Charlie Zeichen verweigert hätte ein Zertifikat für Daphne wenn Daphne nicht selbst vertrauenswürdig. In praktischen Situationen wird degradiert Vertrauen schnell, wenn es überträgt.

Bei Verwendung von Zertifikaten gibt es meist zwei mögliche Strukturen:

  • Hierarchical CA: Es gibt eine einzelne oder wenige „Root-CA“, die von jeder durch die Konstruktion bekannt sind. Ein CA-Delegierten to eine andere CA (dh es unterzeichnet ein Zertifikat mit, in der Identität, ein herkömmliches Flag, das sagt: „Dieser öffentliche Schlüssel kann für die Zwecke der Überprüfung Signaturen von Zertifikaten vertraut werden“) nur innerhalb einer vertraglichen Vereinbarung, die die rechtliche Verantwortung beider etabliert CA in Bezug auf die Zertifizierung. Dies bedeutet, dass die Delegation formal definiert, und es geschieht so, dass es nicht einfach ist. Ein Anwalt-kompatible Zertifizierungsvertrag, in der Regel eine "Bescheinigung Policy Statement" (CPS) genannt, ist ein 200 Seiten langes Dokument.

  • Web of Trust: jeder fungiert als CA. In Abwesenheit von „formal Vertrauenswürdigkeit“, jede einzelne Kette ergibt nur eine sehr geringe Menge des Vertrauens. Dies soll durch große Zahlen ausgeglichen werden. Alice wird nur Bobs Schlüssel akzeptieren, wenn sie überprüfen können, mehrere (viele) verschiedene Ketten, die zu Bob führen, gehen durch verschiedene Teilnehmer. Zum Beispiel wird Alice die Charlie-Daphne-Bob Kette erfordern, sondern auch die Elia-Fiona-Bob und Gerald-Hillary-Ivan-Bob-Ketten. Sie sind alle Säufer, aber sie auch sein mag gemeinsam zuverlässig, dass ein gefälschter Bob muß viele Runden, um korrupten einen Teilnehmer von jedem der Ketten zahlen würde, dass Alice verwendet (wenn Alice erfordert < em> n Ketten mit unterschiedlichen Zertifikaten, dann muss der Angreifer korrupt mindestens n Teilnehmer).

So ist die Zertifizierung Geschäft ist vor allem eine Frage des Verfahrens: die eine CA ist, was für ein CA überprüft, bevor die Ausstellung (Unterzeichnung) ein Zertifikat, wie das Ganze steht aus rechtlicher Sicht, und so weiter. Diese Verfahren sind von Natur aus komplex und müssen von Details in dem Zertifikat-Format unterstützt werden (wie zum Beispiel des Flag „dieser öffentliche Schlüssel ist ein CA-Schlüssel“). Die beiden wichtigsten Standardformate zur Zeit definiert sind X.509 und PGP . X.509 hat viel Unterstützung für die hierarchische CA, und ist ein sehr wirren Durcheinander von Standards, Formate, Verfahren und Ausschüsse. PGP (unter dem Namen „OpenPGP“ standardisiert) für hierarchische CA keine wirkliche Unterstützung hat; es soll mit einem Web of Trust verwendet werden. OpenPGP ist einfacher als X.509 aber begrenzt, vor allem, wenn Sie eine starke rechtliche Bedeutung hinter den Zertifikaten haben möchten.

Für einen IM-Server, all dies ist wahrscheinlich übertrieben sein. Der Begriff der Identität, dass Alice wirklich will, ist wahrscheinlich eine Vorstellung von Wiederholung : „dass Bob der gleiche Bob als die, ich gestern plauderte“. Alice weiß Bob nicht vorher, aber mit ihm zu reden legt einmal seine Identität in Alices Auge. Sie wollen einfach nur nicht von einem anderen Bob täuschen. Dazu ein einfacher Vorgang wie „Alices Software speichert den angekündigten öffentlichen Schlüssel eines neuen Geschwätz, und verwendet sie danach“ den Trick. Denken Sie daran, dass die entscheidende Frage ist richtig definieren , welche Vorstellung von Identität sind Sie nach.

Wenn Sie den Server steuern können Sie nicht. Es sei denn natürlich wissen Sie bereits, Bob den öffentlichen Schlüssel, aber dann .... Ich glaube, du bist in dem Huhn und Ei-Problem hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top