Об электронной демократии

Навеяло кулуарами хайлоада, где после выступления Лямина про DDoS внезапно всплыла выборная тема во всей ее многообразной красоте.

Вот электронные выборы. Не обязательно те, что закончились вчера, а вообще любые с интернетным голосованием, ну вот как в Эстонии, например.

Вопрос мой таков: а есть ли какой-то механизм, который может защитить от вбросов (со стороны организаторов, естественно)?

Ну вот на обычных выборах это решается наблюдателями, которые тупо вручную считают, сколько избирателей дошло до урны и сравнивают получившееся с первичным протоколом. А на электрических?

Я вот не вижу подходящего простого (чтобы средний необученный избиратель осилил) механизма, но наверное я чего-то не знаю?

Comments

Нет механизма такого. Ни в реале, ни в виртуале.
Он невозможен в принципе, как вечный двигатель или "защита от дурака".

Вопрос о морали и личном выборе.

Механизм "в реале" - я описал. Наблюдатели считают, сколько людей подходило запихивать бумажки.

Он обходится, как мы видели на последних выборах, созданием реальных/виртуальных участков, куда не допускают наблюдателей, но это - палево, оно не остается неизвестным и прочие 33 удовольствия. Ну и процедурно относительно легко лечится. Это не считая видеотрансляции.

А по сети - кроме идеи "нескольких избиркомов" (от всех конкурирующих кандидатов) с регистрацией избирателя *во всех* них - мне в голову ничего не приходит. Но это технически - слишком сложно и для кандидатов и для избирателя.

Ответил ниже.

Разница между виртуальным и реальным тут условна.
В реале ситуация хорошо разобрана на примере чикагских выборов у Драйзера в "Трилогии желания".

Вот сейчас пытаются сделать соцсети с биекцией: 1 человек <=> 1 запись (на госуслугах, к примеру, реализовано).
Identity theft можно теоретически приостановить.
Но вот заставить человека голосовать "свободно", но "правильно" - нельзя никакой техникой.

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

Есть возможность, мобилизовав много живой силы, ввести вбросы в некоторые рамки. Потому что скандалы никому не нужны и все такое. Т.е. сами факты вбросов - ловятся и публикуются. Другой вопрос, что их заметают под ковер, доказательств для суда - недостаточно и все такое.

Каких-то реальных возможностей мобилизовать живую силу для посмотра интернет-трафика (или чего-то подобного) я просто не вижу.

Ну, механизм есть, и очень простой - публиковать списки поименного голосования. Чтобы любой избиратель мог проверить, что его голос учтен правильно. Вопрос в том, что цена его - отказ от тайности выборов, для нас в большинстве случаев неприемлема.

А так что-то такое среди криптопротоколов было. В частности, сейчас активно разрабатываются алгоритмы, позволяющие выполнять определенные операции над зашифрованными данными, не расшифровывая их.

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

А вот что делать с мертвыми душами? Вот Сидор Сидорович Сидоров - проголосовал за все хорошее. Как узнать, что его на самом деле не существует?

Задача из теории игр:

Вот есть реальный Сидор, который проголосовал за все хорошее. Причины того - вовсе не в гражданской сознательности, а в том, что его хорший человек попросил. Возможность доказать, что
а) Сидор голосовал не по собственной воле
б) Голос Сидора имеет меньший вес по сравнению с другими.

Ну нету тут технологического решения, нету. Потому что даже прозрачность не спасает от позора.

Тут надо вообще начинать от основ. А есть ли у Сидора собственная воля (и разум) вообще?

ну вот Вы совершенно меня правильно поняли.

Соответственно, задавать вопросы о технологии бессмысленно)

> Проблемы подтверждения, что мой голос учтен так, как я голосовал - ее нет

Угу.

> Этот механизм обоюдоостр (т.к. тут же появится реальная торговля голосами, принуждение к правильному голосованию и т.п.)

Почему? Анонимность голоса при этом сохраняется - см. напр. организацию выборов в фидонет, её достаточно модифицировать совсем чуть-чуть - а если никто, кроме организаторов выборов, не знает, как именно я голосовал - как прикрутить к этому "торговлю и принуждение"?

Способов же сделать так, чтобы мой голос не знали даже организаторы, но при этом всё работало - я не представляю :-) Ну, то есть, в принципе представляю (выдачей "анонимных бюллетеней"), но в электронном виде - не представляю ("бюллетень" (ключ для голосования) всё равно будет выдаваться "кому-то", раздать всем одинаковые "ключи" нельзя по определению, а ничто не мешает организаторам втихую писать в табличку соответствие ключа и личности).

> А вот что делать с мертвыми душами? Вот Сидор Сидорович Сидоров - проголосовал за все хорошее. Как узнать, что его на самом деле не существует?

Сверить с базой "всех существующих", она есть где-нибудь в МВД. При сомнениях в существовании конкретного С.С.Сидорова - попросить организаторов выборов предъявить собственно Сидорова, в каком-нибудь приемлемом для всех виде.
Проблема тут в недоступности "базы всех" для простых людей. Но при массовых вбросах и доступности списков проголосовавших что-то проверить всё равно можно - жильцы дома ХХ-дцать по улице Подшипников скольжения обычно знают, что у них тут нет ста двадцати разных Сидоров Петровичей, а есть всего десять Марий Ивановн, а дальше можно уже затребовать у проводящих выборы предъявления нескольких таких Сидоров, тсзть, вживую (с доказательством их существования)...

А базы персональных данных всего населения страны должны быть публичны. И каждый должен знать всех своих соседей. Возможно, не соседей а коллег, или френдов в каком нибуль вконтакте. Как пел Визбор "Человек состоит из людей". Есть же правило 6 рукопожатий. Соответственно, про любого человека в списке должно быть возможным быстро выяснить, а кто с ним лично знаком.

