Представитель Шуры Люберецкого в ЖЖ (brat_luber) wrote,
Представитель Шуры Люберецкого в ЖЖ
brat_luber

Categories:

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

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

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

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

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

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

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

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

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Subscribe

  • Таджикоанглийский

    Один ли я, читая Release Notes на этой картинке, вспоминаю Равшана и Джамшута? Запись опубликована в блоге Шуры Люберецкого. Вы можете…

  • Вдогонку истории про Кинопоиск

    Почитал комментарии к “перезапуску” Яндексом Кинопоиска. Что хочу сказать? Яндексовцы сделали просто офигенный и современный “сайт…

  • И еще вдогонку

    Вот обсуждают все пресловутый флешмоб “про 90-е”. Кто-то честно выкладывает фоточки “из детства”, кто-то – истории про…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments