首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openSSL选择ECDSA而不是ECDSA。

openSSL选择ECDSA而不是ECDSA。
EN

Security用户
提问于 2015-02-05 15:57:37
回答 1查看 1.5K关注 0票数 1

我试图在我编写的客户端和服务器之间使用openSSL进行安全连接。

当我尝试选择要使用的密码套件时,我会在客户机和服务器上做SSL_CTX_set_cipher_list(ctx,ECDH-ECDSA-AES18-GCM-SHA 256)。

但是当我检查get_cipher_list时,优先级别0的密码是ECDH-RSA-AES128-GCM-SHA 256(注意使用RSA而不是ECDSA),ECDH-ECDSA-AES18-GCM-SHA256只出现在1级。

客户端和服务器在由ECDSA签名的证书中都有ECDSA密钥。

我现在有几个问题:

  • 这套带有RSA的套间是从哪里来的?没有一个服务器或客户端选择它作为可能的密码。
  • ECDSA是否有可能处于0的优先位置?
  • 更麻烦的是:当我调用SSL_get_cipher(ssl)时,它表明实际使用的密码是带有RSA的密码。然而,我能够在客户端和服务器之间进行通信。如果他们没有RSA证书,那怎么可能呢?
  • 那么,我如何确定流量是有效加密的呢?
EN

回答 1

Security用户

发布于 2015-02-06 10:59:26

(我假设这两个AES18都是AES128的输入。)

一些早期版本的OpenSSL 1.0.1有一个错误,导致密码表中的几个新条目(包括这个条目)被错误地选择。使用补丁e(2013年2月)或更高版本应该可以修复它。(即1.0.2,几周前刚刚发布)。如果感兴趣,您可以通过在不同版本之间区分ssl/s3_lib.c来发现问题。

如果您使用RSA套件连接到服务器,服务器确实有RSA证书。请记住,服务器完全有可能拥有多个算法的密钥和证书(S),并为与客户端协商的密文套件选择合适的算法;OpenSSL库服务器尤其可以具有RSA、DSA、DH和EC (可以是ECDSA或ECDH)。(加上GOST,一种很少在其他地方使用的可选俄罗斯算法。)

旁白:你真的想要ECDH而不是ECDHE吗?只有后者提供前向保密。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/80964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档