HTTPS加密原理,搞懂什么是对称加密、非对称加密、证书、数字签名

这篇具有很好参考价值的文章主要介绍了HTTPS加密原理,搞懂什么是对称加密、非对称加密、证书、数字签名。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

众所周知,http协议是一种未加密的协议,我们未加密的数据,在传输的过程中会经过一个又一个的物理节点,如果被人通过抓包的方式拿到了我们的数据,将会给我们造成无法估量的损失。
为了解决解决这个问题,https应运而生。https通过加密的手段,保障的数据的安全性。那https的怎么加密的呢?这就是我们接下来需要讨论的内容。

1、对称加密

什么是对称加密?
简单说就是有一个密钥,它可以加密一段信息,也可以对加密后的信息进行解密,和我们日常生活中用的钥匙作用差不多。
比如说小明需要给小红发送一条:Hello World,为了保证数据安全,小明把所有字母往后移动了一位,发送时的消息就变成了:Ifmmp Xpsm。

小红收到消息后,再把字母顺序往前移动一位,就得到了Hello World。

这样,即使攻击人拿到密文,他不知道怎么解密的密钥,也无法得到密文内容。

  • 小明需要给小红发送一条:Hello World
  • 小明使用对称加密得到密文Ifmmp Xpsm
  • 传输密文
  • 小红收到密文,进行解密,得到Hello World

浏览器无服务器之间使用了非对称加密吗,https,http,安全
使用对称加密,即使数据被截获,但是他没有密钥,他无法得到密文内容,也无法修改。
但是对称加密有一个问题,如何让双方都用同一个密钥进行数据加密,同时不被别人知道
如果浏览器内部就预存了网站A的密钥,且可以确保除了浏览器和网站A,不会有任何外人知道该密钥,那理论上用对称加密是可以的,这样浏览器只要预存好世界上所有HTTPS网站的密钥就行了!这么做显然不现实。

2、非对称加密

