(57)【要約】      （修正有）【課題】制御チップの処理負担を抑制しつつ、不正なデータか否かを把握することができるセキュアエレメント、端末装置、サーバ装置、検証方法及びプログラムを提供する。【解決手段】処理システム１は、通信ネットワーク２０を介して互いに通信可能に接続されるサーバ装置１０と端末装置３０を備える。端末装置３０は、制御チップ３２とＳＥ（セキュアエレメント）４０を備える。制御チップ３２は、サーバ装置１０から端末装置３０に対して送信されたデータを受信する。ＳＥ４０は、制御チップ３２が受信したデータを取得する第１の取得部と、第１の取得部により取得されたデータの正当性を検証し、データが正当か否かを示す検証結果を制御チップ３２に出力する検証部とを備える。【選択図】図１
2019096069.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介してサーバ装置と通信する端末装置に接続可能なセキュアエレメントであって、
前記端末装置により受信され、送信先が前記端末装置のスレーブチップである受信データを、前記端末装置のマスタチップより取得する第１の取得部と、
前記第１の取得部により取得されたデータの正当性を検証し、データが正当か否かを示す検証結果を前記マスタチップに出力する検証部と、
を備えることを特徴とするセキュアエレメント。
【請求項２】
前記第１の取得部は、前記スレーブチップから前記マスタチップに対して出力された前記サーバ装置に送信する送信データを取得する
ことを特徴とする請求項１に記載のセキュアエレメント。
【請求項３】
前記第１の取得部は、認証コードが含まれる前記受信データを、前記マスタチップより取得し、
前記検証部は、前記受信データに基づいて導出した認証コードと、前記受信データに含まれる認証コードとを比較することにより、データの正当性を検証する
ことを特徴とする請求項１又は請求項２に記載のセキュアエレメント。
【請求項４】
通信ネットワークを介してサーバ装置と通信する端末装置であって、
マスタチップと、
前記マスタチップからの指示に基づいて、マスタチップとの間で通信を行うスレーブチップと、
請求項１から請求項３のいずれか一項に記載のセキュアエレメントと、を備え、
前記マスタチップは、
前記端末装置により受信された受信データを取得する第２の取得部と
前記受信データに基づいて、前記受信データの送信先を判定し、前記送信先が前記スレーブチップである場合、前記セキュアエレメントに前記受信データの正当性を検証させ、その検証結果に基づいて、前記受信データが正当であると判定される場合、前記受信データを前記スレーブチップに転送するデータ処理部と、を有する
ことを特徴とする端末装置。
【請求項５】
前記データ処理部は、前記受信データに含まれる認証コードに基づいて、前記受信データが正当であるか否かを前記セキュアエレメントに判定させる
ことを特徴とする請求項４に記載の端末装置。
【請求項６】
前記第２の取得部は、前記スレーブチップから前記マスタチップに対して出力された前記サーバ装置に送信する送信データを取得した場合、前記サーバ装置から認証コードを取得し、
前記データ処理部は、前記サーバ装置から取得した認証コードに基づいて、前記受信データが正当であるか否かを前記セキュアエレメントに判定させ、認証コードが正当であると判定された場合、前記送信データを前記サーバ装置に送信する
ことを特徴とする請求項４又は請求項５に記載の端末装置。
【請求項７】
前記第２の取得部は、前記サーバ装置から一連のデータが分割されたデータブロックを順に取得し、
前記データ処理部は、前記一連のデータの最初の前記データブロックである先頭ブロックに含まれる認証コードに基づいて、前記先頭ブロックが正当であるか否かを前記セキュアエレメントに判定させ、前記先頭ブロックが正当であると判定された場合、前記一連のデータのうち、前記先頭ブロックではない前記データブロックを、前記セキュアエレメントにその正当性を検証させることなく、前記スレーブチップに転送する
ことを特徴とする請求項４から請求項６のいずれか一項に記載の端末装置。
【請求項８】
通信ネットワークを介して端末装置と通信するサーバ装置であって、
前記端末装置に対して送信するデータに、前記端末装置のマスタチップに対して送信するデータか否かを示す送信先情報を含めて送信する
ことを特徴とするサーバ装置。
【請求項９】
通信ネットワークを介してサーバ装置と通信する端末装置に接続可能なセキュアエレメントの検証方法であって、
第１の取得部が、前記端末装置により受信され、送信先が前記端末装置のスレーブチップである受信データを、前記端末装置のマスタチップより取得する工程と、
検証部が、前記第１の取得部により取得されたデータの正当性を検証し、データが正当か否かを示す検証結果を前記マスタチップに出力する工程と、
を有する検証方法。
【請求項１０】
通信ネットワークを介してサーバ装置と通信する端末装置に接続可能なセキュアエレメントのコンピュータに、
前記端末装置により受信され、送信先が前記端末装置のスレーブチップである受信データを、前記端末装置のマスタチップより取得する取得工程と、
前記取得工程により取得されたデータの正当性を検証し、データが正当か否かを示す検証結果を前記マスタチップに出力する工程と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアエレメント、端末装置、サーバ装置、検証方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、センサなどを様々な場所に設置し、その場所の環境データや、撮像データなどを取得するシステムが普及している。このようなシステムでは、通信ネットワークを介し、センサが搭載された端末装置と、データを集約するサーバ装置との間でデータが送受信される。端末装置には、スレーブとしての複数のセンサと、複数のセンサを制御するマスタとしての制御チップが搭載される。サーバ装置からセンサに対してデータが送信された場合、端末装置では制御チップを介してセンサへの設定がなされる。また、センサは、検知したデータを、制御チップを介してサーバ装置に送信する。つまり、端末装置では、サーバ装置とセンサとの間のデータの送受信が、常に制御チップを介して行われる。
このため、センサが増設されたり、センサに対する制御処理が頻繁に行われたりした場合には、サーバ装置とセンサとの間のデータの送受信が増大し、制御チップの負荷が増加してしまう。この対策として、サーバ装置とセンサとが、制御チップを介さずに、直接、データを送信することが考えられる。
特許文献１では、異なるファームウェアプログラムで動作する二以上のプロセッサを備える装置において、プロセッサ間でマスタとスレーブとの役割を交代させながら、装置の運用を継続させつつ、それぞれのファームウェアプログラムを更新させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１０３１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
通信ネットワークを介したデータの送受信では、ネットワーク上でデータが改ざんされるなど悪意ある攻撃を受けることがあり得る。サーバ装置が送信したデータが不正に改ざんされ、その改ざんされたデータをセンサが取得した場合、センサが不正に制御されてしまう可能性がある。このため、センサが取得するデータの正当性を検証する必要があるが、センサ自体にはデータの正当性を検証する機能が備えられていない場合がほとんどである。
【０００５】
本発明は、このような状況に鑑みてなされたもので、その目的は、制御チップの処理負担を抑制しつつ、不正なデータか否かを把握することができるセキュアエレメント、端末装置、サーバ装置、検証方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の一態様は、通信ネットワークを介してサーバ装置と通信する端末装置に接続可能なセキュアエレメントであって、前記端末装置により受信され、送信先が前記端末装置のスレーブチップである受信データを、前記端末装置のマスタチップより取得する第１の取得部と、前記第１の取得部により取得されたデータの正当性を検証し、データが正当か否かを示す検証結果を前記マスタチップに出力する検証部と、を備えることを特徴とするセキュアエレメントである。
【発明の効果】
【０００７】
本発明によれば、制御チップの処理負担を抑制しつつ、不正なデータか否かを把握することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の処理システム１の構成例を示すシステム構成図である。
【図２】実施形態のサーバ装置１０の構成例を示すブロック図である。
【図３】実施形態の制御チップ３２の構成例を示すブロック図である。
【図４】実施形態のセンサモジュール３４の構成例を示すブロック図である。
【図５】実施形態のＳＥ４０の構成例を示すブロック図である。
【図６】実施形態の制御チップ３２の動作例を示すフローチャートである。
【図７】実施形態の処理システム１の動作例を示すシーケンスチャートである。
【図８】実施形態の処理システム１の動作例を示すシーケンスチャートである。
【図９】実施形態の処理システム１の動作例を示すシーケンスチャートである。
【発明を実施するための形態】
【０００９】
以下、実施形態のセキュアエレメント、端末装置、サーバ装置、検証方法、及びプログラムを、図面を参照して説明する。
【００１０】
図１は、実施形態の処理システム１の構成例を示すシステム構成図である。
処理システム１は、例えば、サーバ装置１０と端末装置３０とを備える。サーバ装置１０と端末装置３０とは、通信ネットワーク２０を介して互いに通信可能に接続される。
【００１１】
サーバ装置１０は、端末装置３０からデータを取得する。サーバ装置１０は、端末装置３０から取得した撮像データ等のデータを蓄積し、蓄積したデータに基づいてユーザの操作に応じた画像を表示する等し、様々なサービスを提供する。
また、サーバ装置１０は、端末装置３０に対してデータを送信する。サーバ装置１０から端末装置３０に対して送信されるデータは、例えば端末装置３０に対する制御を行うためのデータである。
【００１２】
端末装置３０は、通信モジュール３１と、制御チップ３２と、センサモジュール３４（センサモジュール３４−１、…３４−Ｎ）（但し、Ｎは任意の自然数）と、ＳＥ（セキュアエレメント、Secure Element）４０とを備える。
通信モジュール３１は、通信ネットワーク２０を介して、サーバ装置１０や、その他の通信装置により端末装置３０に対して送信されたデータを受信する。通信モジュール３１は、受信したデータを、制御チップ３２に出力する。また、通信モジュール３１は、制御チップ３２の制御により、センサモジュール３４により取得されたデータをサーバ装置１０に送信する。
【００１３】
制御チップ３２は、端末装置３０の他の機能部（通信モジュール３１、センサモジュール３４、及びＳＥ４０）を制御する。制御チップ３２は、端末装置３０の機能を実現させるために端末装置３０の各機能部が連携して動作する際に、他の機能部を制御するマスタ側として動作する。つまり、制御チップ３２は、「マスタチップ」の一例である。一方、端末装置３０の他の機能部は、端末装置３０の機能を実現させるために端末装置３０の各機能部が連携して動作する際に、制御チップ３２により制御されるスレーブ側として動作する。つまり、通信モジュール３１、センサモジュール３４、及びＳＥ４０は、「スレーブチップ」の一例である。
【００１４】
センサモジュール３４は、例えば撮像機能を備えた撮像モジュールである。センサモジュール３４は、温度や湿度を検知する環境センサであってもよい。また、センサモジュール３４はデータを出力する機能を備えていてもよい。例えば、端末装置３０がスマート家電である場合には、センサモジュール３４は、制御チップ３２の指示により家電を起動又は停止させたり、あるいは稼働状況を変更させたりする信号を出力してもよい。端末装置３０が携帯端末である場合には、センサモジュール３４は画像を表示するディスプレイ、音を出力するスピーカ等であってもよい。
【００１５】
ＳＥ４０は、検証機能又は暗号化機能を備える検証チップである。ＳＥ４０は、例えば、セキュアＩＣチップ、セキュアチップ、セキュアＩＣ等と称される。ＳＥ４０は、外部からの悪意ある攻撃から情報を守る堅牢な構造を持ち耐タンパ性を備えていてもよい。ただし、ＳＥ４０は、検証機能又は暗号化機能を有するＩＣチップであればよく、セキュアＩＣチップ等に限定されることはない。例えば、ＳＥ４０は、暗号ライブラリを備えたＩＣチップであってもよい。
また、ＳＥ４０は、例えばプラスチック等のカード機材に、ＳＥ４０が実装されたＩＣカード、又はＳＩＭカード（Subscriber Identity Module Card）であってもよい。この場合、ＳＥ４０は、ＩＣカード、又はＳＩＭカードのコンタクト部を介して端末装置３０と通信を行う。コンタクト部は、ＩＣカード又はＳＩＭカードが動作するために必要な各種信号の端子を有している。各種信号の端子は、端末装置３０から電源電圧、クロック信号、リセット信号の供給を受ける端子、及び端末装置３０と通信を行うシリアルデ―タ入出力端子である。
【００１６】
図２は、実施形態のサーバ装置１０の構成例を示すブロック図である。
サーバ装置１０は、サーバ通信部１１と、サーバ制御部１２と、出力部１３とを備える。サーバ通信部１１は、通信ネットワーク２０に接続され、通信ネットワーク２０を介して、端末装置３０、及び他の通信装置と通信を行う。サーバ制御部１２は、サーバ通信部１１を介して端末装置３０等から取得したデータを、サーバ装置１０の記憶部（不図示）に記憶させる。出力部１３は、サーバ装置１０の入力部（不図示）にユーザの操作等により入力された情報に基づいて、記憶部に記憶させた情報からユーザの所望の情報を出力する。
【００１７】
また、サーバ制御部１２は、端末装置３０に対して送信するデータを生成する。
本実施形態では、サーバ制御部１２は、端末装置３０に対して送信するデータに、送信先を示す情報（送信先情報）を含めて送信する。つまり、サーバ制御部１２は、端末装置３０に対して送信するデータに、端末装置３０の制御チップ３２に対して送信するデータであるのか、センサモジュール３４に対して送信するデータであるのか、その他の機能部に対して送信するデータなのか、を含めて送信する。サーバ制御部１２は、例えば、端末装置３０に対して送信するデータの特定の箇所に、端末装置３０の各機能部に対応するアドレス情報や識別番号を設定することにより、送信先情報を通知する。
【００１８】
また、サーバ装置１０は、端末装置３０にデータを送信する際、データとともに認証コード（例えば、ＭＡＣ（Message Authentication Code））を送信する。認証コードは、データに基づいて導出される所定の符号であって、例えば、サーバ装置１０と端末装置３０との間で予め定めた共通の暗号鍵（共通鍵）とデータとに基づいて導出される符号である。端末装置３０が受信したデータと、共通鍵とを用いて導出された認証コードが、端末装置３０が受信した認証コードと一致した場合、端末装置３０が受信したデータは、サーバ装置１０側で生成されたデータと同じデータであり、通信の途中で改ざんされていないデータ、つまり正当なデータであると判定できる。一方で、端末装置３０側で導出された認証コードと、端末装置３０側で受信された認証コードとが不一致であった場合、端末装置３０が受信したデータは、途中で改ざんされた不正なデータであると判定することができる。
【００１９】
図３は、実施形態の制御チップ３２の構成例を示すブロック図である。
制御チップ３２は、通信部３２０と、記憶部３２２と、制御部３２４とを備える。
通信部３２０は、通信モジュール３１、センサモジュール３４、及びＳＥ４０と通信を行う。通信部３２０は、例えば、通信モジュール３１等との通信において、マスタ側として動作する。通信部３２０は、通信モジュール３１等の他の機能部に通信の開始を要求し、要求に応じた機能部に対し通信を行う。
通信部３２０は、通信モジュール３１等の他の機能部からデータを取得し、取得したデータを記憶部３２２の受信データを記憶させる領域（受信バッファ）（不図示）に記憶させる。また、通信部３２０は、通信モジュール３１等の他の機能部から取得したデータを制御部３２４に出力する。また、通信部３２０は、制御部３２４の指示により、記憶部３２２の送信データを記憶させる領域（送信バッファ）に記憶されたデータを通信モジュール３１等に対してデータを出力する。
【００２０】
記憶部３２２は、制御チップ３２の各種処理を実行するためのプログラム、及びデータ等を記憶する。記憶部３２２は、例えば、通信情報記憶部３２３を備える。通信情報記憶部３２３は、通信モードを記憶する。
通信モードは、端末装置３０におけるデータの通信の方法を示すモードである。通信モードには、少なくともマスタモードと、スレーブモードとの二つのモードがある。
マスタモードでは、制御チップ３２が主体となって他の機能部を制御する。マスタモードでは、制御チップ３２がサーバ装置１０から端末装置３０に送信された全てデータの内容を解釈し、解釈した内容に応じて他の機能部を制御する。
スレーブモードでは、マスタモードにて制御チップ３２が行う処理の一部を、他の機能部に行わせる。スレーブモードでは、制御チップ３２は、サーバ装置１０から他の機能部（センサモジュール３４等）に対して送信されたデータについては、そのデータの内容を解釈することなく、送信先の他の機能部（センサモジュール３４等）にデータを転送する。
【００２１】
制御部３２４は、制御チップ３２を統括的に制御する。制御部３２４は、取得部３２５と、データ処理部３２６と、割り込み処理部３２７とを備える。
取得部３２５は、サーバ装置１０から端末装置３０に対して送信されたデータを、通信モジュール３１及び通信部３２０を介して取得する。データ処理部３２６は、取得したデータの送信先を判定し、判定した送信先の応じた処理を行う。具体的には、データ処理部３２６は、取得したデータの送信先が制御チップ３２である場合、マスタモードにてデータの処理を行う。この場合、データ処理部３２６は、通信情報記憶部３２３の通信モードに「０」を記憶させる。また、データ処理部３２６は、取得したデータの送信先が制御チップ３２ではない他の機能部（例えば、センサモジュール３４）である場合、スレーブモードにてデータの処理を行う。この場合、データ処理部３２６は、通信情報記憶部３２３の通信モードに「１」を記憶させる。
【００２２】
データ処理部３２６は、マスタモードの場合、取得したデータの内容を解釈し、解釈したデータの内容に基づいた設定を行う。マスタモードの場合、データには制御チップ３２に対する制御の内容が示されている。マスタモードの場合、データ処理部３２６は、データに示された制御の内容を解釈し、解釈した内容に応じて制御チップ３２の設定を行う。
【００２３】
データ処理部３２６は、スレーブモードの場合、取得したデータの内容を解釈することなく、取得したデータを送信先の機能部（例えば、センサモジュール３４）に転送する。スレーブモードの場合、データには制御チップ３２ではない他の機能部（例えば、センサモジュール３４）に対する制御の内容が示されている。スレーブモードの場合、データ処理部３２６は、データに示された制御の内容を解釈することなく、取得したデータを送信先に転送する。データ処理部３２６は、データを送信先に転送する場合、記憶部３２２のセンサモジュール３４に対応する送信バッファ（不図示）に、取得したデータを記憶させ、通信部３２０にデータの送信を指示する。データ処理部３２６がデータの内容を解釈しないことで、制御チップ３２の処理負担を軽減させることが可能となる。
【００２４】
また、データ処理部３２６は、スレーブモードの場合、ＳＥ４０に取得したデータの正当性を検証させる。具体的には、データ処理部３２６は、取得したデータをＳＥ４０に出力する。データ処理部３２６は、記憶部３２２のＳＥ４０に対応する送信バッファ（不図示）に、取得したデータを記憶させ、通信部３２０にデータの送信を指示する。そして、データ処理部３２６は、ＳＥ４０からの検証結果を、通信部３２０を介して取得し、検証結果によりデータが正当であることが示された場合に、当該データをセンサモジュール３４に出力する。これにより、正当性が保障された安全なデータをセンサモジュール３４に転送することが可能となる。
【００２５】
データ処理部３２６は、ＳＥ４０にデータの正当性を検証させた場合、その検証結果に基づいて、データが正当である場合にはデータをセンサモジュール３４に転送し、データが正当でない場合にはデータを破棄するようにしてもよい。データ処理部３２６が正当でないデータを破棄することで、センサモジュール３４が正当でない不正なデータにより不正に制御されることを抑止することが可能となる。
【００２６】
なお、上記では、データ処理部３２６は、取得部３２５からデータを取得する都度、データの正当性を検証する場合を例示して説明したが、これに限定されることはない。データ処理部３２６は、サーバ装置１０と端末装置３０との間で通信が連続して行われる場合などにおいて、最初のデータの正当性を検証した結果、データが正当であると判定された場合には、その後に続くデータについては、データが正当であるとして、検証を省くようにしてもよい。サーバ装置１０と端末装置３０との間で通信が連続して行われる場合とは、例えば、一連のデータが複数のデータブロックに分割され、順に送信される場合である。
【００２７】
データ処理部３２６は、例えば、取得部３２５からデータを取得した場合、データが一連のデータの一部のデータブロックであるか否かを判定する。データ処理部３２６は、取得したデータが、データブロックである場合には、最初のデータブロックか否かを判定する。そして、データ処理部３２６は、最初のデータブロックでない場合には、通信情報記憶部３２３を参照し、通信モードに「１」が記憶されていた場合、データを検証することなく、センサモジュール３４に転送する。
【００２８】
割り込み処理部３２７は、センサモジュール３４や、他の機能部からの割り込み信号が出力された場合に、当該割り込み信号に応じた処理を行う。センサモジュール３４が、所定の閾値を超えたデータを取得した場合などに、不定期にセンサモジュール３４からサーバ装置１０に対してデータを送信することがある。このような場合、センサモジュール３４は、制御チップに対して割り込み信号を出力する。割り込み信号は、例えば、通信部３２０を介して割り込み処理部３２７に通知される。割り込み処理部３２７は、通知された割り込み信号に応じた処理を行う。
割り込み処理部３２７は、例えば、センサモジュール３４からサーバ装置１０に対してデータを送信することを示す割り込み信号を取得した場合、通信部３２０を介してセンサモジュール３４に対してデータを要求する信号を出力し、センサモジュール３４からデータを取得する。割り込み処理部３２７は、取得したデータを、データ処理部３２６に出力する。
【００２９】
図４は、実施形態のセンサモジュール３４の構成例を示すブロック図である。センサモジュール３４は、通信部３４０と、センサ制御部３４１と、センサ部３４２とを備える。
通信部３４０は、制御チップ３２と通信を行う。通信部３４０は、制御チップ３２との通信において、スレーブ側として動作する。通信部３４０は、制御チップ３２から通信の要求があった場合、その要求に応じて制御チップ３２との通信を行う。
通信部３４０は、制御チップ３２からデータを送信する要求があった場合、センサモジュール３４の記憶部（不図示）の送信データを記憶させる領域（送信バッファ）に記憶されたデータを、制御チップ３２に対して送信する。
【００３０】
また、通信部３４０は、制御チップ３２の指示により、制御チップ３２に対して割り込み信号を出力、割り込み信号の応じた制御チップ３２から通信部３４０に対して通信の要求をさせることにより、制御チップ３２との通信を行う。
センサ制御部３４１は、センサモジュール３４を統括的に制御する。センサ制御部３４１は、通信部３４０を介して制御チップ３２からデータを取得し、取得したデータの内容を解釈し、解釈した内容に応じた設定等を行う。また、センサ制御部３４１は、センサ部３４２により取得されたデータを、送信バッファに記憶させる。
センサ部３４２は、撮像データ等を取得する。センサ部３４２は、取得した撮像データをセンサ制御部３４１に出力する。
【００３１】
図５は、実施形態のＳＥ４０の構成例を示すブロック図である。図５に示す通り、ＳＥ４０は、通信部４００と制御部４１０と記憶部４２０とを備える。
図２に示す各部は、ＳＥ４０のハードウェアを用いて実現される。ＳＥ４０のハードウェアは、例えば、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）、ＣＰＵ、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、及びＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）の各構成を備え、各構成は、内部バスを介して接続されている。
【００３２】
通信部４００は、例えば、ＵＡＲＴと、ＣＰＵと、ＲＯＭに記憶されているプログラムとにより実現され、制御チップ３２の間で通信を行う。通信部４００は、制御チップ３２との通信において、スレーブ側として動作する。通信部４００は、コマンドを制御チップ３２から受信するとともに、コマンドに対するレスポンスを制御チップ３２に送信する。通信部４００は、制御チップ３２から受信した受信データを記憶部４２０の受信データ記憶部４２１に記憶させる。また、通信部４００は、記憶部４２０の送信データ記憶部４２３に記憶されている送信データを、制御チップ３２に送信する。
【００３３】
制御部４１０は、例えば、ＣＰＵと、ＲＡＭと、ＲＯＭ、又はＥＥＰＲＯＭとにより実現され、ＳＥ４０を統括的に制御する。制御部４１０は、コマンド処理部４１１と、取得部４１２と、検証部４１３とを備える。
コマンド処理部４１１は、端末装置３０の受信データに含まれるコマンドを解釈し、ＳＥ４０における種々の処理に対応する各部の制御を行う。
取得部４１２は端末装置３０の受信データを取得する。取得部４１２は取得した受信データを検証部４１３に出力する。
【００３４】
検証部４１３は、受信データの正当性を検証する。検証部４１３は、サーバ装置１０から端末装置３０に対して送信されたデータが、端末装置３０により受信されるまでに改ざんされていない場合に受信データが正当であると判定する。検証部４１３は、端末装置３０により受信されたデータが、サーバ装置１０等の通信先として想定された装置からのデータである場合に受信データが正当であると判定する。
検証部４１３は、受信データに含まれるデータ部分のデータと、検証情報記憶部４２２に記憶された共通鍵とに基づいて、認証コードを導出する。検証部４１３は、導出した認証コードと、受信データに含まれる認証コードとを比較することにより、受信データの正当性を検証する。検証部４１３は、受信データの正当性を検証した検証結果を、コマンドに対するレスポンスとして、送信データ記憶部４２３に記憶させる。
【００３５】
なお、検証部４１３は、データの正当性を検証できればよく、上述した認証コードを用いた検証方法に限定されることはない。検証部４１３は、例えば一方向性のハッシュ関数（ＭＤ５、ＳＨＡ１、ＳＨＡ２等）や、共通鍵、公開鍵等の暗号鍵などを用いて受信データの正当性を検証するようにしてもよいし、サーバ装置１０側で公開鍵により暗号化された認証コードを、端末装置３０側で検証部４１３が秘密鍵を用いて復号することにより、データの正当性を検証するようにしてもよい。
【００３６】
記憶部４２０は、例えば、ＥＥＰＲＯＭにより構成された記憶部であり、制御部４１０のプログラム、及びデータ等を記憶する。記憶部４２０は、受信データ記憶部４２１と、検証情報記憶部４２２と、送信データ記憶部４２３とを備える。受信データ記憶部４２１は、通信部４００を介して受信されたデータを記憶する。検証情報記憶部４２２は、共通鍵、公開鍵等の暗号鍵など検証の処理で用いる情報を記憶する。送信データ記憶部４２３は、通信部４００を介してＳＥ４０から送信されるデータが記憶される。
【００３７】
図６は、実施形態の制御チップ３２の動作例を示すフローチャートである。図６のフローチャートは、サーバ装置１０から端末装置３０に対してデータが送信された場合の制御チップ３２の動作例を示す。
【００３８】
まず、制御チップ３２は、通信部３２０により通信モジュール３１を介してサーバ装置１０からのデータを受信したか否かを判定する（ステップＳ１００）。
制御チップ３２は、サーバ装置１０からデータを受信した場合、データ処理部３２６によりデータを、マスタモードで処理するか、スレーブモードで処理するかを判定させる（ステップＳ１０１）。制御チップ３２は、取得部３２５によりサーバ装置１０から受信したデータを取得し、データ処理部３２６により取得したデータの特定の箇所に設けられた送信先情報を参照することで、データの送信先を判定する。データ処理部３２６は、送信先情報に制御チップ３２が示されていた場合、データをマスタモードで処理すると判定する。データ処理部３２６は、送信先情報に制御チップ３２ではない他の機能部（センサモジュール３４等）が示されていた場合、データをスレーブモードで処理すると判定する。
制御チップ３２は、データをスレーブモードで処理すると判定する場合、データをＳＥ４０に転送する（ステップＳ１０２）。ＳＥ４０は、制御チップ３２から受信したデータの正当性を検証する。ＳＥ４０は、データの正当性を検証した検証結果を制御チップ３２に送信する。
制御チップ３２は、取得部３２５により通信部３２０を介してＳＥ４０から検証結果を取得する（ステップＳ１０３）。データ処理部３２６は、検証結果に基づいてデータが正当であるか否かを判定する（ステップＳ１０４）。データ処理部３２６は、データが正当であると判定する場合、データを送信先（例えば、センサモジュール３４）に出力する（ステップＳ１０５）。一方、データ処理部３２６は、データが正当でないと判定する場合、データを破棄する（ステップＳ１０７）。
一方、制御チップ３２は、ステップＳ１０１により、データをマスタモードで処理すると判定する場合、データの内容を解釈し、解釈した内容に応じた制御を行う（ステップＳ１０６）。
【００３９】
図７は、実施形態の処理システム１の動作例を示すシーケンスチャートである。図７のシーケンスチャートは、サーバ装置１０から端末装置３０に対してデータが送信された場合の処理システム１の動作例を示す。なお、図７のシーケンスチャートでは、通信モジュール３１を省略しているが、実際には、サーバ装置１０と制御チップ３２との通信には、通信モジュール３１が介在している。
【００４０】
まず、サーバ装置１０は、端末装置３０に送信するデータを作成する（ステップＳ３０１）。サーバ装置１０は、端末装置３０に送信するデータに、送信先情報を含めて作成する。
次に、サーバ装置１０は、データと共通鍵とを用いて、認証コードを作成する（ステップＳ３０２）。サーバ装置１０は、データと認証コードとを、端末装置３０に送信する（ステップＳ３０３）。
制御チップ３２は、サーバ装置１０から端末装置３０に対して送信されたデータを受信する（ステップＳ３０４）。制御チップ３２は、受信したデータをＳＥ４０に転送する（ステップＳ３０５）。ＳＥ４０は、転送されたデータの正当性を検証する（ステップＳ３０６）。ＳＥ４０は、検証結果を制御チップ３２に出力する（ステップＳ３０７）。制御チップ３２は、検証チップから受信した検証結果に基づいて、データが正当であると判定された場合、通信モードをスレーブモードに設定する（ステップＳ３０８）。制御チップ３２は、データをセンサモジュール３４に転送する（ステップＳ３０９）。
【００４１】
図８、図９は、実施形態の処理システム１の他の動作例を示すシーケンスチャートである。図８、図９のシーケンスチャートは、サーバ装置１０に対して端末装置３０からデータを送信する場合の処理システム１の他の動作例を示す。なお、図８、図９のシーケンスチャートでは、通信モジュール３１を省略しているが、実際には、サーバ装置１０と制御チップ３２との通信には、通信モジュール３１が介在している。
また、図８、及び図９のシーケンスチャートは、センサモジュール３４から制御チップ３２に対して割り込み信号を出力することにより、センサモジュール３４からサーバ装置１０にデータを送信する場合の例を示している。
【００４２】
まず、図８のシーケンスチャートに示す処理を説明する。センサモジュール３４は、データを取得する（ステップＳ４０１）。センサモジュール３４は、取得したデータをサーバ装置１０に対して送信する場合、制御チップ３２に対して、割り込み信号を出力する（ステップＳ４０２）。
制御チップ３２は、センサモジュール３４からの割り込み信号を取得し（ステップＳ４０３）、サーバに対して通信を要求する通信要求を送信する（ステップＳ４０４）。
サーバ装置１０は、通信要求に対する応答データとともに認証コードを作成する（ステップＳ４０５）。サーバ装置１０は、応答データと認証コードとを、端末装置３０に対して送信する（ステップＳ４０６）。
【００４３】
制御チップ３２は、データを受信する（ステップＳ４０７）。制御チップ３２は、受信したデータをＳＥ４０に転送する（ステップＳ４０８）。ＳＥ４０は、転送されたデータの正当性を検証する（ステップＳ４０９）。ＳＥ４０は、検証結果を制御チップ３２に出力する（ステップＳ４１０）。制御チップ３２は、検証チップから受信した検証結果に基づいて、データが正当であると判定された場合、通信モードをスレーブモードに設定する（ステップＳ４１１）。制御チップ３２は、サーバ装置１０に対して通信モードをスレーブモードに設定するモード変更を完了した旨の通知を行う（ステップＳ４１２）。
【００４４】
次に、図９のシーケンスチャートに示す処理を説明する。図９は、図８に示すシーケンスチャートに対応する処理が行われ、通信モードがスレーブモードに切り替わった後に、サーバ装置１０からセンサモジュール３４に対して処理を要求するデータ（図９では、処理要求データと記載）が送信された場合に、各機能部において行われる動作の流れを示している。
【００４５】
サーバ装置１０は、センサモジュール３４に対して処理要求データを作成する（ステップＳ４１３）。サーバ装置１０は、処理要求データを、端末装置３０に対して送信する（ステップＳ４１４）。
制御チップ３２は、処理要求データを受信する（ステップＳ４１５）。制御チップ３２は、受信した処理要求データを、データの解釈を行うことなく、ＳＥ４０に出力する（ステップＳ４１６）。ＳＥ４０は、制御チップ３２より取得した処理要求データの正当性を検証する（ステップＳ４１７）。ＳＥ４０は、検証結果を制御チップ３２に出力する（ステップＳ４１８）。
【００４６】
制御チップ３２は、ＳＥ４０から受信した検証結果に基づいて、データが正当であると判定された場合、処理要求データをセンサモジュール３４に出力する（ステップＳ４２０）。センサモジュール３４は、制御チップ３２より取得した処理要求データに基づいて、処理を実行する（ステップＳ４２１）。センサモジュール３４は、処理を実行した処理結果を示すデータを制御チップ３２に出力する（ステップＳ４２２）。
制御チップ３２は、センサモジュール３４より取得した処理結果を示すデータを、データの解釈を行うことなく、ＳＥ４０に出力する（ステップＳ４２４）。ＳＥ４０は、制御チップ３２より取得した処理結果を示すデータを暗号化する、又は／及び、署名を付与する等するデータ処理を行う（ステップＳ４２５）。ＳＥ４０は、暗号化等のデータ処理を行ったデータを制御チップ３２に出力する（ステップＳ４２６）。
制御チップ３２は、ＳＥ４０より暗号化等のデータ処理が施されたデータを取得し（ステップＳ４２７）、取得したデータをサーバ装置１０に対して送信する（ステップＳ４２８）。
【００４７】
以上、説明したように、実施形態のＳＥ４０は、通信ネットワーク２０を介してサーバ装置１０と通信する端末装置３０に接続可能なＳＥ４０であって、端末装置３０により受信され、送信先が端末装置３０のセンサモジュール３４（「スレーブチップ」の一例）である受信データを、端末装置３０の制御チップ３２（「マスタチップ」の一例）より取得する取得部４１２と、取得部４１２により取得されたデータの正当性を検証し、データが正当か否かを示す検証結果を制御チップ３２に出力する検証部４１３と、を備える。これにより、実施形態のＳＥ４０は、制御チップ３２がセンサモジュール３４に転送するデータについて、その正当性を検証し、検証した結果を出力することができる。このため、制御チップ３２は正当性が検証されたデータについて、その内容を解釈せずに、センサモジュール３４に転送することができ、制御チップ３２の処理負担を抑制しつつ、不正なデータか否かを把握することが可能となる。
【００４８】
また、実施形態のＳＥ４０では、取得部４１２は、センサモジュール３４から制御チップ３２に対して出力された、サーバ装置１０に送信する送信データを取得する。これにより、実施形態のＳＥ４０は、センサモジュール３４から出力されたデータの正当性を検証し、検証した結果を出力することができる。このため、制御チップ３２は、センサモジュール３４から出力されたデータについて、正当性が検証されたデータを、サーバ装置１０に対して送信することができ、サーバ装置１０が不正なデータが送信されることを抑制することが可能となる。
【００４９】
また、実施形態の端末装置３０は、通信ネットワーク２０を介してサーバ装置１０と通信する端末装置３０であって、制御チップ３２と、制御チップ３２からの指示に基づいて、制御チップ３２との間で通信を行うセンサモジュール３４と、上述のＳＥ４０と、を備え、制御チップ３２は、端末装置３０により受信された受信データを取得する取得部３２５と、受信データに基づいて、受信データの送信先を判定し、送信先がセンサモジュール３４である場合、ＳＥ４０に受信データの正当性を検証させ、その検証結果に基づいて、受信データが正当であると判定される場合、受信データをセンサモジュール３４に転送するデータ処理部３２６と、を有する。これにより、実施形態の端末装置３０は、サーバ装置１０から受信したデータのうち、送信先が制御チップ３２ではないデータについて、そのデータが正当であると判定された場合に、データをセンサモジュール３４に転送することができる。このため、端末装置３０は、不正なデータか否かを把握することが可能となる。また、制御チップ３２は、ＳＥ４０にデータの正当性を検証させることができ、且つ、データの内容を解釈することなくセンサモジュール３４に転送することができるため、制御チップの処理負担を軽減させることが可能となる。
【００５０】
また、実施形態のサーバ装置１０は、通信ネットワーク２０を介して端末装置３０と通信するサーバ装置１０であって、端末装置３０に対して送信するデータに、端末装置３０の制御チップ３２に対して送信するデータか否かを示す送信先情報、及び認証コード（「データに基づいて導出される所定の符号」の一例）を含めて送信する。これにより、実施形態のサーバ装置１０は、端末装置３０に対して送信したデータの送信先が制御チップ３２なのか否かを、端末装置３０に通知することができる。このため、端末装置３０は、送信先に応じた対応をすることができる。例えば、端末装置３０は、送信先の機能部にデータの解釈を行わせることで、制御チップ３２が全てのデータの解釈を行う場合よりも、端末装置３０の機能を実現させるための処理を分散させることができ、制御チップ３２の処理を低減させることが可能となる。また、データの送信先に応じて、データの正当性を検証することができるため、不正なデータが入力されることで攻撃を受け得る機能部には、正当と判定されたデータのみを出力することができ、不正なデータか否かを把握することが可能となる。
【００５１】
なお、本発明におけるＳＥ４０、端末装置３０、サーバ装置１０の全部又は一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行することにより処理を行なってもよい。
なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００５２】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００５３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００５４】
１…処理システム、１０…サーバ装置、１２…サーバ制御部、２０…通信ネットワーク、３０…端末装置、３２５…取得部、３２６…データ処理部、３２３…通信情報記憶部、４０…ＳＥ、４１２…取得部、４１３…検証部。
【図１】
2019096069.tif 000003
【図２】
2019096069.tif 000004
【図３】
2019096069.tif 000005
【図４】
2019096069.tif 000006
【図５】
2019096069.tif 000007
【図６】
2019096069.tif 000008
【図７】
2019096069.tif 000009
【図８】
2019096069.tif 000010
【図９】
2019096069.tif 000011