次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。以下で説明する実施例は一例に過ぎず、本発明が適用される実施の形態は、以下の実施例に限られない。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
<実施例>
<ライフサイクル>
図1は、組み込み機器のライフサイクルの一例を示す。組み込み機器のライフサイクル状態には、ユーザが単にその組み込み機器を利用する過程だけでなく、工場で組み込み機器を製造する生産ステージ1、販売するためにトラックなどの輸送手段で運搬する物流ステージ2、販売店で組み込み機器を販売する販売ステージ3がある。さらに、組み込み機器のライフサイクル状態には、ユーザが利用している最中に組み込み機器が故障した場合などに修理を行うなどのサービスを提供するサービスステージ4、環境保護の観点から組み込み機器を回収し、リサイクルする回収リサイクルステージ5がある。組み込み機器によっては、回収リサイクル過程とともに、またはその代わりに組み込み機器を廃棄する廃棄ステージがあるものもある。
図1に示されるライフサイクルは、国や地域などの仕向けによって異なることがあるが、本実施例では、一例としてこれらの各ステージを通じて組み込み機器を運用することを総称してライフサイクルという。例えば、環境保護の観点から確実に回収を行いリサイクルすることや、廃棄後に悪用されないために、正規のルートで(正規のステージを通じて)ライフサイクルが運用されるように制御するとともに、運用されていることを証明する。
<組み込み機器>
ライフサイクル状態管理機能を搭載した機器の一例として、ライフサイクル状態管理機能を備えた車両などの組み込み機器(以下、「機器」という)について説明する。つまり、機器の一例は、組み込み機器である。
図2は、ライフサイクル状態管理機能を備えた車両の制御モジュール構成の一実施例を示す。本実施例に係る車両は、車両全体のライフサイクルの各ステージ(状態)を管理するライフサイクル状態管理モジュール100、およびライフサイクルの各ステージに応じてアクセス制御ポリシーが定義されたデータを格納する1または複数の制御モジュールによって構成される。ライフサイクル状態管理モジュール100、および1または複数の制御モジュールのいくつかは、バス50によって接続されることによってCAN(Controller Area Network)、LIN(Local Interconnect Network)、イーサネット(Ethernet)(登録商標)、LAN(Local Area Network)などのネットワークを構成する。これらのネットワークに限らず、ライフサイクル状態管理モジュール100、および1または複数の制御モジュールをFlexRayによって接続することもできる。図1に示される例では、ライフサイクル状態管理モジュール100、および複数の制御モジュールのいくつかは、バス50によって接続される。図1には、複数の制御モジュールの例として、駆動制御モジュール200、エンジン制御モジュール300、ナビゲーションモジュール400、および車載カメラモジュール500が示される。
ライフサイクル状態管理モジュール100は、機器全体に対して、唯一つのライフサイクルの各ステージを管理するとともに、機器利用者の認証情報を管理する。ライフサイクル状態管理モジュール100は、機器の1または複数の制御モジュールの構成を把握し、その1または複数の制御モジュールに制御指示を与える。ライフサイクルの各ステージに応じて、機器の1または複数の制御モジュールのライフサイクルの各ステージに応じて設定されるアクセス制御ポリシー(以下、「状態アクセス制御ポリシー」という)がライフサイクル状態管理モジュール100に格納される。ライフサイクル状態管理モジュール100は、ライフサイクルの各ステージにおいて、制御の対象となる制御モジュールの状態アクセス制御ポリシーをベースに制御指示を行ったり、各制御の対象となる制御モジュールからの要求を受け付ける。ライフサイクル状態管理モジュール100は、各制御モジュールからの要求に従い、バス50を介して機器のライフサイクル状態と、機器を利用するためにアクセスした者(以下、「アクセス者」という)の持つロールを通知する。ここで、ロールはアクセス者の役割を示し、アクセス者がアクセスする権限があるか否かを判断する際に利用される。ロールは人に対して設定することができるし、会社における部署、工場などの人以外のものにも設定できる。
例えば、ライフサイクルの販売ステージ3において営業がアクセス可能な制御モジュールへの制御指示およびデータと、ライフサイクルのサービスステージ4において修理が必要な場合に整備士がアクセス可能な制御モジュールへの制御指示およびデータとはその内容が異なることが想定される。ライフサイクル状態管理モジュール100は、車両のアクセス者(営業、整備士)の認証情報を管理し、車両のアクセス者と状態アクセス制御ポリシーと関連づける。これにより、営業が修理の際に必要な情報にアクセスしてしまうことによって、整備士が修理の際にアクセスする制御モジュールの情報を壊してしまうことなどを防止できる。
駆動制御モジュール200は、車両の駆動制御を行う。エンジン制御モジュール300は、車両のエンジンを制御する。ナビゲーションモジュール400は、車両を目的地まで導くナビゲーションを行う。車載カメラモジュール500は、車両に搭載されたカメラを制御する。
駆動制御モジュール200、エンジン制御モジュール300、ナビゲーションモジュール400、および車載カメラモジュール500には、状態アクセス制御ポリシーが定義されたデータが格納される。状態アクセス制御ポリシーには、ライフサイクルの各ステージに応じてアクセス可能なロールが記載されている。つまり、ライフサイクルにおけるステージが変更されることによって、アクセス可能なロールが変更されうる。
駆動制御モジュール200、エンジン制御モジュール300、ナビゲーションモジュール400、および車載カメラモジュール500は、必要に応じて、ライフサイクル状態管理モジュール100から、その時点でのライフサイクルにおけるステージ、およびアクセス者の持つロールを受け取り、データへのアクセス可否の判定を行う。ライフサイクルにおけるステージに基づいて車両に搭載された全制御モジュールの各々に対して一斉にアクセス可能なロールが変更されることによって、個別に変更することによる変更忘れ、変更誤りなどを防止できる。
また、ライフサイクル状態管理モジュール100にアクセス制御ポリシーが定義されたデータが格納される場合、ライフサイクル状態管理モジュール100のライフサイクルにおけるステージ、およびアクセス者の持つロールを受けてデータへのアクセス可否の判定を行う場合もある。
ライフサイクル状態管理モジュール100と各制御モジュールとの間の接続は、ライフサイクル状態管理モジュール100、駆動制御モジュール200、ナビゲーションモジュール400、および車載カメラモジュール500のようにバス50を介して直接データをやり取りできるように接続することもできる。また、駆動制御モジュール200、およびエンジン制御モジュール300のように、ライフサイクル状態管理モジュール100が特定の制御モジュールを介して、間接的にデータをやりとりできるように接続することもできる。また、バス50を介して接続することに加え、ネットワークケーブルなどの有線によって接続することもできるし、無線ネットワークによって接続することもできる。いずれにしても、特定のプロトコルに従って、各制御モジュール間で通信ができるように設定することが求められる。
上述したように、駆動制御モジュール200、エンジン制御モジュール300、ナビゲーションモジュール400、および車載カメラモジュール500は、状態アクセス制御ポリシーを持ち、データに対するアクセス権の確認を各制御モジュールが個別に行うことができる。アクセス権の確認を各制御モジュールが個別に行う方法以外に、ライフサイクル状態管理モジュール100に各制御モジュールの持つデータの識別子、およびそのデータに対する状態アクセス制御ポリシーを紐付けることによって対応付けたものを備えることもできる。この場合、ライフサイクル状態管理モジュール100は、各制御モジュールの持つデータに対して紐付けられた状態アクセス制御ポリシーに基づいてアクセス権の有無を判定し、各制御モジュールに判定結果を通知する。各制御モジュールはライフサイクル状態管理モジュール100から送信される判定結果を取得し、判定結果にしたがってデータへのアクセスを許可するなどの動作をすることができる。
ライフサイクル状態管理機能を搭載する対象である機器は、共通のライフサイクルにより制御される制御モジュール群全てを指す。つまり、車両を同一のライフサイクルで管理する場合は車両がライフサイクルを持つ機器になるし、ある商材に積まれたボード上の制御モジュールを同一のライフサイクルで管理する場合は、そのボードがライフサイクルを持つ機器になる。特に、機器に搭載される制御モジュールの各々に格納されるデータの寿命と、機器の寿命とが一致する場合に有効である。
<ライフサイクル状態管理モジュール100のハードウェア構成>
図3は、本実施形態に係るライフサイクル状態管理モジュール100のハードウェア構成図である。図3に示されているように、本実施形態のライフサイクル状態管理モジュール100は、ライフサイクル状態管理モジュール100全体の動作を制御するCPU(Central Processing Unit)102、IPL(Initial Program Loader)等のCPU102の駆動に用いられるプログラムを記憶したROM(Read Only Memory)104、およびCPU101のワークエリアとして使用されるRAM(Random Access Memory)106を備える。
さらに、ライフサイクル状態管理モジュール100は、バス50との間のI/F(Interface)であり、ライフサイクル状態管理モジュール100から各制御モジュールへ出力する操作信号などの制御信号や、制御の対象となる制御モジュールからのアクセスを受け付けるバスI/F108を備える。
さらに、ライフサイクル状態管理モジュール100は、機器全体(車両に搭載される制御の対象となる制御モジュール)を制御する際に、アクセス者が許可されたユーザか否かを判断する認証部110および上記各構成要素を図3に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン150を備える。
CPU102、ROM104、RAM106、および認証部110をマイコンとして構成することもできる。また、認証部110は認証装置などのハードウェアによって構成することも、ソフトウェアとして構成することもできる。
CPU102は、ROM104、およびRAM106のいずれかまたは両方に展開されている、ユーザデータ、状態データ、制御対象データ、ライフサイクル状態管理モジュール用のプログラムなどを読み込み、実行することで、プログラムされた機能を提供する。ユーザデータ、状態データ、制御対象データ、およびライフサイクル状態管理モジュール用のプログラムについては後述する。
認証部110は、バスI/F108から入力されるアクセス者の認証情報に基づいてアクセス者を認証する。認証部110は、バスI/F108から入力される認証情報のアクセスID、およびパスワードと、ユーザデータに基づいて、認証情報を入力したアクセス者を認証する。
認証部110は、上述したパスワード認証以外にも、チャレンジレスポンス認証、ワンタイムパスワード、指紋、声紋、虹彩などの人間の生体情報を用いたバイオメトリクス認証、PKI(Public Key Infrastructure)によって、アクセス者にアクセス権があるか否かを確認することもできる。PKIによってアクセス者にアクセス権があるか否かを確認する際には、アクセス者は、認証局に対して公開鍵を提出して証明書の発行を依頼する。認証局は、提出された申請書類などに基づき公開鍵の所有者であるアクセス者を審査し、デジタル証明書を発行する。デジタル証明書には公開鍵の所有者情報などとともに、認証局のデジタル署名が付加されている。アクセス者は、ライフサイクル状態管理モジュール100に対し、デジタル証明書を送付する。ライフサイクル状態管理モジュール100の認証部110はデジタル証明書を認証局の公開鍵で復号し、デジタル証明書中のアクセス者の情報と認証局の署名を確認すると同時にアクセス者の公開鍵を入手することができる。アクセス者の情報と認証局の署名を確認できることによって、アクセス者にアクセス権があるか否かを確認できる。
認証部110によってアクセス者がアクセス許可されていると認証できた場合、CPU102は、ROM104に格納されているデータをRAM106に展開し、そのデータを読み込み実行することによってROM104に格納されたプログラムされた機能を提供する。認証部110によってアクセス者がアクセス許可されていないと判断した場合、認証部110からの指示に基づいて、CPU102は、機器全体(車両全体)を利用できない状態に設定することができる。
バスI/F108は、機器の外部からアクセス者が機器を操作することによって入力される操作信号や、ライフサイクル状態の変更要求などの制御信号を入力する。また、バスI/F108は、バス50に接続された他の制御モジュールからのライフサイクル状態の通知要求や、アクセス者の認証結果で得られたロールの通知要求を受け付ける。なお、バスI/F108以外にも、ネットワークI/Fを接続することもできる。バスI/F108は単独で接続されている場合もあれば、バスI/F108とネットワークI/Fのように複数存在する場合もありうる。また、バスI/F108をネットワーク装置によって構成し、スマートフォンなどの携帯端末からネットワーク装置へデータを無線送信することもできる。
なお、上記ライフサイクル状態管理モジュール用のプログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
<駆動制御モジュール200のハードウェア構成>
図4は、本実施形態に係る駆動制御モジュール200のハードウェア構成図である。図4に示されているように、本実施形態の駆動制御モジュール200は、駆動制御モジュール200全体の動作を制御するCPU202、およびIPL等のCPU202の駆動に用いられるプログラムを記憶したROM204を備える。さらに、駆動制御モジュール200は、CPU202のワークエリアとして使用されるRAM206、およびバス50との間のI/Fであり、駆動制御モジュール200から各制御モジュールへ出力する操作信号(制御信号)や、制御の対象となる制御モジュールからのアクセスを受け付けるバスI/F208を備える。さらに、駆動制御モジュール200は、上記各構成要素を図4に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン250を備える。駆動制御モジュール200に、他のハードウェアブロックを含めて構成することもできる。
CPU202は、ROM204に格納されているデータをRAM206に展開するとともに、そのデータを読み込み、実行することで、ROM204内に格納される駆動制御モジュール用にプログラムされた機能を提供する。このプログラムは、CPU202にライフサイクル状態に基づいてアクセス制御を行わせる。
バスI/F208は、駆動制御モジュール200の外部へ、ライフサイクルにおけるステージを通知することを要求するライフサイクル状態通知要求を出力する出力手段として使われるとともに、ライフサイクル状態通知要求に応じてライフサイクル状態管理モジュール100から送信されるライフサイクルにおけるステージ、およびアクセス者の持つロールの通知を入力する入力手段として使われる。
また、駆動制御モジュール200にアクセス者の認証情報の入力を受け付けるI/Fを備えるように構成することによって、バスI/F208は、その認証情報をライフサイクル状態管理モジュール100に通知する出力手段としても用いることもできる。
なお、バスI/F208以外にも、ネットワークI/Fを接続することもできる。また、駆動制御モジュール200にバスI/F208を単独で接続することもできるし、バスIF208に加え、ネットワークI/Fを接続することによって、複数接続することもできる。
なお、上記駆動制御モジュール用のプログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
<エンジン制御モジュール300のハードウェア構成>
エンジン制御モジュール300は、上述した駆動制御モジュール200と同様のハードウェア構成を適用できる。但し、ROM204には、エンジン制御モジュール300を制御するためのエンジン制御モジュール用プログラムが記録されている。この場合も、エンジン制御モジュール用プログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
<ナビゲーションモジュール400のハードウェア構成>
ナビゲーションモジュール400は、上述した駆動制御モジュール200と同様のハードウェア構成を適用できる。但し、ROM204には、ナビゲーションモジュール400を制御するためのナビゲーションモジュール用プログラムが記録されている。この場合も、ナビゲーションモジュール用プログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
<車載カメラモジュール500のハードウェア構成>
車載カメラモジュール500は、上述した駆動制御モジュール200と同様のハードウェア構成を適用できる。但し、ROM204には、車載カメラモジュール500を制御するための車載カメラモジュール用プログラムが記録されている。この場合も、車載カメラモジュール用プログラムは、インストール可能な形式または実行可能な形式のファイルで、記録メディアやCD−ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
なお、着脱可能な記録媒体の他の例として、CD−R(Compact Disc Recordable)、DVD(Digital Versatile Disk)、ブルーレイディスク等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
<実施形態の機能構成>
次に、本実施形態の機能構成について説明する。図5は、本実施形態の機器を構成するライフサイクル状態管理モジュール100の機能ブロック図である。図5には、ライフサイクル状態管理モジュール100の機能ブロック図とともに、ROM104、およびRAM106のいずれかまたは両方に格納されるデータについても記載される。
<ライフサイクル状態管理モジュール100の機能構成>
ライフサイクル状態管理モジュール100は、利用者認証部160、アクセス制御部162、および状態管理部164を有している。これら各部は、図3に示されている各構成要素のいずれかが、ROM104からRAM106上に展開されたライフサイクル状態管理モジュール用プログラムである、利用者認証プログラム、アクセス制御プログラム、および状態管理プログラムに従ったCPU102からの命令によって動作することで実現される機能、または機能される手段である。
つまり、利用者認証部160は、ROM104からRAM106上に展開された利用者認証プログラムに従ったCPU102からの命令によって動作することで実現される機能、または機能される手段である。また、アクセス制御部162は、ROM104からRAM106上に展開されたアクセス制御プログラムに従ったCPU102からの命令によって動作することで実現される機能、または機能される手段である。また、状態管理部164は、ROM104からRAM106上に展開された状態管理プログラムに従ったCPU102からの命令によって動作することで実現される機能、または機能される手段である。なお、プログラムの依存関係は一例であり、異なる依存関係を有するプログラムでも同様にライフサイクル状態管理機能を実現できる。
(ライフサイクル状態管理モジュール100の各機能構成)
次に、図3および図5を用いて、ライフサイクル状態管理モジュール100の各機能構成について詳細に説明する。なお、以下では、ライフサイクル状態管理モジュール100の各機能構成部を説明するにあたって、図3に示されている各構成要素のうち、ライフサイクル状態管理モジュール100の各機能構成部を実現させるための主な構成要素との関係も説明する。
図5に示されているライフサイクル状態管理モジュール100の利用者認証部160は、図3に示されているCPU102からの命令、図3に示されているバスI/F108、およびROM104に格納されるユーザデータ1001−100N(Nは、N>0の整数)によって実現される。ユーザデータ1001−100Nは、予め登録することができ、Nはユーザ数を表す。さらに、ROM104には、ユーザデータ1001−100Nの各々について、認証データ1101−110N、およびロール1201−120Nがそれぞれ格納される。
利用者認証部160は、バスI/F108からアクセス者の認証情報が入力されることによって動作し、その認証情報と、ユーザデータ1001−100Nのいずれかの認証データに基づいて、アクセス者にアクセス権があることを確認する。利用者認証部160は、アクセス者の認証結果と、アクセス者にアクセス権があることを確認できた場合にはそのアクセス者のロールを出力する。具体的には、利用者認証部160は、バスI/F108から入力されるアクセス者の認証情報に含まれるアクセスIDを、ユーザデータ1001−100Nの認証データ1101−110Nから検索し、認証できるユーザがいるか否かを判断する。認証できるユーザがいる場合には、利用者認証部160は、認証情報に含まれるパスワードが、検索の結果特定されたユーザデータの認証データと一致するか否かを判断することによって、アクセス者にアクセス権があるか否かを確認することによって認証する。利用者認証部160は、アクセス者にアクセス権があることを確認できた場合には、アクセス制御部162に、アクセス者にアクセス権があることを表す情報と、アクセス者のロールを出力する。
図5に示されているライフサイクル状態管理モジュール100のアクセス制御部162は、図3に示されるCPU102からの命令、およびROM104に格納される制御対象データ1301−130M(Mは、M>0の整数)よって実現される。さらに、ROM104には、制御対象データ1301−130Mの各々について、状態アクセス制御ポリシー1401−140Mがそれぞれ格納される。ここで、制御対象データ1301−130Mは、車両に搭載される、駆動制御モジュール200、エンジン制御モジュール300、ナビゲーションモジュール400、車載カメラモジュール500などの各制御モジュールと紐付けることによって対応付けることもできる。つまり、車両に搭載される制御モジュールの各々が制御データを有する。
アクセス制御部162は、特定のライフサイクル状態において、アクセス者が制御対象データ1301−130Mにアクセス可能であるか否かを判定する。制御対象データ1301−130Mには、それぞれ状態アクセス制御ポリシー1401−140Mが含まれ、状態アクセス制御ポリシー1401−140Mには、特定のライフサイクル状態においてアクセス可能なユーザ情報、およびアクセス可能なロール情報が格納される。アクセス制御部162は、状態アクセス制御ポリシー1401−140Mを参照することによって、アクセス者が制御対象データにアクセス権があるか否かを判断する。状態アクセス制御ポリシー1401−140Mの詳細については後述する。
具体的には、アクセス制御部162は、状態管理部164を呼び出すことによってライフサイクル状態情報を取得し、利用者認証部160を呼び出すことによって該当するアクセス者のロールを取得する。アクセス制御部162は、制御対象データ1301−130Mの状態アクセス制御ポリシー1401−140Mを参照することで、各制御対象データについて、状態管理部164から取得したライフサイクルのステージにおけるアクセス可能なロールを特定し、その特定したロールにアクセス者のロールが含まれるか否かを判定することによってアクセス者がアクセス可能であるか否かを判定する。
図5に示されているライフサイクル状態管理モジュール100の状態管理部164は、図3に示されるCPU102からの命令、およびROM104に格納される状態データ1501−150K(Kは、K>0の整数)よって実現される。ここで、状態データ1501−150Kは、車両に搭載される、駆動制御モジュール200、エンジン制御モジュール300、ナビゲーションモジュール400、車載カメラモジュール500などの各制御モジュールと紐付けることによって対応付けることもできる。また、状態データ1501−150Kは、制御対象データ1301−130Kと紐付けることによって対応付けることもできる。状態データ1501−150Kには、状態遷移の要求があった場合の処理内容を規定する。さらに、ROM104には、状態データ1501−150Kの各々について、遷移条件1601−160K、エントリ(Entry)動作1701−170K、およびエグジット(Exit)動作1801−180Kがそれぞれ格納される。
遷移条件1601−160Kには、特定のデータが存在していることや、あるデータが特定の形式を満たす場合にライフサイクルにおけるステージを遷移させることなどの条件が定義される。Entry動作1701−170Kには、セキュリティ情報の初期設定などの状態遷移の後のライフサイクルを安全に使うための処理が定義される。例えば、Entry動作1701−170Kには、通信に使用する秘密鍵などを設定する処理などが定義される。Exit動作1801−180Kには、ライフサイクルにおける状態を変更する上で、次の状態へ移行する際に残しておくことがセキュリティ上の脆弱性につながるような情報の消去、もしくはそのようなセキュリティ上の脆弱性につながるような情報を書き換える処理が定義される。例えば、Exit動作1701−170Kには、前のライフサイクル状態における機器の主要な利用者の個人情報につながるログデータの削除、秘密鍵の改ざん防止のために書き込みを不可とする設定が定義される。
状態管理部164は、アクセス制御部162からのアクセス要求に応じて、ライフサイクル状態データ166を参照し、そのアクセス要求時点のライフサイクルにおけるステージを取得し、アクセス制御部162へ通知する。ここで、ライフサイクル状態データ166は、機器全体における、その時点でのライフサイクルにおけるステージを示すデータであり、機器全体を通して唯一つ管理されている。ライフサイクル状態データ166は、ライフサイクルにおけるステージが変更される状態遷移の度に変更される。例えば、ライフサイクルにおける各ステージにおいて、ステージを変更する人によって変更させるようにしてもよい。状態管理部164は、状態遷移が要求された場合に、状態データ1501−150Kに規定される処理を実行する。
<駆動制御モジュール200の機能構成>
次に、本実施形態の機能構成について説明を続ける。図6は、本実施形態の機器を構成する駆動制御モジュール200の機能ブロック図である。図6には、駆動制御モジュール200の機能ブロック図とともに、ROM204、およびRAM206のいずれかまたは両方に格納されるデータについても記載される。
駆動制御モジュール200は、アクセス制御部262を有し、このアクセス制御部262は、図4に示されている各構成要素のいずれかが、ROM204からRAM206上に展開された駆動制御モジュール用プログラムである、アクセス制御プログラムに従ったCPU202からの命令によって動作することで実現される機能、または機能される手段である。
つまり、アクセス制御部262は、ROM204からRAM206上に展開されたアクセス制御プログラムに従ったCPU202からの命令によって動作することで実現される機能、または機能される手段である。
(駆動制御モジュール200の各機能構成)
次に、図4および図6を用いて、駆動制御モジュール200の各機能構成について詳細に説明する。なお、以下では、駆動制御モジュール200の各機能構成部を説明するにあたって、図4に示されている各構成要素のうち、駆動制御モジュール200の各機能構成部を実現させるための主な構成要素との関係も説明する。
図6に示されている駆動制御モジュール200のアクセス制御部262は、図4に示されるCPU202からの命令、およびROM204に格納される制御対象データ2301−230L(Lは、L>0の整数)よって実現される。さらに、ROM204には、制御対象データ2301−230Lの各々について、状態アクセス制御ポリシー2401−240Lがそれぞれ格納される。ここで、制御対象データ2301−230Lは、車両に搭載される、エンジン制御モジュール300、ナビゲーションモジュール400、車載カメラモジュール500などの各制御モジュールと紐付けることによって対応付けることもできる。つまり、車両に搭載される制御モジュールの各々が制御データを有する。
アクセス制御部262は、特定のライフサイクル状態において、アクセス者が制御対象データ2301−230Lにアクセス可能であるか否かを判定する。制御対象データ2301−230Lには、それぞれ状態アクセス制御ポリシー2401−240Mが含まれ、状態アクセス制御ポリシー2401−240Lには、特定のライフサイクル状態においてアクセス可能なユーザ情報、およびアクセス可能なロール情報が格納される。アクセス制御部262は、状態アクセス制御ポリシー2401−240Lを参照することによって、アクセス者が制御対象データにアクセス権があるか否かを判断する。
具体的には、アクセス制御部262は、バスI/F208を介して、ライフサイクル状態管理モジュール100に、ライフサイクル状態の通知と、アクセス者のロールの通知を要求する。アクセス制御部262は、バスI/F208から、ライフサイクル状態管理モジュール100から送信されるライフサイクル状態と、アクセス者のロールを取得する。アクセス制御部262は、制御対象データ2301−230Mの状態アクセス制御ポリシー2401−240Mを参照することで、各制御対象データについて、ライフサイクル状態管理モジュール100から取得したライフサイクルのステージにおけるアクセス可能なロールを特定し、その特定したロールにアクセス者のロールが含まれるか否かを判定することによってアクセス者がアクセス可能であるか否かを判定する。
<ライフサイクル状態が変更される処理>
図7は、ライフサイクル状態が変更される処理について示す。図7では、製造状態、市場運用状態、廃棄状態の順に機器のライフサイクルのステージが変更され、ライフサイクルのステージの変更にともなって、制御対象データへのアクセス権の内容と、アクセス権を設定できる対象者が変更される。製造状態、市場運用状態、廃棄状態の順にライフサイクルのステージが変更されるのは一例であり、ライフサイクルに他のステージ(状態)を含めることもできる。例えば、ライフサイクルに、リサイクルのために市場運用状態から製造状態に戻すようなライフサイクルを含めることもできる。
製造状態は、市場運用状態に移行する前の状態であり、機器に対して必要な設定が行われる。図7に示される例では、機器製造者は、機器に、機器固体を識別するための情報として「機器固有情報」、機器製造者を認証するための情報として「製造者公開情報」および「製造者秘密情報」を生成し、導入することができる。製造状態では、「機器固有情報」、「製造者公開情報」、および「製造者秘密情報」に対して、機器製造者は読み出し書き出し(生成)可能(READ、WRITE可能)に設定される。
製造状態から市場運用状態への遷移が可能になったら、状態遷移を行い、市場運用状態に移行する。図7に示される例では、製造状態から市場運用状態に移行することによって、主の利用者が機器製造者から機器利用者へ変化するため、機器利用者が設定した認証情報を用いて管理される。機器利用者は、機器に、機器利用者の個人情報として「機器利用者個人情報」、機器利用者の公開情報として「利用者公開情報」を生成し、導入することができる。市場運用状態では、「利用者個人情報」、および「利用者公開情報」に対して機器利用者は読み出し書き出し(生成)可能(READ、WRITE可能)に設定され、さらに、「利用者公開情報」については機器利用者以外の者に対しても読み出し可能(READ可能)に設定される。
市場運用状態では、機器製造者は「利用者個人情報」を読み出すことができないため、機器利用者は機器製造者を信頼しなくても、機器の安全性を確保することができる。逆に、機器利用者は、「製造者秘密情報」を読み出すことができないため、機器製造者は機器利用者を信頼しなくても、機器製造者の安全性も確保することができる。
また、市場運用状態では、「機器固有情報」については機器製造者、および機器利用者は読み出し可能(READ可能)に設定され、「製造者公開情報」については全てのアクセス者に対して読み出し可能(READ可能)に設定され、「製造者秘密情報」については機器製造者は読み出し可能(READ可能)に設定される。さらに、「製造者秘密情報」については、機器が実行できるように設定される。つまり、市場運用状態では「製造者秘密情報」を書き出す(生成する)ことができないように設定されることによって、機器製造者に対して否認防止の義務を負わせることができる。
市場運用状態から廃棄状態への遷移が可能になったら状態遷移を行い、廃棄状態に移行する。図7に示される例では、市場運用状態から廃棄状態へライフサイクル状態が変化する際のEntry処理として、全データを破棄することが設定される例が示される。これによって、機器の廃棄後に、その機器に格納されている秘密情報や、個人情報が盗まれるのを防止できる。例えば、機器の廃棄後に、その機器に格納されている秘密情報や、個人情報が盗まれるのを防止するために、機器に格納されている情報を「新しいデータ」で上書きすることによって全データを消去することによって廃棄する。
ライフサイクルの各ステージに基づいて、機器の全データを管理することができるため、機器の個々のデータについて個別に管理する場合に生じうる特定のデータを破棄し忘れるような状況が発生しない。また、ライフサイクルに関して関連するデータをまとめて状態変更するため、特定のデータのアクセス権の変更ミスなどで発生しうるアクセス権限が昇格するなどのリスクを下げることができる。
<状態アクセス制御ポリシー>
図8は、ライフサイクル状態管理モジュール100の制御対象データ1301−130Mに格納される状態アクセス制御ポリシー1401−140Mの一例を示す。駆動制御モジュール200、エンジン制御モジュール300、ナビゲーションモジュール400、車載カメラモジュール500の制御対象データ2301−230Lに格納される状態アクセス制御ポリシー2401−240Lについても、図8を適用できる。
ライフサイクル状態管理モジュール100によって管理対象とされる制御対象データ1301−130Mは、それぞれが状態アクセス制御ポリシー1401−140Mを有する。状態アクセス制御ポリシー1401−140Mの一例は、アクセス者のロール、および機器のライフサイクルの各ステージと紐付けられるアクセス内容から構成されるマトリクス表で表される。
ただし、アクセス者のロールの代わりに特定の利用者の識別情報(ID)を利用することもできる。これによって、利用者とアクセス内容とを紐付けることができるため、特定の利用者に、他の利用者とは異なるアクセス内容を付与することができる。具体的には、特定の利用者に、多くのアクセスを可能とするなどの強いアクセス権限を与えることができる。また、アクセス者のロールをまとめることによってアクセス者のグループを作成することもできる。アクセス者のグループを利用することで、アクセス者のグループとアクセス内容とを紐付けることができるため、特定のアクセス者のグループに多くのアクセスを可能とするなどの強いアクセス権限を与えることができる。
以下詳細に説明する。
各アクセス者のロールに対して割り当てるアクセス権限のアクセス内容の種類とその説明の一例を以下に示す。
(1)「Read」:対象の制御対象データを読み出せる
(2)「Write」:対象の制御対象データを書き出せる(生成できる)
(3)「Exec」:対象の制御対象データを利用できる
(4)「Delete」:対象の制御対象データを削除できる
(5)「ReWrite」:対象の制御対象データを変更できる
各制御対象データに対する状態アクセス制御ポリシーは、制御対象データ毎に作成される。
図8に示される例では、アクセス者のロールの一例として機器製造者、機器管理者、機器利用者を想定し、ライフサイクルのステージの一例として製造状態、市場運用状態、廃棄状態を想定する。さらに、制御対象データとして、各アクセス者のロールにおける秘密情報のアクセス制御ポリシー、および各アクセス者のロールにおける公開情報のアクセス制御ポリシーの設定例について示す。
図8には、(1)機器製造者の秘密情報に関する状態アクセス制御ポリシー、(2)機器管理者の秘密情報に関する状態アクセス制御ポリシー、(3)機器利用者の秘密情報に関する状態アクセス制御ポリシーが示される。さらに、図8には、(4)機器製造者の公開情報に関する状態アクセス制御ポリシー、(5)機器管理者の公開情報に関する状態アクセス制御ポリシー、(6)機器利用者の公開情報に関する状態アクセス制御ポリシーが示される。
図8の(1)、(4)に示されるように、機器製造者が所有する情報は、「製造者秘密情報」、および「製造者公開情報」である。つまり、機器製造者は、製造状態で「製造者秘密情報」、および「製造者公開情報」を生成し、機器に導入することができる。
「製造者秘密情報」について説明する。
製造状態では、機器製造者は「製造者秘密情報」の読み出し(「Read」)、書き出し(「Write」)、利用(「Exec」)、および変更(「ReWrite」)が可能であり、機器管理者、および機器利用者は「製造者秘密情報」の利用(「Exec」)が可能である。
製造状態から市場運用状態に移行したとき、ライフサイクル状態管理モジュール100は、機器製造者が「製造者秘密情報」の書き出し(「Write」)、および変更(「ReWrite」)をできないようにアクセス制御を実施する。これによって、市場運用状態に移行した後に、機器製造者が機器内の秘密情報を無断で改竄することを防止できるため、秘密情報を用いて実行した処理の否認を防止することができる。
市場運用状態では、機器管理者、および機器利用者は、「製造者秘密情報」の利用(「Exec」)ができる。ただし、「製造者秘密情報」には、機器製造者の署名用の秘密鍵などの機器製造者自身しか利用(「Exec」)権限を持たないものも含まれる。
市場運用状態から廃棄状態への遷移が可能になったら状態遷移を行い、廃棄状態に移行する。ライフサイクル状態管理モジュール100は、機器製造者が「製造者秘密情報」の読み出し(「Read」)、および利用(「Exec」)をできないようにアクセス制御を実施するとともに削除(「Delete」)をできるようにアクセス制御を実施する。機器製造者は、「製造者秘密情報」を削除(「Delete」)などを実施することによって廃棄できる。これによって、機器の廃棄後に、その機器に格納されている「製造者秘密情報」が盗まれることを防止できる。さらに、安全性の観点から廃棄状態においてはライフサイクル状態管理モジュール100は、機器管理者が「製造者秘密情報」の削除(「Delete」)をできるようにアクセス制御を実施できる。
「製造者公開情報」について説明する。
製造状態では、機器製造者は「製造者公開情報」の読み出し(「Read」)、書き出し(「Write」)、利用(「Exec」)、および変更(「ReWrite」)が可能であり、機器管理者、および機器利用者は「製造者公開情報」の読み出し(「Read」)、および利用(「Exec」)が可能である。
製造状態から市場運用状態に移行したとき、ライフサイクル状態管理モジュール100は、機器製造者が「製造者公開情報」の書き出し(「Write」)、および変更(「ReWrite」)をできないようにアクセス制御を実施する。これによって、市場運用状態に移行した後に、機器製造者が機器内の公開情報を無断で改竄することを防止できるため、公開情報を用いて実行した処理の否認を防止することができる。
市場運用状態では、機器管理者、および機器利用者は、「製造者公開情報」の読み出し(「Read」)、および利用(「Exec」)ができる。
市場運用状態から廃棄状態への遷移が可能になったら状態遷移を行い、廃棄状態に移行する。ライフサイクル状態管理モジュール100は、機器製造者が「製造者公開情報」の読み出し(「Read」)、および利用(「Exec」)をできないようにアクセス制御を実施するとともに削除(「Delete」)をできるようにアクセス制御を実施する。機器製造者は、「製造者公開情報」を削除(「Delete」)などを実施することによって廃棄できる。これによって、機器の廃棄後に、その機器に格納されている「製造者公開情報」が盗まれることを防止できる。さらに、安全性の観点から廃棄状態においてはライフサイクル状態管理モジュール100は、機器管理者が「製造者公開情報」の削除(「Delete」)をできるようにアクセス制御を実施できる。
図8の(2)、(5)に示されるように、機器管理者が所有する情報は、「管理者秘密情報」、および「管理者公開情報」である。つまり、機器管理者は、市場運用状態で「管理者秘密情報」、および「管理者公開情報」を生成し、機器に導入することができる。
「管理者秘密情報」について説明する。
市場運用状態では、機器管理者は「管理者秘密情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)が可能であり、機器製造者、および機器利用者は「管理者秘密情報」の利用(「Exec」)が可能である。「管理者秘密情報」には、機器管理者の署名用の秘密鍵などの機器管理者自身しか利用(「Exec」)権限を持たない情報が含まれる。これにより、「管理者秘密情報」を機器製造者などの機器管理者以外の他の利用者から保護することができるため、安全にライフサイクル状態管理モジュール100を利用することができる。
市場運用状態から廃棄状態への遷移が可能になったら状態遷移を行い、廃棄状態に移行する。ライフサイクル状態管理モジュール100は、機器管理者が「管理者秘密情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)をできないようにアクセス制御を実施するとともに削除(「Delete」)をできるようにアクセス制御を実施する。機器管理者は、「管理者秘密情報」を削除(「Delete」)などを実施することによって廃棄できる。これによって、機器の廃棄後に、その機器に格納されている「管理者秘密情報」が盗まれることを防止できる。さらに、安全性の観点から廃棄状態においてはライフサイクル状態管理モジュール100は、機器製造者が「管理者秘密情報」の削除(「Delete」)をできるようにアクセス制御を実施できる。
「管理者公開情報」について説明する。
市場運用状態では、機器管理者は「管理者公開情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)が可能であり、機器製造者、および機器利用者は「管理者公開情報」の読み出し(「Read」)、および利用(「Exec」)が可能である。
市場運用状態から廃棄状態への遷移が可能になったら状態遷移を行い、廃棄状態に移行する。ライフサイクル状態管理モジュール100は、機器利用者が「管理者公開情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)をできないようにアクセス制御を実施するとともに削除(「Delete」)をできるようにアクセス制御を実施する。機器管理者は、「管理者公開情報」を削除(「Delete」)などを実施することによって廃棄できる。これによって、機器の廃棄後に、その機器に格納されている「管理者公開情報」が盗まれることを防止できる。さらに、安全性の観点から廃棄状態においてはライフサイクル状態管理モジュール100は、機器製造者が「管理者公開情報」の削除(「Delete」)をできるようにアクセス制御を実施できる。
図8の(3)、(6)に示されるように、機器利用者が所有する情報は、「利用者秘密情報」、および「利用者公開情報」である。つまり、機器利用者は、市場運用状態で「利用者秘密情報」、および「利用者公開情報」を生成し、機器に導入することができる。
「利用者秘密情報」について説明する。
市場運用状態では、機器利用者、および機器管理者は「利用者秘密情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)が可能であり、機器製造者は「利用者秘密情報」の利用(「Exec」)が可能である。「利用者秘密情報」には、機器利用者の署名用の秘密鍵などの機器利用者自身しか利用(「Exec」)権限を持たない情報が含まれる。これにより、「利用者秘密情報」を機器製造者などの機器管理者、および機器利用者以外の他の利用者から保護することができるため、安全にライフサイクル状態管理モジュール100を利用することができる。
ここで、機器管理者が、「利用者秘密情報」の読み出し(「Read」)、書き出し(「Write」)をできるようにするか否かは、ライフサイクル状態管理モジュール100の運用によって設定できる。例えば、機器管理者が強いアクセス権限を有する場合には、機器管理者は「利用者秘密情報」を読み出し(「Read」)できるように設定し、そうではなく機器管理者と機器利用者のアクセス権限が近く、類似している場合には、機器管理者は「利用者秘密情報」を読み出し(「Read」)できないように設定する。
市場運用状態から廃棄状態への遷移が可能になったら状態遷移を行い、廃棄状態に移行する。ライフサイクル状態管理モジュール100は、機器利用者、および機器管理者が「利用者秘密情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)をできないようにアクセス制御を実施するとともに削除(「Delete」)をできるようにアクセス制御を実施する。機器利用者、および機器管理者は、「利用者秘密情報」を削除(「Delete」)などを実施することによって廃棄できる。これによって、機器の廃棄後に、その機器に格納されている「利用者秘密情報」が盗まれることを防止できる。さらに、安全性の観点から廃棄状態においてはライフサイクル状態管理モジュール100は、機器製造者が「利用者秘密情報」の削除(「Delete」)をできるようにアクセス制御を実施できる。
「利用者公開情報」について説明する。
市場運用状態では、機器利用者、および機器管理者は「利用者公開情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)が可能であり、機器製造者は「利用者公開情報」の利用(「Exec」)が可能である。
ここで、機器管理者が、「利用者公開情報」の読み出し(「Read」)、書き出し(「Write」)をできるようにするか否かは、ライフサイクル状態管理モジュール100の運用によって設定できる。例えば、機器管理者が強いアクセス権限を有する場合には、機器管理者は「利用者公開情報」を読み出し(「Read」)、書き出し(「Write」)をできるように設定し、そうではなく機器管理者と機器製造者のアクセス権限が近く、類似している場合には、機器管理者は「利用者公開情報」を読み出し(「Read」)、書き出し(「Write」)をできないように設定する。
市場運用状態から廃棄状態への遷移が可能になったら状態遷移を行い、廃棄状態に移行する。ライフサイクル状態管理モジュール100は、機器利用者、および機器管理者が「利用者公開情報」の読み出し(「Read」)、書き出し(「Write」)、および利用(「Exec」)をできないようにアクセス制御を実施するとともに削除(「Delete」)をできるようにアクセス制御を実施する。機器利用者、および機器管理者は、「利用者公開情報」を削除(「Delete」)などを実施することによって廃棄できる。これによって、機器の廃棄後に、その機器に格納されている「利用者公開情報」が盗まれることを防止できる。さらに、安全性の観点から廃棄状態においてはライフサイクル状態管理モジュール100は、機器製造者が「利用者公開情報」の削除(「Delete」)をできるようにアクセス制御を実施できる。
<制御対象データへのアクセス処理>
図9は、制御対象データへのアクセス処理を示す。
制御対象データへのアクセスを要求された場合、ライフサイクル状態管理モジュール100のアクセス制御部162は、その制御対象データへのアクセスを認可するか、却下するかの結論を出す。なお、種々のプログラムも制御対象データとしてROM104に格納されるため、制御対象データへのアクセス、種々のプログラムを実行する操作によるアクセスは原則的に全て制御対象データへのアクセス処理が要求される。ただし、アクセス制御プログラム、状態管理プログラム、利用者認証プログラムなどのデータアクセスシーケンスの実行に関係するものについてはこの限りでなく、任意のアクセス者によって利用可能とすることができる。
ここでは、アクセス者が、制御対象データ130Mへのアクセスを要求した場合について説明する。
ステップS902では、制御対象データ130Mへのアクセス要求があった場合、アクセス制御部162は、現在のライフサイクル状態を確認するために、状態管理部164を呼び出す。状態管理部164は、アクセス制御部162からの呼び出しに応じて、ライフサイクル状態データ166からライフサイクル状態情報を取得し、アクセス制御部162へ送信する。アクセス制御部162は、状態管理部164からのライフサイクル状態情報を取得することによって、現在のライフサイクル状態を確認できる。
ステップS904では、アクセス制御部162は、制御対象データ130Mの状態アクセス制御ポリシー140Mの現在のライフサイクル状態の部分を参照する。
ステップS906では、アクセス制御部162は、制御対象データ130Mの状態アクセス制御ポリシー140Mの現在のライフサイクル状態の部分に、アクセス可能な権限が設定されている情報があるか否かを判断する。
ステップS908では、制御対象データ130Mの状態アクセス制御ポリシー140Mの現在のライフサイクル状態の部分に、アクセス可能な権限が設定されている情報がある場合、アクセス制御部162は、制御対象データ130Mに権限がなくてもアクセス可能であるか否かを判定する。
ステップS910では、ステップS908によって制御対象データ130Mには権限がないとアクセス不可能であると判定された場合、利用者認証部160は、アクセス者を認証する。つまり、アクセス制御部162によって、状態アクセス制御ポリシー140Mに制御対象データ130Mへのアクセスにロールによるアクセス制御が設定され、ロールの確認が必要であると判定された場合は、利用者認証部160は、アクセス者の認証を実施する。利用者認証部160は、アクセス者を認証する際に、アクセス者の識別情報、およびアクセス者の認証情報を要求し、アクセス者の識別情報、およびアクセス者の認証情報は、バスI/F108から入力される。例えば、バスI/F108に入力装置を接続し、ユーザID、およびパスワードを入力することによってパスワード認証を適用することができる。
ステップS912では、利用者認証部160は、アクセス者の認証が成功したか否かを判定する。
ステップS914では、利用者認証部160によってアクセス者の認証が成功したと判定した場合、利用者認証部160は、アクセス者のロールをアクセス制御部162に入力する。アクセス制御部162は、アクセス者のロールに基づいて、アクセス者は制御対象データ130Mにアクセスする権限を有するか否かを判定する。アクセス制御部162は、状態管理部164から取得したライフサイクルのステージにおけるアクセス可能なロールを特定し、その特定したロールにアクセス者のロールが含まれるか否かを判定することによってアクセス者がアクセス可能であるか否かを判定する。
ステップS916では、ステップS914においてアクセス者がアクセス可能であると判定した場合、またはステップS908において制御対象データ130Mに権限がない場合でもアクセス可能であると判定した場合、アクセス制御部162は、アクセス者にデータアクセスを認可する。
ステップS918では、ステップS906で制御対象データ130Mの状態アクセス制御ポリシー140Mにアクセス可能な権限が設定されていないと判定した場合、アクセス者の認証を行う前に、アクセス制御部162は、そのアクセス者がデータへアクセスすることを拒否する。一例として、製造者の公開鍵情報などの書き込みが許されていないファイルなどの製造者秘密情報が存在する場合、アクセス制御部162は、その製造者秘密情報に書き込むためのアクセス要求を却下する。
また、ステップS918では、ステップS912で利用者認証部160によってアクセス者の認証が成功したと判定されない場合、利用者認証部160は、認証が失敗したことを示す結果をアクセス制御部162に入力する。アクセス制御部162、利用者認証部160から認証が失敗したことを示す結果を取得した場合、そのアクセス者がデータへのアクセスすることを拒否する。
また、ステップS918では、ステップS914においてアクセス者がアクセス可能でないと判定した場合、アクセス制御部162は、そのアクセス者がデータへのアクセスすることを拒否する。
図9に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。例えば、ステップS910の処理は、ステップS902の前に実施することも可能である。
また、図9に示されるフローチャートに示される処理の一部は、駆動制御モジュール200の処理にも適用できる。つまり、ライフサイクル状態管理モジュール100は、ステップS902の処理の後に、駆動制御モジュール200にライフサイクル状態を通知する。
駆動制御モジュール200のアクセス制御部262は、ライフサイクル状態管理モジュール100から通知されるライフサイクル状態に基づいて、ステップS904−S908の処理を実施する。駆動制御モジュール200のアクセス制御部262は、制御対象データが権限なしにアクセス可能である場合には制御対象データへのアクセスを許可し、制御対象データが権限なしにアクセス可能でない場合にはライフサイクル状態管理モジュール100に通知する。
ライフサイクル状態管理モジュール100は、制御対象データは権限なしにアクセス可能でないことが通知された場合に、ステップS910−S912の処理を実施する。ライフサイクル状態管理モジュール100は、認証が失敗した場合にはアクセスを却下し、成功した場合には駆動制御モジュール200に通知する。
駆動制御モジュール200のアクセス制御部262は、認証が成功したことが通知された場合、認証者が制御対象データにアクセス権限を有する否かを判断し、ステップS916またはS918の処理を実施する。
また、図9に示されるフローチャートに示される処理の一部は、駆動制御モジュール200と同様に、エンジン制御モジュール300、ナビゲーションモジュール400、および車載カメラモジュール500の処理にも適用できる。
<ライフサイクル状態の変更処理>
図10は、ライフサイクル状態の変更が行われる際の処理を示す。
ステップS1002では、ライフサイクル状態管理モジュール100のアクセス制御部162は、ライフサイクル状態を変更する要求(以下、「状態変更要求」という)を受け付ける。
ステップS1004では、ライフサイクル状態管理モジュール100のアクセス制御部162は、状態変更要求を行ったアクセス者は、アクセスが許可された者であるか否かを判断する。アクセス制御部162は、データへのアクセス制御の後に、状態変更要求にしたがって、ライフサイクル状態を変更する処理を行う。具体的には、アクセス制御部162は、状態変更要求を受け付けた際に、図9に示される制御対象データへのアクセス処理を実行する。アクセス制御部162は、制御対象データへのアクセスが認可された場合にはライフサイクル状態を変更する処理を行い、アクセスが認可されない場合にはライフサイクル状態を変更する処理を却下する。
ステップS1006では、ステップS1004で状態変更要求を行ったアクセス者がアクセスを許可された者である場合、状態管理部164は、遷移条件を検索する。状態変更要求を受け付けたとき、アクセス制御部162は、状態管理部164を呼び出し、状態変更要求が行われた状態における遷移条件の通知を要求する。状態管理部164は、アクセス制御部162からの遷移条件の通知の要求にしたがって、遷移条件を通知する。遷移条件は、特定のデータ存在していること、あるデータが特定の形式を満たすことなどである。ここでは、一例として、遷移条件は、ROM104に格納された全データのハッシュ値を取り、データの改ざんを受けていないことを確認することである場合について説明する。
ステップS1008では、アクセス制御部162は、状態管理部164から通知される遷移条件に基づいて、状態変更のための遷移条件を満たしているか否かを判断する。ここでは、ROM104に格納された全データのハッシュ値を取り、データの改ざんを受けていないことを確認することが遷移条件であるため、アクセス制御部162は、制御対象データ1301−130MなどのROM104に格納された全データのハッシュ値を取り、データの改ざんを受けているかいないかを判断することによって、状態変更の遷移条件を満たしているか否かを判断する。
ステップS1010では、ステップS1008でデータの改ざんを受けていないと判断した場合、つまり、状態変更条件を満たしている場合、アクセス制御部162は、状態変更前の状態からExitする処理を行う。状態変更条件を満たしている場合、アクセス制御部162は、状態管理部164を呼び出し、状態管理部164に状態遷移前の状態データのExit動作を通知するように要求する。状態管理部164は、アクセス制御部162からのExit動作の通知要求にしたがって、状態遷移前の状態データのExit動作を通知する。アクセス制御部162は、状態管理部164から通知されるExit動作にしたがってExit処理を実施する。Exit処理を実施することによって、ライフサイクル状態を変更する上で、次の状態に移行する際に残しておくことがセキュリティ上の脆弱性につながるような情報の消去、もしくは、そのような情報の書き換えを実施できる。Exit処理の一例は、前回のライフサイクル状態における機器の主要な利用者の個人情報につながるログデータの削除、秘密鍵の改ざん防止のための書き込み不可設定などである。
ステップS1012では、ステップS1010においてExit処理が実施された後、アクセス制御部162は、状態変更を実施する。アクセス制御部162は、状態管理部164に状態の変更を通知する。状態管理部164は、アクセス制御部162から状態の変更が通知されると、現在の状態として記憶している内容を要求された状態に入れ替えることによって、管理対象の状態を遷移させる。
ステップS1014では、状態変更後の状態へのEntry処理を実施する。状態変更後、アクセス制御部162は、状態管理部164を呼び出し、Entry動作を要求する。状態管理部164は、アクセス制御部162からのEntry動作の通知の要求にしたがって、Entry動作を通知する。アクセス制御部162は、状態管理部164から通知されるEntry動作にしたがって、Entry動作を実施する。Entry動作では、状態変更後のライフサイクルを安全に使うための処理として、セキュリティ情報の初期設定などを実施する。一例として、通信のための鍵の設定が必要になる場合に、機器が鍵を自動生成するなどの処理を実施する。
ステップS1016では、ステップS1014によって、Entry処理が実施された後、状態変更を完了する。
ステップS1018では、ステップS1004で状態変更要求を行ったアクセス者がアクセスを許可された者でない場合、またはステップS1008でデータの改ざんを受けていると判断した場合、アクセス制御部162は、状態変更要求を却下する。
図10に示されるフローチャートに示される処理の順序は、この限りでなく適宜変更可能である。
機器の一実施例によれば、ライフサイクルの各ステージによって表されるライフサイクル状態に基づいて、機器全体に対して、操作や、アクセス制御が実施されるため、機器の利用者が変更される場合でも、安全性を確保できる。つまり、機器の製造から廃棄までの各ステージ(プロセス)を通して、ライフサイクル状態を管理をすることによって、セキュリティ上で一貫性を持って機器の安全管理ができる。また、ライフサイクル状態の変更に伴う機器の主要な利用者の変更に応じて、変更後のライフサイクル状態でのアクセス制御により、前の利用者が不正に機器にアクセスすることを防止できる。
また、電子情報資産を格納する機器全体を通して、電子情報資産へアクセスが可能な人物をライフサイクル状態に応じて制御することができるため、ライフサイクル状態の変化と同時に電子情報資産にアクセスできる人物が変更される。さらに、ライフサイクル状態の変化をトリガーとしてExit動作、Entry動作などの機能を呼び出すことができるため、セキュリティホールになりうる電子情報の消去や、再設定ができる。
機器の一例は車両であり、第1の記憶部、および第2の記憶部の一例はROMおよびRAMのいずれかまたは両方であり、電子情報の一例は制御対象データであり、アクセス制御ポリシーの一例は状態アクセス制御ポリシーであり、認証部の一例は利用者認証部である。また、管理モジュールの一例はライフサイクル状態管理モジュールである。
本発明は特定の実施例、変形例を参照しながら説明されてきたが、各実施例、変形例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアでまたはそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。