day08、1 - PKI
一、PKI概述
1.PKI是什么
- Public Key Infrastructure,公钥基础设施;通过加密技术和数字签名保证信息的安全
2.PKI的组成
- 公钥加密技术、数字证书、CA、RA
- 这四个加在一起统称为PKI
3.PKI应用领域
-
HTTPS(本质上就是在 HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL)
-
IPsecVPN
-
部门远程访问VPN
VPN技术后面会讲解
二、信息安全三要素
-
机密性:通过加密除了通信双方其他人都看不懂
-
完整性:不能被破坏,破坏了就不接收
-
身份验证(操作的不可否认性)
PKI通过加密技术与数字签名保证信息的机密性、完整性、身份验证
三、公钥加密技术
1.公钥加密技术作用
- 实现对信息加密、数字签名等安全保障
2.加密算法
1.对称加密算法
-
引入:
x是原数据/原文,现在通过对称加密算法
x+5=y(简单举例),得到密文y,加密算法中x+5即为算法,加密算法中最重要的是密钥,即5,一般来说机密算法是公开的,而密钥是保密的 -
加密与解密用用一种算法,且加解密的使用的密钥相同
-
对称加密算法举例:DES 3DES AES
2.非对称加密算法
-
说明:
通信双方各自产生一对公私钥(4个密钥),双方各自交换公钥;公钥和私钥为互相加解密关系:用某人的公钥加密,只有这个人的私钥才能解开;且公私钥不可互相逆推;输入消息与输出消息的长度相等
-
非对称加密算法举例:RSA DH
3.HASH算法
-
将消息通过HASH算法加密得到的结果就是HASH值,又叫该消息的摘要;HASH值是不可逆的;主要用于:验证完整性;摘要的长度是固定的
-
HASH算法举例:MD5 SHA
四、数字签名
1.什么是数字签名
- 用自己的私钥对摘要(HASH值)加密得出的密文就是数字签名
2.数字签名的作用
- 用于验证信息的发送者就是本人(因为对方如果有我的公钥,对方只能用我的公钥正确解密我私钥加密的摘要,如果这个摘要使用别人的私钥加密的,那么用我的公钥无法正确解密)
- 总结:私钥加密,只有配对公钥才能正确解密;用某人的公钥加密,只有这个人的私钥才能解开
五、CA
1.什么是CA
- CA是证书颁发机构(Certificate Authority),一般CA都是公安局等权威机构
2.CA如何颁发证书
-
需要证书的用户先将自己的标识信息(如名称和电子邮件地址),公钥等相关信息发给CA
-
CA核实你的信息,如果通过,会生成你的证书,将证书用自己的私钥加密,再把证书发送给用户
六、数字证书
1.什么是数字证书
- 数字证书由权威公正的第三方机构CA颁发;证书格式遵循X.509标准;证书用于保证公钥的合法性
2.数字证书包含信息
- 使用者的公钥值
- 使用者标识信息(如名称和电子邮件地址)
- 有效期(证书的有效时间)
- 颁发者CA的标识信息
- 颁发者CA的数字签名
七、PKI完整体系说明
PKI包含:公钥加密技术、数字证书、CA、RA。这些配合在一起共同保证信息的安全,下面具体说明每一个组成部分对于信息安全起到的作用和通信加密技术的完整流程
1.发送方加密信息的过程
- 通信双发各自生成自己的公钥和私钥,然后交换公钥
- 将原文通过非对称加密算法(RSA)以及接收方的公钥加密得到密文
- 将密文通过HASH算法得到HASH值(4Byte)
- 对摘要通过非对称加密算法(RSA)以及自己的私钥加密得到数字签名
- 将密文、数字签名、证书打包一同通过互联网发送给接收方
2.接收方解密信息的过程
-
接收方收到信息后先将证书通过非对称加密算法(RSA)以及小周的公钥解密,再将证书中的CA数字签名部分取出来:①对剩下的证书部分做HASH算法得到一个摘要,②对CA数字签名部分通过RSA以及CA的公钥解密得到一个摘要,将两个摘要对比,如果一致则证书内容真实完整且确实是CA颁发的。那么比对一下证书中使用者的公钥值,和目前手里得到的公钥值是否一致,一致则手里得到的公钥就是小周的。
前提是CA必须是双方都信任的第三方机构
-
再将数字签名通过非对称加密算法(RSA)以及发送方的公钥解密,得到Hash值
-
同时将密文通过Hash算法的到Hash值
-
对比得到的两个Hash值是否相同,如果相同说明信息完整,没有被破坏,就可以对密文进行解密了
-
使用非对称加密算法(RSA)和接收方的私钥解密密文,就得到明文信息
八、CA颁发证书说明
1.CA向申请人颁发证书过程
-
图示:
-
小周将自己的相关信息(最重要的是小周的公钥值)发给CA
-
CA核实信息通过后形成小周的不完整的数字证书(其中最重要的是要把CA自己的数字签名加到证书中,此时未加)
-
对不完整的数字证书通过HASH算法加密得到摘要,CA再用自己的私钥对摘要加密得到CA的数字签名,再将数字签名添加到证书中,形成完整的证书
-
再用RSA算法及CA的私钥对完整证书加密,颁发给小周
-
小周得到后用RSA算法及CA的公钥对证书解密,得到自己的证书明文
-
小周再将证书用RSA及自己的私钥加密,放到信息中一同发给小白(为了证明交换给小白的公钥没有被别人偷换,确保公钥的合法性)
2.接收方如何验证公钥真实性
-
图示:
-
小白收到信息后取出消息的证书部分,先将证书通过非对称加密算法(RSA)以及小周的公钥解密,再将证书中的CA数字签名部分取出来(将证书分成两部分,一份内容为CA的数字签名,一份内容为证书的其他部分):
-
①对剩下的证书部分做HASH算法得到一个摘要,
-
②对CA数字签名部分通过RSA以及CA的公钥解密得到一个摘要(至于为什么得到的是剩下证书部分的摘要,见CA向申请人颁发证书过程中的CA生成数字签名的过程,如下图)

- 将两个摘要对比,如果一致则证书内容真实完整且确实是CA颁发的。
-
-
再比对一下证书中使用者的公钥值,和先前与小周交换的公钥值是否一致,一致则手里得到的公钥就是小周本人的。
九、中间人攻击说明
-
如果没有证书的情况下就容易被中间人攻击
-
图示:
-
攻击过程:
- 刚开始小周和小白要交换公钥,但是中间人把小周的公钥掉包成自己的公钥,但是小白还没有察觉,以为666就是小周的公钥
- 第三者截获到了小周发的信息,并且也将小周的数字签名改为了自己的数字签名,再发给小白
- 小白担心这个信息是不是小周发的,就会用小周的公钥对数字签名进行解密,发现解密正确(因为666是第三者的掉包了,而且数字签名也是用第三者私钥999加密的,自然可以正确解密)
- 小白觉得这就是小周本人发来的消息,所以接着对密文解密
- 同样的道理,也可以对小周进行这样的掉包,那么小周和小白的通信已经被第三方监听了,第三方甚至可以篡改内容
-
如何解决:最关键的问题就是公钥可能被伪造,那么只要解决证明公钥一定是本人的公钥即可,所以通过数字证书即可证明公钥是自己

浙公网安备 33010602011771号