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

Безопасное сетевое взаимодействие (часть 2)

Криптографические вычисления

Вычисление мастер-секрета

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

master_secret = PRF(pre_master_secret, 
    "master secret",
    ClientHello.random + ServerHello.random)     
    [0..47];

Длина мастер-секрета всегда равна 48 байтам. Длина премастер-секрета изменяется в зависимости от метода обмена ключа.

RSA

Когда для аутентификации сервера и обмена ключа используется RSA, клиентом создается 48-байтный премастер-секрет, зашифрованный открытым ключом сервера, и посылается серверу. Сервер использует свой закрытый ключ для дешифрования премастер-секрета. Затем оба участника преобразуют премастер-секрет в мастер-секрет, как описано выше.

Диффи-Хеллман

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

Расширения TLS

Введение

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

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

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

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

Данные расширения предназначены для обеспечения следующих возможностей:

  • позволить клиентам предоставлять серверу имя сервера, с которым они устанавливают соединение. Данная функциональность обеспечивает возможность установления безопасных соединений с хостами, имеющими несколько виртуальных серверов на одном сетевом адресе.
  • вести переговоры о максимальной длине посылаемого фрагмента. Данная функциональность необходима из-за ограничений памяти у некоторых клиентов и ограничений ширины полосы пропускания в некоторых типах сетей.
  • вести переговоры об использовании URLs для сертификатов клиента. Данная функциональность нужна для экономии памяти клиента.
  • позволить клиентам указать серверам, какие они использовали ключи каких корневых СА. Данная функциональность необходима для того, чтобы предотвратить многочисленные прерывания Рукопожатия, возникающие из-за того, что клиенты с ограниченной памятью могут хранить только небольшое число ключей корневого СА.
  • позволить клиентам и серверам TLS вести переговоры об использовании урезанных МАСs. Данная функциональность дает возможность уменьшить трафик в определенных сетях.
  • позволить клиентам и серверам TLS вести переговоры о том, чтобы сервер при Рукопожатии посылал клиенту информацию о статусе сертификата (например, ответ OCSP). Данная функциональность позволяет избежать посылки CRL в определенных сетях и тем самым сократить трафик.

Для того чтобы поддерживать перечисленные выше расширения, вводятся дополнительные механизмы для сообщений Hello клиента и сервера.

Описываемые расширения могут использоваться клиентами TLS 1.0 и серверами TLS 1.0. Расширения поддерживают обратную совместимость – это означает, что клиенты TLS 1.0, которые поддерживают расширения, могут общаться с серверами TLS 1.0, не поддерживающими расширения, и наоборот.

Обратная совместимость достигается следующим образом.

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

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

Рассмотрим дополнительные функциональности в следующем порядке. Сначала опишем общие механизмы расширений для сообщений Рукопожатия Client Hello и Server Hello. Далее опишем конкретные расширения для TLS 1.0 и новые сообщения об ошибках при использовании расширений TLS.

Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????