19.系统知识-数字证书

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 19.系统知识-数字证书

密码学相关概念

明文(plain text):发送人、接受人和任何访问消息的人都能理解的消息。

密文(cipher text):明文消息经过某种编码后,得到密文消息。

加密(encryption):将明文消息变成密文消息。

解密(decryption):将密文消息变成明文消息。

算法:取一个输入文本,产生一个输出文本。

加密算法:发送方进行加密的算法。

解密算法:接收方进行解密的算法。

密钥(key):只有发送方和接收方掌握的消息

对称密钥加密(Symmetric Key Cryptography):加密与解密使用相同密钥。

非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥,分为公钥和私钥

非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥,分为公钥和私钥


对称加密算法

• 在对称加密算法中,加密使用的密钥和解密使用的密钥是相同的,加密和解密都是使用同一个密钥。

• 通信双方采用相同的密钥来加解密会话内容,即一段待加密内容,经过同一个密钥的两次对称加密后,与原

来的结果一样。

• 举例说明:

根据异或性质:

(A ⊕ B) ⊕ B = A A

得到如下加密方法,其中C为密文,P为明文,K是双方约定的常量,

C = P ⊕ K K

对应的解密方法则为:

P = C ⊕ K K

这就是一种简单的对称密钥算法的过程,其中异或操作是对称加密、解密算法,K则是密钥

非对称加密算法

• 非对称加解密算法的密钥是成对出现的,公钥加密过的密文只有对应的私钥能解密;私钥签名过的密文可以

通过对应的公钥验签。原则上私钥是不能在网络中传递的。

• 双方通信时,首先要将密钥对中的公钥传给对方,这个密钥可以在不安全的信道中传输;传输数据时,先使

用自己持有的密钥做加密,对方只能用自己传输过去的密钥解密。

• 举例说明:

其中C表示密文,P表示明文,x是公钥,y是私钥,

并假设 xy= 1,则有下加解密方法

加密小游戏-第一回合

“小客”->“小服”:你好

“小服”->“小客”:你好,我是小服

因为消息是在网络上传输的,有人可以冒充自己是“小服”来向小客发送信息。所以会出现下面的情况:

“小客”->“黑客”:你好 // 黑客在“小客”和“小服”之间的某个路由器上截获“小客”发给小服的信

息,然后自己冒充“小服”

“黑客”->“小客”:你好,我是小服

“小客”在接到消息后,并不能肯定这个消息就是由“小服”发出的,某些“黑客”也可以冒充“小服”发出

这个消息。

那么如何确定信息是由“小服”发过来的呢?

加密小游戏-第二回合

“小客”->“小服”:你好

“小服”->“小客”:你好,我是小服

“小客”->“小服”:向我证明你就是小服

“小服”->“小客”:你好,我是小服 {你好,我是小服}[私钥|RSA]

//{你好,我是小服}[私钥|RSA] 表示用私钥对“你好,我是小服”进行加密后的结果。

为了向“小客”证明自己是“小服”,“小服”把一个字符串用自己的私钥加密,然后发送明文+加密后的密文一

起发给“小客”。

“小客”收到信息后,用自己持有的公钥把 {你好,我是小服}[私钥|RSA] 这个内容用公钥进行解密,然后将解密的

内容和“你好,我是小服”对比。

因为“小服”用私钥加密后的内容,只能由公钥进行解密,私钥只有“小服”持有,所以如果解密出来的内容是能

够对得上的,那说明信息一定是从“小服”发过来的。

加密小游戏-第三回合

“小客”->“小服”:你好

“小服”->“小客”:你好,我是小服

“小客”->“小服”:向我证明你就是小服

“小服”->“小客”:你好,我是小服 {你好,我是小服}[私钥|RSA]

“小客”->“小服”:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[公钥|RSA]

“小服”->“小客”:{你的余额是100元}[私钥|RSA]

注意上面的的信息 {你的余额是100元}[私钥|RSA],这个是“小服”用私钥加密后的内容。

我们之前说了,公钥是发布出去的,因此所有的人都知道公钥。所以除了“小客”,其它的人也可以用公钥对

{你的余额是100元}[私钥|RSA]进行解密。因此这个信息是无法保密的;

