网盾网络安全培训学校育,只培训技术精英
全国免费咨询电话: 15527777548/18696195380
HTTPS的概念是什么?

  HTTPS全称为Hyper Text Transfer Protocol over Secure Socket Layer,国内称其为安全超文本传输协议

  大家可以把HTTPS直接理解为HTTP+SSL/TLS,简单来说它是在HTTP的基础上增加了一道保密协议,以此来对文本传输的过程加密,保障安全性的一种数据传输协议类型。
 

  HTTP协议是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议。但是这种协议很明显潜伏着非常大的危险:采用明文传输信息的过程中,假如有不法分子想嗅探机密,只需要劫持HTTP协议中的某段对话,对信息进行窃听或篡改。

  为了保护信息安全,后来在HTTP的基础上加入了SSL(Secure Socket Layer)/TLS(Transport Layer Security),也就是安全套接层/传输层安全。这层安全协议会为双方对话连接前提供信息加密、身份验证以及完整性校验,目的是为了保障服务端与客户端之间连接的安全性。

  小科普:

  一、SSL

  安全套接层(Secure Socket Layer,SSL)协议是网页浏览器与网站服务器之间安全交换信息的协议,提供两个基本的安全服务:保密和鉴别。

  SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议。

  SSL协议具有三个特性:

  1.鉴别:强制的服务器端和认证可选的客户端认证

  2.保密:在握手协议中定义了会话密钥后,所有的消息都被加密

  3.完整性:传送的消息包括消息完整性检查(使用MAC)

  二、TLS

  SSL经历了 SSL 1.0、2.0、3.0 版本后发展成了标准安全协议TLS(Transport Layer Security)传输层安全性协议。

  到了1999年,SSL因为应用广泛已经成为互联网上的事实标准。IETF 在那年把SSL标准化,标准化之后的名称改为TLS,很多相关的文章都把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。

  TLS 在实现上分为记录层与握手层两层,其中握手层又包含四个子协议: 握手协议 (handshake protocol)、更改加密规范协议 (change cipher spec protocol)、应用数据协议 (application data protocol) 和警告协议 (alert protocol)。
 

  HTTPS原理

  HTTPS协议的主要功能基本都依赖于SSL/TLS协议,而实现SSL/TLS基于三种算法:对称加密、散列函数与非对称加密,其利用对称加密实现密钥协商与身份验证,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。

  对称加密:常见的有 AES-GCM、AES-CBC、3DES、DES等,相同的密钥可以用于信息的加密和解密,拥有密钥才能获取信息,这样能够防止信息窃听,一对一进行通信

  散列函数:常见的有 SHA1、MD5、SHA256,该类函数特点是对输入非常敏感、函数单向不可逆、输出长度固定,针对数据的任何修改都会改变散列函数的结果,用于防止信息篡改并验证数据的完整性

  非对称加密:即常见的 RSA 算法,还包括 ECC、DH 等算法,算法特点是,密钥成对出现,一般称为公钥(公开)和私钥(保密),公钥加密的信息只能私钥解开,私钥加密的信息只能公钥解开。因此掌握公钥的不同客户端之间不能互相解密信息,只能和掌握私钥的服务器进行加密通信,服务器可以实现一对多的通信,客户端也可以用来验证掌握私钥的服务器身份

  TLS 基于客户端使用非对称加密与服务器进行通信,实现身份验证并协商对称加密使用的密钥,然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间采用的对称密钥不同,从而可以保证信息只能通信双方获取。
 

  那么问题来了,既然HTTPS较HTTP安全性收入高很多,那么为什么到现在还有网站使用的是HTTP?

  这时候,小编就必须引入一个名词:CA机构。

  CA机构是一个专门给各网站签发数字证书、从而保障浏览器可以安全获得各个网站的公钥。

  在网站管理员向CA提交申请后,CA使用管理员提交的公钥加上一系列其他信息(如网站域名、有效时长等),来制作证书;证书制作完成后,CA会使用自己的私钥对其加密,并将加密后的数据反馈给网站管理员,管理员只需要将获得的加密数据配置到网站服务器上即可。

  每当有浏览器请求我们的网站时,首先会将这段加密数据返回给浏览器,此时浏览器会用CA的公钥来对这段数据解密,假如能够解密成功,就可以获得CA为网站颁发的证书了,包括网站公钥:

  如果无法解密成功就说明此段加密数据并不是由合法CA机构使用私钥加密而来的,有可能是被篡改了,从而会在浏览器上显示界面异常:

  但由于每家CA机构都会给成千上万的网站制作证书,假如黑客知道目标网站使用的是某家CA机构的证书,那他可以去这家机构申请一个合法证书,然后在浏览器请求目标对象网站时对返回的加密证书数据进行替换。

  黑客申请的证书也是由正规CA机构制作的,因此这段数据当然可以成功被解密,也正是因为这个原因,所有CA机构在制作证书时除了网站公钥外还要包含许多其他数据用来辅助校验,比如域名就是其中一项重要的数据。