Какую нагрузку на сеть добавляет TLS по сравнению с незашифрованным соединением?

(Приблизительно) на сколько больше битов данных необходимо передать по сети во время зашифрованного соединения по сравнению с незашифрованным соединением?

IIUC, после завершения рукопожатия TLS количество переданных битов равно битам, переданным во время незашифрованного соединения. Это точно?

В качестве дополнения, передача большого файла по https значительно медленнее, чем передача этого файла по http, учитывая быстрые процессоры и одинаковые (идеальные) условия сети?


person Daniel S. Sterling    schedule 23.10.2009    source источник


Ответы (4)


Я получил этот вопрос несколько раз, поэтому я решил написать небольшое объяснение накладных расходов с некоторыми примерными числами, основанными на общем случае. Вы можете прочитать его в моем блоге по адресу http://netsekure.org/2010/03/tls-overhead/.

Вывод из записи в блоге:

  • Общие накладные расходы для установления нового сеанса TLS составляют в среднем около 6,5 КБ.
  • Общие накладные расходы для возобновления существующего сеанса TLS в среднем составляют около 330 байт.
  • Общий объем зашифрованных данных составляет около 40 байт.
person Nasko    schedule 26.03.2010
comment
Определенно стоит прочитать. Это похоже на ускоренный курс по работе TLS. - person f.ardelian; 24.11.2016

Короткий ответ: ваш пробег может варьироваться (YMMV) — все зависит от вашего трафика. Необходимо учитывать ряд факторов:

  • Дополнительные рукопожатия и сертификаты добавят 4-6 КБ к потоку TCP, что также приведет к увеличению количества кадров Ethernet, передаваемых по сети.
  • Клиенты должны загрузить список отозванных сертификатов. Некоторые инструменты, такие как cURL, опускают этот шаг. crl может кэшироваться браузером, однако обычно он не имеет долговременной связи с ним. Verisign устанавливает их срок действия через четыре минуты. В моем тестировании я вижу, что Safari в Windows дважды загружает один и тот же файл размером 91 КБ.
  • возобновление сеанса TLS может избежать части рукопожатия, связанной с обменом открытыми ключами, а также проверка сертификата.
  • HTTP keep-alives будет держать сокет открытым, так же как и http, но имеет больше экономии, когда сокет это ТЛС.
  • Поддержка SSL-сжатия начинает появляться на стороне сервера, но, насколько я знаю, большинство браузеры еще не реализуют это. Кроме того, если вы уже выполняете сжатие на уровне http, здесь мало что выиграете. Потенциально большой выигрыш может быть получен, если клиент отправляет на сервер большие объемы текста, который обычно не сжимается на уровне http.
person brianegge    schedule 27.10.2009


На порядок. См. это. Это не слишком важно, если защищаемая информация заслуживает защиты. И помните, что скорость процессора может только увеличиваться, поэтому производительность будет расти.

person Scooterville    schedule 23.10.2009
comment
это не примерно 10x, это примерно 12 КБ дополнительно для каждой настройки соединения. - person Javier; 24.10.2009
comment
Есть накладные расходы при запуске и накладные расходы на каждый пакет. Накладные расходы на пакет могут составлять порядка 30-50 байтов для заполнения и хеширования. 12 КБ для запуска звучит правдоподобно, количество сертификатов, представленных во время рукопожатия клиентом и сервером, может сильно различаться. Сложные клиенты и серверы могут сократить это с возобновлением сеанса, как говорится в другом ответе. - person Marsh Ray; 07.11.2009