科普知识:HTTP vs HTTPS的不同之处

今天看到一条新闻,说是银联提醒用户注意网站的https前缀:

在识别网络诈骗方面,银联特别提醒任何网购退款均无需提供银行卡密码和CVN2。任何索要短信验证码的行为都是诈骗。在登录网址时,警惕所谓的“安全中心”“认证中心”,不要轻信“低价”购物网站,并警惕通过邮件、短信、聊天工具发来的所谓“安全中心”“认证中心”“担保平台”等钓鱼网站链接。支付时留意“https”前缀。完成网购订单进入支付页面时,网址前缀会变成“https”,表示数据传输加密;若支付页面网址前缀仍是“http”,请提高警惕。

HTTPS是什么,它和我们常用的HTTP有什么不同呢?

传统的HTTP通讯是不安全的,因为在浏览器和服务器之间传输的数据,有可能被中间节点截获。互联网的架构决定了网络通讯都不是点对点直接传输的,一个数据包从客户端发送到服务器的过程中,当中会经过多个节点。通俗点说,数据包会先传到家里的路由器,路由器再发送给它上一级的(可能是电信的)路由器,这么一级一级地传出去,最终传到了服务器端。这个过程中,每一个路由器都有机会截获到传输的内容。如果这些内容中包含了密码等重要信息,就有可能会被坏人所利用。

HTTPS中的S表示安全(Secure),它代表了浏览器和服务器之间的通讯是加密的,不可被第三方获取。由HTTPS协议保证,除非得到服务器端的密钥,否则(几乎)无法破解出通讯的内容。为什么说几乎?因为暴力破解在理论上是有可能的,但是因为现在的计算机性能的限制,暴力破解需要上亿年的时间才能成功,所以说,暂时它是安全的。

那么怎样的HTTPS才算是安全的?以Chrome为例,正常的HTTPS连接会显示为绿色,其它的浏览器里大同小异。如下:

这两种都是正常的,前一种是个人的HTTPS,后一种是企业的。如果浏览器认为HTTPS有问题,它会显示成红色或者灰色,或者弹出对话框来提醒用户。

经过加密之后,基本可以认为是所有数据都是安全的。具体来说,以下这些数据被加密了:

1.URL中的路径、参数;
2.发送(Post)的数据;
3.接收的整个页面的数据;

唯一没有被加密的部份是URL中的域名部分。以一个URL为例:

https://www.google.com/search?q=leonax&sourceid=chrome&ie=UTF-8

其中只有www.google.com这一段数据没有加密,其余的/search?….外加网页内容,都是经过加密的。

上文提到的过,本站也支持HTTPS,点击这里试用一下,除了速度稍慢(安全的提升总是与性能的牺牲相关),其它并没有什么与HTTP不同的地方。