Как управлять ключами GPG в нескольких системах?

Я новичок в использовании GnuPG и пытаюсь понять, как лучше использовать его. Я рассмотрел краткое, понятное объяснение GPG / PGP для нетехнических людей?, но большинство руководств объясняют PGP с точки зрения одной машины.

Я хочу использовать GnuPG на трех вычислительных устройствах: ПК Linux, ноутбук Linux и телефон Android.

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

Я полагаю, что мой выбор:

  1. просто скопируйте все мои ключи в брелок на каждом устройстве и полагайтесь в основном на пароль закрытого ключа для защиты.

  2. создайте мастер-ключ (с --gen-key) для представления моей личности, затем создайте отдельный одноразовый ключ (опять же с --gen-key) для шифрования/дешифрования электронных писем и подписанный мастер-ключом. Первый находится только на моем компьютере, второй распространяется на каждое устройство. Пока мои мобильные устройства не скомпрометированы, одноразовый ключ остается действительным.

Я могу быть слишком параноиком и сделать это сложнее, чем это должно быть, но юмор меня, пожалуйста. Я верю, что нельзя класть все яйца в одну корзину.

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

У меня больше шансов потерять ноутбук или телефон, чем компьютер. Если loss = = компромисс, то я бы предпочел потерять одноразовую пару ключей (которую я могу отменить), чем мою мастер-пару ключей. Я всегда могу доверить свой мастер-ключ новому одноразовому ключу.

извините за очень длинный вопрос. : -)

TL; DR

пароль достаточная защита для хранения моего master закрытый ключ на нескольких устройствах?

возможен ли мой план для варианта № 2? Я что-то не так понял или это можно улучшить?

Если вариант #2 - плохая идея, то каковы рекомендации при использовании GnuPG для одного пользователя на нескольких устройствах?

85
задан Community 2012-08-26 03:55:13
источник

2 ответов

Ну, это немного неловко. Я потратил часы в течение недели, пытаясь понять эту проблему,и ответ, похоже, лежит с подразделами-тема руководства GnuPG и часто задаваемых вопросов.

исследуя, что такое подразделы и почему они могут использоваться вместо --gen-key, я наткнулся на этот камень:http://wiki.debian.org/subkeys.

Вики Debian объясняет, как реализовать опцию #2 (см. ОП) С помощью мастер-ключ с подразделами, а также объясняет, как удалить мастер-ключ из любой системы после его хранения на резервном носителе (например, флэш-накопитель). Затем подразделы могут быть распределены между моими связками ключей на каждом устройстве.

плюсы:

  1. не полагается главным образом на пароле для защиты мастер-ключа,

  2. если система будет взломана, ключ не сразу доступен (если я сдуру оставить свой флэш-накопитель, подключенный к или присоединить указанный диск к скомпрометированной системе),

  3. это практика, реализованная командой разработчиков Debian.

  4. использует функцию подраздела GnuPG. Что кажется немного более организованным, чем иметь кучу свободных ключей на вашем брелоке, да?

соответствующая часть из подраздела Debian Wiki

  1. сделайте резервные копии существующих файлов GnuPG ($HOME/.gnupg). Держите их в безопасности. Если что-то пойдет не так во время следующих шагов, тебе это понадобится, чтобы вернуться в хорошее место. (Примечание: значение umask 077 приведет в строгие разрешения для резервного копирования.)

    • umask 077; tar -cf $HOME/gnupg-backup.tar -C $HOME .gnupg
  2. создать новый подраздел для подписания.

    • найдите свой идентификатор ключа:gpg --list-keys yourname
    • gpg --edit-key YOURMASTERKEYID
    • на gpg> запрос: addkey
    • это запрашивает пароль, введите его в.
    • выберите тип ключа " RSA (только подпись)".
    • было бы разумно выбрать 4096 (или 2048) бит размер ключа.
    • выбрать дату истечения срока действия (вы можете вращать подразделы чаще, чем Мастер-ключей, или сохранить их для жизни отмычки, без окончания).
    • GnuPG (в конце концов) создаст ключ, но вам, возможно, придется подождать, пока он получит достаточно энтропии для этого.
    • сохранить ключ: save
  3. вы можете повторить это и создать дополнительный ключ " RSA (только шифрование)", если хотите.

  4. скопировать $HOME/.gnupg на USB-накопители.

  5. самая сложная часть. Вам нужно удалить закрытый мастер-ключ, и, к сожалению, GnuPG не предоставляет удобный способ сделать это. Нам нужно экспортировать подраздел, удалить закрытый ключ и импортировать подраздел спина.

    • экспорт подразделов: gpg --export-secret-subkeys YOURMASTERKEYID >secret-subkeys (чтобы выбрать, какие подразделы экспортировать, укажите идентификаторы подразделов с восклицательным знаком:gpg --export-secret-subkeys SUBKEYID! [SUBKEYID! ..])
    • удалить главный секретный ключ:gpg --delete-secret-key YOURMASTERKEYID
    • импортировать разделы обратно: gpg --import secret-subkeys
    • убедитесь в том, что gpg -K показывает sec# вместо sec для вашего закрытого ключа. Это означает, что секретный ключ не существует. (См. также наличие фиктивного пакета OpenPGP в вывод gpg --export-secret-key YOURMASTERKEYID | gpg --list-packets).
    • Дополнительно Изменить пароль защиты подразделов: gpg --edit-key YOURMASTERKEYID passwd. (Обратите внимание, что материал закрытого ключа в резервной копии, включая главный закрытый ключ, останется защищенным старой парольной фразой.)

