チャレンジレスポンス認証
チャレンジ/レスポンス認証とは、通信回線やネットワークを介して利用者の認証を行う際に、パスワードなどの秘密の情報を直接やり取りすることなく確認する方式の一つ。暗号学的ハッシュ関数の性質を利用して、パスワードそのものは回線に流さずにパスワードを知っていることを証明する。 チャレンジコード
一度しか使わない乱数
challenge_code
ハッシュ関数で計算してレスポンス(またはメッセージダイジェスト)をネットワーク経由でサーバに渡す
response = hash(challenge_code, password)
チャレンジレスポンス認証では以下の攻撃を防ぐことができる
通信経路上はハッシュ値しか流れないため
手順
1. 利用者がサーバにアクセスを要求する
2. サーバ側でチャレンジコード(乱数値)を作成し、利用者(クライアント)側に送る
3. チャレンジコードを受け取った利用者側は、入力したパスワードとチャレンジを使ってレスポンスを生成し、サーバ側へ「レスポンスA」を送る
レスポンスはハッシュ関数を使って生成する
4. サーバ側でもデータベースに格納されているパスワードとチャレンジを使って「レスポンスB」を生成する
5. サーバ側で「レスポンスA」と「レスポンスB」を照合する
6. 認証結果を利用者側に返す
7. 認証結果がOKだったら、サービスの利用が開始される
プロトコル
確認用
Q. チャレンジレスポンス認証とは
Q. チャレンジレスポンス認証はどういうメリットがあるか
Q. チャレンジレスポンス認証の手順
Q. チャレンジレスポンス認証はどういう攻撃を防ぐか
Q. チャレンジコードとは
参考
関連
メモ