Вы находитесь на странице: 1из 12

Лабораторная работа №11

«SSL, TLS»

Хабаровск, 2020
Задание
Получение теоретических и практических навыков работы с
протоколами SSL и TLS.

Выполнить необходимые упражнения.

Теоретические основы

Протокол безопасности транспортного уровня обеспечивает услуги


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

SSL:

TLS:

Более эффективно по объему и времени будет генерация главного секретного


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

 предварительный главный секретный код


 главный секретный код
 ключи подтверждения подлинности
 ключи шифрования
 IV (первоначальный вектор)

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

Для двух объектов, чтобы начать обмен данными, установление сеанса


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

Сеанс может состоять из многих соединений. Соединение между двумя


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

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

Вопрос №13
Большинство протоколов записывают в виде формулы, чтобы показать
вычисления криптографической секретности и хэширования. Например, в
SSL вычисление главного секретного кода
Master Secret = MD5 (pre-master | SHA-1 ("A" |pre-master | CR | 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)


Материал для ключей = (MD5 (pre-master | SHA-1( “A” | master | CR | SR) |
MD5 (pre-master | SHA-1( “BB” | master | CR | SR) | … | MD5 (pre-master | SHA-
1( “CCC” | master | CR | SR))

 Pre-master – предварительный главный ключ


 Master - главный секретный ключ
 MAC в SSL (рис. 7.22)

MAC = MD5 (SecretMAC | Заполнение-2 | MD5 (SecretMAC | Заполнение-1 |


Порядковый номер | Тип сжатия | Длина сжатия | Сжатый фрагмент)
(Во всех формулах далее (кроме PRF in TLC) вместо MD5 может
использоваться SHA-1)

Заполнение -1 – Байт 0х36 (48 раз для MD5 и 40 раз для SHA-1)

Заполнение -2 – Байт 0х50 (48 раз для MD5 и 40 раз для SHA-1)

 Вычисление хэширования для сообщения CertificateVerify в SSL


(рис. 7.35)

ХЭШ = MD5 (Master | Заполнение-2 | MD5 (Сообщение установления


соединения | Master | Заполнение -1))

 Вычисление хэширования для сообщения Finished в SSL (рис. 7.38)


ХЭШ = MD5 (Master | Заполнение -2 | MD5 (Сообщение установление
соединения | передатчик | Master | Заполнение -1))

Передатчик – 0x434C4E54 для клиента; 0х53525652 для сервера.

 Расширение данных в TLS (рис. 7.40)

Расширенная информация засекречивания = (HMAC (Первоначальное число


| HMAC (Первоначальное число)) | HMAC (Первоначальное число | HMAC
(Первоначальное число)) | HMAC (Первоначальное число | HMAC
(Первоначальное число)) | …)

HMAC – информация засекречивания

 PRF в TLS (рис. 7.41)


PRF = XOR (Расширенная информация засекречивания (MD5 (Метка |
Начальное число)) | Расширенная информация засекречивания (SHA-1
(Метка | Начальное число)))

 Главный секретный код в TLS (рис. 7.42)


Master = (PRF (Pre-Master| “master secret” | CR|SR))

 Материал для ключей в TLS (рис. 7.43)


Материал = (PRF (Pre-master | “key expansion” | CR|SR))

 Вычисление хэширования для сообщения CertificateVerify в TLS


(рис. 7.44)

ХЭШ = MD5 (Сообщение установление соединения)

 Вычисление хэширования для Finished сообщения в TLS (рис. 7.45)


ХЭШ = (PRF (Master | Заключительная метка | MD5/SHA-1 (Сообщение
установления) | MD5/SHA-1 (Сообщение установления)))

 MAC в TLS (рис. 7.46)


MAC = MD5/SHA1 ( Key XoR opad | MD5/SHA-1 ( Key XoR ipad |
порядковый номер | тип сжатия | версия сжатия | длина сжатия | сжатый
фрагмент))

Ipad – входное дополнение – байт 0х36 повторяется 64 раза.

Opad – выходное дополнения – байт 0x5C повторяется 64 раза.

Вопрос №16
Каков риск использования ключей короткой длины в SSL или TLS? Какую
атаку злоумышленник может применить, если ключи коротки?

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


подбора. Следовательно, оно дает злоумышленнику возможность совершит
атаку грубой силы.