使用に同意するものと見なされます。Academyこれ、私の現在のランキングです。なんのこっちゃわからない方も多いですよね。Academy」を運営しています。以下をクリックして、まずはユーザー登録からはじめてください(ぜんぜん面倒じゃありません)。要は、ブラウザを使ってオンライン学習して、ポイントかせいでランキングを上げちゃおうってやつです。勤勉な方ほどランクが上がるという、なんともやりがいのあるシステムです。コンテンツ(以下)が日本語化されてますので、是非とも挑戦してください。軽く私のランクを超えます。日本語版コンテンツも公開予定です。国ごとのランキングが出ると、もっとおもしろいんですけどねぇ。マルウェアからの保護これまでの投稿は以下の通りです。今回はマルウェアからの保護について。概念的な内容であまり面白味のある話ではないかもしれませんが、おつきあいいただければ。モバイルデバイスのウィルスやマルウェアによる脅威が増えつつあります。とっては大きな脅威となりえます。マイクロソフトはデータ保護において「多層的な縦深防御」というアプローチをとっているということを解説しましたが、本件に関しても同様のアプローチをとっています。このアプローチは大きく以下の2点に分けられます。上記を踏まえ、具体的に解説します。Framework」と呼ばれています。これは同時に、アプリケーションの実行環境でもあります。~「チャンバー」という考え方(2)前回は「チャンバー」の概念についてお話ししました。今回は、その補足的な内容となるのですが、「機能ベースの権限モデル」と「サンドボックス」について書きます。「機能」とは別の言い方をすれば「リソース」です。さまざまな機能が実装されており、「位置情報」「カメラ」「マイク」「ネットワーク」「センサー」などが「機能」に該当します。使い方と密接に関連していることは言うまでもありませんが、機能こそが「ユーザープライバシー」「セキュリティ」「コスト」「ビジネスに関する考慮事項念」などに影響を与えることになります。Chamber)には規定で必要最小限のアクセス権限が与えられています。内のアプリケーションがそれ以上の機能を使用できないわけではありません。内のアプリケーションが「カメラ」機能を使用する必要がある場合には、アプリケーションのインストール中に「カメラ」へのアクセスがユーザーに打診されます。ユーザーがそれを承認すれば、アプリケーションはカメラ機能を使用することができるようになります。した権限の昇格はアプリケーションの実行中に与えられることは無く、かならずアプリケーションを使い始める前に承認される必要があります。ダイナミックに「機能」によってによって権限が拡張されます。これを「機能ベースの権限モデル」と呼びます。機能ベースの権限モデルには、以下のような利点が挙げられます。それぞれのアプリケーションは、その動作に必要最小限の「機能」のみを使用する。攻撃の対象はそれらの機能に付随することになるが、逆に言えばその範囲に留まるということでもある。それぞれのアプリケーションが利用者に対して、どのような機能を使用するのかを提示する義務を負う。規定では、以下に示す場所とタイミングで使用する機能を提示しなければならない。開発ツールを使用して、機能リストを作成する必要があります。ファイルに格納されます。全てのアプリケーションが、それぞれの分離したチャンバーの中で事前に定義された機能とともに動作することは既に述べたとおりです。このとき、必要最小限の権限が全てのアプリケーションに与えられますが、その中には「分離ストレージ」へのアクセス権も含まれています。アプリケーション間には、クラウド等の外部デバイスを除き、いかなる通信チャネルも存在していません。アプリケーションは互いに完全に分離されており、当然のことながら互いのメモリやデータにアクセスすることもきません。これにはキーボードのキャッシュも含まれています。バックグラウンドで動作することも許されていません。これにより、意図的に隠されたアプリケーションや、いわゆるスパイウェアから利用者のデータを守っています。利用者が別のアプリケーションに切り替えたときには、これまで使用していたアプリケーションは休止状態となり、それまでの動作状態が保存されます。したアプローチにより、アプリケーションがリソースを食いつぶしたり、裏で勝手にインターネットにアクセスするといったことを抑止しているのです。本来参照する権限を持たないユーザーに対して社内情報を流出してしまうなど、スマートフォンにありがちな一般的なリスクを軽減するには、堅牢なセキュリティで守られたデバイス上にアプリケーションを展開する必要があります。セキュリティモデルについて断片ばかりで系統的に語ったことが無かったので、あらためて。セキュリティモデルを模式的に表したものです。セキュリティモデルは「分離の原則」と「最小限の権限」という思想のもとに設計されており、「チャンバー」と呼ばれるコンセプトに沿って実装されています。ここで言う「チャンバー」とは、心室や心房などのように仕切られた部屋を意味しています。上で動作するアプリケーションやドライバーは、必ずいずれかのチャンバーに隔離され、チャンバーごとに定義されたアクセス権限のみを行使することができます。動作するアプリケーションの独立性と必要最小限のパーミッションによる動作が保障されています。チャンバーはセキュリティポリシーの定義によって以下の4つのタイプに分けられています。高度な権限を持ったチャンバー。内のリソースの大部分に無制限にアクセスすることができる。チャンバーはポリシーを変更したり、セキュリティモデルを強制することができる。チャンバー内で動作する。アタック面を最小限に減らすことになる重要な要素である。マイクロソフトだけがTCBチャンバーにアプリケーションを追加できる。セキュリティポリシーを除く全てのリソースにアクセス可能なチャンバー。アプリが使用する機能を提供するサービスやユーザーモードドライバを対象にしている。ソフトウェアを追加することができる。SRCはプリインストールアプリケーションに与えられる既定のチャンバーである。デバイス全体に影響するサービスを提供するアプリを除き、すべてのプリインストールアプリケーションはSRCで動作する。アプリを公開しました。トークンが正しく受け取れるかどうかを検証するためのツールです。マーケットプレースの検索にはヒットしないようですが、以下からダウンロードすることができます。画面は以下の1画面だけ(笑)。「ログオン」をタップして正常に認証/認可されると、右のような画面が表示されます。このアプリのソースコードは以下で公開しています。過去の投稿は以下より。認証機能を実装する」で使用した資料、ソースコードは以下からどうぞ。当日の収録動画もあります。前回までの作業で準備が整いました(かなり時間が空いてしまいましたが)。セキュリティトークンを受け取ってみましょう。シンプルなコードにするために、各パラメタはハードコーディングしますのでご容赦ください。プロジェクトを作成します。アプリケーション」でよいでしょう。プロジェクトが開いたら、前回作成したライブラリ(IdentityModel.WP7.dll)を「参照設定」に追加します。ファイルをダブルクリックして開いてください。ここに、ボタンを2つ追加しておきます。証明書をインストールするためのボタン、もう1つはログオンしてセキュリティトークンを受け取るためのボタンです。今回は極力シンプルにするためにユーザー名やパスワードなどは、すべてハードコーディングしてしまいます。テキストボックスは使いません。過去の投稿は以下より。認証機能を実装する」で使用した資料、ソースコードは以下からどうぞ。当日の収録動画もあります。含めたテスト環境は整ったかと思います。今回はWPアプリへの認証機能の実装について振れるわけですが、その前にやらなければいけないことがあります。通信するためのライブラリの準備です。Service)に対して直接認証を依頼することができません。いうプロトコルを使用する必要があり、これを一からコーディングしていたのでは日が暮れてしまいます。そこで、既存のライブラリを使えないだろうか...と調べたところ、以下のようなすばらしい事例がありました。エミュレーターの通信パケットをキャプチャして確認したいときがあります。無い生活は考えられないくらい、開発だけでなくインフラ構築のデバッグには必須のソフトウェアです。FSとのやり取りなんかを確認する際にも便利です。エミュレーターの通信をキャプチャすることができません。いちおう日本語にしておくと以下の通りです。