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

AES-CBC

ПроверилCybersecurity entrepreneur & security researcher

Что такое AES-CBC?

AES-CBCРежим блочного шифрования без аутентификации, связывающий шифрование AES с предыдущим блоком шифротекста; уязвим к атакам на оракул заполнения без MAC.


AES-CBC (Cipher Block Chaining) — это устаревший режим, определённый в NIST SP 800-38A. Каждый 128-битный блок открытого текста перед шифрованием AES XOR-ится с предыдущим блоком шифротекста, а для первого блока используется случайный IV. CBC обеспечивает конфиденциальность, но не целостность, поэтому требует отдельного MAC в схеме encrypt-then-MAC. CBC с дополнением PKCS#7 известен уязвимостями к атакам на оракул заполнения (BEAST, Lucky 13, POODLE), применявшимся против TLS, IPsec и шифрования дисков. Современные стандарты предпочитают AEAD-режимы AES-GCM или ChaCha20-Poly1305, однако CBC сохраняется в устаревших стеках TLS 1.0/1.1.

Класс атак на оракул заполнения был представлен Сержем Воденэ (Serge Vaudenay) в 2002 году: если сервер раскрывает — через сообщение об ошибке, время отклика или различие в поведении — корректно ли расшифрованное дополнение PKCS#7, злоумышленник может восстанавливать открытый текст побайтно, так и не узнав ключ. Этот шаблон вновь проявился как POODLE (CVE-2014-3566) против SSL 3.0, как Lucky 13 (CVE-2013-0169) — временной побочный канал в конструкции MAC-then-encrypt протокола TLS, и как BEAST (CVE-2011-3389), эксплуатировавший предсказуемый сцепленный IV в TLS 1.0. CBC также податлив: переворот бита в блоке шифротекста переворачивает соответствующий бит открытого текста в следующем блоке, поэтому без защиты целостности злоумышленник может незаметно подменять сообщения.

Поэтому корректное использование требует случайного непредсказуемого IV для каждого сообщения и целостности по схеме encrypt-then-MAC (стандартизированной для TLS в RFC 7366), а не устаревшего порядка MAC-then-encrypt. CBC всё ещё встречается в IPsec, SSH и старых развёртываниях TLS, но TLS 1.3 удалил все наборы шифров CBC, потребовав вместо них AEAD. При рефакторинге устаревших систем заменяйте AES-CBC + HMAC единым AEAD-примитивом (AES-GCM, AES-GCM-SIV или ChaCha20-Poly1305), чтобы за один шаг устранить ловушки оракула заполнения и порядка MAC.

flowchart LR
  IV[Случайный IV] --> X1((XOR))
  P1[Блок открытого текста 1] --> X1
  X1 --> E1[Шифрование AES] --> C1[Блок шифротекста 1]
  C1 --> X2((XOR))
  P2[Блок открытого текста 2] --> X2
  X2 --> E2[Шифрование AES] --> C2[Блок шифротекста 2]

Примеры

  1. 01

    AES-256-CBC с HMAC-SHA256 в старых наборах TLS 1.0/1.1.

  2. 02

    BitLocker заменил AES-CBC на XTS-AES для полного шифрования диска.

Частые вопросы

Что такое AES-CBC?

Режим блочного шифрования без аутентификации, связывающий шифрование AES с предыдущим блоком шифротекста; уязвим к атакам на оракул заполнения без MAC. Относится к категории Криптография в кибербезопасности.

Что означает AES-CBC?

Режим блочного шифрования без аутентификации, связывающий шифрование AES с предыдущим блоком шифротекста; уязвим к атакам на оракул заполнения без MAC.

Как защититься от AES-CBC?

Защита от AES-CBC обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия AES-CBC?

Распространённые альтернативные названия: Cipher Block Chaining, AES-128-CBC, AES-256-CBC.

Связанные термины