← Всички статии

280 000 души вече бяха гласували онлайн, преди някой да забележи дупката

По време на живи избори, при които вече бяха преброени 280 000 гласа, двама изследователи открили недостатък, който официалният преглед на сигурността е пропуснал — и системата за проверка, която трябваше да го хване, беше счупена.

Март 2015 г., някъде в Нов Южен Уелс, избирател отваря браузър, следва връзка и глася във фонд за избори на щата. Целият процес отнема няколко минути. Никой опашка. Никой избирателен щит. Просто форма, клик и потвърждение.

Това, което този избирател не знае — което никой извън малката групка изследователи не знае все още — е, че кодът, работещ под браузъра, се зарежда през връзка със известна слабост в сигурността. Че сетевой нападател, седнал между избирателя и сървъра, теоретично би могъл да е манипулирал този код преди страницата да се зареди. Че отделната телефонна служба за проверка, която системата предлага като своята проверка на интегритета, сама би могла да бъде заобиколена. И че предходният преглед на сигурността е разгледал тази система и не е намерил нищо от това.

Когато изследователите J. Alex Halderman и Vanessa Teague направиха публичен анонс, приблизително 280 000 гласа вече бяха преброени.


Системата, която се очисти сама

Системата iVote не беше самоуправна експеримент или поспешна случайност. Нов Южен Уелс е инвестирал в нея съзнателно, предложил я на избирателите, които са сліпи или с невъзможност да четат печат, отдалечени или просто предпочитат удобството на онлайн гласуване. Тя е преминала официален преглед на сигурността преди избирането. Властите са знаели за рисковете на интернет гласуването — те са преглеждали системата за тях. Заключиха, че е готова.

Затворен преглед, който очиства система, не е същото като това, че системата е сигурна.

Ето какво официалният преглед не е хванал, според рецензираната статия, която Halderman и Teague публикуваха на E-Vote-ID 2015: iVote зареди външен JavaScript — код, който работи в браузъра на избирателя — от аналитичен сървър през връзка, уязвима на атаките FREAK и Logjam. Това бяха известни, документирани слабости на TLS, които бяха публично разкрити. Сетевой нападател, експлоатиращ тази слабост, би могъл да впръсне вредоносен код в страницата iVote, преди да стигне до избирателя, потенциално манипулирайки начина, по който гласът е бил записан без знанието на избирателя. Нападателят няма да трябва да се проламва в собствените сървъри на избирателната комисия. Просто трябва да е на правилното място в мрежата.

Изследователите също така разгледаха телефонната служба за проверка на iVote — функцията, която системата предлага като начин избирателите да потвърдят, че техният глас е бил записан правилно. Това, което намериха, е, че самата служба беше податлива на манипулация по начин, който би могъл да накара манипулиран глас да изглежда проверен. Проверката беше проверяваща срещу източник, който също можеше да бъде променен.

Това не е предпазна мрежа. Това е илюзия за него.


Какво „след като предходен преглед го очисти" всъщност означава

Нека да сме точни по отношение на последователността на събитията, защото последователността е цялата история.

Преглед на сигурността беше проведен преди избирането. Преглядът не намери уязвимостите, които Halderman и Teague открити. Избирането начало. Гласовете натрупани — в крайна сметка стигайки приблизително 280 000. След това двама независими изследователи, работещи извън избирателната комисия и нейни подрядчици, анализираха работещата система и намериха сериозни недостатъци. Те разкриха проблемите. Поправка беше разширена, докато гласуването все още беше в ход.

С други думи: официалният преглед преди избирането даде одобрение. Двама външни лица без институционален интерес към отговора намериха това, което официалният преглед пропуснал. Проблемите бяха открити не защото процесът работи, а защото независимите изследователи решиха да погледнат — по своя собствена инициатива, по време на живи избори.

„Тя е преминала преглед на сигурността си" е твърдение за един снимък. Не е твърдение за системата, която работи в избирателния ден.

Това е проблемът със снимката за сертификация. Преглед се провежда в един момент, върху кода и конфигурацията, която съществува в този момент, използвайки плана на тестване и моделът на заплахата, които преглеждачите донесоха с тях. Ако моделът на заплахата е пропуснал известен клас атаки на TLS, тези уязвимости не се появяват в доклада. Системата се променя леко — библиотека на трета страна за аналитика се актуализира, параметър на конфигурация се измества — и преглядът вече не обхваща това, което всъщност работи.

Германският конституционен съд се сблъска с версия на този проблем през 2009 г., когато постанови, че електронното гласуване е конституционно легитимно само когато обикновени граждане могат да проверят всяка съществена стъпка без специализирано знание. Избирателите, проверяващи екран след щракване върху „Изпращане" и получаване на потвърждение, не могат да направят това. Нито пък, оказва се, може екип за преглед на сигурността преди избирането, който случайно не гледа определена външни зависимост, зарежена върху TLS.


Механизмът за проверка, който не проверяваше

Детайлът, който струва да седи при вас за момент, е телефонната проверка.

