Я новичок в использовании GnuPG и пытаюсь понять, как лучше его использовать. Я рассмотрел краткое, простое для понимания объяснение GPG / PGP для нетехнических людей? , но большинство руководств объясняет PGP с точки зрения одной машины.
Я хочу использовать GnuPG на трех вычислительных устройствах: ПК с Linux, ноутбуке с Linux и телефоне на Android.
Основной вариант использования - шифрование / дешифрование электронной почты, управляемой службой IMAP, поэтому для расшифровки всем устройствам необходим один и тот же закрытый ключ.
Я полагаю, что мой выбор:
Просто скопируйте все мои ключи в связку ключей на каждом устройстве и в основном полагайтесь на пароль закрытого ключа для защиты.
Создайте мастер-ключ (с --gen-key) для представления моей личности, затем создайте отдельный одноразовый ключ (снова с --gen-key) для шифрования / дешифрования писем и подписанный с помощью мастер-ключа. Первый находится только на моем ПК, последний распространяется на каждое устройство. Пока мои мобильные устройства не взломаны, одноразовый ключ остается в силе.
Я могу быть излишне параноиком и усложнять это, чем это должно быть, но, пожалуйста, пошутите. Я верю, чтобы не класть все яйца в одну корзину.
Главный ключ должен быть моей цифровой идентификацией. Много сил будет потрачено на создание доверия вокруг этой личности, и я скорее перенесу неудобства из-за моей паранойи, чем потеряю свой ключ от небрежности и придется строить доверие вокруг нового мастер-ключа (возможно, это не так плохо, как я думаю, но я новичок в этом) .
Я с большей вероятностью потеряю свой ноутбук или телефон, чем мой компьютер. Если потеря == компромисс, я бы предпочел потерять одноразовую пару ключей (которую я могу отозвать), чем мою главную пару ключей. Я всегда могу даровать доверие моего мастер-ключа к новому одноразовому ключу.
Извините за действительно длинный вопрос. :-)
TL; DR
Является ли пароль достаточной защитой для хранения моего главного закрытого ключа на нескольких устройствах?
Возможен ли мой план по варианту № 2? Я что-то не так понял или можно улучшить?
Если вариант № 2 является плохой идеей, то каковы лучшие практики при использовании GnuPG для одного пользователя на нескольких устройствах?
Как человек, которому также не нравятся отдельные точки отказа (включая мастер-ключи и особенно пароли), я бы так и сделал. Это позволяет устройствам работать через сеть доверия, в то же время позволяя децентрализованную идентификацию.
Я не знаю, существует ли уже существующая система для этого, но я думаю, что она, вероятно, может быть уничтожена вместе с работой cron и несколькими строками Bash.
В этой системе у вас есть два класса пар ключей: пары устройств и таймфреймы . Одна пара ключей устройства создается для пользователя на каждом устройстве и остается на этом устройстве в течение всего срока его службы. Таймфрейм пара ключей генерируется центральным сервером в обычных интервалах (ежемесячно, ежедневно, ежечасно - зависит от того, как параноик вы хотите быть). Открытый ключ объявляется публично (сам сервер имеет собственную пару ключей устройства для подписи), а закрытый ключ распространяется в зашифрованном виде с открытым ключом каждого устройства, которое должно иметь доступ к этому ключу. (Этот дистрибутив должен быть как можно более приватным, например, с подключением устройств к серверу напрямую.)
Для подписи сообщений вы должны использовать ключ устройства, с которого вы отправляете сообщение. Если кто-то хочет отправить вам сообщение, он может подписать его вашим текущим открытым ключом таймфрейма. (У них должна быть автоматизированная система, чтобы не отставать от объявлений.) Затем вы можете прочитать их сообщение с любого устройства.
Для чтения старых зашифрованных сообщений резервные копии ключей старшего таймфрейма резервируются на каждом устройстве в соответствии с соответствующей стратегией (включая сервер генерации пар ключей таймфрейма, если вы этого хотите - опять же, в зависимости от вашего уровня паранойи), где у вас есть другой набор пар ключей, защищенных паролем, которые защищают старые ключи (со сколь угодно большим количеством паролей с течением времени, если вам удобно помнить).
Если устройство было украдено или иным образом взломано, вы можете использовать другое одно из ваших публично доверенных устройств для создания публично подписанного сообщения, удостоверяющего вашу личность (любыми средствами, например, с указанием, что вы будете на публичной встрече и / или наличие доверенного друга, проверяющего вас лично) и отзыв ключа скомпрометированного устройства и любых ключей таймфрейма, к которым у него был доступ. При отзыве ключа вы также удаляете украденное устройство из списка доверенных устройств на сервере (с паролем и ключом доверенного устройства).
Политика доверия к недавно объявленным ключам устройства должна соответствовать что-то вроде текущей политики доверия. Я считаю, что подходящая политика - это доверие к генерирующему серверу, мобильному устройству и большому и тяжелому устройству, так как его трудно украсть / проникнуть. телефон пользователя, настольный ПК и VPS в согласованном ограблении, прежде чем пользователь заметит.
Если ваш сервер скомпрометирован, вы просто отозваете его по той же процедуре, которая описана для любого другого скомпрометированного устройства (возможно, с более строгой политикой, аналогичной политике добавления нового устройства), и используете повторно защищенный или вообще новый сервер (с новая пара ключей устройства) идет вперед.
источник