Actualités

La guerre de l’émulation

Il y a de cela deux semaines, Nintendo intentait un procès contre une équipe de développeurs d’un émulateur permettant de jouer à la Switch sur ordinateur. L’histoire est intéressante et nous allons essayer d’en retracer la chronologie dans cet article. Mais avant cela, je vais essayer de vous expliquer simplement ce qu’est l’émulation, et ce qu’elle implique.

L’émulation, késako ?

Définition simple

L’émulation, c’est tout simplement la possibilité de jouer à des jeux sur une plateforme différente de celle pour laquelle ils était initialement prévus. Reproduire le comportement d’une machine, sur une autre machine totalement différente en somme. L’explication simple : il s’agit d’un logiciel qui imite le fonctionnement d’un produit matériel : une console de jeux par exemple, et qui permet de lire des programmes conçus et développés au départ sur ce matériel là. Typiquement l’exemple que nous allons aborder plus tard dans cet article : la possibilité de jouer à des jeux Switch sur votre ordinateur, par le biais d’un petit programme que l’on nomme “émulateur”.

Et maintenant, rentrons un peu plus dans les détails techniques de l’émulation

Je vais maintenant aborder des termes plus techniques et rentrer un peu plus en profondeur dans les détails. Si c’est quelque chose qui vous barbe, et je le conçois totalement même si je vais essayer de rendre ça le plus digeste possible même pour un néophyte, n’hésitez pas à passer à la suite.

Je ne m’attarderai pas là-dessus, mais en plus de devoir retranscrire les instructions reçues et émises par le CPU de la console à émuler pour les retranscrire dans un langage compréhensible par le CPU d’un ordinateur, et de repérer dans quelles adresses et registres mémoires sont stockées des informations comme l’état des boutons de la manette (bouton appuyé ou non, …), le développeur d’un tel logiciel doit maintenant faire face à des sécurités supplémentaires mises en place pour lui compliquer encore plus la tâche : des clés de chiffrement !

Une clé, comme pour ouvrir une porte ?

Oui, c’est presque ça ! Dans l’idée, on pourrait se servir de cette comparaison pour illustrer le fonctionnement de ces clés. Je vais vous expliquer tout ça avec une analogie très simple.

Le chiffrement, n’est rien d’autre qu’un principe mathématique que l’on peut complexifier à l’infini. Via des fonctions mathématiques, on va définir une suite de caractères très très longue (clé de chiffrement privée) que l’on dérivera d’une certaine manière pour obtenir une autre clé qui sera associée à cette première clé (clé publique). Et à partir de la clé privée de départ, il est possible de générer autant de clés publiques associées que l’on veut.

Pour sécuriser une transmission de données ou d’un message (et rendre le tout totalement incompréhensible tant que ce n’est pas déchiffrée), il faut que l’expéditeur connaisse en plus de la destination à laquelle il veut envoyer son message, une des clés publiques de son destinataire pour chiffrer son message. S’il en utilise une erronée, le destinataire ne pourra tout simplement pas lire le message et en comprendre le sens.

Prenons un exemple tout simple. Je vais générer des clés de chiffrement fantaisistes et complètement aléatoires sans tenir compte des mathématiques pour me faciliter la tâche et pour que ça reste compréhensible.

Alice a une clé privée (1234) qu’elle a généré et qu’elle ne doit surtout montrer à personne (car je le rappelle, c’est la seule clé à garder secrète. Si quelqu’un s’en empare, il sera très simple pour lui de générer des clés publiques à partir de cette clé privée et de casser le chiffrement mis en place). Elle aimerait tout de même que Bob lui envoie sa recette de cookies qu’elle trouve délicieuse, mais elle ne veut pas que d’autres personnes la connaisse pour garder ces moments de dégustations exceptionnels. Si tout le monde se mettait à en faire, ça deviendrait banal. Elle décide donc d’envoyer une clé publique (5678) qu’elle a généré à Bob, afin qu’il puisse chiffrer sa recette et lui envoyer de manière sécurisée. Si quelqu’un intercepte la recette avant qu’elle ne lui arrive dans les mains, cette personne sera incapable d’en comprendre le sens.

