【问题标题】:How can renegotiation (rehandshake) be disabled entirely with openssl, on the server side?如何在服务器端使用 openssl 完全禁用重新协商(重新握手)?
【发布时间】:2016-09-25 18:56:24
【问题描述】:

我想拒绝/禁用使用 openssl 从任一方向发起的所有重新协商(在我的 C 中的服务器代码中)。

是否有我可以设置的选项或回调(例如,SSL_CTX_set_fooooo())来完成此操作?我什么也找不到。

我不明白为什么记录了像 SSL_CTX_set_options(ctx, SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION) 这样的选项,但没有像 SSL_CTX_set_options(ctx, SSL_NO_RENEGOTIATION) 这样的选项。

【问题讨论】:

  • 有两种快速启动算法。我认为您正在寻找SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATIONSSL_OP_NO_TICKET

标签: c ssl encryption openssl cryptography


【解决方案1】:

我知道这个问题很老,但this comment on an openssl issue 可能会为未来的搜索者指明正确的方向:

SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 仅与 OpenSSL 1.0.2 相关,不能在 1.1.0 或 1.1.1 中使用。如果你使用它,那么它就完全不会发生重新协商,所以没有必要也使用 SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION。 1.1.0/1.1.1 中的等效选项是 SSL_OP_NO_RENEGOTIATION。

SSL_OP_NO_RENEGOTIATION 是我想要禁用客户端重新协商但安全重新协商 (RFC 5746) 仍处于活动状态,根据 testssl

【讨论】:

  • 那个帖子的OP和我↑是同一个人,哈哈。当我创建这个问题时,我几乎忘记了几年前我在这里问过一个类似的问题;但是在这里链接这些信息是个好主意。谢谢 (+1)。
  • @will 哈哈,太搞笑了!很高兴您提出这些问题,因为它们也为我指明了正确的方向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 2014-07-30
  • 1970-01-01
相关资源
最近更新 更多