Должен ли GnuPG устанавливать ключи для каждого профиля имени пользователя?

Я запускаю (на своей локальной машине) версию GPG (wingpg) для командной строки.

Мой логин на win7 - RoyiN. (поэтому у меня есть профиль для этого)

Когда я вошел в систему, я установил ключи (используя PKA.exe) как закрытые, так и открытые.

Все хорошо.

Затем я написал этот код (который работает)

  Process proc = new Process();
  proc.StartInfo.FileName = cfg.PGP_Program_FullPath;
  proc.StartInfo.UserName = "Royin";
  proc.StartInfo.Domain = ...;
  proc.StartInfo.Password = ...
  proc.StartInfo.Verb = "runas";
  proc.Start();
 ...

Однако, если я пишу в поле UserName - другой пользователь, который также является администратором на моей локальной машине - он говорит:

gpg: расшифровка не удалась: нет секретного ключа

Затем я снова переключился на RoyiN, и это сработало.

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

  • Это также означает, что если я хочу разрешить другим подключаться к моему компьютеру, я должен войти в систему с RoiyN 24/7....

Есть ли обходной путь для этого?


person Royi Namir    schedule 26.12.2012    source источник


Ответы (2)


Здесь происходят две разные вещи, связанные с «человеком», запускающим gpg.

  • GPG ищет ключи в файлах набора ключей по умолчанию, которые установлены в каталоге вашего профиля пользователя (в папке с именем .gnupg). Это будет набор файлов типа pubring.gpg и secring.gpg. Эту часть легко обойти: передайте --secret-keyring "path\to\file" в качестве одного из параметров, и он добавит этот файл набора ключей в свой путь поиска. Вы можете сначала переместить его в общедоступное место, например %ALLUSERSPROFILE%.

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

Вам не нужно оставаться в системе, когда вы запускаете gpg, если вы указываете явное место для данных. Просто gpg по умолчанию считывает текущие переменные среды, установленные при входе в систему, чтобы определить, где они находятся.

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

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

person Michael Edenfield    schedule 26.12.2012
comment
Мне просто нужно указать путь для ключей. Не путь + имя_файла... верно? - person Royi Namir; 26.12.2012
comment
большинство опций — это имя файла, например --secret-keyring C:\ProgramData\secring.gpg. --homedir это просто путь. Документация довольно последовательна в правильном использовании файла и каталога по мере необходимости. - person Michael Edenfield; 26.12.2012
comment
2 вопроса пожалуйста. 1) Их несколько. какая линия? i.stack.imgur.com/WgV5g.jpg 2) если я установлю новый ключ, должен ли я снова скопировать *.gpg в общую папку? - person Royi Namir; 26.12.2012
comment
1. Вам нужны 3 файла; Я думаю, вам нужны первые 3 (и я почти уверен, что вторые 3 - это просто ссылки на первые). 2. Да, если вы измените какие-либо из своих связок ключей, вам потребуется обновить общие копии. - person Michael Edenfield; 27.12.2012

Да, они устанавливаются для каждого пользователя

Простой ответ - просто экспортируйте пару закрытый/открытый ключ и установите ее также для учетной записи администратора.

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

person DarkWanderer    schedule 26.12.2012
comment
А как насчет выпуска 24/7? - person Royi Namir; 26.12.2012
comment
Будет исправлено, так как приложение теперь будет работать с учетной записью администратора. Только не забудьте добавить параметр --batch (IIRC), чтобы заставить gpg работать в неинтерактивном режиме. - person DarkWanderer; 26.12.2012