(57)【要約】  検証方法は、ファズデータが与えられたテストデバイスからのサイドチャネル情報を受信するステップＳ２と、受信されたサイドチャネル情報に基づいて、テストデバイスの動作を検証するステップＳ３と、を備える。
2019168167.tif 000002
【特許請求の範囲】
【請求項１】
ファズデータが与えられたテストデバイスからのサイドチャネル情報を受信するステップと、
受信された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証するステップと、
を備える、検証方法。
【請求項２】
前記テストデバイスの動作を検証するステップは、前記テストデバイスの異常動作を検出することを含む
請求項１に記載の検証方法。
【請求項３】
前記異常動作の検出は、前記異常動作の有無の検出と、前記異常動作の種別の検出と、の少なくとも一方である、
請求項２に記載の検証方法。
【請求項４】
前記サイドチャネル情報は、前記動作中の前記テストデバイスから漏えいする電磁波と、前記テストデバイスの消費電力と、の少なくも一方である、
請求項１〜請求項３のいずれか一項に記載の検証方法。
【請求項５】
前記検証するステップは、受信された前記サイドチャネル情報と、データベースに格納されている基準サイドチャネル情報とを比較するステップを含む、
請求項１〜請求項４のいずれか一項に記載の検証方法。
【請求項６】
前記データベースは、異常動作時及び正常動作時のうちの少なくとも一方の基準サイドチャネル情報を格納しており、
前記比較するステップで、受信された前記サイドチャネル情報と前記データベースに格納されている基準サイドチャネル情報とを比較することによって、前記検証するステップで前記テストデバイスでの異常動作の有無を検出する、
請求項５に記載の検証方法。
【請求項７】
前記データベースは、異常動作の種別ごとの基準サイドチャネル情報を格納しており、
前記比較するステップで、受信された前記サイドチャネル情報と前記異常動作の種別ごとの基準サイドチャネル情報とを比較することによって、前記検証するステップで前記テストデバイスでの異常動作の種別を検出する、
請求項５に記載の検証方法。
【請求項８】
前記データベースは、テストデバイスの種別ごとの基準サイドチャネル情報を格納しており、
前記比較するステップでは、受信された前記サイドチャネル情報と、前記データベースに格納されている基準サイドチャネル情報のうちの前記テストデバイスの種別に応じた基準サイドチャネル情報とを比較する、
請求項５〜請求項７のいずれか一項に記載の検証方法。
【請求項９】
前記サイドチャネル情報は時系列データであって、
前記比較するステップでは、受信された前記サイドチャネル情報の全体よりも少ない一部である、前記サイドチャネル情報のうちの規定された期間に応じた情報と、前記データベースに格納されている基準サイドチャネル情報とを比較する、
請求項５〜請求項８のいずれか一項に記載の検証方法。
【請求項１０】
前記サイドチャネル情報は、前記テストデバイスに対する特定の位置から測定される情報であり、
前記データベースは、テストデバイスに対する位置ごとに基準サイドチャネル情報を格納しており、
前記比較するステップでは、受信された前記サイドチャネル情報と、前記データベースに格納されている、前記サイドチャネル情報を受信した前記テストデバイスに対する位置に応じた基準サイドチャネル情報とを比較する、
請求項５〜請求項９のいずれか一項に記載の検証方法。
【請求項１１】
前記検証するステップは、サイドチャネル情報が入力されると、異常動作時のサイドチャネル情報であるか、正常動作時のサイドチャネル情報であるか、を出力するよう学習された学習モデルに、受信された前記サイドチャネル情報を入力し、その出力を得るステップを含む
請求項１〜請求項４のいずれか一項に記載の検証方法。
【請求項１２】
前記学習モデルは、
サイドチャネル情報から求められた特徴量に基づいて動作の種類を分類する第１モデルと、
前記特徴量が与えられ、前記特徴量から、異常動作時のサイドチャネル情報であるか、正常動作時のサイドチャネル情報であるかを判定する第２モデルと、を含む
請求項１１に記載の検証方法。
【請求項１３】
前記異常動作は演算異常を含む、
請求項１〜請求項１２のいずれか一項に記載の検証方法。
【請求項１４】
前記テストデバイスは、車載制御装置を含む、
請求項１〜請求項１３のいずれか一項に記載の検証方法。
【請求項１５】
ファズデータが与えられたテストデバイスからのサイドチャネル情報の入力を受け付けるインタフェースと、
前記インタフェースを介して入力された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証する処理部と、
を備える、検証装置。
【請求項１６】
テストデバイスの動作を検証する検証装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
ファズデータが与えられた前記テストデバイスからのサイドチャネル情報の入力を受け付ける入力部、及び、
前記入力部を介して入力された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証する処理部、として機能させる、
コンピュータプログラム。
【請求項１７】
ファズデータが与えられたテストデバイスからのサイドチャネル情報を測定する測定装置と、
前記測定装置から入力された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証する検証装置と、
を備える、検証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、検証方法、検証装置、コンピュータプログラム、及び、検証システムに関する。
【背景技術】
【０００２】
電子機器は、セキュリティの脆弱性を有すると、いわゆるサイバー攻撃と呼ばれる、第三者からの不正に入力されたデータに従って、異常動作する場合がある。異常動作とは、動作不能となったり、本来の動作とは異なる動作をとったりすることを指す。【０００３】
従って、電子機器のセキュリティ対策として、このような異常動作の原因となる電子機器のソフトウェアの欠陥を検出することが重要である。そのための手法として、ファッジングテストが知られている。ファッジングテストは、テスト対象の電子機器に対して様々なデータを網羅的に送付し、異常動作の有無を検出するブラックボックステスト手法である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｄｅｎｎｉｓ  Ｋｅｎｇｏ  Ｏｋａ、外３名、「Ｈｏｗ  ｔｏ  Ｅｎａｂｌｅ  Ｃｙｂｅｒ  Ｓｅｃｕｒｉｔｙ  Ｔｅｓｔｉｎｇ  ｏｆ  Ａｕｔｏｍｏｔｉｖｅ  ＥＣＵｓ  ｂｙ  Ａｄｄｉｎｇ  Ｍｏｎｉｔｏｒｉｎｇ  Ｃａｐａｂｉｌｉｔｉｅｓ」、暗号と情報セキュリティシンポジウム（２０１７年１月２４日―２７日）論文集、ｐ１−ｐ８
【発明の概要】
【０００５】
昨今、外部からデータ入力を受け付けて動作する様々な電子機器がある。電子機器の中には、表示部などの出力部を有しておらず、動作状況が外部に現れないものがある。また、車両の非常ブレーキ動作のためのＥＣＵ（Electronic  Control  Unit）のように、外部への動作頻度が低い装置もある。外部への動作頻度が低いと、電子機器が内部的には異常動作をしていても、その異常動作が、外部に異常として現れることは少ない。
【０００６】
このような電子機器をファッジングテストの対象とする場合、異常動作が外部に現れにくいため異常動作の有無を検出し難い。そのため、従来のファッジングテストによっては電子機器の検証をし難い場合がある。
【０００７】
この点、２０１７年に「暗号と情報セキュリティシンポジウム」で発表された上記の論文（非特許文献１）は、ファッジングテストの対象とする電子機器と同じ動作を行なうハードウェアシミュレータを用いて、対象とする電子機器と同じデータを入力したときのハードウェアシミュレータの動作と対象とする電子機器の動作とを比較することによって、対象とする電子機器（テストデバイス）の検証手法を提案している。しかしながら、この手法では、ハードウェアシミュレータを用いることによるコストアップや煩雑さが課題となる。したがって、テストデバイスの検証をより簡易にすることが望まれる。
【０００８】
ある実施の形態に従うと、検証方法は、ファズデータが与えられたテストデバイスからのサイドチャネル情報を受信するステップと、受信されたサイドチャネル情報に基づいて、テストデバイスの動作を検証するステップと、を備える。
【０００９】
他の実施の形態に従うと、検証装置は、ファズデータが与えられたテストデバイスからのサイドチャネル情報の入力を受け付けるインタフェースと、インタフェースを介して入力されたサイドチャネル情報に基づいて、テストデバイスの動作を検証する処理部と、を備える。
【００１０】
他の実施の形態に従うと、コンピュータプログラムは、テストデバイスの動作を検証する検証装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、ファズデータが与えられたテストデバイスからのサイドチャネル情報の入力を受け付ける入力部、及び、入力部を介して入力されたサイドチャネル情報に基づいて、テストデバイスの動作を検証する処理部、として機能させる。
【００１１】
他の実施の形態に従うと、検証システムは、ファズデータが与えられたテストデバイスからのサイドチャネル情報を測定する測定装置と、測定装置から入力されたサイドチャネル情報に基づいて、テストデバイスの動作を検証する検証装置と、を備える。
【図面の簡単な説明】
【００１２】
【図１】図１は、検証システムの構成及び検証方法の一例を示した図である。
【図２】図２は、検証装置の構成を説明するための図である。
【図３】図３は、検証装置の制御部が実行する処理を表わしたブロック図である。
【図４】図４は、正常時電磁波データベースの具体例を表わした図である。
【図５】図５は、検証装置における異常動作検出処理の流れの一例を表わしたフローチャートである。
【図６】図６は、異常時電磁波データベースの具体例を表わした図である。
【図７】図７は、検証装置における異常動作検出処理の流れの他の例を表わしたフローチャートである。
【図８】図８は、異常時電磁波データベースの他の例を表わした図である。
【図９】図９は、検証装置における異常動作検出処理の流れの他の例を表わしたフローチャートである。
【図１０】図１０は、実施例１での、テストデバイスへの入力信号（Ａ）と検出された電磁波波形（Ｂ）との一例を示した図である。
【図１１】図１１は、図１０の第６のフレーム以降の入力信号（Ａ）と検出された電磁波波形（Ｂ）との拡大図である。
【図１２】図１２は、図１１の第６のフレーム入力直後に検出された電磁波の拡大図である。
【図１３】図１３は、実施例２での、テストデバイスへの入力信号（Ａ）と検出された電磁波波形（Ｂ）との他の例を示した図である。
【図１４】プローブの配置の一例を説明するための図である。
【図１５】テストデバイスに対する位置ごとの正常時電磁波データベースの一例を表わした図である。
【図１６】検証装置における異常動作検出処理の流れの他の例を表わしたフローチャートである。
【図１７】図１７は、第７の実施の形態に係る検証装置の制御部が実行する処理を表わしたブロック図である。
【図１８】図１８は、図１７の分類器の構造、及び、分類器の学習方法を模式的に示した図である。
【発明を実施するための形態】
【００１３】
［１．検証方法、検証装置、及び、コンピュータプログラムの概要］
【００１４】
（１）本実施の形態に含まれる検証方法は、ファズデータが与えられたテストデバイスからのサイドチャネル情報を受信するステップと、受信されたサイドチャネル情報に基づいて、テストデバイスの動作を検証するステップと、を備える。ここでのサイドチャネル情報は、サイドチャネル攻撃（side-channel  attack）と呼ばれる暗号解読方法において、暗号解読のために取得されるサイドチャネル情報と同義である。すなわち、サイドチャネル情報は、テストデバイスにおけるデータの正規の入出力チャネル以外のチャネル（サイドチャネル）から得られる情報である。サイドチャネル情報は、たとえば、電磁波、消費電力、温度、音、などである。テストデバイスの動作の検証は、たとえば、ファジングにおいて行われる検証と同様でよく、たとえば、テストデバイスにおける未知の脆弱性についての検証である。未知の脆弱性の検証は、たとえば、異常動作の検出である。
【００１５】
サイドチャネル情報に基づいて動作を検証する方法によって、テストデバイスとは異なる検証用のハードウェアシミュレータを別途設ける場合と比較してコストアップを回避できるとともに、ハードウェアシミュレータの動作とテストデバイスの動作との同一性を検証する必要がないため、検証作業を簡略化することができる。
【００１６】
（２）好ましくは、テストデバイスの動作を検証するステップは、テストデバイスの異常動作を検出することを含む。異常動作は、制御信号で指示された動作とは異なる異常動作の他、たとえば、零で除する演算を行う演算動作、負数の平方根を算出する演算動作、バッファのオーバーフローに伴う動作、及び、ウォッチドッグタイマーの満了、などである。これにより、テストデバイスの異常動作を容易に検出することができる。
【００１７】
（３）好ましくは、異常動作の検出は、異常動作の有無の検出と、異常動作の種別の検出と、の少なくとも一方である。この方法によって、異常動作の有無の検出と、異常動作の種別の検出と、の少なくとも一方を容易に検出することができる。
【００１８】
（４）好ましくは、サイドチャネル情報は、動作中のテストデバイスから漏えいする電磁波と、テストデバイスの消費電力と、の少なくも一方である。この方法によって、サイドチャネル情報として電磁波又はテストデバイスの消費電力を用いて、簡易な装置で高精度にテストデバイスの異常動作を検出することができる。
【００１９】
（５）好ましくは、検証方法は、検証するステップは、受信されたサイドチャネル情報と、データベースに格納されている基準サイドチャネル情報とを比較するステップを含む。この方法によって、容易な処理で高精度に異常動作を検出することができる。
【００２０】
（６）好ましくは、データベースは、異常動作時及び正常動作時のうちの少なくとも一方の基準サイドチャネル情報を格納しており、比較するステップで、受信されたサイドチャネル情報とデータベースに格納されている基準サイドチャネル情報とを比較することによって、検証するステップでテストデバイスでの異常動作の有無を検出する。この方法によって、容易に異常動作の有無を検出することができる。
【００２１】
（７）好ましくは、データベースは、異常動作の種別ごとのサイドチャネル情報を格納しており、比較するステップで、受信されたサイドチャネル情報と異常動作の種別ごとの基準サイドチャネル情報とを比較することによって、検証するステップでテストデバイスでの異常動作の種別を検出する。この方法によって、容易に異常動作の種別を検出することができる。
【００２２】
（８）好ましくは、データベースは、テストデバイスの種別ごとの基準サイドチャネル情報を格納しており、比較するステップでは、受信されたサイドチャネル情報と、データベースに格納されている基準サイドチャネル情報のうちのテストデバイスの種別に応じた基準サイドチャネル情報とを比較する。テストデバイスの種別は、テストデバイスの製品種別でもよいし、テストデバイスの製造メーカ種別でもよいが、これらに限定されない。この方法によって、テストデバイスの種別に応じて、より高精度に異常動作を検出することができる。
【００２３】
（９）好ましくは、サイドチャネル情報は時系列データであって、比較するステップでは、受信されたサイドチャネル情報の全体よりも少ない一部である、受信されたサイドチャネル情報のうちの規定された期間に応じた情報と、データベースに格納されている基準サイドチャネル情報とを比較する。これにより、受信されたサイドチャネル情報の全体を用いるよりも検出処理を容易にできるとともに、検出処理に用いる範囲を限定することによって検出精度を向上させることができる。
【００２４】
（１０）好ましくは、サイドチャネル情報は、テストデバイスに対する特定の位置から測定される情報であり、データベースは、テストデバイスに対する位置ごとに基準サイドチャネル情報を格納しており、比較するステップでは、受信されたサイドチャネル情報と、データベースに格納されている、チャネル情報を受信したテストデバイスに対する位置に応じた基準サイドチャネル情報とを比較する。テストデバイスに対する位置は、たとえば、テストデバイスのメモリが搭載された位置、ＣＰＵが搭載された位置、などである。テストデバイスに対する特定の位置から測定されるサイドチャネル情報は、たとえば、漏えいした電磁波、消費電力量、熱、音、などである。これにより、テストデバイスの位置ごとに、その位置に搭載された装置の異常動作を検出することができる。
【００２５】
（１１）好ましくは、検証するステップは、サイドチャネル情報が入力されると、異常動作時のサイドチャネル情報であるか、正常動作時のサイドチャネル情報であるか、を出力するよう学習された学習モデルに、受信されたサイドチャネル情報を入力し、その出力を得るステップを含む。この方法によって、容易な処理で高精度に異常動作を検出することができる。
【００２６】
（１２）好ましくは、学習モデルは、サイドチャネル情報から求められた特徴量に基づいて動作の種類を分類する第１モデルと、特徴量が与えられ、特徴量から、異常動作時のサイドチャネル情報であるか、正常動作時のサイドチャネル情報であるかを判定する第２モデルと、を含む。第１モデルは、例えば、一次元畳み込みニューラルネットワーク（１Ｄ−ＣＮＮ）である。第２モデルは、例えば、Ｏｎｅ  ｃｌａｓｓ  ＳＶＭ（Support Vector Machine）などの分類アルゴリズムである。学習モデルは、いわゆる転移学習と呼ばれる学習方法によって学習される。このように機械学習された学習モデルを用いることによって、容易な処理で高精度に異常動作を検出することができる。
【００２７】
（１３）好ましくは、検出される異常動作は演算異常を含む。演算異常は、たとえば、零で除する演算、負数の平方根を算出する演算、などである。この方法により、テストデバイスにおける演算異常がチャネル情報を用いて容易に検出される。
【００２８】
（１４）好ましくは、テストデバイスは、車載制御装置を含む。これにより、この検証方法を用いて車載制御装置の動作を検証することができる。
【００２９】
（１５）本実施の形態に含まれる検証装置は、ファズデータが与えられたテストデバイスからのサイドチャネル情報の入力を受け付けるインタフェースと、インタフェースを介して入力されたサイドチャネル情報に基づいて、テストデバイスの動作を検証する処理部と、を備える。この検証装置は（１）〜（１４）の検証方法を採用した装置であるため、（１）〜（１４）に記載の検証方法と同様の効果を奏する。
【００３０】
（１６）本実施の形態に含まれるコンピュータプログラムはテストデバイスの動作を検証する検証装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータを、ファズデータが与えられたテストデバイスからのサイドチャネル情報の入力を受け付ける入力部、及び、入力部を介して入力されたサイドチャネル情報に基づいて、テストデバイスの動作を検証する処理部、として機能させる。このコンピュータプログラムは、コンピュータに（１）〜（１４）の検証方法を実行させるものであるため、（１）〜（１４）に記載の検証方法と同様の効果を奏する。
【００３１】
（１６）本実施の形態に含まれる検証システムは、ファズデータが与えられたテストデバイスからのサイドチャネル情報を測定する測定装置と、測定装置から入力されたサイドチャネル情報に基づいて、テストデバイスの動作を検証する検証装置と、を備える。この検証システムは、（１）〜（１４）の検証方法を実行するシステムであるため、（１）〜（１４）に記載の検証方法と同様の効果を奏する。
【００３２】
［２．検証方法、検証装置、及び、コンピュータプログラムの例］
【００３３】
［第１の実施の形態］
＜システム構成＞
図１は、本実施の形態にかかる検証システム１００の構成の一例を示した図である。図１を参照して、検証システム１００は、ファズテストを実行する検証装置１と、テストデバイスＤにファズデータである制御信号を入力可能な入力装置３と、テストデバイスからのサイドチャネル情報の一例である電磁波の測定用プローブ（以下プローブ）５と、を含む。
【００３４】
検証装置１は、ファズテストを実行することでテストデバイスＤの動作を検証する。テストデバイスＤの動作の検証は、テストデバイスＤでの異常動作を検出することを含む。異常動作とは、たとえば、入力された制御信号に対して規定された動作以外の動作である。テストデバイスＤは、外部からファズデータである制御信号の入力を受け付けて、入力された制御信号に対して規定された動作を実行するデバイスであればどのような装置であってもよい。好ましくは、テストデバイスＤは、ディスプレイなどの、上記動作の結果を出力する機能を有さない装置である。また好ましくは、テストデバイスＤは、たとえば、他の装置に搭載され、他の装置における動作頻度が低い装置である。他の装置は、たとえば、車両であり、テストデバイスＤは、たとえば、車載制御装置であるＥＣＵ（Electronic  Control  Unit）である。以降の説明では、テストデバイスＤは、ＥＣＵであるものとする。
【００３５】
ＥＣＵは、ＣＡＮ（Controller  Area  Network）やＬＩＮ（Local  Interconnect  Network）やＥｔｈｅｒｎｅｔ（登録商標）、又はＭＯＳＴ（Media  Oriented  System  Transport：ＭＯＳＴは登録商標）などの通信規格を採用する車内ネットワークに接続されて、車内ネットワークを介して入力された制御信号（ＣＡＮの場合にはＣＡＮメッセージ、又は、通信フレーム）に従って規定された動作を実行する。
【００３６】
入力装置３は、テストデバイスＤに有線又は無線によって接続され、一例としてＣＡＮの通信規格に従う制御信号であるＣＡＮメッセージをＥＣＵに入力可能である。入力装置３は検証装置１とは独立した装置であってもよいし、検証装置１に含まれてもよい。以降の説明では、入力装置３は、検証装置１とは独立した装置であり、検証装置１と通信可能に接続されているものとする。入力装置３は、検証装置１からのＣＡＮメッセージに従ってＥＣＵに制御フレームを入力する。
【００３７】
プローブ５は、テストデバイスＤから動作状態を示す情報であるサイドチャネル情報を、テストデバイスＤに接触せずに取得する、又は、テストデバイスＤと有線又は無線で接続されることによって取得する、測定装置の一例である。プローブ５は、サイドチャネル情報の一例である、テストデバイスＤから漏えいする電磁波を受信する。プローブ５は、検証装置１と、有線又は無線で通信可能であって、受信した電磁波を示す信号を検証装置１に入力する。
【００３８】
検証装置１は、一般的なＰＣ（パーソナルコンピュータ）などからなる。プローブ５から入力された信号を用いて、テストデバイスＤであるＥＣＵの異常動作の有無を検出するための異常動作検出処理を実行する。
【００３９】
図２は、検証装置１の構成を説明するための図である。図２を参照して、検証装置１は、制御部１１と、記憶部１２と、通信部１３と、プローブインタフェース（Ｉ／Ｆ）１４と、通信部１３と、を含む。
【００４０】
制御部１１はＣＰＵ（Central  Processing  Unit）を含む。制御部１１のＣＰＵは、１又は複数の大規模集積回路（ＬＳＩ）を含む。複数のＬＳＩを含むＣＰＵでは、複数のＬＳＩが協働してＣＰＵの機能を実現する。
【００４１】
制御部１１のＣＰＵは、記憶部１２に記憶された１又は複数のプログラムからなるアプリケーションを読み出して、各種処理を実行可能である。アプリケーションは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記録媒体に記録した状態で譲渡することもできるし、サーバコンピュータなどのコンピュータ装置からのダウンロードによって譲渡することもできる。
【００４２】
記憶部１２は、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）、又は、ＲＯＭなどの不揮発性のメモリ素子と、ＲＡＭ（Random  Access  Memory）などの揮発性のメモリ素子とを含む。不揮発性のメモリ素子は、アプリケーション又はアプリケーションの実行に必要なデータなどを記憶する記憶領域を有する。揮発性のメモリ素子は、後述する更新用プログラムなどを記憶する記憶領域を有する。また、記憶部１２には、データベース１２１が格納されている。データベース１２１には、検出処理に用いられる基準電磁波波形が格納されている。
【００４３】
通信部１３は、アプリケーションの実行に従う制御部１１の制御によって入力装置３と通信し、入力装置３に対して、テストデバイスＤへの制御信号の入力を指示する。
【００４４】
プローブＩ／Ｆ１４は、プローブ５から検証装置１に対して送信される信号を受け付ける。プローブＩ／Ｆ１４が受信した信号は、ＡＤコンバータ１６によってデジタル信号に変換され、制御部１１に入力される。なお、プローブＩ／Ｆ１４とＡＤコンバータ１６は、市販のオシロスコープを検証装置１に接続することでも代用できる。
【００４５】
＜検証方法＞
図１は、さらに、検証システム１００での検証方法の一例である、テストデバイスＤでの異常動作の検出方法を表わしている。テストデバイスＤでの異常動作は、一例として、入力された制御信号に応じて動作しているテストデバイスＤから漏えいする電磁波に基づいて検出される。
【００４６】
詳しくは、図１を参照して、検証装置１の制御に従った入力装置３は、テストデバイスＤであるＥＣＵに制御信号である通信フレームＦを入力する（ステップＳ１）。ＥＣＵは、入力された通信フレームＦによって指示された動作を実行する。
【００４７】
ＥＣＵの動作中、プローブ５を、ＥＣＵから漏えいする電磁波を受信可能な範囲までＥＣＵに近づける。逆に、プローブ５を固定し、プローブ５に対してテストデバイスＤであるＥＣＵを、漏えいする電磁波を受信可能な範囲に配置してもよい。たとえば、プローブ５が板状であり、テストデバイスＤを板状のプローブ５上に配置する、などであってもよい。
【００４８】
プローブ５は、ＥＣＵから漏えいする電磁波を受信する（ステップＳ２）。受信された電磁波を示す信号は、プローブ５から検証装置１に入力される。検証装置１は、プローブ５から入力された電磁波を示す信号を用いて異常動作検出処理を実行することで（ステップＳ３）、ＥＣＵの異常動作を検出する。検出結果は検証装置１の表示部１５に表示されるなどして、ユーザに対して報知される。
【００４９】
＜異常動作検出処理＞
検証装置１の記憶部１２に記憶されているアプリケーションは、プローブ５から入力された電磁波を示す信号を用いて、テストデバイスＤでの異常動作を検出する処理を制御部１１に実行させるプログラムである。
【００５０】
図３は、制御部１１が実行する異常動作検出処理を表わしたブロック図である。図３を参照して、異常動作検出処理は、読出処理１１１と、検出処理１１２と、表示処理１１４と、を含む。
【００５１】
読出処理１１１は、制御部１１が、データベース１２１から基準電磁波波形を読み出す処理である。好ましくは、読出処理１１１において制御部１１は、テストデバイスＤとするＥＣＵの種類や製造メーカなどの属性に応じて基準電磁波波形を読み出す。また、好ましくは、読出処理１１１において制御部１１は、入力装置３からテストデバイスＤに入力される制御信号に応じて基準電磁波波形を読み出す。
【００５２】
図４は、本実施の形態において記憶部１２に格納されるデータベース１２１の一例である、正常時電磁波データベース１２１Ａの具体例を示す図である。図４を参照して、正常時電磁波データベース１２１Ａには、入力装置３からテストデバイスＤであるＥＣＵに入力されるＣＡＮメッセージごとに、ＣＡＮメッセージに従って正常に動作したＥＣＵから漏えいする電磁波波形（正常時電磁波波形）が格納されている。図４の例では、識別番号１〜４について、入力ＣＡＮメッセージごとの電磁波波形が示されている。データベース１２１には、ＥＣＵが何らかの動作をするＣＡＮメッセージ（通常ＣＡＮメッセージ）についての電磁波波形と、ＥＣＵが本来は動作しないＣＡＮメッセージ（その他のＣＡＮメッセージ）についての電磁波波形と、を格納することができる。例えば、図４の例において、”ＡＡＡＢＢＢＣＣ”，“ＤＤＤＥＥＥＦＦ”，“ＧＧＧＨＨＨＩＩ”の３つは、通常ＣＡＮデータとしてカテゴリ分けして登録され、”ＪＪＪＫＫＫＬＬ”は、その他のＣＡＮメッセージとしてカテゴリ分けして登録される。
【００５３】
検出処理１１２は、ＥＣＵの異常動作を検出する処理である。検出処理１１２は比較処理１１３を含み、制御部１１は、検出処理１１２において比較処理１１３を実行する。比較処理１１３は、読出処理１１１によってデータベース１２１から読み出された基準電磁波波形と、プローブ５から入力された信号が示す電磁波波形（以下、測定波形とも言う）とを比較する処理である。
【００５４】
比較処理１１３では、一般的なパターンマッチングの手法が採用され得る。一例として、比較処理１１３において制御部１１は、基準電磁波波形と測定波形との相関係数を算出する。相関係数が閾値以上であることは、測定波形が基準電磁波波形と一致していることを意味する。逆に、相関係数が閾値未満であることは、測定波形が基準電磁波波形と一致していないことを意味する。
【００５５】
本実施の形態では、基準電磁波波形が正常時電磁波波形であるため、相関係数と閾値とを比較することで、測定波形が正常時電磁波波形と一致するか否か、が検出される。測定波形が正常時電磁波波形と一致することは、テストデバイスＤであるＥＣＵが正常な動作を行なっていること、つまり、異常動作が生じていないことを意味する。測定波形が正常時電磁波波形と一致しないことは、ＥＣＵが正常な動作を行なっていない、つまり、異常動作が生じていることを意味する。従って、第１の実施の形態での比較処理１１３は、テストデバイスＤでの異常動作の有無を特定する処理である。
【００５６】
表示処理１１４は、検出処理１１２での検出結果を表示部１５に表示する処理である。本実施の形態では、検出処理１１２においてテストデバイスＤでの異常動作の有無が検出されるため、異常動作の有無のうちの少なくとも一方の検出結果を表示部１５に表示する処理が行われる。
【００５７】
＜処理フロー＞
図５は、本実施の形態において、制御部１１で実行される異常動作検出処理の流れの一例を表わしたフローチャートである。図５を参照して、始めに、制御部１１は、プローブ５から電磁波を示す信号の入力を受け付ける（ステップＳ１０１）。入力された信号からは、測定波形である電磁波波形（波形Ａ）が特定される。
【００５８】
次に、制御部１１は、正常時電磁波データベース１２１Ａから、基準電磁波波形として、該当する正常時電磁波波形（波形Ｂ）を読み出す（ステップＳ１０３）。ステップＳ１０３では、入力装置３からテストデバイスＤに入力されたＣＡＮメッセージに応じた正常時電磁波波形が読み出される。
【００５９】
制御部１１は、波形Ａ，Ｂを比較することによって、テストデバイスＤでの異常動作の有無を特定する（ステップＳ１０５）。すなわち、測定波形である波形Ａが基準電磁波波形である波形Ｂと一致する場合（ステップＳ１０７でＹＥＳ）、制御部１１は、テストデバイスＤの異常動作の検出結果として、異常動作が検出されないことを示す「正常」を表わすメッセージを表示部１５に表示する（ステップＳ１０９）。
【００６０】
波形Ａ，Ｂが一致しない場合（ステップＳ１０７でＮＯ）、制御部１１は、テストデバイスＤの異常動作の検出結果として、異常動作が検出されたことを示す「異常」を表わすメッセージを表示部１５に表示する（ステップＳ１１１）。
【００６１】
＜実施の形態の効果＞
検証システム１００では、テストデバイスＤの動作を電磁波によってとらえる。そのため、テストデバイスＤが、ＥＣＵのように、動作による出力を行わない装置、又は、動作による出力を行う機能を有さない装置であっても、テストデバイスＤ以外のハードウェアシミュレータを必要とせずに、その動作を容易に検出できる。これにより、装置構成を容易にでき、コストアップを抑えることができる。また、テストデバイスＤとハードウェアシミュレータとの動作の同一性を検証する必要がないため、検出作業を簡略化することができる。
【００６２】
また、本実施の形態にかかる検証システム１００では、検出された電磁波波形と正常時電磁波波形とを比較することによってテストデバイスＤの異常動作の有無を検出するため、テストデバイスＤの異常動作の有無を容易に、かつ、高精度で検出できる。
【００６３】
なお、第１の実施の形態において、データベース１２１には、正常時電磁波波形に替えて、異常時電磁波波形が格納されていてもよい。この場合、検証装置１の制御部１１は、上記の逆の検出方法によって、異常動作を検出する。すなわち、制御部１１は、プローブ５から入力された、テストデバイスＤから測定された電磁波波形が、基準電磁波波形である異常時電磁波波形と一致する波形を含む場合に異常動作を検出し、含まない場合には異常動作を検出しない、つまり、正常動作であることを検出する。すなわち、テストデバイスＤの動作の検証は、テストデバイスＤでの正常動作を検出することであってもよい。つまり、データベース１２１には、正常時電磁波波形と異常時電磁波波形との少なくともいずれか一方、または、両方が基準電磁波波形として格納されており、制御部１１は、測定された電磁波波形と基準電磁波波形とを比較することによって、テストデバイスＤの動作の検証として、異常動作の有無、及び／又は、正常動作の有無を容易に、かつ、高精度で検出できる。なお、データベース１２１に異常時電磁波形が格納される場合、通常ＣＡＮメッセージとその他のＣＡＮメッセージのカテゴリ分けはされていなくてもよい。
【００６４】
［第２の実施の形態］
テストデバイスＤの動作の検証は、異常動作の有無、及び／又は、正常動作の有無の検出のみに限定されない。テストデバイスＤの動作の検証は、異常動作の種別の検出であってもよい。この場合、記憶部１２に格納されるデータベース１２１は、図６に示されるような異常時電磁波データベース１２１Ｂである。図６は、記憶部１２に格納されるデータベース１２１の他の例であって、異常時電磁波データベース１２１Ｂの具体例を示す図である。
【００６５】
図６を参照して、異常時電磁波データベース１２１Ｂには、異常の種別ごとに異常が生じた場合にＥＣＵから漏えいする電磁波波形（異常時電磁波波形）が格納されている。図６の例では、零で除する演算を行うエラー（ゼロ除算）、負数の平方根を算出するエラー（負数の平方根）、バッファのオーバーフローによるエラー（バッファオーバーフロー）、及び、ウォッチドッグタイマーの満了、のそれぞれが生じたときの電磁波波形が格納されている。なお、図６のタイミングについては、第２の実施の形態では用いず、後述する第４の実施の形態において説明する。
【００６６】
図７は、本実施の形態において、制御部１１で実行される異常動作検出処理の流れの一例を表わしたフローチャートである。図７を参照して、始めに、制御部１１は、プローブ５から電磁波を示す信号の入力を受け付ける（ステップＳ２０１）。入力された信号からは、測定波形である電磁波波形（波形Ａ）が特定される。
【００６７】
次に、制御部１１は、異常時電磁波データベース１２１Ｂに格納されている各異常時電磁波波形（波形Ｂ）を読み出し（ステップＳ２０３）、ステップＳ２０１で入力された電磁波波形（波形Ａ）を各異常時電磁波波形（波形Ｂ）でパターンマッチングすることで、波形Ａに一致する異常時電磁波波形を特定する（ステップＳ２０５）。つまり、該当する異常の種別を特定する。
【００６８】
ステップＳ２０１で入力された電磁波波形（波形Ａ）に一致する異常時電磁波波形がない場合（ステップＳ２０７でＮＯ）、制御部１１は、テストデバイスＤの異常動作の検出結果として、異常動作が「データベースに存在しない異常」であることを示すメッセージを表示部１５に表示する（ステップＳ２０９）。なお、ステップＳ２０９では、異常動作が検出されないことを示す正常メッセージを出力してもよい。
【００６９】
一方、波形Ａに一致する異常時電磁波波形がある場合（ステップＳ２０７でＹＥＳ）、制御部１１は、テストデバイスＤの異常動作の検出結果として、異常時電磁波波形に該当する異常の種類を示すメッセージを表示部１５に表示する（ステップＳ２１１）。
【００７０】
＜実施の形態の効果＞
本実施の形態にかかる検証システム１００では、検出された電磁波波形と異常時電磁波波形とを比較することによってテストデバイスＤの異常動作の種別を検出するため、テストデバイスＤの異常動作の種別を容易に、かつ、高精度で検出できる。
【００７１】
［第３の実施の形態］
データベース１２１にテストデバイスの種別に応じた詳細な電磁波波形を予め格納しておくことによって、より詳細に異常動作の有無、及び／又は異常動作の種別を検出することが可能になる。たとえば、異常時電磁波データベース１２１Ｂに格納する基準電磁波波形を、ＥＣＵの種類や製造メーカごとの、異常の種別ごとの電磁波波形としてもよい。ＥＣＵの種類や製造メーカが異なると、異常の発生の仕方が異なる場合があり、また、同じ異常の種別であっても電磁波波形が異なる場合があるためである。
【００７２】
図８は、記憶部１２に格納されるデータベース１２１の他の例であって、異常時電磁波データベース１２１Ｃの具体例を示す図である。図８を参照して、異常時電磁波データベース１２１Ｃには、入力装置３からテストデバイスＳであるＥＣＵの属性（製造メーカ）と、ＥＣＵに入力されるＣＡＮメッセージごとに、ＣＡＮメッセージの入力で想定される異常動作の要因（種別）、及び、その判定結果（ＮＧ）が格納されている。図８の例では、識別番号１，２について、Ａ社製のＥＣＵについて入力ＣＡＮメッセージごとの電磁波波形とその電磁波波形が生じたときの異常動作の種別、及び、それぞれ判定結果をＮＧとすること、が示されている。
【００７３】
図９は、本実施の形態において、制御部１１で実行される異常動作検出処理の流れの一例を表わしたフローチャートである。図９を参照して、始めに、制御部１１は、プローブ５から電磁波を示す信号の入力を受け付ける（ステップＳ３０１）。入力された信号からは、測定波形である電磁波波形（波形Ａ）が特定される。
【００７４】
次に、制御部１１は、異常時電磁波データベース１２１Ｃから、基準電磁波波形として、テストデバイスの種別に対応する異常時電磁波波形（波形Ｂ）を読み出す（ステップＳ３０３）。なお、テストデバイスの種別は、例えば、制御部１１へのユーザ入力によって特定される。ステップＳ３０３では、入力装置３からテストデバイスＤに入力されたＣＡＮメッセージに応じた、ＣＡＮメッセージ入力時に想定される異常波波形として格納されている異常時電磁波波形が読み出される。ここでは、複数の異常時電磁波波形が読み出されることがある。
【００７５】
制御部１１は、波形Ａ，Ｂを比較することによって、テストデバイスＤでの想定される異常動作の有無を特定する（ステップＳ３０５）。すなわち、測定波形である波形Ａが基準電磁波波形である波形Ｂと一致する場合（ステップＳ３０７でＹＥＳ）、制御部１１は、テストデバイスＤの異常動作の検出結果として、異常動作が検出されたことを示す「異常」を表わすメッセージを表示部１５に表示する（ステップＳ３０９）。
【００７６】
上記のように、ステップＳ３０３でテストデバイスＤに入力されたＣＡＮメッセージに応じた、複数の異常時電磁波波形が読み出された場合、ステップＳ３０５で制御部１１は、電磁波波形（波形Ａ）と各異常時電磁波波形でパターンマッチングすることで、波形Ａに一致する異常時電磁波波形を特定する。つまり、想定される複数の異常の種別の中から該当する異常の種別を特定する。この場合、ステップＳ３０１で入力された電磁波波形（波形Ａ）に一致する異常時電磁波波形がある場合（ステップＳ３０７でＹＥＳ）、制御部１１は、テストデバイスＤの異常動作の検出結果として、異常時電磁波波形に該当する異常の種類を示すメッセージを表示部１５に表示する（ステップＳ３０９）。
【００７７】
一方、波形Ａに一致する異常時電磁波波形がない場合（ステップＳ３０７でＮＯ）、制御部１１は、テストデバイスＤの異常動作の検出結果として、異常動作が「データベースに存在しない異常」であることを示すメッセージを表示部１５に表示する（ステップＳ３１１）。なお、ステップＳ３１１では、異常動作が検出されないことを示す正常メッセージを出力してもよい。
【００７８】
＜実施の形態の効果＞
本実施の形態にかかる検証システム１００では、入力する制御信号ごとに想定される異常動作の種別に応じた電磁波波形を予め用意しておくことで、検出された電磁波波形と用意された電磁波波形との比較によってテストデバイスＤの異常動作の種別をより詳細に検出できる。
【００７９】
なお、以上の例では、テストデバイスＤの種別ごとの異常時電磁波波形がデータベース１２１に格納されているものとしているが、第１の実施の形態と組み合わせて、テストデバイスＤの種別ごとの正常時電磁波波形がデータベース１２１に格納されていてもよい。この場合、テストデバイスＤの種別に応じて、高精度で異常動作の有無を検出することができる。
【００８０】
［第４の実施の形態］
図６に示されたように、データベース１２１には、さらに、比較のタイミングを規定する情報がさらに格納されていてもよい。たとえば、図６では、異常時電磁波波形データベース１２１Ｂに、異常時電磁波波形と比較するタイミングを規定する情報が格納されている。比較のタイミングは、たとえば、制御信号の入力時からの経過時間、プローブ５から入力された電磁波波形のうちの規定された特徴点が検出された時点からの経過時間、などである。比較のタイミングを規定する情報は、データベース１２１とは異なるデータベースに格納されていてもよい。
【００８１】
制御信号の入力時から制御信号に従った動作（たとえば除算）が開始されるまでの時間は、テストデバイスＤのソフトウェアによって規定されている。そのため、ソフトウェアの設計者によって予め把握されている時間である。データベース１２１に格納された情報によって規定される比較のタイミングは、上記の時間に基づくタイミングである。たとえば、比較のタイミングは、制御信号の入力時から上記時間の経過時、又は、制御信号の入力時から上記時間よりも所定期間だけ短い時間の経過時、などである。前者の場合、比較のタイミングは、制御信号に従った動作が開始されるタイミングとなる。後者の場合、比較のタイミングは、制御信号に従った動作が開始されるよりも少し前のタイミングとなる。
【００８２】
上記のタイミングが比較のタイミングとして規定されていることによって、本実施の形態において検証装置１の制御部１１は、プローブ５から入力された信号のうちの規定されたタイミングの信号から得られる電磁波波形、つまり、テストデバイスＤから測定された電磁波波形のうちのデータベース１２１で規定された位置の波形と、データベース１２１に格納されている波形との比較のみによって、異常動作の有無、及び／又は、異常動作の種類を特定することができる。
【００８３】
これにより、測定された電磁波波形の全体を基準電磁波波形によってマッチングするよりも高精度で異常動作の有無、及び／又は、異常動作の種類を特定することができるとともに、処理量を抑え、高速での処理を可能にする。
【００８４】
また、検証装置１の制御部１１は、プローブ５から入力された電磁波波形のうち、基準電磁波波形と一致する波形の表れた位置が規定された位置であるか否かを判定することによって、異常動作の有無、及び／又は、異常動作の種類を特定することができる。この場合、プローブ５から入力された電磁波波形の位置ごとに、比較処理に用いる基準電磁波波形を格納したデータベース（正常時電磁波波形データベース１２１Ａ、又は、異常時電磁波波形データベース１２１Ｂ，１２１Ｃ）が用意されていてもよい。そして、この場合、検証装置１の制御部１１は、プローブ５から入力された電磁波波形のうちの比較処理に用いる位置ごとに、対応するデータベースから基準電磁波波形を読み出して比較処理に用いる。
【００８５】
これにより、異常動作でも同じ電磁波波形が出力されるテストデバイスであっても、異常動作によってその電磁波波形が出力されるタイミングが異なる場合には、テストデバイスの異常動作を高精度で検出することができる。
【００８６】
［第５の実施の形態］
サイドチャネル情報は電磁波に限定されない。他の例として、テストデバイスＤの消費電力量であってもよい。この場合、検証システム１００は、プローブ５に替えて、上記電流値を測定するための測定器を含む。測定器は、たとえば、テストデバイスＤの電源ラインに挿入可能な装置であって、微小抵抗の両端の電圧差を検出することで電流値を測定可能な装置である。
【００８７】
この場合、データベース１２１には、基準となる、テストデバイスＤで動作中の単位時間当たりの消費電力量の変化が格納されている。検証装置１の制御部１１は、上記測定器から得られる電流値に予め取得している電圧値を乗じてテストデバイスＤでの単位時間当たりの消費電力量の変化を算出する。制御部１１は、算出した消費電力量の変化を、データベース１２１に格納されている、基準となる電流値の変化と測定された電流値の変化と比較することで、異常動作の有無、又は、異常動作の種別を検出する。
【００８８】
上記より、サイドチャネル情報は、テストデバイスＤから漏えいする電磁波と、テストデバイスＤの消費電力と、の少なくも一方である。又は、サイドチャネル情報は、電磁波及び消費電力以外であってもよい。サイドチャネル情報のさらに他の例は、テストデバイスＤの動作中に発せられる熱（温度）や音（周波数、音量）などであってもよい。
【００８９】
検証システム１００では、サイドチャネル情報は電磁波に限定されず、その他の情報によってとらえることができる。これにより、簡易な装置で高精度にテストデバイスＤの異常動作を検出することができる。
【００９０】
［第６の実施の形態］
より詳細には、テストデバイスＤに搭載される装置（メモリ、ＣＰＵ等）ごとに、漏えいする電磁波波形が異なる。第５の実施の形態に示された消費電力量、熱、音、なども同様である。そこで、好ましくは、テストデバイスＤのうちの異常動作の有無を検出する装置に応じた位置にプローブ５を配置する。
【００９１】
図１４は、プローブ５の配置の一例を説明するための図である。図１４を参照して、テストデバイスＤは、一例として、ＣＰＵ５１、メモリ５２、及び、インタフェース（Ｉ／Ｆ）５３を含む。図１４は、１つの基板上に、ＣＰＵ５１、メモリ５２、及び、Ｉ／Ｆ５３のチップがそれぞれ配置される構成を例示している。図１４の例では、基板表面をＸＹ平面として座標を設定したときに、ＣＰＵ５１は第二象限、メモリ５２は第三象限、Ｉ／Ｆ５３は第四象限、に配置されている。
【００９２】
テストデバイスＤのＣＰＵ５１の異常動作の有無を検出する場合には、プローブ５を第二象限の位置５Ａに配置して、漏えいする電磁波を受信する。メモリ５２の異常動作の有無を検出する場合には、プローブ５を第三象限の位置５Ｂに配置して、漏えいする電磁波を受信する。Ｉ／Ｆ５３の異常動作の有無を検出する場合には、プローブ５を第四象限の位置５Ｃに配置して、漏えいする電磁波を受信する。
【００９３】
この場合、データベース１２１には異常動作の有無を検出する装置に応じた基準電磁波波形が格納されている。又は、異常動作の有無を検出する装置に応じて基準電磁波波形を格納するデータベースが用意されていてもよい。図１５は、記憶部１２に格納されるデータベース１２１の他の例であって、テストデバイスＤに対する位置ごとの正常時電磁波データベース１２１Ｄの一例を示す図である。図１５を参照して、正常時電磁波データベース１２１Ｄには、テストデバイスＤのうちの異常動作の有無を検出する装置に応じた位置ごとに、正常に動作したその装置から漏えいする電磁波波形（正常時電磁波波形）が格納されている。図１５の例では、ＣＰＵ５１、メモリ５２、及び、Ｉ／Ｆ５３の正常時電磁波波形が格納されている。なお、図１５の例では、具体的なそれぞれの電磁波波形は図示が省略されている。
【００９４】
図１６は、本実施の形態において、制御部１１で実行される異常動作検出処理の流れの一例を表わしたフローチャートである。図１６を参照して、始めに、制御部１１は、テストデバイスＤのうちの異常動作の有無を検出する装置に応じた位置の選択（たとえば第一象限〜第四象限のいずれか）を受け付ける（ステップＳ４００）。ステップＳ４００では、図示しない入力装置によるユーザの入力を受け付けてもよい。プローブ５の位置を検出可能な、図示しない検出器と検証装置１とが接続されている場合、ステップＳ４００では、検出器からプローブ５の位置（たとえば位置５Ａ〜５Ｃのいずれか）の検出結果の入力を受け付けてもよい。
【００９５】
ステップＳ４００で位置が選択された後は、図５のステップＳ１０１〜Ｓ１１１と同じ処理が行われる。すなわち、制御部１１は、プローブ５から電磁波を示す信号の入力を受け付け（ステップＳ４０１）、入力された電磁波波形と、正常時電磁波データベース１２１Ｄに格納されている基準電磁波波形とを比較する（ステップＳ４０３，Ｓ４０５）。なお、本実施の形態では、ステップＳ４０３で制御部１１は、選択された位置に応じた基準電磁波波形を正常時電磁波データベース１２１Ｄから読み出す。制御部１１は、入力された電磁波波形が基準電磁波波形と一致する場合に「正常」、しない場合に「異常」を出力する（ステップＳ４０７〜Ｓ４１１）。
【００９６】
なお、図１５および図１６は、基準電磁波波形が正常時電磁波波形である場合の例である。基準電磁波波形は異常時電磁波波形であってもよい。この場合、第２の実施の形態、又は、第３の実施の形態と同様に、入力された電磁波波形と、選択された位置に応じた基準電磁波波形とが一致した場合に「異常」が出力される。
【００９７】
以上の例では、サイドチャネル情報として電磁波を測定する場合について説明しているが、サイドチャネル情報が消費電力量、熱、音、などであっても同様である。なお、サイドチャネル情報が電磁波又は熱などである場合、図１４に示されたような１つの基板上に複数チップが配置される構成の他、ＣＰＵ５１、メモリ５２、及び、Ｉ／Ｆ５３などが１つのチップで構成される場合であっても、位置ごとにサイドチャネル情報を測定することができる。従って、テストデバイスＤの構成は図１４の構成には限定されない。
【００９８】
本実施の形態にかかる検証システム１００では、テストデバイスＤのうちの異常動作の有無を検出する装置に応じた位置から検出されたサイドチャネル情報を用いることによって、より高精度で、より詳細に、テストデバイスＤの異常動作を検出することが可能になる。
【００９９】
［第７の実施の形態］
図１７は、第７の実施の形態に係る検証装置１の制御部１１が実行する異常動作検出処理を表したブロック図である。図１７を参照して、第７の実施の形態に係る検証装置１では、検出処理１１２は、図３に示された比較処理１１３に替えて、判定処理１１６を含む。判定処理１１６は、分類器１２２を用いて測定波形が正常時電磁波波形か異常時電磁波波形かを判定する処理である。
【０１００】
第７の実施の形態に係る検証装置１の記憶部１２には分類器１２２が記憶されている。分類器１２２は、電磁波波形が与えられると正常時電磁波波形か異常時電磁波波形かを出力するよう学習された学習モデルである。図１７に示されるように、分類器１２２は、第１モデル１２２Ａと第２モデル１２２Ｂとを含む。
【０１０１】
第１モデル１２２Ａは、複数のＣＡＮメッセージに対する正常時電磁波波形を使って学習されており、ある電磁波波形が与えられると、その電磁波波形に対応するＣＡＮメッセージを示す情報を出力するよう機械学習された学習モデルである。図１８は、分類器１２２の構造を模式的に示した図である。図１８の例では、第１モデル１２２Ａは、一次元畳み込みニューラルネットワーク（１Ｄ−ＣＮＮ）である。第１モデル１２２Ａは、上記組み合わせを複数用いて深層学習を実行することにより得られた、他の深層学習モデルであってもよい。
【０１０２】
図１８を参照して、第１モデル１２２Ａは、電磁波波形の入力を受け付ける入力層６１と、畳み込み層６２と、プーリング層６３と、全結合層６４と、出力層６５と、を含む。
【０１０３】
畳み込み層６２は、入力された電磁波波形に対してフィルタ処理を行って特徴量を抽出する。プーリング層６３は、畳み込み層６２で得られた特徴量を集約する。全結合層６４は、プーリング層６３での集約結果を結合する。出力層６５は、全結合層６４での結合結果に基づいて分類結果である対応するＣＡＮメッセージを示す情報を出力する。
【０１０４】
第１モデル１２２Ａには、ＣＡＮメッセージごとの、そのＣＡＮメッセージに対応する複数の正常時電磁波波形が入力値として与えられ、学習される。具体的には、図１８を参照して、ＣＡＮメッセージＭ１〜Ｍ４それぞれをテストデバイスＤとなるＥＣＵに入力する（ステップＳ５０１）。メッセージＭ１〜Ｍ４は、例えば、車速取得、エンジン回転数取得、エアフロメータ値取得、などの動作を指示するＣＡＮメッセージである。
【０１０５】
各ＣＡＮメッセージＭ１〜Ｍ４入力時のテストデバイスＤからの正常時電磁波波形が測定される（ステップＳ５０３）。図１８の例では、ＣＡＮメッセージＭ１の入力に対して正常時電磁波波形ａ１〜ａ４が測定されたものとする。
【０１０６】
ＣＡＮメッセージＭ１の入力に対して測定された正常時電磁波波形ａ１〜ａ４を、第１モデル１２２Ａへの入力値とする（ステップＳ５０５）。第１モデル１２２Ａは、入力層６１で正常時電磁波波形ａ１〜ａ４の入力を受け付けて、入力された波形ごとに、畳み込み層６２での処理、プーリング層６３での処理、及び、全結合層６４での処理を経て、ＣＡＮメッセージＭ１〜Ｍ４それぞれである確率を出力層６５から出力する。図１８の例の場合、ある波形（例えば、正常時電磁波波形ａ１）を入力層６１から入力してその入力波形をＣＡＮメッセージＭ１〜Ｍ４の４クラスに分類させて、ＣＡＮメッセージＭ１である確率が９５％、ＣＡＮメッセージＭ２である確率が５％、ＣＡＮメッセージＭ３である確率が３％、及び、ＣＡＮメッセージＭ４である確率が２％、との出力を得ている。
【０１０７】
次に、入力された正常時電磁波波形ａ１に対応するＣＡＮメッセージＭ１の確率をより高くするように、各層６２〜６４での演算で用いる関数の係数を調整する（ステップＳ５０７）。図１８の例の場合、正常時電磁波波形ａ１を入力層６１から入力したときの出力層６５から出力されるＣＡＮメッセージＭ１である確率（９５％）をより高くするように、例えば、全結合層６４での重み係数を変更する。
【０１０８】
図１８のステップＳ５０１〜Ｓ５０７を、各ＣＡＮメッセージＭ１〜Ｍ４について、ＣＡＮメッセージとそのＣＡＮメッセージ入力時に測定された正常時電磁波波形それぞれとの組み合せに対して行うことで、第１モデル１２２Ａは学習され、入力された電磁波波形を対応するＣＡＮメッセージにクラス分けする精度を向上させることができる。
【０１０９】
第２モデル１２２Ｂは、電磁波波形の特徴量に基づいて、対象の電磁波波形が正常時電磁波波形か異常時電磁波波形かの判定結果を出力するよう機械学習された学習モデルである。第２モデル１２２Ｂは、Ｏｎｅ  ｃｌａｓｓ  ＳＶＭ（Support Vector Machine）などの分類アルゴリズムである。図１８の例では、第２モデル１２２Ｂは、Ｏｎｅ  ｃｌａｓｓ  ＳＶＭである。第２モデル１２２Ｂは、正常時電磁波波形から得られた特徴量を複数用いて深層学習を実行することにより得られた、他の深層学習モデルであってもよい。
【０１１０】
第２モデル１２２Ｂは、一例として図１８に示されるように、いわゆる転移学習と呼ばれる方法によって学習される。すなわち、第１モデル１２２Ａの学習を第１段階目の学習とし、第２段階目の学習として、第２モデル１２２Ｂには、学習済の第１モデル１２２Ａの全結合層６４で各電磁波波形から算出される電磁波波形の上記特徴量群が、入力値として与えられる。具体的には、図１８を参照して、学習済の第１モデル１２２Ａの入力層６１にある正常時電磁波波形（例えば波形ａ１）が入力されたときの全結合層６４のある層で算出された特徴量Ｆが、第２モデル１２２Ｂに入力値として与えられる（ステップＳ５０９）。全結合層６４のある層は、例えば、プーリング層６３から２番目又は３番目の層である。
【０１１１】
第２モデル１２２Ｂは、ステップＳ５０９で第２モデル１２２Ｂに入力される特徴量Ｆを、いずれも、ＣＡＮメッセージＭ１の正常時電磁波波形ａ１から得られた正常値として記憶する。そして、第２モデル１２２Ｂは、ＣＡＮメッセージＭ１について、入力された特徴量Ｆを囲む境界を、測定された電磁波波形からの特徴量の正常値と異常値との境界である識別境界Ｂとして設定する（ステップＳ５１１）。
【０１１２】
図１８のステップＳ５０９，Ｓ５１１を、各ＣＡＮメッセージＭ１〜Ｍ４について、ＣＡＮメッセージ入力時に測定された正常時電磁波波形それぞれに対して行うことで、第２モデル１２２Ｂは学習され、各ＣＡＮメッセージについて設定される識別境界Ｂの精度を向上させることができる。
【０１１３】
分類器１２２は、記憶部１２に予め格納されていてもよい。好ましくは、制御部１１は、分類器１２２を作成するための学習処理１１５をさらに実行する。学習処理１１５は、上記ステップＳ５０１〜Ｓ５１１で表された処理である。なお、学習処理１１５は、上記ステップＳ５０１〜Ｓ５１１の少なくとも一部が他の装置で実行されてもよい。
【０１１４】
判定処理１１６は、学習済の分類器１２２に測定波形を入力することで、その出力値より、正常時電磁波波形か異常時電磁波波形かを判定する。すなわち、測定波形が分類器１２２に入力されると、学習済の第１モデル１２２Ａが特徴値を算出し、第２モデル１２２Ｂに与える。学習済の第２モデル１２２Ｂは、学習によって設定した識別境界Ｂと特徴値との乖離を算出し、その乖離に基づいて正常時電磁波波形が異常時電磁波波形かの判定結果を示す情報を出力する。出力された情報は、いったん、記憶部１２に書き込まれる。
【０１１５】
乖離は、例えば、入力された特徴量が識別境界Ｂで囲まれる範囲内であるのか範囲外であるのか、を示すデータであってもよい。判定処理１１６は、分類器１２２からの出力値を記憶部１２から読出し、その値に基づいて、測定波形が正常時電磁波波形か異常時電磁波波形かを検出する。例えば、識別境界Ｂで囲まれる範囲内である場合には正常時電磁波波形、つまり、正常動作と判定し、上記範囲外である場合には異常時電磁波波形、つまり、動作異常と判定する。判定結果は、いったん、記憶部１２に書き込まれる。
【０１１６】
測定波形が正常時電磁波波形か異常時電磁波波形かを検出するために上記の判定処理１１６を用いることで、測定波形や、第１〜第６の実施の形態に係る検証装置１で用いられた基準電磁波波形にたとえランダムなノイズが含まれていた場合であっても、高精度で検出することが可能になる。また、検証対象の装置（例えばＥＣＵ）のプログラム実行中に割り込み処理等が発生することによって測定波形の特徴点の間隔が伸縮した場合であっても、高精度で検出することが可能になる。
【０１１７】
なお、分類器１２２に示す機械学習モデルは、他の例として、オートエンコーダであってもよい。オートエンコーダは、入力波形を圧縮して低次元化した後に復元させることによって得られる特徴量と入力波形の特徴量とを用いて機械学習された学習モデルであって、正常時電磁波波形を用いて機械学習させたモデルである。学習済のオートエンコーダは、入力波形とほぼ同一の波形を出力する。そのため、学習していない波形、つまり、正常時電磁波波形でない異常時電磁波波形が入力値として与えられると、ほぼ同一の波形が出力とされない。これにより、異常時電磁波波形であると判定される。
【０１１８】
［実施例１］
図１０は、発明者らが本願の検証装置１を用いてテストデバイスＤの動作を検証した実施例１の測定結果を示した図である。実施例１では、市販のヘッドアップディスプレイをテストデバイスＤとして用いた。図１０（Ａ）はテストデバイスＤに対して入力した制御信号（ＣＡＮメッセージ）、及び、図１０（Ｂ）は、テストデバイスＤからプローブ５によって測定された電磁波波形である。また、図１１は図１０の一部（点線部分）を拡大した図、ならびに、図１２は、図１１の一部（実線部分）を拡大した図である。
【０１１９】
実施例１の測定においては、テストデバイスＤとして用いられたヘッドアップディスプレイに異常動作をさせるＣＡＮメッセージＦ１〜Ｆ６を入力したヘッドアップディスプレイとしては、かかるＣＡＮメッセージＦ１〜Ｆ６が入力されると、ＣＡＮメッセージＦ６が入力された時点で、異常動作する脆弱性を有しているものを用いた。
【０１２０】
図１１は、図１０において点線で囲まれた範囲である、ＣＡＮメッセージＦ６と、ＣＡＮメッセージＦ６が入力されたときの電磁波波形と、の拡大図である。実施例１では、ＣＡＮメッセージＦ６の入力からｔ［ｕｓ］経過後が比較のタイミングとして規定されている。そこで、検証装置１の制御部１１は、図１１の実線で囲まれた部分の電磁波波形（比較波形）と、データベース１２１に格納されている基準電磁波波形とを比較した。
【０１２１】
図１２は、図１１の比較波形の拡大図である。検証装置１の制御部１１は、比較波形と基準電磁波波形とを比較して、比較波形の中に異常波形ＡＷ１が含まれていることを検出した。
【０１２２】
実施例１の測定にテストデバイスＤとして用いたヘッドアップディスプレイは、異常動作によって異常終了してしまう。しかしながら、実施例１の測定では、異常動作によって異常終了する前に、プローブ５から入力される電磁波波形を用いて異常動作が検出された。したがって、検証装置１を用いて高精度でテストデバイスＤの動作を検証できることが検証された。
【０１２３】
［実施例２］
図１３は、発明者らが本願の検証装置１を用いてテストデバイスＤの動作を検証した実施例２の測定結果を示した図である。実施例２では、ソフトウェアを実装した演算装置をテストデバイスＤとして用い、零以外の数で除する演算（通常の除算）を行わせる制御信号を入力した場合と、零で除する演算（ゼロ除算）を行わせる制御信号を入力した場合と、を入力した。図１３（Ａ），（Ｂ）は、それぞれにおけるテストデバイスＤの電磁波波形の測定結果を示している。
【０１２４】
テストデバイスＤとして用いた演算装置は、通常状態（除算を実行していない状態）から制御信号に従って除算を実行し、除算が終了すると、通常状態に復帰する。この場合、データベース１２１には、除算実行中の電磁波波形が基準電磁波波形として格納されており、検証装置１の制御部１１は、制御信号の入力時点から測定された電磁波波形を基準電磁波波形でパターンマッチングする。
【０１２５】
図１３（Ａ）を参照して、通常の除算実行時、つまり、テストデバイスＤが正常動作を行なっている場合、制御信号の入力時点から期間Ａｔ１の間、除算実行中であることを示す電磁波波形Ｗ１が検出され、期間Ａｔ１の経過後に、通常状態であることを示す電磁波波形Ｗ２が検出された。期間Ａｔ１は３．５［μｓ］であった。
【０１２６】
これに対して、零除算時、つまり、テストデバイスＤに異常動作が生じている場合、制御信号の入力時点から期間Ａｔ２の間、除算実行中であることを示す異常波形ＡＷ２が検出され、期間Ａｔ２の経過後に通常状態であることを示す電磁波波形Ｗ２が検出された。期間Ａｔ２は１．０［μｓ］であった。
【０１２７】
実施例２では、除算実行中であることを示す電磁波波形が、通常の除算実行時を示す期間Ａｔ１よりも短い期間Ａｔ２の間継続して、その後に電磁波波形Ｗ２を検出することで、テストデバイスＤでの零除算、すなわち、異常動作が検出された。このように、実施例２では、テストデバイスＤでゼロ除算、つまり、特定の異常動作がプローブ５から入力される電磁波波形を用いて検出された。したがって、検証装置１を用いて、プローブ５から入力される電磁波波形のうちの基準電磁波波形と一致する電磁波波形の表れる位置に応じて、テストデバイスＤの動作を検証できることが検証された。
【０１２８】
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【０１２９】
１  検証装置
３  入力装置
５  プローブ
５Ａ，５Ｂ，５Ｃ  プローブの位置
１１  制御部
１２  記憶部
１３  通信部
１４  プローブインタフェース
１５  表示部
１６  ＡＤコンバータ
５１  ＣＰＵ
５２  メモリ
５３  インタフェース（Ｉ／Ｆ）
６１  入力層
６２  畳み込み層
６３  プーリング層
６４  全結合層
６５  出力層
１００  検証システム
１１１  読出処理
１１２  検出処理
１１３  比較処理
１１４  表示処理
１２１  データベース
１２１Ａ  正常時電磁波データベース
１２１Ｂ  異常時電磁波データベース
１２１Ｃ  異常時電磁波データベース
１２１Ｄ  正常時電磁波データベース
１２２  分類器
１２２Ａ  第１モデル
１２２Ｂ  第２モデル
Ａｔ１  期間
Ａｔ２  期間
ＡＷ１  異常波形
ＡＷ２  異常波形
ａ１〜ａ４  正常時電磁波波形
Ｂ  識別境界
Ｄ  テストデバイス
Ｆ  特徴量
Ｍ１〜Ｍ４  ＣＡＮメッセージ
Ｆ１〜Ｆ６  ＣＡＮメッセージ
Ｗ１  電磁波波形
Ｗ２  電磁波波形
【図１】
2019168167.tif 000003
【図２】
2019168167.tif 000004
【図３】
2019168167.tif 000005
【図４】
2019168167.tif 000006
【図５】
2019168167.tif 000007
【図６】
2019168167.tif 000008
【図７】
2019168167.tif 000009
【図８】
2019168167.tif 000010
【図９】
2019168167.tif 000011
【図１０】
2019168167.tif 000012
【図１１】
2019168167.tif 000013
【図１２】
2019168167.tif 000014
【図１３】
2019168167.tif 000015
【図１４】
2019168167.tif 000016
【図１５】
2019168167.tif 000017
【図１６】
2019168167.tif 000018
【図１７】
2019168167.tif 000019
【図１８】
2019168167.tif 000020
【手続補正書】
【提出日】令和1年12月25日(2019.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
テストデバイスにおける未知の脆弱性についての検証をするファズテストによる前記テストデバイスの検証方法であって、
前記ファズテストのためのファズデータが与えられたテストデバイスからのサイドチャネル情報を受信するステップと、
受信された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証するステップと、
を備える、検証方法。
【請求項２】
前記テストデバイスの動作を検証するステップは、前記テストデバイスの異常動作を検出することを含む
請求項１に記載の検証方法。
【請求項３】
前記異常動作の検出は、前記異常動作の有無の検出と、前記異常動作の種別の検出と、の少なくとも一方である、
請求項２に記載の検証方法。
【請求項４】
前記サイドチャネル情報は、前記動作中の前記テストデバイスから漏えいする電磁波と、前記テストデバイスの消費電力と、の少なくも一方である、
請求項１〜請求項３のいずれか一項に記載の検証方法。
【請求項５】
前記検証するステップは、受信された前記サイドチャネル情報と、データベースに格納されている基準サイドチャネル情報とを比較するステップを含む、
請求項１〜請求項４のいずれか一項に記載の検証方法。
【請求項６】
前記データベースは、異常動作時及び正常動作時のうちの少なくとも一方の基準サイドチャネル情報を格納しており、
前記比較するステップで、受信された前記サイドチャネル情報と前記データベースに格納されている基準サイドチャネル情報とを比較することによって、前記検証するステップで前記テストデバイスでの異常動作の有無を検出する、
請求項５に記載の検証方法。
【請求項７】
前記データベースは、異常動作の種別ごとの基準サイドチャネル情報を格納しており、
前記比較するステップで、受信された前記サイドチャネル情報と前記異常動作の種別ごとの基準サイドチャネル情報とを比較することによって、前記検証するステップで前記テストデバイスでの異常動作の種別を検出する、
請求項５に記載の検証方法。
【請求項８】
前記データベースは、テストデバイスの種別ごとの基準サイドチャネル情報を格納しており、
前記比較するステップでは、受信された前記サイドチャネル情報と、前記データベースに格納されている基準サイドチャネル情報のうちの前記テストデバイスの種別に応じた基準サイドチャネル情報とを比較する、
請求項５〜請求項７のいずれか一項に記載の検証方法。
【請求項９】
前記サイドチャネル情報は時系列データであって、
前記比較するステップでは、受信された前記サイドチャネル情報の全体よりも少ない一部である、前記サイドチャネル情報のうちの規定された期間に応じた情報と、前記データベースに格納されている基準サイドチャネル情報とを比較する、
請求項５〜請求項８のいずれか一項に記載の検証方法。
【請求項１０】
前記サイドチャネル情報は、前記テストデバイスに対する特定の位置から測定される情報であり、
前記データベースは、テストデバイスに対する位置ごとに基準サイドチャネル情報を格納しており、
前記比較するステップでは、受信された前記サイドチャネル情報と、前記データベースに格納されている、前記サイドチャネル情報を受信した前記テストデバイスに対する位置に応じた基準サイドチャネル情報とを比較する、
請求項５〜請求項９のいずれか一項に記載の検証方法。
【請求項１１】
前記検証するステップは、サイドチャネル情報が入力されると、異常動作時のサイドチャネル情報であるか、正常動作時のサイドチャネル情報であるか、を出力するよう学習された学習モデルに、受信された前記サイドチャネル情報を入力し、その出力を得るステップを含む
請求項１〜請求項４のいずれか一項に記載の検証方法。
【請求項１２】
前記学習モデルは、
サイドチャネル情報から求められた特徴量に基づいて動作の種類を分類する第１モデルと、
前記特徴量が与えられ、前記特徴量から、異常動作時のサイドチャネル情報であるか、正常動作時のサイドチャネル情報であるかを判定する第２モデルと、を含む
請求項１１に記載の検証方法。
【請求項１３】
前記異常動作は演算異常を含む、
請求項１〜請求項１２のいずれか一項に記載の検証方法。
【請求項１４】
前記テストデバイスは、車載制御装置を含む、
請求項１〜請求項１３のいずれか一項に記載の検証方法。
【請求項１５】
テストデバイスにおける未知の脆弱性についてファズテストによって検証をする検証装置であって、
前記ファズテストのためのファズデータが与えられたテストデバイスからのサイドチャネル情報の入力を受け付けるインタフェースと、
前記インタフェースを介して入力された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証する処理部と、
を備える、検証装置。
【請求項１６】
テストデバイスにおける未知の脆弱性についてファズテストによって検証する検証装置としてコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
前記ファズテストのためのファズデータが与えられた前記テストデバイスからのサイドチャネル情報の入力を受け付ける入力部、及び、
前記入力部を介して入力された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証する処理部、として機能させる、
コンピュータプログラム。
【請求項１７】
テストデバイスにおける未知の脆弱性についてファズテストによって検証をする検証システムであって、
前記ファズテストのためのファズデータが与えられたテストデバイスからのサイドチャネル情報を測定する測定装置と、
前記測定装置から入力された前記サイドチャネル情報に基づいて、前記テストデバイスの動作を検証する検証装置と、
を備える、検証システム。
【国際調査報告】
2019168167.tif 000021
2019168167.tif 000022
2019168167.tif 000023