iVote даде на избирателите начин да се обадят и да проверят дали техният глас е записан както е предвидено. Това е правилния инстинкт. Проверяемост от край до край — способността на избирателя да потвърди, че техният бюлетин е бил улавен правилно — е изискване на действителната безопасност, не маркетингова функция. Норвегия, Естония и Швейцария всички са се справяли сериозно с начина за предоставяне на него. Системата на Swiss Post от 2019 г. използва криптографски доказателства, за да предложи това, което назва универсална проверяемост, докато независимите изследователи открили люк в микснета, което би могло да генерира убедително изглеждащо доказателство, докато скриваше променени гласове.

Импулсът да дават на избирателите проверка на системата е точно правилен. Проблемът идва, когато тази проверка работи на същата инфраструктура като това, което проверява — или когато може да бъде манипулирана от същия нападател, който би могъл да манипулира гласа.

Това не е хипотетичен риск. Halderman и Teague документираха, че телефонната проверка на iVote е била податлива на манипулация, която би могла да произведе фалшиво потвърждение. Избирател, обадящ се да провери своя бюлетин, би чул, че всичко е добре. Избирател, чийто бюлетин е бил променен от мрежов нападател, също би чул, че всичко е добре. Служба за проверка и уязвимост живяли в същата екосистема.

Механизъм за проверка, който може да бъде подведен от същата атака като основната система, не проверява нищо. Предоставя комфорт, а комфортът не е свойство на сигурността.


Защо „независим" работи целия труд

Ето неудобната истина за епизода от NSW: никой в официалната верига това не хвана.

Не продавачът. Не екипът на самата избирателна комисия. Не подрядчиците на преглед на сигурност. Хванено е от двама академици, които не бяха помолени, не бяха плащани и не получиха специален достъп до тестова среда. Те анализираха производствената система — тази, която обработва реални гласове от реални избиратели — и намериха това, което официалният процес не беше.

Вашингтон, окръг Колумбия през 2010 г. е най-близкото полезно сравнение. Преди разполагане на система за интернет връщане на бюлетини за чужди избиратели, DC пусна открит публичен тест и изрично поканил публиката да го атакува. Екип от Университета на Мичиган под ръководството на Halderman спечели почти пълен контрол над пилотния сървър в приблизително 48 часа, промени бюлетини, които вече бяха преброени, и остави боевата песен да се възпроизведе като доказателство за техния достъп. DC отпусна системата. Никой реален гласове не са били засегнати. Уязвимостите бяха хванати, защото тестът беше изрично открит — всеки би могъл да опита, и екипът, който опита намери това, което затворено вътрешното тестване не беше.

Случаят NSW е огледалото на DC. Никой открит публичен тест. Затворен преглед, който очисти системата. Уязвимости открити така или иначе, от независимите изследователи, след реални гласове вече бяха в системата.

Разликата между災ствие и хванат недостатък е често само дали правилния външни лица случайно погледаха.

Това е неудобно изречение, защото означава, че безопасността на избирането би могла да зависи от инициативата на изследователи, които не са част от официалния процес и които лесно нямаше да са разглеждали. Това също означава, че когато те разглеждат и намерят нещо, официалния отговор трябва да е „благодаря и ето какво преглед променихме" — не „нашия преглед вече е очистил системата".

Преглядът очищаващ системата е данната точка, която трябва да ви безпокои, не да ви успокои. Това ви казва, че затворен преглед не намери това, което открит преглед позже намери. Подходящият отговор е да попитате какво още затворен преглед би могъл да не е намерил.


Проблемът със снимката работи по-дълбоко

Всяка сертифицирана избирателна система в света беше сертифицирана в момент, който сега е в миналото.

САЩ Комисия по помощ при избирането сертифицира избирателни системи срещу Доброволни ръководства за избирателни системи. Доклад на GAO от 2005 г. заяви, че дори базовата инфраструктура за тази програма за сертификация беше непълна, години след като Законът за помощ при избирането я беше наредил. Стандартите се изграждат. Системите се тестват срещу тях. Издава се сертификация.

След това времето преминава. Открит се нови класове атаки. Зависимостите се актуализира. Конфигурациите се отместват. И сертификацията, която беше снимка на система срещу стандарт в един момент, остава на стената като рамкирана снимка на сграда, която е била обновена.

По-дълбокия проблем е, че никой процес на сертификация не може да отчита класове атаки, които не са били в модела на заплахата, когато преглядът е проведен. FREAK и Logjam бяха публично известни слабости, когато iVote работеше. Те бяха в академичната литература. Имаха имена. И те очевидно не бяха в плана на тестване, който очисти системата.

Това не е аргумент срещу сертификацията — это е аргумент, че сертификацията е необходима, но не достатъчна, и че нейната достатъчност се намалява с времето. Честната версия на „тази система е сертифицирана" е: „тази система преминала преглед срещу определен стандарт, проведен от определен екип, използвайки определен модел на заплахата, в определен момент. Никое от тези неща не е гарантирано да остане текущо."

Решението не е по-добра снимка. Решението е непрекъсната, открита, независима проверяемост — така че въпросът не е „тя е преминала преглед?" а „можете ли да ми покажете математиката?"


Какво „независимо проверяемо" всъщност изисква

Историята на NSW iVote завършва с поправка, разширена по време на избирането, и система, която продължи операция. Избирането не беше спряно. 280 000-те гласа, които вече бяха преброени, не бяха отново пускани. Нямаше начин да се потвърди ретроспективно дали някой от тези гласове е бил променен преди поправката.

Това е трудната част на историята, която не се разрешава чисто.

Естонската система за и-гласуване, която екипът на Springall, Finkbeiner и Halderman анализираха през 2014 г., поне предложи частичен изходен код за независимо изследване. Изследователите открити сериозни слабости на оперативната сигурност и заключиха, че добре ресурсирана нападател би могъл да променя гласовете незабелязано. Естония оспори заключенията. Системата продължи операция. Възражане и продължение не са същото като разрешение.

Системата на Swiss Post от 2019 г. отиде още по-далеч — тя публикува пълния си изходен код за публична проверка преди разполаганне в обвързващи избори. Независимите изследователи открити люка в доказателството за разбъркване. Швейцарските власти суспендираха системата. Това е най-близкото нещо до история на успеха в този регион: изходен код публикуван, недостатък намерен, система спрял преди реални гласове да бъдат засегнати.

Прогресията от NSW към Естония към Швейцария е прогресия към откритост. NSW: затворен преглед, недостатъци открити по време на живи избори, никакъв механизъм за избирателите да проверят ретроспективно. Естония: частична откритост, независимо анализ, оспорени заключения. Швейцария: пълна публикация, криптографски недостатък намерен преди обвързващо използване, система суспендирана.

Посоката е важна. Но забележете какво Швейцария изисква да работи: не само публикация, но криптографи с инструментите и знанието, за да забележат тънко люк в доказателството за перемешване. Vanessa Teague — която работи както на анализа на NSW, така и на анализа на Swiss Post — е един от малкия брой хора в света, които могат да прочетат доказателство за перемешване и забележат, че нещо в него не е наред.

„Независимо проверяемо" не е същото като „технически възможно за всеки гражданин да проверят." За криптографско интернет гласуване, действителната независима проверяемост изисква активно, открито ангажиране от квалифицирани външни лица — и процес, който активно го求ч, не един, който го толерира само след изследователи решават по своя собствена инициатива да разглеждат.

Избирателният съд на Бразилия провежда официална програма за публичен тест на сигурност всеки цикъл на избирането, канейки всеки квалифициран гражданин да опита да счупи системата и поправя това, което намерят. Това не е перфектен модел — тества специфични системи в специфични конфигурации в специфични точки на времето, и проблемите, които не се появиха в теста, все още могат да съществуват в производствената система. Но то е структурно по-добре от затворен преглед, защото е открит, враждебен и институционализиран, вместо оказионален и случаен.


Какво все още не е проверяемо

Ето какво нито официалният преглед след избирането на NSW нито независимия научен труд не могат да ви кажат: дали някой от 280 000-те гласа преброени преди поправката да е разширена беше променен.

Не защото лоша вяра. Не защото някой крие нещо. Но защото системата не беше проектирана да позволи на този въпрос да бъде отговорен след факт. Няма избирателскочитаем запис, който е бил ангажиран преди гласът да бъде изпратен и който може да бъде сравнен след това. Няма криптографска проверка маршрут, което избирател може да разгледа да потвърди своя бюлетин е бил преброен както е преброен. Телефонната служба за проверка, която би могла да служи на тази функция, би могла да бъде компрометирана.

Това е празнина, която никое официално изявление не може да затвори. Властите могат да кажат — и каза — че не знаят за никакви гласове, които са променени. Това е искрено изявление. Това също е неопровергаемо. „Не наясно от" и „не се е случило" са разделени от цялата ширина на въпроса.

Стандартът на Германския конституционен съд заслужава да се повтори тук, защото се прилага с пълна сила: избирането е легитимно само когато съществени стъпки от бюлетин до резултат могат да бъдат проверени от граждани без специализирано знание. За онлайн гласът, който зарежда код върху уязвима връзка, избирателят не може да провери, че кодът, който получи, е бил кодът, който сървъра е изпратил. За служба за проверка, която сама може да бъде манипулирана, избирателят не може да потвърди потвърждението е реално. За система без ретроспективна проверка маршрут, официалните лица, които я управляват, не могат да потвърдят никакви гласове са променени.

Правилния въпрос не е „намерихме ли някакво доказателство за манипулация?" Правилния въпрос е: „би ли могъл някой да го намери, ако манипулацията е била възникнала?"

Ако отговорът на втория въпрос е не, първия въпрос не предоставя никакво уверение изобщо.

Разгледайте как това пропуск се появява в системи по всия свят →

Прочетете двуминутната версия →

Вижте пълния модел върху документирани случаи →


Източници