1月11日(火)1、2コマ目
今日の予習
パスワードのハッシュ化
パスワードは平文のままでDBに保存すると、漏洩した際に被害が大きい。もし漏洩しても推測困難にするためにハッシュ化して保存するのが一般的。
ハッシュ化するためのPasswordUtilクラスをあげておきます。
PasswordUtil.java
今日、やったこと
パスワードのハッシュ化今日のホワイトボード
今まで、認証に使うパスワードをデータベースに平文で保存していました。が、データベースが漏洩した場合、パスワード情報も漏洩します。データベースが漏洩してもパスワードはすぐにはわからないようにするためにハッシュ化して保存するのが一般的です。
ユーザー認証
認証に使える情報は「本人しか持っていないモノ」、「本人しか知らないモノ」。
これらの情報が漏洩すると認証システムの崩壊になる。
| 図 認証に使う情報 |
今までは便宜上データベースにはパスワードを平文で保存していた。
が、これは危険なため、ハッシュ化して保存する。
| 図 今までのダメなところ |
ハッシュ化する際、より推測困難なハッシュ値にするために、ソルトを使ってデータ長を増やす。さらにハッシュ化する回数を増やす(ストレッチング)。
| 図 ソルト |
認証のながれ
データベースにはハッシュ化されたパスワードとハッシュ化する際に利用したソルトが格納されている。
認証の流れは下図のようになる。
| 図 認証処理のながれ |
次回は
バッファーオーバーフローのテストをします。