AES-CBC
Was ist AES-CBC?
AES-CBCEin nicht authentifizierter Blockchiffriermodus, der AES mit dem vorherigen Chiffratblock verkettet; ohne MAC anfaellig fuer Padding-Oracle-Angriffe.
AES-CBC (Cipher Block Chaining) ist ein in NIST SP 800-38A definierter Legacy-Modus, bei dem jeder 128-Bit-Klartextblock vor der AES-Verschluesselung mit dem vorherigen Chiffratblock XOR-verknuepft wird; der erste Block nutzt einen zufaelligen IV. CBC bietet Vertraulichkeit, aber keine Integritaet und muss daher in einer Encrypt-then-MAC-Konstruktion mit einem separaten MAC kombiniert werden. CBC mit PKCS#7-Padding ist beruechtigt fuer Padding-Oracle-Angriffe (BEAST, Lucky 13, POODLE), die gegen TLS, IPsec und Festplattenverschluesselung eingesetzt wurden. Moderne Standards bevorzugen AEAD-Modi wie AES-GCM oder ChaCha20-Poly1305, doch CBC ist in TLS-1.0/1.1-Altbestaenden weiterhin verbreitet.
Die Klasse der Padding-Oracle-Angriffe wurde 2002 von Serge Vaudenay vorgestellt: Verraet ein Server — ueber eine Fehlermeldung, das Antwortzeitverhalten oder einen Verhaltensunterschied —, ob das entschluesselte PKCS#7-Padding gueltig ist, kann ein Angreifer den Klartext Byte fuer Byte wiederherstellen, ohne den Schluessel jemals zu kennen. Das Muster tauchte erneut auf als POODLE (CVE-2014-3566) gegen SSL 3.0, als Lucky 13 (CVE-2013-0169), ein zeitbasierter Seitenkanal in der MAC-then-encrypt-Konstruktion von TLS, und als BEAST (CVE-2011-3389), das den vorhersagbaren verketteten IV von TLS 1.0 ausnutzte. CBC ist zudem formbar: Kippt man ein Bit in einem Chiffratblock, kippt das entsprechende Klartextbit im naechsten Block, sodass ein Angreifer ohne Integritaetsschutz Nachrichten unbemerkt manipulieren kann.
Korrekte Nutzung erfordert daher einen zufaelligen, unvorhersagbaren IV pro Nachricht sowie Integritaet per Encrypt-then-MAC (fuer TLS in RFC 7366 standardisiert) statt der historischen MAC-then-encrypt-Reihenfolge. CBC kommt weiterhin in IPsec, SSH und aelteren TLS-Installationen vor, doch TLS 1.3 hat saemtliche CBC-Cipher-Suites entfernt und schreibt stattdessen AEAD vor. Beim Refactoring von Altsystemen sollte man AES-CBC + HMAC durch eine einzige AEAD-Primitive (AES-GCM, AES-GCM-SIV oder ChaCha20-Poly1305) ersetzen, um die Fallstricke von Padding-Oracle und MAC-Reihenfolge in einem Schritt zu beseitigen.
flowchart LR IV[Zufaelliger IV] --> X1((XOR)) P1[Klartextblock 1] --> X1 X1 --> E1[AES-Verschluesselung] --> C1[Chiffratblock 1] C1 --> X2((XOR)) P2[Klartextblock 2] --> X2 X2 --> E2[AES-Verschluesselung] --> C2[Chiffratblock 2]
● Beispiele
- 01
AES-256-CBC mit HMAC-SHA256 in alten TLS-1.0/1.1-Cipher-Suites.
- 02
BitLocker hat AES-CBC durch XTS-AES fuer die vollstaendige Festplattenverschluesselung ersetzt.
● Häufige Fragen
Was ist AES-CBC?
Ein nicht authentifizierter Blockchiffriermodus, der AES mit dem vorherigen Chiffratblock verkettet; ohne MAC anfaellig fuer Padding-Oracle-Angriffe. Es gehört zur Kategorie Kryptografie der Cybersicherheit.
Was bedeutet AES-CBC?
Ein nicht authentifizierter Blockchiffriermodus, der AES mit dem vorherigen Chiffratblock verkettet; ohne MAC anfaellig fuer Padding-Oracle-Angriffe.
Wie schützt man sich gegen AES-CBC?
Schutzmaßnahmen gegen AES-CBC kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für AES-CBC?
Übliche alternative Bezeichnungen: Cipher Block Chaining, AES-128-CBC, AES-256-CBC.