OpenSSL TLS/DTLS PSK

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字节:没有可用的密码 我

我正在开发一个应用程序,其中密钥服务器(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字节:没有可用的密码
  • 我尝试使用TLSV1_2_server_方法、TLSV1_2_server_方法、DTLS_server_方法、DTLS_client_方法,但每个方法都失败,出现上述错误

    有没有TLS-PSK加密的示例代码?我在网上找不到任何好的教程或例子

    我在做这件事时参考了这篇文章,但我使用的是内存BIOs
    我不能告诉你为什么密码不存在。我只能假设它不存在于您拥有的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的示例