Pagina pubblicata tra il 1995 e il 2013
Le informazioni potrebbero non essere più valide
Documenti e testi normativi non sono aggiornati

 

 Pubblica amministrazione e open source

USA: voto elettronico e sicurezza del software
di Douglas W. Jones* - 16.11.2000

(Articolo pubblicato il 7 novembre 2000 alle 16:43:41 CST sul gruppo di discussione comp.risks Volume 21: Issue 10. Work in progress alla pagina http://www.cs.uiowa.edu/~jones/voting/ con il titolo "Election Privacy and Security"). Traduzione di Luca Parisi.

Oggi è il giorno delle elezioni e in qualità di presidente del Comitato statale di controllo sulle macchine per votazione e i sistemi elettronici di voto dello Iowa, credo che sia il momento giusto per fare una pausa di riflessione sullo stato dell'arte in materia.
Nel corso degli ultimi anni si è affermata con chiarezza una importante tendenza nelle macchine per votazione che sono state presentate al nostro comitato per ottenere l'approvazione nello Iowa. Si tratta della sostituzione del software realizzato ad hoc con software standard preconfezionato, solitamente una qualche variante di Windows e basato largamente su Microsoft Office.

I computer nel sistema elettorale sono ormai una tecnologia consolidata, sia che vengano usati nei sistemi centralizzati di conteggio basati su schede perforate o lettori ottici, sia che si tratti di sistemi di conteggio ai seggi basati su macchine per votazione elettroniche a lettura ottica o a registrazione diretta. Naturalmente sono ancora in uso macchine manuali a leva ma i loro modelli non subiscono modifiche da molti anni e, di conseguenza, non vengono presentati al comitato per le verifiche.
Secondo le vigenti linee guida della Commissione Elettorale Federale (FEC, Federal Election Commission) sui sistemi elettronici di voto, tutto il software realizzato ad hoc è soggetto ad una verifica condotta da terzi indipendenti. D'altro canto, i "componenti standard" sono considerati accettabili così come sono. La FEC non ha il potere di far osservare le norme, ma le sue linee guida sono state recepite nella legislazione elettorale di numerosi Stati.

Il mio motivo di preoccupazione è che siamo testimoni del fenomeno per cui una percentuale sempre maggiore del software contenuto nei sistemi di voto è costituita da prodotti proprietari di terze parti, non soggetti al requisito della disponibilità dei sorgenti per un esame del codice. Inoltre, le dimensioni dei sistemi operativi commerciali sono enormi, per cui è molto difficile immaginare la possibilità di un controllo efficace!
A quali rischi ci espone tutto ciò?

Se io volessi influire sul risultato di un'elezione, non quella in corso ma quella che si terrà fra quattro anni, potrei ipoteticamente lasciare il mio impiego all'Università dello Iowa e andare a lavorare per Microsoft, cercando di inserirmi nel gruppo che cura la manutenzione degli elementi chiave dell'interfaccia utente (window manager). Sembra una prospettiva piacevole, anche se il lavoro che farebbe al caso mio comporterebbe, in gran parte, la manutenzione di codice che è rimasto stabile per anni. Ecco il mio obiettivo:
Desidero modificare il codice che crea un'istanza dell'elemento dell'interfaccia utente chiamato "pulsante di scelta" (radio button) in una finestra presente sullo schermo. La funzione che voglio aggiungere, in particolare, è la seguente. Se la data coincide con il primo martedì successivo al primo lunedì di novembre di un anno divisibile per 4, e se la finestra contiene un testo che comprende la stringa "straight party", e se inoltre il radio button contiene almeno le due stringhe "democrat" e "republican" allora una volta su dieci, in modo casuale, scambia l'etichetta che identifica il pulsante contenente la stringa "democrat" con una qualsiasi altra etichetta, anche questa scelta a caso.

Naturalmente, farei ogni sforzo per rendere incomprensibile il codice da me scritto. La scrittura di programmi illeggibili (obfuscated code) è un'arte che ha raggiunto un alto grado di sofisticazione! Una volta fatto ciò, avrei realizzato una versione di Windows che distribuisce il 10 per cento dei voti diretti espressi per il Partito democratico agli altri partiti, in modo casuale. Ciò sarebbe estremamente difficile da rilevare nei risultati elettorali, correrebbe un basso rischio di essere scoperto durante i controlli e, nonostante ciò, potrebbe influenzare il risultato di molte elezioni!
E questo è solo un esempio dei possibili attacchi! Potrebbero esistere vulnerabilità di tipo analogo, ad esempio, nei database commerciali che vengono usati per la memorizzazione e il conteggio dei voti espressi.

Con questo esempio non intendo esporre alcun sentimento di ostilità nei confronti di Microsoft, ma è vero che il software di questa azienda viene usato nella grande maggioranza dei nuovi sistemi di votazione che ho esaminato. Questo genere di minacce non richiede alcuna collaborazione da parte del produttore del window manager o di altri componenti di terze parti non soggetti ad ispezione del codice sorgente. Esso richiede unicamente una talpa, che possa insinuarsi all'interno dell'azienda produttrice e realizzare del codice che non venga rilevato dalle procedure interne di verifica e ispezione. La scrittura di programmi illeggibili è facile, e l'arte delle "uova di Pasqua" nei prodotti software commerciali rende più che chiaro il fatto che molte caratteristiche non riconosciute ufficialmente vengono inserite ogni giorno in pacchetti software disponibili in commercio senza la collaborazione dei produttori del software stesso. (Sono però a conoscenza del fatto che, in alcuni casi, le "uova di Pasqua" godono dell'approvazione ufficiale del produttore).

