以下に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明を適用した通信システムの概念を示す図である。管理サーバ1は、ネットワーク2に接続されている機器の接続を管理し、例えば、VCR(Video Cassette Recorder)3とテレビジョン受像機5に記録媒体21Aと記録媒体21Bがそれぞれ挿入されているとき、一点鎖線で示されるように、VCR3とテレビジョン受像機5を接続する。このネットワーク2は、例えば、イーサネット(R)やIEEE(Institute of Electrical and Electronics Engineers)802.11a、802.11bなどの無線LAN(Local Area Network)などにより構成される。
これにより、例えば、VCR3により再生された映像がネットワーク2を介してテレビジョン受像機5に送信され、テレビジョン受像機5に表示される。
また、管理サーバ1は、ゲーム機6に記録媒体22Aが挿入され、プロジェクタ7に記録媒体22Bが挿入されているとき、一点鎖線で示されるように、それらの機器間の接続を確立させ、ゲーム機6の再生画像をプロジェクタ7に表示させる。
この例においては、記録媒体21Aと記録媒体21B、および、記録媒体22Aと記録媒体22Bはそれぞれ対になっている。なお、以下の説明において、記録媒体21Aと記録媒体21B、および、記録媒体22Aと記録媒体22Bを、それぞれ個別に区別する必要がない場合、代表して記録媒体21と記述する。
ユーザは、それぞれの記録媒体21の所定の部分(例えば、所定の装置に挿入されたときに、ユーザが視認できる側面)を確認することで、それぞれの対を識別できるようになされている。
この対に構成される記録媒体21に記録されるデータ(情報)は、管理サーバ1により記録媒体21に記録されるとして、以下の説明を行うが、記録媒体21に情報を記録する専用の装置をネットワーク2上に設けるようにしても良い。
ネットワーク2には、パーソナルコンピュータ4も接続されており、ユーザは、記録媒体21Aおよび記録媒体21B、並びに記録媒体22Aおよび記録媒体22Bを差し換えるだけで、アドレス等の設定を行うことなく、接続する機器を変更することができる(以下、ネットワーク2に接続されているVCR3乃至プロジェクタ7をそれぞれ個々に区別する必要がない場合、適宜、クライアントと称する)。
図2は、記録媒体21の外観の例を示す図である。図2に示されるように、記録媒体21Aは、基本的に、本体の一部にユーザが視認可能な識別部31が設けられている。記録媒体21Aの識別部31Aと記録媒体21Bの識別部31Bには、同一のマーク(図形、文字、斜線)が描かれており、ユーザが、記録媒体21Aと記録媒体21Bが対になっていること、すなわち、記録媒体21Aと記録媒体21Bが挿入されている機器がネットワーク2を介して接続されることを一見して確認することができるように構成されている。
同様に、記録媒体22Aの識別部32Aと記録媒体22Bの識別部32Bには、同一のマークが描かれており、ユーザが、記録媒体22Aと記録媒体22Bが対になっていること、すなわち、記録媒体22Aと記録媒体22Bが挿入されている機器がネットワーク2を介して接続されることを一見して確認することができるように構成されている。
このように、対に構成されている記録媒体21,22は、それぞれ対であることをユーザが一見して確認できるように構成されている。
なお、このような識別部31,32を設けるのは一例であり、例えば、記録媒体21,22自体の色を、対になっている記録媒体同士は同じ色にするなどで、ユーザが一見して対になっている記録媒体であることを認識できるようにしても良い。
記録媒体21自体は、クライアント(VCR3乃至プロジェクタ7)の所定の位置に設けられている挿入部に挿入されたとき、記憶している識別情報をクライアントに提供する構成とされている。識別情報としては、図3に示すように、IDが記録されている。また、記録媒体21には、認証処理の際に用いられるデータを暗号化するための鍵も記録されている。認証処理およびその認証処理に用いられるデータについての詳細は、後述する。
記録媒体21Aと記録媒体21Bには、同一のIDが記録され、記録媒体22Aと記録媒体22Bには、同一のID(ただし、記録媒体21とは異なるID)が記録されている。このように、対になっている記録媒体に記録されているIDは、同一のものとされ、他の対の記録媒体同士は、異なるIDとされる。
管理サーバ1は、IDがクライアントにより読み出され、それが通知されてきたとき、そのIDを確認することで、記録媒体21Aと記録媒体21Bが挿入されているクライアント同士を、最終的に接続させることができる。
図4Aは、VCR3の外観の例を示す斜視図であり、図4Bは、テレビジョン受像機5の外観の例を示す斜視図である。
図4Aに示されるように、カセット挿入部41が設けられている正面3Aの右下方には記録媒体挿入部42が設けられており、例えば、記録媒体21Aが着脱できるようになされている。記録媒体挿入部42の近傍には、挿入された記録媒体21AからIDを読み取るリーダが設けられている。
また、図4Bに示されるように、表示部51が設けられているテレビジョン受像機5の面5Aの右下方には、VCR3と同様に、記録媒体挿入部52が設けられており、例えば、記録媒体21Bが着脱できるようになされている。記録媒体挿入部52の近傍にも、挿入された記録媒体21BからIDを読み取るリーダが設けられている。
なお、記録媒体挿入部52などは、記録媒体21を挿入するための専用の部位として、それぞれの機器に設けても良いが、他の部位と共用しても良い。例えば、近年、テレビジョン受像機5において、デジタルカメラ(不図示)で撮影された画像のデータを記録している記録媒体を、直接挿入できる部位を有し、その記録媒体からデータを読み出し、そのデータに基づく画像を映し出す機能を有するものがあるが、そのような記録媒体が挿入される部位を、記録媒体挿入部52として用いるようにしても良い。
ユーザは、クライアントの接続先を変更するとき、このように所定の位置に設けられる記録媒体挿入部に挿入されている記録媒体を抜脱し、新たに接続させるクライアントの記録媒体挿入部に挿入する。
図5は、クライアントの構成例を示す図であり、このような構成が、図1に示されるそれぞれのクライアントに設けられる。
リーダ61は、近傍に設けられている記録媒体挿入部に、例えば、記録媒体21Aが挿入されたとき、その記録媒体21Aに記録されているIDを読み取り、それを通信制御部62に出力する。また、リーダ61は、挿入されている記録媒体21Aが抜脱されたとき、それを通信制御部62に通知する。
通信制御部62は、クライアントの全体の動作を制御する制御部63からの指示に基づいて、例えば、リーダ61から通知されてきたIDを通信部64、およびネットワーク2を介して管理サーバ1に送信する。また、通信制御部62は、制御部63から供給されてきたデータを、通信部64等を介して他のクライアントに送信するとともに、適宜、他のクライアントから送信されてきたデータを制御部63に出力する。
例えば、図5に示される構成がVCR3に設けられ、VCR3とテレビジョン受像機5が接続されている場合、通信制御部62は、制御部63から供給されてきたビデオデータ、およびオーディオデータをテレビジョン受像機5に送信する。
また、図5に示される構成がプロジェクタ7に設けられ、プロジェクタ7とゲーム機6が接続されている場合、通信制御部62は、通信部64から供給されてきたゲームのビデオデータ、およびオーディオデータを制御部63に出力する。
制御部63は、クライアントの全体の動作を制御し、例えば、図5に示される構成がVCR3に設けられている場合、図示せぬヘッドの動作等を制御し、装着されているカセットに記録されているビデオデータ、および音声データを読み出し、それを通信制御部62に出力する。
また、図5に示される構成がプロジェクタ7に設けられている場合、制御部63は、通信制御部62から供給されてきたビデオデータを図示せぬ再生部に出力し、映像を表示させるとともに、供給されてきたオーディオデータを図示せぬ再生部に出力し、スピーカから音声を出力させる。
通信部64は、ネットワーク2に接続されており、通信制御部62から供給されてきたデータを他のクライアントや管理サーバ1に送信する。また、通信部64は、他のクライアント等から送信されてきたデータを受信し、それを通信制御部62に出力する。
暗号化部65は、制御部63の制御のもと暗号化を行う。この暗号化については後述するが、認証処理を必要とするときに行われる。また、暗号化部65により暗号化されたデータ(以下に説明するが、レスポンス文字列)は、必要に応じ記憶部66に記憶される。
図6は、管理サーバ1の構成例を示すブロック図である。
CPU(Central Processing Unit)71は、ROM(Read Only Memory)72に記憶されているプログラム、または、記憶部78からRAM(Random Access Memory)73にロードされたプログラムに従って各種の処理を実行する。RAM73にはまた、CPU71が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU71、ROM72、およびRAM73は、バス74を介して相互に接続されている。このバス74にはまた、入出力インタフェース75も接続されている。
入出力インタフェース75には、キーボード、マウスなどよりなる入力部76、CRT(Cathode Ray Tube),LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部77、ハードディスクなどより構成される記憶部78、および通信部79が接続されている。
記憶部78は、CPU71により使用される各種のアプリケーションを記憶し、必要に応じて、所定のアプリケーションをCPU71に提供する。また、記憶部78は、ネットワーク2を介して接続されているクライアントを管理するリストをCPU71からの指示に基づいて生成し、記憶している。
通信部79は、ネットワーク2を介して通信を行い、例えば、記録媒体21Aが挿入されたことがVCR3から通知されてきたとき、それを記憶部78等に出力する。
入出力インタフェース75にはまた、必要に応じてドライブ80が接続され、磁気ディスク81、光ディスク82、光磁気ディスク83、或いは半導体メモリ84などが適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部78にインストールされる。
次に、図1の通信システムの動作について説明する。
始めに、図7のフローチャートを参照して、他のクライアントと接続する所定のクライアント、例えば、VCR3の処理について説明する。
ステップS11において、VCR3のリーダ61は、記録媒体21が記録媒体挿入部42に挿入されたか否か(記録媒体からIDを読み取ることができたか否か)を判断し、挿入されたと判断するまで待機状態を維持する。
例えば、ユーザが記録媒体21Aを記録媒体挿入部42に挿入したとき、リーダ61は、ステップS12に進み、その記録媒体21Aに記憶されているIDを読み出す。リーダ61により読み出されたIDは、通信制御部62に通知される。なお、IDは、所定の方式により暗号化された状態で提供されるようにしても良い。
通信制御部62は、ステップS13において、読み出したID、VCR3に設定されているアドレス、および、VCR3を識別するために用いられる名前(ここでは、VCR3とする)を管理サーバ1に通知する。このようなデータが管理サーバ1に通知された結果として、管理サーバ1から、所定の文字列(以下、チャレンジ文字列と記述する)が送信される。その送信されてきたチャレンジ文字列を、ステップS14の処理として、通信部64は受信する。
通信部64により受信されたチャレンジ文字列は、通信制御部62の制御のもと、制御部63に供給される。制御部63は、チャレンジ文字列が供給されたと判断すると、ステップS15において、記録媒体21Aから鍵を読み出すように、リーダ61に対して指示を出す。その結果、リーダ61により記録媒体21Aから読み出された鍵が、制御部63に供給される。
制御部63は、供給された鍵を暗号化部65に供給する。暗号化部65には、チャレンジ文字列も供給される。暗号化部65は、ステップS16において、チャレンジ文字列を鍵で暗号化する。ここでは、暗号化されたチャレンジ文字列をレスポンス文字列と記述する。暗号化部65により生成されたレスポンス文字列は、管理サーバ1に対して送信される。
レスポンス文字列の生成について説明を加える。例えば、受信されたチャレンジ文字列が“<challenge>”であり、鍵が、“6b01abe02394be93b3e92ef172cad5”であった場合、このチャレンジ文字列と鍵を組み合わし、“<challenge>6b01abe02394be93b3e92ef172cad5”という文字列をレスポンス文字列とする。鍵は、記録媒体21に記録されているため、その長さは、基本的に記録媒体21の容量以内であれば、限りなく長くすることが可能である。
しかしながら、単にチャレンジ文字列と鍵を組み合わせただけのレスポンス文字列では、そのレスポンス文字列が盗用された場合、どんなに長い鍵であっても、比較的簡単に鍵を推測することが可能であり、推測された鍵が悪用される可能性がある。そこで、チャレンジ文字列と鍵を組み合わせ後、さらに、例えば、MD5(Message Digest algorithm 5)ハッシュ関数を適用し、その結果を16進数の文字列として表した“0ce092a2d830bc088008f58053db6ba0”という文字列をレスポンス文字列とするようにしても良い。
このように、所定の暗号化方式を用いてレスポンス文字列を生成するようにすれば、仮に、レスポンス文字列が盗用されてしまったとしても、その盗用されたレスポンス文字列から鍵が推測されることを防ぐことが可能となる。
このようにして生成されたレスポンス文字列は、そのレスポンス文字列の元となったチャレンジ文字列と共に関連づけられて、または、一方のみが、記憶部66や、VTR3に挿入されている記録媒体21Aに記録されるようにしても良い。また、それらの情報を記憶するようにした場合、送信した時刻などの情報もあわせて記憶されるようにしても良い。
このようにレスポンス文字列が管理サーバ1に対して送信された後、VTR3においては、接続相手が存在するか否か、存在する場合、接続を開始するなどの処理が実行されるわけだが、まず、ステップS17において、他のクライアント(この場合、VTR3以外のテレビジョン受像機5など)のレスポンス文字列などが、管理サーバ1から通知されてきたか否かが判断される。
管理サーバ1の詳細な処理については、図8のフローチャートを参照して説明するが、管理サーバ1は、送信したチャレンジ文字列、チャレンジ文字列を送信したクライアントからの返答としてのレスポンス文字列、そのクライアントのIDなどを関連付けて管理している。そして、管理サーバ1は、そのような情報を新たなクライアント(まだ管理していないクライアント)から送信されてきた場合、その情報に含まれるIDと同一のIDが既に管理されているか否かを判断する。
そして管理サーバ1は、同一のIDがあると判断した場合、そのIDと関連付けられているチャレンジ文字列とレスポンス文字列を、新たなクライアントに対して送信する。
この場合、VTR3は、ステップS13やステップS16の処理として、IDやアドレス、そして、レスポンス文字列を送信している。よってこの場合、管理サーバ1は、VTR3を、新たなクライアントと認識する。このVTR3が送信してきたID(記録媒体21Aに記録されているID)と同一のID(この場合、記録媒体21Bが記録しているID)を有するクライアントが、既に、管理サーバ1側に登録されていた場合、そのクライアントに関連付けられているチャレンジ文字列とレスポンス文字列が、VTR3に送信されてくる。
そのような処理を経てチャレンジ文字列とレスポンス文字列が送信されてきたか否かが、ステップS17において判断される。ステップS17において、他のクライアントに関するチャレンジ文字列とレスポンス文字列が送信されてきたと判断された場合、ステップS18に処理が進められる。
ステップS18において、VTR3は、受信したレスポンス文字列が、自己が有する鍵で暗号化したチャレンジ文字列(結果としてレスポンス文字列)と一致したか否かを判断する。
VTR3の制御部63は、管理サーバ1からチャレンジ文字列とレスポンス文字列(レスポンス文字列Aとする)を受信するわけだが、まず、暗号化部65により、受信されたチャレンジ文字列が、記録媒体21Aから読み出される鍵で暗号化される。すなわち、レスポンス文字列(レスポンス文字列Bとする)が生成されることになる。その生成されたレスポンス文字列Bが、受信されたレスポンス文字列Aと一致するか否かが判断される。
管理サーバ1は、IDが一致したクライアント同士にしか、チャレンジ文字列とレスポンス文字列を送信しない。IDが一致するということは、そのIDを記録している記録媒体に記録されている鍵も同一であるということを意味している。よって、同一のチャレンジ文字列を同一の鍵で暗号化すれば、同一のレスポンス文字列が生成されることになる。
このようなことを利用し、制御部63は、ステップS18において、受信したレスポンス文字列Aと、受信したチャレンジ文字列から生成したレスポンス文字列Bが一致するか否かを判断することで、接続先のクライアントが正当なクライアントであるか否かの認証処理を実行する。
このような認証処理を実行することで、なりすましのクライアント(何らかの悪意を持ったユーザが操作するクライアント)と接続し、接続後に授受されるデータが盗用されるといった不都合を防ぐことが可能となる。
また、本発明を適用するこにより、複数のクライアントを接続する際、ユーザは、単に記録媒体21を接続させたいクライアントに挿入するだけで良く、簡便にクライアント同士を接続させることができるだけでなく、接続後のセキュリティも向上させることが可能となる。
図7のフローチャートの説明に戻り、ステップS18において、受信したレスポンス文字列Aと、受信したチャレンジ文字列から生成したレスポンス文字列Bが一致すると判断された場合、換言すれば、認証処理は正常に行われたと判断された場合、ステップS19に処理が進められる。ステップS19において、接続許可を示すデータが送信管理サーバ1にたいして送信される。
認証処理が正常に行われたときには常に接続許可を示すデータが送信されるようにしても良いが、そのようなデータを送信する前に、ユーザの指示(許可)があったか否かを判断し、許可されたときのみ送信されるようにしても良い。そのようにした場合、例えば、ユーザに“接続可能なクライアントが存在しますが接続しますか?”といったようなメッセージを提示し、その結果、ユーザから接続するとの指示がされたときに、ステップS19における処理として、接続許可を示すデータが送信されるようにする。
ステップS19の処理で、接続許可を示すデータが送信されると、ステップS20に処理が進められる。他のクライアントと接続するには、その接続先となるクライアントのアドレスが必要である。そのアドレスは、管理サーバ1から送信されてくる。ステップS20において、管理サーバ1から、他のクライアント(接続先となるクライアント)のアドレスが通知されてきたか否かが判断される。
基本的には、ステップS19の処理として接続許可を示すデータが送信されると、その結果として、接続先となるクライアントのアドレスが通知されてくることになるが、その接続先となるクライアントも、図7に示したようなフローチャートの処理を実行しており、その結果、接続の許可を出さない可能性もある。接続先のクライアントが接続の許可を出さなければ、そのクライアントのアドレスが通知されてくることはない。また、何らかのエラーにより、接続先となるクライアントのアドレスが通知されてこない可能性もある。
そこで、ステップS20において、他のクライアント(パーソナルコンピュータ4乃至プロジェクタ7のいずれか)のアドレスが通知されてきたか否かが判断される。ステップS20において、通信制御部62は、他のクライアントのアドレスが通知されてきたと判断した場合、ステップS21に進み、通知されてきたアドレスを、ネットワーク2を介して接続するクライアントのアドレスとして管理(例えば、記憶部78(図6))し、そのクライアントへの接続処理を開始する。
例えば、管理サーバ1側でテレビジョン受像機5のアドレスが、VCR3が登録される前の時点で既に登録されている場合、そのテレビジョン受像機5のアドレスが、管理サーバ1から通知されてくる。そして、通信制御部62は、通知されてきたアドレスに基づいて、テレビジョン受像機5に接続するための処理を実行する。
ステップS22において、通信制御部62は、管理サーバ1から、接続を終了することを要求しているクライアントのアドレスが通知されてきたか否かを判断し、通知されてきたと判断した場合、ステップS23に進み、そのクライアントとの接続を終了する。
例えば、テレビジョン受像機5において記録媒体21Bが抜脱され、それが管理サーバ1に通知された場合、テレビジョン受像機5の情報が管理サーバ1が管理するリストから削除され、その結果として、接続を終了することを示すデータがVCR3に通知されてくる。これにより、VCR3とテレビジョン受像機5の接続が終了される。
一方、ステップS22において、通信制御部62は、管理サーバ1から、接続を終了するクライアントのアドレスは通知されてきていないと判断した場合、ステップS23の処理をスキップし、ステップS24に進む。
ステップS24の処理には、ステップS17において、管理サーバ1から他のクライアントのチャレンジ文字列とレスポンス文字列が通知されてきていないと判断された場合、ステップS20において、他のクライアントのアドレスは通知されてきていないと判断された場合も来る。
ステップS24において、リーダ61は、記録媒体挿入部42から記録媒体21Aが抜脱されたか否かを判断し、抜脱されていないと判断した場合、ステップS17に処理が戻され、それ以降の処理が繰り返される。
なお、所定の時間が経過した後に接続が終了される、いわゆるタイムアウトを設定し、ステップS24の処理として、記録媒体21Aが抜脱されたか否かの判断と共に、タイムアウトにより接続が切断されたクライアントがあるか否かも判断するようにしても良い。
タイムアウトを設定した場合、リーダ61により読み取られたID等の情報が所定の周期で管理サーバ1に通知される。また、タイムアウトを設定することにより、ネットワークが物理的に切断されたなど、「記録媒体21Aが抜脱されたこと」以外の理由が生じた場合、タイムアウトされることにより接続が終了されることになる。
ユーザは、例えば、テレビジョン受像機5への入力を、パーソナルコンピュータ4から出力されるものに変更する場合、VCR3に挿入されている記録媒体21Aを抜脱し、それをパーソナルコンピュータ4の挿入部に差し換える。
リーダ61は、ステップS24において、記録媒体21Aが抜脱されたと判断した場合、それを通信制御部62に通知する。通信制御部62は、記録媒体21Aが抜脱されたことがリーダ61から通知されてきたとき、ステップS25において、記録媒体21Aが抜脱されたことを管理サーバ1に通知する。
そして、通信制御部62は、ステップS26において、他のクライアントと接続中であれば、そのクライアントとの接続を終了する。その後、以上の処理が繰り返し実行される。
このような処理がVCR3以外の他のクライアントにおいても実行され、同一のIDを有する記録媒体21が挿入されているクライアント同士が接続される。
次に、図8のフローチャートを参照して、図7の処理に対応して実行される管理サーバ1の処理について説明する。
ステップS41において、管理サーバ1のCPU71(図6)は、通信部79により受信された情報を確認し、IDなどが、いずれかのクライアントから通知されてきたか否かを判断する。クライアントからIDなどが通知されてくるのは、そのクライアント側で、記録媒体21が挿入されたことを意味し、新たに、管理サーバ1に対して自己を登録して欲しいという要求が出されたことを意味する。
ステップS41において通信部79により受信されるデータは、ステップS13(図7)の処理としてクライアントから送信されたID、アドレス、および名前である。
CPU71は、ステップS41において、IDなどが通知されてきていないと判断した場合、後述するステップS42乃至ステップS46の処理をスキップし、ステップS47に処理を進める。
一方、ステップS41において、IDなどが通知されてきたと判断された場合、ステップS42に処理が進められる。ステップS42において、CPU71は、チャレンジ文字列を生成する。チャレンジ文字列は、例えば、乱数が発生され、その乱数が用いられて生成される。また、そのチャレンジ文字列は、例えば、数バイトから数十バイト程度のものとされる。生成されたチャレンジ文字列は、通知されたアドレスを基にクライアント側に送信される。
ステップS43において、CPU71は、通知されたID、アドレス、名前、および、生成したチャレンジ文字列を、記憶部78に記憶されているリストに登録する。
上述したように、クライアントは、チャレンジ文字列が送信されてくると、レスポンス文字列を生成し、管理サーバ1に対して送信する。よって、管理サーバ1がチャレンジ文字列を送信した後の時点で、通信エラーなどの何らかのエラーが発生しなければ、レスポンス文字列が返信されてくる。そこで、ステップS44において、レスポンス文字列を受信したか否かが判断される。ステップS44において、レスポンス文字列を受信したと判断された場合、そのレスポンス文字列も、先に登録された対応するチャレンジ文字列などと関連付けられてリストに登録される。
図9は、リストの一例を示す図である。管理サーバ1の記憶部78に記憶され、管理されているリストには、上述したように、所定のクライアントのID、アドレス、名前、チャレンジ文字列、および、レスポンス文字列が、それぞれ関連付けられて登録されている。例えば、図9に示したリストのうち、1行目に示した情報においては、IDが“0001”であるクライアントのアドレスは、“255.255.255.254”であり、その名前は、“VCR3”であることが示されている。
そして、このようなID、アドレス、名前を送信してきたクライアントに対して、チャレンジ文字列として“abcde”が生成され、送信されたことが示されている。さらに、そのような“abcde”というチャレンジ文字列に対する返答して、“a’b’c’d’e’”というレスポンス文字列が通知されてきたことが示されている。
このように、リストには、ID、アドレス、名前、チャレンジ文字列、および、レスポンス文字列が、それぞれ関連付けられて管理されている。これらのリストに管理される情報は、適宜、追加や削除がされる。また、図9に示したリストは一例であり、例えば、登録された時刻などの情報も、他の情報とあわせて管理されるようにしても良い。なお、以下の説明においては、リストに登録されているクライアントを、適宜、エントリと記述する。
図8のフローチャートの説明に戻り、ステップS45における処理が終了されると、ステップS46に処理が進められる。
ステップS46に処理が進められるのは、ステップS47の処理でYESと判断された場合もある。よって、ステップS46の処理の説明の前に、ステップS47の処理について説明する。ステップS47に処理が進められるのは、ステップS41において、登録の要求はないと判断され場合、または、ステップS44において、レスポンス文字列を受信していないと判断された場合である。
ステップS47においては、所定のクライアントから同一のIDを有する他のクライアントがエントリされているか否かの問い合わせがあったか否かの判断が行われる。ステップS47において、問い合わせがあったと判断された場合、ステップS46に処理が進められ、問い合わせはなかったと判断された場合、ステップS49に処理が進められる。
ステップS46において、同一のIDを有する他のエントリが存在するか否か、かつ、存在する場合には、そのエントリには既にレスポンス文字列が登録されているか否かが判断される。ステップS46においては、まず、同一のIDが存在するか否かが判断されるわけだが、処理対象とされるIDは、ステップS45において、レスポンス文字列が新たに登録されたエントリに対応するID、または、ステップS47において、既に登録されているか否かを問わず何らかのタイミングで問い合わせをしてきたクライアントのIDである。
リスト内に同一のIDが存在していると判断された場合、そのIDに対応するエントリにレスポンス文字列が登録されているか否かが判断される。このような判断が行われるのは、例えば、チャレンジ文字列を送信した直後であるために、レスポンス文字列がまだ受信されていないクライアントのエントリが存在するなどの状況があることを想定し、このような判断もあわせて行うようにする。
ステップS46において、処理対象となっているIDと同一のIDを有するエントリが存在し、かつ、そのエントリには既にレスポンス文字列が登録されていると判断された場合、換言すれば、接続先の対象となるクライアントが存在すると判断された場合、ステップS48に処理が進められ、そのような判断がされたなかった場合、ステップS49に処理が進められる。
ステップS48において、ステップS46における処理で存在すると判断されたエントリのチャレンジ文字列とレスポンス文字列が読み出され、送信される。このようして送信されたチャレンジ文字列とレスポンス文字列は、ステップS17(図7)の処理として、クライアント側に受信される。
このように、本実施の形態においては、管理サーバ1側では、接続先の対象となるクライアントが存在していると判断されても、すぐに接続先のクライアントのアドレスを送信するようなことはせずに、接続に正当性があるか否かを判断するための認証処理を実行するようにし、その認証処理が正しく行われてからアドレスを送信するようにしている。
一方、ステップS49においては、接続先のクライアントが、その時点では存在していないため、処理対象となっているIDを有するクライアントに対して、その時点での状態を維持するように、すなわち、待機しているように指示を出す。
ステップS48またはステップS49の処理が終了されると、ステップS50に処理が進められる。ステップS50において、所定のクライアントから接続を承認する返答があったか否かが判断される。この処理は、クライアント側がステップS19における処理として実行したことに対応する処理である。また、クライアント側でステップS19の処理が実行されるのは、管理サーバ1側でステップS48の処理が実行された結果としてである。
ステップS50において、接続を承認する返答が所定のクライアントからあったと判断された場合、ステップS51に処理が進められる。ステップS51において、接続を承認すると返答があったクライアントと、そのクライアントと接続される相手側のクライアントからも、接続を承認する返答があったか否かが判断される。
例えば、ステップS50において、VCR3がテレビジョン受像機5との接続を承認する返答をよこしてきた場合、ステップS51においては、テレビジョン受像機5が、VCR3との接続を承認する返答をよこしてきたか否かが判断される。
ステップS51において、相手側のクライアントからも接続を承認する返答があったと判断された場合、ステップS52に処理が進められる。ステップS52において、接続されるクライアントの双方に、接続先のアドレスが送信される。
例えば、VCR3とテレビジョン受像機5が接続される場合、VCR3にはテレビジョン受像機5のアドレスが送信され、テレビジョン受像機5にはVCR3のアドレスが送信される。このように送信されたアドレスは、各クライアントのステップS20,21の処理として受信され、処理されることにより、クライアント同士が接続され、データの授受が行える状態とされる。
管理サーバ1は、ステップS52における処理としてアドレスを送信した後、または、ステップS50,51のそれぞれのステップの処理において、接続を拒否する返答が受信されたと判断された場合、ステップS53に処理を進める。
ステップS53において、CPU71は、記録媒体21が抜脱されたことがクライアントから通知されてきたか否かを判断し、記録媒体21が抜脱されたことがクライアントから通知されてきたと判断した場合、ステップS54に進み、その判断の対象となったクライアントに対応するエントリをリストから削除する。このように削除が行われることにより、リストには、常に、接続可能な状態のクライアントのみがエントリされている状態とされる。
なお、CPU71は、記録媒体が抜脱されたことを通知してきたクライアントが、他のクライアントと接続されている状態のときには、その接続されていたクライアントに対して、接続を終了するクライアント(記録媒体が抜脱されたことを通知してきたクライアント)のアドレスを通知する。これにより、接続されていたクライアント間の接続が解除される。
一方、ステップS53において、記録媒体が抜脱されたことを通知してきたクライアントはないと判断された場合、ステップS55に処理が進められる。ステップS55において、所定のクライアントから接続相手の確認の要求があったか否かが判断される。このような要求が、クライアント側から出されるのは、例えば、接続先から返答が帰ってこないなど、何らかの不都合が発生したときなどである。または、定期的に、接続先のクライアントが、有効であるか否か(例えば、電源がオフにされ、データの授受が行えない状態とされたときなど、有効でない状態であると判断されることなる)を確認するように設定されている場合などである。
ステップS55において、接続相手の確認の要求があったと判断された場合、ステップS56に処理が進められる。ステップS56において、リストが確認され、その確認結果が、要求を出してきたクライアントに送信される。送信される確認結果は、接続は有効であるか否かを示すデータである。
このような処理が管理サーバ1側では繰り返し行われる。
上述したような処理が、クライアント側と管理サーバ1側で、それぞれ行われることにより、ユーザは、記録媒体21を差し換えるだけで、容易に、かつ迅速に通信を行うことができる。また、挿入されている記録媒体21の識別部31を確認するだけで、接続されているクライアントを容易に把握することができる。
また、クライアント同士が実際に接続される前の段階で、認証処理が行われ、その認証処理が正常に行われた後でなければ、管理サーバ1からそれぞれのクライアントのアドレスがネットワーク2上に流れることはないので、不正に接続しようとしているクライアントのアドレスが盗まれるようなことを防ぐことが可能となる。もって、接続後に行われるデータの授受が、不正なクライアントと行われることを防ぐことができる。
管理サーバ1側に送信される認証用のデータは、鍵により暗号化されている(レスポンス文字列である)ので、かつ、管理サーバ1は、鍵情報を一切必要とせず、クライアント同士の通信を中継しているだけであるので、管理サーバ1から鍵情報が漏れてしまうようなことはないことはもちろんのこと、正確な鍵を取得していない装置(不正な装置)が、認証処理に用いられているレスポンス文字列を何らかの手段により取得したとしても、そのことから鍵を取得することができるといったような不正な行為を防ぐことが可能となる。
例えば、ユーザが記録媒体21Aをパーソナルコンピュータ4に挿入し、記録媒体21Bを図示せぬプリンタに挿入した場合、以上のような処理により、パーソナルコンピュータ4は、管理サーバ1から通知されてきたプリンタのアドレスに基づいて、接続されているクライアントがプリンタであることを確認し、プリントアウトするデータをプリンタに送信する。
また、そのようなプリントアウトが実行される前の段階で、認証処理が正常に行われ、通信の許可が互いのクライアントから出されていることが前提としてあるので、なりすましなどで接続してきたプリンタでプリントアウトが実行されてしまうようなことを防ぐことが可能となる。
正常にプリントアウトが行われた後には、管理サーバ1から通知されてきたアドレスを、標準で使用するプリンタのアドレスとしてパーソナルコンピュータ4に登録させるような機能を設けるようにしても良い。
上述した実施の形態においては、2つのクライアントが接続される例を挙げて説明したが、接続されるのは、2つのクライアント同士に限定されるわけではなく、例えば、3つのクライアント間など、2以上のクライアントが接続されるようにしても良い。複数のクライアントが接続される場合であっても、単に、同一のIDと鍵が記録された複数の記録媒体が存在していれば、基本的に上述した処理が繰り返されることで実施することが可能である。
以上においては、ネットワーク2上に管理サーバ1が存在する場合について説明したが、図10に示されるように、管理サーバ1が存在しない場合においても、ユーザは、記録媒体を差し換えるだけで、希望するクライアント同士を接続させることができる。
図10に示されるように管理サーバ1が存在しない場合、例えば、パーソナルコンピュータ4は、記録媒体21Aが挿入されたとき、IDを読み取り、読み取ったIDとアドレスを全ての機器(クライアント)にブロードキャストし、同一のIDを有する記録媒体21Bが挿入されている機器を検出する。
例えば、記録媒体21Aと同一のIDが設定されている記録媒体21Bがテレビジョン受像機5に挿入されている場合、テレビジョン受像機5は、パーソナルコンピュータ4からの検出に応答し、パーソナルコンピュータ4に自分自身のアドレスを通知する。
そして、アドレスが交換された相互の機器間で通信が確立される。
このようなクライアントにおいて行われる詳細な処理について説明を加える。図11のフローチャートを参照して、図10の通信システムを構成する各クライアントの処理について説明する。なお、この例においては、クライアントとしてパーソナルコンピュータ4の処理について説明するものとする。
ステップS71において、パーソナルコンピュータ4のリーダ61は、記録媒体21Aがパーソナルコンピュータ4の記録媒体挿入部(例えば、ドライブ)に挿入されたか否かを判断する。リーダ61は、例えば、記録媒体21Aが挿入されたと判断したとき、ステップS72に進み、記録媒体21AからIDを読み出す。
通信制御部62は、リーダ61からIDが通知されてきたとき、ステップS73において、自分自身のアドレスと、記録媒体21AのIDをブロードキャストし、ステップS74において、同一のIDを有する記録媒体21Bが挿入されているクライアント(接続可能なクライアント)を検出する。
ステップS74において、同一のIDが記録されている記録媒体21Bが挿入されているクライアントはないため、接続可能なクライアントはないと判断された場合、ステップS71に戻り、それ以降の処理が繰り返される。なお、ステップS71に処理が戻されるようにしても良いが、ステップS73に戻り、一定時間が経過後、再度、IDとアドレスがブロードキャストされるようにしても良い。または、ステップS74の処理が再度繰り返されるようにし、接続可能なクライアントが検出されるまで、待機状態が維持されるようにしても良い。
一方、ステップS74において、同一のIDが記録されている記録媒体21Bが挿入されているクライアントが検出されたと判断した場合、ステップS75に進み、そのクライアントから送信されてきたアドレスを受信する。
制御部63は、ステップS76において、チャレンジ文字列を生成する。このチャレンジ文字列の生成は、上述した管理サーバ1がステップS42(図8)の処理としてチャレンジ文字列を生成する場合と同様に、例えば、乱数が用いられて生成される。
ステップS77において、記録媒体21Aに記録されている鍵が読み出される。その読み出された鍵が用いられ、ステップS78の処理として、生成されたチャレンジ文字列が暗号化され、レスポンス文字列が生成される。生成されたレスポンス文字列は、同じく生成されたチャレンジ文字列と共に、通信部64によりアドレスを送信してきたクライアントに対して送信される。
このように管理サーバ1が存在していない場合、各クライアントがチャレンジ文字列と、レスポンス文字列を生成し、接続対象となるクライアントに送信する。ステップS79以降の処理は、基本的に、図7に示したフローチャートのステップS17以降の処理と同様なので、その説明は省略する。ただし、図7に示したフローチャートにおける処理で、管理サーバ1を相手として行われる処理は、図11に示したフローチャートにおける処理では、接続先のクライアントに対して行われる処理である。
なお、同一のIDを有する記録媒体21が複数のクライアントに挿入されており、それらのクライアントが検出された場合、検出された全てのクライアントをユーザに提示し、接続するクライアントを選択させるようにしてもよい。
上述した実施の形態においては、正常にクライアント同士が接続された後に行われるデータの授受については特に説明を加えていないが、授受されるデータは、暗号化されたものとすることが好ましい。データを暗号化、および、復号する際に用いられる鍵は、記録媒体21に記録されているものが用いられる。授受されるデータを暗号化する場合、例えば、データを送信する際、その送信対象となっているデータを、まず、所定の長さに区切る。そして、所定の長さに区切られたデータ毎に、記録媒体21から読み出される鍵との排他的論理和を取り、ビット演算を行う。その結果を、送信するようにする。
受信側では、受信したデータを記録媒体21から読み出される鍵の長さ毎に区切り、その区切られたデータと鍵の排他的論理和をとり、ビット演算を行い、その結果を受信したデータとして扱うようにする。
もちろん、このような排他的論理和を取り、ビット演算するような方法は一例であり、他の方法により、送受信されるデータの暗号化および復号を行うようにしても良い。
上述した実施の形態においては、正常に接続が行われる前に認証処理が行われるとしたが、正常に接続が行われた後、再度、接続されたクライアント同士で認証処理が直接的に行われるようにしても良い。再度クライアント同士で直接的に認証処理が行われることにより、よりセキュリティを高めることが可能となる。
以上のような通信システムは、様々な機器に適用することができる。例えば、住宅の所定の位置に音楽コンテンツを配信するサーバがあり、各部屋にスピーカが設置されている場合、ユーザは、記録媒体21を持ち歩き、差し換えることで、移動先の部屋においても、サーバから配信される音楽を聴き続けることができる。
この場合、サーバには記録媒体21が常時挿入されており、ユーザは、部屋を出るとき、その部屋のスピーカに挿入されていた記録媒体21を抜き、移動先の部屋のスピーカに挿入する。記録媒体21が差し換えられる毎に、上述したような処理が実行され、サーバから配信されている音楽の出力先が、新たに記録媒体21が挿入されたスピーカへと切り替わることになる。
また、記録媒体を有していないユーザは、サーバにアクセスすることができないため、それをアクセスする権利として使用することもできる。すなわち、サーバの管理者は、サーバに対する接続を許可するユーザに対してのみ、サーバに挿入されている記録媒体21と同一のIDが設定されている記録媒体21を配布する。
また、他の具体例としては、図12に示すように、オーディオプレーヤ101―1とオーディオプレーヤ101―2がネットワーク2に接続され、所定の部屋にスピーカ102がネットワーク2に接続された状態で設置されている場合が考えられる。オーディオプレーヤ101―1が例えば、CD(Compact Disk)プレーヤであり、オーディオプレーヤ101―2が例えば、MD(Mini Disk(商標))プレーヤであるような場合、ユーザは、異なる媒体を再生する、異なるプレーヤからの音源を、記録媒体21Aを差し替えるだけで、切り換えることができる。
また、図13に示すように、ノートパソコン(ノート型のパーソナルコンピュータ)111―1とノートパソコン111―2がネットワーク2に接続され、同一のネットワーク2に、プロジェクタ112が接続されている場合を考える。例えば、学会などにおいて、複数の発表者が入れ替わり、プロジェクタ112を用いるような場合、発表者同士は、単に記録媒体21Aを授受するだけでよい。すなわち、プロジェクタ112を使用する毎に、発表者は、ノートパソコン111−1からケーブルをはずし、ノートパソコン112−1にそのはずしたケーブルを付け替えるなどの面倒な処理を行わなくても、簡便に、プロジェクタ112を使用することが可能となる。
このように、本発明を適用すれば、簡便に、クライアント同士の接続元、接続先を切り換えることが可能となる。
ところで、上述したように、同一のIDが記録されている記録媒体21が装着されたクライアント同士が接続され、データの授受が行われるわけだが、ここで仮に、記録媒体21が装着されたクライアントが、その記録媒体21に記録されているIDや鍵を読み出すだけでなく、比較的長く(永続的に)記憶する機能を有しているとする。または、そのようなことが実行可能なようにクライアントが構成され、記録媒体21に記録されているデータ事態も構成されているとする。
このような機能が存在している場合、クライアントから記録媒体21が抜脱された後もクライアントは、自己が記憶しているIDや鍵を用いて、他のクライアントとの接続を維持し続けることが可能となる。また、クライアントは、自己が記憶しているIDや鍵を用いて新たな接続を開始することが可能となる。
しかしながら、そのようなことはセキュリティの観点から好ましくない。すなわち、IDや鍵を記憶したクライアントから、それらのIDや鍵が盗用される可能性がある。
また、図13を再度参照するに、例えば、ノートパソコン111−1が、記録媒体21Aから読み出されるIDと鍵を記憶したとする。その後、記録媒体21Aが、ノートパソコン111−2に装着されすことにより、ノートパソコン111−2から送信されるデータがプロジェクタ112に受信されるとする。このような状況のときに、ノートパソコン111−1が、自己が記憶しているIDと鍵を用いて、プロジェクタ112と接続を行い、データを送信したとする。
このような状況が発生する可能性もこの場合ある。このような状況が発生した場合、プロジェクタ112は、ノートパソコン111−1からのデータとノートパソコン111−2からのデータを受信することになる。よって、スクリーン113には、ノートパソコン111−1からのデータに基づく映像と、ノートパソコン111−2からのデータに基づく映像とが映し出されるというような何らかの不都合な状況が発生してしまう。
以上のことを考慮すると、記録媒体21に記録されているIDや鍵などの情報は、クライアント側に記録されることがないような、または、記録されたとしても、記録媒体21が抜脱された時点で、確実に削除されるような機能を設ける方が良い。
記録媒体21に記録されている情報が他の装置に記録されないようにするには、例えば、既存の著作権保護の技術を応用できる。著作権保護の技術は、基本的に、所定の記録媒体などに記録されている情報を他の装置(外部の装置)にコピーさせない、または、コピーを許可するとしてもそのコピーの回数を制限するなどを実現するものである。よって、記録媒体21に記録された情報をコピーさせないようにプロテクトをかけるなどしておけば、クライアントに鍵などの情報がコピーされる(記憶される)ことを防ぐことが可能となる。このようにすることで、よりシステムの安全性を高めることが可能となる。
ところで、上述した実施の形態における記録媒体21は、ユーザにとって、クライアント同士を接続するためのケーブルの端子のような役割を果たすものとして認識されるものであると考えられる。記録媒体21をそのような役割だけを果たす装置として設計してももちろん良い。そのように設計すれば、記録媒体21の記録容量は小さくてよく、結果として記録媒体21自体の大きさも小さいものとすることができ、ユーザが携帯するのに便利な構造とすることができる。
しかしながら、記録媒体21を既存の、例えば、メモリースティック(商標)などの所定の容量を有する記録媒体とした場合、その記録媒体21の記録容量は、IDや鍵だけを記憶するだけでは大きすぎ、装置間を接続する端子みたいな役割を有するものとして扱うのにはもったいない。よって、ユーザの立場から考えても、記録媒体21は、上述したような装置を接続する端子の役割も果たすが、本来の機能であるデータを記録するという機能も当然利用できるものとすることが好ましいと考えられる。
そこで、記録媒体21をIDや鍵以外のデータも記録する装置として扱う場合について、以下に説明する。ここでは、図14に示すように、クライアントとして、PC131とPC132が接続される場合を例に挙げて説明する。上述したクライアント同士を接続させるために行われる処理は、他のデータを記録するようにしても、上述したように行うことができることに変わりはないので、その部分に関する説明は省略する。
上述したように、例えば、記録媒体21Aと記録媒体21Bは、同一のIDと鍵が記録され、対になっているものとして扱われる。対になっているものとして扱われる記録媒体21同士には、同一のデータが記録されているようにする。対になっている記録媒体21が、所定のクライアント(この場合、PC131とPC132)に装着され、接続された状態のときに、記録媒体21に記録されているデータの同期が行われるようにする。
図15のフローチャートを参照して、記録媒体21が装着されたクライアントの処理について、特に、データの同期に関わる処理について説明する。ここでは、記録媒体21Aが装着されたPC131側の処理を例に挙げて説明する。図15のフローチャートの処理は、記録媒体21AがPC131に装着されているときに行われる処理である。
ステップS101において、記録媒体21Aに記録されているデータの内容がユーザ側に提示される。例えば、PC131のディスプレイ(不図示)に、記録媒体21Aに記録されているデータの内容が表示される。表示されるデータの内容としては、データに付けられている名前の一覧が考えられる。
なお、ステップS101の処理が実行されるタイミングであるが、記録媒体21Aが記録媒体挿入部に挿入されたタイミング、ユーザの指示があったタイミング、他のクライアントとデータの授受が行える状態になったタイミングなどが考えられ、どのようなタイミングで実行されても良い。
ステップS101の処理が終了されると、ステップS102において、他のクライアントと接続している(データの授受が行える)状態であるか否かが判断される。すなわち、上述したような接続に関わる処理が実行された結果、データの授受が他のクライアント(PC132)と行える状態にされたか否かが判断される。
ステップS102において、他のクライアントと接続している状態であると判断された場合、ステップS103に処理が進められる。ステップS103において、記録媒体21Aに記録されているデータを、記録媒体21Bに記録されているデータと同期するための処理が実行される。このステップS103における同期処理については、図16のフローチャートを参照して後述する。
ステップS103の同期の処理が終了されると、記録媒体21Aと記録媒体21Bに記録されているデータは、同一の内容のものとされている。このような状態で、かつ、他のクライアント(この場合、PC132)と接続が維持されている状態のときに、記録媒体21Aに、例えば、新たなデータの記録が指示されると、その新たなデータは、自己に装着されている記録媒体21Aはもちろん、接続先のPC132に装着されている記録媒体21Bにも記録される。
すなわち、PC131は、自己に装着されている記録媒体21Aに対して行われ操作を、接続されているPC132に装着されている記録媒体21Bに対しても行なわれる(反映させる)ための処理も実行する。例えば、PC131は、自己に装着されている記録媒体21Aに対して、ユーザからの操作があったことを知らせるデータ、その操作の内容を示すデータ、そして必要に応じ、例えば、記録媒体21Aに記録したデータといったような各種のデータを、PC132に対して送信する。その結果、PC132は、受信した各種のデータを基に、自己に装着されている記録媒体21Bに対して処理を実行する。
このような処理が、ステップS104において行われる。この処理、すなわち、自己に対して行われた処理を他に反映するという処理は、接続先のPC132側でも行われるので、記録媒体21Bに対して行われた処理は、記録媒体21Aに対しても行われる。このような、他の操作を自己に反映するという処理は、ステップS105の処理として行われる。
ステップS105の処理が終了されると、ステップS102に処理が戻され、それ以降の処理が繰り返される。なお、ステップS104とステップS105の処理は、常に行うことが可能な処理であり、ステップS104の処理が実行された後にステップS105の処理が実行されるという関係は、必ずしも守られる必要性はない。よって、各クライアントは、装着されている記録媒体21の内容を、対に構成されている記録媒体21との関係において、常に最新のものに更新することができる状態とされている。
このように、他の装置と接続されている間は、一方のクライアントで記録媒体21に対して行われた操作は、他方のクライアントに装着されている記録媒体21に対しても同様に行われる。よって、接続されている間は、接続されている各クライアントに装着されている記録媒体21に記録されているデータは、常に同一の内容とされる。
一方、ステップS102において、他のクライアントとは接続していないと判断された場合、ステップS106に処理が進められる。PC131は、他のクライアントと接続していない状態のとき、すなわち、単独で処理を行うようなとき、装着されている記録媒体21Aに対して何らかの操作が行われたとき、その操作を反映される処理が実行される。すなわちこのような場合、通常、記録媒体21Aに対して行われる処理が、普通に実行されるだけである。
ステップS106の処理が終了されると、ステップS101に処理が戻され、それ以降の処理が実行される。ステップS106において処理が実行(処理が実行された時刻を時刻t1とする)された後、ステップS101に処理が戻されるため、時刻t1後に、他のクライアント(PC132)と接続されたとき、ステップS102の処理でPC132と接続していると判断され、ステップS103以降の処理が行われるため、接続されていない間に行われた処理も、結果として、時刻t1後に、対になっている他方の記録媒体21(この場合、記録媒体21B)に対しても反映される。
図16のフローチャートを参照して、ステップS103における同期処理について説明する。ステップS111において、記録媒体21Aに記録されているデータの内容(ファイル名の一覧など)を示すリストが交換される。記録媒体21Aが装着されているPC131は、記録媒体21Bが装着されているPC132に対して、記録媒体21Aに記録されているリスト(以下、リストAとする)を送信する。PC131は、PC132から、記録媒体21Bに記憶されているリスト(以下、リストBとする)を受信する。
このような処理が実行されることにより、ステップS111の処理が終了されると、ステップS112に処理が進められる。ステップS112において、PC131は、リストAとリストBを比較し、同一の名前であるが内容が異なると判断されるデータ(名前)をリストアップする。同一の名前であるが内容が異なるデータであると判断する基準となる情報には、例えば、データのサイズが考えられる。また、更新日時などでも良い。さらに、MD5のダイジェスト生成アルゴリズムを用いたダイジェスト値を用いても良い。
同じ名前であるのに、そのデータサイズ、更新日時、あるいはダイジェスト値が異なるということは、記録媒体21Aか記録媒体21Bのどちらかに、前回の同期時より後の時点で、記録されているデータに対して何らかの操作が加えられたことを意味している。そこで、そのようなデータを、ステップS112の処理としてリストアップする。
ステップS113において、リストアップされたデータの名前が変更される。この名前の変更は、例えば、元の名前に、予め設定されている文字列(例えば、自己のアドレスや名称)を付加する、接続相手とネゴシエーションし、互いに同一の名前とならないように設定するなどが考えられる。いずれの方法によっても良いが、ステップS113の処理として、リストアップされた名前が変更される。
このように、名前を変更するのは、同期が行われた結果、同一の名前であると上書きされてしまう恐れがあり、そのような状況が発生してしまうことを防ぐためである。例えば、記録媒体21AをユーザAが用い、記録媒体21BをユーザBが用いている状況を考える。ユーザAとユーザBが同一のデータを処理しているときに、同期が行われたとする。名前が変更されずに同期が行われた場合、例えば、ユーザAが作成したデータが、ユーザBが作成したデータに上書きされてしまい、ユーザAが作成したデータが消失してしまうといったようなことが発生する可能性がある。このようなことが発生すると、ユーザAにとっては損害である。
よって、そのような不都合が同期を行うことによって発生してしまうようなことがないように、名前を変更し、上書きされないようにする。ステップS114において、リストが作成し直され、その作成し直されたリストが交換される。リストを作成し直すとは、ステップS113における処理が実行された結果、変更された名前を含む(元の名前を変更された名前に置き換えた)リストにすることである。
ステップS114におけるリストの作成し直しについて説明を加える。ステップS114において、同一の名前であるが内容が異なるデータと判断され、名前が変更されたデータのみをリストに載せるか、または、名前が変更されたデータと名前が既に異なっていると判断されていたデータ(よって、名前は変更されていないデータであり、どちらか一方のユーザが独自に作成したデータ)を含めたリストにするか、2通り考えられる。
名前が変更されたデータのみをリストに載せる場合、記録媒体21Aと記録媒体21Bに記録されているデータは、共用するデータとして予め設定されているデータのみを、同期の対象とすることができる。しかしながら、名前が変更されたデータと名前が変更されていないデータを共にリストに載せる場合、そのような予め共用するか否かの設定によらず、記録媒体21内の全てのデータが同期の対象とされる。
どちらに設定されるかは、ユーザによって適宜設定されるようにしても良いし、予め設定されているようにしても良い。
いずれにせよ、少なくとも名前が変更されたデータは、リストに載せられる。これは、少なくとも、同一の名前であったデータは、共用されても問題はないデータであると判断できるからである。
PC131とPC132との間で、作成し直されたリスト(PC131からのリストをリストA’とし、PC132からのリストをリストB’とする)が交換されると、ステップS115において、リストA’とリストB’が比較され、自己のリストと一致しない名前に対応するデータが、接続先の他方のクライアントからダウンロードされる。
このようにして、対になっている記録媒体21に記録されているデータは、同期され、同一のデータが記録されている状態とされる。
なお、上述した実施の形態においては、ステップS113において、同一の名前だが内容が異なると判断されるデータの名前は変更されるとしたが、上述した例におけるPC131とPC132の両方が、そのような処理を実行する必要性はなく、どちらか一方のみが、名前を変更する処理を実行すれば、データが上書きされてしまうといったような不都合が発生することを防ぐことが可能である。
よって、何らかの優先度に基づき、どちらか一方のクライアントのみが、ステップS113における処理を実行するようにしても良い。何らかの優先度とは、例えば、記録媒体21Aと記録媒体21Bが対に構成されている場合、記録媒体21Aの方が、記録媒体21Bよりも優位であると設定しておくなどが考えられる。そして、そのように設定されている場合、記録媒体21Aが装着されているPC131側では、ステップS113の処理を実行しないようにすればよい。
また、そのような優先度を設定するようにした場合、優先度が低い方に設定されているクライアントに装着されている記録媒体21のデータのうち、同一の名前のデータは、適宜削除されるようにしても良い。
なお、リストが交換される際、記録媒体21に記録されている鍵で暗号化されたリストが交換されるようにしても良い。交換されるリストが、鍵で暗号化することにより、仮に不正な相手が暗号化されたリストを取得したとしても、その相手は復号することができず、結果的に、リストを取得できないことになる。よって、リストが不正に流出してしまうようなことを防ぐことが可能となる。
上述した実施の形態においては、PC131やPC132のディスプレイ(不図示)に表示される画面については説明を加えていないが、他のクライアントと接続されている状態であるか否かをユーザ側でも認識できる表示が行われる方が、好ましいと考えられる。そこで、例えば、図17に示すような画面が、PC131のディスプレイ151に表示されるようにしても良い。
図17に示した例では、リスト内の情報が表示されるリスト表示部161の上側に、接続状態を示す接続状態表示部162が設けられている。図17に示した例では、接続状態表示部162には、“PC132と接続されています”というメッセージが表示されている状態を示し、ユーザは、このメッセージを参照することで、PC162と接続されている状態であることを認識することが可能とされている。
なお、上述した実施の形態においては、記録媒体21に記録されているデータが同期の対象とされるとして説明したが、そのような実施の形態にのみ本発明が限定されるわけではない。例えば、PC131が内蔵する記録装置の所定の領域(所定のフォルダが記憶されている領域など)と、PC132が内蔵する記録装置の所定の領域に記録されているデータが同期の対象とされるような場合にも、本発明を適用することができる。
このように、所定の領域に記憶されているデータが、同期の対象とされることにより、記録媒体21の容量以上のデータを扱うことができるようになり、使い勝手を向上させることができる。
なお、上述した実施の形態においては、PC131とPC132で、それぞれ取り扱うデータが同期されるとして説明したが、2台のクライアント間においてのみ行われる同期だけに本発明が適用されるのではなく、複数台のクライアント間におけるデータの同期にも本発明を適用することができる。
上述したような本発明を適用することにより、特定のクライアントとデータの同期を行う際、相手のアドレスや名前などの諸情報を、ユーザ側で認識していなくても、データの同期を実行させることが可能となる。よって、例えば、従来、クライアントAとクライアントBとの間でデータの同期が行われるように設定されている状態で、新たにクライアントCとも、または、クライアントBの代わりにクライアントCとデータの同期を行わせたい場合、新たにクライアントCのアドレスや名称を設定しなくてはならなかったが、本発明を適用することにより、クライアントCに関する面倒な設定をユーザは行わなくても、データの同期を実行させることが可能となる。
また、本発明を適用することにより、例えば、ユーザAが、記録媒体21Aに記録されているデータと同一のデータを記録している記録媒体21BをユーザBに渡した後、そのデータが更新されれば、記録媒体21Aと記録媒体21Bにそれぞれ記録されているデータ自体も、共に更新される。すなわち、一度、相手側に渡してしまったデータに何らかの変更があったような場合でも、簡便に、その変更を、相手側のデータに対しても反映させることができる。
また、同期に関わる処理において、ネットワーク2上を授受されるデータは、暗号化されたものとすることができる。また、その暗号化を行う鍵は、各記録媒体21で管理されている。そのため、セキュリティを向上させることができる。
なお、上述した実施の形態においては、記録媒体21に記録されているデータが同期の対象であるとしたが、記録媒体21に記録されているIDや鍵なども同期の対象としても良い。これは、セキュリティの向上のために、定期的にIDや鍵などを変更した方が好ましいからである。仮に、IDや鍵も同期されるとした場合、例えば、新たなIDや鍵はその時点での鍵で暗号化され、授受されるようにすれば、上述したデータの同期と同様に、セキュリティが保たれた状態で、同期が行える。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図5に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク81(フロッピディスクを含む)、光ディスク82(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク83(MD(登録商標)(Mini-Disk)を含む)、もしくは半導体メモリ84などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM72や、記憶部78に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表わすものである。
1 管理サーバ, 2 ネットワーク, 21 記録媒体, 31 識別部, 61 リーダ, 62 通信制御部, 64 通信部, 71 CPU, 72 ROM, 73 RAM, 78 記憶部, 79 通信部, 80 ドライブ, 81 磁気ディスク, 82 光ディスク, 83 光磁気ディスク, 84 半導体メモリ