Реконструкция криптографических протоколов. Часть 13.

Posted on

Май,05

 at

1:43

от

admin

Другой способ — модифицировать образ программы в памяти таким образом, чтобы при обращении к криптографическим примитивам управление поступало к специальным функциям-переходникам. Функция-переходник должна записать в протокол все аргументы запроса, вызвать оригинальную криптографическую функцию, к которой производится обращение, и сохранить в протокол возвращенные результаты. Обычно при реализации этого способа весь код, отвечающий за протоколирование, компилируется в виде отдельной динамически загружаемой библиотеки. А эта библиотека подключается к исследуемой программе с помощью технологии DLL Injection — внедрение DLL в адресное пространство процесса.

После того как протокол получен, остается его проанализировать. Протокол может быть представлен в виде ориентированного графа, в котором криптографические функции являются узлами, а принимаемые и возвращаемые значения — дугами.

Очень часто протокол строится таким образом, что данные с выхода одной криптографической функции сразу же подаются на вход другой, и так происходит до тех пор, пока не будет получен некоторый результат. То есть модификация данных происходит только внутри криптографических функций.

В таком случае, зная конечный результат (который, например, мог быть найден в файле на диске или перехвачен с помощью сниффера), получить алгоритм его вычисления не сложно. Достаточно найти на графе, построенном по информации из протокола, обратный путь до исходных данных.

Leave a Reply

курсы английского языка в Киеве и Украине