Текст на Божидар Божанов, член на Изпълнителния съвет на „Да, България!“, публикуван и на личния му блог.

Да, България проведе вътрешни избори по електронен път за излъчване на кандидати за европейски избори (като част от листата на Демократична България). Ето и резултатите. Трябва да отбележа, че макар хората да смятат, че аз съм свършил всичко, това не е така – програмисти-доброволци свършиха повечето работа по приложението, аз основно „давах акъл“, преглеждах кода за уязвимости и написах някои базови криптографски компонента.

Ще отделя само два абзаца за контекста, след което ще мина на по-практически въпроси. Да, това е първото електронно гласуване в България в политически контекст и като такова има за цел да се противопостави на наративна на парламентарното мнозинство, че всичко е много опасно и в никакъв случай не трябва да се прави. Политическото послание е, че може. На всички е ясно, че националната система би изисквала по-сериозна разработка, повече тестове, повече защита, повече оперативна сигурност и т.н. Ясно ни е, че не може да вземем приложението и да го пуснем на национални избори. Но предвид, че за приложението са похарчени 0 лева и е изградени с доброволен труд, това е по-скоро нормално.

Ясно е обаче, че държавата от една година „седи“ върху техническо задание за система за електронно гласуване и нищо не прави по въпроса. Дори не пуска поръчка с цел да експериментира. Та, едно такова вътрешно електронно гласуване може да е аргумент за „отпушване“ на тоя процес. А сега по същество и в отговор на някои от по-сложните и по-неудобни въпроси.

Първо, най-сложният въпрос – как гарантираме, че резултатите не са фалшифицирани. И това е сериозен въпрос по принцип към електронното гласуване. В нашия случай взехме следните мерки:

  • Отворихме кода на компонентите на приложението, свързани с електронното гласуване. Някои избиратели се похвалиха, че първо са прегледали кода и след това са гласували. Отворихме само компонентите за гласуване, защото приложението има доста други функционалности, които са конкурентно предимство на Да, България.
  • Реализирахме гласуването не просто като онлайн анкета, а както трябва – с необходимото генериране на ключове, криптиране, подписи, проверки. Това гарантира както тайната на вота така и това, че не са подменяни подадените гласове. Особено сериозно бяхме подходили към тайната на вота, като не записвахме времето за подаване на гласа и преди анонимизиране разбъркахме поредността на подадените гласове. При по-голяма извадка времето не би било такъв проблем, но на теория можеш да идентифицираш даден гласоподавател по времето на подаване. Прегледахме кода на естонската система за гласуване – там времето се съхранява, но пък и извадката е по-голяма.
  • Криптографските ключове бяха съхранявани във възможно най-сигурното място за съхранение на телефона, така че друг процес да не може да ги извлече (и съответно да подаде фалшив глас след това). Поради това някои избиратели се сблъскаха със съобщение за грешка, че на устройството, от което опитват да гласуват не са намерени ключовете (тъй като са се регистрирали от друго устройство). Това беше и една от причините да не промотираме уеб-версията на гласуването. Такава имаше, но браузърите нямат модул за сигурно съхранение като смартфоните.
  • В допълнение, всеки глас беше изпращан в блокчейн-базираната услуга LogSentinel (която моята фирма разработва). Така интегритетът на гласовете е гарантиран и ако някой се опита да промени (или изтрие) даден глас в базата данни, това би било „хванато“ и коригирано.
  • Всеки член и кандидат имаше право да дойде на място и да му бъде показано, че именно публикуваният код работи в продукционна среда.
  • Всеки избирател можеше да гласува неограничен брой пъти, като се брои само последният глас. Макар някои медии да видяха проблем с това, то е основен принцип при гласуването в отдалечена, неконтролирана среда. Ако някой те накара да гласуваш по определен начин, трябва след това да можеш да промениш гласа си и да гласуваш по съвест

Можеше да направим още повече, разбира се. Можеше преброяващият код и мястото, където се поставя частният ключ, да бъдат на друг компютър, който няма достъп до интернет (както се прави по принцип). Можеше да включим функционалността за „разписка“ от гласуването (която беше разработена), но не го направихме с оглед по-малко объркване (че имахме „код за регистрация“, „парола“, а после и „код за проверка“). Можеше и да си купим DDoS защита. Но трябваше да балансираме риска с наличните човешки ресурси.

