Cliquez sur ce lien et regardez bien cette image.
Qu’y lisez-vous ?
Si vous voyez « Hello Apple », c’est que avez ouvert ce lien inséré dans un article de Numerama depuis un appareil Apple (iPhone, iPad ou Mac), sur le navigateur Safari.
Si vous lisez « Hello World » en revanche, c’est que vous êtes sur un autre appareil ou sur un autre navigateur.
Comme l’a relevé The Bleeping Computer, ce PNG est particulier, car il ne s’affiche pas de la même manière selon les navigateurs utilisés ou l’appareil sur lequel il a été enregistré.
C’est l’ingénieur David Buchanan qui est à l’origine de cette création particulièrement intéressante, qui bouleverse certains principes que l’on pense acquis lorsque l’on utilise des appareils ou que l’on se balade sur un site web. Cela semblerait tomber sous le sens : si vous envoyez une image en format PNG à votre ami, il est censé recevoir la même chose que ce que vous voyez, vous, sur votre appareil.
Et pourtant, ce n’est pas toujours le cas.
Il ne s’agit pas, comme le rappellent bien nos confrères de Frandroid, de deux images différentes. Ce que David Buchanan a montré, c’est qu’il est possible de profiter du fait que les logiciels Apple ne décodent pas les PNG de la même manière que les autres. Il explique avoir découvert que « Apple dispose de sa propre implémentation de décodage parallèle » et que cela permet d’effectuer des tests aussi drôles que curieux.
Les logiciels Apple décodent les PNG différemment
Pour résumer grossièrement, il s’est rendu compte qu’il était possible qu’une seule image ait non pas un seul, mais deux rendus, selon la manière dont elle était décodée par l’appareil ou le navigateur utilisé.
Pour le mettre en lumière, il faut tout pouvoir créer un PNG spécifique qui contient deux informations de rendu séparées, comme on peut le voir dans un bout de code que Buchanan a rendu public :
Par conséquent, par exemple, Safari ne décodant pas les PNG de la même manière que Google Chrome ou Firefox, une image pourra donc donner un rendu ou un autre en fonction de si on utilise le navigateur d’Apple ou non.
Même chose si vous enregistrez / visionnez l’image directement sur votre appareil Apple : le logiciel va vous montrer un rendu différent que sur un PC qui décodera l’image d’une manière différente.
Pour montrer qu’il est possible d’exploiter ce qui peut s’apparenter à une faille, l’ingénieur Buchanan a publié sur Github un outil qu’il a développé, qui permet à n’importe qui de créer une « image à double interprétation » comme celle qu’il a inventée. « Concevez des PNG qui apparaitront différemment sur les logiciels Apple », peut-on lire sur la page de présentation.
Il a d’ailleurs mis sa proposition à exécution en créant une deuxième image, cette fois d’un ordinateur, qui est un Mac ou un IBM en fonction de là où vous l’ouvrez.
En résumé :
Voici ce que vous verrez en fonction de là où vous consultez l’image. Il y a plusieurs cas de figure pris en compte : la consultation de l’image en ligne ou lorsque l’image est enregistrée directement sur l’appareil que vous utilisez.
Nous avons exclu la possibilité de consulter l’image sur Safari depuis un PC, puisque les mises à jour pour Windows ont été arrêtées il y a des années, à la mise à jour 5.1.7.
Vous avez lu 0 articles sur Numerama ce mois-ci
Tout le monde n'a pas les moyens de payer pour l'information.
C'est pourquoi nous maintenons notre journalisme ouvert à tous.
Mais si vous le pouvez,
voici trois bonnes raisons de soutenir notre travail :
- 1 Numerama+ contribue à offrir une expérience gratuite à tous les lecteurs de Numerama.
- 2 Vous profiterez d'une lecture sans publicité, de nombreuses fonctions avancées de lecture et des contenus exclusifs.
- 3 Aider Numerama dans sa mission : comprendre le présent pour anticiper l'avenir.
Si vous croyez en un web gratuit et à une information de qualité accessible au plus grand nombre, rejoignez Numerama+.
Abonnez-vous à Numerama sur Google News pour ne manquer aucune info !