Тайны Дистанционного Электронного Голосования в России нет

image-loader.svg

TL; DR в Российских системах электронного голосования нет достаточного обеспечения тайны голосования, и похоже это сделано специально

Executive summary: В Российских системах Дистанционного Электронного голосования допущена организационная ошибка при постановке задания, позволяющая при использовании побочного канала сбора данных о пользователях (на уровне логов вебсервера) организатору голосования нарушить тайну голосования. Разработчики специально обходят тему наличия и необходимости ликвидации такой уязвимости.

Я же более двух лет стараюсь внимательно следить за разработкой систем Дистанционного Электронного Голосования (ДЭГ) в России. Пиратская Партия, делегировавшая меня на эту грустную работу выступает за прямую электронную демократию, но то, что сейчас под видом электронного голосования пытаются внедрять российские власти, не является шагом к электронной демократии, а скорее — очередным элементом строительства цифрового ГУЛАГа.

Разрабатываемые системы обладают от рождения множеством недостатков, с которыми бороться стоит не только техническими, сколько организационными мерами, но как раз такие меры организаторы выборов — заказчики систем отказываются прорабатывать. К явным недостаткам относятся невозможность контроля за составлением списка избирателей (мёртвые души), невозможность контроля за голосованием лично самим избирателем, «черный ящик» системы голосования, работа над бюллетенями неизвестного и очень широкого круга лиц, невписываемость электронного голосования в существующее законодательство, сохранение тайны голосования.

В самом общем виде требования к организации голосования на выборах описывает Федеральный закон 67-ФЗ «Об основных гарантиях избирательных прав и права на участие в референдуме граждан Российской Федерации». Его шестой пункт первой статьи гласит, что никакой иной акт, касающийся выборов, не может уменьшать права, гарантированные этим законом.

Статья 1 пункт 6 ФЗ-67

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

Вообще, весь текст закона можно прочитать на сайте ЦИК РФ.

Сейчас я бы хотел поговорить о сохранении тайны голосования. Статья 7 67-ФЗ гласит: «Голосование на выборах и референдуме является тайным, исключающим возможность какого-либо контроля за волеизъявлением гражданина» и, значит, ДЭГ должно исключать возможность контроля. Тайна голосования важна для того, чтобы обеспечить свободу волеизъявления, в частности, не давая возможность наказывать поддерживающих «неправильных» пплитиков. За свежими примерами далеко ходить не надо — наказание нелояльных работников метрополитена.

Для сохранения тайны голосования в Российском законодательстве оговорены специальные меры: однотипные бюллетени, кабинки для голосования, работа с бюллетенями исключительно независимых комиссий, запрет на фиксацию действий избирателя на участке, и т.п.

Поскольку в случае с голосованиями, проводимыми с помощью информационных систем, меры, применяемые для обычных голосований, не годятся: бюллетени фактически пронумерованы (это вообще-то противоречит 67-ФЗ), от действий пользователей остаётся слишком много следов, то для электронных голосований математиками давно придуманы специальные алгоритмы, позволяющие обеспечивать тайну голосования. А из возможностей, с трудом предоставляемых бумажными выборами, обязательной считается возможность проверки избирателем правильности учёта его голоса — математика даёт такие возможности.

В Википедии есть хорошая статья, описывающая такие алгоритмы: https://ru.wikipedia.org/wiki/Протоколы_тайного_голосования

В существующих системах голосования от Департамента Информационных Технологий Москвы (далее ДИТ) и от Ростелекома/ЦИК (РТК) на текущий момент применяется что-то очень похожее на разновидности «протоколов двух агентств»: у ДИТ два агентства с какими-то добавками и протокол Хэ-Су у РТК. Хотя нигде в рекламных материалах и статьях разработчиков они не будут указаны под такими названием, догадаться можно только по косвенным причинам и посмотрев отдельные приоткрытые кусочки кода. (репозитории ДИТ, РТК) И нам об этом предпочтут не рассказать, потому что, помимо красивой математики, для работы такого протокола обязательно требуются «два агентства»: одно выдаёт бюллетени, а второе — проводит подсчёт. И для обеспечения тайности голосования важно чтобы эти агентства не могли обмениваться информацией. В современных протоколах, например Хэ-Су, заложены меры, усложняющие сговор агентств, но требуются и организационные меры.

