Что такое рукопожатие TLS и как оно работает?



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

В этом руководстве объясняется, что такое рукопожатие TLS, как оно работает, а также его значение для сетевой безопасности и обеспечения конфиденциальности ваших сообщений, а также их невозможности перехватить или подделать.

Что такое рукопожатие TLS?

Шифрование TLS — это стандартный криптографический протокол, используемый для защиты сетевых коммуникаций, включая данные, которые вы отправляете через Интернет.

Прежде чем может произойти зашифрованная связь, между двумя взаимодействующими сторонами должно быть установлено доверие (например, веб-сервер, на котором размещен веб-сайт, и ваш веб-браузер, осуществляющий доступ к нему).

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

TLS против SSL

TLS является преемником SSL (Secure Sockets Layer), заменяя его в качестве протокола шифрования, лежащего в основе HTTPS (защищенного протокола HTTP, который доставляет веб-страницы в ваш браузер и данные в ваши приложения). TLS также используется другим программным обеспечением, требующим безопасной сетевой связи.

Задействованные криптографические элементы

Шифрование TLS основано на нескольких криптографических элементах/концепциях:

  • Набор шифров. Набор шифров — это алгоритм, используемый для защиты зашифрованного соединения TLS. Каждый пакет содержит алгоритм обмена ключами, алгоритм массового шифрования и алгоритм MAC (кода аутентификации сообщения).
  • Симметричное шифрование: для защиты соединения как сервером, так и клиентом используется один криптографический ключ. Обе стороны должны знать, что такое ключ, и никакая третья сторона не должна знать/возможность его угадать, иначе безопасность соединения будет поставлена ​​под угрозу.
  • Асимметричное шифрование: также известное как шифрование с открытым ключом. В этом методе шифрования сервер и клиент используют отдельные закрытый и открытый ключи для шифрования данных и защиты соединения. Закрытый ключ необходим для расшифровки данных, зашифрованных открытым ключом.
  • Аутентификация: для безопасного подключения к серверу (а не к двойнику) он должен иметь возможность вне всякого сомнения подтвердить свою личность путем аутентификации.

Версии TLS и совместимость

TLS 1.0 был выпущен в 1999 году, TLS 1.1 — в 2006 году, TLS 1.2 — в 2008 году, а последняя версия TLS 1.3 — в 2018 году. Каждый выпуск включал значительные улучшения безопасности, включая дополнительные наборы шифров и защиту от новых атак.

Большинство серверов поддерживают как TLS 1.3, так и TLS 1.2 для обратной совместимости со старыми клиентами.

Пошаговый процесс установления связи TLS

TLS 1.3 значительно упрощает и повышает безопасность процесса рукопожатия по сравнению с предыдущими версиями. Вот подробный процесс, используемый для защиты соединения TLS 1.3:

  • Приветствие клиента: клиент отправляет серверу сообщение «привет», чтобы инициировать подтверждение связи TLS и соединение. Сюда входят версии TLS, наборы шифров, метод совместного использования ключей и поддерживаемые расширения. Он также включает в себя «случайные данные клиента», то есть случайные данные, которые будут использоваться для генерации главного секрета. Во многих случаях секретные параметры предварительного мастера также могут быть сгенерированы, когда клиент может угадать, какой метод совместного использования ключей будет использовать сервер (часто это происходит из-за уменьшенного количества наборов шифров, поддерживаемых TLS 1.3), уменьшая количество двусторонних обходов. требуется для клиента и сервера.
  • Главный секрет: сервер выбирает версию TLS, набор шифров и общий ключ, совместимый с клиентом, и генерирует «случайный сервер». Как только клиент и сервер получат случайный код клиента, секрет предварительного мастера и случайный код сервера, они смогут независимо генерировать один и тот же главный секрет.
  • Приветствие сервера и асимметричная связь. Сервер отвечает на приветствие клиента, отправляя выбранную версию TLS, набор шифров и сертификат SSL/TLS сервера, содержащий его открытый ключ и центр сертификации (CA). Клиент может проверить подлинность сервера с помощью центра сертификации.
  • Генерация сеансового ключа: клиент и сервер генерируют соответствующие сеансовые ключи из главного секрета.
  • «Завершенные» сообщения и симметричная связь. Клиент и сервер обмениваются «законченными» сообщениями, содержащими симметричный сеансовый ключ и хэш произошедшего процесса установления связи, чтобы гарантировать, что в него не было вмешалось. Подтверждение TLS завершается после того, как «готовые» сообщения будут расшифрованы и проверены обеими сторонами.

После завершения установления связи TLS соединение можно использовать для безопасной передачи данных с использованием симметричных сеансовых ключей.

Устранение проблем с подтверждением TLS

Наиболее распространенной причиной проблем с подтверждением TLS является неправильная установка времени на сервере или клиенте (это легко исправить). Устаревшие центры сертификации на клиенте также являются потенциальной причиной, если ваша операционная система какое-то время не обновлялась.

На стороне сервера соединения TLS завершится неудачно, если нет взаимно поддерживаемых версий TLS или наборов шифров, или если сертификат SSL/TLS был отозван центром сертификации, срок его действия истек или если имя хоста сервера не соответствует имени на сертификате.

Если у вас проблемы с сетевым подключением или вы подключаетесь к медленному серверу, рукопожатия TLS могут завершиться неудачей, если время ожидания истекло из-за задержки.

Безопасные протоколы связи не являются полностью безопасными

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

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

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *