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

Электронная системы голосований через интернет
Текущее время: 28 апр 2024, 13:08

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




Начать новую тему Ответить на тему  [ Сообщений: 45 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 29 авг 2011, 16:55 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
Ваш вариант отличается от моего наличием одноразового идентификатора, и случайных данных при шифровании подтверждения. Впрочем, он мне нравится.

Далее id записи - автоинкрементный счетчик.
ps: Зачем одноразовый идентификатор? Почему не отдавать пользователю id его записи в БД.
pps: Для поиска своего варианта можно хранить локально 'data' или отдавать id записи.


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

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


Это не случайные данные - это зашифрованный одноразовый идентификатор пользователя.

yurial писал(а):
Далее id записи - автоинкрементный счетчик.
ps: Зачем одноразовый идентификатор? Почему не отдавать пользователю id его записи в БД.
pps: Для поиска своего варианта можно хранить локально 'data' или отдавать id записи.


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

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


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

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
Согласен, а с типом этого случайного идентификатора уже определились? Могу предложить хранить hash от UUID.


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

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
yurial писал(а):
Согласен, а с типом этого случайного идентификатора уже определились? Могу предложить хранить hash от UUID.

Сразу видно специалиста. :) Именно он и хранится.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


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

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
Меня мучает еще один вопрос касающийся тайного голосования:
возможно ли сделать систему которая бы исключала вброс голосов?
То есть ведя таблицу проголосовавших мы можем выявить, что голосов в списке больше, чем проголосовавших - был вброс, но как мы можем выявить какие именно голоса были вброшены? На данный момент я так полагаю этот вопрос остается не решенным.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2011, 22:41 
Не в сети

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

Эта проблема легко решается снижением анонимности. Пусть даже не в БД, а передачей голоса вместе с подписью. Но тогда перехват трафика может открыть эти голоса.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2011, 22:53 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
Думаю тут есть вариант изощрения, правда я его еще не продумал детально. Суть в том чтоб заставить пользователей подписывать голоса друг друга.
То есть:
1) Пользователь "голосует" (формирует данные, далее "голос")
2) В БД проголосовавших заносится запись
3) Голос подписывается владельцем и передается другому участнику;
2) Другой участник проверяет подпись проголосовавшего (она должна присутствовать в таблице голосовавших) и если она валидна:
а) Отбрасывает оригинальную подпись, подписывает своей;
б) Отправляет этот голос в БД.
Таким образом гарантом того, что голос не вброшен выступают сами голосующие. При этом данные раскрываются равномерно. Чем больше участников тем они бесполезнее.


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

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
Даже наверное так: "подписанный голос" шифруется публичным ключом другого пользователя и передается получателю. Дальше все по схеме. Это предотвратит раскрытие информации для третьих лиц и однозначно идентифицирует ответственного за сохранность этого голоса.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2011, 23:22 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
В общем да. Это несколько повысит защиту от вброса, но существенно усложнит саму процедуру голосования.

Есть несколько проблем связанных с таким способом:
1. По какому принципу будет выбираться кто чей голос подписывает?
2. Само это подписание уже означает что о голосе кроме самого голосующего знает кто-то еще. Это уже не тайное голосование. По крайней мере в обычном понимании этого термина.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 авг 2011, 08:19 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
Усилим анонимность еще больше:
Сначала шифрует его голосующий, потом доверенное лицо, потом голосующий снимает шифр и отсылает в БД. Написал абстрактный вариант, потому что пока в голову ничего не пришло.

Выбор доверенного лица: сервер формирует список из n пользователей, голосующий выбирает (можно даже несколько)


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

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


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

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


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

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