公開鍵認証
SSH
とかでよく使われる
認証
ユーザーが
秘密鍵
を使って作った
電子署名
で認証する
サーバー側が
公開鍵
を使って署名を
検証
署名には
鍵交換
の時点で共有されるセッションIDが混ぜ込まれることで、署名の流用を防ぐ
署名の流用を防いでいることから、公開鍵を使い回してもパスワードを使い回すようなリスクがほぼない
ref.
https://qiita.com/angel_p_57/items/2e3f3f8661de32a0d432
よくある"
Challenge & Response
"的な説明はほぼ間違い
サーバー側が暗号化したデータをクライアントが復号できたら〜みたいなことだが、それだと任意のデータに署名させることが可能になってしまう
けどなぜかやたらとこの説明が多い
SSHv1で多少近いことはやっていた