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

HTTPS是如何保证安全传输的

我们都知道https是保证安全传输的,那么究竟是如何保证的呢?
答:通过使⽤对称加密、⾮对称加密、数字证书等⽅式来保证数据的安全传输。
下面,就让我们来详细了解一下,具体是如何做的:

  1. 客户端向服务端发送数据之前,需要先建⽴TCP连接,所以需要先建⽴TCP连接,建⽴完TCP连接后,
    服务端会先给客户端发送公钥,客户端拿到公钥后就可以⽤来加密数据了,服务端到时候接收到数据就可以⽤私钥解密数据,这种就是通过⾮对称加密来传输数据
  2. 不过⾮对称加密⽐对称加密要慢,所以不能直接使⽤⾮对称加密来传输请求数据,所以可以通过⾮对称
    加密的⽅式来传输对称加密的秘钥,之后就可以使⽤对称加密来传输请求数据了
  3. 但是仅仅通过⾮对称加密+对称加密还不⾜以能保证数据传输的绝对安全,因为服务端向客户端发送公
    钥时,可能会被截取
  4. 所以为了安全的传输公钥,需要⽤到数字证书,数字证书是具有公信⼒、⼤家都认可的,服务端向客户
    端发送公钥时,可以把公钥和服务端相关信息通过Hash算法⽣成消息摘要,再通过数字证书提供的私钥对消息摘要进⾏加密⽣成数字签名,在把没进⾏Hash算法之前的信息和数字签名⼀起形成数字证书,最后把数字证书发送给客户端,客户端收到数字证书后,就会通过数字证书提供的公钥来解密数字证书,从⽽得到⾮对称加密要⽤到的公钥。
  5. 在这个过程中,就算有中间⼈拦截到服务端发出来的数字证书,虽然它可以解密得到⾮对称加密要使⽤的公钥,但是中间⼈是办法伪造数字证书发给客户端的,因为客户端上内嵌的数字证书是全球具有公信⼒的,某个⽹站如果要⽀持https,都是需要申请数字证书的私钥的,中间⼈如果要⽣成能被客户端解
    析的数字证书,也是要申请私钥的,所以是⽐较安全了。

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

相关文章:

  • 四期书生大模型实战营(【基础岛】- 第1关 | 书生·浦语大模型开源开放体系)
  • C++中类的默认成员函数
  • 解决编译 fast-lio-lc 算法时遇到的error方法
  • Linux 服务器上部署 .NET Core 应用程序,值得收藏!
  • CSS transform动画
  • 基于开源 AI 智能名片 S2B2C 商城小程序的视频号交易小程序优化研究
  • spring boot设置多环境的配置文件
  • 【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
  • 今日leetCode 454. 四数相加 II
  • code eintegrity npm err sha512
  • 如何在没有备份的情况下恢复 Mac 上丢失的数据
  • Ubuntu下beanstalkd无法绑定局域网IP地址以及消息队列beanstalkd上的error: JOB_TOO_BIG的解决
  • C# HttpListener 实现的HTTP Sever浏览器文件下载
  • 配电房监控 配电柜监测系统方案简介@卓振思众
  • 基于C语言--解读main(int agrc,char* argv[ ])(命令行参数+环境变量)
  • 【数据结构与算法】排序算法之快速排序(简)
  • WPF自定义Dialog模板,内容用不同的Page填充
  • TypeScript入门 (二)控制语句
  • C++伟大发明--模版
  • 使用大语言模型(LLM)修正小段乱码(Mojibake)为正常文本
  • expected_conditions(EC) 判断元素的操作
  • OpenCVSharp直方图和傅里叶变换介绍
  • 2024.9.15 Python模式识别新国大EE5907,总结PCA,LDA,Clustering,GMMboosting,SVM
  • istio中serviceentry结合egressgateway的使用
  • 求和(2)
  • C# 禁止程序重复启动