Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 13 - Практические протоколы распределения ключей IKE, TLS.ppt
Скачиваний:
0
Добавлен:
04.06.2026
Размер:
2.38 Mб
Скачать
Sec ret1 хy mod p yx mod p

Выработка начального секрета

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

Пусть р –простое число; α – порождающий элемент большой группы поля Галуа GF(p), согласованные клиентом и сервером.

x mod p – значение DH клиента, y mod p - значение DH сервера. Тогда есть исходный секрет (handshake_traffic_secret).

На основе этого секрета и контекста сообщений ClientHello ServerHello

( Infoci ser ) клиент, используя псевдослучайную функцию вырабатывает строку бит, содержащую первый набор симметричных ключей (для передачи/приема) и векторов инициализации (IV), необходимых для шифрования/расшифрования сообщений фомируемых во второй фазе Server Parameters

(sh _ write. sh read, IV ) Hash(Secret1, Infoci ser ) .

Вторая фаза протокола

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

Заметим, что данные, которыми обмениваются клиент и сервер не являются аутентифицированными.

Базовый вариант протокола TLS

Фаза протокола

Клиент

Направление

Сервер

 

 

 

передачи

 

 

 

ClientHello

 

 

 

 

-key_share

 

 

1.

Обмен

-signature_algorithms

 

 

 

ключами

-psk_key_exchange_mode

 

 

 

 

-pre_shared_key

 

ServerHello

 

 

 

 

 

 

 

 

-key_share

 

 

 

 

-pre_shared_key

2.

Параметры

 

 

{EncryptedExtensions}

 

сервера

 

 

{CertificateRequest}

 

 

 

 

{Certficate}

 

 

 

 

{CertificateVerify}

 

 

 

 

{Finished}

3.Аутентификация

 

 

[Данные приложения]

{Certficate}

{CertificateVerify}

{Finished}

[Данные приложения]

[Данные приложения]

3-я фаза. Передача данных сервера

Сервер отправляет свой сертификат Х. 509, возможно с другими сертификатами, которые могут построить цепочку подписания.

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

Передача сообщения Certificate сервером требует передачи и сообщения CertificateVerify, которое следует рассматривать, как основную часть меха- низма аутентификации сервера.

Клиент проверяет подпись, используя открытый ключ из сертификата.

CertVerify Sigskser (Hash( х , y , Infoci ser ,Certser )

Факультативно клиент отправляет свой сертификат и сервер проверяет его. Если клиент отправил свой сертификат, то он тем самым доказывает владение закрытым ключом, подписывая и расшифровывая данные. Для этого используются сообщения Certificate и CertificateVerify.

Заметим, что сообщения Certificate и CertificateVerify, Finished передаваемые от

Этапы генерации ключей в протоколе TLS

Early_ traffic_ secret

Handshake_traffic_ secret

Application_traffic_ secret

Возобновление сеанса

Применяется для ускорения процедуры квитирования (на несколько сотен мсек) за счет использования ранее выработанного ключа для инициализации нового сеанса.

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

Вырабатываемый сеансовый ключ зависит как от PSK, так и от вновь вычисленног ключа по алгоритму DH.

Вопросы безопасности TLS

1.Аутентификация сторон. Сервер аутентифицирует себя клиенту с помощбю сертификатов. Клиент не аутентифицируется. Клиент может аутентифицировать себя в серверном приложении, например в Gmail, включив имя пользователя и пароль в запись TLS, следующую за квитированием.

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

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

2. Perfect Forward Secrecy- PFS Совершенная прямая секретность)

PFS (совершенная прямая секретность) называется свойство протокола согласования ключа, которое не позволит нарушителю восстановить сеансовые ключи с помощью добытого им закрытого ключа (SK), пароля или иного «секрета» долговременного хранения, использованного для создания сеансового ключа. Правильный по смыслу перевод –упреждающая секретность

или секретность прошлого.

PFS - продолжение

Когда согласование завершено, любая из сторон может обновить свои ключи трафика для передачи, используя сообщение Key Update. Новые ключи трафика создаются путем генерации client/server_application_traffic_secret_N+1 из client/server_application_traffic_secret_N. После генерирования новых ключей (N+1) и связанных с ними ключей старые ключи (N) трафика и связанные с ними ключи следует удалить ! Также уничтожается секрет PSK после получения из него всех нужных значений.

За счет уничтожения старых значений ключей при условии генерации на их основе новых значений, реализуется одна из важных функций протокола TLS - совершенная прямая секретность (Perfect Forward Secrecy – PFS).

Ki

PFS K1 K2

K:

:

Применение постквантовых алгоритмов в протоколе TLS

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

В этой связи в протоколе TLS предприняты упреждающие меры по предотвращению подобных атак. С этой целью в ряде реализаций протокола TLS (браузеры Chrome, Firefox) внедрен постквантовый алгоритм генерации ключа в дополнение к имеющемуся. То есть одна часть симметричного ключа генерируется по постквантовому алгоритму, а другая часть стандартным алгоритмом, описанном выше. Стандартный алгоритм оставлен в протоколе для совместимости с реализациями протокола TLS, не поддерживающими постквантовый алгоритм, а также потому, что стандартный алгоритм обеспечит минимальную защиту, если в постквантовом алгоритме будут выявлены уязвимости к классическим атакам.

Постквантовая гибридная схема формирования ключа называется ML-KEM+X25519.

Стандартной криптосистема генерации ключа - метод Дифф-Хеллмана на эллиптической кривой Curve25519,

постквантовой криптосистема - ML-KEM(Kyber), гле KEM – Key Encapsulation Mechanism (механизм инкапсуляции ключа), ML –Module- Lattice (модуль и решетки) обозначает математическую задачу LWE, на сложности решения которой основывается данная криптосистема.

Клиент

a, DH=aP KEM= (SKKEM, PKKEM)

Secret1=a(bP)

Secret2=D(SKKEM,C)

Объединение

Secret1 и

Secret2

Key_share

(aP), PKKEM

Key_share

(bP), C

Сервер

b, DH=bP Secret2

Secret1=b(aP)

C=E(PKKEM, Secret2)

Объединение

Secret1 и

Secret2