(57)【要約】【課題】CPUが悪意を持った攻撃者によって制御可能な状態におかれた場合でも、メモリの所定の領域を保護することができるメモリコントローラを提供する。【解決手段】メモリコントローラ１は、実行されるアプリケーションプログラムに対応する予め決められたシナリオが記憶されているシナリオ記憶部１１と、メモリ１１２ａの所定の領域をシナリオに従ってアクセスされる記憶領域２１に設定する制御部１２とを有する。【選択図】図３
2010267135.tif 000002
【特許請求の範囲】
【請求項１】
メモリへのデータの書き込み、あるいは、前記メモリからの前記データの読み出しアクセスを管理するメモリコントローラであって、
実行されるアプリケーションプログラムに対応する予め決められた処理シーケンスが記憶されている処理シーケンス記憶部と、
前記メモリの所定の領域を前記処理シーケンスに従ってアクセスされる保護領域に設定する制御部と、
を有することを特徴とするメモリコントローラ。
【請求項２】
前記制御部は、前記予め決められた処理シーケンスに基づいて、前記保護領域にアクセスする複数の処理ブロックに対するアクセス権の管理を行うことを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記処理シーケンスに基づいてアクセス権が与えられる前記複数の処理ブロックの識別子が設定される処理ブロック設定部をさらに有し、
前記保護領域にアクセスする前記複数の処理ブロックはそれぞれ異なる識別子で管理され、
前記制御部は、アクセスの要求があった前記処理ブロックの前記識別子と、前記処理シーケンスに基づいてアクセス権が与えられた前記処理ブロックの前記識別子とを比較し、前記処理ブロックからのアクセスが許可するか否かを判定することを特徴とする請求項２のメモリコントローラ。
【請求項４】
前記制御部は、前記判定の結果、前記処理ブロックからのアクセスが許可されてないと判定された場合、例外を発生することを特徴とする請求項３に記載のメモリコントローラ。
【請求項５】
前記実行されるアプリケーションプログラムが複数ある場合、前記複数のアプリケーションプログラムのそれぞれに対応する前記処理シーケンスを前記シナリオ記憶部に記憶することができることを特徴とする請求項１から４のいずれか１項に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラに関し、特に、予め決められた処理シーケンスにより保護領域に対するアクセスの管理を行うメモリコントローラに関する。
【背景技術】
【０００２】
従来、DVDディスク等のメディアを用いて販売される映像コンテンツ、即ち、デジタルコンテンツは、複製データを容易に作成できないように、コピープロテクション、即ち、暗号化が施されている。近年では、デジタルコンテンツはメディアによる流通のみではなく、インターネットを通じたダウンロードサービスでも活発に流通するようになっている。
【０００３】
このようなデジタルコンテンツの処理を行うコンシューマエレクトロニクスデバイスは、例えば、携帯端末、パーソナルコンピュータ、DVDレコーダ等がある。コンシューマエレクトロニクスデバイスは、コピープロテクションが施されたデジタルコンテンツを再生する際、コピープロテクションを解除した後、デジタルコンテンツの再生を行う。そのため、コンシューマエレクトロニクスデバイスの設計においては、そのコピープロテクションを解除するために必要な情報が悪意を持つ攻撃者によって暴露される事態は最も憂慮されることである。そのため、攻撃に対する耐性、即ち、耐タンパ性を合理的な範囲内においてシステムに実装することは、コンシューマエレクトロニクスデバイス開発における中心的課題の１つである。
【０００４】
例えば、情報の暗号化機能を有さない外部メモリについて、保護対象情報を扱えるようにするセキュリティアダプタが提案されている（例えば、特許文献１参照）。しかしながら、この提案されているセキュリティアダプタは、外部メモリについては考慮されているが、主メモリについては考慮されていない。
【０００５】
一般的なシステムでは、CPU上で動作するアプリケーションは、映像コンテンツの再生においてコピープロテクションが施された映像コンテンツの一部のデータをDVD ディスク等から読み出し、主メモリに書き込む。その後、アプリケーションは、主メモリからコピープロテクションが施されたデータを読み出し、暗号処理部にそのデータの復号を依頼し、その復号結果を映像音声処理部に転送し、再生処理を行う。このような再生処理を行う場合、CPUは暗号処理部の内部資源にアクセスすることが許可されていない。更に、暗号処理部には、デバッグ用のインターフェイスを実装することも許可されていない。このようなシステム構成をとることによって、コピープロテクションが施されているデータを、悪意を持つ攻撃者から守ることができる。
【０００６】
しかしながら、このシステムには重大な欠点が存在する。仮にCPUが悪意を持った攻撃者によって制御可能な状態におかれた場合、このシステムはコピープロテクションを解除する装置として悪用される可能性がある。近年、インターネット上の個人売買によって、従来は特定のプログラマのみが使用していたプロフェッショナルツール、例えばインサーキットエミュレータ等を容易にかつ安価で入手できるようになった。従って、CPUのセキュリティについても、コンシューマエレクトロニクスデバイス開発者は注意を払わなければならない。
【０００７】
CPUのセキュリティを確保するためには、CPUが実行する命令を難読化する、あるいは、主メモリ上に暗号処理部が出力したコピープロテクション解除後のデータを難読化する必要がある。後者については、暗号処理部によってコピープロテクションを解除され主メモリに出力されたデータについて、再暗号化を施す以外には有効な保護手段は存在しない。
【０００８】
CPUに限らず別の処理ブロック、上記の例では映像音声処理部に専用の暗号処理回路が主メモリにアクセスできれば、汎用性に富んだシステム構成といえる。このような構成の場合、主メモリへのアクセスは増えるが、システムの構成はシンプルになり、LSIに内蔵させるローカルメモリの総量を抑制でき、LSIの単価の増大を防ぐことができる。しかし、暗号処理部がコピープロテクションを解除したデータを主メモリに出力する際に再暗号化を行うということは、そのデータを処理する別の処理ブロックに専用の暗号処理回路を搭載することを必要とする。このように専用の暗号処理回路を搭載すると、LSIのデータ処理性能の低下、回路規模の増大及び消費電力の増加を招いてしまう。そのため、データを処理する別の処理ブロックに専用の暗号処理回路を搭載するは、現実的でない。よって、従来、CPUが悪意を持った攻撃者によって制御可能な状態におかれた場合、メモリ保護ができないという問題があった。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４００９３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、CPUが悪意を持った攻撃者によって制御可能な状態におかれた場合でも、メモリの所定の領域を保護することができるメモリコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、メモリへのデータの書き込み、あるいは、前記メモリからの前記データの読み出しアクセスを管理するメモリコントローラであって、実行されるアプリケーションプログラムに対応する予め決められた処理シーケンスが記憶されている処理シーケンス記憶部と、前記メモリの所定の領域を前記処理シーケンスに従ってアクセスされる保護領域に設定する制御部とを有することを特徴とするメモリコントローラを提供することができる。
【発明の効果】
【００１２】
本発明のメモリコントローラによれば、CPUが悪意を持った攻撃者によって制御可能な状態におかれた場合でも、メモリの所定の領域を保護することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係るコンシューマエレクトロニクデバイスのシステム構成を説明するための説明図である。
【図２】LSIの詳細な構成を説明するための説明図である。
【図３】メモリコントローラの詳細な構成を説明するための説明図である。
【図４】シナリオ及び保護領域の設定処理を説明するための説明図である。
【図５】ATAコントローラによるコンテンツ読み込み処理を説明するための説明図である。
【図６】暗号処理部による暗号文データの読み出し処理を説明するための説明図である。
【図７】暗号処理部による平文データの書き込み処理を説明するための説明図である。
【図８】映像音声処理部によるデコード処理を説明するための説明図である。
【図９】アクセス違反があった場合の処理を説明するための説明図である。
【図１０】シナリオに基づくアクセス権管理の処理の流れの例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００１５】
まず、図１に基づき、本発明の実施の形態に係るコンシューマエレクトロニクデバイスのシステム構成について説明する。
【００１６】
図１は、本発明の実施の形態に係るコンシューマエレクトロニクデバイスのシステム構成を説明するための説明図である。
【００１７】
図１に示すように、携帯端末、パーソナルコンピュータ、DVDレコーダ等のコンシューマエレクトロニクデバイス１００は、基板１０１と、DVDディスク１０２と、HDD１０３と、インターネット１０４と、表示装置１０５と、スピーカ１０６とを有して構成されている。基板１０１には、１チップの半導体装置であるLSI１１０と、複数のATA（Advanced Technology Attachment）１１１ａ〜１１１ｃと、主メモリとしての複数のメモリ１１２ａ〜１１２ｄとが実装されている。
【００１８】
LSI１１０は、DVDディスク１０２またはHDD１０３からの暗号化されたデジタルコンテンツ、即ち、暗号化されたデータを、それぞれATA１１１ａまたは１１１ｂを介して読み出し、読み出した暗号化されたデータをメモリ１１２ａ〜１１２ｄのいずれかに確保された記憶領域に書き込む。また、LSI１１０は、インターネット１０４からダウンロードされた暗号化されたデータを、ATA１１１ｃを介して読み込み、読み出した暗号化されたデータをメモリ１１２ａ〜１１２ｄのいずれかに確保された記憶領域に書き込む。また、LSI１１０は、確保された記憶領域に書き込まれた暗号化されたデータを読み出し、所定の復号処理を施し、所定の復号処理が施されたデータを確保された記憶領域と同じ記憶領域に書き込む。なお、以下の説明では、暗号化されたデータを暗号文データ、復号処理が施されたデータを平文データともいう。
【００１９】
LSI１１０は、この記憶領域から所定の復号処理が施されたデータを読み出し、このデータにデコード処理を施して得られた映像信号及び音声信号をそれぞれ表示装置１０５及びスピーカ１０６に出力する。これにより、コンシューマエレクトロニクデバイス１００は、DVDディスク１０２等から読み出したデジタルコンテンツの再生処理を行うことができる。
【００２０】
ここで、このように構成されるLSI１１０の詳細な構成について説明する。図２は、LSIの詳細な構成を説明するための説明図である。
【００２１】
図２に示すように、LSI１１０は、メモリコントローラ１と、CPU２と、ATAコントローラ３と、暗号処理部４と、映像音声処理部５と、バス６とを有して構成されている。
【００２２】
メモリコントローラ１、CPU２、ATAコントローラ３、暗号処理部４、及び映像音声処理部５は、互いにバス６を介して接続されている。なお、図２では、説明を簡単にするために、メモリコントローラ１にメモリ１１２ａ〜１１２ｄのうちメモリ１１２ａのみが接続されているものとして説明する。
【００２３】
CPU２は、メモリ１１２ａに実行するアプリケーションが必要とする記憶領域を確保するとともに、メモリコントローラ１に後述するシナリオを設定する。このシナリオは、実行されるアプリケーションに対応する処理順序、言い換えると、処理シーケンスが記憶されている。アプリケーションを実行する場合、このシナリオに基づいて、バスマスタに確保された記憶領域に対するアクセス権が割り当てられる。
【００２４】
バスマスタとは、バス６を介してメモリ１１２ａにアクセスすることができる処理ブロックであり、本実施の形態では、CPU２、ATAコントローラ３、暗号処理部４及び映像音声処理部５である。即ち、本実施の形態では、確保された記憶領域に対するアクセス権が、設定されたシナリオである処理シーケンスに基づいて、CPU２、ATAコントローラ３、暗号処理部４及び映像音声処理部５のいずれか１つに割り当てられることになる。これらのバスマスタには、それぞれ異なる識別子（以下、IDという）が割り当てられている。このIDを用い、確保された記憶領域に対するアクセスの制御が行われる。このように、確保された記憶領域は、シナリオに基づいてアクセス権が割り当てられたバスマスタのみがアクセスすることができる保護領域となる。
【００２５】
メモリコントローラ１は、バスマスタからの要求に応じて、メモリ１１２ａに対するデータの書き込み及びメモリ１１２ａからのデータの読み出しの制御を行う。即ち、各バスマスタは、メモリコントローラ１を介して、メモリ１１２ａから処理対象のデータを読み出す、あるいは、メモリ１１２ａに処理結果のデータを書き込む。また、メモリコントローラ１は、CPU２により設定されたシナリオに基づいて、確保された記憶領域へのアクセスの制御を行う。即ち、メモリコントローラ１は、シナリオに基づいて、バスマスタであるCPU２、ATAコントローラ３、暗号処理部４及び映像音声処理部５のいずれかにアクセス権を与える制御を行う。
【００２６】
一般にメモリ１１２ａに対するアクセス権の制御は、メモリコントローラ１とは独立した機構、例えば、メモリプロテクションユニット（以下、MPUという）によって実現される。しかし、MPUは、CPU２が実行するプログラムのメモリ資源、例えば、メモリ１１２ａに対するアクセス権の管理を行うものであって、システムの状態あるいは動作に一切依存しない。そこで、本実施の形態では、メモリ１１２ａの保護領域に対する各バスマスタのアクセス権は、システムの状態、具体的には、所定の処理シーケンスに基づいて、動的に変更される。
【００２７】
ATAコントローラ３は、DVDディスク１０２等から暗号文データを読み出し、読み出した暗号文データをメモリ１１２ａの確保された記憶領域に書き込む。
【００２８】
暗号処理部４は、この書き込まれた暗号文データを読み出し、読み出した暗号文データに所定の復号処理を施し平文データに変換する。暗号処理部４は、変換した平文データを暗号文データが記憶されていた記憶領域と同じ記憶領域に書き込む。
【００２９】
映像音声処理部５は、この書き込まれた平文データを読み出し、読み出した平文データに所定のデコード処理を施し、映像信号及び音声信号を生成する。映像音声処理部５は、生成した映像信号及び音声信号をそれぞれ表示装置１０５及びスピーカ１０６に出力する。これにより、DVDディスク１０２に格納されている暗号化されたデジタルコンテンツの再生処理を行うことができる。
【００３０】
ここで、このように構成されるメモリコントローラ１の詳細な構成について説明する。図３は、メモリコントローラの詳細な構成を説明するための説明図である。
【００３１】
図３に示すように、メモリコントローラ１は、シナリオ記憶部１１と、制御部１２と、シナリオ設定部１３とを有して構成されている。
【００３２】
シナリオ記憶部１１には、DVD再生のシナリオ、ダウンロードコンテンツ再生のシナリオ等が記憶されている。これらのシナリオは、実行されるアプリケーションに対応する処理手順、即ち、処理シーケンスのデータが記憶されている。また、これらのシナリオは、実行されるアプリケーション毎に異なる。そのため、ハードワイヤードによってメモリコントローラ１にこれらのシナリオが構築されてしまうと、アプリケーションの変更にハードウエアが追従できないという不都合が生じる。そこで、アプリケーションの変更にも対応できるように、LSI１１０の外部からバス６を介して、メモリコントローラ１のシナリオ記憶部１１にシナリオを設定できるようにしてもよい。
【００３３】
また、セキュアなシステムの場合、実行されるアプリケーションにも暗号化が施されている。この場合、CPU２は、実行するアプリケーションをロードするとき、電子署名の認証を行うのが一般的である。CPU２は、アプリケーションをロードするとき、その電子署名の認証を暗号処理部４に依頼するようにする。そして、CPU２は、暗号処理部４による認証が問題なく完了した場合、メモリコントローラ１へそのアプリケーションに対応するシナリオを登録する。
【００３４】
制御部１２は、CPU２からの指示に基づき、選択されたシナリオをシナリオ記憶部１１から読み出し、シナリオ設定部１３に登録する。
【００３５】
シナリオ設定部１３には、選択されたシナリオが登録される。図３は、シナリオ設定部１３にDVD再生のシナリオが設定された例である。このシナリオ設定部１３にシナリオのデータ構造は、（順番：デバイスのID：アクセス権）となる。このアクセス権は、Read、Write、または、Read及びWriteのいずれかである。
【００３６】
図３に示すように、シナリオ設定部１３には、DVD再生のシナリオが選択された場合、１番目にATAコントローラ３のIDが設定され、Writeのアクセス権、ここでは、メモリ１１２ａへの書き込みのアクセスが設定される。また、シナリオ設定部１３には、２番目に暗号処理部４のIDが設定され、Readのアクセス権、ここでは、メモリ１１２ａからの読み出しのアクセス権が設定される。同様に、シナリオ設定部１３には、３番目に暗号処理部４のIDが設定され、メモリ１１２ａへの書き込みのアクセスが設定される。同様に、シナリオ設定部１３には、４番目に映像音声処理部５のIDが設定され、メモリ１１２ａからの読み出しのアクセス権が設定される。
【００３７】
制御部１２は、設定されたシナリオに基づいて、記憶領域へのアクセス権を与える。また、制御部１２は、記憶領域にアクセスするバスマスタがアクセス権を有するバスマスタか否かを判定する。制御部１２は、シナリオに基づいてアクセス権が与えられたバスマスタのIDと、記憶領域にアクセスするバスマスタのIDとを比較することにより、上述した判定を実行する。制御部１２は、判定結果に基づいて、アクセス権を有するバスマスタからのアクセスと判定した場合、記憶領域へのアクセスを許可し、アクセス権を有していないバスマスタからのアクセスと判定した場合、バスエラーの例外を発生する。
【００３８】
ここで、図４〜図９を用いて、シナリオに基づくバッファ管理の処理の流れについて説明する。なお、図４〜図９では、DVD再生処理を例として説明する。
【００３９】
図４は、シナリオ及び保護領域の設定処理を説明するための説明図である。  
まず、初期状態において、CPU２は、破線矢印３１に示すように、メモリコントローラ１にDVD再生を行うためのシナリオを設定する。さらに、CPU２は、メモリコントローラ１に、DVD再生を行うためにアプリケーションが必要となるサイズのバッファ領域である記憶領域２１をメモリ１１２ａに確保し、その記憶領域２１上で処理されるデータのサイズを指定し、その記憶領域２１がどのようなシナリオによって管理されるかを設定する。
【００４０】
メモリコントローラ１に設定される内容は、記憶領域２１の管理を行うためのシナリオ指定、ここではDVD再生のシナリオ、記憶領域２１の先頭アドレス、記憶領域２１のサイズ等の情報である。この設定により、メモリ１１２ａに指定されたアドレスから指定されたサイズを有する記憶領域２１が確保され、かつ、指定されたシナリオに基づき最初のアクセス権が所定のIDを有するATAコントローラ３に与えられる。
【００４１】
なお、説明を簡単にするために、１つのシナリオよって管理される保護領域が１つとして説明するが、１つのシナリオよって管理される保護領域が複数あってもよい。即ち、設定された複数の保護領域が１つのシナリオに基づいて管理されることにより、例えば、DVD再生処理を円滑に実行することができる。また、１つのシナリオがシナリオ設定部１３に設定されるとして説明するが、複数の異なるシナリオがシナリオ設定部１３に設定されてもよい。即ち、異なるシナリオのそれぞれが対応する保護領域を管理することにより、異なるアプリケーションを異なるシナリオに基づいて、同時に実行することができる。
【００４２】
図５は、ATAコントローラによるコンテンツ読み込み処理を説明するための説明図である。  
次に、アクセス権を得たATAコントローラ３は、破線矢印３２に示すように、CPU２からの指示に基づき、DVDディスク１０２上の暗号化されたデータをメモリ１１２ａの確保された記憶領域２１に読み出す。メモリコントローラ１は、転送されたデータ、即ち、記憶領域２１に書き込まれたデータの総量を監視し、このデータの総量が予め指定されたデータサイズに到達した段階において、ATAコントローラ３の記憶領域２１へのアクセス権を解除する。または、メモリコントローラ１は、転送されたデータの終端を検出し、ATAコントローラ３の記憶領域２１へのアクセス権を解除する。そして、メモリコントローラ１は、シナリオ設定部１３に設定されたシナリオに基づき、記憶領域２１へのアクセス権を暗号処理部４に移す。
【００４３】
このように、DVDディスク１０２から読み出された暗号文データ、例えば、数パック分のデータ列は、暗号化されたままの状態で一度主メモリであるメモリ１１２ａ上に確保された記憶領域２１に読み出される。この記憶領域２１へのアクセス権はATAコントローラ３に与えられている。しかし、DVDディスク１０２からのデータ読み出し完了後、ATAコントローラ３の記憶領域２１へのアクセス権は、データ転送完了、言い換えると、指定されたデータサイズ分の転送完了と同時に失われ、シナリオに基づいて、暗号処理部４に記憶領域２１へのアクセス権が与えられる。
【００４４】
図６は、暗号処理部による暗号文データの読み出し処理を説明するための説明図である。  
次に、アクセス権を得た暗号処理部４は、破線矢印３３に示すように、CPU２からの指示に基づき、記憶領域２１から暗号文データを読み出し、指定されたアルゴリズムにより復号処理を行い、平文データを生成する。メモリコントローラ１は、転送データ、即ち、記憶領域２１から読み出されたデータの総量を監視し、そのデータの総量が予め指定されたデータサイズに到達した段階において、暗号処理部４の記憶領域２１へのアクセス権を解除する。または、メモリコントローラ１は、転送されたデータの終端を検出し、暗号処理部４の記憶領域２１へのアクセス権を解除する。メモリコントローラ１は、シナリオに基づき、記憶領域２１へのアクセス権を再度、暗号処理部４に移す。即ち、暗号処理部４の記憶領域２１へのデータ転送完了、言い換えると、指定されたデータサイズ分の転送完了によって、暗号処理部４の記憶領域２１へのアクセス権は一旦失われ、シナリオに基づいて、再度、暗号処理部４に記憶領域２１へのアクセス権が与えられる。
【００４５】
図７は、暗号処理部による平文データの書き込み処理を説明するための説明図である。  
次に、アクセス権を得た暗号処理部４は、破線矢印３４に示すように、CPU２からの指示に基づき、生成した平文データを記憶領域２１に書き込む。メモリコントローラ１は、記憶領域２１に書き込まれたたデータの総量を監視し、そのデータの総量が予め指定されたデータサイズに到達した段階において、暗号処理部４の記憶領域２１へのアクセス権を解除する。または、メモリコントローラ１は、転送されたデータの終端を検出し、暗号処理部４の記憶領域２１へのアクセス権を解除する。メモリコントローラ１は、シナリオに基づき、記憶領域２１へのアクセス権を映像音声処理部５に移す。即ち、暗号処理部４の記憶領域２１へのデータ転送完了、言い換えると、指定されたデータサイズ分の転送完了によって、暗号処理部４の記憶領域２１へのアクセス権は失われ、シナリオに基づき、映像音声処理部５に記憶領域２１へのアクセス権が与えられる。
【００４６】
図８は、映像音声処理部によるデコード処理を説明するための説明図である。  
次に、アクセス権を得た映像音声処理部５は、破線矢印３５に示すように、CPU２からの指示に基づき、記憶領域２１から平文データを読み出し、指定されたアルゴリズムによりデコード処理を行い、映像信号及び音声信号をそれぞれ表示装置１０５及びスピーカ１０６に出力する処理を行う。メモリコントローラ１は、記憶領域２１から読み出されたデータの総量を監視し、そのデータの総量が予め指定されたデータサイズに到達した段階において、映像音声処理部５の記憶領域２１へのアクセス権を解除する。または、メモリコントローラ１は、転送されたデータの終端を検出し、映像音声処理部５の記憶領域２１へのアクセス権を解除する。
【００４７】
メモリコントローラ１は、シナリオに基づき、記憶領域２１へアクセスするATAコントローラ３にアクセス権を移す。即ち、映像音声処理部５による処理が完了、言い換えると、指定されたデータサイズ分の転送が完了すると、記憶領域２１に対するアクセス権は、映像音声処理部５からATAコントローラ３へ移ることになる。
【００４８】
図９は、アクセス違反があった場合の処理を説明するための説明図である。  
仮に、映像音声処理部５がアクセス権を有しているときに、破線矢印３６に示すように、記憶領域２１に対してアクセス権を有していないCPU２が記憶領域２１の平文データを読み出す行為を行ったものとする。この場合、メモリコントローラ１は、破線矢印３７に示すように、設定されたシナリオにおいてアクセスを許していないCPU２からの記憶領域２１へのアクセス要求を検出し、バスエラーの例外を発生し、システムを停止させる。このように、メモリコントローラ１は、特定のアプリケーションのシナリオに基づいて、記憶領域２１に対するバスマスタのアクセス制御を行う。これにより、メモリコントローラ１は、チップ外に配置されるメモリ１１２ａを使用するシステムにおいて、悪意を持った攻撃から再暗号化なしにメモリ１１２ａの記憶領域２１上の平文データを保護することができる。
【００４９】
このようにDVD再生処理において、CPU２は、記憶領域２１内のデータに対して一切アクセスを行わないし、アクセス権を持っていない。メモリコントローラ１は、記憶領域２１へのアクセスを管理するために、予め決められたシナリオに基づいて、異なるIDで管理されるバスマスタの中で特定のバスマスタにある条件のもとでアクセス権を与えている。そのため、アクセス権を持たないバスマスタ、例えばCPU２が記憶領域２１に対してアクセスを試みた場合、メモリコントローラ１はバスエラーの例外を発生させ、システムを停止させる。この機構を実現させるために、上述したように、各バスマスタのそれぞれが異なるIDで管理されている。
【００５０】
図１０は、シナリオに基づくアクセス権管理の処理の流れの例を説明するためのフローチャートである。なお、図１０の処理では、すでにシナリオ及び保護領域の設定、即ち、記憶領域２１のサイズ等の設定が完了していることとする。この設定完了時点で、メモリコントローラ１内部で管理する「転送サイズ」はクリアされる。この「転送サイズ」とは特定のIDを有するバスマスタが特定の保護領域に書き込んだデータの総量、あるいは、特定の保護領域から読み出したデータの総量である。「指定サイズ」とは、特定のIDを有するバスマスタイスが書き込みあるいは読み出しアクセスするデータの総量である。
【００５１】
まず、要求があったメモリアクセスが設定された保護領域へのアクセスであるか否かが判定される（ステップＳ１）。設定された保護領域へのアクセスでない場合、NOとなり、通常のメモリアクセスつまりメモリ１１２ａへの書き込み或いはメモリ１１２ａからの読み出しが実行され（ステップＳ２）、処理を終了する。設定された保護領域へのアクセスの場合、YESとなり、シナリオ設定部１３に設定されたシナリオが確認され（ステップＳ３）、保護領域にアクセスしたバスマスタのIDが確認される（ステップＳ４）。
【００５２】
次に、アクセスを要求しているバスマスタがアクセスを有しているか否かが判定される（ステップＳ５）。アクセスを有していない場合、NOとなり、バスエラーの例外を発生させ（ステップＳ６）、処理を終了する。一方、アクセスを有している場合、YESとなり、読み出し要求であるか否かが判定される（ステップＳ７）。読み出し要求の場合、YESとなり、保護領域である記憶領域２１上のデータが読み出される（ステップＳ８）。読み出し要求でない場合、NOとなり、書き込み要求と判定され、ステップＳ９に進む。
【００５３】
次に、転送サイズが指定サイズより小さいか否かが判定される（ステップＳ９）。転送サイズが指定サイズより小さい場合、YESとなり、バスマスタから転送されたデータ、あるいは、バスマスタによって保護領域から読み出されたデータが、データ列の終端であるか否かが判定される（ステップＳ１０）。データ列の終端の場合、YESとなり、ステップＳ１４に進む。データ列の終端でない場合、NOとなり、データが転送つまりメモリ１１２ａへの書き込み或いは読み出し元への読み出したデータの転送がなされ（ステップＳ１１）、転送サイズがインクリメントされる（ステップＳ１２）。一方、ステップＳ９において、転送サイズが指定サイズより小さくない場合、NOとなり、転送サイズが指定サイズより大きいか否かが判定される（ステップＳ１３）。転送サイズが指定サイズより大きい場合、YESとなり、ステップＳ６においてバスエラーの例外を発生させ、処理を終了する。即ち、転送サイズが指定サイズより大きい場合は、異常処理となり、バスエラーの例外を発生させ、実行中の処理を終了する。転送サイズが指定サイズより大きくない場合、NOとなり、ステップＳ１４に進む。即ち、ここでは、ステップＳ９の判定結果及びステップＳ１３の判定結果に基づいて、転送サイズが指定サイズと同一と判定されたこととなる。
【００５４】
一方、ステップＳ１０において、データ列の終端と判定された場合、あるいは、ステップＳ１３において、転送サイズが指定サイズと同一と判定された場合、データが転送つまりメモリ１１２ａへの書き込み或いは読み出し元への読み出したデータの転送がなされる（ステップＳ１４）。次に、転送サイズがクリアされ（ステップＳ１５）、シナリオ設定部１３に設定されたシナリオが確認される（ステップＳ１６）。最後に、確認されたシナリオに基づいて、次にアクセス権を有するバスマスタのIDが設定され（ステップＳ１７）、処理を終了する。
【００５５】
以上の処理により、メモリコントローラ１には、CPU２によって実行するアプリケーションに対応するシナリオ及びこのアプリケーションが必要とする記憶領域２１が設定される。メモリコントローラ１は、設定されたシナリオに基づいて、記憶領域２１にアクセスするためのアクセス権をバスマスタのいずれかに与え、記憶領域２１に対するバスマスタのアクセスを制御するようにした。即ち、メモリコントローラ１は、アクセス権を有しているバスマスタ以外のバスマスタから記憶領域２１にアクセスがあった場合、そのアクセスを許可せずにバスエラーの例外を発生する。この結果、LSI１１０の外部に配置されるメモリ１１２ａを使用するシステムにおいて、悪意を持った攻撃者から、メモリ１１２ａの記憶領域２１に格納された平文データを再暗号化することなく保護することができる。
【００５６】
よって、本実施の形態のメモリコントローラによれば、CPUが悪意を持った攻撃者によって制御可能な状態におかれた場合でも、メモリの所定の領域を保護することができる。
【００５７】
また、このように構成されるコンシューマエレクトロニクデバイス１００によれば、チップ外、即ち、LSI１１０の外のメモリ１１２ａに記憶される平文データを処理のシナリオをベースに保護する機構を実装することにより、内蔵メモリに頼らないメモリ容量の大きな耐タンパ性を有するシステムを比較的安価に実現することができる。
【００５８】
なお、本明細書におけるフローチャート中の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【００５９】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【００６０】
１…メモリコントローラ、２…CPU、３…ATAコントローラ、４…暗号処理部、５…映像音声処理部、６…バス、１１…シナリオ記憶部、１２…制御部、１３…シナリオ設定部、２１…記憶領域、１００…デバイス、１０１…基板、１０２…DVDディスク、１０３…HDD、１０４…インターネット、１０５…表示装置、１０６…スピーカ、１１０…LSI、１１１ａ〜１１１ｃ…ATA、１１２ａ〜１１２ｄ…メモリ。
【図１】
2010267135.tif 000003
【図２】
2010267135.tif 000004
【図３】
2010267135.tif 000005
【図４】
2010267135.tif 000006
【図５】
2010267135.tif 000007
【図６】
2010267135.tif 000008
【図７】
2010267135.tif 000009
【図８】
2010267135.tif 000010
【図９】
2010267135.tif 000011
【図１０】
2010267135.tif 000012