← Все статьи

Они открыли пилот интернет-голосования для публики. Он рухнул за 48 часов.

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

Сентябрь 2010 года. Где-то на сервере в Вашингтоне, округ Колумбия, воспроизводится боевой гимн Университета Мичигана.

Не потому, что его кто-то туда загрузил. А потому, что команда исследователей только что взяла под контроль живую систему интернет-голосования — изменила все бюллетени, прочитала все тайные голоса, а затем, в качестве автографа, запрограммировала сервер воспроизводить «The Victors» после каждой имитированной подачи голоса. Им потребовалось примерно 48 часов. И несколько дней никто из Совета по выборам округа Колумбия этого не заметил.

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

Пилот, который почти не был тестом

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

Они назвали это открытым испытанием. Они опубликовали адрес сервера. Они сказали миру: приходите, найдите, что не так.

Пришла команда под руководством Дж. Алекса Халдермана — Скотт Волчок, Эрик Вустроу, Халдерман и Дипак Прасад. Примерно за 48 часов они использовали уязвимость в программном обеспечении и получили почти полный контроль над пилотным сервером. Они могли изменять уже поданные бюллетени. Они могли читать голоса, которые должны были остаться тайными. Они продемонстрировали это, переделав систему так, чтобы она воспроизводила боевой гимн Университета Мичигана после каждого голоса. Вторжение осталось незамеченным чиновниками несколько дней. Позже результаты были опубликованы как рецензируемая статья «Attacking the Washington, D.C. Internet Voting System» на конференции Financial Cryptography 2012.

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

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

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

Что на самом деле проверяет «сертификация»

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

Это не упрёк чиновникам, которые строили систему в Вашингтоне. Это упрёк концепции закрытой сертификации как замены открытому состязательному анализу.

Правительственное управление по учету (GAO) ещё в 2005 году задокументировало, что федеральные усилия по повышению безопасности и надёжности электронного голосования «были в процессе, но ключевые мероприятия остались незавершёнными» — годы спустя после того, как закон Help America Vote Act предусмотрел создание инфраструктуры сертификации. Каркасы сертификации помогают. Но сертификация — это оценка, проведённая в определённый момент времени, определённым набором рецензентов, в соответствии с определённой моделью угроз. Интернет не соблюдает эту модель. Он направляет каждого злоумышленника в мире — одновременно, постоянно — против вашей системы в момент, когда она подключена.

Случай в Вашингтоне доказывает существование разрыва. Не потому, что Вашингтон был безответственен, а потому, что команда, которая взломала систему, была не иностранной разведслужбой. Это были академики с несколькими днями и бюджетом на исследования. Если университетская команда может захватить контроль и переделать все бюллетени за 48 часов, то противник государственного уровня с месяцами подготовки и выделенным штатом не будет нуждаться в боевом гимне, чтобы объявить о своём присутствии. Они ничего не оставят.

Урок Нового Южного Уэльса: одобрено не означает чистое

Спасением для Вашингтона было то, что тестирование произошло до того, как в систему были загружены реальные бюллетени. Не каждая юрисдикция была настолько удачлива.

В марте 2015 года Новый Южный Уэльс запустил свою систему интернет-голосования iVote во время живых государственных выборов. К тому времени, когда независимые исследователи Дж. Алекс Халдерман и Ванесса Тиг опубликовали свой анализ, уже было подано примерно 280 000 голосов. Их выводы: iVote загружал код с внешнего аналитического сервера через соединение, уязвимое для известных на тот момент слабостей TLS, что означало, что сетевой злоумышленник мог манипулировать голосами и компрометировать конфиденциальность бюллетеня. Телефонный сервис проверки, который избиратели могли использовать для подтверждения своего голоса, сам был восприимчив к манипуляциям — что уничтожало его назначение как защиты. Предыдущая закрытая проверка безопасности одобрила систему. Но исследователи обнаружили проблемы всё равно, извне, во время живых выборов. Исправления были развёрнуты, пока голосование ещё продолжалось. Но 280 000 человек уже проголосовали в системе, целостность которой не могла быть независимо подтверждена в момент их голосования.

Прочитайте анализ исследователей здесь.

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

Проблема криптографии: даже «проверяемое» может быть подделано

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

В 2019 году, перед предполагаемым использованием в обязательных швейцарских голосованиях, Swiss Post и его поставщик Scytl опубликовали исходный код своей системы интернет-голосования для публичного изучения. Независимые исследователи Сара Джейми Льюис, Оливье Перейра и Ванесса Тиг обнаружили что-то необычайное: доказательство перемешивания микснета полагалось на схему обязательства с потайным ходом. Орган, который знал значения потайного хода, мог сгенерировать доказательство, которое выглядело математически корректным — которое прошло бы проверку — но на самом деле имело переделанные голоса под ним. Исследователи назвали свой отчёт «Ceci n'est pas une preuve» (Это не доказательство). Swiss Post и Scytl признали результат. Швейцария приостановила систему до исправления.

Прочитайте выводы исследователей здесь.

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

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

Что Эстония научила нас о «ничего не нашли»

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

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

Прочитайте полный анализ здесь.

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

«Ничего не нашли» и «мы помешали кому-либо смотреть» — это не одно и то же. Они создают идентичные официальные пресс-релизы.

Почему Норвегия ушла без скандала

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

Официальное заявление министерства находится здесь.

Решение Норвегии привлекает меньше внимания, чем боевой гимн Вашингтона или потайная дверь Швейцарии. Не было драматического взлома. Просто было честное подсчитывание: мы не смогли обеспечить доверие, что голоса не были изменены, явка не улучшилась, и стоимость продолжения без разрешения проблемы доверия не стоила того.

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

Модель состязательного тестирования: что сделала правильно Бразилия

Есть лучшая модель, чем закрытая сертификация, и Бразилия использует её с 2009 года.

Верховный избирательный суд Бразилии (Tribunal Superior Eleitoral) проводит официальный Публичный тест безопасности — Teste Público de Segurança dos Sistemas Eleitorais — регулируемый Резолюцией TSE 23.444/2015 и проводимый в год перед общенациональными выборами. Любой имеющий право гражданин, чей план тестирования одобрен, может проверить электронную избирательную машину и связанные системы на наличие слабостей. Системы, открытые для тестирования, охватывают весь жизненный цикл выборов: генерацию носителей бюллетеней, голосование, подсчёт, передачу файлов и системы аудита. Результаты используются для улучшения систем, и исправления повторно проверяются перед выборами.

Официальная страница программы TSE находится здесь.

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

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

Что не было проверяемым в Вашингтоне — и по-прежнему не является в большинстве мест

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

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

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

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

Результат выборов не должен зависеть от доверия к поставщику, чиновникам или органу сертификации. Он должен зависеть от опубликованной, независимо проверяемой цепи свидетельств, которую любой обладающий необходимыми навыками может проверить — и которую любой, кто обнаружит недостаток, может доказать публично, как команда Халдермана сделала в 2010 году, как Льюис, Перейра и Тиг сделали в 2019 году, как каждый открытый тест состязательного тестирования предназначен для того, чтобы позволить.

Это не невозможно высокий стандарт. Это стандарт, который Вашингтон случайно установил, когда пригласил публику. Боевой гимн был звуком работающего стандарта.

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

Посмотрите, насколько распространён разрыв прозрачности в разных системах и странах →

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

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


Источники