certificate - the - En Windows 8, ¿los archivos del controlador INF de terceros requerirán una firma?
error durante la operacion ddj rb asio (2)
No solo requiere la firma de los archivos INF, sino que también requiere que estén firmados por el certificado WHQL , no el mismo que se usa para los archivos .sys con firma incrustada y similares. El uso de mi certificado de firma de código en el archivo INF no funcionó en absoluto. (Los mismos problemas que si no se hubieran firmado).
EDITAR:
Esto es lo que Microsoft quiere que pienses. Dijeron que ciertas clases de controladores TIENEN que ser firmados por WHQL, de lo contrario no funcionarán, y que la firma Authenticode solo funciona para aquellos que no tienen un proceso WHQL.
Resulta que usted puede Autenticode firmar los paquetes de controladores, excepto que debe cuidarse y firmarlos como lo haría con el código del kernel ahora, lo que significa obtener el certificado cruzado correcto para su CA (de Certificados cruzados para la firma del Código del modo Kernel , hay toneladas de ellos ahora, incluido StartCom, que tengo (clase 2, US $ 60 por dos años, pero no pueden tener la marca de tiempo). Suministre este certificado cruzado (no es lo mismo que el certificado autofirmado de su CA o su certificado intermedio). Solo está disponible en esa página de MSDN) para SignTool través del SignTool /ac
.
Luego use SignTool Verify con el conmutador /kp
para ver si se cruzaron correctamente. La verificación de SignTool con sin ningún interruptor REQUIERE que los archivos .cat estén firmados por WHQL, mientras que el interruptor /pa
, que parecía estar bien antes, ahora es demasiado laxo, y solo se aplica a la firma sin controladores (como los archivos EXE, ClickOnce , etc.) .).
Si no desea adquirir su propio certificado de firma a nivel de kernel (lo cual es más fácil ahora que antes, francamente, antes de que se limitara a los costosos de VeriSign y GlobalSign a US $ 200 al año, supongo que Microsoft no lo vio). muchas personas escribieron exploits a nivel de kernel para sistemas x64), puede crear una CA raíz autofirmada , hacer que el instalador de su controlador lo instale en el almacén de la "Autoridad de Certificación de Raíz de Confianza" de LocalMachine (consulte certmgr.exe
) y luego instale el. Archivo cat que fue firmado por eso. Por supuesto, ya que este no es un certificado de código de nivel de kernel, DEBE usar solo archivos .sys que ya tienen un certificado de código de nivel de kernel incrustado de otra persona (lo que significa que solo puede modificar archivos .inf en paquetes de controladores) . Aparentemente, hay algunos resquicios que permiten que los certificados autofirmados firmen archivos .cat (si usted creó su propia CA, luego firmó un certificado y luego firmó sus archivos .cat con eso, no funcionará de esta manera).
Para una suite que hace esto por cada paquete de controladores INF que fabrica, consulte libwdi y cómo sus certificados autofirmados en archivos cat permiten la instalación en Windows 8.
EDIT2:
Se eliminó la mención del certificado de desarrollador de "código abierto" de CERTUM, ya que no está certificada por Microsoft (la que obtiene no es la Certum TRUSTED NETWORK, certificada por Microsoft).
Trabajo para una empresa que vende dispositivos USB y les proporciona controladores.
En Windows 7, puede instalar y usar archivos de controlador INF sin firmar para dispositivos USB siempre y cuando no agreguen ningún código al kernel. Nuestra empresa utiliza controladores genéricos proporcionados por Microsoft ( usbser.sys
y winusb.sys
), por lo que nunca tuvimos que firmar nuestros paquetes de controladores.
Basado en un informe de uno de nuestros clientes y en otra pregunta de desbordamiento de pila ¿ Qué cambió en los requisitos de firma del controlador para Windows 8? y el foro de Arduino , parece que la Vista previa del consumidor de Windows 8 tiene requisitos de firma más estrictos que requieren la firma de todos los archivos INF de terceros. El mensaje de error que recibe la gente al intentar instalar controladores que funcionaron en Windows 7 es:
El INF de terceros no contiene información de firma digital.
¿Cuál es la palabra oficial de Microsoft que confirma que las firmas seguirán siendo necesarias en la versión final de Windows 8? Una oración o dos de MSDN.com serían suficientes, pero no puedo encontrar nada.
Estoy considerando comprar un certificado de firma, pero antes de pagar $ 200 quiero estar seguro de que realmente lo necesitaré a largo plazo. ¿Es posible que el nuevo requisito de firma esté solo en la vista previa del consumidor y no en la versión real?
Para responder a mi propia pregunta: Sí, la versión final de Windows 8 requiere que todos los archivos INF estén firmados, pero no es necesario que envíe sus controladores a la WHQL. Escribí sobre este requisito y mucho más en mi artículo davidegrayson.com/signing .