Скорость SSL: 128 против 256 бит - PullRequest
2 голосов
/ 01 августа 2009

Я решил зашифровать весь свой сайт с помощью SSL, даже если на самом деле нужны только его части. Конечным результатом является то, что сайт теперь немного медленнее. Итак, мои вопросы:

  1. Должен ли я зашифровать только раздел участников сайта (помните, что на главной странице есть формы для входа)?
  2. Должен ли я уменьшить шифрование до 128 бит?

Значительна ли разница в скорости, если сайт вообще маленький?

Ответы [ 2 ]

3 голосов
/ 01 августа 2009

Существует несколько факторов, влияющих на скорость SSL.

  1. Загрузка сервера. Вы увеличите нагрузку на процессор вашего сервера, зашифровав весь трафик. Однако, особенно на современном оборудовании, это не должно привести к действительно заметной разнице, за исключением сайтов с очень высоким трафиком.

  2. Размер ключа симметричного шифрования. Я полагаю, это то, что вы подразумеваете под уменьшением шифрования до 128 бит. Вероятно, это не является существенным фактором в общей скорости. Вы можете сравнить openssl, запустив, например, openssl speed aes. Вы, вероятно, обнаружите, что AES 256 не намного медленнее, чем AES 128.

  3. Скорость рукопожатия SSL. Рукопожатие SSL вводит несколько дополнительных циклов между клиентом и сервером, которые не нужны в обычном HTTP. Это означает, что особенно на каналах с высокой задержкой будет больше времени, прежде чем вы начнете получать какие-либо данные с сервера. Чтобы смягчить это, вы можете сделать несколько разных вещей:

    а. Используйте 2048-битный закрытый ключ RSA. Это рекомендуемый размер в качестве компромисса между безопасностью и скоростью. Передача больших ключей займет больше времени между клиентом и сервером и будет немного более интенсивно загружать процессор. (См. openssl speed rsa2048 rsa4096.)

    б. Убедитесь, что вы используете поддержку активности HTTP и возобновление сеанса SSL. HTTP keepalive позволит клиентам повторно использовать существующие подключения к серверу для нескольких запросов, избегая необходимости повторной настройки подключения. Возобновление сеанса SSL позволяет клиенту и серверу использовать ранее согласованные параметры SSL для более быстрого запуска новых сеансов, сокращая количество пакетов туда и обратно, необходимых для нового запроса.

Может быть сложно получить правильную защиту, когда только некоторые из ваших страниц обслуживаются по SSL. Вы определенно захотите использовать форму входа и страницу, на которую она отправляет сообщения по HTTPS. Вы также должны установить флаг Secure для файлов cookie сеанса, в противном случае любой открытый текстовый обмен с сервером будет содержать файл cookie и позволять перехватчикам выдавать себя за сеансы пользователей.

Но в целом, вероятно, не стоит пытаться выяснить, какие страницы нужно защищать, учитывая, как легко просто зашифровать все. Для обеспечения максимальной безопасности вы также должны быть уверены, что настроили свой веб-сервер таким образом, чтобы он проходил SSL Server Test от Qualys SSL Labs.

Хорошие инструменты для тестирования могут зависеть от вашей платформы. Если вы используете Linux, вы можете попробовать команду ab, поставляемую с Apache: http://en.wikipedia.org/wiki/ApacheBench.

0 голосов
/ 12 ноября 2018

хмммм, сталкивался с этим вопросом при исследовании проблемы производительности в MSIE. Возможно, информация не была доступна, когда на нее отвечали, но сейчас определенно есть лучшая информация.

Общее практическое правило гласит, что ключ большего размера является более безопасным, чем ключ меньшего размера для данного алгоритма. Удивительно, но не так для AES . AES-128 (на момент написания этой статьи) более секретор, чем AES-256.

Что касается снижения производительности, использование AES-256 установит верхний предел для вашей полосы пропускания на 10-15% ниже , чем для AES-128. Я еще не нашел никакой информации о задержке, но ожидаю, что AES-128 значительно превзойдет AES-256.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...