首页 > 其他分享 >HTTPS的实现原理 ---- 核心 SSL/TLS协议

HTTPS的实现原理 ---- 核心 SSL/TLS协议

时间:2022-08-14 15:44:07浏览次数:64  
标签:TLS 公钥 加密 证书 CA ---- SSL HTTPS 服务器

是在应用层和 传输层之间 添加的 安全层(SSL/TLS协议)

  • 端口号 :HTTP 默认是 80,HTTPS 默认是 443。

  • URL 前缀 :HTTP 的 URL 前缀是 http://,HTTPS 的 URL 前缀是 https://

  • 安全性和资源消耗 : HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。

    问题: 如果 服务端的公钥通过明文传输 不安全 可以被攻击者破解 所以就需要用到数字证书CA(数字证书颁发机构)了

  • 所以说,HTTP 安全性没有 HTTPS 高,但是 HTTPS 比 HTTP 耗费更多服务器资源。

公钥传输的信赖性

假设 S 公钥不做加密,在信道中传输,那么很有可能存在一个攻击者 A,发送给 C 一个诈包,假装是 S 公钥,其实是诱饵服务器 AS 的公钥。当 C 收获了 AS 的公钥(却以为是 S 的公钥),C 后续就会使用 AS 公钥对数据进行加密,并在公开信道传输,那么 A 将捕获这些加密包,用 AS 的私钥解密,就截获了 C 本要给 S 发送的内容,而 C 和 S 二人全然不知。

 

解决方法:

为了公钥传输的信赖性问题,第三方机构应运而生——证书颁发机构(CA,Certificate Authority)。CA 默认是受信任的第三方。CA 会给各个服务器颁发证书,证书存储在服务器上,并附有 CA 的电子签名(见下节)。

当客户端(浏览器)向服务器发送 HTTPS 请求时,一定要先获取目标服务器的证书,并根据证书上的信息,检验证书的合法性。一旦客户端检测到证书非法,就会发生错误。客户端获取了服务器的证书后,由于证书的信任性是由第三方信赖机构认证的,而证书上又包含着服务器的公钥信息,客户端就可以放心的信任证书上的公钥就是目标服务器的公钥。

 

而证书是通过数字签名实现的: 证书的认证是传输的第一步 防止 出现攻击者炸包的情况

总结来说,带有证书的公钥传输机制如下:

  1. 设有服务器 S,客户端 C,和第三方信赖机构 CA。

  2. S 信任 CA,CA 是知道 S 公钥的,CA 向 S 颁发证书。并附上 CA 私钥对消息摘要的加密签名。

  3. S 获得 CA 颁发的证书,将该证书传递给 C。

  4. C 获得 S 的证书,信任 CA 并知晓 CA 公钥,使用 CA 公钥对 S 证书上的签名解密,同时对消息进行散列处理,得到摘要。比较摘要,验证 S 证书的真实性。

  5. 如果 C 验证 S 证书是真实的,则信任 S 的公钥(在 S 证书中)。

标签:TLS,公钥,加密,证书,CA,----,SSL,HTTPS,服务器
From: https://www.cnblogs.com/lzbbbb/p/16585547.html

相关文章

  • [ 行业洞察 ]“变”即常态,数字化服务商赴约转型盛宴
     能“熬”成数字化服务商的企业并不多,正在“熬”成数字化服务商的企业还有很多。从只会产品分销和系统集成的“渠道商”,到具备软件幵发和运维服务的“IT服务商”,再到提......
  • [2000年NOIP普及组] 税收与补贴问题(样例解析)
    开始。首先,我们用题目给的样例数据,做成如下的数据表。既不补贴,也不加税。  可见这时商家卖33元是利润最大的,400元。下面,我们动用税和补贴,最终要使得商家卖31元的时候利......
  • 一文带你彻底弄懂ES中的doc_values和fielddata
    基本概念这两个概念比较像,所以大部分时候会放在一起说。这两个概念源于Elasticsearch(后面简称ES)除了强大的搜索功能外,还可以支持排序,聚合之类的操作。搜索需要用到倒排索......
  • vue双向绑定原理分析
    1.vue双向绑定原理vue.js则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应......
  • SSH登录VMware中的Debian虚拟机
    1.虚拟机设置中网络模式使用桥接模式2.虚拟机中启动ssh服务sudo/etc/init.d/sshstart  #启动ssh服务 sudo/etc/init.d/sshstop  #停止ssh服务3.宿主机中连......
  • 机器学习(李宏毅)——终身学习笔记
    LifeLongLearning问题背景Lifelonglearning通常写为LLL,别名:ContinuousLearning、NeverEndigLearning以及Incremental(递增的、渐进的)Learning。难点:本来学完tas......
  • 使用WinDbg调试程序异常和死锁等问题
    一、在使用WinDbg调试之前,我们先使用VS的调试功能1、文件->打开->文件->打开Dump文件 2、调试->选项->调试->符号->添加该应用的.pdb所在的......
  • meterpreter后期攻击使用方法
    Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的......
  • 九、docker swarm主机编排
    一、什么是DockerSwarmSwarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm,它是将一群......
  • 八、docker compose容器编排
    一、Docker-Compose1.1、什么是DockerComposeCompose项目是Docker官方的开源项目,负责实现Docker容器集群的快速编排,开源代码在 https://github.com/docker/comp......