Bob s’exécute donc, et muni de la clé publique (5678) qui lui a été confiée par Alice, il transforme sa recette initiale en ce résultat : lgdflf,dbl,blw,wfbd,<dsvù:<:v<:vm<:svmioN@DSF<KJN
On est tous d’accord pour dire que l’on n’y comprend rien !

Alice la reçoit, applique sa clé privée (1234) sur le message, et obtient une recette lisible : Recette de cookies pour 6 personnes …

Maintenant que vous avez compris le concept de chiffrement dans les grandes lignes, passons à la manière dont c’est utilisé sur les consoles de jeux récentes.

Verrouillage et signature des jeux via clés de chiffrement

Les constructeur de consoles pour éviter que leurs jeux ne se fassent pirater trop facilement, utilisent depuis plusieurs années des clés de chiffrement.
Prenons maintenant l’exemple de Nintendo avec sa Switch (même si les pratiques sont les mêmes chez la concurrence).

La Switch a dans un de ses registres plusieurs clés privées qui sont bien dissimulées (vous vous rappelez, celles qu’il faut absolument garder secrète, au risque de rendre inefficace le chiffrement ?) et auxquelles on ne peut pas accéder comme ça (pas folle la guêpe !). Définies par Nintendo lors de la conception de la console, chaque clé à une fonction bien particulière, mais je ne rentrerai pas dans les détails non plus pour ne pas perdre tout le monde. Gardez seulement à l’esprit qu’il ne s’agit pas de la même clé pour chiffrer et authentifier toutes les opérations sur le système. Elles ont chacune leur rôle.

Ces clés privées de chiffrement sont de temps à autre mises à jour par le biais d’une mise à jour console lorsqu’il y a soupçon de compromission. Toutes ces clés privées sont stockées dans un fichier “prod.keys” lui-même hautement protégé.

Concentrons nous uniquement sur la clé privée qui s’occupe d’authentifier si un jeu que l’on veut lancer, est bien un jeu original et non une copie contrefaite ou modifiée.

Et le jeu, il fait comment pour signaler que c’est bien un original ?

Bonne question mon cher Jamy !

Au moment de la certification d’un jeu par Nintendo pour le distribuer en copie physique ou de manière dématérialisée sur son store, la firme nippone, en interne, créé une clé publique à partir de la clé privée stockée sur la console (qui est la même sur toutes les Switch, fort heureusement) et dont ils sont les seuls à connaître son contenu, et l’enregistre dans une zone bien spécifique du jeu. A partir de là, le jeu peut être pressé et mis en vente, il sera lu sans problème par n’importe quelle Switch. Lorsque le jeu sera inséré ou lancé directement s’il a été téléchargé depuis le Store, il y aura un contrôle de sécurité fait par le système pour voir si la clé publique présente sur le jeu est bien liée à la clé privée stockée sur la console et si elle apparaît bien dans les clés publiques distribuées officiellement par Nintendo (fichier nommé “title.keys”). Si c’est le cas, la console le lance, sinon, un message d’erreur s’affiche.

Procès opposant Nintendo à Tropic Haze

Maintenant que les choses ont été éclaircies – même si j’ai volontairement survolé pas mal de points car nous n’étions pas là dans une analyse technique mais bien pour comprendre ce qui était factuellement reproché à l’équipe de développeurs Tropic Haze – intéressons nous au pourquoi du comment, Nintendo s’est décidé à intenter un procès contre une équipe de développeurs qui n’en était pas à son coup d’essai, côté conception d’émulateurs de consoles Nintendo.

Qui est Tropic Haze ?

Tropic Haze LLC est une petite entreprise basée à Warwick dans l’Etat de Rhode Island aux Etats-Unis. Le développeur principal à la tête de l’entreprise a décidé en avril 2014 de s’attaquer à un gros projet : créer un émulateur de Nintendo 3DS capable de fonctionner sur PC, et l’a baptisé Citra.

L’équipe autour de ce projet a eu des résultats concluants relativement vite, étant donné que Nintendo ne diffuse pas en libre accès le code source de ses consoles, ni leur fonctionnement interne détaillé. Il leur a fallu avancer à tâtons et essayer de déduire le comportement du système de la 3DS d’eux-mêmes en faisant une multitude de tests, à l’aveuglette.

