(57)【特許請求の範囲】
【請求項１】
ＣＰＵ（１１０）と、メモリ（１２０）と、外部通信手段（１３０）と、を備えた情報処理装置（１００）であって、
前記メモリ（１２０）には、前記ＣＰＵ（１１０）に実行させる第１のＯＳプログラム（Ｐａ）および第２のＯＳプログラム（Ｐｂ）と、前記第１のＯＳプログラム（Ｐａ）の管理下において前記ＣＰＵ（１１０）に実行させる第１属性のアプリケーションプログラム（ＡＰ１，ＡＰ２，Ｍａ）と、前記第２のＯＳプログラム（Ｐｂ）の管理下において前記ＣＰＵ（１１０）に実行させる第２属性のアプリケーションプログラム（Ｍｂ）と、前記ＣＰＵ（１１０）に前記第１のＯＳプログラム（Ｐａ）および前記第２のＯＳプログラム（Ｐｂ）を並列実行させる処理を行うハイパーバイザープログラム（Ｐｈ）と、が格納されており、
前記第１属性のアプリケーションプログラムには、アップデート処理を管理する第１の管理プログラム（Ｍａ）が含まれており、前記第２属性のアプリケーションプログラムには、アップデート処理を管理する第２の管理プログラム（Ｍｂ）が含まれており、
前記メモリ（１２０）の記憶領域には、前記第１のＯＳプログラム（Ｐａ）の管理下と前記第２のＯＳプログラム（Ｐｂ）の管理下との双方においてアクセス可能な共有メモリ領域（１２１）が設けられており、
前記外部通信手段（１３０）は、外部装置（２００）から送信されてきた、所定の暗号鍵（Ｋ）を用いて暗号化された暗号化アップデートファイル（Ｆ２）を、前記第１のＯＳプログラム（Ｐａ）の管理下で受信する機能を有し、
前記第１の管理プログラム（Ｍａ）は、前記外部通信手段（１３０）が受信した前記暗号化アップデートファイル（Ｆ２）を前記共有メモリ領域（１２１）に書き込む処理を実行し、
前記第２の管理プログラム（Ｍｂ）は、前記共有メモリ領域（１２１）に書き込まれた前記暗号化アップデートファイル（Ｆ２）を読出し、前記暗号鍵（Ｋ）もしくは前記暗号鍵（Ｋ）に関連する暗号鍵を用いて、前記暗号化アップデートファイル（Ｆ２）を復号することにより復号アップデートファイル（Ｆ３）を生成する復号処理を実行し、生成した前記復号アップデートファイル（Ｆ３）を所定の格納場所に書き込む処理を実行することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
第１の管理プログラム（Ｍａ）は、外部通信手段（１３０）が、第１のＯＳプログラム（Pａ）もしくは第１属性のアプリケーションプログラム（ＡＰ１，ＡＰ２，Ｍａ）に対するアップデート処理を実行するための暗号化アップデートファイル（Ｆ２）を受信したときに、受信した前記暗号化アップデートファイル（Ｆ２）を共有メモリ領域（１２１）に書き込み、
第２の管理プログラム（Ｍｂ）は、前記暗号化アップデートファイル（Ｆ２）を復号することにより復号アップデートファイル（Ｆ３）を生成し、これを所定の格納場所に書き込み、
ＣＰＵ（１１０）が、前記復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを実行することにより、前記第１のＯＳプログラム（Ｐａ）もしくは前記第１属性のアプリケーションプログラム（ＡＰ１，ＡＰ２，Ｍａ）に対するアップデート処理を行うことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
メモリ（１２０）として、揮発性メモリと不揮発性メモリとを内蔵しており、
前記揮発性メモリは、ＣＰＵ（１１０）がプログラムを実行する際の作業領域として利用され、
前記不揮発性メモリには、第１のＯＳプログラム（Ｐａ）と、第２のＯＳプログラム（Ｐｂ）と、第１属性のアプリケーションプログラム（ＡＰ１，ＡＰ２，Ｍａ）と、第２属性のアプリケーションプログラム（Ｍｂ）と、ハイパーバイザープログラム（Ｐｈ）と、が格納されていることを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、
揮発性メモリに共有メモリ領域（１２２）が設けられており、
第１の管理プログラム（Ｍａ）が、暗号化アップデートファイル（Ｆ２）を、前記揮発性メモリ内の共有メモリ領域（１２２）に書き込む処理を実行し、
第２の管理プログラム（Ｍｂ）が、復号アップデートファイル（Ｆ３）を、前記揮発性メモリ内の共有メモリ領域（１２２）に書き込む処理を実行し、
ＣＰＵ（１１０）が、前記揮発性メモリから前記復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
【請求項５】
請求項３に記載の情報処理装置において、
不揮発性メモリに共有メモリ領域（１２３）が設けられており、
第１の管理プログラム（Ｍａ）が、暗号化アップデートファイル（Ｆ２）を、前記不揮発性メモリ内の共有メモリ領域（１２３）に書き込む処理を実行し、
第２の管理プログラム（Ｍｂ）が、復号アップデートファイル（Ｆ３）を、前記不揮発性メモリ内の共有メモリ領域（１２３）に書き込む処理を実行し、
ＣＰＵ（１１０）が、前記不揮発性メモリから前記復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
【請求項６】
請求項３に記載の情報処理装置において、
揮発性メモリと不揮発性メモリとの双方に共有メモリ領域（１２４）が設けられており、
第１の管理プログラム（Ｍａ）が、暗号化アップデートファイル（Ｆ２）を、前記揮発性メモリ内の共有メモリ領域（１２４ａ）に書き込む処理を実行し、
第２の管理プログラム（Ｍｂ）が、復号アップデートファイル（Ｆ３）を、前記不揮発性メモリ内の共有メモリ領域（１２４ｂ）に書き込む処理を実行し、
ＣＰＵ（１１０）が、前記不揮発性メモリから前記復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
【請求項７】
請求項３に記載の情報処理装置において、
揮発性メモリに共有メモリ領域（１２２）が設けられており、
前記情報処理装置は、不揮発性の外部メモリ（４００）を装着して、この外部メモリ（４００）に対して情報の書き込みおよび読み出しを行う機能を有しており、
前記外部メモリ（４００）の少なくとも一部の記憶領域は、第１のＯＳプログラム（Ｐａ）の管理下と第２のＯＳプログラム（Ｐｂ）の管理下との双方においてアクセスが可能な共通アクセス領域（４１０）になっており、
第１の管理プログラム（Ｍａ）が、暗号化アップデートファイル（Ｆ２）を、前記揮発性メモリ内の共有メモリ領域（１２２）に書き込む処理を実行し、
第２の管理プログラム（Ｍｂ）が、復号アップデートファイル（Ｆ３）を、前記外部メモリ（４００）の前記共通アクセス領域（４１０）に書き込む処理を実行し、
ＣＰＵ（１１０）が、前記外部メモリ（４００）の前記共通アクセス領域（４１０）から前記復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
【請求項８】
請求項３に記載の情報処理装置において、
揮発性メモリに共有メモリ領域（１２２）が設けられており、
前記情報処理装置は、不揮発性の外部メモリ（４００）を装着して、第１のＯＳプログラム（Ｐａ）の管理下において前記外部メモリ（４００）に対して情報の書き込みおよび読み出しを行う機能を有しており、
第１の管理プログラム（Ｍａ）が、暗号化アップデートファイル（Ｆ２）を、前記揮発性メモリ内の共有メモリ領域（１２２）に書き込む処理を実行し、
第２の管理プログラム（Ｍｂ）が、復号アップデートファイル（Ｆ３）を、前記揮発性メモリ内の共有メモリ領域（１２２）に書き込む処理を実行し、
第１の管理プログラム（Ｍａ）が、前記揮発性メモリ内の共有メモリ領域（１２２）に書き込まれた復号アップデートファイル（Ｆ３）を読み出した上で、これを前記外部メモリ（４００）に書き込む処理を実行し、
ＣＰＵ（１１０）が、前記外部メモリ（４００）から前記復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことを特徴とする情報処理装置。
【請求項９】
請求項３〜８のいずれかに記載の情報処理装置において、
内蔵された不揮発性メモリには、当該情報処理装置もしくは当該情報処理装置のユーザを特定するための識別情報（ＵＩＤ）が記録されており、
外部通信手段（１３０）は、前記識別情報（ＵＩＤ）を利用して生成された暗号鍵（Ｋ）を用いて暗号化された暗号化アップデートファイル（Ｆ２）を受信する機能を有し、
第２の管理プログラム（Ｍｂ）は、前記識別情報（ＵＩＤ）を利用して生成された暗号鍵（Ｋ′）を用いて暗号化アップデートファイル（Ｆ２）の復号を行うことを特徴とする情報処理装置。
【請求項１０】
請求項３〜９のいずれかに記載の情報処理装置において、
内蔵された不揮発性メモリのメモリ空間には、第１の領域（Ａ１）と第２の領域（Ａ２）とが定義されており、
第１のＯＳプログラム（Ｐａ）および第１属性のアプリケーションプログラム（ＡＰ１，ＡＰ２，Ｍａ）は、前記第１の領域（Ａ１）に対するアクセスのみが可能であり、第２のＯＳプログラム（Ｐｂ）および第２属性のアプリケーションプログラム（Ｍｂ）は、前記第１の領域（Ａ１）および前記第２の領域（Ａ２）の双方に対するアクセスが可能であることを特徴とする情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置において、
第２の管理プログラム（Ｍｂ）が復号処理に用いる暗号鍵（Ｋ′）、もしくは当該暗号鍵の生成に利用される情報（ＵＩＤ）が、不揮発性メモリの第２の領域（Ａ２）に格納されていることを特徴とする情報処理装置。
【請求項１２】
請求項１〜１１のいずれかに記載の情報処理装置において、
第１の管理プログラム（Ｍａ）もしくは第２の管理プログラム（Ｍｂ）が、復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを、情報処理装置が起動時に実行するブート用プログラムを格納するための格納場所に書き込む処理を実行し、
ＣＰＵ（１１０）が、起動時に、前記アップデート用プログラムを実行することにより、アップデート処理を行うことを特徴とする情報処理装置。
【請求項１３】
請求項１〜１１のいずれかに記載の情報処理装置において、
第１の管理プログラム（Ｍａ）もしくは第２の管理プログラム（Ｍｂ）が、復号アップデートファイル（Ｆ３）に含まれているアップデート用プログラムを、第１のＯＳプログラム（Ｐａ）の管理下においてアクセス可能な格納場所に書き込む処理を実行し、
ＣＰＵ（１１０）が、前記第１のＯＳプログラム（Ｐａ）の管理下において、前記アップデート用プログラムを実行することにより、アップデート処理を行うことを特徴とする情報処理装置。
【請求項１４】
請求項１〜１３のいずれかに記載の情報処理装置において、
第１属性のアプリケーションプログラムには、外部装置（２００）との間にＶＰＮ通信路を開設する処理を行うＶＰＮ開設アプリ（ＶＰＮ１）が含まれており、
外部通信手段（１３０）は、暗号化アップデートファイル（Ｆ２）を前記ＶＰＮ通信路を介して受信することを特徴とする情報処理装置。
【請求項１５】
請求項１〜１４のいずれかに記載の情報処理装置において、
第１の管理プログラム（Ｍａ）が第１のＯＳプログラム（Ｐａ）に組み込まれているか、もしくは、第２の管理プログラム（Ｍｂ）が第２のＯＳプログラム（Ｐｂ）に組み込まれているか、または、その双方であることを特徴とする情報処理装置。
【請求項１６】
請求項１〜１４のいずれかに記載の情報処理装置における第１の管理プログラム（Ｍａ）および第２の管理プログラム（Ｍｂ）の双方を含むコンピュータプログラム。
【請求項１７】
請求項１〜１５のいずれかに記載の情報処理装置を含むホームゲートウェイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に、外部装置から入手したアップデートファイルを用いてプログラムのアップデートを行う機能を有する情報処理装置に関する。
【背景技術】
【０００２】
一般的な情報処理装置は、ソフトウェアにより様々な情報処理機能を実現している。通常、情報処理装置には、ＯＳプログラムやアプリケーションプログラムが組み込まれ、また、ファームウェアと呼ばれるハードウェアに密接に結びついたプログラムも組み込まれる。これらのプログラムは、いずれも、アップデートによってその内容を書き換えることができる。したがって、多くの情報処理装置では、必要に応じて、プログラムをアップデートする（プログラムの内容を更新する）ことにより、新機能の追加やバグの修正などが行われている。【０００３】
たとえば、下記の特許文献１には、ホストとなるコンピュータに接続されるファックス、スキャナ、プリンタなどの周辺機器に組み込まれているデバイスドライバやユーティリティソフトのプログラムに対して、コンピュータ側からの指示に基づいてアップデートを行う技術が開示されている。また、特許文献２には、インターネットを介して、複数の情報処理装置に対するアップデートを一括して一斉に行う技術が開示されており、特許文献３には、家庭内に設置された情報処理装置に対して、携帯電話を利用してアップデートの実行指示を与え、インターネットを介した効率的なアップデートを行うシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２９６４６９号公報
【特許文献２】特開２００２−２７８７６６号公報
【特許文献３】特開２０１６−００１３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
インターネット等のネットワーク環境が普及した今日では、情報処理装置に組み込まれているプログラムに対するアップデートは、通常、ネットワークを介して接続された外部装置から、アップデートファイルを入手することによって行われる。具体的には、情報処理装置を外部のアップデートサーバに接続し、このアップデートサーバから情報処理装置に対して、アップデートに必要なアップデートファイルを配信し、これを受信した情報処理装置において、当該アップデートファイルに含まれているアップデート用プログラムを実行することになる。【０００６】
アップデートファイルの配信は、情報処理装置からアップデートサーバに対して配信要求を行うことにより行われる場合（Pull型配信）もあれば、アップデートサーバから自主的に情報処理装置に対して配信する場合（Push型配信）もあるが、いずれの場合も、アップデートサーバから送信されてきたアップデートファイルに基づいて、アップデート処理が行われることに相違はない。したがって、正規のアップデートサーバから送信されてきた正しいアップデートファイルに基づくアップデート処理が行われれば問題ないが、悪意をもった者が設置した偽のアップデートサーバから送信されてきた偽のアップデートファイルに基づくアップデート処理が行われると、セキュリティ上、重大な問題が生じる。【０００７】
最近は、悪意のある者がネットワーク経由で情報処理装置の脆弱性を突いて侵入し、様々な方法でシステムを改竄する危険性が高まっており、正しいサイトから偽のサイトへと誘導されるケースも少なくない。こうして誘導された偽のサイト（偽のアップデートサーバ）から偽のアップデートファイルを取得し、含まれているプログラムを実行してしまうと、情報処理装置のシステムは完全に乗っ取られてしまうおそれがある。【０００８】
今後は、IoT（Internet of Things）の考え方に基づき、家庭内の電子機器をホームゲートウェイ装置を介してインターネットに接続する形態が広まることが予想される。このような家庭用の情報処理装置では、十分なセキュリティ対策を講じることが困難であり、アップデート時にマルウェアに感染する事態が頻発することが危惧される。【０００９】
そこで本発明は、セキュアな環境下でアップデートを行うことが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
(1)   本発明の第１の態様は、ＣＰＵと、メモリと、外部通信手段と、を備えた情報処理装置において、
メモリに、ＣＰＵに実行させる第１のＯＳプログラムおよび第２のＯＳプログラムと、第１のＯＳプログラムの管理下においてＣＰＵに実行させる第１属性のアプリケーションプログラムと、第２のＯＳプログラムの管理下においてＣＰＵに実行させる第２属性のアプリケーションプログラムと、ＣＰＵに第１のＯＳプログラムおよび第２のＯＳプログラムを並列実行させる処理を行うハイパーバイザープログラムと、を格納し、
第１属性のアプリケーションプログラムには、アップデート処理を管理する第１の管理プログラムが含まれ、第２属性のアプリケーションプログラムには、アップデート処理を管理する第２の管理プログラムが含まれるようにし、
メモリの記憶領域には、第１のＯＳプログラムの管理下と第２のＯＳプログラムの管理下との双方においてアクセス可能な共有メモリ領域を設け、
外部通信手段には、外部装置から送信されてきた、所定の暗号鍵を用いて暗号化された暗号化アップデートファイルを、第１のＯＳプログラムの管理下で受信する機能をもたせ、
第１の管理プログラムが、外部通信手段が受信した暗号化アップデートファイルを共有メモリ領域に書き込む処理を実行し、
第２の管理プログラムが、共有メモリ領域に書き込まれた暗号化アップデートファイルを読出し、上記暗号鍵もしくは上記暗号鍵に関連する暗号鍵を用いて、暗号化アップデートファイルを復号することにより復号アップデートファイルを生成する復号処理を実行し、生成した復号アップデートファイルを所定の格納場所に書き込む処理を実行するようにしたものである。【００１１】
(2)   本発明の第２の態様は、上述した第１の態様に係る情報処理装置において、
第１の管理プログラムが、第１のＯＳプログラムもしくは第１属性のアプリケーションプログラムに対するアップデート処理を実行するための暗号化アップデートファイルを外部通信手段が受信したときに、受信した暗号化アップデートファイルを共有メモリ領域に書き込み、
第２の管理プログラムが、暗号化アップデートファイルを復号することにより復号アップデートファイルを生成し、これを所定の格納場所に書き込み、
ＣＰＵが、復号アップデートファイルに含まれているアップデート用プログラムを実行することにより、第１のＯＳプログラムもしくは第１属性のアプリケーションプログラムに対するアップデート処理を行うようにしたものである。【００１２】
(3)   本発明の第３の態様は、上述した第２の態様に係る情報処理装置において、
メモリとして、揮発性メモリと不揮発性メモリとを内蔵しており、
揮発性メモリは、ＣＰＵがプログラムを実行する際の作業領域として利用され、
不揮発性メモリには、第１のＯＳプログラムと、第２のＯＳプログラムと、第１属性のアプリケーションプログラムと、第２属性のアプリケーションプログラムと、ハイパーバイザープログラムと、が格納されているようにしたものである。【００１３】
(4)   本発明の第４の態様は、上述した第３の態様に係る情報処理装置において、
揮発性メモリに共有メモリ領域が設けられており、
第１の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
第２の管理プログラムが、復号アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
ＣＰＵが、揮発性メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。【００１４】
(5)   本発明の第５の態様は、上述した第３の態様に係る情報処理装置において、
不揮発性メモリに共有メモリ領域が設けられており、
第１の管理プログラムが、暗号化アップデートファイルを、不揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
第２の管理プログラムが、復号アップデートファイルを、不揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
ＣＰＵが、不揮発性メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。【００１５】
(6)   本発明の第６の態様は、上述した第３の態様に係る情報処理装置において、
揮発性メモリと不揮発性メモリとの双方に共有メモリ領域が設けられており、
第１の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
第２の管理プログラムが、復号アップデートファイルを、不揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
ＣＰＵが、不揮発性メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。【００１６】
(7)   本発明の第７の態様は、上述した第３の態様に係る情報処理装置において、
揮発性メモリに共有メモリ領域を設け、
情報処理装置には、不揮発性の外部メモリを装着して、この外部メモリに対して情報の書き込みおよび読み出しを行う機能をもたせ、
外部メモリの少なくとも一部の記憶領域は、第１のＯＳプログラムの管理下と第２のＯＳプログラムの管理下との双方においてアクセスが可能な共通アクセス領域になっており、
第１の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
第２の管理プログラムが、復号アップデートファイルを、外部メモリの共通アクセス領域に書き込む処理を実行し、
ＣＰＵが、外部メモリの共通アクセス領域から復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。【００１７】
(8)   本発明の第８の態様は、上述した第３の態様に係る情報処理装置において、
揮発性メモリに共有メモリ領域を設け、
情報処理装置には、不揮発性の外部メモリを装着して、第１のＯＳプログラムの管理下において外部メモリに対して情報の書き込みおよび読み出しを行う機能をもたせ、
第１の管理プログラムが、暗号化アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
第２の管理プログラムが、復号アップデートファイルを、揮発性メモリ内の共有メモリ領域に書き込む処理を実行し、
第１の管理プログラムが、揮発性メモリ内の共有メモリ領域に書き込まれた復号アップデートファイルを読み出した上で、これを外部メモリに書き込む処理を実行し、
ＣＰＵが、外部メモリから復号アップデートファイルに含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うようにしたものである。【００１８】
(9)   本発明の第９の態様は、上述した第３〜第８の態様に係る情報処理装置において、
内蔵された不揮発性メモリには、当該情報処理装置もしくは当該情報処理装置のユーザを特定するための識別情報を記録しておき、
外部通信手段には、上記識別情報を利用して生成された暗号鍵を用いて暗号化された暗号化アップデートファイルを受信する機能をもたせ、
第２の管理プログラムが、上記識別情報を利用して生成された暗号鍵を用いて暗号化アップデートファイルの復号を行うようにしたものである。【００１９】
(10)  本発明の第１０の態様は、上述した第３〜第９の態様に係る情報処理装置において、
内蔵された不揮発性メモリのメモリ空間に、第１の領域と第２の領域とを定義し、
第１のＯＳプログラムおよび第１属性のアプリケーションプログラムは、第１の領域に対するアクセスのみが可能であり、第２のＯＳプログラムおよび第２属性のアプリケーションプログラムは、第１の領域および第２の領域の双方に対するアクセスが可能であるようにしたものである。【００２０】
(11)  本発明の第１１の態様は、上述した第１０の態様に係る情報処理装置において、
第２の管理プログラムが復号処理に用いる暗号鍵、もしくは当該暗号鍵の生成に利用される情報を、不揮発性メモリの第２の領域に格納するようにしたものである。【００２１】
(12)  本発明の第１２の態様は、上述した第１〜第１１の態様に係る情報処理装置において、
第１の管理プログラムもしくは第２の管理プログラムが、復号アップデートファイルに含まれているアップデート用プログラムを、情報処理装置が起動時に実行するブート用プログラムを格納するための格納場所に書き込む処理を実行し、
ＣＰＵが、起動時に、上記アップデート用プログラムを実行することにより、アップデート処理を行うようにしたものである。【００２２】
(13)  本発明の第１３の態様は、上述した第１〜第１１の態様に係る情報処理装置において、
第１の管理プログラムもしくは第２の管理プログラムが、復号アップデートファイルに含まれているアップデート用プログラムを、第１のＯＳプログラムの管理下においてアクセス可能な格納場所に書き込む処理を実行し、
ＣＰＵが、第１のＯＳプログラムの管理下において、アップデート用プログラムを実行することにより、アップデート処理を行うようにしたものである。【００２３】
(14)  本発明の第１４の態様は、上述した第１〜第１３の態様に係る情報処理装置において、
第１属性のアプリケーションプログラムには、外部装置との間にＶＰＮ通信路を開設する処理を行うＶＰＮ開設アプリが含まれており、
外部通信手段が、暗号化アップデートファイルを上記ＶＰＮ通信路を介して受信するようにしたものである。【００２４】
(15)  本発明の第１５の態様は、上述した第１〜第１４の態様に係る情報処理装置において、
第１の管理プログラムが第１のＯＳプログラムに組み込まれているか、もしくは、第２の管理プログラムが第２のＯＳプログラムに組み込まれているか、または、その双方であるようにしたものである。【００２５】
(16)  本発明の第１６の態様は、上述した第１〜第１４の態様に係る情報処理装置における第１の管理プログラムおよび第２の管理プログラムの双方を含むコンピュータプログラムを独立した製品として提供するようにしたものである。【００２６】
(17)  本発明の第１７の態様は、上述した第１〜第１５の態様に係る情報処理装置を含むホームゲートウェイ装置を構成したものである。
【発明の効果】
【００２７】
本発明の情報処理装置によれば、ハイパーバイザープログラムによって、２系統のＯＳプログラムが並列実行される。ここで、第１のＯＳプログラムの管理下では、外部装置から送信されてきた暗号化アップデートファイルが受信され、第２のＯＳプログラムの管理下に引き渡される。そして、第２のＯＳプログラムの管理下において復号され、復号アップデートファイルが作成される。このように、暗号化アップデートファイルの復号は、第１のＯＳプログラムの管理下ではなく、第２のＯＳプログラムの管理下で行われるため、万一、第１のＯＳプログラムの管理下にある実行環境がマルウェアに感染していたとしても、暗号化アップデートファイルの復号処理は、当該マルウェアの影響から逃れることができる。このため、セキュアな環境下でアップデートを行うことが可能になる。
【図面の簡単な説明】
【００２８】
【図１】本発明の基本的な実施形態に係る情報処理装置および外部装置の構成を示すブロック図である。
【図２】図１に示す基本的な実施形態における通信路にＶＰＮ通信路を用いた、より実用的な実施形態の構成を示すブロック図である。
【図３】図２に示す実施形態におけるアップデート処理の手順を示す流れ図である。
【図４】図１もしくは図２に示す実施形態において、アップデートファイルの受け渡しをする方法のいくつかの実施例を示すブロック図である。
【図５】図１もしくは図２に示す実施形態において、アップデートファイルの受け渡しをする方法の更に別な実施例を示すブロック図である。
【図６】図５(b) に示す実施例におけるアップデート処理の手順を示す流れ図である。
【図７】識別情報ＵＩＤを利用して暗号鍵を生成する変形例を示すブロック図である。
【図８】内蔵不揮発性メモリ（フラッシュメモリ）のメモリ空間を示す図である。
【図９】本発明に係る情報処理装置を、ホームゲートウェイ装置として利用した実施例を示すブロック図である。
【発明を実施するための形態】
【００２９】
以下、本発明を図示する実施形態に基づいて説明する。
【００３０】
＜＜＜  §１．  本発明の基本的な実施形態  ＞＞＞
図１は、本発明の基本的な実施形態に係る情報処理装置１００および外部装置２００の構成を示すブロック図である。情報処理装置１００は、たとえば、パソコン、スマートフォン、タブレット端末などの電子機器であり、ＣＰＵがプログラムを実行することにより情報処理機能を果たすことができる装置であれば、どのような装置でもかまわない。もちろん、通常、ユーザの操作対象にはならないホームゲートウェイ装置のような装置でもかまわない（後述する§５参照）。
【００３１】
図示のとおり、情報処理装置１００は、ＣＰＵ１１０と、メモリ１２０と、外部通信手段１３０とを備えている。もちろん、この他にも必要に応じて、ディスプレイ装置，キーボードやマウスなどの入力機器，各種センサなどを備えているケースもあるが、ここでは、本発明の構成に直接関連する構成要素のみを示す。
【００３２】
内蔵するメモリ１２０には、ＣＰＵ１１０に実行させる第１のＯＳプログラムＰａおよび第２のＯＳプログラムＰｂと、第１のＯＳプログラムＰａの管理下においてＣＰＵ１１０に実行させる第１属性のアプリケーションプログラムＡＰ１，ＡＰ２，Ｍａと、第２のＯＳプログラムの管理下においてＣＰＵ１１０に実行させる第２属性のアプリケーションプログラムＭｂと、ＣＰＵ１１０に第１のＯＳプログラムＰａおよび第２のＯＳプログラムＰｂを並列実行させる処理を行うハイパーバイザープログラムＰｈと、が格納されている。
【００３３】
ＣＰＵを内蔵した一般的な情報処理装置は、特定のＯＳプログラムの管理下で、種々のアプリケーションプログラムを実行することにより、様々な処理機能を果たすことができる。通常、１台の情報処理装置には、１組のＯＳプログラムと、当該ＯＳプログラムの管理下で動作するアプリケーションプログラムとが組み込まれることが多いが、複数のＯＳプログラムを組み込んで用いる工夫がなされる場合もある。たとえば、パソコンでは、予め２組のＯＳプログラムを組み込んでおき、起動時にいずれか一方を選択してブートする方式や、第１のＯＳプログラムの動作環境下に仮想マシンを構築し、第２のＯＳプログラムの動作をエミュレートする方式などが実用化されている。
【００３４】
ハイパーバイザープログラムＰｈも、１台の情報処理装置において複数のＯＳプログラムを動作させるために用意されたプログラムであり、ハードウェア上で直接動作する機能を有し、複数のＯＳプログラムをゲストＯＳとして並列動作させることができる。図１に示す例の場合、第１のＯＳプログラムＰａおよび第２のＯＳプログラムＰｂは、いずれもハイパーバイザープログラムＰｈのゲストＯＳとしてインストールされており、ハイパーバイザープログラムＰｈの管理下において、両ＯＳプログラムＰａ，Ｐｂを同時に起動状態にしておくことが可能になる。
【００３５】
本発明に用いるハイパーバイザープログラムＰｈは、ＣＰＵ１１０に、第１のＯＳプログラムＰａおよび第２のＯＳプログラムＰｂを並列実行させる処理を行う機能をもったプログラムであれば、どのようなプログラムであってもかまわない。そのようなプログラムとしては、たとえば、株式会社SELTECH社（東京都渋谷区）から「FOXvisor」なる製品が販売されている（当該製品では、ハイパーバイザープログラムＰｈは、ＣＰＵ１１０と同一のチップに組み込まれている）。
【００３６】
前述したとおり、第１属性のアプリケーションプログラムＡＰ１，ＡＰ２，Ｍａは、第１のＯＳプログラムＰａの管理下で動作するプログラムであり、第２属性のアプリケーションプログラムＭｂは、第２のＯＳプログラムＰｂの管理下で動作するプログラムである。
【００３７】
図１に示す例では、第１属性のアプリケーションプログラムとして、アプリＡＰ１，ＡＰ２がインストールされている例が示されている。これらアプリＡＰ１，ＡＰ２は、この情報処理装置１００に、本来の情報処理機能を実施させるためにインストールされたプログラムである。実用上は、より多数のアプリケーションプログラムがインストールされるが、ここでは、説明の便宜上、２組のアプリＡＰ１，ＡＰ２のみがインストールされている例を示す。
【００３８】
一方、第１属性のアプリケーションプログラムには、アプリＡＰ１，ＡＰ２の他に、第１の管理プログラムＭａが含まれており、第２属性のアプリケーションプログラムには、第２の管理プログラムＭｂが含まれている。これら管理プログラムＭａ，Ｍｂは、本発明においてセキュアなアップデート処理を実行するために組み込まれた専用のアプリケーションプログラムである。ここに示す実施例の場合、第２属性のアプリケーションプログラムは、第２の管理プログラムＭｂのみによって構成されている。
【００３９】
この図１に示す情報処理装置１００において、ハイパーバイザープログラムＰｈ、第１の管理プログラムＭａ、第２のＯＳプログラムＰｂ、第２属性のアプリ（すなわち、第２の管理プログラムＭｂ）は、セキュアなアップデート処理を実行する目的のために組み込まれた付加プログラムであり、本発明に係るセキュアなアップデート処理を実行する必要がない場合には、そもそもこれらの付加プログラムを組み込む必要はない。別言すれば、この情報処理装置１００の本来の機能は、第１のＯＳプログラムＰａと第１属性のアプリＡＰ１，ＡＰ２とによって果たすことができ、上記付加プログラムは、第１のＯＳプログラムＰａや第１属性のアプリＡＰ１，ＡＰ２に対するアップデート処理をセキュアな環境下で行うために導入されたプログラムと言うことができる。
【００４０】
本発明を実施する上では、図示のとおり、メモリ１２０の記憶領域に共有メモリ領域１２１を設定しておく必要がある。この共有メモリ領域１２１は、第１のＯＳプログラムＰａの管理下と第２のＯＳプログラムＰｂの管理下との双方においてアクセス可能な領域である。したがって、第１のＯＳプログラムＰａの管理下で動作する第１の管理プログラムＭａによって共有メモリ領域１２１をアクセスすることも可能であるし、第２のＯＳプログラムＰｂの管理下で動作する第２の管理プログラムＭｂによって共有メモリ領域１２１をアクセスすることも可能である。このような共有メモリ領域１２１を設定する理由は、後述するように、第１の管理プログラムＭａと第２の管理プログラムＭｂとの間でデータの受け渡しを行うためである。
【００４１】
ハイパーバイザープログラムＰｈは、第１のＯＳプログラムＰａと第２のＯＳプログラムＰｂとの双方を管理下におき、両ＯＳプログラムの並列動作を制御する機能を有している。したがって、共有メモリ領域１２１は、このハイパーバイザープログラムＰｈの機能によって設定することができる。
【００４２】
一方、外部通信手段１３０は、この情報処理装置１００の外部に設けられた何らかの装置と通信を行う装置である。図１では、本発明に係る固有のアップデート処理を説明する便宜上、外部装置２００としてのアップデートサーバに対する通信を行う例が示されている。アップデートサーバ２００は、情報処理装置１００内の第１のＯＳプログラムＰａやアプリケーションプログラムＡＰ１，ＡＰ２についてアップデート処理（プログラムの更新処理）を行うために必要なアップデートファイルＦ１を配信する役割を果たす。アップデートファイルＦ１内には、アップデート用プログラムが含まれており、このアップデート用プログラムをＣＰＵ１１０に実行させることにより、所望のアップデート処理が行われる。
【００４３】
アップデートサーバ２００から情報処理装置１００に対するアップデートファイルＦ１の配信は、情報処理装置１００からアップデートサーバ２００に対して配信要求を行う形式（Pull型配信）で行ってもよいし、アップデートサーバ２００から自主的に情報処理装置１００に対して配信する形式（Push型配信）で行ってもよい。情報処理装置１００側で、アップデートファイルＦ１を受信する処理は、第１の管理プログラムＭａによって行われる。
【００４４】
ここで重要な点は、アップデートファイルＦ１は、そのままの形態ではなく、暗号化して送信される点である。図示のとおり、アップデートサーバ２００内には、所定の暗号鍵Ｋが用意されており、この暗号鍵Ｋを用いて、アップデートファイルＦ１を暗号化し、暗号化アップデートファイルＦ２を生成する処理が行われる。実用上は、ＡＥＳ（Advanced Encryption Standard）などの堅固な暗号方式を用いて暗号化を行うのが好ましい。アップデートサーバ２００から情報処理装置１００に対しては、この暗号化アップデートファイルＦ２が送信される。
【００４５】
こうして送信されてきた暗号化アップデートファイルＦ２は、情報処理装置１００の外部通信手段１３０によって受信される。この受信処理は、上述したように、第１の管理プログラムＭａによって行われる。第１の管理プログラムＭａは、外部通信手段１３０が受信した暗号化アップデートファイルＦ２を共有メモリ領域１２１に書き込む処理を実行する。図１に示す矢印は、このような暗号化アップデートファイルＦ２の流れを示している。
【００４６】
なお、暗号化アップデートファイルＦ２の受信処理は、必ずしも第１の管理プログラムＭａに担わせる必要はなく、第１属性の任意のアプリケーションプログラムに担わせてもよい。たとえば、アプリＡＰ１がＷｅｂブラウザであった場合は、このＷｅｂブラウザの機能により、アップデートサーバ２００に配信要求を出し、送信されてきた暗号化アップデートファイルＦ２を受信することが可能である。いずれの場合も、外部通信手段１３０は、外部装置２００から送信されてきた、所定の暗号鍵Ｋを用いて暗号化された暗号化アップデートファイルＦ２を、第１のＯＳプログラムＰａの管理下で受信することになる。そして、受信した暗号化アップデートファイルＦ２は、第１のＯＳプログラムＰａの管理下で動作する第１の管理プログラムＭａによって、共有メモリ領域１２１に書き込まれる。したがって、ここまでの処理は、すべて第１のＯＳプログラムＰａの管理下で実行されることになる。
【００４７】
続いて、ハイパーバイザープログラムＰｈの機能により、システムの管理が第２のＯＳプログラムＰｂに切り替えられる。そして、第２のＯＳプログラムＰｂの管理下で動作する第２の管理プログラムＭｂによって、共有メモリ領域１２１に書き込まれていた暗号化アップデートファイルＦ２が読出される。第２の管理プログラムＭｂは、読み出した暗号化アップデートファイルを暗号鍵Ｋ′を用いて復号する機能を有しており、復号アップデートファイルＦ３を生成する復号処理を実行し、更に、生成した復号アップデートファイルＦ３を所定の格納場所に書き込む処理を実行する。
【００４８】
図１に示す矢印は、このような暗号化アップデートファイルＦ２および復号アップデートファイルＦ３の流れを示している。なお、図１では、便宜上、復号アップデートファイルＦ３の書き込み先が、情報処理装置１００の外部になるように描かれているが、復号アップデートファイルＦ３の書き込み先は、情報処理装置１００の内部であっても外部であってもかまわない。この書き込み先についての詳細は、後の§３において詳述する。
【００４９】
ここで、第２の管理プログラムＭｂによって実行される復号処理に用いられる暗号鍵Ｋ′を、アップデートサーバ２００における暗号化に用いられた暗号鍵Ｋと同一の鍵にしておき、暗号化処理と逆のプロセスを行えば、元のアップデートファイルＦ１と同じ内容の復号アップデートファイルＦ３が得られ、正しい復号が行われることになる。そこで、この復号アップデートファイルＦ３に含まれているアップデート用プログラムをＣＰＵ１１０に実行させれば、所望のアップデート処理を行うことができる。
【００５０】
もっとも、第２の管理プログラムＭｂによって実行される復号処理に用いる暗号鍵Ｋ′は、必ずしもアップデートサーバ２００側での暗号化処理に用いた暗号鍵Ｋと同一である必要はなく、正しい復号が可能となるような特定の関係をもった鍵であればよい。たとえば、公開鍵暗号方式では特定の関係をもった一対の鍵が用いられ、一方の鍵で暗号化したものを、他方の鍵で正しく復号することができる。したがって、アップデートサーバ２００側で、公開鍵暗号方式に基づく暗号化処理を実行した場合、暗号化に用いる暗号鍵Ｋと復号に用いる暗号鍵Ｋ′とは、公開鍵暗号方式における一対の対応鍵の関係をもっていればよい。
【００５１】
要するに、第２の管理プログラムＭｂは、アップデートサーバ２００側での暗号化処理に用いる暗号鍵、もしくは、当該暗号鍵に関連する所定の暗号鍵を用いて復号処理を行えばよい。図１に示す破線は、このような一対の暗号鍵が特定の関連性を有していることを示すものである。
【００５２】
なお、第２の管理プログラムＭｂの格納場所や、第２の管理プログラムＭｂが復号処理に利用する暗号鍵Ｋ′の格納場所は、図示の例のように、共有メモリ領域１２１以外の領域、すなわち、第２のＯＳプログラムの管理下でのみアクセス可能な領域（第１のＯＳプログラムの管理下ではアクセスできないセキュアな領域）に格納しておくようにするのが好ましい。そうすれば、第１のＯＳプログラムＰａの管理下にある領域がマルウェアに感染したとしても、第２の管理プログラムＭｂや暗号鍵Ｋ′をセキュアな状態に保つことができる。
【００５３】
本発明に係る情報処理装置１００の重要な特徴は、ハイパーバイザープログラムＰｈを組み込むことにより、第１のＯＳプログラムＰａと第２のＯＳプログラムＰｂとを並列実行させる環境を構築した点にある。そのため、通常は、第１のＯＳプログラムＰａの管理下で第１属性のアプリケーションプログラムＡＰ１，ＡＰ２を実行させ、情報処理装置１００としての本来の機能を果たさせることができる。一方、第１のＯＳプログラムＰａや第１属性のアプリケーションプログラムＡＰ１，ＡＰ２に対してアップデート処理を行う必要が生じたときには、第２のＯＳプログラムＰｂの管理下で第２の管理プログラムＭｂを実行させ、暗号化アップデートファイルＦ２の復号処理を行うことができる。
【００５４】
情報処理装置１００が第１のＯＳプログラムＰａの管理下で通常の処理（アップデート処理以外の処理）を行っている状態では、外部通信手段１３０により、外部の様々な装置と通信を行うため、マルウェアに感染する可能性がある。もちろん、図示の例の場合も、アップデートサーバ２００が偽物であった場合、外部通信手段１３０が受信するファイルＦ２は偽のファイルということになる。このように、第１のＯＳプログラムＰａの管理下でマルウェアに感染したとしても、その影響が、異なるＯＳである第２のＯＳプログラムＰｂの実行環境に及ぶ可能性は低い。
【００５５】
すなわち、両ＯＳプログラムＰａ，Ｐｂ間では、共有メモリ領域１２１を介してデータの受け渡しが行われるものの、各ＯＳプログラムの実行環境は完全に独立しているため、第１のＯＳプログラムＰａの実行環境下に寄生したマルウェアが第２のＯＳプログラムＰｂの実行環境下に何らかの影響を及ぼす可能性は非常に低い。また、異なるＯＳプログラムでは、異なるプログラムコードが用いられるため、第１のＯＳプログラムＰａ用に作成されたマルウェアは、通常、第２のＯＳプログラムＰｂに害を及ぼすことはできない。
【００５６】
したがって、情報処理装置１００の通常の処理を第１のＯＳプログラムＰａの管理下で行い、アップデート処理を行うときにのみ第２のＯＳプログラムＰｂの管理下に切り替える、という運用を採用すれば、第２のＯＳプログラムＰｂの実行環境は、極めてセキュアな状態に維持されることになる。本発明の特徴は、このように、第２のＯＳプログラムＰｂの実行環境がセキュアな状態に保たれることを利用して、外部装置２００から送信されてきた暗号化アップデートファイルＦ２の復号処理を、このセキュアな第２のＯＳプログラムＰｂの実行環境で実行することにより、セキュアな環境下でのアップデートを実現する点にある。
【００５７】
具体的には、第１のＯＳプログラムＰａもしくは第１属性のアプリケーションプログラムＡＰ１，ＡＰ２に対するアップデート処理が必要になった場合、まず、外部装置２００（アップデートサーバ）側で、アップデート処理に必要なアップデートファイルＦ１（アップデート処理を実行するプログラムを含むファイル）を暗号化して暗号化アップデートファイルＦ２を作成し、これを情報処理装置１００に送信する。一方、情報処理装置１００側では、この暗号化アップデートファイルＦ２を第１のＯＳプログラムＰａの管理下で受信し、第１の管理プログラムＭａによって、受信した暗号化アップデートファイルＦ２を共有メモリ領域１２１に書き込む処理を行う。
【００５８】
第１の管理プログラムＭａと第２の管理プログラムＭｂとは、ハイパーバイザープログラムＰｈを介して信号のやりとりを行うことができるので、第１の管理プログラムＭａにより暗号化アップデートファイルＦ２を共有メモリ領域１２１へ書き込む処理が完了したら、その旨を第２の管理プログラムＭｂに通知することができる。当該通知は、第２の管理プログラムＭｂに対する「復号処理要求」として機能し、第２の管理プログラムＭｂは、当該通知を受け取った後、共有メモリ領域１２１に書き込まれている暗号化アップデートファイルＦ２を読み出し、暗号鍵Ｋ′を用いた復号処理を行って復号アップデートファイルＦ３を生成し、これを所定の格納場所に書き込む処理を行うことになる。
【００５９】
第２の管理プログラムＭｂが復号処理に成功した場合、ＣＰＵ１１０は、この復号アップデートファイルＦ３に含まれているアップデート用プログラムを実行することにより、第１属性のアプリケーションプログラムＡＰ１，ＡＰ２もしくは第１のＯＳプログラムＰａに対するアップデート処理を、第１のＯＳプログラムＰａの管理下もしくはブートプロセスで実行する。
【００６０】
そのため、第２の管理プログラムＭｂは、復号アップデートファイルＦ３の書き込みが完了したら、その旨をハイパーバイザープログラムＰｈを介して第１の管理プログラムＭａに通知する。当該通知は、第１の管理プログラムＭａに対する「復号処理完了報告」として機能し、当該通知を受けた第１の管理プログラムＭａは、第１のＯＳプログラムＰａの管理下もしくはブートプロセスで、所定の格納場所に書き込まれた復号アップデートファイルＦ３（元のアップデートファイルＦ１と同じ内容）を用いたアップデート処理が実行されるよう必要な処理を実行する。
【００６１】
たとえば、ディスプレイ画面上に「アップデートの準備が完了しました。アップデート用プログラムを実行して下さい。」のようなメッセージを表示させて、ユーザにアップデート用プログラムの実行を促すような処理を行ってもよい（第１属性のアプリケーションプログラムＡＰ１やＡＰ２についてのアップデートを行う場合）。あるいは、「アップデートの準備が完了しました。装置を再起動して下さい。」のようなメッセージを表示させて、ユーザに再起動を促すような処理を行い、ブートプロセスが実行されるようにしてもよい（第１のＯＳプログラムＰａについてのアップデートを行う場合）。もちろん、ユーザの確認操作を待たずに、復号アップデートファイルＦ３に含まれているアップデート用プログラムの実行やブートプロセスを自動的に行うようにしてもよい。
【００６２】
なお、第２の管理プログラムＭｂが復号処理に失敗した場合は、その旨をハイパーバイザープログラムＰｈを介して第１の管理プログラムＭａに報告する。第１の管理プログラムＭａは、何らかのエラー処理（たとえば、ユーザに対して、アップデートに失敗した旨を提示する処理）を行うことになり、アップデート処理は中止される。
【００６３】
結局、本発明に係る情報処理装置１００の場合、外部装置２００からの暗号化アップデートファイルＦ２の入手は、第１のＯＳプログラムＰａの管理下で行うが、暗号化アップデートファイルＦ２の復号処理は、第２のＯＳプログラムＰｂに引き渡した後、第２のＯＳプログラムＰｂの管理下のセキュアな環境で行うことになる。そして、この復号処理によって得られた復号アップデートファイルＦ３を用いたアップデート処理は、第１のＯＳプログラムＰａの管理下もしくはブートプロセスで行う、という手順が踏まれる。
【００６４】
このように、暗号化アップデートファイルＦ２の復号処理を、第２のＯＳプログラムＰｂの管理下で行う（別言すれば、第２のＯＳプログラムＰｂの管理下で動作する第２の管理プログラムＭｂによって行う）ことは、アップデート処理の安全性を確保する上で非常に重要である。前述したとおり、この情報処理装置１００は、第１のＯＳプログラムＰａの管理下で第１属性のアプリケーションプログラムＡＰ１，ＡＰ２を実行させることにより本来の機能を果たす。このため、第１のＯＳプログラムＰａの実行環境はマルウェアに感染するおそれがあり、ノンセキュアな領域に置かれていることになる。これに対して、第２のＯＳプログラムＰｂの実行環境はマルウェアに感染する可能性が極めて低く、セキュアな領域に置かれていることになる。本発明では、暗号化アップデートファイルＦ２の復号処理が、このセキュアな領域で実行されるため、マルウェアの影響を極力回避することが可能になる。
【００６５】
本発明に固有の作用効果は、ノンセキュアな領域（第１のＯＳプログラムＰａの管理下）で復号処理を行った場合の危険性を考えれば、容易に理解できよう。たとえば、第１のＯＳプログラムＰａの実行環境がマルウェアに感染している状態で、当該第１のＯＳプログラムＰａの管理下で復号処理を行った場合、たとえ受信した暗号化アップデートファイルＦ２が正規のファイルであったとしても、復号処理で得られる復号アップデートファイルＦ３が正規のファイルであることは保証できない。したがって、当該復号アップデートファイルＦ３に含まれているアップデート用プログラムを実行することは非常に危険である。
【００６６】
本発明に係る情報処理装置１００では、復号処理は、セキュアな環境にある第２のＯＳプログラムＰｂの管理下で行われるため、暗号化アップデートファイルＦ２が正規のファイルであれば、復号処理で得られる復号アップデートファイルＦ３も正規のファイルになる。したがって、当該復号アップデートファイルＦ３に含まれているアップデート用プログラムを実行すること自体には、何ら危険性はない。
【００６７】
また、受信した暗号化アップデートファイルが偽のファイルであった場合にも、本発明は危険を回避する作用効果を奏することができる。たとえば、正規のアップデートサーバ２００の正規サイトにアクセスしているつもりであっても、第１のＯＳプログラムＰａの実行環境がマルウェアに感染していると、偽のサイトに誘導されてしまうことがある。この場合、外部通信手段１３０が受信する暗号化アップデートファイルＦ２（false）は偽のファイルということになる。
【００６８】
この場合、復号処理に用いる暗号鍵Ｋ′が秘密状態に維持されている限り、このような偽の暗号化アップデートファイルＦ２（false）は復号に失敗するので、偽のアップデート用プログラムが実行されてしまうことを未然に防ぐことができる。ところが、第１のＯＳプログラムＰａの実行環境がマルウェアに感染していると、第１のＯＳプログラムＰａの管理下に格納されている暗号鍵Ｋ′は漏洩する危険性があり、悪意をもった者は、この漏洩した暗号鍵Ｋ′によって正しく復号することができる偽の暗号化アップデートファイルＦ２（false）を作成することが可能になる。この場合、偽のアップデート用プログラムが実行されてしまうことになる。
【００６９】
本発明に係る情報処理装置１００では、復号処理は、セキュアな環境にある第２のＯＳプログラムＰｂの管理下で行われるため、たとえ第１のＯＳプログラムＰａの実行環境がマルウェアに感染していたとしても、当該マルウェアの影響を受けることがない。したがって、暗号鍵Ｋ′を、図示の例のように、共有メモリ領域１２１以外の領域、すなわち、第２のＯＳプログラムの管理下でのみアクセス可能な領域（第１のＯＳプログラムの管理下ではアクセスできないセキュアな領域）に格納しておけば、マルウェアの影響を受けて外部に漏洩することを防ぐことができる。
【００７０】
このように、本発明に係る情報処理装置１００では、ハイパーバイザープログラムＰｈを利用して、本来の機能実行に必要な第１のＯＳプログラムＰａの他に、アップデート処理時に利用する第２のＯＳプログラムＰｂを組み込んでセキュアな実行環境を構築し、このセキュアな実行環境で暗号化アップデートファイルＦ２の復号処理を行うようにしたため、従来装置に比べて、偽のアップデート用プログラムが実行される危険性を低減することができ、セキュアな環境下でのアップデートが可能になる。
【００７１】
なお、図１に示す実施例では、第２属性のアプリケーションプログラムとして、第２の管理プログラムＭｂのみがインストールされているが、必要に応じて、別なアプリケーションプログラムを第２属性のアプリケーションプログラムとしてインストールして利用するようにしてもかまわない。ただ、第２属性のアプリケーションプログラムの数や種類が増えれば増えるほど、第２のＯＳプログラムＰｂの実行環境がマルウェアに感染する可能性も高まるので、実用上は、第２属性のアプリケーションプログラムとしては、図示の実施例のように、第２の管理プログラムＭｂなど、必要最低限のプログラムをインストールするのが好ましい。
【００７２】
結局、図１の実施例に係る情報処理装置１００は、第１のＯＳプログラムＰａの下で第１属性のアプリケーションプログラムＡＰ１，ＡＰ２等を実行する従来装置に、ハイパーバイザープログラムＰｈを利用して第２のＯＳプログラムＰｂを組み込むようにし、上述した機能を有する第１の管理プログラムＭａおよび第２の管理プログラムＭｂをインストールすることにより実現することができる。各ＯＳプログラムＰａ，ＰｂやハイパーバイザープログラムＰｈとしては、市販のプログラムを利用することができるので、実用上は、第１の管理プログラムＭａおよび第２の管理プログラムＭｂを用意すれば、本発明の実施が可能である。
【００７３】
また、図１に示す実施例では、第１の管理プログラムＭａおよび第２の管理プログラムＭｂを、各ＯＳプログラムＰａ，Ｐｂとは別個独立したプログラムとして用意しているが、第１の管理プログラムＰａを、第１のＯＳプログラムＰａに組み込むことにより、第１のＯＳプログラムＰａの一機能として用意することもできるし、同様に、第２の管理プログラムＰｂを、第２のＯＳプログラムＰｂに組み込むことにより、第２のＯＳプログラムＰｂの一機能として用意することもできる。
【００７４】
＜＜＜  §２．  本発明の実用的な実施形態  ＞＞＞
ここでは、本発明のより実用的な実施形態を述べる。図２は、図１に示す基本的な実施形態における情報処理装置１００と外部装置２００との間の通信路として、ＶＰＮ（Virtual Private Network）通信路を用いた、より実用的な実施形態の構成を示すブロック図である。
【００７５】
図２に示すシステムの基本構成は、図１に示すシステムの基本構成とほぼ同じであるが、外部装置２００から情報処理装置１００への暗号化アップデートファイルＦ２の送信が、ＶＰＮ通信路を介して行われる点が異なる。そのため、情報処理装置１００側では、第１属性のアプリケーションプログラムとして、外部装置２００との間にＶＰＮ通信路を開設する処理を行うＶＰＮ開設アプリＶＰＮ１が用意されており（図１に示すアプリＡＰ２として、ＶＰＮ開設アプリＶＰＮ１が用意されている）、外部装置側では、同様にＶＰＮ通信路を開設する処理を行うＶＰＮ開設アプリＶＰＮ２が用意されている。更に、このＶＰＮ通信路を管理運用するためのＶＰＮサーバ３００が設けられている。したがって、図示のＶＰＮ通信路は、ＶＰＮサーバ３００とＶＰＮ開設アプリＶＰＮ１，ＶＰＮ２の協働作業により構築され、外部通信手段１３０は、暗号化アップデートファイルＦ２をこのＶＰＮ通信路を介して受信することになる。
【００７６】
§１で述べたとおり、暗号化アップデートファイルＦ２は暗号化されたファイルであり、悪意をもった者による攻撃によって通信中に改竄を受けるリスクは低減されているが、通信路自体をＶＰＮ通信路とすることにより、そのリスクを更に低減し、安全な受け渡しを行うことができるようになる。このようなＶＰＮの構築方法やＶＰＮサーバ３００の機能については、既に公知の技術であるため、ここでは詳しい説明は省略する。
【００７７】
図３は、図２に示す実施形態において、外部装置２００（アップデートサーバ）内に用意されているアップデートファイルＦ１を用いて、情報処理装置１００内にインストールされている第１のＯＳプログラムＰａもしくは第１属性のアプリケーションプログラムＡＰ１，ＶＰＮ１等に対するアップデート処理を行う手順を示す流れ図である。各手順を示すブロックの右側に付記された括弧書きの符号は、当該ブロック内の手順実施に関与する構成要素を示している。
【００７８】
まず、ステップＳ１において、ＶＰＮサーバ３００による認証処理が実行される。この処理は、情報処理装置１００と外部装置２００との間にＶＰＮ通信路を開設するための準備段階の処理である。ＶＰＮ通信路の開設にあたっては、ＶＰＮサーバ３００がサーバ装置、情報処理装置１００および外部装置２００がそれぞれクライアント装置という関係になり、ステップＳ１の処理は、ＶＰＮサーバ３００が、そのクライアント装置である情報処理装置１００および外部装置２００ならびにそのユーザを正規のものとして認証する処理と言うことができる。
【００７９】
具体的には、情報処理装置１００内にＶＰＮ開設アプリＶＰＮ１用のデータとして用意されているデバイス証明書Ｄ１，クライアント証明書Ｃ１，クライアント秘密鍵Ｋ１を用いることにより、ＶＰＮサーバ３００が情報処理装置１００およびそのユーザを正規のものとして認証し、同様に、外部装置２００内にＶＰＮ開設アプリＶＰＮ２用のデータとして用意されているデバイス証明書Ｄ２，クライアント証明書Ｃ２，クライアント秘密鍵Ｋ２を用いることにより、ＶＰＮサーバ３００が外部装置２００およびそのユーザを正規のものとして認証する処理が行われる。
【００８０】
こうして、ＶＰＮサーバ３００による認証処理が完了すると、続くステップＳ２において、図２に示すように、情報処理装置１００と外部装置２００との間にＶＰＮ通信路を開設する処理が行われる。ＶＰＮサーバ３００は、当該ＶＰＮ通信路を管理する役割を果たす。
【００８１】
次のステップＳ３では、外部装置２００側において、情報処理装置１００に送信するためのアップデートファイルＦ１を暗号化する処理が行われる。図２には、暗号鍵Ｋを用いた暗号化処理によってアップデートファイルＦ１を暗号化することにより暗号化アップデートファイルＦ２を生成する例が示されている。この暗号化アップデートファイルＦ２は、続くステップＳ４において、ステップＳ２で開設されたＶＰＮ通信路を介して送信され、情報処理装置１００によって受信される。このようにＶＰＮ通信路を介した送受信により、暗号化アップデートファイルＦ２の安全な受け渡しが可能になる。
【００８２】
そして、ステップＳ５では、情報処理装置１００内の第１の管理プログラムＭａによって、受信した暗号化アップデートファイルＦ２を共有メモリ領域１２１に書き込む処理が行われ、続くステップＳ６では、第２の管理プログラムＭｂによって、暗号化アップデートファイルＦ２を共有メモリ領域１２１から読み出し、これを暗号鍵Ｋ′を用いて復号する復号処理が行われる。この復号処理によって得られた復号アップデートファイルＦ３は、ステップＳ７において、所定の格納場所に書き込まれる。最後のステップＳ８では、ＣＰＵ１１０によって、当該格納場所に書き込まれている復号アップデートファイルＦ３が実行され、目的となるアップデート処理が完了する。
【００８３】
§１で述べたとおり、ステップＳ４，Ｓ５の処理が第１のＯＳプログラムＰａの管理下で行われるのに対して、ステップＳ６，Ｓ７の処理は、よりセキュアな第２のＯＳプログラムＰｂの管理下で行われることになる。なお、ステップＳ５で用いる共有メモリ領域１２１の配置場所、ステップＳ７における復号アップデートファイルＦ３の格納場所や、ステップＳ８におけるアップデート処理の具体的な手順については、以下の§３において具体例を挙げながら説明する。
【００８４】
＜＜＜  §３．  各アップデートファイルの受け渡し方法  ＞＞＞
図１および図２に示す実施形態では、外部通信手段１３０が受信した暗号化アップデートファイルＦ２を共有メモリ領域１２１を介して受け渡し、復号処理によって得られた復号アップデートファイルＦ３を所定の格納場所へ書き込んだ後、これを実行してアップデート処理を行うことになる。ここでは、暗号化アップデートファイルＦ２の受け渡しに利用される共有メモリ領域１２１や、復号アップデートファイルＦ３の書き込み先となる所定の格納場所について、いくつかの実施例を示しながら、これらアップデートファイルＦ２，Ｆ３の具体的な受け渡し方法を説明する。
【００８５】
一般的な情報処理装置には、揮発性メモリと不揮発性メモリとが併用されている。ここで揮発性メモリは、通常、ＲＡＭによって構成され、ＣＰＵがプログラムを実行する際の作業領域として利用される。一方、不揮発性メモリは、フラッシュメモリ等によって構成され、プログラムやデータの格納領域として利用される。
【００８６】
図１および図２に示す実施形態におけるメモリ１２０も、実際には、揮発性メモリ（ＲＡＭ）と不揮発性メモリ（フラッシュメモリ）とを内蔵している。揮発性メモリ（ＲＡＭ）は、ＣＰＵ１１０が種々のプログラムを実行する際の作業領域として利用され、不揮発性メモリ（フラッシュメモリ）は、第１のＯＳプログラムＰａ、第２のＯＳプログラムＰｂ、第１属性のアプリケーションプログラムＡＰ１，ＡＰ２，Ｍａ、第２属性のアプリケーションプログラムＭｂ、ハイパーバイザープログラムＰｈ、を格納する格納領域として利用される。
【００８７】
ここで、共有メモリ領域１２１は、揮発性メモリ（ＲＡＭ）の領域に設けることもできるし、不揮発性メモリ（フラッシュメモリ）の領域に設けることもできる。同様に、復号アップデートファイルＦ３を書き込む格納場所も、揮発性メモリ（ＲＡＭ）の領域に設けることもできるし、不揮発性メモリの領域（フラッシュメモリ）に設けることもできる。以下、メモリ１２０の具体的な利用形態について、いくつかの実施例を述べることにする。
【００８８】
図４は、図１もしくは図２に示す実施形態において、アップデートファイルの受け渡しをする方法のいくつかの実施例を示すブロック図である。いずれの実施例も、情報処理装置１００の内蔵メモリ１２０を用いて、暗号化アップデートファイルＦ２および復号アップデートファイルＦ３の受け渡し（第１のＯＳプログラムＰａの管理下と第２のＯＳプログラムＰｂの管理下との間の受け渡し）が行われる。
【００８９】
図４(a) は、メモリ１２０の揮発性メモリ（ＲＡＭ）内に共有メモリ領域１２２を設け、更に、この共有メモリ領域１２２を、復号アップデートファイルＦ３を書き込む格納場所として利用した例を示すブロック図である。この実施例の場合、図３におけるステップＳ５において、第１の管理プログラムＭａは、受信した暗号化アップデートファイルＦ２を、この揮発性メモリ内の共有メモリ領域１２２に書き込む処理を実行する。そしてステップＳ６では、第２の管理プログラムＭｂが、共有メモリ領域１２２から暗号化アップデートファイルＦ２を読み出して復号し、続くステップＳ７では、第２の管理プログラムＭｂが、得られた復号アップデートファイルＦ３を、揮発性メモリ内の共有メモリ領域１２２に書き込む処理を実行する。
【００９０】
アップデート処理に用いる復号アップデートファイルＦ３は、揮発性メモリ内の共有メモリ領域１２２に書き込まれているので、ＣＰＵ１１０は、この揮発性メモリから、復号アップデートファイルＦ３に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共有メモリ領域１２２は、揮発性メモリ（ＲＡＭ）内の領域であるため、情報処理装置１００の電源がＯＦＦにされたり、再起動によって揮発性メモリの内容が初期化されたりすると、そこに書き込まれていた復号アップデートファイルＦ３は失われてしまうため、アップデート処理を行うことができない。
【００９１】
一般的な情報処理装置の場合、ＯＳプログラムに対してアップデートを行う場合、一旦、電源をＯＦＦにしたり、再起動のプロセスを行ったりする必要がある。このような情報処理装置の場合、図４(a) に示す実施例では、ＯＳプログラムについてのアップデートを行うことはできない。したがって、この図４(a) に示す実施例は、主に、アプリケーションプログラムのアップデートに適した実施例ということになる。
【００９２】
これに対して、図４(b) は、メモリ１２０の不揮発性メモリ（フラッシュメモリ）内に共有メモリ領域１２３を設け、更に、この共有メモリ領域１２３を、復号アップデートファイルＦ３を書き込む格納場所として利用した例を示すブロック図である。この実施例の場合、図３におけるステップＳ５において、第１の管理プログラムＭａは、受信した暗号化アップデートファイルＦ２を、この不揮発性メモリ内の共有メモリ領域１２３に書き込む処理を実行する。そしてステップＳ６では、第２の管理プログラムＭｂが、共有メモリ領域１２３から暗号化アップデートファイルＦ２を読み出して復号し、続くステップＳ７では、第２の管理プログラムＭｂが、得られた復号アップデートファイルＦ３を、不揮発性メモリ内の共有メモリ領域１２３に書き込む処理を実行する。
【００９３】
アップデート処理に用いる復号アップデートファイルＦ３は、不揮発性メモリ内の共有メモリ領域１２３に書き込まれているので、ＣＰＵ１１０は、この不揮発性メモリから、復号アップデートファイルＦ３に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共有メモリ領域１２３は、不揮発性メモリ（フラッシュメモリ）内の領域であるため、情報処理装置１００の電源がＯＦＦにされたり、再起動によって揮発性メモリ（ＲＡＭ）の内容が初期化されたりしても、そこに書き込まれていた復号アップデートファイルＦ３が失われることはない。したがって、この図４(b) に示す実施例は、アプリケーションプログラムのアップデートのみならず、ＯＳプログラムのアップデートにも適した実施例ということになる。
【００９４】
一方、図４(c) は、メモリ１２０の揮発性メモリ（ＲＡＭ）１２４ａ内と不揮発性メモリ（フラッシュメモリ）１２４ｂ内との双方に跨るように共有メモリ領域１２４を設けた例を示すブロック図である。この実施例の場合、暗号化アップデートファイルＦ２の受け渡し場所としては、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２４ａが利用され、復号アップデートファイルＦ３を書き込む格納場所としては、不揮発性メモリ（フラッシュメモリ）内の共有メモリ領域１２４ｂが利用される。
【００９５】
したがって、この実施例の場合、図３におけるステップＳ５において、第１の管理プログラムＭａは、受信した暗号化アップデートファイルＦ２を、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２４ａに書き込む処理を実行する。そしてステップＳ６では、第２の管理プログラムＭｂが、共有メモリ領域１２４ａから暗号化アップデートファイルＦ２を読み出して復号し、続くステップＳ７では、第２の管理プログラムＭｂが、得られた復号アップデートファイルＦ３を、不揮発性メモリ内の共有メモリ領域１２４ｂに書き込む処理を実行する。
【００９６】
図４(b) に示す例と同様に、アップデート処理に用いる復号アップデートファイルＦ３は、不揮発性メモリ内の共有メモリ領域１２４ｂに書き込まれているので、ＣＰＵ１１０は、この不揮発性メモリから、復号アップデートファイルＦ３に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共有メモリ領域１２４ｂは、不揮発性メモリ（フラッシュメモリ）内の領域であるため、情報処理装置１００の電源がＯＦＦにされたり、再起動によって揮発性メモリ（ＲＡＭ）の内容が初期化されたりしても、そこに書き込まれていた復号アップデートファイルＦ３が失われることはない。
【００９７】
したがって、この図４(c) に示す実施例も、図４(b) に示す実施例と同様に、アプリケーションプログラムのアップデートのみならず、ＯＳプログラムのアップデートにも適した実施例ということになる。また、一般に、揮発性メモリ（ＲＡＭ）に対するデータの読み書きは、不揮発性メモリ（フラッシュメモリ）に対するデータの読み書きよりも高速に行うことができるので、暗号化アップデートファイルＦ２の書込処理および読出処理に関しては、図４(c) に示す実施例の方が図４(b) に示す実施例よりも高速化できるという利点が得られる。
【００９８】
以上、図４に示した３つの実施例は、いずれも情報処理装置１００の内蔵メモリ１２０を用いて、暗号化アップデートファイルＦ２および復号アップデートファイルＦ３の受け渡し（第１のＯＳプログラムＰａの管理下と第２のＯＳプログラムＰｂの管理下との間の受け渡し）を行う例であるが、アップデートファイルの受け渡し場所は、必ずしも情報処理装置１００の内蔵メモリ１２０である必要はなく、外部メモリを受け渡し場所として用いてもかまわない。
【００９９】
図５(a) は、暗号化アップデートファイルＦ２の受け渡し場所として、内蔵メモリ１２０内の揮発性メモリ（ＲＡＭ）に設けられた共有メモリ領域１２２を用い、復号アップデートファイルＦ３の受け渡し場所として、不揮発性の外部メモリ４００を用いた実施例を示すブロック図である。この図５(a) では、説明の便宜上、情報処理装置１００を破線のブロックで示してある（図５(b) も同様）。図１，図２に示すとおり、情報処理装置１００には、メモリ１２０以外にも種々の構成要素が存在するが、ここではこれらの構成要素の図示は省略されている。
【０１００】
外部メモリ４００は、図において、情報処理装置１００の外部に描かれているとおり、情報処理装置１００の内部構成要素ではなく、必要に応じて、情報処理装置１００に外付けされる不揮発性メモリであり、たとえば、ＵＳＢの規格で情報処理装置１００に対して装着可能なフラッシュメモリ（いわゆるＵＳＢメモリ）等を用いることができる。
【０１０１】
情報処理装置１００は、この不揮発性の外部メモリ４００を装着して、この外部メモリ４００に対して情報の書き込みおよび読み出しを行う機能を有している。また、この外部メモリ４００の少なくとも一部の記憶領域は、第１のＯＳプログラムＰａの管理下と第２のＯＳプログラムＰｂの管理下との双方においてアクセスが可能な共通アクセス領域４１０を構成している。なお、この共通アクセス領域４１０は、両ＯＳプログラムＰａ，Ｐｂの双方からアクセス可能なメモリ領域という点において、「共有メモリ領域」の一種であるが、この図５に示す実施例では、説明の便宜上、両ＯＳプログラムＰａ，Ｐｂの双方からアクセス可能なメモリ領域のうち、情報処理装置１００の内蔵メモリ１２０に設けられた領域を「共有メモリ領域」と呼び、外部メモリ４００に設けられた領域を「共通アクセス領域」と呼んで区別することにする。
【０１０２】
図５(a) に示す実施例の場合、情報処理装置１００の内蔵メモリ１２０の揮発性メモリ（ＲＡＭ）内に共有メモリ領域１２２が設けられている。この共有メモリ領域１２２は、暗号化アップデートファイルＦ２の受け渡し場所として利用され、外部メモリ４００内の共通アクセス領域４１０は、復号アップデートファイルＦ３の受け渡し場所として利用される。
【０１０３】
具体的には、この実施例の場合、図３におけるステップＳ５において、第１の管理プログラムＭａは、受信した暗号化アップデートファイルＦ２を、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２に書き込む処理を実行する。そしてステップＳ６では、第２の管理プログラムＭｂが、共有メモリ領域１２２から暗号化アップデートファイルＦ２を読み出して復号し、続くステップＳ７では、第２の管理プログラムＭｂが、得られた復号アップデートファイルＦ３を、外部メモリ４００内の共通アクセス領域４１０に書き込む処理を実行する。
【０１０４】
この図５(a) に示す実施例の場合、アップデート処理に用いる復号アップデートファイルＦ３は、外部メモリ４００内の共通アクセス領域４１０に書き込まれているので、ＣＰＵ１１０は、この共通アクセス領域４１０から、復号アップデートファイルＦ３に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。共通アクセス領域４１０は、不揮発性の外部メモリ４００（たとえば、ＵＳＢメモリ）内の領域であるため、情報処理装置１００の電源がＯＦＦにされたり、再起動されたりしても、そこに書き込まれていた復号アップデートファイルＦ３が失われることはない。
【０１０５】
したがって、この図５(a) に示す実施例も、図４(b) ，図４(c) に示す実施例と同様に、アプリケーションプログラムのアップデートのみならず、ＯＳプログラムのアップデートにも適した実施例ということになる。もちろん、暗号化アップデートファイルＦ２は、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２を介して受け渡しされるので、暗号化アップデートファイルＦ２の書込処理および読出処理は高速化できる。
【０１０６】
図５(b) は、最終的なアップデート処理に用いられる復号アップデートファイルＦ３を、不揮発性の外部メモリ４００に書き出すという点において、上述した図５(a) の実施例と共通した手法を採用している。ただ、内蔵メモリ１２０内の揮発性メモリ（ＲＡＭ）に設けられた共有メモリ領域１２２は、暗号化アップデートファイルＦ２の受け渡し場所として用いられるとともに、復号アップデートファイルＦ３の受け渡し場所としても用いられ、外部メモリ４００は、この共有メモリ領域１２２に書き込まれた復号アップデートファイルＦ３の退避場所として利用される。
【０１０７】
別言すれば、この図５(b) に示す実施例は、図４(a) に示す実施例の問題点を解決するための変形例というべきものである。すなわち、図４(a) に示す実施例では、最終的なアップデート処理に用いられる復号アップデートファイルＦ３が、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２に書き込まれるため、情報処理装置１００の電源がＯＦＦにされたり、再起動によって揮発性メモリの内容が初期化されたりすると、そこに書き込まれていた復号アップデートファイルＦ３は失われてしまうという問題が生じていた。
【０１０８】
この図５(b) に示す実施例では、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２に書き込まれた復号アップデートファイルＦ３を、第１の管理プログラムＭａによって不揮発性の外部メモリ４００に書き出すようにし、復号アップデートファイルＦ３が失われないように退避する措置が取られる。したがって、上述した図５(a) の実施例と同様に、アプリケーションプログラムのアップデートのみならず、ＯＳプログラムのアップデートにも利用することができる。
【０１０９】
具体的には、この実施例の場合、図５(b) に示すとおり、内蔵メモリ１２０の揮発性メモリ（ＲＡＭ）内に共有メモリ領域１２２が設けられている。また、図に破線のブロックで示されている情報処理装置１００は、不揮発性の外部メモリ４００（たとえば、ＵＳＢメモリ）を装着して、第１のＯＳプログラムＰａの管理下においてこの外部メモリ４００に対して情報の書き込みおよび読み出しを行う機能を有している。なお、この実施例の場合、外部メモリ４００に対する読み書きは、第１のＯＳプログラムＰａの管理下もしくはブートプロセスで行われるため、図５(a) に示す実施例のように、共通アクセス領域４１０を設ける必要はない。
【０１１０】
この図５(b) に示す実施例におけるアップデートの処理手順は、図４(a) に示す実施例とほぼ同じである。すなわち、まず、第１の管理プログラムＭａが、受信した暗号化アップデートファイルＦ２を、揮発性メモリ内の共有メモリ領域１２２に書き込む処理を実行し、続いて、第２の管理プログラムＭｂが、共有メモリ領域１２２から暗号化アップデートファイルＦ２を読み出して復号し、得られた復号アップデートファイルＦ３を、揮発性メモリ内の共有メモリ領域１２２に書き込む処理を実行する。
【０１１１】
ただ、図４(a) に示す実施例では、この共有メモリ領域１２２内の復号アップデートファイルＦ３を用いてアップデート処理を実行することになるが、図５(b) に示す実施例では、更に、第１の管理プログラムＭａが、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２に書き込まれた復号アップデートファイルＦ３を読み出した上で、これを不揮発性の外部メモリ４００（たとえば、ＵＳＢメモリ）に書き込む処理を実行する。したがって、ＣＰＵ１１０は、この外部メモリ４００から復号アップデートファイルＦ３に含まれているアップデート用プログラムを読み出し、これを実行することによりアップデート処理を行うことになる。
【０１１２】
不揮発性の外部メモリ４００（たとえば、ＵＳＢメモリ）に書き込まれた復号アップデートファイルＦ３は、情報処理装置１００の電源がＯＦＦにされたり、再起動されたりしても、失われることはない。したがって、この図５(b) に示す実施例も、アプリケーションプログラムのアップデートのみならず、ＯＳプログラムのアップデートにも適した実施例ということになる。
【０１１３】
この図５(b) に示す実施例を採用する場合、第１の管理プログラムＭａによる外部メモリ４００への書き出し処理が必要になるため、アップデート処理の手順は、図３の流れ図に示す手順を若干変更する必要がある。図６は、図５(b) に示す実施例におけるアップデート処理の手順を示す流れ図である。この図６の流れ図において、ステップＳ１〜Ｓ６までの手順は、図３の流れ図におけるステップＳ１〜Ｓ６までの手順と全く同じである。ステップＳ６の実行により、暗号化アップデートファイルＦ２に対する復号処理が行われ、復号アップデートファイルＦ３が生成される。
【０１１４】
図５(b) に示す実施例では、続くステップＳ７ａにおいて、生成された復号アップデートファイルＦ３が揮発性メモリ内の共有メモリ領域１２２に書き込まれる。この書き込み処理は、第２の管理プログラムＭｂによって実行される。第２の管理プログラムＭｂにより復号アップデートファイルＦ３の書き込みが完了したら、ハイパーバイザープログラムＰｈを介して、その旨が第１の管理プログラムＭａに通知される。当該通知は、第１の管理プログラムＭａに対する「外部メモリへの書込要求」として機能する。
【０１１５】
第１の管理プログラムＭａは、当該通知を受け取った後、共有メモリ領域１２２に書き込まれている復号アップデートファイルＦ３を読み出し、これを不揮発性外部メモリ４００に書き込む処理を行う。図６の流れ図におけるステップＳ７ｂの手順は、この書き込み処理の手順である。最後に、ステップＳ８において、外部メモリ４００に書き込まれていた復号アップデートファイルＦ３に含まれているアップデート用プログラムが実行され、アップデート処理が完了する。
【０１１６】
＜＜＜  §４．  具体的なアップデート処理の形態  ＞＞＞
続いて、本発明に係る情報処理装置１００における具体的なアップデート処理の形態を述べる。§３では、図４および図５を参照しながら、アップデート処理に用いられる復号アップデートファイルＦ３の具体的な書き込み態様をいくつか説明した。すなわち、復号アップデートファイルＦ３は、図４(a) の実施例では、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２に書き込まれ、図４(b) の実施例では、不揮発性メモリ（フラッシュメモリ）内の共有メモリ領域１２３に書き込まれ、図４(c) の実施例では、不揮発性メモリ（フラッシュメモリ）内の共有メモリ領域１２４ｂに書き込まれる。また、図５(a) ，(b) の実施例では、不揮発性外部メモリ４００（たとえば、ＵＳＢメモリ）に書き込まれる。
【０１１７】
いずれの実施例の場合も、第１の管理プログラムＭａ（図５(b) の例）もしくは第２の管理プログラムＭｂ（図４(a) ，(b) ，(c) ，図５(a) の例）が、復号アップデートファイルＦ３を、第１のＯＳプログラムＰａの管理下もしくはブートプロセスにおいてアクセス可能な格納場所に書き込む処理を実行している。したがって、ＣＰＵ１１０は、第１のＯＳプログラムＰａの管理下もしくはブートプロセスにおいて、復号アップデートファイルＦ３に含まれているアップデート用プログラムを実行することにより、アップデート処理を行うことが可能である。
【０１１８】
たとえば、アップデートの対象となるプログラムが、図１に示すアプリケーションプログラムＡＰ１やＡＰ２であった場合、復号アップデートファイルＦ３（すなわち、アップデートファイルＦ１）としては、第１のＯＳプログラムＰａの管理下において実行可能なアップデート用プログラムを提供すればよい。通常、アプリケーションプログラムをアップデートする際には、再起動を行う必要がないので、図４(a) に示す実施例のように、復号アップデートファイルＦ３が揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２に書き込まれていた場合でも、アプリケーションプログラムＡＰ１やＡＰ２のアップデートが可能である。もちろん、第１の管理プログラムＭａのアップデートも同様に行うことができる。また、必要があれば、同様の方法によって、第２の管理プログラムＭｂのアップデートも行うことができる。
【０１１９】
一方、ＯＳプログラムのアップデートは、当該ＯＳプログラムを動作させた状態では行うことができないので、通常、システムを再起動させる必要がある。システムを再起動させると、通常は、揮発性メモリ（ＲＡＭ）内のデータが初期化されてしまうため、図４(a) に示す実施例のように、揮発性メモリ（ＲＡＭ）内の共有メモリ領域１２２に書き込まれていた復号アップデートファイルＦ３は失われてしまう。このため、一般的なＯＳプログラムのアップデートを行う場合には、図４(b) ，(c) ，図５(a) ，(b) に示す実施例のように、復号アップデートファイルＦ３を不揮発性メモリに書き込んでおくようにすればよい。
【０１２０】
より具体的には、復号アップデートファイルＦ３に含まれているアップデート用プログラムを、情報処理装置１００が起動時に実行するブート用プログラムを格納するための格納場所（いわゆる、ブートセクター）に書き込むようにする。そうすれば、ＣＰＵ１１０が、起動時に、ブートセクターに書き込まれたアップデート用プログラムを実行するブートプロセスを行うことにより、ＯＳプログラムのアップデート処理を行うことができる。同様の方法によって、ファームウェアのアップデートも行うことができる。
【０１２１】
たとえば、図４(b) ，(c) に示す実施例において、第１のＯＳプログラムＰａのアップデートを行う場合、不揮発性メモリに設けられた共有メモリ領域１２３もしくは１２４ｂ内のブートセクターに復号アップデートファイルＦ３に含まれているアップデート用プログラムを書き込んでおくようにすればよい。そうすれば、第１のＯＳプログラムＰａを再起動するプロセスにおいて、アップデート用プログラムを実行することができ、アップデートされた第１のＯＳプログラムＰａを起動することができる。
【０１２２】
なお、複数のＯＳプログラムが組み込まれている装置の場合、再起動時にどちらのＯＳを選択するかは、ハイパーバイザープログラムの設定によって指定することができるので、上例の場合、再起動時に第１のＯＳプログラムＰａを選択する設定にしておけば、支障は生じない。もちろん、再起動時に第２のＯＳプログラムＰｂを選択する設定にしておけば、第２のＯＳプログラムＰｂに対するアップデートを行うことも可能である。
【０１２３】
＜＜＜  §５．  種々の変形例・応用例  ＞＞＞
最後に、本発明に係る情報処理装置１００の変形例や応用例を述べておく。
【０１２４】
＜５．１  識別情報ＵＩＤを利用した暗号鍵生成＞
§１で述べたとおり、第２の管理プログラムＭｂによって実行される復号処理では、アップデートサーバ２００側での暗号化処理に用いられた暗号鍵Ｋに関連する暗号鍵Ｋ′が用いられる。ここで、暗号鍵Ｋ′は暗号鍵Ｋと全く同一の鍵であってもよいし、公開鍵暗号方式で利用される特定の関係をもった一対の鍵であってもよい。ここでは、識別情報ＵＩＤを用いて互いに同一の暗号鍵ＫおよびＫ′を生成する変形例を、図７のブロック図を参照しながら説明する。なお、図７では、情報処理装置１００を破線のブロックで示してあるが、これは当該ブロック内に描かれている構成要素が、情報処理装置１００内の一部の構成要素であることを示すためである。また、図７において、個々のプログラムを示すブロック内には、当該プログラムの処理内容や当該プログラムに用いられるデータが示されている。
【０１２５】
図示のとおり、情報処理装置１００には、第２の管理プログラムＭｂとＶＰＮ開設アプリケーションプログラムＶＰＮ１がインストールされており、外部装置２００（アップデートサーバ）には、外部装置用管理プログラムＭｃとＶＰＮ開設アプリケーションプログラムＶＰＮ２がインストールされている。§２で述べたとおり、プログラムＶＰＮ１，ＶＰＮ２は、ＶＰＮサーバ３００と協働して、情報処理装置１００と外部装置２００との間にＶＰＮ通信路を開設する役割を果たす。
【０１２６】
ここで、プログラムＶＰＮ１は、デバイス証明書Ｄ１，クライアント証明書Ｃ１，クライアント秘密鍵Ｋ１を用いてＶＰＮ通信路の開設処理を行い、プログラムＶＰＮ２は、デバイス証明書Ｄ２，サーバ証明書Ｃ２，サーバ秘密鍵Ｋ２を用いてＶＰＮ通信路の開設処理を行う。具体的なＶＰＮ通信路の開設処理の手順は、§２で述べたとおりである。
【０１２７】
外部装置用管理プログラムＭｃは、図１の外部装置２００と同等の役割を果たすプログラムであり、アップデートファイルＦ１を暗号鍵Ｋを用いて暗号化して暗号化アップデートファイルＦ２を生成し、これをＶＰＮ通信路を介して情報処理装置１００へと送信する。
【０１２８】
ただ、ここに示す実施例の場合、暗号鍵Ｋは識別情報ＵＩＤを利用して生成される。この識別情報ＵＩＤ（User Identifier）は、暗号化アップデートファイルＦ２の送信先となる情報処理装置１００に内蔵された不揮発性メモリに記録されている情報であり、当該情報処理装置１００もしくは当該情報処理装置１００のユーザを特定するための情報である。具体的には、情報処理装置１００に付与された固有の識別情報（たとえば、ＣＰＵ１１０に付与されたシリアルナンバー）や、そのユーザに与えられたアカウント情報などを識別情報ＵＩＤとして用いることができる。この識別情報ＵＩＤは、情報処理装置１００に内蔵された不揮発性メモリに記録されるとともに、外部装置２００側にも記録されている。
【０１２９】
外部装置用管理プログラムＭｃが、識別情報ＵＩＤを利用して暗号鍵Ｋを生成する暗号鍵生成アルゴリズムとしては、予め任意のアルゴリズムを定めておけばよい。たとえば、ＵＩＤを構成するデータに対して所定のハッシュ関数を作用させたハッシュ値を暗号鍵Ｋとするアルゴリズムを用いることが可能である。
【０１３０】
一方、情報処理装置１００にインストールされている第２の管理プログラムＭｂも、全く同じ暗号鍵生成アルゴリズムを用いて、識別情報ＵＩＤに基づいて暗号鍵Ｋ′を生成する機能を有している。情報処理装置１００に記録されている識別情報ＵＩＤと外部装置２００に記録されている識別情報ＵＩＤとは同一のものであり、それぞれ同一の暗号鍵生成アルゴリズムを用いて暗号鍵の生成が行われるため、情報処理装置１００側で生成された暗号鍵Ｋ′は、外部装置２００側で生成された暗号鍵Ｋと同一の鍵になる。
【０１３１】
§２で述べたとおり、外部装置２００からＶＰＮ通信路を介して送信されてきた暗号化アップデートファイルＦ２は、情報処理装置１００内の外部通信手段１３０によって受信され、第１の管理プログラムＭａから共有メモリ領域１２１を介して第２の管理プログラムＭｂへと引き渡される。第２の管理プログラムＭｂは、内蔵された不揮発性メモリに記録されている識別情報ＵＩＤに基づいて、外部装置用管理プログラムＭｃで利用された暗号鍵生成アルゴリズムと同じアルゴリズムを用いて暗号鍵Ｋ′（暗号鍵Ｋと同一の鍵）を作成する。そして、この暗号鍵Ｋ′を用いて暗号化アップデートファイルＦ２に対する復号処理を行うことにより、復号アップデートファイルＦ３（アップデートファイルＦ１と同じ）が得られる。
【０１３２】
なお、ＶＰＮ開設アプリケーションプログラムＶＰＮ１がＶＰＮ通信路の開設処理に用いるデバイス証明書Ｄ１，クライアント証明書Ｃ１，クライアント秘密鍵Ｋ１も、情報処理装置１００もしくはそのユーザを特定するための識別情報として機能するので、これらの情報を識別情報ＵＩＤとして利用して秘密鍵Ｋ′を生成することも可能である。
【０１３３】
＜５．２  内蔵する不揮発性メモリのアクセス権＞
これまで述べたとおり、本発明に係る情報処理装置１００には、ハイパーバイザープログラムＰｈの機能を利用して、第１のＯＳプログラムＰａと第２のＯＳプログラムＰｂとが組み込まれる。そして、第１のＯＳプログラムＰａの管理下では、当該情報処理装置１００の本来の処理機能を果たすための種々の処理が、第１属性のアプリケーションプログラムによって実行される。一方、第２のＯＳプログラムＰｂの管理下では、第２属性のアプリケーションプログラムである第２の管理プログラムＭｂにより、暗号化アップデートファイルＦ２の復号処理が実行される。
【０１３４】
このように、暗号化アップデートファイルＦ２の復号処理を、わざわざ第２のＯＳプログラムＰｂの管理下で行うのは、セキュアな環境下で復号処理が行われるようにするためである。すなわち、本発明の基本概念は、第１のＯＳプログラムＰａの実行環境がマルウェアによって悪影響を受けた場合にも、暗号化アップデートファイルＦ２の復号処理が実行される第２のＯＳプログラムＰｂの実行環境をセキュアな状態に維持する点にある。
【０１３５】
そのためには、第２のＯＳプログラムＰｂの実行環境（セキュアな環境）が、できる限り第１のＯＳプログラムＰａの実行環境（ノンセキュアな環境）から影響を受けないようにするのが好ましい。そこで実用上は、第１のＯＳプログラムＰａの管理下でアクセス可能なメモリ領域と第２のＯＳプログラムＰｂの管理下でアクセス可能なメモリ領域について、次のようなアクセス権の設定を行うのが好ましい。
【０１３６】
図８は、情報処理装置１００に内蔵されている不揮発性メモリ（フラッシュメモリ）のメモリ空間を示す図である。まず、このメモリ空間に、図示のとおり第１の領域Ａ１（図の白地領域）と第２の領域Ａ２（図のハッチング領域）とを定義する。図示の例の場合、２つの領域Ａ１，Ａ２のみが定義されているため、全メモリ空間は、２つの領域Ａ１，Ａ２に分割されることになる。そして、これらの領域Ａ１，Ａ２について、次のようなアクセス権を設定する。
【０１３７】
まず、第１のＯＳプログラムＰａおよび第１属性のアプリケーションプログラムＡＰ１，ＡＰ２，Ｍａは、第１の領域Ａ１に対するアクセスのみが可能であり、第２の領域Ａ２へのアクセスは禁じられるようにする。具体的には、第１のＯＳプログラムＰａおよび第１属性のアプリケーションプログラムＡＰ１，ＡＰ２，Ｍａには、第１の領域Ａ１が内蔵不揮発性メモリの全メモリ空間であるとの認識がなされるような設定を行えばよい。
【０１３８】
そして、図示のとおり、第１のＯＳプログラムＰａおよび第１属性のアプリケーションプログラムＡＰ１，ＡＰ２，Ｍａを構成するプログラム自体は、第１の領域Ａ１に格納しておくようにし、これら各プログラムＰａ，ＡＰ１，ＡＰ２，Ｍａが用いる第１属性のデータも、第１の領域Ａ１に記録するようにする。また、暗号化アップデートファイルＦ２や復号アップデートファイルＦ３の受け渡し場所として利用される共有メモリ領域を、内蔵不揮発性メモリ内に設ける実施例を採用する場合は、この共有メモリ領域も、第１の領域Ａ１内に設けておく。
【０１３９】
一方、第２のＯＳプログラムＰａおよび第２属性のアプリケーションプログラムＭｂは、第１の領域Ａ１および第２の領域Ａ２の双方に対するアクセスが可能になるようにする。結局、図示の例の場合は、第２のＯＳプログラムＰａおよび第２属性のアプリケーションプログラムＭｂは、内蔵不揮発性メモリの全メモリ空間に対してアクセスを行うことができる。
【０１４０】
そして、図示のとおり、ハイパーバイザープログラムＰｈ、第２のＯＳプログラムＰｂ、第２属性のアプリケーションプログラムＭｂ（第２の管理プログラム）を構成するプログラム自体は、第２の領域Ａ２に格納しておくようにし、これら各プログラムＰｈ，Ｐｂ，Ｍｂが用いる第２属性のデータも、第２の領域Ａ２に記録するようにする。この第２属性のデータには、第２の管理プログラムＭｂが復号処理に用いる暗号鍵Ｋ′もしくは暗号鍵Ｋ′の生成に利用される識別情報ＵＩＤが含まれている。
【０１４１】
なお、図８には、ハイパーバイザープログラムＰｈをフラッシュメモリに格納する例を示したが、ハイパーバイザープログラムＰｈは、ＲＯＭに格納するようにしてもかまわない（たとえば、前述した「FOXvisor」なる製品では、ハイパーバイザープログラムＰｈは、ＣＰＵ１１０と同一のチップのＲＯＭ内に格納されている）。
【０１４２】
上述したようなアクセス権を設定しておけば、第１のＯＳプログラムＰａおよび第１属性のアプリケーションプログラムＡＰ１，ＡＰ２，Ｍａにとっては、第１の領域Ａ１が全メモリ空間であり、第２の領域Ａ２（図のハッチング領域）は、その存在すら認識できない領域ということになる。したがって、この情報処理装置１００を第１のＯＳプログラムＰａの管理下で動作させている最中に、悪意をもった者の攻撃を受けてマルウェアに感染したとしても、当該マルウェアの影響は第１の領域Ａ１内にとどまり、第２の領域Ａ２に影響が及ぶことを防ぐことができる。
【０１４３】
もちろん、第２のＯＳプログラムＰａおよび第２属性のアプリケーションプログラムＭｂ（第２の管理プログラム）は、第２の領域Ａ２のみならず第１の領域Ａ１に対してもアクセスが可能であるが、本発明の実施にあたり、第２の管理プログラムＭｂが第１の領域Ａ１に対してアクセスする必要があるのは、暗号化アップデートファイルＦ２や復号アップデートファイルＦ３の受け渡しのために共有メモリ領域に対するアクセスを行う場合だけであり、この共有メモリ領域に対するアクセスによって第２の領域Ａ２にマルウェアの影響が及ぶ可能性は非常に低い。
【０１４４】
このため、第２のＯＳプログラムＰｂや第２属性のアプリＭｂがマルウェアの影響を受ける可能性は非常に低い。また、第２属性のデータである暗号鍵Ｋ′や識別情報ＵＩＤがマルウェアの影響を受ける可能性も非常に低い。このように、第１の領域Ａ１がノンセキュア領域であるのに対して、第２の領域Ａ２はセキュア領域として機能する。そして、第２の管理プログラムＭｂによる暗号化アップデートファイルＦ２の復号処理は、このセキュア領域で実行される。したがって、本発明によれば、セキュアな環境下でのアップデートが可能になる。
【０１４５】
＜５．３  ホームゲートウェイ装置への応用＞
最後に、本発明をホームゲートウェイ装置に応用した実施例を述べておく。近年、IoT（Internet of Things）の考え方に基づき、家庭内の電子機器をホームゲートウェイ装置を介してインターネットに接続する形態が急速に普及してゆくものと予想されている。ホームゲートウェイ装置は、公衆回線網と家庭内ネットワークとを仲介する役割を果たし、一般的なブロードバンドルータの機能に加え、電話やＦＡＸの信号などをやりとりする機能も備わった家庭用の情報処理装置である。
【０１４６】
このホームゲートウェイ装置も、ＣＰＵと、メモリと、外部通信手段と、を備えた情報処理装置であり、所定のＯＳプログラムやアプリケーションプログラムを実行することにより、その機能を果たすことができる。したがって、導入後も、各プログラムをアップデートする必要が生じるが、家庭用の情報処理装置であるため、高度なセキュリティ対策を講じることは困難であり、アップデート時にマルウェアによる被害が頻発することが危惧される。
【０１４７】
本発明は、このようなホームゲートウェイ装置に応用するのに適した技術である。図９は、本発明に係る情報処理装置を、ホームゲートウェイ装置として利用した実施例を示すブロック図である。この例では、本発明に係る情報処理装置がホームゲートウェイ装置１００として利用されている。このホームゲートウェイ装置１００は、家庭内ネットワークに接続されたセンサ、監視カメラ、パソコン、ＴＶ、録画機器、照明、スマートメータなどの様々な機器と、インターネットとを仲介する役割を果たす。
【０１４８】
このホームゲートウェイ装置１００として、本発明に係る情報処理装置を用いるようにすれば、図示のとおり、外部装置として機能するアップデートサーバ２００にインターネットを介して接続し、内蔵されているＯＳプログラムやアプリケーションプログラムをアップデートすることが可能である。しかも、本発明によれば、セキュアな環境下でアップデートを行うことが可能になり、アップデート時にマルウェアによる被害を受ける危険性を低減することができる。
【産業上の利用可能性】
【０１４９】
本発明は、ＣＰＵとメモリと外部通信手段とを備え、外部装置から受信したアップデートファイルを用いてプログラムのアップデート処理を行う情報処理装置に広く利用することができる。具体的には、パソコン、スマートフォン、タブレット端末などの電子機器や、ホームゲートウェイ装置のような装置にも利用することが可能である。
【符号の説明】
【０１５０】
１００：情報処理装置（ホームゲートウェイ装置）
１１０：ＣＰＵ
１２０：メモリ
１２１：共有メモリ領域
１２２：共有メモリ領域（揮発性メモリ内の領域）
１２３：共有メモリ領域（不揮発性メモリ内の領域）
１２４：共有メモリ領域（揮発性および不揮発性メモリ内の領域）
１２４ａ：共有メモリ領域（揮発性メモリ内の領域）
１２４ｂ：共有メモリ領域（不揮発性メモリ内の領域）
１３０：外部通信手段
２００：外部装置（アップデートサーバ）
３００：ＶＰＮサーバ
４００：外部メモリ（不揮発性メモリ）
４１０：共通アクセス領域
Ａ１：第１の領域
Ａ２：第２の領域
ＡＰ１，ＡＰ２：第１属性のアプリケーションプログラム
Ｃ１：クライアント証明書
Ｃ２：サーバ証明書
Ｄ１：デバイス証明書
Ｄ２：デバイス証明書
Ｆ１：アップデートファイル
Ｆ２：暗号化アップデートファイル
Ｆ３：復号アップデートファイル
Ｋ，Ｋ′：暗号鍵
Ｋ１：クライアント秘密鍵
Ｋ２：サーバ秘密鍵
Ｍａ：第１の管理プログラム（第１属性のアプリケーションプログラム）
Ｍｂ：第２の管理プログラム（第２属性のアプリケーションプログラム）
Ｍｃ：外部装置用管理プログラム
Ｐａ：第１のＯＳプログラム
Ｐｂ：第２のＯＳプログラム
Ｐｈ：ハイパーバイザープログラム
Ｓ１〜Ｓ８：流れ図の各ステップ
ＵＩＤ：情報処理装置もしくはそのユーザの識別情報
ＶＰＮ１，ＶＰＮ２：ＶＰＮ（Virtual Private Network）開設アプリケーションプログラム
【図１】
0006741236.tif 000002
【図２】
0006741236.tif 000003
【図３】
0006741236.tif 000004
【図４】
0006741236.tif 000005
【図５】
0006741236.tif 000006
【図６】
0006741236.tif 000007
【図７】
0006741236.tif 000008
【図８】
0006741236.tif 000009
【図９】
0006741236.tif 000010