Neutered random number generator let man rig million dollar lotteries
arstechnica.com
arstechnica.com
[1] http://www.calottery.com/happenings/lottery-tv/draw-videos
Wouldn't hurt to open source it too. It's not a silver bullet as you still need to ensure the build is stable and the final product is actually running that same code, but at least it gives the public something to eyeball. That plus separation of duties (develop/validate/deploy) delegated to separate people is as good as it gets. To get around that you'd need collusion across all the groups and if you've got that, you're totally screwed anyway.
> Interestingly, one of the techniques used by the banks to dupe the rating agencies [before the 2008 economic crisis] was to reverse-engineer the computer models the agencies used to devise their ratings. Reverse-engineering was facilitated by the fact that the rating agencies made their computer models public. Thus the banks could trick them starting from answers and then working backward to get the intended result.
It would seem open-source is not always advisable when it comes to sensitive information.
For behavior models like risk ratings sure. A similar example is threat and fraud detection; if scammers know what you're checking it'd be easier to work around.
In this case though the output is supposed to be a "fair" random number. If knowing how it's generated allows you to be able to predetermine it, i.e. exactly what the offender in this case did, then the code itself is bad and public eyeballs might find it.
You can go more clever and deeper with this sort of attack, like in this story: https://www.quora.com/What-is-a-coders-worst-nightmare/answe...
Once the FIA started demanding access to ECU's, programmers learned their system and figured out ways to produce faked checksums before the race, so that they matched with the post-race checksum. That is, after the traction control and ABS programs self-deleted on the parade lap post-race.
This was common knowledge in the paddock, but no one could prove anything. Even then, everyone was doing it so the field eventually became level. Cheating and "pushing the rules" has a very long and storied past in F1. If you're not caught cheating every few years, most would assume you're not trying hard enough to win.
Edit: Here's a link to a Reddit thread about McLaren's fiddle break. It was a dual braking setup that allowed the driver to only apply the rear brakes. Photographers noticed that sometimes only the rear brakes glowed red instead of all brakes glowing red. Many accused them of using traction control and ABS. In reality, it was just an independent braking circuit (which was illegal). https://www.reddit.com/r/formula1/comments/1ux791/an_old_f1_...
Everything I'd read on the topic - until now - had said they had a hidden mention item - "Option 13" - that managed the (illegal) traction control, and when confronted with it, they said it was too difficult to remove, but they'd never used it. (Honest, guv!)
I thought people who would be associated with the lottery association were disqualified from participating?
> Tipton recruited the friend to claim the prize on his behalf by telling the person that he believed his marriage was failing and he wanted to keep the money secret from his wife in case of a divorce, according to the criminal complaint.
> [In another] instance, Tipton bought the ticket while on a trip to Oklahoma with another man who isn't named in the complaint, authorities allege. The justice of the peace asked the other man to recruit a third person to claim the ticket, once again using a story about a looming divorce. Oklahoma lottery records show that prize was paid out to Kyle Conn, the owner of a Texas construction company. The criminal complaint claims Tipton later collected a share of the money.
Why do these machine have a concept of time and date in the first place?
This is one of the downsides of using a commodity OS for absolutely everything, you end up with edge cases where one size fits nobody.
Throw in that the people commissioning the systems are not computer scientists and/or applied mathematicians and you end up with this kind of thing.
I'm cynical, if I had to design a machine to draw lottery numbers it would look like the old style rolling tumbler machines (which is what we use in the UK for the lottery[1]).
If I needed to handle lots and lots of draws I'd keep the physical machines and use computer vision to handle reading the balls with a completely separate system recording the draw as well (so I have an audit trail) EDIT: In fact thinking about it I'd have two CV systems written independently by different organisations/teams with any disagreement halting the draw and raising a flag.
Setting it up so that the person who writes the CV code has no access to the physical machine would be straightforward enough and isolating the recording system from the rest as well.
Essentially no one person in the loop should have access to all the components otherwise this stuff probably will happen.
[1] https://en.wikipedia.org/wiki/National_Lottery_%28United_Kin...
One security feature it has it that each ball has it's unique RFID tag embedded inside, and the machine checks the tag on ball entry, and only allows a ball in if certain conditions are met. And I think that it can use that RFID tag to also read the output (so no CV is needed).
Some use a ball set only once, they throw it away after a run and use a new one on each draw, and this RFID mechanism can also enforce that (disallow previously used ids).
Even if someone messes with the RFID tags, the (transparent) machine and the output is still visually checked by a commission on each run.
Of course, when this information became public knowledge, immediately some conspiracy theory emerged that the RFID tag can be used to allow only "favored" balls to exit the machine as winners (which is not possible, only entry can be disallowed, not exit).
A hardware TRNG's bit stream (plus bias filtering, if necessary) could be wired to flip-flop gates (shift registers) to output lottery numbers, with a component count in the low hundreds at most, no software to compromise, and off-the-shelf, mostly passive commodity components.
In short, readily auditable, easily recreated. You could build the system out of parts ordered from multiple manufacturers/OEMs in front of multiple auditors, seal it in place, and never touch it again. You could inspect (destructively and non-destructively) the components directly to verify their implementation.
However, we live in a world where the TSA pays hundreds of thousands of dollars for an application that flips a coin, so the fact that state lotteries are using complete operating systems on a standard PC should be unsurprising.
Apparently if "never touch it again" was an option, this wouldn't have happened either. This guy had physical access to the machine.
And since that's the case, the hardware you mention wouldn't have helped either.
They key escrow couldn't possibly become compromised, could it?
Which is also why they caught him.
It could be dumbness, but it's also a common trait in high IQ people -- I've read stories and know personally lot of them who end up badly, similarly or otherwise...
Still, randomness being random, one day should happen that there are too much winers some years. Else, maybe the cheaters are on the other side of the game.