(57)【要約】  情報処理装置（１）が、端末装置（２）から操作された制御命令が第１の条件を満たす場合、制御命令が第１の条件に関連した追加条件を含む内容であるかを解析する解析部（１４２ｂ）と、制御命令が第１の条件に関連した追加条件を含む内容であると解析された場合、制御命令が追加条件を満たすか否かを判定する追加条件判定部（１４２ｃ）と、追加条件を満たすと判定された場合、制御命令が第２の条件を満たすか否かを判定する第２の判定部（１４２ｄ）と、第２の判定部の判定に応じた処理を実行する処理部（１４３、１４４）と、を有するので、外部から送信された制御命令に関わる実行の信頼性を向上させることができる。
2015097760.tif 000002
【特許請求の範囲】
【請求項１】
端末装置から操作された制御命令を実行する情報処理装置において、
前記端末装置から操作された制御命令が第１の条件を満たす場合、前記制御命令が前記第１の条件に関連した追加条件を含む内容であるかを解析する解析部と、
前記解析部によって前記制御命令が前記第１の条件に関連した追加条件を含む内容であると解析された場合、前記制御命令が追加条件を満たすか否かを判定する追加条件判定部と、
前記追加条件判定部によって追加条件を満たすと判定された場合、前記制御命令が第２の条件を満たすか否かを判定する第２の判定部と、
前記第２の判定部の判定に応じた処理を実行する処理部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記処理部は、前記第２の判定部によって前記制御命令が前記第２の条件を満たすと判定された場合、前記制御命令の実行を中止する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記追加条件判定部は、前記端末装置から操作された制御命令を受け取る都度記憶する制御命令の履歴を用いて、前記端末装置から操作された制御命令が過去に操作された制御命令との関係において追加条件を満たすか否かを判定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の条件、前記追加条件および前記第２の条件は、前記制御命令が悪意とみなされる条件である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
端末装置から操作された制御命令を実行するコンピュータに、
前記端末装置から操作された制御命令が第１の条件を満たす場合、前記制御命令が前記第１の条件に関連した追加条件を含む内容であるかを解析し、
前記解析する処理によって前記制御命令が前記第１の条件に関連した追加条件を含む内容であると解析された場合、前記制御命令が追加条件を満たすか否かを判定し、
前記判定する処理によって追加条件を満たすと判定された場合、前記制御命令が第２の条件を満たすか否かを判定し、
前記判定に応じた処理を実行する
処理を実行させることを特徴とするデータフィルタリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびデータフィルタリングプログラムに関する。
【背景技術】
【０００２】
従来から、異なるネットワーク間の接続装置としての機能を有する車載装置が存在することが知られている（例えば、特許文献１参照）。かかる技術では、車載装置は、例えば携帯端末より、車載装置を制御するための操作内容を示す操作情報と携帯端末を特定する情報とを含む制御情報を受信する。そして、車載装置は、制御情報を送信してきた携帯端末が、キーレスエントリが認められている携帯端末であることを条件として、操作情報で特定される操作を受け付けるか否かを判別し、受け付ける場合、操作情報に従った処理を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１４８４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の車載装置では、外部から送信されたデータが悪意のあるデータであっても、送信元が認められたデータであればデータに従った処理を実行してしまうという問題がある。例えば、従来技術では、車載装置は、操作情報と携帯端末を特定する情報とを含む制御情報を送信してきた携帯端末が、キーレスエントリが認められている携帯端末であれば、操作情報で特定される操作が許可されている機能を、操作情報に従って実行する。したがって、車載装置は、操作情報が悪意を有する情報であっても、送信元の携帯端末が認められた操作情報であれば、操作情報で特定される操作が許可されている機能を実行してしまう。【０００５】
１つの側面では、外部から送信されたデータに関わる実行の信頼性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
１つの案では、情報処理装置は、端末装置から操作された制御命令を実行する情報処理装置において、端末装置から操作された制御命令が第１の条件を満たす場合、前記制御命令が前記第１の条件に関連した追加条件を含む内容であるかを解析する解析部と、前記解析部によって前記制御命令が前記第１の条件に関連した追加条件を含む内容であると解析された場合、前記制御命令が追加条件を満たすか否かを判定する追加条件判定部と、前記追加条件判定部によって追加条件を満たすと判定された場合、前記制御命令が第２の条件を満たすか否かを判定する第２の判定部と、前記第２の判定部の判定に応じた処理を実行する処理部と、を有する。
【発明の効果】
【０００７】
１つの態様によれば、外部から送信されたデータに関わる実行の信頼性を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例に係るデータフィルタリングシステムの構成を示すブロック図である。
【図２】図２は、実施例に係る情報処理装置の構成を示すブロック図である。
【図３】図３は、実施例に係るフィルタリング条件記憶部のデータ構造の一例を示す図である。
【図４】図４は、実施例に係るログ記憶部のデータ構造の一例を示す図である。
【図５】図５は、実施例に係るデータフィルタリング処理のフローチャートを示す図である。
【図６】図６は、データフィルタリングプログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する情報処理装置およびデータフィルタリングプログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１０】
［データフィルタリングシステムの構成］
図１は、実施例に係るデータフィルタリングシステムの構成を示すブロック図である。図１に示すように、データフィルタリングシステム９は、情報処理装置１と、端末装置２と、車両機器３とを有する。データフィルタリングシステム９は、端末装置２と情報処理装置１との間で通信接続を確立し、情報処理装置１から車両機器３へ種々の通信を実行する。端末装置２と情報処理装置１との間の通信接続には、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）のような近距離無線通信による接続が挙げられる。【００１１】
車両機器３は、車両に搭載された機器であり、例えば、ドライバーズシート、ハンドル、アクセル、ブレーキおよびメータ等が含まれる。【００１２】
端末装置２は、操作機能と通信機能を備え、例えば、携帯型コンピュータを示すタブレット、スマートフォン、携帯電話、ＰＨＳ（Personal  Handyphone  System）、ＰＤＡ（Personal  Digital  Assistance）等の携帯用の端末装置に対応する。すなわち、端末装置２は、通信機能を備え、車両に持ち込み可能な端末装置であれば良い。【００１３】
端末装置２には、制御アプリ２１がインストールされる。制御アプリ２１は、車両機器３を制御するためのアプリケーションである。一例として、制御アプリ２１は、ドライバーズシートを制御するアプリケーションであったり、ハンドルを制御するアプリケーションであったり、アクセルを制御するアプリケーションであったりする。つまり、データフィルタリングシステム９では、例えば車両を運転する運転者が、車両に端末装置２を持ち込んで、端末装置２を、制御アプリ２１を介して車両のコントロールパネルとして利用する。運転者は、例えば、端末装置２に搭載された操作ボタンにより、制御アプリ２１を起動する。制御アプリ２１が起動されると、操作に応じた制御指示を情報処理装置１へ出力する。ここで、制御アプリ２１は、例えば、車両を生産した正当なメーカーのサイトからダウンロードされる。ところが、この制御アプリ２１が、ウィルス感染して、改竄される場合がある。制御アプリ２１が改竄されると、例えば、改竄された制御アプリ２１は、改竄の内容に応じて、悪意のあるデータを車両機器３に対して実行するおそれがある。そこで、制御アプリ２１が改竄された場合に、後述する情報処理装置１は、悪意のあるデータをフィルタリング（選別）する。なお、制御アプリ２１は、運転者が端末装置２に搭載された操作ボタンにより起動されるものと説明したが、これに限定されない。制御アプリ２１は、端末装置２の電源がＯＮされたタイミングでメモリに常駐するようにしても良い。【００１４】
情報処理装置１は、車両の外部から操作されたデータを車両に実行する際、データのシーケンスと車両の状態とを検証して、悪意のあるデータをフィルタリングする。ここでいうデータのシーケンスとは、例えば、操作されたデータの過去から現在までの振る舞いのことをいう。なお、車両の外部から操作されたデータを、以降では、「制御コマンド」というものとする。【００１５】
［情報処理装置の構成］
図２は、実施例に係る情報処理装置の構成を示すブロック図である。図２に示すように、情報処理装置１は、通信制御Ｉ／Ｆ部１１，１２と、記憶部１３と、制御部１４とを有する。通信制御Ｉ／Ｆ部１１は、端末装置２との通信を制御するインタフェースである。通信制御Ｉ／Ｆ部１２は、車両機器３との通信を制御するインタフェースである。【００１６】
記憶部１３は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。また、記憶部１３は、フィルタリング条件記憶部１３１と、ログ記憶部１３２とを有する。【００１７】
フィルタリング条件記憶部１３１は、外部から操作された制御コマンドを選別（フィルタリング）する条件を複数パターン記憶する。すなわち、フィルタリング条件記憶部１３１は、悪意のある制御コマンドを検知するために用いられる条件を記憶する。フィルタリング条件記憶部１３１は、例えば、制御アプリ２１が端末装置２にダウンロードされるタイミングで、制御アプリ２１のダウンロード元からダウンロードされる。なお、フィルタリング条件記憶部１３１のデータ構造は、後述する。【００１８】
ログ記憶部１３２は、外部から操作された制御コマンドをログとして記憶する。ログ記憶部１３２は、後述するフィルタリング部１４２によって記憶される。なお、ログ記憶部１３２のデータ構造は、後述する。【００１９】
制御部１４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部１４は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路の電子回路に対応する。または、制御部１４は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。また、制御部１４は、車両状態検知部１４１と、フィルタリング部１４２と、実行処理部１４３と、異常処理部１４４とを有する。【００２０】
車両状態検知部１４１は、車両機器３の車両状態を検知する。例えば、車両状態検知部１４１は、車両状態として、車両が停車中であるか、駐車中であるか、加速中であるか、減速中であるか、左折中であるか、右折中であるか等を検知する。【００２１】
フィルタリング部１４２は、フィルタリング条件記憶部１３１に記憶されたフィルタリング条件に基づいて、ログ記憶部１３２に記憶されたログおよび車両状態を参照して、外部から操作された制御コマンドをフィルタリングする。また、フィルタリング部１４２は、第１の判定部１４２ａと、解析部１４２ｂと、追加条件判定部１４２ｃと、第２の判定部１４２ｄとを有する。【００２２】
ここで、フィルタリング条件記憶部１３１のデータ構造を、図３を参照して説明する。図３は、実施例に係るフィルタリング条件記憶部のデータ構造の一例を示す図である。図３に示すように、フィルタリング条件記憶部１３１は、シーケンスの条件として第１の条件１３１ｂおよび追加条件１３１ｃを、コマンドＩＤ（identification）１３１ａと対応付けて記憶する。また、フィルタリング条件記憶部１３１は、車両状態の条件として第２の条件１３１ｄを、コマンドＩＤ１３１ａと対応付けて記憶する。さらに、フィルタリング条件記憶部１３１は、実行許否１３１ｅをコマンドＩＤ１３１ａと対応付けて記憶する。なお、図３のコマンドの意味１３１ｆは、このコマンドがどんな意図を持ったものかを示す補足説明である。【００２３】
コマンドＩＤ１３１ａは、端末装置２から操作された制御コマンドの識別子である。コマンドＩＤ１３１ａは、操作毎に異なる。シーケンスの条件としての第１の条件１３１ｂには、コマンドＩＤ１３１ａが示すコマンドについて、悪意の可能性がある条件が設定される。シーケンスの条件としての追加条件１３１ｃは、第１の条件１３１ｂに関連した条件である。追加条件１３１ｃには、コマンドＩＤ１３１ａが示すコマンドのシーケンス（振る舞い）に関し、悪意の可能性がある条件が設定される。【００２４】
車両状態の条件としての第２の条件１３１ｄには、車両機器３の状態に関し、コマンドＩＤ１３１ａが示すコマンドが受け付けられた時の悪意の可能性がある条件が設定される。実行許否１３１ｅは、コマンドＩＤ１３１ａが示すコマンドの実行の許否である。例えば、実行許否１３１ｅには、実行が許されることを示す「ＯＫ」、実行が許されないことを示す「ＮＧ」のどちらか一方が設定される。なお、後述するフィルタリング部１４２は、追加条件１３１ｃが設定されている場合、コマンドＩＤ１３１ａが示すコマンドが、第１の条件１３１ｂ、追加条件１３１ｃおよび第２の条件１３１ｄを全て満たせば、実行許否１３１ｅに応じた処理を実行する。例えば、実行許否１３１ｅが「ＮＧ」であれば、実行が中止される。また、フィルタリング部１４２は、追加条件１３１ｃが設定されていない場合、コマンドＩＤ１３１ａが示すコマンドが、第１の条件１３１ｂおよび第２の条件１３１ｄを全て満たせば、実行許否１３１ｅに応じた処理を実行する。例えば、実行許否１３１ｅが「ＮＧ」であれば、実行が中止される。【００２５】
一例として、コマンドＩＤ１３１ａが「６３９」である場合、コマンドの意味１３１ｆとして「シート移動」と記憶している。シーケンスの条件について、第１の条件１３１ｂとして「シート位置を前又は後に動かすこと」、追加条件１３１ｃとして「３回／秒以上」と記憶している。車両状態の条件について、第２の条件１３１ｄとして「駐車中以外」と記憶している。実行許否１３１ｅとして「ＮＧ」と記憶している。すなわち、コマンドＩＤ１３１ａが示す「６３９」のコマンドが、「シート位置を前又は後に動かす」コマンドであって、「３回／秒以上」受け付けられ、車両機器３が「駐車中以外」であれば、当該コマンドの実行が中止される。つまり、「シート位置を前又は後に動かす」コマンドが「３回／秒以上」受け付けられていれば、車両が走行していることを条件に、当該コマンドが悪意のあるコマンドであると判断される。車両が動作中にシート位置が何度も移動すると、危険であるからである。一方、「６３９」のコマンドが、「シート位置を前又は後に動かす」コマンドであっても、「３回／秒以上」受け付けられていなければ、実行が進行される。つまり、「シート位置を前又は後に動かす」コマンドが「３回／秒以上」受け付けられていなければ、シート位置が移動しても危険ではないので、当該コマンドが悪意のあるコマンドでないと判断される。また、「６３９」のコマンドが、「シート位置を前又は後に動かす」コマンドであって、「３回／秒以上」受け付けられていても、車両機器３が「駐車中以外」でなければ（駐車中であれば）、実行が進行される。つまり、「シート位置を前又は後に動かす」コマンドが「３回／秒以上」受け付けられていても、車両が駐車していれば、シート位置が移動しても安全であるので、当該コマンドが悪意のあるコマンドでないと判断される。【００２６】
他の例として、コマンドＩＤ１３１ａが「６４０」である場合、コマンドの意味１３１ｆとして「ハンドル移動」と解釈している。シーケンスの条件について、第１の条件１３１ｂとして「ハンドル舵角を左右に４５度動かすこと」、追加条件１３１ｃとして「３回／秒以上」と記憶している。車両状態の条件について、第２の条件１３１ｄとして「時速４ｋｍ以上での走行時」と記憶している。実行許否１３１ｅとして「ＮＧ」と記憶している。すなわち、コマンドＩＤ１３１ａが示す「６４０」のコマンドが、「ハンドル舵角を左右に４５度動かす」コマンドであって、「３回／秒以上」受け付けられ、車両機器３が「時速４ｋｍ以上での走行時」であれば、実行が中止される。つまり、「ハンドル舵角を左右に４５度動かす」コマンドが「３回／秒以上」受け付けられていれば、車両が時速４ｋｍ以上で走行中であることを条件に、当該コマンドが悪意のあるコマンドであると判断される。車両が時速４ｋｍ以上で走行中にハンドル舵角を左右に４５度に何度も移動すると、危険であるからである。一方、「６４０」のコマンドが、「ハンドル舵角を左右に４５度動かす」コマンドであっても、「３回／秒以上」受け付けられていなければ、実行が進行される。つまり、「ハンドル舵角を左右に４５度動かす」コマンドが「３回／秒以上」受け付けられていなければ、当該コマンドが悪意のあるコマンドでないと判断される。また、「６４０」のコマンドが、「ハンドル舵角を左右に４５度動かす」コマンドであって、「３回／秒以上」受け付けられていても、車両機器３が「時速４ｋｍ以上での走行時」でなければ、実行が進行される。つまり、「ハンドル舵角を左右に４５度動かす」コマンドが「３回／秒以上」受け付けられていても、車両が時速４ｋｍ以上で走行中でなければ、当該コマンドが悪意のあるコマンドでないと判断される。これは車庫入れやクランクでの切り返しを想定したものである。【００２７】
なお、図３で示したフィルタリング条件記憶部１３１に記憶された第１の条件１３１ｂ、追加条件１３１ｃおよび第２の条件１３１ｄは、例示であり、これに限定されるものでない。【００２８】
次に、ログ記憶部１３２のデータ構造を、図４を参照して説明する。図４は、実施例に係るログ記憶部のデータ構造の一例を示す図である。図４に示すように、ログ記憶部１３２は、コマンド受信時刻１３２ａ、コマンドＩＤ１３２ｂ、データ長１３２ｃおよびデータ本文１３２ｄを対応付けて記憶する。なお、図４のコマンドＩＤの意味１３２ｅおよびコマンドの意味１３２ｆは、このコマンド全体の意図を示す補足説明であり、データ構造の実体ではない。コマンド受信時刻１３２ａは、端末装置２から操作された制御コマンドが受信された時刻である。コマンドＩＤ１３２ｂは、端末装置２から操作された制御コマンドの識別子であり、フィルタリング条件記憶部１３１のコマンドＩＤ１３１ａに対応する。コマンドＩＤ１３２ｂには、制御コマンドに含まれるコマンドＩＤが設定される。データ長１３２ｃは、制御コマンド内のデータの長さ（バイト）である。データ本文１３２ｄは、制御コマンド内のデータの本文である。データ本文１３２ｄには、制御コマンドに含まれるデータの本文が設定される。なお、データ本文とは、詳細な処理動作のことをいい、例えばオペランドで表される。【００２９】
一例として、コマンド受信時刻１３２ａが「２０１３１１３０，１５：３２：３２．１７７」（２０１３年１１月３０日，１５時３２分３２秒１７７ミリ秒）である場合、コマンドＩＤ１３２ｂとして「６３９」と記憶している。データ長１３２ｃとして「２」（バイト）、データ本文１３２ｄとして「００００」と記憶している。これは「シート移動」で「最前部移動」という動作を意味している。【００３０】
図２に戻って、第１の判定部１４２ａは、端末装置２から操作された制御コマンドが第１の条件を満たすか否かを判定する。例えば、第１の判定部１４２ａは、フィルタリング条件記憶部１３１に、受信された制御コマンドのコマンドＩＤ１３１ａが設定されているか否かを判定する。第１の判定部１４２ａは、受信された制御コマンドのコマンドＩＤ１３１ａが設定されていれば、当該制御コマンドが、設定されたコマンドＩＤ１３１ａに対応する第１の条件１３１ｂを満たすか否かを判定する。【００３１】
一例として、図３で示すフィルタリング条件記憶部１３１を用いて説明する。受信された制御コマンドのコマンドＩＤが「６３９」（シート移動）であって、当該制御コマンドのデータの本文が「最前部移動」であることを示す「００００」であったとする。すると、第１の判定部１４２ａは、「６３９」のコマンドＩＤ１３１ａに対応する第１の条件１３１ｂが「シート位置を前又は後に動かすこと」であるので、「最前部移動」をデータの本文とする当該制御コマンドが、第１の条件１３１ｂを満たすと判定する。なお、第１の判定部１４２ａは、端末装置２から操作された制御コマンドが図３で示す全ての第１の条件１３１ｂを満たさなければ、後述する実行処理部１４３に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部１３１の条件の設定内容により、どれかの条件を満たさなければ実行処理部１４３に実行させない、という構成としてもよい。【００３２】
解析部１４２ｂは、制御コマンドが第１の条件を満たす場合、当該制御コマンドが第１の条件に関連した追加条件を含む内容であるかを解析する。例えば、解析部１４２ｂは、フィルタリング条件記憶部１３１に、第１の条件１３１ｂを満たした制御コマンドのコマンドＩＤ１３１ａに対応する追加条件１３１ｃが設定されているかを解析する。解析部１４２ｂは、追加条件１３１ｃが設定されていれば、制御コマンドが第１の条件１３１ｂに関連した追加条件１３１ｃを含む内容であると解析する。一方、解析部１４２ｂは、追加条件１３１ｃが設定されていなければ、制御コマンドが第１の条件１３１ｂに関連した追加条件１３１ｃを含まない内容であると解析する。【００３３】
一例として、図３で示すフィルタリング条件記憶部１３１を用いて説明する。第１の条件１３１ｂを満たした制御コマンドのコマンドＩＤ１３１ａが「６３９」や「６４０」であれば、追加条件１３１ｃが設定されているので、当該制御コマンドが第１の条件１３１ｂに関連した追加条件１３１ｃを含む内容であると解析される。一方、第１の条件１３１ｂを満たした制御コマンドのコマンドＩＤ１３１ａが「６４１」〜「６４６」であれば、追加条件１３１ｃが設定されていないので、当該制御コマンドが第１の条件１３１ｂに関連した追加条件１３１ｃを含まない内容であると解析される。【００３４】
追加条件判定部１４２ｃは、制御コマンドが第１の条件に関連した追加条件を含む内容であると解析された場合、当該制御コマンドが追加条件を満たすか否かを判定する。例えば、追加条件判定部１４２ｃは、ログ記憶部１３２に記憶されたログを用いて、解析部１４２ｃによって追加条件１３１ｃを含む内容であると解析された制御コマンドが過去に操作された制御コマンドとの関係において当該追加条件１３１ｃを満たすか否かを判定する。【００３５】
一例として、図３で示すフィルタリング条件記憶部１３１および図４で示すログ記憶部１３２を用いて説明する。「２０１３１２０１、１４：２０：００．０００」の時点であった場合、受信された制御コマンドのコマンドＩＤが「６３９」（シート移動）であって、当該制御コマンドのデータの本文が「最前部移動」であることを示す「００００」である。このとき追加条件判定部１４２ｃは、過去に遡ってログ記憶部１３２を参照すると、第１の条件１３１ｂを満たす制御コマンド「６３９」が１秒間に３回以上ないので、追加条件１３１ｃを満たさないと判定する。「２０１３１２０１、１４：２０：００．４９９」の時点であった場合も、追加条件判定部１４２ｃは、追加条件１３１ｃを満たさないと判定する。しかし、「２０１３１２０１、１４：２０：００．９９９」の時点である場合、追加条件判定部１４２ｃは、過去に遡ってログ記憶部１３２を参照すると、コマンドＩＤが「６３９」の制御コマンドであって第１の条件１３１ｂを満たす制御コマンドが「・・・１４：２０：００．４９９」、「・・・１４：２０：００．０００」と１秒間に３回以上あるので、追加条件判定部１４２ｃは、追加条件１３１ｃである「３回／秒以上」を満たすと判定する。なお、追加条件判定部１４２ｃは、図３で示す全ての制御コマンドが追加条件１３１ｃを満たさなければ、後述する実行処理部１４３に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部１３１の条件の設定内容により、どれかの条件を満たさなければ実行処理部１４３に実行させない、という構成としてもよい。【００３６】
第２の判定部１４２ｄは、制御コマンドが追加条件を満たすと判定された場合、当該制御コマンドが第２の条件を満たすか否かを判定する。例えば、第２の判定部１４２ｄは、車両状態検知部１４１によって検知された車両状態を用いて、追加条件１３１ｃを満たすと判定された制御コマンドがフィルタリング条件記憶部１３１の該当する第２の条件１３１ｄを満たすか否かを判定する。【００３７】
一例として、図３で示すフィルタリング条件記憶部１３１を用いて説明する。受信された制御コマンドのコマンドＩＤが「６３９」（シート移動）であって、当該制御コマンドのデータの本文が「最前部移動」であることを示す「００００」であったとする。また、車両状態検知部１４１によって検知された車両状態が「駐車中以外」であったとする。すると、第２の判定部１４２ｄは、は、「６３９」のコマンドＩＤ１３１ａに対応する第２の条件１３１ｄが「駐車中以外」であり、車両状態検知部１４１によって検知された車両状態が「駐車中以外」であるので、「６３９」の制御コマンドが第２の条件１３１ｄを満たすと判定する。なお、第２の判定部１４２ｄは、図３で示す全ての制御コマンドが第２の条件１３１ｄを満たさなければ、後述する実行処理部１４３に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部１３１の条件の設定内容により、どれかの条件を満たさなければ実行処理部１４３に実行させない、という構成としてもよい。【００３８】
なお、第２の判定部１４２ｄは、解析部１４２ｂによって制御コマンドが第１の条件１３１ｂに関連した追加条件１３１ｃを含む内容であると解析された場合に、制御コマンドが第２の条件１３１ｄを満たすか否かを判定する。そして、第２の判定部１４２ｄは、制御コマンドが第２の条件１３１ｄを満たさなければ、後述する実行処理部１４３に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部１３１の条件の設定内容により、どれかの条件を満たさなければ実行処理部１４３に実行させない、という構成としてもよい。【００３９】
実行処理部１４３は、制御コマンドが第１の条件、追加条件または第２の条件を満たさないと判定された場合、当該制御コマンドを車両機器３に対して実行する。例えば、実行処理部１４３は、制御コマンドを、該当する車両機器３に対して出力する。これはフィルタリング条件記憶部１３１の条件の設定内容により、どれかの条件を満たさなければ実行処理部１４３に実行させない、という構成としてもよい。【００４０】
異常処理部１４４は、制御コマンドが第２の条件を満たすと判定された場合、当該制御コマンドの実行を中止する。加えて、異常処理部１４４は、当該制御コマンドが異常であることを出力する。一例として、異常処理部１４４は、端末装置２から操作された制御コマンドが異常であることを示す警告信号を、車両機器３に接続された警告ランプに出力する。別の例として、異常処理部１４４は、端末装置２から操作された制御コマンドが異常であることを示す警告文を、情報処理装置１に接続されたモニタに表示する。【００４１】
［データフィルタリング処理のフローチャート］
次に、実施例に係るデータフィルタリング処理のフローチャートを、図５を参照して説明する。図５は、実施例に係るデータフィルタリング処理のフローチャートを示す図である。【００４２】
図５に示すように、フィルタリング部１４２は、端末装置２から操作された制御コマンドを受信したか否かを判定する（ステップＳ１１）。制御コマンドを受信していないと判定した場合（ステップＳ１１；Ｎｏ）、フィルタリング部１４２は、制御コマンドを受信するまで、判定処理を繰り返す。【００４３】
制御コマンドを受信したと判定した場合（ステップＳ１１；Ｙｅｓ）、フィルタリング部１４２は、受信した制御コマンドが妥当であるか否かを判定する（ステップＳ１２）。例えば、フィルタリング部１４２は、受信した制御コマンドのコマンドＩＤが予め定められた実行可能なコマンドＩＤであるか否かを判定する。また、フィルタリング部１４２は、受信した制御コマンドに含まれるデータ本文がコマンドＩＤに対応した実行可能なデータ本文であるか否かを判定する。【００４４】
受信した制御コマンドが妥当でないと判定した場合（ステップＳ１２；Ｎｏ）、フィルタリング部１４２は、異常処理部１４４に、警告を出力させる（ステップＳ１３）。例えば、異常処理部１４４は、制御コマンドの実行を中止する。そして、異常処理部１４４は、制御コマンドが異常であることを示す警告信号を、警告ランプに出力する。そして、異常処理部１４４は、データフィルタリング処理を終了する。【００４５】
一方、受信した制御コマンドが妥当であると判定した場合（ステップＳ１２；Ｙｅｓ）、フィルタリング部１４２は、受信した制御コマンドの内容を、ログ記憶部１３２に記録する（ステップＳ１４）。【００４６】
続いて、第１の判定部１４２ａは、フィルタリング条件記憶部１３１に、受信した制御コマンドに対するコマンドＩＤ１３１ａが設定されているか否かを判定する（ステップＳ１５）。制御コマンドに対するコマンドＩＤ１３１ａが設定されていない場合（ステップＳ１５；Ｎｏ）、第１の判定部１４２ａは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行処理部１４３に実行させる（ステップＳ１６）。そして、第１の判定部１４２ａは、データフィルタリング処理を終了する。【００４７】
一方、制御コマンドに対するコマンドＩＤ１３１ａが設定されている場合（ステップＳ１５；Ｙｅｓ）、第１の判定部１４２ａは、以下の処理を行う。すなわち、第１の判定部１４２ａは、フィルタリング条件記憶部１３１に、当該制御コマンドに対する第１の条件１３１ｂが設定されているか否かを判定する（ステップＳ１７）。制御コマンドに対する第１の条件１３１ｂが設定されていない場合（ステップＳ１７；Ｎｏ）、第１の判定部１４２ａは、実行許否を判定すべく、ステップＳ２３に移行する。【００４８】
一方、制御コマンドに対する第１の条件１３１ｂが設定されている場合（ステップＳ１７；Ｙｅｓ）、第１の判定部１４２ａは、当該制御コマンドが第１の条件１３１ｂを満たすか否かを判定する（ステップＳ１８）。例えば、第１の判定部１４２ａは、制御コマンドに含まれるデータ本文を参照し、当該制御コマンドが第１の条件１３１ｂに合致するか否かを判定する。【００４９】
制御コマンドが第１の条件１３１ｂを満たさない場合（ステップＳ１８；Ｎｏ）、第１の判定部１４２ａは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップＳ１６に移行する。そして、第１の判定部１４２ａは、データフィルタリング処理を終了する。【００５０】
一方、制御コマンドが第１の条件１３１ｂを満たす場合（ステップＳ１８；Ｙｅｓ）、解析部１４２ｂは、フィルタリング条件記憶部１３１に、当該制御コマンドに対する追加条件１３１ｃが設定されているか否かを判定する（ステップＳ１９）。制御コマンドに対する追加条件１３１ｃが設定されてない場合（ステップＳ１９；Ｎｏ）、解析部１４２ｂは、第２の条件を判定させるべく、ステップＳ２１に移行する。【００５１】
一方、制御コマンドに対する追加条件１３１ｃが設定されている場合（ステップＳ１９；Ｙｅｓ）、追加条件判定部１４２ｃは、当該制御コマンドが追加条件１３１ｃを満たすか否かを判定する（ステップＳ２０）。例えば、追加条件判定部１４２ｃは、ログ記憶部１３２に記憶されたログを参照し、今回操作された制御コマンドが過去に操作された制御コマンドとの関係において追加条件１３１ｃを満たしているか否かを判定する。一例として、制御コマンドに対する追加条件１３１ｃが「３回／秒以上」であるとする。制御コマンドの内容がログ記憶部１３２に、１秒間に３回以上記憶されていれば、追加条件１３１ｃが満たされていると判定される。一方、制御コマンドの内容がログ記憶部１３２に、１秒間に３回以上記憶されていなければ、追加条件１３１ｃが満たされていないと判定される。【００５２】
そして、制御コマンドが追加条件１３１ｃを満たさない場合（ステップＳ２０；Ｎｏ）、追加条件判定部１４２ｃは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップＳ１６に移行する。そして、追加条件判定部１４２ｃは、データフィルタリング処理を終了する。【００５３】
一方、制御コマンドが追加条件１３１ｃを満たす場合（ステップＳ２０；Ｙｅｓ）、第２の判定部１４２ｄは、フィルタリング条件記憶部１３１に、当該制御コマンドに対する第２の条件１３１ｄが設定されているか否かを判定する（ステップＳ２１）。制御コマンドに対する第２の条件１３１ｄが設定されてない場合（ステップＳ２１；Ｎｏ）、第２の判定部１４２ｄは、実行許否を判定すべく、ステップＳ２３に移行する。【００５４】
一方、制御コマンドに対する第２の条件１３１ｄが設定されている場合（ステップＳ２１；Ｙｅｓ）、第２の判定部１４２ｄは、当該制御コマンドが第２の条件１３１ｄを満たすか否かを判定する（ステップＳ２２）。例えば、第２の判定部１４２ｄは、車両状態検知部１４１によって検知された車両状態を用いて、当該制御コマンドが第２の条件１３１ｄを満たすか否かを判定する。【００５５】
制御コマンドが第２の条件１３１ｄを満たさない場合（ステップＳ２２；Ｎｏ）、第２の判定部１４２ｄは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップＳ１６に移行する。そして、第２の判定部１４２ｄは、データフィルタリング処理を終了する。【００５６】
一方、制御コマンドが第２の条件１３１ｄを満たす場合（ステップＳ２２；Ｙｅｓ）、第２の判定部１４２ｄは、制御コマンドに対する実行許否１３１ｅが「ＮＧ」であるか否かを判定する（ステップＳ２３）。制御コマンドに対する実行許否１３１ｅが「ＮＧ」である場合（ステップＳ２３；Ｙｅｓ）、第２の判定部１４２ｄは、悪意のある制御コマンドであると判断し、異常処理部１４４に、警告を出力させる（ステップＳ２４）。例えば、異常処理部１４４は、制御コマンドの実行を中止する。そして、異常処理部１４４は、制御コマンドが異常であることを示す警告信号を、警告ランプに出力する。そして、異常処理部１４４は、データフィルタリング処理を終了する。【００５７】
一方、制御コマンドに対する実行許否１３１ｅが「ＮＧ」でない場合（ステップＳ２３；Ｎｏ）、第２の判定部１４２ｄは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップＳ１６に移行する。そして、第２の判定部１４２ｄは、データフィルタリング処理を終了する。【００５８】
［実施例の効果］
上記実施例によれば、端末装置２から操作された制御命令を実行する情報処理装置１は、当該制御コマンドが第１の条件を満たす場合、当該制御コマンドが第１の条件に関連した追加条件を含む内容であるかを解析する。そして、情報処理装置１は、制御コマンドが第１の条件に関連した追加条件を含む内容であると解析された場合、制御コマンドが追加条件を満たすか否かを判定する。そして、情報処理装置１は、追加条件を満たすと判定された場合、制御コマンドが第２の条件を満たすか否かを判定する。そして、情報処理装置１は、制御コマンドが第２の条件を満たすか否かの判定に応じた処理を実行する。かかる構成によれば、情報処理装置１は、外部から送信された制御コマンドについて、第１の条件に関連した追加条件および第２の条件を用いてコマンドの履歴とその実行する状況を含めた条件判定の処理を実行するので、制御コマンドの実行の信頼性を向上させることが可能となる。例えば、追加条件が第１の条件を満たす制御コマンドの所定時間における回数を示す条件である場合、情報処理装置１は、制御コマンドのシーケンスを考慮して制御コマンドの正当性を検証できるので、制御コマンドの信頼性を向上させることができる。また、情報処理装置１は、端末装置２自体が正当であろうがなかろうが、当該端末装置２にインストールされた制御アプリ２１が改竄されてしまった場合に、改竄の結果起こり得る脅威から車両を守ることができる。【００５９】
また、上記実施例によれば、情報処理装置１は、制御コマンドが第２の条件を満たすと判定された場合、制御コマンドの実行を中止する。かかる構成によれば、情報処理装置１は、例えば、悪意のある制御コマンドの実行を抑止できる。【００６０】
また、上記実施例によれば、情報処理装置１は、端末装置２から操作された制御コマンドを受け取る都度記憶する制御コマンドの履歴を用いて、今回操作された制御コマンドが過去に操作された制御コマンドとの関係において追加条件を満たすか否かを判定する。かかる構成によれば、情報処理装置１は、制御コマンドの履歴を用いることで、今回操作された制御コマンドの正当性を過去に遡って検証できるので、制御コマンドの信頼性を向上させることができる。【００６１】
また、上記実施例によれば、第１の条件、追加条件および第２の条件は、制御コマンドが悪意とみなされる条件である。かかる構成によれば、情報処理装置１は、第１の条件、追加条件および第２の条件を用いて、悪意とみなされる制御コマンドの実行を抑止できる。さらに第１の条件、追加条件および第２の条件に、制御コマンドが善意とされる条件のみを設定し、これらの条件に合わない制御コマンドの実行を抑止することもできる。【００６２】
［その他］
なお、実施例に係るデータフィルタリングシステム９では、例えば車両を運転する運転者が、車両に端末装置２を持ち込んで、端末装置２を、制御アプリ２１を介して車両のコントロールパネルとして利用すると説明した。ここでいう車両とは、小型の電気自動車を意味するが、これに限定されず、自動車、軽車両、原動機付き自転車等の道路上を走行する車であれば良い。また、鉄道車両であっても良い。【００６３】
また、実施例に係る情報処理装置１は、フィルタリング条件記憶部１３１に記憶された悪意のある制御コマンドを検知するために用いられる条件に基づいて、端末装置２から操作された制御コマンドを選別すると説明した。しかしながら、情報処理装置１は、これに限定されず、制御コマンドを送信する端末装置２の正当性を確認してから、フィルタリング条件記憶部に記憶された条件を使って当該制御コマンドを選別するようにしても良い。かかる構成によれば、情報処理装置１は、悪意のある端末装置２自体の脅威から車両を守ることができる。【００６４】
また、実施例に係る情報処理装置１は、既知のパーソナルコンピュータ、ワークステーション等の装置に、上記した車両状態検知部１４１、フィルタリング部１４２、実行処理部１４３および異常処理部１４４等の各機能を搭載することによって実現することができる。【００６５】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、解析部１４２ｂと追加条件判定部１４２ｃとを１個の部として統合しても良い。また、記憶部１３を情報処理装置１の外部装置としてネットワーク経由で接続するようにしても良い。【００６６】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図２に示した情報処理装置１と同様の機能を実現するデータフィルタリングプログラムを実行するコンピュータの一例を説明する。図６は、データフィルタリングプログラムを実行するコンピュータの一例を示す図である。【００６７】
図６に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。【００６８】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、データフィルタリングプログラム２０５ａおよびデータフィルタリング処理関連情報２０５ｂを記憶する。【００６９】
ＣＰＵ２０３は、データフィルタリングプログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置１の各機能部に対応する。データフィルタリング処理関連情報２０５ｂは、フィルタリング条件記憶部１３１、ログ記憶部１３２に対応する。そして、例えばリムーバブルディスク２１１が、データフィルタリングプログラム２０５ａ等の各情報を記憶する。【００７０】
なお、データフィルタリングプログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからデータフィルタリングプログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【００７１】
１  情報処理装置
１１，１２  通信制御Ｉ／Ｆ部
１３  記憶部
１３１  フィルタリング条件記憶部
１３２  ログ記憶部
１４  制御部
１４１  車両状態検知部
１４２  フィルタリング部
１４２ａ  第１の判定部
１４２ｂ  解析部
１４２ｃ  追加条件判定部
１４２ｄ  第２の判定部
１４３  実行処理部
１４４  異常処理部
２  端末装置
２１  制御アプリ
３  車両機器
９  データフィルタリングシステム
【図１】
2015097760.tif 000003
【図２】
2015097760.tif 000004
【図３】
2015097760.tif 000005
【図４】
2015097760.tif 000006
【図５】
2015097760.tif 000007
【図６】
2015097760.tif 000008
【国際調査報告】
2015097760.tif 000009
2015097760.tif 000010