(57)【要約】【課題】組み込み機器のライフサイクルを通しての一貫したセキュリティを保つ。【解決手段】機器の現在のライフサイクル状態を管理する状態管理手段と、認証データを受け付けて利用者を認証し所属するグループを応答する利用者認証手段と、制御対象データに対してアクセス要求があった場合に、現在のライフサイクル状態を取得し、利用者認証手段で認証を行ってグループを取得し、制御対象データと対応付けられた状態アクセス制御ポリシーから現在のライフサイクル状態とアクセス要求を行った利用者のグループに基づいてアクセス可否情報を取得し、当該アクセス可否情報に基づいて制御対象データに対するアクセスを制御するアクセス制御手段と、ライフサイクル状態が変更された場合に、機器に含まれるモジュールに現在のライフサイクル状態を含むライフサイクル状態情報をコピーするコピー手段とを備える。【選択図】図５
2017041012.tif 000002
【特許請求の範囲】
【請求項１】
制御対象データを内部に保持する機器であって、
前記機器の現在のライフサイクル状態を管理する状態管理手段と、
認証データを受け付けて利用者を認証する利用者認証手段と、
前記制御対象データに対してアクセス要求があった場合に、前記状態管理手段から現在のライフサイクル状態を取得し、前記利用者認証手段で認証を行い、前記制御対象データと対応付けられた状態アクセス制御ポリシーから現在のライフサイクル状態とアクセス要求を行った利用者のグループに基づいてアクセス可否情報を取得し、当該アクセス可否情報に基づいて前記制御対象データに対するアクセスを制御するアクセス制御手段と、
前記状態管理手段によりライフサイクル状態が変更された場合に、前記機器に含まれるモジュールに現在のライフサイクル状態を含むライフサイクル状態情報をコピーするコピー手段と
を備えたことを特徴とする機器。
【請求項２】
請求項１に記載の機器において、
前記コピー手段は、前記モジュールからの要求に応じて前記モジュールに自己の認証情報を送信し、認証が成功した場合に現在のライフサイクル状態を含むライフサイクル状態情報を前記モジュールに提供する
ことを特徴とする機器。
【請求項３】
請求項１または２のいずれか一項に記載の機器において、
前記コピー手段は、前記モジュールから該モジュールが保持するライフサイクル状態を取得し、変更前のライフサイクル状態と一致した場合に、現在のライフサイクル状態を含むライフサイクル状態情報を前記モジュールに提供する
ことを特徴とする機器。
【請求項４】
請求項１乃至３のいずれか一項に記載の機器において、
前記モジュールが現在のライフサイクル状態を統括管理する手段から切り離されたことを検知する検知手段
を備えたことを特徴とする機器。
【請求項５】
請求項１乃至４のいずれか一項に記載の機器において、
前記状態管理手段は、固定のライフサイクル状態に加え、いずれかの固定のライフサイクル状態を親とする追加、変更または削除が可能な変動するライフサイクル状態を管理し、
前記アクセス制御手段は、固定のライフサイクル状態についての制御を先行して実施する
ことを特徴とする機器。
【請求項６】
請求項１乃至５のいずれか一項に記載の機器において、
前記利用者認証手段は、固定のグループに加え、固定のグループを親とする追加、変更または削除が可能な追加のグループを管理する
ことを特徴とする機器。
【請求項７】
請求項１または６のいずれか一項に記載の機器において、
前記状態管理手段は、ライフサイクル状態に対応付けた、状態変化をするための遷移条件、状態変化をする際に強制する処理の定義、次の状態に遷移した際に強制する処理の定義のいずれかもしくは複数を含む状態データを管理する
ことを特徴とする機器。
【請求項８】
制御対象データを内部に保持する機器に搭載されるモジュールであって、
前記機器の現在のライフサイクル状態を管理する状態管理手段と、
認証データを受け付けて利用者を認証する利用者認証手段と、
前記制御対象データに対してアクセス要求があった場合に、前記状態管理手段から現在のライフサイクル状態を取得し、前記利用者認証手段で認証を行い、前記制御対象データと対応付けられた状態アクセス制御ポリシーから現在のライフサイクル状態とアクセス要求を行った利用者のグループに基づいてアクセス可否情報を取得し、当該アクセス可否情報に基づいて前記制御対象データに対するアクセスを制御するアクセス制御手段と、
前記状態管理手段によりライフサイクル状態が変更された場合に、前記機器に含まれるモジュールに現在のライフサイクル状態を含むライフサイクル状態情報をコピーするコピー手段と
を備えたことを特徴とするモジュール。
【請求項９】
制御対象データを内部に保持する機器に搭載されるモジュールを構成するコンピュータを、
前記機器の現在のライフサイクル状態を管理する状態管理手段、
認証データを受け付けて利用者を認証する利用者認証手段、
前記制御対象データに対してアクセス要求があった場合に、前記状態管理手段から現在のライフサイクル状態を取得し、前記利用者認証手段で認証を行い、前記制御対象データと対応付けられた状態アクセス制御ポリシーから現在のライフサイクル状態とアクセス要求を行った利用者のグループに基づいてアクセス可否情報を取得し、当該アクセス可否情報に基づいて前記制御対象データに対するアクセスを制御するアクセス制御手段、
前記状態管理手段によりライフサイクル状態が変更された場合に、前記機器に含まれるモジュールに現在のライフサイクル状態を含むライフサイクル状態情報をコピーするコピー手段
として機能させるプログラム。
【請求項１０】
制御対象データを内部に保持する機器に搭載されるモジュールを構成するコンピュータが実行する方法であって、
前記機器の現在のライフサイクル状態を管理する状態管理工程と、
認証データを受け付けて利用者を認証する利用者認証工程と、
前記制御対象データに対してアクセス要求があった場合に、前記状態管理工程により現在のライフサイクル状態を取得し、前記利用者認証工程により認証を行い、前記制御対象データと対応付けられた状態アクセス制御ポリシーから現在のライフサイクル状態とアクセス要求を行った利用者のグループに基づいてアクセス可否情報を取得し、当該アクセス可否情報に基づいて前記制御対象データに対するアクセスを制御するアクセス制御工程と、
前記状態管理工程によりライフサイクル状態が変更された場合に、前記機器に含まれるモジュールに現在のライフサイクル状態を含むライフサイクル状態情報をコピーするコピー工程と
を備えたことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器、モジュール、プログラムおよび制御方法に関する。
【背景技術】
【０００２】
特定の機能を実現するために、車両、家電製品、機械などの機器にコンピュータ機能を有するモジュールを組み込んだ組み込み機器が多く存在する。この種の組み込み機器は、モジュールの内部に重要な電子情報を格納するようになり、その電子情報を守るために高度なセキュリティが必要とされつつある。
【０００３】
例えば、近年、車両に搭載される車載用電子機器技術が発達し安価になったため、ドライブレコーダ、車載カメラ、カーナビシステムといった車載機器が、一般の乗用車にもモジュールとして設置されるようになった。車載カメラに代表される最近の車載機器は、それ自体にデータを保存する機能や、他のデバイスと通信を行う機能を備えており、車載機器各々が持つメモリデータに、ユーザのプライベートな情報や、通信の暗号鍵といった機密情報が保管されている。よって、各車載機器の機密情報を個々に守るセキュリティ機能が必要である。
【０００４】
また、組み込み機器では、製造から廃棄までの各ステージ（段階）を含むライフサイクルを通して電子情報の安全性を保つこと、つまり一貫して機器内の電子情報が安全であることが求められている。例えば、ライフサイクルに応じて主たる利用者が変更される場合に電子情報の安全性を確保する必要性が高い。
【０００５】
一方、ＩＣカードに対する不正利用を防止する目的で、ＩＣカードのライフサイクル状態の変更の際にセキュリティデータの設定等の有無を確認する機能を設け、セキュリティデータの設定等がなされているときに限り状態遷移を行う技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ライフサイクルを状態として管理して、それにより不正利用を防止しようとするのは、複数人の個人情報の共存、それらの個人情報に依存したアクセス制御、不正利用の防止といった点から、ＩＣカードのような単純な機器では可能であっても、汎用的な組み込み機器への適用は困難であるという点で問題があった。
【０００７】
まず、ＩＣカードでは単一の利用者が利用することを前提としているが、一般的なデータストレージを持つ組み込み機器に対してライフサイクルを状態として管理しようとした場合には、利用者が単一であるとは限らない。携帯電話のように利用者がほぼ単一の場合も想定されうるが、オフィスに存在する印刷機など、そもそも複数の利用者を前提としているものもある。また、車両のように一人で利用する場合、レンタルのように貸し借りする場合、カーシェアリングのように複数人がオーナーになる場合など、同じ組み込み機器に対して利用のされ方が異なるものもありうる。これらの組み込み機器に対して鍵やＰＩＮ（Personal Identification Number）の設定だけでライフサイクルを通しての安全性を確保することは非常に難しく、利用者毎の秘密情報を管理し、組み込み機器内のデータに対してライフサイクルに応じた適切なアクセス制限をかけてやることで始めてセキュリティ保証が可能となる。
【０００８】
また、ＩＣカードの例のようにアプリケーションの起動前に情報の設定の有無を調べる対策だけでは、状態遷移を実施した設定者は組み込み機器を利用者に引き渡した後でも、組み込み機器に対してアクセス可能な状態にある。つまり、状態遷移を実施した設定者が不正利用をしないことを前提とし、利用者は設定者を信頼する必要があった。具体的には、ライフサイクル状態を遷移させた場合、その状態遷移を行った設定者と、状態遷移後に組み込み機器を受け取る利用者のどちらもが組み込み機器内の情報にアクセスできる可能性があり、状態遷移後は利用者だけが情報を扱えるようになるという制御ができず、不正利用ができる余地が残されていた。
【０００９】
さらに、ライフサイクル状態のあり方についても問題がある。ＩＣカードでは利用のされ方がほぼ固定であるため、鍵やＰＩＮの設定によるライフサイクル状態遷移への制限のかけ方も固定として扱えていた。しかし、データストレージを持つ組み込み機器の中では、その運用方法によってライフサイクルのあり方が全く異なるものがある。例えば、車両で言えば、個人で利用するものとレンタルされるものではその運用は全く異なる。
【００１０】
しかし、単純にソフトウェアで後からライフサイクル状態に関わる条件を変更できるようにし、仕向け毎に安全な組み込み機器を作るという対策を講じるのは問題がある。
【００１１】
まず、組み込み機器のセキュリティを保つためには、組み込み機器に対するデータへのアクセス制御をライフサイクルに応じて変更するとともに、データの消去といった作業もライフサイクルの変更に応じて実施するなど、セキュリティとライフサイクルが密接に結びついた関係の上にセキュリティ保証が成り立っている必要がある。
【００１２】
しかし、セキュリティとライフサイクルの関係をソフトウェアで変更した場合、セキュリティとライフサイクルの関係性が変更されることになる。その状態で組み込み機器がライフサイクルを通して本当に安全であるかを保証する術がない。例えば、組み込み機器のライフサイクルとして、最終的に廃棄状態にして、組み込み機器の全データを削除するライフサイクル状態を持たせることで、廃棄状態の安全性を保証する組み込み機器があった場合を想定する。もし組み込み機器に対し後からライフサイクル状態データを追加することで廃棄状態に至らない組み込み機器となった場合、廃棄時のデータ消去の保証はされなくなり、組み込み機器が廃棄時にも安全であるかが確かめられなくなるといったセキュリティ上の不備が生じる可能性がある。
【００１３】
つまり、ライフサイクルを通して組み込み機器の安全性を保証しようとする場合には、単純な鍵やＰＩＮだけでなく、個人の情報を適切に管理する必要がある。また、仕向け先ごとにライフサイクル状態を設定できることが望ましいが、そのライフサイクル状態を設定できることが、ライフサイクル管理された組み込み機器のセキュリティ上の穴になりうる可能性もあり、これらのことを考慮したセキュリティシステムを構築することが必要になる。
【００１４】
また、組み込み機器からモジュールが切り離された場合についても考慮する必要があり、その場合でも組み込み機器全体としてのライフサイクル状態が適切に維持されることが望ましい。更に、モジュールの切り離しは、メンテナンス等の適正な目的で行われるほかに、不正な目的で行われる場合もあり、適切な対応が望まれる。
【００１５】
そこで、本発明は、ライフサイクル状態に基づいた状態遷移にてアクセス制御を行う組み込み機器において、組み込み機器のライフサイクルを通しての一貫したセキュリティを保つことを目的とする。
【課題を解決するための手段】
【００１６】
上記の課題を解決するため、本発明にあっては、制御対象データを内部に保持する機器であって、前記機器の現在のライフサイクル状態を管理する状態管理手段と、認証データを受け付けて利用者を認証する利用者認証手段と、前記制御対象データに対してアクセス要求があった場合に、前記状態管理手段から現在のライフサイクル状態を取得し、前記利用者認証手段で認証を行い、前記制御対象データと対応付けられた状態アクセス制御ポリシーから現在のライフサイクル状態とアクセス要求を行った利用者のグループに基づいてアクセス可否情報を取得し、当該アクセス可否情報に基づいて前記制御対象データに対するアクセスを制御するアクセス制御手段と、前記状態管理手段によりライフサイクル状態が変更された場合に、前記機器に含まれるモジュールに現在のライフサイクル状態を含むライフサイクル状態情報をコピーするコピー手段とを備える。
【発明の効果】
【００１７】
本発明にあっては、ライフサイクル状態に基づいた状態遷移にてアクセス制御を行う組み込み機器において、組み込み機器のライフサイクルを通しての一貫したセキュリティを保つことができる。
【図面の簡単な説明】
【００１８】
【図１】ライフサイクルの一例を示す図である。
【図２】組み込み機器の一実施例を示す図である。
【図３】固定ライフサイクル状態と変動ライフサイクル状態の例を示す図である。
【図４】ライフサイクル状態管理モジュールおよび制御モジュールの一実施例を示す図である。
【図５】ライフサイクル状態管理モジュールの一実施例を示す機能ブロック図である。
【図６】ライフサイクル状態管理モジュールに保持されるデータの例を示す図である。
【図７】制御モジュールの一実施例を示す機能ブロック図である。
【図８】制御モジュールに保持されるデータの例を示す図である。
【図９】状態アクセス制御ポリシーの一例を示す図である。
【図１０】ライフサイクル状態情報に関する状態アクセス制御ポリシーの一例を示す図である。
【図１１】状態アクセス制御ポリシーに新たな状態を追加した例を示す図である。
【図１２】状態アクセス制御ポリシーに新たなグループを追加した例を示す図である。
【図１３】実施形態の処理例を示す図である。
【図１４】ライフサイクル状態の遷移の処理を示すフローチャートである。
【図１５】ライフサイクル状態情報のコピー前の制御モジュールの正常性確認の処理を示すフローチャートである。
【図１６】ライフサイクル状態情報のコピーの処理を示すフローチャートである。
【図１７】ライフサイクル状態管理モジュールを介した制御対象データへのアクセス処理を示すフローチャートである。
【図１８】ライフサイクル状態管理の元でのデータのアクセス権限の有無を調べる処理を示すフローチャートである。
【図１９】制御モジュールへのアクセスの処理を示すフローチャートである。
【図２０】制御モジュールへのアクセスの処理を示すフローチャートである。
【図２１】制御モジュールの切り離し検知の処理を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の好適な実施形態につき説明する。
【００２０】
＜実施例＞
＜ライフサイクル＞
図１は、組み込み機器のライフサイクルの一例を示す。組み込み機器のライフサイクル状態には、ユーザ（利用者）が単にその組み込み機器を利用する過程だけでなく、工場で組み込み機器を製造する生産ステージ１、販売するためにトラックなどの輸送手段で運搬する物流ステージ２、販売店で組み込み機器を販売する販売ステージ３がある。さらに、組み込み機器のライフサイクル状態には、ユーザが利用している最中に組み込み機器が故障した場合などに修理を行うなどのサービスを提供するサービスステージ４、環境保護の観点から組み込み機器を回収し、リサイクルする回収リサイクルステージ５がある。組み込み機器によっては、回収リサイクル過程とともに、またはその代わりに組み込み機器を廃棄する廃棄ステージがあるものもある。
【００２１】
図１に示されるライフサイクルは、国や地域などの仕向けによって異なることがあるが、本実施例では、一例としてこれらの各ステージを通じて組み込み機器を運用することを総称してライフサイクルという。例えば、環境保護の観点から確実に回収を行いリサイクルすることや、廃棄後に悪用されないために、正規のルートで（正規のステージを通じて）ライフサイクルが運用されるように制御するとともに、運用されていることを証明する。
【００２２】
＜組み込み機器＞
ライフサイクル状態管理機能を搭載した機器の一例として、ライフサイクル状態管理機能を備えた車両などの組み込み機器（以下、「機器」という）について説明する。
【００２３】
図２は、ライフサイクル状態管理機能を備えた車両の制御モジュール構成の一実施例を示す。本実施例に係る車両は、車両全体のライフサイクルの各ステージ（状態）を管理するライフサイクル状態管理モジュール（マスタモジュール）１００、およびライフサイクルの各ステージに応じてアクセス制御ポリシーが定義されたデータを格納する１または複数の制御モジュールによって構成される。制御モジュールには、ドライブレコーダ、車載カメラ、カーナビシステムといった車載機器（周辺機器）が対応する。各制御モジュールに保持されたデータに対し、ユーザは制御モジュールのユーザインタフェース（ユーザインタフェースの機能を持ったデバイスを外部接続する場合を含む）を介して直接にアクセスできるとともに、ライフサイクル状態管理モジュール１００を介してアクセスすることもできる。
【００２４】
ライフサイクル状態管理モジュール１００、および１または複数の制御モジュールのいくつかは、バス５０によって接続されることによってＣＡＮ（Controller Area Network）、ＬＩＮ（Local Interconnect Network）、イーサネット（Ethernet）（登録商標）、ＬＡＮ（Local Area Network）などのネットワークを構成する。これらのネットワークに限らず、ライフサイクル状態管理モジュール１００、および１または複数の制御モジュールをＦｌｅｘＲａｙによって接続することもできる。図２に示される例では、ライフサイクル状態管理モジュール１００、および複数の制御モジュールのいくつかは、バス５０によって接続される。図２には、複数の制御モジュールの例として、駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００が示される。
【００２５】
ライフサイクル状態管理モジュール１００は、機器全体に対して、唯一つのライフサイクルの各ステージを管理するとともに、機器利用者の認証情報を管理する。ライフサイクル状態管理モジュール１００は、機器の１または複数の制御モジュールの構成を把握し、その１または複数の制御モジュールに制御指示を与える。ライフサイクルの各ステージに応じて、機器の１または複数の制御モジュールのライフサイクルの各ステージに応じて設定されるアクセス制御ポリシー（以下、「状態アクセス制御ポリシー」という）が制御モジュール２００〜５００に格納される。ライフサイクル状態管理モジュール１００は、ライフサイクルの各ステージにおいて、制御の対象となる制御モジュールの状態アクセス制御ポリシーをベースに制御指示を行ったり、各制御の対象となる制御モジュールからの要求を受け付ける。ライフサイクル状態管理モジュール１００は、各制御モジュールからの要求に従い、バス５０を介して機器のライフサイクル状態と、機器を利用するためにアクセスした者（以下、「アクセス者」という）の属するグループを通知する。ここで、グループはアクセス者をアクセス権限の観点から分類したものであり、アクセス者がアクセスする権限があるか否かを判断する際に利用される。グループは人に対して設定することができるし、会社における部署、工場などの人以外のものにも設定できる。
【００２６】
例えば、ライフサイクルの販売ステージ３において営業がアクセス可能な制御モジュールへの制御指示およびデータと、ライフサイクルのサービスステージ４において修理が必要な場合に整備士がアクセス可能な制御モジュールへの制御指示およびデータとはその内容が異なることが想定される。ライフサイクル状態管理モジュール１００は、車両のアクセス者（営業、整備士）の認証情報を管理し、車両のアクセス者と状態アクセス制御ポリシーと関連づける。これにより、営業が修理の際に必要な情報にアクセスしてしまうことによって、整備士が修理の際にアクセスする制御モジュールの情報を壊してしまうことなどを防止できる。
【００２７】
駆動制御モジュール２００は、車両の駆動制御を行う。エンジン制御モジュール３００は、車両のエンジンを制御する。ナビゲーションモジュール４００は、車両を目的地まで導くナビゲーションを行う。車載カメラモジュール５００は、車両に搭載されたカメラを制御する。
【００２８】
駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００には、状態アクセス制御ポリシーが定義されたデータが格納される。状態アクセス制御ポリシーには、ライフサイクルの各ステージに応じて、グループに対するアクセス可能な操作が記載されている。
【００２９】
駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００は、必要に応じて、ライフサイクル状態管理モジュール１００から、その時点でのライフサイクルにおけるステージ、およびアクセス者のグループを受け取り、データへのアクセス可否の判定を行う。ライフサイクルにおけるステージに基づいて車両に搭載された全制御モジュールの各々に対して一斉にアクセス可能なグループが変更されることによって、個別に変更することによる変更忘れ、変更誤りなどを防止できる。
【００３０】
ライフサイクル状態管理モジュール１００と各制御モジュールとの間の接続は、ライフサイクル状態管理モジュール１００、駆動制御モジュール２００、ナビゲーションモジュール４００、および車載カメラモジュール５００のようにバス５０を介して直接データをやり取りできるように接続することもできる。また、駆動制御モジュール２００、およびエンジン制御モジュール３００のように、ライフサイクル状態管理モジュール１００が特定の制御モジュールを介して、間接的にデータをやりとりできるように接続することもできる。また、バス５０を介しての接続には、ネットワークケーブルなどの有線によって接続する場合と、無線ネットワークによって接続する場合とが含まれる。いずれにしても、特定のプロトコルに従って、各制御モジュール間で通信ができるように設定することが求められる。
【００３１】
上述したように、駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、および車載カメラモジュール５００は、状態アクセス制御ポリシーを持ち、データに対するアクセス権の確認を各制御モジュールが個別に行うことができる。アクセス権の確認を各制御モジュールが個別に行う方法以外に、ライフサイクル状態管理モジュール１００に各制御モジュールの持つデータの識別子、およびそのデータに対する状態アクセス制御ポリシーを紐付けることによって対応付けたものを備えることもできる。この場合、ライフサイクル状態管理モジュール１００は、各制御モジュールの持つデータに対して紐付けられた状態アクセス制御ポリシーに基づいてアクセス権の有無を判定し、各制御モジュールに判定結果を通知する。各制御モジュールはライフサイクル状態管理モジュール１００から送信される判定結果を取得し、判定結果にしたがってデータへのアクセスを許可するなどの動作をすることができる。
【００３２】
ライフサイクル状態管理機能を搭載する対象である機器は、共通のライフサイクルにより制御される制御モジュール群全てを指す。つまり、車両を同一のライフサイクルで管理する場合は車両がライフサイクルを持つ機器になるし、ある商材に積まれたボード上の制御モジュールを同一のライフサイクルで管理する場合は、そのボードがライフサイクルを持つ機器になる。特に、機器に搭載される制御モジュールの各々に格納されるデータの寿命と、機器の寿命とが一致する場合に有効である。
【００３３】
＜固定ライフサイクル状態／変動ライフサイクル状態＞
ライフサイクル状態管理モジュール１００では２種類のライフサイクルを管理しており、それぞれを固定ライフサイクル状態、変動ライフサイクル状態と呼ぶ。各ライフサイクル状態は以下の性質を持っている。
【００３４】
◎固定ライフサイクル状態
・全ての仕向け先に共通で適用され、変更することができない
・セキュリティを保つためのアクセス制御ルールが固定で適用される
【００３５】
◎変動ライフサイクル状態
・仕向け先が変更可能であり、ライフサイクル状態の追加や削除も可能である
・変動ライフサイクルに定めるべきアクセス制御ルールは固定ライフサイクルより強い権限を与えることはできない
・固定ライフサイクル状態の子の状態としてのみ存在する
【００３６】
図３は、ライフサイクル状態管理モジュール１００にて管理される固定ライフサイクル状態と変動ライフサイクル状態の例を示す図である。図示の例では、「生産」「物流」「販売」「廃棄」が固定ライフサイクル状態であり、「生産」の子となる「チップ開発」「ボード組み入れ」「商材組み入れ」と、「物流」の子となる「物流業者Ａ管理状態」「物流業者Ｂ管理状態」と、「販売」の子となる「市場運用」「メンテナンス」とが変動ライフサイクル状態である。なお、変動ライフサイクル状態の市場運用状態と保守サービス状態の関係のように、変動ライフサイクル状態においては元に戻るような状態遷移があってもよい。
【００３７】
ライフサイクル状態管理モジュール１００は、その時点での固定ライフサイクル状態と、その固定ライフサイクルの子として存在する変動ライフサイクル状態の２つを保持している。つまり、ある時点での機器の状態とは、固定ライフサイクル状態が何で、また変動ライフサイクル状態が何であるかというペアで表現される。ただし、図３の廃棄状態のように、固定ライフサイクル状態のみで、変動ライフサイクル状態を持たない場合が存在してもよい。
【００３８】
ライフサイクル状態管理モジュール１００の管理対象であるデータにアクセスする際には、まず固定ライフサイクル状態が持つアクセス制御ポリシーを確認し、その結果としてアクセスが可能だと判断された場合に限り、変動ライフサイクル状態のアクセス制御ポリシーの確認が実施される。これにより、ライフサイクル状態管理モジュール１００の安全性を固定ライフサイクル状態で保証し、かつ変動ライフサイクル状態にて仕向け毎の設定を可能にする。変動ライフサイクル状態のアクセス制御ポリシーの確認前に固定ライフサイクル状態のアクセス制御ポリシーを確認することで、各変動ライフサイクル状態で設定可能なアクセス制御ポリシーには制限が設けられることになる。その制約を設けることで変動ライフサイクル状態を設定することによって生じる権限昇格といったセキュリティの穴の発生を防ぐ。
【００３９】
ライフサイクルの状態遷移に関しては、変動ライフサイクル間の状態遷移と、固定ライフサイクル間の状態遷移の２種類が存在する。変動ライフサイクル間の状態遷移は、同一の固定ライフサイクル状態を親として持つ変動ライフサイクル間のみ状態遷移を行うことができる。固定ライフサイクル状態間の状態遷移を実施すると、その時点での変動ライフサイクル状態は破棄され、新しく変更された固定ライフサイクル状態を親として持つ変動ライフサイクル状態の初期値に自動的に変更する。
【００４０】
＜モジュールのハードウェア構成＞
図４は、本実施例に係るライフサイクル状態管理モジュール１００および制御モジュール２００〜５００のハードウェア構成図である。図４に示されているように、本実施例のモジュール１００〜５００は、バスライン１５０により互いに接続されたＣＰＵ（Central Processing Unit）１０２とメモリアクセスコントローラ１０７とバスＩ／Ｆ１０８と入出力装置１０９と認証装置１１０とを備えている。不揮発性メモリ１０３とＲＯＭ（Read Only Memory）１０４とＲＡＭ（Random Access Memory）１０６はメモリアクセスコントローラ１０７を介してバスライン１５０に接続されている。特に、異なる仕向け毎にプログラム可能な構成を実現するために、不揮発性メモリ１０３とメモリアクセスコントローラ１０７とを備えている。
【００４１】
ＣＰＵ１０２は、不揮発性メモリ１０３、ＲＯＭ１０４およびＲＡＭ１０６に展開されている、ユーザデータ、状態データ、制御対象データおよびプログラムを読み込み、実行することで、プログラムされた機能を提供する。
【００４２】
バスＩ／Ｆ１０８は、機器のバス５０（図２）に接続するインタフェースであり、ライフサイクル状態管理モジュール１００が機器に対する操作や、制御対象モジュールからのアクセスを受け付ける。
【００４３】
認証装置１１０は、機器全体（例えば車の制御対象モジュール）を制御するにあたって、機器利用者が許可されたユーザ（管理者を含む）か否か判断する。許可されていないユーザであれば、モジュール１００〜５００を利用することができない状態となる。許可されたユーザであれば、ユーザの所属するグループに合わせてメモリアクセスコントローラ１０７が、不揮発性メモリ１０３、ＲＯＭ１０４およびＲＡＭ１０６にアクセス可能なエリアを限定することで、そのグループにあわせたプログラムの機能を提供したり、アクセスが可能な制御対象モジュールが限定されたり、またアクセスが可能な制御対象モジュールにおいても、不揮発性メモリ１０３、ＲＯＭ１０４およびＲＡＭ１０６に展開されている状態アクセス制御ポリシーに合わせ制御対象モジュールにアクセスできる情報が制限されたりする。これは、認証結果から、認証装置１１０がメモリアクセスコントローラ１０７へ指示する。認証装置１１０が判断するデータは、入出力装置１０９から入力する。これは、ＩＣカードリーダーや、車のキーに機器利用者証明データを置き、キーを差し込むことでそのデータを入力できる装置や、無線や有線などのネットワーク装置でもよく、スマートフォンから認証するような構成でもよい。認証の手順については後述する。
【００４４】
入出力装置１０９は、ユーザ認証にのみ利用するのでなく、異なる仕向け毎に不揮発性メモリ１０３およびＲＡＭ１０６へのデータおよびプログラムの追加・修正・削除を行うためのデータ転送を行う装置である。これは、ＰＣ（Personal Computer）のＲＳ２３２Ｃで接続するような構成でもよいし、ネットワーク装置でスマートフォンからデータを送る構成でもよい。なお、モジュールによっては入出力装置１０９が実装されていない場合もあり、外部のデバイスを接続することで入出力装置１０９とすることができる。
【００４５】
なお、図４ではデータを書き換え可能な領域と、そうでない領域とを物理的に区別するために不揮発性メモリ１０３とＲＯＭ１０４とを分けて記載している。書き換えしてはならないデータ領域に対して、一度書き込んだ後に書き込み不可の権限を付与するという論理的な区別をするならば、データのストレージとしては不揮発性メモリだけでも構わない。つまり、モジュール１００〜５００としては、書き込み可能な領域と書き込み不可能な領域が存在していれば構わない。
【００４６】
なお、モジュール１００〜５００用のプログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
【００４７】
＜ライフサイクル状態管理モジュール（マスタモジュール）１００の機能構成＞
図５は、ライフサイクル状態管理モジュール１００の機能ブロック図である。図５には、ライフサイクル状態管理モジュール１００の機能ブロック図とともに、処理に用いるデータについても記載される。
【００４８】
ライフサイクル状態管理モジュール１００は、状態管理プログラムの実行により実現される状態管理部１６０と、利用者認証プログラムの実行により実現される利用者認証部１６２と、アクセス制御プログラムの実行により実現されるアクセス制御部１６４と、ライフサイクル状態情報コピープログラムの実行により実現されるライフサイクル状態情報コピー部１６５とを有している。これらの動作により、データへのアクセス権の確認のために全てのデータのアクセス制御ポリシーやユーザデータを確認することが可能であり、そこからデータへのアクセス制御を行っていく。
【００４９】
状態管理部１６０は、機器の固定ライフサイクル状態データＤ１と、機器の変動ライフサイクル状態データＤ２と、現時点における機器の固定状態データＤ３と機器の変動状態データＤ４とを参照可能であり、アクセス要求時点でのライフサイクル状態を通知する。固定ライフサイクル状態データＤ１は、機器がとり得る固定ライフサイクル状態に関する情報（固定ライフサイクル状態情報）の全てが含まれており、機器の固定状態データＤ３はそのうちの現在の固定ライフサイクル状態情報である。変動ライフサイクル状態データＤ２は、機器がとり得る変動ライフサイクル状態に関する情報（変動ライフサイクル状態情報）の全てが含まれており、機器の変動状態データＤ４はそのうちの現在の変動ライフサイクル状態情報である。この状態管理部１６０により、アクセス制御のための情報として、その時点のライフサイクル状態を知ることができ、かつ各ライフサイクル状態を遷移させるための条件を知ることが可能になる。
【００５０】
利用者認証部１６２は、利用者の認証情報を入力として動作し、利用者認証の結果と、その利用者のグループを出力する。利用者認証部１６２は外部Ｉ／Ｆから入力されるユーザ情報と、ユーザデータＤ５を参照し、認証できるユーザがいるかを検索する。このとき、認証の手段としてはネットワークＩ／Ｆを用いた認証なら証明書、署名認証、ユーザＩ／Ｆならパスワード認証などが想定されており、認証方法については定めない。認証が成功したなら認証が成功したという結果と、認証が成功したユーザデータ内に存在するグループを出力する。
【００５１】
アクセス制御部１６４は、特定のライフサイクル状態において、ユーザがデータアクセス可能であるかを判定する機能を有し、制御対象データＤ６を参照する。それぞれの制御対象データには、状態アクセス制御ポリシーが含まれている。状態アクセス制御ポリシーは、特定のライフサイクル状態において、どのユーザがアクセス可能か、どのグループがアクセス可能かという、アクセス可能者のリストが格納されている。アクセス制御部１６４は制御対象データＤ６を参照することで、特定のライフサイクル状態における、各データ（ファイル）にアクセス可能な利用者を特定することができる。状態アクセス制御ポリシーの詳細は後述する。
【００５２】
アクセス制御部１６４は、状態管理部１６０を呼び出すことでライフサイクル状態を取得し、利用者認証部１６２を呼び出すことで、該当する利用者のグループを取得し、また、制御対象データＤ６に対し、取得したライフサイクル状態におけるアクセス可能なグループを調べることで、利用者がアクセス可能であるかを決定する。なお、各制御モジュールにおける状態アクセス制御ポリシーの追加・変更もアクセス制御部１６４により行うことができる。
【００５３】
ライフサイクル状態情報コピー部１６５は、状態管理部１６０においてライフサイクル状態が変更（遷移）された場合に、各制御モジュールが適正であるかを確認し、更に各制御モジュールから自己の認証が正常に行われた後に、変更後の機器の固定状態データＤ３と機器の変動状態データＤ４を各制御モジュールにコピーする。
【００５４】
＜ライフサイクル状態管理モジュール１００の保持するデータ構造＞
図６はライフサイクル状態管理モジュール１００に保持されるデータの例を示す図である。データには大きく分けて２種類あり、ＲＯＭ内に存在し、書き換え不可能なデータ（以下、「書き換え不可能なデータ」とも呼ぶ。）と、不揮発性メモリ内に存在し、書き換えや追加や削除が可能なデータ（以下、「書き換え可能なデータ」とも呼ぶ。）の２種類である。図４の構成に従えば、書き換え不可能なデータはＲＯＭ１０４に、書き換え可能なデータは不揮発性メモリ１０３に保存される。
【００５５】
書き換え不可能なデータとして、固定ライフサイクル状態データＤ１、利用者認証プログラムＤ７、アクセス制御プログラムＤ８、状態管理プログラムＤ９、ユーザグループ一覧Ｄ１０、ライフサイクル状態コピープログラムＤ１２が少なくとも存在する。また、書き換え可能なデータとして、ユーザデータＤ５、制御対象データＤ６、変動ライフサイクル状態データＤ２、機器の固定状態データＤ３、機器の変動状態データＤ４、追加ユーザグループ一覧Ｄ１１、モジュールデータＤ１３が少なくとも存在する。これらのデータを用いて利用者毎のアクセス制御をソフトウェアにて実現するが、ソフトウェア視点での各データの相関関係については後述する。
【００５６】
固定ライフサイクル状態データＤ１は、固定ライフサイクル状態として取り得る状態の集合が、固定状態データとして管理されている。各固定状態データは遷移条件、Ｅｎｔｒｙ動作、Ｅｘｉｔ動作を含む。遷移条件は、固定ライフサイクル同士の状態遷移が起こる際に満たすべき条件について記載されており、セキュリティを保ちつつ状態遷移をする上で必要な遷移条件を記載する。Ｅｎｔｒｙ動作は特定の固定ライフサイクルからの遷移にて、該当の状態に遷移した際に実行すべき処理について記述されており、当該状態になった際に、機器の安全性を保つ上で行うべき操作を記述し、それを状態遷移と同時に強制的に実施することでセキュリティの穴が発生することを防ぐ。Ｅｘｉｔ動作は、該当の固定ライフサイクル状態から別の固定ライフサイクル状態に変化する際に、状態遷移に対して残して置くべきでない情報の削除、書き換えられるべきでない情報の書き込み禁止権限の設定といった機能を提供する。これらは全て固定の情報であり、固定ライフサイクル状態遷移を行う際にはそれぞれのデータに従った機能提供、制限が強制的に実行され、それによりセキュリティを保証する。
【００５７】
書き換え不可能なソフトウェアのプログラムとしては、利用者認証プログラムＤ７、アクセス制御プログラムＤ８、状態管理プログラムＤ９、ライフサイクル状態コピープログラムＤ１２が存在する。これらのプログラムが提供する機能の詳細は後述するが、これらはデータに対して特定の利用者がアクセスしようとした際のアクセス制御機能を提供する。よって、これらのプログラムを書き換え不可能なデータとして置くことで、全てのデータアクセスに対してアクセス制御が適用され、また、そのプログラム自体も改竄不可能になるため、セキュリティの保証につながる。また、ユーザグループ一覧Ｄ１０には、利用者に与えられる権限レベルの一覧が記載されており、ユーザデータＤ５内に存在するグループは、ユーザグループ一覧Ｄ１０に存在するグループでなくてはならない。
【００５８】
書き換え可能なデータとしては、アクセス制御のユーザ情報として利用されるユーザデータＤ５、アクセス制御の対象となる制御対象データＤ６、各変動ライフサイクル状態を表す変動ライフサイクル状態データＤ２、機器のその時点でのライフサイクル状態を表す機器の固定状態データＤ３、機器の変動状態データＤ４、追加したユーザグループを含む追加ユーザグループ一覧Ｄ１１、モジュールデータＤ１３を持つ。
【００５９】
書き換え可能なデータについては、書き換えが可能ではあるが、全てのデータに対して書き込みにはアクセス制御による権限確認が実施されるため、全てのユーザが任意に書き換えることが可能ではなく、一部のアクセス権限を持つユーザのみが、アクセス権限を持つデータに限りデータを書き換えることが可能である。
【００６０】
ユーザデータＤ５に含まれる個々のユーザデータには認証データとグループが含まれる。ユーザデータには、一般のユーザだけではなく、管理者のユーザも含まれる。認証データとはユーザ認証の際に使われる情報であり、ネットワークＩ／Ｆを用いた認証なら証明書署名認証、ユーザＩ／Ｆならユーザ名パスワード認証などが想定されており、認証方法については複数が考えられるため、認証データのあり方も複数が考えられるし、複数の認証方式を１つのユーザデータで管理してもよい。また、グループとはユーザがどのような権限を持つグループに属するかを設定したもので、例えば、機器管理者、機器製造者といったものがグループになる。ユーザ情報として設定されるグループとしては機器管理者かつ機器利用者のように複数のグループが設定されていてもよい。また、追加ユーザグループ一覧Ｄ１１の追加ユーザグループでグループを定義しても構わない。ただし、追加ユーザグループは、必ず親のユーザグループをユーザグループ一覧Ｄ１０から設定しなければならない。また、追加ユーザグループに設定できる親のユーザグループは、設定者自身の親グループ、もしくはそれより権限の弱いグループでなくてはならず、設定者が機器に設定する際にアクセス制御がかけられる。
【００６１】
ユーザデータＤ５として登録されているものは人でなくとも構わない。例えば、ログ情報を定期的に外部のサーバに送信するといった場合に、自動で認証を行って外部のサーバに送るなど、人の手が介在しないようなユーザグループの設定もありうる。
【００６２】
制御対象データＤ６に含まれる個々の制御対象データは、アクセス制御できるグループを特定するためのテーブルである状態アクセス制御ポリシーを持つ。状態アクセス制御ポリシーの詳細については後述する。
【００６３】
変動ライフサイクル状態データＤ２に含まれる変動ライフサイクル状態は、遷移条件、Ｅｎｔｒｙ動作、Ｅｘｉｔ動作、親状態データを持つ。遷移条件、Ｅｎｔｒｙ動作、Ｅｘｉｔ動作に関し、データの役割は固定状態データの持つそれと同義である。ただし、遷移条件は固定ライフサイクル状態から固定ライフサイクルへの状態遷移の条件ではなく、変動ライフサイクル状態から変動ライフサイクル状態への遷移条件が記載されている。親状態データに関しては、変動ライフサイクル状態データには存在するが、固定ライフサイクル状態には存在しないデータであり、ここにはただ１つの固定ライフサイクル状態データ名が記載されている。
【００６４】
機器の固定状態データＤ３、機器の変動状態データＤ４は、機器全体のその時点でのライフサイクル状態を示すもので、機器全体でただ１つずつ管理されている。また、機器の固定状態データＤ３と機器の変動状態データＤ４は、ライフサイクル状態の変更（遷移）が行われた場合の変更前のライフサイクル状態についても含まれている。
【００６５】
モジュールデータＤ１３は、ライフサイクル状態管理モジュール１００がライフサイクル状態情報のコピーを行う対象となる制御モジュールの個々についての認証データ（モジュールＩＤ、認証情報（パスワード等））を含むものである。
【００６６】
＜他の制御モジュールの機能構成＞
図７は、他の制御モジュール、すなわち、駆動制御モジュール２００、エンジン制御モジュール３００、ナビゲーションモジュール４００、車載カメラモジュール５００の機能ブロック図である。
【００６７】
制御モジュールは、アクセス制御プログラムにより実現されるアクセス制御部２０１と、利用者認証プログラムにより実現される利用者認証部２０２と、ライフサイクル状態情報コピー受付プログラムにより実現されるライフサイクル状態情報コピー受付部２０３と、マスタモジュール認証プログラムにより実現されるマスタモジュール認証部２０４とを有している。また、切り離し検知プログラムにより実現される切り離し検知部２０５と、盗難対応プログラムにより実現される盗難対応部２０６とを有している。
【００６８】
アクセス制御部２０１は、特定のライフサイクル状態において、ユーザがデータアクセス可能であるかを判定する機能を有し、制御対象データＤ３２を参照する。制御対象データＤ３２には、状態アクセス制御ポリシーＤ３３が含まれている。状態アクセス制御ポリシーＤ３３は、特定のライフサイクル状態において、どのユーザがアクセス可能か、どのグループがアクセス可能かという、アクセス可能者のリストが格納されている。アクセス制御部２０１は制御対象データＤ３２を参照することで、特定のライフサイクル状態における、各データ（ファイル）にアクセス可能な利用者を特定することができる。状態アクセス制御ポリシーＤ３３の詳細は後述する。
【００６９】
利用者認証部２０２は、利用者の認証情報を入力として動作し、利用者認証の結果と、その利用者のグループを出力する。利用者認証部２０２は入力されるユーザ情報と、ユーザデータＤ３１を参照し、認証できるユーザがいるかを検索する。このとき、認証の手段としてはネットワークＩ／Ｆを用いた認証なら証明書、署名認証、ユーザＩ／Ｆならパスワード認証などが想定されており、認証方法については定めない。認証が成功したなら認証が成功したという結果と、認証が成功したユーザデータ内に存在するグループを出力する。
【００７０】
ライフサイクル状態情報コピー受付部２０３は、ライフサイクル状態管理モジュール１００からのライフサイクル状態情報コピー要求に応じ、ライフサイクル状態管理モジュール１００からライフサイクル状態情報を取得して機器の固定状態データＤ２９および機器の変動状態データＤ３０にコピーする。
【００７１】
マスタモジュール認証部２０４は、ライフサイクル状態情報のコピーに際し、ライフサイクル状態管理モジュール１００が正当なモジュールであるか否かをマスタモジュールデータＤ３４を参照して認証する。
【００７２】
切り離し検知部２０５は、制御モジュールがライフサイクル状態管理モジュール１００から切り離されたか否かを検知する。盗難対応部２０６は、切り離し検知部２０５により制御モジュールが切り離されたことを検知し、更に、メンテナンス等の正当な切り離しでない場合に、データ消去や管理者への通知等の盗難対応を行う。
【００７３】
＜制御モジュールの保持するデータ構造＞
図８は制御モジュールに保持されるデータの例を示す図である。データのうち、プログラムとしては、利用者認証プログラムＤ２１、アクセス制御プログラムＤ２２、ライフサイクル状態情報コピー受付プログラムＤ２３、マスタモジュール認証プログラムＤ２４、切り離し検知プログラムＤ２５、盗難対応プログラムＤ２６が含まれる。
【００７４】
利用者認証に用いられるデータとして、ユーザグループ一覧Ｄ２７と追加ユーザグループ一覧Ｄ２８とユーザデータＤ３１が含まれる。機器の固定状態データＤ２９と機器の変動状態データＤ３０はライフサイクル状態管理モジュール１００からコピーされたライフサイクル状態情報である。制御対象データＤ３２はアクセスの対象となる機密情報が含まれるものであり、状態アクセス制御ポリシーＤ３３を含む。マスタモジュールデータＤ３４は、ライフサイクル状態管理モジュール１００の認証に用いられるデータである。
【００７５】
＜状態アクセス制御ポリシー＞
図９は状態アクセス制御ポリシーの一例を示す図である。ライフサイクル状態管理モジュール１００によって管理対象となる制御対象データは、それぞれが状態アクセス制御ポリシーを持つ。状態アクセス制御ポリシーはユーザグループと、機器のライフサイクル状態からなるマトリクス表である。
【００７６】
各ユーザグループに対して、割り当てられるアクセス権限は以下の種類がある。
・Ｒｅａｄ：対象の制御対象データを読み出せる
・Ｗｒｉｔｅ：対象の制御対象データを書き出せる（生成できる）
・Ｅｘｅｃ：対象の制御対象データを利用できる
・Ｄｅｌｅｔｅ：対象の制御対象データを削除できる
・ＲｅＷｒｉｔｅ；対象の制御対象データを変更できる
図９ではユーザグループとして機器製造者、物流管理者、機器管理者、機器利用者がいる場合を想定し、ライフサイクル状態として生産状態、物流状態、販売状態、廃棄状態が存在する場合を想定する。また、簡単のためにこれらは全て固定ライフサイクル状態とし、変動ライフサイクル状態は定義されていないものとする。また、制御対象データとして、各ユーザグループの持つ秘密情報のアクセス制御ポリシーの設定例について記載している。
【００７７】
（１）として示す機器製造者の秘密情報については、製造状態において機器製造者が機器に設定する。この段階では機器製造者のみがＲｅａｄ、Ｗｒｉｔｅ、Ｅｘｅｃ、ＲｅＷｒｉｔｅが可能である。そして、ライフサイクル状態管理モジュール１００が、物流状態に遷移したときに、機器製造者がＷｒｉｔｅとＲｅＷｒｉｔｅをできないようにアクセス制御をする。これにより、機器製造者が機器内の秘密情報を無断で改竄することを防ぎ、否認防止性の確保につながる。物流管理者、機器管理者、機器利用者にとっては機器製造者の秘密情報はＥｘｅｃのみできる。ただし、機器製造者の署名用の秘密鍵など、機器製造者の秘密情報の中には、機器製造者自身しかＥｘｅｃ権限を持たないものがあっても構わない。廃棄状態になったら機器製造者は、機器製造者の秘密情報を廃棄できる。安全性の観点から廃棄においては機器管理者も廃棄できるように設定可能である。
【００７８】
（５）として示す機器製造者の公開情報については、製造状態において機器製造者が機器に設定する。この段階では機器製造者のみがＲｅａｄ、Ｗｒｉｔｅ、Ｅｘｅｃ、ＲｅＷｒｉｔｅが可能である。そして、ライフサイクル状態管理モジュール１００が、市場運用状態に遷移したときに、機器製造者がＷｒｉｔｅとＲｅＷｒｉｔｅをできないようにアクセス制御をする。これにより、機器製造者が機器内の公開情報を無断で改竄することを防ぎ、否認防止性の向上につながる。機器管理者と機器利用者にとっては機器製造者の公開情報はＲｅａｄ、Ｅｘｅｃのみできる。廃棄状態になったら機器製造者は、機器製造者の公開情報を廃棄できる。安全性の観点から廃棄においては機器管理者も廃棄できるように設定可能である。
【００７９】
（３）として示す機器管理者の秘密情報については、市場運用状態において機器管理者が機器に設定する。この段階では機器管理者のみがＲｅａｄ、Ｗｒｉｔｅ、Ｅｘｅｃが可能である。機器製造者と機器利用者にとっては機器製造者の秘密情報はＥｘｅｃのみできる。ただし、機器管理者の署名用の秘密鍵など、機器管理者の秘密情報の中には、機器管理者自身しかＥｘｅｃ権限を持たないものがあっても構わない。これにより、機器管理者の持つ秘密情報を機器の製造者含む他の利用者から保護し、安全にライフサイクル状態管理モジュールを利用することができる。廃棄状態になったら機器製造者は、機器製造者の秘密情報を廃棄できる。安全性の観点から廃棄においては機器管理者も廃棄できるように設定可能である。
【００８０】
他の機器管理者の公開情報、機器利用者の秘密情報、機器利用者の公開情報も同様に、他の利用者の否認防止性、他の利用者からの保護を視点にアクセス制御ポリシーを構成する。ただし機器利用者の秘密情報に関して、機器管理者がＲｅａｄやＷｒｉｔｅをできるようにするかは、ライフサイクル状態管理モジュールの運用によって決めるべきである。管理者が強い権限を持つものであるなら、機器管理者は機器利用者の秘密情報をＲｅａｄできても構わないが、そうでなく機器管理者と機器利用者の権限が近い場合、機器管理者は機器利用者の秘密情報をＲｅａｄできるべきではない。
【００８１】
図１０はライフサイクル状態情報に関する状態アクセス制御ポリシーの一例を示す図である。ここでは、ライフサイクル状態管理モジュール１００から各制御モジュールにライフサイクル状態情報をコピーするための権限として、グループ「マスタモジュール」にＲｅａｄ、Ｗｒｉｔｅ、Ｅｘｅｃ、Ｄｅｌｅｔｅ、ＲｅＷｒｉｔｅの全ての権限が与えられ、他のユーザグループには権限が与えられていない。これにより、ライフサイクル状態管理モジュール１００を経由しないでライフサイクル状態情報を変更することを禁止している。
【００８２】
図１１は状態アクセス制御ポリシーに新たな状態を追加した例を示す図である。図１１では、変動ライフサイクル状態を新たに定義し、それを状態アクセス制御ポリシーに追加する例として、機器をレンタルする場合を想定した「貸出状態」という変動ライフサイクル状態を追加した場合を考えている。なお、この貸出状態は販売状態の子の状態として存在しているとする。
【００８３】
このとき、状態アクセス制御ポリシーは、その状態アクセス制御ポリシーを追加するユーザが任意に設定できてもよい。ただし、貸出状態は販売状態の子の状態として存在するため、そのアクセス制御は販売状態の権限を越えることはできない。図１１の上段のパターン１は、正しい設定例として、必要な範囲でアクセスを可能としている。
【００８４】
図１１の下段のパターン２として示すように、仮に変動ライフサイクル状態に対する状態アクセス制御ポリシーを考えうる限り最弱に設定する悪意のあるユーザが存在したとしても、固定ライフサイクル状態でのアクセス制御が行われているため、少なくとも固定ライフサイクル状態と同じセキュリティ強度を保つことができる。
【００８５】
図１２は状態アクセス制御ポリシーに新たなグループを追加した例を示す図である。図１２では、右端に示すように、「物流管理者」の子として「物流中間業者」のグループを追加している。このように、ユーザグループを新たに定義し、それを状態アクセス制御ポリシーに追加する場合があってもよい。図１１の例と同様に、親のユーザグループが存在することにより、最弱の設定をしたとしても、少なくともユーザグループ一覧に存在するユーザグループと同程度のセキュリティ強度を保つことができる。
【００８６】
＜全体的な処理＞
図１３は上記の実施形態の処理例を示す図である。図１３において、ライフサイクル状態管理モジュール１００にはライフサイクル状態情報が保持されており、ステップＳ１において管理者がライフサイクル状態の遷移（変更）を行うと、ライフサイクル状態情報は変更される。ライフサイクル状態情報が変更されると、ステップＳ２においてライフサイクル状態管理モジュール１００は管理下にある各制御モジュール２００〜５００にライフサイクル状態情報のコピーを行う。
【００８７】
その後、ステップＳ３においてユーザが各制御モジュール２００〜５００にアクセスすると、各制御モジュール２００〜５００のライフサイクル状態情報と状態アクセス制御ポリシーに従ってアクセス制御が行われる。なお、ユーザはライフサイクル状態管理モジュール１００を介して各制御モジュール２００〜５００にアクセスすることもできるし、ライフサイクル状態管理モジュール１００を介さずに各制御モジュール２００〜５００に直接にアクセスすることもできる。ライフサイクル状態管理モジュール１００と切り離された制御モジュールについては直接にアクセスすることになるが、制御モジュール内のライフサイクル状態情報はライフサイクル状態管理モジュール１００と同期されているため、現在のライフサイクル状態に応じた適切なアクセス制御を行うことができる。
【００８８】
＜ライフサイクル状態の遷移処理＞
図１４は管理者によるライフサイクル状態の遷移の処理を示すフローチャートである。図１４のステップＳ１０１において、管理者はライフサイクル状態管理モジュール１００の状態管理部１６０に対してライフサイクル状態遷移要求を発行する。
【００８９】
ライフサイクル状態遷移要求を受け取った状態管理部１６０は、ステップＳ１０２において、ライフサイクル状態管理モジュール１００内のメモリからライフサイクル状態情報と管理者情報を取得する。
【００９０】
次いで、状態管理部１６０は、ステップＳ１０３において、管理者に対して認証情報入力要求を通知する。
【００９１】
ステップＳ１０４において、管理者がユーザグループＩＤと認証パスワードを入力すると、状態管理部１６０は、ステップＳ１０５において、先に取得した管理者情報と入力情報とを照合することで、認証を通過したか否か判断する。認証を通過しなかったと判断した場合、状態管理部１６０はライフサイクル状態遷移要求を破棄して処理を終了する。
【００９２】
認証を通過したと判断した場合、状態管理部１６０は、ステップＳ１０６において、ライフサイクル状態について定義されている遷移条件に基づき、管理者がライフサイクル状態を遷移する権限を持つか否か判断する。権限を持たないと判断した場合、状態管理部１６０はライフサイクル状態遷移要求を破棄して処理を終了する。
【００９３】
権限を持つと判断した場合、状態管理部１６０は、ステップＳ１０７において、管理者に対し、現在と遷移先のライフサイクル状態を提示して合意確認を求める。
【００９４】
ステップＳ１０８において、管理者が合意を入力すると、状態管理部１６０は、ステップＳ１０９において、合意されたか否か判断する。合意されなかったと判断した場合、状態管理部１６０はライフサイクル状態遷移要求を破棄して処理を終了する。
【００９５】
合意されたと判断した場合、状態管理部１６０は、ステップＳ１１０において、遷移前のライフサイクル状態について定義されているＥｘｉｔ処理を実行する。Ｅｘｉｔ処理を実施することによって、ライフサイクル状態を変更する上で、次の状態に移行する際に残しておくことがセキュリティ上の脆弱性につながるような情報の消去、もしくは、そのような情報の書き換えを実施できる。Ｅｘｉｔ処理の一例は、前回のライフサイクル状態における機器の主要な利用者の個人情報につながるログデータの削除、秘密鍵の改ざん防止のための書き込み不可設定などである。
【００９６】
次いで、状態管理部１６０は、ステップＳ１１１において、メモリ上のライフサイクル状態情報に対し、ライフサイクル状態の遷移処理を行う。すなわち、現在のライフサイクル状態を遷移先のものに書き換える。
【００９７】
次いで、状態管理部１６０は、ステップＳ１１２において、遷移先のライフサイクル状態について定義されているＥｎｔｒｙ処理を実行する。Ｅｎｔｒｙ処理では、状態変更後のライフサイクル状態において安全に処理を行えるよう、セキュリティ情報の初期設定などを実施する。一例として、通信のための鍵の設定が必要になる場合に、機器が鍵を自動生成するなどの処理を実施する。
【００９８】
次いで、状態管理部１６０は、ステップＳ１１３において、ライフサイクル状態の遷移が完了したことを管理者に通知し、処理を終了する。
【００９９】
なお、図１４に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
【０１００】
＜ライフサイクル状態遷移後のライフサイクル状態情報のコピーに先立つ確認処理＞
図１５はライフサイクル状態情報のコピー前の制御モジュールの正常性確認の処理を示すフローチャートである。すなわち、最新のライフサイクル状態情報を制御モジュールにコピーすると、ライフサイクル状態管理モジュール１００の管理するライフサイクル状態と同期することとなり、その後は新たなライフサイクル状態に応じたアクセス制御が行われる。しかし、コピー前の制御モジュールのライフサイクル状態がライフサイクル状態管理モジュール１００の管理するライフサイクル状態と相違している場合は、何らかの方法で制御モジュールのセキュリティが突破されている可能性があり、そのような信頼できない制御モジュールに処理を継続させることは適切でない。そのため、ライフサイクル状態情報のコピーに先だって制御モジュールの正常性を確認することとしている。
【０１０１】
図１５のステップＳ２０１において、ライフサイクル状態管理モジュール１００のライフサイクル状態情報コピー部１６５は、ライフサイクル状態管理モジュール１００内のメモリから管理下の制御モジュールのリストを取得する。そして、ライフサイクル状態情報コピー部１６５は、制御モジュールのリストに従い、制御モジュールの１つ１つに対して以下の処理を順番に実行する。
【０１０２】
ライフサイクル状態情報コピー部１６５は、ステップＳ２０２において、制御モジュールＮに対し、ライフサイクル状態確認要求を行う。これを受け、制御モジュールＮは、ステップＳ２０３において、制御モジュールＮ内のメモリから自身のライフサイクル状態を取得する。
【０１０３】
次いで、ライフサイクル状態情報コピー部１６５は、ステップＳ２０４において、ライフサイクル状態管理モジュール１００内のメモリから遷移前のライフサイクル状態を取得する。
【０１０４】
また、制御モジュールＮは、ステップＳ２０５において、自身のライフサイクル状態をライフサイクル状態情報コピー部１６５に応答する。
【０１０５】
ライフサイクル状態情報コピー部１６５は、ステップＳ２０６において、ライフサイクル状態管理モジュール１００側で管理されている遷移前のライフサイクル状態と制御モジュールＮのライフサイクル状態を比較することで、ライフサイクル状態が一致するか否か判断する。一致すると判断した場合、ライフサイクル状態情報コピー部１６５は、その制御モジュールＮについての処理を終了し、次の制御モジュールの処理に移行する。リストにある制御モジュールについて処理が終了した場合、ライフサイクル状態情報コピー部１６５は処理を終了する。
【０１０６】
ライフサイクル状態が一致しないと判断した場合、ライフサイクル状態情報コピー部１６５は、ステップＳ２０７において、その制御モジュールに対し、違反機器に対する処理を実行し、その制御モジュールＮについての処理を終了し、次の制御モジュールの処理に移行する。違反機器に対する処理としては、例えば、管理対象のリストから除外したり、管理者に通知したりするといった処理がある。
【０１０７】
なお、図１５に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
【０１０８】
＜ライフサイクル状態遷移後のライフサイクル状態情報のコピー処理＞
図１６はライフサイクル状態情報のコピーの処理を示すフローチャートである。図１６のステップＳ２１１において、ライフサイクル状態管理モジュール１００のライフサイクル状態情報コピー部１６５は、ライフサイクル状態管理モジュール１００内のメモリから管理下の制御モジュールのリストを取得する。そして、ライフサイクル状態情報コピー部１６５は、制御モジュールのリストに従い、制御モジュールの１つ１つに対して以下の処理を順番に実行する。
【０１０９】
ライフサイクル状態情報コピー部１６５は、ステップＳ２１２において、制御モジュールＮに対し、ライフサイクル状態情報コピー要求を行う。これを受け、制御モジュールＮは、ステップＳ２１３において、マスタモジュールであることの認証を開始し、ライフサイクル状態情報コピー部１６５に対して認証パスワード要求を行う。
【０１１０】
これを受け、ライフサイクル状態情報コピー部１６５は、ステップＳ２１４において、ライフサイクル状態管理モジュール１００内のメモリから制御モジュールＮに対する認証パスワードを取得する。
【０１１１】
また、制御モジュールＮは、ステップＳ２１５において、制御モジュールＮ内のメモリから正解の認証パスワード情報を取得する。
【０１１２】
ステップＳ２１６において、ライフサイクル状態情報コピー部１６５が、認証パスワードを制御モジュールＮに送信すると、制御モジュールＮは、ステップＳ２１７において、正解の認証パスワード情報と送信されてきた認証パスワードを比較することで、パスワードが一致したか否か判断する。一致しないと判断した場合、制御モジュールＮは処理を終了し、次の制御モジュールの処理に移行する。
【０１１３】
パスワードが一致したと判断した場合、制御モジュールＮは、ステップＳ２１８において、ライフサイクル状態情報コピー部１６５に対してコピーするライフサイクル状態情報を要求する。
【０１１４】
これを受け、ライフサイクル状態情報コピー部１６５は、ステップＳ２１９において、ライフサイクル状態情報のコピーデータを制御モジュールＮに送信する。
【０１１５】
制御モジュールＮは、ステップＳ２２０において、ユーザグループを「マスタモジュール」として、ライフサイクル状態情報の上書きアクセスを開始し、ステップＳ２２１において、制御モジュールＮ内のメモリに上書き処理を行う。ユーザグループが「マスタモジュール」に設定されるのは、このフロー実行時かつ、マスタモジュールの認証に成功した時のみである。
【０１１６】
そして、制御モジュールＮは処理を終了し、次の制御モジュールの処理に移行する。リストにある制御モジュールについて処理が終了した場合、ライフサイクル状態情報コピー部１６５は処理を終了する。
【０１１７】
なお、図１６に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
【０１１８】
＜制御対象データへのアクセス処理＞
図１７はライフサイクル状態管理モジュールを介した制御対象データへのアクセス処理を示すフローチャートである。図１７において、機器に対して利用者からデータへのアクセス要求がある場合、処理を開始する。
【０１１９】
ステップＳ３０１において、機器は状態管理部１６０（状態管理プログラム）を呼び出し、利用者のデータへのアクセス要求時点での固定ライフサイクル状態を調べる。
【０１２０】
次いで、ステップＳ３０２において、機器は、固定ライフサイクル状態に基づいた、データに対するアクセス権限の確認を行い、ステップＳ３０３において、利用者はデータに対してアクセス可能な権限を持つかを調べる。この手順の詳細については後述する。
【０１２１】
この際に利用者がデータに対してアクセス可能でないと判断された場合は、ステップＳ３０８において、データへのアクセスは却下される。
【０１２２】
利用者がデータに対してアクセス可能であると判断された場合は、ステップＳ３０４において、機器は状態管理部１６０を呼び出し、利用者のデータへのアクセス要求時点での変動ライフサイクル状態を調べる。
【０１２３】
次いで、ステップＳ３０５において、機器は、変動ライフサイクル状態に基づいた、データに対するアクセス権限の確認を行い、ステップＳ３０６において、利用者はデータに対してアクセス可能な権限を持つかを調べる。この手順の詳細については固定ライフサイクル状態でのアクセス可能な権限を持つかを調べる手順と同一の手順であり、後述する。
【０１２４】
この際に利用者がデータに対してアクセス可能でないと判断された場合は、ステップＳ３０８において、データへのアクセスは却下される。また、アクセス可能と判断された場合には、ステップＳ３０７において、データアクセスを許可される。
【０１２５】
図１７に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
【０１２６】
図１８はライフサイクル状態管理の元でのデータのアクセス権限の有無を調べる処理を示すフローチャートである。機器が制御対象データへのアクセスを要求された場合、機器はアクセス制御機能を呼び出し、データアクセス認可か却下の結論を出す。これらは固定ライフサイクル状態においてのアクセス制御の確認と、変動ライフサイクル状態におけるアクセス制御の確認のために２回呼び出され、処理としては同一である。
【０１２７】
図１８において、制御対象データへのアクセス要求があった場合、ステップＳ３１１において、アクセス制御機能は現在のライフサイクル状態を確認するために、状態管理機能を呼び出す。状態管理機能は、呼び出しに従い、制御対象データへのアクセス要求があった時点での機器の状態データの内容を送信する。このとき、ライフサイクル状態データとして固定ライフサイクル状態データについて調査する際には機器の固定状態データについて調べ、変動ライフサイクル状態データについて調査する際には機器の変動状態データについて調べる。
【０１２８】
次いで、アクセス制御機能はライフサイクル状態データを確認した後、ステップＳ３１２において、アクセス対象である制御対象データの状態アクセスポリシーを確認する。
【０１２９】
次いで、ステップＳ３１３において、アクセス制御機能は状態アクセスポリシーからデータアクセス可能な権限が存在するかを確認する。
【０１３０】
データアクセス可能な利用者が存在しない場合、ステップＳ３１９において、利用者の認証を行う前にデータへのアクセスは拒否される。一例として、ファイル書き込みが許されていないファイルとして、製造者の公開鍵情報などが存在する場合、それに対する書き込みアクセス要求は却下される。
【０１３１】
また、データアクセス可能な利用者が存在する場合、ステップＳ３１４において、アクセス制御機能は状態アクセスポリシーからデータアクセスにユーザグループによるアクセス制御がかかっているかを確認する。
【０１３２】
アクセス制御のかかっていないデータの場合は、ステップＳ３１８において、データアクセス権限を持つと判断し、利用者の認証を行わずにデータにアクセスできる。一例として、状態アクセスポリシーの確認のためのファイルアクセスなどは、利用者の確認を行わずアクセス要求は許可される。
【０１３３】
アクセス制御機能は状態アクセスポリシーからデータアクセスにユーザグループによるアクセス制御がかかっていて、ユーザグループの確認が必要な場合は、ステップＳ３１５において、利用者認証機能を用いて、利用者認証を実施する。認証には利用者の識別子と、利用者の認証情報の入力が必要であり、バスＩ／Ｆ１０８（図４）が利用者の認証情報の入力手段として用いられる。用いられる認証情報についてはバスＩ／Ｆ１０８に接続される入力装置に依存する。一例として、ユーザＩＤとパスワードの入力による認証などが考えられる。また、利用者の認証情報の入力はステップＳ３１５で行うのに代え、データアクセスシーケンス開始時に入力として与えてもよい。
【０１３４】
利用者認証機能は、ステップＳ３１６で認証に成功したなら、アクセス制御機能に対して、認証者のグループを送る。このグループはユーザグループ一覧で定義されたものでも、追加ユーザグループ一覧で定義されたものでも構わないが、追加ユーザグループの場合は必ず親グループのアクセス権限を確認した後、追加ユーザグループの確認が為される。
【０１３５】
認証に成功しなかった場合は、認証失敗結果をアクセス制御機能に対して送る。アクセス制御機能は認証失敗結果を受け取った場合には、ステップＳ３１９において、データアクセス権限を持たないと判断し、ファイルアクセスを却下する。
【０１３６】
認証に成功した場合、ステップＳ３１７において、アクセス制御機能は認証者のグループと、状態アクセスポリシーから、認証者がファイルにアクセス可能であるかを確認する。
【０１３７】
アクセス可能であると判断された場合は、ステップＳ３１８において、データアクセス権限を持つと判断する。そうでない場合は、ステップＳ３１９において、データアクセス権限を持たないと判断する。
【０１３８】
図１８に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
【０１３９】
＜ライフサイクル状態管理モジュール１００を介さないアクセス処理＞
図１９はライフサイクル状態管理モジュール１００を介さない制御モジュールへのアクセスの処理を示すフローチャートである。図１９のステップＳ３２１において、ユーザは制御モジュールのアクセス制御部２０１に対して機密情報へのアクセス要求を行う。これに応じ、アクセス制御部２０１は、ステップＳ３２２において、制御モジュール内のメモリから機密情報のアクセス許可情報（ライフサイクル状態に対応する状態アクセス制御ポリシー）を取得する。
【０１４０】
アクセス制御部２０１は、ステップＳ３２３において、アクセス許可情報が認証を必要としているか否か判断する。認証を必要としていると判断した場合、アクセス制御部２０１は、ステップＳ３２４において、ユーザ認証処理を開始し、ステップＳ３２５において、ユーザに対し認証パスワード入力要求を通知する。
【０１４１】
アクセス制御部２０１は、ステップＳ３２６において、制御モジュール内のメモリから正解の認証パスワード情報を取得する。
【０１４２】
ステップＳ３２７において、ユーザがパスワードを入力すると、アクセス制御部２０１は、ステップＳ３２８において、正解の認証パスワードと入力された認証パスワードを比較することで、パスワードが一致したか否か判断する。一致しないと判断した場合、アクセス制御部２０１は処理を終了する。
【０１４３】
パスワードが一致したと判断した場合、アクセス制御部２０１は、ステップＳ３２９において、ユーザに対し認証が通過した通知を行う。
【０１４４】
次いで、アクセス制御部２０１は、ステップＳ３３０において、制御モジュール内のメモリから要求された機密情報を取得し、ステップＳ３３１において、ユーザに対して機密情報を通知する。
【０１４５】
一方、アクセス許可情報が認証を必要としていないと判断した場合、アクセス制御部２０１は、ステップＳ３３２において、アクセス許可情報がアクセス有効であるか否か判断する。アクセス有効であると判断した場合、アクセス制御部２０１はステップＳ３３０の処理に移行する。アクセス有効でないと判断した場合、アクセス制御部２０１は処理を終了する。
【０１４６】
図１９に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
【０１４７】
＜盗難検知判断処理を含めたアクセス処理＞
図２０は、盗難検知判断処理を含めた制御モジュールへのアクセスの処理を示すフローチャートであり、制御モジュール（周辺機器）の盗難による機密情報の漏洩を防止するようにしたものである。
【０１４８】
内部にユーザの個人情報といった機密情報を保存し、それを活用しながら動作する周辺機器が存在する。例えば、映像データを持ったカメラや、持ち主の住所や旅行履歴が記録されているカーナビシステムなどである。これらの機密情報はユーザが注意深く消去しながら使うものではなく、普段は内部の記憶媒体に残されたままである。もしこのような周辺機器が盗難にあった場合、機密情報を抜き取られ、悪用される危険がある。よって、盗難にあった場合に、その機密情報を周辺機器が自発的に消去するといった、強固な情報漏洩対策を行う機能が求められる。ただし、周辺機器がマスタモジュール（ライフサイクル状態管理モジュール１００）から切り離される原因には、メンテナンスといった正しい目的もあるえるため、単に「マスタモジュールから切り離された場合には機密情報を消去する」といった対処では不十分である。
【０１４９】
そのような機能を実現するために必要となる小さな機能として、
・周辺機器が本体から切り離されたことを検知する機能
・切り離された理由が盗難によるものであることを判断する機能
・盗難時にのみ機密情報を消去する機能
が必要になる。
【０１５０】
図２０において、ユーザが制御モジュールの機密情報へアクセス要求を行うことで、アクセス制御部２０１は処理を開始する。
【０１５１】
先ず、アクセス制御部２０１は、ステップＳ３４１において、固定ライフサイクル状態を確認し、ステップＳ３４２において、固定ライフサイクル状態に基づいたアクセス制御を開始する。
【０１５２】
そして、アクセス制御部２０１は、ステップＳ３４３において、ユーザがアクセス対象のデータに対して固定ライフサイクル状態においてアクセス可能な権限を持つか否か判断する。アクセス可能な権限を持たないと判断した場合、アクセス制御部２０１は、ステップＳ３４４において、データアクセスを却下し、処理を終了する。
【０１５３】
アクセス可能な権限を持つと判断した場合、アクセス制御部２０１は、ステップＳ３４５において、変動ライフサイクル状態を確認する。
【０１５４】
次いで、アクセス制御部２０１は、ステップＳ３４６において、変動ライフサイクル状態が「メンテナンス」であるか否か判断する。変動ライフサイクル状態「メンテナンス」は変動ライフサイクル状態「市場運用」とともに、固定ライフサイクル状態「販売」を親とする。「市場運用」は一般の消費者によって利用されている状態、「メンテナンス」は修理業者などに引き渡している状態を意味する。
【０１５５】
変動ライフサイクル状態が「メンテナンス」であると判断した場合、アクセス制御部２０１は、ステップＳ３４７において、ユーザはアクセス対象のデータに対して変動ライフサイクル状態においてアクセス可能な権限を持つか否か判断する。そして、アクセス可能な権限を持つと判断した場合、アクセス制御部２０１は、ステップＳ３４８において、データアクセスを許可する。アクセス可能な権限を持たないと判断した場合、アクセス制御部２０１は、ステップＳ３４９において、データアクセスを却下する。
【０１５６】
また、変動ライフサイクル状態が「メンテナンス」でないと判断した場合、アクセス制御部２０１は、ステップＳ３５０において、制御モジュールが切り離されているか否か判断する。制御モジュールの切り離しの検知については後述する。
【０１５７】
制御モジュールが切り離されていると判断した場合、アクセス制御部２０１は、ステップＳ３５１において、盗難対応部２０６により盗難対応を行う。盗難対応としては、例えば、プライベートな機密情報を全て消去する等とすることができるが、盗難対策の設計方針によってはそれ以外の振る舞いを実装してもよい。例として、外部のデータサーバに通報したり、機器の備える音声や光の発生手段を用いて周囲に知らせたりすることが考えられる。
【０１５８】
なお、制御モジュールがマスタモジュールから切り離された状態で、メンテナンス以外の目的で取り外されたことを検知し、盗難対応処理を実行することができるのは、制御モジュールが自分のライフサイクル状態を知っているからである。このように、制御モジュールにライフサイクル状態を持たせることにより、マスタモジュールから切り離された場合にも機密情報のセキュリティを担保することができる。
【０１５９】
制御モジュールが切り離されていないと判断した場合、アクセス制御部２０１は、ステップＳ３５２において、ユーザがデータに対して変動ライフサイクル状態においてアクセス可能な権限を持つか否か判断する。そして、アクセス可能な権限を持つと判断した場合、アクセス制御部２０１は、ステップＳ３５３において、データアクセスを許可する。アクセス可能な権限を持たないと判断した場合、アクセス制御部２０１は、ステップＳ３５４において、データアクセスを却下する。
【０１６０】
図２０に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
【０１６１】
図２１は切り離し検知部２０５による制御モジュールの切り離し検知の処理を示すフローチャートである。ここでは、制御モジュールとマスタモジュールが特別な結線によって接続されていることを想定し、その結線を通じて、常にマスタモジュールから特別な信号を受信できていることを「接続状態にある」と定義する。結線が切れ、マスタモジュールから特別な信号が受け取れないことを「切り離された状態」と定義する。なお、盗難検知としているが、ここで実現しているのは「機器が本体から切り離されたことの検知」である。前述した、切り離された理由が「盗難か正規の目的か」という厳密な判断を行うことはできない。そのため、周辺機器のライフサイクル状態情報を利用することで、周辺機器自身が、自分が盗難されたかどうかを正確に判断することができる。
【０１６２】
図２１において、切り離し検知部２０５は処理を開始すると、ステップＳ３６１において、マスタモジュールから結線を通して信号が送られているか否か判断する。
【０１６３】
そして、信号が送られていると判断した場合、切り離し検知部２０５は、ステップＳ３６２において、接続していると判断する。また、信号が送られていないと判断した場合、切り離し検知部２０５は、ステップＳ３６３において、切り離されていると判断する。
【０１６４】
なお、機器が本体から切り離されたことを検知する方法には多くの先行技術が存在する。例えば、特開２０１０‐２８７１９８号公報には、車載機器の盗難検知手法として、イモビライザによって車両本体と車載機器間で特殊な信号をやりとりし続け、機器の盗難により信号が届かないところへ持ちだされると、車両本体は機器が盗難されたと判断する技術が開示されている。その他にも、似たような仕組みは、赤外線センサや結線などを用いることでも、実現可能である。
【０１６５】
＜総括＞
以上、説明したように、本実施形態によれば、ライフサイクル状態に基づいた状態遷移にてアクセス制御を行う組み込み機器において、組み込み機器のライフサイクルを通しての一貫したセキュリティを保つことができる。
【０１６６】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【０１６７】
＜実施形態の用語と請求項の用語の対応＞
状態管理部１６０は「状態管理手段」の一例である。利用者認証部１６２は「利用者認証手段」の一例である。アクセス制御部１６４は「アクセス制御手段」の一例である。ライフサイクル状態情報コピー部１６５は「コピー手段」の一例である。
【符号の説明】
【０１６８】
５０        バス
１００      ライフサイクル状態管理モジュール
１０２      ＣＰＵ
１０３      不揮発性メモリ
１０４      ＲＯＭ
１０６      ＲＡＭ
１０７      メモリアクセスコントローラ
１０８      バスＩ／Ｆ
１０９      入出力装置
１１０      認証装置
１５０      バスライン
１６０      状態管理部
１６２      利用者認証部
１６４      アクセス制御部
１６５      ライフサイクル状態情報コピー部
２００      駆動制御モジュール
２０１      アクセス制御部
２０２      利用者認証部
２０３      ライフサイクル状態情報コピー受付部
２０４      マスタモジュール認証部
２０５      切り離し検知部
２０６      盗難対応部
３００      エンジン制御モジュール
４００      ナビゲーションモジュール
５００      車載カメラモジュール
【先行技術文献】
【特許文献】
【０１６９】
【特許文献１】特開２００９−７５９６８号公報
【図２】
2017041012.tif 000003
【図３】
2017041012.tif 000004
【図４】
2017041012.tif 000005
【図５】
2017041012.tif 000006
【図６】
2017041012.tif 000007
【図７】
2017041012.tif 000008
【図８】
2017041012.tif 000009
【図９】
2017041012.tif 000010
【図１０】
2017041012.tif 000011
【図１１】
2017041012.tif 000012
【図１２】
2017041012.tif 000013
【図１３】
2017041012.tif 000014
【図１４】
2017041012.tif 000015
【図１５】
2017041012.tif 000016
【図１６】
2017041012.tif 000017
【図１７】
2017041012.tif 000018
【図１８】
2017041012.tif 000019
【図１９】
2017041012.tif 000020
【図２０】
2017041012.tif 000021
【図２１】
2017041012.tif 000022
【図１】
2017041012.tif 000023