Проект "Свободные голосования"

Электронная системы голосований через интернет
Текущее время: 10 ноя 2024, 23:19

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 28 июн 2011, 15:22 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
Одно время назад я отметил что в результатах голосования должны выдаваться результаты по каждому учтенному голосу. Независимо от делегирования. Т.е. все, кто отдал свои голоса определенному делегату, указываются в списке каждый отдельной строкой. Нигде не должно показываться что вот этот голос учтен через делегата, а вон тот - напрямую.

Кроме того, я предполагал что при открытом голосовании списки будут выглядеть примерно как:
ФИО, голос, персональная подпись ФИО

Однако, я только сейчас сообразил, что при голосовании через делегата у делегата нет возможности сформировать подпись пользователя для нужной строки. Если он там будет ставить свою подпись, тогда сразу откроется информация по количеству голосов у делегата. Что не есть хорошо. :(

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июн 2011, 15:33 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
Так... А если использовать вот такой механизм...

Все голоса подписываются двумя подписями - системной + персональной подписью голосующего.

Если идет прямое голосование, то ставятся сразу обе подписи.

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

Вариант несколько корявый, но я пока других не вижу. Тут придется разбирать две особых ситуации:
- что делать, если пользователь в течении длительного времени не подписывает результаты своих голосований через делегата;
- что делать, если пользователь отзывает свой голос по результатам данного голосования через делегата;

Кроме того, отсутствие персональной подписи у большого количества голосов может поставить под сомнение общие результаты голосований.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июн 2011, 15:44 
Не в сети

Зарегистрирован: 23 июн 2011, 22:52
Сообщения: 39
а почему не достаточно всего одной подписи системы в обоих случаях? пользователь авторизован и система может ставить подпись за него


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 июн 2011, 15:57 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
kuklagan писал(а):
а почему не достаточно всего одной подписи системы в обоих случаях? пользователь авторизован и система может ставить подпись за него

Ее недостаточно, т.к. тогда любой злоумышленник проникший в систему и получивший в доступ ЭЦП системы, полностью скомпрометирует всю систему.

При наличии персональных ЭЦП, секретные ключи которых недоступны из системы, их использование очень сильно ограничивает возможность что-то подделать изнутри системы.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 июн 2011, 12:43 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
Пока придумал только один способ как выводить "списке голосовавших" пользователей, за которых голосовал делегат.

При делегировании параллельно самой передаче голоса делегату передается некая "расписка" в том что данный пользователь делегирует свой голос по такому-то субъекту голосования с такого-то числа + координаты для связи с пользователем. Без указания делегата! И ссылка на эту записку с подписью выводится вместо подписи самого пользователя в его строке в "списке проголосовавших". Таким образом, у любого сохранится возможность связаться с данным пользователем что-бы он проверил так-ли голосовал его делегат как указано в "списке результатов" для данного пользователя.

Только теперь возникает следующая проблема...
Проверить как голосовал его делегат, пользователь сможет нормально. Но, т.к. он сам не генерировал одноразовый код для своей идентификации в списке результатов, возникает проблема манипуляции этими кодами которую я уже описывал. :(

Хотя...
Пользователь может заранее нагенерировать такие коды и подписать их своей подписью. И при голосовании следующий код по порядку будет использоваться для очередного голосования. При приблежении к концу списка нагенерированных кодов пользователю может уходить предупрежденине что нужно пополнить их список.

Нужно продумать не скрывается-ли в таком варианте каких-то подводных камней.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 окт 2011, 20:00 
Не в сети

Зарегистрирован: 29 окт 2011, 18:41
Сообщения: 27
Первый вопрос: эта проблема уже решена? Давно не было комментариев.

Последний вариант мне не нравится тем, что делегат знает своих доверителей.

Я пытаюсь въехать в тему. Пожалуйста, скажите, верны ли мои рассуждения.

Является ли информация о делегированиях приватной? Да, во избежание возможности "покупки" голосов, это было бы полезно.

Хранит ли система информацию о том, что X делегирует свой голос Y? Нет, потому что в случае взлома все узнают эту информацию.

В итоге, я вижу единственный способ реализации делегирований: делегат, как Шан Тсунг, поглощает голоса своих доверителей и в момент голосования их освобождает, тем самым показывая системе, какой вес он имеет.

Пусть X хочет делегировать свой голос Y:
1. X подписывает сообщение "Я делегировал свой голос с даты D1 до даты D2" и публикует его
2. X посылает системе запрос "хочу делегировать голос пользователю Y - см. опубликованное сообщение"
3. Система проверяет, если X уже делегировал свой голос в период с D1 до D2, дает ошибку
4. Система проверяет, если дата D1 отличается от текущей более, чем на минуту, дает ошибку
5. Система создает билет (ID билета, ID пользователя Y, дата D1, дата D2)
6. Система подписывает билет публикует его

Далее, при голосовании блокируются запросы X, подсчитываются все билеты пользователя Y и добавляются к его голосу.

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

Недостатки:
1. Нельзя составить список (ФИО, голос, подпись). Но но мой взгляд, это не критично
2. Нельзя в любой момент вернуть свой голос обратно. Эту проблему частично решает D2
3. По датам D1 и D2 простыми сравнениями можно догадаться, кто кому делегировал свой голос. Для решения этой проблемы можно немного сдвинуть даты в билете на случайную величину до 5 минут в каждом направлении

Прошу прощения, если это полный бред - у меня нет большой практики в плане криптографии.

P.S. Вот еще что надо продумать: в случае ошибки в п.3 и п.4 нужно откатить п.1. Как обеспечить транзакционность? Доверить публикацию и сообщения, и билета серверу?


Последний раз редактировалось enepomnyaschih 29 окт 2011, 21:07, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 окт 2011, 20:47 
Не в сети

Зарегистрирован: 19 июл 2011, 19:26
Сообщения: 1494
Ответе в начале на вопрос: Зачем вообще нужно делегирование? Чем Вас не устраивает вариант при котором голосующий читает мнение эксперта и голосует согласно этому мнению.

_________________
89DC B598 306B 26C8 B9AA 5C0C CFB6 7184 B2B2 FF17


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 окт 2011, 21:01 
Не в сети

Зарегистрирован: 29 окт 2011, 18:41
Сообщения: 27
75% считают, что делегирование нужно viewtopic.php?f=3&t=54

Если есть еще вопросы идеологического плана, прошу вынести это за пределы данного технического топика.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 окт 2011, 21:10 
Не в сети

Зарегистрирован: 19 июл 2011, 19:26
Сообщения: 1494
Отписался тут viewtopic.php?f=3&t=252

_________________
89DC B598 306B 26C8 B9AA 5C0C CFB6 7184 B2B2 FF17


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 окт 2011, 21:13 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
Сергей писал(а):
Ответе в начале на вопрос: Зачем вообще нужно делегирование? Чем Вас не устраивает вариант при котором голосующий читает мнение эксперта и голосует согласно этому мнению.

Вообще, это самый лучший вариант. Я-бы выбрал его. Но тем не менее, многие считают что делегирование должно быть в возможностях системы. В том числе и неограниченное.

Цитата:
Первый вопрос: эта проблема уже решена? Давно не было комментариев.

Нет, пока не решена.

На самом деле, у делегирования есть некоторые принципиальные проблемы с декларированными ранее требованиями. Например, если принять требование что количество имеющихся у делегата голосов должно быть тайным и для всех и для самого делегата, такая система возможна только если использовать принцип "голосовать как тот". В данном случае проблема заключается в том (я так понимаю, сейчас выбрана именно такая модель всех голосований), что в голосовании невозможно узнать выбор кого-либо до окончания голосования.

Цитата:
Последний вариант мне не нравится тем, что делегат знает своих доверителей.


Да, если делать доверение голоса, то делегат будет знать количество имеющихся у него голосов. С другой стороны, любой из предварительно доверивших ему свой голос может проголосовать и самостоятельно. И такой голос, естественно, будет более весомым.

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

Пока я не вижу сколь-нибудь полноценного решения проблемы делегирования.

Цитата:
3. Система проверяет...

Не забывайте что у нас нет абстрактной "системы". У нас есть клиенты у конкретных пользователей. Лучше рассуждать в терминах "Клиент пользователя Х то-то...". Если это учитывать, то описанный вами принцип делегирования не совсем понятен.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB