アンタイ・フォレンジック妖怪の独り言

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

Office 2007のパスワード保護ファイル

Office 2007の文書ファイル docx,xlsx,pptx などは、パスワードを設定せずにそのまま保存した場合には、ZIPファイルの形式になっています。*1ただし、「Office (2007) Open XML ファイル形式の概要」には以下の記述がありパスワード付きのZIPの形式は作られない様子です。

一部の ZIP アプリケーションでは、暗号化ファイルを作成することができます。新しいファイル形式では、暗号化ファイルは作成されません。暗号化されたファイルを読み取ろうとすると、ファイルの読み取りが中止され、エラーが返されます。

ということで?、Office 2007で文書ファイルにパスワードを設定すると違う(従来型?)フォーマットが利用されることになります。
まず、パスワード設定がない xlsx ファイルの先頭ヘッダ部分を16進数で見るとこんな↓感じですね。\x50 \x4B の部分が文字列“PK”となり、ZIPファイルのヘッダと同じになります。

50 4B 03 04 14 00 06 00 08 00 00 00 21 00 71 0E 39 2B 70 01 00 00 A0

これに対して、パスワードが設定されている .xlsx ファイルは以下のヘッダを持っています。

D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

詳しく調べていませんが、旧バージョンと同じバイナリファイルの構造を使っているんでしょうかね?、かなり大雑把な判定を考えると拡張子が Office 2007 形式で、ファイルヘッダが PK 以外のファイルはパスワード設定がされている文書ファイルというフィルタでも案外いけるような気がしています。

Word 2007、Excel 2007、PowerPoint 2007 で既定の暗号化プロバイダを変更する方法
http://support.microsoft.com/kb/937914/ja
Word 2003、Word 2002、Word 2000 で互換機能パックを使用して Word 2007 文書の文書保護を解除する時にパスワードの入力を要求されない
http://support.microsoft.com/kb/935282/ja

試していませんが、読み取り時にはもちろんパスワード要求するんですよね?>互換機能パック

*1:Office (2007) Open XML ファイル形式の概要 http://msdn.microsoft.com/ja-jp/library/aa338205.aspx