4 Il voto elettronico: Sicurezza e privacy al sicuro?

Da diverso tempo il voto elettronico è oggetto di attenzione e di accese discussioni: da una parte è visto come uno strumento per rendere le elezioni più veloci e meno soggette a brogli, nonché per favorire la democrazia diretta o comunque forme di consultazione più frequenti o flessibili di quanto non sia possibile con il voto tradizionale; dall’altra, viene invece considerato meno sicuro del voto tradizionale, e anzi si mette in evidenza come i brogli potrebbero essere di impatto ancora maggiore, ad esempio in caso di manomissione del codice che sarà installato su tutte i dispositivi utilizzati per il voto.

Un’altra criticità importante è quella di cosa fare nel caso si rilevassero violazioni o brogli: se la gestione di un broglio richiedesse di invalidare le intere elezioni ad esempio, la soluzione sarebbe impraticabile, perché un singolo broglio diventerebbe uno strumento per bloccare il processo democratico. Viceversa, la possibilità di circoscrivere l’impatto di una violazione permetterebbe di considerare valido il risultato anche in presenza di un certo numero di brogli. Ad esempio, se alle elezioni politiche venisse rilevato un problema in una delle sezioni elettorali, si potrebbe eventualmente invalidare e ripetere il voto in quella sezione, con poco impatto sul risultato generale.

Questo è quello che avviene in effetti con il voto tradizionale, mentre un voto completamente centralizzato renderebbe estremamente critico qualsiasi dubbio sulla correttezza delle operazioni e sulla sicurezza della piattaforma utilizzata.

Il problema della sicurezza.

Per affrontare correttamente il problema della sicurezza, è necessario chiarire quali rischi si considerano realistici e quali sono gli scenari di utilizzo, per individuare i cosiddetti scenari di minaccia, rispetto ai quali valutare se e come sia possibile rendere adeguatamente sicuro il voto elettronico.

Ad esempio, uno scenario in cui una potenza straniera investa tempo e risorse per attaccare un referendum regionale consultivo è poco realistico; viceversa, l’interesse della criminalità organizzata per il voto di scambio nelle elezioni politiche è uno scenario particolarmente rilevante per l’Italia (potrebbe non esserlo per altri paesi).

Proprio questo ultimo scenario rende particolarmente poco sicura qualsiasi forma di voto remoto (da casa, via Internet ecc.) per le elezioni politiche: l’elettore interessato o costretto a votare secondo gli interessi della criminalità organizzata non dovrebbe fare altro che votare sotto la diretta supervisione dell’organizzazione criminale.

Ci focalizziamo quindi sul voto “in cabina”, che offre potenzialmente una maggiore libertà di espressione del voto, al netto dei problemi di controllo fisico di pratiche come portare in cabina un cellulare e fotografare il voto.

Il voto elettronico in cabina è in effetti già praticato in molti paesi, ma più volte ne è stata messa in discussione la sicurezza.

