engine
engine copied to clipboard
TLS 1.3 по ГОСТ в openssl - roadmap
-
Добавить в уже существующую провайдерную сборку MGM-шифры- done #414 - Спортировать в апстрим те патчи, которые добавляют собственно шифронаборы. На этом этапе получаем возможность российских шифронаборов с западным ключевым обменом
- Спортировать в провайдер асимметричные алгоритмы.
- Поддержать ключевой обмен по ГОСТ
- Спортировать в провайдер MAC и оторвать сборку engine
Что-то аналогичное patches/openssl_111g.diff для 3.0/master существует?
Нет и не должно. Части на стороне openssl я надеюсь протолкнуть в апстрим - но чтобы это начать, нужно хотя бы п.1 реализовать
Можно реализацию MGM шифров брать из этой ветки [1]?
- https://github.com/gost-engine/engine/tree/ossl_patched
Нужно!
А возможно NID для magma-mgm
и kuznyechik-mgm
в апстриме добавить?
Проще считать, что нет. OID-ов для них нет, а предлагать новый код для работы через engine - не поймут.
я тогда создам динамические с помощью OBJ_add_object()
? придётся немного с инициализацией engine повозиться.
Не надо добавлять в engine. Надо брать провайдер, шифры в нём уже реализованы как концепция.
node.js
видит шифроалгоритмы, только если они есть и в старых объектах, и в новых. это работает для всех алгоритмов default провайдера. для gost работает, если одновременно подключить и движок, и провайдер. а я хочу сделать TLS-1.3 в node.js
.
когда всё заработает, можно будет сделать большой рефакторинг и убрать в провайдере обёртку движка. это проще будет сделать для всех алгоритмов за раз
я тогда создам динамические с помощью
OBJ_add_object()
? придётся немного с инициализацией engine повозиться.
Ну в качестве промежуточного варианта можно
В провайдере надо обрабатывать параметр контекста OSSL_CIPHER_PARAM_AEAD_TAG
для шифров с AEAD (-omac, -mgm). Чем отличается EVP_CIPH_FLAG_CIPHER_WITH_MAC
от EVP_CIPH_FLAG_AEAD_CIPHER
?
п.1 в #414
так PR #414 в таком виде (через engine) закрывает п.1? или требуется перенос в провайдер?
может кто пальцем ткнуть в реализацию п.4 (ключевой обмен) для 1.1.1xyz?
Сходу не соображу. Скорее всего где-то здесь https://github.com/gost-engine/engine/blob/ossl_patched/gost_ec_keyx.c
подскажите, есть ли какая-то активность по задаче? планируется ли внедрение в upstream openssl поддержки протокольной части ГОСТового TLS 1.3?
пока кто-нибудь не сделает асимметрику в gost provider - ничего не планируется. Мне сейчас не до того.
Я могу ПР сделать. Какие конкретно ассиметричнеы алгоритмы надо портировать?
И ещё такой вопрос. Есть какой-то публичный сервер на котором можно потестить соединение по ГОСТ TLS 1.3?
Публичный сервер есть у КриптоПро, кажется. Но патченная ветка 1.1.1 вполне себе вариант для тестирования.
Для TLS 1.3 надо портировать только подпись 2012 года, оба варианта. Но добавить туда 2001-й после того, как появится 2012-й, не так сложно.
Добрый день! Относительно тестовых стендов КриптоПро стоит уточнить (см. https://cryptopro.ru/products/csp/tc26tls), а у Инфотекса стенд TLS 1.3 есть: https://infotecs.ru/products/tls-test.php
https://github.com/BuHToPe3/gost-engine/tree/master
Вот тут коллега по прошлой работе начинал процесс, но далеко не продвинулся, к сожалению.