0731-84728105
15116127200
高(gāo)可(kě)靠加密通信機(jī)制解決方案

一(yī)、 應用場景

    如(rú)圖1所示,對主機(jī)A與主機(jī)B間的(de)TCP的(de)通信進行(xíng)加解密處理(lǐ)。即主機(jī)A的(de)TCP數據通過網絡加密結點對其TCP數據加密後傳送給網絡,數據包經互聯網傳送給主機(jī)B端的(de)網絡加解密結點進行(xíng)解密處理(lǐ),處理(lǐ)後的(de)數據送給主機(jī)B 。反向同理(lǐ)。

圖1 應用場景圖

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

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

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

圖3 硬件處理(lǐ)幀形式
    根據網絡加解密結點對數據處理(lǐ)的(de)特點,加密可(kě)以将每拍TCP報文數據部分的(de)字節數據高(gāo)低(dī)4位對調來實現,如(rú)圖4所示。

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

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

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

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

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

四、 方案2 實現的(de)優化

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

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