Skip to content
Bertrand Caron edited this page May 17, 2024 · 10 revisions

ZIP (conteneur générique) Statut

Description

ZIP est un format de fichier conteneur générique permettant d'empaqueter et, éventuellement, de compresser sans perte un ensemble de fichiers. Le format utilise, dans la grande majorité des cas, la méthode de compression sans perte Deflate, méthode de compression simple et générique qui agit sur la redondance des données.

Sociabilité

L'utilisation du format ZIP est massive dans tous les secteurs. Ce format a longtemps été majoritairement employé par les systèmes Windows, tandis que ceux fondés sur Unix (GNU/Linux et Mac OS) lui préféraient des paquets TAR compressés avec les algorithmes GZIP et BZIP2. Désormais, même les systèmes d'exploitation fondés sur Unix gèrent nativement le format ZIP.

Relations à d’autres formats

ZIP a été utilisé comme format conteneur pour de nombreux formats spécialisés : OpenDocument Format, EPUB, Office Open XML - Document, etc.

Versions

Le format, introduit en 1989, est relativement stable (CPO-STA). Des évolutions se sont succédées jusqu'à la version 6.3.9 (juillet 2020). On peut citer les évolutions majeures suivantes :

  • version 4.5 (2001) : documentation d'une version 64 bits ;
  • version 5.2 (2003) : gestion du chiffrement AES ;
  • version 6.3.0 (2006) : gestion d'UTF-8 pour l'encodage des noms de fichiers.

Dans l'en-tête du fichier, on trouve deux éléments de métadonnées indiquant la version du logiciel qui a créé le fichier (version made by) et celle minimale pour en réaliser l'extraction (version needed to extract).

Contenu

Le format ZIP peut empaqueter des fichiers de n'importe quel format (on notera que la commande Unix unzip -l monfichier.zip permet de lister tous les fichiers contenus dans un conteneur ZIP).

Une restriction du format ZIP, basée sur la version 6.3.3, limitant la méthode de compression à Deflate et interdisant le chiffrement, est normalisée à l'ISO sous l'identifiant ISO/IEC 21320-1. Cette norme est diffusée gratuitement.

Identifiants

Registre Identifiant
Wikidata Q136218 et
Q26211840 pour le profil ISO
Bibliothèque du Congrès fdd000354,
fdd000355 version 6.2.0,
fdd000362 version 6.3.3, et
fdd000361 pour le profil ISO
PRONOM x-fmt/263
Just Solve the File Format Problem ZIP et Zipx

Caractéristiques techniques

Compacité (CPO-COM) : le format est compatible avec un nombre important de méthodes de compression, mais la méthode Deflate est la plus utilisée. Il est possible de n'utiliser que la fonctionnalité d'empaquetage, sans mettre en œuvre de compression. Cette option est recommandée si les données contenues ont déjà fait l'objet d'une compression. Ainsi est-il inutile de réappliquer une compression _Deflate _sur des fichiers MPEG-1/2 layer 3 qui ont déjà subi une compression mieux adaptée à leur type de contenu audio. En revanche, la volumétrie d'un fichier ZIP contenant des données non compressées (par exemple, fichiers TIFF sans compression, fichiers XML, etc.) sera fortement réduite. Les outils de manipulation ZIP ont pour habitude d'indiquer par l'extension .zipx que la méthode de compression est autre que Deflate.

Robustesse (CPO-ROB) : le format ZIP embarque une empreinte numérique CRC-32 des fichiers contenus. Cette fonctionnalité permet d'identifier des altérations sur tout ou partie du contenu. Si une méthode de compression a été appliquée, l'empreinte correspond à la version non compressée. Il est donc nécessaire de décompresser les contenus pour contrôler l'intégrité, ce que font généralement les logiciels qui manipulent ZIP. L'option -T de la commande zip permet de tester l'intégrité du contenu du fichier ZIP. En outre, en cas d'altération du conteneur, une option -F ou --fix permet d'ignorer les enregistrements corrompus et produit un ZIP valide, donc à nouveau lisible.

Mécanismes de protection (CPO-PRO) : la spécification définit une simple protection par mot de passe (ZipCrypto), connue pour être aisément contournable, puis, à partir de sa version 5.2, elle ajoute la norme AES. La protection est réalisée unitairement sur chaque fichier embarqué, ce qui implique qu'un fichier ZIP peut contenir des fichiers protégés et d'autres qui ne le sont pas. En outre, si le contenu du fichier est protégé, le nom du fichier reste lisible.

On notera pour mémoire le risque de sécurité introduit par des fichiers ZIP malveillants : des bombes de décompression dont la volumétrie est très réduite mais qui, une fois décompressées, occupent un espace considérable, ce qui peut geler les systèmes.

simplicité (CPO-SIM), transparence (CPO-TRA) et indépendance / autonomie (CPO-AUT).

Métadonnées internes

Le format ZIP possède un annuaire central (directory central) qui permet de conserver l'ensemble des métadonnées associés aux fichiers contenus (nom, longueur, attributs des systèmes de fichiers, CRC32, ...). Il est également possible d'ajouter un commentaire (champ comment).

Enfin, un mécanisme d'extension (extra field) permet d'ajouter des informations mais rend leur utilisation tributaire d'un logiciel particulier. À titre d'exemple, on peut citer l'extension FWKCS (code 0x4b46) qui ajoute l'empreinte MD5 des fichiers.

Outils connus par la BnF

Bien que l'outil WinZip ait été longtemps hégémonique, il existe désormais de multiples outils qui gèrent le format ZIP, dont des outils libres comme PeaZIP ou 7-ZIP. Un ensemble d'utilitaires pour manipuler les fichiers ZIP, Info-ZIP est également disponible sur les principaux systèmes d'exploitation. Enfin, la plupart des langages, notamment Java (java.util.zip) et Python (zipfile), disposent de bibliothèques de base dédiées pour le traitement de ce format.

La commande Unix zip permet de créer, d'extraire, d'éditer, de tester et de corriger des fichiers ZIP.

Usage ou présence dans les collections de la BnF

Des fichiers ZIP sont présents dans les collections de la BnF - ne serait-ce que parce que ce format est la base de très nombreux autres (EPUB, DOCX, ODS, APK, etc.). En outre, tous les Paquets d'informations produits par des prestataires de numérisation et livrés à la BnF le sont sous forme de conteneurs ZIP.

Clone this wiki locally