Стандартизация TLSДля защиты соединений между клиентом и сервером в сети Интернет в большинстве случаев применяется протокол TLS (Transport Layer Security). TLS обеспечивает взаимную аутентификацию сторон протокола, конфиденциальность и контроль целостности передаваемых между сторонами данных. Последняя на сегодняшний день редакция TLS определена в RFC 5246. Стандартизация этой редакции завершается сейчас в Республике Беларусь. Предполагается, что в текущем году будет введен в действие стандарт, определяющий как собственно TLS, так и использование в TLS отечественных криптографических алгоритмов. Рабочее название стандарта – BTLS. TLS является объединением нескольких субпротоколов, разбитых на два уровня. На нижнем уровне действует протокол Record, обеспечивающий шифрование и имитозащиту данных. На верхнем уровне действуют 3 протокола, основным из них является протокол Handshake. С помощью Handshake стороны согласуют применение определенных криптографических алгоритмов, формируют общий ключ, строят ключи для протокола Record, проводят аутентификацию друг друга. Применяемые алгоритмы оформляются в TLS в виде криптонабора (cipher suite). В TLS предусмотрено расширение перечня криптонаборов и методов аутентификации сторон. BTLS определяет следующие семейства дополнительных криптонаборов:
Обсудим криптонаборы BIGN_WITH_BELT и связанные с ними методы аутентификации. КриптонаборыКриптонабор определяет, какие алгоритмы шифрования, имитозащиты, генерации псевдослучайных данных и формирования общего ключа будут использоваться в сессии TLS. Алгоритмы шифрования. В TLS могут использоваться алгоритмы шифрования трех типов: поточные алгоритмы, блочные алгоритмы и алгоритмы одновременного шифрования и имитозащиты (или AEAD-алгоритмы). В криптонаборах BIGN_WITH_BELT поддержаны все эти типы:
Алгоритм имитозащиты. В TLS данные, зашифрованные с помощью поточных или блочных алгоритмов, должны сопровождаться имитовставками. В BIGN_WITH_BELT в необходимых случаях применяется алгоритм вычисления имитовставки, определенный в СТБ 34.101.31 (belt-mac). Алгоритм генерации псевдослучайных данных. В TLS алгоритм генерации псевдослучайных чисел (PRF-алгоритм в обозначениях RFC) используется для построения ключей и синхропосылок, а также для верификации сообщений протокола Handshake. Стандартный PRF-алгоритм последней редакции TLS строится на основе алгоритма HMAC, который, в свою очередь, строится на некотором алгоритме хэширования. Во всех криптонаборах BIGN_WITH_BELT используется стандартный PRF-алгоритм c алгоритмом хэширования СТБ 34.101.31 (belt-hash). Алгоритмы формирования общего ключа. В протоколе TLS имеется определенная свобода выбора алгоритма (или, точнее, механизма) формирования общего ключа. Тем не менее, в RFC 5246 описаны четыре типа таких алгоритмов, которые применяются в большинстве существующих на сегодняшний день решений. Алгоритмы двух типов не обеспечивают защиту от атак типа «противник посередине» и «чтение назад». Поэтому в BTLS были включены алгоритмы только двух оставшихся типов:
Дополнительно в BTLS определен алгоритм формирования общего ключа, соответствующий RFC 4279:
В перечисленных алгоритмах формирования общего ключа используется сертификат сервера с открытым ключом СТБ 34.101.45 (bign-pubkey). Обязательный криптонабор. Любая реализация BTLS должна поддерживать криптонабор с алгоритмом шифрования belt-ctr, алгоритмом имитозащиты belt-mac и алгоритмом формирования общего ключа dht-bign. Поддержка остальных 8 криптонаборов является необязательной. АутентификацияАутентификация в BTLS основана на проверке действительности сертификатов открытых ключей сторон и на проверке знания сторонами соответствующих личных ключей. Для криптонаборов с алгоритмом формирования общего ключа dht-psk-bign дополнительная аутентификация состоит в проверке знания общего секрета (предполагается, что этот секрет был надежно передан сторонам протокола, подлинность которых была предварительно проверена). При аутентификации используются сертификаты, в которых фиксируются открытые ключи алгоритмов СТБ 34.101.45 (bign-pubkey). Аутентификация сервера. В протоколе Handshake сервер передает клиенту сертификат, который при использовании алгоритма dhe-bign содержит открытый ключ электронной цифровой подписи, а при использовании алгоритмов dht-bign и dht-psk-bign – открытый ключ транспорта. Последующее успешное завершение Handshake означает, что аутентификация сервера проведена успешно. Аутентификация клиента. В протоколе Handshake сервер запрашивает у клиента его сертификат. В этом запросе указываются возможные типы сертификатов, который должен предоставить клиент, а также типы пар (алгоритм хэширования, алгоритм ЭЦП), которые разрешается использовать при проверке подписи сертификата. Разрешается использовать сертификаты открытых ключей типа bign-pubkey и пару алгоритмов (belt-hash, bign-sign). Сервер может запросить сертификат клиента только после предъявления своего сертификата. Успешное завершение Handshake означает, что аутентификация клиента проведена успешна. |
Новости
21.10.2024
Создание сектора КБ
07.05.2024
Защита диссертации
07.03.2024
План семинара весна 2024
12.02.2024
Единый день голосования
24.10.2023
II Международная научная конференция
26.05.2023
XХVIII научно-практическая конференция
28.04.2023
TIBO 2023
02.01.2023
Программный комплекс ЭАДП
27.12.2022
С Новым годом!
|