JP2009528596A - 信頼コードグループ - Google Patents

信頼コードグループ Download PDF

Info

Publication number
JP2009528596A
JP2009528596A JP2008556564A JP2008556564A JP2009528596A JP 2009528596 A JP2009528596 A JP 2009528596A JP 2008556564 A JP2008556564 A JP 2008556564A JP 2008556564 A JP2008556564 A JP 2008556564A JP 2009528596 A JP2009528596 A JP 2009528596A
Authority
JP
Japan
Prior art keywords
library
tcg
application
authorized
digital signature
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
JP2008556564A
Other languages
English (en)
Other versions
JP5173844B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009528596A publication Critical patent/JP2009528596A/ja
Application granted granted Critical
Publication of JP5173844B2 publication Critical patent/JP5173844B2/ja
Active 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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

アプリケーションとアプリケーションによってロードされたライブラリとの間の信頼を強化する技法および機構が説明される。非常に一般的に言えば、アプリケーションは、そのライブラリがアプリケーションと共に実行するために認可されるべきメンバでなければならない1つまたは複数の信頼コードグループ(「TCG」)を宣言する。1つまたは複数のTCG内のメンバシップを肯定することを認可されたライブラリは、そのメンバシップの安全なインジケータを含む。アプリケーションが実行し、ライブラリをロードしようと試みるとき、アプリケーションによって認可されたTCG内のそのライブラリのメンバシップは、ライブラリをロードする前に検証される。

Description

