Методы ведения электронных голосований и возможные уязвимости

Материал из Сервис Облачной Демократии
Перейти к: навигация, поиск

В данной статье я хочу собрать в одном месте и описать возможные методы ведения электронных голосований и возможные уязвимости в них. Данный текст создан по результатам обсуждения на форуме "Облачная демократия" [1].

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

Для реализации открытых голосований будет использоваться рассылка подписанного блока с идентификатором голосования и идентификатором голоса. По подписи будет определяться проголосовавший пользователь.

Процедура тайного голосования более сложна и возможны различные варианты ее реализации.

Традиционный способ - через один сервер

При работе с сервером нам необходимо обеспечить несколько требований:

  1. Невозможность вброса или подделки голосов владельцем сервера, сисадмином или кого-то еще, имеющего доступ к серверу;
  2. Невозможность раскрытия тайны голосования владельцем сервера, сисадмином или кого-то еще, имеющего доступ к серверу;

Предлагаемый метод голосования...

  1. Голосующий самостоятельно или с помощью локальной программы (находящейся на компьютере пользоваля) генерирует одноразовый идентификатор, который он использует как идентификатор своего голоса.
  2. Голосующий с помощью локальной программы и своего открытого ключа шифрует блок данных с одноразовым идентификатором и вариантом выбора.
  3. Голосующий формирует текст для подписи об участии в голосовании и в конец этого текста добавляет вышеуказанный зашифрованный блок.
  4. Голосующий подписывает получившийся на предыдущем шаге блок текста и отправляет его в качестве своей подписи об участии в голосовании.
  5. Пару "одноразовый идентификатор"+"вариант выбора" он отправляет так-же, но не одновременно со своей подписью. Как минимум - не тем-же запросом.

Таким образом мы получаем следующее:

Лучший способ - распределенная система P2P

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты