Опубликован: 28.11.2014 | Уровень: для всех | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 11:

Протокол SSL/TLS

Обзор

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

Протокол TLS (Transport Layer Security) разрабатывался на основе спецификации протокола SSL 3.0 (Secure Socket Layer), опубликованного корпорацией Netscape. Различия между данным протоколом и SSL 3.0 несущественны, но важно заметить, что TLS 1.0 и SSL 3.0 несовместимы, хотя в TLS 1.0 предусмотрен механизм, который позволяет TLS иметь обратную совместимость с SSL 3.0.

Перечислим задачи протокола SSL/TLS в порядке их приоритета:

  1. Криптографическая безопасность: SSL/TLS должен использоваться для установления криптографически безопасного соединения между двумя участниками.
  2. Интероперабельность: независимые разработчики должны иметь возможность создавать приложения, которые будут взаимодействовать по протоколу SSL/TLS, что позволит устанавливать безопасные соединения.
  3. Расширяемость: SSL/TLS определяет общий каркас, в который могут быть встроены новые алгоритмы открытого ключа и симметричного шифрования. Это избавляет от необходимости создавать новый протокол для использования новых алгоритмов, что сопряжено с опасностью появления новых слабых мест, и исключает необходимость полностью реализовывать новую библиотеку криптографических алгоритмов.
  4. Относительная эффективность: криптографические операции интенсивно используют ЦП, особенно операции с открытым ключом. Для уменьшения вычислительной нагрузки вводится понятие сессии, в рамках которой может быть создано несколько ТСР-соединений. SSL/TLS позволяет кэшировать параметры сессии для уменьшения количества выполняемых криптографических операций при установлении соединения. Это снижает нагрузку как на ЦП, так и на трафик.

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

  • Конфиденциальность соединения. Для защиты данных используется один из алгоритмов симметричного шифрования. Ключ для этого алгоритма создается для каждой сессии и основан на секрете, о котором договариваются в протоколе Рукопожатия. Протокол Записи также может использоваться без шифрования.
  • Целостность соединения. Обеспечивается проверка целостности сообщения с помощью МАС с ключом. Для вычисления МАС используются хэш-функции SHA-1 и MD5. Протокол Записи может выполняться без вычисления МАС.

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

Протокол Рукопожатия обеспечивает безопасность соединения, которая основана на следующих свойствах:

  1. Участники аутентифицированы с использованием криптографии с открытым ключом (т.е. с использованием алгоритмов RSA, DSS и т.д.). Эта аутентификация может быть необязательной, но обычно требуется по крайней мере для сервера.
  2. Переговоры о разделяемом секрете безопасны, т.е. этот общий секрет невозможно подсмотреть.
  3. Переговоры о разделяемом секрете надежны, если выполнена аутентификация хотя бы одной из сторон. В таком случае ата-кующий, расположенный в середине соединения, не может модифицировать передаваемый секрет незаметно для участ-ников соединения.

Одно из преимуществ TLS состоит в том, что он независим от при-кладного протокола.

Определены следующие криптографические операции: цифровая подпись, блочное шифрование и шифрование с открытым ключом.

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

Андрей Викторов
Андрей Викторов
Россия, Санкт-Петербург, Северо-Западный заочный технический университет, 2007
Мария Шахрай
Мария Шахрай
Украина, НТУУ КПИ, 2013