"А базы персональных данных всего населения страны должны быть публичны."

Вот Вы лично к этому готовы?)

А я как-то и не особо скрываю свое имя и дату рождения. Правда, лет несколько назад я перестал в автоматически включать в подпись в электронных письмах в публичные (и архивируемые в web-е) списки рассылки свой домашний и свой мобильный телефоны, но это было скорее случайностью. И архивы 1999-2003 годов скажем apache-rus или apache-talk никуда не делись.

Ну нормально тогда)

Правда, у прозрачности цена все равно есть. Иногда ее платят близкие.

Ну за публичность моих персональных данных в основном spamassassin платит. Трудится, бедняжка, в поте лица.

По сути, ты предлагаешь вместо "всеобщего тайного голосования" - "всеобщее явное".

Сдается мне, эффекты будут забавными.

База всех ни черта не решает. На обычных оффлайновых выборах сплошь и рядом ставят галочки за избирателей, которые физически существуют, но про которых известно, что они давно на выборы не ходят.

Нужно проверять не то что Сидоров существует, а то, что он голосовал, и голосовал именно так. При этом не раскрывая саму личность Сидорова.

В фидонете было соответствие "голос - пароль". Скупщик голосов, соответственно, выдает продавцам пароли.

Ага. Именно это я и предлагаю. Потому что в эпоху youtube, wikileaks и facebook всё тайное становится явным слишком быстро, чтобы за этот временной лаг стоило так бороться.

Большая часть способов неправедно поюзать персональные данные основана на том, что кто-то (не обязательно субъект этих данных) полагает, что они кому не надо не известны. Данные, про которые всем известно, что они публичны, употребить во зло заметно сложнее.

И вообще тема всеобщей открытости неоднократно разбиралась фантастами, часто под соусом "изобрели телепатию". Эффекты, действительно забавные.

В эпоху упомянутых сервисов - все еще нет способа узнать, за кого именно я голосовал на муниципальных выборах с помощью старинной бумажной технологии.

Нету. но в условиях развитой партийной демократии обычно факт что данный человек поддерживает, скажем, демократов, а не республиканцев, или лейбористов, а не консерваторов, обычно не считается достойным сокрытия.

"нетайные" выборы - это будет преизрядное искушение для властей. На всех уровнях.

Ну у властей обязательно будет какое-нибудь искушение. Такова природа власти. То ли искушение вбросить, то ли искушение попрессовать тех, кто не так проголосовал, то ли искушение распилить выделенный на предвыборную кампанию бюджет.

Пароли пусть система выдаёт, по фидо хорошо известно, что начинается, если пароли будут сами голосующие создавать :-)

А вопрос скупки упирается в возможность скупщика голосов убедиться (с согласия голосующего) в том, что голосующий проголосовал именно так - ну, и в то, что в случае покупки голоса "согласие голосующего" подразумевается. Если "согласие" можно подделать - голосование для скупщика эффективно превратится в тайное.

Если, например, в реальном времени публиковать "ленту" проголосовавших паролей с указанием, за кого они проголосовали, то "продавец голоса" сможет проголосовать своим паролем как хочет, а покупателю голоса показать чужой пароль, взятый из ленты - и фиг что докажешь, даже в случае коллизии: "я честно голосовал, это он мой пароль повторно использовал!".

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

Если сделать открытыми список голосовавших (без выдачи информации, кто за кого именно, см. уже упомянутые "фидошные выборы"), то не вижу проблемы. Берём из списка произвольного Сидорова, находим его в реале (если не находим - то вот оно!), и спрашиваем, "голосовал ли он". Если нет - то опять вот оно. Спрашиваем его же, проверял ли он, правильно ли учтён его голос. Если учтён неправильно - снова вот оно. Ну вот ровно в таком виде эта технология уже применяется, не один десяток лет - проблемы у неё есть, но не в этом.

Да, каждого Сидорова проверять придётся индивидуально. Но массовую проверку отсутствия "вбросов" по-моему в принципе нельзя сделать, только через проверку выборки из подозрительных Сидоровых.

Сидоров находится в реале, но посылает нас лесом и на вопросы отвечать отказывается. Как быть?:)

Это не говоря о том, что персональные данные разглашать нехорошо. Фидо фидой, а в реальности все привыкли к несколько другим правилам игры.

Никак, "нет информации, переходим к следующему Сидорову". Если сам избиратель Сидоров почему-то отказывается подтверждать или опровергать ту информацию, которая у нас вообще-то и так есть (но не 100% достоверная), значит, он либо псих, либо провокатор, либо вот так вот ценит свой голос, что ни на "ну да, голосовал, а что" ни на "да вы что, это провокация и вброс бюллетеней!" не способен.

Повторю высказанную несколько постов назад мысль - если публиковать списки проголосовавших (без указания, за кого), то проблема в значительной мере решается (не верю, что "посылающих лесом" Сидоровых будет сколь либо значимый процент). Если это по какой-то причине недопустимо ("нехорошо", "привыкли к другим правилам") - нормального решения я не вижу.

Давайте всё-таки исходить из того, что это недопустимо. Я вот не очень хотел бы, чтобы публично светились данные, позволяющие меня найти в реале. Да, при некотором датамайнинге они всё равно найдутся, но в виде готового списка на сто миллионов избирателей лучше не надо.

Достаточно хорошей мне кажется идея нескольких (N) параллельных избиркомов (они могут быть и под эгидой партий и просто каких-то авторитетных агентств). Да, это сложнее для избирателя в N раз, но в условиях, когда государство НЕ является доверенным центром как ещё обеспечить честность, кроме как взаимной проверкой не доверяющих друг другу сторон?

Параллельные избиркомы забавны тем, что
а) они обязательно разгласят твои персональные данные
б) заведутся специальные избиркомы, направленные на срыв процесса.

Я понимаю. Но ПД парой комментов выше и так собирались разглашать:)

Разумеется, кто угодно не может быть избиркомом. Список их должен быть утверждён перед выборами заинтересованными лицами/партиями. Важно чтобы утверждающие при этом были соперниками и друг другу не доверяли.

А так, лучшего варианта всё равно нет.

Другими словами получается, что даже если мы не хотим разглашать списки избирателей, в альтернативных вариантах высокая вероятность утечки списка. Тогда то зачем вообще ориентироваться на "список избирателей не разглашаем"?
Возвращаемся на несколько каментов выше, и считаем, что публикация списка голосовавших допустимая плата.

Кстати, чем плохо, если списки не просто публикуются для всех, а становятся доступны неким наблюдателям, которых утвердят, и которые будут известны. Избирателю при голосовании сообщают, что с ним могут связаться вот такие-то представители, с целью уточнить, участвовал ли он в голосовании, и правильно ли учтен его голос. Раскрывать как именно он не обязан, он вообще имеет право послать их и ничего не отвечать, но претензий к ним "откуда вы меня узнали" предъявлять не имеет право.

Опять-же, наблюдателям могут быть доступен не полный список, а только выбранные ID'ы. ID'ы они могут указать после получения статистики (проверять более прицельно).

Задача не в том, чтобы каждый мог проверить свой голос - это тривиально, а в том, чтобы не было "ничьих" голосов.

Доступностью первичных данных по идее. Например, по каждой партии доступны все номера паспортов, что за неё проголосовали, каждый гражданин может проверить верность своего номера.

Хороший, впрочем, вопрос, что этот метод проверяет только верность отображения избирателей в избираемых, но не проверяет наличие возможных дополнительных "мёртвых душ".

Именно.

И даже какой-то аудит в центре событий - в общем случае не защитит от робота, который успешно притворяется браузером избирателя.

> И даже какой-то аудит в центре событий - в общем случае не защитит от робота, который успешно притворяется браузером избирателя.

Есть центры по выдачи официальных цифровых подписей, которые принимаются наравне с нормальными, требовать голосование завереним такой подписью. Роботы, которые прикидываются браузерами, так не смогут. Нужны будут роботы, которым дали уже нагенерённых подписей, это уже на уровне центров выдачи подписей непобходим мухлёж. Можно ли их проконтролировать?

P.S. капча задолбала, а пароль свой на этом сайте я забыл. перейду в ридонли нафиг.

Мне жаль, но без капчи - чистка комментариев задалбывает меня.

Если вы помните свой E-mail или логин, то новый пароль можно попросить тут: http://blog.lexa.ru/user/password

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

Механизм прост. Каждому при голосовании пришёл ID.
В протоколе есть список всех голосов- ID, последние цифры телефона и выбор.
https://election.cvk2012.org/home/electionprotocol
По протоколу можно вычислить результат и проверить свои (и только свои) данные.

Но, как обычно, это даёт возможность покупать голоса (или запугивать) с проверкой выполнения договора. Хотя и в "бумажном" варианте это делается так же несложно.

Вот ID 213594

Как узнать, что он принадлежит реальному человеку, а не фейку, данные которого сгенерированы прямо в центре обработки голосов?

Ну а как ты проверишь финальные результаты? Они же тебе табличку показывают с просуммированными голосами. Может у них сумматор особый, чуровский.

Это да- это сложнее. Я с дури ответил на вопрос "как мне проверить свой голос".
тут надо придумывать какой-то механизм проверки.

Да сдаётся можно что-то придумать. С какой-нибудь криптографией или даже как-то хитрее...
В реале ничего не проще на самом деле..

Ну вот как?

Если некто (организатор выборов) сам себе сдает карты?

По-моему, компьютерные технологии ещё не развились до такого уровня, чтобы справиться с организацией выборов от "А" до "Я" мог один человек. А если там не один человек, значит можно как-то организовать систему сдержек и противовесов.

Много реальных людей из реальных избиркомов согласились выступить в суде и рассказать как они вбрасывали и/или как опознавали карусельщиков и давали им лишних бумажек?

Ну то есть это еще выше барьер, конечно, чем просто "сдержки и противовесы", но так и народу там не 5 человек программистов (куда можно отобрать по лояльности или подвешенных на крючке), а эдак полмиллиона.

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

Да, вот сама по себе идея "нескольких избиркомов" (по числу кандидатов), независимо от реальной реализации (делегирование своих технарей или еще как) - это путь, как мне кажется, в правильную сторону.

Но возрастает риск того, что непроходные кандидаты будут туда делегировать кого-то с целью срыва выборов, а не их проведения.

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

а что это они не развились?
в чем проблема-то?
сделать reference open source реализацию для голосавния?
пригодную для автомагического инсталирования в пять наиболее популярных облачных платформ?
с задачей покупки домена, ssl сертификата и нажатия кнопки install справится и навальный.

Вот когда ты эту систему напишешь, тогда будем считать, что технологии развились.

ну волков, например, не справился, гг

а кто такой волков?
в смысле -- у него есть имя в программировании?

СКБ Контур, вроде.

Хотя Лямин сегодня про них гадости всякие рассказывал. Кои я на человеческий язык перевел как "все выходные мы помогали им вынуть руки из жопы"

