一句话带过:
浏览器和服务器通过CA证书(可信证书)的非对称加密,协商出对称加密的K,然后通过对称加密的算法传输数据。
简述HTTPS的原理(SSL握手阶段):
- 浏览器 -> 服务器:我们用什么加密算法套件?
- 服务器 -> 浏览器:我们用 DES-RSA-SHA(例子)。发对应的证书。
浏览器:(通过操作系统已经安装的根证书)链式地校验证书完整性 + 安全性
服务器证书(申请证书是要钱的) -> 上级证书 -> 根证书(根证书操作系统一开始就安装好了)
浏览器 -> 服务器:解析证书中的公钥pa,并且生成一个随机数num1,传输 pa(num1)
- 服务器 -> 浏览器:用证书中的私钥sa,解密出 num1,和浏览器说,OK,就用这个当对称加密的k
- 浏览器 -> 服务器:对称加密(k, reqData)
- 服务器 -> 浏览器:解密出 reqData,然后对称加密(k, resData)
- 浏览器:解密出 resData
关键在于黑客,不知道对称加密的 k,所以对于它来说,都是密文。
问题1、为什么要使用https?
- 1、http明文传输,不安全 => 保护用户隐私;保护用户的账号、密码
- 2、非常次要的原因:https的搜索排名会更高
问题2、为什么要使用CA证书
为了防止中间人攻击。 防止黑客作为 用户 -> 服务器 之间的中间人。