Цифровые подписи Authenticode

Authenticode — это технология подписывания кода Майкрософт, которая определяет издателя программного обеспечения, подписанного Authenticode. Authenticode также проверяет, что программное обеспечение не было изменено с момента его подписания и публикации.

Authenticode использует криптографические методы для проверки удостоверения издателя и целостности кода. Он объединяет цифровые подписи с инфраструктурой доверенных сущностей, включая центры сертификации (ЦС), чтобы гарантировать пользователям, что драйвер исходит от указанного издателя. Authenticode позволяет пользователям проверить удостоверение издателя программного обеспечения, связав сертификат в цифровой подписи с доверенным корневым сертификатом.

С помощью Authenticode издатель программного обеспечения подписывает драйвер или пакет драйверов, помечая их цифровым сертификатом , который проверяет личность издателя, а также предоставляет получателю кода возможность проверить целостность кода. Сертификат — это набор данных, определяющий издателя программного обеспечения. Он выдается центром сертификации только после того, как этот центр проверит удостоверение издателя программного обеспечения. Данные сертификата включают открытый криптографический ключ издателя. Сертификат обычно является частью цепочки таких сертификатов, и в конечном итоге он ссылается на известный ЦС, например VeriSign.

Подписывание кода Authenticode не изменяет исполняемые части драйвера. Вместо этого он выполняет следующие действия:

  • При использовании внедренных подписей процесс подписывания внедряет цифровую подпись в неисполненные части файла драйвера. Дополнительные сведения об этом процессе см. в разделе Внедренные подписи в файле драйвера.

  • Для файлов каталога с цифровой подписью (CAT) процесс подписывания требует создания хэш-значения файла из содержимого каждого файла в пакете драйвера. Это хэш-значение включается в файл каталога. Затем файл каталога подписывается внедренной подписью. Таким образом, файлы каталога являются типом отсоединяемой подписи.

ПримечаниеКомплект сертификации оборудования (HCK) содержит категории тестов для различных типов устройств. Список категорий тестов можно найти в справочнике по API HLK. Если в этот список включена тестовая категория для типа устройства, издатель программного обеспечения должен получить подпись выпуска WHQL для пакета драйверов . Однако если у HCK нет тестовой программы для этого типа устройства, издатель программного обеспечения может подписать пакет драйвера с помощью технологии Microsoft Authenticode. Дополнительные сведения об этом процессе см. в разделе Подписывание драйверов для общедоступного выпуска.