説明

マイクロコントローラ装置

【目的】外部からの攻撃によって盗聴や改竄が行われる危険を最大限回避すると共に、アクセス効率や保守性の向上を図ったマイクロコントローラ装置を提供する。
【構成】本発明によるマイクロコントローラ装置は、主記憶部の記憶内容に対する使用要求に対してセキュリティ制御を行うセキュリティ制御部と、システム情報と前記システム情報を元にして前記セキュリティ制御の態様を設定するセキュリティ設定プログラムとを変更不能に記憶する変更不能記憶部と、起動された場合に、前記機能プログラムの実行に先立って、前記セキュリティ設定プログラムを前記変更不能記憶部から読み込んでこれを実行するセキュリティ設定プログラム実行部と、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロコントローラ装置に関し、特に、セキュリティ認証、カード決済或いは個人認証等のセキュリティが高度に求められる機能プログラムを実行するマイクロコントローラ装置に関する。
【背景技術】
【0002】
セキュリティが高度に求められる機能プログラムを実行するマイクロコントローラ装置は、個人の財産に得喪に係る重要な機能を担う装置である。そのため、かかるマイクロコントローラ装置は、常に、害意ある攻撃者からの盗聴や改竄の危険に晒されることになる。つまり、セキュリティ認証、カード決済或いは指紋認証等の機能プログラムを実行するマイクロコントローラ装置に対してはそれ自身のセキュリティ対策が高度に求められることになる。
【0003】
マイクロコントローラ装置における従来のセキュリティ設定としては、例えば、図1に示されるように主記憶メモリ装置13(以下、RAM13と称する)のブロック毎にセキュリティレベルに応じた読み込み/書き込みの許可や不許可を行う設定がある。図1に示される例では、セキュリティレベル0の場合に、RAM13において、メモリアドレス「0x00000000〜0x00001000」のブロックの読み込み又は書き込みが許可され、セキュリティレベル1の場合に、アドレス「0x00000000〜0x00001000」のブロックの読み込み又は書き込みが禁止されている。また、センサインタフェース161〜163の各々が有効又は無効に設定されている。かかるセキュリティ設定は、通常、RAM13の別の領域に設けられた設定テーブル131に対して行われる。マイクロコントローラ装置は、実際にメモリ読込等の使用要求があった場合に、設定テーブル130を参照して、アクセスを許可するか又は禁止するセキュリティ制御を行う。
【0004】
引用文献1は、フラッシュメモリ2がプログラムを記憶する第1エリアAと、消去、書き込み及び読み込みの各禁止フラグを記憶する第2エリアBを含み、CPUが第2エリアBに記憶されているフラグ情報を参照することによって第1エリアAに記憶されているプログラムが実行されるべきか否かを判定するシングルチップマイクロコンピュータを開示している。しかしながら、開示の構成では、セキュリティ管理が容易になる反面、フラグ情報等のセキュリティ情報が外部から読み込み又は書き込み可能なフラッシュメモリ2に保持されることから攻撃者によって改変される危険がある。
【0005】
引用文献2は、保護対象の制御ソフトとアクセス許可のために使用する統合キーをフラッシュメモリ103に格納し、機種固有のパスワードおよび照合用のパスワードを作成するためのチェック用プログラムを書き換え不可のROM102しておく情報処理機器を開示している。しかしながら、開示の構成では、改竄された制御ソフトの使用を禁止することができるものの、メモリブロック単位の如き多様なセキュリティ設定を行うことができないという問題がある。
【0006】
引用文献3は、セキュリティ解除のためのキーワードをフラッシュメモリ2のユーザプログラムエリアの一部領域211に書き込み、リセット解除後のCPUが動作する前に、そのキーワードをセキュリティ制御回路4に転送するマイクロコンピュータシステムを開示している。開示の構成は、システムが初期化されると、セキュリティ制御回路4に対して当該キーワードに一致するキーワードが通知されるまで、フラッシュメモリ2に対する消去、書き込み操作を禁止している。しかしながら、開示の構成では、害意ある攻撃者によってセキュリティ解除のためのキーワード自体が改竄されてフラッシュメモリ2に書き込まれた場合には、セキュリティが確保されないという問題がある。
【0007】
引用文献4は、内蔵ROMの状態でユーザテストモード実行後にユーザの正規プログラムを書き込むことが可能で、プログラム実行モードでセキュリティチェックを行えるユーザプログラム内蔵型の遊技機用マイクロコンピュータチップを開示している。しかしながら、開示の構成は、ROMに対する書き込み禁止フラグをハードウェア的に保持し、当該書き込み禁止フラグを変更設定することで、製品出荷前のテストプログラムの書き込みを許すと共に、製品出荷時にはROMに対する書き込みを禁止する設定をなすものである。そのため、書き込み禁止フラグが攻撃者により操作された場合には、容易にプログラムの改竄がなされ危険がある。
【0008】
引用文献5は、セキュリティフラグを書き込む領域を有する1回だけ書き換え可能な不揮発性メモリであるPROM11と、PROM11に書き込まれたセキュリティフラグの設定に従って、セキュリティ保護機能付きマイクロコンピュータ1が内蔵する各種リソースに対するCPU13からのアクセスを制御するアクセス制御部12と、を有するセキュリティ保護機能付きマイクロコンピュータを開示している。しかしながら、開示の構成では、アクセス制御回路12がCPU13からのアクセス要求毎に毎回PROM11に書き込まれたセキュリティフラグを参照する必要があり、著しくアクセス効率を損なうという問題や、セキュリティフラグの設定が最初の1回だけ可能であって仕様変更が容易ではなく保守性に欠けるという問題がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】米国特許第6453397号
【特許文献2】特開平10−289105号
【特許文献3】特開平11−120081号
【特許文献4】特開平11−300016号
【特許文献5】特開2008−203988号
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記に説明したようなセキュリティ対策によってはなお外部からの攻撃によって盗聴や改竄が行われる危険があると共に、アクセス効率や保守性に劣るという問題がある。
【0011】
本発明の目的は、外部からの攻撃によって盗聴や改竄が行われる危険を最大限回避すると共に、アクセス効率や保守性の向上を図ったマイクロコントローラ装置を提供することである。
【課題を解決するための手段】
【0012】
本発明によるマイクロコントローラ装置は、主記憶部を含み、機能プログラムを前記主記憶部に記憶してこれを実行するマイクロコントローラ装置であって、前記主記憶部の記憶内容に対する使用要求に対してセキュリティ制御を行うセキュリティ制御部と、システム情報と前記システム情報を元にして前記セキュリティ制御の態様を設定するセキュリティ設定プログラムとを変更不能に記憶する変更不能記憶部と、起動された場合に、前記機能プログラムの実行に先立って、前記セキュリティ設定プログラムを前記変更不能記憶部から読み込んでこれを実行するセキュリティ設定プログラム実行部と、を含むことを特徴とする。
【発明の効果】
【0013】
本発明によるマイクロコントローラ装置によれば、セキュリティに関連するシステム情報とセキュリティ設定プログラムを読み込み専用メモリ(ROM)内に保持し、コントローラ起動時に当該システム情報を元にセキュリティ設定プログラムがセキュリティ設定を行う構成が与えられる。これにより、外部からの攻撃によって盗聴や改竄が行われる危険を回避することが可能となる。
【発明を実施するための形態】
【0014】
本発明の実施例について添付の図面を参照しつつ詳細に説明する。
【0015】
<第1の実施例>
図2は、第1の実施例におけるマイクロコントローラ装置の構成を示している。ここで、マイクロコントローラ装置10は、中央演算処理装置(以下、CPUと称する)11と、CPU11に接続され且つセキュリティ設定に応じて各部の動作態様を制御するセキュリティ制御回路12と、1CPU11によって読み込み及び書き込みが可能な主記憶メモリ(以下、RAMと称する)13と、CPU11によって読み込み可能な読み込み専用メモリ(以下、ROMと称する)14と、ホストインタフェース15と、複数の例えば図示されるように3つのセンサインタフェース161〜163と、CPU11と各部との間でデータ信号の伝達を行うデータバス19と、を含む。
【0016】
セキュリティ制御回路12は、機能プログラムの実行により発生する使用要求に対する各部のセキュリティ動作の態様を当該各部に制御信号を供給して制御する。例えば、RAM13に対してはアドレス指定されたメモリブロック毎に読み込み、書き込み又は実行のセキュリティ動作の態様を制御する。ホストインタフェース15やセンサインタフェース161〜163の各部に対しては有効又は無効のセキュリティ動作の態様を制御する。かかるセキュリティ動作の態様は、CPU11によるセキュリティ設定プログラムの実行によるセキュリティ設定によって設定される。
【0017】
ROM14には、セキュリティ設定プログラム141と、システム情報142と、機能プログラム143と、が予め変更不能に記憶されている。ROM14は、本実施例において読み込み専用メモリであるとして説明されるが、システム情報やセキュリティ設定プログラムが予め1回だけ書き込み可能な不揮発性メモリであってもよい。
【0018】
セキュリティ設定プログラム141は、CPU11により実行されるプログラムであり、その実行により、ROM14に記憶されていたシステム情報142を読み込み、その内容を元にしてセキュリティ制御回路12に対してセキュリティ設定を行う。セキュリティ設定の例としては、例えば、RAM13のメモリブロック毎に読み込み、書き込み及び実行の許可又は禁止設定と、センサインタフェース161〜163の各々の有効又は無効設定等の動作態様がある。セキュリティ設定プログラム141は、セキュリティ設定完了の後に、機能プログラム143をRAM14にロードしてCPU11の制御を機能プログラム143に移行する命令を備える。
【0019】
機能プログラム143は、CPU11により実行されるプログラムであり、マイクロコントローラ装置10の主たる機能を実行する。主たる機能としては、例えば、カード決済機能、個人認証機能、暗号鍵生成機能、暗号化及び復号化機能等の多様な機能が想定される。機能プログラム143は、また、センサインタフェース161〜163を介して外部のセンサデータを取り込む機能を含んでもよい。センサデータとしては、例えば、指紋や虹彩等の生体データのみならず、温度データ、電圧データ又は時間データであってもよい。機能プログラム143は、さらに、ホストインタフェース15を介して、外部のホストコントローラとの間で制御信号やデータ信号を送受信してもよい。外部のホストコントローラとしては、例えば、現金出納端末や携帯端末のホストコントローラが想定される。
【0020】
マイクロコントローラ装置10は、また、無線又は有線による通信インタフェースを備えてもよく、例えば、LAN通信、IP通信さらには暗号化IP通信等の多様な通信方式に対応してもよい。
【0021】
図3は、図2に示されたシステム情報の例を示している。システム情報142は、例えば、第1ブロックB1には、セキュリティレベル0の場合におけるメモリブロック(例えば、アドレス0x00000000〜0x00001000の範囲)に対する読み込み、書き込み及び実行の各態様に対する設定情報が記憶されている。第1ブロックB1は、また、センサ毎に有効無効の設定情報が記憶され、例えば、図示されるようにセンサ1に対して有効の設定情報が記憶されている。第2ブロックB2には、セキュリティレベル1の場合における同様の設定情報が記憶されている。セキュリティレベルとは、機能プログラム143の機能内容に応じた機密性のレベルであり、機能プログラム143に求められる機能に依存して多様なレベルが想定される。例えば、機能プログラム143が操作入力処理モジュールや暗号化処理モジュールを備える場合が想定される。この場合、操作入力処理モジュールは、セキュリティレベル0において平文を処理してこれを暗号化処理モジュールに渡し、暗号化処理モジュールは、セキュリティレベル1において平文の暗号化を行う等の多様な形態が想定される。
【0022】
尚、本図の例では、セキュリティレベル0と1の場合の2つのレベルについてのみ示されているが、本発明にかかる限定はなく、2つ以上のセキュリティレベルの設定情報が含まれてもよい。
【0023】
図4は、第1の実施例におけるマイクロコントローラ装置の動作手順を示している。本動作手順の主体はマイクロコントローラ装置である。前提として、図2に示されたように、マイクロコントローラ装置10のROM14には、機能プログラムとシステム情報とこのシステム情報を元にセキュリティ設定を行うセキュリティ設定プログラムが配置されている。システム情報は、セキュリティ設定プログラムからしか読み込むことが出来ない領域に配置され、セキュリティ設定プログラム及び機能プログラムの何れからも改変することは出来ない。
【0024】
先ず、電源投入を契機とするリセット信号に応じて、マイクロコントローラ装置10は起動を開始する(ステップS1)。次いで、マイクロコントローラ装置10は、セキュリティ設定プログラムを読み込んでこれをCPU11によって実行する(ステップS2)。セキュリティ設定プログラムの実行によって、マイクロコントローラ装置10はROM14からシステム情報を読み込む(ステップS3)。
【0025】
次に、マイクロコントローラ装置10は、セキュリティ設定プログラムの実行によって、当該システム情報を元にしてセキュリティ制御回路12に対してセキュリティ設定を行う(ステップS4)。すなわち、セキュリティ設定プログラムの実行によって、ROM14内に格納されたシステム情報を元にセキュリティレベル毎にRAM13内のデータの読み込み、書き込み及び実行の許可/禁止の設定やセンサの有効/無効のセキュリティ設定をセキュリティ制御回路に対して行う。
【0026】
次に、マイクロコントローラ装置10は、ROM14又は外部から機能プログラムを読み込む(ステップS5)。図2において機能プログラムは変更不能な記憶部であるROM14に記憶されていて改竄が不可能な状態にあるが、機能プログラムに対する柔軟な拡張性や保守性を維持する目的でホストインタフェースを介してホスト側装置(例えば、決済端末におけるホストコントローラ装置)から取り込みようにすることも可能である。次いで、読み出した機能プログラムをRAM14にロードする(ステップS6)。
【0027】
次に、マイクロコントローラ装置10は、CPU11によって機能プログラムを実行する(ステップS7)。かかる機能プログラムの実行により、例えば、カード決済機能や指紋認証機能等の機能が実現される。機能プログラムは、さらに、セキュリティ設定に違反した動作、例えば読み込み禁止領域の読み込みなどを行った場合や外部からの攻撃をセンサが感知した場合などにセキュリティ違反であると認識し、かかる認識に応じた処理、例えば重要データの消去等の処理を行うようにしてもよい。
【0028】
以上の第1の実施例において、セキュリティ情報がROM14内に配置され、これをセキュリティ設定プログラムからのみ読み込み可能とすることで秘匿しておきたいプログラムやデータをより強固に守ることが可能になる。違法動作するプログラムに機能プログラムが書き換えられてしまった場合でも、セキュリティ設定が変更不可能なために秘匿しておきたいプログラムやデータを守ることが可能となる。また、セキュリティ設定に従ったセキュリティ制御がセキュリティ制御部12によってなされ、RAM13へのアクセス毎に図1に示される如き設定テーブル130を参照する必要がなく、アクセス効率を損なうことがない。
【0029】
尚、以上の第1の実施例では、セキュリティ設定プログラムが機能プログラムと同様にRAM13にロードされて実行される形態が説明されたが、本発明にかかる限定はなく、セキュリティ設定プログラムがROM14に保持されたままRAM13にロードされることなく直接実行されるようにしてもよい。これにより、セキュリティ設定プログラムをユーザを含む外部の者から秘匿するようにして更にセキュリティを高めることができる。
<第2の実施例>
図5は、第2の実施例におけるマイクロコントローラ装置の構成を示している。第2の実施例はセキュリティ設定の再設定を可能とする形態を示している。マイクロコントローラ装置10は、第1の実施例と同様に、CPU11と、セキュリティ制御回路12と、RAM12と、ROM13と、ホストインタフェース15と、3つのセンサインタフェース161〜163と、データバス19と、を含む。CPU11は、リセット命令を実行することによってマイクロコントローラ装置10全体を再起動する機能を備える。これにより、電源投入による起動と同様にしてセキュリティ設定プログラムの再実行が可能となる。また、この再起動に際しては、RAM13の指定アドレス内の記憶データがクリアされることがないように制御される。これにより、当該指定アドレスに保持された再設定システム情報131がクリアされることなくセキュリティ設定プログラムへ受け渡しされる。
【0030】
機能プログラム143は、第1の実施例の場合と同様に、RAM14にロードされてCPU11によって実行されるプログラムである。機能プログラム143は、さらに、セキュリティ設定を再設定するためのリセット命令を含む。機能プログラム143の実行手順は、先ず、再設定システム情報131をRAM14に保持するための保持命令を実行し、次いで、マイクロコントローラ装置10をリセットして再起動するためのリセット命令を実行する手順を含む。再設定システム情報131は、システム情報142を元にしてこれに対して追加又は変更される情報を含む。再設定システム情報131の構成は、好ましくはシステム情報142と同様の構成として追加又は変更の単位をブロック単位とする。
【0031】
図6は、図5に示されたシステム情報の例を示している。システム情報142は、第1の実施例と同様の第1ブロックB1及び第2ブロックB2を含むと共に、さらに第3ブロックB3を含む。第3ブロックB3は、セキュリティ再設定を許可又は禁止する旨の設定情報と、再設定システム情報(図5の再設定システム情報131)の指定アドレスを含む。
【0032】
図7は、第2の実施例におけるマイクロコントローラ装置の動作手順を示している。本動作手順の主体はマイクロコントローラ装置である。前提として、第1の実施例の場合と同様に、マイクロコントローラ装置10のROM14には、機能プログラムとシステム情報とこのシステム情報を元にセキュリティ設定を行うセキュリティ設定プログラムが配置されている。システム情報は、セキュリティ設定プログラムからしか読み込むことが出来ない領域に配置され、セキュリティ設定プログラム及び機能プログラムの何れからも改変することは出来ない。
【0033】
先ず、機能プログラムからのリセット命令を契機とするリセット信号に応じて、マイクロコントローラ装置10は再起動を開始する(ステップS1)。次いで、マイクロコントローラ装置10は、ROM14からセキュリティ設定プログラムを読み込んでこれをCPU11によって実行する(ステップS2)。セキュリティ設定プログラムの実行において、マイクロコントローラ装置10は、ROM14からシステム情報を読み込み(ステップS3)、次いで、セキュリティ再設定が許可されているか否かを判定する(ステップS3−1)。もしセキュリティ再設定が許可されていない場合にはステップS4に進み、第1の実施例の場合と同様の動作手順を行う(ステップS4〜S7)。
【0034】
一方、ステップS3−1においてセキュリティ再設定が許可されていると判定した場合、マイクロコントローラ装置10は、RAM14の指定アドレスから、再設定システム情報を読み込む(ステップS3−2)。ここで、マイクロコントローラ装置10は、再設定システム情報がRAM13の指定アドレスに有るか否かを判定する(ステップS3−3)。もし再設定システム情報がRAM13の指定アドレスに無い場合にはステップS4に進み以降の動作を行う(ステップS4〜S7)。
【0035】
一方、再設定システム情報がRAM13の指定アドレスに有る場合には、マイクロコントローラ装置10は、当該再設定システム情報と元となるシステム情報に基づいてセキュリティ制御回路12に対してセキュリティ設定を行う(ステップS3−4)。例えば、再設定システム情報の各ブロック毎にシステム情報に同一のブロックが有るか否かを判定し、もしなければ当該ブロックを追加し、あれば当該ブロックで置き換える操作を行って、再設定された内容のセキュリティ設定を行う。次いで、マイクロコントローラ装置10は、ステップS5に進み、第1の実施例と同様の動作手順を行う(ステップS5〜S7)。
【0036】
以上の第2の実施例によれば、セキュリティ設定の再設定が可能となる。これにより、セキュリティ設定をより柔軟に行うことが可能となる。特に、セキュリティレベルの数に制限のあるシステムにおいて有効である。例えば、メンテナンスの時にのみセンサを無効にして保守性を高め、通常の運用時にはセンサを有効にしてセキュリティを守るなどの多様な運用が可能となる。
【0037】
尚、以上の複数の実施例においては、CPU11がセキュリティ設定プログラムを実行すると説明されたが、変形例として、セキュリティ設定プログラムがセキュリティ制御回路12に含まれる演算回路によって直接実行されてもよい。かかる変形例によれば、セキュリティ制御回路12によるセキュリティ設定プログラムの実行環境と、CPU11による機能プログラムの実行環境とが切り離され、外部からの攻撃に対する防御性をより高めることができる。
【図面の簡単な説明】
【0038】
【図1】従来のセキュリティ制御の動作形態を示す図である。
【図2】第1の実施例におけるマイクロコントローラ装置の構成を示すブロック図である。
【図3】図2に示されたシステム情報の例を示すブロック図である。
【図4】第1の実施例におけるマイクロコントローラ装置の動作手順を示すフローチャートである。
【図5】第2の実施例におけるマイクロコントローラ装置の構成を示すブロック図である。
【図6】図5に示されたシステム情報の例を示すブロック図である。
【図7】第2の実施例におけるマイクロコントローラ装置の動作手順を示すフローチャートである。
【符号の説明】
【0039】
10 マイクロコントローラ装置
11 中央演算処理装置(CPU)
12 セキュリティ制御回路
13 主記憶メモリ(RAM)
14 読み込み専用メモリ(ROM)
15 ホストインタフェース
19 データバス
131 再設定システム情報
141 セキュリティ設定プログラム
142 システム情報
143 機能プログラム
161〜163 センサインタフェース

