Этот драйвер имеет подпись authenticode tm

Обновлено: 06.07.2024

Конфигурация компьютера
Процессор: Intel Core i5-4670k, 3.40 GHz
Материнская плата: ASRock B85M-GL
Память: KINGSTON KVR16N11/8 DDR3 — 8Гб 1600 x2 (16 Гб)
HDD: 3.25 Tb (Sata III, WD 1 Tb + Sata II, Seagate 250 Gb + WD Black WD2003FZEX, 2Тб, HDD, SATA III, 3.5") + Intel SSD 535 Series, 120 Гб
Видеокарта: GIGABYTE Radeon R9 280, GV-R928WF3OC-3GD, 3Гб, GDDR5, OC, Ret
Звук: Realtek ALC662 @ Intel Lynx Point PCH
Блок питания: Aerocool HIGGS 850W
CD/DVD: ASUS DRW-24F1ST/BLK/B/AS
Монитор: Samsung S24E650C [LS24E65KCSE/CI]
ОС: Windows 7 Ultimate x64 SP1
Индекс производительности Windows: 7.6
Прочее: Корпус - ATX THERMALTAKE Commander MS-I VN40006W2N. Доп. SATA-контроллер Espada FG-EST04A-1-CT01

Всем привет. Дано. Сервер с Windows Server 2012 R2 Update1 (Update был поставлен руками отдельно). Подняты "Службы печати и документов". Вроде бы всё нормально - регистрируется порт, подключается к порту принтер и устанавливается драйвер из дистрибутива. Но есть проблема с драйвером для Epson WorkForce Pro WP-4015. При попытке установить драйвер система ругается, что драйвер не имеет цифровой подписи. И правда - в окне выбора устройства (то есть при установки) драйвер не имеет цифровой подписи.

Дома на VirtualBox накатил Windows Server 2012 R2 Update 1 (дистрибутив другой, естественно). Пытаюсь проделать то же самое, но. у меня драйвер является подписанным (Authenticode) и прекрасно ставится. В обоих случаях устанавливался один и тот же дистрибутив драйвера отсюда (раздел Drivers - Printer Driver v1.32)

Собственно вопрос: как поставить этот драйвер на рабочем сервере ? И почему он не ставится на мой рабочий сервер ? Может быть такое, что я пропустил какое-то обновление для системы ?

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

Что такое Authenticode и как он используется?
Наиболее распространенное использование Authenticode удостоверение программного обеспечения, которое работает на Microsoft Windows. Цифровая подпись Authenticode позволяет быть уверенным, что программное обеспечение является подлинным, а не троянской прграммой или другой вредоносной программой под видом другого продукта. Она также позволяет обнаружить, если программа была изменена — например, заражена вирусом.
Цифровая подпись Authenticode сама по себе не доказывает, что устанавливаемое программное обеспечение безвредно. Тем не менее, лица или организации, которые подписали программное обеспечение должны доказать, кто они такие, для органа выдавшего сертификат. Поэтому они прослеживаются, что делает маловероятным, что файл с цифровой подписью будет намеренно вредоносным.
Как узнать, подписано программное обеспечение или нет
Текущие версии основных веб-браузеров, работающих под ОС Windows отобразят предупреждение системы безопасности при запуске программного обеспечения, загруженного из Интернета, которая показывает, имеет ли скачиваемый файл цифровую подпись или нет.

Данный файл не имеет цифровой подписи.

У этого файла есть цифровая подпись.

Вы также можете узнать, является ли программное обеспечение на жестком диске с цифровой подписью или нет, нажав правой кнопкой мыши на файл в Windows Explorer и выберите пункт Свойства. Если программа была подписана в окне свойств появиться вкладка Цифровые подписи, демонстрируя, кто подписал файл и когда они его подписали.

Программное обеспечение без знака,это опасно?
Все цифровые подписи Authenticode являются гарантией того, что программное обеспечение было произведено лицами или компаниями, указанными в сертификате, который был проверен в органе, выдавшим сертификат. Но Вы всё ещё должны решить для себя, стоит ли доверять, этому лицу или компании.
Программное обеспечение не всегда опасно именно потому, что не имеет цифровой подписи. Это не является обязательным для подписания кода, прежде чем он будет работать под Windows, поэтому многие разработчики программного обеспечения не беспокоятся . И, хотя сертификат подписывания кода не особо дорогой ($ 179 только за один год на подписание сертификата кода Comodo), много любителей программистов и условных-разработчиков делают мало или вообще не получают деньги от своих программ и не чувствуют, что они могут себе этого позволить. В этом случае вы должны использовать свои собственные суждения относительно того, что вы загрузили программное обеспечение которое является подлинным, а также того,что этот разработчик заслуживает доверия.
Как получить сертификат Authenticode?
Если Вы являетесь разработчиком программного обеспечения или другим дистрибьютором компьютерных файлов, вы можете получить сертификат издателя программного обеспечения (более известный как свидетельство подписания кода) с центром сертификации, такими как Comodo, Thawte или Verisign Вы должны заплатить взнос, а затем подать документы в центр сертификации, чтобы доказать, кто вы и за кого вы себя выдаёте. Если ваше приложение пройдёт успешно, вы получите цифровой сертификат, который можно использовать для подписи исполняемых файлов с помощью инструментов, предоставляемых Microsoft.

Authenticode is a Microsoft code-signing technology that identifies the publisher of Authenticode-signed software. Authenticode also verifies that the software has not been tampered with since it was signed and published.

Authenticode uses cryptographic techniques to verify publisher identity and code integrity. It combines digital signatures with an infrastructure of trusted entities, including certificate authorities (CAs), to assure users that a driver originates from the stated publisher. Authenticode allows users to verify the identity of the software publisher by chaining the certificate in the digital signature up to a trusted root certificate.

Using Authenticode, the software publisher signs the driver or driver package, tagging it with a digital certificate that verifies the identity of the publisher and also provides the recipient of the code with the ability to verify the integrity of the code. A certificate is a set of data that identifies the software publisher. It is issued by a CA only after that authority has verified the software publisher's identity. The certificate data includes the publisher's public cryptographic key. The certificate is typically part of a chain of such certificates, ultimately referenced to a well-known CA such as VeriSign.

Authenticode code signing does not alter the executable portions of a driver. Instead, it does the following:

With embedded signatures, the signing process embeds a digital signature within a nonexecution portion of the driver file. For more information about this process, see Embedded Signatures in a Driver File.

With digitally-signed catalog files (.cat), the signing process requires generating a file hash value from the contents of each file within a driver package. This hash value is included in a catalog file. The catalog file is then signed with an embedded signature. In this way, catalog files are a type of detached signature.

Note The Hardware Certification Kit (HCK) has test categories for a variety of device types. The list of test categories can be found at HLK API Reference. If a test category for the device type is included in this list, the software publisher should obtain a WHQL release signature for the driver package However, if the HCK does not have a test program for the device type, the software publisher can sign the driver package by using the Microsoft Authenticode technology. For more information about this process, see Signing Drivers for Public Release.


В прошлый раз мы рассматривали цифровые SSL сертификаты, в этот раз рассмотрим еще один вариант цифровых сертификатов.
Code Signing сертификаты — это сертификат, которым подписывается программное обеспечение или скрипты, который подтверждает автора программы и гарантирует, что код не был изменен, после того, как была наложена цифровая подпись. Также их еще называют сертификаты разработчика.

Итак сертификаты разработчика предоставляют нам несколько возможностей. Во-первых это механизм цифровой подписи, которая подтверждает, что программа, которой вы пользуетесь действительно выпущена той или иной компанией, то есть гарантирует подлинность источника. А во вторых гарантирует целостность содержимого, то есть, что с момента подписания программный продукт не был поврежден или изменен.

Во всех современных версиях Windows, начиная с Windows XP SP2, при установке программного обеспечения без такой цифровой подписи вы получите предупреждение. То же самое кстати касается и установки драйверов, которые не имеют соответствующей цифровой подписи.


В случае, если цифровая подпись не найдена, Windows выдаст предупреждение, что у этой программы «Неизвестный издатель» и запускать её не рекомендуется.

В случае, если программа имеет цифровую подпись, то окошко будет выглядеть иначе и вы также сможете посмотреть информацию о сертификате.


Какие бывают виды Code signing сертификатов, и чем отличаются?

Прежде всего рассмотрим сертификаты, по центрам сертификации, которые их выпускают.

Лучше всего различия между сертификатами от разных центров сертификации показывает сводная табличка.
В колонках указаны названия центров сертификации, а в в строках тип сертификата или технология/платформа для которой он используется.

Платформа \ Центр сертификации Symantec Thawte Comodo Digicert Globalsign Trustwave Startcom
Microsoft Authenticode Signing + + + + + + +
Code Signing for Apple + + + + + +
Microsoft Vba Signing + + + + + + +
Java Code Signing + + + + + + +
Adobe Air Signing + + + + + + +
Kernel Mode Signing + + + +
Android +
Windows Phone +
Qualcomm BREW +
Стоимость, от 500$ 250$ 90$ 220$ 220$ 330$ 200$

стоит уточнить, что не все центры сертификации дают полную информацию о платформах, на которых работают их сертификаты, поэтому плюсом отмечены только те платформы, поддержка которых в явном виде заявлена центром сертификации.

Microsoft Authenticode

Для подписи 32 и 64 битных файлов (.exe, .cab, .dll, .ocx, .msi, .xpi и .xap файлы). Также позволяет подписывать код для Microsoft® Office, Microsoft VBA, Netscape Object Signing и Marimba Channel Signing.
Поддерживает приложения на Silverlight 4

Code Signing for Apple

Позволяет разработчикам подписывать программы для Mac OS, а также обновления для программного обеспечения

Microsoft Office Vba Signing

Подписывает VBA объекты, скрипты и макросы для файлов Microsoft Office .doc, .xls, и.ppt
Для Microsoft Office и дополнений, которые используют VBA

Java Code Signing

Для подписи Java апплетов. Позволяет подписывать .jar файлы и Java приложения для настольных и мобильных устройств.
Распознается Java Runtime Environment (JRE)

Adobe Air Signing

Для подписи файлов .air
Требуется для всех приложений, основанных на AIR

Kernel Mode Signing

Сертификаты разработчика Kernel-Mode позволяют подписывать, так называемые kernel-mode приложения и драйвера устройств. 64 битная версия Windows Vista и Windows 7 требуют, чтобы все kernel-mode приложения были подписаны сертификатом и доверенного центра сертификации.

Android

Для подписи и оптимизации .apk файлов для платформы Android

Microsoft Windows Phone

Для цифровой подписи приложений для Windows Phone и Xbox 360. Требуется для сервиса Microsoft App Hub

Qualcomm BREW

Для тех, кто разрабатывает приложения под платформу BREW (Binary Runtime Environment for Wireless)

Как работает Code Signing сертификат:

Процесс подписи кода.
  1. Издатель (разработчик) запрашивает Code Signing сертификат у центра сертификации
  2. Используя SIGNCODE.EXE или другую утилиту для подписи кода издатель, cоздает хеш кода, используя алгоритмы MD5 или SHA
  3. Кодирует хеш, с помощью приватного ключа
  4. Создает пакет, который включает в себя: код, зашифрованный хеш и сертификат издателя
Процесс проверки подписанного кода.


  1. Пользователь скачивает или устанавливает подписанное ПО и платформа или система пользователя проверяет сертификат издателя, который подписан корневым приватным ключем центра сертификации
  2. Система запускает код, используя тот же самый алгоритм создания хеша, как издатель и создает новый хеш
  3. Используя публичный ключ издателя, который содержится в сертификате, система расшифровывает зашифрованный хеш
  4. И сравнивает между собой 2 хеша
Центр сертификации

Когда разработчик запрашивает цифровой сертификат — центр сертификации идентифицирует его и выпускает сертификат, связанный с корневым сертификатом центра сертификации. Платформы и устройства содержат в себе корневой сертификат соответствующего центра сертификации. То есть если платформа или устройство доверяет какому-либо центру сертификации, то оно доверят и вашему сертификату, подписанному этим центром сертификации.
В случае если хеши не совпадают вы получите ошибку при запуске такого ПО — это может означать, что ПО было модифицировано вирусом или злоумышленником.

Когда ПО расшифровывает цифровую подпись, оно проверяет также корневой сертификат в системе, источник проверенной информации. В случае использования самоподписного сертификата, вы получите ошибку: «издатель не может быть проверен». Поэтому важно использовать сертификаты того центра сертификации, чьи корневые сертификаты уже установлены в системе у предполагаемого пользователя программы.

О самом процессе верификации организации рассказывать не буду, так как он такой же как и для SSL сертификатов с валидацией организации, о чем мы уже говорили в прошлой статье.

Несколько слов про timestamp.

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

Пример:
Сертификат действителен с: 01.01. 2008
Сертификат действителен до: 31.12.2010
Подпись сделана: 04.07.2009
Подпись проверена: 30.04.2012

C временной меткой (timestamp) подпись пройдет проверку, поскольку на момент подписи сертификат был действителен. Без такой метки сертификат не пройдет проверку, поскольку на момент проверки у сертификата уже закончился срок.
То есть такая метка позволяет использовать подписанный код, даже после срок окончания сертификата.

Подведем итог

Для выбора сертификата сначала нужно выбрать центр сертификации, который выпускает сертификаты под нужную вам платформу, а дальше выбор по сути сводится к выбору по цене и по известности центра сертификации, зачастую клиенты выбирают те центры сертификации, с которым уже работали ранее.

Несколько советов.
  1. Заявку на сертификат желательно оформлять с той же машины, с которой вы потом будете выполнять подпись ПО.
  2. Большинство центров сертификации рекомендуют генерировать заявку на сертификат через Internet explorer, хотя при генерации заявок через другие браузеры у нас также не было проблем.

Буду рад ответить на вопросы по сертификатам разработчика, в рамках своей компетенции, так как сам разработчиком не являюсь.
Также буду рад дополнениям и уточнениям от тех, кто такими сертификатами пользуется.

UPD: добавил важную информацию про timestamp (временную метку), спасибо TolTol и crea7or

Читайте также: