白话解释 电子签名,电子证书,根证书,HTTPS,PKI 到底是什么

2023-10-13 04:30

本文主要是介绍白话解释 电子签名,电子证书,根证书,HTTPS,PKI 到底是什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下白话解释目的为了简单易懂,可能部分措辞并不严谨,不当之处,还望指正。
来源: 个人博客

上回我白话了一下:“对称加密”和“非对称加密”的来龙去脉,收到了不错的反馈,今天接着上一次白话留下的伏笔,说一说“对称加密”和“非对称加密”的实际应用:电子签名(digital signature),电子证书(digital certificate)的来历。

因为“对称加密”以及“非对称加密”是两种不同的“技术”,“技术“嘛,研究出来要“应用”到实际生活中的,当然同一种技术的“应用场景”可以是千差万别的,正如有人发明了“充气轮胎”,然后被运用在了汽车上,飞机上还有自行车上。电子签名和电子证书就是“应用”(正如汽车,飞机,自行车),但是它们的诞生离不开“对称加密”和“非对称加密”这些底层技术(充气轮胎),同样,对于你来说,如果你想明白我接下来白话的“电子签名”和“电子证书”这些“应用”,你需要先读懂我之前白话的“技术”《白话解释 对称加密算法 VS 非对称加密算法》。

========

电子签名 和 电子证书

ok,上回我们说到,李四给张三发消息,先拿到“张三的公钥”,然后使用张三的公钥加密自己的信息,然后把加密后的密文发送给张三,这样可以保证发送的密文只能被“李四得到的公钥”所对应的“密钥”解密(没有黑客的情况下,也就是张三的密钥)。细心地同学可能发现了,我上面对“张三的公钥”加了引号!!!

为什么???因为李四怎么确认他收到的“公钥”就是张三本人的呢?为了更好地继续白话,咱们这里做一个很大胆的假设,比如黑客小刘正在监听李四和张三的对话,我们也假设黑客小刘可以轻易的修改中间传输的信息。那么如果你是李四,你想一下怎么才能把“机密信息”安全的传送给张三?

好,我们分析一下,为了能把“机密信息”安全的传给张三,李四需要:
1,加密的密文不能被破解,更严谨说,是不能被“轻易”破解(因为黑客小刘能截获任何对话)
2,我们用来加密的“公钥”必须确实来在于“张三”本人(不然如果用了黑客小刘的公钥,那么即使李四加密了信息,也会被小刘秒破解)

至于第一点,非对称加密已经替我们解决了密文不会被轻易破解的问题,那么我们现在只要确定所得到的公钥是来自于“张三”本人就可以放心大胆的加密信息,并且发送加密后的密文啦!

那么李四怎么确定“公钥”确实来自于张三本人呢?好办!

张三:四儿,接好了,这是我的公钥:fewfeef#¥#@#@#R###。
李四:三哥,别急嘛,12345?
张三:上山打老虎!
李四:欧了,这是我想对你说的话:$IJ4#(##(#(!
张三:好,讲究!

也就是说李四为了确认张三是不是张三本人,李四先和张三对了一下“暗号”,如果暗号不对,李四就不相信发过来的公钥。

“我怎么感觉哪里有点不对呢?”,嗯,我也觉得哪里不对,因为上面说,黑客小刘正在监听李四和张三的对话,这么明显的,弱智的,坑爹坑队友的暗号,黑客小刘立马就怒了:“把老子当白痴么?!这点小伎俩我都看不出?!”,于是,黑客小刘就学会了这个暗号,当下次李四再想对暗号的时候,黑客小刘可以截断张三和李四的信号,假装是张三:

黑客小刘:四儿,上次那个公钥我不用了,这是我的新公钥:#¥#@#3@223#53R2#5##。
李四:哦.......12345?
黑客小刘:哎,你还不相信你三哥?上山打老虎!
李四:哈哈,三哥你看看这个计划如何?2g3n&&$@#(#@)
黑客小刘:很好(邪恶的笑)
李四:...

这样的话,李四还是被骗了,hmmm,那怎么办呢?李四想了一招,于是有了下面的对话:

黑客小刘:四儿,最近有什么新计划没?。
李四:没。。。有。。。。
黑客小刘:没有?我是你三哥,你说吧。
李四:那你先把你的证书给我看看?
黑客小刘:....神马证...书..?上山打老虎!
--- 李四已下线 ---

