Il y a un an, Minecraft introduisait via la mise à jour 1.19.1 un système de signalement du chat et une procédure de bannissement global. Cet ajout a rappelé aux fans le tumulte suscité par le lancement controversé de Minecraft 1.9, où les mécaniques de combat ont été radicalement transformées, divisant la communauté.
Ce nouveau système, détaillé dans l’article “The Absolute State of Chat Reporting“, a introduit une méthode cryptographique pour signer les messages de chat (à ne pas confondre avec l’animal chat de Minecraft), garantissant ainsi leur intégrité.
Pourquoi cette controverse ?
Dans le paysage actuel des jeux en ligne, nombreux sont ceux qui disposent d’un système de signalement pour améliorer l’expérience de jeu. Cependant, Minecraft se distingue par sa forte dépendance aux serveurs tiers, en plus des Realms officiels de Mojang. De nombreux fans ont perçu cette mise à jour comme une tentative de Mojang de réglementer, voire de contrôler, une partie de l’écosystème qu’ils n’avaient pas créée. S’ajoute à cela la complexité de juger un message sans contexte, particulièrement sur les serveurs où les rivalités et la stratégie sont monnaie courante.
L’article sur Github souligne également la manière dont les sessions de chat sont gérées et comment les rapports de chat sont générés et validés, ajoutant une couche supplémentaire de complexité technique.
Les problèmes de communication
Mojang a, malheureusement, brouillé le message. Les notes de mise à jour étaient vagues, laissant beaucoup d’interprétations possibles quant aux motifs exacts de bannissement. Cette ambiguïté a alimenté l’incertitude et la méfiance, avec une communauté déjà sur ses gardes, désireuse de clarifications qui n’arrivaient pas. Il est essentiel de noter que la structure même des messages et la manière dont ils sont traités ont contribué à cette confusion.
Aparté technique sur ce qu’est un “message”
Qu’est-ce qui constitue exactement un “message” dans ce système ? Croyez-le ou non, c’est plus que le simple texte tapé par le joueur. Jetons un coup d’œil à un JSON qui en représente un :
{
"index": 3.0,
"profileId": "bfa45411874a4ee0b3bd00c716059d95",
"sessionId": "79930ef9b869476db5c5d297884432f5",
"timestamp": "2022-10-30T17:32:44.160Z",
"salt": 5.1050580637282796E18,
"lastSeen": [ "RSA Signature 1", "RSA Signature 2", "RSA Signature 3" ],
"message": "How are you",
"signature": "RSA Signature"
}
Il s’agit d’un reflet presque parfait du format de message utilisé dans les rapports de chat réels. Examinons les champs un par un :
index
est un nombre qui est incrémenté de 1 chaque fois que le joueur envoie un message dans la même session de chat.profileId
est l’UUID du joueur.sessionId
est l’identifiant unique de la session de chat. Il est généré par le client lorsque le joueur rejoint le serveur. Nous aborderons les sessions de chat plus en détail dans une section ultérieure.timestamp
est l’heure à laquelle le message a été envoyé. Il est généré par le client.salt
est un nombre aléatoire généré par le client. Dans les versions antérieures du système, il était utilisé pour empêcher les attaques par rejeu, mais celles-ci ne sont plus possibles en raison du fonctionnement actuel du système. Son utilité actuelle reste inconnue.lastSeen
est un tableau de signatures RSA des 20 messages les plus récents que le joueur a vus, y compris les siens.message
est le texte du message.signature
est la signature RSA du message. Elle est générée par rapport à toutes les données des champs ci-dessus à l’aide de la clé privée du joueur.
Chat Reporting dans Minecraft Bedrock
L’édition Bedrock de Minecraft avait déjà accueilli ce système en avant-première, et cela n’a pas été sans pépins. Les joueurs bannis étaient confrontés à des messages génériques, rendant le processus d’appel quasi impossible. Certains rapportent même avoir été “shadow muted” – une situation où le joueur ne réalise pas que ses messages ne sont pas visibles par les autres.
Ces problèmes étaient en partie dus à la manière dont le système a été conçu et mis en œuvre.
État actuel du système de Chat Reporting
Aujourd’hui, la plupart des serveurs publics ont choisi de ne pas adopter ce système de signalement, limitant son utilisation aux serveurs Vanilla et aux Realms. Ironiquement, même dans ces espaces contrôlés, des bannissements controversés ont été rapportés.
Il a également été révélé que certains Realms utilisent un filtrage automatique en conjonction avec le système de signalement. Cela soulève des questions sur l’efficacité du système et sur la manière dont il est perçu par la communauté.
Aparté technique sur le fonctionnement des sessions de chat
Exploitations techniques et vulnérabilités
Le système actuel n’est pas sans failles. Malgré la position officielle de Mojang, affirmant l’infaillibilité du système, des exploits ont été identifiés permettant de tromper ou de manipuler le signalement. Des forums techniques débordent de discussions sur les failles du système, témoignant de l’existence persistante de ces vulnérabilités, malgré les démentis officiels.
Exploits Potentiels
Malgré les assurances de Mojang concernant la robustesse de leur système, plusieurs exploits ont été mis en lumière. Certains d’entre eux permettent aux utilisateurs malveillants de contourner les mécanismes de signalement, rendant ainsi les tentatives de régulation inefficaces. L’article “The Absolute State of Chat Reporting” détaille ces vulnérabilités, soulignant la nécessité pour Mojang de renforcer continuellement la sécurité face à des utilisateurs toujours plus ingénieux.
Collaboration Malveillante
L’une des vulnérabilités les plus préoccupantes réside dans la possibilité pour un serveur malveillant de collaborer avec des clients malveillants. Cette collaboration peut permettre de manipuler ou de tromper le système de signalement, rendant ainsi les tentatives de régulation inefficaces. Cette faille expose non seulement les joueurs à des comportements inappropriés, mais elle remet également en question la fiabilité du système dans son ensemble, surtout lorsque l’on considère la dépendance de Minecraft aux serveurs tiers.
Réponses de Mojang
Face à ces défis, Mojang n’est pas resté inactif. L’entreprise a tenté de résoudre les problèmes identifiés et de renforcer la sécurité de son système. Cependant, malgré ces efforts, la persistance de certaines vulnérabilités suggère que la route vers un système de signalement parfaitement sécurisé est encore longue. Il est essentiel pour Mojang de continuer à travailler en étroite collaboration avec la communauté pour identifier et corriger ces failles, garantissant ainsi une expérience de jeu sûre pour tous.
Un an après son lancement, le bilan du système Chat Reporting est mitigé. Sa mise en œuvre, bien qu’ambitieuse, a été entravée par des controverses, des failles techniques et une adoption limitée. Les joueurs sont encouragés à rester prudents, surtout sur les Realms et les mondes LAN. Dans l’historique de Minecraft, ce système restera comme une initiative bien intentionnée mais mal exécutée.
A bas Minecraft 19.84
Mon serveur, mes règles