互联网七层协商的形象表达

2019-03-28 20:09栏目:IT操作系统

2.防止重放攻击

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

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

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

图片 1

5. HTTP工作过程      

     一次HTTP操作称为一个事务,其工作整个过程如下:

     1 ) 、地址解析,

     如用客户端浏览器请求这个页面:http://localhost.com:8080/index.htm

     从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:
     协议名:http
     主机名:localhost.com
     端口:8080
     对象路径:/index.htm

      在这一步,需要域名系统DNS解析域名localhost.com,得主机的IP地址。

    2)、封装HTTP请求数据包

     把以上部分结合本机自己的信息,封装成一个HTTP请求数据包

     3)封装成TCP包,建立TCP连接(TCP的三次握手)

       在HTTP工作开始之前,客户机(Web浏览器)首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。这里是8080端口

     4)客户机发送请求命令

       建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可内容。

     5)服务器响应

     服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

        实体消息是服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

     6)服务器关闭TCP连接

     一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码

    Connection:keep-alive

   TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

 

 

一.背景

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

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

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

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

2. 计算机相互之间的通信

        互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。实际上这个是两个协议:

        TCP : Transmission Control Protocol 传输控制协议和IP: Internet Protocol  网际协议。

        IP:计算机之间的通信

        IP协议是计算机用来相互识别的通信的一种机制,每台计算机都有一个IP.用来在internet上标识这台计算机。  IP 负责在因特网上发送和接收数据包。通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送。IP 负责将每个包路由至它的目的地。

        IP协议仅仅是允许计算机相互发消息,但它并不检查消息是否以发送的次序到达而且没有损坏(只检查关键的头数据)。为了提供消息检验功能,直接在IP协议上设计了传输控制协议TCP.

        

       TCP : 应用程序之间的通信

       TCP确保数据包以正确的次序到达,并且尝试确认数据包的内容没有改变。TCP在IP地址之上引端口(port),它允许计算机通过网络提供各种服务。一些端口号为不同的服务保留,而且这些端口号是众所周知。

       服务或者守护进程:在提供服务的机器上,有程序监听特定端口上的通信流。例如大多数电子邮件通信流出现在端口25上,用于wwww的HTTP通信流出现在80端口上。

       当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信,占用两个计算机之间整个的通信线路。TCP 用于从应用程序到网络的数据传输控制。TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。

       TCP/IP 就是TCP 和 IP 两个协议在一起协同工作,有上下层次的关系。

       TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信。IP 负责计算机之间的通信。TCP 负责将数据分割并装入 IP 包,IP 负责将包发送至接受者,传输过程要经IP路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址,然后在它们到达的时候重新组合它们。

 

2.传输模型

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

图片 2

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

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

 

6. HTTP协议栈中各层数据流      

             首先我们看看客户端请求的时候,数据在各层协议的数据组织如下图:

         图片 3

            而服务器解析客户机请求就是反向操作的过程,如下图:

           图片 4        

       客户机发起一次请求的时候:

       客户机会将请求封装成http数据包-->封装成Tcp数据包-->封装成Ip数据包--->封装成数据帧--->硬件将帧数据转换成bit流(二进制数据)-->最后通过物理硬件(网卡芯片)发送到指定地点。

       服务器硬件首先收到bit流....... 然后转换成ip数据包。于是通过ip协议解析Ip数据包,然后又发现里面是tcp数据包,就通过tcp协议解析Tcp数据包,接着发现是http数据包通过http协议再解析http数据包得到数据。

 

 

 

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

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

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

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

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

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

图片 5

图3 消息加密过程

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

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

FlyBack 

4. HTTP请求响应模型   

       HTTP由请求和响应构成,是一个标准的客户端服务器模型(B/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:

    图片 6

 

       HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP遵循请求(Request)/应答(Response)模型。客户机(浏览器)向服务器发送请求,服务器处理请求并返回适当的应答。所有HTTP连接都被构造成一套请求和应答。

 

版权声明:本文由ca888发布于IT操作系统,转载请注明出处:互联网七层协商的形象表达