===== Age шифрование ===== ==== Тестируем утилиту шифрования Age 1.0 ==== [[https://age-encryption.org/|Age]] – новейшая утилита, написанная на Go, которая по заверениям выполняет прекрасное потоковове ассиметричное шифрование и не только. Шифрует входной поток в выходной, просто и понятно. Из отличительных особенностей, можно зашифровать для //группы получателей, так чтобы каждый мог расшифровать//. Данные нужно шифровать. Раздел, допустим, **300 GiB** и грузить его одним куском, да и хранить в целом, очень не интересно. [[https://man7.org/linux/man-pages/man1/split.1.html|Split]] поможет раздробить файл на куски. ===== Генерируем ключ ===== Утверждается, что можно просто SSH public key использовать, кроме ключа age. Попробуем и то, и то. ssh-keygen -t ed25519 -o -a 150 -qN '' -f id_ed25519 age-keygen -o age.key age-keygen -y age.key> recipients.txt cat id_ed25519.pub>> recipients.txt Получаем вот такие ключи. age1qrcn5glms66thfv9cj5pzdwl3z87t9evzaqlxdj9ksravmw3mypswawuag ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIObk2OuhYlrr3ezvf5gAWXgUdcLn4XQFa8B8GCRpBr9q user@host Шифрование Для простоты, просто сгенерим 10 MiB со случайными данными и сразу сделаем копию, чтобы потом сравнить хеш-суммы. dd if=/dev/urandom of=data bs=1M count=10 cp data data.orig Теперь можно шифровать. Использую и архивацию, и разделение. tar -cz data | age -R recipients.txt | split -b 1MiB -d - chunk- Получаем 10 файлов от chunk-00 до chunk-10. ===== Расшифровка ===== Расшифруем используя SSH ключ. cat chunk-* | age -d -i id_ed25519 | tar xz mv data data.ssh Расшифруем используя Age ключ. cat chunk-* | age -d -i age.key | tar xz mv data data.age ===== Проверка ===== Сверим Hash суммы. # sha256sum data* 5ebc271a22cfb9af0430253c2d8f3b83d1c3f5fdd062dd0ecc6c1f2d7925b828 data.age 5ebc271a22cfb9af0430253c2d8f3b83d1c3f5fdd062dd0ecc6c1f2d7925b828 data.orig 5ebc271a22cfb9af0430253c2d8f3b83d1c3f5fdd062dd0ecc6c1f2d7925b828 data.ssh Вроде работает. Как и всегда, позже найдут какие-то уязвимости, но использовать можно. Множественные адресаты это интересная особенность.