Глава 22. Реконструкция криптографических протоколов | Телекоммуникации вчера, сегодня, завтра

Последовательность действий при создании объекта радиосвязи

Бланк формы №1 ТАКТИКО-ТЕХНИЧЕСКИЕ ДАННЫЕ РЭС

Поставка оборудования обеспеченного радиочастотами

Витрина



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

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

22.1. Область применения

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

  • та часть программы, в которой реализован криптографический протокол, скомпилирована в машинный код, т. е. выполняться напрямую процессором, а не виртуальной машиной. Это позволит использовать эвристики, которые плохо работают (или не работают вообще), если поменяются к псевдокоду. Но данное ограничение нельзя назвать очень строгим, т. к. криптографические примитивы, полностью реализованные на базе виртуальной машины, выполняются очень медленно и неприменимы для большинства практических задач;
  • программа выполняется под одной из версий 32-битовой операционной системы Windows на процессоре х86. Это также не очень сильно сужает область возможного применения, ведь большинство персональных компьютеров сейчас имеют именно такую конфигурацию. К тому же почти все эвристики могут бьпь адаптированы к другим операционным системам и аппаратным платформам;
  • исполняемый модуль, подвергаемый анализу, не запакован и не зашифрован. Если это не так, распаковку необходимо выполнить до того, как приступать к исследованиям;
  • в программе используются опубликованные в открытых источниках криптографические алгоритмы. Данное требование будет удовлетворено с очень большой вероятностью, т. к. большинство разработчиков предпочитают использовать надежные алгоритмы, а надежность криптографического алгоритма подразумевает открытость его спецификации;
  • программа разработана в рамках обычного процесса проектирования программного обеспечения, т. е. код оптимизирован с целью упрощения или повышения скорости выполнения, а не написан специально таким образом, чтобы усложнить его анализ;
  • программа создана и распространяется с соблюдением всех законов, патентов и лицензий, под действие которых она попадает.

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



Поиск по сайту


Смотрите также