(57)【要約】【課題】制御システムの性能悪化を抑止してセンサデータの改ざんを検知する。【解決手段】センサ２とコントローラ３とを有する検知システム１において、センサ２では、取得部２ａがセンサデータを取得し、算出部２ｂが、センサデータを用いて該センサデータが改ざんされていないことが検証可能なＭＡＣ値を算出し、送信部２ｄが、センサデータまたは、算出部２ｂがＭＡＣ値を算出した場合には、センサデータに代えて該ＭＡＣ値を、コントローラ３に送信する。コントローラ３では、受信部３ａが、センサ２から送信されたセンサデータまたはＭＡＣ値を受信し、受信部３ａがＭＡＣ値を受信した場合に、検証部３ｂが、受信部３ａが直前に受信したセンサデータを用いて該ＭＡＣ値を検証する。【選択図】図１
2019193083.tif 000002
【特許請求の範囲】
【請求項１】
センサとコントローラとを有する検知システムであって、
前記センサは、
センサデータを取得する取得部と、
前記センサデータを用いて、該センサデータが改ざんされていないことが検証可能な改ざん検知情報を算出する算出部と、
前記センサデータまたは、前記算出部が前記改ざん検知情報を算出した場合には、前記センサデータに代えて該改ざん検知情報を、前記コントローラに送信する送信部と、を備え、
前記コントローラは、
前記センサから送信された前記センサデータまたは前記改ざん検知情報を受信する受信部と、
前記受信部が前記改ざん検知情報を受信した場合に、前記受信部が直前に受信した前記センサデータを用いて該改ざん検知情報を検証する検証部と、を備える、
ことを特徴とする検知システム。
【請求項２】
前記センサは、前記改ざん検知情報が算出された回数をカウントする第１のカウント部をさらに備え、
前記算出部は、前記センサデータと前記第１のカウント部がカウントした回数とを用いて前記改ざん検知情報を算出し、
前記コントローラは、前記改ざん検知情報が検証された回数をカウントする第２のカウント部をさらに備え、
前記検証部は、前記受信部が前記改ざん検知情報を受信した場合に、前記受信部が直前に受信した前記センサデータと前記第２のカウント部がカウントした回数とを用いて前記改ざん検知情報を検証することを特徴とする請求項１に記載の検知システム。
【請求項３】
前記算出部は、前記送信部による前記センサデータの送信の履歴と前記センサデータとを用いて前記改ざん検知情報を算出し、
前記検証部は、前記受信部による前記センサデータの受信の履歴と前記センサデータとを用いて前記改ざん検知情報を検証することを特徴とする請求項１または２に記載の検知システム。
【請求項４】
前記コントローラは、前記受信部が前記センサデータを受信した場合に、該センサデータを用いてアクチュエータに対する指令を算出する指令部と、
前記受信部が前記改ざん検知情報を受信した場合に、前記受信部が直前に受信した前記センサデータと、前記指令部が該センサデータを用いて算出した前記指令とを用いて、センサデータを推定する推定部と、をさらに備えることを特徴とする請求項１〜３のいずれか１項に記載の検知システム。
【請求項５】
センサとコントローラとを有する検知システムで実行される検知方法であって、
前記センサにおける、
センサデータを取得する取得工程と、
前記センサデータを用いて、該センサデータが改ざんされていないことが検証可能な改ざん検知情報を算出する算出工程と、
前記センサデータまたは、前記算出工程で前記改ざん検知情報が算出された場合には、前記センサデータに代えて該改ざん検知情報を、前記コントローラに送信する送信工程と、
前記コントローラにおける、
前記センサから送信された前記センサデータまたは前記改ざん検知情報を受信する受信工程と、
前記受信工程で前記改ざん検知情報が受信された場合に、前記受信工程で直前に受信された前記センサデータを用いて該改ざん検知情報を検証する検証工程と、
を含んだことを特徴とする検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知システムおよび検知方法に関する。
【背景技術】
【０００２】
近年、センサデータを用いた制御を行うロボットアーム等の制御システムに、ネットワークを用いるケースが増加している。それに伴い、センサデータを改ざんするサイバー攻撃のリスクが増大している。センサデータの改ざん攻撃は、制御システムが暴走して深刻な被害につながるため対策が必要である。
【０００３】
従来、センサデータの改ざんを検知するため、送信データにＭＡＣ値（Message  Authentication  Code、メッセージ認証コード）や電子署名を付与する技術（非特許文献１，２参照）が知られている。この技術では、データの送り手が受け取り手と共有する共通鍵を用いて生成した情報をデータに付与し、受け取り手が付与された情報を検証する。これにより、想定されない第三者によるなりすましやデータのすり替えを検知できる。
【０００４】
また、センサデータの改ざんを検知するため、センサデータを暗号化する技術が知られている。この技術では、センサデータを共通鍵で暗号化した暗号文がやり取りされる。共通鍵を持たない第三者は、復号すると意図した値になるような暗号文を生成することができないため、暗号文をランダムに改ざんする攻撃しかできない。ランダムに改ざんされた暗号文を復号するとセンサデータが破壊されている場合が多いため、センサデータの破壊を検知する機構を設けて、センサデータの改ざんを検知することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】H.Krawczyk,  M.Bellare,  R.Canetti,  “HMAC:  Keyed-Hashing  for  Message  Authentication”,  IETF  RFC  2104,  1997年2月
【非特許文献２】Dennis  K.Nilsson,  Ulf  E.Larson,  Erland  Jonsson,  “Efficient  In-Vehicle  Delayed  Data  Authentication  Based  on  Compound  Message  Authentication  Codes”,  Vehicular  Technology  Conference,  2008年
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術を用いてセンサデータの改ざんを検知するためには、通信データ量が増加して、制御システムの性能悪化が避けられないという問題があった。例えば、ＭＡＣ値や電子署名を付与する方式では、通信データ量の増加は避けられない。また、センサデータを暗号化する方式は、攻撃者が暗号文を予め盗聴して保管しておき、センサとコントローラとの間で現在やり取りされている暗号文を過去の暗号文にすり替えるリプレイ攻撃に弱い。リプレイ攻撃の対策には、カウンタ等の情報を付与する必要があり、やはり通信データ量の増加は避けられない。
【０００７】
これに対し、センサデータにより遠隔制御を行う制御システムでは、リアルタイム性が要求され、例えば誤り訂正の付与による遅延が問題になるほど、ペイロードの削減が要求される。通信データ量が増加すると、センサとコントローラとの間の通信遅延や、センサデータの単位時間当たりの送受回数を表すサンプリング周波数、ひいては制御システムの制御性能に影響を及ぼすことが知られている。
【０００８】
つまり、制御システムでは、目標に到達するまでに生じたブレと使うエネルギーとを足し合わせた指標の値が小さい場合に、制御性能が高いと評価される。ここで、通信データ量が増加して、通信遅延が発生したりサンプリング周波数が小さくなったりすると、制御システムのきめ細やかな制御が困難になり、制御性能が低下する。
【０００９】
本発明は、上記に鑑みてなされたものであって、制御システムの性能悪化を抑止してセンサデータの改ざんを検知すること目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明に係る検知システムは、センサとコントローラとを有する検知システムであって、前記センサは、センサデータを取得する取得部と、前記センサデータを用いて、該センサデータが改ざんされていないことが検証可能な改ざん検知情報を算出する算出部と、前記センサデータまたは、前記算出部が前記改ざん検知情報を算出した場合には、前記センサデータに代えて該改ざん検知情報を、前記コントローラに送信する送信部と、を備え、前記コントローラは、前記センサから送信された前記センサデータまたは前記改ざん検知情報を受信する受信部と、前記受信部が前記改ざん検知情報を受信した場合に、前記受信部が直前に受信した前記センサデータを用いて該改ざん検知情報を検証する検証部と、を備える、ことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、制御システムの性能悪化を抑止してセンサデータの改ざんを検知することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施形態に係る検知システムの概要構成を例示する模式図である。
【図２】図２は、検知システムの処理を説明するための説明図である。
【図３】図３は、検知システムの処理を説明するための説明図である。
【図４】図４は、検証部の処理を説明するための説明図である。
【図５】図５は、本実施形態に係る検知システムによる検知処理手順を示すシーケンス図である。
【図６】図６は、検知プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１４】
［検知システムの構成］
図１は、本実施形態に係る検知システムの概略構成を例示する模式図である。検知システム１は、例えばロボットアーム等の制御システムであり、図１に例示するように、センサ２、コントローラ３およびアクチュエータ４を有する。
【００１５】
センサ２は、例えばロボットアームを制御するための触覚センサや視覚センサ等の外界センサであり、外界の物理情報をセンシングしたセンサデータを、ネットワーク５を介してコントローラ３に送信する。コントローラ３は、センサ２から受信したセンサデータを用いて、例えばロボットアーム等のアクチュエータ４を制御する。
【００１６】
この検知システム１において、センサ２は、所定のＮ回ごとに、センシングしたセンサデータの代わりに、（Ｎ−１）回までのセンサデータを用いて算出したＭＡＣ値を、コントローラ３に送信する。ここで、ＭＡＣ値とは、センサデータの送信者が正当であることを認証し、センサデータの真正性すなわちセンサデータが改ざんされていないことを確認するための情報である。
【００１７】
コントローラ３は、センサ２からＭＡＣ値を受信した場合に、（Ｎ−１）回までに受信したセンサデータを用いてＭＡＣ値を算出し、センサ２から受信したＭＡＣ値との比較検証を行う。これにより、コントローラ３がセンサ２を認証し、センサデータの改ざんがないことを検知する。また、コントローラ３は、Ｎ回目のセンサデータを推定する。
【００１８】
［センサの構成］
センサ２は、ＭＰＵ（Micro  Processing  Unit）やＦＰＧＡ（Field  Programmable  Gate  Array）等で実現される制御部を備え、この制御部が、図１に例示するように、取得部２ａ、算出部２ｂ、カウント部２ｃおよび送信部２ｄとして機能する。
【００１９】
また、センサ２は、ＮＩＣ（（Network  Interface  Card）等で実現される不図示の通信制御部を備え、この通信制御部が、制御部とネットワーク５を介したコントローラ３等の外部の装置との通信を制御する。また、センサ２は、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子等で実現される不図示の記憶部を備える。
【００２０】
取得部２ａは、センサデータを取得する。具体的には、取得部２ａは、外界の物理情報をセンシングし、デジタル値に変換し、これをセンサデータとする。物理情報としては、例えば、触覚センサにおける接触物体との力学的関係を示す圧力等の情報や、視覚センサにおける対象物の位置情報等が例示される。
【００２１】
算出部２ｂは、センサデータを用いて、該センサデータが改ざんされていないことが検証可能な改ざん検知情報を算出する。また、カウント部２ｃは、改ざん検知情報が算出された回数をカウントする。また、送信部２ｄは、センサデータまたは、算出部２ｂが改ざん検知情報を算出した場合には、センサデータに代えて該改ざん検知情報を、コントローラ３に送信する。
【００２２】
具体的には、算出部２ｂは、センサデータとカウント部２ｃがカウントして記憶部に記憶させたカウント値とを用いて、改ざん検知情報としてＭＡＣ値を算出する。また、送信部２ｄは、取得部２ａが取得したセンサデータをコントローラ３に送信し、所定のＮ回ごとに、センサデータを送信せずに、算出部２ｂが算出したＭＡＣ値をコントローラ３に送信する。
【００２３】
例えば、算出部２ｂは、送信部２ｄがセンサデータをコントローラ３へ（Ｎ−１）回送信するごとに、１〜（Ｎ−１）回目のセンサデータと、カウント部２ｃがカウントしたカウンタ値とを用いて、ＭＡＣ値を算出する。算出部２ｂがＭＡＣ値の算出に用いるセンサデータは、１〜（Ｎ−１）回目のセンサデータの一部でもよく、例えば（Ｎ−１）回目のセンサデータのみでもよい。
【００２４】
このＭＡＣ値は、センサ２とコントローラ３とが共有する共通鍵を用いて算出される。また、算出部２ｂがＭＡＣ値を算出した場合に、カウント部２ｃが記憶部のカウンタ値を更新する。
【００２５】
送信部２ｄがＴ回目にセンサデータまたはＭＡＣ値を送信するに際し、算出部２ｂは、Ｔ＝ｋＮ（ｋ＝１，２，…）において、Ｔ＝ｋＮ−１のセンサデータと、現在のカウンタ値とを用いてＭＡＣ値を算出する。
【００２６】
ここで、図２および図３は、検知システム１の処理を説明するための説明図である。図２には、この場合の検知システム１の処理（Ｎ＝２）が例示されている。図２に示す例では、送信部２ｄは、Ｔ＝ｋには、センサデータ（Ｔ＝ｋ）、Ｔ＝ｋ＋２には、センサデータ（Ｔ＝ｋ＋２）をコントローラ３に送信している。
【００２７】
また、送信部２ｄは、コントローラ３に、Ｔ＝ｋ＋１にはセンサデータ（Ｔ＝ｋ＋１）を送信せずに、センサデータ（Ｔ＝ｋ）を用いて算出されたＭＡＣ値（Ｔ＝ｋ）を送信している。同様に、送信部２ｄは、コントローラ３に、Ｔ＝ｋ＋３にはセンサデータ（Ｔ＝ｋ＋３）を送信せずに、センサデータ（Ｔ＝ｋ＋２）を用いて算出されたＭＡＣ値（Ｔ＝ｋ＋２）を送信している。
【００２８】
あるいは、算出部２ｂは、送信部２ｄによるセンサデータの送信の履歴とセンサデータとを用いてＭＡＣ値を算出して改ざん検知情報としてもよい。図３には、この場合の検知システム１の処理（Ｎ＞２）が例示されている。
【００２９】
例えば、Ｔ回目のセンサデータまたはＭＡＣ値の送信の履歴を示す送信履歴情報（Ｔ）は、所定のハッシュ関数を用いた次式（１）で算出される値とする。送信部２ｄがセンサデータまたはＭＡＣ値を送信した場合に、算出部２ｂが送信履歴情報（Ｔ）を算出して記憶部の送信履歴情報（Ｔ−１）を更新する。
【００３０】
送信履歴情報（Ｔ）＝Ｈａｓｈ（センサデータ（Ｔ），送信履歴情報（Ｔ−１））        …（１）
【００３１】
算出部２ｂは、Ｔ＝Ｎには、送信履歴情報（Ｔ−１）と現在のカウンタ値とを用いてＭＡＣ値を算出する。また、算出部２ｂがＭＡＣ値を算出した場合に、カウント部２ｃが記憶部のカウンタ値を更新する。
【００３２】
図３に示す例において、送信部２ｄは、Ｔ＝１には、センサデータ（Ｔ＝１）、…、Ｔ＝Ｎ−１には、センサデータ（Ｔ＝Ｎ−１）をコントローラ３に送信している。また、送信部２ｄは、Ｔ＝Ｎには、送信履歴情報（Ｔ−１）とカウンタ値とを用いて算出されたＭＡＣ値をコントローラ３に送信している。
【００３３】
同様に、送信部２ｄは、Ｔ≠ｋＮ（ｋ＝１，２，…）には、センサデータ（Ｔ）をコントローラ３に送信している。また、送信部２ｄは、Ｔ＝ｋＮには、送信履歴情報（Ｔ−１）とカウンタ値とを用いて算出されたＭＡＣ値をコントローラ３に送信する。
【００３４】
なお、検知システム１は、Ｎ＝２の場合にも、図３に例示した処理を行ってもよい。
【００３５】
［コントローラの構成］
図１の説明に戻る。コントローラ３は、例えばパソコン等の汎用コンピュータで実現され、図１に例示するように、ＣＰＵ（Central  Processing  Unit）等で実現される制御部が、受信部３ａ、検証部３ｂ、カウント部３ｃ、指令部３ｄおよび推定部３ｅとして機能する。
【００３６】
また、コントローラ３は、ＮＩＣ等で実現される不図示の通信制御部を備え、この通信制御部が、制御部とネットワーク５を介したセンサ２等の外部の装置との通信を制御する。また、コントローラ３は、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される不図示の記憶部を備える。
【００３７】
受信部３ａは、センサ２から送信されたセンサデータまたは改ざん検知情報を受信する。具体的には、受信部３ａは、Ｔ＝１〜（Ｎ−１）には、センサ２からセンサデータを受信し、Ｔ＝Ｎには、センサ２からＭＡＣ値を受信する。同様に、受信部３ａは、Ｔ≠ｋＮ（ｋ＝１，２，…）には、センサ２からセンサデータを受信し、Ｔ＝ｋＮには、センサ２からＭＡＣ値を受信する。
【００３８】
検証部３ｂは、受信部３ａが改ざん検知情報を受信した場合に、受信部３ａが直前に受信したセンサデータを用いて該改ざん検知情報を検証する。また、カウント部３ｃは、改ざん検知情報が検証された回数をカウントする。
【００３９】
具体的には、検証部３ｂは、Ｔ＝ｋＮにおいてセンサ２からＭＡＣ値を受信した場合に、Ｔ＝（ｋ−１）Ｎ＋１〜ｋＮ−１にセンサ２から受信したセンサデータと、カウント部３ｃがカウントして記憶部に記憶させたカウンタ値とを用いて、ＭＡＣ値を算出する。また、検証部３ｂは、算出したＭＡＣ値とセンサ２から受信したＭＡＣ値との比較検証を行う。また、検証部３ｂがＭＡＣ値を算出した場合に、カウント部３ｃが記憶部のカウンタ値を更新する。
【００４０】
例えば、図２に示した例においては、検証部３ｂは、算出部２ｂと同様に、Ｔ＝ｋＮ（Ｎ＝２，ｋ＝１，２，…）において、Ｔ＝ｋＮ−１のセンサデータ、現在のカウンタ値、およびセンサ２とコントローラ３とが共有する共通鍵とを用いてＭＡＣ値を算出する。また、検証部３ｂは、算出したＭＡＣ値とセンサ２から受信したＭＡＣ値との比較検証を行う。
【００４１】
双方が一致した場合には、検証部３ｂは、センサ２が正当であることを認証し、センサデータに改ざんがないものと判定する。一方、双方が一致しなかった場合には、検証部３ｂは、センサデータの改ざんを検知したものと判定する。この場合には、例えばコントローラ３に備わる不図示のディスプレイ等の出力部や管理サーバ等の外部の装置にエラーメッセージを出力する等して通知する。
【００４２】
また、図３に示した例においては、検証部３ｂは、受信部３ａによるセンサデータの受信の履歴とセンサデータとを用いてＭＡＣ値を検証する。具体的には、Ｔ回目のセンサデータまたはＭＡＣ値の受信の履歴を示す受信履歴情報（Ｔ）は、上記式（１）と同様に、所定のハッシュ関数を用いた次式（２）で算出される値とする。受信部３ａがセンサデータまたはＭＡＣ値を受信した場合に、検証部３ｂが受信履歴情報（Ｔ）を算出して記憶部の受信履歴情報（Ｔ−１）を更新する。
【００４３】
受信履歴情報（Ｔ）＝Ｈａｓｈ（センサデータ（Ｔ），受信履歴情報（Ｔ−１））        …（２）
【００４４】
検証部３ｂは、Ｔ＝Ｎには、受信履歴情報（Ｔ−１）と現在のカウンタ値とを用いてＭＡＣ値を算出する。また、検証部３ｂがＭＡＣ値を算出した場合に、カウント部３ｃが記憶部のカウンタ値を更新する。
【００４５】
また、検証部３ｂは、算出したＭＡＣ値とセンサ２から受信したＭＡＣ値との比較検証を行う。上記と同様に、双方が一致した場合には、検証部３ｂは、センサ２が正当であることを認証し、センサデータに改ざんがないものと判定する。一方、双方が一致しなかった場合には、検証部３ｂは、センサデータの改ざんを検知したものと判定する。
【００４６】
ここで、図４は、検証部３ｂの処理を説明するための説明図である。図４に例示するように、検証部３ｂは、Ｔ＝（ｋ−１）Ｎ＋１〜ｋＮ−１にパケットロスがなかった場合にのみ、算出したＭＡＣ値とセンサ２から受信したＭＡＣ値との比較検証を行う。検証部３ｂは、Ｔ＝（ｋ−１）Ｎ＋１〜ｋＮ−１にパケットロスがあった場合には、比較検証の処理をスキップする。
【００４７】
図４に示す例では、Ｔ＝１〜Ｎ−１にパケットロスがなかった場合に、検証部３ｂは、Ｔ＝Ｎにおいて受信したＭＡＣ値１と算出したＭＡＣ値との比較検証を行っている。また、Ｔ＝Ｎ＋１〜２Ｎ−１にパケットロスがなかった場合に、検証部３ｂは、Ｔ＝２Ｎにおいて受信したＭＡＣ値２と算出したＭＡＣ値との比較検証を行っている。
【００４８】
なお、図４には、例えば図３に例示した方式により、Ｔ＝（ｋ−１）Ｎ＋１〜ｋＮ−１のセンサデータが反映されたＭＡＣ値を算出した場合が例示されている。
【００４９】
図１の説明に戻る。指令部３ｄは、受信部３ａがセンサデータを受信した場合に、該センサデータを用いてアクチュエータ４に対する指令を算出する。また、指令部３ｄは、算出した指令をアクチュエータ４に送信する。これにより、センサデータに基づいてアクチュエータ４を制御することが可能となる。
【００５０】
推定部３ｅは、受信部３ａがＭＡＣ値を受信した場合に、受信部３ａが直前に受信したセンサデータと、指令部３ｄが該センサデータを用いて算出した指令とを用いて、センサデータを推定する。
【００５１】
具体的には、推定部３ｅは、センサデータ（Ｔ＝ｋＮ−１）と、このセンサデータ（Ｔ＝ｋＮ−１）を用いて算出された指令とを用いて、センサデータ（Ｔ＝ｋＮ）を推定し、指令部３ｄに通知する。
【００５２】
同様に、推定部３ｅは、パケットロスがあった場合に、当該パケットを推定する。すなわち、推定部３ｅは、センサデータのパケットロスがあった場合には、受信部３ａが直前に受信したセンサデータと、指令部３ｄがこのセンサデータを用いて算出した指令とを用いて、センサデータを推定する。また、推定部３ｅは、ＭＡＣ値のパケットロスがあった場合には、ＭＡＣ値の比較検証は行わず、センサデータの推定のみを行う。
【００５３】
推定部３ｅは、推定したセンサデータを指令部３ｄに通知する。指令部３ｄは、推定されたセンサデータを用いてアクチュエータ４に対する指令を算出し、アクチュエータ４に送信する。これにより、センサデータを補完して、センサデータに基づくアクチュエータ４の制御遅延や制御性能の低下を抑止することができる。
【００５４】
なお、センサデータを推定して補完する方式は、上記に限定されず、例えば、予め決められた規則によりＮ回目のセンサデータを決定してもよい。
【００５５】
［検知処理］
図５は、本実施形態に係る検知システム１による検知処理手順を示すシーケンス図である。図５のシーケンスは、例えば、開始を指示する操作入力があったタイミングで開始される。
【００５６】
まず、センサ２の取得部２ａが、物理情報のセンシングを行ってデジタル値に変換し、センサデータを取得する（ステップＳ１）。また、送信部２ｄが、取得されたセンサデータをコントローラ３に送信する（ステップＳ２）。
【００５７】
コントローラ３では、受信部３ａが受信したセンサデータを用いて、指令部３ｄが、アクチュエータ４に対する指令を算出し（ステップＳ３）、アクチュエータ４に送信する。これにより、センサデータを用いてアクチュエータ４が制御される。
【００５８】
センサ２では、送信部２ｄが、所定のＮ回ごとに、センサデータの代わりに、算出部２ｂが算出したＭＡＣ値を、コントローラ３に送信する（ステップＳ４〜Ｓ５）。例えば、算出部２ｂは、（Ｎ−１）回目に送信したセンサデータと、ＭＡＣ値の算出回数のカウント値と、共通鍵とを用いて、ＭＡＣ値を算出する。あるいは、算出部２ｂは、１〜（Ｎ−１）回までに送信したセンサデータのハッシュ関数を用いて、ＭＡＣ値を算出する。
【００５９】
コントローラ３では、受信部３ａがＭＡＣ値を受信した場合に、検証部３ｂが、センサ２の算出部２ｂと同様の方式で、直前に受信したセンサデータを用いてＭＡＣ値を算出し、算出したＭＡＣ値と受信したＭＡＣ値との比較検証を行う（ステップＳ６）。
【００６０】
双方が一致した場合には、検証部３ｂは、センサ２が正当であることを認証し、センサデータに改ざんがないものと判定する。なお、双方が一致しなかった場合には、検証部３ｂは、センサデータの改ざんを検知したものと判定し、例えばエラーメッセージを出力する。
【００６１】
また、コントローラ３では、受信部３ａがセンサデータの代わりにＭＡＣ値を受信した場合や、パケットロスが発生した場合に、推定部３ｅは、直前に受信したセンサデータと、このセンサデータから算出された指令とを用いて、センサデータを推定する（ステップＳ７）。また、推定部３ｅは、推定したセンサデータを指令部３ｄに通知する。
【００６２】
指令部３ｄは、推定されたセンサデータを用いてアクチュエータ４に対する指令を算出し、アクチュエータ４に送信する。これにより、一連の検知処理が終了する。
【００６３】
以上、説明したように、本実施形態の検知システム１において、センサ２では、取得部２ａがセンサデータを取得する。算出部２ｂが、センサデータを用いて該センサデータが改ざんされていないことが検証可能なＭＡＣ値を算出する。送信部２ｄが、センサデータまたは、算出部２ｂがＭＡＣ値を算出した場合には、センサデータに代えて該ＭＡＣ値を、コントローラ３に送信する。コントローラ３では、受信部３ａが、センサ２から送信されたセンサデータまたはＭＡＣ値を受信する。受信部３ａがＭＡＣ値を受信した場合に、検証部３ｂが、受信部３ａが直前に受信したセンサデータを用いて該ＭＡＣ値を検証する。
【００６４】
このように、本実施形態の検知システム１では、通信データ量を増加させないため、通信遅延の発生やサンプリング周波数の減少を抑止できる。また、センサデータに代えてＭＡＣ値を送信するため、通信プロトコルに影響がない。これにより、制御システムの制御性能の悪化を抑止して、正当なセンサ２から受信した改ざんのないセンサデータであることを検知することが可能となる。
【００６５】
また、センサ２は、ＭＡＣ値が算出された回数をカウントするカウント部２ｃをさらに備え、算出部２ｂは、センサデータとカウント部２ｃがカウントした回数とを用いてＭＡＣ値を算出する。この場合に、コントローラ３は、ＭＡＣ値が検証された回数をカウントするカウント部３ｃをさらに備え、検証部３ｂは、受信部３ａがＭＡＣ値を受信した場合に、受信部３ａが直前に受信したセンサデータとカウント部３ｃがカウントした回数とを用いてＭＡＣ値を検証する。これにより、ＭＡＣ値の検証の精度が高くなる。
【００６６】
また、センサ２の算出部２ｂは、送信部２ｄによるセンサデータの送信の履歴とセンサデータとを用いてＭＡＣ値を算出する。この場合に、コントローラ３の検証部３ｂは、受信部３ａによるセンサデータの受信の履歴とセンサデータとを用いてＭＡＣ値を検証する。これにより、ＭＡＣ値の検証の精度が高くなる。
【００６７】
また、コントローラ３では、指令部３ｄが、受信部３ａがセンサデータを受信した場合に、該センサデータを用いてアクチュエータ４に対する指令を算出する。また、推定部３ｅが、受信部３ａがＭＡＣ値を受信した場合に、受信部３ａが直前に受信したセンサデータと、指令部３ｄが該センサデータを用いて算出した指令とを用いて、センサデータを推定する。これにより、センサデータに基づくアクチュエータ４の制御遅延や制御性能の低下を抑止することができる。
【００６８】
なお、ＭＡＣ値を送受する頻度を表す上記の所定のＮは、制御システムの制御性能とセキュリティ性能とを考慮して予め決定される。Ｎが小さいと、センサデータの抜けが多くなり、コントローラ３がアクチュエータ４の制御を正確に行えなくなるので制御システムの制御性能が低下する。一方、Ｎが大きいと、改ざんを検知するまでの遅延（検知遅延）が大きくなり、攻撃者に与える攻撃の余地が大きくなり、セキュリティ性能が低下する。
【００６９】
そこで、許容できる制御性能の悪化の上限と、許容できる検知遅延の上限とを設定し、Ｎのとり得る値の範囲を決定する。設計者は、制御性能と検知遅延抑制とのどちらに重きを置くかを考慮して、Ｎをとり得る値の範囲の上限に設定して制御性能を優先したり、Ｎをとり得る値の範囲の下限に設定して検知遅延抑制を優先したりすることが可能となる。制御性能と検知遅延抑制との重要度に重み付けして、重みに応じてとり得る値の範囲からＮを選択してもよい。このように、検知システム１では、制御性能とセキュリティ性能とを考慮して、柔軟にＮを設定することができる。
【００７０】
［プログラム］
上記実施形態に係る作成装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、検知システム１は、パッケージソフトウェアやオンラインソフトウェアとして上記の検知処理を実行する検知プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検知プログラムを情報処理装置に実行させることにより、情報処理装置をセンサ２およびコントローラ３として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などがその範疇に含まれる。以下に、センサ２およびコントローラ３と同様の機能を実現する検知プログラムを実行するコンピュータの一例を説明する。
【００７１】
図６は、検知プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００７２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１０５１およびキーボード１０５２が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１０６１が接続される。
【００７３】
ここで、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ１０３１やメモリ１０１０に記憶される。
【００７４】
また、検知プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、ハードディスクドライブ１０３１に記憶される。具体的には、上記実施形態で説明した作成装置１０が実行する各処理が記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【００７５】
また、検知プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えば、ハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００７６】
なお、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮやＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００７７】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００７８】
１  検知システム
２  センサ
２ａ  取得部
２ｂ  算出部
２ｃ  カウント部
２ｄ  送信部
３  コントローラ
３ａ  受信部
３ｂ  検証部
３ｃ  カウント部
３ｄ  指令部
３ｅ  推定部
４  アクチュエータ
５  ネットワーク
【図１】
2019193083.tif 000003
【図２】
2019193083.tif 000004
【図３】
2019193083.tif 000005
【図４】
2019193083.tif 000006
【図５】
2019193083.tif 000007
【図６】
2019193083.tif 000008