2016-07-09 14 views
0

私は多くのマシンに配布され、インストールされているアプリケーションを持っています。アプリケーションがインストールされ、他のマシンが中央マシンを要求できる他のマシンを要求できる中央マシンがあります。したがって、各インストールは、クライアントと同様にサーバーとしても機能します。私はssh公開鍵暗号を使ってアクセスを保護したい。sshハンドシェイクと認証に同じ公開鍵を使用できますか?

簡潔にするために、サーバーA(マネージャー - 最初にインストールされている)とサーバーBにアプリケーションがインストールされているとします。

のは、サーバBがインストールされたときに、サーバーAの公開鍵は、サーバBで利用できるようになりましょう

また、その際にサーバBへの最初の要求を行いますサーバーAを想定し、サーバーAは、サーバーBのを取得しますハンドシェイク中の公開鍵(指紋を検証することによって、鍵はサーバAに保存されます)、サーバAは公開鍵をサーバBに送信して認証を行います。サーバBは既にサーバAの公開鍵を持っているので、認証は成功するか?

サーバBがサーバAを要求したい場合、サーバAはハンドシェイク中にその公開鍵を送信し、サーバBのサーバAの公開鍵と照合されます。認証のために、サーバBは以前の要求ハンドシェイク(サーバAからサーバBへ)中にサーバAが取得した公開鍵と照合されます。

注目すべきは、関連するユーザーがいないことです。アプリケーションは、マシンのすべてのユーザーがアクセスできます。

私のクエリは、ハンドシェイクと認証のために別個の鍵が必要か、私は単一鍵で十分だと述べていますか?

また、上記のセキュリティモデルに特にセキュリティ関連の問題があることをお知らせください。

詳細情報が必要な場合はお知らせください。

おかげで、 ナガ

+0

私はauthorized_keysファイルとknown_hostsファイルの両方で同じ公開鍵を使用できますか? – Naga

+0

これを行うことで何を得ようとしていますか?ホストキーは、サーバー上の特定のファイルセットに格納されます。ユーザーキーは、クライアント上の特定のファイルセットに入ります。両方の目的で同じキーを使用しようとするとメリットはありません。鍵は高価ではなく、作成に時間がかかりません。 – Kenster

+0

こんにちはKenster、 ご意見ありがとうございます。キーは作成するのに高価ではありませんが、他のエンドと共有することはややこしいことです。 – Naga

答えて

0

はい。しかし、これはRFC4252のセクション9で説明されているようにHost-Based authenticationと呼ばれています。しかし、いくつかのセキュリティスレッドがあり、適切な(openssh)証明書を使用するほうが最近では(Kerberos)ははるかに意味があります。簡略化のため

+0

おかげさまでジャクエ。私は公開鍵の代わりに証明書(自己署名)の使用を検討しています。だから両方の証明書を生成し、他の側を共有します。処理以外の違いはありますか? – Naga

+0

自己署名することはできません。彼らは、検証側が信頼するいくつかの "認証局"(別の鍵)によって署名される必要があります。マニュアルページで、証明書を記述する 'ssh-keygen'やインターネット上のいくつかの[guide](https://blog.habets.se/2011/07/OpenSSH-certificates)を確認してください。 – Jakuje

+0

ただし、作成して自分のCAにすることができます。 –

関連する問題