0731-84728105
15116127200
高可靠加密通信機制解決方案

一(yī)、 應用場景

    如圖1所示,對主機A與主機B間的TCP的通信進行加解密處理。即主機A的TCP數據通過網絡加密結點對其TCP數據加密後傳送給網絡,數據包經互聯網傳送給主機B端的網絡加解密結點進行解密處理,處理後的數據送給主機B 。反向同理。

圖1 應用場景圖

二、 方案1 固定密鑰的實現

     在網絡加解密的結點将TCP報文的序号按某一(yī)算法進行加密處理,另外(wài)将TCP數據報文的DATA域的數據進行亂序處理,從而實現在對TCP數據流報文進行發送序号亂序的同時實現了對報文内容的亂序加密處理。
具體(tǐ)硬件加密方式:
    網絡加解密結點解析所有經過它的數據流的報文,識别報文是否爲TCP/IPv4的類型報文,若是則根據圖2所示的TCP頭部格式,在傳送TCP數據時,将序号字段(Sequence Number)作爲密鑰進行加密處理。否則數據會直接轉發輸出。

圖2 TCP頭部格式
    另外(wài),網絡加解密結點會針對其TCP類型報文的數據部分(fēn)根據硬件處理格式進行亂序處理,從而實現數據加密的功能。如圖3所示,硬件是将數據幀以128b(16B)的形式進行組織。

圖3 硬件處理幀形式
    根據網絡加解密結點對數據處理的特點,加密可以将每拍TCP報文數據部分(fēn)的字節數據高低4位對調來實現,如圖4所示。

圖4 數據位對調亂序示意圖
    硬件實現的難點:
  • 1) TCP報文解析(IPV4);
  • 2) TCP的校驗和重計算;
  • 3) 線速實現加密處理及恢複。
    優點:
  • 1) 可實現加解密處理;
  • 2) 可以保證處理延時。

三、 方案2 動态密鑰的實現

    動态密鑰是基于TCP類型的數據在握手的過程中(zhōng)傳遞,即在建立TCP的握手時協商(shāng)此對應TCP流對應的密鑰;在連接結束時,删除其密鑰信息,在下(xià)次建立時随機獲取密鑰池中(zhōng)的新的密鑰來進行加密通信。處理過程如圖5、6所示。

圖5 基于TCP建立的密鑰協商(shāng)過程圖
    在TCP建立連接時,網絡加解密結點會監測,輸入報文是否主SYN的報文,若是,則從密鑰池中(zhōng)随機申請一(yī)個密鑰(KEY),将密鑰信息随建立連接的報文發送給接收端,接收端接收密鑰信息,在接收到連接響應報文時,将确認的密鑰信息再返回給發送端,以确認其已經正确協商(shāng)密鑰可以正常通信。
    在TCP結束連接時,當結束發送端(主機A)發送FIN報文時,網絡加密結點先不立刻注銷密鑰信息,而是等待主機B發送結束時才注銷密鑰信息,因爲主機A在申請結束連接時,主機B可能還會向主機A發送TCP的數據,因此,需要等待主機B也發送結束報文時才進行密鑰的注銷。

圖6 基于TCP結束的密鑰取消過程圖
    密鑰池爲網絡加密結點内部存儲的密鑰的集合,密鑰池内有多種密鑰,爲了保證通信的安全性,在每條TCP流進行通信時,都會選用不同的密鑰進行加解密處理。從而可以更細粒度的保證每條TCP數據流的安全性。
    同方案1相同在針對密鑰加密的同時還可以實現對報文内容的亂序處理,從而進一(yī)步保證其數據的安全性。

四、 方案2 實現的優化

    在實現時,由于每條TCP的建立都會随機的在密鑰池中(zhōng)選擇密鑰進行連接且鏈路可以存在很長時間無數據交互的情況或鏈路出現故障無法正常通信的情況,因此在實現時針對每條流設定一(yī)個計時器,即若有此流的報文交互則不斷更新其時間值到最新的時間點,若某條流長時間無數據通信時,則将此流對應的流表及協商(shāng)的密鑰删除,在恢複通信時重新協商(shāng)密鑰進行通信,如圖7所示。
    當流A的數據經過網絡加密節點時則更新其流A所對應的計時器,流B和流C則保持不變,若已經達到超時的時間,則更改流狀态,将此流表項标記爲無效。若此時又(yòu)有對應流表的數據到來則使用默認密鑰進行加密處理,同時通過TCP頭的狀态位的保留位,如圖2所示,來标記其加密的密鑰狀态,從而是接收端也可以通過相同密鑰解密。

圖7 流表狀态管理
    以上爲TCP的兩種加密的方案,方案1爲固定密鑰實現方式,其實現比較簡單,加密效果則不太安全;方案2實現比較複雜(zá),可以針對不同的TCP流,選用不同的加密方法,從而可以更細粒度的對通信内容進行加密處理,從而通信内容會更加安全。另外(wài),兩種實現方案都需要硬件對報文進行解析、報文亂序移位處理及報文TCP頭及IP頭部校驗和進行重新計算處理,因此硬件資(zī)源開(kāi)銷比較大(dà),但其可以保證加密處理的延時。
下(xià)載該文檔