Transport Layer Security(TLS)で暗号化されたウェブ トラフィックは、すべてのウェブ トラフィックの大部分を占めています。脅威の行為者は、これらの暗号化されたチャネルを使用して悪意のある攻撃を開始できます。したがって、TLS で暗号化されたトラフィックを宛先に転送する前に確認することが重要です。
Secure Web Proxy には、TLS トラフィックを傍受し、暗号化されたリクエストを検査し、セキュリティ ポリシーを適用できる TLS 検査サービスが用意されています。
実装されたセキュリティ ルールと TLS インスペクションの構成に基づいて、Secure Web Proxy ソリューションは、クライアントと外部サーバーの 2 つの安全な接続を確立します。次に、Secure Web Proxy ソリューションで、2 つの安全な接続間のトラフィックを検査します。検証が正常に完了すると、暗号化されていないトラフィックに適用するフィルタリングとセキュリティ管理を、暗号化されたトラフィックに適用できます。
TLS インスペクションでの認証局の役割
Secure Web Proxy で TLS 接続を検査する必要があるかどうかを判断するには、個々のセキュリティ ポリシー ルールで tls_inspection_enabled
フラグを確認します。フラグが設定され、TLS 接続が検出されると、Secure Web Proxy は新しいサーバー証明書を生成します。この証明書は、下位認証局(CA)プールによって署名されるように Certificate Authority Service(CAS)に送信されます。この証明書がクライアントに提示され、TLS 接続が確立されます。生成された証明書は、同じホストへの後続の接続で使用するために、しばらくの間キャッシュに保存されます。
TLS トラフィックを検査するには、クライアントが接続しようとしているホストのサーバー証明書を生成する必要があります。このサーバー証明書には、組織で管理するプライベート CA が署名する必要があります。生成されたサーバー証明書を信頼するのは、このプライベート CA を信頼するように構成されたクライアントのみです。これには、ブラウザや埋め込み HTTP クライアントが含まれます。そのため、TLS インスペクションは、組織が管理しているクライアントからの TLS 接続をインターセプトして検査する場合にのみ使用できます。
組織が管理しているマシンであっても、すべての TLS 接続を正常にインターセプトできるわけではありません。これは、一部のクライアント(特に他のアプリケーション内に埋め込まれたクライアント)は、特定のサーバー証明書または特定の CA によって署名されたクライアントのみを受け入れるようにハードコードされているためです(証明書の固定と呼ばれる手法)。Microsoft Windows、macOS、Google Chrome のソフトウェア アップデートなどがこれに該当します。このような接続は、TLS インスペクションが存在すると失敗します。これは、Secure Web Proxy がクライアントに提示するサーバー証明書の公開鍵と CA チェーンが、ローカルに保存されているパラメータと一致しないためです。
TLS トラフィックを検査するようにルールが構成されているものの、Secure Web Proxy が提供する検査証明書をクライアントが信頼していない場合、接続は失敗します。このような場合、TLS インスペクションは、サーバーが信頼できる場合でもクライアント / サーバー接続を破壊することが知られています。この状況を回避するには、特定の条件で TLS インスペクションをバイパスするルールを追加します。TLS 検査を特定の宛先ホスト(FQDN を使用)、送信元(セキュアタグ、サービス アカウント、または IP アドレスを使用)またはルールのSessionMatcher
属性を使用することによって制限することもできます。
サポートされている機能
Secure Web Proxy の TLS 検査は、次の機能をサポートしています。
- プライベート CA 用の高可用性でスケーラブルなリポジトリである CAS との緊密な統合。
- 必要に応じて独自のルート オブ トラストを使用できる。既存のルート CA を使用して、CAS が保持する下位 CA に署名することもできます。必要に応じて、CAS 内で新しいルート証明書を生成できます。
- Secure Web Proxy のポリシールール内で
SessionMatcher
を使用してきめ細かい復号基準。この条件には、URL リスト、正規表現、IP アドレス範囲、同様の式に存在する一致するホストが含まれます。必要に応じて、条件をブール式と組み合わせることができます。 - 各 Secure Web Proxy ポリシーは、独自の TLS 検査ポリシーと CA プールを使用して構成できます。また、複数の Secure Web Proxy ポリシーで 1 つの TLS 検査ポリシーを共有することもできます。
一般的なユースケース
TLS インスペクションを有効にするには、次のいずれかの方法を使用します。
既存のルート CA を使用して、CAS 内に保持されている下位 CA に署名します。CAS 内に保持されている下位 CA は、ランタイムで生成されたサーバー証明書の署名に使用されます。
外部(CAS 内ではない)に保持されている既存のルート CA を使用して、下位 CA に署名します。下位 CA がルート CA によって署名されている場合は、それを使用して実行時に生成されたサーバー証明書に署名できます。
CAS 内で生成されたルート証明書を使用します。ルート証明書を作成したら、新しいルート CA によって署名された下位 CA を作成します。この下位 CA は、実行時に生成されたサーバー証明書の署名に使用されます。
これらの方法の詳細については、下位 CA プールを作成するをご覧ください。