关于HTTPS认证,这里解决你全部疑惑

2021年11月24日 阅读数:4
这篇文章主要向大家介绍关于HTTPS认证,这里解决你全部疑惑,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
摘要:从签发证书到数据加密交互,按流程的进展讲解HTTPS认证过程内容和原理。

本文分享自华为云社区《故事+图文,一次性解决你对HTTPS认证过程的全部疑惑》,做者:breakDraw。web

讲解HTTPS认证原理的文章很是多,也算是作web开发的基础知识了。可是这类文章看过去都有一个特色——知识点超级多,很乱。算法

证书、签名、公钥、私钥、哈希、CA证书、网站证书、对称非对称加解密……一堆概念夹杂在一块儿,致使不少人对这块只能说个因此然,却没法作到彻底理解。浏览器

这里我就用 从签发证书到数据加密交互,按流程完整解释, 并在其中穿插图片和问题,来完整解释这个原理。安全

1、创业前的资质申请——证书签发

某天,我作了一个网站, 若是直接开放给全部人访问,那么就属于无证经营, 每一个访问我网站的人,都会收到浏览器以下的警告。性能

为了解决这个问题, 我须要去工商局也就是证书颁发机构CA( Certificate Authority),去获取一个证书,来证实我这个网站是安全的。网站

CA机构要求我提供身份证 、 店铺信息等一系列申请信息,整合成一个server.req的文件, 提交给他。加密

CA机构会有专门的人进行审查,确认个人资质、合法性。审查经过后,他们就开始了证书签发工做。url

一、首先, 他们以为个人网站信息太长了,很差用来作检查或者对比,因而用一个 哈希算法(能够是sha256),将其变成一个固定长度的字符串, 这个字符串被他们叫作 摘要(Digest)spa

二、接着,他们请出了CA机构中的最高领导,将这个摘要加上领导名字 从新在纸上写了一遍,然而写出来时倒是一串看不懂的线条。 这是领导独有的写法,除了他本身,任何人都没法模仿。并且普通人也根本看不懂。操作系统

这个领导的名字叫作 CA私钥。而这个看似瞎写的过程, 叫作私钥签名,即对摘要重写并暗含了本身的名字,只是通常人根本看不懂罢了。

三、接着他们把个人网站信息、CA签名 打包成了一个证书,颁发给我,叫我好好保管, 若是有顾客问我,我就能够把这个证书拿出来给他们看。

我疑惑地问道: “你这个签名写得乱七八糟,谁也看不懂啊,顾客咋确认我这个是合法的证书?”
CA证书的机构笑了笑,说:“你只管提供就行了,顾客们自有办法”。

最终整个颁发的过程以下所示:

2、究极谨慎的顾客——证书验证

那天,我游荡在街头,无心发现一个我很感兴趣的店,我进入了店内,却发现这家店是新开的。

若是我不确认这家店的合法性,那么颇有可能进入一家黑店,被宰或者被犯罪都有可能。

此刻我必须确认这个店家的证书是CA机构签发的,仍是他本身造假的证书。

而我正好认识一位和CA私钥一块儿出生长大的兄弟 CA公钥(公私钥都是同时生成的), 虽然没法模仿领导的笔迹,可是可以勉强看懂。

CA公钥确认了签名是CA私钥所写,并且可以正确解读出签名中的摘要信息。他还将其与经营证书上全部文字生成的新摘要进行比对, 发现确实一致,所以他认定这是合法的证书。

上面这个过程,就叫作验签, 以下所示


但是,通常能解读出签名是CA私钥所写就够了, 为何还要比对一下摘要信息呢?

由于签名公钥只能识别出这个字是私钥所写,可是私钥曾经为别人写过不少的签名。万一造假者把签名换成了其余正规店铺里抄来的签名,那怎么办? 因此确定得确认下这个签名的内容是否是和证书上所写的店铺是同一家。

上面的过程是单向认证,即客户端验证服务端。

若是商家担忧碰到居心不良的顾客, 那么一样可让顾客提供 相似签发过程的证书,以证实本身也是可信的顾客, 这就是双向认证。

3、超级而隐秘的交易

上面的店家和顾客,经过证书验证,确认了各自的身份。接着便决定互相进行快递交易。
但由于路上不安全,常常有强盗或者小偷出没,如何保证快递不被盗取很重要。

顾客打算把钱(通讯数据)放在一个密码箱里, 而后设置好密码,再快递过去。
这个密码叫作会话密钥,任何人拿到密码都能打开密码箱,因此也叫对称密钥

可是店家该怎么知道这个密码呢?

若是顾客直接把密码箱的密码快递过去, 密码在路上被小偷看到了, 那后面发出去的钱岂不是就能被小偷解开并拿到了?

这时候顾客想起来,当时拿到的商家经营证书里, 携带了一个叫 公钥的东西, 经过这个东西, 能够把 密码箱密码 变成另外一串看不懂的数字, 只有商家本身可以解读这个数字。

因而顾客用公钥生成了一个 加密后的密码, 并成功送到了店家手中。

店家拿到后, 使用本身的私钥成功解读出了这个密码。接着店家和顾客就 都把密码箱设置成密码,进行快递, 除了店家和顾客, 其余人都没法知道这个密码是多少, 劫匪们也就无从下手了。

4、关键问题

上面过程当中,还有几个关键问题,这里提出,能够先本身思考,再看答案:

Q: 为何不使用非对称密钥加密 传输数据, 而要用对称密钥这样绕一大圈?

A:对称算法的加解密性能比非对称算法快不少, 因此非对称只用于会话密钥的传输便可, 只须要一次。

Q: 为何数据开始传输以后不须要再作验签, 难道者中间的数据就不会再被人篡改或者替换吗?

A:不会,有3个缘由保证:

  1. 会话密钥是会话级别, 动态生成的,只有这一次链接才会用到。所以之前废弃的会话密钥不用担忧被人拿去利用。
  2. 创建链接并传递会话密钥以前,已经经过验签确认过对方身份是可信的。
  3. 没有任何第三方知道会话密钥是什么。所以第三方攻击人没法用正确的会话密钥加密数据,即没法作到伪造会话密钥来欺骗接收者的目的。

Q: CA根证书可能被造假吗?
例如黑客修改了用户机器中的CA证书,致使CA的公钥被替换了, 后面访问了黑客所在的网址时,就会验签成功。

A:若是真的能修改的话,那么是可行的。
可是操做系统基本会内置著名CA的公钥,除非黑客已经能直接触碰你的操做系统底层了,不然基本办不到。

5、总结和完整大图

上文的顾客就是客户端(也能够是浏览器), 店家就是服务端(网站), 工商局就是可信CA机构(或者某域内本身设置的颁发机构也行)。

而一些要点总结以下:

  • CA私钥用于签名, CA公钥用于验签
  • 要先生成摘要,再签名。目的是为了验签后确认来源是所签的服务端。
  • 服务端公钥用于加密, 服务端私钥用于解密。
  • 传输数据使用对称密钥进行加密和解密。

 

点击关注,第一时间了解华为云新鲜技术~