Dieses Q & A https://security.stackexchange.com/questions/33123/hotp-with-as-hmac-hashing-algoritme-a-hash-from-the-sha-2-family

besagt, dass die Sicherheit von HMAC-SHA1 nicht von der Beständigkeit gegen Kollisionen abhängt? Sagen sie speziell in Bezug auf HOTP oder für HMAC-SHA1 für irgendeine Verwendung?

Wenn HMAC-SHA1 zur Überprüfung der Integrität eines Dokuments verwendet wird und Sie eine Kollision finden, können Sie Änderungen am Dokument vornehmen, oder?

http://tools.ietf.org/html/rfc2104#section-6

Sogar der RFC sagt, dass der Widerstand gegen Kollisionen ist relevant

Die Sicherheit des hier vorgestellten Nachrichtenauthentifizierungsmechanismus hängt von den kryptografischen Eigenschaften der Hash-Funktion H ab: der Widerstand gegen Kollisionsfindung (beschränkt auf den Fall, dass der Anfangswert geheim und zufällig ist und die Ausgabe der Funktion dem Angreifer nicht explizit zur Verfügung steht) und die Nachrichtenauthentifizierungseigenschaft der Komprimierungsfunktion von H bei Anwendung auf einzelne Blöcke

Was fehlt mir hier?

Kommentare

  • Die Frage scheint verwirrend zu sein: HMAC-SHA1 wird nicht zum Signieren eines Dokuments verwendet (zumindest normalerweise nicht; und unter der Annahme, dass es vorhanden ist) war, die Standardannahme für HMAC, dass seine Schlüsseleingabe geheim ist, kann ' seit th nicht mehr gelten Das Verfahren zur Überprüfung der Unterschrift ist öffentlich. Ich finde diese Antwort ganz gut.
  • @fgrieu – Ich glaube, ich habe einen Fehler in der Terminologie gemacht – als ich das Signieren schrieb, hätte ich es tun sollen tatsächlich geschrieben, um einen Nachrichtenauthentifizierungs-Digest zu generieren, um die Integrität zu schützen. Im Falle von Kollisionen können Sie die Nachricht ändern und denselben MAC beibehalten, sodass dies ein Problem darstellt, oder?
  • Sollten wir dies als Duplikat von Wird HMAC-MD5 als sicher für die Authentifizierung verschlüsselter Daten angesehen? ? Während es sich bei dieser Frage um SHA1 und nicht um MD5 handelt, ist die Antwort fast dieselbe.
  • Ich ' bin mir ziemlich sicher, ob ich einen Pre-Image-Angriff gegen SHA habe -1 dies explodiert.

Antwort

Im ersten Abschnitt dieser Antwort gehe ich davon aus, dass dies besser ist Hardware- oder / und algorithmische Verbesserungen haben es routinemäßig möglich gemacht, eine Kollision für SHA-1 durch ein ähnliches Verfahren wie das von Xiaoyun Wang, Yiqun Lisa Yin und Hongbo Yu „aufzuweisen. s Angriff oder Marc Stevens Angriff . Dies wurde öffentlich erreicht Anfang 2017 und war eindeutig machbar (der Aufwand entspricht nur Stunden des -Hashing-Aufwands, der für das Bitcoin-Mining ausgegeben wurde , aber die dafür verwendete Hardware kann nicht für den Angriff auf SHA-1) neu bestimmt werden.

Im Gegensatz zu dem, was in der Frage betrachtet wird, würde dies einem nicht erlauben, dass ein Angreifer nicht weiß den HMAC-SHA-1-Schlüssel , um eine unentdeckte Änderung in einem Dokument vorzunehmen; Dies schließt ein, ob der Angreifer in der Lage ist, das Dokument vorzubereiten, das er später ändern möchte.

Eine Erklärung ist, dass die Kollisionsangriffe auf SHA-1, die wir in Betracht ziehen, die Kenntnis des Zustands von erfordern Die SHA-1-Verkettungsvariable und der Angreifer von HMAC, der den Schlüssel nicht kennt, wird von diesem Wissen entzogen, indem der Schlüssel an beiden Enden der Iteration von Runden eingibt, in denen die Nachricht in HMAC steht. Eine viel tiefere Unterbrechung der runden Funktion von SHA-1 wäre erforderlich, um HMAC zu unterbrechen. Nicht zufällig hat M. Bellare neue Beweise für NMAC und HMAC: Sicherheit ohne Kollisionsresistenz zeigt, dass die Sicherheit von HMAC nur schwächere Eigenschaften für seine Rundungsfunktion voraussetzt, als für die Kollisionsresistenz des entsprechenden Hashs erforderlich sind.

Was möglich wäre, ist für eine Angreifer kennt den HMAC-Schlüssel , um ein Dokument vorzubereiten, das er später ändern möchte und das geändert werden kann, ohne den MAC zu ändern. Da der Angreifer jedoch die HMAC-Taste in der Hand hält, wird dies nicht als Unterbrechung der HMAC angesehen.


Ein -Kommentar fragt wann sollte SHA-1 nicht verwendet werden?

