ClearVoting impedisce errori e brogli elettorali

translate into english


ClearSoftware

ClearVoting impedisce errori e brogli elettorali




che cosa è

ClearSoftware è un metodo di scrittura, produzione, diffusione, installazione ed esecuzione di software.
L'uso di ClearSoftware:

ClearSoftware non è solo software applicativo ma anche l'intero ambiente operativo nel quale il software applicativo è eseguito.

idea base

Possiamo fidarci dei risultati di un software solo se possiamo:

ClearSoftware ottempera tutti i punti di cui sopra come descritto in tabella 2.


 
obiettivo come ClearSoftware lo realizza
verificare la correttezza del software
  • il software applicativo è esclusivamente Open Source codificato in file di testo (intelleggibili ad occhio umano) che, senza bisogno di essere compilati, sono eseguiti da qualche servizio di base del sistema operativo (database, browser, server httpd...)
essere sicuri che il sistema operativo non abbia malfunzionamenti ne trucchi
  • il sistema operativo è Open Source ed è scaricato da Internet;
  • le personalizzazioni al sistema operativo sono fatte solo mediante file di testo ben identificati e documentati;
essere sicuri che non ci sia altro software in esecuzione nel computer
  • il software è distribuito mediante supporti informatici auto-installabili e non modificabili (CDROM, DVD, BluRay...);
  • Inserendo il supporto nel suo lettore, automaticamente:
    1. si formattano completamente TUTTI i dischi;
    2. si installa il sistema operativo Open Source;
    3. si installa il software applicativo;
    4. si esegue il boot del nuovo sistema
    5. si esegue il software applicativo;
provare e testare il tutto su un nostro computer
  • il file ISO del media auto-installabile è liberamente scaricabile da Internet

dettagli

vedi animazione

ClearSoftware è una specifica la cui osservanza è in grado di assicurare che il funzionamento di sistemi software sia assolutamente trasparente. La specifica si applica a sistemi software intesi nella loro interezza: non solo al software applicativo ma anche all’ambiente operativo in cui esso viene eseguito e alle procedure di installazione ed esecuzione.

Affinché un sistema software sia conforme alle specifiche ClearSoftware:

  1. il software è distribuito mediante media non modificabili (DVD, CD...) contenenti:
    1. il software applicativo;
    2. un sistema operativo Open Source completo di tutti i suoi servizi di base quali web server, database, browser…
  2. (nota 1) i media di distribuzione sono bootstrappabili e auto-installanti;
  3. (nota 1) l'installazione automaticamente:
    1. formatta completamente TUTTI i dischi;
    2. installa il sistema operativo Open Source;
    3. installa il software applicativo Open Source;
    4. esegue il boot del sistema appena installato;
    5. esegue il software applicativo.
  4. il sistema operativo è scaricato da Internet scegliendo tra i vari sistemi operativi Open Source disponibili (nota 2);
  5. qualsiasi modifica al sistema operativo originale è fatta solo ed esclusivamente mediante file di testo direttamente usati dai servizi base del sistema operativo senza bisogno di essere compilati. Per quanto è tecnicamente possibile tutte le modifiche devono essere contenute in una unica cartella "A" ;
  6. il software applicativo è esclusivamente Open Source codificato in un linguaggio interpretato il cui codice sorgente è eseguito direttamente dai servizi di base del sistema operativo senza bisogno di compilazione (nota 3);
  7. il software applicativo è tutto contenuto nella cartella "B" e nelle sue eventuali sotto-cartelle;
  8. una distribuzione ClearSoftware contiene:
    1. il sistema operativo originale scaricato da Internet ;
    2. la cartella "A" (modifiche al sistema operativo);
    3. la cartella "B" (software applicativo);
    4. il file di testo ClearSoftware.txt che identifica con completezza il sistema operativo originale e tutte le modifiche che ha subito:
      1. i. identità del sistema operativo originale (nome, versione e release);
      2. URL dalla quale è stato scaricato il file ISO del sistema operativo originale;
      3. data ed ora di quando è stato scaricato il sistema operativo originale;
      4. campo di controllo MD5 (o simili) del file ISO del sistema operativo originale;
      5. nomi completi delle cartelle "A" and "B";
      6. nomi completi di tutti i file del sistema operativo originale che sono stati modificati ma che non è stato possibile mettere nella cartella "A" pena il non funzionamento del sistema operativo;
  9. la distribuzione finale è pubblicata su Internet sotto forma di file ISO insieme al suo controllo MD5 (o simile). In questo modo chi vuole può scaricarla ed installarla sul proprio computer per analizzare e testare il software.

note

  1. se il software applicativo lo permette lo si può distribuire per mezzo di Live CD (o DVD) bootstrappabili. Così facendo il software applicativo è eseguito direttamente dal CD (o DVD) e, se la logica del software applicativo lo permette, si può fare anche a meno di modificare i dischi rigidi del computer.
  2. dato che l'ultima release/versione di qualsiasi sistema operativo può avere difetti e problemi non ancora scoperti, è bene scaricare da Internet una release/versione precedente. Non importa che essa abbia problemi noti, purchè essi riguardino solo periferiche o servizi di base non uilizzati dalla applicazione ClearVoting. L'uso di release/versioni vecchie ci assicura anche che nessuno possa averle manomesse in anticipo al fine di alterare il funzionamento della odierna applicazione ClearSoftware.
  3. per esempio il software applicativo può essere scritto in PHP. ed usare un database MYSQL.
  4. la distribuzione finale può essere duplicata o replicata in grandi quantità. Un logo di autenticità può essere impresso su ciascun media prodotto.
  5. chiunque può verifcare i contenuti di una distribuzione ClearVoting calcolandone il codice di controllo MD5 (o altri) e confrontandolo con quello pubblicato ufficialmente su Internet.

