No solo requiere la firma de archivos INF, sino que también requiere que estén firmados por el certificado WHQL, que no es el mismo que se utiliza para los archivos .sys de archivos incrustados y similares. El uso de mi certificado de firma de código en el archivo INF no funcionó en absoluto. (Mismos problemas que si se deja sin firmar.)
EDIT:
Esto es lo que Microsoft quiere que pienses. Dijeron que ciertas clases de controladores TIENEN que estar firmados por WHQL, de lo contrario no funcionarán, y que la firma Authenticode funciona solo para aquellos que no tienen un proceso WHQL.
Resulta que usted PUEDE authenticode paquetes de controladores de señal, excepto en lo que tiene que tener cuidado y firmar ellos como se debería kernel código de ahora, lo que significa obtener el certificado cruzado correcta para su CA (de Cross-Certificates for Kernel Mode Code Signing, hay toneladas de ahora, incluido StartCom, que tengo (clase 2, US $ 60 por dos años, pero no pueden marcarse). Proporcione este certificado cruzado (no es lo mismo que el certificado autofirmado de su CA o su certificado de intermediario. solo disponible en esa página de MSDN) a SignTool a través del interruptor /ac
.
Luego use la verificación de SignTool con el interruptor /kp
para ver si o cruzada los firmó correctamente. La verificación de SignTool sin conmutadores REQUIERE que los archivos .cat estén firmados por WHQL, mientras que el conmutador /pa
, que parecía estar bien antes, ahora es muy poco estricto y solo se aplica a la firma de no controladores (como archivos EXE, ClickOnce, etc.)
Si no desea adquirir su propio certificado de firma de kernel (que ahora es más fácil que antes, francamente, antes de que se limitara a los costosos de VeriSign, y GlobalSign de US $ 200 por año, supongo Microsoft vio que no mucha gente escribió explota a nivel del núcleo para sistemas de 64 bits), se puede hacer una raíz autofirmado CA, haga que su instalador del controlador instalar en la tienda del LocalMachine "certificación raíz de confianza Autoridad" (vea certmgr.exe
), y luego instale el archivo .cat que fue firmado por eso. Por supuesto, dado que este no es un certificado de código de nivel de kernel, DEBE usar solo archivos .sys que ya tengan un certificado de código de kernel incrustado de otra persona (lo que significa que solo puede modificar archivos .inf en paquetes de controladores) . Aparentemente, hay alguna laguna que permite que los certificados autofirmados firmen archivos .cat (si usted hizo su propia CA, luego firmó un certificado con ella, luego firmó sus archivos .cat con eso, no funcionará como esta).
por una suite que hace esto para cada paquete INF controlador que hace, ver libwdi, y cómo sus certificados de firma propia en los ficheros cat permiten la instalación en Windows 8.
Edit2:
Eliminado CERTUM mención de certificado de desarrollador "de código abierto", ya que no tiene certificación cruzada de Microsoft (la que obtiene no es la de Certum TRUSTED NETWORK, que Microsoft certificó de forma cruzada).
Es trivial obtener la vista previa del consumidor. Entonces puedes descubrirlo por ti mismo. Es difícil de creer que no. Además, ¿vendes cosas pero no estás dispuesto a gastar $ 200 por una firma? ¿Qué es eso como una fracción de las ganancias anuales de su compañía? –
Obtener la vista previa del consumidor realmente no ayudaría a tomar esta decisión. Idealmente, me gustaría dar un paso al frente a tiempo y obtener la copia oficial de Windows 8. Y sí, soy frugal. –
Aproximadamente 7 meses después de hacer esta pregunta, escribí un gran artículo explicando todo lo que aprendí sobre el tema: http://www.davidegrayson.com/signing/ En resumen, Windows 8 sí requiere que firme sus archivos INF pero no tiene que ser una firma WHQL; solo tiene que tener una cadena de confianza que se remonta a un certificado en la lista Autoridades de certificación de raíz de confianza. –