(57)【要約】【課題】高速でかつ安全が確保された、データ処理装置内のコンテンツへのアクセスを管理する装置および手段を提供する。【解決手段】安全確保領域と非安全確保領域とを有し、メモリ内に格納されているコンテンツへのアクセスを求められた際に、安全確保領域または非安全確保領域のいずれかに属するメモリアクセス要求を発する少なくとも１つの装置を具備する。更に読み取り専用メモリよりも高速で動作可能な書き込み可能メモリを用意し、その中に読み取り専用範囲を定義し、この読み取り専用範囲への書き込みアクセスは安全確保領域からのみに制限し、非安全確保領域からのアクセスは読み取りのみに制限することにより、高速な書き込み可能メモリを使用して、かつ安全も確保されたデータ処理装置を提供する。【選択図】図１
2007249933.tif 000002
【特許請求の範囲】
【請求項１】
安全確保領域と非安全確保領域とを有するデータ処理装置であって、前記安全確保領域内で前記データ処理装置の複数の装置は前記非安全確保領域内ではアクセスできない安全確保コンテンツへのアクセスを有し、
メモリ内に格納されているコンテンツへのアクセスを求める際に、前記安全確保領域または前記非安全確保領域のいずれかに属するメモリアクセス要求を発するように動作可能な少なくとも１つの装置と、
前記少なくとも１つの装置から要求されたコンテンツを格納するように動作可能で、コンテンツが前記安全確保領域内の前記複数の少なくとも１つの装置群の１つにより実行される安全確保タスクの制御下にその中に格納される、少なくとも１つの読み取り専用範囲を有する書き込み可能メモリと、
前記少なくとも１つの読み取り専用範囲内のコンテンツへのアクセスを求めるメモリアクセス要求を受け取り、該メモリアクセス要求が前記非安全確保領域に属し、前記少なくとも１つの読み取り専用範囲へのコンテンツの書き込みを求めている場合は、少なくとも１つの読み取り専用範囲へのアクセスを防止するように動作可能な保護ロジックと、
を含む、前記データ処理装置。
【請求項２】
請求項１記載のデータ処理装置であって更に、
前記少なくとも１つの装置がその上に前記メモリアクセス要求を発するように動作可能な装置バスと、
該装置バスに保護ロジックを介して接続されている書き込み可能メモリと、
を含む、前記データ処理装置。
【請求項３】
請求項１記載のデータ処理装置において、
前記少なくとも１つの装置群の少なくとも１つが、前記非安全確保領域内のモードである少なくとも１つの非安全確保モードと、前記安全確保領域内のモードである少なくとも１つの安全確保モードを含む、複数のモードで動作可能であり、
前記少なくとも１つの読み取り専用範囲内へのコンテンツの格納を制御するために使用される前記安全確保タスクが予め定められた安全確保モードで実行される、
前記データ処理装置。
【請求項４】
請求項３記載のデータ処理装置において、前記非安全確保領域内で前記少なくとも１つの装置群の前記少なくとも１つは、非安全確保オペレーティング・システムの制御下に動作可能であり、前記安全確保領域内で前記少なくとも１つの装置群の前記少なくとも１つは、安全確保オペレーティング・システムの制御下に動作可能である、前記データ処理装置。
【請求項５】
請求項１記載のデータ処理装置において、前記安全確保タスクがブート処理中に、少なくとも１つの読み取り専用範囲内へのコンテンツの格納を制御するように動作可能な、前記データ処理装置。
【請求項６】
請求項５記載のデータ処理装置において、前記コンテンツは前記非安全確保領域内の前記少なくとも１つの装置で実行されるプログラム・コードを含み、前記安全確保タスクは該プログラム・コードが前記少なくとも１つの読み取り専用範囲内に、前記ブート処理中に記憶装置から書き込まれるように動作可能な、前記データ処理装置。
【請求項７】
請求項６記載のデータ処理装置において、前記安全確保タスクが更に前記プログラム・コード上で実行される検証処理を行わせるように動作可能な、前記データ処理装置。
【請求項８】
請求項１記載のデータ処理装置において、
前記非安全確保領域内の前記少なくとも１つの装置で実行されるタスクである、非安全確保タスクが前記少なくとも１つの読み取り専用範囲内のコンテンツへの書き込みを望む場合、その上で前記タスクが実行される前記装置が対応するメモリアクセス要求をトラップし、該メモリアクセス要求を前記安全確保タスクで取り扱わせるように動作可能な、前記データ処理装置。
【請求項９】
請求項８記載のデータ処理装置において、前記安全確保タスクが、前記メモリアクセス要求が安全確保コンテンツへのアクセスを求めていないことをチェックするための検証処理を実行するように動作可能であり、提供された安全確保コンテンツへのアクセスが求められていない場合、メモリアクセス要求を発行するように動作可能な、前記データ処理装置。
【請求項１０】
請求項１記載のデータ処理装置において、前記書き込み可能メモリが複数のメモリ素子で形成されている、前記データ処理装置。
【請求項１１】
請求項１記載のデータ処理装置において、前記少なくとも１つの読み取り専用範囲の１つが、前記安全確保領域内で実行されるコードにより制御可能な周辺装置内に具備されている、前記データ処理装置。
【請求項１２】
請求項１記載のデータ処理装置において、前記書き込み可能メモリがフラッシュメモリ素子を含み、前記少なくとも１つの読み取り専用範囲が前記フラッシュメモリ素子全体を含み、これにより前記非安全確保領域内の前記少なくとも１つの装置で実行されるタスクである、非安全確保タスクが前記フラッシュメモリ素子内のコンテンツの読み取りのみが可能な、前記データ処理装置。
【請求項１３】
請求項１２記載のデータ処理装置において、各々のメモリアクセス要求が、該メモリアクセス要求が安全確保領域に属するか非安全確保領域に属するか識別するための、そこに関連した領域信号を有し、保護ロジックが前記領域信号を参照して前記メモリアクセス要求が前記非安全確保領域に属するか否かの判定を行うように動作可能な、前記データ処理装置。
【請求項１４】
請求項１記載のデータ処理装置において、各々の読み取り専用範囲が安全確保領域内の前記安全確保タスクによって定義されている、前記データ処理装置。
【請求項１５】
請求項１記載のデータ処理装置において、前記コンテンツが前記少なくとも１つの読み取り専用範囲内に前記安全確保タスクにより格納されている、前記データ処理装置。
【請求項１６】
請求項１記載のデータ処理装置であって、更に前記非安全確保領域内の前記少なくとも１つの装置の１つで実行される信頼されたタスクを含み、該信頼されたタスクが前記書き込み可能メモリの少なくとも１つの範囲の中にコンテンツを書き込むように動作可能であり、その後前記安全確保タスクが前記少なくとも１つの範囲を前記少なくとも１つの読み取り専用範囲と定義することにより、前記少なくとも１つの読み取り専用範囲へのコンテンツの格納を制御するように動作可能である、前記データ処理装置。
【請求項１７】
請求項１６記載のデータ処理装置において、前記信頼されたタスクが動作の或る特定段階でのみ信頼されている、前記データ処理装置。
【請求項１８】
安全確保領域と非安全確保領域とを有するデータ処理装置に対するメモリロジックであって、前記安全確保領域内で前記データ処理装置の複数の装置は前記非安全確保領域内ではアクセスできない安全確保コンテンツへのアクセスを有し、前記データ処理装置は前記安全確保領域または前記非安全確保領域のいずれかに属するメモリアクセス要求を発生するために、メモリロジック内に格納されているコンテンツへのアクセスを求める際に動作可能な少なくとも１つの装置を有し、
該少なくとも１つの装置より要求されたコンテンツを格納するように動作可能で、そのコンテンツが安全確保領域内の前記少なくとも１つの装置群の１つで実行される１つのタスクである安全確保タスクの制御下でそこに格納される少なくとも１つの読み取り専用範囲を有する、書き込み可能メモリと、
前記少なくとも１つの読み取り専用範囲内のコンテンツへのアクセスを求めるメモリアクセス要求を受け取り、該メモリアクセス要求が前記非安全確保領域に属し、かつ前記少なくとも１つの読み取り専用範囲へのコンテンツへの書き込みを求めるものである場合、少なくとも１つの読み取り専用範囲へのアクセスを防止するように動作可能な保護ロジックと、
を含む、前記メモリロジック。
【請求項１９】
安全確保領域と非安全確保領域とを有するデータ処理装置であって、前記安全確保領域内で前記データ処理装置の複数の装置は前記非安全確保領域内ではアクセスできない前記安全確保コンテンツへのアクセスを有し、
メモリ装置内に格納されているコンテンツへのアクセスを求める際に、前記安全確保領域または前記非安全確保領域のいずれかに属するメモリアクセス要求を発生するための少なくとも１つの装置と、
少なくとも１つの装置で要求されたコンテンツを格納するための書き込み可能メモリ装置であって、そのコンテンツが安全確保領域内の前記少なくとも１つの装置の１つで実行されるタスクである、安全確保タスクの制御下にそこに格納される少なくとも１つの読み取り専用範囲を有する、書き込み可能メモリ装置と、
前記少なくとも１つの読み取り専用範囲内のコンテンツへのアクセスを求める、メモリアクセス要求を受け取り、該メモリアクセス要求が前記非安全確保領域に属し、かつ前記少なくとも１つの読み取り専用範囲へのコンテンツの書き込みを求めている場合に、前記アクセスを阻止するための保護装置と、
を含む、前記とデータ処理装置。
【請求項２０】
安全確保領域と非安全確保領域とを有し、安全確保領域内でデータ処理装置の複数の装置は前記非安全確保領域内ではアクセスできない安全確保コンテンツへのアクセスを有する、データ処理装置内のコンテンツへのアクセス管理方法であって、
書き込み可能メモリ内に少なくとも１つの読み取り専用範囲を用意することと、
前記少なくとも１つの読み取り専用範囲内に、前記安全確保領域内の装置で実行されるタスクである安全確保タスクの制御下にコンテンツを格納することと、
前記少なくとも１つの読み取り専用範囲内のコンテンツへのアクセスを求めるメモリアクセス要求が発せられた際に、該メモリアクセス要求が前記非安全確保領域に属し、かつ前記読み取り専用範囲のコンテンツへの書き込みを求めている場合に、前記少なくとも１つの読み取り専用範囲へのアクセスを阻止することと、
を含む、前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置内コンテンツへのアクセス管理技術に関するものである。
【背景技術】
【０００２】
データ処理装置は典型的に１つまたは複数の装置、例えば中央処理装置（ＣＰＵ）、直接メモリアクセス（ＤＭＡ）エンジン、ハードウェア加速器、など処理操作手順を実行するための装置を含む。操作の手順を定めるプログラム・コードおよび／またはその様な処理操作を実行する際に要求されるデータは、典型的にデータ処理装置のメモリ内に記憶されている。用語「コンテンツ」は此処では、その様なコードを実行する際に必要とされるプログラム・コードおよび／またはデータを集合的に特定するために用いられている。
【０００３】
コンテンツを保護する必要が有る場合、そのようなデータを格納するために、読み取り専用記憶装置、例えば読み取り専用メモリ（ＲＯＭ）、またはロック可能フラッシュ素子を用意することが知られている。ロック可能フラッシュ素子の様なロック可能素子では、読み取り専用が要求されるコンテンツは、フラッシュ素子の中に初期のプログラム時点で格納され、その後ハードウェア機構を用いてそのコンテンツを素子の中にロックし、その時点から書き込み可能ではなく読み取り専用となる。
【０００４】
その様な手法を使用する典型的な例はコンピュータ・ファイル・システムの記憶装置であって、此処ではオペレーティング・システムが信頼できる基盤設備であるとの前提の下に、その読み取り専用保護がオペレーティング・システムによって制御されている。
【０００５】
その様な読み取り専用記憶素子はコンテンツの保護は提供するが、通常アクセスが比較的遅く、これはデータ処理装置の動作速度に大きな影響を与えかねない。更に、これらはそのコンテンツへのアクセス方法に関して柔軟性に欠けているが、それは後でそのコンテンツを変更できないためである。
【０００６】
上記の手法は、そこに格納されているコンテンツの保護を提供するメモリ素子が読み取り専用であるという性質に依存している。これに代わる手法として、コンテンツへのより素早いアクセスが要求される所では、ＣＰＵで必要とされるコンテンツについて書き込み可能メモリ素子の中に格納し、次にＣＰＵに関連するメモリ管理装置（ＭＭＵ：Memory Management Unit）を用いてメモリの或る部分のみ読み取りを許すが書き込めないようにすることが知られており、これはＭＭＵがアクセス可能なページ・テーブルで定義される。この処理過程はオペレーティング・システムで制御されるので、これもまたオペレーティング・システムが信頼できる基盤設備であるとの前提上に成り立っている。
【０００７】
従来オペレーティング・システム開発者の典型的な仕事は、１つのアプリケーションの安全確保データがそのオペレーティング・システムの制御下で実行中の他のアプリケーションからアクセス出来ないように保証する十分な安全保証を、オペレーティング・システムが提供することを保証することであった。しかしながらシステムが複雑になるに従い、一般的にオペレーティング・システムはより大きくまた更に複雑になる傾向にあり、その様な状況の中でオペレーティング・システムの中で十分な安全を保証することが益々難しくなりつつある。オペレーティング・システム安全確保への依存度を軽減する方法を探るために、データ処理装置の中に安全確保領域および非安全確保領域が具備されているシステムを用意することが知られており、これらの領域は安全確保をハードウェアのレベルで取り扱うための機構を具備している。その様なシステムは例えば、米国特許出願番号１０／７１４，５６１号に記述されており、その内容は此処に挙げることで参照されている。その様なシステムの中で、非安全確保および安全確保領域は事実上別の世界を構築しており、安全確保領域はハードウェアによる強制的な境界によって他の実行空間から分離された信頼できる実行空間を提供し、同様に非安全確保領域は信頼性の低い実行空間を提供している。
【０００８】
この様な手法は安全確保コンテンツが、安全確保領域内で動作する装置でのみアクセスできるような方法で格納できるようにしているが、未だ問題もあり、非安全確保領域から或る非安全確保コンテンツに対してアクセスを提供する一方で、そのコンテンツが非安全確保領域内で実行されるアプリケーションによって修正変更できないことを保証する必要がある。典型的に、今まではその様なコンテンツを先に説明した読み取り専用記憶素子、例えば１回プログラム可能素子、またはロック可能フラッシュ素子のようなロック可能メモリ素子、の中に格納することによって保護することが可能であった。しかしながら先に述べたように、これは前記の性能上および柔軟性の点で問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
第１の特徴から見ると、本発明は安全確保領域と非安全確保領域とを有するデータ処理装置を提供しており、安全確保領域内でデータ処理装置の複数の装置は非安全確保領域内ではアクセスできない安全確保コンテンツへのアクセスを有する、このデータ処理装置は：メモリ内に格納されているコンテンツへのアクセスを求める際に、前記安全確保領域または前記非安全確保領域のいずれかに属するメモリアクセス要求を発するように動作可能な少なくとも１つの装置と；前記少なくとも１つの装置から要求されたコンテンツを格納するように動作可能で、コンテンツが安全確保領域内の前記複数の少なくとも１つの装置群の１つにより実行される安全確保タスクの制御下にその中に格納される、少なくとも１つの読み取り専用範囲を有する書き込み可能メモリと；そして、少なくとも１つの読み取り専用範囲内のコンテンツへのアクセスを求めるメモリアクセス要求を受け取り、そのメモリアクセス要求が前記非安全確保領域に属し、前記少なくとも１つの読み取り専用範囲へのコンテンツの書き込みを求めている場合は、少なくとも１つの読み取り専用範囲へのアクセスを防止するように動作可能な保護ロジックを含む。
【００１０】
本発明によれば、データ処理装置は安全確保領域と非安全確保領域とを有し、非安全確保領域アクセス権に対して読み取り専用である、少なくとも１つの読み取り専用範囲を有する書き込み可能メモリが具備されている。コンテンツはこの様な読み取り専用メモリの中に、安全確保領域内のデータ処理装置の１つの装置で実行される安全確保タスクの制御下に格納される。次に、保護ロジックを使用して、読み取り専用範囲内のコンテンツへのアクセスを求めるメモリアクセス要求が非安全確保領域に属し、その読み取り専用範囲へコンテンツの書き込みを求めている場合には、少なくとも１つの読み取り専用範囲へのアクセスを防止している。
【００１１】
この様な手法を採ることにより、装置には非安全確保領域から、書き込み可能メモリ内に格納されているコンテンツへの読み取り専用アクセスを与えることが可能であり、従って更に素早くアクセスすることが可能で、従来型読み取り専用メモリ素子が使用されている場合よりも、典型的により少ない電力消費を実現できる。保護ロジックは読み取り専用範囲内の全てのコンテンツが非安全確保領域から書き込むことができないように保証する一方で、書き込み可能メモリの読み取り専用範囲内に格納されているコンテンツの完全性は確保されるが、それは読み取り専用範囲内へ安全確保領域内の装置で実行される安全確保タスクによってのみ格納されるからである。
【００１２】
従って、コンテンツを書き込み可能メモリの中に格納することによる、速度、電力および柔軟性の利点がそのコンテンツの完全性を損なうことなく実現されるが、それは非安全確保領域から修正変更することができないからである。
【００１３】
データ処理装置はハードウェアで支えられた安全確保領域との切替機能を有する装置を含むので、動作時間の一部を安全確保領域内での実行に費やし、その動作時間の一部を非安全確保領域内での実行に費やすことができる。これに代わって、またはこれに加えて、データ処理装置は１つの領域または別の領域内でのみしか実行できない装置を含むことも可能であり、従って１つの実施例ではデータ処理装置は安全確保領域内で実行可能な１つまたは複数の装置および、非安全確保領域内で実行可能な１つまたは複数の別の装置を含む場合がある。
【００１４】
書き込み可能メモリは単一のメモリ素子で構成されていても良いし、または集合的に書き込み可能メモリを形成する複数の個別のメモリ素子を含む場合もある。
【００１５】
読み取り専用方式で非安全確保領域からアクセス可能な非安全確保コンテンツを格納することに加えて、読み取り専用範囲はまたその中に何らかの安全確保コンテンツをも格納することができる。その様な事例の場合、前述の米国特許出願第１０／７１４，５６１号に記載の既知の機構を用いて、その様な安全確保コンテンツが非安全確保領域からアクセス（書き込みまたは読み取りアクセス）できないように保証できる。
【００１６】
保護ロジックは少なくとも１つの読み取り専用範囲へのアクセス要求を、色々な方法で監視するように構成される。しかしながら１つの実施例において、データ処理装置は更に装置バスを含み、その上に少なくとも１つの装置が前記メモリアクセス要求を発するように動作可能であり、書き込み可能メモリがその装置バスに保護ロジック経由で結合されている。従って、書き込み可能メモリの少なくとも１つの読み取り専用範囲への全てのアクセスは、保護ロジックを通して回送される。
【００１７】
関連するメモリアクセス要求を発することにより、メモリ内に格納されているコンテンツへアクセスするデータ処理装置の１つまたは複数の装置は、種々の形式をとることができる。１つの実施例において、複数の少なくとも１つの装置群の少なくとも１つは、非安全確保領域内のモードである少なくとも１つの非安全確保モードと、安全確保領域内のモードである、少なくとも１つの安全確保モードを含む、複数のモードで動作可能である；そして少なくとも１つの読み取り専用範囲内のコンテンツの格納を制御するために使用される安全確保タスクは予め定められた安全確保モードで実行される。従って、安全確保領域および非安全確保領域は、ハードウェアで強制された境界によって分離された別々の実行空間を提供する一方で、その様な装置に対して異なる動作モード、例えば使用者モード、特権モードなどを与えることも可能である。１つの実施例において、その様な１つの装置はＣＰＵである。その様な複数の動作モードは典型的に、その様な装置が特定の領域内で実行される際に適用可能なオペレーティング・システムによって制御される。その様な実施例において、少なくとも１つの読み取り専用範囲内にコンテンツを格納する安全確保タスクは、例えば安全確保特権モードの様な予め定められた安全確保モードで実行される。
【００１８】
１つの実施例において、多元安全確保領域可能装置が存在する。その様な実施例において、保護ロジックはその様な多元安全確保領域可能装置の１つのみが、コンテンツを少なくとも１つの読み取り専用範囲内に格納することを許すように構成されている。特に、保護ロジックは特定のＣＰＵ  ＩＤ、処理ＩＤ、または動作状態（例えば安全確保特権モード）、またはそれらの組み合わせを使用する装置のみが、読み取り専用範囲への書き込みアクセスを持つことを許可するように許されている。
【００１９】
１つの実施例においては、非安全確保領域内で前記複数の少なくとも１つの装置群の少なくとも１つが、非安全確保オペレーティング・システムの制御下に動作可能であり、前記安全確保領域内で前記複数の少なくとも１つの装置群の少なくとも１つが、安全確保オペレーティング・システムの制御下に動作可能である。従ってその様な実施例においては、その装置内で異なるオペレーティング・システムが、その装置が実行される領域に依存して使用される。安全確保オペレーティング・システムは典型的に非安全確保オペレーティング・システムよりも著しく小さく、ある種の安全確保機能を制御するために提供される安全確保カーネルと見ることができる。
【００２０】
安全確保タスクを使用し、コンテンツを読み取り専用範囲内に格納することを制御する方法は多数存在する。１つの実施例において、安全確保タスクはブート時に使用されてコンテンツを読み取り専用範囲内に格納させている。その様な１つの実施例において、ブート処理に続いて、その少なくとも１つの読み取り専用範囲内のコンテンツはその後変更されないと見なされている。
【００２１】
１つの特定の実施例において、コンテンツは前記少なくとも１つの装置によって、非安全確保領域内で実行されるべきプログラム・コードを含み、前記安全確保タスクはそのプログラム・コードを少なくとも１つの読み取り専用範囲の中に格納装置から、ブート処理中に書き込ませるように動作可能である。典型的にそこからプログラム・コードが転送される記憶装置は書き込み可能メモリと比較すると比較的低速の記憶装置であり、従って安全確保タスクにより実行されるこの処理に続いて、そのプログラム・コードは書き込み可能メモリの読み取り専用範囲へのアクセスを通して、より高速にアクセス可能である。更に、このプログラム・コードは非安全確保領域から修正変更できないが、それは保護ロジックが非安全確保領域からの全てのアクセスを読み取り専用アクセスであると、保証しているからである。
【００２２】
１つの実施例において、安全確保タスクは更にそのプログラム・コードに対する検証処理を実行するように動作可能である。これにより安全確保タスクが安全確保領域内でそのプログラム・コードが書き込み可能メモリの読み取り専用範囲内に格納される前に、プログラム・コードの完全性を検証するように実行可能であり、従って非安全確保領域からそのコンテンツへの事前アクセスが可能である。この検証処理は種々の形式があり、例えば標準ブロック署名チェック手法を用いてプログラム・コードの完全性を検証することを含む。その様な検証処理の結果、そのプログラム・コードが正当であり、改竄されていないこと、すなわちそれが非安全確保領域からアクセスされるのに正統なコードであると示された場合のみ、そのプログラム・コードは書き込み可能メモリの少なくとも１つの読み取り専用範囲内に格納される。
【００２３】
１つの実施例において非安全確保タスク、すなわち非安全確保領域内の装置で実行されるタスクに対して、少なくとも１つの読み取り専用範囲内に格納されているコンテンツの変更を求める正当な理由は無いと見なされている。しかしながら、これに代わる別の実施例では非安全確保タスクがその様なコンテンツの更新を要求する正当な理由が有ると見なされており、従ってその非安全確保タスクが実行されている装置は、対応するメモリアクセス要求にトラップを掛け、そのメモリアクセス要求がその安全確保タスクにより処理されるように構成することが可能である。その上で非安全確保タスクが実行される装置の型式に依存して、これは実際にはそのメモリアクセス要求を、安全確保領域で動作可能な別の装置に転送することを含んだり、またはこれに代わって、同一装置を非安全確保領域から安全確保領域へ遷移させることを含み、その後安全確保タスクがその装置の上で実行できる。この様な手法により、非安全確保タスクが読み取り専用範囲内のコンテンツの変更を起こさせることが可能であるが、全てのその様なコンテンツの更新は実際は安全確保タスクで実行されるので、そのコンテンツの完全性は確保されている。
【００２４】
１つの特定の実施例において、安全確保タスクはメモリアクセス要求が安全確保コンテンツへのアクセスを要求していないかをチェックするために検証処理を実行するように動作可能であり、安全確保コンテンツへのアクセス要求が無い場合、メモリアクセス要求を発するように動作可能である。その様な手法により、安全確保タスクは、非安全確保タスクが修正変更を許可されていないコンテンツの変更を求めることが無いように、メモリアクセス要求を進めることを認める前に保証できる。
【００２５】
書き込み可能メモリは種々の形式を取りうる。１つの実施例において、複数の少なくとも１つの読み取り専用範囲の１つには、安全確保領域内で実行されるコードによって制御可能な周辺装置が具備されている。従って、周辺装置は安全確保領域から制御される一方で、読み取り専用アクセスは非安全確保領域から周辺装置に対して与えられ、例えばデータの読み取りを可能とする。考えられる例は、読み取り専用露出ページ・テーブルを備えたイーサネット（登録商標）装置またはシステム・レベルＭＭＵ装置である。
【００２６】
安全確保領域および非安全確保領域を有するデータ処理装置内で効率的に使用することが、一般的に困難なメモリ素子の１つのタイプはフラッシュメモリ素子である。多くのメモリ素子に関して、それらのメモリ素子に対して発行されたアドレスが非安全確保領域からアクセスされるように要求された安全確保データであるか監視可能であって、それはメモリのどの領域が安全確保データを含み、どの領域が非安全確保データを含んでいるか既知であるからであるが、その様な手法はフラッシュメモリ素子の書き込み動作に関しては簡単に使用することができない、それはフラッシュメモリ素子内でアクセスされるアドレスはそのフラッシュメモリ素子に対して発行された書き込みアクセス要求のフォーマットから容易には推論できないためである。読み取りアクセスに対しては、アクセスされるアドレスは典型的に判別可能であり、従って安全確保コンテンツへの読み取りアクセスが、その様なアクセスが安全確保領域に属する場合にのみ行われることを許すように監視することが可能である。しかしながら、その様なチェックを書き込み動作に対して行えないがために安全確保上の問題が生じる。
【００２７】
実際、フラッシュメモリ素子に接続されているバスは典型的にアドレスチャンネルとデータチャンネルとを有するが、アドレスチャンネルはまたフラッシュメモリ素子に対するフラッシュ命令（例えばブロック消去、コピー、書き込みなど）を発するためにも使用される。これらのフラッシュ命令は、自身ではアドレスを指定しない。従って、これらのフラッシュ命令が発せられる時点で、フラッシュメモリの外部にある保護ロジックが、どのコンテンツがフラッシュメモリ素子内でアクセスされるように要求されているか、信頼性高く識別することは不可能である。更に、それらのアドレスがその後に識別された際に、フラッシュ素子内の特定セグメントを識別するセグメント識別子を参照して識別されるであろうが、これもまたフラッシュ素子の外部にある保護ロジックにより容易に分かるものではない。これらの理由により、安全確保領域および非安全確保領域を有するデータ処理装置内でのフラッシュメモリ素子の使用は常に安全上の問題を生じるが、それはフラッシュ命令が非安全確保領域から出されることが可能であり、これらの命令がデータをフラッシュメモリ内の安全確保領域から非安全確保領域にコピーするために使用され、その結果非安全確保領域から安全確保領域へのアクセスを許すからである。
【００２８】
しかしながら本発明の実施例によれば、書き込み可能メモリはフラッシュメモリ素子を含み、また少なくとも１つの読み取り専用範囲は全フラッシュメモリ素子を含み、これにより非安全確保領域内の前記少なくとも１つの装置により実行されるタスクである非安全確保タスクはフラッシュメモリ素子内のコンテンツを読むことのみが可能である。先に述べたように、既存の機構が、非安全確保領域からの読み取りアクセスが読み取り専用範囲内の全ての安全確保コンテンツへのアクセスを許されないように保証することが可能である。従って保護ロジックが、非安全確保領域からの全てのアクセスがフラッシュメモリ素子内のコンテンツの読み取りのみができるように保証し、また読み取り専用範囲内に格納されているコンテンツが安全確保領域内で実行される安全確保タスクにより制御されるのであれば、先のフラッシュメモリ素子に関する潜在的安全上の問題は軽減され、これによりその様なフラッシュメモリ素子を安全確保領域と非安全確保領域とを有するデータ処理装置内で、正当性および完全性を損ねることなく使用することを可能とする。
【課題を解決するための手段】
【００２９】
１つの実施例において、各々のメモリアクセス要求はそのメモリアクセス要求が安全確保領域に属するか、非安全確保領域に属するかを識別することに関連する領域信号を有し、保護ロジックはそのメモリアクセス要求が非安全確保領域に属するか否かを判別するために領域信号を参照するように動作可能である。１つの実施例において領域信号は、ハードウェアレベルで実行され、従ってその装置自身が安全確保領域内で動作している場合にのみ、そのメモリアクセス要求が安全確保領域に属することを示すように設定できる。従って、その装置上で実行されている不良アプリケーションが領域信号の設定を改竄することは不可能である。
【００３０】
書き込み可能メモリ内の少なくとも１つの読み取り専用範囲は、種々のやり方で構築できる。しかしながら、１つの実施例において、少なくとも１つの読み取り専用範囲は安全確保領域内の安全確保タスクによって定義可能であり、これにより読み取り専用範囲はその安全確保タスクの制御下でのみ構築できることが保証される。この安全確保タスクはコンテンツを定義された読み取り専用範囲の中に格納することを制御するために使用される安全確保タスクと同一であっても無くても構わない。
【００３１】
第２の特徴から見ると、本発明は安全確保領域と非安全確保領域とを有するデータ処理装置に対するメモリロジックを提供しており、安全確保領域内でデータ処理装置の装置は非安全確保領域内ではアクセスできない安全確保コンテンツへのアクセスを有し、データ処理装置は前記安全確保領域または前記非安全確保領域のいずれかに属するメモリアクセス要求を発生するために、メモリロジック内に格納されているコンテンツへのアクセスを求める際に動作可能な少なくとも１つの装置を有し、このメモリロジックは：少なくとも１つの装置より要求されたコンテンツを格納するように動作可能で、そのコンテンツが安全確保領域内の前記少なくとも１つの装置群の１つで実行される１つのタスクである安全確保タスクの制御下でそこに格納される少なくとも１つの読み取り専用範囲を有する、書き込み可能メモリと；少なくとも１つの読み取り専用範囲内のコンテンツへのアクセスを求めるメモリアクセス要求を受け取り、そのメモリアクセス要求が前記非安全確保領域に属し、かつ前記少なくとも１つの読み取り専用範囲へのコンテンツへの書き込みを求めるものである場合、少なくとも１つの読み取り専用範囲へのアクセスを防止するように動作可能な保護ロジック、を含む。
【００３２】
第３の特徴から見ると、本発明は安全確保領域と非安全確保領域とを有するデータ処理装置内のコンテンツへのアクセスを管理するための方法を提供しており、安全確保領域内でデータ処理装置の装置は非安全確保領域内ではアクセスできない安全確保コンテンツへのアクセスを有し、この方法は：書き込み可能メモリ内に少なくとも１つの読み取り専用範囲を用意し；コンテンツを安全確保領域内の装置で実行される安全確保タスクの制御下に、少なくとも１つの読み取り専用範囲内に格納し；少なくとも１つの読み取り専用範囲内のコンテンツへのアクセスを求めるメモリアクセス要求が発せられた際に、そのメモリアクセス要求が前記非安全確保領域に属し、かつ前記少なくとも１つの読み取り専用範囲へのコンテンツの書き込みを求めるもので有る場合、それを防止する、以上のステップを含む。
【００３３】
本発明を更に詳細に、例としてのみ示す添付図に図示された実施例を参照して説明する。
【実施例】
【００３４】
図１は本発明の１つの実施例に基づくデータ処理装置のブロック図である。図１に示されるように、データ処理装置は複数のマスタ装置２０，３０を含み、これらはバス構造７０を介して、マスタ装置２０，３０でアクセスするためのコンテンツを格納するために使用される複数のメモリ素子５０，６０と接続されている。マスタ装置２０，３０は、例えばＣＰＵ，ＤＭＡエンジン、データエンジンの様なハードウェア加速ロジックなど、種々の形式を取り得る。更に、図１ではバス構造７０は単純なバスとして示されているが、実際にはそこに接続されている種々の装置の間で信号を転送するための複数の接続パスを提供するための相互接続ロジックを形成する。
【００３５】
メモリ素子５０，６０内のコンテンツにアクセスするために、トランザクションはバス構造７０上で実施される。トランザクションは典型的にマスタ装置２０，３０から所望のスレイブ装置、この例ではメモリ素子５０，６０の１つへのアドレス転送と、マスタ装置とスレイブ装置間の１つまたは複数のデータ転送から構成される。書き込みトランザクションに関して、これらのデータ転送はマスタ装置からスレイブ装置へ通され、一方読み取りトランザクションに関してこれらのデータ転送はメモリ装置からマスタ装置へ通される。
【００３６】
メモリ保護ユニット（ＭＰＵ）４０がメモリ素子５０，６０内のコンテンツへのアクセスを保護するために具備されており、そのコンテンツがそのコンテンツへのアクセス権を与えられていないアプリケーションでアクセスされないように保証することを目的としている。
【００３７】
１つの実施例において、データ処理装置１０は、安全確保領域と非安全確保領域とを有し、安全確保領域はハードウェアで強化された境界によって他の実行空間から分離された信頼された実行空間を提供する。従って、信頼された実行空間で取り扱われるコンテンツは非安全確保領域から、または実際に全ての信頼されない実行空間から、アクセスできない安全確保コンテンツとして取り扱うことが可能である。従って安全確保および非安全確保領域は、事実上別の世界を構築することによって、安全保証をハードウェアレベルで取り扱うための機構を提供し、これは安全確保領域に属する安全確保コンテンツが、非安全確保領域で実行される全てのアプリケーションからアクセスできないことを保証できる。
【００３８】
メモリ素子５０，６０は１つまたは複数の安全確保範囲が安全確保コンテンツをその中に格納するように定義され、１つまたは複数の非安全確範囲がその中に非安全確保コンテンツを格納するように定義されるように構成できる。ＭＰＵ４０は、トランザクションを発生させるメモリアクセス要求が非安全確保領域に属するマスタ装置から発せられた際に、安全確保メモリ範囲へのアクセスが生じないように、メモリ素子５０，６０へのアクセスを警備するように構成できる。その様なＭＰＵは先に説明した米国特許出願番号１０／７１４，５６１号に記載されている。
【００３９】
しかしながら、その様な手法は安全確保コンテンツが安全確保領域内で動作する装置によってのみアクセス可能な方法で格納されるように保証できるが、更に別の問題が存在し、それは非安全確保領域から或る非安全確保コンテンツへのアクセスを提供する一方で、そのコンテンツが非安全確保領域で動作するアプリケーションによって修正変更できないように保証することである。典型的に、今までその様なコンテンツを読み取り専用記憶素子の中に格納することによってのみ保護することが可能であった、従ってその様なコンテンツを修正変更から保護する記憶素子自身のハードウェア構成に依存している。
【００４０】
しかしながら、此処にこれから説明するように、本発明の１つの実施例では、少なくとも１つのメモリ素子５０，６０が、その中に読み取り専用範囲を定義できる書き込み可能メモリ素子である。従って、コンテンツはこの読み取り専用範囲の中に、安全確保領域内の１つのマスタ装置２０，３０により実行される安全確保タスクの制御下に格納される。これにより読み取り専用範囲は安全確保領域からのみ書き込めることが保証され、そのコンテンツを書き込む責任のある安全確保タスクは、そのコンテンツをメモリ素子に格納する前に適切な検証処理を実行できる。加えて、ＭＰＵ４０には追加機能が具備されており、メモリアクセス要求が書き込み可能素子の読み取り専用範囲内のコンテンツへのアクセスを求めている場合、そのメモリアクセス要求が非安全確保領域に属し、読み取り専用範囲へコンテンツの書き込みを求めるもので有る場合、ＭＰＵ４０がその読み取り専用範囲へのアクセスを阻止するようにできる。ＭＰＵ４０はメモリ素子に関連しているので、その様な保護はバス構造７０に接続された異なるマスタ装置上で不良アプリケーションを実行させて騙されることは無いが、それはＭＰＵ４０が更に非安全確保領域からの、読み取り専用範囲への全ての書き込みアクセスの試みを阻止することを保証しているからである。
【００４１】
この処理については図２を参照して更に詳しく説明する。図２に示されるように、１つまたは複数の信頼された操作１１０が安全確保領域内のマスタ装置２０，３０上で実行されるが、加えて１つまたは複数の信頼されていないアプリケーション１００が非安全確保領域内のマスタ装置２０，３０上で実行される。１つの実施例において、マスタ装置２０，３０は常に安全確保領域内で実行され、信頼された操作１１０を実行するように構成されている一方、別のマスタ装置を非安全確保領域内で単独で使用して、信頼されていないアプリケーション１００を実行する。しかしながら、これに代わって、１つまたは複数のマスタ装置２０，３０に、安全確保領域と非安全確保領域との間で遷移できる内部機能を持つ場合もあり、これによってそれらの時間の一部を安全確保領域内で信頼された操作１１０を実行するために消費し、その残りの時間を非安全確保領域内で信頼されていないアプリケーション１００のために使用することができる。安全確保領域と非安全確保領域との間を遷移する機能を有するプロセッサは先に述べた米国特許出願第１０／７１４，５６１号に記載されている。
【００４２】
図２に示されるように、データ処理装置はＲＡＭメモリ１２０を有し、此処で使用されるように用語ＲＡＭメモリは、通常読み取りおよび書き込みアクセスを有するメモリを参照するように使用されており、これは従来型ＲＡＭ素子、ＮＯＲまたはＮＡＮＤ  フラッシュメモリ素子、ＦｅＲＡＭ素子、ＥＥＰＲＯＭ素子などを含む。ＲＡＭメモリ１２０はメモリ素子５０，６０の１つで形成されることも、またはデータ処理装置内部の複数のメモリ素子にまたがることも可能である。
【００４３】
本発明の１つの実施例によれば、１つまたは複数の読み取り専用（ＲＯ）範囲をＲＡＭメモリ内に定義することが可能であり、これらの範囲は典型的に信頼された操作１１０によって定義され、また此処では安全確保タスクと呼ぶ。図２において、簡略化する目的で単一のＲＯ範囲１２４が、読み取り／書き込み範囲であるＲＡＭメモリ１２０の残りの部分１２２と共に示されている。
【００４４】
ＲＡＭメモリ１２０へのアクセスは読み取り専用ＲＡＭ（ＲＯＲＡＭ）アクセス制御ブリッジ１３０で制御されており、これは１つの実施例の中で図１に示されるＭＰＵ４０の一部を形成する。特に、図２のライン１５０で示されるように、信頼された操作１１０の制御の下、コンテンツはＲＯ範囲１２４の中にシステムの別の場所に具備されている低速記憶装置１４０（この低速記憶装置は安全が確保されているかまたは安全確保範囲を有する）から格納される。この低速記憶装置は例えば、フラッシュ素子であり、コードまたはデータの形式で信頼できるコンテンツを格納するように構成される。更に、ローディング手順の一部として、信頼された操作１１０はＲＯ範囲１２４内に格納を許される前に、コンテンツの何らかの検証処理を実施するように構成される。
【００４５】
コンテンツがＲＯ範囲１２４の中に、信頼された操作１１０の制御下に格納されると、矢印１６０、１７０で示されるように、ＲＯＲＡＭアクセス制御ブリッジ１３０は、信頼されていないアプリケーション１００がＲＡＭメモリ１２０の読み取り／書き込み範囲１２２への読み取りおよび／または書き込みアクセスを有する一方で、その様な信頼されていないアプリケーション１００はＲＯ範囲１２４内に格納されているコンテンツへは、読み取りアクセスのみを与えるように保証する。
【００４６】
図３は、本発明の１つの実施例に基づく、ＭＰＵ４０のＲＯＲＡＭアクセス制御ブリッジ１３０で実施される処理を図示する流れ図であって、ＲＡＭメモリ１２０内に格納されているコンテンツに対する、コンテンツ保護制御を提供する。ステップ２００において、トランザクションが発生したか否かが判定される。トランザクションが発生すると、ステップ２１０において、そのトランザクションが書き込みトランザクションであるか否か判定される。書き込みトランザクションでない場合は、読み取りトランザクションであり、処理はステップ２２０へ進み、此処で標準ＭＰＵ範囲チェック処理手順が実施され、これは例えば先に説明した米国特許出願第１０／７１４，５６１号に記載されている。典型的に、その様な処理手順を用いて、メモリアクセス要求が非安全確保領域に属する装置で発生されたものである場合、安全確保メモリ内の安全確保コンテンツへのアクセスが許されないように保証する。
【００４７】
ステップ２２０で実施されるチェックに続いて、ステップ２３０において、そのトランザクションが許されるか否かを、実施されたチェックに基づき判定し、許される場合処理はステップ２７０へ進み、此処でそのトランザクションは処理を許され、従ってＲＡＭメモリ１２０がアクセスされる。これに代わって、ステップ２３０でそのトランザクションが許されないと判定された場合、そのトランザクションはステップ２６０で停止される。
【００４８】
ステップ２１０に戻って、そのトランザクションが書き込みトランザクションと判定されると、ステップ２４０において、そのトランザクションがメモリのＲＯ範囲に対して行われるか否かが判定される。行われない場合、処理はステップ２２０に分岐し、此処で通常の範囲チェック処理手順が行われる。しかしながら、そのトランザクションがＲＯ範囲１２４に対するものである場合、ステップ２５０において、そのトランザクションが安全確保領域に属するか否かが判定される。そこに属する場合、そのトランザクションはステップ２７０で続行が許される。典型的に、この事例では全てのＭＰＵ範囲チェックを実施する必要が無いが、それは典型的に全てのコンテンツが安全確保領域からアクセスを許されているためである。しかしながら、これに代わる実施例において、その様な範囲チェックが適切であると考えられた場合、ステップ２５０でその書き込みトランザクションが安全確保領域に属すると判定される場合には、処理は直接ステップ２７０へ行く代わりにステップ２２０へ進むはずである。
【００４９】
ステップ２５０において、書き込みトランザクションが安全確保領域に属さないと判定される場合、本発明のこの実施例によれば、処理はステップ２６０へ進み、そのトランザクションは停止される。これは図２に図示される機能を保証しており、此処で非安全確保領域からのＲＯ範囲１２４への書き込みトランザクションは許されない。
【００５０】
１つの実施例において、低速記憶装置１４０からＲＯ範囲１２４へのコンテンツのローディング処理は、図２に図示されるようにブート時に一度のみ行われ、その後ＲＯ範囲に格納されているコンテンツは変更されない。しかしながら、これに代わって信頼された操作１１０を周期的にＲＯ範囲１２４内のコンテンツを変更するように構成できる。更に、実施例によっては信頼されていないアプリケーション１００がＲＯ範囲１２４内に格納されているコンテンツの幾つかを変更したいと望む正当な理由が存在する。先に図２および図３を参照して説明した手法を適用する際に、信頼されていないアプリケーション１００が直接その様な更新を実施できないことは理解されよう、それはＲＯＲＡＭアクセス制御ブリッジ１３０がその様な更新を阻止するからである。
【００５１】
しかしながら、１つの実施例において、信頼されていないアプリケーションが図４に図式的に説明された処理手順を用いてその様な更新を行うことができる。図４に示されるように、ステップ３００において、非安全確保領域内で実行されるプログラム・コードが読み取り専用範囲１２４内のコンテンツへアクセスするためのトランザクションの発行を望む場合、ステップ３００でそのトランザクションが読み取り専用範囲への書き込みトランザクションであるか否かの判定が行われる。読み取り専用範囲への書き込みトランザクションでない場合は、読み取りトランザクションがステップ３１０で発生される。これは図２のライン１７０で示されるように、そのコンテンツが読み取り専用範囲１２４から関連する信頼されていないアプリケーション１００へ読み出される。
【００５２】
しかしながら、ステップ３００でそのトランザクションが書き込みトランザクションと判定されると、そのトランザクションはステップ３２０でソフトウェアによってトラップされる。典型的に、書き込みトランザクションが読み取り専用範囲への書き込みを求めていることの判定は、ＭＭＵまたは同様のものにより、アクセスされようとしている個別のアドレスが読み取り専用範囲であるか否かを記述するページ・テーブル記述子を参照して行われる。もしも読み取り専用範囲である場合、これは発生される例外となりステップ３２０でそのトランザクションをトラップする。
【００５３】
例外処理ルーチンが実行されると、これは非安全確保領域から安全確保領域へのトランザクションを引き起こす。このトランザクションはそのマスタ装置がいずれの領域でも動作可能な場合は同一マスタ装置内で発生し、またはこれに代わって、非安全確保領域内で実行する装置から安全確保領域内で実行できる異なる装置への遷移を含む。ひとたび安全確保領域への遷移が行われると、ステップ３３０において、安全確保特権モードに入り、その後ステップ３４０で検証処理が書き込みトランザクションに対して実施され、そのトランザクションの発生が許されるべきかの吟味がなされる。その様な検証処理は、例えばメモリマップを参照して非安全確保アプリケーションが安全確保メモリへのアクセスを求めていないことを確認したり、例えば命令の型式の様なその他の関連要素を考慮することを含む。
【００５４】
検証がひとたび行われると、次にステップ３５０で検証結果に基づいて、そのトランザクションの続行が許されるべきか否か判定される。許されない場合は、ステップ３６０で停止され、その後ステップ３７０で非安全確保領域内の非安全確保モードに再度入る。この時点で処理はステップ３００に戻ることができる。
【００５５】
ステップ３５０でトランザクションが許されると判定されると、ステップ３８０でそのトランザクションは実行されるが、これは非安全確保領域から発せられるトランザクションとしてではなく、代わりに安全確保領域から安全確保特権モードで実行される処理によって発せられる。その結果、この書き込みトランザクションはＲＯＲＡＭアクセス制御ブリッジ１３０からは、信頼された操作１１０から発せられたものと見られ、従って実行が許される。その後、処理はステップ３７０に戻ることができて、此処で非安全確保領域内の非安全確保モードに再び入り、その後元の非安全確保プログラム・コードの実行が継続される。
【００５６】
上述の実施例によれば、信頼されていないアプリケーションを実行するシステムは、書き込み可能メモリ素子の中に、信頼されていないアプリケーションから直接変更することはできないが、信頼されていないアプリケーションが読み取りアクセスすることはできる、完全性が検証されたコンテンツを含むように構成された１つのメモリ範囲を持つことができる。これは、読み取り専用範囲内のコンテンツに対して、そのコンテンツの安全性に害を与えることなく高速でかつ電力効率の良いアクセスを可能とする。更に、説明したように読み取り専用範囲内に格納されているコンテンツの設定および完全性の検証は、安全確保領域内で実行される信頼された操作、すなわちソフトウェアおよび／またはハードウェア攻撃に対してオープンでない操作によって実行される。加えて、読み取り専用範囲へのアクセスの管理は、メモリに関連したアクセス制御機構により、個別のメモリアクセス要求が関係している領域に対する知識に基づいて実行される。
【００５７】
典型的に、この知識はバス構造７０上を領域信号によって送信され、これはそのメモリアクセス要求が安全確保領域に属するかまたは非安全確保領域に属するかを識別する。好適に、領域信号はハードウェアレベルで発せられるので、それ自身が安全確保領域内で実行することが可能であると検証された装置で実行されるアプリケーションのみによって発することが可能である。従って、領域信号の設定の改竄を意図している装置上で実行される不良アプリケーションでは不可能であるが、それは不良アプリケーションは非安全確保領域内でのみ実行されるからである。１つの特定の実施例では、装置は領域信号をバス上に出力するための予め定められたピンを有し、デフォルトではその領域信号はその装置が非安全確保領域上で動作するものと示すように設定されている。
【００５８】
その様な手法の利点は種々の条件の中で実現できる。例えば、１つの実施例において、信頼性の保証されない環境の中で、コード・セグメントの完全性を担保するために使用できる。典型的な現行システムの１つの大きな問題は、非安全確保領域用に使用されるオペレーティング・システム・コードが巨大であり、従って性能およびスピードの理由からＲＡＭから実行される必要があるが、ＲＡＭは本質的に修正可能である点である。これと対照的にそのコードを代わってＲＯＭの中に配置すると完全性は確保できるが、変更できないこと並びに一般的にかなり遅いという欠点がある。しかしながらコードがＲＯＭからＲＡＭへコピーされると、これは速度は改善するが通常は完全性の担保は失う。本発明の実施例を通してこの問題は解決されるが、それはコードがＲＡＭ内に配置できるにもかかわらず完全性も担保できるためであり、それはそのコードがＲＡＭの中に安全確保領域内で動作する安全確保タスクの制御下でのみロード可能であって、その後非安全確保領域からそのコードへは読み取り専用アクセスのみが提供されるからである。
【００５９】
従って、読み取り専用メモリ技術はその速度の点において、読み取り／書き込みメモリ技術に後れを取るが、本発明の実施例は読み取り／書き込み技術の改善された速度を備えた、読み取り専用メモリ技術のアクセス制御を提供する。更に、読み取り専用技術の持つ柔軟性の無さも軽減されており、それは本発明の実施例を通してコンテンツを読み取り／書き込みメモリの中に格納することが可能であり、その読み取り／書き込みメモリは信頼性の保証されていないアプリケーションからは読み取り専用であることを保証されるが、必要に応じて安全確保領域内で実行される信頼された操作から周期的に変更できるものである。
【００６０】
本発明の実施例は全てのメモリまたはメモリ・マップ・システムに適用できる。アクセス制御はメモリに関連するアクセス制御ブリッジで管理され、バス・マスタ・レベルでは管理されないことを考えると、別のバス・マスタを用いて読み取り専用範囲内のコンテンツを修正変更しようとすることによる、保護機構の全ての迂回を防止する。特に、本発明の実施例の機構は、どのバス・マスタが要求を出したかに関わらず、非安全確保領域から読み取り専用範囲への如何なる書き込みアクセスも許さないことを保証している。更に、読み取り専用メモリ範囲内のコンテンツは非安全確保実行空間から、読み取り専用範囲の制御へのアクセスを許すコーディング上の不備によって変更することはできないが、それはその制御が何処か別の場所、すなわちメモリに関連するアクセス制御ブリッジ１３０から提供されるメモリアクセス保護手法を通して行われるからである。
【００６１】
更に、本発明の実施例の技術は既存技術にもかなり容易に適用可能であり、それは一般的にこの技術の特長を入れるために信頼性が保証されていないオペレーティング・システム・コードを大きく書き直す必要が無いからである。必要なことは単に、読み取り専用メモリ範囲から実行される全てのオペレーティング・システム・コードが、今回読み取り専用と宣言されたメモリ空間内部のメモリ・コンテンツを変更できることを期待しないことである。
【００６２】
ソフトウェア完全性検証は一般的に「必要に応じて」ベース（これはシステムにスポット的な負荷となる）または、バックグラウンドの定周期プログラム（これはチェックの隙間で攻撃に対して脆弱）のいずれかで実施される。しかしながら、本発明の実施例によれば、コードの信憑性はそれが信頼された動作によって読み取り専用メモリ内にロードされる際にチェックされるので、更にテストする必要がない。
【００６３】
１つの実施例において、ＲＯＲＡＭ領域は信頼性の保証されないオペレーティング・システムのコア機能を含み、これはその動作の完全性を検証するために使用する全てのコード、および通常ＲＡＭメモリ内にロードされるコードを含む。１つの実施例において、このＲＯＲＡＭのコンテンツはブート時点の後は変更されないが、先に説明したようにオペレーティング・システムが、変更を行う信頼性の保証されたコードを要求するシステムが存在する場合もある。しかしながら、図４を参照して説明したように、その様な変更は典型的には信頼されたコードがその検証手順を、行われた全ての変更に対して繰り返した後にのみ発生する。加えて、その変更を手際よく行うためには、ある量の「ハンドシェイク」が要求され、従って非安全確保領域内で実行されるコードの全ての不正操作が避けられる。
【００６４】
本発明の１つの特定の実施例を図１から４を参照して説明してきたが、多数の変形が本発明の範囲から逸脱することなく行えることは理解されよう。先に説明したように、書き込み可能メモリは複数のＲＯＲＡＭ範囲を有するように定義される。更に、重複するＲＯＲＡＭ範囲が、１つまたは複数の異なるその様なＲＯＲＡＭ範囲の書き込み制御を有する異なる信頼されたコードで定義される。
【００６５】
更に、幾つかの実施例において、そのコンテンツをＲＯＲＡＭ範囲の中にロードするために使用された信頼されるコードは、ブート処理の重要段階の間のみ信頼されるものと考えられる。この段階の後、ＲＯＲＡＭ範囲への更なる修正変更は行われず、また全てのアクセスは読み取り専用と考えられる。
【００６６】
この変形として、信頼性が保証されていないオペレーティング・システム初期化処理ルーチンは信頼に足るものと考えられるが、それらはチェックされたものであり、そのシステムは未だ閉じているからである。「閉じた」環境は全ての操作が信頼に足る発生源から来たものとして検証されているものである。完全に閉じたオペレーティング・システム環境は認証されたコードのみを実行する。ＰＣキーボードをスキャンするチップ内のコードは閉じた環境である。開かれたオペレーティング・システムは任意の発生源からダウンロードされたコードを実行する。WINDOWS（登録商標）PCは開かれた環境である。開かれたオペレーティング・システムはその寿命の中のある時点では閉じていると考えられる、すなわち開始してはいるが外部で生成されたコードの実行を許す前の段階が存在し、その時点でこれは閉じた環境として未だ信頼に足るものである。その様なオペレーティング・システム初期化コードはメモリをＲＡＭとして使用して実行し、ひとたび完了すると、安全確保領域は続いて（しかも此処でのみ）読み取り専用範囲を指定して、その時点から読み取り専用範囲内に格納されたコンテンツが非安全確保領域から書き込まれないように保証する。
【００６７】
ＲＯＲＡＭ範囲を含むメモリ素子は種々の形式を取りうる。１つの実施例において、それは信頼されたコードは制御できるが、信頼されていないオペレーティング・システムはデータの読み取りのみに使用する、周辺装置である。考えられる例は、読み取り専用露出ページ・テーブルを具備した、イーサネット（登録商標）装置またはシステム・レベルＭＭＵ装置である。
【００６８】
１つの実施例において、ＲＯＲＡＭ範囲を含むメモリ素子は低速メモリ、例えばフラッシュメモリであって、これは信頼されたコードは制御できるが、通常のオペレーティング・システム・コードはデータに対する読み取り専用用途のみを有するものである。これでもまだ十分な利益を与えるが、それはデータの完全性が先に説明したアクセス制御機構を通して維持されるからである。
【００６９】
１つの実施例において、ＲＯＲＡＭ範囲は、低速記憶素子から転送されるコードまたはデータが、信頼に足る完全性を有すると感じられる場合は、ブロック署名チェックを実行することなくコンテンツをロードされる。
【００７０】
１つの実施例において、バス・マスタ周辺機器はコンテンツをＲＯＲＡＭ範囲の中にロードするためにＤＭＡ様技術を使用するように設計されている。その様な装置はソースの完全性が本質的に信頼できない場合、ブロック署名チェックを使用する。
【００７１】
ＲＯＲＡＭ範囲の構成は種々の形式を取りうる。実際、１つの実施例において、ＲＯＲＡＭの区分けは、メモリ・ページ単位で適用されている。
【００７２】
１つの実施例において、コンテンツを読み取り専用範囲の中にロードした後、信頼されていない実行を再開する前に、信頼された操作が付加的にＲＡＭメモリ１２０の読み取り／書き込み範囲１２２内のコンテンツに対してチェックを実施するように構成されている。これは非安全確保オペレーティング・システムに対して必要な変更を少なくするが、それはオペレーティング・システムはメモリ操作を実施するために安全確保領域を呼び出すことが無く、１度何らかの操作が完了するときに安全確保領域を呼び出す必要が有るだけである。
【００７３】
先に説明したように、個別のメモリ素子はその中に定義された１つまたは複数の読み取り専用範囲を有するか、または実際いずれかの素子、例えばフラッシュ，ＦｅＲＡＭ，ＥＥＰＲＯＭ型素子などに対しては全「ＲＡＭ」素子アドレス範囲に対してＲＯＲＡＭ範囲として指定するのが適切であろう。
【００７４】
メモリ素子５０，６０の１つがフラッシュメモリ素子であり、フラッシュメモリ素子の全アドレス範囲がＲＯＲＡＭ範囲として指定されている、１つの特定の実施例を次に図５および６を参照して説明する。図５は典型的なフラッシュメモリ４００の中に見られる構成要素を図示する図である。特に、フラッシュメモリ４００は典型的に、多数のメモリ区分４１０を含むメモリ配列で構成され、それらのメモリ区分への読み取りおよび書き込みはフラッシュメモリ４００内の状態マシン４２０で制御されている。フラッシュメモリ素子の型式に依存して、制御、アドレスおよびデータ信号の幾つかは状態マシンとメモリ配列に並行して供給される。
【００７５】
今まで安全確保領域と非安全確保領域とを有するデータ処理装置の中でフラッシュメモリ素子を効率的に使用することは困難であった。これは書き込みアクセスに対してフラッシュメモリ素子内でアクセスされるアドレスを、フラッシュメモリ素子に対して発行されるアクセス要求のフォーマットから容易に推論することができないためである。特に、フラッシュ命令（ブロック消去、コピー、書き込みなど）は初期書き込み転送で表され、これらのフラッシュ命令はそれら自身でアドレスを指定しないからである。従って、命令シーケンスは多数の読み取りおよび書き込み転送から構成され、その命令が実行されている間は他の読み取りまたは書き込みを行ってはならない。
【００７６】
図６は図５の状態マシン４２０がその様なフラッシュ命令を取り扱っている際の動作を図示する。図６に示されるように、ステップ５００において、状態マシンはそのアイドル状態にあり、第１命令を受け取るとステップ５１０に進む。第１命令が実行されると、その結果としてその第１命令が、読み取りトランザクションの読み取り命令であるかまたは、それに代わって何か別のトランザクションの第１命令を形成する書き込み命令であるかが判定される。従って、ステップ５２０において、第１命令が読み取りトランザクションを示しているか否かの判定が行われ、示している場合読み取り転送がステップ５３０で実施され、その後状態マシンはアイドル状態５００に戻る。
【００７７】
しかしながら、第１命令が代わって書き込み命令の場合、処理はステップ５４０に進み、此処で制御、アドレスおよびデータ・パス上の信号が次に受け取られる命令に対して調べられ、どの型式のトランザクションが実行されるかの判定がなされる。特に、実行される１つのトランザクションに対して、多数の命令が発効される必要がある。１例として、フラッシュメモリへのデータの書き込みは、第１書き込み命令を発生させるのに続いて、第２書き込み命令を発生し、この第２書き込み命令は転送されるデータ語を指定する。同様に、書き込みトランザクションが完了したか否かを判定するために使用される、状態読み取りトランザクションの実行は、書き込み命令に続いて読み取り命令の発行を含む。第２命令の性質を評価するために、制御、アドレスおよびデータ信号がステップ５４０で分析される必要がある。
【００７８】
その様な分析に続いて、ステップ５５０において、第２命令が状態読み取り命令と判定されると、処理はステップ５６０に進み、此処で読み取り転送が行われ、データが、書き込みトランザクションの状態を示す、状態レジスタのコンテンツに転送される。その後、処理はステップ５００でアイドル状態に戻る。
【００７９】
ステップ５５０において、命令が状態読み取り命令では無いと判定されると、ステップ５７０において、その命令が書き込まれるべきデータ値を指定する書き込み命令であるか否かの判定がなされる。書き込まれるべきデータ値を指定する書き込み命令である場合、書き込み転送が５８０で実施されて、データ語がメモリ配列４１０の中に書き込まれ、その後処理はアイドル状態５００に戻る。後続のデータ語は追加の書き込み命令を発行することにより書き込むことができる。
【００８０】
判定ボックス５９０で図式的に示されるように、更に多数の命令が第２命令で指定されることは理解されよう。
【００８１】
書き込みフラッシュ命令が発行された時点で、フラッシュメモリ素子の外側のＭＰＵが、どのコンテンツがアクセス要求されているか確実に識別することは困難であり、その後アドレスがアドレス・バス上で識別された際にも、これらは区分識別子を参照して識別されるであろうが、これもまたＭＰＵ４０で容易に理解することはできない。その結果として、既知のシステムの中で、書き込みフラッシュ命令を非安全確保領域から提出し、これらの命令を用いてフラッシュメモリ内の安全確保範囲から非安全確保範囲へデータをコピーし、これにより非安全確保領域から安全確保領域へのアクセスを許すことが可能であろう。
【００８２】
しかしながら、本発明の上記の技術を使用することで、その様な問題は軽減されるが、それはフラッシュメモリ素子が、非安全確保領域内で実行されるアプリケーションはその中のコンテンツに対して読み取り専用のみである読み取り専用範囲を具備するように構築できるからである。その様な読み取りアクセスに対して、既知の機構を用いて読み取り専用範囲内の全ての安全確保コンテンツが非安全確保領域からアクセスされないようにすることが可能である。加えて、安全確保領域内の少なくとも幾つかの安全確保タスクに対して、読み取りおよび書き込みアクセスをその範囲内に許可し、その安全確保タスクの制御下にそのコンテンツの更新を認めることが可能である。本発明の実施例の先に説明した技術のおかげで、非安全確保領域からのアプリケーションで発せられた全ての書き込みトランザクションがＲＯＲＡＭアクセス制御ブリッジ１３０により停止されることが理解されよう。
【００８３】
１つの実施例において、ＲＯＲＡＭ範囲内のコンテンツの更新を許された安全確保タスクは安全確保特権モードで実行される。その様な実施例において、非安全確保領域から発せられる全ての書き込みトランザクションに加えて、安全確保領域内の操作の非特権モードで発せられた全ての書き込みトランザクションもまた、アクセス制御ブリッジ１３０で阻止されるようにシステムを構築することが可能である。
【００８４】
１つの実施例において、コンテンツをフラッシュメモリのＲＯＲＡＭ範囲の中にロードするために使用される信頼された操作は、安全確保特権再入不能機能である。その様な機能はキー／セマフォで管理されて、その機能は読み取り専用範囲へのアクセスを有する一方で、その他の全ての機能は同時に読み取り専用範囲へのアクセスができないように保証される。
【００８５】
図４を参照して先に説明した処理を用いて、フラッシュメモリへの書き込みを必要とする非安全確保領域内で実行されるプログラムが、フラッシュメモリへ書き込まれた関連するコンテンツを求める安全確保フラッシュ命令機能をコールし、その安全確保フラッシュ命令機能がそこに提示される全ての命令の安全性をそれらの命令で指定されたトランザクションの続行を許す前にチェックすることが可能である。その様な手法はフラッシュメモリを非安全確保フラッシュ命令攻撃から保護し、一方で非安全確保領域内で実行されるアプリケーションに対してフラッシュメモリへアクセスするための技術をも提供している。
【００８６】
本発明の特定の実施例を此処に説明してきたが、本発明がこれらに制限されるものでないことは明らかであり、多くの修正変更並びに追加が本発明の範囲内で行える。例えば、添付の関連する特許請求項の特徴を種々に組み合わせることも、本発明の範囲から逸脱することなく独立した特許請求項の特徴を用いて行うことができよう。
【図面の簡単な説明】
【００８７】
【図１】図１は本発明の１つの実施例に基づくデータ処理装置のブロック図である。
【図２】図２は本発明の１つの実施例に基づく書き込み可能メモリ素子内の、読み取り専用範囲へのアクセスの管理を図式的に示す図である。
【図３】図３は本発明の１つの実施例に基づく、図１のメモリ保護ユニットで実行される処理を図式的に示す流れ図である。
【図４】図４は非安全確保領域内で実行されるコードから読み取り専用範囲へ発せられた書き込み処理が、本発明の１つの実施例に基づき如何にして取り扱われるかを図式的に示す流れ図である。
【図５】図５は本発明の１つの実施例が適用可能なフラッシュメモリ素子の構造を図式的に示す図である。
【図６】図６は図５の状態マシンの動作を図式的に示す図である。
【符号の説明】
【００８８】
１０  データ処理装置
２０、３０  マスタ装置
４０  ＭＰＵ
５０，６０  メモリ素子
７０  バス構造
１００  信頼されていないアプリケーション
１１０  信頼された操作
１２０  ＲＡＭメモリ
１２２  読み取り／書き込み範囲
１２４  読み取り専用範囲
１３０  ＲＯＲＡＭアクセス制御ブリッジ
１４０  低速記憶装置
４００  フラッシュメモリ
４１０  メモリ配列
４２０  状態マシン
【図１】
2007249933.tif 000003
【図２】
2007249933.tif 000004
【図３】
2007249933.tif 000005
【図４】
2007249933.tif 000006
【図５】
2007249933.tif 000007
【図６】
2007249933.tif 000008