《透视HTTP协议-学习笔记》--安全篇

227 阅读2分钟

23 | HTTPS是什么?SSL/TLS又是什么?

  1. 为什么要有 HTTPS? http是明文传输,容易在链路中或者、修改或者伪造请求/响应报文,数据不具有可信。

  2. 什么是安全?

  • 机密性
  • 完整性
  • 身份认证
  • 不可否认
  1. 什么是HTTPS? HTTPS = HTTP + SSL/TSL,默认端口号 443

image.png 4. SSL/TLS

24 | 固若金汤的根本(上):对称加密与非对称加密

  1. 对称加密 加密和解密时使用的密钥都是同一个。

  2. 非对称加密 使用两个密钥:公钥和私钥,公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密。公钥可以任意分发而私钥保密,解决了密钥交换问题但速度慢,常用的有 RSA 和 ECC;

  3. 混合加密 在通信刚开始的时候使用非对称算法,解决密钥交换的问题。然后用随机数产生对称算法使用的“会话密钥”,再用公钥加密,对方拿到密文后用私钥解密,取出会话密钥。

25 | 固若金汤的根本(下):数字签名与证书

  1. 摘要算法保证了“数字摘要”和原文是完全等价的。所以,我们只要在原文后附上它的摘要,就能够保证数据的完整性。
  2. 数字签名是私钥对摘要的加密,可以由公钥解密后验证,实现身份认证和不可否认。
  3. 公钥的分发需要使用数字证书,必须由 CA 的信任链来验证,否则就是不可信的。

26 | 信任始于握手:TLS1.2连接过程解析

  1. TLS 协议的组成:记录协议、警报协议、握手协议、变更密码规范协议等。
  2. 握手的目标是安全地交换对称密钥,需要三个随机数,第三个随机数“Pre-Master”必须加密传输,绝对不能让黑客破解。

image.png

27 | 更好更快的握手:TLS1.3特性解析

image.png

28 | 连接太慢该怎么办:HTTPS的优化

  1. 硬件优化和软件优化。
  2. 服务器端应当开启“OCSP Stapling”功能,避免客户端访问 CA 去验证证书。
  3. 会话复用。

29 | 我应该迁移到HTTPS吗?

  1. 首先要申请数字证书。
  2. 配置HTTPS,在Nginx上配置。

listen                443 ssl;

ssl_certificate       xxx_rsa.crt;  #rsa2048 cert
ssl_certificate_key   xxx_rsa.key;  #rsa2048 private key

ssl_certificate       xxx_ecc.crt;  #ecdsa cert
ssl_certificate_key   xxx_ecc.key;  #ecdsa private ke
  1. 重定向跳转。使用HSTS可以避免重定向的响应被窜改。在访问同样的域名时,自动改为https。