fiddur skrev:robwe skrev:Men samtidigt måste man ändå erkänna att även faktorer som rör det fysiska skyddet av valservrar spelar in när det gäller säkerhetsfrågor. Det spelar till exempel inte någon roll om vi har 100 valservrar med säker kryptering om alla dessa står utplacerade i offentliga lokaler där vem som helst kan plugga in vad som helst direkt i datorn, läsa av hårddisken genom godtyckligt OS och hitta varenda kryptonyckel som eventuellt finns lagrad däri. För även kryptologi bygger ju på att man rent fysiskt kan skydda kryptonycklar etc.
Min tanke är där snarare att den som röstat när som helst kan gå in på godtycklig server och se vilken röst som är registrerad på vederbörande. Sålänge man har sitt röstID (vilken form det nu har, rsa-nyckel eller annat), så skall man kunna kontrollera och ändra sin röst.
Tänk dig att valservrar är ett allmänt moln, som replikerar röster till varandra. I en riksdagssituation har man givetvis en eller flera officiella servrar, men det är inte så relevant i sammanhanget. Om man t ex tänker sig en gnupg-nyckel som röstID, så kan man gå in på vilken valserver man vill och lägga en ny röst, beståendes av röstalternativ, propositionsid och tidsstämpel. Denna signeras med ens nyckel. Därifrån kan den skickas runt till alla servrar, som kontrollerar att signaturen är korrekt. Det enda svår här är hur man hanterar listan över korrekta nycklar. Den skulle då enligt mitt nyligna förslag genereras en gång om året och publiceras av röstlängdsmyndigheten (utan personidentifikation). Alla kan se vilken nyckel som lagt vilken röst, men ingen kan koppla nyckeln till person, inte ens röstlängdsmyndigheten.
Ett säkerhetsproblem är om röstlängdsmyndigheten blir hackad och fler nycklar läggs till, eller nycklar tas bort. Det finns också en risk att någon i hemlighet övervakar skapandet och utskickandet av nycklar, och på så vis kan spara ner vilka nycklar som skickades till vilka personer. DESSA brister skulle vi vara tvugna att hantera med rutiner, kontroll och rigid fysisk säkerhet dock...
Kontrollerbarheten finns i alla fall då i att du alltid kan kontrollera din egen röst. Du kan kolla med alla dina vänner att de som borde ha rösträtt också har fått sina röstID, och att ingen har fått mer än ett röstID. Du kan också kontrollera hur många som är med i röstlängden, även om det kanske är orimligt för dig att räkna hur många som egentligen borde vara med i röstlängden. For all I know, vi skulle kunna vara 500000 invånare i Sverige, jag har då inte sett själv att vi är 9 miljoner...
Att basera säkerheten på att två servrar inte fås att samarbeta är inte mycket till säkerhet, som jag ser det...
Okej... du hävdar alltså att du kan få anonymitet samtidigt som godtyckligt många servrar kontrollerar röstandet. Jag är tveksam, men låt oss granska din lösning.
Till att börja med måste jag erkänna att du nämner en komponent som jag utelämnat, nämligen möjligheten att i varje röst bifoga ett slumpmässigt tal, eller en krypterad identitet som gör att väljaren kan kontrollera att hans eller hennes röst är registrerad rätt i en viss valserver. Detta måste jag erkänna ger något mer möjligheter vad gäller själva valsäkerheten. En person kan därmed detektera om hans eller hennes röst har räknats rätt eller fel. Men jag skulle vilja mena på att detta endast skänker begränsade möjligheter. Vad gör man till exempel i följande fall:
1. En person påstår sig ha röstat på ett visst sätt, när detta i själva verket inte är sant. Antagligen är det svårt att i efterhand bevisa att du verkligen skickade en röst ifrån din del av nätverket till servrarna. Valsystemets integritet kan på detta sätt komma att ifrågasättas på felaktig grund.
2. Om vi har personer som är inte är så aktiva i sitt röstande, vad finns det för skydd emot att illvilliga valservrar använder dessa personers identitet för att fejka röster. Eftersom dessa personer aldrig använder sin rätt att rösta, eller kontrollera att deras röster räknas rätt, så uppstår en möjlighet för attacker i alla fall.
Dessa båda punkter sammantaget innebär att vi dels har en situation där alla människor måste kontrollera att deras egen röst har räknats rätt, men även om någon person påstår att deras röst inte har räknats rätt, så blir det svårt att bevisa att så verkligen är fallet. Detta kräver någon form av datalagringsdirektiv för nätverken, vilket i sin tur skapar ytterligare problem vad gäller anonymiteten.
Den stora frågan vad gäller detta moln är såklart hur man klarar anonymiteten. Du menar att detta sker genom en så kallad röstlängdsmyndighet. Egentligen är det dit du har lokaliserat de flesta av alla säkerhetsproblem i din modell, vilket du också antyder. Jag menar att den information som finns i röstlängsmyndigheten blir extremt värdefull, och kan bli föremål för en rad attacker:
1. Om kopplingen mellan fysisk person och RöstID blir känd av någon, så kan den personen i princip få fullständig kännedom om vem som har röstat vad i hela systemet.
2. Om röstlängdsmyndigheten blir hackad så så att ett nytt RöstID (en publik RSA nyckel) registreras på en inaktiv medborgare, så kan det RöstID:t användas för att skicka in förfalskade röster i systemet.
Detta betyder under alla omständigheter att röstlängdmyndigheten blir den svaga länken i kedjan. Du säger att mitt system inte är säkert eftersom det räcker att 2 servrar samarbetar för att knäcka någons valhemlighet, men i ditt fall räcker det ju med att 1 server vill göra det. Valhemligheten är inte alls särskilt säker i ditt system.
Sedan vad gäller säkerheten i röstresultatet. I mitt fall behöver man t.ex. ha 2 av 3, 4 av 5 eller 6 av 7 servrar för att kunna fuska med valresultatet på ett sätt som inte går att upptäcka. Detta är inte helt dåligt. Din variant fungerar här jättebra med ett helt moln, men om röstlängsmyndigheten hackas enligt punkt 2 ovan, så spelar molnet ingen roll alls längre.
Det finns i och för sig ett sätt som man möjligen skulle kunna få din idé att fungera lite bättre, utan en så sårbar röstlängdsmyndighet. Man kan försöka undvika punkt 1 genom att till exempel bara byta ut RöstID en gång varje år, och därefter radera kopplingen mellan fysisk person och RöstID. I extremfallet skulle man kunna tänka sig att människor lägger RSA nycklar i en valbox rent fysiskt vilket gör att kopplingen mellan RöstID och person aldrig behöver finnas i någon dator vid något tillfälle. Men detta betyder att man inte kan byta nycklar hur som helst under loppet av ett år. Om man förlorar sin nyckel så måste man vänta till nästa år för att få en ny. Kanske det är detta som du har tänkt dig? Med den här lösningen skulle man också kunna skicka ut kopior av röstlängden till alla servrar, vilket förhindrar manipulation. Men detta kräver ganska dyra logistiska lösningar, med röstsedlar som innehåller 3D-barcodes av alla nycklar och som måste scannas in av valmyndigheten. Det är i och för sig en lösning som inte är helt fel.
Men det blir som sagt omöjligt att byta nycklar mellan dessa val med detta system. Om någon stjäl din privata nyckel, så kan någon annan rösta i ditt namn tills nästa valperiod kommer, och du kan byta ut din nyckel. Men detta är kanske ett okej pris för att ha en idiotsäker valhemlighet samtidigt som röstresultatet är rejält skyddat det också så länge som människor kan hålla sina privata nycklar skyddade rent fysiskt.
Jag kan tänka mig ditt system med röstlängd, om man gör som jag föreslår ovan med att rösta rent fysiskt i röstlådor med kryptonycklar. I annat fall tycker jag att röstlängdsmyndigheten utgör en allt för svag länk i ditt system. Jag vill inte behöva lita på den myndigheten på det sättet.
Men detta är i alla fall en intressant diskussion
... Det känns som att vi i alla fall har 2 rätt så okej lösningar.