1月9日(火)1、2コマ目
今日、やったこと
パスワードのハッシュ化
今日のホワイトボード
ユーザー認証
ユーザー認証はパスワードが使われるケースが多いが、パスワード以外にもユーザー認証に使えるモノがある。
|
| 図 認証に使えるモノ |
ポイントは「本人しか」。
パスワードの取り扱い
今までは便宜上DBにパスワードを平文で保存していた。が、これは一般的にはありえない話。本来はDB上のデータが漏洩しても即セキュリティインシデントにつながらないようにしなければならない。
|
| 図 パスワードの取り扱い |
一般的にはパスワードをハッシュ化してDBに保存する。
ハッシュ化
ハッシュ化と暗号化は同じように元の平文が推測しずらい点では一緒。暗号化は元の平文に複合できるが、ハッシュ化された文字列を元の平文に戻すことはできない。
厳密に言えば、できないわけではないが、総当たり攻撃や辞書攻撃になるため、かなり長い時間がかかる。
|
| 図 ハッシュ化 |
ハッシュ化ソースコード
PasswordUtil.java
文字列+ソルトをアルゴリズムSHA256で10,000回ハッシュ化してハッシュ値を生成する。
Main.java
PasswordUtilクラスを使ってパスワード+ソルトのハッシュ値を生成させる。
ソルトは実行時の現在時刻のナノ秒部を利用。





