侧边栏壁纸
博主头像
lac博主等级

行动起来,活在当下

  • 累计撰写 66 篇文章
  • 累计创建 12 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

HTTPS通信

Hude
2024-05-13 / 0 评论 / 0 点赞 / 35 阅读 / 1905 字

写在前面

这是一篇HTTPS通信的整理文章,整理之前大脑中杂乱的HTTPS通信概念和知识,学习就像在拆解一个被打乱的线团,你永远不知道哪一刻突然就找到了关键的解法

HTTPS通信参与方和提供的校验密钥

  • 客户端:基本不提供任何校验参数

  • 服务端:提供公钥给客户端,私钥自己用

  • CA机构:提供数字证书解密公钥,给客户端用,验证证书安全,取得服务器公钥

注意整个过程客户端是不需要提供任何密钥的,客户端只负责发生一个HTTPS请求给服务端,服务端会把公钥发送给客户端,更形象的,发送的其实是数字证书,客户端通过CA机构的公钥来解密数字证书,取得服务器公钥

取得公钥后,第一次做的是非对称加密,即客户端使用服务器公钥,服务端使用私钥,来安全交换会话密钥,后续就不在使用非对称加密的方式来通信,因为已经完成安全连接的建立,也得到了会话密钥,后续就用性能更好的对称加密方式的会话密钥来传输加密报文

关于双向加解密

双向加解密即:

  • 公钥加密-私钥解密:由于私钥持有者只能只有一个,且为服务器,那么说明,这样的加密方式加密的内容安全性是极高的,注意前面提到的公钥也是来自服务端,所以可以理解为用服务器的公钥来加密数据,然后服务器用私钥来解密报文,解密者只能是服务端。多用于加密内容

  • 私钥加密-公钥解密:加密者改为服务端,我们请求的对象都是服务端,因此从服务端私钥加密出来的东西,能保证唯一性和完整性,因为它本身就出自服务端,多用于保证数据的完整性

理解角度还是从密钥的来源分析,公钥私钥都来自服务端,那么自然,只有私钥能解密的数据肯定是安全的,这种情况下可以把公钥和私钥比喻为锁和钥匙,钥匙只有一把,可以生产很多锁,那么当我把装有密文的箱子用锁锁上,发给仅持有一把钥匙的服务端,肯定能保证密文的安全,因为钥匙只有一把

同样的,反过来把私钥比喻成锁,公钥比喻成钥匙,持有钥匙的人现在不止一个,而是多个,而锁只有一把,那么无论谁去开这个锁,数据只有那一份,并且内容都是可以信赖的那个服务端发送的,因为至始至终私钥只有一个人持有,就他一个人去对报文加密,肯定是能保证密文的完整和来源安全的

所以,按照这个特性来说,公钥加密-私钥解密的方式用于加密报文,而私钥加密-公钥解密的方式用于保证数据的完整性

0

评论区