IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧 ▶ NECソリューションイノベータ株式会社の特許一覧

特許7485456プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム
<>
  • 特許-プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム 図1
  • 特許-プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム 図2
  • 特許-プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム 図3
  • 特許-プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム 図4
  • 特許-プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム 図5
  • 特許-プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム 図6
  • 特許-プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】プログラム、ユーザ装置、アクセス制御方法、及びアクセス制御システム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20240509BHJP
【FI】
G06F21/62 309
【請求項の数】 17
(21)【出願番号】P 2022529971
(86)(22)【出願日】2020-06-11
(86)【国際出願番号】 JP2020023092
(87)【国際公開番号】W WO2021250867
(87)【国際公開日】2021-12-16
【審査請求日】2022-12-07
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】廣田 匠
(72)【発明者】
【氏名】安岡 秀之
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2011-018128(JP,A)
【文献】特開2011-138434(JP,A)
【文献】特開2003-209541(JP,A)
【文献】米国特許出願公開第2005/0060545(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定ステップと、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得ステップと、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号ステップと、を実行させ、
前記コンピュータは、前記第1サーバ装置ではなく、前記第2サーバ装置でもな
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていたディレクトリである基準位置に対応づけて定められており、
前記判定ステップにおいて、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する、プログラム。
【請求項2】
前記判定ステップにおいて、前記第1サーバ装置に対し、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを示す情報を送信し、
前記アクセス権限情報は、前記基準位置に対して前記対象ユーザがアクセス権限を有するか否かについて、前記第1サーバ装置が判定した結果を示す、請求項に記載のプログラム。
【請求項3】
前記対象ファイルは、前記判定ステップが実行される前の時点において、ファイルサーバの記憶装置に設けられている第1ディレクトリから、前記コンピュータの記憶装置に設けられている第2ディレクトリにコピー又は移動されており、
前記対象ファイルの前記基準位置は前記第1ディレクトリに設定されている、請求項又はに記載のプログラム。
【請求項4】
前記第1サーバ装置は前記ファイルサーバである、請求項に記載のプログラム。
【請求項5】
コンピュータに、
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定ステップと、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得ステップと、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号ステップと、を実行させ、
前記コンピュータは、前記第1サーバ装置ではなく、前記第2サーバ装置でもなく、
前記取得ステップにおいて、
前記対象ファイルの暗号化に利用された暗号鍵を前記第2サーバ装置へ提供し、
前記暗号鍵から生成された前記対象ファイルの復号鍵を前記鍵情報として取得し、
前記復号ステップにおいて、前記対象ファイルを前記復号鍵で復号する、プログラム。
【請求項6】
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得部と、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有し
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていたディレクトリである基準位置に対応づけて定められており、
前記判定部は、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する、ユーザ装置。
【請求項7】
前記判定部は、前記第1サーバ装置に対し、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを示す情報を送信し、
前記アクセス権限情報は、前記基準位置に対して前記対象ユーザがアクセス権限を有するか否かについて、前記第1サーバ装置が判定した結果を示す、請求項に記載のユーザ装置。
【請求項8】
前記対象ファイルは、前記判定部による判定が実行される前の時点において、ファイルサーバの記憶装置に設けられている第1ディレクトリから、当該ユーザ装置の記憶装置に設けられている第2ディレクトリにコピー又は移動されており、
前記対象ファイルの前記基準位置は前記第1ディレクトリに設定されている、請求項又はに記載のユーザ装置。
【請求項9】
前記第1サーバ装置は前記ファイルサーバである、請求項に記載のユーザ装置。
【請求項10】
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得部と、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有し、
前記取得部は、
前記対象ファイルの暗号化に利用された暗号鍵を前記第2サーバ装置へ提供し、
前記暗号鍵から生成された前記対象ファイルの復号鍵を前記鍵情報として取得し、
前記復号部は、前記対象ファイルを前記復号鍵で復号する、ユーザ装置。
【請求項11】
コンピュータによって実行されるアクセス制御方法であって、
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定ステップと、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得ステップと、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号ステップと、を有し、
前記コンピュータは、前記第1サーバ装置ではなく、前記第2サーバ装置でもな
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていたディレクトリである基準位置に対応づけて定められており、
前記判定ステップにおいて、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する、アクセス制御方法。
【請求項12】
前記判定ステップにおいて、前記第1サーバ装置に対し、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを示す情報を送信し、
前記アクセス権限情報は、前記基準位置に対して前記対象ユーザがアクセス権限を有するか否かについて、前記第1サーバ装置が判定した結果を示す、請求項11に記載のアクセス制御方法。
【請求項13】
前記対象ファイルは、前記判定ステップが実行される前の時点において、ファイルサーバの記憶装置に設けられている第1ディレクトリから、前記コンピュータの記憶装置に設けられている第2ディレクトリにコピー又は移動されており、
前記対象ファイルの前記基準位置は前記第1ディレクトリに設定されている、請求項11又は12に記載のアクセス制御方法。
【請求項14】
前記第1サーバ装置は前記ファイルサーバである、請求項13に記載のアクセス制御方法。
【請求項15】
コンピュータによって実行されるアクセス制御方法であって、
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定ステップと、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得ステップと、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号ステップと、を有し、
前記コンピュータは、前記第1サーバ装置ではなく、前記第2サーバ装置でもなく
前記取得ステップにおいて、
前記対象ファイルの暗号化に利用された暗号鍵を前記第2サーバ装置へ提供し、
前記暗号鍵から生成された前記対象ファイルの復号鍵を前記鍵情報として取得し、
前記復号ステップにおいて、前記対象ファイルを前記復号鍵で復号する、アクセス制御方法。
【請求項16】
ユーザ装置、第1サーバ装置、及び第2サーバ装置を有するアクセス制御システムであって、
前記ユーザ装置は、
第1サーバ装置に対し、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を要求する第1リクエストを送信し、前記第1サーバ装置から取得した前記アクセス権限情報を利用して、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置に対し、前記対象ファイルの復号に利用する鍵情報を要求する第2リクエストを送信し、前記第2サーバ装置から前記鍵情報を取得する取得部と、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有し、
前記第1サーバ装置は、前記第1リクエストに応じて、前記アクセス権限情報を前記ユーザ装置へ提供し、
前記第2サーバ装置は、前記第2リクエストに応じて、前記鍵情報を前記ユーザ装置へ提供し、
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていたディレクトリである基準位置に対応づけて定められており、
前記第1リクエストは、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを含み、
前記第1サーバ装置は、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定し、当該判定の結果を示す前記アクセス権限情報を前記ユーザ装置へ提供する、アクセス制御システム。
【請求項17】
ユーザ装置、第1サーバ装置、及び第2サーバ装置を有するアクセス制御システムであって、
前記ユーザ装置は、
第1サーバ装置に対し、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を要求する第1リクエストを送信し、前記第1サーバ装置から取得した前記アクセス権限情報を利用して、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置に対し、前記対象ファイルの復号に利用する鍵情報を要求する第2リクエストを送信し、前記第2サーバ装置から前記鍵情報を取得する取得部と、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有し、
前記第1サーバ装置は、前記第1リクエストに応じて、前記アクセス権限情報を前記ユーザ装置へ提供し、
前記第2サーバ装置は、前記第2リクエストに応じて、前記鍵情報を前記ユーザ装置へ提供し、
前記第2リクエストは、前記対象ファイルの暗号化に利用された暗号鍵を含み、
前記第2サーバ装置は、前記第2リクエストに含まれる暗号鍵から前記対象ファイルの復号鍵を生成し、前記生成した復号鍵を含む前記鍵情報を前記ユーザ装置へ提供する、アクセス制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイルのアクセス制御に関する。
【背景技術】
【0002】
ネットワークを介し、複数のユーザの間でファイルを共有する技術が開発されている。そして、このようなファイル共有では、ファイルの不正利用等を防止するために、ファイルの暗号化や、アクセス権限に基づくアクセス制御などが行われている。
【0003】
このような共有ファイルの管理を実現する技術について開示する先行技術文献としては、例えば、特許文献1がある。特許文献1は、ユーザ装置によるファイルのアクセスを制御するシステムを開示している。ユーザ装置は、暗号化された共有ファイルにアクセスする際、管理サーバに対して復号鍵を要求する。この要求を受け付けた管理サーバは、連携サーバから、共有ファイルが格納されている共有フォルダのアクセス権情報を取得する。管理サーバは、復号鍵とアクセス権情報をユーザ装置に送信する。ユーザ装置は、取得したアクセス権情報に示されているアクセス権に従い、取得した復号鍵を用いて、共有ファイルを利用する。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2017/064780号
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のシステムでは、アクセス権の情報と復号鍵の取得が、管理サーバという1つのサーバを介して行われる。そのため、管理サーバに負荷が集中してしまい、管理サーバにかかる負荷が大きくなってしまう。
【0006】
本発明は上記の課題に鑑みてなされたものであり、その目的の一つは、サーバを利用してファイルを共有する環境において、1つのサーバに負荷が集中することを避ける技術を提供することである。
【課題を解決するための手段】
【0007】
本発明のユーザ装置は、第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得部と、前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有する。
【0008】
本発明のアクセス制御方法は、コンピュータによって実行される。当該アクセス制御方法は、第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定ステップと、前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得ステップと、前記取得した鍵情報を利用して前記対象ファイルを復号する復号ステップと、を有する。前記コンピュータは、前記第1サーバ装置ではなく、前記第2サーバ装置でもない。
【0009】
本発明のコンピュータ可読媒体は、コンピュータに本発明のアクセス制御方法を実行させるプログラムを格納している。
【0010】
本発明のアクセス制御システムは、ユーザ装置、第1サーバ装置、及び第2サーバ装置を有する。前記ユーザ装置は、第1サーバ装置に対し、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を要求する第1リクエストを送信し、前記第1サーバ装置から取得した前記アクセス権限情報を利用して、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置に対し、前記対象ファイルの復号に利用する鍵情報を要求する第2リクエストを送信し、前記第2サーバ装置から前記鍵情報を取得する取得部と、前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有する。
前記第1サーバ装置は、前記第1リクエストに応じて、前記アクセス権限情報を前記ユーザ装置へ提供する。
前記第2サーバ装置は、前記第2リクエストに応じて、前記鍵情報を前記ユーザ装置へ提供する。
【発明の効果】
【0011】
サーバを利用してファイルを共有する環境において、1つのサーバに負荷が集中することを避ける技術が提供される。
【図面の簡単な説明】
【0012】
図1】実施形態1のユーザ装置の動作の概要を例示する図である。
図2】実施形態1のアクセス制御システムの機能構成を例示するブロック図である。
図3】ユーザ装置を実現するコンピュータのハードウエア構成を例示するブロック図である。
図4】実施形態1のユーザ装置によって実行される処理の流れを例示するフローチャートである。
図5】基準位置に基づくアクセス制御を概念的に説明する図である。
図6】アクセス制御システムの具体的な実現例を示す図である。
図7】実現例のアクセス制御システムにおけるアクセス制御の流れを例示する図である。
【発明を実施するための形態】
【0013】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【0014】
図1は、実施形態1のユーザ装置2000の動作の概要を例示する図である。ここで、図1は、ユーザ装置2000の概要の理解を容易にするための図であり、ユーザ装置2000の動作は、図1に示したものに限定されない。
【0015】
ユーザ装置2000は、第1サーバ装置3000と第2サーバ装置4000と共に、アクセス制御システム5000を構成している。アクセス制御システム5000では、ユーザ装置2000によるファイルアクセスについて、アクセス権限に基づくアクセス制御が行われる。
【0016】
ここで、ユーザ装置2000によってアクセスされるファイルのうち、アクセス制御システム5000を利用したアクセス制御が行われるファイルを、対象ファイル10と呼ぶ。対象ファイル10が格納されている記憶装置は、ユーザ装置2000からアクセス可能な任意の記憶装置でよく、ユーザ装置2000の内部と外部のどちらに設けられていてもよい。
【0017】
また、対象ファイル10は、暗号化された状態で記憶装置に格納されている。そのため、アクセス制御システム5000では、対象ファイル10に対するアクセス制御に加え、対象ファイル10の復号も行われる。
【0018】
ユーザ装置2000は、ユーザによって利用される装置であり、対象ファイル10に対してアクセスする。ここで、ユーザ装置2000を利用するユーザを、対象ユーザ40と呼ぶ。対象ファイル10に対するアクセスは、対象ユーザ40による操作に応じて行われてもよいし、ユーザ装置2000上で動作しているソフトウエアによって自動的に行われてもよい。図1では、対象ユーザ40による操作に応じて対象ファイル10へのアクセスが行われるケースを例示している。第1サーバ装置3000は、対象ファイル10のアクセス権限に関する情報を管理する装置である。第2サーバ装置4000は、対象ファイル10を復号するために必要な情報を管理するサーバ装置である。
【0019】
ユーザ装置2000において対象ファイル10を利用する際、ユーザ装置2000は、第1サーバ装置3000にアクセスして、対象ユーザ40が対象ファイル10に対してアクセスする権限(対象ファイル10に対するアクセス権限)を有するか否かを判定する。より具体的には、ユーザ装置2000は、第1サーバ装置3000から、対象ファイル10について、アクセス権限に関する情報(以下、アクセス権限情報20)を取得し、取得したアクセス権限情報20を利用して、対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かを判定する。
【0020】
対象ユーザ40が対象ファイル10に対するアクセス権限を有する場合、ユーザ装置2000は、第2サーバ装置4000にアクセスして、対象ファイル10の復号を行う。より具体的には、ユーザ装置2000は、第2サーバ装置4000から、対象ファイル10の復号に必要な情報(以下、鍵情報30)を取得する。そして、ユーザ装置2000は、鍵情報30を利用して対象ファイル10を復号する。例えば鍵情報30には、対象ファイル10を復号するための復号鍵が含まれる。この場合、ユーザ装置2000は、鍵情報30に含まれる復号鍵で対象ファイル10を復号する。ただし、鍵情報30に含まれるデータは、復号鍵に限定されない。
【0021】
<作用効果の一例>
本実施形態のアクセス制御システム5000によれば、アクセス制御の対象であり、なおかつ暗号化が施されている対象ファイル10について、アクセス制御とファイルの復号とが、別々のサーバを利用して行われる。より具体的には、アクセス制御は第1サーバ装置3000を利用して行われ、対象ファイル10の復号は第2サーバ装置4000を利用して行われる。よって、アクセス制御と復号の双方が必要なファイルへのアクセスについて、処理負荷が一種類のサーバに集中してしまうことを防ぐことができる。
【0022】
以下、本実施形態のユーザ装置2000について、より詳細に説明する。
【0023】
<機能構成の例>
図2は、実施形態1のユーザ装置2000の機能構成を例示するブロック図である。前述した様に、ユーザ装置2000は、第1サーバ装置3000及び第2サーバ装置4000と共に、アクセス制御システム5000を構成する。ユーザ装置2000は、判定部2020、取得部2040、及び復号部2060を有する。判定部2020は、第1サーバ装置3000からアクセス権限情報20を取得して、対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かを判定する。取得部2040は、対象ユーザ40が対象ファイル10に対するアクセス権限を有する場合に、第2サーバ装置4000から、対象ファイル10についての鍵情報30を取得する。復号部2060は、鍵情報30を利用して対象ファイル10を復号する。
【0024】
<ハードウエア構成の例>
ユーザ装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、ユーザ装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0025】
図3は、ユーザ装置2000を実現するコンピュータ500のハードウエア構成を例示するブロック図である。コンピュータ500は、任意のコンピュータである。例えばコンピュータ500は、PC(Personal Computer)やサーバマシンなどといった、据え置き型のコンピュータである。その他にも例えば、コンピュータ500は、スマートフォンやタブレット端末などといった可搬型のコンピュータである。コンピュータ500は、ユーザ装置2000を実現するために設計された専用のコンピュータであってもよいし、汎用のコンピュータであってもよい。
【0026】
例えば、コンピュータ500に対して所定のアプリケーションをインストールすることにより、コンピュータ500で、ユーザ装置2000の各機能が実現される。上記アプリケーションは、ユーザ装置2000の機能構成部を実現するためのプログラムで構成される。
【0027】
コンピュータ500は、バス502、プロセッサ504、メモリ506、ストレージデバイス508、入出力インタフェース510、及びネットワークインタフェース512を有する。バス502は、プロセッサ504、メモリ506、ストレージデバイス508、入出力インタフェース510、及びネットワークインタフェース512が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ504などを互いに接続する方法は、バス接続に限定されない。
【0028】
プロセッサ504は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ506は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス508は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
【0029】
入出力インタフェース510は、コンピュータ500と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース510には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
【0030】
ネットワークインタフェース512は、コンピュータ500をネットワークに接続するためのインタフェースである。このネットワークは、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。
【0031】
ストレージデバイス508は、ユーザ装置2000の各機能構成部を実現するプログラム(前述したアプリケーションを実現するプログラム)を記憶している。プロセッサ504は、このプログラムをメモリ506に読み出して実行することで、ユーザ装置2000の各機能構成部を実現する。また、ストレージデバイス508には、対象ファイル10が格納されていてもよい。
【0032】
ユーザ装置2000は、1つのコンピュータ500で実現されてもよいし、複数のコンピュータ500で実現されてもよい。後者の場合において、各コンピュータ500の構成は同一である必要はなく、それぞれ異なるものとすることができる。
【0033】
ユーザ装置2000と同様に、第1サーバ装置3000と第2サーバ装置4000も、種々のコンピュータによって実現される。第1サーバ装置3000を実現するコンピュータや、第2サーバ装置4000を実現するコンピュータは、例えばユーザ装置2000を実現するコンピュータ500と同様に、図3に示すハードウエア構成を有する。ただし、ユーザ装置2000、第1サーバ装置3000、及び第2サーバ装置4000を実現するコンピュータのハードウエア構成は、互いに異なっていてもよい。また、第1サーバ装置3000と第2サーバ装置4000はそれぞれ、複数のコンピュータで実現されてもよい。
【0034】
ユーザ装置2000、第1サーバ装置3000、及び第2サーバ装置4000を実現するコンピュータは、ネットワークを介して通信可能に接続されている。これらを互いに接続するネットワークは、LAN であってもよいし、WAN であってもよい。また、これら3つのうちの2つが互いに LAN で接続されており、残りの1つとは WAN を介して接続されるようにしてもよい。例えば、第1サーバ装置3000と第2サーバ装置4000が同一の LAN 内に設けられ、ユーザ装置2000が WAN を介して第1サーバ装置3000及び第2サーバ装置4000と接続される。
【0035】
<処理の流れ>
図4は、実施形態1のユーザ装置2000によって実行される処理の流れを例示するフローチャートである。判定部2020は、対象ファイル10に対するアクセスを検出する(S102)。判定部2020は、第1サーバ装置3000からアクセス権限情報20を取得する(S104)。判定部2020は、アクセス権限情報20を利用して、対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かを判定する(S106)。対象ユーザ40が対象ファイル10に対するアクセス権限を有する場合(S106:YES)、取得部2040は、第2サーバ装置4000から鍵情報30を取得する(S108)。復号部2060は、鍵情報30を利用して対象ファイル10を復号する(S110)。
【0036】
なお、対象ユーザ40が対象ファイル10に対するアクセス権限を有さないと判定された場合(S106:NO)に行われる処理は任意である。ユーザ操作に応じて対象ファイル10へのアクセスが行われた場合、例えばユーザ装置2000は、対象ユーザ40によって閲覧されるディスプレイ装置などに、アクセス権限が無いため対象ファイル10へアクセスできない旨のエラーメッセージなどを出力する。また、ユーザ装置2000上で動作しているソフトウエアによって対象ファイル10に対するアクセスが行われた場合、例えばユーザ装置2000は、上記ソフトウエアに対して、対象ファイル10にアクセスする権限がない旨のエラーを通知する。
【0037】
<対象ファイル10に対するアクセスの検出:S102>
対象ファイル10に対するアクセスが行われたら、対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かについての判定が行われる。そのため、判定部2020は、対象ファイル10に対するアクセスを検出する(S102)。ここで、特定の制御の対象となっているファイルへのアクセスを検出する技術には、既存の種々の技術を利用することができる。
【0038】
例えばユーザ装置2000は、任意のファイルへのアクセスを検出し、そのファイルが対象ファイル10であるか否かを判定する。この判定は、例えば、アクセスされたファイルのメタデータを参照することで実現できる。例えば、対象ファイル10のメタデータ(すなわち、アクセス制御システム5000によってアクセス制御が行われるファイルのメタデータ)には、特定のフラグを設けておく。判定部2020は、ファイルに対するアクセスが検出されたら、そのファイルのメタデータに上記フラグが含まれているか否かを判定する。アクセスされたファイルのメタデータに上記フラグが含まれていたら、判定部2020は、アクセスされたファイルが対象ファイル10であると判定する。一方、アクセスされたファイルのメタデータに上記フラグが含まれていなかったら、判定部2020は、アクセスされたファイルが対象ファイル10でないと判定する。
【0039】
また、上述したフラグ以外のメタデータを用いて、アクセスされたファイルが対象ファイル10であるか否かを判定してもよい。例えば、対象ファイル10のメタデータに後述する基準位置を示す情報や、対象ファイル10の暗号化に利用された暗号鍵などを含めるようにする。こうすることで、これらの情報を前述したフラグと同様に利用することができる。
【0040】
その他にも例えば、対象ファイル10を格納できるディレクトリが、特定のディレクトリ(以下、対象ディレクトリ)のみに限定されるようにしておく。この場合、判定部2020は、ファイルへのアクセスが検出されたら、そのファイルが対象ディレクトリに格納されているか否かを判定する。アクセスされたファイルが対象ディレクトリに格納されている場合、判定部2020は、そのファイルが対象ファイル10であると判定する。一方、アクセスされたファイルが対象ディレクトリに格納されていない場合、判定部2020は、そのファイルが対象ファイル10でないと判定する。なお、対象ディレクトリは複数あってもよい。
【0041】
対象ディレクトリを定義した情報は、例えば、ユーザ装置2000からアクセス可能な記憶装置に格納しておく。その他にも例えば、ディレクトリのメタデータに、対象ディレクトリであることを表すフラグを設けてもよい。
【0042】
<アクセス権限について>
ここで、第1サーバ装置3000によって管理されるアクセス権限について説明する。アクセス権限は、ユーザごとに設定されてもよいし、ユーザのグループごとに設定されてもよい。また、アクセス権限は、ファイルに対する種々の操作それぞれについて個別に設定されてもよいし、全ての操作について一括で設定されてもよい。
【0043】
アクセス権限は、ファイルごとに設定されてもよいし、ファイルのグループごとに設定されてもよい。後者の場合、例えば、ファイルが格納されている位置(ディレクトリ)に対してアクセス権限が設定される。すなわち、同一のディレクトリに格納されている対象ファイル10に対し、同一のアクセス権限が設定される。なお、アクセス権限が設定されたディレクトリの中にサブディレクトリが格納されている場合、そのサブディレクトリの中に格納されているファイルやサブディレクトリに対しても、同じアクセス権限が再帰的に設定されることが好適である。
【0044】
なお、あるファイルについて、当該ファイルに対して個別に設定されたアクセス権限と、当該ファイルが属するグループに対して設定されたアクセス権限の双方が存在する場合の扱い方については、任意である。例えば、それら2種類のいずれか一方のみが適用されるようにする。
【0045】
なお、ディレクトリに対してアクセス権限が設定される場合、あるファイルに対するアクセス権限は、そのファイルが現在格納されているディレクトリではなく、そのファイルが過去に格納されていたディレクトリ(以下、基準位置)に対して設定されたアクセス権限であってもよい。例えば、ファイルサーバに格納されている対象ファイル10が、ユーザ装置2000へコピーされたとする。そしてその後に、ユーザ装置2000が、ユーザ装置2000に格納されている対象ファイル10に対してアクセスしたとする。この場合、対象ファイル10の基準位置として、ファイルサーバ上の格納位置を設定することが考えられる。このような状況において、基準位置に対して設定されたアクセス権限を利用すると、対象ファイル10がユーザ装置2000へコピーされた後も、ファイルサーバ上の格納位置に対して設定されたアクセス権限に基づくアクセス制御を実現できる。
【0046】
図5は、基準位置に基づくアクセス制御を概念的に説明する図である。図5において、ファイルサーバ50に設けられているディレクトリ /dir1/dir2/dir3 には、ファイル f1 が格納されている。そして、ファイル f1 の基準位置として、ファイルサーバ50の /dir1/dir2/dir3 が設定されている。
【0047】
さらに、図5において、ファイル f1 は、ファイルサーバ50の /dir1/dir2/dir3 から、ユーザ装置2000の /dir4/dir5 へコピーされている。この場合において、ユーザ装置2000にコピーされた対象ファイル10へアクセスすると、現在位置である「ユーザ装置2000の /dir4/dir5」ではなく、基準位置である「ファイルサーバ50の /dir1/dir2/dir3」に対して設定されたアクセス権限に基づいて、対象ファイル10へのアクセスが制御される。そのため例えば、ユーザ装置2000を操作している対象ユーザ40が、/dir4/dir5 に格納されているファイルへのアクセス権限を有していたとしても、/dir1/dir2/dir3 に対するアクセス権限を有していなければ、/dir4/dir5 に格納されている対象ファイル10に対してアクセスすることができない。
【0048】
また、ファイルサーバ50においてファイル f1 が削除されたとする。この場合、ユーザ装置2000にコピーされたファイル f1 は、ファイル f1 の基準位置に対するアクセス権限を有している対象ユーザ40であってもアクセスできないようにしてもよい。この動作を実現する場合、ユーザ装置2000にコピーされたファイルが、ファイルサーバ50上のどのファイルに該当するのかを把握できる必要がある。当該把握を実現する方法には、既存の種々の方法を採用できる。例えば、ユーザ装置2000にコピーされたファイルのメタデータに、当該ファイルの元データであるファイルサーバ50上のファイルのパスを含めておく。また、対象ユーザ40が対象ファイル10に対するアクセス権限を有しているか否かを判定する際には、対象ファイル10の元データであるファイルサーバ50上のファイルが削除されていないかどうかも判定し、削除されている場合には、アクセス権限を有しないと判定するようにする。
【0049】
なお、対象ファイル10の基準位置は、更新可能であってもよい。例えば、特定のユーザに対し、対象ファイル10の基準位置を変更する権限を与えるようにする。この場合において、当該ユーザにより、ファイルサーバ50に格納されている対象ファイル10が、ファイルサーバ50内の別のディレクトリに移動されたとする。この際、例えばファイルサーバ50は、移動された対象ファイル10について、基準位置を移動先のディレクトリに変更するか否かを、ユーザに選択させる。基準位置を変更することが選択された場合、第1サーバ装置3000は、当該移動先のディレクトリを、移動された対象ファイル10の新たな基準位置に設定する。一方、基準位置を変更しないことが選択された場合には、基準位置の変更が行われない。なお、第1サーバ装置3000は、ユーザに選択を求めなくてもよい。この場合、基準位置を変更する権限を有するユーザによって対象ファイル10が移動された場合、自動的に、その対象ファイル10の基準位置が変更される。
【0050】
なお、通常の移動とは別に、基準位置の変更を伴う移動の操作ができるようにしてもよい。この場合、対象ファイル10について通常の移動の操作が行われた場合には、当該対象ファイル10の基準位置は変更されない。一方、基準位置の変更を伴う移動の操作が行われた場合には、対象ファイル10の基準位置が、移動先のディレクトリに変更される。
【0051】
なお、通常の移動と基準位置の変更を伴う移動という2つの移動操作を可能にする方法には、任意の方法を採用できる。例えば、マウスの左ボタンで行われた移動操作は通常の移動操作として扱い、マウスの右ボタンで行われた移動操作は基準位置の変更を伴う移動操作として扱うといった方法が考えられる。
【0052】
なお、上述の説明ではファイルの移動に応じて基準位置を更新するケースについて説明したが、同様の方法で、ファイルのコピーに応じて基準位置が更新されるようにしてもよい。この場合、同一内容の2つのファイルに対し、それぞれ異なる基準位置が設定されることとなる。すなわち、コピー元のファイルについては、基準位置が変更されず、コピーによって生成されたファイルについては、コピー先のディレクトリが基準位置として設定される。
【0053】
<アクセス権限の判定:S104、S106>
判定部2020は、アクセス権限情報20を取得する(S104)。より具体的には、判定部2020は、第1サーバ装置3000に対して、アクセス権限情報20を要求するリクエストを送信する。そして、判定部2020は、上記リクエストに応じて第1サーバ装置3000から送信されたレスポンスとして、アクセス権限情報20を受信する。そして、判定部2020は、アクセス権限情報20を利用して、対象ユーザ40がアクセス権限を有するか否かを判定する。
【0054】
ここで、アクセス権限情報20は、1)対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かを判定した結果を示す情報であってもよいし、2)対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かを判定するために利用可能な情報であってもよい。以下、それぞれのケースについて具体的に説明する。
【0055】
<<1)のケース>>
このケースにおいて、第1サーバ装置3000は、判定部2020から必要な情報を取得して、対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かを判定する。このようにアクセス権限の判定が第1サーバ装置3000によって行われるようにすることで、ユーザ装置2000によって扱われるアクセス権限に関する情報を少なくすることができる。
【0056】
例えば、第1サーバ装置3000からアクセス可能な記憶装置(以下、第1記憶装置)に、ユーザの識別情報と、その識別情報によって特定されるユーザがアクセス可能なファイルやディレクトリの識別情報(例えばパス)と、それらのファイルやディレクトリについてそのユーザが許可されているアクセスの種類(リード、ライト、実行など)とを対応づけた情報が格納されている。なお、ユーザの代わりにユーザグループが利用されてもよい。
【0057】
判定部2020は、第1サーバ装置3000に対し、対象ファイル10の識別情報、対象ユーザ40の識別情報、及び検出したアクセスの種類を示すリクエストを送信する。第1サーバ装置3000は、上記リクエストを受信し、そのリクエストに示されている対象ファイル10の識別情報、対象ユーザ40の識別情報、及びアクセスの種類を用いて、アクセス権限の判定を行う。例えば第1サーバ装置3000は、リクエストに示されている「対象ユーザ40の識別情報、対象ファイル10の識別情報、アクセスの種類」という対応付けと、第1記憶装置に格納されている「ユーザの識別情報、ファイルやディレクトリの識別情報、許可されているアクセスの種類」という対応付けとの比較を行うことで、対象ユーザ40による対象ファイル10に対するアクセスが許可されているか否かを判定する。
【0058】
上記比較を実現する具体的な方法は任意である。例えば第1サーバ装置3000は、リクエストに示されている「対象ユーザ40の識別情報、対象ファイル10の識別情報」の組み合わせで第1記憶装置に格納されている情報を検索することにより、対象ユーザ40が対象ファイル10に対して許可されているアクセスの種類を特定する。そして、第1サーバ装置3000は、対象ユーザ40が対象ファイル10に対して許可されているアクセスの種類の中に、リクエストに示されているアクセスの種類が含まれているか否かを判定する。許可されているアクセスの種類の中に、リクエストに示されているアクセスの種類が含まれている場合、第1サーバ装置3000は、「対象ユーザ40はアクセス権限を有する」と判定する。一方、許可されているアクセスの種類の中に、リクエストに示されているアクセスの種類が含まれていない場合、第1サーバ装置3000は、「対象ユーザ40はアクセス権限を有さない」と判定する。そして、第1サーバ装置3000は、判定の結果を示すアクセス権限情報20を生成し、判定部2020へ送信する。
【0059】
判定部2020は、受信したアクセス権限情報20に示されている判定結果が、「対象ユーザ40はアクセス権限を有する」という旨の判定結果であるか否かを判定する。「対象ユーザ40はアクセス権限を有する」という旨の判定結果が示されている場合、判定部2020は、「対象ユーザ40はアクセス権限を有する」と判定する。一方、「対象ユーザ40はアクセス権限を有する」という旨の判定結果が示されていない場合、判定部2020は、「対象ユーザ40はアクセス権限を有さない」と判定する。
【0060】
なお、前述したように、アクセス権限の判定に基準位置を利用するケースもある。この場合、前述した方法において、対象ファイル10の識別情報の代わりに、基準位置を利用する。例えば判定部2020は、第1サーバ装置3000に対し、「対象ユーザ40の識別情報、基準位置、アクセスの種類」という組み合わせを含むリクエストを送信する。第1サーバ装置3000は、リクエストに示されている「対象ユーザ40の識別情報、基準位置」という組み合わせで第1記憶装置を検索することにより、対象ユーザ40が基準位置に対して許可されているアクセスの種類を特定する。対象ユーザ40が基準位置に対して許可されているアクセスの種類の中に、リクエストに示されているアクセスの種類が含まれていれば、「対象ユーザ40はアクセス権限を有する」という判定結果となる。一方、対象ユーザ40が基準位置に対して許可されているアクセスの種類の中に、リクエストに示されているアクセスの種類が含まれていない場合、「対象ユーザ40はアクセス権限を有さない」という判定結果となる。
【0061】
<<2)のケース>>
このケースにおいて、例えばアクセス権限情報20は、対象ユーザ40がアクセス可能なファイルやディレクトリを示す情報などである。例えば判定部2020は、第1サーバ装置3000に対し、対象ユーザ40の識別情報を示すリクエストを送信する。第1サーバ装置3000は、リクエストに示されている対象ユーザ40の識別情報で第1記憶装置を検索することで、「対象ユーザ40がアクセス可能なファイル又はディレクトリ、当該ファイル又はディレクトリに対して許可されているアクセスの種類」という組み合わせを1つ以上特定する。そして、第1サーバ装置3000は、アクセス権限情報20として、上記特定した組み合わせを示す情報をユーザ装置2000へ送信する。
【0062】
ユーザ装置2000は、「対象ファイル10の識別情報、対象ファイル10に対して行われたアクセスの種類」という組み合わせと、アクセス権限情報20とを比較することで、対象ファイル10に対して行われたアクセスが対象ユーザ40に対して許可されているか否かを判定する。例えば判定部2020は、アクセス権限情報20に示されているファイル又はディレクトリの識別情報の中に、対象ファイル10の識別情報に対応するものがあるか否かを判定する。ここで、「ディレクトリの識別情報が対象ファイル10の識別情報に対応する」とは、対象ファイル10が当該ディレクトリの配下に格納されていることを意味する。
【0063】
アクセス権限情報20に示されているファイル又はディレクトリの識別情報の中に、対象ファイル10の識別情報に対応するものがない場合、判定部2020は、「対象ユーザ40はアクセス権限を有さない」と判定する。一方、アクセス権限情報20に示されているファイル又はディレクトリの識別情報の中に、対象ファイル10の識別情報に対応するものがある場合、判定部2020は、当該ファイル又はディレクトリに対応づけられているアクセスの種類(すなわち、許可されているアクセスの種類)に、対象ファイル10に対して行われたアクセスの種類が含まれているか否かを判定する。含まれている場合、判定部2020は、「対象ユーザ40はアクセス権限を有する」と判定する。一方、含まれていない場合、判定部2020は、「対象ユーザ40はアクセス権限を有さない」と判定する。
【0064】
その他にも例えば、判定部2020は、第1サーバ装置3000に対し、対象ファイル10の識別情報を示すリクエストを送信してもよい。この場合、第1サーバ装置3000は、リクエストに示されている対象ファイル10の識別情報で第1記憶装置を検索することで、「ユーザの識別情報、そのユーザが対象ファイル10に対して許可されているアクセスの種類」という組み合わせを1つ以上特定する。すなわち、対象ファイル10に対して何らかのアクセスが許可されている各ユーザについて、ユーザの識別情報と、そのユーザが許可されているアクセスの種類との対応づけが得られる。
【0065】
第1サーバ装置3000は、アクセス権限情報20として、上記特定した組み合わせを示す情報をユーザ装置2000へ送信する。ユーザ装置2000は、「対象ユーザ40の識別情報、対象ファイル10に対して行われたアクセスの種類」という組み合わせと、アクセス権限情報20とを比較することで、対象ファイル10に対して行われたアクセスが対象ユーザ40に対して許可されているか否かを判定する。
【0066】
なお、2)のケースにおいても、前述したように、アクセス権限の判定に基準位置を利用することがありうる。この場合、前述した方法において、対象ファイル10の識別情報の代わりに、基準位置を利用する。例えば判定部2020が第1サーバ装置3000に対して対象ユーザ40の識別情報を送信することで、「対象ユーザ40がアクセス可能なファイル又はディレクトリ、許可されているアクセスの種類」という組み合わせを示すアクセス権限情報20を取得するとする。この場合、アクセス権限情報20の中に示されているファイル又はディレクトリの識別情報の中に基準位置に対応するものがあり、なおかつ、そのファイル又はディレクトリの識別情報に対応づけられているアクセスの種類の中に、対象ファイル10に対して行われたアクセスの種類が含まれていれば、「対象ユーザ40はアクセス権限を有する」と判定される。一方、アクセス権限情報20の中に示されているファイル又はディレクトリの識別情報の中に基準位置に対応するものがない場合や、基準位置に対応するファイル又はディレクトリに対応づけられているアクセスの種類の中に、対象ファイル10に対して行われたアクセスの種類が含まれていない場合には、「対象ユーザ40はアクセス権限を有さない」と判定される。
【0067】
<対象ファイル10の復号:S108、S110>
対象ユーザ40がアクセス権限を有すると判定された場合、取得部2040は、第2サーバ装置4000から鍵情報30を取得する(S108)。そして、復号部2060は、鍵情報30を利用して対象ファイル10を復号する。
【0068】
鍵情報30は、1)対象ファイル10を復号するために利用する復号鍵であってもよいし、2)当該復号鍵の生成に利用できる情報であってもよい。以下、それぞれの場合について具体的に例示する。
【0069】
<<1)のケース>>
このケースにおいて、第2サーバ装置4000は、取得部2040からのリクエストに応じて、ユーザ装置2000に対して、対象ファイル10を復号するための復号鍵を含む鍵情報30を送信する。例えば対象ファイル10を復号するための復号鍵が、対象ファイル10の暗号化に利用された暗号鍵から生成可能であるとする。この場合、取得部2040は、対象ファイル10の暗号化に利用された暗号鍵を含むリクエストを、第2サーバ装置4000へ送信する。第2サーバ装置4000は、リクエストに含まれる暗号鍵から、復号鍵を生成する。そして、第2サーバ装置4000は、生成した復号鍵を含む鍵情報30を生成し、ユーザ装置2000へ送信する。
【0070】
対象ファイル10の暗号化に利用された暗号鍵をユーザ装置2000が取得する方法は任意である。例えば対象ファイル10の暗号化に利用された暗号鍵は、その対象ファイル10と共に、ユーザ装置2000からアクセス可能な記憶装置に格納されている(例えば、対象ファイル10のメタデータの1つとして格納されている)。
【0071】
なお、復号鍵の生成に利用されるデータは暗号鍵に限定されず、任意のデータとすることができる。
【0072】
また、暗号鍵に対応する復号鍵は、第2サーバ装置4000からアクセス可能な記憶装置に予め格納されていてもよい。この場合、第2サーバ装置4000は、リクエストに含まれる暗号鍵で上記記憶装置を検索することによって復号鍵を取得し、その復号鍵を含む鍵情報30をユーザ装置2000へ送信する。
【0073】
復号部2060は、上述した種々の方法で取得した鍵情報30に含まれる復号鍵で、対象ファイル10を復号する。なお、暗号化されたファイルを復号鍵で復号する技術には、既存の技術を利用することができる。
【0074】
<<2)のケース>>
このケースでは、復号部2060が、鍵情報30を利用して復号鍵を得る機能を有する。例えば前述したように、暗号鍵から復号鍵が生成できるとする。例えばこの場合、第2サーバ装置4000からアクセス可能な記憶装置に、対象ファイル10の識別情報と、対象ファイル10の暗号化に利用された暗号鍵とを対応づけて格納しておく。
【0075】
取得部2040は、第2サーバ装置4000に対し、対象ファイル10の識別情報を示すリクエストを送信する。第2サーバ装置4000は、受信した対象ファイル10の識別情報に対応する暗号鍵を記憶装置から取得して、その暗号鍵を含む鍵情報30を生成する。そして、第2サーバ装置4000は、生成した鍵情報30をユーザ装置2000へ送信する。
【0076】
復号部2060は、鍵情報30に含まれる暗号鍵から、復号鍵を生成する。そして、復号部2060は、生成した復号鍵で対象ファイル10を復号する。
【0077】
<復号後の処理>
ユーザ装置2000は、S102で検出された種類のアクセスを、復号された対象ファイル10に対して行うことができる。例えば対象ファイル10に対して行われた操作がリードである場合、ユーザ装置2000は、復号された対象ファイル10の中身を読み出すことができる。その他にも例えば、対象ファイル10に対して行われた操作がライトである場合、ユーザ装置2000は、復号された対象ファイル10の内容に変更を加えることができる。
【0078】
<アクセス制御システム5000の具体的な実現例>
ここで、アクセス制御システム5000の理解をさらに容易にするため、アクセス制御システム5000の具体的な実現例について説明する。ただし、ここで説明する実現例は、アクセス制御システム5000の具体的な実現形態の一例であり、アクセス制御システム5000の具体的な実現方法はここで説明する例に限定されない。
【0079】
図6は、アクセス制御システム5000の具体的な実現例を示す図である。本実現例では、第1サーバ装置3000及び第2サーバ装置4000として機能する装置としてそれぞれ、ファイルサーバ50と管理サーバ60が設けられている。ここで示す例において、対象ファイル10に対するアクセス制御は、対象ファイル10に対して設定された基準位置に基づいて行われる。また、対象ファイル10の復号鍵の生成は、対象ファイル10の暗号化に利用された暗号鍵を用いて行われる。
【0080】
ファイルサーバ50は、ファイルのアップロードを受け付ける。ファイルサーバ50に対してアップロードされたファイルは、アクセス制御システム5000によるアクセス制御の対象となる(すなわち、対象ファイル10として扱われる)。例えば対象ファイル10は、ユーザ装置2000からアップロードされる。
【0081】
ファイルサーバ50に対してアップロードされた対象ファイル10は記憶装置52に格納される。ただし、記憶装置52に格納される対象ファイル10は、管理サーバ60によって暗号化される。例えば、管理サーバ60は、ユーザ装置2000からファイルサーバ50に対してアップロードされた対象ファイル10を取得し、その対象ファイル10を暗号化する。この際、管理サーバ60は、ファイルのメタデータに暗号鍵を加える。管理サーバ60は、暗号化した対象ファイル10をファイルサーバ50へ送信する。
【0082】
ファイルサーバ50は、管理サーバ60から受信した対象ファイル10を記憶装置52に格納する。ここで、対象ファイル10を格納すべきディレクトリは、対象ファイル10をアップロードしたユーザ装置2000によって指定される。ファイルサーバ50は、記憶装置52に格納する対象ファイル10のメタデータに、基準位置を表すデータを加える。この際の基準位置は、対象ファイル10が格納されるディレクトリのパスを表す。
【0083】
ユーザ装置2000は、ファイルサーバ50によって管理されている(すなわち、記憶装置52に格納されている)対象ファイル10に対してアクセスすることができる。また、ユーザ装置2000は、ファイルサーバ50によって管理されている対象ファイル10をダウンロードして、ユーザ装置2000からアクセス可能な記憶装置70に格納することもできる。ただし、前述したように、アクセス制御は基準位置に基づいて行われるため、ダウンロードした対象ファイル10についても、基準位置に基づくアクセス制御が可能となる。
【0084】
例えばアクセス制御は、以下の流れで行われる。図7は、実現例のアクセス制御システム5000におけるアクセス制御の流れを例示する図である。ユーザ装置2000は、対象ファイル10に対するアクセスを検出する(S202)。ユーザ装置2000は、「対象ユーザ40の識別情報、対象ファイル10のメタデータに格納されている基準位置、検出されたアクセスの種類」を示すリクエストをファイルサーバ50へ送信する(S204)。
【0085】
ファイルサーバ50は、リクエストに応じて、対象ユーザ40が対象ファイル10に対するアクセス権限を有するか否かを判定する(S206)。ファイルサーバ50は、その判定結果を示すアクセス権限情報20をユーザ装置2000へ送信する(S208)。ここで、記憶装置52には、「ユーザの識別情報、ファイルやディレクトリの識別情報、許可されているアクセスの種類」という対応付けが予め格納されている。ファイルサーバ50は、ユーザ装置2000から受信したリクエストと、記憶装置52に格納されている上記対応付けとを比較することで、対象ユーザ40がアクセス権限を有するか否かを判定する。具体的な判定の方法については前述した通りである。
【0086】
ユーザ装置2000は、ファイルサーバ50から受信したアクセス権限情報20を用いて、対象ファイル10がアクセス権限を有するか否かを判定する(S210)。対象ファイル10がアクセス権限を有さない場合(S210:NO)、ユーザ装置2000は、エラーの通知を行う(S212)。一方、対象ファイル10がアクセス権限を有する場合(S210:YES)、ユーザ装置2000は、管理サーバ60に対し、対象ファイル10のメタデータに格納されている暗号鍵を含むリクエストを送信する(S214)。
【0087】
管理サーバ60は、ユーザ装置2000から受信したリクエストに含まれる暗号鍵から、復号鍵を生成する(S216)。そして、管理サーバ60は、生成した復号鍵を含む鍵情報30をユーザ装置2000へ送信する(S218)。ユーザ装置2000は、受信した鍵情報30を利用して、対象ファイル10を復号する(S220)。
【0088】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0089】
なお、上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに提供することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM、CD-R、CD-R/W、半導体メモリ(例えば、マスク ROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに提供されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0090】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
コンピュータに、
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定ステップと、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得ステップと、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号ステップと、を実行させ、
前記コンピュータは、前記第1サーバ装置ではなく、前記第2サーバ装置でもない、プログラム。
(付記2)
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていた位置である基準位置に対応づけて定められており、
前記判定ステップにおいて、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する、付記1に記載のプログラム。
(付記3)
前記判定ステップにおいて、前記第1サーバ装置に対し、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを示す情報を送信し、
前記アクセス権限情報は、前記基準位置に対して前記対象ユーザがアクセス権限を有するか否かについて、前記第1サーバ装置が判定した結果を示す、付記2に記載のプログラム。
(付記4)
前記対象ファイルは、前記判定ステップが実行される前の時点において、ファイルサーバの記憶装置に設けられている第1ディレクトリから、前記コンピュータの記憶装置に設けられている第2ディレクトリにコピー又は移動されており、
前記対象ファイルの前記基準位置は前記第1ディレクトリに設定されている、付記2又は3に記載のプログラム。
(付記5)
前記第1サーバ装置は前記ファイルサーバである、付記4に記載のプログラム。
(付記6)
前記取得ステップにおいて、
前記対象ファイルの暗号化に利用された暗号鍵を前記第2サーバ装置へ提供し、
前記暗号鍵から生成された前記対象ファイルの復号鍵を前記鍵情報として取得し、
前記復号ステップにおいて、前記対象ファイルを前記復号鍵で復号する、付記1から5いずれか一項に記載のプログラム。
(付記7)
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得部と、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有するユーザ装置。
(付記8)
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていた位置である基準位置に対応づけて定められており、
前記判定部は、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する、付記7に記載のユーザ装置。
(付記9)
前記判定部は、前記第1サーバ装置に対し、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを示す情報を送信し、
前記アクセス権限情報は、前記基準位置に対して前記対象ユーザがアクセス権限を有するか否かについて、前記第1サーバ装置が判定した結果を示す、付記8に記載のユーザ装置。
(付記10)
前記対象ファイルは、前記判定部による判定が実行される前の時点において、ファイルサーバの記憶装置に設けられている第1ディレクトリから、当該ユーザ装置の記憶装置に設けられている第2ディレクトリにコピー又は移動されており、
前記対象ファイルの前記基準位置は前記第1ディレクトリに設定されている、付記8又は9に記載のユーザ装置。
(付記11)
前記第1サーバ装置は前記ファイルサーバである、付記10に記載のユーザ装置。
(付記12)
前記取得部は、
前記対象ファイルの暗号化に利用された暗号鍵を前記第2サーバ装置へ提供し、
前記暗号鍵から生成された前記対象ファイルの復号鍵を前記鍵情報として取得し、
前記復号部は、前記対象ファイルを前記復号鍵で復号する、付記7から11いずれか一項に記載のユーザ装置。
(付記13)
コンピュータによって実行されるアクセス制御方法であって、
第1サーバ装置から、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を取得することで、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定ステップと、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置から前記対象ファイルの復号に利用する鍵情報を取得する取得ステップと、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号ステップと、を有し、
前記コンピュータは、前記第1サーバ装置ではなく、前記第2サーバ装置でもない、アクセス制御方法。
(付記14)
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていた位置である基準位置に対応づけて定められており、
前記判定ステップにおいて、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する、付記13に記載のアクセス制御方法。
(付記15)
前記判定ステップにおいて、前記第1サーバ装置に対し、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを示す情報を送信し、
前記アクセス権限情報は、前記基準位置に対して前記対象ユーザがアクセス権限を有するか否かについて、前記第1サーバ装置が判定した結果を示す、付記14に記載のアクセス制御方法。
(付記16)
前記対象ファイルは、前記判定ステップが実行される前の時点において、ファイルサーバの記憶装置に設けられている第1ディレクトリから、前記コンピュータの記憶装置に設けられている第2ディレクトリにコピー又は移動されており、
前記対象ファイルの前記基準位置は前記第1ディレクトリに設定されている、付記14又は15に記載のアクセス制御方法。
(付記17)
前記第1サーバ装置は前記ファイルサーバである、付記16に記載のアクセス制御方法。
(付記18)
前記取得ステップにおいて、
前記対象ファイルの暗号化に利用された暗号鍵を前記第2サーバ装置へ提供し、
前記暗号鍵から生成された前記対象ファイルの復号鍵を前記鍵情報として取得し、
前記復号ステップにおいて、前記対象ファイルを前記復号鍵で復号する、付記13から17いずれか一項に記載のアクセス制御方法。
(付記19)
ユーザ装置、第1サーバ装置、及び第2サーバ装置を有するアクセス制御システムであって、
前記ユーザ装置は、
第1サーバ装置に対し、暗号化されている対象ファイルについて、対象ユーザのアクセス権限に関するアクセス権限情報を要求する第1リクエストを送信し、前記第1サーバ装置から取得した前記アクセス権限情報を利用して、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定する判定部と、
前記対象ユーザが前記対象ファイルに対するアクセス権限を有すると判定された場合に、第2サーバ装置に対し、前記対象ファイルの復号に利用する鍵情報を要求する第2リクエストを送信し、前記第2サーバ装置から前記鍵情報を取得する取得部と、
前記取得した鍵情報を利用して前記対象ファイルを復号する復号部と、を有し、
前記第1サーバ装置は、前記第1リクエストに応じて、前記アクセス権限情報を前記ユーザ装置へ提供し、
前記第2サーバ装置は、前記第2リクエストに応じて、前記鍵情報を前記ユーザ装置へ提供する、アクセス制御システム。
(付記20)
前記対象ファイルに対する前記対象ユーザのアクセス権限は、過去に前記対象ファイルが格納されていた位置である基準位置に対応づけて定められており、
前記第1リクエストは、前記対象ユーザの識別情報と、前記対象ファイルの前記基準位置とを含み、
前記第1サーバ装置は、前記対象ファイルの前記基準位置に対応づけられているアクセス権限に基づいて、前記対象ユーザが前記対象ファイルに対するアクセス権限を有するか否かを判定し、当該判定の結果を示す前記アクセス権限情報を前記ユーザ装置へ提供する、付記19に記載のアクセス制御システム。
(付記21)
前記第2リクエストは、前記対象ファイルの暗号化に利用された暗号鍵を含み、
前記第2サーバ装置は、前記第2リクエストに含まれる暗号鍵から前記対象ファイルの復号鍵を生成し、前記生成した復号鍵を含む前記鍵情報を前記ユーザ装置へ提供する、付記19又は20に記載のアクセス制御システム。
【符号の説明】
【0091】
10 対象ファイル
20 アクセス権限情報
30 鍵情報
40 対象ユーザ
50 ファイルサーバ
52 記憶装置
60 管理サーバ
70 記憶装置
500 コンピュータ
502 バス
504 プロセッサ
506 メモリ
508 ストレージデバイス
510 入出力インタフェース
512 ネットワークインタフェース
2000 ユーザ装置
2020 判定部
2040 取得部
2060 復号部
3000 第1サーバ装置
4000 第2サーバ装置
5000 アクセス制御システム
図1
図2
図3
図4
図5
図6
図7