2010-04-29 17 views
5

Tengo algunos controladores que son básicamente LibUSB-Win32 con un nuevo archivo .inf para describir los identificadores de producto/proveedor y las cadenas que describen mi hardware. Esto funciona bien para ventanas de 32 bits, pero las versiones de 64 bits tienen problemas; a saber, que Microsoft, en su sabiduría, exige que todos los conductores estén firmados digitalmente.¿Qué tengo que hacer y cuánto cuesta firmar un controlador de dispositivo para Windows Vista/7 (32 y 64 bits)?

Así que mis preguntas son por lo tanto:

  1. ¿Hay una versión de los controladores LibUSB-Win32 que ya están firmados que pueda usar?
  2. Si aún no hay algunos firmados, puedo canibalizar, ¿qué tengo que hacer exactamente para obtener mis controladores firmados?
  3. ¿Necesito obtener versiones de 64 y 32 bits firmadas por separado y esto costará más?
  4. ¿Es this una alternativa gratuita para que se firmen?
  5. ¿Hay alguna otra opción que deba considerar además de requerir que mis clientes boot into test mode cada vez que inicien sus máquinas (no es una opción que yo considere).
  6. ¿Hay alguna otra opción para la firma de código aparte de Verisign? Es evidente que una iniciativa de código libre/abierto como OpenID sería impresionante ;-)

Respuesta

2

Puede utilizar this tutorial que ignora los controladores no firmados. ¡No creo que quieras pagar porque cuesta alrededor de $ 400 USD!

Here is an other tutorial

También puede ejecutar CMD como administrador y ejecute el siguiente:

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS 
bcdedit.exe -set TESTSIGNING ON 
+5

sin duda lo rehuir los clientes tengan que arrancar en modo de prueba o desactivar la firma. Primero, pondrá la etiqueta "Test Mode" en su escritorio, lo que podría ser confuso. En segundo lugar, los está colocando en una posición en la que el código del kernel no firmado y potencialmente no confiable podría cargarse en su sistema. – Michael

+0

@Micheal: estoy de acuerdo –

+3

Vale la pena señalar que 'bcdedit.exe -set lodoptions DDISABLE_INTEGRITY_CHECKS' no funciona después de Vista RTM. – tyranid

2

Usted puede ser capaz de salirse con intentar la versión libusb-winusb de libusb que trata de poner en práctica la mayoría de los existentes funcionalidad en torno al controlador winusb (que es un binario MS firmado, por lo que no es necesario que lo haga). Sin embargo, YMMV como winusb no se asigna al 100% a toda la funcionalidad requerida en libusb.

2

Hay dos cuestiones distintas a mano:

  1. la firma del archivo de imagen (es decir, el archivo driver.sys) para satisfacer Kernel Mode Código de firma (KMCS)
  2. La firma del paquete de controladores para satisfacer la instalación del controlador (es decir, el archivo driver.cat).

Si toma un controlador existente firmado por otra entidad (ya sea WinUSB de Microsoft o libusb-win32), eso satisfará a KMCS.

En cuanto a la instalación del controlador, necesitaría su propio Certificado de firma de código para firmar un archivo .cat, que verifique que su .inf y los archivos a los que hace referencia (por ejemplo sus archivos .sys) no se hayan modificado y realmente de ti. Es algo menos problemático, ya que a diferencia de KMCS (que detiene la carga de su controlador), no impedirá que se instale su controlador, sino que solo presentará una advertencia al usuario.

Un certificado de firma de código (asegúrese de que sea compatible con KMCS!) le costará cientos de dólares, depende de la CA que elija. Algunos pueden tener planes que le permitan pagar por evento de firma en lugar de globalmente por año.Si no necesita liberar muchas versiones, esto podría ser más económico para usted.

+2

Comenzando en Windows 8, creo que los archivos INF también deben estar firmados. Antes de Windows 8, tenías razón; era posible liberar controladores sin firmar que usan WinUSB o usbser.sys con solo una advertencia de que el editor no pudo ser verificado. –

+2

@DavidGrayson, el archivo INF también debe estar firmado en Windows 7, pero no necesariamente con un certificado Authenticode de una CA conocida. ¿Cambió esta política? ¿Me puede señalar en cualquier documento o blog de MSDN? – Ilya

+0

Disculpe, no tengo un documento de MSDN para señalarlo, pero tengo la experiencia de entregar con éxito los controladores sin firmar a miles de clientes que usaban XP/Vista/7. La existencia de este cuadro de diálogo en Windows Vista/7 también debería ser muy convincente para usted: http://a.pololu-files.com/picture/0J1348.600.png?717531f0f7c9a7c090f22a2939a61e70 –

0

Según mi investigación, podría costar tan poco como US $ 266 tener un controlador de dispositivo firmado. Tengo entendido que solo una empresa puede obtener la firma de un conductor. No lo harán por individuos.

Ref .: CERTUM Code Signing Certificates

Cuestiones relacionadas