43 votes

Comment puis-je contourner le filtre SmartScreen sans dépenser beaucoup d'argent?

Microsoft SmartScreen Filter sous Windows 8 est un petit développeur pire cauchemar.

Alors que je me rends compte que les avantages pour les utilisateurs finaux et l'efficacité à l'arrêt de programmes malveillants à partir de l'installation sur les ordinateurs des utilisateurs finals, moi et beaucoup d'autres développeurs préfèrent ne pas payer les frais pour le renouvellement annuel d'un Certificat de Signature de Code ou, pire encore, d'un Certificat de Signature de Code EV. Aussi, lorsque les produits mis au point pour une utilisation en interne sont signés avec un certificat de confiance à partir d'une autorité de certification interne, stockés dans le magasin des Éditeurs Approuvés, ils continuent à tomber en proie à la du filtre exagérée de comportement.

Les développeurs et les Administrateurs utilisé pour être en mesure de désactiver les avertissements et les instructions par l'installation d'un éditeur Certificat de Signature de Code dans le magasin des Éditeurs Approuvés. Les développeurs créatifs pourraient installer leur auto-signé le Certificat de Signature de Code, lorsqu'ils installer un pré-requis signé et horodaté avec payant pour Authenticode Certificat de Signature de Code. Après cela, les programmes signé par l'éditeur digne de confiance et ne serait pas du voyage le Filtre SmartScreen d'alarmes. Essentiellement, une fois approuvé, un éditeur est libre de les frais récurrents.

Les récentes modifications apportées au Filtre SmartScreen (et sa prise en compte comme un OS "fonction" dans Windows 8) préciser Microsoft veut vous faire acheter un certificat de signature de code au lieu créatives de résoudre le problème qu'ils ont créé pour vous. Quelqu'un a découvert une nouvelle méthode pour la confiance des éditeurs qui utilisent leur auto-signé Certificats de Signature de Code par défaut (c'est à dire, ne montrant pas les invites)? Court de désactiver le filtre complètement, ce que les utilisateurs finaux peuvent faire pour laisser le Filtre SmartScreen savent toujours faire confiance à un certificat Auto-Signé?

Veuillez noter que l'achat d'un Certificat de Signature de Code n'est pas une réponse à cette question. Je suis à la recherche d'un moyen de dire le Filtre SmartScreen faire confiance à un éditeur qui ne fait pas l'achat de certificats à partir d'une source extérieure, mais plutôt les problèmes de leur propre pour une utilisation à l'intérieur de leur organisation.

Mise à JOUR: je pense avoir trouvé une solution de contournement! À partir de MSDN, le Filtre SmartScreen peut être désactivé sur Windows 8 et Internet Explorer 10 pour les sites répertoriés comme Sites de Confiance. Si quelqu'un pouvait vérifier que cette méthode fonctionne pour les programmes d'installation téléchargé et exécuté à partir d'un Site de Confiance dans Windows 8, ce serait grandement apprécié et serait d'une grande aide d'un éditeur de logiciels et le développement en interne des équipes. Elle serait aussi la solution nécessaire pour répondre à cette question. Sites de confiance peut être configuré par la stratégie de groupe, il serait plus simple de partir de là.

Par programmation, de désactiver le Filtre SmartScreen pour la Zone Sites de Confiance peut être atteint par l'établissement soit HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2!2301 pour la machine ou HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2!2301 pour l'utilisateur à 0, et d'ajouter le site à faire confiance à la Zone Sites de Confiance qui peut être fait comme indiqué dans cette question.

Quelqu'un pourrait-merci de vérifier que ma solution de contournement proposée fonctionne sur Windows 8 pour un entier non signé (ou auto-signé de l'exécutable téléchargé à partir d'un Site de Confiance? Je ne suis pas en utilisant Windows 8 moi-même, après avoir passé mon système d'exploitation mise à niveau budget sur le certificat de frais.

24voto

William Points 393

Pour citer le site web de MSDN:

Ses détracteurs prétendent qu'SmartScreen est "obliger" les développeurs à passer de l'argent sur les certificats. Il convient de souligner que la signature de code EV les certificats ne sont pas tenus de construire ou de maintenir la réputation avec SmartScreen. Fichiers signé avec le standard de certificats de signature de code et même les fichiers non signés de continuer à bâtir la réputation qu'ils ont depuis La Réputation des applications a été introduit dans IE9 l'année dernière. Cependant, l' présence d'un certificat de signature de code EV est un indicateur fort que le fichier a été signé par une entité qui a passé une rigoureuse de validation processus et a été signé avec le matériel qui permet à nos systèmes de établir la réputation de l'entité en question plus rapidement que les non signés ou non-EV code signé programmes.

En d'autres termes, EV (payé) validation n'est qu'un facteur dans une grande algorithme qui détermine si le SmartScreen d'avertissement est affiché ou non. Si vous avez beaucoup de gens qui télécharger votre programme, ou si votre programme lien de téléchargement n'a pas changé dans le temps, avec peu de travail, vous pouvez obtenir votre programme pas à afficher l'avertissement. Aussi, par la signature numérique de votre code, vous pouvez augmenter votre Appication Réputation. C'est directement à partir de la page web de Microsoft sur le sujet.

4voto

Shannon Cook Points 146

À l'aide d'un essai de 90 jours de Windows 8 de Microsoft, j'ai pu vérifier que ma solution ne fonctionne en effet. Si vous voulez payer pour un certificat de signature de code une fois et une seule fois au lieu de payer une cotisation annuelle, cette méthode devrait fonctionner pour vous aussi, mais je ne peux pas faire toutes les garanties. Ma solution est par la machine, mais il devrait être facile de convertir le travail de chaque utilisateur.

C'est ma solution:

  1. Mettre en place votre propre certificat de l'infrastructure.
  2. Publier des copies de votre certificat racine CA, tout CA intermédiaire des certificats émis par votre racine, et tout de signature de code, les certificats délivrés par votre intermédiaire de l'autorité de certification de votre site web .cer fichiers.
  3. Installer un certificat SSL sur votre site web qui a été délivré par votre autorité de certification Racine.
  4. Créer un programme d'installation/downloader application qui exécute les tâches suivantes:
    • Installe le certificat CA racine (à partir de votre site web, étape 2) dans la Racine de Confiance magasin d'Autorités de Certification pour la fin de l'ordinateur de l'utilisateur.
    • Désactive le Filtre SmartScreen pour la Confiance des Sites internet de la zone par la mise en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2!2301 à 0.
    • Ajoute votre site web à la zone de la carte par l'ajout de la clé de registre(s) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\votredomaine.com\yoursubdomain.
    • Les cartes de votre domaine pour la zone Sites de Confiance par la création d'une valeur DWORD nommée https avec une valeur de 2 dans la clé créée dans l'étape précédente.
  5. L'achat d'un certificat de signature de code à partir d'un membre de Microsoft Racine de Confiance du programme, de préférence un certificat EV.
    • Avant votre achat, assurez-vous que le certificat et l'horodatage schéma utilisé par le CA de votre certificat de signature de code n'entraînera pas l'OID de la 1.3.6.1.4.1.311.10.3.13 ou 1.3.6.1.4.1.311.10.3.14, car cela reviendrait à faire de la signature à expiration lors de l'expiration du certificat, s'il est horodaté ou pas.
  6. Signe d'horodatage et de votre downloader/installateur avec le certificat acheté à l'étape 5. Vérifier l'absence de limitations de durée de vie sur la signature. Si tout est ok, vous pouvez mettre vos achats de certificat de signature de code dans un endroit sûr et à l'emprisonner.
  7. Publier vos downloader/programme d'installation à votre site web. Faire un pré-requis de téléchargement pour tous vos produits.
  8. À partir de ce point, vous pouvez utiliser les certificats de signature de code (et d'autres certificats, d'ailleurs) émis par votre propre en interne, les autorités de certification sans le Filtre SmartScreen d'être une nuisance.

Le pire avertissement que j'ai reçu, à l'aide de cette méthode de mesure a été "Ce type de fichier peut endommager votre ordinateur." C'est le typique "Vous téléchargez un fichier exécutable!" avertissement. Il ne cache pas l'option Exécuter et n'apparaît pas pour les déploiements ClickOnce en utilisant le bootstrap page générée en cliquant sur "Publier" dans VS2010.

Merci à tous pour les commentaires et les liens.

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