JP6805654B2 - ソフトウェア更新システム - Google Patents

ソフトウェア更新システム Download PDF

Info

Publication number
JP6805654B2
JP6805654B2 JP2016174088A JP2016174088A JP6805654B2 JP 6805654 B2 JP6805654 B2 JP 6805654B2 JP 2016174088 A JP2016174088 A JP 2016174088A JP 2016174088 A JP2016174088 A JP 2016174088A JP 6805654 B2 JP6805654 B2 JP 6805654B2
Authority
JP
Japan
Prior art keywords
update
software
iot device
update file
data center
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016174088A
Other languages
English (en)
Other versions
JP2018041224A (ja
Inventor
嘉昭 植村
嘉昭 植村
篤浩 佐橋
篤浩 佐橋
智恒 浜野
智恒 浜野
矢野 義博
義博 矢野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2016174088A priority Critical patent/JP6805654B2/ja
Publication of JP2018041224A publication Critical patent/JP2018041224A/ja
Application granted granted Critical
Publication of JP6805654B2 publication Critical patent/JP6805654B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

本発明は,IoT(Internet of Things)の技術分野に係る発明で,更に詳しくは,IoTに用いる機器に実装されたソフトウェアを更新する技術に関する。
スマートメータや監視カメラなどの機器をインターネットに接続するIoT(Internet Of Things)が普及しているが,IoTに用いる機器(以下,「IoT機器」)をインターネットに接続することにより発生する脅威が問題になっている。例えば,IoT機器に実装されたソフトウェアに脆弱性が有ると,インターネットを経由してIoT機器が不正に遠隔操作される危険性がある。
このため,ソフトウェアに脆弱性が見つかったIoT機器に対して,脆弱性を解消する対策を施した更新ファイルを配布し,IoT機器に実装されたソフトウェアを更新できることがIoT機器のセキュリティ要件の一つして要求されている。この要求を解決するためには,IoT機器に実装されたソフトウェアを自動で更新できる仕組みが必要になる。
IoT機器に実装されたソフトウェアの更新に係る発明として,例えば,特許文献1において,ホームネットワーク以外のネットワークに接続しているゲートウェイ装置と,ゲートウェイ装置にホームネットワークを介して接続された少なくとも1つの被制御機器とから少なくとも構成され,被制御機器のソフトウェアを効率的に更新するホームネットワークシステムが開示されている。
特許文献1に係る被制御機器は,被制御機器のソフトウェアを更新するソフトウェア更新処理部を備え,特許文献1に係るゲートウェイ装置は,インターネット上に設置されたサーバから,被制御機器に実装されたソフトウェアの更新に用いるソフトウェアコンポーネントおよびインストール手順を記述したファイルを取得し,被制御機器のソフトウェア更新処理部は,このファイルに記述されたインストール手順に従って,ソフトウェアコンポーネントを被制御機器にインストールする。
特開2010−244141号公報
しかしながら,特許文献1で開示された発明では,IoT機器のメーカは,自社のIoT機器に実装されたソフトウェアをPUSH型で更新できないし,また,IoT機器に実装されたソフトウェアをセキュアに更新できない。実際,IoTとはモノのインターネットであるにも係らず,特許文献1で開示された発明では,IoT機器に実装されたソフトウェアの更新はユーザの操作から開始されるし,また,ホームネットワーク以外のネットワーク(インターネット)から不正アクセス可能なゲートウェイ装置内でデータの改ざん処理が実行されてしまう危険性がある。
そこで,本発明は,IoT機器の機器メーカが,自社のIoT機器に実装されたソフトウェアをPUSH型で更新でき,更に,IoT機器に実装されたソフトウェアをセキュアな状態で更新できるシステムを提供することを目的とする。
上述した課題を解決する第1の発明は,インターネットに接続するIoT機器と,前記IoT機器に実装されたソフトウェアの更新ファイルを配信するデータセンタ装置を含むソフトウェア更新システムである。
第1の発明に係る前記データセンタ装置は,更新ファイルの配信対象となる前記IoT機器にP2P接続要求を通知してこの前記IoT機器とP2P接続する処理を実行するVPNクライアント部と,前記VPNクライアント部がP2P接続した前記IoT機器に対し,P2P接続する前記IoT機器のUIDを利用して生成した共通暗号鍵方式の共通暗号鍵を用い暗号化した更新ファイルの暗号データを送信する処理を実行する更新ファイル配信部を備える。
第1の発明に係る前記IoT機器は,通信路を利用した処理を実行するためOSである通常OSと,セキュアな処理を実行するためのOSであるセキュアOSが分離動作し,前記通常OSのみがアクセス可能な通常領域と,前記セキュアOSがアクセス可能なセキュア領域と,前記セキュアOSと通常OSそれぞれがアクセス可能な共有領域をメモリに設けるように設計されたハイパーバイザを備え,前記通常OS上で動作するアプリケーションとして,前記データセンタ装置とP2P接続する処理を実行するVPNクライアントと,前記VPNクライアントがP2P接続している前記データセンタ装置から受信した更新ファイルの暗号データを前記共有領域に移動させる処理を実行する更新クライアントを実装し,前記セキュアOS上で動作するアプリケーションとして,前記共有領域に格納された更新ファイルの暗号データを前記セキュア領域に移動させた後,自機のUIDを利用して生成した共通暗号鍵方式の共通暗号鍵を用い,前記セキュア領域内において更新ファイルの暗号データを復号し,前記セキュア領域で復号した更新ファイルを用いて,更新ファイルの対象となるソフトウェアを更新する処理を実行する更新制御アプリケーションを実装している
更に,第の発明は,第1の発に記載したソフトウェア更新システムにおいて,前記IoT機器の前記更新制御アプリケーションは,更新ファイルの対象となるソフトウェアが前記セキュアOSに係るソフトウェアであるか,前記通常OSに係るソフトウェアであるか否かに係わらず,ソフトウェアの更新に係る処理として,記セキュア領域内で復号した更新ファイルを用いて,更新ファイルの対象となるソフトウェアを更新する処理を実行することを特徴とする。
更に,第の発明は,第1の発に記載したソフトウェア更新システムにおいて,前記IoT機器の前記更新制御アプリケーションは,更新ファイルの対象となるソフトウェアが,前記セキュアOSに係るソフトウェアの場合,前記セキュア領域内で復号した更新ファイルを用いて,更新ファイルの対象となる前記セキュアOSに係るソフトウェアを更新し,更新ファイルの対象となるソフトウェアが前記通常OSに係るソフトウェアの場合,ソフトウェアの更新に係る処理として,前記セキュア領域で復号した更新ファイルを前記共有領域に移動させてから,ソフトウェアの更新を前記更新クライアントに通知し,前記共有領域内になる更新ファイルを用いて,更新ファイルの対象となる前記通常OSに係るソフトウェアを更新する処理を前記更新クライアントに実行させることを特徴とする。
更に,第の発明は,第1の発明から第の発明のいずれか一つに記載したソフトウェア更新システムにおいて,前記IoT機器の仮想IPアドレスおよび前記データセンタ装置の仮想IPアドレスを管理しているセッション管理装置を通信路上に含み,前記セッション管理装置は,前記IoT機器と前記データセンタ装置それぞれと,仮想IPアドレスを利用したシグナル交換を実施することにより,P2P接続に必要なP2P接続情報を前記IoT機器と前記データセンタ装置それぞれから取得した後,接続先のP2P接続情報を前記IoT機器と前記データセンタ装置それぞれに通知することで,VPNを利用して前記IoT機器と前記データセンタ装置をP2P接続させる処理を実行することを特徴とする。
上述した本発明によれば,IoT機器の機器メーカが,自社のIoT機器に実装されたソフトウェアをPUSH型で更新でき,更に,IoT機器に実装されたソフトウェアをセキュアな状態で更新できるシステムを提供できる。
ソフトウェア更新システムの構成を示した図。 セッション管理装置が備える機能を説明する図。 データセンタ装置が備える機能を説明する図。 IoT機器が備える機能を説明する図。 ソフトウェア更新システムの基本的な動作を説明する図。 UIDから共通暗号鍵を生成する時のソフトウェア更新システムの動作を説明する図。 更新クライアントが更新ファイルを用いたIoT機器のソフトウェアの更新を行うときの動作を説明する図。
ここから,本発明の好適な実施形態を記載する。なお,以下の記載は本発明の技術的範囲を束縛するものでなく,理解を助けるために記述するものである。
図1では,本実施形態に係るソフトウェア更新システム1の構成を示している。本実施形態に係るソフトウェア更新システム1は,IoT機器2のメーカが,自社のIoT機器2に実装したソフトウェアを自主的に更新でき,更に,IoT機器2に実装されたソフトウェアをセキュアに更新できるように発案されたシステムで,IoT機器2,セッション管理装置3およびデータセンタ装置4とから構成され,図1では,これらに加え,IoT機器2から収集したデータを利用するサービスを提供するサービスサーバ装置5を図示している。なお,IoT機器2に実装されたソフトウェアとは,IoT機器2に実装されているファームウェア,IoT機器2に実装されているオペレーティングシステム(OS: Operating System),IoT機器2に実装されているOS上で動作するアプリケーションを意味する。
図1では,IoT機器2として,ゲートウェイ装置2a,監視カメラ2d,テレビジョン2cおよびスマートメータ2bを図示している。IoT機器2それぞれはホームネットワーク6bに接続し,IoT機器2の一つであるゲートウェイ装置2a,セッション管理装置3およびデータセンタ装置4は通信路6に接続し,ゲートウェイ装置2a以外のIoT機器2はゲートウェイ装置2aを介して通信路6に接続している。なお,通信路6とはインターネットやLANなどの様々なネットワークを含む概念である。
まず,本実施形態に係るソフトウェア更新システム1を構成するセッション管理装置3について説明する。図2は,本実施形態に係るセッション管理装置3が備える機能を説明する図である。
セッション管理装置3は,CPU,RAM,ROM,ネットワークインターフェースなどのハードウェア資源を備えたネットワーク対応サーバを利用して実現される装置である。本実施形態に係るセッション管理装置3は,VPN(Virtual Private Network)接続するときに用いるIPアドレスとなる仮想IPアドレス(Virtual IP Address)として,セッション管理装置3の利用が許可されているデータセンタ装置4の仮想IPアドレスを記憶し,更に,サービスサーバ装置5が利用するIoT機器2など,セッション管理装置3の利用が許可されているIoT機器2の仮想IPアドレスを記憶したアドレステーブル31を備える。本実施形態に係るアドレステーブル31には,セッション管理装置3に登録されたIoT機器2ごとに,IoT機器2が記憶しているUID(Unique IDentifier)に関連付けて,IoT機器2の型番と,IoT機器2のIPアドレスが少なくとも記憶されている。
更に,本実施形態に係るセッション管理装置3は,データセンタ装置4とIoT機器2それぞれと,仮想IPアドレスを利用したシグナル交換することで,実IPアドレス(Global IP Address)を含むP2P接続情報をデータセンタ装置4とIoT機器2それぞれから取得した後,接続先のP2P接続情報をデータセンタ装置4とIoT機器2に通知し,VPNを利用してデータセンタ装置4とIoT機器2をP2P接続させるセッション管理部30を備える。
セッション管理装置3のセッション管理部30は,セッション管理装置3の利用が許可されているデータセンタ装置4の仮想IPアドレスを記憶し,IoT機器2のソフトウェアを更新する際,データセンタ装置4からVPN接続要求を受けると,VPN接続要求したデータセンタ装置4を認証し,認証に成功すると,データセンタ装置4の仮想IPアドレスを用いて,VPN接続要求を送信したデータセンタ装置4とVPN接続する。なお,データセンタ装置4を認証する手法としては,認証機関が発行した電子証明書を利用することができる。
データセンタ装置4とVPN接続すると,セッション管理装置3のセッション管理部30には,VPN接続したデータセンタ装置4のP2P接続情報(実IPアドレスとポート番号)と,更新ファイル7の対象となるIoT機器2を少なくとも示す接続先通知接続要求がデータセンタ装置4から通知される。本実施形態では,更新ファイル7の対象となるIoT機器2を示すデータとして,更新ファイル7の対象となるIoT機器2の型番が接続先通知要求に含まれている。
セッション管理装置3のセッション管理部30は,接続先通知要求に対応するIoT機器2の仮想IPアドレスをアドレステーブル31から検索し,アドレステーブル31から検索した仮想IPアドレスを用いて,接続先通知要求に対応するIoT機器2を認証する。なお,IoT機器2を認証する手法としては,認証機関が発行した電子証明書を利用することができる。
セッション管理装置3のセッション管理部30は,接続先通知要求に対応するIoT機器2の認証に成功すると,このIoT機器2にVPN接続要求を通知し,アドレステーブル31から検索した仮想IPアドレスを用いて,IoT機器2とVPN接続する。IoT機器2とVPN接続すると,セッション管理装置3のセッション管理部30は,接続先通知要求したデータセンタ装置4のP2P接続情報と,データセンタ装置4から接続先通知要求を受けたことをIoT機器2に通知し,VPN接続したIoT機器2からIoT機器2のP2P接続情報を取得する。
セッション管理装置3のセッション管理部30は,VPN接続したIoT機器2から取得したIoT機器2のP2P接続情報とこのIoT機器2の仮想IPアドレスを,VPN接続しているデータセンタ装置4へ通知し,VPNを利用してデータセンタ装置4とIoT機器2をP2P接続させる。
次に,本実施形態に係るソフトウェア更新システム1を構成するデータセンタ装置4について説明する。図3は,本実施形態に係るデータセンタ装置4が備える機能を説明する図である。
データセンタ装置4は,CPU,RAM,ROM,ネットワークインターフェース,大容量のストレージなどのハードウェア資源を備えたネットワーク対応サーバを利用して実現される装置である。データセンタ装置4は,VPNを利用してIoT機器2とP2P接続するための機能として,VPNを利用したP2P接続に係る処理を実行するVPNクライアント部40と,VPNを利用してP2P接続したIoT機器2へ更新ファイル7を配信する処理を実行する更新ファイル配信部41を備える。更に,データセンタ装置4は,大容量のストレージを利用して実現される機能として,様々なIoT機器2の更新ファイル7を記憶するデータベース42を備える。
データセンタ装置4のVPNクライアント部40は,VPNを利用してIoT機器2とP2P接続する処理を実行するソフトウェアを利用して実現される機能である。データセンタ装置4のVPNクライアント部40は,新たな更新ファイル7がデータベース42に登録されるなどすると,セッション管理装置3に対してVPN接続要求を通知し,セッション管理装置3とVPN接続する。
セッション管理装置3とVPN接続すると,データセンタ装置4のVPNクライアント部40は,データセンタ装置4のP2P接続情報と,更新ファイル7の配信対象となるIoT機器2を示す接続先通知要求をセッション管理装置3に通知する。更新ファイル7の配信対象となるIoT機器2を示す接続先通知要求は,データセンタ装置4のVPNクライアント部40が生成することも可能であるが,セッション管理装置3とVPN接続すると,データセンタ装置4の更新ファイル配信部41が接続先通知要求を生成するように構成することが望ましい。また,データベース42に登録された更新ファイル7の対象となるIoT機器2を示すデータとして,更新ファイル7の対象となるIoT機器2の型番を接続先通知要求に含ませることができる。
接続先通知要求などをセッション管理装置3へ通知した後,接続先通知要求に対応するIoT機器2のP2P接続情報がセッション管理装置3から通知されると,データセンタ装置4のVPNクライアント部40は,セッション管理装置3から通知されたP2P接続情報を用いてIoT機器2にP2P接続要求を通知し,VPNを利用したP2P接続に係る処理がデータセンタ装置4とIoT機器2で実行されることで,データセンタ装置4とIoT機器2間に仮想的な通信経路であるVPNトンネル6aが確立される。
本実施形態において,データセンタ装置4の更新ファイル配信部41は,データベース42を監視し,新たな更新ファイル7がデータベース42に登録されると,セッション管理装置3とのVPN接続をVPNクライアント部40に依頼する。また,セッション管理装置3とのVPN接続が完了すると,データセンタ装置4の更新ファイル配信部41は,更新ファイル7の配信対象となるIoT機器2を示す接続先通知要求を生成し,データセンタ装置4のP2P接続情報と接続先通知要求の送信をVPNクライアント部40に依頼し,データセンタ装置4とIoT機器2間にVPNトンネル6aが確立する。
データセンタ装置4とIoT機器2間にVPNトンネル6aが確立すると,データセンタ装置4の更新ファイル配信部41は,VPNを利用してP2P接続したIoT機器2が復号可能な形態で,IoT機器2に送信する更新ファイル7を暗号化し,VPNを利用してP2P接続したIoT機器2へ更新ファイルの暗号データ7aを送信する処理を行う。更新ファイル7の暗号化には公開鍵暗号方式を利用できる。この場合,データセンタ装置4の更新ファイル配信部41は,VPNを利用してP2P接続したIoT機器2の公開鍵を用いて更新ファイル7を暗号化できる。また,更新ファイル7の暗号化には共通鍵暗号方式を利用できる。この場合,データセンタ装置4の更新ファイル配信部41は,VPNを利用してP2P接続したIoT機器2のUIDを利用して共通暗号鍵を生成し,UIDから生成した共通暗号鍵を用いて更新ファイル7を暗号化する。
データセンタ装置4の更新ファイル配信部41が更新ファイル7を暗号化することで,データセンタ装置4とIoT機器2の通信経路から更新ファイル7が漏えいしても,更新ファイル7が悪用されることはない。また,VPNを利用してデータセンタ装置4とIoT機器2がP2P接続することで,データセンタ装置4とIoT機器2の通信路6からの更新ファイル7の漏えいを防ぐことができる。
次に,本実施形態に係るソフトウェア更新システム1を構成するIoT機器2について説明する。図4は,本実施形態に係るIoT機器2が備える機能を説明する図である。
IoT機器2は,プロセッサ23に加え,IoT機器2で必要となるハードウェア資源230を備え,IoT機器2のハードウェア資源230には,ブートメモリ231およびメモリ232が少なくとも含まれる。ブートメモリ231とは,IoT機器2のソフトウェアを格納しているNVM(Non-Volatile Memory)である。また,メモリ232には,NVMに加えて,プロセッサ23が利用する主記憶装置となるRAM(Random Access Memory)が含まれる。IoT機器2のブートメモリ231に格納されたソフトウェアは,IoT機器2がブートする際に読み出されてメモリ232(RAM等)上に展開される。
IoT機器2には,上述したハードウェア以外に,IoT機器2に必要なハードウェアが実装される。例えば,IoT機器2をゲートウェイ装置2aとする場合,ゲートウェイ装置2aは,上述したハードウェア以外に,通信路6に接続するためのポートであるWANポートや,ホームネットワーク6bに接続するためのポートであるLANポートなどを備えることになる。
本実施形態にIoT機器2は,IoT機器2が備えるハードウェア資源230を仮想化し,通信路6を利用した処理を実行するためのオペレーティングシステム(OS: Operating System)である通常OS21と,セキュアな処理を実行するためのOSであるセキュアOS22それぞれが分離動作するように構成されたソフトウェアであるハイパーバイザ20を備える。ハイパーバイザ20には,ホストOS上で動作するホストOS型もあるが,IoT機器2のリソースは乏しいことが多いため,本実施形態では,ハードウェア資源230上で直接動作するベアメタル型を採用している。
本実施形態に係るハイパーバイザ20は,メモリ232を3つの領域に仮想的に分割して管理する。一つ目の領域は,通常OS21(通常OS上で動作するアプリケーションも含む)からのみアクセス可能な通常領域となる通常メモリ領域232aと,セキュアOS22(セキュアOS上で動作するアプリケーションも含む)からのみアクセス可能なセキュア領域となるセキュアメモリ領域232bに加え,通常OS21とセキュアOS22の双方からアクセス可能な共有領域となる共有メモリ領域232cに分割して管理する。更に,本実施形態に係るハイパーバイザ20は,セキュアOS22と通常OS21間のOS間通信をサポートする。
ハイパーバイザ20上で動作するOS上には,OS上で動作するアプリケーションが実装され,本実施形態において,通常OS21上には,IoT機器アプリケーション210,VPNクライアント211および更新クライアント212が実装され,セキュアOS22上には,更新制御アプリケーション220が実装されている。
通常OS21上で動作するIoT機器アプリケーション210は,IoT機器2の機能を実現するためのアプリケーションで,IoT機器アプリケーション210が実行する処理内容はIoT機器2の種類で異なる。例えば,IoT機器2がゲートウェイ装置2aの場合,IoT機器アプリケーション210は,ネットワーク間(ここでは,ホームネットワーク6bと通信路6間になる)の通信を中継するゲートウェイに係る処理を実行するソフトウェアになる。
通常OS21上で動作するVPNクライアント211は,データセンタ装置4とP2P−VPN接続する処理を実行するアプリケーションである。VPNクライアント211は,セッション管理装置3からVPN接続要求を受けると,セッション管理装置3とVPN接続し,接続先通知要求したデータセンタ装置4のP2P接続情報と,データセンタ装置4から接続先通知要求を受けたことがセッション管理装置3から通知されると,セッション管理装置3へIoT機器2のP2P接続情報を通知する。そして,P2P−VPN接続要求がデータセンタ装置4から通知されると,データセンタ装置4のP2P接続情報を用い,VPNを利用してデータセンタ装置4にP2P接続する処理を実行するし,データセンタ装置4とIoT機器2間に仮想的な通信経路であるVPNトンネル6aが確立される。
通常OS21上で動作する更新クライアント212は,IoT機器2の窓口になるソフトウェアである。本実施形態に係る更新クライアント212は,VPNクライアント211を利用してデータセンタ装置4とデータ通信し,データセンタ装置4から受信した更新ファイルの暗号データ7aを共有メモリ領域232cへ格納した後,OS間通信を利用して,更新ファイルの暗号データ7aを受信したことをセキュアOS22側へ通知する処理を実行する。
セキュアOS22上で動作する更新制御アプリケーション220は,更新クライアント212がデータセンタ装置4から受信した更新ファイルの暗号データ7aを復号し,復号した更新ファイル7を用いてソフトウェアの更新に係る処理をセキュア領域内で行うソフトウェアである。データセンタ装置4がIoT機器2の公開鍵を用いて更新ファイル7を暗号化する場合,更新制御アプリケーション220は,IoT機器2の秘密鍵を用いて更新ファイルの暗号データ7aを復号する。また,データセンタ装置4が,IoT機器2のUIDから生成した共通暗号鍵を用いて更新ファイル7を暗号化する場合,更新制御アプリケーション220は,データセンタ装置4と同じで手順で自機のUIDから共通暗号鍵を生成し,自機のUIDに基づく共通暗号鍵を用いて更新ファイルの暗号データ7aを復号する。
ここから,本実施形態に係るソフトウェア更新システム1の基本的な動作について説明する。図5は,本実施形態に係るソフトウェア更新システム1の基本的な動作を説明する図である。
データセンタ装置4のVPNクライアント部40は,IoT機器2の機器メーカが新たな更新ファイル7をデータベース42に登録されるなどすると,VPN接続要求をセッション管理装置3へ通知し,セッション管理装置3のセッション管理部30は,VPN接続要求したデータセンタ装置4を認証した後,VPN接続要求を送信したデータセンタ装置4とVPN接続する(S1)。なお,データセンタ装置4とのVPN接続には,データセンタ装置4の仮想IPアドレスが利用される。
データセンタ装置4とVPN接続すると,データセンタ装置4のVPNクライアント部40は,VPN接続したデータセンタ装置4のP2P接続情報と,更新ファイル7の対象となるIoT機器2を少なくとも示す接続先通知要求をセッション管理装置3に通知する(S2)。なお,接続先通知要求には,更新ファイル7の対象となるIoT機器2の型番が含まれている。
セッション管理装置3のセッション管理部30は,データセンタ装置4から接続先通知要求が通知されると,接続先通知要求に対応するIoT機器2の仮想IPアドレスをアドレステーブル31から検索し,アドレステーブル31から検索した仮想IPアドレスを用いて,接続先通知要求に対応するIoT機器2を認証した後,このIoT機器2とVPN接続する(S3)。
セッション管理装置3のセッション管理部30は,IoT機器2とVPN接続すると,接続先通知要求したデータセンタ装置4のP2P接続情報と,データセンタ装置4から接続先通知要求を受けたことをIoT機器2に通知し,IoT機器2の実IPアドレスをセッション管理装置3へ送信する(S4)。
セッション管理装置3のセッション管理部30は,VPN接続したIoT機器2から取得したP2P接続情報とこのIoT機器2の仮想IPアドレスを,VPN接続しているデータセンタ装置4へ通知する(S5)。
データセンタ装置4のVPNクライアント部40は,IoT機器2の仮想IPアドレスとP2P接続情報を利用してIoT機器2にP2P接続要求し,データセンタ装置4とIoT機器2間にVPNトンネル6aが確立する(S6)。
VPNを利用してデータセンタ装置4とIoT機器2がP2P接続すると,データセンタ装置4の更新ファイル配信部41は,VPNを用いてP2P接続したIoT機器2が復号可能な形態で,IoT機器2に送信する更新ファイル7を暗号化する(S7)。
次に,データセンタ装置4の更新ファイル配信部41は,VPNを用いてP2P接続したIoT機器2へ更新ファイルの暗号データ7aを送信し,IoT機器2の更新クライアント212は,データセンタ装置4から受信した更新ファイルの暗号データ7aを通常メモリ領域232aに格納する(S8)。
更新クライアント212は,通常メモリ領域232aに格納した更新ファイルの暗号データ7aを共有メモリ領域232cへ移動させた後,ハイパーバイザ20が備えるOS間通信機能を利用して,更新ファイルの暗号データ7aを共有メモリ領域232cに格納したことを更新制御アプリケーション220へ通知する(S9)。
セキュアOS22上で動作する更新制御アプリケーション220は,通信路6から隔離した状態で更新ファイルの暗号データ7aを復号できるように,共有メモリ領域232cに格納された更新ファイルの暗号データ7aをセキュアメモリ領域232bに移動させる(S10)。
セキュアOS22上で動作する更新制御アプリケーション220は,セキュアメモリ領域232bに移動させた更新ファイルの暗号データ7aを,更新ファイル7の暗号化に用いられた暗号鍵と対になる暗号鍵を用いて復号する(S11)。
次に,セキュアOS22上で動作する更新制御アプリケーション220は,復号して得られた更新ファイル7を用いたソフトウェアの更新に係る処理として,復号して得られた更新ファイル7を用いてIoT機器2のソフトウェアを更新する処理(例えば,ブートメモリ231に更新ファイル7の内容を書き込む処理)を実行して(S12),図5の手順は終了する。
図6は,UIDから共通暗号鍵を生成する時のソフトウェア更新システム1の動作を説明する図で,ここでは,図5で図示した内容との差分についてのみ説明する。
図6において,データセンタ装置4のVPNクライアント部40は,セッション管理装置3がデータセンタ装置4を認証する時に用いる認証用の電子証明書8aを記憶し,IoT機器2のVPNクライアント211は,セッション管理装置3がIoT機器2を認証する時に用いる認証用の電子証明書8eを記憶する。また,データセンタ装置4のVPNクライアント部40は,VPNを用いたP2P接続に用いるデータとして,データセンタ装置4の公開鍵が少なくとも記述された電子証明書であるサーバ証明書8cと,データセンタ装置4の公開鍵と対になる秘密鍵8bを記憶する。同様に,IoT機器2のVPNクライアント211は,VPNを用いたP2P接続に用いるデータとして,IoT機器2のUID,IoT機器2の公開鍵が少なくとも記述された電子証明書である機器証明書8gと,IoT機器2の公開鍵と対になる秘密鍵8fを記憶する。
図6のS1において,セッション管理装置3のセッション管理部30は,データセンタ装置4が保持している認証用の電子証明書8aを利用して,データセンタ装置4を認証する。また,図6のS3において,セッション管理装置3のセッション管理部30は,IoT機器2が保持している認証用の電子証明書8eを利用して,IoT機器2を認証する。
また,図6のS6において,データセンタ装置4のVPNクライアント部40は,IoT機器2から取得した機器証明書8gとデータセンタ装置4の秘密鍵8bを利用してIoT機器2とVPNを用いたP2P接続に係る処理を実行し,IoT機器2のVPNクライアント211は,データセンタ装置4から取得したサーバ証明書8cとIoT機器2の秘密鍵8fを利用してデータセンタ装置4とVPNを用いたP2P接続に係る処理を実行する。
また,図6において,データセンタ装置4の更新ファイル配信部41は,IoT機器2に配信する更新ファイル7を暗号化する処理(S7)を実行する前に,更新ファイル7を配信するIoT機器2のUIDを利用して,更新ファイル7の暗号化に用いる共通暗号鍵8dを生成する処理(S7a)を実行する。なお,IoT機器2のUIDは,IoT機器2から取得した機器証明書8gに記述されている。
また,図6において,IoT機器2に実装された更新制御アプリケーション220は,セキュアメモリ領域232bに格納されている更新ファイルの暗号データ7aを復号する処理(S11)を実行する前に,セキュアメモリ領域232bに格納されている自機のUIDを利用して,更新ファイルの暗号データ7aの復号に用いる共通暗号鍵8hを生成する(S11a)処理を実行する。
IoT機器2のUIDはIoT機器2毎に異なるため,更新ファイル7の暗号化に用いる暗号鍵をUIDに基づくものにすることで,更新ファイルの暗号データ7aを復号できるIoT機器2を限定できる。
更新ファイル7を用いてIoT機器2のソフトウェアを更新する際,更新ファイル7の対象となるIoT機器2のソフトウェアが,セキュアOS22側のソフトウェアであるか,通常OS21側のソフトウェアであるか否かにかかわらず,セキュアOS22上で動作する更新制御アプリケーション220が,更新ファイル7を用いて,更新ファイル7の対象となるIoT機器2のソフトウェアを更新する処理を実行することが望ましい。なお,セキュアOS22側のソフトウェアには,セキュアOS22,セキュアOS22上で動作するアプリケーション(ここでは,更新制御アプリケーション220),IoT機器2のファームウェアが含まれる。また,通常OS21側のソフトウェアには,通常OS21,通常OS21上で動作するアプリケーション(ここでは,IoT機器アプリケーション210,VPNクライアント211および更新クライアント212)が含まれる。
図4で図示したように,本実施形態に係るIoT機器2は,メモリ232とは別に,IoT機器2のソフトウェアを格納しているブートメモリ231を備えているため,更新ファイル7の対象となるIoT機器2のソフトウェアが記憶されているブートメモリ231の領域に,更新ファイル7の内容を書き込むことで,更新ファイル7の対象となるIoT機器2のソフトウェアが,セキュアOS22側のソフトウェア,または,通常OS21側のソフトウェアであるか否かにかかわらず,更新ファイル7の対象となるIoT機器2のソフトウェアを更新できる。
なお,IoT機器2の構成により,セキュアOS22側から通常OS21側のソフトウェアを更新できない場合,更新制御アプリケーション220は,更新ファイル7の対象となるソフトウェアが,セキュアOS22に係るソフトウェアのときは,セキュアメモリ領域232b内で復号した更新ファイル7を用いて,更新ファイル7の対象となるセキュアOS22に係るソフトウェアを更新し,更新ファイル7の対象となるソフトウェアが通常OS21に係るソフトウェアのときは,ソフトウェアの更新に係る処理として,セキュアメモリ領域232bで復号した更新ファイル7を共有メモリ領域232cに移動させてから,ソフトウェアの更新を更新クライアント212に通知し,共有メモリ領域232c内になる更新ファイル7を用いて,更新ファイル7の対象となる通常OS21に係るソフトウェアを更新する処理を更新クライアント212に実行させることで対応を取ることができる。
図7は,更新クライアント212が更新ファイル7を用いたIoT機器2のソフトウェアの更新を行うときの動作を説明する図で,ここでは,図6で図示した内容との差分についてのみ説明する。
図7において,セキュアOS22上で動作する更新制御アプリケーション220は,ソフトウェアの更新に係る処理として,セキュアメモリ領域232b内で復号した更新ファイル7を共有メモリ領域232cに移動させる処理を実行した後,ハイパーバイザ20が備えるOS間通信機能を利用して,復号した更新ファイル7をメモリ232の共有メモリ領域232cに格納したことを更新クライアント212へ通知する(S12a)。そして,更新クライアント212は,メモリ232の共有メモリ領域232cに格納されている更新ファイル7を用いてIoT機器2のソフトウェアの更新する処理をした後,自機をリブートする(S12b)。
このように,本実施形態に係るソフトウェア更新システム1によれば,更新ファイル7を配信するデータセンタ装置4と更新ファイル7の対象となるIoT機器2がP2P接続(本実施形態では,P2P−VPN接続になる)するので,データセンタ装置4からIoT機器2に対して更新ファイル7の暗号データ7aをPUSH式で配信できる。
更新ファイルの暗号データ7aを復号してIoT機器に実装されたソフトウェアをセキュアに更新できるためには,通信路と隔離した状態で更新ファイルの暗号データ7aを復号できることが必要になる。P2P接続したデータセンタ装置4から受信した更新ファイルの暗号データ7aを格納するIoT機器2のメモリ領域(ここでは,通常メモリ領域232a)は通信路6を経由してアクセスできるメモリ領域になるため,本実施形態では,IoT機器2にハイパーバイザ20を実装し,通信路6を経由してアクセスできないセキュアなメモリ領域(ここでは,セキュアメモリ領域232b)を設け,通信路と隔離された状態になっているセキュアOS22上で動作するアプリケーション(ここでは,更新制御アプリケーション220)が,このセキュアなメモリ領域に移動された更新ファイルの暗号データ7aを復号するようにIoT機器2を構成している。
更新ファイル7を配信する際に,データセンタ装置4とIoT機器2がP2P接続することで,通信経路から更新ファイル7が漏えいする危険性を減らすことができ,更に,IoT機器2に配信する更新ファイル7を暗号化することで,通信経路から更新ファイル7が漏えいしても更新ファイル7が悪用されることはなくなる。上述したように,更新ファイルの暗号データ7aの復号に用いる暗号鍵は,公開暗号方式の秘密鍵にすることもできるが,IoT機器2には,IoT機器2毎にユニークなUIDが記憶されているため,更新ファイル7の暗号化/復号には,UIDを利用して生成した共通暗号鍵方式の共通暗号鍵を用いることが好適である。
データセンタ装置4が,更新ファイル7の配信先となるIoT機器2を管理する形態も考えられるが,本実施形態では,VPNに用いる仮想IPアドレスを管理しているセッション管理装置3に,データセンタ装置4とIoT機器2のP2P接続を仲介する機能を持たせ,更新ファイル7の配信側におけるIoT機器2の負荷を減らしている。
1 ソフトウェア更新システム
2 IoT機器
20 ハイパーバイザ
21 通常OS
210 IoT機器アプリケーション
211 VPNクライアント
212 更新クライアント
22 セキュアOS
220 更新制御アプリケーション
23 ハードウェア資源
231 ブートメモリ
232 メモリ
232a 通常メモリ領域
232b セキュアメモリ領域
232c 共有メモリ領域
3 セッション管理装置
30 セッション管理部
31 アドレステーブル
4 データセンタ装置
40 VPNクライアント部
41 更新ファイル配信部
42 データベース
6 通信路
6a VPNトンネル
7 更新ファイル
7a 更新ファイルの暗号データ

Claims (4)

  1. 通信路に接続するIoT機器と,前記IoT機器に実装されたソフトウェアの更新ファイルを配信するデータセンタ装置を含み,
    前記データセンタ装置は,更新ファイルの配信対象となる前記IoT機器にP2P接続要求を通知してこの前記IoT機器とP2P接続する処理を実行するVPNクライアント部と,前記VPNクライアント部がP2P接続した前記IoT機器に対し,P2P接続する前記IoT機器のUIDを利用して生成した共通暗号鍵方式の共通暗号鍵を用いて暗号化した更新ファイルの暗号データを送信する処理を実行する更新ファイル配信部を備え,
    前記IoT機器は,通信路を利用した処理を実行するためOSである通常OSと,セキュアな処理を実行するためのOSであるセキュアOSが分離動作し,前記通常OSのみがアクセス可能な通常領域と,前記セキュアOSがアクセス可能なセキュア領域と,前記セキュアOSと通常OSそれぞれがアクセス可能な共有領域をメモリに設けるように構成されたハイパーバイザを備え,前記通常OS上で動作するアプリケーションとして,前記データセンタ装置とP2P接続する処理を実行するVPNクライアントと,前記VPNクライアントがP2P接続している前記データセンタ装置から受信した更新ファイルの暗号データを前記共有領域に移動させる処理を実行する更新クライアントを実装し,前記セキュアOS上で動作するアプリケーションとして,前記共有領域に格納された更新ファイルの暗号データを前記セキュア領域に移動させた後,前記セキュア領域内において更新ファイルの暗号データを,自機のUIDを利用して生成した共通暗号鍵方式の共通暗号鍵を用いて復号し,前記セキュア領域で復号した更新ファイルを用いて,更新ファイルの対象となるソフトウェアを更新する処理を実行する更新制御アプリケーションを実装している,ことを特徴とするソフトウェア更新システム。
  2. 前記IoT機器の前記更新制御アプリケーションは,更新ファイルの対象となるソフトウェアが,前記セキュアOSに係るソフトウェアあるか,前記通常OSに係るソフトウェアであるか否かに係わらず,前記セキュア領域内で復号した更新ファイルを用いて,更新ファイルの対象となるソフトウェアを更新する処理を実行することを特徴とする,請求項に記載したソフトウェア更新システム。
  3. 前記IoT機器の前記更新制御アプリケーションは,更新ファイルの対象となるソフトウェアが,前記セキュアOSに係るソフトウェアの場合,前記セキュア領域内で復号した更新ファイルを用いて,更新ファイルの対象となる前記セキュアOSに係るソフトウェアを更新し,更新ファイルの対象となるソフトウェアが前記通常OSに係るソフトウェアの場合,ソフトウェアの更新に係る処理として,前記セキュア領域で復号した更新ファイルを前記共有領域に移動させてから,ソフトウェアの更新を前記更新クライアントに通知し,前記共有領域内になる更新ファイルを用いて,更新ファイルの対象となる前記通常OSに係るソフトウェアを更新する処理を前記更新クライアントに実行させることを特徴とする,請求項に記載したソフトウェア更新システム。
  4. 前記IoT機器の仮想IPアドレスおよび前記データセンタ装置の仮想IPアドレスを管理しているセッション管理装置を通信路上に含み,
    前記セッション管理装置は,前記IoT機器と前記データセンタ装置それぞれと,仮想IPアドレスを利用したシグナル交換を実施することにより,P2P接続に必要なP2P
    接続情報を前記IoT機器と前記データセンタ装置それぞれから取得した後,接続先のP2P接続情報を前記IoT機器と前記データセンタ装置それぞれに通知することで,VPNを利用して前記IoT機器と前記データセンタ装置をP2P接続させる処理を実行する,
    ことを特徴とする,請求項1からのいずれか一項に記載したソフトウェア更新システム。
JP2016174088A 2016-09-06 2016-09-06 ソフトウェア更新システム Active JP6805654B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016174088A JP6805654B2 (ja) 2016-09-06 2016-09-06 ソフトウェア更新システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016174088A JP6805654B2 (ja) 2016-09-06 2016-09-06 ソフトウェア更新システム

Publications (2)

Publication Number Publication Date
JP2018041224A JP2018041224A (ja) 2018-03-15
JP6805654B2 true JP6805654B2 (ja) 2020-12-23

Family

ID=61626234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016174088A Active JP6805654B2 (ja) 2016-09-06 2016-09-06 ソフトウェア更新システム

Country Status (1)

Country Link
JP (1) JP6805654B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739532B (zh) * 2018-12-13 2022-05-27 北京计算机技术及应用研究所 一种国产Linux操作系统上的软件更新方法
US20220085982A1 (en) * 2019-01-28 2022-03-17 Omron Corporation Safety system and maintenance method
JP7334492B2 (ja) * 2019-01-28 2023-08-29 オムロン株式会社 セーフティシステムおよびメンテナンス方法
WO2021121601A1 (en) 2019-12-19 2021-06-24 Telefonaktiebolaget Lm Ericsson (Publ) A method and a communication device for updating software
CN111443936A (zh) * 2020-04-15 2020-07-24 赞同科技股份有限公司 一种用于对客户端软件进行更新的方法及系统
EP4246878A1 (en) * 2020-11-13 2023-09-20 Nippon Telegraph And Telephone Corporation Program executing system, data processing device, program executing method, and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005010871A (ja) * 2003-06-17 2005-01-13 Hitachi Ltd 計算機通信制御方法およびシステム
JP2013242644A (ja) * 2012-05-18 2013-12-05 Panasonic Corp 仮想計算機システム、制御方法、およびプログラム
JP2014089652A (ja) * 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置
JP6385842B2 (ja) * 2015-02-02 2018-09-05 株式会社東芝 情報処理端末、情報処理方法、及び情報処理システム

Also Published As

Publication number Publication date
JP2018041224A (ja) 2018-03-15

Similar Documents

Publication Publication Date Title
JP7457173B2 (ja) モノのインターネット(iot)デバイスの管理
JP6805654B2 (ja) ソフトウェア更新システム
CN110537346B (zh) 安全去中心化域名系统
US9846778B1 (en) Encrypted boot volume access in resource-on-demand environments
US8732462B2 (en) Methods and apparatus for secure data sharing
CN101605137B (zh) 安全分布式文件系统
KR101530809B1 (ko) 멀티-테넌트 서비스 제공자에 의한 동적 플랫폼 재구성
US20150310427A1 (en) Method, apparatus, and system for generating transaction-signing one-time password
US10601590B1 (en) Secure secrets in hardware security module for use by protected function in trusted execution environment
TW202015378A (zh) 密碼運算、創建工作密鑰的方法、密碼服務平台及設備
US10298388B2 (en) Workload encryption key
JP2010514000A (ja) 電子装置にプログラム状態データをセキュアに記憶するための方法
JP2012178010A (ja) 情報処理システム、及び情報処理方法
US9787668B1 (en) Sensitive user information management system and method
CN105429962B (zh) 一种通用的面向加密数据的中间网络服务构建方法与体系
KR102338718B1 (ko) 리소스 처리 방법, 장치, 및 시스템, 및 컴퓨터 판독가능 매체
US10187213B2 (en) Off device storage of cryptographic key material
EP3289750A1 (en) Autonomous private key recovery
JP5452192B2 (ja) アクセス制御システム、アクセス制御方法およびプログラム
KR20130101964A (ko) 플랫폼 컴포넌트들의 보안 업그레이드 또는 다운그레이드를 위한 방법 및 시스템
JP2023552421A (ja) ハードウェア・セキュリティ・モジュールのリモート管理
EP4096160A1 (en) Shared secret implementation of proxied cryptographic keys
EP3048553B1 (en) Method for distributing applets, and entities for distributing applets
US10516655B1 (en) Encrypted boot volume access in resource-on-demand environments
JP5485452B1 (ja) 鍵管理システム、鍵管理方法、ユーザ端末、鍵生成管理装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200616

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201117

R150 Certificate of patent or registration of utility model

Ref document number: 6805654

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150