Фон
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
за замовчуванням.