"Разработка и внедрение программ для бухучёта и управления предприятием, ЖКХ и социальных служб; создание систем документооборота и др. Описание продуктов, цены."

эм. доверия не внушает, да.

а то! почти как у навального!

Кстати о картах.
Есть протокол тасовки колоды и покерной партии без доверенного ведущего. Никак сюда не приплести?
А даже если и нет -- я верю, что уж если эту покерную задачу решили, то...

А ещё есть виртуальная анонимная валюта. Тоже похоже -- у тебя есть 1 монетка и ты её можешь потратить 1 раз (1 голос, отдать 1 раз).

Ну так накидать монеток от имени тех, кто не явился?

А взять их где? Это как с реальным баксом на карточке (там ниже предлагают) -- где взять столько карточек ``тех, кто не явился''?

Их кто генерирует? Избирком? Вот из бэкапа и взять.

А кто генерирует биткоины? Надо и другие протоколы анонимных е-денег посмотреть.

Гражданин выражает свою волю. По закону воля гражданина должна быть зарегистрирована. Для этого есть нотариальные службы, нотариусы. Именно нотариус, а не директор школы или завуч верифицирует протокол избирательной комиссии. Затем копии протоколов отдаются на руки представителям партий, учавствующим в выборах. Посчитать 90 тысяч протоколов избирательных комиссий не сложно, даже вручную. Партии сверяют свои цифры с цифрами ЦИК. При расхождении выясняем, где образовалась ошибка. В прошлые выборы все данные с участков были доступны, но ни одна из партий не призвела собственного подсчёта бюллетеней. Вот как то так надо действовать. А электроника - этопросто инструмент для работы.

Это вы описали реальные бумажные выборы с физически существующими участками, где можно пришедших тупо пересчитать вручную наблюдателями и сравнить. В этой ситуации непреодолимых проблем нет. Ну, понятно, "удаление наблюдателей" и прочие безумства - но они известны, наблюдаемы и все такое.

Плохо преодолимые проблемы возникают на виртуальных участках, куда наблюдателей не допускают.

Вот в случае электронного голосования из дома - все участки внезапно станут такими виртуальными.

По поводу того, о чем говорит Витус-Вагнер. Вот (http://offline.computerra.ru/2007/712/341919/) обзор трех _бумажных_ технологий, которые позволяют:
а) оставить у человека квиток
б) дать ему возможность с помощью этого квитка проверить, верно ли подан голос
в) не раскрыть голос (и не дать такой возможности, чтобы нельзя было отчитаться скупщику)

Это, однако, не решает поднятой вами проблемы. Выходит, что у нас должен быть публичный конечный список идентификаторов всех потенциальных избирателей, сделанный из их паспортов доверенным источником. Тогда авторам вбросов придется случайным образом выбирать людей, от лица которых они кидают, и люди будут натыкаться на несоответствия.

Но да, все упирается в такой доверенный источник. Если пространство голосующих бесконечно, то жопа.

Вот банальный вопрос, я извиняюсь.
Вот Punchscan - показывает избирателю одну фамилию, а в базу результатов пишет - другую.

И?

Не успеваю сейчас подумать :)

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

подписывать цифровой подписью.

У робота не может быть цифровой подписи?

может, но это был ответ на фальсификацию именно голоса, когда показываем одно, а в базу пишем другое.

Не знаком с punchscan, но вообще такую схему не допустить просто:
Голосование не за фамилии, а за соответствующие им номера в списке, список публичный, т.е. перетасовать фамилии нельзя. Ввод же может осуществляться уже через криптографическое средство, аналогичное клавиатуре банкоматов (там это не просто плата с кнопками).

Я не понял. Какая разница за что голосуем, за номер или за фамилию, если номер и фамилия суть одно и то же?

История с банкоматом другая - он пинкод проверяет же локально?

Речь про электронное голосование, но не про голосование через сеть.

Схема жульничества:
Список фамилий демонстрируется на экране. Нужно выбрать одну. Жульническая машина для голосования может показать на первой строчке фамилию Иванова вместо Петрова, а нажатая избирателем кнопка "1" идет все равно Петрову. Так сложно накрутить голоса нужному кандидату, но разбросать голоса ненужного по заведомым аутсайдерам - легко.
Если же список "фамилия-номер" публичный, такое не пройдет.

Про банкоматы я вспомнил в том смысле, что там пин не уходит в открытом виде дальше самой клавиатуры - он шифруется рабочим ключом, а перед этим еще смешивается особым образом с номером карты и т.п. При этом факт нажатия клавиш наружу передается, но информация, каких именно. Так что при использовании тех же сертифицированных устройств, которые могут быть проверены на соответствие стандарту сторонними организациями ("техническими наблюдателями"), можно организовать систему, в которой на каждую машину голосования может быть установлен как основной "государственный" софт, учитывающий голоса, так и "плагины" от сторонних наблюдающих организаций, которые не смогут технически вмешиваться в процесс голосования, но смогут получать зашифрованные своими ключами (та же банкоматная клавиатура позволяет иметь более одного рабочего ключа) голоса, которые потом можно сравнить с опубликованными официальными результатами.
В качестве дополнительного authority в данном случае выступают стандарты на банковскую технику.

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

нет, речь о том, что организаторы - мухлюют. С чего вдруг доверять самой системе?

Я даже не столько про прошедшие 20-22-го выборы (там, понятно, процедуры проверки на мертвые души вовсе нет), сколько про выборы вообще.

организаторам не надо доверять, я говорю про техническую сторону, что намного проще: открытые исходники, контрольная сумма приложения, независимая площадка и все такое и все такое. это достаточно несложно.