Ciò detto, è opportuno notare che Microsoft ha espresso una preferenza nei confronti dei risultati delle elezioni odierne, e che vi sono ottimi motivi per considerare i programmi software proprietari, prodotti da un'entità schierata, con grande sospetto nel momento in cui vengono inseriti in un sistema di votazione!

Quali sono le mie conclusioni? Credo che sia giunto il momento per i professionisti dell'informatica di adoperarsi per un cambiamento nelle linee guida relative alle macchine per votazione, chiedendo che tutto il software compreso in tali macchine sia open source e aperto al pubblico scrutinio, o almeno aperto allo scrutinio da parte di un'autorità di controllo terza e indipendente. Non esistono ostacoli di natura tecnica perché ciò avvenga! Sono disponibili molti sistemi operativi open source perfettamente funzionanti come Linux, FreeBSD e diversi altri, compatibili con l'hardware intorno al quale vengono costruite le macchine per votazione moderne!

Tuttavia, questo non risolve completamente il problema! Come si può dimostrare, dopo il fatto, che il software contenuto nella macchina per votazione sia lo stesso approvato dal comitato di controllo e sottoposto a verifica da parte dell'autorità di controllo indipendente? A mia conoscenza, nessuna macchina moderna è realizzata con l'obiettivo reale di consentire una dimostrazione di questo genere, anche se diversi produttori promettono di mettere a disposizione una copia del codice sorgente da loro usato presso un ente depositario in caso di contestazioni.

[Nota aggiunta da Peter G. Neumann al messaggio apparso su comp.risks:]
Rebecca Mercuri sta apportando in questi giorni gli ultimi ritocchi alla sua tesi di dottorato dedicata alle votazioni elettroniche, alla Università della Pennsylvania. Raccomando vivamente di mettersi in contatto con lei per averne una copia, che dovrebbe essere disponibile molto presto. Inoltre, il mio libro Computer-Related Risks contiene molte informazioni generali sui rischi nelle elezioni elettroniche e sul modo di affrontarli. Rebecca ha approfondito l'analisi molto più di me. La sua tesi sarà un contributo molto importante, che scriverà una pagina completamente nuova su ciò che dobbiamo esigere, e non solo auspicare, da questi sistemi, oltre ad un'analisi dei rischi residui che comunque non verrebbero eliminati.

* Docente presso l'università dello Iowa, Iowa City, Iowa