Спецификация офис открытого XML (от OOXML): шифрование

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

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

  • [6]DataSpaces (Каталог)
  • EncryptionInfo (Файл)
  • EncryptedPackage (Файл)

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

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

2 ответов


шифрование файлов не является частью спецификаций OpenXML ECMA/ISO. Это вендора стандартный сверху. Для спецификации, пожалуйста, проверьте

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

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


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

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

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