web-dev-qa-db-ja.com

SmartScreenフィルターに自己署名証明書を信頼させるにはどうすればよいですか

Windows 8でのMicrosoftのSmartScreenフィルターは、小規模な開発者にとって最悪の悪夢です。

エンドユーザーにとってのメリットと、悪意のあるプログラムがエンドユーザーのコンピューターにインストールされるのを防ぐことの有効性を理解していますが、私や他の多くの開発者は、コード署名証明書や、さらに悪いことにEVコード署名証明書。また、社内で使用するために開発された製品が、Trusted Publishersストアに保存されている内部CAからの信頼できる証明書で署名されている場合、フィルターの熱心な動作の犠牲になります。

開発者と管理者は、信頼できる発行元ストアに発行元のコード署名証明書をインストールすることで、警告とプロンプトを無効にすることができました。クリエイティブな開発者は、有料のAuthenticodeコード署名証明書で署名され、タイムスタンプが付けられた前提条件をインストールするときに、自己署名コード署名証明書をそこにインストールできます。その後、発行者によって署名されたプログラムは信頼され、SmartScreenフィルターアラームを作動させません。基本的に、いったん信頼されると、出版社は定期的な料金から解放されました。

SmartScreenフィルターの最近の変更(およびWindows 8のOS "機能"としての追加)により、Microsoftが作成した問題を創造的に回避するのではなく、コード署名証明書の購入を望んでいることが明確になりました。自己署名コード署名証明書をデフォルトで使用する(つまり、プロンプトを表示しない)発行者を信頼する新しい方法を誰かが発見しましたか?フィルターを完全にオフにする以外に、エンドユーザーは、自己署名証明書を常に信頼するようSmartScreenフィルターに知らせるにはどうすればよいですか?

コード署名証明書の購入は、この質問に対する答えではないことに注意してください。 SmartScreenフィルターに、外部ソースから証明書を購入せず、組織内で使用するために独自の証明書を発行する発行元を信頼するように指示する方法を探しています。

