Я спрашиваю о передовой практике генерации, использования и управления ключами.
Несколько раз и по разным причинам я создавал ключи SSH и GnuPG, находясь под SSH-подключением к удаленному многопользовательскому серверу на работе (и к моему настольному компьютеру на работе из дома).
Пока я набирал пароли для своих новых сгенерированных ключей, меня осенило, что я не контролирую машину, на которой я вошел, или промежуточную ссылку. Я вроде как доверяю системным администраторам на работе, и SSH безопасен, но тем не менее... было странно отправлять свои новые пароли по ссылке таким образом.
Что вы думаете? Разумнее ли генерировать ключи (SSH, GnuPG или другие) локально, а затем передавать закрытые ключи по SSH, или я просто параноик по поводу всего этого?
Кроме того, если я прав, что я немного параноик, что вы думаете о том, где хранить закрытые ключи? Должны ли они все быть в одном физическом месте? Должен ли я активно использовать gpg-agent
и ssh-agent
всегда?
Я работаю с двух отдельных машин, подключаясь к нескольким отдельным многопользовательским серверам, используя SSH для работы. Я подписываю коммиты Git с помощью GnuPG примерно из четырех мест (локально и удаленно).
Я работаю на машинах с Mac OS X (с MacPorts) и Linux (с Pkgsrc), но всегда в командной строке.
решение1
Что вы думаете? Разумнее ли генерировать ключи (SSH, GnuPG или другие) локально, а затем передавать закрытые ключи по SSH, или я просто параноик по поводу всего этого?
На самом деле это не имеет значения, по крайней мере, если системные администраторы не вмешивались в программный стек (но зачем им это делать, если они все равно завладели закрытыми ключами?).
Пока закрытый ключ находится на удаленной машине, естьнет разницыкак он туда попал. Системные администраторы могут иметь к нему доступ. Парольная фраза также только добавит дополнительных усилий для получения ключей, поскольку они также могут получить доступ к вашим входным данным.
Кроме того, если я прав, будучи немного параноидальным, что вы думаете о том, где хранить закрытые ключи? Должны ли они все быть в одном физическом месте? Должен ли я всегда активно использовать gpg-agent и ssh-agent?
Это зависит от ваших требований, уровня параноидности, доверия к системным администраторам и, наконец, использования ключа.
Если вам нужен частныйSSHключ на машине для доступа к некоторым сервисам (например, GitHub), просто сгенерируйте новый, который будет использоваться только на этой машине и приниматься только для аутентификации на необходимых сервисах/машинах.
КасательноOpenPGP/GnuPG, все зависит от ваших требований. Кажется, вы хотите подписывать программное обеспечение, и у меня такое чувство, что это происходит для вашей компании. Если ключ напрямую связан с компанией и создан только для этой цели, я не вижу никаких возражений против того, чтобы не иметь его на их машинах.
Если вам по каким-либо причинам нужно использовать свой собственный ключ, создайте подключ, который вы сможете по крайней мере ограничить подписью и отозвать в любое время без проблем. Использование подключей — это хорошая практика, в любом случае! Многие опытные пользователи OpenPGP на самом деле хранят свои закрытые первичные ключи в автономном режиме и используют их только для управления ключами.
Пересылка gpg-agent
сокета кажется вполне возможной, и, конечно, сократит доступ системного администратора к ключу (у них больше нет доступа к полному ключу, но они могут только использовать его, по крайней мере, начиная с GnuPG 2.1, который удалилвсеоперации с закрытым ключом для агента).