Aller au contenu

JPEG : Joint Photographic Experts Group

Infrastructure

JPEG : Joint Photographic Experts Group, comité qui a donné son nom au format de compression d'images photographiques le plus répandu. « Le format qui jette une partie de l'image en pariant que l'œil ne s'en apercevra pas », par analogie avec le traiteur qui allège un peu la recette à chaque réchauffage : personne ne s'en plaint, jusqu'au dixième.

Principe : Norme publiée en 1992 (ISO/IEC 10918-1, également recommandation T.81 de l'Union internationale des télécommunications). La compression avec pertes découpe l'image en blocs de 8 × 8 pixels, la convertit en fréquences par transformée en cosinus discrète et écarte les détails fins que l'œil perçoit mal. Chaque nouvel enregistrement perd encore un peu, comme une photocopie de photocopie.

Reconnaître un vrai JPEG : Le fichier commence par les octets FF D8 FF. L'extension .jpg et l'en-tête HTTP Content-Type: image/jpeg ne sont que des déclarations : ni l'une ni l'autre ne prouve que le contenu est une image, encore moins une image inoffensive.

Le faux JPEG : Un fichier HTML déposé sous le nom photo.jpg reste du HTML. Si le serveur n'envoie pas X-Content-Type-Options: nosniff, un navigateur permissif peut deviner le type réel par reniflage MIME (Multipurpose Internet Mail Extensions) et afficher la page comme une page du site, scripts compris : un XSS stocké livré sous l'apparence d'une photo de vacances.

Métadonnées : Les données EXIF (Exchangeable Image File Format) d'une photo peuvent contenir la position GPS de la prise de vue, le modèle d'appareil et la date. Publiées telles quelles, elles en disent plus sur l'auteur que la légende.

Ce qui arrive si on s'en passe

Un service d'envoi de fichiers qui se fie à l'extension .jpg accepte n'importe quoi, pourvu que le nom soit photogénique. Le fichier piégé est servi depuis le domaine principal, le navigateur le traite comme une page, et le script qu'il contient agit avec la session de chaque visiteur qui l'ouvre. La parade tient en peu de gestes : vérifier le contenu réel, réencoder les images, servir les fichiers des utilisateurs depuis un domaine séparé avec nosniff et Content-Disposition: attachment. Encore faut-il y penser avant qu'un faux portrait ne fasse de vrais dégâts.

Explication de la marmotte

JPEG est le format le plus courant pour les photos sur Internet et dans les téléphones. Il rend les fichiers beaucoup plus légers en supprimant des détails que l'œil remarque à peine. Attention : un fichier qui s'appelle « photo.jpg » n'est pas forcément une vraie image, car on peut renommer n'importe quel fichier. Un site sérieux vérifie donc ce qu'il y a vraiment dedans avant de le montrer à ses visiteurs.

Où ce terme est utilisé

← Tout le glossaire