𝗖𝗕𝗖 𝗕𝗶𝘁 𝗙𝗹𝗶𝗽𝗽𝗶𝗻𝗴 𝗘𝘅𝗽𝗹𝗮𝗶𝗻𝗲𝗱

Le chiffrement ne signifie pas que vos données sont à l'abri de toute manipulation.

De nombreux développeurs commettent cette erreur. Ils pensent que si un attaquant ne peut pas lire les données, il ne peut pas les modifier. C'est faux. La cryptographie traite la confidentialité et l'intégrité comme deux tâches distinctes.

L'attaque CBC Bit Flipping le prouve. Un attaquant peut modifier vos données sans connaître votre clé secrète.

Voici comment cela fonctionne :

L'AES ne chiffre pas les données en un seul bloc massif. Il les divise en blocs de 16 octets. En mode CBC, ces blocs sont enchaînés. Le résultat chiffré du premier bloc se mélange au texte en clair du second bloc.

Cet enchaînement crée une vulnérabilité lors du déchiffrement. Pour obtenir le texte original du bloc 2, le serveur le déchiffre et le combine avec le texte chiffré du bloc 1.

Un attaquant peut exploiter cela :

L'attaquant n'a pas besoin de lire le message. Il se contente d'inverser des bits pour modifier le résultat final.

Prenons l'exemple d'une ancienne application web utilisant des cookies chiffrés pour les sessions. Un cookie pourrait contenir : userid=994;role=user;

Un attaquant intercepte ce cookie et inverse des bits dans le texte chiffré. Il envoie de nombreuses requêtes jusqu'à ce que le serveur en accepte une. Comme le serveur vérifie uniquement si les données sont déchiffrables, il traite le texte modifié. Soudain, la chaîne déchiffrée devient : userid=994;role=admi;

L'attaquant dispose désormais d'un accès administrateur. Il n'a jamais lu la clé ni le cookie original.

L'erreur est de supposer que le chiffrement garantit l'intégrité.

Pour corriger cela, utilisez un chiffrement authentifié (Authenticated Encryption) comme l'AES-GCM. Il crée une balise cryptographique (tag). Cette balise agit comme un sceau. Si un attaquant modifie ne serait-ce qu'un seul bit, le sceau est brisé. Le serveur rejette immédiatement les données.

Si vous devez utiliser le mode CBC, utilisez une architecture Encrypt-then-MAC. Créez un code d'authentification pour le texte chiffré et vérifiez-le avant de commencer le déchiffrement.

Les données secrètes ne sont pas toujours des données fiables. Prouvez toujours que vos données n'ont pas été modifiées avant de les utiliser pour prendre des décisions.

Source: https://dev.to/arashad_dodhiya_0e4bdba5a/cbc-bit-flipping-explained-why-encryption-alone-doesnt-guarantee-integrity-5aje