前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTPS原理

HTTPS原理

作者头像
晚上没宵夜
发布2020-06-02 15:38:46
4320
发布2020-06-02 15:38:46
举报
文章被收录于专栏:Howl同学的学习笔记

面试常客,不得不复习,太功利了

1. 互相交换密钥的机制

近代的加密方法中加密算法是公开的,而密钥确实保密的

1.1 共享密钥

加密和解密都用同一个密钥,其有个最大挑战如何安全传递密钥,拥有密钥就拥有加密解密的能力,如果被互联网转发密钥被窃听,那么就失去了加密的意义

1.2 公开密钥

加密和解密使用不同的密钥,这两把密钥叫做公钥和私钥。客户端用服务器的公钥加密内容发送出去,服务器就用自己的密钥进行解密

1.3 二者对比

公开密钥的处理更加复杂,效率更低,但没有共享密钥使用同把密钥的风险

1.4 HTTPS混用加密机制

采用共享和公开密钥混合机制,先用公开密钥将共享密钥加密发送给对方,然后确保交换的密钥安全前提下,使用共享密钥通信,综合了二者的优缺点

1.5 证明公开密钥正确性的证书

公开密钥还是存在一些问题,无法证明自身是货真价实的密钥。比如在使用交换公钥时遭到了中间人攻击,那么双方在一开始的交换密钥都被掉包,后续的通信对于中间人透明,此时需要使用证书来证明对方的身份,步骤:

  • 公认信赖的CA机构认证某个站点后,对该站点的公开密钥签名放入证书中
  • 服务器有相关请求,会响应自己的证书给客服端
  • 客户端收到证书会使用CA的公开密钥解密,然后验证签名的合法性,通过则验证了公开密钥的正确性
  • CA的公开密钥会植入浏览器内部
  • 中间虽可用CA的公钥对证书篡改,但无CA密钥是无法加密的和签名的验证的

2. HTTPS

HTTPS并非一种新协议,只是HTTP通信接口部分使用了SSL/TLS协议代替。正常HTTP直接和TCP通信,使用HTTPS时,HTTP先和SSL/TCL通信,然后后者再与TCP通信,简单就是应用层和传输层增加了SSL/TCL

SSL由网景公司提出,后标准化后称为TLS

2.1 HTTP的缺点
  • 通信使用明文
  • 不验证通信方的身份
  • 无法验证报文的完整性

由此出现了HTTPS

2.2 HTTPS安全通信机制
  1. 客户端发起连接,TCP的三次握手

--------------------HTTPS当然也是基于TCP-------------------------------------

  1. 客户端发送ClientHello,包含支持的SSL版本和组件
  2. 服务器响应ServerHello,包含上面筛选的SSL版本和组件
  3. 服务器发送CA证书
  4. 服务器发送ServerHelleDone通知客户端,最初的握手结束

------------------------第一阶段的握手协商结束------------------------------------

  1. 客服端响应ClientKeyExchange报文,包含服务器公钥加密的随机密码串(证书验证通过)
  2. 客服端响应ChangeCipherSpec报文,告诉服务器,此后采用Pre-master secret密钥加密
  3. 客户端发送Finished报文,包含至今全部报文的校验值,若服务器能加密校验值,则这次握手成功
  4. 服务器端同样响应ChangeCipherSpec报文
  5. 同样发送Finished报文
  6. 二者的Finished报文交换后,SSL建立,此后进行HTTP协议交流,受SSL保护

参考

《图解TCP/IP》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 互相交换密钥的机制
    • 1.1 共享密钥
      • 1.2 公开密钥
        • 1.3 二者对比
          • 1.4 HTTPS混用加密机制
            • 1.5 证明公开密钥正确性的证书
            • 2. HTTPS
              • 2.1 HTTP的缺点
                • 2.2 HTTPS安全通信机制
                相关产品与服务
                SSL 证书
                腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档