
Theсправочникпредполагает, что симметричное шифрование является целесообразным (и, следовательно, не менее безопасным, чем шифрование с открытым ключом?), когда вам нужен только доступ к открытому тексту. Но согласноэтотpost, поскольку gpg --symmetric
требуется только парольная фраза, злоумышленнику нужно только подобрать ее методом перебора, а не сгенерированный из нее полный 128/256-битный ключ.
Мне кажется, что правильная процедура тогда заключается в том, чтобы на самом деле иметь файл ключа 128/256 бит, который используется для симметричного шифрования моих данных; который сам по себе симметрично зашифрован с помощью ключа, сгенерированного из парольной фразы, точно так же, как защищены закрытые ключи. Это потребовало бы от злоумышленника перебора полного симметричного ключа - даже если бы они получили мой файл ключа, им все равно пришлось бы перебора моей парольной фразы.
Поддерживает ли gpg
этот вид использования? Ошибочно ли мое понимание ситуации, есть ли причина, по которой это недопустимый вариант использования?
--
Или, говоря другими словами:
Вэтотвопрос предполагается, что защита с помощью парольной фразы достаточна, но по сути мой вопрос в том, что если я не доверяю себе, что смогу запомнить хороший 256-битный пароль? Могу ли я использовать симметричный файл ключа, как и с моим закрытым ключом? Очевидно, я мог бы просто использовать свой закрытый ключ, но руководство предполагает, что симметричное шифрование будет идиоматичным выбором в этой ситуации.
решение1
В OpenPGP есть две возможности для получения симметричного (сеансового) ключа из парольной фразы: непосредственное использование парольной фразы для получения ключа или генерация случайного ключа, который сам зашифрован сгенерированным ключом. Однако в обоих случаях симметричный ключ всегда хранится вместе с зашифрованным текстом, и симметричный ключ не может быть разделен без потери совместимости с форматом OpenPGP. В конце концов, ключ также может быть взломан методом подбора через парольную фразу, независимо от того, какой тип хранения ключа используется.
OpenPGP затрудняет подбор пароля, хотя, генерируя большой ввод для хеширования (итерируя парольную фразу несколько раз для хешированного ввода). Таким образом, подбор пароля обходится намного дороже. ИзRFC 4880, OpenPGP, 3.7.1.3. Итерированный и соленый S2K:
Это включает в себя как соль, так и количество октетов. Соль объединяется с парольной фразой, и полученное значение многократно хэшируется. Это еще больше увеличивает объем работы, который должен выполнить злоумышленник, чтобы попытаться провести словарные атаки.
В GnuPG количество повторений парольной фразы (и некоторые другие параметры)можно настроить с помощью --s2k-*
опций.