HTTPS协议
-
HTTP存在的问题
- 【问题1】无法验证通信方
- 不知道通信方是真实服务器,还是中间人伪装的
- 【问题2】明文传输
- 中间人可以监听内容,甚至篡改内容
- 【问题1】无法验证通信方
-
HTTPS如何解决
- 【问题1方案】引入SSL/TLS层,采用非对称加密技术和证书签发机制,验证通信方身份,并交换对称加密密钥
- 【问题2方案】使用对称加密密钥,对传输内容进行加密
-
三个概念
- 对称加密
- 用同一个对称密钥,进行加密解密
- 加解密速度快,但无法在不可信情况下安全完成密钥交换,
需要引入非对称加密,协商生成对称密钥
- 非对称加密
- 分为公钥和私钥
- 用公开的公钥
加密后的内容,只有服务器持有的私钥才能解密 - 用服务器持有的私钥
签名后的内容,公开的公钥可以做验证
- 用公开的公钥
- 加解密速度慢
需要引入证书机制,证明公钥是真实服务器的,而不是中间人的,否则就是在跟中间人“安全地”交换信息
- 分为公钥和私钥
- 证书机制
- 需要
权威机构,受理真实服务器的证书申请,用权威私钥给这个含有服务器公钥的证书签名 - 同时浏览器厂商把权威机构含有权威公钥的
根证书内置到浏览器中,由浏览器完成验证操作,证明证书有效 - 这个过程可以由多级的证书链验证完成
- 需要
- 对称加密