随着网络不断融入日常生活和工作当中,网络安全问题一直都是一个不能忽略的问题。据CNCERT监测发现,2015年网页仿冒、拒绝服务攻击等已经形成成熟地下产业链的威胁仍然呈现增长趋势,针对中国网站的仿冒页面(URL链接)191699个,较2014年增长85.7%,涉及IP地址20488个,较2014年增长199.4%。网页篡改、网站后门等攻击事件层出不穷,党政机关、科研机构、重要行业单位网站依然是黑客组织攻击特别是APT攻击的重点目标。2015年被植入后门的中国网站数量为75028个,较2014年增长86.7%,其中政府网站为3514个,较2014年增长130%。
2014年底,百度已对部分地区开放HTTPS加密搜索服务,随后,百度实行全站化HTTPS安全加密服务,百度HTTPS安全加密已覆盖主流浏览器,旨在用户打造了一个更隐私化的互联网空间、加速了国内互联网的HTTPS化。同时也希望更多网站加入到HTTPS的队伍中来,为网络安全贡献一份力量。
HTTPS是什么
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
传统的HTTP模式,存在着大量的灰色中间环节,相关信息很容易被窃取,但HTTPS却是通过认证用户与服务器,将数据准确地发送到客户机与服务器,并采用加密方式以防数据中途被盗取,大大降低了第三方窃取信息、篡改冒充身份的风险。
HTTPS安全原理解析
HTTPS主要由有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。HTTPS与HTTP的原理区别可以观察下图:
HTTP工作原理:
①客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,一般TCP连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和许可内容。
② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
HTTPS的工作原理:
①. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;
②. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;
③. 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器;
④. 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法)。
⑤. 客户端将所有握手消息的MAC值发送给服务器;
⑥. 服务器将所有握手消息的MAC值发送给客户端。
HTTPS的数据加密性:
HTTPS中数据的保密性主要是通过加密完成的。加密算法一般分为两种,一种是非对称加密(也叫公钥加密),另外一种是对称加密(也叫密钥加密)。
HTTPS使用非对称加解密主要有两个作用,一个是密钥协商,另外可以用来做数字签名。所谓密钥协商简单说就是根据双方各自的信息计算得出双方传输内容时对称加解密需要使用的密钥。如下图:
对称加密就是加密和解密都使用的是同一个密钥。如下图:
HTTPS多次握手和复杂的加密机制有效的加大了网站的安全性,加密机制与认证机制可以减少网站被劫持和假冒的风险!