Jeu Android : Pièges à éviter pour sécuriser les sauvegardes locales ?
Free-Worker-1405988
Bonjour à toute la communauté,
Je suis développeur freelance et je travaille actuellement sur un petit projet personnel, un jeu Android. C'est mon premier "vrai" jeu et je bute sur une problématique qui me semble cruciale : la sécurité des données de sauvegarde.
J'ai lu un peu partout que les fichiers de sauvegarde locaux (sur l'appareil) sont très vulnérables, surtout sur les téléphones rootés. Il serait assez simple pour un utilisateur de modifier son fichier de sauvegarde pour s'octroyer des ressources illimitées, débloquer des niveaux, etc., ce qui ruinerait l'équilibrage du jeu.
Pour l'instant, je n'ai pensé qu'à des solutions basiques comme l'encodage en Base64, mais je sais bien que ce n'est qu'une obfuscation et non une réelle sécurité. J'ai aussi vu des pistes concernant les EncryptedSharedPreferences
d'Android mais je me demande si c'est suffisant et s'il y a des pièges de performance.
Ma question est donc la suivante : pour un développeur solo avec des moyens limités (sans vouloir monter une usine à gaz avec un serveur dédié juste pour ça), quelles sont les bonnes pratiques et les pièges à éviter pour protéger un minimum les sauvegardes d'un jeu Android ?
Pour vous donner une idée du type de jeu dont je parle (assez simple, client-side uniquement), je me suis inspiré de projets comme ceux qu'on peut trouver ici : modhello. Je vois beaucoup de jeux de ce genre et je me demande toujours comment ils gèrent cette problématique sans serveur.
Merci d'avance pour vos lumières et votre partage d'expérience
- Contacter en MP
FreelanceDream
Nombre de posts : 223Nombre de likes : 185Inscrit : 10 juin 2012Tes objectifs sont contradictoires
Tu ne veux pas un contrôle côté serveur, juste du pure client-side sans aucun call API vers un serveur (même pour la sauvegarde)
Tu veux contrôler ce que font les joueurs et éviter qu'ils modifient les fichiers sources de ton jeu
De facto si tu veux le point 1. le point 2. n'est pas possible. Et si tu veux le point 2. il faut mettre en place au minimum un serveur ne serait que pour enregistrer et récupérer les sauvegardes des gens ...