たしかに!!
パスワード漏洩時に利用者へ連絡する必要があるというのは、考えから抜けていました。確かにそういった場合もありますし、サービス運営を進めるうえで利用者へ連絡が必要な場面がほかにもあるだろうことを考えると、メールアドレスは平文で持っていたほうが良いと思えました。
一人で考えていますと抜け漏れがありますので、意見を頂けるのは大変助かります。ありがとうございます!
メールアドレスのハッシュ化にメールアドレスを用いれば、メールアドレスをキーとして扱えるかもしれない
ソルトにユーザーIDを利用やハッシュ値を作る際にユーザ名を混ぜ込むを読んでいて思ったのだが、メールアドレスをハッシュ化する際のSALTとしてメールアドレス自身を用いれば、メールアドレスをキーとして扱うことができる気がしてきた。
素人考えなのでセキュリティ的に安全なのかはわからない。レインボーテーブルは作れてしまいそうだ。
逆の発想で、パスワードをSALTにしてメールアドレスをハッシュ化すればいいかもしれない。パスワード変更時にはメールアドレスも一緒に入力してもらう必要がある。
あれ
メールアドレスもハッシュ化を試してみたところ、問題が一つ発生した。メールアドレスとパスワードによって認証する時、メールアドレスにSALTを付与したうえでハッシュ化しているために、利用者が入力したメールアドレスをキーとして、DBに格納されているハッシュ化したパスワードを引き出すことができない。
無理やり突合するならば、すべてのSALTを取り出して、ハッシュ化して突合すれば何とかできるが、計算コストがかかってしまう。
もしくは、メールアドレス以外に主キーにできる値を持たせられればいいが、それを利用者に覚えてもらうというのも現実的ではない。
良いアイデアだと思ったが、うまくいかないので棄却するしかない。