图文详解:
对称加密 :加密与解密的算法一样
非对称加密:加密与解密的算法不同
加密算法: 明文 -> encode 加密 -> 密文 -> decode 解密 -> 明文
摘要算法: 加密后得到固定长度的摘要,无法解密恢复
http明文传输,中间途径传输节点都知道传输的什么
https加密传输 明文 -> encode 加密 -> 密文 -> decode 解密 -> 明文
80端口 传输数据
443端口 浏览器和服务器处理协商怎么传输(加密解密)数据
请求443端口 四次握手1、浏览器提交支持加密算法的列表 (hi,在吗)
2、服务器收到请求,下发一个加密算法 (hello,我在)《发送加密算法可能被拦截 篡改》
思考:如何保证加密算法不被拦截篡改?
注意:公钥加密的数据只能私钥解,反之亦然
服务器端
私钥 -> 对数据进行加密 -> 密文 -> (浏览器)用公钥(公钥如何传输才能不被拦截) -> 可以还原成 -> 原文
浏览器端
公钥(不能被篡改,但是可以看,但中间者可以伪造一堆公私钥进行加密解密在传输)-> 对数据进行加密 -> 密文 -> (服务器)用私钥 -> 可以还原成 -> 原文
公钥如何传输才能不被拦截: 公钥不传输就不会被拦截,用当前服务器私钥生成一个公钥,把公钥拷贝到浏览器端。
加密算法: 算法名称 + 盐(秘钥)
CA(认证服务)不是防止数据被偷窥,而是保证用户访问网站的真实性,可以访问到用户真正想要访问的地址,防调用网站
如何防调用网站:ca.私钥(服务器公钥+域名+公钥的摘要)= 证书
浏览器再去校验证书(明文写谁下发的证书,在CA列表里查找对应的下发者,用对应的ca.公钥进行解析,能解析出来相应的数据则为真的)
HTTPS如何进行安全传输: 浏览器对称加密 -> 服务器非对称加密 -> CA的非对称加密
3、浏览器向80端口发送请求
4、得到 加密算法.decode 解密密文