チャレンジ・レスポンス認証とパスフレーズ
チャレンジ・レスポンス認証
リモートホスト側にユーザーの秘密鍵に対応する公開鍵が正しく登録されているとする. このとき,次のような仕組みで,ユーザーの正当性を確認することができる.リモートホストは,公開鍵に対応する秘密鍵があれば,簡単に回答できる問題(チャレンジ)を生成する. ユーザーがこのチャレンジに正しく回答(レスポンス)できれば,正当なユーザーであると認証する.
- ユーザーがリモートホストへ認証リクエスト.
- リモートホストは,ランダムな情報を生成(A).
- 生成された情報を,登録された公開鍵で暗号化.
- 暗号文をユーザーへ送信.
- ユーザーは秘密鍵を使って,暗号文を復号.
- 復号した情報をリモートホストへ送る.
- 送られた情報が,もともと生成された情報(A)と等しければ,ユーザーの正当性が確かめられ,認証が行われる.
このとき,問題(チャレンジ)は一回限りで,毎回異なることにより,安全性が高まる. また,RSAの基礎と仕組みで説明した通り,ランダムな情報に基づくことでも安全性が高まる.
ところで,上記手続きには,パスワードやパスフレーズといったものが出てこない.つまり,このような認証方式を採用することにより,パスワードやパスフレーズといった情報を一切,ネットに流すことなく認証することが可能となる.
パスフレーズ
上記のチャレンジ・レスポンス認証では,パスワードやパスフレーズが使われないことが確認できた. それでは,SSHなどの認証の際に入力している「パスフレーズ」はなんのために使われるのであろうか.まず,秘密鍵はローカルに暗号化されて,保存されている.その暗号化された秘密鍵を,復号するためにパスフレーズが使われている.
改めて認証の手続きを確認してみましょう.