本発明は、一般に、ソフトウェアセキュリティの分野に関し、より詳細には、ソフトウェアセキュリティの検証および妥当性確認に関する。
今日ではソフトウェアアプリケーションは、通常、一般的な「アプリケーション機能」を協働して提供するいくつかの異なる実行可能モジュールから成る。例えば、新しいアプリケーションの開発者は、アプリケーションの「コアビジネスロジック」を実行するソースコードを書くことができるが、一般的なダイアログボックスまたは通信機能などのもっと決まりきった機能に関しては、サードパーティまたは他のコードライブラリに頼る。実行時には、アプリケーションが起動され、オペレーティングシステムに、実行中のアプリケーションコードに動的にリンクされたその他のライブラリのインスタンスをロードするよう命令する。次いで、アプリケーションおよびライブラリは、通常、アプリケーションが実行している間、メモリ内で単一のユニットとして協働する。
しかし、実行中のアプリケーションコードとライブラリとの間の信頼を管理することは困難である。アプリケーションが実行している間、アプリケーションがロードするどのライブラリもアプリケーションのメモリ空間またはプロセス境界にマップされ、アプリケーションの一部分であるかのように実行する。ロードされた後は、アプリケーションとライブラリとの間には境界がなく、アプリケーションは、ライブラリを呼び出す場合、ライブラリに完全な信頼を置いている。ライブラリは、アプリケーションがアクセスすることができる任意の、または全てのデータを、変更、削除、または再配送することもできる。アプリケーションはますます複雑になり、ライブラリは、様々な、ことによると信頼されないロケーションからコンピューティング装置上にますます普通にロードされるので、アプリケーションによって呼び出されるまたはロードされることができるコードライブラリのセキュリティおよび保全性(すなわち、「信頼性」)に焦点を合わせることがますます重要になってきている。
コードライブラリの信頼性を評価および/または保証するのに適した機構は、これまで当業者には知られていない。
発明の概要
本発明は、アプリケーションとライブラリとの間の信頼を保証または強化するための技法および機構を対象とする。一態様では、本発明は、コードモジュール間の信頼を保証するための方法を予想する。本方法は、機能のクラスを使用するアプリケーションを受け取ることを含み、アプリケーションは、クラスを実行するアプリケーションによって信頼された信頼コードグループ(「TCG」)のリストを含む。本方法はまた、機能のクラスを実行するライブラリを受け取ることを含み、ライブラリは署名鍵を使用して署名され、署名はライブラリをTCGに関連付け、TCGは信頼性の保証である。ライブラリがロードされるようにするためにコールが開始された場合、本方法は、ライブラリをロードする前に、ライブラリがリストアップされたTCGのうちの1つのメンバであるかどうかを判定するためにライブラリ上の署名が検証されるようにすることを含む。
他の態様では、本発明は、ライブラリの信頼性を検証するための方法およびコンピュータ可読媒体を予想する。本方法は、ライブラリをロードする命令をアプリケーションから受け取ることを含み、アプリケーションは、関連付けられた認可済みTCG IDのリストを有し、各TCG IDは、ライブラリのグループに関連付けられた信頼の程度を表すTCGに関連付けられる。本方法は、TCG IDをライブラリに関連付けるディジタル署名を検出するためにライブラリを検査すること、ライブラリのTCG IDを、ライブラリがアプリケーションと共に実行することを認可されているかどうかを判定するために、アプリケーションに関連付けられた認可済みTCG IDのリストと比較すること、および、ライブラリが認可されている場合は、ライブラリをロードすることをさらに含む。
他の態様では、本発明は、ライブラリの信頼性を検証するための機器を予想する。機器は、アプリケーションおよびライブラリが記憶される記憶媒体、プロセッサ、ならびにプロセッサおよび記憶媒体に結合されたメモリを含み、記憶媒体にはコンピュータ実行可能コンポーネントが常駐する。コンポーネントは、プロセッサに、ライブラリをロードする命令をアプリケーションから受け取らせるように動作可能であり、アプリケーションは、認可済みTCG IDの関連付けられたリストを有し、各TCG IDは、ライブラリのグループに関連付けられた信頼の程度を表すTCGに関連付けられて、TCG IDをライブラリに関連付けるディジタル署名を検出するためにライブラリを検査し、ライブラリがアプリケーションと共に実行することを認可されているかどうかを判定するために、ライブラリのTCG IDをアプリケーションに関連付けられた認可済みTCG IDのリストと比較し、ライブラリが認可されている場合は、ライブラリをロードする。
本発明の特徴および利点は、同様の参照符号が全体にわたって対応して識別する図面に関連して考えられた場合、以下に述べられる詳細な説明から、より明らかになるであろう。
詳細な説明
下記は、アプリケーション開発者が、実行時にアプリケーションがロードされるようにすることができるライブラリの信頼性を制御することができるようにする本発明の様々な実施形態の詳細な説明である。簡単に言えば、本発明は、ライブラリ開発者が彼らの共用ライブラリが1つまたは複数の「信頼コードグループ」に含まれるために評価されることができるようにすることを予想する。その場合、アプリケーション開発者は、実行時にアプリケーションが信頼すべきそれらの信頼コードグループを識別するリスティングを含む。インストールされたアプリケーションが起動され、ライブラリをロードしようと試みる場合、信頼マネージャが、ライブラリがアプリケーションによって認識された信頼コードグループの中にあることを検証する。そうである場合は、信頼マネージャはライブラリがロードされることができるようにし、そうでない場合は、信頼マネージャはロードすることができない。
議論を始めるにあたって、図1は、本発明の一実装形態による、アプリケーション111およびライブラリ131のインスタンスがそこで実行しているシステムメモリ101を示す。また、他のアプリケーション145および/またはオペレーティングシステムコード147など、他のコードがシステムメモリ101で実行していてもよい。説明を続行する前に、本明細書全体にわたって使用される用語のいくつかの定義を提供することが有用である。
用語「トラスタ」は、トラスティをロードする任意の実行可能コード(例えば、アプリケーション)を意味する。トラスタは、そのまわりにメモリまたはプロセス保護境界を有し、その境界を横切って行き来するものに関してポリシを作成する。簡単なユーザアプリケーションは、トラスタの単に1つの例である。他の例には、限定なしに、スクリプト、ウェブページコンテンツ(例えば、「フラッシュ」コンポーネントまたは「ショックウェーブ」コンポーネント)、ユーザインターフェース(例えば、高水準UI記述言語でのユーザインターフェース仕様)などがある。
用語「トラスティ」は、実行時にトラスタによってロードされる任意の実行可能コード(例えば、ライブラリ)または構成データを意味する。用語「トラスティ」は、限定なしに、共用ライブラリおよび公開ライブラリ、動的および静的にリンクされたライブラリ、「拡張機能」、スクリプト、構成、コンテンツ、ユーザインターフェース、または、それらの用語が当技術分野で使用されるような他のいかなるリソース(例えば、画像またはマルチメディアデータ)をも含む。
用語「アプリケーション」および「トラスタ」は、本明細書全体にわたって互換可能に使用されることができる。同様に、用語「ライブラリ」および「トラスティ」は、本明細書全体にわたって互換可能に使用されることができる。したがって、用語「アプリケーション」または「ライブラリ」には、ちょうどそれらの用語特有のものとされる意味と異なる特定の意味が付加されるべきではない。
図1に示されているように、アプリケーション111がメモリ101にロードされた場合、アプリケーションがそこで実行するプロセスが作成され、そのプロセスはプロセス境界113を有する。プロセス境界113の中で実行しているコードは、一般に、その境界の中の任意のメモリロケーションに自由にアクセスすることができるが、プロセス境界113の外には、少なくとも直接には、アクセスすることができない。ここでは隣接しているメモリ空間として示されているが、プロセスは、隣接していないメモリロケーションを有してもよいことが理解されるであろう。
この例では、アプリケーション111は、プロセス境界113の中で実行しており、それ自体に関してデータ115に関するメモリ空間を割り当てている。ここでは単一の隣接しているデータ空間115として示されているが、アプリケーション111は、異なるタイプのデータに関するいくつかの異なるデータロケーションを有してもよいことが理解されるであろう。
実行中のいかなる時点においても、アプリケーション111は、ライブラリ131などの1つまたは複数のライブラリをロードされるようにすることができる。この例では、ライブラリ131は、アプリケーション111によって使用されるいかなる補足コードでもよいが、アプリケーション111の一部分ではない。一例では、ライブラリ131は、何らかのコア機能または特別機能を実行するサードパーティライブラリでもよい。
ライブラリ131は、一般に、それ自体のプロセス境界または保護境界を有するのではなく、正しくはアプリケーションのプロセス境界113の中で実行する。したがって、ライブラリ131は、アプリケーションのデータ115、さらには、アプリケーション実行可能コードの部分など、アプリケーション111がアクセスすることができるものには何にでもアクセスすることができる。さらに、ライブラリ131は、アプリケーション111がアクセスすることができるそれ自体のデータ117を有することができる。アプリケーション111とライブラリ131との間の強い信頼関係の必要を引き起こすのは、アプリケーションのコード111およびデータ115へのこの自由なアクセスである。
本特許明細書の残部でもっと十分に説明されるように、アプリケーション111は、ライブラリ131が属しなければならない信頼関係を定義する、ある種の情報を宣言する。ロードされた場合、ライブラリ131は、それが属するそれらの信頼関係を示す。ライブラリ131がロードし始めた場合、それがアプリケーション111によって認識された信頼関係に属しない場合は、そのロードは実行されることができない。
図2は、それぞれ1つまたは複数の関連付けられた信頼コードグループ(「TCG群」)を有する信頼されたエンティティ(「TE群」)の階層200の概念図である。本発明によれば、信頼コードグループ(「TCG」)は、本質的に、等しく信頼されたコードモジュールのグループである。信頼されたエンティティ(TE)は、コードモジュールを承認または証明して1つまたは複数のTCGに入れる団体、またはことによると個人である。特定のTEは、特定のTCGの所有権を取得し、TCG内のメンバシップに関して提案されたコードモジュールを評価またはテストすることが予想される。
1つの特定の実装形態では、各TCGは、関連付けられたTCG識別子(TCG ID)を有する。TCG IDは、TCGを識別し、他のTCG群から各TCGを一意に区別する32ビットの整数である。この特定の実装形態では、TCG ID群のフルレンジは、0x00000000から0xFFFFFFFFまで広がることができる。図2を参照すると、最上位層のTE(すなわち、TE201)は、TCG ID群の全範囲の所有権を有する。この最上位層のTE201は、モバイルデバイスなどのオペレーティングシステムに関して責任を有する団体でもよい。
最上位層のTE201は、全TCG ID範囲の中の範囲を何らかの専門技術領域または特定の信頼領域に対応する従属TE群に委任する。一例では、従属TE(セキュリティTE211)は、任意のタイプのセキュリティ機能に関するコードライブラリを検証し、保証する義務を有してもよい。したがって、セキュリティ機能のTCG ID群の範囲はセキュリティTE211に委任される。セキュリティTE211はそのTCG ID群のサブレンジを次の層のTEにさらに委任することができる。例えば、セキュリティTE211はTCG ID群のサブレンジを暗号化TE221または認証TE222に委任することができる。
最上位層のTE201は、ユーザインターフェースコンポーネントのTCG ID群の別の範囲を、ユーザインターフェースライブラリに責任を持つユーザインターフェースTE212に委任することができる。次いで、ユーザインターフェースTE212は、そのTCG ID群のサブレンジを、一般的なダイアログに責任を持つ一般的なダイアログTE223にさらに委任する。この階層システムは、将来追加のTCG群に対応することができるTCG ID群の範囲の柔軟な配分を可能にする。全範囲のいくつかのサブレンジが、他の使用のために取っておかれるためなど、何らかの理由でTCG IDとしての使用から除外されてもよいことが理解されるであろう。
具体的な例によってこの概念を示すために、最上位層のTE201が、範囲0x000F0000から0x000FFFFFまでをセキュリティTE211に、範囲0x00100000から0x1A0000までをユーザインターフェースTE212に委任したと仮定する。セキュリティTE211は、サブレンジ0x000F000Fから0x000F00FFFまでを暗号化TE221に委任し、サブレンジ0x000F0100から0x000F0FFFまでを認証TE222に委任してもよい。ユーザインターフェースTE212は、サブレンジ0x0010F000から0x0010FFFFまでを一般的なダイアログTE223に委任してもよい。もちろん、これらの特定の範囲およびサブレンジは、単に概念を例示するための例であり、本発明にどうしても必要というわけではない。
図3は、共用ライブラリ311がTE331の制御下で署名されて特定のTCGに入れられるように、コード開発者301がTE331と対話するサンプル開発環境を示す。この例では、コード開発者301は、保護されたメディアコンテンツを復号するためにディジタル著作権管理(「DRM」)アプリケーションで使用されることができるライブラリ311を開発してしまっていてもよい。TE331は、ライブラリを承認してDRMライブラリに関する特定のTCGに入れる権限を有するTCG ID群332の範囲を委任されている。TE331は、ルートTE機関から、またはこの例では「CA」333から、ライブラリを保証する権限を受け取る。
開発者301は、開発者301が信頼できることを保証するために、バグ検査、ウイルス検査、性能評価、または恐らく単に開発者301の識別の検証など、いかなるやり方の調査を含んでもよい承認のために、TE331に署名されていないライブラリ311を提示する。署名されていないライブラリ311および/または開発者301がTEの基準を満たす場合、TE331は署名されていないライブラリ311に「署名する」。署名されていないライブラリ311に署名することは、署名されていないライブラリ311のハッシュ値を生成すること、および秘密鍵320を使用して、そのハッシュ値を符号化することを含んでもよい。その符号化されたハッシュ値は、署名されていないライブラリ311のディジタル署名325と呼ばれる。
一実装形態では、ディジタル署名325が生成された場合、ライブラリが署名されて入れられるグループのTCG ID312が、署名されていないライブラリ311に追加される。これは、署名プロセス中にライブラリに追加された情報からのTCGの直接識別を可能にする。代替として、TCG IDが署名機関(例えば、TE331またはCA333)に関連付けられ、そのルート証明書に組み込まれ、ディジタル署名325が実行時に検証された場合、TCGが証明書チェーンから間接的に判定されることができるようにしてもよい。本発明の諸実装形態に適用可能な一般的なディジタル証明書標準は、ITU−TX.509標準である。
ディジタル署名325は、TCG ID312がパッケージと共に含まれる場合は明示的に、または、証明書335が証明書チェーンを介してTCGに関連付けられる場合は暗示的に、署名されたライブラリ321をTCGに効果的に結びつけることが理解されるであろう。
次いで、TE331は、署名されたライブラリ321、ディジタル署名325、および、ことによると、ライブラリが署名されて入れられたグループのTCG ID312を返す。TE331は、また、ディジタル署名325の真正さを検証する際に使用するためのTEの公開鍵を含むTEの証明書335を返す。TE証明書335は、実際には、CA333に関する証明書など、信頼されたルート証明書につながる中間証明書を含む証明書チェーンでもよい。開発者301は、この時点で、署名されたライブラリ321を配送する用意ができている。
ここでは、ライブラリ承認と証明書発行の両方を行う単一のエンティティとして記載されているが、それら2つのタスクは、別個のエンティティによって行われてもよいことに留意されたい。例えば、場合によっては、TE331は、証明書335を発行するようにCA335に、または恐らく完全に別個のエンティティに、訴えてもよい。
図4は、アプリケーション411がそこで実行するコンピューティング装置401、この例ではハンドヘルドコンピューティング装置を示す。本発明の諸実装形態で使用されることができる1つの例示的コンピューティング装置が、図6に例示され、以下で説明される。コンピューティング装置401は、オペレーティングシステム420、および1つまたは複数のインストールされたアプリケーション(例えば、アプリケーション411)を含む。さらに、前述のように「証明されていて」もよい(例えば、証明されたライブラリ417)、または証明されていなくてもよい(例えば、ライブラリ419)1つまたは複数のコードライブラリ415がある。この例では、証明されたライブラリ417は、TCGに含まれることに関して承認されていて、前述のように適切なTEによって署名されている。
アプリケーション411は、アプリケーション411が認識していることをアプリケーション411が宣言する認可済みTCG ID群のリストでもよい認可済みTCGリスト412を含むメタデータを有する。これは、アプリケーション411をロードされた如何なるライブラリ415も、認可済みTCGリスト412内のTCG群のうちの1つになければならないことを意味する。認可済みTCGリスト412は、個々のTCG ID群のリストだけでなく、信頼されたTCG ID群の1つまたは複数の範囲を含んでもよいことが理解されるであろう。
アプリケーション411は、また、アプリケーション411が信頼する如何なるTE群のルート証明書をも含む信頼された証明書413のリストを含んでもよい。ルート証明書は、証明されたライブラリが、証明されたライブラリ517のディジタル署名の妥当性を確認するためにTEの(ルート証明書に組み込まれた)公開鍵を使用することによって署名されて以来変更されているかどうかを判定するために使用される。信頼された証明書413は、コンピューティング装置401上に予めインストールされてもよく、あるいはアプリケーション411と共にまたは他のいかなる時にでもインストールされてもよい。オペレーティングシステム420は、また、アプリケーション411によって維持されている信頼された証明書413に追加して、またはその代わりに、信頼された証明書422のストアを維持することもできる。
アプリケーション411が実行している場合、それは証明されたライブラリ417を(例えば、ことによると「クリエイトインスタンス(CreateInstance)」コールなどを使用して)起動しようと試みることができる。アプリケーション411は、それが呼び出すいかなるライブラリも、認可済みTCGリスト412内の信頼されたTCG群のうちの1つのメンバ(menber)でなければならないことを宣言する。これは、アプリケーションの起動手順の一部分として初期設定時に行われてもよく、それとも、アプリケーション411は、ライブラリをロードするコール(例えば、CreateInstance)と共に認可済みTCGリスト412(またはその関連部分)にパス(pass)してもよい。
アプリケーション411による要求に応答して、オペレーティングシステム420は、証明されたライブラリ417を探索し、それがアプリケーション411での実行のために承認されているかどうかを判定する。承認判定は、証明されたライブラリ417からディジタル署名を抽出し、対応するルート証明書がアプリケーションの信頼された証明書413に、または恐らく全体的な信頼された証明書422に存在するかどうかを判定するオペレーティングシステム420の信頼マネージャ424モジュールによって行われてもよい。存在する場合は、信頼マネージャ424は、ライブラリが、それが署名されて以来変更されていないことを保証するために、ライブラリのディジタル署名の真正さを検証する。この検証は、適切なルート証明書が取り消されていないことを保証するために遠隔信頼エンティティまたは証明機関460に確認することを含んでもよい。
その妥当性がすべて確認された場合、オペレーティングシステム420は、証明されたライブラリ417(または、その一部分)をロードし、それをアプリケーションのメモリ空間内のアプリケーション411にリンクする。途中で何らかのテストが失敗した場合、オペレーティングシステム420は、証明されたライブラリ417をロードせず、エラーを返す。
場合によっては、アプリケーション411は、どの特定のライブラリを呼び出すかを必ずしも指定せずに、機能の特定のクラスを要求してもよい。要求された機能、いくつかの証明されたライブラリ417、およびいくつかの証明されていないライブラリ419を提供する複数のライブラリがあってもよい。それらの場合には、オペレーティングシステム420は、アプリケーションのTCG要求事項を満たすそれらのライブラリ(すなわち、証明されたライブラリ417)をアプリケーション411にとって利用可能にするだけでよい。例えば、アプリケーション411は、DRM制御を受ける「MP3」コンテンツなどのオーディオコンテンツをレンダリングすることができる。その場合、アプリケーション411は、いかなるMP3デコーダ(ライブラリ)もコンテンツの著作権を侵害しないことが信頼されることを必要とする可能性があるであろう。この信頼は、特定のDRM TCG内のメンバシップ(membership)の形で提供されてもよい。したがって、アプリケーション411がMP3デコーダライブラリを要求する場合、オペレーティングシステム420は、特定のDRM TCGのメンバであるMP3デコーダライブラリを利用可能にするだけである。
図5は、アプリケーションとそのアプリケーションによってロードされたライブラリとの間の信頼を保証するための方法500を全体的に示す動作流れ図である。方法500は、アプリケーションとライブラリとの間の信頼を確立し検証するためのシステム内の様々な機構によって行われる諸ステップを全体的に説明する。
ブロック502で、ライブラリはコード開発者によって作成される。ライブラリは、アプリケーションなど、実行しているコードの別のモジュールとプロセスを共用することによってサポート役で実行することを意図された、または実行することができるコードのいかなるモジュールまたはコンポーネントでもよい。
ブロック504で、ライブラリがTCGに含まれることを認可されていることを表すために、ライブラリが署名される。TCGに含まれることは、ライブラリが何らかの信頼されたエンティティ(例えばTE)によって保証され、TCG内に含まれることに関していかなる要求事項または基準にも準拠することを検証されていることを暗示する。一実装形態では、ライブラリがそこで署名された特定のグループを識別するTCG IDが、それが署名されている場合はライブラリに明示的に追加される。代替実施形態では、TCG証明書が、ライブラリがそこで署名された特定のTCGを表す署名されたライブラリと共に含まれる。TCG証明書は、TEによって発行されるか、それともTCGに責任を持つTEからその権限を得る。このようにして、署名は、暗示的に、または明示的に、ライブラリをTCGに結びつける。
ブロック506で、アプリケーションが作成され、ブロック502で作成されたライブラリなどのライブラリを使用するように構成される。アプリケーションは、何らかの主機能を実行し、その機能をサポートするために、または何らかの補足機能を提供するために、コードの別のモジュール(例えば、ライブラリ)に依存する、いかなる実行可能コードでもよい。
ブロック508で、認可済みTCG群のリストが、アプリケーションに関するメタ情報においてなど、アプリケーションに追加される。認可済みTCG群のリストは、アプリケーションをサポートするためにロードされた如何なるライブラリもアプリケーションのプロセスまたはメモリ境界で実行するために属しなければならないそれらのTCG群を識別する。代替として、または追加として、アプリケーションは、アプリケーション開発者がライブラリに署名してTCGに入れることを確信するTE群を表す信頼されたルート証明書を含んでもよい。
ブロック510で、ブロック508からのアプリケーションおよびブロック504からのライブラリが、ハンドヘルドコンピューティング装置または多機能携帯電話などのコンピューティング装置上にインストールされる。アプリケーションおよびライブラリは、同時にインストールされる必要がなく、同時にインストールされない可能性があるであろうが、どちらのコンポーネントも最終的には同じ装置にインストールされることが理解されるであろう。
ブロック512で、アプリケーションが起動され、実行を開始する。アプリケーションが起動された場合、コードがコード開発者によって実際に提供されたが、検証が特性および目的において本明細書の大部分で説明されたTCG検証と著しく異なることを保証するために、アプリケーションのコード署名が任意選択で検証されてもよい。
ブロック514で、アプリケーションは、ライブラリによって実行されるクラスをロードするためにクリエイトインスタンス(CreateInstance)コールを発行する。場合によっては、アプリケーションは、特定のライブラリではなく、ライブラリのクラスを呼び出すように書かれてもよいことが理解されるであろう。ライブラリの、そのクラスを実行するために複数のライブラリがインストールされてもよく、したがって、アプリケーションは、クラスを実行することがインスタンス化される特定の制御を有しない。しかし、ライブラリの、そのクラスのインスタンスを作成するためのアプリケーションによるコールは、この例では、ブロック510からライブラリのロードを開始する。
ブロック516で、ライブラリがロードされる前に、ライブラリ上の署名は、それが確かに有効であることを検査確認され、アプリケーションによって信頼されていると識別されたルート証明書にチェーンアップする。一実装形態では、有効な署名が、ライブラリが署名されて以来変更されていないことを示す。したがって、ライブラリに含まれた、またはライブラリと共に組み込まれたTCG IDは、ライブラリがどのTCGに属するか直接識別する。代替として、TCGメンバシップは、ライブラリに署名するために使用される証明書チェーンから判定されてもよい。例えば、アプリケーションに関連付けられた信頼されたルート証明書は、特定のTCGに関する署名権限を有する信頼されたエンティティに関する確認(例えば、ルート)証明書を含んでもよい。ライブラリに関連付けられたTCG証明書は、ローカルの信頼されたルート証明書と比較して評価される。アプリケーションは、アプリケーションと共に実行することを認可された複数のTCG ID群を識別することもできることに留意されたい。それらの複数のTCG ID群は、ライブラリがアプリケーションと共に実行するために、単にTCG ID群のリストか、TCG ID群の範囲か、または、恐らく、どの1つまたは複数のTCGに属しなければならないかを定義するブーリアン(Boolean)式かのいずれかとして識別されてもよい。これらおよび他の代替物は、当業者には明らかであろう。
ライブラリ上の署名がその信頼性を確認した場合、ブロック518で、ライブラリがロードされる。しかし、ライブラリ上の署名がどうしても確認できない場合、ブロック520で、ライブラリはロードされない。複数のライブラリがコンピューティング装置上にロードされた場合、代替ライブラリが最初のライブラリと同じやり方で選択され、評価されてもよい。代替として、信頼決定がユーザまたは別のセキュリティ確認機関によって行われることができるようにするためにセキュリティプロンプトが発行されてもよい。他の代替形態は、ライブラリを全くロードすることができず、その結果に対してエラーコードを発行することである。
図6は、本発明の諸実装形態が特に適用可能なサンプルコンピューティング装置601のコアコンポーネントを全体的に示す機能ブロック図である。コンピューティング装置601は、携帯電話、携帯情報端末、ハンドヘルド「パームトップ」装置、ラップトップコンピュータ、ポータブルミュージックプレーヤ、全地球測位(GPS)装置など、いかなる移動コンピューティング装置でもよい。同様に、コンピューティング装置601は、デスクトップコンピュータまたはサーバなど、いかなる固定コンピューティング装置でもよい。
この例では、コンピューティング装置601は、プロセッサユニット604、メモリ606、記憶媒体613、およびオーディオユニット631を含む。プロセッサユニット604は、有利には、ディジタル信号プロセッサ(DSP)などのマイクロプロセッサまたは特定用途向けプロセッサを含むが、代替形態では、いかなる従来の形のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでもよい。
プロセッサユニット604は、有利には、プロセッサユニット604によって実行されるソフトウェア命令を保持するRAMメモリとして実装されるメモリ606に結合される。この実施形態では、メモリ606に記憶されているソフトウェア命令は、オペレーティングシステム610、1つまたは複数のアプリケーション612、および1つまたは複数のコードライブラリ614を含む。メモリ606はオンボードRAMまたはプロセッサユニット604でもよく、メモリ606はASIC内に集合的に常駐してもよい。代替実施形態では、メモリ606はファームウェアまたはフラッシュメモリから成ってもよい。
プロセッサユニット604は、ほんの少数の例を挙げれば、ROMメモリ、フラッシュメモリ、または磁気ディスクドライブなど、いかなる不揮発性メモリとして実装されてもよい記憶媒体613に結合される。記憶媒体613は、また、キャッシュ(RAM)メモリを有する磁気ディスクドライブなど、それらまたは他の技術のいかなる組合せとして実装されてもよい。この特定の実施形態では、記憶媒体613は、コンピューティング装置601がその電源を切られているか、または電力がない期間中にデータを記憶するために使用される。
コンピューティング装置601はまた、コンピューティング装置601と1つまたは複数の他のコンピューティング装置との間の双方向通信を可能にする通信モジュール621を含む。通信モジュール621は、携帯電話ネットワーク、ブルートゥース通信、無線ローカルエリアネットワーク、または恐らく無線広域ネットワークなど、RFまたは他の無線通信を可能にするコンポーネントを含んでもよい。代替として、通信モジュール621は、イーサネット(登録商標)通信、RJ−11接続、ユニバーサルシリアルバス接続、IEEE6394(ファイアワイヤ)接続など、地上回線または有線ネットワーク通信を可能にするコンポーネントを含んでもよい。これらは、非網羅的リストを意味するものであり、他の多くの代替物が可能である。
オーディオユニット631は、アナログフォーマットとディジタルフォーマットとの間で信号を変換するように構成されたコンピューティング装置601のコンポーネントである。オーディオユニット631は、スピーカ632を使用して音を出力し、マイクロホン633から入力信号を受け取るためにコンピューティング装置601によって使用される。
図6は、一般にたいていの従来のコンピューティング装置で見られるいくつかのコンポーネントのみを例示する。特定の実装形態では非常に多くの他のコンポーネントも日常的に見られ、とある場合には、図6に示されたいくつかのコンポーネントが省略されることもあり得る。しかし、図6に示されたコンピューティング装置601は、今日では普通に見られる装置の典型である。
本発明は、特定の実施形態および実装形態に関して説明されてきたが、これらは例示的であり、本発明の範囲はこれらの実施形態に限定されないことを理解されたい。前述の諸実施形態に対する多くの変形形態、変更形態、追加形態、および改善形態が可能である。これらの変形形態、変更形態、追加形態、および改善形態は、添付の特許請求の範囲に詳述された本発明の範囲内にあると考えられる。
本発明の一実装形態による、アプリケーションおよびライブラリのインスタンスがそこで実行しているシステムメモリを示す図。 それぞれ1つまたは複数の関連付けられた信頼コードグループ(「TCG群」)を有する信頼されたエンティティ(「TE群」)の階層を示す概念図。 ライブラリがTEの制御下で特定のTCGのために承認されるように、コード開発者がTEと対話するサンプル開発環境を示す図。 本発明の一実装形態による、ライブラリを使用するアプリケーションがそこで実行する、ハンドヘルドコンピューティング装置などのコンピューティング装置を示す図。 アプリケーションとそのアプリケーションによってロードされたライブラリとの間の信頼を保証するための方法を全体的に示す動作流れ図。 本発明の諸実装形態がそこで特に適用可能であるサンプルコンピューティング装置のコアコンポーネントを全体的に示す機能ブロック図。

