Helios kosningarkerfið. Sannreyna atkvæði án þess að fórna kosningar leynd

Það vantar sárlega möguleikann á að sannreyna að atkvæði hafi verið talið rétt í núverandi kosningarkerfi.
Helios er kerfi sem útfærir lausn á því þannig að hægt er að sannreyna að atkvæði þitt var talið rétt án þess að fórna kosningarleyndinni og opna fyrir að hægt sé að þvinga kjósendur til að kjósa á ákveðinn hátt.
https://heliosvoting.org/
Kerfið hefur verið til í nokkurn tíma og er því orðið nokkuð þroskað. Nokkrir gallar hafa fundist í gegnum tíðina en allir verið lagfærðir. Svo kerfið er orðið mjög vel rýnt.
Notendur kerfisisins telur meðal annars Pírata í Tékklandi og Bitcoin foundation.

Kerfið er frjáls hugbúnaður og skrifað í Python Django líkt og x.piratar.is svo það ætti ekki að vera gerlegt að innleiða Helios inn í x.piratar.is

Ég leit aðeins á þetta, skoðaði smá kóða, las það sem ég fann af skjölun og prófaði að keyra þetta á vélinni minni.

Því miður finnst mér margt gallað við þetta kerfi eins og það er. Það sem er eiginlega mest áberandi er að það er mjög illa skjalað. Sú skjölun sem finnst um hvernig atkvæðastaðfesting og þess háttar fer fram er mjög gömul, ókláruð, frekar óskýr og virðist gera ráð fyrir því að lesandinn hafi þegar þó nokkuð mikla þekkingu á efninu.

Einnig, þótt það hafi eflaust fengið allnokkra öryggisrýni, þá byggir það ennþá á Django 1.8 sem er orðið þó nokkuð síðan að hætti að fá öryggisuppfærslur. Ég á því erfitt með að treysta því að jafn vel sé haldið utan um öryggið í heildina og það er látið líta út fyrir - og grunar mig að ákveðnir þættir eins og atkvæðastaðfestingin hafi fengið mikla rýni en ekki allt kerfið í heild sinni.

Ég prófaði einnig að keyra þetta með Django 1.11 (sem fær ennþá öryggisuppfærslur) sem virkaði ekki, þannig að ég prófaði 1.9 sem virkaði ekki heldur. Það er því ljóst að það þarf einhverja vinnu frá höfundum við að uppfæra kerfið í útgáfu af Django sem ennþá fær öryggisuppfærslur.

Þetta gæti hinsvegar hafa batnað við næstu áramót. Django 1.x (1.8, 1.9, 1.10, 1.11 etc.) er skrifað í Python 2.7. Django 2.x (2.0, 2.1 etc.) er hinsvegar skrifað í Python 3. Um áramótin næstu (2019/2020) verður Python 2.7 opinberlega orðið úrelt og gert verður ráð fyrir því að allir hafi uppfært í Python 3 á þeim tímapunkti. Það þýðir jafnframt að allir sem nota Django ættu að vera komnir í útgáfu 2.x á þeim tíma. Það gæti því verið góður leikur að kíkja aftur á Helios um næstu áramót, því að þá verða þau vonandi búin að uppfæra þetta.

Annar vandi sem ég rakst á var að mér tókst ekkiað finna út úr því hvernig maður eigi að innskrá sig í kerfið öðruvísi en að nota Google aðgang, Twitter, LinkedIn eða Yahoo. Hvergi fann ég innskráningarglugga né skjölun um hvernig innskráningarferlið virkaði eða hvernig ætti að breyta því. Væntanlega þarf að garfa eitthvað í kóðanum til þess, sem er slæmt.

Það sést í git repóinu þeirra að það er ennþá aktívt verið að þróa þetta. En öll skjölun er margra ára gömul og virðist að langmestu leyti ókláruð. Það virðist því þurfa allnokkra yfirlegu til að nota þetta kerfi. Mig grunar að þeir sem noti það núna njóti beinnar aðstoðar höfunda þess.

Hitt er síðan hvort að eitthvað af hugmyndunum þarna megi útfæra í Wasa2il (Kosningakerfi Pírata). Svo má vera, en ég er ekki nógu vel að mér í dulkóðunarfræðum til að segja til um hversu mikið maus það yrði. Wasa2il er í grunninn tiltölulega einfalt kerfi, þannig að ef það er hægt að einangra dulkóðunartæknina má vel vera að það væri hægt að flytja hana inn í Wasa2il án þess að skipta út kerfum. Það væri samt þokkaleg vinna, bæði vegna þess að tæknin er í flóknari kantinum en kannski aðallega vegna þess að skjölunin á þessu er svo slæm.

Ég bjóst ekki við að þetta yrði plug and play við x.piratar.is
Augljóslega þarf aðlögun til þess.
En svona burt séð með hvaða django útgáfu þessi kóði þarna keyrir á.
Hvað fynnst ykkur um að nota aðferðina til hægt sé að sannreyna að atkvæði var rétt talið. (verifiable) án þess að fórna kosningarleynd.

Það eru líka fleyri kerfi sem nota svipaða aðferð. Eins og https://wombat.factcenter.org/

Það væri algerlega frábært ef við gætum innleitt það, sko. Ég er ekki ennþá 100% sannfærður um að þessi aðferð sé jafn skotheld og af er látið, en hún er klárlega mikið til bóta. Þessar dulkóðunaraðferðir eru notaðar á nokkrum stöðum, til dæmis í Eistlandi. Þegar ég hef rætt við fólk sem notar og þekkir þau kerfi, þá fer það yfirleitt í mikla vörn og lætur eins og áhyggjurnar séu bara ég ýmist að búa til vandamál úr engu eða viljandi að misskilja hluti, sem mér finnst almennt mjög ótraustvekjandi þegar kemur að flókinni dulkóðunartækni. Það er mjög fátt augljóst við það hvernig nákvæmlega þetta nær markmiðunum sem eru nefnd.

En alveg klárlega betra að hafa þetta heldur en ekkert, engin spurning.

Þetta er bara frekar flókið og ég veit ekki alveg hvaðan við ættum að fá tækniþekkinguna og tímann til að innleiða það. Ég væri alveg til í að garfa í því ef ég hefði allan tíma í heiminum, en hann hef ég ekki, og það er bara sama gamla króníska vandamálið. Við erum jafnvel lengi að innleiða einfaldar breytingar vegna tímaskorts tæknimanna, hvað þá svona flóknar, sem þurfa líka að vera alveg skotheldar í þokkabót.

Ég skil þig Helgi. Og er ekki að biðja um að þú reddir þessu í kerfið fyrir okkur. Ég vill kynna félaga fyrir þessum eiginleika og ef þetta er eiginleiki sem við viljum láta gera er spurning um að jafnvel athuga með að budget til að ná þessu í gegn.

1 Like

Hér er áhugavert podcast Hlekkur