29 votes

WinQual: Pourquoi WER n'accepterait-il pas les certificats de signature de code?

En 2005, j'ai essayé d'établir un WinQual compte avec Microsoft, afin que je puisse ramasser nos (le cas échéant) fichiers de vidage sur incident soumis automatiquement par Windows Error Reporting (WER). je n'ai pas pu avoir mon crash dumps, parce que je n'ai pas de certificat Verisign. Au lieu de cela j'ai un autre moins cher, généré par une filiale de Verisign: Thawte.


La méthode dans laquelle vous joindre: vous signez numériquement un échantillon exe qu'ils fournissent. Cela prouve que vous êtes de la même signataire qui a signé applications qu'ils ont eu de crash dumps de dans la nature.

Du point de vue cryptographique, la clé privée est nécessaire pour générer une signature numérique sur un fichier exécutable. Seul le détenteur de la clé privée peut créer une signature avec la clé publique correspondante. Il n'a pas d'importance qui a généré cette clé privée. Qui comprend les certificats sont générés à partir de:

Encore de Microsoft WinQual accepte uniquement les certificats numériques générées par Verisign. Même pas de Verisign filiales sont assez bonnes (Thawte).

Quelqu'un peut penser à des techniques, juridiques ou éthiques pourquoi Microsoft ne veut pas accepter les certificats de signature de code? Le WinQual site dit:

Pourquoi un Certificat Numérique Requis pour Winqual Adhésion?

Un certificat numérique permet de protéger votre société de personnes qui cherchent d'usurper l'identité des membres de votre personnel ou qui serait autrement commettre des actes de la fraude à l'encontre de votre société. À l'aide d'un le certificat numérique permet de preuve de une identité d'un utilisateur ou d'un de l'organisation.

Est en quelque sorte un certificat numérique de Thawte pas sécurisé?


Deux ans plus tard, j'ai envoyé un avis de rappel pour WinQual que j'ai été en attente pour être en mesure d'obtenir à mon crash dumps. La réponse de WinQual de l'équipe a:

Bonjour,

Merci pour le rappel. Nous avons informé les personnes appropriées qui c'est encore une demande.


En 2008, j'ai posé cette question dans un forum de support de Microsoft, et la réponse a été:

Nous sommes seulement le programme d'installation pour accepter VeriSign Certificats à ce point. Nous avons pas eu une grande demande pour en charge d'autres types de certificats.

Que peut-il peut-être dire à ne pas être "setup" pour accepter d'autres types de certificats?

Si l'empreinte de la clé qui a signé le WinQual.exe application de test est le même que l'empreinte qui a signé le fichier exécutable qui est de vidage sur incident que vous avez obtenu dans la nature: il est prouvé - ils sont mes crash dumps, donnez-les-moi.

Et ce n'est pas comme il y a une API particulière pour vérifier si un certificat Verisign signature numérique est valide, contrairement à toutes les autres signatures numériques. Une signature valide est valable peu importe qui a généré la clé.

Microsoft est libre de ne pas la confiance du signataire, mais ce n'est pas la même identité.


Voilà donc ma question, comment peut-on penser de la raison pratique, pourquoi WinQual n'est pas le programme d'installation à l'appui de signatures numériques?

Une personne pense que la réponse est qu'ils sont tout simplement paresseux:

Pas que je sache, mais je suppose que l'équipe de l'exécution de l'winQual le système est une équipe en direct et pas un dev l'équipe - comme dans, de la personnalité et de compétences orientée vers la maintenance de l'existant les systèmes. Je peux me tromper, cependant.

Ils ne veulent pas faire le travail à la changer. Mais quelqu'un peut-il penser à quelque chose qui aurait besoin d'être changé? C'est la même logique, peu importe ce qui a généré la clé: "l'empreinte de match".

Ce qui me manque?


Mise à jour

Il est agréable d'entendre les histoires des autres développeurs. De cette façon, je sais que je ne suis pas la seule, et la question peut servir de véhicule pour le changement de Microsoft fait partie. Et même si mon intention première était de se plaindre diatribe, afin de garder cette un valide StackOverflow question, je suis à la recherche d'une raison technique pourquoi Microsoft ne pouvait accepter les certificats Verisign.

