I bit non si vedono

Non so voi, ma io mi sono divertito un casino a leggere le cazzate scritte in questi giorni sulla regolarità delle votazioni su russò. Sul serio, articoli su articoli basati sul nulla, scritti da gente che a malapena sa come si accende un calcolatore e che pretende di spiegare come il sistema russò garantisce la regolarità del voto.

In realtà non c’è alcun mezzo tecnico (sufficientemente pratico) per garantire un voto regolare su quella piattaforma. O su qualsiasi altra piattaforma. E questo per un motivo molto semplice: i bit non si vedono.

Mi è capitato di leggere critiche deliranti sul fatto che il programma che sta alla base di russò non sia un programma libero quindi la comunità non può esaminarlo. Già, perché se invece fosse stato un programma libero?
Immaginatevi la situazione: l’associazione russò diffonde il codice e la comunità lo analizza verificandone la regolarità. Niente magagne. Ottimo. Poi però quando il tecnico lo fa partire sul calcolatore… lo sostituisce con un altro programma che invece bara. Tu ài passato giorni ad analizzare un programma che in realtà non viene usato perché ne usano un altro. A cosa è servita la tua verifica sul programma? A una sega.

A questo punto mi direte: eh, ma c’è il “notaio”! Già, ma cosa cosa può fare questo fantomatico “notaio”? Dovrebbe prendere il codice verificato dalla comunità e lanciarlo senza consentire a nessuno dell’associazione russò di metterci sopra le mani. Arriva negli uffici dell’associazione con la sua chiavetta usb in mano, compila e lancia.
Tralasciamo il fatto che in questo modo ài trasferito la fiducia dall’associazione russò a un’altra persona (scelta da chi?). Il problema è che nemmeno in questo caso ài garanzia della regolarità del voto. Sì, perché ci sono mille altri modi per barare.

Presumibilmente i voti sono registrati in una base di dati. Tu puoi anche avere il tuo codice perfetto e verificato dalla comunità che estrae i valori dalla base di dati e ti dice quanti ànno votato sì e quanti no. Ma niente vieta di creare un programma in sottofondo che accede alla stessa base di dati e ne cambia i valori pseudo-casualmente facendo in modo che un po’ di no diventino sì (o l’opposto). Sono poche righe di codice. Il fantomatico notaio fa partire il programma però non sa che in sottofondo c’è ne è un altro che cambia i valori nella base di dati. A meno che non si metta a controllare tutti i processi attivi sul calcolatore e a verificare quali di questi accede alla base di dati e con quali istanze egli crederà che i dati che gli dà il programma sono veramente quelli inseriti dagli utenti.
Ma i modi di barare sono infiniti e potenzialmente molto più raffinati: puoi mettere una o più macchine tra l’utente e il calcolatore che raccoglie i dati, macchine che raccolgono il voto dell’utente e che con due righe di codice lo cambiano a piacimento prima di mandarlo a calcolatore che raccoglie e memorizza i voti.

Anche in questo caso il “notaio” dovrebbe essere in grado di far partire i programma – controllati dalla comunità – su queste macchine. Ma su ognuna di esse puoi barare in mille modi. Per dirne una, tempo fa creai un sistema che gestiva un grosso flusso di dati tra calcolatori in remoto usando delle socket. Il modo migliore per gestire i dati da una parte era condividerli in una memoria condivisa a cui accedevano due programmi, uno che raccoglieva i dati e l’altro che li trasmetteva. Nulla vieta di creare un terzo programma malandrino che senza dire niente a nessuno ogni tanto accede a quella memoria condivisa e ne modifica i voti prima di inviarli al calcolatore centrale che li memorizza.
Dovresti verificare tutti i processi su tutte queste macchine intermedie. Un lavoro assurdo.

Da una parte creare un sistema che bara è drammaticamente facile (davvero, spesso sono poche righe di codice). Dall’altra controllare che non ci sia alcuna procedura che bara richiede un lavoro enorme: i punti di vulnerabilità sono tanti e tu non sai dove andrà ad agire il sistema che bara, quindi devi controllare tutto. Questa disparità rende la lotta impari, a favore di chi bara ovviamente.

