Введение ¶
Age – новейшая утилита, написанная на Go, которая по заверениям выполняет прекрасное потоковове ассиметричное шифрование и не только. По виду действительно простая и, мне лично, чем-то напоминает Wireguard (утилиту wg).
Шифрует входоной поток в выходной. Просто и понятно. Из отличительных особенностей, можно зашифровать для группы получателей, так чтобы каждый мог расшифровать.
На повестке дня у меня нынче мысли о создании бекапов btrfs разделов с домашними фото\видео куда-то в облако, например в Backblaze, чтобы подешевле было. Вот только облакам доверия нет (никаким). Данные нужно шифровать. Раздел, допустим, 300 GiB и грузить его одним куском, да и хранить в целом, очень не интересно. Split поможет раздробить файл на куски.
Генерируем ключ ¶
Утверждается, что можно просто SSH public key использовать, кроме ключа age. Попробуем и то, и то.
 |  | 
Получаем вот такие ключи.
 |  | 
Шифрование ¶
Для простоты, просто сгенерим 10 MiB со случайными данными и сразу сделаем копию, чтобы потом сравнить хеш-суммы.
 |  | 
Теперь можно шифровать. Использую и архивацию, и разделение.
 |  | 
Получаем 10 файлов от chunk-00 до chunk-10.
Расшифровка ¶
Расшифруем используя SSH ключ.
 |  | 
Расшифруем используя Age ключ.
 |  | 
Проверка ¶
Сверим Hash суммы.
 |  | 
Вроде работает. Как и всегда, позже найдут какие-то уязвимости, но использовать можно. Множественные адресаты это интересная особенность.
