概要
このドキュメントでは、加入者が他のユーザトラフィックをブロックしながら、Whatsapp、SnapchatなどのフリーレートアプリケーションをSecure Sockets Layer(SSL)フローで使用する特定のシナリオについて説明します。この特定のアプリケーションは、Cisco Aggregated Service Router(ASR)5x00シリーズで動作します。SSLは、サーバ認証、クライアント認証、およびサーバとクライアント間の暗号化通信を管理するコンピュータネットワーキングプロトコルです。
問題
アプリケーションを検出するには、分析のために初期パケットが必要です。これら2つの矛盾する要件は、可能な限り最大限に満たされます。
a)最初のパケット自体で検出が必要
b)検出精度は100%であること
検出精度を高めるには、多くのアプリ(最初のパケットでアプリが検出されるアプリやフローがあります)を分析するためにより多くのパケットが必要です。 同じアプリの場合、最初のパケット自体の一部のフローにマークを付けることができますが、同じアプリの他のフローでは、分析のために多くのパケットが必要になることがあります。
したがって、他のトラフィックをブロックしている間にアプリケーションの何かが無料で評価された場合、アプリケーションの初期パケットが検出されず、十分な情報が伝送されない可能性があります。特に、SSLフローに基づくアプリケーションの場合、プロトコルは、client-helloパケットに存在するserver-name-indicationフィールドまたはSSL証明書に存在するcommon-nameのいずれかを使用してマークされます。server-nameはオプションのフィールドであるため、必ずしも存在するとは限りません。 次の図に示すように、Whatsapp SSLフローでは、スリーウェイハンドシェイク(TWH)の後、クライアントhelloパケットがアプリケーションによって送信されます。サーバ名表示(SNI)フィールドが表示されないPCAPトレース。また、クライアントhelloパケットの複数の再送信が発生し、最終的に廃棄されます。
また、次の図に示すように、Whatsappのマーキングに使用されるSNIフィールドが存在しないclient-helloパケットの16進数バイトです。したがって、client-helloパケットはWhatsappとしてマークできず、検出されません。このパケットが異なる評価グループに分類されると、パケットはドロップされるため、client-helloパケットの複数の再送信が見られます(フレーム番号5449、5453、5469を参照)。 最後に、接続が終了します。pcapにはこのようなフローがいくつか見られます。これは、Whatsappのイメージアップロードなど、有用なアクティビティが実行できない理由です。
トラブルシュート
1. capture monitor subscriber imsi XXXX with following options
19 - User L3
X - PDU Hexdump
Verbosity level 5
これらのコマンドは、アナライザにアプリケーションの統計情報を提供します。
# show act analyzer statistics name p2p application snapchat
# show act analyzer statistics name p2p application whatsapp
プラグインのバージョンを確認するには:
#show plugin p2p
Wednesday July 29 22:12:07 SAST 2015
plugin p2p
patch-directory /var/opt/lib
base-directory /lib
base-version 1.50.52055
module priority 1 version 1.139.505
解決方法
これを回避するには、アプリケーション(whatsappなど)がマークされる前にパケットが通過することを確認する必要があります。
次のruledefを使用します。
ruledef ssl_clienthello
tcp either-port = 443
tcp payload-length >= 44
tcp payload starts-with hex-signature 16-03
#exit
上記のruledefに一致するパケットは廃棄できません。このruledefの優先順位は、このパケットに一致し、パケットがドロップされるデフォルトのruledef(ip-any ruledef)の真上にある必要があります。
この設定を使用すると、上記の3つのルール行に一致するパケットだけが無料評価されます。これには、このruledefを使用して許可されるSSLフロー(client-hello、server-helloなど)内の初期ハンドシェイクパケットのみが含まれ、SSLフロー内の他のすべてのパケットはこのruledefに一致しません。したがって、SSLフローの最初の2 ~ 3個のパケットだけが使用できるため、他のアプリケーション(フリーレートしたいアプリケーション以外)に属するSSLflowがある場合、有用なトランザクションはありません。
サンプル コンフィギュレーション
推奨されるruledefは、all-ip_004_012_00016 ruledef (ip any-match = TRUE)よりも高い優先順位を持つ必要があります。
whatsapp ruledef.(sid_040_rg_400_rate_99999/sid_040_rg_400_rate_0032/ sid_040_rg_400_rate_00064 400および任意のレート)。
この設定では、クライアントのhelloパケットが提案されたruledefにヒットし、リダイレクトされずに許可されます。whatsappのルールが見られる2つのルールベースを次に示します。
rulebase mbc-internet-rs
action priority 1087 dynamic-only ruledef WhatsApp_P2P_040_400_99999_All_internet charging-action sid_040_rg_400_rate_99999
action priority 1088 dynamic-only ruledef WhatsApp_P2P_040_400_00064_All_internet charging-action sid_040_rg_400_rate_00064
action priority 1089 dynamic-only ruledef WhatsApp_P2P_040_400_00032_All_internet charging-action sid_040_rg_400_rate_00032
action priority [1090-9909] dynamic-only ruledef ssl_clienthello charging-action sid_040_rg_400_rate99999/00064/00032 --> Higher priority than all-ip ruledef and charging action with rating group 400
action priority 9910 dynamic-only ruledef all-ip_004_012_00016_MI_internet charging-action sid_004_rg_012_rate_00016
action priority 9920 dynamic-only ruledef all-ip_004_012_00032_MI_internet charging-action sid_004_rg_012_rate_00032
action priority 9930 dynamic-only ruledef all-ip_004_012_00064_MI_internet charging-action sid_004_rg_012_rate_00064
rulebase mbc-iphone-rs
action priority 1206 dynamic-only ruledef WhatsApp_P2P_040_400_99999_All_iphone charging-action sid_040_rg_400_rate_99999
action priority 1207 dynamic-only ruledef WhatsApp_P2P_040_400_00064_All_iphone charging-action sid_040_rg_400_rate_00064
action priority 1208 dynamic-only ruledef WhatsApp_P2P_040_400_00032_All_iphone charging-action sid_040_rg_400_rate_00032
action priority [1209-8999] dynamic-only ruledef ssl_clienthello charging-action sid_040_rg_400_rate99999/00064/00032 --> Higher priority than all-ip ruledef and charging action with rating group 400
action priority 9000 dynamic-only ruledef all-ip_015_150_00016_ALL_iphone charging-action sid_015_rg_150_rate_00016
action priority 9010 dynamic-only ruledef all-ip_015_150_00032_ALL_iphone charging-action sid_015_rg_150_rate_00032
action priority 9020 dynamic-only ruledef all-ip_015_150_00064_ALL_iphone charging-action sid_015_rg_150_rate_00064
action priority 9030 dynamic-only ruledef all-ip_015_150_99999_ALL_iphone charging-action sid_015_rg_150_rate_99999
charging-action sid_040_rg_400_rate_99999
content-id 400
service-identifier 40
billing-action egcdr
cca charging credit
exit
ruledef ssl_clienthello
tcp either-port = 443
tcp payload-length >= 44
tcp payload starts-with hex-signature 16-03
exit