En parallèle du développement de Citra qui était abouti et permettait déjà de lancer pratiquement tous les jeux 3DS et new 3DS sur le marché, l’équipe annonce, en juillet 2018, se concentrer sur un autre projet : un émulateur Switch sur PC, qu’elle nommera Yuzu. Mais tout bascule ce 26 février 2024, date à laquelle les avocats de Nintendo ont rédigé et fait suivre la plainte au tribunal compétent de Rhode Island (avec une prise en compte effective le 29 février).

Ce qui est reproché aux développeurs par Nintendo

Même si l’émulation reste reconnue comme étant une pratique légale depuis des années à partir du moment où l’utilisateur joue à sa propre copie du jeu qu’il doit posséder et avoir acheté légalement en amont, Nintendo a attaqué les développeurs depuis d’autres fronts comme le montre la plainte déposée :

  • Promulgation de liens vers des sites mettant à disposition les dernières clés de chiffrement privées de la console (prod.keys), nécessaires à l’émulateur pour fonctionner et authentifier les jeux
  • Promulgation de tutoriels beaucoup trop détaillés pour permettre aux personnes de hacker leur console pour y faire tourner des jeux obtenus illégalement
  • Mise à disposition de liens vers des sites permettant de télécharger des jeux frauduleux
  • Affichage d’un tableau très détaillé pour référencer tous les jeux qui sont jouables sur l’émulateur (et à quel point ils sont jouables)
  • Nintendo met en avant la loi DMCA votée par le Congrès américain, visant à protéger les titulaires de droit d’auteur contre le contournement de protections mises en place pour éviter l’accès et la copie illicite d’œuvres, car Yuzu a besoin de clés cryptographiques (prod.keys) pour fonctionner, qui sont la propriété de Nintendo et est obligé de les obtenir de manière illégale, à partir d’une console piratée (seul moyen de les extraire). Sur le site Yuzu, se trouve donc un lien menant vers un utilitaire permettant d’extraire ces fameuses clés depuis une console piratée.
  • Le fait que malgré plusieurs mentions sur des sites pirates indiquant la possibilité de télécharger et de jouer au jeu The Legend of Zelda : Tears of the Kingdom, une semaine et demie avant sa sortie officielle sur l’émulateur Yuzu, l’équipe n’ait pas réagi en faisant en sorte qu’il ne soit pas possible de le lancer pendant ce laps de temps.
  • Les revenus colossaux engendrés par cet émulateur (qui avoisinaient les $30.000 par mois). Même si l’émulateur était en téléchargement gratuit sur leur site, une page Patreon était mise en place et les gens pouvaient donner une certaine somme d’argent pour avoir accès à des contreparties, telles que des mises à jour quotidiennes de l’émulateur ou accès à des fonctions exclusives non disponibles sur la version gratuite, ou en accès anticipé avant tout le monde. 7000 donateurs versaient chaque mois une contribution financière pour avoir accès à ces avantages. Ces quelques $30.000 mensuels étaient faits sur le dos du travail de Nintendo, repris dans cet émulateur.
    Idem sur la version Androïd de l’émulateur : il y a avait une version gratuite et une version payante avec d’autres fonctionnalités supplémentaires. Cette dernière a été téléchargée environ 10000 fois depuis son lancement le 30 mai 2023 et a permis aux développeurs de récupérer $50.000 supplémentaires.

Des failles dans les accusations de Nintendo ?

Certains arguments avancés par Nintendo sont un peu bringuebalants comme celui qui est de décréter “qu’il n’existe aucun moyen d’utiliser Yuzu de manière légale pour jouer à des jeux Switch” en prenant comme clé de voûte la loi DMCA.

Comme le souligne très bien Gamekult dans son article, le US Copyright Office permet à quiconque d’archiver ses jeux pour en faire des copies de sauvegarde (et non pas d’en faire un backup qui aurait pour vocation à être partagé, ce qui est totalement illégal, mais il ne s’agit là que de terminologie). Quelques règles sont toutefois à respecter pour rester dans la légalité. Une copie de sauvegarde ne doit jamais être diffusée et rester dans un cadre strictement personnel pour son usage propre, ce qui implique de facto, de ne pas diffuser cette copie aux membres de votre famille ou à des amis qui n’auraient pas achetés le jeu. Lors de la cession ou la vente du jeu, cette copie peut aussi bien être transférée au nouvel acquéreur ou bien détruite.

