https详解

相信https这个名称大家都不陌生,那在讲HTTPS之前,我们先来回顾一下HTTP协议。HTTP是一种超文本传输协议,它是无状态的、简单快速的、基于 TCP 的可靠传输协议。
那既然HTTP协议这么好,为什么还要多一个HTTPS?这一切又得通信内容说起,通信内容必然是要保证安全的,HTTP本身不具备加密的功能,所以也就无法做到对通信整体内容进行加密, 也就是说HTTP是明文传输的,这就造成了很大的安全隐患。在网络传输过程中,只要数据包被人劫持,那你就相当于赤身全裸的暴露在他人面前,毫无半点隐私可言。想象一下,如果你连了一个不可信的WIFI,正好有使用了某个支付软件进行了支付操作,那么你的密码可能就到别人手里去了,后果可想而知。
所以网络环境的就是这样,给你带来便利的同时,也到处充满了挑战与风险。对于小白用户,你不能期望他有多高的网络安全意识,产品应该通过技术手段,让自己变得更安全,从源头来控制风险。这就诞生了HTTPS协议。

HTTPS简介

因为HTTP是明文传输,所以造成了安全隐患。如何让数据传输以加密的方式进行,就消除了该隐患。而SSL/TSL提供认证和加密处理及摘要功能。 为了统一解决上述的问题,需要在HTTP上加密处理和认证等机制。我们把添加了加密和认证机制的HTTP称为HTTPS。
HTTPS并非是应用层的一种新协议,只是通信接口部分用SSL/TLS协议代替而已。 所谓的HTTPS,简单理解就是身披SSL/TLS协议壳的HTTP。
从网络的七层模型来看,原先的四层 TCP 到七层 HTTP 之间是明文传输,在这之间加一个负责数据加解密的传输层(SSL/TLS),保证在网络传输的过程中数据是加密的,而HTTP接收到的依然是明文数据,不会有任何影响。

HTTPS实现原理
大致原理
通过上面的介绍,对HTTPS有了大致的了解。可本质问题还没说,HTTPS是如何实现数据的加密传输?

首先,先来了解下加密算法的方式,常用的有两种:对称加密与非对称加密。

对称加密:即通信双方通过相同的密钥进行信息的加解密。加解密速度快,但是安全性较差,如果其中一方泄露了密钥,那加密过程就会被人破解。
非对称加密:相比对称加密,它一般有公钥和私钥。公钥负责信息加密,私钥负责信息解密。两把密钥分别由发送双发各自保管,加解密过程需两把密钥共同完成。安全性更高,但同时计算量也比对称加密要大很多。
技术细节
对于网络通信过程,在安全的前提下,还是需要保证响应速度。如何每次都进行非对称计算,通信过程势必会受影响。所以,人们希望的安全传输,最终肯定是以对称加密的方式进行。
首先 Session Key是如何得到的,并且在 Session Key之前的传输都是明文的。Session Key通过网络传输肯定不安全,所以它一定各自加密生成的。因此在这之前,双方还要互通,确认加密的算法,并且各自添加随机数,提高安全性
这样双方确认了使用的 SSL/TLS 版本,以及生成 Session Key的加密算法。并且双方拥有了2个随机数(客户端、服务端各自生成一个)。可是如果按照目前的随机参数,加上加密算法生成Session Key呢,还是存在风险,加密算法是有限固定的,而且随机数都是明文传输的,有被截获的可能。
让加密算法变得不可预测,可能性不大。那么能否再传输一个加密的随机数,这个随机数就算被截获,也无法破译。这就用到了非对称加密算法,我们在步骤二中,把公钥传输给客户端。这样客户端的第三个随机数用公钥加密,只有拥有私钥的服务端才能破译第三个参数,这样生成的 Session 就是安全的了。
看似完成了,现在生成的 Session Key 是不可预测的(就算被截获也无所谓),我们可以放心的进行私密通信了。真的是这样吗?我们似乎对服务端给的公钥十分信任,如果你目前通信的本身就不可信,或者被中间人劫持,由它发送伪造的公钥给你,那后果可想而知,这就是传说中的“中间人攻击”。

所以,我们得包装一下公钥,让它变得安全。这就引出了数字证书的概念,数字证书由受信任的证书机构颁发,证书包含证书文件与证书私钥文件。私钥文件由服务端自己保存,证书文件发送给请求的客户端,文件包含了域名信息、公钥以及相应的校验码。客户可以根据得到的证书文件,校验证书是否可信。
Extended Validation(EV):该级别的证书具有最高的安全性,也是最值得信任的。它除了给出更详细的公司/组织信息外,还在浏览器的地址栏上直接给出了公司名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值