当前位置: 首页 > news >正文

https加密过程详解

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,超文本传输安全协议)协议的主要区别如下:

  1. 安全性:HTTPS协议相比HTTP协议更安全,HTTPS协议使用SSL/TLS加密数据包,SSL/TLS加密算法可以对传输的数据进行加密,从而防止中间人攻击、数据篡改、数据伪造等安全风险。

  2. 端口号:HTTP协议的默认端口号是80,HTTPS协议的默认端口号是443。

  3. 加密方式:HTTPS协议使用的是SSL/TLS加密协议,SSL/TLS协议可以对传输的数据进行加密,HTTPS协议可以确保数据在传输过程中不被窃听、不被篡改、不被伪造。

  4. 证书:HTTPS协议需要CA证书,CA证书是由权威的CA机构颁发的,CA机构可以验证用户的身份和服务器的真实性。

协议端口号需要证书加密方式响应效率
HTTP默认80明文传输
HTTPS默认443SSL/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协议中,首先进行非对称加密过程,通过密钥交换,使客户端获取到服务器的公钥。
获取公钥的过程如下:

  1. 首先客户端向服务器发送一个消息,表明它支持的SSL/TLS协议版本、加密算法、压缩方法等。
  2. 服务器收到请求后,会将数字证书(Certificate)发送给客户端。数字证书是由权威的证书颁发机构(CA)颁发的,包含了服务器的公钥、服务器的身份信息以及CA的签名等信息。
  3. 客户端收到证书后,会验证证书的合法性,如果证书有效,则成功获取服务器的公钥。

至此,客户端和服务器都知道了服务器的公钥。值得注意的是,在此非对称加密的过程中,只有服务器拥有私钥,通过该公钥加密的信息,只有服务器可以解密。因此,只有服务器可以解密,其他恶意用户无法解密。

4.2 对称密钥生成 :

客户端和服务器都有了服务器的公钥后,就可以使用服务器的公钥加密信息,但是加密的信息只有服务器才能解密。为了实现信息的安全传输,客户端和服务器都需要生成一个对称密钥,并且此对称密钥只有通信双方知道。对称密钥生成的过程如下:

  1. 客户端受到服务器的公钥后,生成一个随机数(称为预主密钥或“Pre-Master Secret”)。,并使用服务器的公钥加密预主密钥,发送给服务器。由于使用的是公钥加密,只有服务器才能解密,因此只有服务器可以获取到预主密钥
  2. 服务器收到加密的随机数后,使用服务器私钥解密,得到原始的预主密钥,此时客户端和服务器都拥有了加密的预主密钥
  3. 客户端和服务器都拥有相同的预主密钥后,它们使用这个预主密钥以及之前交换的一些其他信息(如客户端和服务器各自生成的随机数、会话ID等),通过一系列加密算法(如伪随机数生成函数PRF),生成一个对称密钥,用来对通信内容进行加密。

4.3 对称加密和解密过程 :

  1. 客户端和服务器都使用这个对称密钥进行通信,通信内容在传输过程中被加密。
  2. 通信内容在传输过程中被加密,只有持有相同对称密钥的客户端和服务器才能解密并读取原始数据。

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的区别(图文详解)

http://www.mrgr.cn/news/62266.html

相关文章:

  • Android View
  • Hadoop生态圈框架部署(三)- 创建约定目录及jkd1.8安装配置
  • 贪心算法与局部最优解
  • 「Mac畅玩鸿蒙与硬件10」鸿蒙开发环境配置篇10 - 项目实战:计数器应用
  • Java 抽象类与接口(5/30)
  • linux 高级 I/O
  • CountDownLatch与CyclicBarrier的比较应用
  • 头歌网络安全爬虫
  • Redis 发布订阅 总结
  • 图像篡改研究
  • 未来生活中的AI电脑是怎样的
  • 【Python单元测试】pytest框架单元测试常用用例
  • Go性能基础
  • 【股东权益与市值:概念、计算与差异分析】
  • 关于防止布局底部有弹簧而导致的QWidget闪烁问题
  • 12-Docker发布微服务
  • STM32的隐藏定时器---DWT
  • 为什么大模型都是Decoder-only结构?
  • Python入门——iter迭代器—__iter__()方法__next__()方法
  • 详解RabbitMQ三种队列类型
  • Rust编程中的浮点数比较
  • 多线程显示 CSV 2 PNG 倒计时循环播放
  • Redis 淘汰策略 问题
  • leetcode hot100【LeetCode 230. 二叉搜索树中第K小的元素】java实现
  • DOM---鼠标事件类型(移入移出)
  • Java AQS Semaphore 源码