内部サーバー間のHTTP通信を保護するためのスキームを考え出そうとしています。
そこに確立されたスキームはありますか?私たちが持っている要件は次のとおりです。
私たちの現在の考えは、SSLを使用してすべての通信を保護することです。サーバーの証明書を検証するための証明書チェーンは、安全な帯域外通信を使用してクライアント(およびクライアントのみ)に配布されます。クライアントがサーバーと通信するときは常に、この証明書チェーンを使用するように固定されています。これにより、クライアントが正しいサーバーと通信していることが保証され、サーバー側で、半信頼クライアントのセットの1つと通信しているという緩やかな保証が得られます。
クライアントごとに公開鍵と秘密鍵のペアが生成されます。公開鍵はサーバーに保管されます(安全な帯域外通信を介して)。次のワークフローは、クライアントの認証に使用されます。
セッショントークンは、その後のすべてのリクエストで送信されます。セッショントークンは取り消される可能性があります。クライアントが危険にさらされている場合、その公開鍵をサーバーから削除し、そのクライアントに関連付けられているすべてのセッショントークンを取り消すことができます。
これを行うためのより良い方法はありますか?考慮していないことはありますか?
IPSecを使用して、安全なVLANを作成します。 HTTPSよりもパフォーマンスが良く、より安全です(ペイロードはプレーンテキストではなくなります)。独自のPKIインフラストラクチャを使用でき、いくつかのカスタムコードを使用して、strongswanをシステムに簡単に統合できます。接続のほぼすべての段階にフックを提供します。さらに、クライアント認証(マシン証明書)も取得できます。