- Вопрос или проблема
- Предпочтения получателя
- Безопасные алгоритмы
- Строгое соблюдение RFC
- GnuPG 2.1 по умолчанию использует AES-128, 2.4 – AES256
- Алгоритмы дайджеста
- Ответ или решение
- Алгоритмы шифрования в GnuPG
- Влияние предпочтений получателя
- Безопасные алгоритмы и строгая совместимость с RFC
- Проверка используемого алгоритма
- Заключение
Вопрос или проблема
Я знаю, что можно заставить GnuPG использовать AES256 для шифрования с помощью
gpg --cipher-algo AES256
или с помощью специальной настройки в ~/.gnu/gpg.conf
.
Но какой алгоритм шифрования используется по умолчанию в GnuPG, если я пропущу этот переключатель?
Суть: Для GnuPG 1.0 и 2.0 по умолчанию используется Cast5, для GnuPG 2.1 – AES-128.
Предпочтения получателя
По умолчанию GnuPG будет читать предпочтения алгоритмов получателя и выберет первый поддерживаемый алгоритм из этого списка (другими словами, берет наиболее предпочтительный поддерживаемый алгоритм, который запрашивает получатель).
Безопасные алгоритмы
Если предпочтения не указаны (или используется --symmetric
для симметричного шифрования с использованием парольной фразы), то выбирается «безопасный» алгоритм. Безопасный означает, что он должен быть или должен поддерживаться. Какой именно алгоритм будет выбран, зависит от версии GnuPG и выбранного уровня совместимости. Это можно легко проверить, начав симметричное шифрование и указав один из уровней совместимости (или не указывая, что подразумевает --gnupg
):
gpg --verbose --symmetric
gpg: using cipher CAST5
Строгое соблюдение RFC
С другой стороны, если необходимо обеспечить строгое соблюдение OpenPGP в соответствии с RFC 4880, то выбирается Triple DES:
gpg --rfc4880 --verbose --symmetric
gpg: using cipher 3DES
RFC 2440 с использованием --rfc2440
.
GnuPG 2.1 по умолчанию использует AES-128, 2.4 – AES256
GnuPG 2.0 также использует CAST5 с параметром по умолчанию --gnupg
, в то время как этот параметр по умолчанию был изменен на AES-128 в GnuPG 2.1:
LANG=C gpg2 --verbose --symmetric
gpg: using cipher AES
(AES без дальнейших уточнений означает AES-128 в GnuPG)
GnuPG 2.1 использует те же алгоритмы для настроек, соответствующих RFC.
GnuPG 2.4.5 использует AES256 в качестве алгоритма симметричного шифрования по умолчанию. Это можно проверить с помощью:
gpg -c -a --verbose
Алгоритмы дайджеста
Для алгоритмов дайджеста применяется аналогичный анализ предпочтений алгоритмов. Если задан параметр --verbose
, используется алгоритм, который будет напечатан.
Исключение составляет пакет кода обнаружения модификации, который позволяет использовать только SHA-1 без выбора алгоритма в соответствии со стандартом.
По-видимому, параметры по умолчанию изменились. Параметр по умолчанию (в начале 2019 года) для gnupg-1.4.23 – AES128. Параметр по умолчанию для gnupg-2.1.18 – AES256. В мануалах для обеих версий указано, что по умолчанию используется AES128, но это неверно для gnupg-2.1.18.
Чтобы ответить на этот вопрос для вашей версии gnupg, выполните:
echo hi > testfile
gpg -c -vv testfile
rm testfile testfile.gpg
После ввода парольной фразы дважды появится сообщение вроде:
gpg: using cipher AES
gpg: writing to `testfile.gpg'
или:
gpg: using cipher AES256
gpg: writing to 'testfile.gpg'
AES означает AES128.
Ответ или решение
Вопрос о том, какой алгоритм шифрования по умолчанию используется в GnuPG, представляет интерес для многих специалистов в области ИТ и кибербезопасности. GnuPG (GNU Privacy Guard) — это свободное программное обеспечение для шифрования и подписи данных, основанное на стандарте OpenPGP. Понимание алгоритмов, используемых для шифрования, критически важно для обеспечения безопасности передачи и хранения данных.
Алгоритмы шифрования в GnuPG
По умолчанию алгоритт шифрования, который применяется в GnuPG, зависит от версии программного обеспечения. Обозначим основные версии и соответствующие алгоритмы:
-
GnuPG 1.x и 2.0
- Для версий GnuPG 1.0 и 2.0 алгоритмом по умолчанию является CAST5. Этот алгоритм был выбран для обеспечения приемлемого баланса между безопасностью и скоростью.
-
GnuPG 2.1
- В версии GnuPG 2.1 произошли изменения в алгоритмах шифрования, и по умолчанию используется AES-128. Это победило среди других алгоритмов благодаря своей высокой степени безопасности и производительности. Важно отметить, что когда вы указываете "AES" без дополнительных уточнений, это подразумевает именно AES-128.
-
GnuPG 2.2 и выше (включая 2.4)
- В последних версиях, таких как GnuPG 2.4, алгоритм по умолчанию меняется на AES-256, что является более безопасной альтернативой благодаря увеличенному размеру ключа. AES-256 обеспечивает более высокий уровень защиты, что делает его предпочтительным выбором для современных приложений в области шифрования.
Влияние предпочтений получателя
По умолчанию GnuPG также учитывает предпочтения шифрования, заданные получателем. Если получатель указывает алгоритмы предпочтения, GnuPG выберет первый совместимый алгоритм из этого списка. Это означает, что если у вас есть определенные требования к алгоритму, их следует заранее указать в личных настройках.
Безопасные алгоритмы и строгая совместимость с RFC
Если при использовании GnuPG не указаны предпочтения и используется команда --symmetric
для симметричного шифрования, то GnuPG автоматически выбирает "безопасный" алгоритм. В различных версиях это может быть:
- CAST5 для GnuPG 1.x и 2.0
- 3DES в случае жесткого соблюдения стандартов OpenPGP, согласно RFC 4880 или RFC 2440.
Проверка используемого алгоритма
Чтобы проверить, какой алгоритм используется в вашей версии GnuPG, вы можете выполнить команду:
echo hi > testfile
gpg -c -vv testfile
rm testfile testfile.gpg
При выполнении команды вы увидите сообщение о том, какой именно алгоритм использовался для шифрования (например, "using cipher AES" или "using cipher AES256").
Заключение
При выборе GnuPG важно учитывать версию программного обеспечения и его конфигурацию, поскольку алгоритмы шифрования могут значительно различаться. Для повышения безопасности данных рекомендуется явно указывать предпочтительный алгоритм шифрования и использовать актуальные версии GnuPG. Для эффективного шифрования данных всегда полезно быть в курсе изменений в алгоритмах, предлагаемых в каждой новой версии GnuPG.