在实际的应用过程,一般是通过引入对称加密来解决这个问题,看下面的演示:

加密小游戏-第四回合

“小客”->“小服”:你好

“小服”->“小客”:你好,我是小服

“小客”->“小服”:向我证明你就是小服

“小服”->“小客”:你好,我是小服 {你好,我是小服}[私钥|RSA]

“小客”->“小服”:{我们后面的通信过程,用对称加密来进行,这里是对称加密算法和密钥}[公钥|RSA] //红色字

体的部分是对称加密的算法和密钥的具体内容,小客把它们发送给小服。

“小服”->“小客”:{OK,收到!}[密钥|对称加密算法]

“小客”->“小服”:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]

“小服”->“小客”:{你的余额是100元}[密钥|对称加密算法]

“小客”在确认了“小服”的身份后,“小客”自己选择一个对称加密算法和一个密钥,把这个对称加密算法和密钥

一起用公钥加密后发送给“小服”。

对称加密算法和密钥是用公钥加密的,因此就算这个加密后的内容被“黑客”截获了,由于没有私钥,“黑客”也无

从知道对称加密算法和密钥的内容,这样可以保证只有小服可以知道对称加密算法和密钥。“小服”和“小客”就可

以用对称加密算法和密钥来加密通信的内容了。

加密小游戏-遗留问题

“小服”要对外发布公钥,那“小服”如何把公钥发送给“小客”呢?我们可能会想到以下两个方法:

a)把公钥放到互联网的某个地方的一个下载地址,事先给“小客”去下载

b)每次和“小客”开始通信时,“小服”把公钥发给“小客”

但是这个两个方法都有一定的问题:

对于a)方法,“小客”无法确定这个下载地址是不是“小服”发布的;另外要所有的“小客”都在通信前事先去下载

公钥也很不现实。

对于b)方法,也有问题,因为任何人都可以自己生成一对公钥和私钥,他只要向“小客”发送他自己的公钥就可以冒

充“小服”了。

证书概念

数字证书(”digital certificate”或“public key certificate”)是指在互联网通讯中标志通讯各方身份信息的一个数字认证,在网上用它来识别对方的身份。从本质上来说是一种电子文档,它的作用是证明某某东西确实是某某东西。

• CA( Certificate Authority )也叫“证书授权中心”。负责发放和管理数字证书的权威机构。一般来说,CA必须是所有行业和所有公众都信任的、认可的,因此它必须具有足够的权威性。

证书分类

按持有者分类 :

• 个人证书:CA中心给个人颁发的证书,仅代表个人身份,证书包含个人信息和个人公钥。

• 单位证书:CA中心给组织机构颁发的证书,代表机构的身份,包含机构单位的信息和单位公钥。

• 系统证书:CA中心给应用系统或者设备颁发的证书,代表系统的身份,包含系统的信息和系统的公钥。

按证书用途分类:

• 签名证书:签名证书只能用于签名和验证签名,为了密钥的安全,密钥对一般在小客端产生和保存。

• 加密证书:加密证书只能用于加密,其中密钥对由CA产生,通过保护算法和协议发送给用户保存,同时CA

中心也保存该密钥对,以备管理和恢复。

证书格式

证书有PEM和DER编码格式,其中PEM是采用Base64编码字符保存,DER格式采用二进制保存。

一张证书包含公钥与私钥,对应着非对称加密算法中用到的公私钥。通常用.crt后缀标识公钥,用.key标识私钥。

还有一种将公钥与私钥捆绑在一起的保存方法,后缀通常为.pfx(微软用)或者.p12。

证书内容

证书公钥中除了保存公钥内容以外,通常还有颁发者、

使用者、有效期、签名等信息。

证书私钥中有公私钥信息,全部的RSA算法参数

证书信任链

CA(Certificate Authority):数字证书认证中心的简称

根CA:处在信任链的顶端,其证书公钥默认导入各种操作

系统与浏览器中

中级CA:处于信任链中间,根CA或其他中级CA颁发的证

书,还能继续颁发子证书

个人:处在信任链末端,中级CA或根CA颁发的证书

证书之间的信任关系,是可以嵌套的。

比如,C 信任 A1,A1 信任 A2,A2

