Sida 1 av 1
GOV anonyma omröstningar
Postat:
2011-09-09 12.31
av jonas
Jag har uppdaterat GOV till att använda anonyma id:s i omröstningarna, där du får ett nytt hemligt id för varje omröstning. Detta är nu publicerat på gov.e2d.se men ej ännu på val.aktivdemokrati.se
Vi tar en omröstning om detta...
(Ändringen ligger i git som bdb9e22fc5e953fdf7f49ced8882f43b3bad23ba )
Se även diskussion om valhemlighet och kontrollerbarhet:
http://aktivdemokrati.se/forum/viewtopic.php?f=84&t=1208Planen är att signera färdiga omröstningar så att alla som vill kan ladda ned och göra en egen sammanräkning av resultaten, så att de kan se att sin egen röst är medräknad, och att alla som gjort en kontrollräkning har samma resultatfil, genom att jämföra kontrollsummor på den signerade filen. (Detta kräver förstås att alla algoritmer är tydligt beskrivna.)
Här är ett exempel på ändringen:
http://gov.e2d.se/proposition/display.tt?id=114813Klicka "Voting id" för att se vilket id du har i den aktuella omröstningen.
Klicka "Show all votes" för att se vad alla har röstat och du kan se där din egen röst genom att leta upp raden med ditt voting id. (Internt kallad cover_id)
Kan vi applicera denna ändring till val.aktivdemokrati.se ?
Re: GOV anonyma omröstningar
Postat:
2011-09-10 18.21
av jonas
Re: GOV anonyma omröstningar
Postat:
2011-09-10 18.32
av jonas
Re: GOV anonyma omröstningar
Postat:
2011-09-10 23.25
av Alias
Avskyr anonymitet, röstade först nej men tänkte en bit längre än näsan räcker och inser att det finns många situationer där partipiskor och annat viner, som exempel.
Re: GOV anonyma omröstningar
Postat:
2011-09-10 23.59
av jonas
Alias skrev:Avskyr anonymitet, röstade först nej men tänkte en bit längre än näsan räcker och inser att det finns många situationer där partipiskor och annat viner, som exempel.
Alla delegaters röster kommer att vara publika.
Å andra sidan bör det fungera så att du SKA KUNNA rösta anonymt och annorlunda än hur du röstar i egenskap av delegat, om du är en delegat.
Re: GOV anonyma omröstningar
Postat:
2011-09-11 05.51
av fiddur
Hmm, om jag tolkar koden rätt, så får man alltså ett litet fält där man kan se sitt eget röst-id, och så visas allas röst-id, oavsett om de ställt in att de vill vara anonyma eller ej?
Dessutom ser det ut som att röst-id saltas med förslagets id, så att man alltså ha olika röst-id på olika omröstningar... kanske kan vara bra för anonymiteten?...
Jag skulle gärna se att man kan vara icke-anonym utan att vara delegat, men det är väl okej.
Re: GOV anonyma omröstningar
Postat:
2011-09-11 09.49
av jonas
Kom just på att implementationen inte funkar. Måste använda ett hemligt värde för varje användare. Funktionen blir den samma, men kommer behöva lägga in en buggfix för implementationen. :-/
Angående valet att vara anonym: Om man kan VÄLJA att inte vara anonym kan man även bli utsatt för påtryckning eller exempelvis sälja sin röst. Det är därför vi har hemliga val i Sverige.
Samma måste även gälla de som är delegater. En fysisk person ska ju kunna vara flera delegater. Exempelvis dels som representant för ett parti, dels för en viss rörelse, dels för en viss fråga, etc. Sen så ska man även kunna rösta för sig själv och den rösten ska vara anonym. Jag kan tänka mig att man ska kunna ställa in en sak för att enkelt lägga sin delegatröst samtidigt som man röstar för sig själv, exempelvis när man är en delegat med samma namn som sig själv. Men ingen ska kunna se ifall man själv röstat lika dant som man röstat i egenskap av delegat.
Re: GOV anonyma omröstningar
Postat:
2011-09-11 14.44
av jonas
Jag valde att generera ett unikt id för varje omröstning så att man inte ska kunna räkna ut vem som är vem genom att se på flera olika omröstningar. Trots detta går det att gissa vem som är vem speciellt när man tittar på prioriteringsomröstningar.
Jag insåg att jag ju måste ha en hemlig del när det skapas en md5-summa för id. Det bästa alternativet tror jag är att generera en ny slumpsträng för varje användare som normalt inte visas. Inga existerande fält är bra nog eftersom id, e-post och andra delar är kända och/eller kan ändras.
Blir det bra?
Re: GOV anonyma omröstningar
Postat:
2011-09-17 07.29
av fiddur
jonas skrev:Jag insåg att jag ju måste ha en hemlig del när det skapas en md5-summa för id. Det bästa alternativet tror jag är att generera en ny slumpsträng för varje användare som normalt inte visas. Inga existerande fält är bra nog eftersom id, e-post och andra delar är kända och/eller kan ändras.
Blir det bra?
Du menar att på varje användare läggs en extra secret_salt eller liknande, som sparas på användaren och är hemlig och konstant, och används i md5-genereringen?
Re: GOV anonyma omröstningar
Postat:
2011-09-17 12.09
av jonas
Ja.
Vi kan inte anväda lösenord eftersom ett sådant kan ändras och eftersom GOV inte har tillgång till lösenorden när den kopplas till WP inlogg.
Re: GOV anonyma omröstningar
Postat:
2011-09-18 07.31
av fiddur
Ok. Jo, det blir väl bra.
Re: GOV anonyma omröstningar
Postat:
2011-09-24 21.44
av jonas
Omröstningen är avslutad:
http://val.aktivdemokrati.se/proposition/display.tt?id=117208Och ny version av GOV är installerad.
Re: GOV anonyma omröstningar
Postat:
2011-09-24 21.48
av jonas
Jag har lagt in så att varje användare har en hemlighet att använda för att generera id för den specifika omröstningen. Använder predikatet has_secret.
Jag flyttade kod Fredrik gjorde från generate_password() till den tidigare make_passwd() som ligger i Paraframe.
Dock så har jag inte tillräckligt bra random seed för dem. Inte ens efter att jag lade på ännu en källa för randomisering. Råkade få två användare med samma secret!
Det går inte att garantera unika ids om vi använder md5. Men det behövs egentligen inte. Det räcker att man kan se att en av dem har röstat så som angivit.
Det finns bättre moduler för mer slumpmässig data som man kan använda. Exempelvis Math::Random::Secure
Re: GOV anonyma omröstningar
Postat:
2011-09-25 09.06
av gilroitto
Låter extremt osannolikt att du fått 2 likadana secrets om du inte gjort någon miss i hur du kombinerar dina källor. OR och AND är förstörande, XOR är rätt operation dÅ det omöjligt förstöra ett randomiseringsvärde, inte ens med en konstant. Eller så missförstår jag.
Re: GOV anonyma omröstningar
Postat:
2011-09-25 09.50
av jonas
gilroitto skrev:Låter extremt osannolikt att du fått 2 likadana secrets om du inte gjort någon miss i hur du kombinerar dina källor. OR och AND är förstörande, XOR är rätt operation dÅ det omöjligt förstöra ett randomiseringsvärde, inte ens med en konstant. Eller så missförstår jag.
Kolla gärna koden och föreslå ändringar. ..
- Kod: Markera allt
# Needed, since srand is called just in the parent process
state $counter ++;
srand( time ^ $$ ^ $counter );
Det enda jag kan tänka mig är att det hände i en child eller liknande, där de olika källorna räknar upp ungefär på samma sätt, så jag antagligen borde sätta potens på respektive. Typ:
time ^ $$*2 ^ $counter*3... Men kanske bättre att använda en beprövad modul för det här istället.
Re: GOV anonyma omröstningar
Postat:
2011-09-25 09.52
av jonas
Ah. Just ja. srand ska ju bara anropas en gång per child ändå. Felet är att göra det flera gånger. Fixar nu.
Re: GOV anonyma omröstningar
Postat:
2011-09-25 19.24
av gilroitto
Då ^ counter bara redigerar de lägsta bitarna, kunde det kanske vara intressant att se hur srand(...) ^ srand(counter) beter sig. Srand är en deterministisk randomisering om jag gissar rätt. Vilket språk var det igen, tycker state är ett vansinnigt intressant keyword om det gör vad jag tror.
Re: GOV anonyma omröstningar
Postat:
2011-09-25 19.46
av jonas
gilroitto skrev:Då ^ counter bara redigerar de lägsta bitarna, kunde det kanske vara intressant att se hur srand(...) ^ srand(counter) beter sig. Srand är en deterministisk randomisering om jag gissar rätt. Vilket språk var det igen, tycker state är ett vansinnigt intressant keyword om det gör vad jag tror.
Perl.
Version 5.10
http://perldoc.perl.org/functions/state.htmlhttp://perldoc.perl.org/functions/srand.htmlMen borde som sagt välja en bättre modul som sköter den problematiken så som
http://search.cpan.org/~mkanat/Math-Random-Secure-0.06/lib/Math/Random/Secure.pm
Re: GOV anonyma omröstningar
Postat:
2011-09-25 23.16
av gilroitto
Jo men det är väl overkill indagsläget om det tar mycket tid - det mesta fungerar bra då risken för kollisioner ändå blir obefintlig.
Läste detta, som du själv nämnde.
Each sub has its own scope, so sharing a lexical state variable via state $var is not an option, you have to allocate that var in an outer scope. my and state make no difference there.
state verkar ju inte leva utöver klassens eller objektets livslängd, dvs nollställas vid omstart av systemet. Men du kombinerar ju den med time, så det fyller är ju sitt syfte i din lösning.