この文書では, Webアプリケーションでの機密情報の暗号化についての標準を規定する.
個人情報などの機密情報をそのままDBなどに保管することには改竄や漏洩のリスクがある. これを避けるために正真性の保証や暗号化を行なわなければならない.
サービスの開発者は, アプリケーションサーバで暗号化/復号を行ないDBサーバは暗号化された情報を保存しなければならない. DBサーバが脆弱であったとしても暗号の情報が漏れず機密情報を復号できないからだ.
サービスの開発者は, 暗号化をする際に以下の共通鍵暗号のうちのいずれかを利用しなければならない.
新規に暗号を利用する際, 強度を優先する場合はTWOFISH-256の利用を, 互換性を優先する場合は AES-128の利用を推奨する.
AES-192,AES-256は, 攻撃が見付かっており期待通りの保護が得られないことが知られているので利用してはならない. 参考: Schneier on Security: Another New AES Attack
サービスの開発者は, 暗号化の鍵は以下のように管理しなければならない.
情報を暗号化してDBに保存したとしても, DBへのアクセス権限を持つものによってレコード間でカラムを入れかえたり上書きするなどして情報を改竄される恐れがある. このリスクが無視できない場合は, 情報の正真性の保証を行なう必要がある.
サービスの開発者は, ユーザの退会などで不要となった機密情報をすみやかにDBから削除しなければならない. ただし, 不正の防止などに必要な場合は一定期間ないし恒久的に機密情報を保持してもよい. ただし, 保持する機密情報は最低限のものとすること,
機密情報の削除や機密情報を含むメディアを破棄する場合には, 以下の手段のうちいずれかを行なければならない.
以下のツールの利用を推奨する.
これらのツールはHDDのような磁気メディアでのみ有効であり, SSDなどでは単純な利用では有効ではないと考えられる. サービスの開発者は, 磁気メディア以外に機密情報を保存する場合は, 廃棄/削除に専用のツールを用いるか廃棄業者を利用しなければならない.
2015/07注: ハードディスクの正しい消去 によると HDD 全体を消す場合 CMRR - Center for Magnetic Recording Research を利用するのが適当とのこと
機密情報を他社や社外の個人とやりとりする場合, 次の手段のうちいずれかを行なわなければならない. 複数の手段を組合せてもよい.