Гибридное шифрование с открытым ключом — теперь в формате RFC

03.06.2022 | VAS Experts

В начале года инженеры IRTF представили информационный RFC 9180. В нем описана концепция Hybrid Public Key Encryption (HPKE). Поговорим о том, почему появился этот документ и кто уже применяет рекомендации на практике.

HPKE

Незабытое старое

Гибридная система шифрования совмещает преимущества криптосистемы с открытым ключом с производительностью симметричных криптосистем. Вообще, её применяют еще с начала 90-х годов — например, в протоколах PGP и SMIME для шифрования электронных писем и схеме ECIES для хранения ключей на устройствах с iOS.

Однако существующие реализации гибридных механизмов шифрования варьируются от системы к системе. И в сообществе нет абсолютного консенсуса по этому вопросу. Инженеры IRTF при содействии крупных ИТ-компаний и облачных провайдеров решили исправить ситуацию и представили спецификацию Hybrid Public Key Encryption (HPKE) в формате RFC 9180.

Что там под капотом

Чаще всего под гибридным подходом понимают шифрование симметричного ключа с помощью открытого ключа. Специалисты IRTF пошли несколько иным путем. Они предложили использовать механизм инкапсуляции ключа (KEM), который формирует симметричный ключ и защищает его ключом открытым. Доступ к нему может получить только владелец соответствующего закрытого секрета.

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

В то же время Hybrid Public Key Encryption поддерживает четыре режима аутентификации. а) Базовый, когда получатель имеет ключевую пару, а отправитель — знает её открытую часть. б) Auth, когда отправитель также имеет пару ключей для идентификации. в) PSK, когда стороны используют общий ключ. г) AuthPSK, который задействует оба предыдущих варианта.

Гибридное шифрование

Сам по себе HPKE имеет простой интерфейс — для шифровки сообщения достаточно двух вызовов функций. Например:

encapsulatedKey, senderContext = SetupBaseS(receiverPublicKey, ”shared application info”)
ciphertext = senderContext.Seal(aad, message)

Самостоятельно оценить работу HPKE вы можете в демо, который подготовил один из участников ИТ-сообщества в своем блоге (форма в конце страницы).

Что с перспективами

Спецификацию, описанную в документе RFC 9108, уже используют несколько других стандартов. Так, гибридное шифрование с открытым ключом является частью Oblivious DoH, который улучшает конфиденциальность и безопасность DNS-запросов и уже стал частью глобальной инфраструктуры. HPKE также интегрировали в развивающиеся Oblivious HTTPMLS и Privacy Preserving Measurement.

В то же время существуют совместимые реализации, построенные на популярных криптографических библиотеках, таких как OpenSSL, BoringSSL, NSS, и CIRCL. Можно сказать, что число аналогичных проектов со временем будет только увеличиваться. Но перед авторами HPKE еще стоят нерешенные вопросы — специалисты из парижского исследовательского института INRIA отмечают необходимость доработки функциональности, которая позволит использовать спецификацию для шифрования локальных файлов на компьютере (PDF, стр.16).

Поделиться в социальных сетях