陳榮平
(中國移動通信集團廣東有限公司,廣州 510000)
伴隨互聯網技術水平不斷提升,網絡應用也在不斷革新,用戶對于網絡質量和網絡安全性的要求也在變高著。為保護用戶隱私,保證數據傳遞的可靠性,互聯網開始引入了HTTPS協議,從而實現了互聯網數據的加密。而伴隨加密流量的數額巨升,在保證數據傳輸可靠性的同時,運營商同時也要對加密流量進行識別,從而為用戶提供差異化服務。
當前主要有三種網絡流量識別方法:
其主要依照TCP/UDP 協議端口號展開應用流量識別。IANA所分配的通用端口號是0-1023,比如說,能夠利用80端口識別WEB應用,利用23端口識別 Telnet,利用21端口識別FTP等,很多應用程序都于早期設置過特定端口,所以通過端口號來進行流量識別的方式很容易想到[1]。通過端口號來進行流量識別的方式比較簡單,且具備可操作性,對于傳統-網絡的流量識別非常精準。然而伴隨互聯網技術的普及和發展,很多新興業務已經開始不再采用標準化端口,都選擇繞過防火墻,采取動態端口的方式,這就導致通過端口號來進行流量識別的方式不再適用,無論是識別精準度,還是識別難度,都受到非常大的影響。
通過特征字段進行流量石碑,其技術就是Deep Packet Inspection,簡稱DPI技術。DPI技術會通過特征字段來進行業務的匹配,并分解網絡數據包,從而就可以分析數據包特征碼,進而就可以確定應用程序類型。所以,DPI技術對于應用程序端口的依賴程度較低,能夠有效是被P2P等護理網應用類型[2]。然而DPI技術的識別取決于應用協議特征字段,因此沒有辦法對數據包荷載未知情況進行識別,伴隨數據加密技術和應用的不斷發展,這種檢測方式已經沒有辦法有效滿足實際應用需求。
機器學習系統模型如下圖所示:

圖1 機器學習系統模型
如圖1所示,機器學習系統模型是閉環系統,能夠互相促進和更新。首先,系統在外部環境中采集到相關信息,然后對數據信息進行有效處理,知識庫模板中會有固定的規律知識模型,按照知識庫規則方法來進行實際問題的解決,并驗證評判實際應用效果,與此同時,還會把收集到的價值信息傳至學習模塊來進行規則方法的補充更新。通過機器學習進行流量識別的方式會先提取流量統計特征,然后利用機器學習算法把統計特征訓練成為流量識別模型,然后進行未知流量類型的有效識別[3]。不管是通過端口號進行流量識別,還是通過特征字段進行流量識別,從本質上來說都為解析識別方式,必須要按照相應設置規則來進行流量識別,都缺乏足夠的智能性。然而與之相比,通過機器學習來進行流量識別的方式并不再局限于流量局部解析特征,其是利用流量宏觀特征來進行識別,利用數據挖掘分類技術進行流量類型劃分,智能性較高。但其也存在局限性,無法對具體應用進行識別。
基于DPI和機器學習的加密流量類型識別方法有效地結合了DPI識別技術和機器學習識別技術的優勢,具體流量如下圖所示:

圖2 加密流量類型識別流程
數據采集與清洗模塊:利用DPI技術對SSL/TLS協議中的HOST進行提取,然后重新填至用戶話單內,從而就會形成一個加密話單數據。
特征選擇模塊:按照從話單中得到的原始數據及相應計算口徑產生TCP數據集,之后就可以向下輸出[4]。
建模建塊:通過隨機森林算法來對當前獲取到的大數據展開建模,依據上選取查準率、查全率及F值,對模型進行評估,之后展開參數調優。
加密流量分類模塊:對流量種類不明確的加密流量流特征進行計算,通過模型來對計算結果進行判定,從而就可以獲取到是否為加密流量。
在本文的研究出指出了一種結合DPI技術優勢和機器學習優勢的新型加密流量識別方式,利用DPI技術來對網絡流量進行識別,能夠獲取到很多已知特征的數據。這一點可以有效地降低機器學習計算量,且可以對具體應用進行識別,之后利用機器學習對未知特征加密流量進行有效識別,這可以在很大程度上彌補DPI技術沒有辦法對未知加密流量進行識別,從而就可以大大提升識別率。