データ・アクセス制御機能を使用した、統合システム内でのセキュア動作の初期化、維持、更新および回復
【課題】複数のソフトウェア・レベルを持つ統合システムのセキュア動作を容易にすること。
【解決手段】(1)暗号化して保存された初期化コードを復号化することによってシステム初期化を開始するステップであって、前記復号化は前記統合システムのデータ・アクセス制御機能にて発生する、ステップと、(2)前記複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを、前記統合システムの制御を前記次のソフトウェア・レベルに渡す前に認証するステップと、(3)前記次ソフトウェア・レベルが前記統合システムの動作特性を修正する能力を制限するステップであって、前記制限は前記統合システムの前記データ・アクセス制御機能にあるハードウェア・コンポーネント内で実施される、ステップと、を備える方法を提供する。
【解決手段】(1)暗号化して保存された初期化コードを復号化することによってシステム初期化を開始するステップであって、前記復号化は前記統合システムのデータ・アクセス制御機能にて発生する、ステップと、(2)前記複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを、前記統合システムの制御を前記次のソフトウェア・レベルに渡す前に認証するステップと、(3)前記次ソフトウェア・レベルが前記統合システムの動作特性を修正する能力を制限するステップであって、前記制限は前記統合システムの前記データ・アクセス制御機能にあるハードウェア・コンポーネント内で実施される、ステップと、を備える方法を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に統合システム内でのデータ要求処理およびデータ転送に関し、より詳細には、少なくとも部分的には統合システムのデータ・アクセス制御機能によって実施される、統合システムのセキュア(安全確実)な動作を初期化し、維持し、更新し、および回復するための技術に関する。
【背景技術】
【0002】
本出願は、それぞれが本出願と同一の譲受人に譲渡され、本出願と同日に出願された以下の出願の主要部分と関連する主要部分を含む。下記の各出願を、この参照により本明細書全体に組み込む。
−米国特許出願第10/125803号、「要求元マスタIDおよびデータ・アドレスを用いて、統合システム内のデータ・アクセスを制限する制御機能(Control Function Employing a Requesting Master ID and a DataAddressto Qualify Data Access Within anIntegrated System)」、エバンズ(Evans)他、2002年4月18日出願−米国特許出願第10/125115号、「複数のセキュリティ状態を有し、統合システムのセキュアな動作を容易にするための制御機能(ControlFunction with Multiple Security States for FacilitatingSecure Operation of anIntegrated System)」、フォスター(Foster)他、2002年4月18日出願−米国特許出願第10/125708号、「統合システム内で、選択的トランスペアレント・データ認証を実施する制御機能(ControlFunction Implementing Selective Transparent Data AuthenticationWithin anIntegrated System)」、フォスター(Foster)他、2002年4月18日出願
【0003】
今日、複数のマスタ機能が、単一のシステム・チップ上に統合されることも多い。複数の別個の部品を単一のチップ上に統合するためのアーキテクチャを最初に定義するとき、外部装置へのアクセスが問題になることがあり得る。例えば、MPEGビデオ・デコーダ・システムでは、様々なデータ領域用の外部メモリ、あるいはフレーム・バッファなどのバッファをしばしば使用する。この外部メモリは通常、DRAMまたはSDRAM技術を使用して実装される。
【0004】
チップ外の装置にアクセスするための方法として、当技術分野には2つの代表的なアプローチがある。第1のアプローチでは、各オン・チップ機能ユニットは、その特定のユニット専用のデータ・バスを介して必要な外部装置にアクセスすることができる。このアプローチは、ローカルには外部装置へのアクセスに有効であるが、統合システム内でグローバルには決して最適ではない。例えば各機能は、それ自体の外部メモリ領域には完全にアクセスできるが、その統合システムの各機能間でのアクセスの共用は存在しない。したがって、このシステムのあるメモリ領域から他のメモリ領域にデータを転送することがしばしば必要になる。この場合には、明らかにデータ転送が増加し、共用メモリ・システムと比べて全体システムの性能が低下する恐れがある。
【0005】
もう1つのアプローチは、統合システム内で単一の共通バスを使用するものであり、それによって、システムの1つまたは複数の機能ユニットが、単一のポートを介して各外部装置と通信することが可能になる。装置の共用を可能にするが、このアプローチの1つの難点は、この統合システムのコンテンツまたは他の機密データへのアクセスを制御することに関するものである。例えば、統合設計において大規模な共通メモリ・プールを使用すると、転送デマルチプレクサからセットトップ・ボックスのデコーダに供給される圧縮データなど、保護されたメモリ空間への無許可アクセスを防止することが困難になる。プログラミング・インタフェースがオープンで、外部開発が奨励されているシステムの場合には、特に困難となる。機能のマスタはそれぞれメモリ空間にアクセスできる必要があり、あるアクセスが信頼できるマスタからのものか、それとも例えば信頼できないマスタもしくはオープン・マスタなどの外部要求からのものかを識別することは不可能である。
【0006】
さらに、共用メモリを使用して複数の機能マスタを有するシステム・オン・チップ設計を行うときは、データを無許可アクセスから保護する機構を提供することが望ましく、特にデータが装置のシステム・プログラム・コードを含むときには望ましい。より詳細には、セキュアな動作環境の初期化を容易にするには、まずシステム・コードがセキュアでありかつ意図した機能をうまく実施することを保証することから始める。したがって、セキュアな動作環境を保証するためには、統合システムをセキュアなモードで起動またはブートする必要がある。
【特許文献1】米国特許出願第10/125803号
【特許文献2】米国特許出願第10/125115号
【特許文献3】米国特許出願第10/125708号
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記のことを考慮すると、当技術分野では統合システムのデータ・アクセス制御アプローチに関して様々な機能拡張が求められていることが分かる。より詳細には、統合システムのセキュアな動作を初期化し、維持し、更新し、および回復するための技術が求められている。
【課題を解決するための手段】
【0008】
複数のソフトウェア・レベルを有する統合装置のセキュアな動作を容易にする方法を提供することによって、従来技術の欠点が克服され、追加の利点が提供される。この方法は、統合システムの制御を次ソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次ソフトウェア・レベルを現ソフトウェア・レベルによって認証すること、および次ソフトウェア・レベルが統合システムの動作特性を修正する能力を制限し、その制限を統合システムのデータ・アクセス制御機能によって実施することを含む。
【0009】
他の態様では、統合システムのセキュアな動作を初期化する方法が提供される。この方法は、統合システム用の少なくとも1つのキーを生成すること、その少なくとも1つのキーを使用して、統合システムのデータ・アクセス制御機能によって暗号化された初期コードを統合システムにロードすること、およびその暗号化された初期コードを使用して前記統合システムを再初期化することを含む。
【0010】
他の態様では、第1のキー・セットを使用して暗号化されたデータを第2のキー・セットを使用して暗号化されたデータに移行させる方法が提供される。この方法は、第1のキー・セットを使用して暗号化されたデータを復号化すること、および第2のキー・セットを使用して、統合システムのデータ・アクセス制御機能によってそのデータを再暗号化することを含む。有利なことには、データ・アクセス制御機能を使用して再暗号化することによって、データの暗号化がその統合システムに固有のものとなる。
【0011】
他の態様では、トリガ・イベントに続いて統合システムの機能を回復させる方法が提供される。この方法は、改ざん検出トリガ・イベントに続いて統合システム内で機能レベルを自動的に縮小すること、および、信頼できる回復手順を選択的に使用することによってユーザが統合システムの全機能の回復を可能にすることを含む。
【0012】
本明細書は、上記に要約した方法に対応するシステムおよびコンピュータ・プログラムも開示する。
【0013】
有利なことには、本明細書で開示するセキュア動作技術は、統合システム内でセキュアな動作環境を初期化し、維持し、更新し、および回復するために、あるいはその任意の組合せを実施するために使用できる。より詳細には、提示する技術は、データ・アクセス制御機能によって維持される動作特性の更新を制限する能力を提供する。この動作特性は、統合システム内の様々なソフトウェア・レベルによって使用されるキー・セット、アクセス・テーブル、アクセス・レベルおよびアクセス・パラメータのうちの1つまたは複数を含むことができる。更新を制限するこの能力によって、階層的セキュリティ特権を備えた様々なソフトウェア・レベルが提供される。
【0014】
本明細書で提示される技術はさらに、旧バージョンのソフトウェアまたは他のデータの再使用を防止するためのバージョン番号の使用などのセキュアな方法で、現場で更新を行う能力を提供する。キー管理プロセスの一部として暗号化されたデータを第1のキー・セットから第2のキー・セットに移行させる能力、または保護されたデータを他のシステムからインポートする能力あるいはその両方についても提示する。さらに、統合システムが改ざんトリガ状態に入ったにもかかわらず機能を提供する能力についても記述する。詳細には、機密のデータおよびアプリケーションにアクセスできない制限された機能を自動的に提供することができ、またサービス機能にあまり依存せずに全機能を回復するための機構も自動的に提供できる。
【0015】
本発明の技術によって追加の特徴および利点が実現される。本発明のその他の実施形態および態様についても本明細書に詳細に記載されており、それらは特許請求の範囲に記載した本発明の一部と見なされる。
【0016】
本発明として見なされる主要部分については、別添の特許請求の範囲の中で詳細に指摘し、明確に主張する。本発明の、前記その他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せて読めば明らかである。
【発明を実施するための最良の形態】
【0017】
図1は、一般に100で示され、複数の内部機能マスタ1101、1102、1103、...、110nを有する従来の統合装置を示す。マスタ1101は、プロセッサ・コア112およびメモリ管理ユニット114を有するプロセッサとして示されている。この例では、内部マスタ1101、1102、1103、...110nは、共用バスのバス制御論理機構130を含むメモリ・サブシステム120に接続される。バス制御機構130は、メモリ・サブシステム内部に示されているが、別法としてサブシステム120の外側に置くこともできることが当業者には理解されよう。
【0018】
バス制御ユニット130は、統合装置のスレーブへの要求を調整し統合する。例えば、第1のスレーブは、オープンなメモリ部分155を有する、フラッシュ・メモリなどの外部不揮発性メモリ150に接続された外部バス・コントローラ140を含むことができる。第2のスレーブは、SDRAMやDRAMなどの外部揮発性メモリ170に接続されたメモリ・コントローラ160を含むことができる。メモリ170は、オープンなメモリ部分175を含む。一般に、メモリ・コストを最小にし、かつ各機能間でのデータ転送を容易にするために、この統合設計では各機能が共通メモリ・プールを共用する。したがって、すべての内部マスタは不揮発性メモリにも揮発性メモリにも等しくアクセスでき、しかもどちらの記憶空間もオープンとラベル付けされており、データ・アクセスに制限がないことを意味している。
【0019】
一般に不揮発性メモリは、電源を切ったときでもデータが保持される永続記憶装置に使用される。このメモリには、ブート・コード、オペレーティング・システムやドライバなどのオペレーティング・コード、および任意の永続的データ構造を含めることができる。揮発性メモリは、セッション指向の記憶装置に使用され、通常はアプリケーション・データおよび他のマスタのデータ構造を含む。揮発性メモリは不揮発性メモリより高速なので、統合装置の動作中は、オペレーティング・コードを揮発性メモリに移動させ、そこから命令を実行するのが一般的である。
【0020】
例えば図1に示したような典型的なシステムには、いくつかのセキュリティ・リスクがあることに留意されたい。すなわち、
1. オペレーティング・コードまたはデータ構造を修正することによってプロセッサの挙動を制御できるので、内部データ、または動作が損なわれる可能性がある。
2. 通信コントローラといった、特定の場合には、内部マスタが外部ソースによって制御されることがあり、また、メモリが共用されているので、当該内部マスタが使用された結果内部コードまたは内部データを損傷する可能性がある。
3. ソフトウェア開発に使用されるデバッグ・ツールおよび開発ツールを、プロセッサの挙動を修正または監視するために使用することができる。
4. メモリが共用されているので、所与のマスタは、意図せずに他の内部マスタの動作を破壊または損傷する可能性がある。
【0021】
上記のセキュリティ・リスクに対して本明細書で提示する解決策は、データ経路内のバス制御とスレーブ装置との間に配置されるアクセス制御機能を提供するものである。このアクセス制御機能は、(一実施形態では)機能マスタをスレーブ装置に接続している内部バスの特性を利用して、各アクセス要求を1組のセキュア制御情報に基づいてさらに制限し、また必要な場合にはそれを阻止できるようにすることができる。有利なことには、このアクセス制御機能は、マスタがデータを要求する各アクセスを区別する能力を提供し、さらにデータが格納されている場合には、次いでそれに従ってアクセスを許可または制限し、データが格納されていない場合には、そのアクセスを制限する機能を提供する。本発明の他の態様による追加のアクセス制御機能についても本明細書に記載されている。
【0022】
図2は、一般に200で示され、本発明の一態様によるアクセス制御機能240を含むシステムの一実施形態を示す。システム200はまた、バス制御230を介して1つまたは複数のスレーブ250/270と通信する複数の機能マスタ2101、...、210nを含む。この場合には、アクセス制御機能240は、データ経路中でバス制御230とスレーブ250/270との間を仲介する。代替実施形態として、バス制御ユニット230をセキュア・メモリ・サブシステム・ユニットの外側に置くこともできる。図示のように、第1のスレーブ装置は外部バス制御装置250を含み、第2のスレーブ装置はメモリ制御装置270を含む。この状況で、バス制御ユニット、アクセス制御ユニット、外部制御装置を組合せてセキュア・メモリ・サブシステム220を形成する。その結果、不揮発性メモリ260および揮発性メモリ280として定義された外部アドレス空間はさらに、オープン・エリア262およびセキュア・エリア264、ならびにオープン・エリア282およびセキュア・エリア284にそれぞれ分割される。この場合「セキュア」とは、マスタ2101、...、210nがアクセス制御ユニット240中で定義された空間だけにアクセスできることを意味する。アクセス制御機能が、オープン・エリアおよびセキュア・エリア双方へのすべてのアクセスを制御していることに留意されたい。
【0023】
ユニット240のアクセス制御機能についての詳細な説明は、上で組み込んだ「要求元マスタIDおよびデータ・アドレスを用いて、統合システム内のデータ・アクセスを制限する制御機能(Control Function Employing A Requesting Master ID And A DataAddressTo Qualify Data Access Within An Integrated System)」に含まれている。さらに、上で組み込んだ出願は、必要とされるデータおよびそのデータのアドレス、を要求する機能マスタのアクセス・レベルに基づいて各データ要求を制限する際の、アクセス・テーブル248および暗号化/復号化機能249の使用についても詳述している。
【0024】
要約すると、バス制御ユニットによって制御が与えられたマスタからの要求は、要求されたアドレスおよび関連した制御(例えば、読出しまたは書込みなど)とともにアクセス制御ユニットに送られる。アクセス・テーブルは、要求されたアドレス、マスタID、ならびに読出しまたは書込みの指示を、そのマスタに許可されているアクセス機能と比較するために、アクセス制御機能によって使用される。所与の要求は、遮断(終了)されることも、平文の状態で許可されることも、あるいは暗号化/復号化付きで許可されることもあり得る。要求された転送が許可される場合には、バス信号がスレーブに伝播され、その要求に関連するアクセス・パラメータが、アクセス・テーブルに基づいて、例えば、暗号化/復号化が適用できる場合には暗号化/復号化エンジンに送られる。暗号化/復号化エンジンは、関連するアクセス・パラメータを用いてデータが所与のスレーブに転送されるときはその書込みデータを暗号化するために、あるいは所与のスレーブから返送されるときはその読出しデータを復号化するために、使用することができる。
【0025】
要求元のマスタIDおよび要求のアドレスに基づいてデータ・アクセスを制限する機能に加えて、そのアクセス制御機能にセキュリティ状態マシン242を追加して、例えばアクセス・テーブル248および暗号化/復号化機能249の動作を制御する概念が、上で組み込んだ「複数のセキュリティ状態を有し、統合システムのセキュアな動作を容易にするための制御機能(Control Function With Multiple Security States ForFacilitatingSecure Operation Of An Integrated System)」という名称の出願に記載されている。代替ブート・アドレス245およびマスタ・キー・セット246を保持するために、オン・チップの記憶装置243もセキュリティ状態マシン242と併せて使用される。この記憶装置は、全体の電源を落としたときでも値が保持されるという意味で永続的である。したがって、その値は、初期化されたあと、セキュリティ状態の変化にともなって特にリセットまたは消去されるまでは、セッションを越えて使用することができる。このことについては、後で説明する。
【0026】
データ・アクセス制御機能のセキュリティ状態マシンは、ヌル状態やセキュア状態を含む可能な複数のセキュリティ状態のうちの1つの状態をとることができる。セキュア状態では、制御機能は、ブート・コードの要求に使用される標準ブート・コード・アドレスを代用ブート・コード・アドレスで置き換える。代用ブート・コード・アドレスは暗号化バージョンのブート・コードのアドレスを指定し、次いで制御機能が、永続記憶装置に保持されたマスタ・キー・セットを使用してそのコードを復号化する。ヌル状態のときは、そのマスタ・キー・セットは消去される。
【0027】
上記のデータ・アクセス制御機能の他の拡張として、要求データを選択的に認証する制御機能を追加する概念が、上で組み込んだ「統合システム内で、選択的トランスペアレント・データ認証を実施する制御機能(Control Function Implementing Selective TransparentDataAuthentication Within An Integrated System)」という名称の出願に記載されている。この選択的認証は、データ要求を開始する統合装置の機能マスタにとってトランスペアレントであってもよい。要求データは、外部メモリに暗号化された形で格納されたコードまたはデータのどちらをも含むことができる。(特許請求の範囲も含めた本明細書の各所で、コードまたはデータの意味で総称的に「データ」という用語を使用していることに留意されたい。)上記のデータ・アクセス制御機能の暗号化機能により、データが直接観察または修正されることが防止されるとともに、完全性チェック機能により、暗号化された値が元々メモリに書き込まれていた値と同一であることをさらに検証するための能力が追加される。
【0028】
一実施形態では、本発明の一態様による完全性チェック機能は、上で組み込んだ出願に記載のアクセス・テーブルおよびアクセス・パラメータと共に動作する。認証されるデータに関連するアドレス範囲は、アクセス・テーブル内の追加のパラメータによって指示できる。完全性チェック機能245は、要求されたデータ転送に基づき、メモリ中の完全性値の位置を確定する。また、下記のように完全性値を計算し比較する。
【0029】
要約すると、このプロセスはプリストレージ・ステップとポストストレージ・ステップに分割できる。例えば、
プリストレージ:
セキュアである必要があり、かつ認証されるべきデータを数学的に圧縮したバージョンである、第1の完全性チェック値を生成する。
そのデータを暗号化し、第1の完全性チェック値を暗号化する。
暗号化された完全性値をメモリに格納し、暗号化されたデータをメモリに格納する。
ポストストレージ:
メモリから完全性値を取り出し復号化し、暗号化されたデータを取り出し復号化する。
第1の完全性チェック値に使用したのと同じ機能を使用して第2の完全性チェック値を生成する。
第1と第2の完全性チェック値を比較する。それらが一致した場合には、そのデータを認証する。一致しなかった場合には、データが破壊されているので訂正アクションを取る必要がある。
完全性チェック機能245はオプションで、以下で説明する、統合システムの拡張されたセキュア動作の概念と組合せて使用することもできる。
【0030】
図3は典型的な統合装置で使用されるソフトウェア・レベルを表す。図示のように、装置のハードウェア300は、その上で各ソフトウェア・レベルが動作するベースとなる。ブート・コード310は、装置に最初に電源が投入され、初期化データ312を使用して初期化機能が実施されるときに動作する。カーネル320は、レベル1と抽象化されているが、初期化の後でブート・コードによってコールされる。カーネル320は、一般的なシステム設定322や登録324を含むオペレーティング・システムのサービスおよびリソースを提供する。次いで、ミドルウェアおよびサービスの機能330を含む1つまたは複数のソフトウェア・レベルが順次コールされる。ミドルウェアおよびサービスの機能には、ソフトウェア・アクセス制御あるいはパスワード332やキー334とともに動作するネットワーク・サービス、ファイル管理、メディア・ハンドリングなどがある。アプリケーション・ソフトウェア340は、ミドルウェアおよびサービスのソフトウェア・レベル330の上に存在し、個人情報342などのユーザ・データおよび他のコンテンツ344とともに動作する。
【0031】
図3は、統合装置またはシステムにセキュリティを提供する際の、1つの課題を示している。一般的な法則として、ソフトウェアのレベルが、ベースとなるハードウェアに近づけば近づくほど、ソフトウェアはそれだけセキュアになり信頼性が高くなる。しかし一方、ソフトウェアのレベルが、アプリケーションなどのようにユーザに近づけば近づくほど、それだけデータの価値が高まる。その結果、最もセキュアでないソフトウェアが最も価値のあるデータを保護することになる。
【0032】
図4は、統合システムにセキュリティを提供する方法を示す。ハードウェア(400)から始めて、各ソフトウェア・レベルは、すぐ下のレベルによって認証される。ブート・コード(410)の場合は、上で組み込んだ出願に定義されているように、復号およびマスタ・キー・セットをハードウェアで使用して認証され、その際ブート・コード(または初期化コード)は外部メモリに暗号化された形で格納される。また認証の後で、かつ次のソフトウェア・レベル(420,430,440など)に制御を渡す前に、先行の各レベルは、次レベルがシステムを制御または修正する能力を制限することもできる。したがって、各レベルがロードされるとき、各レベルは検証され、システムのセキュリティに影響を与える能力がさらに制限されることがある。
【0033】
図5は、例えば図2で説明したような統合システムの状況で、図4に示した方法を実装した例を示す。より詳細には、この実装は、先に述べた、上で組み込んだ出願に記載のアクセス制御機能を使用して行われる。ブート・コード(400)は、上記のようにハードウェアによって認証され、したがって最も信頼できるソフトウェア・レベルであると考えられる。ブート・コードは、復号化で使用されるキー・セットと、アドレスがどのように変換されるかを定義するアドレス・テーブルと、マスタIDおよびアドレス範囲に基づいて可能なトランザクションを指定するアクセス・レベルと、更に、要求がどのように処理されるかを定義したアクセス・パラメータと、を含むアクセス制御機能を完全に構成することができる。この場合も、これらの情報はすべて上記のアクセス制御機能によって維持される。
【0034】
次のソフトウェア・レベル、すなわちレベル1(410)に制御を渡す前に、この例では、ブート・コードは、キー値をソフトウェアから直接には見えなくなるようにするために、それらキー値を隠蔽し、また、(どちらもアクセス・テーブルに含まれる)アドレス・テーブルおよびアクセス・レベル・エントリが、次ソフトウェア・レベルによって修正できないようにするために、それらをロックする。しかしこの例では、アクセス・パラメータは、この次レベルにおいてもやはり更新されることがあり得る。隠蔽はハードウェアで読出しアクセスを阻止することによって達成でき、ロックはハードウェアで書込みアクセスを阻止することによって達成できることに留意されたい。アクセス制御ユニットのレジスタへのアクセスを制御(またはロック)するのに、複数の方法があることを当業者は理解されよう。例えば、特権命令を使用すること、そのレジスタをオン・チップのプライベート・バスだけに接続すること、そのレジスタをメモリマッピングしアクセス制御ユニットの既存の設定を使用してそのレジスタへのアクセスを制限することなどである。
【0035】
図示のように、最も信頼度の低いソフトウェア・レベル440に制御を渡す前に、アクセス制御機能の末尾に図示されている動作特性、すなわちアクセス・パラメータ、を修正できないようにロックする。
【0036】
図6は、コンピュータ・システムの形に組み立てられた統合装置のセキュアな動作環境を初期化するプロセスの一実施形態を示す。図示のように、統合装置はより大きなシステムの形に組み立てられ(605)、電源が投入される(610)。全体システムまたはコンピュータ環境は、システム製造業者に関連する物理的にセキュアな環境(600)に移され、その環境で統合装置はセキュアな動作用に構成される。詳細には、セキュリティ・モードに進み(612)、秘密キーを生成し(615)、そのキーおよび代用ブート・アドレスを装置のデータ・アクセス制御機能に関連する永続記憶装置にロードする(620)。秘密キーは、メーカから提供することもできるし、統合装置自体で生成することもできることに留意されたい。後者の場合は、好ましくはキーは第三者の所で保持する。
【0037】
次に、図7および8に関して以下で説明するように、揮発性メモリに書き込まれたデータをマスタ・キー・セットを用いて暗号化し、ホワイトニングのために不揮発性メモリのアドレスを使用するようにアクセス・テーブルが構成される(625)。揮発性メモリから読み込まれたデータは暗号化処理が行われず、そのままの状態である。アクセス・テーブルはまた、不揮発性メモリに書き込まれたデータが変更されないように構成される。
【0038】
次に、ブート・コードがデバッグ・インタフェースによってロードされ(図7および8参照)、そのデータは、揮発性メモリに書き込まれるときに、データ・アクセス制御機能によってマスタ・キー・セットを使用して暗号化される(630)。次いでこのコードは、以下で詳細に説明するように、揮発性メモリから不揮発性メモリに復号化せずにコピーされる(635)。最後に統合装置は、上で組み込んだ出願に記載のように、セキュア・モード用に構成される(640)。この処理の結果、個々の統合システムについて暗号化が一意になることに留意されたい。
【0039】
この時点で、コンピュータ・システムはセキュアな物理位置(600)から移動させることができる。次にシステムは、ロードされたセキュアなブート・コードを使用してリブートされる(645)。そのシステムは、必要ならば追加のコードを、自己生成したキー値による暗号化を使用してセキュアな方法でロードすることができる(650)。図6のプロセスの最終ステップは、そのコンピュータ・システムを試験し出荷することである(655)。
【0040】
図7は、図6の処理(630)を図示したものである。(図7および後続のいくつかの図面は、図2の統合システムを簡略化した図であり、見やすいようにバス制御要素およびスレーブ要素が省略されていることに留意されたい。)図示のように、デバッグ・インタフェースまたは統合開発環境(IDE)を使用して、暗号化されていないブート・コードをセキュアな動作用に構成された統合装置にロードすることができる。統合装置(200)は、アクセス制御機能(240)の永続記憶装置(243)に記憶された内部マスタ・キーを使用してブート・コードを暗号化し(249)、暗号化したブート・コード(700)を揮発性メモリ(280)の定義された位置に書き込む。暗号化されたブート・コードは、まず揮発性メモリに書き込まれることに留意されたい。その理由は、フラッシュ・メモリなどの不揮発性メモリは、所与のデータ値を書き込むのに複数の動作を必要とし、したがって1つのブロック動作として実施できないからである。暗号化されたブート・コード(700)は、後に外部メモリの他の位置にコピーされるので、暗号化動作に関するアクセス・テーブル(248)のエントリは、ホワイトニング用の値として不揮発メモリ内の最終的なアドレス位置を使用するように構成される。ホワイトニングについては、上で組み込んだ出願の1つまたは複数に詳細に記載されている。
【0041】
図8は、暗号化されたブート・コードを、例えばプロセッサ(2101)によって、揮発性メモリから不揮発性メモリ(260)にコピーするためのプロセス(635)を示す。ブート・コードは、マスタ・キー・セット及びホワイトニング用の不揮発性メモリ・アドレスですでに暗号化されているので、ブート・コードはいかなる暗号変換も必要とせず、復号化されずに不揮発メモリに直接コピーされる。
【0042】
図9は、本発明の一態様による、ある初期化プロセスの流れ図を示す。ブート手順(800)から開始し、統合装置の電源を投入し(805)、ブート要求を発行する。この要求は、データ・アクセス制御機能によって代用ブート・アドレスを使用してリダイレクトされる(810)。メモリからフェッチされた暗号化コードは、データ・アクセス制御機能によってマスタ・キー・セットを使用して復号化される(815)。実行される最初の各命令の中で、更新されたブート・コード・イメージが使用可能かどうかが検査される(820)。この検査は、ブート手順自体の動作中に実施する必要がある。その理由は、他のどのソフトウェア・レベルもブート・コードの変更を許可されていないからである。
【0043】
更新がない場合には、ブート・コードは、開始している所与のセッションで使用されるランタイム・キーを生成する(825)。使用しなければならない、以前のセッションからのデータ構造がある場合には、ブート・コードは、以前のセッションによって格納された暗号化されたキー値を取り出すこともできる。次にブート・コードは、メモリ中のソフトウェア・イメージを数学的に処理して一意のダイジェストまたはハッシュ値に到達し、次いでその結果を予想値と比較する確立された技術を使用して次のソフトウェア・レベルを認証する(830)。この処理は、セキュアなブート・コードを使用してソフトウェアで実施できる。認証に加えて、このブート・コードは、次ソフトウェア・レベルがアクセス制御機能に関するセキュリティ設定および動作特性を修正する能力を制限し、さらには観察する能力さえも制限することができる。認証、およびセキュリティ機能のロックが完了した状態で、制御は次のソフトウェア・レベルに渡される(835)。このレベルが最終レベルの場合には(840)、ソフトウェアをロードするプロセスが完了し、装置のセキュア動作を開始することができる(845)。追加のレベルがある場合には、次のレベルを認証するタスク、およびオプションでセキュリティ機能をロックするタスクが再度実行され、すべてのレベルがロードされるまでループが継続する。
【0044】
ブート・コードの更新がある場合には、照会(820)の後にブート更新手順に従う(850)。まず、現ブート・コード(すなわち、装置に最初に電源が投入されたとき動作していたコード)を使用して新ブート・コード・イメージを認証し、復号化する(855)。新イメージは、統合装置が内部で使用する暗号化形式とは異なる形式でシステムに転送しておくことができることに留意されたい。その場合、ブート・コードがソフトウェアで復号化ステップを実施する。次に、動作中のブート・コードは、アクセス制御機能を使用してその統合装置のマスタ・キー・セットで新コードを暗号化し、システムが最初に組み立てられたときと同じ方法で新ブート・コードをメモリに書き込む(860)。しかし、その手順の途中にシステムが不意に中断された場合でも、動作中のブート・コードがメモリ中に完全な形で存在し動作できるように、新ブート・コード・イメージは動作中のブート・コードとは別の場所に書き込まれる。新ブート・コード・イメージが完全に認証され不揮発性メモリに書き込まれた後、動作中のブート・コードは、代用ブート・アドレスを、新ブート・コード・イメージを指し示すように更新する(865)。更新が完了したあと、システムを再スタートし(870)、ブート手続きの最初に戻る(800)。このプロセスの拡張では、上位のセキュリティ特権を有するソフトウェア・レベルによって、必要に応じてブート・コードまたは初期化コード以外の、1つまたは複数コード・レベルを追加することができる。例えば、ブート・コードを使用してカーネルを更新することができる。
【0045】
ブート更新手続き(850)の拡張として、新バージョン番号を新ブート・コード・イメージに関連付けることができる(860)。そのためには、上で組み込んだ出願の1つまたは複数に記載したように、データ・アクセス制御機能に関連するオン・チップの永続メモリに記憶された値にバージョン番号パラメータを追加する必要がある。この場合にも、バージョン番号を使用して、最初の命令の復号化の一環としてホワイトニング手順を実施する。ブート・コード・イメージにバージョン番号を含める利点は、アタッカが旧ブート・コード・イメージを単にコピーし再実行することによってそれを再使用することを防止することである。
【0046】
図10は、図9のブート処理を使用して起動された統合システム内部の処理を示す。統合装置の主電源が投入されたとき、プロセッサ(2101)の最初のアクションは既定のアドレスのデータ(ブート・コード)を要求することである。この外部データ要求は、データ・アクセス制御機能(240)に渡され、その機能により、アドレスに基づいてその要求がブート・コード要求であると識別され、そのアドレスのすべてまたは一部が、その制御機能の永続記憶装置(243)に含まれる代用ブート・アドレスで置き換えられる。次いで、修正された要求は外部メモリ(260)まで進む。代用ブート・アドレスは、マスタ・キー・セットを使用して先に暗号化されたコードを含むメモリの区分を指し示すように定義されている。この暗号化されたコード(710)は、不揮発性メモリ(260)のセキュア領域に在る。暗号化されたコードは、戻されたデータを、代用ブート・アドレスに基づいて、マスタ・キー・セットを使用して復号化するように構成されたアクセス制御ユニットに戻される。次に、復号化された(セキュアな)ブート・コードは、実行のためにプロセッサに戻される。上記のステップは、プロセッサがブート・コード・シーケンスを実行するときに繰り返される。
【0047】
図11は、統合システムの動作中にコード更新を受け入れるためのプロセスを示す。この更新チェック手順(1000)は、セキュアな動作モード(1005)で動作中のシステムで始まる。内部の周期的トリガ(internal periodic time trigger)や外部通知などの条件イベントに基づき、システムは、チェック(1010)を実施して更新が使用可能かどうか(1015)を調べる。「No」の場合は、統合システムは前のセキュアな動作状態に戻り続行する。更新が使用可能な場合は、当業界で確立されたセキュアなネットワーク・プロトコルを使用して更新をダウンロードすることができる(1020)。あるいは、更新を固定メディアから読み込むこともできる。次いで、要求された更新を行う許可を現ソフトウェア・レベルが受けているかどうかが判断される(1025)。上記のように、所与のソフトウェア・レベルは、同等またはより高い権限レベルのソフトウェアによってのみ認証され得る。
【0048】
現ソフトウェア・レベルが更新を行う許可を受けていない場合は、そのソフトウェアは更新が可能であるとマークし、ソフトウェア・レベルが統合装置の制御における次レベルであるとき、その適切なソフトウェア・レベルによって使用できるようにその更新を記憶する。通常この場合は、更新が次セッションでも可能であるように、不揮発性メモリに記憶する必要があることに留意されたい。
【0049】
現ソフトウェア・レベルが許可を受けている場合には、更新手順(1050)に従う。この手順は、ブート・コードの更新に関して前述したプロセスを使用して更新を認証し復号化することを含む。しかし、更新をマスタ・キー・セットで暗号化する必要はない。その代わりとして、ランタイム・キーが使用できる。また、更新のバージョン番号は、ブート・コードによってロードされるので、必ずしもオン・チップの永続メモリに格納する必要はなく、暗号化し外部のセキュア・メモリに格納することができる(1060)。次に、システムの初期化中に更新されたコードをロードするに先立ち、検証する際に使用される認証値が更新される。
【0050】
図12は、キーを管理し、必要に応じてキーを更新するプロセスを示す。一般に、このプロセスでは、ある暗号化形式から別の暗号化形式へ移行させる手段としてデータ・アクセス制御機能を使用する。
【0051】
1つのデータ・ブロック上で秘密キーを使用し過ぎると、暗号解読に使用し得るサンプルの数が増加する。したがって、秘密キーを保護するためには、そのキーを使用するサンプルの数を制限する必要がある。その限度は、アタッカが使用できる分析のタイプ、ならびに使用される暗号化アルゴリズム、キー、および物理的シールドの強度に依存する。現在の技術では、1つのデータ・ブロック上で秘密キーが使用された回数を正確にカウントすることは非現実的である。このカウントの正確な近似としては、キー・セットごとに一定の記憶量を必要とすることにもなるが、各キー・セットごとの書込み動作の数を記録するカウンタを使用することもある。ただし、そのカウント値は、生成されたサンプル固有の数より大きいかまたは等しくなる。効率の劣る近似として、読出し動作および書込み動作の両方をカウントすることもできるが、この場合にカウント閾値を増加できることを意味している訳ではない。
【0052】
キー管理手順(1100)に示したように、(ブート手順に関連して上述したような)ランタイム・キーが生成されて、単一のセッション中に、またはセッションを越えて、使用される(1105)。同時に、キー使用カウンタが所与の閾値で初期化される。このカウンタはソフトウェアで実装することもできるが、より有利には、アクセス制御機能の一部としてハードウェアで実装される。その理由は、カウンタの駆動に必要な情報が使用できるからである。さらに、セッション間でカウント値が維持されるように、すなわちソフトウェアを使用して、システムの電源が切断されるときに結果を取り込み、それを暗号化し、その結果を格納し、次いでシステムが再起動されるときにそのカウント値がロードされるように、そのカウンタをオン・チップの永続記憶装置に関連付けることもできる。
【0053】
制御は、オプションで次ソフトウェア・レベルに渡される(1110)。あるいは、現ソフトウェア・レベルを継続し、そのキーを直接使用することもできることに留意されたい。キー使用カウンタは、暗号化されたデータを書き込むためにキーが使用されるたびにインクリメント(増分)される(1120)。オプションで読出しイベントの監視を使用することもできるが、書込みイベントに追加して使用されるだけであり、その代わりに使用できる訳ではない。
【0054】
ある時点で、キー使用カウンタが閾値を超える(1125)。このイベントが発生したとき、最初にそのキーが生成されたときと同じソフトウェア・レベルが動作している場合には、キー更新手順(1150)がコールされる(1130)。現ソフトウェア・レベルが異なっている場合には、システムは当初キーを生成したソフトウェア・レベルに戻り、そのレベルからキー更新手順をコールする(1135)。
【0055】
キー更新手順(1150)では、あるキー・セットから別のキー・セットへの移行を容易にするためにアクセス制御機能を使用する。旧キー・セットを使用して復号化される移行すべきデータの現位置を定義し、新キー・セットを用いて暗号化されるそのデータの新位置を定義するために、アクセス制御機能のアクセス・テーブルがまず修正される(1155)。アクセス・テーブルを使用してアドレス変換が実施できるので、統合システムの内部マスタは現データ位置と新データ位置をメモリ中の別々のアドレス範囲として認識できるが、一方アドレス変換後の外部要求では、両方の位置が同じアドレス範囲になるように定義できることに留意されたい。このことにより、所与のブロックを現在存在する位置から読み出し、次いで同じ位置に書き戻すことが可能になる。
【0056】
次に、新アクセス・テーブル定義を使用して、データを現位置から読み出し、新キー・セットでそのデータを実際に再暗号化するとともに新位置に書き込む(1160)。次いで、新キー・セットを用いた暗号化および復号化のための新位置が定義され(1165)、旧キー・セットおよび関連するデータ位置への参照がすべて削除される(1170)ようにアクセス・テーブルが再度修正される。
【0057】
図13〜15は、外部ソースによって提供されるデータを、ある暗号化形式から別の暗号化形式に移行させるための関連技術を示す。この場合、外部の暗号化形式は、内部の暗号化方法と異なるアルゴリズムおよびキー・セットであってもよい。図13に示したように、外部のソースから外部のアルゴリズムで暗号化されたデータが、この場合は通信ポート(1200)を介して受信される。アクセス制御機能(240)は、この外部データを外部メモリ(280)に直接、修正なしで格納するように定義されている。次に、図14に示したように、プロセッサ(2101)は、外部データをブロック単位でそのキャッシュに読み込み、復号化用のソフトウェアを使用して所与のブロックを復号化する。復号化した後、図15に示したように、クリア・ブロックを外部メモリ(280)に書き込む。また一方、アクセス制御機能は、内部のアルゴリズムおよびキー・セットを使用してそのデータを暗号化するように構成されている。この処理の結果、外部から受信したデータはすべて、一意であってかつこの唯一の統合装置によって制御される暗号化形式に変換される。このことにより、アクセス制御機能のハードウェア加速を利用しながら、暗号化されたデータのセキュリティを維持するという利点が提供されることになる。
【0058】
図16は、上で組み込んだ1つまたは複数の出願に記載したように、統合システムがフィールドで使用され、改ざんイベントによりセキュア状態からヌル状態へのシステムの遷移がトリガされた後で、統合システムのセキュア動作を回復するために使用されるプロセスの一実施形態を示す。図示のように、トリガ後のブート手順(1300)によると、改ざんイベント後に統合システムに電源が投入されても(1305)、ブート要求はもはやリダイレクトされない(1310)。標準のブート・アドレスから、暗号化されていないコードが起動されてシステムを初期化する(1315)。初期化されたシステムは、もはやセキュアなデータまたはアプリケーションにアクセスできない縮小機能レベルで動作する(1325)。あるいは、元の統合システムの機能を回復させるよう試みることもできる(1320)。
【0059】
統合システムの所有者が完全回復を図る選択をした場合には、その統合システムをセキュアな物理位置(1350)を備えた正規サービス・センタに持ち込む。そのサービス・センタでは、デバッグ・ツール(図7参照)を使用して、暗号化されていない初期化コードをロードする(1355)。このコードは、回復ブート・コードを含み、さらにメーカの公開キーも含む。
【0060】
次に、初期化コードを実行するために統合システムを再起動する。初期化コードは、まず新マスタ・キー・セットを生成し、次いでそのマスタ・キー・セットをデータ・アクセス制御機能に関連するオン・チップの永続記憶装置に書き込む(1360)。次に、上で図7に絡めて説明したように、そのマスタ・キー・セットを使用して回復ブート・コードを暗号化するようにアクセス制御機能が構成される。新ブート・コード位置は代用ブート・アドレス・フィールドに書き込まれる。次にブート・コードは、内部で公開/秘密キー・ペアを生成し、秘密キーを不揮発性メモリ内にセキュアに格納する。生成された公開キーは(以前に初期化コードとともに提供された)製造業者の公開キーを使用して暗号化され、サービス・センタに戻され、次いでサービス・センタはそのキーを製造業者に転送する(1365)。この時点で、統合システムはセキュアな物理位置から移動させることができる(1350)。
【0061】
システムが再起動され、回復ブート・コードが実行される(1370)。初期化されたシステムは、製造業者へのセキュアなネットワーク接続を確立し(1375)、次いで既知の技術を使用して、システムの元の機能を再構築するために必要なデータおよびコードをダウンロードし、統合システムにインストールすることができる(1380)。
【0062】
要約すると、本明細書には統合システム内でセキュアな動作を初期化し、維持し、更新し、かつ回復するための方法、システム、およびコンピュータ・プログラムが記載されている。これらの技術は、統合システム内のデータ・アクセス制御機能を使用する。システムおよびコンピュータ・プログラムは、概して下記のように要約される。
【0063】
本発明の一態様では、複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にするシステムが提供される。このシステムは、統合システムの制御を次ソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを現ソフトウェア・レベルによって認証する手段を含む。統合システムの動作特性を次ソフトウェア・レベルが修正する能力を制限する手段を含むデータ・アクセス制御装置もまた提供される。
【0064】
他の態様では、統合システムのセキュアな動作を初期化するためのシステムも提供される。このシステムは、統合システム用の少なくとも1つのキーを生成する手段、および統合システム内のデータ・アクセス制御機能を含む。データ・アクセス制御機能は、統合システム内で初期コードを受信し、その初期コードを少なくとも1つのキーを用いて暗号化する。初期化システムはさらに、暗号化された初期コードを使用して統合システムを再初期化する手段も含む。
【0065】
第1のキー・セットを使用して暗号化されたデータを第2のキー・セットを使用して暗号化されたデータに移行させるためのシステムもさらに提供される。このシステムは、第1のキー・セットを使用して暗号化されたデータを統合システム内で復号化する手段と、第2のキー・セットを使用してそのデータを再暗号化する手段を含んだ、統合システム内データ・アクセス制御機能とを含む。
【0066】
他の態様における、トリガ・イベントに続いて統合システムの機能を回復させるためのシステムが本明細書に記載されている。このシステムは、統合システム内で自動的に機能レベルを縮小する手段、および指定された回復手順を選択的に使用することによって統合システムの全機能回復を可能にする手段を含む。
【0067】
他の態様では、複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にする方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、統合システムの制御を次のソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次ソフトウェア・レベルを現ソフトウェア・レベルによって認証するステップ、および次ソフトウェア・レベルが統合システムの動作特性を修正する能力を、統合システムのデータ・アクセス制御機能によって制限するステップを含む。
【0068】
他の態様では、統合システムのセキュアな動作を初期化する方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、統合システム用の少なくとも1つのキーを生成するステップ、少なくとも1つのキーを使用して、統合システムのデータ・アクセス制御機能によって暗号化された初期コードを統合システムにロードするステップ、およびその暗号化された初期コードを使用して統合システムを再初期化するステップを含む。
【0069】
他の態様では、第1のキー・セットを使用して暗号化されたデータを第2のキー・セットを使用して暗号化されたデータに移行させる方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、第1のキー・セットを使用して暗号化されたデータを復号化するステップ、および第2のキー・セットを使用して、統合システム内のデータ・アクセス制御機能によってそのデータを再暗号化するステップを含む。
【0070】
他の態様では、トリガ・イベントに続いて統合システムの機能を回復させる方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、統合システム内で自動的に機能レベルを縮小するステップ、および選択的回復手順を使用して統合システムの全機能回復を可能にするステップを含む。
【0071】
当業者なら、上記の議論から本発明を例えばコンピュータ使用可能の媒体を有する製品(例えば、1つまたは複数のコンピュータ・プログラム製品)に含めることができることに気づくであろう。この媒体は、例えば本発明の機能を提供しかつその機能を容易にするコンピュータ可読のプログラム・コード手段をその上で実施したものである。この製品は、コンピュータ・システムの一部に含めること、または単独で販売することができる。
【0072】
さらに、本発明の機能を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置を提供することもできる。
【0073】
本明細書で示した流れ図は例示に過ぎない。そこで示したこれら各流れ図または諸ステップ(もしくは諸動作)には、本発明の趣旨を逸脱することなく多数の変形形態が存在し得る。例えば、各ステップを異なる順序で実施すること、あるいはステップを追加、削除または修正することもできる。これらの変形形態はすべて特許請求の範囲に記載した本発明の一部と見なされる。
【0074】
本明細書において、好ましい実施形態を詳細に図示し説明してきた。当業者にとって、本発明の趣旨を逸脱することなく様々な修正、追加、代用などを実施し得ることは明らかであろう。したがって、それらは添付の特許請求の範囲で定義した本発明の範囲に含まれるものと見なされる。
【産業上の利用可能性】
【0075】
本発明は、処理し移行する前に暗号化する必要がある機密データを処理するセキュアな統合システムに広範に適用できる。
【図面の簡単な説明】
【0076】
【図1】メモリ・サブシステムを介して共通メモリ・アクセスを採用する代表的な統合装置の一例を示す図である。
【図2】本発明の一態様による、統合装置のセキュアなメモリ・サブシステム内に実装されるアクセス制御機能の一実施形態を示す図である。
【図3】本発明の一態様による、本明細書に記載のセキュアな動作技術によって認識され対処される問題を示す図である。
【図4】本発明の一態様による、複数のソフトウェア・レベルを有する統合装置のセキュアな動作を容易にする技術の一実施形態を示す図である。
【図5】本発明の一態様による、図4の技術を統合システムのデータ・アクセス制御機能に関連するアクセス・テーブルに適用するプロセスの一実施形態を示す図である。
【図6】本発明の一態様による、統合システムにコードをロードするプロセスの一実施形態を示す図である。
【図7】本発明の一態様による、統合システムに暗号化されたブート・コードを最初に格納するプロセスの一例を示す図である。
【図8】本発明の一態様による、図7のプロセスによって格納された暗号化されたコードを揮発性メモリから不揮発性メモリにコピーするプロセスの一例を示す図である。
【図9】本発明の一態様による、各ソフトウェア・レベルを認証し各ソフトウェア・レベル間で制御を渡すとともに、ブート・コードの更新が使用可能なときはブート・コードを更新するプロセスの一実施形態を示す図である。
【図10】本発明の一態様による、セキュアな状態でアクセス制御機能によって統合システムの各コンポーネントに渡される初期化信号の一実施形態を示す図である。
【図11】本発明の一態様による、複数のソフトウェア・レベルを有する統合システム内でソフトウェア・レベルをセキュアに更新するプロセスの一実施形態を示す図である。
【図12】本発明の一態様による、統合システムのデータ・アクセス制御機能によって使用されるキー・セットを管理し更新するプロセスの一実施形態を示す図である。
【図13】本発明の一態様による、暗号化されたデータを統合システム内で受信して格納するプロセスの一実施形態を示す図である。
【図14】本発明の一態様による、図13で格納した暗号化されたデータを取り出し、セキュアなコードを使用してソフトウェアの形でそのデータを復号化するプロセスの一実施形態を示す図である。
【図15】本発明の一態様による、復号化されたデータをアクセス制御ハードウェアを使用して再暗号化してセキュアなメモリに格納するプロセスの一実施形態を示す図である。
【図16】本発明の一態様による、統合システムのコンピューティング環境内で発生する改ざんトリガ・イベントに続いて統合回路機能を回復するプロセスの一実施形態を示す図である。
【技術分野】
【0001】
本発明は、一般に統合システム内でのデータ要求処理およびデータ転送に関し、より詳細には、少なくとも部分的には統合システムのデータ・アクセス制御機能によって実施される、統合システムのセキュア(安全確実)な動作を初期化し、維持し、更新し、および回復するための技術に関する。
【背景技術】
【0002】
本出願は、それぞれが本出願と同一の譲受人に譲渡され、本出願と同日に出願された以下の出願の主要部分と関連する主要部分を含む。下記の各出願を、この参照により本明細書全体に組み込む。
−米国特許出願第10/125803号、「要求元マスタIDおよびデータ・アドレスを用いて、統合システム内のデータ・アクセスを制限する制御機能(Control Function Employing a Requesting Master ID and a DataAddressto Qualify Data Access Within anIntegrated System)」、エバンズ(Evans)他、2002年4月18日出願−米国特許出願第10/125115号、「複数のセキュリティ状態を有し、統合システムのセキュアな動作を容易にするための制御機能(ControlFunction with Multiple Security States for FacilitatingSecure Operation of anIntegrated System)」、フォスター(Foster)他、2002年4月18日出願−米国特許出願第10/125708号、「統合システム内で、選択的トランスペアレント・データ認証を実施する制御機能(ControlFunction Implementing Selective Transparent Data AuthenticationWithin anIntegrated System)」、フォスター(Foster)他、2002年4月18日出願
【0003】
今日、複数のマスタ機能が、単一のシステム・チップ上に統合されることも多い。複数の別個の部品を単一のチップ上に統合するためのアーキテクチャを最初に定義するとき、外部装置へのアクセスが問題になることがあり得る。例えば、MPEGビデオ・デコーダ・システムでは、様々なデータ領域用の外部メモリ、あるいはフレーム・バッファなどのバッファをしばしば使用する。この外部メモリは通常、DRAMまたはSDRAM技術を使用して実装される。
【0004】
チップ外の装置にアクセスするための方法として、当技術分野には2つの代表的なアプローチがある。第1のアプローチでは、各オン・チップ機能ユニットは、その特定のユニット専用のデータ・バスを介して必要な外部装置にアクセスすることができる。このアプローチは、ローカルには外部装置へのアクセスに有効であるが、統合システム内でグローバルには決して最適ではない。例えば各機能は、それ自体の外部メモリ領域には完全にアクセスできるが、その統合システムの各機能間でのアクセスの共用は存在しない。したがって、このシステムのあるメモリ領域から他のメモリ領域にデータを転送することがしばしば必要になる。この場合には、明らかにデータ転送が増加し、共用メモリ・システムと比べて全体システムの性能が低下する恐れがある。
【0005】
もう1つのアプローチは、統合システム内で単一の共通バスを使用するものであり、それによって、システムの1つまたは複数の機能ユニットが、単一のポートを介して各外部装置と通信することが可能になる。装置の共用を可能にするが、このアプローチの1つの難点は、この統合システムのコンテンツまたは他の機密データへのアクセスを制御することに関するものである。例えば、統合設計において大規模な共通メモリ・プールを使用すると、転送デマルチプレクサからセットトップ・ボックスのデコーダに供給される圧縮データなど、保護されたメモリ空間への無許可アクセスを防止することが困難になる。プログラミング・インタフェースがオープンで、外部開発が奨励されているシステムの場合には、特に困難となる。機能のマスタはそれぞれメモリ空間にアクセスできる必要があり、あるアクセスが信頼できるマスタからのものか、それとも例えば信頼できないマスタもしくはオープン・マスタなどの外部要求からのものかを識別することは不可能である。
【0006】
さらに、共用メモリを使用して複数の機能マスタを有するシステム・オン・チップ設計を行うときは、データを無許可アクセスから保護する機構を提供することが望ましく、特にデータが装置のシステム・プログラム・コードを含むときには望ましい。より詳細には、セキュアな動作環境の初期化を容易にするには、まずシステム・コードがセキュアでありかつ意図した機能をうまく実施することを保証することから始める。したがって、セキュアな動作環境を保証するためには、統合システムをセキュアなモードで起動またはブートする必要がある。
【特許文献1】米国特許出願第10/125803号
【特許文献2】米国特許出願第10/125115号
【特許文献3】米国特許出願第10/125708号
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記のことを考慮すると、当技術分野では統合システムのデータ・アクセス制御アプローチに関して様々な機能拡張が求められていることが分かる。より詳細には、統合システムのセキュアな動作を初期化し、維持し、更新し、および回復するための技術が求められている。
【課題を解決するための手段】
【0008】
複数のソフトウェア・レベルを有する統合装置のセキュアな動作を容易にする方法を提供することによって、従来技術の欠点が克服され、追加の利点が提供される。この方法は、統合システムの制御を次ソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次ソフトウェア・レベルを現ソフトウェア・レベルによって認証すること、および次ソフトウェア・レベルが統合システムの動作特性を修正する能力を制限し、その制限を統合システムのデータ・アクセス制御機能によって実施することを含む。
【0009】
他の態様では、統合システムのセキュアな動作を初期化する方法が提供される。この方法は、統合システム用の少なくとも1つのキーを生成すること、その少なくとも1つのキーを使用して、統合システムのデータ・アクセス制御機能によって暗号化された初期コードを統合システムにロードすること、およびその暗号化された初期コードを使用して前記統合システムを再初期化することを含む。
【0010】
他の態様では、第1のキー・セットを使用して暗号化されたデータを第2のキー・セットを使用して暗号化されたデータに移行させる方法が提供される。この方法は、第1のキー・セットを使用して暗号化されたデータを復号化すること、および第2のキー・セットを使用して、統合システムのデータ・アクセス制御機能によってそのデータを再暗号化することを含む。有利なことには、データ・アクセス制御機能を使用して再暗号化することによって、データの暗号化がその統合システムに固有のものとなる。
【0011】
他の態様では、トリガ・イベントに続いて統合システムの機能を回復させる方法が提供される。この方法は、改ざん検出トリガ・イベントに続いて統合システム内で機能レベルを自動的に縮小すること、および、信頼できる回復手順を選択的に使用することによってユーザが統合システムの全機能の回復を可能にすることを含む。
【0012】
本明細書は、上記に要約した方法に対応するシステムおよびコンピュータ・プログラムも開示する。
【0013】
有利なことには、本明細書で開示するセキュア動作技術は、統合システム内でセキュアな動作環境を初期化し、維持し、更新し、および回復するために、あるいはその任意の組合せを実施するために使用できる。より詳細には、提示する技術は、データ・アクセス制御機能によって維持される動作特性の更新を制限する能力を提供する。この動作特性は、統合システム内の様々なソフトウェア・レベルによって使用されるキー・セット、アクセス・テーブル、アクセス・レベルおよびアクセス・パラメータのうちの1つまたは複数を含むことができる。更新を制限するこの能力によって、階層的セキュリティ特権を備えた様々なソフトウェア・レベルが提供される。
【0014】
本明細書で提示される技術はさらに、旧バージョンのソフトウェアまたは他のデータの再使用を防止するためのバージョン番号の使用などのセキュアな方法で、現場で更新を行う能力を提供する。キー管理プロセスの一部として暗号化されたデータを第1のキー・セットから第2のキー・セットに移行させる能力、または保護されたデータを他のシステムからインポートする能力あるいはその両方についても提示する。さらに、統合システムが改ざんトリガ状態に入ったにもかかわらず機能を提供する能力についても記述する。詳細には、機密のデータおよびアプリケーションにアクセスできない制限された機能を自動的に提供することができ、またサービス機能にあまり依存せずに全機能を回復するための機構も自動的に提供できる。
【0015】
本発明の技術によって追加の特徴および利点が実現される。本発明のその他の実施形態および態様についても本明細書に詳細に記載されており、それらは特許請求の範囲に記載した本発明の一部と見なされる。
【0016】
本発明として見なされる主要部分については、別添の特許請求の範囲の中で詳細に指摘し、明確に主張する。本発明の、前記その他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せて読めば明らかである。
【発明を実施するための最良の形態】
【0017】
図1は、一般に100で示され、複数の内部機能マスタ1101、1102、1103、...、110nを有する従来の統合装置を示す。マスタ1101は、プロセッサ・コア112およびメモリ管理ユニット114を有するプロセッサとして示されている。この例では、内部マスタ1101、1102、1103、...110nは、共用バスのバス制御論理機構130を含むメモリ・サブシステム120に接続される。バス制御機構130は、メモリ・サブシステム内部に示されているが、別法としてサブシステム120の外側に置くこともできることが当業者には理解されよう。
【0018】
バス制御ユニット130は、統合装置のスレーブへの要求を調整し統合する。例えば、第1のスレーブは、オープンなメモリ部分155を有する、フラッシュ・メモリなどの外部不揮発性メモリ150に接続された外部バス・コントローラ140を含むことができる。第2のスレーブは、SDRAMやDRAMなどの外部揮発性メモリ170に接続されたメモリ・コントローラ160を含むことができる。メモリ170は、オープンなメモリ部分175を含む。一般に、メモリ・コストを最小にし、かつ各機能間でのデータ転送を容易にするために、この統合設計では各機能が共通メモリ・プールを共用する。したがって、すべての内部マスタは不揮発性メモリにも揮発性メモリにも等しくアクセスでき、しかもどちらの記憶空間もオープンとラベル付けされており、データ・アクセスに制限がないことを意味している。
【0019】
一般に不揮発性メモリは、電源を切ったときでもデータが保持される永続記憶装置に使用される。このメモリには、ブート・コード、オペレーティング・システムやドライバなどのオペレーティング・コード、および任意の永続的データ構造を含めることができる。揮発性メモリは、セッション指向の記憶装置に使用され、通常はアプリケーション・データおよび他のマスタのデータ構造を含む。揮発性メモリは不揮発性メモリより高速なので、統合装置の動作中は、オペレーティング・コードを揮発性メモリに移動させ、そこから命令を実行するのが一般的である。
【0020】
例えば図1に示したような典型的なシステムには、いくつかのセキュリティ・リスクがあることに留意されたい。すなわち、
1. オペレーティング・コードまたはデータ構造を修正することによってプロセッサの挙動を制御できるので、内部データ、または動作が損なわれる可能性がある。
2. 通信コントローラといった、特定の場合には、内部マスタが外部ソースによって制御されることがあり、また、メモリが共用されているので、当該内部マスタが使用された結果内部コードまたは内部データを損傷する可能性がある。
3. ソフトウェア開発に使用されるデバッグ・ツールおよび開発ツールを、プロセッサの挙動を修正または監視するために使用することができる。
4. メモリが共用されているので、所与のマスタは、意図せずに他の内部マスタの動作を破壊または損傷する可能性がある。
【0021】
上記のセキュリティ・リスクに対して本明細書で提示する解決策は、データ経路内のバス制御とスレーブ装置との間に配置されるアクセス制御機能を提供するものである。このアクセス制御機能は、(一実施形態では)機能マスタをスレーブ装置に接続している内部バスの特性を利用して、各アクセス要求を1組のセキュア制御情報に基づいてさらに制限し、また必要な場合にはそれを阻止できるようにすることができる。有利なことには、このアクセス制御機能は、マスタがデータを要求する各アクセスを区別する能力を提供し、さらにデータが格納されている場合には、次いでそれに従ってアクセスを許可または制限し、データが格納されていない場合には、そのアクセスを制限する機能を提供する。本発明の他の態様による追加のアクセス制御機能についても本明細書に記載されている。
【0022】
図2は、一般に200で示され、本発明の一態様によるアクセス制御機能240を含むシステムの一実施形態を示す。システム200はまた、バス制御230を介して1つまたは複数のスレーブ250/270と通信する複数の機能マスタ2101、...、210nを含む。この場合には、アクセス制御機能240は、データ経路中でバス制御230とスレーブ250/270との間を仲介する。代替実施形態として、バス制御ユニット230をセキュア・メモリ・サブシステム・ユニットの外側に置くこともできる。図示のように、第1のスレーブ装置は外部バス制御装置250を含み、第2のスレーブ装置はメモリ制御装置270を含む。この状況で、バス制御ユニット、アクセス制御ユニット、外部制御装置を組合せてセキュア・メモリ・サブシステム220を形成する。その結果、不揮発性メモリ260および揮発性メモリ280として定義された外部アドレス空間はさらに、オープン・エリア262およびセキュア・エリア264、ならびにオープン・エリア282およびセキュア・エリア284にそれぞれ分割される。この場合「セキュア」とは、マスタ2101、...、210nがアクセス制御ユニット240中で定義された空間だけにアクセスできることを意味する。アクセス制御機能が、オープン・エリアおよびセキュア・エリア双方へのすべてのアクセスを制御していることに留意されたい。
【0023】
ユニット240のアクセス制御機能についての詳細な説明は、上で組み込んだ「要求元マスタIDおよびデータ・アドレスを用いて、統合システム内のデータ・アクセスを制限する制御機能(Control Function Employing A Requesting Master ID And A DataAddressTo Qualify Data Access Within An Integrated System)」に含まれている。さらに、上で組み込んだ出願は、必要とされるデータおよびそのデータのアドレス、を要求する機能マスタのアクセス・レベルに基づいて各データ要求を制限する際の、アクセス・テーブル248および暗号化/復号化機能249の使用についても詳述している。
【0024】
要約すると、バス制御ユニットによって制御が与えられたマスタからの要求は、要求されたアドレスおよび関連した制御(例えば、読出しまたは書込みなど)とともにアクセス制御ユニットに送られる。アクセス・テーブルは、要求されたアドレス、マスタID、ならびに読出しまたは書込みの指示を、そのマスタに許可されているアクセス機能と比較するために、アクセス制御機能によって使用される。所与の要求は、遮断(終了)されることも、平文の状態で許可されることも、あるいは暗号化/復号化付きで許可されることもあり得る。要求された転送が許可される場合には、バス信号がスレーブに伝播され、その要求に関連するアクセス・パラメータが、アクセス・テーブルに基づいて、例えば、暗号化/復号化が適用できる場合には暗号化/復号化エンジンに送られる。暗号化/復号化エンジンは、関連するアクセス・パラメータを用いてデータが所与のスレーブに転送されるときはその書込みデータを暗号化するために、あるいは所与のスレーブから返送されるときはその読出しデータを復号化するために、使用することができる。
【0025】
要求元のマスタIDおよび要求のアドレスに基づいてデータ・アクセスを制限する機能に加えて、そのアクセス制御機能にセキュリティ状態マシン242を追加して、例えばアクセス・テーブル248および暗号化/復号化機能249の動作を制御する概念が、上で組み込んだ「複数のセキュリティ状態を有し、統合システムのセキュアな動作を容易にするための制御機能(Control Function With Multiple Security States ForFacilitatingSecure Operation Of An Integrated System)」という名称の出願に記載されている。代替ブート・アドレス245およびマスタ・キー・セット246を保持するために、オン・チップの記憶装置243もセキュリティ状態マシン242と併せて使用される。この記憶装置は、全体の電源を落としたときでも値が保持されるという意味で永続的である。したがって、その値は、初期化されたあと、セキュリティ状態の変化にともなって特にリセットまたは消去されるまでは、セッションを越えて使用することができる。このことについては、後で説明する。
【0026】
データ・アクセス制御機能のセキュリティ状態マシンは、ヌル状態やセキュア状態を含む可能な複数のセキュリティ状態のうちの1つの状態をとることができる。セキュア状態では、制御機能は、ブート・コードの要求に使用される標準ブート・コード・アドレスを代用ブート・コード・アドレスで置き換える。代用ブート・コード・アドレスは暗号化バージョンのブート・コードのアドレスを指定し、次いで制御機能が、永続記憶装置に保持されたマスタ・キー・セットを使用してそのコードを復号化する。ヌル状態のときは、そのマスタ・キー・セットは消去される。
【0027】
上記のデータ・アクセス制御機能の他の拡張として、要求データを選択的に認証する制御機能を追加する概念が、上で組み込んだ「統合システム内で、選択的トランスペアレント・データ認証を実施する制御機能(Control Function Implementing Selective TransparentDataAuthentication Within An Integrated System)」という名称の出願に記載されている。この選択的認証は、データ要求を開始する統合装置の機能マスタにとってトランスペアレントであってもよい。要求データは、外部メモリに暗号化された形で格納されたコードまたはデータのどちらをも含むことができる。(特許請求の範囲も含めた本明細書の各所で、コードまたはデータの意味で総称的に「データ」という用語を使用していることに留意されたい。)上記のデータ・アクセス制御機能の暗号化機能により、データが直接観察または修正されることが防止されるとともに、完全性チェック機能により、暗号化された値が元々メモリに書き込まれていた値と同一であることをさらに検証するための能力が追加される。
【0028】
一実施形態では、本発明の一態様による完全性チェック機能は、上で組み込んだ出願に記載のアクセス・テーブルおよびアクセス・パラメータと共に動作する。認証されるデータに関連するアドレス範囲は、アクセス・テーブル内の追加のパラメータによって指示できる。完全性チェック機能245は、要求されたデータ転送に基づき、メモリ中の完全性値の位置を確定する。また、下記のように完全性値を計算し比較する。
【0029】
要約すると、このプロセスはプリストレージ・ステップとポストストレージ・ステップに分割できる。例えば、
プリストレージ:
セキュアである必要があり、かつ認証されるべきデータを数学的に圧縮したバージョンである、第1の完全性チェック値を生成する。
そのデータを暗号化し、第1の完全性チェック値を暗号化する。
暗号化された完全性値をメモリに格納し、暗号化されたデータをメモリに格納する。
ポストストレージ:
メモリから完全性値を取り出し復号化し、暗号化されたデータを取り出し復号化する。
第1の完全性チェック値に使用したのと同じ機能を使用して第2の完全性チェック値を生成する。
第1と第2の完全性チェック値を比較する。それらが一致した場合には、そのデータを認証する。一致しなかった場合には、データが破壊されているので訂正アクションを取る必要がある。
完全性チェック機能245はオプションで、以下で説明する、統合システムの拡張されたセキュア動作の概念と組合せて使用することもできる。
【0030】
図3は典型的な統合装置で使用されるソフトウェア・レベルを表す。図示のように、装置のハードウェア300は、その上で各ソフトウェア・レベルが動作するベースとなる。ブート・コード310は、装置に最初に電源が投入され、初期化データ312を使用して初期化機能が実施されるときに動作する。カーネル320は、レベル1と抽象化されているが、初期化の後でブート・コードによってコールされる。カーネル320は、一般的なシステム設定322や登録324を含むオペレーティング・システムのサービスおよびリソースを提供する。次いで、ミドルウェアおよびサービスの機能330を含む1つまたは複数のソフトウェア・レベルが順次コールされる。ミドルウェアおよびサービスの機能には、ソフトウェア・アクセス制御あるいはパスワード332やキー334とともに動作するネットワーク・サービス、ファイル管理、メディア・ハンドリングなどがある。アプリケーション・ソフトウェア340は、ミドルウェアおよびサービスのソフトウェア・レベル330の上に存在し、個人情報342などのユーザ・データおよび他のコンテンツ344とともに動作する。
【0031】
図3は、統合装置またはシステムにセキュリティを提供する際の、1つの課題を示している。一般的な法則として、ソフトウェアのレベルが、ベースとなるハードウェアに近づけば近づくほど、ソフトウェアはそれだけセキュアになり信頼性が高くなる。しかし一方、ソフトウェアのレベルが、アプリケーションなどのようにユーザに近づけば近づくほど、それだけデータの価値が高まる。その結果、最もセキュアでないソフトウェアが最も価値のあるデータを保護することになる。
【0032】
図4は、統合システムにセキュリティを提供する方法を示す。ハードウェア(400)から始めて、各ソフトウェア・レベルは、すぐ下のレベルによって認証される。ブート・コード(410)の場合は、上で組み込んだ出願に定義されているように、復号およびマスタ・キー・セットをハードウェアで使用して認証され、その際ブート・コード(または初期化コード)は外部メモリに暗号化された形で格納される。また認証の後で、かつ次のソフトウェア・レベル(420,430,440など)に制御を渡す前に、先行の各レベルは、次レベルがシステムを制御または修正する能力を制限することもできる。したがって、各レベルがロードされるとき、各レベルは検証され、システムのセキュリティに影響を与える能力がさらに制限されることがある。
【0033】
図5は、例えば図2で説明したような統合システムの状況で、図4に示した方法を実装した例を示す。より詳細には、この実装は、先に述べた、上で組み込んだ出願に記載のアクセス制御機能を使用して行われる。ブート・コード(400)は、上記のようにハードウェアによって認証され、したがって最も信頼できるソフトウェア・レベルであると考えられる。ブート・コードは、復号化で使用されるキー・セットと、アドレスがどのように変換されるかを定義するアドレス・テーブルと、マスタIDおよびアドレス範囲に基づいて可能なトランザクションを指定するアクセス・レベルと、更に、要求がどのように処理されるかを定義したアクセス・パラメータと、を含むアクセス制御機能を完全に構成することができる。この場合も、これらの情報はすべて上記のアクセス制御機能によって維持される。
【0034】
次のソフトウェア・レベル、すなわちレベル1(410)に制御を渡す前に、この例では、ブート・コードは、キー値をソフトウェアから直接には見えなくなるようにするために、それらキー値を隠蔽し、また、(どちらもアクセス・テーブルに含まれる)アドレス・テーブルおよびアクセス・レベル・エントリが、次ソフトウェア・レベルによって修正できないようにするために、それらをロックする。しかしこの例では、アクセス・パラメータは、この次レベルにおいてもやはり更新されることがあり得る。隠蔽はハードウェアで読出しアクセスを阻止することによって達成でき、ロックはハードウェアで書込みアクセスを阻止することによって達成できることに留意されたい。アクセス制御ユニットのレジスタへのアクセスを制御(またはロック)するのに、複数の方法があることを当業者は理解されよう。例えば、特権命令を使用すること、そのレジスタをオン・チップのプライベート・バスだけに接続すること、そのレジスタをメモリマッピングしアクセス制御ユニットの既存の設定を使用してそのレジスタへのアクセスを制限することなどである。
【0035】
図示のように、最も信頼度の低いソフトウェア・レベル440に制御を渡す前に、アクセス制御機能の末尾に図示されている動作特性、すなわちアクセス・パラメータ、を修正できないようにロックする。
【0036】
図6は、コンピュータ・システムの形に組み立てられた統合装置のセキュアな動作環境を初期化するプロセスの一実施形態を示す。図示のように、統合装置はより大きなシステムの形に組み立てられ(605)、電源が投入される(610)。全体システムまたはコンピュータ環境は、システム製造業者に関連する物理的にセキュアな環境(600)に移され、その環境で統合装置はセキュアな動作用に構成される。詳細には、セキュリティ・モードに進み(612)、秘密キーを生成し(615)、そのキーおよび代用ブート・アドレスを装置のデータ・アクセス制御機能に関連する永続記憶装置にロードする(620)。秘密キーは、メーカから提供することもできるし、統合装置自体で生成することもできることに留意されたい。後者の場合は、好ましくはキーは第三者の所で保持する。
【0037】
次に、図7および8に関して以下で説明するように、揮発性メモリに書き込まれたデータをマスタ・キー・セットを用いて暗号化し、ホワイトニングのために不揮発性メモリのアドレスを使用するようにアクセス・テーブルが構成される(625)。揮発性メモリから読み込まれたデータは暗号化処理が行われず、そのままの状態である。アクセス・テーブルはまた、不揮発性メモリに書き込まれたデータが変更されないように構成される。
【0038】
次に、ブート・コードがデバッグ・インタフェースによってロードされ(図7および8参照)、そのデータは、揮発性メモリに書き込まれるときに、データ・アクセス制御機能によってマスタ・キー・セットを使用して暗号化される(630)。次いでこのコードは、以下で詳細に説明するように、揮発性メモリから不揮発性メモリに復号化せずにコピーされる(635)。最後に統合装置は、上で組み込んだ出願に記載のように、セキュア・モード用に構成される(640)。この処理の結果、個々の統合システムについて暗号化が一意になることに留意されたい。
【0039】
この時点で、コンピュータ・システムはセキュアな物理位置(600)から移動させることができる。次にシステムは、ロードされたセキュアなブート・コードを使用してリブートされる(645)。そのシステムは、必要ならば追加のコードを、自己生成したキー値による暗号化を使用してセキュアな方法でロードすることができる(650)。図6のプロセスの最終ステップは、そのコンピュータ・システムを試験し出荷することである(655)。
【0040】
図7は、図6の処理(630)を図示したものである。(図7および後続のいくつかの図面は、図2の統合システムを簡略化した図であり、見やすいようにバス制御要素およびスレーブ要素が省略されていることに留意されたい。)図示のように、デバッグ・インタフェースまたは統合開発環境(IDE)を使用して、暗号化されていないブート・コードをセキュアな動作用に構成された統合装置にロードすることができる。統合装置(200)は、アクセス制御機能(240)の永続記憶装置(243)に記憶された内部マスタ・キーを使用してブート・コードを暗号化し(249)、暗号化したブート・コード(700)を揮発性メモリ(280)の定義された位置に書き込む。暗号化されたブート・コードは、まず揮発性メモリに書き込まれることに留意されたい。その理由は、フラッシュ・メモリなどの不揮発性メモリは、所与のデータ値を書き込むのに複数の動作を必要とし、したがって1つのブロック動作として実施できないからである。暗号化されたブート・コード(700)は、後に外部メモリの他の位置にコピーされるので、暗号化動作に関するアクセス・テーブル(248)のエントリは、ホワイトニング用の値として不揮発メモリ内の最終的なアドレス位置を使用するように構成される。ホワイトニングについては、上で組み込んだ出願の1つまたは複数に詳細に記載されている。
【0041】
図8は、暗号化されたブート・コードを、例えばプロセッサ(2101)によって、揮発性メモリから不揮発性メモリ(260)にコピーするためのプロセス(635)を示す。ブート・コードは、マスタ・キー・セット及びホワイトニング用の不揮発性メモリ・アドレスですでに暗号化されているので、ブート・コードはいかなる暗号変換も必要とせず、復号化されずに不揮発メモリに直接コピーされる。
【0042】
図9は、本発明の一態様による、ある初期化プロセスの流れ図を示す。ブート手順(800)から開始し、統合装置の電源を投入し(805)、ブート要求を発行する。この要求は、データ・アクセス制御機能によって代用ブート・アドレスを使用してリダイレクトされる(810)。メモリからフェッチされた暗号化コードは、データ・アクセス制御機能によってマスタ・キー・セットを使用して復号化される(815)。実行される最初の各命令の中で、更新されたブート・コード・イメージが使用可能かどうかが検査される(820)。この検査は、ブート手順自体の動作中に実施する必要がある。その理由は、他のどのソフトウェア・レベルもブート・コードの変更を許可されていないからである。
【0043】
更新がない場合には、ブート・コードは、開始している所与のセッションで使用されるランタイム・キーを生成する(825)。使用しなければならない、以前のセッションからのデータ構造がある場合には、ブート・コードは、以前のセッションによって格納された暗号化されたキー値を取り出すこともできる。次にブート・コードは、メモリ中のソフトウェア・イメージを数学的に処理して一意のダイジェストまたはハッシュ値に到達し、次いでその結果を予想値と比較する確立された技術を使用して次のソフトウェア・レベルを認証する(830)。この処理は、セキュアなブート・コードを使用してソフトウェアで実施できる。認証に加えて、このブート・コードは、次ソフトウェア・レベルがアクセス制御機能に関するセキュリティ設定および動作特性を修正する能力を制限し、さらには観察する能力さえも制限することができる。認証、およびセキュリティ機能のロックが完了した状態で、制御は次のソフトウェア・レベルに渡される(835)。このレベルが最終レベルの場合には(840)、ソフトウェアをロードするプロセスが完了し、装置のセキュア動作を開始することができる(845)。追加のレベルがある場合には、次のレベルを認証するタスク、およびオプションでセキュリティ機能をロックするタスクが再度実行され、すべてのレベルがロードされるまでループが継続する。
【0044】
ブート・コードの更新がある場合には、照会(820)の後にブート更新手順に従う(850)。まず、現ブート・コード(すなわち、装置に最初に電源が投入されたとき動作していたコード)を使用して新ブート・コード・イメージを認証し、復号化する(855)。新イメージは、統合装置が内部で使用する暗号化形式とは異なる形式でシステムに転送しておくことができることに留意されたい。その場合、ブート・コードがソフトウェアで復号化ステップを実施する。次に、動作中のブート・コードは、アクセス制御機能を使用してその統合装置のマスタ・キー・セットで新コードを暗号化し、システムが最初に組み立てられたときと同じ方法で新ブート・コードをメモリに書き込む(860)。しかし、その手順の途中にシステムが不意に中断された場合でも、動作中のブート・コードがメモリ中に完全な形で存在し動作できるように、新ブート・コード・イメージは動作中のブート・コードとは別の場所に書き込まれる。新ブート・コード・イメージが完全に認証され不揮発性メモリに書き込まれた後、動作中のブート・コードは、代用ブート・アドレスを、新ブート・コード・イメージを指し示すように更新する(865)。更新が完了したあと、システムを再スタートし(870)、ブート手続きの最初に戻る(800)。このプロセスの拡張では、上位のセキュリティ特権を有するソフトウェア・レベルによって、必要に応じてブート・コードまたは初期化コード以外の、1つまたは複数コード・レベルを追加することができる。例えば、ブート・コードを使用してカーネルを更新することができる。
【0045】
ブート更新手続き(850)の拡張として、新バージョン番号を新ブート・コード・イメージに関連付けることができる(860)。そのためには、上で組み込んだ出願の1つまたは複数に記載したように、データ・アクセス制御機能に関連するオン・チップの永続メモリに記憶された値にバージョン番号パラメータを追加する必要がある。この場合にも、バージョン番号を使用して、最初の命令の復号化の一環としてホワイトニング手順を実施する。ブート・コード・イメージにバージョン番号を含める利点は、アタッカが旧ブート・コード・イメージを単にコピーし再実行することによってそれを再使用することを防止することである。
【0046】
図10は、図9のブート処理を使用して起動された統合システム内部の処理を示す。統合装置の主電源が投入されたとき、プロセッサ(2101)の最初のアクションは既定のアドレスのデータ(ブート・コード)を要求することである。この外部データ要求は、データ・アクセス制御機能(240)に渡され、その機能により、アドレスに基づいてその要求がブート・コード要求であると識別され、そのアドレスのすべてまたは一部が、その制御機能の永続記憶装置(243)に含まれる代用ブート・アドレスで置き換えられる。次いで、修正された要求は外部メモリ(260)まで進む。代用ブート・アドレスは、マスタ・キー・セットを使用して先に暗号化されたコードを含むメモリの区分を指し示すように定義されている。この暗号化されたコード(710)は、不揮発性メモリ(260)のセキュア領域に在る。暗号化されたコードは、戻されたデータを、代用ブート・アドレスに基づいて、マスタ・キー・セットを使用して復号化するように構成されたアクセス制御ユニットに戻される。次に、復号化された(セキュアな)ブート・コードは、実行のためにプロセッサに戻される。上記のステップは、プロセッサがブート・コード・シーケンスを実行するときに繰り返される。
【0047】
図11は、統合システムの動作中にコード更新を受け入れるためのプロセスを示す。この更新チェック手順(1000)は、セキュアな動作モード(1005)で動作中のシステムで始まる。内部の周期的トリガ(internal periodic time trigger)や外部通知などの条件イベントに基づき、システムは、チェック(1010)を実施して更新が使用可能かどうか(1015)を調べる。「No」の場合は、統合システムは前のセキュアな動作状態に戻り続行する。更新が使用可能な場合は、当業界で確立されたセキュアなネットワーク・プロトコルを使用して更新をダウンロードすることができる(1020)。あるいは、更新を固定メディアから読み込むこともできる。次いで、要求された更新を行う許可を現ソフトウェア・レベルが受けているかどうかが判断される(1025)。上記のように、所与のソフトウェア・レベルは、同等またはより高い権限レベルのソフトウェアによってのみ認証され得る。
【0048】
現ソフトウェア・レベルが更新を行う許可を受けていない場合は、そのソフトウェアは更新が可能であるとマークし、ソフトウェア・レベルが統合装置の制御における次レベルであるとき、その適切なソフトウェア・レベルによって使用できるようにその更新を記憶する。通常この場合は、更新が次セッションでも可能であるように、不揮発性メモリに記憶する必要があることに留意されたい。
【0049】
現ソフトウェア・レベルが許可を受けている場合には、更新手順(1050)に従う。この手順は、ブート・コードの更新に関して前述したプロセスを使用して更新を認証し復号化することを含む。しかし、更新をマスタ・キー・セットで暗号化する必要はない。その代わりとして、ランタイム・キーが使用できる。また、更新のバージョン番号は、ブート・コードによってロードされるので、必ずしもオン・チップの永続メモリに格納する必要はなく、暗号化し外部のセキュア・メモリに格納することができる(1060)。次に、システムの初期化中に更新されたコードをロードするに先立ち、検証する際に使用される認証値が更新される。
【0050】
図12は、キーを管理し、必要に応じてキーを更新するプロセスを示す。一般に、このプロセスでは、ある暗号化形式から別の暗号化形式へ移行させる手段としてデータ・アクセス制御機能を使用する。
【0051】
1つのデータ・ブロック上で秘密キーを使用し過ぎると、暗号解読に使用し得るサンプルの数が増加する。したがって、秘密キーを保護するためには、そのキーを使用するサンプルの数を制限する必要がある。その限度は、アタッカが使用できる分析のタイプ、ならびに使用される暗号化アルゴリズム、キー、および物理的シールドの強度に依存する。現在の技術では、1つのデータ・ブロック上で秘密キーが使用された回数を正確にカウントすることは非現実的である。このカウントの正確な近似としては、キー・セットごとに一定の記憶量を必要とすることにもなるが、各キー・セットごとの書込み動作の数を記録するカウンタを使用することもある。ただし、そのカウント値は、生成されたサンプル固有の数より大きいかまたは等しくなる。効率の劣る近似として、読出し動作および書込み動作の両方をカウントすることもできるが、この場合にカウント閾値を増加できることを意味している訳ではない。
【0052】
キー管理手順(1100)に示したように、(ブート手順に関連して上述したような)ランタイム・キーが生成されて、単一のセッション中に、またはセッションを越えて、使用される(1105)。同時に、キー使用カウンタが所与の閾値で初期化される。このカウンタはソフトウェアで実装することもできるが、より有利には、アクセス制御機能の一部としてハードウェアで実装される。その理由は、カウンタの駆動に必要な情報が使用できるからである。さらに、セッション間でカウント値が維持されるように、すなわちソフトウェアを使用して、システムの電源が切断されるときに結果を取り込み、それを暗号化し、その結果を格納し、次いでシステムが再起動されるときにそのカウント値がロードされるように、そのカウンタをオン・チップの永続記憶装置に関連付けることもできる。
【0053】
制御は、オプションで次ソフトウェア・レベルに渡される(1110)。あるいは、現ソフトウェア・レベルを継続し、そのキーを直接使用することもできることに留意されたい。キー使用カウンタは、暗号化されたデータを書き込むためにキーが使用されるたびにインクリメント(増分)される(1120)。オプションで読出しイベントの監視を使用することもできるが、書込みイベントに追加して使用されるだけであり、その代わりに使用できる訳ではない。
【0054】
ある時点で、キー使用カウンタが閾値を超える(1125)。このイベントが発生したとき、最初にそのキーが生成されたときと同じソフトウェア・レベルが動作している場合には、キー更新手順(1150)がコールされる(1130)。現ソフトウェア・レベルが異なっている場合には、システムは当初キーを生成したソフトウェア・レベルに戻り、そのレベルからキー更新手順をコールする(1135)。
【0055】
キー更新手順(1150)では、あるキー・セットから別のキー・セットへの移行を容易にするためにアクセス制御機能を使用する。旧キー・セットを使用して復号化される移行すべきデータの現位置を定義し、新キー・セットを用いて暗号化されるそのデータの新位置を定義するために、アクセス制御機能のアクセス・テーブルがまず修正される(1155)。アクセス・テーブルを使用してアドレス変換が実施できるので、統合システムの内部マスタは現データ位置と新データ位置をメモリ中の別々のアドレス範囲として認識できるが、一方アドレス変換後の外部要求では、両方の位置が同じアドレス範囲になるように定義できることに留意されたい。このことにより、所与のブロックを現在存在する位置から読み出し、次いで同じ位置に書き戻すことが可能になる。
【0056】
次に、新アクセス・テーブル定義を使用して、データを現位置から読み出し、新キー・セットでそのデータを実際に再暗号化するとともに新位置に書き込む(1160)。次いで、新キー・セットを用いた暗号化および復号化のための新位置が定義され(1165)、旧キー・セットおよび関連するデータ位置への参照がすべて削除される(1170)ようにアクセス・テーブルが再度修正される。
【0057】
図13〜15は、外部ソースによって提供されるデータを、ある暗号化形式から別の暗号化形式に移行させるための関連技術を示す。この場合、外部の暗号化形式は、内部の暗号化方法と異なるアルゴリズムおよびキー・セットであってもよい。図13に示したように、外部のソースから外部のアルゴリズムで暗号化されたデータが、この場合は通信ポート(1200)を介して受信される。アクセス制御機能(240)は、この外部データを外部メモリ(280)に直接、修正なしで格納するように定義されている。次に、図14に示したように、プロセッサ(2101)は、外部データをブロック単位でそのキャッシュに読み込み、復号化用のソフトウェアを使用して所与のブロックを復号化する。復号化した後、図15に示したように、クリア・ブロックを外部メモリ(280)に書き込む。また一方、アクセス制御機能は、内部のアルゴリズムおよびキー・セットを使用してそのデータを暗号化するように構成されている。この処理の結果、外部から受信したデータはすべて、一意であってかつこの唯一の統合装置によって制御される暗号化形式に変換される。このことにより、アクセス制御機能のハードウェア加速を利用しながら、暗号化されたデータのセキュリティを維持するという利点が提供されることになる。
【0058】
図16は、上で組み込んだ1つまたは複数の出願に記載したように、統合システムがフィールドで使用され、改ざんイベントによりセキュア状態からヌル状態へのシステムの遷移がトリガされた後で、統合システムのセキュア動作を回復するために使用されるプロセスの一実施形態を示す。図示のように、トリガ後のブート手順(1300)によると、改ざんイベント後に統合システムに電源が投入されても(1305)、ブート要求はもはやリダイレクトされない(1310)。標準のブート・アドレスから、暗号化されていないコードが起動されてシステムを初期化する(1315)。初期化されたシステムは、もはやセキュアなデータまたはアプリケーションにアクセスできない縮小機能レベルで動作する(1325)。あるいは、元の統合システムの機能を回復させるよう試みることもできる(1320)。
【0059】
統合システムの所有者が完全回復を図る選択をした場合には、その統合システムをセキュアな物理位置(1350)を備えた正規サービス・センタに持ち込む。そのサービス・センタでは、デバッグ・ツール(図7参照)を使用して、暗号化されていない初期化コードをロードする(1355)。このコードは、回復ブート・コードを含み、さらにメーカの公開キーも含む。
【0060】
次に、初期化コードを実行するために統合システムを再起動する。初期化コードは、まず新マスタ・キー・セットを生成し、次いでそのマスタ・キー・セットをデータ・アクセス制御機能に関連するオン・チップの永続記憶装置に書き込む(1360)。次に、上で図7に絡めて説明したように、そのマスタ・キー・セットを使用して回復ブート・コードを暗号化するようにアクセス制御機能が構成される。新ブート・コード位置は代用ブート・アドレス・フィールドに書き込まれる。次にブート・コードは、内部で公開/秘密キー・ペアを生成し、秘密キーを不揮発性メモリ内にセキュアに格納する。生成された公開キーは(以前に初期化コードとともに提供された)製造業者の公開キーを使用して暗号化され、サービス・センタに戻され、次いでサービス・センタはそのキーを製造業者に転送する(1365)。この時点で、統合システムはセキュアな物理位置から移動させることができる(1350)。
【0061】
システムが再起動され、回復ブート・コードが実行される(1370)。初期化されたシステムは、製造業者へのセキュアなネットワーク接続を確立し(1375)、次いで既知の技術を使用して、システムの元の機能を再構築するために必要なデータおよびコードをダウンロードし、統合システムにインストールすることができる(1380)。
【0062】
要約すると、本明細書には統合システム内でセキュアな動作を初期化し、維持し、更新し、かつ回復するための方法、システム、およびコンピュータ・プログラムが記載されている。これらの技術は、統合システム内のデータ・アクセス制御機能を使用する。システムおよびコンピュータ・プログラムは、概して下記のように要約される。
【0063】
本発明の一態様では、複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にするシステムが提供される。このシステムは、統合システムの制御を次ソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを現ソフトウェア・レベルによって認証する手段を含む。統合システムの動作特性を次ソフトウェア・レベルが修正する能力を制限する手段を含むデータ・アクセス制御装置もまた提供される。
【0064】
他の態様では、統合システムのセキュアな動作を初期化するためのシステムも提供される。このシステムは、統合システム用の少なくとも1つのキーを生成する手段、および統合システム内のデータ・アクセス制御機能を含む。データ・アクセス制御機能は、統合システム内で初期コードを受信し、その初期コードを少なくとも1つのキーを用いて暗号化する。初期化システムはさらに、暗号化された初期コードを使用して統合システムを再初期化する手段も含む。
【0065】
第1のキー・セットを使用して暗号化されたデータを第2のキー・セットを使用して暗号化されたデータに移行させるためのシステムもさらに提供される。このシステムは、第1のキー・セットを使用して暗号化されたデータを統合システム内で復号化する手段と、第2のキー・セットを使用してそのデータを再暗号化する手段を含んだ、統合システム内データ・アクセス制御機能とを含む。
【0066】
他の態様における、トリガ・イベントに続いて統合システムの機能を回復させるためのシステムが本明細書に記載されている。このシステムは、統合システム内で自動的に機能レベルを縮小する手段、および指定された回復手順を選択的に使用することによって統合システムの全機能回復を可能にする手段を含む。
【0067】
他の態様では、複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にする方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、統合システムの制御を次のソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次ソフトウェア・レベルを現ソフトウェア・レベルによって認証するステップ、および次ソフトウェア・レベルが統合システムの動作特性を修正する能力を、統合システムのデータ・アクセス制御機能によって制限するステップを含む。
【0068】
他の態様では、統合システムのセキュアな動作を初期化する方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、統合システム用の少なくとも1つのキーを生成するステップ、少なくとも1つのキーを使用して、統合システムのデータ・アクセス制御機能によって暗号化された初期コードを統合システムにロードするステップ、およびその暗号化された初期コードを使用して統合システムを再初期化するステップを含む。
【0069】
他の態様では、第1のキー・セットを使用して暗号化されたデータを第2のキー・セットを使用して暗号化されたデータに移行させる方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、第1のキー・セットを使用して暗号化されたデータを復号化するステップ、および第2のキー・セットを使用して、統合システム内のデータ・アクセス制御機能によってそのデータを再暗号化するステップを含む。
【0070】
他の態様では、トリガ・イベントに続いて統合システムの機能を回復させる方法を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置が提供される。この方法は、統合システム内で自動的に機能レベルを縮小するステップ、および選択的回復手順を使用して統合システムの全機能回復を可能にするステップを含む。
【0071】
当業者なら、上記の議論から本発明を例えばコンピュータ使用可能の媒体を有する製品(例えば、1つまたは複数のコンピュータ・プログラム製品)に含めることができることに気づくであろう。この媒体は、例えば本発明の機能を提供しかつその機能を容易にするコンピュータ可読のプログラム・コード手段をその上で実施したものである。この製品は、コンピュータ・システムの一部に含めること、または単独で販売することができる。
【0072】
さらに、本発明の機能を実施するための、マシン実行可能な命令からなる少なくとも1つのプログラムを有形に実施する、マシン可読の少なくとも1つのプログラム記憶装置を提供することもできる。
【0073】
本明細書で示した流れ図は例示に過ぎない。そこで示したこれら各流れ図または諸ステップ(もしくは諸動作)には、本発明の趣旨を逸脱することなく多数の変形形態が存在し得る。例えば、各ステップを異なる順序で実施すること、あるいはステップを追加、削除または修正することもできる。これらの変形形態はすべて特許請求の範囲に記載した本発明の一部と見なされる。
【0074】
本明細書において、好ましい実施形態を詳細に図示し説明してきた。当業者にとって、本発明の趣旨を逸脱することなく様々な修正、追加、代用などを実施し得ることは明らかであろう。したがって、それらは添付の特許請求の範囲で定義した本発明の範囲に含まれるものと見なされる。
【産業上の利用可能性】
【0075】
本発明は、処理し移行する前に暗号化する必要がある機密データを処理するセキュアな統合システムに広範に適用できる。
【図面の簡単な説明】
【0076】
【図1】メモリ・サブシステムを介して共通メモリ・アクセスを採用する代表的な統合装置の一例を示す図である。
【図2】本発明の一態様による、統合装置のセキュアなメモリ・サブシステム内に実装されるアクセス制御機能の一実施形態を示す図である。
【図3】本発明の一態様による、本明細書に記載のセキュアな動作技術によって認識され対処される問題を示す図である。
【図4】本発明の一態様による、複数のソフトウェア・レベルを有する統合装置のセキュアな動作を容易にする技術の一実施形態を示す図である。
【図5】本発明の一態様による、図4の技術を統合システムのデータ・アクセス制御機能に関連するアクセス・テーブルに適用するプロセスの一実施形態を示す図である。
【図6】本発明の一態様による、統合システムにコードをロードするプロセスの一実施形態を示す図である。
【図7】本発明の一態様による、統合システムに暗号化されたブート・コードを最初に格納するプロセスの一例を示す図である。
【図8】本発明の一態様による、図7のプロセスによって格納された暗号化されたコードを揮発性メモリから不揮発性メモリにコピーするプロセスの一例を示す図である。
【図9】本発明の一態様による、各ソフトウェア・レベルを認証し各ソフトウェア・レベル間で制御を渡すとともに、ブート・コードの更新が使用可能なときはブート・コードを更新するプロセスの一実施形態を示す図である。
【図10】本発明の一態様による、セキュアな状態でアクセス制御機能によって統合システムの各コンポーネントに渡される初期化信号の一実施形態を示す図である。
【図11】本発明の一態様による、複数のソフトウェア・レベルを有する統合システム内でソフトウェア・レベルをセキュアに更新するプロセスの一実施形態を示す図である。
【図12】本発明の一態様による、統合システムのデータ・アクセス制御機能によって使用されるキー・セットを管理し更新するプロセスの一実施形態を示す図である。
【図13】本発明の一態様による、暗号化されたデータを統合システム内で受信して格納するプロセスの一実施形態を示す図である。
【図14】本発明の一態様による、図13で格納した暗号化されたデータを取り出し、セキュアなコードを使用してソフトウェアの形でそのデータを復号化するプロセスの一実施形態を示す図である。
【図15】本発明の一態様による、復号化されたデータをアクセス制御ハードウェアを使用して再暗号化してセキュアなメモリに格納するプロセスの一実施形態を示す図である。
【図16】本発明の一態様による、統合システムのコンピューティング環境内で発生する改ざんトリガ・イベントに続いて統合回路機能を回復するプロセスの一実施形態を示す図である。
【特許請求の範囲】
【請求項1】
複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にする方法であって、
暗号化して保存された初期化コードを復号化することによってシステム初期化を開始するステップであって、前記復号化は前記統合システムのデータ・アクセス制御機能にて発生する、ステップと、
前記複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを、前記統合システムの制御を前記次のソフトウェア・レベルに渡す前に認証するステップと、
前記次ソフトウェア・レベルが前記統合システムの動作特性を修正する能力を制限するステップであって、前記制限は前記統合システムの前記データ・アクセス制御機能にあるハードウェア・コンポーネント内で実施される、ステップと、
を備える方法。
【請求項2】
前記制限するステップは、前記データ・アクセス制御機能によって維持される
キー・セット、
アクセス・テーブル、
アクセス・レベル、および
アクセス・パラメータ、
のうちの少なくとも1つを前記次ソフトウェア・レベルが修正する能力を限定するステップを備える、請求項1に記載の方法。
【請求項3】
前記限定するステップが、
前記キー・セットを隠蔽するステップ、または
前記データ・アクセス制御機能によって維持される前記アクセス・テーブル、前記アクセス・レベル、もしくは前記アクセス・パラメータへのアクセスをロックするステップ、
の少なくとも一方を備える、請求項2に記載の方法。
【請求項4】
前記統合システムのセキュアな動作を初期化する際に使用される前記初期化コードを認証するステップをさらに有し、前記初期化コードの前記認証は、前記統合システムの前記データ・アクセス制御機能によって実行される、請求項1に記載の方法。
【請求項5】
ソフトウェア・レベルを更新する方法であって、
ソフトウェア・レベル更新が可能かどうかを判断するステップと、
現ソフトウェア・レベルが前記更新されるソフトウェア・レベルを認証することを許可されているかどうかを判断し、許可されている場合には、前記データ・アクセス制御機能を使用して前記統合システム内で前記ソフトウェア・レベル更新を受け入れるように進むステップと、
を備える方法、と組み合わされる、請求項1に記載の方法。
【請求項6】
前記更新されるソフトウェア・レベルが初期化コード更新を含み、
前記初期化コード更新を認証し復号化するステップと、
前記復号化された初期化コード更新を、前記データ・アクセス制御機能によって維持されるマスタ・キー・セットと新バージョン番号とを用いて暗号化するステップと、
前記データ・アクセス制御機能によって維持される初期化リダイレクト・アドレスを、新しい、更新された初期化位置アドレスに更新するステップと、
をさらに備える、
請求項5に記載の方法。
【請求項7】
現ソフトウェア・レベルが前記ソフトウェア・レベル更新を認証することができない場合には、適切なレベルのソフトウェアが動作し前記ソフトウェア・レベル更新を認証できるようになるまで、前記ソフトウェア・レベル更新が前記統合システムで保留される、請求項5に記載の方法。
【請求項8】
前記統合システム内で前記ソフトウェア・レベル更新を受け入れるように進む前記ステップが、前記ソフトウェア・レベル更新を格納するために暗号化するステップを備え、前記暗号化するステップは、前記ソフトウェア・レベル更新を暗号化するときに新バージョン番号を使用するステップを備える、請求項5に記載の方法。
【請求項9】
暗号化された初期化コードをロードして統合システムのセキュアな動作を初期化する方法であって、
前記統合システム用に少なくとも1つのキーを生成するステップと、
初期化コードを前記統合システムにロードするステップであって、前記統合システムのデータ・アクセス制御機能を介して前記初期化コードを暗号化するために前記少なくとも1つのキーを使用することを含む、ステップと、
を備える方法、とさらに組み合わされる、請求項1に記載の方法。
【請求項10】
前記生成するステップが、前記統合システム内で前記少なくとも1つのキーを生成するステップを備える、請求項9に記載の方法。
【請求項11】
前記暗号化された初期化コードを使用して追加コードを前記統合システムにロードするステップをさらに備える、請求項9に記載の方法。
【請求項12】
追加コードをロードする前記ステップが、前記データ・アクセス制御機能によって前記追加コードを暗号化する際に使用するために、前記統合システム内にランダム・キーの生成を実現するよう前記初期化コードを利用するステップを含む、請求項11に記載の方法。
【請求項13】
前記ロードするステップが、ホワイトニングのために前記少なくとも1つのキーとメモリ・アドレスとを使用して前記初期化コードを暗号化するステップをさらに含む、請求項9に記載の方法。
【請求項1】
複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にする方法であって、
暗号化して保存された初期化コードを復号化することによってシステム初期化を開始するステップであって、前記復号化は前記統合システムのデータ・アクセス制御機能にて発生する、ステップと、
前記複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを、前記統合システムの制御を前記次のソフトウェア・レベルに渡す前に認証するステップと、
前記次ソフトウェア・レベルが前記統合システムの動作特性を修正する能力を制限するステップであって、前記制限は前記統合システムの前記データ・アクセス制御機能にあるハードウェア・コンポーネント内で実施される、ステップと、
を備える方法。
【請求項2】
前記制限するステップは、前記データ・アクセス制御機能によって維持される
キー・セット、
アクセス・テーブル、
アクセス・レベル、および
アクセス・パラメータ、
のうちの少なくとも1つを前記次ソフトウェア・レベルが修正する能力を限定するステップを備える、請求項1に記載の方法。
【請求項3】
前記限定するステップが、
前記キー・セットを隠蔽するステップ、または
前記データ・アクセス制御機能によって維持される前記アクセス・テーブル、前記アクセス・レベル、もしくは前記アクセス・パラメータへのアクセスをロックするステップ、
の少なくとも一方を備える、請求項2に記載の方法。
【請求項4】
前記統合システムのセキュアな動作を初期化する際に使用される前記初期化コードを認証するステップをさらに有し、前記初期化コードの前記認証は、前記統合システムの前記データ・アクセス制御機能によって実行される、請求項1に記載の方法。
【請求項5】
ソフトウェア・レベルを更新する方法であって、
ソフトウェア・レベル更新が可能かどうかを判断するステップと、
現ソフトウェア・レベルが前記更新されるソフトウェア・レベルを認証することを許可されているかどうかを判断し、許可されている場合には、前記データ・アクセス制御機能を使用して前記統合システム内で前記ソフトウェア・レベル更新を受け入れるように進むステップと、
を備える方法、と組み合わされる、請求項1に記載の方法。
【請求項6】
前記更新されるソフトウェア・レベルが初期化コード更新を含み、
前記初期化コード更新を認証し復号化するステップと、
前記復号化された初期化コード更新を、前記データ・アクセス制御機能によって維持されるマスタ・キー・セットと新バージョン番号とを用いて暗号化するステップと、
前記データ・アクセス制御機能によって維持される初期化リダイレクト・アドレスを、新しい、更新された初期化位置アドレスに更新するステップと、
をさらに備える、
請求項5に記載の方法。
【請求項7】
現ソフトウェア・レベルが前記ソフトウェア・レベル更新を認証することができない場合には、適切なレベルのソフトウェアが動作し前記ソフトウェア・レベル更新を認証できるようになるまで、前記ソフトウェア・レベル更新が前記統合システムで保留される、請求項5に記載の方法。
【請求項8】
前記統合システム内で前記ソフトウェア・レベル更新を受け入れるように進む前記ステップが、前記ソフトウェア・レベル更新を格納するために暗号化するステップを備え、前記暗号化するステップは、前記ソフトウェア・レベル更新を暗号化するときに新バージョン番号を使用するステップを備える、請求項5に記載の方法。
【請求項9】
暗号化された初期化コードをロードして統合システムのセキュアな動作を初期化する方法であって、
前記統合システム用に少なくとも1つのキーを生成するステップと、
初期化コードを前記統合システムにロードするステップであって、前記統合システムのデータ・アクセス制御機能を介して前記初期化コードを暗号化するために前記少なくとも1つのキーを使用することを含む、ステップと、
を備える方法、とさらに組み合わされる、請求項1に記載の方法。
【請求項10】
前記生成するステップが、前記統合システム内で前記少なくとも1つのキーを生成するステップを備える、請求項9に記載の方法。
【請求項11】
前記暗号化された初期化コードを使用して追加コードを前記統合システムにロードするステップをさらに備える、請求項9に記載の方法。
【請求項12】
追加コードをロードする前記ステップが、前記データ・アクセス制御機能によって前記追加コードを暗号化する際に使用するために、前記統合システム内にランダム・キーの生成を実現するよう前記初期化コードを利用するステップを含む、請求項11に記載の方法。
【請求項13】
前記ロードするステップが、ホワイトニングのために前記少なくとも1つのキーとメモリ・アドレスとを使用して前記初期化コードを暗号化するステップをさらに含む、請求項9に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2009−32282(P2009−32282A)
【公開日】平成21年2月12日(2009.2.12)
【国際特許分類】
【出願番号】特願2008−258322(P2008−258322)
【出願日】平成20年10月3日(2008.10.3)
【分割の表示】特願2003−587052(P2003−587052)の分割
【原出願日】平成15年4月16日(2003.4.16)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
【公開日】平成21年2月12日(2009.2.12)
【国際特許分類】
【出願日】平成20年10月3日(2008.10.3)
【分割の表示】特願2003−587052(P2003−587052)の分割
【原出願日】平成15年4月16日(2003.4.16)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
[ Back to top ]