当前位置: 首页 > article >正文

HTTPS(超文本传输安全协议)工作过程

一、简述HTTPS

HTTPS超文本传输协议(全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性  。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。

二、HTTP和HTTPS区别

显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transport Layer Security 安全传输层协议)。有了这个安全层,就确保了互联网上通信双方的通信安全。 

三、工作过程

以客户端访问服务器为例:

1、TCP三次握手

2、"client hello"消息:客户端通过发送"client hello"消息向服务器发起握手请求,该消息包含了客户端所支持的 TLS 版本和密码套件,还有一个"client random"随机字符串。

3、"server hello"消息:服务器发送"server hello"消息对客户端进行回应,该消息包含了数字证书,服务器选择的密码套件和"server random"随机字符串。

证书:包含服务端的公钥、版本号以及证书的相关内容等,CA机构使用自己的私钥进行加密形成数字证书。然后服务器会把自己的公钥连同证书一起发送给客户端,私钥则由服务器自己保存以确保安全。

4、 "premaster secret"字符串:客户端向服务器发送另一个随机字符串"premaster secret (预主密钥)",这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。

客户端用CA公钥解密数字证书,对含有服务器公钥的摘要值进行哈希运算,将前后结果进行比对是否一样

一样则取出服务器公钥,并使用该公钥加密生成premaster secret并发送给服务器

5、服务器使用自己的私钥解密获取premaster secret

6、生成共享密钥:客户端和服务器均使用 client random,server random 和 premaster secret,并通过相同的算法生成相同的共享密钥 KEY

7、客户端就绪:客户端发送经过共享密钥 KEY加密过的"finished"信号。

8、服务器就绪:服务器发送经过共享密钥 KEY加密过的"finished"信号。

9、达成安全通信握手完成,双方使用对称加密进行安全通信。

至此双方达到稳定且安全的传输 

四、注意

1、HTTPS的核心技术为:用非对称密钥加密对称密钥的密钥,双方通过对称密钥来进行文件或数据的传输。

2、公钥加密,私钥解密————称为加密过程

      私钥加密,公钥解密 ————称为解密过程


http://www.kler.cn/a/274047.html

相关文章:

  • 【Elasticsearch】DSL查询文档
  • 芯科科技蓝牙、Wi-Fi、Wi-SUN产品广获业界认可,技术创新引领行业潮流
  • CBSD管理QEMU仿真虚拟机
  • 测试冰淇淋模型
  • opencl 封装简单api
  • “校园疫情防控的技术支持”:疫情管控系统的实现与评估
  • SNMP协议入门:揭秘网络管理的核心技术
  • pytorch升级打怪(五)
  • atoi函数
  • @Builder用法
  • 考研数学|张宇还是武忠祥?怎么选?
  • 一个经典的wordpress产品列表模板含CSS样式
  • unity发布安卓获取读取权限
  • 【数据结构】二叉树OJ题(C语言实现)
  • 边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南 -- 边缘设备图像识别及部署(二)
  • 强缓存和协商缓存的区别
  • 赛昉(starFive)星光2 多媒体框架分析与功能验证
  • LeetCode刷题【树状数组、并查集】
  • Telegraf--采集指定信息
  • HTML案例-1.标签练习
  • 基于HSV色度空间的图像深度信息提取算法FPGA实现,包含testbench和MATLAB辅助验证程序
  • child_process
  • (css)vue 自定义背景 can‘t resolve
  • Unity在UGUI上通过绘制网格顶点自由画线
  • Spring Boot+Vue前后端分离项目如何部署到服务器
  • k8s集群部署elk