Еще во времена DOS появились программы, позволяющие создавать защищенные диски, содержимое которых становилось доступным только после того, как пользователь вводил правильный пароль. На первый взгляд, защитить информацию в подобных условиях не очень сложно, но разработчики часто не справлялись с поставленной задачей.
15.3.1. Stacker Одной из первых программ, позволявших защищать диски, была программа Stacker, разработанная компанией Stac Electronics, Inc. Точнее, Stacker предназначался для создания сжатых дисков, поддерживающих упаковку и распаковку информации "на лету". Но одна из опций позволяла защитить хранимую на диске информацию паролем. Однако в программе использовалась плохая хэш-функция, вследствие чего сложность подбора пароля, пригодного для расшифровки диска, была всего 2s, т. е. пароль подбирался моментально.
15.3.2. Diskreet Одна из программ, входивших в состав пакета Norton Utilities, называлась Diskreet и была предназначена для создания зашифрованных файлов и дисков. Diskreet поддерживал два метода шифрования, один из который основывался на DES и работал очень медленно, а другой, самодельный и более быстрый, так и описывался в документации: "fast, proprietary method" (быстрый, патентованный метод). Этот "патентованный" метод оказался очень примитивным и неустойчивым к атаке на основе открытого текста. А разработчики, похоже, приложили максимум усилий для того, чтобы открытый текст было легко найти — зашифрованные файлы изобиловали фрагментами с предопределенными значениями. А согласно информации, приведенной на страничке "Russian Password Crackers" (www.password-crackers.com/crack.html), созданной Павлом Семьяновым, пароль от диска, созданного при помощи Diskreet из Norton Utilities 8.0, просто хранится в файле DISKREET.INI в слегка модифицированном виде и может быть извлечен при помощи программы, приведенной в следующем алгоритме (листинг 15.1). | Листинг 15.1. reetpsw.css вычисление пароля Diskieol #include void main (void) { unsigned char b, bXor; FILE *t = fopen ("c: Wnu\\DISKREET.INI", "rb"); fseek (f, 0x64L, SEEK_SET); for (bXor = 0x35; b = fgetc (f); bXor += 0x36) { if ((b A= bXor) == 0) b = 0x33; putchar (b); // здесь выводятся символы пароля ;-))) } f c l o s e ( f ) ;
15.3.3. BootLock Еще один программный продукт, предназначенный для защиты данных и выпускавшийся, как и Norton Utilities, компанией Symantec, назывался Norton You Eyes Only (NYEO). Одной из составляющих NYEO являлась программа BootLock, позволявшая зашифровать даже загрузочный диск, сделав, таким образом, всю вычислительную систему недоступной для противника. Однако разработчики BootLock по неизвестным причинам приняли решение шифровать не все данные диска, а только системные области: загрузочную запись (Boot) и корневую директорию (Root). А таблица размещения файлов (File Allocation Tables, FAT) и область данных, в которой хранится содержимое файлов, оказывались незашифрованными. Шифрование выполнялось путем наложения 512-байтовой гаммы на каждый шифруемый сектор. Причем для всех секторов одного диска использовалась одна и та же гамма. Следовательно, наличие одного открытого сектора давало возможность расшифровать все остальные сектора. Одной из особенностей файловой системы FAT является то, что количество записей в корневой директории определяется при форматировании диска и не может быть ни увеличено, ни уменьшено. Пока на диске не создано ни одного файла, все сектора, относящиеся к корневой директории, заполнены нулями. Информация, описывающая каждый добавленный файл или директорию, занимает 16 байт. Обычно в корневой директории резервируется место под несколько сотен файлов, но редко кто хранит много файлов в корне диска. Следовательно, с очень большой вероятностью в последнем секторе корневой директории за все время не будет ни одной записи, т. е. сектор будет содержать они нули. А сектор, зашифрованный при помощи BootLock, — гамму, использованную для шифрования. Причем складывается ощущение, что компания Symantec знала о нестойкости защиты, обеспечиваемой ее программным продуктом. Во всяком случае, на сайте компании можно было найти информацию о платной услуге по восстановлению данных диска, защищенного BootLock, в случае утери пароля. Стоимость этой услуги составляла всего $ 300 при восстановлении в недельный срок или $ 600 при восстановлении за 24 часа.