Фон
CAST-5 - це старший алгоритм шифрування, використовуваний GnuPG, оскільки AES ще не існував у часі, коли GnuPG був створений початковим джерелом . Він не використовується широко (крім GnuPG з міркувань сумісності).
Це WARNING: message was not integrity protectedтому, що ця функція не вмикається за замовчуванням під час шифрування. Якщо це було ввімкнено, GnuPG міг би визначити, чи змінили файл під час транзиту.
Оновлення: сучасні версії GnuPG, що постачаються разом з Ubuntu / Debian, тепер за замовчуванням увімкнено MDC , і ви більше ніколи не побачите це повідомлення за будь-яким підписаним з цими новішими версіями.
Рішення
Для використання більш сильного AES-256 вам потрібно вказати його або в командному рядку, або у вашому файлі конфігурації.
Командний рядок: додайте --cipher-algo AES256параметр, щоб повний рядок для шифрування став
gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
Файл конфігурації (рекомендується): додайте наступний рядок у ~/.gnupg/gpg.confфайл конфігурації.
cipher-algo AES256
Я рекомендую такий підхід, оскільки він буде використовуватися для всіх майбутніх операцій GPG на цьому обліковому записі користувача.
Користувач нічого не може змінити, щоб розшифрувати файл - GnuPG виявить це автоматично.
Зауважте, що за допомогою шифру AES-256 повідомлення автоматично захищається від цілісності. Щоб вручну ввімкнути захист цілісності на інших шифрах, для яких це не ввімкнено (наприклад, CAST-5), додайте --force-mdcпараметр під час шифрування.
Ще краще: підпишіть!
Ще кращим підходом було б підписання файлів за допомогою клавіатури (якщо у вас є). Просто додайте --signпараметр до команди шифрування, наприклад:
gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile
Це не тільки підтвердить цілісність файлу, але й дасть можливість одержувачу файлу перевірити походження. Будь-які зміни у файлі мали б не перевірити підпис.
gpg -c myfileзашифрувати іgpg myfile.gpgрозшифрувати, вихід буде розшифрованийmyfileза замовчуванням.