# Vérifier l’intégrité d’une extension avec des signatures avant de l’installer

> Face aux extensions piratées sur des dépôts non officiels, méthode pour vérifier la provenance et le hachage d'un paquet avant de le déployer sur un site client.

- Auteur : Clément Hadrot
- Publié le : 2023-05-05
- Mis à jour le : 2023-05-05
- Catégorie : Sécurité
- URL : https://wpmoderne.dev.wordpress-developpement.fr/securite/verifier-integrite-extension-signatures-avant-installation/

## L’essentiel

- Un fichier ZIP téléchargé ne prouve rien sur son contenu réel
- Une empreinte SHA-256 publiée par l'éditeur permet de vérifier sans confiance aveugle
- GPG ajoute une preuve d'origine, pas seulement d'intégrité

Un client dispose d'une licence légitime pour une extension premium de constructeur de pages, achetée directement auprès de l'éditeur, mais a perdu l'accès à son compte client suite à un changement d'adresse e-mail non mis à jour à temps. En attendant la résolution du support (annoncée sous plusieurs jours), il nous demande de récupérer une copie du fichier d'installation ailleurs, une pratique qu'il a déjà utilisée par le passé via un site tiers listant des extensions premium « libérées ».

Nous refusons cette approche pour la mise en production, pour une raison simple : un fichier ZIP téléchargé depuis un dépôt non officiel, même présenté comme identique à l'original, ne offre aucune garantie sur son contenu réel. C'est précisément le vecteur utilisé par de nombreuses campagnes de compromission documentées ces dernières années : des extensions ou thèmes premium redistribués gratuitement sur des dépôts non officiels, modifiés pour y inclure une porte dérobée, souvent indétectable à l'usage normal du produit.

## Pourquoi l'apparence de légitimité ne prouve rien

Un paquet piégé fonctionne généralement de façon indiscernable de l'original pour l'utilisateur final : toutes les fonctionnalités promises sont présentes, l'interface est identique, aucune erreur n'apparaît à l'usage. Le code malveillant ajouté se limite souvent à quelques lignes, dissimulées dans un fichier peu consulté (un fichier d'assets, une bibliothèque tierce embarquée) et généralement obscurcies pour résister à une lecture rapide. La seule façon fiable de détecter une altération n'est donc pas d'utiliser le produit, mais de vérifier que le fichier téléchargé correspond exactement, au bit près, à ce que l'éditeur légitime a publié.

## La vérification par empreinte cryptographique

> L'essentiel à retenir : Un fichier ZIP téléchargé ne prouve rien sur son contenu réel ; Une empreinte SHA-256 publiée par l'éditeur permet de vérifier sans confiance aveugle ; GPG ajoute une preuve d'origine, pas seulement d'intégrité

Un hachage cryptographique (SHA-256, le plus courant aujourd'hui) produit une empreinte unique à partir du contenu exact d'un fichier : la moindre modification, même d'un seul octet, change entièrement l'empreinte résultante. Certains éditeurs d'extensions premium publient l'empreinte SHA-256 officielle de chaque version, sur leur site ou dans leur espace client, précisément pour permettre ce type de vérification indépendante :

```
sha256sum extension-premium-3.4.2.zip
# 8f14e45fceea167a5a36dedd4bea2543ffa269cf...  extension-premium-3.4.2.zip
```

Cette empreinte calculée localement doit être comparée, caractère pour caractère, à celle publiée par l'éditeur pour cette version précise. Toute divergence, même minime, signifie que le fichier en main n'est pas strictement identique à la version publiée officiellement — que la cause soit une altération malveillante, une corruption de transfert, ou simplement une version différente de celle annoncée.

```
# Comparaison automatisée plutôt que visuelle, plus fiable
EMPREINTE_CALCULEE=$(sha256sum extension-premium-3.4.2.zip | awk '{print $1}')
EMPREINTE_OFFICIELLE="8f14e45fceea167a5a36dedd4bea2543ffa269cf..."

if [ "$EMPREINTE_CALCULEE" != "$EMPREINTE_OFFICIELLE" ]; then
    echo "ALERTE : empreinte non conforme, fichier à ne pas installer"
    exit 1
fi
```

## Quand aucune empreinte officielle n'est publiée

La plupart des dépôts non officiels ne publient évidemment aucune empreinte de référence, puisque leur intérêt commercial repose justement sur l'absence de vérification possible. Dans ce cas, la vérification par hachage devient impossible à réaliser faute de référence fiable — ce qui constitue en soi un signal d'alerte suffisant pour refuser catégoriquement d'installer le paquet sur un site en production, quelle que soit la pression du client ou l'urgence ressentie.

Pour les extensions distribuées via le répertoire officiel WordPress.org, la vérification passe par un mécanisme différent, déjà largement couvert par ailleurs : la commande `wp plugin verify-checksums`, qui compare les fichiers installés aux sommes de contrôle publiées par WordPress.org lui-même pour cette version précise.

## La signature GPG, quand elle est disponible, ajoute une preuve d'origine

Un hachage prouve qu'un fichier n'a pas été modifié par rapport à une référence donnée, mais ne prouve rien sur la légitimité de cette référence elle-même — si l'empreinte affichée sur un site provient du même acteur malveillant que le fichier, la vérification ne sert à rien. Une signature GPG (GNU Privacy Guard) va plus loin : elle prouve cryptographiquement que le fichier a été signé par le détenteur d'une clé privée spécifique, dont la clé publique correspondante est diffusée par des canaux indépendants (le site officiel de l'éditeur, un serveur de clés public reconnu).

```
# Import de la clé publique de l'éditeur, obtenue via un canal de confiance
gpg --import cle-publique-editeur.asc

# Vérification de la signature accompagnant le paquet téléchargé
gpg --verify extension-premium-3.4.2.zip.sig extension-premium-3.4.2.zip
# "Good signature from ..." confirme l'origine et l'intégrité conjointement
```

Peu d'éditeurs d'extensions WordPress premium proposent aujourd'hui une signature GPG systématique, contrairement à l'écosystème des paquets système Linux où cette pratique est la norme. Quand elle est disponible, elle doit être privilégiée par rapport à un simple hachage, précisément parce qu'elle authentifie la source autant que le contenu.

## La décision prise sur ce dossier

Faute d'empreinte officielle disponible pour la version recherchée et faute de pouvoir attendre en toute confiance une source alternative fiable, la recommandation a été d'attendre la résolution du support éditeur plutôt que de prendre un risque sur un site de production hébergeant des données clients. Le délai supplémentaire de quelques jours reste largement préférable à l'installation d'un code dont l'intégrité ne peut être établie.

> Sur nos projets, la règle est sans exception : aucune extension ou thème premium n'est installé sur un site client sans provenir soit du dépôt officiel de l'éditeur avec licence valide, soit d'une vérification d'empreinte réussie contre une référence publiée par une source indépendante et fiable.

## Pour aller plus loin

Cette méthode ne remplace pas `wp core verify-checksums`, déjà traité ailleurs et dédié spécifiquement aux fichiers du cœur de WordPress. Elle s'applique en complément à tout paquet tiers — extension ou thème premium — pour lequel WordPress ne propose nativement aucun mécanisme de vérification équivalent.
