検索
ニュース

え? 同じIDで登録できる? コンビニ証明書で話題「同時処理」の危険性“典型的やられサイト”で学ぶセキュリティのワナ(3/4 ページ)

ネット上で商売するのが当たり前な時代。インシデントが発生すれば失うものは計り知れない。本連載では脆弱性診断実習用のWebアプリ「BadTodo」を題材に、ストーリー形式でWebアプリ制作に潜む“ワナ”について学んでいく。

Share
Tweet
LINE
Hatena

上野 で、もう一つはパスワードの保存方法だね。荒井君はパスワードの文字列をそのままデータベースに登録するように組んでいるね。

荒井 ……さすがに問題ありますかね?

上野 これが今回の最大のポイントだね。パスワードはハッシュ化したい。

荒井 ハッシュ化、知らない単語ですね。

上野 暗号化と似てはいるんだけど、ハッシュ化では「ハッシュ関数」を使って、パスワードを別の文字列に変換するんだ。これを「ハッシュ値」というんだけど、ハッシュ値からパスワードは基本導き出せないようになってる。暗号化だと暗号からパスワードに戻せるんだよね。

photo
「PASSWORD」をハッシュ化するとこうなる

荒井 暗号化は可逆変換で、ハッシュ化は不可逆変換なんですね。でもそれってパスワードを忘れたときに不便じゃないですか? ユーザーから「パスワードを忘れた」って問い合わせられても答えられませんよね。

上野 確かに、現実的な問題で、クライアントからのパスワード関係の問い合わせに答えやすいように平文で保存するケースは見たことあるけど、セキュリティの観点では推奨できない。一般的には、パスワードを忘れた人にパスワードの再設定をお願いすることになる。多少不便でもね。

 逆に他のWebサイトでパスワードを忘れて問い合わせたときに、パスワードがそのまま送られてきたら、おそらく平文か暗号化した状態で保存していると推測できるわけだ。それがデータベース丸ごと漏えいしたら……どうなるかは想像つくよね。

荒井 ニュースになっちゃう……。これはなかなか難しいですね。

上野 まぁね。これは勉強するしかないね。どういう問題が発生するかって経験を積む中で分かってくる部分もあるし、そもそもプログラミングの勉強っていうよりセキュリティの勉強が必要になるしね。細かいところは資料のURLを送るから、それを見ながら修正してみて。

荒井 分かりました。やってみます。

──しばらくして……

上野 じゃあ修正ポイントをチェックしていこうか。

荒井 ハイ! パスワードはハッシュ化して、IDの衝突をチェックして──勉強になりました。

荒井 じゃあ、次回は認可について勉強していこうか。今日はお疲れさま。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る