После этого откомпилируйте копию зашифрованной программы, изменив ее таким образом, чтобы она читалась в терминах специально подготовленного словаря, используйте словарь в качестве ключа, а результат распечатайте. Листинги исходных программ UNIX доступны для любого вида ОС. Даже если вы не можете найти дешифратор, который использовался компьютером для шифрования скопированного вами файла, вы всегда можете заглянуть в руководство, найти там алгоритм искомого шифра, и самостоятельно написать по нему программу. Метод перебора в случае с ключами к зашифрованным файлам с паролями действует гораздо эффективнее, чем атака самих паролей для входа в систему. Вскоре вы наверняка найдете ключ для расшифровки, и станете обладателем пароля привилегированного пользователя!
Атака с помощью перебора не всегда является необходимостью. Говорят о существовании известной инверсии шифровального алгоритма, использующегося в некоторых ОС, включая старые версии VMS. К сожалению, сам я не знаю, в чем заключается данный метод инверсии, но я знаю, что существуют способы алгоритмического обратного преобразования команды "crypt" в UNIX. Эта команда использует шифровальный алгоритм World War II Enigma, который был превосходен для своего времени, но не представляет собой загадки для современных суперкомпьютеров. Конечно, для расшифровки вам все же потребуется какое-то время, но она не затруднит ваш компьютер, если у него достаточно "лошадиных сил".
Впрочем, команда шифрования не очень широко используется из-за своей общеизвестной уязвимости. В основном "crypt" избегают по сентиментальным причинам. Шифр, наиболее часто использующийся для кодирования паролей, является версией государственного стандарта шифрования данных (Data Encryption Standart - DES). Вариант DES в UNIX не подходит для атаки с помощью перебора из-за невероятно сложных шифровальных ключей. Каким же образом версия в UNIX защищена от атак методом перебора?
Как известно, файлы паролей в UNIX доступны для чтения, копирования и печати, но сами пароли хранятся в зашифрованной форме. Однако это не совсем так: на самом деле файл паролей ВООБЩЕ не содержит никаких паролей. Когда новый пользователь входит в систему и вводит пароль, UNIX использует первые восемь символов этого пароля в качестве шифровального ключа для кодирования некоей константы (например, большого случайного числа).
Еще одна причина, по которой DES был избран для шифрования паролей, заключается в следующем: когда такой алгоритм используется в программном варианте, он действует медленно. А значит, атака с помощью метода перебора займет больше времени.
Говоря об этой теме, необходимо заметить, что стандарт шифрования данных может быть и не настолько безопасным, как некогда считалось. Основой DES стала система безопасности под названием "Аю-иифер", разработанная IBM в 1973 году для Национального бюро стандартов. Прежде чем DES был принят в качестве официального (стандартного) шифра США, сверхсекретное Агентство по национальной безопасности (NSA) вмешалось в это дело, понизив сложность шифровального алгоритма и скрыв основные аспекты его устройства. Это выглядело весьма подозрительно! Зачем бы NSA объявлять код безопасным, в то же время делая его менее безопасным? Критики предупреждали, что в систему, возможно, была встроена лазейка.
В начале 1992 года два израильских ученых объявили, что они нашли способ победить систему. Если содержание зашифрованного сообщения кому-либо известно, с помощью определенных математических приемов можно вычислить ключ, использованный для шифровки сообщения. Затем не составит труда прочесть тексты, зашифрованные с помощью того же ключа.
Как бы то ни было, со времен семидесятых придумано уже немало гораздо лучших шифров.
В некоторых системах силовая атака на зашифрованные файлы затруднена тем, что шифровальный ключ, применяемый пользователями, шифрует не сам текст, а некую случайную последовательность символов, а эти символы, в свою очередь, зашифровывают текст. Чтобы стать хакером, не обязательно быть слишком уж проницательным, достаточно просто обладать умом. Но для того, чтобы взламывать алгоритмы шифровки данных, необходимо быть не только умным и проницательным, но еще и разбираться в математике. К счастью для тех, кто не может похвастаться калькулятором вместо мозгов, существует много других методов для прочтения зашифрованных файлов (вспомните хотя бы прибор благословенного Ван Эйка).
бит за битом
Допустим, вы вошли в какой-нибудь незначительный бюджет, где нет доступа ни к чему интересному. Допустим также, что в данной системе вы можете прочесть файл с паролями, но не изменить его.
Например, пароль вашего бюджета в этом файле закодирован в виде "fg(kk3j2.". Если у вас есть возможность загрузить файл паролей в текстовый редактор, вы сможете сменить зашифрованный пароль системного администратора на ваш собственный; но сохранить внесенные изменения вам не удастся, если у вас нет статуса привилегированного пользователя. Но так ли это?