支持密码套件中被拒绝和失败的定义

支持密码套件中被拒绝和失败的定义

当我使用 SSLSCAN 检查我的服务器的密码套件时,我发现有三种状态:已接受、已拒绝和已失败。之后,我尝试禁用 RC2(40bits) 密码。我在 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128] 下创建了一个新的键“Enabled”=dword:00000000。SSLSCAN 显示 EXP-RC2-CBC-MD5 (40bits) 已“失败”,但其余 RC2 (40bits)密码均已“拒绝”。

这让我很困惑:失败和被拒绝有什么区别?我在谷歌上找到了所有信息,包括 SSLSCAN 主页,但没有找到明确的答案。

答案1

我对同样的事情感到疑惑,看了源代码(“使用源头,卢克!”:),它只是返回值SSL_connect()来自 OpenSSL 库. 文档指出:

  • Accepted1) 方法:

    TLS/SSL 握手是成功地完成后,TLS/SSL 连接已建立已确立的

  • Rejected0) 方法:

    TLS/SSL 握手是不是成功的关闭控制并遵守TLS/SSL协议的规范。SSL_get_error()使用返回值ret进行调用,以查找原因。

  • Failed<0) 方法:

    TLS/SSL 握手是不是成功的,因为致命错误发生在协议层面或者A连接失败发生。关闭是不干净如果需要采取行动来继续非阻塞 BIO 的操作,也会发生这种情况。调用SSL_get_error()返回值ret来查找原因。

后两者后面可以跟一个N/A, 如果https不可用。

所以我认为sslscan应该包含一个--verbose-v选项来调用SSL_get_error()并输出失败(或被拒绝)的实际原因。
这将非常有用。因为目前它还不是。

目前,我所能建议的是手动连接更真实的客户端,强制在该客户端或服务器上使用某种密码,然后让它向您显示实际原因。
sslscan当然, 除非你想改进的代码。:)

相关内容