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

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

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

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


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


Ответы (4)


arrow_upward
35
arrow_downward

Я получил этот вопрос несколько раз, поэтому я решил написать небольшое объяснение накладных расходов с некоторыми примерными числами, основанными на общем случае. Вы можете прочитать его в моем блоге по адресу 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

arrow_upward
14
arrow_downward

Короткий ответ: ваш пробег может варьироваться (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

arrow_upward
1
arrow_downward

В 2020 году TLS 1.2 и 1.3 более типичны, а AES-GCM представляет собой режим потокового шифрования с меньшими накладными расходами.

См. https://tools.ietf.org/id/draft-mattsson-uta-tls-overhead-01.xml#rfc.section.3.

На пакет накладные расходы для AES-GCM составляют 29 байтов. TCP MSS может достигать 1460 (https://blog.apnic.net/2014/12/15/ip-mtu-and-tcp-mss-missmatch-an-evil-for-network-performance/< /а>). Таким образом, для большой загрузки (где используется максимальное значение MSS) накладные расходы составят 29:1431, что составляет 2,03%.

(Накладные расходы на рукопожатие являются отдельными, разовыми)

person Todd    schedule 26.09.2020

arrow_upward
-4
arrow_downward

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

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