А как получить инфу о чужом ключе шифрования?
Иногда приходят письма, зашифрованные чужими ключами, и чтобы разобраться, необходимо хоть какая-то инфа об этих ключах, так как плагин к Outlook просто говорит, что ключ неизвестен. Юзаю PGP Desktop 8.03
В разделе Ссылки есть онлайн-служба PGPdump. Вставьте в её форму материал шифртекста, отметьте нужные опции, и она раскодирует OpenPGP-пакет Radix-64, показывая ID ключей, которыми зашифрован сеансовый симметричный ключ.
Что-то я не так наверное делаю, но иды все в дампе не те. Специально с известными ключами смотрел.
Flyer, скопируйте сюда декодировку Дампа. Можете отредактировать значения переменных (в разумных пределах), если не хотите реальные параметры раскрывать.
Old: Marker Packet(tag 10)(3 bytes)
Key ID – 0x28CAF32FF42C5C2B
Pub alg – ElGamal Encrypt-Only(pub 16)
ElGamal g^k mod p(2048 bits) – ...
ElGamal m * y^k mod p(2048 bits) – ...
Key ID – 0x94DE18B880A6267A
Pub alg – ElGamal Encrypt-Only(pub 16)
ElGamal g^k mod p(2046 bits) – ...
ElGamal m * y^k mod p(2048 bits) – ...
Да, действительно... Особенность формата ключей v4 (DH/DSS и RSA) состоит в том, что они представляют собой базовый ключ подписания + один или несколько подключей шифрования. Дамп шифртекста показывает именно ID подключей шифрования, которые PGP текущих версий просмотреть не позволяет, показывая только ID базового ключа подписания. Таким образом воспользуйтесь GnuPG, чтобы определить, к какому ключу относятся отмеченные в Дампе подключи (по последним восьми символам ID, показанных в Дампе).
Добавлено:
Разумеется, обнаружить конкретную ключевую пару, для которой производилось зашифрование, удастся только в том случае, если соответствующий открытый с подключами присутствует на Вашей связке.
Когда открытый ключ с подключами на связке, то проблем итак нет. Я вижу какими ключами зашифровано. Но класть себе на связку ради этого несколько тысяч ключей....
А что мне даст в данном случае GnuPG?
Разумно... :) GnuPG не даст ничего сверх этого. Пакет шифртекста несёт только ID подключей шифрования. Программа (PGP, GnuPG или иная OpenPGP-совместимая) проверяет связку на наличие соответствующих подключей и, при их нахождении, всесто Unknown key показывает имя сертификата базового ключа. Таким образом, не имея базового ключа со всеми подключами установить, кому предназначено данное сообщение только по материалу пакета OpenPGP будет весьма затруднительно.
:(
Flyer, попробовал я на досуге интересующие Вас ключи поискать (вспомнила голова садовая, что новые http-депозитарии, например, http://subkeys.pgp.net:11371/, позволяют производить поиск по ID подключей), но и это ни к чему не привело. Либо ключи вовсе не загружались на сервер, либо загружались только на ldap://keyserver.pgp.com, а он не допускает поиск по подключам и к тому же не реплицирует свою базу на другие общественные серверы, либо Вы изменили последние 32 бита ID подключей специально, чтобы я их не нашёл. :)
SATtva, все проще, эти ключи никогда в инет и не выкладывались, а лежат только на нашем корпоративном сервере ключей. По иду я там тоже искать могу, но таких там и близко нет.
Flyer, потому что это ID подключей. PGP Keyserver по этим ID поиск не производит, такой функциональностью лишь некоторые общественные серверы (PKS) обладают. Но уж если очень надо, можно все ключи на одну связку загнать да при помощи GnuPG проверить. Тем более, если Вы сервер администрируете. Для закрытой среды я вообще никаких сложностей не вижу...
Если я все ключи загоню на связку, то мне и GnuPGP не понадобиться, но это же гиммор. Ключей несколько тысяч, постоянно добавялются.
А что значит ID подключей?
Flyer, если Вы ключи загоните на связку GnuPG Вам понадобится! Я выше (Вс, 08 Фев 2004, 18:10) уже объяснял, что PGP не позволяет просмотреть ID подключей шифрования, показывая только ID базового ключа подписания. Отсюда и вся проблема данного топика.
Если бы Вы ещё объяснили, зачем нужна вся эта головная боль, быть может, смог ещё что-нибудь порекомендовать. Пока же альтернатив поиску среди всех подключей с помощью GnuPG я не вижу.
А не проще ли было бы просто спросить автора, кому сообщение предназначено? Или по логам сервера отследить. Вы ведь, я так понимаю, системный администратор организации?
Я так и не понял, зачем мне нужен GnuPGP, при наличии ключа на связке, я итак вижу при попытке расшифровать сообщение, какими ключами оно зашифровано.
Подобная головная боль периодически возникает, когда происходит путаница с почтовыми адресами и генерится несколько одинаковых ключей. Для отправителя это все прозрачно, и если это какой-нить бухгалтер, который к тому же сидит в другом горорде...
А что можно отследить в данном случае по логам, если ключ лежит на связке юзера, который отправляет письмо?
А можно немного подробнее про базовый ключ подписания и подключи шифрования?
Что-то мудрю я... :? Всё верно.
Формируйте с помощью PGPadmin собственный инсталлятор, вшивайте в него Designated Revoker и ADK, делите последние на несколько частей, и многих проблем можно будет избежать.
Ключи DH/DSS (и новые RSA v4, не RSA Legacy v3) фактически состоят из одного ключа подписания DSA, называемого базовым ключом подписания, и одного или несколький ключей Эльгамаля, называемых подключами шифрования. Не путайте это с открытыми и закрытыми ключами: каждый открытым и каждый закрытый ключ имеют соответствующие части ключей подписания и ключей шифрования. Вся эта ерунда решает несколько задач: во-первых, снижает ущерб от возможной компрометации одного из ключей, во-вторых, позволяет заменять ключи подписания (даже в рулеточном режиме, что на порядки повышает стойкость) без нужды жертвовать собранными на ключе сертифицирующими подписями. ID ключа, демонстрируемый PGP — это ID ключа подписания. Но каждый шифровальный подключ имеет свой ID, а их-то PGP и не показывает, такой функциональностью обладает GnuPG. ID ключей в дампе шифртекста — это ID шифровальных подключей, поскольку именно они зашифровывают симметричный сеансовый ключ. ID ключа подписания будет показан только в дампе цифровой подписи. Вот так вкратце...
Все так и сделано, но в данном случае это никак не помогает. Я конечно, имея ADK могу расшифровать это сообщение, но узнать кому еще оно зашифровано не могу.
И еще вопрос не в тему, а как делить ADK на несколько частей?
Смотрите Руководство, Управление ключами, Разделение ключа.