HTTPS传输过程

HTTPS:超文本传输安全协议

相较于HTTP明文传输,HTTPS增加了SSL/TLS进行了加密增加了通信的安全性。

SSL和TLS是两个不同的加密方法,SSL是TLS的前身,现在绝大多数浏览器使用的是TLS,所以着重了解以下TLS的概念即可。

首先了解以下加密的概念,信息传输的过程中为了防止别人监听我们就需要对传输的信息进行加密,加密模式有两种对称加密和非对称加密。

  • 对称加密:双方使用相同的公钥和私钥,容易被暴力破解
  • 非对称加密:两个人使用不同的私钥和公钥

非对称加密的过程:

  • 客户端发送自己的公钥
  • 服务器发送自己的公钥,以及使用客户端公钥加密的自己的私钥
  • 客户端发送使用服务器公钥加密的私钥
  • 现在双方都有对方的私钥和公钥就可以进行信息传输了

对称加密也存在它的问题,比如沟通的对象并不能保证是真实的客户端,一旦服务器的私钥泄漏会造成很大的问题,TLS考虑到这种情况采用了两种策略。

  • 数字证书验证
  • 由非对称加密转向对称加密

数字证书这个东西相信都见过,浏览一些问题网站时经常会遇到浏览器提示对方的数字证书有风险

HTTPS四次握手

  • 客户端发送一个client hello,告诉服务端采用的TLS版本及支持的加密套件,同时还有一个随机数这里记作r1

  • 服务器发送一个server hello,告诉客户端,服务器确认支持的TLS版本号及选择的加密套件,生成随机数r2,同时发送服务器的CA证书,如果服务器需要客户端的数字证书的话在这个阶段发出请求

  • 客户端的浏览器根据自己的证书信任列表判断这个服务器是否可信,没问题的话,客户端发送一个client key exchange,使用CA证书中的公钥加密一个随机数r3(预主密钥),同时告诉服务器接下来使用会话密钥通信并提取所有握手数据的摘要供服务器校验

  • 服务器使用私钥对预主密钥进行解密得到第三组随机数,然后使用约定的加密算法使用三组随机数生成会话密钥,服务器进行最后的响应,通知客户端接下来可以使用会话密钥了,同时把之前握手的数据进行提取摘要发送过去供客户端校验

HTTPS优点

  • 整个过程中私钥并未进行传输所以安全性更高,如果服务器的私有不泄露一般不会出现信息泄漏的情况
  • 引入了CA证书,有了证书的加持连接行为变得可控了许多

下面简单看一下数组证书的内容

使用数字证书的好处可以举一个例子,比如半夜你正在一个使用HTTP的网站看小说,这个时候你的室友想要整蛊你一下,他就可以通过一些工具模拟成一个中间人,你和他之间进行交换密钥,他和网站交换密钥,它可以修改你发送的信息然后修改之后再转发给服务器,这个过程神不知鬼不觉。

CA证书验证过程

  • 使用颁发证书机构提供的公钥提取数字签名得到一个证书内容的哈希值,然后自己对证书内容进行哈希,比较两段内容是否一样

所以说引入了CA证书后就可以确保和你通信的就是他本人了,他对证书内容进行修改的话也会因为没有颁发机构的私钥而无法得到正确的数字签名。

相关推荐
三坛海会大神5552 小时前
nginx中配置https详解:配置SSL/TLS证书
nginx·https·ssl
2501_916013742 小时前
App 上架全流程指南,iOS App 上架步骤、App Store 应用发布流程、uni-app 打包上传与审核要点详解
android·ios·小程序·https·uni-app·iphone·webview
网络之路Blog3 小时前
【实战中提升自己完结篇】分支篇之分支之无线、内网安全与QOS部署(完结)
网络协议·安全·网络之路一天·华为华三数通基础·网络设备管理·华为华三二三层交换机对接
小魏的马仔3 小时前
【企业微信】接口报错:javax.net.ssl.SSLHandshakeException
网络协议·企业微信·ssl
roshy6 小时前
RPC 与http对比
网络协议·http·rpc
颜如玉11 小时前
🤲🏻🤲🏻🤲🏻临时重定向一定要能重定向🤲🏻🤲🏻🤲🏻
java·http·源码
慢慢沉15 小时前
UDP与TCP的区别
网络协议·tcp/ip·udp
山楂树下懒猴子17 小时前
ChatAI项目-ChatGPT-SDK组件工程
人工智能·chatgpt·junit·https·log4j·intellij-idea·mybatis
绝世剑仙纪宁19 小时前
TCP 三次握手、四次挥手
网络·网络协议·tcp/ip
索迪迈科技19 小时前
HTTP中Payload的含义解析
网络·网络协议·http