什么是非对称加密?
简单说就是有两把密钥,通常一把叫做公钥、一把叫私钥,用公钥加密的内容必须用私钥才能解开,同样,私钥加密的内容只有公钥能解开。
如何使用非对称加密呢?
假如,客户端需要向服务器发送一条数据,浏览器需要保障数据的安全性,加密流程如下:

  1. 某网站服务器拥有公钥A与对应的私钥A’;客户端拥有公钥B与对应的私钥B’。
  2. 客户端请求服务器的公钥A,公钥A是公开的,可以明文传输
  3. 客户端使用公钥A进行加密,将加密的数据发送给服务器
  4. 服务器收到数据,使用私钥A`进行解密,拿到数据
    反之,服务器向客户端发送数据也是同样的流程。
    浏览器无服务器之间使用了非对称加密吗,https,http,安全
    非对称加密算法在解决了双方交换密钥的问题,但非对称加密算法非常耗时,而对称加密快很多。那我们能不能运用非对称加密的特性解决前面提到的对称加密的漏洞?

3、非对称加密+对称加密

非对称加密能让双方进行数据交换,但性能不行,对称加密性能不错,但是无法确认双方的加密密钥,那用非对称加密完成对称加密的密钥交换,之后再用对称加密进行加密不就可以了吗?
流程如下:

  1. 某网站拥有用于非对称加密的公钥A、私钥A’。
  2. 浏览器向网站服务器请求,服务器把公钥A明文给传输浏览器。
  3. 浏览器随机生成一个用于对称加密的密钥X,用公钥A加密后传给服务器。
  4. 服务器拿到后用私钥A’解密得到密钥X。
  5. 这样双方就都拥有密钥X了,且别人无法知道它。之后双方所有数据都通过密钥X加密解密即可。

完美!这样非对称加密的性能问题也解决了。
但是,这里面还是有漏洞。
浏览器无服务器之间使用了非对称加密吗,https,http,安全

如果在数据传输过程中,中间人劫持到了数据,此时他的确无法得到浏览器生成的密钥X,这个密钥本身被公钥A加密了,只有服务器才有私钥A’解开它,然而中间人却完全不需要拿到私钥A’就能干坏事了。请看:

  1. 某网站有用于非对称加密的公钥A、私钥A’。
  2. 浏览器向网站服务器请求,服务器把公钥A明文给传输浏览器。
  3. 中间人劫持到公钥A,保存下来,把数据包中的公钥A替换成自己伪造的公钥B(它当然也拥有公钥B对应的私钥B’)
  4. 浏览器生成一个用于对称加密的密钥X,用公钥B(浏览器无法得知公钥被替换了)加密后传给服务器。
  5. 中间人劫持后用私钥B’解密得到密钥X,再用公钥A加密后传给服务器
  6. 服务器拿到后用私钥A’解密得到密钥X。

通过这一通操作,攻击者就知道服务器和浏览器之间的公钥了,这样,对称加密就形同虚设了。
为什么会发生这样的事?因为浏览器拿到公钥的时候,他无法确定这个公钥是服务器的。在传输过程中,公钥被篡改,一方用篡改后的公钥加密,非对称加密形同虚设。

4、数字证书

如何证明浏览器收到的公钥一定是该网站的公钥?这个时候,就要引入第三方机构了,也被称作CA机构
CA机构怎么解决浏览器无法确认收到的公钥是不是网站自己的问题呢?
网站只需要向CA机构申领一份数字证书,这份证书里面,包括了网站的公钥网站的域名和其他一些网站基本信息。
然后CA机构用自己的私钥对证书进行加密,同时生成一段密文,这段密码就叫做数字签名

数字证书的生成过程如下:

  1. CA机构拥有非对称加密的私钥和公钥。
  2. 网站需要申请数字证书,只需将自己网站的数据给CA机构(网站公钥网站域名等)
  3. CA机构对证书明文数据进行hash。
  4. 对hash后的值用私钥加密,得到数字签名

浏览器无服务器之间使用了非对称加密吗,https,http,安全
证书的内容大概长这样
浏览器无服务器之间使用了非对称加密吗,https,http,安全

之后的浏览器验证流程如下:

  • 拿到证书,从证书中得到公钥,数字签名等数据。
  • 用CA机构的公钥对数字签名解密(浏览器内置CA机构的公钥),得到S。
  • 用hash算法对明文进行hash得到T。
  • 显然通过以上步骤,T’应当等于S‘,除非明文或签名被篡改。所以此时比较S’是否等于T’,等于则表明证书可信。如果证书的数据没有被改动过,S和T应该是相同的,则证书可信任,浏览器就用证书中的公钥加密数据。
  • 如果S和T,则说明证书已被篡改,证书不可信,从而终止向服务器传输信息,防止信息泄露给中间人。

** 为什么S和T不一样,说明证书就被篡改了呢?**
这里是理解证书认证的关键,仔细思考,数字签名是用CA机构的私钥加密的,CA机构的私钥只有CA机构自己知道,如果证书被中间人劫持,他拿到证书,修改了证书中的公钥,因为公钥修改后,数据的Hash值,就和数字签名解密后的Hash值不同了,浏览器就知道证书被动过,而中间人无法伪造数字签名,因为数字签名是用CA机构的私钥加密的,他要伪造,就必须拿到CA机构的私钥!

中间人有可能把证书掉包吗
假设有另一个网站B也拿到了CA机构认证的证书,它想劫持网站A的信息。于是它成为中间人拦截到了A传给浏览器的证书,然后替换成自己的证书,传给浏览器,之后浏览器就会错误地拿到B的证书里的公钥了,这确实会导致上文“中间人攻击”那里提到的漏洞?

其实这并不会发生,因为证书里包含了网站A的信息,包括域名,浏览器把证书里的域名与自己请求的域名比对一下就知道有没有被掉包了。

浏览器怎么得到CA机构的公钥
CA机构的公钥去通过网络获取,如果通过网络去获取,那CA机构生成的证书就没意义了。
一般浏览器会内置主流的CA机构的公钥。文章来源地址https://www.toymoban.com/news/detail-790850.html

到了这里,关于HTTPS加密原理,搞懂什么是对称加密、非对称加密、证书、数字签名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是HTTPS加密协议?HTTPS安全传输原理,SSL和TLS介绍,NGINX如何配置SSL证书

    HTTPS是超文本传输协议(HTTP)的安全版本。它使用SSL(安全套接层)或TLS(传输层安全)加密协议来保护数据传输的安全性和机密性,以防止未经授权的访问和窃听。HTTPS协议通常用于处理敏感信息,如在线支付或登录凭证等。可以通过URL的前缀来识别一个网站是否使用了H

    2024年02月03日
    浏览(38)
  • 对称加密 非对称加密 AC认证 https原理

    对称加密是一种加密算法,使用相同的密钥(也称为对称密钥)用于加密和解密数据。在对称加密中,发送方使用密钥对要发送的数据进行加密,接收方使用相同的密钥对接收到的密文进行解密,从而还原成原始的明文数据。 对称加密的特点包括: 快速高效:对称加密算法

    2024年02月10日
    浏览(26)
  • 区块链:对称加密、非对称加密和数字签名

    本篇博客仅从区块链的角度介绍加密算法及数字签名,重在使用,至于加密算法的内部原理这里不会详细介绍。 1 对称加密 1.1 定义   对称加密,指的是信息发送者和接收者通过使用的相同的密钥来完成数据的加密和解密。常用的对称加密算法有:AES、DES、3DES等。 1.2 AES算

    2024年02月10日
    浏览(27)
  • 【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

    前言: 大家好,我是 良辰丫 ,这篇文章我们就来学习一下Https协议,了解Https的工作原理,对称加密以及非对称加密.💞💞💞 🧑个人主页:良辰针不戳 📖所属专栏:javaEE初阶 🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。 💦期待大家三

    2024年02月10日
    浏览(31)
  • 软考:中级软件设计师-信息系统的安全属性,对称加密和非对称加密,信息摘要,数字签名技术,数字信封与PGP

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年04月22日
    浏览(39)
  • 软考:中级软件设计师:信息系统的安全属性,对称加密和非对称加密,信息摘要,数字签名技术,数字信封与PGP

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年02月10日
    浏览(35)
  • 算法2_非对称加密算法之ECDSA(椭圆曲线数字签名算法)

    ECDSA(椭圆曲线数字签名算法) AES(高级加密标准): =对称加密 ​ 对业务数据进行加密,防止他人可以看见 ECDSA(椭圆曲线数字签名算法):=非对称加密算法(公钥和私钥) ​ 验证数据的真实性,防止业务数据被篡改 SHA(安全哈希算法)=哈希算法 1. 作用: 因为ECDSA椭圆曲线数字签名算法获得

    2024年02月02日
    浏览(48)
  • 数字证书:签名证书&加密证书

    数字证书是基于认证机构(可信第三方)实现的,若不懂请复习PKI相关知识,我国为了加强对数据机密性的管控,采用双证书体系(签名证书加密证书),签名密钥对由用户自己产生,而加密密钥对则是由KMC(密钥管理中心)生成。 ———————————————————

    2024年02月08日
    浏览(36)
  • 什么是https 加密协议?https证书安装部署

    HTTPS协议是安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。 HTTP协议采用明文传输信息,存在信息窃听、信息篡改和信息劫持

    2024年02月04日
    浏览(38)
  • Https、CA证书、数字签名

    Https Http协议 Http协议是目前应用比较多应用层协议,浏览器对于Http协议已经实现。Http协议基本的构成部分有 请求行 : 请求报文的第一行 请求头 : 从第二行开始为请求头内容的开始部分。每一个请求头都是由K-V键值对组成。 请求体: 请求头完成后以空行结束、从空行开始

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包