Статья:

Установление соединения в протоколе TLS/SSL

Конференция: XLVI Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»

Секция: Технические науки

Выходные данные
Андросова Т.Е., Курочкин В.М., Болдырев А.С. [и др.] Установление соединения в протоколе TLS/SSL // Молодежный научный форум: Технические и математические науки: электр. сб. ст. по мат. XLVI междунар. студ. науч.-практ. конф. № 6(46). URL: https://nauchforum.ru/archive/MNF_tech/6(46).pdf (дата обращения: 26.12.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Установление соединения в протоколе TLS/SSL

Андросова Татьяна Евгеньевна
студент 4 курса, кафедра геоинформатики и информационной безопасности, Самарский университет, РФ, г. Самара
Курочкин Владислав Михайлович
студент 4 курса, кафедра геоинформатики и информационной безопасности, Самарский университет, РФ, г. Самара
Болдырев Артем Сергеевич
студент 4 курса, кафедра геоинформатики и информационной безопасности, Самарский университет, РФ, г. Самара
Чернов Роман Вячеславович
студент 4 курса, кафедра геоинформатики и информационной безопасности, Самарский университет, РФ, г. Самара

 

Введение

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

TLS/SSL записи

TLS работает с записями (records). Заголовок записи имеет длину 5 байтов, и формат, представленный на рисунке 1.

 

Рисунок 1. Формат записи

 

Тип – это тип записи. Определено четыре типа: сообщение Change Cipher Spec, сообщение Alert (предупреждения и ошибки), сообщение Handshake (установление соединения), Application Data (данные приложения).

Установление соединения (Handshake)

Схема установления соединения представлена на рисунке 2.

 

Рисунок 2. Установление соединения

 

Первым сообщением в протоколе установления TLS-соединения всегда является сообщение ClientHello. Сообщение содержит данные, представленные на рисунке 3.

 

Рисунок 3. Сообщение ClientHello

 

1.  Максимальная версия, которую готов поддерживать клиент.

2.  32 случайных байта.

3.  Идентификатор TLS-сессии (TLS позволяет возобновлять ранее установленные сессии).

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

Пример поля [LCS][Шифронаборы]: 0004C02BC02F, где

0004 – четыре байта занимают идентификаторы шифронаборов;

C02B – TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256;

С02F – TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;

5.  Список поддерживаемых методов сжатия.

6.  Данные о расширениях протокола.

Для полей 3 – 6 определяется также длина данных, которые содержит данное поле. На LSID и LCMP отводится по одному байту, а на LCS и LEXT – по два.

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

После отправки ServerHello, сервер отправляет ряд других сообщений (изображены на рисунке 2):

1.  Certificate. Сертификат сервера.

2.  ServerKeyExchange. Сообщение, содержащее серверную часть данных, необходимых для генерации общего сеансового ключа. Обычно это параметры протокола Диффи-Хеллмана (классического или основанного на эллиптических кривых).

3.  CertificateRequest. Сервер может запросить клиентский сертификат при помощи этого сообщения. Оно содержит список поддерживаемых сервером типов сертификатов и типов криптосистем.

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

После передачи ServerHelloDone клиент должен отвечает своим набором сообщений:

1.  Certificate. Содержит клиентский сертификат, если он был запрошен сервером (сообщением CertificateRequest).

2.  ClientKeyExchange. Клиентская часть обмена данными, позволяющими узлам получить общий сеансовый ключ.

3.  CertificateVerify. Отправляется только в том случае, если сервер требовал сертификат от клиента. Клиент подписывает массив переданных и принятых ранее сообщений Handshake. Такая подпись удостоверит факт наличия секретного ключа у клиента.

4.  ChangeCipherSpec. Специальное сообщение-сигнал, обозначающее, что с данного момента клиент переходит на выбранный шифр, а следующие TLS-записи будут зашифрованы.

5.  Finished. Сообщение, обозначающее завершение установления соединений. Передаётся уже в зашифрованном виде.

Заключение.

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

 

Список литературы:
1. Как работает TLS, в технических подробностях – [Электронный ресурс] – Режим доступа. – URL: https://tls.dxdt.ru/tls.html (дата обращения: 15.10.2016).
2. Ristic I. Bulletproof SSL and TLS. – London: Feisty Duck Limited, 2015. – 516 c.