Cloudflare ZeroTrustをAndroidでまともに使う

Cloudflare ZeroTrustをAndroidで使うときの課題

Cloudflare ZeroTrustをAndroidで使おうとすると、CloudflareのCA証明書を多くのアプリケーションが使ってくれないのでTLS復号→再暗号化による影響で証明書エラーで通信失敗扱いになる問題がある。
Androidの確かバージョン7以降くらいから、rootをとらないとシステム全体で使用するCA証明書をユーザーが登録できなくなっていて一部のアプリからしか利用されなくなっていてダメみたい。iPadOSだと特に問題なかったんだけどAndroidだとこれが問題になる。

方針の検討

TLS復号をZero TrustのオプションでOFFにすると正常に通信できることは確認しているけど、いつも使っているWindowsのPCからはちゃんとTLSインスペクションしてほしい、ということでAndroidのときだけTLS復号をバイパス出来ないか検討。
TLS復号しないとGatewayのチェックがほぼ有効にならないし、最近の通信はほぼhttpsなので使えないAndroid以外はちゃんとチェックするようにしたいというのが要件。

Gatewayの設定条件に「デバイスポスチャチェック」があるので、これを利用してWarp(Cloudflare One)アプリのデバイスチェックでAndroidかどうかをチェックするようにしてみた。

設定方法

設定→WARPクライアント→WARPクライアントチェック

に新規追加して「OS Version」を選択。Androidのバージョンを低めに指定してGreater than 7.0.0とかに設定。7とか7.0だとルールに合致しないと登録できなかったので3桁必要っぽい。ドキュメントを読もう

ここで設定したポスチャチェックの名前がGatewayのデバイスポスチャチェックの値リストにでてくるので、これを指定してGatewayのフィルタを作成する

デバイスポスチャチェックのOK/NGはLogsのポスチャに表示されるので、設定が正しいかはここで確認。
AndroidのCloudflare Oneの詳細設定からもポスチャでの検出内容が確認できるのでそちらでもチェックは可能。どうも5分毎にチェックしているっぽい?

この条件でZero TrustをAndroidでONにしてエラーなく通信できることを確認できた。

comments powered by Disqus