TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256算法组合中的ECDHE
对 PKI:TLS握手 的补充
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS : protocol that this cipher suite is for
ECDHE
: key exchange algorithm being used.
RSA : authentication mechanism during the handshake.
AES : session cipher.
128 : session encryption key size (bits) for cipher.
GCM
: type of encryption (cipher-block dependency and additional options).
SHA : hash function. For a digest of 256 and higher. Signature mechanism. Indicates the message authentication algorithm
256 : Digest size (bits).
在网络中安全的传送密钥是很难的问题。
所以为了缓解这个问题,可以使用动态密钥,动态密钥就具有前向安全性。也就是说,即使泄露或攻破,只会泄露本次会话的数据。
之前会话的数据即使被保存,也无法使用本次密钥来破解。
动态密钥,也叫会话密钥,它不用存储落盘,一旦双方的连接关闭,密钥就会被销毁。
会话密钥的协商可以使用RSA算法,和DH算法。(Diffie-Hellman
,2个人的名字,1976年公布的公开密钥算法,历史比RSA悠久)
DH算法协商会话密钥的时候,是双方参与,而不是一方说了算。这也是它的原理和优势。
简单介绍:
- 参数
p,g是参数,公开的。p是很大的质数,建议长度1024bit以上;g是生成器,2或者5.
- 计算
服务器根据公开参数生成随机数b,即私钥。计算Ys=(g ^ b) mod p,即公钥
客户端根据公开参数生成随机数a,即私钥。计算Yc=(g ^ a) mod p,即公钥
服务器计算Z = (Yc ^ b) mod p
客户端计算Z = (Ys ^ a) mod p
Z就是会话密钥。协商完成。
这里是幂运算,和求模过程,所以运算上破解,就面临离散对数,和因式分解的问题。
其安全性与密钥长度正相关。
DH算法有静态DH算法,和临时DH算法(Ephemeral
EDH算法、DHE算法)
静态DH算法,p,g,Ys永远固定,没有前向安全性。好处是初始化连接时免去频繁生成p,g
EDH算法,不固定,密钥对只在有效的时空内存在(每次连接)
openssl的dhparam和genpkey可以进行DH算法实践,这里略过。
前面说了,DH算法安全性与密钥长度正相关。长度越长,越安全,同时缺点是性能越低,
所以这时ECC
(Elliptic Curve Cryptography 椭圆曲线密码学)就要出场了。
它是比离散对数类算法(RSA,DH)更复杂的算法,本身也是一个复杂的结构体,ECC模型这里不说了。
系统预先定义了一系列的曲线,叫做命名曲线(name curve),比如secp256k1
对于使用者来说,知道命名曲线和参数文件即可。openssl的ecparam可以进行ECC相关操作。
将ECC和DH结合,就得到了ECDH协商算法
ECDH首先取得一个随机数k,就是私钥。然后不同点来了:kg的结果就是公钥。
g是椭圆曲线上的基点,公钥也是椭圆曲线上的一个点。对于ETC密码学来说,通过公钥很难破解私钥。
openssl的ecparam和genpkey pkey pkeyutl可以进行ECDH算法实践,这里略过。
ecc本质上是一个数学公式,任何人基于公式都可以设计出椭圆曲线,如果实现不当,那么就存在安全问题。对于使用者来说,如果要使用ECC椭圆曲线,要做的就是选择一条安全并且性能高的命名曲线。
常见的命名曲线:
选择的标准就是尽量选择性能高,安全好,兼容性好的。(简直是废话)
使用openssl显示系统支持的命名曲线:
[root@ecs-hce ~]# openssl ecparam -list_curves
secp112r1 : SECG/WTLS curve over a 112 bit prime field
secp112r2 : SECG curve over a 112 bit prime field
secp128r1 : SECG curve over a 128 bit prime field
secp128r2 : SECG curve over a 128 bit prime field
secp160k1 : SECG curve over a 160 bit prime field
secp160r1 : SECG curve over a 160 bit prime field
secp160r2 : SECG/WTLS curve over a 160 bit prime field
secp192k1 : SECG curve over a 192 bit prime field
secp224k1 : SECG curve over a 224 bit prime field
secp224r1 : NIST/SECG curve over a 224 bit prime field
secp256k1 : SECG curve over a 256 bit prime field
secp384r1 : NIST/SECG curve over a 384 bit prime field
secp521r1 : NIST/SECG curve over a 521 bit prime field
prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field
prime192v2: X9.62 curve over a 192 bit prime field
prime192v3: X9.62 curve over a 192 bit prime field
prime239v1: X9.62 curve over a 239 bit prime field
prime239v2: X9.62 curve over a 239 bit prime field
prime239v3: X9.62 curve over a 239 bit prime field
prime256v1: X9.62/SECG curve over a 256 bit prime field
wap-wsg-idm-ecid-wtls6: SECG/WTLS curve over a 112 bit prime field
wap-wsg-idm-ecid-wtls7: SECG/WTLS curve over a 160 bit prime field
wap-wsg-idm-ecid-wtls8: WTLS curve over a 112 bit prime field
wap-wsg-idm-ecid-wtls9: WTLS curve over a 160 bit prime field
wap-wsg-idm-ecid-wtls12: WTLS curve over a 224 bit prime field
brainpoolP160r1: RFC 5639 curve over a 160 bit prime field
brainpoolP160t1: RFC 5639 curve over a 160 bit prime field
brainpoolP192r1: RFC 5639 curve over a 192 bit prime field
brainpoolP192t1: RFC 5639 curve over a 192 bit prime field
brainpoolP224r1: RFC 5639 curve over a 224 bit prime field
brainpoolP224t1: RFC 5639 curve over a 224 bit prime field
brainpoolP256r1: RFC 5639 curve over a 256 bit prime field
brainpoolP256t1: RFC 5639 curve over a 256 bit prime field
brainpoolP320r1: RFC 5639 curve over a 320 bit prime field
brainpoolP320t1: RFC 5639 curve over a 320 bit prime field
brainpoolP384r1: RFC 5639 curve over a 384 bit prime field
brainpoolP384t1: RFC 5639 curve over a 384 bit prime field
brainpoolP512r1: RFC 5639 curve over a 512 bit prime field
brainpoolP512t1: RFC 5639 curve over a 512 bit prime field
SM2 : SM2 curve over a 256 bit prime field
最后总结一下,ECDHE就是ECC和DHE的结合。因为ECC所以保证安全的同时性能还好,因为DHE所以协商出的会话密钥具有前向安全性。二者珠联璧合,郎情妾意,如鱼得水。
最后推荐书籍《深入浅出HTTPS:从原理到实战》。作者:虞卫东著。很不错,推荐。
- 点赞
- 收藏
- 关注作者
评论(0)