[ Post New Message | Post Reply to this One | Send Private Email to Ben Jos Walbeehm | Help ]

Response to Talking to MAME Dev

from Ben Jos Walbeehm (walbeehm@walbeehm.com)
Mark: Do you still want me to see if I can hack version 2 of MAME35TG as well?

Chad/Mark: I am going to keep this more general than necessary, because this is all about making it as hard as possible to cheat, and the more details about things are out in the open, the easier it gets to cheat.

First, a good method is to have some value that changes with every word of input and use this (adding, xor-ing, whatever) to modify the input word. This ensures that, roughly, every word will occur equally many times, and so a lot of methods of breaking keys will fail. This by itself will not be enough, since anybody people with some experience in cracking encoded data may still be able to crack it. So in addition to this, the input has to be permutated, and a different permutation (again, generated by some value) has to be used for every frame. Both generators (i.e. the algorithms that change that base value all the time) can be initialised with some value ("key") that is kept outside of the MAME source, and these keys have to be sufficiently large (say 128 bits) to withstand brute force attacks.

The problems with this:

If the key is outside the MAME source, but is still used when compiling MAME, then (in addition to problems I do not like to discuss here) it can be argued that you are not making the entire source code public.

If the key is somehow generated outside everything, and has to be retrieved somewhere (like Chad suggested, from the internet, for instance), then everybody will more or less have a unique version of MAME35TG, which also means that nobody but the person who got the key and everybody who knows what the key is, can play back recordings. This probably means that only Mark and the person who recorded the game will be able to play back that recording. And if Mark uses some utility to convert it to a regular .inp file, then that, again, makes security very vulnerable. I don't think it's desirable that only two people can view .inps, especially not since this whole thing is first and foremost meant for world record .inps. What good is it if nobody but Mark can see it? And, no offence Mark, why should others take Mark's word for it that the recording is legitimate? That only shifts the problem.

A minor problem with using algorithms that transform an .inp into something resembling random data (because seemingly true random data is the only kind of data that is not susceptible to hack attacks) is that the .inps will not compress very well. A 10 meg .inp will, if it looks like it's random enough, remain a 10 meg .inp, even if zipped, or compressed with whichever, much better, compression tool you wish to use.

There are some more problems I can think of, but this will do for now.

Ben Jos.

(posted 9537 days ago)

[ Previous | Next ]