"Сертифицирано" означава, че е преминало тест веднъж. Това не означава, че е безопасно днес.
Преглед на сигурността одобри системата. Тогава външни изследователи открили грешката — докато 280 000 души вече гласуваха. Думата "сертифицирано" не спря това да се случи.
Трета седмица на март 2015 година, и държавните избори в Нов Южен Уелс са в ход. Стотици хиляди избиратели вече са хласували онлайн чрез система наречена iVote. Избирателната администрация е провела своите проверки на сигурността. Системата е била прегледана. Никой не е повдигнал алармата.
Тогава двама изследователи — J. Alex Halderman от Университета в Мичиган и Vanessa Teague в Австралия — насочват браузър към работещата, живата система.
Те не са избирателни служители. Те нямат вътрешен достъп. Те работят отвън, анализирайки какво може да достигне всеки враг с възможност за мрежа.
Това, което открили, е не теоретична уязвимост, скрита в неясен протокол. Това е работещ път на атака. Системата iVote е заредила код от външен аналитичен сървър чрез връзка уязвима за тогавашни слабости на TLS — класът атаки известна като FREAK и Logjam. Нападател позициониран в мрежата би могъл да използва този канал за манипулиране на гласове и компрометиране на поверителността на бюлетините. И телефонната служба за проверка, изградена специално за това избирателите да потвърдят, че техният глас е записан правилно? Тя самата беше податлива на манипулиране, което означаваше, че проверката не проверяваше нищо.
Предизборният преглед на сигурността не е открил нищо от това.
До момента, когато изследователите докладват своите находки, приблизително 280 000 гласа вече са били подадени.
Думата "сертифицирано" работи огромна работа тук — и не я заслужава
Ето какво "сертифицирано" всъщност означава в контекстите на технология за избори.
Означава, че в определен момент във времето — преди развръщане, в контролирана лабораторна среда — система е била тествана срещу писана спецификация, е преминала тези тестове и е получила документ, който го казва.
Този документ не се актуализира сам. Не преизпълнява тестовете, когато се промени зависимост. Не знае, че скрипт за външни аналитични данни е добавен към уеб стека след одита. Не знае, че версията на TLS библиотеката в производство се различава от тази, която рецензентите са анализирали. Не знае нищо, което се е случило след момента, в който е поставена печатът.
Сертификацията е снимка. Системата продължава да работи в свят, който не остава неподвижен.
Това не е грешка, особена за Нов Южен Уелс. Това е структурно за всеки режим на сертификация, който работи чрез проверка на система веднъж и след това доверяване на резултата. Снимката е замразена. Средата на заплахата не е.
Това, което Halderman и Teague открили, не беше резултат от поспешен или некомпетентен предизборен преглед. Това беше резултат от преглед на система, която продължи да съществува и се променя. Външни аналитичен сървър, от който кодът е заредил — това е била част от повърхността на атака, и повърхностите на атаки не са статични.
Урокът е не "издържи по-добър предизборен одит". Урокът е, че еднократната проверка не може да замести непрекъсната, независима, външна проверяемост. И специфичната остина на iVote е, че самият механизъм на проверка — телефонното потвърждение — беше компрометирана. Собственият доказ за коректност на системата можеше да бъде манипулиран.
Заключване, което не можеш да проверяваш, не е заключване. Това е декорация.
Федерален съд направи същото откритие — за хартиен бюлетин, който можеш да държиш в ръката си
Пет години по-късно, в много различна обстановка, федерален съд в Съединените щати в Атланта чеше експертното показание за система, която наистина произвежда физически артефакт. Машините за маркиране на бюлетини Dominion на Джорджия отпечатват хартиен бюлетин. Можеш да го държиш. Можеш да го занесеш на работник в избирателното място. Можеш, в теория, да го проверяваш.
Но има проблем.
Машината за маркиране на бюлетина отпечатва две неща: хумавочитаем текст, показващ твоите избори, и QR код. Това е QR кодът, който сканерът чете, когато събира гласове. И QR код не е човекочитаем. Не можеш да го погледнеш и да потвърдиш, че казва какво казва текстът.
В своето мнение от октомври 2020 в Curling v. Raffensperger, федералният окръжен съд за северния окръг на Джорджия преглед експертното показание, включително от Dr. Halderman — същия изследовател, който беше разглеждал iVote — относно това, което компютърна атака би могла да направи. Съдът установи, че системата "не осигурява проверяем и одитен запис на бюлетин, защото разчита на QR код за събиране на гласове и този код сам по себе си не може да бъде прочетен и проверен от избирателя."
Съдът също цитира заключението на Националните академии от 2018 директно: не съществува технически механизъм, който да гарантира, че приложението за събиране на гласове произвежда точни резултати, и тестването само не може да гарантира, че системите не са компрометирани.
Прочети това изречение отново. Тестването само не може да гарантира, че системите не са компрометирани.
Това не е изследователско твърдение на периферията. Това е федерален съд, цитиращ Националните академии, в публикувано правно мнение. Тестването — което е именно то, което сертификацията е — не може да гарантира целостта на това, което всъщност работи.
Съдът в Джорджия, изправен пред реални избори в следващите седмици, отказа да наложи последна минута превключване на ръчно маркирани хартиени бюлетини. Преценил риска срещу разстройството и избра преемственост. Това е защитима прагматична преценка. Но това не разрешава основния проблем: артефактът, който избирателите биха могли да проверяват, не е артефактът, които са броенни.
Сертификацията е одобрила системата. Дефицитът в проверяемостта на системата остана.
Моделът зад двата случая: проблемът снимка срещу живо
Нов Южен Уелс iVote и Curling изглеждат повърхностно различни. Един включва система за онлайн гласуване, работеща на мрежови сървъри. Другия включва хартиен бюлетин, произведен в избирателна кабина.
Но те имат същата структурна грешка.
И в двата случая, това, което е сертифицирано и това, което всъщност работи, не са доказуемо едно и също нещо — и нямаше механизъм, наличен за публиката, или за избирателите индивидуално, да затвори този дефицит в реално време.
В случая на iVote, дефицитът е между системата, както прегледана, и системата, както развъртяна, която имаше живо зависимост от външен сървър, което никой рецензент не беше оценил. Функцията на проверка, предназначена да поймa проблеми, самата беше компрометирана.
В случая на Джорджия, дефицитът е между това, което избирателят може да видит (човекочитаем текст) и това, което машината всъщност брои (баркод, който избирателят не може да декодира). Хартиеният бюлетин, който щеше да позволи одит, кодира информация, която одитерът — избирателят — не може да прочете. Преброй на ръка на тези хартиени бюлетини одити резултата на баркода, не намерението на избирателя. Както съдът отбеляза, ако баркодът кодира нещо различно от това, което текстът казва, преброй на ръка на хартията потвърждава манипулирането, не избора на избирателя.
Сертификацията е одобрила и двете системи.
Нито един дефицит не беше открояван чрез преглед на документ за сертификация.
Какво всъщност затвари този дефицит?
Сертификацията не е безполезна. Система, която никога не е била тествана от никого, е по-лоша от една, която е била тествана веднъж. Проблемът е да я третираш като достатъчна — като заключение, а не като начало на процес на проверка.
Какво щеше да я направи достатъчна?
Три неща, които са технически постижими и понастоящем редки.
Първо: атестация за това, което всъщност работи, не само за това, което е преглеждано. Система, която криптографски може да докажи на външни наблюдател, че кодът, който осъществява гласува днес, е същия код, който е бил тестван — не по-позна версия, не коригирана зависимост, не заменен модул — затвара дефицита на снимката. Това не е научна фантастика. Това е разрешен проблем в софтуерното инженерство. Просто не е необходимо в повечето режими на сертификация на технология за избори.
Второ: независима външна проверяемост, която не зависи от продавача или администрацията. Урокът на iVote е, че собственият механизъм на проверка на системата може да бъде атакуван. Проверка, която самата система администрира, не е независима проверка. Проверяемостта означава някой отвън — изследовател, политическа партия, гражданин с лаптоп — може да потвърди поведението на системата срещу устойчив на манипулиране запис, който не е получил от системата, която е проверявана. Федералния конституционен съд на Германия разбрал това през 2009, когато е постановил, че избирателите трябва да могат да проверят важните етапи на избор 'без никакви специални знания'. Стандартът не е "експертите могат да го преглеждат." Това е "обикновени хора могат да го проверят."
Трето: артефактът, който е броен, трябва да е артефактът, който избирателят може да проверява. QR код, който никой избирател не може да прочете, не издържа. Хартиен бюлетин, който избирателят маркира с ръка, който сканер чете оптично, се доближава много — защото човек, разглеждащ същия хартия, може да оцени същия маркер, който машина е оценила. Холандската комисия, която препоръча връщането към хартия през 2007, назва този принцип controleerbaarheid — проверяемост — и го третира като неотменяем: "няма тайни в процеса на избор и въпросите трябва да са отговорни и отговорите да са проверяеми и потвърдими." Това не е описание на QR-код бюлетин.
Одитите все още могат да оставят въпроса отворен
Възражението, което вероятно вече формираш: какво за одити след избора? Какво за преброй на ръка?
Те помагат. Риск-ограничаващ одит, който определя хартиени бюлетини срещу машинни суми, както Колорадо е пионер през 2017, осигурява реално статистическо доказателство, че машинното събиране отразява хартиения запис. Полния преброй на Джорджия от почти 5 милиона президентски бюлетина през ноември 2020 потвърди резултата на машина до около една десета от процента.
Но одити на резултата на маркиране на QR-код бюлетина одити интерпретацията на QR код, не намерението на избирателя — освен ако одитерът отделно не потвърди, че човекочитаемия текст и баркодът съвпадат. Тази стъпка не е стандартна.
И одити се случват след факта. В случая на iVote, избора е бил живо преди грешката да бъде открита. Одит след избора на система за онлайн гласуване не може да възстанови гласове, които са били тихо променени при преход, защото няма независима копие на това, което е било хласувано, за одит срещу. Цялата архитектура на интернет гласуване прави моделът "хартия като земна истина" недостъпна.
Има също неизменния въпрос за преброй на ръка самите. Antrim County, Мичиган, изпълни полния преброй на ръка на приблизително 15 700 президентски бюлетина през декември 2020 — и преброят на ръка все още се различава от машинното събиране с около дузина гласове. В гонка, решена от стотици гласове, дузина необяснени разлики между "златния стандарт" брой и машинния брой не разрешават въпроса; те го разширяват. Одитът потвърди, че методът е несъвършен. "Одитът го потвърди" е заверение, не доказателство, когато самият метод на одит носи неизменима грешка.
Отговорът не е да изоставиш одитите. Отговорът е да построиш системи, където земната истина е криптографски защитена, публично видима и независимо проверяема — така, че "одитът го потвърди" означава нещо опровержимо.
Какво все още не можеш да проверяваш — и какво щеше да го направи проверяемо
Ето какво остава непрозрачно в момента в повечето юрисдикции, управляващи сертифицирани системи за гласуване.
Не можеш да проверяваш, че кодът, работещ на ден на избора, е кодът, който е бил сертифициран. Не съществува публичен механизъм на атестация за повечето развъртани системи.
Не можеш да проверяваш, като избирател, че QR-код бюлетин кодира твоите избори правилно. Не е осигурен независим инструмент за декодиране в избирателния кабина.
Не можеш да проверяваш, че живите зависимости на система за интернет гласуване съвпадат със системата, която е била прегледана. Зависимост на аналитичния сървър на iVote не е била в обхвата на одита.
Не можеш да проверяваш, че предизборен преглед на сигурността е покрил повърхността на атака, както е съществувала в ден на избора, защото тази повърхност се променя.
Какво щеше да направи тези неща проверяеми — независимо, без да доверяваш продавача или сертифицирането тяло?
Публикувани, версионни софтуерни компилирания с криптографски хешове, проверени от независими страни в точката на развъртане. Избирателски-проверяеми хартиени записи, където това, което избирателят маркира, е това, което сканерът чете и това, което всеки одитер може да оцени. Реално-времево, машинно-четимо резултати на избирателни участък, което всеки може да изтегли и кръстосано-проверява. И противнически публична тестване — не еднократен предизборен преглед, но постояща, отворена поканка за външни изследователи да намерят проблеми, както съд на избори на Бразилия е институционализирал с неговата програма за публична тестване на сигурност.
"Сертифицирано" е твърдение за миналото. Това, което избора нуждае се е твърдение за точно сега — един, който всеки член на публиката може независимо да потвърди, без да приема на думата на някого.
Изследователите в Нов Южен Уелс открили грешката на iVote отвън, без специален достъп, по време на живот избора. Това е и предупреждение и модел. Предупреждението: затворен, еднократен преглед оставя дефицити. Моделът: външни изследователи с достъп до работеща система могат да намерят какво вътрешните хора пропускат.
Разликата между катастрофа и почти-мис е дали архитектурата на системата позволява вътрешните човека да я проверяват — преди гласовете да са подадени, докато са подавани, и след като са преброени.
Сертификацията казва системата е била проверена.
Проверяемостта казва, че може да бъде проверена.
Това не са едно и също нещо, и никакво заверение на автоблаговото на администратор, както искрено и е, не може да затвори дефицита между тях.
Вижте колко често е този дефицит на проверяемост по целия свят →
Прочетете двуминутната версия →
Разгледайте пълна база данни на случаи →
Източници
- Halderman, Teague — The New South Wales iVote System: Security Failures and Verification Flaws in a Live Online Election (arXiv:1504.05646)
- Curling v. Raffensperger, No. 1:17-cv-2989-AT, Opinion and Order (N.D. Ga. Oct. 11, 2020) (Justia)
- Bundesverfassungsgericht, Judgment of 3 March 2009, 2 BvC 3/07 and 2 BvC 4/07 (English translation)
- Adviescommissie inrichting verkiezingsproces (Commissie Korthals Altes), 'Stemmen met vertrouwen', 27 September 2007
- Colorado Secretary of State — A new kind of election audit: Colorado is first to complete it
- Michigan Department of State — Final numbers from Antrim County audit affirm accuracy of election results
- Tribunal Superior Eleitoral (Brazil) — Teste Público de Segurança dos Sistemas Eleitorais