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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Процедура тайного голосования.
СообщениеДобавлено: 14 авг 2011, 15:45 
Не в сети

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

В процедуре тайного голосования нам нужно формировать 2 списка и записывать на сервере зашифрованные данные пользователя.

Списки:
1. Список проголосовавших. В него включается ссылка на пользователя и его подпись данных в которых нет упоминаний сделанного выбора.
2. Список голосов. Здесь для определенного голосования записывается одноразовый код пользователя и его выбор. По одноразовому коду пользователь сможет определить правильно-ли учелся его голос.

Данные пользователя:
1. Записывается, в зашифрованном ключем пользователя виде, одноразовый идентификатор из списка голосов.

Ради оптимальности я реализовал сохранение зашифрованного одноразового кода пользователя в его подписи об участии в голосовании в списке проголосовавших.

Далее начинаются интересные вещи. Мы подходим к технической реализации анонимности на уровне страницы и форм.

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

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

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

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

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

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

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 14 авг 2011, 16:32 
Не в сети

Зарегистрирован: 19 июл 2011, 19:26
Сообщения: 1494
Есть сервис который предоставляет за 1000р в месяц оч. много динамических айпи. блокировка айпи не поможет. В случае атаки необходимо продумать другие меры.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 14 авг 2011, 18:02 
Не в сети

Зарегистрирован: 17 июн 2011, 18:14
Сообщения: 2543
Выход - отказ от части анонимности. По крайней мере технической.

Для избежания такой атаки достаточно передать вместе с анонимной частью идентификатор на подпись. Минус здесь в том, что не передавая его мы избавились-бы от большого количества потенциальных претензий на счет того что мы сохраняем где-то связь между голосом и человеком. Т.к. в текущем варианте такая связь не передается. Если, конечно, не считать IP клиента. Однако, он может быть и динамическим и "серым" - здесь нет однозначной связи.

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 14 авг 2011, 18:28 
Не в сети

Зарегистрирован: 19 июл 2011, 19:26
Сообщения: 1494
думаю надо делать, по лучшему по Вашему мнению варианту. Потом когда в числе участников проекта будет больше технических специалистов, думаю если путем голосования решим изменим порядок, на более продвинутый.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 14 авг 2011, 19:05 
Не в сети

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

_________________
7BF9BDC16428245B55CF04EF4A609CA44E0F6E68


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 14 авг 2011, 19:11 
Не в сети

Зарегистрирован: 19 июл 2011, 19:26
Сообщения: 1494
Согласен

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 26 сен 2011, 15:00 
Не в сети

Зарегистрирован: 24 сен 2011, 23:06
Сообщения: 395
Задам вопрос.

Допустим группа товарисчей договаривается и при помощи нехитрых технических средств отсылает уже неверные сообщения голосования. Затем заявляет о фальсификации. Проводим проверку и, естественно, обнаруживаем несовпадение. Вывод фальсификация на стороне сервера. Как отмываться?

_________________
Во вселенной нет общества в котором "Vox populi, vox Dei" не переводилось бы "О, Боже, как мы в это вляпались".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 26 сен 2011, 15:16 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
Dim писал(а):
Задам вопрос.

Допустим группа товарисчей договаривается и при помощи нехитрых технических средств отсылает уже неверные сообщения голосования. Затем заявляет о фальсификации. Проводим проверку и, естественно, обнаруживаем несовпадение. Вывод фальсификация на стороне сервера. Как отмываться?

Мне кажется вы не вдавались в технические подробности реализации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 26 сен 2011, 15:25 
Не в сети

Зарегистрирован: 24 сен 2011, 23:06
Сообщения: 395
Я вообще не изучал реализацию. Но изучал темы в разделе "технические вопросы реализации". Этот момент там вообще не рассматривался.

_________________
Во вселенной нет общества в котором "Vox populi, vox Dei" не переводилось бы "О, Боже, как мы в это вляпались".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Процедура тайного голосования.
СообщениеДобавлено: 26 сен 2011, 15:34 
Не в сети

Зарегистрирован: 27 авг 2011, 22:36
Сообщения: 460
viewtopic.php?f=5&t=32
viewtopic.php?f=5&t=104


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

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


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

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


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

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