Несколько дней назад закончился курс «Securing Digital Democracy» от Coursera и профессора Мичиганского университета Алекса Холдермана.
В этом интересном курсе Холдерман рассказал о требованиях к голосованиям, прошлом систем голосования, аргументированно раскритиковал существующие системы и в качестве завершения и совета привел пример технологии, которая, по его мнению является будущим (кое-где уже проникает в настоящее).
Это так называемые E2E( end-to-end) системы, в которых каждый избиратель может убедиться, что его голос был правильно подсчитан, а также могут проведены дополнительные проверки по правильному учету голосов в общем.
Важным требованием к системам голосования является обеспечение анонимности избирателя и секретности его выбора. Конечно. помимо этих, есть требования общего характера (например доступность голосования, аутентификация, удобство. понятность и т.д.,), но на них я останавливаться сейчас не буду.
Анонимность и секретность являются той проблемой, которая требует решения в случае, если вы хотите проверить как был учтен Ваш голос.Есть идеи для избирательных систем, которые снимают остроту этой проблемы, меняя базовые принципы голосования. Например «Облачная демократия» от Леонида Волкова и Федора Крашенинникова предполагает, что избиратель может в любой момент изменить свой голос с одного человека на другого, должен видеть, какие решения принимает его кандидат и т.д. При этом пропадает смысл скрывать его голос для системы или для человека за спиной, что снимает часть проблемы, порождая, конечно, другие, но это не тема этого топика.
При существующем порядке вещей анонимность и секретность должны соблюдаться. Холдерман привел в пример две существующие системы, которые позволяют, учитывая вышеуказанные требования, обеспечить возможность индивидуальной проверки голосования, «Scantegrity» и «Helios». Эти системы распространяются с открытым исходным кодом, что, по мнению Холдермена, является лучшей защитой от возможных уявзимостей.
Обе эти системы используют похожие принципы шифрования результатов голосования, публикации голосов, проверки части внутренних данных посредством случайного выбора. Для более подробного описания процесса, принципов шифрования и т.д. можно почитать внутреннюю документацию или поискать дополнительную информацию на домашних страничках.
Я опишу процесс вкратце, на основе системы Scantegrity. Она использует системы оптического сканирования, наподобие наших КОИБов, но при этом предоставляет пользователю дополнительную информацию посредством скрытых меток для выбора кандидата.
Избиратель, приходя на участок, получает такой бюллетень с серийным номером и отрывным талоном. В кабинке для голосования, делая выбор с помощью специального маркера, он проявляет скрытую информацию, которую нужно переписать на отрывной талон.
Эту информацию (пара серийный номер — код) можно после выборов (или даже во время, если оптические сканеры подключены к центральному серверу) проверить на специальном сайте, или сравнить при печати таблицы голосований в местной газете.
Вся информация, поступившая со сканеров, заносится в несколько связанных зашифрованных таблиц.
По окончании выборов, случайным образом таблица дешифруется, открывая для проверки некоторые из зашифрованных полей так, чтобы не была видна цепочка для конкретного бюллетеня ( что нарушит секретность)
В случае, если корректность частично раскрытой таблицы подтверждена, то есть голоса учтены правильно и правильно отражены в итоговой таблице, с высокой степенью вероятности можно сказать, что внутренних внедрений не было.
Конечно, это не избавляет от вбросов, каруселей, дополнительных списков и прочих распространенных в, скажем так, развивающихся странах радостях голосования, однако позволяет каждому убедиться, что его голос учтен правильно, что уже хорошо. Опять таки есть определенная специфика, связанная с тем, что голосование — это не только подсчет. Это еще и регистрация кандидатов/партий, а также равные возможности для агитации. Иными словами выборы должны быть открытыми, равными и честными. Но это тема уже другого разговора.
Система «Helios» (написанная на Django), в отличие от Scantegrity, рассчитана на относительно небольшие (около 500 избирателей) голосования в онлайне, например на университетских выборах или других локальных комьюнити. Связано это с проблемами принуждения к голосованию за конкретного кандидата, устойчивости онлайн-сервисов к DDoS-атакам, принципиальной невозможностью материально подтвердить голосования. Холдерман считает, что на текущий момент технологии не позволяют надежно проводить онлайн-выборы в серьезных (уровня городов или стран) масштабах, по его мнению это вопрос десятилетий, но, когда проблемы будут решены — будущее безусловно за E2E онлайн-системами. Лично мне кажется, что лучше будет перейти на новые принципы (см. «Облачная демократия»), чем ждать, пока дойдут технологии до обеспечения старых принципов.
Helios позволяет проверить, правильно ли система шифрует твой голос (путем нескольких тестовых попыток с разными случайными ключами), правильно ли она его записывает( причем моментально, таблица ID-шифрованный голос обновляется сразу же и сразу же становится доступной всем), и выборкой после голосования, доступной для аудита всем желающим.
К сожалению, в России на текущий момент действует связка избирательных комиссий-прокуратуры-следствия-судов (в чем я убедился на практике, занимаясь как наблюдатель и свидетель преступления в Истринском районе Московской области, где украли порядка 20% голосов 04.12.2012, тупо переписав протоколы на большей половине участков), для которой E2E системы, аналогичные Scantegrity, вряд ли могут быть интересными. Но время идет, неминуемо придут новые люди и новые идеи, и E2E системы верификации голосования обязательно будут внедрены, рано или поздно.
Автор: KulikovPavel