(57)【要約】【課題】家電製品のソフトウェアのリモートアップデートを行うこと。【解決手段】端末装置は、共通鍵が設定された家電機器から、識別情報と、サーバの所在を特定する情報とを取得する取得部と、サーバの所在を特定する情報を使用して、サーバへ家電機器の識別情報を送信する送信部とを備える。サーバは、端末装置から家電機器の識別情報を受信する受信部と、マスター鍵と、家電機器の識別情報とに基づいて、共通鍵を生成する鍵生成部と、共通鍵を使用して第１データの第１メッセージ認証コードを作成する暗号化部と、家電機器へ、第１データと、第１メッセージ認証コードとを送信する送信部とを備える。家電機器は、サーバが送信した第１データと、第１メッセージ認証コードとに基づいて、家電機器に記憶されているソフトウェアのアップデートを行うアップデート処理部を備える。【選択図】図４
2018170806.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と、前記端末装置と通信を行うサーバとを備える通信システムであって、
端末装置は、
共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得する取得部と、
前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の前記識別情報を送信する送信部と
を備え、
前記サーバは、
前記端末装置から前記家電機器の前記識別情報を受信する受信部と、
マスター鍵と、前記受信部が受信した前記家電機器の前記識別情報とに基づいて、共通鍵を生成する鍵生成部と、
前記鍵生成部が生成した前記共通鍵を使用して第１のデータの第１のメッセージ認証コードを作成する暗号化部と、
前記家電機器へ、前記第１のデータと、前記第１のメッセージ認証コードとを送信する送信部と
を備え、
前記家電機器は、
前記サーバが送信した前記第１のデータと、前記第１のメッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うアップデート処理部
を備える、通信システム。
【請求項２】
前記アップデート処理部は、セキュアブート後の前記家電機器の状態を測定し、
前記家電機器は、
前記アップデート処理部が行った前記家電機器の状態の測定結果を、前記サーバへ送信する送信部
を備える、請求項１に記載の通信システム。
【請求項３】
端末装置と、前記端末装置と通信を行うサーバとを備える通信システムによって実行される通信方法であって、
端末装置が、共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、
前記端末装置が、前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信するステップと、
前記サーバが、前記端末装置から前記家電機器の識別情報を受信するステップと、
前記サーバが、マスター鍵と、受信した前記家電機器の識別情報とに基づいて、共通鍵を生成するステップと、
前記サーバが、生成した前記共通鍵を使用してデータのメッセージ認証コードを作成するステップと、
前記サーバが、前記家電機器へ、前記データと、前記メッセージ認証コードとを送信するステップと、
前記家電機器が、前記サーバが送信した前記データと、前記メッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うステップと
を有する、通信システムによって実行される、通信方法。
【請求項４】
サーバのコンピュータに、
共通鍵が設定された家電機器から取得される前記家電機器の識別情報及びサーバの所在を特定する情報に基づいて、前記サーバの所在を特定する情報を使用して、端末装置が送信した前記家電機器の識別情報を受信するステップと、
マスター鍵と、受信した前記家電機器の識別情報とに基づいて、共通鍵を生成するステップと、
生成した前記共通鍵を使用してデータのメッセージ認証コードを作成するステップと、
前記家電機器へ、前記家電機器が、前記家電機器に記憶されているソフトウェアのアップデートを行うための前記データと、前記メッセージ認証コードとを送信するステップと
を実行させる、プログラム。
【請求項５】
端末装置と、前記端末装置と通信を行うサーバとを備える通信システムであって、
端末装置は、
共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得する取得部と、
マスター鍵と、前記家電機器の識別情報とに基づいて、共通鍵を生成する第１の鍵生成部と、
前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信する第１の送信部と、
前記サーバから、データと、前記データのメッセージ認証コードとを受信する第１の受信部と、
前記メッセージ認証コードを検証する検証部と、
前記家電機器へデータを送信する第２の送信部と
を備え、
前記サーバは、
前記端末装置から前記家電機器の識別情報を受信する第２の受信部と、
マスター鍵と、前記第２の受信部が受信した前記家電機器の識別情報とに基づいて、共通鍵を生成する第２の鍵生成部と、
前記第２の鍵生成部が生成した前記共通鍵を使用してデータの第１のメッセージ認証コードを作成する暗号化部と、
前記端末装置へ、前記データと、前記第１のメッセージ認証コードとを送信する第３の送信部と
を備え、
前記第１の受信部は、前記サーバが送信したデータと、第１のメッセージ認証コードとを受信し、
前記検証部は、前記第１の受信部が受信した前記第１のメッセージ認証コードを検証し、
前記第２の送信部は、前記検証部による該第１のメッセージ認証コードの検証が成功した場合に、前記家電機器へ、前記第１の受信部が受信した前記データと、前記第１のメッセージ認証コードを送信し、
前記家電機器は、
前記端末装置が送信した前記データと、前記第１のメッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うアップデート処理部
を備える、通信システム。
【請求項６】
前記アップデート処理部は、セキュアブート後の前記家電機器の状態を測定し、
前記家電機器は、
前記アップデート処理部が行った前記家電機器の状態の測定結果を、前記端末装置へ送信する第４の送信部
を備える、請求項５に記載の通信システム。
【請求項７】
端末装置と、前記端末装置と通信を行うサーバとを備える通信システムによって実行される通信方法であって、
端末装置が、共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、
前記端末装置が、マスター鍵と、前記家電機器の識別情報に基づいて、共通鍵を生成するステップと、
前記端末装置が、前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信するステップと、
前記サーバが、前記端末装置から家電機器の識別情報を受信するステップと、
前記サーバが、マスター鍵と、前記家電機器の識別情報に基づいて、共通鍵を生成するステップと、
前記サーバが、前記共通鍵を生成するステップで生成した前記共通鍵を使用してデータのメッセージ認証コードを作成するステップと、
前記サーバが、前記家電機器へ、前記データと、前記メッセージ認証コードとを送信するステップと、
前記端末装置が、前記サーバから、データと、前記データのメッセージ認証コードとを受信するステップと、
前記端末装置が、前記メッセージ認証コードを検証するステップと、
前記端末装置が、前記検証するステップによる前記メッセージ認証コードの検証が成功した場合に、前記家電機器へ、受信した前記データと、前記メッセージ認証コードとを送信するステップと、
前記家電機器が、前記端末装置が送信した前記データと、前記メッセージ認証コードとを受信するステップと、
前記家電機器が、受信した前記データと、前記メッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うステップと
を有する、通信システムによって実行される、通信方法。
【請求項８】
端末装置のコンピュータに、
共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、
マスター鍵と、前記家電機器の識別情報とに基づいて、共通鍵を生成するステップと、
前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信するステップと、
前記サーバから、データと、前記データのメッセージ認証コードとを受信するステップと、
前記メッセージ認証コードを検証するステップと、
前記検証するステップで前記メッセージ認証コードの検証が成功した場合に、前記家電機器へ、前記受信するステップで受信した前記データと、前記メッセージ認証コードとを送信するステップと
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信システム、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
これまで、家電製品を制御するソフトウェアのリモートアップデートは、ネットワークに接続されている家電製品が少なく、殆ど行われてこなかった。
また、通信事業者の基地局に直接繋がる３Ｇ／ＬＴＥ通信モジュールを家電製品に搭載することで、リモートアップデートが可能になることが想定されるが、デバイスと通信コストの面から、普及に至っていない。
家電製品を操作する技術に関して、携帯電話機から簡単な操作で家庭内の家電品の操作を行うことが可能な技術が知られている（例えば、特許文献１参照）。この技術では、携帯電話機のインターネットホームページ閲覧機能を利用し、インターネットと公衆回線に接続されたホームページを提供するサービス機器を設け、携帯電話機を用いホームページ上で家電製品の操作を指示することにより、家庭に設置された遠隔操作アダプタに公衆回線経由で操作指示を行い、遠隔操作アダプタが家電品を制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１２２８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
家電製品を制御するソフトウェアのリモートアップデートが行われていない状態で、不具合によるリコールが、家電製品に対して必要になったと仮定する。この場合には、家電メーカは、ホームページにリコール情報を掲載する等して、家電製品を回収し、アップデートすることを呼びかける情報を長期に渡って掲載し続けることや、広告などを通じて周知を図ったりすることが必要になる場合がある。これによって、家電メーカは、コストと時間を要してしまう。
本発明は、上記問題を解決すべくなされたもので、家電製品のソフトウェアのリモートアップデートを行うことを目的とする。
【課題を解決するための手段】
【０００５】
（１）本発明の一態様は、端末装置と、前記端末装置と通信を行うサーバとを備える通信システムであって、端末装置は、共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得する取得部と、前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の前記識別情報を送信する送信部とを備え、前記サーバは、前記端末装置から前記家電機器の前記識別情報を受信する受信部と、マスター鍵と、前記受信部が受信した前記家電機器の前記識別情報とに基づいて、共通鍵を生成する鍵生成部と、前記鍵生成部が生成した前記共通鍵を使用して第１のデータの第１のメッセージ認証コードを作成する暗号化部と、前記家電機器へ、前記第１のデータと、前記第１のメッセージ認証コードとを送信する送信部とを備え、前記家電機器は、前記サーバが送信した前記第１のデータと、前記第１のメッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うアップデート処理部を備える、通信システムである。
【０００６】
（２）本発明の一態様は、上記（１）に記載の通信システムにおいて、前記アップデート処理部は、セキュアブート後の前記家電機器の状態を測定し、前記家電機器は、前記アップデート処理部が行った前記家電機器の状態の測定結果を、前記サーバへ送信する送信部を備える、通信システムである。
【０００７】
（３）本発明の一態様は、端末装置と、前記端末装置と通信を行うサーバとを備える通信システムによって実行される通信方法であって、端末装置が、共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、前記端末装置が、前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信するステップと、前記サーバが、前記端末装置から前記家電機器の識別情報を受信するステップと、前記サーバが、マスター鍵と、受信した前記家電機器の識別情報とに基づいて、共通鍵を生成するステップと、前記サーバが、生成した前記共通鍵を使用してデータのメッセージ認証コードを作成するステップと、前記サーバが、前記家電機器へ、前記データと、前記メッセージ認証コードとを送信するステップと、前記家電機器が、前記サーバが送信した前記データと、前記メッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うステップとを有する、通信システムによって実行される、通信方法である。
【０００８】
（４）本発明の一態様は、サーバのコンピュータに、共通鍵が設定された家電機器から取得される前記家電機器の識別情報及びサーバの所在を特定する情報に基づいて、前記サーバの所在を特定する情報を使用して、端末装置が送信した前記家電機器の識別情報を受信するステップと、マスター鍵と、受信した前記家電機器の識別情報とに基づいて、共通鍵を生成するステップと、生成した前記共通鍵を使用してデータのメッセージ認証コードを作成するステップと、前記家電機器へ、前記家電機器が、前記家電機器に記憶されているソフトウェアのアップデートを行うための前記データと、前記メッセージ認証コードとを送信するステップとを実行させる、プログラムである。
【０００９】
（５）本発明の一態様は、端末装置と、前記端末装置と通信を行うサーバとを備える通信システムであって、端末装置は、共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得する取得部と、マスター鍵と、前記家電機器の識別情報とに基づいて、共通鍵を生成する第１の鍵生成部と、前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信する第１の送信部と、前記サーバから、データと、前記データのメッセージ認証コードとを受信する第１の受信部と、前記メッセージ認証コードを検証する検証部と、前記家電機器へデータを送信する第２の送信部とを備え、前記サーバは、前記端末装置から前記家電機器の識別情報を受信する第２の受信部と、マスター鍵と、前記第２の受信部が受信した前記家電機器の識別情報とに基づいて、共通鍵を生成する第２の鍵生成部と、前記第２の鍵生成部が生成した前記共通鍵を使用してデータの第１のメッセージ認証コードを作成する暗号化部と、前記端末装置へ、前記データと、前記第１のメッセージ認証コードとを送信する第３の送信部とを備え、前記第１の受信部は、前記サーバが送信したデータと、第１のメッセージ認証コードとを受信し、前記検証部は、前記第１の受信部が受信した前記第１のメッセージ認証コードを検証し、前記第２の送信部は、前記検証部による該第１のメッセージ認証コードの検証が成功した場合に、前記家電機器へ、前記第１の受信部が受信した前記データと、前記第１のメッセージ認証コードを送信し、前記家電機器は、前記端末装置が送信した前記データと、前記第１のメッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うアップデート処理部を備える、通信システムである。
【００１０】
（６）本発明の一態様は、上記（５）に記載の通信システムにおいて、前記アップデート処理部は、セキュアブート後の前記家電機器の状態を測定し、前記家電機器は、前記アップデート処理部が行った前記家電機器の状態の測定結果を、前記端末装置へ送信する第４の送信部を備える、通信システムである。
【００１１】
（７）本発明の一態様は、端末装置と、前記端末装置と通信を行うサーバとを備える通信システムによって実行される通信方法であって、端末装置が、共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、前記端末装置が、マスター鍵と、前記家電機器の識別情報に基づいて、共通鍵を生成するステップと、前記端末装置が、前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信するステップと、前記サーバが、前記端末装置から家電機器の識別情報を受信するステップと、前記サーバが、マスター鍵と、前記家電機器の識別情報に基づいて、共通鍵を生成するステップと、前記サーバが、前記共通鍵を生成するステップで生成した前記共通鍵を使用してデータのメッセージ認証コードを作成するステップと、前記サーバが、前記家電機器へ、前記データと、前記メッセージ認証コードとを送信するステップと、前記端末装置が、前記サーバから、データと、前記データのメッセージ認証コードとを受信するステップと、前記端末装置が、前記メッセージ認証コードを検証するステップと、前記端末装置が、前記検証するステップによる前記メッセージ認証コードの検証が成功した場合に、前記家電機器へ、受信した前記データと、前記メッセージ認証コードとを送信するステップと、前記家電機器が、前記端末装置が送信した前記データと、前記メッセージ認証コードとを受信するステップと、前記家電機器が、受信した前記データと、前記メッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行うステップとを有する、通信システムによって実行される、通信方法である。
【００１２】
（８）本発明の一態様は、端末装置のコンピュータに、端末装置のコンピュータに、共通鍵が設定された家電機器から、前記家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、マスター鍵と、前記家電機器の識別情報とに基づいて、共通鍵を生成するステップと、前記サーバの所在を特定する情報を使用して、前記サーバへ前記家電機器の識別情報を送信するステップと、前記サーバから、データと、前記データのメッセージ認証コードとを受信するステップと、前記メッセージ認証コードを検証するステップと、前記検証するステップで前記メッセージ認証コードの検証が成功した場合に、前記家電機器へ、前記受信するステップで受信した前記データと、前記メッセージ認証コードとを送信するステップとを実行させる、プログラムである。
【発明の効果】
【００１３】
本発明の実施形態によれば、家電製品のソフトウェアのリモートアップデートを行うことができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態に係る通信システムを示す図である。
【図２】実施形態に係る端末装置のハードウェア構成の一例を示す図である。
【図３】実施形態に係る家電管理サーバ及び家電機器のハードウェア構成の一例を示す図である。
【図４】実施形態に係る通信システムの一例を示す機能ブロック図である。
【図５】実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
【図６】実施形態に係る通信システムの一例を示す機能ブロック図である。
【図７】実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
【発明を実施するための形態】
【００１５】
＜第１の実施形態＞
＜通信システム＞
図１は、本実施形態に係る通信システムを示す図である。通信システム１は、端末装置１００と家電管理サーバ２００と家電機器３００とを備える。端末装置１００と家電管理サーバ２００とは、インターネット等の通信網５０を介して接続され、端末装置１００と家電機器３００とは近距離無線通信によって接続される。
家電機器３００は、ブルートゥース(Bluetooth)（登録商標）、ワイファイ(WiFi)（登録商標）、近距離無線通信技術(Near Field Communication: NFC)等の無線通信技術で無線通信を行う無線デバイスを搭載する。家電機器３００には、近距離無線デバイスと接続するのに必要な情報（以下、「接続設定情報」という）、家電メーカの家電管理サーバ２００の通信アドレス、及び家電機器３００の製造番号等の識別情報を格納した二次元バーコード(ＱＲ(Quick Response)コード)等の情報コードが添付される。通信アドレスの一例は、ＵＲＬ(Uniform Resource Locator)である。また、家電機器３００には、マスター鍵(Master Secret)と家電機器３００の製造番号とから生成される共通鍵がプリセットされる。
【００１６】
家電機器３００は、家電管理サーバ２００が送信したアップデート用ソフトウェアを暗号化した結果と署名とを受信する。家電機器３００は、プリセットされている共通鍵で、当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コード(MAC: Message Authentication code)を演算する。そして、家電機器３００は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電管理サーバ２００から取得した署名とが一致するか否かを判定することで、アップデート用のソフトウェアの正真性を検証する。家電機器３００は、一致する場合には検証が成功であり、アップデート用のソフトウェアが家電管理サーバ２００から送信されたものであると判定する。一方、家電機器３００は、一致しない場合には検証が失敗であり、アップデート用のソフトウェアが家電管理サーバ２００から送信されたものでないと判定する。家電機器３００は、署名の検証が成功した場合には、当該家電機器３００のソフトウェアをアップデートする。家電機器３００は、ソフトウェアをアップデートした後、セキュアブート等を実施する。家電機器３００は、共通鍵で、家電機器の状態の測定結果を暗号化する。さらに、家電機器３００は、家電機器の状態の測定結果と共通鍵とからメッセージ認証コードを演算することによって署名を作成する。家電機器３００は、家電管理サーバ２００とセッションを構築した後、家電機器の状態の測定結果を暗号化した結果に署名を付与し、端末装置１００を経由して、家電管理サーバ２００へ送信する。
【００１７】
端末装置１００は、家電機器３００に添付された情報コードを読み取ると、該情報コードに格納された接続設定情報、家電メーカの家電管理サーバ２００の通信アドレス、家電機器３００の製造番号等の情報を取得する。端末装置１００は、接続設定情報を用いて、家電管理サーバ２００との間でセッションを構築する。端末装置１００は、情報コードから取得した家電管理サーバ２００の通信アドレスに基づいて、家電管理サーバ２００へ、家電メーカのウェブサイトをリクエストする。そして、端末装置１００は、家電管理サーバ２００へ家電機器３００の製造番号を送信する。さらに、端末装置１００は、家電メーカのウェブサイト上でユーザが入力した家電機器３００の利用者情報を送信する。
【００１８】
家電管理サーバ２００は、マスター鍵を記憶している。このマスター鍵は、家電機器３００にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じである。家電管理サーバ２００は、端末装置１００から家電機器３００の利用者情報と家電機器３００の製造番号とを取得する。家電管理サーバ２００は、家電機器３００の利用者情報を登録する。家電管理サーバ２００は、記憶しているマスター鍵と家電機器３００の製造番号とから共通鍵を生成する。家電管理サーバ２００は、共通鍵で、アップデート用のソフトウェアを暗号化する。家電機器３００は、アップデート用のソフトウェアと共通鍵とからメッセージ認証コードを演算することによって署名を作成する。家電管理サーバ２００は、家電機器３００とセッションを構築した後、アップデート用のソフトウェアを暗号化した結果に署名を付与し、端末装置１００を経由して、家電機器３００へ送信する。家電管理サーバ２００は、アップデート用のソフトウェアを暗号化した結果と署名とに対して家電機器３００が送信した家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、共通鍵で当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コードを演算する。家電管理サーバ２００は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電機器３００から取得した署名とが一致するか否かを判定する。家電管理サーバ２００は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器３００から送信されたものであると判定する。この場合、家電管理サーバ２００は、家電機器３００においてソフトウェアが正しくアップデートされたと判定する。一方、家電管理サーバ２００は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器３００から送信されたものでないと判定する。この場合、家電管理サーバ２００は、家電機器３００においてソフトウェアが正しくアップデートされていないと判定する。
【００１９】
＜端末装置の構成＞
図２は、本実施形態に係る端末装置１００のハードウェア構成の一例を示す。端末装置１００の一例は、携帯電話、スマートフォン、ＰＣ、タブレットＰＣ、セットトップボックス(Set Top Box :STB)、ゲーム機等である。端末装置１００は、ＣＰＵ１０２と、メモリ１０４と、不揮発性メモリ１０６と、ディスプレイ１１０と、操作部１１２と、通信Ｉ／Ｆ１１６と、読取部１１８と、内部バス１２０とを備えている。
ＣＰＵ１０２は、例えば不揮発性メモリ１０６に格納されるプログラム１０６２を実行し、メモリ１０４をワークメモリとして使用して、端末装置１００の各部を制御する。メモリ１０４は、半導体素子を利用した揮発性のメモリ等のＲＡＭによって構成され、ＣＰＵ１０２のワークメモリとして使用される。不揮発性メモリ１０６は、例えばＲＯＭ等によって構成される。不揮発性メモリ１０６には、ＣＰＵ１０２によって実行されるプログラム１０６２が格納される。ディスプレイ１１０は、ＣＰＵ１０２によって制御され、画像、ＧＵＩ(Graphical User Interface)等を表示する。ＣＰＵ１０２は、プログラムを実行することによって制御信号や、ディスプレイ１１０に表示する画像を表す映像信号を生成する。ＣＰＵ１０２は、画像を表す映像信号をディスプレイ１１０へ出力する。ディスプレイ１１０は、ＣＰＵ１０２によって出力された映像信号を処理することによって、映像を表示する。操作部１１２は、ユーザの操作を受け付ける入力デバイスである。通信Ｉ／Ｆ１１６は、外部機器や、通信網５０に接続された家電管理サーバ２００等と通信して、データの送受信を行うためのインターフェースである。具体的には、通信Ｉ／Ｆ１１６は、ブルートゥース（登録商標）、ワイファイ（登録商標）、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスによって構成される。読取部１１８は、情報コードを光学的に読み取り、該情報コードに格納されている情報を取得する。内部バス１２０は、ＣＰＵ１０２、メモリ１０４、不揮発性メモリ１０６、ディスプレイ１１０、操作部１１２、通信Ｉ／Ｆ１１６、及び読取部１１８を互いに接続する。内部バス１２０に接続される各部は、内部バス１２０を介して互いにデータのやり取りを行うことができるようにされている。
【００２０】
＜家電管理サーバの構成＞
図３は、家電管理サーバ２００のハードウェア構成の一例を示す。家電管理サーバ２００は、ＣＰＵ２０２と、メモリ２０４と、不揮発性メモリ２０６と、通信Ｉ／Ｆ２１６と、内部バス２１８とを備えている。
ＣＰＵ２０２は、例えば不揮発性メモリ２０６に格納されるプログラムを実行し、メモリ２０４をワークメモリとして使用して、家電管理サーバ２００の各部を制御する。メモリ２０４は、半導体素子を利用した揮発性のメモリ等のＲＡＭによって構成される。メモリ２０４は、ＣＰＵ２０２のワークメモリとして使用される。不揮発性メモリ２０６は、例えばハードディスクやＲＯＭ等によって構成され、ＣＰＵ２０２によって実行されるプログラム２０６２が格納される。通信Ｉ／Ｆ２１６は、端末装置１００等の外部機器と通信して、データの送受信を行うためのインターフェースである。具体的には、通信Ｉ／Ｆ２１６は、ブルートゥース（登録商標）、ワイファイ（登録商標）、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスによって構成される。内部バス２１８は、ＣＰＵ２０２、メモリ２０４、不揮発性メモリ２０６、及び通信Ｉ／Ｆ２１６を互いに接続する。内部バス２１８に接続される各部は、内部バス２１８を介して互いにデータのやりとりを行うことができるようにされている。
＜家電機器の構成＞
家電機器３００のハードウェア構成は、図３に示した家電管理サーバ２００のハードウェア構成を適用できる。ただし、家電機器３００の不揮発性メモリ２０６は、家電機器３００のＣＰＵ２０２によって実行されるプログラム２０６２が格納される。
【００２１】
＜本実施形態に係る無線通信システムの機能構成＞
図４は、本実施形態の無線通信システムを構成する端末装置１００、家電管理サーバ２００、及び家電機器３００の機能ブロック図である。
＜端末装置の機能構成＞
端末装置１００は、通信部１５２、取得部１５４、通信制御部１５６、記憶部１５８及び上記各構成要素を図４に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン１６０を有している。これらの各部は、図４に示されている各構成要素のいずれかが、不揮発性メモリ１０６からメモリ１０４上に展開されたプログラム１０６２を実行するＣＰＵ１０２からの命令によって動作することで実現される機能である。
【００２２】
＜端末装置の各機能構成＞
図２及び図４を用いて、端末装置１００の各機能構成について詳細に説明する。
端末装置１００の通信部１５２は、ＣＰＵ１０２からの命令、及び通信Ｉ／Ｆ１１６によって実現される。通信部１５２は、家電管理サーバ２００、家電機器３００等の他の装置との間でセッションが構築された後、各種データの送受信を行う。具体的には、通信部１５２は、家電管理サーバ２００へ、家電機器３００から取得した家電機器３００の製造番号と端末装置１００へ入力された家電機器３００の利用者情報とを送信する。また、通信部１５２は、家電機器３００へ、家電管理サーバ２００が送信したアップデート用のソフトウェアを暗号化した結果と署名とを送信する。取得部１５４は、ＣＰＵ１０２からの命令、及び読取部１１８によって実現される。取得部１５４は、家電機器３００に添付された情報コードを読み取り、該情報コードに格納された情報を取得する。具体的には、取得部１５４は、家電機器３００に添付されている情報コードに格納されている接続設定情報、家電管理サーバ２００の通信アドレス、及び家電機器３００の製造番号を取得する。通信制御部１５６は、ＣＰＵ１０２からの命令、及び通信Ｉ／Ｆ１１６によって実現される。通信制御部１５６は、通信部１５２と家電管理サーバ２００との間でのセッションの構築や、通信制御を行う。具体的には、通信制御部１５６は、ユーザが操作部１１２を操作することによって、接続設定情報と家電管理サーバ２００の通信アドレスとに基づいて、家電管理サーバ２００との間でセッションを構築する。そして、通信制御部１５６は、家電メーカのウェブサイトをリクエストし、取得部１５４が取得した家電機器３００の製造番号を通信部１５２から送信する。通信部１５２から送信された家電機器３００の製造番号が家電管理サーバ２００によって受信されると、端末装置１００のディスプレイ１１０には、当該家電機器３００の製造番号に対応する利用者情報の入力画面が表示される。ユーザは、該入力画面で、操作部１１２を操作することで利用者情報を入力する。ユーザが入力した利用者情報は、家電管理サーバ２００へ送信され、家電管理サーバ２００は、利用者情報を登録する。利用者情報の一例は、端末装置１００の電話番号、メールアドレス、利用者の住所、氏名等である。記憶部１５８は、不揮発性メモリ１０６によって実現される。記憶部１５８は、端末装置１００の識別情報等を記憶する。
【００２３】
＜家電管理サーバの機能構成＞
家電管理サーバ２００は、通信部２５２、鍵生成部２５４、通信制御部２５６、記憶部２５８、ソフトウェア提供部２６１、暗号化部２６２、検証部２６３、及び上記各構成要素を図４に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン２６４を有している。記憶部２５８には、マスター鍵２５８２と、アップデート用ソフトウェア２５８４とが記憶される。これらの各部は、図４に示されている各構成要素のいずれかが、家電管理サーバ２００のハードウェア構成において、不揮発性メモリ２０６からメモリ２０４上に展開されたプログラム２０６２を実行するＣＰＵ２０２からの命令によって動作することで実現される機能である。
【００２４】
＜家電管理サーバの各機能構成＞
図２及び図４を用いて、家電管理サーバ２００の各機能構成について詳細に説明する。  家電管理サーバ２００の通信部２５２は、家電管理サーバ２００のＣＰＵ２０２からの命令及び通信Ｉ／Ｆ２１６によって実現される。通信部２５２は、端末装置１００、家電機器３００等の他の装置との間でセッションが構築された後、各種データの送受信を行う。具体的には、通信部２５２は、端末装置１００が送信した家電機器３００の製造番号と、家電機器３００の利用者情報とを受信する。また、通信部２５２は、家電機器３００が送信した家電機器の状態の測定結果を暗号化した結果と署名とを受信する。鍵生成部２５４は、通信部２５２が受信した家電機器３００の製造番号と、記憶部２５８に記憶されているマスター鍵２５８２とから共通鍵を生成する。記憶部２５８に記憶されているマスター鍵２５８２は、家電機器３００にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じであるため、鍵生成部２５４か生成する共通鍵は、家電機器３００にプリセットされる共通鍵を同じである。鍵生成部２５４は、生成した共通鍵を記憶部２５８に記憶する。
鍵生成部２５４は、以下に示される生成方法で、共通鍵を生成する。
（共通鍵の生成方法の例１）  共通鍵の生成方法の例１では、ハッシュ関数を利用する。例えば、マスター鍵と家電機器３００の製造番号の連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵に使用する。
（共通鍵の生成方法の例２）  共通鍵の生成方法の例２では、排他的論理和演算を利用する。例えば、マスター鍵と家電機器３００の製造番号の排他的論理和演算を実行し、演算結果の値「マスター鍵  ｘｏｒ  家電機器３００の製造番号」を共通鍵に使用する。但し、「Ａ  ｘｏｒ  Ｂ」はＡとＢの排他的論理和である。
【００２５】
通信制御部２５６は、家電管理サーバ２００のＣＰＵ２０２からの命令、及び通信Ｉ／Ｆ２１６によって実現される。通信制御部２５６は、通信部２５２と端末装置１００との間でのセッションの構築や、通信制御を行う。具体的には、通信制御部２５６は、端末装置１００によるアクセスに応じてセッションを構築する。そして、通信制御部２５６は、端末装置１００が送信した家電メーカのウェブサイトのリクエストに応じて、ウェブサイトの画面情報を端末装置１００へ送信する。通信制御部２５６は、通信部２５２から、端末装置１００が送信する家電機器３００の製造番号を取得し、当該家電機器３００の製造番号に対応する利用者情報の入力画面情報を端末装置１００へ送信する。さらに、通信制御部２５６は、利用者情報の入力画面に対してユーザが入力した利用者情報を取得し、記憶部２５８に登録する。さらに、通信制御部２５６は、通信部２５２と家電機器３００との間でのセッションの構築や、通信制御を行う。
【００２６】
ソフトウェア提供部２６１は、家電管理サーバ２００のＣＰＵ２０２からの命令によって実現される。ソフトウェア提供部２６１は、記憶部２５８に記憶されたアップデート用ソフトウェア２５８４を取得し、該アップデート用ソフトウェア２５８４を暗号化部２６２へ出力する。ソフトウェア提供部２６１は、暗号化部２６２からアップデート用ソフトウェア２５８４を暗号化した結果と署名とを取得すると、通信部２５２から家電機器３００へ、該アップデート用ソフトウェア２５８４を暗号化した結果と署名とを送信する。また、ソフトウェア提供部２６１は、家電機器３００へ送信したアップデート用ソフトウェア２５８４を暗号化した結果と署名とに対して、家電機器の状態の測定結果を暗号化した結果と署名とを通信部２５２から取得すると、該家電機器の状態の測定結果を暗号化した結果と署名とを検証部２６３へ出力する。ソフトウェア提供部２６１は、検証部２６３から取得した検証が成功したか否かを表す情報が、検証が成功したことを示す場合、家電機器３００におけるソフトウェアのアップデートが成功したと判定する。一方、ソフトウェア提供部２６１は、検証部２６３から取得した検証が成功したか否かを表す情報が、検証が失敗したことを示す場合、家電機器３００におけるソフトウェアのアップデートが失敗したと判定する。ソフトウェア提供部２６１は、検証が失敗である場合には、所定のエラー処理を行ってもよい。例えば、ソフトウェア提供部２６１は、端末装置１００へソフトウェアのアップデートが失敗したことを通知するようにしてもよい。
暗号化部２６２は、家電管理サーバ２００のＣＰＵ２０２からの命令によって実現される。暗号化部２６２は、通信制御部２５６によって家電機器３００との間でセッションの構築が行われた後、ソフトウェア提供部２６１からアップデート用ソフトウェア２５８４を取得する。暗号化部２６２は、鍵生成部２５４が生成した共通鍵で、アップデート用ソフトウェア２５８４を暗号化する。さらに、暗号化部２６２は、アップデート用ソフトウェア２５８４と該共通鍵とからメッセージ認証コードを演算することによって署名を作成する。暗号化部２６２は、ソフトウェア提供部２６１へアップデート用ソフトウェア２５８４を暗号化した結果と署名とを出力する。
【００２７】
検証部２６３は、家電管理サーバ２００のＣＰＵ２０２からの命令によって実現される。検証部２６３は、家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。具体的には、検証部２６３は、鍵生成部２５４が生成した共通鍵で、家電機器の状態の測定結果を暗号化した結果を復号し、復号した結果と該共通鍵とからメッセージ認証コードを演算する。そして、検証部２６３は、復号した結果と該共通鍵とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部２６３は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器３００から送信されたものであると判定する。一方、検証部２６３は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器３００から送信されたものでないと判定する。検証部２６３は、検証が成功したか否かを表す情報をソフトウェア提供部２６１へ出力する。
記憶部２５８は、不揮発性メモリ２０６によって実現される。記憶部２５８は、家電管理サーバ２００の識別情報、マスター鍵２５８２、鍵生成部２５４が生成した共通鍵、アップデート用ソフトウェア２５８４等を記憶する。
【００２８】
＜家電機器の機能構成＞
家電機器３００は、通信部３５２、アップデート処理部３５４、通信制御部３５６、記憶部３５８、暗号化部３６２、検証部３６３、及び上記各構成要素を図４に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン３６４を有している。記憶部３５８には、共通鍵３５８２、及び製造番号３５８４が記憶される。共通鍵３５８２は、前述したようにマスター鍵と家電機器３００の製造番号とから生成され、プリセットされる。これらの各部は、図４に示されている各構成要素のいずれかが、家電機器３００の不揮発性メモリ２０６からメモリ２０４上に展開されたプログラム２０６２を実行するＣＰＵ２０２からの命令によって動作することで実現される機能である。
【００２９】
＜家電機器の各機能構成＞
図２及び図４を用いて、家電機器３００の各機能構成について詳細に説明する。
家電機器３００の通信部３５２は、家電機器３００のＣＰＵ２０２からの命令及び通信Ｉ／Ｆ２１６によって実現される。通信部３５２は、端末装置１００、家電管理サーバ２００等の他の装置との間でセッションが構築された後、各種データの送受信を行う。具体的には、通信部３５２は、家電管理サーバ２００からアップデート用ソフトウェアを暗号化した結果と署名とを受信する。また、通信部３５２は、家電管理サーバ２００へ、家電機器の状態の測定結果を暗号化した結果と署名とを送信する。
アップデート処理部３５４は、家電機器３００のＣＰＵ２０２からの命令によって実現される。アップデート処理部３５４は、家電管理サーバ２００から受信したアップデート用ソフトウェアによってソフトウェアのアップデートを行う。アップデート処理部３５４は、ソフトウェアのアップデートを行った後に、セキュアブートを行う。そして、アップデート処理部３５４は、セキュアブート後の家電機器の状態を測定し、該家電機器の状態の測定結果を暗号化部３６２へ出力する。アップデート処理部３５４は、暗号化部３６２から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、通信部３５２から家電管理サーバ２００へ送信する。
【００３０】
通信制御部３５６は、家電機器３００のＣＰＵ２０２からの命令及び通信Ｉ／Ｆ２１６によって実現される。通信制御部３５６は、通信部３５２と家電管理サーバ２００との間でのセッションの構築や、通信制御を行う。具体的には、通信制御部３５６は、端末装置１００を経由して、家電管理サーバ２００の通信制御部２５６との間で、セッションの構築を行う。
暗号化部３６２は、家電機器３００のＣＰＵ２０２からの命令によって実現される。暗号化部３６２は、アップデート処理部３５４から家電機器の状態の測定結果を取得する。暗号化部３６２は、共通鍵３５８２で、家電機器の状態の測定結果を暗号化する。さらに、暗号化部３６２は、家電機器の状態の測定結果と共通鍵３５８２とからメッセージ認証コードを演算することによって署名を作成する。暗号化部３６２は、通信部３５２へ家電機器の状態の測定結果を暗号化した結果と、署名とを出力する。
【００３１】
検証部３６３は、家電機器３００のＣＰＵ２０２からの命令によって実現される。検証部３６３は、通信制御部３５６から家電管理サーバ２００が送信したアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。具体的には、検証部３６３は、共通鍵３５８２で、アップデート用ソフトウェアを暗号化した結果を復号し、復号した結果と共通鍵３５８２とからメッセージ認証コードを演算する。そして、検証部３６３は、復号した結果と共通鍵３５８２とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部３６３は、一致する場合には検証が成功であり、アップデート用ソフトウェアが家電管理サーバ２００から送信されたものであると判定する。一方、検証部３６３は、一致しない場合には検証が失敗であり、アップデート用ソフトウェアが家電管理サーバ２００から送信されたものでないと判定する。検証部３６３は、検証が失敗である場合には、所定のエラー処理を行ってもよい。検証部３６３は、検証が成功である場合には、アップデート処理部３５４へ検証が成功したことを通知する。
記憶部３５８は、家電機器３００の不揮発性メモリ２０６によって実現される。記憶部３５８は、家電機器３００の識別情報、共通鍵３５８２、及び製造番号３５８４等を記憶する。
【００３２】
＜通信システムの動作＞
図５は、本実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップＳ５０２では、端末装置１００の取得部１５４は、家電機器３００に添付された情報コードを読み取り、該情報コードに格納されている接続設定情報と家電管理サーバ２００の通信アドレスと家電機器３００の製造番号とを取得する。
ステップＳ５０４では、端末装置１００の通信制御部１５６は、取得部１５４が取得した接続設定情報を用いて、家電管理サーバ２００の通信制御部２５６との間でセッションを構築する。
ステップＳ５０６では、端末装置１００の通信制御部１５６は、家電管理サーバ２００の通信制御部２５６との間でセッションが構築されると、家電管理サーバ２００の通信アドレスに基づいて、家電メーカのウェブサイトをリクエストする。そして、端末装置１００の通信制御部１５６は、家電機器３００の製造番号を送信し、当該製造番号に対応して表示される利用者情報の入力画面に対してユーザが入力した利用者情報を送信する。家電管理サーバ２００の通信制御部２５６は、通信部２５２によって端末装置１００が送信した家電機器３００の利用者情報が受信されると、当該利用者情報を記憶部２５８へ記憶する。
【００３３】
ステップＳ５０８では、家電管理サーバ２００の鍵生成部２５４は、家電機器３００の製造番号と、記憶部２５８に記憶されているマスター鍵２５８２とから共通鍵を生成する。
ステップＳ５１０では、家電管理サーバ２００の通信制御部２５６は、家電機器３００の通信制御部３５６との間で、セッションを構築する。
ステップＳ５１２では、家電管理サーバ２００のソフトウェア提供部２６１は、記憶部２５８に記憶されているアップデート用ソフトウェア２５８４を取得し、暗号化部２６２に出力する。暗号化部２６２は、ソフトウェア提供部２６１から取得したアップデート用ソフトウェア２５８４を暗号化する。さらに、暗号化部２６２は、アップデート用ソフトウェア２５８４と、鍵生成部２５４が生成した共通鍵とからメッセージ認証コードを演算することによって署名を作成する。暗号化部２６２は、ソフトウェア提供部２６１へアップデート用ソフトウェア２５８４を暗号化した結果と署名とを出力する。ソフトウェア提供部２６１は、暗号化部２６２から取得したアップデート用ソフトウェア２５８４を暗号化した結果と署名とを、通信部２５２へ出力する。通信部２５２は、家電機器３００へ、ソフトウェア提供部２６１から出力されたアップデート用ソフトウェア２５８４を暗号化した結果と署名とを送信する。
【００３４】
ステップＳ５１４では、家電機器３００の通信制御部３５６は、家電管理サーバ２００から受信したアップデート用ソフトウェア２５８４を暗号化した結果と署名とを検証部３６３へ出力する。検証部３６３は、通信制御部３５６からアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。以降、検証が成功した場合について説明を続ける。検証が失敗した場合には、所定のエラー処理が行われてもよい。
ステップＳ５１６では、家電機器３００のアップデート処理部３５４は、セキュアブートを実施する。
ステップＳ５１８では、家電機器３００のアップデート処理部３５４は、セキュアブート後の家電機器の状態を測定し、家電機器の状態の測定結果を暗号化部３６２へ出力する。暗号化部３６２は、共通鍵３５８２で、家電機器の状態の測定結果を暗号化する。さらに、暗号化部３６２は、家電機器の状態の測定結果と該共通鍵３５８２とからメッセージ認証コードを演算することによって署名を作成する。暗号化部３６２は、アップデート処理部３５４へ家電機器の状態の測定結果を暗号化した結果と署名とを出力する。
ステップＳ５２０では、家電機器３００のアップデート処理部３５４は、暗号化部３６２から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、通信部３５２から家電管理サーバ２００へ送信する。
【００３５】
ステップＳ５２２では、家電管理サーバ２００の通信制御部２５６は、家電機器３００から受信した家電機器の状態の測定結果を暗号化した結果と署名とを検証部２６３へ出力する。検証部２６３は、通信制御部２５６から家電管理サーバ２００が送信した家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。検証部２６３は、ソフトウェア提供部２６１へ、検証が成功したか否かを示す情報を出力する。ソフトウェア提供部２６１は、検証部２６３から出力された検証が成功したか否かを示す情報が検証が成功したことを示す場合には、家電機器３００よるソフトウェアのアップデートが成功したと判定し、検証が失敗したことを示す場合には家電機器３００によるソフトウェアのアップデートが失敗したと判定する。ここで、ソフトウェア提供部２６１は、通信部２５２から端末装置１００へソフトウェアのアップデートが成功したか否かを示す情報を送信するようにしてもよい。これによって、端末装置１００の使用者へ、家電機器３００によるソフトウェアのアップデートが成功したか否かを通知できる。
【００３６】
図５に示されるシーケンスチャートのステップＳ５０６において、端末装置１００は、家電管理サーバ２００へ、利用者情報と製造番号とに加え、端末装置１００の位置情報を送信してもよい。ここで、端末装置１００が送信する位置情報は、家電機器３００の近傍の位置であるのが好ましい。家電管理サーバ２００の通信制御部２５６は、通信部２５２によって端末装置１００が送信した位置情報が受信されると、当該位置情報を記憶部２５８へ記憶する。そして、ステップＳ５２０において、端末装置１００は、家電機器３００が送信した家電機器の状態の測定結果を暗号化した結果と署名に、端末装置１００の位置情報を付加して送信するようにしてもよい。これによって、家電管理サーバ２００は、端末装置１００から家電機器の状態の測定結果を暗号化した結果と署名とに付加して送信された端末装置１００の位置情報を受信すると、該位置情報と記憶部２５８に記憶している位置情報とを比較することによって、アップデートのタイミングで、家電機器３００の位置が変更されているか否かを判定できる。具体的には、家電機器３００の位置が所定の閾値以上移動されていると判定された場合には、引っ越しが行われたと推測できる。さらに、家電管理サーバ２００は、家電機器３００の位置が所定の閾値以上移動されていると判定した場合に、位置情報を再登録することを促すようにしてもよい。
本実施形態においては、家電管理サーバ２００が、アップデート用ソフトウェアを暗号化した結果と署名とを送信する場合について説明したが、これに限られない。例えば、家電管理サーバ２００は、署名は作成せず、アップデート用ソフトウェアを暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器３００が、家電機器の状態の計測結果を暗号化した結果と署名とを送信する場合について説明したが、これに限られない。例えば、家電機器３００は、署名は作成せず、家電機器の状態の計測結果を暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器３００にマスター鍵と家電機器３００の製造番号とから生成される共通鍵がプリセットされる場合について説明したが、これに限られない。例えば、家電機器３００にマスター鍵と家電機器３００の製造番号とＮ（Ｎは実数）から生成される共通鍵がプリセットされ、家電管理サーバ２００に家電機器３００にプリセットされる共通鍵を生成する際に使用されたマスター鍵が記憶されてもよい。この場合、Ｎは、暗号化、署名等の利用したい共通鍵の数に応じて用意される。また、家電機器３００にマスター鍵が複数プリセットされてもよい。
本実施形態に係る通信システムによれば、家電機器３００と端末装置１００と家電管理サーバ２００とを共通鍵を用いて、安全に接続することができる。共通鍵を使用することで、家電製品に組み込まれる非力なマイコンでも暗号化や署名付与などの演算が可能になる。また、マスター鍵と製造番号から生成される共通鍵を用いるため、公開鍵基盤(public key infrastructure: PKI)等の煩雑になりがちな鍵管理の機構が不要になる。家電管理サーバ２００によって、家電機器３００の利用者情報が登録されるため、仮に家電機器のソフトウェアのアップデートが必要になった場合でも、家電管理サーバから家電機器へ直接通知できる。これによって、ソフトウェアのアップデートが必要になった家電機器に対して、早急にアップデートを進めることができる。
【００３７】
＜第２の実施形態＞
＜通信システム＞
本実施形態に係る通信システムは、図１を適用できる。ただし、端末装置１００の代わりに端末装置４００を備える。なお、家電管理サーバ２００及び家電機器３００は、前述した家電管理サーバ２００及び家電機器３００を適用できる。前述した第１の実施形態では、端末装置１００は、単に通信の土管として使用されていた。そして、家電管理サーバ２００のみによってマスター鍵が管理されていた。本実施形態に係る通信システムでは、端末装置４００及び家電管理サーバ２００の両方がマスター鍵を管理する。
端末装置４００には、ＳＩＭ(Subscriber Identity Module)等のセキュアエレメントが搭載され、当該セキュアエレメントにマスター鍵が安全にセットされる。このマスター鍵は、家電機器３００にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じである。このマスター鍵のセットは、通信事業者のサーバと端末装置４００の安全な領域（セキュアエレメント）を直接暗号化通信路で繋ぐオーバーザエアー(Over the Air)によって行われる。
端末装置４００は、家電機器３００に添付された情報コードを読み取ると、該情報コードに格納された接続設定情報、家電メーカの家電管理サーバ２００の通信アドレス、家電機器３００の製造番号等の情報を取得する。端末装置４００は、取得した情報のうち、家電機器３００の製造番号とセキュアエレメントに記憶されているマスター鍵と家電機器３００の製造番号とから共通鍵を生成する。
【００３８】
端末装置４００は、前述した端末装置１００の機能に加えて、以下の機能を有する。端末装置４００は、家電管理サーバ２００からアップデート用ソフトウェアを暗号化した結果と署名とを受信する。端末装置４００は、生成した共通鍵で、当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コードを演算する。端末装置４００は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電管理サーバ２００から取得した署名とが一致するか否かを判定することで、アップデート用のソフトウェアの正真性を検証する。端末装置４００は、一致する場合には検証が成功であり、アップデート用のソフトウェアが家電管理サーバ２００から送信されたものであると判定する。一方、端末装置４００は、一致しない場合には検証が失敗であり、アップデート用のソフトウェアから送信されたものでないと判定する。端末装置４００は、署名の検証が成功した場合には、当該アップデート用のソフトウェアを暗号化した結果と署名とを記憶する。
【００３９】
さらに、端末装置４００は、家電機器３００から家電機器の状態の測定結果を暗号化した結果と署名とを受信すると、生成した共通鍵で当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コードを演算する。端末装置４００は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電機器３００から取得した署名とが一致するか否かを判定することで、家電機器の状態の測定結果の正真性を検証する。端末装置４００は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器３００から送信されたものであると判定する。一方、家電機器３００は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器３００から送信されたものでないと判定する。端末装置４００は、署名の検証が成功した場合には、当該アップデート用のソフトウェアを暗号化した結果と署名とを、家電管理サーバ２００へ送信する。また、端末装置４００は、署名の検証が失敗した場合には、記憶している当該アップデート用のソフトウェアを暗号化した結果と署名とを、家電機器３００へ再送する。  本実施形態に係る端末装置４００のハードウェア構成は図２を適用できる。
【００４０】
＜本実施形態に係る無線通信システムの機能構成＞
図６は、本実施形態の通信システム２を構成する端末装置４００、家電管理サーバ２００、及び家電機器３００の機能ブロック図である。なお、家電管理サーバ２００、及び家電機器３００の機能ブロック図は、前述した第１の実施形態と同じである。
＜端末装置の機能構成＞
端末装置４００は、通信部４５２、取得部４５４、通信制御部４５６、記憶部４５８、鍵生成部４６１、検証部４６３、及び上記各構成要素を図６に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン４６０を有している。
＜端末装置の各機能構成＞
図２及び図６を用いて、端末装置４００の各機能構成について詳細に説明する。なお、以下では、端末装置４００の各機能構成を説明するにあたって、図２に示されている各構成要素のうち、端末装置４００の各機能構成を実現させるための主なハードウェアとの関係も説明する。端末装置４００の通信部４５２、取得部４５４、通信制御部４５６、及び記憶部４５８は、前述した端末装置１００の通信部１５２、取得部１５４、通信制御部１５６、及び記憶部１５８を適用できる。ただし、記憶部４５８は、セキュアエレメントで構成され、マスター鍵４５８２が記憶される。このマスター鍵４５８２は、家電機器３００にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じである。
【００４１】
鍵生成部４６１は、取得部４５４が取得した家電機器３００の製造番号と、記憶部４５８に記憶されているマスター鍵４５８２とから共通鍵を生成する。共通鍵の生成方法については前述したので、その説明を省略する。記憶部４５８に記憶されているマスター鍵４５８２は、家電機器３００にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じであるため、鍵生成部４６１か生成する共通鍵は、家電機器３００にプリセットされる共通鍵を同じである。鍵生成部４６１は、生成した共通鍵を記憶部４５８に記憶する。
検証部４６３は、ＣＰＵ１０２からの命令によって実現される。検証部４６３は、通信制御部４５６から家電管理サーバ２００からアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。具体的には、検証部４６３は、鍵生成部４６１が生成した共通鍵で、アップデート用ソフトウェアを暗号化した結果を復号し、復号した結果と該共通鍵とからメッセージ認証コードを演算する。検証部４６３は、復号した結果と該共通鍵とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部４６３は、一致する場合には検証が成功であり、アップデート用ソフトウェアが家電管理サーバ２００から送信されたものであると判定する。一方、検証部４６３は、一致しない場合には検証が失敗であり、アップデート用ソフトウェアが家電管理サーバ２００から送信されたものでないと判定する。検証部４６３は、検証が成功したか否かを表す情報を通信制御部４５６へ出力する。通信制御部４５６は、検証部４６３から検証が成功したことが通知されると、アップデート用ソフトウェアを暗号化した結果と署名とを記憶部４５８へ記憶する。
また、検証部４６３は、通信制御部４５６から家電機器３００が送信した家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。具体的には、検証部４６３は、鍵生成部４６１が生成した共通鍵で、家電機器の状態の測定結果を暗号化した結果を復号し、復号した結果と該共通鍵とからメッセージ認証コードを演算する。検証部４６３は、復号した結果と該共通鍵とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部４６３は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器３００から送信されたものであると判定する。一方、検証部４６３は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器３００から送信されたものでないと判定する。検証部２６３は、検証が成功したか否かを表す情報を通信制御部４５６へ出力する。通信制御部４５６は、検証部４６３から検証が成功したことが通知されると、家電機器の状態の測定結果を暗号化した結果と署名とを通信部４５２から家電管理サーバ２００へ送信する。
【００４２】
＜通信システムの動作＞
図７は、本実施形態に係る通信システム２の動作の一例を示すシーケンスチャートである。ステップＳ７０２−Ｓ７０８は、図５に示されるステップＳ５０２−Ｓ５０８を適用できる。
ステップＳ７１０では、端末装置４００の鍵生成部４６１は、家電機器３００の製造番号と、記憶部４５８に記憶されているマスター鍵４５８２とから共通鍵を生成する。
ステップＳ７１２では、家電管理サーバ２００のソフトウェア提供部２６１は、記憶部２５８に記憶しているアップデート用ソフトウェア２５８４を取得し、暗号化部２６２に出力する。暗号化部２６２は、ソフトウェア提供部２６１から取得したアップデート用ソフトウェア２５８４を暗号化する。さらに、暗号化部２６２は、アップデート用ソフトウェア２５８４と鍵生成部２５４が生成した共通鍵とからメッセージ認証コードを演算することによって署名を作成する。暗号化部２６２は、ソフトウェア提供部２６１へアップデート用ソフトウェア２５８４を暗号化した結果と署名とを出力する。ソフトウェア提供部２６１は、暗号化部２６２から取得したアップデート用ソフトウェア２５８４を暗号化した結果と署名とを、通信部２５２へ出力する。通信部２５２は、端末装置４００へ、ソフトウェア提供部２６１から出力されたアップデート用ソフトウェア２５８４を暗号化した結果と署名とを送信する。
【００４３】
ステップＳ７１４では、端末装置４００の通信制御部４５６は、家電管理サーバ２００から受信したアップデート用ソフトウェア２５８４を暗号化した結果と署名とを検証部４６３へ出力する。検証部４６３は、通信制御部４５６から家電管理サーバ２００が送信したアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。以降、検証が成功した場合について説明を続ける。検証が失敗した場合には、所定のエラー処理が行われてもよい。
ステップＳ７１６では、端末装置４００の通信制御部４５６は、検証部４６３による検証が成功した場合、アップデート用ソフトウェアを暗号化した結果と署名とを記憶部４５８へ記憶する。
ステップＳ７１８では、端末装置４００の通信制御部４５６は、家電機器３００の通信制御部３５６との間でセッションを構築する。
ステップＳ７２０では、端末装置４００の通信制御部４５６は、家電管理サーバ２００から受信したアップデート用ソフトウェア２５８４を暗号化した結果と署名とを、通信部４５２へ出力する。通信部４５２は、家電機器３００へ、通信制御部４５６から出力されたアップデート用ソフトウェア２５８４を暗号化した結果と署名とを送信する。
ステップＳ７２２−Ｓ７２６は、図５のステップＳ５１４−Ｓ５１８を適用できる。  ステップＳ７２８では、家電機器３００のアップデート処理部３５４は、暗号化部３６２から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、通信部３５２から端末装置４００へ送信する。
【００４４】
ステップＳ７３０では、端末装置４００の通信制御部４５６は、家電機器３００から受信した家電機器の状態の測定結果を暗号化した結果と署名とを検証部４６３へ出力する。検証部４６３は、通信制御部４５６から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。検証部４６３は、通信制御部４５６へ、検証が成功したか否かを示す情報を出力する。以降、検証が成功した場合について説明を続ける。認証が失敗した場合には、通信制御部４５６は、所定のエラー処理を行うようにしてもよく、記憶部４５８に記憶した家電機器の状態の測定結果を暗号化した結果と署名とを再送してもよい。
ステップＳ７３２では、端末装置４００の通信制御部４５６は、家電機器の状態の測定結果を暗号化した結果と署名とを、通信部４５２から家電管理サーバ２００へ送信する。  ステップＳ７３４は、図５のステップＳ５２２を適用できる。
本実施形態においては、家電管理サーバ２００が、アップデート用ソフトウェアを暗号化した結果と署名とを送信する場合について説明したが、これに限られない。例えば、家電管理サーバ２００は、署名は作成せず、アップデート用ソフトウェアを暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器３００が、家電機器の状態の測定結果を暗号化した結果と、署名とを送信する場合について説明したが、これに限られない。例えば、家電機器３００は、署名は作成せず、家電機器の状態の測定結果を暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器３００にマスター鍵と家電機器３００の製造番号とから生成される共通鍵がプリセットされる場合について説明したが、この限りではない。例えば、家電機器３００にマスター鍵と家電機器３００の製造番号とＮ（Ｎは実数）から生成される共通鍵がプリセットされ、家電管理サーバ２００及び端末装置４００に家電機器３００にプリセットされる共通鍵を生成する際に使用されたマスター鍵が記憶されてもよい。この場合、Ｎは、暗号化、署名等の利用したい共通鍵の数に応じて用意される。また、家電機器３００にマスター鍵が複数プリセットされてもよい。
【００４５】
本実施形態に係る通信システムによれば、第１の実施形態と同様に、家電機器３００と端末装置４００と家電管理サーバ２００とを共通鍵を用いて、安全に接続することができる。共通鍵を使用することで、家電製品に組み込まれる非力なマイコンでも暗号化や署名付与などの演算が可能になる。また、マスター鍵と製造番号から生成される共通鍵を用いるため、煩雑になりがちな鍵管理の機構が不要になる。家電管理サーバ２００からアップデート用ソフトウェアを暗号化した結果と署名とが端末装置４００へ送信され、端末装置４００は該署名の検証を行い、検証が成功した場合には、該アップデート用ソフトウェアを暗号化した結果と署名とをバッファリングする。これによって、端末装置４００と家電管理サーバ２００との間がオフライン状態であっても、端末装置４００から家電機器３００へ、アップデート用ソフトウェアを暗号化した結果と署名とを送信することで、家電機器３００のソフトウェアをアップデートできる。
前述した実施形態では、家電機器３００に近距離無線デバイスとの間の接続設定情報、家電メーカの家電管理サーバの通信アドレス、及び家電機器３００の製造番号等の情報を格納した二次元バーコード(ＱＲ(Quick Response)コード)等の情報コードが添付される場合について説明したがこの例に限られない。例えば、ＮＦＣタグに家電機器３００に近距離無線デバイスとの間の接続設定情報、家電メーカの家電管理サーバの通信アドレス、及び家電機器３００の製造番号等の情報を格納し、当該ＮＦＣタグを家電機器３００に添付するようにしてもよい。
【００４６】
以上、本発明の実施形態及びその変形例を説明したが、これらの実施形態及びその変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態及びその変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合せを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述の端末装置、家電管理サーバ、及び家電機器は内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４７】
前述した実施形態において、端末装置１００及び端末装置４００は通信装置の一例であり、家電管理サーバ２００はサーバの一例であり、通信アドレスはサーバの所在を特定する情報の一例であり、家電機器３００は装置の一例であり、家電機器の製造番号は装置の識別情報の一例であり、第１のデータはアップデート用ソフトウェアの一例である。
【符号の説明】
【００４８】
５０…通信網、１００…端末装置、１０２…ＣＰＵ、１０４…メモリ、１０６…不揮発性メモリ、１１０…ディスプレイ、１１２…操作部、１１６…通信Ｉ／Ｆ、１１８…読取部、１２０…内部バス、１５２…通信部、１５４…取得部、１５６…通信制御部、１５８…記憶部、１６０…バスライン、２００…家電管理サーバ、２０２…ＣＰＵ、２０４…メモリ、２０６…不揮発性メモリ、２１６…通信Ｉ／Ｆ、２１８…内部バス、２５２…通信部、２５４…鍵生成部、２５６…通信制御部、２５８…記憶部、２６１…ソフトウェア提供部、２６２…暗号化部、２６３…検証部、２６４…バスライン、３００…家電機器、３５２…通信部、３５４…アップデート処理部、３５６…通信制御部、３５８…記憶部、３６２…暗号化部、３６３…検証部、３６４…バスライン、４００…端末装置、４５２…通信部、４５４…取得部、４５６…通信制御部、４５８…記憶部、４６０…バスライン、４６１…鍵生成部、４６２…暗号化部、４６３…検証部、１０６２…プログラム、２０６２…プログラム、２５８２…マスター鍵、２５８４…アップデート用ソフトウェア、３５８２…共通鍵、３５８４…製造番号、４５８２…マスター鍵
【図１】
2018170806.tif 000003
【図２】
2018170806.tif 000004
【図３】
2018170806.tif 000005
【図４】
2018170806.tif 000006
【図５】
2018170806.tif 000007
【図６】
2018170806.tif 000008
【図７】
2018170806.tif 000009