簡體   English   中英

OpenSSL 1.1.1 PSK TLS1.3 - TLS_256_GCM_SHA384 密碼套件沒有合適的簽名算法錯誤

[英]OpenSSL 1.1.1 PSK TLS1.3 - no suitable signature algorithm error with TLS_256_GCM_SHA384 ciphersuite

我正在使用 OpenSSL 1.1.1l 2021 年 8 月 24 日在 windows 中運行一些測試,對 PSK TLS_128_GCM_SHA256 和 TLS_256_GCM_SHA3 使用 s_client 和 s_server

對於 PSK TLS_128_GCM_SHA256我能夠成功建立連接:

服務器:

$openssl s_server -nocert -psk 1234567890ABCDEF -tls1_3 -ciphersuites TLS_AES_128_GCM_SHA256

客戶

openssl s_client -psk 1234567890ABCDEF -tls1_3 -ciphersuites  TLS_AES_128_GCM_SHA256

但是,我無法成功建立密碼套件TLS_AES_256_GCM_384的連接

服務器

$openssl s_server -psk 63ef2024b1de6417f856fab7005d38f6df70b6c5e97c220060e2ea122c4fdd054555827ab229457c366b2dd4817ff38b -ciphersuites TLS_AES_256_GCM_SHA384 -nocert -tls1_3

Using default temp DH parameters
ACCEPT
ERROR
30508:error:14201076:SSL routines:tls_choose_sigalg:no suitable signature algorithm:ssl\t1_lib.c:2760:
shutting down SSL
CONNECTION CLOSED

客戶

$openssl s_client -psk 63ef2024b1de6417f856fab7005d38f6df70b6c5e97c220060e2ea122c4fdd054555827ab229457c366b2dd4817ff38b -ciphersuites TLS_AES_256_GCM_SHA384 -tls1_3
CONNECTED(000001C4)
32968:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl\record\rec_layer_s3.c:1544:SSL alert number 40
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 291 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

我錯過了什么? 謝謝!

TLSv1.3 中的 PSK 必須與 hash 關聯。 默認情況下 s_server 和 s_client 將使用 SHA256。 TLS_AES_256_GCM_SHA384 密碼套件使用 SHA384,因此與與 PSK 關聯的 SHA256 不兼容。

不幸的是,沒有選項可以告訴 s_client/s_server 對 PSK 使用不同的 hash。 但是有一個解決方法。 您可以改為使用-psk_session選項,該選項將 session 文件作為參數。 您可以使用常規(非 PSK)連接構建 session 文件,如下所示:

$ openssl s_server -ciphersuites TLS_AES_256_GCM_SHA384 -tls1_3 -cert cert.pem -key key.pem
$ openssl s_client -ciphersuites TLS_AES_256_GCM_SHA384 -tls1_3 -sess_out sess.pem

這會將來自連接的密鑰保存在 session 文件中,並將其與密碼套件 (SHA384) 的 hash 相關聯。 然后您可以使用 session 文件作為 PSK,如下所示:

$ openssl s_server -ciphersuites TLS_AES_256_GCM_SHA384 -tls1_3 -psk_session sess.pem -nocert
$ openssl s_client -ciphersuites TLS_AES_256_GCM_SHA384 -tls1_3 -psk_session sess.pem

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM