44

Я зашифровал файл с помощью симметричного шифрования следующим образом:

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 ответ1

67

Фон

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .