Единая система электронного отзывного голосования (ЕСЭОГ). Проект

По просьбе @sociumR, (извиняюсь за недельное опоздание) спроектировал решение по следующему ТЗ:


Нужна надёжная избирательная система соответствующая критериям:


1. Работает в он-лайн формате.

2. Позволяет голосовать из любой точки Земли.

3. Позволяет в любой момент отозвать свой голос.

4. Голосование и отзыв голоса полностью анонимные.

5. Система должна работать в изначально скомпрометированном окружении (находящемуся под контролем лиц желающих повлиять на результаты).


Итак, ИТ - полностью управляемая среда. Это означает, что с той или иной степенью сложности всё, что было занесено в реестры информационных систем может быть отслежено. Следовательно для решения п. 4 часть операций (анонимизация) должна быть вынесена оффлайн. Задача состоит в том, чтобы во-первых выдать некоторый идентификатор человеку, во-вторых выданный идентификатор невозможно было бы привязать к конкретному лицу. При этом все участники должны иметь возможность гарантировано проверить идентификатор не раскрывая анонимность.


Алгоритм работы:


1. Раз в установленный период проводится день выдачи ключей голосования. Он состоит из:

1.1. Генерирования асимметричных ключей ЭЦП.

1.2. Открытые ключи и их отпечатки вносятся в БД подтверждения голоса.

1.3. Закрытые ключи в виде QR-кодов записываются на защищённый бумажный носитель в форме конверта (как пин-код банковской карты)

1.4. Изберком за неделю до дня голосования, выдаёт ключи избирателям с обязательной ежедневной фиксацией количества выданных ключей.

2. День голосования. Процесс голосования:

2.1. С использованием мобильного приложения или стационарного считывателя считывается QR-код ключа голосования.

2.2. Пользователь выбирает за кого он голосует (идентификатор).

2.3. Формируется строка из прошлой подписи по участку + отпечаток ключа + выбор пользователя

2.4. Генерируется подпись строки

2.5. Запись передаётся на голосование. Сервер возвращает коды операции:

НЕТ СВЯЗИ - нет доступа к серверу голосования. Система ждёт несколько секунд и возвращается на п. 2.5

ОШИБКА ЛОГА [новая подпись] - пока шла обработка кто-то внёс свой голос и нужно заменить прошлую подпись.

ОШИБКА КЛЮЧА - ключ не зарегистрирован в системе: ключ проверяется Изберкомом => носитель передаётся на уничтожение => человеку выделяется новый носитель => человек переходит к п. 2.1

ПОДТВЕРЖДЕНО - человек проголосовал, всё хорошо.

3. Отзыв голоса и отзывные даты:

3.1. Для отзыва ключа производится процедура п. 2.1-2.5, при этом человек отдаёт свой голос за другого кандидата.

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

4. Нарушения

4.1. При голосовании большим числом голосов, чем было выдано ключей - сажаем комиссию и начинаем с п. 1.1.

4.2. При обнаружении избирателем голосования, которое он не проводил:

4.2.1. Избиратель обращается с заявлением в изберком.

4.2.2. Ключ подписи аннулируется.

4.2.3. Избиратель начинает с п. 1.4.


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

Информационная безопасность IT

1.4K постов25.5K подписчиков

Добавить пост

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

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

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.