← Все статьи

Почему голосование онлайн намного сложнее, чем банковские операции онлайн

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

Март 2019 года. Где-то в офисах швейцарской почты в Берне принимается решение, которое выглядит как триумф демократической прозрачности. Федеральное почтовое управление Швейцарии и его испанский поставщик Scytl собираются опубликовать полный исходный код своей системы интернет-голосования — той самой, которая предназначена для обязательных национальных референдумов. Любой может её прочитать. Общественность может её проверить. Инженеры гордятся.

Шесть недель спустя три независимых исследователя — Сара Джейми Льюис, Оливье Перейра и Ванесса Тиг — публикуют работу с названием, заимствованным у Магритта: Ceci n'est pas une preuve. «Это не доказательство».

Они обнаружили люк, спрятанный в криптографическом перемешивании системы. Математика сгенерировала «доказательство» того, что все голоса подсчитаны правильно. Доказательство проверялось. Оно прошло все проверки. И оно было ложью — потому что любой, кто знал значения люка, мог сгенерировать доказательство, которое проходило проверку, при этом тихо переставляя голоса под ним. Весь смысл заявления системы об «универсальной проверяемости» состоял в том, что вы не должны были ни кому доверять. Это заявление было ложным.

Swiss Post и Scytl признали обнаружение. Система была приостановлена.

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


Почему ваш банк и ваша избирательная урна устроены по-разному

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

Именно это невозможно для избирательного бюллетеня.

Тайное голосование — изобретённое в Австралии в 1850-х годах и принятое в демократиях на протяжении следующего столетия — было не любезностью конфиденциальности. Это была система безопасности. Австралийская избирательная комиссия ясно излагает логику: потому что люди голосовали публично, они были уязвимы для запугивания и принуждения. Решением был унифицированный государственный бюллетень, отмеченный в приватности, без связи между бумагой и человеком, который его отметил. Британия формализовала тот же принцип в Законе о тайном голосовании 1872 года, положив конец эпохе открытого голосования специально для разрушения рынка скупщиков голосов. Федеральный суд США выразил это ясным современным языком в Rideout v. Gardner (2016): реформы тайного голосования были приняты для «борьбы с широко распространённой скупкой голосов и запугиванием избирателей» — потому что покупатель не может принудить исполнение покупки, которую он не может проверить.

Вот структурное столкновение: банковский чек делает транзакцию доказуемой; чек избирателя делает голос продаваемым.

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

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

Это фундаментальное напряжение. Всё остальное — вариация этой темы.


Эксперимент в 48 часов, который убил пилотный проект

В сентябре 2010 года Совет выборов округа Колумбия решил запустить систему возврата интернет-бюллетеней для зарубежных и военных избирателей. Перед развёртыванием на реальных бюллетенях они открыли её для публичного тестирования. Хороший инстинкт.

Команда Университета Мичигана во главе с Дж. Алексом Халдерманом обнаружила уязвимость в программном обеспечении и получила почти полный контроль над серверов пилотного проекта примерно за 48 часов. Они могли изменить каждый поданный голос. Они могли просматривать секретные бюллетени. В качестве демонстрации они запрограммировали систему на воспроизведение боевого гимна Университета Мичигана после каждого смоделированного голоса. Вторжение оставалось незамеченным официальными лицами в течение нескольких дней.

О.К. отказался от плана. Рецензируемая статья была опубликована на Financial Cryptography 2012.

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

Большинство развёртываний не тестируются таким образом. Большинство просто запускаются.


280 000 голосов уже подано до того, как кто-то заметил дыру

Март 2015 года. Новый Южный Уэльс находится в разгаре выборов. Онлайн-система iVote штата уже собрала примерно 280 000 голосов, когда Дж. Алекс Халдерман и Ванесса Тиг садятся проанализировать работающую систему извне.

Они обнаруживают, что iVote загружает код с внешнего сервера аналитики через соединение, уязвимое к тогда известным слабостям TLS — те самые дефекты, которые активно эксплуатировались в том году под названиями типа FREAK и Logjam. Атакующий в сети, расположенный между избирателем и сервером, мог бы манипулировать голосами и компрометировать конфиденциальность бюллетеня. Они также обнаруживают, что телефонный сервис проверки голосов iVote — функция, разработанная, чтобы позволить избирателям подтвердить свой бюллетень — сам подвержен манипуляции.

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

Рецензируемый анализ был опубликован на E-Vote-ID 2015. Избирательная комиссия Нового Южного Уэльса оспорила масштабы риска, как обычно делают власти.

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


Люк в доказательстве

Вернёмся в Швейцарию в 2019 году. То, что делает этот случай таким поясняющим — это не то, что система была сломана очевидным способом. Она была сломана способом, математически неотличимым от правильного.

Исследователи — Льюис, Перейра и Тиг — обнаружили, что микшер системы использовал схему обязательств с люком для своего доказательства перемешивания. Микшер — это то, как системы интернет-голосования пытаются сохранить анонимность: голоса перемешиваются через несколько этапов, чтобы вход и выход не могли быть связаны. Затем система генерирует криптографическое доказательство того, что перемешивание проведено честно и голоса не были изменены.

Доказательство проверялось. Математика сходилась. И люк означал, что инсайдер, знающий значения люка, мог сгенерировать идеально выглядящее доказательство для перемешивания, которое изменило голоса.

Это не теоретическая слабость. Это то, как выглядела «универсальная проверяемость» в системе, запланированной для обязательных национальных референдумов. Опубликованный анализ заставил Swiss Post и Scytl признать дефект и приостановить систему.

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

