Question

Je suis à la recherche de moyens sûrs pour transmettre des données entre un client en cours d'exécution Flash et un serveur.Les données en question sera générée PAR le Flash de l'application, qui dans ce cas est votre score après avoir terminé un jeu.Je veux vérifier que les données sont non altérée sur le serveur.Quelles sont les bonnes méthodes d'obtenir ce fait?

Un moyen simple est d'effectuer certaines opérations sur les données telles qu'une table de hachage, et passer le hachage sur le serveur avec les données.C'est facilement brisée par quelqu'un ayant accès au client le code source, cependant.

Modifier:Je me rends compte que rien ne sera inviolable, mais je veux le rendre aussi difficile que possible.@jcnnghm de la solution de encryping données avec une clé publique et éventuellement faire de la santé mentale-les vérifications et/ou de recalcul avec le jeu des journaux est la meilleure option que je pense.Le cryptage SSL est également une bonne idée car cela le rend plus difficile à déchiffrer ce qui y est envoyé vers le serveur.

Était-ce utile?

La solution

Chiffrer les données avec une clé publique stockée dans le fichier binaire.Cela permettra de lever la barrière d'entrée pour une attaque.En outre, la santé mentale vérifier les données que celui-ci arrive sur le serveur.Cela pourrait être aussi simple que de calculer le nombre maximal de points qui pourraient raisonnablement être gagné par unité de temps de jeu, ou la transmission de jeu se connecte à votre serveur afin de vérifier le résultat est correct.

Rien ne va être totalement hack preuve, peu importe ce que vous faites, mais cela mettra fin à tous mais les plus déterminés.

Mise à jour: @marc:Flash prend en charge le protocole SSL en mode natif.

Autres conseils

Pouvez code en cours d'exécution sur le dessus d'une plate-forme digne de confiance conserver son intégrité?Non, des décennies de rupture de la copie de plans de protection de m'amènent à postuler que c'est impossible.À l'inverse, le code malveillant s'exécute dans une confiance bac à sable est faisable, mais le meilleur que vous pouvez faire avec votre problème est de le rendre plus facile pour les gens à tricher.

Découvrez la AS3Crypto paquet à http://code.google.com/p/as3crypto/.Je n'ai pas essayé, mais ce paquet prétend (partiellement) soutenir le protocole TLS 1.0.

TLS fournira un tunnel sécurisé entre votre application Flash et le serveur.http://en.wikipedia.org/wiki/Secure_Sockets_Layer

@jcnnghm Normalement, vous ne voulez pas utiliser de chiffrement à clé publique (RSA, DSA), pour l'essentiel, le chiffrement des données en raison de sa " grand temps de calcul.Chiffrement à clé publique doit être utilisé dans l'établissement de la liaison et de la clé de l'accord de phases dans un protocole de sécurité, mais la majeure partie de chiffrement des données devraient être traitées par un algorithme symétrique comme AES et TDES.Le TLS et SSL protocoles de travailler de cette façon.

Tant que les gens peuvent obtenir à l'exécutable - qui, sauf si vous voulez lancer le jeu sur un verrouillée kiosque, c'est toujours le cas - il n'y a pas parfaitement sûr moyen de le faire.

La musique et le cinéma dépensé des dizaines de millions sur les DRM, qui a été battu par des amateurs à la maison dans les jours/semaines à venir.S'ils ne peuvent pas protéger leur d'autres choses...

Je suis d'accord sur les réponses données à propos de rien est la preuve de pirates.Parce qu'une fois que vous pouvez le lire, vous pouvez manipuler/copier et à cet effet, le décompiler.

Une autre approche, j'ai été le rabotage est de générer des clés uniques pr.joueur session (dont certains un peu de temps/date que les valeurs du sel).

Ensuite, grâce à l'application, peut-être périodiquement soumettre/transmission des scores d'état et d'acquérir une nouvelle clé valide.Si cette synkronisation échoue, puis casser l'ensemble de la session.

L'inconvénient sur ce qui pourrait être de trop nombreux simulitanious joueurs apportant la réponse de la vitesse du serveur vers le bas et donc faire des "faux délais d'attente" + de quitter le gameserver ouvert pour les attaques DoS.

Mais quelque chose avec le renouvellement de la "clé de session", tandis que l'utilisateur a la session, requier à peu de la gestion de session, mais si elle va faire les tricheurs travailler un peu hardere je vais vous l'essayer :o)

D'autre part, RIEN n'est la preuve de pirates, afin de ne pas faire confiance à 100% - peu importe comment intelligent une solution que vous pensez.

Une dernière remarque serait également de diviser votre application en modules/niveaux etc.de sorte que vous n'avez pas accès à chaque élément du code, et qu'il commence.

Actuellement, mon projet est de construire une grande multi-niveaux de monde et le client/lecteur obtiendrez UNIQUEMENT les fichiers attachés à la partie le joueur réside dans.

Espérons que cela est de toute utilisation de vos pensées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top