Если кто-то не заботится о защите секретного ключа gpg, так ли он безопасен, как при использовании gpg --symmetric?
Каждый из Алисы и Боба использует gpg только для защиты своих личных файлов, а не для отправки зашифрованного текста другим. Алиса сгенерировала ключ (gpg --gen-key
) что она использует для шифрования / дешифрования своих личных файлов (gpg --encrypt --recipient="Alice Personal" alice.secrets.txt
а также gpg --decrypt alice.secrets.txt.gpg
). Она знает, что для того, чтобы читать и писать alice.secrets.txt.gpg
на другом компьютере ей необходимо экспортировать свой ключ (открытый и закрытый) на второй компьютер, используя такие команды, как:
gpg --armor --export "Alice Personal" > alice.personal.public.key.txt
gpg --armor --export-secret-key "Alice Personal" > alice.personal.private.key.txt
а также
gpg --import alice.personal.public.key.txt
gpg --import alice.personal.private.key.txt
Поэтому она решает поместить свои зашифрованные личные файлы (alice.secrets.txt.gpg
) и ее ключ (alice.personal.public.key.txt
а также alice.personal.private.key.txt
) на сервис облачной синхронизации для удобства. Так как alice.personal.private.key.txt
находится в облаке, третья сторона, которая может получить доступ к ее файлам в облаке, имеет доступ к первому из следующих двух, но не ко второму.
что-то у нее есть: alice.personal.private.key.txt
что-то она знает: пароль для разблокировки секретного ключа
Она отказывается от защиты первой в обмен на удобство.
С другой стороны, Боб использует симметричное шифрование для защиты своих секретов (gpg --symmetric bob.secrets.txt
а также gpg --decrypt bob.secrets.txt.gpg
). Он также помещает свои зашифрованные личные файлы в облачный сервис. Читать и писать bob.secrets.txt.gpg
на другом компьютере ему просто нужно успешно вспомнить его пароль.
Возможно, Алиса и Боб должны просто использовать Truecrypt или Boxcryptor. В любом случае, вопрос в том, безопасны ли секреты Алисы, как секреты Боба, при условии, что их парольные фразы одинаково хороши?
2 ответа
Подход Алисы немного безопаснее, чем у Боба. Каждый зашифрованный файл получает новый симметричный ключ, что означает, что:
- Вам придется разбивать симметричный ключ отдельно для каждого файла, а не один раз, и эти ключи обычно проще взломать, чем надлежащие ключи RSA (меньше места для ключа для более высокой производительности, поскольку мы не можем терять время с каждым новым сообщением, это документ или соединение, и RSA не обязательно должен быть эффективным, поскольку ключ генерируется, поскольку мы обычно используем его для шифрования симметричного ключа, используемого для остальной части документа).
- Вы можете избежать атак, когда известны зашифрованные и незашифрованные документы. Если Ева знает, что оригинал документа и версия зашифрованы для Алисы, это может помочь найти ключ и использовать его для всех других документов.
- Вы можете избежать атак, совершаемых за счет знания множества зашифрованных сообщений, что может быть похоже на то, что мы уже знаем по RSA и низким показателям.
Согласно документации GPG:
- Для шифрования документа опция
--encrypt
используется. У вас должны быть открытые ключи предполагаемых получателей.- Для расшифровки сообщения опция
--decrypt
используется. Вам нужен личный ключ, к которому было зашифровано сообщение.
В описанном вами сценарии секрет Алисы не защищен от перезаписи Мэллори, поскольку для шифрования файлов требуется только ее открытый ключ, и он не защищен паролем. Ее закрытый ключ требуется только для расшифровки файлов.
Таким образом, Мэллори может создавать вредоносные зашифрованные файлы, которые Алиса может успешно расшифровать, прежде чем понять, что они были подделаны.
Если Алиса решит не делиться своим открытым ключом, то ее секреты будут безопасны лишь в качестве алгоритма симметричного шифрования и ключевой фразы, используемой для защиты ее закрытого ключа. (Помните, что Алиса автоматически использует симметричное шифрование для защиты своего закрытого ключа парольной фразой)