【特許請求の範囲】
【請求項1】
主記憶部を含み、機能プログラムを前記主記憶部に記憶してこれを実行するマイクロコントローラ装置であって、
前記主記憶部の記憶内容に対する使用要求に対してセキュリティ制御を行うセキュリティ制御部と、
システム情報と前記システム情報を元にして前記セキュリティ制御の態様を設定するセキュリティ設定プログラムとを変更不能に記憶する変更不能記憶部と、
起動された場合に、前記機能プログラムの実行に先立って、前記セキュリティ設定プログラムを前記変更不能記憶部から読み込んでこれを実行するセキュリティ設定プログラム実行部と、
を含むことを特徴とするマイクロコントローラ装置。
【請求項2】
前記セキュリティ制御部は、前記記憶部に記憶されたデータ又は命令に対する読み込み、書き込み又は実行を許可又は禁止する態様のアクセス制御を行い、前記システム情報は、複数のセキュリティレベルの各々に対応付けて前記セキュリティ制御の態様を画定する設定情報を含むことを特徴とする請求項1記載のマイクロコントローラ装置。
【請求項3】
センサ信号を送受信する少なくとも1つのセンサインタフェース部をさらに含み、前記セキュリティ制御部は、前記センサインタフェース部を有効化又は無効化するセンサ制御を行い、前記システム情報は、複数のセキュリティレベルの各々に対応付けて前記センサ制御の態様を画定する設定情報を含むことを特徴とする請求項1記載のマイクロコントローラ装置。
【請求項4】
前記セキュリティ設定プログラムは、前記システム情報にセキュリティ再設定を許可する設定情報が含まれている場合に限り、前記セキュリティ制御の態様を前記システム情報と共に前記機能プログラムの実行により保持された再設定システム情報を元にして設定することを特徴とする請求項1記載のマイクロコントローラ装置。
【請求項5】
前記セキュリティ設定プログラム実行部は、前記セキュリティ設定プログラムを、前記機能プログラムを実行するために備えられる中央演算処理部を用いて実行することを特徴とする請求項1記載のマイクロコントローラ装置。
【請求項6】
前記セキュリティ設定プログラム実行部は、前記セキュリティ設定プログラムを前記セキュリティ制御部に備えられる演算回路を用いて実行することを特徴とする請求項1記載のマイクロコントローラ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−286866(P2010−286866A)
【公開日】平成22年12月24日(2010.12.24)
【国際特許分類】
【出願番号】特願2009−137886(P2009−137886)
【出願日】平成21年6月9日(2009.6.9)
【出願人】(308033711)OKIセミコンダクタ株式会社 (898)
【Fターム(参考)】