1月11日(火)1、2コマ目

今日の予習

パスワードのハッシュ化

パスワードは平文のままでDBに保存すると、漏洩した際に被害が大きい。もし漏洩しても推測困難にするためにハッシュ化して保存するのが一般的。

ハッシュ化するためのPasswordUtilクラスをあげておきます。

PasswordUtil.java


今日、やったこと

パスワードのハッシュ化

今日のホワイトボード

今まで、認証に使うパスワードをデータベースに平文で保存していました。が、データベースが漏洩した場合、パスワード情報も漏洩します。データベースが漏洩してもパスワードはすぐにはわからないようにするためにハッシュ化して保存するのが一般的です。


ユーザー認証

認証に使える情報は「本人しか持っていないモノ」、「本人しか知らないモノ」。

これらの情報が漏洩すると認証システムの崩壊になる。

図 認証に使う情報

今までは便宜上データベースにはパスワードを平文で保存していた。
が、これは危険なため、ハッシュ化して保存する。
図 今までのダメなところ

ハッシュ化

元データをハッシュ関数を使ってハッシュ値を求める。
暗号化と異なるのは不可逆性。
ハッシュ値を元データに戻すことは困難。暗号文を元データに戻すことは可能。
図 ハッシュ化

ソルト

ハッシュ化する際、より推測困難なハッシュ値にするために、ソルトを使ってデータ長を増やす。さらにハッシュ化する回数を増やす(ストレッチング)。
図 ソルト

認証のながれ

データベースにはハッシュ化されたパスワードとハッシュ化する際に利用したソルトが格納されている。
認証の流れは下図のようになる。
図 認証処理のながれ

次回は

バッファーオーバーフローのテストをします。





 

このブログの人気の投稿

1月20日(木)3、4コマ目

1月6日(木)3、4コマ目

1月13日(木)3、4コマ目