6
votes

Que dois-je faire et combien coûte-t-il un pilote de périphérique pour Windows Vista / 7 (32 et 64 bits) signé?

J'ai des pilotes qui sont essentiellement libusb-win32 avec un nouveau fichier .inf Décrire les identifiants de produits / fournisseurs et des chaînes décrivant mon matériel. Cela fonctionne bien pour les fenêtres 32 bits, mais les versions 64 bits ont des problèmes; à savoir que Microsoft dans leur sagesse nécessite que tous les conducteurs soient signés numériquement.

Alors mes questions sont donc:

  1. Y a-t-il une version des pilotes libusb-win32 qui sont déjà signés que je pourrais utiliser?
  2. S'il n'y a pas déjà quelques-unes des personnes signées, je peux canibaliser, que dois-je faire exactement pour que mes pilotes soient signés?
  3. Dois-je obtenir des versions 64 et 32 ​​bits signées séparément et cela coûtera-t-il plus?
  4. est Ceci Une alternative gratuite pour les faire signifier? < / li>
  5. Y a-t-il d'autres options que je devrais envisager d'exiger que mes clients Démarrez en mode test à chaque fois qu'ils démarrent leurs machines (pas une option que je considérerais).
  6. Y a-t-il d'autres options pour la signature de code à part VeriSign? Évidemment une initiative gratuite / open source comme OpenID serait génial; -)

0 commentaires

4 Réponses :


1
votes

Vous pouvez utiliser Ce tutoriel qui ignore les pilotes non signés. Je ne pense pas que vous voulez payer parce que cela coûte quelque chose comme 400 USD!

Voici un autre tutoriel P>

Vous pouvez également exécuter CMD en tant qu'administrateur et exécuter ce qui suit: p>

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON


3 commentaires

J'avais certainement hâte de demander aux clients de démarrer en mode test ou de désactiver la signature. Tout d'abord, cela mettra la balise "Mode test" sur leur bureau qui pourrait être déroutant. Deuxièmement, vous les mettez dans une position où un code de noyau non signé et potentiellement non approuvé pourrait être chargé sur leur système.


Vaut la peine d'indiquer le bcdedit.exe -set loadoptions ddisable_integrity_checks ne fonctionne pas après Vista RTM.


Il semble que BCDEDIT.EXE -SET -Set TestSIGNING sur ne fonctionne pas sur Win7 X64 également.



2
votes

Vous pourriez être capable de vous échapper avec essayer le libusb-winusb version de libusb qui essaie de Implémentez la plupart des fonctionnalités existantes autour du pilote WinUSB (qui est une MS Binary signée, vous n'avez donc pas besoin de le faire vous-même). Cependant, YMMV AS WINUSB n'a pas de carte de 100% pour toutes les fonctionnalités requises dans LIBUSB.


0 commentaires

4
votes

Il y a deux problèmes distincts à portée de main:

  1. Signature du fichier image (c'est-à-dire le fichier pilote.sys) pour satisfaire la signature du code de mode du noyau (KMCS)
  2. Signature du package de pilote pour satisfaire l'installation du pilote (c'est-à-dire le fichier pilote.cat).

    Si vous prenez un pilote existant signé par une autre entité (que ce soit Microsoft Winusb ou Libusb-Win32), cela satisfera KMCS.

    En ce qui concerne l'installation du pilote, vous auriez besoin de votre propre certificat de signature de code pour signer un fichier .CAT, qui vérifie que votre fichier .inf et les fichiers qu'il fait référence (par exemple, vos fichiers .sys) n'ont pas été modifiés et viennent vraiment de vous. C'est un peu moins problématique, car il est différent du KMCS (qui arrête votre pilote de chargement), il n'empêchera pas votre conducteur d'être installé, mais simplement présenter un avertissement à l'utilisateur.

    Un certificat de signature de code ( Assurez-vous qu'il prend en charge les KMCS! ) vous coûtera des centaines d'USD, dépend de la CA que vous choisissez. Certains pourraient avoir des plans qui vous permettent de payer par l'événement de signature plutôt que dans le monde entier par an. Si vous n'avez pas besoin de libérer de nombreuses versions, cela pourrait être moins cher pour vous.


5 commentaires

À partir de Windows 8, je pense que les fichiers INF doivent également être signés. Avant Windows 8, vous avez été correct; Il était possible de libérer des pilotes non signés utilisant WinUSB ou USBSER.SYS avec juste un avertissement que l'éditeur n'a pas pu être vérifié.


@DAVIDGRAYSON, le fichier INF doit également être signé sous Windows 7, mais pas nécessairement avec un certificat authentrice à partir d'une autorité de ca. connue. Cette politique a-t-elle changé? Pouvez-vous me signaler à tout document MSDN ou blog?


Désolé, je n'ai pas de document MSDN pour vous indiquer, mais j'ai l'expérience de livrer avec succès des pilotes totalement non signés à des milliers de clients utilisant XP / Vista / 7. L'existence de cette boîte de dialogue dans Windows Vista / 7 devrait également être assez convaincante pour vous: a.pololu-files.com/picture/...


Droit, à droite. Quel type de signature Windows 8 attend sur le fichier de catalogue alors?


Voir kmSigning.doc. Il doit être enchaîné à un certificat dans les autorités de certification de la racine de confiance.



1
votes

Selon mes recherches, cela pourrait coûter moins de 266 USD pour avoir signé un pilote de périphérique. Je crois comprendre que seule une entreprise peut avoir un pilote signé. Ils ne le feront pas pour les individus.

Réf .: certificats de signature de code de certificat


0 commentaires