GPG в недружественной среде
Здравствуйте!
Вопрос: Имеет ли возможность отправитель данных узнать сессионный ключ в самом банальном случае
gpg -e -r someoneelse somedata
с целью уличить получателя gpg сообщения в нечестности, если он "отказывается" расшифровывать ваше сообщение, под предлогом "испорченности сообщения".
Спасибо!
комментариев: 11558 документов: 1036 редакций: 4118
К сожалению, такой вариант не подходит, так как в данном gpg используется как анонимизатор. Чуть подробнее: хочется придумать процедуру апелляции для системы анонимного опроса мнений, построенной
на стандартных функциях gpg. Нежелательна генерация нового ключа исключительно с целью пересылки единственного сообщения, к тому же это невозможно сделать в batch-mode.
Упрощенно система выглядит следующим образом:
Отправитель берет 2 публичных ключа: key1, key2, составляет сообщение
[[[message]crypted_key2]crypted_key1]signed_user
и отправляет на host1.
host1 аккумулирует, авторизует, расшифровывает и передает набор сообщений от всех пользователей на host2
{[message]crypted_key2}->host2.
host2 расшифровывает и производит подсчет.
Требуется процедура апелляции, на случай если host1 или host2 отказываются расшифровать сообщение.
Ограничения на систему:
Максимальная простота использования для отправителей (*).
Поэтому следующий вопрос:
правильно ли я понимаю, что Symmetric Ciphers, не работают в batch mode?
как написать скрипт который скормит им passphrases, или их нужно обязательно вводить вручную?
(что нежелательно по причине *)
комментариев: 11558 документов: 1036 редакций: 4118
Вторая половина фразы не соответствует действительности.
Целых три варианта (помимо ручного ввода):
Тогда еще один вопрос, состоящий из двух:
1. для некоторого сообщества, регулярно участвующих в опросах, хочется поставить "локальный"
кей-сервер с веб интерфейсом, то есть такой в который авторизованные ключи можно было бы добавлять руками, а возвращать через веб. Другими словами как сделать видимым public-key-ring на host1 через веб? Наверное, есть удобная реализация?
2. Насколько скомпрометирована (идентифицируема) будет личность отправителя если сообщение закриптовано комбинацией опций
gpg -e --default-recipient-self --hidden-recipient key2 message
при условии доступности информации с public-key-ring
комментариев: 11558 документов: 1036 редакций: 4118
Либо полноценный SKS, либо писать собственную веб-морду с бэк-эндом в виде GPG (примерно как сделано на нашем сайте). Вероятно, второй вариант Вам больше подойдёт.
Она будет скомпрометирована полностью, т.к. --default-recipient-self впишет в пакет сообщения его собственный keyID. Вместо --default-recipient-self используйте в данном случае --hidden-encrypt-to senderKeyID.
Вообще в Вашем случае желательно проверять, какие метаданные утекают через поля OpenPGP-пакетов. /Сервисы/PacketDump Вам в помощь.
комментариев: 9796 документов: 488 редакций: 5664
Незнакомцу, кажется в Вашей реплике сквозит сарказм, но все равно спасибо за ссылки. Если же Вы к тому же потрудились прочитать, что написано по второй, то должны были поразиться необычайной глубине криптографической мысли авторов, которая позволила им обойти ими же идентифицированную проблему дупликатов голосов:
The ballots replayed in this attack can be identified by checking for duplicates, and these ballots can be rejected.
комментариев: 11558 документов: 1036 редакций: 4118
Генерируется сеансовый ключ, который зашифровывается открытым ключом получателя. Подумайте, каким образом отправитель теперь может восстановить этот сеансовый ключ, не имея доступа к закрытому ключу получателя? Мы же говорим об асимметричном шифровании, это односторонняя функция.
комментариев: 11558 документов: 1036 редакций: 4118
Ну вот никто как бы не мешает этому самому "недружественному отправителю данных" пропатчить свою gpg так, чтобы всегда иметь на руках сессионный ключ. Получатель данных (адресат) при этом ничего даже не заподозрит (стандарт будет полностью соблюдён), пока в момент X отправитель ВНЕЗАПНО не предъявит сессионный ключ.
P.S.: Такой ответ, имхо, уточняет SATtva'овский, если я правильно тут всех понял.