对称加密、非对称加密、数字证书各方交互过程简介
一、文章来源参考文章
二、术语
三、对称加密过程
四、非对称加密过程
五、基于非对称加密算法的数字签名过程
六、基于非对称加密算法服务端S公钥传输前过程
七、【重要】基于非对称加密算法的数字证书C/S架构传输过程
一、文章来源参考文章
(以下内容为本人阅读以上文章后的个人总结,方便日后复习,有不足之处,欢迎指教)
二、术语
密码:分以下两种 1.登录各个系统的用户密码口令,是便于用户记忆的一类密钥; 2.密码学中的密码,包含了信息加密编码、密文解密解码、数据完整性验证等一系列信息变换过程 密钥:secret key 是一种参数,具体来说,密钥是一组信息编码,它参与密码的“运算”,并对密码的“运算”起特定的控制作用 信息摘要:(信息指纹/数字摘要/消息摘要/数字指纹)将任意长度的消息变成固定长度的短消息 加密算法: 加密:具备三要素,数据源+密钥+加密算法 对称加密:A使用密钥k进行加密,B使用密钥k进行解密。常用的对称加密算法: DES,3DES,AES 非对称加密:使用一对密钥,分公钥和私钥,两者可互为加密和解密,如私钥加密公钥解密,或者公钥加密私钥解密,常用加密算法:RSA 公钥:PublicKey 一段固定长度的字符串。一般密钥会用于传输,交给远端客户, 私钥:privateKey 存放在本地,不对外传播的密钥 HASH算法:任意长度内容P通过散列算法变成固定长度的哈希值H,单向不可逆(即H不能反推回P) PKI:Public Key Infrastructure CA:Certficate Authority 数字证书认证中心 数字签名: 签名结果:原始文件和摘要密文的形成称为签名结果 PKCS10数据包:包含公钥,算法(RSA),公钥的所有者(主题),该公钥的有效期等一系列属性 数字证书:为了给客户端传输公钥而存在的安全机制。PKCS10数据包经过CA签名后生成数字证书
三、对称加密过程
1.对称加密过程图
服务端S:
客户端C:
2.对称加密流程解说
1)明文内容P 加上密钥K,通过对称加密算法,如DES,形成密文M 2)(通过互联网)传输密文M给客户C 3)客户C通过密钥K和算法DES将密文M进行解密,得到明文内容P
3.不足点
1)安全性方面有泄密风险 2)可用性方面低 如果有100个客户要与服务端通信,每个客户之间不能使用相同密码(增加泄密可能),使用100个不同密码(可用性降低)
四、非对称加密过程
1.非对称加密过程图
2.非对称加密流程解说
1)服务端S使用本地私钥pri+明文内容P,通过非对称加密算法RSA,得到密文M 2)(通过互联网)传输密文M给客户C 3)客户C获得服务端S的公钥Pub(通过互联网,第三方,U盘....) 4)客户C用公钥Pub和算法RSA,将密文M解密后,得到明文内容P
3.不足点
1)不知道服务器身份是否可靠
(比如你要访问建行网站,被攻击者重定向到了钓鱼网站,页面跟真实建行一模一样,用户在不知情的情况下,输入了账号密码,就会被恶意盗取)
2)算法效率低
五、基于非对称加密算法的数字签名过程
1.数字签名过程图
服务端S:
客户端C:
2.数字签名流程解说
1)服务端将明文内容P进行hash算法(如SHA1),转化成固定长度的唯一哈希值H,H称为信息摘要I 2)服务端使用本地私钥Pri通过RSA算法,将信息摘要I转化成密文M 3)服务端将原始内容P和密文M一起发送给客户端 4)客户端接收到服务端原始内容P和密文M 5)客户端使用服务端的公钥Pub对密文M,采用RSA算法进行解密得到信息摘要I 6)客户端将收到的原始内容P,进行hash算法(与步骤1算法一致,如SHA1),转化成固定长度的哈希值H’,H‘称为信息摘要I’ 7)客户端比对信息摘要I和信息摘要I'是否一致,一致则代表数据未被篡改,5,6,7这个过程称为验签
3.不足点
1)防止不了钓鱼网站
2)服务端身份合法性无法验证
六、基于非对称加密算法服务端S公钥传输前过程
1.服务端S公钥与CA机构传输过程图
2.服务端S公钥与CA机构传输流程解说
1)服务端将自己的公钥附加一系列信息,形成PKCS10数据包,发送给CA进行签名 2)CA机构通过技术手段,认可了服务端发来的PKCS10数据包合法 3)CA使用自己本地私钥Priv02 对PKCS10数据包(有时CA会简单修改PKCS10的一些内容,将本地公钥Pub02记录到数字证书),采用RSA算法进行签名,生成数字证书D(数字证书遵循X509标准)
七、【重要】基于非对称加密算法的数字证书C/S架构传输过程
1.过程图
服务端S(数字证书获取参考上面"六、基于非对称加密算法服务端S公钥传输前过程"):
客户端C:
2.流程解说
1)服务端S将明文内容P进行hash算法(如SHA1),转化成固定长度的唯一哈希值H,H称为信息摘要I 2)服务端S使用本地私钥Pri通过RSA算法,将信息摘要I转化成密文M 3)服务端S将自己的公钥附加一系列信息,形成PKCS10数据包,发送给CA进行签名 4)CA机构通过技术手段,认可了服务端发来的PKCS10数据包合法 5)CA使用自己本地私钥Priv2 对PKCS10数据包(有时CA会简单修改PKCS10的一些内容,将本地公钥Pub02记录到数字证书),采用RSA算法进行签名,生成数字证书D(数字证书遵循X509标准) 6)服务端S获得数字证书D 7)服务端S将明文内容P、密文M、数字证书D发送给客户端C 8)客户端C将从数字证书里提取CA的公钥Pub02,对数字证书进行验签后,得到服务端S的公钥Pub 9)客户端C使用服务端S的公钥Pub对密文M,采用RSA算法进行解密得到信息摘要I 10)客户端将收到的原始内容P,进行hash算法(与步骤1算法一致,如SHA1),转化成固定长度的哈希值H’,H‘称为信息摘要I’ 11)客户端比对信息摘要I和信息摘要I'是否一致,一致则代表数据未被篡改,9,10,11这个过程称为验签 12)此为行业解决目前主流解决方案