OpenSSL TLS/DTLS PSK
我正在开发一个应用程序,其中密钥服务器(K)生成一个对称密钥,并与服务器(a)和客户端(B)共享。A和B通过UDP连接。 我正在使用内存BIOs,并试图使用密码“PSK-AES128-CBC-SHA” 我有几个与此相关的问题:OpenSSL TLS/DTLS PSK,ssl,openssl,tls1.2,tls-psk,Ssl,Openssl,Tls1.2,Tls Psk,我正在开发一个应用程序,其中密钥服务器(K)生成一个对称密钥,并与服务器(a)和客户端(B)共享。A和B通过UDP连接。 我正在使用内存BIOs,并试图使用密码“PSK-AES128-CBC-SHA” 我有几个与此相关的问题: 当我们有一个对称密钥时,我们还应该称之为SSL\u do\u握手吗 当我用这个调用设置密码时SSL_CTX_set_Cipher_list(上下文,“PSK-AES128-CBC-SHA”)我收到一个错误SSL例程:SSL\u密码\u列表\u到\u字节:没有可用的密码 我
SSL_CTX_set_Cipher_list(上下文,“PSK-AES128-CBC-SHA”)代码>我收到一个错误SSL例程:SSL\u密码\u列表\u到\u字节:没有可用的密码
我不能告诉你为什么密码不存在。我只能假设它不存在于您拥有的openssl版本中,或者必须首先将其添加到openssl中 您知道tls1.3中内置了PSK支持吗?如果使用openssl 1.1.1,则可以从openssl命令行执行PSK 服务器:
# use a 48 byte PSK
$ PSK=63ef2024b1de6417f856fab7005d38f6df70b6c5e97c220060e2ea122c4fdd054555827ab229457c366b2dd4817ff38b
$ openssl s_server -psk $PSK -cipher TLS13-AES-256-GCM-SHA384 -nocert -accept 2020
客户:
$ openssl s_client -psk $PSK -connect localhost:2020
CONNECTED(00000003)
---
no peer certificate available
---
No client certificate CA names sent
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 195 bytes and written 475 bytes
Verification: OK
---
Reused, TLSv1.3, Cipher is TLS13-AES-256-GCM-SHA384
…
因此,我建议您查找openssl 1.1.1 s_服务器和s_客户端命令的源代码,以查看如何在tls1.3中使用PSK的示例。我无法告诉您密码不存在的原因。我只能假设它不存在于您拥有的openssl版本中,或者必须首先将其添加到openssl中 您知道tls1.3中内置了PSK支持吗?如果使用openssl 1.1.1,则可以从openssl命令行执行PSK 服务器:
# use a 48 byte PSK
$ PSK=63ef2024b1de6417f856fab7005d38f6df70b6c5e97c220060e2ea122c4fdd054555827ab229457c366b2dd4817ff38b
$ openssl s_server -psk $PSK -cipher TLS13-AES-256-GCM-SHA384 -nocert -accept 2020
客户:
$ openssl s_client -psk $PSK -connect localhost:2020
CONNECTED(00000003)
---
no peer certificate available
---
No client certificate CA names sent
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 195 bytes and written 475 bytes
Verification: OK
---
Reused, TLSv1.3, Cipher is TLS13-AES-256-GCM-SHA384
…
因此,我建议您查找openssl 1.1.1 s_服务器和s_客户端命令的源代码,以查看如何在tls1.3中使用PSK的示例