Was sind die Vorteile von HMAC gegenüber symmetrischer Kryptographie?

8

Irgendwie bekomme ich keine HMACs.

Ich habe einmal gefragt Warum? Ich benötige HMACs, wenn wir öffentliche Schlüsselsignaturen haben? , und ich glaube, ich habe das hier bekommen. Einfacher zu berechnen, und so weiter ...

Was ich aber nicht verstehe, ist, warum wir überhaupt HMACs benötigen und welche Art von Problemen sie lösen.

Aus meiner Sicht, HMACs ...

  • bietet eine Möglichkeit, um sicherzustellen, dass die Nachricht nicht manipuliert wurde,
  • sind durch einen geheimen, aber symmetrischen Schlüssel "abgesichert".

Daher muss ich zur Berechnung des HMAC (entweder initial oder zur Verifizierung) den geheimen Schlüssel kennen.

Wenn ich nun diesen Schlüssel auf geheime Weise austauschen kann, ohne dass er manipuliert wird, könnte ich die Nachricht auch auf die gleiche geheime Weise austauschen, ohne dass sie manipuliert wird, oder?

Okay, jetzt könnten Sie argumentieren, dass Sie den Schlüssel nur einmal austauschen müssen, aber Sie können mehrere Nachrichten haben. Das ist in Ordnung.

Aber wenn wir jetzt einen geheimen Schlüssel haben, der von allen Parteien geheim gehalten werden muss, könnten wir auch direkt die symmetrische Verschlüsselung verwenden, die den gleichen geheimen Schlüssel verwendet, um die Nachricht zu verschlüsseln, oder?

Natürlich sollte ein HMAC eine Lösung gegen Manipulationen bieten, aber wenn ich nur eine verschlüsselte Nachricht ohne den geheimen Schlüssel und einen vernünftigen Verschlüsselungsalgorithmus habe, kann ich diese verschlüsselte Nachricht nicht so ändern, dass a) die Entschlüsselung immer noch funktioniert, und b) eine sinnvolle entschlüsselte Nachricht erscheint.

Wofür brauche ich eigentlich einen HMAC? Oder - wo ist der Punkt, den ich vermisse?

    
Golo Roden 10.02.2013, 09:29
quelle

1 Antwort

11

Sie gehen davon aus, dass es unmöglich ist, eine verschlüsselte Nachricht zu manipulieren, ohne den für die Verschlüsselung verwendeten Schlüssel zu kennen. Dies ist nicht der Fall und eine gefährliche Annahme zu machen. Es gibt mehrere Dinge, die möglich sind, selbst wenn Sie nur Zugriff auf den Chiffretext haben:

  • Korruption eines Suffixes der Nachricht: Dies kann Informationen über den Inhalt durch Fehlermeldungen, Timing und möglicherweise andere Wege verlieren.
  • Korruption der Bereiche der Nachricht für einige Modi (ECB, CFB und möglicherweise andere): wie oben, aber der Angreifer hat mehr Möglichkeiten, das gewünschte Verhalten auszulösen.
  • Umdrehen von beliebigen Bits in einem einzelnen Block (wobei der Anfangswert nicht bekannt ist) und Verfälschung des folgenden Blocks (CFB): Wenn dem Angreifer einige Bits bekannt sind, kann er sie auf den gewünschten Wert setzen.
  • Umdrehen von beliebigen Bits in der gesamten Nachricht für Stream-Chiffren oder Stream-Cipher-äquivalente Modi für Block-Chiffren: Dies kann Korruption ganz vermeiden.

Daher ist es sehr wichtig zu überprüfen, dass kein Angreifer die Nachricht manipuliert hat, bevor er ein einzelnes Byte des entschlüsselten Inhalts verarbeitet hat. Da es bei der Ad-hoc-Verifizierung oder dem einfachen Hashing einige Fehler gibt, müssen MACs verwendet werden, von denen HMAC ein Beispiel ist.

    
jix 10.02.2013, 09:50
quelle

Tags und Links