首页 > 数据库 > 数据库开发技术 > 网络必会之HTTPS原理初了解
HTTPS简介
HTTPS(超文本传输安全协议)是一个结合了 HTTP 和 SSL/TLS 加密协议的网络通信协议,用于在客户端(例如浏览器)和服务器之间提供安全的数据传输。它通过在传输过程中加密数据、验证通信双方的身份、保证数据的完整性,来确保数据在传输时的安全性。
具体来说,HTTPS 的加密、解密和验证过程如下:
SSL/TLS 握手: 在通信开始时,客户端(例如浏览器)和服务器会进行 SSL/TLS 握手。这是一个协商过程,确定双方使用哪种加密协议、加密算法和密钥交换方法。
数字证书验证: 在 SSL/TLS 握手期间,服务器会向客户端发送数字证书。客户端会验证数字证书的真实性和有效性(例如通过检查证书的签名、有效期等)。如果证书有效且可信,客户端继续通信。
密钥交换: 握手过程中,客户端和服务器会交换信息来协商对称加密密钥(用于加密传输中的数据)。常见的密钥交换方法包括 RSA 或基于椭圆曲线的密钥交换等。
对称加密: 一旦握手成功,双方就可以使用协商好的对称加密密钥进行通信。这种密钥用于加密和解密传输中的数据。
数据完整性检查: 传输的数据在发送和接收时会通过 MAC(消息认证码)或 HMAC(基于哈希的消息认证码)进行完整性校验,确保数据没有被篡改。
数据传输: 在握手阶段完成并确定使用的加密算法和密钥后,客户端和服务器之间的数据传输会通过对称加密的方式进行保护。这确保了数据在传输过程中是加密的、机密的,并且无法被未经授权的人查看或篡改。

详细解释
1. 客户端发起HTTPS请求
这个不需要过多赘述,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。

2. 服务端的配置
采用 HTTPS 协议的服务器需要拥有一套数字证书,该证书可以由服务器自己生成或通过认证机构申请获得。自己制作的证书需要客户端明确信任后才能访问,而使用认证机构颁发的证书通常不会触发客户端的警告,因为它们由受信任的机构签署。
数字证书主要由一对密钥组成:公钥和私钥。一个简单的类比可以帮助理解公钥和私钥的作用:
想象你有一把信封和一个锁。你把锁的钥匙(私钥)牢牢保管在自己手中,并把锁和信封交给其他人。其他人可以用你的锁将一封信锁在信封里,然后将信封发给你。因为只有你有锁的钥匙,你才能解锁信封并阅读里面的内容。
同样地,在 HTTPS 通信中,服务器的数字证书中包含公钥。客户端可以使用这个公钥来加密发送给服务器的敏感数据。而服务器通过私钥解密接收到的数据。因此,只有拥有私钥的服务器才能解密客户端加密的数据。这种方式确保了数据传输的机密性和安全性

3. 传送证书
在 HTTPS 通信中,服务器使用的数字证书实际上是公钥的一个形式,但它包含了更多的信息。除了公钥本身之外,证书还包含了诸如证书的颁发机构、证书的有效期、持有者的信息以及其他元数据。这些信息用于验证证书的合法性和有效性,从而确保通信的安全。
客户端可以通过检查证书的签名、颁发机构和有效期等信息来判断证书是否可信任。如果证书通过了这些验证,客户端会继续与服务器进行加密通信。否则,客户端可能会提示用户证书不受信任。通过这种方式,数字证书在 HTTPS 通信中扮演着确保双方安全交互的重要角色

4. 客户端解析证书
在 HTTPS 通信过程中,客户端的 TLS(传输层安全协议)负责验证服务器的数字证书。在建立安全连接时,客户端首先会检查服务器证书的公钥是否有效,包括证书的颁发机构、过期时间以及其他信息。如果证书存在问题,例如过期或未受信任的颁发机构签署,客户端会显示警告,提示证书存在问题。
如果证书没有问题,客户端会继续建立安全连接。接着,客户端生成一个随机值,并使用服务器证书中的公钥对该随机值进行加密。这就像用一个锁将随机值锁起来,只能通过对应的私钥(即服务器持有的私钥)才能解密。
通过这种方式,客户端和服务器之间建立起安全的通信信道,确保数据传输的机密性和安全性。

5. 传送加密信息
在 HTTPS 通信过程中,客户端生成一个随机值,并使用服务器证书中的公钥对该随机值进行加密。然后,将这个加密后的随机值传输给服务器。
服务器接收到加密后的随机值后,会使用自己的私钥进行解密,得到原始的随机值。这个随机值随后可以作为会话密钥,用于后续客户端和服务器之间的加密通信。这意味着未来的通信可以通过这个随机值生成的密钥进行加密和解密,从而确保数据传输的机密性和安全性。

6. 服务段解密信息
在 HTTPS 通信过程中,客户端生成一个随机值,并用服务器证书中的公钥对其进行加密,然后将这个加密后的随机值传输给服务器。
服务器接收到加密后的随机值后,用自己的私钥解密,从而得到原始的随机值。这个随机值会被用作对称加密的密钥,用于之后客户端和服务器之间的加密通信。这种对称加密的方式意味着双方都使用相同的密钥来加密和解密数据,因此信息的传输可以保持机密性和完整性。
对称加密算法利用随机值(即对称密钥)来对数据进行加密和解密,确保了数据的安全性。由于客户端和服务端都知道这个随机值,双方可以通过相同的密钥进行安全的通信。如果加密算法足够强大,密钥足够复杂,那么传输的数据就会保持安全,不会被未经授权的人解密或篡改。

7. 传输加密后的信息
在 HTTPS 通信过程中,服务端使用私钥对客户端传输过来的随机值进行解密,得到了原始的随机值。然后,服务端使用该随机值作为对称加密密钥,对之后的数据进行加密。接着,服务端将用这个密钥加密后的数据发送给客户端。
客户端接收到加密后的数据后,使用相同的随机值(即对称密钥)进行解密,从而还原出原始数据。由于客户端和服务端都拥有相同的对称密钥,这样的通信方式确保了数据在传输过程中保持机密性和完整性。

8. 客户端解密信息
在 HTTPS 通信过程中,客户端使用之前生成的对称密钥来解密服务端传输过来的加密信息,从而获取解密后的内容。由于整个通信过程使用对称密钥进行加密,第三方即使截获了数据,也无法解密,因为只有客户端和服务端共享这个密钥。这确保了数据在传输过程中保持机密性和安全性。

添加博主
微信号|yfq940-
点个关注!!!
原文作者:步步运维步步坑;如有侵权,请联系管理员删除。