質問

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

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

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

役に立ちましたか?

解決

は、以前の信頼、またはサイドチャネルを介した通信がなければ、それをする方法はありません。ディフィー・ヘルマンKEXは、接続に参加していない他の人に対して安全なチャネルを確立することができますが、あなたは、あなたが意図した受信者と通信していることを確認することはできません。

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

あなたが本当に意図したエンドポイントと通信していることを確認するためには、安全なチャネルを通じて事前またはホストの識別のいくつかの並べ替えを交換する必要があります。 SSHは、この「指紋」を使用しない - それはあなたがそのホストを信頼した場合の最初の接続にお願いします、そしてあなたは、独立したチャネルを介して指紋を検証することになっている。

他のヒント

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

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

ただし、これには事前に何かを行う必要がありました。

匿名ユーザーが接続して何らかのセキュリティを確保することを期待する場合、それは不可能です。

このような問題に関して私が非常に役立つと感じた記事の 1 つは、「悪魔のコンピュータのプログラミング」です。 http://www.cl.cam.ac.uk/~rja14/Papers/satan.pdf, 、信頼できないシステム管理者と安全な通信を行おうとしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top