5

J'ai besoin de mon client Flash pour communiquer en toute sécurité avec un serveur (via des sockets binaires). Pour cela, je pensais à intégrer une clé pré-partagée dans le code AS3 et à échanger des données XOR via un protocole personnalisé.Protection du code Flash AS3 + communication sécurisée avec le serveur

On me dit que les décompilateurs SWF font un bon travail pour rendre tout le code intégré clairement visible et lisible. Est-ce que cela signifie que je ne peux pas vraiment cacher ma clé?

Si cette méthode n'est pas pratique, quelles sont les autres options? J'ai essayé as3crypto, seulement pour constater qu'il est plein de lacunes et manque de documentation sérieuse.

+0

Je crois que le mieux que vous allez obtenir est d'utiliser SSL comme un protocole sécurisé pour la transmission des données. Notez que cela n'empêche pas un utilisateur de configurer un proxy qui accepte votre certificat puis d'en émettre un autre au client afin de décoder la transmission, donc ce n'est pas non plus une preuve complète, mais c'est la solution la plus sûre pour le client/serveur communication qui entravera au moins la capacité de pirater le système. C'est-à-dire que vos communications avec les utilisateurs finaux/serveurs seront protégées des étrangers, mais ne vous protègeront pas de vos utilisateurs finaux. – shaunhusain

+0

Comme la réponse ci-dessous échappe à un homme au milieu de la capture de la communication entre le client et le serveur permettra finalement à quelqu'un d'écrire un client qui génère le même type de communication que ce qui est vu lors de la surveillance. Regardez comment le Kinect a été piraté comme exemple, le protocole n'a pas été publié et les signaux pour démarrer le flux de données, mais un dongle USB et un vidage de données plus tard, et vous avez des gars au Brésil pour l'ingénierie inverse des données diffuser en moins de 24 heures. Un autre exemple Cain and Able ici http://www.youtube.com/watch?v=ZNApxghIQLw – shaunhusain

+0

Dans l'ensemble, le serveur ne devrait jamais faire confiance à la communication qui lui vient de l'extérieur entièrement. La seule chose que vous pouvez vraiment sécuriser est le code qui s'exécute sur le serveur et la meilleure façon de le sécuriser est que le serveur soit physiquement sécurisé et qu'il ne soit pas connecté à des réseaux inutiles. Bonne chance ... bonne question, juste pas de bonne réponse. – shaunhusain

Répondre

4

Vous ne pouvez pas cacher votre clé - SWF est totalement non fiable, peut être facilement décompilé. Il est assez difficile de gérer la sécurité avec les fichiers SWF, car ils s'exécutent sur le client et ne sont pas fiables.

Cela peut dépendre en particulier de ce que vous essayez d'accomplir avec une communication sécurisée. Par exemple, si vous tentez de sécuriser un système à score élevé, ce qui est pratiquement impossible parce que le jeu tourne sur le client (le fichier SWF) et qu'il peut le manipuler pour cracher n'importe quel score sur le serveur. Voici une bonne lecture à ce sujet: What is the best way to stop people hacking the PHP-based highscore table of a Flash game

Si vous ne pouvez utiliser le SWF que comme une interface utilisateur frontale et que toute la logique a lieu sur le back-end, alors vous pouvez sécuriser votre application (en utilisant l'exemple ci-dessus, si le jeu n'était pas un jeu AS3 mais fonctionnait sur le serveur lui-même, il serait beaucoup plus facile à sécuriser, car le backend est fiable et ne peut pas être modifié ou vu par un utilisateur), mais si la logique se déroule sur le SWF alors vous êtes plutôt malchanceux.

Questions connexes