Re: [C++] White-box AES Implementation Generator
От: 0xDEADBEEF Ниоткуда  
Дата: 30.04.08 18:04
Оценка: 1 (1) +1
Здравствуйте, gear nuke, Вы писали:

GN>White-Box Cryptography — относительно новое направление (основные применения — DRM и watermarking) в сети публикаций не так много, а готовые реализации, вероятно, можно вообще не найти. Данный генератор представляет скорее академический, чем практический интерес. Это не пример, как надо делать, а на тему "что это вообще такое". Исследования стойкости не проводились. Написан в 2004 году и сейчас является Public Domain (*).


GN>http://files.rsdn.ru/45067/aesig.zip


GN>

GN>[q]

О программе.

GN>AESIG создаёт программные реализации алгоритма дешифрования AES, предназначенные для работы в условиях "White-Box".
Посмотрел, что этот бинарник генерит.
Вот выводы.
1) AESIG генерит ОГРОМНЫЙ бинарник — 1 мег. Мне кажется, что это неприемлемо.

2) В дизасембле (компиляция с -Fa или -S) структура раундовых функций rXXX() выглядит тривиально — доступна для автоматического реверсинга. Код выглядит примерно так:
op    reg1, literal
jnz   no_way
op    reg2, literal2
no_way:


3) Быстро проглядел сами исходники AESIG — мне кажется, если не компакный ключ, так развернутый ключ дешифрования извлечь оттуда можно. Но пока не уверен.

4) А если неможно, то декриптор все одно можно — просто скопипастив этот заобфускаченный мегабайт в отдельный бинарник.

ЗЫ. Имхо, написать генератор декрипторов RSA который использует ембеднутный в коде ключ было бы более благодарной задачей.
__________
16.There is no cause so right that one cannot find a fool following it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.