1

Botanユーティリティを使用して暗号化を実行しています。SSHを使用してリモートマシンへの接続を初期化すると、安全なSSH接続を介してキーを交換できます。ただし、接続を確立するためにinetdを使用することがあります。この場合、inetd接続にはセキュリティがありませんが、リモートマシンとキーを交換するために使用する必要があります。

これには、安全でないチャネルを介して公開鍵を送信し、リモートエンドがこれを使用して鍵を暗号化し、安全でないチャネルを介して返送するという標準があると思います。その後、復号化して鍵を取得できます。

Botanがサポートするこの種のプロトコルの例は何でしょうか?

4

2 に答える 2

4

以前の信頼、またはサイド チャネルを介したコミュニケーションがなければ、それを行う方法はありません。Diffie-Hellman kex を使用すると、接続に参加していない他のユーザーに対して安全なチャネルを確立できますが、意図した受信者と通信していることを確認することはできません。

従来のMITMの例: リモート エンドポイントに接続すると、エンドポイントが公開鍵を受け取り、その鍵で署名されたものを送信します。ただし、キーを実際の宛先に送信したかどうか、または応答が攻撃者からのものかどうかを確認する方法はありません。したがって、安全なトンネルがありますが、安全に通信している相手の情報はありません (攻撃者は意図した宛先に接続し、暗号化されていないトラフィックをプロキシすることさえあります)。

目的のエンドポイントと実際に通信していることを確認するには、事前に、または安全なチャネルを介して、何らかの種類のホスト ID を交換する必要があります。SSH は「フィンガープリント」を使用してこれを行います。最初の接続時に、そのホストを信頼するかどうかを尋ねられ、独立したチャネルを介してフィンガープリントを検証することになっています。

于 2010-11-21T17:35:06.277 に答える
2

同様の状況で私が行ったことは、最初に秘密鍵と公開鍵のペアを交換するように手配することでした。そのため、各クライアントの公開鍵を持っていたので、クライアントが私に接続したときに、タイムスタンプを持つメッセージが渡されました、それを解読できました。

それが過ぎて、タイムスタンプが有効であった場合 (私はタイムスタンプの有効期間として 5 秒を使用しました)、安全に通信する方法があったため、キーを交換します。

しかし、これには事前に何かをする必要がありました。

匿名ユーザーが接続し、不可能なセキュリティを確保することを期待している場合。

このような問題に関して非常に役立つ記事の 1 つは、*Programming Satan's Computer" ( http://www.cl.cam.ac.uk/~rja14/Papers/satan.pdf ) で、安全な通信を行おうとしています。信頼できないシステム管理者。

于 2010-11-21T17:43:17.613 に答える