説明

非安全アプリケーションへの安全サービスの提供

【課題】追加処理装置を使用して安全および非安全データを処理し第1のプロセッサの制御下でタスクを実施する。
【解決手段】データ処理装置は安全および非安全モードでデータを処理するデータ・プロセッサを含み、それは安全モードにおいて、非安全モードでデータを処理するデータ・プロセッサにはアクセスできない安全なデータへのアクセスを有す。さらなる処理装置が非安全モードから発行されたデータ・プロセッサからの要求に応答してタスクを実施し、タスクは少なくともいくつかは安全なデータであるデータの処理を含み、さらなる処理装置は安全なデータ・ストアを含み、それは非安全モードでデータ・プロセッサ上で実行しているプロセスへアクセスできず、要求を発行する前にデータ・プロセッサはさらなる処理装置上でセットアップ操作を実施する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理に関するものであり、特に、追加処理装置を使用して安全(secure)および非安全(non−secure)データを処理し第1のデータ・プロセッサの制御下でタスクを実施することに関するものである。
【背景技術】
【0002】
安全なデータを処理することができるデータ処理装置が知られており、一般的に安全なデータが処理されている時にプロセッサは安全モードで作動しているようにされる。安全モードで作動している時に、データ処理装置は非安全モードではアクセスできない安全なデータにアクセスすることができる。モード間で切り替わる非安全プロセスから安全なデータを分離し続けるには、さまざまな処理ルーチンを実行して安全および非安全側間で安全なデータの漏洩が無いことを保証する必要がある。このように、一般的には実施される暗号プロセス等の安全サービスに対する要求に応答して、システムはオペレーティング・システムに特権モードを呼び出させそれに入らせる。そこから安全モードへの呼出しが行われ、正しく安全モードに入ることを保証する処理ルーチンが実施される。次に、安全サービスを実施することができ、その後、システムはさらに処理ルーチンを実施する必要がある非安全モードへ切り替わる。このように、安全サービスが小さなタスクにすぎなければ、切替えは性能における非常に大きなオーバヘッドとなることがある。
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明の第1の側面は、安全および非安全モードでデータを処理するデータ・プロセッを含むデータ処理装置であって、前記データ・プロセッサは前記非安全モードでデータを処理する前記データ・プロセッサにはアクセスできない安全なデータへのアクセスを有する前記安全モードでデータを処理し、かつ、前記非安全モードから発行された前記データ・プロセッサからの要求に応答してタスクを実施するさらなる処理装置を含み、前記タスクは少なくともいくつかは安全なデータである処理データを含み、前記さらなる処理装置は安全なデータ・ストアを含み、前記安全なデータ・ストアは非安全モードで前記データ・プロセッサ上で実行しているプロセスにはアクセスできず、前記要求のいずれかを発行する前に前記データ・プロセッサは前記さらなるデータ処理装置上でセットアップ操作を実施するようにされており、前記セットアップ操作は前記安全モードで作動する前記データ・プロセッサにより実施され前記さらなる処理装置上の前記安全なデータ・ストア内に安全なデータを格納することを含み、前記安全なデータは前記タスクを実施するために前記さらなる処理装置により要求された安全なデータであり、前記非安全モードで作動している前記データ・プロセッサからの前記要求の受信に応答して、前記さらなるデータ処理装置は前記安全なデータ・ストア内に格納されたデータを使用して前記タスクを実施し、必要な任意の安全なデータにアクセスする。
【0004】
本発明は安全および非安全データの両方を安全モードで処理することができ、かつ非安全データを非安全モードで処理できるデータ・プロセッサを含んでいる。それはさらなる処理装置も有し、それを使用してこのさらなる処理装置が効率的に実施するように設計されている特定のタスクを実施して全体装置の性能を高めることができる。本発明は安全なデータを非安全側から分離するのに慎重な処理が必要であるため、一方側から他方側への切替えに数百サイクルかかることがあることを認識している。このように、アプリケーションがデータ・プロセッサ上の非安全側で実行されており、ある安全なデータの処理を実施するのにさらなる処理装置が必要であれば、一般的な処理タスクの実施には命令される度に非安全側から安全側への切替えが伴い、さらなる処理装置は多くのサイクルを要する操作を実施していたのではない限り性能に否定的影響を及ぼす。本発明は安全なデータ・ストアを有するさらなる処理装置を提供し、データ・プロセッサを安全モードからセットアップ操作を実施し、その安全なタスクを実施するのに必要な任意の安全なデータをその安全なデータ・ストアに格納することによりさらなる処理装置をセットアップするように構成してこの問題に取り組む。このように、安全なデータ・ストアを有するさらなる処理装置を提供し、データ・プロセッサがそれを安全モードでセットアップできるようにすることにより、モードを切り替えることなくこの非安全モードで作動しているデータ・プロセッサからの要求に応答して安全なデータを使用するタスクを実施することができる。これは処理時間の多くのサイクルを節減することができ、全体デバイスの効率を改善しながら小さく安全なタスクをさらなる処理装置により実施することができる。
【課題を解決するための手段】
【0005】
一実施例では、前記格納された安全なデータはメモリの安全な部分の少なくとも1つのアドレスを含み、前記さらなるデータ処理装置は前記タスクを実施しながら前記少なくとも1つのアドレスに格納された安全なデータにアクセスする。
【0006】
安全なデータはいくつかの事を含むことができるが、メモリの安全な部分内の場所を示す1つ以上のアドレスを含むことができる。この情報を有するさらなるデータ処理手段を提供することにより、それはメモリの安全な部分にアクセスすることができ、したがって、そこに格納された安全なデータをこのタスクで使用することができる。
【0007】
ある実施例では、前記さらなるデータ処理装置は前記少なくとも1つのアドレスの少なくとも1つにより指示される場所において、前記メモリの前記安全な部分内で前記タスクを実施しながら発生された少なくともあるデータを格納するようにされている。
【0008】
さらに、さらなる処理装置からメモリの安全な部分への実質的にポインタを提供することにより、そこへの予め定められた場所であってもさらなる処理装置にメモリの安全な部分へのアクセスが許され、さらなる処理装置はそれを使用してその処理中に発生できる任意の機密(sensitive)データを格納することができる。それによりシステムの完全性が維持されることを保証することができる。
【0009】
ある実施例では、前記データ・プロセッサは複数のアプリケーションを処理するようにされ、かつ処理中に前記要求を発行する前記複数のアプリケーションの任意の1つへのコンテキスト・スイッチに応答して前記セットアップ操作を実施するようにされている。
【0010】
データ・プロセッサはさらなる処理装置がさまざまな異なる時間にそのタスクを実施できるようにセットアップ操作を実施することができるが、ある実施例では、特定のアプリケーションへのコンテキスト・スイッチに応答してそれを実施する。特定のアプリケーションにより要求されるタスクを実施するようにさらなる処理装置をセットアップするのが簡便となることがある。タスクが何回も実施されることを要求するような特定のアプリケーションである場合、アプリケーションが実際に実行されている間にセットアップ操作をアプリケーションの始めにだけ実施して再度実施しなければ、その特定のアプリケーションが要求するタスクに関する安全なデータだけがさらなる処理装置内に格納されることを許しながら、セットアップ操作はこのアプリケーションに対して1回しか実施しなくてよく処理時間が節減される。これはセキュリティと性能改善との間の良好な妥協を提供する。
【0011】
ある実施例では、前記データ・プロセッサは複数のアプリケーションを処理するようにされ、かつ前記複数のアプリケーションの少なくともいくつかに対するリセットに続いて前記セットアップ操作を実施するようにされ、かつ前記さらなるアプリケーションへのコンテキスト・スイッチの検出に応答して予めセットアップされていないさらなるアプリケーションに対する前記セットアップ操作を追加実施するようにされている。
【0012】
あるいは、データ・プロセッサが処理するようにされているいくつかまたは全てのアプリケーションが実施するタスクに対してセットアップ操作を実施することができる。これにはセットアップ操作を頻繁に実施する必要がないという利点があるが、さらなる処理装置内により安全な情報を格納する必要がある。
【0013】
データ・プロセッサが実施するようにされている複数のアプリケーションのいくつかに対してセットアップ操作が実施される場合、さらなる処理装置からタスクを要求することがありさらなる処理装置が実施する安全なデータでセットアップされていない新しいアプリケーションへのコンテキスト・スイッチをデータ・プロセッサが実施するまで、これらのアプリケーションは処理されかつタスクが要求されて実施される。このコンテキスト・スイッチに応答して、データ・プロセッサは安全モードに切り替り、このアプリケーションを処理するのに必要な安全なデータをさらなる処理装置へ送る。次に、それは非安全モードに切り替り、処理を続ける。次に、それは元々処理するようにセットアップされたアプリケーションおよびこのさらなるアプリケーションを処理し続けることができる。もう1つのアプリケーションがそれに切り替えられると、さらなる処理装置は処理するようにセットアップされておらず再度安全モードに切り替る必要がある。こうして、多数の安全な処理タスクを実施することなくいくつかのアプリケーションを処理することができる。
【0014】
データ処理セキュリティはいくつかの方法で制御することができるが、ある実施例では、前記データ・プロセッサは、さらに、モニタ・モードを含み、前記安全および非安全モード間の処理の切り替りは前記モニタ・モードを介して実施される。
【0015】
データ処理装置の最も特権的で安全モードであるモニタ・モードを安全および非安全モード間の切替えに使用することは簡便で効率的なセキュリティ制御方法である。
【0016】
ある実施例では、前記さらなる処理装置は前記要求の受信に応答して前記データ・プロセッサへ安全な割込みを発行し、前記安全な割込みにより前記データ・プロセッサは前記モニタ・モードへ切り替って前記要求を発行する前記アプリケーションの完全性(integrity)チェックを実施し、前記さらなる処理装置は肯定的な完全性チェックを示す前記データ・プロセッサからの信号の受信に続いて前記タスクを実施する。
【0017】
ある実施例では、さらなる処理装置が要求される時にデータ処理装置は安全な割込みを発行することができる。さらなる処理装置がデータ・プロセッサに安全な割込みを発行できるようにすることにより、モニタ・モードへの切替えはより多くのサイクルを要するソフトウェア介入を必要とせずに効率的に実施することができる。モニタ・モードにおいてさらなるデータ処理装置を要求したアプリケーションの完全性を一度チェックすることができる。それにより、さらにセキュリティが与えられる。さらなる処理装置は非安全アプリケーションにセキュリティ・サービスを提供している。このように、安全なタスクを実施するさらなる処理装置を呼び出したアプリケーションの完全性をチェックできることは有利となることがある。
【0018】
ある実施例では、前記さらなる処理装置は前記データ・プロセッサにより発行された複数の前記要求に関して予め定められた挙動を検出し、前記予め定められた挙動の検出に応答して安全な割込みを発生するように適合されており、前記安全な割込みにより前記データ・プロセッサは前記モニタ・モードに切り替る。
【0019】
さらなるセキュリティ改善はさらなる処理装置にそのタスクを実施するためにそれが受信する要求に関連する予め定められた挙動を検出できるようにする論理を提供することによって作られる。ある挙動が検出されると、それは安全な割込みを発行することができ、それによりデータ・プロセッサはモニタ・モードに切り替ってアプリケーションを解析することができる。
【0020】
予め定められた挙動は、たとえば、同じキーと異なるデータを有する複数の要求とすることができる。これはハッカーが安全鍵(secure key)に関する情報を得る典型的な方法であり、したがって、さらなる処理装置がこの挙動を検出してデータ・プロセッサに知らせられるようにし、システムのセキュリティを攻撃するこのような既知の方法を迎え撃つ助けとする。別の疑わしい挙動は同じデータと異なる鍵を有する複数の要求かもしれない。
【0021】
ある実施例では、前記さらなるデータ処理装置の前記安全なデータ・ストアは安全なデータ・アイテムのテーブルと前記テーブル内の各データ・アイテムに関連するハッシュ値を格納するように構成され、前記テーブルは前記セットアップ操作中に埋められ、前記データ処理装置から発行された前記要求は前記テーブルからのアイテムを要求しかつ前記要求を有する対応するハッシュ値を供給し、前記さらなるデータ処理装置は前記要求されたアイテムに関連して格納された前記ハッシュ値と一致する供給された前記ハッシュ値に応答して前記要求されたアイテムの使用を許すだけである。
【0022】
さらなるデータ処理装置に格納された安全なデータはテーブルの形とすることができ、セキュリティを増すためにテーブル内に格納された各データ・アイテムに関連するハッシュ値を有する。さらなる処理装置は対応するハッシュ値を有する要求に応答してテーブル内の要求されたデータ・アイテムしか使用できないように構成することができる。それにより、安全サービスを要求するユーザ・アプリケーションとさらなる処理装置により格納された安全なデータ間のさらなるセキュリティ・チェックが提供される。
【0023】
ある実施例では、前記さらなる処理装置は、さらに、安全なレジスタを含み、前記安全なレジスタは前記メモリの安全な部分内のアドレスで埋められ、前記テーブルは前記アドレスへのオフセット値および前記セットアップ操作中の対応するハッシュ値で埋められる。
【0024】
安全なデータをいくつかの形で格納することができるが、ある実施例では、さらなる処理装置内の安全なレジスタ内に格納されたメモリの安全な部分内の場所を示すアドレス、およびこのアドレスからのオフセットを示す値のテーブルがある。要求されたハッシュ値を有する要求しか情報を使用できないようなオフセットに関連する対応するハッシュ値がある。
【0025】
ある実施例では、前記さらなる処理装置は暗号処理装置を含み、前記格納された安全なデータは暗号鍵の少なくとも1つのアドレスを含んでいる。
【0026】
さらなる処理装置はいくつかの機能を実施するデバイスとすることができるが、ある実施例では、それは暗号処理装置である。暗号処理装置は鍵の形の安全なデータを使用する必要がある。さらに、暗号機能を実施したい多くのユーザ・アプリケーションがある。このように、暗号機能をさらなる処理装置に提供すると、それはデータ・プロセッサ上の非安全アプリケーションから要求されることがあり、しかもこれらの暗号機能を非安全アプリケーションから効率的に実施できるようにするデータ・プロセッサの正規の安全な処理ルーチンを通ることなく安全な方法で安全な鍵を処理することができる。
【0027】
さらなる処理装置はいくつかの形をとることができるが、ある実施例では、それは非プログラマブル・ハードウェア・デバイスを含むことができる。
【0028】
ハードウェア・デバイスは選出されたタスクを特に効率的に実施できるだけでなく、ユーザ・ソフトウェアにより攻撃されることがないため極端に安全である。このように、安全なタスクを実施するこのようなデバイスの提供により、これらの安全なタスクはセキュリティを過度に妥協することなく非安全アプリケーションからの要求があり次第実施することができる。
【0029】
ある実施例では、前記さらなるデータ処理装置は前記少なくとも1つのアドレスが前記安全なメモリ部分の予め定められた部分にあり、前記安全なメモリ部の他の部分へのアクセスは許されないように抑制される。
【0030】
安全なメモリのある部分にしかアクセスできないようにさらなる処理装置を抑制するのが有利となることがある。さらなる処理装置は安全なデータ・ストアを有し侵入するのが困難となることがあるため、安全なメモリのある部分にしかアクセスできないようにしてセキュリティを改善し、あるデータがこのデバイスを介してアクセスされることは決してないという信頼を与えることが有利である。
【0031】
本発明のさらなる側面は安全および非安全モードでデータを処理するデータ・プロセッサを含むデータ処理装置上でデータを処理する方法を提供し、前記データ・プロセッサは前記非安全モードでデータを処理している前記データ・プロセッサにはアクセスできない安全なデータへのアクセスを有する前記安全なモードでデータを処理し、さらに、
安全なデータ・ストアを含むさらなる処理装置を含み、前記方法は、
前記安全なモードで作動する前記データ・プロセッサが前記さらなる処理装置上の前記安全なデータ・ストア内に安全なデータを格納することを含むセットアップ操作を前記さらなる処理装置上で実施するステップであって、前記安全なデータはタスクを実施するために前記さらなる処理装置により要求された安全なデータであり、前記タスクは少なくともそのいくつかは安全なデータであるデータの処理を含むステップと、
前記データ・プロセッサが非安全モードへ切り替るステップと、
前記データ・プロセッサがアプリケーションを処理して前記アプリケーションを処理しながら前記タスクを実施する要求を前記さらなる処理装置へ発行するステップと、
前記要求の受信に応答して、前記さらなるデータ処理装置が前記安全なデータ・ストア内に格納されたデータを使用して前記タスクを実施し必要な任意の安全なデータにアクセスするステップと、
を含んでいる。
【0032】
本発明のさらにもう1つの側面は安全および非安全モードでデータを処理する処理手段を含むデータ処理装置を提供し、前記処理手段は前記非安全モードでデータを処理している前記処理手段にはアクセスできない安全なデータへのアクセスを有する前記安全なモードでデータを処理し、かつ、
前記非安全モードから発行された前記処理手段からの要求に応答してタスクを実施するさらなる処理手段を有し、前記タスクは少なくともいくつかは安全なデータであるデータを処理することを含み、前記さらなる処理手段は安全なデータ・ストアを含み、前記安全なデータ・ストアは非安全モードで前記処理手段上で実行しているプロセスにアクセスすることができず、
任意の前記要求を発行する前に、前記処理手段は前記さらなるデータ処理手段上でセットアップ操作を実施するように構成され、前記セットアップ操作は前記安全なモードで作動している前記処理手段により実施され、前記さらなる処理手段上の前記安全なデータ・ストア内に安全なデータを格納することを含み、前記安全なデータは前記タスクを実施するために前記さらなる処理手段により要求された安全なデータであり、
前記非安全モードで作動している前記処理手段からの前記要求の受信に応答して、前記さらなる処理手段は前記安全なデータ・ストア内に格納されたデータを使用して前記タスクを実施し、必要な任意の安全なデータにアクセスする。
【0033】
本発明の前記した、およびその他の、特徴および利点は添付図と共に以下の実施例の詳細な説明を読めば自明である。
【実施例】
【0034】
図1は安全および非安全モードで作動できるコア10を有するデータ処理装置5を示す。このシステムには少なくとも部分的にモニタ・モードで実行するモニタ・プログラム12が設けられている。セキュリティ状態フラグはモニタ・モード内でしかアクセスできないライト(write)であり、モニタ・プログラムにより書き込むことができる。モニタ・プログラムは安全なドメインおよび非安全ドメイン間のいずれかの方向における全ての変化を管理する責任がある。コア外部から見てモニタ・モードは常に安全でありモニタ・プログラムは安全なメモリ内にある。セキュリティ状態フラグはこのモードで変化することができるため、モニタ・モード12は安全な処理モードと見なすことができ、モニタ・モード12のモニタ・プログラムはそれ自体にセキュリティ状態フラグを設定する能力があり、それはシステム内の究極のセキュリティ・レベルを全体として有効に提供する。
【0035】
モニタ・モードはシステム内で最高のセキュリティ・アクセス・レベルを有し、システムを非安全ドメインおよび安全ドメイン間でいずれかの方向に切り替える権利を与えられた唯一のモードである。このように、全てのドメイン切り替えがモニタ・モードへの切り替えおよびモニタ・モード内でのモニタ・プログラムの実行を介して行われる。
【0036】
非安全ドメイン内に、非安全オペレーティング・システムと協力して実行する複数の非安全アプリケーション・プログラムを実行する非安全オペレーティング・システムが設けられる。安全なドメイン内に、安全なカーネル・プログラムが設けられる。安全なカーネル・プログラムは安全なオペレーティング・システムを形成すると考えられる。典型的に、このような安全なカーネル・プログラムは、より安全にする傾向があるため安全なカーネルをできるだけ小さくかつ単純にできるように安全なドメイン内に設けなければならないアクティビティを処理するのに不可欠な機能だけを提供するように設計される。
【0037】
安全および非安全モード間で切り替る時に、データのセキュリティを制御し安全なデータは非安全側で決して利用できないことを保証するためにモニタ・モードが常に呼び出される。モニタ・モードに入るために、最初に安全な特権モードに入る。安全な割込みに応答する時以外は、非特権安全モードからモニタ・モードに入ることはできない。
【0038】
このように、非安全モードから安全モードに切り替りたい時に、コアは最初に特権非安全モードへ切り替り、次に安全モードが呼び出されてデバイスはモニタ・モードに切り替りそこでさまざまな処理ルーチンが実行されその後コア10が安全モードへ切り替る。
【0039】
データ処理装置5は非安全メモリ管理ユニット22および安全メモリ管理ユニット24も含んでいる。安全モードにおいて、コア10は安全メモリ管理ユニット24を介してメモリを調べ、非安全メモリ管理ユニット22を介してメモリを調べる時に非安全モードにおいて有するものとは異なるメモリ30のビュー(view)を有する。他の実施例では、安全側および非安全側を有する単一のMMUがあることもあり、安全側はメモリの安全な部分へのアクセスを管理することができる。安全側22および非安全側24を有するこのようなMMU21の例が図2に示されている。
【0040】
メモリ30は安全部分および非安全部分を有し、一般的に、安全部分は安全ビットおよびアドレスを設定して指示され、安全ビット設定は安全モードから安全メモリ管理ユニット24を介してしか見ることができない。
【0041】
本実施例では、データ処理装置5はAES符号化等の暗号タスクを実施するように設計されたハードウェア・デバイスである暗号アクセラレータ40も有する。これらの暗号タスクを実施するのに暗号鍵を使用する必要があることがお判りであろう。これらの鍵はデータ・プロセッサの非安全側では決して利用可能としてはならず、さもなくばシステムのセキュリティは脅かされる。
【0042】
従来、暗号プロセスが実施される時は、コア10は安全なデータにアクセスして機能を実施する前に安全モードに切り替えられている。しかしながら、安全から非安全モードへの切替えにはさまざまな処理ルーチンを実行して、安全なプロセスにより処理される任意のデータがその時非安全プロセスでは利用不能であることを保証する必要がある。これは性能に関して高くつく。
【0043】
本発明のこの実施例では、データ・プロセッサ10は安全モードである時にセットアップ・ルーチンを実施して、その暗号タスクを実施できるようにそれが必要とするデータで暗号デバイス40をセットアップする。これは特定のアプリケーションに対して行うことができる。このように、実施される暗号機能を必要とする特定のアプリケーションをコアが処理する場合、典型的にこのアプリケーションは実行中にこれらの機能を数回実施するよう暗号デバイス40を指令する。この実施例では、アプリケーションを実行する前に、コア10は安全モードに切り替ってセットアップ・ルーチンを実行する。このセットアップ・ルーチンは暗号デバイス40上の安全なデータ・ストア42内に1つ以上のアドレスを格納して、メモリの安全な部分内のどこに暗号プロセスを実施するのに必要な鍵が格納されるかを示す。暗号デバイス40内にこの情報が格納されると、データ・プロセッサ10は非安全モードに切り替って実施される暗号プロセスを呼び出すユーザ・アプリケーションを実行することができる。このように、アプリケーションが実行される間に暗号機能が実施されることを希望する時はいつでも暗号デバイス40にタスク要求を発行する。暗号デバイス40はデータ・ストア42内に格納された少なくとも1つの安全なアドレスを有し、したがって、安全なメモリ30内のこの安全なアドレスにアクセスすることができる。このように、それはそのアドレスに格納された暗号鍵を使用して暗号機能を実施することができる。暗号デバイス40はハードウェア非プログラマブル・デバイスであるため、無許可アクセスに対して非常に安全である。
【0044】
この実施例では、セットアップ操作は特定のアプリケーションに対して実施され、データ・プロセッサ・コア10が異なるアプリケーションにコンテキスト・スイッチする時は、新しいアプリケーションが暗号タスクが実施されることを必要とする場合、新しいアプリケーションに対してさらなるセットアップ・プロセスが実施される。
【0045】
代替実施例では、プロセッサ・コアはリセットされると安全モードからセットアップ操作を実施して、コア10が実行できるいくつかのアプリケーションから呼び出されたタスクを実施できるように暗号デバイスをセットアップする。これは暗号デバイス40内により多くの安全なデータを格納することを含む。このデータは、たとえば、レジスタ値44およびこのレジスタ値へのオフセット値の対応するテーブル42の形で格納することができる(図2参照)。これらのオフセット値はハッシュ値と関連付けて格納することができる。オフセット値はレジスタ44内に格納されたアドレスへのオフセットに関連し、異なる鍵の安全なメモリ内の格納場所へのポインタを提供する。このように、鍵2を必要とするタスク1が実施されることをアプリケーション1が必要とする場合、それはテーブル42内の格納場所2から鍵を要求する。この鍵を使用できるようにするために、それはこの格納場所に対応するハッシュ値を与える必要がある。これはあたかもアプリケーションに正しいハッシュ値が与えられていないような特別なセキュリティを提供し、さらなる処理装置はテーブルのエレメント2内に格納されたオフセットにより示される格納場所にアクセスすることができずこのタスクを実施しない。
【0046】
テーブル42内の追加データ格納場所は暗号デバイス40がデータを格納することができるメモリ30の安全な部分内のアドレスに関連することができる。これは、たとえば、暗号デバイスがビデオデータを暗号化するために非安全ユーザ・アプリケーションにより使用されるところで有用である。復号されたら、このビデオデータはまだ安全に格納されて、システムの安全側の制御下にある場合を除き、その非暗号化形式でコピーできないようにすることが重要である。このように、メモリの安全な部分にポインタを与えることにより暗号デバイス40はこの機密データをメモリ30の安全な部分内に格納してそのアクセスを制御することができる。
【0047】
暗号デバイス40はリセットでいくつかのアプリケーションを処理するようにセットアップされたが、新しいアプリケーションは暗号デバイスが実施するようにセットアップされないコア10により処理されることがある。このようなケースでは、このアプリケーションへのコンテキスト・スイッチによりプロセッサ・コアはモニタ・モードに切り替わって暗号デバイスへのさらなるセットアップ・ルーチンを実施し、他のアプリケーションだけでなくこのアプリケーションにより要求されたタスクを実施できるようにされる。
【0048】
図2は暗号デバイス40を詳細に示す。暗号デバイス40は暗号機能を実施する回路41を含み、さらに、ハッシュ・コンパレタ回路45と共に疑わしい挙動を検出する回路を含んでいる。特定のタスクを実施する要求がコア10から受信され、この要求は機能を実施して適切なハッシュを与えるのにどの鍵が必要であるかを示す。ハッシュ・コンパレタ45はハッシュが正しいかをチェックし、正しければアドレス44およびオフセット2により示される場所におけるメモリの安全な部分からMMU21の安全な部分22を介して鍵がアクセスされ、回路41により暗号機能が実施される。安全ではない暗号機能中に必要な任意のデータが非安全メモリ管理ユニット24を介してこの回路によりアクセスされる。
【0049】
同じ鍵を使用するが異なるデータを使用するいくつかの要求がコア10から受信されると疑わしい挙動検出器回路43が決定すると、安全な割込みがトリガされてコア10に送られ、それは即座にモニタ・モードに切り替ってアプリケーションの解析を実施する。
【0050】
デバイス40がそれをやるようにセットアップされれば、任意の非安全要求に応答して安全な割込みを自動的に発生することもできる。非安全ユーザ・アプリケーションからの暗号機能を使用する任意の指令によりコア10の安全モードによりテストされる非安全ユーザ・アプリケーションが完全な状態となる特に安全なシステムをこれは提供する。さらなる処理装置により発生された安全な割込みによりモニタ・モードが開始されると、ユーザ・アプリケーション自体内のソフトウェアに応答して呼び出された場合よりも遥かに少ないサイクルで安全モードへの切替えが実施される。データ・ストア42は鍵の格納場所には関連せずメモリの安全な部分内に復号されたデータを格納するために暗号デバイス40が使用できるメモリの安全な部分内の格納場所に関連するオフセット・アドレスをさらに含むことができる。
【0051】
デバイス40はそれがアクセスできるメモリ30の安全な部分内のアドレスがある値内に制限されるようにセットアップできることに注目しなければならない。これは追加セキュリティを提供しメモリのある部分をこのデバイスからアクセスできないようにすることができる。
【0052】
このデバイスは機能を実施する回路を含み、実際上、それが実施するように構成される機能をソフトウェアを介在させずに極端に効率的に実施するハードウェア・デバイスであることに注目しなければならない。これはそれを効率的にするだけでなく安全にする。
【0053】
図3は本発明の実施例に従ってデータ・プロセッサにより実施される方法ステップを示す。この実施例において、コアはそれが処理する各アプリケーションに対してアクセラレータを別々にセットアップするように構成される。
【0054】
このように、新しいアプリケーションへの切替えを示すコンテキスト・スイッチの受信に応答してそれは安全モードに入り、アクセラレータがその機能を実施するのに必要な安全なデータをこのアクセラレータの安全なデータ・ストア内に格納することにより、本実施例では暗号エンジンである、アクセラレータのセットアップ操作を実施する。次に、それは安全モードを出てアプリケーションの処理を開始する。アプリケーションの処理中に、それはタスクを実施する要求を暗号エンジンへ発行しかつ暗号エンジンからデータを受信する。それに対する機能を実施することを暗号エンジンに要求する新しいアプリケーションへコンテキスト・スイッチするさらなる要求があれば、それは再度安全モードに入りこの新しいアプリケーションに対するさらなるセットアップ・タスクを実施する。
【0055】
図4はアクセラレータ自体により実施されるステップを示すフロー図である。それはデータ・プロセッサからの要求が受信されるかどうかを調べる入力をポーリングする。要求が受信されると、それは要求により示された安全なデータ・ストア内のデータ・アイテムにアクセスする。これらの安全なデータ・アイテムはメモリの安全側内でのアドレスとすることができ、それは次にこれらのアドレスにアクセスしてそのタスクを処理するのに必要な安全なデータを検索する。それは次にアクセスしたデータ・アイテムを使用してそのタスクを実施する。
【0056】
それは次にそれが発生する機密データを安全なデータ・ストア内に示されたアドレスにおいて安全なメモリ内に格納する。そのタスクを完了すると、それはタスクが完了される表示をデータ・プロセッサに送り、さらにタスクを実施する要求を再度データ・プロセッサにポーリングする。
【0057】
前記した技術は出願中の米国特許出願第12/000,005号および第12/002,858号“Protecting the security ofsecure data sent from a central processor for processing by a further processing decive”および“Controlling Cleaning Of Data Values Within A HardwareAccelerator”に記述されている技術に関連している。これら2つの出願中の特許出願の開示はその全体がここに組み入れられている。
【0058】
さらなる処理装置またはARM(登録商標)データ処理装置内のハードウェア(HW)アシストにより使用される異なる技術のさらなる詳細が以下に開示される。
【0059】
安全側データにアクセスしたいユーザ・モードHWアシストに対する一般的な実行モデルはHWアシストが安全側へアクセスを試みる前に安全側またはトラストゾーン(TZ)ソフトウェアにより安全セッションが既に確立されていることである。
【0060】
安全側からのデータにアクセスする必要があるHWアシストに対して安全なセッションを管理する4つの潜在的方法がある。
【0061】
ソフトウェア(SW)内の全セキュリティを有する安全側へのソフトウェア(SW)エントリのデフォルト。安全なサービスが要求される度に、特権モードが入力され次にSMC(安全側への呼出し)が実行されて安全モニタに入る。次に、安全サービスが提供されプログラムはユーザ・モード・アプリケーションへ戻る。
【0062】
安全なモニタへのエントリに直接HWアシストへのアクセスを試行。このモードにおいて、HWアシストが呼び出される度に安全側へ入り安全なセッションを安全側で直接管理することができる。また、安全側SWは完全性が要求される物は何でも実行しHWにタスクを実施するよう指令することができる。これはHWアシストへの非安全アクセスを出来なくして実現することができる。
【0063】
グローバル安全セッションをセットアップし安全なアクセスを必要とする各プロセスに非安全側で利用可能な安全値のテーブルへの予め定義されたインデクスを提供。各テーブル値はハッシュ値と対とされて正しいハッシュ値を有するプロセスしか特定のテーブル・エントリへできないことを保証する。安全セッションは利用可能なテーブル・エントリおよび保護ハッシュ値が計算されるプロセス生成時間にセットアップされる。安全側はHWアシスト内の安全モードだけのレジスタへの安全ベース・テーブルのアドレスおよび有効テーブル範囲の書き込みも行う。アプリケーション・プログラムから安全なアイテムへアクセスするために、HWアシストはオフセットおよびハッシュ値によりユーザ・プログラミングされる。次に、HWアシスト・モジュールはこれらの値を使用して安全な情報にアクセスしハッシュをチェックする。このモデルでは、安全セッションはまだグローバル・ビューであり安全なモニタは正規のオペレーティング・システム・コンテキスト・スイッチ時に呼び出される必要はなく−オフセットおよびハッシュはコンテキスト・スイッチ時にプロセス・アプリケーション・スペース内に格納することができる。
【0064】
プロセス当たり1つの安全セッションをセットアップ。このモデルにおいて、各プロセスは有効にそれ自体の安全なセッションを有する。安全なセッションはプロセスがコンテキスト・スイッチ・インされコンテキストの終わりにセッションが閉じられる時にセットアップされる。HWアシストへのアクセスの度に安全なモニタへアクセスするのではなく、安全なモニタはコンテキストの始めと終りにしかアクセスされない。このモデルの利点はHWアシスト内に格納される任意の安全な状態も安全なモニタにより直接またはCA_STATUSレジスタの安全なシャドーを有することによりコンテキスト・スイッチ時に保存できることである。CA_STATUSレジスタはHWアシスト・モジュールに対する状態を提供するレジスタであり、特権アクセスを有する。
【0065】
HWアシストはタスクが完了する前の実行中に割り込まれ、後で必要に応じて再開することができる。HWアシストの実行中に割込みが受信されると、割込みはHWアシストをなんら変更することなく通常のARM(登録商標)方法で入力される。割込ハンドラ内で、プログラマは次のオプションを有する。
1. HWアシストには何もせずに実行を続けさせる。コアのシステム・プログラミングはHWアシストがまだメモリのその正しいビューを見る(すなわち、ページ・テーブルはまだ変化されていない)ことを保証しなければならないことに注目願いたい。
2. HWアシストを一時的にサスペンドするが、他のためには使用しない。(MSUSPEND)
3. HWアシストをサスペンドし任意のダーティ状態をメモリに保存し戻してHWアシストが何か他で使用できるようにする。(MSUSPENDC)
【0066】
(2)および(3)のケースでは、割込ハンドラが完了するとHWアシストはレジューム・コマンドにより再開される。(2)に対しては、実行は終わったところから再開され、(3)では実行を続ける前に最初にHWアシストへ中間状態をリロードしなければならない。図5はこれら両方のケースに対する制御フローを示す。この図において、CA_STATEレジスタはHWアシスト・モジュールに対する記述子へのポインタを含むレジスタであり、特権またはユーザ・アクセスを有する。
【0067】
ジェネリック割込ハンドラに対して、MSUSPENDおよびMRESUMEのブロードキャスト形式を使用して全てのHWアシストをサスペンドおよびレジュームすることができる。より多くの特殊化されたアプリケーションに対して、個別のHWアシスト・モジュールを独立してサスペンドおよびレジュームすることができる(HWアシストの論理アドレスをコントロールへ供給して)。処理する必要のある例外の3つの基本的クラスがある。
・ユーザ・エラー−ユーザ・モードSWにより処理される
・特権システム・エラー−処理するためにオペレーティング・システムへ知らされるシステム・エラー
・安全エラー−安全なモニタに知らされた安全側へアクセスして生じたエラー
【0068】
特権およびセキュリティをデフォルトすることにより、エラーはさらに処理するために割込みを介してコアへ知らされる。ユーザ・モード・エラーはHWアシスト・レジスタ内の状態エラー・ビット(たとえば、CA_StatusレジスタのIUEビット)をチェックするユーザ・アプリケーション・ソフトウェアにより処理される。アーキテクチュアは必要ならばユーザ・モード・エラーをコアに知らせて割り込むことができるようサポートするが、これはオペレーティング・システムに対処するコストがかかる。
【0069】
多数の例外が異なる特権レベルからアクティブとなることがあるケースでは、例外情報を格納するためにシャドー制御レジスタが設けられる。たとえば、安全でユーザ・メモリ故障が生じることがあれば、FARおよびCA_STATUSレジスタは安全側にシャドーを持たなければならない。FARレジスタは特権アクセスを有し故障したメモリ・アドレスを与える。
【0070】
コンテキスト・スイッチングをサポートするのに必要な基本操作は基本割込処理と同様である、すなわち、HWアシスト操作をサスペンドおよびレジュームしてHWアシスト・モジュールからのダーティ状態をきれいにする。コンテキスト・スイッチングは2部分に分けることができる。
・古いプロセスをスイッチング・アウトする
・新しいプロセスをスイッチング・インする
これらの各々に2つの可能性がある
・ストリクト(Strict)−即座にスイッチする
・レージー(Lazy)−他の誰かが実際にHWアシストを使用したい時だけ状態を保存する
【0071】
後者は必要時に状態を保存するだけなのでロー・パワーであるが実現するのはより困難である。
【0072】
注記:従来のレージー・コンテキスト・スイッチ(たとえば、VFP内で使用される)は新しいプロセスによりHWがアクセスされるまで新しいコンテキストにスイッチ・インしない。この技術において、新しいコンテキストがサスペンドされたHWアシストを有するならば、新しいコンテキスト内のHWへの最初の新しいアクセスまで待たずにコンテキストが回復されたらすぐに再開する必要がある。
【0073】
図6はHWアシスト・モジュール(CHA)に対してコンテキストをスイッチングするための一般的なフローを示す図である。コンテキスト・スイッチがレージーではなければ、HWアシストはサスペンドされMSUSPENDおよび記述子へのポインタを使用してきれいにされ、各イネーブルされたHWアシストに対するステータス・レジスタおよびFARが保存される。レージー・コンテキスト・スイッチの場合、HWアシストはいかなる状態も保存せずにサスペンドされるだけである。いずれのケースでも、オペレーティング・システムは次にHWアシストが停止する(また、潜在的にはきれいにする)のを待ちながら、他のコンテキスト・スイッチ・クリーンアップをするように進むことができる。ページ・テーブル・エントリを変える必要が生じる直前に、オペレーティング・システムはデータ・アクセラレータ・バリア(DAN)を実行して全てのHWアシストがサスペンディングを終了したことを保証し、次に、全てのHWアシストはHACR内でディセーブルされる。次に、コンテキスト・スイッチ・アウトが正常に継続する。
【0074】
オペレーティング・システムによりさらに解析を行ってジェネリック・コンテキスト・スイッチ・アウトを洗練することができる。たとえば、
【0075】
HWアシスト・モジュールが現在イネーブルされていなければ、保存するプロセス・コンテキストは無く、なにもする必要がない。
【0076】
HWアシストはイネーブルされるが実行していなければ−潜在的に保存する必要のあるダーティ状態は無い。
【0077】
HWアシストがそれをサスペンドするのではなく完了できるように選択することができる−これは全てのダーティ・データがメモリ内に戻っていることも保証する。
【0078】
新しいプロセスをHWアシストへ切替える時の最初のステップはHWアシスト・モジュールをイネーブルすることである。その後、記述子およびステータス・レジスタがHWアシスト・モジュール内にリロードされ、リジューム・オール・コマンドが発行されて全てのイネーブルされたHWアシスト・モジュールの実行を再開する。これは図7に示されている。
【0079】
レージー・スキームが採用されると(すなわち、古いプロセスの状態がまだスイッチ・アウトされていない)、オペレーティング・システムは新しいプロセスがHWアシスト・モジュールをサスペンドしているかどうかを決定しなければならない。新しいコンテキストがHWアシストを使用しておれば、コンテキスト・スイッチ時にHWアシストの古い状態をきれいにしなければならない(後でアクセスされるまで遅延させるのではなく)。
【0080】
遅延コンテキスト・スイッチ・イン
遅延プロセス状態スイッチは、新しいプロセスが任意の状態を保存する前にHWアシスト・モジュールへのアクセスを試みるまで待機する。新しいプロセスがHWアシスト・モジュールを使用しない場合、状態を保存する必要はない。
【0081】
新しいプロセスがいつHWアシスト・モジュールへのアクセスを試みるかを検出するために、モジュールはコンテキスト・スイッチ時にディセーブルされ、それを使用する試みにより要求された状態を保存し回復することができるオペレーション・システム内のイベントがトリガされるようにする(定義されない命令トラップ)。古い状態が保存され新しい状態がロードされると、HWアシストにアクセスするコマンドを再実行することができる。この手順は図8に示されている。サスペンドされたHWアシストはコンテキスト・スイッチに遅れずに検出され、それらにアクセスするコマンドを待たずに自動的に再開されるものとする。
【0082】
オペレーティング・システムは前のHWアシスト・コンテキストのユーザ・スペース記述子へアクセスしてHWアシスト状態を正しい場所に保存できなければならないことに注目願いたい。
【0083】
添付図に関して本発明の実施例を詳細に説明してきたが、本発明はこれらの精密な実施例に限定はされず、当業者ならば添付された特許請求の範囲に明記された本発明の範囲および精神から逸脱することなくさまざまな変更および修正を行えることが理解される。
【図面の簡単な説明】
【0084】
【図1】本発明の実施例に従ったデータ処理装置を示す図である。
【図2】図1の暗号装置を詳細に示す図である。
【図3】本発明の実施例に従ったデータ・プロセッサにより実施される方法を示す図である。
【図4】本発明の実施例に従ったアクセラレータにより実施される方法のステップを示す図である。
【図5】割込みのハードウェア・アシストをサスペンドしレジュームする制御フローを示す図である。
【図6】コンテキスト・スイッチング・アウトに対するフロー図である。
【図7】プロセスをハードウェア・アシスト・モジュールへコンテキスト・スイッチングするフロー図である。
【図8】最初の新しいプロセス・アクセスまでハードウェア・アシスト状態セーブを延期するフロー図である。
【符号の説明】
【0085】
5 データ処理装置
10 データ・プロセッサ
12 モニタ・プログラム
22 非安全メモリ管理ユニット
24 安全メモリ管理ユニット
30 メモリ
40 暗号デバイス
41 暗号機能実施回路
42 テーブル
43 挙動検出器回路
44 レジスタ
45 ハッシュ・コンパレタ

