一、 应用(yòng)场景
如图1所示,对主机A与主机B间的TCP的通信进行加解密处理(lǐ)。即主机A的TCP数据通过网络加密结点对其TCP数据加密后传送给网络,数据包经互联网传送给主机B端的网络加解密结点进行解密处理(lǐ),处理(lǐ)后的数据送给主机B 。反向同理(lǐ)。
图1 应用(yòng)场景图
二、 方案1 固定密钥的实现
在网络加解密的结点将TCP报文(wén)的序号按某一算法进行加密处理(lǐ),另外将TCP数据报文(wén)的DATA域的数据进行乱序处理(lǐ),从而实现在对TCP数据流报文(wén)进行发送序号乱序的同时实现了对报文(wén)内容的乱序加密处理(lǐ)。
具體(tǐ)硬件加密方式:
网络加解密结点解析所有(yǒu)经过它的数据流的报文(wén),识别报文(wén)是否為(wèi)TCP/IPv4的类型报文(wén),若是则根据图2所示的TCP头部格式,在传送TCP数据时,将序号字段(Sequence Number)作為(wèi)密钥进行加密处理(lǐ)。否则数据会直接转发输出。
图2 TCP头部格式
另外,网络加解密结点会针对其TCP类型报文(wén)的数据部分(fēn)根据硬件处理(lǐ)格式进行乱序处理(lǐ),从而实现数据加密的功能(néng)。如图3所示,硬件是将数据帧以128b(16B)的形式进行组织。
图3 硬件处理(lǐ)帧形式
根据网络加解密结点对数据处理(lǐ)的特点,加密可(kě)以将每拍TCP报文(wén)数据部分(fēn)的字节数据高低4位对调来实现,如图4所示。
图4 数据位对调乱序示意图
硬件实现的难点:
- 1) TCP报文(wén)解析(IPV4);
- 2) TCP的校验和重计算;
- 3) 線(xiàn)速实现加密处理(lǐ)及恢复。
优点:
- 1) 可(kě)实现加解密处理(lǐ);
- 2) 可(kě)以保证处理(lǐ)延时。
三、 方案2 动态密钥的实现
动态密钥是基于TCP类型的数据在握手的过程中传递,即在建立TCP的握手时协商(shāng)此对应TCP流对应的密钥;在连接结束时,删除其密钥信息,在下次建立时随机获取密钥池中的新(xīn)的密钥来进行加密通信。处理(lǐ)过程如图5、6所示。
图5 基于TCP建立的密钥协商(shāng)过程图
在TCP建立连接时,网络加解密结点会监测,输入报文(wén)是否主SYN的报文(wén),若是,则从密钥池中随机申请一个密钥(KEY),将密钥信息随建立连接的报文(wén)发送给接收端,接收端接收密钥信息,在接收到连接响应报文(wén)时,将确认的密钥信息再返回给发送端,以确认其已经正确协商(shāng)密钥可(kě)以正常通信。
在TCP结束连接时,当结束发送端(主机A)发送FIN报文(wén)时,网络加密结点先不立刻注销密钥信息,而是等待主机B发送结束时才注销密钥信息,因為(wèi)主机A在申请结束连接时,主机B可(kě)能(néng)还会向主机A发送TCP的数据,因此,需要等待主机B也发送结束报文(wén)时才进行密钥的注销。
图6 基于TCP结束的密钥取消过程图
密钥池為(wèi)网络加密结点内部存储的密钥的集合,密钥池内有(yǒu)多(duō)种密钥,為(wèi)了保证通信的安全性,在每条TCP流进行通信时,都会选用(yòng)不同的密钥进行加解密处理(lǐ)。从而可(kě)以更细粒度的保证每条TCP数据流的安全性。
同方案1相同在针对密钥加密的同时还可(kě)以实现对报文(wén)内容的乱序处理(lǐ),从而进一步保证其数据的安全性。
四、 方案2 实现的优化
在实现时,由于每条TCP的建立都会随机的在密钥池中选择密钥进行连接且链路可(kě)以存在很(hěn)長(cháng)时间无数据交互的情况或链路出现故障无法正常通信的情况,因此在实现时针对每条流设定一个计时器,即若有(yǒu)此流的报文(wén)交互则不断更新(xīn)其时间值到最新(xīn)的时间点,若某条流長(cháng)时间无数据通信时,则将此流对应的流表及协商(shāng)的密钥删除,在恢复通信时重新(xīn)协商(shāng)密钥进行通信,如图7所示。
当流A的数据经过网络加密节点时则更新(xīn)其流A所对应的计时器,流B和流C则保持不变,若已经达到超时的时间,则更改流状态,将此流表项标记為(wèi)无效。若此时又(yòu)有(yǒu)对应流表的数据到来则使用(yòng)默认密钥进行加密处理(lǐ),同时通过TCP头的状态位的保留位,如图2所示,来标记其加密的密钥状态,从而是接收端也可(kě)以通过相同密钥解密。
图7 流表状态管理(lǐ)
以上為(wèi)TCP的两种加密的方案,方案1為(wèi)固定密钥实现方式,其实现比较简单,加密效果则不太安全;方案2实现比较复杂,可(kě)以针对不同的TCP流,选用(yòng)不同的加密方法,从而可(kě)以更细粒度的对通信内容进行加密处理(lǐ),从而通信内容会更加安全。另外,两种实现方案都需要硬件对报文(wén)进行解析、报文(wén)乱序移位处理(lǐ)及报文(wén)TCP头及IP头部校验和进行重新(xīn)计算处理(lǐ),因此硬件资源开销比较大,但其可(kě)以保证加密处理(lǐ)的延时。