2009-08-30 6 views
1

J'ai pour tâche de créer un système "anti-triche" pour un site de jeux. Ils ont des problèmes avec les gens qui se joignent à eux, trichent, se font interdire l'accès à Internet et utilisent simplement des procurations pour tricher à nouveau. Donc, ma tâche est de construire une applet Java pour obtenir l'adresse mac de la carte réseau, ou le numéro de série de la carte mère ou quelque chose comme ça pour éviter que les gens contournent l'interdiction IP en changeant simplement d'adresse IP. Mais j'ai seulement, jusqu'ici trouvé des solutions hacky à ce sujet et maintenant je suis à court d'idées.Identification par ordinateur unique @ Java Applet

Alors, ma question est de savoir s'il est possible de réaliser quelque chose comme ça dans une applet Java, ou est ce que le sandbox est restrictif?

+1

L'adresse MAC n'est pas unique et peut être modifiée de manière triviale. Est-il impossible de résoudre le problème sous-jacent? –

+0

Je sais que ce n'est pas unique, mais pense que c'est assez dur pour les garçons de 14 ans qui trichent :) Et non, le site héberge le champ de bataille, cs, tremblement ... donc nous n'avons pas vraiment de contrôle:/Nous ne suis qu'un hôte. –

Répondre

1

Vous pouvez consulter:

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

course de Applet dans un bac à sable restreint sur l'ordinateur de l'utilisateur, il y a très peu d'informations que vous pouvez récupérer avec eux.

Mise à jour: Il n'y a aucun moyen de faire cela, vous pourriez essayer de demander aux utilisateurs d'installer un exécutable sur leur ordinateur sur lequel votre logiciel anti-triche est installé, mais ce n'est certainement pas réaliste.

+0

Incorrect, trouvé des moyens possibles pour récupérer l'adresse MAC. –

1

solution trouvée, la récupération adresse MAC sera suffisante:
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); 
} 
0

J'ai développé une solution appelée EasySecured qui identifie de manière unique un ordinateur et aussi la souris USB et utilise ensuite ce pour générer un mot de passe pour le domaine. Cependant, cette solution est Windows/ActiveX/IE et ne fonctionnera pas sur Linux/Mac ou d'autres navigateurs.

EasySecured utilise également ActiveX pour capturer les informations matérielles du client.

J'ai essayé de trouver des fonctions compatibles dans Java ou d'autres outils de programmation réseau. Mais jusqu'à présent, pas de chance. Si vous n'êtes pas opposé à Windows/ActiveX, vous pouvez essayer EasySecured et il va certainement identifier de manière unique l'ordinateur client et aussi la technologie ne stocke aucun mot de passe sur le client ou le serveur en attente d'être piraté. Pourquoi n'empêchez-vous pas simplement de tricher?