説明

情報管理システム,クライアント,サーバおよびプログラム

【課題】サーバにおいてその情報の内容を閲覧できないようにしつつ、送信先クライアントが任意のタイミングで情報を取得できるようにする。
【解決手段】クライアントのユーザ情報をそのクライアントの共通鍵1bで暗号化した暗号化ユーザ情報と、ユーザ情報を送信すべきクライアントの公開鍵で暗号化した暗号化共通鍵とがサーバ側で記憶される(s350〜s390)。暗号化共通鍵を暗号化した公開鍵に対応する秘密鍵を有しないサーバは、これを復号してなる共通鍵1bを取得できない結果、これにて暗号化されたユーザ情報の内容を閲覧できない。その後、サーバは、クライアントからの要求を受けて該当する暗号化ユーザ情報,その公開鍵で暗号化された暗号化共通鍵を返信する(s460)。クライアント側では、その暗号化共通鍵を復号して共通鍵1bを取得でき、この共通鍵1bで暗号化ユーザ情報を復号してユーザ情報を取得できる(s240,s250)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1以上のクライアントそれぞれがサーバとデータ通信可能に接続されてなる情報管理システムに関する。
【背景技術】
【0002】
近年、特定のクライアントから別のクライアントにサーバを介して情報を送信するにあたり、このサーバにおいてその情報が閲覧できないようにすべく、その情報の送信に際して暗号化を施すことが行われている(特許文献1参照)。
【特許文献1】特開2002−132721号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ただ、上述した技術では、サーバが単に情報の送信を中継しているだけであるため、送信先のクライアントが起動していないなど情報を受信できない状態になっていると、そのクライアントが情報を取得することができない。そのため、サーバにおいてその情報が閲覧できないようにしつつ、送信先のクライアントから任意のタイミングで情報を取得できるようにすることが望ましいが、そのようなことは実現されていなかった。
【0004】
本発明は、そのような課題を解決するためになされたものであり、その目的は、サーバにおいてその情報の内容を閲覧できないようにしつつ、送信先となるクライアントが任意のタイミングで情報を取得できるようにするための技術を提供することである。
【課題を解決するための手段】
【0005】
上記課題を解決するため請求項1に記載の情報管理システムは、1以上のクライアントそれぞれがサーバとデータ通信可能に接続されてなる情報管理システムである。
これらのうち、少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、当該クライアントのユーザに関するユーザ情報を当該クライアントの共通鍵にて暗号化することで、該暗号化してなる暗号化ユーザ情報を生成する第1暗号化手段と、該第1暗号化手段が前記ユーザ情報を暗号化する際に用いた共通鍵を、前記ユーザ情報を通知すべき1以上のクライアントの公開鍵それぞれで暗号化することで、該暗号化してなる1以上の暗号化共通鍵を生成する第2暗号化手段と、前記第1暗号化手段により生成された暗号化ユーザ情報,前記第2暗号化手段により生成された暗号化共通鍵,および,当該クライアントを識別可能な識別情報を、一連の情報として前記サーバへと送信するクライアント側送信手段と、を備えている。
【0006】
そして、前記サーバは、前記クライアントから一連の情報として送信される前記暗号化ユーザ情報,前記暗号化共通鍵,および,前記識別情報を、それぞれ対応づけて記憶部に記憶させる記憶手段と、前記1以上のクライアントのうちのいずれかのクライアントから、特定の前記クライアントのユーザ情報を要求された際に、前記記憶部に記憶されている前記暗号化ユーザ情報のうち、その特定の前記クライアントを識別する前記識別情報に対応づけられた前記暗号化ユーザ情報を特定して、また、前記記憶部に記憶されている前記暗号化共通鍵のうち、その特定の前記クライアントを識別する前記識別情報に対応づけられた前記暗号化共通鍵であって、その要求元のクライアントの公開鍵にて暗号化してなる暗号化共通鍵を特定する特定手段と、該特定手段により特定された前記暗号化ユーザ情報および前記暗号化共通鍵を、前記要求元のクライアントへと送信するサーバ側送信手段と、を備えている。
【0007】
このように構成された情報管理システムによれば、クライアントから送信された暗号化ユーザ情報および暗号化共通鍵がサーバ側に記憶される。
この暗号化ユーザ情報は、クライアントのユーザ情報をそのクライアントの共通鍵で暗号化したものであるため、その共通鍵を有していないサーバ側では、ユーザ情報を復号してその内容を閲覧することはできない。
【0008】
そして、この暗号化ユーザ情報を暗号化した共通鍵は、クライアントの公開鍵でそれぞれ暗号化した暗号化共通鍵としてサーバ側に記憶されるとはいえ、これを復号するにはクライアントの秘密鍵が必要となるため、これを有していないサーバ側でクライアントの共通鍵を取得することはできない。これにより、クライアントのユーザ情報は、その内容が閲覧できない状態でサーバ側に記憶されることなる。
【0009】
その後、暗号化ユーザ情報および暗号化共通鍵を記憶したサーバは、クライアントからの要求を受けて、該当する暗号化ユーザ情報および暗号化共通鍵を返信することとなるが、ここでは、その要求元のクライアントの公開鍵で暗号化された暗号化共通鍵が返信される。そのため、このクライアント側では、その暗号化共通鍵をそのクライアント自身の秘密鍵で復号することにより、暗号化ユーザ情報の暗号化に用いた共通鍵を取得することができ、この共通鍵により暗号化ユーザ情報を復号してユーザ情報を取得することができる。
【0010】
このように、上述した情報管理システムであれば、サーバにおいてユーザ情報の内容を閲覧できないようにしつつ、送信先となるクライアントが任意のタイミングでユーザ情報を取得できるようにすることができる。
【0011】
なお、上述した構成におけるクライアント側送信手段は、暗号化ユーザ情報,暗号化共通鍵および識別情報を一連の情報としてサーバへ送信する手段であり、これら情報がサーバ側で「一連の情報」として認識されるような方式であれば、これら情報をどのような方式により送信することとしてもよい。例えば、上記情報それぞれを、所定の順に連続して送信する,「一連の情報」であることを示す情報を付した状態で送信する,といった方式が考えられる。
【0012】
また、クライアントの第1暗号化手段がユーザ情報の暗号化に用いる共通鍵については、あらかじめクライアント側で用意されたものであってもよいが、クライアント側で生成するものであってもよい。
【0013】
このためには、請求項1に記載の情報管理システムを、請求項2に記載の情報管理システムのように構成すればよい。
この情報管理システムにおいて、少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、当該クライアントの共通鍵を生成する共通鍵生成手段を備えており、前記第1暗号化手段が、前記ユーザ情報を前記共通鍵生成手段により生成された共通鍵にて暗号化してなる暗号化ユーザ情報を生成する、ように構成されている。
【0014】
このように構成すれば、クライアント側で、第1暗号化手段がユーザ情報の暗号化に用いる共通鍵を生成することができるため、あらかじめクライアント側で用意しておく必要がない。
【0015】
また、このように共通鍵を生成するタイミングについては、どのようなタイミングであってもよいが、例えば、請求項3に記載のように、前記ユーザ情報を前記サーバへと送信するのに先立ち、当該クライアントの共通鍵を生成する、ように構成することが考えられる。
【0016】
このように構成すれば、クライアントからユーザ情報をサーバへと送信するセッション毎に別の共通鍵が生成され、それに基づくユーザ情報の暗号化が行われることとなる。そのため、いずれかのセッションにおいて使用された共通鍵が漏洩したとしても、その共通鍵に基づいて内容が閲覧されてしまうユーザ情報を、そのセッションで暗号化されたユーザ情報だけに留めることができる。これにより、情報管理システムとしての情報漏洩の危険を低くすることができると共に、情報漏洩した場合の被害を最小限にすることができる。
【0017】
ところで、上述したクライアントからサーバへと送信される暗号化ユーザ情報は、そのまま送信先となるクライアントへと送信されることとすればよいが、このクライアント側で最終的に取得したユーザ情報が通信路上で改ざんされていないことを確認できる状態で送信することが望ましい。
【0018】
このためには、例えば、請求項1から3のいずれかに記載の情報管理システムを、請求項4に記載の情報管理システムのように構成するとよい。
この情報管理システムにおいて、少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、前記ユーザ情報に電子署名を施す第1電子署名手段を備え、前記第1暗号化手段が、前記第1電子署名手段により電子署名が施された前記ユーザ情報を暗号化してなる暗号化ユーザ情報を生成する、ように構成されている。
【0019】
このように構成すれば、クライアントからサーバへと送信された暗号化ユーザ情報は、電子署名が施されたユーザ情報を暗号化したものとなるため、送信先となるクライアント側では、この暗号化ユーザ情報を復号して得られるユーザ情報につき、そこに施された電子署名に基づいて改ざんされていないことを確認することができる。
【0020】
同様に、上述したクライアントからサーバへと送信される暗号化共通鍵についても、そのまま送信先となるクライアントへと送信されることとすればよいが、このクライアント側で最終的に取得した暗号化共通鍵が通信路上で改ざんされていないことを確認できる状態で送信することが望ましい。
【0021】
このためには、例えば、請求項1から4のいずれかに記載の情報管理システムを、請求項5に記載の情報管理システムのように構成するとよい。
この情報管理システムにおいて、少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、当該クライアントの共通鍵に電子署名を施す第2電子署名手段を備え、前記第2暗号化手段が、前記第2電子署名手段により電子署名が施された共通鍵を暗号化してなる1以上の暗号化共通鍵を生成する、ように構成されている。
【0022】
このように構成すれば、クライアントからサーバへと送信された暗号化共通鍵は、電子署名が施された共通鍵を暗号化したものとなるため、送信先となるクライアント側では、この暗号化共通鍵を復号して得られる共通鍵につき、そこに施された電子署名に基づいて改ざんされていないことを確認することができる。
【0023】
なお、上述した各情報管理システムにおいては、クライアントとサーバとの間の通信をそのまま(平文の状態で)実施するように構成すればよいが、情報管理システムとしての情報漏洩の危険を少なくするためには、両者間の通信を暗号化して実施できるようにすることが望ましい。
【0024】
このためには、請求項1から5のいずれかに記載の情報管理システムを、請求項6に記載の情報管理システムのように構成するとよい。
この情報管理システムにおいて、少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、前記暗号化ユーザ情報,前記暗号化共通鍵および当該クライアントを識別可能な識別情報を、それぞれ前記サーバで復号可能な暗号鍵(サーバの共通鍵)により暗号化する第3暗号化手段を備えており、前記クライアント側送信手段が、前記第3暗号化手段により暗号化された暗号化ユーザ情報,前記暗号化共通鍵および前記識別情報を、一連の情報として前記サーバへと送信する、ように構成されている。
【0025】
また、前記サーバにおいて、前記記憶手段は、前記クライアントから一連の情報として送信され、前記サーバの共通鍵にて暗号化された前記暗号化ユーザ情報,前記暗号化共通鍵および前記識別情報を、それぞれ前記サーバの共通鍵により復号したうえで、前記記憶部に記憶させる、ように構成されている。
【0026】
このように構成すれば、クライアントからサーバへと送信される情報が、サーバでのみ復号できるように暗号化された状態で送信されることとなるため、両者間の通信に際しての情報漏洩の危険を少なくすることができる。
【0027】
なお、このように、クライアントからサーバへのデータの送信だけでなく、サーバからクライアントへのデータの送信についても、同様に暗号化して行われるように構成してもよい。
【0028】
また、請求項7に記載のクライアントは、請求項1から6のいずれかに記載のクライアントの備える全ての手段を備えていることを特徴とするクライアントである。
このように構成されたクライアントによれば、請求項1から6のいずれかに記載の情報管理システムの一部を構成することができる。
【0029】
また、請求項8に記載のサーバは、請求項1から6のいずれかに記載のサーバの備える全ての手段を備えていることを特徴とするサーバである。
このように構成されたサーバによれば、請求項1から6のいずれかに記載の情報管理システムの一部を構成することができる。
【0030】
また、請求項9に記載のプログラムは、請求項1から6のいずれかに記載のクライアントの備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラムである。
【0031】
このプログラムにより制御されるコンピュータシステムは、請求項1から6のいずれかに記載の情報管理システムの一部を構成することができる。
また、請求項10に記載のプログラムは、請求項1から6のいずれかに記載のクライアントの備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラムである。
【0032】
このプログラムにより制御されるコンピュータシステムは、請求項1から6のいずれかに記載の情報管理システムの一部を構成することができる。
なお、上述した各プログラムは、各種記録媒体や通信回線を介してクライアント,サーバやこれを利用するユーザに提供されるものである。
【発明を実施するための最良の形態】
【0033】
以下に本発明の実施形態を図面と共に説明する。
(1)第1実施形態
(1−1)全体構成
情報管理システム1は、図1に示すように、ネットワークデバイスである1以上のクライアント10およびサーバ20がそれぞれネットワーク100を介してデータ通信可能に接続されてなるシステムである。ここで、クライアント10,サーバ20それぞれは、周知のコンピュータシステムにより構成されたものである。
(1−2)クライアント10による記憶要求処理
以下に、クライアント10(のCPU)により実行される記憶要求処理の処理手順を図2に基づいて説明する。この記憶要求処理は、クライアント10のユーザに関するユーザ情報をサーバ20経由でクライアント10自身または他のクライアント10に送信すべく実行する処理である。なお、この記憶要求処理は、クライアント10が起動され、本記憶要求処理を起動するための操作が行われた際に起動される。
【0034】
この記憶要求処理が起動されると、まず、サーバ20との間でSSLに基づくセッションが確立される(s110)。
ここでは、まず、サーバ20の公開鍵証明書を要求すべく、サーバ20に対してHTTPSリクエストが送信され(図3の「1」参照)、このHTTPSリクエストを受信したサーバ20から送信される公開鍵証明書が受信される(同図「2」→「3」参照)。続いて、この公開鍵証明書の認証(有効期限や失効の確認)を行った後、この公開鍵証明書からサーバ20の公開鍵(同図「公開鍵(S)」参照)が取得される。続いて、クライアント10の共通鍵(同図「共通鍵(1a)」参照)が生成され、これがサーバ20の公開鍵(S)にて暗号化された状態でサーバ20へと送信される(同図「4」→「5」参照)。そして、これを受信したサーバ20側では、この暗号化された共通鍵(1a)をサーバ20自身の秘密鍵(同図「秘密鍵(S)」参照)にて復号することで、クライアント10の共通鍵(1a)を取得することとなる(同図「5」参照)。
【0035】
これ以降、クライアント10とサーバ20との間では、それぞれクライアント10の共通鍵(1a)を用いた共通鍵暗号方式によるデータ通信が行われることとなる。
次に、クライアント10のユーザを識別するための識別情報がサーバ20へと送信される(s120)。ここでは、上記識別情報(同図「識別情報(1)」参照)が上記s110にて生成された共通鍵(1a)で暗号化された状態で送信される(同図「6」参照)。この識別情報を受信したサーバ20側では、その暗号化された識別情報をクライアント10の共通鍵(1a)で復号したうえで記憶部22に記憶する(同図「6」→「7」参照)。なお、本実施形態において、上記識別情報とは、例えば、クライアント10のユーザに割り当てられたIDのように、サーバ20側で閲覧されても問題のない情報や、サーバ20側での情報管理にのみ用いられる情報などからなるものである。
【0036】
次に、クライアント10の共通鍵が生成される(s130)。ここでは、上述したs110にて生成された共通鍵(1a)とは別に、新たな共通鍵(同図「共通鍵(1b)」参照)が生成される(同図「8」参照)。
【0037】
次に、クライアント10のユーザに関するユーザ情報に電子署名が施されたうえ、このユーザ情報をs130にて生成された共通鍵(1b)で暗号化してなる暗号化ユーザ情報が生成される(s140)。ここでは、上記ユーザ情報が、このユーザ情報を基に生成された電子署名と共に、s130にて生成された共通鍵(1b)で暗号化され、これが暗号化ユーザ情報として生成される(同図「9」参照)。なお、本実施形態において、上記ユーザ情報とは、例えば、クライアント10のユーザの個人情報のように、サーバ20側で閲覧されるべきでない情報などからなるものである。
【0038】
次に、s140にて生成された暗号化ユーザ情報がサーバ20へと送信される。ここ(s150)では、暗号化ユーザ情報が上記s110にて生成された共通鍵(1a)にて暗号化された状態で送信される(同図「9」→「10」参照)。この暗号化された暗号化ユーザ情報を受信したサーバ20側では、これをクライアント10の共通鍵(1a)にて復号したうえ、こうして得られた暗号化ユーザ情報を、上記s120にて送信された識別情報と対応づけて記憶部22に記憶する(同図「10」参照)。
【0039】
次に、s130にて生成された共通鍵(1b)に電子署名が施されたうえ、この共通鍵(1b)を、上記ユーザ情報を送信すべきクライアント10の公開鍵(同図「公開鍵(1)」「公開鍵(2)」…「公開鍵(n)」参照;nは任意の数)それぞれで暗号化してなる暗号化共通鍵が生成される(s160)。ここでは、上記共通鍵(1b)が、この共通鍵を基に生成された電子署名と共に、該当クライアント10それぞれの公開鍵(1)〜(n)それぞれで暗号化され、これらが暗号化共通鍵として生成される(同図「11」参照)。
【0040】
次に、s160にて生成された暗号化共通鍵それぞれがサーバ20へと送信される。ここ(s170)では、暗号化共通鍵それぞれが上記s110にて生成された共通鍵(1a)にて暗号化された状態で送信される(同図「11」→「12」参照)。この暗号化された暗号化共通鍵を受信したサーバ20側では、これをクライアント10の共通鍵(1a)で復号したうえ、こうして得られた暗号化共通鍵それぞれを、上記s120にて送信された識別情報と対応づけて記憶部22に記憶する(同図「12」参照)。
【0041】
こうして、s170が行われたら、s110にて確立されたセッションが解放されたうえで、本記憶要求処理が終了する。
(1−3)クライアント10による送信要求処理
以下に、クライアント10(のCPU)により実行される送信要求処理の処理手順を図2に基づいて説明する。この送信要求処理は、所定クライアント10のユーザ情報をサーバ20から取得すべく実行する処理である。なお、この送信要求処理は、クライアント10が起動され、本送信要求処理を起動するための操作が行われた際に起動される。
【0042】
この送信要求処理が起動されると、まず、サーバ20との間でSSLに基づくセッションが確立される(s210)。
ここでは、まず、サーバ20の公開鍵証明書を要求すべく、サーバ20に対してHTTPSリクエストが送信され(図3の「15」参照)、このHTTPSリクエストを受信したサーバ20から送信される公開鍵証明書が受信される(同図「16」→「17」参照)。続いて、この公開鍵証明書の認証(有効期限や失効の確認)を行った後、この公開鍵証明書からサーバ20の公開鍵(同図「公開鍵(S)」参照)が取得される。続いて、クライアント10の共通鍵(同図「共通鍵(2a)」参照)が生成され、これがサーバ20の公開鍵(S)にて暗号化された状態でサーバ20へと送信される(同図「18」→「19」参照)。そして、これを受信したサーバ20側では、この暗号化された共通鍵(2a)を、サーバ20自身の秘密鍵(同図「秘密鍵(S)」参照)にて復号することで、クライアント10の共通鍵(2a)を取得することとなる(同図「19」参照)。
【0043】
これ以降、クライアント10とサーバ20との間では、それぞれクライアント10の共通鍵(2a)を用いた共通鍵暗号方式によるデータ通信が行われることとなる。
次に、所定クライアント10のユーザ情報を要求するための要求コマンドがサーバ20へと送信される(s220)。ここでは、所定のクライアント10を指定(例えば、該当クライアント10の識別情報における一部の情報を付加)してなる要求コマンドが、s210にて生成された共通鍵(2a)にて暗号化した状態でサーバ20へと送信される(同図「20」参照)。
【0044】
この要求コマンドを受信したサーバ20側では、まず、この要求コマンドをクライアント10の共通鍵(2a)にて復号し、こうして復号した要求コマンドにて指定されたクライアント10の識別情報に基づき、この識別情報に対応づけられた状態で記憶部22に記憶された暗号化ユーザ情報を抽出する。また、その識別情報に対応づけられた状態で記憶された暗号化共通鍵のうち、s220による要求コマンドの送信元となるクライアント10の公開鍵にて暗号化されている暗号化共通鍵を抽出する。そして、サーバ20側からは、これら識別情報,暗号化ユーザ情報,暗号化共通鍵が、それぞれクライアント10の共通鍵(2a)にて暗号化された状態で返信されてくる(同図「21」→「26」参照)。
【0045】
こうして、要求コマンドが送信された後、サーバ20からそれぞれ暗号化された識別情報,暗号化ユーザ情報および暗号化共通鍵が受信される(s230)。これら識別情報,暗号化ユーザ情報および暗号化共通鍵は、それぞれ上記s210にて生成された共通鍵(2a)にて暗号化されているため、この共通鍵(2a)にて復号することにより、これらが取得される(同図「22」「24」「26」参照)。なお、ここで取得される暗号化共通鍵は、クライアント10自身の公開鍵(2)にて暗号化された共通鍵(1b)であり、同取得される暗号化ユーザ情報は、その共通鍵(1b)にて暗号化されたユーザ情報である。
【0046】
次に、s230にて受信された暗号化共通鍵が、クライアント10自身の秘密鍵(同図「秘密鍵(2)」参照)にて復号され、こうして復号された共通鍵(1b)がこれに付された署名に基づいて認証されることで、この共通鍵(1b)が取得される(同図「27」参照)(s240)。
【0047】
そして、s230にて受信された暗号化ユーザ情報が、s240にて取得された共通鍵(1b)にて復号され、こうして復号されたユーザ情報がこれに付された署名に基づいて認証されることで、このユーザ情報が取得される(同図「28」参照)(s250)。
【0048】
こうして、s250が行われたら、s210にて確立されたセッションが解放されたうえで、本送信要求処理が終了する。
(1−4)サーバ20による応答処理
以下に、サーバ20(のCPU)により実行される応答処理の処理手順を図2に基づいて説明する。この応答処理は、ネットワーク100を介してアクセスを受けた際に起動される。
【0049】
この応答処理が起動されると、まず、その起動に先立って受けたアクセスがSSLに基づくセッションの確立を要求する旨のアクセスであるか否かがチェックされる(s310)。ここでは、応答処理の起動に先立ち、公開鍵証明書を要求するためのHTTPSリクエストが受信された場合であれば、SSLに基づくセッションの確立を要求する旨のアクセスであると判定される。なお、このアクセスは、同図s110,s210にて発生するものである。
【0050】
このs310にて、SSLに基づくセッションの確立を要求する旨のアクセスではないと判定された場合(s310:NO)、そのアクセスの目的に応じた処理(その他の処理)が行われた後(s320)、本応答処理が終了する。
【0051】
一方、s310にて、SSLに基づくセッションの確立を要求する旨のアクセスであると判定された場合(s310:YES)、クライアント10との間でSSLに基づくセッションが確立される(s330)。
【0052】
ここでは、まず、アクセス元のクライアント10に対して、サーバ20自身の公開鍵証明書が送信される(図3の「2」→「3」参照)。この公開鍵証明書を受信したクライアント10側からは、上述したように、サーバ20の公開鍵(S)にて暗号化されたクライアント10の共通鍵(1a)が送信されてくため(同図「4」→「5」)、これをサーバ20自身の秘密鍵(S)にて復号することで、クライアント10の共通鍵(1a)が取得される(同図「5」参照)。
【0053】
これ以降、サーバ20とクライアント10との間では、それぞれそのクライアント10の共通鍵(1a)を用いた共通鍵暗号方式でデータ通信が行われることとなる。
こうして、SSLに基づくセッションが確立された後、クライアント10側からは、図2のs120またはs220により、そのクライアント10の識別情報または要求コマンドが、クライアント10の共通鍵(1a)または(2a)にて暗号化された状態で送信されてくる(同図「6」「20」参照)。
【0054】
こうして、s330にてセッションが確立されたクライアント10から送信されてきたデータがチェックされ(s340)、そのデータが識別情報であると判定された場合(s340:YES)、こうして受信された識別情報が記憶部22に記憶される(s350)。ここでは、クライアント10からの識別情報を、s330にて取得されたクライアント10の共通鍵(1a)にて復号したうえで、これが記憶部22に記憶される(同図「6」→「7」参照)。
【0055】
なお、クライアント10から識別情報が送信されてきた場合、このクライアント10からは、上述したように、暗号化ユーザ情報および暗号化共通鍵が順次送信されてくることとなる。
【0056】
次に、クライアント10から送信されてくる暗号化ユーザ情報が受信され(s360)、これが、直前に行われた上記s350にて記憶された識別情報と対応づけた状態で記憶部22に記憶される(s370)。ここでは、クライアント10から送信されてきた暗号化ユーザ情報が、s320にて取得されたクライアント10の共通鍵(1a)にて復号され、こうして復号された暗号化ユーザ情報が記憶部22に記憶される(同図「10」参照)。
【0057】
なお、この暗号化ユーザ情報は、クライアント10の共通鍵(1b)にて暗号化されているため、この共通鍵(b)を有していなければ、これをサーバ20側で復号してその内容を閲覧することはできない。
【0058】
そして、クライアント10から送信されてくる暗号化共通鍵が受信され(s380)、これらが、直前に行われた上記s350にて記憶された識別情報と対応づけた状態でそれぞれ記憶部22に記憶される(s390)。ここでは、クライアント10から送信されてきた暗号化共通鍵が、それぞれs330にて取得されたクライアント10の共通鍵(1a)にて復号され、こうして復号された暗号化共通鍵が記憶部22に記憶される(同図「12」参照)。
【0059】
なお、これら暗号化共通鍵は、上述した暗号化ユーザ情報の暗号化に用いた共通鍵(1b)を暗号化したものであるが、それぞれクライアント10の公開鍵(1)〜(n)にて暗号化されたものであるため、各クライアント10の秘密鍵(1)〜(n)を有していないサーバ20側で復号することはできない。つまり、サーバ20は、暗号化ユーザ情報の暗号化に用いた共通鍵(1b),つまり暗号化ユーザ情報を直接的に復号できる共通鍵(1b)を有していないということになる。
【0060】
こうして、s390が行われたら、s320にて確立されたセッションが解放されたうえで、本応答処理が終了する。
また、上述したs340で、クライアント10から送信されてきたデータが識別情報ではなく(s340:NO)、要求コマンドであると判定された場合(s440:YES)、この要求コマンドにて指定されたクライアント10の識別情報が特定され、この識別情報に対応する暗号化ユーザ情報および暗号化共通鍵が、記憶部22に記憶されている暗号化ユーザ情報および暗号化共通鍵の中から選択される(s450)。
【0061】
ここでは、まず、要求コマンドにて指定されたクライアント10の識別情報に対応づけて記憶部22に記憶されている暗号化ユーザ情報が選択される。そして、同識別情報に対応づけて記憶部22に記憶されている暗号化共通鍵のうち、アクセス元のクライアント10の公開鍵として特定される公開鍵(i)(iは1〜nのいずれか)で暗号化されている暗号化共通鍵が選択される。
【0062】
次に、要求コマンドにて指定されたクライアント10の識別情報,s450にて選択された暗号化ユーザ情報および暗号化共通鍵が、アクセス元のクライアント10に対して送信される(同図「21」→「26」参照)(s460)。
【0063】
こうして、s460が行われたら、s320にて確立されたセッションが解放されたうえで、本応答処理が終了する。
また、上述したs340で、クライアント10から送信されてきたデータが識別情報,要求データのいずれでもないと判定された場合(s340:NO,s440:NO)、プロセスがs320へ移行して、そのデータの目的に応じた処理(その他の処理)が行われた後、本応答処理が終了する。
(2)第2実施形態
本実施形態における情報管理システムは、第1実施形態における情報管理システムと同様の構成であり、一部の処理手順が異なっているだけであるため、この相違点についてのみ詳述する。
【0064】
なお、本実施形態では、記憶要求処理,送信要求処理,応答処理が、複数種類のユーザ情報をそれぞれ同一または異なるクライアント10に送信すべく構成されている点で第1実施形態と相違している。
(2−1)記憶要求処理
本実施形態における記憶要求処理では、第1実施形態と同様にs110が行われた後、図4に示すように、s120が行われることなくプロセスがs130へ移行し、このs130で、クライアント10の共通鍵が複数生成される。ここでは、複数種類のユーザ情報(図6の「ユーザ情報(1−1)〜(1−m)」参照)それぞれに対応する共通鍵(1b_1)〜(1b_m)が複数生成される(同図「8」参照)。
【0065】
次に、上記s130にて生成された複数の共通鍵のうち、以降の処理で暗号化に用いていない共通鍵が存在しているか否かがチェックされる(s132)。
このs132で、暗号化に用いていない共通鍵が存在していると判定された場合(s132:YES)、それら共通鍵のうち、いずれかの共通鍵(1b_j)(1≦j≦m)が選択される(s134)。
【0066】
次に、第1実施形態におけるs120と同様、識別情報のサーバ20への送信が行われた後(s136)、プロセスがs140へ移行して、クライアント10に送信すべき複数のユーザ情報のうち、s134にて選択された共通鍵(1b_j)に対応するユーザ情報に電子署名が施されたうえ、このユーザ情報を上記共通鍵(1b_j)にて暗号化してなる暗号化ユーザ情報(j)が生成される。
【0067】
この後、s150〜s170が行われ、このs170の後、プロセスがs132へ戻る。こうして、s132〜s170が、暗号化に用いていない共通鍵が存在しなくなるまで繰り返される。これにより、s130にて生成された共通鍵と同じ数だけ、暗号化ユーザ情報,暗号化共通鍵のセットが生成され(同図「9」参照)、これらがサーバ20側で記憶されることとなる(同図「9」→「10」,「11」→「12」参照)。
【0068】
本実施形態においては、図7に示すように、これらデータセットが、それぞれ異なるクライアント10の公開鍵にて暗号化された共通鍵(1b)を含んでいる場合を例示する。このことは、各データセットに含まれるユーザ情報の送信先として、それぞれ異なるクライアント10を定めていることを示す。なお、これらデータセットには、それぞれ本記憶要求処理を実行するクライアント10の公開鍵にて暗号化された共通鍵(1b_1)も含めており、これにより、本記憶要求処理を実行したクライアント10自身をもユーザ情報の送信先として定めている。
【0069】
そして、上記s132で暗号化に用いていない共通鍵が存在しないと判定されたら(s132:NO)、全てのユーザ情報の送信が終了した旨を通知するための終了通知がサーバ20へと送信された後(s138)、本記憶要求処理が終了する。
(2−2)クライアント10による送信要求処理
本実施形態における送信要求処理では、第1実施形態と同様に、s210〜s250が行われた後、図5に示すように、更にサーバ20から識別情報,暗号化ユーザ情報および暗号化共通鍵を受信したか否かがチェックされる(s252)。
【0070】
サーバ20は、後述のように、本送信要求処理を実行するクライアント10に送信すべき暗号化ユーザ情報および暗号化共通鍵のセットを全て送信した後、データセットの送信が終了した旨を通知するための終了通知を送信するように構成されている。そのため、このクライアント10に送信すべきデータセットがまだ残っている場合には、更にサーバ20から識別情報,暗号化ユーザ情報および暗号化共通鍵が送信されてくることとなる。
【0071】
このs252でそれらのデータを受信したと判定された場合(s252:YES)、プロセスがs240へ戻り、それらデータのうちの暗号化共通鍵から共通鍵が取得される。この後、サーバ20から終了通知を受信するまで、s240からs252が繰り返された後、s252で終了通知を受信したと判定された場合(s252:NO)、本送信要求処理が終了する。
(2−3)サーバ20による応答処理
本実施形態における応答処理では、第1実施形態と同様に、s310〜s390が行われた後、図4,図5に示すように、サーバ20から識別情報を受信したか、終了通知を受信したかがチェックされる(s392)。
【0072】
このs392で、識別情報を受信したと判定された場合(s392:YES)、プロセスがs350へ戻り、この識別情報が記憶された後、s360〜s392が行われる。
こうして、s350〜s392が、サーバ20から終了通知を受信するまで繰り返されることにより、記憶部22には、暗号化ユーザ情報,暗号化共通鍵のデータセットがその繰り返し回数と同じ数(m)だけ記憶されることとなる(図6の「9」→「10」,「11」→「12」参照)。
【0073】
その後、上記s392で終了通知を受信したと判定された場合(s392:NO)、本応答処理が終了する。
また、クライアント10から送信されてきたデータが要求コマンドであると判定された場合(s340:NO,s440:YES)、記憶部22から、その要求コマンドにて指定されたクライアント10の識別情報に対応する全てのデータセットが抽出される(s442)。
【0074】
次に、上記s442にて抽出されたデータセットのうち、以降の処理で参照されていないデータセットが存在しているか否かがチェックされる(s444)。
このs444で、以降の処理で参照されていないデータセットが存在していると判定された場合(s444:YES)、それらデータセットのうち、いずれかのデータセットが選択される(s446)。
【0075】
次に、s446にて選択されたデータセットの中に、要求コマンドで指定されたクライアント10の識別情報に対応する暗号化共通鍵が含まれているか否かがチェックされる(s448)。
【0076】
このs448で、該当する暗号化共通鍵が含まれていないと判定された場合(s448:NO)、プロセスがs444へと戻る。
一方、上記s448で、該当する暗号化共通鍵が含まれていると判定された場合(s448:YES)、プロセスがs460へ移行して、その含まれていると判定された暗号化共通鍵と、上記s446にて選択されたデータにおける識別情報および暗号化ユーザ情報とが、アクセス元のクライアント10に対して送信される(同図「21」〜「26」参照)。
(3)作用,効果
このように構成された情報管理システム1によれば、クライアント10から送信された暗号化ユーザ情報および暗号化共通鍵が、識別情報と共にサーバ20側に記憶される(応答処理のs350,s370,s390)。
【0077】
この暗号化ユーザ情報は、クライアント10のユーザ情報をそのクライアント10の共通鍵(1b)で暗号化したものであるため(記憶要求処理のs140)、その共通鍵(1b)を有していないサーバ20側では、ユーザ情報を復号してその内容を閲覧することはできない。
【0078】
そして、この暗号化ユーザ情報を暗号化した共通鍵(1b)は、そのユーザ情報を送信すべきクライアント10の公開鍵(1)〜(n)でそれぞれ暗号化した暗号化共通鍵としてサーバ20側に記憶されるとはいえ、これを復号するには該当クライアント10の秘密鍵が必要となるため、これを有していないサーバ20側でクライアント10の共通鍵(1b)を取得することはできない。これにより、クライアント10のユーザ情報は、その内容が閲覧できないようにした状態でサーバ20側に記憶されることなる。
【0079】
その後、暗号化ユーザ情報および暗号化共通鍵を記憶したサーバ20は、クライアント10からの要求を受けて、該当する暗号化ユーザ情報および暗号化共通鍵を返信することとなるが(応答処理のs460)、この暗号化共通鍵は、その要求元のクライアント10の公開鍵で暗号化されたものである。そのため、このクライアント10側では、その暗号化共通鍵を自身の秘密鍵で復号することにより、暗号化ユーザ情報の暗号化に用いた共通鍵を取得することができ、この共通鍵により暗号化ユーザ情報を復号してユーザ情報を取得することができる(送信要求処理のs240,s250)。
【0080】
このように、上述した情報管理システム1であれば、サーバ20においてユーザ情報の内容を閲覧できないようにしつつ、送信先となるクライアント10が任意のタイミング(送信要求処理の起動タイミング)でユーザ情報を取得できるようにすることができる。
【0081】
また、上記実施形態では、記憶要求処理毎にクライアント10側で共通鍵(1b)を生成しているため、あらかじめクライアント10側で共通鍵(1b)を用意しておく必要がない。
【0082】
特に、上記実施形態では、クライアント10からユーザ情報をサーバへと送信するセッション毎に別の共通鍵が生成され、それに基づくユーザ情報の暗号化が行われることとなる。そのため、いずれかのセッションにおいて使用された共通鍵が漏洩したとしても、その共通鍵に基づいて内容が閲覧されてしまうユーザ情報を、そのセッションで暗号化されたユーザ情報だけに留めることができる。これにより、情報管理システム1としての情報漏洩の危険を低くすることができると共に、情報漏洩した場合の被害を最小限にすることができる。
【0083】
また、上記実施形態においては、クライアント10からサーバ20へと送信される暗号化ユーザ情報および暗号化共通鍵は、ユーザ情報および共通鍵それぞれに電子署名を施したうえで暗号化されたものである。そのため、送信先となるクライアント10側では、この暗号化ユーザ情報および暗号化共通鍵を復号して得られるユーザ情報および共通鍵につき、そこに施された電子署名に基づいて改ざんされていないことを確認することができる。
【0084】
また、上記実施形態においては、クライアント10とサーバ20との間で、SSLに基づく共通鍵暗号方式によってデータ通信が実現されるように構成されている。そのため、クライアント10とサーバ20との間では、一方からのデータが他方でのみ復号できる状態で送信されることとなるため、両者間の通信経路上においては、ユーザ情報はもちろんのこと、識別情報についても閲覧することはできない。これにより、両者間の通信に際しての情報漏洩の危険を少なくすることができる。
(4)変形例
以上、本発明の実施の形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
【0085】
例えば、上記実施形態においては、クライアント10が記憶要求処理において識別情報,暗号化ユーザ情報,暗号化共通鍵をサーバ20へと送信する際、それぞれを別のデータとして順番に送信するように構成されたものを例示した(同処理のs120〜s170)。
【0086】
しかし、これらデータについては、これらデータが一連の情報としてサーバ20側で認識できるのであれば、その順番は特に限定されない。この場合、同処理のs340で、最初に送信されるべきデータを受信したか否かをチェックするようにすればよい。
【0087】
また、上記各データの送信については、一連の情報としてサーバ20側で認識できる方式であれば、別の方式により送信するように構成してもよい。例えば、各データを、それぞれ「一連の情報」であることを示す情報を付した状態で送信することとし、これらデータを受信したサーバ20側でそれが「一連の情報」である旨を認識したうえで、応答処理によるデータの記憶を行うように構成することが考えられる。
【0088】
このための具体的な構成としては、応答処理において、s330でセッションを確立した以降、一定期間内にクライアント10から送信されるデータを収集する処理、そうして収集したデータの中から一連の情報である「識別情報,暗号化ユーザ情報,暗号化共通鍵」を特定する処理、それらを対応づけて記憶部22に記憶する処理、を行ったうえで、この応答処理を終了するように構成すればよい。
【0089】
また、上記実施形態においては、記憶要求処理毎にクライアント10側で共通鍵(1b)が生成されるように構成されたものを例示した。しかし、この共通鍵(1b)については、クライアント10側であらかじめ用意されたものを用いてもよい。
【0090】
また、上記実施形態においては、クライアント10とサーバ20との間で、SSLに基づく共通鍵暗号方式によってデータ通信が実現されるように構成されたものを例示した。しかし、クライアント10とサーバ20との間の通信については、クライアント10からのデータがサーバ20でのみ復号できるような態様であれば、その暗号化の態様については、SSLに基づく暗号化に限られない。
(5)本発明との対応関係
以上説明した実施形態において、図2,図4のs140は本発明における第1暗号化手段および第1電子署名手段であり、同図s160は本発明における第2暗号化手段および第2電子署名手段であり、同図s120,s136,s150,s170は本発明におけるクライアント側送信手段および第3暗号化手段であり、同図s130は本発明における共通鍵生成手段である。
【0091】
また、図2,図4におけるs350,s370,s390は本発明における記憶手段であり、図2におけるs450,図5におけるs442,s446は本発明における特定手段であり、図2,図4におけるs460は本発明におけるサーバ側送信手段である。
【0092】
また、図2のs110,210,330にてクライアント10からサーバ20へと渡される共通鍵1a,2aは、本発明における「サーバで復号可能な暗号鍵(サーバの共通鍵)」である。
【図面の簡単な説明】
【0093】
【図1】情報管理システムの構成を示す概念図
【図2】第1実施形態におけるクライアントおよびサーバそれぞれにより行われる処理を示すフローチャート
【図3】第1実施形態における各データの流れを示すブロック図
【図4】第2実施形態におけるクライアントおよびサーバそれぞれにより行われる処理を示すフローチャート(1/2)
【図5】第2実施形態におけるクライアントおよびサーバそれぞれにより行われる処理を示すフローチャート(2/2)
【図6】第2実施形態における各データの流れを示すブロック図(1/2)
【図7】第2実施形態における各データの流れを示すブロック図(2/2)
【符号の説明】
【0094】
1…情報管理システム、10…クライアント、20…サーバ、22…記憶部、100…ネットワーク。

