[#] [Перевод] Padding Oracle Attack: криптография по-прежнему пугает
habrabot(difrex,1) — All
2017-09-19 23:00:06


### Эту уязвимость чинят уже пятнадцать лет


В хабрапереводе текста четырёхгодовалой давности [«Padding Oracle Attack или почему криптография пугает»][1] была подробно описана атака на [режим шифрования CBC][2]. В этом режиме каждый очередной блок открытого текста xor-ится с предыдущим блоком шифротекста: в результате каждый блок шифротекста зависит от каждого блока открытого текста, который был обработан к тому моменту.

[][3]

Чтобы пропустить исходное сообщение (произвольной длины) через CBC-шифр, к нему дописывается [MAC][4] (хеш для проверки целостности, обычно 20-байтный SHA-1) и затем padding, чтобы дополнить открытый текст до целого числа блоков (обычно 16-байтных):



Padding («набивка») состоит из одинаковых байтов, на единицу меньших своей длины: `(0)` или `(1,1)` или `(2,2,2)` или т.п.
Таким образом, получатель шифротекста должен
1. расшифровать все его блоки;
2. прочитать последний байт последнего блока, чтобы определить длину набивки и, соответственно, позицию MAC в открытом тексте;
3. проверить корректность набивки и MAC.
В 2002 г. французский криптограф Серж Воденэ обнаружил в CBC уязвимость к атакам типа «padding oracle»: [Читать дальше →][5]

[1]: https://habrahabr.ru/post/247527/
[2]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC_%D1%81%D1%86%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0
[3]: https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:EncryptCBC.png
[4]: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
[5]: https://habrahabr.ru/post/338072/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut