Padding Oracle
Автор Сценария:
Кирилл Шипулин
MUCH WOW
SUCH CRYPTO
VERY EXCITED
SO PADDING
TOO CBC
VERY PKCS
VERY ORACLE
MANY CLEARTEXT
Padding Oracle - Chosen ciphertext attack
1
SEND CIPHERTEXT #1
2
ERROR / SUCCESS
3
MODIFY CIPHERTEXT #1
SEND CIPHERTEXT #2
Padding дополняет данные до размера блока
В режиме блочного шифрования (ECB, CBC) данные дополняются до размера блока
8 bytes
PKCS #7
Неправильный Padding приводит к ошибке
PKCS7 padding is incorrect
500 Internal Server Error
etc...
Последнее условие - режим CBC
Режим ECB не всегда вам подходит
В CBC можем изменять байты паддинга
CORRECT PADDING
DECRYPTION
D ⊕ 0xD1 | 0x03 |
| |
STILL CORRECT
DECRYPTION
D ⊕ 0xD1 | 0x03 |
D ⊕ 0xD2 | 0x01 |
Мы не знаем, какой Padding имеет шифротекст
Перебираем байт предыдущего блока
Y = 0x00..0xFF
Correct Padding
Z = 0x01
Мы не знаем, какой Padding имеет шифротекст
Перебираем байт предыдущего блока
Y1, Z1 = 0x01
Z = (Y1 ⊕ Z1) ⊕ Y
Z = (Y1 ⊕ 1) ⊕ Y
Пример
Перебираем красный байт, пока не исчезнет ошибка паддинга
Пример
Перебираем красный байт, пока не исчезнет ошибка паддинга
Пример
X = (Y1 ⊕ 1) ⊕ Y = 0x3B ⊕ 1 ⊕ 0x3D = 0x07
Далее так же перебираем следующий байт
XX = Y1 ⊕ Z1 ⊕ 0x02
Y2, Z2 = 0x02
Раскрываем весь текст последнего блока
Затем двигаемся на блок влево
Пример: Apache Axis2 XML Encryption
IV C1 C2 ...
Байты с конца “съедаются” без проверки
Берем IV, C1
Перебираем правый байт IV
Получаем 16 без ошибки
Пример: Apache Axis2 XML Encryption
Затем идем на блок вправо
IV = C1
C1 = C2
Перебираем байты в IV чтобы найти ошибки
xxxx < xxxxxxxxxxx - Error
Другой формат Padding тоже уязвим?
ISO 10126
ANSI X.923
ISO/IEC 7816-4
Другой формат Padding тоже уязвим?
ANSI X.923
Как и в PKCS7,5 - все байты паддинга проверяются.
Атакуем также
Другой формат Padding тоже уязвим?
ISO/IEC 7816-4
Как и в PKCS7,5 - все байты паддинга проверяются.
Атакуем также
Другой формат Padding тоже уязвим?
ISO 10126
Воспользоваться знанием о формате сообщения после дешифрования
(XML Encryption)
Двигать байты вправо, если можем шифровать “свои” данные
Encrypt-then-MAC поможет защититься
Холиварный достаточно вопрос
Вопросы
kirill_wow
kirill_wow
MUCH WOW
SUCH CRYPTO
VERY EXCITED
SO PADDING
TOO CBC
VERY PKCS
VERY ORACLE
MANY CLEARTEXT