打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
网络协议——HTTPS(2)数字签名与数字证书

一、数字签名

数字签名(英文:Digital Signature)类似于我们写在纸上的手写签名,它的诞生主要是为了解决如下问题:

1. 证明该文件(或信息)是由你发送的。

2. 证明该文件(或信息)没有被他人篡改过。

其实,我们生活中手写签名的纸质合同也是通过各种形式达到上面2个效果(如:合同一式多份,每份合同都有双方签名等)。

数字签名利用了《对称与非对称加密算法》中介绍的“非对称加密算法”,签名和验证签名的过程如下图(图中的“认证”部分不是数字签名必须的,在“数字证书”部分会介绍):

假设“李四”要发送一份数据给“张三”:

发送者“李四”对数据生成摘要信息(摘要明文A),然后使用“李四”的“私钥”加密摘要信息;接收者“张三”收到加密的摘要信息之后:

  1. 使用“李四”的“公钥”对加密的摘要信息进行解密。若能解密则证明签名是由“李四”所签,这是因为只有“李四”的“私钥”加密的数据才能由“李四”的“公钥”解密,而又只有“李四”才有“李四”的“私钥”。
  2. 并将数据使用相同的摘要算法自己也生成一份摘要信息(摘要明文B),然后比较A和B。若两者相等,则证明了该数据内容没有被他人篡改过。

通过上面的过程我们可以知道:

1. 数字签名具有合法性的前提条件是用于加密散列值的“私钥”没有被泄露。

2. 数字签名不负责数据的加密,若要防止数据被他人窥视,则还要结合其他手段,如使用接收者的“公钥”对数据进行加密等。

如何获取签名者的公钥?如何保证获得的公钥就是签名者的,而不是他人的?基于这些问题,数字签名需要结合后面介绍的数字证书来使用(也就是上图中的“认证”文件)。

二、 数字证书

有了上面的公开密钥算法(也就是“非对称加密算法”)之后,我们就可以通过他人的公开密钥(公钥)与其安全通信了,但是还有一些悬而未决的问题:

  • 如何获取那些从未谋面的人的公钥?
  • 如何存储和吊销这些公钥?
  • 如何确保获取的公钥就是那个人的?

公钥基础设施(public key infrastructure, 简称KPI)就是为了解决这个问题而建立的。PKI的目标就是为了实现不同成员在不见面的情况下进行安全通信的,我们当前采用的PKI模型是基于可信的第三方机构,也就是“证书颁发机构”(certification authority,简称CA)签发的证书。证书中存储了使用“证书颁发机构”的私钥加密之后的申请者的公钥信息。

2.1 数字证书的申请

数字证书需要向“证书颁发机构”提交申请,并通过审核之后才能颁发。因为数字证书中存储的是申请者的公钥,所以如果申请者的私钥丢失或泄漏,就需要向“证书颁发机构”申请注销该证书。

Web服务器向CA申请证书的流程大致如图:

“证书”中主要包含了经过“证书颁发机构”的私钥加密过后的申请者的“公钥”、“证书有效期”、“申请者信息(如域名等)”。更详细的信息,可以参考《HTTPS权威指南》 第3.3.1章节。

2.2 数字证书的验证

以“Chrome浏览器”为例:

浏览器会内置各大著名的“证书颁发机构”的“公钥”,当收到Web服务器返回的“服务器证书”后,Chrome会尝试使用内置的该“证书颁发机构”的“公钥”来解密该证书,如果能解密则说明该证书是“证书颁发机构”颁发的,且没有被篡改过的。然后通过解密所得的“域名”、“证书有效期”来校验该证书是否为该网站所有,是否过期等。

--------------------- 本文来自 china_jeffery 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/china_jeffery/article/details/79568668?utm_source=copy
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
加密、签名和SSL握手机制细节
信息资源安全总论
看完这篇文章,我奶奶都懂了https的原理
和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)
公钥与私钥,HTTPS详解
网上银行安全证书工作原理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服