[О блоге] [наверх] [пред] [2025-10-06 10:49:08+03:00] [5c92ce5cbbc610719487c27d564bb1fa3d728175]
Темы: [crypto][keks][nncp][tcl]

Новый OpenSSH и PQ криптография в NNCP

https://www.openssh.com/releasenotes.html#10.1p1
http://lists.cypherpunks.su/archive/nncp-devel/aNkId5QemUNoyZKX@stargrave.org/
В новой версии OpenSSH будет предупреждать, если подключился без
использования постквантовых алгоритмов.

У меня и TLS (через мой tofuproxy, на Go, с ML-KEM TLS 1.3), и GnuPG, и
OpenSSH и KEKS/CM (вместо age) поддерживают постквантовые алгоритмы.
WireGuard использует PSK, так что тоже безопасен. VoRS VoIP тоже
применяет PQConnect-like рукопожатие. А вот что осталось крупного и не
готового к PQ, так это мой NNCP.

Как же не охота с ним что-либо делать! Работает, удовлетворяет, поэтому
и нет интереса что-то менять. А люди вон даже ещё какие-то инструменты
поверх него делают, и всякие несложные отсутствующие мелочи мешают это
делать хорошо.

Формат NNCP пакетов придётся менять. Но теперь... что мешает мне
использовать мой KEKS? А для криптографии *уже* есть реализованный на Go
KEKS/CM! Поэтому в новой версии NNCP вовсю будет его использование. Но
пока не уверен что на уровне Go кода, а не просто гоняя данные через
pipe-ы с внешним процессом.

Кроме того, я всё не был удовлетворён форматом конфигурационных файлов.
Hjson/JSON сложно создавать и обрабатывать даже через утилиты командной
строки (jq и подобные). Можно, но не сказать что удобно. Когда-то я
сделал "cfgdir" формат, где всё разложено по директориям и файлам. Для
машины это удобнее, а для человека не то чтобы очень. Но я всё равно так
у себя на практике cfgdir нигде и не использовал. Но два совершенно
разных формата конфига так и остались в NNCP. Но между ними можно
проводить конверсию (теряя комментарии, конечно же).

Плюс с новыми KEKS/CM форматами пакетов, появляются и новые форматы
публичных ключей. А в случае использования Classic McEliece
(d0120e47839413c5e3a04c9c6e31bab5f3996de9), они будут более мегабайта,
что хранить в текстовом JSON-like файле -- точно не вариант.

Плюс online-протокол NNCP использует Noise, в котором нет PQ алгоритмов.
Зато в VoRS (88c583a3c16e62e62397761c72575334649c4c72) имеется. Надо
будет его PQHS вынести как отдельную библиотеку и переиспользовать в NNCP.

Но я ведь недавно сделал damn small configuration формат/утилиту
(9b00c0724455d355f89bbee14ead8a0525b8b173)! Которая и удобна для машины
и вполне пригодна для человека. Я не нашёл хороших причин не
использовать dsc для нового формата конфигурации. Ну кроме того, что
утилита требует Tcl, а переписывать на Go, конечно же, будет лень, хотя
и не помешало бы. Причём она уже умеет экспортировать/импортировать
конфигурацию в текстовом виде в единственном файле. Это можно было бы
использовать для импорта информации о другом узле NNCP в виде части
дерева конфига. На днях добавил возможность хранения бинарных данных
(для огромных ключей) в нём.

Так что вот так у меня аж три проекта начнут использоваться внутри NNCP.
Как будто прям нужно было время чтобы он отлежался, чтобы подождал когда
критическая масса других наработок подоспеет. Была ещё мысль его
документацию перевести с Texinfo на SWG.

    [оставить комментарий]