HTTPS 到底是什么?CA 证书又是指什么?

HTTPS 到底是什么?CA 证书又是指什么?

https 相信很多人已经不陌生了,那么 https 到底是怎么一回事?我们通常说用 https 就要证书,那么证书和 CA 又是什么关系了?

HTTPS 出现的背景

我们通常习惯于使用 http 进行数据通信,可以说如果这个世界是个和谐的世界,那么应该就没 http 的事了。不过林子大了,什么鸟都会有。我们在使用 http 的时候镜像面对的一个问题就是安全性。http 的报文传送都是已明文的方式传送,那么问题来了?我怎么知道这个到底是不是原始数据?如果有个中间人截获了然后篡改消息怎么办?基于这个问题,Netscape(开发 Firefox 的公司)搞了一个 SSL 协议。后来 SSL 发展到 v3 版本时,被标准化,这个时候就改名了,叫 TLS。于是乎,在 http 上 加了 SSL/TLS 就变成了我们都知道的 HTTPS。

HTTPS 优势和劣势是什么?

HTTPS 出现了之后,安全协议在 OSI 的分层中属于在 HTTP 之下,传输层之上。

HTTPS 带来的的优势有下面几点:

  1. 数据加密与安全保护;
  2. 认证用户和服务器,可以确保数据正确发送到 客户机和服务器;
  3. SEO 倾斜;

HTTPS 的劣势也比较明显:

  1. HTTPS协议握手阶段比较费时,会使页面的加载时间延长
  2. 加解密会在服务端增加 CPU 的消耗
  3. 证书费用
  4. 相对意义上的安全(拥有 CA 根证书,也是可以攻击的)

这个技术适用的场景

https 适用于所有的网站。但是如果在一些不需要特别注意安全性,又需要快速访问的话,比如博客网站,静态资源这些,我们可以直接使用 http 而不用 https。在下面的一些场景中,最好还是使用 https:

  1. 企业应用
  2. 政务信息
  3. 支付应用
  4. API接口

这个技术的组成部分和关键点(核心思想,核心组件)

https 的关键在于对信息的加密。在传统的 http 的过程我们 AB 两点间的通信是这样的。

2020-06-16-23-11-08

A 直接发送数据给 B。好了。这个时候有个 C 出来了搞事情了:

2020-06-16-23-16-06

看原来好好的一个打招呼,变成了一个莫名其妙~~

那 AB 之间假设要防止 C 的截获并且篡改消息,怎么办?生活中也有这种场景,比如谍战片里面,卧底和接头人约定一个密码串,然后 A 用密码串加密,B 用密码串解密。

2020-06-16-23-24-38

这样只要 AB 都有一个密码本,那就可以加解密了。这也就是我们常说的“对称加密”。但是假如你们之间的这个密码本被 C 获取了呢? C 获取了你们的密码本,它也不告诉 AB,那就跟我们上图一样了。它先解密 A 的数据,然后再篡改数据加密后再发给 B。你看这就危险了吧。

那这个时候我们又要想办法了。B 说这样不安全,这样吧,我用两个密码本,一个公开给你(公钥),一个我自己单独留着(私钥)。你发过来的消息用我的公钥加下密码,我用我的私钥解下密。A 说好,拿着 B 的公钥加密数据后发给了 B。这样一看,嗯,很不错,A 发给 B 的消息再也不会泄漏了。因为就算 C 获取了消息,它没有私钥也没法解密消息啊。A 也这样想,也是,但是你回给我的消息还是可能被截取到,那我这个 A 也搞个公钥和私钥,你发给我的消息,用我的公钥加密下。这样一看,很不错啊。A B 之间发送的消息再也不用担心被第三方知道了,因为 C 无法界面消息啊!

2020-06-16-23-45-49

如果 C 是个好人,那就到此了。可是如果 C 不甘心了?C 想,既然 A 的实际数据我不知道,那我就假装 B 来跟 A 套取数据。比如下面,毕竟 A 是无法判断到底谁是 B 的。如果想不明白,想想谍战片,你说你是好人,你就是好人吗?怎么证明?:

2020-06-16-23-50-39

那好吧。大家一看,不行啊。这的搞个中间人来确认 A 是 A,B 是 B,就像确认你是你妈的儿子一样!!那怎么搞了?你想想,你想要知道你们市的公安局合不合法,那肯定是省公安局说了算。你想要知道省公安局合不合法,那肯定是是国家公安局说了算。所以你只要信任国家公安局,那就可以信任国家公安局认可的下一级公安局,那就可以认可它下面的工具认可的下面的公安局… 中间人也一样,不过我们在通信中引入了一个专用术语 CA(Certificate Authority)证书认证机构。

这个技术的底层原理和关键实现

已有的实现和它之间的对比

本文标题:HTTPS 到底是什么?CA 证书又是指什么?

文章作者:陈志军

发布时间:2020-06-16 22:27:31

原始链接:http://chenzhijun.me/2020/06/16/what-is-the-truely-about-https/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!