深入理解HTTPS工作原理

前言近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流 。
【深入理解HTTPS工作原理】读完本文,希望你能明白:

  • HTTP通信存在什么问题
  • HTTPS如何改进HTTP存在那些问题
  • HTTPS工作原理是什么
一、什么是HTTPSHTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版 。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面 。
HTTPS主要作用是:
(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
(2)对网站服务器进行真实身份认证 。
我们经常会在Web的登录页面和购物结算界面等使用HTTPS通信 。使用HTTPS通信时,不再用http://,而是改用https:// 。另外,当浏览器访问HTTPS通信有效的Web网站时,浏览器的地址栏内会出现一个带锁的标记 。对HTTPS的显示方式会因浏览器的不同而有所改变 。
深入理解HTTPS工作原理

文章插图
 
二、为什么需要HTTPS在HTTP协议中有可能存在信息窃取或身份伪装等安全问题 。使用HTTPS通信机制可以有效地防止这些问题,接下来,我们先来了解下
HTTP协议存在的哪些问题:
  • 通信使用明文(不加密),内容可能被窃听
由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信的请求和响应的内容)进行加密 。即,HTTP报文使用明文(指未经过加密的报文)方式发送 。
HTTP明文协议的缺陷是导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题的重要原因 。HTTP协议无法加密数据,所有通信数据都在网络中明文“裸奔” 。通过网络的嗅探设备及一些技术手段,就可还原HTTP报文内容 。
  • 无法证明报文的完整性,所以可能遭篡改
所谓完整性是指信息的准确度 。若无法证明其完整性,通常也就意味着无法判断信息是否准确 。由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉 。
换句话说,没有任何办法确认,发出的请求/响应和接收到的请求/响应是前后相同的 。
  • 不验证通信方的身份,因此有可能遭遇伪装
HTTP协议中的请求和响应不会对通信方进行确认 。在HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求 。另外,服务器只要接收到请求,不管对方是谁都会返回一个响应(但也仅限于发送端的IP地址和端口号没有被Web服务器设定限制访问的前提下)
HTTP协议无法验证通信方身份,任何人都可以伪造虚假服务器欺骗用户,实现“钓鱼欺诈”,用户无法察觉 。
反观HTTPS协议,它比HTTP协议相比多了以下优势(下文会详细介绍):
  • 数据隐私性:内容经过对称加密,每个连接生成一个唯一的加密密钥
  • 数据完整性:内容传输经过完整性校验
  • 身份认证:第三方无法伪造服务端(客户端)身份
三、HTTPS如何解决HTTP上述问题?HTTPS并非是应用层的一种新协议 。只是HTTP通信接口部分用SSL和TLS协议代替而已 。
通常,HTTP直接和TCP通信 。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了 。简言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP 。
深入理解HTTPS工作原理

文章插图
 
在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能 。也就是说HTTP加上加密处理和认证以及完整性保护后即是HTTPS 。
深入理解HTTPS工作原理

文章插图
 
HTTPS 协议的主要功能基本都依赖于 TLS/SSL 协议,TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性 。
深入理解HTTPS工作原理

文章插图
 
1.解决内容可能被窃听的问题——加密方法1.对称加密这种方式加密和解密同用一个密钥 。加密和解密都会用到密钥 。没有密钥就无法对密码解密,反过来说,任何人只要持有密钥就能解密了 。


推荐阅读