【特許請求の範囲】
【請求項1】
1以上のクライアントそれぞれがサーバとデータ通信可能に接続されてなる情報管理システムであって、
少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、
当該クライアントのユーザに関するユーザ情報を当該クライアントの共通鍵にて暗号化することで、該暗号化してなる暗号化ユーザ情報を生成する第1暗号化手段と、
該第1暗号化手段が前記ユーザ情報を暗号化する際に用いた共通鍵を、前記ユーザ情報を通知すべき1以上のクライアントの公開鍵それぞれで暗号化することで、該暗号化してなる1以上の暗号化共通鍵を生成する第2暗号化手段と、
前記第1暗号化手段により生成された暗号化ユーザ情報,前記第2暗号化手段により生成された暗号化共通鍵,および,当該クライアントを識別可能な識別情報を、一連の情報として前記サーバへと送信するクライアント側送信手段と、を備えており、
前記サーバは、
前記クライアントから一連の情報として送信される前記暗号化ユーザ情報,前記暗号化共通鍵,および,前記識別情報を、それぞれ対応づけて記憶部に記憶させる記憶手段と、
前記1以上のクライアントのうちのいずれかのクライアントから、特定の前記クライアントのユーザ情報を要求された際に、前記記憶部に記憶されている前記暗号化ユーザ情報のうち、その特定の前記クライアントを識別する前記識別情報に対応づけられた前記暗号化ユーザ情報を特定して、また、前記記憶部に記憶されている前記暗号化共通鍵のうち、その特定の前記クライアントを識別する前記識別情報に対応づけられた前記暗号化共通鍵であって、その要求元のクライアントの公開鍵にて暗号化してなる暗号化共通鍵を特定する特定手段と、
該特定手段により特定された前記暗号化ユーザ情報および前記暗号化共通鍵を、前記要求元のクライアントへと送信するサーバ側送信手段と、を備えている
ことを特徴とする情報管理システム。
【請求項2】
少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、
当該クライアントの共通鍵を生成する共通鍵生成手段を備えており、
前記第1暗号化手段が、前記ユーザ情報を前記共通鍵生成手段により生成された共通鍵にて暗号化してなる暗号化ユーザ情報を生成する、ように構成されている
ことを特徴とする請求項1に記載の情報管理システム。
【請求項3】
少なくとも前記1以上のクライアントのうちのいずれかのクライアントにおいて、
前記共通鍵生成手段は、前記サーバ側送信手段により前記暗号化ユーザ情報および前記暗号化共通鍵を送信するのに先立って、当該クライアントの共通鍵を生成する、ように構成されている
ことを特徴とする請求項1または請求項2に記載の情報管理システム。
【請求項4】
少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、
前記ユーザ情報に電子署名を施す第1電子署名手段を備え、
前記第1暗号化手段が、前記第1電子署名手段により電子署名が施された前記ユーザ情報を暗号化してなる暗号化ユーザ情報を生成する、ように構成されている
ことを特徴とする請求項1から3のいずれかに記載の情報管理システム。
【請求項5】
少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、
前記第1暗号化手段が前記ユーザ情報を暗号化する際に用いた共通鍵に電子署名を施す第2電子署名手段を備え、
前記第2暗号化手段が、前記第2電子署名手段により電子署名が施された共通鍵を暗号化してなる1以上の暗号化共通鍵を生成する、ように構成されている
ことを特徴とする請求項1から4のいずれかに記載の情報管理システム。
【請求項6】
少なくとも前記1以上のクライアントのうちのいずれかのクライアントは、
前記暗号化ユーザ情報,前記暗号化共通鍵および当該クライアントを識別可能な識別情報を、それぞれ前記サーバで復号可能な暗号鍵(サーバの共通鍵)により暗号化する第3暗号化手段を備えており、
前記クライアント側送信手段が、前記第3暗号化手段により暗号化された暗号化ユーザ情報,前記暗号化共通鍵および前記識別情報を、一連の情報として前記サーバへと送信する、ように構成されており、
前記サーバにおいて、
前記記憶手段は、前記クライアントから一連の情報として送信され、前記サーバの共通鍵にて暗号化された前記暗号化ユーザ情報,前記暗号化共通鍵および前記識別情報を、それぞれ前記サーバの共通鍵により復号したうえで、前記記憶部に記憶させる、ように構成されている
ことを特徴とする請求項1から5のいずれかに記載の情報管理システム。
【請求項7】
請求項1から6のいずれかに記載のクライアントの備える全ての手段を備えている
ことを特徴とするクライアント。
【請求項8】
請求項1から6のいずれかに記載のサーバの備える全ての手段を備えている
ことを特徴とするサーバ。
【請求項9】
請求項1から6のいずれかに記載のクライアントの備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。
【請求項10】
請求項1から6のいずれかに記載のクライアントの備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図1】
image rotate


【公開番号】特開2008−124720(P2008−124720A)
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2006−305449(P2006−305449)
【出願日】平成18年11月10日(2006.11.10)
【出願人】(306040388)株式会社シフト (8)
【出願人】(304021277)国立大学法人 名古屋工業大学 (784)
【Fターム(参考)】