How Bona! : Pythonで学ぶRSAを利用したユーザー認証

キーワード:Python,RSA, SSH,チャレンジ・レスポンス認証,公開鍵・秘密鍵

認証の手続きを確認



認証の手続き

  1. 準備
    1. RSAキーを作成する
    2. RSAキー(秘密鍵)をパスフレーズ付で暗号化し保存する
    3. 公開鍵を保存する
    4. 公開鍵をサーバーに送る

  2. 認証
    1. [ローカル] パスフレーズを使ってRSAキー(秘密鍵)を復号する.
    2. [ローカル→サーバー] 認証リクエストを送る.
    3. [サーバー] チャレンジ用のランダムコードを生成する.
    4. [サーバー] 生成されたランダムコードを公開鍵で暗号化し,チャレンジとする.
    5. [サーバー→ローカル] チャレンジを送る.
    6. [ローカル] チャレンジを秘密鍵を使って復号し,レスポンスとする.
    7. [ローカル→サーバー] レスポンスを送る.
    8. [サーバー] レスポンスとランダムコードを比較,等しければ,認証成功.
制限時間までにレスポンスが帰ってこなければ認証失敗.
チャレンジの1度だけで,毎回異なるチャレンジを生成する.


特徴

  • RSA技術により,公開鍵で暗号化,秘密鍵で復号が,簡便に可能.
  • RSA技術により,秘密鍵から公開鍵を作ることは困難.
  • ランダムコードをチャレンジに利用することにより,チャレンジから秘密鍵を生成することが困難.
  • チャレンジ・レスポンス認証により,通信を盗聴されても,破られにくい.
  • チャレンジ・レスポンス認証により,パスフレーズがネットに流れることがない.


pythonを使ったサンプルを作ってみる
QLOOKアクセス解析