Skip to main content

Security and Election tools.

Doing some security reading, I came across a post from Bruce Schneier about voting and technology. It is part of a continuing thread in his blog and is quite timely. Securing Elections.

As a software engineer, I agree with Schneier and I think that working on secure, distributed, open and widely implemented voting registration system and tabulation systems would be interesting - both technically and socially. I have up-close experience (as a candidate in small city) with the tabulation process and I was surprised by the apparent lack of tools to expedite, verify, validate and secure the process.

This piqued my curiosity further, to no particular end. Given that, I started searching the web for open voter registration and I found the Voting Technology Toolkit. An online sample of voter registration can be found at Trust the Vote demo project (Virginia). or even better at Rock the Vote.

Another system is Civitas, a NSF funded project from Cornell which is interesting for it's detailed description of it's theoretical underpinnings.

Doing a casual literature survey of "voter registration security issues" brings up a number of key issues like trust models, biometrics, voter coercion and fraud, permanent voter cards and a whole host of verification issues. Security of voting encompasses authentication, authorization and trust but also taking a systems view of the process. Getting only one component of the system secure, such as the voting machines themselves still leaves the whole system untrustworthy. Standards are supported by organizations like Verified Voting and they look at the whole picture, including administrative structures. It requires both defense in depth as well as laterally - being particularly careful at transition points.

Interestingly it's less than obvious who the makers of voting systems are. If you are interested, there are federal testing standards for voting systems from the Election Assistance Commision.

So, here are a few resources available if you are interested in electronic voting systems...

Comments

Popular posts from this blog

Unit Testing - What to Test

This I wrote to answer a question that came up when we were discussing our software process and I was training developers on how to unit test. It seems a simple enough question, but I kept pondering it and delving deeper until I realized I needed to write this monograph. What unit tests should we write? How do we know what to test? Ideally, unit tests should cover every path through the code. It should be your chance to see every path through your code works as expected and as needed. If you are practicing Test Driven Development then it's implied everything gets a test. In the real world, you might not be allowed to test everything - for instance, if the testing suite ends up taking a week to run, then the world will have changed by the time it finishes and the test results will be obsolete. Unit testing at it's basic is testing an object, a method - the smallest unit of your code that it can test independently. It should test the inputs "goes into" an...

Healthcare and Health Informatics Glossary

Here is a glossary of terms useful in Healthcare and Health Informatics ACO (Accountable Care Organization) MEDICARE’s outcomes-based contracting approach Arden Syntax an approach to specifying medical knowledge and clinical decision support rules in a form that is independent of any EHR and thus sharable across hospitals ARRA (American Recovery and Reconstruction Act) the Obama administration’s 2009 economic stimulus bill Blue Button an ASCII text based standard for heath information sharing first introduced by the Veteran’s Administration to facilitate access to records stored in VistA by their patients. The newer Blue Button + format provides both human and machine readable formats. CCD (Continuity of Care Document) an XML-based patient summary based on the CDA architecture CCOW (Clinical Context Object Workshop) an HL7 standard for synchronizing and coordinating applications to automatically follow the patient, user (and other) contexts to allow the clinical u...

It's all broken...

So, Scott Hanselman struck a chord again:  Everything's broken and nobody's upset . The worst part is I can see that I'm part of the problem on both sides . I've excused many problems with software - shrugging as I restart the software or reboot. I save my anger for those occasions where I fell I've lost serious work and substantial time. Other than that I accept problems, glitches, crashes as "the cost of doing business". I believe it's actually because I've amused myself and earned a living creating software, that I am able to accept what's often pitiable quality. I've spent time working on systems that are not much more than breadboards with wires cascading from it, where getting something, anything to work was a huge accomplishment. But that was then and this is now. No way would I put up with a car that suffers from numerous small problems as today's software can. And putting these two thoughts together, it's now frightening ...