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

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

最終更新:
💡 今回の問いに答えられるかで、秘密情報の所持を確かめる

認証する側がチャレンジを送り、相手が秘密情報を使って作った応答を検証する方式。共有秘密を使うハッシュ計算や、秘密鍵による署名などがあり、毎回の要求に応答を結び付けて秘密情報をそのまま送らずに確認する。

📌 このページのポイント
共有秘密を使う方式の通信例 認証する側 共有秘密を持つ 認証される側 同じ秘密を持つ ① 新しいチャレンジ ② 秘密を使って 方式に従い計算 ③ 応答を返す ④ 期待する値と 照合して判定 秘密そのものは 通信上に送らない 新しい問いと正しい照合がリプレイ対策の条件
CHAPの考え方を簡略化した共有秘密の例。秘密鍵と公開鍵を使う署名方式は構成が異なる。
ひよこ ひよこ
パスワードを送らずにどう確かめるの?
ペンギン先生 ペンギン先生
認証する側が今回のチャレンジを出し、相手が秘密情報を使って応答を計算するよ。認証側はその応答を検証する。例えばCHAPは共有秘密とチャレンジを使う方式で、秘密そのものはリンク上に送らないんだ。
ひよこ ひよこ
どの方式もパスワードのハッシュを返すの?
ペンギン先生 ペンギン先生
そうとは限らないよ。WebAuthnでは認証器が秘密鍵を使って、チャレンジを含むデータに署名する。サービス側は登録した公開鍵で検証するので、双方が同じパスワードを持つ図だけでは説明できないんだ。
ひよこ ひよこ
傍受した応答は再利用できない?
ペンギン先生 ペンギン先生
チャレンジが新しく、認証側が今回の要求への正しい応答か照合することが大切だよ。同じ問いを再利用すれば、古い応答が使われる場合がある。CHAPの仕様もチャレンジの一意性と予測しにくさを求め、リアルタイムの通信中継を防げる方式ではないと説明している。
ひよこ ひよこ
この仕組みなら盗聴されても安心?
ペンギン先生 ペンギン先生
秘密をそのまま送らないことだけで、あらゆる攻撃を防ぐわけではないよ。推測されにくい秘密、適切な計算方式、通信相手や要求との結び付けなども必要。例えばCHAPの仕様も、総当たり攻撃に備えて推測しにくい秘密を求めているんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「チャレンジレスポンス認証」って出てきたら「今回の問いへの応答で、秘密情報を持つことを確かめる認証方式」と思えればだいたいOK!
📖 おまけ:英語の意味
「Challenge-Response Authentication」 = 問いかけと応答による認証
💬 challengeが認証側の問い、responseが相手の応答。問いを更新し、それに対応した応答か確かめることで、過去の応答の使い回しを防ぐ狙いがあるよ

参考資料

← 用語集にもどる