← Всички пропуски
💻 Софтуер, който не можеш да проверяш

Софтуер, който не ти е позволено да проверяваш

Машината, която брои гласовете, следва тайни инструкции. Ако никой извън компанията не е допуснат да чете тези инструкции, никой не може да бъде сигурен, че гласовете са преброени справедливо.

Какво се случи всъщност

В едно забележително изследване от 2006–2007, изследователи от Princeton получиха широко използвана машина Diebold AccuVote-TS и показаха, че някой с кратък физически достъп може да инсталира код за кражба на гласове, който пренапише всички собствени записи на машината, за да скрие кражбата — точно вид дефект, който публичният преглед на кода съществува да улови.

Къде стойностите днес

Тази конкретна машина с докосваем екран без хартия е сега в голямата си част отпенсионирана — около 98% от гласовете на общите избори в САЩ през 2024 са отдадени на хартия. Но пропастта самата не е затворена: трите доставчика, които управляват приблизително 90% на гласуването в САЩ днес (Dominion, ES&S, Hart), са всички частни предприятия и держат своя源код затворен от публичния преглед. Цифрата 86% по-горе е измерена от днешното избирателното право, не от 2006.

Представете си съдия, който никой не може да наблюдава

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

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

Защо е важно

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

Целта не е, че всяка машина е манипулирана. Целта е по-проста: ако не можеш да я провериш, не можеш да докажеш, че е правилна. Доверието не трябва да се изисква там, където доказателство е възможно.

Как TrustVoting го затваря

TrustVoting е построен на просто ангажиране: кодът, който брои вашия глас, трябва да бъде отворен — публикуван в пълен обем, с възпроизводими компилации, така че всеки може да го преком­пилира и да получи идентична програма (не просто да го чете и да се надява).

Върху това се добавя криптографски слой на интегритета — контролни суми и attested boot — който позволява на всяка машина да докажe, че работи точно с тази публикувана, преглеждана версия и нищо друго не е вмъкнато по-късно.

Това е веригата, която замества доверието с доказателство: отворен код, който всеки може да прегледа → компилация, която всеки може да възпроизведе → машина, която доказва, че работи с него. Отворен код сам по себе си не е достатъчен (源кодът трябва да съответства на работещата машина), и контролни суми сами по себе си не са достатъчни (щял би се довярвал на код, който не можеш да видиш) — трябват ти и двете, и такъв е дизайнът.

Как TrustVoting я затваря

TrustVoting е построен, за да публикува своя пълен源код с възпроизводими компилации, така че всеки — не само доставчикът — може да го чете и независимо да го преком­пилира. Върху това се добавя криптографски слой на интегритета (контролни суми + attested boot), който доказва, че всяка машина работи точно с тази публикувана, преглеждана версия на избирателния ден. Отворен код е ангажиментът; верифицируем интегритет е доказателството, че машината го почитува.