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:
- auto-signé
- Wells Fargo
- DigiCert
- SecureTrust
- Trustware
- QuoVadis
- GoDaddy
- Confier
- Cybertrust
- GeoTrust
- GlobalSign
- Comodo
- Thawte
- Verisign
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:
Et le "thawte" certificat de navires par défaut avec Windows:
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.