<< Предыдущая

стр. 37
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>

^ ^ /
/
calcMD5 proc near 0xD76AA478

MD5_lnit *
call 0xE8C7B756

MD5_Update A
call

call MD5_Final — - — • — _


Код неопознанной
retn функции
calcMD5 endp

Рис. 2 2 . 1 . Последовательное выполнение стадий алгоритма



Virtual Function Table I J MD5::lnit
Указатель на
таблицу методов &lnit
MD5::Update
«Update
Область данных
экземпляра класса «.Final
MD5::Final
NULL

Рис. 2 2 . 2 . Экземпляр класса, вычисляющего значение хэш-функции


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


22.4. Протоколирование
Когда определены адреса точек входа в каждую функцию, относящуюся
к реализации того или иного криптографического примитива, необходимо
258 Часть V. Заметки об исследовании средств защиты


проанализировать все обращения к таким функциям. Разумеется, можно
попытаться выполнить эту работу при помощи отладчика, но, скорее всего,
число обращений к криптографическим функциям будет настолько велико,
что удержать полную картину в памяти не сможет ни один человек.
Поэтому лучше сохранить всю информацию об аргументах, передаваемых на
вход криптографических функций, а также о возвращаемых ими значениях,
в файле протокола. Если исследуемая программа содержит несколько пото-
ков, разумно запоминать и идентификатор потока, внутри которого проис-
ходит обращение к функции. Также можно сохранять адрес, откуда произ-
водился вызов той или иной функции.
Чтобы получить возможность протоколирования, необходимо перехватить
все обращения к криптографическим функциям. Это может быть выполнено
разными способами, например при помощи запуска программы под своим
отладчиком, реализованным средствами Microsoft Debugging API.
Другой способ — модифицировать образ программы в памяти таким обра-
зом, чтобы при обращении к криптографическим примитивам управление
поступало к специальным функциям-переходникам. Функция-переходник
должна записать в протокол все аргументы запроса, вызвать оригинальную
криптографическую функцию, к которой производится обращение, и сохра-
нить в протокол возвращенные результаты. Обычно при реализации этого
способа весь код, отвечающий за протоколирование, компилируется в виде
отдельной динамически загружаемой библиотеки. А эта библиотека подклю-
чается к исследуемой программе с помощью технологии DLL Injection —
внедрение DLL в адресное пространство процесса.
После того как протокол получен, остается его проанализировать. Протокол
может быть представлен в виде ориентированного графа, в котором крип-
тографические функции являются узлами, а принимаемые и возвращаемые
значения — дугами.
Очень часто протокол строится таким образом, что данные с выхода одной
криптографической функции сразу же подаются на вход другой, и так про-
исходит до тех пор, пока не будет получен некоторый результат. То есть мо-
дификация данных происходит только внутри криптографических функций.
В таком случае, зная конечный результат (который, например, мог быть
найден в файле на диске или перехвачен с помощью сниффера), получить
алгоритм его вычисления не сложно. Достаточно найти на графе, построен-
ном по информации из протокола, обратный путь до исходных данных.
Глава 22. Реконструкция криптографических протоколов 259


22.5. Внесение искажений
Если же данные все-таки изменяются между вызовами криптографических
функций и это не позволяет определить алгоритм, можно попробовать сле-
дующий подход. Некоторые функции-переходники разрабатываются таким
образом, что при обнаружении определенного значения в обрабатываемых
данных, в них вносятся намеренные искажения. При этом, разумеется, все
операции, использующие искаженные данные, пойдут по-другому, и это
будет отражено в протоколе. Сравнив два протокола (оригинальный и с ис-
кажениями), можно будет легко определить, где внесенные искажения впер-
вые повлияли на ход выполнения протокола, а значит, и локализовать
место, нуждающееся в более подробном исследовании с помощью отладчика
и дизассемблера.
Изучать и анализировать реконструированный криптографический протокол
на несколько порядков проще, чем пытаться при помощи отладчика и диз-
ассемблера разобраться в том, как программа обрабатывает данные.
Если же протокол является единственной секретной частью "черного ящи-
ка", реконструкция протокола, фактически, означает полный взлом защиты.
Глава 23


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


