(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
家電製品を制御するソフトウェアのリモートアップデートが行われていない状態で、不具合によるリコールが、家電製品に対して必要になったと仮定する。この場合には、家電メーカは、ホームページにリコール情報を掲載する等して、家電製品を回収し、アップデートすることを呼びかける情報を長期に渡って掲載し続けることや、広告などを通じて周知を図ったりすることが必要になる場合がある。これによって、家電メーカは、コストと時間を要してしまう。
本発明は、上記問題を解決すべくなされたもので、家電製品のソフトウェアのリモートアップデートを行うことを目的とする。
【課題を解決するための手段】
【0005】
(1)本発明の一態様は、
端末装置と、該
端末装置と通信を行うサーバとを備える通信システムであって、
端末装置は、共通鍵が設定された
家電機器から、該
家電機器の識別情報と、サーバの所在を特定する情報とを取得する取得部と、前記サーバの所在を特定する情報を使用して、該サーバへ前記
家電機器の識別情報を送信する送信部とを備え、前記サーバは、前記
端末装置から前記
家電機器の識別情報を受信する受信部と、マスター鍵と、前記受信部が受信した前記
家電機器の識別情報に基づいて、共通鍵を生成する鍵生成部と、前記鍵生成部が生成した前記共通鍵で第1のデータを暗号化することによって第1の暗号化データを作成し、該共通鍵を使用して前記第1
のデータの第1のメッセージ認証コードを作成する暗号化部と、前記
家電機器へ、前記第1の暗号化データと、前記第1のメッセージ認証コードを送信する送信部とを備え
、前記家電機器は、前記サーバが送信した前記第1の暗号化データと、前記第1のメッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行い、セキュアブート後の前記家電機器の状態を測定するアップデート処理部と、前記アップデート処理部が行った前記家電機器の状態の測定結果を、前記サーバへ送信する送信部とを備える、通信システムである。
【0006】
(2)本発明の一態様は、上記(1)に記載の通信システムにおいて、前記
家電機器に設定される共通鍵は、複数のマスター鍵のいずれか1つと、前記
家電機器の識別情報とに基づいて生成される、通信システムである。
【0007】
(3)本発明の一態様は、上記(1)に記載の通信システムにおいて、前記
家電機器に設定される共通鍵は、マスター鍵と、前記
家電機器の識別情報と、
共通鍵の数に応じて用意されるN(Nは実数)に基づいて生成される、通信システムである。
【0008】
(4)本発明の一態様は、上記(1)から上記(3)のいずれか一項に記載の通信システムにおいて、前記サーバは、メッセージ認証コードを検証する検証部を備え、前記受信部は、前記
家電機器がセキュアブートした後に測定した該
家電機器の状態を、前記
家電機器に設定された前記共通鍵で暗号化することによって生成した第2のメッセージ認証コードを受信し、前記検証部は、該第2のメッセージ認証コードを検証する、通信システムである。
【0009】
(5)本発明の一態様は、
端末装置と、該
端末装置と通信を行うサーバとを備える通信システムによって実行される通信方法であって、
端末装置が、共通鍵が設定された
家電機器から、該
家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、前記
端末装置が、前記サーバの所在を特定する情報を使用して、該サーバへ前記
家電機器の識別情報を送信するステップと、前記サーバが、前記
端末装置から前記
家電機器の識別情報を受信するステップと、前記サーバが、マスター鍵と、前記受信するステップで受信した前記
家電機器の識別情報に基づいて、共通鍵を生成するステップと、前記サーバが、前記生成するステップで生成した前記共通鍵でデータを暗号化することによって暗号化データを作成し、該共通鍵を使用して前記暗号化データのメッセージ認証コードを作成するステップと、前記サーバが、前記
家電機器へ、前記暗号化データと、前記メッセージ認証コードを送信するステップと
、前記家電機器が、前記サーバが送信した前記暗号化データと、前記メッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行い、セキュアブート後の前記家電機器の状態を測定するステップと、前記家電機器が、前記測定するステップで行った前記家電機器の状態の測定結果を、前記サーバへ送信するステップとを有する、通信システムによって実行される、通信方法である。
【0010】
(6)本発明の一態様は、サーバのコンピュータに、共通鍵が設定された
家電機器から取得される該
家電機器の識別情報及びサーバの所在を特定する情報に基づいて、前記サーバの所在を特定する情報を使用して、
端末装置から送信された前記
家電機器の識別情報を受信するステップと、マスター鍵と、前記受信するステップで受信した前記
家電機器の識別情報に基づいて、共通鍵を生成するステップと、前記生成するステップで生成した前記共通鍵でデータを暗号化することによって暗号化データを作成し、該共通鍵を使用して前記暗号化データのメッセージ認証コードを作成するステップと、前記
家電機器へ、前記暗号化データと、前記メッセージ認証コードとを送信するステップと
、前記家電機器が、前記サーバが送信した前記暗号化データと、前記メッセージ認証コードとに基づいて、前記家電機器に記憶されているソフトウェアのアップデートを行い、セキュアブート後の前記家電機器の状態を測定し、前記家電機器が送信した前記家電機器の状態の測定結果を受信するステップとを実行させる、プログラムである。
【0011】
(7)本発明の一態様は、
端末装置と、該
端末装置と通信を行うサーバとを備える通信システムであって、
端末装置は、共通鍵が設定された
家電機器から、該
家電機器の識別情報と、サーバの所在を特定する情報とを取得する取得部と、マスター鍵と、前記
家電機器の識別情報に基づいて、共通鍵を生成する第1の鍵生成部と、前記サーバの所在を特定する情報を使用して、該サーバへ前記
家電機器の識別情報を送信する第1の送信部と、前記サーバから、該サーバがデータを暗号化することによって作成した暗号化データと、該暗号化データのメッセージ認証コードを受信する第1の受信部と、前記メッセージ認証コードを検証する検証部と、前記
家電機器へデータを送信する第2の送信部とを備え、前記サーバは、前記
端末装置から前記
家電機器の識別情報を受信する第2の受信部と、マスター鍵と、前記第2の受信部が受信した前記
家電機器の識別情報に基づいて、共通鍵を生成する第2の鍵生成部と、前記第2の鍵生成部が生成した前記共通鍵でデータを暗号化することによって第1の暗号化データを作成し、該共通鍵を使用して前
記データの第1のメッセージ認証コードを作成する暗号化部と、前記
家電機器へ、前記第1の暗号化データと、前記第1のメッセージ認証コードを送信する第3の送信部とを備え、前記第1の受信部は、前記サーバが送信した第1の暗号化データと、第1のメッセージ認証コードとを受信し、前記検証部は、該第1のメッセージ認証コードを検証し、前記第2の送信部は、前記検証部による該第1のメッセージ認証コードの検証が成功した場合に、前記
家電機器へ、前記第1の受信部が受信した
前記第1の暗号化データと、
前記第1のメッセージ認証コードを送信する、通信システムである。
【0012】
(8)本発明の一態様は、上記(7)に記載の通信システムにおいて、前記
家電機器に設定される共通鍵は、複数のマスター鍵のいずれか1つと、前記
家電機器の識別情報とに基づいて生成される、通信システムである。
【0013】
(9)本発明の一態様は、上記(7)に記載の通信システムにおいて、前記
家電機器に設定される共通鍵は、マスター鍵と、前記
家電機器の識別情報と、
共通鍵の数に応じて用意されるN(Nは実数)に基づいて生成される、通信システムである。
【0014】
(10)本発明の一態様は、上記(7)から上記(9)のいずれか一項に記載の通信システムにおいて、前記
端末装置は、前記
家電機器から該
家電機器がセキュアブートした後に測定される該
家電機器の状態を、前記
家電機器に設定された前記共通鍵で暗号化することによって生成した第2のメッセージ認証コードを受信する第3の受信部を備え、前記検証部は、前記第3の受信部が受信した前記第2のメッセージ認証コードを検証し、前記第1の送信部は、前記検証部による前記第2のメッセージ認証コードの検証が成功した場合に、前記サーバへ、前記第2の受信部が受信した該第2のメッセージ認証コードを送信する、通信システムである。
【0015】
(11)本発明の一態様は、共通鍵が設定された
家電機器から、該
家電機器の識別情報と、サーバの所在を特定する情報とを取得する取得部と、マスター鍵と、前記
家電機器の識別情報に基づいて、共通鍵を生成する鍵生成部と、前記サーバの所在を特定する情報を使用して、該サーバへ前記
家電機器の識別情報を送信する第1の送信部と、前記サーバから、該サーバがデータを暗号化することによって作成した暗号化データと、該暗号化データのメッセージ認証コードを受信する受信部と、前記メッセージ認証コードを検証する検証部と、前記
家電機器へ前記検証部による該メッセージ認証コードの検証が成功した場合に、前記
家電機器へ、前記受信部が受信した
前記暗号化データと、
前記メッセージ認証コードを送信する第2の送信部とを備える、
端末装置である。
【0016】
(12)本発明の一態様は、
端末装置と、該
端末装置と通信を行うサーバとを備える通信システムによって実行される通信方法であって、
端末装置が、共通鍵が設定された
家電機器から、該
家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、前記
端末装置が、マスター鍵と、前記
家電機器の識別情報に基づいて、共通鍵を生成するステップと、前記
端末装置が、前記サーバの所在を特定する情報を使用して、該サーバへ前記
家電機器の識別情報を送信するステップと、前記サーバが、前記
端末装置から
家電機器の識別情報を受信するステップと、前記サーバが、マスター鍵と、前記
家電機器の識別情報に基づいて、共通鍵を生成するステップと、前記サーバが、該共通鍵を生成するステップで生成した前記共通鍵でデータを暗号化することによって暗号化データを作成し、該共通鍵を使用して前記暗号化データのメッセージ認証コードを作成するステップと、前記サーバが、前記
家電機器へ、前記暗号化データと、前記メッセージ認証コードを送信するステップと、前記
端末装置が、前記サーバから、該サーバがデータを暗号化することによって作成した暗号化データと、該暗号化データのメッセージ認証コードを受信するステップと、前記
端末装置が、前記メッセージ認証コードを検証するステップと、前記
端末装置が、前記検証するステップによる該メッセージ認証コードの検証が成功した場合に、前記
家電機器へ、前記受信するステップで受信した
前記暗号化データと、
前記メッセージ認証コードを送信するステップとを有する、通信システムによって実行される、通信方法である。
【0017】
(13)本発明の一態様は、
端末装置のコンピュータに、共通鍵が設定された
家電機器から、該
家電機器の識別情報と、サーバの所在を特定する情報とを取得するステップと、マスター鍵と、前記
家電機器の識別情報に基づいて、共通鍵を生成するステップと、前記サーバの所在を特定する情報を使用して、該サーバへ前記
家電機器の識別情報を送信するステップと、前記サーバから、該サーバがデータを暗号化することによって作成した暗号化データと、該暗号化データのメッセージ認証コードを受信するステップと、前記メッセージ認証コードを検証するステップと、前記検証するステップで該メッセージ認証コードの検証が成功した場合に、前記
家電機器へ、前記受信するステップで受信した
前記暗号化データと、
前記メッセージ認証コードを送信するステップとを実行させる、プログラムである。
【発明の効果】
【0018】
本発明の実施形態によれば、家電製品のソフトウェアのリモートアップデートを行うことができる。
【発明を実施するための形態】
【0020】
<第1の実施形態>
<通信システム>
図1は、本実施形態に係る通信システムを示す図である。通信システム1は、端末装置100と家電管理サーバ200と家電機器300とを備える。端末装置100と家電管理サーバ200とは、インターネット等の通信網50を介して接続され、端末装置100と家電機器300とは近距離無線通信によって接続される。
家電機器300は、ブルートゥース(Bluetooth)(登録商標)、ワイファイ(WiFi)(登録商標)、近距離無線通信技術(Near Field Communication: NFC)等の無線通信技術で無線通信を行う無線デバイスを搭載する。家電機器300には、近距離無線デバイスと接続するのに必要な情報(以下、「接続設定情報」という)、家電メーカの家電管理サーバ200の通信アドレス、及び家電機器300の製造番号等の識別情報を格納した二次元バーコード(QR(Quick Response)コード)等の情報コードが添付される。通信アドレスの一例は、URL(Uniform Resource Locator)である。また、家電機器300には、マスター鍵(Master Secret)と家電機器300の製造番号とから生成される共通鍵がプリセットされる。
【0021】
家電機器300は、家電管理サーバ200が送信したアップデート用ソフトウェアを暗号化した結果と署名とを受信する。家電機器300は、プリセットされている共通鍵で、当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コード(MAC: Message Authentication code)を演算する。そして、家電機器300は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電管理サーバ200から取得した署名とが一致するか否かを判定することで、アップデート用のソフトウェアの正真性を検証する。家電機器300は、一致する場合には検証が成功であり、アップデート用のソフトウェアが家電管理サーバ200から送信されたものであると判定する。一方、家電機器300は、一致しない場合には検証が失敗であり、アップデート用のソフトウェアが家電管理サーバ200から送信されたものでないと判定する。家電機器300は、署名の検証が成功した場合には、当該家電機器300のソフトウェアをアップデートする。家電機器300は、ソフトウェアをアップデートした後、セキュアブート等を実施する。家電機器300は、共通鍵で、家電機器の状態の測定結果を暗号化する。さらに、家電機器300は、家電機器の状態の測定結果と共通鍵とからメッセージ認証コードを演算することによって署名を作成する。家電機器300は、家電管理サーバ200とセッションを構築した後、家電機器の状態の測定結果を暗号化した結果に署名を付与し、端末装置100を経由して、家電管理サーバ200へ送信する。
【0022】
端末装置100は、家電機器300に添付された情報コードを読み取ると、該情報コードに格納された接続設定情報、家電メーカの家電管理サーバ200の通信アドレス、家電機器300の製造番号等の情報を取得する。端末装置100は、接続設定情報を用いて、家電管理サーバ200との間でセッションを構築する。端末装置100は、情報コードから取得した家電管理サーバ200の通信アドレスに基づいて、家電管理サーバ200へ、家電メーカのウェブサイトをリクエストする。そして、端末装置100は、家電管理サーバ200へ家電機器300の製造番号を送信する。さらに、端末装置100は、家電メーカのウェブサイト上でユーザが入力した家電機器300の利用者情報を送信する。
【0023】
家電管理サーバ200は、マスター鍵を記憶している。このマスター鍵は、家電機器300にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じである。家電管理サーバ200は、端末装置100から家電機器300の利用者情報と家電機器300の製造番号とを取得する。家電管理サーバ200は、家電機器300の利用者情報を登録する。家電管理サーバ200は、記憶しているマスター鍵と家電機器300の製造番号とから共通鍵を生成する。家電管理サーバ200は、共通鍵で、アップデート用のソフトウェアを暗号化する。家電機器300は、アップデート用のソフトウェアと共通鍵とからメッセージ認証コードを演算することによって署名を作成する。家電管理サーバ200は、家電機器300とセッションを構築した後、アップデート用のソフトウェアを暗号化した結果に署名を付与し、端末装置100を経由して、家電機器300へ送信する。家電管理サーバ200は、アップデート用のソフトウェアを暗号化した結果と署名とに対して家電機器300が送信した家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、共通鍵で当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コードを演算する。家電管理サーバ200は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電機器300から取得した署名とが一致するか否かを判定する。家電管理サーバ200は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器300から送信されたものであると判定する。この場合、家電管理サーバ200は、家電機器300においてソフトウェアが正しくアップデートされたと判定する。一方、家電管理サーバ200は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器300から送信されたものでないと判定する。この場合、家電管理サーバ200は、家電機器300においてソフトウェアが正しくアップデートされていないと判定する。
【0024】
<端末装置の構成>
図2は、本実施形態に係る端末装置100のハードウェア構成の一例を示す。端末装置100の一例は、携帯電話、スマートフォン、PC、タブレットPC、セットトップボックス(Set Top Box :STB)、ゲーム機等である。端末装置100は、CPU102と、メモリ104と、不揮発性メモリ106と、ディスプレイ110と、操作部112と、通信I/F116と、読取部118と、内部バス120とを備えている。
CPU102は、例えば不揮発性メモリ106に格納されるプログラム1062を実行し、メモリ104をワークメモリとして使用して、端末装置100の各部を制御する。メモリ104は、半導体素子を利用した揮発性のメモリ等のRAMによって構成され、CPU102のワークメモリとして使用される。不揮発性メモリ106は、例えばROM等によって構成される。不揮発性メモリ106には、CPU102によって実行されるプログラム1062が格納される。ディスプレイ110は、CPU102によって制御され、画像、GUI(Graphical User Interface)等を表示する。CPU102は、プログラムを実行することによって制御信号や、ディスプレイ110に表示する画像を表す映像信号を生成する。CPU102は、画像を表す映像信号をディスプレイ110へ出力する。ディスプレイ110は、CPU102によって出力された映像信号を処理することによって、映像を表示する。操作部112は、ユーザの操作を受け付ける入力デバイスである。通信I/F116は、外部機器や、通信網50に接続された家電管理サーバ200等と通信して、データの送受信を行うためのインターフェースである。具体的には、通信I/F116は、ブルートゥース(登録商標)、ワイファイ(登録商標)、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスによって構成される。読取部118は、情報コードを光学的に読み取り、該情報コードに格納されている情報を取得する。内部バス120は、CPU102、メモリ104、不揮発性メモリ106、ディスプレイ110、操作部112、通信I/F116、及び読取部118を互いに接続する。内部バス120に接続される各部は、内部バス120を介して互いにデータのやり取りを行うことができるようにされている。
【0025】
<家電管理サーバの構成>
図3は、家電管理サーバ200のハードウェア構成の一例を示す。家電管理サーバ200は、CPU202と、メモリ204と、不揮発性メモリ206と、通信I/F216と、内部バス218とを備えている。
CPU202は、例えば不揮発性メモリ206に格納されるプログラムを実行し、メモリ204をワークメモリとして使用して、家電管理サーバ200の各部を制御する。メモリ204は、半導体素子を利用した揮発性のメモリ等のRAMによって構成される。メモリ204は、CPU202のワークメモリとして使用される。不揮発性メモリ206は、例えばハードディスクやROM等によって構成され、CPU202によって実行されるプログラム2062が格納される。通信I/F216は、端末装置100等の外部機器と通信して、データの送受信を行うためのインターフェースである。具体的には、通信I/F216は、ブルートゥース(登録商標)、ワイファイ(登録商標)、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスによって構成される。内部バス218は、CPU202、メモリ204、不揮発性メモリ206、及び通信I/F216を互いに接続する。内部バス218に接続される各部は、内部バス218を介して互いにデータのやりとりを行うことができるようにされている。
<家電機器の構成>
家電機器300のハードウェア構成は、
図3に示した家電管理サーバ200のハードウェア構成を適用できる。ただし、家電機器300の不揮発性メモリ206は、家電機器300のCPU202によって実行されるプログラム2062が格納される。
【0026】
<本実施形態に係る無線通信システムの機能構成>
図4は、本実施形態の無線通信システムを構成する端末装置100、家電管理サーバ200、及び家電機器300の機能ブロック図である。
<端末装置の機能構成>
端末装置100は、通信部152、取得部154、通信制御部156、記憶部158及び上記各構成要素を
図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン160を有している。これらの各部は、
図4に示されている各構成要素のいずれかが、不揮発性メモリ106からメモリ104上に展開されたプログラム1062を実行するCPU102からの命令によって動作することで実現される機能である。
【0027】
<端末装置の各機能構成>
図2及び
図4を用いて、端末装置100の各機能構成について詳細に説明する。
端末装置100の通信部152は、CPU102からの命令、及び通信I/F116によって実現される。通信部152は、家電管理サーバ200、家電機器300等の他の装置との間でセッションが構築された後、各種データの送受信を行う。具体的には、通信部152は、家電管理サーバ200へ、家電機器300から取得した家電機器300の製造番号と端末装置100へ入力された家電機器300の利用者情報とを送信する。また、通信部152は、家電機器300へ、家電管理サーバ200が送信したアップデート用のソフトウェアを暗号化した結果と署名とを送信する。取得部154は、CPU102からの命令、及び読取部118によって実現される。取得部154は、家電機器300に添付された情報コードを読み取り、該情報コードに格納された情報を取得する。具体的には、取得部154は、家電機器300に添付されている情報コードに格納されている接続設定情報、家電管理サーバ200の通信アドレス、及び家電機器300の製造番号を取得する。通信制御部156は、CPU102からの命令、及び通信I/F116によって実現される。通信制御部156は、通信部152と家電管理サーバ200との間でのセッションの構築や、通信制御を行う。具体的には、通信制御部156は、ユーザが操作部112を操作することによって、接続設定情報と家電管理サーバ200の通信アドレスとに基づいて、家電管理サーバ200との間でセッションを構築する。そして、通信制御部156は、家電メーカのウェブサイトをリクエストし、取得部154が取得した家電機器300の製造番号を通信部152から送信する。通信部152から送信された家電機器300の製造番号が家電管理サーバ200によって受信されると、端末装置100のディスプレイ110には、当該家電機器300の製造番号に対応する利用者情報の入力画面が表示される。ユーザは、該入力画面で、操作部112を操作することで利用者情報を入力する。ユーザが入力した利用者情報は、家電管理サーバ200へ送信され、家電管理サーバ200は、利用者情報を登録する。利用者情報の一例は、端末装置100の電話番号、メールアドレス、利用者の住所、氏名等である。記憶部158は、不揮発性メモリ106によって実現される。記憶部158は、端末装置100の識別情報等を記憶する。
【0028】
<家電管理サーバの機能構成>
家電管理サーバ200は、通信部252、鍵生成部254、通信制御部256、記憶部258、ソフトウェア提供部261、暗号化部262、検証部263、及び上記各構成要素を
図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン264を有している。記憶部258には、マスター鍵2582と、アップデート用ソフトウェア2584とが記憶される。これらの各部は、
図4に示されている各構成要素のいずれかが、家電管理サーバ200のハードウェア構成において、不揮発性メモリ206からメモリ204上に展開されたプログラム2062を実行するCPU202からの命令によって動作することで実現される機能である。
【0029】
<家電管理サーバの各機能構成>
図2及び
図4を用いて、家電管理サーバ200の各機能構成について詳細に説明する。
家電管理サーバ200の通信部252は、家電管理サーバ200のCPU202からの命令及び通信I/F216によって実現される。通信部252は、端末装置100、家電機器300等の他の装置との間でセッションが構築された後、各種データの送受信を行う。具体的には、通信部252は、端末装置100が送信した家電機器300の製造番号と、家電機器300の利用者情報とを受信する。また、通信部252は、家電機器300が送信した家電機器の状態の測定結果を暗号化した結果と署名とを受信する。鍵生成部254は、通信部252が受信した家電機器300の製造番号と、記憶部258に記憶されているマスター鍵2582とから共通鍵を生成する。記憶部258に記憶されているマスター鍵2582は、家電機器300にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じであるため、鍵生成部254か生成する共通鍵は、家電機器300にプリセットされる共通鍵を同じである。鍵生成部254は、生成した共通鍵を記憶部258に記憶する。
鍵生成部254は、以下に示される生成方法で、共通鍵を生成する。
(共通鍵の生成方法の例1) 共通鍵の生成方法の例1では、ハッシュ関数を利用する。例えば、マスター鍵と家電機器300の製造番号の連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵に使用する。
(共通鍵の生成方法の例2) 共通鍵の生成方法の例2では、排他的論理和演算を利用する。例えば、マスター鍵と家電機器300の製造番号の排他的論理和演算を実行し、演算結果の値「マスター鍵 xor 家電機器300の製造番号」を共通鍵に使用する。但し、「A xor B」はAとBの排他的論理和である。
【0030】
通信制御部256は、家電管理サーバ200のCPU202からの命令、及び通信I/F216によって実現される。通信制御部256は、通信部252と端末装置100との間でのセッションの構築や、通信制御を行う。具体的には、通信制御部256は、端末装置100によるアクセスに応じてセッションを構築する。そして、通信制御部256は、端末装置100が送信した家電メーカのウェブサイトのリクエストに応じて、ウェブサイトの画面情報を端末装置100へ送信する。通信制御部256は、通信部252から、端末装置100が送信する家電機器300の製造番号を取得し、当該家電機器300の製造番号に対応する利用者情報の入力画面情報を端末装置100へ送信する。さらに、通信制御部256は、利用者情報の入力画面に対してユーザが入力した利用者情報を取得し、記憶部258に登録する。さらに、通信制御部256は、通信部252と家電機器300との間でのセッションの構築や、通信制御を行う。
【0031】
ソフトウェア提供部261は、家電管理サーバ200のCPU202からの命令によって実現される。ソフトウェア提供部261は、記憶部258に記憶されたアップデート用ソフトウェア2584を取得し、該アップデート用ソフトウェア2584を暗号化部262へ出力する。ソフトウェア提供部261は、暗号化部262からアップデート用ソフトウェア2584を暗号化した結果と署名とを取得すると、通信部252から家電機器300へ、該アップデート用ソフトウェア2584を暗号化した結果と署名とを送信する。また、ソフトウェア提供部261は、家電機器300へ送信したアップデート用ソフトウェア2584を暗号化した結果と署名とに対して、家電機器の状態の測定結果を暗号化した結果と署名とを通信部252から取得すると、該家電機器の状態の測定結果を暗号化した結果と署名とを検証部263へ出力する。ソフトウェア提供部261は、検証部263から取得した検証が成功したか否かを表す情報が、検証が成功したことを示す場合、家電機器300におけるソフトウェアのアップデートが成功したと判定する。一方、ソフトウェア提供部261は、検証部263から取得した検証が成功したか否かを表す情報が、検証が失敗したことを示す場合、家電機器300におけるソフトウェアのアップデートが失敗したと判定する。ソフトウェア提供部261は、検証が失敗である場合には、所定のエラー処理を行ってもよい。例えば、ソフトウェア提供部261は、端末装置100へソフトウェアのアップデートが失敗したことを通知するようにしてもよい。
暗号化部262は、家電管理サーバ200のCPU202からの命令によって実現される。暗号化部262は、通信制御部256によって家電機器300との間でセッションの構築が行われた後、ソフトウェア提供部261からアップデート用ソフトウェア2584を取得する。暗号化部262は、鍵生成部254が生成した共通鍵で、アップデート用ソフトウェア2584を暗号化する。さらに、暗号化部262は、アップデート用ソフトウェア2584と該共通鍵とからメッセージ認証コードを演算することによって署名を作成する。暗号化部262は、ソフトウェア提供部261へアップデート用ソフトウェア2584を暗号化した結果と署名とを出力する。
【0032】
検証部263は、家電管理サーバ200のCPU202からの命令によって実現される。検証部263は、家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。具体的には、検証部263は、鍵生成部254が生成した共通鍵で、家電機器の状態の測定結果を暗号化した結果を復号し、復号した結果と該共通鍵とからメッセージ認証コードを演算する。そして、検証部263は、復号した結果と該共通鍵とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部263は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器300から送信されたものであると判定する。一方、検証部263は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器300から送信されたものでないと判定する。検証部263は、検証が成功したか否かを表す情報をソフトウェア提供部261へ出力する。
記憶部258は、不揮発性メモリ206によって実現される。記憶部258は、家電管理サーバ200の識別情報、マスター鍵2582、鍵生成部254が生成した共通鍵、アップデート用ソフトウェア2584等を記憶する。
【0033】
<家電機器の機能構成>
家電機器300は、通信部352、アップデート処理部354、通信制御部356、記憶部358、暗号化部362、検証部363、及び上記各構成要素を
図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン364を有している。記憶部358には、共通鍵3582、及び製造番号3584が記憶される。共通鍵3582は、前述したようにマスター鍵と家電機器300の製造番号とから生成され、プリセットされる。これらの各部は、
図4に示されている各構成要素のいずれかが、家電機器300の不揮発性メモリ206からメモリ204上に展開されたプログラム2062を実行するCPU202からの命令によって動作することで実現される機能である。
【0034】
<家電機器の各機能構成>
図2及び
図4を用いて、家電機器300の各機能構成について詳細に説明する。
家電機器300の通信部352は、家電機器300のCPU202からの命令及び通信I/F216によって実現される。通信部352は、端末装置100、家電管理サーバ200等の他の装置との間でセッションが構築された後、各種データの送受信を行う。具体的には、通信部352は、家電管理サーバ200からアップデート用ソフトウェアを暗号化した結果と署名とを受信する。また、通信部352は、家電管理サーバ200へ、家電機器の状態の測定結果を暗号化した結果と署名とを送信する。
アップデート処理部354は、家電機器300のCPU202からの命令によって実現される。アップデート処理部354は、家電管理サーバ200から受信したアップデート用ソフトウェアによってソフトウェアのアップデートを行う。アップデート処理部354は、ソフトウェアのアップデートを行った後に、セキュアブートを行う。そして、アップデート処理部354は、セキュアブート後の家電機器の状態を測定し、該家電機器の状態の測定結果を暗号化部362へ出力する。アップデート処理部354は、暗号化部362から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、通信部352から家電管理サーバ200へ送信する。
【0035】
通信制御部356は、家電機器300のCPU202からの命令及び通信I/F216によって実現される。通信制御部356は、通信部352と家電管理サーバ200との間でのセッションの構築や、通信制御を行う。具体的には、通信制御部356は、端末装置100を経由して、家電管理サーバ200の通信制御部256との間で、セッションの構築を行う。
暗号化部362は、家電機器300のCPU202からの命令によって実現される。暗号化部362は、アップデート処理部354から家電機器の状態の測定結果を取得する。暗号化部362は、共通鍵3582で、家電機器の状態の測定結果を暗号化する。さらに、暗号化部362は、家電機器の状態の測定結果と共通鍵3582とからメッセージ認証コードを演算することによって署名を作成する。暗号化部362は、通信部352へ家電機器の状態の測定結果を暗号化した結果と、署名とを出力する。
【0036】
検証部363は、家電機器300のCPU202からの命令によって実現される。検証部363は、通信制御部356から家電管理サーバ200が送信したアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。具体的には、検証部363は、共通鍵3582で、アップデート用ソフトウェアを暗号化した結果を復号し、復号した結果と共通鍵3582とからメッセージ認証コードを演算する。そして、検証部363は、復号した結果と共通鍵3582とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部363は、一致する場合には検証が成功であり、アップデート用ソフトウェアが家電管理サーバ200から送信されたものであると判定する。一方、検証部363は、一致しない場合には検証が失敗であり、アップデート用ソフトウェアが家電管理サーバ200から送信されたものでないと判定する。検証部363は、検証が失敗である場合には、所定のエラー処理を行ってもよい。検証部363は、検証が成功である場合には、アップデート処理部354へ検証が成功したことを通知する。
記憶部358は、家電機器300の不揮発性メモリ206によって実現される。記憶部358は、家電機器300の識別情報、共通鍵3582、及び製造番号3584等を記憶する。
【0037】
<通信システムの動作>
図5は、本実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS502では、端末装置100の取得部154は、家電機器300に添付された情報コードを読み取り、該情報コードに格納されている接続設定情報と家電管理サーバ200の通信アドレスと家電機器300の製造番号とを取得する。
ステップS504では、端末装置100の通信制御部156は、取得部154が取得した接続設定情報を用いて、家電管理サーバ200の通信制御部256との間でセッションを構築する。
ステップS506では、端末装置100の通信制御部156は、家電管理サーバ200の通信制御部256との間でセッションが構築されると、家電管理サーバ200の通信アドレスに基づいて、家電メーカのウェブサイトをリクエストする。そして、端末装置100の通信制御部156は、家電機器300の製造番号を送信し、当該製造番号に対応して表示される利用者情報の入力画面に対してユーザが入力した利用者情報を送信する。家電管理サーバ200の通信制御部256は、通信部252によって端末装置100が送信した家電機器300の利用者情報が受信されると、当該利用者情報を記憶部258へ記憶する。
【0038】
ステップS508では、家電管理サーバ200の鍵生成部254は、家電機器300の製造番号と、記憶部258に記憶されているマスター鍵2582とから共通鍵を生成する。
ステップS510では、家電管理サーバ200の通信制御部256は、家電機器300の通信制御部356との間で、セッションを構築する。
ステップS512では、家電管理サーバ200のソフトウェア提供部261は、記憶部258に記憶されているアップデート用ソフトウェア2584を取得し、暗号化部262に出力する。暗号化部262は、ソフトウェア提供部261から取得したアップデート用ソフトウェア2584を暗号化する。さらに、暗号化部262は、アップデート用ソフトウェア2584と、鍵生成部254が生成した共通鍵とからメッセージ認証コードを演算することによって署名を作成する。暗号化部262は、ソフトウェア提供部261へアップデート用ソフトウェア2584を暗号化した結果と署名とを出力する。ソフトウェア提供部261は、暗号化部262から取得したアップデート用ソフトウェア2584を暗号化した結果と署名とを、通信部252へ出力する。通信部252は、家電機器300へ、ソフトウェア提供部261から出力されたアップデート用ソフトウェア2584を暗号化した結果と署名とを送信する。
【0039】
ステップS514では、家電機器300の通信制御部356は、家電管理サーバ200から受信したアップデート用ソフトウェア2584を暗号化した結果と署名とを検証部363へ出力する。検証部363は、通信制御部356からアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。以降、検証が成功した場合について説明を続ける。検証が失敗した場合には、所定のエラー処理が行われてもよい。
ステップS516では、家電機器300のアップデート処理部354は、セキュアブートを実施する。
ステップS518では、家電機器300のアップデート処理部354は、セキュアブート後の家電機器の状態を測定し、家電機器の状態の測定結果を暗号化部362へ出力する。暗号化部362は、共通鍵3582で、家電機器の状態の測定結果を暗号化する。さらに、暗号化部362は、家電機器の状態の測定結果と該共通鍵3582とからメッセージ認証コードを演算することによって署名を作成する。暗号化部362は、アップデート処理部354へ家電機器の状態の測定結果を暗号化した結果と署名とを出力する。
ステップS520では、家電機器300のアップデート処理部354は、暗号化部362から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、通信部352から家電管理サーバ200へ送信する。
【0040】
ステップS522では、家電管理サーバ200の通信制御部256は、家電機器300から受信した家電機器の状態の測定結果を暗号化した結果と署名とを検証部263へ出力する。検証部263は、通信制御部256から家電管理サーバ200が送信した家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。検証部263は、ソフトウェア提供部261へ、検証が成功したか否かを示す情報を出力する。ソフトウェア提供部261は、検証部263から出力された検証が成功したか否かを示す情報が検証が成功したことを示す場合には、家電機器300よるソフトウェアのアップデートが成功したと判定し、検証が失敗したことを示す場合には家電機器300によるソフトウェアのアップデートが失敗したと判定する。ここで、ソフトウェア提供部261は、通信部252から端末装置100へソフトウェアのアップデートが成功したか否かを示す情報を送信するようにしてもよい。これによって、端末装置100の使用者へ、家電機器300によるソフトウェアのアップデートが成功したか否かを通知できる。
【0041】
図5に示されるシーケンスチャートのステップS506において、端末装置100は、家電管理サーバ200へ、利用者情報と製造番号とに加え、端末装置100の位置情報を送信してもよい。ここで、端末装置100が送信する位置情報は、家電機器300の近傍の位置であるのが好ましい。家電管理サーバ200の通信制御部256は、通信部252によって端末装置100が送信した位置情報が受信されると、当該位置情報を記憶部258へ記憶する。そして、ステップS520において、端末装置100は、家電機器300が送信した家電機器の状態の測定結果を暗号化した結果と署名に、端末装置100の位置情報を付加して送信するようにしてもよい。これによって、家電管理サーバ200は、端末装置100から家電機器の状態の測定結果を暗号化した結果と署名とに付加して送信された端末装置100の位置情報を受信すると、該位置情報と記憶部258に記憶している位置情報とを比較することによって、アップデートのタイミングで、家電機器300の位置が変更されているか否かを判定できる。具体的には、家電機器300の位置が所定の閾値以上移動されていると判定された場合には、引っ越しが行われたと推測できる。さらに、家電管理サーバ200は、家電機器300の位置が所定の閾値以上移動されていると判定した場合に、位置情報を再登録することを促すようにしてもよい。
本実施形態においては、家電管理サーバ200が、アップデート用ソフトウェアを暗号化した結果と署名とを送信する場合について説明したが、これに限られない。例えば、家電管理サーバ200は、署名は作成せず、アップデート用ソフトウェアを暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器300が、家電機器の状態の計測結果を暗号化した結果と署名とを送信する場合について説明したが、これに限られない。例えば、家電機器300は、署名は作成せず、家電機器の状態の計測結果を暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器300にマスター鍵と家電機器300の製造番号とから生成される共通鍵がプリセットされる場合について説明したが、これに限られない。例えば、家電機器300にマスター鍵と家電機器300の製造番号とN(Nは実数)から生成される共通鍵がプリセットされ、家電管理サーバ200に家電機器300にプリセットされる共通鍵を生成する際に使用されたマスター鍵が記憶されてもよい。この場合、Nは、暗号化、署名等の利用したい共通鍵の数に応じて用意される。また、家電機器300にマスター鍵が複数プリセットされてもよい。
本実施形態に係る通信システムによれば、家電機器300と端末装置100と家電管理サーバ200とを共通鍵を用いて、安全に接続することができる。共通鍵を使用することで、家電製品に組み込まれる非力なマイコンでも暗号化や署名付与などの演算が可能になる。また、マスター鍵と製造番号から生成される共通鍵を用いるため、公開鍵基盤(public key infrastructure: PKI)等の煩雑になりがちな鍵管理の機構が不要になる。家電管理サーバ200によって、家電機器300の利用者情報が登録されるため、仮に家電機器のソフトウェアのアップデートが必要になった場合でも、家電管理サーバから家電機器へ直接通知できる。これによって、ソフトウェアのアップデートが必要になった家電機器に対して、早急にアップデートを進めることができる。
【0042】
<第2の実施形態>
<通信システム>
本実施形態に係る通信システムは、
図1を適用できる。ただし、端末装置100の代わりに端末装置400を備える。なお、家電管理サーバ200及び家電機器300は、前述した家電管理サーバ200及び家電機器300を適用できる。前述した第1の実施形態では、端末装置100は、単に通信の土管として使用されていた。そして、家電管理サーバ200のみによってマスター鍵が管理されていた。本実施形態に係る通信システムでは、端末装置400及び家電管理サーバ200の両方がマスター鍵を管理する。
端末装置400には、SIM(Subscriber Identity Module)等のセキュアエレメントが搭載され、当該セキュアエレメントにマスター鍵が安全にセットされる。このマスター鍵は、家電機器300にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じである。このマスター鍵のセットは、通信事業者のサーバと端末装置400の安全な領域(セキュアエレメント)を直接暗号化通信路で繋ぐオーバーザエアー(Over the Air)によって行われる。
端末装置400は、家電機器300に添付された情報コードを読み取ると、該情報コードに格納された接続設定情報、家電メーカの家電管理サーバ200の通信アドレス、家電機器300の製造番号等の情報を取得する。端末装置400は、取得した情報のうち、家電機器300の製造番号とセキュアエレメントに記憶されているマスター鍵と家電機器300の製造番号とから共通鍵を生成する。
【0043】
端末装置400は、前述した端末装置100の機能に加えて、以下の機能を有する。端末装置400は、家電管理サーバ200からアップデート用ソフトウェアを暗号化した結果と署名とを受信する。端末装置400は、生成した共通鍵で、当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コードを演算する。端末装置400は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電管理サーバ200から取得した署名とが一致するか否かを判定することで、アップデート用のソフトウェアの正真性を検証する。端末装置400は、一致する場合には検証が成功であり、アップデート用のソフトウェアが家電管理サーバ200から送信されたものであると判定する。一方、端末装置400は、一致しない場合には検証が失敗であり、アップデート用のソフトウェアから送信されたものでないと判定する。端末装置400は、署名の検証が成功した場合には、当該アップデート用のソフトウェアを暗号化した結果と署名とを記憶する。
【0044】
さらに、端末装置400は、家電機器300から家電機器の状態の測定結果を暗号化した結果と署名とを受信すると、生成した共通鍵で当該結果を復号し、復号した結果と共通鍵とからメッセージ認証コードを演算する。端末装置400は、復号した結果と共通鍵とを演算することによって得られるメッセージ認証コードと家電機器300から取得した署名とが一致するか否かを判定することで、家電機器の状態の測定結果の正真性を検証する。端末装置400は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器300から送信されたものであると判定する。一方、家電機器300は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器300から送信されたものでないと判定する。端末装置400は、署名の検証が成功した場合には、当該アップデート用のソフトウェアを暗号化した結果と署名とを、家電管理サーバ200へ送信する。また、端末装置400は、署名の検証が失敗した場合には、記憶している当該アップデート用のソフトウェアを暗号化した結果と署名とを、家電機器300へ再送する。
本実施形態に係る端末装置400のハードウェア構成は
図2を適用できる。
【0045】
<本実施形態に係る無線通信システムの機能構成>
図6は、本実施形態の通信システム2を構成する端末装置400、家電管理サーバ200、及び家電機器300の機能ブロック図である。なお、家電管理サーバ200、及び家電機器300の機能ブロック図は、前述した第1の実施形態と同じである。
<端末装置の機能構成>
端末装置400は、通信部452、取得部454、通信制御部456、記憶部458、鍵生成部461、検証部463、及び上記各構成要素を
図6に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン460を有している。
<端末装置の各機能構成>
図2及び
図6を用いて、端末装置400の各機能構成について詳細に説明する。なお、以下では、端末装置400の各機能構成を説明するにあたって、
図2に示されている各構成要素のうち、端末装置400の各機能構成を実現させるための主なハードウェアとの関係も説明する。端末装置400の通信部452、取得部454、通信制御部456、及び記憶部458は、前述した端末装置100の通信部152、取得部154、通信制御部156、及び記憶部158を適用できる。ただし、記憶部458は、セキュアエレメントで構成され、マスター鍵4582が記憶される。このマスター鍵4582は、家電機器300にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じである。
【0046】
鍵生成部461は、取得部454が取得した家電機器300の製造番号と、記憶部458に記憶されているマスター鍵4582とから共通鍵を生成する。共通鍵の生成方法については前述したので、その説明を省略する。記憶部458に記憶されているマスター鍵4582は、家電機器300にプリセットされる共通鍵を生成する際に使用されるマスター鍵と同じであるため、鍵生成部461か生成する共通鍵は、家電機器300にプリセットされる共通鍵を同じである。鍵生成部461は、生成した共通鍵を記憶部458に記憶する。
検証部463は、CPU102からの命令によって実現される。検証部463は、通信制御部456から家電管理サーバ200からアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。具体的には、検証部463は、鍵生成部461が生成した共通鍵で、アップデート用ソフトウェアを暗号化した結果を復号し、復号した結果と該共通鍵とからメッセージ認証コードを演算する。検証部463は、復号した結果と該共通鍵とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部463は、一致する場合には検証が成功であり、アップデート用ソフトウェアが家電管理サーバ200から送信されたものであると判定する。一方、検証部463は、一致しない場合には検証が失敗であり、アップデート用ソフトウェアが家電管理サーバ200から送信されたものでないと判定する。検証部463は、検証が成功したか否かを表す情報を通信制御部456へ出力する。通信制御部456は、検証部463から検証が成功したことが通知されると、アップデート用ソフトウェアを暗号化した結果と署名とを記憶部458へ記憶する。
また、検証部463は、通信制御部456から家電機器300が送信した家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。具体的には、検証部463は、鍵生成部461が生成した共通鍵で、家電機器の状態の測定結果を暗号化した結果を復号し、復号した結果と該共通鍵とからメッセージ認証コードを演算する。検証部463は、復号した結果と該共通鍵とを演算することによって得られるメッセージ認証コードと署名とが一致するか否かを判定する。検証部463は、一致する場合には検証が成功であり、家電機器の状態の測定結果が家電機器300から送信されたものであると判定する。一方、検証部463は、一致しない場合には検証が失敗であり、家電機器の状態の測定結果が家電機器300から送信されたものでないと判定する。検証部263は、検証が成功したか否かを表す情報を通信制御部456へ出力する。通信制御部456は、検証部463から検証が成功したことが通知されると、家電機器の状態の測定結果を暗号化した結果と署名とを通信部452から家電管理サーバ200へ送信する。
【0047】
<通信システムの動作>
図7は、本実施形態に係る通信システム2の動作の一例を示すシーケンスチャートである。ステップS702−S708は、
図5に示されるステップS502−S508を適用できる。
ステップS710では、端末装置400の鍵生成部461は、家電機器300の製造番号と、記憶部458に記憶されているマスター鍵4582とから共通鍵を生成する。
ステップS712では、家電管理サーバ200のソフトウェア提供部261は、記憶部258に記憶しているアップデート用ソフトウェア2584を取得し、暗号化部262に出力する。暗号化部262は、ソフトウェア提供部261から取得したアップデート用ソフトウェア2584を暗号化する。さらに、暗号化部262は、アップデート用ソフトウェア2584と鍵生成部254が生成した共通鍵とからメッセージ認証コードを演算することによって署名を作成する。暗号化部262は、ソフトウェア提供部261へアップデート用ソフトウェア2584を暗号化した結果と署名とを出力する。ソフトウェア提供部261は、暗号化部262から取得したアップデート用ソフトウェア2584を暗号化した結果と署名とを、通信部252へ出力する。通信部252は、端末装置400へ、ソフトウェア提供部261から出力されたアップデート用ソフトウェア2584を暗号化した結果と署名とを送信する。
【0048】
ステップS714では、端末装置400の通信制御部456は、家電管理サーバ200から受信したアップデート用ソフトウェア2584を暗号化した結果と署名とを検証部463へ出力する。検証部463は、通信制御部456から家電管理サーバ200が送信したアップデート用ソフトウェアを暗号化した結果と署名とを取得すると、該アップデート用ソフトウェアの正真性を検証する。以降、検証が成功した場合について説明を続ける。検証が失敗した場合には、所定のエラー処理が行われてもよい。
ステップS716では、端末装置400の通信制御部456は、検証部463による検証が成功した場合、アップデート用ソフトウェアを暗号化した結果と署名とを記憶部458へ記憶する。
ステップS718では、端末装置400の通信制御部456は、家電機器300の通信制御部356との間でセッションを構築する。
ステップS720では、端末装置400の通信制御部456は、家電管理サーバ200から受信したアップデート用ソフトウェア2584を暗号化した結果と署名とを、通信部452へ出力する。通信部452は、家電機器300へ、通信制御部456から出力されたアップデート用ソフトウェア2584を暗号化した結果と署名とを送信する。
ステップS722−S726は、
図5のステップS514−S518を適用できる。
ステップS728では、家電機器300のアップデート処理部354は、暗号化部362から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、通信部352から端末装置400へ送信する。
【0049】
ステップS730では、端末装置400の通信制御部456は、家電機器300から受信した家電機器の状態の測定結果を暗号化した結果と署名とを検証部463へ出力する。検証部463は、通信制御部456から家電機器の状態の測定結果を暗号化した結果と署名とを取得すると、該家電機器の状態の測定結果の正真性を検証する。検証部463は、通信制御部456へ、検証が成功したか否かを示す情報を出力する。以降、検証が成功した場合について説明を続ける。認証が失敗した場合には、通信制御部456は、所定のエラー処理を行うようにしてもよく、記憶部458に記憶した家電機器の状態の測定結果を暗号化した結果と署名とを再送してもよい。
ステップS732では、端末装置400の通信制御部456は、家電機器の状態の測定結果を暗号化した結果と署名とを、通信部452から家電管理サーバ200へ送信する。
ステップS734は、
図5のステップS522を適用できる。
本実施形態においては、家電管理サーバ200が、アップデート用ソフトウェアを暗号化した結果と署名とを送信する場合について説明したが、これに限られない。例えば、家電管理サーバ200は、署名は作成せず、アップデート用ソフトウェアを暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器300が、家電機器の状態の測定結果を暗号化した結果と、署名とを送信する場合について説明したが、これに限られない。例えば、家電機器300は、署名は作成せず、家電機器の状態の測定結果を暗号化した結果を送信するようにしてもよい。
また、本実施形態においては、家電機器300にマスター鍵と家電機器300の製造番号とから生成される共通鍵がプリセットされる場合について説明したが、この限りではない。例えば、家電機器300にマスター鍵と家電機器300の製造番号とN(Nは実数)から生成される共通鍵がプリセットされ、家電管理サーバ200及び端末装置400に家電機器300にプリセットされる共通鍵を生成する際に使用されたマスター鍵が記憶されてもよい。この場合、Nは、暗号化、署名等の利用したい共通鍵の数に応じて用意される。また、家電機器300にマスター鍵が複数プリセットされてもよい。
【0050】
本実施形態に係る通信システムによれば、第1の実施形態と同様に、家電機器300と端末装置400と家電管理サーバ200とを共通鍵を用いて、安全に接続することができる。共通鍵を使用することで、家電製品に組み込まれる非力なマイコンでも暗号化や署名付与などの演算が可能になる。また、マスター鍵と製造番号から生成される共通鍵を用いるため、煩雑になりがちな鍵管理の機構が不要になる。家電管理サーバ200からアップデート用ソフトウェアを暗号化した結果と署名とが端末装置400へ送信され、端末装置400は該署名の検証を行い、検証が成功した場合には、該アップデート用ソフトウェアを暗号化した結果と署名とをバッファリングする。これによって、端末装置400と家電管理サーバ200との間がオフライン状態であっても、端末装置400から家電機器300へ、アップデート用ソフトウェアを暗号化した結果と署名とを送信することで、家電機器300のソフトウェアをアップデートできる。
前述した実施形態では、家電機器300に近距離無線デバイスとの間の接続設定情報、家電メーカの家電管理サーバの通信アドレス、及び家電機器300の製造番号等の情報を格納した二次元バーコード(QR(Quick Response)コード)等の情報コードが添付される場合について説明したがこの例に限られない。例えば、NFCタグに家電機器300に近距離無線デバイスとの間の接続設定情報、家電メーカの家電管理サーバの通信アドレス、及び家電機器300の製造番号等の情報を格納し、当該NFCタグを家電機器300に添付するようにしてもよい。
【0051】
以上、本発明の実施形態及びその変形例を説明したが、これらの実施形態及びその変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態及びその変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合せを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述の端末装置、家電管理サーバ、及び家電機器は内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0052】
前述した実施形態において、端末装置100及び端末装置400は通信装置の一例であり、家電管理サーバ200はサーバの一例であり、通信アドレスはサーバの所在を特定する情報の一例であり、家電機器300は装置の一例であり、家電機器の製造番号は装置の識別情報の一例であり、第1のデータはアップデート用ソフトウェアの一例である。