Ein wenig Theorie:
Mit Public-Key Kryptographie mache ich einen Schlüsseltausch sicher gegen Eavesdropping. Der Mittelsmannangriff ist jedoch weiterhin erfolgreich.
Denn ein potenzieller Lauscher X könnte sich A gegenüber als B ausgeben und B gegenüber als A. Die Daten dann mit dem mit A ausgehandelten Schlüssel entschlüsseln, mitloggen, mit dem mit B ausgehandelten Schlüssel wieder verschlüsseln und abschlicken und umgekehrt.
Die Integrität des Schlüsseltausches ließe sich mit Hashwerten bestimmen. Doch selbst wenn der Hashwert von A VOR der eigentlichen Nachricht geschickt und dessen Empfang von B bestätigt werden muss, könnte ein Mittelsmann diesen als "von B empfangen" bestätigen, ihn jedoch so lange zwischenspeichern bis die Nachricht kommt, diese und den dazugehörigen Hashwert entsprechend ändern und dann nach B weiterleiten.
Häufig bekommt man die Lösung "digitale Signaturen", also asymmetrisch verschlüsselte Hashwerte, zu lesen. Nur wie will ich nachweisen, dass die asymmetrischen Schlüssel nicht gefaked sind.
Wie es scheint gibt es keine Möglichkeit, einen Mittelsmannangriff wirksam (ohne das Bestehen eines "sicheren Kanales" wie beispielsweise eine persönliche Übergabe des Schlüssels) zu verhindern. Oder etwa doch?