大家都知道现在的网站分为两种,一种是传统的http协议,另外一种则是加密的https,其实这两种是一脉相承的,https就是基于http基础上实现的,加入了SSL或者TLS。相对于Https,http简单方便,开发起来也方便,但是却有个重要的缺点。那就是其用户端和客户端之间的数据一旦被抓包,其相关的交互信息就会被泄露,因为在传输中它们是不加密的,相当于在“裸奔”,除非服务器自己对关键信息进行了加密,否则数据保密性根本无从谈起。
1、SSL/TLS协议的主要作用
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密(来自百度百科)
SSL/TLS协议的主要作用就是:
1、认证用户和服务器,保证各自的数据都发送到正确的位置上去。
2、对发送的数据进行加密,保护数据。
3、保证数据在发送过程中的完整性。
2、https传输过程简述
相对于Http这种简单粗暴的传输方式,Https就相对来说复杂多了,具体步骤如下:
1、首先https的服务端必须要拥有一个CA认证合法授权的证书,没有这个证书,客户端在访问该服务器时就会提醒用户这个网站是不受信任的。只有通过CA认证的服务器才是可靠的,这保证了用户在访问服务器的安全性。浏览器会保持一个信任的CA机构列表,通过这些机构出查询所访问的服务器提供的证书是否合法。
2、如果此时发现证书是合法OK的,那么就从这个服务器端的证书中获取到了加密秘钥,这个加密秘钥会沟通商议出一个随机的对称秘钥,服务端在传输信息使用该秘钥进行加密。而客户端在收到这部分信息后,在浏览器侧通过之前得到的对称秘钥进行解密,相反如果客户端想要向服务端发送消息时也是如此。
3、Https相比于Http协议的优点和缺点
1、优点
相比于http,https可以提供更加优质保密的信息,保证了用户数据的安全性,此外https同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。
2、缺点
缺点也同样很明显,第一https的技术门槛较高,多数个人或者私人网站难以支撑,CA机构颁发的证书都是需要年费的,此外对接Https协议也需要额外的技术支持;其二,目前来说大多数网站并不关心数据的安全性和保密性,其https最大的优点对它来说并不适用;其三,https加重了服务端的负担,相比于http其需要更多的资源来支撑,同时也降低了用户的访问速度;第四,目前来说Http网站仍然大规模使用,在浏览器侧也没有特别大的差别,很多用户不关心的话根本不感知。