数字签名与数字证书

发布时间:2024年01月24日

数字签名与数字证书

本文旨在探讨数字签名以及数字证书在常见场景中的作用以及意义,这里先公布答案。数字签名是一种用于验证数据完整性和真实性的技术。通过数字签名,我们能够确认数据在传输过程中没有被篡改,并且确实来自于预期的发送者。数字证书是数字签名的应用之一,它包含了与证书主体相关的身份信息、公钥以及由证书颁发机构(CA)签发的数字签名。数字证书在建立安全连接和身份验证时发挥着至关重要的作用。

前置知识:

  1. 熟悉对称密码体系与非对称密码体系的区别
  • 非对称密码有公私钥之分,即可通过公钥加密,私钥解密(加密内容)。也可以通过私钥加密,公钥解密(生成数字签名)
  1. 熟悉常见的哈希算法。
  • 对称密码(Symmetric Cryptography)AES,DES
  • 非对称密码(Asymmetric Cryptography)RSA,椭圆圆锥曲线
  • 哈希函数(Hash Functions)MD5、SHA-1、SHA-256

场景一

我们以非对密码算法RSA为例,假设Bob生成一对秘钥(公钥,私钥),Alice要发送一个文件给Bob,文件的内容可能会被Eve窃听,因此,需要对文件的内容进行加密,即Alice通过公钥对文件加密后,将秘文发送给Bob,而手持私钥的Bob则可以对文件进行解密,这样就防止了文件被泄露的可能。
在这里插入图片描述

问题:由于秘钥中公钥是公开的,即所有人都可以获得,如果Eve自己也通过公钥对文件进行加密并发送给Bob,Bob无法判断这个文件的内容是否来自于Alice。

场景二

假设Alice生成一对秘钥(公钥,私钥),Alice要发送一个文件给Bob,Alice通过对文件进行哈希运算获取对应哈希值H,Alice用私钥对这个哈希值进行加密得到数字签名,Alice通过将文件与数字签名打包发送给Bob,那么Bob通过对文件进行哈希运算得到哈希值H,并通过公钥对数字签名进行解密得到原文,将原文与哈希值进行比对,即可判断文件的发送者是Alice。
在这里插入图片描述

问题:这个过程没有对文件进行加密,因此,文件的内容被暴露在通信过程中,窃听者Eve可以知道Alice发送给Bob的内容。

场景三

为了解决以上两个场景中存在的问题,Alice与Bob各自生成秘钥(公钥A,私钥A,公钥B,私钥B),这里还是假设Alice要发送文件给Bob,Alice通过用公钥B对文件进行加密,随后对加密后的文件内容进行哈希运算,得到哈希值,再用私钥A对哈希值进行加密得到该数字签名,随后Alice将加密文件与数字签名发送给Bob,Bob收到加密文件与数字签名后,Bob对加密文件进行哈希运算,并用公钥A对数字签名进行解密并与哈希值进行比对,如果一致,则证实该文件确实由Alice发送而来,随后用私钥B对文件进行解密,得到原文。
通过双方各自持有一套秘钥的操作,可以确保要发送的文件内容已加密,即使被窃听,Eve也无法知道文件内容,又保证了文件的发送者确实是Alice。
在这里插入图片描述

问题:如何确保秘钥中公钥的持有者就是指定的人呢?即公钥=Alice?如果Eve在一开始就冒充Alice生成一套秘钥,并与Bob进行通信,这该如何解决,由此我们将引入数字证书的概念。

场景四

我们将引入一个具备强大公信力的第三方CA(Certificate Authorization),该机构也有一套自己的秘钥体系,即(公钥,私钥)。Alice将自己的身份信息以及公钥发送CA机构,CA机构用私钥对这些内容的哈希值进行加密得到一个数字签名,将数字签名与Alice的身份信息以及Alice持有的公钥三者一体形成了数字证书,由此,当Alice向Bob发送自己的公钥时,会将数字证书发送给Bob,Bob通过公钥(CA机构的公钥)对其中的数字签名进行解密,与对应内容的哈希值进行比对,由此可以证实公钥的确来自于Alice。
在这里插入图片描述

问题:如何保证Bob持有的CA机构的公钥真的来自该机构呢?
通常,在安装操作系统时会形成一个根证书,这是无法修改的,直接在源头保证了公钥的真实性。(这也提醒我们,不要去安装盗版系统)。
上述场景仅为我个人想法,若有表达错误的地方,还望纠正。

文章来源:https://blog.csdn.net/weixin_49389765/article/details/135818114
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。