第1の実施の形態.
図1は、電子機器100の構成の一例を概略的に示す図である。電子機器100は、攻撃検出装置1と、電源回路5と、情報処理装置6とを含んでいる。
情報処理装置6は、例えば、スマートフォン等の携帯電話機、タブレット端末、パーソナルコンピュータ、ウェアラブル機器、ゲーム機器、プロジェクタ、カーナビゲーション装置等の車載機器、ドローン機器あるいはIoT(Internet of Things)端末などにおいて使用することが可能な回路である。この情報処理装置6は不正な第三者によって攻撃され得る。
情報処理装置6は電源ラインL1を介して電源回路5に接続されている。換言すれば、電源ラインL1は情報処理装置6および電源回路5を互いに接続する。電源回路5は不図示の電源(例えば商用電源またはバッテリ)に接続される。電源回路5には、当該電源から入力電圧が入力される。電源回路5はこの入力電圧を所定の電圧範囲の電源電圧に変換し、当該電源電圧を、電源ラインL1を介して情報処理装置6に出力する。情報処理装置6はこの電源電圧に基づいて動作する。情報処理装置6が動作することにより、電源ラインL1には電源電流が流れる。
攻撃検出装置1は電源ラインL1の電源電圧および電源電流をモニタすることにより、情報処理装置6への攻撃を検出する。攻撃の検出方法については、後に詳述する。
図1に例示するように、攻撃検出装置1は通信ラインL2を介して情報処理装置6に接続されていてもよい。この場合、攻撃検出装置1は通信ラインL2を介して情報処理装置6と通信する。例えば、攻撃検出装置1は情報処理装置6に対する攻撃を検出したときに、通信ラインL2を介して攻撃検出信号を情報処理装置6に送信する。攻撃検出信号は、情報処理装置6が攻撃を受けていることを示す信号である。情報処理装置6は攻撃検出信号の受信に応答して、例えば動作を停止してもよい。これにより、攻撃によって第三者が享受する不正な利益を低減することができる。
なお、図1の例では、攻撃検出装置1および情報処理装置6は有線(通信ラインL2)で互いに通信するものの、無線により互いに通信しても構わない。ここでは一例として、攻撃検出装置1および情報処理装置6は通信ラインL2を介して互いに通信する。
図1に例示するように、攻撃検出装置1はクロックラインL3を介して情報処理装置6に接続されていてもよい。この場合、攻撃検出装置1はクロックラインL3を介してクロック信号を情報処理装置6に出力する。情報処理装置6はこのクロック信号に基づいて動作する。攻撃検出装置1は情報処理装置6に対する攻撃を検出したときに、クロック信号の出力を停止してもよい。クロック信号の停止により、情報処理装置6は動作を停止する。これによっても、攻撃によって第三者が享受する不正な利益を低減することができる。
また、攻撃検出装置1は不図示のリセットラインを介して情報処理装置6に接続されていてもよい。この場合、攻撃検出装置1はリセットラインを介して情報処理装置6にリセット信号を出力することができる。攻撃検出装置1は情報処理装置6に対する攻撃を検出したときに、情報処理装置6にリセット信号を出力してもよい。リセット信号の入力に応答して、情報処理装置6は動作を初期化する。これによっても、攻撃によって第三者が享受する不正な利益を低減することができる。
次に、情報処理装置6の内部構成の詳細な一例について説明する。図2は、情報処理装置6の電気的な構成の一例を概略的に示す図である。情報処理装置6は、通信部61と、制御部62と、記憶部63とを含んでいる。図2の例では、通信部61、制御部62および記憶部63はバス60を介して相互に接続されている。
通信部61は通信回路または通信インターフェースとも呼ばれる。通信部61は通信ラインL2を介して攻撃検出装置1に接続され、例えばSPI(Serial Peripheral Interface)またはI2C(Inter-Integrated Circuit)で、攻撃検出装置1と通信することができる。通信部61は攻撃検出装置1に送信信号を送信することができ、また、攻撃検出装置1から受信信号を受信することができる。
記憶部63は、ROM(Read Only Memory)およびRAM(Random Access Memory)などの、コンピュータが読み取り可能な記録媒体を含む。記憶部63は、情報処理装置6を制御するための制御プログラムを記憶している。なお、記憶部63は、ROMおよびRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を含んでいてもよい。記憶部63は、例えば、小型のハードディスクドライブおよびSSD(Solid State Drive)などを含んでいてもよい。
制御部62は、情報処理装置6の動作を統括的に管理することが可能である。制御部62は制御回路であるとも言える。制御部62は、例えば、CPU(Central Processing Unit)と内部記憶部とを含んでいる。内部記憶部は、例えばROMおよびRAMなどの記憶媒体を含んでおり、情報処理装置6を制御するためのプログラムを記憶している。制御部62の各種機能は、当該CPUが内部記憶部および記憶部63内のプログラムを実行することによって実現される。
なお、制御部62は、複数のCPUを含んでいてもよい。また制御部62は、少なくとも一つのDSP(Digital Signal Processor)を含んでいてもよい。また制御部62の全ての機能あるいは制御部62の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
制御部62は複数の処理を行うことができる。これらの複数の処理には、攻撃対象処理および非攻撃対象処理が含まれる。攻撃対象処理とは、攻撃によって第三者が不正な利益を享受できる処理であり、非攻撃対象処理とは、攻撃によって得られる利益が少ない、あるいは、ほとんどない処理である。攻撃対象処理としては、秘匿性の高い秘密情報を用いた処理、具体的には、種々の認証処理、暗号化処理および復号処理を例示できる。これらの処理に対する攻撃の一例については後に述べる。非攻撃対象処理としては、秘密情報を用いない処理、例えば単なる画像処理などの処理を例示できる。以下、制御部62が実行する複数の処理の例を簡単に説明し、その後、攻撃対象処理に対する攻撃の例を簡単に説明する。
例えば制御部62は、記憶部63に記憶された制御プログラムが正規なプログラムであるか否かを判定する認証処理を行うことができる。この認証処理は攻撃対象処理の一種であり、以下では、プログラム認証処理とも呼ぶ。プログラム認証処理のアルゴリズムとしては、任意のアルゴリズムを採用することができる。以下、その一例について概説する。
制御プログラムは署名情報を含んでいる。この署名情報には、予め、暗号化済みのハッシュ値が含まれている。このハッシュ値は、正規な制御プログラムに対して所定の第1ハッシュ関数を適用して算出された値である。よって、記憶部63内の制御プログラムが不正なプログラムであれば、不正な制御プログラムに対して所定の第1ハッシュ関数を適用して算出されるハッシュ値と、署名情報に含まれるハッシュ値とは互いに相違する。そこで、制御部62は両ハッシュ値を求め、両ハッシュ値を互いに比較することで、制御プログラムの当否を認証する。
具体的には、まず制御部62は記憶部63から制御プログラムを読み出し、その制御プログラムに対して所定の第1ハッシュ関数を適用して、ハッシュ値を算出する。以下では、このハッシュ値を第1ハッシュ値と呼ぶ。
情報処理装置6は、制御プログラムの署名情報を復号する機能を有している。具体的には、図2に例示するように、情報処理装置6は暗号復号器64およびキーメモリ65を含んでいる。図2の例では、暗号復号器64およびキーメモリ65はバス60に接続されている。キーメモリ65は、暗号化処理および復号処理において用いられる鍵を記憶する。キーメモリ65は、記憶部63よりも情報が漏れにくいセキュアなメモリであってもよい。
暗号復号器64は、暗号化処理および復号処理を実行することができる。暗号復号器64は、例えば制御部62から入力された信号に対して、キーメモリ65から読み出した鍵を用いて暗号化処理を実行して、暗号信号を生成する。暗号復号器64は当該暗号信号を制御部62に出力する。また暗号復号器64は、例えば制御部62から入力された暗号信号に対して、キーメモリ65から読み出した鍵を用いて復号処理を実行して、平文の信号を生成する。暗号復号器64は当該信号を制御部62に出力する。暗号化処理および復号処理で用いるアルゴリズムとしては、任意のアルゴリズムを採用してもよいものの、例えばAES(Advanced Encryption Standard)またはRSAを採用できる。
暗号復号器64は制御部62から署名情報を受け取り、プログラム認証処理用の鍵をキーメモリ65から読み出し、この鍵を用いて署名情報に対して復号処理を実行して、ハッシュ値を復号する。以下では、このハッシュ値を第2ハッシュ値と呼ぶ。暗号復号器64は、当該第2ハッシュ値を制御部62に出力する。
制御部62は第1ハッシュ値が第2ハッシュ値と一致しているか否かを判定する。第1ハッシュ値が第2ハッシュ値と一致しているときには、制御部62は制御プログラムが正規なプログラムであると判定する。つまり、制御部62はプログラム認証が成功したと判定する。一方で、第1ハッシュ値が第2ハッシュ値と異なっているときには、制御部62は制御プログラムが不正なプログラムであると判定する。つまり、制御部62はプログラム認証が失敗したと判定する。このとき、制御部62は動作を終了してもよい。
以上のようにして、制御部62はプログラム認証処理を実行することができる。これによれば、制御プログラムが不正に改竄されても、その不正な制御プログラムが実行される可能性を低減することができる。したがって、情報処理装置6が不正に動作する可能性を低減することができる。
また、制御部62は、攻撃検出装置1と通信するための通信確立処理を実行することができる。例えば、制御部62は、通信を行ってもよいか否かを攻撃検出装置1との間で互いに確認して、通信を確立する。なお、制御部62は通信確立処理において認証処理も実行するとよい。具体的には、制御部62は、攻撃検出装置1が正規な装置であるか否かを認証し、攻撃検出装置1が正規な装置であると判定したときに、通信を確立するとよい。この認証処理を以下では相手認証処理と呼ぶ。通信確立処理は相手認証処理を含むので、攻撃対象処理の一種である。相手認証処理のアルゴリズムとしては、任意のアルゴリズムを採用することができる。例えば、鍵交換方式による相手認証処理を採用してもよい。以下、鍵交換方式の相手認証処理の簡単な一例について概説する。
図2に例示するように、情報処理装置6は乱数生成器66を含んでいる。乱数生成器66はバス60に接続されている。乱数生成器66は、相手認証処理で用いられる乱数を生成する。乱数生成器66は例えば真正乱数を生成する。乱数生成器66は乱数生成回路とも言える。なお、乱数生成器66は、疑似乱数を生成してもよい。
制御部62は、乱数生成器66が生成した認証用の第1乱数に対して所定の第2ハッシュ関数を適用してハッシュ値を生成する。以下では、このハッシュ値を第3ハッシュ値と呼ぶ。暗号復号器64は相手認証用の公開鍵を用いて第1乱数を暗号化して暗号第1乱数を生成し、通信部61を介して暗号第1乱数を攻撃検出装置1に送信する。公開鍵は例えばキーメモリ65に記憶されている。
攻撃検出装置1は、情報処理装置6の公開鍵に対応した秘密鍵を用いて暗号第1乱数に対して復号処理を実行し、第1乱数を生成する。復号処理で用いられる秘密鍵は攻撃検出装置1の記憶部に記憶されている。攻撃検出装置1は、復号した第1乱数に対して第2ハッシュ関数を適用してハッシュ値を算出する。以下では、このハッシュ値を第4ハッシュ値と呼ぶ。攻撃検出装置1は第4ハッシュ値を情報処理装置6に送信する。情報処理装置6の制御部62は通信部61を介して第4ハッシュ値を受信する。
攻撃検出装置1が正規な装置であれば、攻撃検出装置1は正しい秘密鍵および正しい第2ハッシュ関数を用いる。よってこの場合、第3ハッシュ値と第4ハッシュ値とは互いに一致する。
そこで、情報処理装置6の制御部62は第3ハッシュ値が第4ハッシュ値と一致しているか否かを判定する。第3ハッシュ値が第4ハッシュ値と一致しているときには、制御部62は攻撃検出装置1が正規の装置であると判定する。つまり、制御部62は相手認証処理が成功したと判定する。一方で、第3ハッシュ値が第4ハッシュ値と異なっているときには、制御部62は攻撃検出装置1が不正な装置であると判定する。つまり、制御部62は相手認証が失敗したと判定する。相手認証が失敗したときには、制御部62は動作を終了してもよい。
以上のようにして、制御部62は相手認証処理を実行することができる。これによれば、攻撃検出装置1が不正な装置であったとしても、その不正な攻撃検出装置1が情報処理装置6と通信する可能性を低減することができる。
上述の相手認証処理においては、情報処理装置6が攻撃検出装置1の認証を実行しているものの、攻撃検出装置1が情報処理装置6の認証を実行してもよい。例えば、攻撃検出装置1が乱数を生成し、暗号化した乱数を情報処理装置6に送信する。情報処理装置6が乱数を復号し、当該乱数に基づいてハッシュ値を算出し、ハッシュ値を攻撃検出装置1へ送信する。攻撃検出装置1はこのハッシュ値が正しいハッシュ値と一致するか否かを判定して相手認証を行ってもよい。この場合、情報処理装置6には乱数生成器66が設けられなくてもよい。
また、上述の相手認証処理においては、攻撃検出装置1および情報処理装置6の一方のみが他方の認証を実行しているものの、攻撃検出装置1および情報処理装置6の両方が相互に認証を実行してもよい。
情報処理装置6は通信確立後の通信として攻撃検出装置1と暗号通信を行ってもよい。この場合、情報処理装置6および攻撃検出装置1は、通信確立処理後の暗号通信で用いられる通信用の共通鍵を、通信確立処理において取り決めてもよい。通信用の共通鍵の決定には、例えば任意の鍵共有手法が採用されてもよい。例えば、Diffie-Hellman鍵共有を採用ことができる。
なお暗号化処理および復号処理において鍵が用いられるので、暗号化処理および復号処理も攻撃対象処理の一種である。
このような情報処理装置6は一つのダイで構成されてもよいし、複数のダイで構成されてもよい。ダイはウェハチップとも呼ばれる。また情報処理装置6は、樹脂等から成る一つのパッケージに収納されてもよい。図1を参照して、電源回路5も一つのダイで構成されてもよいし、複数のダイで構成されてもよい。また電源回路5は、樹脂等から成る一つのパッケージに収納されてもよい。
電源回路5および情報処理装置6はそれぞれ個別のパッケージに収納されて、所定の基板上に実装されてもよい。この場合、電源回路5および情報処理装置6は、例えば基板上に形成された電源ラインL1を介して相互に接続される。また攻撃検出装置1および情報処理装置6は、例えば基板上に形成された通信ラインL2およびクロックラインL3の各々を介して相互に接続される。なお、電源ラインL1、通信ラインL2およびクロックラインL3は、基板上に形成された配線パターンである必要はなく、例えば、ワイヤボンディング用のワイヤであってもよい。
このような電子機器100において、不正な第三者が情報処理装置6に対して攻撃を行う場合がある。情報処理装置6に対する攻撃としては、電源ラインL1の電源電圧にグリッチを故意に発生させるグリッチ攻撃を例示できる。グリッチは、スパイク状の短時間の一時的なレベルの低下あるいは上昇である。また、情報処理装置6に対する攻撃としては、比較的長い時間に亘って電源電圧のレベルを正常値とは異なる値に維持する攻撃もある。これらの攻撃は、故障利用攻撃(fault injection attack)の一種である。故障利用攻撃は、故障攻撃(fault attack)あるいは故障利用解析(fault injection analysis)と呼ばれることがある。
不正な第三者はこの故障利用攻撃によって、情報処理装置6の認証処理を無効化したり、あるいは、情報処理装置6が保有する秘密情報(例えば鍵)を取得し得る。
まず、認証処理の無効化の一例について簡単に述べる。この認証処理は、プログラム認証処理および相手認証処理を含む。不正な第三者は、情報処理装置6の制御部62による認証処理の実行期間において、適当なタイミングで電源電圧にグリッチを故意に発生させる。もし、この電源電圧のグリッチが、ハッシュ値の一致/相違を判定する判定処理の実行タイミングにおいて偶然に発生すると、制御部62は瞬間的に誤動作してその判定処理をスキップし得る。この場合、制御部62は判定処理の結果によらず、判定処理の次の処理を実行してしまう。つまり、ハッシュ値が一致しているときのみに実行されるべき次の処理が、判定処理の結果によらずに実行される。
そこで、不正な第三者は、情報処理装置6を繰り返し起動して認証処理を複数回実行させ、その都度、グリッチを適当なタイミングで発生させる。そして、たまたまグリッチが判定処理の実行タイミングにおいて生じると、不正な第三者は情報処理装置6の認証機能を突破することができ、不正に情報処理装置6を利用することができる。例えば不正な第三者は不正な制御プログラムを情報処理装置6の制御部62に実行させることができる。
次に、秘密情報の不正取得の一例について簡単に述べる。不正な第三者は、情報処理装置6の暗号復号器64による暗号化処理の実行期間において、故意に電源電圧の電圧異常を発生させる。ここでいう電圧異常は、長期間に亘ってレベルが正常値とは異なる値に維持される電圧異常、および、グリッチを含む。このような電圧異常により、暗号復号器64は誤動作し、誤った暗号文(エラー暗号文と呼ぶ)を生成する。不正な第三者は、この処理を繰り返し実行して得られた複数のエラー暗号文と、正しい暗号文とを比較することにより、暗号化処理で用いられた鍵を推定することができる。
以上のように、不正な第三者は電源ラインL1の電源電圧に電圧異常を生じさせることにより、情報処理装置6に対して攻撃を行うことができる。このような攻撃は好ましくなく、当該攻撃を検出することが望まれている。
そこで、電子機器100には、攻撃検出装置1が設けられている。攻撃検出装置1は、電源ラインL1の電源電圧および電源電流をモニタし、これらに基づいて、情報処理装置6への攻撃を検出することができる。図1の例では、攻撃検出装置1は、処理部10と、電源指紋認証部20と、電圧攻撃検出部30とを含んでいる。
電圧攻撃検出部30は電源ラインL1に接続されており、電源ラインL1に印加された電源電圧を検出することができる。電圧攻撃検出部30は、電源電圧に生じた攻撃による電圧異常を検出することができ、その結果を処理部10に出力することができる。図1の例では、電圧攻撃検出部30は、電圧グリッチ検出部31と、異常レベル検出部32とを含んでいる。
電圧グリッチ検出部31は電源ラインL1に接続されている。電圧グリッチ検出部31は、電源ラインL1の電源電圧を検出することができ、その電源電圧の変化に基づいてグリッチの発生を検出することができる。グリッチはスパイク状の電圧変化であるので、グリッチが生じると電源電圧の時間に対する変化率の絶対値は増大する。そこで、例えば電圧グリッチ検出部31は、入力された電源電圧の時間に対する変化率の絶対値を算出し、その絶対値が変化率基準値よりも高いか否かを判定する。変化率基準値は例えば予め設定されて、電圧グリッチ検出部31の記憶部に記憶される。電圧グリッチ検出部31は当該絶対値が変化率基準値よりも高いときに、グリッチが発生したと判定する。電圧グリッチ検出部31は、その判定結果を示す信号を処理部10に出力する。
異常レベル検出部32も電源ラインL1に接続されている。異常レベル検出部32は、電源ラインL1の電源電圧を検出することができ、その電源電圧に基づいて異常電圧レベルの発生を検出することができる。異常電圧レベルとは、電源電圧が比較的長い期間に亘って、正常値とは異なる値を維持することを言う。ここでいう比較的長い期間とは、例えばグリッチにおける電圧変化の期間よりも長い期間である。異常レベル検出部32は、例えば、入力された電源電圧が基準期間を超えて正常値以外の値を維持しているか否かを判定する。基準期間は例えば予め設定されて、異常レベル検出部32の記憶部に記憶される。異常レベル検出部32は電源電圧が基準期間を超えて正常値以外の値を維持しているときに、電源電圧に異常電圧レベルが発生したと判定する。異常レベル検出部32は、その判定結果を示す信号を処理部10に出力する。
処理部10は、電圧グリッチ検出部31がグリッチを検出したとき、または、異常レベル検出部32が異常電圧レベルを検出したときに、情報処理装置6が攻撃を受けていると判定する。言い換えれば、処理部10は、電圧攻撃検出部30による電圧異常の検出という条件が成立したときに、情報処理装置6が攻撃を受けていると判定する。
処理部10はこの判定に応じて、情報処理装置6による次の処理の実行を禁止してもよい。例えば処理部10は通信ラインL2を介して攻撃検出信号を情報処理装置6に送信する。情報処理装置6は攻撃検出信号の受信に応答して、次の処理の実行を中止する。例えば情報処理装置6が認証処理中に攻撃検出信号を受信したときには、認証処理を最初からやり直す。あるいは、情報処理装置6は攻撃検出信号の受信に応答して認証処理を途中で終了してもよい。
上述の例では、処理部10は攻撃検出信号を送信することで、情報処理装置6における次の処理の実行を禁止しているものの、必ずしもこれに限らない。例えば処理部10は、攻撃検出装置1から情報処理装置6へのクロック信号の出力を停止してもよい。情報処理装置6はクロック信号の入力が停止されることで動作を停止する。あるいは、処理部10は攻撃検出装置1から情報処理装置6にリセット信号を出力してもよい。情報処理装置6はリセット信号の入力に応答して、動作を初期化する。
以上のように、電圧攻撃検出部30は電源ラインL1の電源電圧をモニタすることにより、不正な第三者による攻撃を実質的に検出することができ、処理部10はその攻撃の検出に応答して、情報処理装置6の動作を制限することができる。
しかしながら、不正な第三者は次に詳述するように、この電圧攻撃検出部30による攻撃検出機能を無効化することができる。例えば不正な第三者は、電源ラインL1を切断箇所P2(図1参照)において切断する。この切断箇所P2は電源ラインL1上の接続点P1よりも情報処理装置6側に位置している。接続点P1は、電圧攻撃検出部30と電源ラインL1とを接続する点である。
図3は、不正な第三者によって攻撃された電子機器100の構成の一例を概略的に示す図である。図3の例では、電源ラインL1は切断箇所P2において切断されており、電源ラインL1aと電源ラインL1bとに分割されている。電源ラインL1aは正規の電源回路5に接続されたラインであり、電源ラインL1bは情報処理装置6に接続されたラインである。
図3に例示するように、不正な第三者は不正電源回路5’を電源ラインL1bに接続する。この不正電源回路5’は電源ラインL1bを介して情報処理装置6に電源電圧を出力する。不正な第三者は不正電源回路5’を制御して、電源電圧にグリッチまたは電圧異常レベルなどの電圧異常を発生させることにより、情報処理装置6に対して攻撃を行うことができる。
図3の例では、電圧攻撃検出部30は、正規の電源回路5から出力される電源電圧を検出しており、不正電源回路5’から出力される電源電圧を検出できない。よって、電圧攻撃検出部30による攻撃検出機能が無効化される。
その一方で、図3の例では、電源ラインL1aは情報処理装置6には接続されておらず、また他の負荷にも接続されていない。つまり、電源ラインL1aは開放されている。したがって、電源ラインL1aを流れる電源電流は零である。つまり、電源ラインL1aの電源電流を検出することで、不正電源回路5’を用いた不正な攻撃を検出することができる。
そこで、攻撃検出装置1には、電源指紋認証部20が設けられている。電源指紋認証部20は、接続点P1よりも電源回路5側において、電源ラインL1を流れる電源電流を検出する電流センサとしての機能を有している。図1および図3の例では、電源ラインL1上にはシャント抵抗R1が設けられている。このシャント抵抗R1は接続点P1と電源回路5との間において電源ラインL1上に設けられている。電源指紋認証部20はシャント抵抗R1の両端に接続されており、シャント抵抗R1の両端電圧が電源指紋認証部20に入力される。電源指紋認証部20はシャント抵抗R1の両端電圧およびシャント抵抗R1の抵抗値に基づいて、シャント抵抗R1を流れる電流を算出することができる。
電源指紋認証部20は、電源ラインL1が切断されていないとき(図1)には、電源ラインL1を介して情報処理装置6を流れる電源電流を検出することができる。一方で、電源ラインL1が切断箇所P2において切断されると、電源指紋認証部20は、電源ラインL1aの電源電流を検出するので、不正電源回路5’から電源ラインL1bを介して情報処理装置6を流れる電源電流を検出できない(図3)。よってこのとき、電源指紋認証部20が検出する電源電流は零となる。
そこで、処理部10は、検出された電源電流が電流基準値未満であるか否かを判定し、電源電流が電流基準値未満であるときに、情報処理装置6が攻撃を受けていると判定してもよい。
しかしながら、不正な第三者はこの攻撃検出機能も無効化することができる。図4は、不正な第三者によって攻撃された電子機器100の構成の他の一例を概略的に示す図である。図4に例示するように、不正な第三者は不正負荷回路6’を電源ラインL1aに接続する。不正負荷回路6’は特に制限されないものの、例えば抵抗であってもよく、あるいは、他の情報処理装置であってもよい。不正負荷回路6’が電源ラインL1aに接続されることにより、電源ラインL1aには、不正負荷回路6’に応じて電源電流が流れる。この場合、電源指紋認証部20によって検出された電源電流は電流基準値以上となるので、処理部10は情報処理装置6への攻撃を検出できない。このように、第三者はこの攻撃検出機能を無効化することができる。
さて、不正負荷回路6’の構成は情報処理装置6の構成と相違することが多い。この場合には、電源ラインL1bを介して情報処理装置6を流れる電源電流は、電源ラインL1aを介して不正負荷回路6’を流れる電源電流と相違する。
図5は、情報処理装置6を流れる電源電流の時系列変化、および、不正負荷回路6’を流れる電源電流の時系列変化の一例を概略的に示すグラフである。図5は、情報処理装置6を流れる電源電流の時系列変化を実線で示し、不正負荷回路6’を流れる電源電流の時系列変化を破線で示す。ここでは、不正負荷回路6’は情報処理装置であるものの、その動作は情報処理装置6の動作と相違する。情報処理装置6の動作が不正負荷回路6’の動作と相違するので、図5に例示するように、情報処理装置6の動作に応じて流れる電源電流の時系列変化は、不正負荷回路6’の動作に応じて流れる電源電流の時系列変化と相違する。
そこで、情報処理装置6の動作に応じて流れる電源電流の時系列変化を示す電流パターンを予め測定し、その電流パターンを例えば電源指紋認証部20の記憶部に予め記憶しておく。以下では、記憶部に記憶された電流パターンを基準パターンと呼ぶ。
電流パターンは情報処理装置6の処理の種類に応じて相違する。そこで、情報処理装置6の処理の種類に応じて複数の電流パターンを予め測定し、処理の種類と対応付けて基準パターンを記憶部に記憶してもよい。例えば、通信確立処理に対応する基準パターンと、プログラム認証処理に対応する基準パターンなどの複数の基準パターンが、その処理の種類に対応して記憶部に記憶される。情報処理装置6が実行する処理の種類は、例えば、情報処理装置6から攻撃検出装置1に通知される。
電源指紋認証部20は、情報処理装置6による第1処理の実行中に電源電流を検出する。そして、電源指紋認証部20は、この電源電流の時系列変化を示す電流パターンが、記憶部に記憶された、当該第1処理に対応した基準パターンと類似しているか否かを判定する。電源指紋認証部20は、この類否判定(以下、第1類否判定と呼ぶ)の結果を示す信号を処理部10に出力する。第1類否判定の具体的な一例については後に述べる。
処理部10は、電流パターンが基準パターンと類似していないと電源指紋認証部20が判定したときにも、情報処理装置6が攻撃を受けていると判定する。換言すれば、処理部10は、第1類否判定の結果において電流パターンが基準パターンと類似していないという条件が成立したときにも、情報処理装置6が攻撃を受けていると判定する。処理部10はこの判定に基づいて、情報処理装置6による次の第2処理の実行を禁止するとよい。具体的な動作は既述の通りである。
以上のように、不正な第三者が不正電源回路5’および不正負荷回路6’を用いて情報処理装置6に対して攻撃を行ったとしても、電源指紋認証部20はその攻撃を実質的に検出することができる。そして、処理部10はその攻撃の検出に応答して、情報処理装置6の動作を制限することができる。
次に、攻撃検出装置1の内部構成の詳細な一例について述べる。図6は、攻撃検出装置1の詳細な内部構成の一例を概略的に示す図である。図6の例では、攻撃検出装置1はクロック生成部40をさらに備えている。クロック生成部40はクロック信号を生成し、このクロック信号を攻撃検出装置1の各種構成に出力する。図6の例では、クロック生成部40は、発振器としてのMEMS(Micro Electro Mechanical Systems)振動子41と、MEMSコントローラ42とを含んでいる。MEMSコントローラ42は、MEMS振動子41の機械的な振動を制御する。MEMS振動子41は機械的な振動に基づいて発振信号をMEMSコントローラ42に出力する。MEMSコントローラ42はPLL(phase locked loop)回路および分周回路を含んでおり、発振信号に基づいてクロック信号を生成する。MEMSコントローラ42はこのクロック信号を攻撃検出装置1の各種構成に出力する。クロック生成部40はクロックコントローラ43も含んでおり、クロックコントローラ43はMEMSコントローラ42から入力されたクロック信号を、クロックラインL3を介して情報処理装置6に出力する。
なおクロック生成部40は発振器として必ずしもMEMS振動子41を含んでいる必要はない。例えば発振器として、水晶発振器、LC発振器、RC発振器、リング発振器またはセラミック発振器を採用してもよい。
処理部10は、処理回路11と、制御部12と、記憶部13と、通信部14とを含んでいる。またここでは、相手認証処理および暗号通信のために、処理部10は暗号復号器15およびキーメモリ16も含んでいる。これらはバス17を介して相互に接続されている。またバス17には、クロックコントローラ43も接続されている。
キーメモリ16には、暗号化処理および復号処理で用いられる鍵を記憶している。キーメモリ16は、記憶部13よりも情報が漏れにくいセキュアなメモリであってもよい。
暗号復号器15は、バス17から入力された平文の信号に対して、キーメモリ16から読み出した鍵に基づいて暗号化処理を実行して、暗号信号を生成し、その暗号信号をバス17に出力することができる。また暗号復号器15はバス17から入力された暗号信号に対して、キーメモリ16から読み出した鍵に基づいて復号処理を実行して、平文の信号を生成し、その信号をバス17に出力することができる。
記憶部13は、ROMおよびRAMなどの、コンピュータが読み取り可能な記録媒体を含む。記憶部13には、攻撃検出装置1を制御するための制御プログラムが記憶されている。なお記憶部13は、ROMおよびRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を含んでいてもよい。記憶部13は、例えば、小型のハードディスクドライブおよびSSDなどを備えてもよい。
制御部12は、攻撃検出装置1の動作を統括的に管理することが可能である。制御部12は制御回路であるとも言える。制御部12は、例えば、CPUを含んでいる。制御部12の各種機能は、当該制御部12が備えるCPUが記憶部13内の制御プログラムを実行することによって実現される。制御部12は内部記憶部を含んでいてもよい。内部記憶部には、プログラムが記憶されていてもよい。制御部12は内部記憶部および記憶部13のプログラムを実行することで各種機能を実行してもよい。制御部12は、複数のCPUを含んでいてもよい。また制御部12は、少なくとも一つのDSPを含んでいてもよい。また、制御部12の全ての機能あるいは制御部12の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
ここに開示される要素の機能は、当該開示される要素を実行するように構成された、あるいは当該開示される機能を実行するようにプログラミングされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(「特定用途向け集積回路」)、従来の回路構成及び/またはそれらの組み合わせを含む回路構成あるいは処理回路構成が用いられて実装されてもよい。プロセッサは、それが、その中にトランジスタおよび他の回路構成を含むとき、処理回路構成あるいは回路構成として見なされる。本開示において、回路構成、ユニットあるいは手段は、挙げられた機能を実行するハードウェア、あるいは当該機能を実行するようにプログラミングされたハードウェアである。ハードウェアは、挙げられた機能を実行するようにプログラミングされた、あるいは当該機能を実行するように構成された、ここで開示されるいかなるハードウェアあるいは既知の他のものであってもよい。ハードウェアが、あるタイプの回路構成として見なされるかもしれないプロセッサであるとき、回路構成、手段あるいはユニットは、ハードウェアとソフトウェアの組み合わせ、ハードウェアを構成するために用いられるソフトウェアおよび/またはプロセッサである。
通信部14は通信ラインL2を介して情報処理装置6の通信部61に接続される。通信部14は通信回路または通信インターフェースとも呼ばれる。通信部14は情報処理装置6の通信部61と通信を行うことができる。通信部14は制御部12から入力された送信信号を情報処理装置6の通信部61に送信することができ、また、情報処理装置6から受信した受信信号を制御部12および処理回路11に出力することができる。
処理回路11は、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32に接続されており、これらの動作の開始/停止を制御することができる。例えば処理回路11は電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32にそれぞれ起動信号を出力する。これにより、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32は動作を開始する。また処理回路11は電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32にそれぞれ停止信号を出力する。これにより、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32は動作を停止する。
処理回路11が電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32を、必要な期間のみに動作させることにより、消費電力を低減することができる。必要な期間は、例えば、情報処理装置6が攻撃対象処理を実行している期間である。
また処理回路11は、情報処理装置6が実行中の処理の種類または実行予定の処理の種類を示す情報を、通信部14を介して情報処理装置6から受け取る。処理回路11はこの情報を電源指紋認証部20に出力する。電源指紋認証部20はこの情報に応じた基準パターンを記憶部から読み出し、電流パターンと基準パターンとの第1類否判定を行う。
処理回路11は、グリッチの検出、異常電圧レベルの検出または電流パターンと基準パターンとの非類似判定に応答して、情報処理装置6が攻撃を受けていると判定する。処理回路11はこの判定に基づいて、情報処理装置6における次の処理の実行を禁止する。例えば、処理回路11は攻撃検出信号を制御部12に出力し、制御部12は通信部14を介して攻撃検出信号を情報処理装置6に送信する。
暗号通信を行う場合には、制御部12は攻撃検出信号を暗号復号器15に出力する。暗号復号器15はキーメモリ16から通信用の共通鍵を読み出し、当該共通鍵を用いて攻撃検出信号に対して暗号化処理を実行して、暗号攻撃検出信号を生成する。暗号復号器15は、暗号攻撃検出信号を制御部12に出力し、制御部12はこの暗号攻撃検出信号を通信部14を介して情報処理装置6に送信する。
情報処理装置6の制御部62は攻撃検出信号の受信に応答して動作を終了する。攻撃検出信号が暗号化されている場合には、制御部62は暗号復号器64に暗号攻撃検出信号に対して復号処理を行わせさせればよい。
制御部12は暗号攻撃検出信号の送信に替えて、あるいは、暗号攻撃検出信号の送信とともに、クロックコントローラ43に対して、情報処理装置6へのクロック信号の出力の停止を指示してもよい。クロックコントローラ43は当該指示に応答してクロック信号の出力を停止する。情報処理装置6はクロック信号の入力が停止すると、動作を停止する。
また、制御部12はリセット信号を情報処理装置6に出力してもよい。情報処理装置6はリセット信号の入力に応答して、動作を初期化する。
図6の例では、処理部10は乱数生成器19を含んでいる。乱数生成器19はバス17に接続されている。乱数生成器19は例えば相手認証処理で用いられる真正乱数を生成する。乱数生成器19は乱数生成回路とも言える。なお、乱数生成器19は、疑似乱数を生成してもよい。また、攻撃検出装置1から情報処理装置6へと乱数を送信する必要性がない場合には、乱数生成器19は設けられなくてもよい。
なお、処理回路11、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32は、制御部12と同様に、CPUまたはDSP等の演算処理装置および内部記憶部を含んでいてもよい。各部の機能は演算処理装置が内部記憶部に含まれたプログラムを実行することで実現されてもよい。あるいは、各部の機能の一部または全部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
次に、電子機器100の動作の具体的な一例について述べる。図7は、電子機器100の動作の一例を示すフローチャートである。図7には、情報処理装置6に対して攻撃が行われていない場合の動作のフローチャートの一例が示されている。
まずステップS1にて、電子機器100に電源が投入される。例えばユーザが不図示の電源ボタンを押下することにより、電源回路5は攻撃検出装置1および情報処理装置6に電力を供給する。この電源の投入に応答して、ステップS2にて、処理回路11は電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32にそれぞれ起動信号を出力する。また処理回路11は、通信確立処理を示す情報を電源指紋認証部20に出力する。
ステップS3にて、電圧グリッチ検出部31は起動信号の入力に応答して、電源ラインL1の電源電圧の検出を開始し、検出された電源電圧にグリッチが生じたか否かを判定するグリッチ判定処理を実行する。電圧グリッチ検出部31は繰り返し電源電圧を検出し、その検出のたびにグリッチ判定処理を実行する。
ステップS4にて、異常レベル検出部32は起動信号の入力に応答して、電源ラインL1の電源電圧の検出を開始し、検出された電源電圧に異常電圧レベルが生じたか否かを判定する異常レベル判定処理を実行する。異常レベル検出部32は繰り返し電源電圧を検出し、その検出のたびに異常レベル判定処理を実行する。
ステップS5にて、電源指紋認証部20は起動信号の入力に応答して、電源ラインL1の電源電流の検出を開始する。電源指紋認証部20は繰り返し電源電流を検出し、その電流値を記憶部に記憶する。これにより、記憶部には、電源電流の時系列データ(つまり電流パターン)が記憶される。
ステップS6およびステップS7にて、攻撃検出装置1および情報処理装置6は実質的に電源の投入に応答して通信確立処理を行う。通信確立処理においては、相手認証処理も行われる。上述したように、この相手認証処理に対して不正な第三者が攻撃することがある。
ステップS6およびステップS7の通信確立処理、ステップS3のグリッチ判定処理、ステップS4の異常レベル判定処理およびステップS5の電源電流の検出は、実質的に電源の投入に応答して行われるので、これらはほぼ同時に開始される。よって、電子機器100による通信確立処理の実行期間において、電源指紋認証部20および電圧攻撃検出部30の攻撃検出機能を有効化することができる。
ここで、電源ラインL1が切断箇所P2において切断されていない非切断状態で、不正な第三者が攻撃を行う場合について考慮する。例えば不正な第三者が電源回路5を取り外し、この電源回路5の替わりに不正電源回路5’を電源ラインL1に接続する。
不正な第三者が電源ラインL1の電源電圧に故意にグリッチを発生させると、ステップS3において、電圧グリッチ検出部31はグリッチを検出する。また不正な第三者が電源ラインL1の電源電圧に故意に異常電圧レベルを発生させると、ステップS4において、異常レベル検出部32は異常電圧レベルを検出する。
処理回路11はグリッチの検出および異常電圧レベルの検出の各々に応答して、攻撃検出信号を制御部12に出力する。制御部12は攻撃検出信号の入力に基づいて、情報処理装置6が攻撃を受けていると判定し、情報処理装置6における次の処理の実行を禁止する。具体的には、制御部12は例えば、通信部14を介して暗号攻撃信号を情報処理装置6に送信する。情報処理装置6の暗号復号器64は暗号攻撃検出信号に対して復号処理を実行して攻撃検出信号を生成する。制御部12はこの攻撃検出信号に応答して、通信確立処理を最初からやり直してもよく、あるいは、動作を終了してもよい。なお、制御部12は例えば情報処理装置6へのクロック信号の出力を停止してもよく、あるいは、情報処理装置6にリセット信号を出力してもよい。
以上のように、もし仮に、不正な第三者が通信確立処理において非切断状態での攻撃を行ったとしても、攻撃検出装置1はこの攻撃を検出することができ、情報処理装置6の動作を制限することができる。
通信確立処理が終了すると、攻撃検出装置1の制御部12は処理回路11に通信確立処理が終了したことを通知する。ステップS8にて、処理回路11はこの通知に応答して、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32にそれぞれ停止信号を出力する。これにより、電源指紋認証部20は電流検出を停止し、電圧グリッチ検出部31および異常レベル検出部32は電圧検出を停止して各判定処理を停止する。
ステップS9にて、電源指紋認証部20は、ステップS5において検出した電源電流によって構成される電流パターンが、通信確立処理に対応した基準パターンと類似するか否かを判定する。つまりここでは、電源指紋認証部20は通信確立処理の全期間における電流パターンと基準パターンとを互いに比較する。
電源指紋認証部20は、通信確立処理の開始と同様に、電源の投入に応答して電源電流の検出を開始するので、不正な攻撃が行われていない場合には、この電流検出によって、通信確立処理における電流パターンを取得することができる。
図8は、電流パターンおよび基準パターンの一例を概略的に示すグラフである。図8は、電流パターンを実線で示し、基準パターンを一点鎖線で示している。また電流パターンを構成する電流値i[n](0≦n≦N)が黒丸で示され、基準パターンを構成する電流値iref[n](0≦n≦N)が黒三角で示されている。
電源指紋認証部20による類否判定の具体的なアルゴリズムとしては任意のアルゴリズムを採用してよいものの、以下に、その一例について説明する。電源指紋認証部20は、例えば、電流値i[n]と電流値iref[n]との差Δi[n]を算出し、その差Δi[n]が差基準値よりも大きいか否かを、電流値ごとに判定する。差基準値は例えば予め設定されて、電源指紋認証部20の記憶部に記憶されている。少なくとも一つの電流値i[n]について、差Δi[n]が差基準値よりも大きいときに、電源指紋認証部20は電流パターンが基準パターンと類似していないと判定する。なお、電源指紋認証部20はノイズなどの影響を抑制すべく、連続して検出された複数の電流値i[n]について、差Δi[n]が差基準値よりも大きいときに、電流パターンが基準パターンと類似していないと判定してもよい。
上述の例では、電源指紋認証部20は電流値i[n]と電流値iref[n]とを互いに比較しているものの、必ずしもこれに限らない。例えば電源指紋認証部20は、電流パターンにおける電流の第1微分値と基準パターンにおける電流の第2微分値とを算出し、第1微分値と第2微分値とを互いに比較してもよい。第1微分値は、例えば、電流値i[n]と電流値i[n-1]の差に基づいて算出され、第2微分値は、例えば、電流値iref[n]と電流値iref[n-1]の差に基づいて算出される。
電源指紋認証部20は、第1微分値と第2微分値との差が微分基準値よりも大きいか否かを第1微分値ごとに判定する。微分基準値は例えば予め設定されて、電源指紋認証部20の記憶部に記憶されている。少なくとも一つの第1微分値について、当該差が微分基準値よりも大きいときに、電源指紋認証部20は電流パターンが基準パターンと類似していないと判定してもよい。なお、電源指紋認証部20はノイズの影響を抑制すべく、連続する複数の第1微分値について、当該差が微分基準値よりも大きいときに、電流パターンが基準パターンと類似していないと判定してもよい。
ここで、不正な第三者が切断箇所P2において電源ラインL1を切断し、不正電源回路5’および不正負荷回路6’をそれぞれ電源ラインL1aおよび電源ラインL1bに接続した場合(図4参照)を考慮する。この場合、電源指紋認証部20は、ステップS5において、電源ラインL1aを介して不正負荷回路6’を流れる電源電流を検出する。よって、検出された電源電流によって構成される電流パターンは、情報処理装置6の通信確立処理に対応した基準パターンと相違する。よって、電源指紋認証部20は電流パターンが基準パターンと類似していないと判定し、その判定結果を処理回路11に出力する。処理回路11はこの判定結果を制御部12に出力してもよい。
図7の例では、情報処理装置6の制御部62は通信確立処理が終了したときに、ステップS10にて、電流パターンの判定結果を要求する要求信号を、通信部61を介して攻撃検出装置1に送信する。ここでは暗号通信を行うので、暗号復号器64は要求信号に対して暗号化処理を実行して暗号要求信号を生成し、制御部12がこの暗号要求信号を通信部61を介して攻撃検出装置1に送信する。
攻撃検出装置1の制御部12は通信部14を介してこの暗号要求信号を受け取り、暗号復号器15に出力する。暗号復号器15はこの暗号要求信号に対して復号処理を実行して要求信号を生成する。ステップS11にて、制御部12は、この要求信号に対する応答としての結果信号を、通信部14を介して情報処理装置6に送信する。結果信号は、電流パターンと基準パターンとの第1類否判定の結果を示す信号である。電流パターンが基準パターンと類似していないときには、制御部12は結果信号として攻撃検出信号を送信する。ここでは暗号通信を行うので、暗号復号器15が結果信号に対して暗号化処理を実行して暗号結果信号を生成し、制御部12が通信部14を介して暗号結果信号を情報処理装置6に送信する。
ステップS12にて、情報処理装置6の制御部62は結果信号を確認する。具体的には、制御部62は通信部61を介して暗号結果信号を受信し、暗号結果信号を暗号復号器64に出力する。暗号復号器64は暗号結果信号に対して復号処理を実行して結果信号を生成する。結果信号が攻撃検出信号であるときには、制御部62は次の処理(図7の例ではプログラム認証処理)の実行を中止する。このとき、制御部62は通信確立処理を最初からやり直してもよく、あるいは、動作を終了してもよい。
以上のように、もし仮に不正な第三者が不正電源回路5’および不正負荷回路6’を用いて通信確立処理中に攻撃を行ったとしても、攻撃検出装置1はこの攻撃を検出することができ、情報処理装置6の動作を制限することができる。よって、攻撃によって不正な第三者が享受する利益を低減することができる。
図7の例では、情報処理装置6が攻撃を受けていない場合を想定しているので、制御部62は処理を続行する。具体的には、ステップS13にて、制御部62はプログラム認証処理の開始を示す開始信号を、通信部61を介して攻撃検出装置1に送信する。つまり、制御部62はプログラム認証処理の開始を攻撃検出装置1に通知する。ここでは暗号通信を行うので、暗号復号器64が開始信号に対して暗号化処理を実行して暗号開始信号を生成し、制御部62がこの暗号開始信号を、通信部61を介して攻撃検出装置1に送信する。次にステップS14にて、制御部62はプログラム認証処理を実行する。
一方、ステップS15にて、攻撃検出装置1の処理回路11は、情報処理装置6からのプログラム認証処理の開始通知に応答して、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32にそれぞれ起動信号を出力する。具体的には、処理回路11は通信部14を介して暗号開始信号を受信し、この暗号開始信号を暗号復号器15に出力する。暗号復号器15は暗号開始信号に対して復号処理を実行して開始信号を生成する。処理回路11はこの開始信号に応答して、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32にそれぞれ起動信号を出力する。さらに処理回路11は情報処理装置6の処理内容を電源指紋認証部20に通知する。具体的には、処理回路11は、プログラム認証処理を示す情報を電源指紋認証部20に出力する。
ステップS16にて、電圧グリッチ検出部31は起動信号の入力に応答して、電源電圧の検出を開始し、グリッチ判定処理を行う。ステップS17にて、異常レベル検出部32は起動信号の入力に応答して、電源電圧の検出を開始し、異常レベル判定処理を行う。ステップS18にて、電源指紋認証部20は起動信号の入力に応答して電源電流の検出を開始する。ステップS16からステップS18はそれぞれステップS3からステップS5と同じ処理である。
ステップS14のプログラム認証処理、ステップS16のグリッチ判定処理、ステップS17の異常レベル判定処理およびステップS18の電源電流の検出は、ステップS13の開始信号に応答して行われるので、これらはほぼ同時に開始される。よって、情報処理装置6によるプログラム認証処理の実行期間において、電源指紋認証部20および電圧攻撃検出部30の攻撃検出機能を有効化することができる。
ここでは、情報処理装置6の記憶部63内の制御プログラムは正規なプログラムであるものとする。よって、制御部62はプログラム認証処理において認証が成功したと判定する。情報処理装置6の制御部62はプログラム認証処理を終了すると、ステップS19にて、プログラム認証処理の終了を示す終了信号を、通信部61を介して攻撃検出装置1に送信する。つまり、制御部62はプログラム認証処理の終了を攻撃検出装置1に通知する。ここでは暗号通信が行われるので、暗号復号器64は終了信号に対して暗号化処理を実行して暗号終了信号を生成する。制御部62は通信部61を介してこの暗号終了信号を攻撃検出装置1に送信する。
ステップS20にて、攻撃検出装置1の処理回路11は、情報処理装置6からのプログラム認証処理の終了通知に応答して、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32にそれぞれ停止信号を出力する。具体的には、処理回路11は通信部14を介して暗号終了信号を受信し、これを暗号復号器15に出力する。暗号復号器15は暗号終了信号に対して復号処理を実行して終了信号を生成する。処理回路11は終了信号に応答して、電源指紋認証部20、電圧グリッチ検出部31および異常レベル検出部32に停止信号を出力する。これにより、電源指紋認証部20は電流検出を停止し、電圧グリッチ検出部31および異常レベル検出部32は電圧検出を停止して各判定処理を停止する。
次にステップS21にて、電源指紋認証部20は、ステップS18において検出した電源電流によって構成される電流パターンが、プログラム認証処理に対応した基準パターンと類似するか否かを判定する。つまりここでは、電源指紋認証部20はプログラム認証処理の全期間における電流パターンと基準パターンとを互いに比較する。電源指紋認証部20はその判定結果を処理回路11に出力する。処理回路11はその判定結果を制御部12に出力してもよい。
情報処理装置6の制御部62はステップS22にて、ステップS10と同様に、通信部61を介して暗号要求信号を攻撃検出装置1に送信する。ステップS23にて、攻撃検出装置1の制御部12は、ステップS11と同様に、暗号要求信号に対する応答としての暗号結果信号を、通信部14を介して情報処理装置6に送信する。暗号結果信号は、ステップS21による電流パターンと基準パターンとの第1類否判定の結果を示す結果信号を暗号化して得られる信号である。
ステップS23にて、情報処理装置6の制御部62は、ステップS12と同様に、通信部61を介して受信した暗号結果信号を確認する。結果信号が攻撃検出信号であるときには、制御部62は次の処理の実行を中止する。例えば制御部62はステップS13を再び実行してプログラム認証処理をやり直してもよく、あるいは、動作を停止してもよい。結果信号が攻撃検出信号でないときには、制御部12は次の処理を実行する。当該次の処理としては任意の処理を採用することができる。
以上のように、電子機器100によれば、不正な第三者が図1において電源回路5の替わりに不正電源回路5’を用いて攻撃を行った場合には、実質的に電圧攻撃検出部30がその攻撃を検出することができる。電圧攻撃検出部30が不正電源回路5’からの電源電圧を検出できるからである。また、不正な第三者が不正電源回路5’および不正負荷回路6’を用いて情報処理装置6に対して攻撃を行った場合には(図4)、実質的に電源指紋認証部20がその攻撃を検出することができる。不正負荷回路6’を流れる電源電流の電流パターンが、正規な情報処理装置6を流れる電源電流の電流パターンと相違するからである。そして、攻撃検出装置1は攻撃の検出に応じて、情報処理装置6の動作を制限することができる。これにより、第三者が享受できる不正な利益を低減することができる。言い換えれば、情報処理装置6の安全性を向上することができる。
なお、上述の例において、開始信号(ステップS13)および終了信号(ステップS19)は、プログラム認証処理の実行期間を示している。よって、開始信号および終了信号を纏めて、プログラム認証処理の実行期間を示す期間信号と呼ぶことができる。この期間信号を用いると、上述の動作を次のように説明することもできる。すなわち、情報処理装置6はこの期間信号に対して暗号化処理を実行して暗号期間信号(暗号開始信号および暗号終了信号)を生成し、この暗号期間信号を攻撃検出装置1に送信している。そして、攻撃検出装置1の暗号復号器15は、受信した暗号期間信号に対して復号処理を実行して期間信号(開始信号および終了信号)を生成する。電源指紋認証部20は、当該期間信号に基づいて、プログラム認証処理の実行期間において電源電流を検出して電流パターンを取得し、電圧攻撃検出部30は、当該期間信号に基づいて、プログラム認証処理の実行期間において電源電圧を検出する。
図7の例では、プログラム認証処理(ステップS14)は1回のみ実行されているものの、必ずしもこれに限らない。制御部62はプログラム認証処理を、例えば所定期間ごとに繰り返し実行してもよい。この場合、そのプログラム認証処理の各実行期間中の攻撃を検出すべく、電子機器100はステップS13からステップS24までの一連の処理を、例えば所定期間ごとに繰り返し実行してもよい。なお、図2の例では、情報処理装置6は、バス60に接続されるタイマ69を含んでいる。制御部62はタイマ69によって所定期間の経過を認識することができる。
図7の例では、電源指紋認証部20は通信確立処理の終了後に、通信確立処理の全期間における電流パターンと基準パターンとの第1類否判定を行い(ステップS9)、プログラム認証処理の終了後に、プログラム認証処理の全期間における電流パターンと基準パターンとの第1類否判定を行っている(ステップS21)。しかるに、必ずしもこれに限らない。電源指紋認証部20は通信確立処理中またはプログラム認証処理中において、それまでに検出した電源電流によって構成される電流パターンと、対応する基準パターンとの第1類否判定を行ってもよい。
図9は、電子機器100の上記動作の一例を示すフローチャートである。図9の例では、図7のステップS5およびステップS18の替わりに、それぞれステップS5’およびステップS18’が実行され、また図7のステップS9からステップS12までの一連の処理およびステップS21からステップS24までの一連の処理は実行されない。
ステップS5’は、ステップS6およびステップS7の通信確立処理とほぼ同時に開始される。ステップS5’においては、電源指紋認証部20は電源電流を繰り返し検出し、その電源電流の検出のたびに、それまでに検出した電流値によって構成される電流パターンが、対応する基準パターンと類似するか否かを判定する。処理部10は、電流パターンが基準パターンと類似していないときには、通信部14を介して攻撃検出信号を情報処理装置6に送信する。
図10は、電流パターンおよび基準パターンの一例を概略的に示す図である。図10では、通信確立処理の途中までに検出された電流値によって構成される電流パターンが実線で示され、この電流パターンに対応する基準パターンが一点鎖線で示されている。また図10では、この電流パターンの電流値i[n](0≦n≦N)が黒丸で示され、基準パターンの電流値iref[n](0≦n≦N)が黒三角で示されている。
例えば電源指紋認証部20は電流値i[n]の検出のたびに、その電流値i[n]と電流値iref[n]との差Δi[n]が差基準値よりも大きいか否かを判定し、その判定結果を記憶部に記憶する。差Δi[n]が差基準値よりも大きいときに、電源指紋認証部20は電流パターンが基準パターンと類似していないと判定してもよい。ノイズの影響を低減すべく、電源指紋認証部20は、直前の連続する複数の判定結果において、差Δi[n]が差基準値よりも大きいときに、電流パターンが基準パターンと類似していないと判定してもよい。また、電源指紋認証部20は電流値自体ではなく、電流の微分値に基づいて電流パターンの第1類否判定を行ってもよい。
これによれば、不正な第三者が不正電源回路5’および不正負荷回路6’を用いて攻撃を行っている場合、通信確立処理の途中であっても、電流パターンが基準パターンと類似していないと電源指紋認証部20が判定できる。つまり、処理回路11は通信確立処理の途中であっても情報処理装置6が攻撃を受けていると判定でき、制御部12は情報処理装置6による次の処理の実行を禁止できる。したがって、より早期に情報処理装置6の動作を制限することができる。
ステップS18’は、ステップS14のプログラム認証処理とほぼ同時に開始される。ステップS18’の動作はステップS5’と同様である。ただし、ステップS18’における基準パターンとしては、プログラム認証処理に対応した基準パターンが採用される。
これによれば、処理回路11はプログラム認証処理の途中であっても情報処理装置6が攻撃を受けていると判定でき、制御部12は情報処理装置6による次の処理の実行を禁止できる。したがって、より早期に情報処理装置6の動作を制限できる。
次に、電流パターンと基準パターンとの類否判定の他の具体例について述べる。この類否判定はステップS9,S21において実行され得る。
ここでは一例として、基準パターンとして攻撃対象処理の全期間の電流パターンを採用するのではなく、その一部を採用する。図11は、基準パターンと電流パターンとの一例を概略的に示す図である。図11においては、基準パターンが実線で示されている。この基準パターンは処理内容に応じて予め設定される。また、図11の例では、電源指紋検出部20によって検出された電流パターンが破線で示されている。電流パターンは電流値i[n](0≦n≦N)によって構成され、基準パターンは電流値iref[m](0≦m≦M,M<N)によって構成される。図11の例では、電流値i[n](0≦n≦N)は黒丸で示され、電流値iref[m](0≦m≦M)は黒三角で示されている。
電源指紋認証部20は、基準パターンの時間軸上の位置をずらしながら、各位置において、電流パターンのうち基準パターンに対応する部分電流パターンと、基準電流パターンとの部分類否判定を行う。換言すれば、電源指紋認証部20は、電流値i[k]~i[k+M]からなる部分電流パターンと電流値iref[0]~iref[M]からなる基準パターンとの部分類否判定を、kを0~(N-M)まで1ずつ増やしながら行う。
電源指紋認証部20は当該部分類否判定において、電流値i,irefの差Δiが差基準値以上であるか否かを、電流値iごとに判定する。電源指紋認証部20は、少なくとも一つの電流値iについて、差Δiが差基準値以上であるときに、部分電流パターンが基準パターンと類似していないと判定する。
そして、電源指紋認証部20は、kが0~(N-M)までの全ての部分類否判定の結果が非類似であるときに、電流パターンが基準パターンと類似していないと判定する。つまり、基準パターンの時間軸上の位置をずらしたときに、そのいずれの位置においても部分電流パターンが基準パターンと類似していないときに、電源指紋認証部20は、電流パターンが基準パターンに類似していないと判定する。一方で、電源指紋認証部20は、いずれか1つの部分類否判定の結果が類似であるときに、電流パターンが基準パターンと類似していると判定する。つまり、基準パターンの時間軸上の位置をずらしたときに、そのいずれかの位置において部分電流パターンが基準パターンと類似しているときに、電源指紋認証部20は、電流パターンが基準パターンに類似していると判定する。
これによれば、攻撃対象処理の実行開始タイミングと電流検出の開始タイミングとの間にずれが生じていても、当該ずれを吸収して類否判定を行うことができる。
図9のステップS5’,S18’では、電源指紋認証部20は電源電流の検出のたびに、その直前の(M+1)個の電流値iからなる部分電流パターンと(M+1)個の電流値irefからなる基準パターンとの部分類否判定を行えばよい。電源指紋認証部20は部分類否判定の結果が類似であるときに、電流パターンが基準パターンに類似すると判定する。また電源指紋認証部20は攻撃対象処理の実行中に行われる部分類否判定の結果の全てが非類似であるときに、電流パターンが基準パターンと類似していないと判定する。これによっても、攻撃対象処理の実行開始タイミングと電流検出の開始タイミングとの間のずれを吸収して類否判定を行うことができる。
なお、図1の例では、電圧攻撃検出部30は電圧グリッチ検出部31および異常レベル検出部32の両方を含んでいる。しかしながら、必ずしもこれに限らない。電源電圧のグリッチを検出する必要性が低い場合には、電圧グリッチ検出部31は設けられなくてもよい。同様に、電源電圧の異常電圧レベルを検出する必要性が低い場合には、異常レベル検出部32は設けられなくてもよい。要するに、電圧攻撃検出部30は電圧グリッチ検出部31および異常レベル検出部32の少なくともいずれか一方を含んでいればよい。
また上述の例では、攻撃検出装置1の処理部10は、通信確立処理およびプログラム認証処理において、電源指紋認証部20および電圧攻撃検出部30を動作させている。しかしながら、必ずしもこれに限らない。電源指紋認証部20および電圧攻撃検出部30を動作させる処理の種類は適宜に変更できる。例えば、情報処理装置6は通信確立処理またはプログラム認証処理とは別の処理において暗号化処理を実行することがある。攻撃検出装置1は情報処理装置6が暗号化処理を行う実行期間において、電源指紋認証部20および電圧攻撃検出部30を動作させてもよい。この暗号化処理の実行期間は、情報処理装置6から攻撃検出装置1に通知。これによれば、通信確立処理およびプログラム認証処理とは別の処理で暗号化処理が行われたとしても、攻撃検出装置1はその暗号化処理に対する攻撃を検出することができる。
要するに、攻撃検出装置1は、攻撃によって第三者が不正な利益を享受できる攻撃対象処理に対して、電源指紋認証部20および電圧攻撃検出部30を動作させるとよい。攻撃対象処理は、例えば、秘密情報を用いた処理である。秘密情報とは、秘匿の必要性が高い情報であって、例えばプログラム認証処理においては、制御プログラムに適用されるハッシュ関数、署名情報に含まれるハッシュ値、および、当該ハッシュ値を復号する鍵である。また、例えば相手認証においては、秘密情報は、乱数値に適用されるハッシュ関数、および、乱数値を暗号化/復号する鍵である。また、例えば暗号化処理または復号処理においては、秘密情報は鍵である。
その一方で、攻撃検出装置1は、攻撃によって第三者が得られる不正な利益が少ない、あるいは、ほとんどない非攻撃対象処理に対して、電源指紋認証部20および電圧攻撃検出部30を動作させなくてもよい。非攻撃対象処理は、例えば秘密処理を用いない処理である。
要するに、電源指紋認証部20は、情報処理装置6が攻撃対象処理を実行しているときに電源電流を検出し、情報処理装置6が非攻撃対象処理を実行しているときに電源電流を検出しなくてもよい。同様に、電圧攻撃検出部30は、情報処理装置6が攻撃対象処理を実行しているときに電源電圧を検出し、情報処理装置6が非攻撃対象処理を実行しているときに電源電圧を検出しなくてもよい。
これによれば、情報処理装置6が攻撃を受けやすい状況で電源指紋認証部20および電圧攻撃検出部30を動作させるとともに、情報処理装置6が攻撃を受けにくい状況で電源指紋認証部20および電圧攻撃検出部30の動作を停止できる。したがって、低い消費電力で効果的に攻撃を検出することができる。
ただし、電源指紋認証部20の機能は、情報処理装置6の処理における電流パターンがある程度決まっていることを前提とした機能である。よって、例えば以下で説明する情報処理装置6の処理は電源指紋認証部20による攻撃検出機能にあまり適していない。
例えば図2に示すように、情報処理装置6は入力部67と表示部68とを含んでいる場合がある。入力部67および表示部68はバス60に接続されている。表示部68は例えば液晶ディスプレイまたは有機EL(Electro Luminescence)ディスプレイ等のディスプレイである。表示部68は制御部62の制御によって、文字、記号、画像などを表示することができる。入力部67は例えばキーボードまたはマウス等の入力デバイスである。入力部67はユーザからの入力情報を制御部62に出力することができる。
制御部62は、入力部67に対するユーザの入力に応じて表示部68の表示内容を変更する。例えば、ユーザは入力部67を用いて文章または絵を入力し、制御部62は入力部67の入力に応じてその文章または絵を表示部68に表示する。このような処理においては、表示部68の表示内容がユーザの入力によって逐次変化するため、その処理中に流れる電源電流の電流パターンはユーザの入力に応じて逐次変化する。
このような処理に対応した基準パターンを一意に決定することは困難であるので、この処理は電源指紋認証部20の機能にはあまり適していない。
そこで、例えば、攻撃検出装置1は、ユーザの入力部67への入力を必要としない攻撃対象処理に対しては、電源指紋認証部20および電圧攻撃検出部30を動作させてもよい。これにより、電源指紋認証部20の攻撃検出機能および電圧攻撃検出部30の攻撃検出機能により、当該攻撃対象処理に対する攻撃をより適切に検出できる。
一方で、攻撃検出装置1は、ユーザの入力部67への入力を必要とする攻撃対象処理に対しては、電源指紋認証部20を動作させずに電圧攻撃検出部30を動作させてもよい。これにより、電圧攻撃検出部30の攻撃検出機能により、当該攻撃対象処理に対する攻撃を検出できる。
また、攻撃検出装置1は、既設の電源回路5および既設の情報処理装置6に対して外付けで追加可能であってもよい。言い換えれば、攻撃検出装置1は情報処理装置6とは異なるチップに形成されていることが望ましい。ここでいうチップとは、回路が形成された半導体基板の上に接続端子を実装した構成に対して、接続端子の先端部が露出するように、樹脂封止(パッケージング)して得られる態様をいう。攻撃検出装置1を外付けするためには、攻撃検出装置1を電源ラインL1に接続する必要があり、そのため、電源ラインL1(少なくとも端子)は例えば基板上において露出している。よって、不正な第三者はこの電源ラインL1に対して作業を行いやすく、攻撃検出装置1よりも後段の切断箇所P2で電源ラインL1を切断したり、不正電源回路5’および不正負荷回路6’を電源ラインL1aおよび電源ラインL1bに接続させやすい。
一方で、攻撃検出装置1が情報処理装置6の内部に実装されている場合には、不正な第三者は切断箇所P2で電源ラインL1を切断することが困難であり、また、不正電源回路5’を電源ラインL1bに接続することも困難となる。しかしなら、攻撃検出装置1を情報処理装置6の内部に実装する場合には、情報処理装置6の内部の設計をやり直す必要がある。例えば情報処理装置6として市販の汎用マイコンを使用している場合、その設計をやり直すことは容易ではない。仮に設計をやり直すと相当な費用が生じてしまう。
攻撃検出装置1は、上述のように、不正電源回路5’および不正負荷回路6’を用いた情報処理装置6への攻撃を検出することができる。したがって、攻撃検出装置1を外付けで追加可能な構成を採用しても、情報処理装置6をより適切に攻撃から保護することができる。しかも、攻撃検出装置1が外付けで追加可能であれば、製造コストの増大を回避することができる。
第2の実施の形態.
第1の実施の形態では、情報処理装置6は、プログラム認証処理を開始する際に暗号開始信号を攻撃検出装置1に送信している(ステップS13)。そして、攻撃検出装置1はこの暗号開始信号の受信に応答して、電源指紋認証部20および電圧攻撃検出部30を動作させている(ステップS16からステップS18)。
もし、不正な第三者が通信を傍受することにより、当該暗号開始信号を不正に取得することができれば、攻撃対象となるプログラム認証処理の開始タイミングを推察できるおそれがある。つまり、不正な第三者が暗号開始信号を解読できなくても、この暗号開始信号がなんらかの攻撃対象処理の開始タイミングを意味していると推察する恐れがある。このような開始タイミングの情報漏洩は好ましくない。
そこで、第2の実施の形態では、攻撃対象処理の開始タイミングをより確実に秘匿することを企図する。
第2の実施の形態にかかる電子機器100の構成は第1の実施の形態と同様である。ただし、情報処理装置6は通信ラインL2を介してダミー信号を攻撃検出装置1に送信する。具体的な一例として、情報処理装置6は攻撃対象処理(例えばプログラム認証処理)の実行期間以外のタイミングで、ダミー信号を攻撃検出装置1に送信する。
図12は、電子機器100の上記動作の一例を示すフローチャートである。電子機器100は、第1の実施の形態と同様に、図7のステップS1からステップS12を実行してもよいものの、図12の例では、紙面の都合上、これらのステップを省略している。図12に例示するように、電子機器100は第1の実施の形態と同様にステップS13からステップS24を実行する。ここでは、攻撃が行われていない場合を想定しているので、ステップS24において情報処理装置6は処理を続行する。
ステップS24の次のステップS25にて、情報処理装置6の制御部62は通信部61を介してダミー信号を攻撃検出装置1に送信する。このダミー信号は攻撃検出装置1にとって意味のない信号であってよい。ここでは暗号通信を行うので、暗号復号器64はダミー信号に対して暗号化処理を実行して、暗号ダミー信号を生成する。制御部12はこの暗号ダミー信号を、通信部61を介して攻撃検出装置1に送信する。
ステップS26にて、攻撃検出装置1の制御部12は通信部14を介して暗号ダミー信号を受信する。制御部12は暗号ダミー信号を暗号復号器15に出力し、暗号復号器15は暗号ダミー信号に対して復号処理を実行して、ダミー信号を生成する。攻撃検出装置1はこのダミー信号に応じた処理を行う必要がない。ここでは、攻撃検出装置1はダミー信号に応じた処理を行わずに、ダミー信号を破棄する。
図12の例では、情報処理装置6は1回のみ暗号ダミー信号を送信しているものの、例えば所定時間ごとに暗号ダミー信号を送信してもよい。
これによれば、不正な第三者が通信を傍受して種々の信号を取得しても、種々の信号には、暗号ダミー信号が含まれているので、どの信号が攻撃対象処理(例えばプログラム認証処理)の開始タイミングを示しているのか特定することが難しい。言い換えれば、攻撃対象処理の開始タイミング、ひいては対象処理信号の実行期間をより確実に秘匿することができる。
なお、上述の例では、攻撃検出装置1はダミー信号に応じた処理を行っていないので、不正な第三者が攻撃検出装置1の電源電流をモニタすることにより、ダミー信号の受信後に攻撃検出装置1がなんら処理を行っていないことを特定できる可能性がある。つまり、第三者はダミー信号が攻撃検出装置1にとって意味のない信号であることを特定できる可能性がある。この場合、ダミー信号の送信が無駄となる。
そこで、攻撃検出装置1は偽装のためにダミー信号に応じた処理を行ってもよい。図13は、電子機器100のこの動作の一例を示すフローチャートである。電子機器100は第1の実施の形態と同様に図7のステップS1からステップS12を実行してもよいものの、図13では、紙面の都合上、これらのステップを省略している。図13の例でも、電子機器100は第1の実施の形態と同様にステップS13からステップS24を実行する。ここでは、攻撃が行われていない場合を想定しているので、ステップS24において情報処理装置6は処理を続行する。
ステップS24の次のステップS28にて、情報処理装置6の制御部62は通信部61を介してダミー開始信号を攻撃検出装置1に送信する。ダミー開始信号はダミー信号の一種であり、ダミー処理の開始を示す信号である。ここでいうダミー処理とは、偽装のために攻撃検出装置1が行う以下の動作を意味する。ここでは暗号通信を行うので、暗号復号器64はダミー開始信号に対して暗号化処理を実行して、暗号ダミー開始信号を生成する。制御部12はこの暗号ダミー開始信号を、通信部61を介して攻撃検出装置1に送信する。
情報処理装置6の制御部62は暗号ダミー開始信号の送信後に、適宜に別の処理を実行する。例えば情報処理装置6は画像処理等の非攻撃対象処理を実行する。
ステップS29にて、攻撃検出装置1の処理回路11は通信部14を介したダミー開始信号の受信に応答して、電源指紋認証部20および電圧攻撃検出部30にそれぞれ起動信号を出力する。具体的には、処理回路11は通信部14を介して暗号ダミー開始信号を受信し、この暗号ダミー開始信号を暗号復号器15に出力する。暗号復号器15は暗号ダミー開始信号に対して復号処理を実行して、ダミー開始信号を生成する。処理回路11はこのダミー開始信号に基づいて、電源指紋認証部20および電圧攻撃検出部30にそれぞれ起動信号を出力する。また処理回路11は電源指紋認証部20に、ダミー処理を示す情報も出力する。
ステップS30にて、電圧グリッチ検出部31は起動信号の入力に応答して、電源電圧の検出を開始し、グリッチ判定処理を実行する。ステップS31にて、異常レベル検出部32は起動信号の入力に応答して、電源電圧の検出を開始し、異常レベル判定処理を実行する。ステップS32にて、電源指紋認証部20は起動信号の入力に応答して電源電流の検出を開始する。ステップS30からステップS32はステップS16からステップS18とそれぞれ同じ処理である。
情報処理装置6の制御部62は例えばダミー開始信号の送信から所定時間が経過した後に、ステップS33にて、通信部61を介してダミー終了信号を攻撃検出装置1に送信する。情報処理装置6はダミー終了信号を暗号化して送信してもよい。具体的には、暗号復号器64はダミー終了信号に対して暗号化処理を実行して、暗号ダミー終了信号を生成する。制御部12はこの暗号ダミー終了信号を、通信部61を介して攻撃検出装置1に送信する。
ステップS34にて、攻撃検出装置1の処理回路11は通信部14を介したダミー終了信号の受信に応答して、電源指紋認証部20および電圧攻撃検出部30にそれぞれ停止信号を出力する。具体的には、処理回路11は通信部14を介して暗号ダミー終了信号を受信し、この暗号ダミー信号を暗号復号器15に出力する。暗号復号器15は暗号ダミー終了信号に対して復号処理を行って、ダミー終了信号を生成する。処理回路11はダミー終了信号に基づいて、電源指紋認証部20および電圧攻撃検出部30にそれぞれ停止信号を出力する。電源指紋認証部20は停止信号の入力に応答して電源電流の検出を停止し、電圧グリッチ検出部31および異常レベル検出部32は停止信号の入力に応答して電源電圧の検出を停止して各判定処理を停止する。
次にステップS35にて、電源指紋認証部20は、ステップS32において検出した電源電流によって構成される電流パターンが、ダミー基準パターンと類似するか否かを判定する。つまりここでは、電源指紋認証部20は、ダミー開始信号の送信からダミー終了信号の送信までの全期間における電流パターンとダミー基準パターンとを比較する。ダミー基準パターンとは、複数の値によって構成されるパターンであるものの、特定の処理における電流パターンである必要はない。ダミー基準パターンは任意のパターンであってもよい。
電源指紋認証部20は電流パターンとダミー基準パターンとの類否判定(以下、第2類否判定と呼ぶ)の結果を処理回路11に出力する。通常、電流パターンはダミー基準パターンと相違するので、電源指紋認証部20は電流パターンがダミー基準パターンと類似しないと判定する。この第2類否判定の結果は情報処理装置6への攻撃を意味しない。
情報処理装置6の制御部62はダミー終了信号を送信した後に、ステップS36にて、ステップS22と同様に、暗号要求信号を攻撃検出装置1に送信する。ステップS37にて、攻撃検出装置1の制御部12は、ステップS23と同様に、暗号要求信号に対する応答としての暗号結果信号を、通信部14を介して情報処理装置6に送信する。通常は、電流パターンはダミー基準パターンと相違するので、制御部12は暗号結果信号として、攻撃検出信号を送信する。
ステップS38にて、情報処理装置6の制御部62は通信部61を介して暗号結果信号を受信する。暗号復号器64は暗号結果信号に対して復号処理を実行して、結果信号を生成する。制御部62はこの結果信号に応答した処理を行う必要はない。ここでは制御部62は結果信号に応じた処理を行うことなく、結果信号を破棄する。つまり、制御部62は次の処理の実行を禁止しない。なお、制御部62が結果信号に応じた処理装置を行わないので、暗号結果信号に対する復号処理も不要である。つまり、制御部62は暗号結果信号を破棄してもよい。
以上のように、攻撃検出装置1の電源指紋認証部20および電圧攻撃検出部30は暗号ダミー開始信号の受信に応答して動作を開始する。これにより、暗号ダミー開始信号の送信後には、攻撃検出装置1を流れる電源電流は攻撃検出装置1の動作に応じて増大する。
不正な第三者が通信を傍受しつつ、攻撃検出装置1を流れる電源電流をモニタしていた場合、不正な第三者は暗号ダミー開始信号に応答して攻撃検出装置1が動作を開始したことを確認できる。これによれば、不正な第三者は暗号ダミー開始信号が攻撃対象処理(例えばプログラム認証処理)の開始タイミングを示していると誤認しやすい。換言すれば、攻撃対象処理の開始タイミング、ひいては攻撃対象処理の実行期間をより確実に秘匿することができる。
しかも、図13の例では、情報処理装置6は暗号要求信号を攻撃検出装置1に送信し(ステップS36)、攻撃検出装置1はこの暗号要求信号に応答して暗号結果信号を情報処理装置6に送信する(ステップS37)。つまり、ステップS22からステップS24と同様の一連の処理が、ダミー処理でも行われる。よって、本来の処理(ステップS13からステップS24までの一連の処理)であっても、ダミー処理(ステップS28からステップS38までの一連の処理)であっても、通信ラインL2には、4つの信号(開始信号、終了信号、要求信号および結果信号)が流れる。
したがって、たとえ不正な第三者が通信を傍受していたとしても、本来の処理とダミー処理とを区別することは難しい。よって、不正な第三者が攻撃対象処理の実行期間を特定することをより困難にすることができる。
なお、上述の例において、ダミー開始信号(ステップS28)およびダミー終了信号(ステップS33)は、ダミー処理の実行期間を示している。よって、ダミー開始信号およびダミー終了信号を纏めて、ダミー処理の実行期間を示すダミー期間信号と呼ぶことができる。このダミー期間信号を用いると、上述の動作を次のように説明することもできる。すなわち、情報処理装置6はこのダミー期間信号に対して暗号化処理を実行して暗号ダミー期間信号(暗号ダミー開始信号および暗号ダミー終了信号)を生成し、この暗号ダミー期間信号を攻撃検出装置1に送信している。そして、攻撃検出装置1の暗号復号器15は、受信した暗号ダミー期間信号に対して復号処理を実行してダミー期間信号(ダミー開始信号およびダミー終了信号)を生成する。電源指紋認証部20は、当該ダミー期間信号に基づいて、ダミー処理の実行期間において電源電流を検出して電流パターンを取得し、電圧攻撃検出部30は、当該ダミー期間信号に基づいて、ダミー処理の実行期間において電源電圧を検出する。
ところで、ダミー処理における電流パターンの第2類否判定(ステップS35)の結果は、上述したように、情報処理装置6の処理に影響を与えない。よって、第2類否判定の結果はどのような結果であろうと構わない。したがって、電源指紋認証部20は必ずしもダミー基準パターンを用いる必要はない。電源指紋認証部20は、記憶部に記憶された基準パターンのいずれを用いてもよい。
さて、上述のように、電源指紋認証部20は処理回路11からの情報に応じた基準パターンを用いる。例えば処理回路11は、情報処理装置6からプログラム認証処理についての暗号開始信号を受け取ったときには、プログラム認証処理の情報を電源指紋認証部20に出力し、電源指紋認証部20はこの情報に基づいて、プログラム認証処理に対応した基準パターンを用いる。また、処理回路11は、情報処理装置6からダミー処理についての暗号ダミー開始信号を受け取ったときには、ダミー処理を示す情報を電源指紋認証部20に出力し、電源指紋認証部20はこの情報に基づいて、ダミー基準パターンを用いる。
ダミー処理において用いられる基準パターンはダミー基準パターンである必要はないので、ダミー開始信号は、必ずしも、ダミー処理の開始を示す信号である必要はない。ダミー開始信号として、例えばプログラム認証処理の開始信号と同じ信号を採用してもよい。同様に、ダミー終了信号もプログラム認証処理の終了信号と同じ信号であってもよい。この場合、電源指紋認証部20はダミー処理の第2類否判定(ステップS35)において、プログラム認証処理に対応した基準パターンを用いる。
これによっても、通信ラインL2には、本来の処理(ステップS19からステップS24までの一連の処理)と同様の信号が流れるので、たとえ第三者が通信を傍受していたとしても、本来の処理とダミー処理とを区別することは難しい。言い換えれば、攻撃対象処理の実行期間をより確実に秘匿することができる。
なお、図13の例では、電源指紋認証部20はダミー終了信号の受信後に、ステップS35にて電流パターンの第2類否判定を行っているものの、必ずしもこれに限らない。図14は、電子機器100の動作の一例を示すフローチャートである。図14の例では、図13のステップS22からステップS24までの一連の処理、および、ステップS36からステップS38までの一連の処理は実行されず、ステップS18およびステップS32に替えて、それぞれステップS18’およびステップS32’が実行される。
ステップS32’はステップS30およびステップS31と並行して実行される。ステップS32’においては、電源指紋認証部20は電源ラインL1の電源電流を例えば所定時間ごとに検出する。電源指紋認証部20は電源電流の検出のたびに、それまでに検出した電流値によって検出される電流パターンが、ダミー基準パターンと類似するか否かを判定する。電源指紋認証部20はその判定結果を処理回路11に出力する。
処理回路11は、ダミー開始信号に応答して電源指紋認証部20を起動した場合、電源指紋認証部20による判定結果に応じた処理を行わず、その判定結果を破棄してもよい。つまり、処理部10は、第2類否判定の結果によらず、情報処理装置6による次の処理の実行を禁止しない。なぜなら、第2類否判定の結果は情報処理装置6への攻撃を意味しないからである。
以上のように、図14の例であっても、電源指紋認証部20および電圧攻撃検出部30は暗号ダミー開始信号に応答して動作を行う。よって、不正な第三者が通信を傍受しつつ攻撃検出装置1の電源電流をモニタしていた場合、暗号ダミー開始信号が攻撃対象処理の開始タイミングを示していると誤認しやすい。換言すれば、攻撃対象処理の開始タイミング、ひいては攻撃対象処理の実行期間をより確実に秘匿できる。
第3の実施の形態.
第1および第2の実施の形態においては、不正負荷回路6’を流れる電源電流は正規の情報処理装置6を流れる電源電流と相違していた(図5参照)。これにより、電源指紋認証部20は、不正負荷回路6’を用いた攻撃を実質的に検出することができた。
しかしながら、もし仮に、不正負荷回路6’を流れる電源電流が正規の情報処理装置6を流れる電源電流と一致すれば、電源指紋認証部20は、この不正負荷回路6’を用いた攻撃を検出することができない。なぜなら、不正負荷回路6’を流れる電源電流によって構成される電流パターンが基準パターンとほぼ一致するからである。つまり、この場合には、電源指紋認証部20による攻撃検出機能を無効化することができる。
図15は、電源指紋認証部20の攻撃検出機能を無効化すべく、不正な第三者が攻撃を行っているときの電子機器100の構成の一例を概略的に示す図である。図15の例では、不正負荷回路6’は電子機器100と同様の構成を有しており、具体的には、攻撃検出装置1と、情報処理装置6とを含んでいる。
以下では、不正負荷回路6’に属する構成については、その符号の末尾に「A」を追記して説明する。例えば情報処理装置6Aは不正負荷回路6’に属する情報処理装置6を意味する。
情報処理装置6Aは電源ラインL1Aに接続されている。また、情報処理装置6Aは通信ラインL2AおよびクロックラインL3Aの各々を介して攻撃検出装置1Aに接続されている。情報処理装置6Aの内部構成は情報処理装置6の内部構成と同一である。攻撃検出装置1Aは電源ラインL1Aの電源電圧および電源電流を検出する。攻撃検出装置1Aの内部構成は攻撃検出装置1の内部構成と同一である。図15の例では、シャント抵抗R1Aが電源ラインL1Aに設けられており、その両端電圧が攻撃検出装置1Aに入力されている。これにより、攻撃検出装置1Aは電源ラインL1Aの電源電流を検出することができる。
図15の例では、電源ラインL1は不正な第三者によって切断箇所P2において切断され、電源ラインL1aおよび電源ラインL1bに分割されている。不正電源回路5’は電源ラインL1bに接続されており、電源ラインL1bを介して情報処理装置6に電源電圧を印加する。不正な第三者は不正電源回路5’を用いて、情報処理装置6の電源電圧に攻撃用の電圧異常を発生させることができる。
電源ラインL1aの一端は正規な電源回路5に接続されている。また、電源ラインL1aは電源ラインL1Aに接続されている。これにより、電源回路5は電源ラインL1aおよび電源ラインL1Aを介して情報処理装置6Aに電源電圧を印加できる。よって、情報処理装置6Aには、正規の電源電圧が印加される。
また図15の例では、シャント抵抗R1およびシャント抵抗R1Aが相互に直列に接続されるように、電源ラインL1aが電源ラインL1Aに接続されている。これによれば、電源回路5からシャント抵抗R1およびシャント抵抗R1Aを介して情報処理装置6Aに電源電流が流れる。よって、攻撃検出装置1および攻撃検出装置1Aは、情報処理装置6Aを流れる電源電流を検出する。また、シャント抵抗R1およびシャント抵抗R1Aの抵抗値は通常小さいので、攻撃検出装置1および攻撃検出装置1Aは、情報処理装置6Aに印加される電源電圧を検出する。
不正な第三者は電子機器100および不正負荷回路6’にほぼ同時に電源を投入する。不正負荷回路6’の攻撃検出装置1Aおよび情報処理装置6Aの内部構成は、それぞれ、電子機器100の攻撃検出装置1および情報処理装置6と同一であるので、電源の同時投入により、電子機器100および不正負荷回路6’はほぼ同期して、互いに同じ動作を行う。
以下、一例として、電子機器100および不正負荷回路6’が図7のフローチャートに沿って動作する場合について詳述する。ここでは、電源指紋認証部20の攻撃検出機能の無効化を説明するので、以下では、電圧攻撃検出部30の説明を省略する。図16は、電子機器100および不正負荷回路6’の動作タイミングの一例を概略的に示す図である。
まず、電子機器100および不正負荷回路6’の両方にほぼ同時に電源が投入される(ステップS1)。電子機器100および不正負荷回路6’はこの電源の投入に応答してほぼ同時に通信確立処理を行う(ステップS6およびステップS7)。つまり、電子機器100の攻撃検出装置1および情報処理装置6は相互に通信確立処理を行い、不正負荷回路6’の攻撃検出装置1Aおよび情報処理装置6Aも相互に通信確立処理を行う。これらの通信確立処理は互いに同じ処理であるので、情報処理装置6の電源電圧に電圧異常が発生していなければ、情報処理装置6を流れる電源電流は、情報処理装置6Aを流れる電源電流とほぼ等しい。
また、電源の投入に応答して、攻撃検出装置1の電源指紋認証部20および攻撃検出装置1Aの電源指紋認証部20Aは、ほぼ同時に電源電流の検出を開始する(ステップS5)。電源電流の検出および通信確立処理は電源の投入に応答して行われるので、これらはほぼ同時に開始される。図15の態様では、電源指紋認証部20および電源指紋認証部20Aは情報処理装置6Aを流れる電源電流を検出するので、電源指紋認証部20および電源指紋認証部20Aは、通信確立処理において情報処理装置6Aを流れる電源電流の電流パターンを取得する。
電子機器100および不正負荷回路6’はほぼ同時に通信確立処理を終了し、この通信確立処理の終了に応答して、電源指紋認証部20および電源指紋認証部20Aは電流検出を停止する(ステップS8)。そして、電子機器100および不正負荷回路6’はステップS8からステップS12までの一連の処理を実行する。
さて、情報処理装置6Aを流れる電源電流は、正規の情報処理装置6を流れる電源電流と等しいので、電源指紋認証部20が通信確立処理において取得した電流パターンは、通信確立処理に対応した正規の電流パターンとほぼ一致する。
したがって、電源指紋認証部20および電源指紋認証部20Aの各々は、取得した電流パターンが、通信確立処理に対応した基準パターンに類似すると判定する(ステップS9)。
よって、不正な第三者が電子機器100の通信確立処理中に不正電源回路5’を用いて情報処理装置6へと攻撃を行っていたとしても、攻撃検出装置1の電源指紋認証部20はその攻撃を検出することができない。
次に、電子機器100の情報処理装置6および不正負荷回路6’の情報処理装置6AはステップS13からステップS24までの一連の処理をほぼ同時に実行する。つまり、情報処理装置6および情報処理装置6Aはほぼ同時に、暗号開始信号をそれぞれ攻撃検出装置1および攻撃検出装置1Aに出力し(ステップS13)、その暗号開始信号に応答して、ほぼ同時にプログラム認証処理(ステップS14)を開始する(図16も参照)。
攻撃検出装置1および攻撃検出装置1Aは、それぞれ、情報処理装置6および情報処理装置6Aからほぼ同時に暗号開始信号を受信するので、攻撃検出装置1の電源指紋認証部20および攻撃検出装置1Aの電源指紋認証部20Aはほぼ同時に電源電流の検出(ステップS18)を開始する(図16も参照)。
以上のように、情報処理装置6Aは暗号開始信号に応答してプログラム認証処理を開始する。電源指紋認証部20および電源指紋認証部20Aもそれぞれ暗号開始信号に応答して開始する。情報処理装置6および情報処理装置6Aにおける暗号開始信号の送信タイミングはほぼ一致するので、電源指紋認証部20および電源指紋認証部20Aの各々において、電源電流の検出の開始タイミングは情報処理装置6Aのプログラム認証処理の開始タイミングとはほぼ一致する。よって、電源指紋認証部20および電源指紋認証部20Aは情報処理装置6Aのプログラム認証処理における電流パターンを取得できる。
情報処理装置6Aを流れる電源電流は、正規の情報処理装置6を流れる電源電流と等しいので、電源指紋認証部20および電源指紋認証部20Aが取得した電流パターンは、正規の電流パターンとほぼ一致する。したがって、電源指紋認証部20および電源指紋認証部20Aの各々は、取得した電流パターンが、プログラム認証処理に対応した基準パターンに類似すると判定する(ステップS21)。
よって、不正な第三者が情報処理装置6によるプログラム認証処理中に不正電源回路5’を用いて情報処理装置6へと攻撃を行っていたとしても、攻撃検出装置1の電源指紋認証部20はこの攻撃を検出できない。
そこで、第3の実施の形態では、このような攻撃を検出することを企図する。第3の実施の形態にかかる電子機器100の構成の一例は図1と同様である。ただし、情報処理装置6の制御部62はプログラム認証処理の開始タイミングを、乱数生成器66によって生成された乱数に基づいて決定する。
不正負荷回路6’の情報処理装置6Aは情報処理装置6と同一の動作を行うので、情報処理装置6Aの制御部62Aもプログラム認証処理の開始タイミングを、乱数生成器66Aによって生成された乱数に基づいて決定する。乱数生成器66Aは乱数生成器66とは独立して動作するので、乱数生成器66が生成した乱数とは異なる乱数を生成する。よって、情報処理装置6におけるプログラム認証処理の開始タイミングは情報処理装置6Aにおけるプログラム認証処理の開始タイミングと相違する。
図17は、第3の実施の形態にかかる電子機器100の動作の一例を示すフローチャートである。電子機器100は第1の実施の形態と同様に、図7のステップS1からステップS12までの一連の処理を実行するものの、図17では、紙面の都合上、これらのステップを省略している。
ここでは一例として、まず、電源指紋認証部20および電源指紋認証部20Aが基準パターンを時間軸上でずらさずに電流パターンと基準パターンとの類否判定を行う場合について述べ、基準パターンを時間軸上でずらして類否判定を行う場合についてはその後に述べる。
図18は、電子機器100および不正負荷回路6’の動作タイミングの一例を概略的に示す図である。ここでは、不正な第三者が電子機器100および不正負荷回路6’に対してほぼ同時に電源を投入する(ステップS1)ので、電子機器100および不正負荷回路6’がほぼ同時にステップS1からステップS24までの一連の処理を実行する。図18の例では、電源の投入(ステップS1)、通信確立処理(ステップS6およびステップS7)、および、電源電流の検出(ステップS5)のタイミングが示されている。
図18に例示するように、電子機器100および不正負荷回路6’は通信確立処理(ステップS6およびステップS7)および電源電流(ステップS5)の検出をほぼ同時に行う。この場合には、上述したように、電源指紋認証部20は通信確立処理中の攻撃を検出できない。なお、電子機器100における通信確立処理の開始タイミングと、不正負荷回路6’における通信確立処理の開始タイミングをずらすことにより、電源指紋認証部20による攻撃検出が可能となるものの、この点については後に述べる。
図17を参照して、例えば通信確立処理が終了した後に、ステップS40にて、情報処理装置6の制御部62は乱数生成器66に乱数を生成させる。次にステップS41にて、制御部62は、乱数生成器66が生成した乱数に基づいて、プログラム認証処理の開始タイミングを決定する。制御部62は例えば乱数が大きいほど、プログラム認証処理の開始タイミングを遅いタイミングに決定する。
不正負荷回路6’も電子機器100と同様に動作するので、ステップS40にて、制御部62Aは乱数生成器66Aに乱数を生成させる。ただし、乱数生成器66Aは乱数生成器66と独立して動作しているので、乱数生成器66の乱数とは異なる乱数を生成する。次にステップS41にて、制御部62Aは、乱数生成器66Aが生成した乱数に基づいて、プログラム認証処理の開始タイミングを決定する。
乱数生成器66および乱数生成器66Aは互いに異なる乱数を生成するので、情報処理装置6および情報処理装置6Aが実行するプログラム認証処理の開始タイミングは互いに相違する。
次にステップS13にて、制御部62は、プログラム認証処理を開始する際に、暗号開始信号を攻撃検出装置1に送信する。その後、ステップS14からステップS24までの一連の処理が行われる。具体的には、情報処理装置6の制御部62は暗号開始信号に応答して、プログラム認証処理を開始し(ステップS14)、攻撃検出装置1の電源指紋認証部20は暗号開始信号に応答して、電源電流の検出を開始する(ステップS18)。よって、電源指紋認証部20は情報処理装置6によるプログラム認証処理の開始とほぼ同時に電源電流の検出を開始する。図18に例示するように、電子機器100において、プログラム認証処理の期間と電源電流の検出の期間が互いに一致している。ただし、ここでは、図15の態様で不正な第三者が攻撃を行っている場合を想定しているので、電源指紋認証部20は情報処理装置6ではなく、情報処理装置6Aの電源電流を検出する。
情報処理装置6Aの制御部62Aも、プログラム認証処理を開始する際に、暗号開始信号を攻撃検出装置1Aに送信する(ステップS13)。ただし、制御部62Aによるプログラム認証処理の開始タイミングは制御部62によるプログラム認証処理に開始タイミングと相違するので、情報処理装置6Aによる暗号開始信号の送信タイミングも、情報処理装置6による暗号開始信号の送信タイミングとは相違する。図18の例では、不正負荷回路6’の情報処理装置6Aは、電子機器100の情報処理装置6による暗号開始信号の送信タイミングよりも遅いタイミングで、暗号開始信号を送信する。
情報処理装置6Aの制御部62Aは暗号開始信号に応答して、プログラム認証処理を開始し(ステップS14)、攻撃検出装置1Aの電源指紋認証部20Aは暗号開始信号に応答して、電源電流の検出を開始する(ステップS18)。よって、電源指紋認証部20Aは情報処理装置6Aによるプログラム認証処理の開始とほぼ同時に電源電流の検出を開始する。図18に例示するように、不正負荷回路6’において、プログラム認証処理の期間と電源電流の検出の期間が互いに一致している。電源指紋認証部20Aは情報処理装置6Aの電源電流を検出する(図15)ので、プログラム認証処理に対応した電流パターンを取得する。よって、この場合には、電源指紋認証部20Aは電流パターンが基準パターンに類似すると判定する。
一方、不正な第三者が図15の態様で攻撃を行っている場合、攻撃検出装置1の電源指紋認証部20も情報処理装置6Aの電源電流を検出する。この電源指紋認証部20は上述のように、情報処理装置6Aではなく、情報処理装置6からの暗号開始信号の受信に応答して電源電流の検出を開始する。よって、電源指紋認証部20の電源電流の開始タイミングは、情報処理装置6Aのプログラム認証処理の開始タイミングと相違する。図18の例では、電子機器100の電源指紋認証部20は、不正負荷回路6’の情報処理装置6Aによるプログラム認証処理よりも前に、情報処理装置6Aの電源電流の検出を開始する。
したがって、電源指紋認証部20が取得する電流パターンは、プログラム認証処理に対応した基準パターンと時間軸においてずれる。よって、電源指紋認証部20は電流パターンが基準パターンと類似していないと判定し、その判定結果を処理回路11に出力する。つまり、電源指紋認証部20は図15の態様での攻撃を実質的に検出することができる。
処理回路11は第1の実施の形態と同様に、電流パターンが基準パターンと類似していないときに、攻撃検出信号を制御部12に出力し、制御部12は攻撃検出信号の入力に応答して、情報処理装置6による次の処理の実行を禁止する。
以上のように、不正な第三者が、攻撃検出装置1Aおよび情報処理装置6Aを含む不正負荷回路6’を用いて情報処理装置6に対して攻撃を行ったとしても、攻撃検出装置1はその攻撃を検出することができる。したがって、情報処理装置6の安全性をさらに向上することができる。
なお上述の例では、通信確立処理のトリガとして電源の投入を採用している。よって、通信確立処理の開始タイミングは電源の投入タイミングを基準として予め決定され得る。しかしながら、電子機器100は通信確立処理の開始タイミングを乱数に基づいて決定してもよい。例えば情報処理装置6の制御部62は電源の投入に応答して、乱数生成器66に乱数を生成させる。制御部62はこの乱数に基づいて通信確立処理の開始タイミングを決定し、通信部61を介して、その開始タイミングを攻撃検出装置1に通知してもよい。例えば制御部62は、通信確立処理用の暗号開始信号を攻撃検出装置1に送信する。攻撃検出装置1はその暗号開始信号に応答して、通信確立処理および電源電流の検出を開始すればよい。
これによれば、不正な第三者が、攻撃検出装置1Aおよび情報処理装置6Aを含む不正負荷回路6’を用いたとしても、情報処理装置6および情報処理装置6Aにおける通信確立処理の開始タイミングは互いに相違する。したがって、攻撃検出装置1はその攻撃を検出することができる。
また、上述の例では、暗号開始信号の送信タイミングは通信確立処理またはプログラム認証処理の開始タイミングそのものを示しており、当該開始タイミングに応じて変化する。よって、不正な第三者が通信を傍受することにより、暗号開始信号の送信タイミングに基づいて、通信確立処理またはプログラム認証処理の開始タイミングを推察できるおそれがある。
そこで、ここでは、不正な第三者が通信ラインL2の信号を傍受した場合に、通信確立処理またはプログラム認証処理の開始タイミングをより確実に秘匿することを企図する。
図19は、攻撃検出装置1の内部構成の一例を概略的に示す図である。攻撃検出装置1の処理部10はタイマ18をさらに含んでいる。図19の例では、タイマ18はバス17に接続されている。タイマ18は時間を計測することができる。
以下では、代表的にプログラム認証処理について述べる。
情報処理装置6の制御部62は、上述と同様に、プログラム認証処理の開始タイミングを乱数に基づいて決定する。ただし、制御部62は、電源の投入タイミングを基準として予め決められた送信タイミングで暗号開始信号を攻撃検出装置1に送信する。以下、具体的に説明する。
図20は、電子機器100の動作の一例を示すフローチャートである。ステップS50にて、情報処理装置6の乱数生成器66は乱数を生成し、当該乱数を制御部62に出力する。次にステップS51にて、制御部62は当該乱数に基づいて遅延時間を算出する。ここでいう遅延時間は、暗号開始信号の送信タイミングからプログラム認証処理の開始タイミングまでの時間を示す。制御部62は、例えば、当該乱数に対して所定の関数を適用して遅延時間を算出する。
次にステップS13’にて、制御部62は通信部61を介して、開始信号および乱数を攻撃検出装置1に送信する。ここでは暗号通信を行うので、暗号復号器64は開始信号および乱数に対して暗号化処理を実行して、暗号開始信号および暗号乱数信号を生成し、これらを制御部62に出力する。制御部62は通信部61を介して暗号開始信号および暗号乱数信号を攻撃検出装置1に送信する。
次にステップS52にて、制御部62はステップS13’の送信処理から遅延時間が経過したか否かを判定する。制御部62はタイマ69を用いてこの判定を行う。未だ遅延時間が経過していないときには、制御部62は再びステップS52の処理を実行する。遅延時間が経過しているときには、ステップS14にて、制御部62はプログラム認証処理を実行する。
一方、ステップS53にて、攻撃検出装置1の処理回路11は通信部14を介して開始信号および乱数を受信し、その乱数に基づいて遅延時間を算出する。ここでは暗号通信が行われているので、処理回路11は通信部14を介して暗号開始信号および暗号乱数信号を受信し、これらを暗号復号器15に出力する。暗号復号器15は暗号開始信号および暗号乱数信号に対して復号処理を実行して、開始信号および乱数を生成する。処理回路11は当該乱数に対して、制御部62が用いた上記所定の関数を適用して遅延時間を算出する。
次にステップS54にて、処理回路11は暗号開始信号の受信から遅延時間が経過したか否かを判定する。処理回路11はタイマ18を用いてこの判定を行う。未だ遅延時間が経過していないときには、処理回路11はステップS54の処理を再び実行する。遅延時間が経過しているときには、ステップS15にて、処理回路11は電源指紋認証部20に起動信号を出力する。
これによれば、電源指紋認証部20は情報処理装置6のプログラム認証処理の開始とほぼ同じタイミングで電源電流の検出を開始することができる。以後、電子機器100はステップS16からステップS24までの一連の処理を実行する。
不正な第三者が図15の態様で攻撃を行った場合、不正負荷回路6’も図20のフローチャートに沿って動作する。図21は、電子機器100および不正負荷回路6’の動作タイミングの一例を概略的に示す図である。
情報処理装置6Aの乱数生成器66Aおよび情報処理装置6の乱数生成器66は互いに独立して動作するので、ステップS50において乱数生成器66および乱数生成器66Aが生成する乱数は互いに相違する。よって、情報処理装置6および情報処理装置6Aにおけるプログラム認証処理の開始タイミングは互いに相違する。図21の例では、不正負荷回路6’の情報処理装置6Aは、電子機器100の情報処理装置6におけるプログラム認証処理の開始タイミングよりも遅れて、プログラム認証処理を開始している。
攻撃検出装置1の電源指紋認証部20は情報処理装置6におけるプログラム認証処理とほぼ同時に開始するものの、図15の態様では、情報処理装置6Aを流れる電源電流を検出する。情報処理装置6Aのプログラム認証処理の実行期間は情報処理装置6のプログラム認証処理の実行期間と相違するので、電源指紋認証部20が検出した電源電流によって構成される電流パターンは、正規の電流パターン(つまり基準パターン)と時間軸においてずれる。よって、電源指紋認証部20は電流パターンが基準パターンと類似していないと判定し、その判定結果を処理回路11に出力する。
以上のように、図20の動作によっても、攻撃検出装置1は図15の態様での攻撃を検出することができる。
しかも、ステップS13’における送信タイミングは、電源の投入タイミングを基準として予め決まっている(図21も参照)。よって、不正な第三者が暗号開始信号および暗号乱数信号を傍受したとしても、これらの信号を解読できない以上、不正な第三者はプログラム認証処理の開始タイミングをこれらの信号の送信タイミングに基づいて特定することは難しい。言い換えれば、プログラム認証処理の開始タイミングをより確実に秘匿することができる。
次に、電源指紋認証部20および電源指紋認証部20Aが基準パターンを時間軸上でずらして電流パターンと基準パターンとの類否判定を行う場合について述べる(図11)。この場合、電源指紋認証部20および電源指紋認証部20Aは開始タイミングの若干のずれを吸収して類否判定を行うことができる。そこで、この場合には、制御部62および制御部62Aはプログラム認証処理の開始タイミングを乱数値に基づいて大幅に変動させるとよい。具体的には、乱数値に応じた開始タイミングの変動範囲を、攻撃対象処理(例えばプログラム認証処理)の実行期間よりも大きな値、例えば当該実行期間よりも数十倍(例えば10倍、より好ましくは20倍)以上の値に設定する。当該実行期間としては、例えば、暗号開始信号の受信から暗号終了信号の受信までの期間を採用してもよい。
このように開始タイミングの変動範囲を大きく設定することにより、情報処理装置6におけるプログラム認証処理の開始タイミングと、情報処理装置6Aにおけるプログラム認証処理の開始タイミングとの間のタイミング差が大きくなる可能性を高めることができる。言い換えれば、両プログラム認証処理が時間軸上において重なる確率が非常に小さくなるように、開始タイミングの変動範囲を設定することができる。
さて、不正な第三者が図15の態様で攻撃を行っている場合には、電源指紋認証部20は、情報処理装置6によるプログラム認証処理の実行期間において、情報処理装置6Aを流れる電流を検出する。よって、情報処理装置6Aのプログラム認証処理が情報処理装置6のプログラム認証処理と時間軸上において重ならない場合には、電源指紋認証部20はプログラム認証処理中の電流パターンを得ることができない。したがってこの場合、電源指紋認証部20は基準パターンが電流パターンと類似していないと判定する。これにより、処理回路11は情報処理装置6が攻撃を受けていると判定する。言い換えれば、攻撃検出装置1は図15の態様での攻撃を検出することができる。
第4の実施の形態.
第4の実施の形態にかかる電子機器100の構成は図1と同様である。ただし、第4の実施の形態では、電源ラインL1の電源電圧または電源電流に生じるノイズに起因した攻撃の誤検出を抑制する。
図22は、攻撃検出装置1の動作の一例を示すフローチャートである。まず、ステップS60にて、処理回路11は、電圧攻撃検出部30が電源ラインL1の電源電圧における攻撃用の電圧異常を検出したか否かを判定する。電圧異常を検出していないときには、再びステップS60の処理を実行する。
電圧異常を検出したときには、ステップS61にて、処理回路11は攻撃による電圧異常の検出回数を計数し、その検出回数を記憶部13に記憶する。この記憶部13は不揮発性の記憶媒体である。より具体的には、処理回路11は、記憶部13に記憶された検出回数をインクリメントして更新する。なお、電圧異常は、グリッチおよび電圧異常レベルなどの複数の異常を含む。処理回路11は、電圧異常の種類ごとに検出回数を計数してもよく、種類に依存せずに検出回数を計数してもよい。
次にステップS62にて、処理回路11は検出回数が所定の回数基準値よりも大きいか否かを判定する。電圧異常の種類ごとに検出回数を計数している場合には、処理回路11は、その種類ごとに、検出回数が回数基準値よりも大きいか否かを判定してもよい。回数基準値は例えば予め設定され、例えば記憶部13に記憶されている。
いずれの種類においても、検出回数が回数基準値以下であるときには、情報処理装置6が攻撃を受けているかどうかは不明として、処理回路11は再びステップS60を実行する。
一方で、いずれかの種類において、検出回数が回数基準値よりも大きいときには、処理回路11は情報処理装置6が攻撃を受けていると判定して攻撃検出信号を制御部12に出力し、制御部12は情報処理装置6による次の処理の実行を禁止する。
第4の実施の形態によれば、複数回の電圧異常を検出したときに、攻撃検出装置1は情報処理装置6が攻撃を受けたと判定する。よって、ノイズが電源電圧に生じたとしても、このノイズによる攻撃の誤検出を抑制することができる。
しかも、処理回路11は検出回数を不揮発性の記憶部13に記憶する。よって、電子機器100への電源が遮断された場合、あるいは、電子機器100が再起動された場合でも、電源遮断前あるいは再起動前の電源異常の検出を検出回数に反映することができる。故障攻撃においては、不正な第三者が電子機器100に対して何度も電源を投入し直したり、または、電子機器100を何度も再起動する場合がある。このような場合でも、攻撃検出装置1は検出回数を適切に計数することができるので、より適切に攻撃を検出することができる。
以上のように、電子機器100は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種実施の形態は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この電子機器100の範囲から外れることなく想定され得るものと解される。