https原理简介

简述:

以下内容忽略非常多细节,仅个人抽象理解,请理性阅读。

https是一种安全的协议。怎么才算安全?

  1. 通信内容加密
  2. 确认通信双方的身份

原理介绍:

​ https采用对称加密来加密通信的内容,比如密钥A,通信双方都持有A就能用来加密解密。

​ 提出问题:密钥A如何传输?

​ 密钥肯定不能明文传输,这里就要用到RSA非对称加密。RSA有一对钥匙,一个是私钥,一个是公钥,私钥自己保密,公钥是可以公开的。用私钥加密的数据,只有对应的公钥才能解密,用公钥加密的数据, 只有对应的私钥才能解密。

​ RSA的问题是效率慢,没有对称加密高效。解决的办法是分两步,(1) 我生成一个对称加密算法的密钥, 用RSA的方式安全发给你, (2) 我们随后就不用RSA了, 只用这个密钥,利用对称加密算法来通信。

​ RSA+对称加密解决了通信内容加密的问题,但是无法解决另一个问题,确认通信双方的身份。举个例子,如果有个中间人,分别截取通信双方的公钥,再分别把自己的公钥给双方,那就gg了,因为你收到的公钥,你怎么能确定这个公钥就是对方的?

解决方案就是数字证书。

  1. ​ 当客户端首次发送https请求时,服务器会生成数字证书返回给客户端。为了防止数字证书被篡改,会有特殊的证书生成步骤:
    1. 把服务器信息和非对称的公钥一起通过hash生成消息摘要,因为只要内容被篡改一点点,消息摘要就会产生巨大变化
    2. 服务器用CA的私钥对hash进行加密,生成数字签名。CA可以理解成第三方公信中心
    3. 把数字签名和(服务器信息和非对称的公钥)组合在一起形成数字证书,发给客户端
    4. 客户端使用同样的hash算法对(服务器信息和非对称的公钥)生成消息摘要
    5. 客户端使用内置的CA公钥(例如浏览器内置的)对数字签名进行解密出消息摘要
    6. 客户端对比两个消息摘要是否相同,相同,则说明非对称公钥是正确的
    7. 至此,客户端获得了正确的RSA公钥,就可以把正确的对称加密密钥发给服务器。双方就可以愉快加密通信了
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 专题一,主要介绍HTTPS建立安全链接的原理,包括非对称加密、对称加密、CA认证等知识,还包括对一些业界常用算法的...
    有何不可12317阅读 2,615评论 0 0
  • 数字证书原理 - 无恙 - 博客园 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明...
    拉肚阅读 5,644评论 0 3
  • 前言 文中首先解释加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的...
    sunny冲哥阅读 8,275评论 0 2
  • 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现...
    已认证用户阅读 9,311评论 1 4
  • 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现...
    sunny冲哥阅读 5,272评论 0 3

友情链接更多精彩内容