(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-03
(45)【発行日】2025-06-11
(54)【発明の名称】データ処理装置、データ処理方法、及びプログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20250604BHJP
G06F 21/60 20130101ALI20250604BHJP
G06F 21/31 20130101ALI20250604BHJP
【FI】
G06F21/62 318
G06F21/60 320
G06F21/31
(21)【出願番号】P 2023561519
(86)(22)【出願日】2022-11-02
(86)【国際出願番号】 JP2022041021
(87)【国際公開番号】W WO2023090157
(87)【国際公開日】2023-05-25
【審査請求日】2024-05-02
(31)【優先権主張番号】P 2021186328
(32)【優先日】2021-11-16
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】庄司 諒
(72)【発明者】
【氏名】坂本 久
【審査官】平井 誠
(56)【参考文献】
【文献】特開2011-203900(JP,A)
【文献】特開2012-118778(JP,A)
【文献】特開2004-046307(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得する、認証コード取得部と、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理する、コード管理部と、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザが、前記データの利用権限を有するか否かを判定する、判定部と、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可する、処理許可部と、
前記ユーザが前記ログイン認証に成功した場合に、前記ユーザに対して前記識別コードを設定し、前記識別コードが設定されたユーザがアプリケーションプログラムの実行を要求した場合に、前記アプリケーションプログラムを実行する、データ実行部と、
を備え、
前記処理許可部は、前記アプリケーションプログラムの実行が要求されると、要求したユーザの前記識別コードを特定し、更に、特定した前記識別コードに対応する認証コードを取得し、そして、前記アプリケーションプログラムの実行対象となるデータと取得した前記認証コードとを、前記判定部に通知し、
前記判定部は、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理装置。
【請求項2】
請求項1に記載のデータ処理装置であって、
前記データは暗号化されており、
前記判定部は、更に、データ毎に、当該データを復号するための復号鍵と、当該データを利用できるユーザとを対応付けて管理し、
前記処理許可部は、前記ユーザに利用権限が付与された場合に、当該ユーザに対応する前記復号鍵を取得し、前記復号鍵で前記データを復号する、
データ処理装置。
【請求項3】
請求項1に記載のデータ処理装置であって、
前記認証コード取得部が取得する認証コードは、所定期間毎に生成される、
データ処理装置。
【請求項4】
請求項1に記載のデータ処理装置であって、
前記判定部は、
前記データの識別情報と、前記データの利用権限を有するユーザとの対応関係を管理しており、前記対応関係に基づいて、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理装置。
【請求項5】
コンピュータが実行する方法であって、
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得し、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理し、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザが、前記データの利用権限を有するか否かを判定し、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可し、
前記ユーザが前記ログイン認証に成功した場合に、前記ユーザに対して前記識別コードを設定し、前記識別コードが設定されたユーザがアプリケーションプログラムの実行を要求した場合に、前記アプリケーションプログラムを実行し、
前記データの処理の許可では、前記アプリケーションプログラムの実行が要求されると、要求したユーザの前記識別コードを特定し、更に、特定した前記識別コードに対応する認証コードを取得し、そして、前記アプリケーションプログラムの実行対象となるデータと取得した前記認証コードとを通知し、
前記データの利用権限を有するか否かの判定では、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理方法。
【請求項6】
請求項5に記載のデータ処理方法であって、
前記データは暗号化されており、
前記データの利用権限を有するか否かの判定では、更に、データ毎に、当該データを復号するための復号鍵と、当該データを利用できるユーザとを対応付けて管理し、
前記データの処理の許可では、前記ユーザに利用権限が付与された場合に、当該ユーザに対応する前記復号鍵を取得し、前記復号鍵で前記データを復号する、
データ処理方法。
【請求項7】
請求項5に記載のデータ処理方法であって、
前記認証コードを取得するステップで取得される認証コードは、所定期間毎に生成される、
データ処理方法。
【請求項8】
請求項5に記載のデータ処理方法であって、
前記データの利用権限を有するか否かの判定では、
前記データの識別情報と、前記データの利用権限を有するユーザとの対応関係を管理しており、前記対応関係に基づいて、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理方法。
【請求項9】
コンピュータに、
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得させ、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理させ、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザが、前記データの利用権限を有するか否かを判定させ、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可させ、
前記ユーザが前記ログイン認証に成功した場合に、前記ユーザに対して前記識別コードを設定させ、前記識別コードが設定されたユーザがアプリケーションプログラムの実行を要求した場合に、前記アプリケーションプログラムを実行させ、
前記データの処理の許可では、前記アプリケーションプログラムの実行が要求されると、要求したユーザの前記識別コードを特定し、更に、特定した前記識別コードに対応する認証コードを取得し、そして、前記アプリケーションプログラムの実行対象となるデータと取得した前記認証コードとを通知し、
前記データの利用権限を有するか否かの判定では、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
プログラム。
【請求項10】
請求項
9に記載のプログラムであって、
前記データは暗号化されており、
前記データの利用権限を有するか否かの判定では、更に、データ毎に、当該データを復号するための復号鍵と、当該データを利用できるユーザとを対応付けて管理し、
前記データの処理の許可では、前記ユーザに利用権限が付与された場合に、当該ユーザに対応する前記復号鍵を取得し、前記復号鍵で前記データを復号する、
プログラム。
【請求項11】
請求項9に記載のプログラムであって、
前記認証コードを取得するステップで取得される認証コードは、所定期間毎に生成される、
プログラム。
【請求項12】
請求項9に記載のコンピュータプログラムであって、
前記データの利用権限を有するか否かの判定では、
前記データの識別情報と、前記データの利用権限を有するユーザとの対応関係を管理しており、前記対応関係に基づいて、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理装置、データ処理方法、及びこれらを実現するためのプログラムに関する。
【背景技術】
【0002】
従来、ストレージに保存されたデータを、複数の端末装置から、アクセスできるようにするシステムがある。このようなシステムでは、データの不正利用を防止するために、データを暗号化するなどして、データのセキュリティを高めることが望まれている。例えば、特許文献1には、データのセキュリティを高めるシステムが開示されている。
【0003】
特許文献1に開示されたシステムは、ユーザ端末と鍵生成管理装置とを備えている。鍵生成管理装置は、暗号鍵と認証情報とを対応付けて格納する。そして、鍵生成管理装置は、ユーザ端末から送信される認証情報に基づいて認証を行い、認証が成功すると、暗号鍵をユーザ端末に送信する。ユーザ端末は、受信した暗号鍵を一時的に格納する。ユーザ端末は、特定のアプリケーションを実行し、そのアプリケーション上で、暗号鍵を用いて、格納している暗号化データを復号する。そして、ユーザ端末は、特定のアプリケーションに対するログアウト操作が行われているなど、所定の条件に基づいて受信した暗号鍵を削除する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されたシステムのようにデータを保護した場合であっても、そのシステムが、管理者によるデータのアクセス権限の変更が可能な仕様であると、データを利用するユーザが意図しないデータアクセスが発生する可能性がある。
【0006】
また、特許文献1に開示されたシステムでは、特定のアプリケーションによって、暗号化されたデータが復号される。このため、データを保護するためには、特定のアプリケーションを準備し、それを実行する必要がある。また、特定のアプリケーションによるデータ保護を行う場合、データの利用権限がない第三者が、その特定のアプリケーションを使用することで、保護されたデータにアクセスできるおそれがある。このため、アプリケーションに依存しないデータ保護が望まれる。
【0007】
さらに、特許文献1に開示されたシステムでは、暗号化鍵を所定条件で削除しているものの、一度復号したデータが平文のまま残存しているおそれがある。このとき、そのデータは、第三者によるアクセスが可能な状態であるため、十分なデータ保護が行われない。
【0008】
そこで、本開示の目的の一例は、アプリケーションに依存せずに、データの利用権限を有するユーザのみがデータ処理を行うことができるようにする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本開示の一側面におけるデータ処理装置は、
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得する、認証コード取得部と、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理する、コード管理部と、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザに、前記データの利用権限を有するか否かを判定する、判定部と、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可する、処理許可部と、
を備える、ことを特徴とする。
【0010】
また、上記目的を達成するため、本開示の一側面におけるデータ処理方法は、
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得する、ステップと、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理する、ステップと、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザに、前記データの利用権限を有するか否かを判定する、ステップと、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可する、ステップと、
を有する、ことを特徴とする。
【0011】
さらに、上記目的を達成するため、本開示の一側面におけるプログラムは、
コンピュータに、
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得する、ステップと、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理する、ステップと、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザに、前記データの利用権限を有するか否かを判定する、ステップと、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可する、ステップと、
を実行させる、ことを特徴とする。
【発明の効果】
【0012】
以上のように本開示によれば、アプリケーションに依存せずに、データの利用権限を有するユーザのみがデータ処理を行うことができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施形態におけるデータ処理装置の概略構成を示す構成図である。
【
図2】
図2は、データ処理装置を備えたデータ処理システムの構成を示すブロック図である。
【
図3】
図3は、ユーザと認証コードとを対応付けたデータテーブルの一例を示す図である。
【
図4】
図4は、識別コードと認証コードとを対応付けたデータテーブルの一例を示す図である。
【
図5】
図5は、データ名、復号鍵、及び利用可能なユーザのログイン名を対応付けたデータテーブルの一例を示す図である。
【
図6】
図6は、実施形態におけるデータ処理装置のログイン処理の実行時の動作を示すフロー図である。
【
図7】
図7は、実施形態におけるデータ処理装置のアプリケーションプログラムの実行時の動作を示すフロー図である。
【
図8】
図8は、実施形態におけるデータ処理装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、実施形態におけるデータ処理装置、データ処理方法、及びプログラムについて、
図1~
図7を参照しながら説明する。
【0015】
[装置構成]
最初に、実施形態におけるデータ処理装置の概略構成について
図1を用いて説明する。
図1は、実施形態におけるデータ処理装置20の概略構成を示す構成図である。
【0016】
データ処理装置20は、データの利用権限を有するユーザによるデータの処理を許可する装置である。
図1に示すように、データ処理装置20は、認証コード取得部1と、コード管理部2と、判定部3と、処理許可部4と、を備えている。
【0017】
認証コード取得部1は、ログインを行ったユーザがログイン認証に成功した場合に、ユーザに対応付けられた認証コードを取得する。
【0018】
コード管理部2は、ログイン認証に成功したユーザを識別する識別コードと、認証コードとを対応付けて管理する。
【0019】
判定部3は、データへのアクセス要求時に、アクセス要求を行ったユーザの識別コードに対応する認証コードの有無を判定する。そして、判定部3は、認証コードがあると判定した場合に、認証コードに対応するユーザに、データの利用権限を付与する。
【0020】
処理許可部4は、ユーザに利用権限が付与された場合、ユーザによるデータの処理を許可する。
【0021】
以上のように、本実施形態のデータ処理装置20は、ログインを行ったユーザが、ログイン認証に成功する都度、そのユーザに対して設定される認証コードを取得する。そして、データ処理装置20は、ユーザに設定された認証コードが取得できたことを条件として、ユーザに対してデータの利用を許可する。このため、第三者がデータ処理装置20を使用した場合であっても、認証コードが取得できていなければ、その第三者は、データの利用権限が無いものとして扱われ、データ処理装置20でのデータ処理を行うことができない。つまり、データの利用権限を有するユーザのみがデータ処理を行うことができ、例えば、暗号鍵が削除されずに残っていたとしても、第三者がデータを扱うことは不可能である。
【0022】
また、本実施形態のデータ処理装置20は、装置内で実行するアプリケーションがデータの利用を許可するのではなく、ログインしたユーザにデータの利用権限がある場合にデータの利用を許可している。つまり、データ処理装置20を用いれば、利用するデータ毎に、データを保護するためのアプリケーションを準備しなくても、ログインするユーザ毎にデータを安全に保護することができる。
【0023】
例えば、ユーザAのみが利用権限があるデータXと、ユーザBのみが利用権限があるデータYとがあり、データ処理装置20で、データ処理を行う2つのアプリケーションP、Qが実行されるとする。このとき、データ処理装置20にログインしたユーザAは、アプリケーションPを使って、データXを利用できるが、データYを利用できない。また、ユーザAは、アプリケーションQを使って、データXを利用できるが、データYを利用できない。一方、データ処理装置20にログインしたユーザBは、アプリケーションPを使って、データYを利用できるが、データXの利用はできない。また、ユーザBは、アプリケーションQを使って、データYを利用できるが、データXを利用できない。このように、データ処理装置20は、アプリケーションに依存しないデータ保護を可能とする。
【0024】
さらに、本実施形態のデータ処理装置20は、データにアクセスする都度、利用権限のあるユーザであればデータの処理を許可する。このため、利用権限のあるユーザが一度アクセスしたデータに、利用権限のない第三者が再度アクセスしたとしても、第三者は、そのデータを処理することができず、十分なデータ保護を行える。
【0025】
続いて、
図2~
図6を用いて、実施形態におけるデータ処理装置20の構成及び機能について具体的に説明する。以下では、データ処理装置20を備えたデータ処理システムについて説明する。
【0026】
図2は、データ処理装置20を備えたデータ処理システム50の構成を示すブロック図である。
図2に示すように、実施形態におけるデータ処理装置20は、ストレージ21及び認証サーバ22にデータ通信可能に接続されており、これらと共に、データ処理システム50を構築している。なお、
図2の例では、一つのデータ処理装置20のみ図示されているが、データ処理システム50には、複数のデータ処理装置20が存在してもよい。
【0027】
ストレージ21は、HDD(Hard disk drive)及びSSD(Solid state drive)等を備えた装置であり、データ処理装置20で扱われるデータを記憶する。ストレージ21は、有線又は無線により、データ処理装置20によりアクセスされる。ストレージ21に記憶されるデータは、データ処理装置20との間で受け渡しされる。ストレージ21が記憶するデータは暗号化されている。また、データは、そのデータを作成したユーザ毎に異なる鍵で暗号化されている。
【0028】
認証サーバ22は、有線又は無線により、データ処理装置20とデータ通信するサーバ装置である。認証サーバ22は、データ処理装置20において、ユーザが、ログイン名及びパスワード、又は生体情報等を入力して、ログインを行うと、予め登録されている認証情報にログイン時に入力した情報を照合して、ログインしたユーザの認証を行う。認証サーバ22は、ユーザのログイン認証が成功すると、そのユーザに対して、認証コードを生成し、データ処理装置20へ送信する。認証コードは、電子署名を含む文字列(トークン)である。認証コードは、データ処理装置20内で、データ処理を行うユーザを管理するのに用いられる。
【0029】
また、認証サーバ22は、上述したように認証コードを生成すると、
図3に示すように、生成した認証コードをユーザ(ログイン名)に対応付けて管理する。
図3は、ユーザと認証コードとを対応付けたデータテーブルの一例を示す図である。
【0030】
図3に示すデータテーブルは、ユーザのログイン名と認証コードとを対応付けている。ログイン名は、後述するが、データ処理装置20にユーザがログインするときに入力される、メールアドレス等、ユーザを一意に特定する文字列である。認証サーバ22は、認証コードを、このログイン名に対応付け、メモリ等に格納する。
【0031】
なお、認証サーバ22は、所定期間経過ごとに認証コードを生成し、生成した認証コードを、ログイン認証に成功したタイミングで、ユーザに対応付けることもできる。また、認証サーバ22は、認証コードを生成してから一定期間が経過すると、認証コードを再生成することもできる。認証サーバ22によって認証コードが定期的に生成されることにより、同じ認証コードが使い続けられる場合と比べて、データのセキュリティを高めることができる。
【0032】
図2に戻る。
図2に示すように、データ処理装置20は、
図1で説明した、認証コード取得部1、コード管理部2、判定部3、及び処理許可部4に加え、受付部5と、データ実行部6と、をさらに備えている。
【0033】
データ実行部6は、アプリケーションプログラムを実行するためのデータ実行環境7を構築している。具体的には、データ実行環境7は、例えば、データ処理装置20を構成するOS(Operating System)上で構築されている。また、実施形態では、ストレージ21に格納されているデータは、暗号化されている。このため、データ実行環境7では、アプリケーションプログラムは、復号されたデータを使用することになる。データの復号については後述する。
【0034】
また、データ実行部6は、認証サーバ22においてユーザのログイン認証が成功すると、そのユーザに対してデータ実行環境7へのログインを許可し、データ実行環境7で使用するユニークな識別コードを設定する。そして、データ実行部6によって識別コードが設定されると、認証コード取得部1は、識別コードを取得し、更に、取得した識別コードをコード管理部2に渡す。
【0035】
識別コードは、データ実行部6が、データ実行環境7において、ユーザを識別するためのユーザIDである。識別コードは、アルファベット、数字、又はこれらを用いた文字列である。データ実行部6は、ユーザがデータ処理装置20へログインする度に、そのユーザに対して異なる識別コードを設定してもよいし、同じユーザに対しては常に同じ識別コードを設定してもよい。
【0036】
データ実行部6は、受付部5が受け付けたユーザの操作に従い、ストレージ21に対して、格納されているデータのアクセス要求を行う。例えば、データ実行部6は、アクセス要求するデータの識別情報を含む信号を出力する。データの識別情報とは、例えば、データのファイル名等の識別子(データ名)である。
【0037】
受付部5は、ユーザによる操作、例えば、データ処理装置20へのログイン操作、データのアクセス操作といった、ユーザにより入力された各種操作を受け付ける。例えば、ログイン操作において、ユーザが、ログイン名及びパスワード等の認証情報を入力すると、受付部5は、これらの情報を受け付ける。ログイン名としては、メールアドレス、ユーザを一意に特定する文字列等が挙げられる。また、受付部5は、ログイン名及びパスワードに代えて、ユーザの生体情報等を読み取る構成であってもよい。データのアクセス操作では、ユーザは、処理を行うデータの識別子、例えば、ファイル名を入力する。
【0038】
認証コード取得部1は、受付部5がユーザによるログイン操作を受け付けると、ログイン操作で入力された認証情報を、認証サーバ22へ送信する。認証サーバ22は、上述したように、受信した認証情報が、データ処理装置20の利用権限を有するユーザとして管理されている認証情報と一致するかどうかを判定する。一致する場合、認証サーバ22は、ログイン操作を行ったユーザを認証する。認証サーバ22は、ログインが成功した場合は、ログインを行ったユーザに対して、認証コードを設定し、設定した認証コードをデータ処理装置20へ送信する。
【0039】
認証コード取得部1は、認証サーバ22から送信された認証コードを取得する。なお、
図2の例では、ログイン認証は、外部の認証サーバ22によって行われているが、認証サーバの機能がデータ処理装置20に備えられている場合は、データ処理装置20の内部で行われてもよい。
【0040】
コード管理部2は、データ実行部6から識別コードを取得すると、取得した識別コードを、認証コード取得部1が取得した認証コードに対応付けて管理する。コード管理部2は、例えば、認証コードと識別コードとを対応付けた、
図4に示すデータテーブルを用いて管理を行う。
図4は、識別コードと認証コードとを対応付けたデータテーブルの一例を示す図である。
【0041】
識別コードが設定されると、ユーザは、データ実行環境7において、識別コードの権限に基づいてアプリケーションプログラムを実行できる。この場合、アプリケーションプログラムは、ストレージ21に格納されているデータを読み出す。また、アプリケーションプログラムは、データを読み出す際に、OSが提供するシステムコールを実行し、システムコールに識別コードを付与する。
【0042】
処理許可部4は、実施形態では、アプリケーションプログラムによるシステムコールをフックし、システムコールの実行に関係する識別コードを特定し、特定した識別コードをコード管理部2に渡す。これにより、コード管理部2は、管理しているデータテーブルから、渡された識別コードに対応する認証コードを特定し、特定した認証コードを、処理許可部4に返却する。この結果、処理許可部4は、対応する認証コードを取得することができる。
【0043】
加えて、処理許可部4は、フックしたシステムコールから、アプリケーションプログラムの実行対象となるデータのデータ名(具体的には、データが存在しているロケ―ション識別子)を取得する。そして、処理許可部4は、取得したデータ名と認証コードとを、判定部3に渡す。
【0044】
判定部3は、実施形態では、データ実行環境7においてアプリケーションプログラムを実行したユーザに、データの利用権限があるか否かを判定する。具体的には、判定部3は、まず、処理許可部4からデータ名と認証コードとが渡されると、認証コードを、認証サーバ22に送る。これにより、認証サーバ22は、送られてきた認証コードを設定したログイン名を返却する。判定部3は、アプリケーションプログラムを実行したユーザのログイン名を特定する。
【0045】
また、判定部3は、実施形態では、データ毎に、各データを復号するための復号鍵と、その復号鍵に対応するデータを利用可能なユーザと、を対応付けて管理している。
図5は、データ名、復号鍵、及び利用可能なユーザのログイン名を対応付けたデータテーブルの一例を示す図である。
図5に示すように、判定部3は、データテーブルによって、データのデータ名(識別情報)と、そのデータの復号鍵と、データの利用権限を有するユーザ(ログイン名)とを対応付けて管理する。
【0046】
判定部3は、上述したように、ログイン名を特定すると、特定したログイン名が対応するデータ名と、処理許可部4から渡されたデータ名とを比較する。比較の結果、両者が一致する場合は、判定部3は、アプリケーションプログラムを実行したユーザには、データの使用権限があると判定する。また、この場合、判定部3は、処理許可部4に、対応する復号鍵を送る。処理許可部4は、復号鍵によってデータを復号し、ユーザにデータの処理を許可する。一方、両者が一致しない場合は、判定部3は、アプリケーションプログラムを実行したユーザには、そのデータの利用権限がないと判定する。
【0047】
なお、データを復号する復号鍵は、別途、鍵を管理する鍵管理部によって管理されていてもよい。また、暗号化と復号に必要な鍵は、同じ鍵(共通鍵)であってもよいし、異なる鍵(秘密鍵と公開鍵)であってもよい。処理許可部4は、外部から復号鍵を取得した場合、データを復号すると、取得した復号鍵を削除することが好ましい。
【0048】
[装置動作]
次に、実施形態におけるデータ処理装置20の動作について
図6及び
図7を用いて説明する。以下の説明においては、適宜
図1~
図5を参照する。また、実施形態では、データ処理装置20を動作させることによって、データ処理方法が実施される。よって、実施形態におけるデータ処理方法の説明は、以下のデータ処理装置20の動作説明に代える。
【0049】
図6を用いて、データ処理装置20におけるログイン処理について説明する。
図6は、実施形態におけるデータ処理装置のログイン処理の実行時の動作を示すフロー図である。
【0050】
図6に示すように、最初に、データ処理装置20において、受付部5は、ユーザによるログイン操作が行われると、ログイン操作を受け付ける(ステップS1)。受付部5は、ログイン操作を受け付けると、ログイン操作によって入力された認証情報を、認証コード取得部1に渡す。次に、認証コード取得部1は、入力された認証情報を、認証サーバ22へ送信し、ログイン認証を依頼する(ステップS2)。
【0051】
認証サーバ22は、認証情報を受信すると、認証処理を実行し、ログイン認証が成功した場合は、認証コードを生成し、生成した認証コードを、ログインを行ったユーザ(ログイン名)に対応付ける。また、認証サーバ22は、ログイン認証が成功した場合は、ログインしたユーザに対応づけた認証コードをデータ処理装置20に送信する。この場合、認証コード取得部1は、送信されてきた認証コードを取得する(ステップS3)。
【0052】
次に、データ実行部6は、認証サーバ22においてユーザのログイン認証が成功するとユーザによるデータ実行環境7へのログインを許可する(ステップS4)。続いて、データ実行部6は、ユーザに対して、データ実行環境7下で使用する識別コードを設定する(ステップS5)。
【0053】
次に、コード管理部2は、上述の
図4に示したように、ステップS3で取得された認証コードと、ステップS5で設定された識別コードとを対応付けて管理する(ステップS6)。そして、本処理は終了する。
【0054】
続いて、
図7を用いて、データ処理装置20におけるデータ実行処理について説明する。
図7は、実施形態におけるデータ処理装置20のアプリケーションプログラムの実行時の動作を示すフロー図である。
【0055】
まず、前提として、識別コードが設定されたユーザが、受付部5を介して、アプリケーションプログラムの実行操作を行い、データ実行環境7において、アプリケーションプログラムが実行されたとする。また、アプリケーションプログラムは、ストレージ21に格納されているデータを読み出す際に、OSが提供するシステムコールを実行し、システムコールに識別コードを付与する。
【0056】
図7に示すように、処理許可部4は、アプリケーションプログラムによるシステムコールがあると、それをフックし、システムコールの実行に関係する識別コードを特定する(ステップS11)。また、処理許可部4は、特定した識別コードをコード管理部2に渡す。
【0057】
次に、コード管理部2は、管理しているデータテーブルから、渡された識別コードに対応する認証コードを特定し、特定した認証コードを、処理許可部4に返却する。これにより、処理許可部4は、データのアクセス要求を行ったユーザに対応する認証コードを取得する(ステップS12)。
【0058】
次に、処理許可部4は、ステップS11でフックしたシステムコールから、アプリケーションプログラムが読みだそうとしているデータのデータ名を取得する(ステップS13)。そして、処理許可部4は、取得したデータ名と認証コードとを、判定部3に渡す。
【0059】
次に、判定部3は、認証コードを認証サーバ22に送って、アプリケーションプログラムを実行したユーザのログイン名を特定する(ステップS14)。具体的には、判定部3は、取得した認証コードを、認証サーバ22に送る。これにより、認証サーバ22は、送られてきた認証コードを設定したログイン名を返却するので、判定部3は、ログイン名を取得する。
【0060】
次に、判定部3は、アプリケーションプログラムを実行したユーザに、実行対象となるデータの利用権限があるか否かを判定する(ステップS15)。詳しくは、判定部3は、
図5のデータテーブルを参照し、特定したログイン名が対応するデータ名と、処理許可部4から渡されたデータ名とを比較し、両者が一致する場合は、アプリケーションプログラムを実行したユーザには、データの使用権限があると判定する。
【0061】
ユーザにデータの利用権限がない場合は(ステップS15:NO)、データ処理装置20は、利用権限がない内容を通知する等の処理を実行し、本処理は終了する。一方、ユーザにデータの利用権限がある場合(ステップS15:YES)、判定部3は、
図5のデータテーブルを参照して、ログイン名及びデータ名に対応する復号鍵を特定する。そして、判定部3は、処理許可部4に、対応する復号鍵を送る。これにより、処理許可部4は、復号鍵によってデータを復号し、ユーザにデータの処理を許可する(ステップS16)。
【0062】
以上のように本実施形態のデータ処理装置20は、ログインしたユーザに認証コードを設定して、ユーザを管理している。そして、データ処理装置20は、認証コードから、データへアクセス要求をしたユーザを特定し、そのユーザにデータの利用権限があるか否かを判定し、データの処理を許可している。つまり、第三者がデータ処理装置20を使用した場合であっても、認証コードが設定されていなければ、データの利用権限が無いものとして扱われ、その第三者によるデータの処理は許可されない。これにより、利用権限を有さないユーザによるデータの利用を排除することができる。
【0063】
また、データ処理システム50に複数のデータ処理装置20がある場合、ユーザは、データの利用権限を有していれば、どのデータ処理装置20からであっても、データを処理できる。
【0064】
さらに、各データ処理装置20は、装置内で実行するアプリケーションでデータの利用を許可するのではなく、ログインしたユーザにデータの利用権限がある場合にデータの利用を許可している。つまり、
図2で説明した各部を有する装置であれば、利用するデータ毎に、データを保護するためのアプリケーションを準備しなくても、ログインするユーザ毎にデータを安全に保護することができる。
【0065】
また、ユーザは、データ処理装置20にログインするだけで、自身が利用権限のあるデータを扱えるようになるため、保護された(暗号化された)データの復号を意識することなく、そのデータを利用することができる。
【0066】
また、利用権限のあるユーザが一度アクセスしたデータであっても、データのアクセス毎に復号するため、データが平文の状態で残存することがない。このため、利用権限のない第三者が再度アクセスしたとしても、第三者は、そのデータを処理することができず、十分なデータ保護を行える。
【0067】
なお、本実施形態では、認証コードは電子署名を含む文字列として説明したが、認証コードは、ユーザが利用可能なデータ一覧の情報を含んでもよい。この場合、判定部3は、認証コードから、特定したユーザはどのデータの利用が可能かを判定することができる。この場合、判定部3は、
図5に示すデータテーブルを管理する必要がない。
【0068】
また、データを記憶するストレージ21は、データ処理装置20に設けられていてもよいし、認証サーバ22に設けられていてもよい。
【0069】
[プログラム]
実施形態におけるプログラムは、コンピュータに、
図6に示すステップS1~S6、及び
図7に示すS11~S16を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施形態におけるデータ処理装置20とデータ処理方法とを実現することができる。この場合、コンピュータのプロセッサは、認証コード取得部1と、コード管理部2と、判定部3と、処理許可部4と、受付部5と、データ実行部6と、として機能し、処理を行なう。コンピュータとしては、汎用のPCの他に、スマートフォン、タブレット型端末装置が挙げられる。
【0070】
また、実施形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、認証コード取得部1、コード管理部2、判定部3、処理許可部4、受付部5、及びデータ実行部6、のいずれかとして機能してもよい。
【0071】
[物理構成]
ここで、実施形態におけるプログラムを実行することによって、データ処理装置20を実現するコンピュータについて
図8を用いて説明する。
図8は、実施形態におけるデータ処理装置20を実現するコンピュータの一例を示すブロック図である。
【0072】
図8に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0073】
また、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていてもよい。この態様では、GPU又はFPGAが、実施形態におけるプログラムを実行することができる。
【0074】
CPU111は、記憶装置113に格納された、コード群で構成された実施形態におけるプログラムをメインメモリ112に展開し、各コードを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。
【0075】
また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。
【0076】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0077】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0078】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)等の光学記録媒体が挙げられる。
【0079】
なお、実施形態におけるデータ処理装置20は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。さらに、データ処理装置20は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0080】
上述した実施形態の一部又は全部は、以下に記載する(付記1)~(付記15)によって表現することができるが、以下の記載に限定されるものではない。
【0081】
(付記1)
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得する、認証コード取得部と、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理する、コード管理部と、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザに、前記データの利用権限を有するか否かを判定する、判定部と、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可する、処理許可部と、
を備える、データ処理装置。
【0082】
(付記2)
付記1に記載のデータ処理装置であって、
前記データは暗号化されており、
前記判定部は、更に、データ毎に、当該データを復号するための復号鍵と、当該データを利用できるユーザとを対応付けて管理し、
前記処理許可部は、前記ユーザに利用権限が付与された場合に、当該ユーザに対応する前記復号鍵を取得し、前記復号鍵で前記データを復号する、
データ処理装置。
【0083】
(付記3)
付記1又は付記2に記載のデータ処理装置であって、
前記認証コード取得部が取得する認証コードは、所定期間毎に生成される、
データ処理装置。
【0084】
(付記4)
付記1から付記3のいずれか一つに記載のデータ処理装置であって、
前記ユーザが前記ログイン認証に成功した場合に、前記ユーザに対して前記識別コードを設定し、前記識別コードが設定されたユーザがアプリケーションプログラムの実行を要求した場合に、前記アプリケーションプログラムを実行する、データ実行部を更に備え、
前記処理許可部は、前記アプリケーションプログラムの実行が要求されると、要求したユーザの前記識別コードを特定し、更に、特定した前記識別コードに対応する認証コードを取得し、そして、前記アプリケーションプログラムの実行対象となるデータと取得した前記認証コードとを、前記判定部に通知し、
前記判定部は、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理装置。
【0085】
(付記5)
付記4に記載のデータ処理装置であって、
前記判定部は、
前記データの識別情報と、前記データの利用権限を有するユーザとの対応関係を管理しており、前記対応関係に基づいて、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理装置。
【0086】
(付記6)
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得する、ステップと、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理する、ステップと、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザに、前記データの利用権限を有するか否かを判定する、ステップと、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可する、ステップと、
を備える、データ処理方法。
【0087】
(付記7)
付記6に記載のデータ処理方法であって、
前記データは暗号化されており、
前記データの利用権限を有するか否かを判定するステップでは、更に、データ毎に、当該データを復号するための復号鍵と、当該データを利用できるユーザとを対応付けて管理し、
前記データの処理を許可するステップでは、前記ユーザに利用権限が付与された場合に、当該ユーザに対応する前記復号鍵を取得し、前記復号鍵で前記データを復号する、
データ処理方法。
【0088】
(付記8)
付記6又は付記7に記載のデータ処理方法であって、
前記認証コードを取得するステップで取得される認証コードは、所定期間毎に生成される、
データ処理方法。
【0089】
(付記9)
付記6から付記8のいずれか一つに記載のデータ処理方法であって、
前記ユーザが前記ログイン認証に成功した場合に、前記ユーザに対して前記識別コードを設定し、前記識別コードが設定されたユーザがアプリケーションプログラムの実行を要求した場合に、前記アプリケーションプログラムを実行する、ステップを更に備え、
前記データの処理を許可するステップでは、前記アプリケーションプログラムの実行が要求されると、要求したユーザの前記識別コードを特定し、更に、特定した前記識別コードに対応する認証コードを取得し、そして、前記アプリケーションプログラムの実行対象となるデータと取得した前記認証コードとを通知し、
前記データの利用権限を有するか否かを判定するステップでは、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理方法。
【0090】
(付記10)
付記9に記載のデータ処理方法であって、
前記データの利用権限を有するか否かを判定するステップでは、
前記データの識別情報と、前記データの利用権限を有するユーザとの対応関係を管理しており、前記対応関係に基づいて、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
データ処理方法。
【0091】
(付記11)
コンピュータに、
ログインを行ったユーザがログイン認証に成功した場合に、前記ユーザに対応付けられた認証コードを取得する、ステップと、
前記ログイン認証に成功したユーザを識別するための識別コードと、前記認証コードとを対応付けて管理する、ステップと、
データへのアクセス要求時に、前記アクセス要求を行ったユーザの識別コードに対応する認証コードの有無に基づいて、前記認証コードに対応するユーザに、前記データの利用権限を有するか否かを判定する、ステップと、
前記ユーザに利用権限が付与された場合、前記ユーザによる前記データの処理を許可する、ステップと、
を実行させるプログラム。
【0092】
(付記12)
付記11に記載のプログラムであって、
前記データは暗号化されており、
前記データの利用権限を有するか否かを判定するステップでは、更に、データ毎に、当該データを復号するための復号鍵と、当該データを利用できるユーザとを対応付けて管理し、
前記データの処理を許可するステップでは、前記ユーザに利用権限が付与された場合に、当該ユーザに対応する前記復号鍵を取得し、前記復号鍵で前記データを復号する、
プログラム。
【0093】
(付記13)
付記11又は付記12に記載のプログラムであって、
前記認証コードを取得するステップで取得される認証コードは、所定期間毎に生成される、
プログラム。
【0094】
(付記14)
付記11から付記13のいずれか一つに記載のプログラムであって、
前記コンピュータに、
前記ユーザが前記ログイン認証に成功した場合に、前記ユーザに対して前記識別コードを設定し、前記識別コードが設定されたユーザがアプリケーションプログラムの実行を要求した場合に、前記アプリケーションプログラムを実行する、ステップ、
を実行させ、
前記データの処理を許可するステップでは、前記アプリケーションプログラムの実行が要求されると、要求したユーザの前記識別コードを特定し、更に、特定した前記識別コードに対応する認証コードを取得し、そして、前記アプリケーションプログラムの実行対象となるデータと取得した前記認証コードとを通知し、
前記データの利用権限を有するか否かを判定するステップでは、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
プログラム。
【0095】
(付記15)
付記14に記載のプログラムであって、
前記データの利用権限を有するか否かを判定するステップでは、
前記データの識別情報と、前記データの利用権限を有するユーザとの対応関係を管理しており、前記対応関係に基づいて、前記認証コードに対応付けられたユーザが、前記アプリケーションプログラムの実行対象となるデータの利用権限を有するか否かを判定する、
プログラム。
【0096】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0097】
この出願は、2021年11月16日に出願された日本出願特願2021-186328を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0098】
本開示のデータ処理装置は、データの利用権限を有するユーザのみがデータ処理を行うことができる。本開示のデータ処理装置は、ユーザ毎にデータを安全に扱うシステムに用いることができる。
【符号の説明】
【0099】
1 :認証コード取得部
2 :コード管理部
3 :判定部
4 :処理許可部
5 :受付部
6 :データ実行部
20 :データ処理装置
20A :データ実行環境
21 :ストレージ
22 :認証サーバ
50 :データ処理システム
110 :コンピュータ
111 :CPU
112 :メインメモリ
113 :記憶装置
114 :入力インターフェイス
115 :表示コントローラ
116 :ライタ
117 :通信インターフェイス
118 :入力機器
119 :ディスプレイ装置
120 :記録媒体
121 :バス