TLS: как зашифрован Интернет

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

Протокол TLS — также известный как SSL/TLS — ввел шифрование передаваемого содержимого. В продолжение приведенного выше примера, это можно сравнить с запечатанным конвертом, который может открыть и прочитать только адресат.

Что такое TLS?

Аббревиатура TLS расшифровывается как Transport Layer Security. Изначально он был разработан для работы поверх транспортных протоколов, таких как TCP/IP-модели. Протокол TLS, по сути, шифрует передачу данных в Интернете или между устройствами, чтобы обеспечить доступ к ним только авторизованных получателей. Предшественником протокола был хорошо известный SSL (Secure Socket Layer), поэтому TLS часто называют SSL/TLS, чтобы избежать путаницы.

Как работает TLS?

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

Примечание

Узнайте больше о различных методах шифрования в нашей специальной статье на эту тему.

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

Протокол TLS использует следующие меры для решения этой проблемы:

  1. Если клиент, например, веб-браузер, обращается к веб-серверу, он получает сертификат. Этот SSL-сертификат подтверждает, что отправитель является подлинным и не скрывается, например, за мошеннической личиной.
  2. Клиент проверяет сертификат и отправляет серверу случайное зашифрованное число с открытым ключом.
  3. Сервер создает сеансовый ключ из этого открытого ключа для шифрования связи. Поскольку открытый ключ исходит от клиента, сервер может быть уверен, что сеансовый ключ исходит от правильного отправителя.
  4. Затем сервер отправляет зашифрованный сеансовый ключ клиенту. Шифрование основано на методе обмена ключами Диффи-Хеллмана.
  5. Теперь обе стороны могут шифровать свои данные с помощью сеансового ключа.

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

Преимущества и недостатки TLS

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

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

Области применения TLS

TLS универсален, поскольку не зависит от конкретных операционных систем или приложений. Соответственно, для различных пользовательских протоколов существует множество версий, защищенных TLS. Схема именования проста: название протокола заканчивается на букву «s», если протокол обменивается данными через TLS.

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

К другим частым областям применения относятся:

  • POP3S: сбор электронной почты с сервера по протоколу POP3.
  • IMAPS: синхронизация почтового ящика с сервером с помощью протокола IMAP
  • SMTPS: отправка электронной почты
  • FTPS: передача файлов по протоколу FTP
  • SIPS: голосовые звонки по протоколу SIP
  • IRCS: зашифрованные чаты

OpenVPN, которое является бесплатным программным обеспечением для виртуальных частных сетей (VPN), также использует протокол TLS.

Реализация TLS

К наиболее важным реализациям TLS относятся:

  • OpenSSL — наиболее распространенная реализация, используемая большинством веб-сайтов HTTPS.
  • GnuTLS (Фонд свободного программного обеспечения)
  • LibreSSL (OpenBSD)
  • NSS (Network Security Services)
  • BoringSSL (Google)
  • Cryptlib (Питер Гутманн)
  • Botan (лицензия BSD, Джек Ллойд)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Этот список не является полным. Для получения дополнительной информации о реализации TLS, Википедия является отличным источником.

Известные атаки на TLS

Однако TLS не застрахован от атак и утечек данных. Некоторые известные точки атак и слабые места включают:

  • Ошибки программирования: Ошибка Heartbleed Bug стала известной благодаря серьезной ошибке программирования в некоторых ранних версиях OpenSSL. Она была исправлена в 2014 году.
  • Слабое шифрование: Вследствие экспортных ограничений на криптографию в США были разработаны экспортируемые версии. Однако их было легче взломать, чем предыдущие версии.
  • Атаки на сжатие: Если вместо сжатия TLS используется сжатие HTTP, хакеры могут угадать зашифрованное TLS содержимое, используя специальные методы.
  • Атака BEAST затронула TLS версии 1.0 и была раскрыта в 2014 году. Текущие версии TLS безопасны.
  • Атака Padding Oracle была обнаружена в 2002 году и оставалась угрозой до версии SSL 3.0. Текущая версия TLS 1.3 не затронута.

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

Оцените статью
cdelat.ru
Добавить комментарий