Страницы: 1
Суть проблемы такая. Есть веб сайт при подключении к которому используя tls1.2 вылетает следующая ошибка:
Ошибка при установлении защищённого соединения
При соединении с *** произошла ошибка. библиотека безопасности: неверный формат сообщения в кодировке DER.
Код ошибки: SEC_ERROR_BAD_DER
Страница, которую вы пытаетесь просмотреть, не может быть отображена, так как достоверность полученных данных не может быть проверена.
Пожалуйста, свяжитесь с владельцами веб-сайта и сообщите им об этой проблеме.Подробнее…
Сайт использует само писанный web-сервер + крипто стек.
Эта ошибка где то в рукопожатии TLS. Со стороны сервера любая отладка. Любая точка остановки. Но вот со стороны mozila - как проверить в каком месте рукопожатия происходит сбой?
Вся проблема состоит в том что это оооо-чень редкая ошибка. Может появится раз в день, а может раз в месяц.
Есть ли исходники mozila?
Идея такая - посмотреть где именно в коде встречается ошибка SEC_ERROR_BAD_DER - и сделать отладочный вывод в файл.
Есть ли ещё какие идеи как отловить эту ошибку? Повторяю со стороны сервера любые логи и отладка.
Отредактировано Bro (05-02-2021 13:43:40)
Отсутствует
Короче обложился wireshark. Проанализировал логи корректные и те которые вызывают ошибку. Методом исключение одинаковых кусков пришёл к выводу о некорректной шифрации финального рукопожатия. Получаться что мозила мне не поможет. Так что можно наверно тему закрыть.
Отсутствует
Вот официальный репозиторий — https://hg.mozilla.org/mozilla-central/file.
Вот его зеркало на GitHub'е — https://github.com/mozilla/gecko-dev.
Поискать по исходному коду можете так.
Поиском, например, находится такой файл. В нём содержится константа SEC_ERROR_BAD_DER со значением, содержащим строку „improperly formatted DER-encoded message“. Вбиваем её в поиск, просматриваем результаты. Среди них имеется, например, bug 1153204. В соответствии с этим отчётом, Firefox возвращает указанную ошибку, если сертификат безопасности составлен некорректно, в частности содержит в некоторых местах завершающие пробелы, которых быть не должно. Возможно, причина ошибки именно во этом.
В любом случае, если вам удастся решить вашу проблему, пожалуйста, отпишитесь о результатах.
Отсутствует
Спасибо за такой подробный комментарий. Обязательно в будущем пригодится.
Что касается моей проблемы вроде клубок развязал. Честно говоря очень странная проблема.
На сервере есть модуль авто определения размера буфера для приёмных и передающих сокетов. В этом модуле была ошибка и буфер выделялся маленький.
Из-за этого на уровне TCP постоянно сыпались ситуации с переполнением окна передачи [TCP Window Full] - что само по себе не является ошибкой
Но из за этого почему то у TLS ехала крыша - и сокет периодически закрывался со стороны клиента с выставлением флага RST. В общем описал как мог.
Увеличили размер буфера -> ошибки пропали.
Отредактировано Bro (05-02-2021 22:17:37)
Отсутствует
Рад, что проблему удалось решить. Спасибо за отчет.
Вообще, для решения вопросов подобного плана могут помочь сайты сообщества StackExchange. В частности, Server Fault по системному администрированию и Information Security по средствам и методам защиты информации.
Отредактировано FireForce (05-02-2021 22:44:56)
Отсутствует
Страницы: 1