Електронно гласуване [лекция]

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

Въпросителни има и за това какво става след като електронното гласуване бъде одобрено – какво става? Съвсем правилно днес депутати са отбелязали, че реалистична цел е въвеждане през 2018-та. По-рано просто няма как да сме готови. Но дори технологията да не е готова, ще трябва да се приемат промени в законодателството, които да регламентират електронното гласуване.

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

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

А ето и лекцията ми от OpenFest за електронно гласуване, където се опитвам да разгледам максимално много аспекти, проблеми, решения:

Ето ги и слайдовете:

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

9 comments

  1. Завиждан на оптимизма ти.
    Добре – изброяваш възможни решения да отделни проблеми, но не анализираш до колко тези решения са съвместими помежду си. Също доста омаловажаваш критиките към Естонската система – там всичко се свежда до делегиране на доверието към едно звено и ако то се компрометира имаш 100% компрометирани избори. С централизирана система няма нюанси на компрометиране – винаги е 100%.

    Можеш ли да съвместиш blind signature с изискването за многократно гласуване в рамките на една седмица и тайна на вота.

    Проблемите за тайна и консистентност на вота не са „невалидни аргументи“ – това че можеш да решиш единия не означава че няма да е за сметка на другия.

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

    И последно opensource или не – как гарантираш че публикуване код е този който работи на сървъра (пък и на клиента не е толкова тривиално но има поне шанс). Одиторите какво ще одитират – електроните в паметта и в процесора?

  2. Одиторите ще одитират дали е инсталирано това, което е в repo-то.

    За връзката между компонентите – прав си, свързването им е сложната задача. Всяко нещо има решение по отделно, а заедно – почти всички да, само някои са спорни. И там трябва да са усилията.

    За peer review-то съм напълно съгласен – даже го казвам в презентацията 🙂 Трябва концепцията да е ясна преди да я реализираме.

    Що се отнася до естонското – няма да се съглася, че е „ужасен пример“. Работещ пример е, с някои валидни притеснения. 10 години още не са настъпили мотиката (но това не значи, че мотика няма, разбира се).

    Че съм оптимист, оптимист съм, но не сляп оптимист 🙂 Оптимистичен параноик е може би по-правилно.

  3. > Одиторите ще одитират дали е инсталирано това, което е в repo-то.
    Никакъв параноик не си щом изказваш подобни твърдения.

    > 10 години още не са настъпили мотиката (но това не значи, че мотика няма, разбира се).
    Проблема е, че и да настъпят мотиката (или по лошото даже нарочно да изсипят един камион с мотики по поляната) няма как да се разбере. Всичко е чера кутия и работи на една честна дума. Докато има делегиране на доверие, това ще е по подразбиране компрометирана система и никакви законови писания няма как да го променят. За това примерно неща като blind signature, tor и blockchain са добра посока (неща които нямат нищо общо с пародията на система, която е Естонската – да такава е дори и да не си съгласен. Казах и защо мисля така). Но не съществува световен пример как тези неща могат да се интегрират в система която не разчита на доверие (и имам чувството че ако съществува такова решение то ще има нужда от доста по сериозна инфраструктура от само смарт лични карти).

    И това е академичен проблем според мен – за това говоря за peer reviewed журнали а не просто opensource peer-review. Ако няма математическо доказателство за анонимност и интегритет, винаги нещата стигат до single point of failure на която трябва да се „верва“.

  4. Аз именно научно peer review имам предвид 🙂 Разменил съм си няколко дълги email-а с Дейвид Чаум, Роналд Ривест и Дейвид Джеферсън. Определено ще искаме анализ от тях.

    Алтернативи на естонското има. Scytl уж имат прилични реализации, но не съм ги гледал в детайли. Из ресурсите в края на слайдовете има разни proof of concept проекти с blockchain. Чаум има хибридни имплементации (с едни сложни хартии 🙂 ). Т.е. не сме на гола поляна.

    Елементът на доверието винаги ще го има. Защото даже да докажеш, че дадена схема на теория работи, то на практика може нещо да се „счупи“. А всичко това не нетехническите хора не им говори нищо. нЕкви учЕни обясняват някви функции. И перфектна система да има, ако няма доверие в нея, няма файда. А това доверие е функция не само на реалната сигурност на системата (пример: Естония).

  5. Божо, точно вчера по темата ми попадна този линк – https://www.usvotefoundation.org/E2E-VIV – много е възможно и да си го чел вече – не е лошо четивото. Още повече, че го има разписано и за нетехничари.

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

    – end-to-end encryption Е2ЕЕ (вкл. client-side encryption)
    – zero-knowledge proof (mix-net)
    – end-to-end verifiability E2E-VIV (cast as intended + recorded as cast + counted as recorded)

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

  6. > Scytl уж имат прилични реализации, но не съм ги гледал в детайли

    Ето ти малко детайли, благодарение на J. Alex Halderman (да! същият, когото ти наричаш Бареков 2.0 …):
    https://freedom-to-tinker.com/blog/teaguehalderman/ivote-vulnerability/

    Такива фирма има доста. Но предимно клиентите им са фирми/институции/организации/партии, които провеждат вътрешни избори. Там изискванията са много по слаби от тези при национални избори за парламент/президент/референдум.
    Най-малкото примерно заплахата от inside attack липсва. Но има разлика от това в МакДоналдс да гласуват какъв кетчуп да слагат на бургер и тук да гласуваме дали да излезем от ЕС примерно. Или да изхарчим 20+ млрд за електроцентрала.

  7. > Елементът на доверието винаги ще го има

    Бъркаш значението на доверие в контекста на компютърна сигурност със значението на доверие в контекста на PR, социологически проучвания и т.н.

    > И перфектна система да има, ако няма доверие в нея, няма файда

    Най общо-казано неща като Zero-Knowledge proof, blind-singing – при които на операторът на изборите не е дадено и няма нужда да бъде давано доверие, защото математически е невъзможно да влия на криптографската схема. Или примерно web of trust като алтернатива на certificate authority, на което безусловно се доверяваш.

    А за доверието на хората в системата – по-добре сигурна система в която да не вярва никой и да не я ползва от колкото като естонците да се бият в гърдите колко са велики и да имат доверие на нещо което не става за нищо.

    > А това доверие е функция не само на реалната сигурност на системата

    Или на добра PR кампания и всекидневно облъчване по сутрещните блокове в държавата на 100тно място по свобода на словото. Е Естония е по напред в класацията – там незнам как го постигат това доверие.

  8. Халдерман му казвам Бареков 2.0 заради начина на публикуване на информацията. Иначе съм му чел нещата и са смислени 🙂

    За разграничаването на двата типа „доверие“ е ясно. Аз имах предвид доверието не обществото. За Zero-knowledge proof е ясно.

    Надявам се ще има експертна група за обсъждане на бъдещите законодателни промени – искаш ли да те имаме предвид? Щото не върви аз да съм най-големия експерт по темата, дето съм по-скоро крипто-любител (макар да съм изчел доста).

  9. Мерси но и аз не съм експерт – то такива както казваш в БГ май няма (освен политиците и журналистите разбира се).

    Виж следващият референдум ако е „Искате ли да решим P vs NP?“ и народа каже „да“ – брой ме в експертната група – там съм 😉

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *