ssl
四次握手=>协商算法
算法被拦截篡改风险=>摘要算法=>签名
加密算法+摘要+摘要算法
客户端 持摘要算法验证 加密算法 是否被篡改
1.443请求加密算法
通用加密算法名+秘钥
秘钥非对称加密
私钥+公钥
公钥加密
私钥解密
公钥提前埋
服务器:私钥->数据->加密->密文->公钥->原文
浏览器:公钥->加密->密文->私钥->原文
公钥不能解公钥,
中间人拦截公钥解开后,可生成新的一对公私钥给另一方,这样与另一方用新的公私钥,与原发送方用旧的公钥
所以公钥不能直接传。
可信任第三方ca用自己的私钥->ca的公钥 塞到浏览器
服务器端将服务器端的公钥提交给ca,ca用私钥加密(服务器端公钥,域名,摘要)=证书,中间人拿到证书后,只能看不能改(没有私钥重新加密)
ca的公钥不传(操作系统有内置,jdk这些)ca不是防止数据被偷窥,保证的是真实性
信任了某个证书,那么持有证书私钥的一方 就可以做中间人完成上面说的"中间人拦截公钥解开后,可生成新的一对公私钥给另一方,这样与另一方用新的公私钥,与原发送方用旧的公钥" 所以必须是可信任的第三方
加密算法要安全
2.向80端口加解密请求