После драки кулаками не машут, или что хотелось еще сказать

Ну или будем считать это развернутым комментарием к описанию голосовалки на Хабре :)

Начну с того, что ее авторы вовсе не изобрели велосипед – подобного рода системы довольно известны, в “Прикладной криптографии” Шнайера нечто очень похожее названо “голосованием с двумя центральными комиссиями”, а вообще в той же русскоязычной википедии приводятся примеры “протокола двух агентств” и “протокола Фудзиока-Окамото-Охта”, а в Эстонии такая система довольно широко внедрена и даже обсуждается в публикациях, как пример успешной криптографически защищенной системы голосования. Это, на самом деле, довольно положительно характеризует предложение – как минимум, в современной криптографии принцип security by obscurity не приветствуется, а тут для оценки стойкости системы и возможных рисков можно воспользоваться всем массивом знаний человечества, накопленным с 1990-х годов (когда, собственно, и были описаны основные протоколы тайного голосования).

Естественно, если почитать википедию или книжки “чуть дальше”, можно найти примеры более сложных протоколов голосования – например, требование разделения “регистратора” и “счетной комиссии” кажется невыполнимым, соответственно, в некоторых модификациях этого протокола можно от этого отказаться – но проблема в том, что это требует значительного усложнения протокола, но не закрывает одной из самых больших проблем, о которой авторы алгоритмов голосования иногда, такое впечатление, и не подозревают. Нет, они все, конечно, грамотные специалисты – но когда вершиной применения твоего протокола становятся выборы в студенческий совет в университете (пусть даже это Гарвард!), о “мертвых душах” как-то не задумываются – а зря! “Регистратор” может довольно легко создать сколько угодно “виртуальных” избирателей – или еще лучше, “привести на выборы” существующих, но неактивных. Для этого у него есть и техническая возможность, а в случае, когда он видит результаты – еще и необходимые данные. В случае же разделения регистратора и счетчика первому, во-первых, придется устраивать вбросы “вслепую” – довольно рискованная все-таки штука, а во-вторых – “счетчик” может обнаружить и аномалии в поведении избирателей.

Добавлю еще один технический момент – требование уже к реализации этого всего. Даже аккуратная реализация самого лучшего алгоритма может потерять все свои хорошие свойства из-за утечек по “скрытым каналам”. В частности, голосование с объединенным “регистратором” и “счетчиком” почти полностью теряет “тайну голосования”, если избиратель пользуется для связи с сервером каким-нибудь там HTTP и даже HTTPS (а чем еще можно пользоваться, когда у избирателей зоопарк из компьютеров с 3 популярными семействами ОС и смартфонов самых диких марок?). Пусть даже регистратор раздает избирателям ключи по протоколу ANDOS, который, в теории, не позволит регистратору узнать, какой ключ он кому выдал – но он при этом знает fingerprint браузера избирателя, который авторизовался, как “Иван Петрович Сидоров”, и знает fingerprint браузера избирателя, который прислал бюллетень “За кандидата N.”; сопоставить одно с другим совершенно несложно.

Маленькое отступление – да, полностью анонимных каналов связи у нас, скорее всего, нет (за исключением “распечатайте QR-код и отправьте его открыткой по почте” – но это уже не совсем электронное голосование), но деанонимизация избирателей методом “вычислю по IP” потребует уж слишком больших ресурсов, вряд ли доступных какому-нибудь одномандатнику.

Что особенно важно при электронном голосовании – это работа наблюдателей, причем в двух аспектах – как обеспечение такой возможности (нет, принтер, печатающий чеки, падающие в урну – это совсем не то, что надо), так и готовность заинтересованных сторон эту возможность использовать. “Бумажные” выборы довольно просты и понятны – как минимум на уровне здравого смысла “раздали бюллетени и аккуратно их посчитали” – так что наблюдатель на избирательном участке может работать после минимальной подготовки (и даже без нее, хотя будет плавать во многих процедурных вопросах). Электронное голосование – совсем другое дело! Если предъявить этому “минимально подготовленному” наблюдателю базу данных с бюллетенями – то вряд ли он сможет в ней что-то понять. Впрочем, на “круглом столе” озвучивался опыт Эстонии, где для такого “наблюдения” на выборах партии нанимают квалифицированных специалистов в области программирования и защиты информации – и в случае электронного голосования придется делать именно так. При этом “избирком” не должен отмалчиваться, когда ему задают “технические” вопросы, и даже больше – он должен быть готов продемонстрировать интересующие специалистов компоненты системы.

Есть тут еще один интересный момент – никто в принципе не мешает (и это даже было бы правильно) максимально широко опубликовать перед выборами API авторизации и голосования, а после выборов – базу данных с результатами голосования. Людям хочется потрогать систему голосования – и если они имеют подходящую квалификацию, то почему бы и нет? Любой выпускник трехмесячных курсов по data science, лично прошедшийся питоновским скриптом по базе голосов и обнаруживший в ней не только свой бюллетень, но и что его результаты подсчета совпали с официально объявленными, добавит доверия к системе голосования попросту личным примером.

Ответить

Или воспользуйтесь входом по OpenID: