密码学 | 数字证书:应用

🥑原文:数字签名和数字证书的原理解读 - 知乎

🥑前文:密码学 | 数字签名 + 数字证书 - CSDN

🥑提示:把客户端想成 Alice,服务器端想成 Bob 即可。客户端实际上指的是客户端浏览器。

下面,我们看一个应用 数字证书 的实例:HTTPS 协议,该协议主要用于网页加密。

Step1:首先,客户端向服务器发出加密请求。

为什么说是加密请求啊?这里不是申请一个安全连接吗?

Step2:服务器用自己的私钥加密网页以后,连同自己的数字证书,一起发送给客户端。

个人理解:这里客户端是 Alice 的角色,Server 是 Bob 的角色。Bob 发送给 Alice 的信息包含:私钥加密后的网页内容、数字签名、数字证书。其中,数字证书是证书授权中心 CA 颁发给 Bob 的。数字证书用于提供 Bob 的公钥,防止其他人的公钥冒名顶替。

Step3:在客户端浏览器的 证书管理 ,有 受信任的根证书颁发机构 列表。客户端浏览器会根据这张列表,查看颁发服务器数字证书的 CA 的公钥是否在列表中。

上图源自 Chrome 浏览器

个人理解:客户端浏览器首先要判断颁发该数字证书的 CA 靠不靠谱。

Step4:如果数字证书不是由受信任的机构颁发的,客户端浏览器会发出警告。

找不到高清的图啊,不知道各个浏览器有没有对这些安全警告的汇总😇

Step5:如果数字证书记载的网址,与你正在浏览的网址不一致,那么说明该数字证书可能被冒用,客户端浏览器会发出警告。

在谷歌上只找到了年代久远的安全警告😇

说明:数字证书不仅包含了服务器的公钥,它还包含了服务器的身份信息,比如服务器的名称即网址。

Step6:如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息了。

个人理解:如果数字证书是可靠的,说明证书中的服务器公钥没有被冒名顶替,那么以后在传输信息的时候,客户端可以放心地使用服务器的公钥对信息进行加密,并且只有服务器的私钥才能解开加密后的信息。

相关推荐

  1. 密码——数字签名

    2024-04-22 15:14:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 15:14:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 15:14:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 15:14:04       87 阅读
  4. Python语言-面向对象

    2024-04-22 15:14:04       96 阅读

热门阅读

  1. Process in Semiconductor(半导体工艺)

    2024-04-22 15:14:04       58 阅读
  2. 【Vue 异步更新和 $nextTick】

    2024-04-22 15:14:04       38 阅读
  3. 单例设计模式

    2024-04-22 15:14:04       34 阅读
  4. 设计模式-23种基础模式目录

    2024-04-22 15:14:04       32 阅读
  5. 【数据结构】5.ArrayList与顺序表

    2024-04-22 15:14:04       29 阅读