🎃

Cloudflare ZeroTrust WARP の TLS Inspcetion と Terminationについて

2024/06/03に公開

Cloudflare WARPはCloudflareが提供しているクライアント用アプリです。DNSクエリの高速化や保護、ZeroTrust Network Accessを実現するCASBなどの機能が提供されます。

詳しくはこちらにまとめましたが、WARPというツールはDNSクエリのみを保護して高速化させる場合WARPと呼ばれ、IPベースのアプリケーションレイヤの通信も保護する場合ZeroTrustに名前が変わります。
https://zenn.dev/kameoncloud/articles/e912f856b54e17

TLS Inspection と Termination

ZeroTrustモードで使用した場合、TLS通信はInspectionされます。つまり通信の中身そのものが監査可能な状態になります。TLS暗号化をほどく謎技術があるわけではないので、Cloudflareのエッジで一度TLSがほどかれ、再度Cloudflareのエッジのエージェントが対象のアプリケーションとTLS通信を確立されます。

つまりTLS通信は一度Cloudflare側でTerminationされています。
この動作はあくまでデフォルトでそうなっているだけで、導入する人によって、それは嫌だという方もいらっしゃるはずです。Cloudflareでは大きく3つ方法を提供しています。

設定変更方法その1 Split Tunnels

SettingsWARP Clientをクリックします。

Defaulteditをクリックします。

Split TunnelsManageをクリックします。

ここで管理対象のIPアドレスブロックを制限したり、逆に管理対象から特定IPアドレスブロックを除外したりできます。よくあるケースとしてはVoIP系のP2P通信を前提としたサービスはCloudflareネットワークを通さない方が遅延が少なくなるケースもあります。

設定変更方法その2 全体でオフ

TLS Terminationを全体でオフにすることが出来ます。SettingsNetworkをクリックます。

TLS decryptionのトグルをオフにします。

設定変更方法その3 ドメインや認証識別子単位でオフ

GatewayFirewall policiesHTTPをクリックします。


Add a policyをクリックします。

以下の通り様々な条件を設定できます。


条件に合致した場合Do not inspectionを設定することで除外できます。

例えばTwitterの場合以下となりますが、

Facebookの場合以下とすることが出来ます。

パフォーマンス考慮点など

TLS Inspection/Termination導入の際にはテストが2つの観点から必要です。
1.パフォーマンス
2.アプリケーションアクセス

TLS Terminationは途中でTLSの復号と再暗号化を行うため、アプリケーションアクセス時のパフォーマンスが少し遅延します。体感的にもっさりする感じは受けます。
またWARP経由でアプリケーションへのアクセスの際に、アプリケーションが認識するIPアドレスはCloudflareのEdgeになります。(EdgeのIPを固定するオプションなどは弊社へ問い合わせください。)クライアントブラウザとアプリケーションの間で正しくクッキーなどをやり取りすることは勿論可能です。

Discussion