Welcome! Log In Create A New Profile

Advanced

Слишком высокий уровень ошибки в логе при невалидном handshake со стороны клиента

September 01, 2014 08:54AM
Пару дней назад в error.log в огромных количествах начали сыпаться вот такие записи (ip клиента заменил):

2014/09/01 12:36:02 [crit] 13175#0: *46423402 SSL_do_handshake() failed (SSL: error:05066066:Diffie-Hellman routines:COMPUTE_KEY:invalid public key error:1408B005:SSL routines:SSL3_GET_CLIENT_KEY_EXCHANGE:DH lib) while SSL handshaking, client: 1.1.1.1, server: 0.0.0.0:443

Подампили трафик. Если я всё правильно понял исходя из собранных пакетов, сервер отправляет клиенту выбранный cipher suite - в нашем случае Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039). И посылает 1024 битный pubkey для DH. Клиент, в ответ на это, присылает свой pubkey, но уже неправильного размера - 2048 бит. Серверу это не нравится и он сбрасывает соединение.

Я не настоящий сварщик, но смог раскопать openssl-ный код вот досюда - модуль crypto/dh/dh_check.c, функция DH_check_pub_key:

131 if (BN_cmp(pub_key,q)<=0)
132 *ret|=DH_CHECK_PUBKEY_TOO_SMALL;

135 if (BN_cmp(pub_key,q)>=0)
136 *ret|=DH_CHECK_PUBKEY_TOO_LARGE;

Эта функция вызывается из compute_key модуля crypto/dh/dh_key.c.

Всё бы хорошо, но nginx в такой ситуации отписывает в error.log о каждом сброшенном соединении с уровнем [crit]. То есть, выставленный уровень фильтрации [error] в nginx.conf не помогает игнорировать такие ошибки и у нас срабатывает мониторинг. Ну ладно, фиг с ним, с мониторингом, но лог начинает сильно пухнуть в размерах.

Кажется, что уровень ошибки на самом деле не такой критичный. Иначе, получается, что на сервере с обработкой хендшейка всё хорошо, но если прицельно запулнуть в сервер кривыми пакетами, он может написать в лог много-много гигабайт и сожрать весь диск.

Можно понизить уровень этих ошибок до info или вообще debug?
Subject Author Posted

Слишком высокий уровень ошибки в логе при невалидном handshake со стороны клиента

spleenjack September 01, 2014 08:54AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 247
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready