- 一. HTTP与HTTPS的图解区别
- 二. SSL的简介
- 三. HTTPS数据传输流程
- 四. HTTP和HTTPS的区别
- 五.使用HTTPS一定安全吗?
-
HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。
-
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
SSL (Secure Socket Layer ) 数据加密的方式:
- 浏览器将支持的加密算法发送给服务器
- 服务器选择一套浏览器支持的加密算法和哈希算法, 以证书的形式回发浏览器(证书的有效期, 私钥, 签名等等)
- 浏览器收到证书后, 验证证书的合法性, 如果合法,则会在地址栏加上锁的图标, 并且会根据服务器提供的公钥与哈希算法,进行对信息的加密 .否则会显示不安全不受信用的标示.
- 服务器收到请求后, 会使用私钥进行解密, 验证哈希, 并且通过加密的方式,给浏览器响应信息.
- 浏览器解密响应的信息, 对信息进行验证, 之后进行加密交互数据.
HTTPS需要到CA申请证书, HTTP不需要 HTTPS密文传输, HTTP明文传输 HTTPS默认使用443端口, HTTP采用默认的80端口 HTTPS= HTTP+ 加密+ 完整性保护, 比HTTP安全.
五.使用HTTPS一定安全吗?答案是不一定安全. 由于用户输入网址默认是输入WWW. 开头的, 很少会以https来输入网址, 通常是由浏览器来加上http:// (但IE浏览器是需要手动加上http://的), 如果网站是加密的, 则会通过301或者302进行重定向到对应的HTTPS加密的网站上去. 那么在重定向之前, 网站则可能会被劫持, 因为是一开始是http的.
这个时候的解决办法就是可以通过HSTS (HTTP Strict Transport Security) HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。