23.1. Концепции безопасности
К счастью, все больше компаний приходят к пониманию того, что в совре-
менном информационном мире обеспечение информационной безопасно-
сти является очень важной задачей. Возможно, этому способствует тот факт,
что все больше инцидентов, связанных с нарушением защиты, становятся
известными широкой аудитории. И в этом довольно большая заслуга
средств массовой информации, которые стали уделять внимание подобным
вопросам.
Правда, иногда возникает ощущение, что средства массовой информации
намеренно забывают некоторые факты, стремясь раздуть скандал. Иначе как
объяснить, что очень много кричат о компьютерном вирусе, вызвавшем
эпидемию, хотя заплатка для уязвимости, использованной вирусом, была
доступна за несколько месяцев до появления вируса. То есть эпидемия слу-
чилась исключительно из-за халатности системных администраторов, не ус-
тановивших вовремя обновление системы безопасности.
В любом случае, очень многие люди, соприкасающиеся с информационной
безопасностью не только как пользователи, имеют недостаточный багаж
знаний в этой области. И прежде чем вкладывать весьма значительные сред-
ства в разработку или приобретение средств защиты, стоит обучить людей
хотя бы основным принципам безопасности, т. к. без этого даже самая на-
дежная техническая система будет давать сбои в самом слабом звене — че-
ловеческом факторе.
262 Часть V. Заметки об исследовании средств защиты


23.2. Перспективы
развития криптографии
Как бы ни было много сделано, ни одна из наук не собирается останавли-
ваться в своем развитии. Так и в области криптологии постоянно ведутся
исследования. Часть проводимых работ относится к криптоанализу — во-
просами проверки стойкости алгоритмов и поиском методов их взлома за-
нимаются ведущие мировые криптографы. Но не прекращаются и усилия по
созданию новых методов для защиты информации.

23.2.1. Потребность в новых
криптографических примитивах
Несмотря на то, что существующие криптографические алгоритмы способ-
ны обеспечить достаточно высокий уровень безопасности, чтобы защитить
данные от любого противника на сотни лет, новые шифры продолжают по-
являться. Так сравнительно недавно появилась группа неплохих алгоритмов,
ставших финалистами конкурса AES.
Иногда новые алгоритмы должны работать в специальных условиях (мало
памяти, ограниченный набор команд), иногда требуется увеличить произво-
дительность без снижения стойкости. Работы по созданию новых симмет-
ричных шифров ведутся постоянно, но значительного изменения состава
широко применяемых симметричных криптографических алгоритмов, на-
верное, уже не произойдет. Все-таки симметричные шифры — одна из са-
мых древних и хорошо изученных областей криптографии.
А вот в криптографии с открытым ключом до сих пор много чего не сдела-
но. Хорошо проверенные методы, такие как RSA, требуют выполнения зна-
чительных объемов вычислений и оперируют блоками большого размера.
И с увеличением минимальной рекомендованной длины ключа вследствие
прогресса вычислительной техники и методов взлома накладные расходы
растут очень быстро. Так что поиск более технологичных решений, способ-
ных обеспечить высокий уровень безопасности, может, в конце концов,
привести к появлению принципиально новых алгоритмов.
128- и 160-битовые значения, получаемые на выходе широко используемых
хэш-функций MD5 и SHA-1, оказались слишком короткими для некоторых
приложений, и были разработаны спецификации SHA-256, SHA-384 и
SHA-512. Дальнейшее увеличение размера хэша вряд ли найдет практическое
применение, но могут появиться хэш-функции, работающие быстрее, чем SHA.



I
Еще одна из плохо проработанных задач — это источники случайности для
генераторов псевдослучайных чисел. Но поиск новых источников вряд ли
Глава 23. Чего ожидать в будущем 263

относится к задачам криптографии. А вот оценка объема действительно слу-
чайной информации, получаемой из каждого источника, вполне заслужива-
ет исследования.

