关于CA、签名、证书、非对称加密、摘要、公私钥匙和keystore概念和区别
这几个概念才接触密码学时候理解不是很到位,现在将其理清楚,写下自己的理解。
公私秘钥对可以通过一种算法得到。
公钥:公开的,都可以拿到的秘钥。用来加密也用来解密,公钥加密的信息只能用对应私钥来解。
私钥:只有一个持有者,其他人都拿不到。用来加密也用来解密,私钥加密的信息只有对应的公钥能解。因为私钥具有唯一性,可以用来鉴别身份。需要注意的是私钥的唯一性是针对自己的公钥来说的。
非对称加密:过程使用两把不同的钥匙加解密,私钥加密只能用公钥解,公钥加密用私钥解,一般流程为:A生成公私密钥对,把公钥给B,B用公钥加密信息发送给A,A用私钥解密。
摘要:对任意一组输入数据通过算法进行计算,得到一个固定长度的输出摘要,常见RSA公司的MD5算法和SHA-1算法。
签名:包含两部分:对所签信息做摘要运算得到一个结果值,在运用非对称加密中的私钥对这个值进行加密(比如app签名就是对app自身文件做多次摘要,然后私钥加密,https流程签名就是对一些企业证书信息做摘要然后私钥加密)。
证书:公钥相关信息,其他信息如证书有效期,名称,最后贴附私钥签名的信息,格式普遍采用的是X.509V3国际标准(app中证书指纹,他是签名工具相关信息的hash值不包括贴附私钥签名只会随签名keystore变化而变化,app变化时候不会改变,用来配合包名做身份鉴别,常用于app升级和安装场景)。
keystore:证书库文件,保存证书信息和公钥及私钥(用设置密码保护私钥),访问私钥要密码。
CA:第三方可信机构。为什么https过程中非对称加密传输过程中需要用到第三方可信机构(CA),大家得客户端都以保存在本地的CA发出来的公钥解密,就可以确定CA的身份因为CA是唯一的私钥拥有者,CA做的事就是给合法的服务端证书签名,所以客户端鉴定CA的身份后,自然也认为解得CA签名的服务器证书是合法的。
注意https中涉及两对公私密钥,CA的私钥用来签名,其签名信息用来防篡改,CA公私钥配合确定CA的是身份。服务器的公私密钥用来加解密信息,也用来确定的服务器身份,其交互的信息用来协商对称密钥。
1.因为在数字签名、密文以及传输时的通用密码的加密采用了不同的算法
2.另外也是为了安全,如果全部采用一个相同的密钥,只要破解一个就等于破解的全部,就失去了加密的意义。
3.一般数字签名、密文等数据的加密会根据需要采用不同的加密类型,这里指的是公钥密码或私钥密码。私钥密码普遍有密钥为数多、计算复杂、不易破解,但是不适合加密数据量比较大的数据。公钥密码虽然能快速的加密大数据量的传输数据,但是确没有私钥相对安全。另外,还要考虑不同环境下产生的弱密钥或半弱密钥对加密数据的安全性的影响。
总之,不能因为编写麻烦,或者不好理解,就牺牲不安定的网络中给人们带来安心的点点星光。呵呵,希望这些对你有用~
参考资料:
||鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!