(57)【要約】【課題】統合システム内で、セキュアな動作を初期化し、維持し、更新し、かつ回復する技術を提供すること。【解決手段】統合システム内でデータ・アクセス制御機能を使用する諸技術には、統合システム内で現ソフトウェア・レベルによって次ソフトウェア・レベルを認証することなどがある。この認証は、制御が次ソフトウェア・レベルに渡される前に行われる。さらに、データ・アクセス制御機能によって、次ソフトウェア・レベルが統合システムの動作特性を修正する能力を選択的に制限することもできる。統合システムのセキュアな動作を初期化し、第１のキー・セットを使用して暗号化されたデータを第２のキー・セットを使用して暗号化されたデータに移行させ、統合システム内でソフトウェアおよびキーを更新し、かつトリガ・イベントに続いて統合システムの機能を回復させる技術も提供される。
2005523537.tif 000002
【特許請求の範囲】
【請求項１】
複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にする方法であって、
現ソフトウェア・レベルによって、前記複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを、前記統合システムの制御を前記次のソフトウェア・レベルに渡す前に認証するステップと、
前記次ソフトウェア・レベルが前記統合システムの動作特性を修正する能力を制限するステップであって
前記統合システムのデータ・アクセス制御機能で実施されるステップと、
を有する方法。
【請求項２】
前記制限するステップが、前記データ・アクセス制御機能によって維持されるキー・セット、アクセス・テーブル、アクセス・レベル、およびアクセス・パラメータ、のうちの少なくとも１つを前記次ソフトウェア・レベルが修正する能力を制限するステップを有する、請求項１に記載の方法。
【請求項３】
前記制御するステップが、前記キー・セットを隠蔽するステップ、または（前記データ・アクセス制御機能によって維持される）前記アクセス・テーブル、前記アクセス・レベル、もしくは前記アクセス・パラメータへのアクセスを遮断するステップ、の少なくとも一方を含む、請求項２に記載の方法。
【請求項４】
前記統合システムのセキュアな動作を初期化する際に使用される初期化コードを認証するステップをさらに有し、前記初期化コードを認証する前記ステップが前記統合システムの前記データ・アクセス制御機能によって実施される、請求項１に記載の方法。
【請求項５】
ソフトウェア・レベルを更新する方法と組み合わされる方法であって、前記ソフトウェア・レベルを更新する前記方法が、
ソフトウェア・レベル更新が可能かどうかを判断するステップと、
現ソフトウェア・レベルが前記更新されるソフトウェア・レベルを認証することを許可されているかどうかを判断し、許可されている場合には、前記データ・アクセス制御機能を使用して前記統合システム内で前記ソフトウェア・レベル更新を受け入れるように進むステップと、
を有する、請求項１に記載の方法。
【請求項６】
前記更新されるソフトウェア・レベルが初期化コード更新を含み、
前記初期化コード更新を認証し復号化するステップと、
前記復号化された初期化コード更新を、前記データ・アクセス制御機能によって維持されるマスタ・キー・セットと新バージョン番号とを用いて暗号化するステップと、
前記データ・アクセス制御機能によって維持される初期化リダイレクト・アドレスを、新しい、更新された初期化位置アドレスに更新するステップと、
をさらに有する、請求項５に記載の方法。
【請求項７】
現ソフトウェア・レベルが前記ソフトウェア・レベル更新を認証することができない場合には、適切なレベルのソフトウェアが動作し前記ソフトウェア・レベル更新を認証できるようになるまで、前記ソフトウェア・レベル更新が前記統合システムで保留される、請求項５に記載の方法。
【請求項８】
前記統合システム内で前記ソフトウェア・レベル更新を受け入れるように進む前記ステップが、前記ソフトウェア・レベル更新を暗号化して格納するステップを含み、前記暗号化するステップが、前記ソフトウェア・レベル更新を暗号化するときに新バージョン番号を使用するステップを有する、請求項５に記載の方法。
【請求項９】
統合システムのセキュアな動作を初期化する方法であって、
前記統合システム用に少なくとも１つのキーを生成するステップと、
初期コードを前記統合システムにロードするステップであって、前記ロードするステップが、前記少なくとも１つのキーを使用して、前記統合システムのデータ・アクセス制御機能を介して前記初期コードを暗号化するステップを含む、ステップと、
前記暗号化された初期コードを使用して前記統合システムを再初期化するステップと、
を有する方法。
【請求項１０】
前記生成するステップが、前記統合システム内で前記少なくとも１つのキーを生成するステップを有する、請求項９に記載の方法。
【請求項１１】
前記データ・アクセス制御機能が前記統合システムのハードウェア・コンポーネントを有する、請求項９に記載の方法。
【請求項１２】
前記暗号化された初期コードを使用して追加コードを前記統合システムにロードするステップをさらに有する、請求項９に記載の方法。
【請求項１３】
追加コードをロードする前記ステップが、暗号化された前記初期コードを利用して前記統合システム内にランダム・キー生成を実現して、前記データ・アクセス制御機能によって前記追加コードを暗号化する際に使用するステップを含む、請求項１２に記載の方法。
【請求項１４】
前記ロードするステップが、前記少なくとも１つのキーとホワイトニングのためのメモリ・アドレスとを使用して前記初期コードを暗号化するステップをさらに含む、請求項９に記載の方法。
【請求項１５】
第１のキー・セットを使用して暗号化されたデータを第２のキー・セットを使用して暗号化されたデータに移行させる方法であって、
第１のキー・セットを使用して暗号化されたデータを復号化するステップと、
第２のキー・セットを使用して、統合システム内のデータ・アクセス制御機能によって前記データを再暗号化するステップと、
を有する方法。
【請求項１６】
前記データ・アクセス制御機能が前記統合システムのハードウェア・コンポーネントを有する、請求項１５に記載の方法。
【請求項１７】
前記復号化するステップが、前記統合システムの前記データ・アクセス制御機能によっても実施される、請求項１５に記載の方法。
【請求項１８】
前記第１のキー・セットを使用して暗号化された前記データを、前記統合システムに関連する記憶装置から取り出して復号化するステップをさらに有する、請求項１５に記載の方法。
【請求項１９】
前記データ・アクセス制御機能に関連する少なくとも１つの動作特性を修正するステップであって、前記少なくとも１つの動作特性が前記データ・アクセス制御機能によって用いられるアクセス・テーブル内に存在するステップを更に有し、前記修正するステップが、現在の位置にある暗号化されたデータは前記第１のキー・セットを使用して復号化され、新しいデータ位置に格納するときに前記第２のキー・セットを使用して再暗号化されるべきであると指示するように前記アクセス・テーブルを修正するステップを含む、請求項１５に記載の方法。
【請求項２０】
前記復号化するステップおよび再暗号化するステップが、前記第１のキー・セットがデータの暗号化および復号化の少なくとも一方に所定のカウント分使用されたことに応答して実施され、また、前記方法が、データの暗号化および復号化の前記少なくとも一方に際し前記第１のキー・セットが用いられた回数をカウントするステップを更に有する、請求項１５に記載の方法。
【請求項２１】
前記カウントするステップが、が前記統合システムの前記データ・アクセス制御機能によって維持されるキー使用カウンタを用いるステップを有する、請求項２０に記載の方法。
【請求項２２】
前記第１のキー・セットを使用して暗号化された前記データが前記統合システムの外部のソースから受信される、請求項１５に記載の方法。
【請求項２３】
前記復号化するステップが前記統合システム内でソフトウェアの形で実施され、前記再暗号化するステップが前記データ・アクセス制御機能によって前記統合システムのハードウェアの形で実施される、請求項２２に記載の方法。
【請求項２４】
前記第２のキー・セットが前記統合システムに固有のものである、請求項２３に記載の方法。
【請求項２５】
トリガ・イベントに続いて統合システムの機能を回復させる方法であって、
縮小された機能レベルを前記統合システム内で自動的に確立するステップと、
選択的回復手順を用いることで前記統合システムの全機能の回復を可能にするステップと、
を有する方法。
【請求項２６】
前記回復手順が、セキュアな物理位置で前記統合システムに初期化コードをロードするステップを含む、請求項２５に記載の方法。
【請求項２７】
初期化コードをロードする前記ステップが、回復初期化コードを含む暗号化されていない初期化コードを前記統合システムにロードするステップをさらに有し、
前記回復初期化コードを実行してマスタ・キーおよび代用初期化アドレスを得るステップと、
前記回復初期化コードを前記マスタ・キーで暗号化し、前記暗号化された初期化コードを前記代用初期化アドレスに格納するステップと、
前記代用初期化アドレスに格納された前記暗号化された初期化コードを使用して前記統合システムを再初期化するステップと、
をさらに有する、請求項２６に記載の方法。
【請求項２８】
前記マスタ・キーおよび前記代用初期化アドレスを前記統合システムのデータ・アクセス制御機能に関連する永続記憶装置に記憶するステップをさらに有する、請求項２７に記載の方法。
【請求項２９】
前記初期化コードが製造業者の公開キーをさらに含み、
前記統合システムで公開／秘密キー・ペアを生成するステップと、
前記統合システムの秘密キーをセキュアに記憶するステップと
前記製造業者の公開キーを使用して前記統合システムの公開キーを暗号化するステップと
をさらに有する、請求項２７に記載の方法。
【請求項３０】
前記統合システムと製造業者との間のセキュアなネットワーク接続を確立するステップをさらに有し、前記確立するステップが、前記生成された公開／秘密キー・ペアを用いるステップと、前記統合システムの全機能を再構築するために必要なコードおよびデータを前記セキュアなネットワーク接続越しにダウンロードするステップとを含む、請求項２９に記載の方法。
【請求項３１】
前記統合システム内で縮小された機能レベルを自動的に確立するステップが、前記統合システム内でのセキュアなコードおよびデータへのアクセスを制限するステップを含む、請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に統合システム内でのデータ要求処理およびデータ転送に関し、より詳細には、少なくとも部分的には統合システムのデータ・アクセス制御機能によって実施される、統合システムのセキュア（安全確実）な動作を初期化し、維持し、更新し、および回復するための技術に関する。
【背景技術】
【０００２】
本出願は、それぞれが本出願と同一の譲受人に譲渡され、本出願と同日に出願された以下の出願の主要部分と関連する主要部分を含む。下記の各出願を、この参照により本明細書全体に組み込む。
−米国特許出願第１０／１２５８０３号、「要求元マスタＩＤおよびデータ・アドレスを用いて、統合システム内のデータ・アクセスを制限する制御機能（Control Function Employing a Requesting Master ID and a Data Addressto Qualify Data Access Within an Integrated System）」、エバンズ（Evans）他、２００２年４月１８日出願
−米国特許出願第１０／１２５１１５号、「複数のセキュリティ状態を有し、統合システムのセキュアな動作を容易にするための制御機能（Control Function with Multiple Security States for FacilitatingSecure Operation of an Integrated System）」、フォスター（Foster）他、２００２年４月１８日出願
−米国特許出願第１０／１２５７０８号、「統合システム内で、選択的トランスペアレント・データ認証を実施する制御機能（Control Function Implementing Selective Transparent Data AuthenticationWithin an Integrated System）」、フォスター（Foster）他、２００２年４月１８日出願
【０００３】
今日、複数のマスタ機能が、単一のシステム・チップ上に統合されることも多い。複数の別個の部品を単一のチップ上に統合するためのアーキテクチャを最初に定義するとき、外部装置へのアクセスが問題になることがあり得る。例えば、ＭＰＥＧビデオ・デコーダ・システムでは、様々なデータ領域用の外部メモリ、あるいはフレーム・バッファなどのバッファをしばしば使用する。この外部メモリは通常、ＤＲＡＭまたはＳＤＲＡＭ技術を使用して実装される。
【０００４】
チップ外の装置にアクセスするための方法として、当技術分野には２つの代表的なアプローチがある。第１のアプローチでは、各オン・チップ機能ユニットは、その特定のユニット専用のデータ・バスを介して必要な外部装置にアクセスすることができる。このアプローチは、ローカルには外部装置へのアクセスに有効であるが、統合システム内でグローバルには決して最適ではない。例えば各機能は、それ自体の外部メモリ領域には完全にアクセスできるが、その統合システムの各機能間でのアクセスの共用は存在しない。したがって、このシステムのあるメモリ領域から他のメモリ領域にデータを転送することがしばしば必要になる。この場合には、明らかにデータ転送が増加し、共用メモリ・システムと比べて全体システムの性能が低下する恐れがある。
【０００５】
もう１つのアプローチは、統合システム内で単一の共通バスを使用するものであり、それによって、システムの１つまたは複数の機能ユニットが、単一のポートを介して各外部装置と通信することが可能になる。装置の共用を可能にするが、このアプローチの１つの難点は、この統合システムのコンテンツまたは他の機密データへのアクセスを制御することに関するものである。例えば、統合設計において大規模な共通メモリ・プールを使用すると、転送デマルチプレクサからセットトップ・ボックスのデコーダに供給される圧縮データなど、保護されたメモリ空間への無許可アクセスを防止することが困難になる。プログラミング・インタフェースがオープンで、外部開発が奨励されているシステムの場合には、特に困難となる。機能のマスタはそれぞれメモリ空間にアクセスできる必要があり、あるアクセスが信頼できるマスタからのものか、それとも例えば信頼できないマスタもしくはオープン・マスタなどの外部要求からのものかを識別することは不可能である。
【０００６】
さらに、共用メモリを使用して複数の機能マスタを有するシステム・オン・チップ設計を行うときは、データを無許可アクセスから保護する機構を提供することが望ましく、特にデータが装置のシステム・プログラム・コードを含むときには望ましい。より詳細には、セキュアな動作環境の初期化を容易にするには、まずシステム・コードがセキュアでありかつ意図した機能をうまく実施することを保証することから始める。したがって、セキュアな動作環境を保証するためには、統合システムをセキュアなモードで起動またはブートする必要がある。
【特許文献１】米国特許出願第１０／１２５８０３号
【特許文献２】米国特許出願第１０／１２５１１５号
【特許文献３】米国特許出願第１０／１２５７０８号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のことを考慮すると、当技術分野では統合システムのデータ・アクセス制御アプローチに関して様々な機能拡張が求められていることが分かる。より詳細には、統合システムのセキュアな動作を初期化し、維持し、更新し、および回復するための技術が求められている。
【課題を解決するための手段】
【０００８】
複数のソフトウェア・レベルを有する統合装置のセキュアな動作を容易にする方法を提供することによって、従来技術の欠点が克服され、追加の利点が提供される。この方法は、統合システムの制御を次ソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次ソフトウェア・レベルを現ソフトウェア・レベルによって認証すること、および次ソフトウェア・レベルが統合システムの動作特性を修正する能力を制限し、その制限を統合システムのデータ・アクセス制御機能によって実施することを含む。
【０００９】
他の態様では、統合システムのセキュアな動作を初期化する方法が提供される。この方法は、統合システム用の少なくとも１つのキーを生成すること、その少なくとも１つのキーを使用して、統合システムのデータ・アクセス制御機能によって暗号化された初期コードを統合システムにロードすること、およびその暗号化された初期コードを使用して前記統合システムを再初期化することを含む。
【００１０】
他の態様では、第１のキー・セットを使用して暗号化されたデータを第２のキー・セットを使用して暗号化されたデータに移行させる方法が提供される。この方法は、第１のキー・セットを使用して暗号化されたデータを復号化すること、および第２のキー・セットを使用して、統合システムのデータ・アクセス制御機能によってそのデータを再暗号化することを含む。有利なことには、データ・アクセス制御機能を使用して再暗号化することによって、データの暗号化がその統合システムに固有のものとなる。
【００１１】
他の態様では、トリガ・イベントに続いて統合システムの機能を回復させる方法が提供される。この方法は、改ざん検出トリガ・イベントに続いて統合システム内で機能レベルを自動的に縮小すること、および、信頼できる回復手順を選択的に使用することによってユーザが統合システムの全機能の回復を可能にすることを含む。
【００１２】
本明細書は、上記に要約した方法に対応するシステムおよびコンピュータ・プログラムも開示する。
【００１３】
有利なことには、本明細書で開示するセキュア動作技術は、統合システム内でセキュアな動作環境を初期化し、維持し、更新し、および回復するために、あるいはその任意の組合せを実施するために使用できる。より詳細には、提示する技術は、データ・アクセス制御機能によって維持される動作特性の更新を制限する能力を提供する。この動作特性は、統合システム内の様々なソフトウェア・レベルによって使用されるキー・セット、アクセス・テーブル、アクセス・レベルおよびアクセス・パラメータのうちの１つまたは複数を含むことができる。更新を制限するこの能力によって、階層的セキュリティ特権を備えた様々なソフトウェア・レベルが提供される。
【００１４】
本明細書で提示される技術はさらに、旧バージョンのソフトウェアまたは他のデータの再使用を防止するためのバージョン番号の使用などのセキュアな方法で、現場で更新を行う能力を提供する。キー管理プロセスの一部として暗号化されたデータを第１のキー・セットから第２のキー・セットに移行させる能力、または保護されたデータを他のシステムからインポートする能力あるいはその両方についても提示する。さらに、統合システムが改ざんトリガ状態に入ったにもかかわらず機能を提供する能力についても記述する。詳細には、機密のデータおよびアプリケーションにアクセスできない制限された機能を自動的に提供することができ、またサービス機能にあまり依存せずに全機能を回復するための機構も自動的に提供できる。
【００１５】
本発明の技術によって追加の特徴および利点が実現される。本発明のその他の実施形態および態様についても本明細書に詳細に記載されており、それらは特許請求の範囲に記載した本発明の一部と見なされる。
【００１６】
本発明として見なされる主要部分については、別添の特許請求の範囲の中で詳細に指摘し、明確に主張する。本発明の、前記その他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せて読めば明らかである。
【発明を実施するための最良の形態】
【００１７】
図１は、一般に１００で示され、複数の内部機能マスタ１１０１、１１０２、１１０３、．．．、１１０ｎを有する従来の統合装置を示す。マスタ１１０１は、プロセッサ・コア１１２およびメモリ管理ユニット１１４を有するプロセッサとして示されている。この例では、内部マスタ１１０１、１１０２、１１０３、．．．１１０ｎは、共用バスのバス制御論理機構１３０を含むメモリ・サブシステム１２０に接続される。バス制御機構１３０は、メモリ・サブシステム内部に示されているが、別法としてサブシステム１２０の外側に置くこともできることが当業者には理解されよう。
【００１８】
バス制御ユニット１３０は、統合装置のスレーブへの要求を調整し統合する。例えば、第１のスレーブは、オープンなメモリ部分１５５を有する、フラッシュ・メモリなどの外部不揮発性メモリ１５０に接続された外部バス・コントローラ１４０を含むことができる。第２のスレーブは、ＳＤＲＡＭやＤＲＡＭなどの外部揮発性メモリ１７０に接続されたメモリ・コントローラ１６０を含むことができる。メモリ１７０は、オープンなメモリ部分１７５を含む。一般に、メモリ・コストを最小にし、かつ各機能間でのデータ転送を容易にするために、この統合設計では各機能が共通メモリ・プールを共用する。したがって、すべての内部マスタは不揮発性メモリにも揮発性メモリにも等しくアクセスでき、しかもどちらの記憶空間もオープンとラベル付けされており、データ・アクセスに制限がないことを意味している。
【００１９】
一般に不揮発性メモリは、電源を切ったときでもデータが保持される永続記憶装置に使用される。このメモリには、ブート・コード、オペレーティング・システムやドライバなどのオペレーティング・コード、および任意の永続的データ構造を含めることができる。揮発性メモリは、セッション指向の記憶装置に使用され、通常はアプリケーション・データおよび他のマスタのデータ構造を含む。揮発性メモリは不揮発性メモリより高速なので、統合装置の動作中は、オペレーティング・コードを揮発性メモリに移動させ、そこから命令を実行するのが一般的である。
【００２０】
例えば図１に示したような典型的なシステムには、いくつかのセキュリティ・リスクがあることに留意されたい。すなわち、
１．  オペレーティング・コードまたはデータ構造を修正することによってプロセッサの挙動を制御できるので、内部データ、または動作が損なわれる可能性がある。
２．  通信コントローラといった、特定の場合には、内部マスタが外部ソースによって制御されることがあり、また、メモリが共用されているので、当該内部マスタが使用された結果内部コードまたは内部データを損傷する可能性がある。
３．  ソフトウェア開発に使用されるデバッグ・ツールおよび開発ツールを、プロセッサの挙動を修正または監視するために使用することができる。
４．  メモリが共用されているので、所与のマスタは、意図せずに他の内部マスタの動作を破壊または損傷する可能性がある。
【００２１】
上記のセキュリティ・リスクに対して本明細書で提示する解決策は、データ経路内のバス制御とスレーブ装置との間に配置されるアクセス制御機能を提供するものである。このアクセス制御機能は、（一実施形態では）機能マスタをスレーブ装置に接続している内部バスの特性を利用して、各アクセス要求を１組のセキュア制御情報に基づいてさらに制限し、また必要な場合にはそれを阻止できるようにすることができる。有利なことには、このアクセス制御機能は、マスタがデータを要求する各アクセスを区別する能力を提供し、さらにデータが格納されている場合には、次いでそれに従ってアクセスを許可または制限し、データが格納されていない場合には、そのアクセスを制限する機能を提供する。本発明の他の態様による追加のアクセス制御機能についても本明細書に記載されている。
【００２２】
図２は、一般に２００で示され、本発明の一態様によるアクセス制御機能２４０を含むシステムの一実施形態を示す。システム２００はまた、バス制御２３０を介して１つまたは複数のスレーブ２５０／２７０と通信する複数の機能マスタ２１０１、．．．、２１０ｎを含む。この場合には、アクセス制御機能２４０は、データ経路中でバス制御２３０とスレーブ２５０／２７０との間を仲介する。代替実施形態として、バス制御ユニット２３０をセキュア・メモリ・サブシステム・ユニットの外側に置くこともできる。図示のように、第１のスレーブ装置は外部バス制御装置２５０を含み、第２のスレーブ装置はメモリ制御装置２７０を含む。この状況で、バス制御ユニット、アクセス制御ユニット、外部制御装置を組合せてセキュア・メモリ・サブシステム２２０を形成する。その結果、不揮発性メモリ２６０および揮発性メモリ２８０として定義された外部アドレス空間はさらに、オープン・エリア２６２およびセキュア・エリア２６４、ならびにオープン・エリア２８２およびセキュア・エリア２８４にそれぞれ分割される。この場合「セキュア」とは、マスタ２１０１、．．．、２１０ｎがアクセス制御ユニット２４０中で定義された空間だけにアクセスできることを意味する。アクセス制御機能が、オープン・エリアおよびセキュア・エリア双方へのすべてのアクセスを制御していることに留意されたい。
【００２３】
ユニット２４０のアクセス制御機能についての詳細な説明は、上で組み込んだ「要求元マスタＩＤおよびデータ・アドレスを用いて、統合システム内のデータ・アクセスを制限する制御機能（Control Function Employing A Requesting Master ID And A Data AddressTo Qualify Data Access Within An Integrated System）」に含まれている。さらに、上で組み込んだ出願は、必要とされるデータおよびそのデータのアドレス、を要求する機能マスタのアクセス・レベルに基づいて各データ要求を制限する際の、アクセス・テーブル２４８および暗号化／復号化機能２４９の使用についても詳述している。
【００２４】
要約すると、バス制御ユニットによって制御が与えられたマスタからの要求は、要求されたアドレスおよび関連した制御（例えば、読出しまたは書込みなど）とともにアクセス制御ユニットに送られる。アクセス・テーブルは、要求されたアドレス、マスタＩＤ、ならびに読出しまたは書込みの指示を、そのマスタに許可されているアクセス機能と比較するために、アクセス制御機能によって使用される。所与の要求は、遮断（終了）されることも、平文の状態で許可されることも、あるいは暗号化／復号化付きで許可されることもあり得る。要求された転送が許可される場合には、バス信号がスレーブに伝播され、その要求に関連するアクセス・パラメータが、アクセス・テーブルに基づいて、例えば、暗号化／復号化が適用できる場合には暗号化／復号化エンジンに送られる。暗号化／復号化エンジンは、関連するアクセス・パラメータを用いてデータが所与のスレーブに転送されるときはその書込みデータを暗号化するために、あるいは所与のスレーブから返送されるときはその読出しデータを復号化するために、使用することができる。
【００２５】
要求元のマスタＩＤおよび要求のアドレスに基づいてデータ・アクセスを制限する機能に加えて、そのアクセス制御機能にセキュリティ状態マシン２４２を追加して、例えばアクセス・テーブル２４８および暗号化／復号化機能２４９の動作を制御する概念が、上で組み込んだ「複数のセキュリティ状態を有し、統合システムのセキュアな動作を容易にするための制御機能（Control Function With Multiple Security States For FacilitatingSecure Operation Of An Integrated System）」という名称の出願に記載されている。代替ブート・アドレス２４５およびマスタ・キー・セット２４６を保持するために、オン・チップの記憶装置２４３もセキュリティ状態マシン２４２と併せて使用される。この記憶装置は、全体の電源を落としたときでも値が保持されるという意味で永続的である。したがって、その値は、初期化されたあと、セキュリティ状態の変化にともなって特にリセットまたは消去されるまでは、セッションを越えて使用することができる。このことについては、後で説明する。
【００２６】
データ・アクセス制御機能のセキュリティ状態マシンは、ヌル状態やセキュア状態を含む可能な複数のセキュリティ状態のうちの１つの状態をとることができる。セキュア状態では、制御機能は、ブート・コードの要求に使用される標準ブート・コード・アドレスを代用ブート・コード・アドレスで置き換える。代用ブート・コード・アドレスは暗号化バージョンのブート・コードのアドレスを指定し、次いで制御機能が、永続記憶装置に保持されたマスタ・キー・セットを使用してそのコードを復号化する。ヌル状態のときは、そのマスタ・キー・セットは消去される。
【００２７】
上記のデータ・アクセス制御機能の他の拡張として、要求データを選択的に認証する制御機能を追加する概念が、上で組み込んだ「統合システム内で、選択的トランスペアレント・データ認証を実施する制御機能（Control Function Implementing Selective Transparent DataAuthentication Within An Integrated System）」という名称の出願に記載されている。この選択的認証は、データ要求を開始する統合装置の機能マスタにとってトランスペアレントであってもよい。要求データは、外部メモリに暗号化された形で格納されたコードまたはデータのどちらをも含むことができる。（特許請求の範囲も含めた本明細書の各所で、コードまたはデータの意味で総称的に「データ」という用語を使用していることに留意されたい。）上記のデータ・アクセス制御機能の暗号化機能により、データが直接観察または修正されることが防止されるとともに、完全性チェック機能により、暗号化された値が元々メモリに書き込まれていた値と同一であることをさらに検証するための能力が追加される。
【００２８】
一実施形態では、本発明の一態様による完全性チェック機能は、上で組み込んだ出願に記載のアクセス・テーブルおよびアクセス・パラメータと共に動作する。認証されるデータに関連するアドレス範囲は、アクセス・テーブル内の追加のパラメータによって指示できる。完全性チェック機能２４５は、要求されたデータ転送に基づき、メモリ中の完全性値の位置を確定する。また、下記のように完全性値を計算し比較する。
【００２９】
要約すると、このプロセスはプリストレージ・ステップとポストストレージ・ステップに分割できる。例えば、
プリストレージ：
セキュアである必要があり、かつ認証されるべきデータを数学的に圧縮したバージョンである、第１の完全性チェック値を生成する。
そのデータを暗号化し、第１の完全性チェック値を暗号化する。
暗号化された完全性値をメモリに格納し、暗号化されたデータをメモリに格納する。
ポストストレージ：
メモリから完全性値を取り出し復号化し、暗号化されたデータを取り出し復号化する。
第１の完全性チェック値に使用したのと同じ機能を使用して第２の完全性チェック値を生成する。
第１と第２の完全性チェック値を比較する。それらが一致した場合には、そのデータを認証する。一致しなかった場合には、データが破壊されているので訂正アクションを取る必要がある。
完全性チェック機能２４５はオプションで、以下で説明する、統合システムの拡張されたセキュア動作の概念と組合せて使用することもできる。
【００３０】
図３は典型的な統合装置で使用されるソフトウェア・レベルを表す。図示のように、装置のハードウェア３００は、その上で各ソフトウェア・レベルが動作するベースとなる。ブート・コード３１０は、装置に最初に電源が投入され、初期化データ３１２を使用して初期化機能が実施されるときに動作する。カーネル３２０は、レベル１と抽象化されているが、初期化の後でブート・コードによってコールされる。カーネル３２０は、一般的なシステム設定３２２や登録３２４を含むオペレーティング・システムのサービスおよびリソースを提供する。次いで、ミドルウェアおよびサービスの機能３３０を含む１つまたは複数のソフトウェア・レベルが順次コールされる。ミドルウェアおよびサービスの機能には、ソフトウェア・アクセス制御あるいはパスワード３３２やキー３３４とともに動作するネットワーク・サービス、ファイル管理、メディア・ハンドリングなどがある。アプリケーション・ソフトウェア３４０は、ミドルウェアおよびサービスのソフトウェア・レベル３３０の上に存在し、個人情報３４２などのユーザ・データおよび他のコンテンツ３４４とともに動作する。
【００３１】
図３は、統合装置またはシステムにセキュリティを提供する際の、１つの課題を示している。一般的な法則として、ソフトウェアのレベルが、ベースとなるハードウェアに近づけば近づくほど、ソフトウェアはそれだけセキュアになり信頼性が高くなる。しかし一方、ソフトウェアのレベルが、アプリケーションなどのようにユーザに近づけば近づくほど、それだけデータの価値が高まる。その結果、最もセキュアでないソフトウェアが最も価値のあるデータを保護することになる。
【００３２】
図４は、統合システムにセキュリティを提供する方法を示す。ハードウェア（４００）から始めて、各ソフトウェア・レベルは、すぐ下のレベルによって認証される。ブート・コード（４１０）の場合は、上で組み込んだ出願に定義されているように、復号およびマスタ・キー・セットをハードウェアで使用して認証され、その際ブート・コード（または初期化コード）は外部メモリに暗号化された形で格納される。また認証の後で、かつ次のソフトウェア・レベル（４２０，４３０，４４０など）に制御を渡す前に、先行の各レベルは、次レベルがシステムを制御または修正する能力を制限することもできる。したがって、各レベルがロードされるとき、各レベルは検証され、システムのセキュリティに影響を与える能力がさらに制限されることがある。
【００３３】
図５は、例えば図２で説明したような統合システムの状況で、図４に示した方法を実装した例を示す。より詳細には、この実装は、先に述べた、上で組み込んだ出願に記載のアクセス制御機能を使用して行われる。ブート・コード（４００）は、上記のようにハードウェアによって認証され、したがって最も信頼できるソフトウェア・レベルであると考えられる。ブート・コードは、復号化で使用されるキー・セットと、アドレスがどのように変換されるかを定義するアドレス・テーブルと、マスタＩＤおよびアドレス範囲に基づいて可能なトランザクションを指定するアクセス・レベルと、更に、要求がどのように処理されるかを定義したアクセス・パラメータと、を含むアクセス制御機能を完全に構成することができる。この場合も、これらの情報はすべて上記のアクセス制御機能によって維持される。
【００３４】
次のソフトウェア・レベル、すなわちレベル１（４１０）に制御を渡す前に、この例では、ブート・コードは、キー値をソフトウェアから直接には見えなくなるようにするために、それらキー値を隠蔽し、また、（どちらもアクセス・テーブルに含まれる）アドレス・テーブルおよびアクセス・レベル・エントリが、次ソフトウェア・レベルによって修正できないようにするために、それらをロックする。しかしこの例では、アクセス・パラメータは、この次レベルにおいてもやはり更新されることがあり得る。隠蔽はハードウェアで読出しアクセスを阻止することによって達成でき、ロックはハードウェアで書込みアクセスを阻止することによって達成できることに留意されたい。アクセス制御ユニットのレジスタへのアクセスを制御（またはロック）するのに、複数の方法があることを当業者は理解されよう。例えば、特権命令を使用すること、そのレジスタをオン・チップのプライベート・バスだけに接続すること、そのレジスタをメモリマッピングしアクセス制御ユニットの既存の設定を使用してそのレジスタへのアクセスを制限することなどである。
【００３５】
図示のように、最も信頼度の低いソフトウェア・レベル４４０に制御を渡す前に、アクセス制御機能の末尾に図示されている動作特性、すなわちアクセス・パラメータ、を修正できないようにロックする。
【００３６】
図６は、コンピュータ・システムの形に組み立てられた統合装置のセキュアな動作環境を初期化するプロセスの一実施形態を示す。図示のように、統合装置はより大きなシステムの形に組み立てられ（６０５）、電源が投入される（６１０）。全体システムまたはコンピュータ環境は、システム製造業者に関連する物理的にセキュアな環境（６００）に移され、その環境で統合装置はセキュアな動作用に構成される。詳細には、セキュリティ・モードに進み（６１２）、秘密キーを生成し（６１５）、そのキーおよび代用ブート・アドレスを装置のデータ・アクセス制御機能に関連する永続記憶装置にロードする（６２０）。秘密キーは、メーカから提供することもできるし、統合装置自体で生成することもできることに留意されたい。後者の場合は、好ましくはキーは第三者の所で保持する。
【００３７】
次に、図７および８に関して以下で説明するように、揮発性メモリに書き込まれたデータをマスタ・キー・セットを用いて暗号化し、ホワイトニングのために不揮発性メモリのアドレスを使用するようにアクセス・テーブルが構成される（６２５）。揮発性メモリから読み込まれたデータは暗号化処理が行われず、そのままの状態である。アクセス・テーブルはまた、不揮発性メモリに書き込まれたデータが変更されないように構成される。
【００３８】
次に、ブート・コードがデバッグ・インタフェースによってロードされ（図７および８参照）、そのデータは、揮発性メモリに書き込まれるときに、データ・アクセス制御機能によってマスタ・キー・セットを使用して暗号化される（６３０）。次いでこのコードは、以下で詳細に説明するように、揮発性メモリから不揮発性メモリに復号化せずにコピーされる（６３５）。最後に統合装置は、上で組み込んだ出願に記載のように、セキュア・モード用に構成される（６４０）。この処理の結果、個々の統合システムについて暗号化が一意になることに留意されたい。
【００３９】
この時点で、コンピュータ・システムはセキュアな物理位置（６００）から移動させることができる。次にシステムは、ロードされたセキュアなブート・コードを使用してリブートされる（６４５）。そのシステムは、必要ならば追加のコードを、自己生成したキー値による暗号化を使用してセキュアな方法でロードすることができる（６５０）。図６のプロセスの最終ステップは、そのコンピュータ・システムを試験し出荷することである（６５５）。
【００４０】
図７は、図６の処理（６３０）を図示したものである。（図７および後続のいくつかの図面は、図２の統合システムを簡略化した図であり、見やすいようにバス制御要素およびスレーブ要素が省略されていることに留意されたい。）図示のように、デバッグ・インタフェースまたは統合開発環境（ＩＤＥ）を使用して、暗号化されていないブート・コードをセキュアな動作用に構成された統合装置にロードすることができる。統合装置（２００）は、アクセス制御機能（２４０）の永続記憶装置（２４３）に記憶された内部マスタ・キーを使用してブート・コードを暗号化し（２４９）、暗号化したブート・コード（７００）を揮発性メモリ（２８０）の定義された位置に書き込む。暗号化されたブート・コードは、まず揮発性メモリに書き込まれることに留意されたい。その理由は、フラッシュ・メモリなどの不揮発性メモリは、所与のデータ値を書き込むのに複数の動作を必要とし、したがって１つのブロック動作として実施できないからである。暗号化されたブート・コード（７００）は、後に外部メモリの他の位置にコピーされるので、暗号化動作に関するアクセス・テーブル（２４８）のエントリは、ホワイトニング用の値として不揮発メモリ内の最終的なアドレス位置を使用するように構成される。ホワイトニングについては、上で組み込んだ出願の１つまたは複数に詳細に記載されている。
【００４１】
図８は、暗号化されたブート・コードを、例えばプロセッサ（２１０１）によって、揮発性メモリから不揮発性メモリ（２６０）にコピーするためのプロセス（６３５）を示す。ブート・コードは、マスタ・キー・セット及びホワイトニング用の不揮発性メモリ・アドレスですでに暗号化されているので、ブート・コードはいかなる暗号変換も必要とせず、復号化されずに不揮発メモリに直接コピーされる。
【００４２】
図９は、本発明の一態様による、ある初期化プロセスの流れ図を示す。ブート手順（８００）から開始し、統合装置の電源を投入し（８０５）、ブート要求を発行する。この要求は、データ・アクセス制御機能によって代用ブート・アドレスを使用してリダイレクトされる（８１０）。メモリからフェッチされた暗号化コードは、データ・アクセス制御機能によってマスタ・キー・セットを使用して復号化される（８１５）。実行される最初の各命令の中で、更新されたブート・コード・イメージが使用可能かどうかが検査される（８２０）。この検査は、ブート手順自体の動作中に実施する必要がある。その理由は、他のどのソフトウェア・レベルもブート・コードの変更を許可されていないからである。
【００４３】
更新がない場合には、ブート・コードは、開始している所与のセッションで使用されるランタイム・キーを生成する（８２５）。使用しなければならない、以前のセッションからのデータ構造がある場合には、ブート・コードは、以前のセッションによって格納された暗号化されたキー値を取り出すこともできる。次にブート・コードは、メモリ中のソフトウェア・イメージを数学的に処理して一意のダイジェストまたはハッシュ値に到達し、次いでその結果を予想値と比較する確立された技術を使用して次のソフトウェア・レベルを認証する（８３０）。この処理は、セキュアなブート・コードを使用してソフトウェアで実施できる。認証に加えて、このブート・コードは、次ソフトウェア・レベルがアクセス制御機能に関するセキュリティ設定および動作特性を修正する能力を制限し、さらには観察する能力さえも制限することができる。認証、およびセキュリティ機能のロックが完了した状態で、制御は次のソフトウェア・レベルに渡される（８３５）。このレベルが最終レベルの場合には（８４０）、ソフトウェアをロードするプロセスが完了し、装置のセキュア動作を開始することができる（８４５）。追加のレベルがある場合には、次のレベルを認証するタスク、およびオプションでセキュリティ機能をロックするタスクが再度実行され、すべてのレベルがロードされるまでループが継続する。
【００４４】
ブート・コードの更新がある場合には、照会（８２０）の後にブート更新手順に従う（８５０）。まず、現ブート・コード（すなわち、装置に最初に電源が投入されたとき動作していたコード）を使用して新ブート・コード・イメージを認証し、復号化する（８５５）。新イメージは、統合装置が内部で使用する暗号化形式とは異なる形式でシステムに転送しておくことができることに留意されたい。その場合、ブート・コードがソフトウェアで復号化ステップを実施する。次に、動作中のブート・コードは、アクセス制御機能を使用してその統合装置のマスタ・キー・セットで新コードを暗号化し、システムが最初に組み立てられたときと同じ方法で新ブート・コードをメモリに書き込む（８６０）。しかし、その手順の途中にシステムが不意に中断された場合でも、動作中のブート・コードがメモリ中に完全な形で存在し動作できるように、新ブート・コード・イメージは動作中のブート・コードとは別の場所に書き込まれる。新ブート・コード・イメージが完全に認証され不揮発性メモリに書き込まれた後、動作中のブート・コードは、代用ブート・アドレスを、新ブート・コード・イメージを指し示すように更新する（８６５）。更新が完了したあと、システムを再スタートし（８７０）、ブート手続きの最初に戻る（８００）。このプロセスの拡張では、上位のセキュリティ特権を有するソフトウェア・レベルによって、必要に応じてブート・コードまたは初期化コード以外の、１つまたは複数コード・レベルを追加することができる。例えば、ブート・コードを使用してカーネルを更新することができる。
【００４５】
ブート更新手続き（８５０）の拡張として、新バージョン番号を新ブート・コード・イメージに関連付けることができる（８６０）。そのためには、上で組み込んだ出願の１つまたは複数に記載したように、データ・アクセス制御機能に関連するオン・チップの永続メモリに記憶された値にバージョン番号パラメータを追加する必要がある。この場合にも、バージョン番号を使用して、最初の命令の復号化の一環としてホワイトニング手順を実施する。ブート・コード・イメージにバージョン番号を含める利点は、アタッカが旧ブート・コード・イメージを単にコピーし再実行することによってそれを再使用することを防止することである。
【００４６】
図１０は、図９のブート処理を使用して起動された統合システム内部の処理を示す。統合装置の主電源が投入されたとき、プロセッサ（２１０１）の最初のアクションは既定のアドレスのデータ（ブート・コード）を要求することである。この外部データ要求は、データ・アクセス制御機能（２４０）に渡され、その機能により、アドレスに基づいてその要求がブート・コード要求であると識別され、そのアドレスのすべてまたは一部が、その制御機能の永続記憶装置（２４３）に含まれる代用ブート・アドレスで置き換えられる。次いで、修正された要求は外部メモリ（２６０）まで進む。代用ブート・アドレスは、マスタ・キー・セットを使用して先に暗号化されたコードを含むメモリの区分を指し示すように定義されている。この暗号化されたコード（７１０）は、不揮発性メモリ（２６０）のセキュア領域に在る。暗号化されたコードは、戻されたデータを、代用ブート・アドレスに基づいて、マスタ・キー・セットを使用して復号化するように構成されたアクセス制御ユニットに戻される。次に、復号化された（セキュアな）ブート・コードは、実行のためにプロセッサに戻される。上記のステップは、プロセッサがブート・コード・シーケンスを実行するときに繰り返される。
【００４７】
図１１は、統合システムの動作中にコード更新を受け入れるためのプロセスを示す。この更新チェック手順（１０００）は、セキュアな動作モード（１００５）で動作中のシステムで始まる。内部の周期的トリガ（internal periodic time trigger）や外部通知などの条件イベントに基づき、システムは、チェック（１０１０）を実施して更新が使用可能かどうか（１０１５）を調べる。「Ｎｏ」の場合は、統合システムは前のセキュアな動作状態に戻り続行する。更新が使用可能な場合は、当業界で確立されたセキュアなネットワーク・プロトコルを使用して更新をダウンロードすることができる（１０２０）。あるいは、更新を固定メディアから読み込むこともできる。次いで、要求された更新を行う許可を現ソフトウェア・レベルが受けているかどうかが判断される（１０２５）。上記のように、所与のソフトウェア・レベルは、同等またはより高い権限レベルのソフトウェアによってのみ認証され得る。
【００４８】
現ソフトウェア・レベルが更新を行う許可を受けていない場合は、そのソフトウェアは更新が可能であるとマークし、ソフトウェア・レベルが統合装置の制御における次レベルであるとき、その適切なソフトウェア・レベルによって使用できるようにその更新を記憶する。通常この場合は、更新が次セッションでも可能であるように、不揮発性メモリに記憶する必要があることに留意されたい。
【００４９】
現ソフトウェア・レベルが許可を受けている場合には、更新手順（１０５０）に従う。この手順は、ブート・コードの更新に関して前述したプロセスを使用して更新を認証し復号化することを含む。しかし、更新をマスタ・キー・セットで暗号化する必要はない。その代わりとして、ランタイム・キーが使用できる。また、更新のバージョン番号は、ブート・コードによってロードされるので、必ずしもオン・チップの永続メモリに格納する必要はなく、暗号化し外部のセキュア・メモリに格納することができる（１０６０）。次に、システムの初期化中に更新されたコードをロードするに先立ち、検証する際に使用される認証値が更新される。
【００５０】
図１２は、キーを管理し、必要に応じてキーを更新するプロセスを示す。一般に、このプロセスでは、ある暗号化形式から別の暗号化形式へ移行させる手段としてデータ・アクセス制御機能を使用する。
【００５１】
１つのデータ・ブロック上で秘密キーを使用し過ぎると、暗号解読に使用し得るサンプルの数が増加する。したがって、秘密キーを保護するためには、そのキーを使用するサンプルの数を制限する必要がある。その限度は、アタッカが使用できる分析のタイプ、ならびに使用される暗号化アルゴリズム、キー、および物理的シールドの強度に依存する。現在の技術では、１つのデータ・ブロック上で秘密キーが使用された回数を正確にカウントすることは非現実的である。このカウントの正確な近似としては、キー・セットごとに一定の記憶量を必要とすることにもなるが、各キー・セットごとの書込み動作の数を記録するカウンタを使用することもある。ただし、そのカウント値は、生成されたサンプル固有の数より大きいかまたは等しくなる。効率の劣る近似として、読出し動作および書込み動作の両方をカウントすることもできるが、この場合にカウント閾値を増加できることを意味している訳ではない。
【００５２】
キー管理手順（１１００）に示したように、（ブート手順に関連して上述したような）ランタイム・キーが生成されて、単一のセッション中に、またはセッションを越えて、使用される（１１０５）。同時に、キー使用カウンタが所与の閾値で初期化される。このカウンタはソフトウェアで実装することもできるが、より有利には、アクセス制御機能の一部としてハードウェアで実装される。その理由は、カウンタの駆動に必要な情報が使用できるからである。さらに、セッション間でカウント値が維持されるように、すなわちソフトウェアを使用して、システムの電源が切断されるときに結果を取り込み、それを暗号化し、その結果を格納し、次いでシステムが再起動されるときにそのカウント値がロードされるように、そのカウンタをオン・チップの永続記憶装置に関連付けることもできる。
【００５３】
制御は、オプションで次ソフトウェア・レベルに渡される（１１１０）。あるいは、現ソフトウェア・レベルを継続し、そのキーを直接使用することもできることに留意されたい。キー使用カウンタは、暗号化されたデータを書き込むためにキーが使用されるたびにインクリメント（増分）される（１１２０）。オプションで読出しイベントの監視を使用することもできるが、書込みイベントに追加して使用されるだけであり、その代わりに使用できる訳ではない。
【００５４】
ある時点で、キー使用カウンタが閾値を超える（１１２５）。このイベントが発生したとき、最初にそのキーが生成されたときと同じソフトウェア・レベルが動作している場合には、キー更新手順（１１５０）がコールされる（１１３０）。現ソフトウェア・レベルが異なっている場合には、システムは当初キーを生成したソフトウェア・レベルに戻り、そのレベルからキー更新手順をコールする（１１３５）。
【００５５】
キー更新手順（１１５０）では、あるキー・セットから別のキー・セットへの移行を容易にするためにアクセス制御機能を使用する。旧キー・セットを使用して復号化される移行すべきデータの現位置を定義し、新キー・セットを用いて暗号化されるそのデータの新位置を定義するために、アクセス制御機能のアクセス・テーブルがまず修正される（１１５５）。アクセス・テーブルを使用してアドレス変換が実施できるので、統合システムの内部マスタは現データ位置と新データ位置をメモリ中の別々のアドレス範囲として認識できるが、一方アドレス変換後の外部要求では、両方の位置が同じアドレス範囲になるように定義できることに留意されたい。このことにより、所与のブロックを現在存在する位置から読み出し、次いで同じ位置に書き戻すことが可能になる。
【００５６】
次に、新アクセス・テーブル定義を使用して、データを現位置から読み出し、新キー・セットでそのデータを実際に再暗号化するとともに新位置に書き込む（１１６０）。次いで、新キー・セットを用いた暗号化および復号化のための新位置が定義され（１１６５）、旧キー・セットおよび関連するデータ位置への参照がすべて削除される（１１７０）ようにアクセス・テーブルが再度修正される。
【００５７】
図１３〜１５は、外部ソースによって提供されるデータを、ある暗号化形式から別の暗号化形式に移行させるための関連技術を示す。この場合、外部の暗号化形式は、内部の暗号化方法と異なるアルゴリズムおよびキー・セットであってもよい。図１３に示したように、外部のソースから外部のアルゴリズムで暗号化されたデータが、この場合は通信ポート（１２００）を介して受信される。アクセス制御機能（２４０）は、この外部データを外部メモリ（２８０）に直接、修正なしで格納するように定義されている。次に、図１４に示したように、プロセッサ（２１０１）は、外部データをブロック単位でそのキャッシュに読み込み、復号化用のソフトウェアを使用して所与のブロックを復号化する。復号化した後、図１５に示したように、クリア・ブロックを外部メモリ（２８０）に書き込む。また一方、アクセス制御機能は、内部のアルゴリズムおよびキー・セットを使用してそのデータを暗号化するように構成されている。この処理の結果、外部から受信したデータはすべて、一意であってかつこの唯一の統合装置によって制御される暗号化形式に変換される。このことにより、アクセス制御機能のハードウェア加速を利用しながら、暗号化されたデータのセキュリティを維持するという利点が提供されることになる。
【００５８】
図１６は、上で組み込んだ１つまたは複数の出願に記載したように、統合システムがフィールドで使用され、改ざんイベントによりセキュア状態からヌル状態へのシステムの遷移がトリガされた後で、統合システムのセキュア動作を回復するために使用されるプロセスの一実施形態を示す。図示のように、トリガ後のブート手順（１３００）によると、改ざんイベント後に統合システムに電源が投入されても（１３０５）、ブート要求はもはやリダイレクトされない（１３１０）。標準のブート・アドレスから、暗号化されていないコードが起動されてシステムを初期化する（１３１５）。初期化されたシステムは、もはやセキュアなデータまたはアプリケーションにアクセスできない縮小機能レベルで動作する（１３２５）。あるいは、元の統合システムの機能を回復させるよう試みることもできる（１３２０）。
【００５９】
統合システムの所有者が完全回復を図る選択をした場合には、その統合システムをセキュアな物理位置（１３５０）を備えた正規サービス・センタに持ち込む。そのサービス・センタでは、デバッグ・ツール（図７参照）を使用して、暗号化されていない初期化コードをロードする（１３５５）。このコードは、回復ブート・コードを含み、さらにメーカの公開キーも含む。
【００６０】
次に、初期化コードを実行するために統合システムを再起動する。初期化コードは、まず新マスタ・キー・セットを生成し、次いでそのマスタ・キー・セットをデータ・アクセス制御機能に関連するオン・チップの永続記憶装置に書き込む（１３６０）。次に、上で図７に絡めて説明したように、そのマスタ・キー・セットを使用して回復ブート・コードを暗号化するようにアクセス制御機能が構成される。新ブート・コード位置は代用ブート・アドレス・フィールドに書き込まれる。次にブート・コードは、内部で公開／秘密キー・ペアを生成し、秘密キーを不揮発性メモリ内にセキュアに格納する。生成された公開キーは（以前に初期化コードとともに提供された）製造業者の公開キーを使用して暗号化され、サービス・センタに戻され、次いでサービス・センタはそのキーを製造業者に転送する（１３６５）。この時点で、統合システムはセキュアな物理位置から移動させることができる（１３５０）。
【００６１】
システムが再起動され、回復ブート・コードが実行される（１３７０）。初期化されたシステムは、製造業者へのセキュアなネットワーク接続を確立し（１３７５）、次いで既知の技術を使用して、システムの元の機能を再構築するために必要なデータおよびコードをダウンロードし、統合システムにインストールすることができる（１３８０）。
【００６２】
要約すると、本明細書には統合システム内でセキュアな動作を初期化し、維持し、更新し、かつ回復するための方法、システム、およびコンピュータ・プログラムが記載されている。これらの技術は、統合システム内のデータ・アクセス制御機能を使用する。システムおよびコンピュータ・プログラムは、概して下記のように要約される。
【００６３】
本発明の一態様では、複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にするシステムが提供される。このシステムは、統合システムの制御を次ソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次のソフトウェア・レベルを現ソフトウェア・レベルによって認証する手段を含む。統合システムの動作特性を次ソフトウェア・レベルが修正する能力を制限する手段を含むデータ・アクセス制御装置もまた提供される。
【００６４】
他の態様では、統合システムのセキュアな動作を初期化するためのシステムも提供される。このシステムは、統合システム用の少なくとも１つのキーを生成する手段、および統合システム内のデータ・アクセス制御機能を含む。データ・アクセス制御機能は、統合システム内で初期コードを受信し、その初期コードを少なくとも１つのキーを用いて暗号化する。初期化システムはさらに、暗号化された初期コードを使用して統合システムを再初期化する手段も含む。
【００６５】
第１のキー・セットを使用して暗号化されたデータを第２のキー・セットを使用して暗号化されたデータに移行させるためのシステムもさらに提供される。このシステムは、第１のキー・セットを使用して暗号化されたデータを統合システム内で復号化する手段と、第２のキー・セットを使用してそのデータを再暗号化する手段を含んだ、統合システム内データ・アクセス制御機能とを含む。
【００６６】
他の態様における、トリガ・イベントに続いて統合システムの機能を回復させるためのシステムが本明細書に記載されている。このシステムは、統合システム内で自動的に機能レベルを縮小する手段、および指定された回復手順を選択的に使用することによって統合システムの全機能回復を可能にする手段を含む。
【００６７】
他の態様では、複数のソフトウェア・レベルを有する統合システムのセキュアな動作を容易にする方法を実施するための、マシン実行可能な命令からなる少なくとも１つのプログラムを有形に実施する、マシン可読の少なくとも１つのプログラム記憶装置が提供される。この方法は、統合システムの制御を次のソフトウェア・レベルに渡す前に、複数のソフトウェア・レベルのうちの次ソフトウェア・レベルを現ソフトウェア・レベルによって認証するステップ、および次ソフトウェア・レベルが統合システムの動作特性を修正する能力を、統合システムのデータ・アクセス制御機能によって制限するステップを含む。
【００６８】
他の態様では、統合システムのセキュアな動作を初期化する方法を実施するための、マシン実行可能な命令からなる少なくとも１つのプログラムを有形に実施する、マシン可読の少なくとも１つのプログラム記憶装置が提供される。この方法は、統合システム用の少なくとも１つのキーを生成するステップ、少なくとも１つのキーを使用して、統合システムのデータ・アクセス制御機能によって暗号化された初期コードを統合システムにロードするステップ、およびその暗号化された初期コードを使用して統合システムを再初期化するステップを含む。
【００６９】
他の態様では、第１のキー・セットを使用して暗号化されたデータを第２のキー・セットを使用して暗号化されたデータに移行させる方法を実施するための、マシン実行可能な命令からなる少なくとも１つのプログラムを有形に実施する、マシン可読の少なくとも１つのプログラム記憶装置が提供される。この方法は、第１のキー・セットを使用して暗号化されたデータを復号化するステップ、および第２のキー・セットを使用して、統合システム内のデータ・アクセス制御機能によってそのデータを再暗号化するステップを含む。
【００７０】
他の態様では、トリガ・イベントに続いて統合システムの機能を回復させる方法を実施するための、マシン実行可能な命令からなる少なくとも１つのプログラムを有形に実施する、マシン可読の少なくとも１つのプログラム記憶装置が提供される。この方法は、統合システム内で自動的に機能レベルを縮小するステップ、および選択的回復手順を使用して統合システムの全機能回復を可能にするステップを含む。
【００７１】
当業者なら、上記の議論から本発明を例えばコンピュータ使用可能の媒体を有する製品（例えば、１つまたは複数のコンピュータ・プログラム製品）に含めることができることに気づくであろう。この媒体は、例えば本発明の機能を提供しかつその機能を容易にするコンピュータ可読のプログラム・コード手段をその上で実施したものである。この製品は、コンピュータ・システムの一部に含めること、または単独で販売することができる。
【００７２】
さらに、本発明の機能を実施するための、マシン実行可能な命令からなる少なくとも１つのプログラムを有形に実施する、マシン可読の少なくとも１つのプログラム記憶装置を提供することもできる。
【００７３】
本明細書で示した流れ図は例示に過ぎない。そこで示したこれら各流れ図または諸ステップ（もしくは諸動作）には、本発明の趣旨を逸脱することなく多数の変形形態が存在し得る。例えば、各ステップを異なる順序で実施すること、あるいはステップを追加、削除または修正することもできる。これらの変形形態はすべて特許請求の範囲に記載した本発明の一部と見なされる。
【００７４】
本明細書において、好ましい実施形態を詳細に図示し説明してきた。当業者にとって、本発明の趣旨を逸脱することなく様々な修正、追加、代用などを実施し得ることは明らかであろう。したがって、それらは添付の特許請求の範囲で定義した本発明の範囲に含まれるものと見なされる。
【産業上の利用可能性】
【００７５】
本発明は、処理し移行する前に暗号化する必要がある機密データを処理するセキュアな統合システムに広範に適用できる。
【図面の簡単な説明】
【００７６】
【図１】メモリ・サブシステムを介して共通メモリ・アクセスを採用する代表的な統合装置の一例を示す図である。
【図２】本発明の一態様による、統合装置のセキュアなメモリ・サブシステム内に実装されるアクセス制御機能の一実施形態を示す図である。
【図３】本発明の一態様による、本明細書に記載のセキュアな動作技術によって認識され対処される問題を示す図である。
【図４】本発明の一態様による、複数のソフトウェア・レベルを有する統合装置のセキュアな動作を容易にする技術の一実施形態を示す図である。
【図５】本発明の一態様による、図４の技術を統合システムのデータ・アクセス制御機能に関連するアクセス・テーブルに適用するプロセスの一実施形態を示す図である。
【図６】本発明の一態様による、統合システムにコードをロードするプロセスの一実施形態を示す図である。
【図７】本発明の一態様による、統合システムに暗号化されたブート・コードを最初に格納するプロセスの一例を示す図である。
【図８】本発明の一態様による、図７のプロセスによって格納された暗号化されたコードを揮発性メモリから不揮発性メモリにコピーするプロセスの一例を示す図である。
【図９】本発明の一態様による、各ソフトウェア・レベルを認証し各ソフトウェア・レベル間で制御を渡すとともに、ブート・コードの更新が使用可能なときはブート・コードを更新するプロセスの一実施形態を示す図である。
【図１０】本発明の一態様による、セキュアな状態でアクセス制御機能によって統合システムの各コンポーネントに渡される初期化信号の一実施形態を示す図である。
【図１１】本発明の一態様による、複数のソフトウェア・レベルを有する統合システム内でソフトウェア・レベルをセキュアに更新するプロセスの一実施形態を示す図である。
【図１２】本発明の一態様による、統合システムのデータ・アクセス制御機能によって使用されるキー・セットを管理し更新するプロセスの一実施形態を示す図である。
【図１３】本発明の一態様による、暗号化されたデータを統合システム内で受信して格納するプロセスの一実施形態を示す図である。
【図１４】本発明の一態様による、図１３で格納した暗号化されたデータを取り出し、セキュアなコードを使用してソフトウェアの形でそのデータを復号化するプロセスの一実施形態を示す図である。
【図１５】本発明の一態様による、復号化されたデータをアクセス制御ハードウェアを使用して再暗号化してセキュアなメモリに格納するプロセスの一実施形態を示す図である。
【図１６】本発明の一態様による、統合システムのコンピューティング環境内で発生する改ざんトリガ・イベントに続いて統合回路機能を回復するプロセスの一実施形態を示す図である。
【図１】
2005523537.tif 000003
【図２】
2005523537.tif 000004
【図３】
2005523537.tif 000005
【図４】
2005523537.tif 000006
【図５】
2005523537.tif 000007
【図６】
2005523537.tif 000008
【図７】
2005523537.tif 000009
【図８】
2005523537.tif 000010
【図９】
2005523537.tif 000011
【図１０】
2005523537.tif 000012
【図１１】
2005523537.tif 000013
【図１２】
2005523537.tif 000014
【図１３】
2005523537.tif 000015
【図１４】
2005523537.tif 000016
【図１５】
2005523537.tif 000017
【図１６】
2005523537.tif 000018
【国際調査報告】
2005523537.tif 000019
2005523537.tif 000020
2005523537.tif 000021