Beta

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Sequoia Voting Systems Source Code Released

kdawson posted more than 4 years ago | from the redaction-fail dept.

Politics 406

Mokurai sends a heads-up about Sequoia Voting Systems, which seems to have inadvertently released the SQL code for its voting databases. The existence of such code appears to violate Federal voting law: "Sequoia blew it on a public records response. ... They appear... to have just vandalized the data as valid databases by stripping the MS-SQL header data off, assuming that would stop us cold. They were wrong. The Linux 'strings' command was able to peel it apart. Nedit was able to digest 800-MB text files. What was revealed was thousands of lines of MS-SQL source code that appears to control or at least influence the logical flow of the election, in violation of a bunch of clauses in the FEC voting system rulebook banning interpreted code, machine modified code and mandating hash checks of voting system code." The code is all available for study or download, "the first time the innards of a US voting system can be downloaded and discussed publicly with no NDAs or court-ordered secrecy," notes Jim March of the Election Defense Alliance. Dig in and analyze.

cancel ×

406 comments

Sorry! There are no comments related to the filter you selected.

ha ha (0)

Anonymous Coward | more than 4 years ago | (#29816223)

Now does stripping the illusion of voting away make us more or less free

Re:ha ha (3, Funny)

Cryacin (657549) | more than 4 years ago | (#29816585)

Now does stripping the illusion of voting away make us more or less free

Don't blame me! I voted for Kodos!

Re:ha ha (2, Interesting)

Philip K Dickhead (906971) | more than 4 years ago | (#29816947)

Vote! Vote my little worms!
Divert your will and energies into our little show of "change"!

While another Goldman exec is put in charge of "Enforcement [bloomberg.com] - ensuring [yahoo.com] that there is none... [boston.com]

You see, under the post-Kennedy era system of American government, executive and legislative sideshows are intended not to demonstrate and direct power - but to distract from the real power of the land.

Bang! One magic bullet. You buy that story, and they already had you in the Matrix.

What? (2, Funny)

fyngyrz (762201) | more than 4 years ago | (#29816231)

...a portion of the voting process is corrupt? Who would have thought that!

Re:What? (5, Insightful)

buswolley (591500) | more than 4 years ago | (#29816315)

To make light of this does not do justice. This is potentially huge news.

Re:What? (5, Insightful)

commodore64_love (1445365) | more than 4 years ago | (#29816457)

Anyone with half a brain realized converting from dumb paper ballots to "smart" electronic machines that could manipulate the votes was a Bad Idea (tm). Unfortunately that disqualifies most of our state politicians.

Re:What? (5, Insightful)

stinerman (812158) | more than 4 years ago | (#29816495)

As my Software Engineering instructor said...

Someone was thinking that voting was primarily a counting problem and had the idea that computers were excellent at counting, so computers would be excellent at registering votes.

Of course, voting is minimally about counting, and from what we've seen even these clowns couldn't do that right.

Re:What? (1)

HiThere (15173) | more than 4 years ago | (#29816639)

Bad idea? What, making it so that those who paid them money to vote the way they wanted could ensure that they continued to be elected was a bad idea?

I haven't been able to make myself believe that this choice was made in innocence. Fixing elections has happened on a small scale for a long time. This is merely the modernizing of that "fine old tradition".

Re:What? (2, Insightful)

Anonymous Coward | more than 4 years ago | (#29816645)

But the media will ignore it. Remember last year when voting machines were found to have *actually* lost votes in an Ohio election? No? That was an even bigger story, and the media ignored that as well...

Never underestimate the ability of the media in this country to ignore important news in favor of the latest distraction.

Re:What? (1)

TheRealMindChild (743925) | more than 4 years ago | (#29816651)

Not according to Mr. ' or '1'='1

Re:What? (0)

Anonymous Coward | more than 4 years ago | (#29816825)

You're assuming voting makes a difference.

Re:What? (1)

RichardJenkins (1362463) | more than 4 years ago | (#29816353)

Never ascribe to corruption what you can ascribe to malicious incompetence.

Re:What? (5, Funny)

Idefix97 (725474) | more than 4 years ago | (#29816377)

I for one welcome our Afghan overlords!

Treason? (1)

Phantom of the Opera (1867) | more than 4 years ago | (#29816633)

Time to call on Article 3 if this really is an attempt to influence the vote?

Re:Treason? (1)

Martin Blank (154261) | more than 4 years ago | (#29817069)

"Treason against the United States, shall consist only in levying war against them, or in adhering to their enemies, giving them aid and comfort."

How would you propose to twist this definition to fit your idea?

To be honest... (5, Insightful)

Darkness404 (1287218) | more than 4 years ago | (#29816251)

To be honest shouldn't -any- code used to tally votes be released in the public domain for any US citizen?

Re:To be honest... (5, Funny)

selven (1556643) | more than 4 years ago | (#29816317)

No, we need to have security! How the heck can a system be secure if everyone can see how it works and therefore how to crack it?! This stuff is simply too important to be left in the hands of the average citizen.

Re:To be honest... (1, Redundant)

sakdoctor (1087155) | more than 4 years ago | (#29816399)

Is that a joke, a troll, or insurmountable ignorance? I really can't tell.

Given the total incompetence to date, of any company implementing a voting system, I think open source is the only way it's going to get done right.
If properly implemented, the voting system can be as secure as the crypto primitives it's built upon.

you're wrong. (2, Insightful)

Anne Honime (828246) | more than 4 years ago | (#29816463)

crypto primitives relies on a strong link between 2 ends. voting explicitly implies discarding the identity of the voter, hence the whole link thing breaks. If you maintain the link, you know who voted for whom : that's not a good idea at all to preserve democracy. If you discard the link, you have *no way on earth* to actually prove something hasn't been rigged somewhere.

Re:you're wrong. (3, Insightful)

jonbryce (703250) | more than 4 years ago | (#29816509)

How about this?

You select your candidate / party / referendum option on screen.
The computer prints out a ballot paper and records your vote.
You put the ballot paper in the ballot box.
The returning officer selects a sample of ballot boxes at random and checks them to the computer.

Re:you're wrong. (5, Insightful)

Anne Honime (828246) | more than 4 years ago | (#29816601)

Maybe it's a cultural thing, but I've never seen the necessity to complicate things any further than paper, pencil, double physical count. Cheap, no machines involved, fast. On a national election down here (about 15 million voters), voting booths close at 6pm and results are known nation wide right on time to open the 8pm evening news.

Re:you're wrong. (1)

jonbryce (703250) | more than 4 years ago | (#29816767)

That's what we have in Britain, but the polls close at 10pm (or 9pm for local elections) and you generally don't know the result until early the following morning, unless you live in Sunderland South.

Re:you're wrong. (1)

commodore64_love (1445365) | more than 4 years ago | (#29816801)

Our polls are typically open until 8 p.m. California time, which adjusting for time differences == 11 p.m. Washington D.C. time. So the results wouldn't be known until early morning (~1 a.m.) the next day.

Americans won't stand for it. They want to know NOW damnit, not tomorrow.

Of course in the old days, elections used to last much longer. In the 1800 election the result was not known until almost four months later (the Congress chose Jefferson(D) over Adams(F)). I think if our ancestors could wait that long, then WE could wait a few days.

Re:you're wrong. (1)

selven (1556643) | more than 4 years ago | (#29816891)

Electronic voting has the (yet unrealized since it interferes with the corporate vision of electronic voting as a profit powerhouse) potential to be much cheaper and gives the results in 0 minutes rather than 120.

Re:you're wrong. (1)

Anne Honime (828246) | more than 4 years ago | (#29817193)

Quicker : maybe. But most of the times, out the voting booth polls are accurate enough to feed the media frenzy until the real results are known.

Cheaper : I really, really doubt it since to properly secure any e-voting process, you need to back it up on a paper trail of sort, which consumes as much ressources as a full paper vote. You still need officials, party representatives, administrative clercks, rooms, etc. etc.

Finally, what's 120 min compared to 4 years of office time, really ?

Re:you're wrong. (2, Insightful)

Idiomatick (976696) | more than 4 years ago | (#29816925)

The US is spread across multiple time zones so it matters even less. Plus even if it was an hour faster God keep your pants on people. This is a big deal, I'd be fine with a day of wait if the results are accurate.

Re:you're wrong. (0)

Anonymous Coward | more than 4 years ago | (#29816605)

Good start--but that only checks that the computer can remember to lie correctly. How do you check that your vote was added into the final count?

Re:you're wrong. (1)

jonbryce (703250) | more than 4 years ago | (#29816731)

You have a list of results by ballot box adding up to the total result for the election.

You select some of these ballot boxes and check that the figures on the screen are the same as what's in the box.

Optionally, you let the candidates chose a selection of boxes they want to have checked - they can pick ones where they think there might be problems or they got less votes than they expected.

There's somebody wrong on the internet... (1)

sakdoctor (1087155) | more than 4 years ago | (#29816607)

And it's you!
There are voting protocols that simultaneously allow:

Verification of the voter by the voting authority
Prevention of double (multiple) voting
Anonymity for the voter to the voting authority
Verification of the voters own vote

Begin your research with David Chaum's blind signature.

Re:you're wrong. (0)

Anonymous Coward | more than 4 years ago | (#29817137)

Right. And that doesn't really change with electronic voting. At some point you have to trust the system and the people running it.

If, at the end of the night, the poll workers dump the pen and paper ballots in the trash and replace them with fakes, you're just as bad off as if they rigged electronic machines.

I think too many people on slashdot are being paranoid just for the sake of being paranoid.

Re:To be honest... (1)

wampus (1932) | more than 4 years ago | (#29816507)

Yeah, because open source software is always perfect.

Flash forward 4 years and 3 forks later, gVote and kVote are largely complete with a few annoying bugs to work around. The two produce incompatible results due to differences in opinion, and the only guy with admin rights to the gVote svn repository had a shitfit and hasn't been reachable for a month.

Re:To be honest... (1)

mftb (1522365) | more than 4 years ago | (#29816597)

Develop it however the hell you like, pay people if necessary, just release the source code when you're done to prove you did it right.

Re:To be honest... (1)

commodore64_love (1445365) | more than 4 years ago | (#29816869)

Actually you'll find him "swimming with the fishes" at the bottom of New York Harbor. Gotta love that NYC political engine.

Re:To be honest... (1)

Idiomatick (976696) | more than 4 years ago | (#29816961)

Wrong. Have companies fix it sure but with a few hundred thousand extra eyes on the code than problems intentional or accidental are much more likely to get picked up.

Re:To be honest... (0)

Anonymous Coward | more than 4 years ago | (#29816561)

it is sarcasm.
sarcasm |särkazm|
noun
the use of irony to mock or convey contempt : his voice, hardened by sarcasm, could not hide his resentment. See note at wit .
ORIGIN mid 16th cent.: from French sarcasme, or via late Latin from late Greek sarkasmos, from Greek sarkazein ‘tear flesh,’ in late Greek ‘gnash the teeth, speak bitterly’ (from sarx, sark- ‘flesh’ ).

Re:To be honest... (0)

Anonymous Coward | more than 4 years ago | (#29817179)

A simple WHOOSH should suffice.

Re:To be honest... (2, Interesting)

DarkOx (621550) | more than 4 years ago | (#29816407)

Are you being sarcastic? A voting system takes a very finite set of possible inputs, it needs to only give some very specific outputs. I really think there are few excuses for not being able to develop a secure system, secure enough to be totally open despite the value of being able to crack it. Its not like our society can't afford to make the required investment in such a system given the other things our government is spending money doing.

If it can't be done then electronic voting should not be used at all because it can't be trust worthy without sunlight; and if the argument is it would be broken if exposed to sunlight than I want to know how you know its not cracked/broken already?

Re:To be honest... (1)

commodore64_love (1445365) | more than 4 years ago | (#29816521)

Have you looked around? Many state governments are on the verge of bankruptcy and don't have the funds necessary to spend on e-voting upgrades. IMHO they should just go back to paper ballots. The old 1990s-era scantron machines seemed to work quite well - rapid counting ability, plus having a physical record that could be counted by hand for later verification. Oh and cheap.

Oh and before you say the Federal government should pay - (1) They don't have any money either; they just borrow it from China and I think we need to stop doing that. (2) Read amendment 10 - states control elections because we're a confederation just like the EU.

Re:To be honest... (1)

Zencyde (850968) | more than 4 years ago | (#29816737)

Read amendment 10 - states control elections because we're a confederation just like the EU.

You know, I think most Americans seem to miss this subtlety of our government.

Re:To be honest... (1)

pearl298 (1585049) | more than 4 years ago | (#29816523)

17th amendment is direct election of senators!

BAH HUMBUG!

Re:To be honest... (2, Insightful)

commodore64_love (1445365) | more than 4 years ago | (#29816715)

Which means if the 17th was repealed, Senators would be elected by the State Governments, and the States could use the power of the Senate to kick-around the U.S. government when it tries to abuse its power...... similar to how the UK, France, Germany and other members use their power to kick-around the EU government and keep it restrained.

Example:

California, Washington, and a bunch of other states legalize marijuana for use by doctors. President Dickhead ignores the laws and arrests CA, WA, and other citizens. California and the other states direct their Senators to censure the president and block all of his legislation from passing. He backs down. The States need to have the power to keep the central government from overreaching.

Re:To be honest... (1)

mftb (1522365) | more than 4 years ago | (#29816629)

It terrifies me that so many people are replying to this as if it's a serious comment.
Slashdot, I am disappointed.

So... (4, Funny)

w0mprat (1317953) | more than 4 years ago | (#29816253)

grep and find who should have won the election?

Was going to post a pseudo-witty comment but... (2, Informative)

RichardJenkins (1362463) | more than 4 years ago | (#29816267)

"Well you may throw your rock and hide your hand
Workin' in the dark against your fellow man
But as sure as God made black and white
What's down in the dark will be brought to the light"

    -Johnny Cash

Quote taken from the index of http://studysequoia.wikispaces.com/ [wikispaces.com] . Wishful thinking, but how apt.

Deprecate strings (1)

cellurl (906920) | more than 4 years ago | (#29816271)

I warned my previous company about "possible use of strings" for just such purpose. You might as well deprecate that puppy!

Re:Deprecate strings (0)

Anonymous Coward | more than 4 years ago | (#29816829)

Why would we deprecate strings? It's a great program and this article proves it.

Re:Deprecate strings (1)

cellurl (906920) | more than 4 years ago | (#29816921)

I guess what I meant was
strings file | egrep -replace crypt($1)
Hell, I don't know. Some way to encrypt the strings... (deceptive innovation needed...)

Open Source (5, Insightful)

bl4nk (607569) | more than 4 years ago | (#29816279)

I really can't see why we can't have a government-commissioned open-source system developed and mandated for use for public voting functions.

I absolutely hate the thought of my vote being inputted in to a closed magical-mystery box.

Re:Open Source (1, Troll)

uberjack (1311219) | more than 4 years ago | (#29816411)

I really can't see why we can't have a government-commissioned open-source system developed and mandated for use for public voting functions.

You don't? Even after the last administration?

Re:Open Source (4, Insightful)

wizardforce (1005805) | more than 4 years ago | (#29816541)

The last administration isn't around any more. This administration could set its self apart from the old one by requiring all voting system code be open-sourced. But I agree; the chances of that happening are not any better than under the old overlord.

Re:Open Source (1)

Entropius (188861) | more than 4 years ago | (#29816435)

... because that would be socialistic.

(or so sayeth the GOP)

Re:Open Source (2, Insightful)

commodore64_love (1445365) | more than 4 years ago | (#29816581)

Yeah but MY state is run by the Democrats (and has been for almost 60 years). What excuse do they have for not developing open-source voting for Maryland? Oh that's right... same as the GOP... holding onto the monopoly.

Re:Open Source (0)

Anonymous Coward | more than 4 years ago | (#29816551)

Theories:

1) Some people don't rust anything not provided by an expensive vendor.
2) There's a belief in general that people will find security holes by examining the source and use it to influence the election.
3) *conspiracy hat on* Maybe someone benefits from being the only one to know about the "special" features hidden in the closed source.

What I personally feel should be required in all voting software (closed or open) is a vote receipt. The receipt should include date & time, a unique identifier that can't be tied to an individual (but can be tied to your receipt), and your votes.

Then the detailed election results should be published on the web. Individuals could verify their vote counted by checking their receipt against the published results.

There is still, of course, a chance of fraud by inserting extra votes, but too much of that could be detected (5000 votes in a district with 4200 registered voters).

People are still using Nedit? (0)

Anonymous Coward | more than 4 years ago | (#29816307)

WTF?

Re:People are still using Nedit? (0)

Anonymous Coward | more than 4 years ago | (#29816701)

The primary investigator on the matter felt that it was a good editor for large files; it says so on the wiki.

Re:People are still using Nedit? (1)

HiThere (15173) | more than 4 years ago | (#29816743)

What's wrong with NEdit? It's true I also use gedit, kedit, and medit, but sometimes nedit is the right tool. (I also use kate, and various other editors. Even vi(m). Not EMACS because I dislike their file handling system, but that's a purely personal taste.

When you're doing pattern matching in an editor (well, certain kinds of pattern matchin) NEdit is the right choice. The others will allow to to eventually craft grammars to handle the patterns, but NEdit lets you build them en-passant.

What? (1)

SilverHatHacker (1381259) | more than 4 years ago | (#29816313)

Appears to control or at least influence the logical flow of the election

What exactly does that mean?

Re:What? (4, Informative)

whiplashx (837931) | more than 4 years ago | (#29816349)

Appears to control or at least influence the logical flow of the election

What exactly does that mean?

Means they suspect that the code for the actually tallying and evaluating ballots is in SQL. It is suggested that this violates the law for being dynamic and interpreted.

Who uses them? (1)

JumperCable (673155) | more than 4 years ago | (#29816383)

What machines & models does Sequoia sell?

While redacting... (1)

Anne Honime (828246) | more than 4 years ago | (#29816389)

... to the point of vandalism is a petty crime for an already evil company, using SQL stored procedures to do the tally in a voting machine certainly reaches the 7th inner circle of hell.

Re:While redacting... (3, Insightful)

MichaelSmith (789609) | more than 4 years ago | (#29816475)


votes[candidate]++;

Can someone RTFA for us (-1, Flamebait)

Anonymous Coward | more than 4 years ago | (#29816413)

dailykos links are almost as scary as goatsex.

Hyperbole much (3, Interesting)

icebike (68054) | more than 4 years ago | (#29816443)

"code that appears to control or at least influence the logical flow of the election"

Which means the uneducated inspecting strings saw things like:

BAL_ID null
-- 1 - show candidate on ballot (default)
-- 0 - remove candidate from the ballot
-- 2 - don't show candidate on the ballot, but reserve space for her on the layout

All of which is perfectly benign when voters are not eligible to vote for certain candidates for any number of reasons.

The more you read at the ultimate site more you realize the people digging thru this garbage know nothing about what they are reading, and not much about programming either.

Just because you know how to run grep or strings does not mean you can use the data it reveals.

Re:Hyperbole much (1, Interesting)

Anne Honime (828246) | more than 4 years ago | (#29816485)

All of which is perfectly benign when voters are not eligible to vote for certain candidates for any number of reasons.

Like what ?... Let me guess : no need to show someone that's not supposed to win, for instance ?

Re:Hyperbole much (2, Insightful)

icebike (68054) | more than 4 years ago | (#29816559)

No need to show someone for whom the voter is not eligible to for.

(I assume English is a second language for you, because the statement was perfectly clear the first time).

Some states have closed primaries. Democrats only get to vote for democrats, republicans for republicans.

Some people are not voting in their proper polling place and can't vote for the local candidates (because they don't live there).

I could go on, but I suspect you will have difficulty reading much more thru your tin foil hat.

Re:Hyperbole much (2, Insightful)

amicusNYCL (1538833) | more than 4 years ago | (#29816673)

Does it matter to you at all that the presence of this logic in interpreted code (SQL) is a direct violation of federal law?

Re:Hyperbole much (-1, Troll)

icebike (68054) | more than 4 years ago | (#29816935)

In your opinion its a violation.

But your opinion seems based on scary capital letters.

This is a job for programmers, not lawyers. Just because code is stored in a database does not mean it is changeable on the fly.

Re:Hyperbole much (4, Insightful)

ijakings (982830) | more than 4 years ago | (#29817119)

It doesnt matter if its changeable on the fly or not. The law is No interpreted code. Guess what they found? Interpreted code. Ergo, the law has been broken. How much more simply can this be put, that you would get it?

Re:Hyperbole much (1)

HiThere (15173) | more than 4 years ago | (#29816879)

It could well be quite reasonable and still be illegal.

In many states in a primary election you show the voters only the candidates of their own party + non-partisan offices. That's one valid reason. Doesn't mean that doing it that way is legal.

An interesting question might be "How easy is it to replace those stored procedures with others on election day?". This is the kind of question that has frequently been raised and which I have never heard satisfactory answer to. Only answers that apply to some particular precinct. And I've heard allegations about other precincts that are very different, but not, of course, from anyone who was directly involved.

Re:Hyperbole much (0)

Anonymous Coward | more than 4 years ago | (#29817035)

That is not sufficient. My local voting counters (FL, who'd have thunk it), physically lose voting machines for several months and lose all the votes. Great new if you are extreme right cons, not so good if you vote otherwise.

Have you ever voted in the primaries? (0)

Anonymous Coward | more than 4 years ago | (#29817133)

> Like what ?... Let me guess : no need to show someone that's not supposed to win, for instance ?

There are closed primaries where one cannot vote in the primary of the other party. E.G. Registered Democrats can't vote in closed Republican primaries and vice versa. Generally, registered independents can vote in one primary or the other, but not both, but state laws vary.

Re:Hyperbole much (1)

Senjutsu (614542) | more than 4 years ago | (#29816549)

I agree, the summary and quoted code don't shed any light on the issue, but the big, and possibly illegal, problem is that the databases are heavily self-modifying. Random example:

/* Table : CONTEST                                              */
/* Description: Election specific contest. There could be multiple
            contests per office differentiated by party, Precinct,
            and Gender.  There are also contests uhat are not for an
            office such as System Contest (e.g Straight Party) and
            Proposals. */
begin
    Exec("
    create table CONTEST
        -- identifer of contest
        CONTEST_ID           T_GLOBAL_ID          identity
        -- identifer of political subdivision
    ,    PSD_ID               T_GLOBAL_ID          null
        --     0 = all, 1=exclude, 2=include
        --    1 = Some voters can vote ONLY for this office
        --    2 =Some voters in the psd cannot vote for the office
    ,    ELIGIBILITY         !numeric(1)           null default 0
        -- if office is precinct level, identifier of contest's precinct
    ,    PRECINCT_ID          T_GLOBAL_ID          null
        -- identifier of proposal in contest
    ,    PROPOSAL_ID          T_GLOBAL_ID          null
        -- Combined from office/proposal name and modifier such as
        --  precinct name or gender
    ,    NAME                 T_STANDARD_NAME      null
        -- If contest is NOT a proposal: reference to the office at
        -- the source of this contest

etc. The Program seems to have created and destroyed tables, columns, views, etc, on the fly, an incredibly odd practice for data that is meant to be audited.

Re:Hyperbole much (1)

thePowerOfGrayskull (905905) | more than 4 years ago | (#29816817)

I think that's part of the framework used to set up a given ballot, based on the way it looks. In other words - it's used to generate the tables for a specific election, and is not likely dynamically executing during the election itself.

Re:Hyperbole much (1)

icebike (68054) | more than 4 years ago | (#29816849)

That it creates table views on the fly does not make it un-audit-able.

Table views on the fly will ALWAYS come out the same as long as the inputs are the same. All that is required is that the data that DRIVES the selection and the content of the tables be locked during the election, and till after audit.

Note: For the record, I personally believe strongly in the paper ballot. But I also know paper ballot boxes get stuffed all the time. Karzi?

But reading comments out of code (and what you have pasted is clearly comments or aids to setting up an election, not actual election presentation code) is hardly a smoking gun. (You should see some of the comments in my code!!!)

You've posted nothing more than a description of data elements. A data dictionary with explanatory text.

You've mistaken documentation for executable code.

Nothing you've posted supports your assertions.

There is no possible way to write a general election package that will be configurable for a wide variety of elections and STILL have it all hard coded. It has to be data driven. As long as you can lock both the general code and the data during the election.

Re:Hyperbole much (0)

Anonymous Coward | more than 4 years ago | (#29816555)

Actually, the contents of the code may be the least of the significant things this reveals. You are correct that the code above may be perfectly valid, but the real questions are thus:
    1) Does the use of SQL code to tally votes violate FEC rules, which would mean the entire voting system becomes a giant paperweight.
    2) Did Sequoia violate California law by simply damaging the data file rather than redacting it for legitimate trade secrets, in which case they can be sued to hand over the undamaged file and possible by the State as well. Not to mention that the SQL code may well be the trade secrets that they were trying to protect, which leads to questions about their competence in other ways...
    3) And finally, what does the actual code do, and are there any problems with it.

Note that the function of the code is the last part of this. It may get a lot of the attention, but in many ways it may well be an afterthought when all is said and done...

Re:Hyperbole much (1)

icebike (68054) | more than 4 years ago | (#29816883)

I think Number 2 here is the big ticket item.

SQL code, if locked during the election, is no different than a hard coded program. Don't mistake the container for the content.

Re:Hyperbole much (1)

GryMor (88799) | more than 4 years ago | (#29816611)

Yah, that looks like a normal domain table along with comments as to the meanings of field values... Since the ballot design is part of the database, I would be surprised not to see those.

Of course, with 800mb to go through, it's possible something less normal is in there.

Re:Hyperbole much (1)

MrMista_B (891430) | more than 4 years ago | (#29816687)

Did you examine the code, or are you making things up?

Re:Hyperbole much (0)

Anonymous Coward | more than 4 years ago | (#29816735)

Not really. RTFA.

To quote the next bit:

"It violates the federal rulebook on voting systems on several levels: the rules require that code be hash-checked to prove authenticity in the field for obvious reasons. If the real working code is buried in with the data, no such hash-checks are possible. The federal rulebook is also clear that code can't be interpreted, apparently to avoid modification "in the field" (generally county or city election offices)."

Re:Hyperbole much (1)

icebike (68054) | more than 4 years ago | (#29817007)

Yes I did read that.

I took issue with the second sentence in your quote. That sentence is simply FLAT WRONG, and invalidates the writers point, and pretty much everything else they have to say.

Code stored in a table can be hash checked. The table can be locked. The table can be hash checked.

Interpreted has no precise meaning in computer science, or in a court of law.

Re:Hyperbole much (5, Insightful)

Minwee (522556) | more than 4 years ago | (#29816741)

The more you read at the ultimate site more you realize the people digging thru this garbage know nothing about what they are reading, and not much about programming either.

You could have kept reading, you know.

See also the 2002 edition of the "Voluntary Voting System Guide [eac.gov] " published by the Federal Election Commission especially this bit in Volume 1:

Self-modifying, dynamically loaded, or interpreted code is prohibited [...]

The FEC standards say "prohibited". They do not say "Any self-modifying, dynamically loaded or interpreted code is only okay if someone who is a really good programmer says it is" or "Interpreted code is okey dokey as long as it isn't called all that often". If the database itself contains application code which modifies the database, then that's a problem. It doesn't matter what kind of code it is or how benign you think it is, it should not be there at all.

If you would like to share your educated opinion where it matters, feel free to comment in the wiki [wikispaces.com] . That's what it's there for.

Re:Hyperbole much (0)

Anonymous Coward | more than 4 years ago | (#29816813)

Otr it could just be an install script. Tables don't come out of thin air you know....

Re:Hyperbole much (2, Interesting)

Anonymous Coward | more than 4 years ago | (#29816757)

They obviously don't understand much because this database is not corrupt. I just loaded it in a SQL Server database fine. SQL Server 2005.

There are 88 tables in the database.

FCC violation = revote? (1, Insightful)

Anonymous Coward | more than 4 years ago | (#29816489)

If this code really is in violation of FCC regulations, shouldn't that invalidate all elections that the code was used in?

Re:FCC violation = revote? (1)

sco08y (615665) | more than 4 years ago | (#29816625)

If the system favored one candidate over another, you'd want a revote, yes. But the voting system is never perfect and just about every close vote is contested. So, given the expense of elections, I'd argue against any revotes if the only problem is flawed code, and not an actual bias for one candidate / party or another.

Too early to start the scandalising (3, Insightful)

SlidingGlassDoor (1660913) | more than 4 years ago | (#29816587)

They may have violated the regulations, but it is still not clear that anything they did would have had any real impact. Best to wait and see what the analysis reveals.

Why does it have to be secrative? (1)

cosm (1072588) | more than 4 years ago | (#29816595)

It just seems so back-asswards that the source-code & logic that sifts through millions of lines of data to determine our president is kept secret. What is the secret? There should not be anything to hide, therefore it should all be available, otherwise the machines are completely hypocritical to democratic transparency.

If it is the companies intellectual property that concerns the government, well perhaps there should be a clause in the contract that states contractors must provide ALL source code if they win the bid. It would seem a system like that would bolster confidence in the system, and eliminate all the negative machine-fraud issues, while allowing multitudes of individuals to find any vulnerabilities or fallibilities in system, instead of a select few of individuals.

Re:Why does it have to be secrative? (1)

cosm (1072588) | more than 4 years ago | (#29816615)

*secretive. whoops.

Re:Why does it have to be secrative? (0)

Anonymous Coward | more than 4 years ago | (#29816705)

Obviously, if the source code for voting machines is made public, then the communists have won.

Addendum: (1)

cosm (1072588) | more than 4 years ago | (#29816885)

"if the source code for voting machines is made public"

Iranians may have definative proof. /TinFoilHat

Canadian Elections - KISS (2, Interesting)

Strider- (39683) | more than 4 years ago | (#29816659)

I'll stick to voting with pencil, paper, and hand counted ballots. Of course, we in Canada have the advantage that binding referendums are unconstitutional (It's violation of parliamentary supremacy). Thus all we vote for is our representative. Of course this seems to be happening every 18 months, but with four political parties, this tends to happen. :) Oh, and for those who are wondering, each ballot is hand counted, in triplicate, with scrutineers from each of the candidates on said ballot in attendance. It takes about 4 or 5 hours to count 10 000 000 ballots, and recounts rarely change the results by more than 1 or 2 votes per district.

Re:Canadian Elections - KISS (1)

rueger (210566) | more than 4 years ago | (#29816763)

Move to Canada: No DMCA (Yet), no software patents, no bullshit.

That last one may be pushing things just a bit..

FWIW, municipal elections seem to favour paper ballots followed by scanners for counting. To my mind that offers a nice balance of speed and accuracy in counting, with nice paper backups in case there are questions.

Wikileaks? (1)

s0litaire (1205168) | more than 4 years ago | (#29816679)

Wonder why this has not been released to Wikileaks yet?.

This sort of stuff would go down well there...

(evidence of possible vote tampering and all that jazz)

This is cool and all, but... (3, Insightful)

thePowerOfGrayskull (905905) | more than 4 years ago | (#29816785)

... This is cool and all but.. BAL_ID null -- 1 - show candidate on ballot (default) -- 0 - remove candidate from the ballot -- 2 - don't show candidate on the ballot, but reserve space for -- her on the layout , IS_ON_BALLOT T_P_BOOL null -- Code used by State reports , STATE_CODE char(7) null -- Reference to AUDIO; clip used to describe candidate header -- in English , AUDIO_ID T_GLOBAL_ID null -- For grid style: which slate the candidate goes into , SLATE int null , constraint PK_CANDIDATE primary key clustered (CANDIDATE_ID) -- create indexes on table CANDIDATE Exec(" create index FK_CANDIDATE_AUDIO_FK on CANDIDATE (AUDIO_ID) Exec(" create index FK_CANDIDATE_CONTEST_FK on CANDIDATE (CONTEST_ID) If this is the worst of the "business logic" that "controls or influences the flow" of elections, I think they're in for a disappointing read. Using a value in a database isn't considered "business logic" hte last I checked.

* t violates the federal rulebook on voting systems on several levels: the rules require that code be hash-checked to prove authenticity in the field for obvious reasons. If the real working code is buried in with the data, no such hash-checks are possible.

Except that so far, I'm seeing table construction and table layouts. I guess that's technically code - as any SQL technically is - but a good case can be made to say that it's just the database structure. Which can, of course, be subjected to a hash check.

The federal rulebook is also clear that code can't be interpreted, apparently to avoid modification "in the field" (generally county or city election offices).

Well shit, in that case, they can't use SQL at all. Since a database is a fairly reasonable way to track the candidate data, display strings, etc... I'm pretty sure that this wasn't the intent of the law. (No, IANAL, just applying common sense).

I do think it's great and long overdue that this information is now available. But I also think they'll want to finish the analysis and get some people who understand what they're looking at, before they start making claims. There may be validity to them - but so far it's tenuous if there at all. (Full disclosure: I'd love to electronic voting either a) shut down or preferably b) administered in a 100% transparent fashion... so I'm not making this post in anybody's defense)

Re:This is cool and all, but... (5, Insightful)

Senjutsu (614542) | more than 4 years ago | (#29816873)

Except that so far, I'm seeing table construction and table layouts. I guess that's technically code - as any SQL technically is - but a good case can be made to say that it's just the database structure. Which can, of course, be subjected to a hash check.

Except that the DDL isn't in a bunch of scripts that are building the schema, the schema exists in a bunch of strings that are concatenated together in stored procedures with some arguments to the procs munged in, and passed to Exec statements when the stored procedures are run.

That's not normal table building, that's an unabashedly self-modifying database.

Re:This is cool and all, but... (3, Interesting)

itwerx (165526) | more than 4 years ago | (#29817021)

"that's an unabashedly self-modifying database" Not to mention that ID 15 -> 21 re-mapping in one of the excerpts. Why would an ID of any kind ever need to be remapped on the fly like that? Heck, I used to do a little SQL programming back in the day, I might just have to dig into it a bit myself! :)

All code is interpreted code (1)

davidwr (791652) | more than 4 years ago | (#29817067)

All code is interpreted by something. That something might be hardware, microcode, firmware, a middle layer, or even a whole VM, but all code is interpreted.

Saying code is or is not interpreted is simply where you draw the line. Even "native" code on most processors these is really interpreted by the microcode or something similar.

Take a Page from CT (1)

JackSpratts (660957) | more than 4 years ago | (#29817103)

here in connecticut we simply check off our choice(s) on a paper ballot and insert them for machine scans which tally the votes electronically for rapid post election reporting. since the voter actually voted on paper, and since the paper record remains in the machine magazine until opened under multi-party supervision, it's at least as safe as regular ballots while satisfying legal requirements under the voting act. i miss the hulking and heavy curtain lever machines i grew with (and now own for posterity) but this seems like a good and workable compromise from secretary of state susan bysiewicz.

btw that site is serving the 150 meg zip files rapidly in spite of the /. effect. i got mine in just a few minutes. kudos for the serious hosting.

- js.

Another case of failed redaction! (3, Informative)

Anonymous Coward | more than 4 years ago | (#29817155)

The file they have is simply a SQL Server backup.
It takes a few minutes to restore using SQL 2005 Express + SSMSE
Nothing has been destroyed or sabotaged.

but...

When the database is restored you get the tables with the data in.
All the stored procedures have been deleted. Or so Seqoia thought :)

As the use of strings on the backup file demonstrates, the text of the sp's are still there.
There are various database tools (Lumigent was one from memory) that allow looking back through the database log and, I expect, returning the database to a previous state.

Just when companies had got the hang of cleaning up after track changes they move on to SQL database backups :)

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>