JP2014517383A - デバイス機能へのアプリケーションの結び付け - Google Patents

デバイス機能へのアプリケーションの結び付け Download PDF

Info

Publication number
JP2014517383A
JP2014517383A JP2014509279A JP2014509279A JP2014517383A JP 2014517383 A JP2014517383 A JP 2014517383A JP 2014509279 A JP2014509279 A JP 2014509279A JP 2014509279 A JP2014509279 A JP 2014509279A JP 2014517383 A JP2014517383 A JP 2014517383A
Authority
JP
Japan
Prior art keywords
application
function
access
hardware device
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014509279A
Other languages
English (en)
Other versions
JP2014517383A5 (ja
JP6147731B2 (ja
Inventor
ガナパティ,ナラヤナン
ジー. モリス,マックス
スリヴォヴィッツ,ポール
アール. デイヴィス,ダレン
エヴァンゲロス ルソス,ジョージ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014517383A publication Critical patent/JP2014517383A/ja
Publication of JP2014517383A5 publication Critical patent/JP2014517383A5/ja
Application granted granted Critical
Publication of JP6147731B2 publication Critical patent/JP6147731B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

ハードウェアデバイスに関連するインストールデータは(例えば、そのデバイスがコンピュータデバイスにインストールされる時点で)取得される。ハードウェアデバイスの機能にアクセスすることを許可されるアプリケーションの識別子は、インストールデータから特定され、ハードウェアデバイスの機能にアクセスすることを許可されるようにデバイス許可記録に格納される。その後、ハードウェアデバイスの機能にアクセスするリクエストがアプリケーションから受信される。アプリケーションがハードウェアデバイスの機能にアクセスすることを許可されているとデバイス許可記録において特定されるかどうかに関し、確認がなされる。アプリケーションがハードウェアデバイスの機能にアクセスすることを許可されているとデバイス許可記録が示す場合は、アプリケーションはハードウェアデバイスの機能にアクセスすることを可能にされ、そうでない場合は、アプリケーションからのリクエストは拒絶される。

Description

コンピュータは、通常、プログラムが、記憶デバイス、カメラ、マイクロホン、プリンタ等のような様々なハードウェアデバイスにアクセスすることを可能にする。利用可能なそのようなハードウェアデバイスを有することは、ユーザが望む機能性をプログラムが提供することを可能にする一方、異なるプログラムによるそのようなハードウェアデバイスへのアクセスを制御することは問題がある。そのような問題の1つは、ユーザは、プログラムがハードウェアデバイスにアクセスするために彼らの承認を求められるが、そのようなプロンプトはユーザに説明するのが難しい点である。例えば、ユーザに承認を求める場合に、特定のハードウェアデバイスへのアクセスがどのようなものであるのか及び、アクセスを許可する意味合いがどのようなものであるのかを正確にユーザに説明することは困難でありうる。これは、ユーザ経験を混乱させて、コンピュータの使いやすさを減じる結果をもたらしうる。
更に、ユーザは、サポートされる場合に、自身の既存のコンピュータ設定に新しいハードウェアデバイスを追加することがある。そのような新しいハードウェアデバイスの追加は、既知の可能なハードウェアデバイス及びそれらの機能のリストが常に利用可能であるとしばしば推測されるので、プログラムがハードウェアデバイスにアクセスすることを可能にする従来アプローチを複雑にする。
この項目は、詳細な説明において以下で更に記載される簡略化された形において概念の選択を導入するよう設けられている。この項目は、請求対象の重要な特徴又は必須の特徴を特定するよう意図されず、且つ、請求対象の適用範囲を制限するために使用されるよう意図されない。
1又はそれ以上の態様に従って、コンピュータデバイスにインストールされているハードウェアデバイスの機能にアクセスするリクエストがアプリケーションから受信される。コンピュータデバイスによって、アプリケーションがハードウェアデバイスの機能にアクセスすることを許可されているとデバイス許可記録において特定されるかどうかに関して、確認がなされる。アプリケーションがハードウェアデバイスの機能にアクセスすることを許可されているとデバイス許可記録が示す場合は、アプリケーションはハードウェアデバイスの機能にアクセスすることを可能にされ、そうでない場合は、アプリケーションからのリクエストは拒絶される。
1又はそれ以上の態様に従って、ハードウェアデバイスに関連するインストールデータが取得される。ハードウェアデバイスの機能にアクセスすることを許可されるアプリケーションの識別子は、インストールデータから特定される。アプリケーションの識別子は、更なるユーザ承諾なしでハードウェアデバイスの機能にアクセスすることを許可されるようにデバイス許可記録に格納される。
1又はそれ以上の実施形態に従ってデバイス機能へのアプリケーションの結び付けを実施するコンピュータデバイスの例を表すブロック図である。 1又はそれ以上の実施形態に従ってデバイス機能へのアプリケーションの結び付けを実施するシステムの例を表すブロック図である。 1又はそれ以上の実施形態に従ってデバイス許可記録を変更する処理の例を表すフローチャートである。 1又はそれ以上の実施形態に従ってハードウェアデバイスの機能にアクセスするリクエストに応答する処理の例を表すフローチャートである。 1又はそれ以上の実施形態に従ってデバイス機能へのアプリケーションの結び付けを実施するよう構成され得るコンピュータデバイスの例を表す。
同じ参照符号は、図面の全体を通して、同じ特徴を参照するために用いられる。
デバイス機能へのアプリケーションの結び付けがここで論じられる。コンピュータデバイスは、種々のハードウェアを自身にインストールされ得、それら種々のハードウェアデバイスは、様々な機能を有することができる。デバイス許可記録が保持され、これは、どのアプリケーションがコンピュータデバイスのどのハードウェアデバイスのどの機能にアクセスすることを許可されるのかを示す。このデバイス許可記録は動的であり、どのアプリケーションがコンピュータデバイスのどのハードウェアデバイスのどの機能にアクセスすることを許可されるのかを示す様々なユーザ入力に応答して時間にわたって変化する。幾つかの実施形態は、固定された組のデバイス許可記録を有し、一方、他の実施形態は、新しい、これまで知られていなかったハードウェアデバイスがコンピュータデバイスに加えられる場合に新しい記録が作られることを可能にする拡張可能な組のデバイス許可記録をサポートする。コンピュータデバイスで実行されるアプリケーションは、そのコンピュータデバイスにインストールされるハードウェアデバイスの特定の機能へのアクセスをリクエストすることができる。そのようなリクエストに応答して、デバイスブローカーは、アプリケーションが特定のハードウェアデバイスの特定の機能にアクセスすることを許可されるかどうかを決定するよう、デバイス許可記録を確認する。アプリケーションは、アプリケーションがその特定のハードウェアデバイスのその特定の機能にアクセスすることを許可されることをデバイス許可記録が示す場合に、そうすることを可能にされ、そうでない場合は、アプリケーションは、そのハードウェアデバイスにアクセスすることを認められない。
ここでは、対称キー暗号化、公衆キー暗号化、及び公衆/プライベートキー対が参照される。たとえそのようなキー暗号化が当業者によく知られているとしても、そのような暗号化の概要は読者の助けとなるようここに含まれる。公衆キー暗号化において、エンティティ(例えば、ユーザ、ハードウェア又はソフトウェアコンポーネント、デバイス、ドメイン、等)は、それと公衆/プライベートキー対を関連付けている。公衆キーは、公に利用可能にされ得るが、エンティティは、プライベートキーを秘密にしたままとする。プライベートキーによらないと、公衆キーを用いて暗号化されているデータを解読することは、計算上非常に困難である。故に、データは、公衆キーを有する何らかのエンティティによって暗号化され、対応するプライベートキーを有するエンティティによってのみ解読され得る。更に、データのためのデジタル署名は、データ及びプライベートキーを用いることによって生成され得る。プライベートキーによらないと、公衆キーを用いて照合され得る署名を生成することは、計算上非常に困難である。公衆キーを有する如何なるエンティティも、公衆キー、署名、及びに署名されたデータに関して適切なデジタル署名照合を実行することによってデジタル署名を照合するために公衆キーを用いることができる。
対称キー暗号化において、他方で、共有キー(対象キーとも呼ばれる。)は2つのエンティティによって知られ、それらによって秘密にされる。共有キーを有する如何なるエンティティも、通常、その共有キーにより暗号化されたデータを解読することができる。共有キーによらないと、共有キーにより暗号化されているデータを解読することは、計算上非常に困難である。故に、2つのエンティティが両方とも共有キーを知っている場合に、夫々は、他方によって解読可能なデータを暗号化することができるが、他方のエンティティが共有キーを知らない場合は、その他方のエンティティはデータを解読することができない。同様に、共有キーを有するエンティティは、同じエンティティによって解読可能なデータを暗号化することができるが、他のエンティティは、その他のエンティティが共有キーを知らない場合は、データを解読することができない。更に、デジタル署名は、例えばキーハッシュメッセージ認証コードメカニズムを用いるような対称キー暗号化に基づき、生成され得る。共有キーを有する如何なるエンティティも、デジタル署名を生成して照合することができる。例えば、信頼される第三機関は、特定のエンティティの識別に基づき対称キーを生成することができ、次いで、その特定のエンティティのために(例えば、対称キーを用いてデータを暗号化又は解読することによって)デジタル署名の生成及び照合の両方を行うことができる。
図1は、1又はそれ以上の実施形態に従って、デバイス機能へのアプリケーションの結び付けを実施するコンピュータデバイス100の例を表すブロック図である。コンピュータデバイス100は、様々な異なるタイプのデバイスであってよい。例えば、コンピュータデバイス100は、デスクトップコンピュータ、ネットブック若しくはラップトップコンピュータ、ノートパッド若しくはタブレットコンピュータ、モバイル局、エンターテイメント機器、表示デバイスへ通信上結合されるセットトップボックス、テレビ受像機若しくは他の表示デバイス、携帯電話若しくは他の無線電話、ゲーム機、自動車コンピュータ、等であってよい。
コンピュータデバイス100は、オペレーティングシステム102と、1又はそれ以上(m)のアプリケーション104(1),・・・,104(m)と、1又はそれ以上(n)のハードウェアデバイス106(1),・・・,106(n)とを有する。アプリケーション104は夫々、ゲーム若しくは他のエンターテイメントアプリケーション、ユーティリティアプリケーション、プロダクティビティアプリケーション(例えば、ワード処理又は表計算アプリケーション)、リファレンスアプリケーション、通信アプリケーション、等のような、様々な異なるタイプのアプリケーションのいずれかであってもよい。アプリケーション104は、コンピュータデバイス100によって、ローカルソースから取得され(例えば、ローカルディスク又はフラッシュメモリデバイスからインストールされ)、且つ/あるいは、リモートソースから取得され(例えば、インターネット、セルラー又は他の無線ネットワークのようなネットワークを介して他のデバイスから取得され)得る。
ハードウェアデバイス106は夫々、オペレーティングシステム102にアクセス可能な様々な異なるタイプのデバイス又はコンポーネントのいずれかであってよい。例えば、ハードウェアデバイス106は、カメラ、マイクロホン、プリンタ、記憶デバイス(例えば、フラッシュメモリ、加入者識別モジュール(SIM)カード、等)、モバイルブロードバンドチップセット又はカード、等であってよい。ハードウェアデバイス106は、コンピュータデバイス100の部分として含まれて(例えば、コンピュータデバイス100のプロセッサ及びメモリと同じ筐体に含まれて)、且つ/あるいは、(例えば、有線又は無線接続を介して)コンピュータデバイス100へ結合される別個のデバイスであってよい。ハードウェアデバイス106は、新しいハードウェアデバイスをコンピュータデバイス100と同じ物理的筐体に物理的に加えることによって、又は新しいハードウェアデバイスをコンピュータデバイス100へ(例えば、有線及び/又は無線接続を用いて)別なふうに結合して、コンピュータデバイス100に(それまでインストールされていない場合に)インストールされる関連するソフトウェア及び/又はファームウェアを有することによって、コンピュータデバイス100にインストールされる。その関連するソフトウェア及び/又はファームウェアは、デバイスドライバとも呼ばれ、関連するハードウェアデバイスと如何にして通信すべきかを理解し、コンピュータデバイス100における他のアプリケーション、コンポーネント、又はモジュールがその関連するハードウェアデバイスにアクセスすることを可能にする。デバイスドライバによって提供される正確な機能性は、コンピュータデバイス100が作られた時にオペレーティングシステム102に知られても又は知られていなくてもよい。
オペレーティングシステム102は、コンピュータデバイス100で実行されるアプリケーション104を管理するとともに、アプリケーション104によるハードウェアデバイス106へのアクセスを管理する。オペレーティングシステム102は、デバイスブローカー112と、デバイス許可記録114とを有する。ハードウェアデバイス106にアクセスするために、アプリケーション104は、オペレーティングシステム102からそのハードウェアデバイス106へのアクセスをリクエストする。デバイスブローカー112は、リクエスト元のアプリケーション104がそのハードウェアデバイス106にアクセスすることを許可されているかどうかを決定するよう、デバイス許可記録114を確認する。リクエスト元のアプリケーション104がそのハードウェアデバイス106にアクセスすることを許可されていることをデバイス許可記録114が示す場合は、デバイスブローカー112は、リクエスト元のアプリケーション104がそのハードウェアデバイス106にアクセスすることを可能にする。しかし、リクエスト元のアプリケーション104がそのハードウェアデバイス106にアクセスすることを許可されていないとデバイス許可記録114が示す場合は、デバイスブローカー112は、リクエスト元のアプリケーション104がそのハードウェアデバイス106にアクセスすることを妨げる(又は別なふうに認めない)。
図2は、1又はそれ以上の実施形態に従ってデバイス機能へのアプリケーションの結び付けを実施するシステム200の例を表すブロック図である。システム200は、図1のコンピュータデバイス100のようなコンピュータデバイスにおいて実施される。システム200は、図1のアプリケーション104であってよいアプリケーション202を有する。アプリケーション202は、システム200のデバイス及び/又は他のリソース(例えば、メモリ、他のアプリケーション、等)にアクセスするアプリケーション202の能力が制限される形で実行され得る。コンピュータデバイスのオペレーティングシステム(又は代替的に他のソフトウェア若しくはファームウェア)は、アプリケーション202が、アプリケーション202に割り当てられた又は別なふうに利用可能にされたコンピュータデバイスのメモリにアクセスすることを可能にするが、アプリケーション202がコンピュータデバイスの他のメモリ及び/又はコンピュータデバイスで実行される他のアプリケーションにアクセスすることを妨げる。これは、コンピュータデバイスで実行される他のアプリケーションがアプリケーション202によって干渉されないようにする同時に、アプリケーション202がコンピュータデバイスで実行される他のアプリケーションによって干渉されないようにする。1又はそれ以上の実施形態において、アプリケーション202は、サンドボックス(サンドボックス204として破線により示される。)においてアプリケーション202を実行することによって、制限された形で実行される。単一のアプリケーション202がシステム200にインストールされているが、複数のアプリケーションが同時にシステム200において実行され得る点に留意されたい(夫々のアプリケーションは、通常、それ自身のサンドボックスにおいて実行される。)。
コンピュータデバイスにより実施されるシステム200にインストールされるハードウェアデバイスは、様々な機能を有することができ、その中の1又はそれ以上は、一群又は分類の機能にまとめられ得る。ハードウェアデバイスの機能は、ハードウェアデバイスによって提供される又は別なふうにサポート若しくは許可される機能性及び/又は動作をいう。ハードウェアデバイスの特定の機能及びそれらがまとめられる方法は、ハードウェアデバイスの設計者若しくはベンダーによって、又は代替的に他のコンポーネント若しくはエンティティによって(例えば、コンピュータデバイスにおけるオペレーティングシステムの設計者若しくはベンダーによって)、定義され得る。例えば、プリンタデバイスは、(アプリケーションが印刷のためにプリンタへデータを送信することを可能にする)印刷機能、及び(アプリケーションがプリントヘッドを再校正すること、インク又はトナーのレベルを取得すること、印刷に関する統計値を取得すること、等を可能にする)管理機能を有してよい。他の例として、モバイルブロードバンドデバイスは、(アプリケーションがテキストメッセージ、マルチメディアメッセージ、ウェブページ、等のようなデータをモバイルブロードバンド接続を介して送信及び/又は受信することを可能にする)通信機能、(アプリケーションが特定のネットワークにおける使用のためにモバイルブロードバンドデバイスを提供又はセットアップすることを可能にする)プロビショニング機能、及び(アプリケーションが特定のネットワークによる使用のためにコンフィグレーション設定を調整すること、特定のネットワーク上での使用に関する情報(例えば、送信及び/又は受信されるデータの量)を取得すること、等を可能にする)管理機能、等を有してよい。コンピュータデバイスにより実施されるシステム200へ結合されるハードウェアデバイスの機能性は、アプリケーション202以外のシステムのオペレーティングシステム又は他のコンポーネントに知られる必要はない(なお、代替的に、知られていてもよい)。
ハードウェアデバイスの機能の特定の分類にアクセスするために、アプリケーション202は、所望の機能にアクセスするようデバイスブローカー206へリクエストを発する。
デバイスブローカー206は、例えば、図1のデバイスブローカー112であってよい。アプリケーション202は、様々な異なる方法においてデバイスブローカー206へリクエストを発する。1又はそれ以上の実施形態において、アプリケーション202は、アプリケーション202がその場合に所望の機能にアクセスするために使用することができるハードウェアデバイスの所望の機能へのハンドル(又はそれらの他の識別子)を公開又は作成するリクエストを発する。リクエストは、例えば、デバイスインターフェースクラスへのハンドルを公開するリクエストであってよい。リクエストに応答して、デバイスブローカー206は、アプリケーション202がリクエストされる機能にアクセスすることを許可されているかどうかを決定するよう、デバイス許可記録208(図1のデバイス許可記録114であってよい。)を確認する。デバイスブローカー206は、アプリケーション202がリクエストされる機能にアクセスすることを許可されているとデバイス許可記録208が示す場合にのみ、リクエストされる機能へのリクエストされるハンドル(又は他の識別子)を返す。リクエストされる機能へのこのハンドル(又は他の識別子)は、ハードウェアデバイスに関連する1又はそれ以上のデバイスドライバ(例えば、ソフトウェア又はファームウェア)の識別、ハードウェアデバイスに関連する1又はそれ以上のデバイスドライバの1又はそれ以上のアプリケーションプログラミングインターフェース(API)の識別、等のように、様々な形を取ることができる。1又はそれ以上の実施形態において、デバイスブローカー206(又は、少なくとも、デバイス許可記録208を確認するデバイスブローカー206の部分)は、アプリケーション202がデバイス許可記録208を確認するデバイスブローカー206に干渉することを妨げるよう、システム200の信頼されるコンポーネント(例えば、オペレーティングシステムの信頼されるコアの部分又は他の信頼される部分)として実施される。
デバイス許可記録208は、機能識別子214と、関連する承諾タイプ216とを含む。コンピュータデバイスにより実施されるシステム200にインストールされるハードウェアデバイスの機能の各群又は分類は、対応する機能識別子214を有する。各機能識別子214は、必要に応じて、アプリケーションがその機能識別子214によって特定される分類の機能にアクセスするために、どのような承諾が必要とされるかを示す関連する承諾タイプ216を有する。よって、同じハードウェアデバイスのための異なる分類の機能は、アプリケーションがそれらの異なる分類の機能にアクセスするために必要とされる異なるタイプの承諾を示す異なる関連する承諾タイプを有することができる。アプリケーションが機能識別子214によって特定される分類の機能にアクセスするために必要とされる承諾のタイプに依存して、機能識別子はまた、関連するアプリケーション識別子(ID)リスト218を有してよい。各アプリケーションIDリスト218は、関連する機能識別子214によって特定される機能にアクセスすることを許可される1又はそれ以上のアプリケーション識別子のリストである。
1又はそれ以上の実施形態において、各機能識別子214は、特定のタイプのハードウェアデバイスの特定の分類又は群の機能を特定するデバイスインターフェースクラスである。例えば、機能識別子214は、カメラタイプのデバイスの画像捕捉機能の識別子、カメラタイプのデバイスのカメラ設定機能の識別子、モバイルブロードバンドタイプのデバイスの通信機能の識別子、モバイルブロードバンドタイプのデバイスのプロビショニング機能の識別子、等であってよい。同じタイプの複数の異なるハードウェアデバイス(例えば、複数の異なるカメラ)は、同じデバイスインターフェースクラスの部分として含まれ得る。デバイスインターフェースクラスは、オペレーティングシステム(例えば、図1のオペレーティングシステム102)によって若しくはその部分として、及び/又は他のエンティティ(例えば、ハードウェアデバイス設計者若しくはベンダー)によって、定義され得る。
システム200の動作の間、コンピュータデバイスにインストールされる特定のハードウェアデバイスに関連するデバイスドライバは、その特定のハードウェアデバイスのためのデバイスインターフェースクラスのインスタンスを、コンピュータデバイスのオペレーティングシステムに登録する。オペレーティングシステムは、デバイスインターフェースクラスのそのインスタンスを特定のハードウェアデバイスに関連付け、如何にしてアプリケーション(例えば、アプリケーション202)がそのインスタンスの機能にアクセスすることができるかのインジケーションを保持する。1又はそれ以上の実施形態において、このインジケーションは、デバイスのインスタンスのためのハンドルである。代替的に、このインジケーションは、機能のポインタ、リンク、又は他の識別子のような他の形で実施され得る。ハンドルがここでは論じられているが、如何にしてアプリケーションがインスタンスの機能にアクセスすることができるのかの他のインジケーションがハンドルと同じように使用され得る点に留意されたい。その特定のハードウェアデバイスの機能にアクセスするために、アプリケーション202は、デバイスブローカー206から、そのインスタンスのためのハンドルをリクエストする。デバイスブローカー206は、アプリケーション202が特定のデバイスインターフェースクラスにアクセスすることを許可されることをデバイス許可記録208が示す場合にのみ、その特定のデバイスインターフェースクラスのインスタンスのためのハンドルを返す。
代替的に、デバイスインターフェースクラスよりむしろ、機能識別子214は、他の方法においてハードウェアデバイス又はハードウェアデバイスのタイプを特定することができる。1又はそれ以上の実施形態において、デバイスインターフェースクラスよりむしろ、ハードウェアデバイスの他のカテゴリ又はグルーピングが保持され、そのようなカテゴリ又はグルーピングは夫々、承諾タイプと関連付けられる。それらのカテゴリ又はグルーピングは、同じ分配者によって提供される又は同じベンダーによって製造されるデバイスの集まり、特定の会社、グループ若しくは他のエンティティによって評価又は承認されたデバイスの集まり、等のように、種々の方法において定義され得る。他の実施形態において、デバイスインターフェースクラスよりむしろ、個々のハードウェアデバイスが夫々、承諾タイプ216と関連付けられ得る。個々のハードウェアデバイスは、例えば、ハードウェアデバイスの分配者又はベンダーによって割り当てられるモデル番号又は他の識別子によって、ハードウェアデバイスに関連するデバイスドライバの識別子によって、等、種々の方法において特定され得る。
よって、一例として、機能識別子214は、特定のハードウェアデバイスの特定のデバイスインターフェースのインスタンスを特定するハードウェアインスタンスIDであってよい。他の例として、機能識別子214は、特定のハードウェアデバイスのモデルIDであってよく、このモデルIDは、特定のハードウェアデイバスの様々な機能を特定する(例えば、ベンダーの製造識別子、分類識別子、改訂識別子、それらの組み合わせ、等)。
各承諾タイプ216は、必要に応じて、アプリケーションが関連する機能識別子214によって特定される分類の機能にアクセスするために、どのような承諾が必要とされるのかを示す。様々な異なるタイプの承諾が承諾タイプ216において特定され得る。1又はそれ以上の実施形態において、各承諾タイプ216は、許可、拒絶、プロンプト、又は特権付与の中の1以上である。許可承諾タイプは、関連する機能へのアクセスが(ハードウェアデバイスへのアクセスするリクエストするアプリケーションと無関係に)許可されることを示す。拒絶承諾タイプは、関連する機能へのアクセスが(ハードウェアデバイスへのアクセスするリクエストするアプリケーションと無関係に)許可されないことを示す。プロンプト承諾タイプは、コンピュータデバイスにより実施されるシステム200のユーザが、アプリケーションが関連する機能にアクセスするための承認を促されることを示す。特権付与承諾タイプは、関連する機能へのアクセスが特権を持ったアプリケーションにのみ許可されることを示す。
特定の機能識別子214において示される承諾タイプ216が特権付与承諾タイプである場合に、デバイス許可記録208はまた、機能識別子214に関連付けられたアプリケーションIDリスト218を含む。特定の機能識別子214において示される承諾タイプ216が特権付与承諾タイプ以外である(例えば、許可、拒絶、又はプロンプト承諾タイプである)場合は、その特定の機能識別214に関連付けられたアプリケーションIDリスト218はデバイス許可記録208に含まれる必要がない。各アプリケーションIDリスト218は、関連する機能識別子214によって特定される機能にアクセスすることを許可又は承認される1又はそれ以上のアプリケーション識別子(例えば、特権を持ったアプリケーション)のリストである。機能のための承諾タイプが特権付与承諾タイプであり、且つ、アプリケーション202が、それがアクセスをリクエストするハードウェアデバイスの機能の機能識別子214と関連付けられたアプリケーションIDリストに含まれない場合は、アプリケーション202は、ハードウェアデバイスのそれらの機能へのアクセスを拒絶される。代替的に、機能のための承諾タイプが特権付与である場合は、特権付与承諾タイプのインジケーションは、機能識別子214と関連付けられる承諾タイプ216として含まれる必要はない。むしろ、機能識別子214と関連付けられるアプリケーションIDリスト218の存在により、機能識別子214と関連付けられる承諾タイプは特権付与承諾タイプであることが暗に示され得る。
ハードウェアデバイス機能(又はハードウェアのタイプ)と、それらの機能にアクセスすることを許可されるアプリケーション識別子との関連付けは、ハードウェアデバイスへのアプリケーションの結び付けとも呼ばれる。アプリケーション202の識別子が、機能識別子214と関連付けられるアプリケーションIDリストに含まれる場合は、アプリケーション202は、関連する機能識別子214によって特定される機能と結び付けられる。なお、アプリケーション202の識別子が機能識別子214と関連付けられるアプリケーションIDリストに含まれない場合は、アプリケーション202は、関連する機能識別子214によって特定される機能と結び付けられない。
アプリケーション202のためのアプリケーション識別子は、様々な異なる方法において生成され得る。1又はそれ以上の実施形態において、アプリケーション202のためのアプリケーション識別子は、暗号化ハッシュ機能をアプリケーション202及び/又はアプリケーション202のメタデータに適用してハッシュ値を生成することによって、生成される。様々な異なる暗号化ハッシュ関数のいずれかが用いられ得る。例えば、SHA−1(Secure Hash Algorithm 1)又はSHA−2、ワールプール(Whirlpool)、タイガー(Tiger)、FSB(First Syndrome-based hash functions)、等がある。デバイスブローカー206、又はデバイスブローカー206によって信頼される他のコンポーネント若しくはモジュールは、アプリケーション202のためのハッシュ値を生成することができる。アプリケーション202のためのハッシュ値は、種々の時点で生成されてよく、例えば、アプリケーション202のためのハッシュ値は、前もって生成され、デバイスブローカー206へ供給される(例えば、アプリケーション202がコンピュータデバイスにより実施されるシステム200にインストールされる時、アプリケーション202が実行を開始する時、等に、生成される。)。アプリケーション202のためのハッシュ値が前もって生成される状況において、ハッシュ値が生成された後に変更されないように(あるいは、ハッシュ値の変更が検出可能であるように)注意が払われる。例えば、ハッシュ値は、デバイスブローカー206によって信頼されるエンティティによってデジタル署名され得る。代替的に、アプリケーション202のためのハッシュ値は、他の時点で、例えば、所望のハードウェアデバイスにアクセスするためのアプリケーション202からのリクエストに応答して、生成され得る。
代替的に、アプリケーション202のためのアプリケーション識別子は、他の方法において生成され得る。例えば、識別子は、(例えば、アプリケーション202の開発者又は分配者によって)アプリケーション202へ割り当てられ、信頼されるエンティティ(デバイスブローカー206によって信頼されるコンポーネント、モジュール、デバイス、又の他のエンティティ)によってデジタル署名され得る。デバイスブローカー206、又はデバイスブローカー206によって信頼される他のコンポーネント若しくはモジュールは、アプリケーション202のアプリケーション識別子がデバイスブローカー206によって信頼され得ることを確かめるよう、アプリケーション202のためのデジタル署名を照合することができる。デジタル署名は、所望のハードウェアデバイスにアクセスするためのアプリケーション202からのリクエストに応答して、又は上述されたようなアプリケーション202のためのハッシュ値の生成と同じ他の時点で、照合され得る。
デバイス許可記録208は、様々な時点で生成され、変更され得る。1又はそれ以上の実施形態において、デバイスブローカー206を含むオペレーティングシステム(例えば、図1のオペレーティングシステム102)は、初期デバイス許可記録208を有する。追加のデバイスインターフェースクラス及び関連する許可エントリは、新しいハードウェアがコンピュータデバイスにより実施されるシステム200にインストールされる場合に、デバイス許可記録208に加えられ得る。デバイスインターフェースクラス及び関連する許可エントリは、システム200の更新の間にも追加、除去、及び/又は変更され得る。よって、特定のハードウェアデバイス及び/又はハードウェアデバイスの特定の機能(並びにそれらの識別子)は、コンピュータデバイスが作成又は構築される場合に、コンピュータデバイスにより実施されるシステム200のオペレーティングシステムに知られる必要はなく、むしろ、最後の時点でコンピュータデバイスに加えられ得る。更に、ハードウェアデバイスの特定の機能及びそれらの識別子は、コンピュータデバイスにより実施されるシステム200のオペレーティングシステムに定義されるか、又はそのオペレーティングシステムによって知られるそれらの機能性である必要はない。むしろ、特定の機能と関連付けられる機能識別子がデバイス許可記録208に加えられ、アプリケーション202に知られる機能であってよい。アプリケーション202は、それらの機能がどのようなものであるかを知るオペレーティングシステム(及びシステム200の他のコンポーネント)がない場合に、(デバイス許可記録208に基づき)それらの機能にアクセスすることを可能にされ得る。
1又はそれ以上の実施形態において、システム200は、デバイスインストールファイル及びデータ232を受信し又は別なふうに取得するインストールマネージャ230を有する。デバイスインストールファイル及びデータ232は、コンピュータデバイスにより実施されるシステム200においてハードウェアデバイスのためのデバイスドライバとしてインストールされる1又はそれ以上のファイル及び/又はデータを含む。デバイスインストールファイル及びデータ232は、新しいハードウェアデバイスがコンピュータデバイスにより実施されるシステム200にインストールされる場合に、インストールマネージャ230によって取得される。例えば、デバイスインストールファイル及びデータ232は、新しいハードウェアデバイスがコンピュータデバイスにより実施されるシステム200にインストールされる場合に、リモートサービスから自動的にダウンロードされ得る。デバイスインストールファイル及びデータ232は、デバイスドライバ、セットアップ情報ファイル(例えば、INFファイル)、デバイスドライバに関連するメタデータ、マニフェスト、等のように、様々な異なる形を取ることができる。
インストールマネージャ230は、デバイスインストールファイル及びデータ232において許可情報を特定し、その許可情報をデバイス許可記録208に加える。この許可情報は、デバイス許可記録208に対してなされるべき変更を特定する。例えば、この許可情報は、特定のデバイスインターフェースクラスのためのアプリケーションIDリストに加えられる(又はそれから除かれる)1以上の新しいアプリケーション識別子を含むことができる。他の例として、この許可情報は、記録208に加える1以上の新しいデバイスインターフェースクラス及び関連する許可エントリを含むことができる。更なる他の例として、この許可情報は、許可のタイプの変更を含むことができる(例えば、プロンプト承諾タイプから特権付与承諾タイプへの又はその逆の、特定のデバイスインターフェースクラスと関連付けられる承諾タイプ216の変更)。上述されたようなアプリケーション202のためのハッシュ値と同様に、生成された後に、デバイスインストールファイル及びデータ232が変更されないように(又は許可情報の変更が検出可能であるように)注意が払われる。例えば、許可情報は、インストールマネージャ230によって信頼されるエンティティによってデジタル署名され得る。
同様に、インストールマネージャ230はまた、デバイス更新ファイル及びデータ234を受信し又は別なふうに取得することができる。デバイス更新ファイル及びデータ234は、デバイスインストールファイル及びデータ232と同様であり、デバイス許可記録208に対してなされるべき変更を特定する。しかし、デバイス更新ファイル及びデータ234は、コンピュータデバイスにより実施されるシステム200に既にインストールされているハードウェアデバイスのためのデバイスドライバ及び/又は他のデータを更新するようインストールマネージャ230によって取得される。デバイス更新ファイル及びデータ234は、デバイスドライバ、セットアップ情報ファイル(例えば、INFファイル)、デバイスドライバに関連するメタデータ、マニフェスト、等のように、様々な異なる形を取ることができる。デバイス更新ファイル及びデータ234は、インストールマネージャ230が、デバイスインストールファイル及びデータ232に含まれる許可情報と同様に、デバイス許可記録208に加える様々な許可情報を特定することができる。上述されたようなデバイスインストールファイル及びデータ232における許可情報と同様に、生成された後に、デバイス更新ファイル及びデータ234が変更されないように(又は許可情報の変更が検出可能であるように)注意が払われる。例えば、許可情報は、インストールマネージャ230によって信頼されるエンティティによってデジタル署名によってデジタル署名され得る。
デバイスインストールファイル及びデータ232(及び/又はデバイス更新ファイル及びデータ234)は、同じデバイスの異なる機能に加えられる異なるアプリケーションIDを有することができる点に留意されたい。アプリケーションは、ハードウェアデバイスの全ての機能へのアクセスを与えられる必要はない。例えば、インストール及び/又は更新データは、モバイルブロードバンドデバイスのプロビショニング機能を特定する機能識別子214に加えられる1つのアプリケーションIDと、モバイルブロードバンドデバイスの管理機能を特定する機能識別子214に加えられる他のアプリケーションIDとを特定することができる。
1又はそれ以上の実施形態において、コンピュータデバイスにより実施されるシステム200にインストールされるハードウェアデバイスは、拡張マークアップ言語(XML)ファイルである関連するメタデータファイルと、INFファイルである関連するセットアップ情報ファイルとを有する。同様に、1又はそれ以上の実施形態において、コンピュータデバイスにより実施されるシステム200に既にインストールされており更新されるハードウェアデバイスは、関連するメタデータXMLファイル及び/又はINFファイルを有することができる。INFファイルは、インストールする特定のファイル及び、それらのファイルがコンピュータデバイスにおいてどこにインストールされるべきか、(例えば、オペレーティングシステムレジストリのようなオペレーティングシステム記憶において)必要とされる設定、等をインストールマネージャ230に示す。INFファイルはまた、デバイスの機能にアクセスするための特定のデバイスインターフェースクラスを(例えば、デバイスインターフェースクラスが互いに区別されることを可能にするグローバル一意識別子(GUID)又は他の識別子を用いて)特定するとともに、それらのデバイスインターフェースクラスの夫々と関連付けられる承諾タイプを特定する。メタデータXMLファイルは、特許付与の承諾タイプを有するINFファイルにおいて特定される各デバイスインターフェースクラスについて、そのデバイスインターフェースクラスの機能にアクセスすることを許可される1又はそれ以上のアプリケーションIDを含む。なお、機能識別子、承諾タイプ、及び/又はアプリケーションIDリストは、メタデータXML及びINFファイルよりむしろ、他の方法においてデバイスインストールファイル及びデータ232及び/又はデバイス更新ファイル及びデータ234に含まれ得る点に留意されたい。
また、デバイス許可記録208は、他の時点で、及び/又は他のイベントに応答して、変更され得る点に留意されたい。例えば、システム200のユーザ又は管理者は、デバイス許可記録208に行う特定の変更を示す入力(例えば、特定の機能識別子と関連付けられる特定の承諾タイプを特定する入力、特定の機能識別子と関連付けられるアプリケーションIDリストに加えられる特定のアプリケーションIDを特定する入力、等)を提供してよい。そのような入力は、システム200の設定ユーザインターフェースにアクセスするシステム200のユーザ又は管理者によって、アプリケーションが関連する機能にアクセスするための承認を促される場合に“許可”選択肢を選択するシステム200のユーザによって(例えば、“許可”選択肢のユーザ選択に応答して、アプリケーションの識別子は、特定の機能識別子と関連付けられるアプリケーションIDリストに加えられ得る。)、等により、提供され得る。
1又はそれ以上の実施形態において、デバイス許可記録208は、どのコンポーネント又はモジュールが記録208を更新することを認められるかを制限する安全な方法で記憶される。例えば、デバイス許可記録208は、特定のコンポーネント又はモジュール(インストールマネージャ230の1又はそれ以上のモジュール、又デバイスブローカー206を含むオペレーティングシステムのモジュールのみ)によってのみ、例えば、様々な従来の信頼されるブート又は安全なブート技術を用いるような、任意に特定の時点で(例えば、コンピュータデバイスにより実施されるシステム200をブーティングする処理の間)、変更され得る保護されたメモリに記憶され得る。他の例として、デバイス許可記録208は、(例えば、インストールマネージャ230、又はデバイスブローカー206によって信頼される他のエンティティによって)デジタル署名され、記録208におけるデジタル署名が照合される場合にのみデバイスブローカー206によって使用され得る。
デバイス許可記録208は、複数の機能識別子並びに関連する承諾タイプ及び/又はアプリケーションIDリストを含むテーブルとして、図2では表されている。テーブルとして表されているが、デバイス許可記録208は、様々な異なるデータ構造又は記憶技術を用いて実施され得る点に留意されたい。また、デバイス許可記録208は、複数の記憶又はテーブルに分けられ得る点にも留意されたい。例えば、デバイス許可記録208は2つの記憶を有してよく、1つの記憶は機能識別子214及び関連する承諾タイプ216を含み、他の記憶は機能識別子214及び関連するアプリケーションIDリスト218を含む。
更に、コンピュータデバイスにより実施されるシステム200に知られるハードウェアデバイスのリストは静的である必要はない(が代替的に静的であってもよい)点に留意されたい。ハードウェアデバイスがコンピュータデバイスにより実施されるシステム200に加えられる場合に、デバイス許可記録208は、アプリケーション202によるアクセスのためのその後の要求時に、どのようなタイプの承諾がコンピュータデバイスにより実施されるシステム200に加えられるハードウェアデバイスの新しいインスタンスに加えられるべきかを適切に反映するよう管理される。ハードウェアデバイスの新しいインスタンスは、機能識別子214がデバイス許可記録208に既に含まれている機能を有するハードウェアデバイスをいう。例えば、1つの特定のカメラ(カメラの1つのインスタンス)は予め、コンピュータデバイスにより実施されるシステム200へ結合されてよく、第2のカメラ(カメラの新しいインスタンス)は、コンピュータデバイスにインストールされてよい。カメラの機能のための機能識別子214は、この第2のカメラがコンピュータデバイスにインストールされる新しいカメラであるとしても、デバイス許可記録208に既に含まれ得る。
1又はそれ以上の実施形態において、デバイスブローカー206は、コンピュータデバイスにより実施されるシステム200にインストールされるハードウェアデバイスの新しいインスタンスのための様々なポリシー又はルールの1又はそれ以上を適用する。例えば、デバイスブローカー206は、デバイス許可記録208において特定の機能識別子214によって特定される承諾のタイプが、いつハードウェアデバイスがインストールされたのかにかかわらず、その特定の機能識別子214によって特定される分類の機能にアクセスするようリクエストする全てのアプリケーションに適用可能であると決定することができる。他の例として、デバイスブローカー206は、ハードウェアデバイスの新しいインスタンスのために特定の機能識別子214によって特定される分類の機能へのアクセスが、適切な承諾がユーザから得られる(例えば、ユーザが、ハードウェアデバイスの新しいインスタンスがアクセスされるための承認を促されるか、又はハードウェアデバイスの新しいインスタンスが、コンピュータデバイスに既にインストールされているハードウェアデバイスの他のインスタンスと同じように扱われるための承諾を促される)まで拒絶されると決定することができる。代替的に、如何にして承諾がハードウェアデバイスの新しいインスタンスに適用されるべきかのより精細な決定が(例えば、特定の機能識別子214、又はアクセスがリクエストされている機能識別子214と関連付けられる特定の承諾タイプ216に基づき)なされてよい。
更に、1又はそれ以上の実施形態において、特定のアプリケーションは、特定のハードウェアデバイスの機能へのアクセスに制限される。そのような制限は、例えば、特定のベンダー(例えば、製造者、分配者、等)が、どのアプリケーションがそのベンダーのハードウェアデバイスの機能にアクセスすることができるのかを(他のベンダーからの他のハードウェアデバイスが同じ機能をサポートするかどうかにかかわらず)制限することを可能にする。そのような制限は、種々の方法において実施され得る。例えば、異なる機能識別子214が、(それらの異なる機能識別子によって特定される機能が同じであるとしても)異なるハードウェアデバイスについて使用され得る。他の例として、ハードウェアデバイスに関連するデータ(例えば、最初にオペレーティングシステムに含まれるデータ、デバイスインストールファイル及びデータ232におけるデータ、デバイス更新ファイル及びデータ234におけるデータ、等)は、特定のアプリケーションIDリストを有するアプリケーションによってアクセスされ得る(例えば、ハードウェアデバイスベンダー、ハードウェアデバイスモデル、等によって特定される)特定のハードウェアデバイスのインジケーションを含むことができる。それらのハードウェアデバイスのインジケーションは、例えば、それらのハードウェアデバイスのインジケーションをデバイス許可記録208において特定のアプリケーションIDと関連付けることによって、保持され得る。この例に従い、デバイスブローカー206は、アプリケーション202のアプリケーションIDが特定のハードウェアデバイスの機能の分類と関連付けられるアプリケーションIDリスト218に含まれる場合且つその特定のハードウェアデバイスがその機能の分類についてアプリケーションIDリスト218におけるアプリケーション202のアプリケーション202と関連付けられる場合にのみ、アプリケーション202がその機能の分類にアクセスすることを可能にすることができる。
図3は、1又はそれ以上の実施形態に従ってデバイス許可記録を変更する処理300の例を表すフローチャートである。処理300は、コンピュータデバイス、例えば、図1のコンピュータデバイス100によって、実行され、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせにおいて実施され得る。処理300は、動作の組として示され、様々な動作の操作を実行するために示された順序に制限されない。処理300は、デバイス許可記録を変更する処理の例であり、デバイス許可記録の変更に関する更なる議論は、異なる図を参照してここに含まれる。
処理300において、ハードウェアデバイスに関連するインストール又は更新データが取得される(動作302)。このデータは、コンピュータデバイスでのハードウェアデバイスのインストールの間、且つ/あるいは、コンピュータデバイスに予めインストールされているハードウェアデバイスのためのデバイスドライバ及び/又は他のデータの更新の間、使用される。データは、例えば、図2のデバイスインストールファイル及びデータ232並びに/又はデバイス更新ファイル及びデータ234からであってよい。
インストール又は更新データが新しい又は更新される承諾タイプを含むかどうかに関して、確認がなされる(動作304)。新しい承諾タイプは、コンピュータデバイスにインストールされる新しいハードウェアデバイスの機能のための承諾タイプと、コンピュータデバイスに予めインストールされているハードウェアデバイスの新しい機能のための承諾タイプとに言及する。更新される承諾タイプは、コンピュータデバイスに予めインストールされているハードウェアデバイスの機能のための承諾タイプにおける変更に言及する。
インストール又は更新データが新しい又は更新される承諾タイプを含む場合は、デバイス許可記録は、取得されたインストール又は更新データに基づき更新される(動作306)。デバイス許可記録のこの更新は、デバイス許可記録への新しい承諾タイプの追加、コンピュータデバイスに予めインストールされているハードウェアデバイスの機能のための承諾タイプの変更、等といった、デバイス許可記録に対する様々な変更を含む。
更に、インストール又は更新データがアプリケーションIDリストに対する変更を含むかどうかに関しても、確認がなされる(動作308)。アプリケーションIDリストに対する変更は、コンピュータデバイスにインストールされる又は既にインストールされているハードウェアデバイスの機能にアクセスすることを許可されるべき1又はそれ以上のアプリケーションの識別子に対する変更(例えば、追加、除外、等)に言及する。アプリケーションIDリストに対する変更は、上述されたように、特権付与承諾タイプと関連付けられる機能についてインストール又は更新データにおいて含まれ得る。
なされるべきでデバイス許可記録のアプリケーションIDリストに対する変更は、インストール又は更新データから特定される(動作310)。この特定は、ハードウェアデバイスの特定の機能にアクセスすることを許可されるアプリケーションの識別子を特定すること、又はハードウェアデバイスの特定の機能にアクセスすることを許可されないアプリケーションの識別子を特定することであってよい。
デバイス許可記録のアプリケーションIDリストは、取得されたインストール又は更新データに基づき更新される(動作312)。動作312におけるこの更新は、更なるユーザ承諾なしでハードウェアデバイスの特定の機能にアクセスすることを許可されるようにデバイス許可記録においてアプリケーションの識別子を格納にすること(例えば、特定の機能と関連付けられるアプリケーションIDリストに識別子を加えること)、アプリケーションがハードウェアデバイスの特定の機能にアクセスすることを許可されないようにデバイス許可記録からアプリケーションの識別子を除くこと(例えば、特定の機能と関連付けられるアプリケーションIDリストから識別子を除くこと)、等を含むことができる。
デバイス許可記録がインストール又は更新データに基づきあらゆる新しい又は更新される承諾タイプを反映するよう更新され、且つ/あるいは、アプリケーションの識別子に対するあらゆる変更を反映するよう更新された後、動作302において取得されたデータに基づくインストール又は更新は終了される(動作314)。更なるインストール又は更新データが後の時点で取得されてよく、処理300は繰り返されて、その更なるインストール又は更新データに基づきなされるデバイス許可記録に対する更なる変更をもたらす。
代替的に、動作302で取得されるインストール又は更新データがハードウェアデバイスの新しいインスタンスのためのインストールデータである状況では、動作304乃至314は、適切な承諾がユーザから受け取られた後にのみ、実行され得る。よって、デバイス許可記録の承諾タイプに対する変更及びデバイス許可記録のアプリケーションIDリストに対する変更は、そのような変更がユーザによって承諾されるまでは、ハードウェアデバイスの新しいインスタンスのためのインストールデータに基づき行われない。
図4は、1又はそれ以上の実施形態に従ってハードウェアデバイスの機能にアクセスするリクエストに応答する処理400の例を表すフローチャートである。処理400は、コンピュータデバイス、例えば、図1のコンピュータデバイス100によって、実行され、ソフトウェア、ファームウェア、又はそれらの組み合わせにおいて実施され得る。処理400は、動作の組として示され、様々な動作の操作を実行するために示された順序に制限されない。処理400は、ハードウェアデバイスの機能にアクセスするリクエストに応答する処理の例であり、ハードウェアデバイスの機能にアクセスするリクエストに対する応答に関する更なる議論は、異なる図を参照してここに含まれる。
処理400において、ハードウェアデバイスの機能にアクセスするリクエストが受信される(動作402)。このリクエストは、上述されたように、デバイスブローカーで受信される。
アプリケーションが機能にアクセスすることを許可されていることをデバイス許可記録が示すかどうかに関して、確認がなされる(動作404)。この確認は、例えば、機能と関連付けられる承諾タイプが特権付与承諾タイプであるかどうかを確認し、そうである場合は、アプリケーションの識別子がハードウェアデバイスの機能と関連付けられるアプリケーションIDリストに含まれるかどうかを確認することによって、行われる。この確認は、通常、上述されたように、アプリケーションが確認を不正に変更し又は別なふうに干渉することを防ぐよう、コンピュータデバイスにより実施される処理400のオペレーティングシステムの信頼される部分において行われる。
動作404における確認に基づき、アプリケーションが機能にアクセスすることを許可されると決定される場合は、リクエストは許可され、アプリケーションは機能にアクセスすることを可能にされる(動作406)。この許可は、例えば、上述されたように、リクエストされている機能へのハンドル又は他の識別子をアプリケーションへ返すことであってよい。なお、動作404における確認に基づき、アプリケーションが機能にアクセスすることを許可されないと決定される場合は、リクエストは拒絶され、アプリケーションは機能にアクセスすることを認められない(動作408)。この拒絶は、例えば、上述されたように、機能へのハンドル又は他の識別子をアプリケーションへ返すことを拒むことであってよい。
よって、ここで論じられるデバイス機能へのアプリケーションの結び付けの技術は、ハードウェアデバイスの種々の機能が特定のアプリケーションにのみアクセス可能であることを可能にする。例えば、プリンタのベンダーは、彼らが流通させるプリンタを管理するアプリケーションを分配することができ、それにより、全てのアプリケーションがそのプリンタを用いてデータを印刷することを可能にしながら、彼らが開発又は別なふうに承認する(任意に、他のプリンタベンダーが開発又は別なふうに承認する)プリンタ管理のためのアプリケーションのみがプリンタを管理することを可能にする。他の例として、ベンダーは、新しいハードウェアデバイスと、そのハードウェアデバイスを使用するアプリケーションを開発し、ベンダーが開発するアプリケーションおみがそのハードウェアデバイスを使用することを可能にすることができる。
更に、ここで論じられるデバイス機能へのアプリケーションの結び付けの技術を用いるシステムは拡張可能である。どのアプリケーションがハードウェアにアクセスすることを許可されるのかは、時間にわたって変化しうる。更に、(例えば。1又はそれ以上の新しいハードウェアデバイスインターフェースクラスを有する)新しいハードウェアデバイスは、ハードウェアデバイスの開発者又はベンダーがハードウェアデバイスにアクセスすることができると望むアプリケーションのみがハードウェアデバイスにアクセスすることができるように、システムにインストールされ得る。
図5は、1又はそれ以上の実施形態に従ってデバイス機能へのアプリケーションの結び付けを実施するよう構成され得るコンピュータデバイス500の例を表す。コンピュータデバイス500は、例えば、図1のコンピュータデバイス100であってよく、且つ/あるいは、図2のシステム200を実施してよい。
コンピュータデバイス500は、1又はそれ以上のプロセッサ又はプロセッシングユニット502と、1又はそれ以上のメモリ及び/又は記憶コンポーネント506を有することができる1又はそれ以上のコンピュータ可読媒体504と、1又はそれ以上の入出力(I/O)デバイス508と、様々なコンポーネント及びデバイスが互いと通信することを可能にするバス510とを有する。コンピュータ可読媒体504及び/又は1又はそれ以上のI/Oデバイス508は、コンピュータデバイス500の一部として含まれてよく、あるいは、代替的に、コンピュータデバイス500へ結合されてよい。バス510は、様々な異なるバスアーキテクチャを用いるメモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレイティッド・グラフィクス・ポート、プロセッサ又はローカルバス、等を含む様々なタイプのバス構造の中の1又はそれ以上を表す。バス510は、有線及び/又は無線バスを有することができる。
メモリ/記憶コンポーネント506は、1又はそれ以上のコンピュータ記憶媒体を表す。コンポーネント506は、揮発性媒体(例えば、ランダムアクセスメモリ(RAM))及び/又は不揮発性媒体(例えば、読出専用メモリ(ROM)、フラッシュメモリ、光ディスク、磁気ディスク、等)を有することができる。コンポーネント506は、固定式媒体(例えば、RAM、ROM、固定式ハードドライブ、等)及び取り外し可能な媒体(例えば、フラッシュメモリドライブ、リムーバブル・ハードドライブ、光ディスク、等)を有することができる。
ここで論じられる技術は、1又はそれ以上のプロセッシングユニット502によって実行される命令を有するソフトウェアにおいて実施可能である。当然に、種々の命令がコンピュータデバイス500の種々のコンポーネントにおいて、例えば、プロセッシングユニット502において、プロセッシングユニット502の様々なキャッシュメモリにおいて、デバイス500の他のキャッシュメモリにおいて(図示せず。)、他のコンピュータ可読媒体において、等で、記憶され得る。更に、当然に、命令がコンピュータデバイス500において記憶される場所は、時間にわたって変化しうる。
1又はそれ以上の入出力デバイス508は、ユーザがコマンド及び情報をコンピュータデバイス500に入力することを可能にし、更に、情報がユーザ及び/又は他のコンポーネント若しくはデバイスに提示されることを可能にする。入力デバイスの例には、キーボード、カーソル制御デバイス(例えば、マウス)、マイクロホン、スキャナ等があり、出力デバイスの例には、表示デバイス(例えば、モニタ又はプロジェクタ)、スピーカ、プリンタ、ネットワークカード等がある。
様々な技術が、ソフトウェア又はプログラムモジュールの一般的な脈略においてここで記載される。一般的に、ソフトウェアは、特定のタスクを実行し又は特定の抽象データ型を実施するルーチン、プログラム、アプリケーション、オブジェクト、コンポーネント、データ構造、等を含む。それらのモジュール及び技術の実施は、何らかの形のコンピュータ可読媒体において記憶され、又はそれにわたって伝送されてよい。コンピュータ可読媒体は、コンピュータデバイスによってアクセス可能な如何なる利用可能な媒体であってもよい。限定されない例として、コンピュータ可読媒体は、“コンピュータ記憶媒体”及び“通信媒体”を有してよい。
“コンピュータ記憶媒体”は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報の記憶のためのあらゆる方法又は技術において実施される揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)若しくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は所望の情報を記憶するために使用可能であり且つコンピュータによってアクセス可能なあらゆる他の媒体を含むが、これらに限られない。
“通信媒体”は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の伝送メカニズムのような変調データ信号において具現する。通信媒体はまた、あらゆる情報送達媒体を含む。語“変調データ信号”は、信号において情報を符号化するようにその特性の1又はそれ以上を設定又は変更された信号を意味する。限定されない例として、通信媒体は、有線ネットワーク及び直接有線接続のような有線媒体、並びに音響、RF、赤外線、及び他の無線媒体のような無線媒体を含む。上記のいずれかの組み合わせも、コンピュータ可読媒体の適用範囲内に含まれる。
一般に、ここで記載される機能又は技術のいずれも、ソフトウェア、ファームウェア、ハードウェア(例えば、固定ロジック回路)、手動プロセッシング、又はそれらの実施の組み合わせを用いて実施され得る。ここで使用される語“モジュール”及び“コンポーネント”は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを表す。ソフトウェア実施の場合に、モジュール又はコンポーネントは、プロセッサ(例えば、1又は複数のCPU)で実行される場合に、指定されるタスクを実行するプログラムコードを表す。プログラムコードは、1又はそれ以上のコンピュータ可読メモリデバイスにおいて記憶され得る。これに関する更なる記載は、図5を参照して見つけられてよい。ここで記載されるデバイス機能へのアプリケーションの結び付けの技術の特徴は、プラットフォーム非依存であり、当該技術が、様々なプロセッサを有する様々な市販のコンピュータプラットフォームで実施され得ることを意味する。
対象について、構造上の特徴及び/又は方法上の動作に特有の言語において記載してきたが、添付の特許請求の範囲において定義される対象は、必ずしも、上記の具体的な特徴又は動作に限定されないことが理解されるべきである。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実施する例となる形態として開示される。

Claims (10)

  1. コンピュータデバイスにおける方法であって、
    前記コンピュータデバイスにインストールされているハードウェアデバイスの機能にアクセスするリクエストをアプリケーションから受け取るステップと、
    前記コンピュータデバイスによって、前記アプリケーションが前記ハードウェアデバイスの機能にアクセスすることを許可されているとデバイス許可記録において特定されるかどうかを確認するステップと、
    前記アプリケーションが前記ハードウェアデバイスの機能にアクセスすることを許可されていると前記デバイス許可記録が示す場合は、前記アプリケーションが前記ハードウェアデバイスの機能にアクセスすることを可能にし、前記アプリケーションが前記ハードウェアデバイスの機能にアクセスすることを許可されていると前記デバイス許可記録が示さない場合は、前記リクエストを拒絶するステップと
    を有する方法。
  2. 前記確認するステップは、前記アプリケーションの識別子を取得し、該アプリケーションの識別子が前記ハードウェアデバイスの機能に関連付けられるように前記デバイス許可記録において含まれるかどうかを確認する、
    請求項1に記載の方法。
  3. 前記リクエストは、前記ハードウェアデバイスの機能を特定するデバイスインターフェースクラスにアクセスするリクエストを有する、
    請求項1に記載の方法。
  4. 前記リクエストは、特定のベンダーからハードウェアデバイスにアクセスするリクエストを有し、前記アクセスすることを可能にするステップは、前記アプリケーションが前記特定のベンダーから前記ハードウェアデバイスの機能にアクセスすることを許可されていることを前記デバイス許可記録が示す場合にのみ、前記アプリケーションが前記ハードウェアデバイスの機能にアクセスすることを可能にする、
    請求項1に記載の方法。
  5. 前記デバイス許可記録は、前記コンピュータデバイスのオペレーティングシステムに定義される必要がない複数の機能識別子と、該複数の機能識別子の夫々についての、当該機能識別子によって特定される機能にアクセスすることを許可されている1又はそれ以上のアプリケーション識別子の関連リストとを含み、
    当該方法は、新しいハードウェアデバイスの前記コンピュータデバイスにおけるインストールの間、追加の機能識別子と、該追加の機能識別子に関連付けられる1又はそれ以上のアプリケーション識別子の追加のリストとを加えるステップを更に有する、
    請求項1に記載の方法。
  6. プロセッサと、複数の命令を記憶したコンピュータ可読媒体とを有し、
    前記複数の命令は、前記プロセッサによって実行される場合に、該プロセッサに、
    ハードウェアに関連するインストールデータを取得する動作と、
    前記インストールデータから、前記ハードウェアデバイスの第1の機能にアクセスすることを許可されるアプリケーションの識別子を特定する動作と、
    更なるユーザ承認なしで前記ハードウェアデバイスの前記第1の機能にアクセスすることを許可されるようにデバイス許可記録において前記アプリケーションの識別子を格納する動作と
    を実行させる、コンピュータデバイス。
  7. 前記複数の命令は、更に、前記プロセッサに、前記コンピュータデバイスにおける前記ハードウェアデバイスのインストールの間に前記特定する動作及び前記格納する動作を実行させる、
    請求項6に記載のコンピュータデバイス。
  8. 前記複数の命令は、更に、前記プロセッサに、
    前記ハードウェアデバイスに関連する更新データを取得する動作と、
    前記更新データから、前記ハードウェアデバイスに前記第1の機能にアクセスすることを許可される追加のアプリケーションの識別子を特定する動作と、
    前記ハードウェアデバイスの前記第1の機能にアクセスすることを許可されるように前記デバイス許可記録において前記追加のアプリケーションの識別子を格納する動作と
    を実行させる、請求項6に記載のコンピュータデバイス。
  9. 前記デバイス許可記録は、複数の機能識別子と、該複数の機能識別子の夫々についての、当該機能識別子によって特定される機能にアクセスすることを許可される1又はそれ以上のアプリケーション識別子の関連リストとを含み、
    前記ハードウェアデバイスの前記第1の機能は、前記複数の機能識別子の中の1つによって特定され、
    前記アプリケーションの識別子を格納する動作は、前記ハードウェアデバイスの前記第1の機能に関連付けられるアプリケーション識別子を前記1又はそれ以上のアプリケーション識別子のリストに加えることを含む、
    請求項6に記載のコンピュータデバイス。
  10. 前記ハードウェアデバイスの前記第1の機能にアクセスすることを示す承諾タイプに関連付けられる前記ハードウェアデバイスの前記第1の機能は、アプリケーションの識別子のリストにおいて特定される特権を持ったアプリケーションにのみ許可され、前記ハードウェアデバイスの第2の機能にアクセスすることを示す承諾タイプに関連付けられる前記ハードウェアデバイスの前記第2の機能は、どのアプリケーションが前記ハードウェアデバイスの前記第2の機能へのアクセスをリクエストしているのかにかかわらず許可される、
    請求項6に記載のコンピュータデバイス。
JP2014509279A 2011-05-02 2011-10-10 デバイス機能へのアプリケーションの結び付け Expired - Fee Related JP6147731B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/099,260 US20120284702A1 (en) 2011-05-02 2011-05-02 Binding applications to device capabilities
US13/099,260 2011-05-02
PCT/US2011/055629 WO2012150955A1 (en) 2011-05-02 2011-10-10 Binding applications to device capabilities

Publications (3)

Publication Number Publication Date
JP2014517383A true JP2014517383A (ja) 2014-07-17
JP2014517383A5 JP2014517383A5 (ja) 2014-11-13
JP6147731B2 JP6147731B2 (ja) 2017-06-14

Family

ID=47091151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014509279A Expired - Fee Related JP6147731B2 (ja) 2011-05-02 2011-10-10 デバイス機能へのアプリケーションの結び付け

Country Status (6)

Country Link
US (1) US20120284702A1 (ja)
EP (1) EP2705425A4 (ja)
JP (1) JP6147731B2 (ja)
KR (1) KR101861401B1 (ja)
CN (1) CN103620556A (ja)
WO (1) WO2012150955A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095433A (ja) * 2018-12-12 2020-06-18 キヤノン株式会社 情報処理装置、システム、情報処理装置の制御方法、システムの制御方法及びプログラム

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639688B2 (en) 2010-05-27 2017-05-02 Ford Global Technologies, Llc Methods and systems for implementing and enforcing security and resource policies for a vehicle
US8732697B2 (en) 2010-08-04 2014-05-20 Premkumar Jonnala System, method and apparatus for managing applications on a device
US9452735B2 (en) 2011-02-10 2016-09-27 Ford Global Technologies, Llc System and method for controlling a restricted mode in a vehicle
US8522320B2 (en) 2011-04-01 2013-08-27 Ford Global Technologies, Llc Methods and systems for authenticating one or more users of a vehicle communications and information system
US9635064B2 (en) * 2011-05-31 2017-04-25 Amx Llc Apparatus, method, and computer program for streaming media peripheral address and capability configuration
US8788113B2 (en) 2011-06-13 2014-07-22 Ford Global Technologies, Llc Vehicle driver advisory system and method
US10097993B2 (en) * 2011-07-25 2018-10-09 Ford Global Technologies, Llc Method and apparatus for remote authentication
US8849519B2 (en) 2011-08-09 2014-09-30 Ford Global Technologies, Llc Method and apparatus for vehicle hardware theft prevention
US9569403B2 (en) 2012-05-03 2017-02-14 Ford Global Technologies, Llc Methods and systems for authenticating one or more users of a vehicle communications and information system
JP2014123311A (ja) * 2012-12-21 2014-07-03 International Business Maschines Corporation 入力デバイスからの入力を対応するアプリケーションプログラムへと提供する装置、方法、プログラム
US8866604B2 (en) 2013-02-14 2014-10-21 Ford Global Technologies, Llc System and method for a human machine interface
US9688246B2 (en) 2013-02-25 2017-06-27 Ford Global Technologies, Llc Method and apparatus for in-vehicle alarm activation and response handling
US8947221B2 (en) 2013-02-26 2015-02-03 Ford Global Technologies, Llc Method and apparatus for tracking device connection and state change
US9141583B2 (en) 2013-03-13 2015-09-22 Ford Global Technologies, Llc Method and system for supervising information communication based on occupant and vehicle environment
US9002536B2 (en) 2013-03-14 2015-04-07 Ford Global Technologies, Llc Key fob security copy to a mobile phone
GB2514546A (en) * 2013-05-23 2014-12-03 Nec Corp Communication system
US9547607B2 (en) * 2013-06-27 2017-01-17 Microsoft Technology Licensing, Llc Brokering application access for peripheral devices
JP2015035169A (ja) * 2013-08-09 2015-02-19 ソニー株式会社 電子機器、サーバ、電子機器の制御方法、情報処理方法および記録媒体
US9473562B2 (en) * 2013-09-12 2016-10-18 Apple Inc. Mediated data exchange for sandboxed applications
EP2947848B1 (en) * 2014-05-20 2018-07-11 2236008 Ontario Inc. System and method for granting permission for a machine action
US9489524B2 (en) * 2014-05-23 2016-11-08 Blackberry Limited Intra-application permissions on an electronic device
US10437742B2 (en) * 2014-10-10 2019-10-08 Microsoft Technology Licensing, Llc Vendor-specific peripheral device class identifiers
US9626304B2 (en) * 2014-10-21 2017-04-18 Sandisk Technologies Llc Storage module, host, and method for securing data with application information
US9729785B2 (en) 2015-01-19 2017-08-08 Microsoft Technology Licensing, Llc Profiles identifying camera capabilities that are usable concurrently
US9930050B2 (en) * 2015-04-01 2018-03-27 Hand Held Products, Inc. Device management proxy for secure devices
US10249123B2 (en) 2015-04-09 2019-04-02 Ford Global Technologies, Llc Systems and methods for mobile phone key fob management
US10459722B2 (en) * 2015-11-24 2019-10-29 Wind River Systems, Inc. Device, system, and method for secure supervisor system calls
US10243963B1 (en) * 2015-12-18 2019-03-26 Symantec Corporation Systems and methods for generating device-specific security policies for applications
CN106528231B (zh) * 2016-11-07 2019-08-20 青岛海信移动通信技术股份有限公司 一种启动应用程序的方法和装置
US10956615B2 (en) 2017-02-17 2021-03-23 Microsoft Technology Licensing, Llc Securely defining operating system composition without multiple authoring
US10924508B2 (en) 2017-12-21 2021-02-16 Sonicwall Inc. Providing access to data in a secure communication
CN108985088A (zh) * 2018-07-25 2018-12-11 江阴嘉恒软件技术有限公司 一种控制计算机数据访问的方法
CN109543470A (zh) * 2018-11-01 2019-03-29 郑州云海信息技术有限公司 一种存储设备安全访问方法及系统
CN111436047B (zh) * 2019-02-03 2022-02-18 维沃移动通信有限公司 终端能力标识的操作方法和通信设备
US11182086B2 (en) * 2019-07-19 2021-11-23 Cignet Technology, Inc. Method and system for application-based management of user data storage rights
CN117440377A (zh) * 2022-07-21 2024-01-23 荣耀终端有限公司 通信系统、方法及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004192100A (ja) * 2002-12-09 2004-07-08 Alps Electric Co Ltd デバイスドライバのプロテクト方法およびデバイス
JP2005502128A (ja) * 2001-08-13 2005-01-20 クゥアルコム・インコーポレイテッド アプリケーションにデバイスリソースを割り当てるための許可の使用
JP2007241560A (ja) * 2006-03-07 2007-09-20 Nippon Telegr & Teleph Corp <Ntt> ホームゲートウェイソフトウェアパーミッション管理システム
JP2008305336A (ja) * 2007-06-11 2008-12-18 Nippon Telegr & Teleph Corp <Ntt> アクセス許可設定方法、アクセス許可設定装置およびアクセス許可設定プログラム
US20090089463A1 (en) * 2004-11-30 2009-04-02 Nec Corporation Information Processing Device, Device Access Control Method, and Device Access Control Program

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100464349B1 (ko) * 2002-08-08 2005-01-03 삼성전자주식회사 디바이스 드라이버 제어 공통화 방법
US20040098591A1 (en) * 2002-11-15 2004-05-20 Fahrny James W. Secure hardware device authentication method
US9197668B2 (en) * 2003-02-28 2015-11-24 Novell, Inc. Access control to files based on source information
JP4380198B2 (ja) * 2003-03-31 2009-12-09 株式会社日立製作所 ストレージ装置でアクセス制御を行う計算機システム
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
CA2564186C (en) * 2004-04-30 2019-08-20 Research In Motion Limited System and method of operation control on an electronic device
WO2006001524A1 (ja) * 2004-06-25 2006-01-05 Nec Corporation 移動端末、移動端末のリソースアクセス制御システムおよび移動端末におけるリソースアクセス制御方法
US20060259674A1 (en) * 2005-05-12 2006-11-16 Robert Dunstan Apparatus and method for granting access to a hardware interface shared between multiple software entities
US7752367B2 (en) * 2005-12-22 2010-07-06 International Business Machines Corporation File-based access control for shared hardware devices
US7779427B2 (en) * 2006-01-18 2010-08-17 Microsoft Corporation Automated application configuration using device-provided data
US20080022376A1 (en) * 2006-06-23 2008-01-24 Lenovo (Beijing) Limited System and method for hardware access control
JP2009043055A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd 計算機システム、ストレージ装置及びデータ管理方法
JP5000457B2 (ja) * 2007-10-31 2012-08-15 株式会社日立製作所 ファイル共有システム及びファイル共有方法
US8176499B2 (en) * 2008-05-30 2012-05-08 Microsoft Corporation Defining, distributing and presenting device experiences
US8533797B2 (en) * 2008-06-12 2013-09-10 Microsoft Corporation Using windows authentication in a workgroup to manage application users
US8850549B2 (en) * 2009-05-01 2014-09-30 Beyondtrust Software, Inc. Methods and systems for controlling access to resources and privileges per process

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502128A (ja) * 2001-08-13 2005-01-20 クゥアルコム・インコーポレイテッド アプリケーションにデバイスリソースを割り当てるための許可の使用
JP2004192100A (ja) * 2002-12-09 2004-07-08 Alps Electric Co Ltd デバイスドライバのプロテクト方法およびデバイス
US20090089463A1 (en) * 2004-11-30 2009-04-02 Nec Corporation Information Processing Device, Device Access Control Method, and Device Access Control Program
JP2007241560A (ja) * 2006-03-07 2007-09-20 Nippon Telegr & Teleph Corp <Ntt> ホームゲートウェイソフトウェアパーミッション管理システム
JP2008305336A (ja) * 2007-06-11 2008-12-18 Nippon Telegr & Teleph Corp <Ntt> アクセス許可設定方法、アクセス許可設定装置およびアクセス許可設定プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095433A (ja) * 2018-12-12 2020-06-18 キヤノン株式会社 情報処理装置、システム、情報処理装置の制御方法、システムの制御方法及びプログラム
JP7199949B2 (ja) 2018-12-12 2023-01-06 キヤノン株式会社 情報処理装置、システム、情報処理装置の制御方法、システムの制御方法及びプログラム

Also Published As

Publication number Publication date
EP2705425A1 (en) 2014-03-12
KR101861401B1 (ko) 2018-06-29
US20120284702A1 (en) 2012-11-08
JP6147731B2 (ja) 2017-06-14
WO2012150955A1 (en) 2012-11-08
CN103620556A (zh) 2014-03-05
EP2705425A4 (en) 2015-04-08
KR20140026451A (ko) 2014-03-05

Similar Documents

Publication Publication Date Title
JP6147731B2 (ja) デバイス機能へのアプリケーションの結び付け
US10846374B2 (en) Availability of permission models in roaming environments
CN107408183B (zh) 通过安全硬化管理代理进行的设备证实
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
JP5602841B2 (ja) ユーザー識別に基づく製品機能強化
US8091142B2 (en) Supplementary trust model for software licensing/commercial digital distribution policy
US9092598B2 (en) Version-based software product activation
JP5597253B2 (ja) 状態およびデーターを移すための対話処理モデル
EP3047375B1 (en) Virtual machine manager facilitated selective code integrity enforcement
US9679130B2 (en) Pervasive package identifiers
US20110162057A1 (en) Access control based on user and service
JP6073483B2 (ja) オペレーティングシステム独立ストレージ内のライセンシング情報の格納及びアクセス
KR102030858B1 (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
CA2951914C (en) Restricted code signing
JP2004118327A (ja) コンテンツ使用制御装置及びコンテンツ使用制御方法、並びにコンピュータ・プログラム
US8401973B1 (en) Method and system for managing a license for an add-on software component
US10592660B2 (en) Capability access management
US8756433B2 (en) Associating policy with unencrypted digital content
EP3143749B1 (en) Restricted code signing

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140925

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140925

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160614

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160622

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170517

R150 Certificate of patent or registration of utility model

Ref document number: 6147731

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees