(追記 2017/08/30): 「復号化」から「復号」に訂正しました。
対象環境
Windows 7/8.1/10
パスワードの暗号化の機能を実装している中でふと思ったのが「その暗号化いつまで安全なの?」ということ。
そして、使っている暗号化が安全ではなくなったとわかった時点の対応(ソフトバージョンアップ時)にユーザ側でバージョンアップ後に問題なく使い続けるにはどうしておくのがいいのか。
- バージョンアップ時に一度パスワードをクリア
- 短所: バージョンアップ時にパスワード設定忘れを生じる可能性あり、その結果として本来の機能使用に失敗する
- 備考: (2番目に記載の)バージョンがない場合は、「どの暗号化を使ったのか」わからないためこちらを実施することになる
- パスワード暗号化のバージョニングを行う
- 長所: 古い暗号化から乗り変え時には、暗号のバージョンを確認して復号し、新しいバージョンの暗号化を使って保存しなおす
- 長所: 複数回の暗号化変更にも対応できそう
- 短所: 暗号化バージョンという項目を別途保持する必要が出てくる
考えることは、複数バージョンのデータを扱えるソフトの作成と同じなのだろう。
今のうちにこういう仕組みを作っておくことで、将来の仕事を減らせると思う。
あとは、暗号化方法が漏洩した時にそれだけで復号されることがないような仕組みを追加で考えておくことは大事だと思う。