Опубликован: 19.01.2010 | Доступ: свободный | Студентов: 1443 / 200 | Оценка: 4.33 / 4.00 | Длительность: 18:53:00
Лекция 7:

Безопасность на транспортном уровне: SSL и TLS

Протокол установления соединения

TLS вносит некоторые изменения в протокол установления соединения. Были специально изменены детали сообщения CertificateVerify и сообщения Finished.

Сообщение CertificateVerify (сертификат верифицирован)

В SSL хэширование, используемое в .Сообщении CertificateVerify . - это хэширование с двумя шагами, а именно: сообщение установления соединения плюс заполнение и главный секретный код. TLS упростил процесс: в нем хэшируется только сообщение установления соединения, как показано на рис. 7.44.

Хэш для сообщения CertificateVerify в TLS

Рис. 7.44. Хэш для сообщения CertificateVerify в TLS

Сообщение Finished

Было также изменено вычисление хэш для сообщения Finished. TLS использует PRF, чтобы вычислить два хэша, применяемых для сообщения Finished, как это показано на рис. 7.45.

Хэш для сообщения Finished  в TLS

Рис. 7.45. Хэш для сообщения Finished в TLS

Протокол передачи записей

Единственное изменение в протоколе передачи записей - использование HMAC, чтобы подписать сообщение. TLS применяет MAC, как это определено в лекции 11, для того чтобы создать HMAC. TLS также добавляет версию протокола (названную сжатой версией) к тексту, который будет подписан. рис. 7.46 показывает, как формируется HMAC.

 HMAC для TLS

Рис. 7.46. HMAC для TLS

7.4. Рекомендованная литература

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

Книги

[Res01], [Tho00], [Sta06], [Rhe03] и [PHS03] рассматривают SSL и TLS.

Сайты

Нижеследующий сайт дает больше информации о темах, обсужденных в этой лекции.

http://www.ietf.org/rfc/rfc2246.txt

7.6. Итоги

  • Протокол безопасности транспортного уровня обеспечивает услуги безопасности из конца в конец для приложений, которые пользуются протоколами транспортного уровня, такими как, например, TCP. На сегодняшний день преобладает применение двух протоколов: протокол "Уровень Безопасных Розеток" (SSL - Secure Sockets Layer) и протокол "Безопасность Транспортного уровня" (TLS - Transport Layer Security).
  • SSL или TLS обеспечивают такие услуги, как фрагментация, сжатие, целостность сообщения, конфиденциальность и создание кадра данных, полученных от прикладного уровня. Как правило, SSL (или TLS) может получить прикладные данные от любого протокола прикладного уровня, но работает протокол обычно с HTTP.
  • Комбинация алгоритмов смены ключей, хэширования и алгоритм шифрования определяют набор шифров для каждого сеанса.
  • Для того чтобы обмениваться заверенными и конфиденциальными сообщениями, клиенту и серверу необходимо иметь шесть единиц криптографической секретности (четыре ключа и два вектора инициализации).
  • В SSL (или TLS) отличают подключение и сеанс. В сеансе одна сторона играет роль клиента, а другая - роль сервера; при подключении обе стороны играют одинаковые роли, на равном подуровне.
  • SSL (или TLS) определяет четыре протокола на двух уровнях: протокол установления соединения, протокол ChangeCipherSpec, аварийный протокол и протокол передачи записей. Протокол установления соединения использует несколько сообщений, чтобы договориться о наборе шифров, подтвердить подлинность сервера для клиента и клиента для сервера, если это необходимо, и обмениваться информацией для организации криптографической секретности. Протокол ChangeCipherSpec определяет процесс перемещения информации между состоянием ожидания и активным состоянием. Аварийный протокол передает извещения об ошибках и ситуациях, отклоняющихся от нормальных. Протокол передачи записей доставляет сообщения от верхнего уровня (протокол установления соединения, аварийный протокол, ChangeCipherSpec-протокол) или прикладного уровня.

7.7. Набор для практики

Обзорные вопросы

  1. Перечислите услуги, обеспеченные SSL или TLS.
  2. Объясните, как в SSL создается из предварительного главного секретного кода главный секретный код.
  3. Объясните, как в TLS создается из предварительного главного секретного кода главный секретный код.
  4. Объясните, как в SSL создается из главного секретного кода материал для ключей.
  5. Объясните, как в TLS создается из главного секретного кода материал для ключей.
  6. Покажите различия между сеансом и соединением.
  7. Перечислите цель четырех протоколов, определенных в SSL или TLS.
  8. Определите цель каждой фазы в протоколе установления соединения.
  9. Сравните и противопоставьте протоколы установления соединения в SSL и TLS.
  10. Сравните и противопоставьте протоколы передачи записей в SSL и TLS.

