新萄京娱乐场.2959.com 3

基于SPI的协议加固透明传输工具,网络七层协议的形象说明

一.背景

 
随着计算机网络技术的日益发展和普及,远程网络数据传输的安全性显得越来越重要。—般地,运行的应用程序发送的数据包都以明文方式发送,接收方也将直接获得明文数据,但这样发出的数据很容易被截获并进行分析,从而进行网络攻击。只有少数应用会为自己发出数据进行加密。然后再在接收方进行解密操作。随着网络的日益普及,网络数据发送的安全也变得很重要。但是,只有较少的应用程序为网络收发数据进行了加密传输,仍然有大量的应用直接采用明文方式通讯。这些应用包括采用了一些特定协议进行通讯,也包含一些特殊用途的客户端程序,比如监控系统和内外网的客户端访问。如欲对这些应用的网络通讯内容进行加固来防止攻击者的监听和攻击,则需要对这一款应用程序进行升级,即增加加密和解密功能。如果一个系统中使用了多种应用结合的方式进行通信,则需要各应用生产商间进行协商。来确保系统中各应用的正常通信。

 
本工具利用Windows提供的SPI服务,在应用层对应用程序网络通信的数据进行加密,在接收方收到数据前进行解密。整个过程应用程序并未有任何更改。实现了通信数据的透明加密。

引用自:

二.工具原理

 

1. Winsock 2 SPI简介

 
Winsock是为上层应用程序提供的一种标准网络接口。上层应用程序不用关心Winsock实现的细节,它为上层应用程序提供透明的服务。Winsock
2引入的一个新功能就是打破服务提供者的透明,让开发者可以编写自己的服务提供者接口(Service
Provider Interface,SPI)程序,即SPI程序。Winsock 2
SPI除了有完成网络传输的传输服务提供者,还提供了友好名字服务的名字空间服务提供者。其中,传输服务提供者能够提供建立通信、传输数据、流量控制和错误控制等服务。Winsock
2提供的服务其结构如图1所示。

新萄京娱乐场.2959.com 1

图1 Winsock 2 SPI结构

 
SPI以动态链接库的形式出现,工作在TCP/IP协议的应用层,为上层API调用提供接口函数。由于SPI工作在TCP/IP协议的应用层,因此对基于应用层的数包SPI都可以截获。

第一层,物理层 
OSI模型最低层的“劳苦大众”。它透明地传输比特流,就是传输的信号。该层上的设备包括集线器、发送器、接收器、电缆、连接器和中继器。

2.传输模型

 
基于SPI的文件加密传输系统的工作模型如图2所示。在发送方,用户层通信程序发送的网络封包被自定义的SPI程序所截获,SPI程序将数据包的IP地址、端口等信息提取出来,经过规则判断函数判断之后,如果需要加密,则调用加密函数完成加密工作,并在封包中设置加密标志。数据接收方在Windows核心层将接收的网络封包上传给用户层接收程序之前,自定义的SPI程序又将此数据封包截获,规则判断函数首先检查网络封包中的加密标志,若数据包是加密的数据包,则调用解密函数进行解密,最终将解密后的数据包向上传送给用户层的接收程序。

新萄京娱乐场.2959.com 2

图2 基于SPI的网络数据加密传输模型

第二层,数据链路层
这一层是和包结构和字段打交道的和事佬。一方面接收来自网络层(第三层)的数据帧并为物理层封装这些帧;另一方面数据链路层把来自物理层的原始数据比特封装到网络层的帧中。起着重要的中介作用。
数据链路层由IEEE802规划改进为包含两个子层:介质访问控制(MAC)和逻辑链路控制(LLC)。
智能集线器、网桥和网络接口卡(NIC)等就驻扎在这一层。但是网络接口卡它同样具有物理层的一些编码功能等。

三.功能介绍

第三层,网络层
这一层干的事就比较多了。它工作对象,概括的说就是:电路、数据包和信息交换。
网络层确定把数据包传送到其目的地的路径。就是把逻辑网络地址转换为物理地址。如果数据包太大不能通过路径中的一条链路送到目的地,那么网络层的任务就是把这些包分成较小的包。
这些光荣的任务就派给了路由器、网桥路由器和网关。
以后几层属于较高层,通常驻留在跨网络相互通信的计算机中,而不象以上几层可以独自为阵。设备中只有网关可跨越所有各层。

1.加密规则和加解密方案

 
是否对应用层的某一应用程序的网络数据包进行加密传输取决于加密规则。加密规则包括应用程序的名称、IP地址和端口号。

 
SPI程序会依靠通信双方建立连接时获得的对方IP地址、端口号和本应用程序的名称来决定是否对本次建立的Socket连接进行加密通讯。SPI程序一旦判断本次回话需要加密传输则本次建立的通信双方都会采用加密方式进行通信。

新萄京娱乐场.2959.com , 
加解密方案则采用128位的AES对称加密作为加密方式。加解密的秘钥分为主密钥和会话秘钥。主密钥由使用者进行设定,会话秘钥则在通信双方建立会话时动态分配。并且,会话秘钥由主密钥生成。

 
AES加密算法是对称加密算法的一种,其最短秘钥为128比特,就目前的计算机处理速度而言,即使是128位的秘钥,要想通过暴力破解方式获得秘钥是不可能的。因此采用AES对消息进行加密。

  本工具对应用层发送的原始数据进行加密传输的过程如图3所示。

新萄京娱乐场.2959.com 3

图3 消息加密过程

 
在加密过程中,SPI程序首先获得待发送的明文消息,然后对其添加时间戳、消息特征和特征码,将原始消息进行重组。然后对时间戳和原始数据部分进行AES加密。最后将重组后的消息发送。接收方应用程序收到消息后,接收方的SPI程序将对收到的消息进行解密并校验,然后将解密出的原始数据转交给接收程序。

第四层,传输层。
确保按顺序无错的发送数据包。传输层把来自会话层的大量消息分成易于管理的包以便向网络发送。

2.防止重放攻击

 
在每次通信双方建立通信连接后,通信双方将进行时间同步,一同开始计时。在建立连接的双方收发数据期间,工具将在重组的消息中添加时间戳,该时间戳也会被加密,加密完成后将被接收方的SPI程序进行解密。从中获得时间戳内容,并判断消息的时间是否在允许的时间误差内,如果超出误差则认为受到了重放攻击。否则,将被判定为合法数据,将数据发送给上层的接收方应用程序。

 
另外,为了抵御会话长时间通信导致的时间溢出情况,程序将设定定时自动更新会话秘钥的方法来解决这种功能可能带来的潜在问题。

第五层,会话层。
在分开的计算机上的两种应用程序之间建立一种虚拟链接,这种虚拟链接称为会话(session)。会话层通过在数据流中设置检查点而保持应用程序之间的同步。允许应用程序进行通信的名称识别和安全性的工作就由会话层完成。

发表评论

电子邮件地址不会被公开。 必填项已用*标注