複数のアプリケーションサーバーと複数のクライアントを備えたシステムの場合、相互認証と、TLSによって提供されるその他のセキュリティ保護を紹介したいと思います。
サーバーとクライアントは、同じネットワーク上だけでなく、異なるネットワーク上に配置されている場合があります。
各エンティティ(クライアントまたはサーバー)には、秘密鍵と公開鍵のペアを格納する独自の鍵ストアと、公開鍵をラップするX.509証明書があります。ただし、この時点で、証明書は自己署名されています。したがって、他の通信エンティティによって検証されることはありません。いくつかの調査の後、私はいくつかの解決策を見てきました:
- 証明書に署名するプライベートCAを作成します。私がよく理解している場合は、CAの証明書を使用して他のエンティティの証明書を検証できるように、CAの証明書が各エンティティのトラストストアに存在する必要があります。
- 最初のソリューションとしてプライベートCAを作成します。ただし、プライベートCAの証明書は、商用CA(Verisignなど)によって署名されています。以前のソリューションに何が追加されるのかわかりません。
- 商用CAによる各エンティティの証明書への署名。しかし、このソリューションは高価なようです。
- 自己署名証明書のみの使用。各エンティティの証明書は自己署名されており、通信する各エンティティのトラストストアに追加する必要があります。
これは、セキュリティに関する私の最初の経験です。有効と思われるソリューションのうち、どれをお勧めしますか?
ありがとう