HTTPS协议

发布时间 2023-03-22 21:13:08作者: 大咸鱼8125

HTTPS 协议

HTTPS = HTTP + SSL(安全套间层协议)/TLS(传输层安全协议)

  1. 加密算法
  2. PKI体系(公钥基础设施)
  3. 证书
  4. 部署HTTPS服务器
    • 部署CA证书服务器
  5. 分析HTTPS的流量
    • 分析TLS交互过程

一、HTTPS协议

  • 在HTTP的通道上,增加了安全性,传输过程中,通过加密和身份认证来确保传输的安全性

1、TLS

  • 传输层的安全协议,SSL和TLS其实是一个协议,SSL2.0版本,自SSL3.0版本之后,更名为TLS1.0,目前最高版本是TLS1.3,目前最为广泛的是TLS1.2版本
  • 设计目标
    • 保密性:所有的信息都加密传输
    • 完整性:校验机制
    • 认证:双方都配备证书,防止冒充
    • 互操作、通用性
    • 可扩展
    • 高效率
  • 发展历史
    • SSL2.0——》SSL3.0——》TLS1.1——》TLS1.2——》TLS1.3

2、HTTP的缺陷

  • 明文传输
  • 只对传输数据的长度进行完整性校验,对数据是否有被篡改是不做确认的

3、HTTPS的好处

  • 在传输数据之前,客户端和服务器端会协商传输过程中的加密算法,包含自己的非对称加密的密钥交换算法(RSA/DH),数据签名摘要算法(MD5/SHA),加密传输数据的对称加密算法(DES/3DES/AES)

    • 非对称加密算法:公钥和私钥
    • 对称加密算法:公共密钥
    • 概要算法:MD5
  • 过程

    • 用户机(Client)首先使用公共密钥对数据进行加密,再使用服务器(Server)的公钥对公共密钥(用户机生成随机的字符串)进行加密,将加密后的数据和密钥一起发给服务器(Server),服务器(Server)收到后,首先使用自己的私钥将公共密钥进行解密,再使用公共密钥将传输的数据进行解密
    • 对称加密算法比较简单,所以对于验证大型的数据来说,会比较快,因此使用对称加密算法加密数据
    • 非对称加密算法比较复杂,时间消耗较长,所以只用来加密公共密钥
    • 概要算法主要是用来校验,在传输数据之前,会对数据进行摘要值的计算,显示数据是否被篡改过

    image

二、加密算法

1、对称加密算法

  • 加密和解密的密钥相同(只有一个密钥,公共密钥,双方都需要使用)
    • 密钥传输有问题,密钥如何安全传输
    • 密钥多,难管理
  • 常见的对称加密算法
    • DES/3DES
    • AES
    • RC
    • IDEA
  • image

2、非对称加密算法

  • 加密和解密使用的是不同的密钥,公钥和私钥,每个用户都可以有自己的公钥和私钥,公钥是公开的,私钥是由自己保存的,使用一个密钥加密就必须使用另一个密钥解密
    • 加密算法比较复杂,对于大规模的数据进行加密,比较影响效率
  • 常见的算法
    • DH
    • Elgamal:基于DH算法来的
    • RSA
    • ECC
    • Rabin

三、PKI体系

1、基本概念

  • 公钥基础设施

    • 通过使用公钥技术(非对称加密算法)和数字签名来确保信息安全
    • 公钥加密技术(非对称加密算法)、数字证书、CA(证书颁发机构)、RA(证书注册机构)组成
  • 实现的功能

    • 身份验证
    • 数据完整性
    • 数据机密性
    • 操作不可否认性
  • 身份认证

    • 数字签名是由私钥把信息算法加密之后的内容
    • 发送方Alice首先将原始数据通过摘要算法(SHA)算出信息的摘要,并且用自己的私钥进行签名得到数字签名证书,将数字签名和原始数据发送给接收方bob
    • 接收方bob收到Alice发来的原始数据数字签名后,将原始数据通过相同的摘要算法(SHA)得出信息摘要,再使用Alice的公钥将数字签名解开,得出Alice的信息摘要(这里就完成了Alice的身份认证),比对两个摘要是否一致,如果一致,说明数据在传输过程中没有被修改

    image

  • 数字证书

    • 保证密钥的合法性
    • 证书的主体可以是用户、计算机、服务等
    • 证书包含的信息
      • 使用者的公钥
      • 使用者的标识
      • 有效期
      • 颁发者的标识信息
      • 颁发者的数字签名

2、数据安全传输案例