初級では「すりつぶし」「会員証」というたとえで流れを追いました。ここでは同じ旅を実際の技術の名前で追い直します。読み終わる頃には、「〇〇社から流出、パスワードはハッシュ化済み」というニュースを自分で評価できるようになっているはずです。
用語には「※1・※2…」と番号を付けて、各セクション末尾の「登場人物メモ」で説明します。
初級では「すりつぶし」「会員証」というたとえで流れを追いました。ここでは同じ旅を実際の技術の名前で追い直します。読み終わる頃には、「〇〇社から流出、パスワードはハッシュ化済み」というニュースを自分で評価できるようになっているはずです。
用語には「※1・※2…」と番号を付けて、各セクション末尾の「登場人物メモ」で説明します。
🎬 アニメーション『ログインの裏側』の ② のところです!
入力したパスワードは、次の形でサイトへ届きます:
登場人物メモ(※の説明):
⚠️ イレギュラー(うまくいかないとき):
初級の「届ける」、中級の「経路の守りはTLS任せ」を、上級ではそもそも何を預けているのかから問い直します。
登場人物メモ(※の説明):
⚠️ イレギュラー(工夫の外側にある穴):
🎬 アニメーション『ログインの裏側』の ② のところです!
ログインボタンを押すと、IDとパスワードはインターネットを旅してサイトの受付へ向かいます。ここで大事なのは、鍵付きの道(アドレスバーの鍵マーク、httpsって言います)を通ることです。
⚠️ イレギュラー(うまくいかないとき):
🎬 アニメーション『ログインの裏側』の ③ のところです!
「すりつぶし」の正式名は暗号学的ハッシュ関数です。ただし、どのハッシュ関数でもいいわけではありません:
なぜ普通のハッシュ(SHA-256など)ではだめなのか——速すぎるからです。速いハッシュはGPUで秒間数十億回試せます。パスワード用の関数は、わざと遅く設計されていて(さらに scrypt / Argon2 はメモリも大量に要求する=メモリハード※3)、総当たりの効率を殺します。
登場人物メモ(※の説明):
⚠️ イレギュラー(ここが甘いと事故になる):
「すりつぶし」の正式名は暗号学的ハッシュ関数。上級では、その前後に足す2つの塩——ソルトとペッパー——の役割を厳密に分けます。
登場人物メモ(※の説明):
⚠️ イレギュラー(塩の使い方を誤ると):
🎬 アニメーション『ログインの裏側』の ③ のところです!
受付は届いたパスワードを、そのまま金庫にしまいません。まずすりつぶします(ハッシュ化って言います)。
sakura2024」を専用のミキサーにかけるa91bc0...」のようなぐちゃぐちゃの文字列「戻せないのに、同じ入力なら同じ結果」——この不思議な性質のおかげで、生のパスワードをどこにも置かずに本人確認ができます。
⚠️ イレギュラー(ここが甘いサイトだと):
🎬 アニメーション『ログインの裏側』の ④〜⑤ のところです!
照合そのものは「ソルトを付けてハッシュ化→保存値と比較」だけですが、実戦はここが攻防の最前線です:
登場人物メモ(※の説明):
⚠️ イレギュラー(攻防の細部):
照合そのものは「入力にソルト(+ペッパー)を付けてKDFにかけ、保存値と比べる」だけ。ですが上級では、比べ方にも攻防が潜みます。
登場人物メモ(※の説明):
⚠️ イレギュラー(列挙は時間からも漏れる):
🎬 アニメーション『ログインの裏側』の ④〜⑤ のところです!
受付は、すりつぶした結果を金庫のものと見比べます。
失敗したときに「どちらが違うか」を教えてくれないのは、不親切なのではなくわざとです。「このIDは存在します」と教えるだけで、攻撃者はそのIDを狙い撃ちできるようになるからです。
⚠️ イレギュラー(攻撃されるとき):
🎬 アニメーション『ログインの裏側』の ⑥ のところです!
「しばらく有効な会員証」の正式名はセッション※1 です:
さらに上の守りが2要素認証(2FA)※4——パスワード(知識)に加えて、スマホ(所持)などの2つ目を要求します。パスワードが漏れた後の最後の砦です。
登場人物メモ(※の説明):
⚠️ イレギュラー(会員証が狙われるとき):
本ユニットの内容は、このアプリ自身の実装方針でもあります: パスワードは scrypt でハッシュ化して保存 / セッションはDB管理(即時失効可能) / Cookie は HttpOnly + Secure + SameSite / ログイン失敗の応答は統一 / 認証系エンドポイントにレート制限。学んだ仕組みの実物の上で、いまあなたはログインしています。
まとめ——守りは4層です: 経路(TLS)/ 保存(ソルト+遅いハッシュ)/ 照合(回数制限と列挙防止)/ 会員証(セッション属性と2FA)。流出ニュースを見たら「どの層が破られたのか」を考える。それがこのユニットの読み方です。
🎬 アニメーション『ログインの裏側』の ⑥ のところです!
照合に成功すると、受付は「しばらく有効な会員証」をくれます(セッションって言います)。
順番に効き目が大きいのは、この3つです:
逆に、効き目が薄いのに疲れるのが「定期的な変更の強制」。最近は「漏れていないなら変えなくていい、そのかわり使い回すな」が主流の考え方です。
ここまでがログインの1〜2秒の裏側です。仕組み側は「生のパスワードをどこにも置かない」ことであなたを守り、あなた側は「使い回さない」ことで自分を守る——守りは両側で1セットです。
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. ハッシュ化の前に付け足す「ソルト」の目的として最も適切なものはどれ?
問2. 「不正アクセスがありましたが、パスワードはハッシュ化して保存していました」という発表の正しい読み方はどれ?
問3. パスワードが経路の途中で盗み見されないよう 通信全体を暗号化する層を 英字3文字で答えてください。
問4. パスワード保存に SHA-256 単体ではなく bcrypt / Argon2 が推奨される理由はどれ?
問5. クレデンシャルスタッフィング(パスワードリスト攻撃)への、利用者側の最も有効な対策はどれ?
問6. 2要素認証(2FA)が防いでくれるのは、次のうちどれ?
問7. セッションを入れるCookieに付ける「HttpOnly」と「Secure」の説明として正しいのはどれ?
問8. ログイン状態の実体で 推測不能な長いランダム値をCookieで渡してページ移動のたびに提示する仕組みを カタカナで何と呼ぶ?