Андрей писал(а):
Хочется озвучить ситуацию...
Допустим, проводится тайное голосование. Есть злоумышленник, который не удовлетворяет требованиям субъекта голосований. Он подделывает свой клиент так, что тот отправляет в голосование его голос. На уровне транспортного протокола мы не можем никак запретить отправлять ему свой голос (если только не предусмотрим систему черных списков для этого).
Можно немного усложнить транспортный протокол:
Пакет подписывается не только транспортным ключом узла отправителя, но и транспортным ключом последнего узла входящего в субъект.
Подпись транспортного ключа отправителя используется для определения маршрута пакета. А подпись последнего узла входящего в субъект для определения того, что этот пакет вообще относится к субъекту.
Андрей писал(а):
Получается что даже если пропустить расписку о голосовании и все голсующие увидят что в голосовании принял участие недопущенный к нему пользователь, каким образом можно будет определить зашифрованный пакет с голосом этого злоумышленника? По идее, это можно сделать только проследив все пакеты до источника, т.е. фактически, это будет срыв голосования.
Верно - срыв голосования.
Андрей писал(а):
Получается что для таких случаев нужно предусмотреть "черные списки" на транспортном уровне. Что-бы, если такое получилось у пользователя один раз, больше что-бы он не смог этого сделать. Скорей всего, для этого нужно будет использовать тот-же механизм, который мы предполагаем для системы доверия.
Черные списки не имеет смысла делать по тому же принципу - о нарушении и так узнают все ноды. Поэтому, каждой ноде достаточно локально добавить узел в черный список.
Вообще без модификации которую я описал выше черные списки не имеют смысла - я ведь могу на каждое голосование создавать себе новый ключ, использовать прокси и т.п.