TCP/IP详解卷1 读书笔记:SSL协议

 

SSL(Secure Socket Layer),安全套接层,是一种加密协议,能加密的东西很多,不止Http,还可以是邮件,VPN等。即SSL可以加密Http协议、POP3协议、SMTP协议、VPN等。

HTTPS(HTTP Over SSL),是用基于SSL加密的HTTP。

SSL是私有加密协议。

 

TLS(Transport LayerSecurity),传输层安全,是公有加密协议。TLS只是对SSLv3做了些修改和增加。

 


 

 

SSL工作在应用层协议和TCP协议之间,用于加密应用层数据。如正常的数据包封装的格式(未使用SSL)是这样的:


现在使用了SSL后,数据包格式变成了这样:


其中,HTTP头及数据,被SSL加密后,作为SSL的数据部分,然后将SSL及加密后的数据,一起做为TCP的数据部分。这样整个TCP的数据部分都是加密过的,因此也就保障了TCP数据部分的安全性。在发送端加密,然后在接收端解密(解密在与发送端的对等层)。


SSL保障的是传输层数据的安全,即TCP的数据部分的安全(TCP数据部分是经过加密的),因此SSL是传输层安全。

 

 

IPSecVPN工作在IP层与TCP层之间,对于正常的数据包格式如:


经过IPSec VPN加密后,数据包格式变为:


IPSec VPN是加密整个TCP数据包(包括TCP头和数据部分),然后加上IPSec头部,将数据包交由IP层进行转发。在发送端加密,在接收端解密(解密在与发送端的对等层)。

 

IPSec VPN保障的是IP层的数据安全,即IP层数据部分的安全(整个IP层的数据包都是经过加密的),因此IPSec VPN网络层安全。

 

 

SSLIPSec VPN的区别只是加密的地方不同而已。

 

 

 

SSL连接建立及数据传输过程:

 

(上述过程可在fiddler4抓Http包进行分析)

第1个包(客户端到服务端),ClientHello,告诉接服务器,我是什么浏览器,我支持哪些算法。

第2个包(服务端到客户端),ServerHello,告诉客户端,所选择的算法,证书(证书中包含server的公钥)。

第3个包(客户端到服务器),客户端使用第二个包中的服务器的公钥加密随机产生的密钥(客户端的),得到一个密钥包,将该包交给服务器,服务器使用服务器的私钥进行解密;ChangeCliperSpec,密钥变更说明包,该包告诉服务器,从该包后面的所有包,我开始加密了,你就准备解密。相当于告诉服务器,该包及以前的包,都是明文的,但该包以后的包,都是密文的。

第4个包(服务端到客户端),ChangeCliperSpec,密钥变更说明包,该包告诉客户端,从该包后面的所有包,我开始加密了,你就准备解密。相当于告诉客户端,该包及以前的包,都是明文的,但该包以后的包,都是密文的。

第5个包(双向),双方收发密文包。

第6个包,关闭通知包。

 

(上面的这些包,每一个包,都可能被拆分为多个TCP包,也可能不拆分)


 

 

使用SSL加密,可以使用stunnel打通隧道,然后再使用netcat进行收发数据,即是加密的。

 


 

你可能感兴趣的:(网络协议)