更新:回避策を見つけたかもしれません!From [〜#〜] msdn [〜#〜] 、SmartScreen Windows 8およびInternet Explorer 10では、信頼済みサイトとしてリストされているサイトのフィルターを無効にできます。 Windows 8の信頼済みサイトからダウンロードして実行するセットアッププログラムでこの方法が機能することを確認できれば、多くのISVおよび社内の開発チームに大いに役立ちます。また、この質問に答えるために必要な回避策にもなります。信頼済みサイトはグループポリシーで構成できるため、そこから簡単になります。

プログラムにより、信頼済みサイトゾーンのSmartScreenフィルターをオフにするには、マシンのHKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2!2301またはHKCU\Software\Policies\Microsoft\Windowsを設定します。ユーザーの\ CurrentVersion\Internet Settings\Zones\2!2301を0に設定し、信頼するサイトを信頼済みサイトゾーンに追加するには、 この質問 に示すようにします。

信頼できるサイトからダウンロードされた未署名または自己署名の実行可能ファイルに対して、提案された回避策がWindows 8で機能することを誰かが確認できますか?私は自分でWindows 8を使用していません。証明書の費用にOSのアップグレード予算を費やしました。

41
Shannon Cook

MicrosoftのWindows 8の90日間の試用版を使用して、回避策が実際に機能することを確認できました。年会費を支払う代わりに、コード署名証明書の支払いを1回だけ行いたい場合、この方法でも同様に機能しますが、保証はできません。私のソリューションはマシンごとですが、ユーザーごとに動作するように簡単に変換できるはずです。

これは私の解決策です:

  1. 独自の証明書インフラストラクチャをセットアップします。
  2. ルートCA証明書、ルートが発行した中間CA証明書、および中間CAが発行したコード署名証明書のコピーを.cerファイルとしてWebサイトに公開します。
  3. ルートCAによって発行されたWebサイトにSSL証明書をインストールします。
  4. 次のタスクを実行するインストーラー/ダウンローダーアプリケーションを作成します。
    • ルートCA証明書を(Webサイトのステップ2から)エンドユーザーのマシンの信頼されたルート証明機関ストアにインストールします。
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2!2301を0に設定して、信頼済みサイトのインターネットゾーンのSmartScreenフィルターを無効にします。
    • レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\yourdomain.com\yoursubdomainを追加して、Webサイトをゾーンマップに追加します。
    • 前の手順で作成したキーに値が2のhttpsというDWORDを作成して、ドメインを信頼済みサイトゾーンにマップします。
  5. マイクロソフトの信頼されたルートプログラムのメンバーからコード署名証明書、できればEV証明書を購入してください。
    • 購入する前に、CAがコード署名証明書に使用する証明書とタイムスタンプスキームがOIDの1.3.6.1.4.1.311.10.3.13または1.3.6.1.4.1.311.10.3.14にならないようにしてください。署名は、タイムスタンプが付いているかどうかにかかわらず、証明書の有効期限が切れると失効します。
  6. ステップ5で購入した証明書を使用して、ダウンローダー/インストーラーに署名し、タイムスタンプを付けます。署名にライフタイム制限がないことを確認します。すべて問題なければ、購入したコード署名証明書を安全な場所に置いてロックできます。
  7. ダウンローダー/インストーラープログラムをWebサイトに公開します。すべての製品の前提条件のダウンロードにします。
  8. この時点から、SmartScreenフィルターが迷惑になることなく、独自の内部認証局によって発行されたコード署名証明書(およびその他の証明書)を使用できます。

これまでにこの方法を使用して受け取った最悪の警告は、「このタイプのファイルはコンピューターに損害を与える可能性があります」です。これが典型的な「実行ファイルをダウンロードしています!」です。警告。 [実行]オプションは非表示にならず、VS2010で[公開]をクリックして生成されたbootstrap Webページを使用するClickOnce展開では表示されません。

すべてのコメントとリンクをありがとう。

3
Shannon Cook

MSDNのWebサイト から引用するには:

批判者は、SmartScreenが開発者に証明書にお金を使うことを「強制」していると主張するかもしれません。 SmartScreenで評判を構築または維持するために、EVコード署名証明書が必要ないことを強調する必要があります。標準コード署名証明書で署名されたファイル、および署名されていないファイルでさえ、昨年IE9でアプリケーションレピュテーションが導入されて以来、評判を高め続けています。ただし、EVコード署名証明書の存在は、ファイルが厳密な検証プロセスに合格し、ハードウェアで署名されたエンティティによってファイルが署名されたことを示す強力な指標です。 -EVコード署名プログラム。

つまり、EV(有料)検証は、SmartScreen警告を表示するかどうかを決定する大規模なアルゴリズムの1つの要素にすぎません。プログラムをダウンロードする人が多い場合、またはプログラムのダウンロードリンクがしばらく変更されていない場合は、何らかの作業を行うことでプログラムを取得できますnot警告を表示します。また、コードにデジタル署名することで、Appication Reputationを高めることができます。これは、 トピックに関するMicrosoftのWebページ から直接です。

23
William

管理者権限がなくても、フィルターをバイパスする非常に簡単な方法を見つけました。あなたがする必要があるのは:

  1. メモ帳を開く
  2. 次の行を入力します。@%*
  3. ファイルを"SkipSmartScreen.bat"(はい、引用符付き)としてアプリと同じフォルダーに保存します。バッチファイルの名前は後で変更できます
  4. アプリを起動するには、exeをバッチファイルにドラッグします

これにより、スマートスクリーンフィルターがバイパスされます。

Windows 10 Home、Pro、およびEnterprise、およびWindows 8 Proでテスト済み。

使い方:

  • @-これは見た目のためだけで、実行されているコマンドの名前を隠します
  • %*-これは、渡されたすべてのコマンドライン引数に展開されます(たとえば、バッチファイルにドロップしたファイル
  • 全体:バッチファイルの行であるかのように、バッチファイルを介してファイルを実行します。何らかの理由で、Windowsはバッチファイルから実行されるファイルのチェックを行いません。
3
geek1011

SmartScreenをオフにする方法は次のとおりです。
- Windows SmartScreen-Windows 8でオンまたはオフにする
- [フォルダオプション]のオプションをオフにします

私が使用したものと私に合ったものは何ですか?最初のリンクからの「オプション1」でした:

  1. コントロールパネル(アイコンビュー)を開き、アクションセンターアイコンをクリック/タップします。
  2. アクションセンターの左ペインで、Windows SmartScreen設定の変更リンクをクリック/タップします。
  3. [〜#〜] uac [〜#〜]のプロンプトが表示されたら、Yesをクリック/タップします。
  4. Windows SmartScreenで認識されないプログラムを処理する方法のオプションを選択(ドット)し、[〜#〜] ok [〜#〜]をクリック/タップします。
    注:デフォルトのオプションはインターネットから認識できないアプリを実行する前に管理者の承認を得るです。
  5. 終了したら、必要に応じてアクションセンターを閉じることができます。

これがあなたが探していたものであることを願っています。 :)

1
Monic