Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Protection des animations shockwave

Compatible Director. Cliquer pour en savoir plus sur les compatibilités.Par Gary Rosenzweig, Jagorochi, le 10 octobre 2005

Un grand merci à Jagorochi qui a pris sur son temps pour traduire cet article et le faire partager à tous.

Comment arrêter les voleurs de DCR

Par Gary Rosenzweig - traduit de l'anglais par Jagorochi

En tant que développeur de jeu sous Shockwave, un de mes nombreux soucis est de protéger mes jeux des voleurs de DCR. Il peut être extrêmement facile pour quelqu'un de prendre votre contenu Shockwave et de le placer sur son propre site, récupérant au passage les mérites et bénéfices de vos travaux. Mes méthodes de protection Shockwave ont évoluées au fils des années et à présent je possède et utilise des techniques variées. Mais avant tout, commençons par voir qui vole les contenus Shockwave et comment ils le font.

Qui sont ces voleurs ?

Je peux diviser les types de personnes qui volent les contenus Shockwave en trois groupes.

Le premier est le groupe des “gens qui n'y connaissent rien de rien”. Ceux là ne réalisent vraiment pas qu'ils sont en train de faire quelque chose de mauvais. Ils voient Internet comme un réservoir de contenu gratuit, et leur est égal ou se trouve ce contenu et qui le possède. S'ils trouvent cool un GIF animé, fichier ou son, ou jeux Shockwave, ils ne penseront pas qu'il y ait de problème à l'utiliser sur leur propre site. Les personnes de ce groupe sont rare de nos jours, mais furent très communs aux débuts d'Internet.

Le second est celui que je nomme groupe des “délits mineurs”, et est constitué de personne qui savent qu'ils sont en tord de mettre les jeux de quelqu'un d'autre sur leur site, mais voient cela comme un délit mineur (un peu comme conduire un peu au delà de la vitesse autorisé). Ils ne pensent pas au fait qu'une personne a pu énormément travailler pour parvenir à ce contenu, et en le volant, dévalorise ainsi ce contenu. Ou, peut être que tout simplement ils ne s’en soucis pas. Ils se voient eux-mêmes comme le “petit gars” et vous une entreprise inconnu, et croient que vous ne remarquerez, ou ne tiendrez pas compte qu'ils volent votre contenu.

Le troisième est le groupe des “voleurs professionnels”. Ceux là sont des personnes qui savent parfaitement bien ce qu'ils font et que cela est un délit. Mais le font quand même afin de profiter d'une manière ou d'une autre de vos travaux.

Les deux premiers groupes sont faciles à arrêter. Même la mesure de sécurité là plus simple vous protègera d'eux contre le vol. et s'ils vous volent une animation non protégée, d'ordinaire un simple courriel vous apportera des excuses et une action immédiate. Généralement il est aussi possible de régler facilement le problème avec le troisième groupe, excepté pour quelque uns.

Comment les voleurs volent-ils votre contenu ?

Un jeu non protégé est facile à voler. Il y a deux manières basiques de le faire. La première est de prendre votre balise OBJECT/EMBED directement de votre site web et de placer le code sur sa propre page. Si vous utilisez les URL absolu (commençant avec http: et contenant le chemin complet du fichier .dcr) alors il n'est pas nécessaire de changer le code. Et même si vous utilisez les URL relatives, tout ce qu'ils ont à faire est de changer la balise “src” par le chemin absolu qui mène au fichier .dcr, et c'est tout. Le contenu apparaît maintenant sur leur page web, sur leur site. Et pour leurs visiteurs, le jeu apparaît comme être totalement sur leur site. Ce genre de vol est un double problème. Premièrement le voleur obtient votre contenu, et deuxièmement les coûts de bande passante reste à vous. Certains de ces sites génèrent énormément de trafic (le votre aussi si vous possédiez plus de 1000 jeux) et vous pouvez subitement voir votre contenu répondre à 10000 requêtes par jour, mais n'en profiter aucunement puisque votre animation apparaît sur le site de quelqu'un d'autre.

