このトピックはまだ評価されていません - このトピックを評価する

Windows Phone のセキュリティ

2013/03/11

対象: Windows Phone 8 | Windows Phone OS 7.1

Windows Phone は、信頼された安全な提供元からのさまざまなアプリをユーザーがカスタマイズできる、魅力的なエクスペリエンスを提供するように設計されています。エンド ユーザーが安全、快適に電話を使用できるように、アプリを開発するときは常にセキュリティに注意を払うことが重要です。

このトピックは、次のセクションで構成されています。

Windows Phone アプリ プラットフォーム には、ユーザーが Windows Phone でサードパーティ製のアプリをダウンロードして使用する際に、エンド ユーザーの品質エクスペリエンスを確保できるようにと設計されたいくつものテクノロジーが組み込まれています。これらのテクノロジーによって対処される事項は、大まかに分けて次の 3 つのカテゴリに分類できます。

  • 電話エクスペリエンスの品質。エンド ユーザーは、取得したアプリによって、電話の応答性が悪くなるとか、他のアプリや電話自体に影響が及ぶような変更が加えられるなど、自分の電話エクスペリエンスに悪影響が及ぶことがなく、快適に使用できることを望んでいます。さらに、エンド ユーザーが何らかの理由で特定のアプリが自分の電話で必要なくなった場合に、アプリが簡単にアンインストールでき、完全にアンインストールされることも重要です。

  • ユーザーの情報へのアクセス。エンド ユーザーは、取得したアプリが知らないうちに特定の情報にアクセスすることを望みません。これには、エンド ユーザーの個人データ、連絡先、居場所、写真などの情報が含まれます。

  • 請求が発生するイベント。エンド ユーザーは、アプリが自分の許可なしに追加料金を発生させるようなアクションを実行しないことを望みます。例として、1-900 番号への呼び出しを行うアプリが挙げられます。

Windows Phone アプリ プラットフォーム には、こういった点に対処するように設計されたいくつかの対策が含まれており、エンド ユーザーが安心してアプリを試してみられるような健全なシステムを支援します。

Windows Phone アプリ プラットフォーム の目標の 1 つに、設計上安全であり、既定で安全なアプリの作成を支援することがあります。この目標を達成する上で重要な点は、いくつかのセキュリティ対策を開発環境とライフサイクルに組み込むことです。Windows Phone Store での販売を承認されたすべてのアプリに必須とされる、自動化されたデジタル署名が良い例です。

エンド ユーザーを保護するセキュリティ上の措置を促進するために、アプリの開発者は以下の手順に従う必要があります。

  1. Windows Phone 開発者としてサインアップし、ISV としての自身に関する情報を提供し (これは検証対象となります)、関連料金を支払います。

  2. 推奨される開発環境を入手します (無料版も入手可能です)。

  3. Windows Phone のアプリ開発に指定された標準プラクティスに従って Windows Phone アプリを開発します。テストをより簡単に行えるようにするために、開発者は 1 つまたは複数の Windows Phone を開発デバイスとして登録できるようになっています。これによって、開発中も、そしてアプリの送信と認定のプロセスでデジタル署名されるより前でもアプリを実行できるようになります。

  4. Windows Phone アプリを Windows Phone Store に含めるために申請します。「Windows Phone のアプリ認定要件」で説明しているとおり、このプロセスで、アプリは公に文書化されたさまざまな認定テストの対象になります。これらのテストすべてに合格すれば、そのアプリは開発者に代わってデジタル署名され、Windows Phone Store で販売できるようになります。

開発者は、この構造化された開発環境とプロセスに従うことにより、Windows Phone のエンド ユーザーに安心を与えるアプリ エコシステムを作り出すという役割を果たすことになります。

この構造化された開発プラットフォームと実行環境には、開発者の知的財産権を保護する助けとなるように設計された措置も含まれています。アプリを Windows Phone 上で実行するには、Windows Phone Store によって発行された有効なライセンスが電話上になくてはなりません。つまり、たとえ技術に精通したエンド ユーザーが Windows Phone Store を回避して、何らかの別の方法で自分の電話にアプリを読み込む方法を見つけ出したとしても、ライセンスがなければ Windows Phone での実行は許可されないため、開発者の労力の成果を保護する助けとなります。

Windows Phone アプリ プラットフォーム には、Windows Phone のエンド ユーザーを以下のような望ましくない特定の動作を示すアプリから保護するために設計されたさまざまなテクノロジーが採用されています。

  • 構造化されたアプリの申請と認定のプロセスには、問題を伴う可能性のある特定の動作を識別して、こういったアプリが Windows Phone Store で提供されるのを防ぐための一連の認定テストが含まれています。

  • Windows Phone Store は、アプリの入手、必須のコード署名、およびアプリ ライセンスのための唯一の正当なソースです。このアプローチにより、Windows Phone アプリで、一連の一貫した標準が維持されます。

  • Windows Phone アプリは、サンドボックス化されたプロセス内で実行されます。これは、アプリケーションが互いに分離されており、厳密に構造化された方法で電話機能と対話することを意味します。データや構成情報を保存する必要がある場合、アプリは、他のアプリによるアクセスから保護されるように設計された分離ストレージを使用して保存します。アプリは、制御されたメカニズムを通じてしか他のアプリと相互通信することができません。分離ストレージの詳細については、「Windows Phone のデータ」を参照してください。

  • Windows Phone アプリは、実行マネージャーの監視下で実行されます。実行マネージャーは、アプリが定義済みの特定の規則で要求されるとおりに動作しているかどうかを評価します。たとえば、実行マネージャーは、フォアグラウンドでないアプリによるリソースの使用を監視し、フォアグラウンド アプリのユーザーに対する応答性がよくなるように、必要に応じてフォアグラウンドでないアプリを終了させます。

  • 特定のアプリの実行に使用される、サンドボックス化されたプロセスは、カスタマイズされた一連のセキュリティ機能を持ちます。Windows Phone アプリ プラットフォーム は、実行するために必要な機能だけをアプリに与えることによって、各アプリが持つ攻撃対象となるアクセス領域を最小化するように設計されています。たとえば、メディア ライブラリを使用する必要がないアプリについては、Windows Phone アプリ プラットフォーム は、メディア ライブラリへのアクセス権を持たないサンドボックス化されたプロセス内で実行しようとします。

    アプリが必要とする可能性のある機能の中に、情報へのアクセスや料金の発生につながるものが含まれている場合もあります。このような場合、Windows Phone Store は、アプリ購入前にこの情報をエンド ユーザーに開示します。プレインストールされたアプリも、そのアプリが初めて実行されるときにエンド ユーザーにこの情報を開示する必要があります。

SDL は、ソフトウェア開発に焦点の当てられたセキュリティ保証プロセスです。必須のセキュリティ アクティビティが集められたものであり、従来のソフトウェア開発ライフサイクルのフェーズごとにグループ化されています。これらのセキュリティ アクティビティの多くは、スタンドアロン ベースで実装された場合にもある程度のセキュリティ上の利点を提供しますが、Microsoft での実務的な経験からは、順を追って、かつ再現性あるプロセスの一部として実行されたセキュリティ アクティビティは、一時的な実装よりも優れたセキュリティが得られるということがわかっています。全体的で実際的なアプローチを組み合わせることにより、SDL には、エンド ユーザーを保護する目的で開発プロセスのすべてのフェーズを通じてセキュリティとプライバシーが導入されています。SDL の詳細については、「SDL プロセス ガイダンス」を参照してください。

Microsoft は、開発者の皆様に自分の開発したアプリで使用していただける多数の SDL ツールを提供しています。Windows Phone 開発者の皆様に役立てていただけるツールとして、以下のツールがあります。

SDL ツール

情報

Microsoft SDL 脅威モデル化ツール

SDL 脅威モデル化ツールは、セキュリティ関連の問題が専門ではないエキスパートが、自分のシステムのセキュリティ設計について話し合い、それらの設計に潜む可能性のあるセキュリティ上の問題を実績ある手法で分析し、セキュリティ上の問題を緩和するためのアドバイスや管理を行うことにより、脅威モデルを作成して分析することができるようにするツールです。

FxCop

FxCop は、静的なアナライザーです。マネージ コードのアセンブリを分析し、可能な設計、場所、パフォーマンス、セキュリティの向上などのアセンブリに関する情報を報告します。

BinScope

BinScope バイナリ アナライザーは、バイナリを分析して、それらが SDL の要件と勧告に従って構築されているかどうかを確認する検証ツールです。BinScope は、SDL に要求されるコンパイラ/リンカー フラグが設定されていること、厳密な名前付きのアセンブリが使用されていること、最新のビルド ツールが存在すること、最新の優れた ATL ヘッダーが使用されていることなどをチェックします。BinScope は、SDL で禁止されているような危険な構築についても報告します。

MiniFuzz

MiniFuzz File Fuzzer は、ファイルを扱うコード内のセキュリティ上の脆弱性を暴露する可能性があるような問題を検出するために設計された基本的なテスト ツールです。このツールは、アプリケーション内でファイルの解析を行うような Windows Phone にとって便利です。

Banned.h

banned.h ヘッダー ファイルは、SDL 要件で禁止されている機能のコードからの削除をサポートする削除リソースです。このファイルには、禁止されているすべての API がリストされており、開発者がコード内でそれを見つけられるようになっています。このツールは、Web サービスを構築する開発者にとって便利です。

サーバーの SSL 証明書がターゲットとなる Web サイトに対して有効であり、信頼できる機関から発行されていれば、SSL 接続を使用して Web サービスに接続できます。アプリから SSL 接続をテストする前に、Windows Phone の Internet Explorer を使用して Web サイトにアクセスしてみることをお勧めします。ブラウザーを使用しているときにその証明書で警告またはエラーが発生した場合は、アプリで試みた接続もおそらく失敗します。

Windows Phone に付属している SSL ルート証明書のリストについては、「Windows Phone OS 7.1 の SSL ルート証明書」を参照してください。

信頼できる機関のリストに証明機関を追加することは可能ですが、クライアント SSL 証明書の追加はサポートされていません。

ProtectedData クラスを使用すれば、Data Protection API (DPAPI) を使用してデータを簡単に暗号化および暗号化解除できます。詳細については、「Windows Phone アプリでデータを暗号化する方法」を参照してください。

Web サービスでのセキュリティの処理方法については、「Windows Phone の Web サービス セキュリティ」を参照してください。

Windows Phone の機能の詳細については、「Windows Phone のアプリ機能とハードウェア要件」を参照してください。

Windows Phone では、以下の暗号化アルゴリズムがサポートされています。

  • AES

  • HMACSHA1

  • HMACSHA256

  • Rfc2898DeriveBytes

  • RSA

  • SHA1

  • SHA256

この情報は役に立ちましたか。
(残り 1500 文字)
© 2013 Microsoft. All rights reserved.