数字证书工作原理及基本流程

基本概念


对称加密:加密和解密用同一份密钥;

非对称加密:加密和解密用不同的秘钥,分别是私钥和公钥,这两个密钥是成对出现的,公钥加密过的密文只有对应的私钥能解密;私钥签名过的密文可以通过对应的公钥验签。原则上私钥是不能在网络中传递的。

 

目标


场景:甲要给乙发送一段机密信息

要保证这次信息传递的机密性、完整性、可信赖性,需要规避以下几条潜在风险:

风险一:明文在传递时被截获并读取;

风险二:密文在传递过程中被篡改;

风险三:密文可能并不是来自于甲;

对应解决方案


方案一(对称加密):针对上文中说到的风险一,最直接的方案就是对明文进行加密,这里用到的是对称密钥,然后将密文和密钥分开发送;

问题:就算是分开发送,明文和密钥还是有被同时截获的可能,这就跟没加密一样;

方案二(非对称加密):针对上面这种情况,只要保证对称秘钥在传递时不能读取或解析出来就齐活了。这时需要用到非对称加密算法。乙的公钥是公开的,甲可以拿它来对上文中的对称秘钥进行加密并发送,因为只要乙的私钥不上网,黑客就不能解密出加密过的对称秘钥,也就不能解密密文;

问题:虽然黑客不能解密密文,但是他还没有放弃,他想:至少我可以让乙得不到真正的密文。他的具体做法是:把甲发出的密文和加密过的对称秘钥截获,揉成一团,然后进垃圾桶里。接着伪造了一份明文,创建了一份属于自己的对称秘钥,并用自己的秘钥加密了伪造的明文。因为乙的公钥是公开的,所以黑客也可以轻易的获得,他装模做样的用乙的公钥加密了自己的对称秘钥,然后把秘钥和密文一起发给了乙;

方案三(数字签名):要解决上面的问题,关键在于让乙可以确认他收到的消息确实来自甲。所以就有了数字签名,这次要用到甲的非对称秘钥,不过不是用来加密,而是用来签名。甲在发送消息之前,要先基于明文,应用摘要算法运算出一段摘要,一般用到的就是hash算法,这个算法是公开的,用到的算法要实现两个特性:

1、如果原文动一点,产生的摘要就会不同;

2、摘要结果是不可逆的,你不可能在知道加密算法的情况下基于摘要计算出原文;

产生摘要还不够,甲还需要用自己的私钥对摘要进行重编码。注意,这不是加密,只能称之为重编码,因为甲用私钥加密的密文可以用甲的公钥解密,而甲的公钥也是公开的,任何人都可以用甲的公钥解密出上面说到的那段重编码过的摘要,所以不具有保密性。但是,但是,也只有甲的公钥能正确地解码由甲的私钥重编码过的内容。现在乙会收到三个东西,对称加密过的密文用乙的公钥非对称加密过的对称秘钥,用甲的私钥重编码过的原文摘要,乙需要做的:首先用自己的私钥解密出加密过的对称秘钥,然后用这个秘钥解密密文的原文。乙现在的疑问是:我怎么知道这段明文是甲发出的?这时候就用到那段摘要了。这段摘要现在还是加密状态,需要配合甲的公钥先解密(甲的公钥是这次交互之前,提前从别的渠道弄到的)。解密之后会得到摘要,这时候乙得到摘要不是要去反推原文,一方面原文已经到手了,另一方面由于摘要算法的特性,也不可能反推的出来。现在需要做的,是验证已经得到的原文是不是被篡改过,是不是甲发出的?乙只需用同样的算法处理原文,得到一段摘要,与之前解密出的摘要对比,只要一模一样,就说明这段信息却是来自甲,中途也没有被篡改过。

问题:得出上面的结论是有一个逻辑前提的 ,那就是你提前获取过一份甲的公钥,并且你认为这就是甲的公钥,用这份公钥能正确解码的内容是可以信赖的。但这种想法可能很天真,因为你没有遇到一位技术高超并蓄谋已久的的黑客。如果这位黑客在你第一次获取甲的公钥的时候就将其掉包,那么你后面通讯时所做的所有事情就是一个彻头彻尾的骗局。

方案四(数字证书):因为甲身处网络的另一端,无法到现场确认你手里的公钥,所以要想确认你得到的公钥确实是属于甲的,就需要一个可以信赖的第三方介入了,这个第三方组织要么是政府机构,要么是美国某个经常发布规则的牛X组织。不管这个第三方组织隶属于谁,他都有一个统称,叫CA,他会给甲颁发一个叫数字证书的东西,里面至少包含这个组织的数字签名,公钥,以及甲的公钥。把这些信息绑定在一起的意义在于,甲就可以数字证书的形式发布自己的公钥,所有人在得到证书信息时候首先用CA的公钥对CA的数字签名进行验签,确认证书确实来自这个可以信赖的组织,既然它可以信赖,那他说证书里的公钥是属于甲的,乙就可以相信了。

补充


其实这里还有一个疑问,乙怎么知道他拿到的证书是来自那个可信赖的组织而不是别的土鳖?解决方案是,这些主要的CA机构的数字证书会预置在主流浏览器的安装包内,只要你是从官方渠道下载的浏览器,这种证明链条就可以安全的延伸开。

所以说,机器总是会骗人的,对一段信息的信任最终还是要落到对人的信任上。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我不是一个可以画图的AI,但我可以用文字来描述。 1. PGP加密的实验原理以及加密流程: PGP(Pretty Good Privacy)是一种常用的加密软件,它使用了一种称为“混合加密”的技术,即使用对称密钥加密大块数据,而对称密钥本身则使用非对称密钥加密,以保证对称密钥的安全性。PGP加密的基本流程如下: - 首先,使用接收者的公钥来加密信息。 - 接着,使用发送者自己的私钥来对对称密钥进行加密。 - 最后,将加密后的信息和加密后的对称密钥一起发送给接收者。 接收者收到信息后,先使用自己的私钥来解密对称密钥,然后再使用对称密钥来解密信息。 2. 数字证书是指用数字签名技术来证明某个实体的身份信息的一种电子证书。数字证书通常由证书颁发机构(CA)颁发,包含了证书持有者的身份信息以及公钥等信息。数字证书主要由以下几部分构成: - 证书持有者的身份信息,如姓名、电子邮件地址等; - 证书的有效期; - 证书颁发机构的数字签名; - 证书持有者的公钥等信息。 数字证书的作用是确保通信双方的身份信息,防止信息被篡改或伪造。 3. 保证信息的完整性和真实性可以采用数字签名技术。数字签名是指使用私钥对信息进行加密,从而生成一个数字签名,接收者使用公钥来进行验证,确保信息的完整性和真实性。数字签名的基本过程如下: - 先使用哈希算法对信息进行摘要,得到信息的摘要值; - 使用发送者的私钥对摘要值进行加密,生成数字签名; - 将信息和数字签名一起发送给接收者; - 接收者使用发送者的公钥对数字签名进行解密,得到摘要值; - 对接收到的信息再次进行哈希计算,得到摘要值,与解密得到的摘要值进行比对,确保信息的完整性和真实性。 这样就能够保证信息在传输过程中不被篡改或伪造。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值