(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-19
(45)【発行日】2022-07-27
(54)【発明の名称】端末装置、及び検証方法
(51)【国際特許分類】
G06F 21/64 20130101AFI20220720BHJP
【FI】
G06F21/64
(21)【出願番号】P 2017225064
(22)【出願日】2017-11-22
【審査請求日】2020-10-21
(73)【特許権者】
【識別番号】000003193
【氏名又は名称】凸版印刷株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】今泉 正明
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2017-017616(JP,A)
【文献】特開2017-120984(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
通信ネットワークを介してサーバ装置と通信する端末装置であって、
マスタチップと、
前記マスタチップからの指示に基づいて、前記マスタチップとの間で通信を行うスレーブチップと、
セキュアエレメントと、を備え、
前記マスタチップは、
前記端末装置により受信された受信データを取得する第
1の取得部と
前記受信データに基づいて、前記受信データの送信先を判定し、前記送信先が前記スレーブチップである場合、前記セキュアエレメントに前記受信データの正当性を検証させ、その検証結果に基づいて、前記受信データが正当であると判定される場合、前記受信データを前記スレーブチップに転送するデータ処理部と、を有し、
前記セキュアエレメントは、
前記マスタチップから前記受信データを取得する第
2の取得部と、
前記第
2の取得部により取得された前記受信データの正当性を検証し、前記受信データが正当か否かを示す検証結果を前記マスタチップに出力する検証部と、を有する
ことを特徴とする端末装置。
【請求項2】
前記データ処理部は、前記受信データに含まれる認証コードに基づいて、前記受信データが正当であるか否かを前記セキュアエレメントに判定させる
ことを特徴とする請求項
1に記載の端末装置。
【請求項3】
前記第
1の取得部は、前記スレーブチップから前記マスタチップに対して出力された前記サーバ装置に送信する送信データを取得した場合、前記サーバ装置から認証コードを取得し、
前記データ処理部は、前記サーバ装置から取得した認証コードに基づいて、前記受信データが正当であるか否かを前記セキュアエレメントに判定させ、認証コードが正当であると判定された場合、前記送信データを前記サーバ装置に送信する
ことを特徴とする請求項
1又は請求項
2に記載の端末装置。
【請求項4】
前記第
1の取得部は、前記サーバ装置から一連のデータが分割されたデータブロックを順に取得し、
前記データ処理部は、前記一連のデータの最初の前記データブロックである先頭ブロックに含まれる認証コードに基づいて、前記先頭ブロックが正当であるか否かを前記セキュアエレメントに判定させ、前記先頭ブロックが正当であると判定された場合、前記一連のデータのうち、前記先頭ブロックではない前記データブロックを、前記セキュアエレメントにその正当性を検証させることなく、前記スレーブチップに転送する
ことを特徴とする請求項
1から請求項
3のいずれか一項に記載の端末装置。
【請求項5】
通信ネットワークを介してサーバ装置と通信する端末装置であって、マスタチップと、前記マスタチップからの指示に基づいて、前記マスタチップと通信を行うスレーブチップと、セキュアエレメントと、を備える端末装置が行う検証方法であって、
前記マスタチップの第
1の取得部が、前記端末装置により受信された受信データを取得する工程と、
前記マスタチップのデータ処理部が、前記受信データに基づいて、前記受信データの送信先を判定し、前記送信先が前記スレーブチップである場合、前記セキュアエレメントに前記受信データの正当性を検証させ、その検証結果に基づいて、前記受信データが正当であると判定される場合、前記受信データを前記スレーブチップに転送する工程と、
前記セキュアエレメントの第
2の取得部が、前記マスタチップから前記受信データを取得する工程と、
前記セキュアエレメントの検証部が、前記第
2の取得部により取得された前記受信データの正当性を検証し、前記受信データが正当か否かを示す検証結果を前記マスタチップに出力する工程と、
を有する検証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末装置、及び検証方法に関する。
【背景技術】
【0002】
近年、センサなどを様々な場所に設置し、その場所の環境データや、撮像データなどを取得するシステムが普及している。このようなシステムでは、通信ネットワークを介し、センサが搭載された端末装置と、データを集約するサーバ装置との間でデータが送受信される。端末装置には、スレーブとしての複数のセンサと、複数のセンサを制御するマスタとしての制御チップが搭載される。サーバ装置からセンサに対してデータが送信された場合、端末装置では制御チップを介してセンサへの設定がなされる。また、センサは、検知したデータを、制御チップを介してサーバ装置に送信する。つまり、端末装置では、サーバ装置とセンサとの間のデータの送受信が、常に制御チップを介して行われる。
このため、センサが増設されたり、センサに対する制御処理が頻繁に行われたりした場合には、サーバ装置とセンサとの間のデータの送受信が増大し、制御チップの負荷が増加してしまう。この対策として、サーバ装置とセンサとが、制御チップを介さずに、直接、データを送信することが考えられる。
特許文献1では、異なるファームウェアプログラムで動作する二以上のプロセッサを備える装置において、プロセッサ間でマスタとスレーブとの役割を交代させながら、装置の運用を継続させつつ、それぞれのファームウェアプログラムを更新させる技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
通信ネットワークを介したデータの送受信では、ネットワーク上でデータが改ざんされるなど悪意ある攻撃を受けることがあり得る。サーバ装置が送信したデータが不正に改ざんされ、その改ざんされたデータをセンサが取得した場合、センサが不正に制御されてしまう可能性がある。このため、センサが取得するデータの正当性を検証する必要があるが、センサ自体にはデータの正当性を検証する機能が備えられていない場合がほとんどである。
【0005】
本発明は、このような状況に鑑みてなされたもので、その目的は、制御チップの処理負
担を抑制しつつ、不正なデータか否かを把握することができる端末装置、及び検証方法を提供することにある。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明の一態様は、通信ネットワークを介してサーバ装置と通信する端末装置であって、マスタチップと、前記マスタチップからの指示に基づいて、前記マスタチップとの間で通信を行うスレーブチップと、セキュアエレメントと、を備え、前記マスタチップは、前記端末装置により受信された受信データを取得する第1の取得部と、前記受信データに基づいて、前記受信データの送信先を判定し、前記送信先が前記スレーブチップである場合、前記セキュアエレメントに前記受信データの正当性を検証させ、その検証結果に基づいて、前記受信データが正当であると判定される場合、前記受信データを前記スレーブチップに転送するデータ処理部と、を有し、前記セキュアエレメントは、前記マスタチップから前記受信データを取得する第2の取得部と、前記第2の取得部により取得された前記受信データの正当性を検証し、前記受信データが正当か否かを示す検証結果を前記マスタチップに出力する検証部と、を有する端末装置である。
【発明の効果】
【0007】
本発明によれば、制御チップの処理負担を抑制しつつ、不正なデータか否かを把握することができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態の処理システム1の構成例を示すシステム構成図である。
【
図2】実施形態のサーバ装置10の構成例を示すブロック図である。
【
図3】実施形態の制御チップ32の構成例を示すブロック図である。
【
図4】実施形態のセンサモジュール34の構成例を示すブロック図である。
【
図5】実施形態のSE40の構成例を示すブロック図である。
【
図6】実施形態の制御チップ32の動作例を示すフローチャートである。
【
図7】実施形態の処理システム1の動作例を示すシーケンスチャートである。
【
図8】実施形態の処理システム1の動作例を示すシーケンスチャートである。
【
図9】実施形態の処理システム1の動作例を示すシーケンスチャートである。
【発明を実施するための形態】
【0009】
以下、実施形態のセキュアエレメント、端末装置、サーバ装置、検証方法、及びプログラムを、図面を参照して説明する。
【0010】
図1は、実施形態の処理システム1の構成例を示すシステム構成図である。
処理システム1は、例えば、サーバ装置10と端末装置30とを備える。サーバ装置10と端末装置30とは、通信ネットワーク20を介して互いに通信可能に接続される。
【0011】
サーバ装置10は、端末装置30からデータを取得する。サーバ装置10は、端末装置30から取得した撮像データ等のデータを蓄積し、蓄積したデータに基づいてユーザの操作に応じた画像を表示する等し、様々なサービスを提供する。
また、サーバ装置10は、端末装置30に対してデータを送信する。サーバ装置10から端末装置30に対して送信されるデータは、例えば端末装置30に対する制御を行うためのデータである。
【0012】
端末装置30は、通信モジュール31と、制御チップ32と、センサモジュール34(センサモジュール34-1、…34-N)(但し、Nは任意の自然数)と、SE(セキュアエレメント、Secure Element)40とを備える。
通信モジュール31は、通信ネットワーク20を介して、サーバ装置10や、その他の通信装置により端末装置30に対して送信されたデータを受信する。通信モジュール31は、受信したデータを、制御チップ32に出力する。また、通信モジュール31は、制御チップ32の制御により、センサモジュール34により取得されたデータをサーバ装置10に送信する。
【0013】
制御チップ32は、端末装置30の他の機能部(通信モジュール31、センサモジュール34、及びSE40)を制御する。制御チップ32は、端末装置30の機能を実現させるために端末装置30の各機能部が連携して動作する際に、他の機能部を制御するマスタ側として動作する。つまり、制御チップ32は、「マスタチップ」の一例である。一方、端末装置30の他の機能部は、端末装置30の機能を実現させるために端末装置30の各機能部が連携して動作する際に、制御チップ32により制御されるスレーブ側として動作する。つまり、通信モジュール31、センサモジュール34、及びSE40は、「スレーブチップ」の一例である。
【0014】
センサモジュール34は、例えば撮像機能を備えた撮像モジュールである。センサモジュール34は、温度や湿度を検知する環境センサであってもよい。また、センサモジュール34はデータを出力する機能を備えていてもよい。例えば、端末装置30がスマート家電である場合には、センサモジュール34は、制御チップ32の指示により家電を起動又は停止させたり、あるいは稼働状況を変更させたりする信号を出力してもよい。端末装置30が携帯端末である場合には、センサモジュール34は画像を表示するディスプレイ、音を出力するスピーカ等であってもよい。
【0015】
SE40は、検証機能又は暗号化機能を備える検証チップである。SE40は、例えば、セキュアICチップ、セキュアチップ、セキュアIC等と称される。SE40は、外部からの悪意ある攻撃から情報を守る堅牢な構造を持ち耐タンパ性を備えていてもよい。ただし、SE40は、検証機能又は暗号化機能を有するICチップであればよく、セキュアICチップ等に限定されることはない。例えば、SE40は、暗号ライブラリを備えたICチップであってもよい。
また、SE40は、例えばプラスチック等のカード機材に、SE40が実装されたICカード、又はSIMカード(Subscriber Identity Module Card)であってもよい。この場合、SE40は、ICカード、又はSIMカードのコンタクト部を介して端末装置30と通信を行う。コンタクト部は、ICカード又はSIMカードが動作するために必要な各種信号の端子を有している。各種信号の端子は、端末装置30から電源電圧、クロック信号、リセット信号の供給を受ける端子、及び端末装置30と通信を行うシリアルデ―タ入出力端子である。
【0016】
図2は、実施形態のサーバ装置10の構成例を示すブロック図である。
サーバ装置10は、サーバ通信部11と、サーバ制御部12と、出力部13とを備える。サーバ通信部11は、通信ネットワーク20に接続され、通信ネットワーク20を介して、端末装置30、及び他の通信装置と通信を行う。サーバ制御部12は、サーバ通信部11を介して端末装置30等から取得したデータを、サーバ装置10の記憶部(不図示)に記憶させる。出力部13は、サーバ装置10の入力部(不図示)にユーザの操作等により入力された情報に基づいて、記憶部に記憶させた情報からユーザの所望の情報を出力する。
【0017】
また、サーバ制御部12は、端末装置30に対して送信するデータを生成する。
本実施形態では、サーバ制御部12は、端末装置30に対して送信するデータに、送信先を示す情報(送信先情報)を含めて送信する。つまり、サーバ制御部12は、端末装置30に対して送信するデータに、端末装置30の制御チップ32に対して送信するデータであるのか、センサモジュール34に対して送信するデータであるのか、その他の機能部に対して送信するデータなのか、を含めて送信する。サーバ制御部12は、例えば、端末装置30に対して送信するデータの特定の箇所に、端末装置30の各機能部に対応するアドレス情報や識別番号を設定することにより、送信先情報を通知する。
【0018】
また、サーバ装置10は、端末装置30にデータを送信する際、データとともに認証コード(例えば、MAC(Message Authentication Code))を送信する。認証コードは、データに基づいて導出される所定の符号であって、例えば、サーバ装置10と端末装置30との間で予め定めた共通の暗号鍵(共通鍵)とデータとに基づいて導出される符号である。端末装置30が受信したデータと、共通鍵とを用いて導出された認証コードが、端末装置30が受信した認証コードと一致した場合、端末装置30が受信したデータは、サーバ装置10側で生成されたデータと同じデータであり、通信の途中で改ざんされていないデータ、つまり正当なデータであると判定できる。一方で、端末装置30側で導出された認証コードと、端末装置30側で受信された認証コードとが不一致であった場合、端末装置30が受信したデータは、途中で改ざんされた不正なデータであると判定することができる。
【0019】
図3は、実施形態の制御チップ32の構成例を示すブロック図である。
制御チップ32は、通信部320と、記憶部322と、制御部324とを備える。
通信部320は、通信モジュール31、センサモジュール34、及びSE40と通信を行う。通信部320は、例えば、通信モジュール31等との通信において、マスタ側として動作する。通信部320は、通信モジュール31等の他の機能部に通信の開始を要求し、要求に応じた機能部に対し通信を行う。
通信部320は、通信モジュール31等の他の機能部からデータを取得し、取得したデータを記憶部322の受信データを記憶させる領域(受信バッファ)(不図示)に記憶させる。また、通信部320は、通信モジュール31等の他の機能部から取得したデータを制御部324に出力する。また、通信部320は、制御部324の指示により、記憶部322の送信データを記憶させる領域(送信バッファ)に記憶されたデータを通信モジュール31等に対してデータを出力する。
【0020】
記憶部322は、制御チップ32の各種処理を実行するためのプログラム、及びデータ等を記憶する。記憶部322は、例えば、通信情報記憶部323を備える。通信情報記憶部323は、通信モードを記憶する。
通信モードは、端末装置30におけるデータの通信の方法を示すモードである。通信モードには、少なくともマスタモードと、スレーブモードとの二つのモードがある。
マスタモードでは、制御チップ32が主体となって他の機能部を制御する。マスタモードでは、制御チップ32がサーバ装置10から端末装置30に送信された全てデータの内容を解釈し、解釈した内容に応じて他の機能部を制御する。
スレーブモードでは、マスタモードにて制御チップ32が行う処理の一部を、他の機能部に行わせる。スレーブモードでは、制御チップ32は、サーバ装置10から他の機能部(センサモジュール34等)に対して送信されたデータについては、そのデータの内容を解釈することなく、送信先の他の機能部(センサモジュール34等)にデータを転送する。
【0021】
制御部324は、制御チップ32を統括的に制御する。制御部324は、取得部325と、データ処理部326と、割り込み処理部327とを備える。
取得部325は、サーバ装置10から端末装置30に対して送信されたデータを、通信モジュール31及び通信部320を介して取得する。データ処理部326は、取得したデータの送信先を判定し、判定した送信先の応じた処理を行う。具体的には、データ処理部326は、取得したデータの送信先が制御チップ32である場合、マスタモードにてデータの処理を行う。この場合、データ処理部326は、通信情報記憶部323の通信モードに「0」を記憶させる。また、データ処理部326は、取得したデータの送信先が制御チップ32ではない他の機能部(例えば、センサモジュール34)である場合、スレーブモードにてデータの処理を行う。この場合、データ処理部326は、通信情報記憶部323の通信モードに「1」を記憶させる。
【0022】
データ処理部326は、マスタモードの場合、取得したデータの内容を解釈し、解釈したデータの内容に基づいた設定を行う。マスタモードの場合、データには制御チップ32に対する制御の内容が示されている。マスタモードの場合、データ処理部326は、データに示された制御の内容を解釈し、解釈した内容に応じて制御チップ32の設定を行う。
【0023】
データ処理部326は、スレーブモードの場合、取得したデータの内容を解釈することなく、取得したデータを送信先の機能部(例えば、センサモジュール34)に転送する。スレーブモードの場合、データには制御チップ32ではない他の機能部(例えば、センサモジュール34)に対する制御の内容が示されている。スレーブモードの場合、データ処理部326は、データに示された制御の内容を解釈することなく、取得したデータを送信先に転送する。データ処理部326は、データを送信先に転送する場合、記憶部322のセンサモジュール34に対応する送信バッファ(不図示)に、取得したデータを記憶させ、通信部320にデータの送信を指示する。データ処理部326がデータの内容を解釈しないことで、制御チップ32の処理負担を軽減させることが可能となる。
【0024】
また、データ処理部326は、スレーブモードの場合、SE40に取得したデータの正当性を検証させる。具体的には、データ処理部326は、取得したデータをSE40に出力する。データ処理部326は、記憶部322のSE40に対応する送信バッファ(不図示)に、取得したデータを記憶させ、通信部320にデータの送信を指示する。そして、データ処理部326は、SE40からの検証結果を、通信部320を介して取得し、検証結果によりデータが正当であることが示された場合に、当該データをセンサモジュール34に出力する。これにより、正当性が保障された安全なデータをセンサモジュール34に転送することが可能となる。
【0025】
データ処理部326は、SE40にデータの正当性を検証させた場合、その検証結果に基づいて、データが正当である場合にはデータをセンサモジュール34に転送し、データが正当でない場合にはデータを破棄するようにしてもよい。データ処理部326が正当でないデータを破棄することで、センサモジュール34が正当でない不正なデータにより不正に制御されることを抑止することが可能となる。
【0026】
なお、上記では、データ処理部326は、取得部325からデータを取得する都度、データの正当性を検証する場合を例示して説明したが、これに限定されることはない。データ処理部326は、サーバ装置10と端末装置30との間で通信が連続して行われる場合などにおいて、最初のデータの正当性を検証した結果、データが正当であると判定された場合には、その後に続くデータについては、データが正当であるとして、検証を省くようにしてもよい。サーバ装置10と端末装置30との間で通信が連続して行われる場合とは、例えば、一連のデータが複数のデータブロックに分割され、順に送信される場合である。
【0027】
データ処理部326は、例えば、取得部325からデータを取得した場合、データが一連のデータの一部のデータブロックであるか否かを判定する。データ処理部326は、取得したデータが、データブロックである場合には、最初のデータブロックか否かを判定する。そして、データ処理部326は、最初のデータブロックでない場合には、通信情報記憶部323を参照し、通信モードに「1」が記憶されていた場合、データを検証することなく、センサモジュール34に転送する。
【0028】
割り込み処理部327は、センサモジュール34や、他の機能部からの割り込み信号が出力された場合に、当該割り込み信号に応じた処理を行う。センサモジュール34が、所定の閾値を超えたデータを取得した場合などに、不定期にセンサモジュール34からサーバ装置10に対してデータを送信することがある。このような場合、センサモジュール34は、制御チップに対して割り込み信号を出力する。割り込み信号は、例えば、通信部320を介して割り込み処理部327に通知される。割り込み処理部327は、通知された割り込み信号に応じた処理を行う。
割り込み処理部327は、例えば、センサモジュール34からサーバ装置10に対してデータを送信することを示す割り込み信号を取得した場合、通信部320を介してセンサモジュール34に対してデータを要求する信号を出力し、センサモジュール34からデータを取得する。割り込み処理部327は、取得したデータを、データ処理部326に出力する。
【0029】
図4は、実施形態のセンサモジュール34の構成例を示すブロック図である。センサモジュール34は、通信部340と、センサ制御部341と、センサ部342とを備える。
通信部340は、制御チップ32と通信を行う。通信部340は、制御チップ32との通信において、スレーブ側として動作する。通信部340は、制御チップ32から通信の要求があった場合、その要求に応じて制御チップ32との通信を行う。
通信部340は、制御チップ32からデータを送信する要求があった場合、センサモジュール34の記憶部(不図示)の送信データを記憶させる領域(送信バッファ)に記憶されたデータを、制御チップ32に対して送信する。
【0030】
また、通信部340は、制御チップ32の指示により、制御チップ32に対して割り込み信号を出力、割り込み信号の応じた制御チップ32から通信部340に対して通信の要求をさせることにより、制御チップ32との通信を行う。
センサ制御部341は、センサモジュール34を統括的に制御する。センサ制御部341は、通信部340を介して制御チップ32からデータを取得し、取得したデータの内容を解釈し、解釈した内容に応じた設定等を行う。また、センサ制御部341は、センサ部342により取得されたデータを、送信バッファに記憶させる。
センサ部342は、撮像データ等を取得する。センサ部342は、取得した撮像データをセンサ制御部341に出力する。
【0031】
図5は、実施形態のSE40の構成例を示すブロック図である。
図5に示す通り、SE40は、通信部400と制御部410と記憶部420とを備える。
図2に示す各部は、SE40のハードウェアを用いて実現される。SE40のハードウェアは、例えば、UART(Universal Asynchronous Receiver Transmitter)、CPU、ROM(Read Only Memory)、RAM(Random Access Memory)、及びEEPROM(Electrically Erasable Programmable ROM)の各構成を備え、各構成は、内部バスを介して接続されている。
【0032】
通信部400は、例えば、UARTと、CPUと、ROMに記憶されているプログラムとにより実現され、制御チップ32の間で通信を行う。通信部400は、制御チップ32との通信において、スレーブ側として動作する。通信部400は、コマンドを制御チップ32から受信するとともに、コマンドに対するレスポンスを制御チップ32に送信する。通信部400は、制御チップ32から受信した受信データを記憶部420の受信データ記憶部421に記憶させる。また、通信部400は、記憶部420の送信データ記憶部423に記憶されている送信データを、制御チップ32に送信する。
【0033】
制御部410は、例えば、CPUと、RAMと、ROM、又はEEPROMとにより実現され、SE40を統括的に制御する。制御部410は、コマンド処理部411と、取得部412と、検証部413とを備える。
コマンド処理部411は、端末装置30の受信データに含まれるコマンドを解釈し、SE40における種々の処理に対応する各部の制御を行う。
取得部412は端末装置30の受信データを取得する。取得部412は取得した受信データを検証部413に出力する。
【0034】
検証部413は、受信データの正当性を検証する。検証部413は、サーバ装置10から端末装置30に対して送信されたデータが、端末装置30により受信されるまでに改ざんされていない場合に受信データが正当であると判定する。検証部413は、端末装置30により受信されたデータが、サーバ装置10等の通信先として想定された装置からのデータである場合に受信データが正当であると判定する。
検証部413は、受信データに含まれるデータ部分のデータと、検証情報記憶部422に記憶された共通鍵とに基づいて、認証コードを導出する。検証部413は、導出した認証コードと、受信データに含まれる認証コードとを比較することにより、受信データの正当性を検証する。検証部413は、受信データの正当性を検証した検証結果を、コマンドに対するレスポンスとして、送信データ記憶部423に記憶させる。
【0035】
なお、検証部413は、データの正当性を検証できればよく、上述した認証コードを用いた検証方法に限定されることはない。検証部413は、例えば一方向性のハッシュ関数(MD5、SHA1、SHA2等)や、共通鍵、公開鍵等の暗号鍵などを用いて受信データの正当性を検証するようにしてもよいし、サーバ装置10側で公開鍵により暗号化された認証コードを、端末装置30側で検証部413が秘密鍵を用いて復号することにより、データの正当性を検証するようにしてもよい。
【0036】
記憶部420は、例えば、EEPROMにより構成された記憶部であり、制御部410のプログラム、及びデータ等を記憶する。記憶部420は、受信データ記憶部421と、検証情報記憶部422と、送信データ記憶部423とを備える。受信データ記憶部421は、通信部400を介して受信されたデータを記憶する。検証情報記憶部422は、共通鍵、公開鍵等の暗号鍵など検証の処理で用いる情報を記憶する。送信データ記憶部423は、通信部400を介してSE40から送信されるデータが記憶される。
【0037】
図6は、実施形態の制御チップ32の動作例を示すフローチャートである。
図6のフローチャートは、サーバ装置10から端末装置30に対してデータが送信された場合の制御チップ32の動作例を示す。
【0038】
まず、制御チップ32は、通信部320により通信モジュール31を介してサーバ装置10からのデータを受信したか否かを判定する(ステップS100)。
制御チップ32は、サーバ装置10からデータを受信した場合、データ処理部326によりデータを、マスタモードで処理するか、スレーブモードで処理するかを判定させる(ステップS101)。制御チップ32は、取得部325によりサーバ装置10から受信したデータを取得し、データ処理部326により取得したデータの特定の箇所に設けられた送信先情報を参照することで、データの送信先を判定する。データ処理部326は、送信先情報に制御チップ32が示されていた場合、データをマスタモードで処理すると判定する。データ処理部326は、送信先情報に制御チップ32ではない他の機能部(センサモジュール34等)が示されていた場合、データをスレーブモードで処理すると判定する。
制御チップ32は、データをスレーブモードで処理すると判定する場合、データをSE40に転送する(ステップS102)。SE40は、制御チップ32から受信したデータの正当性を検証する。SE40は、データの正当性を検証した検証結果を制御チップ32に送信する。
制御チップ32は、取得部325により通信部320を介してSE40から検証結果を取得する(ステップS103)。データ処理部326は、検証結果に基づいてデータが正当であるか否かを判定する(ステップS104)。データ処理部326は、データが正当であると判定する場合、データを送信先(例えば、センサモジュール34)に出力する(ステップS105)。一方、データ処理部326は、データが正当でないと判定する場合、データを破棄する(ステップS107)。
一方、制御チップ32は、ステップS101により、データをマスタモードで処理すると判定する場合、データの内容を解釈し、解釈した内容に応じた制御を行う(ステップS106)。
【0039】
図7は、実施形態の処理システム1の動作例を示すシーケンスチャートである。
図7のシーケンスチャートは、サーバ装置10から端末装置30に対してデータが送信された場合の処理システム1の動作例を示す。なお、
図7のシーケンスチャートでは、通信モジュール31を省略しているが、実際には、サーバ装置10と制御チップ32との通信には、通信モジュール31が介在している。
【0040】
まず、サーバ装置10は、端末装置30に送信するデータを作成する(ステップS301)。サーバ装置10は、端末装置30に送信するデータに、送信先情報を含めて作成する。
次に、サーバ装置10は、データと共通鍵とを用いて、認証コードを作成する(ステップS302)。サーバ装置10は、データと認証コードとを、端末装置30に送信する(ステップS303)。
制御チップ32は、サーバ装置10から端末装置30に対して送信されたデータを受信する(ステップS304)。制御チップ32は、受信したデータをSE40に転送する(ステップS305)。SE40は、転送されたデータの正当性を検証する(ステップS306)。SE40は、検証結果を制御チップ32に出力する(ステップS307)。制御チップ32は、検証チップから受信した検証結果に基づいて、データが正当であると判定された場合、通信モードをスレーブモードに設定する(ステップS308)。制御チップ32は、データをセンサモジュール34に転送する(ステップS309)。
【0041】
図8、
図9は、実施形態の処理システム1の他の動作例を示すシーケンスチャートである。
図8、
図9のシーケンスチャートは、サーバ装置10に対して端末装置30からデータを送信する場合の処理システム1の他の動作例を示す。なお、
図8、
図9のシーケンスチャートでは、通信モジュール31を省略しているが、実際には、サーバ装置10と制御チップ32との通信には、通信モジュール31が介在している。
また、
図8、及び
図9のシーケンスチャートは、センサモジュール34から制御チップ32に対して割り込み信号を出力することにより、センサモジュール34からサーバ装置10にデータを送信する場合の例を示している。
【0042】
まず、
図8のシーケンスチャートに示す処理を説明する。センサモジュール34は、データを取得する(ステップS401)。センサモジュール34は、取得したデータをサーバ装置10に対して送信する場合、制御チップ32に対して、割り込み信号を出力する(ステップS402)。
制御チップ32は、センサモジュール34からの割り込み信号を取得し(ステップS403)、サーバに対して通信を要求する通信要求を送信する(ステップS404)。
サーバ装置10は、通信要求に対する応答データとともに認証コードを作成する(ステップS405)。サーバ装置10は、応答データと認証コードとを、端末装置30に対して送信する(ステップS406)。
【0043】
制御チップ32は、データを受信する(ステップS407)。制御チップ32は、受信したデータをSE40に転送する(ステップS408)。SE40は、転送されたデータの正当性を検証する(ステップS409)。SE40は、検証結果を制御チップ32に出力する(ステップS410)。制御チップ32は、検証チップから受信した検証結果に基づいて、データが正当であると判定された場合、通信モードをスレーブモードに設定する(ステップS411)。制御チップ32は、サーバ装置10に対して通信モードをスレーブモードに設定するモード変更を完了した旨の通知を行う(ステップS412)。
【0044】
次に、
図9のシーケンスチャートに示す処理を説明する。
図9は、
図8に示すシーケンスチャートに対応する処理が行われ、通信モードがスレーブモードに切り替わった後に、サーバ装置10からセンサモジュール34に対して処理を要求するデータ(
図9では、処理要求データと記載)が送信された場合に、各機能部において行われる動作の流れを示している。
【0045】
サーバ装置10は、センサモジュール34に対して処理要求データを作成する(ステップS413)。サーバ装置10は、処理要求データを、端末装置30に対して送信する(ステップS414)。
制御チップ32は、処理要求データを受信する(ステップS415)。制御チップ32は、受信した処理要求データを、データの解釈を行うことなく、SE40に出力する(ステップS416)。SE40は、制御チップ32より取得した処理要求データの正当性を検証する(ステップS417)。SE40は、検証結果を制御チップ32に出力する(ステップS418)。
【0046】
制御チップ32は、SE40から受信した検証結果に基づいて、データが正当であると判定された場合、処理要求データをセンサモジュール34に出力する(ステップS420)。センサモジュール34は、制御チップ32より取得した処理要求データに基づいて、処理を実行する(ステップS421)。センサモジュール34は、処理を実行した処理結果を示すデータを制御チップ32に出力する(ステップS422)。
制御チップ32は、センサモジュール34より取得した処理結果を示すデータを、データの解釈を行うことなく、SE40に出力する(ステップS424)。SE40は、制御チップ32より取得した処理結果を示すデータを暗号化する、又は/及び、署名を付与する等するデータ処理を行う(ステップS425)。SE40は、暗号化等のデータ処理を行ったデータを制御チップ32に出力する(ステップS426)。
制御チップ32は、SE40より暗号化等のデータ処理が施されたデータを取得し(ステップS427)、取得したデータをサーバ装置10に対して送信する(ステップS428)。
【0047】
以上、説明したように、実施形態のSE40は、通信ネットワーク20を介してサーバ装置10と通信する端末装置30に接続可能なSE40であって、端末装置30により受信され、送信先が端末装置30のセンサモジュール34(「スレーブチップ」の一例)である受信データを、端末装置30の制御チップ32(「マスタチップ」の一例)より取得する取得部412と、取得部412により取得されたデータの正当性を検証し、データが正当か否かを示す検証結果を制御チップ32に出力する検証部413と、を備える。これにより、実施形態のSE40は、制御チップ32がセンサモジュール34に転送するデータについて、その正当性を検証し、検証した結果を出力することができる。このため、制御チップ32は正当性が検証されたデータについて、その内容を解釈せずに、センサモジュール34に転送することができ、制御チップ32の処理負担を抑制しつつ、不正なデータか否かを把握することが可能となる。
【0048】
また、実施形態のSE40では、取得部412は、センサモジュール34から制御チップ32に対して出力された、サーバ装置10に送信する送信データを取得する。これにより、実施形態のSE40は、センサモジュール34から出力されたデータの正当性を検証し、検証した結果を出力することができる。このため、制御チップ32は、センサモジュール34から出力されたデータについて、正当性が検証されたデータを、サーバ装置10に対して送信することができ、サーバ装置10が不正なデータが送信されることを抑制することが可能となる。
【0049】
また、実施形態の端末装置30は、通信ネットワーク20を介してサーバ装置10と通信する端末装置30であって、制御チップ32と、制御チップ32からの指示に基づいて、制御チップ32との間で通信を行うセンサモジュール34と、上述のSE40と、を備え、制御チップ32は、端末装置30により受信された受信データを取得する取得部325と、受信データに基づいて、受信データの送信先を判定し、送信先がセンサモジュール34である場合、SE40に受信データの正当性を検証させ、その検証結果に基づいて、受信データが正当であると判定される場合、受信データをセンサモジュール34に転送するデータ処理部326と、を有する。これにより、実施形態の端末装置30は、サーバ装置10から受信したデータのうち、送信先が制御チップ32ではないデータについて、そのデータが正当であると判定された場合に、データをセンサモジュール34に転送することができる。このため、端末装置30は、不正なデータか否かを把握することが可能となる。また、制御チップ32は、SE40にデータの正当性を検証させることができ、且つ、データの内容を解釈することなくセンサモジュール34に転送することができるため、制御チップの処理負担を軽減させることが可能となる。
【0050】
また、実施形態のサーバ装置10は、通信ネットワーク20を介して端末装置30と通信するサーバ装置10であって、端末装置30に対して送信するデータに、端末装置30の制御チップ32に対して送信するデータか否かを示す送信先情報、及び認証コード(「データに基づいて導出される所定の符号」の一例)を含めて送信する。これにより、実施形態のサーバ装置10は、端末装置30に対して送信したデータの送信先が制御チップ32なのか否かを、端末装置30に通知することができる。このため、端末装置30は、送信先に応じた対応をすることができる。例えば、端末装置30は、送信先の機能部にデータの解釈を行わせることで、制御チップ32が全てのデータの解釈を行う場合よりも、端末装置30の機能を実現させるための処理を分散させることができ、制御チップ32の処理を低減させることが可能となる。また、データの送信先に応じて、データの正当性を検証することができるため、不正なデータが入力されることで攻撃を受け得る機能部には、正当と判定されたデータのみを出力することができ、不正なデータか否かを把握することが可能となる。
【0051】
なお、本発明におけるSE40、端末装置30、サーバ装置10の全部又は一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行することにより処理を行なってもよい。
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0052】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0053】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0054】
1…処理システム、10…サーバ装置、12…サーバ制御部、20…通信ネットワーク、30…端末装置、325…取得部、326…データ処理部、323…通信情報記憶部、40…SE、412…取得部、413…検証部。