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

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


person xyz    schedule 22.05.2011    source источник
comment
en.wikipedia.org/wiki/   -  person Matt Ball    schedule 22.05.2011
comment
Подводя итог сказанному другими: есть несколько вариантов; то, что используется в соединении, зависит от конкретного клиента и сервера.   -  person Jumbogram    schedule 23.05.2011


Ответы (4)


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

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

person Eugene Mayevski 'Callback    schedule 22.05.2011
comment
@jumbogram спасибо, что указали на этот RFC, я его как-то пропустил. Однако я должен отметить, что, строго говоря, это не часть TLS. RFC является скорее информационным, чем Sstandards Track, и его использование очень локализовано (одна страна). Я мог бы также упомянуть ГОСТ, популярный в бывшем СССР, но он больше нигде не используется. - person Eugene Mayevski 'Callback; 23.05.2011

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

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

person Thomas Pornin    schedule 22.05.2011

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

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

person steevc    schedule 22.05.2011

Если вы используете HTTPS в Firefox, если вы нажмете маленький значок «замок» в строке URL, появится всплывающее окно с деталями вашего соединения. Например, с моим сервером я подключаюсь к 128-битному AES с помощью firefox.

Разумеется, разные веб-браузеры могут давать разные результаты, поскольку соединение TLS согласовывает соединение.

person Richard Wicks    schedule 20.07.2018