Another report, only a 3 page muse really. I felt I should add a summary of why the project was a failure. The report got a bit out of hand so It hought I should wrap it up. So many big issues to worrya bout and so little time to care.
Who knows one day when I'm more settled I may pick this all up again just for fun. Not sure I can afford to run the service let alone the time to develop it to a point where it can be used. The basic idea is clear now, but under the hood this system needs a lot of tidying up, basically a rewrite, as this is a prototype that got out of hand. I haven't tried it in ages but I'm sure it no longer works, setting up database etc was toooo much effort. A good installer would fix most of it..... but not this year.
As you can see from the title, I am folding up development on this project, I think I have taken it as far as I am prepared to take it.
The fundamental flaw is the idea that majority opinion is right. This is simplying not true. Decisions should be made by the best of the current stock available, cold but true..
I still intend to introduce the concept of unions to the system as a first priority. The task inhand is so complex that I have been shying away from it and choosing to play video games instead. I think once I have unions working I will go back to the drawing board for a radical shake up. Software is a process not a product and this is a very painful process. I think I can now define the requirements for this system and I intend to start there when I come to redesign the system.... read more
I still haven't managed to find time to add anything to this projects, I'm hoping the recent elections will force me to get cracking again. The current work plan is:
Introduce the concept of a union
Standardize the certificate system
Make the code thread safe
Release Beta.
There is a good chance that all of this will be done in one go, when i find the time and space to have a really good crack at it.... read more
Finally I have laid my grubby hands on a system to run my servers on, its not much (cely 400) but it'll do. I am expecting to get moving on this project again soon and still predict a beta by summer.
It looks like I've managed to source a PC to run the three server apps on fulltime. Hopefully within the next two months I'll get this project rolling again. There is a bit of a re-design on the cards, once I have tidied up a "few" bits and bobs (namingly sending a server side constructed tree object around instead of bits of strings here and there) I'm going to invest some time in redesigning the system so it is more thread freindly, hopefully this can (for the most part) be acheived by moving code around. There should be a beta version available by mid 2005 (famous last words), once the beta is out I'll start adding mix servers, CA's and maybe some onion pealing to keep it "reel". Death to the plutocratic system?...maybe one day ;)
Currently the project is not moving, I have just started a new job and reinstalled my development machine. I noticed that there are a few hits on the page every so often so really this is just something for you people to read. The project will get going again before the year is out, but i need to source a machine to run the servers on for some proper testing, as well as needed to free up some time to do the coding (when I'm coding at work in the day, coding in the evening is not very inviting). Bye for now
Be sure to check the release notes for the server suite as setting up mySQL to work with .NET requires installation of Microsoft Data Access Components and mySQL ODBC plugins. Enjoy!
I am yet to upload the latest versions as I want to create installers for both the server suite and the client. With an increasing amount of files and tools needed to run the spanner system it is becoming more complex to install, to save effort I will produce installers.
I have spent a bit of time on the GUI's for the server suite and the client. Most graphics have been produced with a combination of fireworks and photoshop. The overall look is still not what I'm after but its coming along.
In the latest version I of the server suite I have added mySQL support, although there are still a lot of concurrency issues the basic database is up and running. It shouldn't be long until I have the servers running 24/7. I am currently trying to source a system, to run is all on.
I have made a few adjustments to the way the client looks and works. There is still very little error checking and this is is still a prototype. The servers are not yet running at a fixed address, nor are they connected to a database.
After hacking around with the code for a while I got it working again, for some reason the key destroys itself after I have used it to encrypt a message, I'm not sure why this happens. The whole key exchange and generation system will soon be removed and replaced with a cleaner certificate version.
I have been reconstructing various parts of the client and servers in preparation for a move to java. I have given this a lot of thought and decided that in the future I will be moving the project across to Java, using CORBA and open source bouncy castle for security. So to this end I have started to use the C# version as a prototype for system structure as well as overall concept of the system/ GUI design. Version 0.9a is still broken in places and i have used standard microsoft icons to demostrate the sort of look I'm going for. I have also cleaned up the security a bit so that a secure channel can be used, I am yet to introduce a CA and a mix.
The current stable client is version 0.8a, althought there is still a lot of work to do there is alos a need for a bit of a code tidy, so version 0.8a is pre reconstruction.
I have recently been working on the pit server and now have a basic version of it working, the current stable client (0.8a) uses the pit server, however polls the server everytime a treeview is expanded, but for the purposes of a prototype it should do for now.
I have finally got it together to get this project swinging again. After a year out from the project it is time to get it rolling again. Over the last year there has been a lot of talk about evoting systems. It is inevitable that evoting systems will be put into place all over the world in the coming years. I am not happy with the idea of evoting as it stands, in my opinion these new evoting systems will offer LESS democratic freedom than the current system. I thought I would have a pop at designing one that will actually offer greater choice and be more convenient. One of the main aims of this project is to highlight that no matter how good a democracy is, peoples opinions are still formed from a jaded media, in essence I would like this project to bring to light all the problems that exist in the current system, but at the very least it will give me something to sink my teeth into. ... read more
I've commented and tidied the code up a little. This is now pretty much the final version of this software as far as my degree project goes. Report will be uploaded to page soon, with all documentation of code, design and research.
-=peaceout=-
The latest version 0.6b has many GUI updates, the system is now fully working in terms of encryption and digital signitures
Version 6a now uses RSA for all encryption apart from vote blinding, where OTP is used. RSA is also used for digital signitures from the primary server. The second stage where the secondary server validates the signiture has still got issues, once I have ironed these issues out I will tiding up the GUI's, as the bulk of the security work is done.
I have constructed a simple One Time Pad encryption class, I have now moved the system across to using this new encryption, the key distribution is still an issue, i expect to use a PKI to encrypt the random OTP key (using the secondary servers public key). Sadly this means that the system is not future proof and will rely on updates to the secondary servers PKI, but will mean that there is less of the system to update as time goes on.
I finally have the system working at a level i am happy with (obviously it is very far from a full implementation, but it is now sending a blinded vote to the Primary server, which signs the vote (not properly yet). It is also sending the vote to the secondary server for unblinding.
I have been having big problems with the .NET cryptography package, the first was that I was using "Zeros" for padding, which is broken for .NET release 1. Most of the issues have been padding realated, when i was using CBC (Cipher Block Chaining) mode the decryptor (using a different instance of the encryption algorithm) could not strip the padding off again. I am now using ECB (Electric Code Book), a shame but then this is only a prototype.
I have moved the system across to using .NET's remoting package, Have been having problems with references and xml SOAP's, but the system is almost back to the state the sockets version was in.
Going well!