web-dev-qa-db-fra.com

Comment passer l'écran intelligent sur Win8 lors de l'installation d'une application signée?

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?

72
Howard

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,

https://blogs.msdn.Microsoft.com/ie/2012/08/14/Microsoft-smartscreen-extended-validation-ev-code-signing-certificates/

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

47
Lex Li

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:

Windows App Certification Kit

Après l'exécution des tests, WACK explique comment procéder:

Final Report - Validation passed

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.

46
Pierre Arnaud

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:

  • Avant d'exécuter un programme d'installation ou un fichier exécutable téléchargé, Windows 8 consulte une base de données.
  • La base de données peut indiquer si ce programme a été ou non:
    • signalé comme malveillant/phishing (et vérifié par un employé de Microsoft).
    • utilisé/géré par beaucoup de gens.

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).

15
Xantix

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.

11
Lompican

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)

enter image description here

  • Ces certificats de signature de code standard sont morts. Signifie que si vous avez un certificat de signature de code standard, il ne fonctionnera plus de manière fiable comme avant, même si le kit de certification d'application Windows (WACK) affiche PASS avec WARNING, ne signifie pas que son succès est de 100%.

enter image description here

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.

enter image description here

5
YumYumYum

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.

4
Chris

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).

1
Luciano Arruda

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).

1
Daniel

"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.

0
Simon Carter