哈哈,原来,李四自从上次被坑了之后私下里去找了一个叫“王五”的大哥,想寻求帮助,王五说这个事不难,王五对李四说:“如果你相信我,那么我就来作证人证明张三是张三”。

李四说:“那没问题,那你怎么证明张三是他本人?”。
“我可以给张三颁发一个证书!只要他给你看到这个证书,你就相信他是张三”,王五说。
李四思考了片刻又问道:“那我怎么证明这个证书不是伪造的呢?”
王五说:“因为我可以给你一个神器,这个神器能够让你分辨这个证书确实是我颁发的!”。
“哇!这么吊!那快给我!”,李四渴望的眼神中又闪烁着对王五的崇拜!

其实,这个神奇呢,很简单,你想到了吗?嗯,于是,王五就把这个神器交给了李四,这个神器是:“王五的公钥”!。

哈哈哈哈哈哈。。。

“王五的公钥”!
“王五的公钥”!
“王五的公钥”!

明白了么?明白了么?明白了么?重要的事情说三遍。

来,我们先来整理一下整个过程,李四苦恼于无法分辨出张三是不是他本人,于是去求助于“王五”大哥,希望王五大哥能够帮助证明“张三”是张三,然后王五大哥找到张三,亲自拿到了张三的公钥,检查完毕之后,准备了一份证书,同时签上了自己的”王五“大名,交给了张三,从此以后张三再和李四聊天的时候,就可以出示自己的“证书”,证明他是张三本人了。

其实到这里,整个过程和现实生活中的“公证”过程类似,比如你辛苦努力的学习,终于得到了自己的大学毕业证,但是在现实生活中也有很多投机分子通过非法机构办假证,这样对像你一样努力学习的同学就不公平,所以用人单位为了证明你给他们的毕业证确实是你的,他们怎么办呢?他们要求你去“公证处”去公证一下你的毕业证!公证处这里就是大哥“王五”的角色,用人单位很信任“公证处”,所以只要你拿着“公证处”公证好的文件,用人单位(李四)也就相信了,这个毕业证(公钥)确实是你的。

等一下,公证处的“公证文书”也可以造假啊。

我。。。。

嗯,是的,我还没说完,上面王五给李四说了:

“因为我可以给你一个神器,这个神器能够让你分辨这个证书确实是我颁发的!”。

我们也知道了,这个神器就是王五的一个公钥,那么怎么才能做到证书没有被修改或者伪造呢?

原来,王五的签名不是普通的签名,也不是像公证处那种普通的盖章,而是“电子签名”!因为王五他也有自己的一对“私/公钥”,所以他把张三的“个人信息”以及“公钥信息”用他的私钥加密成“密文”,把这个密文当做“电子签名”签在了证书上,然后这个证书就被称为“电子证书”,最后再把自己的公钥送给了李四,那么李四收到张三给的证书之后,就可以利用王五给的公钥进行解密证书上面的签名,因为证书上的签名是用王五私钥加的密,所以相应的,也只能用王五的公钥进行解密,李四最后将解密出来的公钥信息和收到的公钥信息进行比对,如果信息一致,就证明了两个问题:

  • 张三确实是张三
  • 张三的公钥确实来自张三且没被修改过

最后的最后,因为在这里“王五”的神器(公钥)太关键,它能够决定其他人的证书是否真实有效,所以我们把“王五”的公钥叫做“根证书”

ok,问题顺利解决!

公开密钥基础建设 PKI

上概念时间。。

公开密钥基础建设(英语:Public Key Infrastructure,缩写:PKI),又称公开密钥基础架构、公钥基础建设、公钥基础设施、公开密码匙基础建设或公钥基础架构,是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。

密码学上,公开密钥基础建设借着数字证书认证机构(CA)将用户的个人身份跟公开密钥链接在一起。对每个证书中心用户的身份必须是唯一的。链接关系通过注册和发布过程创建,取决于担保级别,链接关系可能由CA的各种软件或在人为监督下完成。PKI的确定链接关系的这一角色称为注册管理中心(Registration Authority,RA)。RA确保公开密钥和个人身份链接,可以防抵赖。

