11 votos

Obtención del controlador USB MSP430 firmado por Microsoft

Estoy desarrollando un producto que utiliza un microcontrolador MSP430 con un built-en el módulo USB. He obtenido un PID de Texas Instruments y utilizar sus herramientas para generar los descriptores, así como un .inf archivo para instalar el software del controlador. La cuestión obvia es que debido a la costumbre de la naturaleza de estos archivos, aparecerá una ventana emergente que se presenta (en Windows 7) después de conectar el cable USB que advierte al usuario de que el controlador no está firmado. Creo que en Windows 8 y Windows 10 es simplemente bloquea y no indica esto para el usuario.

Como este es un producto completo que mi empresa es la planificación de la liberación, tenemos que obtener una licencia de certificado (creo que en la forma de un .cat archivo?) que nos puede proporcionar al cliente con el fin de que pueda instalar el software de controlador de dispositivo sin problema.

He sido a través de un poco de la documentación de Microsoft (en particular la mayoría de este documento) tratando de obtener una comprensión de lo que se requiere con el fin de obtener un controlador firmado, pero por desgracia, esto es por encima de mi cabeza en el momento.

Esto es lo que yo creo entender hasta ahora:

  • Tengo que presentar mi licencia (.archivo inf?) para un Microsoft autorizado de la autoridad de certificación (CA). Hay un número de estos que hay, así que tendría que encontrar uno que los signos de los conductores.
  • Después de seleccionar una entidad emisora de certificados, por lo general tendrá que pagar una cuota anual (más comúnmente para 1, 2, o 3 años) para su servicio. Los controladores puedo generar durante este tiempo será de forma permanente firmado, incluso después de que el servicio caduca. Si quiero cambiar el driver o crear uno nuevo después de que el servicio ha caducado, me tendrá que comprar el servicio por otro de 1, 2, o 3 años.
  • Después de pagar la cuota, el CA generará un .cat archivo que es un certificado que asegura que el conductor que les dio no se puede cambiar. Si lo hace ya no coincide con la .cat archivo y aparecerá el error durante la instalación

Es esto correcto? A riesgo de sonar como que estoy buscando recomendaciones específicas para la CAs (yo no soy), en donde se puede encontrar una lista de CAs que son capaces de hacer esta certificación para mí? Aún mejor sería que sus websites y/o los precios de los diferentes servicios de duración. Ha alguien aquí tenía la experiencia directa de obtener una licencia para un USB basado en microcontrolador producto firmado por una CA, que sería capaz de ayudarme a entender y sobrellevar el proceso? Ya he publicado en los foros de MSDN , pero parece bastante muerto allí - ya han pasado dos días y mi hilo sólo tiene un puñado de puntos de vista.

16voto

jason saldo Puntos 5036

No es tan malo, en realidad. He hecho esto un par de veces en el trabajo, de la escritura y de la firma .INF/.GATO para un Microchip PIC24FJ64GB002 basado en USB CDC-ACM-a-I2C de la interfaz.

  • Establecer una relación con un certificado de la autoridad. Usted tendrá que proporcionar cierta información básica que se va a validar. Si usted va para la Validación Extendida (EV), que va a exigir mucho más, pero no es necesario ir tan lejos. Thawte, Digicert y Comodo son algunos ejemplos de CAs.

  • La compra de un Authenticode certificado de firma de código de la CA. Esto es lo que usted necesita para firmar el .CAT archivo asociado con su .Archivo INF. Usted no necesita un modo de núcleo certificado para este nivel de la firma.

  • Instalar el certificado (decir)

  • Descargar el SDK de Windows marco y Kit de controladores de Windows para obtener el Microsoft herramientas necesarias (catálogo de la generación y firma).

  • Paquete y firmar los controladores:

    • Uso inf2cat para generar el catálogo (.CAT) archivo para el .Archivo INF
    • Uso signtool para firmar el archivo de catálogo

Desde este punto usted podría hacer algún tipo de instalación de controlador, o de uso dpinst desde el SDK para hacer la instalación básica de automatización.

EDIT: Notas de varios comentarios a continuación:

  1. La creación de una .Archivo INF para cargar USBSER.SYS es no crear un controlador de modo de núcleo - usted está usando USBSER.SYS (incorporado, firmado y de confianza ya), no la creación de algo nuevo y, como tal, no requiere de un EV certificado de firma y certificación WHQL. Un básico certificado de Authenticode es todo lo que se necesita.
  2. A partir de Windows 10, usted no necesita una firma .INF para USBSER.SYS los dispositivos, ya que Windows recoger USB CDC-ACM dispositivos (Class_02) auto-mágicamente. También han reescrito el controlador desde cero y funciona mucho mejor ahora (incluso maneja inesperado dispositivo de extracciones y re-inserciones sin bloquear el puerto COM virtual, que es un gran plus!). Dicho esto, usted todavía puede usar el controlador firmado enfoque, si usted realmente quiere - el controlador firmado todavía "trabajo". Todavía hay un montón de Ganar 8.1/8/7 y las máquinas más viejas, para tener un controlador firmado todavía es algo importante para USB CDC-ACM dispositivos.

Una mayor expansión en sus preguntas:

  • No presentar nada para la firma de la CA - usted compra el certificado de firma de código, instalarlo en una máquina y hacer el .INF validación y firma de usted mismo.
  • Usted no tiene que pagar una cuota anual de por sí - sin embargo, el certificado de comprar tiene un 1, 2 o 3 años período de validez. Cuando el certificado caduque usted tendrá que comprar una nueva, para ser capaz de mantener la firma - nada firmado previamente seguirá siendo válido, pero se pierde la capacidad para firmar cosas nuevas.
  • El .El GATO es un hash para el .INF - cualquier cambio a la .INF será detectado y el certificado dejará de ser válida, lo que significa que el .INF podría comportarse como un unsigned.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X