HTTPS 协议原理详解

HTTPS 协议原理详解

  • [什么是 HTTPS 协议](#什么是 HTTPS 协议)
  • [什么是 SSL/TSL 层](#什么是 SSL/TSL 层)
  • [HTTPS 使用到的加密算法](#HTTPS 使用到的加密算法)
  • [HTTPS 中 TLS 层的加密过程详解](#HTTPS 中 TLS 层的加密过程详解)
  • [HTTPS 加密过程中用到的数字证书](#HTTPS 加密过程中用到的数字证书)

什么是 HTTPS 协议

HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPSHTTP 的基础下加入SSLHTTPS 的安全基础是 SSLHTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层:SSL/TSL。如下图:

什么是 SSL/TSL 层

SSL 即安全套接层(SecureSocketLayer),由网景公司于1994年发明,IETF在1999 年把它改名为TLS(传输层安全,传输层安全),正式标准化,到今天TLS已经发展出了主流的三个版本,分别是2006年的1.1、2008年的1.2,2018的1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。

HTTPS 使用到的加密算法

  1. 摘要算法 摘要算法能够把任意长度的数据"压缩"成固定长度、而且独一无二的"摘要"字符串,就好像是给这段数据生成了一个数字"指纹"。任意微小的数据差异,都可以生成完全不同的摘要。所以可以通过把明文信息的摘要和明文一起加密进行传输,数据传输到对方之后再进行解密,重新对数据进行摘要,再比对就能发现数据有没有被篡改。这样就保证了数据的完整性。如以下例子:

注:摘要算法可使用 md5,sha1,sha2,sha256 等主流浏览器和服务器支持的加密算法

  1. 对称密钥加密算法

对称密钥加密算法:编、解码使用相同密钥的算法,如(AESRC4,ChaCha20 )。

  1. 非对称密钥加密算法

    定义:它有两个密钥,一个叫"公钥",一个叫"私钥"。两个密钥是不同的,公钥可以公开给任何人使用,而私钥必须严格保密。非对称加密可以解决"密钥交换"的问题。网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就可以,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文。
    加密方式:

    1. 公钥加密 ---> 私钥解密
    2. 私钥加密 ---> 公钥解密
      优点:安全性高

    缺点:虽然非对称加密比对称加密安全,但是在实际的应用中也存在问题:非对称密钥加密系统通常需要大量的数学运算,比较慢。如(DH、DSA、RSA、ECC)。

HTTPS 中 TLS 层的加密过程详解

TLS 里使用的是混合加密方式,即把对称加密和非对称加密结合起来呢,两者取长补短,即能高效地加密解密,又能安全地密钥交换。大致流程如下:

  1. 第一步 :通信开始的时候使用非对称算法如 RSA,ECDHE先解决密钥交换的问题

    2. 第二步 :用随机数产生对称算法使用的"会话密钥",再用公钥加密。会话密钥很短,所以即便使用非对称加密算法也可以很快完成加解密

    3. 第三步 :对方拿到密文后用私钥解密,取出会话密钥。完成对称密钥的安全交换,后续就使用对称算法发完成数据交换
    完整的ssl流程图示

HTTPS 加密过程中用到的数字证书

  1. 数字证书是什么
    数字证书组成: CA信息,公钥用户信息,公钥,权威机构的签名,有效期
  2. 数字证书作用:
    • 通过数字证书向浏览器证明身份
    • 数字证书里面包含了公钥
  3. 数字证书的申请
    • 生成自己的公钥和私钥,服务器自己保留私钥
    • 向CA机构提交公钥,公司,域名信息等待认证
    • CA机构通过线上,线下多种途径验证你提交信息的真实性,合法性
    • 信息审核通过,CA机构则会向你签发认证的数字证书,包含了公钥,组织信息,CA信息,有效时间,证书序列号,同时生成一个签名签名步骤: hash( 你用于申请证书所提交的明文信息 )=信息摘要;CA再使用私钥对 信息摘要进行加密密文就是证书的数字签名
  4. 浏览器如何验证数字证书
    • 有了CA签名过的数字证书,当浏览器访问服务器时,服务器会返回数字证书给浏览器。
    • 浏览器收到证书后会对数学证书进行验证,首先浏览器读取证书中相关的明文信息,采用CA签名时相同的hash函数计算得到信息摘要A,再利用对应的CA公钥解密数字签名数据得到信息摘要B,如果摘要A和摘要B一致,则可以确认证书时合法的

:关于数字签名证书,可以看这一篇文章《数字签名是什么》,写的非常好👍

相关推荐
涔溪1 小时前
HTTP TCP三次握手深入解析
网络·tcp/ip·http
憨子周1 小时前
2M的带宽怎么怎么设置tcp滑动窗口以及连接池
java·网络·网络协议·tcp/ip
wdxylb7 小时前
将C++搭建的简单HTTP服务器升级为 HTTPS 服务器
运维·服务器·https
ZachOn1y7 小时前
计算机网络:运输层 —— 运输层端口号
网络协议·tcp/ip·计算机网络·udp·tcp·端口号
qq_254674418 小时前
在C2M(Customer-to-Manufacturer)柔性制造模式下,算法
网络协议
橘色的喵8 小时前
工业通信协议对比:OPC-UA、Modbus、MQTT、HTTP
mqtt·网络协议·http·modbus·opc-ua·工业协议
火山引擎边缘云8 小时前
QCon演讲实录|赵彦奇:HTTPDNS 边缘下沉,性能、成本和稳定性之间的取舍与思考
http·边缘计算·dns
迷途小码农零零发8 小时前
http的发展史
网络·网络协议·http
cocapop9 小时前
IP地址 与 DNS
网络协议·tcp/ip·智能路由器
CP-DD9 小时前
TCP编程API
网络·网络协议·tcp/ip