TLS handshake - Симметричная схема - PullRequest
0 голосов
/ 08 ноября 2018

Из того, что я могу сказать, TLS работает как с симметричным, так и с асимметричным шифрованием. Асимметричные схемы используются для обмена ключами, но когда и какие симметричные схемы используются?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Да, вы правы. Асимметричные алгоритмы обычно медленнее, чем симметричные алгоритмы. Однако симметричные алгоритмы требуют общего секретного ключа для шифрования и дешифрования сообщений. Поэтому TLS позволяет клиенту и серверу обмениваться общим секретным ключом, используя асимметричный механизм. Без асимметричного алгоритма обмен секретами между двумя сторонами невозможен безопасным способом. Как только обе стороны имеют общий секретный ключ, все последующие коммуникации между клиентом и сервером шифруются с использованием симметричного алгоритма, который намного быстрее, чем асимметричный алгоритм.

На очень высоком уровне шаги по установлению соединения TLS выглядят так:

  1. Клиент -> Запросы на защищенный сеанс
  2. Сервер -> Отправляет сертификаты и цепочки сертификатов
  3. Клиент -> Проверяет сертификат
  4. Клиент -> Генерация случайного ключа для симметричного шифрования
  5. Клиент -> Зашифровывает сгенерированный ключ с помощью открытого ключа сервера и отправляет зашифрованное значение на сервер
  6. Сервер -> Расшифровать отправленный клиентом ключ своим личным ключом

Здесь и далее все последующие коммуникации между сервером и клиентом будут шифроваться с использованием симметричного алгоритма.

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

Типичное имя набора шифров выглядит так:

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

Здесь

ECDHE - Алгоритм обмена ключами

ECDSA - алгоритм цифровой подписи, используемый для подписи ключа

AES_128_GCM - блочный шифр и режим с ключом 128 бит

ECDHE расшифровывается как Elliptic Curve Diffie Hellman Ephemeral. Эллиптический вариант (первый E) используется для исполнения, тогда как эфемерный вариант (последний E) предназначен для прямой секретности. Прямая секретность означает, что если злоумышленник продолжает записывать все сообщения по TLS и в более поздний момент времени каким-то образом получает секретный ключ, он / она не может расшифровать записанные в прошлом сообщения.

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

AES_128_GCM - Как только общий секретный ключ используется совместно обеими сторонами (обычно браузером и веб-сервером), для шифрования обмена сообщениями между сторонами используется алгоритм симметричного блочного шифра. В этом конкретном случае используется блочный шифр AES с 128-битным ключом и режим аутентификации GCM.

Если вы откроете веб-сайт HTTPS в браузере, вы увидите набор шифров, используемый с помощью утилит браузера. Например, в Firefox вы можете увидеть подробности на вкладке «Безопасность» в «Информация о странице», как показано ниже:

enter image description here

0 голосов
/ 08 ноября 2018

Асимметричные схемы используются для обмена ключами

и цифровые подписи.

Симметричные схемы используются для передачи данных с согласованным симметричным ключом во время обмена ключами.

Это называется Гибридная криптосистема .

...