L'API de chiffrement ne se soucie pas de ce que le nom de la société qui a émis un certificat est: il ne se soucie que de la chaîne de signataires conduit à un retour de racine de confiance.

Ce qui pourrait éventuellement être sur que Microsoft spécifiquement n'est pas établi à l'aide de la crypto de l'infrastructure, mais la place est limitée elle-même afin de Verisign?

Si quelqu'un pourrait pointer vers une entrée de blog, où un gestionnaire de programme ou développeur explique pourquoi, je voudrais, peut-être, être satisfaits.


Mise À Jour De Deux

Les gens semblent manquer le point de ma question. Windows a déjà le code de l'infrastructure pour s'assurer qu'une signature numérique, certificat est approuvé par une autorité racine. Voici une capture d'écran de la une signature numérique sur un de nos signé exécutables.

Vous pouvez voir notre certificat a été signé par Thawte du Code de Signature de certificat de l'autorité, qui à son tour est signé par Thawte:

alt text

Et le "thawte" certificat de navires par défaut avec Windows:

alt text

Le Thawte Premium Serveur d'autorité de certification est assez bon que chaque copie de Windows et d'Internet Explorer déjà confiance. Et il y a déjà établi une API pour vérifier si un certificat est valide (c'est à dire de confiance).

Lorsque WinQual gars est venu le long, il aurait fallu qu'ils ont sorti de leur manière d'éviter la vérification de la bonne façon, et, au lieu de rouler leur propre solution de codage en dur uniquement Verisign comme une racine de confiance. Pourquoi iraient-ils sortir de leur façon d'ignorer l'autre racine de confiance des autorités, des autorités que les navires sur la machine Windows que leur code est exécuté, et, au lieu de coder en dur Verisign?

Plutôt que de faire comme tout le monde le fait (Windows Explorer, Firefox, Chrome, Internet Explorer, Opera, CertMgr, etc), ils spécifiquement permettent seulement de Verisign. Et ma question est de savoir pourquoi.

Why would WER not accept code-signing certificates?

Si c'était tout simplement:

  • parce que le mec qui initally a écrit qu'il ne sait pas la bonne façon sur le dessus de sa tête
  • et plutôt que de dépenser beaucoup de temps à enquêter sur la bonne voie
  • il a juste jeté quelque chose ensemble
  • et juste pour le test, il codée en dur juste l'un signataire
  • avec l'intention de revenir plus tard et de le corriger
  • mais le code est désormais de travail
  • et il est allé vivre sans être fixe
  • et personne ne veut prendre la responsabilité de la rupture
  • et personne ne veut dépenser de l'argent pour le réparer
  • et pas assez de clients se plaignent d'en faire une priorité élevée
  • et même si il y avait beaucoup de gens qui se plaignent, c'est seulement 99 $pour acheter une Verisign un
  • donc, ne pouvez-vous pas juste le laisser aller et acheter un Verisign un?

...que ce serait bien. Sauf que je ne le crois pas. je ne crois pas que c'était le code de test qui fait dans la production. j'ai l'impression qu'il est un être conscient, spécifique, décision qui leur fait ignorer les autres signataires. Et ce qu'ils font, et va continuer à honorer seulement Verisign.

Mais pour la vie de moi je ne peux pas penser à la raison.

14voto

Jason Short Points 4034

Eh bien, je viens de poster une autre demande essentiellement de leur dire que nous ne participera pas à moins qu'ils acceptent Comodo de Signature de Code cert.

Microsoft nous a contactés pour nous dire que nous avons des rapports sur Windows 7, ils veulent que nous à regarder, mais on ne peut pas se connecter car nous n'utilisons pas de Verisign. Ok, VOUS avez communiqué avec moi... Combien plus authentifié dois-je être?

J'ai contacté le chef de produit, nous allons voir ce qui se passe.

Et pour répondre à votre semi-question rhétorique ci-dessus - il n'ya AUCUNE raison pourquoi ils ne peuvent pas s'authentifier d'autres ont signé des Exe. Windows est-il, c'est à dire le fait, le code est déjà là. Ils n'ont pas à faire quelque chose de spécial à l'appui.

Mise à JOUR:

Après avoir parlé avec le Microsoft rep m'a dit à brûle-pourpoint que vous devez acheter au moins le prix de 99 $aux états-unis versign cert afin de "valider" et obtenir vos rapports de bug. Boiteux.

12voto

Boinst Points 825

Je viens de m'inscrire à WinQual, et j'ai été envisagent cette question; je pense que j'ai maintenant la réponse.

En bref: Ils ne sont pas à l'aide de VeriSign comme un certificat à tous: Ils sont tout simplement l'externalisation de la tâche de vérification de votre identité.

Microsoft ne veut pas que vous avez accès à la WinQual site sans d'abord vérifier votre identité. Donc, ils ont besoin d'un processus de vérification de l'identité.

Ils pourraient avoir un ministère que des frais de 99$, et la vérification. Mais ils ont déjà d'importants avoirs en VeriSign, qui dispose déjà de personnel qui peut le faire. Ils utilisent donc le processus de signature de certificat pour vérifier votre identité. Il ne l'utilise pas du tout le certificat, c'est juste confiant VeriSign avec la tâche de vérifier que vous.

Notez qu'ils n'ont pas besoin de vous pour continuer à maintenir un certificat VeriSign pour garder votre compte: c'est juste une fois hors taxe pour rejoindre le site.

Parce que c'est un cas de Microsoft vérification de votre identité, et ils font confiance à VeriSign parce qu'ils ont leurs doigts dans la tarte, et ils n'ont pas confiance en Comodo tellement, ils veulent vous utiliser VeriSign pour cela, pas un autre certificat. Il semble un peu ridicule du point de vue du développeur, mais je peux le comprendre à partir de leur point de vue.

8voto

tagon Points 129

Ayant fait la Signature de Code et récemment Winqual inscrivez-vous, voici quelques précisions:

  1. Pour Winqual d'inscription (enregistrement), votre signature elle-même n'est pas vérifiée par rapport à la Winqual base de données. Winqual ne vérifie que le certificat de VeriSign, qui prouve que VeriSign vérifié votre identité. Ensuite, ils obtiennent le nom de votre entreprise à partir de votre signature.

  2. Dans l'étape suivante, vous devez créer un ou plusieurs "produit des fichiers de mappage" (à l'aide d'un outil à partir de Microsoft) et les envoyer à Winqual. Après cela, le Winqual serveurs de vérifier plusieurs téraoctets de plantage de la base de données à l'encontre de tous les fichiers de mappage et de vous fournir une liste des "événements". (Signature que vous avez utilisé pour la signature de code est donc peu pertinent.)

  3. Il n'y a aucune raison technique de Microsoft ne pouvait pas accepter d'autres Autorités de Certification, trop. Mais: comment pourraient-ils bénéficier de le faire? Il y a également une offre spéciale de programme pour obtenir un d'un an certificat de signature de code de VeriSign pour seulement 99$, et si vous le comparer au coût d'un outil de développement de la chaîne ou à MSDN/TechNet l'adhésion, il n'est pas exactement chers.

  4. Dans notre cas, l'obtention du certificat de VeriSign a été très simple et très rapide de l'ensemble du processus s'est achevé dans un délai de deux jours. (Nous ne sommes pas aux états-UNIS, donc je m'attendais à des retards.) [Juste pour précision: vous générez votre signature vous-même, et il se compose d'une company_private_key (utilisé pour la signature) et un company_public_key (pour la vérification de votre code de signature). L'Autorité de Certification (comme VeriSign) juste contre-signes que votre company_public_key avec sa clé privée. Cela rend votre certificat vérifiables.]

  5. Nous ne savions pas que la VeriSign $99 certificat peut être utilisé pour la signature de code, trop (c'est pas seulement une organisation de l'ID). Donc, au départ, nous sommes allés pour une autre autorité de certification pour la Signature de Code. Puis nous avons eu un VeriSign cert pour Winqual enregistrement.

  6. Microsoft publie sur WHDC et Winqual les informations de signature fournisseurs sont acceptés pour ce type de signature. Vous ne pouvez pas vraiment les blâmer pour vous-même pas en train de lire ceci avant d'obtenir un certificat auprès d'une autre autorité de certification, pouvez-vous?

Espérant que cela puisse aider à faire la lumière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X