Es ist ratsam, SHA-1 in Anwendungen, die Kollisionsfestigkeit erfordern, schnell auslaufen zu lassen (als Bild: Gehen Sie beim Verlassen schnell weg ein Gebäude, in dem ein Feueralarm ertönt, wenn kein Rauch vorhanden ist). Dies umfasst das Hashing zur Integritätsprüfung oder die digitale Signatur von Dokumenten, die von anderen teilweise erstellt wurden (dh den meisten Dokumenten). Wenn die weitere Verwendung von SHA-1 starke betriebliche Vorteile hat, kann dies sicher zu einer Ausnahme gemacht werden, indem vor einem Teil der Nachricht, den ein Gegner beeinflussen kann, etwas Unvorhersehbares eingefügt wird.Durch Erzwingen einer unvorhersehbaren Seriennummer eines Zertifikats zum Zeitpunkt der Anforderung eines Zertifikats kann eine Zertifizierungsstelle beispielsweise weiterhin sicher Zertifikate ausstellen, die SHA-1 für ihre interne Signatur verwenden.

Wie im ersten Abschnitt erläutert Antwort: Solange der Schlüssel von HMAC-SHA-1 als geheim angenommen wird, gibt es keinen Hinweis darauf, dass HMAC-SHA-1 unsicher ist, da es SHA-1 verwendet. Wenn der Schlüssel als öffentlich angenommen wird oder sein Leck als betriebliche Möglichkeit angesehen wird, bei der weiterhin eine Kollisionsbeständigkeit für HMAC gewünscht wird, einschließlich für Nachrichten, die nach Offenlegung des Schlüssels erstellt wurden, gelten die im vorherigen Absatz beschriebenen Vorsichtsmaßnahmen.

Kommentare

  • Wann sollte SHA1 nicht verwendet werden? Das Erkennen des Problems in SHA1 schließt die Verwendung aus, wenn?
  • Es wird allgemein empfohlen, ' wegzuziehen (" gehe ", nicht " führe ") von SHA-1 aus. Das spezifische Konstrukt von HMAC-SHA1 wird jedoch aufgrund des Sicherheitsnachweises für HMAC, der nicht auf der Kollisionsbeständigkeit des zugrunde liegenden PRF beruht, immer noch als sicher angesehen (unter der Annahme eines geheimen Schlüssels). Wenn Sie Zweifel haben, wechseln Sie zu SHA-2.
  • @StephenTouset – Ja, das habe ich. Gibt es jedoch eine Verwendung von SHA-1, vor der Sie weglaufen sollten, anstatt sich zu entfernen oder wegzugehen.
  • Nein, sonst wäre dies der Rat. Die Kollisionsbeständigkeit von SHA-1 ' ist derzeit nur im theoretischen Sinne gebrochen. Es wurden noch keine bekannten Kollisionen gefunden, obwohl der derzeit beste Angriff nur am Rande der Machbarkeit liegt.

Antwort

Wenn Leute sagen, dass HMAC-MD5 oder HMAC-SHA1 immer noch sicher sind, bedeutet dies, dass sie immer noch als PRF und MAC sicher sind.

Die Schlüsselannahme hier ist, dass der Schlüssel dem Angreifer unbekannt ist.

$$ \ mathrm {HMAC} = \ mathrm {hash} (k_2 | \ mathrm {hash} (k_1 | m)) $$

  • Potenzial Angriff 1: Finden Sie eine universelle Kollision, die für viele Schlüssel gültig ist:

    Bei Verwendung von HMAC wird die Nachricht nicht direkt gehasht, sondern hat $ k_1 $ als Präfix. Dies bedeutet, dass der Angreifer dies nicht tut. Ich kenne den internen Status des Hashs nicht, wenn die Nachricht startet. Das Finden einer Nachricht, die für die meisten Auswahlmöglichkeiten kollidiert, ist $ k_1 $, ist extrem schwierig 1 .

  • Möglicher Angriff 2: Stellen Sie den Schlüssel

    Damit dies erfolgreich ist, benötigt die Hash-Funktion viel größere Pausen als nur Kollisionen. Es ähnelt einem ersten Pre-Image-Angriff, eine Eigenschaft, die sowohl für MD5 als auch für SHA1 immer noch stark ist.

Wenn Sie dagegen einen dem Angreifer bekannten Schlüssel verwendet haben und der Angreifer die Möglichkeit hat, Kollisionen im zugrunde liegenden Hash zu finden (für beliebige IVs), sind diese an der Reihe in Kollisionen von HMAC. Wenn Sie also Sicherheit in einem Szenario ohne Schlüssel benötigen, verwenden Sie einen kollisionssicheren Hash wie SHA2 und ziehen Sie in Betracht, HMAC überhaupt nicht zu verwenden.


1 Ich vermute, dass dies nicht der Fall ist möglich (für realistische Nachrichtengrößen) auch für rechnerisch unbegrenzte Angreifer, aber es ist schwierig zu beweisen.

Kommentare

  • Wann sollte SHA1 also nicht verwendet werden? Das Erkennen des Problems in SHA1 schließt die Verwendung aus, wenn?
  • @ user93353 Wie bereits erwähnt, hängt die Sicherheit von HMAC-SHA1 vom unbekannten Schlüssel ab. Wenn kein Schlüssel vorhanden ist oder dem Angreifer bekannt ist Die Kollisionen in SHA1 werden zu einer Bedrohung. SHA1 sollte jedoch selten, wenn überhaupt, in neuen Designs verwendet werden, da bessere Alternativen verfügbar sind.
  • Wenn der Schlüssel dem Angreifer bekannt ist, wird dies sogar SHA2 tun ein Problem sein, richtig?
  • @ user93353 Hängt davon ab, was Sie erreichen möchten. Natürlich ist kein nicht verschlüsselter Hash ein MAC.
  • @CodesInChaos – Sie sagen, dass HMAC-SHA1 ein ist Problem nur, wenn der Schlüssel bekannt ist, aber wenn der Schlüssel ist bekannt, das wird ein Problem für jede HMAC-Hash-Operation sein, oder?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.