AES-CBC
O que é AES-CBC?
AES-CBCModo de cifragem por blocos sem autenticacao que encadeia AES com o bloco cifrado anterior; vulneravel a ataques de oraculo de preenchimento sem MAC.
AES-CBC (Cipher Block Chaining) e um modo classico definido em NIST SP 800-38A em que cada bloco de texto claro de 128 bits e XOR com o bloco cifrado anterior antes da cifragem AES, sendo o primeiro bloco protegido por um IV aleatorio. CBC oferece confidencialidade mas nao integridade, devendo ser combinado com um MAC em encrypt-then-MAC. CBC com preenchimento PKCS#7 e celebre pelas vulnerabilidades a oraculos de preenchimento (BEAST, Lucky 13, POODLE) exploradas contra TLS, IPsec e cifragem de disco. Os padroes modernos preferem AEAD como AES-GCM ou ChaCha20-Poly1305, mas CBC continua em pilhas TLS 1.0/1.1 legadas.
A classe de ataques de oraculo de preenchimento foi introduzida por Serge Vaudenay em 2002: se um servidor revela — por meio de uma mensagem de erro, do tempo de resposta ou de uma diferenca de comportamento — se o preenchimento PKCS#7 decifrado e valido, um atacante pode recuperar o texto claro byte a byte sem jamais conhecer a chave. O padrao reapareceu como POODLE (CVE-2014-3566) contra SSL 3.0, Lucky 13 (CVE-2013-0169) como canal lateral temporal na construcao MAC-then-encrypt do TLS, e BEAST (CVE-2011-3389), que explorou o IV encadeado previsivel do TLS 1.0. CBC tambem e maleavel: inverter um bit em um bloco cifrado inverte o bit correspondente do texto claro no bloco seguinte, de modo que, sem protecao de integridade, um atacante pode adulterar mensagens sem ser detectado.
O uso correto exige, portanto, um IV aleatorio e imprevisivel por mensagem e integridade via encrypt-then-MAC (padronizada para TLS na RFC 7366), e nao a ordem legada MAC-then-encrypt. CBC ainda aparece em IPsec, SSH e implantacoes TLS mais antigas, mas o TLS 1.3 removeu todas as suites de cifra CBC e exige AEAD em seu lugar. Ao refatorar sistemas legados, substitua AES-CBC + HMAC por uma unica primitiva AEAD (AES-GCM, AES-GCM-SIV ou ChaCha20-Poly1305) para eliminar de uma so vez as armadilhas do oraculo de preenchimento e da ordem do MAC.
flowchart LR IV[IV aleatorio] --> X1((XOR)) P1[Bloco de texto claro 1] --> X1 X1 --> E1[Cifragem AES] --> C1[Bloco cifrado 1] C1 --> X2((XOR)) P2[Bloco de texto claro 2] --> X2 X2 --> E2[Cifragem AES] --> C2[Bloco cifrado 2]
● Exemplos
- 01
AES-256-CBC com HMAC-SHA256 em suites TLS 1.0/1.1 antigas.
- 02
BitLocker substituiu AES-CBC por XTS-AES na cifragem total do disco.
● Perguntas frequentes
O que é AES-CBC?
Modo de cifragem por blocos sem autenticacao que encadeia AES com o bloco cifrado anterior; vulneravel a ataques de oraculo de preenchimento sem MAC. Pertence à categoria Criptografia da cibersegurança.
O que significa AES-CBC?
Modo de cifragem por blocos sem autenticacao que encadeia AES com o bloco cifrado anterior; vulneravel a ataques de oraculo de preenchimento sem MAC.
Como se defender contra AES-CBC?
As defesas contra AES-CBC costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para AES-CBC?
Nomes alternativos comuns: Encadeamento de blocos, AES-128-CBC, AES-256-CBC.