25 ноември 2014 г.

Електронно гласуване

Democratic institutions are quarantine mechanisms for that old pestilence, tyrannic lust. As such they are very useful and very boring.

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

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

За изясняване на проблема ще започна с това какво наричам „електронно гласуване”, тъй като в съзнанието на повечето хора са размити различни понятия и възможности за реализация. Системата за електронно гласуване трябва да замества изцяло подаването на хартиени бюлетини, т.е. без списъци, комисии и урни. За да може да бъде реализирано това, трябва да бъдат подсигурени компютърни терминали, чрез които гласуването да се осъществява на определено (постоянно) място, например в сградата на местната община. За удобство и гъвкавост трябва да е възможно освен чрез тези терминали всеки да може да гласува от дома, службата или произволно място с интернет свързаност. Гласуването на всеки трябва да е анонимно и защитено от манипулация. Електронното гласуване трябва да е достъпно за всички граждани, т.е. не бива да бъдат налагани ограничения като изискването за притежание на електронен подпис. Както се вижда изискванията към системата са отделни и независими от техническата реализация (пример за възможна такава ще бъде разгледан по-нататък в текста).

Защо е необходимо електронното гласуване:

  • Защото съм програмист. Доколкото това е в кръга на шегата, смятам, че е важно читателите да бъдат информирани за всеки възможен конфликт на интереси на автора с разглеждания проблем.
  • Защото е бързо. Сравнително ясно е, че докато преброяването на бюлетините и публикуването на резултатите от едно конвенционално гласуване отнема дни, дори седмица, тези процедури са на практика мигновени за електронното гласуване.
  • Защото е евтино. След като еднократно е била покрита стойността на необходимата инфраструктура и организация, електронното гласуване на практика е безплатно. Това е важно, понеже, освен очевидното предимство, позволява да бъдат ефективно провеждани референдуми за важни въпроси без да има допълнително оскъпяване.

Следва примерна реализация на системата за електронно гласуване.

За да може да бъде осигурена надеждна защита, се използва двуделна идентификация[1] – освен чрез потребителско име (или ЕГН) и парола, достъпът до системата се осъществява чрез уникален електронен ключ (security token)[2]. За всеки пълнолетен гражданин на България с издаването на лична карта се предоставя и електронния ключ, който е валиден не повече от десет години и се подменя при смяната на личните документи. Чрез електронния ключ се генерира код за достъп до системата (TAN код)[3], който е валиден не повече от пет минути и се въвежда заедно с потребителското име и паролата. Такъв код се използва и за извършването на всяка една от достъпните за потребителя операции, като по-този начин се намалява възможността просто да бъде „налучкан” от трето лице. Силата на този тип идентификация е, че за да бъде достъпен профилът на даден потребител, освен личните данни атакуващият трябва да притежава и електронния ключ! Такива системи за достъп са популярни за осигуряване на защита на банкови данни (електронно банкиране) и други масиви от данни с чувствителна информация. Това е начин също за предоставяне на цялостна интегрирана електронна държавна администрация на физически лица без да е необходимо притежаването на електронен подпис.

От гледна точка на потребителя възможните слабости на този тип идентификация се свързват с възможна атака срещу използвания компютър (browser exploit)[4], подслушване на комуникационния канал (man in the middle атака)[5] или кражба на електронния ключ. Най-значима от трите е първата: чрез инсталиране на зловреден код на потребителската машина хипотетичният атакуващ може да подслушва и да се опита да използва въведената информация за добиване на достъп до профила на потребителя. На практика рискът е сравнително малък, тъй като електронният ключ генерира краткоживущи кодове за достъп, които стават невалидни веднага след използването им (т.е. са еднократни). Подслушването на комуникационния канал е на практика невъзможно, ако се позволява достъпът до системата да се осъществява единствено чрез криптираният https (HTTP secure)[6] протокол. Подобни съобръжения са валидни и за кражбата на електронния ключ – за да бъде използван, крадецът му трябва да знае PIN кода на притежателя. Като цяло пробиването на сигурността би изисквало поне някаква комбинация от подходи и голямо количество инвестирани време и усилия от страна на евентуалния атакуващ. За компютърни терминали разположени на територия на държавна служба (например сградата на общината) тези рискове са силно потиснати, тъй като терминалите не се свързват с интернет и работата с тях се ограничава единствено до работа със системата.

