http协议存在的问题:
- 内容被篡改;
- 内容被监听;
- 伪装数据发送端;
https = http + 加密 + 一致性校验 + 身份验证
其中加密、一致性校验、身份验证是通过SSL/TLS来实现的。
加密部分采用非对称加密+对称加密实现,用非对称加密的私钥对对称加密的秘钥进行加密,然后通过对称加密的公钥机密出来,然后再通过对称加密的秘钥对具体内容进行加密。(通过非对称加密解决对称加密秘钥的传输安全问题)。
一致性校验是通过对传输内容进行哈希值的确认实现的。
身份验证引入了第三方AC机构,AC机构负责下发认证的证书,证书中包含了被认证结构的公钥和数字签名,并且这些内容都是通过AC机构的私钥进行加密的,服务提供者拿到证书后将其安装到服务端应用程序中。
- 客户端请求服务端资源时触发SSL/TLS协议;
- 服务端将证书发送给客户端;
- 客户端通过内置的AC机构的公钥对证书内容进行解密,拿到公钥,并确定服务端身份;
- 客户端利用公钥解密对称加密秘钥;
- 客户端对传输内容使用对称加密秘钥进行加密;
- 客户端将加密后的内容发送给服务端;
- 服务端通过对称加密秘钥对内容进行解密;