Существует несколько факторов, влияющих на скорость SSL.
Загрузка сервера. Вы увеличите нагрузку на процессор вашего сервера, зашифровав весь трафик. Однако, особенно на современном оборудовании, это не должно привести к действительно заметной разнице, за исключением сайтов с очень высоким трафиком.
Размер ключа симметричного шифрования. Я полагаю, это то, что вы подразумеваете под уменьшением шифрования до 128 бит. Вероятно, это не является существенным фактором в общей скорости. Вы можете сравнить openssl, запустив, например, openssl speed aes
. Вы, вероятно, обнаружите, что AES 256 не намного медленнее, чем AES 128.
Скорость рукопожатия 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.