記憶領域アクセス装置及び記憶領域のアクセス方法
【課題】サンドボックスが動作する携帯端末等の計算機システムにおいてSD等の保護領域を備える外部記憶媒体によって、サンドボックスの動作を設定するアクセス制御ポリシーや、サンドボックスの動作を補完する追加機能を保護する場合に発生し得る課題を解決する記憶領域アクセス装置及び記憶領域のアクセス方法を提供する。
【解決手段】セキュア領域アクセス部120は、暗号化された状態でセキュア領域210に格納されている第1の復号鍵10411を、アクセス鍵1020を用いて取得するとともに、環境情報1030及びアクセス鍵1020を用いて第2の復号鍵1060を取得する機能と、取得した第2の復号鍵1060を用いて、暗号化された第1の復号鍵10411を復号する機能とを有する。データ領域アクセス部140は、セキュア領域アクセス部120によって復号された第1の復号鍵1040を用いて、暗号化されたアクセス制御データ10511を復号する機能を有する。
【解決手段】セキュア領域アクセス部120は、暗号化された状態でセキュア領域210に格納されている第1の復号鍵10411を、アクセス鍵1020を用いて取得するとともに、環境情報1030及びアクセス鍵1020を用いて第2の復号鍵1060を取得する機能と、取得した第2の復号鍵1060を用いて、暗号化された第1の復号鍵10411を復号する機能とを有する。データ領域アクセス部140は、セキュア領域アクセス部120によって復号された第1の復号鍵1040を用いて、暗号化されたアクセス制御データ10511を復号する機能を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CPRM規格準拠のSDカード等、セキュアな保護領域を備えた記憶装置を備えるシステム上で動作するアクセス制御装置が存在する場合に、アクセス制御装置の動作を特定するためのアクセス制御データを安全に保存、かつ適用する記憶領域アクセス装置及び記憶領域のアクセス方法に関する。
【背景技術】
【0002】
携帯電話端末のインターネット接続サービスなどで閲覧可能なウェブサイトの中で通信事業者による公式カテゴリに収録されていないサイトからダウンロードしたアプリケーションなど、非信頼なアプリケーションが動作するソフトウェア実行環境においては、当該端末上のファイルやデバイスといった重要リソースへのアクセスを制限するためのセキュリティ機構が必要となる。このようなセキュリティ機構の一つにサンドボックスと呼ばれる仕組みがあり、非特許文献1に示すとおり、必要とされる環境、機能、あるいは性能に応じて様々な実現形態が存在する。
【0003】
どのような形態のサンドボックスを実現する場合でも、どのアプリケーションにどういったアクセス制御を適用するのかを定義するアクセス制御ポリシーが必要となる。例えば、Linux(登録商標)におけるシステムコールサンドボックスでは、特定のアプリケーションによる特定のファイルへのアクセスを制限したい場合、当該アプリケーションのopenシステムコールを監視することによって、当該ファイルへのアクセスを検知する。
【0004】
サンドボックスの実現例を図1に示す。図1は、アプリケーションがシステムコールを利用してリソースへアクセスする際に、当該システムコールの発行元や引数を検査することによって当該アクセスを制御するシステムコールサンドボックスの一般的な構成を示す。図1において、信頼アプリケーションは、計算機上の信頼リソースへのアクセスが許可されるが、悪意を持つ可能性がある一般アプリケーションは、信頼リソースへのアクセスが許可されない。
【0005】
アクセス制御ポリシーは、サンドボックスの動作設定であり、各アプリケーションについて、各リソースへのアクセス可否を決定する。例えば、システムコールサンドボックスの場合は、アクセス許可、あるいは禁止されるシステムコール、システムコールの発行元、及びシステムコールの引数が特定される情報である。追加機能は、サンドボックスの動作をサポートするための特殊な監視アプリケーションなどを想定している。
【0006】
システムコールサンドボックスは、カーネルに組み込むことによってカーネル空間に実装されることが多い。この場合、信頼アプリケーションや一般アプリケーションがどのような権限を持っているのか、なりすまされていないかといった、アプリケーションの監視が行いにくい。もし、悪意を持ったアプリケーションが信頼アプリケーションになりすましていた場合、サンドボックスのアクセス制御ポリシーは信頼リソースへのアクセスを許可してしまうため、結果的にリソースへの不正アクセスを許してしまうこととなる。
【0007】
追加機能は、サンドボックスのそのような弱点を補うものであり、その機能に応じてユーザ空間に配置される。例えば、Windows Mobile(登録商標)OSでは、ユーザ空間からコール可能なシステムAPIを利用することで、他アプリケーションの権限やメモリ空間を取得することが可能である。
【0008】
図1に示した構成において、悪意を持った一般アプリケーションが信頼リソースにアクセスしようとした場合、次のような方法が考えられる。
【0009】
(1) システムコールサンドボックスの動作を改ざん
(2) アクセス制御ポリシーを改ざん
(3) 追加機能を改ざん
【0010】
これらのうち(1)の方法は、(2)、(3)の方法と比較して難しい。元々、近年のWindows(登録商標)やLinuxといった一般的なOSは、CPUが複数の権限モードを持って動作するように設計されている。このため、アプリケーションが動作するユーザモードと、OSが動作するカーネルモードでは、アクセス可能なメモリ領域、実行可能な機能等が大きく異なる。ユーザ空間からカーネル空間へアクセスすることは非常に困難であり、従って、ユーザ空間で動作する一般アプリケーションがカーネル空間で動作するプログラムを改ざんすることも困難である。また、これらカーネル空間で動作するプログラムの本体は、通常書き換え不可能なROM領域に置かれるため、一般アプリケーションからアクセスすることは困難である。
【0011】
一方、アクセス制御ポリシーや追加機能は、ユーザ空間や書き換え可能な二次記憶上に配置されるため、ユーザや一般アプリケーションによる書き換えが可能となる可能性もある。例えばWindows Mobileでは、ActiveSync(非特許文献2参照)と呼ばれるPCとの連携機能が用意されている。これを利用することで、PC経由から広範囲のメモリ空間を自由に参照することが可能となる。ActiveSyncによってアクセス制御ポリシーや追加機能へのアクセスも簡単に行われるため、改ざんされる可能性も高い。
【0012】
このような課題を解決するために、アクセス制御ポリシーや追加機能を保護領域へ配置する方法が考えられる。保護領域は、計算機にあらかじめハードウェア保護機能を搭載したチップセットを利用することによって実現可能である。例えば、Texas Instruments(TI)の開発したハードウェア保護機能であるM-Shield(非特許文献3参照)を利用する。M-Shieldによって構成された保護領域は、OSとは独立したアクセス制御機構を備え、例えカーネルと同等の権限を持ったアプリケーションであっても、アクセスを制限される。保護領域内部に保存されたデータは、保護領域の機能によって暗号化されるため、誤って流出したとしても内容が漏れる心配はない。
【0013】
上述のようにハードウェアで実現された保護領域によって、アクセス制御ポリシーや追加機能を保護することが可能である。構成を図2に示す。あらかじめ、保護領域へのアクセス権、及び保護領域上に暗号化されたアクセス制御ポリシーや追加機能の復号鍵をサンドボックスに与える。サンドボックスは、保護領域から読み出したアクセス制御ポリシーや追加機能を復号し、二次記憶上に保存することなくそのままサンドボックスに適用、あるいは実行する。こうすることで、不正にアクセスされやすい非保護領域にアクセス制御ポリシーや追加機能が流出することがなくなるため、上述したような課題が解決可能である。
【0014】
上述したような保護領域は、非常に強力なセキュリティ機能を提供するが、一方でハードウェア環境が限られてしまうという欠点を持つ。例えば、上述したM-Shieldは、TI製のセキュアチップセットにしか対応しておらず、他のチップセットで構成される計算機では適用不可能である。仮に、既存のチップセットからセキュアチップセットへの変更を考えた場合、現状のチップセット向けに作られたプログラムやOSの作り変え等を伴う。また、セキュアなハードウェアを搭載したチップセット自体も高価であるため、チップセットが搭載する保護領域を利用したセキュリティ向上は、非常にコストの高い方法であると言える。
【0015】
一方、近年、特に画像や音楽といったマルチメディアコンテンツのバックアップなどに、USBフラッシュメモリやSD(非特許文献4参照)といった外部記憶装置が利用されることが一般的となっている。特に、SDは、PCだけでなく、携帯電話やスマートフォン(以下、携帯端末と適宜省略する)にも広く普及し、携帯端末向け外部記憶装置としては、デファクトスタンダードと成りつつある。
【0016】
携帯端末では、特にSDは、著作権付きのメディアデータのバックアップ装置として用いられるため、カード及びカードリーダ側の双方で著作権保護機能を有することが多い。SDにおける著作権保護機能はCPRM規格(非特許文献5参照)と呼ばれ、4C(非特許文献6参照)と呼ばれる団体によって規格化されている。
【0017】
以下、CPRM規格について簡単に述べる。CPRM規格に準拠したSDの構成を図3に示す。図3では、左側はSDが挿入されるデバイス、右側はSDを表している。SDは、System Area、Hidden Area、Protected Area、User Data Areaに分割されている。このうち、System AreaとHidden Areaは書き換え不可能な領域であり、Hidden Areaは、外部からのアクセスが一切不可能な領域である。Hidden Areaに格納されたメディア固有鍵は、各SDに唯一一つ固有に与えられた秘密鍵である。System Areaに格納されたMKB(Media Key Block)は、特定グループのSDに共通に与えられ、デバイス側がメディア固有鍵を算出するために利用される。
【0018】
デバイス側では、各デバイスに唯一一つ固有に与えられたデバイス鍵、MKB、及びメディア毎に付与されたメディアIDを利用し、メディア固有鍵を算出する。Protected Areaに格納されるタイトル鍵、及びCCI(Copy Control Information)やUR(Usage Rule)は、User Data Areaに格納されるコンテンツとセットで生成され、必ず相互に関連付けられる。
【0019】
ここでタイトル鍵は、コンテンツを暗号化する暗号化鍵であり、CCIやURは、コピー可/不可などのコンテンツ利用ルールを定めるものであり、それらは結合された上でメディア固有鍵によって暗号化される。また、Protected Areaにアクセスするためには、デバイスとメディアとの間でAKE認証を利用した相互認証が必要となる。デバイス側でコンテンツを利用する場合、AKE認証後に対応するタイトル鍵とCCI、URは特定可能であるため、メディア固有鍵を算出することで、まずタイトル鍵とCCI、URを復号し、それによってコンテンツを復号することによって当該コンテンツを利用可能となる。
【0020】
CPRM規格は、上述した構成を基本とし、アプリケーション毎に拡張規格を定義している。代表的なものは、音楽データ用規格SD-Audio、動画データ用規格SD-Video、あるいは機器や利用者の固有情報と関連付けたコンテンツ利用管理が可能なSD-Bindingがある。以下、SD-Bindingについて簡単に述べる。SD-Bindingは、図4に示すとおり、デバイスがタイトル鍵を暗号化する際に、メディア固有鍵とバインドIDを利用することを特徴としている。バインドIDは、デバイス側が任意にタイトル鍵毎に任意に設定可能なビット列である。
【0021】
例えば、携帯端末においてあるコンテンツを購入した際に、バインドIDを当該携帯端末の機種IDとして、当該コンテンツに対応するタイトル鍵を暗号化する。この場合、別の機種IDを持った端末では、タイトル鍵の復号ができないため、SDを別の端末に挿入されたとしても、当該コンテンツを端末上で利用することを防止することが可能となる。特に、著作権者が自身のコンテンツを、特定のデバイスに限定して利用させたい場合に効果的な規格である。
【0022】
SD-Binding規格を利用した技術の例として、特許文献1及び特許文献2などが知られている。
【0023】
特許文献1に開示されている技術は、携帯端末間でのコンテンツ移行が発生した際に、SD上のコンテンツを新端末側でもスムーズに利用可能とするために発明されたものである。旧端末において取得可能なバインドIDによってコンテンツが暗号化されていた場合、バインドIDを登録した管理ファイルを暗号化し、SD上に保存する。新端末側では、管理ファイルを復号することによって、旧端末におけるバインドIDを取得可能であるため、旧端末のバインドIDを利用して暗号化されたコンテンツを新端末側でも利用することが可能となる。
【0024】
特許文献2に開示されている技術は、ある特定の機器にバインドされたコンテンツを、一定の利用制限の元で、他の機器に対しても利用可能とするために発明されたものである。具体的には、SD-Binding規格で規定されたリザーブ領域を利用する。リザーブ領域には少なくとも、他機器でのコンテンツの利用規則とバインドIDの生成方法を記述する。他機器側では、バインドID生成方法によってバインドIDを生成し、コンテンツを復号すると共に、コンテンツ利用規則に従ったコンテンツ利用を行う。
【0025】
以上述べたとおり、CPRM規格によってSD上で保護されたコンテンツは、ユーザや権限を持たない一般アプリケーションが自由に利用不可能となっている。また、CPRM規格は、特に保護されるデータの形式を規定しない。従って、例えばサンドボックスが利用するアクセス制御ポリシーや追加機能であっても、保護することが可能である。CPRM規格によってアクセス制御ポリシー、追加機能の保護が行われたサンドボックスの機能拡張構成を図5に示す。サンドボックスは、少なくともデバイス鍵を参照可能である必要があり、これによって暗号化された追加機能やアクセス制御ポリシーの参照、あるいはこれらの更新が可能となる。
【0026】
CPRM規格を利用した機能拡張について、SD、及びサンドボックスの内部構成を図6に示す。図6の右側は、SDの内部構成を表し、図の左側は、ポリシーの駆動イベントに応じてSDからポリシーを取得し、サンドボックスへ適用するまでの過程を表している。
【0027】
まず、SDの構成について説明する。ここでは、System Areaは記述を省略している。Hidden Areaにはメディア固有鍵が格納されている。Protected Areaには、ポリシーを暗号化するためのポリシー鍵が格納されており、User Data Areaには、ポリシーと追加機能がそれぞれ暗号化され格納されている。ポリシー鍵はポリシー毎に用意される。また、一つのポリシーは、一つ、ないし複数の追加機能と関連付けられる場合があるものとする。
【0028】
次に、サンドボックスの構成を説明する。ポリシー駆動イベントは、サンドボックスに新しいアクセス制御ポリシーを適用するためのイベントである。例えば、端末起動であったり、特定のサービス開始であったりする。それぞれのイベントに応じて、例えば端末起動であれば端末起動時用のポリシーを、サービス開始であれば、当該サービス中用のポリシーをそれぞれ適用する。ポリシー駆動イベントを検知した場合、SDからポリシーや追加機能を取得し、復号後、サンドボックスへ適用する。セキュアデータ取得時は、デバイス鍵を取得することでポリシー鍵を復号し、ポリシーはポリシー鍵を利用して復号する。
【0029】
上述のような、CPRM規格を利用したアクセス制御ポリシーや追加機能の保護が実現可能であった場合、以下のような効果を得ることができる。
【0030】
(1) 特殊なセキュアチップセットを利用せずに、アクセス制御ポリシー、及び追加機能の正当性を保障可能
(2) スマートフォン等のハードウェアリセットに対応可能
(3) セキュリティ強度を調整可能
効果(1)について述べる。SD上のハードウェア的にセキュアな保護領域を利用して、ポリシーや追加機能の保護を実現するため、既存のサンドボックスの問題点であったアクセス制御ポリシーや追加機能の保護を実現することが可能である。また、SD-Binding規格を利用し、サンドボックスが動作するシステム構成やポリシー変更の契機となったイベントを元にバインドIDを生成することで、状況にそぐわない不正なポリシーの適用を防止することが可能となる。さらに、SDが一般的に普及していることを考慮すると、セキュアなチップセットを利用する場合と比較して、容易に実現可能となる。
【0031】
効果(2)について述べる。Windows Mobile等のスマートフォン端末やその他携帯端末は、大抵ハードウェアリセット機能がついており、ユーザが自身の端末を工場出荷時に戻すことが可能である。この場合、二次記憶装置上に書き込まれたデータは全て消去されてしまう。もし、二次記憶上にポリシーや追加機能が保存されていた場合、これらも同時に消去されることとなる。そのため、例えばあるユーザの端末に対して、携帯電話キャリア、企業における管理者、その他の端末の管理者が、利用者に端末利用制限することを目的としたようなポリシーを課していた場合であっても、これが消去されることとなる。しかし、SD上のデータはハードウェアリセットにおける初期化対象外であるため、ポリシーや追加機能をSD上に配置しておけば、初期化後も安全に初期化前と同様のポリシーや追加機能を適用可能となる。
【0032】
効果(3)について述べる。一般的にサンドボックスによるインタフェースアクセス制御は、アプリケーションの動作に不具合を発生させることがある。なぜなら、アプリケーション作成側は、システム上の特定機能へのアクセスが禁止されることを前提として、開発を行っていないためである。一方で、アクセス制御自体は、常に必要とはならない場合も考えられる。
【0033】
例えば、セキュアなサービスを実施している場合や、端末が特別な環境にある場合に限り、サンドボックスによってシステム上の特定の機能を制限したりするような要望も考えられる。このように、端末の利用シーンに応じて要求されるアクセス制御のレベルに差がある場合、アクセス制御の必要がある時にだけサンドボックスのポリシーを適用し、それ以外の場合には、ポリシーを無効化状態としておけば、通常利用時にはアプリケーションに不具合が発生することも少なくなると考えられる。しかし、アクセス制御のポリシーを無効化した場合、システムの安全性が担保されない。そのため、アクセス制御ポリシーや追加機能に対する改ざんが容易に行われ、その後に正常なアクセス制御を実行不可能となってしまう恐れがある。そこで、CPRM規格を利用して、ポリシーの無効化時にはSD上にポリシーや追加機能を配置することによって、アクセス制御が行われていない場合であっても、これらに対する攻撃を防ぐことが可能となる。
【非特許文献1】“ネイティブコードのためのサンドボックス技術”、コンピュータソフトウェアVol.20、No4(20030725)、pp. 375-392、http://ol-www.cs.uec.ac.jp/~oyama/publications/OyamaSandboxSurvey03.pdf
【非特許文献2】ActiveSync4.5、http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=9E641C34-6F7F-404D-A04B-DC09F8141141
【非特許文献3】TEXAS INSTRUMENTS M-Shield、http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12316&contentId=4629
【非特許文献4】SD Card Association、http://www.sdcard.org/home
【非特許文献5】CPRM/CPPM、http://www.4centity.com/tech/cprm/
【非特許文献6】4C Entity、http://www.4centity.com/
【特許文献1】特開2004-139433号公報
【特許文献2】特開2007-94992号公報
【発明の開示】
【発明が解決しようとする課題】
【0034】
しかし、SDのCPRM規格は元々、マルチメディアコンテンツの保護用途をユースケースとして規定されたため、アクセス制御ポリシーの保護に利用した際に発生する特殊な課題に対応できない。以下に、課題の例を示す。
【0035】
(1) ポリシー適用に応じて、システムに再起動が発生した場合
(2) ポリシーの変更や適用の要求を受けるI/F部分の保護方法
(3) アクセス制御ポリシーの更新方法
(4) アクセス制御ポリシー適用中にSD着脱が発生した場合の処理
【0036】
課題(1)について述べる。システムコールサンドボックスなど、カーネルに組み込んで動作するサンドボックスでは、ポリシーの変更に伴い再起動を行う場合がある。これは、カーネル空間のプログラムに対する動作変更、あるいは現在動作中のプログラムに対してOSインタフェースに対するアクセス制限を実行することによって、システムが不安定になることを防止するためである。再起動前後において、SDに格納されたアクセス制御ポリシーをセキュアかつ確実に実現する必要がある。
【0037】
課題(2)について述べる。イベントに応じてアクセス制御ポリシーを適用するシステムを考える。イベントとは、サンドボックスに適用するポリシーを変更する契機であり、例えば特定のネットワークサービス実行時などが考えられる。イベントの発生は、イベントを発生するサービスアプリケーション等が、サンドボックスのポリシー適用機能に対して、ポリシー変更の要求を出すことで検知可能である。しかし、全ての要求を受け付けた場合に、悪意のあるアプリケーションによって不正なポリシーの適用、あるいはポリシーの無効化が行われる可能性がある。正当なアプリケーションからのみ、ポリシーの適用/無効化の要求を受け付けるためには、要求を受けるI/Fを何らかの手段で保護し、不正なアクセスを禁止する必要がある。
【0038】
課題(3)について述べる。アクセス制御ポリシーの更新は、ポリシー鍵の計算によるProtected Areaへの書き込み段階とポリシー鍵で暗号化したポリシーのUser Data Areaへの書き込み段階に分離される。このうち、後者はCPRM規格で示されたマルチメディアコンテンツの書き込み時と同じである。ポリシー鍵の生成方法も、バインドIDを含まないのであれば、全く同じである。
【0039】
しかし実際には、アクセス制御ポリシーを暗号化するユースケースでは、要求元イベント、サンドボックスが動作するシステム環境等によって、適用すべきポリシーが異なるため、これらの情報を元にバインドIDを生成することによって、誤ったポリシーの適用を防止する必要がある。このようなバインドIDを含めたポリシー鍵を暗号化する場合、ポリシー鍵の生成方法は、書き込み側で規定しなければならない。
【0040】
課題(4)について述べる。CPRM規格では、SDが挿入されている際にコンテンツへのアクセスが可能となるだけで、SD着脱に係わる特別な処理を規定していない。しかし、アクセス制御ポリシーを適用する際には、例えば挿入した際のポリシー適用、あるいは非挿入時のポリシー適用要求に対する処理等、SDの着脱状態に係わる特別な処理が必要となる。
【0041】
本発明は、このような状況に鑑みてなされたものであり、サンドボックスが動作する携帯端末等の計算機システムにおいてSD等の保護領域を備える外部記憶媒体によって、サンドボックスの動作を設定するアクセス制御ポリシーや、サンドボックスの動作を補完する追加機能を保護する場合に発生し得る課題を解決する記憶領域アクセス装置及び記憶領域のアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【0042】
上述した問題を解決するため、本発明は、次のような特徴を有している。まず、本発明の第1の特徴は、システム上のリソースへのアクセス制御に用いられるアクセス制御データ(例えば、アクセス制御データ1050)が格納されるデータ領域(データ領域220と、あらかじめ用意されたアクセス鍵(アクセス鍵1020)によってのみアクセス可能なセキュア領域(セキュア領域210)とを含む記憶装置(記憶装置200)と、前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置(アクセス制御装置300)と、前記プログラムが実行されるプログラム実行環境(CPU等のハードウェアやオペレーティングシステム)とを備えるシステムにおいて用いられ、所定のイベント(例えば、イベント400)に応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データを取得する記憶領域アクセス装置(記憶領域アクセス装置100)であって、前記アクセス制御データは、第1の復号鍵(例えば、第1の復号鍵1040)によって復号可能に暗号化された状態で前記データ領域に格納され、前記第1の復号鍵は、第2の復号鍵(第2の復号鍵1060)によって復号可能に暗号化された状態で前記セキュア領域に格納され、前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報(例えば、アクセス制御データ特定情報1010)を生成するイベント検知部(イベント検知部110)と、前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するセキュア領域アクセス部(セキュア領域アクセス部120)と、前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するデータ領域アクセス部(データ領域アクセス部140)と、前記アクセス制御装置の動作環境を特定する第1の環境情報(環境情報1030)を生成する環境情報生成部(環境情報生成部130)とを備え、前記セキュア領域アクセス部は、暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵(例えば、第1の復号鍵10411)を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得する機能と、取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号する機能とを有し、前記データ領域アクセス部は、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データ(例えば、アクセス制御データ10511)を復号する機能を有することを要旨とする。
【0043】
本発明の第2の特徴は、本発明の第1の特徴に係り、前記アクセス制御データ特定情報は、前記所定のイベントを特定する情報を含み、前記環境情報生成部は、前記アクセス制御データ特定情報に基づいて前記第1の環境情報を生成することを要旨とする。
【0044】
本発明の第3の特徴は、本発明の第1の特徴に係り、前記イベント検知部は、前記システムの起動、あるいは前記記憶装置の前記システムへの組み込みである第1のイベント(第1のイベント410)を検出し、前記第1のイベントに応じて適用すべき第1のアクセス制御データ(第1のアクセス制御データ2050)を特定する第1のアクセス制御データ特定情報(第1のアクセス制御データ特定情報2010)を生成することを要旨とする。
【0045】
本発明の第4の特徴は、本発明の第3の特徴に係り、前記第1のアクセス制御データは、前記イベント検知部が検知すべき第2のイベント(第2のイベント420)を特定し、前記イベント検知部は、前記第2のイベントのみを検知対象とすることを要旨とする。
【0046】
本発明の第5の特徴は、本発明の第3の特徴に係り、前記システムを再起動するシステム再起動部(システム再起動部160)をさらに備え、前記イベント検知部は、前記アクセス制御装置への適用時に前記システムの再起動が必要なアクセス制御データである第2のアクセス制御データ(第2のアクセス制御データ3050)に対応する第2のアクセス制御データ特定情報(第2のアクセス制御データ特定情報3010)を生成し、前記セキュア領域アクセス部は、前記第1の復号鍵(第1の復号鍵3040)と、前記第1の復号鍵に対応する第1の暗号化鍵(第1の復号鍵3070)を生成する機能と、前記第1の復号鍵を前記第2の復号鍵(第2の復号鍵3060)によって暗号化する機能と、前記第1の暗号化鍵を第2の暗号化鍵(第2の復号鍵3061)によって暗号化する機能と、暗号化した前記第1の復号鍵(第1の復号鍵3041)、及び暗号化した前記第1の暗号化鍵(第1の復号鍵3071)を、前記第1のアクセス制御データ特定情報によって特定可能な前記セキュア領域に格納する機能とを有し、前記データ領域アクセス部は、前記第2のアクセス制御データ特定情報によって取得した前記第2のアクセス制御データを、前記第1の暗号化鍵によって暗号化する機能と、前記暗号化した第2のアクセス制御データ(第2のアクセス制御データ3051)を、前記第1のアクセス制御データ特定情報によって特定可能な前記データ領域に格納する機能とを有し、前記システム再起動部は、前記システムを再起動した後、前記イベント検知部に前記第1のイベントを通知する機能を有することを要旨とする。
【0047】
本発明の第6の特徴は、本発明の第5の特徴に係り、前記セキュア領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1の復号鍵を消去する機能を有し、前記データ領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1のアクセス制御データ(第1のアクセス制御データ3081)を消去する機能を有することを要旨とする。
【0048】
本発明の第7の特徴は、本発明の第5の特徴に係り、前記セキュア領域アクセス部は、第2の環境情報(環境情報3031)に基づいて前記第2の復号鍵を生成し、前記第2の環境情報は、少なくとも前記システムを一意に特定可能な情報を含むことを要旨とする。
【0049】
本発明の第8の特徴は、本発明の第5の特徴に係り、前記データ領域アクセス部は、前記第1のアクセス制御データ特定情報によって特定可能な領域に、少なくとも前記第2のイベントが発生したことを特定可能なデータを格納することを要旨とする。
【0050】
本発明の第9の特徴は、本発明の第1の特徴に係り、前記記憶装置が前記システムから取り外された場合、前記イベント検知部は、前記アクセス制御データが格納された記憶装置が新たに組み込まれるまで、または前記システムが終了するまで、前記記憶装置が前記システムから取り外された以降に検知したイベントに対して、前記アクセス制御データの生成を中止することを要旨とする。
【0051】
本発明の第10の特徴は、格納されているデータへのアクセスの制御に用いられるアクセス制御データが格納されるデータ領域と、あらかじめ用意されたアクセス鍵によってのみアクセス可能なセキュア領域とを含む記憶装置と、前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置と、前記プログラムが実行されるプログラム実行環境とを備えるシステムにおいて用いられ、所定のイベントに応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データが取得される記憶領域のアクセス方法であって、前記アクセス制御データは、第1の復号鍵によって復号可能に暗号化された状態で前記データ領域に格納され、前記第1の復号鍵は、第2の復号鍵によって復号可能に暗号化された状態で前記セキュア領域に格納され、前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報を生成するステップと、前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するステップと、前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するステップと、前記アクセス制御装置の動作環境を特定する第1の環境情報を生成するステップとを備え、前記第1の復号鍵を取得するステップでは、暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得し、取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号し、前記アクセス制御データを取得するステップでは、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データを復号することを要旨とする。
【発明の効果】
【0052】
本発明の特徴によれば、サンドボックスが動作する携帯端末等の計算機システムにおいてSD等の保護領域を備える外部記憶媒体によって、サンドボックスの動作を設定するアクセス制御ポリシーや、サンドボックスの動作を補完する追加機能を保護する場合に発生し得る課題を解決する記憶領域アクセス装置及び記憶領域のアクセス方法を提供することができる。
【発明を実施するための最良の形態】
【0053】
次に、本発明の実施形態について説明する。なお、以下の図面の記載において、同一または類似の部分には、同一または類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。
【0054】
したがって、具体的な寸法などは以下の説明を参酌して判断すべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【0055】
(1)第1実施形態
まず、図7及び図8を参照して、本発明の第1実施形態について説明する。
【0056】
(1.1)記憶領域アクセス装置を含むシステム構成
本実施形態に係る記憶領域アクセス装置100のシステム構成を図7に示す。図7に示すとおり、記憶領域アクセス装置100は、イベント検知部110、セキュア領域アクセス部120、環境情報生成部130、データ領域アクセス部140、及びアクセス制御適用部150を備える。記憶領域アクセス装置100は、不図示のシステム上で動作する。当該システムには少なくとも、記憶装置200及びアクセス制御装置300が存在する。
【0057】
記憶装置200は、SDカード等、セキュアな保護領域を備えた着脱可能な外部記憶装置である。SDカードの詳細については既に述べたため省略する。
【0058】
アクセス制御装置300は、サンドボックス等、プログラムが実行されるプログラム実行環境(CPU等のハードウェアやオペレーティングシステム)を含むシステム上において、プログラム動作を制御する仕組みである。サンドボックスの詳細については既に述べたため省略する。以下の実施形態では、サンドボックスのアクセス制御ポリシーと同等の目的でアクセス制御データ1050がアクセス制御装置300に入力され、アクセス制御データ1050によって制御対象のプログラムやアクセス制御内容が決定されるものとする。つまり、アクセス制御データ1050は、システム上のリソースへのアクセス制御に用いられ、アクセス制御装置300は、アクセス制御データ1050の内容に応じてプログラムの実行を制御する。
【0059】
記憶領域アクセス装置100は、システム上で発生した所定のイベント400に基づいて、適用すべきアクセス制御データ1050を記憶装置200から取得し、それをアクセス制御装置300へ適用する。まず、アクセス制御データ1050が格納される記憶装置200について説明する。
【0060】
記憶装置200のデータ配置のイメージは、図6に示したとおりである。ここで、本実施形態では、ポリシー鍵を第1の復号鍵1040と呼び、ポリシーや追加機能はアクセス制御データ1050と置き換えられる。また、protected areaはセキュア領域210であり、user data areaはデータ領域220である。
【0061】
セキュア領域210には、暗号化された第1の復号鍵10411が格納される。暗号化された第1の復号鍵10411は、CPRM規格において、タイトル鍵がデバイス鍵やバインドIDによって暗号化される場合と同じである。本実施形態では、暗号化された第1の復号鍵10411は、第1の復号鍵1040が第2の復号鍵1060によって暗号化されているものとする(実際には復号鍵ではなく暗号化鍵であるが、CPRM規格に準拠した場合、これらの鍵は全て共通鍵暗号方式によって生成されているため、両者は等しい)。
【0062】
第2の復号鍵1060は、アクセス鍵1020と環境情報1030を組み合わせることによって生成される。アクセス鍵1020は、セキュア領域210へアクセスするための鍵であり、CPRM規格におけるデバイス鍵と等しい。セキュア領域は、あらかじめ用意されたアクセス鍵1020によってのみアクセス可能である。
【0063】
環境情報1030は、第1の復号鍵1040が特定の状況下でのみ取得可能とするために付与される情報であり、CPRM規格におけるバインドIDに等しい。環境情報1030は、アクセス制御装置300が動作するシステムの基本的な動作環境を特定可能な情報である。例えば、システムのOSバージョン、ハードウェア機種などが環境情報1030に相当する。また、環境情報1030は、イベント400を特定可能な情報であってもよい。例えば、特定のネットワークサービス実行時に適用すべきアクセス制御設定があった場合には、当該ネットワークサービスの実行をイベントとし、当該ネットワークサービスを実行するアプリケーションIDなどが環境情報1030に相当する。
【0064】
データ領域220には、アクセス制御データ、具体的には暗号化されたアクセス制御データ10511)が格納される。
【0065】
(1.2)記憶装置200のディレクトリ構成
上述のように、様々な環境情報1030から生成された第2の復号鍵1060によって、各アクセス制御設定に対する第1の復号鍵1040が暗号化される。CPRM規格のSDカードを例とした記憶装置200のディレクトリ構成を図8に示す。
【0066】
図8では、CPRM規格に基づくSD-Bindディレクトリの配下に、本実施形態に特有のSD-Bind-Policyディレクトリがある。さらにSD-Bind-Policyディレクトリの配下には、環境依存policy、及びサービス依存policyなどがある。これらのディレクトリの配下には、ファイルが格納される。ファイルは、データ領域220側では暗号化されたアクセス制御データ1050であり、セキュア領域210側では暗号化された第1の復号鍵1040である。以下、暗号化されたアクセス制御データ1050をアクセス制御データ10511と適宜標記し、暗号化された第1の復号鍵1040を第1の復号鍵10411と適宜標記する。
【0067】
つまり、アクセス制御データ1050は、第1の復号鍵1040によって復号可能に暗号化された状態でデータ領域220に格納される。また、第1の復号鍵1040は、第2の復号鍵1060によって復号可能に暗号化された状態でセキュア領域210に格納される。
【0068】
データ領域220において、例えば環境依存policy配下には、システムの環境に基づいたpolicyが格納される。例えば、暗号化されたアクセス制御データ10511は、機種A用のアクセス制御データが暗号化されたものであり、暗号化されたアクセス制御データ10512(10513)は、機種B(機種C)用のアクセス制御データを暗号化したものである。アクセス制御データ1050は、適用されるアクセス制御装置毎に異なるが、システムコールサンドボックスである場合、例えば次のような内容が記述される。
− アクセス制御対象システムコールID
− 制御対象リソース(システムコールの引数)
− 制御対象プログラム(システムコールのプログラム)
【0069】
上述のようにアクセス制御データが機種毎に存在する理由を述べる。例えば、OSの違いやセキュリティ設定の違い、または機種メーカの独自拡張などの要素によって、システムがプログラムに対して公開するインタフェース(システムコールやAPI)は異なる。そのため、システムコールサンドボックスやAPIサンドボックスなど、インタフェースを制御するタイプのサンドボックスである場合、機種毎に異なったアクセス制御データを用意する必要がある。しかし、記憶装置200がSDカードのようなものである場合を想定すると、実際にどの機種に挿入されて使用されるかは分からず、様々な機種や環境に応じたアクセス制御データをあらかじめ格納しておく必要がある。
【0070】
また、サービス毎に異なるアクセス制御データが必要となる場合もある。ここで言うサービスとは、システムに何らかのアクセス制御が必要とされるものである。例えば、携帯端末から特定のAPNへ接続するサービスがあったとする。このサービスは、携帯端末単体での使用のみが許可され、外部のPCやその他の携帯端末とのリンクが禁止されている場合を想定する。このような場合、外部とのリンクに利用される近距離無線デバイスやUSBデバイス等はあらかじめ利用が制限される必要がある。そのため、当該サービス起動時には、イベント400が発生し、対応するデバイスへのI/Fをアクセス制御装置300が制限するように、適切なアクセス制御データ1050を適用する。
【0071】
CPRM規格に従い、セキュア領域210とデータ領域220は全く同じディレクトリ構成をとる。例えば、セキュア領域210には、暗号化されたアクセス制御データ10511に対応する暗号化された第1の復号鍵10411、暗号化されたアクセス制御データ10512に対応する暗号化された第1の復号鍵10412、暗号化されたアクセス制御データ10513に対応する暗号化された第1の復号鍵10413が、それぞれ対応する環境依存policyディレクトリ配下に格納される。
【0072】
各第1の復号鍵は、既に述べたとおり、アクセス鍵1020と対応する環境情報1030によって生成される第2の復号鍵1060によって暗号化される。例えば、アクセス制御データ10511が機種A用のアクセス制御データであった場合、環境情報1030は機種Aを特定可能な情報であり、対応する暗号化された第1の復号鍵10411は、機種Aを特定可能な情報を元に生成された第2の復号鍵1060によって暗号化される。
【0073】
同様に、アクセス制御データ10512が機種B用のアクセス制御データであった場合、対応する暗号化された第1の復号鍵10412は、機種Bを特定可能な情報を元に生成された第2の復号鍵1060によって暗号化される。このような機種を特定可能な情報は、携帯端末の場合は、各携帯端末に付与されているIMEIの上位6桁を利用すればよい。こうすることで、例えば機種Aにおいて、誤って機種B用のアクセス制御データが適用されることを防止することが可能である。なぜなら、機種Aに記憶装置200が組み込まれている場合には、機種BのIMEIを利用した環境情報1030は生成されないため、対応する第2の復号鍵1060が生成されることがないためである。
【0074】
(1.3)記憶領域アクセス装置の動作
図8に示したディレクトリ構成を有する記憶装置200が存在する場合における記憶領域アクセス装置100の動作について述べる。
【0075】
図7に示すように、イベント検知部110は、イベント400を検知し、アクセス制御データ特定情報1010を生成する。具体的には、イベント検知部110は、イベント400の発生を検知するとともに、検知したイベント400に応じて、適用すべきアクセス制御データ1050及び第1の復号鍵1040の特定に用いられるアクセス制御データ特定情報1010を生成する。つまり、アクセス制御データ特定情報1010は、イベント400を特定する情報を含む。
【0076】
ここで、イベント400とは、例えばアプリケーションの実行やシステム起動などを想定している。イベント発生時、発行元のアプリケーション等は、適用すべきアクセス制御データをイベント検知部110へ要求し、イベント検知部110は、当該要求に応じてアクセス制御データ特定情報1010を生成する。アクセス制御データ特定情報1010は、データ領域220に格納された暗号化されたアクセス制御データ10511や、セキュア領域210に格納された暗号化された第1の復号鍵10411を特定するために必要な情報であり、具体的にはディレクトリ内のファイルを指し示すURIである。例えば、SD-Bind/SD-Binding-Policy/環境依存policy/xxxなどと指定する。xxxは、SD-Bind規格で定義されたタイトル鍵UR管理ファイル(TKURMG)において各第1の復号鍵に個別に付与されるIDである。上述のようなURIによって、暗号化された第1の復号鍵10411を一意に特定可能であり、同様に関連付けられた暗号化されたアクセス制御データ10511を一意に特定可能である。
【0077】
セキュア領域アクセス部120は、アクセス制御データ特定情報1010によって特定される第1の復号鍵1040を取得する。まず、通常のCPRM規格に従いセキュア領域210にアクセスし、暗号化された第1の復号鍵10411を、アクセス鍵1020を用いて取得する。次に、セキュア領域アクセス部120は、環境情報1030を取得し、環境情報1030とアクセス鍵1020とを用いて第2の復号鍵1060を生成する。環境情報1030は、あらかじめ環境情報生成部130によって生成されるが、具体的な生成方法は後述する。
【0078】
第2の復号鍵1060は、アクセス鍵1020と環境情報1030から生成される。具体的には、アクセス鍵1020をデバイス鍵とし、環境情報1030をデバイスIDとした場合のSD-Bind規格に準拠する。セキュア領域アクセス部120は、生成した第2の復号鍵を用いて暗号化された第1の復号鍵10411を復号することで、第1の復号鍵1040を取得する。もし復号できなければ、本システムに適応すべきアクセス制御データではないため、イベントの発行元に通知する等のエラー処理を行う。
【0079】
環境情報生成部130は、アクセス制御装置300の動作環境を特定する環境情報1030を生成する。具体的には、環境情報生成部130は、セキュア領域アクセス部120が必要とする環境情報1030を生成する。取得すべき環境情報1030は、例えばアクセス制御データ特定情報1010によって特定可能である。もし機種依存policy以下のポリシーを適用するのであれば、IMEIを取得することで、環境情報1030を生成可能である。
【0080】
データ領域アクセス部140は、アクセス制御データ特定情報1010によって特定されるアクセス制御データ1050をデータ領域220から取得する。具体的には、データ領域アクセス部140は、CPRM規格に従い、データ領域220から暗号化されたアクセス制御データ10511を取得する。その後、データ領域アクセス部140は、セキュア領域アクセス部120によって既に復号されている第1の復号鍵1040を用いて暗号化されたアクセス制御データ10511を復号することによって、アクセス制御データ1050を取得する。
【0081】
アクセス制御適用部150は、アクセス制御データ1050をアクセス制御装置300に適用する。適用方法はアクセス制御装置300によって異なるが、例えばアクセス制御設定を自メモリ空間に読み込むアクセス制御装置300である場合には、一度、アクセス制御装置300が再起動し、その後、アクセス制御データ1050が再読み込みされる。アクセス制御装置300がシステムコールサンドボックスであった場合には、システムのカーネルプログラムに組み込まれる場合もあるため、システム全体の再起動が必要となるケースもある。これについては、第3実施形態で述べる。
【0082】
記憶領域アクセス装置100は、何らかの要因によって、記憶装置200にアクセスできなかった場合のエラー処理を行う仕組みを持ってもよい。例えば、記憶装置200がSDカードであったような場合、システムから抜かれる可能性がある。このような場合に、イベント400が発生した場合、対応するアクセス制御データ1050を正常に適用することはできない。このように記憶装置200にアクセスできなかった場合には、イベント検知部110は、所定のイベントを除いた全てのイベントについて、対応して生成されるアクセス制御データの適用要求を拒否する。なお、所定のイベントとは、記憶装置200が再びシステムへ組み込まれた際に発生するイベントである。これについては、第2実施形態で述べる。
【0083】
(2)第2実施形態
次に、図9及び図10を参照して、本発明の第2実施形態について説明する。本実施形態に係る記憶領域アクセス装置100は、特殊なイベントである第1のイベントが発生した場合に対応する。
【0084】
(2.1)記憶領域アクセス装置を含むシステム構成
本実施形態に係る記憶領域アクセス装置100のシステム構成を図9に示す。本実施形態は、第1実施形態と比較すると、記憶領域アクセス装置100の構成に変更はない。本実施形態では、特殊なイベントである第1のイベントが発生した場合に対応する記憶領域アクセス装置100について説明する。
【0085】
第1のイベントとは、具体的には、システムの起動、あるいはカードの挿入など、システムにおいて始めて記憶装置200が認識されるイベントを指す。記憶装置200がSDカードのような外部デバイスであった場合、必ず対応するデバイスドライバがシステムに存在する。システムが記憶装置200を認識した場合、ハードウェア割り込みによって強制的にCPUの制御がデバイスドライバに移る。そこで、デバイスドライバから記憶領域アクセス装置100のイベント検知部110に通知することによって、イベント検知部110は、第1のイベント410を検知する。
【0086】
すなわち、イベント検知部110は、システムの起動、あるいは記憶装置200のシステムへの組み込みである第1のイベント410を検出する。また、イベント検知部110は、第1のイベント410に応じて適用すべき第1のアクセス制御データを特定する第1のアクセス制御データ特定情報を生成する。
【0087】
以下、第1のイベント410に応じて生成されるアクセス制御データ特定情報を第1のアクセス制御データ特定情報2010とし、第1のアクセス制御データ特定情報2010によって特定されるアクセス制御データを第1のアクセス制御データ2050とする。第1のイベント410は、記憶装置200がシステムに組み込まれた直後に適用されるアクセス制御データであるため、本実施形態では、システム起動時等に強制的に適用すべきアクセス制御データがある場合などを想定する。
【0088】
このようなアクセス制御データの一例として、イベント検知部110へのアクセスを制御するようなものが考えられる。仮に、イベント検知部110に対して、あらゆるプログラムやユーザが自由にアクセス制御データの適用を要求可能であった場合、記憶領域アクセス装置100は、不正なプログラムや、セキュアなサービスプログラムになりすましたプログラムの要求に応じて、アクセス制御データをアクセス制御装置300に適用してしまう可能性がある。
【0089】
記憶領域アクセス装置100は、記憶装置200に保護されたアクセス制御データを安全にアクセス制御装置300に適用可能であるが、アクセス制御設定の適用を要求する要求元の判別は行えないためである。そこで、アクセス制御装置300が、常にイベント検知部110へのアクセスを監視し、記憶装置200がシステムへ組み込まれている間は、一部のプログラム以外からはイベント検知部110へのアクセスを禁止する。こうすることで、不正な要求に応じてアクセス制御データが適用されることを防止可能となる。
【0090】
(2.2)記憶装置200のディレクトリ構成
第1のアクセス制御データ2050と、対応する第1の復号鍵2040が格納された記憶装置200のディレクトリ構成例を図10に示す。
【0091】
図10に示すとおり、第1実施形態に係るSD-Bind-Policyディレクトリ配下に新たに初期policyディレクトリが設けられる。初期policyは、第1のアクセス制御データ特定情報2010によって特定されるディレクトリである。データ領域220には暗号化された第1のアクセス制御データ2051が、セキュア領域210には暗号化された第1の復号鍵2041が格納されるものとする。暗号化された第1の復号鍵2041は、暗号化された第1のアクセス制御データ2051を第1のアクセス制御データ2050に復号するため、第1の復号鍵2040を、第2の復号鍵2060によって暗号化したものである。第2の復号鍵2060は、第1実施形態と同様に、アクセス鍵1020と環境情報2030によって生成される。
【0092】
(2.3)記憶領域アクセス装置の動作
図10に示したディレクトリ構成を有する記憶装置200と、第1のイベント410が発生した場合における記憶領域アクセス装置100の動作について述べる。まず、デバイスドライバ等からの通知に応じて、イベント検知部110は第1のアクセス制御データ特定情報2010を生成する。第1のアクセス制御データ特定情報2010は、例えば、SD-Bind/SD-Bind-Policy/初期policyといったディレクトリを指すURIである。
【0093】
セキュア領域アクセス部120は、第1実施形態と同様に暗号化された第1の復号鍵2041を取得し、暗号化された第1の復号鍵2041を第2の復号鍵2060によって復号する。
【0094】
環境情報生成部130は、環境情報2030を生成する。環境情報2030は、第1のイベント410発生時に生成され、全ての端末に共通な特別な情報である。また、環境情報2030は、他の機種あるいはサービスに依存に応じて生成される情報とは異なる。例えば、環境情報2030は、バインドIDの全てのビットを0に設定したような情報である。環境情報2030をこのように設定することによって、システムの起動時以外に第1のアクセス制御データが適用されることはない。
【0095】
データ領域アクセス部140は、第1のアクセス制御データ特定情報2010によって取得した第1のアクセス制御データ2051を復号し、第1のアクセス制御データ2050を取得する。
【0096】
アクセス制御適用部150は、第1のアクセス制御データ2050をアクセス制御装置300に適用する。また、アクセス制御適用部150は、第1のイベント410を通知したデバイスドライバにアクセス制御の適用処理が終了したことを通知してもよい。
【0097】
(3)第3実施形態
次に、図11〜図15を参照して、本発明の第3実施形態について説明する。本実施形態に係る記憶領域アクセス装置100は、システムを再起動するシステム再起動部を備える。
【0098】
(3.1)記憶領域アクセス装置を含むシステム構成
本実施形態に係る記憶領域アクセス装置100のシステム構成を図11に示す。図11に示すとおり、記憶領域アクセス装置100は、システム再起動部160を備える。
【0099】
本実施形態では、特殊なイベントである第2のイベント420が発生した場合に対応する記憶領域アクセス装置100について説明する。具体的には、第2のイベント420は、第2のイベント420に対応する第2のアクセス制御データ3050の適用前に、システムの再起動が必要となるようなものである。例えば、アクセス制御装置300がカーネルコードの一部に組み込まれて実装されているようなシステムコールサンドボックスである場合を考える。このような場合、アクセス制御データを変更することを考えると、カーネル空間に読み込まれるデータに変更が必要となる。また、アクセス制御設定の変更時点において、システムコールがプログラムから呼び出されていた場合、アクセス制御設定が変更されることによって、プログラムやシステム自体に障害が発生する可能性が高い。
【0100】
そこで、このような場合、システムを再起動することによって、アクセス制御設定をプログラム開始前にアクセス制御装置300に組み込むことが望ましい。本実施形態に係る記憶領域アクセス装置100は、このような場合に対応することができる。
【0101】
(3.2)記憶装置200のディレクトリ構成
本実施形態に係る記憶装置200のディレクトリ構成例を図12に示す。図12に示すとおり、本実施形態に係るディレクトリ構成は、第2実施形態に係るディレクトリ構成(図10参照)と同じである。
【0102】
初期policy配下に格納される第1のアクセス制御データは、起動後に必ず適用されるアクセス制御データである。システムの起動時において、初期policyディレクトリには、アクセス制御データは格納されていない。サービス依存policyディレクトリには、第2のアクセス制御データ3050に対応する、暗号化された第2のアクセス制御データ3051、及び暗号化された第1の復号鍵3041が格納されている。本実施形態では例としてサービス依存policy配下のディレクトリに格納されているアクセス制御データを第2のアクセス制御データ3051としたが、環境依存policyディレクトリ配下に格納されていても構わない。
【0103】
(3.3)記憶領域アクセス装置の動作
記憶装置200が図12に示したディレクトリ構成を有する場合における記憶領域アクセス装置100の動作について、図13に基づいて説明する。具体的には、図13は、システムの再起動が発生するまでの記憶領域アクセス装置100の動作を示す。
【0104】
図13に示す処理の目的は、システムの再起動後に適用すべき第2のアクセス制御データを、第2実施形態で述べた第1のアクセス制御データとして記憶装置200に格納することである。このような処理を実行することによって、システムの再起動後においては、自動的に第1のアクセス制御データをアクセス制御装置300に適用することが可能となる。
【0105】
ステップS1000において、イベント検知部110は、第2のイベント420に応じて第2のアクセス制御データ特定情報3010を生成する。すなわち、本実施形態において、イベント検知部110は、第2のイベント420のみを検知対象とすることができる。
【0106】
第2のアクセス制御データ特定情報3010は、少なくとも二つの情報を含む。一つは、アクセス制御データや第1の復号鍵を特定するためのURIである。当該情報は、第1実施形態と同様である。もう一つは、アクセス制御ポリシーの適用にはシステムの再起動が必要であることを示す情報である。例えば、第2のアクセス制御データ特定情報3010のうち、1ビットを再起動フラグとし、再起動フラグの値が真であれば、記憶領域アクセス装置100は、システムの再起動後に当該ポリシーを適用する処理へと移行する。
【0107】
ステップS1010において、セキュア領域アクセス部120は、第2のアクセス制御データ特定情報3010を利用して特定した第1の復号鍵3041を、第1実施形態と同様に生成した第2の復号鍵3060によって復号し、第1の復号鍵3040を取得する。復号に利用する環境情報3030は、ステップS1020で生成される。これは、第1実施形態で述べたとおりである。
【0108】
ステップS1030において、セキュア領域アクセス部120は、第2の復号鍵3060とは別の第2の復号鍵3061(対象鍵)、及び第1の復号鍵3040とは別の第1の復号鍵3070(対象鍵)を生成する。第2の復号鍵3061は、環境情報3031とアクセス鍵1020によって生成される。
【0109】
すなわち、セキュア領域アクセス部120は、第1の復号鍵3040、第1の復号鍵3070、及び第2の復号鍵3061を生成する機能を有する。なお、第2の復号鍵3061は、第1の復号鍵3070の暗号化及び復号に用いられる。第1の復号鍵3070は、第1のアクセス制御データ3080の暗号化及び復号に用いられる。また、第2の復号鍵3060は、第1の復号鍵3040の暗号化及び復号に用いられる。
【0110】
環境情報3031は、あらかじめステップS1040で生成され、第2実施形態と同様に、第1のイベント410発生時に生成される特別な情報である。第1の復号鍵3070は、CPRM規格のタイトル鍵作成時と同様に、適当に生成される。
【0111】
ステップS1050において、セキュア領域アクセス部120は、第1の復号鍵3070を第2の復号鍵3061で暗号化することによって、第1の復号鍵3071へと暗号化する。セキュア領域アクセス部120は、第1の復号鍵3071を第1のアクセス制御データ特定情報3090によって特定可能となるように、セキュア領域210の初期policyディレクトリ配下に格納する。すなわち、セキュア領域アクセス部120は、暗号化した第1の復号鍵3041及び第1の復号鍵3071を、第1のアクセス制御データ特定情報3090(後述)によって特定可能なセキュア領域210(初期policyディレクトリ配下)に格納する機能を有する。
【0112】
ステップS1060において、データ領域アクセス部140は、第2のアクセス制御データ特定情報3010を利用して特定した第2のアクセス制御データ3051を、第1の復号鍵3040を利用して復号することによって、第2のアクセス制御データ3050を取得する。
【0113】
ステップS1070において、データ領域アクセス部140は、第2のアクセス制御データ3050を第1の復号鍵3070によって第1のアクセス制御データ3081へと暗号化する。データ領域アクセス部140は、第1のアクセス制御データ特定情報3090によって特定可能となるように、暗号化された第1のアクセス制御データ3081を、データ領域220の初期policyディレクトリ配下に格納する。すなわち、データ領域アクセス部140は、第2のアクセス制御データ特定情報3010によって取得した第2のアクセス制御データ3050を、第1の復号鍵3070によって暗号化する機能を有する。また、データ領域アクセス部140は、暗号化した第2のアクセス制御データ3051を、第1のアクセス制御データ特定情報3090によって特定可能なデータ領域220に格納する機能を有する。
【0114】
システムの再起動は、プログラムの終了やデバイスの無効化等の処理が発生し、システムに異常が発生しやすい処理である。そのため、ステップS1000においてイベント検知部110が第2のイベント420を検知後、ステップS1010からステップS1070までの処理が正常に行われず、途中でシステムの再起動が発生してしまう可能性もある。
【0115】
この場合、第1のアクセス制御データ3081が復号された第1のアクセス制御データ3080も格納されないため、システムの再起動後において、記憶領域アクセス装置100は、処理に異常が発生したか否かを認識することができない。このような事態を避けるため、ステップS1000直後のステップS1001において、データ領域アクセス部140は、初期policyディレクトリ配下に少量のデータを書き込んでもよい。このような少量のデータを再起動フラグと呼ぶ。すなわち、データ領域アクセス部140は、第2のイベント420発生後に、第1のアクセス制御データ特定情報3090によって特定可能な領域(データ領域220)に、少なくとも第2のイベント420が発生したことを特定可能なデータ(再起動フラグ)を格納する。
【0116】
再起動フラグが登録されているにも係わらず、第1のアクセス制御データ3080に対応するデータがセキュア領域210やデータ領域220に格納されていなければ、処理に何らかの異常が発生したことを認識可能となる。記憶領域アクセス装置100は、当該異常が発生したことをシステムや第2のイベント420の発生元プログラム等へ通知することができる。
【0117】
また、ステップS1040において生成される環境情報1031は、システムを一意に識別可能なシステム識別情報を含んでもよい。例えば、携帯端末ではIMEIを全桁使うことによって表現可能である。システム識別情報を環境情報3031に含めることよって、システムの再起動前後において、記憶装置200が別の端末と入れ替わった場合に、別の端末において第1のアクセス制御データ3080が不正に適用されることはない。
【0118】
ステップS1070までの処理によって、システムの再起動後に適用すべきであった第2のアクセス制御データ3050と同じ内容の第1のアクセス制御データ3080が、暗号化された状態でデータ領域220に格納され、第1のアクセス制御データ3080が暗号化された第1のアクセス制御データ3081の復号に用いられる第1の復号鍵3070が暗号化された状態でセキュア領域210に格納されている。図14は、当該時点における記憶装置200のディレクトリ構成を示す。
【0119】
第1のアクセス制御データ3080及び第1の復号鍵3070が格納された時点以降における記憶領域アクセス装置100の動作について、図15に基づいて説明する。図15に示す処理の目的は、システムの再起動後に、前処理で登録された第1のアクセス制御データ3080をアクセス制御装置300に適用することである。
【0120】
ステップS1080において、システム再起動部160は、ステムを再起動する。システム再起動部160は、少なくともシステムに対して再起動を要求する機能と、システムの再起動後に、制御を取得する機能を備える。また、システム再起動部160は、システムを再起動した後、イベント検知部110に第1のイベント410を通知する機能を有する。
【0121】
ステップS1090において、イベント検知部110は、システム再起動部160から第1のイベント410の通知を受けて、第1のアクセス制御データ特定情報3090を生成する。第1のアクセス制御データ特定情報3090の生成方法は、第2実施形態と同様であるため省略する。
【0122】
ステップS1100において、セキュア領域アクセス部120は、第1のアクセス制御データ特定情報3090によって、暗号化された第1の復号鍵3071を取得する。また、セキュア領域アクセス部120は、第1の復号鍵3071を第2の復号鍵3061によって復号することによって第1の復号鍵3070を取得する。なお、第2の復号鍵3061は、ステップS1110において環境情報生成部130によってあらかじめ生成された環境情報3031とアクセス鍵1020によって生成される。詳細は第2実施形態と同様であるため省略する。
【0123】
ステップS1120において、データ領域アクセス部140は、第1のアクセス制御データ特定情報3090によって、暗号化された第1のアクセス制御データ3081を取得する。また、データ領域アクセス部140は、第1の復号鍵3070を用いて第1のアクセス制御データ3081を復号することによって第1のアクセス制御データ3080を取得する。詳細は第2実施形態と同様であるため省略する。
【0124】
ステップS1130において、アクセス制御適用部150は、第1のアクセス制御データ3080をアクセス制御装置300に適用する。詳細は第2実施形態と同様であるため省略する。
【0125】
ステップS1130までの処理が終了した時点において、セキュア領域アクセス部120、及びデータ領域アクセス部140は、不要となった第1の復号鍵3071及び第1のアクセス制御データ3081をセキュア領域210及びデータ領域220からそれぞれ消去する。
【0126】
すなわち、セキュア領域アクセス部120は、第1のアクセス制御データ3080のアクセス制御装置300への適用後において、第1のアクセス制御データ特定情報3090によって特定される、暗号化された第1の復号鍵3071を消去する機能を有する。また、データ領域アクセス部140は、第1のアクセス制御データ3080のアクセス制御装置300への適用後において、第1のアクセス制御データ特定情報3090によって特定される、暗号化された第1のアクセス制御データ3081を消去する機能を有する。
【0127】
(4)作用・効果
記憶領域アクセス装置100によれば、アクセス制御データ(例えば、アクセス制御データ1050)は、第1の復号鍵(例えば、第1の復号鍵1040)によって復号可能に暗号化された状態でデータ領域220に格納される。また、第1の復号鍵は、第2の復号鍵(例えば、第2の復号鍵1060)によって復号可能に暗号化された状態で、アクセス鍵によってのみアクセス可能なセキュア領域210に格納される。
【0128】
このため、アクセス制御データを復号する第1の復号鍵は、アクセス鍵を有するセキュア領域アクセス部120のみがアクセス可能なデータとなる。つまり、第1の復号鍵は、アクセス鍵が漏洩しない限りは安全に保護される。
【0129】
また、第1の復号鍵は、第1の環境情報(例えば、環境情報1030)とアクセス鍵から生成された第2の復号鍵(例えば、第2の復号鍵1060)によってのみ復号可能であるため、暗号化されたアクセス制御データ(例えば、アクセス制御データ10511)が誤った環境用として復号されることもない。例えば、本来セキュリティが高い環境用に生成されたアクセス制御データは、当該環境にのみ適用されるべきであり、特にセキュリティが低い環境には適用すべきではない。このような場合、あらかじめ環境に応じて生成されたアクセス制御データに対して、同じく環境に応じて生成された第2の復号鍵でのみ第1の復号鍵を復号可能とすることによって、不正なアクセス制御データの適用を防ぐことができる。すなわち、アクセス制御データを常に安全な状態でアクセス制御装置300に適用できる。
【0130】
上述した実施形態では、アクセス制御データ特定情報(例えば、アクセス制御データ特定情報1010)は、所定のイベント(例えば、セキュアサービスの起動/終了)を特定する情報を含む。また、環境情報生成部130は、アクセス制御データ特定情報に基づいて第1の環境情報を生成する。つまり、あらかじめ所定のイベントに応じて生成されたアクセス制御データに対して、同じく所定のイベントに応じて生成された第2の復号鍵でのみ第1の復号鍵を復号することができる。このため、所定のイベント毎に適切なアクセス制御データを、アクセス制御装置300に適用できる。
【0131】
上述した第2実施形態では、イベント検知部110は、第1のイベント410に応じて適用すべき第1のアクセス制御データ2050を特定する第1のアクセス制御データ特定情報2010を生成する。このため、システムの起動時や、SDカードの抜き差しによる記憶装置200の組み込み時などを契機として、記憶装置200に格納された専用のアクセス制御データを特定できる。つまり、システムが、アクセス制御データが格納された記憶装置200を組み込んだ直後に、特別なアクセス制御データをアクセス制御装置300に適用できる。例えば、システム起動中に常に反映すべきアクセス制御データが存在した場合、当該アクセス制御データを安全かつ確実にアクセス制御装置300に適用できる。
【0132】
上述した第3実施形態では、イベント検知部110は、第2のイベント420のみを検知対象とすることができる。つまり、アクセス制御装置300は、イベント検知部110が検知すべきイベントを第1のアクセス制御データ2050によって制限する。例えば、イベント検知部110が、イベント検知部110からの要求を受け、対応するアクセス制御データを生成する場合、アクセス制御装置300は、当該要求を許可するか否かを判定する。このため、不正なイベントをイベント検知部110が受け付けることによって、不正なアクセス制御データが適用されることを防止することができる。
【0133】
上述した第3実施形態では、記憶領域アクセス装置100は、アクセス制御装置300にアクセス制御データを適用する前におけるシステムの再起動に対応する。このような場合、まず、適用すべき第2のアクセス制御データを第1のアクセス制御データとし、その後システムを再起動することによって、自動的に第1のアクセス制御データをアクセス制御装置300に適用することができる。
【0134】
このような処理を実現するために、上述した第3実施形態では、第1の復号鍵3070によって、第1のアクセス制御データ3080が暗号化される。暗号化された第1のアクセス制御データ3081は、第1のアクセス制御データとしてデータ領域220に登録される。一方、第1のアクセス制御データの復号鍵(第1の復号鍵3070)についても、第1のアクセス制御データ特定情報3090によって特定できるようにセキュア領域210に格納される。
【0135】
この後、システム再起動部160がシステムを再起動し、その後第1のイベント410がイベント検知部110に通知される。このため、第1のイベント410の発生に応じて、登録された第1のアクセス制御データがアクセス制御装置300に適用される。
【0136】
つまり、例えばシステムに大きな影響を与えるようなアクセス制御データの適用時など、アクセス制御データの適用にシステムの再起動が必要となる場合であっても、安全にアクセス制御データを反映することができる。
【0137】
上述した第3実施形態では、第1のアクセス制御データのアクセス制御装置300への適用後において、第1のアクセス制御データ特定情報によって特定される、暗号化された第1の復号鍵3071が消去される。また、第1のアクセス制御データ特定情報によって特定される、暗号化された第1のアクセス制御データ3081が消去される。このため、再びシステムが再起動した場合に、当該アクセス制御データが誤ってアクセス制御装置300へ適用されることを防止できる。
【0138】
上述した第3実施形態では、第2の環境情報(環境情報3031)は、少なくともシステムを一意に特定可能な情報を含む。ここで、システムの再起動の発生を伴うようなアクセス制御データの適用において、システムの再起動の前後でSDカード等の記憶装置200がシステムから取り外され、別のシステムへ適用されたとする。この場合、記憶装置200には元のシステムで適用されるはずであった第1のアクセス制御データが格納されており、誤って別のシステムにアクセス制御データが適用されることとなる。
【0139】
そこで、対応する第1の復号鍵を、元のシステムを一意に特定可能な情報を含む第2の環境情報によって生成された第2の復号鍵によってのみ復号可能とすることによって、別のシステムに誤ってアクセス制御データが適用されたり、不正にアクセス制御データが適用されたりすることを防止できる。
【0140】
上述した第3実施形態では、第1のアクセス制御データ特定情報3090によって特定可能な領域に、第2のイベントが発生したことを特定可能なデータが格納される。当該処理は、一切の暗号化や復号処理を伴わないため、比較的高速に実行することが可能である。
【0141】
システムの再起動は、プログラムの終了やデバイスの無効化等の処理が発生し、システムに異常が発生しやすい処理である。そのため、記憶領域アクセス装置100によるアクセス制御データの取得や格納といった一連の処理が、正常に実行されない可能性も考えられる。上述した第3実施形態では、第1のアクセス制御データ特定情報3090によって特定可能な領域に、第2のイベント420が発生したことを特定可能なデータが格納されるため、その後セキュア領域アクセス部120やデータ領域アクセス部140による一連の処理において異常が発生し、処理が正常に行われなかった場合でも、データ領域アクセス部140は、システムの再起動後に発生する第1のイベント410によって、少なくとも、当該データは取得できる。つまり、システムは、第2のイベント420が発生したことによるシステムの再起動であることを認識できる。このため、例えば、第2のイベント420を発行したプログラム等に、正常にアクセス制御データが適用されなかったことを通知するなど、エラー処理が可能となる。
【0142】
(5)その他の実施形態
上述したように、本発明の実施形態を通じて本発明の内容を開示したが、この開示の一部をなす論述及び図面は、本発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態が明らかとなろう。
【0143】
例えば、記憶装置200がシステムから取り外された場合、イベント検知部110は、アクセス制御データが格納された記憶装置200が新たに組み込まれるまで、またはシステムが終了(電源切断など)するまで、記憶装置200がシステムから取り外された以降に検知したイベントに対して、アクセス制御データの生成を中止してもよい。
【0144】
すなわち、アクセス制御データをアクセス制御装置300に適用中に、SDカード等の記憶装置200がシステムから抜かれた場合、その後のアクセス制御設定の変更を行うことはできない。そこで、イベント検知部110は、アクセス制御設定の変更に伴う全てのイベントに対してアクセス制御データを生成しない。このような動作によれば、記憶装置200が存在しない場合には、不正なアクセス制御設定が適用されることを防ぐことができる。
【0145】
上述した第3実施形態では、第1のアクセス制御データ特定情報3090によって特定可能な領域に、第2のイベントが発生したことを特定可能なデータが格納されていたが、当該データは、必ずしも格納しなくても構わない。また、第2の環境情報(環境情報3031)には、システムを一意に特定可能な情報が含まれていたが、当該情報は、含まれていなくてもよい。
【0146】
さらに、上述した第3実施形態では、第1のアクセス制御データのアクセス制御装置300への適用後において、第1の復号鍵3071及び第1のアクセス制御データ3081が消去されていたが、第1の復号鍵3071及び第1のアクセス制御データ3081は、必ずしも消去されなくても構わない。
【0147】
このように、本発明は、ここでは記載していない様々な実施の形態などを含むことは勿論である。したがって、本発明の技術的範囲は、上述の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【0148】
【図1】サンドボックスの実現例を示す図である。
【図2】保護領域を利用したサンドボックスのセキュリティ拡張を示す図である。
【図3】CPRM規格準拠SDの構成例を示す図である。
【図4】SD-Binding規格のSDの構成例を示す図である。
【図5】CPRM規格を利用したサンドボックスの機能拡張を示す図である。
【図6】SD及びサンドボックスの内部構成例を示す図である。
【図7】第1実施形態に係る記憶領域アクセス装置100のシステム構成図である。
【図8】第1実施形態に係る記憶装置200のディレクトリ構成例を示す図である。
【図9】第2実施形態に係る記憶領域アクセス装置100のシステム構成図である。
【図10】第2実施形態に係る記憶装置200のディレクトリ構成例を示す図である。
【図11】第3実施形態に係る記憶領域アクセス装置100のシステム構成図である。
【図12】第3実施形態に係る記憶装置200のディレクトリ構成例(処理開始前)を示す図である。
【図13】第3実施形態に係る記憶領域アクセス装置100の動作(再起動発生前まで)を示すシーケンス図である。
【図14】第3実施形態に係る記憶装置200のディレクトリ構成例(再起動直前)を示す図である。
【図15】第3実施形態に係る記憶領域アクセス装置100の動作(再起動発生後)を示すシーケンス図である。
【符号の説明】
【0149】
100…記憶領域アクセス装置、110…イベント検知部、120…セキュア領域アクセス部、130…環境情報生成部、140…データ領域アクセス部、150…アクセス制御適用部、160…システム再起動部、200…記憶装置、210…セキュア領域、220…データ領域、300…アクセス制御装置、400…イベント、410…第1のイベント、420…第2のイベント1010…アクセス制御データ特定情報、1020…アクセス鍵、1030,1031…環境情報、1040…第1の復号鍵、1050…アクセス制御データ、1060…第2の復号鍵、2010…第1のアクセス制御データ特定情報、2030…環境情報、2040,2041…第1の復号鍵、2050,2051…第1のアクセス制御データ、2060…第2の復号鍵、3010…第2のアクセス制御データ特定情報、3030,3031…環境情報、3040,3041…第1の復号鍵、3050,3051…第2のアクセス制御データ、3060,3061…第2の復号鍵、3070,3071…第1の復号鍵、3080,3081…第1のアクセス制御データ、3090…第1のアクセス制御データ特定情報、10411〜10411…第1の復号鍵、10511〜10513…アクセス制御
【技術分野】
【0001】
本発明は、CPRM規格準拠のSDカード等、セキュアな保護領域を備えた記憶装置を備えるシステム上で動作するアクセス制御装置が存在する場合に、アクセス制御装置の動作を特定するためのアクセス制御データを安全に保存、かつ適用する記憶領域アクセス装置及び記憶領域のアクセス方法に関する。
【背景技術】
【0002】
携帯電話端末のインターネット接続サービスなどで閲覧可能なウェブサイトの中で通信事業者による公式カテゴリに収録されていないサイトからダウンロードしたアプリケーションなど、非信頼なアプリケーションが動作するソフトウェア実行環境においては、当該端末上のファイルやデバイスといった重要リソースへのアクセスを制限するためのセキュリティ機構が必要となる。このようなセキュリティ機構の一つにサンドボックスと呼ばれる仕組みがあり、非特許文献1に示すとおり、必要とされる環境、機能、あるいは性能に応じて様々な実現形態が存在する。
【0003】
どのような形態のサンドボックスを実現する場合でも、どのアプリケーションにどういったアクセス制御を適用するのかを定義するアクセス制御ポリシーが必要となる。例えば、Linux(登録商標)におけるシステムコールサンドボックスでは、特定のアプリケーションによる特定のファイルへのアクセスを制限したい場合、当該アプリケーションのopenシステムコールを監視することによって、当該ファイルへのアクセスを検知する。
【0004】
サンドボックスの実現例を図1に示す。図1は、アプリケーションがシステムコールを利用してリソースへアクセスする際に、当該システムコールの発行元や引数を検査することによって当該アクセスを制御するシステムコールサンドボックスの一般的な構成を示す。図1において、信頼アプリケーションは、計算機上の信頼リソースへのアクセスが許可されるが、悪意を持つ可能性がある一般アプリケーションは、信頼リソースへのアクセスが許可されない。
【0005】
アクセス制御ポリシーは、サンドボックスの動作設定であり、各アプリケーションについて、各リソースへのアクセス可否を決定する。例えば、システムコールサンドボックスの場合は、アクセス許可、あるいは禁止されるシステムコール、システムコールの発行元、及びシステムコールの引数が特定される情報である。追加機能は、サンドボックスの動作をサポートするための特殊な監視アプリケーションなどを想定している。
【0006】
システムコールサンドボックスは、カーネルに組み込むことによってカーネル空間に実装されることが多い。この場合、信頼アプリケーションや一般アプリケーションがどのような権限を持っているのか、なりすまされていないかといった、アプリケーションの監視が行いにくい。もし、悪意を持ったアプリケーションが信頼アプリケーションになりすましていた場合、サンドボックスのアクセス制御ポリシーは信頼リソースへのアクセスを許可してしまうため、結果的にリソースへの不正アクセスを許してしまうこととなる。
【0007】
追加機能は、サンドボックスのそのような弱点を補うものであり、その機能に応じてユーザ空間に配置される。例えば、Windows Mobile(登録商標)OSでは、ユーザ空間からコール可能なシステムAPIを利用することで、他アプリケーションの権限やメモリ空間を取得することが可能である。
【0008】
図1に示した構成において、悪意を持った一般アプリケーションが信頼リソースにアクセスしようとした場合、次のような方法が考えられる。
【0009】
(1) システムコールサンドボックスの動作を改ざん
(2) アクセス制御ポリシーを改ざん
(3) 追加機能を改ざん
【0010】
これらのうち(1)の方法は、(2)、(3)の方法と比較して難しい。元々、近年のWindows(登録商標)やLinuxといった一般的なOSは、CPUが複数の権限モードを持って動作するように設計されている。このため、アプリケーションが動作するユーザモードと、OSが動作するカーネルモードでは、アクセス可能なメモリ領域、実行可能な機能等が大きく異なる。ユーザ空間からカーネル空間へアクセスすることは非常に困難であり、従って、ユーザ空間で動作する一般アプリケーションがカーネル空間で動作するプログラムを改ざんすることも困難である。また、これらカーネル空間で動作するプログラムの本体は、通常書き換え不可能なROM領域に置かれるため、一般アプリケーションからアクセスすることは困難である。
【0011】
一方、アクセス制御ポリシーや追加機能は、ユーザ空間や書き換え可能な二次記憶上に配置されるため、ユーザや一般アプリケーションによる書き換えが可能となる可能性もある。例えばWindows Mobileでは、ActiveSync(非特許文献2参照)と呼ばれるPCとの連携機能が用意されている。これを利用することで、PC経由から広範囲のメモリ空間を自由に参照することが可能となる。ActiveSyncによってアクセス制御ポリシーや追加機能へのアクセスも簡単に行われるため、改ざんされる可能性も高い。
【0012】
このような課題を解決するために、アクセス制御ポリシーや追加機能を保護領域へ配置する方法が考えられる。保護領域は、計算機にあらかじめハードウェア保護機能を搭載したチップセットを利用することによって実現可能である。例えば、Texas Instruments(TI)の開発したハードウェア保護機能であるM-Shield(非特許文献3参照)を利用する。M-Shieldによって構成された保護領域は、OSとは独立したアクセス制御機構を備え、例えカーネルと同等の権限を持ったアプリケーションであっても、アクセスを制限される。保護領域内部に保存されたデータは、保護領域の機能によって暗号化されるため、誤って流出したとしても内容が漏れる心配はない。
【0013】
上述のようにハードウェアで実現された保護領域によって、アクセス制御ポリシーや追加機能を保護することが可能である。構成を図2に示す。あらかじめ、保護領域へのアクセス権、及び保護領域上に暗号化されたアクセス制御ポリシーや追加機能の復号鍵をサンドボックスに与える。サンドボックスは、保護領域から読み出したアクセス制御ポリシーや追加機能を復号し、二次記憶上に保存することなくそのままサンドボックスに適用、あるいは実行する。こうすることで、不正にアクセスされやすい非保護領域にアクセス制御ポリシーや追加機能が流出することがなくなるため、上述したような課題が解決可能である。
【0014】
上述したような保護領域は、非常に強力なセキュリティ機能を提供するが、一方でハードウェア環境が限られてしまうという欠点を持つ。例えば、上述したM-Shieldは、TI製のセキュアチップセットにしか対応しておらず、他のチップセットで構成される計算機では適用不可能である。仮に、既存のチップセットからセキュアチップセットへの変更を考えた場合、現状のチップセット向けに作られたプログラムやOSの作り変え等を伴う。また、セキュアなハードウェアを搭載したチップセット自体も高価であるため、チップセットが搭載する保護領域を利用したセキュリティ向上は、非常にコストの高い方法であると言える。
【0015】
一方、近年、特に画像や音楽といったマルチメディアコンテンツのバックアップなどに、USBフラッシュメモリやSD(非特許文献4参照)といった外部記憶装置が利用されることが一般的となっている。特に、SDは、PCだけでなく、携帯電話やスマートフォン(以下、携帯端末と適宜省略する)にも広く普及し、携帯端末向け外部記憶装置としては、デファクトスタンダードと成りつつある。
【0016】
携帯端末では、特にSDは、著作権付きのメディアデータのバックアップ装置として用いられるため、カード及びカードリーダ側の双方で著作権保護機能を有することが多い。SDにおける著作権保護機能はCPRM規格(非特許文献5参照)と呼ばれ、4C(非特許文献6参照)と呼ばれる団体によって規格化されている。
【0017】
以下、CPRM規格について簡単に述べる。CPRM規格に準拠したSDの構成を図3に示す。図3では、左側はSDが挿入されるデバイス、右側はSDを表している。SDは、System Area、Hidden Area、Protected Area、User Data Areaに分割されている。このうち、System AreaとHidden Areaは書き換え不可能な領域であり、Hidden Areaは、外部からのアクセスが一切不可能な領域である。Hidden Areaに格納されたメディア固有鍵は、各SDに唯一一つ固有に与えられた秘密鍵である。System Areaに格納されたMKB(Media Key Block)は、特定グループのSDに共通に与えられ、デバイス側がメディア固有鍵を算出するために利用される。
【0018】
デバイス側では、各デバイスに唯一一つ固有に与えられたデバイス鍵、MKB、及びメディア毎に付与されたメディアIDを利用し、メディア固有鍵を算出する。Protected Areaに格納されるタイトル鍵、及びCCI(Copy Control Information)やUR(Usage Rule)は、User Data Areaに格納されるコンテンツとセットで生成され、必ず相互に関連付けられる。
【0019】
ここでタイトル鍵は、コンテンツを暗号化する暗号化鍵であり、CCIやURは、コピー可/不可などのコンテンツ利用ルールを定めるものであり、それらは結合された上でメディア固有鍵によって暗号化される。また、Protected Areaにアクセスするためには、デバイスとメディアとの間でAKE認証を利用した相互認証が必要となる。デバイス側でコンテンツを利用する場合、AKE認証後に対応するタイトル鍵とCCI、URは特定可能であるため、メディア固有鍵を算出することで、まずタイトル鍵とCCI、URを復号し、それによってコンテンツを復号することによって当該コンテンツを利用可能となる。
【0020】
CPRM規格は、上述した構成を基本とし、アプリケーション毎に拡張規格を定義している。代表的なものは、音楽データ用規格SD-Audio、動画データ用規格SD-Video、あるいは機器や利用者の固有情報と関連付けたコンテンツ利用管理が可能なSD-Bindingがある。以下、SD-Bindingについて簡単に述べる。SD-Bindingは、図4に示すとおり、デバイスがタイトル鍵を暗号化する際に、メディア固有鍵とバインドIDを利用することを特徴としている。バインドIDは、デバイス側が任意にタイトル鍵毎に任意に設定可能なビット列である。
【0021】
例えば、携帯端末においてあるコンテンツを購入した際に、バインドIDを当該携帯端末の機種IDとして、当該コンテンツに対応するタイトル鍵を暗号化する。この場合、別の機種IDを持った端末では、タイトル鍵の復号ができないため、SDを別の端末に挿入されたとしても、当該コンテンツを端末上で利用することを防止することが可能となる。特に、著作権者が自身のコンテンツを、特定のデバイスに限定して利用させたい場合に効果的な規格である。
【0022】
SD-Binding規格を利用した技術の例として、特許文献1及び特許文献2などが知られている。
【0023】
特許文献1に開示されている技術は、携帯端末間でのコンテンツ移行が発生した際に、SD上のコンテンツを新端末側でもスムーズに利用可能とするために発明されたものである。旧端末において取得可能なバインドIDによってコンテンツが暗号化されていた場合、バインドIDを登録した管理ファイルを暗号化し、SD上に保存する。新端末側では、管理ファイルを復号することによって、旧端末におけるバインドIDを取得可能であるため、旧端末のバインドIDを利用して暗号化されたコンテンツを新端末側でも利用することが可能となる。
【0024】
特許文献2に開示されている技術は、ある特定の機器にバインドされたコンテンツを、一定の利用制限の元で、他の機器に対しても利用可能とするために発明されたものである。具体的には、SD-Binding規格で規定されたリザーブ領域を利用する。リザーブ領域には少なくとも、他機器でのコンテンツの利用規則とバインドIDの生成方法を記述する。他機器側では、バインドID生成方法によってバインドIDを生成し、コンテンツを復号すると共に、コンテンツ利用規則に従ったコンテンツ利用を行う。
【0025】
以上述べたとおり、CPRM規格によってSD上で保護されたコンテンツは、ユーザや権限を持たない一般アプリケーションが自由に利用不可能となっている。また、CPRM規格は、特に保護されるデータの形式を規定しない。従って、例えばサンドボックスが利用するアクセス制御ポリシーや追加機能であっても、保護することが可能である。CPRM規格によってアクセス制御ポリシー、追加機能の保護が行われたサンドボックスの機能拡張構成を図5に示す。サンドボックスは、少なくともデバイス鍵を参照可能である必要があり、これによって暗号化された追加機能やアクセス制御ポリシーの参照、あるいはこれらの更新が可能となる。
【0026】
CPRM規格を利用した機能拡張について、SD、及びサンドボックスの内部構成を図6に示す。図6の右側は、SDの内部構成を表し、図の左側は、ポリシーの駆動イベントに応じてSDからポリシーを取得し、サンドボックスへ適用するまでの過程を表している。
【0027】
まず、SDの構成について説明する。ここでは、System Areaは記述を省略している。Hidden Areaにはメディア固有鍵が格納されている。Protected Areaには、ポリシーを暗号化するためのポリシー鍵が格納されており、User Data Areaには、ポリシーと追加機能がそれぞれ暗号化され格納されている。ポリシー鍵はポリシー毎に用意される。また、一つのポリシーは、一つ、ないし複数の追加機能と関連付けられる場合があるものとする。
【0028】
次に、サンドボックスの構成を説明する。ポリシー駆動イベントは、サンドボックスに新しいアクセス制御ポリシーを適用するためのイベントである。例えば、端末起動であったり、特定のサービス開始であったりする。それぞれのイベントに応じて、例えば端末起動であれば端末起動時用のポリシーを、サービス開始であれば、当該サービス中用のポリシーをそれぞれ適用する。ポリシー駆動イベントを検知した場合、SDからポリシーや追加機能を取得し、復号後、サンドボックスへ適用する。セキュアデータ取得時は、デバイス鍵を取得することでポリシー鍵を復号し、ポリシーはポリシー鍵を利用して復号する。
【0029】
上述のような、CPRM規格を利用したアクセス制御ポリシーや追加機能の保護が実現可能であった場合、以下のような効果を得ることができる。
【0030】
(1) 特殊なセキュアチップセットを利用せずに、アクセス制御ポリシー、及び追加機能の正当性を保障可能
(2) スマートフォン等のハードウェアリセットに対応可能
(3) セキュリティ強度を調整可能
効果(1)について述べる。SD上のハードウェア的にセキュアな保護領域を利用して、ポリシーや追加機能の保護を実現するため、既存のサンドボックスの問題点であったアクセス制御ポリシーや追加機能の保護を実現することが可能である。また、SD-Binding規格を利用し、サンドボックスが動作するシステム構成やポリシー変更の契機となったイベントを元にバインドIDを生成することで、状況にそぐわない不正なポリシーの適用を防止することが可能となる。さらに、SDが一般的に普及していることを考慮すると、セキュアなチップセットを利用する場合と比較して、容易に実現可能となる。
【0031】
効果(2)について述べる。Windows Mobile等のスマートフォン端末やその他携帯端末は、大抵ハードウェアリセット機能がついており、ユーザが自身の端末を工場出荷時に戻すことが可能である。この場合、二次記憶装置上に書き込まれたデータは全て消去されてしまう。もし、二次記憶上にポリシーや追加機能が保存されていた場合、これらも同時に消去されることとなる。そのため、例えばあるユーザの端末に対して、携帯電話キャリア、企業における管理者、その他の端末の管理者が、利用者に端末利用制限することを目的としたようなポリシーを課していた場合であっても、これが消去されることとなる。しかし、SD上のデータはハードウェアリセットにおける初期化対象外であるため、ポリシーや追加機能をSD上に配置しておけば、初期化後も安全に初期化前と同様のポリシーや追加機能を適用可能となる。
【0032】
効果(3)について述べる。一般的にサンドボックスによるインタフェースアクセス制御は、アプリケーションの動作に不具合を発生させることがある。なぜなら、アプリケーション作成側は、システム上の特定機能へのアクセスが禁止されることを前提として、開発を行っていないためである。一方で、アクセス制御自体は、常に必要とはならない場合も考えられる。
【0033】
例えば、セキュアなサービスを実施している場合や、端末が特別な環境にある場合に限り、サンドボックスによってシステム上の特定の機能を制限したりするような要望も考えられる。このように、端末の利用シーンに応じて要求されるアクセス制御のレベルに差がある場合、アクセス制御の必要がある時にだけサンドボックスのポリシーを適用し、それ以外の場合には、ポリシーを無効化状態としておけば、通常利用時にはアプリケーションに不具合が発生することも少なくなると考えられる。しかし、アクセス制御のポリシーを無効化した場合、システムの安全性が担保されない。そのため、アクセス制御ポリシーや追加機能に対する改ざんが容易に行われ、その後に正常なアクセス制御を実行不可能となってしまう恐れがある。そこで、CPRM規格を利用して、ポリシーの無効化時にはSD上にポリシーや追加機能を配置することによって、アクセス制御が行われていない場合であっても、これらに対する攻撃を防ぐことが可能となる。
【非特許文献1】“ネイティブコードのためのサンドボックス技術”、コンピュータソフトウェアVol.20、No4(20030725)、pp. 375-392、http://ol-www.cs.uec.ac.jp/~oyama/publications/OyamaSandboxSurvey03.pdf
【非特許文献2】ActiveSync4.5、http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=9E641C34-6F7F-404D-A04B-DC09F8141141
【非特許文献3】TEXAS INSTRUMENTS M-Shield、http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=12316&contentId=4629
【非特許文献4】SD Card Association、http://www.sdcard.org/home
【非特許文献5】CPRM/CPPM、http://www.4centity.com/tech/cprm/
【非特許文献6】4C Entity、http://www.4centity.com/
【特許文献1】特開2004-139433号公報
【特許文献2】特開2007-94992号公報
【発明の開示】
【発明が解決しようとする課題】
【0034】
しかし、SDのCPRM規格は元々、マルチメディアコンテンツの保護用途をユースケースとして規定されたため、アクセス制御ポリシーの保護に利用した際に発生する特殊な課題に対応できない。以下に、課題の例を示す。
【0035】
(1) ポリシー適用に応じて、システムに再起動が発生した場合
(2) ポリシーの変更や適用の要求を受けるI/F部分の保護方法
(3) アクセス制御ポリシーの更新方法
(4) アクセス制御ポリシー適用中にSD着脱が発生した場合の処理
【0036】
課題(1)について述べる。システムコールサンドボックスなど、カーネルに組み込んで動作するサンドボックスでは、ポリシーの変更に伴い再起動を行う場合がある。これは、カーネル空間のプログラムに対する動作変更、あるいは現在動作中のプログラムに対してOSインタフェースに対するアクセス制限を実行することによって、システムが不安定になることを防止するためである。再起動前後において、SDに格納されたアクセス制御ポリシーをセキュアかつ確実に実現する必要がある。
【0037】
課題(2)について述べる。イベントに応じてアクセス制御ポリシーを適用するシステムを考える。イベントとは、サンドボックスに適用するポリシーを変更する契機であり、例えば特定のネットワークサービス実行時などが考えられる。イベントの発生は、イベントを発生するサービスアプリケーション等が、サンドボックスのポリシー適用機能に対して、ポリシー変更の要求を出すことで検知可能である。しかし、全ての要求を受け付けた場合に、悪意のあるアプリケーションによって不正なポリシーの適用、あるいはポリシーの無効化が行われる可能性がある。正当なアプリケーションからのみ、ポリシーの適用/無効化の要求を受け付けるためには、要求を受けるI/Fを何らかの手段で保護し、不正なアクセスを禁止する必要がある。
【0038】
課題(3)について述べる。アクセス制御ポリシーの更新は、ポリシー鍵の計算によるProtected Areaへの書き込み段階とポリシー鍵で暗号化したポリシーのUser Data Areaへの書き込み段階に分離される。このうち、後者はCPRM規格で示されたマルチメディアコンテンツの書き込み時と同じである。ポリシー鍵の生成方法も、バインドIDを含まないのであれば、全く同じである。
【0039】
しかし実際には、アクセス制御ポリシーを暗号化するユースケースでは、要求元イベント、サンドボックスが動作するシステム環境等によって、適用すべきポリシーが異なるため、これらの情報を元にバインドIDを生成することによって、誤ったポリシーの適用を防止する必要がある。このようなバインドIDを含めたポリシー鍵を暗号化する場合、ポリシー鍵の生成方法は、書き込み側で規定しなければならない。
【0040】
課題(4)について述べる。CPRM規格では、SDが挿入されている際にコンテンツへのアクセスが可能となるだけで、SD着脱に係わる特別な処理を規定していない。しかし、アクセス制御ポリシーを適用する際には、例えば挿入した際のポリシー適用、あるいは非挿入時のポリシー適用要求に対する処理等、SDの着脱状態に係わる特別な処理が必要となる。
【0041】
本発明は、このような状況に鑑みてなされたものであり、サンドボックスが動作する携帯端末等の計算機システムにおいてSD等の保護領域を備える外部記憶媒体によって、サンドボックスの動作を設定するアクセス制御ポリシーや、サンドボックスの動作を補完する追加機能を保護する場合に発生し得る課題を解決する記憶領域アクセス装置及び記憶領域のアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【0042】
上述した問題を解決するため、本発明は、次のような特徴を有している。まず、本発明の第1の特徴は、システム上のリソースへのアクセス制御に用いられるアクセス制御データ(例えば、アクセス制御データ1050)が格納されるデータ領域(データ領域220と、あらかじめ用意されたアクセス鍵(アクセス鍵1020)によってのみアクセス可能なセキュア領域(セキュア領域210)とを含む記憶装置(記憶装置200)と、前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置(アクセス制御装置300)と、前記プログラムが実行されるプログラム実行環境(CPU等のハードウェアやオペレーティングシステム)とを備えるシステムにおいて用いられ、所定のイベント(例えば、イベント400)に応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データを取得する記憶領域アクセス装置(記憶領域アクセス装置100)であって、前記アクセス制御データは、第1の復号鍵(例えば、第1の復号鍵1040)によって復号可能に暗号化された状態で前記データ領域に格納され、前記第1の復号鍵は、第2の復号鍵(第2の復号鍵1060)によって復号可能に暗号化された状態で前記セキュア領域に格納され、前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報(例えば、アクセス制御データ特定情報1010)を生成するイベント検知部(イベント検知部110)と、前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するセキュア領域アクセス部(セキュア領域アクセス部120)と、前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するデータ領域アクセス部(データ領域アクセス部140)と、前記アクセス制御装置の動作環境を特定する第1の環境情報(環境情報1030)を生成する環境情報生成部(環境情報生成部130)とを備え、前記セキュア領域アクセス部は、暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵(例えば、第1の復号鍵10411)を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得する機能と、取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号する機能とを有し、前記データ領域アクセス部は、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データ(例えば、アクセス制御データ10511)を復号する機能を有することを要旨とする。
【0043】
本発明の第2の特徴は、本発明の第1の特徴に係り、前記アクセス制御データ特定情報は、前記所定のイベントを特定する情報を含み、前記環境情報生成部は、前記アクセス制御データ特定情報に基づいて前記第1の環境情報を生成することを要旨とする。
【0044】
本発明の第3の特徴は、本発明の第1の特徴に係り、前記イベント検知部は、前記システムの起動、あるいは前記記憶装置の前記システムへの組み込みである第1のイベント(第1のイベント410)を検出し、前記第1のイベントに応じて適用すべき第1のアクセス制御データ(第1のアクセス制御データ2050)を特定する第1のアクセス制御データ特定情報(第1のアクセス制御データ特定情報2010)を生成することを要旨とする。
【0045】
本発明の第4の特徴は、本発明の第3の特徴に係り、前記第1のアクセス制御データは、前記イベント検知部が検知すべき第2のイベント(第2のイベント420)を特定し、前記イベント検知部は、前記第2のイベントのみを検知対象とすることを要旨とする。
【0046】
本発明の第5の特徴は、本発明の第3の特徴に係り、前記システムを再起動するシステム再起動部(システム再起動部160)をさらに備え、前記イベント検知部は、前記アクセス制御装置への適用時に前記システムの再起動が必要なアクセス制御データである第2のアクセス制御データ(第2のアクセス制御データ3050)に対応する第2のアクセス制御データ特定情報(第2のアクセス制御データ特定情報3010)を生成し、前記セキュア領域アクセス部は、前記第1の復号鍵(第1の復号鍵3040)と、前記第1の復号鍵に対応する第1の暗号化鍵(第1の復号鍵3070)を生成する機能と、前記第1の復号鍵を前記第2の復号鍵(第2の復号鍵3060)によって暗号化する機能と、前記第1の暗号化鍵を第2の暗号化鍵(第2の復号鍵3061)によって暗号化する機能と、暗号化した前記第1の復号鍵(第1の復号鍵3041)、及び暗号化した前記第1の暗号化鍵(第1の復号鍵3071)を、前記第1のアクセス制御データ特定情報によって特定可能な前記セキュア領域に格納する機能とを有し、前記データ領域アクセス部は、前記第2のアクセス制御データ特定情報によって取得した前記第2のアクセス制御データを、前記第1の暗号化鍵によって暗号化する機能と、前記暗号化した第2のアクセス制御データ(第2のアクセス制御データ3051)を、前記第1のアクセス制御データ特定情報によって特定可能な前記データ領域に格納する機能とを有し、前記システム再起動部は、前記システムを再起動した後、前記イベント検知部に前記第1のイベントを通知する機能を有することを要旨とする。
【0047】
本発明の第6の特徴は、本発明の第5の特徴に係り、前記セキュア領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1の復号鍵を消去する機能を有し、前記データ領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1のアクセス制御データ(第1のアクセス制御データ3081)を消去する機能を有することを要旨とする。
【0048】
本発明の第7の特徴は、本発明の第5の特徴に係り、前記セキュア領域アクセス部は、第2の環境情報(環境情報3031)に基づいて前記第2の復号鍵を生成し、前記第2の環境情報は、少なくとも前記システムを一意に特定可能な情報を含むことを要旨とする。
【0049】
本発明の第8の特徴は、本発明の第5の特徴に係り、前記データ領域アクセス部は、前記第1のアクセス制御データ特定情報によって特定可能な領域に、少なくとも前記第2のイベントが発生したことを特定可能なデータを格納することを要旨とする。
【0050】
本発明の第9の特徴は、本発明の第1の特徴に係り、前記記憶装置が前記システムから取り外された場合、前記イベント検知部は、前記アクセス制御データが格納された記憶装置が新たに組み込まれるまで、または前記システムが終了するまで、前記記憶装置が前記システムから取り外された以降に検知したイベントに対して、前記アクセス制御データの生成を中止することを要旨とする。
【0051】
本発明の第10の特徴は、格納されているデータへのアクセスの制御に用いられるアクセス制御データが格納されるデータ領域と、あらかじめ用意されたアクセス鍵によってのみアクセス可能なセキュア領域とを含む記憶装置と、前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置と、前記プログラムが実行されるプログラム実行環境とを備えるシステムにおいて用いられ、所定のイベントに応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データが取得される記憶領域のアクセス方法であって、前記アクセス制御データは、第1の復号鍵によって復号可能に暗号化された状態で前記データ領域に格納され、前記第1の復号鍵は、第2の復号鍵によって復号可能に暗号化された状態で前記セキュア領域に格納され、前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報を生成するステップと、前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するステップと、前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するステップと、前記アクセス制御装置の動作環境を特定する第1の環境情報を生成するステップとを備え、前記第1の復号鍵を取得するステップでは、暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得し、取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号し、前記アクセス制御データを取得するステップでは、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データを復号することを要旨とする。
【発明の効果】
【0052】
本発明の特徴によれば、サンドボックスが動作する携帯端末等の計算機システムにおいてSD等の保護領域を備える外部記憶媒体によって、サンドボックスの動作を設定するアクセス制御ポリシーや、サンドボックスの動作を補完する追加機能を保護する場合に発生し得る課題を解決する記憶領域アクセス装置及び記憶領域のアクセス方法を提供することができる。
【発明を実施するための最良の形態】
【0053】
次に、本発明の実施形態について説明する。なお、以下の図面の記載において、同一または類似の部分には、同一または類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。
【0054】
したがって、具体的な寸法などは以下の説明を参酌して判断すべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【0055】
(1)第1実施形態
まず、図7及び図8を参照して、本発明の第1実施形態について説明する。
【0056】
(1.1)記憶領域アクセス装置を含むシステム構成
本実施形態に係る記憶領域アクセス装置100のシステム構成を図7に示す。図7に示すとおり、記憶領域アクセス装置100は、イベント検知部110、セキュア領域アクセス部120、環境情報生成部130、データ領域アクセス部140、及びアクセス制御適用部150を備える。記憶領域アクセス装置100は、不図示のシステム上で動作する。当該システムには少なくとも、記憶装置200及びアクセス制御装置300が存在する。
【0057】
記憶装置200は、SDカード等、セキュアな保護領域を備えた着脱可能な外部記憶装置である。SDカードの詳細については既に述べたため省略する。
【0058】
アクセス制御装置300は、サンドボックス等、プログラムが実行されるプログラム実行環境(CPU等のハードウェアやオペレーティングシステム)を含むシステム上において、プログラム動作を制御する仕組みである。サンドボックスの詳細については既に述べたため省略する。以下の実施形態では、サンドボックスのアクセス制御ポリシーと同等の目的でアクセス制御データ1050がアクセス制御装置300に入力され、アクセス制御データ1050によって制御対象のプログラムやアクセス制御内容が決定されるものとする。つまり、アクセス制御データ1050は、システム上のリソースへのアクセス制御に用いられ、アクセス制御装置300は、アクセス制御データ1050の内容に応じてプログラムの実行を制御する。
【0059】
記憶領域アクセス装置100は、システム上で発生した所定のイベント400に基づいて、適用すべきアクセス制御データ1050を記憶装置200から取得し、それをアクセス制御装置300へ適用する。まず、アクセス制御データ1050が格納される記憶装置200について説明する。
【0060】
記憶装置200のデータ配置のイメージは、図6に示したとおりである。ここで、本実施形態では、ポリシー鍵を第1の復号鍵1040と呼び、ポリシーや追加機能はアクセス制御データ1050と置き換えられる。また、protected areaはセキュア領域210であり、user data areaはデータ領域220である。
【0061】
セキュア領域210には、暗号化された第1の復号鍵10411が格納される。暗号化された第1の復号鍵10411は、CPRM規格において、タイトル鍵がデバイス鍵やバインドIDによって暗号化される場合と同じである。本実施形態では、暗号化された第1の復号鍵10411は、第1の復号鍵1040が第2の復号鍵1060によって暗号化されているものとする(実際には復号鍵ではなく暗号化鍵であるが、CPRM規格に準拠した場合、これらの鍵は全て共通鍵暗号方式によって生成されているため、両者は等しい)。
【0062】
第2の復号鍵1060は、アクセス鍵1020と環境情報1030を組み合わせることによって生成される。アクセス鍵1020は、セキュア領域210へアクセスするための鍵であり、CPRM規格におけるデバイス鍵と等しい。セキュア領域は、あらかじめ用意されたアクセス鍵1020によってのみアクセス可能である。
【0063】
環境情報1030は、第1の復号鍵1040が特定の状況下でのみ取得可能とするために付与される情報であり、CPRM規格におけるバインドIDに等しい。環境情報1030は、アクセス制御装置300が動作するシステムの基本的な動作環境を特定可能な情報である。例えば、システムのOSバージョン、ハードウェア機種などが環境情報1030に相当する。また、環境情報1030は、イベント400を特定可能な情報であってもよい。例えば、特定のネットワークサービス実行時に適用すべきアクセス制御設定があった場合には、当該ネットワークサービスの実行をイベントとし、当該ネットワークサービスを実行するアプリケーションIDなどが環境情報1030に相当する。
【0064】
データ領域220には、アクセス制御データ、具体的には暗号化されたアクセス制御データ10511)が格納される。
【0065】
(1.2)記憶装置200のディレクトリ構成
上述のように、様々な環境情報1030から生成された第2の復号鍵1060によって、各アクセス制御設定に対する第1の復号鍵1040が暗号化される。CPRM規格のSDカードを例とした記憶装置200のディレクトリ構成を図8に示す。
【0066】
図8では、CPRM規格に基づくSD-Bindディレクトリの配下に、本実施形態に特有のSD-Bind-Policyディレクトリがある。さらにSD-Bind-Policyディレクトリの配下には、環境依存policy、及びサービス依存policyなどがある。これらのディレクトリの配下には、ファイルが格納される。ファイルは、データ領域220側では暗号化されたアクセス制御データ1050であり、セキュア領域210側では暗号化された第1の復号鍵1040である。以下、暗号化されたアクセス制御データ1050をアクセス制御データ10511と適宜標記し、暗号化された第1の復号鍵1040を第1の復号鍵10411と適宜標記する。
【0067】
つまり、アクセス制御データ1050は、第1の復号鍵1040によって復号可能に暗号化された状態でデータ領域220に格納される。また、第1の復号鍵1040は、第2の復号鍵1060によって復号可能に暗号化された状態でセキュア領域210に格納される。
【0068】
データ領域220において、例えば環境依存policy配下には、システムの環境に基づいたpolicyが格納される。例えば、暗号化されたアクセス制御データ10511は、機種A用のアクセス制御データが暗号化されたものであり、暗号化されたアクセス制御データ10512(10513)は、機種B(機種C)用のアクセス制御データを暗号化したものである。アクセス制御データ1050は、適用されるアクセス制御装置毎に異なるが、システムコールサンドボックスである場合、例えば次のような内容が記述される。
− アクセス制御対象システムコールID
− 制御対象リソース(システムコールの引数)
− 制御対象プログラム(システムコールのプログラム)
【0069】
上述のようにアクセス制御データが機種毎に存在する理由を述べる。例えば、OSの違いやセキュリティ設定の違い、または機種メーカの独自拡張などの要素によって、システムがプログラムに対して公開するインタフェース(システムコールやAPI)は異なる。そのため、システムコールサンドボックスやAPIサンドボックスなど、インタフェースを制御するタイプのサンドボックスである場合、機種毎に異なったアクセス制御データを用意する必要がある。しかし、記憶装置200がSDカードのようなものである場合を想定すると、実際にどの機種に挿入されて使用されるかは分からず、様々な機種や環境に応じたアクセス制御データをあらかじめ格納しておく必要がある。
【0070】
また、サービス毎に異なるアクセス制御データが必要となる場合もある。ここで言うサービスとは、システムに何らかのアクセス制御が必要とされるものである。例えば、携帯端末から特定のAPNへ接続するサービスがあったとする。このサービスは、携帯端末単体での使用のみが許可され、外部のPCやその他の携帯端末とのリンクが禁止されている場合を想定する。このような場合、外部とのリンクに利用される近距離無線デバイスやUSBデバイス等はあらかじめ利用が制限される必要がある。そのため、当該サービス起動時には、イベント400が発生し、対応するデバイスへのI/Fをアクセス制御装置300が制限するように、適切なアクセス制御データ1050を適用する。
【0071】
CPRM規格に従い、セキュア領域210とデータ領域220は全く同じディレクトリ構成をとる。例えば、セキュア領域210には、暗号化されたアクセス制御データ10511に対応する暗号化された第1の復号鍵10411、暗号化されたアクセス制御データ10512に対応する暗号化された第1の復号鍵10412、暗号化されたアクセス制御データ10513に対応する暗号化された第1の復号鍵10413が、それぞれ対応する環境依存policyディレクトリ配下に格納される。
【0072】
各第1の復号鍵は、既に述べたとおり、アクセス鍵1020と対応する環境情報1030によって生成される第2の復号鍵1060によって暗号化される。例えば、アクセス制御データ10511が機種A用のアクセス制御データであった場合、環境情報1030は機種Aを特定可能な情報であり、対応する暗号化された第1の復号鍵10411は、機種Aを特定可能な情報を元に生成された第2の復号鍵1060によって暗号化される。
【0073】
同様に、アクセス制御データ10512が機種B用のアクセス制御データであった場合、対応する暗号化された第1の復号鍵10412は、機種Bを特定可能な情報を元に生成された第2の復号鍵1060によって暗号化される。このような機種を特定可能な情報は、携帯端末の場合は、各携帯端末に付与されているIMEIの上位6桁を利用すればよい。こうすることで、例えば機種Aにおいて、誤って機種B用のアクセス制御データが適用されることを防止することが可能である。なぜなら、機種Aに記憶装置200が組み込まれている場合には、機種BのIMEIを利用した環境情報1030は生成されないため、対応する第2の復号鍵1060が生成されることがないためである。
【0074】
(1.3)記憶領域アクセス装置の動作
図8に示したディレクトリ構成を有する記憶装置200が存在する場合における記憶領域アクセス装置100の動作について述べる。
【0075】
図7に示すように、イベント検知部110は、イベント400を検知し、アクセス制御データ特定情報1010を生成する。具体的には、イベント検知部110は、イベント400の発生を検知するとともに、検知したイベント400に応じて、適用すべきアクセス制御データ1050及び第1の復号鍵1040の特定に用いられるアクセス制御データ特定情報1010を生成する。つまり、アクセス制御データ特定情報1010は、イベント400を特定する情報を含む。
【0076】
ここで、イベント400とは、例えばアプリケーションの実行やシステム起動などを想定している。イベント発生時、発行元のアプリケーション等は、適用すべきアクセス制御データをイベント検知部110へ要求し、イベント検知部110は、当該要求に応じてアクセス制御データ特定情報1010を生成する。アクセス制御データ特定情報1010は、データ領域220に格納された暗号化されたアクセス制御データ10511や、セキュア領域210に格納された暗号化された第1の復号鍵10411を特定するために必要な情報であり、具体的にはディレクトリ内のファイルを指し示すURIである。例えば、SD-Bind/SD-Binding-Policy/環境依存policy/xxxなどと指定する。xxxは、SD-Bind規格で定義されたタイトル鍵UR管理ファイル(TKURMG)において各第1の復号鍵に個別に付与されるIDである。上述のようなURIによって、暗号化された第1の復号鍵10411を一意に特定可能であり、同様に関連付けられた暗号化されたアクセス制御データ10511を一意に特定可能である。
【0077】
セキュア領域アクセス部120は、アクセス制御データ特定情報1010によって特定される第1の復号鍵1040を取得する。まず、通常のCPRM規格に従いセキュア領域210にアクセスし、暗号化された第1の復号鍵10411を、アクセス鍵1020を用いて取得する。次に、セキュア領域アクセス部120は、環境情報1030を取得し、環境情報1030とアクセス鍵1020とを用いて第2の復号鍵1060を生成する。環境情報1030は、あらかじめ環境情報生成部130によって生成されるが、具体的な生成方法は後述する。
【0078】
第2の復号鍵1060は、アクセス鍵1020と環境情報1030から生成される。具体的には、アクセス鍵1020をデバイス鍵とし、環境情報1030をデバイスIDとした場合のSD-Bind規格に準拠する。セキュア領域アクセス部120は、生成した第2の復号鍵を用いて暗号化された第1の復号鍵10411を復号することで、第1の復号鍵1040を取得する。もし復号できなければ、本システムに適応すべきアクセス制御データではないため、イベントの発行元に通知する等のエラー処理を行う。
【0079】
環境情報生成部130は、アクセス制御装置300の動作環境を特定する環境情報1030を生成する。具体的には、環境情報生成部130は、セキュア領域アクセス部120が必要とする環境情報1030を生成する。取得すべき環境情報1030は、例えばアクセス制御データ特定情報1010によって特定可能である。もし機種依存policy以下のポリシーを適用するのであれば、IMEIを取得することで、環境情報1030を生成可能である。
【0080】
データ領域アクセス部140は、アクセス制御データ特定情報1010によって特定されるアクセス制御データ1050をデータ領域220から取得する。具体的には、データ領域アクセス部140は、CPRM規格に従い、データ領域220から暗号化されたアクセス制御データ10511を取得する。その後、データ領域アクセス部140は、セキュア領域アクセス部120によって既に復号されている第1の復号鍵1040を用いて暗号化されたアクセス制御データ10511を復号することによって、アクセス制御データ1050を取得する。
【0081】
アクセス制御適用部150は、アクセス制御データ1050をアクセス制御装置300に適用する。適用方法はアクセス制御装置300によって異なるが、例えばアクセス制御設定を自メモリ空間に読み込むアクセス制御装置300である場合には、一度、アクセス制御装置300が再起動し、その後、アクセス制御データ1050が再読み込みされる。アクセス制御装置300がシステムコールサンドボックスであった場合には、システムのカーネルプログラムに組み込まれる場合もあるため、システム全体の再起動が必要となるケースもある。これについては、第3実施形態で述べる。
【0082】
記憶領域アクセス装置100は、何らかの要因によって、記憶装置200にアクセスできなかった場合のエラー処理を行う仕組みを持ってもよい。例えば、記憶装置200がSDカードであったような場合、システムから抜かれる可能性がある。このような場合に、イベント400が発生した場合、対応するアクセス制御データ1050を正常に適用することはできない。このように記憶装置200にアクセスできなかった場合には、イベント検知部110は、所定のイベントを除いた全てのイベントについて、対応して生成されるアクセス制御データの適用要求を拒否する。なお、所定のイベントとは、記憶装置200が再びシステムへ組み込まれた際に発生するイベントである。これについては、第2実施形態で述べる。
【0083】
(2)第2実施形態
次に、図9及び図10を参照して、本発明の第2実施形態について説明する。本実施形態に係る記憶領域アクセス装置100は、特殊なイベントである第1のイベントが発生した場合に対応する。
【0084】
(2.1)記憶領域アクセス装置を含むシステム構成
本実施形態に係る記憶領域アクセス装置100のシステム構成を図9に示す。本実施形態は、第1実施形態と比較すると、記憶領域アクセス装置100の構成に変更はない。本実施形態では、特殊なイベントである第1のイベントが発生した場合に対応する記憶領域アクセス装置100について説明する。
【0085】
第1のイベントとは、具体的には、システムの起動、あるいはカードの挿入など、システムにおいて始めて記憶装置200が認識されるイベントを指す。記憶装置200がSDカードのような外部デバイスであった場合、必ず対応するデバイスドライバがシステムに存在する。システムが記憶装置200を認識した場合、ハードウェア割り込みによって強制的にCPUの制御がデバイスドライバに移る。そこで、デバイスドライバから記憶領域アクセス装置100のイベント検知部110に通知することによって、イベント検知部110は、第1のイベント410を検知する。
【0086】
すなわち、イベント検知部110は、システムの起動、あるいは記憶装置200のシステムへの組み込みである第1のイベント410を検出する。また、イベント検知部110は、第1のイベント410に応じて適用すべき第1のアクセス制御データを特定する第1のアクセス制御データ特定情報を生成する。
【0087】
以下、第1のイベント410に応じて生成されるアクセス制御データ特定情報を第1のアクセス制御データ特定情報2010とし、第1のアクセス制御データ特定情報2010によって特定されるアクセス制御データを第1のアクセス制御データ2050とする。第1のイベント410は、記憶装置200がシステムに組み込まれた直後に適用されるアクセス制御データであるため、本実施形態では、システム起動時等に強制的に適用すべきアクセス制御データがある場合などを想定する。
【0088】
このようなアクセス制御データの一例として、イベント検知部110へのアクセスを制御するようなものが考えられる。仮に、イベント検知部110に対して、あらゆるプログラムやユーザが自由にアクセス制御データの適用を要求可能であった場合、記憶領域アクセス装置100は、不正なプログラムや、セキュアなサービスプログラムになりすましたプログラムの要求に応じて、アクセス制御データをアクセス制御装置300に適用してしまう可能性がある。
【0089】
記憶領域アクセス装置100は、記憶装置200に保護されたアクセス制御データを安全にアクセス制御装置300に適用可能であるが、アクセス制御設定の適用を要求する要求元の判別は行えないためである。そこで、アクセス制御装置300が、常にイベント検知部110へのアクセスを監視し、記憶装置200がシステムへ組み込まれている間は、一部のプログラム以外からはイベント検知部110へのアクセスを禁止する。こうすることで、不正な要求に応じてアクセス制御データが適用されることを防止可能となる。
【0090】
(2.2)記憶装置200のディレクトリ構成
第1のアクセス制御データ2050と、対応する第1の復号鍵2040が格納された記憶装置200のディレクトリ構成例を図10に示す。
【0091】
図10に示すとおり、第1実施形態に係るSD-Bind-Policyディレクトリ配下に新たに初期policyディレクトリが設けられる。初期policyは、第1のアクセス制御データ特定情報2010によって特定されるディレクトリである。データ領域220には暗号化された第1のアクセス制御データ2051が、セキュア領域210には暗号化された第1の復号鍵2041が格納されるものとする。暗号化された第1の復号鍵2041は、暗号化された第1のアクセス制御データ2051を第1のアクセス制御データ2050に復号するため、第1の復号鍵2040を、第2の復号鍵2060によって暗号化したものである。第2の復号鍵2060は、第1実施形態と同様に、アクセス鍵1020と環境情報2030によって生成される。
【0092】
(2.3)記憶領域アクセス装置の動作
図10に示したディレクトリ構成を有する記憶装置200と、第1のイベント410が発生した場合における記憶領域アクセス装置100の動作について述べる。まず、デバイスドライバ等からの通知に応じて、イベント検知部110は第1のアクセス制御データ特定情報2010を生成する。第1のアクセス制御データ特定情報2010は、例えば、SD-Bind/SD-Bind-Policy/初期policyといったディレクトリを指すURIである。
【0093】
セキュア領域アクセス部120は、第1実施形態と同様に暗号化された第1の復号鍵2041を取得し、暗号化された第1の復号鍵2041を第2の復号鍵2060によって復号する。
【0094】
環境情報生成部130は、環境情報2030を生成する。環境情報2030は、第1のイベント410発生時に生成され、全ての端末に共通な特別な情報である。また、環境情報2030は、他の機種あるいはサービスに依存に応じて生成される情報とは異なる。例えば、環境情報2030は、バインドIDの全てのビットを0に設定したような情報である。環境情報2030をこのように設定することによって、システムの起動時以外に第1のアクセス制御データが適用されることはない。
【0095】
データ領域アクセス部140は、第1のアクセス制御データ特定情報2010によって取得した第1のアクセス制御データ2051を復号し、第1のアクセス制御データ2050を取得する。
【0096】
アクセス制御適用部150は、第1のアクセス制御データ2050をアクセス制御装置300に適用する。また、アクセス制御適用部150は、第1のイベント410を通知したデバイスドライバにアクセス制御の適用処理が終了したことを通知してもよい。
【0097】
(3)第3実施形態
次に、図11〜図15を参照して、本発明の第3実施形態について説明する。本実施形態に係る記憶領域アクセス装置100は、システムを再起動するシステム再起動部を備える。
【0098】
(3.1)記憶領域アクセス装置を含むシステム構成
本実施形態に係る記憶領域アクセス装置100のシステム構成を図11に示す。図11に示すとおり、記憶領域アクセス装置100は、システム再起動部160を備える。
【0099】
本実施形態では、特殊なイベントである第2のイベント420が発生した場合に対応する記憶領域アクセス装置100について説明する。具体的には、第2のイベント420は、第2のイベント420に対応する第2のアクセス制御データ3050の適用前に、システムの再起動が必要となるようなものである。例えば、アクセス制御装置300がカーネルコードの一部に組み込まれて実装されているようなシステムコールサンドボックスである場合を考える。このような場合、アクセス制御データを変更することを考えると、カーネル空間に読み込まれるデータに変更が必要となる。また、アクセス制御設定の変更時点において、システムコールがプログラムから呼び出されていた場合、アクセス制御設定が変更されることによって、プログラムやシステム自体に障害が発生する可能性が高い。
【0100】
そこで、このような場合、システムを再起動することによって、アクセス制御設定をプログラム開始前にアクセス制御装置300に組み込むことが望ましい。本実施形態に係る記憶領域アクセス装置100は、このような場合に対応することができる。
【0101】
(3.2)記憶装置200のディレクトリ構成
本実施形態に係る記憶装置200のディレクトリ構成例を図12に示す。図12に示すとおり、本実施形態に係るディレクトリ構成は、第2実施形態に係るディレクトリ構成(図10参照)と同じである。
【0102】
初期policy配下に格納される第1のアクセス制御データは、起動後に必ず適用されるアクセス制御データである。システムの起動時において、初期policyディレクトリには、アクセス制御データは格納されていない。サービス依存policyディレクトリには、第2のアクセス制御データ3050に対応する、暗号化された第2のアクセス制御データ3051、及び暗号化された第1の復号鍵3041が格納されている。本実施形態では例としてサービス依存policy配下のディレクトリに格納されているアクセス制御データを第2のアクセス制御データ3051としたが、環境依存policyディレクトリ配下に格納されていても構わない。
【0103】
(3.3)記憶領域アクセス装置の動作
記憶装置200が図12に示したディレクトリ構成を有する場合における記憶領域アクセス装置100の動作について、図13に基づいて説明する。具体的には、図13は、システムの再起動が発生するまでの記憶領域アクセス装置100の動作を示す。
【0104】
図13に示す処理の目的は、システムの再起動後に適用すべき第2のアクセス制御データを、第2実施形態で述べた第1のアクセス制御データとして記憶装置200に格納することである。このような処理を実行することによって、システムの再起動後においては、自動的に第1のアクセス制御データをアクセス制御装置300に適用することが可能となる。
【0105】
ステップS1000において、イベント検知部110は、第2のイベント420に応じて第2のアクセス制御データ特定情報3010を生成する。すなわち、本実施形態において、イベント検知部110は、第2のイベント420のみを検知対象とすることができる。
【0106】
第2のアクセス制御データ特定情報3010は、少なくとも二つの情報を含む。一つは、アクセス制御データや第1の復号鍵を特定するためのURIである。当該情報は、第1実施形態と同様である。もう一つは、アクセス制御ポリシーの適用にはシステムの再起動が必要であることを示す情報である。例えば、第2のアクセス制御データ特定情報3010のうち、1ビットを再起動フラグとし、再起動フラグの値が真であれば、記憶領域アクセス装置100は、システムの再起動後に当該ポリシーを適用する処理へと移行する。
【0107】
ステップS1010において、セキュア領域アクセス部120は、第2のアクセス制御データ特定情報3010を利用して特定した第1の復号鍵3041を、第1実施形態と同様に生成した第2の復号鍵3060によって復号し、第1の復号鍵3040を取得する。復号に利用する環境情報3030は、ステップS1020で生成される。これは、第1実施形態で述べたとおりである。
【0108】
ステップS1030において、セキュア領域アクセス部120は、第2の復号鍵3060とは別の第2の復号鍵3061(対象鍵)、及び第1の復号鍵3040とは別の第1の復号鍵3070(対象鍵)を生成する。第2の復号鍵3061は、環境情報3031とアクセス鍵1020によって生成される。
【0109】
すなわち、セキュア領域アクセス部120は、第1の復号鍵3040、第1の復号鍵3070、及び第2の復号鍵3061を生成する機能を有する。なお、第2の復号鍵3061は、第1の復号鍵3070の暗号化及び復号に用いられる。第1の復号鍵3070は、第1のアクセス制御データ3080の暗号化及び復号に用いられる。また、第2の復号鍵3060は、第1の復号鍵3040の暗号化及び復号に用いられる。
【0110】
環境情報3031は、あらかじめステップS1040で生成され、第2実施形態と同様に、第1のイベント410発生時に生成される特別な情報である。第1の復号鍵3070は、CPRM規格のタイトル鍵作成時と同様に、適当に生成される。
【0111】
ステップS1050において、セキュア領域アクセス部120は、第1の復号鍵3070を第2の復号鍵3061で暗号化することによって、第1の復号鍵3071へと暗号化する。セキュア領域アクセス部120は、第1の復号鍵3071を第1のアクセス制御データ特定情報3090によって特定可能となるように、セキュア領域210の初期policyディレクトリ配下に格納する。すなわち、セキュア領域アクセス部120は、暗号化した第1の復号鍵3041及び第1の復号鍵3071を、第1のアクセス制御データ特定情報3090(後述)によって特定可能なセキュア領域210(初期policyディレクトリ配下)に格納する機能を有する。
【0112】
ステップS1060において、データ領域アクセス部140は、第2のアクセス制御データ特定情報3010を利用して特定した第2のアクセス制御データ3051を、第1の復号鍵3040を利用して復号することによって、第2のアクセス制御データ3050を取得する。
【0113】
ステップS1070において、データ領域アクセス部140は、第2のアクセス制御データ3050を第1の復号鍵3070によって第1のアクセス制御データ3081へと暗号化する。データ領域アクセス部140は、第1のアクセス制御データ特定情報3090によって特定可能となるように、暗号化された第1のアクセス制御データ3081を、データ領域220の初期policyディレクトリ配下に格納する。すなわち、データ領域アクセス部140は、第2のアクセス制御データ特定情報3010によって取得した第2のアクセス制御データ3050を、第1の復号鍵3070によって暗号化する機能を有する。また、データ領域アクセス部140は、暗号化した第2のアクセス制御データ3051を、第1のアクセス制御データ特定情報3090によって特定可能なデータ領域220に格納する機能を有する。
【0114】
システムの再起動は、プログラムの終了やデバイスの無効化等の処理が発生し、システムに異常が発生しやすい処理である。そのため、ステップS1000においてイベント検知部110が第2のイベント420を検知後、ステップS1010からステップS1070までの処理が正常に行われず、途中でシステムの再起動が発生してしまう可能性もある。
【0115】
この場合、第1のアクセス制御データ3081が復号された第1のアクセス制御データ3080も格納されないため、システムの再起動後において、記憶領域アクセス装置100は、処理に異常が発生したか否かを認識することができない。このような事態を避けるため、ステップS1000直後のステップS1001において、データ領域アクセス部140は、初期policyディレクトリ配下に少量のデータを書き込んでもよい。このような少量のデータを再起動フラグと呼ぶ。すなわち、データ領域アクセス部140は、第2のイベント420発生後に、第1のアクセス制御データ特定情報3090によって特定可能な領域(データ領域220)に、少なくとも第2のイベント420が発生したことを特定可能なデータ(再起動フラグ)を格納する。
【0116】
再起動フラグが登録されているにも係わらず、第1のアクセス制御データ3080に対応するデータがセキュア領域210やデータ領域220に格納されていなければ、処理に何らかの異常が発生したことを認識可能となる。記憶領域アクセス装置100は、当該異常が発生したことをシステムや第2のイベント420の発生元プログラム等へ通知することができる。
【0117】
また、ステップS1040において生成される環境情報1031は、システムを一意に識別可能なシステム識別情報を含んでもよい。例えば、携帯端末ではIMEIを全桁使うことによって表現可能である。システム識別情報を環境情報3031に含めることよって、システムの再起動前後において、記憶装置200が別の端末と入れ替わった場合に、別の端末において第1のアクセス制御データ3080が不正に適用されることはない。
【0118】
ステップS1070までの処理によって、システムの再起動後に適用すべきであった第2のアクセス制御データ3050と同じ内容の第1のアクセス制御データ3080が、暗号化された状態でデータ領域220に格納され、第1のアクセス制御データ3080が暗号化された第1のアクセス制御データ3081の復号に用いられる第1の復号鍵3070が暗号化された状態でセキュア領域210に格納されている。図14は、当該時点における記憶装置200のディレクトリ構成を示す。
【0119】
第1のアクセス制御データ3080及び第1の復号鍵3070が格納された時点以降における記憶領域アクセス装置100の動作について、図15に基づいて説明する。図15に示す処理の目的は、システムの再起動後に、前処理で登録された第1のアクセス制御データ3080をアクセス制御装置300に適用することである。
【0120】
ステップS1080において、システム再起動部160は、ステムを再起動する。システム再起動部160は、少なくともシステムに対して再起動を要求する機能と、システムの再起動後に、制御を取得する機能を備える。また、システム再起動部160は、システムを再起動した後、イベント検知部110に第1のイベント410を通知する機能を有する。
【0121】
ステップS1090において、イベント検知部110は、システム再起動部160から第1のイベント410の通知を受けて、第1のアクセス制御データ特定情報3090を生成する。第1のアクセス制御データ特定情報3090の生成方法は、第2実施形態と同様であるため省略する。
【0122】
ステップS1100において、セキュア領域アクセス部120は、第1のアクセス制御データ特定情報3090によって、暗号化された第1の復号鍵3071を取得する。また、セキュア領域アクセス部120は、第1の復号鍵3071を第2の復号鍵3061によって復号することによって第1の復号鍵3070を取得する。なお、第2の復号鍵3061は、ステップS1110において環境情報生成部130によってあらかじめ生成された環境情報3031とアクセス鍵1020によって生成される。詳細は第2実施形態と同様であるため省略する。
【0123】
ステップS1120において、データ領域アクセス部140は、第1のアクセス制御データ特定情報3090によって、暗号化された第1のアクセス制御データ3081を取得する。また、データ領域アクセス部140は、第1の復号鍵3070を用いて第1のアクセス制御データ3081を復号することによって第1のアクセス制御データ3080を取得する。詳細は第2実施形態と同様であるため省略する。
【0124】
ステップS1130において、アクセス制御適用部150は、第1のアクセス制御データ3080をアクセス制御装置300に適用する。詳細は第2実施形態と同様であるため省略する。
【0125】
ステップS1130までの処理が終了した時点において、セキュア領域アクセス部120、及びデータ領域アクセス部140は、不要となった第1の復号鍵3071及び第1のアクセス制御データ3081をセキュア領域210及びデータ領域220からそれぞれ消去する。
【0126】
すなわち、セキュア領域アクセス部120は、第1のアクセス制御データ3080のアクセス制御装置300への適用後において、第1のアクセス制御データ特定情報3090によって特定される、暗号化された第1の復号鍵3071を消去する機能を有する。また、データ領域アクセス部140は、第1のアクセス制御データ3080のアクセス制御装置300への適用後において、第1のアクセス制御データ特定情報3090によって特定される、暗号化された第1のアクセス制御データ3081を消去する機能を有する。
【0127】
(4)作用・効果
記憶領域アクセス装置100によれば、アクセス制御データ(例えば、アクセス制御データ1050)は、第1の復号鍵(例えば、第1の復号鍵1040)によって復号可能に暗号化された状態でデータ領域220に格納される。また、第1の復号鍵は、第2の復号鍵(例えば、第2の復号鍵1060)によって復号可能に暗号化された状態で、アクセス鍵によってのみアクセス可能なセキュア領域210に格納される。
【0128】
このため、アクセス制御データを復号する第1の復号鍵は、アクセス鍵を有するセキュア領域アクセス部120のみがアクセス可能なデータとなる。つまり、第1の復号鍵は、アクセス鍵が漏洩しない限りは安全に保護される。
【0129】
また、第1の復号鍵は、第1の環境情報(例えば、環境情報1030)とアクセス鍵から生成された第2の復号鍵(例えば、第2の復号鍵1060)によってのみ復号可能であるため、暗号化されたアクセス制御データ(例えば、アクセス制御データ10511)が誤った環境用として復号されることもない。例えば、本来セキュリティが高い環境用に生成されたアクセス制御データは、当該環境にのみ適用されるべきであり、特にセキュリティが低い環境には適用すべきではない。このような場合、あらかじめ環境に応じて生成されたアクセス制御データに対して、同じく環境に応じて生成された第2の復号鍵でのみ第1の復号鍵を復号可能とすることによって、不正なアクセス制御データの適用を防ぐことができる。すなわち、アクセス制御データを常に安全な状態でアクセス制御装置300に適用できる。
【0130】
上述した実施形態では、アクセス制御データ特定情報(例えば、アクセス制御データ特定情報1010)は、所定のイベント(例えば、セキュアサービスの起動/終了)を特定する情報を含む。また、環境情報生成部130は、アクセス制御データ特定情報に基づいて第1の環境情報を生成する。つまり、あらかじめ所定のイベントに応じて生成されたアクセス制御データに対して、同じく所定のイベントに応じて生成された第2の復号鍵でのみ第1の復号鍵を復号することができる。このため、所定のイベント毎に適切なアクセス制御データを、アクセス制御装置300に適用できる。
【0131】
上述した第2実施形態では、イベント検知部110は、第1のイベント410に応じて適用すべき第1のアクセス制御データ2050を特定する第1のアクセス制御データ特定情報2010を生成する。このため、システムの起動時や、SDカードの抜き差しによる記憶装置200の組み込み時などを契機として、記憶装置200に格納された専用のアクセス制御データを特定できる。つまり、システムが、アクセス制御データが格納された記憶装置200を組み込んだ直後に、特別なアクセス制御データをアクセス制御装置300に適用できる。例えば、システム起動中に常に反映すべきアクセス制御データが存在した場合、当該アクセス制御データを安全かつ確実にアクセス制御装置300に適用できる。
【0132】
上述した第3実施形態では、イベント検知部110は、第2のイベント420のみを検知対象とすることができる。つまり、アクセス制御装置300は、イベント検知部110が検知すべきイベントを第1のアクセス制御データ2050によって制限する。例えば、イベント検知部110が、イベント検知部110からの要求を受け、対応するアクセス制御データを生成する場合、アクセス制御装置300は、当該要求を許可するか否かを判定する。このため、不正なイベントをイベント検知部110が受け付けることによって、不正なアクセス制御データが適用されることを防止することができる。
【0133】
上述した第3実施形態では、記憶領域アクセス装置100は、アクセス制御装置300にアクセス制御データを適用する前におけるシステムの再起動に対応する。このような場合、まず、適用すべき第2のアクセス制御データを第1のアクセス制御データとし、その後システムを再起動することによって、自動的に第1のアクセス制御データをアクセス制御装置300に適用することができる。
【0134】
このような処理を実現するために、上述した第3実施形態では、第1の復号鍵3070によって、第1のアクセス制御データ3080が暗号化される。暗号化された第1のアクセス制御データ3081は、第1のアクセス制御データとしてデータ領域220に登録される。一方、第1のアクセス制御データの復号鍵(第1の復号鍵3070)についても、第1のアクセス制御データ特定情報3090によって特定できるようにセキュア領域210に格納される。
【0135】
この後、システム再起動部160がシステムを再起動し、その後第1のイベント410がイベント検知部110に通知される。このため、第1のイベント410の発生に応じて、登録された第1のアクセス制御データがアクセス制御装置300に適用される。
【0136】
つまり、例えばシステムに大きな影響を与えるようなアクセス制御データの適用時など、アクセス制御データの適用にシステムの再起動が必要となる場合であっても、安全にアクセス制御データを反映することができる。
【0137】
上述した第3実施形態では、第1のアクセス制御データのアクセス制御装置300への適用後において、第1のアクセス制御データ特定情報によって特定される、暗号化された第1の復号鍵3071が消去される。また、第1のアクセス制御データ特定情報によって特定される、暗号化された第1のアクセス制御データ3081が消去される。このため、再びシステムが再起動した場合に、当該アクセス制御データが誤ってアクセス制御装置300へ適用されることを防止できる。
【0138】
上述した第3実施形態では、第2の環境情報(環境情報3031)は、少なくともシステムを一意に特定可能な情報を含む。ここで、システムの再起動の発生を伴うようなアクセス制御データの適用において、システムの再起動の前後でSDカード等の記憶装置200がシステムから取り外され、別のシステムへ適用されたとする。この場合、記憶装置200には元のシステムで適用されるはずであった第1のアクセス制御データが格納されており、誤って別のシステムにアクセス制御データが適用されることとなる。
【0139】
そこで、対応する第1の復号鍵を、元のシステムを一意に特定可能な情報を含む第2の環境情報によって生成された第2の復号鍵によってのみ復号可能とすることによって、別のシステムに誤ってアクセス制御データが適用されたり、不正にアクセス制御データが適用されたりすることを防止できる。
【0140】
上述した第3実施形態では、第1のアクセス制御データ特定情報3090によって特定可能な領域に、第2のイベントが発生したことを特定可能なデータが格納される。当該処理は、一切の暗号化や復号処理を伴わないため、比較的高速に実行することが可能である。
【0141】
システムの再起動は、プログラムの終了やデバイスの無効化等の処理が発生し、システムに異常が発生しやすい処理である。そのため、記憶領域アクセス装置100によるアクセス制御データの取得や格納といった一連の処理が、正常に実行されない可能性も考えられる。上述した第3実施形態では、第1のアクセス制御データ特定情報3090によって特定可能な領域に、第2のイベント420が発生したことを特定可能なデータが格納されるため、その後セキュア領域アクセス部120やデータ領域アクセス部140による一連の処理において異常が発生し、処理が正常に行われなかった場合でも、データ領域アクセス部140は、システムの再起動後に発生する第1のイベント410によって、少なくとも、当該データは取得できる。つまり、システムは、第2のイベント420が発生したことによるシステムの再起動であることを認識できる。このため、例えば、第2のイベント420を発行したプログラム等に、正常にアクセス制御データが適用されなかったことを通知するなど、エラー処理が可能となる。
【0142】
(5)その他の実施形態
上述したように、本発明の実施形態を通じて本発明の内容を開示したが、この開示の一部をなす論述及び図面は、本発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態が明らかとなろう。
【0143】
例えば、記憶装置200がシステムから取り外された場合、イベント検知部110は、アクセス制御データが格納された記憶装置200が新たに組み込まれるまで、またはシステムが終了(電源切断など)するまで、記憶装置200がシステムから取り外された以降に検知したイベントに対して、アクセス制御データの生成を中止してもよい。
【0144】
すなわち、アクセス制御データをアクセス制御装置300に適用中に、SDカード等の記憶装置200がシステムから抜かれた場合、その後のアクセス制御設定の変更を行うことはできない。そこで、イベント検知部110は、アクセス制御設定の変更に伴う全てのイベントに対してアクセス制御データを生成しない。このような動作によれば、記憶装置200が存在しない場合には、不正なアクセス制御設定が適用されることを防ぐことができる。
【0145】
上述した第3実施形態では、第1のアクセス制御データ特定情報3090によって特定可能な領域に、第2のイベントが発生したことを特定可能なデータが格納されていたが、当該データは、必ずしも格納しなくても構わない。また、第2の環境情報(環境情報3031)には、システムを一意に特定可能な情報が含まれていたが、当該情報は、含まれていなくてもよい。
【0146】
さらに、上述した第3実施形態では、第1のアクセス制御データのアクセス制御装置300への適用後において、第1の復号鍵3071及び第1のアクセス制御データ3081が消去されていたが、第1の復号鍵3071及び第1のアクセス制御データ3081は、必ずしも消去されなくても構わない。
【0147】
このように、本発明は、ここでは記載していない様々な実施の形態などを含むことは勿論である。したがって、本発明の技術的範囲は、上述の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【0148】
【図1】サンドボックスの実現例を示す図である。
【図2】保護領域を利用したサンドボックスのセキュリティ拡張を示す図である。
【図3】CPRM規格準拠SDの構成例を示す図である。
【図4】SD-Binding規格のSDの構成例を示す図である。
【図5】CPRM規格を利用したサンドボックスの機能拡張を示す図である。
【図6】SD及びサンドボックスの内部構成例を示す図である。
【図7】第1実施形態に係る記憶領域アクセス装置100のシステム構成図である。
【図8】第1実施形態に係る記憶装置200のディレクトリ構成例を示す図である。
【図9】第2実施形態に係る記憶領域アクセス装置100のシステム構成図である。
【図10】第2実施形態に係る記憶装置200のディレクトリ構成例を示す図である。
【図11】第3実施形態に係る記憶領域アクセス装置100のシステム構成図である。
【図12】第3実施形態に係る記憶装置200のディレクトリ構成例(処理開始前)を示す図である。
【図13】第3実施形態に係る記憶領域アクセス装置100の動作(再起動発生前まで)を示すシーケンス図である。
【図14】第3実施形態に係る記憶装置200のディレクトリ構成例(再起動直前)を示す図である。
【図15】第3実施形態に係る記憶領域アクセス装置100の動作(再起動発生後)を示すシーケンス図である。
【符号の説明】
【0149】
100…記憶領域アクセス装置、110…イベント検知部、120…セキュア領域アクセス部、130…環境情報生成部、140…データ領域アクセス部、150…アクセス制御適用部、160…システム再起動部、200…記憶装置、210…セキュア領域、220…データ領域、300…アクセス制御装置、400…イベント、410…第1のイベント、420…第2のイベント1010…アクセス制御データ特定情報、1020…アクセス鍵、1030,1031…環境情報、1040…第1の復号鍵、1050…アクセス制御データ、1060…第2の復号鍵、2010…第1のアクセス制御データ特定情報、2030…環境情報、2040,2041…第1の復号鍵、2050,2051…第1のアクセス制御データ、2060…第2の復号鍵、3010…第2のアクセス制御データ特定情報、3030,3031…環境情報、3040,3041…第1の復号鍵、3050,3051…第2のアクセス制御データ、3060,3061…第2の復号鍵、3070,3071…第1の復号鍵、3080,3081…第1のアクセス制御データ、3090…第1のアクセス制御データ特定情報、10411〜10411…第1の復号鍵、10511〜10513…アクセス制御
【特許請求の範囲】
【請求項1】
システム上のリソースへのアクセス制御に用いられるアクセス制御データが格納されるデータ領域と、あらかじめ用意されたアクセス鍵によってのみアクセス可能なセキュア領域とを含む記憶装置と、
前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置と、前記プログラムが実行されるプログラム実行環境と
を備えるシステムにおいて用いられ、
所定のイベントに応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データを取得する記憶領域アクセス装置であって、
前記アクセス制御データは、第1の復号鍵によって復号可能に暗号化された状態で前記データ領域に格納され、
前記第1の復号鍵は、第2の復号鍵によって復号可能に暗号化された状態で前記セキュア領域に格納され、
前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報を生成するイベント検知部と、
前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するセキュア領域アクセス部と、
前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するデータ領域アクセス部と、
前記アクセス制御装置の動作環境を特定する第1の環境情報を生成する環境情報生成部と
を備え、
前記セキュア領域アクセス部は、
暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得する機能と、
取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号と
を有し、
前記データ領域アクセス部は、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データを復号する機能を有する記憶領域アクセス装置。
【請求項2】
前記アクセス制御データ特定情報は、前記所定のイベントを特定する情報を含み、
前記環境情報生成部は、前記アクセス制御データ特定情報に基づいて前記第1の環境情報を生成する請求項1に記載の記憶領域アクセス装置。
【請求項3】
前記イベント検知部は、
前記システムの起動、あるいは前記記憶装置の前記システムへの組み込みである第1のイベントを検出し、
前記第1のイベントに応じて適用すべき第1のアクセス制御データを特定する第1のアクセス制御データ特定情報を生成する請求項1に記載の記憶領域アクセス装置。
【請求項4】
前記第1のアクセス制御データは、前記イベント検知部が検知すべき第2のイベントを特定し、
前記イベント検知部は、前記第2のイベントのみを検知対象とする請求項3に記載の記憶領域アクセス装置。
【請求項5】
前記システムを再起動するシステム再起動部をさらに備え、
前記イベント検知部は、前記アクセス制御装置への適用時に前記システムの再起動が必要なアクセス制御データである第2のアクセス制御データに対応する第2のアクセス制御データ特定情報を生成し、
前記セキュア領域アクセス部は、
前記第1の復号鍵と、前記第1の復号鍵に対応する第1の暗号化鍵を生成する機能と、
前記第1の復号鍵を前記第2の復号鍵によって暗号化する機能と、
前記第1の暗号化鍵を第2の暗号化鍵によって暗号化する機能と、
暗号化した前記第1の復号鍵、及び暗号化した前記第1の暗号化鍵を、前記第1のアクセス制御データ特定情報によって特定可能な前記セキュア領域に格納する機能と
を有し、
前記データ領域アクセス部は、
前記第2のアクセス制御データ特定情報によって取得した前記第2のアクセス制御データを、前記第1の暗号化鍵によって暗号化する機能と、
前記暗号化した第2のアクセス制御データを、前記第1のアクセス制御データ特定情報によって特定可能な前記データ領域に格納する機能と
を有し、
前記システム再起動部は、前記システムを再起動した後、前記イベント検知部に前記第1のイベントを通知する機能を有する請求項3に記載の記憶領域アクセス装置。
【請求項6】
前記セキュア領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1の復号鍵を消去する機能を有し、
前記データ領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1のアクセス制御データを消去する機能を有する請求項5に記載の記憶領域アクセス装置。
【請求項7】
前記セキュア領域アクセス部は、第2の環境情報に基づいて前記第2の復号鍵を生成し、
前記第2の環境情報は、少なくとも前記システムを一意に特定可能な情報を含む請求項5に記載の記憶領域アクセス装置。
【請求項8】
前記データ領域アクセス部は、前記第1のアクセス制御データ特定情報によって特定可能な領域に、少なくとも前記第2のイベントが発生したことを特定可能なデータを格納する請求項5に記載の記憶領域アクセス装置。
【請求項9】
前記記憶装置が前記システムから取り外された場合、
前記イベント検知部は、前記アクセス制御データが格納された記憶装置が新たに組み込まれるまで、または前記システムが終了するまで、前記記憶装置が前記システムから取り外された以降に検知したイベントに対して、前記アクセス制御データの生成を中止する請求項1に記載の記憶領域アクセス装置。
【請求項10】
格納されているデータへのアクセスの制御に用いられるアクセス制御データが格納されるデータ領域と、あらかじめ用意されたアクセス鍵によってのみアクセス可能なセキュア領域とを含む記憶装置と、
前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置と、前記プログラムが実行されるプログラム実行環境と
を備えるシステムにおいて用いられ、
所定のイベントに応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データが取得される記憶領域のアクセス方法であって、
前記アクセス制御データは、第1の復号鍵によって復号可能に暗号化された状態で前記データ領域に格納され、
前記第1の復号鍵は、第2の復号鍵によって復号可能に暗号化された状態で前記セキュア領域に格納され、
前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報を生成するステップと、
前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するステップと、
前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するステップと、
前記アクセス制御装置の動作環境を特定する第1の環境情報を生成するステップと
を備え、
前記第1の復号鍵を取得するステップでは、
暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得し、
取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号し、
前記アクセス制御データを取得するステップでは、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データを復号する記憶領域のアクセス方法。
【請求項1】
システム上のリソースへのアクセス制御に用いられるアクセス制御データが格納されるデータ領域と、あらかじめ用意されたアクセス鍵によってのみアクセス可能なセキュア領域とを含む記憶装置と、
前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置と、前記プログラムが実行されるプログラム実行環境と
を備えるシステムにおいて用いられ、
所定のイベントに応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データを取得する記憶領域アクセス装置であって、
前記アクセス制御データは、第1の復号鍵によって復号可能に暗号化された状態で前記データ領域に格納され、
前記第1の復号鍵は、第2の復号鍵によって復号可能に暗号化された状態で前記セキュア領域に格納され、
前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報を生成するイベント検知部と、
前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するセキュア領域アクセス部と、
前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するデータ領域アクセス部と、
前記アクセス制御装置の動作環境を特定する第1の環境情報を生成する環境情報生成部と
を備え、
前記セキュア領域アクセス部は、
暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得する機能と、
取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号と
を有し、
前記データ領域アクセス部は、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データを復号する機能を有する記憶領域アクセス装置。
【請求項2】
前記アクセス制御データ特定情報は、前記所定のイベントを特定する情報を含み、
前記環境情報生成部は、前記アクセス制御データ特定情報に基づいて前記第1の環境情報を生成する請求項1に記載の記憶領域アクセス装置。
【請求項3】
前記イベント検知部は、
前記システムの起動、あるいは前記記憶装置の前記システムへの組み込みである第1のイベントを検出し、
前記第1のイベントに応じて適用すべき第1のアクセス制御データを特定する第1のアクセス制御データ特定情報を生成する請求項1に記載の記憶領域アクセス装置。
【請求項4】
前記第1のアクセス制御データは、前記イベント検知部が検知すべき第2のイベントを特定し、
前記イベント検知部は、前記第2のイベントのみを検知対象とする請求項3に記載の記憶領域アクセス装置。
【請求項5】
前記システムを再起動するシステム再起動部をさらに備え、
前記イベント検知部は、前記アクセス制御装置への適用時に前記システムの再起動が必要なアクセス制御データである第2のアクセス制御データに対応する第2のアクセス制御データ特定情報を生成し、
前記セキュア領域アクセス部は、
前記第1の復号鍵と、前記第1の復号鍵に対応する第1の暗号化鍵を生成する機能と、
前記第1の復号鍵を前記第2の復号鍵によって暗号化する機能と、
前記第1の暗号化鍵を第2の暗号化鍵によって暗号化する機能と、
暗号化した前記第1の復号鍵、及び暗号化した前記第1の暗号化鍵を、前記第1のアクセス制御データ特定情報によって特定可能な前記セキュア領域に格納する機能と
を有し、
前記データ領域アクセス部は、
前記第2のアクセス制御データ特定情報によって取得した前記第2のアクセス制御データを、前記第1の暗号化鍵によって暗号化する機能と、
前記暗号化した第2のアクセス制御データを、前記第1のアクセス制御データ特定情報によって特定可能な前記データ領域に格納する機能と
を有し、
前記システム再起動部は、前記システムを再起動した後、前記イベント検知部に前記第1のイベントを通知する機能を有する請求項3に記載の記憶領域アクセス装置。
【請求項6】
前記セキュア領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1の復号鍵を消去する機能を有し、
前記データ領域アクセス部は、前記第1のアクセス制御データの前記アクセス制御装置への適用後において、前記第1のアクセス制御データ特定情報によって特定される、前記暗号化された第1のアクセス制御データを消去する機能を有する請求項5に記載の記憶領域アクセス装置。
【請求項7】
前記セキュア領域アクセス部は、第2の環境情報に基づいて前記第2の復号鍵を生成し、
前記第2の環境情報は、少なくとも前記システムを一意に特定可能な情報を含む請求項5に記載の記憶領域アクセス装置。
【請求項8】
前記データ領域アクセス部は、前記第1のアクセス制御データ特定情報によって特定可能な領域に、少なくとも前記第2のイベントが発生したことを特定可能なデータを格納する請求項5に記載の記憶領域アクセス装置。
【請求項9】
前記記憶装置が前記システムから取り外された場合、
前記イベント検知部は、前記アクセス制御データが格納された記憶装置が新たに組み込まれるまで、または前記システムが終了するまで、前記記憶装置が前記システムから取り外された以降に検知したイベントに対して、前記アクセス制御データの生成を中止する請求項1に記載の記憶領域アクセス装置。
【請求項10】
格納されているデータへのアクセスの制御に用いられるアクセス制御データが格納されるデータ領域と、あらかじめ用意されたアクセス鍵によってのみアクセス可能なセキュア領域とを含む記憶装置と、
前記アクセス制御データに応じてプログラムの実行を制御するアクセス制御装置と、前記プログラムが実行されるプログラム実行環境と
を備えるシステムにおいて用いられ、
所定のイベントに応じて、前記記憶装置から前記アクセス制御装置に適用すべき前記アクセス制御データが取得される記憶領域のアクセス方法であって、
前記アクセス制御データは、第1の復号鍵によって復号可能に暗号化された状態で前記データ領域に格納され、
前記第1の復号鍵は、第2の復号鍵によって復号可能に暗号化された状態で前記セキュア領域に格納され、
前記所定のイベントの発生を検知するとともに、検知した前記所定のイベントに応じて、適用すべき前記アクセス制御データ及び前記第1の復号鍵の特定に用いられるアクセス制御データ特定情報を生成するステップと、
前記アクセス制御データ特定情報によって特定される前記第1の復号鍵を前記セキュア領域から取得するステップと、
前記アクセス制御データ特定情報によって特定される前記アクセス制御データを前記データ領域から取得するステップと、
前記アクセス制御装置の動作環境を特定する第1の環境情報を生成するステップと
を備え、
前記第1の復号鍵を取得するステップでは、
暗号化された状態で前記セキュア領域に格納されている前記第1の復号鍵を、前記アクセス鍵を用いて取得するとともに、前記第1の環境情報及び前記アクセス鍵を用いて前記第2の復号鍵を取得し、
取得した前記第2の復号鍵を用いて、暗号化された前記第1の復号鍵を復号し、
前記アクセス制御データを取得するステップでは、前記セキュア領域アクセス部によって復号された前記第1の復号鍵を用いて、暗号化された前記アクセス制御データを復号する記憶領域のアクセス方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−169868(P2009−169868A)
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願番号】特願2008−9870(P2008−9870)
【出願日】平成20年1月18日(2008.1.18)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願日】平成20年1月18日(2008.1.18)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】
[ Back to top ]