Estoy desarrollando un producto que utiliza un microcontrolador MSP430 con un módulo USB incorporado. Obtuve un PID de Texas Instruments y usé sus herramientas para generar los descriptores, así como un archivo .inf para instalar el software del controlador. El problema obvio es que debido a la naturaleza personalizada de estos archivos, se presenta una ventana emergente (en Windows 7) al enchufar el cable USB que advierte al usuario que el controlador no está firmado. Creo que en Windows 8 y Windows 10 simplemente lo bloquea y no se lo indica al usuario en absoluto.
Como este es un producto con todas las funciones que mi compañía planea lanzar, necesitamos obtener un certificado de controlador (¿creo en forma de archivo .cat?) Que podemos proporcionar al cliente para que pueda instalar el dispositivo software controlador sin problema.
He revisado bastante de la documentación de Microsoft (sobre todo este documento ) tratando de comprender lo que se requiere para obtener la firma de un controlador, pero desafortunadamente esto está sobre mi cabeza en este momento.
Esto es lo que creo que entiendo hasta ahora:
- Necesito enviar mi controlador (archivo .inf?) A una autoridad de certificación (CA) autorizada por Microsoft. Hay varios de estos por ahí, por lo que necesitaría encontrar uno que firme los controladores.
- Después de seleccionar una CA, generalmente tendré que pagar una tarifa anual (más comúnmente por 1, 2 o 3 años) por su servicio. Todos los controladores que genere durante este tiempo se firmarán de forma permanente, incluso después de que expire el servicio. Si quiero cambiar el controlador o crear uno nuevo después de que el servicio haya expirado, necesitaré comprar el servicio por otros 1, 2 o 3 años.
- Después de pagar la tarifa, la CA generará un archivo .cat que es un certificado que asegura que el controlador que les di no será cambiado. Si lo hace, ya no coincidirá con el archivo .cat y aparecerá un error durante la instalación
¿Es esto correcto? A riesgo de sonar como si estuviera buscando recomendaciones para AC específicas (no lo estoy, claro), ¿dónde puedo encontrar una lista de AC que puedan hacer esta certificación por mí? Aún mejor serían sus sitios web y / o precios para diferentes duraciones de servicio. ¿Alguien aquí ha tenido experiencia directa en obtener un controlador para un producto basado en un microcontrolador USB firmado por una CA, que podría ayudarme a comprender y superar el proceso? Ya he publicado en los foros de MSDN, pero parece bastante muerto allí: han pasado dos días y mi hilo solo tiene un puñado de puntos de vista.
Respuestas:
No es tan malo, en realidad. Lo hice varias veces en el trabajo, escribiendo y firmando un .INF / .CAT para una interfaz USB CDC-ACM-to-I 2 C basada en Microchip PIC24FJ64GB002 .
Establecer una relación con una autoridad de certificación. Deberá proporcionarles información básica que validarán. Si opta por la Validación Extendida (EV), pedirán mucho más, pero no debería necesitar ir tan lejos. Thawte, Digicert y Comodo son algunos ejemplos de AC.
Compre un certificado de firma de código Authenticode de la CA. Esto es lo que necesita para firmar el archivo .CAT asociado con su archivo .INF. No necesita un certificado en modo kernel para este nivel de firma.
Instale el certificado (no hace falta decirlo)
Descargue el marco del SDK de Windows y el Kit de controladores de Windows para obtener las herramientas de Microsoft necesarias (generación y firma de catálogos).
Empaquete y firme los controladores:
Desde este punto, podría hacer algún tipo de instalador de controladores, o usar dpinst del SDK para realizar la automatización básica de la instalación.
EDITAR: Notas de varios comentarios a continuación:
Ampliación adicional de sus preguntas:
fuente