Я понимаю, что через SSL браузер получает открытый ключ защищенного веб-сайта и через алгоритм rsa шифрования с открытым ключом, эти 2 устанавливают сеансовый ключ, а затем продолжают связь через некоторый симметричный алгоритм, потому что шифрование / дешифрование с симметричным ключом происходит быстрее. Какой алгоритм симметричного ключа использует SSL? DES? AES? или что-то другое?
Какой алгоритм симметричного ключа использует SSL?
Ответы (4)
Когда клиент подключается к серверу, он согласовывает использование так называемого набора шифров (комбинация шифрования, обмена ключами, алгоритмов аутентификации). У каждого клиента или сервера SSL есть список разрешенных шифровальных наборов, и во время квитирования клиент и сервер согласовывают, какой шифровальный набор использовать. Иногда может случиться так, что нет общего знаменателя (наборы шифров не пересекаются) и соединение не может быть установлено.
SSL поддерживает следующие симметричные алгоритмы: DES, 3DES, ARCFOUR, AES, Camellia, RC2, IDEA, SEED, NULL (без шифрования).
Во время установления соединения («рукопожатие») клиент и сервер выбирают «набор шифров» для использования. В наборе шифров указаны используемые алгоритмы (согласование асимметричного ключа, симметричное шифрование и проверка целостности). В деталях, клиент отправляет список поддерживаемых им наборов шифров, и сервер выбирает один из них, который он также поддерживает. Обычно сервер выбирает первый набор, который он поддерживает, среди пакетов, отправленных клиентом (другими словами, порядок наборов в сообщении клиента является его «порядком предпочтения», и сервер обычно соблюдает предпочтения клиента).
Например, набор шифров TLS_RSA_WITH_3DES_EDE_CBC_SHA
означает, что сеансовый ключ будет передан с помощью RSA (асимметричное шифрование с использованием открытого ключа RSA из сертификата сервера), данные будут симметрично зашифрованы с помощью 3DES, а проверка целостности будет использовать SHA- 1 хеш-функция. См. спецификацию TLS для списка стандартных наборов шифров (другие наборы были добавлены позже, в частности некоторые с AES).
Несколько возможностей, включая RC4 и DES, или даже без шифрования. Не та область, которую я хорошо знаю, но я предполагаю, что клиент и сервер договариваются, чтобы найти ту, которую они оба могут использовать.
http://httpd.apache.org/docs/2.0/ssl/ssl_intro.html#ssl.
Если вы используете HTTPS в Firefox, если вы нажмете маленький значок «замок» в строке URL, появится всплывающее окно с деталями вашего соединения. Например, с моим сервером я подключаюсь к 128-битному AES с помощью firefox.
Разумеется, разные веб-браузеры могут давать разные результаты, поскольку соединение TLS согласовывает соединение.