(57)【要約】【課題】デバイスのＯＳ起動時のセキュリティを確保することができるセキュアエレメント、コンピュータプログラム、デバイス、ＯＳ起動システム及びＯＳ起動方法を提供する。【解決手段】セキュアエレメントは、ＯＳを読み込むためのブートローダからＯＳの要求信号を取得する要求信号取得部と、要求信号取得部で要求信号を取得した場合、暗号化されたＯＳイメージを復号する復号部と、ブートローダによって読み込むため復号部で復号されたＯＳイメージを出力する出力部とを備える。【選択図】図１
2019008592.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳを読み込むためのブートローダからＯＳの要求信号を取得する要求信号取得部と、
該要求信号取得部で要求信号を取得した場合、暗号化されたＯＳイメージを復号する復号部と、
前記ブートローダによって読み込むため、前記復号部で復号されたＯＳイメージを出力する出力部と
を備えるセキュアエレメント。
【請求項２】
起動態様を識別する識別子と、
所定のサーバとの間で暗号化された秘匿通信路を確立する通信部と
を備え、
前記通信部は、
前記識別子がオンライン起動である場合、前記サーバから暗号化されたＯＳイメージを取得し、
前記復号部は、
前記通信部で取得したＯＳイメージを復号する請求項１に記載のセキュアエレメント。
【請求項３】
暗号化されたＯＳイメージを記憶する記憶部を備え、
前記復号部は、
前記識別子がオフライン起動である場合、前記記憶部に記憶したＯＳイメージを復号する請求項２に記載のセキュアエレメント。
【請求項４】
前記ブートローダによって読み込まれたＯＳのイメージを取得する取得部と、
該取得部で取得したＯＳイメージと前記記憶部に記憶したＯＳイメージとを照合する照合部と、
該照合部での照合結果を前記ブートローダによって読み込まれたＯＳへ通知する通知部と
を備える請求項３に記載のセキュアエレメント。
【請求項５】
前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳの動作を停止させる停止部を備える請求項４に記載のセキュアエレメント。
【請求項６】
前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳのイメージを復旧させる復旧部を備える請求項４に記載のセキュアエレメント。
【請求項７】
前記秘匿通信路を介して前記識別子を、オンライン起動又はオフライン起動に設定する処理を受け付ける受付部を備える請求項２から請求項６のいずれか一項に記載のセキュアエレメント。
【請求項８】
コンピュータに、ブートローダによって読み込むためＯＳイメージを出力させるためのコンピュータプログラムであって、
コンピュータに、
前記ブートローダからＯＳの要求信号を取得する処理と、
前記要求信号を取得した場合、暗号化されたＯＳイメージを復号する処理と、
前記ブートローダによって読み込むため、復号されたＯＳイメージを出力する処理と
を実行させるコンピュータプログラム。
【請求項９】
請求項１から請求項７のいずれか一項に記載のセキュアエレメントと、ＯＳを読み込むためのブートローダとを備えるデバイス。
【請求項１０】
前記セキュアエレメントの前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳの動作を停止させる停止部を備える請求項９に記載のデバイス。
【請求項１１】
前記セキュアエレメントの前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳのイメージを復旧させる復旧部を備える請求項９に記載のデバイス。
【請求項１２】
請求項９から請求項１１のいずれか一項に記載のデバイスと、前記ブートローダによって読み込まれるＯＳのイメージを暗号化して記憶するサーバとを備えるＯＳ起動システム。
【請求項１３】
ＯＳを読み込むためのブートローダからＯＳの要求信号を要求信号取得部が取得し、
前記要求信号が取得された場合、暗号化されたＯＳイメージを復号部が復号し、
前記ブートローダによって読み込むため、復号されたＯＳイメージを出力部が出力するＯＳ起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアエレメント、コンピュータプログラム、デバイス、ＯＳ起動システム及びＯＳ起動方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等を含む電子デバイスのセキュリティの多くは、当該デバイス上で動作するＯＳによって担保されている。このため、一般に攻撃者はＯＳの脆弱性を攻撃すること、あるいはＯＳを脆弱なものに置き換えることによって攻撃を行う。
【０００３】
そこで、ＯＳの改ざん又は置き換え等の不正な攻撃をＯＳ起動時に検知することによって、セキュリティを確保する技術が研究されている。例えば、特許文献１には、トラステッドデバイスが端末に接続された際に、トラステッドデバイスから取り出したブートローダを元に、端末とＯＳサーバとの間で接続を行い、ＯＳサーバから端末に暗号化されたブートイメージ（ＯＳカーネル）をダウンロードし、トラステッドデバイスから取得した鍵によってダウンロードしたブートイメージを復号する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５９４０１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の方法では、復号用の鍵をトラステッドデバイスから取り出す際の通信を傍受して鍵を入手するとともに、ＯＳイメージを入手するサーバを攻撃者のサーバに変更することによって、ＯＳの改ざん又は置き換えが可能となる。
【０００６】
一方で、ＩｏＴ（Internet of Things）では、多種多様なデバイスがネットワークに接続されることで新たな付加価値を生み出している。このようなデバイスでは、デバイス毎にブートメカニズムは異なるので、デバイス毎に個別のブートローダが必要となる。しかし、特許文献１の方法では、端末がトラステッドデバイスに入っているブートローダを元にＯＳの起動を行うため、多種多様なデバイスのＯＳを起動することができない。
【０００７】
本発明は、斯かる事情に鑑みてなされたものであり、デバイスのＯＳ起動時のセキュリティを確保することができるセキュアエレメント、コンピュータプログラム、デバイス、ＯＳ起動システム及びＯＳ起動方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の実施の形態に係るセキュアエレメントは、ＯＳを読み込むためのブートローダからＯＳの要求信号を取得する要求信号取得部と、該要求信号取得部で要求信号を取得した場合、暗号化されたＯＳイメージを復号する復号部と、前記ブートローダによって読み込むため、前記復号部で復号されたＯＳイメージを出力する出力部とを備える。
【０００９】
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、ブートローダによって読み込むためＯＳイメージを出力させるためのコンピュータプログラムであって、コンピュータに、前記ブートローダからＯＳの要求信号を取得する処理と、前記要求信号を取得した場合、暗号化されたＯＳイメージを復号する処理と、前記ブートローダによって読み込むため、復号されたＯＳイメージを出力する処理とを実行させる。
【００１０】
本発明の実施の形態に係るデバイスは、本発明の実施の形態に係るセキュアエレメントと、ＯＳを読み込むためのブートローダとを備える。
【００１１】
本発明の実施の形態に係るＯＳ起動システムは、本発明の実施の形態に係るデバイスと、前記ブートローダによって読み込まれるＯＳのイメージを暗号化して記憶するサーバとを備える。
【００１２】
本発明の実施の形態に係るＯＳ起動方法は、ＯＳを読み込むためのブートローダからＯＳの要求信号を要求信号取得部が取得し、前記要求信号が取得された場合、暗号化されたＯＳイメージを復号部が復号し、前記ブートローダによって読み込むため、復号されたＯＳイメージを出力部が出力する。
【発明の効果】
【００１３】
本発明によれば、デバイスのＯＳ起動時のセキュリティを確保することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態のＯＳ起動システムの構成の一例を示すブロック図である。
【図２】本実施の形態のＯＳ起動システムのオンライン起動時の動作の一例を示す説明図である。
【図３】本実施の形態のＯＳ起動システムのオフライン起動時の動作の一例を示す説明図である。
【図４】本実施の形態のセキュアエレメントによるＯＳ起動処理手順の一例を示すフローチャートである。
【図５】本実施の形態のＯＳ起動システムのＯＳイメージ照合時の動作の一例を示す説明図である。
【図６】本実施の形態のセキュアエレメントによるＯＳイメージ照合処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明をその実施の形態を示す図面に基づいて説明する。図１は本実施の形態のＯＳ起動システムの構成の一例を示すブロック図である。本実施の形態のＯＳ起動システムは、セキュアエレメント５０が組み込まれたデバイス１００、及びサーバ２００などを備える。デバイス１００は、ＯＳを搭載して独立動作をすることができるデバイス（電子デバイスとも称する）であり、「モノのインターネット」（ＩｏＴ）でいうところの「モノ」に該当するデバイスを含む。
【００１６】
デバイス１００は、セキュアエレメント５０の他に、ＣＰＵ１０、ネットワーク通信部１１、ＲＯＭ又は不揮発性メモリなどの不揮発性記録部１２、ＲＡＭ１３、電源の入切を行うための電源スイッチ１４、ＢＩＯＳ２１、ブートローダ２２、ＯＳカーネル２３、ファイルシステム２４などを備える。なお、便宜上、デバイス１００のうち、セキュアエレメント５０以外の部分をデバイス側と称する。
【００１７】
不揮発性記録部１２は、デバイス１００の製造時に記録される内容が書き込まれるが、デバイス１００の運用中に書き換えることもできる。
【００１８】
ＲＡＭ１３は、揮発性のメモリであり、電源スイッチ１４によって電源断・再投入が行われると記録された内容が消去される。
【００１９】
ＢＩＯＳ２１は、不揮発性記録部１２に保持され、デバイス１００の基本的な入出力を制御するためのソフトウェアコンポーネント（ソフトウェアモジュール）である。
【００２０】
ブートローダ２２は、不揮発性記録部１２に保持され、ＢＩＯＳ２１から呼び出されて起動されるソフトウェアコンポーネントである。ブートローダ２２は、ＯＳカーネルをＲＡＭ１３に読み込むために動作する。
【００２１】
ＯＳカーネル２３は、ＯＳの基本的な機能を実装しているソフトウェアコンポーネントである。ＯＳカーネル２３は、ブートローダ２２によってＲＡＭ１３上に展開され、ＣＰＵ１０によって実行されることによりＯＳの機能をアプリケーション又はユーザに提供する。本実施の形態では、ＯＳカーネル２３は、ＯＳイメージに含まれる。ＯＳイメージは、ＯＳを構成する複数のファイル及びフォルダを一つのファイルに纏めたものである。
【００２２】
ファイルシステム２４は、デバイス１００上で取り扱うファイル（フォルダ）ツリー全てを保持するデータ一式である。ファイルシステム２４は、ＯＳカーネル２３によって認識されることで、アプリケーション又はユーザは、ファイルシステム２４内のファイルを読み書きすることができる。ファイルシステム２４は、ＯＳイメージに含まれる。
【００２３】
ネットワーク通信部１１は、デバイス１００をネットワークに接続する機能を有し、ネットワーク上の他のデバイス又はクラウド（サーバ）との間で情報の送受信を行うことができる。ネットワーク通信部１１は、不図示のセンサ類で検出した情報を送信することができる。
【００２４】
セキュアエレメント５０は、例えば、ＩＣチップ、ＩＣカード等の半導体素子で構成され、外部からの物理的、論理的な攻撃に対して耐タンパ性を有する特別なハードウェアである。
【００２５】
セキュアエレメント５０は、ダウンロード処理部５１、復号処理部５２、比較処理部５３、記憶部としての不揮発性メモリ５４、オフライン起動許可フラグ５５、暗号化ＯＳイメージ５６、ＯＳイメージ復号鍵５７などを備える。なお、便宜上、暗号化ＯＳイメージ５６をＯＳイメージ５６とも称する。
【００２６】
不揮発性メモリ５４は、例えば、耐タンパ性を有する不揮発性メモリとすることができる。
【００２７】
ダウンロード処理部５１は、通信部としての機能を有し、サーバ２００に対して秘匿通信路６１を確立し、サーバ２００が有する暗号化ＯＳイメージを不揮発性メモリ５４にダウンロードする。これにより、ＯＳイメージを、秘匿性を保ったまま安全に取得することができる。秘匿通信路６１においては、例えば、ＴＬＳ（Transport Layer Security）などのプロトコルによって通信を行うことができる。なお、プロトコルは、ＴＬＳに限定されない。
【００２８】
復号処理部５２は、復号部としての機能を有し、不揮発性メモリ５４に保持されているＯＳイメージ５６に対して暗号化を解除して復号し、復号したＯＳイメージをデバイス１００のＲＡＭ１３上に展開する。暗号化ＯＳイメージ５６の復号処理をセキュアエレメント５０内で行うことによって、ＯＳイメージの改ざん又は置き換えを防止することができる。
【００２９】
比較処理部５３は、照合部としての機能を有し、デバイス１００からの要求に応じて、デバイス１００で稼働中のＯＳのＯＳイメージと、不揮発性メモリ５４に保持されているＯＳイメージ５６とを比較し、照合（一致・不一致を判定）する。ＯＳイメージの照合は、ＯＳイメージの全体でもよく、一部（例えば、ＯＳカーネルの一部、ファイルシステムの一部）でもよい。照合アルゴリズムは、例えば、平文による照合でもよいが、これに限定されない。
【００３０】
暗号化ＯＳイメージ５６は、ＯＳカーネル５６１、ファイルシステム５６２をまとめ、かつＯＳイメージ暗号化鍵で暗号化を行ったデータである。
【００３１】
ＯＳイメージ復号鍵５７は、不揮発性メモリ５４に保持されている。これにより、ＯＳイメージ復号鍵５７の秘匿性を担保することができる。ＯＳイメージ復号鍵５７は、暗号化ＯＳイメージ５６を復号し、ＯＳカーネル２３、ファイルシステム２４を取り出すための鍵である。ＯＳイメージ復号鍵５７は、固定鍵でもよく、あるいは、動的に更新される鍵でもよい。
【００３２】
オフライン起動許可フラグ５５は、識別子としての機能を有する。オフライン起動許可フラグ５５は、デバイス１００のＯＳ起動時に、セキュアエレメント５０の不揮発性メモリ５４に保持されているＯＳイメージ５６のみで起動を許可するか（オフライン起動）、あるいは拒否するか（オンライン起動）を判定するフラグである。拒否する場合には、ダウンロード処理部５１は、サーバ２００から最新のＯＳイメージをダウンロードする。デバイス側のブートローダ２２によって読み込まれるＯＳの入手先（例えば、ＯＳの入手先のサーバのＵＲＬなど）を決定する識別子をデバイス側でなくセキュアエレメント５０が有することにより、セキュアエレメント５０によってＯＳイメージの取得先を決めることができる。
【００３３】
セキュアエレメント５０は、内部バス３１、３２を介してデバイス側と接続されている。より具体的には、内部バス３１は、セキュアエレメント５０と不揮発性記録部１２とを接続し、内部バス３２は、セキュアエレメント５０とＲＡＭ１３とを接続している。内部バス３１、３２は、秘匿性を担保することができるバスであれば、適宜のものを用いることができる。
【００３４】
サーバ２００は、暗号化イメージ２０１（ＯＳカーネル２０２及びファイルシステム２０３を含む）を保持し、デバイス１００のＯＳ起動時に秘匿通信路６１を介して暗号化イメージ２０１をセキュアエレメント５０へ配信する。
【００３５】
次に、本実施の形態のＯＳ起動システムの動作について説明する。以下では、オンライン起動時の動作、オフライン起動時の動作、及びＯＳイメージの照合時の動作について説明する。
【００３６】
図２は本実施の形態のＯＳ起動システムのオンライン起動時の動作の一例を示す説明図である。以下、符号Ｐ１〜Ｐ１３で示す処理について説明する。
【００３７】
Ｐ１（電源投入）：ユーザが電源スイッチ１４を操作してデバイス１００に対して電源を投入する。
【００３８】
Ｐ２（ＢＩＯＳ２１の起動）：電源投入されたデバイス１００は、不揮発性記録部１２に保持されているＢＩＯＳ２１を起動する。
【００３９】
Ｐ３（ブートローダ２２の起動）：ＢＩＯＳ２１は、不揮発性記録部１２に保持されているブートローダ２２を起動する。
【００４０】
Ｐ４（ＯＳイメージダウンロード要求）：ブートローダ２２は、セキュアエレメント５０に対し、ＯＳイメージのダウンロード要求（ＯＳの要求信号とも称する）を行う。セキュアエレメント５０は、要求信号取得部としての機能を有し、当該要求を取得した場合、ダウンロード処理部５１による処理を呼び出す。
【００４１】
Ｐ５（オフライン起動チェック）：ダウンロード処理部５１は、不揮発性メモリ５４に保持されているオフライン起動許可フラグ５５をチェックし、フラグが「拒否（オンライン起動）」であることを確認する。
【００４２】
Ｐ６（秘匿通信路６１の確立）：ダウンロード処理部５１は、フラグが「拒否」であることを確認すると、サーバ２００に対してエンドツーエンドの秘匿通信路６１を確立する。秘匿通信路６１は、例えば、ＴＬＳ（ＨＴＴＰＳ）とすることができる。セキュアエレメント５０が自ら物理的な通信手段（例えば、ＬＡＮ又はＷｉＦｉなど）を有する場合、通信路確立を独力で行うことができるが、通信手段を有しない場合には、デバイス１００の物理的な通信手段を用いてもよい。
【００４３】
Ｐ７（ＯＳイメージのダウンロード）：セキュアエレメント５０は、サーバ２００に対してＯＳイメージのダウンロード要求を行う。ダウンロード処理部５１は、サーバ２００から、暗号化ＯＳイメージ２０１をセキュアな不揮発性メモリ５４にダウンロードし、保持する。
【００４４】
Ｐ８（オフライン起動許可フラグ５５の変更）：サーバ２００は、オフライン起動許可フラグ５５を変更したい場合、秘匿通信路６１を介してセキュアエレメント５０に対してオフライン起動許可フラグ５５の変更を行う。セキュアエレメント５０は、受付部としての機能を有し、秘匿通信路を介して、オフライン起動許可フラグ５５を「拒否（オンライン起動）」又は「許可（オフライン起動）」に設定する処理を受け付ける。これにより、ＯＳイメージの取得先を状況に応じて変更することができる。なお、オフライン起動許可フラグ５５の変更は、オンライン起動時のみならず、任意のタイミングで行うことができる。
【００４５】
Ｐ９（ダウンロード完了）：ダウンロード処理部５１は、ブートローダ２２に対してダウンロード完了を通知する。
【００４６】
Ｐ１０（ＯＳイメージ展開要求）：ブートローダ２２は、ダウンロード完了の通知を受けると、セキュアエレメント５０に対して、ＯＳイメージの展開を要求する。セキュアエレメント５０は、ＯＳイメージの展開の要求を受けると、復号処理部５２による処理を呼び出す。
【００４７】
Ｐ１１（ＯＳイメージの復号と展開）：復号処理部５２は、不揮発性メモリ５４に保持している暗号化ＯＳイメージ５６を、ＯＳイメージ復号鍵５７を用いて復号する。安全性の高い不揮発性メモリ５４に記憶した暗号化ＯＳイメージ５６の復号処理をセキュアエレメント５０内で行うことによって、ＯＳイメージの改ざん又は置き換えを防止することができる。復号処理部５２は、出力部としての機能を有し、復号されたＯＳカーネル２３及びファイルシステム２４をデバイス側へ出力し、ＲＡＭ１３上に展開する。デバイス側とセキュアエレメント５０との間は、秘匿性を有する内部バス３２によって接続することができるので、ブートするＯＳイメージの改ざん又は置き換えを防止することができる。
【００４８】
Ｐ１２（ＯＳカーネル２３の起動）：ブートローダ２２は、ＲＡＭ１３上に展開されたＯＳカーネル２３を起動する。
【００４９】
Ｐ１３（ファイルシステム２４の読み込み）：ＯＳカーネル２３は、ＲＡＭ１３上に展開されたファイルシステム２４を有効化し、アクセス可能にする。ファイルシステム２４が有効化された後、ＯＳは起動を完了して定常状態に移行する。これにより、ユーザのログインを許可すること、サーバサービスを開始すること等、ＯＳの機能をユーザに提供することができる。
【００５０】
上述のように、ブートローダ２２が、セキュアエレメント５０とは別個にデバイス側にあることによって、セキュアエレメント５０は、多種多様なデバイス１００に対して共通の構造とすることができる。また、上述の構成により、多種多様なデバイス１００のＯＳ起動時のセキュリティを確保することができる。
【００５１】
図３は本実施の形態のＯＳ起動システムのオフライン起動時の動作の一例を示す説明図である。以下、符号Ｐ２１〜Ｐ３０で示す処理について説明する。なお、オフライン起動時は、サーバ２００からの暗号化ＯＳイメージ２０１のダウンロード処理は行われない。
【００５２】
Ｐ２１（電源投入）：ユーザが電源スイッチ１４を操作してデバイス１００に対して電源を投入する。
【００５３】
Ｐ２２（ＢＩＯＳ２１の起動）：電源投入されたデバイス１００は、不揮発性記録部１２に保持されているＢＩＯＳ２１を起動する。
【００５４】
Ｐ２３（ブートローダ２２の起動）：ＢＩＯＳ２１は、不揮発性記録部１２に保持されているブートローダ２２を起動する。
【００５５】
Ｐ２４（ＯＳイメージダウンロード要求）：ブートローダ２２は、セキュアエレメント５０に対し、ＯＳイメージのダウンロード要求（ＯＳの要求信号とも称する）を行う。セキュアエレメント５０は、当該要求を取得した場合、ダウンロード処理部５１による処理を呼び出す。
【００５６】
Ｐ２５（オフライン起動チェック）：ダウンロード処理部５１は、不揮発性メモリ５４に保持されているオフライン起動許可フラグ５５をチェックし、フラグが「許可（オフライン起動）」であることを確認する。
【００５７】
Ｐ２６（ＯＳイメージの存在確認）：ダウンロード処理部５１は、フラグが「許可」であることを確認すると、暗号化ＯＳイメージ５６が不揮発性メモリ５４に保持されているか確認し、暗号化ＯＳイメージ５６が保持されている場合には、ブートローダ２２に対してダウンロード完了を通知する。
【００５８】
Ｐ２７（ＯＳイメージ展開要求）：ブートローダ２２は、ダウンロード完了の通知を受けると、セキュアエレメント５０に対して、ＯＳイメージの展開を要求する。セキュアエレメント５０は、ＯＳイメージの展開の要求を受けると、復号処理部５２による処理を呼び出す。
【００５９】
Ｐ２８（ＯＳイメージの復号と展開）：復号処理部５２は、不揮発性メモリ５４に保持している暗号化ＯＳイメージ５６を、ＯＳイメージ復号鍵５７を用いて復号する。安全性の高い不揮発性メモリ５４に記憶した暗号化ＯＳイメージ５６の復号処理をセキュアエレメント５０内で行うことによって、ＯＳイメージの改ざん又は置き換えを防止することができる。復号処理部５２は、復号されたＯＳカーネル２３及びファイルシステム２４をデバイス側へ出力し、ＲＡＭ１３上に展開する。デバイス側とセキュアエレメント５０との間は、秘匿性を有する内部バス３２によって接続することができるので、ブートするＯＳイメージの改ざん又は置き換えを防止することができる。
【００６０】
Ｐ２９（ＯＳカーネル２３の起動）：ブートローダ２２は、ＲＡＭ１３上に展開されたＯＳカーネル２３を起動する。
【００６１】
Ｐ３０（ファイルシステム２４の読み込み）：ＯＳカーネル２３は、ＲＡＭ１３上に展開されたファイルシステム２４を有効化し、アクセス可能にする。ファイルシステム２４が有効化された後、ＯＳは起動を完了して定常状態に移行する。これにより、ユーザのログインを許可すること、サーバサービスを開始すること等、ＯＳの機能をユーザに提供することができる。
【００６２】
上述の構成により、多種多様なデバイス１００のＯＳ起動時のセキュリティを確保することができる。
【００６３】
図４は本実施の形態のセキュアエレメント５０によるＯＳ起動処理手順の一例を示すフローチャートである。セキュアエレメント５０は、ブートローダ２２からＯＳイメージのダウンロード要求を取得する（Ｓ１１）。セキュアエレメント５０は、オフライン起動許可フラグ５５を判定し（Ｓ１２）、拒否である場合（Ｓ１２で拒否）、サーバ２００との間で秘匿通信路６１を確立する（Ｓ１３）。
【００６４】
セキュアエレメント５０は、秘匿通信路６１を介して、サーバ２００から暗号化されたＯＳイメージ（暗号化ＯＳイメージ２０１）をダウンロードし（Ｓ１４）、ダウンロード完了をブートローダ２２へ通知する（Ｓ１５）。
【００６５】
セキュアエレメント５０は、ブートローダ２２からＯＳイメージの要求があるか否かを判定し（Ｓ１６）、要求がない場合（Ｓ１６でＮＯ）、ステップＳ１６の処理を続ける。要求があった場合（Ｓ１６でＹＥＳ）、セキュアエレメント５０は、暗号化されたＯＳイメージを復号し（Ｓ１７）、復号したＯＳイメージをデバイス１００のＲＡＭ１３上に展開し（Ｓ１８）、処理を終了する。
【００６６】
オフライン起動許可フラグ５５が許可である場合（Ｓ１２で許可）、セキュアエレメント５０は、不揮発性メモリ５４に暗号化されたＯＳイメージ（暗号化ＯＳイメージ５６）が記憶（保持）されているか否かを判定し（Ｓ１９）、記憶されている場合（Ｓ１９でＹＥＳ）、ステップＳ１５以降の処理を行う。
【００６７】
暗号化されたＯＳイメージが記憶されていない場合（Ｓ１９でＮＯ）、セキュアエレメント５０は、処理を終了する。なお、暗号化されたＯＳイメージが記憶されていない場合に、セキュアエレメント５０の処理は、運用上のセキュリティポリシーに準拠することができ、上述のように、動作を停止してもよく、あるいは、サーバ２００から強制的に暗号化ＯＳイメージ２０１をダウンロードしてもよい。
【００６８】
図５は本実施の形態のＯＳ起動システムのＯＳイメージ照合時の動作の一例を示す説明図である。以下、符号Ｐ４１〜Ｐ４５で示す処理について説明する。
【００６９】
Ｐ４１（ＯＳカーネル２３の入力）：デバイス１００は、現在動作中のＯＳカーネル２３の内容をセキュアエレメント５０へ出力する。セキュアエレメント５０は、取得したＯＳカーネル２３の内容をＲＡＭ５８上に保持する。
【００７０】
Ｐ４２（ファイルシステム２４の入力）：デバイス１００は、現在のファイルシステム２４の内容をセキュアエレメント５０へ出力する。セキュアエレメント５０は、取得したファイルシステム２４の内容をＲＡＭ５８上に保持する。
【００７１】
Ｐ４３（照合すべきデータの展開）：復号処理部５２は、不揮発性メモリ５４に保持する暗号化ＯＳイメージ５６を復号し、復号したＯＳカーネル５６３及びファイルシステム５６４（いずれも平文）をＲＡＭ５８上に展開する。
【００７２】
Ｐ４４（照合）：比較処理部５３は、ＲＡＭ５８上に展開されたＯＳカーネル２３とＯＳカーネル５６３とを照合し、一致・不一致判定を行う。また、比較処理部５３は、ＲＡＭ５８上に展開されたファイルシステム２４とファイルシステム５６４とを照合し、一致・不一致判定を行う。ＯＳイメージの照合は、ＯＳイメージの全体でもよく、一部（例えば、ＯＳカーネルの一部、ファイルシステムの一部）でもよい。照合アルゴリズムは、例えば、平文による照合でもよいが、これに限定されない。
【００７３】
Ｐ４５（照合結果の通知）：比較処理部５３は、通知部としての機能を有し、照合結果（例えば、一致又は不一致）をブートローダ２２によって読み込まれたＯＳ２３へ通知する。不揮発性メモリ５４に記憶した、正しいＯＳイメージと比較することができるので、デバイス側で動作しているＯＳが正しいか（例えば、改ざんされていないか）を確認することができる。
【００７４】
セキュアエレメント５０は、停止部としての機能を有し、比較処理部５３での照合結果に基づいてブートローダ２２によって読み込まれたＯＳの動作を停止させる。例えば、ＯＳイメージが一致しないと判定された場合、デバイス側のＯＳの動作を停止させることにより、正しくないＯＳの動作による悪影響を防止することができる。なお、当該停止部の機能をデバイス側で具備するようにしてもよい。この場合、例えば、ＣＰＵ１０が停止部の機能を実行することができる。すなわち、セキュアエレメント５０は、比較処理部５３での照合結果をデバイス側（ＣＰＵ１０）へ出力し、ＣＰＵ１０は、比較処理部５３での照合結果に基づいてブートローダ２２によって読み込まれたＯＳの動作を停止させる。
【００７５】
セキュアエレメント５０は、復旧部としての機能を有し、比較処理部５３での照合結果に基づいてブートローダ２２によって読み込まれたＯＳのイメージを復旧させる。例えば、ＯＳイメージが一致しないと判定された場合、デバイス側のＯＳを正しいＯＳに復旧させることにより、正しくないＯＳの動作による悪影響を防止することができる。なお、当該復旧部の機能をデバイス側で具備するようにしてもよい。この場合、例えば、ＣＰＵ１０が復旧部の機能を実行することができる。すなわち、セキュアエレメント５０は、比較処理部５３での照合結果をデバイス側（ＣＰＵ１０）へ出力し、ＣＰＵ１０は、比較処理部５３での照合結果に基づいてブートローダ２２によって読み込まれたＯＳのイメージを復旧させる。
【００７６】
上述のＯＳイメージの照合処理は、例えば、１分毎、１時間毎、１日毎など適宜のタイミングで実行することができる。また、ＯＳイメージの照合処理は、ハッシュ関数を用いて、ハッシュ値を比較して行うこともできる。
【００７７】
図６は本実施の形態のセキュアエレメント５０によるＯＳイメージ照合処理手順の一例を示すフローチャートである。セキュアエレメント５０は、動作中のＯＳカーネル２３の内容をデバイス側から取得し（Ｓ３１）、現在のファイルシステム２４の内容をデバイス側から取得する（Ｓ３２）。セキュアエレメント５０は、取得したＯＳカーネル２３の内容及びファイルシステム２４の内容をＲＡＭ５８上に保持する（Ｓ３３）。
【００７８】
セキュアエレメント５０は、暗号化されたＯＳイメージ５６を記憶部（不揮発性メモリ５４）から読み出し（Ｓ３４）、暗号化されたＯＳカーネル５６１及び暗号化されたファイルシステム５６２を、ＯＳイメージ復号鍵５７を用いて復号する（Ｓ３５）。
【００７９】
セキュアエレメント５０は、復号したＯＳカーネル５６３及びファイルシステム５６４をＲＡＭ５８上に展開する（Ｓ３６）。セキュアエレメント５０は、ＯＳイメージ（ＯＳカーネル及びファイルシステム）の比較処理（照合処理）を行い（Ｓ３７）、照合結果をデバイス側（動作中のＯＳ）へ通知し（Ｓ３８）、処理を終了する。
【００８０】
秘匿性を有するセキュアな不揮発性メモリに、図４及び図６に示すような処理手順を定めたコンピュータプログラムをロードし、ＣＰＵ（プロセッサ）により当該コンピュータプログラムを実行させることにより、セキュアエレメント５０内のダウンロード処理部５１、復号処理部５２及び比較処理部５３を実現することができる。
【００８１】
上述のように、本実施の形態によれば、デバイス１００が個別にブートローダを具備することにより、ハードウェア制御を含む個々の設定をデバイス１００毎に行うことができる。また、ＯＳの起動に関する処理は、セキュアエレメント５０に対するＯＳイメージ要求及び当該ＯＳイメージの起動のみとすることによって、ＯＳ起動手順を共通化することができるとともに、最小限化することができる。
【００８２】
また、本実施の形態によれば、セキュアエレメント５０は、サーバ２００から取得したＯＳイメージを、秘匿性を保ったまま安全に保持することができ、オフライン起動時のＯＳイメージの供給元として機能することができる。また、セキュアエレメント５０は、ＯＳイメージを安全に保持するので、デバイス側で動作中のＯＳイメージとの照合を行うことができ、また、デバイス側のＯＳイメージが破損し、あるいは改ざんされても、正しいＯＳイメージに復旧させることができる。
【００８３】
また、本実施の形態によれば、ＯＳイメージの復号処理及びＯＳイメージ復号鍵５７をセキュアエレメント５０の内部で保持するので、両者の耐タンパ性を保ったまま、デバイス側に正しいＯＳイメージを提供することができる。
【００８４】
また、本実施の形態によれば、オフライン起動許可フラグ５５をサーバ２００から設定可能とすることによって、デバイス１００の起動制御をネットワーク経由で行うことができる。また、オフライン起動時でも、セキュアエレメント５０は、正しいＯＳイメージをデバイス側へ供給することができる。
【００８５】
本実施の形態に係るセキュアエレメントは、ＯＳを読み込むためのブートローダからＯＳの要求信号を取得する要求信号取得部と、該要求信号取得部で要求信号を取得した場合、暗号化されたＯＳイメージを復号する復号部と、前記ブートローダによって読み込むため、前記復号部で復号されたＯＳイメージを出力する出力部とを備える。
【００８６】
本実施の形態に係るコンピュータプログラムは、コンピュータに、ブートローダによって読み込むためＯＳイメージを出力させるためのコンピュータプログラムであって、コンピュータに、前記ブートローダからＯＳの要求信号を取得する処理と、前記要求信号を取得した場合、暗号化されたＯＳイメージを復号する処理と、前記ブートローダによって読み込むため、復号されたＯＳイメージを出力する処理とを実行させる。
【００８７】
本実施の形態に係るデバイスは、本実施の形態に係るセキュアエレメントと、ＯＳを読み込むためのブートローダとを備える。
【００８８】
本実施の形態に係るＯＳ起動システムは、本実施の形態に係るデバイスと、前記ブートローダによって読み込まれるＯＳのイメージを暗号化して記憶するサーバとを備える。
【００８９】
本実施の形態に係るＯＳ起動方法は、ＯＳを読み込むためのブートローダからＯＳの要求信号を要求信号取得部が取得し、前記要求信号が取得された場合、暗号化されたＯＳイメージを復号部が復号し、前記ブートローダによって読み込むため、復号されたＯＳイメージを出力部が出力する。
【００９０】
要求信号取得部は、ＯＳを読み込むためのブートローダからＯＳの要求信号を取得する。ブートローダは、セキュアエレメントが組み込まれるデバイスに備えられている。便宜上、デバイスのうちセキュアエレメント以外の部分をデバイス側と称する。ブートローダがデバイス側にあることによって、セキュアエレメントは、多種多様なデバイスに対して共通の構造とすることができる。
【００９１】
復号部は、要求信号取得部で要求信号を取得した場合、暗号化されたＯＳイメージを復号する。暗号化されたＯＳイメージの復号処理をセキュアエレメント内で行うことによって、復号処理及び復号鍵の秘匿性を担保することができる。
【００９２】
出力部は、ブートローダによって読み込むため、復号部で復号されたＯＳイメージを出力する。すなわち、出力部は、復号されたＯＳイメージをデバイス側へ出力する。デバイス側とセキュアエレメントとの間は、秘匿性を有する内部バスによって接続することができるので、ブートするＯＳイメージの改ざん又は置き換えを防止することができる。
【００９３】
上述の構成によって、多種多様なデバイスのＯＳ起動時のセキュリティを確保することができる。
【００９４】
本実施の形態に係るセキュアエレメントは、起動態様を識別する識別子と、所定のサーバとの間で暗号化された秘匿通信路を確立する通信部とを備え、前記通信部は、前記識別子がオンライン起動である場合、前記サーバから暗号化されたＯＳイメージを取得し、前記復号部は、前記通信部で取得したＯＳイメージを復号する。
【００９５】
識別子は、起動態様を識別する。起動態様は、例えば、オンライン起動及びオフライン起動とすることができる。デバイス側のブートローダによって読み込まれるＯＳの入手先を決定する識別子をデバイス側でなくセキュアエレメントが有することにより、セキュアエレメントによってＯＳイメージの取得先を決めることができる。
【００９６】
通信部は、所定のサーバとの間で暗号化された秘匿通信路を確立する。秘匿通信路においては、例えば、ＴＬＳ（Transport Layer Security）などのプロトコルによって通信を行うことができる。
【００９７】
通信部は、識別子がオンライン起動である場合、サーバから暗号化されたＯＳイメージを取得する。これにより、ＯＳイメージを、秘匿性を保ったまま安全に取得することができる。
【００９８】
復号部は、通信部で取得したＯＳイメージを復号する。安全に取得したＯＳイメージの復号処理をセキュアエレメント内で行うことによって、ＯＳイメージの改ざん又は置き換えを防止することができる。
【００９９】
本実施の形態に係るセキュアエレメントは、暗号化されたＯＳイメージを記憶する記憶部を備え、前記復号部は、前記識別子がオフライン起動である場合、前記記憶部に記憶したＯＳイメージを復号する。
【０１００】
記憶部は、暗号化されたＯＳイメージを記憶する。記憶部は、例えば、耐タンパ性を有する不揮発性メモリとすることができる。
【０１０１】
復号部は、識別子がオフライン起動である場合、記憶部に記憶したＯＳイメージを復号する。安全性の高い記憶部に記憶したＯＳイメージの復号処理をセキュアエレメント内で行うことによって、ＯＳイメージの改ざん又は置き換えを防止することができる。
【０１０２】
本実施の形態に係るセキュアエレメントは、前記ブートローダによって読み込まれたＯＳのイメージを取得する取得部と、該取得部で取得したＯＳイメージと前記記憶部に記憶したＯＳイメージとを照合する照合部と、該照合部での照合結果を前記ブートローダによって読み込まれたＯＳへ通知する通知部とを備える。
【０１０３】
取得部は、ブートローダによって読み込まれたＯＳのイメージを取得する。例えば、デバイス側で動作中のＯＳイメージを取得することができる。
【０１０４】
照合部は、取得部で取得したＯＳイメージと記憶部に記憶したＯＳイメージとを照合する。ＯＳイメージの照合は、ＯＳイメージの全体でもよく、一部（例えば、ＯＳカーネルの一部、ファイルシステムの一部）でもよい。照合アルゴリズムは、例えば、平文による照合でもよいが、これに限定されない。
【０１０５】
通知部は、照合部での照合結果（例えば、一致又は不一致）をブートローダによって読み込まれたＯＳへ通知する。記憶部に記憶した、正しいＯＳイメージと比較することができるので、デバイス側で動作しているＯＳが正しいか（例えば、改ざんされていないか）を確認することができる。
【０１０６】
本実施の形態に係るセキュアエレメントは、前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳの動作を停止させる停止部を備える。
【０１０７】
本実施の形態に係るデバイスは、前記セキュアエレメントの前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳの動作を停止させる停止部を備える。
【０１０８】
停止部は、照合部での照合結果に基づいてブートローダによって読み込まれたＯＳの動作を停止させる。例えば、ＯＳイメージが一致しないと判定された場合、デバイス側のＯＳの動作を停止させることにより、正しくないＯＳの動作による悪影響を防止することができる。
【０１０９】
本実施の形態に係るセキュアエレメントは、前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳのイメージを復旧させる復旧部を備える。
【０１１０】
本実施の形態に係るデバイスは、前記セキュアエレメントの前記照合部での照合結果に基づいて前記ブートローダによって読み込まれたＯＳのイメージを復旧させる復旧部を備える。
【０１１１】
復旧部は、照合部での照合結果に基づいてブートローダによって読み込まれたＯＳのイメージを復旧させる。例えば、ＯＳイメージが一致しないと判定された場合、デバイス側のＯＳを正しいＯＳに復旧させることにより、正しくないＯＳの動作による悪影響を防止することができる。
【０１１２】
本実施の形態に係るセキュアエレメントは、前記秘匿通信路を介して前記識別子を、オンライン起動又はオフライン起動に設定する処理を受け付ける受付部を備える。
【０１１３】
受付部は、秘匿通信路を介して識別子を、オンライン起動又はオフライン起動に設定する処理を受け付ける。例えば、サーバから識別子を設定可能にすることができる。これにより、ＯＳイメージの取得先を状況に応じて変更することができる。
【符号の説明】
【０１１４】
１０  ＣＰＵ
１１  ネットワーク通信部
１２  不揮発性記録部
１３  ＲＡＭ
１４  電源スイッチ
２１  ＢＩＯＳ
２２  ブートローダ
２３  ＯＳカーネル
２４  ファイルシステム
３１、３２  内部バス
５０セキュアエレメント
５１  ダウンロード処理部
５２  復号処理部
５３  比較処理部
５４  不揮発性メモリ
５５  オフライン起動許可フラグ
５６  暗号化ＯＳイメージ
５６１  ＯＳカーネル
５６２  ファイルシステム
５７  ＯＳイメージ復号鍵
５８  ＲＡＭ
６１  秘匿通信路
２００  サーバ
２０１  暗号化ＯＳイメージ
２０２  ＯＳカーネル
２０３  ファイルシステム
【図１】
2019008592.tif 000003
【図２】
2019008592.tif 000004
【図３】
2019008592.tif 000005
【図４】
2019008592.tif 000006
【図５】
2019008592.tif 000007
【図６】
2019008592.tif 000008