明文P,加上密码W一混淆之后,变成密文M

让我们从加密开始。

明文 P 和密码 W 被混淆并成为密文 M

如果你不知道W,你就不能从M推回P。也就是说,解密是不可能的。

类似的加密称为对称加密。也就是说,用于加密和解密的密码是相同的。

实际上,加密和解密并不直接使用密码,而是使用密码生成的密钥。

有很多这样的算法,例如AES。

还有一种神奇的加密和解密算法,称为非对称加密。例如,RSA。

非对称加密使用一对密码,一个称为公钥 Pub,另一个称为私钥 Priv。明

文 P 在使用 RSA 加密算法对公钥 Pub 进行模糊处理后,变为密文 M。

这个密文 M 无法用公钥 Pub 解决,需要用私钥 Priv 解密。

同样,明文 P 在使用 RSA 加密算法对私钥 Priv 进行模糊处理后,变为密文 M。

此 M 只能使用公钥 pub 解密。

所谓公钥,就是可以公开、人人使用的密钥。与对称加密中的密码不同,它们应仔细存储。

还有一种算法称为哈希算法。 是单向加密。也就是说,您只能从明文中获取密文,但不能从密文中获取明文。该算法的优点是,即使只有明文的一个数字不同,加密后得到的密文也不同。因此,它通常用于比较明文是否被篡改。

有了上述基础,您就可以开始谈论数字证书了。

首先,有一个权威的证书颁发机构,叫做CA——世界上只有少数几家公司比较权威,这个组织,首先使用RSA生成一对公钥和私钥。

保留私钥并自己隐藏申请证书加注是什么意思,如果可以窃取它,那就太好了。

然后,它使用自己的私钥对其公钥进行签名,从而生成所谓的数字证书。

该过程如下所示:

先生进入一个文档,文档的内容是这样的:

公钥内容颁发

证书的颁发者 ID ----

主题----是此证书颁发给谁。此处的主题和颁发者 ID 相同。

有效期

附加信息

以上所有内容均为明文形式。我们称之为内容P。

然后,使用哈希

算法,计算哈希值P得到哈希值H。

然后利用发行机构的私钥对H进行RSA加密,得到签名信息S。此步骤称为签名,即使用私钥加密某些公共内容的哈希值。

然后将P和S连接到一个文件中,这就是所谓的数字证书。因此,数字证书包括证书持有者的身份信息、证书信息、证书持有者的公钥和签名信息。

现在假设有人拿到了这个证书,如何确认这个证书属于谁?

我们在数字证书中看什么?你可以得到P,你可以得到S。

我们哈希P

使用相同的哈希算法获取哈希值 H1

P 包含公钥、颁发者 ID、主题、到期日期和其他信息。我们使用公钥解密 S 并得到一个值 H'。

这个 H',正常,

或预期正常,在制作数字证书时应将H加密为私钥以S。真的如预期的那样吗?只要比较一下,你就会知道。

现在比较一下H'和H1是否相等,如果相等,那么就证明这个证书是发卡人给题主的证书,符合预期,也就是正常情况。否则,则表示 1.内容 P 已被篡改,或 2.证书不是由 CA 颁发的。

这是自行颁发的证书的验证过程。需要注意的是,这种自发证书的验证并不常用,但如何验证证书的原则是相似的。由于他可以向自己颁发证书

,黑客声称自己是著名的CA,然后向自己颁发证书。那么,验证者如何验证证书是黑客自己的还是著名的CA?

如果您仅按照上述自行颁发的证书验证过程进行操作,则无法确认您的身份。

什么?那是什么模糊?

别担心,这个问题就是CA存在的意义。

所谓全球权威CA只是少数几家公司,这些公司的证书被各种软件厂商设置为“可信根证书”。所谓根证书,就是这个证书是可信的起点,然后这个证书可以用来证明其他证书。就好像你爸爸绝对相信你是个好人,然后你证明你的朋友A是个好人,所以你爸爸相信A也是一个好人。所谓其他证书,自然就是CA颁发的证书,这些证书不能享受CA可信根证书的待遇。

我不知道这些CA如何将他们的数字证书提供给软件供应商并让他们信任他们。如果你知道,你可以给自己颁发一个证书,把它交给微软IE或火狐等,让他们把你的证书嵌入到软件中。通过这种方式,您成为世界权威的CA之一!

现在我们知道,自发的数字证书不容易被各种软件信任。一旦 CA 的根证书存在于用户的系统中,此根证书可用于验证其他证书。并使用经过验证的证书进行身份验证。好吧,这句话有点迂回,继续阅读下文。

让我们举一个例子来说明数字证书用于身份验证,这是HTTPS连接到网站时的身份验证过程。

首先,网站当然是Web服务器,必须具有数字证书。此证书要么由其自身颁发,要么由第三方颁发,通常该第三方是全球权威CA。

IE或Firefox使用https连接到Web服务器,

这时IE或者Firefox最担心的是这个Web服务器是假网站,比如我登录了一个银行网站,结果是连上了一个钓鱼网站,用户没有发现在这个钓鱼网站做了和真实网站相同的页面,输入了自己的用户名和密码, 不就是泄露机密信息吗?

那么如何确认这个网站是正确的呢?这要求浏览器要求 Web 服务器提供自己的数字证书来证明其身份。

网站的身份是什么?域名!例如,知乎 - 与世界分享您的知识,经验和见解(www dot zhihu dot com)。如果你输入,出现和知乎相同的网站,浏览器没有警告你这个网站不合法,结果你输入用户名和密码登录申请证书加注是什么意思,你觉得问题是什么?这就好比让你的下属把李奎叫过来,你不小心说你是李鬼。你属下查了一下114,真的有个李鬼,他的属下自然叫李鬼,原来这个李鬼和李奎挺像的,然后你自己不小心对李鬼说了一句很机密的话,被李鬼知道了。在整个过程中,你只能责怪自己粗心大意。

继续刚才的话题。浏览器需要Web服务器的证书来证明它确实是用户在浏览器中输入的URL,并且没有连接到错误的网站域名,因此Web服务器将其数字证书传输到浏览器。浏览器对其进行验证以确认网站的身份。

请注意两种情况的区别:一,我在浏览器中输入知乎——与世界分享你的知识、经验和感悟(www dot zhihu dot com),连接到黑客的钓鱼服务器而不连接真实服务器;第二,我在浏览器中输入并连接到黑客的网络钓鱼服务器。

现在让我们继续看看这个数字证书如何证明其身份。

假设网站的数字证书由第三方颁发,但该第三方不具有权威性。换句话说,IE等浏览器无法识别向网站颁发证书的CA。

此时,浏览器会警告用户本网站提供的证书不安全,如干净的新系统,首次访问12306网站时,提示:

/5183d065971f98e90357934034a35727_b.png

此警告表示无法确认证明网站身份的数字证书的真实性。由于数字证书无法确认真实性,因此自然无法确认我输入的URL是否连接到真实服务器。

您可以查看此证书。(具体的查看方法,IE在下图中是这样操作的,我用的是访问这个网站时拍摄的图片为例)。

<img src=“/v2-d9276093b9530a3ddc4688a3bdc348a2_b.png” data-rawwidth=“305” data-rawheight=“273”>看看 12306 网站的证书,上面是这样的:

看看12306网站的证书,上面写着这样:

明文P,加上密码W一混淆之后,变成密文M发行

人是SRCA,应由该发行中心发行:

中国铁路数字化认证中心

这是什么意思?也就是说,中国铁路数字认证中心

向12306网站颁发的数字证书,其发行方“中国铁路数字认证中心”,在IE眼中是不可信的。IE 自然认为不受信任的颁发机构颁发的数字证书是不安全的。

那么这个数字证书能证明12306的身份吗?答案是否定的。

因为此证书是由 SRCA 颁发的。也就是说,12306网站的数字证书是用SRCA的私钥签名的。

回想一下,

签名的含义是用私钥加密公共内容的哈希值。这里的公开内容是12306数字证书中的身份信息、12306网站的公钥、证书信息等内容;签名是对SRCA私钥向12306数字证书部分披露的数字证书的HASH值进行加密。由于它是使用 SRCA 的

私钥签名的,因此必须使用 SRCA 的公钥来验证签名。

但是SRCA的公钥在哪里?如何证明此公钥是SRCA的,而不是其他黑客的公钥?这又回到了CA含义的最初问题。我们无法证明这一点。

所以IE没有SRCA的公钥。如果SRCA将自己的数字证书嵌入到IE中,IE自然会拥有它。

由于它没有嵌入在IE中,是否可以手动将SRCA添加到IE中?当然,这就是为什么 12306 需要安装受信任的根证书。

那么这个安装动作,就得非常小心了。如何确认此 SRCA 是合法且权威的 CA,或者如何证明您下载的 CA 证书确实是 SRCA?安装此 CA 证书后,影响将链接。想想我们为什么安装12306网站

提供的根证书?是基于对12306网站的信任。此根证书由网站本身提供,但我们从新闻源和公共行为信任该网站,并安装了根证书。同样,为什么我们相信IE中的嵌入式根证书?人为逼信,不信,就没有办法构建完整的安全链!

让我们看一下从 12306 网站下载的 SRCA 的 CA 证书:

<img src=“/4909412e5cd0d127e6ea65d29f02d40a_b.png” data-rawwidth=“407” data-rawheight=“506”>发行者和发行者都是SRCA,也就是说,他们自己发行。但是这个证书,谁也不能证明它是否可以信任。但是我们人类认为国家是值得信赖的,基于对它的信任。安装此证书后,您可以在IE中查看它:发行

人和发行人是SRCA,也就是说,他们自己发行。但是这个证书,谁也不能证明它是否可以信任。但是我们人类认为国家是值得信赖的,基于对它的信任。安装此证书后,您可以在IE中查看它:

明文P,加上密码W一混淆之后,变成密文M

安装 SRCA 的根证书后,然后访问后,没有警告消息:

