たぶん、小さな問題で私を助けることができます。
サーバー間の接続にIPSecまたはTLSを推奨しますか?私の最終論文で決定を論じるには2つまたは3つの議論が必要ですが、残念ながら除外の基準が見つかりませんでした。私の論文でのIPSecとTLSの反映はごく一部に過ぎないため、TLSまたはIPSecを選択する主な理由は1つまたは2つで十分です。 IPSec内で可能な圧縮がこれらの主な理由の1つであると思いますか?
シナリオのより完全な説明:
ユーザーがポータルにログインしてサービスを利用したいと考えています。ポータルバックエンドは、ポータル自体、登録機関、ユーザー管理、アクセス制御機関などで構成されています。これらのバックエンド接続を保護するには、TLSまたはIPSecを選択する必要がありますか?提供されるサービスはバックエンド内に配置する必要はありませんが、信頼性が高く、ポータルにのみ接続されます。保護したい接続のリストを次に示します。
サービス(外部サービスの可能性があります)----ポータル
登録機関----ユーザー管理
ポータル----ユーザー管理
ユーザーサーバー接続の場合は既に決定しましたが、この決定に使用した理由はサーバー間接続では機能しません。
よろしくお願いします!
シナリオの画像:
(赤=問題のある接続)
(実際、モデルははるかに大きいです。認証、ストレージメカニズム、ストレージアクセス、アクセス制御、可能なアーキテクチャを含むソフトウェアアーキテクチャなどの他のメカニズムも扱っているため、接続の保護は部分的な側面にすぎません。 )
IPsec には2つの主な使用モードがあります:[〜#〜] ah [〜#〜]と[〜#〜] esp [〜#〜]。 [〜#〜] ah [〜#〜]は認証専用なので、ESPの間のトンネルについて話していると思います2つのサーバー。すべてのIPパケットが暗号化および認証されます。これには、ソースポートやターゲットポートなどのヘッダーの詳細が含まれます。IPsecで使用できる暗号化およびMACアルゴリズムがいくつかあります。AES(CBCモード、128ビットキー)およびHMAC/SHA-1(96ビットに切り捨て)は問題なく、 MUST-implement なので、準拠するIPsec実装はすべてサポートする必要があります。
この「トンネリング」の部分では、IPsecが正しく機能し、TLSも機能します(TLS 1.1または1.2、CBCモードのブロック暗号でのIV選択を想定)。実際、IPsecはMAC-then-encryptではなく、encrypt-then-MACを使用するため、TLSよりも「より正確」であると見なすことができます( this を参照)。ただし、適切に実装されたTLS 1.1または1.2も問題ありません。実際の違いは他のレベルで発生します:
データを暗号化および復号化するには、2つのサーバーが最初に共有シークレットについて合意する必要があります。これがTLSのhandshakeの意味です。 IPsecでこれに相当するものは [〜#〜] ike [〜#〜] です。 X.509証明書 に依存したい場合があります。または、両方のサーバーで手動で構成された「共有キー」にある可能性があります。 TLSとIPsecの両方が両方をサポートしますが、いずれかの固有の実装により、1つのオプションが他のオプションよりも簡単または複雑になる場合があります。
IPsecはOSレベルで機能します。アプリケーションソフトウェアは、IPsecの存在をawareする必要はありません。これはある場合には素晴らしいですが、他の場合にはそれほど優れていません。一方で、アプリケーション開発中に想定されていなかったとしても、一部のレガシーアプリケーションをIPsecで「保護」することができます。アプリケーション開発者が考えたことに制約されることなくセキュリティ管理を行うことができます(たとえば、X.509証明書を使用する場合、失効チェックを強制できますが、TLSを使用するアプリケーションはCRLをサポートしないライブラリを使用する場合があります) 。一方、IPsecでは、アプリケーションはセキュリティに固有のアプリケーション固有の処理を実行できません。たとえば、サーバーは、他のどのサーバーと通信しているかに応じて、セキュリティ管理を変更することはできません。
TLSは通常、適用的に使用されますが、2つのサーバー間でOSレベル [〜#〜] vpn [〜#〜] の構築ブロックとして使用することもできます。これは基本的に、TLSをIPsecのように使用することを意味します。
IPsecはOSレベルであり、その操作はOSレベルのネットワーク構成をいじることを意味しますが、TLSは通常、アプリケーションレベルで維持できます。大きな組織では、ネットワークの人々とアプリケーションの人々は別々の世界に住んでいる傾向があります(そして、悲しいことに、多くの場合互いに戦っています)。すべてをアプリケーションレイヤーに保持すると、組織上の理由により、展開と管理が容易になる場合があります。
要約:状況によって異なります。非協調型アプリケーション(他のサーバーへの接続に対するあらゆる種類の保護をネイティブでサポートしていないアプリケーションなど)に適用する場合は、IPsecを使用します。 OSレベルの構成を抽象化する場合は、TLSを使用します。 TLSを使用したいがOSレベルで使用したい場合は、TLSを利用したVPNを使用してください。
TLSのどの実装を考えましたか?スタンネル? IPsecとStunnelは同等のセキュリティを提供しますが、Stunnelのセットアップははるかに簡単です。 IPsecは学習曲線が急ですが、両側でSELinuxと併用した場合のラベル付きネットワークの聖杯など、より多くの機能を提供します。