菜单

依据SPI的协议加固透明传输工具

2019年1月3日 - LINUX

1. Winsock 2 SPI简介

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

manbetx网页手机登录版 1

图1 Winsock 2 SPI结构

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

5 1–0   01001010 10110101      0    1

6 0–1   1001010x 01101010    1    0

六.源代码获取

 点击这里打开github仓库

四、传输时序

SPI接口在中间硬件实际上是三个简单的移动寄存器,传输的数额为8位,在主器件暴发的从器件使能信号和移动脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的回落沿上数据变动,上升沿一位数据被存入移位寄存器。

manbetx网页手机登录版 2

SPI接口没有点名的流控制,没有应答机制确认是否接到到数码。

manbetx网页手机登录版, 

已知的部分器件SPI已达成50Mbps。具体到成品中SPI的速率首要看主从器件SPI控制器的属性限制。

三.职能介绍

2 1–0   10101001  01010110       1    0

3 0–1   0101001x 10101101    0     1

一.背景

 
随着总计机网络技术的逐渐发展和推广,远程网络数据传输的安全性显得更加重要。—般地,运行的应用程序发送的数额包都以公开形式发送,接收方也将直接获取公开数据,但诸如此类发生的多寡很容易被缴获并举办分析,从而举行网络攻击。唯有个别使用会为自己爆发数据进行加密。然后再在接收方举行解密操作。随着网络的逐级推广,网络数据发送的安全也变得很首要。不过,唯有较少的应用程序为网络收发数据开展了加密传输,还是有雅量的利用直接运用公开方式通讯。那么些应用包括选拔了一些特定商事举办报道,也暗含部分与众不同用途的客户端程序,比如监控系统和内外网的客户端访问。如欲对那个应用的网络通讯内容开展加固来预防攻击者的监听和攻击,则需要对这一款应用程序进行进步,即扩张加密和解密效用。假诺一个系统中利用了多种运用结合的方法展开通信,则需要各使用生产商间举行协商。来保证系统中各使用的健康通信。

 
本工具利用Windows提供的SPI服务,在应用层对应用程序网络通信的数目开展加密,在接收方收到多少前举行解密。整个经过应用程序并未有其它变更。实现了通信数据的透明加密。

  sdo

二.工具原理

4 1–0   10100101 01011010      1     0

5 0–1   0100101x 10110101    0      1

2.避免重播攻击

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

 
此外,为了抵抗会话长期通信导致的时刻溢出境况,程序将设定定时自动更新会话秘钥的点子来缓解这种效率可能带来的秘密问题。

三、内部结构

manbetx网页手机登录版 3

四.安装和条件

7 1–0   00101010  11010101      0     1

8 0–1   0101010x  10101010    1    0

2.传输模型

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

manbetx网页手机登录版 4

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

 二、传输过程

上升沿发送、下降沿接收、高位首发送。

 

SPI,是立陶宛语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高效的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是由于那种概括易用的性状,现在尤为多的芯片集成了这种通信协议。

上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。

降低沿到来的时候,sdi上的电平将被吸收到主设备的寄存器中。

 

万一主机和从机起初化就绪:并且主机的sbuff=0xaa
(10101010),从机的sbuff=0x55 (01010101),下边将分步对spi的8个时钟周期的多少境况演示五次(即使上升沿发送数据)。


脉冲       主机sbuff   从机sbuff   sdi

2.环境

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

一、SPI概述

SPI,是保加利亚语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高效的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于那种概括易用的风味,现在愈加多的芯片集成了那种通信协议。

SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很粗略,首如果在sck的操纵下,多少个双向移位寄存器举办数据沟通

                       manbetx网页手机登录版 5

 SPI总线的系统

(1)MOSI:主器件数量输出,从器件数据输入
(2)MISO:主器件数量输入,从器件数据输出
(3)SCLK:时钟信号,由主器件发生
(4)/SS:从器件使能信号,由主器件控制

SPI总线有四种工作情势(SP0, SP1, SP2, SP3),其中使用的无比普遍的是SPI0和SPI3情势。

 

1.安装

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

1 1–0   01010100  10101011     0    1

2 0–1   1010100x  01010110     1    0

五.优势

  本工具具有以下优势:

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

6 1–0   10010101 01101010    1    0

7 0–1   0010101x 
11010101     0     1

3.日志和权限管理

 
日志模块将依照程序运行中的运行情状分等级记录运行中的各个境况,比如收发的数据包,建立通信会话的音讯,数据包错误,攻击等音信。

 
权限管理可以给不同装备之间通信加以限定,该意义需依照实际的应用层协议举办定制。该模块可享有以下职能:限制部分效用码的拔取、限制指定节点的指定内存地址不可访问等权限限制。

0 00-0   10101010  01010101   0    0

1 0–1   0101010x  10101011    
0    1

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

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

 
SPI程序会凭借通信双方建立连接时取得的对方IP地址、端口号和本应用程序的名目来决定是否对此次建立的Socket连接举行加密通讯。SPI程序一旦判断此次回话需要加密传输则本次建立的通信双方都会利用加密方法开展通信。

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

 
AES加密算法是对称加密算法的一种,其最短秘钥为128比特,就当前的处理器处理速度而言,虽然是128位的秘钥,要想通过暴力破解情势取得秘钥是不容许的。因而利用AES对音讯举办加密。

  本工具对应用层发送的本来数据开展加密传输的过程如图3所示。

manbetx网页手机登录版 6

图3 音信加密过程

 
在加密经过中,SPI程序首先取得待发送的精晓信息,然后对其充裕时间戳、音讯特征和特征码,将原始音讯举办结合。然后对时间戳和原来数据部分开展AES加密。最后将组成后的信息发送。接收方应用程序收到信息后,接收方的SPI程序将对接到的音信举办解密并校验,然后将解密出的原来数据转交给接受程序。

3 1–0   01010010 10101101    0     1

4 0–1   1010010x 01011010    1       0

8 1–0   01010101  10101010    1    0

 

这么就成功了六个寄存器8位的置换,上边的0–1象征上升沿、1–0代表下降沿,sdi、 sdo绝对于主机而言的。依据以上剖析,一个完全的传递周期是16位,即多少个字节,因为,首先主机要发送命令过去,然后从机依照主机的名准备数据,主机在下一个8位时钟周期才把数据读回来。 

  

SPI首要特点有:能够而且发出和接受串行数据;可以看成主机或从机工作;提供频率可编程时钟;发送截至中断标志;写争辨体贴;总线竞争尊崇等。

相关文章

发表评论

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

网站地图xml地图