[about] [index] [prev] [2022-01-15 14:12:29+03:00] [4674ad351dcb1f018d2392bc03fb0692e101e229]
Topics: [crypto]

age утилита шифрования

https://github.com/FiloSottile/age
За сутки меня пара человек спрашивала что я думаю об age утилите. Пошёл
смотреть что это такое. Во-первых, мне очень жутко и невообразимо не
нравится то, что спецификация формата находится на GoogleDocs сайте: как
они предполагают ею люди будут читать?

Но в остальном у меня претензий больше то особо и нет. Весь исходный код
я просмотрел: его совсем немного, прост и топорен, как и сам формат.
Потоковое шифрование, как и я в NNCP
(9dbbfb48af71d290a67a389117411ded7ecc11a6), использует сигнал при
шифровании последнего блока: используется nonce с выставленным битом
особым. ChaCha20-Poly1305, HKDF, простые заголовки -- всё это одобряю.

Вижу эту утилиту как некий аналог signify (https://man.openbsd.org/signify).
Один делает подписи в очень простом формате и ed25519. А второй
предлагает шифрование. Причём преобразование ed25519->curve25519 делает,
вроде бы, корректно, всё как полагается.

Похоже что людям нравится тот факт что они могут использовать уже
имеющиеся ключи в их .ssh. В принципе то я доверяю стойкости *25519
достаточно чтобы не переживать по поводу переиспользования одного ключа
для разных целей. Но, на рефлекторном уровне предпочитаю стараться
разделять ключи по целям использования. Это просто не может не быть
плохой практикой. А раз так, то я и смысла в отдельной age утилите не
вижу. У неё конечно есть большое преимущество: очень мало кода, за 15мин
можно просмотреть, а криптография из родных Go библиотек берётся.
OpenPGP и GnuPG безусловно монстры по размерам. Но зато GnuPG можно
ожидать что есть на любой Unix-like системе из коробки, грубо говоря.
Раз всё равно будет отдельный ключ для шифрования, то на практике от age
мало каких-то плюсов: кол-во команд (age vs gpg) не изменится, но зато
есть целая инфраструктура и инструментарий OpenPGP, который может да
пригодится.

Единственная ощутимая разница это то, что в GnuPG нет ChaCha20-Poly1305.
Быстрее всего зашифровать можно в AES-OCB режиме в нём, что у меня вроде
выдавал больше гигабайта в секунду. Где-то наверное это может быть
недостаточно, но для моих применений более чем. Да и если хочется
максимальнейшей производительности, то вместо "age" я бы использовал
свой gohpenc, который распараллеливаться умеет.

Но а в целом порекомендовать age бы мог, как и signify. Я всё же не вижу
плюсов перевешивающих чтобы мне перейти на них полностью. Всё же OpenPGP
и для проверки софта (де-факто) и для почты постоянно использую.

[leave comment]