
Я тестировал ключи GPG и изучал изменения ключей при добавлении/удалении пользователей на ключе. Если я добавляю пользователяЭлиспри генерации ключа. Я экспортирую открытый и закрытый ключ пары ключей. А затем добавляю пользователяБобна тот же ключ. И наконец экспортируйте тот же ключ, за исключениемБобдобавлен как пользователь. Затем я сравниваюЭлисиЭлис/БобКлючи.Элисоткрытый ключ имеет огромный кусок, похожий наЭлис/Боботкрытые ключи и также имеет несколько отличий во многих местах.Элис/Боботкрытый ключ значительно длиннее, чемЭлисkey. Я заметил, что то же самое относится и к закрытым ключам. Что мне кажется интересным, так это то, что если я шифрую с помощьюЭлисОткрытый ключ и расшифруйте с помощьюЭлис/Бобзакрытый ключ, я получаю то же самое сообщение.
Вот какие у меня есть вопросы:
- Влияет ли адрес электронной почты/идентификатор пользователя на открытый и закрытый ключ?
- Можно ли извлечь идентификатор пользователя из открытого ключа? Если да, то как это работает?
- Как работает шифрование сЭлиси расшифровка сЭлис/Бобработа?
- Используется ли определенная часть каждого ключа для шифрования/дешифрования, а другие части оставлены для идентификатора пользователя и адресов электронной почты?
решение1
А затем добавьте пользователя Bob к тому же ключу.
Самое главное, что «идентификаторы пользователей» ключей PGP предназначены не для этого.
Идентификаторы пользователей — это всего лишь метки.Их нельзя использовать для контроля доступа любого рода – они только информируют других о владельце ключа. Должен быть только один владелец ключа, и все идентификаторы пользователей на одном ключе должны описывать одно и то же лицо.
(Причина, по которой вы можете добавить несколько идентификаторов пользователей, заключается в том, что у одного и того же человека может быть несколько адресов электронной почты и даже несколько имен.)
Если несколько человек должны использовать PGP, каждый из них должен создать свои индивидуальные ключи. Затем вы перечислите все их ключи при шифровании (например, используйте несколько --recipient
вариантов).
- Как работает шифрование с Алисой и расшифровка с Алисой/Бобом?
Когда вы добавляете второй идентификатор пользователя, это по сути тот же самый материал ключа RSA, вы только изменили этикетку, которая на нем написана. Идентификаторы пользователей не предназначены для контроля доступа.
- Влияет ли адрес электронной почты/идентификатор пользователя на открытый и закрытый ключ?
- Можно ли извлечь идентификатор пользователя из открытого ключа? Если да, то как это работает?
- Используется ли определенная часть каждого ключа для шифрования/дешифрования, а другие части оставлены для идентификатора пользователя и адресов электронной почты?
Когда вы говорите о «открытых ключах» и «закрытых ключах» в PGP, этонеобычно подразумевают только необработанные данные открытого ключа (например, только параметры RSA), как это происходит в некоторых других системах. Вместо этого, то, что вы на самом деле получаете от gpg --export
OpenPGPблок клавишилисертификатсодержащий открытые ключи вместе с различными метаданными (идентификаторами пользователей, подписями и т. д.).
Таким образом, когда вы добавляете идентификатор пользователя, это на самом деле не изменяет фактические параметры ключа — он добавляется как пакет метаданных рядом с пакетом открытого ключа.
И когда люди делятся своими "открытыми ключами PGP", они делятся всем пакетом ключей и метаданных как единым целым. В целом вся идея очень похожа на сертификаты X.509, которые имеют поле "Тема" рядом с самим ключом.
Для отображения экспортированных данных в текстовом формате можно использовать такие инструменты, как pgpdump
или .gpg --list-packets