В российских же системах двух агентств нет: оба — и ДИТ и РТК — и выдают бюллетени и пересчитывают их. Рекламные материалы и пропагандисты интенсивно рассказывают про какие-то меры, позволяющие охранять тайну голосования, но они аккуратно умалчивают о необходимости двух независимых сущностей для выдачи и подсчёта бюллетеней. А ещё нам не рассказывают о том, что протоколы тайного голосования из статьи в Википедии — это примерно как сферический конь в вакууме: для их аккуратной реализации в жизни требуется множество организационных мер, и эти протоколы не учитывают возможности нарушения тайны голосования с использованием «побочных каналов». И это даёт возможность нарушить тайну голосования злонамеренному организатору.

В предлагаемом реальном голосовании слово «отправляет» из описания протоколов в Википедии оставляет кучу следов, позволяющих так или иначе идентифицировать пользователя. Сопоставление логов вебсерверов, проводивших авторизацию пользователя в ЕСИА/mos.ru, выдающих бюллетень, «анонимно» принимающих голос избирателя позволяют ДИТу и РТК однозначно сопоставить пользователя и его голос. Ведь в логах вебсервера оказываются IP адрес, версия браузера, версия ОС и т. п. И поэтому ДИТ имеет возможность однозначно сопоставить расшифрованный голос в итоговом протоколе с зашифрованным голосом в блокчейне, а по ИП адресу и другим следам выяснить, кто же этот голос оставил. В случае с РТК всё немного сложнее, там применяется гомоморфное шифрование, фактически выбор избирателей суммируется не расшифровывая конкретные голоса. Но тут злоумышленному организатору голосования на помощь приходит блокчейн: у РТК есть голоса, поданные в последовательности. Они знают в какой последовательности сохранили голоса конкретных пользователей, и применяя гомоморфное суммирование не ко всем голосам, а выбрасывая из блокчейна по одному и суммируя остаток, они смогут понять, какой же выбор был сделан конкретным пользователем.

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

Расположившись где-то здесь, злоумышленник из числа организаторов выборов  вычислит тебя по ИП! А потом и выяснит как ты проголосовалРасположившись где-то здесь, злоумышленник из числа организаторов выборов вычислит тебя по ИП! А потом и выяснит как ты проголосовалОб информации о системах Дистанционного электронного голосования

В публичном пространстве информации о системах ДЭГ крайне мало.
Разрботчики публикуют её крайне аккуратно, чтобы не вызвать излишний интерес и критику. В основном общие слова, и пиар.

Картина выше о системе разрабатывемой РТК доступна из материалов на сайте Центральной Избирательной Комиссии.

Схемы современной системы от ДИТ в публичном пространстве нет.

Я обращал внимание разработчиков этих систем на наличие подобной уязвимости (ДИТу аж с эксперимента в 2019-м году). К сожалению, в ответ получал или явную неправду или пропаганду:

  • в 2019-м году обещали сбор бюллетеней и подсчет результата отдать в МГИК. Но на разборе после эксперимента выяснилось, что «ну не смогли».

  • На голосовании по поправке победно кричали, что «да хоть Навальному отдадим, но не отдадим, потому что безопаснось». «И вообще, никто кроме нас (ДИТ/РТК) в России не может обеспечить такую надёжность и безопасность ИТ системы, поэтому ну не может быть у нас второго агентства».

  • «Сергуниной клянёмся, что это у нас разные подразделения и никто не может сопоставить логи в такой схеме».

  • Пропагандисты подпевают: «это не задача ДИТ/РТК организовывать два агентства, это должны делать МГИК/ЦИК, а раз они ничего не говорят…»

  • «Если такая уязвимость существует теоретически, то пока в суде не доказано, что её использовали, то и обращать на неё внимания не стоит.» (WAT?)

  • «Ну пользователь может постараться, скопировать ссылки, получив бюллетень подключиться к другому провайдеру и поменять идентификацию браузера и тогда никто не узнает» (вы в это верите?)

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

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

Можно рассказать и о других недостатках/уязвимостях применяемых сейчас в России ДЭГ. Вот эта конкретная уязвимость с нарушенной тайной голосований мне кажется наиболее неприятной для голосующих избирателей и наиболее покрываемой разработчиками и пропагандистами.

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

И ещё, из до сих пор не опубликованного нет деталей и подтверждения корректности работы системы ДИТа в части «отложенного» голосования. Там нельзя быть уверенным в корректности итогового результата.

А РТК ещё в 2020-м году обещал в статье на Хабре рассказать про используемое в его системе доказательство с нулевым разглашением, а воз и ныне там.

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

Мы можем только обращать внимание на эти противоречия. Если читателям будет интересно, я попробую помимо этой обозначить и другие организационно-технические проблемы. Нормативные проблемы пытается мониторить и рассказывает нам наблюдательское движение, например ​​https://www.golosinfo.org/articles/145390

© Habrahabr.ru