Федеральный конституционный суд Германии сформулировал стандарт в 2009 году, когда запретил электронные машины для голосования, чьи внутренние работы могли оценить только эксперты: существенные этапы голосования и определения результата должны быть проверяемы обычными гражданами без специального знания. Криптографическое доказательство, которое проходит проверку, скрывая изменённые голоса — это ровно то, что этот стандарт предназначен исключить.


Эстония: система, которой доверяет нация, и что на самом деле обнаружили исследователи

Эстония — это страна, наиболее часто цитируемая как доказательство того, что интернет-голосование работает. Она запустила национальную систему i-voting в 2005 году. Миллионы эстонцев её использовали. Это по-настоящему пионерская работа.

В 2014 году независимая исследовательская команда — Спрингалл, Финкбайнер, Дюрумерик, Киткат, Хурсти, Макалпин и Халдерман — наблюдала операцию системы во время муниципальных выборов октября 2013 года и изучала опубликованное клиентское программное обеспечение и конфигурацию сервера. Они обнаружили серьёзные операционные и процедурные слабости безопасности: небрежные практики, запечатлённые в официальных видео, пробелы в архитектуре программного обеспечения и вывод, что хорошо оснащённый атакующий — или нечестный инсайдер — мог бы правдоподобно скомпрометировать целостность голосов или конфиденциальность избирателей без обнаружения.

Их статья ACM CCS 2014 рекомендовала Эстонии прекратить использование системы. Избирательные власти Эстонии оспорили выводы. Система по-прежнему работает.

Сам этот спор — это суть проблемы. Две аккредитованные стороны с доступом к той же системе пришли к противоположным выводам о том, была ли она безопасна. В системах бумажных бюллетеней этот спор может быть разрешён: откройте запечатанные коробки, переподсчитайте бюллетени, сравните. В системе интернет-голосования с сильными свойствами анонимности шаг «переподсчитаем» не существует. Нет стопки бюллетеней для переподсчёта. Есть только результат программного обеспечения и вопрос о том, доверяете ли вы ему.

Норвегия пробовала интернет-голосование в 2011 и 2013 годах. Испытания были прекращены в 2014 году после обнаружения того, что явка не увеличилась и что доверие к тому, что голоса не изменены, не может быть обеспечено. Аргумент удобства — главная причина, по которой кто-либо предлагает интернет-голосование — не подтвердился эмпирически. И аргумент проверяемости рухнул по той же причине, по которой он всегда рушится: вы не можете независимо проверить то, чего нет.


Настоящая асимметрия

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

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

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

Системы на основе бумаги управляют несовершенным перемирием: физический бюллетень — это проверенная избирателем запись, отмеченная в приватности, депонированная анонимно, сохранённая в запечатанной коробке и доступная для подсчёта любым, кто может посмотреть на лист бумаги. Комиссия Korthals Altes голландского правительства 2007 года называла это «голосованием с уверенностью» — и затем рекомендовала вернуться к нему из электронных систем, потому что бумага — это то, как прозрачность и проверяемость на самом деле выглядят на практике. Нидерланды использовали вручную подсчитанную бумагу с тех пор.

Системы интернет-голосования не нашли перемирие. Чек, который доказывает, что ваш голос был подсчитан — это также чек, который доказывает, как вы голосовали. Доказательство того, что голоса не были изменены, либо опирается на криптографию, которую большинство избирателей не могут оценить — или, как обнаружила Швейцария, может быть подделано инсайдером с математическим знанием, которое избиратель никогда не будет иметь.

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


Что бы на самом деле сделало это проверяемым

Это не аргумент в пользу того, что интернет-голосование никогда не может быть улучшено. Это аргумент о том, что означало бы «улучшено».

Швейцарский случай показывает, что публикация исходного кода необходима, но недостаточна — код был общедоступным, и дефект всё ещё потребовал трёх криптографов для обнаружения. Случай Нового Южного Уэльса показывает, что предвыборная сертификация недостаточна — дефект был найден во время выборов посторонними, которых процесс сертификации не включал. Случай О.К. показывает, что открытое критическое тестирование работает, но только если тест проводится до того, как реальные голоса поставлены на карту, и только если юрисдикции готовы убить систему, когда тест не удаётся.

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

Что сделало бы интернет-голосование проверяемым — по-настоящему проверяемым кем-то другим, чем поставщик, власть или криптограф на жалованье — требовало бы минимально: опубликованный исходный код, подвергнутый постоянному критическому анализу; криптографические чеки, которые доказывают включение без доказательства выбора, проверенные против публичной доски объявлений, которую может запросить любой избиратель; и независимый механизм аудита, который не зависит от той же системы, которую он проверяет. Исследователи работают над этими свойствами. Ни один из них не существует в развёрнутой национальной системе сегодня, которая пережила критический анализ без обнаружения критического дефекта.

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


Что по-прежнему не является независимо проверяемым: может ли какая-либо работающая в настоящее время национальная система интернет-голосования выдержать атаку хорошо оснащённого инсайдера без обнаружения. Системы, которые были проанализированы независимыми исследователями — Эстония, Новый Южный Уэльс, О.К., Швейцария — каждая привела к выводам, которые власти оспорили или исправили. Ни одна национальная система интернет-голосования не подвергалась такому виду непрерывного, открытого, критического тестирования, которое позволило бы обычному гражданину — не криптографу, не государственному должностному лицу — подтвердить, что подсчёт был правильным.

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

Смотрите, как пробелы в проверяемости появляются в разных системах и странах →

Прочитайте двухминутную версию проблемы интернет-голосования →


Источники