前回では、ファイル暗号化の基礎的なことを書いた。今回は、もっと突っ込んだ話を書いてみよう。よく見かける記事では、表面的なことしか書いていない。これだと、当面の目的は達成できるが、何かあったときに路頭に迷う。それではいい加減だろうということで、書いてみた。
Windows XP、というかNTFS5のファイル暗号化は、考えるほど単純なものではない。よく考えられた、シンプルかつ高度なものである。だからこそ、仕組みを理解しないで使うと、とんだ失敗をする。
NTFS5における暗号化は、共通鍵暗号と公開鍵暗号を用いた高度なものである。あるファイルを暗号化することを考えよう。このファイルを暗号化するにあたって、そのファイルのために作成された暗号化鍵が自動的に作成される。これは、共通鍵方式の暗号化を行うためのもので、いってみれば単純な暗号化の仕組みと思えばいい。同じキーワードで、暗号化も複合化もできるのである。
このとき用いられるのは、DESXとかAESとかいう共通鍵方式のための暗号化アルゴリズムである。DESXは、Windows XPのSP1以前で使われている。伝統的な暗号化アルゴリズムであるDESを拡張したものだ。AESは、Advanced Encryption Standardの略で、Windows XPのSP1以降で用いられている。
ファイルを暗号化するなら、ここまでで十分だが、さらにその暗号化鍵をさらに暗号化し、安全を期するのがNTFS5である。暗号化鍵を暗号化するのは、RSAというアルゴリズムを用いた公開鍵暗号化方式だ。公開鍵暗号化とは、鍵をふたつ用意し、暗号化のための鍵(公開鍵)、複合化のための鍵(秘密鍵)と使い分ける。公開鍵は、文字どおり公開し、暗号化のために用いる。秘密鍵は、もじどおり復号を許された人だけが知っている鍵で、複合化のために用いる。
Windowsでは、この秘密鍵と秘密鍵の組み合わせを、証明書と呼んでいる。この証明書は、ユーザに対して作成される。このユーザとは、Windowsにログオンするためのユーザのことだ。つまり、ファイルを暗号化したユーザと複合化するユーザは同じでならなければならないという決まりは、ここで生まれる。
かなり長く書いたので、続きは次回にしよう。このような決まりが、どういう問題を生むか、それが次回に書くことである。
コメント