ssl通信
必要知识:
假设通信方是甲和乙
1. 对称加密算法加密解密用同一个秘钥,速度快
2. 非对称加密使用公钥加密,私钥解密。或者私钥加密公钥解密, 速度慢。
3. 公钥在网上可以自由交换,私钥自己保留。
4. CA是甲乙都信任的,通信方把自己公钥交由CA生成证书,另一方确认证书是自己信任的CA机构颁发并且没有被篡改。
上图是甲向乙发送数据时的过程。
甲对数据部分生成摘要,用甲私钥加密, 乙在收到信息后对数据部分计算摘要,用甲公钥机密摘要并进行对比,从而保证数据的完整性,并确保数据是来自于甲。但此时数据仍未被加密,能被第三方看到(但不能篡改)。甲生成对称加密秘钥并加迷以上数据。为了完成秘钥交换,甲用乙的公钥加密,则只有乙才能进行解密。
总结:
1.非对称加密主要是加密摘要或者对称秘钥,不适合直接加密数据。
2.对称秘钥用来加密数据。
为了防止第三方攻击(如何确认拿到了乙的公钥后确认就是乙的公钥?)
使用CA。乙把自己公钥交给CA, CA生成一份证书,并用自己的私钥加密证书的摘要部分。甲持有CA的证书(或者说公钥,一般是直接装在操作系统或者浏览器中),可以验证乙的证书是否是自己信任的CA机构颁发(同样是计算数据部分摘要后和用公钥解密的摘要对比)。