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