Microsoft Excel には、読み取りパスワード設定があり、ファイルを開く際にパスワードを要求することができます。
最近、大手のブログサービスで、有名人ブログのパスワードが流出する事件がありました。そのファイルは Excel であったと聞いています。
このようなことがあり、自分が管理している Excel ファイルについて再考しました。確かに読み取りパスワードはしっかりと設定しています。しかし、これでは特殊な方法で中身が解析されるのではないかと疑問に思いました。というのも、Excel には読み取りパスワードの他に暗号化があります。つまり、データの暗号化もしておかなければ、無意味ではないかと。
そこで、読み取りパスワードが設定されているファイルに、暗号化の設定もしてみました。一見すると、ファイルが変わった様子はありません。ファイルサイズも同じです。しかし、バイナリーで Diff をとってみると、違いが出てきました。
実験
- 新規ブックを作成して、セル A1 に "ABC" を入力。そしてブック保存時に、読み取りパスワード (XYZ) を設定して保存。(ファイル名: Book1.xlsx)
- 新規ブックを作成して、セル A1 に "ABC" を入力。そしてブックを暗号化 (パスワード: XYZ) したのち保存。(ファイル名: Book2.xlsx)
- Book1.xlsx と Book2.xlsx をサイズで比較したところ、全く変化はありませんでした。
- ところが、WinDiff でバイナリー比較をしたところ、完全に違っていました。
暗号化をした場合でも、ブックを開く際にパスワードを聞いてきますので、読み取りパスワードを設定している場合とまったく同じように扱うことができます。両者とも扱い方が同じなので、一応暗号化をしておいた方が安全なような気がします。
尚、Office 2007 の保存は拡張子 xlsx で保存されます。これは zip 圧縮と同じものです。通常の Excel ファイルであれば、拡張子を zip に変えて展開することによって、中身のファイルを見ることができますが、読み取りパスワードまたは暗号化をしたファイルは zip 展開することができないようです。具体的には、通常のパスワード付き ZIP ファイルならば、展開時にパスワードを聞いてきますが、読み取りパスワードまたは暗号化された Excel ファイルを ZIP 展開しようとしても、「圧縮 (zip 形式) フォルダーは空です。」とメッセージが表示されて展開はできません。