Un paio di giorni or sono è apparso un articolo sull’edizione elettronica de ‘Il Fatto Quotidiano’ dal titolo Voto elettronico e l’importanza dell’hacking dei sistemi a firma di Giovanni Ziccardi, che reputo interessante leggere. Ho fatto alcuni brevi commenti direttamente in calce all’articolo, ma credo che l’importanza dell’argomento voglio sviluppare una analisi più puntuale delle questioni in gioco.
Infatti, se si è sempre parlato di Internet come una sorta di panacea di tutti i mali del mondo, il luogo dove si fa tutto meglio, il discorso è diventato più serrato da qualche mese a questa parte. L’uso dei social network per la raccolta del consenso elettorale prima, ed il successo del Movimento Cinque Stelle – che come è noto fa leva sulla componente tecnologica per la propria organizzazione – poi, hanno fatto diventare la questione all’ordine del giorno.
Io, che pure sono un grande utilizzatore della rete e ne apprezzo i grandi vantaggi, credo che in questa area si debba procedere con i proverbiali piedi di piombo e con grandissima attenzione: ci sono molti rischi nascosti, che la troppa fiducia nella tecnologia ci potrebbe fare largamente sottovalutare. Vediamone alcuni in dettaglio.
Il punto di partenza
L’articolo 48, comma 2, della nostra Costituzione specifica che il voto è personale ed eguale, libero e segreto. Si tratta di principi costituzionali inderogabili, per ragioni più che ovvie.
Quali sono le caratteristiche minime di un sistema di votazione elettronica? Deve essere costituito da una componente software in grado di garantire che ogni singolo voto espresso dal cittadino venga contabilizzato in modo corrispondente a quello espresso, che sia al di sopra di ogni sospetto di manipolazione e/o di errore, che sia verificabile pur mantenendo l’anonimato del voto. Di per contro tale software deve essere supportato da un sistema hardware in grado di garantire sia una stringente sicurezza, che capacità elaborative per gestire le svariate decine di milioni di transazioni che si produrrebbero in una giornata di votazione nazionale.
Il problema della segretezza
Il primo problema nasce proprio dalla segretezza del voto. E’ una condizione al contorno semplice, ma che mette fuori gioco tutti i sistemi tradizionali di sicurezza, che sono basati sul controllo delle operazioni da parte di chi le ha effettuate.
Il parallelismo che spesso sento fare con altre operazioni critiche come le transazioni bancarie – che peraltro spesso sono bersaglio di criminali – non è corretto, sia perché il mondo finanziario ha negli estratti conto il suo sistema principe di controllo, ma anche perché in caso di errori e manipolazioni vi è tutto il tempo di correggere le anomalie, dato che ogni passaggio è accuratamente tracciato.
Il voto, invece, per essere considerato a tutti gli effetti segreto non deve potere essere mai riconducibile in alcuna maniera alla persona che lo ha espresso.
Questo risultato è semplice da ottenere con il metodo tradizionale, cartaceo, seguendo tutte le procedure messe in atto durante lo svolgimento di ogni elezione: si crea un insieme controllato di schede vergini, che vengono tenute sotto controllo durante tutto lo svolgimento delle elezioni sino alla conta finale.
Apparentemente sembrerebbe semplice mimare elettronicamente queste procedure. E’ realmente così?
La risposta è no.
Mentre nel cartaceo è facile distinguere fra una scheda vera ed un suo duplicato, così come identificare eventuali alterazioni del voto espresso, nel digitale questo non è vero: una copia è perfetta, totalmente indistinguibile dall’originale da cui è derivata.
Fede o ragione
La questione non è nei sistemi di controllo, che ovviamente esistono. Ad esempio, mediante la crittografia asimmetrica: il votante potrebbe siglare il suo voto con la propria chiave, e la cosa sarebbe sufficiente a garantire che durante il trasporto e l’eleborazione il voto non venga alterato, sia intenzionalmente che accidentalmente. Peccato, però, che questo metodo, associando il voto ad una impronta non soddisferebbe il requisito base della segretezza.
Se si elide, come è indubbiamente necessario, questo sottile filo che unisce il voto al suo votante, il sistema passa da essere realtivamente certo – ma sempre meno di quello basato sul sistema cartaceo – allo stato di struttura fideistica: si fonderebbe solo su una fede totale ed incondizionata sulle figure che gestiscono il sistema di votazione.
Spesso noi abbiamo troppa fiducia nei sistemi tecnologici. Consentitemi giusto un esempio: la stragrande maggioranza dei siti archiviano le password degli utenti in una forma crittografata chiamata hash. Si tratta di un codice ottenuto con metodi che non dovrebbero consentire di risalire alla chiave originaria. Ogni qual volta che ci autentichiamo su un sito la nostra password viene convertita al volo in hash e se corrisponde con la copia memorizzata veniamo riconosciuti. Lo scopo è chiaro: serve a prevenire che la violazione di un sito possa dare accesso alle password degli utenti. Ma si tratta di un sistema sicuro? Una volta forse sì, oggi sicuramente no: è semplicissimo risalire da un hash come f0af7cc6725abbefb06148ccea88919b alla password ‘frank78′ da cui è generato. Per farlo non è nemmeno necessario ricorrere a siti o software specializzati, basta fare una banale ricerca su google. Per cui è sempre valido il vecchio detto: fidarsi è bene, ma non fidarsi è meglio.
Chi controlla i controllori
I soggetti preposti a gestire un sistema di voto elettronico, si ritroverero quindi ad avere il grandissimo potere di potere disporre a proprio piacimento di una grande massa di dati privilegiati. Un esempio per tutti: visto che per potere esercitare il proprio diritto è sicuramente necessaria una fase di autenticazione del votante, ci saranno delle fasi in cui, anche solo per motivi di sicurezza, il voto si troverà associato al votante che lo ha espresso. E’ un passaggio necessario, per evitare che vengano espressi voti illegittimi, ma che costituisce allo stesso tempo di un punto di vulnerabilità molto rilevante.
Allo stesso modo è altrettanto semplice considerare quale potere abbia, e che danni possa potenzialmente produrre, chiunque sia nella condizione di accedere direttamente ai dati memorizzati. Per quanto possa essere bene strutturato, un sistema gestito con tecniche tradizionali non garantirebbe mai la trasparenza e la sicurezza necessaria ad essere considerato affidabile per una attività delicata quale la votazione.
Aperto e condiviso
E’ ovvio che con questi presupposti un sistema di votazione non può essere assolutamente basato software proprietario e quindi chiuso, ma solo, esclusivamente e rigorosamente open source. E solo dalla libertà per chiunque di leggere ed analizzare il codice utilizzato per le votazioni che deriva la possibilità di prevenire abusi e/o comportamenti scorretti. Così come sarebbe necessario effettuare controlli stringenti sul codice in esecuzione sui sistemi di calcolo che gestiscono le votazioni per verificare che corrisponda biunivocamente al codice sorgente.
Ma anche questi presupposti non sarebbero sufficienti a garantire la correttezza delle votazioni. Per evitare manipolazioni della base dei dati di voto, questa dovrebbe essere condivisa in tempo reale con tutti i soggetti coinvolti nelle votazioni (leggi, i partiti).
In realtà ci sono altri punti deboli, ma la loro analisi nulla aggiunge e nulla toglie alle questioni generali.
Il problema della scala
Ma quanto è semplice implementare queste cose? Quando si perla di internet si tende spesso a sottovalutare un problema, che è quello della scalabilità delle strutture. Che significa? Che, in parole povere, un sistema in grado di supportare egregiamente qualche decina di migliaia di transazioni, non è detto che funzioni correttamente se le transazioni diventano, nello stesso tempo, di diverse decine di milioni.
La storia dell’informatica della Pubblica Amministrazione è piena di problemi di questo tipo: l’ultimo incidente in ordine di tempo che ricordo è quello verificatisi all’avvio delle iscrizioni scolastiche, poche settimane or sono. E’ ovvio che il verificarsi di un fenomeno del genere durante le operazioni di voto avrebbe degli effetti catastrofici.
Il problema dell’identità del votante
Ma pur ammettendo di avere risolto tutti i problemi tecnologici e di avere messo a punto un sistema sicuro ed affidabile, rimane un ulteriore elemento critico. Come identificare il votante? Al di là dei rilevatori biometrici – che sono fuori dalla partita per molti motivi , non esiste un sistema economico che garantisca, a distanza, l’identità della persona che c’è dall’altra parte della connessione.
Ma anche ammesso che ciò sia un domani possibile, cosa garantirebbe che l’esercizio del voto avvenga in libertà, come dice la Costituzione, e non sotto coercizione?
Questo significa che la possibilità di esercitare il voto da casa è fuori questione: una votazione elettronica dovrebbe comunque avvenire all’interno di un seggio che garantisca il rispetto di tutte le condizioni al contorno previste dalla nostra Carta.
Cui prodest?
Io ritengo che, con queste premesse, l’utilizzazione di sistemi elettronici per le votazioni politiche abbia una sola utilità reale: quella di sveltire le operazioni di scrutinio.
Un voto segreto che abbia tutti i crismi previsti dalle nostre leggi è sicuramente realizzabile tecnologicamente, ma perché sia sicuro al di là di ogni ragionevole dubbio richiederebbe un investimento di risorse tali da renderlo sconveniente dal punto di vista economico e rischioso dal punto di vista operativo.
Quindi, al di là di considerazioni di natura più strettamente politica, dubito che possa costituire un vantaggio reale per noi singoli cittadini.