ваш компьютер готов к нормальному использованию.

если вам нужно использовать мастер-ключи, смонтировать зашифрованный USB-накопитель и установить переменную среды GNUPGHOME:

export GNUPGHOME=/media/something
gpg -K

или использовать -- домашний аргумент командной строки:

gpg --home=/media/something -K

последняя команда должна теперь перечислить ваш закрытый ключ с sec, а не sec#.

несколько подразделов на машине против одного подраздела для всех машин

выдержка из раздела Вики. Первоначально отмечено в комментариях. [Перефразируя] и акцент шахты.

одно могло быть уговорено для того чтобы иметь один подраздел в машину так, что вам только будет нужно обменять потенциально скомпрометированный подраздел этой машины. В случае одного раздела, используемое на всех машинах, его нужно обменять на всех машинах [когда один подраздел или подозрении в компрометации].

но это работает только для подписания разделы. Если у вас несколько подразделов шифрования, gpg, как говорят, шифровать только для последнего подраздела шифрования и не для всех известных и не отменено шифрования разделов.

49
отвечен Justin C 2015-03-22 06:54:52
источник

как кто-то, кто также не любит одиночные точки отказа (включая мастер-ключи и особенно пароли), это то, как я бы это сделал. Это позволяет устройствам работать через сеть доверия, сохраняя при этом децентрализованную идентичность.

Я не знаю, если есть уже существующая система для этого, но я думаю, что это, вероятно, может быть scrobbled вместе с хрон и несколько строк на bash.

в этой системе, у вас есть два класса keypair:устройства, пары ключей и таймфрейму пары ключей. One ключей устройства генерируется для пользователя на каждом устройстве и остается на этом устройстве в течение всего срока его службы. A сроки ключей генерируется центральным сервером через регулярные промежутки времени (ежемесячно, ежедневно, ежечасно - зависит от того, насколько параноидальным вы хотите быть). Открытый ключ объявляется публично (сам сервер имеет свою собственную пару ключей устройства для входа), а закрытый ключ распространяется шифруется открытым ключом каждого устройства, которое должно иметь доступ к этому ключу. (Это распределение должно быть как можно более частным, например. устройства подключаются к серверу напрямую.)

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

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

Если устройство украдено или в противном случае скомпрометированы, вы можете использовать еще один из ваших публично доверенных устройств для создания публично подписанного сообщения, подтверждающего вашу личность (любыми средствами, например. отмечая, что вы будете на публичной встрече и/или у вас есть доверенный друг, который проверит вас лично) и отзывает скомпрометированный ключ устройства и любые ключи таймфрейма, к которым он имел доступ. При отзыве ключа украденное устройство также удаляется из списка доверенных устройств сервера (с паролем и доверенным устройством ключевой.)

политика доверяя недавно анонсированное устройство ключи должны следовать чему-то вроде нынешней политики доверия - я считаю, что политика-это верить в генерации сервера, мобильного устройства, а большой и тяжелый прибор, как трудно украсть/захватить пользователя телефон, настольный ПК и VPS в согласованные ограбление до того, как пользователь заметит.

Если ваш сервер взломали, просто отменить его по той же процедуре, описанной для любой другой защиты (возможно, с более сильной политикой, подобной той для добавления нового устройства), и используйте повторно защищенный или полностью новый сервер (с новой парой ключей устройства), идущий вперед.

8
отвечен Stuart P. Bentley 2014-08-02 05:03:35
источник

Другие вопрос gnupg pgp