Оракул дополнения в CBC
Серверу достаточно отвечать «неверное дополнение», чтобы любое сообщение расшифровали байт за байтом без ключа. Демо атакует настоящий AES-CBC.
Подписи внутри интерактивного демо пока на английском.
Encrypting the secret with a fresh AES key…
На что обратить внимание
- Оракул (padding oracle) выдаёт один бит за запрос: корректно ли дополнение? Около 128 запросов на байт хватает, чтобы восстановить открытый текст.
- Атакующий меняет только предыдущий блок шифртекста. Расшифрование CBC делает с ним XOR следующего блока, поэтому каждая догадка — контролируемая правка открытого текста.
- Решение — не другое сообщение об ошибке. Проверяйте подлинность до расшифрования (encrypt-then-MAC) или используйте AEAD, чтобы изменённый шифртекст отклонялся до проверки дополнения.