Какой алгоритм симметричного ключа использует SSL?

Я понимаю, что через SSL браузер получает открытый ключ защищенного сайта и алгоритм шифрования с открытым ключом rsa, эти 2 устанавливают ключ сеанса, а затем продолжают связь через некоторый симметричный алгоритм, потому что симметричное шифрование/дешифрование ключей происходит быстрее. Какой алгоритм симметричного ключа использует SSL? DES? AES? или что-то еще?

Ответ 1

Когда клиент подключается к серверу, он согласовывает так называемый ciphersuite (комбинацию шифрования, обмена ключами, алгоритмы аутентификации). Каждый клиент или сервер SSL имеет список разрешенных ciphersuites и во время рукопожатия клиент и сервер ведут переговоры о том, что использовать ciphersuite. Иногда может случиться так, что нет общего знаменателя (комплекты цифершуитов не пересекаются), и связь не может быть установлена.

Симметричные алгоритмы, поддерживаемые в SSL, - это DES, 3DES, ARCFOUR, AES, Camellia, RC2, IDEA, SEED, NULL (без шифрования).

Ответ 2

Во время установления соединения ( "рукопожатие" ) клиент и сервер принимают решение об использовании "шифрового набора". В наборе шифров указаны используемые алгоритмы (асимметричное согласование ключей, симметричное шифрование и проверка целостности). В частности, клиент отправляет список поддерживаемых им наборов шифров, а сервер выбирает один из них, который он также поддерживает. Обычно сервер выбирает первый набор, который он поддерживает среди отправленных клиентом (другими словами, упорядочение пакетов в клиентском сообщении является "порядком предпочтения", и сервер обычно соблюдает предпочтения клиента).

Например, набор шифров TLS_RSA_WITH_3DES_EDE_CBC_SHA означает, что ключ сеанса будет передаваться с помощью RSA (асимметричное шифрование с использованием открытого ключа RSA из сертификата сервера), данные будут симметрично зашифрованы с помощью 3DES и проверка целостности будет использовать хэш-функцию SHA-1. См. спецификация TLS для списка стандартных наборов шифров (позже были добавлены другие сьюты, в частности некоторые с AES).

Ответ 3

Несколько возможностей, включая RC4 и DES или даже отсутствие шифрования. Не область, которую я знаю хорошо, но я предполагаю, что клиент и сервер ведут переговоры, чтобы найти тот, который они могут использовать

http://httpd.apache.org/docs/2.0/ssl/ssl_intro.html#ssl