Cette méthode de vol est également très facile à prévenir, après le fait accompli. Comme la page du voleur est liée au contenu de votre site web, tout ce que vous devez à faire est de changer la location ou le nom du fichier .dcr. Après cela le voleur n'est plus lié à votre contenu, mais obtient un lien vide. Vous pouvez aussi substituer un .dcr qui utilisera gotoNetPage afin de rediriger l'utilisateur à votre site, et ainsi la véritable location du jeu.

Le voleur peut riposter en modifiant la balise OBJECT/EMBED et faire correspondre à la nouvelle URL du fichier .dcr, mais c'est peu probable. Tous les trois Groupes ont tendance à rarement mettre à jour leurs sites et ne semble pas vérifier les liens vides très souvent. S’il commence à jouer à cache-cache avec vos changements d’URL, il s'arrêtera plus probablement après les deux ou trois premiers changements vu que cela devient embêtant pour lui. Ils veulent du contenu gratuit, alors travailler pour leurs contenus n'est pas vraiment intéressant.

La deuxième méthode de vol de contenu est la plus problématique. Lorsque le voleur, prend votre fichier .dcr et le place directement sur son serveur. Il peut parvenir a cela en trouvant le fichier .dcr dans le cache du navigateur, ou utiliser un programme de téléchargement en lui donnant l'URL du .dcr. Argh ! Director peut être utilisé pour faire cela avec la commande downloadNetThing.

Une autre méthode pour les voleurs d'obtenir des contenus est de télécharger des fichier .dcr en provenance de sites FTP pirate ou d'acheter des cédéroms bon marché remplis de contenu piratés. Ces choses existent. J'ai reçu des réponses “d'excuses” des personnes auxquels j'avais envoyés des messages d'avertissement, et revendiquaient qu'ils avaient obtenu mes fichiers .dcr d'un cédérom qu’ils avaient acheté et qui contenait des centaines de fichiers de la sorte, et qu'ils pouvaient les utiliser gratuitement sur leur site.

Cela ramène certains du groupe des “voleurs professionnels” vers le groupe de “ceux qui n'y connaissent rien à rien” vu qu'ils pensaient acquérir légitimement les jeux. Bien que j'aie tendance à mettre ces gens plus dans le groupe des “délits mineurs” comme je suis certain que quelque part au fond de leur esprit ils savaient que les jeux étaient volés. Les fichiers .dcr volés sont un type d'infraction plus difficile à régler vu que vous deviez avoir placé les mesures de sécurités nécessaire à votre contenu, avant l'acte de piratage. Dès qu'un jeu non protégé a été volé, le seul moyen de régler le problème avec le voleur est d'utiliser des moyens non techniques.

Protégez vos droits d'auteur

Les droits d'auteur sont automatiques. Quand vous créez quelque chose, il devient vôtre. N'importe quel avocat vous dira qu'il est une bonne idée de faire enregistrer ses droits d'auteur, particulièrement si vous planifiez de poursuivre quelqu'un. Mais poursuivre en justice n'est pas un souci avec la plupart des voleurs de .dcr vu qu'ils n'ont aucune défense (ils sont coupables et ils le savent).

C'est toujours une bonne idée de placer une mention de droit d'auteur dans vos .dcr. Car au moins, personne ne pourra prétendre que vous mentez lorsque vous dites qu'ils ont volés le contenu. J'aime aussi inclure des logos et des mentions “créer par” dans mes contenus. Cela rend évident à beaucoup de personnes qui voient le contenu que celui-ci est en fait volé. Les voleurs professionnels peuvent décider de s’abstenir d’utiliser votre contenu s’ils pensent que vous pouvez être un problème. Si vous avez un logo de marque déposée, vous devriez l’inclure dans votre contenu aussi puisqu’il s’ajoute à la liste des délits que le voleur commet. La première chose que je fais lorsque je trouve un contenu volé sur un site est de vérifier tout le site. Je me une idée et décerne s’il s’agit d’une simple page personnelle, du travail d’une seule personne, d’un groupe ou d’une compagnie. Pour les débutants, un petit courriel est ordinairement tout ce qui est nécessaire. Pour obtenir leur adresse électronique, je cherche sur le site. Et si je ne la trouve pas, j’effectue une recherche dans la base de donnée whois afin d’obtenir le propriétaire du nom de domaine. Dans le courriel, j’essaie d’être poli. Mon but est de faire enlever le contenu, pas de démarrer une guerre. La moitié du temps je reçois un courriel d’excuse en réponse, et l’autre moitié du temps je ne reçois aucune réponse mais le contenu est vite retiré.

