Something's rotten in the state of Denmark

Tuesday, December 14, 2004

HOLY FUCKING SHIT; or, Clint Curtis testifies

Clint Curtis, the programmer in Florida who claims he was asked to design software that could alter the votes of touchscreen voting machines, has given testimony to the Judiciary Committee Democrats -- Nadler, Conyers, et al -- under oath.

Here's a transcript. Thanks to Bradblog and Mark Crispin Miller's listserv for sending this out way.



Q: [Congressman Nadler] And did he ever express why he wanted a code to rig an election?

A: No. I immediately assumed that they were trying to keep you guys from cheating with it... so... [laughter] so... I wrote up the documentation of what you would look for in the source code. How you would make sure the you - CUT - Mrs. Yang, and said, here's your report. Here's your program. And she said, you don't understand, we need to hide the fraud in the source. In the source code.

Q: Hide the fraud, not reveal the fraud?

A: Not reveal the fraud because they needed to control the vote in South Florida, is what she said.

Q: That's what she said?

A: That's what she said.

Q: To your knowledge, to your knowledge, was this used?

A: I have no idea. I was ready to leave, so... (laughter) and and I was tired and left the company.

Q: In your testimony a minute ago I think you said just before you left in answer to Congresswoman Tubbs Jones question, that... would you just repeat what you said in terms of uh the the uh exit polls?

A: The exit polls should not be significantly different from the vote.

Q: And if they were you would conclude what?

A: I would conclude someone's playing with the vote?

Q: Not with the exit polls?

A: That's possible too.

Q: OK and that's why...

A: Something is definitely skewed.

Q: Something is skewed with one of the other above.

A: To select which one you'd have to see where the problem is.

Q: Let me ask you one further question. Assuming for the moment that such software, [UNINTELLIGABLE] such software to rig a vote was used, in one or more machines in Ohio or in Florida, couldn't you today detect that if you looked at the source code?

A: If you could get the machines and they had not been patched yet. I mean, once they get in and touch em', anything could happen. You could also set timers to do that, but then you could see the timer. Then you'd have to take those machines, decompile them, which I couldn't do, but possibly a Microsoft, an MIT something could do, you might... you might be able to.

Q: You might?

A: Depends on how good they are at destroying what they had.

Q: Destroying what they had by tampering the machine afterwards, or by programming them to destroy instructions in the first place?

A: Right. Because then since you...

Q: Either or both?

A: Either or both. You didn't actually seen what's in there, so you don't know if the code is running as a single executable or running in various modules. If it's running in modules you could make the code actually eat itself.

Q: Let me ask you one further question. We've.... I've heard that people who assume that lots of the election results, that a large fraction of the election result within the state may have been effected by deliberate fraud in a computer, are paranoid, because in order to do that you would have to have access to thousands of machines and that would be readily detectable. To what extent is that true?

A: In depends on the technology that used. If you use a central tabulation machine that fed in, all you'd have to do is set a flag. You set a flag; the central tabulation machine would flip your vote.

Q: So if you. So one person putting in bad code in a central tabulation machine could affect thousands and thousands or tens of thousands of votes?

A: Right.

Q: And...

A: And you could activate either automatically, or you could make is so that there's code existing on like an otonic (?) machine which feeds it, where you would punch it in, it would see the flag, the server would see the flag and then...

Q: And if you had a recount and no paper trail, would that be, as soon as that had happened, would that be reversible by seeing the discrepancy between the tabulator, the central tabulator code, and what the individual machines which had not been tampered with code?

A:Not if I wrote it.

Q: Why not? In other words...

A: In other words I could make it match.

Q: You could work back from the tabulator to the individual machines, so that the tabulator could tell the machines to switch their results?

A: Yes. It talks both ways. You could flip it to whatever you need.

Q: And they actually do talk to each other. this the machines and the tabulator?

A: As long as it's hooked up. As long as they are networked together, they can talk to each other.

Q: So in other words, there is absolutely no assurance whatsoever on anything with regards to these machines.


A: Absolutely none, unless you look at the source code and make sure it's safe before it goes in.


Q: Thank you very much. [APPLAUSE]

Chair: Thank you Congressman Nadler. I know that Congresswoman Waters has questions, then Senator Miller, and then Congresswoman Stephanie Tubbs Jones.

Q: [Congresswoman Waters] This will only take a moment, if you would come back to the ...

A: I'm new at this.

Q: As you know, there has been a lot of discussion about that, I think it is Diebold Company. Their relationship to the President and a group within the administration and supposedly comments about helping to insure that the President is reelected. In your world in your environment, have you heard any of these kind of discussion? Do you know people from Diebold... do you have any sense of any actions that may have been taken?

A: I don't know anything about that at all.

Q: Thank You

A: Sorry.

Chair: Senator Miller

Q: [Senator Miller] Thank you Madam Chair.

Chair: Sir.

Q: I suspect that people will attack you in terms of your credibility. Could you restate once again for the record your credentials?

A: I'm a programmer. I worked for NASA. I've worked for Exxon/Mobile. Worked for the Department of Transportation. And, other elements of my story, because this company... well let's get into it, why not? [LAUGHTER] This company also, they have a NASA contract. and they were basically downloading tons of information, I mean gigabytes worth, and handing it off to this little Chinese guy named Henry Ng [Lee or Nee?] and it didn't seem right and he was packing things and I wrote a program for DOT that allowed contractors to send their information into DOT and he was kind of the quality assurance guy for software. He put a wiretapping module in the program that went to the contractors so that it actually sent everything they sent back to Yang. So I reported all this and just last March, I think, he was arrested for attempting to send anti-tank missile chips to the capitol of Communist China. If that's correct, this is such a small thing. [LAUGHTER] Although I think that he only got a hundred dollar fine and no time.

Chair: Thank You.


Update: From that same Miller listserv, here was a response to the Curtis testimony. (Because I haven't gotten his permission, I'm not crediting with who it came from. But I think he makes good points, necessary to think about in weighing the Curtis testimony.):

Curtis indirectly contradicts himself by at first saying that the code could eat itself, either on command or by timers. If one were to think like a conspirator for a moment, you would force this code to "eat itself" as soon as the election was over to cover your tracks in case the machine is inspected. Then, Curtis says he could recreate the votes and make them match the tabulator computers going back into the voting machines. If the code has eaten itself, there is no way that this would work and there would be a variance in the votes.

All of his testimony is pure conjecture as he does not know for sure if his software or any other software was actually ever used. As I have said before, he uses the answer "I don't know" or "I have no idea" too much.

Also, being a programmer, if you decompile an executable, you will get machine language code. This is the language the CPU understands the easiest and is very easy to follow. If you follow the code and it makes a branch or jump command to a routine that is not there or immediately returns back to the main code, you could assume that something is wrong. You usually do not write routines that return immediately and leave it in production code. I have written C programs that had code that I used to test with that calls another routine. I comment this out when I am finished or delete it completely and it is not compiled into the executable generally. There are some compiler options that would retain comments, but that increases the final size of the code.

...His testimony is purely speculative and there was nothing jaw dropping about it except for naming Feeney publicly.....