По-моему, в пределах одного избиркома этого не достичь. Нужен какой-то доверенный независимый справочник по id-ам

В ситуации, когда такой список ведет то же государство, что и организует выборы - без первичного контроля фишка джентльменам попрет в полный рост.

В книге Брюса Шнайера "Applied Cryptography" этот вопрос рассматривается.

А если выложить исходинки кода?
И упростить счётчик до минимума.

Или на этом уровне и невозможно накрутить, а вопрос только в верификации голосующих, зарегистрированных в системе?

А при чём тут код? Задача убедиться, что все (не путать с каждый !) посчитанные действительно голосовали.

Ну, разница между обычным голосованием и электронным мне выглядит только в счётчике :)

Да нет же.

В обычном - есть первичный подсчет явившихся физических лиц наблюдателями. Не тотальный, но с приличным охватом.
В электронном - тушки не посчитаешь, а байты от роботов и от физических лиц выглядят одинаково.

Еслиб была возможность, не приписывали бы при переписи миллионы человек. :) И в дома бы не прописывали мёртвые души. Говорят, при голосовании гораздо больше накруток не при голосовании а перед. Карусели всякие, это мелочь. :)

Ну посчитаешь ты количество тушек, а в списке другое число, и что дальше делать? Не, не работает.

В электронном можно вывесить списки проголосовавших, не говоря, за какую партию. Тем более, что эти списки и так есть.

Ну о том и речь, что все эти прописанные мертвые души - электронно проголосуют как надо.

Ну так они и так голосуют как надо :)

Вопрос в том, как соотнести реального человека, с человеком из списка. Но это к электронному голосованию не имеет отношения уже :) ИМХО.

Нет, мой вопрос обратный. Как проверить, что ID из списка голосовавших - реально существует, а не робот.

Тоже мне бином Ньютона.

Голосовать кредиками. Берутся три больших банка из трех разных стран, и каждые на время выборов (месяц?) морозит транзакцию на $1. Или можно на $100, конкретную цифру надо продумывать. Потом размораживают, как при рентовании машины.

Не могу себе представить частную организацию, которая бы в таких условиях много навбросала. Государство вобщем тоже не могу.

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

С заморозкой и последующим возвратом? При соответствующем накале избирательных страстей, я всеми своими картами проголосую.

Но идея - правильная, она вводит имущественный ценз!

> я всеми своими картами проголосую.

На них на всех разный спеллинг имени и почтовый адрес?

> Но идея - правильная, она вводит имущественный ценз!

Какой ещё ценз? Карточки-то кредитные.

Ты не поверишь, но по спеллингу на банк. Все разные, хотя в одном месте разные в мелочи (Написали Mr. в начале), но в остальных - нет.

А адреса в наших условиях не проверяются.

> Ты не поверишь, но по спеллингу на банк.

Сдаюсь.

а у нас уже официально неработающим выдают кредитные карточки?
или, может быть, их обслуживание и выдача вдруг стали бесплатными?
и какой вообще возможный процент охвата аудитории то будет, при таких раскладах?

Да, по такой схеме отлично проголосует сбербанк. Всеми невыпущенными еще картами

Неужели еще не выдают? Ну ничего, скоро будут. Лет десять назад вон и сотовых телефонов ни у кого не было в России.

Ну и по anonymous election cryptographic protocol гугл много интересного показывает. Например, статью с таким абстрактом:

In this work we propose a secure electronic voting protocol that is suitable for large scale voting over the Internet.
The protocol allows a voter to cast his or her ballot anonymously, by exchanging untraceable yet authentic messages.
The protocol ensures that
(i) only eligible voters are able to cast votes,
(ii) a voter is able to cast only one vote,
(iii) a voter is able to verify that his or her vote is counted in the nal tally, (iv) nobody, other than the voter, is able to link a
cast vote with a voter, and
(v) if a voter decides not to cast a vote, nobody is able to cast a fraudulent vote in place of the voter.

Посмотрел. Это опирается на общедоступный список избирателей и на то, что все три стороны не будут мухлевать.

На практике - сторона одна, а не три.

На практике -- сторон столько, сколько участников. Это должен быть равноправный и симметричный протокол.

Да, единственная схема (на пальцах), которая что-то гарантирует - это схема, где избиркомов столько же, сколько кандидатов. И они друг другу подписывают разное.

Но в такой схеме просто вводятся играющие за кого надо кандидаты - и срывают выборы.

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

В покере, поди, доверяют "казино"? А в ситуации выборов казино может играть за одного из игроков.

Да нет же! Третий раз повторяю: существует математически доказанный протокол на N игроков стасовать колоду и сдать N рук в закрытую, когда НЕТ доверенного лица. С казино-то вообще никакой протокол не нужен по сути!

Правда, не знаю (надо читать оригинальную работу) что там со сговором игроков. Но судя по тому научпопному описанию, что я читал (орт криптографа же) всё должно быть хорошо и с этим.

не могу насрать в каментах к следующей записи, а так хочется указать, что это у x86 проблемы с планкой 3.6GHz, а вот у некоторых других планка 5GHz взята.

Насрал бы в блоге, там анонимусов тоже берут.

Судя по википедии: IBM взяв 5Ghz на POWER6 откатились обратно на 4.25. Картинка ровно та же, что и у пентиумов, только на гигагерц выше.

там шрифт мелкий, ответ на мыло не приходит
z12 5.5
а фапальщики на ibm говорят, что power7 смотреть не надо, это большая ошибка.

Ответ на мыло приходит (если ты указал мыло и поставил галку).

Ну, 5.5ghz, хорошо. Через два года - будет 11ghz?

все равно некомфортно.

а через два года будет avx2 с 512бит?

