Intégrité cryptographique
Un mécanisme d’intégrité de données, plus communément appelé code d’authentification de message (MAC1), permet de détecter d’éventuelles modifications de données (en transit ou stockées) à l’aide d’une clé secrète. Un tel mécanisme produit, à partir du message et de la clé secrète, un motif d’intégrité difficile à calculer sans connaissance de la clé secrète.
La sécurité des MAC est évaluée quant à leur résistance aux attaques par contrefaçon, où l’objectif d’un attaquant est de produire un motif d’intégrité valide pour un nouveau message sans la connaissance de la clé secrète. Dans ce contexte, on caractérise une attaque contre un MAC avec une quantité supplémentaire, , représentant la taille des requêtes liées aux tentatives de contrefaçons.2 La définition de est légèrement modifiée pour correspondre au nombre total de blocs des requêtes fournissant des couples de message et d’empreinte valides à l’attaquant.
- Si un mécanisme d’intégrité est basé sur une primitive sous-jacente, celleci doit être conforme au référentiel.
- Il ne doit pas exister d’attaque classique sur le mécanisme d’intégrité nécessitant un nombre d’opérations inférieur à et une taille de requêtes inférieure à .
- La taille du motif d’intégrité doit être d’au moins 96 bits si la sécurité du mécanisme d’intégrité est indépendante de la taille des messages, et d’au moins 128 bits dans le cas contraire.
- Si un mécanisme d’intégrité est basé sur une primitive sous-jacente, il est recommandé que celle-ci soit conforme aux recommandations afférentes.
- Il est recommandé d’employer un mécanisme d’intégrité disposant d’une preuve de sécurité dans un modèle d’adversaire pertinent.
- Il est recommandé d’employer un mécanisme d’intégrité produisant des motifs d’intégrité d’au moins 128 bits.
- Contrairement au mode opératoire de chiffrement CBC, le mécanisme d’intégrité CBC-MAC fixe l’IV à zéro. Il est possible de construire des contrefaçons si CBC-MAC est utilisé comme le mode de chiffrement CBC, avec un IV variable.
- Il est important de prendre en considération les capacités d’un éventuel attaquant à observer des motifs d’intégrité mais également à en obtenir pour des messages de son choix.
- De nombreux mécanismes d’intégrité, tels que CMAC ou GMAC, ne sont sûrs que si l’on traite au plus de l’ordre de blocs de messages clairs, où désigne la taille en bits du bloc.
- Dans certains mécanismes d’intégrité, tels que GMAC, la probabilité de forger l’empreinte d’un message augmente avec sa longueur. La règle RègleMAC.3 requiert une empreinte d’au moins 128 bits pour ces mécanismes, afin de conserver une marge de sécurité convenable pour de longs messages.
- Un mécanisme d’intégrité vient souvent en complément d’un mécanisme assurant la confidentialité. La composition de deux mécanismes cryptographiques n’est jamais simple et doit être réalisée avec soin. À titre d’exemple, il est possible en associant un très bon chiffrement avec un très bon mécanisme d’intégrité de perdre la propriété de confidentialité.
- Le mécanisme d’intégrité HMAC utilise une fonction de hachage cryptographique pour laquelle une résistance en collision n’est pas requise. Lorsqu’une résistance post-quantique est visée, il est donc suffisant que cette fonction de hachage produise des empreintes de 256 bits pour satisfaire à la fois la règle RèglePQMAC et la recommandation RecoPQMAC.
Le mécanisme d’intégrité CMAC utilisant l’AES-128 comme primitive de chiffrement par bloc sous-jacente est conforme aux règles RègleMAC et RèglePQMAC ainsi qu’à la recommandation RecoMAC, qu’il utilise des empreintes de 128 bits ou des empreintes tronquées à 96 bits. En revanche, ce mécanisme n’est pas conforme à la recommandation RecoPQMAC car l’AES-128 n’est pas conforme à la recommandation RecoPQPrimChiffBloc.
Le mécanisme d’intégrité GMAC utilisant l’AES-128 comme primitive de chiffrement par bloc sous-jacente est conforme aux règles RègleMAC et RèglePQMAC ainsi qu’à la recommandation RecoMAC s’il utilise des empreintes de taille 128 bits. En revanche, ce mécanisme n’est pas conforme à la recommandation RecoPQMAC car l’AES-128 n’est pas conforme à la recommandation RecoPQPrimChiffBloc.
Le mode d’intégrité HMAC utilisant SHA-256 comme fonction de hachage sous-jacente est conforme aux règles et recommandations précédentes.
- Le mécanisme d’intégrité CBC-MAC utilisé avec des messages de taille variable n’est pas conforme à la règle RègleMAC.2 car il est vulnérable à des attaques par extension.
- Le mécanisme d’intégrité CBC-MAC « retail »3 utilisé avec DES ou Triple-DES comme primitive de chiffrement par bloc sous-jacente n’est pas conforme à la règle RègleMAC.1.