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

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

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

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

Ответ 1

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

Резюме из сообщения в блоге:

  • Суммарные накладные расходы для создания нового сеанса TLS в среднем составляют около 6,5 тыс. байт.
  • Суммарные накладные расходы для возобновления существующего сеанса TLS в среднем составляют около 330 байт.
  • Общая сумма служебных данных зашифрованных данных составляет около 40 байт.

Ответ 2

Короткий ответ: Your Milage May Vary (YMMV) - все зависит от вашего трафика. Существует несколько факторов, которые необходимо учитывать:

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

Ответ 3

На служебных данных, вычисленных в http://netsekure.org/2010/03/tls-overhead/, вы думаете, что вы могли бы пропустить вектор инициализации (IV) для AES в CBC Режим? так как это AES128, я думаю, что 16 байтов IV необходимо добавить к накладным расходам, что составляет 56 вместо 40 байтов.

Ответ 4

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