(57)【要約】  そのツリーに対するアクセス権を持つ特定のユーザに対する暗号化鍵の送信を容易にするのに階層的ツリー構造が使用される。すべてのユーザはルートノードと通信状態にあるが、ルートノードでの資料の情報内容は、この情報の対象ユーザによってのみ解読可能である。そのデータに特有な様々なデータ鍵を用いて、保護されたデータは暗号化される。これらのデータ鍵は、特定のユーザ又はユーザグループに特有なノード鍵と組み合わせることにより暗号化される。特定の暗号化データ鍵に関連付けられるノード鍵に対するアクセス権を持つユーザは、そのデータ鍵に関連付けられたデータを解読することができる。その特定のノード鍵に対するアクセス権を持たないユーザは、そのデータ鍵を復号することができず、こうして、そのデータを解読することができない。ユーザ特有のアクセス権を提供することに関するオーバーヘッドを最小限にするために、階層的ツリーは好ましくは、ユーザ間でのアクセス権の類似度に基づき構築される。
2009509227.tif 000002
【特許請求の範囲】
【請求項１】
データセットをデータ鍵で保護するステップと、
前記データセットへアクセス権を持つ可能性のあるユーザの階層を作成するステップと、
前記データセットに対する各ユーザのアクセス権を規定する１つ又は複数のルールを処理するステップと、
前記階層における１つ又は複数のアクセスノードであって、前記アクセスノードより下のすべてのユーザが前記データセットに対するアクセス権を持つようなアクセスノードを決定するステップと、
前記１つ又は複数のアクセスノードのそれぞれに関連付けられるノード鍵を用いて前記データ鍵を保護するステップとを有する、方法。
【請求項２】
前記データセットが属する複数のデータセットを含み、前記方法は、
前記複数のデータセットの他のデータセットをそれぞれ、複数のデータ鍵において対応する他のデータ鍵を用いて保護するステップと、
前記他のデータセットのそれぞれに対する各ユーザのアクセス権を規定するため、前記１つ又は複数のルールを処理するステップと、
前記階層における１つ又は複数のアクセスノードであって、前記アクセスノードより下のすべてのユーザが前記他のデータセットのそれぞれに対するアクセス権を持つようなアクセスノードを決定するステップと、
前記対応する他のデータセットに対する前記１つ又は複数のアクセスノードのそれぞれに関連付けられるノード鍵を用いて他のデータ鍵をそれぞれ保護するステップとを有する、請求項１に記載の方法。
【請求項３】
他のデータセットをそれぞれ保護するステップが、他のデータセットをそれぞれ暗号化するステップを含む、請求項１に記載の方法。
【請求項４】
他のデータ鍵をそれぞれ保護するステップが、他のデータ鍵をそれぞれ暗号化するステップを含む、請求項３に記載の方法。
【請求項５】
他のデータ鍵をそれぞれ保護するステップが、他のデータ鍵をそれぞれ暗号化するステップを含む、請求項１に記載の方法。
【請求項６】
前記階層を作成するステップが、前記階層内で同様なアクセス権を持つユーザのグループ化するステップを含む、請求項１に記載の方法。
【請求項７】
前記ユーザをグループ化するステップが、少なくとも何人かのユーザに対するアクセス権の事前割当に基づく統計を決定するステップを含む、請求項６に記載の方法。
【請求項８】
前記ユーザをグループ化するステップが、前記ユーザの少なくとも何人かに関連付けられる１つ又は複数の役割に基づかれる、請求項６に記載の方法。
【請求項９】
前記１つ又は複数のルールのうちの少なくとも１つのルールが、前記１つ又は複数の役割のうちの少なくとも１つの役割に基づかれる、請求項８に記載の方法。
【請求項１０】
前記少なくとも１つの役割が、前記複数のユーザに関連付けられ、
前記少なくとも１つのルールが、前記少なくとも１つの役割に関連付けられる前記複数のユーザ内の種々のユーザに種々のアクセス権を許可することを含む、請求項９に記載の方法。
【請求項１１】
前記ユーザの少なくとも何人かへのアクセス権の事前割当に基づく統計に基づき、前記階層を修正するステップを含む、請求項６に記載の方法。
【請求項１２】
対応する１つ又は複数のデータ鍵に基づき、１つ又は複数のデータセットを保護するよう構成されるデータ保護部と、
複数のユーザに対応する階層的ツリー構造を生成するよう構成されるツリー生成器であって、前記ツリー上の各ノードが、対応するノード鍵に関連付けられる、ツリー生成器と、
各データセットに対する各ユーザのアクセス権と、１つ又は複数のデータセットのそれぞれに対するアクセス権を持つ複数のユーザのうちのユーザを選択することに対応する、前記階層的ツリー構造におけるアクセスノードとを特定するアクセスルールを処理するよう構成されるルールプロセッサと、
前記アクセスノードのそれぞれに対応する前記ノード鍵に基づき、前記１つ又は複数のデータ鍵を保護するよう構成される鍵保護部とを有する、システム。
【請求項１３】
前記データ保護部が、前記対応するデータ鍵に基づき、前記データセットの暗号化を介して前記１つ又は複数のデータセットを保護する、請求項１２に記載のシステム。
【請求項１４】
前記鍵保護部が、前記１つ又は複数のデータセットのそれぞれに対する前記アクセスノードに対応する前記ノード鍵に基づき、前記データ鍵の暗号化を介して前記１つ又は複数のデータ鍵を保護する、請求項１２に記載のシステム。
【請求項１５】
前記ツリー生成器が、前記複数のユーザ内での共通のアクセス権に基づき、前記階層的ツリー構造を生成するよう構成される、請求項１２に記載のシステム。
【請求項１６】
前記ツリー生成器が、前記複数のユーザに関連付けられる１つ又は複数の役割に基づき、前記階層的ツリー構造を生成するよう構成される、請求項１２に記載のシステム。
【請求項１７】
前記ツリー生成器が、前記複数のユーザに対して許可される事前のアクセス権に少なくとも部分的に基づき、前記階層的ツリー構造を修正するよう構成される、請求項１２に記載のシステム。
【請求項１８】
前記アクセスノードが、最大共通アクセスノードに対応する、請求項１２に記載のシステム。
【請求項１９】
対応するデータ鍵を用いて複数のデータセットを暗号化するステップと、
前記複数のデータセットの各データセットに対する複数のユーザの各ユーザのアクセス権を規定するステップと、
前記複数のユーザを表す階層的ツリー構造を作成するステップと、
暗号化されたデータ鍵の複数のセットを形成するのに、前記階層的ツリー構造に関連付けられる複数のノード鍵を用いて前記アクセス権に基づき前記データ鍵を暗号化するステップと、
暗号化されたデータ鍵の前記セットを前記階層的ツリー構造を介して前記ユーザのそれぞれに通信するステップとを有する、方法。
【請求項２０】
前記階層的ツリー構造を作成するステップが、
前記ツリーのリーフノードに各ユーザを関連付けるステップと、
各リーフノードからルートノードまでの経路を作成するため、前記ツリーのブランチノードを形成するステップとを含む、請求項１９に記載の方法。
【請求項２１】
前記ブランチノードを形成するステップが、
前記複数のユーザの中で共通のアクセス権を特定するステップと、
前記共通のアクセス権に基づき、前記ブランチノードを形成するステップとを含む、請求項１９に記載の方法。
【請求項２２】
前記共通のアクセス権を特定するステップが、少なくとも部分的に、前記複数のユーザに関連付けられる１つ又は複数の役割に基づかれる、請求項２１に記載の方法。
【請求項２３】
前記共通のアクセス権を特定するステップが、少なくとも部分的に、前記複数のユーザ間のアクセス権の１つ又は複数の事前特定に基づかれる、請求項２１に記載の方法。
【請求項２４】
前記暗号化されたデータ鍵の各セットが、各データセットに対応する、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
出願人は、2005年9月16日に出願された仮出願シリアル番号第60/718,180号による利益を主張する。
【０００２】
本発明のシステムは、セキュリティシステムの分野に関し、特に、保護されたデータに対する、選択的なアクセス、大部分は役割ベースのアクセスを提供する方法及びシステムに関する。
【背景技術】
【０００３】
データを電子形式にエンコードする頻度が増加していることは、実質的に機密情報を保護する必要性が増加していることを意味する。医療記録、金融記録、法的記録等が日常的にデータファイルとしてエンコードされており、これらのデータファイルはしばしば、医者、会計士、弁護士といった、そのデータについての、アクセス権限のある複数の「ユーザ」に対して利用可能にされる。
【０００４】
多くのデータが収集され、多くのユーザにアクセス権が付与されるにつれ、アクセス制御の管理がより複雑になる。例えば、個人の一般的な開業医は、その個人の医療記録のすべてにアクセスする可能性がある。その個人に手術の予定があるとき、外科医及び麻酔専門医は、その記録にアクセスできるべきだが、おそらくすべての記録を見る必要はない。同様に、会社の税理士は、会社の金融データに対する会社の会計監査役とは異なるアクセス権限を持つ場合がある。
【０００５】
データに対して異なるユーザが異なるアクセス権限を持つことに対する必要性は、「役割ベースの」アクセス制御の概念をもたらした。そこでは、ユーザは、自分の役割に基づきアクセス権が付与される。通常の役割ベースのシステムでは、データの所有者が、各データアイテムを分類し、どの分類がどのグループのユーザに対して利用可能であるかを規定する。そのグループは、１つ又は複数の役割により規定される。例えば、特定の金融データは、「税関連」と分類されることができ、税に関与する役割のユーザに、税関連データへのアクセス権が付与される。教育環境においては、学生の記録における特定のデータが、「アカデミック」と分類されることができ、他のデータは「行動」と分類される。これらのデータに対するアクセス権は、ユーザの役割(例えば、教師、管理者、アドバイザ等)に基づき制御されることができる。前述されたように、医療分野においては、外科医が、一般的な開業医とは異なる部分の患者のデータ記録に対するアクセス権を持つことができ、一般的な開業医は、緊急救命室のスタッフとは異なるアクセス権を持つことができる等となる。
【０００６】
Huangらにより2004年2月26日にされた出願に係る米国特許出願公開第2005/0193196号「CRYPTOGRAPHICALLY ENFORCED, MULTIPLE ROLE, POLICY-BASED OBJECT DISSEMINATION CONTROL MECHANISM」は、役割ベースのアクセス制御システムを教示し、本書でも参照により含まれる。この参照された出願において、実行エンティティが、役割を備えるユーザからのアクセス要求を受信し、決定エンティティにその役割とリクエストとを送信する。決定エンティティは、その役割がリクエストされた情報に対するアクセス条件を満たすかを決定し、もし満たす場合には、その実行エンティティに認証を通知する。各ユーザの一意性を確認するために暗号化技術が含まれる。中央決定エンティティを提供することにより、可能性として変化する役割に基づかれる各ユーザの認証履歴を維持する管理コストが削減される。この参照された出願は、データを保護するのに各データソースに関連付けられる実行エンティティに依存し、例えば暗号化技術を用いてデータ自身を保護することには対応しない。
【０００７】
より高レベルのセキュリティを提供するため、保護されたデータは、認証されたユーザのみが、データを復号することができるよう、暗号化された形態で格納されるべきである。しかしながら、可能性として何百又は何千という認証ユーザがいる場合、鍵管理に関する問題が解決されなければならないことになる。
【０００８】
暗号化されたデータが、認証されたユーザのそれぞれが知る共通鍵でアクセス可能な場合には、共通鍵が不用意に開示されることによるセキュリティ障害の発生可能性が高い。更に、ユーザの１人が認証外ユーザとなった場合、そのデータは、新たな鍵を用いて再度暗号化されなければならず、この新しい鍵が、各ユーザに再配信されなければならない。
【０００９】
また、役割ベースのアクセス制御の概念と一致するように、データの暗号の収集が管理されることができる。各暗号は、異なる「役割鍵」に基づかれており、各ユーザは、各役割の範囲内で対応する復号鍵を付与される。このシナリオだと、もし鍵が漏洩した場合、漏洩した役割鍵に基づかれる暗号が、この役割に対する異なる鍵に基づかれる暗号により置き換えられ、このグループ内のユーザのみが、新たな鍵を与えられる必要がある。しかしながら、役割グループの中には、非常に巨大なものもあり、及び／又は各グループのメンバーがしばしば変更するようなものもあり、メンバーが変わる度に毎回新たな鍵を各グループのメンバーに配信する手間は、かなりの負担になる可能性がある。
【００１０】
Germano Caronniにより2004年3月10日にされた出願に係る米国特許出願公開第2005/0204161号「METHOD AND APPARATUS FOR HYBRID GROUP MANAGEMENT」は、メンバー変更が生じるとき各メンバーに鍵の再配信を必要とせずに、保護データに対するグループアクセスを提供する階層的ツリー構造の使用を教示し、本書でも参照により含まれる。この参照される出願でも教示されるように、保護データが、共通の「ルート(root)」鍵を用いて暗号化される。グループ内の各認証済みユーザは、ユーザからルートまでの経路に沿った鍵を連続的に復号することで、このルート鍵を取得することができる。各ノードは、ルートに向かう経路上の次のノードへのアクセスを許可する鍵を含む。それにより、すべてのノードをルートノードと通信状態にあるようにする。階層的ツリーにおけるルートノードは、そのツリーにおける任意のすべてのノードによって到達可能であるから、そのデータへのユーザアクセスを許可することは、そのツリーにおけるいずれか１つのノードへのユーザアクセスを許可することにより実現される。ユーザとノードとの間のアクセスは、そのユーザとそのノードとに特有な鍵を介して行われる。ユーザが認証外ユーザになるとき、この鍵は変更され、それにより、ユーザがその後ツリーにアクセスしても拒否されることになる。追加的なセキュリティのため、ユーザが、ルートノードに到達するのに使用された１つ又は複数の中間鍵を格納していた場合には、このユーザがルートノードにアクセスするのに使用されたノードも変更される。しかしながら、ルートへのユーザ経路にない他のノードは、このユーザにより使用されていないか、又はアクセス可能ではないので、これらのノードを変更する必要はない。同様に、ルートノードは、そのデータを復号するためのルート鍵を含み、このユーザによりアクセス可能であったので、そのデータは、ルートノードに後で格納される新たなルート鍵を用いて再度暗号化される。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
既存の役割ベースの暗号化を用いたシステムに伴う問題は、保護データに対するアクセスのグループベースの制御を処理するには効率的であるが、既存のシステムは、異なる時に異なるグループのメンバーであるユーザを効率的に手助けするものではなく、その役割／グループに関係なく、特定のユーザを効率的に追加又は除外することを可能にするものでもない。特に、上述の参照された特許出願において、ルートノードにアクセスすることができる任意かつすべてのユーザは、その保護されるデータに対するアクセス権を持つ。アクセス権を変更することは、ツリーの一部が無傷であるとしても、新たな階層ツリーを必要とする。
【００１２】
医療環境においては、医師は、異なる時に異なる役割を持つと考えられる。従って、役割に基づき医師に認証される情報へのアクセス権は変化する可能性がある。その医師が複数のグループに対してメンバーであると入力されることができたとしても、両方のグループに医師を含めることは、アクセス権について期待される又は所望の認証形態とは相容れない。例えば、一般的開業医(GP)であり、かつ緊急救命室(ER)専門医でもある医師は、２つのグループに属する場合がある。GPとして特定の患者データに対して、医師は特定のアクセス権を許可される。ER専門医として同じ患者に対して、同じ医師は、特定の異なるアクセス権を許可されることができる。この医師が緊急救命室でこの患者に対して職務をまっとうするときは、緊急救命室関連の情報にのみアクセスを持っていると、患者は想うであろう。
【００１３】
さらに、そのデータの所有者は、その役割に関係なく、特定の情報に対するアクセスを持つユーザに関する特定の好みを持つことができる。特定のユーザが、例えば、その所有者の隣人又は友人である場合、その隣人又は友人と共有されると、その所有者が不快に思うか、及び／又は困惑するかもしれない特定のデータが存在する場合がある。また、その所有者は、特定のデータを備える特定のユーザを信用しない場合があり、又は単に特定のデータがあるユーザには秘密であることを好む場合がある。また、その所有者は、特定のユーザ(家族又は友人)が、その役割に関係なく特定の情報に対するアクセス権を持つことを許可することを好む場合がある。
【００１４】
上述の参照された特許出願の追加的な限定は、それぞれ異なって保護されるデータセットが、そのデータセットに特有なアクセスツリーを必要とすることである。医療環境においては、例えば、患者が様々な異なるクラスの記録を持つ場合がある。例えば、患者の識別／コンタクト情報、保険情報等を含むレコードセット、患者のアレルギー、医療履歴、一般的な健康状態といった一般的な医療情報を含む別のレコードセット、種々の医療分野(眼科、心臓学、聴覚学)に関する種々のレコードセット等がある。これらのレコードセットはそれぞれ、異なるアクセス権のセットを持つことになろう。例えば、すべてのユーザ(医師、管理者等)に、患者の識別及び保険データへのアクセス権が付与されるが、検査結果へのアクセス権は、医師及び看護師にのみ付与されることができる。同様に、医師は、そのデータが関連する分野に基づき、異なるセットの医療データへのアクセス権を付与されることになる。こうしたデータセットのそれぞれに対して、異なるアクセスツリーが従来は使用されてきた。
【００１５】
本システムの目的は、動的な環境における情報アクセスを効率的に管理することを容易にする方法及びシステムを提供することにある。本システムの追加的な目的は、役割ベースのアクセスシステムにおける所有者特有のアクセス権を容易にする方法及びシステムを提供することである。本システムの更なる目的は、異なるデータセットに対する異なるアクセス権を制御するために、同じ階層的ツリー構造を使用することを容易にすることにある。
【００１６】
本システムの目的は、従来技術における上記及び他の不都合点を克服することにある。
【課題を解決するための手段】
【００１７】
これら及び他の目的は、ツリーに対するアクセス権を持つ特定のユーザに対して暗号化鍵の通信を容易にする階層的ツリー構造を用いる方法及びシステムにより実現される。すべてのユーザはルートノードと通信状態にあるが、ルートノードにある資料の情報内容は、この情報の対象ユーザによってのみ解読可能である。保護されるデータは、そのデータに特有な様々なデータ鍵を用いて暗号化される。こうしたデータ鍵は、特定のユーザ又はユーザグループに特有なノード鍵と組み合わせることにより暗号化される。特定の暗号化データ鍵に関連付けられるノード鍵に対するアクセス権を持つユーザは、そのデータ鍵に関連付けられたデータを解読することができる。ルートノードでこうした暗号化データ鍵に対するアクセス権を持つ他のユーザは、そのデータ鍵を復号するのに必要なノード鍵を持っていないため、そのデータを解読することはできない。ユーザ毎に特化したアクセス権を提供することに関するオーバーヘッドを最小限にするために、階層的ツリーは好ましくは、ユーザ間でのアクセス権の類似度に基づき構築される。
【発明を実施するための最良の形態】
【００１８】
図面は、説明目的のために含まれ、本発明のシステムの範囲を表すものではないことは明示的に理解されたい。本発明のシステムは、対応する図面を参照し、例示を介して、更に詳細に説明される。
【００１９】
図面を通して、同じ要素又は実質的に同じ機能を実行する要素には同じ参照番号が振られる。図面は、説明目的のために含まれ、本発明のシステムの範囲を限定するものとして意図されるものではない。
【００２０】
以下の説明において、限定するものではなく説明のため、本システムの全体的な理解を提供するのに、例えば特定の構造、インタフェース、技術等として特定の詳細が説明される。しかしながら、こうした特定の詳細とは別に、本システムは、他の実施形態においても実現されることができることは、当業者には明らかであろう。簡単化と明瞭化とのため、不要な詳細によって本システムの説明を曖昧にしないよう、既知のデバイス、回路及び方法の詳細な説明は省略されている。
【００２１】
本発明のシステムは、医療記録に対する選択的なアクセスのパラダイムを用いて本書では説明されるが、当業者であれば、本書で述べられる原理が、様々なアクセス制御用途に適用されることができること、及び医療記録の保護だけに限定されないことを理解されるであろう。同様に、本発明のシステムは、鍵の使用を介してデータを保護するための暗号及び復号のパラダイムを用いて与えられるが、当業者であれば、暗号以外の他の技術を用いてデータに対するアクセスを制御するのに鍵が用いられることが可能であることを理解されるであろう。例えば、鍵を用いてデータに対する通信チャネルを制御したり、鍵に基づきデータにアクセスするアプリケーションへのアクセスを制御したりすること等ができる。同様に、「鍵」という用語は、本書では、そうでなければアクセスできない情報への選択的なアクセスを容易にする任意の情報アイテムを特定するのに使用される。当業者であれば、状況に応じて非対称な鍵ペアが、即ち１つは施錠のため、１つは解錠のために使用されることができることは理解されるであろうが、理解の促進のために、データを施錠するのに使用される鍵と、保護された情報を解錠するのに使用される鍵とは一般的に区別していない。
【００２２】
図１は、本システムによるユーザを選択するためのデータを暗号化する鍵を伝搬するのに使用される例示的な階層的ツリー構造を示す。データセット１０１〜１０５は、様々なデータ鍵k1〜k5を用いて、通常、こうした鍵を用いてデータを暗号化することにより、保護される。５個のデータセットと対応するデータ鍵とが図示されるが、データは、任意数のデータセットに、その関連するデータ鍵と共に分割されることができる。これらのデータセットは一般に、患者の個人データ、保険情報、日常の検査結果、特殊な検査結果、判明しているアレルギー等を含むセットといった、関連するデータ項目のセットである。会社環境においては、そのデータセットは、例えば、個人データ、在庫品目、資産、仕入れ先、株主等を含む。本システムの１つの側面によれば、これらのデータ鍵は、そのツリーのノードに関連付けられる鍵(「ノード鍵」)を用いて保護された形式で、ルートノードrを持つ階層的なツリー構造を介してユーザに通信される。
【００２３】
図１に示されるのは、ルートノードrに結合される３つのノードr1、r2、r3であるが、ルートノードrに結合される斯かるノードの数は、図示されるより多くても少なくてもよい。本システムの好ましい実施形態においては、３つのノードr1、r2、r3のそれぞれが、データ１０１〜１０５へのアクセスに関連付けられた異なる役割に対応する。各ノードr1、r2、r3は、他の関連ノードセットを持つが、ノードr1の下のノードだけがこの例では詳細に示される。そのノードは、好ましくは、バイナリツリー構造又はNアレイツリー構造といった階層的な態様で配置されるが、各ユーザとルートノードとの間の経路が特定されることができるのであれば、任意の構造が使用されることができる。
【００２４】
例示的なツリー構造における各ノードは、階層的な態様で、隣接ノードのそれぞれへのアクセスが容易であるように構成される。例えば、図１におけるノードn1は、ノードr1にある情報へのアクセスを可能にするよう構成され、ノードn3及びbによるその情報へのアクセスを可能にするよう構成される。この階層的なアクセス構造は、各ノードがルートノードrに到達することを可能にする。例えばノードbは、ノードr1にアクセスするのに必要な情報を得るためノードn1にアクセスする。ノードr1からは、ノードrにアクセスするのに必要な情報が得られることができる。本システムの１つの側面によれば、ノードrは、データ鍵k1〜knの選択的な暗号を含むよう構成され、従って、ツリーにおけるすべてのノードがデータ鍵k1〜knのこうした暗号にアクセスすることができる。
【００２５】
当業者であれば、図１に示される通信スキームは、様々な形態で実現されることができることを理解されるであろう。別の実施形態では、例えば、情報が、リーフノードのすべてにブロードキャストされることができる。リーフノードは、ルートノードへの経路におけるすべての鍵を含むよう構成されることができる。情報及び鍵が物理的に格納される場所に関係なく、これらの２つの代替的な実施形態は、論理的に均等であり、基本的な前提は、リーフノードがその経路における各ノードに対応する鍵へのアクセス権を持ち、これらの鍵が、保護された態様でそのツリーのすべてのノードに利用可能な情報へのアクセスを可能にする。
【００２６】
アクセス鍵と暗号化された内容とをブロードキャストする前述のシステムは知られている。Amos Fiatらによる「Advances in Cryptology」、CRYPTO'93、480〜491頁、August 1993でのタイトル「Broadcast Encryption」が、メンバーの第１のサブセットではない第２のサブセットが、メンバーの第１のサブセットを対象とする安全な通信にアクセスすることができないよう、第１のサブセットの各メンバーに複数の鍵をブロードキャストすることを教示し、本書でも参照により含まれる。この参考文献に教示されるように、各メンバーにより格納される鍵の数は、メンバーの総数と、第２のサブセットに含まれるメンバー数とに関連し、第１のサブセットの大きさには無関係である。Dalit Naorらによる「Advances in Cryptology」、CRYPTO'01、41〜62頁、2001でのタイトル「Revocation and Tracing Schemes for Stateless Receivers」は、ステートレス型(stateless:状態を保持しない)受信機に対する暗号化された内容の復号権の取り消しを教示し、本書でも参照により含まれる。この参考文献に論じられるように、ステートレス型受信機は、以前の通信の過去の履歴を記録することができない。従って、ステートレス型受信機の動作は、現在のブロードキャスト通信(例えば、可能性のあるすべての受信機により受信される)と、各受信機に固有のアクセス証明書を含む初期構成とに基づかれる。ブロードキャストメッセージの必要な長さは、取り消される受信機の数と、受信機の総数とに関連する一方、メッセージの復号を可能にするブロードキャスト鍵の数は、取り消される受信機の数のみに関連する。
【００２７】
詳細は以下に論じられるが、適切な鍵を持つことは、その鍵を所有するノードが、保護された情報にアクセス／復号することを可能にする。
【００２８】
以下の表現が、アイテムの暗号を規定するのに使用される：
[k(node1), k(node2),etc.](item)
であり、「node1, node2, etc.」は、１つ又は複数のノードを示し、そのノードで、「item(アイテム)」を復号するための鍵k(node)が発見されることができることを示す。k(node)は、以後ノード鍵と呼ぶ。上述されたように、この開示を通して、「暗号」という用語は、アイテムに対する未認証なアクセスからの保護を与える意味で一般的に使用され、「復号」という用語は、保護されたアイテムへのアクセスを与えるという意味で一般的に使用される。
【００２９】
すべてのデータがすべてのノードに対してアクセス可能である場合、以下の情報が、ノードrでは利用可能である。
[k(r)](k1), [k(r)](k2), [k(r)](k3), [k(r)](k4), [k(r)](k5)。
従って、ノードrにアクセスすることができる任意のノードは、任意のデータにアクセスすることができる。なぜなら、ノードrにアクセスすることができる任意のノードは、対応するデータ１０１〜１０５へのアクセスを可能にするデータ鍵k1〜k5のそれぞれへのアクセスを可能にするノード鍵k(r)へのアクセス権を持つからである。言い換えると、鍵がユーザ側で格納されるような実施形態において、ルートノードrの子供にあたるすべてのユーザノードが、k(r)のコピーを持ち、こうして、各鍵k1〜k5にアクセス／復号することができ、従って、データセット１０１〜１０５のそれぞれにアクセス／復号することができる。
【００３０】
本システムのこの側面によれば、役割r1内のユーザのみが、k1により保護されるデータ１０１へのアクセスを許可される場合、ノードrでの情報は、
[k(r1)](k1), [k(r)](k2), [k(r)](k3), [k(r)](k4),[k(r)](k5)
である。すなわち、ノードr1へのアクセス権を持つノードのみが、データ１０１へのアクセスを与えるデータ鍵k1へのアクセスを提供するノード鍵k(r1)を含むことができることになる。図１におけるツリーの階層的アクセス構造により、ノードr2及びr3は、ノードrへのアクセスのみを提供し、ノードr1へのアクセスは提供しない。
【００３１】
より複雑なアクセスシナリオとして、以下のアクセスルールを考える。
− 役割１のユーザは、すべてのデータセット１０１、１０２、１０３、１０４、１０５へのアクセス権を持つ。
− 役割２のユーザは、データセット１０２及び１０４へのアクセス権を持つ。
− 役割３のユーザは、データセット１０１、１０２及び１０３へのアクセス権を持つ。
【００３２】
この例において、ノードrは、以下の情報を含むことになる。
[k(r1), k(r3)](k1), [k(r)](k2), [k(r1), k(r3)](k3), [k(r1),k(r2)](k4),[k(r1)](k5)。
【００３３】
即ち、ルートノードrに到達することができるツリーにおける各ユーザ(即ちすべてのユーザ)は、上記情報を受信することができることになるが、ノード鍵k(r1)又はk(r3)へのアクセス権を持つユーザだけが、(データ鍵k1を介して)データセット１０１にアクセスすることができることになる。ノード鍵k(r)に対するアクセス権を持つユーザ(即ち、ツリーに対するアクセス権を持つすべてのユーザ)は、(データ鍵k2を介して)データセット１０２にアクセスすることができる、等となる。
【００３４】
データを保護するデータ鍵を選択的に保護することにより、複数の役割r1〜r3内で複数のデータセット１０１〜１０５を所与の役割ベースのルールに基づき保護することが、安全かつ効率的に維持されることができることに留意されたい。そのルールは、特定のノードに適用され、その特定のノードに到達可能なすべてのノードにもあてはまるので、単に所与の役割内の任意のノードへのアクセス権を新たなユーザに与えることにより、新たなユーザを既存の役割に追加することが容易に調整される点にも留意されたい。同様に、ルートノードrへのアクセス権を持つ役割ノードとしてその役割を追加し、この役割のユーザによるアクセスが許可されるデータに対応するデータ鍵を暗号化し、及び、この新たな役割ノードへのアクセス権を持つすべてのユーザに対応する復号鍵へのアクセスを与えることにより、追加的な役割及び関連ユーザの追加が容易に調整される。
【００３５】
データ鍵の選択的な保護も、役割に基づき許可されるアクセス権に関係なく、所有者固有のアクセス権の付与及び剥奪の効率的な調整を可能にする。例えば、上述のルールに以下の修正を加えることを考える。
− 役割１のユーザは、すべてのデータセット１０１、１０２、１０３、１０４、１０５へのアクセス権を持つが、ユーザeだけは、データ１０３へのアクセス権を持たない。
− 役割２のユーザは、データセット１０２及び１０４へのアクセス権を持つ。
− 役割３のユーザは、データセット１０１、１０２及び１０３へのアクセス権を持つ。
【００３６】
この例において、ノードrは、以下の情報を含むことになる。
[k(r1), k(r3)](k1), [k(r)](k2), [k(n1), k(n4), k(r3)](k3), [k(r1),k(r2)](k4),[k(r1)](k5)。
【００３７】
即ち、データ１０３にアクセスするためのデータ鍵k3へのアクセスは、ノード鍵k(n1)、k(n4)及びk(r3)にアクセスすることができるユーザに限定される。ユーザa及びbは、ノードn1にアクセスすることができ、従って、k(n1)へのアクセス権を持つ。ユーザc及びdは、アクセスノードn4にアクセスすることができ、従って、k(n4)へのアクセス権を持つ。従って、ユーザeを除く役割r1のユーザはすべてデータ１０３にアクセスすることができ、上述のルールとも一致する。
【００３８】
ユーザのアクセス権が変更になるとき、例えば、この例でいうと、ユーザeが、データセット１０３へのアクセス権を否定されるとき、上述の米国出願公開第2005/0204161号で行われるようなツリーからのユーザの除外は必ずしも必要でなくなる点に留意されたい。代わりに、データ鍵の保護は、単にデータ鍵へのそのユーザアクセスを否定するように変更されるだけである。好ましくは、除外されたユーザが、そのユーザが以前にアクセスした１つ又は複数の鍵を保持していた場合には、そのデータセットは新しいデータ鍵(この例でいうとk3)で再度暗号化され、改訂された認証ノード鍵(この例でいうと、ノードn1、n4及びr3のノード鍵k(n1)、k(n4)及びk(r3))を用いて再度暗号化されるのはこの新たなデータ鍵となる。前述の出願公開では必要とされるが、ユーザのアクセス権を変更しても、ユーザとルートノードとの間のすべてのノード鍵の交換を必要とするものではないことに特に留意されたい。
【００３９】
ユーザがツリーから完全に除外されるとき、以前にアクセス可能であったデータは、新しいデータ鍵を用いて再度暗号化される。好ましくは、参照される米国出願公開第2005/0204161号に詳細に記載される処理が使用され、それは、以前にアクセス可能であったすべてのノード鍵の交換、及びそれに伴うツリー全体へのユーザアクセスの否定を含む。
【００４０】
図２は、データセットに関連付けられるアクセスルールに基づくデータ鍵の特定及び保護に関するフロー図を示す。ステップ２１０では、上述のデータ鍵を用いて、通常各データセットをその関連するデータ鍵で暗号化することにより、データセットが保護される。
【００４１】
ステップ２２０では、一般に各ユーザの役割に基づき、ユーザの階層的ツリーが作成される。詳細は以下で論じられる。各役割内のツリーの構造は、好ましくは、バイナリツリー又はNアレイツリーであるが、階層は任意の形態をとることができる。
【００４２】
ステップ２３０では、論理表現を表すための従来技術において一般的な技術を用いて、許可されたアクセス権を特定するためのルールが処理され、そのルールに合致することが確実にされる。ルールの形式及び構造は、一般的に、特定の用途に依存する。例えば、いくつかの用途では、すべての役割内のすべてのユーザがすべてのデータへのアクセス権を持つよう認証されることが想定され、そのルールは、この想定されたアクセスに対する除外を容易に特定するよう構築される。他の用途では、１人のユーザもアクセス権を持つことが許可されないことが想定され、そのルールは、アクセス権の許可を容易に特定するよう構築される。他の用途では、デフォルトルールがオールユーザかノーユーザかをデータセットのタイプが規定することができ、ミックスされたルール形式が使用されることができる。ルールの処理は、各ユーザと各データセットとの間のマッピングへの一意なアクセス／非アクセスを規定するよう意図される。
【００４３】
ステップ２４０において、ユーザとデータセットとの間のアクセスマッピングは、各ユーザに関連付けられる「最大共通アクセス(GCA)ノード」を規定するよう処理される。直接的な実施形態において、ツリーのすべてのノードが、アクセスを提供するよう構成されることが想定される。そのアクセスマップは、アクセスを否定されるノードを特定するよう処理される。基本的に、各データセットに対して、未認証ユーザのルートノードへの経路に沿った各ノードは、「アクセス権なし」ノードとしてマークされる。「アクセス権なし」ノードをマークした後、各「アクセス権なし」ノードの各「アクセス権あり」子ノードが、最大共通アクセスノード(GCA)として特定される。
【００４４】
上記例において、ユーザeを除く、役割r1内の図１のすべてのユーザは、データセット１０３へのアクセスを許可され、それは役割r3内のすべてのユーザについても同様である。最初に、すべてのノードが「アクセス権あり」ノードとしてマークされる。ユーザeからの追跡により、ノードe、n2、r1及びrが、データセット１０３に対して「アクセス権なし」ノードとしてマークされる。これは、r2を含むr2内のすべてのノードも同様である。データセット１０３に関連付けられるすべての「アクセス権なし」ノードをマークした後で、「アクセス権なし」ノードn2の「アクセス権あり」子ノードであるノードn4が、データセット１０３に対するGCAノードとして特定される。同様に、「アクセス権なし」ノードr1の「アクセス権あり」子ノードであるノードn1、及び「アクセス権なし」ノードrの「アクセス権あり」子ノードであるノードr3が、同様にGCAノードとしてマークされる。こうして、データセット１０３に関連付けられるGCAノードのセットは、本実施例では、ノードn1、n4及びr3として特定される。同様に、データセット１０１に対するGCAノードは、ノードr1及びr3である。データセット１０２に対しては、ノードrであり、データセット１０４に対しては、ノードr1及びr2である。データセット１０５に対しては、ノードr1である。
【００４５】
ステップ２５０においては、対応するデータセットに関連付けられる各GCAノードだけにアクセスを提供するよう、各データ鍵が保護される。上述の例を用いれば、暗号化を用いる実施形態において、データ鍵k1が、ノード鍵k(r1)及びk(r3)のそれぞれを用いて暗号化される。データ鍵k2は、ノード鍵k(r)を用いて暗号化される。データ鍵k3が、ノード鍵k(n1)、k(n4)及びk(r3)を用いて暗号化される。データ鍵k4は、ノード鍵k(r1)及びk(r2)を用いて暗号化される。データ鍵k5は、ノード鍵k(r1)を用いて暗号化される。こうして、データ鍵を復号することができるノード鍵を持つノードにアクセスすることができる任意のユーザが、そのデータ鍵により保護されるデータセットにアクセスすることができる。所与のデータセットに関連付けられるデータ鍵にアクセスできないユーザは、そのデータセットにアクセスすることができない。
【００４６】
上述の鍵管理処理の効率を高めるため、同様なアクセス権を持つユーザは、好ましくは、階層的なツリーにおいて一緒にグループ化される。ユーザが一般的にアクセス権によりグループ化される場合、GCAノードは、こうしたユーザをすべて含む傾向にあり、従って、各データセットに対するGCAノードの数は減らされる。上述されたように役割別にユーザをグループ化することは、一般に効率的な階層を与え、特に、役割内に少数の例外が存在するような場合に有効である。
【００４７】
いくつかの状況では、ユーザが異なる時間で異なる役割を持つ場合がある。例えば、医療分野においては、医師は主に一般の開業医の責務を果たすが、特定の日には、緊急救命室の医師の責務を果たす場合がある。ユーザが一般的な開業医として働いている日には、そのユーザは、緊急救命室の医師に許可される役割ベースのアクセス権を持つべきではないし、その逆もまた真である。
【００４８】
好ましい実施形態において、単一の役割を持つすべてのユーザは、その役割のサブツリー上でリーフノードに割り当てられる。複数の役割を持つユーザに対しては、多くの可能性があり、例えば、１つ又は別の役割へのユーザの割り当ての統計に関する追加情報が、各ユーザに対する適切なサブツリーを決定するために解析されることができる。ユーザが支配的に所与の役割を持つ場合、この役割は一般的にこのユーザに対して選択されることになる。ユーザが支配的な役割を持たないが、ユーザに想定される役割が、別のユーザの役割と非常に相関し、両者が通常同じアクセス権を付与される場合には、未割り当てのユーザが他のユーザの役割サブツリーに割り当てられることになる。他方、ユーザが支配的な役割を持たず、別のユーザへの相関を示さない場合には、このユーザは、このユーザが共通してキャストされる、好ましくはルートノードに近いいずれかのノードのサブツリーの下のリーフノードに割り当てられることができる。その結果、このユーザとルートノードとの間で「アクセス権なし」としてマークされることができるノードの数は、最小化される。また、既存の役割のいずれにも一般には適合しないユーザのアクセスを管理するのに、新しいサブツリーが作成されることができる。同様に、役割サブツリー内で、その役割に関連する基本的なアクセス権にしばしば適合しないことが判明するユーザが、例えば、しばしばその役割から外れる複数の役割を持つユーザが、一般に適合するユーザから切り離されて、好ましくはルートノードに近いものとして一緒にグループ化される。
【００４９】
この開示に鑑み当業者には明らかなように、多くの情報が得られると、例えば、システムが一定の時間にわたり使用されると、この新しい情報が、任意の時点でツリーを再構築するのに使用されることができる。
【００５０】
図３は、例示的なアクセス制御システム３００を示す。データ暗号部３１０は、対応するデータ鍵３１５を介してのみアクセスされることができる保護済みデータセット３１１を与えることにより、１つ又は複数のデータセット３０１を保護するよう構成される。好ましくは、元のデータセット３０１は破壊されるか、又は物理的にリモートアクセスから切り離される。
【００５１】
ルールプロセッサ３２０は、保護済みデータセット３１１に対するアクセス権をそのデータのユーザ候補者に割り当てるためアクセスルール３０２を処理するよう構成される。上述されたように、特定のデータセットに基づき、及び異なるユーザ又はユーザグループに基づき、異なるアクセス権を割り当てることが可能である。
【００５２】
ツリー生成器３３０は、ユーザ３０３又はユーザグループ３０４の中でアクセス権の通信を容易にするアクセスツリー３３２を生成するよう構成される。ユーザのグループ化は普通、データへのアクセスが要求されたとき各ユーザ３０３が実行する１つ又は複数の役割３０４に基づかれる。しかしながら、他のグループ化が同様に使用されることもできる。オプションで、上述されたように、ユーザ毎に特化したアクセス権をツリー３３２を介して通信することに関するオーバーヘッドを最小化するため、ユーザのグループ化がアクセス権３４０の以前又は現在の許可に基づかれることもできる。
【００５３】
ツリー生成器３３０は、ツリーの各ノードに関連付けられるノード鍵３３５も生成する。こうしたノード鍵３３５は、ルートノードへのノードの経路に沿ってノード経由のアクセスを得るのに使用されるのと同じ鍵とすることができるか、又は、前述されたように、鍵暗号部３５０により各ノード鍵に対する必要性に基づき、特定の目的の鍵が要求に応じて生成されることができる。
【００５４】
鍵暗号部３５０は、ルールプロセッサ３２０により決定されるアクセス権に基づき各データ鍵３１５を暗号化するよう構成される。これらのアクセス権は、ルールプロセッサ３２０から、各保護済みデータセット３１１に対するアクセスが許可されるべき、ツリー３３２に含まれるノードのリスト３２５として通信される。このリスト３２５は、各データセット３１１に対するアクセス権を持つ各ユーザノードの完全なリストであるが、好ましい実施形態では、このリスト３２５は、各データセット３１１に対するアクセス権を持つ「最大共通アクセス」(GCA)ノードを特定する。上述したように、各GCAノードは、そのノードの下の各ノードが所与のデータセットに対するアクセス権を持つようなノードである。この態様で、GCAノードに到達することができる任意のノードは、リスト３２５に明示的に記載がなくても、所与のデータセットに対するアクセス権を付与される。
【００５５】
各データセット３１１に対するツリー３３２における承認されたノードのリスト３２５を用いると、鍵暗号部３５０は、各データセット３１１に関連付けられるデータ鍵３１５を、このデータセット３１１に対する各承認されたノードに関連付けられるノード鍵３３５を用いて暗号化する。暗号化されたデータ鍵の結果として生じるセット３５５は、ツリー３３２のルートノードに与えられる。
【００５６】
鍵暗号部３５０及びデータ暗号部３１０は、個別の暗号要素として図示されるが、当業者であれば、１つの暗号部が、両方の暗号部の機能を実行するのに使用されることができることを理解されるであろう。
【００５７】
上述されたように、ツリー３３２は、そのツリーにおける各ノードに、ルートノードにある情報にアクセスできる機能を提供する(通常、ルートノードと通信状態にあるように各ノードを配置する、と表現される)。しかしながら、ルートノードにある情報アイテムが、選択されたノード３２５に関連付けられるノード鍵３３５で暗号化されたデータ鍵３５５であるため、選択されたノード３２５だけが、各保護済みデータセット３１１にアクセスするのに、そのルートノードにある情報を利用することができる。
【００５８】
これまでの説明は、単に本システムの原理を説明するにすぎない。当業者は、本書に明示的に記載又は開示されていなくとも、本システムの原理をその精神及び範囲内で実現する様々な装置を工夫することができることを理解されたい。例えば、例示的な階層的ツリーの組織が、役割ベースのアクセス制御システムの観点から与えられるが、当業者であれば、その階層構造は好ましくは、斯かるアクセス権が役割に基づかれるかに関係なく、共有されるアクセス権に基づかれることを理解されるであろう。同様に、観測される相関に対する原因を関連付けすることなく、その構造は、アクセス制御に関連する統計に純粋に基づき構築されることができる。これら及び他のシステム構成及び最適化の特徴は、この開示に鑑み当業者には明らかであろうし、請求項の範囲内に含まれるものである。
【００５９】
請求項を解釈するにあたり、以下のことを理解されたい。
a) 単語「comprising(有する)」は、所与の請求項に記載されている要素又は動作以外の他の要素又は動作の存在を排除するものではない。
b) 単語「a」又は「an」が先行する要素は、斯かる要素の複数性を排除するものではない。
c) 請求項における任意の参照符号は、その範囲を限定するものではない。
d) 複数の「手段」は、構造又は機能を実現する同じアイテム又はハードウェア又はソフトウェアにより表されることができる。
e) 開示された要素はそれぞれ、ハードウェア部分(例えば、個別の及び一体化された電子回路を含む)、ソフトウェア部分(例えば、コンピュータプログラム)、及びこれらの任意の組み合わせを有することができる。
f) ハードウェア部分は、アナログ及びデジタル部分のいずれか又は両方を有することができる。
g) 特に記述がない場合、開示されたデバイス又はその一部のいずれかが、一緒に組み合わされるか、又は更に部分に分割されることができる。
h) 特に示されない限り、動作が特定の順に実行されることを必要とすることを意味するものではない。
i) 「複数」の要素という用語は、請求項の要素の２つ又はそれ以上を含み、特定の範囲の数の要素を意味するものではない。即ち、複数の要素が、わずか２つの要素であってもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明のシステムによる、ユーザを選択するためデータを暗号化する鍵を伝搬するのに使用される例示的な階層的ツリー構造を示す図である。
【図２】本発明のシステムによる、ユーザを選択するべくデータ鍵の伝搬を管理するための例示的なフローダイアグラムを示す図である。
【図３】本発明のシステムによる、例示的なデータアクセス制御システムを示す図である。
【図１】
2009509227.tif 000003
【図２】
2009509227.tif 000004
【図３】
2009509227.tif 000005
【国際調査報告】
2009509227.tif 000006
2009509227.tif 000007
2009509227.tif 000008