Slashdot Mirror


Maryland Plans Code Review for Voting Software

asmithmd1 writes "We already knew Diebold software is insecure, now the Baltimore Sun is reporting that the Governor of Maryland has asked SAIC to review the software in Diebold voting machines. Diebold has graciously allowed SAIC access to their proprietary code. Why isn't this code open source by law?" In a related story, a trade show for closed-source electronic voting systems is doing their best to keep critics out. Update: 08/07 15:23 GMT by M : Diebold's website security is less than outstanding.

39 of 307 comments (clear)

  1. the problem is... by borgdows · · Score: 5, Insightful

    even if the code is opensource, how can you be sure the voting machine executable has been compiled from the genuine source code ?

    1. Re:the problem is... by digitalunity · · Score: 4, Insightful

      I won't trust digital voting. A lot of people won't. I seriously hope someone hacks it in November next year to such an extreme amount that the politicians see the error in their stupidity. This won't work. I hope the results are wacked out like this one

      --
      You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
    2. Re:the problem is... by gmack · · Score: 2, Insightful

      People just aren't ready for it.. not when I read lines like this: "The hacker did not reveal how he subsequently breached the security of the Diebold staff site, which used SSL encryption."

      But we can't be hacked we have encryption?

    3. Re:the problem is... by ajs318 · · Score: 4, Insightful
      I agree with the original person. I can't state it loud enough that THE INTEGRITY OF ELECTION RESULTS IS A FAR GREATER CONCERN THAN ANY CORPORATION'S RIGHT TO SECRECY! The mechanism by which our leaders are chosen must be absolutely open to public scrutiny and any government that does not believe this so, deserves to be overthrown.
      even if the code is opensource, how can you be sure the voting machine executable has been compiled from the genuine source code ?
      I've looked at this one before and it is a problem, because the C compiler may be rigged so that when you try to compile it from source, then it modifies itself subtly so as to insert various backdoors; in other words, the code you get from the compiler does not match up against the source you compiled. Then, it does not matter how "clean" any of the source code is; because the compiler might modify the code during compilation. Even if you run the original, clean compiler source through it, chances are that the compiler could spot this and mung it, giving you a "dirty" compiler.

      Throughout the following, I'm assuming you - or someone you trust - can spot malicious C code just by looking at it, and can write assembler code you know is safe. You don't have to be able to look at someone else's C-generated assembler and know whether it's safe.

      You first need to write a simple C interpreter in assembler. Note, it only has to interpret; it doesn't have to compile. As long as the assembler instructions it generates do the same thing as the C source code you feed it - even if much more slowly than a compiled version - then it is good enough for the time being. It can even waste as much memory as you can spare. The most important thing is that you know the temporary interpreter is safe. Then you take the source code for the compiler you want to compile - you know this is safe, but the pre-compiled binary might not be safe - and run it through the interpreter. Now the output from the interpreted compiler is actually a compiled compiler, and it's safe. You haven't run the "dirty" compiler binary, which might have modified the compiler.

      Now you have a compiler which you know for certain isn't going to produce binaries which don't do what the source said. And that's the first step to trustworthy computing. Maybe get someone we all trust to sign the code by encrypting it with their secret key {so when you decrypt with their public key you recover the original; recall that P(S(x)) = S(P(x)) = x}. Problem is, you can't trust anyone with election results, because the stakes are so high.


      On the other hand, why bother with voting machines at all? In this country, we count votes by hand. It may not be high-tech, but it works and it's harder to subvert. Hand-counting of small batches of papers {which are kept, in case of dispute, until the next election is out of the way} is not significantly slower than machine counting. Anyway, what's a few hours here or there when a term of office can last for four or five years? To throw an election, you would need to bribe several people, not all of whom are politicians. The ballot paper {taken at random from a book of identical ones and by a different person than the one who sees your voter ID - the only communication between them is a slight nod} is the only record of the vote, and the voter has already had the opportunity to verify it before depositing it.

      For how often elections are held, it probably is less work to keep on doing all this stuff by hand than it is to put the safeguards in place that would make machine voting trustworthy.
      --
      Je fume. Tu fumes. Nous fûmes!
    4. Re:the problem is... by Jeremi · · Score: 4, Insightful

      Who cares about the code? If the machines generated a voter-verified paper trail, you could check the results for accuracy. Since they don't, you can never be sure that the results were correct, no matter how carefully the source was scrutinized.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    5. Re:the problem is... by jandrese · · Score: 2, Insightful

      Heck, how can you trust their closed proprietary hardware at that point? You never know if they took and modified their Pentium in there to recognise when you're bootstrapping a compiler and modifing your routines.

      The simple fact is that you have to trust someone (or some group of people) along this chain, which is very difficult because the incentive to cheat in elections is huge. You can reduce the danger with a solid system of checks and balances, but there's always the possiblity of the very determined/very rich individual buying off several key players.

      You can also buy off paper ballot counters.

      Because it is impossible to make a completely 100% fraudproof system, we need to instead focus on trying to keep the process as open and transparent as possible. We need to catch people cheating and insure that there is ample opportunity for detecting fraud.

      --

      I read the internet for the articles.
  2. because by bigpat · · Score: 3, Insightful

    "Why isn't this code open source by law?"

    because we haven't made it so yet. Remember Government by the people...

    1. Re:because by EvilTwinSkippy · · Score: 2, Insightful
      but how many of "us" will realize the necessity of that? People are SO used to MS as being the only thing out there for computers and not knowing that there is such a thing as "open source" and that "trade secrets" aren't the most important thing when it comes to security.

      People once thought that women and minorities were inferior, slavery was ok, and only landholders should have a say in anything, and you can pay off your sins by giving to the Church. We have gotten past those issues, we can get past these as well.

      --
      "Learning is not compulsory... neither is survival."
      --Dr.W.Edwards Deming
  3. I know what I am doing next election by chrisgeleven · · Score: 5, Insightful

    Voting via absentee ballot. At least there is a greater chance of my vote not being screwed up or changed.

    Anyone who thinks these voting computers are going to be flawless and secure by Nov. 2004 is greatly mistaken.

    1. Re:I know what I am doing next election by WindBourne · · Score: 2, Insightful

      Sadly, even paper is easily manipulated. Chicago land area (historically) is a great example of this.

      --
      I prefer the "u" in honour as it seems to be missing these days.
  4. Not open source because... by JohnGrahamCumming · · Score: 4, Insightful
    Why isn't this open source by law?

    Well because the US is a capitalist country and because currently most people seem to believe that the best way to make money in software is by keeping the code proprietary and because US government favors money-making corporations.

    I agree that if it were open source it would be far more likely the security problems would be discovered quickly.

    So how about creating an open source alternative... anyone ready to register an OpenVote system on SourceForge?

    John.

  5. It makes sense by Doesn't_Comment_Code · · Score: 4, Insightful

    It makes sense that they don't want their code to be open source, because then ALL the bugs will be found. When open source code is developed normally, people notice bugs/security holes a few at a time and fix them. But when software has been closed source for a long time, it's bound to have tons of bugs and holes. Opening the code up to public scrutiny would unveil A LOT of problems. And that's just not good for PR... especially in voting.

    My guess is they just want someone to look through the code, maybe suggest a couple quick fixes, and then give the OK, so they can reassure the public. They don't really want to get to EVERY hole in the code. They probably just want show that they get numbers close enough that we should keep using/buying their stuff.

    --

    Slashdot Syndrome: the sudden, extreme urge to correct someone in order to validate one's self.
  6. Open Source != Secure by daoine · · Score: 3, Insightful
    I'm a big fan of the open source movement, but I'm not sure that voting software *needs* to be open source, because there is value in securing the source code itself.

    Security through Obscurity is not Inherently Evil.

    Of course, if the only security a system has is based on the fact that nobody can see the code, I'd say that system is hosed. I highly doubt voting software would fall into this category. It's unfortunate that obscuring code has taken on the negative connotation of "hiding bugs." That's not always the case. Keeping the inner workings of a system secret is a valid security measure, and used in conjunction with other means it can create a well-secured system.

    I think the process they are taking is a step in the right direction. I believe that independent code reviews strengthen privately owned code. I think it's a mistake to deny access to those who have the ability to challenge the system. But I'm not sure open sourcing the code will make it any more secure.

    1. Re:Open Source != Secure by WindBourne · · Score: 5, Insightful

      Security through Obscurity is not Inherently Evil.
      In this case, it is.
      With normal elections, the abilty to tamper with the results are minimal. The reason is that the votes do not end up in one place. In addition, you have several different parties counting at all times (typically Dems and Republicans). With this approach, it offers a single point of entry. It is possible for the votes to be rigged here either directly or indirectly. Somebody could offer 10 to 100 million dollars to the coder or even CEO within the company (keep in mind that some elections are spending a great deal more money to win them these days; apparently it pays off). Or since it may have a unknown opening, only the bad guys would know. Only the problem is that the bad guys would be a party member.
      BTW, the orginal bribe may be to simply forget about an opening, rather than the introduction of one. Then the party would simply introduce something to manipulate it nationaly. At that point, they would manipulate close elections. Totally undectable.

      --
      I prefer the "u" in honour as it seems to be missing these days.
    2. Re:Open Source != Secure by gilroy · · Score: 3, Insightful
      Blockquoth the poster:

      Security through Obscurity is not Inherently Evil.

      When it comes to voting software, yes, it is. The people have the right to know that their software is as secure, bug-free, and outcome-neutral as possible. Like laws, the code to count ballots should be accessible to any interested citizen -- and there should be absolutely heinous penalties for anyone who uses a binary compiled from anything other than the open code.
    3. Re:Open Source != Secure by Falsch+Freiheit · · Score: 2, Insightful
      [...] I'm not sure that voting software *needs* to be open source, because there is value in securing the source code itself.
      You're missing the point. The point is democracy.

      The biggest reason for making the source open for voting software isn't security. The biggest reason is accountability. With a paper-based system, anybody (the losing candidate in a close race?) can audit the results by looking at the materials, seeing where the marks or punches or whatever are and counting. The components of the voting system are understandable and open.

      With closed-source voting software, the single largest, most complicated and most important component of the voting system is a "black box". There's no way to know for sure what it's doing, other than to test that when you do A the proper response B happens and not C. Because it is software, it'd be remarkably trivial to write code designed to pass the tests but still bias the vote in a real election.

      It's not just about hiding bugs, it's about hiding intentional flaws.

      An independent code review is mostly a sideways step only slightly in the right direction. It's still not accountable to the public, only to a larger secret-holding group. It decreases the odds of conspiracy by increasing the number of people who'd need to be "in on it". You can't totally eliminate the possibility of conspiracy until we're all in on it.

      And democracy is all about everybody being "in on it". Anything that reduces knowledge of decisions or accountability reduces democracy.
  7. I don't care about the code... by JayBlalock · · Score: 5, Insightful

    But for the love of god and all that is holy, WHY are they fighting so hard against paper records? It makes no sense. (unless you are conspiracy-minded) Seriously. I just can't come up with any decent reason that Diebold et al would be so strongly against hooking a printer up to the system to produce a physical record. Much less why our elected officials would buy into such an idea.

    --
    Bush: He's Liberal in all the wrong ways.
    1. Re:I don't care about the code... by Anonymous Coward · · Score: 1, Insightful

      Whats wrong with a simple dot-matrix fanfold printer and a very large box of paper? The chances of them failing are low. If thats too complex, how about a thermal transfer printer and a very very long roll of paper? Even less chance of that failing!

      Technology doesn't always have to be complex or failure prone. The problems you're thinking of essentially apply to cheap consumer inkjet printers, yet there are plenty of other suitable options with significantly lower maintainance overhead. In many cases it would be no worse than maintaining mechanical voting machines on voting day.

  8. Not only open source code.. by Gefiltefish11 · · Score: 3, Insightful


    Not only should the code for voting machines be made open to any interested member of the public, the whole voting process should be opened to the public.

    Provided that it does not infringe on the privacy of individual voters, it seems reasonable and much more secure to allow any interested party to view the voting process in real time and at any level, provided, of course, that the process were set to read only ;)

  9. If you want it open... by TWX · · Score: 5, Insightful

    you need to build it. They're not interested in building it open source apparently. Remember, Diebold makes ATM machines and other commercial products, and they have stiff competition. By the design of their business plan their software won't be open.

    So, if you want to see an open source implementation of voting software, something that you can argue is perfect and be able to show the world such, you need to make it. Diebold and their competitors won't.

    If you can build the software to make a secure voting system, someone else can design the hardware once the software is ready. That seems to be what people are missing here. Design the system right and the hardware will be built to work. Design the hardware first, and the system will be dependent on whatever wacky design is chosen.

    --
    Do not look into laser with remaining eye.
  10. Open Source doesn't solve this problem! by xphase · · Score: 5, Insightful

    "Why isn't this code open source by law?"

    This wouldn't fix the problem of faulty(by design) hardware, lack of audit trails, and no trust in the delivery method.

    Sure with open source we can see the code, but that doesn't help if it is compiled by a compiler that you can't see the code for, run on microchips that you can't see the code for, and administered by people you can't trust.

    The ``but it should be open source'' comment that gets thrown around in every single story about electronic voting does not take into account everything that happens to the code _AFTER_ we would be able to see it.

    Anyway,
    here is a link to a page on Electronic Voting:
    Dr. Mercuri's Page on Electronic Voting

    --xPhase

    --
    The following sentence is TRUE. The previous sentence is FALSE.
  11. Paper vs paperless by Ioldanach · · Score: 4, Insightful

    It is still possible to have a valid election, even with a closed source voting system. The key is to have the voting machine spit out a piece of paper where the voter can see the votes written down and then confirm them. It doesn't even have to be a paper the voter handles, it could be behind glass so the voter merely can see that what they voted for is on the paper. Then, in the case of a contested election, the checks can be made against paper as well as the bits. In a case where the ballots don't match, paper overrules the bits.

    Granted, I think an open source system is the only sensible way to go, and the people writing them should be protected by copyright and patents, not secrecy. After all, if they're all required to be open, its going to be awfully hard to hide the source code you stole.

    1. Re:Paper vs paperless by Anonymous Coward · · Score: 1, Insightful

      I would go one step further and say that during each election a randomly selected group of precincts would be automatically audited. Perhaps you could add a couple requested by each candidate. This would minimize the likelihood of cheating (vs. trying to make the election close but not so close that anyone calls for a re-count) and would, over time, raise or maintain the public faith in the system.

  12. Why isn't this code open source by law? by stratjakt · · Score: 3, Insightful

    Why should it be?

    Why dont I get to follow my paper ballot, meet the person who counts it, give them a math test to make sure they can do the arithmetic required, and wont "carry the two" and fuck everything up?

    Open source software wont fix anything.

    --
    I don't need no instructions to know how to rock!!!!
    1. Re:Why isn't this code open source by law? by IWannaBeAnAC · · Score: 2, Insightful
      You do. In Australia at least, scrutineers are allowed at every step of the process. While I suspect the counters would be a bit pissed if you stopped them in the middle of the count to give them a maths test, there is nothing stopping the scrutineers from repeating the calculation and comparing answers.

      Mind you, I don't know how the scrutineers are selected. At minimum, each party can provide scrutineers, but I'm not sure whether the general public can. The system works well enough in Australia that there has never been any suggestions of systematic problems. (Well, Queensland might be an exception!)

  13. Fraud by Design by CaptainZapp · · Score: 2, Insightful
    it makes sense that an organization like IACREOT, that supports paperless computerized voting systems, which are secret by their very design, would not want computer experts who disagree with that position at their meetings." (emphasis mine)

    And that's exactly what's dead wrong about voting machines in general and Diebolds AccuVote in specific.

    It's about as plausible like those industry strength, propriatery, uncrackable encryption devices with a secret, secret algorithm (which is certified by the association of creative spooks).

    If we (as the voters) allow for such unaccountable, unauditable and error-rigged devices we can give the key to the town right away to he who maintains the devices (or even a few creative script kiddies for that matter)

    --
    ich bin der musikant

    mit taschenrechner in der hand

    kraftwerk

  14. Right of Inspection by 4of12 · · Score: 2, Insightful

    Why isn't this code open source by law?

    The source code doesn't strictly have to be under a free or open source license.

    However it is vital that every single voter should have the right to examine the software and the hardware of the election process.

    Without that right, there's nothing to prevent elections turning into the kinds of events that Robert Mugabe has been staging in Zimbabwe.

    --
    "Provided by the management for your protection."
  15. Re:credibility by Anonymous Coward · · Score: 2, Insightful

    You, like many others, misunderstand how bias in the media works. Look, you know who the author is, and you can take a pretty good guess at his political leaning. Therefore you have all the information you need to apply your own critical thinking filters to the article. If you know the author is left-wing then you are perfectly capable of filtering out the more obvious left-wing bias. If you're reading $ARTICLE in $NEWS_SOURCE by $AUTHOR you may not have this information available to you, and thus you have to take everything at face value, which in turn exposes you to more bias on the part of the author.

    So I'd rather read something like this from an obviously biased source than one from a source that claims to be "unbiased"!

  16. Re:Use paper ballot with immediate scanning by sploxx · · Score: 2, Insightful

    Yes, but there is the whole transmission line from the scanner to the counter that can be observed. And then some secret service people asking you some not-so-nice questions afterwards, if you wrote "wrong"...

    I don't want to show my vote to a machine, either. That is as bad as showing it to a human.

    Until someone has an idea how one can safely suppress the personal information at the man-machine interface and only give the machine statistical information (Like if you throw the vote into a box with a hundred other votes!), electronic voting is a bad idea.

    Throw the paper votes into a box, let it scan them after the box is *full* and then recheck them by a human, that would be ok. But this has no advantages over the current system.

  17. open source by law? by tf23 · · Score: 2, Insightful

    It's not open source because a private company devoted it's resources to create it, and owns the copyright on it. (I'm assuming now)... It obviously needs to recoupe that investment, so it keeps it's code to it's own.

    Simple enough. I really don't know why you'd question why it's not open source.

  18. Open Source in this case is important. by Art+Pollard · · Score: 3, Insightful

    I have to admit from the onset that I am no fan of open source. This is for a variety of reasons. (It is probably sacrilege to state that here.)

    Voting machine software is however a case where I firmly believe that open source is not only important but necessary. The ability to vote either among a certain group or among the populace as a whole goes to the heart of our democratic republic. If votes are not tallied properly, not only may mistakes be made but there is the very real possibility that the country through forged votes may be manipulated by those who have nefarious purposes in their heart.

    The cryptographic community a long time ago discovered the best way to ensure the security of a cryptographic algorithm is to provide the algorithm to their colleagues. The rest of the cryptographic community then responds by trying to break the algorithm or in the least trying to discover the weaknesses. Because of this review process, the algorithms are then adjusted until they are highly secure. On the other hand, when cryptographic algorithms are kept secret, the review process is skipped and it is not uncommon for unsecure algorithms to make it on the market. When this happens it can cost lives and money.

    The same can be said in the case of voting machines. If the source code is not released, security problems will likely go unnoticed until discovered by accident by someone who may or may not have the public's best interest at heart. In fact, the likely hood of it being discovered by someone who wants to manipulate the system will actually go up as they are more likely to be able to obtain the source through deception or to take the time to decompile the voting machine binaries. With the large number of voting machines that could be used around the country -- or in storage between use -- it would not be hard for someone to obtain at least the binaries for the voting machine software. And this goes to the heart of the matter which is this: Someone who wants to manipulate the system will be able to obtain the source either by bribery, theft or through decompiling the software's object code. Thus in a closed source environment, the only people who would not have the source and be able to easily discover the problems would be the good guys.

  19. Re:credibility by Anonymous Coward · · Score: 1, Insightful

    I'd sooner trust a story from the New York Times with no verification than I would this story from a hard-left nutcase.

    So, do you have any evidence that this author is a nutcase? Any specific complaints about the content of the article?

    If not, then it would seem that you are chosing to ignore information from people whose point of view. That "I won't listen to anyone who disagrees with me" attitude is exactly why there are so many idiots in this country. E.g. "The media is controlled by left-wingers, so I refuse to watch the news!" "Who told you that the media was biased towards the left?" "The guys on all the TV and radio programs I listen to..."

  20. Why isn't this code open source by law? by CognitiveFusion · · Score: 2, Insightful
    1. Lawmakers are people, elected by money and other people
    2. The majority of software is closed-source so a profit can be made
    3. The majority of people believe that secrecy is always equivalent to security. Trying to convince them exceptions exist is an uphill battle because this belief is often deeply ingrained.
    --
    Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it. ~A. Perlis
  21. Re:I thought that was what Palladium was for. by WNight · · Score: 2, Insightful

    Palladium is mainly about preventing the user from tampering. The binary containts a signed hash from the author. If the OS can't verify the signed hash it prevents it from running, or at least prevents it from accessing protected media like the DVD drive, or your encrypted music, etc.

    Nothing in Palladium was designed to help users. It doesn't even help stop email viruses as they claim, because they're almost all exploits of "properly signed" software. Even if Palladium was did stop viruses, all it'd do is stop them from playing your DRMed MP3s while they wiped your drive and emailed your personal documents across the net.

    The big problem with DRM to protect a voting machine is that if the software and hardware are done by the same company, there's no extra safety. You could be somewhat sure their software wasn't tampered with, except by them, but the problem here is that we don't trust "them".

  22. Re:And why? by bigpat · · Score: 2, Insightful

    "On the contrary, if the source were opened, one might not be able to trust that there would be more white hat hackers than black hats for such a high-profile application"

    Hacking is of little concern here. Since we aren't talking about Internet voting, so the only opportunity to hack would be while you are in the voting booth, with nothing but the interface that is given to you. So assume there is a touch screen or something with a limited number of options.

    Making this software open source so that we can all look at the code is really just to make sure that there isn't some algorithm that drops every 3rd vote for a particular party or adds it to the wrong tally. Paper ballots are retained for auditing by third parties after the fact if there are questions about how the human tally was conducted. But computer recorded voting does not have such directly auditable methods, so we must be certain that the systems are not flawed or biased.

    Voting by computer terminal might make it faster to count the votes, but it is more akin to walking up to a sheet and telling the person behind the sheet who you are voting for. You lose the physical evidence of the vote unless there is some direct physical recording made. Regardless of how you desing the system, it is essentially relaying the vote without any direct physical evidence of the vote. Any subsequent recording of the vote is at least once removed from the actual person casting the vote. Unlike with paper ballots or even those horrible punch cards where the ballots are direct physical evidence of the vote.

    So, that is the argument in a nutshell. If you are to be forced to trust a machine or person to record your vote accurately, then we have a right to know the procedures that they will use to record the vote.

    Otherwise and unless there are many layers of accountability, both before the election and after, then let's just stick with paper ballots and optical scanners.

  23. electronic machines MUST provide paper backup by ChristTrekker · · Score: 2, Insightful

    The only way I'll ever trust an electronic voting machine is if they provide a printout I can verify on the spot before dropping it in a box, so that it can be used for auditing purposes. Ideally, the source code should be open source. But even if it is not, providing a marked paper ballot that can be manually counted (if necessary) ought to be sufficient.

    1. Re:electronic machines MUST provide paper backup by Politburo · · Score: 2, Insightful

      The manual printout in the grandparent's case is to provide a paper trail in case of suspected tampering. Then, persons can go back and count the printouts for a verified count. The printout, imo, should not act as a "did the computer read my choices correctly" (as this is a trivial task and is currently not done on electronic voting systems already in place), but should act only as an alternative voting record. In 99.99% of the cases, the computer would still keep the original, electronic, vote tally, and no manual counts would be done.

  24. Re:And why? by ajs318 · · Score: 2, Insightful

    How dare you presume to tell me that I am not allowed to supervise the process by which my elected representative will speak in my name?

    Get your head out of your arsehole. It's because of idiots like you that your country's in the mess it's in.

    --
    Je fume. Tu fumes. Nous fûmes!
  25. Even an ATM gives me a Reciept by NickFusion · · Score: 2, Insightful

    It doesn't automatically eliminate fraud, but at very least, I should be given a receipt of my transaction (vote), and a printer ought to be making an archival copy at the same time for recounts.

    Imagine if your bank instituted a no-paper-record policy.

    --
    What were you expecting?