dit que la sécurité du HMAC-SHA1 ne dépend pas de la résistance aux collisions? Est-ce quils disent spécifiquement en ce qui concerne HOTP ou pour HMAC-SHA1 pour une utilisation quelconque?
Si HMAC-SHA1 est utilisé pour vérifier lintégrité dun document et que vous pouvez trouver une collision, vous pouvez apporter des modifications dans le document, non?
http://tools.ietf.org/html/rfc2104#section-6
Même la RFC dit que la résistance aux collisions est pertinent
La sécurité du mécanisme dauthentification des messages présenté ici dépend des propriétés cryptographiques de la fonction de hachage H: la résistance à la recherche de collision (limitée au cas où la valeur initiale est secrète et aléatoire, et où la sortie de la fonction nest pas explicitement disponible pour lattaquant), et la propriété dauthentification de message de la fonction de compression de H lorsquelle est appliquée à des blocs uniques
Que me manque-t-il ici?
Commentaires
- Il semble y avoir une confusion dans la question: HMAC-SHA1 nest pas utilisé pour signer un document (du moins, pas habituellement; et en supposant quil était, lhypothèse standard pour HMAC que sa clé dentrée est secrète peut ' t tenir depuis le La procédure de vérification de la signature est publique). Je trouve cette réponse très bien.
- @fgrieu – je pense que jai fait une erreur de terminologie – quand jai écrit la signature, jaurais dû effectivement écrit en générant un résumé dauthentification de message pour protéger lintégrité. En cas de collision, vous pouvez modifier le message et conserver le même MAC, donc cest un problème, non?
- Faut-il fermer cela comme un double de Le HMAC-MD5 est-il considéré comme sécurisé pour lauthentification des données chiffrées? ? Bien que cette question concerne SHA1 et non MD5, la réponse est presque la même.
- Je ' je suis presque sûr si jai une attaque pré-image contre SHA -1 cela explose.
Réponse
Dans la première section de cette réponse, je suppose que grâce à mieux améliorations matérielles ou / et algorithmiques, il est devenu systématiquement possible de présenter une collision pour SHA-1 par une méthode similaire à celle de Xiaoyun Wang, Yiqun Lisa Yin et Hongbo Yu » s attaque ou lattaque de Marc Stevens . Ceci a été réalisé publiquement début 2017, et était clairement réalisable (leffort ne représente que des heures de effort de hachage consacré à lextraction de bitcoins ; mais le matériel utilisé pour cela ne peut « t être réutilisé pour lattaque sur SHA-1).
Contrairement à ce qui est considéré dans la question, cela ne permettrait pas à un attaquant de ne pas céder la clé HMAC-SHA-1 pour effectuer une modification non détectée dans un document; cela inclut si lattaquant est capable de préparer le document quil est prêt à modifier ultérieurement.
Une explication est que les attaques par collision sur SHA-1 que nous envisageons nécessitent la connaissance de létat de la variable de chaînage SHA-1, et lattaquant de HMAC ne connaissant pas la clé est privé de cette connaissance par la clé entrant aux deux extrémités de litération de tours dans laquelle se trouve le message dans HMAC. Une rupture beaucoup plus profonde de la fonction round de SHA-1 serait nécessaire pour interrompre le HMAC. Ce nest pas par hasard, de M. Bellare: Sécurité sans Collision-Resistance montre que la sécurité du HMAC tient en supposant que des propriétés plus faibles sur sa fonction ronde que nécessaire pour la résistance aux collisions du hachage correspondant.
Ce qui serait possible est pour un lattaquant connaissant la clé HMAC pour préparer un document quil / elle souhaite modifier ultérieurement, qui peut être altéré sans changer le MAC. Mais comme lattaquant détient la clé HMAC, cela « nest pas considéré comme une rupture de HMAC.
Un commentaire demande Quand SHA-1 ne doit-il pas être utilisé?
Il est conseillé déliminer rapidement SHA-1 dans les applications nécessitant une résistance aux collisions (comme image: éloignez-vous rapidement, lorsque vous quittez un bâtiment dont lalarme incendie sonne lorsquil ny a pas de fumée). Cela inclut le hachage pour la vérification de lintégrité ou la signature numérique de documents préparés par dautres, même en partie (ce qui est la plupart des documents). Si continuer à utiliser SHA-1 présente des avantages opérationnels importants, il peut être fait exception en toute sécurité en insérant quelque chose dimprévisible par les adversaires avant toute partie du message quun adversaire peut influencer.Par exemple, en imposant un numéro de série de certificat imprévisible au moment de la demande dun certificat, une autorité de certification pourrait toujours émettre en toute sécurité des certificats en utilisant SHA-1 pour leur signature interne.
Comme expliqué dans la première section de ce réponse, tant que la clé de HMAC-SHA-1 est supposée secrète, rien nindique que HMAC-SHA-1 nest pas sûr car il utilise SHA-1. Si la clé est supposée publique, ou si sa fuite est considérée comme une possibilité opérationnelle où elle est toujours souhaitée pour la résistance aux collisions pour HMAC, y compris pour le message préparé après la divulgation de la clé, alors les précautions décrites dans le paragraphe précédent sappliquent.
Commentaires
- Alors, quand SHA1 ne doit-il pas être utilisé? cest-à-dire que la découverte du problème dans SHA1 lempêche de lutiliser où?
- Il ' est généralement conseillé de séloigner (" marcher ", et non " courir ") depuis SHA-1. Cela dit, la construction spécifique de HMAC-SHA1 est toujours considérée comme sûre à utiliser (en supposant une clé secrète) en raison de la preuve de sécurité pour HMAC qui ne repose pas sur la résistance aux collisions du PRF sous-jacent. En cas de doute, passez à SHA-2.
- @StephenTouset – oui, jai compris. Cependant, y a-t-il une utilisation de SHA-1 dont vous devriez fuir plutôt que de vous éloigner ou de vous éloigner.
- Non, sinon ce serait le conseil. La résistance aux collisions de SHA-1 ' nest rompue que dans un sens théorique pour le moment. Aucune collision connue na encore été trouvée, bien que la meilleure attaque actuelle soit juste à la limite de la faisabilité.
Réponse
Quand les gens disent que HMAC-MD5 ou HMAC-SHA1 sont toujours sécurisés, ils signifient quils « sont toujours sécurisés en tant que PRF et MAC.
Lhypothèse clé ici est que la clé est inconnue de lattaquant.
$$ \ mathrm {HMAC} = \ mathrm {hash} (k_2 | \ mathrm {hash} (k_1 | m)) $$
-
Potentiel attaque 1: Trouvez une collision universelle, qui « est valable pour de nombreuses clés:
En utilisant HMAC, le message ne » t est pas haché directement, mais il a $ k_1 $ comme préfixe. Cela signifie que lattaquant ne » t connaître létat interne du hachage lorsque le message commence. Trouver un message qui se heurte pour la plupart des choix est $ k_1 $ est extrêmement difficile 1 .
-
Attaque potentielle 2: Récupérer la clé
Pour que cela réussisse, la fonction de hachage a besoin de pauses bien plus importantes que de simples collisions. Cest similaire à une première attaque pré-image, une propriété qui est toujours aussi forte pour MD5 et SHA1.
Dun autre côté, si vous avez utilisé une clé connue de lattaquant et que lattaquant a la capacité de trouver des collisions dans le hachage sous-jacent (pour les IV arbitraires), ceux-ci tournent dans des collisions de HMAC. Donc, si vous avez besoin de sécurité dans un scénario sans clé, utilisez un hachage résistant aux collisions, comme SHA2 et envisagez de ne pas utiliser du tout HMAC.
1 Je soupçonne que ce nest pas possible (pour des tailles de message réalistes) même pour des attaquants sans limite de calcul, mais il est difficile de le prouver.
Commentaires
- Alors, quand SHA1 ne doit-il pas être utilisé? cest-à-dire que la découverte du problème dans SHA1 lempêche de lutiliser où?
- @ user93353 Comme je lai dit, la sécurité de HMAC-SHA1 dépend de la clé inconnue. Sil ny a pas de clé ou si elle est connue de lattaquant , les collisions dans SHA1 deviennent une menace. Mais SHA1 devrait rarement, voire jamais, être utilisé dans de nouvelles conceptions, car il existe de meilleures alternatives disponibles.
- Si la clé est connue de lattaquant, alors même SHA2 sera être un problème, non?
- @ user93353 Cela dépend de ce que vous voulez réaliser. Bien sûr, aucun hachage sans clé nest un MAC.
- @CodesInChaos – vous dites que HMAC-SHA1 est un problème uniquement si la clé est connue. Mais si la clé est connu, ce sera un problème pour toute opération de hachage HMAC, non?