Claims (35)

  1. コードモジュール間の信頼を保証するための方法であって、
    機能のクラスを使用するアプリケーションを受け取ることを備え、前記アプリケーションは前記クラスを実行するために前記アプリケーションによって信頼された信頼コードグループ群(「TCG群」)のリストを含み、さらに、
    前記機能のクラスを実行するライブラリを受け取ることを備え、前記ライブラリは署名鍵を使用して署名され、前記署名は前記ライブラリをTCGに関連付け、前記TCGは信頼性の保証であり、さらに、
    前記ライブラリがロードされるようにするためにコールを開始すること、および
    前記ライブラリをロードする前に、前記ライブラリ上の前記署名が、前記ライブラリが前記リストアップされたTCG群のうちの1つのメンバであるかどうかを判定するために検証されるようにすることを備える方法。
  2. 前記署名が、前記TCGを識別するTCG IDに前記ライブラリを結びつけることによって、前記ライブラリを前記TCGに関連付ける、請求項1に記載の方法。
  3. 前記ライブラリに署名し検証するために公開鍵暗号が使用される、請求項1に記載の方法。
  4. 前記署名および検証は、証明書階層を使用することによって行われる、請求項3に記載の方法。
  5. 前記署名が検証されるようにすることが、前記TCG証明書が期限切れかどうかを判定することをさらに備える、請求項4に記載の方法。
  6. 前記署名が検証されるようにすることが、前記TCG証明書が取り消されているかどうかを判定することをさらに備える、請求項4に記載の方法。
  7. 前記署名が、ライブラリが署名されてTCGに入れられることの認可に関して責任を持つ信頼されたエンティティ(「TE」)に前記署名鍵を関連付ける証明書チェーンを介して前記ライブラリを前記TCGに関連付ける、請求項1に記載の方法。
  8. 前記ライブラリ上の前記署名が検証されるようにすることが、TEに関連付けられたルート証明書を使用して前記署名を検証することを備え、前記ルート証明書は前記署名の真正さ、および前記TEが前記ライブラリに署名して前記TCGに入れることを認可されていることを検証するために使用される、請求項1に記載の方法。
  9. 前記アプリケーションが、ユーザアプリケーション、スクリプト、ウェブページコンテンツ、マークアップコンテンツ、およびユーザインターフェースを備えるグループから選択された1つまたは複数のコードモジュールを備える、請求項1に記載の方法。
  10. 前記ライブラリが、共用ライブラリ、公開ライブラリ、動的にリンクされたライブラリ、静的にリンクされたライブラリ、拡張機能、スクリプト、構成、コンテンツ、ユーザインターフェース、およびリソースを備えるグループから選択された1つまたは複数のコードモジュールを備える、請求項1に記載の方法。
  11. ライブラリの信頼性を検証するための方法であって、
    前記ライブラリをロードする命令をアプリケーションから受け取ることを備え、前記アプリケーションは認可済み信頼コードグループ(TCG群)の関連付けられたリストを有し、各TCGはライブラリのグループに関連付けられた信頼の程度を表し、さらに、
    前記ライブラリをTCGに関連付けるディジタル署名を検出するために前記ライブラリを検査すること、
    前記ライブラリが前記アプリケーションと共に実行することを認可されているかどうかを判定するために、前記ライブラリの前記TCGを前記アプリケーションに関連付けられた認可済みTCGの前記リストと比較すること、および
    前記ライブラリが認可されている場合は、前記ライブラリをロードすることを備える方法。
  12. 前記ディジタル署名が、前記ディジタル署名を作成するために使用される署名鍵を、ライブラリが署名されて前記TCGに入れられることの認可に関して責任を持つ信頼されたエンティティ(「TE」)に関するルート証明書に関連付ける証明書チェーンを介して、前記ライブラリを前記TCGに関連付ける、請求項11に記載の方法。
  13. 前記ディジタル署名が、特定のTCGを識別するTCG IDに前記ライブラリを結びつけることによって、前記ライブラリを前記TCGに関連付ける、請求項11に記載の方法。
  14. 前記TCG IDが、整数値の範囲内の整数値を備え、前記整数値のうちの少なくとも1つが、前記少なくとも1つの整数値を使用することを認可するために評価されたライブラリのグループを識別するために使用されることを備える、請求項13に記載の方法。
  15. 前記TCGの前記ライブラリとの関連が真正であることを保証するために前記ディジタル署名の妥当性を確認することをさらに備える、請求項11に記載の方法。
  16. 前記ディジタル署名の妥当性を確認することが、前記ディジタル署名が真正であることを保証するために、信頼されたエンティティに関連付けられたルート証明書を使用することを備える、請求項15に記載の方法。
  17. 前記ディジタル署名の妥当性を確認することが、信頼されたエンティティが前記ライブラリに署名して前記TCGに入れることを認可されていることを検証することを備える、請求項15に記載の方法。
  18. 前記ライブラリが認可されていない場合は、前記ライブラリをロードしないことをさらに備える、請求項11に記載の方法。
  19. 前記アプリケーションが、ユーザアプリケーション、スクリプト、ウェブページコンテンツ、マークアップコンテンツ、およびユーザインターフェースを備えるグループから選択された1つまたは複数のコードモジュールを備える、請求項11に記載の方法。
  20. 前記ライブラリが、共用ライブラリ、公開ライブラリ、動的にリンクされたライブラリ、静的にリンクされたライブラリ、拡張機能、スクリプト、構成、コンテンツ、ユーザインターフェース、およびリソースを備えるグループから選択された1つまたは複数のコードモジュールを備える、請求項11に記載の方法。
  21. 前記アプリケーションからの前記命令が機能の特定のクラスを求める要求を備え、さらに、前記ライブラリが前記機能の特定のクラスを提供するライブラリのグループのうちの1つを備え、認可済みTCGに関連付けられる前記ライブラリに基づいて前記ライブラリのグループから前記ライブラリを選択するステップをさらに備える、請求項11に記載の方法。
  22. ライブラリの信頼性を検証するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、
    前記ライブラリをロードする命令をアプリケーションから受け取ることを備え、前記アプリケーションは認可済み信頼コードグループ(TCG群)の関連付けられたリストを有し、各TCGはライブラリのグループに関連付けられた信頼の程度を表し、さらに、
    前記ライブラリを有するTCGに前記ライブラリに関連付けるディジタル署名を検出するために前記ライブラリを検査すること、
    前記ライブラリが前記アプリケーションと共に実行することを認可されているかどうかを判定するために、前記ライブラリの前記TCGを前記アプリケーションに関連付けられた認可済みTCGの前記リストと比較すること、および
    前記ライブラリが認可されている場合には、前記ライブラリをロードすることを備えるコンピュータ可読媒体。
  23. 前記ディジタル署名が、前記ディジタル署名を作成するために使用される署名鍵をライブラリが署名されて前記TCGに入れられることの認可に関して責任を持つ信頼されたエンティティ(「TE」)に関するルート証明書に関連付ける証明書チェーンを介して、前記ライブラリを前記TCGに関連付ける、請求項22に記載のコンピュータ可読媒体。
  24. 前記ディジタル署名が、特定のTCGを識別するTCG IDに前記ライブラリを結びつけることによって、前記ライブラリを前記TCGに関連付ける、請求項22に記載のコンピュータ可読媒体。
  25. 前記TCG IDが整数値の範囲内の整数値を備え、前記整数値のうちの少なくとも1つが、前記少なくとも1つの整数値を使用することを認可するために評価されたライブラリのグループを識別するために使用されることを備える、請求項24に記載のコンピュータ可読媒体。
  26. 前記TCG IDの前記ライブラリとの関連が真正であることを保証するために前記ディジタル署名の妥当性を確認することをさらに備える、請求項24に記載のコンピュータ可読媒体。
  27. 前記ディジタル署名の妥当性を確認することが、前記ディジタル署名が真正であることを保証するために、信頼されたエンティティに関連付けられたルート証明書を使用することを備える、請求項26に記載のコンピュータ可読媒体。
  28. 前記ディジタル署名の妥当性を確認することが、信頼されたエンティティが前記ライブラリに署名して前記TCGに入れることを認可されていることを検証することを備える、請求項26に記載のコンピュータ可読媒体。
  29. 前記ライブラリが認可されていない場合は、前記ライブラリをロードしないことをさらに備える、請求項22に記載のコンピュータ可読媒体。
  30. 前記アプリケーションが、ユーザアプリケーション、スクリプト、ウェブページコンテンツ、マークアップコンテンツ、およびユーザインターフェースを備えるグループから選択された1つまたは複数のコードモジュールを備える、請求項22に記載のコンピュータ可読媒体。
  31. 前記ライブラリが、共用ライブラリ、公開ライブラリ、動的にリンクされたライブラリ、静的にリンクされたライブラリ、拡張機能、スクリプト、構成、コンテンツ、ユーザインターフェース、およびリソースを備えるグループから選択された1つまたは複数のコードモジュールを備える、請求項22に記載のコンピュータ可読媒体。
  32. 前記アプリケーションからの前記命令が機能の特定のクラスを求める要求を備え、さらに、前記ライブラリが前記機能の特定のクラスを提供するライブラリのグループのうちの1つを備え、前記コンピュータ実行可能命令が、認可済みTCGに関連付けられる前記ライブラリに基づいて前記ライブラリのグループから前記ライブラリを選択することをさらに備える、請求項22に記載のコンピュータ可読媒体。
  33. ライブラリの信頼性を検証するための機器であって、
    前記ライブラリをロードする命令をアプリケーションから受け取るための手段を備え、前記アプリケーションは認可済み信頼コードグループ(TCG群)の関連付けられたリストを有し、各TCGはライブラリのグループに関連付けられた信頼の程度を表し、さらに、
    前記ライブラリをTCGに関連付けるディジタル署名を検出するために前記ライブラリを検査するための手段、さらに、
    前記ライブラリが前記アプリケーションと共に実行することを認可されているかどうかを判定するために、前記ライブラリの前記TCGを前記アプリケーションに関連付けられた認可済みTCG群の前記リストと比較するための手段、および
    前記ライブラリが認可されている場合は、前記ライブラリをロードするための手段を備える機器。
  34. 前記ライブラリが認可されていない場合は、前記ライブラリをロードしないことをさらに備える、請求項33に記載の機器。
  35. ライブラリの信頼性を検証するための機器であって、
    アプリケーションおよびライブラリが記憶される記憶媒体と、
    プロセッサと、
    前記プロセッサおよび前記記憶媒体に結合され、前記プロセッサに、
    前記ライブラリをロードする命令をアプリケーションから受け取らせ、前記アプリケーションは認可済みTCG群の関連付けられたリストを有し、各TCGはライブラリのグループに関連付けられた信頼の程度を表し、さらに、
    前記ライブラリをTCGに関連付けるディジタル署名を検出するために前記ライブラリを検査させ、
    前記ライブラリが前記アプリケーションと共に実行することを認可されているかどうかを判定するために、前記ライブラリの前記TCGを前記アプリケーションに関連付けられた認可済みTCGの前記リストと比較させ、
    前記ライブラリが認可されている場合は、前記ライブラリをロードさせるように動作可能なコンピュータ実行可能コンポーネントが常駐するメモリと、を備える機器。
