| ClearVoting home |
details | security | ClearSoftware | illustrative animations |
voting demo |
proof of concept |
readings | contact |
ClearSoftware is not only applicative software but also the whole operating environment in which applications are executed.
| goal | how ClearSoftware fulfils the goal |
|---|---|
| trust the applicative software |
|
| trust the operating system |
|
| trust that nothing else but the applicative software runs on the computer |
|
| test ourselves the software on our computers |
|
Please watch the ClearSoftware animation
To be ClearSoftware compliant, any software must adhere to the following points:
Here it follows an example of a ClearSoftware application.
Users interact with the
application by means of a web browser. The browser communicates with a web server that
interacts with a mysql database to access data. All the three (web browser,
web server and database) run on the same computer, so no network is involved.
For security purposes no network should be connected,
so that no virus, no worm and no hacking can interfere in our application.
The web browser, the web server and the database are all part of the Open Source operating system downloaded from the Internet, thus the only code to actually write is the applicative software (yellow).
Applicative software is written in any interpreted language (PHP in the example). Thanks to the lack of a compiling phase the source of the applicative software is what the base services of the operating system will actually execute. This allow people to see with their eyes what it will actually run (sort of WYSIWYG). Furthermore interpreted languages are high level languages thus technicians can easily review their source for bugs or hacking.
No other part of the system (light blue) needs to be reviewed since they all come from the Linux distribution downloaded from the Internet. Of course the right behavour of the ClearSoftware distribution must be tested, but there is no special reason why the web browser, the web server, the data base, and the other services of the Linux distribution should be hacked or faulty to make ClearSoftware fail during real-life running and not during testing.

Most of the times we don't need to know in detail the software we use because we simply compare its output with the expected one (e.g. we move the mouse and we check if the pointer actually goes where it should). But same times we deal with unverifiable input data or with event that must follow a given law (usually the law of equal chance) in a term that is too long for us to verify it. For examples:
Thus fairness of elections and gambling can be ensured only by means of public and verifiable procedures. It is not by chance that fairness of elections has been based upon ballot papers publicly managed and counted and that fairness of gambling has been based upon cards publicly shuffled and dice publicly thrown.
It's quite obvious that for voting no undisclosed software should ever be used. Open Source is often proposed as a safe way to use computers in voting. But Open Source by itself is not enough because:
ClearSoftware addresses all the above points in a simple, cheap and verifiable way.
| ClearVoting home |
details | security | ClearSoftware | illustrative animations |
voting demo |
proof of concept |
readings | contact |