互联网七层协商的印象表明,互连网七层模型

一.背景

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

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

引用自:

       
网络七层模型如下所述,一般情况下开发过程中下层传输到物理层不涉及。上层应用层到会话层中,若系统用已有的协议HTTP,FTP等则不需要去考虑解码和编码等操作,直接应用wcf基本可以实现,配置好后。若系统中没用已有的协议那从TCP或者UDP的缓冲中获取到数据后,需要按照自定义的协议进行解码和编码操作(一般称协议外壳解析,后面的章节将详细描述)

二.工具原理

 

物理层—-网卡。网卡的作用就是把线路发送过来的高频电流转化数据包,然后传给网卡驱动程序,同是也把网卡驱动程序传送过来的数据包转化成电信号传送出去。定义通过网络设备发送数据的物理方式:是网络媒介和设备间的接口。 
数据链路层—-网卡驱动程序。定义控制通信连接的程序;封包;监测和改正包传输错误。 
网络层—-NDIS,NDIS提供网络接口。决定网络设备间如何传输数据;根据唯一的网络设备地址选择包;提供流和拥塞控制,以阻止同时网络资源的损耗。 
传输层—-TCP,TCP协议的封包处理是在这一层进行的。管理网络中首尾连接的信息传送;提供通过错误恢复和流控制装置传送可靠且有序的包;提供无连接面向包的传送。 
会话层—-SPI,SPI是服务提供者接口,管理用户间的会话和对话;控制用户间的连接和挂断连接;报告上层错误。 
表示层—-API,它为应用程序提供接口。API负责SPI与应用程序之间的通信;定义不同体系间不同数据格式;具体说明独立结构的数据传输格式;编码和解码数据;加密和解密数据;压缩和解压缩数据。 
应用层—-EXE,就是大家常见的应用程序。定义用于网络通信和数据传输的用户接口程序;提供标准服务,比如虚拟终端、文档以及任务的传输和操作。

1. Winsock 2 SPI简介

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

图片 1

图1 Winsock 2 SPI结构

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

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

图片 2

2.传输模型

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

图片 3

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

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

图片 4

三.功能介绍

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

此文来源于以下两大侠的博文,在下也是刚接触没多久,TCP不属于iso制定的协议集或者TCP与iso制定的协议集关系还不是很清楚,后续学习后修正。

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

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

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

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

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

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

图片 5

图3 消息加密过程

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

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

米虫爱喝咖啡
 

2.防止重放攻击

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

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

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

FlyBack 

3.日志和权限管理

 
日志模块将根据程序运行中的运行状况分等级记录运行中的各种状态,比如收发的数据包,建立通信会话的信息,数据包错误,攻击等信息。

 
权限管理可以给不同设备之间通信加以限制,该功能需根据具体的应用层协议进行定制。该模块可具有以下功能:限制一些功能码的使用、限制指定节点的指定内存地址不可访问等权限限制。

第六层,表示层。
定义由应用程序用来交换数据的格式。在这种意义上,表示层也称为转换器(translator)。该层负责协议转换、数据编码和数据压缩。转发程序在该层进行服务操作。

 

四.安装和环境

第七层,应用层,该层是OSI模型的最高层。应用层向应用进程展示所有的网络服务。当一个应用进程访问网络时,通过该层执行所有的动作。
纵观七层,从低级到高级。作一个形象的比喻就是从汇编到了BASIC,越到高层与硬件的关联就越弱。

1.安装

  将工具复制到Windows的指定目录下后,通过安装程序可进行一键安装。

所谓的网络七层协议就是OSI模型,具体分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

2.环境

  工具需安装在Windows
XP版本及以上的Windows操作系统之上,对于64位系统则需额外安装64位版本。

7——应用层
6——表示层
5——会话层
4——传输层
3——网络层
2——数据链路层
1——物理层

五.优势

  本工具具有以下优势:

  1. 安装简单:一键安装。
  2. 管理简单:只需通过加密管理程序即可进行设置主密钥、IP加密规则、端口加密规则、进程加密规则。
  3. 加密效率高,强度高:采用AES加密算法,暴力破解几乎不可能。
  4. 透明加密传输网络数据:SPI工作在应用层的下层,与应用程序通信丝毫不会影响应用程序的工作。
  5. 解决工作系统的整体加密传输问题:在一个采用了多种软件相协调工作的系统而言,要想加密网路数据,则需要对每一个软件进行升级,而使用本工具,则无需对每一款软件升级,即可完成整个系统的数据加密传输升级。

物理介质
七层模型在Windows程序下的体现:
物理层—-就是我们看得见的网卡。网卡的作用就是把线路发送过来的高频电流转化数据包,然后传给网卡驱动程序,同是也把网卡驱动程序传送过来的数据包转化成电信号传送出去。定义通过网络设备发送数据的物理方式:是网络媒介和设备间的接口。
数据链路层—-是网卡驱动程序。定义控制通信连接的程序;封包;监测和改正包传输错误。
网络层—-即NDIS,NDIS提供网络接口。决定网络设备间如何传输数据;根据唯一的网络设备地址选择包;提供流和拥塞控制,以阻止同时网络资源的损耗。
传输层—-即TCP,TCP协议的封包处理是在这一层进行的。管理网络中首尾连接的信息传送;提供通过错误恢复和流控制装置传送可靠且有序的包;提供无连接面向包的传送。
会话层—-即SPI,SPI是服务提供者接口,管理用户间的会话和对话;控制用户间的连接和挂断连接;报告上层错误。
表示层—-API,它为应用程序提供接口。API负责SPI与应用程序之间的通信;定义不同体系间不同数据格式;具体说明独立结构的数据传输格式;编码和解码数据;加密和解密数据;压缩和解压缩数据。
应用层—-EXE,就是大家常见的应用程序。定义用于网络通信和数据传输的用户接口程序;提供标准服务,比如虚拟终端、文档以及任务的传输和操作。
七层协议与Windows结构的生产力映射如下:
7 应用层 7 应用程序(exe)
6 表示层 6 Winsock API (dll)
5 会话层 5 SPI(dll)
4 传输层 4 TDI(vxd、sys)
3 网络层 3 NDIS(vxd、sys)
2 数据链路层 2 网卡驱动程序(vxd、sys)
1 物理层 1 网卡

六.源代码获取

 点击此处打开github仓库

Post Author: admin

发表评论

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