<img src=“/0e2d54129a01f0275a1fe409fd0a5da3_b.png” data-rawwidth=“840” data-rawheight=“262” data-original=“/0e2d54129a01f0275a1fe409fd0a5da3_r.png”> 那么SRCA是如何验证12306网站身份的呢?如何验证12306提供的数字证书的有效性?

那么SRCA是如何验证12306网站身份的呢?如何验证12306提供的数字证书的有效性?

即可信根证书,如何验证网站的数字证书?

在上面的描述中,在自颁发的证书中使用公钥可能会产生一些误导。实际上,数字证书中的公钥可以用来验证其他数字证书,也可以用作两个节点之间通信的加密密钥(当然,实际使用的加密密钥是另一回事,这里省略了)。大多数https网站提供的数字证书的目的是确认身份并加密浏览器和Web服务器之间的通信数据。

让我们构建一个场景:

假设 SRCA 的公钥证书已由用户添加为受信任的根证书。也就是说,SRCA的公钥存储在用户的计算机系统中。SRCA的私钥存在于SRCA公司董事长拥有的保险箱中。

首先是12306网站向SRCA申请数字证书。

当12306

网站申请数字证书时,需要提供一些信息,主要包括:12306的URL、12306生成的一对RSA公私钥对中的公钥,以及其他一些相关信息。

SRCA用自己的私钥对12306的应用内容进行签名,形成数字证书,并返回给12306网站。

因此,此证书包括:

1.12306 网站的网址

2.12306 网站使用 RSA 公钥-私钥对中的公钥。

3. 证书颁发者的信息。

4. 证书签名。

在12306网站上,有一个数字证书,

并且数字证书中有一个公钥对应的私钥,由12306自己生成。

数字证书由 SRCA 的私钥签名。SRCA 的公钥已存在于用户的浏览器中。12306

网站的数字证书包括12306中公钥-私钥对的公钥和URL。

当浏览器

连接到12306并要求网站提供证书来证明其身份,网站将数字证书传输到浏览器(一个小问题,这个传输过程安全吗?

浏览器获取12306证书后,发现证书颁发者为SRCA,用SRCA公钥证书验证证书;确认数字证书确实属于12306后,即接入输入URL的服务器是真实12306网站的服务器,没有偏差,因为这个网站提供了一个数字证书,可以证明数字证书中的身份和URL与访问的URL一致;同样是从12306网站提供的数字证书中获取公钥的,这个公钥是网站自己生成的,所以浏览器有12306网站的公钥,12306网站本身也有私钥,两者可以使用这对公钥和私钥来加密通信(当然, 实际通信过程的加密不是这样的,有一些变化)。

具体流程如下:

用户在浏览器地址栏中输入 12306 的 URL 后,由 DNS 解析并连接到 12306 网站的服务器。 12306 網站傳送CERT_12306的數位證書給瀏覽器。

根据数字证书的内容,浏览器发现证书签署者是 SRCA。

浏览器在系统中的受信任根证书中查找 SRCA 的公钥证书并找到它。

浏览器获取 SRCA 公钥证书中的公钥Pub_SRCA。

Pub_SRCA用于解密CERT_12306的签名部分,得到哈希值H1

浏览器计算CERT_12306中的明文内容,获取HASH值H2,比较H1和H2,验证数字证书的有效性。

如果有效,则获取明文内容,发现正在访问的URL

与证书中获取的URL一致,访问正常。身份验证已通过。

因此,12306数字证书的验证是使用SRCA公钥证书中的公钥进行验证的。由于12306网站数字证书由SRCA颁发,因此必须使用SRCA公钥进行验证。

自行颁发的证书是使用其自己的证书中的公钥验证自身。由于自签名证书是使用自己的私钥签名的,因此需要使用自己的公钥进行验证。也就是说,签名时

使用了公私钥对中的哪些私钥,验证签名时需要使用相应的公钥。

虽然网站的数字证书提供公钥,但网站本身拥有私钥。然后浏览器生成一个随机数R1,用公钥加密并发送到服务器,服务器用私钥解密得到随机数R1,随后的两个用这个R1作为对称加密密钥对传输的数据进行加密。这是关于SSL协议的简单过程,原理是这样的,细节可能会更糟。

假设,有一个坏人

谁不知道怎么去访问,不再连接到真正的12306网站,而是连接到自己的网站,通过数字证书,能阻止坏人做这样的事情吗?

数字证书难度是否仅用于HTTPS通信?为什么在Windows上安装驱动程序时,有时还会提示数字证书不合法?

X.509,PEM,CER,CRT是什么意思?

受信任的根证书存储在哪里?如Windows,Linux,Android,各种浏览器等。这些地方安全吗?

当我登录网上银行时,插入的Ukey中包含什么?够安全吗?为什么是这个东西?

......

---

推荐这篇文章,它比我说的逻辑更清晰,更可靠:数字

签名和数字证书技术简介

并推荐这个问题的另一个答案:数字证书的原理是什么? - 张华的回答 - 知乎 数字证书的原理是什么? - 张华的回答 - 知乎

严谨可靠。