Выбор шифра сервера OpenSSL

Во время рукопожатия SSL / TLS клиент отправляет список поддерживаемых наборов шифров, и сервер выбирает, какой из них использовать для разговора. Windows имеет приоритетный список наборов шифров (настраиваемый через реестр) и выберет первый набор в этом списке, который поддерживается клиентом. После создания списка приемлемых шифров с использованием флагов набора шифров, какой алгоритм использует OpenSSL для выбора набора шифров, когда он действует как сервер? Я не нашел ответа в документации OpenSSL.


person Ben Stull    schedule 21.01.2010    source источник
comment
У Томаса Порнина есть правильный ответ. Я не уверен, почему вы приняли другой ...   -  person Jumbogram    schedule 24.05.2011


Ответы (2)


Взгляните на эту страницу руководства.

Команда cipherlist преобразует списки шифров OpenSSL в упорядоченные списки предпочтений шифров SSL. Его можно использовать как тестовый инструмент для определения подходящего шифровального списка.

person ChristopheD    schedule 21.01.2010
comment
Это отвечает «как сервер формирует список шифров», но не отвечает на заданный вопрос: «как сервер решает, какой шифровальный комплект использовать для соединения». - person Jumbogram; 24.05.2011

Список отправленных клиентом комплектов шифров упорядочен; первый набор в списке является наиболее предпочтительным для клиента. Обычно OpenSSL как сервер учитывает предпочтения клиента: он выбирает наиболее предпочтительный для клиента набор из списка наборов, поддерживаемых как клиентом, так и сервером.

Начиная с OpenSSL-0.9.7 (выпущенного в конце 2002 г.), OpenSSL имеет программный флаг под названием SSL_OP_CIPHER_SERVER_PREFERENCE, который обеспечивает выполнение настроек сервера: список наборов шифров, поддерживаемых сервером, также упорядочен по предпочтениям, и сервер выбирает набор, который сам сервер предпочитает из тех, которые поддерживаются как клиентом, так и сервером. Этот флаг задокументирован во включаемом файле ssl.h.

С помощью команды «s_server» командной строки параметр «-serverpref» используется для активации флага SSL_OP_CIPHER_SERVER_PREFERENCE.

person Thomas Pornin    schedule 22.01.2010