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