HTTP与HTTPS

作者: han_zero | 来源:发表于2019-08-28 15:33 被阅读0次

    定义

    http:超文本传输协议 HyperText Transfer Protocol
    https:HyperText Transfer Protocol over Secure Socket Layer 在http的基础上加了安全套接层

    avatar

    HTTP的返回报文

    avatar
    avatar

    HTTP与HTTPS的区别

    1. HTTPS协议需要到CA申请证书,一般免费证书很少
    2. HTTP是明文传输,HTTPS则是具有安全性的SSL加密传输
    3. HTTP端口号80,HTTPS端口号443
    4. HTTPS可进行加密传输、身份认证,比较难抓包,比HTTP安全

    HTTPS为何安全?

    • SSL:Secure Sockets Layer 安全套接层
    • TLS:Transport Layer Security 传输层安全
    • TLS与SSL在传输层之上对网络连接进行加密,为网络通信提供安全及数据完整性

    IP -> TCP -> HTTP
    IP -> TCP -> SSL&TSL -> HTTPS

    SSL协议为了解决以下风险而设计:

    • 所有信息都是加密传播,第三方无法窃听
    • 具有校验机制,一旦被篡改,通信双方都会立刻发现
    • 具备身份证书,防止身份被冒充
    avatar

    稍作解释:

    • 首先客户端传递一条握手信息给服务端,包含一个随机数1、加密算法
    • 服务端收到后会响应一条握手信息给客户端,包含一个随机数2、匹配好的加密算法
    • 服务端传递证书给客户端
    • 客户端校验服务端的证书
      <ol>
      <li>验证服务端证书的数字摘要和服务证书解密之后的内容是否一致,是否被篡改</li>
      <li>根据证书链主机查找 根证书默认会被植入 浏览器&操作系统 是否可信任列表</li>
      </ol>
    • 客户端组装会话秘钥
      根据number1,number2以及预主秘钥组装会话秘 钥
    • 用公钥加密预主秘钥传递给服务端
    • 服务端用私钥解密预主秘钥
    • 服务端组装会话秘钥
    • 客户端使用组装的会话秘钥发送一条加密消息到服务端,验证是否服务端能否接收客户端加密过的数据消息
    • 服务端使用组装的会话秘钥发送一条加密消息到客户度,验证客户端是否能解析加密后的数据

    (SSL连接建立完成)

    相关文章

      网友评论

        本文标题:HTTP与HTTPS

        本文链接:https://www.haomeiwen.com/subject/sqwpectx.html