情報セキュリティの基礎

Webサービスで利用者のパスワードを保存するとき、パスワードに利用者ごとに異なるランダムな値(ソルト)を加えてからハッシュ値を計算して保存する。ソルトを使う主な目的はどれか。

  1. Aハッシュ値からソルトを使って元のパスワードを復元できるようにし、パスワードを忘れた利用者に知らせられるようにする
  2. B同じパスワードを使う利用者がいても保存されるハッシュ値が異なるようにし、あらかじめ計算したハッシュ値の表を使った解読を難しくする
  3. Cハッシュ値を短くして、データベースの容量を節約する
答えと解説を見る

正解:B. 同じパスワードを使う利用者がいても保存されるハッシュ値が異なるようにし、あらかじめ計算したハッシュ値の表を使った解読を難しくする

パスワードは、そのまま保存せず、ハッシュ関数で計算したハッシュ値を保存するのが基本です。ログインのときは、入力されたパスワードのハッシュ値を計算して、保存された値と比べます。しかし、ハッシュ値だけを保存すると、同じパスワードの利用者は同じハッシュ値になり、よく使われるパスワードのハッシュ値をあらかじめ計算した表(レインボーテーブルなど)と照らし合わせるだけで、多くのパスワードが分かってしまいます。ソルトは、利用者ごとにランダムに作ってパスワードに加える値で、ハッシュ値と一緒に保存します。ソルトは秘密にする必要はありませんが、利用者ごとに値が違うので、同じパスワードでもハッシュ値が異なり、事前に計算した表が使えなくなります。攻撃者は利用者ごとに計算し直す必要があり、手間が大きく増えます。

  • A. ハッシュ関数は元に戻せないので、ソルトがあってもパスワードは復元できません。パスワードを忘れた利用者には、再設定の手続きをとってもらいます。
  • B. 正しい。利用者ごとにハッシュ値が変わり、事前に計算した表での解読が難しくなります。
  • C. ソルトを加えても、ハッシュ値の長さは変わりません。ソルトの分だけ保存するデータはむしろ増えます。
この分野を解く 分野ページへ

関連する計算ツール

情報セキュリティの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

情報セキュリティの基礎のほかの問題

  1. パスワードの保存に、SHA-256のような高速なハッシュ関数をそのまま使うのではなく、bcryptやArgon2のような、わざと計算に時間がかかるように設計された方式を使うことが推奨される理由として正しいものはどれか。
  2. 8文字のパスワードを、すべての候補を試す総当たりで探す。1秒あたり1×10^10個の候補を試せるとき、英小文字(26種類)だけで作ったパスワードと、英大文字・英小文字・数字(62種類)で作ったパスワードについて、すべての候補を試し終えるまでの時間の組み合わせとして最も近いものはどれか。
  3. AさんがBさんに送る文書にデジタル署名を付ける。署名の作成と検証に使う鍵と、デジタル署名によって確かめられることの組み合わせとして正しいものはどれか。
  4. メッセージ認証コード(MAC)とデジタル署名を比べたときの説明として正しいものはどれか。
  5. Webサーバのサーバ証明書に対応する秘密鍵が漏えいしたおそれがあることが分かった。証明書の有効期限はまだ残っている。運営者がとるべき対応として最も適切なものはどれか。