Поделиться через


Файлы каталога и цифровые подписи

Файл каталога с цифровой подписью (CAT) можно использовать в качестве цифровой подписи для произвольной коллекции файлов. Файл каталога содержит коллекцию криптографических хэшей или отпечатков. Каждый отпечаток соответствует файлу, который входит в коллекцию.

установка устройства самонастраивающийся (PnP) распознает подписанный файл каталога пакета драйвера как цифровую подпись пакета драйвера. Каждый отпечаток в файле каталога соответствует файлу, который устанавливается пакетом драйвера. Независимо от предполагаемой операционной системы криптографическая технология используется для цифровой подписи файла каталога.

Установка устройства PnP считает, что цифровая подпись пакета драйвера является недопустимой, если любой файл в пакете драйвера изменяется после подписания пакета драйвера. К таким файлам относятся INF-файл, файл каталога и все файлы, скопированные директивами INF CopyFiles. Например, даже однобайтовое изменение для исправления ошибок делает цифровую подпись недопустимой. Если цифровая подпись недопустима, необходимо повторно отправить пакет драйвера в windows Центр разработки оборудования для новой подписи или создать новую подпись Authenticode для пакета драйвера.

Аналогичным образом, изменения оборудования или встроенного ПО устройства требуют изменения значения идентификатора устройства, чтобы система может обнаружить обновленное устройство и установить правильный драйвер. Так как измененное значение идентификатора устройства должно отображаться в INF-файле, необходимо повторно отправить пакет в Windows Центр разработки оборудования для новой подписи или создать новую подпись Authenticode для пакета драйвера. Необходимо получить новый идентификатор устройства, даже если двоичные файлы драйвера не изменяются.

Директива CatalogFile в разделе INF-версии INF-файла драйвера указывает имя файла каталога для пакета драйвера. Во время установки драйвера операционная система использует директиву CatalogFile для идентификации и проверки файла каталога. Система устанавливает файл каталога в каталог CatRoot под системным каталогом, возвращенным GetSystemDirectory, например %SystemRoot%\System32\CatRoot. Файлы каталога не следует добавлять или удалять из этого каталога вручную. Для пакетов драйверов файл каталога автоматически устанавливается в CatRoot, когда пакет драйвера выполняется в Хранилище драйверов. Файл каталога автоматически удаляется из CatRoot при удалении пакета драйверов из Хранилища драйверов. Если вам нужно установить файл каталога в CatRoot по причинам за пределами пакета драйвера, см. статью "Установка файла каталога с помощью SignTool и установка файла каталога с помощью CryptCATAdminAddCatalog".

Рекомендации по файлам каталога

Начиная с Windows 2000, если пакет драйвера устанавливает одни и те же двоичные файлы во всех версиях Windows, INF-файл может содержать одну директиву CatalogFile без изменений. Однако если пакет устанавливает разные двоичные файлы для разных версий Windows, INF-файл должен содержать украшенные директивы CatalogFile . Дополнительные сведения о директиве CatalogFile см. в разделе "ВЕРСИЯ INF".

Если у вас несколько пакетов драйверов, необходимо создать отдельный файл каталога для каждого пакета драйвера и предоставить каждому файлу каталога уникальное имя файла. Два несвязанных пакета драйверов не могут совместно использовать один файл каталога. Однако для одного пакета драйверов, обслуживающего несколько устройств, требуется только один файл каталога.