SSH 公開鍵の整合性

SSH 公開鍵の整合性

非対称公開鍵暗号に関する私の理解(限られたものですが)は、公開鍵は全員と共有できるように設計されており、秘密鍵は非公開に保たれるというものです。

ローカル マシンの公開鍵をリモート Web サーバーに保存し、このサーバーに送信した暗号化された情報 (秘密鍵による) が、公開鍵を所有する別の当事者によって傍受されたとします。この場合、その当事者は暗号化された情報を復号化することもできないということではないでしょうか。

もしそうなら、これは公開鍵を一方の当事者(この場合はサーバー)とのみ共有する必要があることを意味しますが、これは公開鍵の目的に対する私の理解に反していますか? ローカル マシン上で、アプリケーションごとに異なるキー ペアを持つことはできますか?

答え1

秘密鍵で暗号化された情報をサーバーに送信することはありません。サーバーとの安全な接続を開くと、サーバー上のソフトウェアが新しい対称暗号化キーを生成し、それを公開鍵で暗号化して送信します。次に、秘密鍵で復号化し、その対称暗号化キーを使用してサーバーに送信するデータを作成します。セキュリティの側面とは別に、公開/秘密鍵暗号化は CPU を大量に消費するため、すべてのデータ転送に使用することはできません。通常は、他の暗号化キーの暗号化またはデジタル署名にのみ使用されます。

答え2

3つありますとても公開鍵システムで実行できるさまざまなこと:

  1. プライベート データの送信: この場合、自分の公開鍵ではなく、送信先の公開鍵を使用します。したがって、データは送信先の秘密鍵を使用してのみ復号化できます。

  2. 公開データに署名する: 秘密鍵で暗号化すると、誰でも(公開鍵で)復号して読むことができますが、知るそれを書いたのはあなたであり、変更されていないことを保証します。実際には、メッセージ全体が暗号化されるわけではなく、署名として使用されるチェックサムのみが暗号化されます。

  3. プライベートチャンネルを確立する:これはより複雑ですが、最も一般的な方法はDiffie-Hellman鍵交換プロトコルこの短いやり取りにより、2 つの当事者は共通の秘密を生成することができ、誰かが通信を傍受したとしても、秘密鍵の 1 つを持っていなければ、その共有秘密を取得することはできません。その後、共有秘密を使用して、残りの通信を暗号化します。

最初の2つのケースの説明は読んだと思いますが、あなたの質問(そしてマイク・スコットの回答)は3番目くらいだったようです。

答え3

公開鍵を使用して暗号化し、秘密鍵の所有者に送信して復号化することはできますが、公開鍵を使用して復号化することはできません。

1 台のマシンに複数の異なるキー ペアが存在する可能性があります。

答え4

SSH が公開鍵を使用する唯一の目的は、対応する秘密鍵の所有者の身元を確認することです。SSH 公開鍵で実行できる唯一のことは、連携する認証エージェントが対応する秘密鍵を保持しているかどうかを判断することです。

関連情報