Se tu fai un voto con schede di carta queste non possono volatilizzarsi. A meno che tu non sia il mago Silvan, una volta che estrai la scheda dall’urna e la mostri ai rappresentanti di lista il voto è visibile a tutti (e può essere memorizzato da tutti per verificare che di dati combacino alla fine). Se un presidente di seggio cambia il voto con la matita sulla scheda lo vedi e gli dici “oh, cazzo stai facendo?”. Se invece un programma cambia uno “0” in un “1” e poi cancella i log delle operazioni, tu vedi l'”1″ e non ti accorgi che l’elettore aveva votato “0”.

E badate bene, qui mi sto spingendo ben oltre ciò che è verosimile. Non me lo immagino neanche un “notiao” o un qualsiasi ente certificatore che si mette in prima persona a lanciare programmi e a controllare tutti i processi su tutte le macchine.
Molto più semplicemente lo metteranno davanti a uno schermo con dei risultati che scorrono e non vedrà una sola riga di codice dietro a quel pannello. Egli si fiderà di quello che dice il pannello e dietro ad esso, senza alcuna vergogna, ci possono essere davvero due righe di codice – letteralmente – che assegnano ai sì e ai no dei valori prestabiliti.

Tutto il resto è fuffa. Chiunque garantisce una qualsivoglia regolarità del voto parla a vanvera. Verificare la regolarità di un voto elettronico e remoto come questo è mostruosamente complicato e richiede competenze tecniche tali per cui di fatto non puoi avere molteplici persone che tutte assieme verificano la regolarità del voto; ài un tecnico che lancia il programma e ti devi fidare di lui. Invece di fidarti dell’associazione russò ti fidi del tecnico, ài solo trasferito la fiducia a qualcun altro. Pensate a che potere può avere questo tecnico: con una riga di codice aggiunta questa notte può decidere se si fa il governo o meno, e tu, membro della comunità, non potrai mai verificare una sega del codice che veramente è stato lanciato e ciò che fa.

Parlare della regolarità di questi voti è inutile. Per quanto ne sappiamo noi i valori che ci daranno questa sera possono essere benissimo la volontà di chi gestisce l’associazione russò, e non avremo mai modo di sapere la verità.

18 Comments

  1. ava said:

    Proporrei la procedura seguente. Quando ti connetti il tuo PC è collegato ad una stampante in cloud presso la sede della Casaleggio ed una videocamera. Vedi uscire la tua scheda con il voto, cartacea ed anonima, se confermi la scheda cade in un grande scatolone con tutte le altre schede che poi viene mescolato prima di estrarre alcunchè .
    Si eseguono controlli a campione tra voti elettronici e schede nell’ urna.

    3 Settembre 2019
    • mattia said:

      Vedi uscire la tua scheda con il voto, cartacea ed anonima,

      E chi ti garantisce che il filmato sia autentico e non un filmato preregistrato corrispondente al tuo voto mentre la stampante sta stampando altro?

      3 Settembre 2019
    • ava said:

      Ovvio che non esise garanzia al 100% e il cartaceo puro è infinitamente più sicuro. Certo però sarebbe un espediente tutto sommato semplice e gestibile ( parliamo di 40 000 voti) che garantirebbe un minimo di controllo anche a posteriori.
      Falsificare un video del genere significa falsificare tutto l’ accesso alla piattaforma , mi sembra molto più complicato che falsificare quattro numeretti all’ interno della piattaforma stessa

      3 Settembre 2019
    • mattia said:

      Falsificare un video del genere significa falsificare tutto l’ accesso alla piattaforma , mi sembra molto più complicato che falsificare quattro numeretti all’ interno della piattaforma stessa

      In realtà è semplicissimo. Crei un video per chi vota “sì”, uno per chi vota “no” e poi quando uno vota sì gli mandi il primo video e quando vota no gli mandi il secondo. Non è che sia così complicato sostituire un flusso video, lo fanno anche i porno ricattatori che inviano un flusso video preregistrato di una donna scollacciata facendo credere di essere una donna davanti alla webcam per poi ricattare i pippaioli dall’altra parte.

      3 Settembre 2019
  2. Giampaolo said:

    Però sei proprio malfidente, eh!

    3 Settembre 2019
    • Giampaolo said:

      😀

      3 Settembre 2019
    • mattia said:

      Però sei proprio malfidente, eh!

      oppure sono gli altri boccaloni 😉

      3 Settembre 2019
  3. Andrea Occhi said:

    È quello che ho sempre sostenuto dopo aver fatto lo scrutatore in elezioni serie: il metodo cartaceo così come è pensato, se applicato bene (ed è difficile applicarlo male perché c’è un sacco di gente che controlla) è difficile da bucare.

    Primo: ci lavora tanta gente.
    Secondo: tutti i candidati possono avere un rappresentante.
    Terzo: tutti possono raccogliere i dati.

    Il secondo punto garantisce l’integrità delle operazioni nel seggio, il secondo garantisce l’integrità dei dati a valle.

    C’è anche un altro punto, comunque. Non c’è modo di garantire che il voto remoto sia segreto e libero. Se voglio che tu voti no (oppure sì) vieni a votare da me e voti davanti a me. Oppure vengo io da te e ti costringo a votare quello che dico io. Oppure mi faccio dare le password e voto al posto tuo. Cosa che in un seggio, con i rappresentanti di tutte le liste è piuttosto complicato.

    3 Settembre 2019
  4. Jacopo said:

    L’unico modo per ottenere una votazione online un minimo affidabile é una blockchain

    3 Settembre 2019
    • mattia said:

      L’unico modo per ottenere una votazione online un minimo affidabile é una blockchain

      no.

      4 Settembre 2019
    • Giampaolo said:

      @Mattia: perché no?
      Premetto che non sono un conoscitore della blockchain, ho solo letto qualcosa qua e là. Però mi sembra che il limite in questo caso sarebbe non la sicurezza, ma la segretezza del voto. O no?

      4 Settembre 2019
    • mattia said:

      Però mi sembra che il limite in questo caso sarebbe non la sicurezza, ma la segretezza del voto.

      ti sembra un dettaglio trascurabile?

      4 Settembre 2019
    • Giampaolo said:

      Ovviamente no 😀
      Però parlavamo di voto affidabile, non segreto 😛

      4 Settembre 2019
    • Marco said:

      la blockchain è solo una nuova parola per riempire la bocca a chi propone votazioni elettroniche. Ma come ha già scritto sopra un altro utente, le votazioni elettroniche o sono sicure o sono segrete. Attualmente l’unico sistema per garantire le 3 caratteristiche del voto (libero, personale e segreto) è la scheda cartacea in seggio.

      4 Settembre 2019
    • kheimon said:

      La blockchain avrebbe l’unico effetto di portare sia il broglio che il voto di scambio a un livello di automazione e scalabilità industriali, in quanto un soggetto mediamente attrezzato può rubare o semplicemente comprare migliaia di chiavi private con facilità estrema.

      Lasciando da parte il problema della segretezza del voto per un momento, l’idea che il votante potrebbe poi controllare il proprio voto facendo un “audit” della blockchain pubblica è la porta dell’inferno. Immagina 100.000 persone che il giorno dopo le elezioni decidono di bloccare l’inizio di una nuova legislatura per mesi e mesi chiedendo che tutti i dispositivi con cui hanno votato vengano sottoposti a indagine forense perché possibilmente infetti. Altro che riconteggio!

      Il voto con la blockchain è l’unione fatale di tutto ciò che non comprendiamo sulla tecnologia e l’informatica con tutto ciò che non comprendiamo sul funzionamento di una democrazia. Il casaleggismo all’ennesima potenza.

      La blockchain al momento è una soluzione in cerca di un problema. Finora, per qualunque problema la blockchain abbia provato a risolvere, disponiamo già di tecnologie alternative, talvolta concepite millenni fa, che gli pisciano in culo. Attendiamo fiduciosi nuove geniali idee.

      4 Settembre 2019
  5. ava said:

    IL voto è stato farlocco. Ora spiegami come mai lo stesso sondaggio con la Lega un anno fa aveva visto l’ 80% dei si, e la stessa domanda col PD ha l’ 80% di si oggi… ma dai

    4 Settembre 2019
    • brain_use said:

      E’ solo che per fare economia hanno riciclato il database del voto. 😉

      4 Settembre 2019
  6. DG said:

    al netto di tutti i problemi tecnici di sicurezza, le votazioni elettroniche hanno il problema che è relativamente facile alterare i risultati del voto senza avere a disposizione un numero importante di complici (rispetto al dover modificare centinaia di migliai di schede).

    5 Settembre 2019

Comments are closed.