https加密过程详解
文章目录
- https加密过程详解
- 1. 协议介绍
- 2. HTTP与HTTPS协议比较
- 3. HTTPS协议的优势
- 4. HTTPS协议加密解密过程
- 4.1 非对称加密过程(密钥交换):
- 4.2 对称密钥生成 :
- 4.3 对称加密和解密过程 :
- 5.SSL/TLS协议
- 6. 总结
1. 协议介绍
HTTP协议是互联网上应用最为广泛的协议,它是一种用于从客户端到服务器的请求/响应协议。HTTPS(Hypertext Transfer Protocol Secure)是HTTP协议的安全版本,通过SSL/TLS加密数据包,使得数据传输更加安全。HTTPS协议的主要作用是提供对网站服务器的身份认证,保护用户信息的安全。HTTPS 与 HTTP 相比, 主打的就是安全概念,相关的知识如 SSL 、非对称加密、 CA证书、数据完整性保护 等。 我们将从原理上讲解 HTTPS 的安全性,以及同HTTP的比较说明。
2. HTTP与HTTPS协议比较
HTTP(全称:HyperText Transfer Protocol,超文本传输协议)和HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议)协议的主要区别如下:
-
安全性:HTTPS协议相比HTTP协议更安全,HTTPS协议使用SSL/TLS加密数据包,SSL/TLS加密算法可以对传输的数据进行加密,从而防止中间人攻击、数据篡改、数据伪造等安全风险。
-
端口号:HTTP协议的默认端口号是80,HTTPS协议的默认端口号是443。
-
加密方式:HTTPS协议使用的是SSL/TLS加密协议,SSL/TLS协议可以对传输的数据进行加密,HTTPS协议可以确保数据在传输过程中不被窃听、不被篡改、不被伪造。
-
证书:HTTPS协议需要CA证书,CA证书是由权威的CA机构颁发的,CA机构可以验证用户的身份和服务器的真实性。
协议 | 端口号 | 需要证书 | 加密方式 | 响应效率 |
---|---|---|---|---|
HTTP | 默认80 | 否 | 明文传输 | 低 |
HTTPS | 默认443 | 是 | SSL/TLS加密 | 高 |
3. HTTPS协议的优势
HTTP是一种发送和接收HTML页面的方法,主要用于Web浏览器和网站服务器之间传递信息。它的主要特点如下:
- 采用HTTP协议采用客户端-服务器架构模式,客户端向服务器发送请求,服务器返回相应的响应。这种模式能有效分离应用逻辑,提高系统的可维护性和扩展性。
- 支持多种请求方式,如GET、POST、HEAD、PUT、DELETE等。
- 无状态,HTTP协议是无状态协议,服务器不会保存客户端的状态信息。
- 简单快速,HTTP协议是一种简单快速的协议,可以快速传输文本、图像、视频等静态资源。
- 使用ASCII编码传输数据,数据格式简单,易于阅读。
然而HTTP协议存在一些安全性问题,如: - 通信使用明文,可能被窃听、被篡改,例如密码、信用卡号等敏感信息明文传输。
- 不验证通信方的身份,通信方的身份可能遭遇伪装。
- 无法证明服务器的真实性,通信方可以伪装成任何可信任的服务器。
与HTTP相比,HTTPS在HTTP的基础上通过SSL/TLS加密协议,实现了对传输数据进行加密,从而确保数据在传输过程中不被窃听、不被篡改、不被伪造。
4. HTTPS协议加密解密过程
使用对称加密和非对称加密相结合的方式来实现内容加密。
4.1 非对称加密过程(密钥交换):
非对称加密是一种加密算法,它使用两个密钥,一个是公钥,另一个是私钥。公钥与私钥是一对,如果用公钥加密的数据,只有用对应的私钥才能解密。
在HTTPS协议中,首先进行非对称加密过程,通过密钥交换,使客户端获取到服务器的公钥。
获取公钥的过程如下:
- 首先客户端向服务器发送一个消息,表明它支持的SSL/TLS协议版本、加密算法、压缩方法等。
- 服务器收到请求后,会将数字证书(Certificate)发送给客户端。数字证书是由权威的证书颁发机构(CA)颁发的,包含了服务器的公钥、服务器的身份信息以及CA的签名等信息。
- 客户端收到证书后,会验证证书的合法性,如果证书有效,则成功获取服务器的公钥。
至此,客户端和服务器都知道了服务器的公钥。值得注意的是,在此非对称加密的过程中,只有服务器拥有私钥,通过该公钥加密的信息,只有服务器可以解密。因此,只有服务器可以解密,其他恶意用户无法解密。
4.2 对称密钥生成 :
客户端和服务器都有了服务器的公钥后,就可以使用服务器的公钥加密信息,但是加密的信息只有服务器才能解密。为了实现信息的安全传输,客户端和服务器都需要生成一个对称密钥,并且此对称密钥只有通信双方知道。对称密钥生成的过程如下:
- 客户端受到服务器的公钥后,生成一个随机数(称为预主密钥或“Pre-Master Secret”)。,并使用服务器的公钥加密预主密钥,发送给服务器。由于使用的是公钥加密,只有服务器才能解密,因此只有服务器可以获取到预主密钥。
- 服务器收到加密的随机数后,使用服务器私钥解密,得到原始的预主密钥,此时客户端和服务器都拥有了加密的预主密钥。
- 客户端和服务器都拥有相同的预主密钥后,它们使用这个预主密钥以及之前交换的一些其他信息(如客户端和服务器各自生成的随机数、会话ID等),通过一系列加密算法(如伪随机数生成函数PRF),生成一个对称密钥,用来对通信内容进行加密。
4.3 对称加密和解密过程 :
- 客户端和服务器都使用这个对称密钥进行通信,通信内容在传输过程中被加密。
- 通信内容在传输过程中被加密,只有持有相同对称密钥的客户端和服务器才能解密并读取原始数据。
5.SSL/TLS协议
上述HTTPS协议加密解密过程就是SSL/TLS协议中的握手过程,它是HTTPS协议实现安全通信的核心部分。
HTTPS改变了底层的传输协议,由TCP/IP换成了SSL/TLS。在HTTPS协议中,当客户端访问一个HTTPS网站时,会触发SSL/TLS握手过程。这个过程确保了客户端和服务器之间能够安全地交换密钥,并使用生成的对称密钥对通信内容进行加密。这样,即使数据在传输过程中被截获,也无法被解密和读取,从而保证了通信的安全性。
SSL/TLS协议的主要功能如下:
- 身份认证:SSL/TLS协议可以验证服务器的身份,确保通信方是可信的。
- 数据加密:SSL/TLS协议可以对传输的数据进行加密,从而防止中间人攻击、数据篡改、数据伪造等安全风险。
- 数据完整性:SSL/TLS协议可以确保数据在传输过程中不被篡改。
- 错误处理:SSL/TLS协议可以处理各种错误,如网络连接失败、数据包丢失、攻击者篡改数据等。
- 隐私保护:SSL/TLS协议可以保护用户的隐私信息,防止数据泄露。
6. 总结
感谢大家的观看,希望大家能有所收获。创作不易,如果转载,请注明出处。
参考资料:
- HTTPS加密过程详解
- 架构与思维:了解Http 和 Https的区别(图文详解)