Tongsuo-Project / Tongsuo

铜锁/Tongsuo is a Modern Cryptographic Primitives and Protocols Library
https://www.tongsuo.net
Apache License 2.0
1.16k stars 186 forks source link

关于实现RFC 8998中存在几处不合理的点 #491

Closed lan1120 closed 1 year ago

lan1120 commented 1 year ago

(1)服务端加载sm2证书和rsa证书,并设置为强制遵循RFC 8998 服务端收到了ClientHello中cipher_suites为TLS_SM4_GCM_SM3,签名算法为rsa_pss_rsae_sha256+sm2sig_sm3 服务端选择了TLS_SM4_GCM_SM3套件,rsa_pss_rsae_sha256签名算法,发送了RSA证书,这不符合RFC 8998 section 3.3.3

(2)服务端加载sm2证书,配置TLS_SM4_GCM_SM3套件,并设置为强制遵循RFC 8998 服务端收到了RSA证书,同时CertificateVerify消息中的签名算法为rsa_pss_rsae_sha256,通过了校验。 这不符合RFC 8998 section 3.3.4

(3)服务端设置"X25519:X448",并设置强制遵循RFC 8998 客户端设置"X25519:X448:curveSM2",并设置强制遵循RFC 8998 建链成功,算法套为TLS_SM4_GCM_SM3,group为curveSM2,但是服务端的配置无curveSM2。 这样实现是否合理?

或许是我对协议的理解有误? 期望你们的答复,谢谢!

InfoHunter commented 1 year ago

3我觉得逻辑没啥问题,因为强制了8998之后就是忽略其他配置而直接使用curveSM2

1和2需要看一下,@dongbeiouba