Fichiers catalogue et signatures numériques

Un fichier catalogue signé numériquement (.cat) peut être utilisé comme signature numérique pour une collection arbitraire de fichiers. Un fichier catalogue contient une collection de hachages de chiffrement ou d’empreintes numériques. Chaque empreinte correspond à un fichier inclus dans la collection.

Plug-and-Play l’installation de l’appareil (PnP) reconnaît le fichier catalogue signé d’un package de pilotes comme signature numérique pour le package de pilotes, où chaque empreinte numérique dans le fichier catalogue correspond à un fichier installé par le package de pilotes. Quel que soit le système d’exploitation prévu, la technologie de chiffrement est utilisée pour signer numériquement le fichier catalogue.

L’installation d’un périphérique PnP considère que la signature numérique d’un package de pilotes n’est pas valide si un fichier du package de pilotes est modifié après la signature du package de pilotes. Ces fichiers incluent le fichier INF, le fichier catalogue et tous les fichiers copiés par les directives Inf CopyFiles. Par exemple, même une modification sur un octet pour corriger une faute d’orthographe invalide la signature numérique. Si la signature numérique n’est pas valide, vous devez soit renvoyer le package de pilotes au Windows Hardware Quality Labs (WHQL) pour obtenir une nouvelle signature, soit générer une nouvelle signature Authenticode pour le package de pilotes.

De même, les modifications apportées au matériel ou au microprogramme d’un appareil nécessitent une valeur d’ID d’appareil révisée afin que le système puisse détecter l’appareil mis à jour et installer le pilote approprié. Étant donné que la valeur de l’ID d’appareil révisée doit apparaître dans le fichier INF, vous devez soit renvoyer le package à WHQL pour une nouvelle signature, soit générer une nouvelle signature Authenticode pour le package de pilotes. Vous devez le faire même si les fichiers binaires du pilote ne changent pas.

La directive CatalogFile dans la section Version INF du fichier INF du pilote INF spécifie le nom du fichier catalogue pour le package de pilotes. Pendant l’installation du pilote, le système d’exploitation utilise la directive CatalogFile pour identifier et valider le fichier catalogue. Le système installe le fichier catalogue dans le répertoire CatRoot sous le répertoire système retourné par GetSystemDirectory, par exemple %SystemRoot%\System32\CatRoot. Notez que les fichiers catalogue ne doivent pas être ajoutés ou supprimés manuellement de ce répertoire. Pour les packages de pilotes, le fichier catalogue est automatiquement installé sur CatRoot lorsque le package de pilotes est indexé dans le magasin de pilotes et est automatiquement désinstallé du CatRoot lorsque le package de pilotes est supprimé du magasin de pilotes. Si vous devez installer un fichier catalogue sur CatRoot pour des raisons extérieures à un package de pilotes, consultez Installation d’un fichier catalogue à l’aide de SignTool et Installation d’un fichier catalogue à l’aide de CryptCATAdminAddCatalog.

Recommandations pour les fichiers catalogue

À compter de Windows 2000, si le package de pilotes installe les mêmes fichiers binaires sur toutes les versions de Windows, le fichier INF peut contenir une seule directive CatalogFile non décorée. Toutefois, si le package installe différents fichiers binaires pour différentes versions de Windows, le fichier INF doit contenir des directives CatalogFile décorées. Pour plus d’informations sur la directive CatalogFile , consultez la section Version INF.

Si vous avez plusieurs packages de pilotes, vous devez créer un fichier catalogue distinct pour chaque package de pilotes et donner à chaque fichier catalogue un nom de fichier unique. Deux packages de pilotes non liés ne peuvent pas partager un seul fichier catalogue. Toutefois, un seul package de pilotes qui sert plusieurs appareils ne nécessite qu’un seul fichier catalogue.