IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Cryptage des données dans les jeux vidéos


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut Cryptage des données dans les jeux vidéos
    Bonjour à tous

    Dans le cadre d'un projet de jeu vidéo amateur, j'aimerai mettre en place un système de cryptographie, pour protéger les données du jeu (fichiers de configuration, ...).
    J'ai vu que certains systèmes, notamment GNU/Linux utilisé le MD5, mais j'ai aussi lu que cet algorithme possède des failles de sécurité.
    Avez-vous une petite idée des algorithmes de cryptage utilisés dans le jeu vidéo ?

    Kromagg

  2. #2
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Généralement, ce n'est pas du cryptage mais de la binarisation (=sérialisation) des données. En gros, chaque fichier de données de ton jeux est enregistré en données brut selon tes structures de données. Tu peux rajouter des header spécifique pour les protéger plus.

    Je ne sais pas si c'est clair

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 975
    Points : 221 711
    Points
    221 711
    Billets dans le blog
    131
    Par défaut
    De toute façon, si quelqu'un veut casser la protection, il y arrivera ( même si pour cela il faut lire directement la mémoire utilisé par le jeu ( et la modifié ) ).

  4. #4
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    Citation Envoyé par raptor70 Voir le message
    En gros, chaque fichier de données de ton jeux est enregistré en données brut selon tes structures de données.
    Ca je le comprend pas
    Qu'est ce que des données brutes ? Par rapport à des données textes par exemple.

    Kromagg

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Oulalalala,

    Bon, déjà MD5 ça n'a rien a voir avec du cryptage.

    Ensuite, j'ai l'impression que tu ne vois pas toi même ce que tu veux faire, il me parait donc difficile de t'orienter vers une solution.

  6. #6
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Oulalalala,

    Bon, déjà MD5 ça n'a rien a voir avec du cryptage.

    Ensuite, j'ai l'impression que tu ne vois pas toi même ce que tu veux faire, il me parait donc difficile de t'orienter vers une solution.
    Désolé il s'agit juste d'un algorithme qui permet d'obtenir l'empreinte numérique d'un fichier.
    Donc ce que je souhaiterai mettre en place avec cet algorithme c'est un système permettant de vérifier l'intégralité des données du jeu (modèles, configuration) pour voir si le joueur n'essaie pas de modifier ces données. Par exemple quand le joueur quitte le jeu, chaque fichier sensible est haché par cet algorithme, me produisant en sorti la liste des empreintes numériques de chaque fichier. Puis au lancement du jeu on hache de nouveau les fichiers sensibles et on compare les empreintes numériques avec celle de sorties.

    Comment-est ce fait dans le jeu vidéo professionnel ?

    Kromagg

  7. #7
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Citation Envoyé par Kromagg
    j'aimerai mettre en place un système de cryptographie, pour protéger les données du jeu
    J'ai peur de ne toujours pas comprendre exactement ce que tu veux faire.

    - veux-tu protéger tes ressources (modèles 3D, sprites 2D, ...) pour que personne ne puisse facilement les récupérer et les réutiliser ailleurs ?

    - ou bien veux-tu empêcher le joueur de 'hacker' le jeu (genre niveaux simplifiés, nombre de vies illimité, ...). Si oui, dans quel but ?

    Citation Envoyé par Kromagg Voir le message
    Comment-est ce fait dans le jeu vidéo professionnel ?
    Ben ce n'est tout simplement pas fait dans les jeux 'pro'.

    - Si un joueur désire repiquer tes ressources (sprites 2D ou modèles 3D), tu ne pourras de toute façon pas l'empêcher (capture d'écran, driver openGL modifié, ...) ; au mieux le retarder (à peine).

    - Si un joueur décide de tripatouiller son jeu pour changer trois sprites, c'est son problème. Idem s'il veut se rendre invincible et ainsi perdre tout l'intérêt du jeu. Et si au final ça fait planter le bouzin, tant pis pour lui.

  8. #8
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    J'ai peur de ne toujours pas comprendre exactement ce que tu veux faire.

    - veux-tu protéger tes ressources (modèles 3D, sprites 2D, ...) pour que personne ne puisse facilement les récupérer et les réutiliser ailleurs ?

    - ou bien veux-tu empêcher le joueur de 'hacker' le jeu (genre niveaux simplifiés, nombre de vies illimité, ...). Si oui, dans quel but ?
    C'est la seconde option que je voudrais mettre en place.
    Dans quel but ? Comme tu le dis, pour éviter que ce dernier triche, mais comme il s'agit d'un jeu en mode solo, c'est moins important que du multi-joueur

    Kromagg

  9. #9
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Pour un jeu mono-joueur, de toute façon quelles que soient les protections que tu voudras mettre en place, elles seront contournables ; tout n'est qu'une question de temps.

    Dans un sens, on peut retourner la question: quel serait l'intérêt de perdre du temps à protéger les caractéristiques du jeu ?

    Comme dit précédemment, si un hacker veut se rendre invincible et ainsi perdre tout l'intérêt du jeu, c'est son problème. Mais surtout, tout le temps que tu auras passé à construire ta protection, c'est logiquement autant de temps en moins passé à fignoler le reste, donc c'est du temps perdu pour offrir aux joueurs 'réguliers' un jeu le plus fini possible.

    Donc vaut-il mieux perdre du temps pour les hackers qui n'en valent pas la peine ou mettre ce temps au profit d'une meilleure qualité du jeu pour les joueurs 'réguliers' ?


    La problématique pour un jeu multi-joueurs est radicalement différente, car un 'tricheur' ne va pas uniquement pourrir l'intérêt du jeu pour lui même, mais également l'intérêt du jeu pour tous ceux qui jouent avec/contre lui. Et ça change radicalement le problème.

    Néanmoins, le résultat reste le même: quelles que soient les protection mise sur le logiciel client, elle seront toujours cassables (en hackant le client, ou avec une technique type man-in-the-middle, ou encore avec du reverse engineering sur les échanges réseau et la réécriture complète d'un bot, ...).

    Dans ce cas là, la seule solution viable est le contrôle systématique du côté du serveur (et pas du client): le serveur part du principe qu'il ne pourra jamais faire confiance au client et donc chaque action que le client initiera sera systématiquement vérifiée avant d'être validée et propagée aux autres clients. Ce paradigme est souvent défini par un "never trust the client".

  10. #10
    Membre habitué Avatar de Kromagg
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2008
    Messages : 275
    Points : 198
    Points
    198
    Par défaut
    Ok merci pour vos réponses, finalement je vais mettre cette idée à la poubelle
    Je me suis penché sur le sujet, car j'ai pu voir dans Visualization Library (il me semble) qu'ils utilisent un système de sécurité basé sur le MD5.

    Kromagg

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Pour rajouter une couche, un client modifié peut toujours connaitre le hachage « correct » des données et l'envoyer, même avec un contrôle par le serveur.

    Bref, ce n'est pas une solution adaptée au problème.

    Elle est par contre utile dans le cas de path du jeu (afin de savoir s'il n'y a aps d'erreur de DL par exemple). Dans l'autre sens, ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Le réseau dans les jeux vidéo : Envoyer et recevoir des paquets
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 03/05/2015, 20h10
  2. La place des femmes dans les jeux vidéo
    Par pcaboche dans le forum Jeux
    Réponses: 39
    Dernier message: 17/04/2015, 18h04
  3. Utilisation des scripts dans les jeux vidéos
    Par Celes_Vongola dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 19/11/2013, 09h39
  4. Réponses: 88
    Dernier message: 01/09/2012, 14h15
  5. Résolution des images pour les jeux vidéos
    Par YuGiOhJCJ dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 04/04/2006, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo