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

Когда я подписываю документ, я могу выбрать секретный ключ для использования, например, как это:

gpg --default-key=BF8C1203 --clearsign message.txt

Когда я проверяю документ, я не вижу эту опцию, я могу просто сделать:

gpg --verify message.txt.asc

Как GPG знает что открытый ключ использовать для проверки? Существует ли способ сказать этому использовать другой открытый ключ?

2
задан 1 June 2018 в 17:05

1 ответ

gpg проверяет подпись по всем открытым ключам, которые Вы имеете.

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

Если файл подписывается мной, и у Вас нет моего открытого ключа, то gpg не может проверить мою подпись, пока Вы не загружаете мой открытый ключ с репозитория с открытым ключом как https://pgp.mit.edu/

Более подробное объяснение ниже от https://security.stackexchange.com/questions/82490/when-signing-email-with-gpg-how-does-verification-by-the-receiver-work

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

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

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

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

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

Надеюсь, это поможет

4
ответ дан 2 December 2019 в 02:13

Другие вопросы по тегам:

Похожие вопросы: