tags:

views:

314

answers:

3

I have a task to create an "anti-cheat" system for a gaming website. They have problems with people joining, cheating, getting ip-banned and just uses proxies to cheat again.

So my task is to build an Java applet to get the mac address from the network card, or the motherboard serial number or something like that to avoid people bypassing the IP-ban by just switching IP-address. But I have only, so far found hacky solutions on this and now I'm running out of ideas.

So my question to you is there any way to achive something like this in a Java applet, or is the sandbox to restrictive?

+1  A: 

You might want to check out:

http://www.securingjava.com/chapter-two/chapter-two-2.html

Applet's run in a restricted sandbox on the user's computer, there is very little information you can retrieve with them.

Update: There is no way to do this, you might try to ask users to install an executable on their computer which has your anti cheat software installed, but that's almost certainly not realistic.

Ow01
Wrong, found possible ways to retrieve the MAC-address.
Tim Jansson
A: 

Found solution, retrieving mac address will be sufficient:
http://rizwanshah.blogspot.com/2009/04/restrict-web-page-access-based-on-mac.html

NetworkInterface ni = (NetworkInterface) e.nextElement();
byte[] mac          = ni.getHardwareAddress();

if(mac != null && !ni.isLoopback() && !ni.isVirtual()) {

        String[] tmp = {ni.getName(),
                        String.format("%02X:%02X:%02X:%02X:%02X:%02X\n",
                                       mac[0],mac[1],mac[2],mac[3],mac[4],mac[5] )};

        NWInterfaces.add(tmp);
}
Tim Jansson
A: 

I have developed a solution called EasySecured which uniquely identifies a computer and also the USB mouse and then uses this to generate a password for the domain.

However, this solution is windows/activex/IE and will not work on Linux/Mac or other browsers.

EasySecured also makes use of ActiveX to capture the client's hardware info.

I have tried finding compatible functions in Java or other net programming tools. But so far no luck.

If you are not averse to Windows/ActiveX you can try EasySecured and it will surely uniquely identify the client computer and also the technology does not store any passwords either on the client or the server waiting to be hacked.

Gurudatt Shenoy