(57)【要約】【課題】不特定多数のアクセスに対する柔軟な許容性と不正アクセスに対する高いセキュリティ性とを得る。【解決手段】プログラムやデータを格納するメモリに書き換え不能メモリ１４と書き換え可能メモリ１６を設ける。また、ロジック回路部２０も保護されたモジュール群２０Ａ、保護されていないモジュール群２０Ｂと区別しておく。そして、悪意のあるアクセスに対しては書き換え不能メモリ１４とモジュール群２０Ａによるセキュリティ性を有効に用いて防止する。一方、書き換え可能メモリ１６とモジュール群２０Ｂの機能を用いて不特定多数のユーザが利用でき、利便性を図れるとともに、仮に書き換え可能メモリ１６やモジュール群２０Ｂに対して不正なアクセスが行なわれた場合でも、これを書き換え不能メモリ１４とモジュール群２０Ａ側に波及することを防止し、セキュリティ性の維持を図る。【選択図】        図１
2004341769.tif 000002
【特許請求の範囲】
【請求項１】
予めプログラム実行コードを含むデータを格納した書き換え不能な第１のメモリと、
外部入力によってプログラム実行コードを含むデータを格納する書き換え可能な第２のメモリと、
前記第１のメモリ及び第２のメモリにアクセスし、前記プログラム実行コードの発行を指示するＣＰＵと、
前記第１のメモリ及び第２のメモリから発行されたプログラム実行コードに基づいて該当する処理を実行する複数のモジュールよりなるロジック回路部と、
前記プログラム実行コードの発行元を識別する識別手段と、
前記識別手段によってプログラム実行コードの発行元が前記第２のメモリであると識別された場合に、前記ロジック回路部で処理を実行するモジュールを制限するアクセス制限手段と、
を有することを特徴とする回路装置。
【請求項２】
プログラム実行コードを含むデータを格納する外部メモリを接続するインタフェース手段を有し、前記ＣＰＵは前記外部メモリにアクセスして前記プログラム実行コードの発行を指示し、前記アクセス制限手段は前記識別手段によってプログラム実行コードの発行元が前記外部メモリであると識別された場合に、前記ロジック回路部で処理を実行するモジュールを制限することを特徴とする請求項１記載の回路装置。
【請求項３】
前記ロジック回路部は不特定のアクセスから保護される第１のモジュール群と不特定のアクセスから保護されない第２のモジュール群とを含み、前記アクセス制限手段は前記識別手段によってプログラム実行コードの発行元が前記第２のメモリであり、そのプログラム実行コードの処理を実行するモジュールが前記第１のモジュール群に含まれる場合に、その実行を制限することを特徴とする請求項１記載の回路装置。
【請求項４】
前記識別手段は前記第１のメモリと内部バスとの間に設けられるメモリインタフェース部に設けられ、前記第１のメモリからプログラム実行コードが発行された場合に特定の識別コードを発行することを特徴とする請求項１記載の回路装置。
【請求項５】
前記メモリインタフェース部は前記第１のメモリへのデータの書き込みを排除することを特徴とする請求項４記載の回路装置。
【請求項６】
前記ロジック回路部は不正アクセスであると判断したときに所定の不正排除処理を行なうことを特徴とする請求項４記載の回路装置。
【請求項７】
前記不正排除処理は割り込み処理であることを特徴とする請求項６記載の回路装置。
【請求項８】
前記不正排除処理はリセット処理であることを特徴とする請求項６記載の回路装置。
【請求項９】
前記第１のメモリは予めプログラム実行コードを含むデータを書き込んだリードオンリーメモリよりなることを特徴とする請求項１記載の回路装置。
【請求項１０】
半導体集積回路よりなることを特徴とする請求項１記載の回路装置。
【請求項１１】
プログラム実行コードを含むデータを格納するメモリと、前記メモリにアクセスしてプログラム実行コードの発行を指示するＣＰＵと、前記メモリから発行されたプログラム実行コードに基づいて該当する処理を実行する複数のモジュールよりなるロジック回路部とを有する回路装置の不正アクセス防止方法であって、
前記メモリに、予めプログラム実行コードを含むデータを格納した書き換え不能な第１のメモリと、外部入力によってプログラム実行コードを含むデータを格納する書き換え可能な第２のメモリとを設け、
前記プログラム実行コードの発行時にその発行元を識別し、前記プログラム実行コードの発行元が前記第２のメモリであると識別された場合に、前記ロジック回路部で処理を実行するモジュールを制限する、
ことを特徴とする回路装置の不正アクセス防止方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵ、メモリ、及びロジック回路部を備えて外部からのアクセスによって各種の処理を行なう回路装置に関し、特にその不正アクセス防止方法に関する。
【０００２】
【従来の技術】
従来より、この種の回路装置を搭載した各種システムにおいて、外部入力装置やネットワーク等を通して各種処理命令やデータの書き込みを行なう場合に、不正なアクセスを防止する方法としては、主に以下の２通りの方法が用いられていた。
まず、第１の方法は、全メモリ領域のうち、プログラム実行コードあるいはプログラムで用いるデータを格納している特定のメモリ領域への不正アクセスを監視する方法である（例えば、特許文献１参照）。
これは、例えば所定のプログラムを実行するＣＰＵと、そのプログラムで実行するデータが格納されているメモリとを有するシステムにおいて、そのプログラムがメモリに対して不正アクセスをしたか否かを判定するメモリ保護制御装置を設け、このメモリ保護制御装置がメモリの各メモリ領域へのアクセスを監視し、上述した不正アクセスとなる特定メモリ領域へのアクセスを阻止するものである。
【０００３】
また、第２の方法は、ＣＰＵからの命令によりメモリから発行されたプログラム実行コードを監視する方法である（例えば、特許文献２参照）。
これは、例えば所定のプログラムを実行するＣＰＵと、このＣＰＵによる命令に基づくプログラム実行コードを格納するメモリ（ここでは命令メモリという）とを有するシステムにおいて、ＣＰＵからの命令に従って命令メモリから発行されたプログラム実行コードを一時格納する命令語レジスタと、この命令語レジスタに格納された命令語が不正なものか否かを判定する比較器と、この比較器が比較判定するための比較値を格納した設定器と、ＣＰＵからの命令に従って設定器に設定値を送るための設定値メモリ等を設け、命令語レジスタに格納されたプログラム実行コードが設定器に格納された比較値と一致した場合に、その実行コードが適正であると判定し、一致しない場合には、その実行コードが不正であると判定するものである。
【０００４】
【特許文献１】
特開２００２−９１８２６号公報
【特許文献２】
特開平１１−２１９３０４号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来例の第１の方法では、メモリ保護制御装置によってメモリのメモリ領域へのアクセスを監視することであるため、データ自体の正否を判定するものではないことから、例えばメモリ内部に悪意あるユーザデータが格納されているような場合に、そのユーザデータがシステムの他の部分に転送されて不正な動作が行なわれるといった恐れがあり、十分な不正アクセスの防止機能を得ることができないという問題がある。
また、上述した従来例の第２の方法では、実行コードを比較判定するための比較値を格納する設定値メモリの機能が有限であるため、設定値メモリの設定内容の範囲でしか不正アクセスを判定することができない。
このため有効なアクセスとして実行できる処理が極めて限られた範囲となり、例えば不特定多数のユーザが書き込んだデータ（ここではユーザデータという）について幅広い利用を許容することが困難であり、極めて限定的で柔軟性に欠けるシステムとなってしまう問題がある。
この結果、上述した２つの方法では、いずれも実行プログラムなどを格納するメモリに不特定多数のユーザデータを書き込むようなシステムを構成した場合に、システムのセキュリティが脆弱になってしまうという課題がある。
【０００６】
そこで本発明の目的は、不特定多数のアクセスに対する柔軟な許容性と不正アクセスに対する高いセキュリティ性とを得ることが可能な回路装置及びその不正アクセス防止方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明は前記目的を達成するため、予めプログラム実行コードを含むデータを格納した書き換え不能な第１のメモリと、外部入力によってプログラム実行コードを含むデータを格納する書き換え可能な第２のメモリと、前記第１のメモリ及び第２のメモリにアクセスし、前記プログラム実行コードの発行を指示するＣＰＵと、前記第１のメモリ及び第２のメモリから発行されたプログラム実行コードに基づいて該当する処理を実行する複数のモジュールよりなるロジック回路部と、前記プログラム実行コードの発行元を識別する識別手段と、前記識別手段によってプログラム実行コードの発行元が前記第２のメモリであると識別された場合に、前記ロジック回路部で処理を実行するモジュールを制限するアクセス制限手段とを有することを特徴とする。
【０００８】
また本発明は、プログラム実行コードを含むデータを格納するメモリと、前記メモリにアクセスしてプログラム実行コードの発行を指示するＣＰＵと、前記メモリから発行されたプログラム実行コードに基づいて該当する処理を実行する複数のモジュールよりなるロジック回路部とを有する回路装置の不正アクセス防止方法であって、前記メモリに、予めプログラム実行コードを含むデータを格納した書き換え不能な第１のメモリと、外部入力によってプログラム実行コードを含むデータを格納する書き換え可能な第２のメモリとを設け、前記プログラム実行コードの発行時にその発行元を識別し、前記プログラム実行コードの発行元が前記第２のメモリであると識別された場合に、前記ロジック回路部で処理を実行するモジュールを制限することを特徴とする。
【０００９】
本発明の回路装置及びその不正アクセス防止方法では、プログラム実行コードを含むデータを格納するメモリに、予めプログラム実行コードを含むデータを格納した書き換え不能な第１のメモリと、外部入力によってプログラム実行コードを含むデータを格納する書き換え可能な第２のメモリとを設け、プログラム実行コードの発行時にその発行元を識別し、プログラム実行コードの発行元が第２のメモリであると識別された場合に、ロジック回路部で処理を実行するモジュールを制限するようにしたことから、重要なプログラムやデータについては、第１のメモリに格納して書き換え不能に保護し、特定のモジュールを専用に動作させるようにして不正アクセスに対する高いセキュリティ性を確保し、その他の機能については、第２のメモリに書き換え可能とし、不特定多数のアクセスに対する柔軟な許容性を確保できるようにする。
【００１０】
【発明の実施の形態】
以下、本発明による回路装置及びその不正アクセス防止方法の実施の形態例について説明する。
本実施の形態例による回路装置は、例えば半導体集積回路によって構成されたものであり、周辺装置（入出力機器等）と組み合わされて各種電子機器に搭載され、ネットワーク等に接続されて使用されるものについて説明する。
図１は本実施の形態例による回路装置の構成例を示すブロック図である。
図示のように、本例の回路装置は、集積回路１０内にＣＰＵ１２と、書き換え不能メモリ１４と、書き換え可能メモリ１６と、書き換え不能メモリインタフェース１８と、メインロジック回路部２０と、内部バス２２とを設けたものである。また、集積回路１０の外部には、外部インタフェース２４を介して外部メモリ２６が接続される。
【００１１】
ＣＰＵ１２は、本回路装置全体の制御を行ない、各種の処理を実行するものであり、例えば書き換え不能メモリ１４や書き換え可能メモリ１６にアクセスし、これらメモリ１４、１６に格納されたプログラム実行コードの発行を指示することにより、メインロジック回路部２０における各種の処理を制御する。
書き換え不能メモリ（Ｍ１）１４は、例えば予めプログラム実行コードを含むデータを格納したリードオンリーメモリ（ＲＯＭ）であり、例えば出荷前に既にプログラムやデータを書き込んだ素子を本回路装置に実装するようにしたものである。このメモリ１４には、不特定多数のユーザが容易にアクセスしてデータを書き込んだり、読み取ったりすることが不適切な機密性を要するプログラムやデータを格納するものであり、例えば暗号化処理のためのプログラムやキーコード等のように、高いセキュリティ性を要するものを格納している。
【００１２】
書き換え可能メモリ（Ｍ２）１６は、外部入力によって不特定のユーザが各種のプログラムやデータを適宜書き込んだり、読み出したりできるランダムアクセスメモリ（ＲＡＭ）であり、例えば外部メモリやネットワークを通して書き込みを行なうことが可能である。
書き換え不能メモリインタフェース（Ｉ／Ｆ）１８は、上述のような機密性を必要とする書き換え不能メモリ１４と内部バス２２とのインタフェースをとるものであり、特に本例では、書き換え不能メモリ１４からプログラム実行コードが読み出された場合に識別符号「１」を立て、それ以外の場合には識別符号「０」を立てるような処理を行なうものである。なお、このような識別符号の立て方は具体的には種々採用でき、実行コードの発行元が特定できれば、他の方式でもよいものである。
【００１３】
また、メインロジック回路部２０は、本例の回路装置で利用できる各種処理を実行するためのハードウエアロジック回路であり、多数のモジュールより構成されたものである。そして、本例では、メインロジック回路部２０の各モジュールのうち、不特定ユーザによる任意の利用を規制してセキュリティ上保護されたモジュール群２０Ａと、外部から不特定のユーザが利用できるセキュリティ上保護されていないモジュール群２０Ｂとを２分した構成となっており、外部からのアクセス時の取り扱いを分けたものである。
また、このメインロジック回路部２０には、この回路部の制御を行なう制御部（ＳＣ）２０１や不正アクセス時の割り込む動作（実行中止動作）を行なうための割り込み処理部（ＩＮＴ）２０２が設けられている。
【００１４】
また、外部メモリ（Ｍ３）２６は、各種のプログラムやデータを格納した可搬型記憶媒体であり、各種プログラムやデータをインタフェース２４を介して本回路装置内に書き込んだり、本回路装置内のデータをインタフェース２４を介して読み出すような機能を有するものである。なお、本例では後述する動作例で説明するように、この外部メモリ２６は書き換え可能メモリ１６と同等の扱いで処理されるものである。
また、図１では省略しているが、本例の回路装置はネットワークに接続してプログラムやデータをやりとりできる機能をも有している。
なお、本例において、各メモリ１４、１６、２６や各モジュール群２０Ａ、２０Ｂのアドレスは例えばプログラムカウンタによるアドレスレジスタ内の値を読み取ることにより、リアルタイムで認識し、順次動作を行なうものとする。
【００１５】
以上のような本例の回路装置は、例えば著作権保護（盗用・不正コピー防止）の規定により暗号化されて販売されているオーディオ情報やビデオ情報を外部メモリ２６から取り込み、メインロジック回路部２０で復号して再生し、さらに再暗号化して外部メモリ２６に戻すような処理を行なうものであり、この盗用防止のための処理において、書き換え不能メモリ１４とモジュール群２０Ａによるセキュリティ性を有効に用いて暗号化コード等の機密性を確保し、コンテンツの悪用を防止するものである。
また、その他の悪意のある侵入（アクセス）に対しても、書き換え不能メモリ１４とモジュール群２０Ａによるセキュリティ性を有効に用いて防止することができる。
一方、書き換え可能メモリ１６とモジュール群２０Ｂの機能を用いて不特定多数のユーザが自由に利用でき、利便性を図れるとともに、仮に書き換え可能メモリ１６やモジュール群２０Ｂに対して不正なアクセスが行なわれた場合でも、これを書き換え不能メモリ１４とモジュール群２０Ａ側に波及することを防止し、セキュリティ性の維持を図るものである。
【００１６】
以下、本例の回路装置における具体的な動作例を詳細に説明する。
図２は動作例を示すフローチャートであり、ＣＰＵ１２が各メモリ（Ｍ１、Ｍ２、Ｍ３）１４、１６、２６に命令を発行した後の動作を示している（ステップＳ１）。
まず、書き換え不能メモリ（Ｍ１）１４のインタフェース１８は、ＣＰＵ１２のアクセス先メモリを判定し（ステップＳ２）、ＣＰＵ１２が回路装置１０内の書き換え不能メモリ（Ｍ１）１４にアクセスすると識別符号「１」を発行し、それ以外のメモリ（Ｍ２）１６またはメモリ（Ｍ３）２６にアクセスすると識別符号「０」を発行し、それをロジック回路部２０の制御回路２０１に伝える（ステップＳ３）。
ロジック回路部２０の制御回路２０１は、この識別符号「１」または「０」を検知し、「１」の場合には、メモリ（Ｍ１）１４より発行された実行コード、データなどをＣＰＵ１２の命令に応じて保護されたモジュール群２０Ａまたは保護されていないモジュール群２０Ｂに送る（ステップＳ７）。
【００１７】
一方、「０」の場合には、ロジック回路部２０の制御回路２０１はメモリ（Ｍ２）１６またはメモリ（Ｍ３）２６より発行された実行コード、データなどを保護されていないモジュール群２０Ｂに送ることのみを許可し、たとえＣＰＵ１２が保護されているモジュール群２０Ａに送るように命令を出していても許可しない（ステップＳ４）。
したがって、このような回路装置において、システムの基幹に係わる部分を保護されたモジュール群２０Ａに含めておけば、この部分を操作し得る実行コード、データは書き換え不能メモリ（Ｍ１）１４から発行されたもののみであり、他方の書き換え可能メモリ（Ｍ２）１６、外部メモリ（Ｍ３）２６から発行されたものは、保護されたモジュール群２０Ａへのアクセスは制限され、この部分に関する操作は制限される．
【００１８】
以上のようにして、ロジック回路部２０のモジュール群を保護されたモジュール群２０Ａ、保護されていないモジュール群２０Ｂと区別しておき、その上で実行コード、データに発行元に応じてアクセス制限、実行権限を割り振っておけば、書き換え可能メモリ１６や外部メモリ２６が持ち得るどんな種類のプログラム、データに関しても全て平等に保護されたモジュール２０Ａにアクセス制限をかけられることになる。
そのため、書き換え可能メモリ１６、外部メモリ２６を不特定多数用のユーザプログラム、データ格納領域といて用いることにすれば、不特定多数のユーザプログラム、データに悪意あるもが含まれていたとしても、それがシステムの基幹に係わる部分を含む保護されたモジュール群２０Ａを操作することはない。
【００１９】
また、このシステムは以下の場合に不正アクセスであると判断し。割り込みの発生、リセット動作を行う（ステップＳ８）。
すなわち、メモリ１６、２６から発行された実行コード、データが保護されたモジュール２０Ａにアクセスしようとしたとき（ステップＳ５）、また、メモリ１４、１６、２６から発行された実行コード、データのアクセス先アドレスが、モジュール群２０Ａまたは２０Ｂに割り振られたアドレスのリザーブ領域あった場合（ステップＳ６）、制御回路２０１、モジュール群２０Ａ、２０Ｂが割り込みを発生し、それを割り込み制御回路２０２に送る。
このような動作により、上述した従来例の第１の方法で説明したメモリ領域へのアクセス監視による不正アクセス監視方法に代わるモジュールのアドレス領域へのアクセス監視による不正アクセス監視方法を提供できるものであり、上述した悪意のあるプログラムがメモリにある場合の問題点を改善するものである。
【００２０】
なお、以上の例では。メモリを書き換え不可と可能の２通りに分け、ロジック回路部のモジュール群を保護と非保護の２通りに分けてアクセスを制限する構成例を説明したが、処理内容の重用度等に基づいて保護のレベルを３段階以上に分け、各ランクに応じたアクセス制限を行なうような構成も可能である。
【００２１】
【発明の効果】
以上説明したように本発明の回路装置及びその不正アクセス防止方法では、プログラム実行コードを含むデータを格納するメモリに、予めプログラム実行コードを含むデータを格納した書き換え不能な第１のメモリと、外部入力によってプログラム実行コードを含むデータを格納する書き換え可能な第２のメモリとを設け、プログラム実行コードの発行時にその発行元を識別し、プログラム実行コードの発行元が第２のメモリであると識別された場合に、ロジック回路部で処理を実行するモジュールを制限するようにした。
したがって、重要なプログラムやデータについては、第１のメモリに格納して書き換え不能に保護し、特定のモジュールを専用に動作させるようにして不正アクセスに対する高いセキュリティ性を確保することができ、その他の機能については、第２のメモリに書き換え可能とし、不特定多数のアクセスに対する柔軟な許容性を確保でき、高いセキュリティ性と利便性の両方を確保することが可能である。
【図面の簡単な説明】
【図１】本実施の形態例による回路装置の構成例を示すブロック図である。
【図２】図１に示す回路装置の動作例を示すフローチャートである。
【符号の説明】
１０……集積回路、１２……ＣＰＵ、１４……書き換え不能メモリ、１６……書き換え可能メモリ、１８……書き換え不能メモリインタフェース、２０……メインロジック回路部、２２……内部バス、２４……外部インタフェース、２６……外部メモリ。
【図１】
2004341769.tif 000003
【図２】
2004341769.tif 000004