Partons du principe qu’après avoir fait votre copie de sauvegarde, votre console de jeu ou votre jeu soit défaillant. Il vous est alors tout à fait possible de lancer Yuzu sur votre ordinateur pour jouer au jeu et y charger votre copie que vous aviez archivé. D’un point de vue légal, personne ne pourra venir vous le reprocher, tout comme si vous utilisiez votre copie de jeu sur une Nintendo Switch hackée pour la lire. La loi étant ce qu’elle est, les avocats ont je pense, rajoutés ce point là pour menacer et mettre encore plus de pression aux développeurs. Néanmoins, toutes les autres accusations restent recevables.

Conclusion du procès

Nintendo prévoyait donc de demander des dommages et intérêts (sans spécifier la somme), le retrait immédiat de l’émulateur Yuzu et l’arrêt pur et simple de son développement et de sa maintenance.

Tropic Haze LLC étant une structure minuscule par rapport à un mastodonte comme Nintendo et sachant qu’un procès mené à son terme pouvait leur faire très mal financièrement parlant mais aussi avoir de potentielles répercussions pénales, l’équipe de développeurs a décidé de réagir pour calmer le jeu et a été à l’initiative de pourparlers avec les avocats de la firme pour trouver un accord. Quelques jours plus tard, le 3 mars, un accord est trouvé et les deux partis s’entendent pour que Tropic Haze verse 2,4 millions de dollars en dommages et intérêts, retire l’accès à son émulateur, et cesse immédiatement tout développement.

Le 4 mars, la page d’accueil de leur site affiche un message sans équivoque :

“Bonjour aux yuz-ers et aux fans de Citra :

Nous vous écrivons aujourd’hui pour vous informer que Yuzu et le support pour notre émulateur Citra sont interrompus, avec effet immédiat. Yuzu et son équipe ont toujours été contre le piratage.

Nous avons commencé nos projets en toute bonne foi, par passion pour Nintendo, ses consoles et ses jeux, et nous n’avions pas l’intention de causer du tort. Mais nous constatons aujourd’hui que nos projets, en contournant les mesures de protection technologique de Nintendo et en permettant aux utilisateurs de jouer à des jeux sur du matériel non autorisé, ont donné lieu à un vaste piratage. En particulier, nous avons été profondément déçus lorsque des utilisateurs se sont servis de nos logiciels pour faire fuiter le contenu de jeux avant leur sortie et ruiner l’expérience des acheteurs légitimes et des fans.

Nous avons décidé que nous ne pouvions pas continuer à permettre que cela perdure. Le piratage n’a jamais été notre intention et nous pensons que le piratage des jeux vidéo et des consoles de jeux vidéo doit cesser. A partir d’aujourd’hui, nous allons mettre hors ligne nos dépôts de code, arrêter nos comptes Patreon et nos serveurs Discord et, bientôt, fermer nos sites web. Nous espérons que nos actions constitueront un petit pas vers la fin du piratage des œuvres de tous les créateurs.

Nous vous remercions pour vos années de soutien et pour votre compréhension.”

Yuzu, mais aussi Citra (l’émulateur 3DS) ont donc été retirés, et il n’est plus possible de les récupérer sur le site officiel.

Réactions en chaîne

D’autres développeurs d’émulateurs commencent à se poser des questions, ce qui risque d’être le cas sur le long terme, cette affaire pouvant faire jurisprudence dans le monde de l’émulation.

Le développeur derrière l’application Androïd, Pizza Boy Emulators, permettant de faire tourner des jeux GameBoy Color et GameBoy Advance sur téléphone, a décidé lui aussi de supprimer son application du Play Store pour éviter tout ennui juridique avec Nintendo.

Le roi est mort, vive le roi !

Il n’en fallait pas moins pour que d’autres inconscients aventuriers se remettent en selle pour reprendre ce projet. Suyu, de son nouveau nom, sera le successeur de feu Yuzu, mais l’équipe derrière le projet va essayer de ne pas commettre les mêmes erreurs pour ne pas se faire attaquer en justice, en commençant par la non monétisation de Suyu.

Pas de revenus tirés de l’émulateur, donc mathématiquement, ils diminuent les chances d’être poursuivis. En plus de cela, des questions sur le respect des droit d’auteur est à l’étude de leur côté.

Souhaitons leur tout de même bonne chance …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *