近年、コードサイニング証明書で正しく署名されたアプリケーションであっても、Windows上で「SmartScreen(Microsoft Defender SmartScreen)」による警告が表示されるケースが増えています。
「きちんと署名をしているのに、なぜ警告が表示されるのか」といったご相談をいただくことも少なくありません。
本記事では、SmartScreenの仕組みと警告が表示される理由、そして開発者・配布元として信頼を築くためのポイントについて分かりやすく解説します。
目次
SmartScreenとは
SmartScreenは、アプリケーションの安全性を判断するためにWindowsに組み込まれている、レピュテーション(評価)ベースのセキュリティ機能です。
アプリケーションが実行される際には、主に次の2つの観点から評価が行われます。
| 評価項目 | 内容 |
|---|---|
| パブリッシャーのレピュテーション(Publisher reputation) | コードサイニング証明書の信頼性 |
| ファイルのレピュテーション(File reputation) | そのファイルがどれだけ利用され、安全に使われているか |
つまりSmartScreenは、「署名されているかどうか」だけでなく、配布実績・利用実績も含めて総合的に評価する仕組みになっています。
SmartScreen警告が表示される理由
署名済みのアプリケーションであっても、次のような場合はSmartScreenによる警告が表示されることがあります。
- 新しくリリースされたばかりのアプリケーションである場合
- ダウンロード数が少なく、まだ広く利用されていない場合
- 新しく取得したコードサイニング証明書で署名されている場合
- アプリケーションのバージョン更新により、ファイルの内容が変更された場合
特に重要なのは、SmartScreenの評価はファイル(ハッシュ)単位で蓄積されるという点です。
そのため、同じアプリケーションであっても、バージョンの更新やビルドのやり直しなどでバイナリが変わると「別のファイル」として扱われ、蓄積されてきた評価が実質的にリセットされることがあります。
コード署名とSmartScreenの役割の違い
よくあるご相談として、「コードサイニング証明書で署名しているのに、SmartScreen警告が表示される」というお問い合わせをいただきます。
「コード署名を行うとSmartScreen警告が表示されない」と理解されているケースもありますが、コード署名とSmartScreenでは役割が異なります。
コード署名が担う役割
- 発行元(誰が作成したか)の身元証明
- ファイルが改ざんされていないことの証明
SmartScreenが評価している点
- そのファイルがどれくらい使われているか(普及度)
- 安全に利用されている実績があるか
このように、コード署名は「身元確認と改ざん検知」を行う仕組みであり、
SmartScreenは「実績(レピュテーション)に基づく信頼評価」を行う仕組みというように、それぞれ異なる役割を担っています。
EVコードサイニング証明書と警告表示の関係
以前は、EVコードサイニング証明書を利用することで、SmartScreen上で有利に働くケースが見られました。
しかし近年では、EVコードサイニング証明書で署名した場合でも、即座に警告が表示されなくなるとは限らない点に注意が必要です。
現在は、通常のコードサイニング証明書および、EVコードサイニング証明書のいずれの場合も、SmartScreenの評価は利用実績(レピュテーション)をもとに蓄積される仕組みとなっています。
そのため、証明書の種類に関わらず、継続的な配布実績によって信頼を構築していくことが重要です。
一方で、EVコードサイニング証明書は、企業実在性の審査がより厳格に行われているため、配布先のユーザに対して「実在性が確認された信頼性の高い開発元である」ことを示しやすいという価値があります。
SmartScreenの信頼が蓄積される仕組み
SmartScreenにおけるアプリケーションの信頼性は、次のような条件により徐々に蓄積されていきます。
- ユーザによるダウンロード・インストールの増加
- マルウェアなどの問題報告(悪性シグナル)がないこと
- パブリッシャーが継続的にソフトウェアに署名していること
SmartScreenはこれらの情報(テレメトリ)をクラウド側に蓄積し、評価に反映しています。
そのため、リリース直後のアプリケーションは「まだ十分な実績がない未知のアプリ」として扱われ、警告が表示されるのは仕様上想定された挙動です。
つまり、SmartScreenの信頼は、時間の経過とともに利用実績によって構築される仕組みとなっています。
まとめ
Microsoftによるエンドポイントセキュリティの強化に伴い、SmartScreenはより厳格に、レピュテーション重視の評価へと移行していくと考えられます。
これは、Windows 11で導入された「Smart App Control」に代表されるように、未署名・信頼性が確立されていないアプリケーションを自動的に制限する方向性とも一致しています。
こうした背景から、今後は署名するだけでは不十分であり、継続的な配布実績・利用実績によって信頼を構築していくことが重要となります。
ソフトウェアの開発者・配布元としては、正しいコード署名と継続的な配布、そしてユーザへの適切な情報提供を行うことで、時間の経過とともにSmartScreen上の信頼を築いていくことが求められます。
GMOグローバルサインでは、コードサイニング証明書および、EVコードサイニング証明書を提供しており、コード署名に関するご相談も承っております。お気軽にお問い合わせください。
関連記事
Smart App Controlによるアプリケーション実行制限をコードサイニング証明書で改善した事例〜ソフトウェア開発企業様のケース〜
スマートスクリーンにブロックされないEVコードサイニング証明書で安心と信頼を獲得
高まるコードサイニング証明書の重要性
関連サービス・情報


