美文网首页
http和https的区别?

http和https的区别?

作者: 综合楼 | 来源:发表于2024-05-07 16:02 被阅读0次

概述

HTTPS 无非就是 HTTP + SSL/TLS
而 SSL/TLS 的功能其实本质上是:如何协商出安全的对称加密密钥,以利用此密钥进行后续通讯的过程。

一、HTTP 为什么不安全

HTTP 由于是明文传输,主要存在三大风险:窃听风险、篡改风险、冒充风险

二、SSL/TLS协议是什么

SSL(Secure Sockets Layer)和TLS(Transport Layer Security)的关系
就像windows XP和windows 7的关系,升级后改了个名字而已
HTTPS=HTTP+TLS

三、对称加密:HTTPS 的最终加密形式。

image.png

如图示:使用对称加密的通信双方使用同一把密钥进行加解密。

优点:对称加密具有加解密速度快,性能高的特点
缺点: 无法解决单向对称密钥的传输泄漏问题

四、非对称加密:解决单向对称密钥的传输问题

非对称加密即加解密双方使用不同的密钥,一把作为公钥,可以公开的,一把作为私钥,不能公开。
公钥加密的密文只有私钥可以解密,私钥加密的内容(私钥签名),也只有公钥可以解密(公钥验签)

image.png

优点:解决单向对称密钥的传输问题
缺点: 耗时(对称加密算法比非对称加密算法快大约1500倍)
问题:公钥如何传输?

五、数字证书:解决公钥传输信任问题

1. 背景

员工入职时,企业一般会要求提供学历证明,显然不是什么阿猫阿狗的本本都可称为学历,这个学历必须由第三方权威机构(Certificate Authority,简称 CA)即教育部颁发。
证书由站点管理者向 CA 申请,申请的时候会提交 DNS 主机名等信息,CA 会根据这些信息生成证书。

image.png
2. Q&A

Q1:如何验证证书的真实性,如何防止证书被篡改?
A1:数字签名:私钥签名,公钥验签。

image.png

Q2:如何解决CA公钥被调包的风险?
A2:实际上此公钥是存在于 CA 证书上,而此证书(也称 Root CA 证书)被操作系统信任,内置在操作系统上的,无需传输。

Q3:charles 这些中间人为啥能抓到明文的包呢?
A3:charles 这些中间人能抓取 HTTPS 包的前提是信任它们的 CA 证书,然后就可以通过替换证书的方式进行瞒天过海。

五、什么是证书信任链?

背景:

前文说了,我们可以向 CA 申请证书,但全世界的顶级 CA(Root CA) 就那么几个,每天都有很多人要向它申请证书,它也忙不过来啊,怎么办呢?继续往下授权啊。

一级 CA 让 Root CA 来签名认证,二级 CA 让一级 CA 来签名认证,Root CA 没有人给他签名认证,只能自己证明自己了,这个证书就叫「自签名证书」或者「根证书」(系统内置)

举例:

证书信任链现在我们看看如果站点申请的是二级 CA 颁发的证书,client 收到之后会如何验证这个证书呢,实际上 service 传了传给二级 CA 的证书外,还会把证书信任链也一起传给客户端,这样客户端会按如下步骤进行验证:

  1. 浏览器就使用信任的根证书(根公钥)解析证书链的根证书得到一级证书的公钥+摘要验签;
  2. 拿一级证书的公钥解密一级证书,拿到二级证书的公钥和摘要验签;
  3. 再然后拿二级证书的公钥解密 server 传过来的二级证书,得到服务器的公钥和摘要验签,验证过程就结束了。

相关文章

  • HTTP和HTTPS区别

    HTTP HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从W...

  • http和https区别

    1.https协议需要到CA申请证书,免费证书少,需要一定的费用 2.http是超文本传输协议,信息是明文传输 3...

  • http和https区别

    超文本传输协议http协议被用于在web浏览器和网站服务器之间传递信息,http协议以明文方式发送内容,不提供任何...

  • http和https区别

    1、http:HyperText Transfer Protocol 2、https就是躺在SSL(secure ...

  • http和https 区别

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何...

  • Http和Https区别

    为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HT...

  • http和https区别

    https://blog.csdn.net/qq_38289815/article/details/8096941...

  • http和https区别

    1、HTTP和HTTPS的基本概念: HTTP:超文本传输协议,是在互联网上应用最广泛的一种网络协议。是一个客户端...

  • http和https区别

    https://blog.csdn.net/qq_38289815/article/details/8096941...

  • HTTP 和 HTTPS 的区别

    首先我们还是简单的描述一下专业定义。 HTTP 是怎么定义的? HTTPS 又是怎么定义的? HTTP (全称 H...

网友评论

      本文标题:http和https的区别?

      本文链接:https://www.haomeiwen.com/subject/qttdfjtx.html