Pour les sites qui semblent un peu professionnel, ou au moins le travail d’une personne essayant de tirer profit du contenu, j’envoie le courriel à un groupe plus large. Ordinairement, je cherche toutes les adresses électroniques que je peux trouver sur le site et utilise aussi toutes les adresses de la recherche Whois obtenue. Grâce à Whois, je peux aussi repérer ou le site est hébergé et me rendre sur la page d’accueil de l’hébergeur. Souvent, je trouve l’adresse électronique de leur département juridique ou autre chose de la sorte. J’inclus toutes ces adresses dans le courriel « pour » énumération afin que le voleur concerné puisse voir que je suis sérieux. Je rédige ce courriel de manière beaucoup plus professionnelle. Et généralement je donne une date limite, comme 48 heures, pour retirer le contenu. Je fais correctement état que le contenu est protégé selon les lois internationales des droits d’auteur. Si vous disposez d’un avocat, vous pouvez obtenir de lui une simple et courte déclaration à envoyer à ces gens.

Cela stoppe la plupart des voleurs tout de suite. Quelques-uns persistent, mais je me mets alors en contact avec une personne de la compagnie hébergeuse et alors ils subissent une vraie pression. Je n’ai jamais dû recourir à une vraie action en justice, mais je sais que ce jour viendra et je suis préparé à cela. Tous ces problèmes proviennent de vieilles copies de mes jeux qui ont été à l’origine volé il y a plusieurs années, avant que j’implémente mes mesures de sécurité techniques. Si vous commencez par utiliser ces mesures dès le début, vous ne devriez pas avoir de problème.

Sécurisation de vos contenus Shockwave

Il y a plusieurs techniques que j’utilise pour protéger mes jeux. Chacune à ses défauts, mais utilisées en combinaison, elles peuvent arrêter les voleurs tout à fait efficacement.

Technique Numéro 1 : Utilisation des chemins relatifs

