Когда я использовал SSLSCAN для проверки комплектов шифров моего сервера, я обнаружил, что есть три статуса: Принято, Отклонено и Неудачно. После этого я попытался отключить шифры RC2 (40 бит). Я создал новый ключ «Включено» = dword: 00000000 в [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ RC2 40/128]. SSLSCAN показал, что EXP-RC2-CBC-MD5 (40 бит) был "неудачным", но остальные шифры RC2 (40 бит) были "отклонены".
Это сбило меня с толку: какая разница между неудачным и отклоненным? Я наткнулся на всю информацию в Google, включая главную страницу SSLSCAN, но не нашел четкого ответа.
Я задумался о том же, посмотрел исходники («Используй источник, Люк!» :), а это просто возвращаемое значение из SSL_connect()
из библиотеки OpenSSL. В документации указано, что:
Accepted
(1
) средства:
Рукопожатие TLS / SSL было успешно завершено, соединение TLS / SSL было установлен.
Rejected
(0
) средства:
Рукопожатие TLS / SSL было не успешный но был отключение контролируемое и спецификациями протокола TLS / SSL. Вызов
SSL_get_error()
с возвращаемым значением ret, чтобы выяснить причину.
Failed
(<0
) средства:
Рукопожатие TLS / SSL было не успешный, потому что фатальная ошибка произошло либо на уровне протокола или а сбой подключения произошло. Отключение было не чисто. Это также может произойти, [если] необходимо действие для продолжения операции для неблокирующих BIO. Вызов
SSL_get_error()
с возвращаемым значением ret, чтобы выяснить причину.
За последними двумя может следовать N/A
, если https недоступно.
Я так думаю sslscan
должен содержать --verbose
или -v
вариант, который вызывает SSL_get_error()
и выводит фактическую причину сбоя (или отклонения).
Это было бы весьма полезно. Потому что прямо сейчас это не так.
На данный момент все, что я могу порекомендовать, - это вручную подключиться к более реальному клиенту, принудительно использовать определенный шифр на указанном клиенте или на сервере, а затем показать вам настоящую причину.
Если ты не хочешь стать лучше sslscan
Код, конечно. :)