チャレンジレスポンス認証
チャレンジレスポンス認証(Challenge-Reponse Authentication)
チャレンジ/レスポンス認証とは、通信回線やネットワークを介して利用者の認証を行う際に、パスワードなどの秘密の情報を直接やり取りすることなく確認する方式の一つ。暗号学的ハッシュ関数の性質を利用して、パスワードそのものは回線に流さずにパスワードを知っていることを証明する。
チャレンジコード
一度しか使わない乱数
challenge_code
ハッシュ関数で計算してレスポンス(またはメッセージダイジェスト)をネットワーク経由でサーバに渡す
response = hash(challenge_code, password)
チャレンジレスポンス認証では以下の攻撃を防ぐことができる
盗聴によるパスワードの漏えい
リプレイアタック
通信経路上はハッシュ値しか流れないため
手順
1. 利用者がサーバにアクセスを要求する
2. サーバ側でチャレンジコード(乱数値)を作成し、利用者(クライアント)側に送る
3. チャレンジコードを受け取った利用者側は、入力したパスワードとチャレンジを使ってレスポンスを生成し、サーバ側へ「レスポンスA」を送る
レスポンスはハッシュ関数を使って生成する
4. サーバ側でもデータベースに格納されているパスワードとチャレンジを使って「レスポンスB」を生成する
5. サーバ側で「レスポンスA」と「レスポンスB」を照合する
6. 認証結果を利用者側に返す
7. 認証結果がOKだったら、サービスの利用が開始される
プロトコル
PPP
CHAP
OCRAというOAuthを使用したチャレンジレスポンス認証アルゴリズムがある
RFC 6287 - OCRA: OATH Challenge-Response Algorithm
確認用
Q. チャレンジレスポンス認証とは
Q. チャレンジレスポンス認証はどういうメリットがあるか
Q. チャレンジレスポンス認証の手順
Q. チャレンジレスポンス認証はどういう攻撃を防ぐか
Q. チャレンジコードとは
参考
チャレンジレスポンス認証の仕組みと特徴を解説! - ITの学び
チャレンジ/レスポンス認証とは - 意味をわかりやすく - IT用語辞典 e-Words
チャレンジレスポンス方式
関連
ワンタイムパスワード
攻撃手法
パスワード認証方式
メモ
応用情報技術者令和4年春期問38 チャレンジレスポンス方式|応用情報技術者試験.com