Dans Windows 8, sera de tiers INF driver fichiers nécessitent une signature?
Je travaille pour une entreprise qui vend des périphériques USB et fournit des pilotes pour eux.
Dans Windows 7, vous pouvez installer et utiliser unsigned INF fichiers de pilote pour les périphériques USB tant qu'ils n'ont pas d'ajouter du code dans le noyau. Notre société utilise des pilotes génériques fournis par Microsoft (usbser.sys
et winusb.sys
), de sorte que nous n'avons jamais nécessaire de signer nos packages de pilotes.
Basée sur un rapport de l'un de nos clients, et de l'autre, de Dépassement de Pile question Ce qui a changé dans la signature de pilote requis pour Windows 8? et le forum Arduino, il semble que la Consumer Preview de Windows 8 a plus strictes exigences de signature qui exigent que tous les tiers INF fichiers pour obtenir signé. Le message d'erreur que les gens sont lorsque vous essayez d'installer les pilotes qui ont travaillé sur Windows 7 est:
L'INF de tierce partie ne contient pas de signature numérique de l'information.
Quel est le mot officiel de Microsoft qui confirme que les signatures seront toujours nécessaires dans la version finale de Windows 8? Une phrase ou deux de MSDN.com serait suffisant, mais je ne peux pas trouver quoi que ce soit.
J'envisage l'achat d'un certificat de signature, mais avant de me payer plus de 200 $je veux être sûr que je vais réellement besoin d'elle dans le long terme. Il est possible que la nouvelle signature exigence est juste dans l'aperçu des consommateurs et non pas dans la vraie version?
- Il est trivial d'obtenir l'aperçu des consommateurs. De sorte que vous pouvez trouver par vous-même. Difficile de croire que vous n'avez pas. Aussi, vous vendre des choses, mais ne sont pas prêts à débourser 200 $pour une signature?! Qu'est-ce que comme une fraction de votre entreprise, les bénéfices annuels?
- L'obtention de l'aperçu de la consommation ne serait pas vraiment aider à prendre cette décision. Je souhaiterait idéalement à l'étape de l'avant dans le temps et d'obtenir une copie officielle de Windows 8. Et oui, je suis modeste.
- Environ 7 mois après avoir posé cette question, j'ai écrit un grand article expliquant tout ce que j'ai appris sur le sujet: davidegrayson.com/signing En bref, Windows 8 ne vous oblige à signer vos fichiers INF, mais il n'a pas à être un WHQL signature; il faut juste avoir une chaîne de confiance qui remonte à un certificat dans les Autorités de Certification Racine de la liste.
Vous devez vous connecter pour publier un commentaire.
Pour répondre à ma propre question: Oui, la version finale de Windows 8 n'exiger que tous les fichiers INF à être signé, mais vous n'avez pas à soumettre vos pilotes de la WHQL. J'ai écrit au sujet de cette exigence et beaucoup plus dans mon article Pratique Code de Windows et de Signature du Pilote.
Il nécessite non seulement de la signature des fichiers INF, il les oblige aussi à être signé par le WHQL certificat, pas le même que celui que vous utilisez pour embedded-signe .sys fichiers et la comme. À l'aide de mon certificat de Signature de Code sur le fichier INF n'a pas fonctionné du tout. (Mêmes problèmes que si laissé non signé.)
EDIT:
C'est ce que Microsoft veut que vous le pensez. Ils ont dit que certaines catégories de conducteurs être signé WHQL, sinon ils ne fonctionneront pas, et que Authenticode signature ne fonctionne que pour ceux qui n'ont pas une WHQL processus.
Il s'avère que vous POUVEZ Authenticode signe de packages de pilotes, sauf que vous devez prendre soin et de les signer, comme ce serait le code du noyau maintenant, ce qui signifie la croix certificat pour votre CA (à partir de Croix-des Certificats de Signature de Code en Mode Noyau, il ya des tonnes de maintenant, y compris StartCom, que j'ai (classe 2, 60$US pour deux ans, mais ils ne peuvent pas être datées). La fourniture de cette croix certificat (pas le même que votre autorité de certification du certificat auto-signé, ou de leur certificat intermédiaire. Il est uniquement disponible sur cette page MSDN) à SignTool via le
/ac
commutateur.Ensuite utiliser SignTool vérifier avec le
/kp
commutateur pour voir si vous traversez signé correctement. SignTool vérification avec sans aucun commutateur EXIGE que l' .chat fichiers sont signé WHQL, tandis que le/pa
commutateur, qui semblait être bien avant, est maintenant trop laxiste, et ne s'applique qu'à la non-signature du pilote (comme les fichiers EXE, ClickOnce, etc.).Si vous ne voulez pas d'acquérir votre propre noyau-niveau de signature de certificat (qui est maintenant beaucoup plus facile qu'avant, franchement, avant c'était limité à VeriSign est super cher, et GlobalSign 200$US par année, je suppose que Microsoft vu que pas beaucoup de gens ont écrit au niveau du noyau exploits pour les systèmes x64), vous pouvez faire un auto-signé de l'autorité de certification racine, votre programme d'installation du pilote installer dans le LocalMachine de la "Racine de Confiance de l'Autorité de Certification" store (voir
certmgr.exe
), puis installez le .cat fichier qui a été signé par que. Bien sûr, puisque ce n'est pas un noyau de code de niveau certificat, vous DEVEZ utiliser seulement .sys fichiers qui ont déjà intégré au niveau du noyau du code de certificat de quelqu'un d'autre (ce qui signifie, vous pouvez uniquement modifier .les fichiers inf dans les packages de pilotes). Apparemment, il y a quelques échappatoire qui permet de certificats auto-signés à signer .chat des fichiers (si vous avez fait votre propre autorité de certification, puis signé un certificat avec elle, puis la signature de votre .chat fichiers avec qui, il ne fonctionne pas comme ça).Pour une suite qui fait cela pour chaque pilote INF paquet qu'il fait, voir libwdi, et comment leurs certificats auto-signés sur un chat fichiers de permettre l'installation sur Windows 8.
EDIT2:
Retiré ius certum "open source" certificat de développeur mentionner, c'est pas de la croix-certifié par Microsoft (celui que vous obtenez n'est pas le ius certum RÉSEAU de CONFIANCE, que Microsoft certification croisée).
/ac
, pas de '/ca'. C'est/pa
pas/pe
. Aussi, j'ai réussi à signer simple packages de pilotes qui vient se composait d'une INF et CAT fichier sans l'aide de la croix certificat; la principale chose qui compte, c'est que votre chaîne de confiance va revenir à quelque chose qui est dans la Certification de Racine de Confiance Store. Je cite l'expérience personnelle et de msdn.microsoft.com/en-us/library/windows/hardware/gg487332.aspx comme ma source pour cela. Aussi, pour la vérification des packages de pilotes, je pense que/pa
est la bonne option pour les utiliser parce que c'est comment ils le font dans kmcs_walkthrough.doc.signtool verify /v ...
. Fonctionne très bien si vous timestamp avec/tr "http://www.startssl.com/timestamp"
. D'ailleurs, même si StartCom n'a pas d'offrir un serveur de temps, vous pouvez toujours utiliser un autre, comme/t http://timestamp.verisign.com/scripts/timstamp.dll
.