Математическо „доказателство" за правилното броене на гласовете — със скрита задна врата, вградена в него
Швейцария публикува изходния код на своята система за електронно гласуване, за да може всеки да я провери — и за няколко седмици криптографи открили задна врата, която позволявала на инсайдер да произведе математически валидно доказателство, докато мълчаливо променя гласовете.
Пролетта на 2019 г., където-то в офисите на Swiss Post, се взима решение, което изглежда като радикална прозрачност. Федералната пощенска служба, работеща със своя испанския доставчик Scytl, се собира да публикува полния изходен код на швейцарската система за интернет гласуване. Не резюме. Не брошура. Действителният код — всеки ред — открит за света, да го чете, атакува и съди.
Това трябваше да бъде момента, който разреши спора.
Швейцария се бораше с интернет гласуването от години. Критиците казаха, че не можеш да вярваш на черна кутия. Официалните лица казаха, че системата е верифицирана, одитирана, сертифицирана. Така че Swiss Post направи нещо, което почти никоя избирателна власт в света не е осмелила да направи: отвори кутията. Дойди и погледни, каза. Нямаме какво да скриваме.
Трима независими изследователи — Sarah Jamie Lewis, Olivier Pereira и Vanessa Teague — отнесоха Swiss Post на дума. Разгледаха.
Това, което откриха, трябваше да е невъзможно.
Доказателство, което не доказва нищо
За да разберете какво откриха Lewis, Pereira и Teague, трябва да разберете какво претендираше да прави системата.
Интернет гласуването има фундаментален проблем: когато избирателят подаде бюлетина чрез интернет, как всеки — включително избирателят — може да потвърди, че е преброена правилно и не е заменена с различна бюлетина от сървър в средата? Отговорът, който разработиха криптографите, се нарича миксмрежа или мрежа от миксове. Гласовете идват криптирани. Системата ги разбърква — като рязане на тесте карти — и след това, критично, публикува математическо доказателство, че разбъркването е честно: че премести гласовете, но не промени нито един от тях.
Това доказателство е основното твърдение на системата за верифицируемост. Всеки с правилния софтуер може да го провери. Ако доказателството премине, гласовете са неповредени. Ако доказателството не премине, знаеш, че нещо не е наред.
С изключение на това, че в самото доказателство беше вградена задна врата.
Lewis, Pereira и Teague документираха своето откритие в статия, което озаглавиха — с поклон към Magritte — Ceci n'est pas une preuve. „Това не е доказателство." Откриха, че доказателството за разбърквание в системата Swiss Post–Scytl използваше схема на задна врата за поемане: математическа структура, която функционира честно при нормални условия, но която, ако знаеш скриен набор от стойности (задната врата), можеш да експлоатираш. Орган, притежаващ тези стойности, би могъл да генерира транскрипт на доказателството за разбърквание, който би преминал всяка проверка на верификация — докато всъщност е променил гласовете.
Прочетете това отново бавно. Доказателството би могло да премине. Математиката би се проверила. Всеки софтуер на одитора би казал: верифицирано. И гласовете щяха да бъдат грешни.
Това не беше теоретико-филологически спор. Това беше функционална задна врата, вградена в самия механизъм, който системата предлагаше като гарантия на своята интегритета. Нещото, което беше трябвало да проверяш, за да потвърдиш броенето, беше нещото, което можеше да бъде фалшифицирано.
Какво „верифицируемо" наистина изисква
Swiss Post и Scytl признаха откритието. Швейцарските власти спряха системата за електронно гласуване, очаквайки отстраняване. Никой обвързващ избор не беше проведен на дефектната система, така че никакви гласове не бяха всъщност променени. Но епизодът засяга сърцевината на въпроса, на който трябва да отговори всяко твърдение за технология на избори:
Верифицируемо за кого?
Система може да ти ръкна математическо доказателство и все още да лъже — ако структурата на самото доказателство съдържа тайна полоска, която само оператора на системата знае как да издърпа. Системата Swiss Post не просто твърдеше, че е защитена. Твърдеше, че предлага универсална верифицируемост: гарантия, че всеки, въоръжен с публикувани данни, би могъл да потвърди, че гласът е преброен правилно, без да вярва на единична орган. Това твърдение беше фалшиво. Верификацията беше реална само ако органът действаше честно. Което е точно това, което верифицируемостта трябва да защити.
Германския Федерален конституционен съд разбра тази логика десетилетие по-рано, в своето решение от 2009 г., което забрани избирателни компютри, които публиката не можеше независимо да провери. Съдът разпореди, че съществените стъпки на гласуването и определянето на резултата трябва да бъдат проверяеми от гражданина надежно и без никаквотехнически знания. Не беше питане за съвършенство. Беше питане за нещо, което непрофесионалец би могъл да следва. Криптографско доказателство, което само обучен изследовател може да анализира, е вече стъпка встрани от този стандарт — и доказателство, което подкопан план произвежда, е по-лошо от никакво доказателство, защото активно подвежда.
Случаят Swiss Post показва по-дълбокия проблем. Черна кутия, която казва „вярвай ни" явно моли вяра. Но система с публикуван код, която казва „проверка математиката" и вгражда задна врата в математиката, моли същата вяра, докато я маскира като доказателство. Появата на верифицируемост е по-опасна от признанието на непрозрачност, защото затваря въпроса.
Как отворената кодова база хвана недостатъка, който сертификацията пропусна
Ето нещото, което трябва да задържиш: недостатъкът беше открит защото кодът беше публикуван.
Swiss Post не трябваше да отвори своята кодова база. Повечето доставчици не го правят. Сертификационния апарат, който съществува в повечето демокрации — в Съединените щати, доброволните насоки за системи за гласуване на Комисията за избирателна помощ; в други юрисдикции, национални лаборатории за тестване — включва експерти, изследващи системи при контролирани условия, често под споразумения за неразголване, с техните констатации обобщени, но не всички публикувани. Когато изследовател казва „тествахме го и мина", публиката вярва на изследователя. Логиката е скрита.
Когато Swiss Post публикува кода, направи възможно различен вид изследване: противоборстващо, независимо, неограничено. Lewis, Pereira и Teague не бяха платени от Swiss Post. Нямаха споразумение за поверителност. Публикуваха своя цял анализ, с цитати и уравнения, за всеки да чете и да оспорва. Това не е процес на сертификация. Това е научен — и намери това, което процесът на сертификация не беше намерил.
Пропастта между тези два процеса си струва да бъде наименувана точно. Сертификацията тества дали система се държи правилно при очаквани условия. Независимото криптографско преглед тества дали твърденията на системата произвеждат резултат при противоборстващи условия — включително противоборстващия да е оператора на системата. Това второ въпрос е това, което е най-важно, и това е въпрос, който само отворената публикация позволява.
Сравни пробата за интернет гласуване на DC от 2010 г., където екип от Университета на Мичиган получи почти пълен контрол над публичен пилот за връщане на бюлетини в приблизително 48 часа — точно защото юрисдикцията отвори системата за публично тестване преди реални гласове да бъдат събрани. Уязвимостите бяха хванати, защото на някого беше позволено да атакува. Или помислете на системата iVote на Нов Южен Уелс от 2015 г., където изследователи откриха серьозни недостатъци в живия избор, който вече беше събрал около 280 000 гласа — недостатъци, които преди-избор преглед на безопасност беше разрешил. В случаите, намирането дойде от извън официалния процес, не от него.
Моделът се запазва: отворената инспекция намира това, което затворена сертификация пропуска. Не всегда. Не автоматично. Но достатъчно последователно, че товара на доказателството трябва да се измести. Когато орган казва „ние го сертифицирахме", въпросът е: сертифицирано от кого, срещу какъв модел на заплаха, с какъв достъп, и с констатациите публикувани където?
Задната врата като категорийна проблема
Конкретния недостатък в системата Swiss Post — задна врата в криптографско доказателство — не е implementable грешка в обичайния смисъл. Не е препълване на буфер или неправилно конфигуриран сървър. Това са грешки. Това беше дизайнерски избор, или минимум дизайнерска грешка, в математическата структура, на която твърденията на системата за верифицируемост лежеше.
Това различие има значение, защото ти казва нещо за границите на тестването. Можеш да сондираш софтуерна система за произволни грешки безкрайно и все още да пропуснеш схема на задна врата за поемане, защото схемата функционира правилно отвън — производства на правилния формат, преминаву правилния формат проверки. Недостатъкът е невидим, освен ако не изследваш математическата спецификация и не забележиш, че схемата за поемане, която е използвана, има свойство, което дизайнерите или не знаеха, или не разкрива.
Това е защо аргумента за криптографска верифицируемост в избори не може да спре на „ние публикувахме кода." Трябва да се разширява до: самата математическа структура на доказателството трябва да бъде независимо одитирана от хора, които не са продавец или орган, и които са мотивирани да намерят проблеми, а не да ги сертифицират.
Lewis, Pereira и Teague бяха мотивирани да намерят проблеми. Намериха един. Това не е осъждане на намеренията на Swiss Post — компанията признаде откритието и се премести да го коригира. Това е аргумента за процеса, който произведе откритието.
Какво „одитът потвърди това" оставя открито
Когато системата Swiss Post беше спрян, официалните лица можаха да кажат: процесът работи. Недостатък беше намерен; разгръщането беше спрян; отстраняването щеше да последва. И в тесен смисъл, това е правда. Но си струва да попиташ какво щеше да се случи, ако кодът не беше публикуван.
Отговора е: същото доказателство щеше да работи, същите транскрипти щяха да бъдат произведени, и всеки проверяващ ги щеше да вижда: верифицирано. Сертификацията щеше да премине. Официалните лица щяха да кажат: системата беше одитирана. Публиката щеше да нямаше начин да знае, че доказателството не доказа нищо.
Твърдение за верифицируемост, което не можеш независимо да проверяш, е неразличимо от никакна верифицируемост. Това не е критика, уникална за електронното гласуване. Прилага се на всяко твърдение за коректност в система за избори — включително преброй с хартия. Преброй с хартия на Джорджия от 2020 г. на приблизително пет милиона бюлетини потвърди резултата на машинното броене в рамки на около една десета процент, което е впечатляващо. Но зависеше от съществуването на издържливи хартийни бюлетини, които можаха да бъдат независимо изследвани, не на вяра в машините, които ги преброиха първия път. Хартията беше независимата проверка. Доказателството, което можеше наистина да инспектираш.
Случаят Swiss Post е криптографския еквивалент: кодът, веднъж публикуван, беше хартията. И хартията показа, че доказателството беше измисличка.
Какво би го направило наистина проверяемо
Случаят Swiss Post не завършва случая за криптографски верифицируемо избори. Дефинира какво това претендира наистина да изисква.
Доказателството за разбърквание е правилния вид механизъм — математическа гарантия, че никакви гласове не бяха променени по пътя, проверяема от всеки със софтуера да я верифицира. Но за тази гарантия да бъде реална, а не представена, няколко условия трябва да се произвеждат едновременно:
Първо, криптографската схема не трябва да съдържа стойности на задна врата. Това е математическото изискване: схемата за поемане, използвана в доказателството за разбърквание, трябва да бъде обвързваща и скриваща без тайна задна врата. Има добре разбрани схеми, които отговарят на това без задни врати; изборът на които да се използва не е детайл на доставчика, а публичен въпрос на дизайн.
Второ, доказателството трябва да бъде независимо верифицируемо от страни, които нямат интерес в резултата. Не просто един лаб за сертификация. Множество независими криптографи, със пълната спецификация и имплементация, публикуващи своите констатации за публичен критик.
Третo, цялата верига от избирателя до окончателния преброй трябва да бъде одитирана без вяра в никоя единична точка в верига. Избирател, който хвърля интернет бюлетина, трябва да може да потвърди своята криптирана бюлетина беше включена в миксирането; всеки наблюдател трябва да потвърди миксирането беше честно; и окончателното декриптиране трябва да бъде независимо воспроизводимо. Нито един от тези стъпки не трябва да зависи от кооперацията на органа или добрата воля.
Четвърто — и това е най-трудното — процесът на верификация сам трябва да бъде достъпен достатъчно, че стандарта на Германския конституционен съд да бъде изпълнен: обикновени граждани, не просто експертни криптографи, трябва да могат да потвърдят съществените стъпки. Това може да изисква софтуерни инструменти, интерфейси и документация, които далеч превишават това, което някоя текуща система предоставя.
Нито един от тези условия не бяха напълно изпълнени от системата Swiss Post през 2019 г. Някои от тях не бяха изпълнени от никоя текуща система за избори в света. Това е честната позиция. Случаят Swiss Post не е история за недостатък, който беше намерен и коригиран и всичко е сега добре. Това е история за това какво се случва, когато публикуваш достатъчно, за да позволиш на външника да намери проблема — и какво би отнело да публикуваш достатъчно, че намирането би могло да се случи преди разгръщане, системно, вместо като щастлив случай на независимо изследване.
Злодеят е доказателството, което не можеш да проверяш
Конкретната задна врата в един швейцарски доказателство за разбърквание на един продавец не е точката. Точката е категорията на твърдението: математически доказано, че е правилно, предложено в форма, която прекратява външната инспекция. Всяка система за избори дава твърдения. Продавачи твърдят сертификация. Официални лица твърдят одит. Криптографи твърдят верифицируемост. Всяко един от тези твърдения е само толкова силно, колкото механизма, който позволяава на независимия външник да го потвърди или опровергае.
Когато този механизъм е черна кутия, твърденията лежат на вяра в това, който построи кутията. Когато е публикуван код, твърденията поне могат да бъдат проверени — и понякога опровергани. Когато е публикувано криптографско доказателство, използвайки схема с задна врата, то е представление на верифицируемост: появата на нещото без веществото.
Злодеят в историята на Swiss Post не е Swiss Post, и не е Scytl. Това е непрозрачност, маскирана като прозрачност — доказателство, което изглежда проверяемо и не е. Коригирането не е да се отказа от криптографската верифицируемост, но да се изисква истинската версия на нея: схеми без задни врати, преглед без споразумения за поверителност, доказателства, които независимите изследователи могат да проверят и, когда е необходимо, да опровергаят.
Това е това, което TrustVoting строи към: система, чиято коректност никой не трябва да приемаме на вяра, защото доказателството е публикувано в форма всеки може да инспектира. Не „имахме го одитирано." Не „математиката се провери." Ето математиката. Проверка сам.
Акционираната версия: Швейцария публикува своя код за електронно гласуване, за да докаже, че е надежна. Изследователи откриха задна врата, която позволява на инсайдер да фалшифицира валидно доказателство, докато променя гласове. Доказателството премина. Гласовете щяха да бъдат грешни. "Верифицирано" има смисъл само, ако някой независим е позволено да верифицира — и позволено да каже не.
Това, което все още не е проверяемо: дали някоя друга текуща разгърната криптографска система за електронно гласуване използва подобно проблемна схема за поемане, и дали процесите на сертификация, които тези системи преминаха, включваше противоборстващ независимо криптографско преглед с публикувани констатации. Докато този преглед съществува и неговите резултати е публичен, „системата беше сертифицирана" остава твърдение, не доказателство.
Това би го направило проверяемо: пълна публикация на криптографски спецификации и кодова база, независимо многопартийно преглед без NDA, и публикувани констатации — включително отрицателни — преди някоя обвързваща избор да бъде проведена.
Вижте колко разпространен е този пропуск на верификация в целия свят →
Прочетете 2-минутната версия на този проблем →
Разгледайте документирани случаи на непроверяеми резултати на избори →
Източници
- Lewis, Pereira, Teague — Ceci n'est pas une preuve (trapdoor commitments in the Scytl–SwissPost Internet voting system), 2019
- Bundesverfassungsgericht, Judgment of 3 March 2009, 2 BvC 3/07 and 2 BvC 4/07 (English translation)
- Wolchok, Wustrow, Halderman, Prasad — Attacking the Washington, D.C. Internet Voting System, Financial Cryptography 2012
- Halderman, Teague — The New South Wales iVote System: Security Failures and Verification Flaws in a Live Online Election, E-Vote-ID 2015 (arXiv:1504.05646)
- Georgia Public Broadcasting — Risk-Limiting Audit Confirms Biden Won Georgia
- Bundesverfassungsgericht, Press Release No. 19/2009 (English)