Является ли симметричное шифрование GnuPG уязвимым для атак методом перебора на парольную фразу?

В справочнике предполагается, что симметричное шифрование является подходящим (и, следовательно, не менее безопасным, чем шифрование с открытым ключом?), Когда вам нужен только доступ к открытому тексту. Но согласно этому посту, так как gpg --symmetric требуется только фраза-пароль, злоумышленнику нужно только перебрать эту фразу-пароль, а не полный 128/256-битный ключ, сгенерированный из нее.

Мне кажется, что тогда правильной процедурой является наличие файла ключа 128/256 бит, который используется для симметричного шифрования моих данных; который сам симметрично зашифрован с помощью ключа, сгенерированного из ключевой фразы, так же, как защищенные закрытые ключи. Это потребует от злоумышленника грубого взлома полного симметричного ключа - даже если они получат мой файл ключа, им все равно придется взломать мой пароль.

Есть ли gpg поддерживать такого рода использование? Мое понимание ситуации неверно, есть ли причина, по которой это недопустимый вариант использования?

-

Или, говоря по-другому:

В этом вопросе предполагается, что защиты парольной фразы достаточно, но в основном мой вопрос заключается в том, что, если я не доверяю себе в запоминании хорошего 256-битного пароля? Могу ли я использовать файл симметричного ключа так же, как с моим закрытым ключом? Очевидно, что на самом деле я мог бы просто использовать свой закрытый ключ, но в руководстве предполагается, что симметричное шифрование было бы идиоматическим выбором в этой ситуации.

1 ответ

Решение

В OpenPGP есть две возможности для получения симметричного (сеансового) ключа из ключевой фразы: непосредственное использование ключевой фразы для получения ключа или генерация случайного ключа, который сам зашифрован сгенерированным ключом. Тем не менее, в обоих случаях симметричный ключ всегда хранится вместе с зашифрованным текстом, и симметричный ключ не может быть разделен без потери совместимости с форматом OpenPGP. В конце концов, ключ также может быть взломан паролем, независимо от того, какой тип хранения ключа используется.

OpenPGP делает грубое форсирование парольной фразы, хотя, тем не менее, генерируя большой ввод для хеширования (повторяя парольную фразу несколько раз для ввода хеша). Этот способ перебора парольной фразы намного дороже. Из RFC 4880, OpenPGP, 3.7.1.3. Итеративный и соленый S2K:

Это включает как количество соли, так и число октетов. Соль объединяется с парольной фразой, и полученное значение неоднократно хэшируется. Это дополнительно увеличивает объем работы, которую злоумышленник должен выполнить, чтобы попробовать атаки по словарю.

В GnuPG количество повторений пароля (и некоторые другие параметры) можно настроить с помощью --s2k-* варианты.

Другие вопросы по тегам