SSHキーを使用して、未知の/侵害されたサーバーにログインするのは危険ではありませんか?


9

たとえば、公開SSHキーであるid_rsa.pubを誰かに提供し、そのキーを侵害されたサーバーにインストールすると、ログインを求められます。

ログインプロセスでは、秘密キーが侵入先のサーバーに送信されますか?

はいの場合、攻撃者は私の秘密のSSHキーにアクセスできるようになりました。これは恐ろしいことです。

いいえの場合、ssh -vvvの出力にこの行が表示されるのはなぜですか。

debug1: Server accepts key: pkalg ssh-rsa blen 277

これは、秘密鍵がサーバーに送信され、それが受け入れられたことを意味します。

私は問題を誤解していますか?

回答:


11

あなたはプロセスを誤解しています。

鍵は送信されず、一致する秘密鍵でのみ復号化できる公開鍵で何かを暗号化することにより、「チャレンジ」が構築されます。

パスワードの入力を求められた場合、または侵害されたサーバーにX転送を行った場合は、潜在的なセキュリティリスクがあります。


ありがとう。sshもこのメッセージdebug1: Offering RSA public key: <$HOME>/.ssh/id_rsaを出力するため、id_rsa.pubがすでに共有されている場合でも、秘密鍵が共有されていると考えられます。
Gurjeet Singh

公開鍵はよく公開されています。あなたはそれを誰にでも与えることができます。それは彼らにメッセージを暗号化する能力を与えます。秘密鍵は、メッセージを復号化するためのものです。秘密鍵を自分自身に保持している限り、大丈夫です。
ピート

7

いいえ、あなたの秘密鍵は決して​​「送信」または送信されません。

公開鍵暗号化は、従来のユーザー名/パスワード認証とは異なります。

  • あなたの公開鍵はそれだけです-公開です。それを共有することは完全に安全です。公開鍵を誰かに送信すると、あなたの身元が漏えいする可能性があります(一意の番号であるため、他人に知られてしまう可能性があります)。SuperUserまたはWebページに通常のHTTPで公開鍵を投稿することもできます。それは完全に安全であり、誰かがあなたの秘密鍵を持っていなければ完全に役に立たない。

  • あなたの秘密鍵はそれだけです-秘密です。それはあなたが所有し信頼している(うまくいけば)システムにのみ存在し、格納されているシステムに誰かが物理的にアクセスした場合に備えて、最大限の安全のために常にロック解除パスワードで暗号化する必要があります。秘密鍵は、公開鍵暗号の規則に従って動作している適切に実装されたセキュリティプログラムによって送信されることはありません。つまり、侵害されて秘密鍵を読み取ることができるプログラムがローカルシステム上にない限り(そして秘密鍵はパスワードで暗号化されていない場合)、秘密鍵は常に安全です。

メッセージは、リモートサーバーに送信される前に、コンピューター上で秘密鍵で署名されます。したがって、秘密鍵をリモートサーバーに送信するのではなく、秘密鍵で暗号化されたメッセージ送信します。しかし、これら2つは同じではありません。署名されたメッセージから秘密鍵を派生させることはできません。それが公開鍵暗号の要点の一部です。

つまり、悪意のある攻撃者が公開鍵取得し、秘密鍵で署名されたメッセージ取得しても、実際の秘密鍵を取得することはできないため、資格情報を偽装したり、秘密鍵を使用して「君は"。


公開鍵のcrypoプロセスを理解しましたが、によって発行されたデバッグメッセージに混乱しましたssh。@ pjc50からの回答は、私が探していた保証を提供するようです。
Gurjeet Singh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.