- •Лекция
- •Вопросы
- •Инфраструктура открытых ключей Public Key Infractructure (PKI)
- •Архитектура PKIX
- •Архитектура PKI
- •Структуры данных PKI:
- •Формат сертификата открытого ключа по стандарту ITU X.509
- •Пример сертификата
- •Расширения сертификата
- •Жизненный цикл сертификата
- •Выпуск сертификатов.
- •Примерная политика использования сертификатов
- •Временные периоды использования сертификатов
- •Работа с сертификатами государственных органов
- •Сертификаты в веб-сети
- •Цепочки сертификатов
- •Проверка сертификата веб-сайта.
- •Зачем нужны промежуточные УЦ?
- •Проверка сертификатов
- •Выпуск сертификатов.
- •Виды проверок заявителя
- •2. Сертификаты с расширенным подтверждением (Extended
- •Протоколы защиты на различных уровнях протокола TCP/IP
- •2.Управление ключами в протоколе IPSec
- •Security Association (SA) Безопасная ассоциация Контекст безопасности
- •Установление безопасных ассоциации
- •IP-пакет до и после применения протокола ESP
- •IP-пакет после применения протокола АН в транспортном и туннельном режимах
- •Internet Key Exchange (IKE)
- •Алгоритм Диффи-Хеллмана
- •Атака человек посредине
- •Типы блоков данных
- •Начальный обмен IKE_UNIT_ SA
- •Обмен IKE_AUTH
- •Формат заголовка IKE
- •Блок данных(SA
- •Подструктура Преобразование
- •Обмен IKE_AUTH
- •Блок Аутентификация
- •Содержимое поля Аутентификационные данные при аутентификации с использованием цифровых подписей
- •Содержимое поля Аутентификационные данные при аутентификации с использованием заранее распределенного ключа
- •Начальный обмен IKE_UNIT_ SA
- •Генерация ключевого материала для IKE_SA
- •Принципы обеспечения безопасности протокола IKE
- •Алгоритм Диффи-Хеллмана
- •Атака человек посредине
- •Базовые требования к протоколу обмена ключами
- •Эволюция
- •Протокол ISO
- •Протокол SIGMA
- •Защита идентификаторов
- •Защита идентификаторов
- •SIGMA-R в IKE
- •3. Протокол TLS 1.3 (распределение ключей)
- •TLS (Transport Layer Security – протокол защиты транспортного уровня)
- •Назначение
- •Обеспечивает
- •Криптографические преобразования в протоколе TLS 1.3
- •Уровень протокола
- •Архитектура протокола TLS
- •Протокола согласования (handshake), применяется при первом взаимодействии между клиентом и сервером, позволяет партнерам
- •Базовый вариант протокола TLS
- •Наиболее важные расширения этапа обмена ключами
- •Шифрнаборы
- •AES_GCM (Galois Counter Mode)
- •Server hello
- •Выработка начального секрета
- •Вторая фаза протокола
- •Базовый вариант протокола TLS
- •3-я фаза. Передача данных сервера
- •Этапы генерации ключей в протоколе TLS
- •Возобновление сеанса
- •Вопросы безопасности TLS
- •2. Perfect Forward Secrecy- PFS Совершенная прямая секретность)
- •PFS - продолжение
- •Применение постквантовых алгоритмов в протоколе TLS
- •ключи (SKKEM, PKKEM) для схемы КЕМ. Клиент посылает серверу
- •AES_GCM (Galois Counter Mode)
Выработка начального секрета
На основе данных, в сообщениях 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