это все несерьезно, а без дискламера о том, что это все для x86 -- много еще разных неверных утверждений велезает.

Дисклеймер про x86 был, но он был устным. Это же презентация от живого выступления.

А 512-битный AVX уже есть. В Xeon Phi.

Вдогонку. В x86 (не в Xeon Phi) по формальным флопсам удвоение будет уже через полгода, когда вживую будет AVX2 с FMA.

Не всем от FMA будет счастье, естественно, ну так и флопсы - формальные.

Xeon Phi не является процессором, потому вряд ли в нем есть AVX, в том смысле в котором это обычно понимается.

В смысле системы команд - очень даже есть.
Во только что скачивал по нему референс, насладись: http://software.intel.com/sites/default/files/forum/278102/327364001en.pdf

Пайлдрайвер/Вишера взял четыре гигагерца. И он очень грустно выглядит в малопоточных задачах. И в FP, впрочем, тоже не весело -- один FP юнит на два ядра.

В Эстонии голосование подписывается индивидуальной смарт-ID-картой. Карта гарантированно только у живых людей 1=1.
Исходники системы голосования может получить каждый подписав NDA c Институтом Кибернетики. Т.е. аудит сырцов провел в том числе и народ.
Установка и работа системы тоже проходит с участием независимых аудиторов.
Т.е. в целом система есть и работает успешно уже много лет.

Вот нашел пару документов на английском
http://www.vvk.ee/voting-methods-in-estonia/engindex/
http://www.vvk.ee/public/dok/General_Description_E-Voting_2010.pdf
http://www.ega.ee/files/27.10.06_Report_evoting_Conference.pdf
Ещё больше деталей наверное только на эстонском.

> Исходники системы голосования может получить каждый подписав NDA c Институтом Кибернетики.

И много народу подписало?

Конкретно не узнавал, но слышал от многих заинтересованность. И знаю как минимум нескольких эстонцев, которые скорее всего подписали, потому что глубоко копали эту тему.

Я не стал читать документы, суммирую по вашему сообщению.
Система основана на
1) вере в отдельную authority, которая считает живых людей и не выдает немножко лишних ID кому следует.
2) вера в то, что реально считала голоса та система, которую всем показывают.

1) там можно запросить список проголосовавших без информации о том, за кого именно они проголосовали и потом случайным образом попытаться с ними связаться. Кроме того, эти ID проходят по всем государственным базам и про них можно сделать запросы к другим системам, типа здравоохранения или налогов, так что особо много левых не насоздаешь.
2) любой может пожелать и стать аудитором, при достаточном желании, и проверить, что то, что показали по ТВ соответствует логам системы, которая работала в момент голосования.

Сама по себе возможность проверки "а ходила ли ты, Марья Ивановна, на выборы" - противоречит местной азиатской традиции.

Но да, с полным списком избирателей (и проверкой его краудсорсингом) и/или возможностью выборочной проверки (по выбору проверяющего, а то ведь выдадут только реальных персонажей) - легче. Хотя вот лично я бы такого проверяющего послал бы в известное место (и, надеюсь, таких посылальщиков - много)

В целом, так как эти ID проходят через все э-государство, то у живого человека будет "кредитная история" как минимум в нескольких независимых системах:
- родился и получил паспорт - система загса и учета населения
- работает - налоговая система
- болеет - система здравоохранения и рецептов
- не работает - система учета безработных
- открыл фирму - регистр фирм
- пенсионер - пенсионная
- учится/учился - э-школа, регистры школ и университетов
- банки
- умер - система кладбищ
Большая часть этих системы уже электронная и связана общей электронной магистралью "X-путь", так что во всех из них можно сделать проверку по ID, которое у каждого в Эстонии уникально.
Т.е., я думаю, с 99.9% можно выяснить не вставая с кресла, что человек реально существовал. А ломать всю эту систему будет очень накладно и вылезут косяки в статистике, перекрестных ссылках, да и позже системы начнут глючить, пытаясь что-то делать с этим "людьми". Т.е. подбрасывать мертвые души почти не реально.

Кстати, у голосовалки ещё есть фича, что каждый голосующий со своим приватным ключом может проверить, что его голос всё ещё учтен и не изменен.

Это же прямой путь в тоталитаризм -- глобальная слежка за жизнью и всё такое. Даже не знаю, что хуже.

Читайте же, наконец, Шнайера!
Вот вам копипаста (из pdf-ки немного криво, звиняюсь): http://pastebin.com/iRCF14DT

Давайте классифицируем задачу.

Проблемы, видимо, в следующем:
1) Избирком мухлюет путём голосования "мёртвыми душами".
2) Избирком мухлюет путём голосования "живыми душами", де-факто не голосовавшими.
3) У избирателя должна быть возможность проконтроллировать факт того, что его голос учтён правильно.

Пути решения этих проблем могут быть:

1) Разделить authorities: Избирком не контроллирует IDшники голосующих. Например, по эстонскому варианту: каждому избирателю выдаётся карта, как TFN (ИНН?) и т.д.
Карта должна быть отдельной, так чтобы у работодателей и других всяких лиц не было причин заставлять её "предоставить по месту работы" и т.д.
Карточку (ID) можно сделать либо постоянной, либо "одноразовой", получаемой в процессе enrollment'а на конкретные выборы (по типу повестки в военкомат). Естественно, enrollment'ом (выдачей карт/ID) должен заниматься не тот департамент, который считает голоса (не изберком), а, скажем, паспортная служба (которой карты разослать, остальное пофиг).
Банковские карты бы тоже подошли, там есть проблема в отсутствии уникальной "межбанковской" идентификации человека и гарантировании условия "1 выстрел - 1 труп".

