В SSL клиент подключается и отправляет список поддерживаемых шифров; затем сервер выбирает один из поддерживаемых им шифров, и этот шифр используется для соединения. Только когда соединение установлено («рукопожатие» завершено), HTTP вступает в игру.
В вашей настройке это означает, что вы должны настроить свой SSL-сервер так, чтобы он принимал различные шифры, но отдавал предпочтение тем, которые имеют закрытый ключ 128 бит или более, по сравнению с другими. Таким образом, шифр с длиной менее 128 бит будет выбран только в том случае, если как клиент, так и сервер не поддерживают шифр с 128 или более битами. Затем страница, отправленная в этом соединении, будет изменена в зависимости от фактически согласованного шифра.
Для такой настройки вам необходимо выполнить следующие действия:
- для настройки списка шифров, поддерживаемых сервером SSL;
- для обеспечения предпочтения сервера по сравнению с предпочтением клиента в списке шифров, поддерживаемых и клиентом, и сервером;
- для доступа к шифру, фактически используемому из вашего механизма генерации страниц, например, PHP.
В Apache mod_ssl представляется, что точка 1 проста (директива «SSLCipherSuite»), а раздел «Переменные среды» указывает на то, что сервер SSL желает предоставить некоторую информацию о том, какой шифр был выбран движок генерации страниц; в частности, переменная SSL_CIPHER_USEKEYSIZE
выглядит довольно хорошо. Следовательно, пункт 3 тоже выглядит легко. Однако я не уверен, как это отразится на мире PHP.
Для пункта 2 это немного сложнее. Документация «SSLCipherSuite», по-видимому, говорит о том, что сервер по умолчанию использует свой собственный порядок предпочтений, поэтому пункт 2 также будет простым, но это потребует небольшого тестирования.
Теперь остается только второстепенная точка, которая является статусом 3DES. Номинально он использует 192-битный ключ. Любой приличный криптограф или программист указал бы, что из этих 192 бит используются только 168 бит (дополнительные биты должны были действовать как биты проверки на четность, но никто их не проверяет, их просто игнорируют). Теперь, некоторые ученые также показали, что фактическая сила алгоритма ниже, что в некоторой степени эквивалентно 112-битному ключу, по крайней мере, если смотреть в надлежащем академическом свете. Поэтому NIST (федеральное учреждение США, занимающееся такими стандартами) выпустило рекомендацию о том, что 3DES следует рассматривать как предлагающий «только 112 бит безопасности», а 112 ниже 128.
Конечно, 112 битов все еще довольно далеко в области технологически невозможного (и должны оставаться таковыми в течение по крайней мере 30 лет, даже если технический прогресс будет идти в лихорадочном темпе), так что это не является реальной проблемой для любого практическая ситуация, но если вы находитесь в стандартном маниакальном настроении и хотите использовать «настоящие» 128 битов, то это вопрос для рассмотрения.