TLS1.3中Kx=any与Au=any的含义及对应算法解析
TLS 1.3密码套件中Kx=any、Au=any的含义及实际算法说明
先看你给出的TLS 1.2和TLS 1.3的OpenSSL输出对比:
TLS 1.2的密码套件信息:
[evelden@gi2dpbvo00006 ~]$ openssl ciphers -v -s -tls1_2 -stdname 'EECDH+AESGCM' TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 - ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD
TLS 1.3的密码套件信息:
[evelden@gi2dpbvo00006 ~]$ openssl ciphers -v -s -tls1_3 -stdname -ciphersuites TLS_AES_256_GCM_SHA384 TLS_AES_256_GCM_SHA384 - TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
一、Kx=any和Au=any的含义
TLS 1.3重新设计了密码套件的职责:密码套件不再包含密钥交换(Kx)和身份认证(Au)的逻辑,只负责定义握手后会话使用的对称加密、哈希及AEAD算法。
因此OpenSSL里标记的Kx=any和Au=any,实际意思是:这个TLS 1.3密码套件不绑定任何特定的密钥交换或认证方式,它可以和TLS 1.3支持的所有密钥交换/认证组合配合使用。
二、TLS 1.3实际使用的密钥交换和认证算法
密钥交换算法(固定为带前向保密的类型)
TLS 1.3只支持以下几种具备前向保密能力的密钥交换机制:
- ECDHE:基于标准椭圆曲线的临时Diffie-Hellman交换,是最常用的类型
- X25519/X448:基于Curve25519/Curve448的高效椭圆曲线密钥交换
- PSK:预共享密钥,用于设备预先约定密钥的特定场景
- PSK+ECDHE:预共享密钥结合ECDHE,兼顾场景化需求和前向保密
身份认证算法
认证方式取决于握手时的配置:
- 证书认证场景:常用ECDSA(对应椭圆曲线证书)、RSA(RSA签名证书),也支持EdDSA(基于Ed25519/Ed448的证书)
- PSK场景:无需额外证书,认证依赖预先共享的密钥本身
内容的提问来源于stack exchange,提问作者ericj
相关产品推荐
相关产品推荐

