(57)【要約】【課題】  ドライブとアプリケーションと接続デバイスとの間でデータの転送およびデータ処理が実行される構成におけるデータの不正利用を防止可能とした構成を提供する。【解決手段】  ドライブと接続デバイス間における相互認証処理をアプリケーションを実行するホストを経由して実行し、この認証において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を相互に提示し、双方の機器において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーとの一致を確認する処理を行なう。ドライブと接続デバイス間の認証により、十分なセキュリティを確保した状態でのデータ転送およびデータ処理が実現される。【選択図】  図１７
2005244695.tif 000002
【特許請求の範囲】
【請求項１】
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置であり、
前記ホスト、ドライブ、および接続デバイスの各々はデータ処理部を有し、
前記ドライブと前記接続デバイスのデータ処理部は、
前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する構成であり、該相互確認処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書の相互提示処理を実行し、前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を行い、これらのシーケンスナンバーの一致を認証条件とした確認処理を行なう構成であることを特徴とする情報処理装置。
【請求項２】
前記ドライブと前記接続デバイス間における相互確認処理は、
前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送受信および検証処理を含む処理であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ドライブと前記接続デバイス間における相互確認処理は、
前記認定グループ証明書に基づく確認相手機器の正当性確認処理を含む処理として実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記アプリケーションを実行するホストは、
前記ドライブと前記接続デバイス間における相互確認処理において、
前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する１つの機器に送信する処理を実行する構成であり、
前記クエリーリストの受信機器は、
前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記クエリーリストの受信機器は、
クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、
クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、
クエリーリストに含まれる少なくとも１つのクエリーの署名検証による改竄なしの確認、
上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記クエリーリストの受信機器は、
前記クエリーリストに対する署名データを付加したレスポンスをクエリー送信機器に送信し、
前記レスポンスを受信した機器は、
該レスポンスに対する署名検証により認証可否判定を実行する構成であることを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記ドライブと前記接続デバイス間における相互確認処理は、
前記ドライブと前記アプリケーション間の相互認証の成立と、前記アプリケーションと前記接続デバイス間の相互認証の成立を条件として実行する構成であり、
前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記情報処理装置は、
前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行し、該配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理方法であり、
前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
前記相互確認処理ステップは、
管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした確認処理を実行するステップであることを特徴とする認証処理方法。
【請求項１０】
前記ドライブと前記接続デバイス間における相互確認処理ステップは、
前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送信および検証処理を含む処理であることを特徴とする請求項９に記載の認証処理方法。
【請求項１１】
前記ドライブと前記接続デバイス間における相互確認処理ステップは、
前記認定グループ証明書に基づく確認相手機器の正当性確認処理ステップを含むことを特徴とする請求項９に記載の認証処理方法。
【請求項１２】
前記ドライブと前記接続デバイス間における相互確認処理ステップは、
前記アプリケーションを実行するホストにおいて、前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信するステップと、
前記アプリケーションを実行するホストにおいて、前記複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する１つの機器に送信するステップと、
前記クエリーリストの受信機器において、前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行するステップと、
を含むことを特徴とする請求項９に記載の認証処理方法。
【請求項１３】
前記クエリーリストの受信機器は、
クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、
クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、
クエリーリストに含まれる少なくとも１つのクエリーの署名検証による改竄なしの確認、
上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行することを特徴とする請求項１２に記載の認証処理方法。
【請求項１４】
前記認証処理方法は、さらに、
前記クエリーリストの受信機器において、前記クエリーリストに対して署名データを付加して生成したレスポンスをクエリー送信機器に送信するステップと、
前記レスポンスを受信した機器において、前記レスポンスに対する署名検証により認証可否判定を実行するステップと、
を有することを特徴とする請求項１２に記載の認証処理方法。
【請求項１５】
前記認証処理方法は、さらに、
前記ドライブと前記アプリケーション間の相互認証を実行するステップと、
前記アプリケーションと前記接続デバイス間の相互認証を実行するステップを有し、
前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行するステップであり、
前記ドライブと前記接続デバイス間における相互確認処理は、前記各認証の成立を条件として実行することを特徴とする請求項９に記載の認証処理方法。
【請求項１６】
前記認証処理方法は、さらに、
前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行するステップを有し、前記シーケンスナンバー証明書の配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行することを特徴とする請求項９に記載の認証処理方法。
【請求項１７】
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理を実行するコンピュータ・プログラムであり、
前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
前記相互確認処理ステップは、
管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした認証処理を実行するステップであることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および認証処理方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、厳正な認証処理の実行によりコンテンツの不正利用を防止することを可能とした情報処理装置、および認証処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
昨今、音楽等のオーディオデータ、映画等の画像データ、ゲームプログラム、各種アプリケーションプログラム等、様々なソフトウエアデータ（以下、これらをコンテンツ（Content）と呼ぶ）が、インターネット等のネットワークを介して、あるいはＣＤ(Compact Disc)、ＤＶＤ(Digital Versatile Disk)、青色レーザーディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、ＭＤ(Mini Disk)等の情報記録媒体（メディア）を介して流通している。これらの流通コンテンツは、ユーザの所有するＰＣ（Personal Computer）やプレーヤ、あるいはゲーム機器等、様々な情報処理装置において再生され利用される。
【０００３】
音楽データ、画像データ等、多くのコンテンツは、一般的にその作成者あるいは販売者に頒布権等が保有されている。従って、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、コンテンツの利用を許諾し、許可のない複製や利用が行われない構成とするのが一般的となっている。
【０００４】
特に、近年においては、情報をデジタル的に記録する記録装置や記憶媒体が普及しつつある。このようなデジタル記録装置および記憶媒体によれば、例えば画像や音声を劣化させることなく記録、再生を繰り返すことが可能であり、不正コピーコンテンツのインターネットを介した配信や、ＣＤ−Ｒ等の記録媒体に対する不正コピーという問題が頻発している。
【０００５】
記録媒体に格納されたコンテンツの保護を実現するための標準規格としてＣＰＲＭ（Ｃｏｎｔｅｎｔ Ｐｒｏｔｅｃｔｉｏｎ ｆｏｒ Ｒｅｃｏｒｄａｂｌｅ Ｍｅｄｉａ）がある。ＣＰＲＭは、コンテンツを暗号化して情報記録媒体に格納し、正当なコンテンツ利用権を持つユーザデバイスのみが暗号化コンテンツの復号に適用する鍵を取得可能としたシステムを提供している。
【０００６】
コンテンツを格納した情報記録媒体からのデータ読み取りあるいは記録を直接実行する装置は、情報記録媒体を装着し駆動するドライブ装置であり、ドライブから情報記録媒体からの読み取りデータを入力し再生、あるいは情報記録媒体に対する書き込みデータを生成してドライブに出力する処理を実行するのはドライブに接続された例えばＰＣ等のアプリケーションである。
【０００７】
ＣＰＲＭでは、このようなドライブとＰＣアプリケーションなどが協同して実行するデータ再生あるいは記録処理において、不正なコンテンツの搾取やコピーが実行されないように、例えばＰＣでの実行アプリケーションとドライブ間の相互認証処理などのシーケンスを規定している。
【０００８】
しかし、ＰＣに対するコンテンツの入力、あるいはコンテンツの出力は、ＰＣに接続されたデバイス、例えばチューナー、ビデオカード、サウンドカード、デジタルインタフェース、アナログインタフェース等、様々な接続デバイス（バックエンドデバイスとも呼ばれる）を介して実行される場合が多い。
【０００９】
このような場合、情報記録媒体からの出力コンテンツ、あるいは情報記録媒体に対する入力コンテンツの経路には、ドライブと、ＰＣアプリケーションと、接続デバイスの３つの要素が存在することになる。
【００１０】
ＣＰＲＭでは、ドライブと、再生または記録処理を実行するアプリケーション間の認証シーケンスを規定し、この２者間の相互認証を条件としたデータ処理を行なうシステムを提供しているが、アプリケーションとデータ入出力を実行する接続デバイス間の信頼性確保のための技術的な手段については規定していない。また、アプリケーションと接続デバイス間のデータ転送経路のセキュリティ確保のための技術的な手段についても規定していない。
【００１１】
従って、例えばアプリケーションと接続デバイス間におけるデータ転送経路におけるデータ搾取など、ＣＰＲＭに規定された部分以外でのコンテンツの不正取得、不正利用が発生する可能性が存在するという問題がある。
【００１２】
この問題点について、図面を参照して説明する。図１は、ディスク１１を駆動しディスク１１に対するデータの書き込みまたは読み取りを実行するドライブ１２と、ＰＣ等のホストにおいて実行されるアプリケーション１３と、各種の接続デバイス１４〜１８を示している。図１（Ａ）は、ディスク１１からのデータ再生処理、（Ｂ）はデータ記録処理である。
【００１３】
接続デバイスは、例えばＤＴＣＰ(Digital Transmission Content Protection)規格に従ったデジタルＡＶデータの入出力インタフェースであるＤＴＣＰＩ／Ｆ１４、グラフィックスカード１５、サウンドカード１６、チューナカード１７、ＡＶキャプチャカード１８などによって構成される。
【００１４】
図１（Ａ）に示すディスク１１からのデータ再生処理においては、ドライブ１２から例えばＡＴＡＰＩバスなどの接続バスを介してアプリケーション１３にディスクからの読み取りデータが出力される。アプリケーション１３は例えばホストとしてのＰＣによって実行されるデータ再生アプリケーションプログラムであり、ドライブ１２から入力するデータの復号処理などを含む再生制御処理を実行する。
【００１５】
アプリケーション１３における処理結果データは、たとえばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）やＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）などのホストの内部バス、あるいはＵＳＢ、ＩＥＥＥ１３９４バスなどによって接続された各種の接続デバイス１４〜１６に出力されて、各デバイスでの処理がなされ、スピーカあるいはディスプレイに出力、あるいはネットワークを介して出力される。
【００１６】
ここで、ドライブ１２とアプリケーション１３の間では、ＣＰＲＭに規定された相互認証が実行され、ドライブ１２とアプリケーション１３相互間における通信データは認定された相手であることを確認した後に転送される。従って、この間でデータが不正に搾取、利用される可能性は低いといえる。しかし、アプリケーション１３と接続デバイス１４〜１６の間での認証処理等はＣＰＲＭに規定されておらず、アプリケーション１３と接続デバイス１４〜１６の間におけるデータ転送はセキュアな状態に保持される保証がない。従って、アプリケーション１３と接続デバイス１４〜１６の間のデータ転送またはデータ処理の間にデータが搾取され不正に利用される可能性が存在することになる。
【００１７】
図１（Ｂ）のディスクに対するコンテンツ記録の際も同様であり、例えば著作権管理コンテンツが接続デバイスであるチューナカード１７などを介して入力され、アプリケーション１３を介してドライブ１２に入力し、ディスク１１に書き込みを行なう処理において、アプリケーション１３と接続デバイス１４，１７，１８の間のデータ転送またはデータ処理の間にデータが搾取され不正に利用される可能性が存在する。
【００１８】
図２を参照して、接続デバイスを介するデータ入力時のコンテンツの不正利用例について説明する。
【００１９】
図２の例は、ＰＣ等のホストにおいて不正アプリケーションを実行して、接続デバイスを介して入力するデータを不正にハードディスク３１に格納したり、コーデック３２においてデータ復号を行ない再生利用したり、あるいはネットワーク３３を介して外部に出力する不正利用例を示している。
【００２０】
本来の正当なコンテンツ入力処理が行なわれ、ホストとしてのＰＣにおいて正当なアプリケーションが実行される場合には、接続デバイス１４〜１８から入力する著作権管理コンテンツは、接続デバイスから正当なアプリケーションに渡され、さらにドライブを介してディスクに書き込みが実行される。
【００２１】
しかし、前述したように、ＣＰＲＭでは、アプリケーション−ドライブ間については相互認証処理に基づくセキュアなデータ転送スキームを構築しているものの、接続デバイス側では、アプリケーションの先に正当なドライブが存在していることを確認する方法がない。従って、接続デバイスからアプリケーション側に出力されるデータをホスト（ＰＣ）内の不正アプリケーション２１が受領し、不正な利用をする余地が存在することになる。
【００２２】
このような、不正なコンテンツ利用を防止するためには、ドライブと、アプリケーションと、接続デバイスの３つの要素、全要素間で相互認証を実行し、３要素すべての接続経路においてセキュアなデータ転送が保証された状態を設定し、その後、ディスクからのデータ再生や、ディスクに対するデータ書き込みを行なうことが必要となる。
【００２３】
しかし、図３に示すように、ホスト（ＰＣ）で実行する正当なアプリケーション５５に対して接続される接続デバイスは複数存在する場合があり、また、ドライブも図に示すようにドライブＡ５２，ドライブＢ５４のように複数存在する場合がある。それぞれのドライブに別のディスク５１，５３が装着され、それぞれの処理、例えば一方のディスク５１から読み取ったデータを他方のディスク５３に書き込むなどの処理を行なう場合もある。
【００２４】
このようにアプリケーション５５に対してデータの入出力を実行するドライブ５２，５４や接続デバイス１４〜１８が多数存在すると、図に示すアプリケーションと各ドライブ間の認証Ａ，Ｂの他にアプリケーションと各接続デバイス間の認証ａ〜ｅ、各ドライブと各接続デバイス間の認証ｆ〜ｏをそれぞれ実行することが必要となり、データ処理の開始前に実行すべき認証処理の負荷が増大してしまう。
【発明の開示】
【発明が解決しようとする課題】
【００２５】
本発明は、上述の問題点に鑑みてなされたものであり、ドライブ、アプリケーション、および接続デバイスの３つの要素相互の認証処理の効率的な処理を可能とし、各要素間の信頼性を確認した後に、各要素間におけるデータ転送処理や各要素におけるデータ処理を実行する構成として、十分なセキュリティを確保した状態でのデータ転送およびデータ処理を可能とすることでコンテンツの不正利用の防止を実現した情報処理装置、および認証処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明の第１の側面は、
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置であり、
前記ホスト、ドライブ、および接続デバイスの各々はデータ処理部を有し、
前記ドライブと前記接続デバイスのデータ処理部は、
前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する構成であり、該相互確認処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書の相互提示処理を実行し、前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を行い、これらのシーケンスナンバーの一致を認証条件とした確認処理を行なう構成であることを特徴とする情報処理装置にある。
【００２７】
さらに、本発明の情報処理装置の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理は、前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送受信および検証処理を含む処理であることを特徴とする。
【００２８】
さらに、本発明の情報処理装置の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理は、前記認定グループ証明書に基づく確認相手機器の正当性確認処理を含む処理として実行する構成であることを特徴とする。
【００２９】
さらに、本発明の情報処理装置の一実施態様において、前記アプリケーションを実行するホストは、前記ドライブと前記接続デバイス間における相互確認処理において、前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する１つの機器に送信する処理を実行する構成であり、前記クエリーリストの受信機器は、前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする。
【００３０】
さらに、本発明の情報処理装置の一実施態様において、前記クエリーリストの受信機器は、クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、クエリーリストに含まれる少なくとも１つのクエリーの署名検証による改竄なしの確認、上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする。
【００３１】
さらに、本発明の情報処理装置の一実施態様において、前記クエリーリストの受信機器は、前記クエリーリストに対する署名データを付加したレスポンスをクエリー送信機器に送信し、前記レスポンスを受信した機器は、該レスポンスに対する署名検証により認証可否判定を実行する構成であることを特徴とする。
【００３２】
さらに、本発明の情報処理装置の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理は、前記ドライブと前記アプリケーション間の相互認証の成立と、前記アプリケーションと前記接続デバイス間の相互認証の成立を条件として実行する構成であり、前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行する構成であることを特徴とする。
【００３３】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行し、該配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行する構成であることを特徴とする。
【００３４】
さらに、本発明の第２の側面は、
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理方法であり、
前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
前記相互確認処理ステップは、
管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした確認処理を実行するステップであることを特徴とする認証処理方法にある。
【００３５】
さらに、本発明の認証処理方法の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理ステップは、前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送信および検証処理を含む処理であることを特徴とする。
【００３６】
さらに、本発明の認証処理方法の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理ステップは、前記認定グループ証明書に基づく確認相手機器の正当性確認処理ステップを含むことを特徴とする。
【００３７】
さらに、本発明の認証処理方法の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理ステップは、前記アプリケーションを実行するホストにおいて、前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信するステップと、前記アプリケーションを実行するホストにおいて、前記複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する１つの機器に送信するステップと、前記クエリーリストの受信機器において、前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行するステップと、を含むことを特徴とする。
【００３８】
さらに、本発明の認証処理方法の一実施態様において、前記クエリーリストの受信機器は、クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、クエリーリストに含まれる少なくとも１つのクエリーの署名検証による改竄なしの確認、上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行することを特徴とする。
【００３９】
さらに、本発明の認証処理方法の一実施態様において、前記認証処理方法は、さらに、前記クエリーリストの受信機器において、前記クエリーリストに対して署名データを付加して生成したレスポンスをクエリー送信機器に送信するステップと、前記レスポンスを受信した機器において、前記レスポンスに対する署名検証により認証可否判定を実行するステップと、を有することを特徴とする。
【００４０】
さらに、本発明の認証処理方法の一実施態様において、前記認証処理方法は、さらに、前記ドライブと前記アプリケーション間の相互認証を実行するステップと、前記アプリケーションと前記接続デバイス間の相互認証を実行するステップを有し、前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行するステップであり、前記ドライブと前記接続デバイス間における相互確認処理は、前記各認証の成立を条件として実行することを特徴とする。
【００４１】
さらに、本発明の認証処理方法の一実施態様において、前記認証処理方法は、さらに、前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行するステップを有し、前記シーケンスナンバー証明書の配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行することを特徴とする。
【００４２】
さらに、本発明の第３の側面は、
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理を実行するコンピュータ・プログラムであり、
前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
前記相互確認処理ステップは、
管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした認証処理を実行するステップであることを特徴とするコンピュータ・プログラムにある。
【００４３】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記録媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００４４】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００４５】
本発明の構成によれば、ドライブ、アプリケーション、および接続デバイスの３つの要素を経由するデータ記録や読み取り処理において、ドライブ、アプリケーション、および接続デバイスの３つの要素の認証を実行する構成とした。ドライブと接続デバイス間における相互認証処理は、アプリケーションを実行するホストを経由して実行し、該認証処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を認証機器間において相互に提示し、双方の機器において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーとの一致を確認する処理を行なう構成としたので、ドライブ、アプリケーション、および接続デバイスの３つの要素を経由するデータ記録や読み取り処理を行なう場合であっても、ドライブと接続デバイス間の認証により、不正なコンテンツ利用を可能とする経路を排除することができ、十分なセキュリティを確保した状態でのデータ転送およびデータ処理が実現される。
【００４６】
さらに、本発明の構成によれば、ドライブとアプリケーションと接続デバイスとの間でデータの転送およびデータ処理が実行される構成において、アプリケーションによるデータ処理の前に、ドライブとアプリケーションと接続デバイス間における相互認証を実行する。相互認証は、（１）シーケンスナンバー証明書共有処理、（２）認定グループ証明書（ＡＧＣ）配布処理、（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証処理、（４）ドライブ−接続デバイス相互確認処理の各処理の実行により、ドライブ、アプリケーション、接続デバイスの全ての間の相互認証が実行され、３者相互の信頼性を確認する構成であるので、不正なアプリケーションが介在したり、各機器各のデータ転送路からのデータ入手を排除することが可能であり、セキュリティの高いデータ処理が実現される。
【００４７】
さらに、本発明の構成によれば、ドライブ−接続デバイス相互確認処理において、ホストは、シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して認証処理を実行する１つの機器に送信し、クエリーリストの受信機器は、クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成としたので、複数の機器が接続された構成においても効率的な認証処理が実現される。
【００４８】
さらに、本発明の構成によれば、クエリーを生成した機器は、クエリーリスト受信機器から署名を付加したレスポンスを受信し、レスポンスの検証を行なうのみで認証が終了する。すなわち、クエリーリストの受信機器は、リストに基づいてすべてのクエリー送信デバイスが認証されたことを条件としてレスポンスが送信されるので、レスポンスを受信した場合は、そのレスポンスに含まれるクエリーリストに含まれる全てのデバイスは信用できるデバイスであることが保証されることになるからである。このように本発明の構成によれば、多数の接続デバイスやドライブが設定された環境においても効率的で確実な認証処理を実行することが可能となる。
【発明を実施するための最良の形態】
【００４９】
以下、図面を参照しながら本発明の情報処理装置、および認証処理方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の各項目について順次行なう。
１．ドライブ、アプリケーションおよび接続デバイスを有する情報処理装置構成および格納データの詳細
２．ドライブ、アプリケーションおよび接続デバイス間の基本認証処理
３．複数のドライブ装置または複数の接続デバイスを持つ構成における認証処理
４．アプリケーション実行装置としての情報処理装置、ドライブ、および接続デバイスのハードウェア構成例
【００５０】
［１．ドライブ、アプリケーションおよび接続デバイスを有する情報処理装置構成および格納データの詳細］
まず、図４を参照して、本発明の適用可能な情報処理装置構成について説明する。本発明は、情報記録媒体（ディスク）１０１からの出力コンテンツ、あるいは情報記録媒体（ディスク）１０１に対する入力コンテンツの経路となる要素、すなわち情報記録媒体１０１を駆動し、データ書き込みまたは読み取り処理を実行するドライブ１０２と、ドライブ１０２とのデータ入出力を実行するＰＣなどのホスト装置で実行するアプリケーション１０３と、アプリケーションとのデータ入出力を実行する接続デバイス１０４の３つの要素が存在する情報処理装置において実行される。なお、以下の実施例において、情報記録媒体の一例としてディスク型記録媒体を適用した例を説明するが、本発明の構成は、ディスク型以外の例えばフラッシュメモリなど、他の態様の記録媒体の適用も可能である。
【００５１】
接続デバイス１０４は、例えば、ＤＴＣＰ(Digital Transmission Content Protection)規格に従ったデジタルＡＶデータの入出力インタフェースであるＤＴＣＰＩ／Ｆ、グラフィックスカード、サウンドカード、チューナカード、ＡＶキャプチャカード、その他の様々なデバイスであり、アプリケーション１０３との間でデータ入出力を実行する全てのデバイスが含まれる。
【００５２】
ドライブ１０２とアプリケーション１０３と接続デバイス１０４との間のデータ転送バスとしては、ＡＴＡＰＩバスや、たとえばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）やＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）などのアプリケーション１０３を実行するＰＣ等のホスト内の内部バス、その他、例えばＵＳＢバス、ＩＥＥＥ１３９４バスなど様々なデータ転送バスが適用可能である。
【００５３】
なお、図４には、ドライブ１０２、接続デバイス１０４をそれぞれ１つのボックスとして示してあるが、本発明は、アプリケーション１０３とのデータ入出力を実行するドライブおよび接続デバイスが、それぞれ複数存在する構成においても適用が可能である。特に多数のドライブおよび接続デバイスがアプリケーションに接続された構成に対して本発明を適用することで、より効率的な認証処理、データ処理が可能となる。これらの処理シーケンスの詳細については、後段で説明する。
【００５４】
本発明を適用することにより、ドライブ１０２、アプリケーション１０３、接続デバイス１０４を経由するデータ経路に存在する全要素の信頼性の確認を条件として情報記録媒体１０１から読み取られたデータの再生、出力処理、あるいは、接続デバイス１０４を介して外部から入力するデータの情報記録媒体（ディスク）１０１に対する書き込み処理を行なう構成であるので、これらのデータ処理をセキュアに実行することが可能となる。
【００５５】
図５以下を参照して情報記録媒体（ディスク）１０１、ドライブ１０２、アプリケーション１０３、および接続デバイス１０４が保持する情報について説明する。
【００５６】
ドライブ１０２、アプリケーション１０３、および接続デバイス１０４の各々には、公開鍵暗号方式に従った公開鍵を格納した公開鍵証明書（ＰＫＣ：Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｅｒｔｉｆｉｃａｔｅ）と秘密鍵（ＫＳ）が格納される。図に示すように、ドライブ１０２はドライブ１０２の公開鍵証明書（ＰＫＣ−Ｄ）、秘密鍵（ＫＳ−Ｄ）を保持し、アプリケーション１０３は、アプリケーション１０３の公開鍵証明書（ＰＫＣ−Ａｐ）、秘密鍵（ＫＳ−ＡｐＤ）を保持し、接続デバイス１０４は、接続デバイス１０４の公開鍵証明書（ＰＫＣ−Ｂ）、秘密鍵（ＫＳ−Ｂ）を保持している。
【００５７】
情報記録媒体１０１、ドライブ１０２、およびアプリケーション１０３は、公開鍵証明書（ＰＫＣ）、秘密鍵（ＫＳ）の他に、シーケンスナンバー証明書（ＳＮＣ：Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ  Ｃｅｒｔｉｆｉｃａｔｅ）を格納している。
【００５８】
さらに、情報記録媒体１０１と、アプリケーション１０３は、認定グループリスト（ＡＧＬ：：Ａｕｔｈｏｒｉｚｅｄ  Ｇｒｏｏｐ  Ｌｉｓｔ）を格納している。認定グループリスト（ＡＧＬ：：Ａｕｔｈｏｒｉｚｅｄ  Ｇｒｏｏｐ  Ｌｉｓｔ）は、複数の認定グループ証明書（ＡＧＣ：Ａｕｔｈｏｒｉｚｅｄ  Ｇｒｏｏｐ  Ｃｅｒｔｉｆｉｃａｔｅ）を格納したリストである。
【００５９】
これらの各証明書、すなわち、
公開鍵証明書（ＰＫＣ）、
認定グループ証明書（ＡＧＣ）および認定グループリスト（ＡＧＬ）、
シーケンスナンバー証明書（ＳＮＣ）
について、図６以下を参照して説明する。図６（ａ）は、各証明書の共通構成を示し、図６（ｂ）は、各証明書に設定されたタイプ情報と証明書との対応を説明する図である。
【００６０】
図６（ａ）に示すように、公開鍵証明書（ＰＫＣ）、認定グループ証明書（ＡＧＣ）、シーケンスナンバー証明書（ＳＮＣ）は、いずれも、
（ａ）証明書タイプ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｔｙｐｅ）
（ｂ）証明書データ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｄａｔａ）
（ｃ）電子署名（Ｓｉｇｎａｔｕｒｅ）
の各データを格納している。
【００６１】
（ａ）証明書タイプ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｔｙｐｅ）は、図６（ｂ）に示すように、
１：公開鍵証明書（ＰＫＣ）、
２：認定グループ証明書（ＡＧＣ）、
３：シーケンスナンバー証明書（ＳＮＣ）
のように、各証明書毎に異なるタイプ番号が設定される。タイプ番号に基づいて、どの証明書であるかを判別可能となる。
【００６２】
（ｂ）証明書データ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｄａｔａ）には、公開鍵証明書（ＰＫＣ）、認定グループ証明書（ＡＧＣ）、シーケンスナンバー証明書（ＳＮＣ）のそれぞれの証明書に応じたデータが格納される。これらの詳細については図７以下を参照して説明する。
【００６３】
（ｃ）電子署名（Ｓｉｇｎａｔｕｒｅ）は、各証明書の発行エンティテイとしての管理センタの電子署名、すなわち管理センタの秘密鍵を適用して生成された署名データであり、（ａ）証明書タイプ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｔｙｐｅ）と、（ｂ）証明書データ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｄａｔａ）に対して、管理センタの秘密鍵を適用して生成される。
【００６４】
署名データに基づいて、証明書の改竄検証が可能となる。すなわち、公開されている管理センタの公開鍵を適用することで、証明書の改竄検証が可能である。
【００６５】
以下、各証明書に格納される証明書データの詳細について、図７〜図９を参照して説明する。まず、図７を参照して公開鍵証明書（ＰＫＣ）のデータ構成について説明する。
【００６６】
図７（ａ）は、公開鍵証明書（ＰＫＣ）の証明書データの例を示している。図７（ｂ）は、楕円暗号を適用した公開鍵証明書（ＰＫＣ）のデータ構成例を示している。
【００６７】
図７（ａ）に示すように、公開鍵証明書（ＰＫＣ）の証明書データには、証明書ＩＤ、公開鍵、その他の情報が含まれる。例えばドライブ１０２は、ドライブ１０２に対応する公開鍵を格納した公開鍵証明書（ＰＫＣ−Ｄ）を管理センタから受領し、ドライブがメモリに格納保持する。また公開鍵に対応する秘密鍵（ＫＳ−Ｄ）も提供される。アプリケーション１０３や接続デバイス１０４に対してもそれぞれ公開鍵証明書（ＰＫＣ）と秘密鍵のペアが提供され、それぞれのメモリに保持する。
【００６８】
公開鍵証明書（ＰＫＣ）は、公開の許容されたデータであり、例えば他の機器の要求に応じて出力される。他の機器の公開鍵証明書を受領した機器は、受領した公開鍵証明書に付加された管理センタの署名に基づく公開鍵証明書の改竄検証を実行し、受領した公開鍵証明書の正当性を確認した後、公開鍵証明書から公開鍵を取得する。なお、管理センタの署名に基づく公開鍵証明書の改竄検証は、管理センタの公開鍵を適用して実行される。管理センタの公開鍵も公開されたデータであり、例えばドライブ１０２、アプリケーション１０３、接続デバイス１０４の不揮発性メモリ等へ予め格納してあるものを利用する、または、ネットワークあるいは記録媒体を介して受領できる。
【００６９】
ドライブ１０２、アプリケーション１０３、接続デバイス１０４は、各機器またはアプリケーションに対応する公開鍵を格納した公開鍵証明書に併せて秘密鍵が提供される。すなわち、それぞれ公開鍵証明書（ＰＫＣ）と秘密鍵のペアが提供され、それぞれのメモリに保持する。公開鍵を格納した公開鍵証明書は公開の許容されたデータであるが、秘密鍵は外部に漏洩することのないように各デバイスにおいてセキュアに保持される。
【００７０】
図７（ｂ）は、楕円暗号を適用した公開鍵証明書（ＰＫＣ）のデータ構成例を示している。図６（ｂ）を参照して説明した証明書タイプ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｔｙｐｅ＝１）、図７（ａ）を参照して説明した証明書ＩＤ（Ｃｅｒｔｉｆｉｃａｔｅ  ＩＤ）、公開鍵（Ｐｕｂｌｉｃ  Ｋｅｙ）が格納され、これらの格納データに対応して管理センタの秘密鍵を適用して生成された電子署名（Ｓｉｇｎａｔｕｒｅ）が設定される。
【００７１】
図８は、（ａ）認定グループ証明書（ＡＧＣ）データ、（ｂ）楕円暗号を適用した認定グループ証明書（ＡＧＣ）データ例、（ｃ）認定グループリスト（ＡＧＬ）の各データ構成を示している。前述したように、（ｃ）認定グループリスト（ＡＧＬ）は、複数の認定グループ証明書（ＡＧＣ）を格納したリストとして設定される。
【００７２】
まず、（ａ）認定グループ証明書（ＡＧＣ）データについて説明する。（ａ）認定グループ証明書（ＡＧＣ）データには、［認定グループ証明書（ＡＧＣ）データ長］、［認定グループ証明書（ＡＧＣ）シーケンスナンバー］、［第１〜最終証明書ＩＤ］、［認定公開鍵証明書情報］が含まれる。
【００７３】
認定グループ証明書（ＡＧＣ）は、コンテンツの管理エンティテイである管理センタが認めた正当なコンテンツ利用機器またはアプリケーションに付与される証明書であり、各機器またはアプリケーションに対応する個別の証明書ＩＤを複数格納するとともに管理センタの電子署名を付加し、改竄の困難な証明書として設定される。認定グループ証明書（ＡＧＣ）は、例えば、ドライブ用の認定グループ証明書（ＡＧＣ）、あるいはアプリケーション用の認定グループ証明書（ＡＧＣ）、メーカーＡの機器に対応する認定グループ証明書（ＡＧＣ）など、様々なグループに対して設定される。
【００７４】
図８（ａ）に示す認定グループ証明書（ＡＧＣ）データは、ある１つのグループ対応の証明書データであり、そのグループに属する証明書の発行先としての機器またはアプリケーションそれぞれの証明書ＩＤが格納される。これが図８（ａ）の証明書データ中の［第１〜最終証明書ＩＤ］である。さらに、グループに属する機器またはアプリケーションに対応する［認定公開鍵証明書情報］が格納される。［認定公開鍵証明書情報］は、グループに属する機器またはアプリケーションに提供されている公開鍵証明書の有効性を確認可能な情報として設定される。
【００７５】
ある機器またはアプリケーションが、他の機器またはアプリケーションとの相互認証処理を実行する場合には、その相手方の公開鍵証明書を取得することが必要となるが、[認定公開鍵証明書情報］に基づいて、相手方の公開鍵証明書の有効性を確認することができる。
【００７６】
認定グループ証明書（ＡＧＣ）は、グループ内の構成メンバーとしての機器あるいはアプリケーションに変更があった場合は、管理センタにおいて適宜更新され、新たな認定グループ証明書（ＡＧＣ）が発行される。［認定グループ証明書（ＡＧＣ）シーケンスナンバー］は、この更新毎に設定される異なるナンバーである。例えば更新処理毎に数値を増加させたシーケンスナンバーが設定される。
【００７７】
このシーケンスナンバーは、図８（ｃ）の認定グループリストに設定された［ＡＧＬシーケンスナンバー］に対応する。認定グループリストには、複数の認定グループ証明書（ＡＧＣ）が格納されており、認定グループリストに設定された［ＡＧＬシーケンスナンバー］に対応する［認定グループ証明書（ＡＧＣ）シーケンスナンバー］が、リストに格納された全ての認定グループ証明書（ＡＧＣ）に設定されている。
【００７８】
例えば、図５に示すアプリケーション１０３は、自己のメモリに保持している認定グループリスト（ＡＧＬ−Ａｐ）の［ＡＧＬシーケンスナンバー］と、情報記録媒体１０１に格納された認定グループリストの［ＡＧＬシーケンスナンバー］とを比較し、より新しいものをメモリに格納することにより、認定グループリスト（ＡＧＬ−Ａｐ）の更新を実行する。これらの具体的処理シーケンスについては後述する。
【００７９】
図８（ｂ）は、楕円暗号を適用した認定グループ証明書（ＡＧＣ）データ例を示している。図６（ｂ）を参照して説明した証明書タイプ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｔｙｐｅ＝２）、図８（ａ）を参照して説明した［認定グループ証明書（ＡＧＣ）データ長］、［認定グループ証明書（ＡＧＣ）シーケンスナンバー］、［第１〜最終証明書ＩＤ］、［認定公開鍵証明書情報］が格納され、これらの格納データに対応して管理センタの秘密鍵を適用して生成された電子署名（Ｓｉｇｎａｔｕｒｅ）が設定される。
【００８０】
図８（ｃ）は、情報記録媒体１０１およびアプリケーション１０３を実行するホスト（ＰＣ）に格納される認定グループリスト（ＡＧＬ：Ａｕｔｈｏｒｉｚｅｄ  Ｇｒｏｏｐ  Ｌｉｓｔ）である。認定グループリスト（ＡＧＬ）は、上述したように認定グループ証明書（ＡＧＣ）を格納したリストである。認定グループ証明書（ＡＧＣ）は、前述したように様々なグループに対応して発行され、認定グループリスト（ＡＧＬ）は、これらの様々な認定グループ証明書（ＡＧＣ）のリストとして構成される。
【００８１】
認定グループリスト（ＡＧＬ）は、グループ証明書（ＡＧＣ）の新規発行、無効化など、様々な変更が生じた場合に管理センタにおいて随時更新される。［ＡＧＬシーケンスナンバー］は、この更新毎に設定される異なるナンバーである。例えば更新処理毎に数値を増加させたシーケンスナンバーが設定される。このシーケンスナンバーは、前述の認定グループ証明書（ＡＧＣ）に格納される［認定グループ証明書（ＡＧＣ）シーケンスナンバー］と対応する。
【００８２】
前述したように、アプリケーション１０３は、自己のメモリに格納された認定グループリスト（ＡＧＬ）を、随時、更新する処理を行なう。例えば情報記録媒体１０１から取得した認定グループリスト（ＡＧＬ）の［ＡＧＬシーケンスナンバー］が、自己の保持している認定グループリスト（ＡＧＬ）より数値が大である場合は、自己の保持している認定グループリスト（ＡＧＬ）より新しいと判定して、メモリに格納されたリストを破棄して、情報記録媒体１０１から取得した新たなリストを格納する。この処理シーケンスの詳細については後述する。
【００８３】
図８（ｃ）に示す認定グループリストには、各グループ対応の認定グループ証明書（ＡＧＣ）データ［ＡＧＣ＿１〜ＡＧＣ＿ｎ］が格納されており、例えば、ドライブ１０２やアプリケーション１０３、接続デバイスなどの各カテゴリに対応する認定グループ証明書（ＡＧＣ）が格納されている。具体的には、
ドライブ対応認定グループ証明書＝［ＡＧＣ−Ｄ］
アプリケーション対応認定グループ証明書＝［ＡＧＣ−ＡＰ］
接続デバイス対応認定グループ証明書＝［ＡＧＣ−Ｂ］
などである。
【００８４】
図９は、シーケンスナンバー証明書（ＳＮＣ）を説明する図である。図９（ａ）はシーケンスナンバー証明書（ＳＮＣ）の証明書データ構成を示し、図９（ｂ）は、楕円暗号を適用したシーケンスナンバー証明書（ＳＮＣ）のデータ構成例を示している。
【００８５】
図９（ａ）に示すように、シーケンスナンバー証明書（ＳＮＣ）の証明書データには、［認定グループリスト（ＡＧＬ）シーケンスナンバー］が格納される。シーケンスナンバー証明書（ＳＮＣ）は、その時点で発行されている最新の認定グループリスト（ＡＧＬ）に対応する［認定グループリスト（ＡＧＬ）シーケンスナンバー］である。
【００８６】
ドライブ１０２やアプリケーション１０３は、自己のメモリに格納されたシーケンスナンバー証明書（ＳＮＣ）の［認定グループリスト（ＡＧＬ）シーケンスナンバー］と、情報記録媒体１０１やその他の機器から取得したシーケンスナンバー証明書（ＳＮＣ）に格納された［認定グループリスト（ＡＧＬ）シーケンスナンバー］とを比較し、自己のメモリに格納されたシーケンスナンバー証明書（ＳＮＣ）の［認定グループリスト（ＡＧＬ）シーケンスナンバー］が古いものであることが判明した場合には、より新しいシーケンスナンバー証明書（ＳＮＣ）を取得し、メモリに格納する。
【００８７】
相互認証処理に際しては、より新しいシーケンスナンバー証明書（ＳＮＣ）に対応する認定グループ証明書（ＡＧＣ）に基づく認証処理を実行する。すなわち、取得可能な最新のシーケンスナンバー証明書（ＳＮＣ）に格納された［認定グループリスト（ＡＧＬ）シーケンスナンバー］に対応するシーケンスナンバーの設定された認定グループリスト（ＡＧＬ）を取得して、そのシーケンスナンバーに対応する認定グループ証明書（ＡＧＣ）に基づいて、機器またはアプリケーションの正当性の判定を実行する。この処理の詳細シーケンスについては後段で説明する。
【００８８】
図９（ｂ）は、楕円暗号を適用したシーケンスナンバー証明書（ＳＮＣ）のデータ構成例を示している。図６（ｂ）を参照して説明した［認定グループリスト（ＡＧＬ）シーケンスナンバー］が格納され、これらの格納データに対応して管理センタの秘密鍵を適用して生成された電子署名（Ｓｉｇｎａｔｕｒｅ）が設定される。
【００８９】
［２．ドライブ、アプリケーションおよび接続デバイス間の基本認証処理］
次に、図１０以下を参照して、ドライブ１０２、アプリケーション１０３、接続デバイス（バックエンドデバイス）１０４において実行する認証処理シーケンスについて説明する。
【００９０】
まず、図１０以下を参照して、ドライブ１０２、アプリケーション１０３、接続デバイス１０４がそれぞれ１つずつ存在する場合の基本シーケンスについて説明する。
【００９１】
図１０に示すように、ドライブ、アプリケーション、接続デバイス間で実行する認証処理シーケンスは、大きく分けて以下の４ステップにより構成される。
（１）シーケンスナンバー証明書共有ステップ（ステップＳ１００）
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ１２０）
（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ（ステップＳ１３０）
（４）ドライブ−接続デバイス相互確認ステップ（ステップＳ１５０）
【００９２】
（１）シーケンスナンバー証明書共有ステップ（ステップＳ１００）は、例えばディスクに格納された最新のシーケンスナンバー証明書（ＳＮＣ）をドライブ、アプリケーション、接続デバイス各々がメモリに格納し、全ての機器において共通のシーケンスナンバー証明書を共有する処理である。
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ１２０）は、アプリケーションが、全ての機器において共有するシーケンスナンバー証明書に対応するシーケンスナンバーを持つ認定グループ証明書（ＡＧＣ）を格納した認定グループリストから、アプリケーションの属するグループ対応の認定グループ証明書（ＡＧＣ−Ａｐ）を取り出してドライブと接続デバイスに送付する処理である。
（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ（ステップＳ１３０）は、ドライブとアプリケーション間での相互認証と、アプリケーションと接続デバイス間の相互認証をそれぞれ実行するステップである。
（４）ドライブ−接続デバイス相互確認ステップ（ステップＳ１５０）は、アプリケーションを介してドライブと接続デバイス間において実行する相互認証ステップである。
【００９３】
なお、図１０において、太線枠で示しているデータ、すなわち、ドライブのシーケンスナンバー証明書（ＳＮＣ−Ｄ）と、アプリケーションのシーケンスナンバー証明書（ＳＮＣ−Ａｐ）と認定グループリスト（ＡＧＬ−Ａｐ）は、不揮発性メモリの格納データであることを示している。その他のデータは、一時的に記憶されればよいデータであり、揮発性、不揮発性いずれのメモリに格納してもよい。
【００９４】
以下、上述の（１）〜（４）に対応する各処理の詳細シーケンスについて説明する。
まず、
（１）シーケンスナンバー証明書共有ステップ（ステップＳ１００）
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ１２０）
の処理シーケンスの詳細について、図１１を参照して説明する。
【００９５】
図１１に示す各処理ステップについて説明する。まず、ステップＳ１０１において、ドライブがディスクの装着を検出し、ステップＳ１０２において、ディスクに記録されたシーケンスナンバー証明書（ＳＮＣ−ＤＩＳＣ）を読み取り、取得する。
【００９６】
ドライブは、ステップＳ１０３において、ドライブ内のメモリに格納されたシーケンスナンバー証明書（ＳＮＣ−Ｄ）のシーケンスナンバーと、ディスクから取得したシーケンスナンバー証明書（ＳＮＣ−ＤＩＳＣ）のシーケンスナンバーとを比較し、ディスクから取得したシーケンスナンバー証明書（ＳＮＣ−ＤＩＳＣ）のシーケンスナンバーがドライブ内のメモリに格納されたシーケンスナンバー証明書（ＳＮＣ−Ｄ）のシーケンスナンバーより大、すなわち、ディスクから取得したシーケンスナンバー証明書（ＳＮＣ−ＤＩＳＣ）がより新しいものである場合には、メモリに格納されたシーケンスナンバー証明書（ＳＮＣ−Ｄ）をディスクから取得したシーケンスナンバー証明書（ＳＮＣ−ＤＩＳＣ）に置き換えるデータ更新処理を実行し、これを新たなドライブ対応シーケンスナンバー証明書（ＳＮＣ−Ｄ）として設定する。
【００９７】
ステップＳ１０４において、アプリケーションがドライブからの通知によりディスクが装着されたことを検出すると、アプリケーションは、ステップＳ１０５において、ドライブに対して、ドライブ対応シーケンスナンバー証明書（ＳＮＣ−Ｄ）の取得要求を出力する。
【００９８】
ステップＳ１０６において、ドライブは、更新されたシーケンスナンバー証明書（ＳＮＣ−Ｄ）をアプリケーションに送信する。ステップＳ１０７において、アプリケーションは、アプリケーションを実行するホスト機器（ＰＣなど）のメモリに格納されたアプリケーション対応のシーケンスナンバー証明書（ＳＮＣ−Ａｐ）のシーケンスナンバーと、ドライプから取得したシーケンスナンバー証明書（ＳＮＣ−Ｄ）のシーケンスナンバーとを比較し、ドライブから取得したシーケンスナンバー証明書（ＳＮＣ−Ｄ）のシーケンスナンバーがアプリケーション実行機器（ホスト）のメモリに格納されたシーケンスナンバー証明書（ＳＮＣ−Ａｐ）のシーケンスナンバーより大、すなわち、ドライブから取得したシーケンスナンバー証明書（ＳＮＣ−Ｄ）がより新しいものである場合には、メモリに格納されたシーケンスナンバー証明書（ＳＮＣ−Ａｐ）をドライブから取得したシーケンスナンバー証明書（ＳＮＣ−Ｄ）に置き換えるデータ更新処理を実行し、これを新たなアプリケーション対応シーケンスナンバー証明書（ＳＮＣ−Ａｐ）として設定する。
【００９９】
さらに、アプリケーションは、ステップＳ１０８において、ステップＳ１０７で更新したアプリケーション対応シーケンスナンバー証明書（ＳＮＣ−Ａｐ）に記録されたシーケンスナンバーと、アプリケーションを実行するホスト機器のメモリに格納されたアプリケーション対応の認定グループリスト（ＡＧＬ−Ａｐ）に設定されたシーケンスナンバーとを比較し、認定グループリスト（ＡＧＬ−Ａｐ）に設定されたシーケンスナンバーが、更新したアプリケーション対応シーケンスナンバー証明書（ＳＮＣ−Ａｐ）に記録されたシーケンスナンバーより古いものである場合には、ステップＳ１０９で、ドライブに対して新しい認定グループリスト（ＡＧＬ）、すなわち、更新したアプリケーション対応シーケンスナンバー証明書（ＳＮＣ−Ａｐ）に記録されたシーケンスナンバーに対応するシーケンスナンバーを持つ認定グループリスト（ＡＧＬ）を要求する。
【０１００】
ドライブは、アプリケーションからの要求に応じて、ステップＳ１１０で、ディスクから認定グループリスト（ＡＧＬ）を読み取り、ステップＳ１１１で、アプリケーションに送信する。
【０１０１】
アプリケーションは、ステップＳ１１２において、ディスクからドライブ経由で取得した認定グループリスト（ＡＧＬ）をホストのメモリに格納し認定グループリスト（ＡＧＬ）の更新を実行するとともに、認定グループリスト（ＡＧＬ）からアプリケーションを含むグループに対応する認定グループ証明書（ＡＧＣ−Ａｐ）を選択して、これをドライブに送信する。
【０１０２】
さらに、アプリケーションは、ステップＳ１１３において、接続デバイスに、先にステップＳ１０７で更新したアプリケーション対応シーケンスナンバー証明書（ＳＮＣ−Ａｐ）を送信し、さらに、ステップＳ１１４において、接続デバイスに、先にステップＳ１１２で更新したアプリケーション認定グループリスト（ＡＧＬ−Ａｐ）からアプリケーションを含むグループに対応する認定グループ証明書（ＡＧＣ−Ａｐ）を選択して、これをドライブに送信する。
【０１０３】
この処理によって、図１０に示すステップＳ１００とＳ１２０の処理、すなわち
（１）シーケンスナンバー証明書共有ステップ（ステップＳ１００）
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ１２０）
の処理が終了する。
【０１０４】
この処理の終了により、ドライブ、アプリケーション、接続デバイスは全て共通のシーケンスナンバー証明書を所有し、ドライブ、接続デバイスの両者は、アプリケーションを含むグループに対応する認定グループ証明書（ＡＧＣ−Ａｐ）を所有し、アプリケーションは、認定グループリスト（ＡＧＬ−Ａｐ）を所有することになる。なお、アプリケーションの所有する認定グループリスト（ＡＧＬ−Ａｐ）には、アプリケーションを含むグループに対応する認定グループ証明書（ＡＧＣ−Ａｐ）のみならず、ドライブを含むグループに対応する認定グループ証明書（ＡＧＣ−Ｄ）および接続デバイスを含むグループに対応する認定グループ証明書（ＡＧＣ−Ｂ）が含まれ、これらを所有することになる。
【０１０５】
次に、ステップＳ１３０において、
（３）ドライブ−アプリケーション間相互認証（ステップＳ１３１）、およびアプリケーション−接続デバイス間相互認証（ステップＳ１３２）が実行される。
【０１０６】
この処理シーケンスについて、図１２を参照して説明する。図１２は、ドライブ−アプリケーション間相互認証（ステップＳ１３１）のシーケンスを説明する図でしてあるが、アプリケーション−接続デバイス間相互認証（ステップＳ１３２）も全く同様の処理シーケンスによって実行される。
【０１０７】
図１２の認証処理の各ステップについて説明する。ステップＳ１３５において、ホストアプリケーションは、ドライブに対して乱数生成処理によって生成したチャレンジデータ［Ｃ＿ａｐｌ］と、公開鍵証明書［Ｃｅｒｔ＿ａｐｌ］を送信する。
【０１０８】
このデータを受け取ったドライブ側は、ステップＳ１３６において、公開鍵証明書［Ｃｅｒｔ＿ａｐｌ］の署名検証処理により、公開鍵証明書［Ｃｅｒｔ＿ａｐｌ］の正当性を検証する。署名検証処理は、ドライブの保持する管理センタの公開鍵を適用して実行される。
【０１０９】
公開鍵証明書［Ｃｅｒｔ＿ａｐｌ］の正当性が検証されると、公開鍵証明書［Ｃｅｒｔ＿ａｐｌ］からアプリケーションＩＤまたは公開鍵証明書ＩＤを取得して、アプリケーションを含むグループに対応する認定グループ証明書（ＡＧＣ−Ａｐ）に登録されたＩＤであるか否かを判定する。登録されたＩＤであれば、アプリケーションは正当なアプリケーションであると判定する。
【０１１０】
公開鍵証明書［Ｃｅｒｔ＿Ａｐｌ］の正当性が確認されなかったり、あるいは、アプリケーションＩＤが認定グループ証明書（ＡＧＣ−Ａｐ）に登録されておらず、アプリケーションが不正であることが判明した場合にはエラーメッセージの通知などを実行し、処理を終了する。以後のデータ処理は中止される。
【０１１１】
公開鍵証明書［Ｃｅｒｔ＿Ａｐｌ］の正当性が確認され、ホストアプリケーションが正当なアプリケーションであることが確認されると、ステップＳ１３７において、ドライブは、ホストアプリケーションに対して乱数生成処理によって生成したチャレンジデータ［Ｃ＿ｄｒｉｖｅ］と、ドライブ側の公開鍵証明書［Ｃｅｒｔ＿ｄｒｉｖｅ］を送信する。
【０１１２】
ホストアプリケーション側では、ドライブ側の公開鍵証明書［Ｃｅｒｔ＿ｄｒｉｖｅ］の署名検証処理により、公開鍵証明書［Ｃｅｒｔ＿ｄｒｉｖｅ］の正当性を検証する。署名検証処理は、ドライブの保持する管理センタの公開鍵を適用して実行される。
【０１１３】
公開鍵証明書［Ｃｅｒｔ＿ｄｒｉｖｅ］の正当性が検証されると、公開鍵証明書［Ｃｅｒｔ＿ｄｒｉｖｅ］からドライブＩＤまたは公開鍵証明書ＩＤを取得して、ドライブを含むグループに対応する認定グループ証明書（ＡＧＣ−Ｄ）に登録されたＩＤであるか否かを判定する。登録されたＩＤであれば、ドライブは正当なドライブであると判定する。
【０１１４】
公開鍵証明書［Ｃｅｒｔ＿ｄｒｉｖｅ］の正当性が確認されなかったり、あるいは、ドライブＩＤが認定グループ証明書（ＡＧＣ−Ｄ）に登録されておらず、ドライブが不正であることが判明した場合にはエラーメッセージの通知などを実行し、処理を終了する。以後のデータ処理は中止される。
【０１１５】
ドライブの正当性が確認された場合には、ホストアプリケーションは、ドライブから受信したチャレンジデータ［Ｃ＿ｄｒｉｖｅ］に基づく演算を実行しパラメータ［Ａ＿Ａｐｌ］を算出し、新たに生成した乱数［Ｒ＿Ａｐｌ］とともに、ドライブに送信（ステップＳ１３９）する。
【０１１６】
一方、ドライブは、ホストアプリケーションから受信したチャレンジデータ［Ｃ＿ａｐｌ］に基づく演算を実行しパラメータ［Ａ＿ｄｒｉｖｅ］を算出し、新たに生成した乱数［Ｒ＿ｄｒｉｖｅ］とともに、ホストアプリケーションに送信（ステップＳ１４０）する。
【０１１７】
この処理により、ドライブ、ホストアプリケーションの双方は、乱数[Ｒ_ａｐｌ]、［Ｒ＿ｄｒｉｖｅ］、パラメータ［Ａ＿ａｐｌ］、［Ａ＿ｄｒｉｖｅ］を共有することになり、ドライブと、ホストアプリケーションの双方は、これらの共有データに基づいて共通のセッションキーＫｓを生成（ステップＳ１４１）する。
【０１１８】
以上で、ドライブとアプリケーション間の相互認証が終了し、セッションキーの共有が終了する。
【０１１９】
なお、この処理シーケンスと同様のシーケンスがアプリケーションと接続デバイス間で実行される。アプリケーションと接続デバイス間での認証処理においては、アプリケーションは、接続デバイスのグループに対応して設定された認定グループ証明書（ＡＧＣ−Ｄ）を参照して接続デバイスの正当性を確認し、接続デバイスは、アプリケーション対応の認定グループ証明書（ＡＧＣ−Ａｐ）を参照してアプリケーションの正当性の確認を行なう。
【０１２０】
相互に正当性が確認された場合には、相互認証が成立し、セッション鍵の共有処理がなされる。いずれか一方でも正当性の確認がなされなかった場合には、相互認証は不成立となり、セッション鍵の共有はなされない。
【０１２１】
上述した処理は、図１０におけるステップＳ１３１とステップＳ１３２の処理に相当する。
【０１２２】
次に、（４）ドライブ−接続デバイス相互確認ステップ（ステップＳ１５０）が実行される。これは、アプリケーションを介してドライブと接続デバイス間において実行するシーケンスナンバー証明書の相互確認ステップである。
【０１２３】
図１０のステップＳ１５０におけるドライブ−接続デバイス相互確認ステップに対応する図が図１３に示す図である。
【０１２４】
図１０および図１３を参照して、（４）ドライブ−接続デバイス相互確認ステップの詳細について説明する。
【０１２５】
まず、ステップＳ１５１において、ドライブは、乱数［ＲＮＧ−Ｄ］を生成し、接続デバイスに送信する。なお、ドライブと接続デバイス間の通信は、アプリケーションを介して実行され、ドライブ−アプリケーション間のデータ転送、アプリケーション−接続デバイス間のデータ転送として送信される。
【０１２６】
接続デバイスは、ドライブからアプリケーションを介して乱数［ＲＮＧ−Ｄ］を受領すると、乱数［ＲＮＧ−Ｄ］と、接続デバイスにおいて生成した乱数［ＲＮＧ−Ｂ］と、さらに、接続デバイスのメモリに格納してある公開鍵証明書［Ｃｅｒｔ−Ｂ］と、シーケンスナンバー証明書［ＳＮＣ−Ｂ］との連結データ［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ］を生成し、この連結データに対して接続デバイスの秘密鍵［ＫＳ−Ｂ］を適用して電子署名データを生成し、連結データに対して署名データ［Ｓｉｇｎ−Ｂ］を付加してステップＳ１５３においてこのデータをアプリケーション経由でドライブに対するクエリー［Ｑｕｅｒｙ］として送信する。なお、上記の［‖］および図１０に示す［‖］はデータの連結処理を示している。
【０１２７】
ドライブは、接続デバイスからアプリケーションを経由して、クエリーデータ
［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］を受領すると、ステップＳ１５４において、接続デバイスからの受信データ［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］に含まれる接続デバイス対応のシーケンスナンバー証明書［ＳＮＣ−Ｂ］に設定されたシーケンスナンバーが、自己の保有するドライブ対応のシーケンスナンバー証明書［ＳＮＣ−Ｄ］に設定されたシーケンスナンバーと一致するか否かを検証する。
【０１２８】
シーケンスナンバーの一致が確認されるとステップＳ１５５に進む。シーケンスナンバーの一致が確認されなかった場合は、以降の処理は中止される。
【０１２９】
シーケンスナンバーの一致が確認され、ステップＳ１５５に進むと、接続デバイスからの受信データ［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］に含まれる乱数［ＲＮＧ−Ｄ］が先に自身が生成した乱数［ＲＮＧ−Ｄ］と一致するか否かの検証を実行する。
【０１３０】
乱数の一致が確認されるとステップＳ１５６に進む。乱数の一致が確認されなかった場合は、以降の処理は中止される。
【０１３１】
乱数の一致が確認され、ステップＳ１５６に進むと、接続デバイスの公開鍵証明書［Ｃｅｒｔ−Ｂ］から接続デバイスの公開鍵を取得し、取得した接続デバイスの公開鍵を適用して、データ［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］の署名検証によるデータ改竄の有無の検証を実行する。データ改竄のないことが確認されなかった場合は、以降の処理は中止される。
【０１３２】
ステップＳ１５４からステップＳ１５６までの検証処理の手順は入れ替わっても構わず、これらの検証処理の過程において、シーケンスナンバー証明書の一致が確認されなかった場合、または乱数の一致が確認されなかった場合、またはデータ改竄のないことが確認されなかった場合は、図１３に示すようにＮＧを示すメッセージがアプリケーションに通知され、また、シーケンスナンバー証明書の一致が確認され、かつ乱数の一致が確認され、かつデータ改竄のないことが確認された場合は、図１３に示すようにＯＫを示すメッセージがアプリケーションに通知される。アプリケーションは、例えばディスプレイにドライブにおける接続デバイスの検証の成否を出力するなどの処理を実行してもよい。
【０１３３】
これらの検証処理において、全ての検証に成功すると、ドライブは、ステップＳ１５７において、接続デバイスから受領したクエリーに対して、自己の保有するドライブ対応のシーケンスナンバー証明書［ＳＮＣ−Ｄ］を連結し、さらに、この連結データに対して接続デバイスの秘密鍵［ＫＳ−Ｄ］を適用して電子署名データを生成し、連結データに対して署名データ［Ｓｉｇｎ−Ｄ］を付加してステップＳ１５８においてこのデータ、
［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ‖ＳＮＣ−Ｄ‖Ｓｉｇｎ−Ｄ］
をアプリケーション経由で接続デバイスに対するレスポンス［Ｒｅｓｐｏｎｓｅ］として送信する。
【０１３４】
接続デバイスは、ステップＳ１５９、ステップＳ１６０において、アプリケーションからドライブの公開鍵証明書［Ｃｅｒｔ−Ｄ］およびドライブ対応の認定グループ証明書［ＡＧＣ−Ｄ］を受領する。なお、これらのデータ受領処理は、ステップＳ１３０の２者間の相互認証以前、途中、以後の、どのタイミングで実行してもよい。
【０１３５】
接続デバイスは、ステップＳ１６１において、アプリケーションから受領したドライブ対応の認定グループ証明書［ＡＧＣ−Ｄ］の署名検証処理と、アプリケーションから受領したドライブの公開鍵証明書［Ｃｅｒｔ−Ｄ］の署名検証処理を実行し、各証明書の正当性、すなわち改竄の有無を検証する。署名検証処理は管理センタの公開鍵を適用して実行される。
【０１３６】
これらの証明書の正当性が確認され、認定グループ証明書［ＡＧＣ−Ｄ］への公開鍵証明書［Ｃｅｒｔ−Ｄ］へ記録された証明書ＩＤの登録確認を通じてドライブの認証が完了するとステップＳ１６２に進む。データ改竄あり、もしくはドライブはリボークされていると判定した場合は、以降の処理は中止する。
【０１３７】
接続デバイスは、ステップＳ１６２において、ドライブから受領したレスポンス［Ｒｅｓｐｏｎｓｅ］、すなわち、
［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ‖ＳＮＣ−Ｄ‖Ｓｉｇｎ−Ｄ］に、先に接続デバイスが送信したクエリーデータ
［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］を含むか否かの判定を行なう。
【０１３８】
送信クエリーと同一のクエリーデータが含まれない場合は、処理を中止する。送信クエリーと同一のクエリーデータが含まれる場合は次の処理に進む。
【０１３９】
ステップＳ１６３では、正当性の確認されたドライブの公開鍵証明書［Ｃｅｒｔ−Ｄ］から取り出したドライブの公開鍵［ＫＰ−Ｄ］を適用して、ドライブから受領したレスポンス［Ｒｅｓｐｏｎｓｅ］、すなわち、
［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ‖ＳＮＣ−Ｄ‖Ｓｉｇｎ−Ｄ］
についての署名検証処理を実行する。
【０１４０】
この署名検証処理により、ドライブから受領したレスポンス［Ｒｅｓｐｏｎｓｅ］が正当であると判定されると、ドライブと接続デバイスの認証が成立したと判定される。署名検証処理により、ドライブから受領したレスポンス［Ｒｅｓｐｏｎｓｅ］が正当でないと判定された場合には認証不成立となり、以降のデータ処理は中止される。
【０１４１】
ステップＳ１６２とステップＳ１６３の検証処理において、クエリーとレスポンス内のデータの一致が確認されなかった場合、レスポンスデータ改竄のないことが確認されなかった場合は、図１３に示すようにＮＧを示すメッセージがアプリケーションに通知され、また、クエリーとレスポンス内のデータの一致が確認され、レスポンスデータ改竄のないことが確認された場合は、図１３に示すようにＯＫを示すメッセージがアプリケーションに通知される。アプリケーションは、例えばディスプレイに接続デバイスにおけるドライブの検証の成否を出力するなどの処理を実行してもよい。
【０１４２】
以上、説明したように、本発明の認証処理では、
（１）シーケンスナンバー証明書共有ステップ（ステップＳ１００）
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ１２０）
（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ（ステップＳ１３０）
（４）ドライブ−接続デバイス相互確認ステップ（ステップＳ１５０）
の各ステップを実行することで、ドライブ、アプリケーション、接続デバイスの全ての間の相互認証が実行され、３者相互の信頼性が確認された後、データ処理を実行する構成としたので、不正なアプリケーションの介在や、各機器各のデータ転送路からのデータ入手は不可能であり、セキュリティの高いデータ処理が実現される。
【０１４３】
次に、図１４〜図１６を参照して、上述した３者間の認証処理におけるアプリケーション、ドライブ、および接続デバイスそれぞれの処理シーケンスについて説明する。
【０１４４】
まず、図１４のフローを参照してアプリケーションを実行するホストの処理について説明する。まず、ステップＳ５０１において、アプリケーションの起動が確認され、ステップＳ５０２において、ドライブからドライブに対する情報記録媒体（ディスク）挿入情報を受信すると、ステップＳ５０３、Ｓ５０４において、ドライブとアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認（リボーク状況確認）とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図１０におけるステップＳ１２０の認定グループ証明書の配布処理（詳細は図１１の処理）である。相互認証処理は、図１０におけるステップＳ１３１の処理であり、先に説明した図１２に示すシーケンスに従った処理として実行される。
【０１４５】
アプリケーションとドライブ間の相互認証が成立したこと（ステップＳ５０５：Ｙｅｓ）を条件として、ステップＳ５０６に進む。ステップＳ５０６〜Ｓ５０８は、アプリケーションと接続デバイス間の相互認証処理であり、認定グループ証明書に基づく正当性確認（リボーク状況確認）とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図１０におけるステップＳ１２０の認定グループ証明書の配布処理（詳細は図１１の処理）である。相互認証処理は、図１０におけるステップＳ１３２の処理であり、先に説明した図１２に示すシーケンスに従った処理として実行される。
【０１４６】
ステップＳ５０９以下の処理は、図１０におけるステップＳ１５０の処理に対応する。ステップＳ５０９において、アプリケーションはドライブに対して乱数の転送を要求し、乱数を受領（Ｓ５１０：Ｙｅｓ）すると、ステップＳ５１１において接続デバイス（バックエンド）に対して乱数を転送する。
【０１４７】
次に、ステップＳ５１２において、アプリケーションは接続デバイス（バックエンド）に対してクエリー送信を要求し、接続デバイスからのクエリー、すなわち前述したクエリーデータ：［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］を受領する（Ｓ５１０：Ｙｅｓ）と、これをステップＳ５１４においてドライブに転送する。
【０１４８】
ステップＳ５１５では、アプリケーションはドライブに対してレスポンス送信を要求する。ステップＳ５１６において、ドライブ側からクエリーに対する検証によりＮＧ（エラー）であるとの報告を受領した場合（Ｓ５１６：Ｙｅｓ）は、ステップＳ５２４においてエラーと判定し、その後の処理を中止する。
【０１４９】
ドライブ側からクエリーに対する検証によりＮＧ（エラー）であるとの報告を受領しなかった場合、あるいはＯＫとの報告を受領し（Ｓ５１６：Ｎｏ）、ドライブからのレスポンス、すなわち前述したレスポンスデータ：［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ‖ＳＮＣ−Ｄ‖Ｓｉｇｎ−Ｄ］を受領する（Ｓ５１７：Ｙｅｓ）と、これをステップＳ５１８において接続デバイス（バックエンド）に転送する。
【０１５０】
さらに、ステップＳ５１９において、アプリケーションは接続デバイスにおけるドライブ認証に必要なデータであるドライブの公開鍵証明書［Ｃｅｒｔ−Ｄ］と、ドライブ対応の認定グループ証明書［ＡＧＣ−Ｄ］を接続デバイスに対して送信する。
【０１５１】
ステップＳ５２０において、接続デバイス側からレスポンスに対する検証によりＮＧ（エラー）であるとの報告を受領した場合（Ｓ５２０：Ｙｅｓ）は、ステップＳ５２４においてエラーと判定し、その後の処理を中止する。
【０１５２】
接続デバイス側からレスポンスに対する検証によりＮＧ（エラー）であるとの報告を受領しなかった場合、あるいはＯＫとの報告を受領し（Ｓ５２０：Ｎｏ）た場合は、ステップＳ５２１に進む。ステップＳ５２１ではディスクの排出を検出し、ディスクが排出された場合はステップＳ５０２に戻る。ディスクの排出が検出されない場合は、ステップＳ５２２に進み、接続デバイスの追加があったか否かを判定し、追加ありと判定した場合は、ステップＳ５０６以下の処理を追加されたデバイスに対して実行する。
【０１５３】
接続デバイスの追加がない場合は、ステップＳ５２３に進み、アプリケーションを実行する。具体的にはドライブに挿入されたディスクからの読み取りデータの再生処理やディスクに対するデータ書き込み処理であり、ドライブ、アプリケーション、接続デバイスの３者を経由したデータ転送が実行される処理である。
【０１５４】
次に、図１５を参照して、ドライブの処理シーケンスについて説明する。ステップＳ５３１において、ドライブに対する情報記録媒体（ディスク）の挿入を検知し、ステップＳ５３２において、バス接続されたホスト側でのコンテンツ再生あるいは記録処理を実行するホストアプリケーション側からの相互認証処理要求を受信すると、ステップＳ５３３〜Ｓ５３５において、ドライブとアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認（リボーク状況確認）とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図１０におけるステップＳ１２０の認定グループ証明書の配布処理（詳細は図１１の処理）である。相互認証処理は、図１０におけるステップＳ１３１の処理であり、先に説明した図１２に示すシーケンスに従った処理として実行される。
【０１５５】
アプリケーションとドライブ間の相互認証が成立したこと（ステップＳ５３５：Ｙｅｓ）を条件として、ステップＳ５３６に進む。ステップＳ５３６以下の処理は、図１０におけるステップＳ１５０の処理、すなわち図１３に示す処理に相当する。
【０１５６】
ステップＳ５３６でアプリケーションからの乱数転送要求を受信すると、ステップＳ５３７で乱数［ＲＮＧ−Ｄ］を生成し出力する。次に、ステップＳ５３８でクエリー受信要求があると、ステップＳ５３９で、アプリケーション経由で接続デバイスからのクエリー：［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］を受信する。
【０１５７】
次に、ステップＳ５４０において、クエリーに含まれる接続デバイスの公開鍵証明書から接続デバイスの公開鍵を取得して、クエリーの署名検証を実行し、ステップＳ５４１において、クエリーに含まれる乱数［ＲＮＧ−Ｄ］が自身で生成した乱数と一致するかの検証を行い、さらに、ステップＳ５４２において、クエリーに含まれる接続デバイス対応のシーケンスナンバー証明書［ＳＮＣ−Ｂ］のシーケンスナンバーと、ドライブ自身のメモリに格納したドライブ対応のシーケンスナンバー証明書［ＳＮＣ−Ｄ］のシーケンスナンバーとが一致するか否かの検証を実行する。
【０１５８】
ａ．クエリーの署名検証によりクエリーが改竄されていないこと、
ｂ．クエリーに含まれる乱数［ＲＮＧ−Ｄ］が自身で生成した乱数と一致すること、
ｃ．接続デバイス対応のシーケンスナンバー証明書［ＳＮＣ−Ｂ］のシーケンスナンバーと、ドライブ自身のメモリに格納したドライブ対応のシーケンスナンバー証明書［ＳＮＣ−Ｄ］のシーケンスナンバーとが一致すること、
上記ａ〜ｃの全てが確認されたことを条件として、ステップＳ５４４に進む。
いずれかが確認されない場合は、ステップＳ５５１に進みアブリケーションに対してエラー報告、すなわち検証結果がＮＧであることの出力を行なう。
【０１５９】
ステップＳ５４４では、クエリーに対してドライブ対応のシーケンスナンバー証明書［ＳＮＣ−Ｄ］を連結し、ステップＳ５４５において、ドライブの秘密鍵で署名を付加したレスポンスを生成し、アプリケーションからのレスポンス送信要求（ステップＳ５４６：Ｙｅｓ）に応じて、ステップＳ５４７においてレスポンスを出力する。レスポンスは、前述したように、
［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ‖ＳＮＣ−Ｄ‖Ｓｉｇｎ−Ｄ］として構成されるデータである。
【０１６０】
ステップＳ５４８においてディスク排出が検出された場合は、ステップＳ５３１に戻り、ステップＳ５４９においてアプリケーション側から新たな相互認証要求を受領した場合には、ステップＳ５３４に戻る。
【０１６１】
ステップＳ５４８においてディスク排出が検出されず、ステップＳ５４９において相互認証要求がない場合は、ステップＳ５５０においてドライブとしての一般動作を実行する。ここでの一般動作は、例えばアプリケーションの要求するディスクからのデータ読み取りおよび出力処理や、アプリケーション側から入力するデータのディスクに対する書き込み処理などである。なお、これらのデータは、認証の成立した接続デバイスとアプリケーションを介して出力あるいは入力される。
【０１６２】
次に、図１６を参照して接続デバイス（バックエンド）の処理について説明する。ステップＳ５７１において、ホスト側でのコンテンツ再生あるいは記録処理を実行するホストアプリケーション側からの相互認証処理要求を受信すると、ステップＳ５７２〜Ｓ５７４において、接続デバイスとアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認（リボーク状況確認）とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図１０におけるステップＳ１２０の認定グループ証明書の配布処理（詳細は図１１の処理）である。相互認証処理は、図１０におけるステップＳ１３２の処理であり、先に説明した図１２に示すシーケンスに従った処理として実行される。
【０１６３】
アプリケーションと接続デバイス間の相互認証が成立したこと（ステップＳ５７４：Ｙｅｓ）を条件として、ステップＳ５７５に進む。ステップＳ５７５以下の処理は、図１０におけるステップＳ１５０の処理、すなわち図１３に示す処理に相当する。
【０１６４】
ステップＳ５７５でアプリケーションからの乱数受信要求を受信すると、ステップＳ５７６で乱数［ＲＮＧ−Ｄ］をドライブからアプリケーション経由で受信する。次に、ステップＳ５７７でクエリー送信要求があると、ステップＳ５７８で、乱数［ＲＮＧ−Ｂ］を生成し、ステップＳ５７９で、クエリー：［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］を生成し、ステップＳ５８０において、アプリケーション経由でドライブに対してクエリー：［ＲＮＧ−Ｄ‖Ｃｅｒｔ−Ｂ‖ＲＮＧ−Ｂ‖ＳＮＣ−Ｂ‖Ｓｉｇｎ−Ｂ］を送信する。
【０１６５】
次に、ステップＳ５８１において、レスポンスの受信要求があると、ステップＳ５８２において、ドライブからのレスポンスをアプリケーション経由で受信する。
【０１６６】
次に、ステップＳ５８３において、ドライブの認証処理に必要となる認証情報の受信要求があると、ステップＳ５８４において、ドライブの公開鍵証明書［ＣＥＲＴ−Ｄ］と、ドライブ対応の認定グループ証明書［ＡＧＣ−Ｄ］とをアプリケーション側から受信する。
【０１６７】
ステップＳ５８５では、ドライブの公開鍵証明書［ＣＥＲＴ−Ｄ］の検証処理を管理センタの公開鍵を用いて実行し、ステップＳ５８６では、レスポンスの署名検証処理を実行する。レスポンスの署名検証処理は、正当性の検証されたドライブの公開鍵証明書［ＣＥＲＴ−Ｄ］から取り出したドライブの公開鍵［ＫＰ−Ｄ］を適用して実行する。
【０１６８】
さらに、ステップＳ５８７において、ドライブから受信したレスポンスに含まれるクエリーデータが、接続デバイス自身が生成し送信したデータと一致するか否かを検証する。
【０１６９】
ａ．ドライブの公開鍵証明書［ＣＥＲＴ−Ｄ］が正当であること、
ｂ．レスポンスが改竄されていないこと、
ｃ．レスポンスに含まれるクエリーデータが、接続デバイス自身が生成し送信したデータと一致すること、
上記ａ〜ｃの全てが確認されたことを条件として、ステップＳ５８８に進む。
いずれかが確認されない場合は、ステップＳ５９０に進みアブリケーションに対してエラー報告、すなわち検証結果がＮＧであることの出力を行なう。
【０１７０】
ステップＳ５８８では、アプリケーション側から新たな相互認証要求を受領した場合には、ステップＳ５７３に戻る。ステップＳ５８８において相互認証要求がない場合は、ステップＳ５８９において接続デバイスとしての一般動作を実行する。ここでの一般動作は、例えばアプリケーションの要求するディスクからの読み取りデータの再生出力処理やネットワーク出力処理、あるいはディスクに対する書き込みデータの取得、生成処理、アプリケーションに対する出力処理などである。なお、これらのデータは、認証の成立したアプリケーション、ドライブを介して出力あるいは入力される。
【０１７１】
なお、接続デバイスとしては、前述したように、例えば、ＤＴＣＰ(Digital Transmission Content Protection)規格に従ったデジタルＡＶデータの入出力インタフェースであるＤＴＣＰＩ／Ｆ、グラフィックスカード、サウンドカード、チューナカード、ＡＶキャプチャカード、その他の様々なデバイスが含まれ、それぞれのデバイスに対応する処理が実行されることになる。
【０１７２】
［３．複数のドライブ装置または複数の接続デバイスを持つ構成における認証処理］
次に、図１７以下を参照して、ホストで実行するアプリケーションに対して複数の接続デバイスが接続された場合に複数の接続デバイスとドライブ間で実行する認証処理シーケンスについて説明する。
【０１７３】
接続デバイスは、上述したように様々の種類のデバイスが存在し、ドライブに装着されたディスクからのデータ再生または記録処理において複数の接続デバイスを利用した処理が実行される場合も多い。このような場合は、全ての接続デバイスとアプリケーションとドライブ間で認証が実行され、それぞれの正当性を確認する処理が必要となる。
【０１７４】
先に、図１０を参照して説明した処理を各接続デバイスに対して繰り返して実行することも１つの手法であるが、以下においては、複数の接続デバイスや複数のドライブが存在する場合の効率的な認証処理について説明する。
【０１７５】
図１７は、先に図１０を参照して説明したドライブ−アプリケーション−接続デバイスが１つずつ存在する場合の認証の基本シーケンスに対応する図であり、複数の接続デバイスと複数のドライブが存在する場合のドライブと接続デバイス間の認証を効率的に実行する処理シーケンスを説明する図である。
【０１７６】
図１７に示すシーケンスにおいても、先に説明した図１０の基本シーケンスと同様、ドライブ、アプリケーション、接続デバイス間で実行する認証処理シーケンスは、大きく分けて以下のステップにより構成される。
（１）シーケンスナンバー証明書共有ステップ（ステップＳ７００）
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ７２０）
（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ（ステップＳ７３０）
（４）ドライブ−接続デバイス相互確認ステップ（ステップＳ７５０）
【０１７７】
本実施例においては、
（１）シーケンスナンバー証明書共有ステップ（ステップＳ７００）
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ７２０）
（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ（ステップＳ７３０）
は、先に図１０〜図１２を参照して説明したと同様の処理として実行される。ただし、アプリケーションと接続デバイス間の２者間の相互認証は、それぞれの接続デバイスとアプリケーション間で繰り返し実行することが必要である。
【０１７８】
本実施例では、図１７に示すステップＳ７５０の処理、すなわち、
（４）ドライブ−接続デバイス相互確認ステップ
が図１０および図１３を参照して説明した基本シーケンスと異なる処理として実行される
【０１７９】
以下、このドライブ−接続デバイス相互確認ステップの処理の詳細について図１７、図１８を参照して説明する。
【０１８０】
まず、ステップＳ７５１において、ドライブ（Ｄ１）は、乱数［ＲＮＧ−Ｄ１］を生成し、接続デバイス（Ｂ１）に送信する。なお、ドライブは複数（Ｄ１〜Ｄｎ）存在し、接続デバイスも複数（Ｂ１〜Ｂｍ）存在し、それぞれがアプリケーションを実行するホストを介したデータ入出力を実行する構成である。図１７では、ドライブ（Ｄ１）と接続デバイス（Ｂ１）との処理例を示している。
【０１８１】
各ドライブと各接続デバイス間の通信は、アプリケーションを介して実行され、ドライブ−アプリケーション間のデータ転送、アプリケーション−接続デバイス間のデータ転送は、必要に応じてそれぞれの相互認証において生成したセッションキーを適用した暗号化データとして送信される。
【０１８２】
接続デバイスは、ドライブからアプリケーションを介して乱数［ＲＮＧ−Ｄ１］を受領すると、乱数［ＲＮＧ−Ｄ１］と、接続デバイスにおいて生成した乱数［ＲＮＧ−Ｂ１］と、さらに、接続デバイスのメモリに格納してある公開鍵証明書［Ｃｅｒｔ−Ｂ１］と、シーケンスナンバー証明書［ＳＮＣ−Ｂ１］との連結データ［ＲＮＧ−Ｄ１‖Ｃｅｒｔ−Ｂ１‖ＲＮＧ−Ｂ１‖ＳＮＣ−Ｂ１］を生成し、この連結データに対して接続デバイスの秘密鍵［ＫＳ−Ｂ１］を適用して電子署名データを生成し、連結データに対して署名データ［Ｓｉｇｎ−Ｂ１］を付加してステップＳ７５３においてこのクエリーデータ、すなわち、
［ＲＮＧ−Ｄ１‖Ｃｅｒｔ−Ｂ１‖ＲＮＧ−Ｂ１‖ＳＮＣ−Ｂ１‖Ｓｉｇｎ−Ｂ１］を
をアプリケーションに送信する。
【０１８３】
アプリケーションでは、他の接続デバイスからも同様のクエリーデータを受信する。ここでは、ドライブが［Ｄ１］，［Ｄ２］の２つ、接続デバイスが［Ｂ１］，［Ｂ２］，［Ｂ３］の３つがアプリケーションに接続されている構成であるとする。
【０１８４】
この場合、ステップＳ７５１においてドライブＤ１がアプリケーションに送信した乱数［ＲＫＧ−Ｄ１］は、ドライブＤ１を除く全ての接続デバイス、すなわちドライブＤ２と、接続デバイスＢ１，Ｂ２，Ｂ３の全てに送信され、それぞれが上述した接続デバイスＢ１と同様のクエリーを生成してアプリケーションに送信する。
【０１８５】
アプリケーションは、ステップＳ７５４でこれらの受信クエリーを連結してクエリーリストを生成し、生成したクエリーリストをドライブＤ１に送信する。
【０１８６】
ドライブが［Ｄ１］，［Ｄ２］の２つ、接続デバイスが［Ｂ１］，［Ｂ２］，［Ｂ３］の３つがアプリケーションに接続されている構成において、アプリケーションの生成するクエリーリストは、
（ａ）［ＲＮＧ−Ｄ１‖Ｃｅｒｔ−Ｄ２‖ＲＮＧ−Ｄ２‖ＳＮＣ−Ｄ２‖Ｓｉｇｎ−Ｄ２］
（ｂ）［ＲＮＧ−Ｄ１‖Ｃｅｒｔ−Ｂ１‖ＲＮＧ−Ｂ１‖ＳＮＣ−Ｂ１‖Ｓｉｇｎ−Ｂ１］
（ｃ）［ＲＮＧ−Ｄ１‖Ｃｅｒｔ−Ｂ２‖ＲＮＧ−Ｂ２‖ＳＮＣ−Ｂ２‖Ｓｉｇｎ−Ｂ２］
（ｄ）［ＲＮＧ−Ｄ１‖Ｃｅｒｔ−Ｂ３‖ＲＮＧ−Ｂ３‖ＳＮＣ−Ｂ３‖Ｓｉｇｎ−Ｂ３］
上記（ａ）〜（ｄ）のクエリーデータを含むリストとなる。
【０１８７】
（ａ）は、ドライブＤ２の生成クエリーであり、（ｂ）は接続デバイスＢ１の生成クエリー、（ｃ）は接続デバイスＢ２の生成クエリー、（ｄ）は接続デバイスＢ３の生成クエリーである。
【０１８８】
アプリケーションはステップＳ７５４において、全ての接続デバイス（ドライブを含む）から受領したクエリーからなるリストを生成し、これを最初に乱数を生成し出力したドライブ、ここではドライブＤ１に送信する。
【０１８９】
ドライブＤ１は、ステップＳ７５５において、クエリーリストに含まれる全クエリーの乱数データ［ＲＮＧ−Ｄ１］が等しく、自己が先に生成した乱数［ＲＮＧ−Ｄ１］と等しいか否かを判定し、さらに、クエリーリストに含まれる全クエリーの各デバイス対応のシーケンスナンバー証明書［ＳＮＣ］、すなわちこの例では、［ＳＮＣ−Ｄ２］、［ＳＮＣ−Ｂ１］、［ＳＮＣ−Ｂ２］、［ＳＮＣ−Ｂ３］のシーケンスナンバーが、すべて自己の保有するシーケンスナンバー証明書［ＳＮＣ−Ｄ１］に設定されたシーケンスナンバーと等しいか否かを検証する。
【０１９０】
乱数の一致、シーケンスナンバー証明書のシーケンスナンバーの一致が確認されない場合は、認証エラーとしてアプリケーションにエラー報告（ＮＧ）を出力する。さらに、クエリーリストから任意の１つのクエリーを抽出し、ステップＳ７５６において、その抽出クエリーについて、そのクエリーに含まれる公開鍵証明書［Ｃｅｒｔ−Ｘ］から公開鍵を取得し、取得した公開鍵を適用して、抽出クエリーの署名検証によるデータ改竄の有無の検証を実行する。データ改竄のないことが確認されなかった場合は、認証エラーとしてアプリケーションにエラー報告（ＮＧ）を出力する。
【０１９１】
抽出クエリーの署名検証により、データ改竄が無く正しいクエリーであると判定されると、認証ＯＫがアプリケーションに通知される。アプリケーションは、例えばディスプレイにドライブにおける接続デバイスの検証の成否を出力するなどの処理を実行してもよい。
【０１９２】
なお、クエリーの改竄検証は、ただ１つのクエリーについてのみ実行されればよい。その１つのクエリーが正しいクエリーであり、そのクエリーに格納された乱数データ［ＲＮＧ−Ｄ１］と、デバイス対応の認定グループ証明書［ＳＮＣ］のシーケンスナンバーが改竄のないデータであることが証明されれば、その他のクエリーにも全て同一の乱数データ［ＲＮＧ−Ｄ１］と、デバイス対応のシーケンスナンバー証明書［ＳＮＣ］のシーケンスナンバーが格納されていることが確認済みであるので、全てのデバイスにおいて共通の乱数データ［ＲＮＧ−Ｄ１］と、共通のシーケンスナンバーを持つシーケンスナンバー証明書［ＳＮＣ］に基づくクエリーが生成されたことが確認されるからである。
【０１９３】
次に、このクエリーリストに基づく検証に成功すると、ドライブＤ１は、ステップＳ７５７において、アプリケーションから受領したクエリーリストに対して、自己の保有するドライブ対応のシーケンスナンバー証明書［ＳＮＣ−Ｄ１］を連結し、さらに、この連結データに対して接続デバイスの秘密鍵［ＫＳ−Ｄ１］を適用して電子署名データを生成し、連結データに対して署名データ［Ｓｉｇｎ−Ｄ１］を付加してステップＳ７５８においてこのデータをアプリケーション経由で各デバイスに対するレスポンス［Ｒｅｓｐｏｎｓｅ］として送信する。
【０１９４】
ここでレスポンスの送信先となるのはクエリーを送信した全デバイスであり、この例では、ドライブ［Ｄ２］、接続デバイス［Ｂ１］，［Ｂ２］，［Ｂ３］の全てに送信される。
【０１９５】
ドライブ［Ｄ２］、接続デバイス［Ｂ１］，［Ｂ２］，［Ｂ３］の各々は、ステップＳ７５９、ステップＳ７６０において、アプリケーションからドライブＤ１の公開鍵証明書［Ｃｅｒｔ−Ｄ１］およびドライブ対応の認定グループ証明書［ＡＧＣ−Ｄ１］を受領する。なお、これらのデータ受領処理は、ステップＳ７３０の２者間の相互認証以前、途中、以後の、どのタイミングで実行してもよい。
【０１９６】
ドライブ［Ｄ２］、接続デバイス［Ｂ１］，［Ｂ２］，［Ｂ３］の各々は、ステップＳ７６１において、アプリケーションから受領したドライブＤ１対応の認定グループ証明書［ＡＧＣ−Ｄ１］の署名検証処理と、アプリケーションから受領したドライブＤ１の公開鍵証明書［Ｃｅｒｔ−Ｄ１］の署名検証処理を実行し、各証明書の正当性、すなわち改竄の有無を検証する。署名検証処理は管理センタの公開鍵を適用して実行される。
【０１９７】
これらの証明書の正当性が確認されるとステップＳ７６２に進む。データ改竄ありと判定した場合は、以降の処理は中止する。
【０１９８】
ドライブ［Ｄ２］、接続デバイス［Ｂ１］，［Ｂ２］，［Ｂ３］の各々は、ステップＳ７６２において、ドライブＤ１から受領したレスポンス［Ｒｅｓｐｏｎｓｅ］、すなわち、先に説明したクエリーリストを含むレスポンスに、自身が生成したクエリーを含むか否かの判定を行なう。
【０１９９】
送信クエリーと同一のクエリーデータが含まれない場合は、処理を中止する。送信クエリーと同一のクエリーデータが含まれる場合は次の処理に進む。
【０２００】
ステップＳ７６３では、正当性の確認されたドライブＤ１の公開鍵証明書［Ｃｅｒｔ−Ｄ１］から取り出したドライブの公開鍵［ＫＰ−Ｄ１］を適用して、ドライブから受領したレスポンス［Ｒｅｓｐｏｎｓｅ］についての署名検証処理を実行する。
【０２０１】
この署名検証処理により、ドライブから受領したレスポンス［Ｒｅｓｐｏｎｓｅ］が正当であると判定されると、ドライブと接続デバイスの認証が成立したと判定される。署名検証処理により、ドライブから受領したレスポンス［Ｒｅｓｐｏｎｓｅ］が正当でないと判定された場合には認証不成立となり、以降のデータ処理は中止される。
【０２０２】
ステップＳ７６２とステップＳ７６３の検証処理において、クエリーとレスポンス内のデータの一致が確認されなかった場合、レスポンスデータ改竄のないことが確認されなかった場合は、図１８に示すようにＮＧを示すメッセージがアプリケーションに通知され、また、クエリーとレスポンス内のデータの一致が確認され、レスポンスデータ改竄のないことが確認された場合は、図１８に示すようにＯＫを示すメッセージがアプリケーションに通知される。アプリケーションは、例えばディスプレイに接続デバイスにおけるドライブの検証の成否を出力するなどの処理を実行してもよい。
【０２０３】
以上、説明したように、本実施例の認証処理では、
（１）シーケンスナンバー証明書共有ステップ（ステップＳ７００）
（２）認定グループ証明書（ＡＧＣ）配布ステップ（ステップＳ７２０）
（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ（ステップＳ７３０）
（４）ドライブ−接続デバイス相互確認ステップ（ステップＳ７５０）
の各ステップを実行する構成としている。
【０２０４】
さらに、（４）ドライブ−接続デバイス相互確認ステップ（ステップＳ７５０）では、アプリケーションに接続された１つのドライブが生成した乱数を他のドライブを含む全ての接続デバイスに送信し、全てにおいて受信乱数と自己保有する認定グループ証明書を含むクエリーを生成してアプリケーションに送信し、アプリケーションではこれらのクエリーを構成データとするクエリーリストを生成して乱数生成ドライブに送信する。
【０２０５】
クエリーリストを受信したドライブは、クエリーリスト内のクエリーの構成データに含まれる自身が生成した乱数データが生成乱数と全て一致するかを検証し、またクエリーリスト内のクエリーの構成データに含まれる認定グループリストのシーケンスナンバーが自己の保有する認定グループリストのシーケンスナンバーとすべて一致するか否かを判定する。さらに、１つのクエリーを選択して、改竄検証処理を実行する。
【０２０６】
このように、ドライブは、
（ａ）クエリーリスト内のクエリーの構成データに含まれる自身が生成した乱数データが生成乱数と全て一致する
（ｂ）クエリーリスト内のクエリーの構成データに含まれる認定グループリストのシーケンスナンバーが自己の保有する認定グループリストのシーケンスナンバーとすべて一致する
（ｃ）１つのクエリーの改竄検証により改竄のないことを確認
以上の処理によって、アプリケーションに接続された全てのデバイス（他のドライブも含む）を認証することができる。
【０２０７】
一方、最初に乱数を生成したドライブ以外のデバイスは、ドライブからのレスポンスの検証を行なうのみでよい。すなわち、乱数を生成し、リストに基づく検証処理が実行され、すべての接続デバイスが認証されたことを条件としてレスポンスが送信されるので、レスポンスを受信した場合は、そのレスポンスに含まれるクエリーリストに含まれる全てのデバイスは信用できるデバイスであることが保証されることになるからである。
【０２０８】
このように、本実施例の構成によれば、アプリケーションに対して多数の接続デバイスドライブが接続された構成であっても、クエリーリストの生成、検証というプロセスを実行することにより、複数ドライブ−アプリケーション−複数接続デバイス構成における相互認証を効率的に実行することが可能となる。
【０２０９】
図１９を参照して、上述の例における乱数を生成しないドライブ、すなわちドライブＤ２の処理シーケンスについて説明する。なお、接続デバイスにおいてもほぼ同様の処理が実行される。
【０２１０】
ステップＳ８０１において、ドライブＤ２に対する情報記録媒体（ディスク）の挿入を検知し、ステップＳ８０２において、バス接続されたホスト側でのコンテンツ再生あるいは記録処理を実行するホストアプリケーション側からの相互認証処理要求を受信すると、ステップＳ８０３〜Ｓ８０５において、ドライブＤ２とアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認（リボーク状況確認）とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図１７におけるステップＳ７２０の認定グループ証明書の配布処理（詳細は図１１の処理）である。相互認証処理は、図１７におけるステップＳ７３１に対応する処理であり、先に説明した図１２に示すシーケンスに従った処理として実行される。
【０２１１】
アプリケーションとドライブＤ２間の相互認証が成立したこと（ステップＳ８０５：Ｙｅｓ）を条件として、ステップＳ８０６に進む。ステップＳ８０６以下の処理は、図１７におけるステップＳ７５０の処理、すなわち図１８に示す処理に相当する。
【０２１２】
ステップＳ８０６でアプリケーションからの乱数受信要求を受信すると、ステップＳ８０７で乱数［ＲＮＧ−Ｄ１］をドライブＤ１からアプリケーション経由で受信する。次に、ステップＳ８０８でクエリー送信要求があると、ステップＳ８０９で、乱数［ＲＮＧ−Ｄ２］を生成し、ステップＳ８１０で、クエリー：［ＲＮＧ−Ｄ１‖Ｃｅｒｔ−Ｄ２‖ＲＮＧ−Ｄ２‖ＳＮＣ−Ｄ２‖Ｓｉｇｎ−Ｄ２］を生成し、ステップＳ８１１において、アプリケーションに対してクエリーを送信する。
【０２１３】
アプリケーションは、複数のクエリーに基づいてクエリーリストを生成してドライフＤ１に送信する処理を実行する。
【０２１４】
ドライブＤ２は、次に、ステップＳ８１２において、レスポンスの受信要求があると、ステップＳ８１３において、ドライブからのレスポンスをアプリケーション経由で受信する。このレスポンスにはクエリーリストが含まれる。
【０２１５】
次に、ステップＳ８１４において、ドライブＤ１の認証処理に必要となる認証情報の受信要求があると、ステップＳ８１５において、ドライブＤ１の公開鍵証明書［ＣＥＲＴ−Ｄ１］と、ドライブＤ１対応の認定グループ証明書［ＡＧＣ−Ｄ１］とをアプリケーション側から受信する。
【０２１６】
ステップＳ８１６では、ドライブＤ１の公開鍵証明書［ＣＥＲＴ−Ｄ１］の検証処理を管理センタの公開鍵を用いて実行し、ステップＳ８１７では、レスポンスの署名検証処理を実行する。レスポンスの署名検証処理は、正当性の検証されたドライブＤ１の公開鍵証明書［ＣＥＲＴ−Ｄ１］から取り出したドライブの公開鍵［ＫＰ−Ｄ１］を適用して実行する。
【０２１７】
さらに、ステップＳ８１８において、ドライブから受信したレスポンスに含まれるクエリーリストに、ドライブＤ２自身が生成し送信したクエリーデータと一致するデータが含まれるか否かを検証する。
【０２１８】
ａ．ドライブＤ１の公開鍵証明書［ＣＥＲＴ−Ｄ１］が正当であること、
ｂ．レスポンスが改竄されていないこと、
ｃ．レスポンスに、ドライブＤ２自身が生成し送信したクエリーデータと一致するクエリーデータが含まれること、
上記ａ〜ｃの全てが確認されたことを条件として、ステップＳ８１９に進む。
いずれかが確認されない場合は、ステップＳ８２２に進みアブリケーションに対してエラー報告、すなわち検証結果がＮＧであることの出力を行なう。
【０２１９】
ステップＳ８１９で、ディスクが排出されたと判定された場合には、ステップＳ８０１に戻る。また、ステップＳ８２０で、アプリケーションから新たな相互認証要求を受領した場合には、ステップＳ８０４に戻る。ステップＳ８１９においてディスクが排出されたと判定されず、ステップＳ８２０において新たな相互認証要求がない場合は、ステップＳ８２１においてドライブとしての一般動作を実行する。ここでの一般動作は、例えばアプリケーションの要求するディスクからのデータ読み取り、出力処理や、ディスクに対するデータ書き込み処理などである。なお、これらのデータは、認証の成立したアプリケーション、ドライブ、接続デバイスを介して出力あるいは入力される。
【０２２０】
複数の接続デバイスにおいても上述した処理と同様の処理が実行されることになる。これらの処理は各接続デバイスにおいて並列に実行可能であり、多数のデバイスがアプリケーションに接続された環境においても短時間にすべてのデバイス、ドライブ、アプリケーション間の相互認証処理を完了することができる。
【０２２１】
［４．アプリケーション実行装置としてのホスト装置、ドライブ、および接続デバイスのハードウェア構成例］
次に、図２０、図２１、図２２を参照して、情報記録媒体からのデータ再生または情報記録媒体に対するデータ記録を実行する際にデータ処理、データ転送経路上に位置するドライブ、アプリケーション実行機器としてのホストを構成する情報処理装置、および接続デバイスのハードウェア構成例について説明する。
【０２２２】
まず、図２０を参照して、アプリケーション実行機器としてのホストを構成するホスト装置の構成について説明する。ホスト装置６００は、ＯＳやコンテンツ再生アプリケーションプログラム、上述した相互認証処理プログラムなどの各種プログラムに従ったデータ処理を実行するＣＰＵ６７０、プログラム、パラメータ等の記憶領域としてのＲＯＭ６６０、メモリ６８０、デジタル信号を入出力する入出力Ｉ／Ｆ６１０、アナログ信号を入出力し、Ａ／Ｄ，Ｄ／Ａコンバータ６４１を持つ入出力Ｉ／Ｆ６４０、ＭＰＥＧデータのエンコード、デコード処理を実行するＭＰＥＧコーデック６３０、ＴＳ（Transport Stream）・ＰＳ(Program Stream)処理を実行するＴＳ・ＰＳ処理手段６２０、相互認証、暗号化コンテンツの復号処理など各種の暗号処理を実行する暗号処理手段６５０、ハードディスクなどの記録媒体６９１、記録媒体６９１の駆動、データ記録再生信号の入出力を行なうドライブ６９０を有し、バス６０１に各ブロックが接続されている。
【０２２３】
ホスト装置６００は、例えばＡＴＡＰＩＢＵＳ等の接続バスによってドライブと接続され、また、内部バス、ＵＳＢ、ＩＥＥＥ１３９４バスなどの各種バスによって接続デバイスと接続される。データは、デジタル信号用入出力Ｉ／Ｆ６１０から入力され、必要に応じて暗号化処理手段６５０によって暗号化されて転送される。
【０２２４】
なお、アプリケーションプログラム、具体的にはデータ再生処理またはデータ記録処理の実行プログラムや、相互認証処理プログラムは例えばＲＯＭ６６０内に保管されており、プログラムの実行処理中は必要に応じて、パラメータ、データの保管、ワーク領域としてメモリ６８０を使用する。
【０２２５】
ＲＯＭ６６０または記録媒体６９１には、先に図５他を参照して説明した各種のデータ、すなわち公開鍵を格納した公開鍵証明書、秘密鍵、認定グループリスト、シーケンスナンバー証明書、さらに管理センタの公開鍵などが格納される。なお、複数のホストアプリケーションを保持している場合は、それぞれに対応する秘密鍵と公開鍵証明書が格納される。
【０２２６】
次に、図２１を参照して、情報記録媒体を装着して情報記録媒体に対するデータ書き込みまたは情報記録媒体からのデータ読み取りを実行するドライブ装置の構成について説明する。ドライブ装置７００は、データ記録／再生プログラム、相互認証処理プログラムなどの各種プログラムに従ったデータ処理を実行するＣＰＵ７０２、プログラム、パラメータ等の記憶領域としてのＲＯＭ７０５、メモリ７０６、デジタル信号を入出力する入出力Ｉ／Ｆ７０３、相互認証、出力データの暗号化処理など各種の暗号処理を実行する暗号処理手段７０４、ＤＶＤ，Ｂｌｕ−ｒａｙディスクなどの情報記録媒体７０８の駆動、データ記録再生信号の入出力を行なう記録媒体Ｉ／Ｆ７０７を有し、バス７０１に各ブロックが接続されている。
【０２２７】
ドライブ７００は、例えばＡＴＡＰＩＢＵＳ等の接続バスによってホスト装置と接続され、例えば情報記録媒体７０８に格納されたデータを必要に応じて暗号化し入出力Ｉ／Ｆ７０３から出力する。また、入出力Ｉ／Ｆ７０３から入力するデータの情報記録媒体に対する記録処理などを行なう。
【０２２８】
なお、ＲＯＭ７０５、またはメモリ７０６には、先に図５他を参照して説明した各種のデータ、すなわち公開鍵を格納した公開鍵証明書、秘密鍵、シーケンスナンバー証明書、さらに管理センタの公開鍵などが格納される。また、コンテンツの読み取り、取得、および相互認証処理を実行するプログラム等が格納されている。
【０２２９】
次に、図２２を参照して、接続デバイスの構成例について説明する。なお、前述したように、接続デバイスは、例えばＤＴＣＰ(Digital Transmission Content Protection)規格に従ったデジタルデータの入出力インタフェースであるＤＴＣＰＩ／Ｆ、グラフッイックスカード、サウンドカード、チューナカード、ＡＶキャプチャカードなどによって構成されるデバイスであり、各デバイスに応じた構成を持つ。図２２に示すのは接続デバイスの１つの例を示しているものである。
【０２３０】
一例としての接続デバイス８００は、図２２に示すようにデバイスに応じたデータ処理プログラム、相互認証処理プログラムなどの各種プログラムに従ったデータ処理を実行するＣＰＵ８０２、プログラム、パラメータ等の記憶領域としてのＲＯＭ８０５、メモリ８０６、デジタル信号を入出力する入出力Ｉ／Ｆ８０３、相互認証、出力データの暗号化処理など各種の暗号処理を実行する暗号処理手段８０４、アナログデジタル信号変換を実行するＡ／Ｄ，Ｄ／Ａコンバータ８０７、アナログ信号の入出力インタフェースとしての入出力Ｉ／Ｆ８０８を有し、バス８０１に各ブロックが接続されている。
【０２３１】
入出力Ｉ／Ｆ８０３を介してアプリケーション実行装置としてのホスト（ＰＣ等の情報処理装置）に接続され、データの入出力を行なう。
【０２３２】
ＲＯＭ８０５、またはメモリ８０６には、先に図５他を参照して説明した各種のデータ、すなわち公開鍵を格納した公開鍵証明書、秘密鍵、さらに管理センタの公開鍵などが格納される。また、各種のデータ処理、相互認証処理を実行するプログラム等が格納されている。
【０２３３】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０２３４】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０２３５】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０２３６】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０２３７】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０２３８】
以上、説明したように、本発明の構成によれば、ドライブ、アプリケーション、および接続デバイスの３つの要素を経由するデータ記録や読み取り処理において、ドライブ、アプリケーション、および接続デバイスの３つの要素の認証を実行する構成とした。ドライブと接続デバイス間における相互認証処理は、アプリケーションを実行するホストを経由して実行し、該認証処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を認証機器間において相互に提示し、双方の機器において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーとの一致を確認する処理を行なう構成としたので、ドライブ、アプリケーション、および接続デバイスの３つの要素を経由するデータ記録や読み取り処理を行なう場合であっても、ドライブと接続デバイス間の認証により、不正なコンテンツ利用を可能とする経路を排除することができ、十分なセキュリティを確保した状態でのデータ転送およびデータ処理が実現される。
【０２３９】
さらに、本発明の構成によれば、ドライブとアプリケーションと接続デバイスとの間でデータの転送およびデータ処理が実行される構成において、アプリケーションによるデータ処理の前に、ドライブとアプリケーションと接続デバイス間における相互認証を実行する。相互認証は、（１）シーケンスナンバー証明書共有処理、（２）認定グループ証明書（ＡＧＣ）配布処理、（３）ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証処理、（４）ドライブ−接続デバイス相互確認処理の各処理の実行により、ドライブ、アプリケーション、接続デバイスの全ての間の相互認証が実行され、３者相互の信頼性を確認する構成であるので、不正なアプリケーションが介在したり、各機器各のデータ転送路からのデータ入手を排除することが可能であり、セキュリティの高いデータ処理が実現される。
【０２４０】
さらに、本発明の構成によれば、ドライブ−接続デバイス相互確認処理において、ホストは、シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して認証処理を実行する１つの機器に送信し、クエリーリストの受信機器は、クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成としたので、複数の機器が接続された構成においても効率的な認証処理が実現される。
【０２４１】
さらに、本発明の構成によれば、クエリーを生成した機器は、クエリーリスト受信機器から署名を付加したレスポンスを受信し、レスポンスの検証を行なうのみで認証が終了する。すなわち、クエリーリストの受信機器は、リストに基づいてすべてのクエリー送信デバイスが認証されたことを条件としてレスポンスが送信されるので、レスポンスを受信した場合は、そのレスポンスに含まれるクエリーリストに含まれる全てのデバイスは信用できるデバイスであることが保証されることになるからである。このように本発明の構成によれば、多数の接続デバイスやドライブが設定された環境においても効率的で確実な認証処理を実行することが可能となる。
【図面の簡単な説明】
【０２４２】
【図１】ドライブ、アプリケーション、接続デバイスを介して実行される情報記録媒体（ディスク）を適用したデータ記録、再生処理について説明する図である。
【図２】ドライブ、アプリケーション、接続デバイスを介して実行される情報記録媒体（ディスク）を適用したデータ記録、再生処理について発生する問題点について説明する図である。
【図３】ドライブ、アプリケーション、接続デバイスの相互認証をすべて実行した場合の問題点について説明する図である。
【図４】本発明の適用可能なドライブ、アプリケーション、接続デバイスを有するシステム構成およびデータ処理について説明する図である。
【図５】本発明におけるドライブ、アプリケーション、接続デバイス各々の保有するデータについて説明する図である。
【図６】公開鍵証明書他の各種証明書の基本構成について説明する図である。
【図７】公開鍵証明書のデータ構成について説明する図である。
【図８】認定グループ証明書および認定グループリストのデータ構成について説明する図である。
【図９】シーケンスナンバー証明書のデータ構成について説明する図である。
【図１０】本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムにおける認証処理シーケンスについて説明する図である。
【図１１】シーケンスナンバー証明書の共有処理シーケンスについて説明する図である。
【図１２】直接接続された２つのデバイス間の相互認証処理シーケンスについて説明する図である。
【図１３】ドライブと接続デバイス間の相互認証処理シーケンスについて説明する図である。
【図１４】本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムの認証処理においてアプリケーション実行装置としてのホストの処理について説明するフローチャートである。
【図１５】本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムの認証処理におけるドライブの処理について説明するフローチャートである。
【図１６】本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムの認証処理における接続デバイスの処理について説明するフローチャートである。
【図１７】本発明に従った複数ドライブ、アプリケーション、複数接続デバイスを有するシステムにおける認証処理シーケンスについて説明する図である。
【図１８】複数ドライブと複数接続デバイスを持つシステムにおける相互認証処理シーケンスについて説明する図である。
【図１９】本発明に従った複数ドライブ、アプリケーション、複数接続デバイスを有するシステムの認証処理における１つのドライブの処理について説明するフローチャートである。
【図２０】本発明のアプリケーション実行装置としてのホスト装置の構成例を示す図である。
【図２１】本発明のドライブ装置の構成例を示す図である。
【図２２】本発明の接続デバイスの構成例を示す図である。
【符号の説明】
【０２４３】
１１  情報記録媒体
１２  ドライブ
１３  アプリケーション
１４  ＤＴＣＰＩ／Ｆ
１５  グラフッイックスカード
１６  サウンドカード
１７  チューナカード
１８  ＡＶキャプチャカード
２１  不正アプリケーション
３１  ハードディスク
３２  コーデック
３３  ネットワーク
５１，５３  情報記録媒体
５２，５４  ドライブ
５５  アプリケーション
１０１  情報記録媒体
１０２  ドライブ
１０３  アプリケーション
１０４  接続デバイス
６００  ホスト装置
６０１  バス
６１０  入出力Ｉ／Ｆ
６２０  ＴＳ・ＰＳ処理手段
６３０  ＭＰＥＧコーデック
６４０  入出力Ｉ／Ｆ
６４１  Ａ／Ｄ，Ｄ／Ａコンバータ
６５０  暗号処理手段
６６０  ＲＯＭ
６７０  ＣＰＵ
６８０  メモリ
６９０  ドライブ
６９１  記録媒体
７００  ドライブ装置
７０１  バス
７０２  ＣＰＵ
７０３  入出力Ｉ／Ｆ
７０４  暗号処理手段
７０５  ＲＯＭ
７０６  メモリ
７０７  記録媒体Ｉ／Ｆ
７０８  情報記録媒体
８００  接続デバイス
８０１  バス
８０２  ＣＰＵ
８０３  入出力Ｉ／Ｆ
８０４  暗号処理手段
８０５  ＲＯＭ
８０６  メモリ
８０７  Ａ／Ｄ，Ｄ／Ａコンバータ
８０８  入出力Ｉ／Ｆ
【図１】
2005244695.tif 000003
【図２】
2005244695.tif 000004
【図３】
2005244695.tif 000005
【図４】
2005244695.tif 000006
【図５】
2005244695.tif 000007
【図６】
2005244695.tif 000008
【図７】
2005244695.tif 000009
【図８】
2005244695.tif 000010
【図９】
2005244695.tif 000011
【図１０】
2005244695.tif 000012
【図１１】
2005244695.tif 000013
【図１２】
2005244695.tif 000014
【図１３】
2005244695.tif 000015
【図１４】
2005244695.tif 000016
【図１５】
2005244695.tif 000017
【図１６】
2005244695.tif 000018
【図１７】
2005244695.tif 000019
【図１８】
2005244695.tif 000020
【図１９】
2005244695.tif 000021
【図２０】
2005244695.tif 000022
【図２１】
2005244695.tif 000023
【図２２】
2005244695.tif 000024