Стандартизация TLS

Для защиты соединений между клиентом и сервером в сети Интернет в большинстве случаев применяется протокол TLS (Transport Layer Security). TLS обеспечивает взаимную аутентификацию сторон протокола, конфиденциальность и контроль целостности передаваемых между сторонами данных. Последняя на сегодняшний день редакция TLS определена в RFC 5246. Стандартизация этой редакции завершается сейчас в Республике Беларусь. Предполагается, что в текущем году будет введен в действие стандарт, определяющий как собственно TLS, так и использование в TLS отечественных криптографических алгоритмов. Рабочее название стандарта – BTLS.

TLS является объединением нескольких субпротоколов, разбитых на два уровня. На нижнем уровне действует протокол Record, обеспечивающий шифрование и имитозащиту данных. На верхнем уровне действуют 3 протокола, основным из них является протокол Handshake. С помощью Handshake стороны согласуют применение определенных криптографических алгоритмов, формируют общий ключ, строят ключи для протокола Record, проводят аутентификацию друг друга. Применяемые алгоритмы оформляются в TLS в виде криптонабора (cipher suite). В TLS предусмотрено расширение перечня криптонаборов и методов аутентификации сторон.

BTLS определяет следующие семейства дополнительных криптонаборов:

  • RDPFOK_WITH_GOST – два криптонабора на основе алгоритмов ГОСТ 28147 (шифрование, имитозащита), СТБ 1176.1 (хэширование), СТБ 1176.2 (ЭЦП) и протоколов формирования общего ключа в простых полях;
  • BIGN_WITH_BELT – девять криптонаборов на основе алгоритмов СТБ 34.101.31 (шифрование, имитозащита, хэширование), СТБ 34.101.45 (ЭЦП, транспорт ключа).

Обсудим криптонаборы BIGN_WITH_BELT и связанные с ними методы аутентификации.

Криптонаборы

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

Алгоритмы шифрования. В TLS могут использоваться алгоритмы шифрования трех типов: поточные алгоритмы, блочные алгоритмы и алгоритмы одновременного шифрования и имитозащиты (или AEAD-алгоритмы). В криптонаборах BIGN_WITH_BELT поддержаны все эти типы:

  • алгоритм шифрования СТБ 34.101.31 в режиме счетчика (belt-ctr) используется в качестве поточного;
  • алгоритмы шифрования СТБ 34.101.31 в режиме сцепления блоков (belt-cbc) используются в качестве блочных;
  • алгоритмы одновременного шифрования и имитозащиты СТБ 34.101.31 (belt datawrap) используются как AEAD-алгоритмы.

Алгоритм имитозащиты. В 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 были включены алгоритмы только двух оставшихся типов:

  • dht-bign – транспорт ключа на основе СТБ 34.101.45 (bign-keytransport);
  • dhe-bign – протокол Диффи – Хэллмана с эфемерными ключами, которые подписываются с помощью алгоритмов СТБ 34.101.45 (bign-sign).

Дополнительно в BTLS определен  алгоритм формирования общего ключа, соответствующий RFC 4279:

  • dht-psk-bign – транспорт ключа типа DHT_BIGN с использованием предварительно распределенных общих секретов.

В перечисленных алгоритмах формирования общего ключа используется сертификат сервера с открытым ключом СТБ 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 означает, что аутентификация клиента проведена успешна.

Новости
23.05.2017
XХII научно-практическая конференция «Комплексная защита информации»
31.03.2017
ITSecurity-2017
22.02.2017
Ввод в действие новой редакции СТБ 34.101.47
21.02.2017
План семинара весна 2017
20.01.2017
Итоги NSUCRYPTO-2016
24.10.2016
План семинара осень 2016
29.08.2016
Ввод в действие СТБ 34.101.77
15.06.2016
CTCrypt-2016
19.04.2016
Криптографические стандарты: планы на 2016 год