SSL/TLS Introduction

 

作用

HTTPS 建立于SSL/TLS之上,用于保证通信数据的加密

握手过程

  • Client Hello

    客户端发送,包含random1以及客户端支持的加密套件1组合等信息

  • Server Hello

    服务端发送,包含后续使用的加密套件及random2

  • Certificate

    服务器发送,包含证书信息

  • Certificate Verify

    客户端使用内置CA公钥解密证书指纹信息及指纹算法,验证通过后,发送PreMaster Key2

    同时客户端与服务端生成会话密钥

  • Change Cipher Spec

    客户端/服务端发送,通知后续使用密钥加密

  • Encrypted Handshake Message

    客户端/服务端发送,将握手消息生成摘要进行加密,供服务端/客户端验证

会话复用

服务端可以在握手过程中给客户端发送Session ID,后续握手时可直接复用

分类加密算法

  • 摘要算法
  • 对称加密算法
  • 非对称加密算法

摘要算法

  • MD5

    将给定任意长度字符串哈希,生成128bit,常用十六进制表示为32个字符

  • SHA[1,256,512]

    安全性比MD5更强,生成对应比特位数,其中SHA1生成160bit

对称加密算法

  • AES

    可设置密钥长度128、192、256位,安全,高效

  • DES

    密钥长度56位

非对称加密算法

  • RSA

    私钥与公钥对应,安全

数字签名

将数据进行哈希后,使用加密算法进行加密,与数据一起发送,接收方可通过公钥进行解密后,对数据进行哈希对比,若相同,可保证数据未改动过

数字证书

客户端接收到数字证书后,通过颁发者公钥使用数字签名中的算法进行解密,并对证书内容使用对应的指纹算法,保证与指纹相同后再继续与服务器端通信。SSL/TLS过程中,客户端和服务器确定加密组合之后,后续通信数据通过哈希算法生成摘要与数据进行加密,接收方解密后通过哈希算法进行摘要对比即可保证通信数据安全。

  1. 加密套件:包含握手过程中使用的加密算法,后续会话密钥使用的加密算法以及生成数字签名使用的哈希算法 

  2. PreMaster Key是指客户端生成随机数并用CA中服务器公钥进行加密