简单来说,PKI就是利用非对称加密技术为开展安全信息交换提供了一种系统和规范。同时,为了整个系统能运转,一些“特别”的机构也是需要作为“值得信任的第三方”来接受个人或公司提交的“认证申请”。

registration authority (RA), 注册机构,负责接受来自个人和公司的“认证申请”,RA负责审核证书申请者的真实身份,审核通过之后,将申请送给 certificate authority (CA)证书机构,CA将对这些申请签名,并颁发给申请者电子证书,然后申请者得到这些证书之后可以比如:安装在服务器上。

CA机构比如有:digicert,verisign

HTTPS 实例分析

上面我们说到了PKI,我们来看一个具体的例子,以便让大家更直观的理解,我们就拿segmentfault为例。

图片描述

我们可以看到这里显示sf安装了证书,并且显示是valid,证明:

- sf是sf,我没有被劫持到其他站点
- 我和sf之前的通信是加密的,安全的,其他人窃取不到

那么浏览器是怎么验证的sf的证书的呢?还记得上面我提了一句“根证书”么?因为一般我们去申请证书都是通过CA机构,同时大家都信任CA机构比如digicert,verisign,那么我们就可以事先将这些CA机构的“神器”安装到我们的电脑上,也就是这些CA机构的"公钥",我们也称它们为“根证书”。这些根证书是预先安装在我们电脑上的,所以每当我们访问segmentfault的时候,如果segmentfault服务器上安装了证书,他想和我们建立安全通信,就好比上面例子中,张三直接把公钥发给李四一样,在这里:

segmentfault说:“hi,我们建立安全通信吧,这是我的公钥”
你的浏览器:“你怎么证明你的公钥是你的呢?”
segmentfault说:“这是我的证书,请查看”

然后segmentfault就把安装在服务器上的证书传给你的浏览器,因为你的浏览器已经有一些神器“根证书”的存在,所以这些根证书(CA机构的公钥)就可以来“解密”sf发过来的证书上的签名,然后对比一下解密后的信息和sf证书中所呈现的信息是否一致,如果一致,就ok拉!

最后上一个截图:

图片描述

大家注意,最上面“DigiCert Global Root CA”,说明我们使用digicert这个CA组织的根证书来进行认证sf的证书,然后digicert替我们证明了sf证书的合理性:“This certificate is valid",同时给我列出来证书中的一些详细信息,比如:证书的持有者,证书的过期时间,证书中所携带的“公钥”信息(用来验证你得到的公钥确实是sf的),然后还有其他一些信息,感兴趣的同学可以深究一下了!

更多内容欢迎访问:作者博客

谢谢!

这篇关于白话解释 电子签名,电子证书,根证书,HTTPS,PKI 到底是什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/200755

相关文章

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

Spring Boot集成PDFBox实现电子签章

概述 随着无纸化办公的普及,电子文档的使用越来越广泛。电子签章作为一种有效的身份验证方式,在很多场景下替代了传统的纸质文件签名。Apache PDFBox 是一个开源的Java库,可以用来渲染、生成、填写PDF文档等操作。本文将介绍如何使用Spring Boot框架结合PDFBox来实现电子签章功能。 准备工作 环境搭建:确保你的开发环境中安装了JDK 8或更高版本,并且配置好了Maven或

【电子通识】半导体工艺——保护晶圆表面的氧化工艺

在文章【电子通识】半导体工艺——晶圆制造中我们讲到晶圆的一些基础术语和晶圆制造主要步骤:制造锭(Ingot)、锭切割(Wafer Slicing)、晶圆表面抛光(Lapping&Polishing)。         那么其实当晶圆暴露在大气中或化学物质中的氧气时就会形成氧化膜。这与铁(Fe)暴露在大气时会氧化生锈是一样的道理。 氧化膜的作用         在半导体晶圆

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途

请解释Java Web应用中的前后端分离是什么?它有哪些好处?什么是Java Web中的Servlet过滤器?它有什么作用?

请解释Java Web应用中的前后端分离是什么?它有哪些好处? Java Web应用中的前后端分离 在Java Web应用中,前后端分离是一种开发模式,它将传统Web开发中紧密耦合的前端(用户界面)和后端(服务器端逻辑)代码进行分离,使得它们能够独立开发、测试、部署和维护。在这种模式下,前端通常通过HTTP请求与后端进行数据交换,后端则负责业务逻辑处理、数据库交互以及向前端提供RESTful