跳转至

补充:密码套件

在文章RSA_TCP三次握手以及HTTPS_ECDHE握手解析中,总结到一个地方:

  • TLS握手的时候,客户端发送的Client Hello消息中有可供选择的密码套件列表以及服务端选择的密码套件
  • 问题:密码套件是什么样子的?是由什么组成的?

RSA算法

首先来看看RSA算法中握手过程的密码套件:

在TLS第二次握手中,服务端确认的密码套件:“Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256”

基本的形式: 密钥交换算法 + 签名算法 + 对称加密算法 + 摘要算法

一般WITH前面有两个单词,第一个单词是约定密钥交换算法,第二个单词是约定的证书验证算法

Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256

(TLS不算)

  • WITH前面只有一个单词RSA握手时的密钥交换算法和签名算法都是RSA
  • 握手后通信使用AES对称算法,密钥长度128位,分组模式是GCM
  • 摘要算法:SHA384 用于消息认证和产生随机数

ECDHE算法

再来看看ECDHE算法握手过程的密码套件

在服务端确认的的信息中,选择的密码套件:“Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384”

Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • 密钥交换算法:ECDHE
  • 签名算法:RSA
  • 握手后通信的对称加密算法:AES;密钥长度:256;分组模式:GCM
  • 摘要算法:SHA384

总结

基本形式:

  • 密钥交换算法
  • 签名算法
  • “WITH”
  • 握手后通信的对称加密算法;密钥长度;分组模式
  • 摘要算法