信任 A3......这个叫做证书的信任链。

只要你信任链上的头一个证书,那后

续的证书,都是可以信任的。

证书吊销列表

如果证书持有者一个不小心,将证书私钥给泄露了,这个时候他人就可以冒用其身份。

为了防止这种情况发生,各大CA都维护着一张CRL列表,里面标记了虽然还未过有效期,但已不能再使用的证书。

证书工作原理

“小服”在给“小客”发公钥的过程中,会把公钥以及

小服的个人信息通过Hash算法生成消息摘要;

为了防止摘要被人调换, “小服”还会用CA提供的私

钥对消息摘要进行加密来形成数字签名

并且,最后还会把原来没Hash算法之前的信息和数字签

名合并在一起,形成数字证书。

当“小客”拿到这份数字证书之后,就会用CA提供的公钥来对数字证书里面的数字签名进行解密得到消息摘要,然后对数字证书里面“小服” 的公钥和个人信息进行Hash得到另一份消息摘要,然后把两份消息摘要进行对比,如果一样,则证明这些东西确实是“小服” 的,否则就不是

SSL概念

SSL(Secure Sockets Layer 安全套接层)基于HTTPS下的一个协议加密层,它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。SSL协议分为以下两层:

SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。记录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作。

SSL握手协议层包括SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL

Change Cipher Spec Protocol)、应用数据协议(Application Data Protocol)和SSL告警协议

(SSL Alert Protocol)。握手层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之前

相互验证,协商加密算法和生成密钥等。SSL握手协议的作用是协调小客和小服的状态,使双方能够达到状态的同步。

SSL单向认证

客户端验证服务器的过程

SSL双向认证

客户端和服务器相互认证的过程

 


相关文章
|
算法 应用服务中间件 Go
国密算法证书及CFCA操作流程
国密算法证书及CFCA操作流程
3527 0
|
监控 安全 芯片
看见“信任”,可信计算史上最全解析
等保2.0将可信提升到一个新的强度。在等保一到四级都有可信的要求,主要在三个领域:计算环境可信、网络可信、接入可信。
33516 1
看见“信任”,可信计算史上最全解析
|
6月前
|
运维 监控 安全
|
监控 项目管理
PMP认证的含金量高不高?为什么那么多人考?
从事项目管理师的人会通过考专业的认证来给自己的职业生涯铺路,在这个行业中,最有效的证书就是PMP认证了。
技术汇总:第十七章:支付宝对接公钥,私钥
技术汇总:第十七章:支付宝对接公钥,私钥
118 0
技术汇总:第十七章:支付宝对接公钥,私钥
|
安全
网站添加MySSL安全认证签章教程
我们对您的网站进行动态安全评估,若您精心部署的HTTPS符合最佳安全实践,我们将会为您的客户展示MySSL检测通过的安全签章和高评分的评级报告,提高客户对您网站的信任和支付信心,进而增加订单量,提升品牌价值。
330 0
网站添加MySSL安全认证签章教程
|
人工智能 弹性计算 安全
考取阿里云认证后有什么用?能得到什么工作?
在现在这个越来越内卷的社会中,唯有不断地提升自己,才能拥有一定的竞争力,而阿里云人才认证绝对是IT行业中的通行证了,很多人都希望能通过考取阿里云证书来升职加薪。
557 0
考取阿里云认证后有什么用?能得到什么工作?
|
Windows
开发笔记之数字证书(二):国内数字证书企业与行情介绍
开发笔记之数字证书(二):国内数字证书企业与行情介绍
开发笔记之数字证书(二):国内数字证书企业与行情介绍
|
存储 监控 安全
开发笔记之数字证书(一):数字证书介绍
开发笔记之数字证书(一):数字证书介绍
开发笔记之数字证书(一):数字证书介绍
|
安全 算法 数据安全/隐私保护
网站安全公司之密码学加解密方式
密码学是指一个加密系统所采用的基本工作模式,它有两个基本要素:加密/解密算法和密钥。根据使用的密钥数量,密码系统分为单密钥加密和双密钥加密。相应地,现代密码系统分为对称密钥密码系统和非对称密钥密码系统。
137 0
网站安全公司之密码学加解密方式
下一篇
无影云桌面