Comments 37
Электронное голосование в текущем виде это фарс и профанация, не далеко ушедшая от тупой голосовалки на сайте с привязкой к ЕСИА.
Уже писал вкратце о системах электронного голосования здесь. Вот этот комментарий тоже в целом хорошо описывает дело (кроме части с блокчейном и пост-квантовой криптографией).
Подобные письма в спортлото никак не помогут, пока у выдающих ТЗ цели отличаются от целей граждан.
Новые разработки в области хранения и верификации личных данных
Что? Это какие такие "новые разработки"? Криптографии с публичным ключом и использованию HSM (частным случаем которых являются ЭЦП-токены) уже сто лет в обед. Если вы о чём-то содержащем слово "блокчейн" в описании, то сразу забудьте, в случае электронного голосования почти гарантированно задача решается значительно проще, ибо у нас неизбежно есть центральная организация ответственная за проведение выборов (обращаю внимание, деревья Меркла != "блокчейн").
Ну кстати да, вполне можно все свалить в одно дерево меркла, а раз в десять минут его хеш пихать в публичный блокчейн. Тут же одноразовая задача, цепочка блоков вообще лишняя.
А так как дерево будет append only, то мухлеж при такой схеме можно как раз в реальном времени видеть.
В публичный блокчейн ничего пихать не надо, достаточно записи в оперативно обновляемой "цепочке" Меркла подписывать подписью органа отвечающего за проведение голосования (публичный ключ органа фиксируется условным постановлением центризбиркома перед голосованием). Если будет попытка переписать историю, то наблюдателям в качестве доказательства будет достаточно предъявить стёртую ветку.
Вообще говоря, даже и "цепочка" Меркла не особенно и нужна, ибо никаких принципиальных гарантий против игнорирования или подмешивания голосов она не даёт. Вполне достаточно при отсылке голоса (доказательства с нулевым знанием) получать обратно голос подписанный органом. По окончанию голосования публикуется (подписанный) архив подписанных голосов и производится подсчёт результатов. Подписанный голос не включённый в архив будет доказательством мухлежа (игнорирования голоса). От подмешивания же нужно защищаться другими средствами (см. комментарий по первой ссылке). Для дополнительной прозрачности полученные голоса вполне можно публиковать онлайн, но это больше для красоты, нежели для каких-то серьёзных гарантий.
Можно долго рассказывать о том, что мы не можем сделать, но сейчас как я считаю, есть возможность сделать что-то полезное для того, чтобы защитить права эксплуатируемого большинства.
Наша первоочередная задача сейчас, как я ее вижу — воспользовавшись возможностью профессиональной экспертизы, настоять на публичности эффективного технического аудита системы электронного голосования, благо использованная платформа (Exonum) позволяет это сделать средствами самой платформы.
Я полагаю, что мы — пролетарии умственного труда, — имеем значительное преимущество по сравнению с нашими предшественниками: экспертные знания в своей области деятельности. Иногда, как сейчас, наступает момент для того, чтобы эти знания можно было применить на благо всех трудящихся масс.
Прежде всего, с нашей стороны, нужно выработать внятные и исполнимые относительно малой кровью, требования к существующей системе, заметно повышающие ее устойчивость к фальсификации.
Из тех, которые приведены в посте, это например отказ от регистрации по осведомленности о личных данных на mos.ru, развертывание узлов аудита блокчейна, настройка анкоринга, доступ ко всем без исключения исходным кодам, контроль за развертыванием системы.
Часть исходных текстов системы и кое-какие детали уже известны, их можно изучить и по мере сил использовать в экспертизе, см предыдущий пост
Выработанные требования должны быть таковы, чтобы представители Голоса могли их преъявить на своих встречах с разработчиками системы.
Вот этим самым — выработкой требований, — я сейчас и занимаюсь по мере сил.
Допустим, но как тех, кто противится контролю и открытости, заставить реализовать эти требования? Просто попросить? Что делать, когда они скажут "нет"?
Давайте по очереди. Сделаем экспертизу, отдадим Голосу, они пообщаются, получат какие-то ответы, будем смотреть — какие именно. Разработчики опубликовали бОльшую часть исходного кода системы — это говорит об их заинтересованности в диалоге с сообществом.
Прежде всего, спасибо, что присоединились к обсуждению.
Судя по всему, от обсуждения того, что мы имеем, мы начинаем плавно переходить к обсуждению того, что у нас должно быть.
Разумеется, э/голосование в текущем виде неудовлетворительно, о чем было сказано еще в предыдущем посте. Приведение системы в относительный порядок — это первоочередная задача, и она имхо вполне решается использованием тех инструментов, которые задействованы в текущей разработке. Об этом я и пишу здесь в основном.
Без использования публичного аудита и контроля за развертыванием (централизованной части системы) использование технологий контроля целостности (шифрование, блокчейн и т.п.) не увеличивает публичного доверия к системе — ведь в этом случае, контроль целостности остается в руках того же исполнителя, контроль за которым собственно и должен происходить с этой точки зрения.
Опираясь на сообщество независимых наблюдателей, ждущей от нас экспертизы проекта, мы можем повлиять на постановку ТЗ. Как вы можете заметить, в обсуждении деталей эксплуатации системы с разработчиками участвует представитель Голоса например.
Мы можем долго препираться друг с другом о том, как можно было бы наилучшим образом устроить систему голосования. Да, я тоже думаю, что для организации системы голосования вовсе не обязательно устраивать пляски с бубном (блокчейном). Но вот так сложилось, что мы именно сейчас столкнулись с именно с такой системой. Я предлагаю воспользоваться возможностью и извлечь из этого факта максимальную пользу. Согласитесь, блокчейн, хоть и вероятно, избыточен в таком применении, но вполне достаточен для того, чтобы прикрыть часть системы голосования от махинаций. Для этого, нам нужно лишь настоять на некоторых улучшениях, которые не требуют от организатора никаких усилий, кроме организационных (аудит, анкоринг, контроль за развертыванием, доступ к исходным кодам и скриптам развертывания).
Если вы о чём-то содержащем слово "блокчейн" в описании, то сразу забудьте, в случае электронного голосования почти гарантированно задача решается значительно проще, ибо у нас неизбежно есть центральная организация ответственная за проведение выборов
Центральная организация не означает, что блокчейн не применим, например использованная ДИТ система Exonum как раз и предполагает такой способ использования, предлагая разделение узлов системы на два типа, ответственных за генерацию блоков, и ответственных за аудит. Мы можем только сказать спасибо разработчикам за выбор этой системы. Наша очередь действовать — нам нужно настоять на развертывании узлов аудита у независимых наблюдателей.
Что касается регистрации, то на ее примере я полагаю, хорошо заметно прежде всего, что детали административной верификации исходных данных в настоящих обстоятельствах гораздо важнее технических деталей реализации контроля целостности собранных данных. Регистрация московских участников голосования на mos.ru на основании осведомленности о личных данных, вызвавшая скандал на идущем сейчас голосовании, — хороший пример этому. При всех недостатках, ЕСИА оказался по всей видимости, значительно более устойчив к фальсификации за счет требования о непременном личном визите к уполномоченному регистратору.
блокчейн <..> вполне достаточен для того, чтобы прикрыть часть системы голосования от махинаций
Ещё раз, какие принципиальные гарантии даёт блокчейн в данном случае по сравнению с простой публикацией подписанных блобов на ресурсе органа проводящего голосование? Попробуйте нормально построить модель угроз и показать конкретно для чего здесь нужен блокчейн. Поймите, здесь это не более чем snake oil, который только делает систему сложнее, в то время как к ней доверие и без того низкое.
Согласен с вами, с точки зрения безопасности, в данных обстоятельствах, блокчейн как я понимаю, и не отличается от публикации подписанных блобов. Ну так я и не говорю, что блокчейн необходим, я утверждаю — он достаточен, совместно с публичным аудитом.
Если вы готовы построить полную модель угроз для этой задачи, просто сделайте это, вам все будут благодарны.
глядя на организацию и представление физических избирательных участков для голосования людей можно сделать вывод, что контроль над электронными голосами — наименьшая из проблем. А в сравнении с проблемами контроля над бумажными бюллетенями, проблемами контроля за электронным голосованием вообще можно пренебречь
Это ортогональные вещи. Отменить уже данный голос просто: в новой транзакции указываем, что вон тот предыдущий голос заменяется этим, доказывая владение ключом, которой подписана предыдущая транзакция. Деанонимизация происходит не здесь.
Это публичный ключ, его мало смысла уничтожать. Можете принести свою копию.
Ваш голос шифруется публичным ключом, созданным для этого голосования. Приватная половинка ключа при генерации разделяется на части и раздаётся нескольким независимым организациям-наблюдателям. Расшифровать голоса обратно можно только приватным ключом, который собирается воедино лишь после завершения голосования. До этого момента никто не может узнать содержимое конкретного голоса.
Ещё нужен какой-то механизм проверки, что предыдущий голос заменяется тем, кто его изначально давал. У вас тоже своя ключевая пара. Транзакция с вашим зашифрованным голосом подписана вашим приватным ключом, который есть только у вас. Предыдущая транзакция подписана тем же ключом. Таким образом новая транзакция может включать в себя ссылку на предыдущую, которую она заменяет, и подпись доказывает, что действительно вы передумали, а не кто-то другой решил исправить ваш голос.
Контролирующие могут протерять свои ключи, которыми они визируют, что вы действительно существуете и при них показали, что ваш голос технически корректный. Если виза контролёра обязательна для приёма голоса в систему, то решение очень простое: делаем утерю ключей нарушением статьи за препятствие осуществлению избирательных прав.
Транзакция с вашим зашифрованным голосом подписана вашим приватным ключом, который есть только у вас.
Про этот приватный ключ я и говорю.
Ситуация: ваш начальник принуждает пройти процедуру получения приватного ключа. Ключ остаётся у него либо уничтожается после «правильного» голосования. А жаловаться Вы не пойдёте т.к. потеряете работу (или Вас убедят в этом). Как вариант Вы можете работать в структуре куда надо жаловаться о нарушениях :).
Если сделать механизм повторного получения ключа то теряем доверие к системе которая выдаёт ключи.
Если сделать способ получения нового ключа, то нужна привязка каждого голоса конкретному лицу для отмены записей сделанных ранее.
ваш начальник принуждает пройти процедуру получения приватного ключа. Ключ остаётся у него
Терморектальный криптоанализ выходит за рамки системы. От такой атаки никакая криптография и блокчейны не защищают, потому что нарушается их фундаментальное предположение о том, что ваша подпись утверждает ваше свободное волеизъявление.
Блокчейн и криптография тут никак сами по себе не помогают, потому что ваша свобода воли — только ваша свобода воли. Вы — не смартконтракт. Данные в системе не могут вас вынудить поступить каким-то образом.
Если сделать механизм повторного получения ключа то теряем доверие к системе которая выдаёт ключи.
Почему теряем? Просто у неё другой подход к аудиту и ответственности. Все зарегистрированные ключи записываются, доступ к копиям сертификатов отзыва логгируется, и они торжественно сжигаются после завершения голосования.
нужна привязка каждого голоса конкретному лицу для отмены записей сделанных ранее
Конечно нужна. Но эта привязка не обязана связывать вас с другими голосованиями или другими реестрами.
Лично меня бы удовлетворил обычный txt/xls файл, где в строке указан уникальный ключ голосовавшего (можно получать на госуслугах) и голос. Файл публикуется в доступном месте, где каждый может его скачать и убедиться что его голос учтен правильно, и посчитать, что кол-во голосов соответсвует объявленному.
Я не очень понимаю, зачем нужна тотальная анонимность.
Как обычно — оставлю это здесь.
У нас в Эстонии уже всё готово для электронного документа оборота, но даже у нас хотят полностью отказаться от электронного голосования.
Да, принуждение — это действительно, большая проблема. Я считаю, что принуждение к голосованию должно быть осуждаемо обществом и наказываться, как воровство или разбой. Тогда и желающих количество подсократится.
Пункт "Контроль развертывания" именно об этом
вот мне просто интересно, какую часть того, что я так старательно для вас писал, прочитали. Или вам термин терминальные сессии ни о чем не говорит?
Требования по контролю за электронным голосованием