Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 024

AES-CBC

Vérifié parCybersecurity entrepreneur & security researcher

Qu'est-ce que AES-CBC ?

AES-CBCMode de chiffrement par blocs non authentifie chainant AES avec le bloc chiffre precedent ; vulnerable aux attaques par oracle de remplissage sans MAC associe.


AES-CBC (Cipher Block Chaining) est un mode historique defini par NIST SP 800-38A : chaque bloc clair de 128 bits est XORe avec le bloc chiffre precedent avant le chiffrement AES, le premier bloc utilisant un IV aleatoire. CBC offre la confidentialite mais pas l'integrite ; il doit donc etre combine a un MAC selon le schema encrypt-then-MAC. CBC avec remplissage PKCS#7 est tristement celebre pour ses vulnerabilites aux oracles de remplissage (BEAST, Lucky 13, POODLE) exploitees contre TLS, IPsec et le chiffrement de disque. Les standards modernes privilegient AES-GCM ou ChaCha20-Poly1305, mais CBC subsiste dans les piles TLS 1.0/1.1 anciennes.

La famille des attaques par oracle de remplissage a ete introduite par Serge Vaudenay en 2002 : si un serveur revele — via un message d'erreur, le temps de reponse ou une difference de comportement — si le remplissage PKCS#7 dechiffre est valide, un attaquant peut recuperer le texte clair octet par octet sans jamais connaitre la cle. Le schema est reapparu sous la forme de POODLE (CVE-2014-3566) contre SSL 3.0, de Lucky 13 (CVE-2013-0169) comme canal auxiliaire temporel dans la construction MAC-then-encrypt de TLS, et de BEAST (CVE-2011-3389), qui exploitait l'IV chaine previsible de TLS 1.0. CBC est aussi malleable : inverser un bit dans un bloc chiffre inverse le bit de texte clair correspondant dans le bloc suivant, de sorte que, sans protection d'integrite, un attaquant peut alterer les messages sans etre detecte.

Un usage correct exige donc un IV aleatoire et imprevisible par message ainsi qu'une integrite en encrypt-then-MAC (normalisee pour TLS dans la RFC 7366), et non l'ordre historique MAC-then-encrypt. CBC apparait encore dans IPsec, SSH et les anciens deploiements TLS, mais TLS 1.3 a supprime toutes les suites de chiffrement CBC et impose AEAD a la place. Lors de la refonte de systemes anciens, remplacez AES-CBC + HMAC par une primitive AEAD unique (AES-GCM, AES-GCM-SIV ou ChaCha20-Poly1305) afin d'eliminer d'un seul coup les pieges de l'oracle de remplissage et de l'ordre du MAC.

flowchart LR
  IV[IV aleatoire] --> X1((XOR))
  P1[Bloc de texte clair 1] --> X1
  X1 --> E1[Chiffrement AES] --> C1[Bloc chiffre 1]
  C1 --> X2((XOR))
  P2[Bloc de texte clair 2] --> X2
  X2 --> E2[Chiffrement AES] --> C2[Bloc chiffre 2]

Exemples

  1. 01

    AES-256-CBC avec HMAC-SHA256 dans les anciennes suites TLS 1.0/1.1.

  2. 02

    BitLocker a remplace AES-CBC par XTS-AES pour le chiffrement integral du disque.

Questions fréquentes

Qu'est-ce que AES-CBC ?

Mode de chiffrement par blocs non authentifie chainant AES avec le bloc chiffre precedent ; vulnerable aux attaques par oracle de remplissage sans MAC associe. Cette notion relève de la catégorie Cryptographie en cybersécurité.

Que signifie AES-CBC ?

Mode de chiffrement par blocs non authentifie chainant AES avec le bloc chiffre precedent ; vulnerable aux attaques par oracle de remplissage sans MAC associe.

Comment se défendre contre AES-CBC ?

Les défenses contre AES-CBC combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.

Quels sont les autres noms de AES-CBC ?

Noms alternatifs courants : Chainage de blocs, AES-128-CBC, AES-256-CBC.

Termes liés