Очевидно, этот метод имеет хорошие перспективы для обеспечения безопасности систем. Чтобы быть совершенно точным, автор должен частично отречься от своего утверждения, что при помощи алгоритмов кэширования можно определить изменения файлов, выполненные программами типа root kit. Они позволят определить изменения файлов, выполненные при помощи наивных программ этого типа. Действительно, хорошая программа типа root kit, предполагая о возможности кэширования, вынуждает операционную систему работать с разными файлами в разное время. Например, при чтении файла (кстати говоря, программой кэширования), измененная операционная система передает реальный исходный файл. При запросе на выполнение выполняется модифицированный файл.
   Примеры подобной технологии можно найти на сайте rootkit.com в разделе «EXE Redirection» («Переадресация выполнимых файлов»). Этот сайт посвящен разработке открытых исходных текстов программ типа root kit для NT.

www.activestate.com/Products/ActivePerl/index.html.
   Программа Game Wizard 32 была создана во время господства DOS на рынке компьютерных игр. Эта программа предоставляет игрокам ряд дополнительных возможностей, но сейчас будет рассказано только об одной из них, относящейся к теме обсуждения. Эта программа обладает возможностью поиска различий для игр. Это резидентная программа, постоянно присутствующая в оперативной памяти после ее запуска. После старта Game Wizard 32 можно начинать игру. В процессе игры игрок записывает на свой счет некоторые величины (набранные очки, золотой запас, запас энергии и т. д.), изменяя параметры игры. В результате будет составлен список найденных параметров игры (list of matches). Затем, после изменения параметров игры, можно еще раз просмотреть список, найти различия, отредактировать их и возобновить игру с новыми параметрами.
   В настоящее время большинство игроков называет подобные игры тренерами или редакторами памяти. Принцип их работы аналогичен рассмотренному ранее принципу работы с файлами. Широкий диапазон программ этого класса может быть найден по адресу http://gamesdomain.telepac.pt/directd/pc/dos/tools/gwiz32.html.
   Другие инструментальные средства, которые могут оказаться чрезвычайно полезными при работе в Windows, – это программы File Monitor (FileMon) и Registry Monitor (RegMon) компании Sysinternals. Если читатель работает с NT, то пусть он попробует программу HandleEx, которая предоставляет похожие возможности. Сайт компании находится по адресу www.sysinternals.com. На сайте много полезных утилит, большинство из которых свободно распространяются вместе с исходными текстами.
   FileMon – программа, которая позволяет отслеживать обращение различных программ к файлам и их работу с файловой системой (чтение, запись, изменение атрибутов и т. д.), как это показано на рис. 5.13.
   Рис. 5.13. Отчет программы FileMon
 
   Применяя фильтрование, можно узнать о действиях выбранной для анализа программы, сократив объем выводимой информации. Обратите внимание, что при фильтрации во время чтения файла отображаются смещение и длина читаемых данных, что помогает определить их адрес в файле. Таким образом, программа FileMon предоставляет еще один способ сокращения списка просматриваемых файлов.
   RegMon – другая программа компании Sysinternals. Как и следовало ожидать, она аналогична FileMon, но работает с реестром Windows, как это показано на рис. 5.14.
   Рис. 5.14. Отчет программы RegMon
 
   Во время подготовки этого примера автор слушал приложение Spinner с сайта spinner.com, который использует Real Audio для воспроизведения музыки. Во время своего выполнения Real Audio находится в состоянии «занято». В строчке с номером 472 можно увидеть работу протокола динамической конфигурации хоста DHCP (DHCP – Dynamic Host Configuration Protocol). Протокол динамической конфигурации хоста является сетевым стандартом, регламентирующим процесс присваивания сервером IP-адресов и другой конфигурационной информации машинам-клиентам. Программа RegMon особенно полезна для проверки подозрений о записи приложением чего-либо интересного где-нибудь в потаенном местечке реестра или при попытке определить действия Троянского коня. Программа также информирует при копировании и сравнении всего реестра в целом.

