(57)【要約】【課題】オフライン時のデータアクセス制御を、クライアントの状況や状態を反映させて行うこと。【解決手段】サーバ１０は、データ及びコンテキストポリシを格納するデータ格納部１１と、コンテキストポリシ及びコンテキスト情報に基づきデータアクセス可否を判定するアクセス可否判定部１２と、データアクセス要求及びコンテキスト情報を受信すると、アクセス可と判定されたデータ及びコンテキストポリシをクライアント２０に提供するデータ提供部１３とを含む。クライアント２０は、コンテキスト情報収集部２１と、サーバ１０にデータアクセス要求及びコンテキスト情報を送信し、提供されたデータ及びコンテキストポリシをデータ保存部２３に保存するオンライン時データアクセス部２２と、オフライン時に、保存したコンテキストポリシ及びコンテキスト情報に基づき、保存したデータへのアクセス可否を判定するオフライン時データアクセス部２４とを含む。【選択図】図１
2017078999.tif 000002
【特許請求の範囲】
【請求項１】
データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納するデータ格納部と、
前記データに関連付けられたコンテキストポリシおよび前記クライアントのコンテキストを表すコンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定するアクセス可否判定部と、
前記クライアントから、前記データに対するアクセス要求および前記コンテキスト情報を受信すると、前記データについて前記アクセス可否判定部によってアクセス可と判定された場合に、前記データと、そのデータに関連付けられたコンテキストポリシとを、前記クライアントに送信するデータ提供部と、
を有するサーバと、
自装置のコンテキストを表すコンテキスト情報を収集するコンテキスト情報収集部と、
前記サーバに対して、前記データに対するアクセス要求と、前記コンテキスト情報収集部を用いて収集した前記コンテキスト情報とを送信するオンライン時データアクセス部と、
前記サーバから、前記アクセス要求に応じて送信される前記データおよびそのデータに関連付けられたコンテキストポリシを保存するデータ保存部と、
前記サーバに接続されていないオフライン時に前記データにアクセスする場合に、前記データ保存部に前記データに関連付けられて保存されたコンテキストポリシ、および、前記コンテキスト情報収集部を用いて収集したコンテキスト情報に基づいて、前記データ保存部に保存された前記データに対するアクセス可否を判定するオフライン時データアクセス部と、
を有するクライアントと、
を備えたデータアクセス制御システム。
【請求項２】
前記クライアントの前記オンライン時データアクセス部は、前記コンテキスト情報に署名した上で前記アクセス要求と共に送信し、
前記サーバの前記アクセス可否判定部は、前記クライアントから受信したコンテキスト情報の署名を検証して有効性を確認できた場合に、前記コンテキスト情報を用いて前記アクセス可否を判定することを特徴とする請求項１に記載のデータアクセス制御システム。
【請求項３】
請求項１または請求項２に記載のデータアクセス制御システムを構成するクライアント。
【請求項４】
請求項１または請求項２に記載のデータアクセス制御システムを構成するサーバ。
【請求項５】
データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納するサーバに対して、
前記クライアントが、
前記サーバに接続されたオンライン時に前記データにアクセスする際に、
自装置のコンテキストを表すコンテキスト情報を収集し、
前記サーバに対して、前記データに対するアクセス要求と、収集したコンテキスト情報とを送信し、
前記サーバが、
前記クライアントから、前記アクセス要求および前記コンテキスト情報を受信すると、
前記データに関連付けられた前記コンテキストポリシおよび受信した前記コンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定し、
アクセス可と判定した場合に、前記クライアントに対して、前記データと、そのデータに関連付けられたコンテキストポリシとを送信し、
前記クライアントが、
前記サーバから前記アクセス要求に応じて送信される前記データと、そのデータに関連付けられた前記コンテキストポリシとを保存し、
前記サーバに接続されていないオフライン時に前記データにアクセスする際に、
前記コンテキスト情報を収集し、
前記データに関連付けて保存したコンテキストポリシ、および、収集した前記コンテキスト情報に基づいて、保存した前記データに対するアクセス可否を判定する方法。
【請求項６】
データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納したサーバが、
前記クライアントから、前記データに対するアクセス要求および前記クライアントのコンテキストを表すコンテキスト情報を受信すると、
前記データに関連付けられたコンテキストポリシおよび受信した前記コンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定し、
アクセス可と判定した場合に、前記クライアントに対して、前記データと、そのデータに関連付けられたコンテキストポリシとを送信する方法。
【請求項７】
請求項６に記載の方法を実行するサーバと接続されうるクライアントが、
前記サーバに接続されたオンライン時に前記データにアクセスする際に、
自装置のコンテキストを表すコンテキスト情報を収集し、
前記サーバに対して、前記データに対するアクセス要求と、収集したコンテキスト情報とを送信し、
前記サーバから、前記アクセス要求に応じて送信される前記データおよびそのデータに関連付けられたコンテキストポリシを保存し、
前記サーバに接続されていないオフライン時に前記データにアクセスする際に、
前記コンテキスト情報を収集し、
前記データに関連付けて保存したコンテキストポリシ、および、収集した前記コンテキスト情報に基づいて、保存した前記データに対するアクセス可否を判定する方法。
【請求項８】
データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納したサーバに、
前記クライアントから、前記データに対するアクセス要求および前記クライアントのコンテキストを表すコンテキスト情報を受信するステップと、
前記データに関連付けられたコンテキストポリシおよび受信した前記コンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定するステップと、
アクセス可と判定した場合に、前記クライアントに対して、前記データと、そのデータに関連付けられたコンテキストポリシとを送信するステップと、
を実行させるプログラム。
【請求項９】
請求項８に記載のプログラムを実行するサーバと接続されうるクライアントに、
前記サーバに接続されたオンライン時に前記データにアクセスする際に、
自装置のコンテキストを表すコンテキスト情報を収集するステップと、
前記サーバに対して、前記データに対するアクセス要求と、収集したコンテキスト情報とを送信するステップと、
前記サーバから、前記アクセス要求に応じて送信される前記データおよびそのデータに関連付けられたコンテキストポリシを保存するステップと、
前記サーバに接続されていないオフライン時に前記データにアクセスする際に、
前記コンテキスト情報を収集するステップと、
前記データに関連付けて保存したコンテキストポリシ、および、収集した前記コンテキスト情報に基づいて、保存した前記データに対するアクセス可否を判定するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データアクセス制御システムに関する。
【背景技術】
【０００２】
サーバに格納したデータに対してクライアントからアクセスする際に、アクセス制御を行うシステムがよく知られている。
【０００３】
例えば、スマートフォンを始めとするモバイルデバイス向けのクラウドサービスの一つとして、ＭＢａａＳ（Mobile Backend as a Service）がある。ＭＢａａＳの重要な機能の１つであるデータベースストレージ機能を使うことで、モバイルデバイスは、扱いたいデータをＭＢａａＳ上のデータベースに格納し、利用することができる。
【０００４】
このようなＭＢａａＳに代表される一般的なデータアクセス制御システムでは、データベースのレコードの単位でアクセス制御が可能である。例えば、ＭＢａａＳは、レコード中にＡＣＬ（Access Control List：アクセス制御リスト）を埋め込んでおき、ＡＣＬを用いてアクセス制御を行う。ＡＣＬは、利用者のユーザＩＤや、ユーザが所属するグループのＩＤなどが、読み込み、書き込みなどの権限毎に設定された情報を含む。
【０００５】
ここで、モバイルデバイス等のクライアントは、ネットワークに接続されていないオフライン状態で利用されることも多い。また、データ料金やバッテリ消費を抑えるために、ネットワークの通信量をできるだけ抑えたい、という利用者の要望がある。このため、クライアントは、データをデバイス内のローカルストレージにキャッシュしておくことがある。
【０００６】
一般的なデータアクセス制御システムは、オフラインにキャッシュしたデータに対してはアクセス制御手段を持っていないため、オフライン状態でのアクセス制御が課題となっている。
【０００７】
このような課題に関連する技術の一例が、特許文献１に記載されている。この関連技術では、サーバは、コンテンツおよびそのアクセスポリシを格納している。アクセスポリシは、コンテンツそれぞれに対応づけられ、そのコンテンツへのアクセスを許可する時空間（以下、アクセス許可時空間と呼ばれる）の範囲を表す情報を含んでいる。サーバは、モバイルクライアントから、コンテンツへのアクセス要求を受信すると、コンテンツに対応するアクセスポリシを検索する。そして、サーバは、モバイルクライアントの位置情報およびアクセスポリシに基づいて、コンテンツへのアクセスがアクセス許可時空間内であると判断した場合に、コンテンツおよびそのアクセスポリシをモバイルクライアントに送信する。そして、モバイルクライアントは、コンテンツおよびそのアクセスポリシを、自装置に保存しておく。また、モバイルクライアントは、オフライン状態の場合、アクセス要求の対象となるコンテンツおよびそのアクセスポリシを、自装置から読み出す。具体的に、モバイルクライアントは、自装置の位置情報およびアクセスポリシに基づいて、自装置に保存されたコンテンツへのアクセスがアクセス許可時空間内であると判断した場合に、そのアクセスを許可する。
【０００８】
このような課題に関連する技術の他の一例が、特許文献２に記載されている。この関連技術では、サーバは、文書ファイルのそれぞれに対するセキュリティポリシを格納している。セキュリティポリシは、文書ファイルに対するアクセスの可否を判定するための情報であり、アクセスを許可するユーザの種別やアクセスの種別、オフラインアクセスを許可するか否か等の情報を含んでいる。サーバは、クライアントのアプリケーションから文書ファイルに対するアクセス要求を受けると、そのセキュリティポリシおよびユーザＩＤ等に基づいて、ポリシ判定情報を生成する。ポリシ判定情報には、アクセス可否の判定結果を示す情報が含まれる。そして、サーバは、生成したポリシ判定情報の内容に基づいて、該当する文書ファイルに対するアクセス制御を実施する。また、クライアントは、自装置にキャッシュされている文書ファイルについて、所定のタイミングでポリシ判定情報をサーバに要求して取得し、キャッシュしておく。そして、クライアントは、オフライン時には、自装置にキャッシュしておいたポリシ判定情報に基づいて、自装置にキャッシュしておいた文書ファイルに対するアクセス制御を行う。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−１３７５９５号公報
【特許文献２】特許第４８４３３２５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した関連技術には、以下の課題がある。
【００１１】
特許文献１に記載された関連技術は、コンテンツに対するアクセス制御を、クライアントの位置する時空間に応じて行う。ここで、クライアントは、同じ時空間内に位置していても、様々にその状況や状態が変化することが考えられる。セキュリティの観点からは、クライアントの状況や状態を考慮してアクセス制御が行われることが望ましい。ところが、この関連技術は、クライアントのオフライン時における位置以外の状況や状態を考慮してアクセス制御を行うことに対応していない。
【００１２】
また、特許文献２に記載された関連技術は、オフライン時における文書ファイルに対するアクセス制御を、オンライン時におけるキャッシュタイミングでアクセス可否が判定された結果を示すポリシ判定情報のキャッシュに基づいて行う。したがって、オフライン時に参照されるポリシ判定情報は、参照時点でのクライアントの状況や状態に基づき判定されたものではない。そのため、この関連技術は、クライアントのオフライン時での状況や状態を考慮してアクセス制御を行うことに対応していない。
【００１３】
本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、データを提供するサーバに対してクライアントが接続されていないオフライン時におけるデータアクセス制御を、クライアントの状況や状態をより柔軟に反映させて行う技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明のデータアクセス制御システムは、データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納するデータ格納部と、前記データに関連付けられたコンテキストポリシおよび前記クライアントのコンテキストを表すコンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定するアクセス可否判定部と、前記クライアントから、前記データに対するアクセス要求および前記コンテキスト情報を受信すると、前記データについて前記アクセス可否判定部によってアクセス可と判定された場合に、前記データと、そのデータに関連付けられたコンテキストポリシとを、前記クライアントに送信するデータ提供部と、を有するサーバと、自装置のコンテキストを表すコンテキスト情報を収集するコンテキスト情報収集部と、前記サーバに対して、前記データに対するアクセス要求と、前記コンテキスト情報収集部を用いて収集した前記コンテキスト情報とを送信するオンライン時データアクセス部と、前記サーバから、前記アクセス要求に応じて送信される前記データおよびそのデータに関連付けられたコンテキストポリシを保存するデータ保存部と、前記サーバに接続されていないオフライン時に前記データにアクセスする場合に、前記データ保存部に前記データに関連付けられて保存されたコンテキストポリシ、および、前記コンテキスト情報収集部を用いて収集したコンテキスト情報に基づいて、前記データ保存部に保存された前記データに対するアクセス可否を判定するオフライン時データアクセス部と、を有するクライアントと、を備える。
【００１５】
また、本発明のクライアントは、上述のデータアクセス制御システムにおけるクライアントとして構成される。
【００１６】
また、本発明のサーバは、上述のデータアクセス制御システムにおけるサーバとして構成される。
【００１７】
また、本発明の方法は、データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納するサーバに対して、前記クライアントが、前記サーバに接続されたオンライン時に前記データにアクセスする際に、自装置のコンテキストを表すコンテキスト情報を収集し、前記サーバに対して、前記データに対するアクセス要求と、収集したコンテキスト情報とを送信し、前記サーバが、前記クライアントから、前記アクセス要求および前記コンテキスト情報を受信すると、前記データに関連付けられた前記コンテキストポリシおよび受信した前記コンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定し、アクセス可と判定した場合に、前記クライアントに対して、前記データと、そのデータに関連付けられたコンテキストポリシとを送信し、前記クライアントが、前記サーバから前記アクセス要求に応じて送信される前記データと、そのデータに関連付けられた前記コンテキストポリシとを保存し、前記サーバに接続されていないオフライン時に前記データにアクセスする際に、前記コンテキスト情報を収集し、前記データに関連付けて保存したコンテキストポリシ、および、収集した前記コンテキスト情報に基づいて、保存した前記データに対するアクセス可否を判定する。
【００１８】
また、本発明の他の方法は、データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納したサーバが、前記クライアントから、前記データに対するアクセス要求および前記クライアントのコンテキストを表すコンテキスト情報を受信すると、前記データに関連付けられたコンテキストポリシおよび受信した前記コンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定し、アクセス可と判定した場合に、前記クライアントに対して、前記データと、そのデータに関連付けられたコンテキストポリシとを送信する。
【００１９】
また、本発明のさらに他の方法は、上述の他の方法を実行するサーバと接続されうるクライアントが、前記サーバに接続されたオンライン時に前記データにアクセスする際に、自装置のコンテキストを表すコンテキスト情報を収集し、前記サーバに対して、前記データに対するアクセス要求と、収集したコンテキスト情報とを送信し、前記サーバから、前記アクセス要求に応じて送信される前記データおよびそのデータに関連付けられたコンテキストポリシを保存し、前記サーバに接続されていないオフライン時に前記データにアクセスする際に、前記コンテキスト情報を収集し、前記データに関連付けて保存したコンテキストポリシ、および、収集した前記コンテキスト情報に基づいて、保存した前記データに対するアクセス可否を判定する。
【００２０】
また、本発明のプログラムは、データ、および、前記データに関連付けられたコンテキストポリシであって、前記データに対するアクセス可否をクライアントのコンテキストに応じて判定するためのポリシを表すコンテキストポリシを格納したサーバに、前記クライアントから、前記データに対するアクセス要求および前記クライアントのコンテキストを表すコンテキスト情報を受信するステップと、前記データに関連付けられたコンテキストポリシおよび受信した前記コンテキスト情報に基づいて、前記データに対する前記クライアントからのアクセス可否を判定するステップと、アクセス可と判定した場合に、前記クライアントに対して、前記データと、そのデータに関連付けられたコンテキストポリシとを送信するステップと、を実行させる。
【００２１】
また、本発明の他のプログラムは、上述のプログラムを実行するサーバと接続されうるクライアントに、前記サーバに接続されたオンライン時に前記データにアクセスする際に、自装置のコンテキストを表すコンテキスト情報を収集するステップと、前記サーバに対して、前記データに対するアクセス要求と、収集したコンテキスト情報とを送信するステップと、前記サーバから、前記アクセス要求に応じて送信される前記データおよびそのデータに関連付けられたコンテキストポリシを保存するステップと、前記サーバに接続されていないオフライン時に前記データにアクセスする際に、前記コンテキスト情報を収集するステップと、前記データに関連付けて保存したコンテキストポリシ、および、収集した前記コンテキスト情報に基づいて、保存した前記データに対するアクセス可否を判定するステップと、を実行させる。
【発明の効果】
【００２２】
本発明は、データを提供するサーバに対してクライアントが接続されていないオフライン時におけるデータアクセス制御を、クライアントの状況や状態をより柔軟に反映させて行う技術を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態としてのデータアクセス制御システムの機能ブロック構成を示す図である。
【図２】本発明の実施の形態としてのデータアクセス制御システムのハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態におけるデータおよびコンテキストポリシの一例を示す図である。
【図４】本発明の実施の形態としてのクライアントがデータにアクセスする動作の概要を説明するフローチャートである。
【図５】本発明の実施の形態としてのクライアントがオンライン時にデータにアクセスする動作、および、サーバがデータを提供する動作を説明するフローチャートである。
【図６】本発明の実施の形態としてのクライアントがオフライン時にデータにアクセスする動作を説明するフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２５】
本発明の実施の形態としてのデータアクセス制御システム１の構成を図１に示す。図１において、データアクセス制御システム１は、サーバ１０と、クライアント２０とを備える。サーバ１０およびクライアント２０は、それぞれ、コンピュータ装置によって構成される。また、サーバ１０およびクライアント２０は、ネットワークによって通信可能に接続されうるが、接続が切断される場合がありうる。例えば、クライアント２０として、モバイルデバイスが適用される場合、その移動に応じてサーバ１０との接続が確立または切断される。ただし、クライアント２０は、モバイルデバイスに限らない。また、接続が確立または切断される要因は、クライアント２０の移動に限らない。なお、図１において、サーバ１０およびクライアント２０が１つずつ示されているが、本実施の形態におけるデータアクセス制御システム１に含まれる各装置の数は限定されない。
【００２６】
図１において、サーバ１０は、データ格納部１１と、アクセス可否判定部１２と、データ提供部１３とを含む。また、クライアント２０は、コンテキスト情報収集部２１と、オンライン時データアクセス部２２と、データ保存部２３と、オフライン時データアクセス部２４とを含む。
【００２７】
ここで、データアクセス制御システム１を構成する各装置のハードウェア構成の一例を図２に示す。
【００２８】
図２において、サーバ１０は、ＣＰＵ（Central Processing Unit）１００１、メモリ１００２、および、ネットワークインタフェース１００５を含む。メモリ１００２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置（ハードディスク等）等によって構成される。ネットワークインタフェース１００５は、インターネット、有線ＬＡＮ（Local Area Network）、無線ＬＡＮ、モバイルデータ通信、または、その他の各種ネットワークに接続するインタフェースである。
【００２９】
この場合、データ格納部１１は、メモリ１００２によって構成される。また、アクセス可否判定部１２は、メモリ１００２に格納されたコンピュータ・プログラムを読み込んで実行するＣＰＵ１００１によって構成される。また、データ提供部１３は、ネットワークインタフェース１００５と、メモリ１００２に格納されたコンピュータ・プログラムを読み込んで実行するＣＰＵ１００１とによって構成される。
【００３０】
また、図２において、クライアント２０は、ＣＰＵ２００１、メモリ２００２、出力装置２００３、入力装置２００４、ネットワークインタフェース２００５、および、コンテキスト情報取得装置２００６を含む。メモリ２００２は、ＲＡＭ、ＲＯＭ、補助記憶装置（ハードディスク等）等によって構成される。出力装置２００３は、ディスプレイ装置やプリンタ等のように、情報を出力する装置によって構成される。入力装置２００４は、キーボードやマウス、操作ボタン、タッチパネル等のように、ユーザ操作の入力を受け付ける装置によって構成される。ネットワークインタフェース２００５は、インターネット、有線ＬＡＮ、無線ＬＡＮ、モバイルデータ通信、または、その他の各種ネットワークに接続するインタフェースである。コンテキスト情報取得装置２００６は、例えば、コンテキストとしての位置情報を取得するためのＧＰＳ（Global Positioning System）受信装置や、コンテキストとしてのセンサ情報を取得するための各種センサ等によって構成される。
【００３１】
この場合、コンテキスト情報収集部２１は、コンテキスト情報取得装置２００６と、メモリ２００２に格納されたコンピュータ・プログラムを読み込んで実行するＣＰＵ２００１とによって構成される。また、オンライン時データアクセス部２２およびオフライン時データアクセス部２４は、次のように構成される。すなわち、これらの機能ブロックの各々は、出力装置２００３と、入力装置２００４と、ネットワークインタフェース２００５と、メモリ２００２に格納されたコンピュータ・プログラムを読み込んで実行するＣＰＵ２００１とによって構成される。また、データ保存部２３は、メモリ２００２によって構成される。
【００３２】
なお、サーバ１０およびクライアント２０ならびにこれらの各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００３３】
次に、サーバ１０の各機能ブロックの詳細について説明する。
【００３４】
データ格納部１１は、データおよびコンテキストポリシを関連付けて格納する。コンテキストポリシは、データに対するクライアント２０からのアクセス可否を、クライアント２０のコンテキストに応じて判定するための情報である。コンテキストとは、クライアント２０が置かれた状況やクライアント２０の状態を表す。コンテキストは、データに対するアクセスを要求する時点でのクライアント２０が置かれた状況やクライアント２０の状態であることが望ましい。コンテキストの一例として、クライアント２０の位置情報が挙げられるが、本実施の形態でのコンテキストは、位置情報以外にも、クライアント２０の様々な状況や状態を表す情報を指すものとする。例えば、本実施の形態でのコンテキストは、ネットワークに関するコンテキストを含んでいてもよい。そのようなコンテキストとして、クライアント２０がその時点で接続しているネットワークに関する情報（接続しているネットワークの識別情報や、接続状況等）がある。
【００３５】
詳細には、ネットワークに関するコンテキストとしては、有線ネットワークまたは無線ネットワークに接続中であるか否かに関する情報がある。さらに、ネットワークに関するコンテキストとしては、ＩＰ（internet protocol）アドレス、デフォルトゲートウェイ、仮想ＬＡＮ（Local Area Network）の識別情報、ＤＮＳ（Domain Name Server）サーバアドレス、プロキシサーバアドレス等がある。また、ネットワークに関するコンテキストとしては、無線ネットワークのネットワーク識別情報、暗号化状態、電界強度、周囲に存在するアクセスポイント一覧に関する情報等がある。また、ネットワークに関するコンテキストとしては、ＶＰＮ（Virtual Private Network）に接続中であるか否かに関する情報がある。
【００３６】
また、その他のコンテキストの一例として、クライアント２０を構成するハードウェア要素に関する情報があげられる。ハードウェア要素に関するコンテキストとしては、電源が外部から供給されているか否かを表す情報や、充電状態（フル充電、充電残量等）がある。また、ハードウェア要素に関するコンテキストとしては、接続または搭載されている周辺デバイスに関する情報（ストレージデバイスの接続有無、認証デバイスの接続有無）等がある。
【００３７】
また、その他のコンテキストの一例として、クライアント２０を構成するソフトウェア要素に関する情報がある。ソフトウェア要素に関するコンテキストとしては、オペレーティングシステムやインストール済みアプリケーションの種類やバージョン、それらのセキュリティパッチの適用状況、ウィルス検出ソフトによるスキャン実施状況等がある。
【００３８】
また、その他のコンテキストの一例として、各種センサから得られる情報がある。例えば、各種センサから得られるコンテキストとしては、クライアント２０に搭載された加速度センサから得られる情報に基づく移動中であるか否かを表す情報がある。その他、各種センサから得られるコンテキストは、クライアント２０に搭載または接続されたセンサから得られる各種センサ情報であってもよい。
【００３９】
上述したようなクライアント２０のコンテキストに基づいてデータに対するアクセス可否を判定するためのコンテキストポリシは、適用されるデータに関連付けられて、データ格納部１１に格納される。例えば、データ格納部１１は、データとコンテキストポリシとを別々のテーブルに格納した上で、データの識別情報およびそのデータに適用されるコンテキストポリシの識別情報を関連付けした情報を、さらに他のテーブルに格納してもよい。あるいは、データ格納部１１は、データとコンテキストポリシとを別々のテーブルに格納した上で、データのレコードに、そのデータに適用されるコンテキストポリシの識別情報を含めてもよい。あるいは、データ格納部１１は、データに、そのデータに適用されるコンテキストポリシを含めて格納してもよい。
【００４０】
データ格納部１１に格納されるデータおよびコンテキストポリシの一例を図３に示す。この例では、データが、関連するコンテキストポリシを含むことにより、データの本体およびコンテキストポリシが関連付けられている。この例のように、例えば、データは、ＪＳＯＮ（JavaScript（登録商標） Object Notation）形式で記述されていてもよい。図３では、データの本体は、氏名（name）、メールアドレス（email）およびスコア（score）の各情報から構成される。また、コンテキストポリシは、位置情報（location）および無線ＬＡＮ（wifi）にそれぞれ関するポリシによって構成される。位置情報に関するポリシは、クライアント２０の位置が、緯度35.6801、経度139.7670の地点から半径５００メートル以内の範囲に含まれることを、アクセス可の条件の１つとすることを示している。また、無線ＬＡＮに関するポリシは、ＥＳＳ（Extended Service Set）―ＩＤが“office1”かつＢＳＳ（Basic Service Set）―ＩＤが“12:34:56:78:90:12”である無線ＬＡＮに接続されていることを、アクセス可の条件の１つとすることを示している。このデータのコンテキストポリシは、クライアント２０のコンテキストが、位置情報に関するポリシおよび無線ＬＡＮに関するポリシの少なくともいずれかに合致する場合に、クライアント２０からのアクセスを許可することを表している。
【００４１】
アクセス可否判定部１２は、データに対するクライアント２０からのアクセス可否を判定する。具体的には、アクセス可否判定部１２は、アクセス対象のデータに関連付けられたコンテキストポリシおよびクライアント２０のコンテキストを表すコンテキスト情報に基づいて、アクセス対象のデータに対するクライアント２０からのアクセス可否を判定する。
【００４２】
ここで、もし、コンテキスト情報がクライアント２０により署名されている場合、アクセス可否判定部１２は、署名を検証して有効性を確認できた場合に、アクセス可否の判定を行う。後述のように、コンテキスト情報が、タイムスタンプまたはnonceと結合された上で署名されている場合、アクセス可否判定部１２は、タイムスタンプまたはnonceにも基づいて検証を行う。なお、署名には、あらかじめクライアント２０との間で合意された共通鍵が用いられていてもよい。
【００４３】
データ提供部１３は、クライアント２０から、データに対するアクセス要求およびコンテキスト情報を受信する。コンテキスト情報は、クライアント２０のアクセス要求時点でのコンテキストを表す情報である。そして、データ提供部１３は、アクセス可否判定部１２を用いて、アクセス対象のデータに対するクライアント２０からのアクセス可否を判定する。
【００４４】
また、データ提供部１３は、アクセス可と判定されたデータおよびそのデータに関連付けられたコンテキストポリシを、クライアント２０に対して送信する。もし、図３に一例を示したように、データにそのコンテキストポリシが含まれる場合、データ提供部１３は、アクセス可と判定されたデータをクライアント２０に対して送信すればよい。
【００４５】
また、データ提供部１３は、アクセス可否判定部１２によって、アクセス対象のデータに対してアクセス不可と判定された場合、その旨を表すエラー情報を、クライアント２０に対して送信してもよい。
【００４６】
次に、クライアント２０の各機能ブロックの詳細について説明する。以降、クライアント２０を自装置とも称する。
【００４７】
コンテキスト情報収集部２１は、自装置のコンテキストを表すコンテキスト情報を収集する。コンテキストとしては、上述したように、位置情報に限らず、自装置が接続中のネットワークに関する情報、ハードウェア要素に関する情報、ソフトウェア要素に関する情報、または、各種センサから得られるセンサ情報等がある。コンテキスト情報収集部２１は、サーバ１０のコンテキストポリシにおいて判定される種類のコンテキスト情報を収集すればよい。
【００４８】
例えば、図３に一例を示したように、位置情報および無線ＬＡＮに関するコンテキストを用いたコンテキストポリシが、サーバ１０に格納されている場合を想定する。この場合、コンテキスト情報収集部２１は、自装置の位置情報および接続中のネットワークの識別情報（無線ＬＡＮの識別情報、モバイルデータ通信の基地局情報など）を収集すればよい。
【００４９】
オンライン時データアクセス部２２は、データへのアクセス要求を指示する情報を取得する。例えば、オンライン時データアクセス部２２は、データへのアクセス要求を指示する情報を、入力装置２００４等を介して取得してもよい。あるいは、オンライン時データアクセス部２２は、データへのアクセス要求を指示する情報を、自装置にインストールされた他のアプリケーションから取得してもよい。そして、オンライン時データアクセス部２２は、自装置がサーバ１０に接続されているオンライン時であるか、接続されていないオフライン時であるかを判断する。オフライン時である場合には、オンライン時データアクセス部２２は、後述のオフライン時データアクセス部２４に、データへのアクセス要求を指示する情報に対する処理を依頼する。
【００５０】
オンライン時データアクセス部２２は、オンライン時に、次のように動作するよう構成される。この場合、オンライン時データアクセス部２２は、コンテキスト情報収集部２１に対してコンテキスト情報の収集を依頼し、収集されたコンテキスト情報を取得する。また、オンライン時データアクセス部２２は、サーバ１０に対して、アクセス対象のデータに対するアクセス要求と、収集されたコンテキスト情報とを送信する。
【００５１】
例えば、オンライン時データアクセス部２２は、通信プロトコルとして、ＨＴＴＰＳ（Hypertext Transfer Protocol Secure）を用いてもよい。その場合、オンライン時データアクセス部２２は、ＨＴＴＰヘッダに、コンテキスト情報を載せて送信してもよい。
【００５２】
また、このとき、オンライン時データアクセス部２２は、コンテキスト情報に署名をした上で、アクセス要求と共に送信してもよい。この場合、オンライン時データアクセス部２２は、コンテキスト情報をタイムスタンプまたはnonceと結合した上で署名することが望ましい。これは、リプレイ攻撃を防止するためである。署名には、あらかじめサーバ１０との間で合意された共通鍵が用いられてもよい。
【００５３】
また、オンライン時データアクセス部２２は、アクセス要求に応じてサーバ１０から送信されるデータおよびコンテキストポリシを受信する。そして、オンライン時データアクセス部２２は、受信したデータを出力する。出力先は、出力装置２００３でもよいし、アクセス要求の指示元のアプリケーションであってもよい。また、オンライン時データアクセス部２２は、受信したデータおよびそのデータに関連付けられたコンテキストポリシを、データ保存部２３に保存する。データ保存部２３への保存には、サーバから提供されるデータをローカルストレージに保存しておく一般的なキャッシュの技術を適用してもよい。
【００５４】
もし、図３に一例を示したように、データにそのコンテキストポリシが含まれる場合、オンライン時データアクセス部２２は、アクセスを許可すると判定されたデータの本体部分を出力する。そして、この場合、オンライン時データアクセス部２２は、受信したデータをそのままデータ保存部２３に保存すればよい。
【００５５】
また、オンライン時データアクセス部２２は、アクセス要求に対してエラー情報を受信した場合、受信したエラー情報を出力してもよい。
【００５６】
オフライン時データアクセス部２４は、サーバ１０に接続されていないオフライン時に、データへのアクセス要求を指示する情報に対する処理を依頼されると、次のように動作するよう構成される。この場合、オフライン時データアクセス部２４は、コンテキスト情報収集部２１に対してコンテキスト情報の収集を依頼し、収集されたコンテキスト情報を取得する。また、オフライン時データアクセス部２４は、アクセス対象のデータがデータ保存部２３に保存されていれば、そのデータに関連付けられたコンテキストポリシをデータ保存部２３から取得する。また、オフライン時データアクセス部２４は、取得したコンテキストポリシ、および、収集されたコンテキスト情報に基づいて、アクセス対象のデータに対するアクセス可否を判定する。アクセス可と判定した場合、オフライン時データアクセス部２４は、アクセス対象のデータを、データ保存部２３から読み込んで出力する。前述と同様に、出力先は、出力装置２００３でもよいし、アクセス要求の指示元のアプリケーションであってもよい。
【００５７】
もし、図３に一例を示したように、データにそのコンテキストポリシが含まれる場合、オフライン時データアクセス部２４は、データ保存部２３に保存されたアクセス対象のデータに含まれるコンテキストポリシを取得し、アクセス可否の判定に用いればよい。そして、この場合、オフライン時データアクセス部２４は、アクセス可と判定したデータの本体部分を出力すればよい。
【００５８】
また、オフライン時データアクセス部２４は、アクセス対象のデータに対してアクセス不可と判定した場合、その旨を表すエラー情報を出力してもよい。また、オフライン時データアクセス部２４は、アクセス対象のデータがデータ保存部２３に保存されていない場合も、その旨を表すエラー情報を出力してもよい。
【００５９】
以上のように構成されたデータアクセス制御システム１の動作について、図面を参照して説明する。
【００６０】
まず、クライアント２０が、データへのアクセス要求を指示する情報を取得した際の動作を図４に示す。
【００６１】
図４において、まず、クライアント２０のオンライン時データアクセス部２２は、データに対するアクセス要求を指示する情報を取得する（ステップＡ１）。
【００６２】
次に、オンライン時データアクセス部２２は、自装置がサーバ１０に接続されたオンライン状態であるか、接続されていないオフライン状態であるかを判断する（ステップＡ２）。
【００６３】
ここで、オンライン状態である場合、オンライン時データアクセス部２２は、オンライン時におけるデータアクセス動作を行う（ステップＡ３）。このステップの詳細については後述する。
【００６４】
一方、オフライン状態である場合、オンライン時データアクセス部２２は、オフライン時データアクセス部２４に、データに対するアクセス要求を指示する情報に対する処理を依頼する。そして、オフライン時データアクセス部２４は、オフライン時におけるデータアクセス動作を行う（ステップＡ４）。このステップの詳細については後述する。
【００６５】
次に、ステップＡ３におけるクライアント２０のオンライン時におけるデータアクセス動作および対応するサーバ１０の動作を図５に示す。なお、図５において、左図は、クライアント２０の動作を示し、右図は、サーバ１０の動作を示し、左右を結ぶ破線の矢印は、データの流れを示すものとする。
【００６６】
図５では、まず、クライアント２０のオンライン時データアクセス部２２は、コンテキスト情報収集部２１に対してコンテキストの情報の収集を依頼する。そして、コンテキスト情報収集部２１は、コンテキスト情報を収集する（ステップＡ１１）。
【００６７】
次に、オンライン時データアクセス部２２は、アクセス対象のデータに対するアクセス要求および収集されたコンテキスト情報を、サーバ１０に対して送信する（ステップＡ１２）。
【００６８】
次に、サーバ１０のデータ提供部１３は、受信したアクセス要求およびコンテキスト情報に基づいて、アクセス可否判定部１２を用いて、アクセス対象のデータに対するクライアント２０からのアクセス可否を判定する。具体的には、アクセス可否判定部１２は、アクセス対象のデータに関連付けられたコンテキストポリシを、データ格納部１１から取得する。そして、アクセス可否判定部１２は、取得したコンテキストポリシ、および、クライアント２０から受信されたコンテキスト情報に基づいて、アクセス対象のデータに対するアクセス可否を判定する（ステップＢ１１）。
【００６９】
ここで、アクセス可と判定された場合（ステップＢ１２でＹｅｓ）、データ提供部１３は、アクセス対象のデータおよび該データに関連付けられたコンテキストポリシを、クライアント２０に対して送信する（ステップＢ１３）。
【００７０】
次に、クライアント２０のオンライン時データアクセス部２２は、データおよびコンテキストポリシを受信した場合（ステップＡ１３でＹｅｓ）、受信したデータを出力する（ステップＡ１４）。
【００７１】
次に、クライアント２０のオンライン時データアクセス部２２は、受信したデータおよびそのデータに関連付けられたコンテキストポリシを、データ保存部２３に保存する（ステップＡ１５）。
【００７２】
一方、サーバ１０において、アクセス不可と判定された場合（ステップＢ１２でＮｏ）、データ提供部１３は、エラー情報をクライアント２０に対して送信する（ステップＢ１４）。
【００７３】
そして、クライアント２０のオンライン時データアクセス部２２は、エラー情報を受信した場合（ステップＡ１３でＮｏ）、受信したエラー情報を出力する（ステップＡ１６）。
【００７４】
以上で、オンライン時におけるデータアクセス制御システム１の動作は終了する。
【００７５】
次に、ステップＡ４におけるクライアント２０のオフライン時におけるデータアクセス動作を図６に示す。
【００７６】
図６では、まず、オフライン時データアクセス部２４は、アクセス対象のデータが、データ保存部２３に格納されているか否かを判断する（ステップＡ２１）。
【００７７】
ここで、データ保存部２３に格納されている場合、オフライン時データアクセス部２４は、コンテキスト情報収集部２１に対してコンテキストの情報の収集を依頼する。そして、コンテキスト情報収集部２１は、コンテキスト情報を収集する（ステップＡ２２）。
【００７８】
次に、オフライン時データアクセス部２４は、アクセス対象のデータに関連付けられたコンテキストポリシを、データ保存部２３から取得する。そして、オフライン時データアクセス部２４は、取得したコンテキストポリシおよび収集されたコンテキスト情報に基づいて、アクセス対象のデータに対するアクセス可否を判定する（ステップＡ２３）。
【００７９】
ここで、アクセス可と判定された場合（ステップＡ２４でＹｅｓ）、オフライン時データアクセス部２４は、データ保存部２３に保存されたアクセス対象のデータを出力する（ステップＡ２５）。
【００８０】
一方、アクセス不可と判定された場合（ステップＡ２４でＮｏ）、オフライン時データアクセス部２４は、エラー情報を出力する（ステップＡ２６）。
【００８１】
また、アクセス対象のデータが、データ保存部２３に格納されていない場合（ステップＡ２１でＮｏ）、オフライン時データアクセス部２４は、その旨を表すエラー情報を出力する（ステップＡ２６）。
【００８２】
以上で、クライアント２０は、オフライン時におけるデータアクセス動作を終了する。
【００８３】
次に、本発明の実施の形態の効果について述べる。
【００８４】
本実施の形態としてのデータアクセス制御システムは、データを提供するサーバに対してクライアントが接続されていないオフライン時におけるデータアクセス制御を、クライアントの状況や状態をより柔軟に反映させて行うことができる。
【００８５】
その理由について説明する。本実施の形態では、サーバにおいて、データ格納部が、データに関連付けて、そのアクセス可否をクライアントのコンテキストに応じて判定するコンテキストポリシを格納している。コンテキストは、クライアントの状況や状態を表す。そして、クライアントにおいて、オンライン時には、オンライン時データアクセス部が、データに対するアクセス要求と、コンテキスト情報収集部により収集されたコンテキスト情報とをサーバに送信する。すると、サーバにおいて、データ提供部が、アクセス要求およびコンテキスト情報を受信する。そして、アクセス可否判定部が、アクセス対象のデータに対して定められたコンテキストポリシおよび受信されたコンテキスト情報に基づいて、アクセス対象のデータに対するクライアントからのアクセス可否を判定する。そして、データ提供部が、アクセス可と判定されたデータと、そのデータに関連付けられたコンテキストポリシとを、クライアントに対して送信するからである。そして、クライアントにおいて、オンライン時データアクセス部が、サーバから受信したデータおよびそのデータに関連付けられたコンテキストポリシをデータ保存部に保存する。そして、クライアントにおいて、オフライン時には、オフライン時データアクセス部が、保存されているアクセス対象のデータに関連付けて保存されたコンテキストポリシを取得する。そして、オフライン時データアクセス部が、保存されたコンテキストポリシおよびコンテキスト情報収集部により収集されたコンテキスト情報に基づいて、保存されているアクセス対象のデータに対するアクセス可否を判定するからである。
【００８６】
これにより、本実施の形態は、オフライン時にも、サーバから提供されたデータに対するアクセス制御を、アクセス要求時点でのクライアントの様々な状況や状態（コンテキスト）に応じて、柔軟に行うことができる。その結果、本実施の形態は、サーバから提供されたデータに対するセキュリティを向上させる。
【００８７】
なお、本発明の実施の形態において、コンテキストポリシとして、位置情報に関係するコンテキストと、ネットワークに関するコンテキストとを用いてアクセス可否を判定するポリシの具体例を示した。これに限らず、コンテキストポリシは、その他の種類のコンテキストに基づいてアクセス可否を判定する内容であってもよい。また、コンテキストポリシに含まれる判定条件の数は限定されない。また、具体例では、コンテキストポリシに含まれる判定条件の少なくともいずれかが満たされる場合にアクセス可とされるものとして説明した。これに限らず、コンテキストポリシは、１つ以上の判定条件について様々な論理演算を施した結果に基づいて、アクセス可否を判定する内容であってもよい。
【００８８】
また、本発明の実施の形態において、アクセス可否判定部が、コンテキストポリシに基づいてアクセス可否を判定すると説明した。加えて、アクセス可否判定部は、クライアントを利用中のユーザのユーザＩＤやグループＩＤ等といった情報に基づいてアクセス可否を判定してもよい。また、アクセス可否判定部は、コンテキストポリシに加えて、その他の各種条件に基づいて、アクセス可否を判定してもよい。また、アクセス可否判定部は、コンテキストポリシに加えて、時刻や時間帯に基づいて、アクセス可否を判定してもよい。
【００８９】
また、本発明の実施の形態において、サーバが１つのコンピュータ装置によって構成されるものとして説明したが、サーバの各機能ブロックは、複数のコンピュータ装置に分散されて実現されていてもよい。
【００９０】
また、本発明の実施の形態において、サーバおよびクライアントが、あらかじめ合意した共通鍵を用いて、コンテキスト情報の署名および検証を行う例について説明したが、署名および検証を行う手法は限定されない。例えば、本発明の実施の形態において、公開鍵および秘密鍵を用いた署名および検証手法が採用されてもよい。
【００９１】
また、本発明の実施の形態において、クライアントが、ハードウェア要素としてコンテキスト情報取得装置２００６を含むものとして説明した。ただし、本実施の形態において適用されるコンテキストポリシが、コンテキスト情報取得装置２００６を必要とせずに取得可能な種類のコンテキスト（例えば、ソフトウェア要素に関する情報等）のみを採用している場合も考えられる。この場合、クライアント２０は、ハードウェア要素としてのコンテキスト情報取得装置２００６を含んでいなくてもよい。
【００９２】
また、上述した本発明の各実施の形態において、サーバおよびクライアントの各機能ブロックが、メモリに記憶されたコンピュータ・プログラムを実行するＣＰＵによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
【００９３】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明したサーバおよびクライアントの各動作は、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納されていてもよい。そして、この場合、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【００９４】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【００９５】
１    データアクセス制御システム
１０    サーバ
１１    データ格納部
１２    アクセス可否判定部
１３    データ提供部
２０    クライアント
２１    コンテキスト情報収集部
２２    オンライン時データアクセス部
２３    データ保存部
２４    オフライン時データアクセス部
１００１、２００１    ＣＰＵ
１００２、２００２    メモリ
１００５、２００５    ネットワークインタフェース
２００３    出力装置
２００４    入力装置
２００６    コンテキスト情報取得装置
【図１】
2017078999.tif 000003
【図２】
2017078999.tif 000004
【図３】
2017078999.tif 000005
【図４】
2017078999.tif 000006
【図５】
2017078999.tif 000007
【図６】
2017078999.tif 000008