(57)【要約】【課題】ＩｏＴ機器の機器メーカが，ＩｏＴ機器に実装されたソフトウェアをＰＵＳＨ型，かつ，セキュアに更新できるシステムを提供する。【解決手段】ソフトウェア更新システム１のセッション管理装置３は，更新ファイル７の対象となるＩｏＴ機器２とＰ２Ｐ接続し，Ｐ２Ｐ接続したＩｏＴ機器２に対して更新ファイルの暗号データ７ａを送信する。ソフトウェア更新システム１のＩｏＴ機器２には，通常ＯＳ２１とセキュアＯＳ２２が分離して動作するハイパーバイザ２０が実装され，通常ＯＳ２１上で動作するアプリケーションがセッション管理装置３から受信した更新ファイルの暗号データ７ａを，セキュアＯＳ２２上で動作するアプリケーションが復号し，復号して得られた更新ファイル７を用いてＩｏＴ機器２のソフトウェアが更新される。【選択図】図１
2018041224.tif 000002
【特許請求の範囲】
【請求項１】
通信路に接続するＩｏＴ機器と，前記ＩｏＴ機器に実装されたソフトウェアの更新ファイルを配信するデータセンタ装置を含み，
前記データセンタ装置は，更新ファイルの配信対象となる前記ＩｏＴ機器にＰ２Ｐ接続要求を通知してこの前記ＩｏＴ機器とＰ２Ｐ接続する処理を実行するＶＰＮクライアント部と，前記ＶＰＮクライアント部がＰ２Ｐ接続した前記ＩｏＴ機器に対し，所定の暗号鍵で暗号化した更新ファイルの暗号データを送信する処理を実行する更新ファイル配信部を備え，
前記ＩｏＴ機器は，通信路を利用した処理を実行するためＯＳである通常ＯＳと，セキュアな処理を実行するためのＯＳであるセキュアＯＳが分離動作し，前記通常ＯＳのみがアクセス可能な通常領域と，前記セキュアＯＳがアクセス可能なセキュア領域と，前記セキュアＯＳと通常ＯＳそれぞれがアクセス可能な共有領域をメモリに設けるように構成されたハイパーバイザを備え，前記通常ＯＳ上で動作するアプリケーションとして，前記データセンタ装置とＰ２Ｐ接続する処理を実行するＶＰＮクライアントと，前記ＶＰＮクライアントがＰ２Ｐ接続している前記データセンタ装置から受信した更新ファイルの暗号データを前記共有領域に移動させる処理を実行する更新クライアントを実装し，前記セキュアＯＳ上で動作するアプリケーションとして，前記共有領域に格納された更新ファイルの暗号データを前記セキュア領域に移動させた後，前記セキュア領域内において更新ファイルの暗号データを復号し，前記セキュア領域で復号した更新ファイルを用いて，更新ファイルの対象となるソフトウェアを更新する処理を実行する更新制御アプリケーションを実装している，
ことを特徴とするソフトウェア更新システム。
【請求項２】
前記データセンタ装置の前記更新ファイル配信部は，Ｐ２Ｐ接続する前記ＩｏＴ機器のＵＩＤを利用して生成した共通暗号鍵方式の共通暗号鍵を用いて更新ファイルを暗号化し，前記ＩｏＴ機器の前記更新制御アプリケーションは，自機のＵＩＤを利用して生成した共通暗号鍵方式の共通暗号鍵を用いて更新ファイルの暗号データを復号することを特徴とする，請求項１に記載したソフトウェア更新システム。
【請求項３】
前記ＩｏＴ機器の前記更新制御アプリケーションは，更新ファイルの対象となるソフトウェアが，前記セキュアＯＳに係るソフトウェアのであるか，前記通常ＯＳに係るソフトウェアであるか否かに係わらず，前記セキュア領域内で復号した更新ファイルを用いて，更新ファイルの対象となるソフトウェアを更新する処理を実行することを特徴とする，請求項１または２に記載したソフトウェア更新システム。
【請求項４】
前記ＩｏＴ機器の前記更新制御アプリケーションは，更新ファイルの対象となるソフトウェアが，前記セキュアＯＳに係るソフトウェアの場合，前記セキュア領域内で復号した更新ファイルを用いて，更新ファイルの対象となる前記セキュアＯＳに係るソフトウェアを更新し，更新ファイルの対象となるソフトウェアが前記通常ＯＳに係るソフトウェアの場合，ソフトウェアの更新に係る処理として，前記セキュア領域で復号した更新ファイルを前記共有領域に移動させてから，ソフトウェアの更新を前記更新クライアントに通知し，前記共有領域内になる更新ファイルを用いて，更新ファイルの対象となる前記通常ＯＳに係るソフトウェアを更新する処理を前記更新クライアントに実行させることを特徴とする，請求項１または請求項２に記載したソフトウェア更新システム。
【請求項５】
前記ＩｏＴ機器の仮想ＩＰアドレスおよび前記データセンタ装置の仮想ＩＰアドレスを管理しているセッション管理装置を通信路上に含み，
前記セッション管理装置は，前記ＩｏＴ機器と前記データセンタ装置それぞれと，仮想ＩＰアドレスを利用したシグナル交換を実施することにより，Ｐ２Ｐ接続に必要なＰ２Ｐ接続情報を前記ＩｏＴ機器と前記データセンタ装置それぞれから取得した後，接続先のＰ２Ｐ接続情報を前記ＩｏＴ機器と前記データセンタ装置それぞれに通知することで，ＶＰＮを利用して前記ＩｏＴ機器と前記データセンタ装置をＰ２Ｐ接続させる処理を実行する，
ことを特徴とする，請求項１から４のいずれか一項に記載したソフトウェア更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＩｏＴ（Internet of Things）の技術分野に係る発明で，更に詳しくは，ＩｏＴに用いる機器に実装されたソフトウェアを更新する技術に関する。
【背景技術】
【０００２】
スマートメータや監視カメラなどの機器をインターネットに接続するＩｏＴ（Internet Of Things）が普及しているが，ＩｏＴに用いる機器（以下，「ＩｏＴ機器」）をインターネットに接続することにより発生する脅威が問題になっている。例えば，ＩｏＴ機器に実装されたソフトウェアに脆弱性が有ると，インターネットを経由してＩｏＴ機器が不正に遠隔操作される危険性がある。
【０００３】
このため，ソフトウェアに脆弱性が見つかったＩｏＴ機器に対して，脆弱性を解消する対策を施した更新ファイルを配布し，ＩｏＴ機器に実装されたソフトウェアを更新できることがＩｏＴ機器のセキュリティ要件の一つして要求されている。この要求を解決するためには，ＩｏＴ機器に実装されたソフトウェアを自動で更新できる仕組みが必要になる。
【０００４】
ＩｏＴ機器に実装されたソフトウェアの更新に係る発明として，例えば，特許文献１において，ホームネットワーク以外のネットワークに接続しているゲートウェイ装置と，ゲートウェイ装置にホームネットワークを介して接続された少なくとも１つの被制御機器とから少なくとも構成され，被制御機器のソフトウェアを効率的に更新するホームネットワークシステムが開示されている。
【０００５】
特許文献１に係る被制御機器は，被制御機器のソフトウェアを更新するソフトウェア更新処理部を備え，特許文献１に係るゲートウェイ装置は，インターネット上に設置されたサーバから，被制御機器に実装されたソフトウェアの更新に用いるソフトウェアコンポーネントおよびインストール手順を記述したファイルを取得し，被制御機器のソフトウェア更新処理部は，このファイルに記述されたインストール手順に従って，ソフトウェアコンポーネントを被制御機器にインストールする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２４４１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら，特許文献１で開示された発明では，ＩｏＴ機器のメーカは，自社のＩｏＴ機器に実装されたソフトウェアをＰＵＳＨ型で更新できないし，また，ＩｏＴ機器に実装されたソフトウェアをセキュアに更新できない。実際，ＩｏＴとはモノのインターネットであるにも係らず，特許文献１で開示された発明では，ＩｏＴ機器に実装されたソフトウェアの更新はユーザの操作から開始されるし，また，ホームネットワーク以外のネットワーク（インターネット）から不正アクセス可能なゲートウェイ装置内でデータの改ざん処理が実行されてしまう危険性がある。
【０００８】
そこで，本発明は，ＩｏＴ機器の機器メーカが，自社のＩｏＴ機器に実装されたソフトウェアをＰＵＳＨ型で更新でき，更に，ＩｏＴ機器に実装されたソフトウェアをセキュアな状態で更新できるシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決する第１の発明は，インターネットに接続するＩｏＴ機器と，前記ＩｏＴ機器に実装されたソフトウェアの更新ファイルを配信するデータセンタ装置を含むソフトウェア更新システムである。
第１の発明に係る前記データセンタ装置は，更新ファイルの配信対象となる前記ＩｏＴ機器にＰ２Ｐ接続要求を通知してこの前記ＩｏＴ機器とＰ２Ｐ接続する処理を実行するＶＰＮクライアント部と，前記ＶＰＮクライアント部がＰ２Ｐ接続した前記ＩｏＴ機器に対し，所定手続きで決定した暗号鍵で暗号化した更新ファイルの暗号データを送信する処理を実行する更新ファイル配信部を備える。
第１の発明に係る前記ＩｏＴ機器は，通信路を利用した処理を実行するためＯＳである通常ＯＳと，セキュアな処理を実行するためのＯＳであるセキュアＯＳが分離動作し，前記通常ＯＳのみがアクセス可能な通常領域と，前記セキュアＯＳがアクセス可能なセキュア領域と，前記セキュアＯＳと通常ＯＳそれぞれがアクセス可能な共有領域をメモリに設けるように設計されたハイパーバイザを備え，前記通常ＯＳ上で動作するアプリケーションとして，前記データセンタ装置とＰ２Ｐ接続する処理を実行するＶＰＮクライアントと，前記ＶＰＮクライアントがＰ２Ｐ接続している前記データセンタ装置から受信した更新ファイルの暗号データを前記共有領域に移動させる処理を実行する更新クライアントを実装し，前記セキュアＯＳ上で動作するアプリケーションとして，前記共有領域に格納された更新ファイルの暗号データを前記セキュア領域に移動させた後，前記セキュア領域内において更新ファイルの暗号データを復号し，前記セキュア領域で復号した更新ファイルを用いて，更新ファイルの対象となるソフトウェアを更新する処理を実行する更新制御アプリケーションを実装している，
【００１０】
更に，第２の発明は，第１の発明に記載したソフトウェア更新システムにおいて，前記データセンタ装置の前記更新ファイル配信部は，Ｐ２Ｐ接続する前記ＩｏＴ機器のＵＩＤを利用して生成した共通暗号鍵方式の共通暗号鍵を用いて更新ファイルを暗号化し，前記ＩｏＴ機器の前記更新制御アプリケーションは，自機のＵＩＤを利用して生成した共通暗号鍵方式の共通暗号鍵を用いて更新ファイルの暗号文を復号することを特徴とする。
【００１１】
更に，第３の発明は，第１の発明または第２の発明に記載したソフトウェア更新システムにおいて，前記ＩｏＴ機器の前記更新制御アプリケーションは，更新ファイルの対象となるソフトウェアが前記セキュアＯＳに係るソフトウェアであるか，前記通常ＯＳに係るソフトウェアであるか否かに係わらず，ソフトウェアの更新に係る処理として，記セキュア領域内で復号した更新ファイルを用いて，更新ファイルの対象となるソフトウェアを更新する処理を実行することを特徴とする。
【００１２】
更に，第４の発明は，第１の発明または第２の発明に記載したソフトウェア更新システムにおいて，前記ＩｏＴ機器の前記更新制御アプリケーションは，更新ファイルの対象となるソフトウェアが，前記セキュアＯＳに係るソフトウェアの場合，前記セキュア領域内で復号した更新ファイルを用いて，更新ファイルの対象となる前記セキュアＯＳに係るソフトウェアを更新し，更新ファイルの対象となるソフトウェアが前記通常ＯＳに係るソフトウェアの場合，ソフトウェアの更新に係る処理として，前記セキュア領域で復号した更新ファイルを前記共有領域に移動させてから，ソフトウェアの更新を前記更新クライアントに通知し，前記共有領域内になる更新ファイルを用いて，更新ファイルの対象となる前記通常ＯＳに係るソフトウェアを更新する処理を前記更新クライアントに実行させることを特徴とする。
【００１３】
更に，第５の発明は，第１の発明から第４の発明のいずれか一つに記載したソフトウェア更新システムにおいて，前記ＩｏＴ機器の仮想ＩＰアドレスおよび前記データセンタ装置の仮想ＩＰアドレスを管理しているセッション管理装置を通信路上に含み，前記セッション管理装置は，前記ＩｏＴ機器と前記データセンタ装置それぞれと，仮想ＩＰアドレスを利用したシグナル交換を実施することにより，Ｐ２Ｐ接続に必要なＰ２Ｐ接続情報を前記ＩｏＴ機器と前記データセンタ装置それぞれから取得した後，接続先のＰ２Ｐ接続情報を前記ＩｏＴ機器と前記データセンタ装置それぞれに通知することで，ＶＰＮを利用して前記ＩｏＴ機器と前記データセンタ装置をＰ２Ｐ接続させる処理を実行することを特徴とする。
【発明の効果】
【００１４】
上述した本発明によれば，ＩｏＴ機器の機器メーカが，自社のＩｏＴ機器に実装されたソフトウェアをＰＵＳＨ型で更新でき，更に，ＩｏＴ機器に実装されたソフトウェアをセキュアな状態で更新できるシステムを提供できる。
【図面の簡単な説明】
【００１５】
【図１】ソフトウェア更新システムの構成を示した図。
【図２】セッション管理装置が備える機能を説明する図。
【図３】データセンタ装置が備える機能を説明する図。
【図４】ＩｏＴ機器が備える機能を説明する図。
【図５】ソフトウェア更新システムの基本的な動作を説明する図。
【図６】ＵＩＤから共通暗号鍵を生成する時のソフトウェア更新システムの動作を説明する図。
【図７】更新クライアントが更新ファイルを用いたＩｏＴ機器のソフトウェアの更新を行うときの動作を説明する図。
【発明を実施するための形態】
【００１６】
ここから，本発明の好適な実施形態を記載する。なお，以下の記載は本発明の技術的範囲を束縛するものでなく，理解を助けるために記述するものである。
【００１７】
図１では，本実施形態に係るソフトウェア更新システム１の構成を示している。本実施形態に係るソフトウェア更新システム１は，ＩｏＴ機器２のメーカが，自社のＩｏＴ機器２に実装したソフトウェアを自主的に更新でき，更に，ＩｏＴ機器２に実装されたソフトウェアをセキュアに更新できるように発案されたシステムで，ＩｏＴ機器２，セッション管理装置３およびデータセンタ装置４とから構成され，図１では，これらに加え，ＩｏＴ機器２から収集したデータを利用するサービスを提供するサービスサーバ装置５を図示している。なお，ＩｏＴ機器２に実装されたソフトウェアとは，ＩｏＴ機器２に実装されているファームウェア，ＩｏＴ機器２に実装されているオペレーティングシステム（OS: Operating System），ＩｏＴ機器２に実装されているＯＳ上で動作するアプリケーションを意味する。
【００１８】
図１では，ＩｏＴ機器２として，ゲートウェイ装置２ａ，監視カメラ２ｄ，テレビジョン２ｃおよびスマートメータ２ｂを図示している。ＩｏＴ機器２それぞれはホームネットワーク６ｂに接続し，ＩｏＴ機器２の一つであるゲートウェイ装置２ａ，セッション管理装置３およびデータセンタ装置４は通信路６に接続し，ゲートウェイ装置２ａ以外のＩｏＴ機器２はゲートウェイ装置２ａを介して通信路６に接続している。なお，通信路６とはインターネットやＬＡＮなどの様々なネットワークを含む概念である。
【００１９】
まず，本実施形態に係るソフトウェア更新システム１を構成するセッション管理装置３について説明する。図２は，本実施形態に係るセッション管理装置３が備える機能を説明する図である。
【００２０】
セッション管理装置３は，ＣＰＵ，ＲＡＭ，ＲＯＭ，ネットワークインターフェースなどのハードウェア資源を備えたネットワーク対応サーバを利用して実現される装置である。本実施形態に係るセッション管理装置３は，ＶＰＮ（Virtual Private Network）接続するときに用いるＩＰアドレスとなる仮想ＩＰアドレス（Virtual IP Address）として，セッション管理装置３の利用が許可されているデータセンタ装置４の仮想ＩＰアドレスを記憶し，更に，サービスサーバ装置５が利用するＩｏＴ機器２など，セッション管理装置３の利用が許可されているＩｏＴ機器２の仮想ＩＰアドレスを記憶したアドレステーブル３１を備える。本実施形態に係るアドレステーブル３１には，セッション管理装置３に登録されたＩｏＴ機器２ごとに，ＩｏＴ機器２が記憶しているＵＩＤ（Unique IDentifier）に関連付けて，ＩｏＴ機器２の型番と，ＩｏＴ機器２のＩＰアドレスが少なくとも記憶されている。
【００２１】
更に，本実施形態に係るセッション管理装置３は，データセンタ装置４とＩｏＴ機器２それぞれと，仮想ＩＰアドレスを利用したシグナル交換することで，実ＩＰアドレス（Global IP Address）を含むＰ２Ｐ接続情報をデータセンタ装置４とＩｏＴ機器２それぞれから取得した後，接続先のＰ２Ｐ接続情報をデータセンタ装置４とＩｏＴ機器２に通知し，ＶＰＮを利用してデータセンタ装置４とＩｏＴ機器２をＰ２Ｐ接続させるセッション管理部３０を備える。
【００２２】
セッション管理装置３のセッション管理部３０は，セッション管理装置３の利用が許可されているデータセンタ装置４の仮想ＩＰアドレスを記憶し，ＩｏＴ機器２のソフトウェアを更新する際，データセンタ装置４からＶＰＮ接続要求を受けると，ＶＰＮ接続要求したデータセンタ装置４を認証し，認証に成功すると，データセンタ装置４の仮想ＩＰアドレスを用いて，ＶＰＮ接続要求を送信したデータセンタ装置４とＶＰＮ接続する。なお，データセンタ装置４を認証する手法としては，認証機関が発行した電子証明書を利用することができる。
【００２３】
データセンタ装置４とＶＰＮ接続すると，セッション管理装置３のセッション管理部３０には，ＶＰＮ接続したデータセンタ装置４のＰ２Ｐ接続情報（実ＩＰアドレスとポート番号）と，更新ファイル７の対象となるＩｏＴ機器２を少なくとも示す接続先通知接続要求がデータセンタ装置４から通知される。本実施形態では，更新ファイル７の対象となるＩｏＴ機器２を示すデータとして，更新ファイル７の対象となるＩｏＴ機器２の型番が接続先通知要求に含まれている。
【００２４】
セッション管理装置３のセッション管理部３０は，接続先通知要求に対応するＩｏＴ機器２の仮想ＩＰアドレスをアドレステーブル３１から検索し，アドレステーブル３１から検索した仮想ＩＰアドレスを用いて，接続先通知要求に対応するＩｏＴ機器２を認証する。なお，ＩｏＴ機器２を認証する手法としては，認証機関が発行した電子証明書を利用することができる。
【００２５】
セッション管理装置３のセッション管理部３０は，接続先通知要求に対応するＩｏＴ機器２の認証に成功すると，このＩｏＴ機器２にＶＰＮ接続要求を通知し，アドレステーブル３１から検索した仮想ＩＰアドレスを用いて，ＩｏＴ機器２とＶＰＮ接続する。ＩｏＴ機器２とＶＰＮ接続すると，セッション管理装置３のセッション管理部３０は，接続先通知要求したデータセンタ装置４のＰ２Ｐ接続情報と，データセンタ装置４から接続先通知要求を受けたことをＩｏＴ機器２に通知し，ＶＰＮ接続したＩｏＴ機器２からＩｏＴ機器２のＰ２Ｐ接続情報を取得する。
【００２６】
セッション管理装置３のセッション管理部３０は，ＶＰＮ接続したＩｏＴ機器２から取得したＩｏＴ機器２のＰ２Ｐ接続情報とこのＩｏＴ機器２の仮想ＩＰアドレスを，ＶＰＮ接続しているデータセンタ装置４へ通知し，ＶＰＮを利用してデータセンタ装置４とＩｏＴ機器２をＰ２Ｐ接続させる。
【００２７】
次に，本実施形態に係るソフトウェア更新システム１を構成するデータセンタ装置４について説明する。図３は，本実施形態に係るデータセンタ装置４が備える機能を説明する図である。
【００２８】
データセンタ装置４は，ＣＰＵ，ＲＡＭ，ＲＯＭ，ネットワークインターフェース，大容量のストレージなどのハードウェア資源を備えたネットワーク対応サーバを利用して実現される装置である。データセンタ装置４は，ＶＰＮを利用してＩｏＴ機器２とＰ２Ｐ接続するための機能として，ＶＰＮを利用したＰ２Ｐ接続に係る処理を実行するＶＰＮクライアント部４０と，ＶＰＮを利用してＰ２Ｐ接続したＩｏＴ機器２へ更新ファイル７を配信する処理を実行する更新ファイル配信部４１を備える。更に，データセンタ装置４は，大容量のストレージを利用して実現される機能として，様々なＩｏＴ機器２の更新ファイル７を記憶するデータベース４２を備える。
【００２９】
データセンタ装置４のＶＰＮクライアント部４０は，ＶＰＮを利用してＩｏＴ機器２とＰ２Ｐ接続する処理を実行するソフトウェアを利用して実現される機能である。データセンタ装置４のＶＰＮクライアント部４０は，新たな更新ファイル７がデータベース４２に登録されるなどすると，セッション管理装置３に対してＶＰＮ接続要求を通知し，セッション管理装置３とＶＰＮ接続する。
【００３０】
セッション管理装置３とＶＰＮ接続すると，データセンタ装置４のＶＰＮクライアント部４０は，データセンタ装置４のＰ２Ｐ接続情報と，更新ファイル７の配信対象となるＩｏＴ機器２を示す接続先通知要求をセッション管理装置３に通知する。更新ファイル７の配信対象となるＩｏＴ機器２を示す接続先通知要求は，データセンタ装置４のＶＰＮクライアント部４０が生成することも可能であるが，セッション管理装置３とＶＰＮ接続すると，データセンタ装置４の更新ファイル配信部４１が接続先通知要求を生成するように構成することが望ましい。また，データベース４２に登録された更新ファイル７の対象となるＩｏＴ機器２を示すデータとして，更新ファイル７の対象となるＩｏＴ機器２の型番を接続先通知要求に含ませることができる。
【００３１】
接続先通知要求などをセッション管理装置３へ通知した後，接続先通知要求に対応するＩｏＴ機器２のＰ２Ｐ接続情報がセッション管理装置３から通知されると，データセンタ装置４のＶＰＮクライアント部４０は，セッション管理装置３から通知されたＰ２Ｐ接続情報を用いてＩｏＴ機器２にＰ２Ｐ接続要求を通知し，ＶＰＮを利用したＰ２Ｐ接続に係る処理がデータセンタ装置４とＩｏＴ機器２で実行されることで，データセンタ装置４とＩｏＴ機器２間に仮想的な通信経路であるＶＰＮトンネル６ａが確立される。
【００３２】
本実施形態において，データセンタ装置４の更新ファイル配信部４１は，データベース４２を監視し，新たな更新ファイル７がデータベース４２に登録されると，セッション管理装置３とのＶＰＮ接続をＶＰＮクライアント部４０に依頼する。また，セッション管理装置３とのＶＰＮ接続が完了すると，データセンタ装置４の更新ファイル配信部４１は，更新ファイル７の配信対象となるＩｏＴ機器２を示す接続先通知要求を生成し，データセンタ装置４のＰ２Ｐ接続情報と接続先通知要求の送信をＶＰＮクライアント部４０に依頼し，データセンタ装置４とＩｏＴ機器２間にＶＰＮトンネル６ａが確立する。
【００３３】
データセンタ装置４とＩｏＴ機器２間にＶＰＮトンネル６ａが確立すると，データセンタ装置４の更新ファイル配信部４１は，ＶＰＮを利用してＰ２Ｐ接続したＩｏＴ機器２が復号可能な形態で，ＩｏＴ機器２に送信する更新ファイル７を暗号化し，ＶＰＮを利用してＰ２Ｐ接続したＩｏＴ機器２へ更新ファイルの暗号データ７ａを送信する処理を行う。更新ファイル７の暗号化には公開鍵暗号方式を利用できる。この場合，データセンタ装置４の更新ファイル配信部４１は，ＶＰＮを利用してＰ２Ｐ接続したＩｏＴ機器２の公開鍵を用いて更新ファイル７を暗号化できる。また，更新ファイル７の暗号化には共通鍵暗号方式を利用できる。この場合，データセンタ装置４の更新ファイル配信部４１は，ＶＰＮを利用してＰ２Ｐ接続したＩｏＴ機器２のＵＩＤを利用して共通暗号鍵を生成し，ＵＩＤから生成した共通暗号鍵を用いて更新ファイル７を暗号化する。
【００３４】
データセンタ装置４の更新ファイル配信部４１が更新ファイル７を暗号化することで，データセンタ装置４とＩｏＴ機器２の通信経路から更新ファイル７が漏えいしても，更新ファイル７が悪用されることはない。また，ＶＰＮを利用してデータセンタ装置４とＩｏＴ機器２がＰ２Ｐ接続することで，データセンタ装置４とＩｏＴ機器２の通信路６からの更新ファイル７の漏えいを防ぐことができる。
【００３５】
次に，本実施形態に係るソフトウェア更新システム１を構成するＩｏＴ機器２について説明する。図４は，本実施形態に係るＩｏＴ機器２が備える機能を説明する図である。
【００３６】
ＩｏＴ機器２は，プロセッサ２３に加え，ＩｏＴ機器２で必要となるハードウェア資源２３０を備え，ＩｏＴ機器２のハードウェア資源２３０には，ブートメモリ２３１およびメモリ２３２が少なくとも含まれる。ブートメモリ２３１とは，ＩｏＴ機器２のソフトウェアを格納しているＮＶＭ（Non-Volatile Memory）である。また，メモリ２３２には，ＮＶＭに加えて，プロセッサ２３が利用する主記憶装置となるＲＡＭ（Random Access Memory）が含まれる。ＩｏＴ機器２のブートメモリ２３１に格納されたソフトウェアは，ＩｏＴ機器２がブートする際に読み出されてメモリ２３２（ＲＡＭ等）上に展開される。
【００３７】
ＩｏＴ機器２には，上述したハードウェア以外に，ＩｏＴ機器２に必要なハードウェアが実装される。例えば，ＩｏＴ機器２をゲートウェイ装置２ａとする場合，ゲートウェイ装置２ａは，上述したハードウェア以外に，通信路６に接続するためのポートであるＷＡＮポートや，ホームネットワーク６ｂに接続するためのポートであるＬＡＮポートなどを備えることになる。
【００３８】
本実施形態にＩｏＴ機器２は，ＩｏＴ機器２が備えるハードウェア資源２３０を仮想化し，通信路６を利用した処理を実行するためのオペレーティングシステム（OS: Operating System）である通常ＯＳ２１と，セキュアな処理を実行するためのＯＳであるセキュアＯＳ２２それぞれが分離動作するように構成されたソフトウェアであるハイパーバイザ２０を備える。ハイパーバイザ２０には，ホストＯＳ上で動作するホストＯＳ型もあるが，ＩｏＴ機器２のリソースは乏しいことが多いため，本実施形態では，ハードウェア資源２３０上で直接動作するベアメタル型を採用している。
【００３９】
本実施形態に係るハイパーバイザ２０は，メモリ２３２を３つの領域に仮想的に分割して管理する。一つ目の領域は，通常ＯＳ２１（通常ＯＳ上で動作するアプリケーションも含む）からのみアクセス可能な通常領域となる通常メモリ領域２３２ａと，セキュアＯＳ２２（セキュアＯＳ上で動作するアプリケーションも含む）からのみアクセス可能なセキュア領域となるセキュアメモリ領域２３２ｂに加え，通常ＯＳ２１とセキュアＯＳ２２の双方からアクセス可能な共有領域となる共有メモリ領域２３２ｃに分割して管理する。更に，本実施形態に係るハイパーバイザ２０は，セキュアＯＳ２２と通常ＯＳ２１間のＯＳ間通信をサポートする。
【００４０】
ハイパーバイザ２０上で動作するＯＳ上には，ＯＳ上で動作するアプリケーションが実装され，本実施形態において，通常ＯＳ２１上には，ＩｏＴ機器アプリケーション２１０，ＶＰＮクライアント２１１および更新クライアント２１２が実装され，セキュアＯＳ２２上には，更新制御アプリケーション２２０が実装されている。
【００４１】
通常ＯＳ２１上で動作するＩｏＴ機器アプリケーション２１０は，ＩｏＴ機器２の機能を実現するためのアプリケーションで，ＩｏＴ機器アプリケーション２１０が実行する処理内容はＩｏＴ機器２の種類で異なる。例えば，ＩｏＴ機器２がゲートウェイ装置２ａの場合，ＩｏＴ機器アプリケーション２１０は，ネットワーク間（ここでは，ホームネットワーク６ｂと通信路６間になる）の通信を中継するゲートウェイに係る処理を実行するソフトウェアになる。
【００４２】
通常ＯＳ２１上で動作するＶＰＮクライアント２１１は，データセンタ装置４とＰ２Ｐ−ＶＰＮ接続する処理を実行するアプリケーションである。ＶＰＮクライアント２１１は，セッション管理装置３からＶＰＮ接続要求を受けると，セッション管理装置３とＶＰＮ接続し，接続先通知要求したデータセンタ装置４のＰ２Ｐ接続情報と，データセンタ装置４から接続先通知要求を受けたことがセッション管理装置３から通知されると，セッション管理装置３へＩｏＴ機器２のＰ２Ｐ接続情報を通知する。そして，Ｐ２Ｐ−ＶＰＮ接続要求がデータセンタ装置４から通知されると，データセンタ装置４のＰ２Ｐ接続情報を用い，ＶＰＮを利用してデータセンタ装置４にＰ２Ｐ接続する処理を実行するし，データセンタ装置４とＩｏＴ機器２間に仮想的な通信経路であるＶＰＮトンネル６ａが確立される。
【００４３】
通常ＯＳ２１上で動作する更新クライアント２１２は，ＩｏＴ機器２の窓口になるソフトウェアである。本実施形態に係る更新クライアント２１２は，ＶＰＮクライアント２１１を利用してデータセンタ装置４とデータ通信し，データセンタ装置４から受信した更新ファイルの暗号データ７ａを共有メモリ領域２３２ｃへ格納した後，ＯＳ間通信を利用して，更新ファイルの暗号データ７ａを受信したことをセキュアＯＳ２２側へ通知する処理を実行する。
【００４４】
セキュアＯＳ２２上で動作する更新制御アプリケーション２２０は，更新クライアント２１２がデータセンタ装置４から受信した更新ファイルの暗号データ７ａを復号し，復号した更新ファイル７を用いてソフトウェアの更新に係る処理をセキュア領域内で行うソフトウェアである。データセンタ装置４がＩｏＴ機器２の公開鍵を用いて更新ファイル７を暗号化する場合，更新制御アプリケーション２２０は，ＩｏＴ機器２の秘密鍵を用いて更新ファイルの暗号データ７ａを復号する。また，データセンタ装置４が，ＩｏＴ機器２のＵＩＤから生成した共通暗号鍵を用いて更新ファイル７を暗号化する場合，更新制御アプリケーション２２０は，データセンタ装置４と同じで手順で自機のＵＩＤから共通暗号鍵を生成し，自機のＵＩＤに基づく共通暗号鍵を用いて更新ファイルの暗号データ７ａを復号する。
【００４５】
ここから，本実施形態に係るソフトウェア更新システム１の基本的な動作について説明する。図５は，本実施形態に係るソフトウェア更新システム１の基本的な動作を説明する図である。
【００４６】
データセンタ装置４のＶＰＮクライアント部４０は，ＩｏＴ機器２の機器メーカが新たな更新ファイル７をデータベース４２に登録されるなどすると，ＶＰＮ接続要求をセッション管理装置３へ通知し，セッション管理装置３のセッション管理部３０は，ＶＰＮ接続要求したデータセンタ装置４を認証した後，ＶＰＮ接続要求を送信したデータセンタ装置４とＶＰＮ接続する（Ｓ１）。なお，データセンタ装置４とのＶＰＮ接続には，データセンタ装置４の仮想ＩＰアドレスが利用される。
【００４７】
データセンタ装置４とＶＰＮ接続すると，データセンタ装置４のＶＰＮクライアント部４０は，ＶＰＮ接続したデータセンタ装置４のＰ２Ｐ接続情報と，更新ファイル７の対象となるＩｏＴ機器２を少なくとも示す接続先通知要求をセッション管理装置３に通知する（Ｓ２）。なお，接続先通知要求には，更新ファイル７の対象となるＩｏＴ機器２の型番が含まれている。
【００４８】
セッション管理装置３のセッション管理部３０は，データセンタ装置４から接続先通知要求が通知されると，接続先通知要求に対応するＩｏＴ機器２の仮想ＩＰアドレスをアドレステーブル３１から検索し，アドレステーブル３１から検索した仮想ＩＰアドレスを用いて，接続先通知要求に対応するＩｏＴ機器２を認証した後，このＩｏＴ機器２とＶＰＮ接続する（Ｓ３）。
【００４９】
セッション管理装置３のセッション管理部３０は，ＩｏＴ機器２とＶＰＮ接続すると，接続先通知要求したデータセンタ装置４のＰ２Ｐ接続情報と，データセンタ装置４から接続先通知要求を受けたことをＩｏＴ機器２に通知し，ＩｏＴ機器２の実ＩＰアドレスをセッション管理装置３へ送信する（Ｓ４）。
【００５０】
セッション管理装置３のセッション管理部３０は，ＶＰＮ接続したＩｏＴ機器２から取得したＰ２Ｐ接続情報とこのＩｏＴ機器２の仮想ＩＰアドレスを，ＶＰＮ接続しているデータセンタ装置４へ通知する（Ｓ５）。
【００５１】
データセンタ装置４のＶＰＮクライアント部４０は，ＩｏＴ機器２の仮想ＩＰアドレスとＰ２Ｐ接続情報を利用してＩｏＴ機器２にＰ２Ｐ接続要求し，データセンタ装置４とＩｏＴ機器２間にＶＰＮトンネル６ａが確立する（Ｓ６）。
【００５２】
ＶＰＮを利用してデータセンタ装置４とＩｏＴ機器２がＰ２Ｐ接続すると，データセンタ装置４の更新ファイル配信部４１は，ＶＰＮを用いてＰ２Ｐ接続したＩｏＴ機器２が復号可能な形態で，ＩｏＴ機器２に送信する更新ファイル７を暗号化する（Ｓ７）。
【００５３】
次に，データセンタ装置４の更新ファイル配信部４１は，ＶＰＮを用いてＰ２Ｐ接続したＩｏＴ機器２へ更新ファイルの暗号データ７ａを送信し，ＩｏＴ機器２の更新クライアント２１２は，データセンタ装置４から受信した更新ファイルの暗号データ７ａを通常メモリ領域２３２ａに格納する（Ｓ８）。
【００５４】
更新クライアント２１２は，通常メモリ領域２３２ａに格納した更新ファイルの暗号データ７ａを共有メモリ領域２３２ｃへ移動させた後，ハイパーバイザ２０が備えるＯＳ間通信機能を利用して，更新ファイルの暗号データ７ａを共有メモリ領域２３２ｃに格納したことを更新制御アプリケーション２２０へ通知する（Ｓ９）。
【００５５】
セキュアＯＳ２２上で動作する更新制御アプリケーション２２０は，通信路６から隔離した状態で更新ファイルの暗号データ７ａを復号できるように，共有メモリ領域２３２ｃに格納された更新ファイルの暗号データ７ａをセキュアメモリ領域２３２ｂに移動させる（Ｓ１０）。
【００５６】
セキュアＯＳ２２上で動作する更新制御アプリケーション２２０は，セキュアメモリ領域２３２ｂに移動させた更新ファイルの暗号データ７ａを，更新ファイル７の暗号化に用いられた暗号鍵と対になる暗号鍵を用いて復号する（Ｓ１１）。
【００５７】
次に，セキュアＯＳ２２上で動作する更新制御アプリケーション２２０は，復号して得られた更新ファイル７を用いたソフトウェアの更新に係る処理として，復号して得られた更新ファイル７を用いてＩｏＴ機器２のソフトウェアを更新する処理（例えば，ブートメモリ２３１に更新ファイル７の内容を書き込む処理）を実行して（Ｓ１２），図５の手順は終了する。
【００５８】
図６は，ＵＩＤから共通暗号鍵を生成する時のソフトウェア更新システム１の動作を説明する図で，ここでは，図５で図示した内容との差分についてのみ説明する。
【００５９】
図６において，データセンタ装置４のＶＰＮクライアント部４０は，セッション管理装置３がデータセンタ装置４を認証する時に用いる認証用の電子証明書８ａを記憶し，ＩｏＴ機器２のＶＰＮクライアント２１１は，セッション管理装置３がＩｏＴ機器２を認証する時に用いる認証用の電子証明書８ｅを記憶する。また，データセンタ装置４のＶＰＮクライアント部４０は，ＶＰＮを用いたＰ２Ｐ接続に用いるデータとして，データセンタ装置４の公開鍵が少なくとも記述された電子証明書であるサーバ証明書８ｃと，データセンタ装置４の公開鍵と対になる秘密鍵８ｂを記憶する。同様に，ＩｏＴ機器２のＶＰＮクライアント２１１は，ＶＰＮを用いたＰ２Ｐ接続に用いるデータとして，ＩｏＴ機器２のＵＩＤ，ＩｏＴ機器２の公開鍵が少なくとも記述された電子証明書である機器証明書８ｇと，ＩｏＴ機器２の公開鍵と対になる秘密鍵８ｆを記憶する。
【００６０】
図６のＳ１において，セッション管理装置３のセッション管理部３０は，データセンタ装置４が保持している認証用の電子証明書８ａを利用して，データセンタ装置４を認証する。また，図６のＳ３において，セッション管理装置３のセッション管理部３０は，ＩｏＴ機器２が保持している認証用の電子証明書８ｅを利用して，ＩｏＴ機器２を認証する。
【００６１】
また，図６のＳ６において，データセンタ装置４のＶＰＮクライアント部４０は，ＩｏＴ機器２から取得した機器証明書８ｇとデータセンタ装置４の秘密鍵８ｂを利用してＩｏＴ機器２とＶＰＮを用いたＰ２Ｐ接続に係る処理を実行し，ＩｏＴ機器２のＶＰＮクライアント２１１は，データセンタ装置４から取得したサーバ証明書８ｃとＩｏＴ機器２の秘密鍵８ｆを利用してデータセンタ装置４とＶＰＮを用いたＰ２Ｐ接続に係る処理を実行する。
【００６２】
また，図６において，データセンタ装置４の更新ファイル配信部４１は，ＩｏＴ機器２に配信する更新ファイル７を暗号化する処理（Ｓ７）を実行する前に，更新ファイル７を配信するＩｏＴ機器２のＵＩＤを利用して，更新ファイル７の暗号化に用いる共通暗号鍵８ｄを生成する処理（Ｓ７ａ）を実行する。なお，ＩｏＴ機器２のＵＩＤは，ＩｏＴ機器２から取得した機器証明書８ｇに記述されている。
【００６３】
また，図６において，ＩｏＴ機器２に実装された更新制御アプリケーション２２０は，セキュアメモリ領域２３２ｂに格納されている更新ファイルの暗号データ７ａを復号する処理（Ｓ１１）を実行する前に，セキュアメモリ領域２３２ｂに格納されている自機のＵＩＤを利用して，更新ファイルの暗号データ７ａの復号に用いる共通暗号鍵８ｈを生成する（Ｓ１１ａ）処理を実行する。
【００６４】
ＩｏＴ機器２のＵＩＤはＩｏＴ機器２毎に異なるため，更新ファイル７の暗号化に用いる暗号鍵をＵＩＤに基づくものにすることで，更新ファイルの暗号データ７ａを復号できるＩｏＴ機器２を限定できる。
【００６５】
更新ファイル７を用いてＩｏＴ機器２のソフトウェアを更新する際，更新ファイル７の対象となるＩｏＴ機器２のソフトウェアが，セキュアＯＳ２２側のソフトウェアであるか，通常ＯＳ２１側のソフトウェアであるか否かにかかわらず，セキュアＯＳ２２上で動作する更新制御アプリケーション２２０が，更新ファイル７を用いて，更新ファイル７の対象となるＩｏＴ機器２のソフトウェアを更新する処理を実行することが望ましい。なお，セキュアＯＳ２２側のソフトウェアには，セキュアＯＳ２２，セキュアＯＳ２２上で動作するアプリケーション（ここでは，更新制御アプリケーション２２０），ＩｏＴ機器２のファームウェアが含まれる。また，通常ＯＳ２１側のソフトウェアには，通常ＯＳ２１，通常ＯＳ２１上で動作するアプリケーション（ここでは，ＩｏＴ機器アプリケーション２１０，ＶＰＮクライアント２１１および更新クライアント２１２）が含まれる。
【００６６】
図４で図示したように，本実施形態に係るＩｏＴ機器２は，メモリ２３２とは別に，ＩｏＴ機器２のソフトウェアを格納しているブートメモリ２３１を備えているため，更新ファイル７の対象となるＩｏＴ機器２のソフトウェアが記憶されているブートメモリ２３１の領域に，更新ファイル７の内容を書き込むことで，更新ファイル７の対象となるＩｏＴ機器２のソフトウェアが，セキュアＯＳ２２側のソフトウェア，または，通常ＯＳ２１側のソフトウェアであるか否かにかかわらず，更新ファイル７の対象となるＩｏＴ機器２のソフトウェアを更新できる。
【００６７】
なお，ＩｏＴ機器２の構成により，セキュアＯＳ２２側から通常ＯＳ２１側のソフトウェアを更新できない場合，更新制御アプリケーション２２０は，更新ファイル７の対象となるソフトウェアが，セキュアＯＳ２２に係るソフトウェアのときは，セキュアメモリ領域２３２ｂ内で復号した更新ファイル７を用いて，更新ファイル７の対象となるセキュアＯＳ２２に係るソフトウェアを更新し，更新ファイル７の対象となるソフトウェアが通常ＯＳ２１に係るソフトウェアのときは，ソフトウェアの更新に係る処理として，セキュアメモリ領域２３２ｂで復号した更新ファイル７を共有メモリ領域２３２ｃに移動させてから，ソフトウェアの更新を更新クライアント２１２に通知し，共有メモリ領域２３２ｃ内になる更新ファイル７を用いて，更新ファイル７の対象となる通常ＯＳ２１に係るソフトウェアを更新する処理を更新クライアント２１２に実行させることで対応を取ることができる。
【００６８】
図７は，更新クライアント２１２が更新ファイル７を用いたＩｏＴ機器２のソフトウェアの更新を行うときの動作を説明する図で，ここでは，図６で図示した内容との差分についてのみ説明する。
【００６９】
図７において，セキュアＯＳ２２上で動作する更新制御アプリケーション２２０は，ソフトウェアの更新に係る処理として，セキュアメモリ領域２３２ｂ内で復号した更新ファイル７を共有メモリ領域２３２ｃに移動させる処理を実行した後，ハイパーバイザ２０が備えるＯＳ間通信機能を利用して，復号した更新ファイル７をメモリ２３２の共有メモリ領域２３２ｃに格納したことを更新クライアント２１２へ通知する（Ｓ１２ａ）。そして，更新クライアント２１２は，メモリ２３２の共有メモリ領域２３２ｃに格納されている更新ファイル７を用いてＩｏＴ機器２のソフトウェアの更新する処理をした後，自機をリブートする（Ｓ１２ｂ）。
【００７０】
このように，本実施形態に係るソフトウェア更新システム１によれば，更新ファイル７を配信するデータセンタ装置４と更新ファイル７の対象となるＩｏＴ機器２がＰ２Ｐ接続（本実施形態では，Ｐ２Ｐ−ＶＰＮ接続になる）するので，データセンタ装置４からＩｏＴ機器２に対して更新ファイル７の暗号データ７ａをＰＵＳＨ式で配信できる。
【００７１】
更新ファイルの暗号データ７ａを復号してＩｏＴ機器に実装されたソフトウェアをセキュアに更新できるためには，通信路と隔離した状態で更新ファイルの暗号データ７ａを復号できることが必要になる。Ｐ２Ｐ接続したデータセンタ装置４から受信した更新ファイルの暗号データ７ａを格納するＩｏＴ機器２のメモリ領域（ここでは，通常メモリ領域２３２ａ）は通信路６を経由してアクセスできるメモリ領域になるため，本実施形態では，ＩｏＴ機器２にハイパーバイザ２０を実装し，通信路６を経由してアクセスできないセキュアなメモリ領域（ここでは，セキュアメモリ領域２３２ｂ）を設け，通信路と隔離された状態になっているセキュアＯＳ２２上で動作するアプリケーション（ここでは，更新制御アプリケーション２２０）が，このセキュアなメモリ領域に移動された更新ファイルの暗号データ７ａを復号するようにＩｏＴ機器２を構成している。
【００７２】
更新ファイル７を配信する際に，データセンタ装置４とＩｏＴ機器２がＰ２Ｐ接続することで，通信経路から更新ファイル７が漏えいする危険性を減らすことができ，更に，ＩｏＴ機器２に配信する更新ファイル７を暗号化することで，通信経路から更新ファイル７が漏えいしても更新ファイル７が悪用されることはなくなる。上述したように，更新ファイルの暗号データ７ａの復号に用いる暗号鍵は，公開暗号方式の秘密鍵にすることもできるが，ＩｏＴ機器２には，ＩｏＴ機器２毎にユニークなＵＩＤが記憶されているため，更新ファイル７の暗号化／復号には，ＵＩＤを利用して生成した共通暗号鍵方式の共通暗号鍵を用いることが好適である。
【００７３】
データセンタ装置４が，更新ファイル７の配信先となるＩｏＴ機器２を管理する形態も考えられるが，本実施形態では，ＶＰＮに用いる仮想ＩＰアドレスを管理しているセッション管理装置３に，データセンタ装置４とＩｏＴ機器２のＰ２Ｐ接続を仲介する機能を持たせ，更新ファイル７の配信側におけるＩｏＴ機器２の負荷を減らしている。
【符号の説明】
【００７４】
１    ソフトウェア更新システム
２    ＩｏＴ機器
２０  ハイパーバイザ
２１  通常ＯＳ
２１０  ＩｏＴ機器アプリケーション
２１１  ＶＰＮクライアント
２１２  更新クライアント
２２  セキュアＯＳ
２２０  更新制御アプリケーション
２３  ハードウェア資源
２３１  ブートメモリ
２３２  メモリ
２３２ａ  通常メモリ領域
２３２ｂ  セキュアメモリ領域
２３２ｃ  共有メモリ領域
３    セッション管理装置
３０  セッション管理部
３１  アドレステーブル
４    データセンタ装置
４０  ＶＰＮクライアント部
４１  更新ファイル配信部
４２  データベース
６    通信路
６ａ  ＶＰＮトンネル
７    更新ファイル
７ａ  更新ファイルの暗号データ
【図１】
2018041224.tif 000003
【図２】
2018041224.tif 000004
【図３】
2018041224.tif 000005
【図４】
2018041224.tif 000006
【図５】
2018041224.tif 000007
【図６】
2018041224.tif 000008
【図７】
2018041224.tif 000009