其他分享
首页 > 其他分享> > HTTPS工作原理

HTTPS工作原理

作者:互联网

前言

我们知道使用HTTP协议进行服务端与客户端通信时,信息是通过明文传输的。这期间信息就有可能被拦截或者篡改,为了解决这种场景,HTTPS就出现了。

相对于HTTP来说,HTTPS有如下作用。

接下来就学一下HTTPS的工作原理。

HTTPS的组成

HTTPS是目前使用最多的HTTP安全形式。在使用HTTPS时,所有的HTTP请求和响应数据在发送到网络之前,都会进行加密。

上图展示了HTTP与HTTPS在网络协议中的表现,可以看到在应用层中HTTPS=HTTP + SSL/TLS

什么是SSL/TSL

SSL和TSL是一种安全协议。其中SSL是早起采用的安全协议,后来TSL是在SSL的基础上进一步标准化了SSL协议。在上面的图中可以看到,SSL和TSL位于传输层之上,在数据到达传输层之前都会经过SSL/TSL协议层处理,由SSL/TSL保证数据的机密性和完整性。

SSL/TSL中的加密技术

SSL/TSL安全协议保证数据安全的技术基础就是密码学。接下来,我们先了解一些跟HTTPS有关的密码学知识。

密码和密钥

密码是一种编码方案的算法,也就是使用一种编码方式编码数据,然后使用相应的解码方式解码数据的算法。

密钥是编码的参数。

通过密码+密钥就可以实现加密数据。

对称密钥加密

对称加密就是编码和解码使用同一个密钥的加密技术。

在对称加密中,发送端和接收端使用相同的密钥进行通信。发送端使用共享的密钥发送报文,然后将密文发送到接收端。接收端使用相同密钥解密密文,恢复原始数据。

非对称密钥加密

非对称加密也成为公开密钥加密技术,就是使用不同密钥进行通信的加密技术。

非对称加密技术使用了不同的密钥进行通信,在发送端使用公钥对报文进行加密(公钥就是所用人都可以获取到的密钥),然后在接收端使用私钥对加密的密文进行解密。常见的非对称加密技术是RSA技术。

数字签名

数字签名是附加在报文上的特殊加密校验码。数字签名可以防止报文被篡改,如果有恶意攻击在传输过程在篡改了报文,那么校验的时候校验和就不再匹配,因此可以确认报文被篡改了。

数字签名的加解密过程:

数字证书

数字证书是由权威机构给某网站颁发的一种认可凭证。它主要包含一些认证信息,比如:对象的名称(服务器、组织、个人等)、过期时间、证书颁发者、来自证书发布者的数字签名。

上面的图片就是www.google.com的证书。

我们可以看到在上面讲到数字签名的时候,似乎就可以保证报文的安全了。为什么还需要数字证书呢?这个设想一下这个场景:比如某人A把发送到浏览器的公有密钥进行了替换,同时A在给浏览器发送报文时使用自己的私有密钥对报文进行数字签名,那么浏览器就不能确认报文是否来自于真实服务器。这个时候就可以使用数字证书进行验证,因为数字证书中保存了真实服务器的信息。

HTTPS的工作流程

建立安全传输

在TCP连接建立完成以后,在HTTPS协议中,客户端和服务端会初始化SSL层,也就是安全层。

SSL握手

在发送报文之前,客户端和服务端会进行一次SSL握手,在这个过程中主要完成以下工作:

在SSL会进行很多工作,处理交换一些必要的信息之外,还会对身份进行认证。

这里的认证是通过数字证书进行的,在客户端获取证书后,会采用相应的算法对服务端的身份信息进行验证:

身份认证完成后,客户端与服务端进行密码协商,确定本次连接采用哪种加密算法进行通信。

开始通信

SSL握手完成后,就完成建立了HTTPS通道,客户端与服务端就会根据协商的加密算法进行通信。

整个HTTPS的工作流程可以总结如下:

总结

相较于HTTP协议,HTTPS确保了报文的机密性以及完整性。HTTPS确保这些的依赖就是SSL/TSL协议,SSL/TSL安全协议搭配数字证书保证了报文在传输过程中的绝对安全。

标签:TSL,加密,工作,报文,SSL,密钥,HTTPS,原理
来源: https://blog.csdn.net/programerxiaoer/article/details/99713731