私たちは開発者であり、デジタル署名されたアプリケーションのインストーラーがあります。このアプリケーションをインストールすると、インストール画面に影響するスマート画面がポップアップ表示されます。それは言います
WindowsがPCを保護
Windows SmartScreenは、認識されないアプリの起動を妨げました。このアプリを実行すると、PCが危険にさらされる可能性があります。
Microsoftには、デジタル署名以外にアプリケーションを検証するための戦略があると思います。この問題の経験がある人はいますか。この問題を解決するための手がかりを教えてください。
CAから購入した証明書を使用してインストーラーに署名した場合、この警告を取り除くためにマイクロソフトと協力できなかった理由についてCAに連絡する必要があります。
証明書がCAからではなく、自己署名証明書である場合、CAに頼らなければなりません。
マイクロソフトのほとんどの情報は既にWindowsチームのブログで公開されていますが、
ベストプラクティス
開発者は、過去のブログ投稿で提案したベストプラクティスに従う必要があります。そのガイダンスに、Windowsストア経由でアプリを配布する追加オプションとEVコード署名のオプションを追加しました。
- Windowsストアを介してアプリを配布する
Windowsストア開発者のオンボーディングおよびアプリケーションレビュープロセスに合格するには、Windows 8アプリケーションが必要です。 Windows 8アプリケーションは、Windows 8のSmartScreenアプリケーションレピュテーションチェックまたは警告の対象外です。
- プログラムにデジタル署名する(標準またはEVコード署名)
評判が生成され、デジタル証明書と特定のファイルに割り当てられます。デジタル証明書を使用すると、多くの個々のプログラムではなく、単一の証明書にデータを集約して割り当てることができます。必須ではありませんが、EVコード署名証明書で署名されたプログラムは、そのファイルまたは発行元の事前評価が存在しなくても、SmartScreen評価サービスですぐに評価を確立できます。 EVコード署名証明書には一意の識別子もあるため、証明書の更新後も評判を維持しやすくなります。 Windowsルート証明書プログラムのメンバーであるCAによって発行されたAuthenticode証明書のみがレピュテーションを確立できます。
現時点では、シマンテックとDigiCertはEVコード署名証明書を提供しています。
- 悪意のあるコードに署名したり配布したりしないでください
悪意のあるコードとして検出されたコードを配布すると、EVコード署名証明書で署名されている場合でも、ファイルからレピュテーションおよび関連するデジタル証明書からレピュテーションが削除されます。
- WindowsロゴまたはWindows 8デスクトップアプリの認定を申請する
これらのプログラムの詳細については、こちらをご覧ください:Windows 8デスクトップアプリの認定(Windowsストアの申請に必要)Windowsロゴプログラム
oldAuthenticode証明書からnew1つ(EV証明書ではなく、自動ビルドプロセスで使用できる単なる証明書)。
マイクロソフトは、既存の証明書から新しい証明書にレピュテーションを転送する手段を提供しなくなりました。だから彼らのサポートに電話しようとしないでください。多くの時間とエネルギーを無駄にするだけです。そして、彼らは助けることができなくなります。
マイクロソフトは、古い証明書と新しい証明書が同じテキストコンテンツを持っている場合、レピュテーションがより速く確立されると主張しています。具体的には、SmartScreen®フィルターのアプリケーションレピュテーション機能サポートチームからの返信を以下に示します。
既知の評判を持つ証明書を更新するときは常に、更新された証明書で署名されたファイルの最初のダウンロード中に警告が表示される可能性があることに注意してください。ただし、更新された証明書の既知のレピュテーションは、通常、新しい証明書よりも迅速に確立されます。更新された証明書が評判を確立している間、ユーザーはクリックスルーしてダウンロードを実行または保存できます。そうするために、彼らはアクションを選択します|その他のオプション|とにかくダウンロードマネージャーから実行します。
SmartScreenがユーザーに警告しないようにする最善の方法は、Windows SDKに含まれているWindows App Certification Kit(WACK)を実行することですダウンロード:
テストを実行した後、WACKは続行する方法を説明します。
成功したアプリケーション認証のXML結果を https://sysdev.Microsoft.com にアップロードします。数日後、SmartScreenは認定プログラムに使用されるデジタル署名を認識し、ダウンロード時にユーザーに警告しなくなります。
注Windows 8.1の最新の更新でアプリケーションを認証することができず、WACKを取得するためにWindows 8.1のクリーンインストールを使用する必要がありました。すべてのプログラムを正常に検証します。
私はしばらく探していたので、これまでに見つけたものを共有します。
MicrosoftのWindows 8にはこの機能に関するドキュメントはありませんが、間違った場所を探しているだけかもしれません。
私が読んだ記事のほとんどは、SmartScreenフィルターが次のように機能することを説明しています。
インストーラーを悪意のあるものとして報告せずに十分な人が実行すると、最終的にそのプログラムは安全であるとフラグが付けられ、他のユーザーは迷惑なメッセージを受け取りません。
ユーザーがプログラムをインストールするときにMicrosoftに送信される情報には、IPアドレス、インストーラーのハッシュ、デジタル署名、および場合によってはアプリケーションのファイル名が含まれます。 ( こちらを参照 )
Microsoftの従業員は、データベースに直接アクセスして、すべてのMicrosoftアプリケーションを安全に追加し、フラグを立てることができます。
おそらく、Microsoftがインストーラーを事前に認証する方法を設定しているのかもしれませんが、そうでない場合は、十分な人がインストーラーを実行するまで待つ必要があるかもしれません。 (しかし、それがいくつになるかはわかりません)。
私はちょうどこのプロセスを経て、これにいくつかのちょっとした情報を追加します。
1)EVを取得します。価値がある。次回証明書をアップグレードするときは、EV証明書にアップグレードします。価格は年間約100ドルです。 EV証明書は盗むのが難しいため、より安全であると見なされます。発行されると、サインを完了するためにハードウェアトークンデバイスが発行されます。残念ながら、最終サインは自動ビルドと互換性がありません。
見た目ほどひどいものではありません。彼らは、自動化と互換性のある実行可能ファイル(インストーラー内)に署名する2番目の証明書を提供します。インストーラーの署名は、ハードウェアトークンと併せて署名する必要があります。
2)EV証明書を取得したくない場合は、評判が必要です。アップグレードする場合、マイクロソフトは古い証明書から新しい証明書に評判を転送します。 MSDNテクニカルサポートに連絡する必要があり、約1週間で完了します。古い証明書と新しい証明書を使用して、古いインストーラーと新しいインストーラーを提出し、修正しました。
3)これが最初の証明書である場合、評判が得られるまでSmartScreenにとどまります。おそらく、sysdev.Microsoft.comを通じてアプリの認定を受ける必要があります。しかし、Microsoftで好評を得るまでに必要なダウンロード数は実際にはわかりません。
それが私の経験です。
Windows 8.1がリリースされたため。
マイクロソフトは、インターネット経由でPCにダウンロードしてインストールしようとすると、信頼できるようにすべての標準コード署名証明書を無効にしましたが、USBまたはCD-ROMでアプリケーションを配布すると、標準コード署名証明書アプリケーションが機能します。
signtool.exe
を使用して確認しないでください(signtool.exe verify /pa mysetup.exe
は成功を表示しますが、他のユーザーがダウンロードしてSmartScreenポップアップをインストールしようとすると失敗します)
Windowsアプリ認定キット(WACK)を使用する
EV証明書を購入する必要があります( https://www.globalsign.com/en/code-signing/ )
100%成功するために、スプーンフィードに従ってください:
ステップ1: https://sysdev.Microsoft.com にアクセスしてログイン
a)企業アカウントを作成>次へ
b)Microsoftが提供するZipファイルであるwinqual.exeファイルをダウンロードし、標準証明書またはEV証明書でwinqual.exeに署名し、[次へ]をクリックして検証用のファイルをアップロードします。
私の場合、Microsoftが許可しなくなった標準証明書があるため失敗しました。だから、あなたがしなければならないことは、EVライセンスを購入することです。
EV証明書ソリューションをテストしましたが、動作します。
悲しいことに、EV証明書は、サービスのコンテキストで署名を実行するTeamBuildと互換性がないことにも触れます。 EV証明書には、承認されたすべてのEV証明書ベンダー(VeriSignおよびDigiCert)で使用するためにSafeNet、Incが提供する暗号化サービスプロバイダーとインターフェイスするハードウェアトークンが必要です。
署名が行われると、Safenetからのドライバーは、サービスのコンテキストでの実行とは多少互換性のないパスワードを要求します。さらに、Safenetは、実際のコンソール以外からの署名を防ぐ保護を提供します。リモートデスクトップセッション内からも署名できません。そのため、Teambuild内からの署名は、せいぜい問題があり、最悪の場合は不可能です。
私はマイクロソフトと仕事をしてきましたが、SmartScreenで署名やその他の方法で即座に評判を得るための回避策を提供できませんでした。
トークンのEV証明書(GlobalSign)を使用して、自動化された方法でアプリケーションに署名します。 .batファイルを使用します。 「.bat」ファイルにexと入力します:(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"
「証明書の正確なエンタープライズ名-トークン」は、証明書(トークン)にある正確な名前である必要があります
残念ながら、上記の回答の1つにコメントするだけの十分な担当者がいません。ただし、公開されたアプリに部分的な信頼を指定し(インターネットゾーンを選択しました)、コード署名証明書を設定している場合、スマートスクリーン警告は表示されません(Win10でチェック)。
「ファイルのバージョンは、実行しているウィンドウのバージョンと互換性がありません」。 Windows 2008サーバーでは、インストールを選択する「詳細」ボタンはありません。
マイクロソフト以外の製品(Delphi)を使用してWindowsデスクトップソフトウェア(「アプリ」ではない)を開発し、インストーラーにInnosetupを使用しているため、アプリの検証は無意味です。何もせずに30分間そこに座って、アプリを起動してからアプリを手動で閉じ、パスレポートを生成します。
すべてのリリースと、その中のすべての実行可能ファイルにコード署名します。
XMLをMicrosoftにアップロードすると、認証されたXMLはメインの開発者アカウントとは関係のないサイトに置かれ、Microsoft Storeに公開することはできません。アプリケーションごとに45分無駄になりました。