Nous sommes des développeurs et nous avons un installateur d'applications signées numériquement Lorsque nous installons cette application, l’écran intelligent s’affiche, ce qui affecte l’installation. Ça dit
Windows protège votre PC
Windows SmartScreen a empêché une application non reconnue de démarrer. L'exécution de cette application peut présenter un risque pour votre PC.
Je pense que Microsoft a une stratégie pour vérifier l'application en plus de la signature numérique. Quelqu'un at-il l'expérience pour ce problème et donnez-moi s'il vous plaît un indice pour résoudre ce problème?
Si vous avez signé le programme d'installation avec un certificat acheté auprès d'une autorité de certification, vous êtes censé contacter l'autorité de certification pour savoir pourquoi elle n'a pas réussi à collaborer avec Microsoft pour se débarrasser de cet avertissement.
Si le certificat ne provient pas d'une autorité de certification, mais d'un certificat auto-signé, vous devrez recourir à une autorité de certification.
Microsoft a déjà publié la plupart des informations sur son blog d'équipe Windows,
Meilleures pratiques
Les développeurs doivent toujours suivre les meilleures pratiques que nous avons suggérées dans les articles de blog précédents. Nous avons ajouté à ces conseils les options supplémentaires de distribution d'applications via Windows Store et l'option de signature de code EV:
- Distribuez vos applications via le Windows Store
Les applications Windows 8 doivent réussir le processus d'intégration et de révision des applications du développeur du Windows Store. Les applications Windows 8 ne sont pas visées par les vérifications de la réputation des applications SmartScreen ou les avertissements dans Windows 8.
- Signez numériquement vos programmes (signature standard ou code EV)
La réputation est générée et attribuée à des certificats numériques ainsi qu'à des fichiers spécifiques. Les certificats numériques permettent d'agréger des données et de les affecter à un seul certificat plutôt qu'à plusieurs programmes individuels. Bien qu'ils ne soient pas obligatoires, les programmes signés par un certificat de signature de code EV peuvent immédiatement établir une réputation avec les services de réputation SmartScreen, même s'il n'existe aucune réputation antérieure pour ce fichier ou cet éditeur. Les certificats de signature de code EV ont également un identifiant unique qui facilite la maintenance de la réputation lors du renouvellement des certificats. Seuls les certificats Authenticode émis par une autorité de certification membre du programme de certificats racines Windows peuvent établir la réputation.
Symantec et DigiCert proposent actuellement des certificats de signature de code EV.
- Ne signez ou ne distribuez pas de code malveillant
La distribution de code détecté comme malveillant supprimera la réputation d'un fichier, ainsi que toute réputation du certificat numérique associé, même si elle est signée avec un certificat de signature de code EV.
- Demander une certification pour le logo Windows ou Windows 8 Desktop App
Pour en savoir plus sur ces programmes, cliquez ici: Certification Windows 8 Desktop App (requise pour les soumissions Windows Store) Programme du logo Windows
Nous venons tout juste de passer d'un certificat ancien Authenticode à un nouvea (pas un certificat EV, mais simplement un certificat ordinaire pouvant être utilisé dans notre version automatisée). processus).
Microsoft ne fournit plus aucun moyen de transférer la réputation d'un certificat existant vers un nouveau. Alors n'essayez pas d'appeler leur soutien. Vous allez juste perdre beaucoup de temps et d'énergie. Et ils ne pourront pas aider.
Microsoft affirme que si l'ancien et le nouveau certificat ont le même contenu textuel, la réputation est établie plus rapidement. Plus précisément, voici la réponse de l'équipe d'assistance de la réputation de l'application SmartScreen® Filter:
Veuillez noter que chaque fois que vous renouvelez un certificat dont la réputation est connue, vous verrez probablement des avertissements lors du téléchargement initial des fichiers signés avec le certificat renouvelé. Toutefois, la réputation connue sur le certificat renouvelé est généralement établie plus rapidement que sur un nouveau certificat. Lorsqu'un certificat renouvelé établit la réputation, les utilisateurs peuvent toujours cliquer pour exécuter ou enregistrer le téléchargement. Pour ce faire, ils sélectionnent Actions | Plus d'options | Exécutez quand même à partir du Gestionnaire de téléchargement.
Le meilleur moyen de vous assurer que SmartScreen ne préviendra pas les utilisateurs consiste à exécuter le Kit de certification d'application Windows (WACK), qui doit être inclus dans le téléchargement du SDK Windows:
Après l'exécution des tests, WACK explique comment procéder:
Téléchargez le résultat XML d'une certification d'application réussie sur https://sysdev.Microsoft.com . Quelques jours plus tard, SmartScreen sera informé de la signature numérique utilisée pour le programme certifié et n’avertira plus les utilisateurs lors du téléchargement.
Note Nous n'avons pas pu certifier notre application sur les dernières mises à jour de Windows 8.1 et nous avons dû utiliser une nouvelle installation de Windows 8.1 pour que WACK puisse valider avec succès tous nos programmes.
Je cherche depuis un moment et je vais donc partager ce que j'ai trouvé jusqu'à présent.
Je n'ai trouvé aucune documentation sur cette fonctionnalité dans Windows 8 de Microsoft, mais il est possible que je cherche simplement au mauvais endroit.
La plupart des articles que j'ai lus expliquent que le filtre SmartScreen fonctionne comme suit:
Si suffisamment de personnes ont exécuté ce programme d’installation sans le signaler comme malveillant, ce programme sera finalement considéré comme sûr et les autres utilisateurs ne recevront pas le message gênant.
quelques sources: ( ici ) ( ici )
Les informations envoyées à Microsoft lorsqu'un utilisateur installe un programme comprennent une adresse IP, un hachage de l'installateur et une signature numérique, et éventuellement le nom de fichier de l'application. ( voir ici )
Les employés de Microsoft auraient un accès direct à la base de données pour ajouter et signaler en toute sécurité toutes les applications Microsoft.
Peut-être que Microsoft a mis en place un moyen de pré-certifier votre programme d'installation avec eux, sinon vous devrez peut-être attendre que suffisamment de personnes l'utilisent. (mais je ne sais pas combien cela serait).
Je viens de passer par ce processus, et je vais ajouter quelques informations à ce sujet.
1) Obtenez un EV. Ça en vaut la peine. La prochaine fois que vous mettrez à niveau vos certificats, effectuez une mise à niveau vers un certificat EV. Le prix est d'environ 100 $ de plus par an. Les certificats EV sont considérés comme plus sûrs, car ils sont plus difficiles à voler. Une fois délivré à vous, un dispositif de jeton matériel vous sera envoyé pour compléter le signe. Malheureusement, le signe final n'est pas compatible avec les versions automatisées.
Ce n'est pas aussi terrible que cela puisse paraître. Ils vous fourniront un deuxième certificat pour signer vos exécutables (à l'intérieur du programme d'installation) qui reste compatible avec l'automatisation. La signature sur le programme d'installation doit être signée conjointement avec le jeton matériel.
2) Si vous ne voulez pas obtenir un certificat EV, vous avez besoin d'une réputation. Si vous effectuez une mise à niveau, Microsoft transférera la réputation de votre ancien certificat à votre nouveau. Vous devez contacter le support technique MSDN et ce sera fait dans environ une semaine. J'ai soumis mes anciens et nouveaux installateurs - avec les anciens et les nouveaux certificats - et ils les ont corrigés.
3) S'il s'agit de votre premier certificat, vous êtes bloqué avec SmartScreen jusqu'à ce que vous obteniez une réputation. Vous devriez probablement faire certifier votre application via sysdev.Microsoft.com. Cependant, le nombre de téléchargements dont vous avez besoin avant de vous faire une réputation positive auprès de Microsoft n'est pas vraiment connu.
C'est mon expérience.
Depuis Windows 8.1 est sorti.
Microsoft a désactivé tous les certificats de signature de code standard pour les faire confiance lorsque vous les téléchargez via Internet sur votre PC et tentez de les installer, mais l'application Certificats de signature de code standard fonctionne si vous distribuez votre application via USB ou un CD-ROM.
Ne pas utiliser le signtool.exe
vérifier (signtool.exe verify /pa mysetup.exe
affichera le succès, mais il échouera lorsque les autres utilisateurs le téléchargeront et tenteront d’installer une fenêtre contextuelle SmartScreen.)
Utiliser le kit de certification des applications Windows (WACK)
Vous devez acheter un certificat EV ( https://www.globalsign.com/en/code-signing/ )
Alors, pour avoir 100% de succès, suivez le fil de la cuillère:
Étape 1: allez à https://sysdev.Microsoft.com et connectez-vous
a) Créer un compte d'entreprise> suivant
b) Téléchargez le fichier winqual.exe au format Zip fourni par Microsoft, puis signez le winqual.exe avec votre certificat standard ou votre certificat EV, puis cliquez sur suivant pour télécharger le fichier à des fins de validation.
Dans mon cas, cela a échoué car j’ai un certificat standard que Microsoft cesse d’autoriser. Donc, tout ce que vous avez à faire maintenant est d’acheter une licence EV, sinon vous êtes foutu, et vous pouvez passer votre vie à résoudre ce problème sans aucun indice.
J'ai testé la solution de certification EV et cela fonctionne.
Malheureusement, je mentionnerai également que les certificats EV sont incompatibles avec TeamBuild qui exécute la signature dans le contexte d'un service. Les certifications EV nécessitent un jeton matériel qui s'interface avec le fournisseur de services cryptographiques fourni par SafeNet, Inc pour une utilisation avec tous les fournisseurs de certifications EV autorisés (VeriSign et DigiCert).
Lors de la signature, les pilotes de Safenet demanderont un mot de passe quelque peu incompatible avec l'exécution dans le contexte d'un service. De plus, Safenet fournit une protection qui empêche la signature de tout élément autre que la console réelle. Vous ne pouvez même pas signer à partir d'une session de bureau à distance. Donc, signer à Teambuild est problématique au mieux et pas possible au pire.
J'ai travaillé avec Microsoft et ils n'ont pas été en mesure de fournir une solution de contournement pour la signature ou tout autre moyen permettant d'obtenir une réputation instantanée sous SmartScreen.
Je signe ma demande de manière automatisée à l'aide d'un certificat EV sur un jeton (GlobalSign). Utilisez un fichier .bat. dans le fichier ".bat", tapez ex: (pour sha1)
SignTool.exe sign /n "Exact Enterprise name in the cert - token" /t "http://timestamp.globalsign.com/scripts/timstamp.dll" "c:\Patch_to_file\Filename.exe"
Le "nom exact de l'entreprise dans le jeton de certification" doit correspondre exactement au nom figurant dans le certificat (jeton).
Malheureusement, je n'ai pas assez de représentants pour simplement commenter l'une des réponses ci-dessus. Cependant, si vous spécifiez une confiance partielle pour votre application publiée (j'ai choisi la zone Internet) et si vous avez un certificat de signature de code en place, aucun avertissement d'écran intelligent ne s'affiche (vérifié sur Win10).
"La version du fichier n’est pas compatible avec la version de Windows que vous utilisez". Sous Windows 2008, il n’ya pas de bouton "Plus d'infos" à installer de toute façon.
Alors que nous développons des logiciels de bureau Windows (et non des "applications") à l'aide de produits non Microsoft (Delphi), et utilisons Innosetup pour notre programme d'installation, la validation des applications n'a pas de sens. Cela fait 30 minutes qu'il ne reste rien, nous lançons simplement l'application, puis nous la fermons manuellement et un rapport de réussite est généré.
Nous signons par code toutes nos versions et tous les exécutables qu’elles contiennent.
Lorsque nous téléchargeons le fichier XML vers Microsoft, le fichier XML certifié se trouve sur un site indépendant de notre compte de développeur principal, sans possibilité de le publier sur le Microsoft Store. 45 minutes perdues par application.