загрузить ключ pgp автоматически

Я хочу загрузить ключ pgp с сервера ключей автоматически, используя gpg следующим образом:

    gpg --searchkey [email protected]

gpg дает мне этот результат.

    gpg: searching for "[email protected]" from hkp server pool.sks-keyservers.net
    (1)     <[email protected]>
              2048 bit RSA key 2F5E71CD, created: 2015-02-17
    Keys 1-1 of 1 for "[email protected]".  Enter number(s), N)ext, or Q)uit > 

Если я хочу добавить этот ключ в свою связку ключей, мне нужно нажать «1» и ENTER.

Мой Вопрос: есть ли способ всегда автоматически вставлять первый найденный ключ с сервера ключей в мою связку ключей? Потому что, если я хочу сделать это примерно с 200 адресами, было бы неплохо, если бы я мог импортировать их с помощью скрипта, не сидя рядом с компьютером и постоянно нажимая «1» и Enter.

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


person Ulli    schedule 17.02.2015    source источник


Ответы (1)


Не используйте почтовые адреса для поиска ключей при написании скриптов. Каждый может загружать ключи с произвольными идентификаторами пользователей., ключевые серверы вообще ничего не проверять. Можно даже вычислить коллизии идентификаторов коротких ключей< /а>. Доверие произвольным ключам на серверах ключей создает очень, очень опасное ложное предположение о безопасности.

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

Чтобы загрузить список отпечатков пальцев, используйте что-то вроде

gpg --recv-keys \
  0D69E11F12BDBA077B3726AB4E1F799AA4FF2279 \
  4AC1999F0BA293E8960AF2DA428C3085AF19CFE9 \
  ...

(как вариант, удалите обратную косую черту и поместите все в одну строку)

Чтобы просто получить все ключи и подтвердить доверие другим способом (например, через сеть доверия, но не забудьте сделать это), вам нужно написать сценарий вокруг GnuPG. . Вот пример сценария, первоначально размещенный на security.SE, который берет файл, содержащий по одному почтовому адресу в строке, и извлекает все соответствующие ключи:

#!/bin/sh
while read line
do
    gpg --with-colons --batch --search $line 2>/dev/null | \
    awk 'BEGIN { FS = ":" };  $1=="pub" { print $2 }' | \
    xargs gpg --recv-keys
done < $1
person Jens Erat    schedule 17.02.2015
comment
спасибо за ваш ответ, но это не отвечает на мой вопрос. хорошо, если у меня есть список отпечатков пальцев, это легко, но я хочу импортировать, если я не знаю отпечаток пальца автоматически, и проверить отпечатки позже. - person Ulli; 18.02.2015
comment
Для этого вам придется написать сценарий для GnuPG. Я добавил несколько строк из ответа, который я разместил в качестве ответа на другой вопрос на security.SE. - person Jens Erat; 18.02.2015