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

По просьбе @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. За нарушение прочих Правил Пикабу.

6
Автор поста оценил этот комментарий

Кому нужна? У нас есть общество. В рамках этого общества, есть группы людей которые конкурируют между собой сначала за деньги, а после - за власть. Власть, принятие законов, голосование, сми, полиция как механизм принуждения к исполнению законов, и прочие - находится сейчас в руках одной группы людей. Вторые, третьи и десятые - отстранены от управления обществом вокруг себя и максимум могут влиять - только на себя лично. Им эта система бесполезна - ее нечем "наполнить", нечем заставить остальную часть общества исполнять ее результаты. Чтобы реформировать лично себя - она не нужна. Той же части общества в руках которой власть - она тоже бесполезна, легитимизации власти прекрасно происходит и через старую.

раскрыть ветку
7
Автор поста оценил этот комментарий

На пункте 1.2 ваши ключи однозначно сопоставляются с реальными людьми и вся анонимность рушится

Далее как вы собираетесь проверять подписи? Документ подписанный чем-то, вы бежите по всей вашей базе и проверяете валидность подписи каждым ключом?

раскрыть ветку
2
Автор поста оценил этот комментарий

Проблему отзыва у меня можно закрыть, добавив систему оценки("+","-","0"). И дать доступ всем, а не только избравшим, но поставить "0"(отзыв) смогут только избиравшие. Тогда деанона не будет.

Внедрение моей системы это некий выбор))
Либо государство соглашается, что оно заинтересовано в сохранении тайны голосования, и тогда любой человек может использовать своё право(по сути) на ОТКРЫТОЕ голосование.(ведь главная угроза - раскрытие тайны)
Либо отвергает предложение и подтверждает статус - "не правовое государство".

Голосующим так же оставить этот выбор(бумага - или верификация). Что важнее - тайна или проверяемость результата?

пс. По поводу вашей системы - коллеги уже задали вопросы) У меня тоже много сомнений в части пункта 1.4
Вам могут(как злоумышленнику) выдать несколько ключей, ведь они в конвертах и(как я понял) не привязаны к личности.
Моя жена не голосовала, как убедиться в правильности учёта её голоса?

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

Вот тут и выдадут лишних ключей несколько миллионов

>> 1.2. Открытые ключи и их отпечатки вносятся в БД подтверждения голоса.
В которой уже есть несколько миллионов ключей и это не проверить.
раскрыть ветку
1
Автор поста оценил этот комментарий

Что мешает избиркому на пункте 1.4 придержать себе несколько конвертов, которые не забрали, а после использовать их для голосования за нужного кандидата? Зачем нужен отзыв голоса, если голосование идет один день? Ассиметричные ключи ЭП генерируются для всей России, отдельно для каждого избирательного участка, для каждого гражданина? Пункт 2.3 как-то непонятен: что за предыдущая подпись по участку? В пункте 4.2 как он это поймет, что произведено голосование по его подписи?

раскрыть ветку