www.faqs.org/faqs/compression-faq/part1/section-26.html.
   Алгоритмы MD4 и MD5 (MD – сокращения от Message Digest – профиль сообщения. Профиль сообщения – это короткая цифровая строка фиксированной длины, формируемая из более длинного сообщения с использованием специального алгоритма) генерируют 128-битовую (16-байтовую) величину, а алгоритм SHA (SHA – Secure Hash Algorithm – алгоритм аутентификации и проверки целостности информации) – 160-битовую (20-байтовую) величину.
   Примечание
   Возможны любые изменения описанных в этой секции методов, если разработчик захочет усложнить жизнь хакеру. В худшем для хакера случае он сможет определить алгоритм, просмотрев выполнение программы в отладчике. Пример использования отладчика может быть найден в главах 4 и 8 книги.

www.gnu.org.
 
   Вопрос: Что, если я захочу для создания своих собственных программных средств использовать язык С вместо Perl?
   Ответ: У вас будет больше возможностей. В состав большинства открыто распространяемых UNIX-подобных операционных систем входит компилятор с языка С. Для операционной системы Windows можно порекомендовать DJGPP, который можно найти по адресу www.delorie.com/djgpp.
 
   Вопрос: Где можно найти другие свободно распространяемые утилиты?
   Ответ: Sourceforge.net имеет большое хранилище открытых программных средств. Кроме того, Freshmeat.net предоставляет машину поиска свободно доступного программного обеспечения.

www.all.net/books/ip/Chap2-1.html.
   Подобный шифру Цезаря алгоритм ROT13 (алгоритм сдвига символов на 13 позиций английского алфавита – примитивный способ скрытия электронных посланий от посторонних глаз) используется в системах UNIX до сих пор. Он не годится для хранения секретов в тайне. Алгоритм ROT13 больше подходит для скрытия решений ребусов, шуточных посланий и потенциально оскорбительного текста. Если же подобный текст будет расшифрован, то ответственность за возможно нанесенную обиду ляжет не на отправителя, а на того, кто расшифровал его. Например, мистер G. может получить приведенное ниже сообщение, расшифровав которое он, возможно, оскорбится. Но в зашифрованном виде сообщение никого обидеть не может: V guvax Jvaqbjf fhpxf.
   Алгоритм ROT13 очень прост, для того чтобы с ним можно было работать с карандашом в руке и листком бумаги. Достаточно написать алфавит в два ряда со смещением второго ряда на тринадцать букв относительно первого:
 
   ABCDEFGHIJKLMNOPQRSTUVWXYZ
   NOPQRSTUVWXYZABCDEFGHIJKLM

Типы криптосистем

   В криптографии используется два типа криптосистем: симметричные и асимметричные. В симметричных криптосистемах используются более длинные ключи, причем один и тот же ключ используется как для зашифровки, так и для расшифровки текста. Такой ключ называется секретным ключом, и его следует хранить в тайне из-за того, что любой владелец секретного ключа может расшифровать данные, зашифрованные этим же ключом. Большинство симметричных криптосистем используются много лет и хорошо известны. Единственное, что действительно является тайной, – это используемый ключ. Практически все действительно полезные алгоритмы, применяемые на практике сегодня, полностью открыты обществу.
Инструментарий и ловушки…
   Оценка криптостойкости алгоритма
   Проверить алгоритмическую безопасность криптографического алгоритма можно, только атакуя его. Поскольку намного чаще подвергаются атаке криптографические алгоритмы, опубликованные в открытой печати, то чем дольше алгоритм доступен для всеобщего изучения, тем больше будет предпринято попыток перехитрить или взломать его. Ненадежные криптографические алгоритмы взламываются очень быстро, обычно за несколько дней или месяцев, в то время как криптостойкие алгоритмы шифрования могут десятилетиями оставаться неприступными. В любом случае, открытость алгоритма для публичного анализа – важное условие доказательства его безопасности. Хотя если отсутствуют какие-либо сведения о сложности используемых в криптосистеме алгоритмов, то взломать криптосистему сложнее (вне зависимости от криптостойкости используемых в ней алгоритмов). Но при использовании общеизвестного алгоритма всегда есть некоторые предположения относительно его безопасности. Отчасти взлом алгоритма противоречит праву собственности на него. Однако слабый алгоритм может быть взломан, даже если криптограф до конца его и не понял. Очевидно, следует доверять запатентованным алгоритмам только в рамках их долгосрочных обязательств. Именно из-за необходимости тщательного изучения внутреннего устройства алгоритмов для обеспечения их безопасности многие из применяемых на практике запатентованных алгоритмов, как, например, RC6 компании RSA Laboratories, общедоступны.