JP2008556564A 2006-02-23 2007-02-23 信頼コードグループ Active JP5173844B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/361,230 2006-02-23
US11/361,230 US8020001B2 (en) 2006-02-23 2006-02-23 Trusted code groups
PCT/US2007/062749 WO2007101126A2 (en) 2006-02-23 2007-02-23 Trusted code groups

Publications (2)

Publication Number Publication Date
JP2009528596A true JP2009528596A (ja) 2009-08-06
JP5173844B2 JP5173844B2 (ja) 2013-04-03

Family

ID=38294072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008556564A Active JP5173844B2 (ja) 2006-02-23 2007-02-23 信頼コードグループ

Country Status (6)

Country Link
US (1) US8020001B2 (ja)
EP (1) EP1987464A2 (ja)
JP (1) JP5173844B2 (ja)
KR (1) KR101033620B1 (ja)
CN (1) CN101385033B (ja)
WO (1) WO2007101126A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129451A (ja) * 2007-11-20 2009-06-11 Korea Electronics Telecommun 悪性コードによって挿入されたダイナミックリンクライブラリ検出装置及び方法
JP2015011518A (ja) * 2013-06-28 2015-01-19 京セラドキュメントソリューションズ株式会社 アプリケーション実行時間短縮方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496757B2 (en) * 2002-01-14 2009-02-24 International Business Machines Corporation Software verification system, method and computer program element
US8490184B2 (en) * 2007-04-26 2013-07-16 International Business Machines Corporation Verification for computer programs that include external call references
US8079082B2 (en) * 2008-06-30 2011-12-13 Ebay, Inc. Verification of software application authenticity
US8745153B2 (en) * 2009-02-09 2014-06-03 Apple Inc. Intelligent download of application programs
US9805196B2 (en) 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
US8433296B2 (en) 2009-05-01 2013-04-30 Ryan Hardin Exclusive delivery of content within geographic areas
CN102682243A (zh) * 2011-03-11 2012-09-19 北京市国路安信息技术有限公司 一种构建可信java虚拟机平台的方法
US8832447B2 (en) * 2011-08-10 2014-09-09 Sony Corporation System and method for using digital signatures to assign permissions
US9336137B2 (en) 2011-09-02 2016-05-10 Google Inc. System and method for performing data management in a collaborative development environment
US8738706B1 (en) 2011-11-16 2014-05-27 Google Inc. Systems and methods for collaborative document editing
US9971896B2 (en) * 2011-12-30 2018-05-15 International Business Machines Corporation Targeted security testing
CN103491056B (zh) * 2012-06-12 2017-12-26 中兴通讯股份有限公司 应用权限的控制方法及装置
FR2992083B1 (fr) * 2012-06-19 2014-07-04 Alstom Transport Sa Calculateur, ensemble de communication comportant un tel calculateur, systeme de gestion ferroviaire comportant un tel ensemble, et procede de fiabilisation de donnees dans un calculateur
US8954732B1 (en) * 2012-06-27 2015-02-10 Juniper Networks, Inc. Authenticating third-party programs for platforms
CN104252597B (zh) * 2013-06-25 2017-05-31 中国银联股份有限公司 一种指示移动设备操作环境的方法和能够指示操作环境的移动设备
US9519758B2 (en) * 2014-02-04 2016-12-13 Pegasus Media Security, Llc System and process for monitoring malicious access of protected content
CN103916395B (zh) * 2014-04-09 2017-04-19 北京京东尚科信息技术有限公司 一种服务调用方法、设备及系统
FR3028071B1 (fr) * 2014-11-05 2016-11-04 Oberthur Technologies Appareil electronique et procede mis en œuvre dans un tel appareil electronique
US9536080B2 (en) * 2015-05-29 2017-01-03 Apple Inc. Method for validating dynamically loaded libraries using team identifiers
US11809571B2 (en) * 2021-06-14 2023-11-07 Cisco Technology, Inc. Vulnerability analysis using continuous application attestation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223235A (ja) * 2001-11-26 2003-08-08 Matsushita Electric Ind Co Ltd アプリケーション認証システム
WO2004006075A1 (ja) * 2002-07-09 2004-01-15 Fujitsu Limited 開放型汎用耐攻撃cpu及びその応用システム
US20040139342A1 (en) * 2003-01-14 2004-07-15 International Business Machines Corporation Method and apparatus for protecting external call references
WO2005125081A2 (en) * 2004-06-12 2005-12-29 Microsoft Corporation Securing software

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182279B1 (en) * 1997-08-12 2001-01-30 International Business Machines Corporation Method and apparatus for storing templates in a component system
US6233577B1 (en) * 1998-02-17 2001-05-15 Phone.Com, Inc. Centralized certificate management system for two-way interactive communication devices in data networks
US7096497B2 (en) 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
CN100347986C (zh) 2003-11-24 2007-11-07 华中科技大学 一种身份认证的方法和系统
US7568096B2 (en) * 2004-04-23 2009-07-28 Microsoft Corporation Rendering digital content in a content protection system according to a plurality of chained digital licenses
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223235A (ja) * 2001-11-26 2003-08-08 Matsushita Electric Ind Co Ltd アプリケーション認証システム
WO2004006075A1 (ja) * 2002-07-09 2004-01-15 Fujitsu Limited 開放型汎用耐攻撃cpu及びその応用システム
US20040139342A1 (en) * 2003-01-14 2004-07-15 International Business Machines Corporation Method and apparatus for protecting external call references
WO2005125081A2 (en) * 2004-06-12 2005-12-29 Microsoft Corporation Securing software

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129451A (ja) * 2007-11-20 2009-06-11 Korea Electronics Telecommun 悪性コードによって挿入されたダイナミックリンクライブラリ検出装置及び方法
JP2015011518A (ja) * 2013-06-28 2015-01-19 京セラドキュメントソリューションズ株式会社 アプリケーション実行時間短縮方法

Also Published As

Publication number Publication date
KR20080097230A (ko) 2008-11-04
EP1987464A2 (en) 2008-11-05
KR101033620B1 (ko) 2011-05-11
WO2007101126A2 (en) 2007-09-07
US8020001B2 (en) 2011-09-13
JP5173844B2 (ja) 2013-04-03
US20070198841A1 (en) 2007-08-23
WO2007101126A3 (en) 2007-10-25
CN101385033A (zh) 2009-03-11
CN101385033B (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
JP5173844B2 (ja) 信頼コードグループ
US8196213B2 (en) Verification of un-trusted code for consumption on an insecure device
JP4689945B2 (ja) リソースアクセス方法
CN102279760B (zh) 利用初始保护组件来进行设备引导
WO2019144640A1 (zh) 一种提高可信应用程序安全的方法
JP4689946B2 (ja) 安全なデータを使用して情報処理を実行するシステム
JP5061110B2 (ja) 信頼性のある移動電話のための簡単で、拡張可能で且つ構成可能なセキュアなブート
US8024564B2 (en) Automating configuration of software applications
US8122256B2 (en) Secure bytecode instrumentation facility
US20060236122A1 (en) Secure boot
US20050132209A1 (en) Certificate based digital rights management
US20050120219A1 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable process
US20070240194A1 (en) Scoped permissions for software application deployment
US20130031371A1 (en) Software Run-Time Provenance
JP2010073193A (ja) モバイルインターネットデバイス(mid)でuefiファームウェア及びuefiアウェアなオペレーティングシステムのセキュアなブートのためのシステム及び方法
WO2007148602A1 (ja) 情報処理端末および状態通知方法
Al Rahat et al. Oauthlint: An empirical study on oauth bugs in android applications
CN114651253A (zh) 用于策略强制实施的虚拟环境类型验证
Zhang et al. SecureBus: towards application-transparent trusted computing with mandatory access control
Haldar et al. Symmetric behavior-based trust: A new paradigm for Internet computing
CN116776311A (zh) 分级验证启动方法和装置
CN117874773A (zh) 基于安全等级管控策略的操作系统安全启动方法及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110921

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110929

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111021

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111028

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121227

R150 Certificate of patent or registration of utility model

Ref document number: 5173844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250