什么是HTTPS

xiaoxiao2021-03-01  83

首先,在参考《Tomcat内核设计剖析》、《大型网站技术架构》的基础上加了一些个人理解,如有错误或者不全面的地方,还请大家指出。

在知道什么是HTTPS之前,我们首先要知道一下什么是HTTP,HTTP是超文本传输协议的简称,工作在应用层,传输层基于TCP。

HTTP协议是用于从WEB服务器传输超文本到本地浏览器的协议。

HTTPS是HTTP的安全版,本质上是在传输层(TCP)与应用层(HTTP)之间增加了一个SSL或TLS协议层。SSL/TLS协议提供了加解密的机制,所以它比HTTP协议更加安全。

SSL/TLS协议

SSL是使用最广泛的网络加密协议,工作在传输层与应用层之间,被广泛运用于WEB浏览器和服务器之间的身份认证以及传输数据加密,主要为我们提供三方面的服务:

1.证书

认证客户端和服务器,确保数据发送到正确的客户端和服务器。

在整个SSL握手通信过程中,服务端的证书会发送到客户端,客户端对此证书的合法性及身份进行核查。客户端在收到证书后,读取证书中的发布机构,匹配客户端内置的受信任的发布机构列表。如果找不到,则说明这个证书发布机构不可信任,证书自然也不可信。如果是受信任机构发布的,客户端将使用受信任机构的公钥对服务器证书里面的指纹和指纹算法(如md5)进行解密,再利用这个指纹算法计算服务器证书的指纹,把计算出来的指纹与证书里面的指纹进行对比,进而判断证书是否被修改过。

2.加密

防止数据在传输过程中被窃取(防止别人获取到数据内容)。

对称加密算法

所谓对称加密是指加密和解密使用的是同一个密钥(或者可以相互推算)

如:服务端将报文内容用“123”这个密钥加密,传输到客户端后,客户端用“123”这个密钥解密,即可得到报文内容

优点:算法简单、加密效率高、系统开销小,因此适合对大量数据加密。

缺点:加解密使用的是同一个密钥,在远程通信的情况下安全地传输密钥是一个问题,这就类似于鸡生蛋、蛋生鸡的问题。

非对称加密算法

非对称加密算法的加密和解密使用的是不一样的密钥,其中一个对外界公开(公钥),另一个只有密钥的所有者知道(私钥)。用公钥加密的信息只有用私钥才能解开,同理,用私钥加密的信息只有用公钥才能解开。理论上不能通过公钥计算出私钥。

服务端在给客户端发消息的时候,可以先用公钥进行加密,发给客户端,客户端收到消息,用私钥解密,就可得知消息内容。

优点:较为安全

缺点:加解密效率低下,比对称加密算法要慢约百倍

3.签名

维护数据的完整性,确保数据在传输过程中不被篡改

发送端在发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的,可确保数据在传输过程中未被篡改。

 

转载请注明原文地址: https://www.6miu.com/read-4757870.html

最新回复(0)