Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)
1 | 服务端 |
1 | => openssl ciphers -V | grep -i '0xc0,0x30' |
Server Key Exchange
时会使用私钥进行签名,客户端使用下发的公钥进行验签就保证了私钥是服务端持有的,其他人无法进行签名TLS_AES_256_GCM_SHA384(0x1302)
1 | 服务端 |
1 | => openssl ciphers -V | grep '0x13,0x02' |
Change Chipher Spec
后,后面的数据都是加密的Certificate Verify
时会使用私钥对前面的握手信息进行签名,客户端验签通过说明是持有私钥的服务端下发的数据,做身份认证Server Key Exchange
请求了,DH参数在Server Hello
中就下发了,这时没有证书信息下发,所以不进行签名。可以进行加密传输后,再使用Certificate Verify
来保证私钥是服务端持有的Certificate Verify
中进行,根据证书的算法使用私钥对握手数据进行签名,客户端使用公钥校验证明是服务端持有私钥psk_key_exchange_modes是一种TLS协议中的扩展,用于指定预共享密钥(PSK)交换的模式。根据TLS 1.3规范,psk_key_exchange_modes共有4种模式,分别为:
1 | 服务端命令 |
1 | 服务端命令 |
算法可以类比TLS_RSA_WITH_AES_256_GCM_SHA384
,其中
AES_256_GCM
,对称加密算法,为握手完成后的数据传输阶段的算法SHA384
,摘要算法仅将SM4换成SM1的闭源实现,其他都一样
1 | # 设置find之后,下面几个变量会进行赋值,引入到library和include里面即可 |
1 | OPENSSL_CRYPTO_LIBRARY:FILEPATH=/usr/lib/openssl-1.1/libcrypto.so |
1 | POST /xxx/aaa/ddd HTTP/1.1 |
1 | ... |