sshについて調べている過程で、
公開鍵認証についての理解が曖昧な事に気がついたので、
改めて調べてみたことをまとめる。
公開鍵認証とは
秘密鍵の所有者しか正しい署名が作れないことを利用し、
署名の正しさを公開鍵で検証することでユーザー認証を行う方法。
署名とは、そのデータの内容に関する承認の意志を示すもの。
署名者が後から否認することを防止するための証拠となる。
公開鍵
署名を検証するために必要となる鍵。
公開鍵は通信相手に予め共有して登録しておく必要がある。
現実世界では、銀行に予め届け出ている印影に相当する。
秘密鍵
署名を行うために必要となる鍵。
秘密鍵は自身で保管し、外部に漏らしてはならない。
現実世界での印鑑に相当する。
公開鍵認証の手順
大まかな手順は以下の通り。
- 秘密鍵を使用して署名を作成する(この時公開鍵を署名に同封する?)
- 署名を相手に送付する
- 公開鍵を使用して署名が正しいことを検証する
勘違いしていたこと
今まで、公開鍵認証は公開鍵で暗号化したデータを送り、
秘密鍵で暗号化されたデータを復号して暗号化前のデータと一致するかどうかで
認証する方式だと理解していたが、それは誤りであることがわかった。
公開鍵認証で使用する公開鍵・秘密鍵は電子署名に用いる鍵であって、
暗号化・複合化に用いる鍵ではない。
参考にしたサイト