• # Efficacité vs Sécurité

    Posté par . En réponse à la dépêche Une limite de l'OpenSource ?. Évalué à 1.

    En lisant un peu tous les messages qui ont constitué cette discussion, je vois qu'en fait la "triche" de certains participants repose en grande partie sur l'exploitation de données supplémentaires qui ne sont pas visualisée ou qui sont "dormantes".

    Arretez-moi si je me trompe, mais, je crois avoir compris que dans des jeux comme Quake, le nombre d'informations qui sont envoyées à chaque client est beaucoup plus importante que ce que le joueur peut voir/entendre dans son environement proche.

    Peut-être est-ce là une erreur de la part des concepteurs des jeux. Après tout, les "tricheurs" ne font que tirer partie de toutes les informations dont dispose leur client. Vouloir cacher des informations après les avoir envoyées au client me semble un peu utopique.

    Pourquoi ne pas faire des protocoles qui n'enverraient au client que les informations nécessaires et rien de plus ?

    Évidemment, il y a des moyens d'obtenir des informations supplémentaires, par exemple en connectant des joueurs fantômes et en les plaçant judicieusement sur la map. Mais cela se verrait assez facilement.

    Reste le problème de la gestion de la position du personnage. J'avais entendu parler d'un programme qui changait la coordonnée Z (altitude) de tous les shoots. Ce qui faisait que le joueur apparaissait "invulnérable". Il faudrait trouver un méchanisme (rapide si possible) pour empecher le joueur de modifier des données qui viennent du serveur. La signature par clef privé du message est un solution qui requière vraiment beaucoup de CPU et un simple CRC est trop facile à craquer... Quant à gérer tous les mouvements du joueur sur le serveur même (et non plus sur le client), on perd l'aspect distribué du logiciel (et le serveur doit avoir une puissance de calcul importante).

    Bref, c'est une question intéressante.

    Quelqu'un connait-il les différentes méthodes qu'emploient les jeux en réseau actuellement pour résoudre ce genre de problème ?