creare una distribuzione ClearSoftware

Per creare una distribuzione ClearSoftware sono necessari i seguenti passi:
  1. scrivere il software applicativo utilizzando il linguaggio interpretato prescelto e copiarlo nella cartella “B”;
  2. scegliere il sistema operativo Open Source che sarà l'ambiente operativo del software applicativo;
  3. scaricare da Internet il file ISO del sistema operativo Open Source scelto;
  4. personalizzare il funzionamento del sistema operativo mediante file contenuti nella cartella “A”
  5. creare la struttura di file della distribuzione finale aggiungendo alle cartelle del sistema operativo le cartelle "A" e "B" ed il file di testo ClearSoftware.txt;
  6. masterizzare la distribuzione finale su un media non più modificabile (CD, DVD...);
  7. pubblicare su Internet il file ISO della distribuzione finale ed il suo codice di controllo MD5 (o altri).

un campo d'applicazione

ClearSoftware è necessario per garantire la correttezza dei risultati provenienti dal processamento di dati non verificabili.

Di solito non ci serve conoscere il preciso funzionamento delle applicazioni informatiche che utilizziamo poiché possiamo verificarne il corretto funzionamento confrontando i risultati ottenuti con quelli aspettati. Per esempio:

Ci sono però situazioni più complesse e le elezioni sono una di esse. Infatti i voti hanno un requisito che nessun altro dato ha: devono rimanere per sempre segreti per chiunque. La necessità della assoluta segretezza (per sempre e per tutti) comporta che i voti debbano essere memorizzati in modo anonimo, ossia senza alcun riferimento a chi li ha votati. Questo, a sua volta, implica che la corrispondenza tra un voto memorizzato e quello effettivamente espresso dall' elettore non può essere mai verificata, semplicemente perché non dobbiamo sapere chi sia mai l’elettore. A parte questo, anche se potessimo trovare un sistema che permetta agli elettori di verificare in che modo è stato memorizzato il proprio voto, potremmo fidarci di quegli elettori che si lamentassero che il voto memorizzato non corrisponde a quello da loro votato? Che faremmo in questi casi, annulleremmo le elezioni?

Quindi possiamo fidarci dei risultati elettorali solo se siamo sicuri che ciascun voto sia effettivamente espressione autentica dell'elettore che lo ha espresso. Ne consegue che possiamo accettare un risultato elettorale solo se possiamo verificare il modo in cui esso è stato prodotto. Non è certo un caso se, dai tempi degli antichi Greci la correttezza delle elezioni si è sempre basata su procedure elettorali aperte al controllo della pubblica opinione!

Siamo ormai nel terzo millennio e vogliamo svolgere le elezioni con l'ausilio dei computer, ma dobbiamo essere consapevoli che, per chi non li ha programmati, i computer si comportano come "scatole nere" e che il loro operato può essere veramente verificato solo confrontandone i dati ottenuti con quelli previsti. Ma le elezioni non hanno risultati previsti (se li avessero non perderemmo certo tempo a svolgere inutili elezioni!).

L'unica possibilità di esercitare un controllo democratico su elezioni di tipo elettronico è rendere trasparenti le "scatole nere" coinvolte nella raccolta e nel processamento dei voti ed un buon punto di partenza è l'uso di software Open Source che, però, da solo non è sufficiente. Infatti l'uso di software Open Source nel voto elettronico, seppur suggerito da diversi anni, si è sempre scontrato con la impossibilità pratica di verificare che il programma effettivamente in esecuzione durante le procedure di voto sia, in tutti i seggi, proprio quello proveniente dalla compilazione dei sorgenti Open Source verificati ed approvati. Il problema non è solamente relativo ai software di voto perché alterazioni "pilotate" dei risultati potrebbero derivare anche dalla modifica fraudolenta di compilatori, di sistemi operativi, di librerie di sistema, di interfacce e di altre applicazioni di alto livello.

ClearSoftware risolve i suddetti problemi in modo semplice, economico e verificabile.

un esempio di applicazione

Come esempio di una applicazione ClearSoftware prendiamo la seguente applicazione che:

Il server web, il browser e MySql fanno tutti parte del sistema operativo Open Source scaricato da Internet, quindi l'unica parte dell' applicazione che deve essere codificata espressamente è il software applicativo (giallo) eseguito dal server web.

Il software applicativo deve essere scritto in un qualsiasi linguaggio interpretato, cioè che non viene compilato ma eseguito direttamente (il PHP in questo esempio). Essendo il software applicativo scritto in chiaro, chiunque può controllare se contiene trucchi o errori.

Nessuna altra parte del sistema (celeste) necessita di essere controllata poiché essa viene tutta dalla distribuzione di Linux scaricata da Internet.

un esempio di applicazione ClearSoftware


ClearVoting impedisce errori e brogli elettorali




Questa pagina segue le regole W3C WCAG P3 ma l' accessibilità è un argomento molto vasto: fammi sapere ogni problema di accessibilità che riscontri
Questa pagina è scritta in XHTML 1.0    Questa pagina usa CSS validati    Dublin Core Metadata Initiative