(58)【調査した分野】(Int.Cl.,DB名)
前記セッション管理部に記憶された前記セッション保持期間は、前記データの種別が、通信が更に継続することが見込まれる種別である場合には長く設定され、通信が継続しないと見込まれる種別である場合には短く設定される
ことを特徴とする請求項2に記載の通信システム。
【発明を実施するための形態】
【0009】
図1は、本発明の実施形態にかかる通信システム1のシステム概要を示すブロック図である。通信システム1は、複数のコントローラ10(通信装置)と操作対象の複数の機器20とが互いにネットワーク回線を通じて接続されて構成である。コントローラ10は、ネットワーク接続された他の通信装置に対し、状態取得要求や制御要求などの通信データを発行する通信装置である。また、機器20は、コントローラ10からの要求を受け、必要に応じて何らかの応答を返す通信装置である。コントローラ10、及び機器20は、それぞれ1以上存在していればよい。
【0010】
コントローラ10は、例えば、家庭内ネットワークに接続されたホームゲートウェイ、宅内HEMS(HomeEnergyManagementSystem)サーバ、タブレット端末、携帯電話などである。機器20は、例えば、エアコン、照明、冷蔵庫、洗濯機、蓄電池、太陽電池、燃料電池、分電盤、スマートメータ、センサなどである。コントローラと機器間の物理的な接続としては、例えば、Ethernet(登録商標)などの任意の有線ネットワーク、または、802.11a/b/gなどの任意の無線ネットワークを用いることができる。通信のためのネットワークプロトコルとしては、例えば、ECHONET(登録商標)やECHONET Lite(登録商標)を用いることができる。
【0011】
通信システム1の具体的な使用例としては、例えば、ユーザがタブレット端末上に表示されたコントロール画面を操作し、エアコンのオン・オフのようなリモコン制御を行う、といったものがある。あるいは、HEMSサーバがスマートメータ提供の家庭内消費電力情報を定期的に自動取得し、その値に応じエアコンの温度設定を自動変更する省エネ制御を行う、といったものがある。
【0012】
このような通信システム1において、悪意ある第三者によるエアコンの不正制御、スマートメータが提供する消費電力情報の覗き見、といったことの防止のためには、コントローラ10と機器20間の通信のセキュリティ確保が求められる。通信の安全性確保のためには、セッション確立処理、および、「エアコンの運転オン」などの通信データの暗号処理が必要となる。なお、セッション確立処理とは、例えば、双方で利用可能な暗号化/圧縮アルゴリズムのやりとり、証明書や鍵情報のやりとりとそれを用いた通信相手の認証、鍵生成情報のやりとりとそれを用いた通信データ暗号化用鍵の生成、などである。
【0013】
図2は、コントローラ10の機能ブロック図である。コントローラ10は、通信部11、処理部12、セッション記憶部13、取得部14、ID記憶部15、検出部16を備えている。通信部は、機器20との間で通信を行う。処理部12(セッション処理部)は、機器20との間でセッションを確立するための処理を行う。セッション記憶部13は、処理部12で確立された際に得られたセッション情報を記憶する。セッション情報とは、セッションを特定する情報であり、確立先の機器10の機器IDや、セッションで用いる証明書や鍵情報を含む情報である。取得部14は、システム内で機器を一意に識別可能な通信先の機器20の機器ID(識別情報)を取得する。ID取得部14は、取得された通信先の機器IDを記憶する。検出部16は、通信システム1内においてコントローラ10が通信可能な機器20を検出する。なお、ID記憶部15は、不揮発性のメモリが用いられている。
【0014】
図3は、機器20の機能構成を示すブロック図である。機器20は、通信部21、処理部22、セッション記憶部23、セッション管理部24、ID提供部25を備えている。機器20は、通信部21、処理部22、セッション記憶部23はコントローラ10と同様の構成である。ID提供部25は、コントローラ10からの要求に応じて機器IDを提供する。セッション管理部24は、セッション記憶部23に格納されたセッション情報の保持期間を管理し、期間に応じてセッション情報の消去を行う。
【0015】
次に、コントローラ10における動作について説明する。
図4は、コントローラ10と機器20との通信動作の処理の流れを示すシーケンス図である。
図5は、コントローラ10におけるセッション確立処理の流れを示すフロー図である。また
図6は、コントローラ10の再起動時におけるセッション確立処理の流れを示す図である。以下、セッション確立からデータ送信までの流れについて説明する。
【0016】
コントローラ10は、初期状態にあっては、機器20との間にセッションを確立していない。処理部12は、
図4に示されるように、例えば、「コントローラ10上のエアコン操作アプリケーションで、ユーザがエアコン運転オンボタンをクリックした」などを契機とし、「エアコンに対して運転オンの通信データを送信する」といった、機器20への通信データ送信要求の発生を知る。処理部12は、操作を契機にまず機器IDの取得処理を行う(
図4、
図5:ステップSS22)。ID取得部14は、通信部11を介し、機器20から機器IDを取得し、ID記憶部15に記憶する。機器IDは、ID提供部25が提供する。機器IDとしては、例えば、イーサネット(登録商標)アドレスなどを用いることができる。次いで、処理部12は、取得した機器IDで特定される装置との間でセッション確立処理を開始する(
図4:ステップS10)。セッション確立処理に当たっては、処理部12はまずコントローラ10がデータ送信を要求した機器20との間でセッションが確立済みか否かを、セッション記憶部13の情報から判定する(
図5:ステップS20)。具体的には、取得した機器IDを含むセッション情報がセッション記憶部13に記憶されているか否かにより判定する。
【0017】
確立していないと判定された場合(ステップS20:No)、処理部12は、通信部11を介しセッション確立処理を行い、その結果得たセッション情報を、セッション記憶部13に格納する(
図5:ステップS21)。コントローラ10は、セッション確立後に、通信データの送受信を行う(
図4、
図5:ステップS23)。なお、ここではエアコンオンの操作信号が通信データに該当する。そして、処理部12は、全ての送受信対象の通信データのうち、未送信のものが残っているか否かを判定する(
図5:ステップS24)。残っていると判定された場合(ステップS24:Yes)、全ての通信データの送受信が完了するまで処理を繰り返す。一方、残っていないと判定された場合(ステップS24:No)、処理部12は、セッション終了処理を行う(ステップS25)。セッション終了処理が行われると、セッション記憶部13、及びセッション記憶部23に記憶された該当するセッション情報が削除される。また、同様にID記憶部15に記憶された通信相手の機器20のIDも削除される。
【0018】
以上の処理では、通信データの送信が必要になった通信相手とのみセッションを確立するため、不必要なセッション確立処理時間、不必要なセッション情報の保持が発生しない。一方で、ユーザが操作を行なってから、実際に通信データの送信を行うまでに
図4で示すT1の時間が必要となる。セッション確立状態を維持し続ける場合は、初めての通信以外の際はT1の時間はかからないが、コントローラ10が再起動した場合、セッションは失われる。
【0019】
次に、コントローラ再起動後の動作について説明する。なお、再起動とはコントローラ10の電源が一度オフにされてから、再度電源がオンされることをさす。先の例で示した「エアコン操作アプリケーション」のように、再起動前にコントローラ10と通信していた機器20は、再起動後も再び通信する可能性が高い。このため、コントローラ10は、再起動前に通信していた機器20を記憶しておき、再起動後に、ユーザ操作の実施に先んじて、機器20とのセッション確立を行う。
【0020】
まず、検出部16は、コントローラ10が再起動した際に、通信システム1内に存在する機器20が検出できたかどうかを判定する(
図6:ステップS31)。機器20の検出は、例えば、ECHONET Liteの一斉同報通信(マルチキャスト通信)を用いて実現することができる。機器20が検出された場合(ステップS31:Yes)、ID取得部14は、検出された機器20から機器IDを取得する(
図6:ステップS32)。検出部16は、予め定めた所定の数の機器20を検出できた時点、または、機器20の検出開始から一定時間が経過した時点で、取得した機器IDと、ID記憶部15に記憶されている機器IDとで、一致するものがあるかを判定する(
図6:ステップS33)。一致するものがあると判定された場合(ステップS33:Yes)、処理部12は、一致した機器IDを持つ機器20に対し、セッションを確立する(
図6:ステップS34)。一方、一致するものがないと判定された場合(ステップS33:No)、そのまま処理を終了する。なお、再起動後の機器の検出や機器IDの取得のための通信は、平文で行なってよい。機器IDが詐称されたとしても、その後のセッション確立において、不正な機器20か否かをコントローラ10は判別することができる。
【0021】
なお、ID記憶部15に記憶された機器IDの個数が多く、全ての機器20とセッション確立を行うと時間がかかる、または、セッション情報を保持するメモリ容量が足りない、といった場合には、セッション確立する機器20に優先度を付け、優先度の高いものから幾つかの機器のみとセッション確立を行う、としてもよい。優先度の付け方は、コントローラ10上のアプリケーションが明示的に指定する、通信頻度の高い機器20を優先度高とする、通信時刻が直近の機器20を優先度高とする、などが考えられる。
【0022】
次に、機器20側における動作について説明する。機器20は、コントローラ10との通信において、セッション確立後はそのセッション情報を保持する。セッション情報を失うと、コントローラ10との通信のために再度セッション確立が必要となり時間がかかる。一方で、少ないメモリ容量のみを備える場合、不必要なセッション情報をいつまでも保持し続けるのは望ましくない。
【0023】
このため、機器20は、コントローラ10からセッション終了要求を受けるまではセッション情報をセッション記憶部23に保持し続ける。また、機器20は、コントローラ10がセッション終了要求を送信せずに電源停止した場合などのために、セッション終了要求をある時間受信しない場合、セッション情報を消去する。
【0024】
図7は、通信データの命令種別と、セッション保持期間との対応を示すテーブルの例である。このテーブルは、機器20のセッション管理部24に予め記憶されている。ここでの通信データの種別とは、例えば取得要求である「エアコンの型名情報の取得要求」や制御要求である「エアコンの運転オンの制御要求」などである。
【0025】
「エアコンの運転オンの制御要求」を機器が受信した場合、コントローラ10においてユーザがエアコンの運転開始操作を行っている、といったことが予想できる。すなわち、更に続けて「エアコンの温度設定28℃」といった通信データを受信する可能性が高いと言える。一方で、「エアコンの運転オフの制御要求」を受信した場合、コントローラ10においてユーザはエアコンの運転停止を行いそれ以上は何もしない、といったことが予想できる。すなわち、更に続けて通信データを受信する可能性は低いと言える。
【0026】
同様に、「エアコンの型名情報の取得要求」といった機器自身に関する情報の取得は、「操作可能な機器一覧の情報表示」といったケースで使われることが多いことから、更に続けて「エアコンの製造メーカ名の取得」といった通信データを受信する可能性が高いと言える。
【0027】
図7で示されるタイムテーブルでは、更に続けて通信データを受信する可能性が高いものについてはセッション保持期間が長く設定されており、続けて通信データを受信する可能性は低いものについてはセッション保持期間が短く設定されている。
【0028】
図8は、機器20の動作を示すフローチャートである。
図8に示されるように、処理部22は、通信部21を介してコントローラ10からのセッション確立要求を受信すると、セッション確立処理を行う(ステップS41)。セッション情報はセッション記憶部23に記憶される。セッション確立後、処理部22は、セッション終了要求を待ち受け、受信したか否かを判定する(ステップS42)。セッション終了要求を受信した場合(ステップS42:Yes)、セッション記憶部23内のセッション情報を消去し、セッションを終了させる(ステップS46)。
【0029】
一方、セッション終了要求を受信していない場合(ステップS42:No)、すなわちセッションが確立した状態の場合、処理部22は、コントローラ10から何らかの命令要求を含む通信データを受信したか否かを判定する(ステップS43)。命令要求を受信していないと判定された場合(ステップS43:No)、何もせずにステップS45へと移行する。命令要求を受信したと判定された場合(ステップS43:Yes)、セッション管理部24は、
図7で示したテーブル情報を用い、通信データの内容に応じたセッション保持期間を設定する(ステップS44)。なお、セッション保持期間は通信データを新たに受信するごとに更新される。セッション管理部24は、通信データを受信してから、設定されたセッション保持期間を経過した場合、セッション記憶部23内のセッション情報を消去し、セッションを終了する(ステップS46)。
【0030】
なお、セッション記憶部23に複数のセッション情報を記憶できるのであれば、セッション情報に優先度を付け、任意のタイミングで優先度の低いものから消去していくようにしてもよい。優先度の付け方は、機器20が特定のコントローラ10のセッション情報を優先したり、通信頻度の高いコントローラ10のセッション情報を優先したりといったことが考えられる。
【0031】
以上に示した通信システム1にあっては、コントローラ10と機器20との間で、常時セッションを確立するわけではなく、実際に通信を行う機器20との間でデータ通信しようとした際に、セッションの確立処理を行い、データの送受信が完了後にはセッションを終了する。したがって、セッションの維持に必要なメモリの容量を抑制することができるようになる。また、コントローラ10の場合は、データ通信のためのセッションを確立した場合に、電源をオフにするようなケースも考えられる。例えば、コントローラ10としてスマートフォン等のようなタブレット端末に、コントローラとして機能するアプリケーションをインストールして使用する場合などである。この場合に、コントローラ10の電源を再びオンにした際に、ネットワーク中に存在する機器20の機器IDが、ID記憶部15に記憶されている場合は、全てのデータの送受信が完了していない状態で、セッションが切断されたことを把握することができる。したがって、その場合に自動的にコントローラ10と機器20との間で、セッションを再確立し、実際に通信を行う通信相手とのみセッション確立を事前に行うため、より少ない処理時間でのセッション確立処理が可能となる。
【0032】
また、通信するデータの種別に応じて、セッション保持期間が予め設定されており、セッションを継続する必要性の低い通信については、セッション保持期間が短く設定されて、機器20側で自動的にセッションが期間経過後に終了される。したがって、コントローラ10からセッション終了の通知が来なかった場合などに、セッション維持に必要となるメモリの容量を抑制することができるようになる。
【0033】
次に上記実施形態の変形例について説明する。変形例では、更に通信データを暗号化する処理が加えられている。暗号化処理もセッション確立処理と同様に、高い処理能力が必要となるため、処理能力の低い家電などの情報機器においては困難となる場合が多い。以下の構成は、この点を緩和するためのものである。
【0034】
図9は、コントローラ100の機能構成を示すブロック図である。コントローラ100は、データ処理部31、暗号化処理部32、通信部33、暗号化データ記憶部34を備えている。なお、
図2で示したセッション処理に係る構成も同様に備えているがここでは図示を省略している。また、セッション処理に係る構成を含まずに、暗号化処理に関する構成のみを備えるようにしてもよい。データ処理部31は、コントローラ100上のアプリケーション要求に基づいて通信データを生成し、通信データが暗号処理を行う対象か否かを判定する。暗号化処理部32は、データ処理部31で暗号化する通信データとして判定された通信データを暗号化する処理を行う。通信部33は、機器200との通信を行う。暗号化データ記憶部34は、暗号化処理部32にて暗号化された通信データを記憶する。
【0035】
図10は、機器200の機能構成を示すブロック図である。機器200は、通信部41、暗号化処理部42、データ処理部43を備えている。通信部41、及び暗号化処理部42は、コントローラ100と同様の構成である。データ処理部43は、通信部41を介して受信したコントローラ100からの状態取得要求や制御要求を含む通信データに応じて応答用の通信データを生成し、その通信データが暗号処理を行う対象か否かを判定する。
【0036】
図11は、命令種別ごとに暗号化処理を行うか否かを決定するためのデータテーブルであり、コントローラ100、および機器200それぞれにおいて予め記憶されている。状態取得要求や制御要求には、データ自体が第三者に閲覧された場合に問題となる可能性が高いものと低いものとが存在する。例えば、「消費電力の取得要求」を含む通信データは、データ自体が悪意ある第三者に覗き見されても問題は少ない。一方、その応答である、「消費電力値を含む取得応答」は具体的な値を含むため、覗き見防止が必要である。このため、前者は平文、後者は暗号文で送信を行うとする。
【0037】
同様に、「運転オンの制御要求」を含む通信データは、悪意ある第三者による改竄や不正制御の防止が必要である。なお、応答を要求しない制御要求も同様に暗号化処理が実施される。一方、その応答である、「制御が成功したことを示す制御応答」は覗き見されても問題は少ない。このため、前者は暗号文、後者は平文で送信を行うとする。
【0038】
さらに、「固定情報である型名を含む取得応答」など、覗き見されても問題は少ないものについても、平文で送信を行うとする。
【0039】
図12は、コントローラ100と機器200との通信動作の流れである。変形例では、ECHONET Liteのように、コントローラ100から機器200への要求の通信と、機器200からコントローラ100への応答の通信とが、独立して非同期に行われる通信形態を想定する。
【0040】
なお、暗号化処理にあたっては、ECHONET Liteにおける「応答なし制御要求」のように、通信データの中に変動値が含まれない(応答あり制御要求では、要求と応答とを紐付けるためのトランザクション情報を含み、これは通信データごとに異なる)場合、暗号化処理部42は、暗号化済の通信データを暗号化データ記憶部34に記憶しておく。そして、暗号化処理部42は、通信データの内容が「応答なし制御要求」の場合、過去と同じ通信データかどうかを調べ、同じである場合、暗号化処理部42での暗号化処理は行わず、記憶された暗号化済の通信データをそのまま送信する。この場合、暗号化処理に係る処理時間を削減することができる。
【0041】
以上に示した変形例においては、状態取得要求、制御応答といった、暗号化を行わなくとも問題が少ない通信データについては暗号処理を行わないため、暗号化処理に係る処理時間を削減してコントローラ100と機器200間での通信が可能となる。
【0042】
なお、コントローラ10、100は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、各機能部の少なくとも一部は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、通信装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、各部は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
【0043】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。