概述
1、
2、
3、
4、
5、
最底层是network,上面是ip层,ic层上面是传输层TCP,在传输层上面夹杂着TLS层。TLS层就是SSL协议加强版。TSL层又包括Alert Protocol、握手协议和加密协议。
6、
整个https协议的架构图。https协议就是http协议加上了加密和认证以及对数据的完整性保护。在使用https协议的时候,使用的是https://。https协议是基于http通信的,那么在https协议中,会先和SSL层进行通信,然后SSL层再和transport层TCP进行通信,所以https协议就是披了层SSL的http协议,并不是一种新的协议。
7、
通信慢:除了发送、接收请求外,还加了层和SSL/TLS的通信。所以整体上通信量会增加。
ssl必须进行加密处理:这样客户端和服务端都需要对数据进行加密和解密处理,所以肯定会比http协议消耗更多的服务器和客户端的资源。
8、
9、
https协议包括对称加密和非对称加密,而SSL层采用的是非对称加密。
10、
对称加密的优点是加密和解密的效率非常高,缺点是数据的发送方和接收方都需要共享同一段密钥,而且还要确保密钥不会泄露给其它人。对多个数据交换需求的客户端或者服务端,两两之间需要分配并维护同一把密钥。这带来的技术成本也是不可接受的。
11、
不对称加密包含两把密钥,私有密钥是一方保管的,而公有密钥是双方公有的。这就决定了发送密文的一方先获得对方的公有密钥,通过已知的算法进行加密处理。对方收到加密信息后,使用自己的私有密钥进行解密。这种加密最有意思的地方是,加密算法的升级,但是加密算法绝对是不会公开的。非对称加密最常用的是RSA算法。RSA算法的原理其实就是将两大素数相乘,这就是非对称加密。
12、
为什么要有数字证书?
对于请求方来说,它怎么能确定它所得到的公钥是它所想要的目标主机发来的呢?而没有经过第三方把数据篡改过呢?这时候就需要一个权威的第三方机构来发放它所依赖的密钥,只有这种机构获得的密钥,它才能解决数字证书的安全问题。
数字证书的颁发过程?
用户首先产生自己的密钥,将公共密钥和私有密钥交给认证中心。认证中心核实身份之后,就会将确认信息发送给用户。然后认证中心就给用户一个数字证书。这个证书就包含了用户的公钥和私钥信息。
13、
首先,客户端发起请求,客户端发起请求,由于算法支持的程度不一样,所以,整个的协议过程也是不一样的。但是通用的过程也就这样四步。首先,在TLS的握手阶段,客户端会告诉服务端自己支持哪些加密算法,此时客户端会将自己支持的算法、协议、随机生成的随机数一起发送给服务端,客户端的随机数要和服务端产生的随机数一起组成master secret的密钥。
第一步,客户端将支持的协议、算法、生成的随机数、要发送的数据打包一起发送给服务端,让服务端做出响应。
服务端在接收到客户端发送过来的数据之后,服务端确定要加密的版本以及加密的算法,也会生成一个随机数,将自己的证书发送给客户端。这个随机数是整个过程的第二个随机数。第一个随机数是客户端发请求的时候产生的随机数,第二个随机数是服务端接收到客户端的请求后,回应所产生的第二个随机数。这就是第二步。
在客户端再次回应的时候,它已经接收到了服务端所发送给它的请求,这时候客户端会对服务端下发的请求进行验证,验证通过后就会进行下列操作。客户端就会再次产生一个随机数,这个随机数是使用证书中公钥加密的,因为步能再用明文了,它是用密文加密的,接着通知客户端编码已经改变了,并且告诉服务端握手结束的通知告诉服务端。服务端再接收到客户端的加密数据之后,会用私钥对这段加密的数据进行解密,并对数据进行验证,一切准备好后,就会发送给客户端一个消息,就是编码改变通知已经收到了,握手结束通知。就是告诉服务端已经接收到了编码结束的通知和握手结束的通知。而客户端在接收到这个握手通知之后,它就可以和服务端进行密钥加密的消息进行通讯了。
这就是SSL/TLS握手的全过程,
由于SSL在握手阶段使用的是非对称加密,一般都是RSA加密算法,所以,这个随机数是不能被随意破解的,这个随机数其实就是所有数据传输安全的保证。
SSL/TLS握手的全过程总结:首先是客户端发起请求,发起请求的过程中会把客户端支持的协议版本、加密及压缩算法、产生的随机数、数据一起打包,发给服务端。服务端接收到请求以后,会确定自己支持的加密版本和算法、服务器的证书、产生的随机数、数据一起打包交给客户端。客户端在验证完证书后,会产生第三个随机数,但是这个随机数是用公钥加密的,并通知服务端编码改变的通知和握手结束的通知。服务端在接收到这些数据后也会验证这些数据的可靠性,然后把编码改变通知和握手结束通知再次告诉客户端。客户端接收到了通知之后,就可以和服务端进行安全的https传输协议了。这就是SSL/TLS握手的全过程。
14、
最后
以上就是明理音响为你收集整理的https协议TLS与SSL握手的全部内容,希望文章能够帮你解决https协议TLS与SSL握手所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复