Je développe un produit qui utilise un microcontrôleur MSP430 avec un module USB intégré. J'ai obtenu un PID de Texas Instruments et utilisé leurs outils pour générer les descripteurs, ainsi qu'un fichier .inf pour installer le logiciel du pilote. Le problème évident est qu'en raison de la nature personnalisée de ces fichiers, une fenêtre contextuelle s'affiche (sous Windows 7) lors du branchement du câble USB qui avertit l'utilisateur que le pilote n'est pas signé. Je crois que sur Windows 8 et Windows 10, il le bloque simplement et ne l'indique pas du tout à l'utilisateur.
Comme il s'agit d'un produit complet que mon entreprise prévoit de publier, nous devons obtenir un certificat de conducteur (je crois sous la forme d'un fichier .cat?) Que nous pouvons fournir au client afin qu'il puisse installer l'appareil. logiciel de pilote sans problème.
J'ai parcouru une bonne partie de la documentation Microsoft (notamment ce document ) en essayant de comprendre ce qui est nécessaire pour faire signer un pilote, mais malheureusement, cela me dépasse pour le moment.
Voici ce que je pense avoir compris jusqu'à présent:
- Je dois soumettre mon pilote (fichier .inf?) À une autorité de certification (CA) autorisée par Microsoft. Il y en a un certain nombre, donc j'aurais besoin d'en trouver un qui signe les conducteurs.
- Après avoir sélectionné un CA, je devrai généralement payer des frais annuels (le plus souvent pour 1, 2 ou 3 ans) pour leur service. Tous les pilotes que je génère pendant cette période seront signés de manière permanente, même après l'expiration du service. Si je veux changer le pilote ou en créer un nouveau après l'expiration du service, je devrai acheter le service pour encore 1, 2 ou 3 ans.
- Après avoir payé les frais, l'AC générera un fichier .cat qui est un certificat garantissant que le pilote que je leur ai donné ne sera pas changé. Si tel est le cas, il ne correspondra plus au fichier .cat et une erreur apparaîtra lors de l'installation
Est-ce correct? Au risque de donner l'impression que je recherche des recommandations pour des autorités de certification spécifiques (je ne le suis pas, je vous en prie), où puis-je trouver une liste des autorités de certification qui sont en mesure de faire cette certification pour moi? Encore mieux seraient leurs sites Web et / ou leurs prix pour différentes durées de service. Quelqu'un ici a-t-il eu une expérience directe pour obtenir un pilote pour un produit basé sur un microcontrôleur USB signé par une autorité de certification, qui pourrait m'aider à comprendre et à suivre le processus? J'ai déjà posté sur les forums MSDN, mais il semble assez mort là-bas - Cela fait deux jours et mon fil n'a que quelques vues.
Réponses:
Ce n'est pas si mal, en fait. Je l' ai fait plusieurs fois au travail, l' écriture et la signature d' un .INF / .CAT pour un USB à base PIC24FJ64GB002 Microchip CDC-ACM-à-I 2 interface C.
Établissez une relation avec une autorité de certification. Vous devrez leur fournir des informations de base qu'ils valideront. Si vous optez pour la validation étendue (EV), ils en demanderont beaucoup plus, mais vous ne devriez pas avoir besoin d'aller aussi loin. Thawte, Digicert et Comodo sont quelques exemples d'AC.
Achetez un certificat de signature de code Authenticode auprès de l'autorité de certification. Voici ce dont vous avez besoin pour signer le fichier .CAT associé à votre fichier .INF. Vous n'avez pas besoin d'un certificat en mode noyau pour ce niveau de signature.
Installez le certificat (cela va sans dire)
Téléchargez le framework SDK Windows et le Kit de pilotes Windows pour obtenir les outils Microsoft nécessaires (génération et signature de catalogue).
Emballez et signez les pilotes:
À partir de là, vous pouvez créer une sorte de programme d'installation du pilote ou utiliser dpinst à partir du SDK pour effectuer une automatisation de base de l'installation.
EDIT: Notes de divers commentaires ci-dessous:
Extension supplémentaire sur vos questions:
la source