(57)【特許請求の範囲】
【請求項１】
入出力インターフェイスを介してデバイスに接続されたコンピュータが、
前記デバイスに搭載されたセキュアエレメントから、該デバイスの初期設定手順を記述した初期設定ファイルを前記入出力インターフェイスを介して取得し、
取得した前記初期設定ファイルを参照して、初期設定を行うための仮想環境を構築し、
該仮想環境において、前記初期設定手順に従って前記デバイスの初期設定を行い、
初期設定内容を前記デバイスの記憶領域に前記入出力インターフェイスを介して書き込む
処理を実行することを特徴とする初期設定方法。
【請求項２】
前記初期設定ファイルに従って前記デバイスに初期設定する対象ファイルを、該対象ファイルを配信するサーバからネットワークを介して取得し、
取得した前記対象ファイルを前記仮想環境に格納し、
前記仮想環境に格納した前記対象ファイルを、前記入出力インターフェイスを介して前記記憶領域に書き込む
処理を前記コンピュータが実行することを特徴とする請求項１に記載の初期設定方法。
【請求項３】
前記セキュアエレメントは、前記サーバとの間で共有された鍵情報を保持してあり、
前記サーバから前記対象ファイルを取得する場合、前記鍵情報に基づいて前記対象ファイルの送受信を行う
処理を前記コンピュータが実行することを特徴とする請求項２に記載の初期設定方法。
【請求項４】
前記セキュアエレメントに対し、前記鍵情報に基づく認証情報の生成を要求し、
前記入出力インターフェイスを介して前記セキュアエレメントから前記認証情報を取得し、
前記サーバに対し、前記認証情報を転送して前記対象ファイルの送信を要求し、
前記サーバで前記認証情報に基づく認証に成功した場合、前記対象ファイルを取得する
処理を前記コンピュータが実行することを特徴とする請求項３に記載の初期設定方法。
【請求項５】
前記認証情報は、前記セキュアエレメント、又は前記デバイスの個体識別情報に基づいて生成される
ことを特徴とする請求項４に記載の初期設定方法。
【請求項６】
前記サーバから、前記鍵情報に基づき暗号化された前記対象ファイルを取得し、
前記鍵情報に基づいて復号した前記対象ファイルを前記仮想環境に格納する
処理を前記コンピュータが実行することを特徴とする請求項３〜５のいずれか１項に記載の初期設定方法。
【請求項７】
前記対象ファイルを取得した場合、前記セキュアエレメントに対し、前記対象ファイルの復号を要求し、
前記セキュアエレメントが復号した前記対象ファイルを前記仮想環境に格納する
処理を前記コンピュータが実行することを特徴とする請求項６に記載の初期設定方法。
【請求項８】
前記対象ファイルを取得した場合、前記セキュアエレメントに対し、前記鍵情報に基づく派生鍵の生成を要求し、
前記セキュアエレメントが生成した前記派生鍵を用いて、前記対象ファイルを復号し、
復号した前記対象ファイルを前記仮想環境に格納する
処理を前記コンピュータが実行することを特徴とする請求項６に記載の初期設定方法。
【請求項９】
前記サーバから、前記対象ファイルと、前記鍵情報を用いて該対象ファイルから生成された付加情報とを取得し、
前記セキュアエレメントに対し、前記付加情報と、前記対象ファイルの情報とを出力して、前記鍵情報を用いて前記付加情報を復号し、前記対象ファイルの情報と照合するよう要求し、
前記セキュアエレメントによる照合結果に応じて、前記対象ファイルを前記仮想環境に格納する
処理を前記コンピュータが実行することを特徴とする請求項３〜７のいずれか１項に記載の初期設定方法。
【請求項１０】
前記対象ファイルを取得する場合、前記セキュアエレメントの識別情報、又は前記デバイスの識別情報を送信して前記対象ファイルの送受信を行う
処理を前記コンピュータが実行することを特徴とする請求項２〜８のいずれか１項に記載の初期設定方法。
【請求項１１】
前記初期設定ファイルには、前記対象ファイルがソースコードで記述されたソースファイルである場合に、該ソースファイルを前記デバイスが実行可能な実行ファイルに変換する処理手順が記述されており、
取得した前記対象ファイルが前記ソースファイルである場合、前記処理手順に従って前記ソースファイルを変換する
処理を前記コンピュータが実行することを特徴とする請求項２〜１０のいずれか１項に記載の初期設定方法。
【請求項１２】
デバイスに搭載されるセキュアエレメントであって、
仮想環境を構築し、該仮想環境において前記デバイスの初期設定を行う手順を記述した初期設定ファイルを格納する格納部と、
前記デバイスに接続されたコンピュータに対し、前記初期設定ファイルを出力する出力部と
を備えることを特徴とするセキュアエレメント。
【請求項１３】
前記初期設定ファイルには、前記デバイスに初期設定する対象ファイルを配信元から取得する取得手順が記述されており、
前記格納部は、前記配信元との間で共有されており、前記対象ファイルの取得手順に応じて用いる鍵情報を格納してある
ことを特徴とする請求項１２に記載のセキュアエレメント。
【請求項１４】
前記配信元との間での認証処理を伴う前記対象ファイルの取得手順が前記初期設定ファイルに記述されている場合、前記コンピュータからの要求に応じて、前記鍵情報に基づき認証情報を生成する生成部を備え、
前記出力部は、生成した前記認証情報を前記コンピュータに出力する
ことを特徴とする請求項１３に記載のセキュアエレメント。
【請求項１５】
前記鍵情報に基づき暗号化された前記対象ファイルを前記コンピュータが取得した場合、前記コンピュータからの要求に応じて、前記鍵情報に基づき前記対象ファイルの復号を行う復号部を備え、
前記出力部は、復号した前記対象ファイルを前記コンピュータに出力する
ことを特徴とする請求項１４に記載のセキュアエレメント。
【請求項１６】
前記鍵情報に基づき暗号化された前記対象ファイルを前記コンピュータが取得した場合、前記コンピュータからの要求に応じて、前記対象ファイルの復号に用いる派生鍵を前記鍵情報から生成する派生鍵生成部を備え、
前記出力部は、生成した前記派生鍵を前記コンピュータに出力する
ことを特徴とする請求項１３又は１４に記載のセキュアエレメント。
【請求項１７】
前記対象ファイルと、前記鍵情報を用いて該対象ファイルから生成された付加情報とを前記コンピュータが取得した場合、前記コンピュータからの要求に応じて前記付加情報を復号し、前記コンピュータが取得した前記対象ファイルの情報と照合する照合部を備え、
前記出力部は、前記照合部による照合結果を前記コンピュータに出力する
ことを特徴とする請求項１３〜１６のいずれか１項に記載のセキュアエレメント。
【請求項１８】
前記コンピュータから前記初期設定ファイルの出力要求を受け付けた場合、最新の前記初期設定ファイルを管理する管理サーバに対し、該最新の初期設定ファイルの送信を要求する最新ファイル要求部と、
前記管理サーバから前記最新の初期設定ファイルを取得する取得部と
を備え、
前記出力部は、前記最新の初期設定ファイルを前記コンピュータに出力する
ことを特徴とする請求項１３〜１７のいずれか１項に記載のセキュアエレメント。
【請求項１９】
前記取得部は、前記最新の初期設定ファイルと共に、最新の前記鍵情報を取得する
ことを特徴とする請求項１８に記載のセキュアエレメント。
【請求項２０】
前記格納部は、前記管理サーバとの間で共有された鍵値及び証明書を格納してあり、
前記鍵値及び証明書に基づき、前記管理サーバとの間で通信内容を秘匿化した秘匿通信路を確立する通信路確立部を備え、
前記取得部は、前記秘匿通信路を介して前記最新の初期設定ファイルを取得する
ことを特徴とする請求項１８又は１９に記載のセキュアエレメント。
【請求項２１】
前記格納部は、運用者の認証に必要な運用者情報を格納してあり、
前記コンピュータから前記初期設定ファイルの出力要求を受け付けた場合、前記運用者情報の出力を要求する運用者情報要求部と、
前記コンピュータから出力された前記運用者情報と、前記格納部に格納してある前記運用者情報とを照合する運用者照合部と
を備え、
前記出力部は、前記運用者照合部による照合結果に応じて前記初期設定ファイルを出力する
ことを特徴とする請求項１２〜２０のいずれか１項に記載のセキュアエレメント。
【請求項２２】
セキュアエレメントを搭載したデバイスであって、
前記セキュアエレメントは、
仮想環境を構築し、該仮想環境において前記デバイスの初期設定を行う手順を記述した初期設定ファイルを格納する格納部と、
前記デバイスに通信接続されたコンピュータに対し、前記初期設定ファイルを出力する出力部と
を備えることを特徴とするデバイス。  
【請求項２３】
デバイスに接続されたコンピュータに、
前記デバイスに搭載されたセキュアエレメントから、該デバイスの初期設定手順を記述した初期設定ファイルを取得し、
取得した前記初期設定ファイルを参照して、初期設定を行うための仮想環境を構築し、
該仮想環境において、前記初期設定手順に従って前記デバイスの初期設定を行い、
初期設定内容を前記デバイスの記憶領域に書き込む
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、初期設定方法、セキュアエレメント、デバイス及びプログラムに関する。
【背景技術】
【０００２】
近年、「モノのインターネット」と呼ばれるＩｏＴ（Internet of Things）の市場が急速に拡大している。しかしながら、ＩｏＴの「モノ」に相当するデバイス機器はセキュリティ上脆弱なことが多く、問題が顕在化している。
【０００３】
ところで、ＩｏＴに係るシステムの運用を開始するには、デバイスが適切に動作するように、ＯＳ（オペレーティングシステム）、アプリケーション等のソフトウェアのインストール、ＩＰアドレス等のパラメータの設定など、何らかの初期設定が必要となることが多い。例えば特許文献１には、クライアント端末に対してＯＳをインストールするサーバ装置等が開示されている。
【０００４】
デバイスの初期設定は、デバイスの製造元で行うほかに、主としてビジネス上の要因により、ＩｏＴデバイスの運用者（例えばＩｏＴサービスを提供する事業者、デバイスのエンドユーザ等）が行う場合もある。例えば独自のプロプライエタリ・ソフトウェアを組み込んだＩｏＴデバイスを供給する場合、当該ソフトウェアのソースコードを製造元等に開示したくない場合がある。また、例えば運用者側でデバイスのソフトウェアの動作自体をカスタマイズしたい場合もあり得る。
【０００５】
しかし、運用者が自らソフトウェアをビルドしてデバイスに書き込むことは、技術的な難易度が高い。一般的に、初期設定作業は製造元の開発環境、又は量産環境として特殊なソフトウェアや機器を必要とするものであり、技術知識に乏しい運用者が初期設定を行うことは現実的ではない。
【０００６】
一方、コンピュータの仮想化、及びＩａＣ（Infrastructure as Code）と呼ばれる概念により、仮想的な実行環境を自動的に構築する試みがなされている。例えばＷｅｂサーバ、データベースサーバなどの仮想サーバをＰＣ等のハードウェア上に構築する場合、仮想サーバを構築可能な仮想化基盤を用意した上で、インストールすべきサーバプログラムの所在、コンフィグレーションの設定内容等を記述したテキストファイルをＰＣに与える。ＰＣは、当該ファイルに記載された手順に従って動作し、仮想化基盤上に仮想サーバを自動的に構築する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１０７８５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の技術を、ＩｏＴデバイスの初期設定に応用することは技術的には可能である。しかしながら、上述のテキストファイルに記述された処理手順、又は処理内容（例えばインストールすべきプログラムの所在）が書き換えられることで、例えば運用者が意図しないプログラムが混入される虞があるなど、セキュリティ上の問題が生じることが予測される。
【０００９】
一つの側面では、セキュリティを確保しつつデバイスの初期設定を自動的に行うことができる初期設定方法等を提供することを目的とする。
【課題を解決するための手段】
【００１０】
一つの側面に係る初期設定方法は、入出力インターフェイスを介してデバイスに接続されたコンピュータが、前記デバイスに搭載されたセキュアエレメントから、該デバイスの初期設定手順を記述した初期設定ファイルを前記入出力インターフェイスを介して取得し、取得した前記初期設定ファイルを参照して、初期設定を行うための仮想環境を構築し、該仮想環境において、前記初期設定手順に従って前記デバイスの初期設定を行い、初期設定内容を前記デバイスの記憶領域に前記入出力インターフェイスを介して書き込む処理を実行することを特徴とする。
【００１１】
一つの側面に係るセキュアエレメントは、デバイスに搭載されるセキュアエレメントであって、仮想環境を構築し、該仮想環境において前記デバイスの初期設定を行う手順を記述した初期設定ファイルを格納する格納部と、前記デバイスに接続されたコンピュータに対し、前記初期設定ファイルを出力する出力部とを備えることを特徴とする。
【００１２】
一つの側面に係るデバイスは、セキュアエレメントを搭載したデバイスであって、前記セキュアエレメントは、仮想環境を構築し、該仮想環境において前記デバイスの初期設定を行う手順を記述した初期設定ファイルを格納する格納部と、前記デバイスに通信接続されたコンピュータに対し、前記初期設定ファイルを出力する出力部とを備えることを特徴とする。
【００１３】
一つの側面に係るプログラムは、デバイスに接続されたコンピュータに、前記デバイスに搭載されたセキュアエレメントから、該デバイスの初期設定手順を記述した初期設定ファイルを取得し、取得した前記初期設定ファイルを参照して、初期設定を行うための仮想環境を構築し、該仮想環境において、前記初期設定手順に従って前記デバイスの初期設定を行い、初期設定内容を前記デバイスの記憶領域に書き込む処理を実行させることを特徴とする。
【発明の効果】
【００１４】
一つの側面では、セキュリティを確保しつつデバイスの初期設定を自動的に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】初期設定システムの構成例を示す模式図である。
【図２】デバイス及びＰＣの構成例を示すブロック図である。
【図３】初期設定ファイルの更新処理に関する説明図である。
【図４】初期設定ファイルの読出処理に関する説明図である。
【図５】仮想環境構築処理に関する説明図である。
【図６】対象ファイルの配布方法の一例を示す説明図である。
【図７】特段のセキュリティを要さない配布ケースを示す説明図である。
【図８】認証処理を伴う配布ケースを示す説明図である。
【図９】暗号化された対象ファイルを配布するケースを示す説明図である。
【図１０】対象ファイルの検証処理を伴う配布ケースを示す説明図である。
【図１１】対象ファイルを実行ファイルに変換する変換処理に関する説明図である。
【図１２】初期設定内容の書き込み処理に関する説明図である。
【図１３】初期設定システムが実行する処理手順の一例を示すフローチャートである。
【図１４】データ更新のサブルーチンの一例を示すフローチャートである。
【図１５】初期設定ファイル読出のサブルーチンの一例を示すフローチャートである。
【図１６】仮想環境構築のサブルーチンの一例を示すフローチャートである。
【図１７】ダウンロード処理のサブルーチンの一例を示すフローチャートである。
【図１８】認証処理のサブルーチンの一例を示すフローチャートである。
【図１９】復号処理のサブルーチンの一例を示すフローチャートである。
【図２０】検証処理のサブルーチンの一例を示すフローチャートである。
【図２１】ファイル変換のサブルーチンの一例を示すフローチャートである。
【図２２】初期設定内容の書き込み処理のサブルーチンの一例を示すフローチャートである。
【図２３】実施の形態２に係る暗号化ファイルの復号処理に関する説明図である。
【図２４】実施の形態２に係る復号処理のサブルーチンの一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、初期設定システムの構成例を示す模式図である。本実施の形態では、ＩｏＴデバイスであるデバイス１の初期設定処理を行うシステムについて説明する。初期設定システムは、デバイス１の初期設定作業を行うＰＣ３と、初期設定に必要な各種データをＰＣ３に配信する管理サーバ４及び配布サーバ５、５、５…とを有する。各装置は、インターネット等のネットワークＮを介して通信接続されている。
【００１７】
デバイス１は、ネットワークＮに接続されて種々の処理を行う電子機器であり、例えば監視カメラ、多機能端末、車両に搭載されたＥＣＵ（Electronic Control Unit）、生産設備やインフラ設備の異常監視装置等、種々の機器であり得る。後述するように、デバイス１には耐タンパ性を有するセキュアエレメント２０が予め搭載されており、セキュアエレメント２０に、初期設定の手順を記述した初期設定ファイル２７１が格納されている（図２等参照）。ＰＣ３は、自装置に接続されたデバイス１のセキュアエレメント２０から初期設定ファイル２７１を読み出し、初期設定ファイル２７１に記述された初期設定手順に従って管理サーバ４及び配布サーバ５、５、５…から各種データを取得し、初期設定作業を行う。ＰＣ３は、初期設定内容をデバイス１の記憶領域に書き込み、デバイス１を起動可能な状態にする。
【００１８】
ＰＣ３は、種々の情報処理、情報の送受信が可能なパーソナルコンピュータであり、デバイス１の運用者が操作する端末装置である。なお、運用者はＩｏＴサービスを提供する事業者であってもよく、デバイス１のエンドユーザであってもよい。運用者は、ＰＣ３にデバイス１を接続し、初期設定に係る処理をＰＣ３に実行させる。後述するように、ＰＣ３には仮想マシン（仮想環境）を構築するためのソフトウェア上、又はハードウェア上の仮想化基盤が用意されており、ＰＣ３は、仮想化基盤上に仮想マシンを構築し、仮想マシンにおいてデバイス１の初期設定を行う。
【００１９】
管理サーバ４は、本システムを管理する管理者のサーバ装置であり、最新の初期設定ファイル２７１等を管理する管理装置である。上述の如く、デバイス１のセキュアエレメント２０には初期設定ファイル２７１が格納されているが、管理サーバ４は、当該初期設定ファイル２７１の最新データを保持している。デバイス１は、ＰＣ３に初期設定ファイル２７１をダウンロードさせる際に最新のファイルを管理サーバ４から取得し、ＰＣ３に出力する。
【００２０】
配布サーバ５は、初期設定に必要な対象ファイルをＰＣ３に配布するサーバ装置であり、初期設定対象であるＯＳ、アプリケーション等の実行ファイル、あるいはソースコードを保持している。ＰＣ３は、初期設定ファイル２７１の記述に従って配布サーバ５にアクセスし、各種ファイルをダウンロードして初期設定作業を行う。本実施の形態では、ＰＣ３は配布サーバ５ａ、５ｂからそれぞれ仮想マシンを構築するために必要なＯＳイメージ及びビルドツールをダウンロードすると共に、配布サーバ５ｃ〜５ｆからそれぞれ、デバイス１に初期設定するＯＳ、アプリケーション等の対象ファイルをダウンロードし、仮想マシン上に展開する。
【００２１】
図２は、デバイス１及びＰＣ３の構成例を示すブロック図である。
デバイス１は、デバイス本体１０と、セキュアエレメント２０とを有する。デバイス本体１０は、ＳｏＣ（System on Chip）により構成され、デバイス１の多く又は全部の機能を実現するデバイス１の本体部分である。セキュアエレメント２０は、デバイス本体１０とは物理的又は論理的に分離されたハードウェアであり、外部からの攻撃に対して耐タンパ性を有するチップである。セキュアエレメント２０は内部に不揮発性メモリを有し、データを安全に保管する。なお、セキュアエレメント２０はＵＩＣＣ（Universal Integrated Circuit Card）のように、デバイス１に対して着脱自在な構成であってもよい。デバイス本体１０及びセキュアエレメント２０は、例えばＩＳＯ（International Organization Standardization）７８１６、ＳＰＩ（Serial Peripheral Interface）等の規格で相互に接続されている。
【００２２】
デバイス本体１０は、制御部１１、記憶部１２、内部Ｉ／Ｆ１３、及び外部Ｉ／Ｆ１４を備える。
制御部１１は、一又は複数のＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）等の演算処理装置を有し、デバイス１に係る種々の情報処理、制御処理を行う。記憶部１２は、ＲＡＭ（Random Access Memory）等の揮発性メモリ、及びＲＯＭ（Read Only Memory）等の不揮発性メモリを有し、制御部１１が処理を実行するために必要な各種データを記憶する。
【００２３】
記憶部１２の不揮発性メモリには、初期設定によって通常動作時のソフトウェアをインストールすべきインストール領域１２ａと、デバイス１の出荷前に製造者が書き込みを行うプリインストール領域１２ｂとが用意されている。インストール領域１２ａは、デバイス１の基本動作を制御するＯＳや各種アプリケーションの実行ファイルが格納される記憶領域であり、デバイス１の出荷時には何も書き込まれていない。一方、プリインストール領域１２ｂには、デバイス１を起動するためのブートローダ１２１のほか、初期設定を行うために最低限必要な通信機能に関わるソフトウェア等が書き込まれている。
【００２４】
内部Ｉ／Ｆ１３は、セキュアエレメント２０と情報の入出力を行うための内部インターフェイスであり、上述の如く、ＩＳＯ７８１６、ＳＰＩ等の規格で情報の入出力を行う。外部Ｉ／Ｆ１４は、デバイス１外部と情報の入出力を行うための外部インターフェイスであり、例えばＵＳＢ、Ｅｔｈｅｒｎｅｔ（登録商標）、Ｗｉ−ｆｉ（登録商標）等の双方向通信が可能なインターフェイスである。
【００２５】
セキュアエレメント２０は、更新部２１、運用者認証部２２、認証情報生成部２３、復号部２４、検証部２５、入出力Ｉ／Ｆ２６、及び記憶部２７を備える。
更新部２１は、管理サーバ４から最新の初期設定ファイル２７１を取得し、初期設定ファイル２７１の更新を行う。運用者認証部２２は、初期設定ファイル２７１をＰＣ３に出力（ダウンロード）する際に、アクセス者が正当な権限を有する運用者であることを確認する認証処理を行う。認証情報生成部２３は、ＰＣ３が配布サーバ５から対象ファイルをダウンロードする際、配布サーバ５が行う認証に必要な認証情報を生成する。復号部２４は、ＰＣ３が配布サーバ５から暗号化された対象ファイルをダウンロードした場合に、当該ファイルの復号処理を行う。検証部２５は、ＰＣ３が配布サーバ５から署名（付加情報）付きの対象ファイルをダウンロードした場合に、当該署名の検証処理を行う。入出力Ｉ／Ｆ２６は、デバイス本体１０との間で情報の入出力を行うインターフェイスである。
【００２６】
記憶部２７は不揮発性メモリであり、初期設定ファイル２７１、ビルドスクリプト２７１ａ、ＰＩＮ（Personal Identification Number）コード２７２、更新用鍵２７３、証明書２７４、認証用鍵２７５、暗号鍵２７６、検証用鍵２７７、シリアル番号２７８を記憶している。
【００２７】
初期設定ファイル２７１は、ＰＣ３上で仮想マシンの構築を行い、デバイス１の初期設定を自動で行うための手順を保持するファイルである。初期設定ファイル２７１に記述された初期設定手順には大別して、ＰＣ３に初期設定環境である仮想マシンを構築させる手順、初期設定に必要な各対象ファイルを配布サーバ５からダウンロードする手順、及びデバイス本体１０に書き込む対象ファイルをビルドし、デバイス本体１０にインストールする手順が含まれている。ビルドスクリプト２７１ａは、上記で説明した対象ファイルのビルド及びインストールに係る具体的な処理手順を記述したスクリプトである。
【００２８】
ＰＩＮコード２７２は、運用者認証部２２が運用者の認証を行う際に照合する値であり、セキュアエレメント２０毎に設定された個別の値である。更新用鍵２７３及び証明書２７４は、セキュアエレメント２０と管理サーバ４との間でエンドツーエンドの秘匿通信路を確立するための鍵値及び証明書である。
【００２９】
認証用鍵２７５、暗号鍵２７６、及び検証用鍵２７７はそれぞれ、配布サーバ５との間で対象ファイルの送受信を行う際に必要な鍵情報である。認証用鍵２７５は、認証情報生成部２３において認証情報を生成する際に用いる鍵値である。暗号鍵２７６は、復号部２４が暗号化された対象ファイルを復号する際に用いる鍵値である。検証用鍵２７７は、検証部２５が対象ファイルに添付された署名を検証する際に用いる鍵値である。
【００３０】
シリアル番号２７８は、セキュアエレメント２０の個体識別情報であり、セキュアエレメント２０毎に個別に付与される一意の番号である。シリアル番号２７８は、セキュアエレメント２０（デバイス１）の工場出荷時に設定される変更不可能な値であり、セキュアエレメント２０の個体識別に利用される。
【００３１】
ＰＣ３は、制御部３１、主記憶部３２、通信部３３、表示部３４、入力部３５、入出力Ｉ／Ｆ３６、及び補助記憶部３７を備える。
制御部３１は、一又は複数のＣＰＵ、ＭＰＵ等の演算装置を備え、ＰＣ３に係る種々の情報処理、制御処理を行う。主記憶部３２は、ＲＡＭ等の揮発性メモリであり、制御部３１が処理を実行する上で必要なデータを一時的に記憶する。通信部３３は、通信に関する処理を行う処理回路等を有し、ネットワークＮを介して管理サーバ４、配布サーバ５等と通信を行う。表示部３４は、液晶ディスプレイ等の表示装置であり、制御部３１から与えられた画像を表示する。入力部３５は、キーボード、マウス等の操作インターフェイスであり、運用者による操作入力を受け付ける。入出力Ｉ／Ｆ３６は、デバイス本体１０の外部Ｉ／Ｆ１４に接続される通信インターフェイスである。補助記憶部３７は、ＲＯＭ等の不揮発性メモリであり、ＰＣ３が処理を行うために必要なプログラムＰ、その他のデータを記憶している。
【００３２】
以下では図３〜図１２を用いて、デバイス１の初期設定処理の具体的な処理内容について説明する。図３は、初期設定ファイル２７１の更新処理に関する説明図である。ＰＣ３は、自装置に接続されたデバイス１のセキュアエレメント２０から、初期設定作業に必要な初期設定ファイル２７１を読み出し、予め用意された仮想化基盤６０上に仮想的な実行環境を構築して、当該仮想環境においてデバイス１の初期設定を行う。なお、仮想化基盤６０については後述する。初期設定ファイル２７１を読み出す場合に、セキュアエレメント２０はＰＣ３を介して管理サーバ４と通信を行い、最新の初期設定ファイル２７１、及び最新の鍵情報を管理サーバ４からダウンロードし、各種データを更新する。
【００３３】
図３において符号Ｐ１〜Ｐ８で示す処理プロセスについて、順に説明する。なお、図３では図示の便宜のため、デバイス本体１０の内部Ｉ／Ｆ１３及び外部Ｉ／Ｆ１４、セキュアエレメント２０の入出力Ｉ／Ｆ２６、並びにＰＣ３の入出力Ｉ／Ｆ３６を点線の矩形枠で図示している。
まず運用者は、デバイス１をＰＣ３に接続してデバイス１の電源を投入し、入力部３５を介して初期設定ファイル２７１の読出要求に係る操作入力を行う（Ｐ１）。ＰＣ３の制御部３１は、入力された読出要求をデバイス本体１０に出力する（Ｐ２）。読出要求を受け付けた場合、デバイス本体１０は、読出要求をセキュアエレメント２０に転送する（Ｐ３）。
【００３４】
読出要求を受け付けた場合、セキュアエレメント２０の更新部２１は、初期設定ファイル２７１の読み出しに先立ち、デバイス本体１０及びＰＣ３に対して管理サーバ４との間の通信路の開設を要求する（Ｐ４）。デバイス本体１０及びＰＣ３は、セキュアエレメント２０からの要求に従い、セキュアエレメント２０と管理サーバ４との間の通信路を開設する（Ｐ５）。通信路の確立方法は特に限定されないが、例えばセキュアエレメント２０にＩＰアドレスを付与した上で、セキュアエレメント２０及び管理サーバ４の間に、ＴＣＰ（Transmission Control Protocol）に従って情報の伝送を行う通信路を確立する。
【００３５】
ここで更新部２１は、更新用鍵２７３及び証明書２７４を用いて、通信路を秘匿化する（Ｐ６）。セキュアエレメント２０及び管理サーバ４は、更新用鍵２７３及び証明書２７４を共有している。セキュアエレメント２０及び管理サーバ４は、自身が送信するデータに対して更新用鍵２７３及び証明書２７４を含む電子署名を付して送信し、互いにデータを確認して通信を行うことで、通信内容を秘匿化した秘匿通信路を確立する。
【００３６】
セキュアエレメント２０は、秘匿化した通信路を介して、最新の初期設定ファイル２７１を管理サーバ４からダウンロードし、初期設定ファイル２７１を更新する（Ｐ７）。図３の例では、ファイル更新により、配布サーバ５からダウンロードする対象ファイル（デバイス１にインストールするＯＳカーネル）のバージョンが「２．６．１」から「４．８．４」に変化している。これにより、後述するダウンロード時に、ＰＣ３は最新の対象ファイルをダウンロードする。
【００３７】
また、セキュアエレメント２０は秘匿通信路を介して、初期設定作業に用いる最新の鍵情報を管理サーバ４からダウンロードし、鍵情報を更新する（Ｐ８）。鍵情報は、配布サーバ５との間で対象ファイルの送受信を行う際に用いる鍵値であり、上述の認証用鍵２７５、暗号鍵２７６、及び検証用鍵２７７である。セキュアエレメント２０は、各種鍵の最新版を管理サーバ４からダウンロードし、自身が保持する鍵値を上書きする。セキュアエレメント２０は、最新の鍵情報を用いて対象ファイルを配布サーバ５からダウンロードしていく。
【００３８】
図４は、初期設定ファイル２７１の読出処理に関する説明図である。初期設定ファイル２７１及び鍵情報の更新後、ＰＣ３は初期設定ファイル２７１の読み出しを開始する。図４において符号Ｐ２１〜Ｐ２７に示す処理プロセスについて、順に説明する。
ＰＣ３の制御部３１は、運用者による操作入力を受け付け、デバイス１に対し初期設定ファイル２７１の読み出しを要求する（Ｐ２１）。デバイス本体１０は、ＰＣ３から受け付けた読出要求をセキュアエレメント２０に転送する（Ｐ２２）。
【００３９】
読出要求を受け付けた場合、セキュアエレメント２０は、正当な運用者による読出要求であるか否かを確認するため、運用者情報の入力をＰＣ３に要求する（Ｐ２３）。例えばセキュアエレメント２０は、ＰＩＮコード２７２の入力を要求する。ＰＩＮコード２７２は、正当な権限を有する運用者に予め通知されているコードであり、セキュアエレメント２０毎に個別に設定された値である。セキュアエレメント２０は、製造時においてＰＩＮコード２７２が設定され、内部の不揮発性メモリ（記憶部２７）に保持してある。ＰＩＮコード２７２の出力要求を受け付けた場合、ＰＣ３は、入力部３５を介して運用者からＰＩＮコード２７２の入力を受け付け、セキュアエレメント２０に出力する（Ｐ２４）。
【００４０】
ＰＩＮコード２７２をＰＣ３から取得した場合、セキュアエレメント２０の運用者認証部２２は、取得したＰＩＮコード２７２と、自身が保持するＰＩＮコード２７２とを照合する（Ｐ２５）。ＰＩＮコード２７２が不一致である場合、セキュアエレメント２０は処理を中断し、初期設定ファイル２７１の読み出しを行わない。
【００４１】
一方、ＰＩＮコード２７２が一致した場合、セキュアエレメント２０は、初期設定ファイル２７１を読み出してＰＣ３に出力する（Ｐ２６）。ＰＣ３は、取得した初期設定ファイル２７１を仮想化基盤６０に解釈させ、初期設定ファイル２７１に基づく初期設定処理の実行を開始する（Ｐ２７）。
【００４２】
仮想化基盤６０は、デバイス１の初期設定を行う仮想環境を構築するためのハードウェア上及びソフトウェア上のコンピュータリソースであり、ＰＣ３内に予め用意されている。ＰＣ３は、セキュアエレメント２０から取得した初期設定ファイル２７１をコンパイルし、仮想化基盤６０に実行させる。これにより、後述する仮想マシン６１が仮想化基盤６０上に構築され、初期設定作業が可能となる。
【００４３】
なお、上記ではＰＩＮコード２７２を基に運用者の認証を行っているが、例えばパスワード、生体情報等のように、予め取り決められた運用者情報に基づいて運用者を認証可能であればよく、運用者の正当性を証明するための運用者情報はＰＩＮコード２７２に限定されない。
【００４４】
以降の処理でＰＣ３は、初期設定ファイル２７１に記述された手順に従って動作する。なお、初期設定ファイル２７１の記述内容、文法等は設計事項であり、ＰＣ３は、初期設定ファイル２７１の手順に従って自動的に動作可能であればよい。
【００４５】
図５は、仮想環境構築処理に関する説明図である。初期設定ファイル２７１をダウンロードしたＰＣ３はまず、初期設定作業を行うための仮想環境（仮想マシン６１）を仮想化基盤６０上に構築する。図３において符号Ｐ４１〜４３に示す処理プロセスについて、順に説明する。
ＰＣ３は、初期設定ファイル２７１に記述された、初期設定処理を実行する仮想環境を構築するための仮想環境用ＯＳイメージ７１をネットワークＮ経由でダウンロードする（Ｐ４１）。図５の例では、ＰＣ３は初期設定ファイル２７１の「ｂｕｉｌｄ−ｅｎｖｉｒｏｎｍｅｎｔ  ＯＳ」の記述に従い、仮想環境用ＯＳイメージ７１を配布している配布サーバ５ａにアクセスし、ダウンロードを行う。
【００４６】
ＰＣ３は、ダウンロードした仮想環境用ＯＳイメージ７１を仮想化基盤６０上で展開し、仮想マシン６１として起動する（Ｐ４２）。
【００４７】
また、ＰＣ３は、初期設定ファイル２７１で指定されたビルドツール７２をダウンロードし、起動した仮想マシン６１内に格納する（Ｐ４３）。ビルドツール７２は、ソースコードで記述されたソースファイルをコンピュータが解釈可能な実行ファイルに変換（ビルド）するためのツールであり、後述するように、ソースコードで配布される対象ファイルを変換するためのツールである。図５の例では、ＰＣ３は初期設定ファイル２７１の「ｇｅｔ  ｂｕｉｌｄ＿ｔｏｏｌ」の記述に従い、ビルドツール７２を配布している配布サーバ５ｂにアクセスし、ダウンロードを行う。
【００４８】
ＰＣ３は、上記のようにして初期設定作業用の仮想マシン６１を構築し、仮想マシン６１内で初期設定作業を行う。具体的には以下で説明するように、ＰＣ３は、デバイス１に初期設定するＯＳ、アプリケーション等の各種対象ファイルを配布サーバ５ｃ〜５ｆからダウンロードし、仮想マシン６１内に展開して、デバイス１のインストール領域１２ａに書き込んでいく。ここで、本実施の形態では、対象ファイルの配布元である各配布サーバ５ｃ〜５ｆのセキュリティポリシーに従い、対象ファイル毎に異なる配布方法を採用する。
【００４９】
図６は、対象ファイルの配布方法の一例を示す説明図である。図６に示す表では、ＰＣ３が配布サーバ５ｃ〜５ｆからダウンロードする対象ファイルと、各対象ファイルのダウンロード時に「認証」、「暗号化」、及び「検証」で表す各セキュリティ対策が必要か否かと、対象ファイルの配布形態（ファイル形式）とを示してある。
【００５０】
「認証」は、対象ファイルのダウンロード時に配布サーバ５ｄが要求元（ＰＣ３の運用者）に対して認証を行い、正当な権限を有する運用者であるか否かを認証するケースを表す。「暗号化」は、配布サーバ５ｅが対象ファイルを暗号化した上でＰＣ３に配信し、ＰＣ３側で対象ファイルの復号が要求されるケースを表す。「検証」は、配布サーバ５ｆが対象ファイルに電子署名を付した上で配信し、ＰＣ３側で電子署名を確認して、対象ファイルが改竄されているか否かを検証するケースを表す。なお、各ケースの具体的な処理内容については後述する。
【００５１】
配布形態は、対象ファイルをソースコード形式で配布するか、又は実行ファイル形式で配布するかを規定している。
【００５２】
図６に示すように、対象ファイルの配布元のポリシーに応じて、対象ファイルのダウンロード時に異なるシーケンスが必要となる。例えば「ａｕｔｈｏｒｉｚｅｄ＿ｓｏｆｔｗａｒｅ」で示す対象ファイルをダウンロードする場合には運用者の認証を行う必要があるが、「ｐｒｏｐｒｉｅｔａｒｙ＿ｓｏｆｔｗａｒｅ」で示す対象ファイルをダウンロードする場合には対象ファイルの復号を行う必要がある。本実施の形態では、初期設定ファイル２７１に各配布元のポリシーに応じたダウンロード方法（取得手順）を記述しておき、ＰＣ３は、初期設定ファイル２７１の記述に従って異なる処理手順でダウンロードを行う。
【００５３】
図７は、特段のセキュリティを要さない配布ケースを示す説明図である。ＰＣ３は、初期設定ファイル２７１に記述された、「ＩｏＴデバイス用ＯＳ  ｋｅｒｎｅｌ」で示す対象ファイル７３を配布サーバ５ｃからダウンロードする。図７の例では、ＰＣ３は「ｇｅｔ  ＯＳ＿ｋｅｒｎｅｌ  ４．８．３」の記述に従ってダウンロードを行う。対象ファイル７３のケースでは、後述する対象ファイル７４〜７６とは異なり、初期設定ファイル２７１においてセキュリティポリシーに関わるダウンロード手順（取得手順）が記述されていない。従って、ＰＣ３は特段のセキュリティ対策処理を行うことなく、ダウンロードした対象ファイル７３をそのまま仮想マシン６１に格納する。
【００５４】
図８は、認証処理を伴う配布ケースを示す説明図である。図８では、「ａｕｔｈｏｒｉｚｅｄ  ｓｏｆｔｗａｒｅ」で示す対象ファイル７４をダウンロードする場合に、ＰＣ３と配布サーバ５ｄとの間で認証処理を行う様子を図示している。図８において符号Ｐ６１〜６７で示す処理プロセスについて、順に説明する。
【００５５】
まずＰＣ３（仮想化基盤６０）は、初期設定ファイル２７１の記述に従い、対象ファイル７４を配布している配布サーバ５ｄに対し、対象ファイル７４の配信を要求する（Ｐ６１）。図８の例では、ＰＣ３は「ｇｅｔ  ａｕｔｈｏｒｉｚｅｄ＿ｓｏｆｔｗａｒｅ」の記述に従い、「ａｕｔｈｏｒｉｚｅｄ  ｓｏｆｔｗａｒｅ」で示す対象ファイル７４の背信を要求する。
【００５６】
ＰＣ３から配信要求を受け付けた場合、配布サーバ５ｄは、当該要求が正当な要求であるか否かを確認するため、ＰＣ３に対して認証情報の送信を要求する（Ｐ６２）。認証情報は、配布サーバ５ｄとセキュアエレメント２０との間で共有する秘密の情報に基づいてセキュアエレメント２０が生成する情報である。本実施の形態では、セキュアエレメント２０は配布サーバ５ｄとの間で秘密の認証用鍵２７５（鍵情報）を共有し、認証用鍵２７５を用いて認証情報を生成する。
【００５７】
なお、配布サーバ５ｄとセキュアエレメント２０との間で共有する秘密情報はどのような種類の情報であってもよく、例えば上記のＰＩＮコード２７２、又はパスワード、ＭＡＣ等であってもよい。
【００５８】
認証情報の送信要求を受け付けた場合、ＰＣ３は、セキュアエレメント２０に対して認証情報の出力を要求する（Ｐ６３）。図８の例では、ＰＣ３は、初期設定ファイル２７１の「――ＡｕｔｈＷｉｔｈＳＥ」の記述に基づき、セキュアエレメント２０から認証情報を取得する必要があることを確認する。ＰＣ３は当該記述に従い、デバイス本体１０を介してセキュアエレメント２０に対し、認証情報の出力要求を送信する。
【００５９】
認証情報の出力要求を受け付けた場合、セキュアエレメント２０の認証情報生成部２３は、自身が保持する秘密情報を基に認証情報を生成する（Ｐ６４）。本実施の形態では、認証情報生成部２３は、配布サーバ５ｄとの間で共有する認証用鍵２７５と、セキュアエレメント２０の個体識別情報であるシリアル番号２７８とに基づいてＭＡＣ（Message Authentication Code）を生成し、シリアル番号２７８及びＭＡＣを認証情報としてＰＣ３に出力する（Ｐ６５）。
【００６０】
ＰＣ３は、セキュアエレメント２０から出力された認証情報を配布サーバ５ｄに送信する（Ｐ６６）。配布サーバ５ｄは、ＰＣ３から受信した認証情報を、自身が保持する認証用鍵２７５を用いて検証し、セキュアエレメント２０が生成した正当な情報であるか否かを判定する。具体的には、配布サーバ５ｄは、認証情報として添付されているシリアル番号２７８から、自身が保持する認証用鍵２７５を用いてＭＡＣを計算し、ＰＣ３から送信されたものと同一のＭＡＣを計算できたか否かを確認する。同一のＭＡＣが計算できなかった場合、配布サーバ５ｄは対象ファイル７４の配信を行わず、ダウンロードを拒否する。
【００６１】
正当な情報であると判定した場合、配布サーバ５ｄは、対象ファイル７４をＰＣ３に配信する（Ｐ６７）。ＰＣ３は、上述の仮想環境用ＯＳイメージ７１、ビルドツール７２と同様にダウンロードを行い、対象ファイル７４を仮想マシン６１に格納する。
【００６２】
なお、上記でセキュアエレメント２０は、自身の個体識別情報であるシリアル番号２７８に基づいて認証情報を生成しているが、セキュアエレメント２０ではなく、デバイス１の個体識別情報（製造番号等）によって認証情報を生成してもよい。また、認証情報の元となる個体識別情報は番号に限定されず、個体を一意に特定可能な情報であればよい。
【００６３】
図９は、暗号化された対象ファイル７５を配布するケースを示す説明図である。図９では、配布サーバ５ｅから暗号化して配信された対象ファイル７５をセキュアエレメント２０が復号し、仮想マシン６１に格納する様子を図示している。図９において符号Ｐ８１〜８６で示す処理プロセスについて、順に説明する。
【００６４】
ＰＣ３（仮想化基盤６０）は、初期設定ファイル２７１の記述に従い、対象ファイル７５を配信する配布サーバ５ｅにアクセスして、対象ファイル７５の配信を要求する（Ｐ８１）。図９の例では、ＰＣ３は「ｇｅｔ  ｐｒｏｐｒｉｅｔａｒｙ＿ｓｏｆｔｗａｒｅ」の記述に従い、「ｐｒｏｐｒｉｅｔａｒｙ  ｓｏｆｔｗａｒｅ」で示す対象ファイル７５の配信を要求する。
【００６５】
配信要求を受け付けた場合、配布サーバ５ｅは、セキュアエレメント２０との間で共有する暗号鍵２７６に基づいて対象ファイル７５を暗号化した上で、ＰＣ３に配信する（Ｐ８２）。暗号鍵２７６は、例えば共通鍵方式の共通鍵、公開鍵方式の秘密鍵等であるが、対象ファイル７５を暗号化可能であればよく、暗号化の方式は特に限定されない。
【００６６】
暗号化された対象ファイル７５を受信した場合、ＰＣ３は、対象ファイル７５をセキュアエレメント２０に送信し、対象ファイル７５の復号を要求する（Ｐ８３）。図９の例では、ＰＣ３は初期設定ファイル２７１の「――ＤｅｃｒｙｐｔＳＥ」の記述を参照して、セキュアエレメント２０が対象ファイル７５を復号すべきことを確認する。ＰＣ３は当該記述に従って、デバイス本体１０を介してセキュアエレメント２０に対し、対象ファイル７５の復号要求を送信する。
【００６７】
復号要求を受け付けた場合、セキュアエレメント２０の復号部２４は、セキュアエレメント２０が保持する暗号鍵２７６を用いて、対象ファイル７５の復号を行う（Ｐ８４）。セキュアエレメント２０が保持する暗号鍵２７６は、配布サーバ５ｅが保持する鍵と同一の共通鍵、又は対応する公開鍵等であるが、配布サーバ５ｅが暗号化した対象ファイル７５を復号可能であればよい。
【００６８】
セキュアエレメント２０は、復号した対象ファイル７５をＰＣ３に返送する（Ｐ８５）。ＰＣ３は、セキュアエレメント２０から取得した対象ファイル７５を仮想マシン６１に格納する（Ｐ８６）。
【００６９】
図１０は、対象ファイルの検証処理を伴う配布ケースを示す説明図である。図１０では、配布サーバ５ｆが対象ファイル７５に改竄検証用の付加情報（例えば電子署名）を付して配信を行い、セキュアエレメント２０が付加情報の検証を行い、検証結果に応じてＰＣ３が仮想マシン６１に対象ファイル７５を格納する様子を図示している。図１０において符号Ｐ１０１〜Ｐ１０７に示す処理プロセスについて、順に説明する。
【００７０】
ＰＣ３（仮想化基盤６０）は、初期設定ファイル２７１の記述に従い、対象ファイル７６の配信を配布サーバ５ｆに要求する（Ｐ１０１）。図１０の例では、ＰＣ３は「ｇｅｔ  ｃｏｒｒｅｃｔ＿ｓｏｆｔｗａｒｅ」の記述に基づき、「ｃｏｒｒｅｃｔ  ｓｏｆｔｗａｒｅ」で示す対象ファイル７６の配信を要求する。
【００７１】
配信要求を受け付けた場合、配布サーバ５ｆは、セキュアエレメント２０との間で共有する検証用鍵２７７を用いて付加情報を生成し、対象ファイル７６に付加する（Ｐ１０２）。例えば配布サーバ５ｆは秘密鍵を、セキュアエレメント２０は公開鍵を検証用鍵２７７として保持している。配布サーバ５ｆは、自身が保持する秘密鍵を用いて、対象ファイル７６の情報から電子署名を生成する。例えば配布サーバ５ｆは、対象ファイル７６のハッシュ値を計算し、当該ハッシュ値に対して自身が保持する秘密鍵を用いて、電子署名を生成する。配布サーバ５ｆは、生成した電子署名を対象ファイル７６に添付する。配布サーバ５ｆは、付加情報が付された対象ファイル７６をＰＣ３に配信する（Ｐ１０３）。
【００７２】
配布サーバ５ｆから対象ファイル７６を取得した場合、ＰＣ３は、付加情報の検証をセキュアエレメント２０に要求する（Ｐ１０４）。図１０の例では、ＰＣ３は初期設定ファイル２７１の「――ＶｅｒｉｆｙＳＥ」の記述を参照して、セキュアエレメント２０が付加情報の検証を行うべきことを確認する。ＰＣ３は、付加情報と、対象ファイル７６に関する情報とをセキュアエレメント２０に送信し、検証を要求する。対象ファイル７６に関する情報は、例えば対象ファイル７６のハッシュ値であり、ＰＣ３はハッシュ値を計算してセキュアエレメント２０に送信する。
【００７３】
検証要求を受け付けた場合、セキュアエレメント２０の検証部２５は、配布サーバ５ｆとの間で共有する検証用鍵２７７と、ＰＣ３から取得した対象ファイル７６に関する情報とに基づき、ＰＣ３から取得した付加情報の検証を行う（Ｐ１０５）。例えばセキュアエレメント２０は、自身が保持する公開鍵を用いて電子署名を復号し、ＰＣ３から取得した対象ファイル７６のハッシュ値と照合して、対象ファイル７６の改竄の有無を判定する。
【００７４】
セキュアエレメント２０は、検証結果をＰＣ３に返信する（Ｐ１０６）。ＰＣ３は、改竄が行われている旨の検証結果を取得した場合、対象ファイル７６のダウンロードを中断する。一方、改竄が行われておらず、正当な対象ファイル７６である旨の検証結果を取得した場合、ＰＣ３は、対象ファイル７６を仮想マシン６１に格納する（Ｐ１０７）。
【００７５】
図１１は、対象ファイルを実行ファイルに変換する変換処理に関する説明図である。図１１では、ソースコードで配布されている対象ファイルを実行ファイルに変換（ビルド）する様子を図示している。
【００７６】
図６で説明したように、各配布サーバ５から配布される対象ファイルは、配布形態（ファイル形式）も異なっている。具体的には、配布サーバ５ｃ、５ｄはそれぞれ、他の配布サーバ５とは異なり、実行ファイルではなくソースファイルを配布している。ソースコードで記述された対象ファイルは、デバイス１がそのまま実行することができないため、実行ファイルに変換（ビルド）してデバイス１が実行可能にする必要がある。一般的に、当該変換作業はコンパイル（プログラム言語から機械言語への変換）と、リンク（ファイル間の呼び出し関係の解決）とから成り、複雑な作業となる。本実施の形態では、セキュアエレメント２０に格納されているビルドスクリプト２７１ａに当該変換作業の処理手順が記述されており、ＰＣ３はビルドスクリプト２７１ａを参照して自動的に対象ファイルの変換を行う。
【００７７】
図１１において符号Ｐ１２１〜１２３で示す処理プロセスについて、順に説明する。ＰＣ３（仮想化基盤６０）はまず、初期設定ファイル２７１の記述に基づき、セキュアエレメント２０に対してビルドスクリプト２７１ａの出力を要求する（Ｐ１２１）。図１１の例では、セキュアエレメント２０は初期設定ファイル２７１の「ｃｏｐｙＦｒｏｍＳＥ  ｂｕｉｌｄ＿ｓｃｒｙｐｔ」の記述に従い、ビルドスクリプト２７１ａの出力を、デバイス本体１０を経由してセキュアエレメント２０に要求する。セキュアエレメント２０は、ビルドスクリプト２７１ａをＰＣ３に出力する（Ｐ１２２）。
【００７８】
ＰＣ３は、初期設定ファイル２７１の記述に従い、仮想マシン６１上でビルドスクリプト２７１ａを実行して、ソースコードとして配布された対象ファイルを実行ファイルに変換する（Ｐ１２３）。図１１の例では、ＰＣ３は初期設定ファイル２７１の「ｒｕｎ  ｂｕｉｌｄ＿ｓｃｒｙｐｔ」の記述に従ってビルドスクリプト２７１ａを実行し、ビルドツール７２を起動する。ＰＣ３はビルドツール７２を用いて、ソースコードで配信された「ＩｏＴデバイス用ＯＳイメージ」及び「ａｕｔｈｏｒｉｚｅｄ  ｓｏｆｔｗａｒｅ」の対象ファイル７３、７４を実行ファイルに変換する。
【００７９】
図１２は、初期設定内容の書き込み処理に関する説明図である。図１２では、ＰＣ３が仮想マシン６１で設定した初期設定内容をデバイス１のインストール領域１２ａに書き込む様子を図示している。
ＰＣ３は、初期設定ファイル２７１（ビルドスクリプト２７１ａ）の記述に基づき、仮想マシン６１に展開した対象ファイルをデバイス１のインストール領域１２ａに書き込む（Ｐ１４１）。図１２の例では、ＰＣ３は、ビルドスクリプト２７１ａの「ｃｏｐｙ  ｔｏ  ＩｏＴ  Ｄｅｖｉｃｅ  ａｌｌ」の記述に従い、「ＩｏＴデバイス用ＯＳ  ｋｅｒｎｅｌ」で示すデバイス１用のＯＳカーネル（対象ファイル７３）と、各種アプリケーションの実行ファイル（対象ファイル７４〜７６）とをデバイス本体１０に出力する。デバイス本体１０は、対象ファイル７３〜７６を、不揮発性メモリ（記憶部１２）内のインストール領域１２ａに格納する。また、ＰＣ３は、デバイス１の電源投入時にインストール領域１２ａに格納したＯＳカーネルを起動するよう、プリインストール領域１２ｂのブートローダ１２１を設定する（Ｐ１４２）。以上より、デバイス１の初期設定が完了する。
【００８０】
上記のように、安全なセキュアエレメント２０に初期設定ファイル２７１を格納しておき、デバイス１に接続されたＰＣ３がセキュアエレメント２０を読み出し、初期設定ファイル２７１の手順に従って仮想環境（仮想マシン６１）を構築して初期設定作業を行う。これにより、セキュリティを担保しつつ、デバイス１の初期設定を自動的に行うことができる。
【００８１】
なお、上記では初期設定ファイル２７１及びビルドスクリプト２７１ａを別々のものとして図示及び説明を行ったが、上記の区別は本質的事項ではなく、ＰＣ３は、セキュアエレメント２０に予め格納されているファイルに記述された設定手順に従って自動的に初期設定を行うことができればよい。
【００８２】
また、上記ではローカルＰＣであるＰＣ３において初期設定作業を行ったが、クラウド上に仮想化基盤を用意しておき、クラウド上で仮想マシンを構築し、初期設定作業を行ってもよい。つまり、初期設定作業を行うコンピュータはデバイス１に直接的に接続されたコンピュータである必要はなく、ネットワークＮを介して通信接続されたコンピュータであってもよい。
【００８３】
図１３は、初期設定システムが実行する処理手順の一例を示すフローチャートである。図１３に基づき、本実施の形態の全般的な処理フローについて説明する。
例えばデバイス１がＰＣ３に接続され、デバイス１の電源が投入された場合、本システムは一連の処理をスタートする。デバイス１のセキュアエレメント２０は、接続されたＰＣ３を介して管理サーバ４とネットワーク通信を行い、管理サーバ４から最新の初期設定ファイル２７１及び鍵情報を取得して、自身が保持する各種データを更新する（ステップＳ１１）。初期設定ファイル２７１は、デバイス１の初期設定手順が記述されたファイルである。鍵情報は、ＰＣ３と配布サーバ５との間で対象ファイルの送受信を行う際に用いる鍵値であり、認証用鍵２７５、暗号鍵２７６、検証用鍵２７７を含む。ＰＣ３の制御部３１は、更新後の初期設定ファイル２７１をセキュアエレメント２０から読み出す（ステップＳ１２）。
【００８４】
制御部３１は、初期設定ファイル２７１を参照して、仮想化基盤６０上に仮想環境を構築する（ステップＳ１３）。仮想環境は、ＰＣ３の通常のＯＳとは別のＯＳで動作する動作環境であり、ＰＣ３のソフトウェア及びハードウェア上のコンピュータリソースを用いて構築される仮想マシン６１である。制御部３１は、初期設定作業を行う仮想マシン６１を構築するための仮想環境用ＯＳイメージ７１と、仮想マシン６１内で対象ファイルのビルド（変換）を行うためのビルドツール７２とを配布サーバ５から取得し、仮想マシン６１を構築した上、ビルドツール７２を仮想マシン６１内に格納する。
【００８５】
制御部３１は初期設定ファイル２７１を参照して、デバイス１に初期設定するＯＳ、アプリケーション等の対象ファイルを各配布サーバ５から順次取得し、仮想環境に格納するダウンロード処理を実行する（ステップＳ１４）。
【００８６】
制御部３１は、ステップＳ１４で仮想環境に格納した対象ファイルのうち、ソースコードで記述された対象ファイル（ソースファイル）を実行ファイルに変換する変換処理を実行する（ステップＳ１５）。具体的には、制御部３１は、仮想マシン６１に格納したビルドツール７２を起動し、対象ファイルをビルドする。制御部３１は、仮想環境に格納された対象ファイルをデバイス１のインストール領域１２ａ（記憶領域）に書き込み（ステップＳ１６）、一連の処理を終了する。
【００８７】
図１４は、データ更新のサブルーチンの一例を示すフローチャートである。図１４に基づき、ステップＳ１１のサブルーチンについて説明する。
ＰＣ３の制御部３１は、運用者からの操作入力に従い、デバイス１のセキュアエレメント２０に対して初期設定ファイル２７１の読み出しを要求する（ステップＳ２１）。読出要求を受け付けた場合、セキュアエレメント２０は、管理サーバ４との間でＴＣＰ等のプロトコルで動作する通信路を開設する（ステップＳ２２）。
【００８８】
セキュアエレメント２０は、管理サーバ４との間で予め共有している更新用鍵２７３と、証明書２７４とに基づき、通信路を秘匿化する処理を行う（ステップＳ２３）。セキュアエレメント２０は、更新用鍵２７３及び証明書２７４を更新部２１に設定し、通信データに電子署名を付して管理サーバ４との間の通信を行う。
【００８９】
セキュアエレメント２０は、管理サーバ４に対し、最新の初期設定ファイル２７１及び鍵情報の送信を要求する（ステップＳ２４）。送信要求を受け付けた場合、管理サーバ４は、最新の初期設定ファイル２７１及び鍵情報をセキュアエレメント２０に送信するステップＳ２５）。
【００９０】
セキュアエレメント２０は、自身が保持している初期設定ファイル２７１を、管理サーバ４から受信した最新の初期設定ファイル２７１に更新する（ステップＳ２６）。また、セキュアエレメント２０は、初期設定作業に用いる各種鍵情報を、管理サーバ４から受信した最新の鍵情報に更新する（ステップＳ２７）。セキュアエレメント２０は、サブルーチンをリターンする。
【００９１】
図１５は、初期設定ファイル読出のサブルーチンの一例を示すフローチャートである。図１５に基づき、ステップＳ１２のサブルーチンの処理内容について説明する。
ＰＣ３の制御部３１は、初期設定ファイル２７１の読み出しを要求する（ステップＳ４１）。読出要求を受け付けた場合、セキュアエレメント２０は、読出要求を行った運用者の認証を行うため、運用者情報の入力をＰＣ３に要求する（ステップＳ４２）。運用者情報は、例えばＰＩＮコード２７２のほか、パスワード、生体情報等のように、運用者の正当性を証明可能な情報である。運用者情報は、デバイス１（セキュアエレメント２０）を購入した運用者と製造者との間で予め取り決められた情報であり、例えば製品出荷時にセキュアエレメント２０に格納される。セキュアエレメント２０は、運用者との間で予め取り決められた秘密の運用者情報に基づき、運用者の認証を行う。
【００９２】
運用者情報の出力要求を受け付けた場合、ＰＣ３の制御部３１は、運用者情報（ＰＩＮコード２７２等）の入力を受け付けてセキュアエレメント２０に送信する（ステップＳ４３）。セキュアエレメント２０は、ＰＣ３から取得した運用者情報と、記憶部１２に予め記憶してある運用者情報とを照合する（ステップＳ４４）。
【００９３】
セキュアエレメント２０は、運用者情報が一致したか否かを判定する（ステップＳ４５）。一致しないと判定した場合（Ｓ４５：ＮＯ）、セキュアエレメント２０は初期設定ファイル２７１を出力せず、一連の処理を終了する。一致すると判定した場合（Ｓ４５：ＹＥＳ）、セキュアエレメント２０は初期設定ファイル２７１をＰＣ３に出力する（ステップＳ４６）。セキュアエレメント２０から初期設定ファイル２７１を取得した場合、ＰＣ３の制御部３１は、仮想化基盤６０に初期設定ファイル２７１を解釈させて初期設定処理の実行を開始し（ステップＳ４７）、サブルーチンをリターンする。
【００９４】
図１６は、仮想環境構築のサブルーチンの一例を示すフローチャートである。図１６に基づき、ステップＳ１３のサブルーチンの処理内容について説明する。
ＰＣ３の制御部３１は、初期設定ファイル２７１を参照して、初期設定処理を実行する仮想環境を構築するための仮想環境用ＯＳイメージ７１を配布サーバ５ａから取得する（ステップＳ６１）。仮想環境用ＯＳイメージ７１は、ＰＣ３内の仮想化基盤６０上で動作する仮想マシン６１のＯＳイメージである。制御部３１は、取得した仮想環境用ＯＳイメージ７１に基づき、仮想環境を構築する（ステップＳ６２）。すなわち制御部３１は、仮想環境用ＯＳイメージ７１を展開して、仮想マシン６１を起動する。
【００９５】
制御部３１は、初期設定ファイル２７１を参照して、ソースコードを実行ファイルに変換（ビルド）するためのビルドツール７２を配布サーバ５ｂから取得し、仮想環境に格納する（ステップＳ６３）。制御部３１は、サブルーチンをリターンする。
【００９６】
図１７は、ダウンロード処理のサブルーチンの一例を示すフローチャートである。図１７に基づき、ステップＳ１４の処理内容について説明する。
ＰＣ３の制御部３１は、初期設定ファイル２７１を参照して、設定手順（取得手順）に記述された対象ファイルが、ダウンロード時に認証処理を伴う対象ファイルであるか否かを判定する（ステップＳ８１）。認証処理を伴う対象ファイルであると判定した場合（Ｓ８１：ＹＥＳ）、制御部３１は、セキュアエレメント２０に認証情報を生成させて配布サーバ５ｄに送信し、配布サーバ５ｃで認証が成功した場合に対象ファイルをダウンロードする認証処理を実行する（ステップＳ８２）。制御部３１は、処理をステップＳ８８に移行する。
【００９７】
認証処理を伴う対象ファイルでないと判定した場合（Ｓ８１：ＮＯ）、制御部３１は、設定手順に記述された対象ファイルが、暗号化して配信されるファイルであるか否かを判定する（ステップＳ８３）。暗号化された対象ファイルであると判定した場合（Ｓ８３：ＹＥＳ）、制御部３１は、暗号化された対象ファイルを配布サーバ５ｅからダウンロードし、セキュアエレメント２０に復号させる復号処理を実行する（ステップＳ８４）。制御部３１は、処理をステップＳ８８に移行する。
【００９８】
暗号化された対象ファイルでないと判定した場合（Ｓ８３：ＮＯ）、制御部３１は、設定手順に記述された対象ファイルが、ファイル改竄の検証処理が必要な対象ファイルであるか否かを判定する（ステップＳ８５）。検証処理が必要な対象ファイルであると判定した場合（Ｓ８５：ＹＥＳ）、制御部３１は、改竄検証用の付加情報が付された対象ファイルを配布サーバ５ｆからダウンロードし、セキュアエレメント２０に付加情報を検証させる検証処理を実行する（ステップＳ８６）。制御部３１は、処理をステップＳ８８に移行する。
【００９９】
検証処理が必要な対象ファイルでないと判定した場合（Ｓ８５：ＮＯ）、制御部３１は特段のセキュリティ処理を行わず、対象ファイルを配布サーバ５ｃから取得して仮想環境に格納する（ステップＳ８７）。
【０１００】
制御部３１は、初期設定ファイル２７１に規定された全ての対象ファイルをダウンロードしたか否かを判定する（ステップＳ８８）。全ての対象ファイルをダウンロードしていないと判定した場合（Ｓ８８：ＮＯ）、制御部３１は処理をステップＳ８１に戻し、次の設定手順に記述された対象ファイルを配布サーバ５からダウンロードする。全ての対象ファイルをダウンロードしたと判定した場合（Ｓ８８：ＹＥＳ）、制御部３１はサブルーチンをリターンする。
【０１０１】
図１８は、認証処理のサブルーチンの一例を示すフローチャートである。図１８に基づき、ステップＳ８２のサブルーチンの処理内容について説明する。
ＰＣ３の制御部３１は、配布サーバ５ｄに対し、対象ファイル７４の送信を要求する（ステップＳ１０１）。送信要求を受け付けた場合、配布サーバ５ｄは認証情報の出力をＰＣ３に対して要求する（ステップＳ１０２）。認証情報は、対象ファイル７４を要求する要求元の正当性を確認するための情報であり、セキュアエレメント２０と配布サーバ５ｄとの間で共有される認証用鍵２７５と、セキュアエレメント２０の個体識別情報であるシリアル番号２７８とに基づいて生成される。
【０１０２】
配布サーバ５ｄから認証情報の出力要求を受け付けた場合、ＰＣ３の制御部３１は、出力要求をセキュアエレメント２０に転送する（ステップＳ１０３）。ＰＣ３から認証情報の出力要求を受け付けた場合、セキュアエレメント２０は、記憶部１２に記憶してある認証用鍵２７５と、シリアル番号２７８とに基づき、認証情報を生成する（ステップＳ１０４）。例えばセキュアエレメント２０は、認証用鍵２７５及びシリアル番号２７８に基づいてＭＡＣを生成する。
【０１０３】
セキュアエレメント２０は、上記で生成したＭＡＣと、シリアル番号２７８とを認証情報としてＰＣ３に出力する（ステップＳ１０５）。セキュアエレメント２０から認証情報を取得した場合、ＰＣ３の制御部３１は、当該認証情報を配布サーバ５ｄに送信する（ステップＳ１０６）。
【０１０４】
ＰＣ３から認証情報を受信した場合、配布サーバ５ｄは当該認証情報に基づき、対象ファイル７４の要求元の正当性を認証する認証処理を行う（ステップＳ１０７）。具体的には、配布サーバ５ｄはセキュアエレメント２０と共有している認証用鍵２７５を用いてシリアル番号２７８からＭＡＣを生成（計算）し、ＰＣ３から受信したＭＡＣと同一の値を生成できたか否かを確認する。
【０１０５】
配布サーバ５ｄは、認証に成功したか否かを判定する（ステップＳ１０８）。認証に成功しなかったと判定した場合（Ｓ１０８：ＮＯ）、配布サーバ５ｄは対象ファイル７４をＰＣ３に送信せず、サブルーチンをリターンする。認証に成功したと判定した場合（Ｓ１０８：ＹＥＳ）、配布サーバ５ｄは対象ファイル７４をＰＣ３に送信する（ステップＳ１０９）。制御部３１は、配布サーバ５ｄから対象ファイル７４を取得して仮想環境に格納し（ステップＳ１１０）、サブルーチンをリターンする。
【０１０６】
図１９は、復号処理のサブルーチンの一例を示すフローチャートである。図１９に基づき、ステップＳ８４のサブルーチンの処理内容について説明する。
ＰＣ３の制御部３１は、対象ファイル７５の送信を配布サーバ５ｅに要求する（ステップＳ１２１）。送信要求を受け付けた場合、配布サーバ５ｅは、セキュアエレメント２０と共有している暗号鍵２７６を用いて対象ファイル７５を暗号化する（ステップＳ１２２）。配布サーバ５ｅは、暗号化した対象ファイル７５をＰＣ３に送信する（ステップＳ１２３）。
【０１０７】
配布サーバ５ｅから暗号化された対象ファイル７５を取得した場合、ＰＣ３の制御部３１は、当該対象ファイル７５をセキュアエレメント２０に転送し、対象ファイル７５の復号を要求する（ステップＳ１２４）。復号要求を受け付けた場合、セキュアエレメント２０は、自身が保持する暗号鍵２７６を用いて、対象ファイル７５を復号する。（ステップＳ１２５）。セキュアエレメント２０は、復号した対象ファイル７５をＰＣ３に返送する（ステップＳ１２６）。ＰＣ３の制御部３１は、セキュアエレメント２０が復号した対象ファイル７５を仮想環境に格納し（ステップＳ１２７）、サブルーチンをリターンする。
【０１０８】
図２０は、検証処理のサブルーチンの一例を示すフローチャートである。図２０に基づき、ステップＳ８６のサブルーチンの処理内容について説明する。
ＰＣ３の制御部３１は、対象ファイル７６の送信を配布サーバ５ｆに要求する（ステップＳ１４１）。送信要求を受け付けた場合、配布サーバ５ｄは、セキュアエレメント２０と共有している検証用鍵２７７と、配信対象である対象ファイル７５に関する情報とに基づき、改竄検証用の付加情報を生成する（ステップＳ１４２）。例えば配布サーバ５ｄは、対象ファイル７５のハッシュ値に対して秘密鍵（検証用鍵２７７）を用い、電子署名を生成する。
【０１０９】
配布サーバ５ｆは、生成した付加情報を付して対象ファイル７６をＰＣ３に送信する（ステップＳ１４３）。配布サーバ５ｆから付加情報が付された対象ファイル７６を取得した場合、ＰＣ３の制御部３１は、付加情報及び対象ファイル７６の情報をセキュアエレメント２０に転送し、付加情報の検証を要求する（ステップＳ１４４）。
【０１１０】
検証要求を受け付けた場合、セキュアエレメント２０は、自身が保持してある検証用鍵２７７を用いて、付加情報から対象ファイル７６に関する情報を復号する処理を行う（ステップＳ１４５）。例えばセキュアエレメント２０は、配布サーバ５ｆが保持する秘密鍵に対応する公開鍵を用いて、電子署名から対象ファイル７６のハッシュ値を復号する。セキュアエレメント２０は、ＰＣ３から取得した対象ファイル７６に関する情報（ハッシュ値）と、復号した情報とを照合することで、対象ファイル７６の改竄の有無を検証する（ステップＳ１４６）。
【０１１１】
セキュアエレメント２０は、検証結果をＰＣ３に返送する（ステップＳ１４７）。ＰＣ３の制御部３１は、セキュアエレメント２０から取得した検証結果を参照して、対象ファイル７６が改竄されているか否かを判定する（ステップＳ１４８）。改竄されていると判定した場合（Ｓ１４８：ＹＥＳ）、制御部３１は対象ファイル７６を仮想環境に格納せず、サブルーチンをリターンする。改竄されていないと判定した場合（Ｓ１４８：ＮＯ）、制御部３１は対象ファイル７６を仮想環境に格納し（ステップＳ１４９）、サブルーチンをリターンする。
【０１１２】
図２１は、ファイル変換のサブルーチンの一例を示すフローチャートである。図２１に基づき、ステップＳ１５のサブルーチンの処理内容について説明する。
ＰＣ３の制御部３１は、セキュアエレメント２０に対し、対象ファイルのビルド及びインストールの処理手順を記述したビルドスクリプト２７１ａの出力を要求する（ステップＳ１６１）。当該出力要求を受け付けた場合、セキュアエレメント２０はビルドスクリプト２７１ａを出力する（ステップＳ１６２）。ＰＣ３の制御部３１は、ビルドスクリプト２７１ａを実行し、ビルドツール７２を起動してソースコードの対象ファイルを実行ファイルに変換する（ステップＳ１６３）。制御部３１は、サブルーチンをリターンする。
【０１１３】
図２２は、初期設定内容の書き込み処理のサブルーチンの一例を示すフローチャートである。図２２に基づき、ステップＳ１６のサブルーチンの処理内容について説明する。
ＰＣ３の制御部３１は、仮想環境に展開した対象ファイルをデバイス本体１０に出力する（ステップＳ１８１）。対象ファイルは、デバイス１を動作させるＯＳ、アプリケーション等の実行ファイルである。ＰＣ３から対象ファイルを取得した場合、デバイス本体１０の制御部１１は、不揮発性メモリ（記憶部１２）のインストール領域１２ａに対象ファイルを書き込む（ステップＳ１８２）。また、制御部１１はＰＣ３からの指示に従い、インストール領域に記憶したデバイス１のＯＳカーネルを電源投入時に起動するようブートローダ１２１を設定し（ステップＳ１８３）、サブルーチンをリターンする。
【０１１４】
なお、上記では簡潔のため、一の対象ファイルをダウンロード時に一のセキュリティ対策（ダウンロード時の認証、ファイルの暗号化等のいずれか）しか行わないものとして説明したが、複数のセキュリティ対策を組み合わせてもよい。
【０１１５】
また、上記では別段説明しなかったが、ＰＣ３と配布サーバ５とは、セキュアエレメント２０又はデバイス１の識別情報（例えばシリアル番号２７８）を送受信しながら通信を行い、個々のデバイス１毎に対象ファイルのダウンロードの手順又は内容を変更してもよい。例えばセキュリティ対策のために用いる鍵情報をセキュアエレメント２０毎に個別化しておき、配布サーバ５はＰＣ３からセキュアエレメント２０の識別情報を受信して、個体毎に別々の鍵情報を用いてファイルの送受信を行う。また、例えば配布サーバ５は、セキュアエレメント２０の識別情報に応じて異なるファイルをダウンロードさせるようにしてもよい。このように、配布サーバ５から対象ファイルをダウンロードする際にセキュアエレメント２０の識別情報を送受信し、ダウンロードの手順又は内容を異ならせることで、より柔軟で安全なファイルのダウンロードを行うことができる。
【０１１６】
以上より、本実施の形態１によれば、耐タンパ性を有するセキュアエレメント２０に格納されている初期設定ファイル２７１を読み出し、当該ファイルに記述された手順で初期設定を行う。これにより、情報漏洩、停止、ＤｏＳ攻撃等によって初期設定の手順や内容が書き換えられるような事態を防止し、セキュリティを担保しながらも、初期設定を自動化することができる。
【０１１７】
また、本実施の形態１によれば、初期設定ファイル２７１で指定された対象ファイル７３〜７６をネットワークＮ経由で順次ダウンロードし、デバイス１のインストール領域１２ａに書き込むことができる。これにより、所望のソフトウェアをデバイス１へ自動的に組み込むことができ、適切な初期設定を行うことができる。
【０１１８】
また、本実施の形態１によれば、セキュアエレメント２０に保持してある鍵情報を用いてファイルの授受を行う。これにより、初期設定作業時の安全性を向上させることができる。特に本実施の形態では、対象ファイル毎に異なるセキュリティポリシーに合わせて初期設定ファイル２７１に各ファイルのダウンロード手順を規定し、別々の鍵を用いて別々の処理を行う。これにより、セキュリティポリシーが異なる各ファイルを柔軟に組み合わせて初期設定を行うことができる。
【０１１９】
また、本実施の形態１によれば、対象ファイルのダウンロード時にセキュアエレメント２０で認証情報を生成し、当該認証情報に基づく認証が成功した場合にファイルをダウンロード可能とする。これにより、デバイス１の正当な運用者のみにファイルの配布を限定することができ、かつ、認証用の鍵を適切に保護することができる。
【０１２０】
また、本実施の形態１によれば、対象ファイルを暗号化して配布し、セキュアエレメント２０においてファイルを復号する。これにより、内容を秘匿化したいファイルの解析を防止することができ、かつ、復号用の鍵を適切に保護することができる。
【０１２１】
また、本実施の形態１によれば、対象ファイルに電子署名等の付加情報を付して配布し、セキュアエレメント２０が検証用鍵２７７を用いて付加情報を復号し、照合を行う。これにより、デバイス１に初期設定されるソフトウェアの改竄を防止することができ、かつ、改竄検証用の鍵を適切に保護することができる。
【０１２２】
また、本実施の形態１によれば、セキュアエレメント２０（又はデバイス１）の識別情報を配布サーバ５との間で送受信し、製品個体毎に初期設定の手順や内容を異ならせてもよい。これにより、より柔軟で安全な初期設定を行うことができる。
【０１２３】
また、本実施の形態１によれば、ソースコード（ソースファイル）で配布される対象ファイルを実行ファイルにビルドすることができ、配布形態の自由度を向上させることができる。
【０１２４】
（実施の形態２）
実施の形態１では図９等において、暗号化された対象ファイル７５をセキュアエレメント２０が復号する形態について説明した。本実施の形態では、ＰＣ３がセキュアエレメント２０から鍵情報を取得して対象ファイル７５の復号を行う形態について述べる。なお、実施の形態１と重複する内容については同一の符号を付して説明を省略する。
【０１２５】
図２３は、実施の形態２に係る暗号化ファイルの復号処理に関する説明図である。図２３では、配布サーバ５ｅが暗号鍵２７６から生成した派生鍵２７６ａを用いて対象ファイル７５の暗号化を行うと共に、セキュアエレメント２０が派生鍵２７６ａを生成してＰＣ３に受け渡し、ＰＣ３が対象ファイル７５を復号する様子を図示している。図２３において符号Ｐ２０１〜Ｐ２０８で示す処理プロセスについて、順に説明する。
【０１２６】
ＰＣ３（仮想化基盤６０）は、初期設定ファイル２７１の記述「ｇｅｔ  ｐｒｏｐｒｉｅｔａｒｙ＿ｓｏｆｔｗａｒｅ――ＤｅｒｉｖｅｄＫｅｙＳＥ」に従い、対象ファイル７５の配信を配布サーバ５ｅに要求する（Ｐ２０１）。ここで、図２３に示すように、本実施の形態に係る初期設定ファイル２７１には、暗号化された対象ファイル７５をダウンロードする際の処理手順として「――ＤｅｒｉｖｅｄＫｅｙＳＥ」と規定されている。当該記述は、後述する対象ファイル７５の復号処理を、暗号鍵２７６から派生させた派生鍵２７６ａを用いて行うべきことを示している。
【０１２７】
ＰＣ３から配信要求を受け付けた場合、配布サーバ５ｅは、自身が保持する暗号鍵２７６を基に、暗号化を行うための派生鍵２７６ａを生成する（Ｐ２０２）。配布サーバ５ｅは、派生鍵２７６ａの秘匿性を維持しつつ、セキュアエレメント２０側で生成する鍵との同一性を確保するため、例えばチャレンジ・レスポンス、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換などのアルゴリズムを用いて派生鍵２７６ａを生成する。なお、簡潔のため、派生鍵２７６ａの生成に関する詳細な図示及び説明は省略する。
【０１２８】
配布サーバ５ｅは、生成した派生鍵２７６ａを用いて対象ファイル７５を暗号化する（Ｐ２０３）。配布サーバ５ｅは、暗号化した対象ファイル７５をＰＣ３に配信する（Ｐ２０４）。
【０１２９】
配布サーバ５ｅから対象ファイル７５を取得した場合、ＰＣ３は、セキュアエレメント２０に対して派生鍵２７６ａの出力を要求する（Ｐ２０５）。出力要求を受け付けた場合、セキュアエレメント２０の復号部２４は、セキュアエレメント２０で保持する暗号鍵２７６を用い、派生鍵２７６ａを生成する（Ｐ２０６）。セキュアエレメント２０における派生鍵２７６ａの生成は、配布サーバ５ｅが行う派生鍵２７６ａの生成アルゴリズムと同じ手順で行えばよい。復号部２４は、生成した派生鍵２７６ａをＰＣ３に出力する（Ｐ２０７）。セキュアエレメント２０から派生鍵２７６ａを取得した場合、ＰＣ３は、当該派生鍵２７６ａを用いて対象ファイル７５を復号し、仮想マシン６１に格納する（Ｐ２０８）。
【０１３０】
図２４は、実施の形態２に係る復号処理のサブルーチンの一例を示すフローチャートである。図２４に基づき、本実施の形態におけるステップＳ８４（図１７参照）の処理内容について説明する。
ＰＣ３の制御部３１は、初期設定ファイル２７１の記述に従い、配布サーバ５ｅに対して対象ファイル７５の送信を要求する（ステップＳ２０１）。送信要求を受け付けた場合、配布サーバ５ｅは、自身が保持している暗号鍵２７６を基に、派生鍵２７６ａを生成する（ステップＳ２０２）。配布サーバ５ｅは、生成した派生鍵２７６ａを用いて対象ファイル７５を暗号化する（ステップＳ２０３）。配布サーバ５ｅは、暗号化した対象ファイル７５をＰＣ３に送信する（ステップＳ２０４）。
【０１３１】
配布サーバ５ｅから対象ファイル７５を取得した場合、ＰＣ３の制御部３１は、派生鍵２７６ａの出力をセキュアエレメント２０に要求する（ステップＳ２０５）。派生鍵２７６ａの出力要求を受け付けた場合、セキュアエレメント２０は、自身が保持している暗号鍵２７６を用いて、派生鍵２７６ａを生成する（ステップＳ２０６）。セキュアエレメント２０は、生成した派生鍵２７６ａをＰＣ３に出力する（ステップＳ２０７）。
【０１３２】
派生鍵２７６ａをセキュアエレメント２０から取得した場合、ＰＣ３の制御部３１は、当該派生鍵２７６ａを用いて対象ファイル７５を復号する（ステップＳ２０８）。制御部３１は、復号した対象ファイル７５を仮想環境に格納し（ステップＳ２０９）、サブルーチンをリターンする。
【０１３３】
以上より、本実施の形態２によれば、セキュアエレメント２０内で対象ファイル７５の復号を行うのではなく、セキュアエレメント２０が出力した派生鍵２７６ａを用いて、ＰＣ３において対象ファイル７５の復号を行う。これにより、例えば対象ファイル７５が数メガバイト〜数ギガバイトと大きく、セキュアエレメント２０では復号が困難な場合にも対応することができ、大容量の対象ファイル７５を暗号化して配布することができる。
【０１３４】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３５】
１  デバイス
１０  デバイス本体
２０  セキュアエレメント
２７１  初期設定ファイル
２７１ａ  ビルドスクリプト
２７２  ＰＩＮコード（運用者情報）
２７３  更新用鍵
２７４  証明書
２７５  認証用鍵（鍵情報）
２７６  暗号鍵（鍵情報）
２７７  検証用鍵（鍵情報）
２７８  シリアル番号（個体識別情報）
３  ＰＣ
Ｐ  プログラム
６０  仮想化基盤
６１  仮想マシン（仮想環境）
７１  仮想環境用ＯＳイメージ
７２  ビルドツール
７３〜７６  対象ファイル
【図１】
0006988444.tif 000002
【図２】
0006988444.tif 000003
【図３】
0006988444.tif 000004
【図４】
0006988444.tif 000005
【図５】
0006988444.tif 000006
【図６】
0006988444.tif 000007
【図７】
0006988444.tif 000008
【図８】
0006988444.tif 000009
【図９】
0006988444.tif 000010
【図１０】
0006988444.tif 000011
【図１１】
0006988444.tif 000012
【図１２】
0006988444.tif 000013
【図１３】
0006988444.tif 000014
【図１４】
0006988444.tif 000015
【図１５】
0006988444.tif 000016
【図１６】
0006988444.tif 000017
【図１７】
0006988444.tif 000018
【図１８】
0006988444.tif 000019
【図１９】
0006988444.tif 000020
【図２０】
0006988444.tif 000021
【図２１】
0006988444.tif 000022
【図２２】
0006988444.tif 000023
【図２３】
0006988444.tif 000024
【図２４】
0006988444.tif 000025