Office Open XML (OOXML) Спецификация: шифрование - PullRequest
7 голосов
/ 13 мая 2009

Я пытаюсь понять, как зашифрованные («защищенные паролем») документы Office 2007 связаны (в частности, документы Excel). Я экспериментирую с известной, защищенной паролем электронной таблицей.

Когда я распаковываю файл XLSX, я сталкиваюсь с тремя записями:

  • [6] Пространства данных (каталог)
  • EncryptionInfo (Файл)
  • EncryptedPackage (Файл)

Как шифруется файл EncryptedPackage (какой шифр, какая функция получения ключа и т. Д ...)?

Я пытался ссылаться на документацию , но я не добился большого успеха.

Ответы [ 2 ]

8 голосов
/ 13 мая 2009

Шифрование файлов не является частью спецификаций OpenXML ECMA / ISO. Кроме того, это стандарт для конкретного поставщика. Для спецификации, пожалуйста, проверьте

[MS-OFFCRYPTO]: спецификация структуры криптографии офисных документов

Зашифрованные документы OpenXML хранятся не в виде zip-пакета OPC, а в виде зашифрованного OPC-пакета внутри составного OLE-документа.

4 голосов
/ 01 октября 2009

Я создал оболочку OoXmlCrypto stream , соединяющую несколько фрагментов с открытым исходным кодом для легкого доступа к зашифрованным файлам Office 2007.

Этот ответ может быть полезным.

Оказывается [6] DataSpaces игнорируется, но используются две другие части. Зашифрованный файл XLSX на самом деле не заархивирован, это составной контейнер OLE. Если вы достанете детали и заархивируете их с помощью 7zip, Excel не откроет их.

...