2) Как в некоторых странах (Бельгия, Австралия) сделать голосование обязательным. Не проголосовал - штраф. Не проголосовал несколько раз - более серьёзные последствия. Лично я считаю, что это правильно: сходи раз в год, потрать 15 минут, плюнь в лицо всем этим уродам, агитирующим не ходить на выборы, от тебя не убудет. А то ругать результат потом все горазды :) Но это лирическое отступление :)
С одной стороны "дядя Вася не ходит но и штрафов не получает" в народе всплывёт достаточно быстро, да и сам Вася сможет, благодаря #1 и #3 посмотреть за кого и как его "проголосовали". С другой стороны тут уже денежная заинтересованность получается, мухлевать таким образом становится убыточно по статье "упущеная прибыль".

3) При наличии уникального идентификатора голосовавшего проверить _свой_ голос тривиально, чужой - невозможно. За исключением случаев "логинься и показывай, а то уволю", от которых решения нет, но нет и большого смысла: после драки кулаками если и машут, то не многие и недолго.

Естественно, определённый уровень доверия технической стороне всё равно требуется. Например, технически можно реализовать сценарий "я считаю твой голос за ЕР, а когда ты спрашиваешь проверку, показываю КПРФ". Но подобные вещи трудно реализуемы, так как уже на этапе проектирования/программирования всплывёт необходимость "двойного" хранения данных и т.д, то есть, возможности махинаций придётся проектировать как часть функционала системы, что дико.
Дополнительно можно выдвинуть к системе ряд требований, осуществляющих кросс-верификацию данных: аналитика по разным разрезам должна сходиться тютелька в тютельку и т.д.

Опять же, как правильно было замечено, сценарии вида "Миша, ты ведь хороший человек, ради покойной Сары проголосуй за СРов" и "Голосуй за ЛДПР или я твой сэстра зарэжу" (а человек идёт и голосует) на прямую не могут быть адресованы ни одной (включая бумажно-бюллютенно-наблюдательную) системой голосований.

Вообще было бы даже интересно что-то подобное сделать :)

Государственная authority конечно же навыдает ID мертвым душам (плюс есть еще проблема утерянных). И конечно же сохранит дубликат этих ID у себя для симуляции.

Ну так ведь нет единой государственной authority.
Мухлевать между ведомствами уже гораздо сложнее и рисковее. Это же нужно, например, МВД (или паспортно-визовой службе) отдельно дать команду произвести IDшников больше, чем нужно, например. Сейчас мухляжи происходят в рамках одного ведомства, достаточно с "волшебником" договориться - и всё.
А паспортная служба кроме производства IDшников эта служба к выборам никак не относится, она рутинно выпускает IDшки.
И для того, чтобы смухлевать на этом этапе нужно изменить процессы этого ведомства, вовлечь его в совершенно его не касающийся и нелогичный процесс. Это уже как чёрным по белому, сразу видно. И сейчас ведь при мухляжах не печатают левых паспортов для несуществующих избирателей, хотя, казалось бы, государственная authority, могли бы, печатай да выбирай :)
Ан нет, это уже слишком сложно.

Далее - кросс-чеки. Система должна уметь сопоставить данные проголосовавших IDшников с данными фактически имеющихся. Поскольку у нас где-то в ПВР есть подобная связь, то сделать это несложно. Это просто требование к системе, пусть оно будет и пуст оно чекает. Плюс ещё десяток подобных верификаций в требованиях отразить.

Ну и если хочется, то можно, опять же, "наблюдателей" от партий приплести, пусть, например, выборочно проверяют некий процент проголосовавших IDшников на предмет их реальности. Вручную, например.

Девиртуализировать и спрашивать самого человека нельзя, я думаю. Точнее, можно, но только по его желанию. Да и тут нет гарантий, что человек ответит как реально проголосовал, может стестяться, или ещё чего-то.
Да и смысла нет - если каждый будет иметь возможность проверить за себя, то достаточно большой процент населения таки проверит.
"Наблюдателям" и системе достаточно только обеспечить "реальность" голосовавших IDшников.

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

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

Ну imho не так сложно как кажется, надо просто постановку задачи правильно определить.

Есть и старые методы, те же наблюдатели, есть и статистика, можно добавить и выборочные проверки. Ну и добавляются проверки персональные.

Но вот возвращаясь к задаче, нужно не искать 100% алгоритм в радикалах, а так управлять рисками, чтобы получить приемлемую точность и низкую стоимость проверки.

Скажем, вбросы в размере 1-2% наверное уже не оправдывают даже очень низких рисков по вбросам, а поймать их уже вполне по силам сравнительно дешёвой проверкой.

Мне в голову приходят два варианта:

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

Да, оба метода будут работать, тем более не так много надо проверить. Можно добавить уже существующие привязанные ID (ИНН, пенсионка).

Но вообще-то прежде чем проверять неплохо бы определить что мы будем проверять, то есть смотреть в комплексе и методику выдачи сертификатов и методику проверки.

А вот на http://coursera.org есть целый курс Securing digital democracy. Может, там чего интересного скажут?..

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

Это - правильная и хорошая идея. Только вот как тут отсечь сети доверия виртуалов - я не понимаю.

В электронном голосовании меня смущают 3 вещи:
1. Отсутствие оборудования и навыков работы с ним в глубинке;
2. Свобода выбора в воинских частях и местах заключения;
3. "Старики" не имеют/не могут юзать, но имеют право _и_ "школьники", которые наоборот;

