JP2017506778A - コンピューティングデバイスによるアプリケーションの使用の認証 - Google Patents

コンピューティングデバイスによるアプリケーションの使用の認証 Download PDF

Info

Publication number
JP2017506778A
JP2017506778A JP2016547148A JP2016547148A JP2017506778A JP 2017506778 A JP2017506778 A JP 2017506778A JP 2016547148 A JP2016547148 A JP 2016547148A JP 2016547148 A JP2016547148 A JP 2016547148A JP 2017506778 A JP2017506778 A JP 2017506778A
Authority
JP
Japan
Prior art keywords
application
digest
processor
unique
computing device
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
JP2016547148A
Other languages
English (en)
Other versions
JP6440721B2 (ja
JP2017506778A5 (ja
Inventor
マリア・エル・ミランダ
カジ・ワイ・バシール
スレシュ・ボラプラガダ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017506778A publication Critical patent/JP2017506778A/ja
Publication of JP2017506778A5 publication Critical patent/JP2017506778A5/ja
Application granted granted Critical
Publication of JP6440721B2 publication Critical patent/JP6440721B2/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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)

Abstract

アプリケーションを使用するのを認証する装置および方法が開示される。コンピューティングデバイスが、アプリケーションを利用することができ、セキュアメモリおよびプロセッサを含むことができる。プロセッサは、最初のブートアップ時にアプリケーションのための固有ダイジェストを生成し、固有ダイジェストをセキュアメモリに記憶し、後続のブートアップ時にアプリケーションのためのアプリケーションダイジェストを計算し、計算されたアプリケーションダイジェストが記憶された固有ダイジェストと一致する場合、アプリケーションの使用を認証することができる。

Description

本発明はコンピューティングデバイスによるアプリケーションの使用を認証する装置および方法に関する。
通常、コンピューティングデバイスのためのアプリケーションは、コンピューティングデバイスに結び付けられ、使用するために認証される。この実施態様では、ブートアップ時にアプリケーションがロードされるとき、アプリケーションを認証するために署名ダイジェストおよびアプリケーションダイジェストが生成され、そのいずれも多くの場合にチップのシリアル番号を利用する。署名ダイジェストは、ブートROMまたはワンタイムプログラマブルメモリに記憶される公開鍵を用いて解読された署名に基づく。アプリケーションダイジェストは、アプリケーションのハッシュ関数と、シリアル番号とを組み合わせて生成される。署名ダイジェストは、ローカルに計算された計算ハッシュダイジェストと比較され、それらのダイジェストが同じである場合、アプリケーションが認証される。そうでない場合、アプリケーションは認証されない。
残念なことに、チップベンダの固有のシリアル番号に基づく静的署名は、面倒であることがわかっている。
本発明の態様は、アプリケーションの使用を認証する装置および方法に関連することができる。コンピューティングデバイスが、アプリケーションを利用することができ、セキュアメモリおよびプロセッサを含むことができる。プロセッサは、最初のブートアップ時にアプリケーションのための固有ダイジェストを生成し、固有ダイジェストをセキュアメモリに記憶し、後続のブートアップ時にアプリケーションのためのアプリケーションダイジェストを計算し、計算されたアプリケーションダイジェストが記憶された固有ダイジェストと一致する場合、アプリケーションの使用を認証することができる。
本発明の態様を実施できるコンピューティングデバイスの図である。 アプリケーションの使用を認証されるか否かを判断するプロセスの一例を示す流れ図である。 アプリケーションの使用を認証するか、または認証しないプロセスを実施するために利用することができる構成要素を示すブロック図である。 計算されたアプリケーションダイジェストを求め、アプリケーションの使用を認証するか、または認証しない際に利用される機能に関連するプロセスの一例を示す図である。
「例示的」または「例」という単語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」または「例」として本明細書に記載される任意の態様または実施形態は、他の態様または実施形態に比べて好ましいか、または有利であると必ずしも解釈されるべきではない。
本明細書において用いられるときに、「コンピューティングシステムまたはデバイス」という用語は、限定はしないが、ラップトップおよびデスクトップコンピュータ、タブレット、スマートフォン、テレビ、家庭電化製品、セルラー電話、パーソナルテレビデバイス、携帯情報端末(PDA)、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアインターネット対応セルラー電話、グローバルポジショニングシステム(GPS)レシーバ、ワイヤレスゲームコントローラ、車両(たとえば、自動車)に内蔵されるレシーバ、インタラクティブゲームデバイス、ノートブック、スマートブック、ネットブック、モバイルテレビデバイス、または任意のデータ処理装置を含む、任意の形のプログラマブルコンピュータデバイスを指している。
これ以降詳細に説明される、アプリケーションの使用を認証するために利用することができる一例のコンピューティングデバイス100が、図1に示される。コンピューティングデバイス100は、バス105を介して電気的に結合することができる(または必要に応じて他の方法で通信することができる)ハードウェア要素を備えるように図示されている。ハードウェア要素は、限定はしないが、1つもしくは複数の汎用プロセッサおよび/または1つもしくは複数の専用プロセッサ(デジタル信号処理チップ、グラフィックス加速プロセッサなど)を含む1つもしくは複数のプロセッサ110と、1つもしくは複数の入力デバイス115(たとえば、キーボード、キーパッド、タッチスクリーン、マウスなど)と、少なくとも1つのディスプレイデバイス121を含み、さらに、限定はしないが、スピーカ、プリンタなどを含むことができる1つもしくは複数の出力デバイス120とを含むことができる。さらに、プロセッサ110は、通常モード112およびセキュアモード114において動作することができる。
コンピューティングデバイス100は、限定はしないが、ローカルおよび/またはネットワークアクセス可能記憶装置を含むことができ、かつ/あるいは限定はしないが、ディスクドライブ、ドライブアレイ、光記憶デバイス、プログラム可能、フラッシュ書換え可能などとすることができる、ランダムアクセスメモリ(「RAM」)および/もしくはリードオンリーメモリ(「ROM」)などの固体記憶デバイス、ならびに/または同様のものを含むことができる、1つまたは複数の非一時的記憶デバイス125をさらに含む(かつ/または1つまたは複数の非一時的記憶デバイス125と通信する)ことができる。そのような記憶デバイスは、限定はしないが、種々のファイルシステム、データベース構造などを含む、任意の適切なデータストアを実現するように構成することができる。
また、コンピューティングデバイス100は、限定はしないが、モデム、ネットワークカード(ワイヤレスまたは有線)、赤外線通信デバイス、ワイヤレス通信デバイス、および/またはチップセット(BlueTooth(登録商標)デバイス、802.11デバイス、Wi-Fiデバイス、WiMAXデバイス、セルラー通信デバイスなど)などを含むことができる通信サブシステム130をも含むことができる。通信サブシステム130は、ネットワーク、他のコンピュータシステム、および/または本明細書において説明される任意の他のデバイスとデータを交換できるようにする場合がある。多くの実施形態では、コンピューティングデバイス100は、先に説明されたように、RAMまたはROMデバイスを含むことができる作業メモリ135をさらに備える。また、コンピューティングデバイス100は、後にさらに詳細に説明されるように、アプリケーションの使用を認証するのを助けるセキュアメモリ137を含むことができる。
コンピューティングデバイス100はまた、オペレーティングシステム140、アプリケーション145、デバイスドライバ、実行可能ライブラリおよび/または他のコードを含む、作業メモリ135内に現在配置されているように示される、ソフトウェア要素も含むことができる。一実施形態では、本明細書において説明されるような本発明の実施形態を実施するために、方法を実施し、および/またはシステムを構成するように、アプリケーションを設計することができる。単なる例として、以下に論じられる方法に関連して説明される1つまたは複数の手順は、コンピュータデバイス(および/またはコンピュータデバイス内のプロセッサ)によって実行可能なコードおよび/または命令として実現することができ、本発明の実施形態によれば、一態様において、その後、そのようなコードおよび/または命令は、説明される方法に従って1つまたは複数の動作を実行するように汎用コンピュータ(たとえば、コンピューティングデバイス)を構成し、および/または適応させるために使用することができる。
これらの命令および/またはコードのセットは、上記の記憶デバイス125などの非一時的コンピュータ可読記憶媒体に記憶される場合がある。場合によっては、記憶媒体は、コンピューティングデバイス100などのコンピュータシステム内に組み込まれる場合がある。他の実施形態では、記憶媒体は、そこに記憶された命令/コードを用いて汎用コンピュータをプログラムし、構成し、および/または適応させるために使用できるように、コンピュータシステムから分離することができ(たとえば、コンパクトディスクなどのリムーバブルメディア)、かつ/またはインストールパッケージにおいて提供することができる。これらの命令は、コンピュータ制御のコンピューティングデバイス100によって実行可能である実行可能コードの形をとることができ、ならびに/あるいは(たとえば、種々の一般的に入手可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを用いて)コンピューティングデバイス100上でのコンパイルおよび/またはインストール時に、実行可能コードの形態をとるソースコードおよび/またはインストール可能コードの形をとることができる。
特定の要件に従ってかなりの変更を加えることができることは、当業者には明らかであろう。たとえば、カスタマイズされたハードウェアを使用することもでき、および/または、特定の要素は、ハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、または両方において実現することができる。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が用いられる場合もある。
先に説明されたように、現存の従来の方法による(たとえば、チップベンダからの)プロセッサの固有シリアル番号に基づく各ブートアップ時のアプリケーションの静的署名は、面倒であることがわかっている。説明されるように、本発明の実施形態は、ブートアップのためにプロセッサのシリアル番号に基づく署名を必要とはしない。本発明の態様は、署名を必要とすることなく、アプリケーションをコンピューティングデバイスに動的に結び付ける装置および方法を提供する。
詳細には、本発明の態様は、アプリケーションの使用を認証する装置および方法に関連することができる。さらに詳細に説明されるような、一実施形態では、コンピューティングデバイス100は、アプリケーション145の使用を認証するために、セキュアメモリ137およびプロセッサ110を含むことができる。プロセッサ110は、最初のブートアップ時にアプリケーション145のための固有ダイジェストを生成し、固有ダイジェストをセキュアメモリ137に記憶し、後続のブートアップ時にアプリケーション145のためのアプリケーションダイジェストを計算し、計算されたアプリケーションダイジェストが記憶された固有ダイジェストと一致する場合、アプリケーションの使用を認証することを含む、動作を実行するためにセキュアモード114において動作することができる。このようにして、アプリケーション145は、最初のブートアップ時にコンピューティングデバイス100に結び付けることができる。説明されるように、アプリケーション145は、アプリケーションのハッシュ関数およびプロセッサ110のシリアル番号に基づいてアプリケーションのための固有ダイジェストを計算し、その固有ダイジェストをセキュアメモリ137のようなセキュア記憶域に保存することによって、最初のブートアップ時にコンピューティングデバイス100に動的に結び付けることができる。
さらに図2を参照すると、本発明の実施形態を実施する方法プロセス200が以下に説明される。ブロック202において、アプリケーションの最初のブートアップ時にセキュアモード114において動作するプロセッサ110によって、アプリケーション145のための固有ダイジェストが生成される。次に、ブロック204において、セキュアモード114において動作するプロセッサ110によって指示されるのに応じて、固有ダイジェストがセキュアメモリ137に記憶される。ブロック206において、後続のブートアップ時に、セキュアモード114において動作するプロセッサ110が、アプリケーション145のためのアプリケーションダイジェストを計算する。ブロック208において、セキュアモード114において動作するプロセッサ110が、計算されたダイジェストがセキュアメモリ137に記憶された記憶固有ダイジェストと一致すると判断する場合、アプリケーション145の使用が認証される(ブロック210)。しかしながら、計算されたダイジェストがセキュアメモリ137に記憶された固有ダイジェストと一致しない場合、アプリケーション145の使用は認証されない(ブロック212)。
さらに図3を参照すると、アプリケーションを認証するか、または認証しないためのプロセスを実施するために利用することができる構成要素を示すブロック図が以下に説明される。この例では、プロセッサ110は、セキュアブートローダ312およびセキュアオーセンティケータ320のセキュア動作を含むセキュア動作を実行する信頼ゾーン310を生成するために、セキュアモード114において動作する。たとえば、最初のブートアップ時に、セキュアブートローダ312が、コンピューティングデバイスにロードされているアプリケーション145のための固有ダイジェストを生成する。たとえばこれは、そのコンピューティングデバイス上で使用するためのライセンスされたアプリケーションをロードするためにコンピューティングデバイス製造業者によって行われる場合がある。セキュアブートローダ312は、最初のブートアップのための固有ダイジェスト325がアプリケーションのための固有ダイジェストエントリ330としてセキュアメモリ137に記憶されるように指示することができる。(たとえば、コンピューティングデバイスの購入者による、)アプリケーション145の後続のブートアップ時に、オーセンティケータ320が、アプリケーション145のためのアプリケーションダイジェストを計算し、そのダイジェストを、アプリケーションのためにセキュアメモリ137にあらかじめ記憶されている固有ダイジェスト327と比較することができる。オーセンティケータ320が、計算されたアプリケーションダイジェストが、アプリケーションのためにセキュアメモリ137に記憶された記憶固有ダイジェスト327と一致すると判断する場合、アプリケーション145は、コンピューティングデバイスによって使用するのを認証される(340)。一方、オーセンティケータ320が、計算されたアプリケーションダイジェストが、アプリケーションのためにセキュアメモリ137に記憶された記憶固有ダイジェスト327と一致しないと判断する場合、アプリケーション145は、コンピューティングデバイスによって使用するのを認証されない(342)。セキュアモード114において動作するプロセッサ110が、先に説明されたセキュアブートローダ312およびオーセンティケータ320の動作を実施できることを理解されたい。
機能、動作および構成要素に関する種々の例示的な実施形態が以下に説明される。たとえば、最初のブートアップのための固有ダイジェスト325は、アプリケーション145の少なくともハッシュ関数に基づいて生成することができる。さらに、最初のブートアップのための固有ダイジェスト325は、プロセッサに関連付けられるシリアル番号325と、アプリケーションのハッシュ関数との連結にさらに基づくことができる。最初のブートアップのためのこの固有ダイジェストは、アプリケーションのための固有ダイジェストエントリ330として、セキュアメモリ137に記憶することができる。その後、後続のブートアップ時に、プロセッサに関連付けられるシリアル番号325およびアプリケーション145のハッシュ関数の連結に基づいて、計算されたアプリケーションダイジェストが求められる。先に説明されたように、オーセンティケータ320が、計算されたアプリケーションダイジェストが、アプリケーションのためにセキュアメモリ137に記憶された記憶固有ダイジェスト327と一致すると判断する場合、アプリケーション145は、コンピューティングデバイスによって使用するのを認証される(340)。一方、オーセンティケータ320が、計算されたアプリケーションダイジェストが、アプリケーションのためにセキュアメモリ137に記憶された記憶固有ダイジェスト327と一致しないと判断する場合、アプリケーション145は、コンピューティングデバイスによって使用するのを認証されない(342)。
一実施形態では、ハッシュ関数はセキュアハッシュアルゴリズムとすることができる。さらに、セキュアメモリ137は、リプレイ保護メモリブロックのような、保護メモリブロックを含むことができる。しかしながら、任意のタイプのセキュアまたは保護タイプのメモリまたは記憶装置を利用できることを理解されたい。
図4をさらに参照すると、計算されたアプリケーションダイジェストを求めること、およびアプリケーションを認証すること、もしくは認証しないことに関連するプロセス400の一例が以下に説明される。一実施形態では、プロセス400において見ることができるように、計算されたアプリケーションダイジェスト415の第1の反復を生成するために、セキュアハッシュアルゴリズム410によって、後続のブートアップ時に、アプリケーション402およびヘッダ404の組合せが処理される。次に、計算されたアプリケーションダイジェストを生成するために、計算されたアプリケーションダイジェスト415の第1の反復が、プロセッサに関連付けられるシリアル番号325と連結される(ブロック420)。決定ブロック430において、オーセンティケータが、計算されたアプリケーションダイジェストが、そのアプリケーションのためにセキュアメモリ137に記憶された記憶固有ダイジェスト330と一致するか否かを判断し、一致する場合、アプリケーションは、コンピューティングデバイスによって使用するのを認証される(450)。一方、決定ブロック430において、オーセンティケータが、計算されたアプリケーションダイジェストが、アプリケーションのためにセキュアメモリ137に記憶された記憶固有ダイジェスト327と一致しないと判断する場合、アプリケーション145は、コンピューティングデバイスによって使用するのを認証されない(455)。
したがって、先に説明されたように、最初のブートアップ時に、セキュアブートローダ312は最初にアプリケーション145を認証し、アプリケーションのための固有ダイジェスト330をセキュアメモリ137に記憶する。(プロセッサのシリアル番号で署名することなどの)署名プロセスは不要である。さらに、後続のブートアップ時のいずれにおいても、認証のための署名プロセスは不要である。先に説明されたように、後続のブートアップにおいて、セキュアブートローダ312が、アプリケーション145を認証することができる。ハッシュアルゴリズムを用いてアプリケーションのダイジェストが計算されるとともに、最初のブートアップ時にセキュアメモリ137に保存され、記憶された固有ダイジェスト330と比較することができる。したがって、各アプリケーションの署名は不要である。これは、アプリケーションの認証における時間効率を著しく改善する。
これまでに説明された本発明の態様は、先に説明されたように、デバイス(たとえば、コンピューティングデバイス100)のプロセッサ(たとえば、プロセッサ110)による命令の実行に関連して実施される場合があることを理解されたい。具体的には、限定はしないがプロセッサを含む、デバイスの回路が、本発明の実施形態による方法またはプロセス(たとえば、図2〜図4のプロセスおよび機能)を実行するために、プログラム、ルーチンの制御下、または命令の実行下で動作することができる。たとえば、そのようなプログラムは、(たとえば、メモリおよび/または他のロケーションに記憶される)ファームウェアまたはソフトウェアにおいて実現される場合があり、デバイスのプロセッサおよび/または他の回路によって実現される場合がある。さらに、プロセッサ、マイクロプロセッサ、回路、コントローラなどの用語は、ロジック、コマンド、命令、ソフトウェア、ファームウェア、機能などを実行することが可能な任意のタイプのロジックまたは回路を指すことを理解されたい。
デバイスがモバイルデバイスまたはワイヤレスデバイスであるとき、それらのデバイスは、任意の適切なワイヤレス通信技術に基づくか、または別の方法でその技術をサポートするワイヤレスネットワークを通じて1つまたは複数のワイヤレス通信リンクを介して通信できることを理解されたい。たとえば、いくつかの態様では、ワイヤレスデバイスおよび他のデバイスは、ワイヤレスネットワークを含むネットワークと関連付けることができる。いくつかの態様では、そのネットワークは、ボディエリアネットワークまたはパーソナルエリアネットワーク(たとえば超広帯域ネットワーク)を含むことができる。いくつかの態様では、ネットワークは、ローカルエリアネットワークまたはワイドエリアネットワークを含む場合がある。ワイヤレスデバイスは、様々なワイヤレス通信技術、プロトコル、またはたとえば3G、LTE、Advanced LTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAXおよびWiFiなどの規格のうちの1つまたは複数をサポートすることができるか、または別の方法で使用することができる。同様に、ワイヤレスデバイスは、様々な対応する変調方式または多重化方式のうちの1つまたは複数をサポートすることができるか、または別の方法で使用することができる。したがって、ワイヤレスデバイスは、上記または他のワイヤレス通信技術を使用して、1つまたは複数のワイヤレス通信リンクを確立し、その通信リンクを介して通信するのに適した構成要素(たとえばエアインターフェース)を含むことができる。たとえば、デバイスは、ワイヤレス媒体を介して通信するのを容易にする種々の構成要素(たとえば、信号発生器およびシグナルプロセッサ)を含むことができる、関連するトランスミッタおよびレシーバ構成要素(たとえば、トランスミッタおよびレシーバ)を有するワイヤレストランシーバを備えることができる。よく知られているように、それゆえ、モバイルワイヤレスデバイスは、他のモバイルデバイス、携帯電話、他の有線およびワイヤレスコンピュータ、インターネットウェブサイトなどとワイヤレスに通信することができる。
本明細書の教示は、様々な装置(たとえば、デバイス)に組み込む(たとえば、それらの装置内に実装するか、またはそれらの装置によって実行する)ことができる。たとえば、本明細書において教示される1つまたは複数の態様は、電話(たとえば、セルラー電話)、携帯情報端末(「PDA」)、タブレット、モバイルコンピュータ、ラップトップコンピュータ、エンターテインメントデバイス(たとえば、音楽デバイスもしくはビデオデバイス)、ヘッドセット(たとえば、ヘッドフォン、イヤピースなど)、医療デバイス(たとえば、生体センサ、心拍数モニタ、歩数計、EKGデバイスなど)、ユーザI/Oデバイス、コンピュータ、有線コンピュータ、固定コンピュータ、デスクトップコンピュータ、サーバ、店頭デバイス、セットトップボックス、または任意の他の適切なデバイスに組み込まれる場合がある。これらのデバイスは、異なる電力要件およびデータ要件を有する場合がある。
いくつかの態様では、ワイヤレスデバイスは、通信システムのためのアクセスデバイス(たとえばWi-Fiアクセスポイント)を含む場合がある。そのようなアクセスデバイスは、たとえば、有線またはワイヤレスの通信リンクを介しての別のネットワーク(たとえば、インターネットまたはセルラーネットワークなどのワイドエリアネットワーク)への接続を提供することができる。したがって、アクセスデバイスは、別のデバイス(たとえばWiFi局)が他のネットワークまたは何らかの他の機能にアクセスできるようにする場合がある。
様々な異なる技術および技法のいずれかを使用して情報および信号が表現される場合があることを当業者は理解されよう。たとえば上の説明全体を通して参照される場合があるデータ、命令、コマンド、情報、信号、ビット、記号およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表される場合がある。
本明細書において開示される実施形態に関連して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実現される場合があることは、当業者はさらに理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、種々の例示的構成要素、ブロック、モジュール、回路、およびステップが、これまでその機能に関して一般的に説明されてきた。そのような機能が、ハードウェアとして実現されるか、ソフトウェアとして実現されるかは、特定の適用例およびシステム全体に課される設計制約によって決まる。当業者は、説明された機能を、特定の適用例ごとに様々なやり方で実施することができるが、そのような実施態様の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書において開示される実施形態に関連して説明される種々の例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途用集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別のゲートもしくはトランジスタロジック、個別のハードウェア構成要素、または本明細書において説明された機能を果たすように設計されたこれらの任意の組合せを用いて、実現されるか、または実行される場合がある。汎用プロセッサはマイクロプロセッサとすることができるが、代替形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連結した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現することができる。
本明細書において開示される実施形態との関連において説明された方法またはアルゴリズムのステップは、ハードウェアにおいて直接に、または、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこの2つの組合せにおいて具現化される場合がある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意のその他の形の記憶媒体内に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み出し、かつ、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替形態では、記憶媒体はプロセッサと一体にすることができる。プロセッサおよび記憶媒体はASIC内に存在する場合がある。ASICは、ユーザ端末内に存在する場合がある。代替形態では、プロセッサおよび記憶媒体は、ユーザ端末内の個別の構成要素として存在する場合がある。
1つまたは複数の例示的な実施形態では、説明された機能が、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せの形で実現することができる。コンピュータプログラム製品としてソフトウェアにおいて実現される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶することができるか、またはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセス可能である任意の入手可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形において所望のプログラムコードを搬送もしくは記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。また、あらゆる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ディスク(disk)およびディスク(disc)は、本明細書において使用されるときに、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲の中に含まれるべきである。
開示された実施形態のこれまでの説明は、当業者が本発明を作製または使用できるようにするために提供される。これらの実施形態に対する種々の変更形態が、当業者には容易に理解され、本明細書において規定される一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用することができる。したがって、本発明は、本明細書において示される実施形態に限定されるものではなく、本明細書において開示される原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
100 コンピューティングデバイス
105 バス
110 プロセッサ
112 通常モード
114 セキュアモード
115 入力デバイス
120 出力デバイス
121 ディスプレイデバイス
125 非一時的記憶デバイス
130 通信サブシステム
135 作業メモリ
137 セキュアメモリ
140 オペレーティングシステム
145 アプリケーション
310 信頼ゾーン
312 セキュアブートローダ
320 セキュアオーセンティケータ
325 最初のブートアップ
325 シリアル番号
327 固有ダイジェスト
330 固有ダイジェストエントリ
340 認証される
342 認証されない
400 プロセス
402 アプリケーション
404 ヘッダ
410 セキュアハッシュアルゴリズム
415 計算されたアプリケーションダイジェスト
450 認証される
455 認証されない

Claims (20)

  1. コンピューティングデバイスであって、
    セキュアメモリと、
    プロセッサとを備え、前記プロセッサは、
    最初のブートアップ時にアプリケーションのための固有ダイジェストを生成し、
    前記固有ダイジェストを前記セキュアメモリに記憶し、
    後続のブートアップ時に前記アプリケーションのためのアプリケーションダイジェストを計算し、
    前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致する場合、前記アプリケーションを使用するのを認証する、コンピューティングデバイス。
  2. 前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致しない場合、前記アプリケーションは使用するのを認証されない、請求項1に記載のコンピューティングデバイス。
  3. 前記固有ダイジェストは、前記最初のブートアップ時に前記アプリケーションの少なくともハッシュ関数に基づいて生成される、請求項1に記載のコンピューティングデバイス。
  4. 前記固有ダイジェストは、前記プロセッサに関連付けられるシリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づいてさらに生成される、請求項3に記載のコンピューティングデバイス。
  5. 後続のブートアップ時に前記計算されたアプリケーションダイジェストは、前記プロセッサに関連付けられる前記シリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づく、請求項4に記載のコンピューティングデバイス。
  6. アプリケーションを使用するのを認証する方法であって、
    最初のブートアップ時に前記アプリケーションのための固有ダイジェストを生成するステップと、
    前記固有ダイジェストをセキュアメモリに記憶するステップと、
    後続のブートアップ時に前記アプリケーションのためのアプリケーションダイジェストを計算するステップと、
    前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致する場合、前記アプリケーションを使用するのを認証するステップとを含む、方法。
  7. 前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致しない場合、前記アプリケーションは使用するのを認証されない、請求項6に記載の方法。
  8. 前記固有ダイジェストは、前記最初のブートアップ時に前記アプリケーションの少なくともハッシュ関数に基づいて生成される、請求項6に記載の方法。
  9. 前記固有ダイジェストは、プロセッサに関連付けられるシリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づいてさらに生成される、請求項8に記載の方法。
  10. 後続のブートアップ時に前記計算されたアプリケーションダイジェストは、前記プロセッサに関連付けられる前記シリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づく、請求項9に記載の方法。
  11. コードを含む非一時的コンピュータ可読記録媒体であって、前記コードは、プロセッサによって実行されるときに、前記プロセッサに、
    最初のブートアップ時にアプリケーションのための固有ダイジェストを生成することと、
    前記固有ダイジェストをセキュアメモリに記憶することと、
    後続のブートアップ時に前記アプリケーションのためのアプリケーションダイジェストを計算することと、
    前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致する場合、前記アプリケーションを使用するのを認証することとを行わせる、コードを含む非一時的コンピュータ可読記録媒体。
  12. 前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致しない場合、前記アプリケーションは使用するのを認証されない、請求項11に記載のコンピュータ可読記録媒体。
  13. 前記固有ダイジェストは、前記最初のブートアップ時に前記アプリケーションの少なくともハッシュ関数に基づいて生成される、請求項11に記載のコンピュータ可読記録媒体。
  14. 前記固有ダイジェストは、前記プロセッサに関連付けられるシリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づいてさらに生成される、請求項13に記載のコンピュータ可読記録媒体。
  15. 後続のブートアップ時に前記計算されたアプリケーションダイジェストは、前記プロセッサに関連付けられる前記シリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づく、請求項14に記載のコンピュータ可読記録媒体。
  16. コンピューティングデバイスであって、
    最初のブートアップ時にアプリケーションのための固有ダイジェストを生成するための手段と、
    前記固有ダイジェストをセキュアメモリに記憶するための手段と、
    後続のブートアップ時に前記アプリケーションのためのアプリケーションダイジェストを計算するための手段と、
    前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致する場合、前記アプリケーションを使用するのを認証するための手段とを含む、コンピューティングデバイス。
  17. 前記計算されたアプリケーションダイジェストが前記記憶された固有ダイジェストと一致しない場合、前記アプリケーションは使用するのを認証されない、請求項16に記載のコンピューティングデバイス。
  18. 前記固有ダイジェストは、前記最初のブートアップ時に前記アプリケーションの少なくともハッシュ関数に基づいて生成される、請求項16に記載のコンピューティングデバイス。
  19. 前記固有ダイジェストは、プロセッサに関連付けられるシリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づいてさらに生成される、請求項18に記載のコンピューティングデバイス。
  20. 後続のブートアップ時に前記計算されたアプリケーションダイジェストは、前記プロセッサに関連付けられる前記シリアル番号と前記アプリケーションの前記ハッシュ関数との連結に基づく、請求項19に記載のコンピューティングデバイス。
JP2016547148A 2014-01-28 2015-01-16 コンピューティングデバイスによるアプリケーションの使用の認証 Expired - Fee Related JP6440721B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/166,743 US20150213253A1 (en) 2014-01-28 2014-01-28 Authorizing an application for use by a computing device
US14/166,743 2014-01-28
PCT/US2015/011838 WO2015116410A1 (en) 2014-01-28 2015-01-16 Authorizing an application for use by a computing device

Publications (3)

Publication Number Publication Date
JP2017506778A true JP2017506778A (ja) 2017-03-09
JP2017506778A5 JP2017506778A5 (ja) 2018-02-15
JP6440721B2 JP6440721B2 (ja) 2018-12-19

Family

ID=52450610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016547148A Expired - Fee Related JP6440721B2 (ja) 2014-01-28 2015-01-16 コンピューティングデバイスによるアプリケーションの使用の認証

Country Status (6)

Country Link
US (1) US20150213253A1 (ja)
EP (1) EP3100199A1 (ja)
JP (1) JP6440721B2 (ja)
KR (1) KR20160113166A (ja)
CN (1) CN105917346A (ja)
WO (1) WO2015116410A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10262164B2 (en) 2016-01-15 2019-04-16 Blockchain Asics Llc Cryptographic ASIC including circuitry-encoded transformation function
US10372943B1 (en) 2018-03-20 2019-08-06 Blockchain Asics Llc Cryptographic ASIC with combined transformation and one-way functions
US10256974B1 (en) 2018-04-25 2019-04-09 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement
JP2020135459A (ja) * 2019-02-20 2020-08-31 ソニー・オリンパスメディカルソリューションズ株式会社 プロセッサ、制御装置、及びプロセッサの起動プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US20080126779A1 (en) * 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
JP2009533742A (ja) * 2006-04-11 2009-09-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データベースなしのノイジーな低電力puf認証
US20100293614A1 (en) * 2009-05-12 2010-11-18 Vilppola Kari M Method, Apparatus, and Computer Program for Providing Application Security
EP2369518A1 (en) * 2010-03-08 2011-09-28 Siemens Aktiengesellschaft A system and a method for copy protecting a block of software
JP2013046122A (ja) * 2011-08-23 2013-03-04 Yahoo Japan Corp 端末、アプリ保護方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051200B1 (en) * 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US7509686B2 (en) * 2003-02-03 2009-03-24 Checco John C Method for providing computer-based authentication utilizing biometrics
PL1997270T3 (pl) * 2006-03-09 2015-05-29 Vasco Data Security Int Gmbh Sposób i układ autoryzacji użytkownika
US8154373B2 (en) * 2006-07-14 2012-04-10 Schneider Electric USA, Inc. Circuit breaker-like apparatus with combination current transformer
EP2350910B1 (en) * 2008-11-24 2018-07-25 Certicom Corp. System and method for hardware based security
US8316421B2 (en) * 2009-10-19 2012-11-20 Uniloc Luxembourg S.A. System and method for device authentication with built-in tolerance
KR20110093468A (ko) * 2010-02-12 2011-08-18 삼성전자주식회사 사용자 단말 장치, 서버 및 그 제어 방법
CN102347941B (zh) * 2011-06-28 2015-10-14 北京奇虎科技有限公司 一种基于开放平台的安全应用控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
JP2009533742A (ja) * 2006-04-11 2009-09-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データベースなしのノイジーな低電力puf認証
US20080126779A1 (en) * 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
US20100293614A1 (en) * 2009-05-12 2010-11-18 Vilppola Kari M Method, Apparatus, and Computer Program for Providing Application Security
EP2369518A1 (en) * 2010-03-08 2011-09-28 Siemens Aktiengesellschaft A system and a method for copy protecting a block of software
JP2013046122A (ja) * 2011-08-23 2013-03-04 Yahoo Japan Corp 端末、アプリ保護方法及びプログラム

Also Published As

Publication number Publication date
CN105917346A (zh) 2016-08-31
JP6440721B2 (ja) 2018-12-19
KR20160113166A (ko) 2016-09-28
EP3100199A1 (en) 2016-12-07
US20150213253A1 (en) 2015-07-30
WO2015116410A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
US9973485B2 (en) Apparatus and method to securely receive a key
US9049186B1 (en) Trusted security zone re-provisioning and re-use capability for refurbished mobile devices
EP2877955B1 (en) Providing access to encrypted data
JP6569006B2 (ja) キーをセキュアにアクティベートまたはリボークするためのコンピューティングデバイス
US9351098B2 (en) Providing access to and enabling functionality of first device based on communication with second device
US20150324605A1 (en) Method and apparatus for sharing content between electronic devices
US10200201B2 (en) Method for application installation, electronic device, and certificate system
JP6440721B2 (ja) コンピューティングデバイスによるアプリケーションの使用の認証
US10554627B2 (en) Proximity communication method and apparatus
US20180035293A1 (en) Authenticating a device utilizing a secure display
CN106355077B (zh) 认证应用处理器的显示驱动器集成电路和移动装置
US20170163417A1 (en) Apparatus and method for key provisioning
US20180152307A1 (en) Device to provide trusted time assurance
US20180019870A1 (en) Device to limit access to storage to authenticated actors only
US9779262B2 (en) Apparatus and method to decrypt file segments in parallel
JP6194430B2 (ja) クロックのスピードを設定するための装置および方法
KR102052651B1 (ko) 데이터 접근 제어 방법 및 그 전자 장치
EP3155821B1 (en) Video content tracking
US9607178B2 (en) Protection against key tampering

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

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: 20181022

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181120

R150 Certificate of patent or registration of utility model

Ref document number: 6440721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees