Машина для голосования — это компьютер. «Сертифицированная» не значит, что ей можно доверять
В 2004 году Ирландия потратила миллионы на машины для голосования, которые так и не использовала — потому что независимая комиссия не смогла доказать, что они работают. То, что на самом деле означает «сертифицировано», должно вас напугать.
Весна 2004 года. Где-то на складе в Дублине 7500 машин для голосования лежат в коробках — совершенно новые, оплаченные, но так и не использованные.
Ирландское правительство потратило примерно €54 миллиона на закупку системы электронного голосования и подсчёта Nedap/Powervote. Систему протестировали. Её одобрили компетентные органы. По всем обычным меркам она была готова к использованию.
Но потом независимая Комиссия по электронному голосованию провела тщательный анализ — и заявила, что не может рекомендовать систему к использованию.
Не потому, что нашла доказательства отказа машин. Не потому, что обнаружила мошенничество или саботаж. Вывод Комиссии был более убийственным, чем любой из них: она обнаружила, что не может убедиться в точности и секретности системы в её нынешнем виде. Машины не были доказательно, к удовлетворению независимого эксперта, показаны как работающие корректно. Поэтому правильная позиция демократического правительства была одна: их не использовать.
Машины пять лет пролежали на складах и были официально утилизированы в 2009 году с дополнительными затратами для государства. Ирландия вернулась к бумажному голосованию.
Вот ту историю сертификация должна была предотвратить. Она этого не сделала.
Что на самом деле означает «сертифицировано»
Вот что происходит, когда машина для голосования получает сертификат в Соединённых Штатах.
Производитель отправляет свою систему в аккредитованную испытательную лабораторию — одну из небольшого числа частных фирм, одобренных Комиссией по оказанию помощи в выборах США. Лаборатория тестирует систему по набору федеральных стандартов (Добровольным руководящим принципам систем голосования, или VVSG). Если она прошла, EAC добавляет её в список сертифицированных систем. Штаты могут затем одобрить её к использованию.
Тестирование реальное. Лаборатории аккредитованы. Стандарты содержательны.
Но есть один подвох, достаточно большой, чтобы припарковать в нём ирландские машины для голосования.
Сертификация — это снимок. Она отражает, что делало программное обеспечение в день, когда лаборатория его тестировала. Она не может — и не может — гарантировать, что программное обеспечение, работающее в день выборов, — это то же самое программное обеспечение, которое лаборатория изучала. Она не следит за машиной за дверями, через цепочку поставок, на склад, в грузовик и на избирательный участок. Она тестирует версию. Она не сертифицирует живую, развёрнутую систему.
Управление по ответственности Правительства США выразило эту мысль ясно ещё в 2005 году: федеральные усилия по улучшению безопасности и надёжности систем электронного голосования были в ходу, но ключевые мероприятия оставались незавершёнными. Спустя годы после кризиса, спровоцировавшего федеральную реформу, механизм обеспечения безопасности всё ещё строился. Стандарты и сертификация имеют смысл только если они существуют и применяются — до этого «мы используем сертифицированные системы» — это утверждение без полностью рабочей проверки за ним.
Этот разрыв между утверждением и реальностью — вот модель угрозы, о которой идёт речь в этой статье.
Эксперимент в Принстоне: одна минута, необнаруживаемо
В 2006 году три исследователя из Принстона — Ариэль Фельдман, Дж. Алекс Халдерман и Эдвард Фелтен — получили настоящую сенсорную машину для голосования Diebold AccuVote-TS. Это была сертифицированная машина, одна из наиболее широко развёрнутых в Соединённых Штатах в то время.
Им не нужны были месяцы. Им не нужен был бюджет государства. Им нужно было примерно шестьдесят секунд физического доступа.
За это время злоумышленник мог установить вредоносный код на машину — код, который крал бы голоса, одновременно изменяя все логи, журналы и счётчики, чтобы они оставались внутренне согласованными. Машина сообщала бы чистоту. Логи сообщали бы чистоту. Итоги сходились бы. А голоса были бы подделаны.
Ещё более тревожное: они разработали работающий вирус машины для голосования. Код, который распространяется автоматически с машины на машину при обычной избирательной деятельности — при рутинной замене карт памяти, которая происходит в каждом округе в день выборов. Одна заражённая машина. Одна карта. Цепь.
AccuVote-TS прошёл сертификацию. Его оценила испытательная лаборатория. Он был одобрен к использованию в выборах, затронувших миллионы американцев.
Ничто из этого не остановило то, что продемонстрировал Принстон. Потому что сертификация тестировала, что программное обеспечение должно было делать — а не то, сможет ли злоумышленник заменить его на что-то другое.
Это различие, которое имеет значение. Лаборатория изучает систему на соответствие функциональным требованиям. Она не устраивает состязательную атаку. Она не спрашивает: что может сделать мотивированный злоумышленник с шестьюдесятью секундами перед тем, как эта машина попадёт на избирательный участок? Это разные вопросы, и процесс сертификации был не предназначен — и в основном всё ещё не предназначен — на них отвечать.
Секрет в «исходном коде с ограничением доступа»
Теперь добавим ещё один слой.
Программное обеспечение внутри этих машин проприетарное. Торговая тайна производителя. Вы не можете его прочитать. Испытательная лаборатория может его прочитать — под соглашением о неразглашении. EAC может получить копию для своего репозитория. Но общественность, кандидаты, партии, независимые исследователи безопасности, которые могли бы поймать то, что упустила лаборатория: ни один из них не может видеть, что на самом деле запущено на машине, подсчитывающей их голоса.
Это не гипотетическая паранойя. Это документированная проблема с документированным следствием.
В январе 2021 года фирма компьютерной криминалистики вошла в офис выборов округа Кофи, штат Джорджия, и скопировала всю систему голосования — сервер системы управления выборами, устройства для опроса, устройства для отметки бюллетеней, программное обеспечение сканера, государственную систему Dominion Джорджии. Всё. Офис государственного секретаря Джорджии позже описал это как несанкционированный доступ, который допустили бывшие должностные лица округа, нарушив законодательство штата. Инцидент задокументирован в показаниях в федеральном суде по делу Curling v. Raffensperger и фигурирует в обвинении окружной прокуратуры Фултона; несколько связанных лиц позже признали себя виновными.
Вот что эпизод в Кофи Каунти говорит о секретности исходного кода как стратегии безопасности: она провалилась в момент, когда небольшая группа людей получила физический доступ в помещение.
Проприетарное программное обеспечение не защищено своей сложностью или превосходством. Оно защищено физической безопасностью и юридическими договорами. Когда те терпят крах — а в Кофи Каунти они полностью потерпели крах — код выходит наружу. Поверхность атаки раскрывается перед тем, кто его получил, где бы они его ни взяли.
Секретность как безопасность и проверяемость как безопасность — это не одно и то же. На самом деле, они противоположны. Система, спроектированная для секретности, становится более опасной, когда секрет уходит. Система, спроектированная для проверяемости, становится более надёжной, чем больше людей её проверяет.
Немецкий конституционный стандарт — и почему это важно для вас
В 2009 году Федеральный конституционный суд Германии сделал что-то замечательное. Он не дождался доказанной атаки. Он принял решение на основе принципа: машины электронного голосования, работа которых не может быть независимо проверена обычным гражданином — без специальных знаний — нарушают конституционный принцип открытости выборов.
Суд установил, что это требование вытекает из гарантии основного закона о демократической легитимности. Выборы должны быть открыты для общественной проверки. Не проверяемы экспертами под соглашением о неразглашении. Не проверяемы испытательной лабораторией в конкретный день. Проверяемы гражданами.
Машины Nedap, которые использовала Германия, записывали голоса только в электронной памяти, без независимо проверяемого записи, которую избиратель мог бы проверить. Они провалились. Постановление, их авторизовавшее, было признано неконституционным. Германия вернулась к бумаге.
Суд не требовал доказательства того, что машины были подделаны. Он постановил, что система, чья корректность зависит от доверия к скрытому программному обеспечению, не проходит тест открытой проверяемости независимо от того, будет ли когда-либо доказана подделка.
Прочитайте это ещё раз. Не «мы нашли мошенничество». Не «мы нашли ошибку». Система провалилась, потому что её нельзя было независимо проверить. Этого одного было достаточно, чтобы быть неконституционным.
Это более высокий стандарт, чем любой процесс сертификации в США в настоящее время соблюдает. И это правильный стандарт.
Что поняла ирландская комиссия
Вернёмся на минуту в Дублин. Вывод ирландской Комиссии по электронному голосованию был не драматичным. Он был внимательным, точным и разрушительным.
Комиссия подчеркнула, что её вывод не был утверждением, что система не будет работать — это было утверждение, что не было доказано, к удовлетворению Комиссии, что она будет работать. Она не смогла убедиться в точности и секретности системы в её нынешнем виде.
Эта формулировка важна. Бремя доказывания, по мнению Комиссии, лежит на тех, кто развёртывает систему. Недостаточно, чтобы производитель сказал «это работает». Недостаточно, чтобы испытательная лаборатория сказала «она прошла». Независимый эксперт должен быть в состоянии подтвердить через проверку, что она точна и что она защищает тайну голосования.
Этот эксперт не смог. Поэтому машины никогда не работали на реальных выборах.
Ирландский подход — когда вы не можете независимо проверить, вы не развёртываете — это правильный подход. Он противоположен подходу сертификационного театра, который гласит: если она прошла лабораторию, она сертифицирована, и если она сертифицирована, ей можно доверять.
Сертификация — это утверждение. Проверяемость — это доказательство. Это не одно и то же.
Решение: что на самом деле требует «независимо проверяемое»
Так как же выглядела бы действительно проверяемая система голосования? Три вещи, ни одна из которых не требует, чтобы общественность доверяла какому-либо одному органу.
Открытый исходный код. Программное обеспечение, которое подсчитывает голоса, должно быть читаемо каждым. Не читаемо лабораторией под соглашением о неразглашении. Читаемо независимыми криптографами, исследователями безопасности и журналистами. Система VSAP округа Лос-Анджелеса, сертифицированная в 2018 году, была первой сертифицированной системой подсчёта голосов с открытым исходным кодом в Калифорнии — что означает, что код, подсчитывающий голоса, мог бы, в принципе, быть проверен кем угодно. Это база, а не финиш.
Воспроизводимые сборки. Открытый исходный код один недостаточен. Вам также нужно иметь возможность подтвердить, что двоичный файл, работающий на машине — реальный исполняемый код, то, что делает подсчёт — был создан из опубликованного исходного кода и больше ничего. Это то, что криптографы называют воспроизводимой сборкой: учитывая один и тот же исходный код, вы всегда должны получать один и тот же двоичный файл, поэтому каждый может проверить, что развёртываемое соответствует опубликованному. Без этого производитель может опубликовать чистый исходный код и скомпилировать что-то другое.
Криптографическое подтверждение. Машина, работающая в день выборов, должна создавать проверяемую запись — подписанную, отмеченную временем, устойчивую к подделкам — которая связывает работающее программное обеспечение с опубликованной, проверяемой версией. Не бумажный журнал, который можно тихо перепечатать. Криптографическая цепь, которую независимая сторона может проверить после события без необходимости доверять производителю, округу или испытательной лаборатории.
Эти три свойства вместе преобразуют «доверьте нам» в «проверьте сами». Они не экзотичны. Это то, как обращаются с критически важным программным обеспечением в других высокорисковых областях. Швейцарский случай показывает это с другой стороны: в 2019 году, когда Swiss Post опубликовал исходный код своей системы интернет-голосования для открытой проверки, независимые исследователи немедленно обнаружили криптографический люк — дефект, который позволил бы инсайдеру создать расшифровочный протокол, который проходит проверку при фактическом изменении голосов. Система была приостановлена в ожидании устранения. Дефект был невидим в сертифицированном чёрном ящике. Он стал находим в момент, когда код стал открытым.
Вот весь аргумент. Открытость поймала то, что сертификация пропустила.
Вопрос, который остаётся открытым
Вот что никакое официальное заявление, никакая сертификация лаборатории и никакой пресс-релиз «аудит подтвердил результат» в настоящее время не может ответить на машинах в большинстве юрисдикций США:
Это то же самое программное обеспечение, которое работает на машине на избирательном участке, которое испытательная лаборатория изучала?
Нет криптографической цепи поставок, которая позволила бы независимой стороне ответить на этот вопрос. Нет процесса воспроизводимой сборки, который позволил бы вам проверить. Цепь доверия идёт через производителя, штат и испытательную лабораторию — и она невидима ни одной из них, как только машина покидает склад.
Совместное заявление CISA после выборов 2020 года утверждало, что было «никакого доказательства того, что какая-либо система голосования удалила или потеряла голоса, изменила голоса или каким-либо образом была скомпрометирована.» Это заявление также опиралось, явно, на существование бумажных записей, позволяющих независимые переподсчёты и аудиты. Прочитайте это внимательно: собственная уверенность должностных лиц выводит свою силу из проверяемости, которую обеспечивает бумага — а не из сертификации, которая её предшествовала.
Даже самое сильное официальное утверждение «это было безопасно» неявно признаёт, что доверие вытекает из проверяемого доказательства.
Ирландская Комиссия поняла это в 2004 году. Немецкий Конституционный суд закрепил это в 2009 году. Швейцария выучила это от своих собственных криптографов в 2019 году.
Вопрос для каждой юрисдикции, всё ещё работающей с проприетарным, закрытым, сертифицированным и развёрнутым программным обеспечением для голосования, — это не то, прошла ли она лабораторию. Это то, может ли кто-либо вне стен производителя независимо подтвердить, что на самом деле запущено на машинах, которые будут подсчитывать ваш голос.
До тех пор, пока ответ не будет да — проверяемо, криптографически, любой квалифицированной независимой стороной, а не официальным уверением — «сертифицировано» — это снимок, а не гарантия.
Вот что TrustVoting построен, чтобы изменить.
Посмотрите, как разрыв кода с ограничением доступа выглядит в разных юрисдикциях →
Прочитайте двухминутную версию проблемы проверяемости →
Исследуйте глобальную карту прозрачности систем голосования →
Источники
- Commission on Electronic Voting — Interim Report on the Secrecy, Accuracy and Testing of the Chosen Electronic Voting System (Ireland, 2004)
- Feldman, Halderman & Felten — Security Analysis of the Diebold AccuVote-TS Voting Machine (USENIX/EVT, 2006)
- GAO-05-956 — Elections: Federal Efforts to Improve Security and Reliability of Electronic Voting Systems Are Under Way, but Key Activities Need to Be Completed (2005)
- Bundesverfassungsgericht — Judgment of 3 March 2009, 2 BvC 3/07 and 2 BvC 4/07 (English translation)
- Bundesverfassungsgericht — Press Release No. 19/2009 (English)
- Lawfare — What the Heck Happened in Coffee County, Georgia?
- Atlanta Journal-Constitution — Coffee County Georgia suffers cyberattack; it was also site of a 2021 election breach
- California Secretary of State — Certifying LA County VSAP Tally as California's first certified open-source election technology (2018)
- Lewis, Pereira, Teague — Ceci n'est pas une preuve (trapdoor commitments in the Scytl-SwissPost Internet voting system, 2019)
- Joint Statement, Election Infrastructure Government Coordinating Council & Sector Coordinating Council (Nov. 12, 2020) — CISA