Le filtre SmartScreen de Microsoft sous Windows 8 est le pire cauchemar d'un petit développeur.
Bien que je me rende compte des avantages pour les utilisateurs finaux et de l'efficacité à empêcher les programmes malveillants de s'installer sur les ordinateurs des utilisateurs finaux, moi et de nombreux autres développeurs préférerions ne pas payer les frais de renouvellement annuel d'un certificat de signature de code ou, pire encore, d'un EV Certificat de signature de code. En outre, lorsque les produits développés pour une utilisation en interne sont signés avec un certificat approuvé d'une autorité de certification interne, stocké dans le magasin des éditeurs approuvés, ils sont toujours la proie du comportement trop zélé du filtre.
Les développeurs et les administrateurs pouvaient auparavant désactiver les avertissements et les invites en installant un certificat de signature de code d'un éditeur dans le magasin des éditeurs approuvés. Les développeurs créatifs peuvent y installer leur certificat de signature de code auto-signé lorsqu'ils installent un pré-signé signé et horodaté avec un certificat de signature de code Authenticode payant. Après cela, les programmes signés par l'éditeur seraient fiables et ne déclencheraient pas les alarmes du filtre SmartScreen. Essentiellement, une fois de confiance, un éditeur était exempt de frais récurrents.
Les récentes modifications apportées au filtre SmartScreen (et son inclusion en tant que "fonctionnalité" du système d'exploitation dans Windows 8) indiquent clairement que Microsoft souhaite que vous achetiez un certificat de signature de code au lieu de travailler de manière créative autour du problème qu'ils ont créé pour vous. Quelqu'un a-t-il découvert une nouvelle méthode pour faire confiance aux éditeurs qui utilisent leurs certificats de signature de code auto-signés par défaut (c'est-à-dire ne pas afficher les invites)? À moins de désactiver complètement le filtre, que peuvent faire les utilisateurs finaux pour informer le filtre SmartScreen de 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 cherche un moyen de dire à SmartScreen Filter de faire confiance à un éditeur qui n'achète pas de certificats d'une source externe, mais émet plutôt les leurs pour une utilisation au sein de leur organisation.
MISE À JOUR: Je pense que j'ai peut-être trouvé une solution de contournement! De MSDN , SmartScreen Le filtre 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és et exécutés à partir d'un site de confiance dans Windows 8, cela serait grandement apprécié et aiderait beaucoup de fournisseurs de logiciels indépendants et d'équipes de développement internes. Ce serait également la solution de contournement nécessaire pour répondre à cette question. Les sites de confiance peuvent être configurés par la stratégie de groupe, ce serait donc simple à partir de là.
Par programme, la désactivation du filtre SmartScreen pour la zone des sites de confiance peut être obtenue en définissant 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 l'ajout du site à faire confiance à la zone des sites de confiance peut être fait comme indiqué dans cette question .
Quelqu'un pourrait-il s'il vous plaît vérifier que ma solution de contournement proposée fonctionne sur Windows 8 pour un exécutable non signé ou auto-signé téléchargé à partir d'un site de confiance? Je n'utilise pas Windows 8 moi-même, ayant dépensé mon budget de mise à niveau du système d'exploitation pour les frais de certificat.
À l'aide d'un essai de 90 jours de Windows 8 de Microsoft, j'ai pu vérifier que ma solution de contournement fonctionne bien. Si vous souhaitez payer une seule et unique fois un certificat de signature de code au lieu de payer des frais annuels, cette méthode devrait également fonctionner pour vous, mais je ne peux donner aucune garantie. Ma solution est par machine, mais devrait être facile à convertir pour fonctionner par utilisateur.
Voici ma solution:
Le pire avertissement que j'ai reçu jusqu'à présent en utilisant cette méthode a été "Ce type de fichier pourrait endommager votre ordinateur". C'est le type de "Vous téléchargez un fichier exécutable!" avertissement. Il ne masque pas l'option Exécuter et n'apparaît pas pour les déploiements ClickOnce utilisant la page Web bootstrap générée en cliquant sur "Publier" dans VS2010.
Merci pour tous les commentaires et liens.
Pour citer site Web de MSDN :
Les détracteurs peuvent prétendre que SmartScreen "force" les développeurs à dépenser de l'argent pour des certificats. Il convient de souligner que les certificats de signature de code EV ne sont pas nécessaires pour construire ou maintenir une réputation avec SmartScreen. Les fichiers signés avec des certificats de signature de code standard et même des fichiers non signés continuent de bâtir une réputation comme ils l'ont fait depuis l'introduction de la réputation des applications dans IE9 l'année dernière. Cependant, la 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é un processus de validation rigoureux et a été signé avec du matériel qui permet à nos systèmes d'établir la réputation de cette entité plus rapidement que non signé ou non. -Programmes signés par code EV.
En d'autres termes, la validation EV (payante) n'est qu'un facteur dans un grand algorithme qui détermine si l'avertissement SmartScreen est affiché ou non. Si vous avez beaucoup de gens qui téléchargent votre programme, ou si le lien de téléchargement de votre programme n'a pas changé depuis un certain temps, avec du travail, vous pouvez obtenir votre programme pas pour afficher l'avertissement. De plus, en signant numériquement votre code, vous pouvez augmenter votre réputation d'application. C'est directement de la page Web de Microsoft sur le sujet .
J'ai trouvé un moyen très simple de contourner le filtre même sans privilèges d'administrateur. Ce que vous devez faire, c'est:
@%*
"SkipSmartScreen.bat"
(oui, avec les guillemets) dans le même dossier que votre application. Vous pouvez renommer le fichier de commandes ultérieurementCela contournera ensuite le filtre smartscreen.
Testé sur Windows 10 Home, Pro et Enterprise et Windows 8 Pro.
Comment ça fonctionne:
@
- Ceci est juste pour l'apparence, il cache le nom de la commande en cours d'exécution%*
- Ceci s'étend à tous les arguments de ligne de commande passés (par exemple le fichier que vous avez déposé sur le fichier de commandes)Voici une bonne explication pour désactiver le SmartScreen:
- Windows SmartScreen - Activer ou désactiver dans Windows 8
- Décochez l'option dans les options des dossiers
Qu'est-ce que j'ai utilisé et qu'est-ce qui a fonctionné pour moi? C'était "l'option un" du premier lien:
J'espère que c'est ce que vous cherchiez. :)