暗号ファイルを使った正しい秘密情報の守り方

年金機構の情報漏えい事件に関して、暗号化して保存するルールになってたなんて発言もあり、暗号ファイルの正しい秘密情報の守り方を確認しておきたいと思う。

1.暗号鍵の管理

大事なのは暗号鍵の管理となる。鍵が漏えいすれば、暗号にして保存しておいても何も意味がない。これが意外に難しい。
たとえばファイルサーバーに暗号化したファイルを置いておいたとして、その鍵をチーム内で共有していたとする。鍵がチーム外に漏れては意味がないので、チームメンバーの入れ替えが発生するたびに既存の暗号ファイルの鍵を全部変更する作業が発生する。
また暗号ファイルをメールなどで遠隔地に送る場合、鍵はメールとは異なる安全な媒体で送る必要がある。よくメールで送った添付ファイルの鍵を、別のメールで送ってくるが、これは殆ど意味がない。最低でも封書などで送る必要がある。

2.暗号鍵の長さ

鍵の長さも大事な要素となる。技術の進歩とコストの低下の恩恵を受けているのはクラッカーも同じで、ランダムな英数字記号による8文字程度の鍵なら、総当たりで試行錯誤を繰り返せば解くことができるようになってきた。AES暗号を使ったZIPファイルでも、ハイエンドパソコンなら毎秒40万通りの試行錯誤を実施できるので、英数大小文字に数字と記号までを使ったパスワードでも36年で全ての組み合わせを試せる。本気で暗号を破ろうとするなら、この1/10,000時間で解析することも出来る。最低でも英数字記号による12文字程度の鍵を設定しないと安心は出来ない。。

3.暗号方式の選択

暗号方式には設計レベルでの脆弱性が見つかっているものが多数ある。例えば圧縮ファイルのZIPで使われているPKZIP暗号とか、古いWordやExcelのファイルには、容易に鍵を類推出来るという脆弱性があります。設計レベルでの脆弱性なので、使わない以外の対策はありません。
したがってZIP形式の場合にはAES暗号を使うようにする必要があります。ただしWindowsの標準機能では複合出来なくなる。ExcelやWordではxlsxやdocx形式を選択すると良い。

4.内容を読めない

暗号ファイルにしてるので内容を読めません。何故これが問題なのかというと、例えばウィルス対策ソフトもファイルの内容をチェック出来ないので、ウィルスが含まれていても検出出来ません。また本来は持ち出しの許されていない情報が含まれてないか調べることも出来ません。これを防ぐためにはファイルに使用されている暗号鍵を全て提出させて日々更新し、しかるべき立場の者以外が閲覧できないように厳重に保管しておく必要が生まれます。
これを実現するには、暗号鍵を24桁にして前半12桁と後半12桁とを全く別々の担当者通知して管理させるといったことになる。

ファイルの暗号化によって秘密を守ろうとするとここまでの事が必要になりますが、到底実施不可能だと感じたのでは無いかと思います。それは当然のことです。そもそも共通鍵暗号でファイルを暗号化して秘密を守ろうというのは20年前の発想で、ネットワークに接続された機器が増え、殆ど全ての情報が電子化されている時代に通用する物では無いのですから。

チーム内で安全にファイルを共有するためには、IRM【Information Rights Management】という仕組みを使います。これ自体は単体のシステムとして販売されているのではなく、グループウェアや文書管理システムの一機能として提供されている事が多いです。実は、MicrosoftのOffice製品は10年以上も前から標準でIRMに対応していて、サーバーを1台用意すればIRMを使ったファイルの暗号化をできます。

秘密情報をファイルサーバーに保存する事に関して、まともなSEに少しでも相談していたなら、複雑な運用ルールにあれこれ悩む必要など無かったのに・・・と思わずには居られません。