你了解https吗?简单来说,https就是套在SSL/TLS内的http,也就是安全的http。而https就是为了解决通信保密、通信双方身份的真实、通信内容的完整这3大问题而诞生的。下面就为大家详细讲解下https相关知识。
什么是HTTPS?
HTTP+加密+认证+完整性保护 = HTTPS
HTTPS并非是应用层的一种新协议. 只是HTTP通信接口部分用SLL(Secure Socket Layer)和TLS (Transport Layer Security) 协议替代而已.
通常, HTTP直接和TCP通信, 当使用SSL时, 演变成了先和SSL通信, 再由SSL和TCP通信了, 简而言之, 所谓HTTPS, 其实就是身披SSL协议的这层外壳的HTTP.
在采用SSL后, HTTP就拥有了HTTPS的加密, 证书和完整性的保护这些功能.
SSL是独立于HTTP的协议, 所有不光是HTTP协议, 其他运行在应用层的SMTP(邮件协议)和Telnet等协议均可配合SSL协议使用. 可以说SSL是当今世界上应用最广泛的网络安全技术.
HTTPS和HTTP的区别
HTTPS协议是需要CA申请书。
HTTP是超文本传输协议,信息是明文传输;HTTPS则是具有安全性的ssl 加密的传输协议。
HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
https初始化流程
- 1、客户端发送Client Hello报文开始SSL通信,报文中包含SSL版本、可用算法列表、密钥长度等。
- 2、服务器支持SSL通信时,会以Server Hello报文作为应答,报文中同样包括SSL版本以及加密算法配置,也就是协商加解密算法。
- 3、然后服务器会发送Certificate报文,也就是将证书发送给客户端。
- 4、客户端发送Client Key Exchange报文,使用3中的证书公钥加密Pre-master secret随机密码串,后续就以这个密码来做对称加密进行通信。
- 5、服务器使用私钥解密成功后返回一个响应提示SSL通信环境已经搭建好了。
- 6、然后就是常规的http c/s通信。
https如何避免中间人劫持?
如果有人劫持了你的dns服务器,将wwe.icbc.com解析到他的非法网站,或者代理服务器将你导向他的非法网站去,这都是中间人攻击。如果没有https,那么攻击就这样发生了。那https怎么避免这类攻击?答案是通过证书鉴别。
- 在申请证书的时候CA会对所要申请的域名进行控制权认证,所以你是不可能用隔壁老王的网站来申请证书的。就算你黑了他的站点,只要老王去申请证书就能发现了。
- 如果伪造一个证书,这个证不是权威CA签发的,那么浏览器检查的时候会报警提示用户证书非法。当然用户仍然可以继续操作,比如抢火车票什么的。。
- 如果你把真正站点的证书搞下来,证书上的域名不变,只是将公钥替换掉,那么浏览器比对证书数字签名的时候就能发现对不上了,二话不说,报警。
- 如果中间人直接用www.icbc.com的真实证书,那么他虽然能收到客户端的消息,但是无法解密,所以也无法响应客户端的请求,攻击无效!
HTTPS是加密流程
HTTPS加密之前一般是应用层将数据直接给到TCP进行传输,现在改成应用层将数据给到TLS/SSL,将数据加密后,再给到TCP进行传输。
大致如图所示。

如果用户遇到的问题不能解决,可通过网站寻求我们的帮助