Давайте ограничимся сегодня только вопросами защиты документов MS Office, как наиболее популярных в настоящее время, и постараемся разобраться, насколько надежна их защита, и можно ли что-нибудь посоветовать в том случае, когда пароль не опознается. Безусловно, проблема не только не нова, но и достаточно хорошо изучена. Существует даже целый ряд программ, способных помочь в этом случае. Многие из них бесплатны или свободно распространяются. Таким образом, сразу можно сказать, что забыть пароль не страшно. Более того, страшно, что защита в MS Office не так надежна, как хотелось бы, и рассчитана только на самых малоподготовленных пользователей. Выводы делайте сами.
Но все же, давайте разберемся, какие виды парольной защиты предусмотрены в таких “народных” программах как MS Word и Excel.
MS Word
В процессе работы над документом его можно защитить несколькими способами.
Воспользовавшись командой Установить защиту из меню Сервис. В этом случае перед вводом пароля будет нужно выбрать один из трех пунктов-исключений, определяющих действия, которые будут разрешены, несмотря на защиту документа. Например, если запретить любые изменения, кроме записи исправлений, вы не сможете ни отменить запись исправлений, ни принять/отклонить их, хотя документ можно будет изменять. Пароль при этом хранится в документе захешированным (см. врезку).
Установить пароль разрешения записи, щелкнув в окне сохранения документа на кнопке Параметры и в открывшемся окне заполнив соответствующее поле ввода. Это самый ненадежный способ. Пароль в этом случае хранится в открытом виде (в последних версиях Word в Unicode).
Установить пароль для открытия документа, пароль вводится в соответствующем поле того же окна, что и предыдущий тип пароля. Эта защита — самая надежная из всех, так как при ее установке документ шифруется по так называемому симметричному алгоритму RC4. В документе хранится зашифрованный хеш пароля, используемый при проверке. Единственный способ нахождения пароля — перебор, а эта процедура, как известно, может затянуться даже на мощном компьютере.
MS Excel
Эта программа"обороняется" очень похожими методами.
Можно защитить книгу или листы в соответствующем пункте меню Сервис.
Можно установить пароль разрешения записи, выбрав кнопку Параметры в окне сохранения файла. И, наконец, там же можно установить пароль для открытия книги.
Здесь используются те же способы защиты, что и в MS Word. Отличие составляют только пароли на книги/листы.
Пароли защиты листа, вернее их хеши, длиной всего 16 бит хранятся в документе. Следовательно, для каждого хеша существует множество подходящих паролей. Например, если защитить лист паролем "list", то его можно будет открыть и при помощи пароля "zzyw". Досадно, но этим же паролем можно открыть лист, защищенный паролем, например, "test".
Пароль защиты книги подобен защите листа. Но, при помощи хеша той же длины, документ шифруется.
Защита книги для открытия более надежна, но интересно, что при использовании такого, казалось бы, внушительного пароля как "VelvetSweatshop", он не будет оказывать никакого влияния. Книга будет открываться так, как будто она вовсе не защищена.
Программное обеспечение
К счастью или несчастью для многих, открыть защищенные документы можно, даже не имея глубоких познаний. На сегодняшний день разработано множество программ, справляющихся с этой задачей.
Одной из лучших по нашему мнению является серия программ Advanced Password Recovery (Андрея Малышева). Они были разработаны для восстановления забытых паролей в документах Microsoft Office, включая Word, Excel, Outlook и Access. Программы постоянно совершенствуются и сейчас есть несколько версий. Кроме того, они рассчитаны на работу с документами различных версий MS Office. С условиями распространения программ можно познакомиться на сайте разработчика http://www.elcomsoft.com и на http://www.passwords.ru/. Там же приводятся дополнительные сведения и о способах защиты других программ.
Как это работает?
Для примера возьмем программу Advanced Office 97 Password Recovery, окно которой показано на рис.
Окно программы Advanced Office 97 Password Recovery
Прежде всего следует открыть в ней нужный документ или книгу. Соответствующее поле ввода предусмотрено в левом верхнем углу. Возможны три варианта работы программы (тип атаки): прямой перебор, перебор по маске и перебор по словарю.
Прямой перебор будет искать всевозможные комбинации символов. Вы можете несколько ограничить поиск, указав количество символов в пароле, подсказав, из каких именно символов он может состоять (букв, цифр, других знаков) и задать символы, с которых должен начаться поиск. Перечисленные настройки вводятся в полях областей Длина пароля и Набор символов.
Если известна хотя бы часть пароля, можно провести поиск перебором с использованием маски. Например, зная, что пароль имеет длину 8 символов, начинается с буквы "х" и заканчивается "99" можно задать шаблон " x?????99". В качестве символов шаблона можно использовать также знаки "#" и "*". Для указания шаблона предусмотрено специальное поле ввода в окне программы.
И, наконец, если известны возможные пароли (конкретные слова или имена), но не известно, какой именно из них был использован с данным документом, можно провести поиск по словарю. Словарь должны составить вы сами. Это текстовый файл, в котором перечислены все возможные пароли. Вообще-то в словарь можно включить массу слов, которые только приходят в голову. Поиск в этом случае будет состоять, в попытке использовать предлагаемые пароли для открытия документа.
Понятно, что поиск по словарю самый быстрый. А прямой перебор, наоборот, является наиболее трудоемким. Использовать его авторы советуют в последнюю очередь.
В ходе наших экспериментов программа автоматически "разгадывала" или точнее подбирала подходящие пароли на защиту листа, книги и на защиту от изменений. Это происходило мгновенно при выборе нужного файла. Учтите, что в результате вовсе не обязательно ожидать высвечивания действительно того пароля, который использовался первоначально. Это может быть совершенно другой набор символов, но он должен подойти.
Перебор четырех- пятизначных паролей на открытие книг и документов даже безо всяких подсказок происходил безошибочно за считанные секунды (рис. 2). Кроме перечисленных возможностей, программа способна создавать файлы так называемых проектов, в которых сохраняются все настройки программы в текущем сеансе и промежуточные результаты ее работы. Это очень полезно, если перебор пароля у вас затянулся. Его можно прервать, чтобы затем продолжить в другое удобное время, но не сначала, а с того места, на котором вы остановились.
Словарь терминов
Хеш-функция или "хеш"
Происходит от английского слова "hash" (запутанный). Хеш-функцией называется математическая, либо другая функция, которая преобразует входные данные произвольной длины в данные фиксированной длины (значение хеш-функции). Как правило, выходные данные хеш-функции имеют меньший размер, чем входные. Как правило, в качестве хеш-функций выступают однонаправленные функции. Главная задача хеш-функции состоит в том, чтобы по выходным данным невозможно было восстановить входные. Например, для проверки пароля можно проверять его соответствие хешу. В этом случае не требуется хранить пароль в открытом виде. Пример простейшей хеш-функции — сумма всех элементов массива.
Симметричный алгоритм шифрования
Симметричный алгоритм подразумевает использование одного и того же ключа как для шифрования, так и расшифровки данных. Другое название — алгоритм с секретным ключом. При использовании этого алгоритма ключ шифрования должен передаваться по закрытому каналу связи. Например, любой архиватор использует симметричный алгоритм шифрования данных, поскольку шифровка и расшифровка данных производится одним и тем же паролем.
Асимметричный алгоритм шифрования
При использовании асимметричного алгоритма шифрования используется два разных ключа. Первым ключом сообщение шифруется и отсылается по открытому каналу. Второй ключ используется для расшифровки. Первый ключ называется публичным (public key). Этот ключ доступен неограниченному кругу людей и не является секретным. Если есть потребность зашифровать сообщение таким образом, что прочесть его сможет только один конкретный человек, то используется его публичный ключ. Второй ключ называется приватным (private key). Этот ключ необходимо держать в секрете. Пример асимметричного криптоалгоритма — RSA. Этот алгоритм использует популярная программа шифрования PGP.