Quand vous spécifiez votre URL dans la balise “src” OBJECT/EMBED, vous ne devriez jamais utiliser les chemins absolus (comme “http://monDomaine.com/contenu/monjeux.dcr”). Au lieu de cela, votre .dcr devrait se trouver sur le même domaine que la page web, et vous devriez utiliser un chemin relatif (comme “contenu/monjeux.dcr”). Ainsi, à l’intérieur de votre contenu, vous pouvez utiliser externalParamValue(“src”) pour obtenir le contenu de la balise “src”. Si la balise commence par http: alors vous savez que la balise OBJECT/EMBED n’est pas la votre et que quelqu’un est en train d’essayer de voler votre jeu et de le faire apparaître sur sa page web. Cela élimine presque complètement le premier type de vol, où quelqu’un essaie d’utiliser le .dcr sur votre site, au lieu de voler le .dcr lui-même.

Technique Numéro 2 : Vérification du chemin de l’animation

Vous pouvez utiliser la propriété Lingo the moviePath afin de vérifier ou le fichier .dcr est situé. S’il ne se trouve pas sur votre domaine, alors vous savez que le contenu à été placé sur un autre site. Mais soyez attentif lors de la vérification du chemin. Par exemple, vous pouvez être habitué à vous rendre sur votre site par “mondomaine.com”, mais d’autres peuvent s’y rendre par “www.mondomaine.com”. Utilisez l’opérateur de comparaison Lingo starts afin de vérifier les deux. L’utilisation de l’opérateur contains ne fonctionne pas aussi bien car le voleur peut simplement utiliser un chemin comme ”http://domaineduvoleur.com/mondomaine.com/animationvolée.dcr”. En utilisant les techniques numéro 1 et 2 combinées, vous pouvez vous préserver de 90 pour-cent des problèmes. Mais il y a des moyens pour les voleurs intelligents de les contourner et d’autres techniques peuvent agir en soutien.

Technique Numéro 3 : Augmentation de la sécurité au moyen d’animations de chargement

Une animation chargeur est toujours une bonne idée, même s’il doit juste montrer une barre de progrès aussi importante que celle du chargement du .dcr . Mais vous pouvez aussi faire un contrôle de sécurité, comme la balise “src” et le contrôle du chemin de l’animation de chargement. De là, définissez une variable globale comme “gSecuritéPassee” à TRUE avant d’utiliser gotoNetMovie pour vous rediriger vers un autre .dcr contenant le contenu. Le contenu .dcr vérifiera alors cette variable globale et démarrera seulement si elle à la valeur TRUE. Les variables globales peuvent aussi être peu sécurisées, donc vous pourriez vouloir utiliser des techniques plus complexes. Par exemple, vous pouvez instancier un script parent dans une variable globale. Le script peut implémenter une méthode “mVerificationDeSécurité” qui exécutera les techniques 1 et 2. Mais le lanceur n’exécutera pas ce code, au lieu de cela le contenu .dcr le fera par on prepareMovie. Si cette méthode ne renvoie pas TRUE, alors l’animation ne démarrera pas. Si la variable globale contenant l’instance du script n’est pas définie, alors l’animation ne démarrera pas non plus. Le grand avantage à utiliser une animation de chargement est que vous pouvez avoir un même lanceur pour tous vos contenus. Vous pouvez utiliser la balise “sw1” ou une autre pour passer le nom du .dcr à charger. Alors, l’animation de chargement exécutera la vérification de sécurité, et chaque contenu .dcr doit obtenir le bon signal (soit une variable globale ou une instance de script) ou il ne fonctionnera pas. A présent, comme toutes vos sécurités sont centralisées, vous pouvez implémenter d’autres choses comme un Timer. Un Timer vérifierait la date en utilisant the systemDate et échouerait si l’année renvoyée n’est pas l’année courante. Par exemple, un chargeur d’animation pourrait être initialisé pou ne fonctionner qu’en 2004. Une fois le 1er Janvier 2005 venu, les personnes qui aurait volé le chargeur d’animation ainsi que le contenu ne pourrait faire fonctionner le chargeur, et le contenu ne fonctionnerais pas non plus. Vous basculerez le chargeur d’animation chaque 1er Janvier, mais les voleurs ne pourraient savoir cela.

Technique Numéro 4 : Fichiers de sécurité externes

Il peut être facile de voir le nom du .dcr dans la balise OBJECT/EMBED, mais pas aussi facile de voir les noms des autres fichiers que votre animation Shockwave pourrait appeler. Vous pouvez utiliser getNetText, postNetText, des acteurs externes, ou même des distributions externes. Tous ces moyens peuvent contenir des informations ou scripts utilisés pour tromper les voleurs. Par exemple, vous pouvez utiliser un simple appel getNetText pour contrôler l’existence un fichier texte de test sur le serveur en utilisant un chemin relatif. Si le fichier texte n’est pas trouvé, le .dcr s’arrête. Si le fichier texte est trouvé, il peut contenir des informations, tel un code, qui doit être correct pour le .dcr afin de continuer. Le voleur peut remarquer que le contenu qu’il a volé est en train d’essayer d’accéder à un fichier sur son serveur et qu’il ne le trouve pas. Le voleur peut alors revenir sur votre site et prendre ce fichier. Une distribution est très utile car elle possède son propre chemin d’accès, comme un acteur média externe, ou comme un bitmap. Donc vous pouvez vérifier ce chemin d’accès, après qu’il ait été chargé, afin de s’assurer qu’il se trouve sur votre serveur. Le voleur ne peut modifier votre .dcr afin qu’il puisse accéder a l’acteur ou distribution sur votre serveur, parce que le code Lingo dans le .dcr utilise un chemin relatif local.

Technique Numéro 5 : Le nombre Secret

Voici une technique très avancée qui exige un peu de programmation coté serveur. Cela fonctionne très bien si vous utilisez une technologie serveur comme ASP, JSP ou PHP. Vous mettez en ligne une balise OBJECT/EMBED crée dynamiquement par la technologie que vous utilisez, disons PHP. Cette page crée dynamiquement inclura un nombre spécial comme balise dans la balise OBJECT/EMBED, comme “sw1” ou autre. Si ce nombre n’est pas inclus, alors le contenu s’arrête. Si le nombre est présent, alors le contenu utilisera getNetText avec un chemin absolu afin d’appeler un autre script sur votre serveur. Ce script retournera ce même nombre Spécial. Si le nombre getNetText correspond avec le nombre “sw1”, alors l’animation continue. Pour l’instant, cela n’arrête pas le voleur du tout. Il copy la balise OBJECT/EMBED, avec le nombre spécial et l’animation confirme ce nombre avec celui sur votre serveur. Le contenu fonctionne parfaitement. Mais ensuite, vous changez ce nombre. Maintenant, le voleur exécute une balise OBJECT/EMBED qui utilise l’ancien nombre et votre serveur renvoie un nombre différent à l’appel getNetText. Donc tout ce que vous avez à faire est de changer le nombre de temps en temps, et vous avez un système antivol très efficace. Vous pouvez même programmer votre serveur pour changer ce nombre tous les jours, de manière aléatoire si vous savez comment faire.

Mesure de sécurité

Les cinq différentes méthodes décrites plus haut fonctionne très bien. Et il y en certainement plus que d’autres utilise. La plupart des informations que je viens de dévoiler peuvent être utilisé par un voleur intelligent pour les contourner. Je ne veux donc pas écrire un mode d’emploi pour voleur, c’est pourquoi je n’écrirais pas comment les contourner. Et maintenant que vos mesures de sécurité détectent quelque chose de mauvais, que devraient elles faire ? La procédure principale est d’exécuter une commande halt qui arrêtera la lecture de l’animation. Mais avant une commande halt, vous pouvez faire d’autres choses qui pourrait être plus pénible pour les voleurs. Vous pouvez utiliser gotoNetPage pour amener l’utilisateur vers votre site. Ceci ramènera le surfeur ou il voulait aller en premier lieu – à votre jeu. Vous pouvez aussi vous relayer des informations comme ou est situé le jeu volé, si vous savez comment récupérer les variables de référence du serveur (sic). Où vous pouvez simplement renvoyer l’utilisateur vers une page qui l’informera que le jeu à été volé, et leur demander de rapporter les informations. Vous pouvez alors utiliser ces informations pour vérifier et constater si plusieurs de vos contenus on été volé, ou peut être ceux de vos sympathiques concurrents. Si vous ne voulez pas utiliser l’astuce gotoNetPage, vous pouvez toujours afficher une fenêtre d’alerte avertissant que le jeu a été volé. Mais ceci peut aussi être un outil pour les voleurs. Car ils peuvent utiliser l’alerte pour rapidement déterminer si leurs astuces de contournement de sécurité ont fonctionnées comme ils l’espéraient. Une meilleure solution serait simplement d’utiliser une commande halt. Cela ne laissant pas aux voleurs savoir s’ils ont déclenchés vos sécurités. Au lieu de cela ils pourraient croire qu’ils ont simplement altéré le jeu ou en ont reçu une version corrompue. Il ne leur est donné aucune indication.

Protections supplémentaires

Voler un fichier .dcr pour l’utiliser sur un site web n’est pas la seule chose qui devrait vous effrayer. Quelqu’un avec une copie de Director, fort probablement une copie pirate, pourrait prendre votre .dcr et produire une projection avec. Alors ils pourraient distribuer votre contenu comme téléchargeable. S’en prévenir est facile, il suffit de vérifier la propriété Lingo the runMode et être sur qu’il ne s’agit pas de “projector”. Bien sur, si vous vérifiez the moviePath, vous obtiendrez de bonnes informations qui vous permettront d’identifier une projection. Il est toujours une bonne idée d’implémenter autant que possible ces mesures de sécurité qui tiennent du bon sens. Rappelez vous qu’il n’est pas possible de faire un contenu protégé à 100%, mais vous pouvez le rendre si problématique à voler qu’aucun voleur n’y trouvera pire difficulté.

Gary Rosenzweig est l’ingénieur en chef, fondateur, et propriétaire de CleverMedia, une compagnie de développement multimédia et jeu à Denver, Colorado. Il est l’auteur de dix livres Sur Macromedia Director et Flash, incluant le dernier, “Special Edition Using Director MX”