Firefox работает очень медленно при установке сеансов SSL

Используя wireshark, я обнаружил, что Firefox v3.0 зависает каждый раз перед этапом "обмен ключами клиента, изменение спецификации шифра" при установлении сеанса SSL.

В частности, Firefox отправляет запрос "Обмен ключами клиентов" за 0,8~1,8 секунды. Это неприемлемо, так как наше приложение только для HTTPS.

Я проверял это на IE6 и IE8, оба работают хорошо. Есть какие-нибудь подсказки?

[Обновить]

Наконец, я обнаружил причину зависания на 1-2 секунды, отображая все захваченные пакеты в Wireshark. После этапа "приветствия сервера" Firefox делает запрос к ocsp.verisign.com в сочетании с дополнительным поиском DNS для этого домена. Firefox должен дождаться статуса отзыва от OCSP, прежде чем перейти на следующую стадию SSL. Зависит от того, действует ли DNS-кеш, этот процесс занимает 1-2 секунды.

Интересное наблюдение состоит в том, что IP-пакет, содержащий "обмен ключами клиента", имеет высокую вероятность потеряться и, следовательно, необходима повторная передача TCP. Когда это происходит, процесс может занять 3 секунды в худшем случае. Я не уверен, что это совпадение или ошибка. Во всяком случае, вот результат из Wireshark:

(Дельта-время)

0.369296 src-ip dst-ip TCP [ACK] Seq = 161 Ack = 2741 Win = 65340 Len = 0

2.538835 src-ip dst-ip TLSv1 Обмен ключами клиентов, изменение спецификации шифра, Завершено

2.987034 src-ip dst-ip TLSv1 [ Повторная передача TCP] Обмен ключами клиента, изменение спецификации шифра, завершено

Разница между Firefox и IE заключается в следующем: Firefox 3 по умолчанию включает проверку OCSP , поскольку IE только поддерживает это. Таким образом, нет проблем с IE6 и IE8. Это действительно проблема "отзыва сертификата". Спасибо

4 ответа

Решение

Настроен ли IE для проверки отозванных сертификатов? Там же, где и Firefox? Можете ли вы попробовать отключить оба и посмотреть, исправит ли это?

Если это так, либо местоположение "отзыва сертификата" не работает, либо DNS имеет проблемы.

Это всего лишь догадка, потому что я не знаком с источником для Firefox.

Точка в рукопожатии SSL, которую вы описываете, заключается в том, что реализация SSL в Firefox должна выполнять некоторые "тяжелые" математические вычисления (генерирование криптографически безопасных случайных чисел, криптография с асимметричным ключом). Интересно, видите ли вы высокую загрузку ЦП на клиенте в это время.

Я подозреваю, что IE может быть быстрее на том же оборудовании, потому что использует крипто-API (Windows CryptoAPI), который гораздо более склонен использовать преимущества аппаратного крипто-ускорения, чем Firefox, который, я считаю, использует свою собственную криптографическую реализацию.

Проблема с OCSP, а не CRL. Firefox по умолчанию проверяет OCSP и CRL для определения действительности сертификата. IE поддерживает OCSP, но по умолчанию проверяет только CRL. Вы можете отключить OCSP в Firefox через страницу about:config. Это полностью исключило 20-30 секундное ожидание для меня на страницах SSL. Эта же проблема существует в OS X и Linux и не связана (согласно моему тестированию) с аппаратными средствами или крипто API.

Больше на OCSP в http://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol

Гуглеры, просто отключите настройку OCSP:

Другие вопросы по тегам