【特許請求の範囲】
【請求項1】
安全および非安全モードでデータを処理するデータ・プロセッサを含むデータ処理装置であって、前記データ・プロセッサは前記非安全モードでデータを処理する前記データ・プロセッサがアクセスできない安全なデータへのアクセスを有する前記安全なモードでデータを処理し、かつ、
前記非安全モードから発行された前記データ・プロセッサからの要求に応答してタスクを実施するさらなる処理装置であって、前記タスクは少なくともそのいくつかは安全なデータであるデータの処理を含み、前記さらなる処理装置は安全なデータ・ストアを含み、前記安全なデータ・ストアは非安全モードの前記データ・プロセッサで実行しているプロセスにはアクセスできない前記さらなる処理装置を含み、
前記要求のいずれかを発行する前に、前記データ・プロセッサは前記さらなる処理装置上でセットアップ操作を実施するようにされており、前記セットアップ操作は前記安全モードで作動している前記データ・プロセッサにより実施されて前記さらなる処理装置上の前記安全なデータ・ストア内に安全なデータを格納することを含み、前記安全なデータは前記タスクを実施するために前記さらなる処理装置により要求された安全なデータであり、
前記非安全モードで作動している前記データ・プロセッサからの前記要求の受信に応答して、前記さらなるデータ処理装置は前記安全なデータ・ストア内に格納されたデータを使用して前記タスクを実施し必要な任意の安全なデータにアクセスするデータ処理装置。
【請求項2】
請求項1に記載のデータ処理装置であって、前記格納された安全なデータはメモリの安全な部分内に少なくとも1つのアドレスを有し、前記さらなるデータ処理装置は前記タスクを実施しながら前記少なくとも1つのアドレスに格納された安全なデータにアクセスするデータ処理装置。
【請求項3】
請求項2に記載のデータ処理装置であって、前記さらなるデータ処理装置は前記タスクを実施しながら発生された少なくともいくつかのデータを前記メモリの安全な部分内で前記少なくとも1つのアドレスにより指示された場所に格納するようにされているデータ処理装置。
【請求項4】
請求項1に記載のデータ処理装置であって、前記データ・プロセッサは複数のアプリケーションを処理するようにされており、かつ、処理中に前記要求を発行する前記複数のアプリケーションのいずれか1つへのコンテキスト・スイッチに応答して前記セットアップ操作を実施するようにされているデータ処理装置。
【請求項5】
請求項1に記載のデータ処理装置であって、前記データ・プロセッサは複数のアプリケーションを処理するようにされており、かつ、前記複数のアプリケーションの少なくともいくつかに対するリセットに続いて前記セットアップ操作を実施するようにされており、かつ、前記さらなるアプリケーションへのコンテキスト・スイッチの検出に応答して予めセットアップされていない前記さらなるアプリケーションに対して前記セットアップ操作を追加実施するようにされているデータ処理装置。
【請求項6】
請求項1に記載のデータ処理装置であって、前記データ・プロセッサは複数のアプリケーションを処理するようにされており、かつ、前記複数のアプリケーションに対するリセットに続いて前記セットアップ操作を実施し前記セットアップ操作を再度実施しないようにされているデータ処理装置。
【請求項7】
請求項1に記載のデータ処理装置であって、前記データ・プロセッサは、さらに、モニタ・モードを含み、前記安全および非安全モード間での処理の切り替えは前記モニタ・モードを介して実施されるデータ処理装置。
【請求項8】
請求項7に記載のデータ処理装置であって、前記さらなる処理装置は前記要求の受信に応答して前記データ・プロセッサへの安全な割込みを発行し、前記安全な割込みにより前記データ・プロセッサは前記モニタ・モードに切り替えられて前記要求を発行する前記アプリケーションの完全性チェックを実施し、前記さらなる処理装置は肯定的な完全性チェックを示す前記データ・プロセッサからの信号の受信に続いて前記タスクを実施するデータ処理装置。
【請求項9】
請求項7に記載のデータ処理装置であって、前記さらなる処理装置は前記データ・プロセッサにより発生された複数の前記要求に関して予め定められた挙動を検出するようにされており、かつ、前記予め定められた挙動の検出に応答して安全な割込みを発生するようにされており、前記安全な割込みにより前記データ・プロセッサは前記モニタ・モードに切り替えられるデータ処理装置。
【請求項10】
請求項9に記載のデータ処理装置であって、前記予め定められた挙動は同じ鍵と異なるデータを有する複数の要求の受信を含むデータ処理装置。
【請求項11】
請求項1に記載のデータ処理装置であって、前記さらなる処理装置の前記安全なデータ・ストアは安全なデータ・アイテムのテーブルおよび前記テーブル内の各データ・アイテムに関連するハッシュ値を格納するようにされており、前記テーブルは前記セットアップ操作中に埋められ、前記データ・プロセッサから発行された前記要求は前記テーブルからのアイテムを要求しかつ前記要求を有する対応するハッシュ値を供給し、前記さらなるデータ処理装置は供給された前記ハッシュ値と前記要求されたアイテムに関連して格納された前記ハッシュ値との一致に応答してのみ前記要求されたアイテムの使用を許すデータ処理装置。
【請求項12】
請求項11に記載のデータ処理装置であって、前記さらなる処理装置は、さらに、安全なレジスタを含み、前記安全なレジスタは前記メモリの安全な部分内のアドレスで埋められ、前記テーブルは前記セットアップ操作中に前記アドレスへのオフセット値および対応するハッシュ値で埋められるデータ処理装置。
【請求項13】
請求項1に記載のデータ処理装置であって、前記さらなる処理装置は暗号処理装置を含み、前記格納された安全なデータは暗号鍵の少なくとも1つのアドレスを含むデータ処理装置。
【請求項14】
請求項1に記載のデータ処理装置であって、前記さらなる処理装置は非プログラマブル・ハードウェア装置を含むデータ処理装置。
【請求項15】
請求項2に記載のデータ処理装置であって、前記さらなる処理装置は前記少なくとも1つのアドレスが前記安全なメモリ部分の予め定められた部分内にあり、前記安全なメモリ部分の他の部分へのアクセスは許されないように抑制されるデータ処理装置。
【請求項16】
安全および非安全モードでデータを処理するデータ・プロセッサを含むデータ処理装置上でデータを処理する方法であって、前記データ・プロセッサは前記非安全モードでデータを処理する前記データ・プロセッサがアクセスできない安全なデータへのアクセスを有する前記安全なモードでデータを処理し、かつ、
さらなる処理装置が安全なデータ・ストアを含み、前記方法は、
前記安全モードで作動している前記データ・プロセッサが、前記さらなる処理装置上の前記安全なデータ・ストア内に安全なデータを格納することを含むセットアップ操作を前記さらなる処理装置上で実施するステップであって、前記安全なデータはタスクを実施するために前記さらなる処理装置により要求された安全なデータであり、前記タスクは少なくともそのいくつかは安全なデータであるデータの処理を含むステップと、
前記データ・プロセッサが非安全モードに切り替るステップと、
前記データ・プロセッサがアプリケーションを処理し、前記アプリケーションを処理しながら前記タスクを実施する要求を前記さらなる処理装置へ発行するステップと、
前記要求の受信に応答して、前記さらなる処理装置が前記安全なデータ・ストア内に格納されたデータを使用して前記タスクを実施し必要な任意の安全なデータにアクセスするステップと、
を含む方法。
【請求項17】
請求項16に記載の方法であって、前記格納された安全なデータはメモリの安全な部分内に少なくとも1つのアドレスを含み、前記さらなるデータ処理装置は前記タスクを実施しながら前記少なくとも1つのアドレスに格納された安全なデータにアクセスする方法。
【請求項18】
請求項17に記載の方法であって、前記さらなるデータ処理装置は前記タスクを実施しながら発生された少なくともいくつかのデータを前記メモリの前記安全な部分内で前記少なくとも1つのアドレスにより指示された場所に格納する方法。
【請求項19】
請求項16に記載の方法であって、前記データ・プロセッサは複数のアプリケーションを処理するようにされており、かつ、前記方法は新しいアプリケーションへのコンテキスト・スイッチの検出に応答して前記セットアップ操作を実施することを含む方法。
【請求項20】
安全および非安全モードでデータを処理する処理手段を含むデータ処理装置であって、前記処理手段は前記非安全モードでデータを処理する前記処理手段がアクセスできない安全なデータへのアクセスを有する前記安全なモードでデータを処理し、かつ、
前記非安全モードから発行された前記処理手段からの要求に応答してタスクを実施するさらなる処理手段であって、前記タスクは少なくともそのいくつかは安全なデータであるデータの処理を含み、前記さらなる処理手段は安全なデータ・ストアを含み、前記安全なデータ・ストアは非安全モードの前記処理手段で実行しているプロセスにはアクセスできない前記さらなる処理手段を含み、
前記いずれかの要求を発行する前に、前記処理手段は前記さらなるデータ処理手段上でセットアップ操作を実施するようにされており、前記セットアップ操作は前記安全モードで作動している前記処理手段により実施されて前記さらなる処理手段上の前記安全なデータ・ストア内に安全なデータを格納することを含み、前記安全なデータは前記タスクを実施するために前記さらなる処理手段により要求された安全なデータであり、
前記非安全モードで作動している前記処理手段からの前記要求の受信に応答して、前記さらなるデータ処理手段は前記安全なデータ・ストア内に格納されたデータを使用して前記タスクを実施し必要な任意の安全なデータにアクセスするデータ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−163738(P2009−163738A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−332617(P2008−332617)
【出願日】平成20年12月26日(2008.12.26)
【出願人】(594154428)エイアールエム リミテッド (85)
【Fターム(参考)】