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

Posted on

Май,06

 at

1:44

от

admin

Если же данные все-таки изменяются между вызовами криптографических функций и это не позволяет определить алгоритм, можно попробовать следующий подход. Некоторые функции-переходники разрабатываются таким  образом, что при обнаружении определенного значения в обрабатываемых данных, в них вносятся намеренные искажения. При этом, разумеется, все операции, использующие искаженные данные, пойдут по-другому, и это будет отражено в протоколе. Сравнив два [...]

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

Posted on

Май,05

 at

1:43

от

admin

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

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

Posted on

Май,03

 at

1:41

от

admin

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

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

Posted on

Май,01

 at

1:39

от

admin

Третья эвристика очень помогает, если криптографический примитив реализован как класс в объектно-ориентированном языке. При компиляции класса создается таблица виртуальных функций (Virtual Function Table, VTable), содержащая адреса всех функций, являющихся методами данного класса. Следовательно, определив расположение одного из методов, можно найти ссылку на него из таблицы виртуальных функций, а значит, отыскать и все остальные методы класса..

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

Posted on

Апр,30

 at

1:38

от

admin

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

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

Posted on

Апр,24

 at

1:37

от

admin

Когда известно, какие константы присутствуют в том или ином алгоритме, остается найти эти константы в теле исследуемой программы. Поиск можно выполнять вручную или воспользоваться готовым инструментом, таким как СС (Crypto Checker), созданный человеком с псевдонимом Aleph, или KANAL (Krypto ANALyzer), разработанный группой uNPACKiNG gODS.
 

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

Posted on

Апр,21

 at

1:34

от

admin

В функции трансформации RIPEMD-160 последняя константа вместо 0хСАб2СШ6 имеет значение 0xA953FD4E, что соответствует 23OxSqrt(7).
Функция трансформации MD5 использует 64 константы, вычисляемые как 232xAbs(Sin(/)), где i — номер раунда, от 1 до 64. Sin(jt) вычисляет синус аргумента, заданного в радианах, a Abs(x) возвращает абсолютное значение х (без знака). Так, например, константы для первых четырех раундов равны 0xD76AA478, [...]

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

Posted on

Апр,15

 at

1:33

от

admin

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

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

Posted on

Апр,09

 at

1:31

от

admin

После того как созданы шаблоны для всех функций, можно приступать непосредственно к идентификации. Для этого необходимо попытаться "приложить" шаблон каждой библиотечной функции к началу каждой функции в исследуемой программе. При совпадении всех неизменяемых байт шаблона функция считается опознанной. Однако необходимо учитывать, что несколько библиотечных функций могут иметь одинаковые шаблоны, как и один шаблон может соответствовать [...]

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

Posted on

Апр,02

 at

1:29

от

admin

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

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

Posted on

Март,30

 at

1:28

от

admin

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

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

Posted on

Март,26

 at

1:26

от

admin

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

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

Posted on

Март,21

 at

1:23

от

admin

Поскольку хороших универсальных решений не бывает, ограничим класс программных продуктов, для которых будет проводиться реконструкция протокола. Исследуемая программа должна удовлетворять следующим требованиям:

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

Posted on

Март,15

 at

1:16

от

admin

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

трансформаторы напряжения Лечение и отдых на Алтае: китайский чай. Чай в подарок. Доставка Москва.