美文网首页
Https 数字证书验证原理

Https 数字证书验证原理

作者: 一个追寻者的故事 | 来源:发表于2020-03-09 15:18 被阅读0次

一、Https为什么安全


讲到https安全,那就看http为什么不安全。
1、明文传输
2、信息被监听和篡改。
3、无法验证通讯对象,有被冒充的风险。
HTTPS就是为解决这些问题的。

二、概念介绍


消息摘要(Message Digest)

消息摘要就是在消息的基础上,执行一个单向的Hash函数,生成一个固定长度的Hash值,这个hash值就是消息摘要。(只能进行正向的信息摘要,无法从中恢复出任何消息)

消息摘要只能保证消息的完整性,并不能保证消息不可篡改。

常用信息摘要算法:MD5(128bit) SHA-1(160bit) SHA-256(256bit)

数字签名(Digital Signature)

类似于现实世界的签名,像是"签章"一样。
签名的作用:(保证可认证、不可抵赖、完整性)
1、保证消息来源的准确性。
2、消息没有被篡改。
3、不可否认性。

一个完整的数字签名方案应该有两部分组成:签名算法 和 验证算法。事实上,任何一种公钥密码体制都可以单独作为一种数字签名方案使用(私钥加密,公钥解密),现实中 数字签名是 非对称机密技术 + 信息摘要 技术的结合。既满足了性能,又能保证安全性。

签名过程:(通过签名过程得到内容 就是 原始信息的数字签名
1、用摘要算法对消息进行摘要。
2、再把摘要用信源的私钥加密。

验证过程
1、原始消息使用同样摘要算法得到信息摘要H1
2、使用预先得到的公钥解密 数字签名,得消息摘要M1(若无法解密,则代表签名被篡改过,验证失败)
3、判断H1 M1是否相等。相等,没有被篡改,且法发送者明确。不等,则代表被篡改。

数字证书

刚才说了那么多,都是基于一个前提:消息的接受者必须事先得到正确公钥,而很多时候根本就不具备事先沟通公钥的信息通道。数字证书是为了解决公钥安全发放的问题,数字证书由权威的CA机构颁发,证书的主要内容有:

  • 证书所有者的公钥
  • 证书的颁发机构
  • 证书有效期
  • 数字证书的签名 & 数字证书的签名算法(用来验证证书有效性)
  • 数字证书的摘要 & 数字证书的摘要算法(用来验证证书的有效性)
    数字证书用来解决公钥的发放问题,只要证书能通过验证,就能保证持有者的公钥无误,从而达到安全发放的目的。
    数字证书本质上是 CA机构使用 根私钥 把相关信息(证书所有者信息、公钥、发证机构等等)进行加密。

三、Https请求原理及数字证书验证。


https.jpg

Https中的加密算法包含: 非对称加密 和 对称加密算法。

  • 最终对信息进行加密的是对称加密算法,让通信双方都能拿到对称加密算法的秘钥,简称R,就能够互相理解双方信息,即便被截获也无法,解密内容。
  • R 是通过非对称加密算法进行传递的。公钥 + R = 密文,把密文给到服务端,只有服务端通过 私钥 解密,最后服务端拿到通信钥匙 R

这就是涉及到 公钥的安全发放问题了,用户不可能直接对接那么多服务端网站,且也没有实现沟通的机制。有第三方机构CA来做证书的发放。CA除了跟别人办法证书以外,它自己也有证书,这个证书是自己给自己颁发的,为了区分我们称它为根证书。根证书也有自己的公钥和私钥。CA机构 根公钥在设备出厂的时候就已经内置到了设备中,像Chrome这种软件中也内置了,所以CA机构根公钥是一定可信的,只有这样才能验证 证书的真伪,从而确定 证书中发放的公钥的真伪。

浏览器对于证书的认证包含三点信息:

  • 证书是否为受信任的权威机构颁发
  • 证书是否被篡改过。
  • 证书是否为我们想要的那个证书。

认证具体过程具体过程:

1、浏览器在接收到证书以后,就要开始验证工作了。首先从证书中获取证书的颁发机构。然后去寻找此颁发机构对应的根证书,如果系统中没有则代表此机构是不受信任的。

2、如果是受信任的的CA机构,从根证书中找到公钥,用根公钥去解密证书签名(如果解密失败,代表证书被篡改,或者破坏),得到证书指纹(摘要);再用指纹(摘要)算法对证书的原内容进行计算;两次结果进行对比,如果一致,代表内容未被篡改,否则代表证书内容被篡改。

3、在保证证书没有被篡改的基础上,再验证使用者使用的URL 和 我们请求的URL是否相等。相等,代表当前浏览连接的网站也是正确的,而不是一些钓鱼网之类的。

相关文章

  • Https 数字证书验证原理

    一、Https为什么安全 讲到https安全,那就看http为什么不安全。1、明文传输2、信息被监听和篡改。3、无...

  • 【HTTP】Https 原理与验证过程

    Https 原理与验证过程 一、参考文章 HTTPS 基础OpenSSL 与 SSL 数字证书概念贴 iOS 中对...

  • HTTPS的数字证书验证原理

    https://blog.csdn.net/liuxingrong666/article/details/8386...

  • HTTPS安全的一些tk

    参考连接: 网络数据传输安全及SSH与HTTPS工作原理数字证书原理,公钥私钥加密原理 Https协议详解数字证书...

  • HTTPS数字证书与验证

    数字证书作用 我们知道HTTPS比HTTP安全,它的安全在于通信过程被加密。然而加密算法是用对称加密,也就是说,客...

  • Chromium https 数字证书验证

    一般验证数字证书我们一般分为验证其是否在有效期、是否被吊销以及是否由上级CA签发。但在浏览器的实现中,相对会比较繁...

  • 【iOS开发】Https 原理与验证过程

    一、参考文章HTTPS 基础OpenSSL 与 SSL 数字证书概念贴iOS 中对 HTTPS 证书链的验证二、学...

  • 数字证书原理

    数字证书原理 一、HTTPS通信原理以下内容实际非常接近HTTPS的通信原理。 客户端向服务器请求信息,服务器将一...

  • iOS 中对 HTTPS 证书链的验证

    这篇文章是我一边学习证书验证一边记录的内容,稍微整理了下,共扯了三部分内容: HTTPS 简要原理; 数字证书的内...

  • iOS 中对 HTTPS 证书链的验证

    这篇文章是我一边学习证书验证一边记录的内容,稍微整理了下,共扯了三部分内容: HTTPS 简要原理;数字证书的内容...

网友评论

      本文标题:Https 数字证书验证原理

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