HTTPS和HTTP是什么?
通信协议。http对数据进行明文传输,https对传输的数据进行加密、证书验证、完整性验证,更加安全。
HTTPS
工作过程
- 客户端发送请求。
- 服务端返回公开密钥证书。
- 客户端验证证书,产生会话秘钥并通过公开秘钥加密,将密文发送给服务端。
- 服务端通过私有秘钥解密,获得会话秘钥。信道建立完成。将明文内容A用会话秘钥加密,传给客户端。
- 客户端收到用会话秘钥解密获得明文,并再次传输。
加密
解决内容可能被窃取的问题,秘钥是转换算法中的一些参数。
对称加密
客户端和服务端用同一个秘钥。传输时还需要携带秘钥告诉解密方,存在的问题:传输过程中拦截了就获得了秘钥可以对信息进行解密。
非对称加密
加密解密存在公开密钥和私有秘钥。私有秘钥只有网站服务端才有,用来解公开密钥加密后的密文。
证书验证
解决通信方可能被伪装的问题。
可信赖的数字证书第三方机构
公开密钥放入秘钥证书绑定在一起。
完整性验证
解决报文信息可能被恶意篡改的问题。
数字签名
确认由正确发送方发出;确认无修改。加密私钥,解密公钥。
- 发送方通过HASH函数对文本生成摘要信息,对摘要信息通过私钥进行加密,传输时将摘要信息密文一起传输。
- 接收方收到数据,非对称解密之后,对文本同样进行摘要处理,将收到的摘要信息通过公钥解密,将解密后的摘要信息和接收方提取的摘要信息比对。
- 如果一致,则说明信息没有被篡改。
HTTPS和HTTP的区别
- 端口:HTTPS标准端口为443,HTTP端口为80
- 搜索引擎:优先显示HTTPS通信的网站
- 证书:有无SSL证书
- 安全性
为什么不是所有的网站都用https?
- 流程
- 消耗:优化,证书部署到SLB或者CDN上
- 资金开销
- 安全意识