SC Workbook
科目 A-2 · セキュリティ

保存済みハッシュ値の読解

ある Web アプリケーションの旧システムでは,利用者のパスワードを SHA-256 で変換したハッシュ値(16 進表記)を利用者表に保存している。利用者表の一部は次のとおりであった。この表について述べたものとして,適切なものはどれか。

user_id  password_hash
alice    b56a1d6e76eae78dea550da30f7b298087d0108d016b844e0b555f6517b1cdaa
bob      76d7c4b2d4dd90d3484032dbbe3b4ee520854c26efcc47aeb5e5cd9974bdb1cf
carol    c564887ad487e61ed61bdec10224263dffbf3ceddf3eddfaf0b18bcf10c381cd
dave     c564887ad487e61ed61bdec10224263dffbf3ceddf3eddfaf0b18bcf10c381cd
  1. アcarol と dave の値の一致は,異なるパスワードから同じハッシュ値が得られる衝突によるものと考えられ,2 人のパスワードは異なる可能性が高い。
  2. イ全利用者に共通の秘密値(ペッパー)を組み合わせて計算し直せば,同じパスワードを使う利用者どうしでも値が異なるようになり,この一致は解消できる。
  3. ウcarol と dave の値の一致から,利用者ごとのソルトを付けずに計算していると分かる。事前計算した表による解析も全員の値に一度に適用できる。
  4. エSHA-256 は一方向性をもつので,この表が漏えいしても,攻撃者が推測したパスワードのハッシュ値と照合してパスワードを特定することはできない。
正解と解説を見る

正解 ウ

この問題の基礎知識

  • 暗号学的ハッシュ関数は,同じ入力からは常に同じ値を出力する。ハッシュ値から入力を求めることや,同じ値になる異なる二つの入力を見つけること(衝突の発見)が計算量的に困難になるよう設計されている。
  • ソルトは利用者ごとに異なる値で,パスワードと組み合わせてハッシュ化し,ハッシュ値と一緒に保存する。ペッパーは全パスワードに共通の秘密値で,データベースとは別の場所に保管する。
  • 保存値が漏えいすると,攻撃者は候補のパスワードをハッシュ化して保存値と照合する攻撃をオフラインで試せる。レインボーテーブルは,この計算を事前に済ませた表を使って効率化する手法である。
アcarol と dave の値の一致は,異なるパスワードから同じハッシュ値が得られる衝突によるものと考えられ,2 人のパスワードは異なる可能性が高い。

SHA-256 は,同じハッシュ値となる二つの異なる入力を見つけることが計算量的に困難になるよう設計されている。値が完全に一致していれば,ハッシュ関数への入力が同じ,つまり 2 人が同じパスワードを使っていると考えるのが妥当である。

イ全利用者に共通の秘密値(ペッパー)を組み合わせて計算し直せば,同じパスワードを使う利用者どうしでも値が異なるようになり,この一致は解消できる。

ペッパーは利用者ごとに異なるソルトとは違い,保存する全パスワードで共通の値である。同じパスワードに同じペッパーを組み合わせれば値は同じになるので,一致は解消しない。一致をなくすのは利用者ごとに異なるソルトである。

ウcarol と dave の値の一致から,利用者ごとのソルトを付けずに計算していると分かる。事前計算した表による解析も全員の値に一度に適用できる。正解

利用者ごとに異なるソルトを付けていれば,同じパスワードでも値は異なる。一致はソルトがないことを示し,攻撃者は解読せずに同じパスワードの利用者を特定でき,レインボーテーブルなどの事前計算や一度の計算結果を全員の値との照合に使える。

エSHA-256 は一方向性をもつので,この表が漏えいしても,攻撃者が推測したパスワードのハッシュ値と照合してパスワードを特定することはできない。

一方向性はハッシュ値から入力を逆算することを困難にするが,推測したパスワードを変換して保存値と比べる攻撃は防げない。SHA-256 は高速なため大量の推測を短時間で試せるので,パスワードの保存には Argon2id や bcrypt などの低速な方式が推奨される。

検証用の出典出典照合済み
OWASP Password Storage Cheat Sheet / NIST FIPS 180-4 Secure Hash Standard (SHS)
照合の根拠(8 件)

資料の 4 つの値はすべて 64 桁の 16 進数(256 ビット)で,carol と dave の値が完全に一致し,ほかの値は互いに異なることを確認した。

問題 ID A2-SEC-0528 · AI 作成のオリジナル問題 · 正解と各選択肢の根拠を出典の原文で確認しています。 照合日 2026-11-08

非公式の学習用アプリです(IPA とは関係ありません)。問題はすべて AI が作成したオリジナルで、誤りを含む場合があります。