Я зашифровал файл с помощью симметричного шифрования следующим образом:
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, и я знаю, что они безопасны.
- Почему это не защищено для целостности?
- И более того, как мне это исправить?
encryption
gnupg
data-integrity
aes
gertvdijk
источник
источник
gpg -c myfile
зашифровать иgpg myfile.gpg
расшифровать, вывод будет расшифрованmyfile
по умолчанию.gpg myfile.gpg
приведет к тому, что расшифрованный вывод будет отправлен на стандартный вывод моей системы ...Ответы:
Задний план
CAST-5 - это более старый алгоритм шифрования, используемый GnuPG, потому что AES еще не существовал в то время, когда GnuPG был изначально создан как исходный . Он не используется широко (кроме GnuPG по причинам совместимости).
Это
WARNING: message was not integrity protected
потому, что эта функция не включена по умолчанию во время шифрования. Если это было включено, GnuPG мог бы сказать, был ли файл изменен при передаче.Обновление: в современных версиях GnuPG, поставляемых с Ubuntu / Debian, теперь MDC включен по умолчанию, и вы больше никогда не увидите это сообщение для всего, что подписано этими новыми версиями.
Решения
Чтобы использовать более сильный AES-256, вы должны указать его либо в командной строке, либо в файле конфигурации.
Командная строка: добавьте
--cipher-algo AES256
параметр, чтобы полная строка для шифрования сталаФайл конфигурации (рекомендуется): добавьте следующую строку в
~/.gnupg/gpg.conf
файл конфигурации.Я рекомендую этот подход, потому что он будет использоваться для всех будущих операций GPG с этой учетной записью пользователя.
Пользователь ничего не сможет изменить для расшифровки файла - GnuPG обнаружит это автоматически.
Обратите внимание, что при использовании шифра AES-256 сообщение автоматически защищается для обеспечения целостности. Чтобы вручную включить защиту целостности на других шифрах, для которых она не включена (например, CAST-5), добавьте
--force-mdc
параметр при шифровании.Еще лучше: подписывайтесь!
Еще лучшим подходом было бы подписать ваши файлы с помощью пары ключей (если она у вас есть). Просто добавьте
--sign
опцию к команде шифрования, например так:Это не только подтвердит целостность файла, но и позволит получателю файла проверить источник. Любые изменения в файле могут привести к сбою проверки подписи.
источник