Cloudflare ZeroTrust WARP の TLS Inspcetion と Terminationについて
Cloudflare WARPはCloudflareが提供しているクライアント用アプリです。DNSクエリの高速化や保護、ZeroTrust Network Accessを実現するCASBなどの機能が提供されます。
詳しくはこちらにまとめましたが、WARPというツールはDNSクエリのみを保護して高速化させる場合WARPと呼ばれ、IPベースのアプリケーションレイヤの通信も保護する場合ZeroTrustに名前が変わります。
TLS Inspection と Termination
ZeroTrustモードで使用した場合、TLS通信はInspectionされます。つまり通信の中身そのものが監査可能な状態になります。TLS暗号化をほどく謎技術があるわけではないので、Cloudflareのエッジで一度TLSがほどかれ、再度Cloudflareのエッジのエージェントが対象のアプリケーションとTLS通信を確立されます。
つまりTLS通信は一度Cloudflare側でTerminationされています。
この動作はあくまでデフォルトでそうなっているだけで、導入する人によって、それは嫌だという方もいらっしゃるはずです。Cloudflareでは大きく3つ方法を提供しています。
設定変更方法その1 Split Tunnels
Settings
→WARP Client
をクリックします。
Default
→edit
をクリックします。
Split Tunnels
のManage
をクリックします。
ここで管理対象のIPアドレスブロックを制限したり、逆に管理対象から特定IPアドレスブロックを除外したりできます。よくあるケースとしてはVoIP系のP2P通信を前提としたサービスはCloudflareネットワークを通さない方が遅延が少なくなるケースもあります。
設定変更方法その2 全体でオフ
TLS Terminationを全体でオフにすることが出来ます。Settings
→Network
をクリックます。
TLS decryption
のトグルをオフにします。
設定変更方法その3 ドメインや認証識別子単位でオフ
Gateway
→Firewall policies
→HTTP
をクリックします。
Add a policy
をクリックします。
以下の通り様々な条件を設定できます。
条件に合致した場合Do not inspection
を設定することで除外できます。
例えばTwitterの場合以下となりますが、
Facebookの場合以下とすることが出来ます。
パフォーマンス考慮点など
TLS Inspection/Termination導入の際にはテストが2つの観点から必要です。
1.パフォーマンス
2.アプリケーションアクセス
TLS Terminationは途中でTLSの復号と再暗号化を行うため、アプリケーションアクセス時のパフォーマンスが少し遅延します。体感的にもっさりする感じは受けます。
またWARP経由でアプリケーションへのアクセスの際に、アプリケーションが認識するIPアドレスはCloudflareのEdgeになります。(EdgeのIPを固定するオプションなどは弊社へ問い合わせください。)クライアントブラウザとアプリケーションの間で正しくクッキーなどをやり取りすることは勿論可能です。
Discussion