Ich mache ein Projekt, bei dem Alice und Bob sich gegenseitig Nachrichten senden, die den Diffie-Hellman-Schlüsselaustausch benutzen. Was mich für eine Schleife wirft, ist, wie man das Zertifikat einbindet, das sie benutzen, damit ich ihre geheimen Nachrichten erhalten kann.Wie man Diffie-Hellman ausnutzt, um einen Mann im mittleren Angriff auszuführen
Von dem, was ich über MIM attakcs verstehen, wirkt das MIM als Schwindler wie in diesem Diagramm zu sehen:
Im Folgenden die Details für mein Projekt sind. Ich verstehe, dass beide sich vor der Kommunikation auf g und p geeinigt haben, aber wie kann ich das umsetzen, wenn beide ein Zertifikat haben, um ihre Signaturen zu verifizieren?
Alice erstellt ⟨SignA (NA, Bob), pkA, certA⟩ wobei signA der von Alice verwendete digitale Signaturalgorithmus ist, "Bob" ist Bobs Name, pKA ist der öffentliche Schlüssel von Alice, der gleich gx mod p codiert nach X.509 für ein festes g, p wie im Diffie-Hellman-Schlüsselaustausch angegeben und certA ist das Zertifikat von Alice, das Alices öffentlichen Schlüssel enthält, der die Signatur verifiziert; Schließlich ist NA eine Nonce (zufällige Zeichenfolge), die 8 Bytes lang ist.
Bob prüft die Signatur von Alice und antwortet mit ⟨SignB {NA, NB, Alice}, pkB, certB⟩. Alice erhält die Nachricht, dass sie ihre Nonce-NA überprüft und berechnet den gemeinsamen Schlüssel basierend auf pkA, pkB gemäß dem Diffie-Hellman-Schlüsselaustausch. Dann übergibt Alice die Nachricht ⟨SignA {NA, NB, Bob}, EK (MA), certA⟩ an Bob und Bob antwortet mit ⟨SignB {NA, NB, Alice}, EK (MB), certB⟩.
wo MA und MB sind ihre entsprechenden geheimen Nachrichten.