【深入浅出HTTPS】

本文详细介绍了HTTPS的基础知识,包括HTTP、密码学原理、TLS/SSL协议、密钥协商算法、证书和PKI系统。内容涵盖对称加密、非对称加密、数字签名、密钥交换和安全性能的探讨,以及HTTPS的实施、性能优化和实际部署。通过阅读,读者将全面了解HTTPS的安全机制和实践策略。
摘要由CSDN通过智能技术生成

HTTP介绍

  • HTTP,超文本传输协议,超文本指的是HTML
  • HTTP目前版本是1.1,定义在RFC2616规范上
  • 在HTTP中,客户端通过Socket技术创建一个TCP/IP连接,并连接到服务器
  • 就算是我们把内容加密,但是HTTP头部信息也是安全关注点之一
  • 用户访问网站一般会经过互联网服务商,服务商有时会在响应中加上一段HTML代码当广告

密码学

1.基础

  • HTTPS本质上是对密码学算法的组合
  • 在密码学中,一般使用消息验证码(MAC)算法来保证完整新
  • 在密码学中,一般使用数字签名来确认身份
  • OpenSSL项目包含了底层密码库和命令行工具,Linux一般自带

2.随机数

在这里插入图片描述

  • 单纯从软件层面无法生成完全不一样的随机数,为了实现真正不可重现性,需要基于物理设备或物理现象
  • 对于真正的随机数生成器,内部数值来自外部设备,叫做熵
  • 对于伪随机数生成器,内部数值来自模拟的数值,叫做种子
  • 随机数生成器一般会尽可能寻找更多的熵和种子

3.Hash算法

  • 一些基础的密码学算法(加密基元)构成更多的密码学算法,协议以及应用程序
  • 密码学Hash算法就是一个非常重要的加密基元,它和一般Hash算法不同,多了更多的特性
  • 基于密码学Hash算法产生的其他密码学算法
    在这里插入图片描述
  • 密码学Hash算法的公式 hash(入参) = 摘要,散列,或者叫指纹
  • 密码学Hash算法的特性
    • 相同入参,出参一样
    • 一个算法,不管入参长度,出参长度总是一样的
    • 不可逆
    • 很难找到两个不同的消息,结果一样
  • 两个不同的入参得到相同的出参,就代表发生了hash碰撞
  • 密码学Hash算法分类
    • MD5 本质上不安全,大量运算会产生碰撞
    • SHA,包括SHA-1 SHA2 SHA-3 一般SHA2就安全了
      在这里插入图片描述

4.对称加密算法

  • AES是对称加密算法的标准算法
  • 对称加密算法有两种类型,块密码算法和流密码算法
4.1 流密码算法
  • 密钥流一个流式的二进制字符串,和入参变成的二进制串进行按位进行异或
  • 密钥流是由密钥生成,基于同一个密钥,加密者和解密者有着相同的密钥流
  • 流密码算法不安全,建议使用块密码算法
4.2 块密码算法

简单来说,就是把明文分块,每块要固定长度,不够的化就进行填充,然后进行加密

4.3 填充标准

我们这里已PKCS#7为例,如果填充的字节长度是3,那么填充就是030303,这样就可以方便的看出填充到底有几位

5.消息验证码

对称加密算法能够解决机密性问题,但是无法确保完整性,攻击者可以修改密文,接收方解密出来的就不是原文了

通过Hash算法生成摘要,攻击者可以同时更改消息和摘要,来达到篡改消息的目的,Hash算法能做完整性校验,但是不能避免消息被篡改,消息验证码因而诞生了

MAC值 = mac (消息 + 秘钥)

秘钥需要双方共同维护一个,然后通过比较MAC值来防止消息被篡改

在这里插入图片描述
结合对称加密和MAC算法,可以提供机密性和完整性的模式叫做AE加密模式

6.非对称加密算法

  • 因为性能比较差,一般用于秘钥协商或者数字签名
  • 最经典的是RSA算法
  • 公钥和私钥一般以文件的形式提供
  • 同样的明文,同样的秘钥,经过RSA加密,每次的密文都不是一样的

7.密钥

  • 密钥的分类
    在这里插入图片描述
    密钥要保证足够的长度以及不可预测性

8.密钥协商算法(如何在网络中传输秘钥)

  • 什么是会话秘钥
    • 作用是为了加密解密通讯数据
    • 在通讯数据之前通过密钥协商算法客户端和服务端协商出会话秘钥,一旦连接关闭,秘钥消失
⑴RSA密钥协商算法(完全客户端控制)
  • 服务端发送公钥给客户端
  • 客户端通过公钥加密会话秘钥,然后发给服务器端
  • 公钥是完全公开的,不能确认是哪个客户端发送的,因而会出现抵赖
⑵DH密钥协商算法

通讯双方任何一方无法独自计算出一个会话密钥,通讯双方各自保留一部分关键信息,再讲另外一部分信息告诉对方,双方有了全部信息才能计算出相同的会话秘钥

9.椭圆曲线密码学

秘钥越长,性能越低,因而有了椭圆曲线密码学(ECC)来提高性能

ECC极短的秘钥能够提供很大的安全性

  • 可以和DH秘钥协商算法组合形成ECDH秘钥协商算法
  • 结合数字签名DSA形成ECDSA数字签名算法

10.数字签名

  • RSA和DSA都可以实现数字签名

  • 数字签名有以下几个特点

    • 防篡改 MAC算法也有这个特点
    • 防抵赖 消息签署者不能抵赖
    • 防伪造 MAC算法也有这个特点
  • 数字签名的处理流程包括签名生成和签名验证

  • 签名生成(发送者)

    • 对消息计算摘要
    • 用私钥对摘要值进行签名得到签名值
    • 将原始消息和签名值一起发送给接受者,原始消息不需加密,因为数字签名不是为了加密
  • 签名验证(接受者)

    • 拆分出消息和签名值A
    • 用公钥对消息进行运算,得到摘要值B
    • B和A比较&#
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值