<システム概要>
図1は情報処理システム1の構成の一例を示す図である。図1に示されるように、情報処理システム1は、サーバ装置2と、当該サーバ装置2と通信ネットワーク4を通じて接続された複数の情報処理装置3とを備えている。各情報処理装置3は、通信ネットワーク4を通じて、サーバ装置2と通信可能である。
通信ネットワーク4には、無線ネットワーク及び有線ネットワークの少なくとも一方が含まれる。本例では、通信ネットワーク4には、例えば、基地局等を含む、携帯電話システムのネットワーク、無線LAN(Local Area Network)及びインターネット等が含まれる。
サーバ装置2は、一種のコンピュータ装置であって、例えばクラウドサーバと呼ばれる。サーバ装置2は、各情報処理装置3を制御することが可能である。
各情報処理装置3は、例えば、センサを有し、当該センサが検出した情報をサーバ装置2に送信することが可能である。情報処理装置3は、例えば、家、オフィス、工場あるいは屋外などで使用されるIoT(Internet of Things)端末である。
サーバ装置2は、情報処理装置3から受信した情報に基づいて各種処理を行うことが可能である。サーバ装置2は、例えば、情報処理装置3から受信した情報を解析し、その解析結果に基づいて、当該情報処理装置3を制御したり、あるいは他の情報処理装置3を制御したりすることが可能である。またサーバ装置2は、その解析結果を表示してもよい。またサーバ装置2は、複数の情報処理装置3が送信する情報を取集し、取集した情報を表示してもよい。なお情報処理システム1は、複数のサーバ装置2を備えてもよい。またサーバ装置2は、情報処理装置3以外の装置と通信可能であってもよい。
<サーバ装置の構成例>
図2はサーバ装置2の構成の一例を示す図である。図2に示されるように、サーバ装置2は、例えば、制御部20と、記憶部21と、通信ネットワーク4に接続された通信部22と、表示部23と、乱数生成器24とを備える。制御部20、記憶部21、通信部22、表示部23及び乱数生成器24は、例えば、バス25で互いに電気的に接続されている。
表示部23は、例えば、液晶ディスプレイあるいは有機ELディスプレイである。表示部23は、制御部20によって制御されることによって、文字、記号、図形などの各種情報を表示することが可能である。
乱数生成器24は、例えば、サーバ装置2と情報処理装置3との間の相互認証で使用される乱数を生成する。乱数生成器24は、例えば真正乱数を生成する。乱数生成器24は、乱数生成回路とも言える。なお、乱数生成器24は、疑似乱数を生成してもよい。サーバ装置2と情報処理装置3との間の相互認証については後で詳細に説明する。
記憶部21は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、コンピュータが読み取り可能な非一時的な記録媒体を含む。記憶部21には、サーバ装置2を制御するための制御プログラムが記憶されている。
制御部20は、サーバ装置2の他の構成要素を制御することによって、サーバ装置2の動作を統括的に管理することが可能である。制御部20は制御回路であるとも言える。制御部20は、例えば、CPU(Central Processing Unit)を備えている。制御部20の各種機能は、当該制御部20が備えるCPUが記憶部21内の制御プログラムを実行することによって実現される。
通信部22は、有線あるいは無線で通信ネットワーク4に接続されている。通信部22は通信回路であるとも言える。通信部22は、通信ネットワーク4を通じて、当該通信ネットワーク4に接続された、情報処理装置3等の装置と通信することが可能である。通信部22は、通信ネットワーク4から受け取った情報を制御部20に入力することが可能である。また通信部22は、制御部20から受け取った情報を通信ネットワーク4に出力することが可能である。
なお、サーバ装置2の構成は図2の例には限られない。例えば、制御部20は、複数のCPUを備えてもよい。また制御部20は、少なくとも一つのDSP(Digital Signal Processor)を備えてもよい。また、制御部20の全ての機能あるいは制御部20の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
また記憶部21は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部21は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えてもよい。
またサーバ装置2は、制御部20、記憶部21、通信部22及び表示部23以外の構成を備えてもよい。サーバ装置2は、例えば、タッチパネル等の、ユーザがサーバ装置2に情報を入力するための入力装置を備えてもよい。
<情報処理装置の構成例>
図3は情報処理装置3の構成の一例を示す図である。本例では、情報処理装置3の主な機能は、例えば、センサで情報を検出し、検出した情報に対して所定の処理を行うことである。情報処理装置3の主な機能は、これに限られず、他の機能であってもよい。
図3に示されるように、情報処理装置3は、当該情報処理装置3の主な機能を実行する主装置30と、当該主装置30を制御することによって、当該情報処理装置3の安全性を向上させる動作制御装置40と、ユーザが操作するリセットスイッチ50とを備える。
主装置30は、例えば、樹脂等から成るパッケージ300に収納された集積回路である。主装置30は、複数のダイで構成されてもよいし、一つのダイで構成されてもよい。ダイは、ウェハチップとも呼ばれる。動作制御装置40は、例えば、樹脂等から成るパッケージ400に収納された集積回路である。動作制御装置40は、複数のダイで構成されてもよいし、一つのダイで構成されてもよい。主装置30と動作制御装置40とは、例えば同じ基板60に実装されている。主装置30及び動作制御装置40は、基板60に設けられた配線によって互いに電気的に接続されている。
主装置30と動作制御装置40とは、互いに通信することによって、情報のやり取りを互いに行うことができる。主装置30と動作制御装置40とは、例えば、SPI(Serial Peripheral Interface)あるいはI2C(Inter-Integrated Circuit)に基づいて互いに通信することが可能である。なお、主装置30と動作制御装置40との間の通信方式はこれに限られない。また本例では、主装置30と動作制御装置40とは、互いに有線通信を行っているが、互いに無線通信を行ってもよい。
主装置30は、センサを有し、当該センサが検出する情報を通信ネットワーク4を通じてサーバ装置2に送信する。また、主装置30は、動作制御装置40が出力するクロック信号に基づいて動作を行う。動作制御装置40は、後述するように、クロック信号を主装置30に対して供給しないことによって、主装置30の動作を停止することができる。動作制御装置40は、主装置30が有する機能を制御することができるとも言える。
リセットスイッチ50は、ユーザが操作できるように、情報処理装置3のケースから露出するように、当該情報処理装置3に設けられる。リセットスイッチ50は、ユーザによって操作されると(例えば押されると)、操作されたことを示す操作信号SSを動作制御装置40に出力する。動作制御装置40は、リセットスイッチ50からの操作信号SS等に基づいて、当該動作制御装置40が備える各種回路に入力されるリセット信号をアサートすることができる。これにより、動作制御装置40の動作が初期化される。また動作制御装置40は、主装置30に入力されるリセット信号をアサートすることが可能である。これにより、主装置30の動作が初期化される。
<主装置の構成例>
図4は主装置30の構成の一例を示す図である。図4に示されるように、主装置30は、例えば、制御部310と、記憶部320と、少なくとも一つのセンサを備えるセンサ装置330と、第1通信部340と、第2通信部350と、処理回路360とを備える。主装置30が備えるこれらの構成要素は、パッケージ300に収納されている。制御部310、記憶部320、センサ装置330、第1通信部340、第2通信部350及び処理回路360は、例えば、バス380で互いに電気的に接続されている。主装置30は、情報処理装置3の主な機能を実現する主回路とも言える。
記憶部320は、ROM及びRAMなどの、コンピュータが読み取り可能な非一時的な記録媒体を含む。また記憶部320は、レジスタを含んでもよい。記憶部320には、主装置30を制御するための制御プログラムが記憶されている。
制御部310は、主装置30の他の構成要素を制御することによって、主装置30の動作を統括的に管理することが可能である。制御部310は制御回路であるとも言える。制御部310は、例えばCPUを備えている。制御部310の各種機能は、当該制御部310が備えるCPUが記憶部320内の制御プログラムを実行することによって実現される。
センサ装置330は、例えば、温度センサ、加速度センサ、地磁気センサ、ジャイロセンサ、圧力センサ及びイメージセンサの少なくとも一つを備える。センサ装置330が備えるセンサは、これに限られず、センサ装置330は他のセンサを備えてもよい。センサ装置330で検出された情報(例えば、温度及び加速度など)は記憶部320に記憶される。以後、センサ装置330で検出された情報を「センサ情報」と呼ぶことがある。
第1通信部340は、動作制御装置40と、例えばSPIあるいはI2Cに基づいて通信することが可能である。第1通信部340は通信回路であるとも言える。第1通信部340は、動作制御装置40から受け取った情報を制御部310に入力することが可能である。また第1通信部340は、制御部310から受け取った情報を動作制御装置40に出力することが可能である。
第2通信部350は、有線あるいは無線で通信ネットワーク4に接続されている。第2通信部350は通信回路であるとも言える。第2通信部350は、通信ネットワーク4を通じて、当該通信ネットワーク4に接続された、サーバ装置2等の装置と通信することが可能である。第2通信部350は、通信ネットワーク4から受け取った情報を制御部310に入力することが可能である。また第2通信部350は、制御部310から受け取った情報を通信ネットワーク4に出力することが可能である。
処理回路360は、制御部310に制御されることによって、記憶部320内のセンサ情報に対して所定の処理を行うことが可能である。処理回路360は、記憶部320からセンサ情報を読み出して、読み出したセンサ情報に対して、例えば、フィルタ処理等を含む加工処理を行う。処理回路360は、加工処理後のセンサ情報を、処理済みセンサ情報として記憶部320に記憶する。本例では、情報処理装置3の主な機能は、センサ装置330で情報を検出し、検出した情報を処理回路360で処理することである。処理回路360は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されている。なお、処理回路360が実行する処理はこの限りではない。
主装置30は、動作制御装置40から出力されるクロック信号CLKm及びリセット信号RSがそれぞれ入力されるクロック入力口301及びリセット入力口302を備える。本例では、クロック入力口301及びリセット入力口302のそれぞれは、パッケージ300に設けられた金属端子となっている。したがって、本例では、クロック入力口301及びリセット入力口302は、クロック入力端子301及びリセット入力端子302とも言える。主装置30は、クロック入力口301に入力されるクロック信号CLKmに基づいて動作を行う。また主装置30は、リセット入力口302に入力されるリセット信号RSがアサートされると、その動作を初期化する。
なお、主装置30の構成は図3,4の例には限られない。例えば、主装置30が備える複数の回路が、複数のパッケージに分けられて収納されてもよい。また制御部310は、複数のCPUを備えてもよい。また制御部310は、少なくとも一つのDSPを備えてもよい。また、制御部310の全ての機能あるいは制御部310の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また記憶部320は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部320は、例えば、小型のハードディスクドライブ及びSSDなどを備えてもよい。
以上のように、本例では、主装置30は、情報処理装置3の主な機能を実行する。また、主装置30は、サーバ装置2と通信することが可能であることから、サーバ装置2と通信する機能も実行する。以後、情報処理装置3がサーバ装置2と通信する機能を「サーバ通信機能」と呼ぶことがある。主装置30は、情報処理装置3が有する主な機能とサーバ通信機能を実現する回路であると言える。
<動作制御装置の構成例>
図5は動作制御装置40の構成の一例を示す図である。図5に示されるように、動作制御装置40は、例えば、制御部410と、タイマー420と、記憶部430と、乱数生成器440と、動作許可レジスタ450と、動作制御部460と、通信部470と、クロック生成部480と、リセット信号生成部490とを備える。動作制御装置40が備えるこれらの構成要素は、パッケージ400に収納されている。制御部410、タイマー420、記憶部430、乱数生成器440、動作許可レジスタ450及び通信部470は、例えば、バス550で互いに電気的に接続されている。
クロック生成部480は、情報処理装置3の動作の基準となるクロック信号CLKを生成する。クロック生成部480はクロック生成回路とも言える。クロック信号CLKは、動作制御装置40が備える、制御部410及び通信部470等を含む内部回路に供給される。動作制御装置40は、クロック信号CLKに基づいて動作する。クロック生成部480は、水晶発振器を備えてもよいし、水晶を利用しない発振器を備えてもよい。水晶を利用しない発振器としては、例えば、MEMS(Micro Electro Mechanical Systems)を利用した発振器がある。
リセット信号生成部490は、リセットスイッチ50から操作信号SSが入力されると、リセット信号RSを一定時間アサートする。リセット信号生成部490はリセット信号生成回路とも言える。また、リセット信号生成部490は、情報処理装置3の電源がオフからオンに切り替われると、リセット信号RSを一定時間アサートする。リセット信号RSは、動作制御装置40が備える、制御部410及び通信部470等を含む内部回路に入力される。これにより、リセットスイッチ50が操作されたとき、動作制御装置40の動作が初期化される。また、情報処理装置3の電源がオフからオンに切り替わったときに、動作制御装置40の動作が初期化される。リセット信号生成部490で生成されたリセット信号RSは、主装置30のリセット入力口302にも入力される。
記憶部430は、ROM及びRAMなどの、コンピュータが読み取り可能な非一時的な記録媒体を含む。記憶部430には、動作制御装置40を制御するための制御プログラムが記憶されている。
制御部410は、動作制御装置40の他の構成要素を制御することによって、動作制御装置40の動作を統括的に管理することが可能である。制御部410は制御回路であるとも言える。制御部410は、例えばCPUを備えている。制御部410の各種機能は、当該制御部410が備えるCPUが記憶部430内の制御プログラムを実行することによって実現される。
本例では、制御部410は、情報処理装置3からサーバ装置2に送信される情報を暗号化することができる。また、制御部410は、サーバ装置2から情報処理装置3が受信する、暗号化された情報を復号化することができる。記憶部430には、暗号化及び復号化に必要な鍵が記憶されている。制御部410は、情報処理装置3からサーバ装置2に送信される情報を記憶部430内の鍵を用いて暗号化する。また制御部410は、サーバ装置2から情報処理装置3が受信する、暗号化された情報を、記憶部430内の鍵を用いて復号化する。
タイマー420は、制御部410によって設定された所定時間を計測することが可能な回路である。乱数生成器440は、例えば、情報処理装置3とサーバ装置2との間の相互認証で使用される乱数を生成する。乱数生成器440は、例えば真正乱数を生成する。乱数生成器440は乱数生成回路とも言える。なお、乱数生成器440は、疑似乱数を生成してもよい。
通信部470は、主装置30と、例えばSPIあるいはI2Cに基づいて通信することが可能である。通信部470は通信回路とも言える。通信部470は、主装置30から受け取った情報を制御部410に入力することが可能である。また通信部470は、制御部410から受け取った情報を主装置30に出力することが可能である。
動作許可レジスタ450は、情報処理装置3がサーバ装置2から受信する動作許可情報500を記憶することが可能である。動作許可レジスタ450は、記憶部の一種であると言える。言い換えれば、動作許可レジスタ450は、記憶回路の一種であると言える。ここで、動作許可情報500は、情報処理装置3の所定の機能の動作許可を示す情報である。情報処理装置3は、動作許可情報に応じて、所定の機能を動作させる。以後、当該所定の機能を「許可対象機能」と呼ぶことがある。
許可対象機能には、例えば、情報処理装置3の主な機能とサーバ通信機能とが含まれる。情報処理装置3では、主装置30がサーバ装置2からの動作許可情報500を受信し、受信した動作許可情報500を動作制御装置40に送信する。動作制御装置40は、通信部470において、主装置30からの動作許可情報500を受信する。制御部410は、通信部470で受信された動作許可情報500を動作許可レジスタ450に記憶する。
動作制御部460は、動作許可レジスタ450内の動作許可情報500に基づいて、許可対象機能を制御することが可能である。動作制御部460は動作制御回路とも言える。本例では、動作制御部460は、動作許可情報500に基づいて主装置30の動作を制御することによって、許可対象機能を制御する。動作制御部460は、クロック信号の主装置30に対する供給を制御することによって、主装置30を動作させるか否かを制御することが可能である。
動作制御部460は、例えば、カウントダウンタイマー461及びクロックゲート462を備えている。カウントダウンタイマー461は、所定時間を計測することが可能な回路である。クロックゲート462は、カウントダウンタイマー461が所定時間を計測している間だけ、入力されるクロック信号CLKを、クロック信号CLKmとして、主装置30のクロック入力口301に出力することが可能な回路である。カウントダウンタイマー461及びクロックゲート462には、クロック信号CLKが入力される。
ここで、本例では、動作許可情報500には、許可対象機能が動作することが可能な動作可能期間を示す期間情報が含まれる。本例では、期間情報は、許可対象機能を実行する主装置30が動作することが可能な動作可能期間を示すとも言える。期間情報が示す動作可能期間は、例えば、数時間から数十時間に設定される。なお、期間情報が示す動作可能期間はこれに限られない。以後、単に動作可能期間と言えば、期間情報が示す動作可能期間(言い換えれば、動作許可情報500が示す動作可能期間)を意味する。動作可能期間をT1で表すと、T1は数時間から数十時間となる。
本例では、動作許可情報500に含まれる期間情報は、主装置30がクロック信号CLKに基づいて動作することが可能な入力クロック数で表される。つまり、動作可能期間T1は、クロック信号CLKの入力クロック数で表される。
ここで、クロックとは、クロック信号CLKの立ち上がり(言い換えれば立ち上がりエッジ)あるいは立ち下り(言い換えれば立ち下がりエッジ)を意味する。そして、入力クロックとは、クロック信号CLKについての入力される立ち上がり(言い換えれば立ち上がりエッジ)あるいは入力される立ち下がり(言い換えれば立ち下がりエッジ)を意味する。したがって、入力クロック数は、クロック信号CLKについての入力される立ち上がりの数(言い換えれば立ち上がりエッジの数)あるいは入力される立ち下がりの数(言い換えれば立ち下がりエッジの数)を意味する。以後、主装置30がクロック信号CLKに基づいて動作することが可能な入力クロック数を「動作可能クロック数」と呼ぶことがある。また、動作可能クロック数をNで表すことがある。
動作許可レジスタ450に動作許可情報500が書き込まれると、動作許可レジスタ450内の動作許可情報500に含まれる動作可能クロック数Nが、自動的にカウントダウンタイマー461のカウント値に設定される。カウントダウンタイマー461は、カウント値が設定されるとカウント動作を開始する。これにより、カウントダウンタイマー461は、クロック信号CLKが立ち上がるたびにあるいは立ち下がるたびに、カウント値を1つだけカウントダウンする。言い換えれば、カウントダウンタイマー461は、クロックが入力されるたびに、カウント値を1つだけカウントダウンする。そして、カウントダウンタイマー461は、カウント値が零になると、カウント動作を停止する。これにより、カウントダウンタイマー461は、入力されるクロックを、動作可能クロック数N、カウントすることができる。言い換えれば、カウントダウンタイマー461は、動作許可情報500が示す動作可能期間を計測することができる。
カウントダウンタイマー461は、クロックゲート462の動作を制御するためのイネーブル信号ENSを、クロックゲート462のイネーブル入力口ENに入力する。カウントダウンタイマー461は、カウント動作を行っていないときには、イネーブル信号ENSをLowレベルに設定し、カウント動作を行っているときには、イネーブル信号ENSをHighレベルに設定する。クロックゲート462は、イネーブル入力口ENに入力されるイネーブル信号ENSがHighレベルのときだけ、クロック入力口CLKinに入力されるクロック信号CLKをクロック信号CLKmとして出力する。クロックゲート462から出力されるクロック信号CLKmは主装置30のクロック入力口301に入力される。これにより、カウントダウンタイマー461が、動作可能クロック数、入力クロックをカンウントすると、クロック信号CLKmのクロックが動作可能クロック数だけ主装置30に入力される。つまり、動作許可情報500が示す動作可能期間だけクロック信号CLKmが主装置30に入力される。よって、主装置30は、動作許可情報500が示す動作可能期間、動作することが可能となる。言い換えれば、主装置30は、クロック信号CLKmが入力されている間、許可対象機能を実行することが可能となる。本例では、主装置30は、クロック信号CLKmが入力されている間、センサ装置330で情報を検出し、検出した情報を処理回路360で処理することが可能となる。また、主装置30は、クロック信号CLKmが入力されている間、サーバ通信機能を実行することが可能である。
このように、情報処理装置3は、サーバ装置2から送信される動作許可情報500に含まれる期間情報に応じて、許可対象機能を動作させる。よって、サーバ装置2は、動作許可情報500を情報処理装置3に送信することによって、情報処理装置3の許可対象機能を制御することができると言える。
本例では、動作制御装置40の制御部410の動作モードには、通常モードと、動作制御装置40の安全性を高めるためのセキュアモードとが含まれる。制御部410の動作モードは、基本的には通常モードに設定される。そして、制御部410の動作モードは、動作制御装置40の安全性を高めたいときに例外的にセキュアモードに設定される。
本例では、制御部410は、動作モードがセキュアモードに設定されている場合にだけ、記憶部430にアクセスすることができる。つまり、制御部410が記憶部430にアクセスする場合には、動作モードはセキュアモードに設定されている。したがって、制御部410は、動作モードがセキュアモードに設定されている場合だけしか、記憶部430内の制御プログラムを実行することができない。また、制御部410は、動作モードがセキュアモードに設定されている場合だけしか、記憶部430内の鍵を用いて、情報を暗号化したり、暗号化された情報を復号化したりすることはできない。このような記憶部430は、セキュアメモリとも呼ばれる。
本例では、制御部410は、動作制御装置40のリセットが解除されると、つまり、リセット信号RSがネゲートされると、まず動作モードをセキュアモードに設定する。そして、制御部410は、記憶部430内の制御プログラムを実行して、動作制御装置40の初期設定を行う。その後、制御部410は、動作モードを通常モードに設定する。以後、制御部410は、必要なときにだけ動作モードをセキュアモードに設定する。
また制御部410は、動作モードがセキュアモードに設定されている場合にだけ、動作許可レジスタ450に情報を書き込むことが可能である。つまり、制御部410が、動作許可レジスタ450に情報を書き込む場合には、動作モードはセキュアモードに設定されている。また制御部410は、動作モードがセキュアモードに設定されている場合にだけ、タイマー420が計測する所定期間を当該タイマー420に設定することができる。通信部470が主装置30と通信する場合には、動作モードは通常モードに設定される。なお、通信部470が主装置30と通信する場合、動作モードがセキュアモードに設定されてもよい。
このように、制御部410の動作モードには、通常モードとセキュアモードが含まれることから、通常モードで動作する動作制御装置40が仮にハッキングされたとしても、セキュアモードで動作する動作制御装置40を保護することができる。よって、記憶部430及び動作許可レジスタ450内の重要な情報が書き換えられる可能性を低減することができる。さらに、記憶部430内の重要な情報が外部に漏れる可能性を低減することができる。その結果、動作制御装置40の安全性を向上することができる。
なお、動作制御装置40の構成は図3,5の例には限られない。例えば、動作制御装置40が備える複数の回路が、複数のパッケージに分けられて収納されてもよい。また制御部410は、複数のCPUを備えてもよい。また制御部410は、少なくとも一つのDSPを備えてもよい。また、制御部410の全ての機能あるいは制御部410の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また記憶部430は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部430は、例えば、小型のハードディスクドライブ及びSSDなどを備えてもよい。また記憶部430内の情報が暗号化されていてもよい。また動作制御装置40は、リセット信号生成部490を備えなくてもよい。この場合、リセット信号生成部490は、例えば、動作制御装置40及び主装置30とは異なるパッケージに収納されて、基板60上に実装されてもよい。
<相互認証の一例>
図6は、サーバ装置2と情報処理装置3との間の相互認証処理の一例を示すフローチャートである。相互認証処理は、情報処理装置3のリセットが解除されて、その動作が初期化された直後に実行される。相互認証処理では、例えば公開鍵暗号方式が用いられる。
本例では、情報処理装置3のリセットが解除されると、動作制御装置40の動作許可レジスタ450に対して初期値M(>0)が設定される。初期値Mは、例えば、主装置30が数秒間動作することが可能な値に設定される。言い換えれば、初期値Mは、主装置30にクロック信号CLKmが数秒間入力されるような値に設定される。動作許可レジスタ450に初期値Mが設定されると、カウントダウンタイマー461は、初期値Mをカウント値に設定してカウント動作を行う。これにより、動作許可レジスタ450の値が書き換えられなければ、主装置30には、クロックが初期値Mと同じ数だけ入力される。言い換えれば、主装置30には、数秒間、クロック信号CLKmが供給される。よって、情報処理装置3のリセットが解除された後、主装置30は動作することができる。以後、初期値Mに応じた、主装置30が動作することが可能な期間を「初期動作可能期間」と呼ぶことがある。図6に示される相互認証処理は、初期動作可能期間において実行される。初期動作可能期間をT0で表すと、T0は数秒程度となり、T0<T1となる。つまり、初期動作可能期間T0は、動作許可情報500が示す動作可能期間T1よりも短い。なお、T0≧T1であってもよい。
図6に示されるように、ステップs11において、情報処理装置3は、サーバ装置2が情報処理装置3を認証するための認証用の乱数を生成する。ステップs11では、動作制御装置40の制御部410は、乱数生成器440に、認証用の乱数を生成させる。制御部410は、乱数生成器440で生成された乱数を記憶部430に記憶する。以後、この乱数を「第1乱数」と呼ぶ。
さらに、ステップs11において、制御部410は、第1乱数からハッシュ値を生成して記憶部430に記憶する。以後、このハッシュ値を「第1ハッシュ値」と呼ぶ。次にステップs12において、制御部410は、記憶部430内の第1乱数をサーバ装置2の公開鍵で暗号化する。また制御部410は、記憶部430内の第1ハッシュ値を情報処理装置3の秘密鍵で暗号化する。暗号化で使用されるサーバ装置2の公開鍵及び情報処理装置3の秘密鍵は記憶部430に記憶されている。以後、暗号化された第1乱数を「暗号化第1乱数」と呼び、暗号化された第1ハッシュ値を「暗号化第1ハッシュ値」と呼ぶ。
次にステップs13において、情報処理装置3は、ステップs12で生成した暗号化第1乱数と暗号化第1ハッシュ値をサーバ装置2に送信する。ステップs13では、主装置30は、動作制御装置40から暗号化第1乱数及び暗号化第1ハッシュ値を受け取り、受け取った暗号化第1乱数及び暗号化第1ハッシュ値をサーバ装置2に送信する。
サーバ装置2は、受信した暗号化第1乱数及び暗号化第1ハッシュ値を、ステップs14において復号化する。ステップs14では、サーバ装置2の制御部20は、通信部22が受信した暗号化第1乱数を、サーバ装置2の公開鍵に対応するサーバ装置2の秘密鍵で復号化する。また制御部20は、通信部22が受信した暗号化第1ハッシュ値を、情報処理装置3の秘密鍵に対応する情報処理装置3の公開鍵で復号化する。復号化で使用されるサーバ装置2の秘密鍵及び情報処理装置3の公開鍵は記憶部21に記憶されている、制御部20は、暗号化第1乱数を復号化して得られる乱数を受信乱数として記憶部21に記憶する。また、制御部20は、暗号化第1ハッシュ値を復号化して得られるハッシュ値を受信ハッシュ値として記憶部21に記憶する。
次にステップs15において、制御部20は、記憶部21内の受信乱数からハッシュ値を求める。そして、制御部20は、求めたハッシュ値と記憶部21内の受信ハッシュ値とを比較する。制御部20は、両者が一致すれば、情報処理装置3の認証に成功したと判断する。この場合、記憶部21内の受信乱数は、情報処理装置3で生成された第1乱数と一致する。したがって、記憶部21内には第1乱数が記憶される。一方で制御部20は、両者が一致しない場合には、情報処理装置3の認証に失敗したと判断する。
次にステップs16において、サーバ装置2は、情報処理装置3の認証結果を当該情報処理装置3に通知する。情報処理装置3では、主装置30がサーバ装置2から認証結果を受け取ると、受け取った認証結果を動作制御装置40に送信する。動作制御装置40では、通信部470で受信された認証結果が制御部410に入力される。これにより、制御部410は、サーバ装置2が情報処理装置3に認証に成功したか否かを知ることができる。
ステップs16の後、ステップs17において、サーバ装置2は、情報処理装置3がサーバ装置2を認証するための認証用の乱数を生成する。ステップs17では、制御部20は、乱数生成器24に、認証用の乱数を生成させる。制御部20は、乱数生成器24で生成された乱数を記憶部21に記憶する。以後、この乱数を「第2乱数」と呼ぶ。
さらに、ステップs17において、制御部20は、第2乱数からハッシュ値を生成して記憶部21に記憶する。以後、このハッシュ値を「第2ハッシュ値」と呼ぶ。
次にステップs18において、制御部20は、記憶部21内の第2乱数を情報処理装置3の公開鍵で暗号化する。また制御部20は、記憶部21内の第2ハッシュ値をサーバ装置2の秘密鍵で暗号化する。暗号化で使用される情報処理装置3の公開鍵及びサーバ装置2の秘密鍵は記憶部21に記憶されている。以後、暗号化された第2乱数を「暗号化第2乱数」と呼び、暗号化された第2ハッシュ値を「暗号化第2ハッシュ値」と呼ぶ。
次にステップs19において、サーバ装置2は、ステップs18で生成した暗号化第2乱数と暗号化第2ハッシュ値を情報処理装置3に送信する。
情報処理装置3は、受信した暗号化第2乱数及び暗号化第2ハッシュ値を、ステップs20において復号化する。ステップs20では、主装置30の制御部310は、第2通信部350が受信した暗号化第2乱数及び暗号化第2ハッシュ値を第1通信部340に送信させる。これにより、暗号化第2乱数及び暗号化第2ハッシュ値が動作制御装置40に入力される。動作制御装置40では、制御部410は、通信部470で受信される暗号化第2乱数を、情報処理装置3の公開鍵に対応する情報処理装置3の秘密鍵で復号化する。また制御部410は、通信部470で受信される暗号化第2ハッシュ値を、サーバ装置2の秘密鍵に対応するサーバ装置2の公開鍵で復号化する。復号化で使用される情報処理装置3の秘密鍵及びサーバ装置2の公開鍵は記憶部430に記憶されている、制御部410は、暗号化第2乱数を復号化して得られる乱数を受信乱数として記憶部430に記憶する。また、制御部410は、暗号化第2ハッシュ値を復号化して得られるハッシュ値を受信ハッシュ値として記憶部430に記憶する。
次にステップs21において、制御部410は、記憶部430内の受信乱数からハッシュ値を求める。そして、制御部410は、求めたハッシュ値と記憶部430内の受信ハッシュ値とを比較する。制御部410は、両者が一致すれば、サーバ装置2の認証に成功したと判断する。この場合、記憶部410内の受信乱数は、サーバ装置2で生成された第2乱数と一致する。したがって、記憶部410内には第2乱数が記憶される。一方で制御部410は、両者が一致しない場合には、サーバ装置2の認証に失敗したと判断する。
次にステップs22において、情報処理装置3は、サーバ装置2の認証結果を当該サーバ装置2に通知する。ステップs22では、主装置30が、動作制御装置40から、サーバ装置2の認証結果を受け取り、受け取った認証結果をサーバ装置2に送信する。サーバ装置2では、通信部22で受信された認証結果が制御部20に入力される。これにより、制御部20は、情報処理装置3がサーバ装置2の認証に成功したか否かを知ることができる。
以上のようにして、情報処理装置3とサーバ装置2との間で相互認証が行われる。サーバ装置2の制御部20と、動作制御装置40の制御部410とは、情報処理装置3がサーバ装置2の認証に成功し、かつサーバ装置2が情報処理装置3の認証に成功した場合には、両者の間での相互認証が成功したと判断する。一方で、制御部20,410は、情報処理装置3がサーバ装置2の認証に失敗した場合、あるいはサーバ装置2が情報処理装置3の認証に失敗した場合には、両者の間の相互認証に失敗したと判断する。
<サーバ装置が動作許可情報を送信する際の情報処理システムの動作例>
本例では、サーバ装置2は、情報処理装置3に関する所定の条件の成立に応じて、動作許可情報を情報処理装置3に送信する。この所定の条件を「動作許可条件」と呼ぶことがある。
動作許可条件としては、例えば、サーバ装置2と情報処理装置3との間の相互認証の成功が考えられる。本例では、サーバ装置2は、情報処理装置3との間の相互認証が成功したと判断すると、それを条件として動作許可情報を情報処理装置3に送信する。
図7は、相互認証後のサーバ装置2及び情報処理装置3の動作の一例を示すフローチャートである。図7に示されるように、ステップs31において、サーバ装置2と情報処理装置3との間の相互認証が上述のように行われる。その後、ステップs32において、サーバ装置2の制御部20は、相互認証に成功したと判断すると、ステップs33において、動作許可情報を生成し、生成した動作許可情報を暗号化する。
ここで、本例では、サーバ装置2は、相互認証に成功した後は、記憶部21内における、相互認証で使用された第1及び第2乱数に基づいて生成された鍵を共通鍵として用いて情報を暗号化する。サーバ装置2の制御部410は、例えば、記憶部21内の第1及び第2乱数の排他的論路和を演算し、その演算結果を共通鍵として記憶部21に記憶する。同様に、情報処理装置3は、相互認証に成功した後は、動作制御装置40の記憶部430内における、相互認証で使用された第1及び第2乱数に基づいて生成された鍵を共通鍵として用いて情報を暗号化する。動作制御装置40の制御部410は、例えば、記憶部430内の第1及び第2乱数の排他的論路和を演算し、その演算結果を共通鍵として記憶部430に記憶する。サーバ装置2は、相互認証に成功した後に、情報処理装置3から暗号化された情報を受信する場合には、記憶部21内の共通鍵を用いて当該情報を復号化する。同様に、情報処理装置3は、相互認証に成功した後に、サーバ装置2から暗号化された情報を受信する場合には、記憶部430内の共通鍵を用いて当該情報を復号化する。なお、相互認証が成功した後にサーバ装置2及び情報処理装置3が情報を暗号化する際に使用する鍵は、上記の例には限られない。以後、単に「鍵」と言えば、第1及び第2乱数に基づいて生成された共通鍵を意味する。
ステップs33において、制御部20は、記憶部21内の鍵を用いて、動作許可情報を暗号化する。次にステップs34において、制御部20は、通信部22に、暗号化した動作許可情報(以後、「暗号化動作許可情報」と呼ぶことがある)を情報処理装置3に送信させる。なお、サーバ装置2は、相互認証に失敗した場合には、動作許可情報を送信しない。
情報処理装置3は、暗号化動作許可情報を受信すると、ステップs35において、受信した暗号化動作許可情報を復号化する。ステップs35では、主装置30の制御部310が、第2通信部350で受信された暗号化動作許可情報を第1通信部340に送信させる。これにより、暗号化動作許可情報が動作制御装置40に入力される。動作制御装置40では、制御部410は、通信部470で受信された暗号化動作許可情報を復号化する。具体的には、制御部20は、記憶部430内の鍵を用いて暗号化動作許可情報を復号化する。これにより、平文の動作化許可情報が得られる。
次にステップs36において、制御部410は、平文の動作許可情報を、動作許可レジスタ450に書き込む。これにより、カウントダウンタイマー461のカウント値が、動作許可レジスタ450内の動作許可情報が示す動作可能クロック数Nに設定される。以降、主装置30は、動作許可レジスタ450内の動作許可情報が示す動作可能期間(例えば数時間から数十時間)、動作することが可能となる。
以上のステップs31~s36から成る処理は、情報処理装置3の初期動作可能期間において、実行される。したがって、相互認証が成功してステップs36が実行される場合には、主装置30は、ステップs36の後も継続して動作することが可能となる。動作許可情報が動作許可レジスタ450に書き込まれた後においては、情報処理装置3は許可対象機能を実行する。
一方で、相互認証が失敗した場合には、動作許可レジスタ450に動作許可情報が設定されないことから、初期動作可能期間の経過後、主装置30に対するクロック信号CLKの供給が停止する。これにより、主装置30の動作が停止する。相互認証が失敗した場合には、情報処理装置3は許可対象機能を実行しない。
なおサーバ装置2は、情報処理装置3に対して、動作許可情報を暗号化せずに送信してもよい。
<主な機能を実行する場合の報処理装置の動作例>
図8は、主な機能を実行する場合の情報処理装置の動作の一例を示すフローチャートである。図8に示されるように、ステップs41において、情報処理装置3は、センサ情報を取得する。ステップs41では、主装置30の制御部310が、センサ装置330を動作させて、センサ装置330に情報を検出させる。そして、制御部310は、センサ装置330で検出されたセンサ情報を記憶部320に記憶する。これにより、センサ情報が取得される。
次にステップs42において、情報処理装置3は、取得したセンサ情報に対して所定の処理を行う。ステップs42では、制御部310は、処理回路360を動作させる。処理回路360は、記憶部320からセンサ情報を取得し、取得したセンサ情報に対して所定の処理を行う。そして、処理回路360は、処理後のセンサ情報を、処理済みセンサ情報として記憶部320に記憶する。
次にステップs43において、情報処理装置3は、処理済みセンサ情報を暗号化する。ステップs43では、制御部310は、記憶部320から処理済みセンサ情報を読み出して第1通信部340に入力する。第1通信部340は、入力された処理済みセンサ情報を動作制御装置40に送信する。動作制御装置40では、制御部410は、通信部470で受信された処理済みセンサ情報を、記憶部430内の鍵を用いて暗号化する。以後、暗号化された処理済みセンサ情報を「暗号化処理済みセンサ情報」と呼ぶことがある。
次にステップs44において、情報処理装置3は、ステップs43で得られた暗号化処理済みセンサ情報をサーバ装置2に送信する。ステップs44では、主装置30は、動作制御装置40から暗号化処理済みセンサ情報を受け取り、受け取った暗号化処理済みセンサ情報をサーバ装置2に送信する。
以上のステップs41~s44から成る処理を、情報処理装置3は、動作可能期間において、つまり、主装置30にクロック信号CLKが供給されているときに、繰り返し実行する。以後、図8に示される、センサ情報の取得及び送信を「情報取得送信処理」と呼ぶことがある。
サーバ装置2では、通信部22が暗号化処理済みセンサ情報を受信すると、制御部20が、受信された暗号化処理済みセンサ情報を記憶部21内の鍵を用いて復号化する。これにより、平文の処理済みセンサ情報が得られる。そして、制御部20は、平文の処理済みセンサ情報を記憶部21に記憶する。その後、制御部20は、記憶部21内の処理済みセンサ情報を用いた処理を行う。例えば、制御部20は、処理済みセンサ情報を解析し、その解析結果を表示部23に表示させたり、複数の情報処理装置3からの処理済みセンサ情報をグラフ化して表示部23に表示させたりする。
なお情報処理装置3は、サーバ装置2に対して、処理済みセンサ情報を暗号化せずに送信してもよい。
<動作許可情報の繰り返し送信>
上述の説明から理解できるように、情報処理装置3は、サーバ装置2から動作許可情報を受け取った後、当該動作許可情報が示す動作可能期間において、新たに動作許可情報を受信しない場合には、当該動作可能期間の経過後に、許可対象機能を停止することになる。したがって、この場合には、情報処理装置3は、許可対象機能を長い期間実行することが難しくなる。
そこで、本例では、情報処理装置3は、サーバ装置2から受信した動作許可情報が示す動作可能期間において、サーバ装置2との間で、動作許可情報をサーバ装置2から受信するための処理を行う。以後、当該処理を「動作許可用処理」と呼ぶことがある。情報処理装置3は、サーバ装置2から受信した動作許可情報が示す動作可能期間において、サーバ装置2との間で、動作許可情報を再度サーバ装置2が送信するための処理を行うとも言える。動作許可用処理は、情報処理装置3がサーバ装置2に対して許可対象機能の動作許可を要求する処理であるとも言える。
サーバ装置2は、動作許可用処理に応じた動作許可条件の成立に応じて、動作許可情報を情報処理装置3に送信する。これにより、情報処理装置3は、動作可能期間が経過するまでに、新たな動作許可情報を受信することが可能となる。よって、情報処理装置3は、長い期間、主装置30を動作させることが可能となる。つまり、情報処理装置3は、長い期間、許可対象機能を実行することが可能となる。
動作許可用処理としては、例えば、動作許可情報の送信を要求するための要求信号を情報処理装置3がサーバ装置2に送信する処理が考えられる。また、動作許可用処理に応じた動作許可条件とは、例えば、情報処理装置3が送信する要求信号についてのサーバ装置2の受信が考えられる。本例では、情報処理装置3は、動作可能期間において、要求信号を送信する。そして、サーバ装置2は、要求信号の受信に応じて、動作許可情報を情報処理装置3に送信する。
なお、相互認証が成功したときには、サーバ装置2は動作許可情報を送信することから、情報処理装置3がサーバ装置2と行う相互認証は、動作許可用処理であると言える。
また、情報処理装置3のリセットが解除した後にサーバ装置2が最初に動作許可情報を送信するための動作許可条件は、上記の例では、相互認証の成功となっている。一方で、情報処理装置3のリセットが解除した後にサーバ装置2が二回目以降に動作許可情報を送信するための動作許可条件は、サーバ装置2が要求信号を受信することとなっている。
このように、本例では、サーバ装置2の動作許可情報の最初の送信についての動作許可条件と、サーバ装置2の動作許可情報の二回目以降の送信についての動作許可条件とは、互いに異なっている。
図9は、情報処理装置3が要求信号を送信する様子を示す図である。本例では、情報処理装置3は、ステップs36の後、主装置30が動作しているときには、送信間隔T2で要求信号REQを繰り返し送信する。送信間隔T2は、動作可能期間T1以下に設定される。言い換えれば、動作許可用処理の実行間隔は、動作可能期間T1以下に設定される。送信間隔T2は、例えば1時間に設定される。なお、送信間隔T2は一定でなくてもよい。
図10は、サーバ装置2及び情報処理装置3の動作の一例を示すフローチャートである。図10に示されるように、上述のステップs36の後、ステップs51において、情報処理装置3は、動作可能期間T1内に要求信号を送信する。ステップs51では、動作制御装置40の制御部410は、要求信号を生成し、生成した要求信号を通信部470に送信させる。これにより、要求信号が主装置30に入力される。主装置30は、第1通信部340で受信された要求信号をサーバ装置2に送信する。
サーバ装置2は、要求信号を受信すると、つまり、動作許可条件が成立すると、ステップs52において、上述のステップs33と同様にして、暗号化動作許可情報を生成する。そして、ステップs53において、サーバ装置2は、暗号化動作許可情報を情報処理装置3に送信する。
情報処理装置3は、上述のステップs35と同様にして、ステップs54において、受信した暗号化動作許可情報を復号化する。そして、情報処理装置3は、ステップs36と同様にして、ステップs55において、平文の動作許可情報を、動作制御装置40の動作許可レジスタ450に設定する。これにより、動作許可レジスタ450に再度動作許可情報が設定され、あらたな動作可能期間T1が設定される。つまり、動作可能期間T1が更新される。
ステップs55の後、情報処理装置3は、ステップs51の実行から送信間隔T2後に、要求信号を再度サーバ装置2に送信する(ステップs56)。サーバ装置2は、要求信号を受信すると、ステップs57において、ステップs33と同様にして、暗号化動作許可情報を生成する。そして、ステップs58において、サーバ装置2は、暗号化動作許可情報を情報処理装置3に送信する。
情報処理装置3は、ステップs35と同様にして、ステップs59において、受信した暗号化動作許可情報を復号化する。そして、情報処理装置3は、ステップs36と同様にして、ステップs60おいて、平文の動作許可情報を、動作制御装置40の動作許可レジスタ450に設定する。これにより、動作許可レジスタ450に再度動作許可情報が設定され、動作可能期間T1がさらに更新される。
ステップs61の後、情報処理装置3は、ステップs56の実行から送信間隔T2後に要求信号を再度サーバ装置2に送信する(ステップs56)。以後、情報処理装置3及びサーバ装置2は同様に動作する。
なお情報処理装置3は、要求信号をサーバ装置2に送信する場合には、暗号化した要求信号をサーバ装置2に送信してもよい。
このように、情報処理装置3が、動作可能期間T1以下の間隔で要求信号をサーバ装置2に送信することによって、情報処理装置3は、動作可能期間T1が経過する前に、新たな動作許可情報を受信することが可能となる。言い換えれば、情報処理装置3が、動作可能期間T1以下の間隔で、動作許可用処理を実行することによって、情報処理装置3は、動作可能期間T1が経過する前に、新たな動作許可情報を受信することが可能となる。よって、情報処理装置3は、動作可能期間T1が経過する前に、動作可能期間T1を更新することができる。これにより、情報処理装置3は、相互認証が成功した後、主装置30を継続して動作させることができる。よって、情報処理装置3は、長い期間、許可対象機能を実行することが可能となる。
図11は、動作可能期間T1が更新される様子の一例を示す図である。図11に示されるように、本例では、動作可能期間T1内に動作許可情報が動作許可レジスタ450に設定されて動作可能期間T1が更新される処理が繰り返されることによって、主装置30が継続して動作することが可能となる。
また、送信間隔T2が、動作可能期間T1の半分未満に設定される場合には、情報処理装置3とサーバ装置2との間の通信が一時的に適切に行われなかった場合であっても、情報処理装置3が、動作可能期間T1が経過する前に、動作可能期間T1を更新できる可能性を向上することができる。以下にこの点について説明する。
例えば、上述の図10のステップs55で設定される動作可能期間T1を「動作可能期間T1t」と呼ぶ。また、ステップs56,s61で送信される要求信号REQを、それぞれ要求信号REQ1,REQ2と呼ぶ。また、情報処理装置3が、要求信号REQ2の次に送信する要求信号REQを要求信号REQ3と呼ぶ。
情報処理装置3が送信した要求信号REQ1が、通信品質の一時的な悪化等の理由で、サーバ装置2に届かなった場合、ステップs57~s60が実行されない。したがって、情報処理装置3は、要求信号REQ1の送信に応じた動作可能期間の更新を実行することができない。また、情報処理装置3が送信した要求信号REQ1を受信したサーバ装置2が送信する動作許可情報が、通信品質の一時的な悪化等の理由で、情報処理装置3に届かなった場合、ステップs59,s60が実行されない。したがって、情報処理装置3は、要求信号REQ1の送信に応じた動作可能期間の更新を実行することができない。
このように、情報処理装置3は、送信した要求信号REQ1に応じた動作許可情報を受信できない場合には、要求信号REQ1の送信に応じた動作可能期間の更新を実行することができない。このような場合、送信間隔T2が、動作可能期間T1の半分未満に設定される場合には、図12に示されるように、情報処理装置3は、要求信号REQ1を送信する動作可能期間T1tにおいて、次の要求信号REQ2を送信することができる。つまり、情報処理装置3は、送信した要求信号に応じた動作許可情報を受信できない場合であって、当該要求信号を送信した動作可能期間と同じ期間において、再度要求信号を送信することができる。これにより、情報処理装置3は、動作可能期間T1tにおいて、動作許可情報を受信できる可能性が向上する。つまり、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。
また、情報処理装置3は、通信品質の一時的な悪化等の理由で、送信した要求信号REQ2に応じた動作許可情報を受信できない場合であっても、送信間隔T2によっては、図12に示されるように、情報処理装置3は、動作可能期間T1tにおいて、次の要求信号REQ3を送信できることがある。この場合には、情報処理装置3は、動作可能期間T1tにおいて、要求信号REQ3に応じた動作許可情報を受信できる可能性がある。よって、情報処理装置3は、要求信号REQ1,REQ2に応じた動作許可情報を受信できない場合であっても、動作可能期間T1tにおいて、動作許可情報を受信できる可能性が向上する。これにより、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。
このように、情報処理装置3が、動作可能期間において送信した要求信号に応じた動作許可情報を受信しないときに、当該動作可能期間と同じ期間において要求信号を再度送信することができるように、要求信号を繰り返し送信することによって、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。言い換えれば、情報処理装置3が、動作可能期間において実行した動作許可用処理に応じた動作許可情報を受信しないときに、当該動作可能期間と同じ期間において動作許可用処理を再度実行することができるように、動作許可用処理を繰り返し実行することによって、情報処理装置3が、動作可能期間が経過する前に、動作可能期間を更新できる可能性を向上することができる。
なお上記の例では、サーバ装置2の動作許可情報の最初の送信についての動作許可条件と、サーバ装置2の動作許可情報の二回目以降の送信についての動作許可条件とは、互いに異なっていたが、両者は同じであってもよい。
例えば、サーバ装置2の動作許可情報の最初の送信についての動作許可条件は、サーバ装置2が要求信号REQを受信することであってもよい。図13はこの場合のサーバ装置2及び情報処理装置3の動作の一例を示す図である。図13は上述の図7に対応している。
図13に示されるように、情報処理装置3のリセット解除後においては、相互認証が実行されずに、情報処理装置3はステップs71において、要求信号REQをサーバ装置2に送信する。サーバ装置2は、要求信号REQを受信すると、上述のステップs33,s34を実行して、暗号化動作許可情報を情報処理装置3に送信する。情報処理装置3は、暗号化動作許可情報を受信すると、上述のステップs35,s36を実行して、平文の動作許可情報を動作許可レジスタ450に書き込む。これにより、情報処理装置3に動作可能期間が初めて設定される。
また、サーバ装置2の動作許可情報の二回目以降の送信についての動作許可条件は、相互認証の成功であってもよい。図14はこの場合のサーバ装置2及び情報処理装置3の動作の一例を示す図である。図14は上述の図10に対応している。
図14に示されるように、ステップs36の後、ステップs81において、サーバ装置2と情報処理装置3との間の相互認証が行われる。その後、ステップs82において、サーバ装置2は、相互認証に成功したと判断すると、上述のステップs52,s53を実行して、暗号化動作許可情報を情報処理装置3に送信する。
情報処理装置3は、暗号化動作許可情報を受信すると、上述のステップs54,s54を実行して、平文の動作許可情報を動作許可レジスタ450に書き込む。これにより、動作可能期間が更新される。
次にステップs83において、サーバ装置2と情報処理装置3との間の相互認証が行われる。その後、ステップs84において、サーバ装置2は、相互認証に成功したと判断すると、上述のステップs57,s58を実行して、暗号化動作許可情報を情報処理装置3に送信する。以後、情報処理装置3及びサーバ装置2は同様に動作する。
なお、サーバ装置2の動作許可情報の二回目以降の送信においては、相互認証の成功という動作許可条件と、サーバ装置2の要求信号の受信という動作許可条件とが混在してもよい。例えば、図14のフローチャートにおいて、ステップs81,s82の代わりに、図10のステップs51が実行されてもよい。
上記の例では、制御部410の動作モードには、通常モード及びセキュアモードが含まれているが、制御部410は常にセキュアモードで動作してもよい。この場合には、制御部410について説明した上記の動作はすべてセキュアモードで実行される。
以上のように、本例では、情報処理装置3は、サーバ装置2から受信する動作許可情報に応じて、許可対象機能を動作させる。したがって、情報処理装置3がハッキングされてサーバ装置2から動作許可情報を受信できない場合には、情報処理装置3は許可対象機能を停止することができる。よって、情報処理装置3の許可対象機能がハッカーによって利用される可能性を低減することができる。その結果、情報処理装置3の安全性が向上する。
例えば、通信ネットワーク4に接続された主装置30がハッキングされた結果、DoS(Denial of Service attack)攻撃のように、情報処理装置3が、本来の通信相手のサーバ装置2とは異なる通信装置と頻繁に通信する場合を考える。この場合、情報処理装置3の本来の通信相手であるサーバ装置2は、情報処理装置3から信号を受信することができないことから、動作許可条件が成立しない。したがって、サーバ装置2は、動作許可情報を送信しない。これにより、情報処理装置3の主装置30の動作が停止する。その結果、情報処理装置3の主な機能及びサーバ通信機能がハッカーによって利用される可能性を低減することができる。さらに、情報処理装置3のサーバ通信機能が停止することによって、ハッキングされた情報処理装置3が外部に悪影響を与える可能性を低減することができる。
他の例として、制御部410の動作モードに、通常モード及びセキュアモードが含まれる場合に、主装置30と通信することが可能な通常モードの動作制御装置40がハッキングされた結果、動作制御装置40の通信部470が主装置30と通信できない場合を考える。この場合、サーバ装置2は、情報処理装置3から、動作許可条件の成立に必要な信号(例えば、要求信号あるいは相互認証で使用される乱数など)を受信することができないことから、動作許可情報を送信しない。これにより、情報処理装置3の主装置30の動作が停止し、その結果、許可対象機能がハッカーによって利用される可能性を低減することができる。
また本例では、主装置30、言い換えれば、情報処理装置3の許可対象機能を実現する回路と、動作制御装置40とは、互いに異なるパッケージに収納されている。したがって、例えば、主装置30として機能する既存の機器に対して、後から動作制御装置40を接続することによって、安全性の高い情報処理装置3を簡単に実現することができる。
以後、上述の図10に示されるステップs51~s55の一連の処理や、上述の図14に示されるステップs81,s82,s52~s55の一連の処理のように、情報処理装置3での動作許可用処理の実行から、情報処理装置3での動作許可情報の動作許可レジスタ450への書き込みまでの一連の処理を「動作許可要求から動作許可までの一連の処理」と呼ぶことがある。
<主装置の動作の復帰方法の一例>
主装置30に対するクロック信号CLKの供給が停止して、主装置30の動作が停止した場合には、ユーザは、例えば、リセットスイッチ50を操作することによって、情報処理装置3に主装置30の動作を復帰させることができる。
リセットスイッチ50が操作されると、リセット信号生成部490はリセット信号RSをアサートする。これにより、情報処理装置3の動作が初期化される。情報処理装置3の動作が初期化されると、上述のように、動作許可レジスタ450には初期値Mが設定され、主装置30は、初期動作可能期間、動作することが可能となる。情報処理装置3は、初期動作可能期間において、サーバ装置2との間で動作許可用処理(例えば、相互認証あるいは要求信号の送信)を実行する。動作許可用処理の実行の結果、動作許可条件が成立すると、動作許可レジスタ450に動作許可情報が設定される。これにより、情報処理装置3に動作可能期間が設定され、主装置30は引き続き動作することが可能となる。
なお上述のように、リセット信号生成部490は、情報処理装置3の電源がオフからオンに切り替われると、リセット信号RSをアサートする。したがって、情報処理装置3に電源スイッチが設けられている場合には、ユーザは、当該電源スイッチを操作して、情報処理装置3の電源をいったんオフにした後に再度オンにすることによって、情報処理装置3に主装置30の動作を復帰させることができる。
上記の例では、情報処理装置3は、主装置30に対するクロック信号CLKmの供給を停止することによって、許可対象機能を停止していたが、主装置30に入力されるリセット信号をアサートすることによって、許可対象機能を停止してもよい。図15は、この場合の情報処理装置3が備える動作制御装置40の構成の一例を示す図である。図15に示される動作制御装置40は、リセット信号RSとは別に、主装置30用のリセット信号RSmを生成する。リセット信号RSは、動作制御装置40用のリセット信号であるとも言える。
図5に示される動作制御装置40と比較して、図15に示される動作制御装置40は、クロックゲート462を備えていない。また、図15に示される動作制御装置40では、クロック生成部480が出力するクロック信号CLKが主装置30のクロック入力口301に直接入力されている。そして、図15に示される動作制御装置40には、リセット信号RSmを生成するリセット信号生成部510が設けられている。主装置30のリセット入力口302には、リセット信号RSではなく、リセット信号RSmが入力される。図15の例では、カウントダウンタイマー461とリセット信号生成部510とで、主装置30を動作させるか否かを制御する動作制御部520が構成される。
リセット信号生成部510には、リセット信号RSと、カウントダウンタイマー461から出力されるイネーブル信号ENSが入力される。リセット信号生成部510は、入力されるリセット信号RSがアサートされると、主装置30用のリセット信号RSmをアサートする。したがって、リセット信号RSがアサートされる場合には、リセット信号RSmがアサートされて、主装置30の動作が初期化される。
またリセット信号生成部510は、イネーブル信号ENSがLowレベルのとき、リセット信号RSmをアサートする。言い換えれば、リセット信号生成部510は、カウントダウンタイマー461がカウント動作を行わないとき、リセット信号RSmをアサートする。一方で、リセット信号生成部510は、イネーブル信号ENSがHighレベルのとき、リセット信号RSmをアサートしない。言い換えれば、リセット信号生成部510は、カウントダウンタイマー461がカウント動作を行っているとき、リセット信号RSmをネゲートする。図15に示される動作制御装置40の他の動作については、上述の図5に示される動作制御装置40と同様である。
このような構成を有する動作制御装置40では、情報処理装置3のリセット解除後に、動作許可レジスタ450に初期値が設定されると、イネーブル信号ENSがLowレベルからHighレベルに変化して、主装置30のリセット入力口302に入力されるリセット信号RSmがネゲートされる。これより、主装置30は初期動作可能期間、動作することが可能となる。そして、初期動作可能期間において、動作許可条件が成立して、動作許可レジスタ450に動作許可情報500が設定されると、イネーブル信号ENSはHighレベルを維持し、主装置30は動作を継続する。その後、動作許可レジスタ450内の動作許可情報500が更新されない場合には、情報処理装置3に現在設定されている動作可能期間が経過すると、リセット入力口302に入力されるリセット信号RSmがアサートされ、その結果、主装置30の動作が停止する。
このように、情報処理装置3が、主装置30に入力されるリセット信号をアサートすることによって許可対象機能を停止する場合であっても、上記と同様に、情報処理装置3の安全性を向上することができる。
また、主装置30と動作制御装置40とは同一のパッケージに収納されてもよい。図16はこの場合の情報処理装置3の構成の一例を示す図である。図16に示される例では、主装置30及び動作制御装置40は、樹脂等から成る同一のパッケージ600に収納されている。そして、同一のパッケージ600に収納された主装置30及び動作制御装置40は基板60に実装される。主装置30及び動作制御装置40は、パッケージ600内の配線によって、互いに電気的に接続されている。同一のパッケージ600に収納された、主装置30及び動作制御装置40で構成される集積回路は、複数のダイで構成されてもよいし、一つのダイで構成されてもよい。
また図16のように、主装置30と動作制御装置40とが同一のパッケージ600に収納される場合には、主装置30の第2通信部350の代わりに、動作制御装置40の通信部470が通信ネットワーク4と通信してもよい。図17は、この場合の情報処理装置3の構成の一例を示す図である。図17ではリセットスイッチ50の図示を省略している。
図17の例では、動作制御装置40の通信部470が通信ネットワーク4に接続されている。通信部470は、通信ネットワーク4を通じてサーバ装置2と通信可能である。また、主装置30はバス550に接続されている。以後、バス550に接続された主装置30を「機能ブロック30」と呼ぶことがある。
機能ブロック30には、図18に示されるように、例えば、上述の制御部310、記憶部320、センサ装置330及び処理回路360が含まれており、これらはバス380に接続されている。機能ブロック30には、上述の第1通信部340及び第2通信部350は含まれていない。制御部310は、動作制御装置40のバス550に接続されており、バス550を通じて制御部410と情報のやり取りを行う。動作制御装置40の制御部410は、動作モードが通常モードのとき、機能ブロック30の制御部310と情報のやり取りを行う。また、機能ブロック30の制御部310は、バス550を通じて、動作制御装置40のタイマー420、記憶部430及び動作許可レジスタ450に対して直接アクセスすることができないようになっている。
このような構成を有する情報処理装置3では、当該情報処理装置3がサーバ装置2に送信する、乱数、要求信号及び処理済みセンサ情報等の情報は、通信部470からサーバ装置2に送信される。また、サーバ装置2が情報処理装置3に送信する、乱数及び動作許可情報等の情報は、通信部470で受信される。
また、上述の図8に示される情報取得送信処理においては、制御部410は、ステップs43において、機能ブロック30の制御部310から処理済みセンサ情報をバス550を通じて受け取り、受け取った処理済みセンサ情報を暗号化する。その後、ステップs44において、制御部310は、通信部470に、暗号化処理済みセンサ情報をサーバ装置2に送信させる。
図17に示される例であっても、上記と同様に、情報処理装置3の安全性を向上することができる。例えば、サーバ装置2と通信することが可能な通常モードの動作制御装置40がハッキングされた結果、DoS攻撃のように、情報処理装置3が、本来の通信相手のサーバ装置2とは異なる通信装置と頻繁に通信する場合を考える。この場合、情報処理装置3の本来の通信相手であるサーバ装置2は、情報処理装置3から信号を受信することができないことから、動作許可条件が成立しない。その結果、サーバ装置2は、動作許可情報を送信しない。これにより、情報処理装置3の機能ブロック30の動作が停止する。その結果、情報処理装置3の許可対象機能がハッカーによって利用される可能性を低減することができる。図17の例では、機能ブロック30に対するクロック信号CLKの供給が停止すると、情報処理装置3の主な機能が停止するものの、サーバ通信機能は停止しない。よって、図17の例では、許可対象機能にはサーバ通信機能が含まれない。
なお、図17の例において、機能ブロック30は制御部310を備えなくてもよい。図19は、この場合の機能ブロック30の構成の一例を示す図である。
図19の例では、機能ブロック30は、記憶部320、センサ装置330及び処理回路360を備えており、制御部310を備えていない。処理回路360は、動作制御装置40のバス550に接続されており、バス550を通じて制御部310によって制御される。処理回路360は、センサ装置330を制御することが可能である。センサ装置330から出力されるセンサ情報は記憶部330に直接書き込まれる。動作制御装置40の制御部410は、動作モードが通常モードのときに、機能ブロック30の処理回路360を制御することが可能である。
図19に示される機能ブロック30を備える情報処理装置3が、図8に示される情報取得送信処理を行う場合には、ステップs41において、制御部410が、処理回路360を通じてセンサ装置330を動作させる。センサ装置330から出力されるセンサ情報は、記憶部320に書き込まれる。
次にステップs42において、制御部410は、処理回路360を制御して、処理回路360に、記憶部320内のセンサ情報に対して所定の処理を実行させる。処理回路360は、生成した処理済みセンサ情報を制御部410に入力する。
次にステップs43において、制御部410は、入力された処理済みセンサ情報を暗号化する。そして、ステップs44において、制御部410は、通信部470に、生成した暗号化処理済みセンサ情報をサーバ装置2に送信させる。
このように、機能ブロック30が制御部310を備えていない場合であっても、上記と同様に、情報処理装置3の安全性を向上することができる。
なお図17の例では、情報処理装置3は、機能ブロック30に対するクロック信号CLKmの供給を停止することによって、機能ブロック30を停止しているが、上述の図15の例のように、機能ブロック30用のリセット信号RSmを生成し、リセット信号RSmをアサートすることによって、機能ブロック30を停止してもよい。
また図17の例では、許可対象機能に、サーバ通信機能が含まれていないが、サーバ通信機能を含めてもよい。例えば、図20に示されるように、通信部470に対して、クロック生成部480が生成するクロック信号CLKを直接入力するのではなく、クロックゲート462が出力するクロック信号CLKmを入力することによって、許可対象機能に、サーバ通信機能を含めることができる。
また図21に示されるように、通信部470用のリセット信号RSnを生成するリセット信号生成部540を動作制御装置40に設けることによって、許可対象機能にサーバ通信機能を含めることができる。リセット信号生成部540は、リセット信号RSがアサートされると、通信部470に入力されるリセット信号RSnをアサートする。また、リセット信号生成部540は、イネーブル信号ENSがLowレベルになると、リセット信号RSnをアサートする。これより、通信部470に入力されるリセット信号RSnは、カウントダウンタイマー461がカウント動作しているとき(イネーブル信号ENSがHighレベル)ネゲートされ、カウントダウンタイマー461がカウント動作していないとき(イネーブル信号ENSがLowレベル)アサートされる。
また図22に示されるように、イネーブル信号ENSに基づいてバス550と通信部470の接続を制御するスイッチ回路530を設けることによって、許可対象機能にサーバ通信機能を含めてもよい。図22の例では、スイッチ回路530は、イネーブル信号ENSがHighレベルのとき、通信部470をバス550に接続する。この場合、情報処理装置3は、通信部470を使用して、サーバ装置2と通信することができる。よって、サーバ通信機能が動作する。一方で、スイッチ回路530は、イネーブル信号ENSがLowレベルのとき、通信部470をバス550に接続しない。この場合、情報処理装置3は、通信部470を使用して、サーバ装置2と通信することができない。よって、サーバ通信機能が停止する。
上記の例では、許可対象機能に、情報処理装置3の主な機能が含まれているが、当該主な機能が含まれなくてもよい。例えば、図20の構成において、機能ブロック30に対して、クロックゲート462から出力されるクロック信号CLKmを入力する代わりに、クロック生成部480から出力されるクロック信号CLKを直接入力する場合には、許可対象機能に、情報処理装置3の主な機能が含まれなくなる。また図21,22の構成において、クロックゲート462を削除して、クロック生成部480が出力するクロック信号CLKを直接機能ブロック30に入力する場合には、許可対象機能に、情報処理装置3の主な機能が含まれなくなる。
<情報処理システムの他の例>
<情報処理装置の間欠動作>
図23は、間欠動作を行う本例に係る情報処理装置3の構成の一例を示す図である。本例に係る情報処理装置3では、その全体の動作モードとして、非スタンバイモードと、当該非スタンバイモードよりも消費電力が低減するスタンバイモードとが存在する。スタンバイモードは、低消費電力モードとも呼ばれる。情報処理装置3は、動作モードを、非スタンバイモードとスタンバイモードに交互に切り替えることによって間欠動作を行う。以後、情報処理装置3が非スタンバイモードで動作している期間を「非スタンバイ期間」と呼び、情報処理装置3がスタンバイモードで動作している期間を「スタンバイ期間」と呼ぶことがある。
図24は情報処理装置3の間欠動作の一例を示す図である。図24に示されるように、情報処理装置3では、所定期間T10ごとに、スタンバイモードから非スタンバイモードに復帰する。そして、非スタンバイ期間T11がスタンバイ期間T12よりも短くなっている。なお、非スタンバイ期間T11は、スタンバイ期間T12よりも長くてもよいし、スタンバイ期間T12と同じ長さであってもよい。以後、所定期間T10を間欠モードの周期T10と呼ぶことある。
図23に示されるように、情報処理装置3は、RTC(リアルタイムクロック)70を備えている。RTC70は、例えば、SPIあるいはI2Cに基づいて通信することが可能な通信I/F回路を介して主装置30に接続されている。RTC70は、制御部310によって設定される所定時間を計測することが可能である。RTC70は、設定された所定時間の計測が完了すると、割り込み信号INTを、主装置30の制御部410と動作制御装置40とに出力する。
本例に係る主装置30では、それ独自の動作モードとして、非スタンバイモードと、当該非スタンバイモードよりも消費電力が低減するスタンバイモードとが含まれる。主装置30の動作モードがスタンバイモードである場合、例えば、第1通信部340、第2通信部350、センサ装置330及び処理回路360等の動作が停止する。主装置30は、非スタンバイモードとスタンバイモードとを交互に繰り返す間欠動作を行う。主装置30の動作モードは、制御部310によって設定される。
以後、主装置30の非スタンバイモード及びスタンバイモードをそれぞれ「独自の非スタンバイモード」及び「独自のスタンバイモード」と呼ぶことがある。また、単に非スタンバイモードと言えば、情報処理装置3全体での非スタンバイモードを意味し、単にスタンバイモードと言えば、情報処理装置3全体でのスタンバイモードを意味する。
本例では、主装置30の動作モードが独自のスタンバイモードに設定されると、情報処理装置3全体の動作モードがスタンバイモードに設定される。そして、主装置30の動作モードが、独自のスタンバイモードから独自の非スタンバイモードに復帰すると、情報処理装置3の動作モードが、スタンバイモードから非スタンバイモードに復帰する。
主装置30では、制御部310は、主装置30の動作モードを独自のスタンバイモードに設定すると、スタンバイ信号SB(図23参照)を動作制御装置40に出力する。また、制御部310は、主装置30の動作モードを独自のスタンバイモードに設定すると、RTC70に所定時間を設定する。この所定時間は、スタンバイ期間T12とほぼ同じ値に設定される。
図25は、本例の動作制御装置40の構成の一例を示す図である。本例の動作制御装置40は、割り込みコントローラ560及び省電力設定レジスタ570を備える。また、本例の動作制御装置40の動作制御部460は、カウントダウンタイマー461及びクロックゲート462以外に、クロックゲート465を備える。
省電力設定レジスタ570には、スタンバイ信号SBが入力される。省電力設定レジスタ570では、スタンバイ信号SBが入力されると、情報処理装置3がスタンバイモードで動作することを示す省電力設定情報が設定される。
省電力設定レジスタ570は、クロックゲート465の動作を制御するためのイネーブル信号ENS0を、クロックゲート465のイネーブル入力口EN0に入力する。省電力設定レジスタ570は、省電力設定情報が設定されると、イネーブル信号ENS0をLowレベルに設定し、省電力設定情報がクリアされると、イネーブル信号ENS0をHigレベルに設定する。クロックゲート465は、イネーブル入力口EN0に入力されるイネーブル信号ENS0がHighレベルのときだけ、クロック入力口CLKin0に入力されるクロック信号CLKをクロック信号CLK0として出力する。クロックゲート465から出力されるクロック信号CLK0は、クロックゲート462のクロック入力口CLKinに入力される。クロックゲート462は、イネーブル信号ENSがHighレベルのときだけ、クロック入力口CLKinに入力されるクロック信号CLK0をクロック信号CLKmとして出力する。
割り込みコントローラ560は、RTC70から割り込み信号INTが入力されると、制御部410のCPUに割り込み要求を通知する。制御部410のCPUは、割り込み要求が通知されると、省電力設定レジスタ570内の省電力設定情報をクリア(言い換えれば、消去)する。
以上のような構成を有する本例の情報処理装置3は、リセット解除後の初期動作可能期間においては、非スタンバイモードで動作する。そして、情報処理装置3は、動作制御装置40の動作許可レジスタ450に動作許可情報500が設定されている場合に、言い換えれば、主装置30の動作がサーバ装置2から許可されている場合に、非スタンバイモードとスタンバイモードを繰り返す間欠動作を行う。以下に、動作許可レジスタ450に動作許可情報500が設定されている場合の本例の情報処理装置3の動作の一例について説明する。
主装置30の制御部310は、主装置30の動作モードを独自のスタンバイモードに設定すると、スタンバイ信号SBを出力するとともに、RTC70に所定時間を設定する。
主装置30が出力したスタンバイ信号SBは省電力設定レジスタ570に入力され、省電力設定レジスタ570に省電力設定情報が設定される。これにより、省電力設定レジスタ570から出力されるイネーブル信号ENS0がHighレベルからLowレベルに変化し、クロックゲート465は、クロック信号CLK0の出力を停止する。その結果、クロックゲート462は、クロック信号CLKmの出力を停止する。これにより、主装置30に対するクロック信号CLKmの供給が停止し、情報処理装置3の動作モードがスタンバイモードに設定される。
情報処理装置3の動作モードがスタンバイモードに設定された後、RTC70は、設定された所定時間の計測を完了すると、例えばレベル検出用の割り込み信号INTを動作制御装置40と主装置30に出力する。動作制御装置40では、割り込みコントローラ560は、割り込み信号INTを受け取ると、制御部410のCPUに割り込み要求を通知する。割り込み要求を受け取った制御部410のCPUは、省電力設定レジスタ570内の省電力設定情報をクリアする。省電力設定レジスタ570内の省電力設定情報がクリアされると、イネーブル信号ENS0がLowレベルからHighレベル変化する。これにより、クロックゲート465は、入力されるクロック信号CLKをクロック信号CLK0としてクロックゲート462に出力し、クロックゲート462は入力されるクロック信号CLK0をクロック信号CLKmとして主装置30に出力する。これにより、主装置30に対するクロック信号CLKmの供給が再開する。一方で、クロック信号CLKmの供給が再開した主装置30では、制御部310は、主装置30に割り込み信号INTが入力されているか否かを判断する。制御部310は、主装置30に割り込み信号INTが入力されていると判断した場合には、主装置30の動作モードを、独自のスタンバイモードから独自の非スタンバイモードに変更する。これにより、情報処理装置3の動作モードは、スタンバイモードから非スタンバイモードに変化する。
その後、主装置30の制御部310が、主装置30の動作モードを独自のスタンバイモードに設定すると、以後同様に情報処理装置3は動作する。
このような間欠動作を行う情報処理装置3では、例えば、動作モードが非スタンバイモードに設定されるたびに、上述の図8に示されるステップs41,s42が実行されて、処理済みセンサ情報が記憶部320に記憶される。上述の図24に示される周期T10が例えば1時間である場合、情報処理装置3では、1時間ごとに、センサ情報が取得されて、処理済みセンサ情報が記憶部320に記憶される。そして、情報処理装置3では、例えば、動作モードが非スタンバイモードにX回(Xは1以上の整数)設定されるたびに、上述のステップs43,s44が実行され、暗号化処理済みセンサ情報がサーバ装置2に送信される。例えば、周期T10が1時間であって、X=24に設定されると、情報処理装置3は、24時間に1回、つまり1日に1回、記憶部320内の処理済みセンサ情報を暗号化してサーバ装置2に送信する。
また、本例に係る情報処理装置3は、動作モードが非スタンバイモードのときに、サーバ装置2との間で、図7に示される一連の処理あるいは図13に示される一連の処理を行う。また、本例に係る情報処理装置3は、動作モードが非スタンバイモードのときに、サーバ装置2との間で、上述の図10に示されるステップs51~s55の一連の処理のような、動作許可要求から動作許可までの一連の処理を実行する。
以上のように、情報処理装置3が、動作許可レジスタ450内の動作許可情報500に応じて間欠動作を行う場合であっても、上記と同様に、情報処理装置3の安全性を向上することができる。
なお、図15に示されるように、主装置30用のリセット信号RSmを生成し、リセット信号RSmをネゲートすることによって許可対象機能を停止する情報処理装置3が、上記と同様の間欠動作を行ってもよい。図26は、この場合の情報処理装置3が備える動作制御装置40の構成の一例を示す図である。
図26に示される動作制御装置40は、図15に示される動作制御装置40において、上述の割り込みコントローラ560、省電力設定レジスタ570及びクロックゲート465を備えるものである。クロックゲート465は、動作制御部520に設けられている。クロックゲート465は、入力されるクロック信号CLKをクロック信号CLKmとして主装置30に出力することが可能である。
図26に示される動作制御装置40を備える情報処理装置3では、主装置30の動作モードが独自のスタンバイモードに設定されると、スタンバイ信号SBが省電力設定レジスタ570に入力され、省電力設定レジスタ570に省電力設定情報が設定される。これにより、省電力設定レジスタ570から出力されるイネーブル信号ENS0がHighレベルからLowレベルに変化し、クロックゲート465は、クロック信号CLKmの出力を停止する。その結果、主装置30に対するクロック信号CLKmの供給が停止し、情報処理装置3の動作モードがスタンバイモードに設定される。
情報処理装置3の動作モードがスタンバイモードに設定された後、RTC70が割り込み信号INTを出力すると、動作制御装置40では、割り込みコントローラ560が制御部410のCPUに割り込み要求を通知する。割り込み要求を受け取った制御部410のCPUは、省電力設定レジスタ570内の省電力設定情報をクリアする。これにより、イネーブル信号ENS0がLowレベルからHighレベルに変化して、クロックゲート465はクロック信号CLKmを主装置30に出力する。一方で、クロック信号CLKmの供給が再開した主装置30では、制御部310は、主装置30に割り込み信号INTが入力されているか否かを判断する。そして、制御部310は、割り込み信号INTが入力されていると判断すると、主装置30の動作モードを、独自のスタンバイモードから独自の非スタンバイモードに変更する。これにより、情報処理装置3の動作モードは、スタンバイモードから非スタンバイモードに変化する。その後、主装置30の動作モードが独自のスタンバイモードに設定されると、以後同様に情報処理装置3は動作する。
また、上述の図17に示されるように、主装置30が機能ブロック30として動作制御装置40のバス550に接続された情報処理装置3が、間欠動作を行ってもよい。図27は、この場合の情報処理装置3の構成の一例を示す図である。
図27に示される情報処理装置3は、図17に示される情報処理装置3において、省電力設定レジスタ570及びクロックゲート465を備えるものである。省電力設定レジスタ570は、バス550に接続されている。制御部410は、省電力設定レジスタ570に対して省電力設定情報を設定したり、省電力設定レジスタ570内の省電力設定情報をクリアしたりすることができる。クロックゲート465は、上述の図25と同様に、動作制御部460に設けられている。
図27に示される情報処理装置3では、動作モードが制御部410によって制御される。図27に示される情報処理装置3では、機能ブロック30に対するクロック信号CLKmの供給が停止されることによって、動作モードがスタンバイモードに設定される、なお、図27の例では、機能ブロック30には、独自の非スタンバイモード及び独自のスタンバイモードは定められていない。
制御部410は、動作モードをスタンバイモードに設定する場合には、省電力設定レジスタ570に省電力設定情報を設定する。これにより、省電力設定レジスタ570から出力されるイネーブル信号ENS0がHighレベルからLowレベルに変化し、クロックゲート465は、クロック信号CLK0の出力を停止する。その結果、機能ブロック30に対するクロック信号CLKmの供給が停止し、情報処理装置3の動作モードがスタンバイモードに設定される。また、制御部410は、省電力設定レジスタ570に省電力設定情報を設定するとともに、タイマー420に所定時間を設定する。この所定時間は、スタンバイ期間T12と同じ値に設定される。
情報処理装置3の動作モードがスタンバイモードに設定された後、タイマー420が、設定された所定時間の計測を終了すると、制御部410は、省電力設定レジスタ570内の省電力設定情報をクリアする。これにより、イネーブル信号ENS0がLowレベルからHighレベルに変化して、クロックゲート465がクロック信号CLK0を出力し、クロックゲート462がクロック信号CLKmを機能ブロック30に入力する。これにより、機能ブロック30の動作が再開し、情報処理装置3の動作モードが、スタンバイモードから非スタンバイモードに復帰する。その後、省電力設定レジスタ570に省電力設定情報が設定されると、以後同様に情報処理装置3は間欠動作を行う。
なお、上述の図20と同様に、図27の例において、クロックゲート462から出力されるクロック信号CLKmを通信部470に入力することによって、許可対象機能にサーバ通信機能を含めてもよい。
また、上述の図21と同様に、図27の例において、カウントダウンタイマー461から出力されるイネーブル信号ENSとリセット信号RSが入力され、通信部470にリセット信号RSnを出力するリセット信号生成部540を設けることによって、許可対象機能にサーバ通信機能を含めてもよい。
また、上述の図22と同様に、図27の例において、イネーブル信号ENSに基づいてバス550と通信部470の接続を制御するスイッチ回路530を設けることによって、許可対象機能にサーバ通信機能を含めてもよい。
また、図27の例において、カウントダウンタイマー461から出力されるイネーブル信号ENSとリセット信号RSが入力され、通信部470にリセット信号RSnを出力するリセット信号生成部540を設けて、クロックゲート462を削除し、クロックゲート465から出力されるクロック信号を機能ブロック30に入力することによって、許可対象機能に、情報処理装置3の主な機能が含まれないようにしてもよい。
<情報処理装置の動作に関する動作情報の取得>
図28は、情報処理装置3の動作に関する動作情報を取得する本例に係る情報処理装置3が備える動作制御装置40の構成の一例を示す図である。本例に係る情報処理装置3は、上記の例と同様に、間欠動作を行うことが可能である。そして、本例に係る情報処理装置3は、間欠動作を行っているときに、当該間欠動作に関する情報を動作情報として取得する。なお、本例に係る情報処理装置3が備える主装置30の構成は、上述の図23に示される情報処理装置3が備える主装置30の構成と同様である。
図28に示されるように、本例に係る動作制御装置40は、上述の図25に示される動作制御装置40において、クロック計測カウンター580をさらに備えるものである。クロック計測カウンター580は、バス550に接続されており、制御部410によって制御される。クロック計測カウンター580は、主装置30に供給されるクロック信号CLKの入力クロック数を計測することが可能である。
本例では、クロック計測カウンター580は、例えば、情報処理装置3が間欠動作を行っているときに、クロック信号CLKが供給されている主装置30に対して所定期間に入力されるクロックの数を計測する。以後、当該所定期間を「クロック計測期間」と呼ぶことがある。
クロック計測期間は、例えば、間欠動作の周期T10(図24参照)の整数倍に設定される。本例では、クロック計測カウンター580の計測値が動作情報として使用される。クロック計測カウンター580は、動作情報を取得する動作情報取得部として機能すると言える。制御部410は、情報処理装置3が間欠動作を行っている場合に、クロック計測カウンター580を制御して、クロック計測カウンター580に、主装置30に入力されるクロックの数を計測させる。また、制御部410は、セキュアモードで動作する場合にだけ、クロック計測カウンター580にアクセスすることができる。したがって、制御部410は、セキュアモードで動作する場合にだけ、クロック計測カウンター580の動作を開始させたり、クロック計測カウンターから計測値を読み出したり、クロック計測カウンターの計測値をリセットしたりすることができる。
ここで、本例では、情報処理装置3が非スタンバイモードで動作しているときには、主装置30にはクロック信号CLKが供給されている。したがって、クロック計測カウンター580で計測される、主装置30に対して所定期間に入力されるクロックの数は、当該所定期間において情報処理装置3が非スタンバイモードで動作している時間を示す情報であると言える。言い換えれば、クロック計測カウンター580でのクロック計測期間での計測値は、クロック計測期間において、情報処理装置3の主な機能が動作している時間を示す情報であると言える。以後、クロック計測カウンター580でのクロックの数の計測値を「クロック計測値」と呼ぶことがある。
図29は、情報処理装置3が間欠動作を行っている場合に、制御部410がクロック計測カウンター580を制御するときの情報処理装置3の動作の一例を示すフローチャートである。本例では、情報処理装置3は、クロック計測カウンター580のクロック計測値を、サーバ装置2に送信する。
図29に示されるように、ステップs101において、制御部410は、クロック計測カウンター580を動作させて、クロック計測カウンター580にクロックの数の計測を開始させる。さらに、制御部410は、タイマー420にクロック計測期間を設定し、タイマー420にクロック計測期間の計測を開始させる。
次にステップs102において、タイマー420がクロック計測期間の計測を完了すると、ステップs103において、制御部410は、クロック計測カウンター580に計測動作を停止させて、クロック計測カウンター580から現在のクロック計測値を取得する。そして、制御部410は、取得したクロック計測値を記憶部430に記憶する。その後、制御部410は、クロック計測カウンター580のクロック計測値をリセットして零にする。記憶部430に記憶されるクロック計測値は、クロック計測期間でのクロック計測値であると言える。つまり、記憶部430に記憶されるクロック計測値は、クロック計測期間において主装置30に入力されたクロックの総数を示す。
次にステップs104において、制御部410は、情報処理装置3の動作モードが非スタンバイモードのときに、記憶部430からクロック計測値を読み出して暗号化し、暗号化されたクロック計測値を通信部470に送信させる。これにより、主装置30に、暗号化後のクロック計測値が入力される。主装置30は、第2通信部350に、第1通信部340が受信する暗号化されたクロック計測値を、動作情報としてサーバ装置2に送信させる。
ステップs104の後、ステップs101が再度実行され、以後同様にして情報処理装置3は動作する。情報処理装置3は、間欠動作を行っている間、ステップs101~s104までの一連の処理を繰り返し実行する。
図30は、サーバ装置2が動作情報、つまりクロック計測値を受信する際の当該サーバ装置2の動作の一例を示す図である。図30に示されるように、ステップs111において、サーバ装置2の通信部22が動作情報を受信すると、ステップs112において、制御部20は、受信された動作情報を記憶部21に記憶する。このとき、制御部20は、動作情報、つまり暗号化されたクロック計測値を復号化し、それによって得られた平文のクロック計測値を記憶部21に記憶する。
次にステップs113において、制御部20は、記憶部21内のクロック計測値に基づいて、情報処理装置3の動作が異常であるか否かを判定する異常判定処理を実行する。異常判定処理については後で詳細に説明する。
ステップs113での異常判定処理において、情報処理装置3の動作が異常であると判定されると、ステップs114において、サーバ装置2は、情報処理装置3が有する所定の機能の停止を指示するための動作停止情報を情報処理装置3に送信する。以後、当該所定の機能を「停止対象機能」と呼ぶことがある。
ステップs114では、制御部20は、停止対象機能の停止を指示するための動作停止情報を生成して通信部22に入力する。通信部22は、入力された動作停止情報を、情報処理装置3に送信する。停止対象機能は、例えば、情報処理装置3の主な機能及びサーバ通信機能である。ステップs114の後、ステップs111が実行されると、以後同様にサーバ装置2は動作する。また、ステップs113での異常判定処理において、情報処理装置3の動作が正常であると判定され、その後、ステップs111が実行されると、以後同様にサーバ装置2は動作する。
図31は、間欠動作を行う情報処理装置3が動作停止情報を受信する際の当該情報処理装置3の動作の一例を示すフローチャートである。図29のステップs104の後に続く図30のs111~s114と、ステップs114に続く図31のステップs121,s122とは、例えば、当該ステップs104において動作情報が送信される非スタンバイ期間T11(図24参照)と同じ期間において実行される。
図31に示されるように、ステップs121において、非スタンバイモードで動作する情報処理装置3は、サーバ装置2から動作停止情報を受信する。ステップs121では、主装置30の第2通信部350が動作停止情報を受信し、制御部310は、受信された動作停止情報を記憶部320に書き込む。
次にステップs122において、情報処理装置3は、停止対象機能を停止する。ステップs122では、制御部310は、記憶部320から動作停止情報を読み出して第1通信部340に送信させる。これにより、動作停止情報が動作制御装置40に入力される。動作制御装置40では、制御部410が、通信部470で受信された動作停止情報を、動作許可レジスタ450に書き込む。ここで、動作停止情報は、例えば、零の値を示す。したがって、動作停止情報が動作許可レジスタ450に書き込まれることによって、動作許可レジスタ450には零の値が設定される。これにより、カウントダウンタイマー461のカウント値が零に設定され、カウントダウンタイマー461のカウント動作が停止する。カウントダウンタイマー461のカウント動作が停止すると、イネーブル信号ENSがLowレベルとなり、クロックゲート462はクロック信号CLKmの出力を停止する。これにより、主装置30の動作が停止する。つまり、停止対象機能が停止する。その結果、情報処理装置3の間欠動作が停止する。
このように、本例では、サーバ装置2が、情報処理装置3で取得された動作情報に基づいて情報処理装置3の動作が異常であると判定すると、情報処理装置3は、停止対象機能を停止する。停止対象機能が停止した後、例えばリセットスイッチ50が操作されると、主装置30の動作が復帰して、許可対象機能が復帰する。
<異常判定処理の一例>
本例では、上述のように、動作情報は、クロック計測期間でのクロック計測値である。クロック計測期間でのクロック計測値は、クロック計測期間において、情報処理装置3が非スタンバイモードで動作している時間を示す情報であると言える。情報処理装置3が正常に間欠動作を行う場合には、クロック計測期間において、情報処理装置3が非スタンバイモードで動作している時間は一定である。例えば、情報処理装置3が正常に間欠動作を行う場合の非スタンバイ期間T11とスタンバイ期間T12の比が1:9であり、クロック計測期間が間欠動作の周期T10の整数倍であるとする。この場合、情報処理装置3が正常に間欠動作を行うとき、クロック計測期間において、情報処理装置3が非スタンバイモードで動作している時間は、クロック計測期間の10分の1となる。したがって、情報処理装置3が正常に間欠動作を行う場合には、クロック計測期間でのクロック計測値は一定となる。以後、情報処理装置3が正常に間欠動作を行う場合のクロック計測期間でのクロック計測値を「第1基準値」と呼ぶことがある。
一方で、主装置30がハッキングされた結果、主装置30が間欠動作を行わずに、常にサーバ装置2と通信して当該サーバ装置2をDoS攻撃する場合には、主装置30からスタンバイ信号SBが出力されずに、クロックゲート462は常にクロック信号CLKを出力することになる。この場合、クロック計測カウンター580がクロック計測期間において計測するクロックの数は、第1基準値よりも大きくなる。また、主装置30がハッキングされた結果、間欠動作を行う主装置30が非スタンバイモードで動作する期間が短くなった場合には、クロック計測カウンター580がクロック計測期間において計測するクロックの数は、第1基準値よりも小さくなる。
そこで、本例の異常判定処理において、サーバ装置2の制御部20は、情報処理装置3からの動作情報、つまりクロック計測期間でのクロック計測値と第1基準値とが一致するか否かを判定する。第1基準値は、記憶部21に予め記憶されている。制御部20は、クロック計測期間でのクロック計測値が第1基準値と一致すると判定すると、情報処理装置3の動作は正常であると判定する。一方で、制御部20は、クロック計測期間でのクロック計測値が第1基準値と一致しないと判定すると、情報処理装置3の動作は異常であると判定する。
なお制御部20は、異常判定処理において、クロック計測期間でのクロック計測値が所定範囲内に存在するか否かを判定してもよい。この場合は、制御部20は、クロック計測期間でのクロック計測値が所定範囲内に存在すると判定すると、情報処理装置3の動作は正常であると判定する。一方で、制御部20は、クロック計測期間でのクロック計測値が所定範囲外に存在すると判定すると、情報処理装置3の動作は異常であると判定する。所定範囲は、例えば、第1基準値から第1所定値だけ小さい値から、第1基準値よりも第2所定値だけ大きい値までの範囲に設定される。第1及び第2所定値は同じであってもよいし、異なっていてもよい。
このように、本例では、動作制御装置としての動作制御装置40が、情報処理装置3の動作に関する動作情報を取得することから、動作制御装置40で取得された動作情報を用いた処理の実行が可能となる。例えば、上述のように、動作制御装置40で取得された動作情報がサーバ装置2に送信されることによって、サーバ装置2は、受信した動作情報を用いた処理を実行することが可能となる。サーバ装置2は、例えば、受信した動作情報に基づいて、情報処理装置3の動作が異常であるか否かを判定することができる。
また本例では、サーバ装置2は、情報処理装置3の動作が異常であると判定すると、停止対象機能の停止を指示するための動作停止情報を情報処理装置3に送信する。そして、動作制御装置40は、情報処理装置3での動作停止情報の受信に応じて、主装置30の動作を停止して停止対象機能を停止する。これにより、主装置30等がハッキングされて情報処理装置3の動作が異常となった場合に、情報処理装置3は停止対象機能を停止することができる。よって、情報処理装置3の停止対象機能がハッカーによって利用される可能性を低減することができる。その結果、情報処理装置3の安全性が向上する。
なお、サーバ装置2の制御部20は、情報処理装置3の動作が異常であると判定した場合、動作停止情報を生成せずに、情報処理装置3の動作が異常であることを示す異常判定情報を記憶部21に記憶してもよい。この場合、制御部20は、情報処理装置3から要求信号をサーバ装置2が受信するなどして、動作許可用処理に応じた動作許可条件が成立したと判定すると、記憶部21に異常判定情報が記憶されているか否かを確認する。そして、制御部20は、記憶部21に異常判定情報が記憶されていない場合には、動作許可情報を生成し、通信部22に、生成した動作許可情報を情報処理装置3に送信させる。一方で、制御部20は、記憶部21に異常判定情報が記憶されている場合には、動作許可情報を生成しない。
このように、サーバ装置2が、情報処理装置3の動作が異常であると判定した場合、動作許可用処理に応じた動作許可条件が成立したとしても、動作許可情報を送信しない場合であっても、情報処理装置3の動作に異常が発生した場合に、情報処理装置3は許可対象機能を停止することができる。よって、主装置30等がハッキングされて情報処理装置3の動作が異常となった場合に、情報処理装置3は許可対象機能を停止することができる。よって、情報処理装置3の許可対象機能がハッカーによって利用される可能性を低減することができる。その結果、情報処理装置3の安全性が向上する。
また、図26に示される動作制御装置40にクロック計測カウンター580を設けて、情報処理装置3とサーバ装置2とが上記と同様に動作してもよい。図32は、図26に示される動作制御装置40にクロック計測カウンター580を設けた様子を示す図である。図32の例では、サーバ装置2が情報処理装置3の動作が異常であると判定し、動作許可レジスタ450に動作停止情報が書き込まれると、主装置30に入力されるリセット信号RSmがアサートされて停止対象機能が停止する。
また、図27に示される動作制御装置40にクロック計測カウンター580を設けて、情報処理装置3とサーバ装置2とが上記と同様に動作してもよい。図33は、図27に示される動作制御装置40にクロック計測カウンター580を設けた様子を示す図である。図33の例では、サーバ装置2が情報処理装置3の動作が異常であると判定し、動作許可レジスタ450に動作停止情報が書き込まれると、クロックゲート462からのクロック信号CLKmの出力が停止して停止対象機能が停止する。これにより、例えば、通常モードで動作する動作制御装置40がハッキングされて、情報処理装置3が間欠動作を行わずに常にサーバ装置2と通信するような動作異常が発生した場合には、情報処理装置3は停止対象機能を停止することができる。よって、情報処理装置3の安全性が向上する。
なお、上述の図20と同様に、図33の例において、クロックゲート462から出力されるクロック信号CLKmを通信部470に入力してもよい。この場合の情報処理装置3を、「図33の第1変形例に係る情報処理装置3」と呼ぶ。
また、上述の図21と同様に、図33の例において、カウントダウンタイマー461から出力されるイネーブル信号ENSとリセット信号RSが入力され、通信部470にリセット信号RSnを出力するリセット信号生成部540を設けてもよい。この場合の情報処理装置3を、「図33の第2変形例に係る情報処理装置3」と呼ぶ。
また、上述の図22と同様に、図33の例において、イネーブル信号ENSに基づいてバス550と通信部470の接続を制御するスイッチ回路530を設けてもよい。この場合の情報処理装置3を、「図33の第3変形例に係る情報処理装置3」と呼ぶ。
図33の第1~第3変形例に係る情報処理装置3では、停止対象機能にサーバ通信機能も含まれる。
また、図33の例において、カウントダウンタイマー461から出力されるイネーブル信号ENSとリセット信号RSが入力され、通信部470にリセット信号RSnを出力するリセット信号生成部540を設けて、クロックゲート462を削除し、クロックゲート465から出力されるクロック信号を機能ブロック30に入力してもよい。この場合の情報処理装置3を、「図33の第4変形例に係る情報処理装置3」と呼ぶ。図33の第4変形例に係る情報処理装置3では、停止対象機能には、サーバ通信機能は含まれるものの、情報処理装置3の主な機能は含まれなくなる。
上記の例では、サーバ装置2が異常判定処理を行っているが、情報処理装置3が異常判定処理を行ってもよい。具体的には、情報処理装置3の動作制御装置40が異常判定処理を行ってもよい。図34はこの場合の動作制御装置40の動作の一例を示すフローチャートである。以下では、一例として、図28に示される動作制御装置40が異常判定処理を行う場合について説明する。
図34に示されるように、ステップs151において、制御部410は、上述のステップs101と同様に、クロック計測カウンター580にクロックの数の計測を開始させるとともに、タイマー420にクロック計測期間の計測を開始させる。
次にステップs152において、タイマー420がクロック計測期間の計測を完了すると、ステップs153において、制御部410は、クロック計測カウンター580に計測動作を停止させて、クロック計測カウンター580から現在のクロック計測値を取得する。そして、制御部410は、取得したクロック計測値を記憶部430に記憶する。その後、制御部410は、クロック計測カウンター580のクロック計測値をリセットする。記憶部430に記憶されるクロック計測値は、クロック計測期間でのクロック計測値であると言える。
次にステップs154において、制御部410は、記憶部430に記憶されている、クロック計測期間でのクロック計測値に基づいて異常判定処理を行う。制御部410が行う異常判定処理は、サーバ装置2が行う上述の異常判定処理と同じである。異常判定処理で使用される第1基準値は記憶部430に記憶されている。
ステップs154において、情報処理装置3の動作が異常であると判定されると、ステップs155において、動作制御装置40は停止対象機能を停止する。ステップs155では、制御部410は、停止対象機能の動作不可を示す動作不可情報を動作許可レジスタ450に書き込む。これにより、動作許可レジスタ450内の動作許可情報500は、動作不可情報に書き換えられる。
動作不可情報は、例えば零の値を示す。したがって、動作不可情報が動作許可レジスタ450に書き込まれることによって、動作許可レジスタ450には零の値が設定される。これにより、カウントダウンタイマー461のカウント値が零に設定され、カウントダウンタイマー461のカウント動作が停止する。カウントダウンタイマー461のカウント動作が停止すると、イネーブル信号ENSがLowレベルとなり、クロックゲート462はクロック信号CLKmの出力を停止する。これにより、主装置30の動作が停止する。つまり、停止対象機能が停止する。
ステップs155の後、リセットスイッチ50が操作されるなどして、停止対象機能が復帰すると、ステップs151が再度実行され、以後同様に動作制御装置40は動作する。また、ステップs154での異常判定処理において、情報処理装置3の動作が正常であると判定されると、ステップs151が再度実行され、以後同様に動作制御装置40は動作する。
なお、上述の図33の第1変形例に係る情報処理装置3がステップs151~s155を実行してもよい。また、図33の第2変形例に係る情報処理装置3がステップs151~s155を実行してもよい。また、図33の第3変形例に係る情報処理装置3がステップs151~s155を実行してもよい。また、図33の第4変形例に係る情報処理装置3がステップs151~s155を実行してもよい。
このように、情報処理装置3が異常判定処理を行う場合であっても、情報処理装置3の安全性を向上することができる。
なお、サーバ装置2が異常判定処理を行う場合には、情報処理装置3の販売後であっても、異常判定処理で使用される第1基準値の変更が容易となる。また、情報処理装置3の販売後であっても、異常判定処理の方法の変更が容易となる。一方で、情報処理装置3が異常判定処理を行う場合には、情報処理装置3の動作が異常であると判定されるとすぐに停止対象機能を停止することが可能となる。
情報処理装置3が取得する動作情報は、情報処理装置3の動作に関する情報であればよく、上記の例には限られない。例えば、動作情報は、情報処理装置3の動作ログ及び通信ログの少なくとも一方を含んでもよい。
また、クロック計測カウンター580は、主装置30に入力されるクロックに基づいて、所定期間において動作モードが非スタンバイモードに設定される回数を動作情報として求めてもよい。言い換えれば、クロック計測カウンター580は、主装置30に入力されるクロックに基づいて、所定期間において非スタンバイ期間T11が現れる回数を動作情報として求めてもよい。非スタンバイ期間T11では、主装置30にクロック信号CLKのクロックが入力され、スタンバイ期間T12では、主装置30にクロック信号CLKのクロックが入力されない。したがって、クロック計測カウンター580は、主装置30に入力されるクロックに基づいて、所定期間において動作モードが非スタンバイモードに設定される回数を求めることができる。クロック計測カウンター580が求める当該回数を「計測回数」と呼ぶ。計測回数は、クロック計測期間でのクロック計測値と同様に、主装置30に入力されるクロック信号CLKに基づいて取得される情報であると言える。所定期間は、例えば、間欠動作の周期T10の整数倍に設定される。
サーバ装置2の制御部20あるいは情報処理装置3の制御部410は、計測回数に基づいて異常判定処理を行う。具体的には、制御部20あるいは制御部410は、例えば、計測回数が第2基準値と一致するか否かを判定する。第2基準値は、情報処理装置3が正常に間欠動作を行う場合に、所定期間において動作モードが非スタンバイモードに設定される回数である。例えば、所定期間が周期T10の10倍であるとすると、第2基準値は“10”に設定される。制御部20あるいは制御部410は、計測回数が第2基準値と一致すると判定すると、情報処理装置3の動作は正常であると判定する。一方で、制御部20あるいは制御部410は、計測回数が第2基準値と一致しないと判定すると、情報処理装置3の動作は異常であると判定する。なお、制御部20あるいは制御部410は、クロック計測値及び第1基準値が用いられた上述の異常判定処理と同様に、第2基準値を含む所定範囲内に計測回数が存在する場合に、情報処理装置3の動作は正常であると判定し、当該所定範囲外に計測回数が存在する場合に、情報処理装置3の動作は異常であると判定してもよい。以後、異常判定処理の説明において制御部と言えば、制御部20及び制御部410のそれぞれを意味する。
また、クロック計測カウンター580は、一の非スタンバイ期間T11において主装置30に入力されるクロックの数についての所定期間での平均値を動作情報として求めてもよい。所定期間は、例えば、間欠動作の周期T10の整数倍に設定される。ここで、一の非スタンバイ期間T11において主装置30に入力されるクロックの数を「非スタンバイクロック数」と呼ぶ。所定期間が周期T10の10倍であるとすると、所定期間には10個の非スタンバイ期間T11が含まれることから、クロック計測カウンター580は、10個の非スタンバイクロック数の平均値を動作情報として求める。クロック計測カウンター580で求められる当該平均値を「計測平均値」と呼ぶ。計測平均値は、主装置30に入力されるクロック信号CLKに基づいて取得される情報であると言える。
制御部は計測平均値に基づいて異常判定処理を行う。具体的には、制御部は、例えば、計測平均値が第3基準値と一致するか否かを判定する。第3基準値は、情報処理装置3が正常に間欠動作を行う場合における、所定期間での非スタンバイクロック数の平均値である。制御部は、計測平均値が第3基準値と一致すると判定すると、情報処理装置3の動作は正常であると判定する。一方で、制御部は、計測平均値が第3基準値と一致しないと判定すると、情報処理装置3の動作は異常であると判定する。なお、制御部は、第3基準値を含む所定範囲内に計測平均値が存在する場合に、情報処理装置3の動作は正常であると判定し、当該所定範囲外に計測平均値が存在する場合に、情報処理装置3の動作は異常であると判定してもよい。
また動作情報には、複数の情報が含まれてもよい。この場合、異常判定処理において、制御部は、例えば、複数の情報のそれぞれについて、当該情報に基づいて、情報処理装置3の動作が異常であるか否かを暫定的に判定する暫定異常判定を行う。制御部は、動作情報に含まれる複数の情報のすべてについての暫定異常判定において、情報処理装置3の動作が正常であると判定すると、情報処理装置3の動作が正常であると最終的に判定する。一方で、制御部は、動作情報に含まれる複数の情報の少なくとも一つについての暫定異常判定において、情報処理装置3の動作が異常であると判定すると、情報処理装置3の動作が異常であると最終的に判定する。
動作情報には、例えば、クロック計測期間でのクロック計測値、計測回数及び計測平均値の少なくとも2つが含まれてもよい。例えば、動作情報に、クロック計測期間でのクロック計測値及び計測回数が含まれる場合を考える。この場合、制御部は、異常判定処理において、クロック計測値及び計測回数のそれぞれに基づいて、上記のようにして、情報処理装置3の動作が異常であるか否かを暫定的に判定する。制御部は、クロック計測値及び計測回数のそれぞれについての暫定異常判定において、情報処理装置3の動作が正常であると判定すると、情報処理装置3の動作が正常であると最終的に判定する。一方で、制御部は、クロック計測値及び計測回数の少なくとも一つについての暫定異常判定において、情報処理装置3の動作が異常であると判定すると、情報処理装置3の動作が異常であると最終的に判定する。
他の例として、動作情報に、クロック計測期間でのクロック計測値、計測回数及び計測平均値が含まれる場合を考える。この場合、制御部は、異常判定処理において、クロック計測値、計測回数及び計測平均値のそれぞれに基づいて、上記のようにして、情報処理装置3の動作が異常であるか否かを暫定的に判定する。制御部は、クロック計測値、計測回数及び計測平均値のすべてについての暫定異常判定において、情報処理装置3の動作が正常であると判定すると、情報処理装置3の動作が正常であると最終的に判定する。一方で、制御部は、クロック計測値、計測回数及び計測平均値の少なくとも一つについての暫定異常判定において、情報処理装置3の動作が異常であると判定すると、情報処理装置3の動作が異常であると最終的に判定する。以後、クロック計測値、計測回数及び計測平均値を総称してクロック信号CLKに基づく動作情報と呼ぶことがある。
また、許可対象機能と停止対象機能とは、同じであってもよいし、異なっていてもよい。後者の場合、例えば、許可対象機能を情報処理装置3の主な機能とし、停止対象機能をサーバ通信機能としてもよい。図35はこの場合の情報処理装置3の構成の一例を示す図である。図35に示される情報処理装置3は、図33に示される情報処理装置3において、通信部470用のリセット信号RSnを出力するリセット信号生成部590が設けられたものである。リセット信号生成部590は、リセット信号RSがアサートされると、リセット信号RSnをアサートする。図35の例では、情報処理装置3の動作が異常であると判定されると、制御部410は、通信部470の動作の停止を指示する指示信号411をリセット信号生成部590に出力する。リセット信号生成部590は、指示信号411を受け取ると、リセット信号RSnをアサートして通信部470の動作を停止する。これにより、サーバ装置2あるいは動作制御装置40で情報処理装置3の動作が異常であると判定されると、サーバ通信機能が停止する。
また、上記の例の情報処理システム1では、サーバ装置2が動作許可条件が成立するか否かを判定し、当該動作許可条件が成立した場合に動作許可情報を情報処理装置3に送信し、情報処理装置3が受信した動作許可情報に応じて許可対象機能を動作させるといった処理(以後、「第1機能制御処理」と呼ぶことがある)が行われているが、当該処理は行われなくてもよい。
また、上記の例の情報処理システム1では、情報処理装置3の動作が異常であるか否かが判定され、情報処理装置3の動作が異常であると判定されると、停止対象機能を停止するといった処理(以後、「第2機能制御処理」と呼ぶことがある)が行われているが、当該処理は行われなくてもよい。
また、情報処理システム1において、第1機能制御処理が行われずに、第2機能制御処理が行われる場合には、動作許可レジスタ450内に動作許可情報500が予め記憶されていてもよい。つまり、情報処理装置3の工場出荷段階において、動作許可レジスタ450内に動作許可情報500が記憶されていてもよい。この場合、動作許可情報500は、例えば、情報処理装置3の製品寿命(例えば10年)よりも長い動作可能期間(例えば30年)を示す。動作制御装置40の制御部410は、情報処理装置3の動作が異常であると判定されると、動作許可レジスタ450内の動作許可情報500を、サーバ装置2からの動作停止情報あるいは自身で生成する動作不可情報に書き換えることによって、停止対象機能を停止する。なお、この場合において、情報処理装置3が異常判定処理を行うときには、情報処理装置3はサーバ装置2と通信しなくてもよい。
また、異常判定処理の方法は上記の例に限られない。また、動作情報が使用された処理は異常判定処理に限られない。
<主装置の構成の他の例>
図36は主装置30の構成の他の例を示す図である。図36に示される例では、制御部310、記憶部320、センサ装置330、第1通信部340、第2通信部350及び処理回路360は、互いに異なるパッケージ311,321,331,341,351,361にそれぞれに収納されている。制御部310は、記憶部320、センサ装置330、第1通信部340、第2通信部350及び処理回路360のそれぞれと、例えばSPIあるいはI2Cに基づいて通信することが可能である。なお、制御部310と、記憶部320、センサ装置330、第1通信部340、第2通信部350及び処理回路360との間の通信方式はこれに限られない。
制御部310は、図37に示されるように、クロック生成部312を備えてもよい。クロック生成部312は、例えばリングオシレータである。クロック生成部312から出力されるクロック信号CLKpの周波数精度は、例えば、動作制御装置40が備えるクロック生成部480から出力されるクロック信号CLKの周波数精度よりも低くなっている。
図37のように、制御部310がクロック生成部312を備える場合には、主装置30は、クロック信号CLKpに基づいて、動作してもよいし、動作しなくてもよい。後者の場合には、クロック生成部312の動作は常に停止してもよい。一方で、前者の場合、例えば、制御部310は、主装置30のリセットが解除されると、つまり、主装置30に入力されるリセット信号RSがネゲートされると、まず、クロック信号CLKpに基づいて動作を開始し、主装置30の初期設定を行う。初期設定後は、クロック信号CLKpは使用されずに、制御部310はクロック信号CLKmに基づいて動作を行う。初期設定後は、クロック生成部312の動作は停止してもよい。なお、クロック信号CLKpの使用例はこの限りではない。また、クロック生成部312はリングオシレータ以外であってもよい。以後、クロック信号CLKpを内部クロック信号CLKpと呼ぶことがある。
<機能停止方法の他の例>
動作制御装置40は、動作可能期間が経過した場合、あるいは情報処理装置3の動作が異常であると判定された場合、主装置30に対する電源供給を停止することによって、主装置30の動作を停止してもよい。図38はこの場合の動作制御装置40の構成の一例を主に示す図である。図38の例では、情報処理装置3は、その電源を生成するバッテリ70を備えている。動作制御装置40及び主装置30は、バッテリ70の出力電圧Vbに基づいて動作する。
図38に示される動作制御装置40は、上述の図15に示される動作制御装置40において、リセット信号生成部510の替わりに電源回路610を備え、リセット信号RSを主装置30に入力するものである。
電源回路610は、主装置30の電源電圧Vmを生成する。電源回路610は、バッテリ70の出力電圧Vbに基づいて電源電圧Vmを生成して出力することが可能である。電源回路610は例えば降圧回路であって、バッテリ70の出力電圧Vbを降圧して出力する。
主装置30には電源電圧Vmが入力される電源入力口303が設けられている。主装置30は、電源入力口303に入力される電源電圧Vmに基づいて動作を行う。図38の例では、カウントダウンタイマー461と電源回路610とで、主装置30の動作を制御する動作制御部620が構成される。
電源回路610には、カウントダウンタイマー461から出力されるイネーブル信号ENSが入力される。電源回路610は、イネーブル信号ENSがLowレベルのとき電源電圧Vmを出力しない。一方で、電源回路610は、イネーブル信号ENSがHighレベルのとき電源電圧Vmを出力する。
このような構成を有する動作制御装置40では、情報処理装置3のリセット解除後に、動作許可レジスタ450に初期値が設定されると、イネーブル信号ENSがLowレベルからHighレベルに変化して、主装置30の電源入力口303に電源電圧Vmが入力される。これより、主装置30は初期動作可能期間、動作することが可能となる。そして、初期動作可能期間において、動作許可条件が成立して、動作許可レジスタ450に動作許可情報500が設定されると、イネーブル信号ENSはHighレベルを維持し、主装置30は動作を継続する。その後、動作許可レジスタ450内の動作許可情報500が更新されない場合には、情報処理装置3に現在設定されている動作可能期間が経過すると、電源入力口303に電源電圧Vmが入力されなくなり、その結果、主装置30の動作が停止する。
なお、図16,図17等に示されるように、主装置30と動作制御装置40とが同一のパッケージ600に収納される場合においても、図38の例と同様に、動作制御装置40は、主装置30(言い換えれば機能ブロック30)に対する電源供給を停止することによって、主装置30の動作を停止してもよい。
また、図23~28等に示されるように、情報処理装置3が間欠動作を行う場合においても、図38の例と同様に、動作制御装置40は、主装置30に対する電源供給を停止することによって、主装置30の動作を停止してもよい。図39は、この場合の動作制御装置40の構成の一例を示す図である。
図39に示される動作制御装置40は、上述の図32に示される動作制御装置40において、リセット信号生成部510の替わりに電源回路610を備え、リセット信号RSを主装置30に入力するものである。図39の例では、カウントダウンタイマー461、クロックゲート465及び電源回路610で、主装置30の動作を制御する動作制御部620が構成される。
図39に示される動作制御装置40では、サーバ装置2が異常判定処理を行う場合、サーバ装置2からの動作停止情報が動作許可レジスタ450に設定されると、動作許可レジスタ450には零の値が設定される。これにより、カウントダウンタイマー461のカウント値が零に設定され、イネーブル信号ENSがLowレベルとなる。その結果、電源回路610から電源電圧Vmが出力されなくなり、主装置30の動作が停止する。また、情報処理装置3で異常判定処理が行われる場合、動作不可情報が動作許可レジスタ450に設定されると、動作許可レジスタ450には零の値が設定される。これにより、カウントダウンタイマー461のカウント値が零に設定され、イネーブル信号ENSがLowレベルとなる。その結果、電源回路610から電源電圧Vmが出力されなくなり、主装置30の動作が停止する。
また、動作制御装置40は、動作可能期間が経過した場合、あるいは情報処理装置3の動作が異常であると判定された場合、通信部470に対する電源供給を停止することによって、通信部470の動作を停止してもよい。図40はこの場合の動作制御装置40の構成の一例を主に示す図である。
図40に示される動作制御装置40は、図21に示される動作制御装置40において、リセット信号生成部540の替わりに電源回路630を備えるものである。電源回路630は、バッテリ70の出力電圧Vbに基づいて、通信部470の電源電圧Vnを生成して出力することが可能である。電源回路630は、例えば降圧回路であって、出力電圧Vbを降圧して出力する。電源回路630には、カウントダウンタイマー461から出力されるイネーブル信号ENSが入力される。電源回路630は、イネーブル信号ENSがLowレベルのとき電源電圧Vnを出力しない。一方で、電源回路630は、イネーブル信号ENSがHighレベルのとき電源電圧Vnを出力する。なお、図27,33等に示されるように、情報処理装置3が間欠動作を行う場合においても、動作制御装置40は、通信部470に対する電源供給を停止することによって、通信部470の動作を停止してもよい。
また、動作制御装置40は、動作可能期間が経過した場合、あるいは情報処理装置3の動作が異常であると判定されたとき、主装置30における、制御部310を除く一部の回路の動作を、制御部310の動作にかかわらず、停止してもよい。図41は、この場合の動作制御装置40の構成の一例を示す図である。
図41に示される動作制御装置40は、上述の図38に示される動作制御装置40において、電源回路610の替わりに制御部650を備えるものである。図41に示される動作制御装置40では、カウントダウンタイマー461及び制御部650によって、主装置30の動作を制御する動作制御部660が構成されている。
制御部650は、イネーブル信号ENSがLowレベルのときには、制御部310の動作にかかわらず、主装置30の一部の回路の動作を停止させる。以後、制御部310の動作にかかわらず、主装置30の一部の回路の動作を停止させることを「強制停止制御」と呼ぶことがある。一方で、制御部650は、イネーブル信号ENSがHighレベルのとき、主装置30の一部の回路に対する強制停止制御を解除する。
制御部650は、例えば、サーバ装置2と通信する第2通信部350に入力される信号を制御することによって、第2通信部350に対して強制停止制御を行う。例えば、上述の図36,37に示される構成において、制御部310がI2Cに基づいて第2通信部350と通信することが可能である場合を考える。この場合、動作制御部660の制御部650は、第2通信部350に入力されるSCL信号を強制的にLowレベルに固定する。これにより、制御部310は、第2通信部350と通信しようとしたとしても、SCL信号のレベルが強制的にLowレベルに固定されていることから、第2通信部350と通信できなくなる。制御部650は、制御部310と第2通信部350とを接続する、SCL信号が流れる信号ラインのレベルをLowレベルに固定することによって、第2通信部350に対して強制停止制御を行うことができる。一方で、制御部650は、当該信号ラインをLowレベルに固定することを止めることによって、第2通信部350に対する強制停止制御を解除することができる。第2通信部350に対する強制停止制御が解除されると、制御部410は第2通信部350との通信が可能となり、その結果、第2通信部350は、制御部310による制御に応じて動作することが可能となる。
なお、制御部650は、主装置30における、第2通信部350以外の回路の動作を停止してもよい。また、制御部650は、記憶部320、センサ装置330、第1通信部340及び第2通信部350の少なくとも一つの回路の動作を停止してもよい。
また、制御部650は、主装置30のある回路に対して制御部310から供給される、当該ある回路を活性化するための信号を強制的にネゲートすることができる場合には、当該信号をネゲートすることによって当該ある回路に対して強制停止制御を行ってもよい。回路を活性化するための信号は、例えば、セレクト信号、チップセレクト信号、イネーブル信号あるいはチップイネーブル信号と呼ばれることがある。以後、回路を活性化するための信号を活性化信号と呼ぶことがある。
また、図24等に示されるように、情報処理装置3が間欠動作を行う場合においても、図41の例と同様に、動作制御装置40は、制御部310の動作にかかわらず、主装置30の一部の回路を停止してもよい。図42は、この場合の動作制御装置40の構成の一例を示す図である。図42に示される動作制御装置40は、上述の図39に示される動作制御装置40において、電源回路610の替わりに制御部650を設けたものである。
<動作情報の他の例>
上記の例では、異常判定処理で使用される動作情報には、クロック計測期間でのクロック計測値、計測回数及び計測平均値の少なくとも一つが含まれていたが、これらの情報以外の情報が含まれてもよい。以後、異常判定処理で使用される、情報処理装置3の動作に関する動作情報を「装置動作情報」と呼ぶことがある。
装置動作情報には、例えば、主装置30が備える、互いに異なる機能を実現する複数の回路の少なくとも一つの回路の動作に関する動作情報が含まれてもよい。具体的には、装置動作情報には、記憶部320、センサ装置330、第1通信部340、第2通信部350及び処理回路360の少なくとも一つの回路の動作に関する動作情報が含まれてもよい。以後、装置動作情報に、その動作情報が含まれる回路を特定回路と呼ぶことがある。以下に、一例として、記憶部320、センサ装置330及び第2通信部350が特定回路である場合の情報処理システム1について説明する。
図43は、間欠動作を行う情報処理装置3の非スタンバイ期間T11での記憶部320、センサ装置330及び第2通信部350の動作の一例を説明するための図である。図43では、センサ装置という文字列が示される長方形は、センサ装置330の動作期間T20を示している。また、記憶部という文字列が示される長方形は、記憶部320の動作期間T30を示している。そして、第2通信部という文字列が示される長方形は、第2通信部350の動作期間T40を示している。以下では、記憶部320、センサ装置330及び第2通信部350が図43のように動作する場合の情報処理システム1について説明する。
図43に示される例では、情報処理装置3の動作モードが非スタンバイモードに設定されると、まず、制御部310は、センサ装置330を制御して、センサ装置330にセンサ情報を取得させる。次に制御部310は、センサ装置330で得られるセンサ情報を記憶部320に記憶する。次に制御部310は、記憶部320からセンサ情報を読み出して処理回路360に入力する。次に制御部310は、処理回路360で得られる処理済みセンサ情報を記憶部320に記憶する。次に制御部310は、記憶部320から処理済みセンサ情報を読み出す。次に制御部310は、第2通信部350を制御して、記憶部320から読み出した処理済みセンサ情報を第2通信部350に送信させる。第2通信部350でのサーバ装置2への処理済みセンサ情報の送信が完了すると、制御部310はスタンバイ信号SBを出力する。これにより、非スタンバイ期間T11が終了して、情報処理装置3の動作モードがスタンバイモードに設定される。第2通信部350は、動作期間T40において、処理済みセンサ情報以外の情報をサーバ装置2に送信してもよい。また、第2通信部350は、動作期間T40において、サーバ装置2からの情報を受信してもよい。
なお、図43に示される、記憶部230の動作期間T30を示す長方形は連続的に延びているが、上記の説明から理解できるように、動作期間T30において、記憶部230は連続的に動作しているのではなく、断続的に動作する。
主装置30がこのように動作することによって、図43に示されるように、非スタンバイ期間T11では、センサ装置330の動作開始タイミングt21の後に、記憶部320の動作開始タイミングt31が現れる。動作開始タイミングt21及びt31は、非スタンバイ期間T11の初めの方に現れる。また、非スタンバイ期間T11では、記憶部320の動作開始タイミングt31の後に、第2通信部350の動作開始タイミングt41が現れる。動作開始タイミングt41は非スタンバイ期間T11の中頃に現れる。
また図43の例では、記憶部320の動作開始タイミングt31の後に、センサ装置330の動作終了タイミングt22が現れ、第2通信部350の動作開始タイミングt41の後に、記憶部320の動作終了タイミングt32が現れる。非スタンバイ期間T11において、動作終了タイミングt22は初めの方に現れ、動作終了タイミングt32は中頃に現れる。また、非スタンバイ期間T11では、記憶部320の動作終了タイミングt32の後に、第2通信部350の動作終了タイミングt42が現れる。動作終了タイミングt42は、非スタンバイ期間T11の終わりの方に現れる。
以上のような動作を行う主装置30がハッキングされた場合、センサ装置330、記憶部320及び第2通信部350は、図43に示されるように動作しないことがある。例えば、主装置30がハッキングされた結果、第2通信部350が長時間サーバ装置2と通信し、非スタンバイ期間T11での第2通信部350の動作時間(言い換えれば、動作期間T40の長さ)が、情報処理装置3が正常に動作する場合と比較して非常に長くなる可能性がある。また、非スタンバイ期間T11でのセンサ装置330の動作時間(言い換えれば、動作期間T20の長さ)が、情報処理装置3が正常に動作する場合と比較して非常に長くなったり、非スタンバイ期間T11での記憶部320の動作時間(言い換えれば、動作期間T30の長さ)が、情報処理装置3が正常に動作する場合と比較して非常に長くなったりする可能性がある。また、主装置30がハッキングされた結果、第2通信部350の動作開始タイミングt41が、情報処理装置3が正常に動作する場合と比較して非常に早くなったり、センサ装置330の動作終了タイミングt22が、情報処理装置3が正常に動作する場合と比較して非常に遅くなったりする可能性がある。
そこで、本例では、センサ装置330、記憶部320及び第2通信部350の動作情報に基づいて、情報処理装置3の動作が異常であるか否かが判定される。図44,45は、この場合の動作制御装置40及び主装置30の構成の一例をそれぞれ示す図である。図44に示される動作制御装置40は、上述の図28に示される動作制御装置40において、クロック計測カウンター580の替わりに動作情報取得部700を設けたものである。図45に示される主装置30は、上述の図36に示される主装置30において、動作制御装置40との接続関係を変更したものである。図45に示される主装置30の制御部310は、図37に示されるように、クロック生成部312を備えてもよい。なお、情報処理装置3の全体の構成は上述の図23に示される構成と同じである。
動作制御装置40の動作情報取得部700は、制御部410によって制御される。制御部410は、クロック計測カウンター580と同様に、セキュアモードで動作する場合にだけ、動作情報取得部700を制御することができる。動作情報取得部700は装置動作情報を取得する。具体的には、動作情報取得部700は、主装置30が備える複数の特定回路の動作情報を取得し、取得した動作情報を装置動作情報とする。例えば、動作情報取得部700は、主装置30のセンサ装置330、記憶部320及び第2通信部350の動作情報を取得し、取得した動作情報を装置動作情報とする。
動作情報取得部700は、特定回路の動作情報として、例えば、所定期間でのセンサ装置330の動作時間を取得する。具体的には、動作情報取得部700は、センサ装置330の動作情報として、例えば、所定期間でのセンサ装置330の動作時間を取得する。動作情報取得部700は、記憶部320の動作情報として、例えば、所定期間での記憶部320の動作時間を取得する。動作情報取得部700は、第2通信部350の動作情報として、例えば、所定期間での第2通信部350の動作時間を取得する。所定期間は、例えば、非スタンバイ期間T11と一致している。以後、この所定期間を観測期間と呼ぶことがある。観測期間は、割り込み信号INTが動作制御装置40に入力されると開始し、スタンバイ信号SBが動作制御装置40に入力されると終了する。言い換えれば、観測期間は、クロック信号CLKの主装置30に対する供給が開始すると開始し、クロック信号CLKの主装置30に対する供給が停止すると終了する。
動作情報取得部700は、主装置30の制御部310とセンサ装置330との間の所定の信号SG1に対する監視に基づいて、センサ装置330の動作情報を取得する。本例では、制御部310とセンサ装置330との間の、信号SG1が流れる信号ラインSL11に対して、一端が動作情報取得部700に接続された信号ラインSL12の他端が接続されている。これにより、動作情報取得部700は、センサ装置330に接続された信号ラインSL11に流れる信号SG1の監視が可能となる。
動作情報取得部700は、制御部310と記憶部330との間の所定の信号SG2に対する監視に基づいて、記憶部330の動作情報を取得する。本例では、制御部310と記憶部320との間の、信号SG2が流れる信号ラインSL21に対して、一端が動作情報取得部700に接続された信号ラインSL22の他端が接続されている。これにより、動作情報取得部700は、記憶部320に接続された信号ラインSL21に流れる信号SG2の監視が可能となる。
動作情報取得部700は、制御部310と第2通信部350との間の所定の信号SG3に対する監視に基づいて、第2通信部350の動作情報を取得する。本例では、制御部310と第2通信部350との間の、信号SG3が流れる信号ラインSL31に対して、一端が動作情報取得部700に接続された信号ラインSL32の他端が接続されている。これにより、動作情報取得部700は、第2通信部350に接続された信号ラインSL31に流れる信号SG3の監視が可能となる。
制御部310がセンサ装置330と例えばSPIに基づいて通信する場合には、監視対象の信号SG1として、例えばチップセレクト信号が採用される。また、制御部310が記憶部320と例えばSPIに基づいて通信する場合には、監視対象の信号SG2として、例えばチップセレクト信号が採用される。また、制御部310が第2通信部350と例えばSPIに基づいて通信する場合には、監視対象の信号SG3として、例えばチップセレクト信号が採用される。
一方で、制御部310がセンサ装置330と例えばI2Cに基づいて通信する場合には、監視対象の信号SG1として、例えばSCL信号及びSDA信号が採用される。また、制御部310が記憶部320と例えばI2Cに基づいて通信する場合には、監視対象の信号SG2として、例えばSCL信号及びSDA信号が採用される。また、制御部310が第2通信部350と例えばI2Cに基づいて通信する場合には、監視対象の信号SG3として、例えばSCL信号及びSDA信号が採用される。
動作情報取得部700は、観測期間、信号SG1を監視し、その監視結果に基づいて、観測期間でのセンサ装置330の動作時間を特定する。例えば、信号SG1が、SPIのチップセクト信号である場合を考える。この場合、チップセレクト信号がアサートされている期間、センサ装置330が動作していると考えることができる。SPIのチップセレクト信号は、その信号レベルがHighレベルからLowレベルに変更されることによってアサートされ、LowレベルからHighレベルに変更されることによってネゲートされる。したがって、動作情報取得部700は、観測期間、センサ装置330に入力されるチップセレクト信号の立ち下がり及び立ち上がりを監視することによって、観測期間でのセンサ装置330の動作時間を特定することができる。
他の例として、信号SG1が、I2CのSCL信号及びSDA信号である場合を考える。I2Cでは、通信開始時にスタート・コンディションが発行され、通信終了時にストップ・コンディションが発行される。センサ装置330は、スタート・コンディションの発行からストップ・コンディションの発行まで動作していると考えることができる。I2Cでは、SCL信号がHighレベルのときにSDA信号がHighレベルからLowレベルに変化することによって、スタート・スタートコンディションが発行される。また、SCL信号がHighレベルのときにSDA信号がLowレベルからHighレベルに変化することによって、ストップ・スタートコンディションが発行される。したがって、動作情報取得部700は、観測期間、制御部310とセンサ装置330との間のSCL信号及びSDA信号を監視することによって、観測期間でのセンサ装置330の動作時間を特定することができる。
同様にして、動作情報取得部700は、制御部310と記憶部320との間の信号SG2を観測期間監視することによって、観測期間での記憶部320の動作時間を特定することができる。また、動作情報取得部700は、制御部310と第2通信部350との間の信号SG3を観測期間監視することによって、観測期間での第2通信部350の動作時間を特定することができる。
以後、動作情報取得部700で特定される、観測期間での特定回路の動作時間を、特定回路の測定動作時間と呼ぶことがある。例えば、センサ装置330の測定動作時間は、動作情報取得部700で特定される、観測期間でのセンサ装置330の動作時間を意味する。
情報処理装置3は、サーバ装置2に対して、複数の観測期間での特定回路の動作情報をまとめてログ情報として送信してもよいし、一の観測期間ごとに、観測期間での特定回路の動作情報を送信してもよい。
サーバ装置2が異常判定処理を行う場合には、制御部20は、上述の図30のステップs113において、情報処理装置3から受け取った装置動作情報に含まれる、センサ装置330、記憶部320及び第2通信部350の動作情報に基づいて、情報処理装置3の動作が異常であるか否かを判定する。具体的には、制御部20は、センサ装置330、記憶部320及び第2通信部350の測定動作時間に基づいて、情報処理装置3の動作が異常であるか否かを判定する。
ステップs113では、制御部20は、センサ装置330の動作情報、例えば測定動作時間に基づいて暫定異常判定を行う。また制御部20は、記憶部320の動作情報、例えば測定動作時間に基づいて暫定異常判定を行う。そして制御部20は、第2通信部350の動作情報、例えば測定動作時間に基づいて暫定異常判定を行う。制御部20は、センサ装置330、記憶部320及び第2通信部350の動作情報に基づく暫定異常判定の少なくとも一つにおいて情報処理装置3の動作が異常であると判定すると、情報処理装置3の動作は異常であると最終的に判定する。一方で、制御部20は、センサ装置330、記憶部320及び第2通信部350の動作情報に基づく暫定異常判定のすべてにおいて、情報処理装置3の動作が正常であると判定する場合には、情報処理装置3の動作は正常であると最終的に判定する。
暫定異常判定において、制御部20は、例えば、センサ装置330の測定動作時間が第4基準値と一致するか否かを判定する。制御部20は、センサ装置330の測定動作時間が第4基準値と一致すると判定する場合、情報処理装置3の動作は正常であると判定する。一方で、制御部20は、センサ装置330の測定動作時間が第4基準値と一致しないと判定する場合、情報処理装置3の動作は異常であると判定する。第4基準値は、情報処理装置3が正常に間欠動作を行う場合における、観測期間でのセンサ装置330の動作時間である。また、制御部20は、第4基準値を含む所定範囲内にセンサ装置330の測定動作時間が存在する場合に、情報処理装置3の動作は正常であると判定し、当該所定範囲外にセンサ装置330の測定動作時間が存在する場合に、情報処理装置3の動作は異常であると判定してもよい。
なお制御部20は、動作情報取得部700で取得される、複数の観測期間でのセンサ装置330の動作時間の平均値を第4基準値として使用してもよい。例えば、制御部20は、センサ装置330の最新の測定動作時間を取得すると、それよりも前に取得された、センサ装置330の複数の測定動作時間の平均値を求める。そして、制御部20は、求めた平均値を第4基準値として、上述のように暫定異常判定を行う。
制御部20は、センサ装置330の測定動作時間に基づく暫定異常判定と同様に、記憶部320の測定動作期間に基づく暫定異常判定と、第2通信部350の測定動作期間に基づく暫定異常判定とを行うことができる。
情報処理装置3が異常判定処理を行う場合には、動作制御装置40の制御部410は、上述の図34に示されるフローチャートにおいて、ステップs151~s153の実行の替わりに、センサ装置330、記憶部320及び第2通信部350の動作情報を動作情報取得部700に取得させる。そして、ステップs154において、制御部410は、動作情報取得部700で取得されたセンサ装置330、記憶部320及び第2通信部350の動作情報に基づいて、情報処理装置3の動作が異常であるか否かを判定する。制御部410は、サーバ装置2の制御部20が異常判定処理を行う場合と同様にして、センサ装置330、記憶部320及び第2通信部350の測定動作時間に基づいて、情報処理装置3の動作が異常であるか否かを判定することができる。
制御部310がSPIに基づいてセンサ装置330と通信する場合、監視対象の信号SG1は、チップセレクト信号及びクロック信号とされてもよい。この場合、動作情報取得部700は、例えば、チップセレクト信号がアサートされている期間(Lowレベルの期間)のクロック信号の立ち上がり回数あるいは立ち下がり回数を測定し、その測定回数を、センサ装置330の動作時間としてもよい。あるいは、動作情報取得部700は、チップセレクト信号がアサートされている期間のクロック信号のトグル回数を測定し、その測定回数を、センサ装置330の動作時間としてもよい。ここで、信号のトグル回数とは、信号の立ち上がり回数と立ち下がり回数とを足し合わせた値である。したがって、動作情報取得部700は、クロック信号のトグル回数をカウントする場合には、クロック信号の立ち上がり及び立ち下がりのそれぞれにおいて計測回数をカウントアップする。なお、動作情報取得部700は、記憶部320及び第2通信部350についても、チップセレクト信号がアサートされている期間のクロック信号の立ち上がり回数、立ち下がり回数あるはトグル回数を、記憶部320及び第2通信部350の動作時間としてもよい。
また、動作情報取得部700は、制御部310がI2Cに基づいてセンサ装置330と通信する場合、スタート・コンディションが発行されてから、ストップ・コンディションが発行されるまでの期間のSCL信号の立ち上がり回数あるいは立ち下がり回数を測定し、その測定回数を、センサ装置330の動作時間として、装置動作情報に含めてもよい。あるいは、動作情報取得部700は、スタート・コンディションが発行されてから、ストップ・コンディションが発行されるまでの期間のSCL信号のトグル回数を測定し、その測定回数を、センサ装置330の動作時間として装置動作情報に含めてもよい。なお、動作情報取得部700は、記憶部320及び第2通信部350についても、スタート・コンディションが発行されてから、ストップ・コンディションが発行されるまでの期間のSCL信号の立ち上がり回数、立ち下がり回数あるはトグル回数を、記憶部320及び第2通信部350の動作時間としてもよい。
装置動作情報には、センサ装置330、記憶部320及び第2通信部350の動作情報と、それ以外の情報とが含まれてもよい。例えば、装置動作情報には、センサ装置330、記憶部320及び第2通信部350の動作情報と、クロック計測期間でのクロック計測値とが含まれてもよい。この場合には、動作情報取得部700は、クロック計測カウンター580と同様に、動作制御部460から出力されるクロック信号CLKmに基づいてクロック計測期間でのクロック計測値を取得する。そして、センサ装置330、記憶部320及び第2通信部350の動作情報のそれぞれ基づく暫定異常判定の結果と、クロック計測期間でのクロック計測値に基づく暫定異常判定の結果とに基づいて、情報処理装置3の動作が異常であるか否かが最終的に判定される。
また、装置動作情報には、センサ装置330、記憶部320及び第2通信部350の動作情報のうちの一つだけが含まれてもよい。つまり、特定回路は一つだけでもよい。この場合、装置動作情報に、特定回路の動作情報以外の他の情報(例えばクロック計測値)が含まれていない場合には、特定回路の動作情報に基づく暫定異常判定の結果が、情報処理装置3の動作が異常であるか否かの最終的な判定結果となる。
また、装置動作情報には、センサ装置330、記憶部320及び第2通信部350の動作情報のうちの二つだけが含まれてもよい。つまり、特定回路は二つだけであってもよい。この場合、異常判定処理では、装置動作情報に含まれる二つの動作情報のそれぞれに基づいて暫定異常判定が行われる。
また、装置動作情報に含まれる特定回路の動作情報には、観測期間での当該特定回路の動作開始タイミングが含まれてもよい。具体的には、装置動作情報に含まれるセンサ装置330の動作情報には、観測期間でのセンサ装置330の動作開始タイミングが含まれてもよい。動作情報取得部700は、センサ装置330の動作時間の特定と同様に、信号SG1に対する監視に基づいて、観測期間でのセンサ装置330の動作開始タイミングを特定することができる。例えば、信号SG1がSPIのチップセレクト信号である場合、動作情報取得部700は、当該チップセレクト信号がネゲート状態(Highレベル)からアサート状態(Lowレベル)に変化するタイミングを、センサ装置330の動作開始タイミングと見なすことができる。また、信号SG1がI2CのSCL信号及びSDA信号である場合、動作情報取得部700は、SCL信号及びSDA信号に基づいてスタート・コンディションが発行されたタイミングを特定し、そのタイミングをセンサ装置330の動作開始タイミングと見なすことができる。以後、動作情報取得部700で特定される、観測期間での特定回路の動作開始タイミングを、特定回路の測定動作開始タイミングと呼ぶことがある。センサ装置330の測定動作開始タイミングは、動作情報取得部700で特定される、観測期間でのセンサ装置330の動作開始タイミングを意味する。
センサ装置330の測定動作開始タイミングは、例えば、観測期間での相対的なタイミングで表される。例えば、観測期間の長さをTMで表すとする。センサ装置330の測定動作開始タイミングが、観測期間の開始から、観測期間の10分の1の期間だけ経過したタイミングだとすると、センサ装置330の測定動作開始タイミングは、例えば、(TM×1/10)で表される。
センサ装置330の動作情報に測定動作開始タイミングが含まれる場合には、異常判定処理では、当該測定動作開始タイミングに基づく暫定異常判定が行われる。情報処理装置3が正常に動作している場合には、上述の図43に示されるように、非スタンバイ期間T11の初めの方にセンサ装置330の動作開始タイミングt21が現れる。暫定異常判定では、非スタンバイ期間T11と一致する観測期間でのセンサ装置330の動作開始タイミングが、観測期間の初めの方に現れる場合には、情報処理装置3の動作は正常であると判定される。例えば、センサ装置330の測定動作開始タイミングが、観測期間の前半の5分の1までの期間に現れる場合には、情報処理装置3の動作は正常であると判定される。一方で、暫定異常判定において、センサ装置330の測定動作開始タイミングが、観測期間の初めの方に現れない場合には、情報処理装置3の動作は異常であると判定される。例えば、センサ装置330の測定動作開始タイミングが、観測期間の前半の5分の1までの期間よりも後に現れる場合には、情報処理装置3の動作は異常であると判定される。
なお、異常判定処理では、動作情報取得部700で取得される、複数の観測期間でのセンサ装置330の動作開始タイミングの平均が基準タイミングとして使用されてもよい。この場合、例えば、制御部は、センサ装置330の最新の測定動作開始タイミングを取得すると、それよりも前に取得されたセンサ装置330の複数の測定動作開始タイミングの平均を基準タイミングとして求める。そして、制御部は、最新の測定動作開始タイミングが基準タイミングに近い場合には、情報処理装置3の動作は正常であると判定する。例えば、制御部は、最新の測定動作開始タイミングと基準タイミングとの差が所定範囲内に存在する場合には、情報処理装置3の動作は正常であると判定する。一方で、制御部は、最新の測定動作開始タイミングが基準タイミングに近くない場合には、情報処理装置3の動作は異常であると判定する。例えば、制御部は、最新の測定動作開始タイミングと基準タイミングとの差が所定範囲外に存在する場合には、情報処理装置3の動作は異常であると判定する。
また、センサ装置330の動作情報に複数の情報が含まれる場合には、異常判定処理において、当該複数の情報のそれぞれについて、当該情報に基づく暫定異常判定が行われる。例えば、センサ装置330の動作情報に測定動作時間及び測定動作開始タイミングが含まれる場合には、異常判定処理において、測定動作時間及び測定動作開始タイミングのそれぞれに基づく暫定異常判定が行われる。
また、装置動作情報に含まれる記憶部320の動作情報には、観測期間での記憶部320の動作開始タイミングが含まれてもよい。また、装置動作情報に含まれる第2通信部350の動作情報には、観測期間での第2通信部350の動作開始タイミングが含まれてもよい。異常判定処理において、制御部は、センサ装置330の測定動作開始タイミングに基づく暫定異常判定と同様にして、観測期間での記憶部320の動作開始タイミングに基づく暫定異常判定と、観測期間での第2通信部350の動作開始タイミングに基づく暫定異常判定とを行うことができる。以後、動作情報取得部700で特定される、観測期間での記憶部320の動作開始タイミングを、記憶部320の測定動作開始タイミングと呼ぶことがある。また、動作情報取得部700で特定される、観測期間での第2通信部350の動作開始タイミングを、第2通信部350の測定動作開始タイミングと呼ぶことがある。記憶部320及び第2通信部350の測定動作開始タイミングは、センサ装置330の測定動作開始タイミングと同様に、例えば、観測期間での相対的なタイミングで表される。
また、装置動作情報に含まれるセンサ装置330の動作情報には、観測期間でのセンサ装置330の動作終了タイミングが含まれてもよい。動作情報取得部700は、センサ装置330の測定動作時間の特定と同様に、信号SG1に対する監視に基づいて、観測期間でのセンサ装置330の動作終了タイミングを特定することができる。例えば、信号SG1がSPIのチップセレクト信号である場合、動作情報取得部700は、当該チップセレクト信号がアサート状態(Lowレベル)からネゲート状態(Highレベル)に変化するタイミングを、センサ装置330の動作終了タイミングと見なすことができる。また、信号SG1がI2CのSCL信号及びSDA信号である場合、動作情報取得部700は、SCL信号及びSDA信号に基づいてストップ・コンディションが発行されたタイミングを特定し、そのタイミングをセンサ装置330の動作終了タイミングと見なすことができる。以後、動作情報取得部700で特定される、観測期間でのセンサ装置330の動作終了タイミングを、センサ装置330の測定動作終了タイミングと呼ぶことがある。センサ装置330の測定動作終了タイミングは、センサ装置330の測定動作開始タイミングと同様に、例えば、観測期間での相対的なタイミングで表される。
センサ装置330の動作情報に測定動作終了タイミングが含まれる場合には、異常判定処理では、当該測定動作終了タイミングに基づく暫定異常判定が行われる。情報処理装置3が正常に動作している場合には、上述の図43に示されるように、非スタンバイ期間T11の初めの方にセンサ装置330の動作終了タイミングt22が現れる。暫定異常判定では、センサ装置330の測定動作終了タイミングが、観測期間の初めの方に現れる場合には、情報処理装置3の動作は正常であると判定される。例えば、センサ装置330の測定動作終了タイミングが、観測期間の前半の4分の1までの期間に現れる場合には、情報処理装置3の動作は正常であると判定される。一方で、暫定異常判定では、センサ装置330の測定動作終了タイミングが、観測期間の初めの方に現れない場合には、情報処理装置3の動作は異常であると判定される。例えば、センサ装置330の測定動作終了タイミングが、観測期間の前半の4分の1までの期間よりも後に現れる場合には、情報処理装置3の動作は異常であると判定される。
なお制御部は、センサ装置330の測定動作開始タイミングに基づく暫定異常判定と同様に、複数の観測期間でのセンサ装置330の動作終了タイミングの平均を基準タイミングとして使用して、センサ装置330の最新の測定動作終了タイミングに基づく暫定異常判定を行ってもよい。
また、装置動作情報に含まれる記憶部320の動作情報には、観測期間での記憶部320の動作終了タイミングが含まれてもよい。また、装置動作情報に含まれる第2通信部350の動作情報には、観測期間での第2通信部350の動作終了タイミングが含まれてもよい。異常判定処理において、制御部は、センサ装置330の測定動作終了タイミングに基づく暫定異常判定と同様にして、観測期間での記憶部320の動作終了タイミングに基づく暫定異常判定と、観測期間での第2通信部350の動作終了タイミングに基づく暫定異常判定とを行うことができる。以後、動作情報取得部700で特定される、観測期間での記憶部320の動作終了タイミングを、記憶部320の測定動作終了タイミングと呼ぶことがある。また、動作情報取得部700で特定される、観測期間での第2通信部350の動作終了タイミングを、第2通信部350の測定動作終了タイミングと呼ぶことがある。記憶部320及び第2通信部350の測定動作終了タイミングは、センサ装置330の測定動作開始タイミングと同様に、例えば、観測期間での相対的なタイミングで表される。
なお、特定回路の測定動作開始タイミング及び測定動作終了タイミングは、絶対的な時刻で表されてもよい。図46は、この場合の動作制御装置40の構成の一例を示す図である。図46に示される動作制御装置40は、上述の図44に示される動作制御装置40において、RTC750をさらに備えるものである。RTC750は、例えば、クロック生成部480が備える発振器(例えば水晶発振器)から出力されるクロック信号に基づいて動作する。RTC750は現在時刻を計測し、現在時刻を示す時刻情報TIを出力する。この時刻情報TIは、動作情報取得部700に入力される。動作情報取得部700は、時刻情報TIに基づいて、特定回路の測定動作開始タイミング及び測定動作終了タイミングを時刻で表す。例えば、信号SG1がSPIのチップセレクト信号である場合、動作情報取得部700は、当該チップセレクト信号がLowレベルになったときにRTC750から出力される時刻情報TIが示す時刻を、センサ装置330の動作開始タイミングとする。以後、時刻で表された測定動作開始タイミング及び測定動作終了タイミングをそれぞれ測定動作開始時刻及び測定動作終了時刻と呼ぶことがある。
制御部は、特定回路の測定動作開始時刻に基づく暫定異常判定を行う場合には、例えば、最新の測定動作開始時刻を取得するたびに、当該最新の測定動作開始時刻から、その直前に取得された測定動作開始時刻を差し引いて得られる差分時間を求める。これにより、最新の測定動作開始時刻が取得されるたびに差分時間が求められる。
本例では、暫定異常判定において、制御部は、最新の測定動作開始時刻から、その直前に取得された測定動作開始時刻を差し引いて、最新の差分時間を取得する。また、制御部は、最新の差分時間よりも前に求められた複数の差分時間の平均値を求める。そして、制御部は、最新の差分時間が、差分時間の平均値に近いか否かを判定する。制御部は、例えば、最新の差分時間と差分時間の平均値との差が所定範囲内に存在するとき、最新の差分時間が差分時間の平均値に近いと判定する。制御部は、最新の差分時間が、差分時間の平均値に近いと判定すると、情報処理装置3の動作が正常であると判定する。一方で、制御部は、最新の差異分時間が、差分時間の平均値に近くないと判定すると、情報処理装置3の動作が異常であると判定する。
情報処理装置3が正常に間欠動作をしている場合には、図47に示されるように、複数の非スタンバイ期間T11での特定回路の動作開始タイミングt51の間隔T51はほぼ一定となる。したがって、情報処理装置3が正常に間欠動作をしている場合には、差分時間はほぼ一定となる。よって、情報処理装置3が正常に間欠動作を行う場合には、最新の差分時間は、差分時間の平均値に近い値となる。一方で、主装置30がハッキングされて、測定動作開始時刻がずれた場合には、最新の差分時間は、差分時間の平均値に近い値とはならない。したがって、上記のように、制御部は、最新の差分時間が、差分時間の平均値に近いか否かを判定することにより、適切に暫定異常判定を行うことができる。制御部は、測定動作終了時刻に基づく暫定異常判定も同様に行うことができる。
なお、サーバ装置2の制御部20は、特定回路の測定動作開始時刻に基づく暫定異常判定を行う場合には、上記とは異なる方法で、暫定異常判定を行ってもよい。
例えば、制御部20が、センサ装置330測定動作開始時刻に基づく暫定異常判定を行う場合を考える。この場合、制御部20は、情報処理装置3からセンサ装置330の測定動作開始時刻を受け取ると、その測定動作開始時刻から所定時間内に、当該情報処理装置3からセンサ情報を受け取ったか否かを判定する。所定時間は、例えば、情報処理装置3が正常に動作する場合の非スタンバイ期間T11の長さと同じに設定される。制御部20は、測定動作開始時刻から所定時間内に、当該測定動作開始時刻を送信した情報処理装置3からセンサ情報を受け取ることが無い場合には、情報処理装置3の動作が異常であると判定する。一方で、制御部20は、測定動作開始時刻から所定時間内に、当該測定動作開始時刻を送信した情報処理装置3からセンサ情報を受け取った場合には、情報処理装置3の動作が正常であると判定する。サーバ装置2は、正常に動作する情報処理装置3から、センサ装置330の測定動作開始時刻を受け取ると、当該測定動作開始時刻から所定時間内に、その情報処理装置3からセンサ情報を受信することになる。したがって、制御部20は、取得した測定動作開始時刻から所定時間内に、当該測定動作開始時刻を出力した情報処理装置3からセンサ情報を受け取ったか否かを判定することによって、情報処理装置3の動作が異常であるか否かを判定することができる。
他の例として、制御部20が、第2通信部350の測定動作開始時刻に基づく暫定異常判定を行う場合を考える。この場合、制御部20は、情報処理装置3から第2通信部350の測定動作開始時刻を受け取ると、その測定動作開始時刻から所定時間内に、当該情報処理装置3との通信をサーバ装置2が開始したか否かを判定する。この所定時間は、例えば、情報処理装置3が正常に動作する場合の非スタンバイ期間T11の長さの半分に設定される。制御部20は、測定動作開始時刻から所定時間経過しても当該測定動作開始時刻を送信した情報処理装置3との通信をサーバ装置2が開始しなかった場合には、情報処理装置3の動作が異常であると判定する。一方で、制御部20は、測定動作開始時刻から所定時間内に、当該測定動作開始時刻を送信した情報処理装置3との通信をサーバ装置2が開始した場合には、情報処理装置3の動作が正常であると判定する。サーバ装置2は、正常に動作する情報処理装置3から、第2通信部350の測定動作開始時刻を受け取ると、当該測定動作開始時刻から所定時間内に、その情報処理装置3との通信を開始することになる。したがって、制御部20は、取得した測定動作開始時刻から所定時間内に、当該測定動作開始時刻を出力した情報処理装置3との通信をサーバ装置2が開始したか否かを判定することによって、情報処理装置3の動作が異常であるか否かを判定することができる。
なお制御部20は、センサ装置330の測定動作開始時刻に基づく暫定異常判定と同様にして、センサ装置330の測定動作終了時刻に基づく暫定異常判定を行ってもよい。また制御部20は、第2通信部350の測定動作開始時刻に基づく暫定異常判定と同様にして、第2通信部350の測定動作終了時刻に基づく暫定異常判定を行ってもよい。
また、装置動作情報に含まれる特定回路の動作情報には、観測期間での特定回路の動作の有無を示す有無情報が含まれてもよい。この場合、暫定異常判定において、制御部は、特定回路の動作情報に含まれる有無情報に基づいて、観測期間において特定回路が動作しないことを特定する場合には、情報処理装置3の動作は異常であると判定する。一方で、制御部は、特定回路の動作情報に含まる有無情報に基づいて、観測期間において特定回路が動作することを特定する場合には、情報処理装置3の動作は正常であると判定する。
装置動作情報には、観測期間でのセンサ装置330の動作の有無を示す第1の有無情報が含まれてもよい。動作情報取得部700は、信号SG1に対する監視に基づいて、観測期間においてセンサ装置330が動作しているか否かを判定することができる。また、装置動作情報には、観測期間での記憶部320の動作の有無を示す第2の有無情報が含まれてもよい。動作情報取得部700は、信号SG2に対する監視に基づいて、観測期間において記憶部320が動作しているか否かを判定することができる。また、装置動作情報には、観測期間での第2通信部350の動作の有無を示す第3の有無情報が含まれてもよい。動作情報取得部700は、信号SG3に対する監視に基づいて、観測期間において第2通信部350が動作しているか否かを判定することができる。
上述の図43に示されるように、情報処理装置3が正常に動作する場合には、非スタンバイ期間T11において、センサ装置330、記憶部320及び第2通信部350が動作する。したがって、制御部は、装置動作情報に含まれる第1の有無情報に基づいて、情報処理装置3の動作が異常であるか否かを判定することができる。同様に、制御部は、第2の有無情報に基づいて情報処理装置3の動作が異常であるか否かを判定することができ、第3の有無情報に基づいて情報処理装置3の動作が異常であるか否かを判定することができる。
また、装置動作情報には、主装置30が備える複数の回路の間での動作順序を示す動作順序情報が含まれてもよい。この場合、暫定異常判定において、制御部は、装置動作情報に含まれる動作順序情報が示す動作順序が基準動作順序と一致する場合、情報処理装置3の動作は正常であると判定する。一方で、制御部は、動作順序情報が示す動作順序が基準動作順序と一致しない場合、情報処理装置3の動作は異常であると判定する。基準動作順序は、情報処理装置3が正常に動作する場合の複数の回路の間での動作順序である。
装置動作情報には、例えば、観測期間での、センサ装置330、記憶部320及び第2通信部350の間での動作順序を示す動作順序情報が含まれてもよい。動作情報取得部700は、信号SG1,SG2,SG3に対する監視に基づいて、観測期間での、センサ装置330、記憶部320及び第2通信部350の間での動作順序を特定することができる。動作情報取得部700は、例えば、センサ装置330、記憶部320及び第2通信部350測定動作開始タイミングの順序を、観測期間でのセンサ装置330、記憶部320及び第2通信部350の間での動作順序として特定してもよい。例えば、センサ装置330、記憶部320及び第2通信部350の測定動作開始タイミングにおいて、記憶部320の測定動作開始タイミングが最も早く現れ、次にセンサ装置330の測定動作開始タイミングが現れ、最後に第2通信部350の測定動作開始タイミングが現れる場合を考える。この場合、観測期間でのセンサ装置330、記憶部320及び第2通信部350の間での動作順序は、記憶部320の動作が1番目となり、センサ装置330の動作が2番目となり、第2通信部350の動作が3番目となる。
上述の図43に示されるように、情報処理装置3が正常に動作する場合には、非スタンバイ期間T11において、センサ装置330が最初に動作し、その次に記憶部320が動作し、その次に第2通信部350が動作する。したがって、装置動作情報に、観測期間での、センサ装置330、記憶部320及び第2通信部350の間での動作順序を示す動作順序情報が含まれる場合には、暫定異常判定で使用される基準動作順序は、センサ装置330の動作が1番目、記憶部320の動作が2番目、第2通信部350の動作が3番目であることを示す。
なお、装置動作情報には、主装置30が備える2つの回路の間での動作順序を示す動作順序情報が含まれてもよい。例えば、装置動作情報には、センサ装置330及び第2通信部350の間での動作順序を示す動作順序情報が含まれてもよい。
また、装置動作情報には、第2通信部350がサーバ装置2に送信する情報が含まれてもよい。ここで、第2通信部350がサーバ装置2に送信する情報は、制御部310で生成される。したがって、監視対象の信号SG3が、例えば、SPIのチップセレクト信号、クロック信号及びデータ入力信号である場合、動作情報取得部700は、信号SG3に対する監視に基づいて、第2通信部350がサーバ装置2に送信する情報を取得することができる。また例えば、信号SG3がI2CのSCL信号及びSDA信号である場合には、動作情報取得部700は、信号SG3に対する監視に基づいて、第2通信部350がサーバ装置2に送信する情報を取得することができる。以後、装置動作情報に含められる、第2通信部350がサーバ装置2に送信する情報を、特定送信情報と呼ぶことがある。
動作情報取得部700は、信号SG3に対する監視に基づいて取得した送信情報に含まれる、第2通信部350がセンサ情報を送信する先のサーバ装置2のアドレス情報を、特定送信情報としてもよい。この場合、装置動作情報には、第2通信部350がセンサ情報を送信する先のサーバ装置2のアドレス情報が含まれる。サーバ装置2が異常判定処理を行う場合、制御部20は、装置動作情報を受け取ると、暫定異常判定において、装置動作情報に含まれるアドレス情報と、自身が属するサーバ装置2のアドレス情報とを比較する。制御部20は、両方のアドレス情報が一致すると、情報処理装置3の動作は正常であると判定する。一方で、制御部20は、両方のアドレス情報が一致しない場合には、情報処理装置3の動作は異常であると判定する。これにより、主装置30がハッキングされた結果、情報処理装置3がセンサ情報を本来のサーバ装置2とは異なるサーバ装置2に送信する場合には、情報処理装置3の動作が異常であると判定される。また、情報処理装置3が異常判定処理を行う場合には、制御部410は、暫定異常判定において、装置動作情報に含まれるアドレス情報と、情報処理装置3がセンサ情報を送信すべきサーバ装置2のアドレス情報とを比較する。制御部410は、両方のアドレス情報が一致すると、情報処理装置3の動作は正常であると判定する。一方で、制御部20は、両方のアドレス情報が一致しない場合には、情報処理装置3の動作は異常であると判定する。なお、特定送信情報は、サーバ装置2のアドレス情報以外の情報であってもよい。
以上のように、異常判定処理で使用される装置動作情報に、主装置30が備える少なくとも一つの回路の動作情報が含まれることによって、制御部は、情報処理装置3の動作が異常であるか否かを適切に判定することができる。つまり、主装置30が備える少なくとも一つの回路の動作情報に基づく異常判定処理が行われることによって、情報処理システム1は、情報処理装置3の動作が異常であるか否かを適切に判定することができる。
例えば、計測回数などのクロック信号CLKに基づく動作情報に基づいて、情報処理装置3の動作が異常であるか否かを判定する場合を考える。この場合、主装置30がハッキングされて情報処理装置3が本来とは異なる動作を行っている場合であっても、情報処理装置3が正常に間欠動作する場合と同じように主装置30に対してクロック信号CLKが入力される場合には、情報処理装置3の動作の異常を特定することができない可能性がある。
これに対して、センサ装置330等の主装置30が備える回路の動作情報に基づく異常判定処理が行われる場合には、情報処理装置3が正常に動作する場合と同じようにクロック信号CLKがハッキングされている主装置30に対して入力される場合であっても、情報処理装置3の動作の異常を特定することが可能となる。例えば、主装置30がハッキングされた結果、非スタンバイ期間T11でのセンサ装置330の動作時間が本来よりも変化すれば、センサ装置330の測定動作時間に基づく異常判定処理を行うことによって、情報処理装置3の動作の異常を適切に特定することができる。
また、装置動作情報に、主装置30が備える複数の回路についての動作情報が含まれる場合には、情報処理装置3の動作が異常であるか否かをより適切に判定することができる。
また、装置動作情報に、複数の回路の間での動作順序が含まれる場合にも、情報処理装置3の動作が異常であるか否かを適切に判定することができる。
また、装置動作情報に、第2通信部350がサーバ装置2に送信する情報が含まれる場合にも、情報処理装置3の動作が異常であるか否かを適切に判定することができる。
また、図37に示されるように、主装置30の制御部310が、クロック生成部312を備える場合には、主装置30がハッキングされた結果、主装置30に対するクロック信号CLKの入力が停止しているにもかかわらず、主装置30が、クロック生成部312が生成する内部クロック信号CLKpに基づいて動作する可能性がある。この場合、クロック信号CLKに基づく動作情報に基づく異常判定処理では、情報処理装置3の動作の異常を適切に特定することができない可能性がある。
これに対して、センサ装置330等の主装置30が備える回路の動作情報に基づく異常判定処理が行われる場合には、主装置30に対するクロック信号CLKの入力が停止しているにもかかわらず、主装置30が内部クロック信号CLKpに基づいて動作する場合に、情報処理装置3の動作が異常であると適切に判定することが可能となる。
例えば、動作情報取得部700は、主装置30に対するクロック信号CLKの入力が停止している場合、センサ装置330が動作しているか否かを判定し、その判定結果を示す判定結果情報をセンサ装置330の動作情報として装置動作情報に含める。この場合、異常判定処理では、制御部は、主装置30に対するクロック信号CLKの入力が停止している場合にセンサ装置330が動作していることを、装置動作情報に含まれる判定結果情報に基づいて特定したときには、情報処理装置3の動作が異常であると判定する。これにより、主装置30に対するクロック信号CLKの入力が停止しているにもかかわらず、内部クロック信号CLKpに基づいて動作する制御部310がセンサ装置330を動作させている場合には、情報処理装置3の動作が異常であると判定することができる。
なお、動作情報取得部700は、主装置30に対するクロック信号CLKの入力が停止している場合、記憶部320が動作しているか否かを判定し、その判定結果を示す判定結果情報を記憶部320の動作情報として装置動作情報に含めてもよい。また、動作情報取得部700は、主装置30に対するクロック信号CLKの入力が停止している場合、第2通信部350が動作しているか否かを判定し、その判定結果を示す判定結果情報を第2通信部350の動作情報として装置動作情報に含めてもよい。
また、通信ネットワーク4の負荷状況等に応じて、非スタンバイ期間T11での第2通信部350の動作終了タイミングが変化して、非スタンバイ期間T11での第2通信部350の動作時間が変化する可能性がある。したがって、主装置30がハッキングされること以外の理由で、第2通信部350の測定動作時間及び測定動作終了タイミングが変化することがある。また、非スタンバイ期間T11での第2通信部350の動作終了タイミングが変化すると、非スタンバイ期間T11の長さが変化することから、クロック計測期間でのクロック計測値、計測回数及び計測平均値についても、主装置30がハッキングされること以外の理由で変化することがある。この点に鑑みて、装置動作情報には、クロック計測期間でのクロック計測値、計測回数、計測平均値、第2通信部350の測定動作時間及び第2通信部350の測定動作終了タイミングが含まれなくてもよい。これにより、情報処理装置3の動作が異常であるか否かをより適切に特定することが可能となる。
なお、図44の例では、図28に示される構成において、動作情報を取得する動作情報取得部として機能するクロック計測カウンター580の替わりに動作情報取得部700が設けられているが、動作制御装置40の他の構成において、クロック計測カウンター580の替わりに動作情報取得部700が設けられてもよい。例えば、図32,33,35,39,42に示される構成において、クロック計測カウンター580の替わりに動作情報取得部700が設けられてもよい。
また、図45の例では、図36,37に示される構成に対して、動作情報取得部700に接続された信号ラインSL12,SL22,SL32を接続しているが、主装置30の他の構成に対して信号ラインSL12,SL22,SL32を接続してもよい。例えば、図48に示されるように、図4に示される構成に対して信号ラインSL12,SL22,SL32を接続してもよい。また、図18に示される構成に対して信号ラインSL12,SL22,SL32を接続してもよい。これらの場合、信号SG1としては、例えば、センサ装置330に入力される活性化信号が採用される。信号ラインSL12は、センサ装置330に入力される活性化信号が流れる信号ラインSL11に接続される。また、信号SG2としては、例えば、記憶部320に入力される活性化信号が採用される。信号ラインSL22は、記憶部320に入力される活性化信号が流れる信号ラインSL21に接続される。また、信号SG3としては、例えば、第2通信部350に入力される活性化信号が採用される。信号ラインSL32は、第2通信部350に入力される活性化信号が流れる信号ラインSL31に接続される。
上記の例では、信号SG1,SG2,SG3は、信号ラインSL12,SL22,SL32を通じて動作情報取得部700に入力されているが、第1通信部340を通じて動作情報取得部700に入力されてもよい。この場合、第1通信部340が送信する信号SG1,SG2,SG3が、動作制御装置40の通信部470で受信される。そして、通信部470で受信された信号SG1,SG2,SG3が動作情報取得部700に入力される。第1通信部340が信号SG1,SG2,SG3を送信する場合、第1通信部340がハッキングされた場合には、信号SG1,SG2,SG3の状態が不正に書き換えられる可能性がある。その結果、動作情報取得部700は特定回路の動作情報を適切に取得できない可能性がある。これに対して、動作情報取得部700が、信号ラインSL11,SL12,SL21,SL22,SL31,SL32に流れる信号SG1,SG2,SG3を監視する場合には、第1通信部340がハッキングされたとしても、信号SG1,SG2,SG3の状態が書き換えられる可能性が低減する。よって、動作情報取得部700は特定回路の動作情報を適切に取得することができる。
また、主装置30に対して、制御部310が記憶情報の書き換えを行えないようなレジスタを設けて、当該レジスタに信号SG1,SG2,SG3の状態を記憶してもよい。この場合、動作情報取得部700は、当該レジスタから信号SG1,SG2,SG3の状態を読み出し、読み出した状態に基づいて装置動作情報を取得する。
また、上記の例では、装置動作情報には、センサ装置330、記憶部320及び第2通信部350の動作情報が含まれているが、主装置30の他の回路の動作情報が含まれてもよい。例えば、装置動作情報には、処理回路360の動作情報が含まれてもよい。また、装置動作情報には、情報処理装置3が備える回路の電力量が含まれてもよい。この場合には、回路の電力量の変化に基づいて、情報処理装置3の動作が異常であるか否かが判定されてもよい。装置動作情報には、例えば、ハッキングされたときに大きくなる可能性が高い、制御部310の電力量、第2通信部350の電力量及び主装置30全体の電力量の少なくとも一つが含まれてもよい。
また、クロック計測カウンター580及び動作情報取得部700で取得された装置動作情報がサーバ装置2に入力される場合には、サーバ装置2の表示部23は、装置動作情報を例えばグラフ化して表示してもよい。
以上のように、情報処理システム1は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。