Упражнения

  1. Какова длина материала для ключей, если набор шифров - один из перечисленных ниже:
    • SSL_RSA_WITH_NULL_MD5
    • SSL_RSA_WITH_NULL_SHA
    • TLS_RSA_WITH_DES_CBC_SHA
    • TLS_RSA_WITH_3DES_EDE_CBC_SHA
    • TLS_DHE_RSA_WITH_DES_CBC_SHA
    • TLS_DH _RSA _ 3DES _EDE_CBC_ SHA
  2. Покажите число повторных модулей, необходимых для каждого случая в Упражнении 1 (см. рис. 7.9).
  3. Сравните вычисление главного секретного кода в SSL с таким же процессом в TLS. В SSL предварительный главный код применяется в вычислении три раза, в TLS - только единожды. Какое вычисление более эффективно по объему и по времени?
  4. Сравните вычисление материала для ключей в SSL и TLS. Ответьте на следующие вопросы:
    • Какое вычисление обеспечивает большую безопасность?
    • Какое вычисление более эффективно по объему и времени?
  5. Вычисление материала для ключей в SSL требует нескольких итераций, в TLS этого не делается. Как может TLS вычислять материал для ключей переменной длины?
  6. Когда сеанс продолжается с новым соединением, SSL не требует проведения полной процедуры установления связи. Покажите сообщения, которыми необходимо будет обменяться в частичной процедуре установления связи.
  7. Когда сеанс продолжен, какая из следующей криптографической информации для засекречивания должна быть повторно вычислена?
    • предварительный главный секретный код
    • главный секретный код
    • ключи подтверждения подлинности
    • ключи шифрования
    • IV (первоначальный вектор)
  8. Что случится в процессе на рис. 7.20, если сервер передает сообщение ChangeCipherSpec, а клиент не передает? Какие сообщения могут быть переданы в протоколе установления соединения? Какие не могут быть переданы?
  9. Сравните вычисление MAC в SSL и TLS (см. рис. 7.22 и рис. 7.46). Какое из них более эффективно?
  10. Сравните вычисление хэширования для сообщения CertificateVerify в SSL и TLS (см. рис. 7.35 и рис. 7.44). Какое более эффективно?
  11. Сравните вычисление хэширования для сообщения Finished в SSL и TLS (см. рис. 7.38 и рис. 7.45). Ответьте на следующие вопросы:
    • Которое из них более безопасно?
    • Которое из них более эффективно?
  12. TLS использует PRF для всех вычислений хэша кроме сообщения CertificateVerify. Объяснить это исключение.
  13. Большинство протоколов записывают в виде формулы, чтобы показать вычисления криптографической секретности и хэширования. Например, в SSL вычисление главного секретного кода (см. рис. 7.8) отображается следующим образом (последовательная конкатенация записывается в виде линеек):
    Master Secret = MD5 (pre-master | SHA-1 ("A" |pre-master I CR I SR)) |
    MD5 (pre-master| SHA-1 ("A" | pre-master | CR I SR)) | 
    MD5 (pre-master |SHA-1 ("A" | pre-master  | CR | SR))
    Master Secret	Главный секретный код
    pre-master	Предварительный главный секретный код
    |	Конкатенация
    CR	Случайное число клиента
    SR	Случайное число сервера
    

    Запишите в виде формул следующие процессы:

    • Материал для ключей в SSL (рис. 7.9)
    • MAC в SSL (рис. 7.22)
    • Вычисление хэширования для сообщения CertificateVerify в SSL (рис. 7.35)
    • Вычисление хэширования для сообщения Finished в SSL (рис. 7.38)
    • Расширение данных в TLS (рис. 7.40)
    • PRF в TLS (рис. 7.41)
    • Главный секретный код в TLS (рис. 7.42)
    • Материал для ключей в TLS (рис. 7.43)
    • Вычисление хэширования для сообщения CertificateVerify в TLS (рис. 7.44)
    • Вычисление хэширования для Finished сообщения в TLS (рис. 7.45)
    • MAC в TLS (рис. 7.46)
  14. Покажите, как SSL или TLS реагируют на атаку воспроизведения. То есть покажите, как SSL или TLS отвечает нападавшему, который пытается имитировать одно или более сообщений установления соединения (предварительно записав сообщение).
  15. Покажите, как SSL или TLS реагируют на атаку грубой силы. Может ли злоумышленник использовать исчерпывающий компьютерный поиск и найти ключ шифрования в SSL или TLS? Какой протокол более безопасен в этом отношении - SSL или TLS?
  16. Каков риск использования ключей короткой длины в SSL или TLS? Какую атаку злоумышленник может применить, если ключи коротки?
  17. Действительно ли SSL или TLS относительно безопасны к атаке "посредника"? Может ли злоумышленник создать материал для ключей между клиентом и самим собой и между собой и сервером?
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Мария Архипова
Мария Архипова