【ちゃれんじれすぽんすにんしょう】

チャレンジレスポンス認証 とは?

💡 パスワードを「そのまま送らない」認証方式、毎回変わるクイズで答えを証明する
📌 このページのポイント
チャレンジ・レスポンス認証 サーバー (検証側) クライアント (秘密鍵を保持) ① ランダムなチャレンジ送信 乱数: A7F3B2E9... ② 秘密鍵で演算 Hash(チャレンジ + 秘密鍵) ③ レスポンス返送 応答: 5D8E1A... ④ サーバーで検証 同じ演算で比較 パスワード(秘密鍵)はネットワーク上に流れない 盗聴されてもチャレンジは毎回変わるためリプレイ攻撃も防止 秘密情報を直接送信せず安全に認証を行う方式
チャレンジ・レスポンス認証
ひよこ ひよこ

チャレンジレスポンスって何のためにあるの?

ペンギン先生 ペンギン先生

パスワードを直接送ると盗聴されるリスクがある。チャレンジレスポンスはパスワード本体は送らず「このランダム値とパスワードを組み合わせたハッシュを計算して」という問いに正しく答えられるかで認証する。

ひよこ ひよこ

傍受されても安全なの?

ペンギン先生 ペンギン先生

毎回異なるチャレンジ値が使われるから、傍受したレスポンスを次回使い回せない(リプレイ攻撃対策)。ただしチャレンジレスポンスだけでは中間者攻撃には弱いから、TLSなどと組み合わせるのが安全。

ひよこ ひよこ

CAPTCHAってチャレンジレスポンス?

ペンギン先生 ペンギン先生

そう、広義では。「歪んだ文字を読んで入力して」や「信号機の画像を選んで」が「チャレンジ」で、正しく答えられれば「人間だと認証(レスポンス)」という仕組みだから同じ考え方だよ。

ひよこ ひよこ

パスワード認証とチャレンジレスポンス認証って何が違うの?

ペンギン先生 ペンギン先生

パスワード認証はパスワードそのものをネットワークに流すから、盗聴されるとアウト。チャレンジレスポンスはパスワード自体を送らず、サーバーが毎回ランダムなチャレンジを出してクライアントがパスワードと組み合わせたハッシュを返すから、盗聴されても再利用できないんだ。Wi-FiのWPA2認証もこの仕組みを使っているよ。実はHTTPのDigest認証もチャレンジレスポンス方式だけど、現在ではTLSHTTPS)で通信路ごと暗号化するのが主流になったから、あまり使われなくなったんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
チャレンジレスポンス認証って出てきたら「パスワード本体は送らず、ハッシュ計算の答えで本人であることを証明する認証方式」と思えばOK!
📖 おまけ:英語の意味
「Challenge-Response Authentication」 = 問いかけ(チャレンジ)と応答(レスポンス)による認証
💬 毎回異なるチャレンジ値を使うことで「傍受した認証情報を使い回す(リプレイ攻撃)」を防止する
← 用語集にもどる