23.2.2. Надежные, но не всегда работающие
протоколы
С протоколами дело обстоит гораздо хуже, чем с алгоритмами. Есть еще
много областей, в которых протоколы существуют, но не всегда справляют-
ся с возложенными задачами.
Возьмем, например, цифровую подпись. Казалось бы, если существует ин-
фраструктура открытых ключей и используются стойкие асимметричные
алгоритмы, нет никакой проблемы в обеспечении проверки подлинности
подписи, и подпись является неотказуемой.
Однако на самом деле возможен такой сценарий. На компьютере пользова-
теля хранится секретный ключ, используемый для подписи, но для доступа
к ключу необходимо ввести секретную фразу. Это очень распространенная
схема хранения секретного ключа. Компьютер заражается вирусом, или на
него попадает троянская программа. Эта троянская программа находит на
машине ключ подписи и отсылает его по Интернету противнику. Парал-
лельно устанавливается программа, протоколирующая все нажатия кнопок
на клавиатуре и передающая протокол злоумышленнику. Таким образом,
после того как ничего не подозревающий пользователь введет ключевую
фразу, в распоряжении противника будет чужой ключ подписи и секретная
фраза, необходимая для доступа к ключу.
Описываемый пример более чем реален, учитывая многочисленные дыры,
с завидным постоянством обнаруживаемые в операционных системах. И как
результат, цифровая подпись может быть подделана злоумышленником,
и в этом нет прямой вины пользователя.
Теперь посмотрим на ту же ситуацию с другой стороны. Если владельцу
ключа удастся доказать в суде, что похищение имело место, то это позволит
ему освободиться от обязательств и утверждений, под которыми была по-
ставлена его подпись. И достаточно одного подобного случая в стране, где
действует прецедентное право (например в США), чтобы любой желающий
получил хорошие шансы отказаться от подписи, изобразив похищение соб-
ственного ключа.

Троянская защита
17 октября 2003 года 19-летний Аарон Кафферей (Aaron Caffrey) был оправдан
британским судом. Его обвиняли в организации DOS-атаки (Denial Of Service,
264 Часть V. Заметки об исследовании средств защиты

отказ в обслуживании) на инфраструктуру порта в Хьюстоне (штат Техас). Од-
нако защитнику удалось убедить присяжных, что компьютер Аарона, с которого
выполнялась атака, был взломан неизвестным хакером, который и устроил
атаку против хьюстонского порта. И это как минимум третий случай успешного
применения "троянской защиты" в британской юриспруденции.


Вся проблема в том, что для создания обычной подписи требуется присутст-
вие подписывающего. А для цифровой подписи требуется доступ к некото-
рой информации или оборудованию (файлу с ключом, секретной фразе,
смарт-карте, PIN-коду), находящимся в эксклюзивном распоряжении вла-
дельца подписи. Но все эти необходимые для подписи сущности могут быть
отделены от пользователя: подсмотрены, украдены, взяты на короткое время
и использованы без ведома владельца.
Чтобы "привязать" пользователя к проставляемой им подписи, можно ис-
пользовать биометрику. Но и тут нерешенных проблем хватает.

Поддельные пальчики
Голландские специалисты по биометрике Тон ван дер Путте (Ton van der Putte)
и Джерон Кенинг (Jeroen Keuning) к 2000 году разработали технологию, позво-
ляющую обманывать сканеры отпечатков пальцев. Подделку не обнаруживал
ни один из протестированных сканеров, созданных двумя десятками различных
производителей.

В октябре 2003 года эксперимент был повторен, и результаты ошеломили даже
авторов технологии. Комплект материалов, достаточный для изготовления
примерно 20 поддельных пальцев, можно приобрести примерно за $ 10 в мага-
зинах типа "сделай сам" (do-it-yourself). Изготовление копии пальца при сотруд-
ничестве владельца занимает не более 15 минут. Более того, для изготовления
подделки на основе латентного отпечатка (оставленного на гладкой поверхно-
сти) требовалось 1,5 часа времени, материалы на $20 (достаточные для
20 дубликатов) и такое "специальное" оборудование, как цифровая камера и
ультрафиолетовая лампа.


Так что проблемы персональной аутентификации, а также многие другие
проблемы современного информационного мира все еще нуждаются в более
надежных решениях.
Кстати, многие неплохие алгоритмы и протоколы покрываются патентами
или патентными заявками. И одно из занятий, на которое криптографам
приходится тратить время из-за существующего патентного законодательст-
ва, заключается в поиске эффективных и надежных решений, не нарушаю-
щих никаких патентов.
Глава 23. Чего ожидать в будущем 265


23.3. Защита программ
Полностью защитить программу от несанкционированного тиражирования,

<< Предыдущая

стр. 37
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>