От гледна точка на самата система възможните слабости са свързани с претоварване на сървърите (denial of service attack)[7], задна вратичка (backdoor)[8] или възползване от грешка в някоя от програмите на сървъра (exploit)[9]. Докато първият тип (DoS attack) може да подразни потребителите, той е сравнително безобиден, тъй като не нанася трайни вреди на системата. Задна вратичка може да съществува в програми със затворен код, тъй като при тях използващият програмата няма пряк достъп до изходния ѝ код и не може да бъде удостоверено със сигурност, че програмистите не са оставили възможност за непозволен достъп. Имайки предвид, че много програми с отворен код са напреднали значително и дори изпреварили конкурентите си със затворен код, то най-разумно изглежда изграждането на система на база на програми с отворен код. По стечение на обстоятелствата се оказва, че те са и тези, които са по-надеждни от гледна точка на грешки в изходния код (bug-ове) и съответно са по-трудни за директна атака (bug exploit).

Въпреки че цената на подобно начинание е трудно да бъде пресметната точно, ще се опитам да направя няколко прости оценки, за да стане явно голямото предимство от инвестицията в такава система. Мога да приема, че десет програмиста могат да приключат работата за една година. Техните заплати се равняват на около 600 хиляди лева (или евро; зависи от държавата, в която се намират). Ако се предвидят толкова и за административни разходи (писане на проекти, оферти и пр.) и тестване, общо ще са нужни около 1.2 милиона лева. Нека всекиму са необходими около 5 минути за гласуване. За да се обезпечи гласуването на около 100 човека би бил необходим един компютърен терминал. При население от 8 милиона души това са 80 хиляди компютърни терминала. Тъй като се очаква не малка част от избирателите да използват личните си компютри и отчитайки, че избирателната активност не достига 100%, спокойно може да се приеме, че общият брой необходими терминали е 40 хиляди. Един терминал заедно с необходимата поддържаща инфраструктура (кабели, рутери и пр.) може да се счита, че би струвал около хиляда лева. Т.е. общата цена на техническото обезпечение е около 40 милиона лева*. Не правя оценка за цената на сървърите, тъй като е нормално да се очаква да са под 0.1% от общата стойност. Сумирайки двете числа и добавяйки марж от 30% за разходи, които не съм предвидил, се получава общо около 55 милиона лева. Терминалите спокойно могат да работят 5+ години, защото изискванията към тях са много ниски. На всеки 5 години у нас се правят средно поне по 3.5 броя избори (за 20 години най-малко 14 броя – 5 кметски + 5 парламентарни + 4 президенстки), като тук изключвам извънредни. Последните избори струваха около 22 милиона лева, т.е. средно конвенционалните избори ни струват поне 75 милиона лева на всеки 5 години, т.е. поне 35% по-скъпо отколкото използвайки електронно гласуване. Имайки предивид мащаба на изборната кампания, 35 процента са значителен ресурс! Важно уточнение е, че електронното гласуване за разглежданите пет години има на практика фиксирана цена, независимо от броя избори и/или референдуми, което не е вярно за конвенционалното гласуване, при което цената расте пропорционално на броя проведени изборни кампании. Това наблюдение е от изключителна важност, тъй като позволява след въвеждане на електронно гласуване да се провеждат на практика неограничен брой референдуми и предсрочни или редовни избори.

В настоящия текст беше отделено значително усилие да бъде представена една примерна реализация на електронното гласуване, но само повърхностно беше спомената мотивацията за въвеждането на такава система. Може да бъдат намерени много причини за въвеждането на електронно гласуване – от една страна е удобно, от друга – по-евтино, но трябва да се има предвид, че то е само и единствено инструмент за прякото прилагане на властта, произтичаща от суверена. На пръв поглед електронното гласуване не носи значителни ползи към политическата система на страната, правейки изключение за цената му, но това е само привидно вярно. В България няма традиция да се провежда референдум за важни въпроси, а утежнение донася и това, че резултатите от допитванията до народа имат единствено пожелателен характер – в най-добрия случай решение относно зададения въпрос се взема от „Народното събрание”. Имайки предвид, че в страната няма ограничение за представителността на парламентарните избори, ограниченията по отношение на референдумите са по-скоро неуместни приумици, отколкото обосновани норми. Фактически е по-лесно да бъде избран парламент, отколкото да бъде приложено решение взето чрез референдум. Това силно уронва възможността на суверена да осъществява пряко волята си и прави допитванията до народа повече формалност, отколкото инструмент за упражняване на властта. Електронното гласуване прави възможно провеждането на референдум (практически) безплатно, но в крайна сметка, за да е възможно осъществяването на пряка демокрация, решенията взети чрез референдум трябва да имат непосредствено действие. В този смисъл допитването до народа би било с предимство пред всички вътрешни разпоредби в страната, при условие, че не противоречи на основния закон.

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

* Цената на електронния ключ не е добавена, понеже се предполага, че тя се приспада към таксата за издаване на лични документи.