| ClearVoting home |
dettagli | sicurezza | ClearSoftware | animazioni esplicative |
esempio di voto |
prototipo | letture | contatti |
ClearSoftware non è solo software applicativo ma anche l'intero ambiente operativo nel quale il software applicativo è eseguito.
ClearSoftware ottempera tutti i punti di cui sopra come descritto in tabella 2.
| obiettivo | come ClearSoftware lo realizza |
|---|---|
| verificare la correttezza del software |
|
| essere sicuri che il sistema operativo non abbia malfunzionamenti ne trucchi |
|
| essere sicuri che non ci sia altro software in esecuzione nel computer |
|
| provare e testare il tutto su un nostro computer |
|
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:
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.
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.

| ClearVoting home |
dettagli | sicurezza | ClearSoftware | animazioni esplicative |
esempio di voto |
prototipo | letture | contatti |