← Все статьи

Что если бы общественность, а не поставщик, владела программным обеспечением, которое считает ваши голоса?

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

Это 21 августа 2018 года, и канцелярия государственного секретаря Калифорнии только что сертифицировала то, чего никогда раньше не существовало в истории штата: систему подсчёта голосов, которой не владеет ни одна частная компания.

Программное обеспечение, которое будет считать бюллетени примерно для 5,7 миллиона зарегистрированных избирателей в округе Лос-Анджелес — крупнейшей избирательной юрисдикции в Соединённых Штатах — принадлежит общественности. Исходный код не является торговой тайной, закрытой в серверной комнате у поставщика. В принципе, любой квалифицированный инженер может прочитать его, проверить и рассказать вам, что он делает.

Это действительно значительный момент. Это также начало более сложного разговора.

Проблема, которая сделала VSAP необходимым

Чтобы понять, почему государственное владение программным обеспечением для голосования имеет значение, вам нужно понять, что произвело частное владение.

В 2006 году исследователи из Принстона Ариэль Фельдман, Дж. Алекс Халдерман и Эдвард Фелтен получили Diebold AccuVote-TS — одну из наиболее широко развёрнутых сенсорных машин для голосования в Америке — и потратили на неё около минуты. Этого было достаточно. Они продемонстрировали, что злоумышленник с кратким физическим доступом может установить вредоносный код, который крал голоса, при этом изменяя все внутренние журналы и счётчики так, чтобы они выглядели нормально. Они даже создали версию, которая распространялась автоматически от машины к машине. Программное обеспечение, работающее на этой машине, было собственностью. Никто вне Diebold не мог его проверить. Когда исследователи наконец получили доступ к одной из них, результаты не были обнадёживающими.

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

В 2005 году Управление подотчётности правительства США провело проверку безопасности и надёжности систем электронного голосования и обнаружило, что ключевые мероприятия остались незавершёнными — включая установление надлежащих процедур сертификации и хранилищ для сертифицированного программного обеспечения. Это было спустя много лет после того, как Конгресс принял Закон об оказании помощи Америке при голосовании и финансировал целое агентство для надзора над этими системами. Аппарат проверки того, работали ли машины для голосования так, как заявлялось, всё ещё собирался.

«Мы используем сертифицированные системы» — это утверждение. Это не проверка.

Что действительно построил округ Лос-Анджелес

Программа «Решения для голосования для всех людей» — VSAP — родилась из разочарования этой динамикой. Стареющие сенсорные машины для голосования Sequoia AVC Edge округа Лос-Анджелес приближались к концу жизни, а рынок систем замены был доминирован несколькими частными поставщиками, программное обеспечение которых было защищено как собственность. Округ решил построить свою собственную.

Результатом, сертифицированным государственным секретарём Калифорнии 21 августа 2018 года, был VSAP Tally Version 1.0 — первая в Калифорнии сертифицированная избирательная система с использованием открытого исходного кода и, по словам самого штата, «первая находящаяся в государственной собственности, открытая система подсчёта голосов, сертифицированная в соответствии со стандартами калифорнийских систем голосования».

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

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

Но стоит быть точным в том, что это действительно меняет — и что нет.

Открытый исходный код устраняет одну проблему. Он не устраняет саму проблему.

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

Это не мелочь. Это именно то, как Швейцария обнаружила разрушительный дефект в своей системе почтового электронного голосования в 2019 году. Когда Swiss Post опубликовала исходный код построенной компанией Scytl системы интернет-голосования перед планируемым использованием в обязательных голосованиях, независимые исследователи Сара Джейми Льюис, Оливье Перейра и Ванесса Тиг проанализировали его и обнаружили криптографический люк: дефект в доказательстве перестановки, который позволил бы власти создать расшифровку, которая выглядела математически корректно, при этом молча изменяя голоса. Система утверждала, что она была универсально проверяемой. Это не так. Swiss Post вывела систему. Люк был обнаружен потому, что исходный код был общедоступным.

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

Но открытый исходный код — это начальное условие, а не финишная линия.

Рассмотрим, что всё ещё должно быть истинным для системы голосования с открытым исходным кодом, чтобы быть надёжной:

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

Во-вторых, физическая цепочка хранения всё ещё управляет тем, что считает программное обеспечение. Бюллетень, который заменён, потерян или продублирован до того, как достигнет сканера, не волнует, насколько открыт программный код для подсчёта. Когда Австрийский конституционный суд аннулировал президентские выборы в 2016 году, это было не потому, что программное обеспечение было неправильным — это было потому, что примерно 77 000 почтовых бюллетеней были обработаны до того, как это разрешалось законом, неуполномоченными лицами, без требуемых свидетелей. Примерно 30 000 голосов разделяли кандидатов. Программное обеспечение могло быть идеальным, и результат всё равно был бы непроверяемым, потому что физическая цепочка была нарушена. Никакое количество открытого исходного кода не исправит запечатанный мешок, открытый в неправильной комнате в неправильное время неправильными людьми.

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

Аудит всё ещё должен происходить — и всё ещё несёт ошибку

Открытый исходный код делает систему проверяемой до выборов. Аудиты делают выходные данные проверяемыми после них.

Оба имеют значение. Ни один из них отдельно недостаточен.

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

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

В округе Антрим, Мичиган, в 2020 году подсчёт вручную, предназначенный для проверки исправленных результатов машины, отличался от итого по машине примерно на дюжину голосов из примерно 15 700 поданных. Не из-за мошенничества. Не из-за программного обеспечения. Потому что подсчёт вручную производится людьми в 2 часа ночи при люминесцентном освещении, читающими отметки, которые иногда неоднозначны, применяющими решения, которые варьируются от стола к столу. Подсчёт вручную — это золотой стандарт — и золотой стандарт всё ещё ошибается на дюжину голосов в небольшом округе.

В гонке, решённой меньшим количеством голосов, чем это, «подсчёт вручную это подтвердил» — это уверение. Это не доказательство.

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

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

Что «находящаяся в государственной собственности» всё ещё не может рассказать вам

Вот вопрос, на который архитекторы VSAP не могли полностью ответить, просто сделав код общедоступным: кто его проверяет, как часто и с какой независимостью?

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

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

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

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

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

Сквозная нить от 2000 года до сегодня

Закон об оказании помощи Америке при голосовании был принят в 2002 году как федеральный ответ на выборы 2000 года, в которых Верховный суд установил, что идентичные перфоленты оценивались по-разному разными счётчиками в разных округах — пробитые отверстия считались здесь, отклонялись там — без единого, заранее опубликованного стандарта для интерпретации намерения избирателя. Проблема не была в мошенничестве. Это была двусмысленность, вбитая в систему, разрешённая людским суждением, применённым непоследовательно, производящая результат, зависящий от того, кто считал в какой комнате.

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

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

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

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

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

Аргумент в пользу VSAP — это тот же аргумент, который всегда был доступен: прозрачность побеждает секретность. Открытое побеждает закрытое. Проверяемое побеждает доверь-мне. Что это не является, так это полнотой. И «полнота» — это единственный стандарт, который позволяет общественности — не поставщику, не государственному секретарю, не судье — подтвердить, что подсчёт правильный.


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

Посмотрите, как разрыв между кодом в собственности и открытым кодом проявляется по всему миру →

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

Изучите нашу полную базу данных случаев →

Источники