По сути:
Использование Центром генерации ключей(е-бюллетеней) контроля медленности ввода большого количества персональной инфы (например, только с помощью виртуальной клавиатуры (можно со случайным расположением символов)) и учёт айпишников (в полный рост встанут проблемы по п.п. 1 и 2).
+
Промискуит моде для всех (желающих)кандидатов на выдаваемые сертификаты.
+
Промискуит моде для всех (желающих)кандидатов трафика в избирком.
+
Ключ и выбор шифруются в едином пакете.
+
(Возможно) клиент_голосовалки дублирует этот пакет на сторону с доступом для всех вообще только на чтение.

Я не понимаю, каким образом это все убережет от мертвых душ.

Медленный ввод и единственная сессия на ключ сделают невозможным заюзать автомат.
Как и контроль скорости запросов с 1 ИП.
Можно ещё сделать строго последовательную обработку(медленную!) запросов с 1 ИП.
Т.е. метОда, схожая с борьбой против ДДоС. Медленная и последовательная генерация сильно затруднит голосование мертвых душ с одного узла.
Виртуальная клавиатура, даже без бегающих символов, селает написание автомата весьма нетривиальным.

Контроль работы в виртуалке обрежет кластеры.
Контроль ИП_запроса = ИП отправки + в рамках 1 сессии + таймаут обрежут продажу полученных е-бюллетеней.

Работа бота может и прокатит, но тогда пойдут коллизии по людям и ИП.

Вы мне только расскажите, как будет голосовать деревня и старики, которые боятся шайтн-машины.
И что помешает школьнику проголосовать за грандпэарентс и не_голосующих родителей?

Вот вы решаете какую-то задачу, которую придумали сами себе.

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

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

Не-не-не. :)
Упрощённо идея в следующем:
Все (достаточно(?)) весь исходящий е-бюлл трафик отдавать "по 1 шнурку", который и маскарадить оппонентам. Тогда любой другой робот насоздаёт кучу неотмаскараженных ключей, которые автоматоматом фильтруются сравнением баз. - режем внешний вброс.
Все входящие в избирком е-б тоже приходят на единственный "шнурок", где снова маскарадятся оппонентам. - сравнением баз режем как внутренний вброс, так и возможную модификацию избиркомом.
Сравнение первой и второй(расшифрованной) баз даст некую гарантию от транспортных "чудес" и опять-таки внешних вбросов.

Настойчиво повторю вопрос, что делать людьми старше 60, Тьмутараканями, солдатами, уголовниками/поселенцами и "школотой". ИБО Вам ли не знать виртуализация любого опроса на не_АйТи_тематику автоматом делает выборку не_репрезентативной.

Ну то есть от интернет-голосования мы приходим опять к голосованию на участках?

А какие Ваши предложения?! ;-)
Скажем, из десяти пожилых моих знакомых, ИМЕЯ и домашний ноут и выход в инет, НИКОГДА ими не пользуются шестеро, и ещё двое с трудом используют скайп и под диктовку ВКонтакт. И это не деревня Грязюкино! При этом все они ВСЕГДА голосуют.

Я, с одной стороны имею все возможности голосовать и ногами и через инет. С другой, не голосую уже лет 10 или больше - нет ни стимула, ни кандидатов, ни "против всех". Хотя не выходя из дома проголосовал бы, ...наверное. ;-)

Зато школьники и более радикализованы(те, которым не "всё пох") и в состоянии нагенерить валидные е-б за всю семью вместе с иногородними родственниками. А права голосования они ещё не имеют в силу возраста.

Что и как делать в нас. пунктах, где 1-2-3 компа и ни одного интернета? Отсеивать по упомянутому "имущественному цензу"? А малообеспеченные? Тоже "Нет компа - нет избирателя?!"

Куча работяг обходятся телефоном и телевизором, что с ними делать?

В армии и на флоте компьютерная техника, безусловно, есть. Но кто даст использовать её в общегражданских целях??! Пара компов на в\ч и >>100 солдатиков...Я себе плохо представляю организацию процесса. С моряками совсем весело... :-D
И т.д.

Кстати, я бы сделал бюллетень двойным "ЗА" + "ПРОТИВ". Это могут быть очень разные вещи.

У меня не предложения, а конкретно заданный в исходном посте вопрос
"Не обязательно те, что закончились вчера, а вообще любые с интернетным голосованием"

С избирательными участками - стандартная процедура с бумажками более-менее все гарантирует при наличии внешнего контроля. А при его отсутствии - там наголосуют за неявившихся. Т.е. нет смысла особого связываться с "машинами для голосования".

Про интернет голосование я Вам озвучил и возможный метод защиты и реальные проблемы.

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

Есть, правда, неустранимая без сторонней независимой базы, по всей видимости, возможность "перепаковать" ответы не трогая ключа. Только нужно прикинуть соотношение: доступные "перепаковщику" мощность/стойкость шифрования/объём исправлений.

О!
Есть мысль, что подмена ДНС на локальном компе и/или генерация там же "правильного выбора" голосующего разрушает предложенную мной систему.
:(

Кстати, доводя идею двойного бюллетеня до логической завершённости, я бы:
1. Вставил пункт "Я голосовал";
2. Сделал валидными ВСЕ неисправленные бюллетени, с любым набором галок.
3. Считал и ПУБЛИКОВАЛ отдельно "ЗА" и "ПРОТИВ".
4. Если хоть у 1 кандидата баланс положительный - выборы состоялись.

+
1 сессия клиента_голосовалки обрабатывает единственный ключ.
+
Определение клиентом_голосовалки работы в виртулке. :)
+
Ключ протухает и по достаточно короткому тайм-ауту от момента выдачи и по формальным признакам.
+
База (и её копия на стороне) протухших ключей с доступом для всех вообще только на чтение.