Важно е да подчертаем и компонента с доверието. Докато на национални избори такова по дефиниция няма, тук кандидатите имаха доверие на Комисията по вътрешни избори, което е доста важно за легитимността на избора.

Друг често задаван въпрос беше как гарантираме, че не са били регистрирани фалшиви профили за гласуване. За съжаление правителството за втора година отлага въвеждането на национална схема за електронна идентификация, в т.ч. с чип в личните карти. Т.е. нямаме правнозначимо средство за електронна идентификация на физически лица, на което да стъпим (ако имаше, то щеше да е базирано на PKI и смарткарти и/или HSM и/или secure storage на по-нови смартфони). Тръгвайки от тази изходна точка, разгледахме четири варианта:

  • използване на КЕП за гласуване. За съжаление твърде малко хора имат квалифициран електронен подпис, а и той не работи с мобилни приложения (в общия случай). Като цяло използването му е доста неудобно и това би било пречка.
  • прикачане на снимка на машинночетимата зона (MRZ) на личната карта – това би работело, но предположихме правилно, че хората са много резервирани към даването на каквито и да било лични данни, без значение колко GDPR-compliant сме. Имахме редица оплаквания и откази за регистрация дори само като искаме последни четири цифри на ЕГН
  • използване на облачен доставчик на eID и/или online enrollment (напр. EvroTrust). Сигурността щеше да е по-висока от тази на сканиране на лична карта, но тъй като всички системи за online enrollment изискват снимка на документ за самоличност (а някои и лицево разпознаване), отказът от регистрация заради ‘твърде много лични данни’ щеше да е масов.
  • настоящият подход с представяне на минимално количество данни и подбиране на случаен принцип и прозвъняване на някои регистрирани с цел проверка за измами.

Ясно е, че последният вариант е неприложим напр. на национални избори, но преценихме, че нашият threat model (модел на потенциални заплахи) е различен. Залогът е по-нисък, и смисълът на това някой да прави „номера“ е ограничен, като обаче има риск да бъде „хванат“. Предпочетохме да не налагаме високи психологически ограничения свързани с личните данни, за да може достатъчно хора да изпробват системата и да упражнят гласа си. Все пак, формата изискваше въвеждане на определено количество такива, за да служи за бариера. Това по наша преценка намали броя избиратели, защото страхът от това да ти „изтече“ ЕГН-то е голям. Имаше и кодове за регистрация като допълнително ограничение – те бяха раздадени „поименно“ на членове и симпатизанти, а по-масовите кодове се следяха.

Третият въпрос е удобството на използване. И там има върху какво да поработим. В някои случаи не беше очевидно какво точно трябва да се направи. Имаше доста вариации – ъпдейтнато приложение, „разлогнат“ потребител, възстановяване на парола, активиране на профил чрез имейл, отворен от друго устройство и т.н.

Тук усложненията идваха от няколко страни – сигурността (генерирането на ключове); интегрирането на гласуването в приложение с доста други функционалности; двустъпковият процес, включващ предварителна регистрация; желанието ни да ограничим рисковете от фалшиви профили с изискване на допълнителни лични данни и кодове за регистрация. Все пак можеше да навигираме тези препятствия по-добре и да си спестим допълнителни разяснения по телефони и чатове.

Последният въпрос е свързан със системата за точкуване. Тя не е директно свързана с това, че гласуването е електронно, но електронизацията позволява много по-лесното опериране с такава система. Избраната система е вариация на тази на Борда, която се използва за национални избори в няколко държави, в т.ч. Словения, макар и само за представителите на етническите малцинства. Нашата модификация включваше бонус за посочените на първо и второ място (но и без модификацията резултатите щяха да са такива). Причината е, че на самите европейки избори няма възможност за такъв гъвкав избор, и по-предпочитаните като водещи кандидати е по-вероятно да получат глас от тези, за които мнението е „ок, приемлив кандидат е, като за 3-то място“.

Мисля, че крайният резултат е добър. Свърши както практическата работа, за която беше създаден (да проведе гласуване), така и политическата работа да фокусира темата с електронното гласуване. Смятам и че решенията, които взехме за функционирането на системата бяха правилни. Опитах да ги обясня по-горе, защото не винаги отстрани изглеждат така, когато човек няма цялата картинка.

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

Предстоящи събития

Няма намерени резултати

Последвайте ни