Office 2007: новый формат и новая защита
Защита файлов Office 2007: Word, Excel и PowerPoint
Другие приложения Microsoft Office
Стратегии защиты и восстановления паролей Office 2007
В конце ноября 2006 года Microsoft выпустила финальную версию пакета приложений Microsoft Office 2007. В этой статье будет дан анализ основных изменений, касающихся защиты документов и персональных данных пользователя.
Новый формат файлов
Изменение формата сразу же бросается в глаза, например файлы Word 2007 теперь имеют расширение *.docx вместо привычного *.doc. В предыдущих версиях Office большинство файлов представляли собой OLE-контейнеры, состоящие, в свою очередь, из нескольких потоков с бинарными данными. Бинарные форматы Word и Excel в конце 90-х годов были документированы и доступны подписчикам MSDN. Однако с выходом Office 2000 компания Microsoft закрыла эти форматы, и вплоть до Office 2003 они не были доступны даже ее партнерам. Это делало невозможным написание собственных приложений, работающих с документами Office.
Однако с выходом Office 2007 ситуация радикально изменилась. Новый формат файлов Office Open XML является полностью открытым и документированным. Документация по формату доступна и может быть скачана всеми желающими с web-сайта Microsoft. Здесь Microsoft пошла по пути известного проекта OpenOffice, формат файлов которого тоже открытый и использует XML для хранения данных. Поскольку формат XML, в отличие от бинарного, содержит много избыточной информации, все XML-файлы упакованы методом deflate архиватора ZIP.
Вот так, например, выглядит файл document.xml, представляющий собой «тело» документа Word:
<?xml version=”1.0" encoding=”UTF-8" standalone=”yes” ?>
<w:document xmlns:ve=”http://schemas.openxmlformats.
org/markup-compatibility/2006" xmlns:o=”urn:
schemas-microsoft-com:office:office” xmlns:r=
”http://schemas.openxmlformats.org/officeDocument/
2006/relationships” xmlns:m=”http://schemas.
openxmlformats.org/officeDocument/2006/math”
xmlns:v=”urn:schemas-microsoft-com:vml” xmlns:wp=
”http://schemas.openxmlformats.org/drawingml/2006/
wordprocessingDrawing” xmlns:w10=”urn:schemas-
microsoft-com:office:word” xmlns:w=”http://
schemas.openxmlformats.org/wordprocessingml/2006/
main” xmlns:wne=”http://schemas.microsoft.com/
office/word/2006/wordml”>
<w:body>
<w:p w:rsidR=”00021ED4" w:rsidRPr=”00FC4BE5"
w:rsidRDefault=”00FC4BE5">
<w:pPr>
<w:rPr>
<w:lang w:val=”en-US” />
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:lang w:val=”en-US” />
</w:rPr>
<w:t>Test Word file…</w:t>
</w:r>
</w:p>
<w:sectPr w:rsidR=”00021ED4" w:rsidRPr=”00FC4BE5"
w:rsidSect=”00021ED4">
<w:pgSz w:w=”11906" w:h=”16838" />
<w:pgMar w:top=”1134" w:right=”850" w:bottom=”1134"
w:left=”1701" w:header=”708" w:footer=”708"
w:gutter=”0" />
<w:cols w:space=”708" />
<w:docGrid w:linePitch=”360" />
</w:sectPr>
</w:body>
</w:document>
Ссылки на XML-схемы, к сожалению, пока не работают. Будем надеяться, что в скором времени Microsoft исправит это недоразумение. Как видно из этого примера, формат файла вполне читаемый и понятный: здесь видны, как минимум, язык текста, сам текст и параметры страницы, а назначение остальных тэгов можно посмотреть в документации.
В Office 2007 очень грамотно решена проблема совместимости с предыдущими версиями Office. Если попытаться открыть файл нового формата, например, в Office 2003, то появится предложение скачать с сайта Microsoft конвертор, после установки которого Office 2003 без проблем будет работать с новыми файлами. При этом сохранение в новом формате тоже поддерживается.
Защита файлов Office 2007: Word, Excel и PowerPoint
Если формат обычных файлов Office является очень простым и понятным, то формат защищенных файлов таковым назвать нельзя. Если установлен пароль на открытие файла, то файл представляет собой OLE-контейнер, состоящий из информации о шифровании, зашифрованного потока и вспомогательной информации. Блок информации о шифровании точно такой же, как и в Office XP/2003. Там содержится имя криптопровайдера, алгоритмы хеширования и шифрования, а также длина ключа и данные для проверки пароля и расшифровки документа. Однако если в предыдущих версиях Office можно было менять криптопровайдера и длину ключа, то в Office 2007 жестко установлены следующие параметры: алгоритм шифрования AES c длиной ключа 128 бит и хеширование SHA-1. Шифрование и хеширование обеспечивает криптопровайдер Microsoft Enhanced RSA and AES Cryptographic Provider.
Однако по сравнению с Office 2003 изменился алгоритм преобразования пароля в ключ. Раньше пароль просто хешировался вместе со случайным набором байтов, уникальных для каждого документа (salt). Эта операция требовала всего два преобразования SHA-1 и выполнялась очень быстро. Сейчас же для преобразования пароля в ключ нужно выполнить последовательно 50 тыс. SHA-1-преобразований. При открытии документа это незаметно — операция выполняется за доли секунды. Однако когда мы начинаем последовательно перебирать пароли, то скорость перебора катастрофически падает. По предварительным оценкам, она может составлять не более 500 паролей в секунду даже на современных процессорах Intel Core 2 Duo. Поэтому если использовать вычислительную мощность только одного компьютера, реально возможно найти пароль длиной лишь до 4-5 символов.
Существенно изменился алгоритм проверки паролей read only, защиты документа, а также книг и листов Excel. Раньше в документе хранился хеш пароля, состоящий из 2 байт. Соответственно было возможно его реверсирование в первый подходящий пароль. Сейчас же алгоритм хеширования определен записью в XML-файле и там же определено количество итераций хеша.
Пример хранения информации о read only-пароле Word 2007:
<w:writeProtection w:cryptProviderType=”rsaFull”
w:cryptAlgorithmClass=”hash” w:cryptAlgorithmType=
”typeAny” w:cryptAlgorithmSid=”4" w:cryptSpinCount=
”50000" w:hash=”L419ICUXKWKS4zJGA1QoY80b6ds=” w:salt=
”gmd47MvIcN4OwJ5dPxZL6Q==” />
Здесь мы видим, что используются те же 50 тыс. итераций хеша SHA-1, соответственно этот пароль найти мгновенно уже не представляется невозможным. Однако открытость формата значительно упрощает задачу, если нужно изменить или удалить этот пароль. Мы можем либо пересчитать хеш от нового пароля, либо вообще удалить этот тэг из XML-файла. Аналогичным образом хранятся пароли защиты документа, а также книг и листов Excel.
Другие приложения Microsoft Office
Существенно изменилась система защиты в Microsoft Access. Если раньше пароль на открытие файла хранился в заголовке почти открытым текстом, то в Access 2007 используется шифрование файла, реализованное по тому же принципу, что и в Word/Excel. Теперь этот пароль невозможно восстановить мгновенно, а на его восстановление путем прямого перебора уйдет значительное количество времени. В Access 2007 убрана защита на уровне пользователей и групп пользователей.
Защита PST-файлов Microsoft Outlook не претерпела никаких изменений. По-прежнему в файле хранится лишь 32-битный хеш (CRC-32) от пароля, который может быть легко реверсирован.
Стратегии защиты и восстановления паролей Office 2007
В первую очередь хочу отметить, что в целом защита документов Office в новой версии пакета значительно усилена. Всего лишь 10 лет (с момента выхода Office 97) понадобилось Microsoft для разработки хорошей защиты. Пароль на открытие файла является очень стойким, и его перебор может занять очень много времени. Но это не отменяет необходимости выбирать стойкие пароли для документов. К сожалению, человеческий фактор всегда был и будет самым слабым местом в любой защите. И даже стойкая защита Office 2007 не поможет, если пользователь выбрал пароль John, love или sex — он будет мгновенно восстановлен по словарю.
Абсолютно очевидно, что для восстановления стойких паролей к документам Office 2007 уже не хватает вычислительной мощности одного компьютера. Однако существуют приложения, способные объединять компьютеры в кластер, который будет заниматься перебором паролей. Уже тысяча компьютеров сможет обеспечить скорость перебора в полмиллиона паролей в секунду. Объединив в кластер все компьютеры корпорации, можно находить относительно сложные пароли. Но в первую очередь, конечно же, нужно попробовать атаку по словарю.
Стойкая защита относится только к паролям на открытие документов. Все остальные пароли по-прежнему либо находятся мгновенно, либо могут быть изменены или удалены.