Cette image se transforme selon si vous l’ouvrez depuis un appareil Apple (Mac, iPhone ou iPad), un Android ou un PC. Il est statistiquement plus rare de voir « Hello Apple » que « Hello World ».

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.

Seuls les propriétaires de Mac ou d’iPhone peuvent voir cette image Seuls les propriétaires de Mac ou d’iPhone peuvent voir cette image

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 :

Seuls les propriétaires de Mac ou d’iPhone peuvent voir cette image

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.

Seuls les propriétaires de Mac ou d’iPhone peuvent voir cette image

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.

Seuls les propriétaires de Mac ou d’iPhone peuvent voir cette image
Ce que voient celles et ceux qui voient « Hello word » // Source : David Buchanan