(58)【調査した分野】(Int.Cl.,DB名)
前記オペレーティングシステムは、前記暗号化されたバイオメトリックデータを前記データ記憶装置から前記信頼を受けたアプリケーション実行環境に転送するように構成される、請求項2に記載のシステム。
前記信頼を受けたアプリケーション実行環境は、バイオメトリクスセンサから取得されたバイオメトリックデータに基づいてユーザを登録すること、及び前記バイオメトリックデータに基づいて前記ユーザを認証することのうち少なくとも1つを行うように構成されたバイオメトリクスアプリケーションを含む、請求項2に記載のシステム。
前記信頼を受けたアプリケーション実行環境は、暗号化鍵を使用してバイオメトリクスセンサから取得された暗号化されたバイオメトリックデータを解読するように構成されたバイオメトリクスアプリケーションを含む、請求項2に記載のシステム。
前記信頼を受けたアプリケーション実行環境は、バイオメトリックテンプレートを生成するために、バイオメトリクスセンサから取得されたバイオメトリックデータを処理するように構成されたバイオメトリクスアプリケーションを含む、請求項2に記載のシステム。
アプリケーション実行環境と、オペレーティングシステムと、前記オペレーティングシステムを介して前記アプリケーション実行環境から選択的にアクセス可能なデータ記憶コンポーネントと、センサハブ、バイオメトリクスセンサ及びセキュリティエンジンを含むバイオメトリクスコンポーネントとを含むコンピューティングシステムでバイオメトリックデータをキャプチャ、処理及び管理する方法であり、前記センサハブは、前記データ記憶コンポーネント及び前記バイオメトリクスセンサへの直接のアクセスを有する、方法であって、
前記バイオメトリクスコンポーネントが、バイオメトリックサンプルをキャプチャするための前記コンピューティングシステムの前記アプリケーション実行環境からの要求に応じて、前記オペレーティングシステムを介して前記アプリケーション実行環境から前記コンピューティングシステムの前記データ記憶コンポーネントにアクセスするのを禁止するステップと、
前記バイオメトリクスコンポーネントが、バイオメトリックデータを取得するために前記バイオメトリクスセンサからバイオメトリックサンプルをキャプチャするステップと、
前記バイオメトリクスコンポーネントが、暗号化鍵を使用して前記バイオメトリックデータを暗号化するステップと、
前記バイオメトリクスコンポーネントが、前記暗号化されたバイオメトリックデータを前記データ記憶コンポーネントに記憶するステップと、
前記バイオメトリクスコンポーネントが、前記バイオメトリックデータが暗号化されるまで、前記オペレーティングシステムを介して前記アプリケーション実行環境から前記データ記憶コンポーネントにアクセスするのを拒否するステップと、
前記バイオメトリクスコンポーネントが、前記バイオメトリックデータの暗号化に続いて、前記オペレーティングシステムを介して前記アプリケーション実行環境から前記データ記憶コンポーネントにアクセスするのを許可するステップと
を含む方法。
前記バイオメトリックデータの暗号化は、前記オペレーティングシステムとは独立した前記コンピューティングシステムの前記バイオメトリクスコンポーネントにより実行される、請求項8に記載の方法。
コンピューティングシステムの1つ以上のプロセッサにより実行された場合、プロセスを実行させるコンピュータプログラムであり、前記コンピューティングシステムは、アプリケーション実行環境と、オペレーティングシステムと、前記オペレーティングシステムを介して前記アプリケーション実行環境から選択的にアクセス可能なデータ記憶コンポーネントと、センサハブ、バイオメトリクスセンサ及びセキュリティエンジンを含むバイオメトリクスコンポーネントとを含み、前記センサハブは、前記データ記憶コンポーネント及び前記バイオメトリクスセンサへの直接のアクセスを有する、コンピュータプログラムであって、
前記プロセスは、
バイオメトリックサンプルをキャプチャするための前記アプリケーション実行環境からの要求に応じて、前記オペレーティングシステムを介して前記アプリケーション実行環境から前記コンピューティングシステムの前記データ記憶コンポーネントにアクセスするのを禁止し、
バイオメトリックデータを取得するために前記バイオメトリクスセンサからバイオメトリックサンプルをキャプチャし、
暗号化鍵を使用して前記バイオメトリックデータを暗号化し、
前記暗号化されたバイオメトリックデータを前記データ記憶コンポーネントに記憶し、
前記バイオメトリックデータが暗号化されるまで、前記オペレーティングシステムを介して前記アプリケーション実行環境から前記データ記憶コンポーネントにアクセスするのを拒否し、
前記バイオメトリックデータの暗号化に続いて、前記オペレーティングシステムを介してアプリケーション実行環境から前記データ記憶コンポーネントにアクセスするのを許可することを含むコンピュータプログラム。
前記プロセスは、前記オペレーティングシステムを介して、前記暗号化されたバイオメトリックデータを前記データ記憶コンポーネントから前記アプリケーション実行環境内の信頼を受けた実行環境に転送することを含み、
前記アプリケーション実行環境内の信頼を受けていない実行環境は、前記信頼を受けた実行環境から動作可能に隔離される、請求項15に記載のコンピュータプログラム。
前記プロセスは、信頼を受けた実行環境内で前記暗号化鍵を使用して前記暗号化されたバイオメトリックデータを解読することを更に含む、請求項15に記載のコンピュータプログラム。
前記プロセスは、信頼を受けた実行環境内でバイオメトリックテンプレートを生成するために前記バイオメトリックデータを処理することを更に含む、請求項15に記載のコンピュータプログラム。
前記プロセスは、前記バイオメトリックデータに基づいてユーザを登録すること、及び前記ユーザを認証することのうち少なくとも1つを行うことを更に含む、請求項15乃至19のうちいずれか1項に記載のコンピュータプログラム。
【発明を実施するための形態】
【0003】
バイオメトリックデータのキャプチャ、処理及び管理のための技術が開示される。特に、実施例によれば、スマートフォン、タブレット又は他のコンピューティングデバイスのようなコンピューティングシステムは、バイオメトリクスハードウェア、ファームウェア又はハードウェアとファームウェアとの組み合わせをサポートするフレームワークで設計される。フレームワークは、とりわけ、オペレーティングシステム、信頼を受けた実行環境及び信頼を受けていない実行環境の使用を容易にする。バイオメトリクスハードウェア/ファームウェアは、センサハブと、1つ以上のバイオメトリックセンサ(例えば、数例を挙げると、指紋、虹彩、音声)と、セキュリティエンジンとを含む。各センサは、バイオメトリックサンプル(例えば、指紋パターン、虹彩の構造的特徴、音声パターン)をキャプチャ又はスキャンする。いくつかのセンサは、バイオメトリックデータを表す電気信号を生成するように構成されたトランスデューサを含む。バイオメトリクスハードウェア/ファームウェアは、実施例に従ってセンサを排他的に制御及び読み取るための認証されたロジック又は回路を含む。特に、認証されたロジックは、バイオメトリクスハードウェア/ファームウェア及び暗号化されていないバイオメトリックセンサデータを、オペレーティングシステムの残り、及び少なくとも信頼を受けていない実行環境内のいずれかのアプリケーション、プロセス又はコンポーネントから選択的に隔離する。バイオメトリックセンサ及び暗号化されていないバイオメトリックデータを記憶するために使用されるメモリへのアクセスは、センサハブ、セキュリティエンジン又はこれらの双方に制限される。認証されたロジックは、システムの他のコンポーネントがデータを信頼を受けた実行環境に転送する前に、バイオメトリックデータを暗号化する。さらに、バイオメトリックアプリケーション及び信頼を受けた実行環境に記憶されるデータは、信頼を受けていない実行環境及び認証されていないオペレーティングシステムのプロセスから隔離される。このように、認証されたオペレーティングシステムのプロセス及びコンピューティングシステムの信頼を受けたコンポーネントのみがセンサへのアクセスを有し、常に、バイオメトリックデータは、暗号化されるか、或いはコンピューティングシステムの信頼を受けていないコンポーネント又は認証されていないコンポーネントから隔離される。複数の変形及び構成は、この開示を鑑みて明らかになる。
【0004】
<総括>
チャレンジ・レスポンス認証は、ユーザが認証機関により提示された問題(チャレンジ)に対して有効な回答(レスポンス)を提供したときにユーザアイデンティティ認証が発生するコンピュータセキュリティ技術である。パスワード、セキュリティトークン及びバイオメトリック指紋は、いくつかの形式のチャレンジ・レスポンス認証である。パスワードは容易に実装されるが、パスワードはまた、容易に忘れられ、盗まれ、或いはその他に危険にさらされる。同様に、セキュリティトークンは、容易に失われるか、或いは盗まれる。パスワード及びセキュリティトークンとは対照的に、バイオメトリック情報は、各個人に一意である固有の特徴である。したがって、ユーザは、パスワード、セキュリティトークン及び他の形式のチャレンジ・レスポンス認証の場合のようには、バイオメトリクスを失ったり、忘れたり、或いは容易に盗んだりすることができない。しかし、収集された場合、電子形式のバイオメトリック情報は、無許可の改ざん、傍受又は盗難を妨げるために安全にされなければならない。例えば、無許可のユーザは、安全でなく記憶された指紋スキャンを取得し、無許可のユーザが保護されたリソースへの不法なアクセスを得るために、許可されたユーザのアイデンティティをだましたり或いは模倣したりする攻撃のためにそれを使用することができる。さらに、指紋スキャンデータにアクセスして操作するように構成された不法なアルゴリズムは、バイオメトリックデータ処理アルゴリズムを変更することができ、これは、バイオメトリクス認証が提供しようとするセキュリティを危険にさらす。
【0005】
したがって、本開示は、様々な実施例に従って、安全なバイオメトリックデータのキャプチャ、処理及び管理のための新たな技術を提供する。実施例では、コンピューティングシステムは、1つ以上のバイオメトリック指紋センサと、センサハブと、信頼を受けていないアプリケーション実行環境と、信頼を受けたアプリケーション実行環境とを含む。センサハブは、センサへの排他的なアクセスを有し、また、オペレーティングシステムの信頼を受けていない部分又は認証されていない部分及びコンピューティングシステム上で実行する他のプロセスを、センサにより取得された暗号化されていないバイオメトリックデータへの直接のアクセスから隔離する。特に、指紋スキャンの間に、センサハブは、システムの他のコンポーネントから指紋センサへのアクセスを禁止する。センサハブは、指紋スキャンに関連するバイオメトリックデータを取得するためにセンサを読み取り、メモリスタック又はレジスタのようなデータ記憶コンポーネントにバイオメトリックデータを記憶する。センサハブ及びセキュリティエンジンのみがデータ記憶コンポーネントにアクセスすることができる。いくつかの実施例では、セキュリティエンジンは、センサハブがデータ記憶及びセンサアクセスの制限を除去する前に、データ記憶コンポーネントに記憶されたバイオメトリックデータを暗号化する。いくつかの実施例では、セキュリティエンジンは、指紋スキャンに関連するバイオメトリックデータを処理し、更なるきょか処理のために、検証可能な結果を信頼を受けたアプリケーション実行環境に転送する。その後、システムの様々なコンポーネント(例えば、ネイティブライブラリコンポーネント)は、暗号化されたバイオメトリックデータをメモリ記憶コンポーネントから信頼を受けた安全なアプリケーション実行環境に転送することができる。信頼を受けた環境は、バイオメトリックデータを処理するためのアルゴリズムをホストする。さらに、信頼を受けた実行環境の外部で実行するプロセスは、バイオメトリックデータ又は信頼を受けたアプリケーション実行環境内のアルゴリズムにアクセスすることができない。この例示的な実施例では指紋センサが使用されるが、この開示を鑑みて明らかになるように、他の実施例は、他のバイオメトリックセンサ又はこのようなセンサのいずれかの組み合わせを使用し、依然としてここで提供される技術に従って動作してもよい。
【0006】
この開示で使用される「バイオメトリクス(biometrics)」という用語は、測定可能な生物的特徴及び生物的特徴を保有する個人を認識するための処理を示す。いくつかの場合には、生物的特徴は、数例を挙げると、指紋、手のひらの特徴(例えば、静脈)、顔の特徴、DNA、署名、音声の特徴、手の特徴(例えば、形状)、虹彩の構造、網膜の特徴、及び香りの詳細を含む身体構造上又は生理学上のものである。いずれかのこのような特徴は、一般的にバイオメトリックセンサによりキャプチャされたバイオメトリックサンプル又はデータの形式でキャプチャされることができる。認識処理は、個人のアイデンティティを識別及び検証するために、生物的特徴を表すバイオメトリックデータを処理することを含むことができる。
【0007】
この開示で使用される「バイオメトリクスセンサ(biometrics sensor)」という用語は、バイオメトリクス認識及び検証に必要なデータを取得するように構成されたデバイスを示す。このようなデバイスは、例えば、指紋センサ、網膜及び虹彩センサ、カメラ、マイクロフォン、及びバイオメトリクスを収集可能な他のこのようなツールを含んでもよい。例えば、指紋センサは、人の指紋の詳細をキャプチャするために、光学指紋イメージング、超音波イメージング及び静電容量イメージングのような特徴検出技術を組み込んでもよい。虹彩認識センサは、人の虹彩の構造の画像をキャプチャするために、近赤外線照射を有するビデオカメラ技術を組み込んでもよい。顔認識センサは、人の特有の顔の特徴の高解像度画像をキャプチャするために、高解像度ビデオカメラ技術(例えば、ピクセル解像度、空間分解能、スペクトル分解能、時間分解能及び放射分解能)を組み込んでもよい。音声認識センサは、人の声のパターンをキャプチャするために、マイクロフォン及び場合によっては1つ以上のオーディオフィルタを含んでもよい。いくつかの実施例では、セキュリティを更に増加させるために、このようなセンサの組み合わせが使用されてもよい。いくつかの実施例では、センサは、バイオメトリックデータを表す電気信号を生成するように構成されたトランスデューサを含む。
【0008】
この開示で使用される「バイオメトリックテンプレート(biometric template)」という用語は、1つ以上のバイオメトリックサンプルのデジタル表現を示す。例えば、指紋センサを使用して取得された指紋スキャンは、特定の個人の指紋に一意に対応するバイオメトリックテンプレートに変換されてもよい。様々なモデル及びアルゴリズムは、バイオメトリックテンプレートを生成し、認証目的のために候補の指紋に対して前に記憶されたテンプレートを比較する。例えば、画像又はパターンに基づくアルゴリズムは、テンプレートを生成してもよく、或いは指紋を形成するパターンの種類、サイズ、形状及び方向を含む2つ以上のテンプレートを比較してもよい。
【0009】
この開示で使用される「バイオメトリック検証(biometric verification)」及び「バイオメトリック認証(biometric authentication)」という用語は、指紋スキャン又は音声スキャン又は顔スキャン又は虹彩スキャンのようなバイオメトリックサンプルを取得することにより個人のアイデンティティを確認し、データベースに登録された前の有効なサンプルに対してキャプチャされたサンプルを比較するための処理を示す。サンプルの間の一致が発生するときに、検証及び認証が生じる。有効なサンプルは、信頼を受けた関係者により検査されたもの、又は検証若しくは認証処理を実行する役目をするセキュリティ機関により真正及び有効であると考えられたものである。
【0010】
この開示で使用される「バイオメトリック識別(biometric identification)」という用語は、一致を得るために、データベース内の1つ以上のサンプルに対して指紋スキャン又は音声スキャン又は顔スキャン又は虹彩スキャンのようなバイオメトリックサンプルを比較することにより、個人のアイデンティティを決定するための処理を示す。いくつかの場合には、検証及び認証は識別を含んでもよいが、識別は、必ずしも有効なサンプルとの比較を含むとは限らない(例えば、識別は、認証をもたらさなくてもよい)。
【0011】
<例示的なシステム>
図1は、実施例に従ってバイオメトリックデータのキャプチャ、処理及び管理のために構成された例示的なコンピューティングシステム100を示す。システム100は、例えば、スマートフォン、タブレットコンピュータ、モバイルデバイス、デスクトップデバイス、又は他の適切なコンピューティングデバイスに実装されてもよい。システム100は、一般的に、バイオメトリクスコンポーネント110と、オペレーティングシステム120と、アプリケーション実行環境130とを含む。バイオメトリクスコンポーネント110は、例えば、ハードウェア、ファームウェア又はこれらの双方(例えば、システムの1つ以上のローカルプロセッサによりアクセス可能且つ実行可能な埋め込みコード)を含んでもよい。
【0012】
バイオメトリクスコンポーネント110は、センサハブ112と、1つ以上のバイオメトリクスセンサ114(例えば、指紋センサ)と、セキュリティエンジン116とを含む。センサハブ112は、(例えば、オペレーティングシステム120を介して)バイオメトリクスセンサ114とコンピューティングシステム100の他の部分とをインタフェース接続するための回路及びロジックを含む。センサハブ112は、バイオメトリクスセンサ114からのバイオメトリックサンプルを制御及びキャプチャするための回路及びロジックを更に含む。バイオメトリクスコンポーネント110は、バイオメトリクスセンサ114を、オペレーティングシステム120及びアプリケーション実行環境130による直接のアクセスから動作可能に隔離することができる。例えば、センサハブ112は、バイオメトリクスセンサ114と通信するための共通バスインタフェースを含んでもよい。このような共通バスインタフェースの例は、SPI(serial peripheral interface)及びSPIコントローラ(例えば、SSP6)、I
2C(inter-integrated circuit)、UART(universal asynchronous receiver/transmitter)並びにMIPI(Mobile Industry Processor Interface)を含む。指紋バイオメトリクスセンサの例は、容量性センサ(Fingerprint Card 1020ファミリ、Synaptics 5100ファミリ)、光学(OxiTechnologyのセンサの全てのファミリ、Authentic)及び超音波(UltraScan及びSonavationのセンサの全てのファミリ)を含むが、これらに限定されない。前述のように、これらのセンサのいずれかは、バイオメトリックデータを表す電気信号を生成するように構成されたトランスデューサを含むことができる。セキュリティエンジン116は、安全な実行環境で暗号化機能を提供するいずれかの種類のハードウェア又はソフトウェアに基づくセキュリティエンジンを含んでもよい。例えば、この開示を鑑みて明らかになるように、セキュリティエンジン116は、指紋スキャンを表すバイオメトリックデータのようなセンサハブ112により取得されたデータの暗号化及び解読機能並びにシステム100の様々な他のコンポーネントを提供するために、規定されたセキュリティ方式を実装してもよい。
【0013】
オペレーティングシステム120は、データ記憶装置122(例えば、ランダムアクセスメモリ、データスタック又は他のデータレジスタ)を含む。バイオメトリクスコンポーネント110は、データ記憶装置122への直接のアクセスを有する。データ記憶装置124は、センサハブ112から受信したバイオメトリックデータを記憶するためのメモリを提供する。例えば、データ記憶装置124は、アプリケーション実行環境130へのデータの転送が発生する前に、指紋スキャンを表すデータを一時的に記憶してもよい。さらに、アプリケーション実行環境130は、オペレーティングシステム120を介してデータ記憶装置122にアクセスすることができる。しかし、センサハブ112は、アプリケーション実行環境からデータ記憶装置へのアクセスを選択的に禁止する。例えば、センサハブ112は、バイオメトリックサンプルをキャプチャするためのアプリケーション実行環境130からの要求に応じて、直接的に或いはオペレーティングシステム120を介して、アプリケーション実行環境130からデータ記憶装置122へのアクセスを禁止してもよい。これは、動作可能に隔離されたバイオメトリクスコンポーネント110と組み合わせて、バイオメトリックサンプルから取得された暗号化されていないバイオメトリックデータを、オペレーティングシステム120及びアプリケーション実行環境130を含むコンピューティングシステム100の他の部分による読み取り及び書き込みアクセスから保護する役目をする。セキュリティエンジン116は、例えば、バイオメトリックデータを暗号化してもよい。バイオメトリックデータが暗号化されると、センサハブ112は、オペレーティングシステム120及びアプリケーション実行環境130からデータ記憶装置122へのアクセスを許可する。
【0014】
アプリケーション実行環境130は、信頼を受けていないアプリケーション実行環境132と、信頼を受けたアプリケーション実行環境134とを含む。信頼を受けていないアプリケーション実行環境132は、コンピューティングシステム100上で実行するいずれかのプロセスによるアクセスから、必ずしも安全ではないか或いは必ずしも保護されているとは限らない更なるデータ記憶装置を含む。例えば、コンピューティングシステム100上で実行する信頼を受けたプロセス又は信頼を受けていないプロセスは、信頼を受けていないアプリケーション実行環境132に記憶されたデータにアクセスしてもよい。信頼を受けていないアプリケーション実行環境132に記憶されたデータ又は実行するアプリケーションは、例えば、コンピュータウィルス又は悪意のあるコンテンツを含んでもよい。さらに、無許可の或いは認証されていないユーザ、デバイス又はアプリケーションは、信頼を受けていないアプリケーション実行環境132内のデータ及びアプリケーションにアクセスしてもよく、或いは変更してもよい。したがって、盗難又は誤用から秘密情報を保護する等の特定の目的で、信頼を受けていないアプリケーション実行環境132は、バイオメトリックデータを記憶又は処理するのに適さない可能性がある。
【0015】
これに対して、信頼を受けたアプリケーション実行環境134は、信頼を受けたアプリケーション実行環境134の外部で実行する無許可のプロセス又は認証されていないプロセスにより使用されるメモリから隔離されたデータ記憶装置を含む。さらに、信頼を受けたアプリケーション実行環境134で実行するプロセスは、信頼を受けたアプリケーション実行環境134の外部で実行する全てのプロセスの実行に対して、記憶されたデータへの排他的なアクセスを有する。このように、信頼を受けたアプリケーション実行環境134は、信頼を受けたアプリケーション実行環境134の外部(例えば、オペレーティングシステム120又は信頼を受けていないアプリケーション実行環境132)で実行するプロセスから、バイオメトリックデータを含む記憶された特定のデータを安全に隔離する。いくつかの実施例では、信頼を受けていないアプリケーション実行環境132の部分を形成するメモリ又は他のデータ記憶エレメントは、アプリケーションに応じて、信頼を受けたアプリケーション実行環境134の部分を形成するメモリ又は他のデータ記憶エレメントから物理的に分離してもよく、或いは統合されてもよい。さらに、いくつかの場合には、ハードウェア(例えば、別々のデータバス、非共有メモリ)、ファームウェア又はソフトウェア(例えば、セグメント化、プロセスの分離、仮想アドレッシング、保護キー、特権及び許可、アドレスマスク等)が、システム100の1つのメモリ領域を他のものから隔離することができる。
【0016】
<例示的な方法>
図2Aは、実施例によるバイオメトリックデータのキャプチャ、処理及び管理のための例示的な方法のフローチャートである。
図2Bは、実施例による
図2Aの例示的な方法の更に詳細なフローチャートである。信頼を受けていないアプリケーション202は、
図1の信頼を受けていないアプリケーション実行環境132のようなコンピュータ処理環境の部分で実行する。信頼を受けていないアプリケーション202は、ユーザ204のバイオメトリック認証を要求する。このような認証は、例えば、信頼を受けていないアプリケーション202が特定の保護された情報又は安全な情報にアクセスすること又は許可されたユーザに制限された特定の機能を実行することを許可するための前提条件としての役目をしてもよい。いくつかの場合には、パスワード又はセキュリティトークンのような他の適切な認証技術がバイオメトリック認証を補ってもよい。認証要求に応じて、信頼を受けていないアプリケーション202と独立しており且つ隔離されたコンピュータ処理環境の別々の部分(例えば、信頼を受けたアプリケーション実行環境134、オペレーティングシステムカーネル120、バイオメトリクスコンポーネント110又はこれらのいずれかの組み合わせ)は、ユーザ204からバイオメトリックデータ(例えば、指紋スキャン)を収集する210。
図2Bを参照すると、バイオメトリックデータの安全な収集210は、暗号化鍵を生成すること212a、オペレーティングシステムからデータ記憶装置へのアクセスを禁止すること214、及びバイオメトリックデータをキャプチャして暗号化してデータ記憶装置に記憶すること216のうち1つ以上を含むことができる。
【0017】
再び
図2Aを参照すると、バイオメトリックデータを収集した210後に、バイオメトリックデータは、コンピュータ処理環境の1つの部分から他の部分に送信される220。
図2Bを参照すると、バイオメトリックデータの送信220は、オペレーティングシステムからデータ記憶装置へのアクセスを許可すること222、及びバイオメトリックデータをデータ記憶装置から信頼を受けた環境に転送すること224のうち1つ以上を含むことができる。例えば、
図1を参照すると、バイオメトリックデータは、バイオメトリクスコンポーネント110からオペレーティングシステムカーネル120(例えば、データ記憶装置124)に転送され、さらに信頼を受けたアプリケーション実行環境134に転送されてもよい。バイオメトリックデータは、信頼を受けていないアプリケーション202が暗号化されていない形式又は安全にされていない形式でバイオメトリックデータへのアクセスを決して有さないように、安全に(例えば、暗号化された形式で)送信される220。
【0018】
再び
図2A及び2Bを参照すると、バイオメトリックデータの処理及び管理230は、信頼を受けていないアプリケーション202と独立しており且つ分離した同様に安全な方式で生じる。例えば、バイオメトリックデータの解読及び処理232は、指紋スキャンを登録するための或いは前に登録された指紋スキャンに対する検証のためのテンプレートを生成するために、信頼を受けた環境内で生じてもよい。バイオメトリックデータを暗号化及び解読するために使用される暗号化鍵は、信頼を受けていないアプリケーション202に決して公開されない。したがって、この例示的なフレームワーク及び方法では、信頼を受けていないアプリケーション202は、暗号化されていない形式又安全にされていない形式のバイオメトリックデータ、バイオメトリクスコンポーネント、又は暗号化されていない形式又は安全にされていない形式でバイオメトリックデータを収集、送信、処理又は管理するいずれかのプロセス若しくは通信チャネルへの直接のアクセスを決して有さない。
【0019】
<例示的なデバイス>
図3は、実施例によるバイオメトリックデータのキャプチャ、処理及び管理のために構成された例示的なコンピューティングデバイス300を示す。コンピューティングデバイス300は、バイオメトリクスコンポーネント310と、オペレーティングシステムコンポーネント320と、信頼を受けていない環境コンポーネント30と、信頼を受けた安全な環境コンポーネント340とを含む。バイオメトリクスコンポーネント310は、センサハブ312と、1つ以上のバイオメトリック指紋センサ314と、セキュリティエンジン316とを含む。いくつかの場合には、センサハブ312及びセキュリティエンジン316は、コンピューティングデバイス300に統合された1つ以上のアクセス制御レジスタ(図示せず)を構成することにより、バイオメトリック指紋センサ314への排他的アクセスを有する。センサハブ312は、1つ以上のアプリケーション又はプロセスを実行する。これらのアプリケーション及びプロセスは、互いに相互排他的に隔離された形式で実行することができる(例えば、センサハブ312上のアプリケーション又はプロセスは、他の存在を認識しなくてもよく、センサハブ312上のアプリケーション又はプロセスは、他のデータにアクセスしなくてもよい)。例えば、センサハブ312における各アプリケーション又はプロセスは、保護リング(例えば、Ring 3)アーキテクチャで実行してもよい。オペレーティングシステムコンポーネント320は、センサハブプロセス間通信(IPC:inter-process communication)コンポーネント322と、データ記憶コンポーネント324と、セキュリティエンジンインタフェースコンポーネント326と、バイオメトリクスドライバコンポーネント328とを含む。信頼を受けた環境330は、信頼を受けたアプリケーション332、バイオメトリクスサービス334及びバイオメトリクスサービスライブラリ336のうち1つ以上を含む。バイオメトリクスサービス334は、例えば、バイオメトリクスハードウェア/ファームウェア310を介してユーザを登録、検証及び識別するための1つ以上のアプリケーションプログラミングインタフェース(API:application programming interface)を提供してもよい。いくつかの場合には、信頼を受けていないアプリケーション332は、ユーザを登録、検証及び識別するために、いずれか標準的なバイオメトリクスAPIを使用することができる。信頼を受けた安全な環境340は、信頼を受けたバイオメトリクスアプリケーション342及び信頼を受けたバイオメトリクスサービス344のうち1つ以上を含む。いくつかの実施例では、センサハブ312は、センサ処理モジュール350及びセンサインタフェース352のうち1つ以上を含んでもよい。
【0020】
コンピューティングデバイス300は、スマートフォン、タブレット、デスクトップコンピュータ、ユーザ端末、POS(point-of-sale)端末、現金自動預入支払機、自動販売機、空港チェックインシステム、埋め込み式デバイスコントローラ、乗り物制御システム、施設アクセス制御システム、又はバイオメトリクスがユーザ識別及び認証のために利用される他のデバイス若しくはシステム又はデバイス若しくはシステムの組み合わせのような、1つ以上のモバイル又はデスクトップコンピューティングデバイスに実装されてもよい。
【0021】
一般的に、コンピューティングデバイス300は、実施例に従って以下の方式で動作する。信頼を受けていないアプリケーション332は、ユーザのバイオメトリック識別又は認証を伴うコンピューティングデバイス300上で実行するいずれかのアプリケーションを含むことができる。このようなアプリケーションの例は、ユーザが特定の金融取引を実行することを許可する前にユーザを識別及び認証するためにバイオメトリック情報を使用するオンラインバンキングアプリケーションを含む。例えば、ユーザ名及びパスワードを使用して金融機関のためのバンキングアプリケーションにログインする代わりに、或いはこれに加えて、信頼を受けていないアプリケーション332は、ユーザの指紋スキャンを取得する。既知の有効なバイオメトリックデータに対する指紋スキャンから取得されたバイオメトリックデータの比較は、ユーザが誰であるか、また、勘定残高の確認、資金の引き出し又は移動、購入の実行、及び金融機関により許可されたユーザのみに利用可能である他の種類の取引のような、ユーザが特定の機能を実行することが許可されているか否かを決定する。バイオメトリックに基づくセキュリティが使用され得るアプリケーションの他の例は、この開示を鑑みて明らかになる。
【0022】
デバイス300は、信頼を受けていないアプリケーション332を含み、信頼を受けていない環境330で実行するアプリケーション又は他のプロセスが、無許可のユーザが不適切な目的又は誤用で利用し得る機密データに直接アクセスすることを許可しない。したがって、デバイス300は、信頼を受けていないアプリケーション332が少なくとも暗号化されていない形式でバイオメトリックデータにアクセスすること又は傍受若しくは操作することを許可しない。その代わりに、信頼を受けていないアプリケーション332は、信頼を受けたバイオメトリクスアプリケーション342、データ記憶コンポーネント324及びバイオメトリクスコンポーネント310を含むが、これらに限定されないコンピューティングデバイス300の他のコンポーネントに送信された要求を介して、バイオメトリックに基づく識別又は認証を間接的に実現する。様々な実施例によれば、このような他のコンポーネントは、バイオメトリックデータの一貫性及びセキュリティを維持するように設計され、バイオメトリクスコンポーネント310及びデータ記憶装置324を信頼を受けていない環境から隔離するように更に設計される。要求は、例えば、新たな指紋スキャンをデータベースに登録し、或いは前に登録された指紋スキャンに対して新たな指紋スキャンを認証し、「成功」又は「失敗」のような登録又は認証の結果を返信するための要求を含んでもよい。いくつかの場合には、バイオメトリクスサービス334は、信頼を受けたアプリケーション332からセンサハブIPC322のようなコンピューティングデバイス300の様々な他のコンポーネントへの要求の提示を容易にする1つ以上のAPIを提供する。
【0023】
信頼を受けていないアプリケーション332からバイオメトリクス要求を受信したことに応じて、ドライバ328は、信頼を受けたバイオメトリクスサービス344を介して、バイオメトリック指紋センサ314からキャプチャされたバイオメトリックデータを暗号化するための暗号化鍵を生成するためのコマンドを信頼を受けたバイオメトリクスアプリケーション342に送信する。信頼を受けたバイオメトリクスアプリケーション342は、暗号化鍵を生成し、セキュリティエンジンインタフェース326を介して鍵をセキュリティエンジン316に供給する。さらに、バイオメトリクス要求を受信したことに応じて、センサハブIPC322は、バイオメトリックサンプルをキャプチャするためのコマンドをセンサハブ312及び指紋センサ314に送信する。データ記憶装置324は、オペレーティングシステム320とセンサハブ312とセキュリティエンジン326との間で共有される。センサハブ312は、オペレーティングシステムがデータ記憶装置324にアクセスするのを禁止するために、バイオメトリックサンプルをキャプチャする前にデータ記憶装置324をロックする。次に、センサ処理モジュール350は、バイオメトリックサンプルを表す生のバイオメトリックデータを取得するためにセンサインタフェース352を使用し、生のバイオメトリックデータをデータ記憶装置324に記憶する。センサ処理モジュール350は、バイオメトリックデータをオペレーティングシステム320に送信する前に、暗号化鍵を使用して生のバイオメトリックデータを暗号化するために、セキュリティエンジン326を呼び出す。データ記憶装置に記憶されたバイオメトリックデータが暗号化されると、センサハブ312は、データ記憶装置324へのアクセスをロック解除する。
【0024】
次に、センサハブIPC322は、データ記憶装置324から暗号化されたバイオメトリックデータを収集し、これを信頼を受けていない環境330内のバッファにコピーする。次に、バイオメトリクスサービスライブラリ336は、暗号化されたバイオメトリックデータを信頼を受けた安全な環境340に転送する。暗号化されたバイオメトリックデータを受信すると、信頼を受けたバイオメトリクスアプリケーション342は、バイオメトリックデータを暗号化するためにセキュリティエンジン342により使用された同じ暗号化鍵を使用して、データを解読する。信頼を受けたバイオメトリクスアプリケーション342は、一貫性及び有効性についてバイオメトリックデータを検査し、データを前処理し、バイオメトリックテンプレートを抽出し、テンプレートを暗号化された形式で記憶するか、或いは前に登録されたテンプレートに対してテンプレートを比較する。これらの機能の全ては、信頼を受けた安全な環境340内で実行され、これは、信頼を受けていない環境330又はオペレーティングシステム320からのアクセスに対してバイオメトリックデータ及びテンプレートのセキュリティを確保する。コンピューティングデバイス300の動作及び使用の他の例は、
図4に関して更に詳細に提供される。
【0025】
<例示的な方法>
図4は、実施例によるコンピューティング環境におけるバイオメトリックデータのキャプチャ、処理及び管理のための他の例示的な方法のフローチャートである。明確にするために、
図4では、例示的な方法の様々なステップが、
図2のコンピューティングデバイスの様々なコンポーネントに関して規定されている。しかし、これらのステップの一部又は全部は、別々に記載されるコンポーネントの組み合わせであるコンポーネント、個別に記載されるコンポーネントのサブセットであるコンポーネント、コンピューティング環境から離れたコンポーネント(例えば、クライアントサーバ方式)、又は別のコンピューティング環境若しくはコンピューティング環境の別の部分に位置するコンポーネントを含み、この例示的な実施例に明示的に示されているものとは異なるコンポーネントにより実行されてもよい。さらに、これらのステップのうち1つ以上の実行は、この例示的な実施例に明示的に記載されたものとは異なる順序で生じてもよく、或いは完全に省略されてもよい。したがって、
図4の例示的なフローチャートは、1つの例示的な方法の総括を提供しているに過ぎず、様々な他の実施例の範囲を限定しない。
【0026】
一般的に、バイオメトリクス認証セッションの間に、例示的な方法は、バイオメトリックデータを暗号化及び解読するための暗号化鍵を生成する動作、コンピューティング環境内の特定のコンポーネントへのバイオメトリクスハードウェア/ファームウェアのアクセスを制限する動作、バイオメトリックデータ(例えば、指紋スキャン)をキャプチャする動作、バイオメトリックデータを暗号化して信頼を受けた環境に転送する動作、更に処理してバイオメトリックデータを信頼を受けた環境に記憶する動作のうち1つ以上を含む。例示的な方法は、このような処理の結果を信頼を受けていない環境で実行するアプリケーションに報告することを更に含むことができる。例えば、指紋スキャン登録又は認証の結果は、成功又は失敗として信頼を受けていないアプリケーションに報告されてもよい。次に、例示的な方法は、結果に基づいて保護されたリソースへの信頼を受けていないアプリケーションによるアクセスを許可又は拒否してもよい。
【0027】
更に詳細には、まず、信頼を受けていない環境で実行してもよい信頼を受けていないアプリケーションは、バイオメトリクス認証要求を発行する402。このような要求は、例えば、信頼を受けていないアプリケーションが、ユーザにより所有されているか或いはユーザのために無許可のアクセスから保護されている保護されたリソース(例えば、データ、サービス又はアプリケーション)にアクセスするためにユーザの認証を取得する必要があるときに発行されてもよい。コンピューティング環境で実行するいずれかのアプリケーションは、バイオメトリクス認証要求を発行してもよい。このようなアプリケーションは、信頼を受けていない環境で実行するものに限定されず、信頼を受けた環境、オペレーティングシステムカーネル及びいずれかのハードウェア又はファームウェアを含み、コンピューティング環境の他の部分又は別のコンピューティングで実行するアプリケーション又は他のプロセスを含んでもよい。信頼を受けていない環境で実行する信頼を受けていないバイオメトリクスサービスは、バイオメトリクス認証要求を受信する。信頼を受けていないバイオメトリクスサービスは、バイオメトリックデータがキャプチャ、送信、処理又は管理されるバイオメトリクス認証セッションをインスタンス化する404。バイオメトリクス認証セッションは、
図4に関して説明した動作のうち1つ以上を含んでもよい。バイオメトリクス認証セッションのインスタンス化に応じて、信頼を受けていないバイオメトリクスサービスは、信頼を受けたバイオメトリクスアプリケーションを呼び出す406。信頼を受けたバイオメトリクスアプリケーションは、信頼を受けた環境で実行し、信頼を受けた環境は、アクセスが信頼を受けた環境で実行するコンポーネントに制限される隔離されたメモリ領域又は他のデータ記憶コンポーネントを含んでもよい。
【0028】
信頼を受けていないバイオメトリクスサービスからの呼び出しを受信したことに応じて、信頼を受けたバイオメトリクスアプリケーションは、同様に信頼を受けた環境内の信頼を受けたバイオメトリクスサービスを介して暗号化鍵を生成する408。信頼を受けたバイオメトリクスサービスは、暗号化鍵を生成するために、セキュリティエンジンと共に動作してもよい。例えば、信頼を受けたバイオメトリクスサービスは、セキュリティエンジンを呼び出して暗号化鍵を要求してもよく、セキュリティエンジンは、信頼を受けたバイオメトリクスサービスのために暗号化鍵を生成し、安全又は専用の通信チャネルを使用して、暗号化鍵を信頼を受けたバイオメトリクスサービスに返信してもよい。セキュリティエンジンはまた、例えば、センサハブと暗号化鍵を共有してもよい。
【0029】
指紋をスキャンする前に、カーネルスタックのようなデータ記憶コンポーネントへのアクセスは、コンピューティング環境のハードウェア/ファームウェア内のセンサハブ、セキュリティエンジン又はこれらの双方に制限される410。その結果、信頼を受けていない環境からカーネルスタックへのアクセスは許可されない。カーネルスタックへのアクセスは、コンピューティング環境内の信頼を受けていないか或いは認証されていないアプリケーション又はコンポーネントがバイオメトリクス認証セッションの間に取得されたいずれかの暗号化されていないバイオメトリックデータ又は安全にされていないバイオメトリックデータへのアクセスを得ることを妨げるために制限される。カーネルスタックがこのように制限された後に、バイオメトリックデータは、指紋センサからキャプチャされ412、カーネルスタックに配置される414。いくつかの場合には、キャプチャされたバイオメトリクスセンサデータは、アクセスがコンピューティング環境内の認証されたコンポーネント又は信頼を受けたコンポーネントに適切に制限されたハードウェア/ファームウェア、カーネル又は信頼を受けた環境内の他のデータ記憶コンポーネントに更に或いは代わりに記憶されることができる。
【0030】
バイオメトリックデータがカーネルスタックに存在する間、且つカーネルスタックへのアクセスがセンサハブ、セキュリティエンジン又はこれらの双方に制限されている間に、センサハブ又はセキュリティエンジンは、暗号化鍵を使用してバイオメトリックデータを暗号化する416。バイオメトリックデータを暗号化することに続いて、センサハブは、カーネルスタックのアクセス制限を除去し418、これは、アプリケーション実行環境からカーネルスタックへのアクセスを許可する。バイオメトリックサービスライブラリは、暗号化されたバイオメトリックデータを信頼を受けた安全な環境に転送し420、信頼を受けた安全な環境は、オペレーティングシステム又はコンピューティング環境の他の信頼受けていないプロセス及びコンポーネントにより直接アクセス可能ではない。
【0031】
暗号化されたバイオメトリックデータが信頼を受けた環境に転送されると、信頼を受けたバイオメトリクスアプリケーションは、暗号化鍵を使用して暗号化されたバイオメトリックデータを解読し422、バイオメトリックデータを更に処理する424。このような更なる処理は、例えば、バイオメトリックデータ(例えば、指紋スキャン)に対応するバイオメトリックテンプレートを生成すること又は受信した処理後のデータに基づいて更なる許可の判定を行うことを含んでもよい。バイオメトリクスセンサに基づくバイオメトリックテンプレートは、必要に応じて、バイオメトリック検証、認証又は識別の間に将来の使用のために信頼を受けた環境に記憶されてもよい。信頼を受けた環境は、信頼を受けた環境の外部のアプリケーション、プロセス又はコンポーネントがバイオメトリックテンプレートへのアクセスを有さないことを確保することにより、バイオメトリックテンプレートの安全なデータ記憶を提供する。隔離、保護又は暗号化されたメモリ領域は、例えば、バイオメトリックデータ及びテンプレートの安全な記憶を提供してもよい。信頼を受けたバイオメトリクスアプリケーションは、バイオメトリックテンプレートを登録又は認証する426。例えば、バイオメトリックサンプルが最初に個人から取得された場合、結果のバイオメトリックテンプレートは、後に取得されるサンプルとの比較のためにデータベースに登録されてもよい。他方、有効なバイオメトリックテンプレートが既に登録されている場合、バイオメトリックテンプレートは、登録されたテンプレートに対する検証又は認証のために使用されてもよい。その後、信頼を受けていないアプリケーションは、登録又は認証の結果を通知される430。例えば、認証が登録されたバイオメトリックテンプレートと現在のバイオメトリックテンプレートとの間の一致を生じる場合、信頼を受けていないアプリケーションは、ユーザが保護されたリソースにアクセスすることを許可されたことを通知されてもよい。いくつかの場合には、通知は、信頼を受けていないアプリケーションが保護されたリソースにアクセスするために使用することができるセキュリティトークン又は他の情報を含んでもよい。通知430に続いて、バイオメトリクス認証セッションが終了してもよく、信頼を受けていないアプリケーションは、結果をユーザに通知する432。いくつかの場合には、例示的な方法は、(例えば、「成功」又は「失敗」メッセージ又は他の指示を介して)バイオメトリック認証の結果を信頼を受けていないアプリケーションのユーザに通知することを含む。この例示的な方法は、コンピューティング環境で実行するいずれかのアプリケーションがバイオメトリクス認証を要求する毎に繰り返されてもよい。
【0032】
<例示的なシステム>
図5は、実施例に従ってバイオメトリックデータのキャプチャ、処理及び管理のための技術を実行し得る例示的なシステム500を示す。いくつかの実施例では、システム500は、メディアシステムでもよいが、システム500はこの点に限定されない。例えば、システム500は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、セルラ電話、セルラ電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、セットトップボックス、ゲームコンソール、又はグラフィックレンダリング動作を実行可能な他のこのようなコンピューティング環境に組み込まれてもよい。
【0033】
いくつかの実施例では、システム500は、ディスプレイ520に結合されたプラットフォーム502を含む。プラットフォーム502は、コンテンツサービスデバイス530若しくはコンテンツ配信デバイス540又は他の同様のコンテンツソースのようなコンテンツデバイスからコンテンツを受信してもよい。例えば、プラットフォーム502及び/又はディスプレイ520と相互作用するために、1つ以上のナビゲーション機能を含むナビゲーションコントローラ550が使用されてもよい。これらの例示的なコンポーネントのそれぞれについて、以下により詳細に説明する。
【0034】
いくつかの実施例では、プラットフォーム502は、チップセット505、プロセッサ510、メモリ512、記憶装置514、グラフィックサブシステム515、アプリケーション516及び/又は無線機518のいずれかの組み合わせを含む。チップセット505は、プロセッサ510、メモリ512、記憶装置514、グラフィックサブシステム515、アプリケーション516及び/又は無線機518の間の相互通信を提供する。例えば、チップセット505は、記憶装置514との相互通信を提供可能な記憶アダプタ(図示せず)を含んでもよい。
【0035】
プロセッサ510は、例えば、CISC(Complex Instruction Set Computer)又はRISC(Reduced Instruction Set Computer)プロセッサ、x86命令セット互換プロセッサ、マルチコア又は他のマイクロプロセッサ若しくは中央処理装置(CPU)として実装されてもよい。いくつかの実施例では、プロセッサ510は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ等を含む。メモリ612は、例えば、限定されないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)又はスタティックRAM(SRAM)のような揮発性メモリデバイスとして実装されてもよい。記憶装置514は、例えば、限定されないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部記憶デバイス、アタッチ記憶デバイス、フラッシュメモリ、バッテリバックアップSDRAM(synchronous DRAM)及び/又はネットワークアクセス可能な記憶デバイスのような不揮発性記憶デバイスとして実装されてもよい。いくつかの実施例では、記憶装置514は、例えば、複数のハードドライブが含まれる場合に貴重なデジタルメディアのための記憶性能を強化した保護を増加させるための技術を含む。
【0036】
グラフィックサブシステム515は、表示のために静止画又はビデオのような画像の処理を実行してもよい。グラフィックサブシステム515は、例えば、グラフィック処理ユニット(GPU)又はビジュアル処理ユニット(VPU)でもよい。グラフィックサブシステム515とディスプレイ520とを通信可能に結合するために、アナログ又はデジタルインタフェースが使用されてもよい。例えば、インタフェースは、HDMI(登録商標)(Definition Multimedia Interface)、DisplayPort、無線HDMI(登録商標)及び/又は無線HD準拠の技術のいずれかでもよい。グラフィックサブシステム515は、プロセッサ510又はチップセット505に統合されることができる。グラフィックサブシステム515は、チップセット505に通信可能に結合されたスタンドアローン型カードでもよい。ここで説明するグラフィック及び/又はビデオ処理技術は、様々なハードウェアアーキテクチャに実装されてもよい。例えば、ここで提供されるハードウェア支援の権利アクセス違反検査機能は、グラフィック及び/又はビデオチップセット内に統合されてもよい。或いは、別個のセキュリティプロセッサが使用されてもよい。更に他の実施例では、権利アクセス違反検査のためのハードウェア支援を含むグラフィック及び/又はビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実装されてもよい。
【0037】
無線機518は、様々な適切な無線通信技術を使用して信号を送信及び受信することができる1つ以上の無線機を含むことができる。このような技術は、1つ以上の無線ネットワークの間の通信を伴ってもよい。例示的な無線ネットワークは、無線ローカルエリアネットワーク(WLAN:wireless local area network)、無線パーソナルエリアネットワーク(WPAN:wireless personal area network)、無線メトロポリタンエリアネットワーク(WMAN:wireless metropolitan area network)、セルラネットワーク及び衛星ネットワークを含む(しかし、これらに限定されない)。このようなネットワークの間の通信において、無線機618は、いずれかのバージョンの1つ以上の適用可能な標準に従って動作してもよい。
【0038】
いくつかの実施例では、ディスプレイ520は、いずれかのテレビ又はコンピュータ型のモニタ若しくはディスプレイを含む。ディスプレイ520は、例えば、液晶ディスプレイ(LCD:liquid crystal display)画面、電気泳動ディスプレイ(EPD:electrophoretic display)若しくはリキッドペーパーディスプレイ、フラットパネルディスプレイ、タッチスクリーンディスプレイ、テレビのようなデバイス及び/又はテレビを含んでもよい。ディスプレイ520は、デジタル及び/又はアナログでもよい。いくつかの実施例では、ディスプレイ520は、ホログラフィック又は3次元ディスプレイである。また、ディスプレイ520は、視覚投影を受けることができる透明な表面でもよい。このような投影は、様々な形式の情報、画像及び/又は物体を伝えてもよい。例えば、このような投影は、モバイル拡張現実(MAR:mobile augmented reality )アプリケーションのための視覚オーバーレイでもよい。1つ以上のソフトウェアアプリケーション516の制御で、プラットフォーム502は、ディスプレイ620上にユーザインタフェース522を表示することができる。
【0039】
いくつかの実施例では、コンテンツサービスデバイス530は、いずれかの国家、国際及び/又は独立サービスによりホストされることができ、したがって、例えば、インターネット又は他のネットワークを介してプラットフォーム502にアクセス可能である。コンテンツサービスデバイス530は、プラットフォーム502及び/又はディスプレイ520に結合されることができる。プラットフォーム502及び/又はコンテンツサービスデバイス630は、メディア情報をネットワーク560に且つネットワーク560から通信(例えば、送信及び/又は受信)するために、ネットワーク560に結合されることができる。コンテンツ配信デバイス540は、プラットフォーム502及び/又はディスプレイ520に結合されることができる。いくつかの実施例では、コンテンツサービスデバイス530は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、デジタル情報及び/又はコンテンツを配信可能なインターネット可能デバイス又は機器、及びネットワーク560を介して或いは直接的にコンテンツプロバイダとプラットフォーム502及び/又はディスプレイ520との間でコンテンツを一方向又は双方向に通信可能な他の同様のデバイスを含む。コンテンツは、ネットワーク560を介してシステム500内のコンポーネントのいずれか1つ及びコンテンツプロバイダに及びこれらから一方向及び/又は双方向に通信されてもよいことが分かる。コンテンツの例は、例えば、ビデオ、音楽、グラフィック、テキスト、医療及びゲームコンテンツ等を含むいずれかのメディア情報を含んでもよい。
【0040】
コンテンツサービスデバイス530は、メディア情報、デジタル情報及び/又は他のコンテンツを含むケーブルテレビ番組のようなコンテンツを受信する。コンテンツプロバイダの例は、いずれかのケーブル若しくは衛星テレビ又は無線若しくはインターネットコンテンツプロバイダを含んでもよい。提供される例は、本開示の範囲を限定することを意図するものではない。いくつかの実施例では、プラットフォーム502は、1つ以上のナビゲーション機能を有するナビゲーションコントローラ550から制御信号を受信する。コントローラ550のナビゲーション機能は、例えば、ユーザインタフェース522と相互作用するために使用されてもよい。いくつかの実施例では、ナビゲーションコントローラ550は、ユーザが空間(例えば、連続且つ3次元)データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント(具体的には、ヒューマンインタフェースデバイス)でもよいポインティングデバイスでもよい。グラフィカルユーザインタフェース(GUI)並びにテレビ及びモニタのような多くのシステムは、ユーザが身体ジェスチャを使用して制御し、データをコンピュータ又はテレビに提供することを可能にする。
【0041】
コントローラ550のナビゲーション機能の動きは、ディスプレイに表示されたポインタ、カーソル、焦点リング、又は他の視覚インジケータの動きにより、ディスプレイ(例えば、ディスプレイ520)上に反映されることができる。例えば、ソフトウェアアプリケーション516の制御で、ナビゲーションコントローラ550に位置するナビゲーション機能は、ユーザインタフェース522上に表示された視覚ナビゲーション機能にマッピングされてもよい。いくつかの実施例では、コントローラ550は、別個のコンポーネントではなく、プラットフォーム502及び/又はディスプレイ520に統合される。
【0042】
いくつかの実施例では、ドライバ(図示せず)は、例えば、有効にされた場合、初期ブートアップの後にボタンのタッチによって、ユーザがテレビのようなプラットフォーム502を直ちにオン及びオフすることを可能にする技術を含む。プログラムロジックは、プラットフォームが「オフ」になっているときに、プラットフォーム502がコンテンツをメディアアダプタ又は他のコンテンツサービスデバイス530若しくはコンテンツ配信デバイス540にストリーミングすることを可能にしてもよい。さらに、チップセット505は、例えば、5.1サラウンドサウンドオーディオ及び/又は高解像度7.1サラウンドサウンドオーディオのためのハードウェア及び/又はソフトウェアサポートを含んでもよい。ドライバは、統合されたグラフィックプラットフォームのためのグラフィックドライバを含んでもよい。いくつかの実施例では、グラフィックドライバは、PCI(peripheral component interconnect)エクスプレスグラフィックカードを含む。
【0043】
様々な実施例では、システム500に示すコンポーネントのうちいずれか1つ以上は統合されることができる。例えば、プラットフォーム502及びコンテンツサービスデバイス530は統合されてもよく、或いはプラットフォーム502及びコンテンツ配信デバイス540は統合されてもよく、或いはプラットフォーム502、コンテンツサービスデバイス530及びコンテンツ配信デバイス540は統合されてもよい。様々な実施例では、プラットフォーム502及びディスプレイ520は、統合されたユニットでもよい。例えば、ディスプレイ520及びコンテンツサービスデバイス530は統合されてもよく、或いはディスプレイ520及びコンテンツ配信デバイス540は統合されてもよい。これらの例は、本開示の範囲を限定することを意図するものではない。
【0044】
様々な実施例では、システム500は、無線システム、有線システム又はこれらの双方の組み合わせとして実装されることができる。無線システムとして実装される場合、システム500は、1つ以上のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、制御ロジック等のように、無線共有媒体上で通信するのに適したコンポーネント及びインタフェースを含んでもよい。無線共有媒体の例は、RFスペクトル等のような無線スペクトルの部分を含んでもよい。有線システムとして実装される場合、システム500は、入出力(I/O)アダプタ、I/Oアダプタを対応する有線通信媒体に接続するための物理コネクタ、ネットワークインタフェースカード(NIC:network interface card)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等のように、有線通信媒体上で通信するのに適したコンポーネント及びインタフェースを含むことができる。有線通信媒体の例は、ワイヤ、ケーブル、メタルリード、印刷回路基板(PCB:printed circuit board)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバ等を含む。
【0045】
プラットフォーム502は、情報を通信するために1つ以上の論理又は物理チャネルを確立することができる。情報は、メディア情報及び制御情報を含んでもよい。メディア情報は、ユーザによる消費を意図したコンテンツを表すいずれかのデータを示す。コンテンツの例は、例えば、音声会話からのデータ、テレビ会議、ストリーミングビデオ、電子メール又はテキストメッセージ、ボイスメールメッセージ、英数字記号、グラフィック、画像、ビデオ、テキスト等を含む。制御情報は、自動化システムによる使用を意図したコマンド、命令又は制御ワードを表すいずれかのデータを示す。例えば、制御情報は、システムを通じてメディア情報をルーティングするために使用されてもよく、或いはノードに対して所定の方式で(例えば、ここで説明する権利アクセス違反検査のために支援するハードウェアを使用して)メディア情報を処理するように命令するために使用されてもよい。しかし、実施例は、
図5に図示又は記載するエレメント又はコンテキストに限定されない。
【0046】
前述のように、システム500は、変化する物理的スタイル又は形状因子に具現化されてもよい。
図6は、システム500が具現化され得る小型のデバイス600の実施例を示す。いくつかの実施例では、例えば、デバイス600は、無線機能を有するモバイルコンピューティングデバイスとして実装されてもよい。モバイルコンピューティングデバイスは、例えば、処理システムと、1つ以上のバッテリのようなモバイル電源又はパワーサプライとを有するいずれかのデバイスを示す。
【0047】
前述のように、モバイルコンピューティングデバイスの例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、セルラ電話、セルラ電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等を含む。
【0048】
モバイルコンピューティングデバイスの例はまた、手首コンピュータ、指コンピュータ、指輪コンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣服コンピュータ又は他のウェアラブルコンピュータのような、人によって装着されるように構成されたコンピュータを含む。いくつかの実施例では、例えば、モバイルコンピューティングデバイスは、コンピュータアプリケーション並びに音声通信及び/又はデータ通信を実行可能なスマートフォンとして実装されてもよい。いくつかの実施例は、スマートフォンとして実装されたモバイルコンピューティングデバイスについて説明するが、他の実施例は、他の無線モバイルコンピューティングデバイスを使用して同様に実装され得ることが分かる。
【0049】
図6に示すように、デバイス600は、筐体602と、ディスプレイ604と、入出力(I/O)デバイス606と、アンテナ608とを含む。デバイス600は、例えば、ナビゲーション機能612を含んでもよい。ディスプレイ604は、モバイルコンピューティングデバイスに適した情報を表示するためのいずれか適切なディスプレイユニットを含む。I/Oデバイス606は、情報をモバイルコンピューティングデバイスに入力するためのいずれか適切なI/Oデバイスを含む。I/Oデバイス606の例は、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカ、音声認識デバイス及びソフトウェア等を含む。情報は、マイクロフォンによってデバイス600に入力されてもよい。このような情報は、音声認識デバイスによりデジタル化されてもよい。
【0050】
様々な実施例は、ハードウェアエレメント、ソフトウェアエレメント又はこれらの双方を使用して実装されることができる。ハードウェアエレメントの例は、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗、コンデンサ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含む。ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらのいずれかの組み合わせを含んでもよい。ハードウェアエレメント及び/又はソフトウェアエレメントが使用されるか否かは、所望の計算レート、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計上又は性能上の制約のような、いずれかの数の要因に従って実施例毎に変化してもよい。
【0051】
いくつかの実施例は、例えば、機械により実行された場合、機械に本開示の実施例による方法及び/又は動作を実行させ得る命令又は一式の命令を記憶し得る機械読み取り可能媒体又は物品を使用して実装されてもよい。このような機械は、例えば、いずれか適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサ等を含んでもよく、ハードウェアとソフトウェアとのいずれか適切な組み合わせを使用して実装されてもよい。機械読み取り可能媒体又は物品は、例えば、いずれか適切な種類のメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、記憶デバイス、記憶物品、記憶媒体及び/又は記憶ユニット、例えば、メモリ、取り外し可能又は取り外し不可能媒体、消去可能又は消去不可能媒体、書き込み可能又は再書き込み可能媒体、デジタル又はアナログ媒体、ハードディスク、フロッピーディスク、CD-ROM(Compact Disk Read Only Memory)、CD-R(Compact Disk Recordable)、CD-RW(Compact Disk Rewriteable)、光ディスク、磁気媒体、光磁気媒体、取り外し可能メモリカード又はディスク、様々な種類のDVD(Digital Versatile Disk)、テープ、カセット等を含んでもよい。命令は、いずれか適切なハイレベル、ローレベル、オブジェクト指向型、ビジュアル、コンパイル済み及び/又はインタープリタ型プログラミング言語を使用して実装されたいずれか適切な種類の実行可能コードを含んでもよい。
【0052】
特に言及しない限り、「処理」、「計算」、「算出」、「決定」等のような用語は、コンピューティングシステムのレジスタ及び/又はメモリ内の物理量(例えば、電子)として表されたデータを、コンピューティングシステムのメモリ、レジスタ又は他のこのような情報記憶装置、送信又はディスプレイ内の物理量として同様に表された他のデータに操作及び/又は変換する、コンピュータ若しくはコンピューティングシステム又は同様の電子コンピューティングデバイスの動作及び/又はプロセスを示すことが分かる。
【0053】
<更なる例示的な実施例>
以下の例は、更なる実施例に関し、これらから、複数の置換及び構成が明らかになる。
【0054】
例1は、コンピューティングシステムであり、アプリケーション実行環境と、オペレーティングシステムと、オペレーティングシステムを介してアプリケーション実行環境から選択的にアクセス可能なデータ記憶装置と、データ記憶装置への直接のアクセスを有するバイオメトリクスコンポーネントとを含む。バイオメトリクスコンポーネントは、アプリケーション実行環境からデータ記憶装置へのアクセスを選択的に禁止するように構成される。
【0055】
例2は、例1の対象物を含み、バイオメトリクスコンポーネントは、バイオメトリクスセンサを含み、バイオメトリクスコンポーネントは、バイオメトリックサンプルをキャプチャするためのアプリケーション実行環境からの要求に応じて、アプリケーション実行環境からデータ記憶装置へのアクセスを禁止し、バイオメトリックデータを取得するためにバイオメトリクスセンサを用いてバイオメトリックサンプルをキャプチャし、暗号化鍵を使用してバイオメトリックデータを暗号化し、暗号化されたバイオメトリックデータをデータ記憶コンポーネントに記憶し、バイオメトリックデータの暗号化に続いてオペレーティングシステムを介してアプリケーション実行環境からデータ記憶装置へのアクセスを許可するように更に構成される。
【0056】
例3は、前述の例のいずれかの対象物を含み、バイオメトリクスコンポーネントは、バイオメトリクスセンサとセキュリティエンジンとを含み、セキュリティエンジンは、バイオメトリクスセンサから取得されたバイオメトリックデータを暗号化するように構成される。バイオメトリックセンサは、例えば、指紋センサ、マイクロフォン、又はバイオメトリックサンプルがキャプチャされることを可能にする他のこのようなツールでもよい。
【0057】
例4は、前述の例のいずれかの対象物を含み、アプリケーション実行環境は、オペレーティングシステムを介してデータ記憶装置へのアクセスを有する信頼を受けていないアプリケーション実行環境と、オペレーティングシステムを介してデータ記憶装置へのアクセスを有する信頼を受けたアプリケーション実行環境とを含む。
【0058】
例5は、例4の対象物を含み、信頼を受けていないアプリケーション実行環境は、信頼を受けたアプリケーション実行環境から動作可能に隔離される。
【0059】
例6は、例4及び5のいずれかの対象物を含み、オペレーティングシステムは、暗号化されたバイオメトリックデータをデータ記憶装置から信頼を受けたアプリケーション実行環境に転送するように構成される。
【0060】
例7は、例4、5及び6のいずれかの対象物を含み、信頼を受けたアプリケーション実行環境は、バイオメトリクスセンサから取得されたバイオメトリックデータに基づいてユーザを登録するか、バイオメトリックデータに基づいてユーザを認証するか、或いはこれらの双方を行うように構成されたバイオメトリクスアプリケーションを含む。
【0061】
例8は、例4、5、6及び7のいずれかの対象物を含み、信頼を受けたアプリケーション実行環境は、暗号化鍵を使用してバイオメトリクスセンサから取得された暗号化されたバイオメトリックデータを解読するように構成されたバイオメトリクスアプリケーションを含む。
【0062】
例9は、例4、5、6、7及び8のいずれかの対象物を含み、信頼を受けたアプリケーション実行環境は、バイオメトリックテンプレートを生成するために、バイオメトリクスセンサから取得されたバイオメトリックデータを処理するように構成されたバイオメトリクスアプリケーションを含む。
【0063】
例10は、コンピューティングシステムでバイオメトリックデータをキャプチャ、処理及び管理する方法である。この方法は、バイオメトリックサンプルをキャプチャするためのコンピューティングシステムのアプリケーション実行環境からの要求に応じて、アプリケーション実行環境からコンピューティングシステムのデータ記憶コンポーネントへのアクセスを禁止するステップと、バイオメトリックデータを取得するためにバイオメトリクスセンサを用いてバイオメトリックサンプルをキャプチャするステップと、暗号化鍵を使用してバイオメトリックデータを暗号化するステップと、暗号化されたバイオメトリックデータをデータ記憶コンポーネントに記憶するステップと、バイオメトリックデータの暗号化に続いてアプリケーション実行環境からデータ記憶コンポーネントへのアクセスを許可するステップとを含む。
【0064】
例11は、例10の対象物を含み、バイオメトリックデータの暗号化は、オペレーティングシステムとは独立したコンピューティングシステムのバイオメトリクスコンポーネントにより実行される。
【0065】
例12は、例10及び11のいずれかの対象物を含み、この方法は、オペレーティングシステムを介して、暗号化されたバイオメトリックデータをデータ記憶コンポーネントからアプリケーション実行環境内の信頼を受けた実行環境に転送するステップを含み、アプリケーション実行環境内の信頼を受けていない実行環境は、信頼を受けた実行環境から動作可能に隔離される。
【0066】
例13は、例12の対象物を含み、この方法は、信頼を受けた実行環境内で暗号化鍵を生成するステップを含む。
【0067】
例14は、例12及び13の対象物を含み、この方法は、信頼を受けた実行環境内で暗号化鍵を使用して暗号化されたバイオメトリックデータを解読するステップを含む。
【0068】
例15は、例12、13及び14のいずれかの対象物を含み、この方法は、信頼を受けた実行環境内でバイオメトリックテンプレートを生成するためにバイオメトリックデータを処理するステップを含む。
【0069】
例16は、例12、13、14及び15のいずれかの対象物を含み、この方法は、バイオメトリックデータに基づいてユーザを登録するか、ユーザを認証するか、或いはこれらの双方を行うステップを含む。
【0070】
例17は、1つ以上のプロセッサにより実行された場合、プロセスを実行させる符号化された命令を有する過渡的でないコンピュータプログラムプロダクトである。プロセスは、バイオメトリックサンプルをキャプチャするためのコンピューティングシステムのアプリケーション実行環境からの要求に応じて、アプリケーション実行環境からコンピューティングシステムのデータ記憶コンポーネントへのアクセスを禁止し、バイオメトリックデータを取得するためにバイオメトリクスセンサを用いてバイオメトリックサンプルをキャプチャし、暗号化鍵を使用してバイオメトリックデータを暗号化し、暗号化されたバイオメトリックデータをデータ記憶コンポーネントに記憶し、バイオメトリックデータの暗号化に続いてアプリケーション実行環境からデータ記憶コンポーネントへのアクセスを許可することを含む。
【0071】
例18は、例17の対象物を含み、バイオメトリックデータの暗号化は、オペレーティングシステムとは独立したコンピューティングシステムのバイオメトリクスコンポーネントにより実行される。
【0072】
例19は、例17及び18のいずれかの対象物を含み、プロセスは、オペレーティングシステムを介して、暗号化されたバイオメトリックデータをデータ記憶コンポーネントからアプリケーション実行環境内の信頼を受けた実行環境に転送することを含み、アプリケーション実行環境内の信頼を受けていない実行環境は、信頼を受けた実行環境から動作可能に隔離される。
【0073】
例20は、例19の対象物を含み、プロセスは、信頼を受けた実行環境内で暗号化鍵を生成することを含む。
【0074】
例21は、例19及び20の対象物を含み、プロセスは、信頼を受けた実行環境内で暗号化鍵を使用して暗号化されたバイオメトリックデータを解読することを含む。
【0075】
例22は、例19、20及び21のいずれかの対象物を含み、プロセスは、信頼を受けた実行環境内でバイオメトリックテンプレートを生成するためにバイオメトリックデータを処理することを含む。
【0076】
例23は、例19、20、21及び22のいずれかの対象物を含み、プロセスは、バイオメトリックデータに基づいてユーザを登録するか、ユーザを認証するか、或いはこれらの双方を行うことを含む。
【0077】
例示的な実施例の前述の説明は、例示及び説明の目的で提示されている。この説明は、網羅的なことを意図するものではなく、本開示を開示された正確な形式に限定することを意図するものでもない。多くの変更及び変形は、この開示を鑑みて可能である。この開示は、様々な実施例の範囲を限定することを意図するものではない。この出願に対する優先権を主張して将来出願される出願は、異なる方式で開示の対象物を請求してよく、一般的に、様々に開示又は例示された1つ以上の限定のいずれかのセットを含んでもよい。