非对称加密
SSL/TLS 密码学加密协议:保证通信的安全,主要从机密性、真实性、完整性这几个方面;
机密性:不被传输双方以外的第三方获取;真实性:都是双方期待要传输的对象,而不是其他第三方冒充(即不是你女票的老妈拿着你女票的微信跟你聊天而你还误以为是在跟你女票聊 ^_^);完整性:就是你们之间的信息传输没有被串改或者丢失;
密码学上加密分为对称加密和非对称加密,非对称加密安全性相对较更高,同时他的计算复杂度也更高,性能也就降低了;对称加密:计算度低,效率相对较高性能也更好,但是如果以明文的方式传输秘钥或者将秘钥写在编码里,那么就会存在很大的安全隐患;
非对称加密:
一、生成privateKey---publicKey 私钥自己保存不用传输,公钥公开给大家
二、传输方用公钥加密要传输的信息,接收方用私钥解密得到解密后的信息
问题: 如何确保传输的信息不被篡改,因为公钥是公开的任何人都可以用来加密,所以在接收端就要做认证发送方身份的事情。所以也就出现了数字签名
三、数字签名:例如写信 我们将通过加密后的信息写在信件上 同时生成一个散列函数信息就是摘要(可以理解成随机生成一段信息放在信件开头) 然后用公钥将这段信息加密也就是将摘要加密 就是得到了所谓的数字签名,然后将摘要(未加密的信息)和数字签名(加密摘要后得到的信息) 连同信件内容一起发送给期待发送的对方(即生成privateKey---publicKey的"人")。
接收方收到信件后 第一步用自己的私钥解密信件中的数字签名 第二部将解密得到的信息和摘要对比 如果内容相同那么就能确保写信人身份的真实性。
问题:如何确保发送方使用的公钥就是接收方拥有的公钥呢,比如梅西要给C罗写信 他会用C罗的公钥加密信件,但是现在我用我的公钥给梅西骗他说这是C罗的公钥,梅西是无法确定公钥是C罗的还是我的,所以他就用我的公钥加密了信息给C罗写信了,其实收到信的只能是我,但是梅西还蒙在鼓里以为是C罗收到信了呢即使C罗收到信他也解不开,因为信件是用我的公钥加密的
四、证书 确保公钥的拥有者身份的真实性。
为了解决公钥拥有者身份的真实性,这时就出现了一个机构,大家都信得过的结构 由他们来确认这些公钥拥有者的身份信息的真实性做法:CA机构生成privateKey---publicKey (CA用私钥签发证书) 公钥公开 用户通过 CA 的公钥解密获取证书中包含的证书持有者的公钥。只要CA的私钥保持机密,通过证书验证证书持有者的身份,及获取公钥的过程就可靠 这样就解决了公钥拥有者身份的真实性
最后:如果CA机构也被冒充了 或者CA的私钥被窃取了 那么加密也就没用了 因为这是整个加密通信的第一步,第一步就不能确保真实可靠 那么后续也就没有安全保密可言了。
这个可以不用看 强烈推荐看 阮一峰的我只是自己当做理解记录而已
阮一峰——非对称加密与证书http://www.jianshu.com/p/53b9ffe8fea6