令和5年度 情報処理安全確保支援士 午前Ⅱ 問1 パスワードのソルト

情報処理技術者試験

style_prompt 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

令和5年度 情報処理安全確保支援士 午前Ⅱ 問1 パスワードのソルト

本問はパスワードハッシュ化における「ソルト」の役割を問うている。レインボーテーブル攻撃への有効な対策原理を理解することが解法の核となる。

パスワードをハッシュ化して保存するときに,ソルトを用いる目的はどれか。

ア 同じパスワードに対して,利用者ごとに異なるハッシュ値が生成されるようにする。 イ ハッシュ値から元のパスワードを復元できるようにする。 ウ パスワードの長さを擬似的に長くして,総当たり攻撃にかかる時間を短縮する。 エ 利用者がパスワードを忘れたときに,管理者がパスワードを教えられるようにする。

【解説】

ソルト(Salt)とは、パスワードをハッシュ化する際、パスワード文字列の前後に追加する任意のデータのことです。

ハッシュ関数は同一の入力に対して常に同一の出力を返す(決定的である)性質があります。そのため、複数のユーザーが同じパスワード(例: “password123″)を使用している場合、ソルトなしではデータベース上のハッシュ値もすべて同一になります。

$$ H = \text{hash}(\text{password} + \text{salt}) $$

ソルトを使用することで、以下のプロセスが実現されます。

graph TD
    UserP["ユーザーのパスワード"] --> Combine["結合"]
    Salt["一意のソルト"] --> Combine
    Combine --> HashFunc["ハッシュ関数"]
    HashFunc --> StoredHash["固有のハッシュ値"]
    style StoredHash fill:#f9f,stroke:#333,stroke-width:2px

これにより、攻撃者が事前に計算した「パスワードとハッシュ値の対応表(レインボーテーブル)」を利用した攻撃を無効化、あるいは困難にさせます。

【選択肢の吟味】

選択肢 判定 解説
ア 正解 利用者ごとに異なるソルトを付与することで、同一パスワードでもハッシュ値を分散させ、レインボーテーブル攻撃を防ぐ。
イ 誤り ハッシュ関数は不可逆性を持ち、ソルトの有無にかかわらず復元は困難である。復元が必要な場合は暗号化を用いるべきである。
ウ 誤り 総当たり攻撃の時間を「短縮」させることは攻撃者にとってのメリットであり、セキュリティ対策の目的ではない。
エ 誤り ソルトを用いてもハッシュ化の不可逆性は維持されるため、管理者が元のパスワードを知ることはできない。

【ポイント】

  • レインボーテーブル対策: 事前計算済みのハッシュリストの有効性を失わせる。

  • 一意性の確保: 同一パスワードの利用者間でも、生成されるハッシュ値を異なるものにする。

  • 不可逆性の維持: ソルトはパスワードの復元を可能にするためのものではない。

文書情報

記事タイトル
令和5年度 情報処理安全確保支援士 午前Ⅱ 問1 パスワードのソルト
作成日
更新日
Source URL
https://papanda925.com/?p=6566

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました