Как исправить ошибку «ВНИМАНИЕ: целостность сообщения не защищена» при использовании симметричного шифрования GPG?

Как исправить ошибку «ВНИМАНИЕ: целостность сообщения не защищена» при использовании симметричного шифрования GPG?

Я зашифровал файл, используя симметричное шифрование, вот так:

gpg --symmetric myfile

в результате чего получается файл myfile.gpg.

Хорошо. Теперь давайте снова расшифруем файл:

gpg -o myfile --decrypt myfile.gpg

Меня просят ввести пароль, который я установил, а затем я вижу

gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected

Я не уверен насчет первой и последней строки.

  • Что такое шифр CAST5 и безопасен ли он? Я знаю 3DES и AES, и я знаю, что они безопасны.
  • Почему не обеспечивается целостность данных?
  • И еще, как это исправить?

решение1

Фон

КАСТ-5— это старый алгоритм шифрования, используемый GnuPG, поскольку во время первоначального создания GnuPG AES еще не существовал.источник. Он не используется широко (за исключением 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

Это не только подтвердит целостность файла, но и позволит получателю файла проверить его источник. Любые изменения в файле приведут к тому, что проверка подписи не будет пройдена.

Связанный контент