HTTPS究竟是什么?这篇文章带你快速了解HTTPS

2020年4月12日22:57:29 评论 545

HTTPS究竟是什么?这篇文章带你快速了解HTTPS

HTTPS究竟是什么?这篇文章带你快速了解HTTPS

△ 图片来源于阮一峰的网络日志

HTTPS究竟是什么?这篇文章带你快速了解HTTPS

漫画中其实就是HTTPS的握手过程,但是我相信大段的英文你看着也不怎么流畅,下面就由我简单讲解下吧。

HTTPS是在HTTP的基础上增加了SSL或TLS安全协议,这些协议有众多的套件,这些套件则是由加密算法和哈希算法组成,而这些算法最后则涉及到了数学。

数学是我上学时期最头痛的学科,还记得上数学课时,我传纸条给坐在我后面的班花……咦,好像有点跑偏了,拉回来,坐好了,开始我们的HTTPS之旅。

HTTPS是什么

HTTPS是为了安全的使用HTTP,缩写展开:HyperTextTransferProtocoloverSecureSocketLayer。从英文释义可以看出,HTTPS就是HTTP+SSL或者HTTP+TLS。

“我读书少,你可不要骗我,上面的英文缩写不是HTTPoverSSL吗?”呃。。。是这样的,HTTPS最初使用的加密协议的确是SSL,SSL最近的三个版本是:SSL1。0、SSL2。0、SSL3。0,不过随着加密算法的发展和人们对传输安全性要求的提高。

截止目前已经长江后浪推前浪依次推出了TLS的四个版本,分别是:TLS1。0、TLS1。1、TLS1。2以及前不久刚推出的TLS1。3。实际上,业内也有人把TLS1。0叫做SSL3。1,事实上,TLS是在SSL的基础上发展起来的更安全的加密协议。

为什么要使用HTTPS

这个问题要从为什么逐渐的抛弃HTTP说起。

HTTP从1991年的HTTP/0。9一直发展到1999年的HTTP/1。1,虽然功能不断增加,性能也不断提高,但是随着互联网技术和网络设备的迅速普及,导致信息大爆炸,众多的网民们对网络传输的速度和安全性有了越来越高的要求。

2012年,谷歌推出了SPDY方案,优化了HTTP/1。x的请求延迟和安全性问题,进一步普及了HTTPS,截止到2015年,HTTP/2已经成为标准,更是进一步推动了全网HTTPS的进程。

全网HTTPS是大势所趋,那么为什么抛弃HTTP呢?最重要的原因就是安全问题,因为HTTP是明文传输的,这对于目前从娃娃就开始玩智能手机,学习python编程的新一代来说,抓个包估计是不在话下,更别提浸淫网络多年的“黑客”了。是时候跑步进入HTTPS加密时代的了。

HTTPS为什么安全

上文已经有提到,HTTPS就是HTTP+SSLorTLS,除了HTTPS传输标准严格和规范外,主要是SSL或者TLS对传输的信息有一整套的加解密和校验方案。这套方案主要从下面三个方面确保传输的安全。

1。身份认证

传输之前首先通过数字证书来确认身份,各大CA厂商干的就是这个事情。这里涉及到一个名词:数字证书。数字证书分为公钥和私钥,CA厂商会用自己的私钥来给证书申请者签发一套包含私钥和公钥的客户证书,客户的公钥证书谁都可以获取,里面包含了客户站点和证书的基本信息,用来确保访问者访问的就是他想要访问的站点。

这个证书不可以伪造吗?答案是真的不可以。

原因一:系统早已内置了各大CA厂商的公钥来校验证书是否是对应的站点的证书,如果不是,就会给出证书不匹配的提示,除非你给别人的设备强行植入假的CA公钥。

原因二:这个证书是CA厂商通过哈希并加密得到的,基本无法逆向破解并伪造一个新的,除非是你黑进CA获取了CA的私钥,那这家CA也基本可以倒闭了。

2。数据保密

数据保密包括对话秘钥传输时候的保密和数据的加密传送。

对话秘钥:以TLS1。2使用的套件之一DHE-RSA-AES256-SHA256为例:该套件是以DHE、RSA作为秘钥交换算法,这两种秘钥交换算法都是使用的非对称加密,数学原理分别依赖于计算离散对数的难度和大数分解的难度。

也就是在建立HTTPS链接的过程中,刚开始是有一些明文出现的,不过想要根据这些已知的明文推算出“对话秘钥”却非常困难。

对话加密:客户端和和服务端协商并成功获取到对话秘钥后就开始用对话秘钥进行对称加密会话,上面的套件我们可以看到使用的是AES256加密算法。

那么为什么“对话秘钥”的交换使用非对称加密,正式对话数据的传输使用对称加密?因为非对称加密虽然安全性比较高,但是它的效率比较低,速度比较慢,所以我们一般只使用它们来交换一下对话秘钥,后面的对话加密则使用速度更快,效率更高的对称加密。

3。数据完整

身份认证成功后,到了数据加密传输的阶段,所有数据都以明文(HTTP)收发,只不过收发的是加密后的明文。这时候也遇到了一个问题,虽然中间人很难破解加密后的数据,但是如果他对数据进行了篡改,那该怎么办?

此时加密套件验证数据一致性的哈希算法就派上用场了,哈希算法有多种,比如MD5,SHA1或者SHA2等,上面举例的加密套件使用的是SHA2中的SHA256来对数据进行哈希计算。这样就使得任何的数据更改都会导致通信双方在校验时发现问题,进而发出警报并采取相应的措施。

以上主要从使用HTTPS的必要性及HTTPS能安全传输的原理进行了简单的阐述,HTTPS的实现不仅仅是网络技术的集中应用,底层还涉及到了大量的算法以及密码学的众多知识,小编也无法一下子概述完整(笑哭)。

另外,不论是PFS,或是国际互联网组织正在推行的HSTS安全传输协议,他们的主要目的就是避免中间人攻击,使信息在传输过程中更安全,更快速。

生成海报
继续阅读
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的名片
  • 电子名片扫一扫
  • weinxin
avatar
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: