認証の手続きを確認
認証の手続き
- 準備
- RSAキーを作成する
- RSAキー(秘密鍵)をパスフレーズ付で暗号化し保存する
- 公開鍵を保存する
- 公開鍵をサーバーに送る
- 認証
- [ローカル] パスフレーズを使ってRSAキー(秘密鍵)を復号する.
- [ローカル→サーバー] 認証リクエストを送る.
- [サーバー] チャレンジ用のランダムコードを生成する.
- [サーバー] 生成されたランダムコードを公開鍵で暗号化し,チャレンジとする.
- [サーバー→ローカル] チャレンジを送る.
- [ローカル] チャレンジを秘密鍵を使って復号し,レスポンスとする.
- [ローカル→サーバー] レスポンスを送る.
- [サーバー] レスポンスとランダムコードを比較,等しければ,認証成功.
チャレンジの1度だけで,毎回異なるチャレンジを生成する.
特徴
- RSA技術により,公開鍵で暗号化,秘密鍵で復号が,簡便に可能.
- RSA技術により,秘密鍵から公開鍵を作ることは困難.
- ランダムコードをチャレンジに利用することにより,チャレンジから秘密鍵を生成することが困難.
- チャレンジ・レスポンス認証により,通信を盗聴されても,破られにくい.
- チャレンジ・レスポンス認証により,パスフレーズがネットに流れることがない.
pythonを使ったサンプルを作ってみる