当前位置:   article > 正文

HTTP协议_http明文传输吗

http明文传输吗

HTTP报文格式

HTTP 协议的请求报文和响应报文的结构基本相同,由以下内容组成:

  • 请求行(Request Line):描述请求或者响应的基本信息
  • 请求头(Request Header):更详细的说明报文信息,使用 key-value 形式存储。
  • 空行
  • 请求数据:传输的数据,不一定是纯文本,可以说图片、视频等二进制数据。
    在这里插入图片描述

HTTPS 协议

HTTP 协议是明文传输的,整个传输过程完全透明,可以很轻易的在通信链路上拦截、修改甚至伪造请求/响应报文,十分不安全。所以诞生了安全的HTTPS协议

HTTP 协议是直接与 传输层(TCP协议)直接通信的。HTTPS 协议也并非一种新的应用层协议,而是演变成 HTTP 先与 SSL 通信,再由 SSL 与 TCP 通信。SSL 即安全套接层。
在这里插入图片描述

SSL/TLS 工作原理

HTTPS 协议的主要功能都依赖于 SSL/TLS 协议实现的,SSL/TLS 的功能实现主要涉及到三种算法:摘要算法、对称加密和非对称加密。

摘要算法

摘要算法可以将任意长度的数据经过一系列计算,得到一串独一无二的“摘要”字符串,并且这个过程是不可逆的,无法从“摘要”字符串得出原始数据。而任意细微的变动,都会得到一个与之完全不同的“摘要”字符串。因此可以把明文信息的摘要和明文加密后的内容一起发送,数据接收后对明文解密,重新对数据获取摘要,如果结果比对不一致,说明数据已经遭人篡改。常见的摘要算法有MD5。

对称加密

加密方和解密方使用同一个密钥进行加解密。没有密钥就没有办法解密,反过来说任何人有了密钥之后都能进行解密了。常见的有AES。

这种加密方式必须涉及到密钥的传输,而密钥的传输也不能保证一定是安全的。

非对称加密

非对称加密涉及到一对密钥:公钥和私钥, 公钥是可以随意发布的,而私钥只能保存在自己的机器上,不能让任何人知道。用公钥加密后的数据只能用私钥解密,加解密用的不是同一把密钥,所以叫非对称加密。

A 用 B 公开出来的密钥加密,B 收到密文后用自己的私有密钥解密,得到原始的数据;反过来 B 用 A 的公钥加密,A 收到密文后用私钥解密。常见的算法有RSA算法。

优点:算法公开,加密和解密使用不同的密钥,私钥不用通过网络传输,安全性高。
缺点:涉及到大量的数据计算,加密和解密都比对称加密速度慢很多。

HTTPS 采用的方式

HTTPS 采用的是 对称加密 + 非对称加密。具体流程:

  1. client 获取到 server 的公开密钥后,client 随机生成一个私钥,用 server 的公开密钥对 client 的私钥加密,发送到 server;
  2. server 用私钥解密后得到了 client 的私钥,这时 client 和 server 都获得了一致的对称加密密钥;
  3. client 和 server 使用 client 的私钥进行对称加密传输。
CA 证书

server 端是可能会被伪造的,这时候就依赖于 client 和 server 双方都信赖的第三方机构了。

采用 HTTPS 协议的 server 都需要有一套数字 CA(Certification Authority) 证书,证书需要严格的审核之后颁发,颁发的同时会产生一个公钥和私钥,公钥附带在证书的信息中,是公开的;而私钥由 server 自己保存,不可泄漏。客户端收到证书后会进行验证,如果证书机构是不可信机构,或者证书已经过期,或者证书上的域名和实际域名不一致,就会向来访者发出警告。证书的传输过程还会附上数字签名,数字前面是对证书信息进行摘要算法运算后得到的一串字符串,防止证书内容被篡改。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/731732
推荐阅读
相关标签
  

闽ICP备14008679号