È particolarmente rilevante l’ipotesi di manomissione da parte della Russia del voto alle ultime presidenziali negli Stati Uniti (https://www.bbc.com/news/world-us-canada-45289751).

A prescindere dalla fondatezza o meno dell’accusa, vale la pena di sottolineare due aspetti.

Il primo è che lo scenario è considerato senza dubbio realistico: ci possiamo aspettare che paesi con risorse e competenze elevate possano cercare di manomettere il voto elettronico almeno per delle elezioni politiche importanti, e che quindi possano essere praticati attacchi sofisticati.

Il secondo, più importante, è che nessuno è stato in grado di dimostrare che questa manomissione era impossibile per via delle misure di sicurezza adottate nel voto elettronico.

Questo aspetto è determinante: in un paese tecnologicamente avanzato come gli Stati uniti, in cui il voto elettronico è utilizzato da più di quindici anni e in cui nel corso del tempo sono state sperimentate diverse tecnologie nei diversi Stati , comunque non si è arrivati ad uno strumento che offra una ragionevole tranquillità che le ipotesi di manomissione non siano credibili.

Questo fatto rappresenta un reality check importante rispetto alle varie metodologie e tecnologie che saranno discusse qui nel seguito: esattamente come in teoria sarebbe possibile definire dei controlli che rendano impossibile l’evasione fiscale o la corruzione di pubblici ufficiali, questi controlli si scontrano poi con una realtà che ne rende l’applicazione tutt’altro che perfetta, e spesso del tutto impraticabile.

La valutazione di quali siano le minacce rilevanti è un passaggio fondamentale, ai cui risultati serve poi attenersi, ed è anzi il punto più importante.

È anche necessario valutare quanto siano realistici scenari di collusione fra diverse minacce, ad esempio: è realistico che un’azienda di sviluppo software sia collusa con un paese straniero? O con il governo in carica? E i rispettivi dirigenti, o figure chiave? Ognuna di queste valutazioni si porta dietro la necessità di proteggersi da specifici attacchi, e la possibilità di trascurarne altri.

Queste valutazioni devono anche tenere conto delle misure di sicurezza già in essere. Per esempio, sarebbe facile considerare marginale il rischio che ci siano aggressioni fisiche presso i seggi in Italia, ma è anche vero che i seggi sono presidiati dalle Forze dell’Ordine: se non lo fossero, probabilmente atteggiamenti aggressivi diventerebbero nel tempo sempre più comuni.

Due strade possibili

Tornando al voto elettronico, abbiamo in realtà due grandi filoni di ricerca: il primo, attualmente l’unico diffusamente praticato, segue la logica di rendere sicuri i sistemi utilizzati per il voto elettronico, essenzialmente con le stesse logiche, tecnologie metodologie che si utilizzano per gestire la sicurezza dei computer aziendali.

Questo solo paragone farebbe pensare ad un obiettivo irraggiungibile, dato che spesso sentiamo di attacchi portati a segno anche contro le aziende che dovrebbero essere più sicure. Dobbiamo considerare però che i sistemi di voto elettronico sono molto più specializzati, e la loro protezione è l’obiettivo principale, e quindi la gestione della sicurezza può essere, almeno in teoria, molto migliore di quella di un’azienda.

La seconda strada punta all’utilizzo di algoritmi crittografici sofisticati per garantire che il risultato del voto possa essere verificato rispetto ad una serie di requisiti: ad esempio, permettere ad ogni votante di verificare che il suo voto sia stato conteggiato correttamente, e questo anche se parte del sistema fosse compromesso. Per utilizzare questi algoritmi naturalmente, il cittadino ha bisogno di uno strumento (un pc, uno smartphone) che li implementino.

Questo mette in evidenza una ulteriore criticità del voto elettronico, particolarmente evidente in questo caso: mentre ogni cittadino è in grado in generale di comprendere il funzionamento del voto tradizionale e di partecipare alle operazioni di voto, ad esempio come scrutatore, nel caso del voto elettronico pochi specialisti ne comprendono il funzionamento (nel caso degli algoritmi crittografici, non più di qualche migliaio in tutto il Paese) e possono valutare eventuali violazioni e brogli.

In caso di problemi o contestazioni, i cittadini non saranno in grado di comprendere i dettagli di quanto discusso, e potranno scegliere solo di credere all’una o all’altra parte “sulla fiducia”.

Trasparenza e verifica

Entrando nel merito della protezione dei sistemi, una delle minacce da considerare in un sistema di voto, elettronico o meno, è sicuramente il governo in carica. È per questo che esistono meccanismi di trasparenza e di verifica da parte dei diversi partiti che partecipano alle elezioni, ad esempio i rappresentanti di lista.

Proprio per questo un prodotto “commissionato” dal governo in carica e verificato da soggetti nominati dal governo stesso, non sarebbe per definizione una soluzione accettabile, a meno di avere altri meccanismi di verifica più trasparenti e diffusi. Parlando di verifiche, è necessario allora entrare nel merito della possibilità di verificare la correttezza del software.

Quando si parla di qualità del software, una delle misure che si considerano è il numero medio di errori presenti nel codice, ad esempio come numero di difetti per migliaio di linee di codice. Fra questi difetti, alcuni si trasformano in vulnerabilità, ad esempi quando riguardano i meccanismi di autenticazione. Un programma complesso come Windows è composto da decine di milioni di righe di codice, che possiamo immaginare come decine di milioni di righe di formule da verificare. Già solo questo può far capire come sia praticamente impossibile avere del software di un certo rilievo che non contenga errori.

Questo è del resto abbastanza evidente se consideriamo la quantità di aggiornamenti di sicurezza che dobbiamo installare quasi quotidianamente per correggere i difetti di programmi ampiamente diffusi, per i quali sarebbe certamente più conveniente individuare gli errori prima della messa in commercio. Esistono naturalmente anche strumenti automatici e tecniche di test che possono verificare la presenza di alcuni tipi di errori e difetti, ma certamente non vulnerabilità inserite volutamente per aggirare questi controlli.

Verifiche a posteriori quindi, dopo che il software è stato scritto, possono proteggere dagli errori più evidenti, ma non dalla malafede di uno o più sviluppatori. Per questo, è opinione diffusa che qualsiasi soluzione di voto elettronico affidabile debba essere sviluppata come progetto “Open Source”; non è sufficiente infatti rendere disponibile il codice a posteriori per una verifica che potrebbe essere facilmente resa inefficace da chi ha partecipato allo sviluppo del software stesso. La combinazione fra uno sviluppo non open source e un’azienda di sviluppo software scelta dal governo in carica sarebbe una combinazione praticamente ingestibile in termini di affidabilità dello strumento, anche se effettivamente corrisponde a quanto viene spesso praticato.

Le possibili manipolazioni.

È utile a questo punto approfondire questo aspetto: quanto spesso succede che il voto elettronico venga manipolato?

Perché si potrebbe dire che se è già utilizzato e non ci sono evidenze, forse in realtà non ci sono poi tanti problemi. Il problema è che spesso un’eventuale manipolazione, con i sistemi in uso, sarebbe difficile da dimostrare. Se l’elettore vota per un candidato e la macchina lo registra per un altro candidato, come sarebbe possibile dimostrare la frode? (Cfr articolo Handelman) Eppure, qualche caso palese c’è stato, e non di manipolazione ma di semplice errore, quindi qualcosa che sarebbe dovuto essere più facile da rilevare. Nel 2007, in Ohio i voti di due candidati sono stati scambiati in alcuni seggi dalle macchine di voto.

La cosa è stata scoperta per alcune discrepanze nei conteggi fatti dal sistema di voto stesso (https://www.wired.com/2007/11/votes-flipped-i/).

Se ne potrebbe dedurre che alla fine i controlli hanno funzionato, ma in realtà la possibilità di rilevare la discrepanza dipende da dove si è verificato l’errore. Tornando allo sviluppo di uno strumento open source, è necessario però evitare di mitizzare l’efficacia di questa modalità di sviluppo. Sicuramente uno sviluppo aperto permette più verifiche e rende più difficili l’errore e la frode, ma non è certo infallibile.

L’open source

Il caso più eclatante è quello di OpenSSL.

Si tratta di un componente software che implementa funzioni crittografiche e protocolli utilizzati ad esempio per le “connessioni sicure” (https) ai servizi web, quindi di un componente non grandissimo ma estremamente critico.

È uno strumento open source in generale di ottima qualità, e secondo le stime è utilizzato da più della metà delle aziende che utilizzano connessioni di questo tipo, e fra queste anche molti dei giganti dei servizi Internet. Nel 2012 una grave vulnerabilità di questo software ha messo in evidenza come in realtà il suo sviluppo open source fosse seguito da pochissime persone, con pochissimi fondi: di tutte quelle aziende che lo utilizzavano, praticamente nessuna effettuava controlli di sicurezza sul codice, e nessuna supportava finanziariamente gli sviluppatori.

Il problema è che verificare il codice è un’attività spiacevole, onerosa e, di solito, di pochi risultati “pratici”, e quindi più o meno tutti davano per scontato che il codice fosse stato verificato da qualcun altro.

Ma anche quando viene scoperta una vulnerabilità nel software, si deve valutare chi l’ha scoperta e che utilizzo ne farà. Esiste un vero mercato nero di vulnerabilità cosiddette “0-day”, ovvero non ancora pubblicamente note, che vengono comprate anche dalle diverse agenzie di spionaggio per attaccare i sistemi dei loro avversari e oppositori. Se venisse scoperta una vulnerabilità in un sistema di voto open source, verrebbe corretta o sfruttata? Certo, prima o poi potremmo sperare che venga scoperta “anche” da chi è interessato a correggerla, ma nel frattempo? Da questo punto di vista quindi, il software open source offre garanzie decisamente maggiori, ma è tutt’altro che a prova di errore.

Distribuzione ed utilizzo delle macchine di voto.

Abbiamo poi il problema della distribuzione ed utilizzo delle macchine di voto.

Supponiamo infatti di avere un software che in sé sia privo di vulnerabilità significative. Invece di distribuire schede e matite, in ogni seggio dovranno essere resi disponibili degli strumenti, tipicamente dei pc, su cui installare quel software.

Di nuovo, installare il software su dispositivi degli utenti, ad esempio smartphone, esporrebbe il voto ad essere oggetto di controllo da parte di criminali in caso ad esempio di voto di scambio, con la collaborazione più o meno volontaria dell’elettore.

Stiamo parlando quindi di un numero di pc paragonabile al numero di cabine, che devono essere resi abbastanza sicuri da poter essere distribuiti in contesti in cui chi li gestisce può al più sorvegliarli fisicamente, ma non è in grado di verificare se qualcosa è stato manomesso.

Questo richiede in linea di massima due passaggi: il primo è che i sistemi siano assemblati e programmati in modo verificabilmente sicuro, dove le verifiche devono poter essere fatte dalle diverse parti in causa. Il secondo, è che questa sicurezza venga mantenuta nel corso dello stoccaggio, della distribuzione e dell’utilizzo dei pc, o quantomeno che eventuali manomissioni siano facilmente rilevabili (tamper evidence).

Già il primo passaggio è difficile. Al di là dei modelli più o meno teorici che si possono immaginare, la posizione più comune è che se si utilizzano componenti “generici”, questi non saranno stati manomessi. Logiche di questo tipo sono messe in discussione ad esempio dal recente caso riportato da Bloomberg (https://www.bloomberg.com/news/articles/2018-10-09/new-evidence-of-hacked-supermicro-hardware-found-in-u-s-telecom), dove peraltro non è ancora chiaro se e quanto sia stato compromesso l’hardware o altri componenti (ad esempio il bios).

Questo tipo di compromissione sarebbe difficile da scoprire, a meno di estendere le logiche open source ad ogni componente fisico e logico del sistema, cosa al momento difficilmente realistica in caso di adozione di un sistema di voto elettronico in Italia.

È ragionevole aspettarsi però che nel prossimo futuro, episodi di questo tipo potranno diventare sempre più comuni.

La scheda ballerina

Infine, in un contesto come quello italiano, in cui c’è la necessità di contrastare fenomeni come la scheda ballerina (http://www.ansa.it/sito/notizie/speciali/elezioni/2018/02/20/elezioni-su-scheda-tagliando-antifrode-contro-voto-scambio_10110d31-145c-4ae9-92b3-6c956f5d6558.html), diventa difficile pensare che dei pc distribuiti nei seggi non possano essere soggetti a manipolazioni.

Peraltro, di tutti i problemi visti finora, potrebbe essere il problema minore: come la maggior parte delle frodi possibili con il voto tradizionale, si tratta di manipolare singoli voti o singoli seggi, quindi con un impatto che può essere contenuto rispetto al risultato complessivo.

Viceversa, la manipolazione di software distribuito poi su tutti i pc permetterebbe di influenzare anche la totalità dei voti. Certamente sarebbe possibile concepire procedure complesse per prevenire la manomissione dei pc, ma queste procedure potrebbero portare il voto elettronico a costi molto elevati.In effetti, quasi tutte le problematiche di cui si è parlato avrebbero probabilmente soluzioni costose, e in effetti diversi studi considerano il voto elettronico più costoso di quello tradizionale. Naturalmente, affidare completamente ad un fornitore esterno la gestione della sicurezza della soluzione, limitandosi a qualche audit a posteriori, permetterebbe di ridurre notevolmente i costi, ma questo perché di fatto molti dei controlli e delle precauzioni di cui si è parlato, semplicemente non verrebbero implementati. Soprattutto, dovremmo fare i conti con la realtà: un sistema di voto elettronico che offra garanzie reali contro la manomissione sia da parte di soggetti esterni con risorse e competenze importanti, che dal governo in carica, che dalla criminalità organizzata, sarebbe un progetto dalla complessità enorme, e ben lontano da quelle che sono le pratiche attuali.

Si può dire che difficilmente può essere un progetto realistico. Stiamo però parlando di elezioni politiche, in cui le minacce e le conseguenze sarebbero importanti. In una logica di gestione del rischio, potrebbe essere invece accettabile utilizzare il voto elettronico per consultazioni di minore impatto e con minore interesse alla frode, dove se ne potrebbe sfruttare la flessibilità.

Certamente, i rischi e le contromisure dovrebbero essere valutati esplicitamente, dato l’impatto che un’eventuale violazione potrebbe comunque avere per i diritti e le libertà dei cittadini.

Già solo se una valutazione del genere venisse fatta esplicitamente e resa pubblica, rappresenterebbe un punto di partenza importante per una discussione concreta. Al momento, ci sono poche informazioni pubbliche oggettive sia sui rischi che vengono considerati, sia su quelli del voto tradizionale, che permetterebbero di confrontare le diverse soluzioni al di là degli entusiasmi o delle ritrosie.

4 Il voto elettronico: Sicurezza e privacy al sicuro?

Lascia un commento