JP4586380B2 - 情報処理装置、および認証処理方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、および認証処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4586380B2
JP4586380B2 JP2004052960A JP2004052960A JP4586380B2 JP 4586380 B2 JP4586380 B2 JP 4586380B2 JP 2004052960 A JP2004052960 A JP 2004052960A JP 2004052960 A JP2004052960 A JP 2004052960A JP 4586380 B2 JP4586380 B2 JP 4586380B2
Authority
JP
Japan
Prior art keywords
drive
certificate
application
data
authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004052960A
Other languages
English (en)
Other versions
JP2005244695A (ja
Inventor
聡 木谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004052960A priority Critical patent/JP4586380B2/ja
Publication of JP2005244695A publication Critical patent/JP2005244695A/ja
Application granted granted Critical
Publication of JP4586380B2 publication Critical patent/JP4586380B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、情報処理装置、および認証処理方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、厳正な認証処理の実行によりコンテンツの不正利用を防止することを可能とした情報処理装置、および認証処理方法、並びにコンピュータ・プログラムに関する。
昨今、音楽等のオーディオデータ、映画等の画像データ、ゲームプログラム、各種アプリケーションプログラム等、様々なソフトウエアデータ(以下、これらをコンテンツ(Content)と呼ぶ)が、インターネット等のネットワークを介して、あるいはCD(Compact Disc)、DVD(Digital Versatile Disk)、青色レーザーディスク(Blu−ray Disc)、MD(Mini Disk)等の情報記録媒体(メディア)を介して流通している。これらの流通コンテンツは、ユーザの所有するPC(Personal Computer)やプレーヤ、あるいはゲーム機器等、様々な情報処理装置において再生され利用される。
音楽データ、画像データ等、多くのコンテンツは、一般的にその作成者あるいは販売者に頒布権等が保有されている。従って、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、コンテンツの利用を許諾し、許可のない複製や利用が行われない構成とするのが一般的となっている。
特に、近年においては、情報をデジタル的に記録する記録装置や記憶媒体が普及しつつある。このようなデジタル記録装置および記憶媒体によれば、例えば画像や音声を劣化させることなく記録、再生を繰り返すことが可能であり、不正コピーコンテンツのインターネットを介した配信や、CD−R等の記録媒体に対する不正コピーという問題が頻発している。
記録媒体に格納されたコンテンツの保護を実現するための標準規格としてCPRM(Content Protection for Recordable Media)がある。CPRMは、コンテンツを暗号化して情報記録媒体に格納し、正当なコンテンツ利用権を持つユーザデバイスのみが暗号化コンテンツの復号に適用する鍵を取得可能としたシステムを提供している。
コンテンツを格納した情報記録媒体からのデータ読み取りあるいは記録を直接実行する装置は、情報記録媒体を装着し駆動するドライブ装置であり、ドライブから情報記録媒体からの読み取りデータを入力し再生、あるいは情報記録媒体に対する書き込みデータを生成してドライブに出力する処理を実行するのはドライブに接続された例えばPC等のアプリケーションである。
CPRMでは、このようなドライブとPCアプリケーションなどが協同して実行するデータ再生あるいは記録処理において、不正なコンテンツの搾取やコピーが実行されないように、例えばPCでの実行アプリケーションとドライブ間の相互認証処理などのシーケンスを規定している。
しかし、PCに対するコンテンツの入力、あるいはコンテンツの出力は、PCに接続されたデバイス、例えばチューナー、ビデオカード、サウンドカード、デジタルインタフェース、アナログインタフェース等、様々な接続デバイス(バックエンドデバイスとも呼ばれる)を介して実行される場合が多い。
このような場合、情報記録媒体からの出力コンテンツ、あるいは情報記録媒体に対する入力コンテンツの経路には、ドライブと、PCアプリケーションと、接続デバイスの3つの要素が存在することになる。
CPRMでは、ドライブと、再生または記録処理を実行するアプリケーション間の認証シーケンスを規定し、この2者間の相互認証を条件としたデータ処理を行なうシステムを提供しているが、アプリケーションとデータ入出力を実行する接続デバイス間の信頼性確保のための技術的な手段については規定していない。また、アプリケーションと接続デバイス間のデータ転送経路のセキュリティ確保のための技術的な手段についても規定していない。
従って、例えばアプリケーションと接続デバイス間におけるデータ転送経路におけるデータ搾取など、CPRMに規定された部分以外でのコンテンツの不正取得、不正利用が発生する可能性が存在するという問題がある。
この問題点について、図面を参照して説明する。図1は、ディスク11を駆動しディスク11に対するデータの書き込みまたは読み取りを実行するドライブ12と、PC等のホストにおいて実行されるアプリケーション13と、各種の接続デバイス14〜18を示している。図1(A)は、ディスク11からのデータ再生処理、(B)はデータ記録処理である。
接続デバイスは、例えばDTCP(Digital Transmission Content Protection)規格に従ったデジタルAVデータの入出力インタフェースであるDTCPI/F14、グラフィックスカード15、サウンドカード16、チューナカード17、AVキャプチャカード18などによって構成される。
図1(A)に示すディスク11からのデータ再生処理においては、ドライブ12から例えばATAPIバスなどの接続バスを介してアプリケーション13にディスクからの読み取りデータが出力される。アプリケーション13は例えばホストとしてのPCによって実行されるデータ再生アプリケーションプログラムであり、ドライブ12から入力するデータの復号処理などを含む再生制御処理を実行する。
アプリケーション13における処理結果データは、たとえばPCI(Peripheral Component Interconnect)やAGP(Accelerated Graphics Port)などのホストの内部バス、あるいはUSB、IEEE1394バスなどによって接続された各種の接続デバイス14〜16に出力されて、各デバイスでの処理がなされ、スピーカあるいはディスプレイに出力、あるいはネットワークを介して出力される。
ここで、ドライブ12とアプリケーション13の間では、CPRMに規定された相互認証が実行され、ドライブ12とアプリケーション13相互間における通信データは認定された相手であることを確認した後に転送される。従って、この間でデータが不正に搾取、利用される可能性は低いといえる。しかし、アプリケーション13と接続デバイス14〜16の間での認証処理等はCPRMに規定されておらず、アプリケーション13と接続デバイス14〜16の間におけるデータ転送はセキュアな状態に保持される保証がない。従って、アプリケーション13と接続デバイス14〜16の間のデータ転送またはデータ処理の間にデータが搾取され不正に利用される可能性が存在することになる。
図1(B)のディスクに対するコンテンツ記録の際も同様であり、例えば著作権管理コンテンツが接続デバイスであるチューナカード17などを介して入力され、アプリケーション13を介してドライブ12に入力し、ディスク11に書き込みを行なう処理において、アプリケーション13と接続デバイス14,17,18の間のデータ転送またはデータ処理の間にデータが搾取され不正に利用される可能性が存在する。
図2を参照して、接続デバイスを介するデータ入力時のコンテンツの不正利用例について説明する。
図2の例は、PC等のホストにおいて不正アプリケーションを実行して、接続デバイスを介して入力するデータを不正にハードディスク31に格納したり、コーデック32においてデータ復号を行ない再生利用したり、あるいはネットワーク33を介して外部に出力する不正利用例を示している。
本来の正当なコンテンツ入力処理が行なわれ、ホストとしてのPCにおいて正当なアプリケーションが実行される場合には、接続デバイス14〜18から入力する著作権管理コンテンツは、接続デバイスから正当なアプリケーションに渡され、さらにドライブを介してディスクに書き込みが実行される。
しかし、前述したように、CPRMでは、アプリケーション−ドライブ間については相互認証処理に基づくセキュアなデータ転送スキームを構築しているものの、接続デバイス側では、アプリケーションの先に正当なドライブが存在していることを確認する方法がない。従って、接続デバイスからアプリケーション側に出力されるデータをホスト(PC)内の不正アプリケーション21が受領し、不正な利用をする余地が存在することになる。
このような、不正なコンテンツ利用を防止するためには、ドライブと、アプリケーションと、接続デバイスの3つの要素、全要素間で相互認証を実行し、3要素すべての接続経路においてセキュアなデータ転送が保証された状態を設定し、その後、ディスクからのデータ再生や、ディスクに対するデータ書き込みを行なうことが必要となる。
しかし、図3に示すように、ホスト(PC)で実行する正当なアプリケーション55に対して接続される接続デバイスは複数存在する場合があり、また、ドライブも図に示すようにドライブA52,ドライブB54のように複数存在する場合がある。それぞれのドライブに別のディスク51,53が装着され、それぞれの処理、例えば一方のディスク51から読み取ったデータを他方のディスク53に書き込むなどの処理を行なう場合もある。
このようにアプリケーション55に対してデータの入出力を実行するドライブ52,54や接続デバイス14〜18が多数存在すると、図に示すアプリケーションと各ドライブ間の認証A,Bの他にアプリケーションと各接続デバイス間の認証a〜e、各ドライブと各接続デバイス間の認証f〜oをそれぞれ実行することが必要となり、データ処理の開始前に実行すべき認証処理の負荷が増大してしまう。
本発明は、上述の問題点に鑑みてなされたものであり、ドライブ、アプリケーション、および接続デバイスの3つの要素相互の認証処理の効率的な処理を可能とし、各要素間の信頼性を確認した後に、各要素間におけるデータ転送処理や各要素におけるデータ処理を実行する構成として、十分なセキュリティを確保した状態でのデータ転送およびデータ処理を可能とすることでコンテンツの不正利用の防止を実現した情報処理装置、および認証処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置であり、
前記ホスト、ドライブ、および接続デバイスの各々はデータ処理部を有し、
前記ドライブと前記接続デバイスのデータ処理部は、
前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する構成であり、該相互確認処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書の相互提示処理を実行し、前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を行い、これらのシーケンスナンバーの一致を認証条件とした確認処理を行なう構成であり、
前記ドライブと前記接続デバイス間における相互確認処理は、
前記ドライブと前記アプリケーション間の相互認証の成立と、前記アプリケーションと前記接続デバイス間の相互認証の成立を条件として実行する構成であり、
前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行する構成であることを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理は、前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送受信および検証処理を含む処理であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理は、前記認定グループ証明書に基づく確認相手機器の正当性確認処理を含む処理として実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記アプリケーションを実行するホストは、前記ドライブと前記接続デバイス間における相互確認処理において、前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する1つの機器に送信する処理を実行する構成であり、前記クエリーリストの受信機器は、前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記クエリーリストの受信機器は、クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、クエリーリストに含まれる少なくとも1つのクエリーの署名検証による改竄なしの確認、上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記クエリーリストの受信機器は、前記クエリーリストに対する署名データを付加したレスポンスをクエリー送信機器に送信し、前記レスポンスを受信した機器は、該レスポンスに対する署名検証により認証可否判定を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行し、該配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行する構成であることを特徴とする。
さらに、本発明の第2の側面は、
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理方法であり、
前記ドライブと前記アプリケーション間の相互認証を実行するステップと、
前記アプリケーションと前記接続デバイス間の相互認証を実行するステップと、
前記各認証の成立を条件として、前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行するステップであり、
前記相互確認処理ステップは、
管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした確認処理を実行するステップであることを特徴とする認証処理方法にある。
さらに、本発明の認証処理方法の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理ステップは、前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送信および検証処理を含む処理であることを特徴とする。
さらに、本発明の認証処理方法の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理ステップは、前記認定グループ証明書に基づく確認相手機器の正当性確認処理ステップを含むことを特徴とする。
さらに、本発明の認証処理方法の一実施態様において、前記ドライブと前記接続デバイス間における相互確認処理ステップは、前記アプリケーションを実行するホストにおいて、前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信するステップと、前記アプリケーションを実行するホストにおいて、前記複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する1つの機器に送信するステップと、前記クエリーリストの受信機器において、前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行するステップと、を含むことを特徴とする。
さらに、本発明の認証処理方法の一実施態様において、前記クエリーリストの受信機器は、クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、クエリーリストに含まれる少なくとも1つのクエリーの署名検証による改竄なしの確認、上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行することを特徴とする。
さらに、本発明の認証処理方法の一実施態様において、前記認証処理方法は、さらに、前記クエリーリストの受信機器において、前記クエリーリストに対して署名データを付加して生成したレスポンスをクエリー送信機器に送信するステップと、前記レスポンスを受信した機器において、前記レスポンスに対する署名検証により認証可否判定を実行するステップと、を有することを特徴とする。
さらに、本発明の認証処理方法の一実施態様において、前記認証処理方法は、さらに、前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行するステップを有し、前記シーケンスナンバー証明書の配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行することを特徴とする。
さらに、本発明の第3の側面は、
情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理を実行するコンピュータ・プログラムであり、
前記ドライブと前記アプリケーション間の相互認証を実行するステップと、
前記アプリケーションと前記接続デバイス間の相互認証を実行するステップと、
前記各認証の成立を条件として、前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行するステップであり、
前記相互確認処理ステップは、
管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした認証処理を実行するステップであることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記録媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、ドライブ、アプリケーション、および接続デバイスの3つの要素を経由するデータ記録や読み取り処理において、ドライブ、アプリケーション、および接続デバイスの3つの要素の認証を実行する構成とした。ドライブと接続デバイス間における相互認証処理は、アプリケーションを実行するホストを経由して実行し、該認証処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を認証機器間において相互に提示し、双方の機器において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーとの一致を確認する処理を行なう構成としたので、ドライブ、アプリケーション、および接続デバイスの3つの要素を経由するデータ記録や読み取り処理を行なう場合であっても、ドライブと接続デバイス間の認証により、不正なコンテンツ利用を可能とする経路を排除することができ、十分なセキュリティを確保した状態でのデータ転送およびデータ処理が実現される。
さらに、本発明の構成によれば、ドライブとアプリケーションと接続デバイスとの間でデータの転送およびデータ処理が実行される構成において、アプリケーションによるデータ処理の前に、ドライブとアプリケーションと接続デバイス間における相互認証を実行する。相互認証は、(1)シーケンスナンバー証明書共有処理、(2)認定グループ証明書(AGC)配布処理、(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証処理、(4)ドライブ−接続デバイス相互確認処理の各処理の実行により、ドライブ、アプリケーション、接続デバイスの全ての間の相互認証が実行され、3者相互の信頼性を確認する構成であるので、不正なアプリケーションが介在したり、各機器各のデータ転送路からのデータ入手を排除することが可能であり、セキュリティの高いデータ処理が実現される。
さらに、本発明の構成によれば、ドライブ−接続デバイス相互確認処理において、ホストは、シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して認証処理を実行する1つの機器に送信し、クエリーリストの受信機器は、クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成としたので、複数の機器が接続された構成においても効率的な認証処理が実現される。
さらに、本発明の構成によれば、クエリーを生成した機器は、クエリーリスト受信機器から署名を付加したレスポンスを受信し、レスポンスの検証を行なうのみで認証が終了する。すなわち、クエリーリストの受信機器は、リストに基づいてすべてのクエリー送信デバイスが認証されたことを条件としてレスポンスが送信されるので、レスポンスを受信した場合は、そのレスポンスに含まれるクエリーリストに含まれる全てのデバイスは信用できるデバイスであることが保証されることになるからである。このように本発明の構成によれば、多数の接続デバイスやドライブが設定された環境においても効率的で確実な認証処理を実行することが可能となる。
以下、図面を参照しながら本発明の情報処理装置、および認証処理方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の各項目について順次行なう。
1.ドライブ、アプリケーションおよび接続デバイスを有する情報処理装置構成および格納データの詳細
2.ドライブ、アプリケーションおよび接続デバイス間の基本認証処理
3.複数のドライブ装置または複数の接続デバイスを持つ構成における認証処理
4.アプリケーション実行装置としての情報処理装置、ドライブ、および接続デバイスのハードウェア構成例
[1.ドライブ、アプリケーションおよび接続デバイスを有する情報処理装置構成および格納データの詳細]
まず、図4を参照して、本発明の適用可能な情報処理装置構成について説明する。本発明は、情報記録媒体(ディスク)101からの出力コンテンツ、あるいは情報記録媒体(ディスク)101に対する入力コンテンツの経路となる要素、すなわち情報記録媒体101を駆動し、データ書き込みまたは読み取り処理を実行するドライブ102と、ドライブ102とのデータ入出力を実行するPCなどのホスト装置で実行するアプリケーション103と、アプリケーションとのデータ入出力を実行する接続デバイス104の3つの要素が存在する情報処理装置において実行される。なお、以下の実施例において、情報記録媒体の一例としてディスク型記録媒体を適用した例を説明するが、本発明の構成は、ディスク型以外の例えばフラッシュメモリなど、他の態様の記録媒体の適用も可能である。
接続デバイス104は、例えば、DTCP(Digital Transmission Content Protection)規格に従ったデジタルAVデータの入出力インタフェースであるDTCPI/F、グラフィックスカード、サウンドカード、チューナカード、AVキャプチャカード、その他の様々なデバイスであり、アプリケーション103との間でデータ入出力を実行する全てのデバイスが含まれる。
ドライブ102とアプリケーション103と接続デバイス104との間のデータ転送バスとしては、ATAPIバスや、たとえばPCI(Peripheral Component Interconnect)やAGP(Accelerated Graphics Port)などのアプリケーション103を実行するPC等のホスト内の内部バス、その他、例えばUSBバス、IEEE1394バスなど様々なデータ転送バスが適用可能である。
なお、図4には、ドライブ102、接続デバイス104をそれぞれ1つのボックスとして示してあるが、本発明は、アプリケーション103とのデータ入出力を実行するドライブおよび接続デバイスが、それぞれ複数存在する構成においても適用が可能である。特に多数のドライブおよび接続デバイスがアプリケーションに接続された構成に対して本発明を適用することで、より効率的な認証処理、データ処理が可能となる。これらの処理シーケンスの詳細については、後段で説明する。
本発明を適用することにより、ドライブ102、アプリケーション103、接続デバイス104を経由するデータ経路に存在する全要素の信頼性の確認を条件として情報記録媒体101から読み取られたデータの再生、出力処理、あるいは、接続デバイス104を介して外部から入力するデータの情報記録媒体(ディスク)101に対する書き込み処理を行なう構成であるので、これらのデータ処理をセキュアに実行することが可能となる。
図5以下を参照して情報記録媒体(ディスク)101、ドライブ102、アプリケーション103、および接続デバイス104が保持する情報について説明する。
ドライブ102、アプリケーション103、および接続デバイス104の各々には、公開鍵暗号方式に従った公開鍵を格納した公開鍵証明書(PKC:Public Key Certificate)と秘密鍵(KS)が格納される。図に示すように、ドライブ102はドライブ102の公開鍵証明書(PKC−D)、秘密鍵(KS−D)を保持し、アプリケーション103は、アプリケーション103の公開鍵証明書(PKC−Ap)、秘密鍵(KS−ApD)を保持し、接続デバイス104は、接続デバイス104の公開鍵証明書(PKC−B)、秘密鍵(KS−B)を保持している。
情報記録媒体101、ドライブ102、およびアプリケーション103は、公開鍵証明書(PKC)、秘密鍵(KS)の他に、シーケンスナンバー証明書(SNC:Sequence Number Certificate)を格納している。
さらに、情報記録媒体101と、アプリケーション103は、認定グループリスト(AGL::Authorized Groop List)を格納している。認定グループリスト(AGL::Authorized Groop List)は、複数の認定グループ証明書(AGC:Authorized Groop Certificate)を格納したリストである。
これらの各証明書、すなわち、
公開鍵証明書(PKC)、
認定グループ証明書(AGC)および認定グループリスト(AGL)、
シーケンスナンバー証明書(SNC)
について、図6以下を参照して説明する。図6(a)は、各証明書の共通構成を示し、図6(b)は、各証明書に設定されたタイプ情報と証明書との対応を説明する図である。
図6(a)に示すように、公開鍵証明書(PKC)、認定グループ証明書(AGC)、シーケンスナンバー証明書(SNC)は、いずれも、
(a)証明書タイプ(Certificate Type)
(b)証明書データ(Certificate Data)
(c)電子署名(Signature)
の各データを格納している。
(a)証明書タイプ(Certificate Type)は、図6(b)に示すように、
1:公開鍵証明書(PKC)、
2:認定グループ証明書(AGC)、
3:シーケンスナンバー証明書(SNC)
のように、各証明書毎に異なるタイプ番号が設定される。タイプ番号に基づいて、どの証明書であるかを判別可能となる。
(b)証明書データ(Certificate Data)には、公開鍵証明書(PKC)、認定グループ証明書(AGC)、シーケンスナンバー証明書(SNC)のそれぞれの証明書に応じたデータが格納される。これらの詳細については図7以下を参照して説明する。
(c)電子署名(Signature)は、各証明書の発行エンティテイとしての管理センタの電子署名、すなわち管理センタの秘密鍵を適用して生成された署名データであり、(a)証明書タイプ(Certificate Type)と、(b)証明書データ(Certificate Data)に対して、管理センタの秘密鍵を適用して生成される。
署名データに基づいて、証明書の改竄検証が可能となる。すなわち、公開されている管理センタの公開鍵を適用することで、証明書の改竄検証が可能である。
以下、各証明書に格納される証明書データの詳細について、図7〜図9を参照して説明する。まず、図7を参照して公開鍵証明書(PKC)のデータ構成について説明する。
図7(a)は、公開鍵証明書(PKC)の証明書データの例を示している。図7(b)は、楕円暗号を適用した公開鍵証明書(PKC)のデータ構成例を示している。
図7(a)に示すように、公開鍵証明書(PKC)の証明書データには、証明書ID、公開鍵、その他の情報が含まれる。例えばドライブ102は、ドライブ102に対応する公開鍵を格納した公開鍵証明書(PKC−D)を管理センタから受領し、ドライブがメモリに格納保持する。また公開鍵に対応する秘密鍵(KS−D)も提供される。アプリケーション103や接続デバイス104に対してもそれぞれ公開鍵証明書(PKC)と秘密鍵のペアが提供され、それぞれのメモリに保持する。
公開鍵証明書(PKC)は、公開の許容されたデータであり、例えば他の機器の要求に応じて出力される。他の機器の公開鍵証明書を受領した機器は、受領した公開鍵証明書に付加された管理センタの署名に基づく公開鍵証明書の改竄検証を実行し、受領した公開鍵証明書の正当性を確認した後、公開鍵証明書から公開鍵を取得する。なお、管理センタの署名に基づく公開鍵証明書の改竄検証は、管理センタの公開鍵を適用して実行される。管理センタの公開鍵も公開されたデータであり、例えばドライブ102、アプリケーション103、接続デバイス104の不揮発性メモリ等へ予め格納してあるものを利用する、または、ネットワークあるいは記録媒体を介して受領できる。
ドライブ102、アプリケーション103、接続デバイス104は、各機器またはアプリケーションに対応する公開鍵を格納した公開鍵証明書に併せて秘密鍵が提供される。すなわち、それぞれ公開鍵証明書(PKC)と秘密鍵のペアが提供され、それぞれのメモリに保持する。公開鍵を格納した公開鍵証明書は公開の許容されたデータであるが、秘密鍵は外部に漏洩することのないように各デバイスにおいてセキュアに保持される。
図7(b)は、楕円暗号を適用した公開鍵証明書(PKC)のデータ構成例を示している。図6(b)を参照して説明した証明書タイプ(Certificate Type=1)、図7(a)を参照して説明した証明書ID(Certificate ID)、公開鍵(Public Key)が格納され、これらの格納データに対応して管理センタの秘密鍵を適用して生成された電子署名(Signature)が設定される。
図8は、(a)認定グループ証明書(AGC)データ、(b)楕円暗号を適用した認定グループ証明書(AGC)データ例、(c)認定グループリスト(AGL)の各データ構成を示している。前述したように、(c)認定グループリスト(AGL)は、複数の認定グループ証明書(AGC)を格納したリストとして設定される。
まず、(a)認定グループ証明書(AGC)データについて説明する。(a)認定グループ証明書(AGC)データには、[認定グループ証明書(AGC)データ長]、[認定グループ証明書(AGC)シーケンスナンバー]、[第1〜最終証明書ID]、[認定公開鍵証明書情報]が含まれる。
認定グループ証明書(AGC)は、コンテンツの管理エンティテイである管理センタが認めた正当なコンテンツ利用機器またはアプリケーションに付与される証明書であり、各機器またはアプリケーションに対応する個別の証明書IDを複数格納するとともに管理センタの電子署名を付加し、改竄の困難な証明書として設定される。認定グループ証明書(AGC)は、例えば、ドライブ用の認定グループ証明書(AGC)、あるいはアプリケーション用の認定グループ証明書(AGC)、メーカーAの機器に対応する認定グループ証明書(AGC)など、様々なグループに対して設定される。
図8(a)に示す認定グループ証明書(AGC)データは、ある1つのグループ対応の証明書データであり、そのグループに属する証明書の発行先としての機器またはアプリケーションそれぞれの証明書IDが格納される。これが図8(a)の証明書データ中の[第1〜最終証明書ID]である。さらに、グループに属する機器またはアプリケーションに対応する[認定公開鍵証明書情報]が格納される。[認定公開鍵証明書情報]は、グループに属する機器またはアプリケーションに提供されている公開鍵証明書の有効性を確認可能な情報として設定される。
ある機器またはアプリケーションが、他の機器またはアプリケーションとの相互認証処理を実行する場合には、その相手方の公開鍵証明書を取得することが必要となるが、[認定公開鍵証明書情報]に基づいて、相手方の公開鍵証明書の有効性を確認することができる。
認定グループ証明書(AGC)は、グループ内の構成メンバーとしての機器あるいはアプリケーションに変更があった場合は、管理センタにおいて適宜更新され、新たな認定グループ証明書(AGC)が発行される。[認定グループ証明書(AGC)シーケンスナンバー]は、この更新毎に設定される異なるナンバーである。例えば更新処理毎に数値を増加させたシーケンスナンバーが設定される。
このシーケンスナンバーは、図8(c)の認定グループリストに設定された[AGLシーケンスナンバー]に対応する。認定グループリストには、複数の認定グループ証明書(AGC)が格納されており、認定グループリストに設定された[AGLシーケンスナンバー]に対応する[認定グループ証明書(AGC)シーケンスナンバー]が、リストに格納された全ての認定グループ証明書(AGC)に設定されている。
例えば、図5に示すアプリケーション103は、自己のメモリに保持している認定グループリスト(AGL−Ap)の[AGLシーケンスナンバー]と、情報記録媒体101に格納された認定グループリストの[AGLシーケンスナンバー]とを比較し、より新しいものをメモリに格納することにより、認定グループリスト(AGL−Ap)の更新を実行する。これらの具体的処理シーケンスについては後述する。
図8(b)は、楕円暗号を適用した認定グループ証明書(AGC)データ例を示している。図6(b)を参照して説明した証明書タイプ(Certificate Type=2)、図8(a)を参照して説明した[認定グループ証明書(AGC)データ長]、[認定グループ証明書(AGC)シーケンスナンバー]、[第1〜最終証明書ID]、[認定公開鍵証明書情報]が格納され、これらの格納データに対応して管理センタの秘密鍵を適用して生成された電子署名(Signature)が設定される。
図8(c)は、情報記録媒体101およびアプリケーション103を実行するホスト(PC)に格納される認定グループリスト(AGL:Authorized Groop List)である。認定グループリスト(AGL)は、上述したように認定グループ証明書(AGC)を格納したリストである。認定グループ証明書(AGC)は、前述したように様々なグループに対応して発行され、認定グループリスト(AGL)は、これらの様々な認定グループ証明書(AGC)のリストとして構成される。
認定グループリスト(AGL)は、グループ証明書(AGC)の新規発行、無効化など、様々な変更が生じた場合に管理センタにおいて随時更新される。[AGLシーケンスナンバー]は、この更新毎に設定される異なるナンバーである。例えば更新処理毎に数値を増加させたシーケンスナンバーが設定される。このシーケンスナンバーは、前述の認定グループ証明書(AGC)に格納される[認定グループ証明書(AGC)シーケンスナンバー]と対応する。
前述したように、アプリケーション103は、自己のメモリに格納された認定グループリスト(AGL)を、随時、更新する処理を行なう。例えば情報記録媒体101から取得した認定グループリスト(AGL)の[AGLシーケンスナンバー]が、自己の保持している認定グループリスト(AGL)より数値が大である場合は、自己の保持している認定グループリスト(AGL)より新しいと判定して、メモリに格納されたリストを破棄して、情報記録媒体101から取得した新たなリストを格納する。この処理シーケンスの詳細については後述する。
図8(c)に示す認定グループリストには、各グループ対応の認定グループ証明書(AGC)データ[AGC_1〜AGC_n]が格納されており、例えば、ドライブ102やアプリケーション103、接続デバイスなどの各カテゴリに対応する認定グループ証明書(AGC)が格納されている。具体的には、
ドライブ対応認定グループ証明書=[AGC−D]
アプリケーション対応認定グループ証明書=[AGC−AP]
接続デバイス対応認定グループ証明書=[AGC−B]
などである。
図9は、シーケンスナンバー証明書(SNC)を説明する図である。図9(a)はシーケンスナンバー証明書(SNC)の証明書データ構成を示し、図9(b)は、楕円暗号を適用したシーケンスナンバー証明書(SNC)のデータ構成例を示している。
図9(a)に示すように、シーケンスナンバー証明書(SNC)の証明書データには、[認定グループリスト(AGL)シーケンスナンバー]が格納される。シーケンスナンバー証明書(SNC)は、その時点で発行されている最新の認定グループリスト(AGL)に対応する[認定グループリスト(AGL)シーケンスナンバー]である。
ドライブ102やアプリケーション103は、自己のメモリに格納されたシーケンスナンバー証明書(SNC)の[認定グループリスト(AGL)シーケンスナンバー]と、情報記録媒体101やその他の機器から取得したシーケンスナンバー証明書(SNC)に格納された[認定グループリスト(AGL)シーケンスナンバー]とを比較し、自己のメモリに格納されたシーケンスナンバー証明書(SNC)の[認定グループリスト(AGL)シーケンスナンバー]が古いものであることが判明した場合には、より新しいシーケンスナンバー証明書(SNC)を取得し、メモリに格納する。
相互認証処理に際しては、より新しいシーケンスナンバー証明書(SNC)に対応する認定グループ証明書(AGC)に基づく認証処理を実行する。すなわち、取得可能な最新のシーケンスナンバー証明書(SNC)に格納された[認定グループリスト(AGL)シーケンスナンバー]に対応するシーケンスナンバーの設定された認定グループリスト(AGL)を取得して、そのシーケンスナンバーに対応する認定グループ証明書(AGC)に基づいて、機器またはアプリケーションの正当性の判定を実行する。この処理の詳細シーケンスについては後段で説明する。
図9(b)は、楕円暗号を適用したシーケンスナンバー証明書(SNC)のデータ構成例を示している。図6(b)を参照して説明した[認定グループリスト(AGL)シーケンスナンバー]が格納され、これらの格納データに対応して管理センタの秘密鍵を適用して生成された電子署名(Signature)が設定される。
[2.ドライブ、アプリケーションおよび接続デバイス間の基本認証処理]
次に、図10以下を参照して、ドライブ102、アプリケーション103、接続デバイス(バックエンドデバイス)104において実行する認証処理シーケンスについて説明する。
まず、図10以下を参照して、ドライブ102、アプリケーション103、接続デバイス104がそれぞれ1つずつ存在する場合の基本シーケンスについて説明する。
図10に示すように、ドライブ、アプリケーション、接続デバイス間で実行する認証処理シーケンスは、大きく分けて以下の4ステップにより構成される。
(1)シーケンスナンバー証明書共有ステップ(ステップS100)
(2)認定グループ証明書(AGC)配布ステップ(ステップS120)
(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ(ステップS130)
(4)ドライブ−接続デバイス相互確認ステップ(ステップS150)
(1)シーケンスナンバー証明書共有ステップ(ステップS100)は、例えばディスクに格納された最新のシーケンスナンバー証明書(SNC)をドライブ、アプリケーション、接続デバイス各々がメモリに格納し、全ての機器において共通のシーケンスナンバー証明書を共有する処理である。
(2)認定グループ証明書(AGC)配布ステップ(ステップS120)は、アプリケーションが、全ての機器において共有するシーケンスナンバー証明書に対応するシーケンスナンバーを持つ認定グループ証明書(AGC)を格納した認定グループリストから、アプリケーションの属するグループ対応の認定グループ証明書(AGC−Ap)を取り出してドライブと接続デバイスに送付する処理である。
(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ(ステップS130)は、ドライブとアプリケーション間での相互認証と、アプリケーションと接続デバイス間の相互認証をそれぞれ実行するステップである。
(4)ドライブ−接続デバイス相互確認ステップ(ステップS150)は、アプリケーションを介してドライブと接続デバイス間において実行する相互認証ステップである。
なお、図10において、太線枠で示しているデータ、すなわち、ドライブのシーケンスナンバー証明書(SNC−D)と、アプリケーションのシーケンスナンバー証明書(SNC−Ap)と認定グループリスト(AGL−Ap)は、不揮発性メモリの格納データであることを示している。その他のデータは、一時的に記憶されればよいデータであり、揮発性、不揮発性いずれのメモリに格納してもよい。
以下、上述の(1)〜(4)に対応する各処理の詳細シーケンスについて説明する。
まず、
(1)シーケンスナンバー証明書共有ステップ(ステップS100)
(2)認定グループ証明書(AGC)配布ステップ(ステップS120)
の処理シーケンスの詳細について、図11を参照して説明する。
図11に示す各処理ステップについて説明する。まず、ステップS101において、ドライブがディスクの装着を検出し、ステップS102において、ディスクに記録されたシーケンスナンバー証明書(SNC−DISC)を読み取り、取得する。
ドライブは、ステップS103において、ドライブ内のメモリに格納されたシーケンスナンバー証明書(SNC−D)のシーケンスナンバーと、ディスクから取得したシーケンスナンバー証明書(SNC−DISC)のシーケンスナンバーとを比較し、ディスクから取得したシーケンスナンバー証明書(SNC−DISC)のシーケンスナンバーがドライブ内のメモリに格納されたシーケンスナンバー証明書(SNC−D)のシーケンスナンバーより大、すなわち、ディスクから取得したシーケンスナンバー証明書(SNC−DISC)がより新しいものである場合には、メモリに格納されたシーケンスナンバー証明書(SNC−D)をディスクから取得したシーケンスナンバー証明書(SNC−DISC)に置き換えるデータ更新処理を実行し、これを新たなドライブ対応シーケンスナンバー証明書(SNC−D)として設定する。
ステップS104において、アプリケーションがドライブからの通知によりディスクが装着されたことを検出すると、アプリケーションは、ステップS105において、ドライブに対して、ドライブ対応シーケンスナンバー証明書(SNC−D)の取得要求を出力する。
ステップS106において、ドライブは、更新されたシーケンスナンバー証明書(SNC−D)をアプリケーションに送信する。ステップS107において、アプリケーションは、アプリケーションを実行するホスト機器(PCなど)のメモリに格納されたアプリケーション対応のシーケンスナンバー証明書(SNC−Ap)のシーケンスナンバーと、ドライプから取得したシーケンスナンバー証明書(SNC−D)のシーケンスナンバーとを比較し、ドライブから取得したシーケンスナンバー証明書(SNC−D)のシーケンスナンバーがアプリケーション実行機器(ホスト)のメモリに格納されたシーケンスナンバー証明書(SNC−Ap)のシーケンスナンバーより大、すなわち、ドライブから取得したシーケンスナンバー証明書(SNC−D)がより新しいものである場合には、メモリに格納されたシーケンスナンバー証明書(SNC−Ap)をドライブから取得したシーケンスナンバー証明書(SNC−D)に置き換えるデータ更新処理を実行し、これを新たなアプリケーション対応シーケンスナンバー証明書(SNC−Ap)として設定する。
さらに、アプリケーションは、ステップS108において、ステップS107で更新したアプリケーション対応シーケンスナンバー証明書(SNC−Ap)に記録されたシーケンスナンバーと、アプリケーションを実行するホスト機器のメモリに格納されたアプリケーション対応の認定グループリスト(AGL−Ap)に設定されたシーケンスナンバーとを比較し、認定グループリスト(AGL−Ap)に設定されたシーケンスナンバーが、更新したアプリケーション対応シーケンスナンバー証明書(SNC−Ap)に記録されたシーケンスナンバーより古いものである場合には、ステップS109で、ドライブに対して新しい認定グループリスト(AGL)、すなわち、更新したアプリケーション対応シーケンスナンバー証明書(SNC−Ap)に記録されたシーケンスナンバーに対応するシーケンスナンバーを持つ認定グループリスト(AGL)を要求する。
ドライブは、アプリケーションからの要求に応じて、ステップS110で、ディスクから認定グループリスト(AGL)を読み取り、ステップS111で、アプリケーションに送信する。
アプリケーションは、ステップS112において、ディスクからドライブ経由で取得した認定グループリスト(AGL)をホストのメモリに格納し認定グループリスト(AGL)の更新を実行するとともに、認定グループリスト(AGL)からアプリケーションを含むグループに対応する認定グループ証明書(AGC−Ap)を選択して、これをドライブに送信する。
さらに、アプリケーションは、ステップS113において、接続デバイスに、先にステップS107で更新したアプリケーション対応シーケンスナンバー証明書(SNC−Ap)を送信し、さらに、ステップS114において、接続デバイスに、先にステップS112で更新したアプリケーション認定グループリスト(AGL−Ap)からアプリケーションを含むグループに対応する認定グループ証明書(AGC−Ap)を選択して、これをドライブに送信する。
この処理によって、図10に示すステップS100とS120の処理、すなわち
(1)シーケンスナンバー証明書共有ステップ(ステップS100)
(2)認定グループ証明書(AGC)配布ステップ(ステップS120)
の処理が終了する。
この処理の終了により、ドライブ、アプリケーション、接続デバイスは全て共通のシーケンスナンバー証明書を所有し、ドライブ、接続デバイスの両者は、アプリケーションを含むグループに対応する認定グループ証明書(AGC−Ap)を所有し、アプリケーションは、認定グループリスト(AGL−Ap)を所有することになる。なお、アプリケーションの所有する認定グループリスト(AGL−Ap)には、アプリケーションを含むグループに対応する認定グループ証明書(AGC−Ap)のみならず、ドライブを含むグループに対応する認定グループ証明書(AGC−D)および接続デバイスを含むグループに対応する認定グループ証明書(AGC−B)が含まれ、これらを所有することになる。
次に、ステップS130において、
(3)ドライブ−アプリケーション間相互認証(ステップS131)、およびアプリケーション−接続デバイス間相互認証(ステップS132)が実行される。
この処理シーケンスについて、図12を参照して説明する。図12は、ドライブ−アプリケーション間相互認証(ステップS131)のシーケンスを説明する図でしてあるが、アプリケーション−接続デバイス間相互認証(ステップS132)も全く同様の処理シーケンスによって実行される。
図12の認証処理の各ステップについて説明する。ステップS135において、ホストアプリケーションは、ドライブに対して乱数生成処理によって生成したチャレンジデータ[C_apl]と、公開鍵証明書[Cert_apl]を送信する。
このデータを受け取ったドライブ側は、ステップS136において、公開鍵証明書[Cert_apl]の署名検証処理により、公開鍵証明書[Cert_apl]の正当性を検証する。署名検証処理は、ドライブの保持する管理センタの公開鍵を適用して実行される。
公開鍵証明書[Cert_apl]の正当性が検証されると、公開鍵証明書[Cert_apl]からアプリケーションIDまたは公開鍵証明書IDを取得して、アプリケーションを含むグループに対応する認定グループ証明書(AGC−Ap)に登録されたIDであるか否かを判定する。登録されたIDであれば、アプリケーションは正当なアプリケーションであると判定する。
公開鍵証明書[Cert_Apl]の正当性が確認されなかったり、あるいは、アプリケーションIDが認定グループ証明書(AGC−Ap)に登録されておらず、アプリケーションが不正であることが判明した場合にはエラーメッセージの通知などを実行し、処理を終了する。以後のデータ処理は中止される。
公開鍵証明書[Cert_Apl]の正当性が確認され、ホストアプリケーションが正当なアプリケーションであることが確認されると、ステップS137において、ドライブは、ホストアプリケーションに対して乱数生成処理によって生成したチャレンジデータ[C_drive]と、ドライブ側の公開鍵証明書[Cert_drive]を送信する。
ホストアプリケーション側では、ドライブ側の公開鍵証明書[Cert_drive]の署名検証処理により、公開鍵証明書[Cert_drive]の正当性を検証する。署名検証処理は、ドライブの保持する管理センタの公開鍵を適用して実行される。
公開鍵証明書[Cert_drive]の正当性が検証されると、公開鍵証明書[Cert_drive]からドライブIDまたは公開鍵証明書IDを取得して、ドライブを含むグループに対応する認定グループ証明書(AGC−D)に登録されたIDであるか否かを判定する。登録されたIDであれば、ドライブは正当なドライブであると判定する。
公開鍵証明書[Cert_drive]の正当性が確認されなかったり、あるいは、ドライブIDが認定グループ証明書(AGC−D)に登録されておらず、ドライブが不正であることが判明した場合にはエラーメッセージの通知などを実行し、処理を終了する。以後のデータ処理は中止される。
ドライブの正当性が確認された場合には、ホストアプリケーションは、ドライブから受信したチャレンジデータ[C_drive]に基づく演算を実行しパラメータ[A_Apl]を算出し、新たに生成した乱数[R_Apl]とともに、ドライブに送信(ステップS139)する。
一方、ドライブは、ホストアプリケーションから受信したチャレンジデータ[C_apl]に基づく演算を実行しパラメータ[A_drive]を算出し、新たに生成した乱数[R_drive]とともに、ホストアプリケーションに送信(ステップS140)する。
この処理により、ドライブ、ホストアプリケーションの双方は、乱数[R_apl]、[R_drive]、パラメータ[A_apl]、[A_drive]を共有することになり、ドライブと、ホストアプリケーションの双方は、これらの共有データに基づいて共通のセッションキーKsを生成(ステップS141)する。
以上で、ドライブとアプリケーション間の相互認証が終了し、セッションキーの共有が終了する。
なお、この処理シーケンスと同様のシーケンスがアプリケーションと接続デバイス間で実行される。アプリケーションと接続デバイス間での認証処理においては、アプリケーションは、接続デバイスのグループに対応して設定された認定グループ証明書(AGC−D)を参照して接続デバイスの正当性を確認し、接続デバイスは、アプリケーション対応の認定グループ証明書(AGC−Ap)を参照してアプリケーションの正当性の確認を行なう。
相互に正当性が確認された場合には、相互認証が成立し、セッション鍵の共有処理がなされる。いずれか一方でも正当性の確認がなされなかった場合には、相互認証は不成立となり、セッション鍵の共有はなされない。
上述した処理は、図10におけるステップS131とステップS132の処理に相当する。
次に、(4)ドライブ−接続デバイス相互確認ステップ(ステップS150)が実行される。これは、アプリケーションを介してドライブと接続デバイス間において実行するシーケンスナンバー証明書の相互確認ステップである。
図10のステップS150におけるドライブ−接続デバイス相互確認ステップに対応する図が図13に示す図である。
図10および図13を参照して、(4)ドライブ−接続デバイス相互確認ステップの詳細について説明する。
まず、ステップS151において、ドライブは、乱数[RNG−D]を生成し、接続デバイスに送信する。なお、ドライブと接続デバイス間の通信は、アプリケーションを介して実行され、ドライブ−アプリケーション間のデータ転送、アプリケーション−接続デバイス間のデータ転送として送信される。
接続デバイスは、ドライブからアプリケーションを介して乱数[RNG−D]を受領すると、乱数[RNG−D]と、接続デバイスにおいて生成した乱数[RNG−B]と、さらに、接続デバイスのメモリに格納してある公開鍵証明書[Cert−B]と、シーケンスナンバー証明書[SNC−B]との連結データ[RNG−D‖Cert−B‖RNG−B‖SNC−B]を生成し、この連結データに対して接続デバイスの秘密鍵[KS−B]を適用して電子署名データを生成し、連結データに対して署名データ[Sign−B]を付加してステップS153においてこのデータをアプリケーション経由でドライブに対するクエリー[Query]として送信する。なお、上記の[‖]および図10に示す[‖]はデータの連結処理を示している。
ドライブは、接続デバイスからアプリケーションを経由して、クエリーデータ
[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]を受領すると、ステップS154において、接続デバイスからの受信データ[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]に含まれる接続デバイス対応のシーケンスナンバー証明書[SNC−B]に設定されたシーケンスナンバーが、自己の保有するドライブ対応のシーケンスナンバー証明書[SNC−D]に設定されたシーケンスナンバーと一致するか否かを検証する。
シーケンスナンバーの一致が確認されるとステップS155に進む。シーケンスナンバーの一致が確認されなかった場合は、以降の処理は中止される。
シーケンスナンバーの一致が確認され、ステップS155に進むと、接続デバイスからの受信データ[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]に含まれる乱数[RNG−D]が先に自身が生成した乱数[RNG−D]と一致するか否かの検証を実行する。
乱数の一致が確認されるとステップS156に進む。乱数の一致が確認されなかった場合は、以降の処理は中止される。
乱数の一致が確認され、ステップS156に進むと、接続デバイスの公開鍵証明書[Cert−B]から接続デバイスの公開鍵を取得し、取得した接続デバイスの公開鍵を適用して、データ[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]の署名検証によるデータ改竄の有無の検証を実行する。データ改竄のないことが確認されなかった場合は、以降の処理は中止される。
ステップS154からステップS156までの検証処理の手順は入れ替わっても構わず、これらの検証処理の過程において、シーケンスナンバー証明書の一致が確認されなかった場合、または乱数の一致が確認されなかった場合、またはデータ改竄のないことが確認されなかった場合は、図13に示すようにNGを示すメッセージがアプリケーションに通知され、また、シーケンスナンバー証明書の一致が確認され、かつ乱数の一致が確認され、かつデータ改竄のないことが確認された場合は、図13に示すようにOKを示すメッセージがアプリケーションに通知される。アプリケーションは、例えばディスプレイにドライブにおける接続デバイスの検証の成否を出力するなどの処理を実行してもよい。
これらの検証処理において、全ての検証に成功すると、ドライブは、ステップS157において、接続デバイスから受領したクエリーに対して、自己の保有するドライブ対応のシーケンスナンバー証明書[SNC−D]を連結し、さらに、この連結データに対して接続デバイスの秘密鍵[KS−D]を適用して電子署名データを生成し、連結データに対して署名データ[Sign−D]を付加してステップS158においてこのデータ、
[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B‖SNC−D‖Sign−D]
をアプリケーション経由で接続デバイスに対するレスポンス[Response]として送信する。
接続デバイスは、ステップS159、ステップS160において、アプリケーションからドライブの公開鍵証明書[Cert−D]およびドライブ対応の認定グループ証明書[AGC−D]を受領する。なお、これらのデータ受領処理は、ステップS130の2者間の相互認証以前、途中、以後の、どのタイミングで実行してもよい。
接続デバイスは、ステップS161において、アプリケーションから受領したドライブ対応の認定グループ証明書[AGC−D]の署名検証処理と、アプリケーションから受領したドライブの公開鍵証明書[Cert−D]の署名検証処理を実行し、各証明書の正当性、すなわち改竄の有無を検証する。署名検証処理は管理センタの公開鍵を適用して実行される。
これらの証明書の正当性が確認され、認定グループ証明書[AGC−D]への公開鍵証明書[Cert−D]へ記録された証明書IDの登録確認を通じてドライブの認証が完了するとステップS162に進む。データ改竄あり、もしくはドライブはリボークされていると判定した場合は、以降の処理は中止する。
接続デバイスは、ステップS162において、ドライブから受領したレスポンス[Response]、すなわち、
[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B‖SNC−D‖Sign−D]に、先に接続デバイスが送信したクエリーデータ
[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]を含むか否かの判定を行なう。
送信クエリーと同一のクエリーデータが含まれない場合は、処理を中止する。送信クエリーと同一のクエリーデータが含まれる場合は次の処理に進む。
ステップS163では、正当性の確認されたドライブの公開鍵証明書[Cert−D]から取り出したドライブの公開鍵[KP−D]を適用して、ドライブから受領したレスポンス[Response]、すなわち、
[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B‖SNC−D‖Sign−D]
についての署名検証処理を実行する。
この署名検証処理により、ドライブから受領したレスポンス[Response]が正当であると判定されると、ドライブと接続デバイスの認証が成立したと判定される。署名検証処理により、ドライブから受領したレスポンス[Response]が正当でないと判定された場合には認証不成立となり、以降のデータ処理は中止される。
ステップS162とステップS163の検証処理において、クエリーとレスポンス内のデータの一致が確認されなかった場合、レスポンスデータ改竄のないことが確認されなかった場合は、図13に示すようにNGを示すメッセージがアプリケーションに通知され、また、クエリーとレスポンス内のデータの一致が確認され、レスポンスデータ改竄のないことが確認された場合は、図13に示すようにOKを示すメッセージがアプリケーションに通知される。アプリケーションは、例えばディスプレイに接続デバイスにおけるドライブの検証の成否を出力するなどの処理を実行してもよい。
以上、説明したように、本発明の認証処理では、
(1)シーケンスナンバー証明書共有ステップ(ステップS100)
(2)認定グループ証明書(AGC)配布ステップ(ステップS120)
(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ(ステップS130)
(4)ドライブ−接続デバイス相互確認ステップ(ステップS150)
の各ステップを実行することで、ドライブ、アプリケーション、接続デバイスの全ての間の相互認証が実行され、3者相互の信頼性が確認された後、データ処理を実行する構成としたので、不正なアプリケーションの介在や、各機器各のデータ転送路からのデータ入手は不可能であり、セキュリティの高いデータ処理が実現される。
次に、図14〜図16を参照して、上述した3者間の認証処理におけるアプリケーション、ドライブ、および接続デバイスそれぞれの処理シーケンスについて説明する。
まず、図14のフローを参照してアプリケーションを実行するホストの処理について説明する。まず、ステップS501において、アプリケーションの起動が確認され、ステップS502において、ドライブからドライブに対する情報記録媒体(ディスク)挿入情報を受信すると、ステップS503、S504において、ドライブとアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認(リボーク状況確認)とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図10におけるステップS120の認定グループ証明書の配布処理(詳細は図11の処理)である。相互認証処理は、図10におけるステップS131の処理であり、先に説明した図12に示すシーケンスに従った処理として実行される。
アプリケーションとドライブ間の相互認証が成立したこと(ステップS505:Yes)を条件として、ステップS506に進む。ステップS506〜S508は、アプリケーションと接続デバイス間の相互認証処理であり、認定グループ証明書に基づく正当性確認(リボーク状況確認)とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図10におけるステップS120の認定グループ証明書の配布処理(詳細は図11の処理)である。相互認証処理は、図10におけるステップS132の処理であり、先に説明した図12に示すシーケンスに従った処理として実行される。
ステップS509以下の処理は、図10におけるステップS150の処理に対応する。ステップS509において、アプリケーションはドライブに対して乱数の転送を要求し、乱数を受領(S510:Yes)すると、ステップS511において接続デバイス(バックエンド)に対して乱数を転送する。
次に、ステップS512において、アプリケーションは接続デバイス(バックエンド)に対してクエリー送信を要求し、接続デバイスからのクエリー、すなわち前述したクエリーデータ:[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]を受領する(S510:Yes)と、これをステップS514においてドライブに転送する。
ステップS515では、アプリケーションはドライブに対してレスポンス送信を要求する。ステップS516において、ドライブ側からクエリーに対する検証によりNG(エラー)であるとの報告を受領した場合(S516:Yes)は、ステップS524においてエラーと判定し、その後の処理を中止する。
ドライブ側からクエリーに対する検証によりNG(エラー)であるとの報告を受領しなかった場合、あるいはOKとの報告を受領し(S516:No)、ドライブからのレスポンス、すなわち前述したレスポンスデータ:[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B‖SNC−D‖Sign−D]を受領する(S517:Yes)と、これをステップS518において接続デバイス(バックエンド)に転送する。
さらに、ステップS519において、アプリケーションは接続デバイスにおけるドライブ認証に必要なデータであるドライブの公開鍵証明書[Cert−D]と、ドライブ対応の認定グループ証明書[AGC−D]を接続デバイスに対して送信する。
ステップS520において、接続デバイス側からレスポンスに対する検証によりNG(エラー)であるとの報告を受領した場合(S520:Yes)は、ステップS524においてエラーと判定し、その後の処理を中止する。
接続デバイス側からレスポンスに対する検証によりNG(エラー)であるとの報告を受領しなかった場合、あるいはOKとの報告を受領し(S520:No)た場合は、ステップS521に進む。ステップS521ではディスクの排出を検出し、ディスクが排出された場合はステップS502に戻る。ディスクの排出が検出されない場合は、ステップS522に進み、接続デバイスの追加があったか否かを判定し、追加ありと判定した場合は、ステップS506以下の処理を追加されたデバイスに対して実行する。
接続デバイスの追加がない場合は、ステップS523に進み、アプリケーションを実行する。具体的にはドライブに挿入されたディスクからの読み取りデータの再生処理やディスクに対するデータ書き込み処理であり、ドライブ、アプリケーション、接続デバイスの3者を経由したデータ転送が実行される処理である。
次に、図15を参照して、ドライブの処理シーケンスについて説明する。ステップS531において、ドライブに対する情報記録媒体(ディスク)の挿入を検知し、ステップS532において、バス接続されたホスト側でのコンテンツ再生あるいは記録処理を実行するホストアプリケーション側からの相互認証処理要求を受信すると、ステップS533〜S535において、ドライブとアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認(リボーク状況確認)とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図10におけるステップS120の認定グループ証明書の配布処理(詳細は図11の処理)である。相互認証処理は、図10におけるステップS131の処理であり、先に説明した図12に示すシーケンスに従った処理として実行される。
アプリケーションとドライブ間の相互認証が成立したこと(ステップS535:Yes)を条件として、ステップS536に進む。ステップS536以下の処理は、図10におけるステップS150の処理、すなわち図13に示す処理に相当する。
ステップS536でアプリケーションからの乱数転送要求を受信すると、ステップS537で乱数[RNG−D]を生成し出力する。次に、ステップS538でクエリー受信要求があると、ステップS539で、アプリケーション経由で接続デバイスからのクエリー:[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]を受信する。
次に、ステップS540において、クエリーに含まれる接続デバイスの公開鍵証明書から接続デバイスの公開鍵を取得して、クエリーの署名検証を実行し、ステップS541において、クエリーに含まれる乱数[RNG−D]が自身で生成した乱数と一致するかの検証を行い、さらに、ステップS542において、クエリーに含まれる接続デバイス対応のシーケンスナンバー証明書[SNC−B]のシーケンスナンバーと、ドライブ自身のメモリに格納したドライブ対応のシーケンスナンバー証明書[SNC−D]のシーケンスナンバーとが一致するか否かの検証を実行する。
a.クエリーの署名検証によりクエリーが改竄されていないこと、
b.クエリーに含まれる乱数[RNG−D]が自身で生成した乱数と一致すること、
c.接続デバイス対応のシーケンスナンバー証明書[SNC−B]のシーケンスナンバーと、ドライブ自身のメモリに格納したドライブ対応のシーケンスナンバー証明書[SNC−D]のシーケンスナンバーとが一致すること、
上記a〜cの全てが確認されたことを条件として、ステップS544に進む。
いずれかが確認されない場合は、ステップS551に進みアブリケーションに対してエラー報告、すなわち検証結果がNGであることの出力を行なう。
ステップS544では、クエリーに対してドライブ対応のシーケンスナンバー証明書[SNC−D]を連結し、ステップS545において、ドライブの秘密鍵で署名を付加したレスポンスを生成し、アプリケーションからのレスポンス送信要求(ステップS546:Yes)に応じて、ステップS547においてレスポンスを出力する。レスポンスは、前述したように、
[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B‖SNC−D‖Sign−D]として構成されるデータである。
ステップS548においてディスク排出が検出された場合は、ステップS531に戻り、ステップS549においてアプリケーション側から新たな相互認証要求を受領した場合には、ステップS534に戻る。
ステップS548においてディスク排出が検出されず、ステップS549において相互認証要求がない場合は、ステップS550においてドライブとしての一般動作を実行する。ここでの一般動作は、例えばアプリケーションの要求するディスクからのデータ読み取りおよび出力処理や、アプリケーション側から入力するデータのディスクに対する書き込み処理などである。なお、これらのデータは、認証の成立した接続デバイスとアプリケーションを介して出力あるいは入力される。
次に、図16を参照して接続デバイス(バックエンド)の処理について説明する。ステップS571において、ホスト側でのコンテンツ再生あるいは記録処理を実行するホストアプリケーション側からの相互認証処理要求を受信すると、ステップS572〜S574において、接続デバイスとアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認(リボーク状況確認)とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図10におけるステップS120の認定グループ証明書の配布処理(詳細は図11の処理)である。相互認証処理は、図10におけるステップS132の処理であり、先に説明した図12に示すシーケンスに従った処理として実行される。
アプリケーションと接続デバイス間の相互認証が成立したこと(ステップS574:Yes)を条件として、ステップS575に進む。ステップS575以下の処理は、図10におけるステップS150の処理、すなわち図13に示す処理に相当する。
ステップS575でアプリケーションからの乱数受信要求を受信すると、ステップS576で乱数[RNG−D]をドライブからアプリケーション経由で受信する。次に、ステップS577でクエリー送信要求があると、ステップS578で、乱数[RNG−B]を生成し、ステップS579で、クエリー:[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]を生成し、ステップS580において、アプリケーション経由でドライブに対してクエリー:[RNG−D‖Cert−B‖RNG−B‖SNC−B‖Sign−B]を送信する。
次に、ステップS581において、レスポンスの受信要求があると、ステップS582において、ドライブからのレスポンスをアプリケーション経由で受信する。
次に、ステップS583において、ドライブの認証処理に必要となる認証情報の受信要求があると、ステップS584において、ドライブの公開鍵証明書[CERT−D]と、ドライブ対応の認定グループ証明書[AGC−D]とをアプリケーション側から受信する。
ステップS585では、ドライブの公開鍵証明書[CERT−D]の検証処理を管理センタの公開鍵を用いて実行し、ステップS586では、レスポンスの署名検証処理を実行する。レスポンスの署名検証処理は、正当性の検証されたドライブの公開鍵証明書[CERT−D]から取り出したドライブの公開鍵[KP−D]を適用して実行する。
さらに、ステップS587において、ドライブから受信したレスポンスに含まれるクエリーデータが、接続デバイス自身が生成し送信したデータと一致するか否かを検証する。
a.ドライブの公開鍵証明書[CERT−D]が正当であること、
b.レスポンスが改竄されていないこと、
c.レスポンスに含まれるクエリーデータが、接続デバイス自身が生成し送信したデータと一致すること、
上記a〜cの全てが確認されたことを条件として、ステップS588に進む。
いずれかが確認されない場合は、ステップS590に進みアブリケーションに対してエラー報告、すなわち検証結果がNGであることの出力を行なう。
ステップS588では、アプリケーション側から新たな相互認証要求を受領した場合には、ステップS573に戻る。ステップS588において相互認証要求がない場合は、ステップS589において接続デバイスとしての一般動作を実行する。ここでの一般動作は、例えばアプリケーションの要求するディスクからの読み取りデータの再生出力処理やネットワーク出力処理、あるいはディスクに対する書き込みデータの取得、生成処理、アプリケーションに対する出力処理などである。なお、これらのデータは、認証の成立したアプリケーション、ドライブを介して出力あるいは入力される。
なお、接続デバイスとしては、前述したように、例えば、DTCP(Digital Transmission Content Protection)規格に従ったデジタルAVデータの入出力インタフェースであるDTCPI/F、グラフィックスカード、サウンドカード、チューナカード、AVキャプチャカード、その他の様々なデバイスが含まれ、それぞれのデバイスに対応する処理が実行されることになる。
[3.複数のドライブ装置または複数の接続デバイスを持つ構成における認証処理]
次に、図17以下を参照して、ホストで実行するアプリケーションに対して複数の接続デバイスが接続された場合に複数の接続デバイスとドライブ間で実行する認証処理シーケンスについて説明する。
接続デバイスは、上述したように様々の種類のデバイスが存在し、ドライブに装着されたディスクからのデータ再生または記録処理において複数の接続デバイスを利用した処理が実行される場合も多い。このような場合は、全ての接続デバイスとアプリケーションとドライブ間で認証が実行され、それぞれの正当性を確認する処理が必要となる。
先に、図10を参照して説明した処理を各接続デバイスに対して繰り返して実行することも1つの手法であるが、以下においては、複数の接続デバイスや複数のドライブが存在する場合の効率的な認証処理について説明する。
図17は、先に図10を参照して説明したドライブ−アプリケーション−接続デバイスが1つずつ存在する場合の認証の基本シーケンスに対応する図であり、複数の接続デバイスと複数のドライブが存在する場合のドライブと接続デバイス間の認証を効率的に実行する処理シーケンスを説明する図である。
図17に示すシーケンスにおいても、先に説明した図10の基本シーケンスと同様、ドライブ、アプリケーション、接続デバイス間で実行する認証処理シーケンスは、大きく分けて以下のステップにより構成される。
(1)シーケンスナンバー証明書共有ステップ(ステップS700)
(2)認定グループ証明書(AGC)配布ステップ(ステップS720)
(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ(ステップS730)
(4)ドライブ−接続デバイス相互確認ステップ(ステップS750)
本実施例においては、
(1)シーケンスナンバー証明書共有ステップ(ステップS700)
(2)認定グループ証明書(AGC)配布ステップ(ステップS720)
(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ(ステップS730)
は、先に図10〜図12を参照して説明したと同様の処理として実行される。ただし、アプリケーションと接続デバイス間の2者間の相互認証は、それぞれの接続デバイスとアプリケーション間で繰り返し実行することが必要である。
本実施例では、図17に示すステップS750の処理、すなわち、
(4)ドライブ−接続デバイス相互確認ステップ
が図10および図13を参照して説明した基本シーケンスと異なる処理として実行される
以下、このドライブ−接続デバイス相互確認ステップの処理の詳細について図17、図18を参照して説明する。
まず、ステップS751において、ドライブ(D1)は、乱数[RNG−D1]を生成し、接続デバイス(B1)に送信する。なお、ドライブは複数(D1〜Dn)存在し、接続デバイスも複数(B1〜Bm)存在し、それぞれがアプリケーションを実行するホストを介したデータ入出力を実行する構成である。図17では、ドライブ(D1)と接続デバイス(B1)との処理例を示している。
各ドライブと各接続デバイス間の通信は、アプリケーションを介して実行され、ドライブ−アプリケーション間のデータ転送、アプリケーション−接続デバイス間のデータ転送は、必要に応じてそれぞれの相互認証において生成したセッションキーを適用した暗号化データとして送信される。
接続デバイスは、ドライブからアプリケーションを介して乱数[RNG−D1]を受領すると、乱数[RNG−D1]と、接続デバイスにおいて生成した乱数[RNG−B1]と、さらに、接続デバイスのメモリに格納してある公開鍵証明書[Cert−B1]と、シーケンスナンバー証明書[SNC−B1]との連結データ[RNG−D1‖Cert−B1‖RNG−B1‖SNC−B1]を生成し、この連結データに対して接続デバイスの秘密鍵[KS−B1]を適用して電子署名データを生成し、連結データに対して署名データ[Sign−B1]を付加してステップS753においてこのクエリーデータ、すなわち、
[RNG−D1‖Cert−B1‖RNG−B1‖SNC−B1‖Sign−B1]を
をアプリケーションに送信する。
アプリケーションでは、他の接続デバイスからも同様のクエリーデータを受信する。ここでは、ドライブが[D1],[D2]の2つ、接続デバイスが[B1],[B2],[B3]の3つがアプリケーションに接続されている構成であるとする。
この場合、ステップS751においてドライブD1がアプリケーションに送信した乱数[RKG−D1]は、ドライブD1を除く全ての接続デバイス、すなわちドライブD2と、接続デバイスB1,B2,B3の全てに送信され、それぞれが上述した接続デバイスB1と同様のクエリーを生成してアプリケーションに送信する。
アプリケーションは、ステップS754でこれらの受信クエリーを連結してクエリーリストを生成し、生成したクエリーリストをドライブD1に送信する。
ドライブが[D1],[D2]の2つ、接続デバイスが[B1],[B2],[B3]の3つがアプリケーションに接続されている構成において、アプリケーションの生成するクエリーリストは、
(a)[RNG−D1‖Cert−D2‖RNG−D2‖SNC−D2‖Sign−D2]
(b)[RNG−D1‖Cert−B1‖RNG−B1‖SNC−B1‖Sign−B1]
(c)[RNG−D1‖Cert−B2‖RNG−B2‖SNC−B2‖Sign−B2]
(d)[RNG−D1‖Cert−B3‖RNG−B3‖SNC−B3‖Sign−B3]
上記(a)〜(d)のクエリーデータを含むリストとなる。
(a)は、ドライブD2の生成クエリーであり、(b)は接続デバイスB1の生成クエリー、(c)は接続デバイスB2の生成クエリー、(d)は接続デバイスB3の生成クエリーである。
アプリケーションはステップS754において、全ての接続デバイス(ドライブを含む)から受領したクエリーからなるリストを生成し、これを最初に乱数を生成し出力したドライブ、ここではドライブD1に送信する。
ドライブD1は、ステップS755において、クエリーリストに含まれる全クエリーの乱数データ[RNG−D1]が等しく、自己が先に生成した乱数[RNG−D1]と等しいか否かを判定し、さらに、クエリーリストに含まれる全クエリーの各デバイス対応のシーケンスナンバー証明書[SNC]、すなわちこの例では、[SNC−D2]、[SNC−B1]、[SNC−B2]、[SNC−B3]のシーケンスナンバーが、すべて自己の保有するシーケンスナンバー証明書[SNC−D1]に設定されたシーケンスナンバーと等しいか否かを検証する。
乱数の一致、シーケンスナンバー証明書のシーケンスナンバーの一致が確認されない場合は、認証エラーとしてアプリケーションにエラー報告(NG)を出力する。さらに、クエリーリストから任意の1つのクエリーを抽出し、ステップS756において、その抽出クエリーについて、そのクエリーに含まれる公開鍵証明書[Cert−X]から公開鍵を取得し、取得した公開鍵を適用して、抽出クエリーの署名検証によるデータ改竄の有無の検証を実行する。データ改竄のないことが確認されなかった場合は、認証エラーとしてアプリケーションにエラー報告(NG)を出力する。
抽出クエリーの署名検証により、データ改竄が無く正しいクエリーであると判定されると、認証OKがアプリケーションに通知される。アプリケーションは、例えばディスプレイにドライブにおける接続デバイスの検証の成否を出力するなどの処理を実行してもよい。
なお、クエリーの改竄検証は、ただ1つのクエリーについてのみ実行されればよい。その1つのクエリーが正しいクエリーであり、そのクエリーに格納された乱数データ[RNG−D1]と、デバイス対応の認定グループ証明書[SNC]のシーケンスナンバーが改竄のないデータであることが証明されれば、その他のクエリーにも全て同一の乱数データ[RNG−D1]と、デバイス対応のシーケンスナンバー証明書[SNC]のシーケンスナンバーが格納されていることが確認済みであるので、全てのデバイスにおいて共通の乱数データ[RNG−D1]と、共通のシーケンスナンバーを持つシーケンスナンバー証明書[SNC]に基づくクエリーが生成されたことが確認されるからである。
次に、このクエリーリストに基づく検証に成功すると、ドライブD1は、ステップS757において、アプリケーションから受領したクエリーリストに対して、自己の保有するドライブ対応のシーケンスナンバー証明書[SNC−D1]を連結し、さらに、この連結データに対して接続デバイスの秘密鍵[KS−D1]を適用して電子署名データを生成し、連結データに対して署名データ[Sign−D1]を付加してステップS758においてこのデータをアプリケーション経由で各デバイスに対するレスポンス[Response]として送信する。
ここでレスポンスの送信先となるのはクエリーを送信した全デバイスであり、この例では、ドライブ[D2]、接続デバイス[B1],[B2],[B3]の全てに送信される。
ドライブ[D2]、接続デバイス[B1],[B2],[B3]の各々は、ステップS759、ステップS760において、アプリケーションからドライブD1の公開鍵証明書[Cert−D1]およびドライブ対応の認定グループ証明書[AGC−D1]を受領する。なお、これらのデータ受領処理は、ステップS730の2者間の相互認証以前、途中、以後の、どのタイミングで実行してもよい。
ドライブ[D2]、接続デバイス[B1],[B2],[B3]の各々は、ステップS761において、アプリケーションから受領したドライブD1対応の認定グループ証明書[AGC−D1]の署名検証処理と、アプリケーションから受領したドライブD1の公開鍵証明書[Cert−D1]の署名検証処理を実行し、各証明書の正当性、すなわち改竄の有無を検証する。署名検証処理は管理センタの公開鍵を適用して実行される。
これらの証明書の正当性が確認されるとステップS762に進む。データ改竄ありと判定した場合は、以降の処理は中止する。
ドライブ[D2]、接続デバイス[B1],[B2],[B3]の各々は、ステップS762において、ドライブD1から受領したレスポンス[Response]、すなわち、先に説明したクエリーリストを含むレスポンスに、自身が生成したクエリーを含むか否かの判定を行なう。
送信クエリーと同一のクエリーデータが含まれない場合は、処理を中止する。送信クエリーと同一のクエリーデータが含まれる場合は次の処理に進む。
ステップS763では、正当性の確認されたドライブD1の公開鍵証明書[Cert−D1]から取り出したドライブの公開鍵[KP−D1]を適用して、ドライブから受領したレスポンス[Response]についての署名検証処理を実行する。
この署名検証処理により、ドライブから受領したレスポンス[Response]が正当であると判定されると、ドライブと接続デバイスの認証が成立したと判定される。署名検証処理により、ドライブから受領したレスポンス[Response]が正当でないと判定された場合には認証不成立となり、以降のデータ処理は中止される。
ステップS762とステップS763の検証処理において、クエリーとレスポンス内のデータの一致が確認されなかった場合、レスポンスデータ改竄のないことが確認されなかった場合は、図18に示すようにNGを示すメッセージがアプリケーションに通知され、また、クエリーとレスポンス内のデータの一致が確認され、レスポンスデータ改竄のないことが確認された場合は、図18に示すようにOKを示すメッセージがアプリケーションに通知される。アプリケーションは、例えばディスプレイに接続デバイスにおけるドライブの検証の成否を出力するなどの処理を実行してもよい。
以上、説明したように、本実施例の認証処理では、
(1)シーケンスナンバー証明書共有ステップ(ステップS700)
(2)認定グループ証明書(AGC)配布ステップ(ステップS720)
(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証ステップ(ステップS730)
(4)ドライブ−接続デバイス相互確認ステップ(ステップS750)
の各ステップを実行する構成としている。
さらに、(4)ドライブ−接続デバイス相互確認ステップ(ステップS750)では、アプリケーションに接続された1つのドライブが生成した乱数を他のドライブを含む全ての接続デバイスに送信し、全てにおいて受信乱数と自己保有する認定グループ証明書を含むクエリーを生成してアプリケーションに送信し、アプリケーションではこれらのクエリーを構成データとするクエリーリストを生成して乱数生成ドライブに送信する。
クエリーリストを受信したドライブは、クエリーリスト内のクエリーの構成データに含まれる自身が生成した乱数データが生成乱数と全て一致するかを検証し、またクエリーリスト内のクエリーの構成データに含まれる認定グループリストのシーケンスナンバーが自己の保有する認定グループリストのシーケンスナンバーとすべて一致するか否かを判定する。さらに、1つのクエリーを選択して、改竄検証処理を実行する。
このように、ドライブは、
(a)クエリーリスト内のクエリーの構成データに含まれる自身が生成した乱数データが生成乱数と全て一致する
(b)クエリーリスト内のクエリーの構成データに含まれる認定グループリストのシーケンスナンバーが自己の保有する認定グループリストのシーケンスナンバーとすべて一致する
(c)1つのクエリーの改竄検証により改竄のないことを確認
以上の処理によって、アプリケーションに接続された全てのデバイス(他のドライブも含む)を認証することができる。
一方、最初に乱数を生成したドライブ以外のデバイスは、ドライブからのレスポンスの検証を行なうのみでよい。すなわち、乱数を生成し、リストに基づく検証処理が実行され、すべての接続デバイスが認証されたことを条件としてレスポンスが送信されるので、レスポンスを受信した場合は、そのレスポンスに含まれるクエリーリストに含まれる全てのデバイスは信用できるデバイスであることが保証されることになるからである。
このように、本実施例の構成によれば、アプリケーションに対して多数の接続デバイスドライブが接続された構成であっても、クエリーリストの生成、検証というプロセスを実行することにより、複数ドライブ−アプリケーション−複数接続デバイス構成における相互認証を効率的に実行することが可能となる。
図19を参照して、上述の例における乱数を生成しないドライブ、すなわちドライブD2の処理シーケンスについて説明する。なお、接続デバイスにおいてもほぼ同様の処理が実行される。
ステップS801において、ドライブD2に対する情報記録媒体(ディスク)の挿入を検知し、ステップS802において、バス接続されたホスト側でのコンテンツ再生あるいは記録処理を実行するホストアプリケーション側からの相互認証処理要求を受信すると、ステップS803〜S805において、ドライブD2とアプリケーション間の相互認証を開始し、認定グループ証明書に基づく正当性確認(リボーク状況確認)とともに、セッションキーの共有を行なう。リボケーション情報の交換は、図17におけるステップS720の認定グループ証明書の配布処理(詳細は図11の処理)である。相互認証処理は、図17におけるステップS731に対応する処理であり、先に説明した図12に示すシーケンスに従った処理として実行される。
アプリケーションとドライブD2間の相互認証が成立したこと(ステップS805:Yes)を条件として、ステップS806に進む。ステップS806以下の処理は、図17におけるステップS750の処理、すなわち図18に示す処理に相当する。
ステップS806でアプリケーションからの乱数受信要求を受信すると、ステップS807で乱数[RNG−D1]をドライブD1からアプリケーション経由で受信する。次に、ステップS808でクエリー送信要求があると、ステップS809で、乱数[RNG−D2]を生成し、ステップS810で、クエリー:[RNG−D1‖Cert−D2‖RNG−D2‖SNC−D2‖Sign−D2]を生成し、ステップS811において、アプリケーションに対してクエリーを送信する。
アプリケーションは、複数のクエリーに基づいてクエリーリストを生成してドライフD1に送信する処理を実行する。
ドライブD2は、次に、ステップS812において、レスポンスの受信要求があると、ステップS813において、ドライブからのレスポンスをアプリケーション経由で受信する。このレスポンスにはクエリーリストが含まれる。
次に、ステップS814において、ドライブD1の認証処理に必要となる認証情報の受信要求があると、ステップS815において、ドライブD1の公開鍵証明書[CERT−D1]と、ドライブD1対応の認定グループ証明書[AGC−D1]とをアプリケーション側から受信する。
ステップS816では、ドライブD1の公開鍵証明書[CERT−D1]の検証処理を管理センタの公開鍵を用いて実行し、ステップS817では、レスポンスの署名検証処理を実行する。レスポンスの署名検証処理は、正当性の検証されたドライブD1の公開鍵証明書[CERT−D1]から取り出したドライブの公開鍵[KP−D1]を適用して実行する。
さらに、ステップS818において、ドライブから受信したレスポンスに含まれるクエリーリストに、ドライブD2自身が生成し送信したクエリーデータと一致するデータが含まれるか否かを検証する。
a.ドライブD1の公開鍵証明書[CERT−D1]が正当であること、
b.レスポンスが改竄されていないこと、
c.レスポンスに、ドライブD2自身が生成し送信したクエリーデータと一致するクエリーデータが含まれること、
上記a〜cの全てが確認されたことを条件として、ステップS819に進む。
いずれかが確認されない場合は、ステップS822に進みアブリケーションに対してエラー報告、すなわち検証結果がNGであることの出力を行なう。
ステップS819で、ディスクが排出されたと判定された場合には、ステップS801に戻る。また、ステップS820で、アプリケーションから新たな相互認証要求を受領した場合には、ステップS804に戻る。ステップS819においてディスクが排出されたと判定されず、ステップS820において新たな相互認証要求がない場合は、ステップS821においてドライブとしての一般動作を実行する。ここでの一般動作は、例えばアプリケーションの要求するディスクからのデータ読み取り、出力処理や、ディスクに対するデータ書き込み処理などである。なお、これらのデータは、認証の成立したアプリケーション、ドライブ、接続デバイスを介して出力あるいは入力される。
複数の接続デバイスにおいても上述した処理と同様の処理が実行されることになる。これらの処理は各接続デバイスにおいて並列に実行可能であり、多数のデバイスがアプリケーションに接続された環境においても短時間にすべてのデバイス、ドライブ、アプリケーション間の相互認証処理を完了することができる。
[4.アプリケーション実行装置としてのホスト装置、ドライブ、および接続デバイスのハードウェア構成例]
次に、図20、図21、図22を参照して、情報記録媒体からのデータ再生または情報記録媒体に対するデータ記録を実行する際にデータ処理、データ転送経路上に位置するドライブ、アプリケーション実行機器としてのホストを構成する情報処理装置、および接続デバイスのハードウェア構成例について説明する。
まず、図20を参照して、アプリケーション実行機器としてのホストを構成するホスト装置の構成について説明する。ホスト装置600は、OSやコンテンツ再生アプリケーションプログラム、上述した相互認証処理プログラムなどの各種プログラムに従ったデータ処理を実行するCPU670、プログラム、パラメータ等の記憶領域としてのROM660、メモリ680、デジタル信号を入出力する入出力I/F610、アナログ信号を入出力し、A/D,D/Aコンバータ641を持つ入出力I/F640、MPEGデータのエンコード、デコード処理を実行するMPEGコーデック630、TS(Transport Stream)・PS(Program Stream)処理を実行するTS・PS処理手段620、相互認証、暗号化コンテンツの復号処理など各種の暗号処理を実行する暗号処理手段650、ハードディスクなどの記録媒体691、記録媒体691の駆動、データ記録再生信号の入出力を行なうドライブ690を有し、バス601に各ブロックが接続されている。
ホスト装置600は、例えばATAPIBUS等の接続バスによってドライブと接続され、また、内部バス、USB、IEEE1394バスなどの各種バスによって接続デバイスと接続される。データは、デジタル信号用入出力I/F610から入力され、必要に応じて暗号化処理手段650によって暗号化されて転送される。
なお、アプリケーションプログラム、具体的にはデータ再生処理またはデータ記録処理の実行プログラムや、相互認証処理プログラムは例えばROM660内に保管されており、プログラムの実行処理中は必要に応じて、パラメータ、データの保管、ワーク領域としてメモリ680を使用する。
ROM660または記録媒体691には、先に図5他を参照して説明した各種のデータ、すなわち公開鍵を格納した公開鍵証明書、秘密鍵、認定グループリスト、シーケンスナンバー証明書、さらに管理センタの公開鍵などが格納される。なお、複数のホストアプリケーションを保持している場合は、それぞれに対応する秘密鍵と公開鍵証明書が格納される。
次に、図21を参照して、情報記録媒体を装着して情報記録媒体に対するデータ書き込みまたは情報記録媒体からのデータ読み取りを実行するドライブ装置の構成について説明する。ドライブ装置700は、データ記録/再生プログラム、相互認証処理プログラムなどの各種プログラムに従ったデータ処理を実行するCPU702、プログラム、パラメータ等の記憶領域としてのROM705、メモリ706、デジタル信号を入出力する入出力I/F703、相互認証、出力データの暗号化処理など各種の暗号処理を実行する暗号処理手段704、DVD,Blu−rayディスクなどの情報記録媒体708の駆動、データ記録再生信号の入出力を行なう記録媒体I/F707を有し、バス701に各ブロックが接続されている。
ドライブ700は、例えばATAPIBUS等の接続バスによってホスト装置と接続され、例えば情報記録媒体708に格納されたデータを必要に応じて暗号化し入出力I/F703から出力する。また、入出力I/F703から入力するデータの情報記録媒体に対する記録処理などを行なう。
なお、ROM705、またはメモリ706には、先に図5他を参照して説明した各種のデータ、すなわち公開鍵を格納した公開鍵証明書、秘密鍵、シーケンスナンバー証明書、さらに管理センタの公開鍵などが格納される。また、コンテンツの読み取り、取得、および相互認証処理を実行するプログラム等が格納されている。
次に、図22を参照して、接続デバイスの構成例について説明する。なお、前述したように、接続デバイスは、例えばDTCP(Digital Transmission Content Protection)規格に従ったデジタルデータの入出力インタフェースであるDTCPI/F、グラフッイックスカード、サウンドカード、チューナカード、AVキャプチャカードなどによって構成されるデバイスであり、各デバイスに応じた構成を持つ。図22に示すのは接続デバイスの1つの例を示しているものである。
一例としての接続デバイス800は、図22に示すようにデバイスに応じたデータ処理プログラム、相互認証処理プログラムなどの各種プログラムに従ったデータ処理を実行するCPU802、プログラム、パラメータ等の記憶領域としてのROM805、メモリ806、デジタル信号を入出力する入出力I/F803、相互認証、出力データの暗号化処理など各種の暗号処理を実行する暗号処理手段804、アナログデジタル信号変換を実行するA/D,D/Aコンバータ807、アナログ信号の入出力インタフェースとしての入出力I/F808を有し、バス801に各ブロックが接続されている。
入出力I/F803を介してアプリケーション実行装置としてのホスト(PC等の情報処理装置)に接続され、データの入出力を行なう。
ROM805、またはメモリ806には、先に図5他を参照して説明した各種のデータ、すなわち公開鍵を格納した公開鍵証明書、秘密鍵、さらに管理センタの公開鍵などが格納される。また、各種のデータ処理、相互認証処理を実行するプログラム等が格納されている。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の構成によれば、ドライブ、アプリケーション、および接続デバイスの3つの要素を経由するデータ記録や読み取り処理において、ドライブ、アプリケーション、および接続デバイスの3つの要素の認証を実行する構成とした。ドライブと接続デバイス間における相互認証処理は、アプリケーションを実行するホストを経由して実行し、該認証処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を認証機器間において相互に提示し、双方の機器において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーとの一致を確認する処理を行なう構成としたので、ドライブ、アプリケーション、および接続デバイスの3つの要素を経由するデータ記録や読み取り処理を行なう場合であっても、ドライブと接続デバイス間の認証により、不正なコンテンツ利用を可能とする経路を排除することができ、十分なセキュリティを確保した状態でのデータ転送およびデータ処理が実現される。
さらに、本発明の構成によれば、ドライブとアプリケーションと接続デバイスとの間でデータの転送およびデータ処理が実行される構成において、アプリケーションによるデータ処理の前に、ドライブとアプリケーションと接続デバイス間における相互認証を実行する。相互認証は、(1)シーケンスナンバー証明書共有処理、(2)認定グループ証明書(AGC)配布処理、(3)ドライブ−アプリケーション間相互認証、およびアプリケーション−接続デバイス間相互認証処理、(4)ドライブ−接続デバイス相互確認処理の各処理の実行により、ドライブ、アプリケーション、接続デバイスの全ての間の相互認証が実行され、3者相互の信頼性を確認する構成であるので、不正なアプリケーションが介在したり、各機器各のデータ転送路からのデータ入手を排除することが可能であり、セキュリティの高いデータ処理が実現される。
さらに、本発明の構成によれば、ドライブ−接続デバイス相互確認処理において、ホストは、シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して認証処理を実行する1つの機器に送信し、クエリーリストの受信機器は、クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成としたので、複数の機器が接続された構成においても効率的な認証処理が実現される。
さらに、本発明の構成によれば、クエリーを生成した機器は、クエリーリスト受信機器から署名を付加したレスポンスを受信し、レスポンスの検証を行なうのみで認証が終了する。すなわち、クエリーリストの受信機器は、リストに基づいてすべてのクエリー送信デバイスが認証されたことを条件としてレスポンスが送信されるので、レスポンスを受信した場合は、そのレスポンスに含まれるクエリーリストに含まれる全てのデバイスは信用できるデバイスであることが保証されることになるからである。このように本発明の構成によれば、多数の接続デバイスやドライブが設定された環境においても効率的で確実な認証処理を実行することが可能となる。
ドライブ、アプリケーション、接続デバイスを介して実行される情報記録媒体(ディスク)を適用したデータ記録、再生処理について説明する図である。 ドライブ、アプリケーション、接続デバイスを介して実行される情報記録媒体(ディスク)を適用したデータ記録、再生処理について発生する問題点について説明する図である。 ドライブ、アプリケーション、接続デバイスの相互認証をすべて実行した場合の問題点について説明する図である。 本発明の適用可能なドライブ、アプリケーション、接続デバイスを有するシステム構成およびデータ処理について説明する図である。 本発明におけるドライブ、アプリケーション、接続デバイス各々の保有するデータについて説明する図である。 公開鍵証明書他の各種証明書の基本構成について説明する図である。 公開鍵証明書のデータ構成について説明する図である。 認定グループ証明書および認定グループリストのデータ構成について説明する図である。 シーケンスナンバー証明書のデータ構成について説明する図である。 本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムにおける認証処理シーケンスについて説明する図である。 シーケンスナンバー証明書の共有処理シーケンスについて説明する図である。 直接接続された2つのデバイス間の相互認証処理シーケンスについて説明する図である。 ドライブと接続デバイス間の相互認証処理シーケンスについて説明する図である。 本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムの認証処理においてアプリケーション実行装置としてのホストの処理について説明するフローチャートである。 本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムの認証処理におけるドライブの処理について説明するフローチャートである。 本発明に従ったドライブ、アプリケーション、接続デバイスを有するシステムの認証処理における接続デバイスの処理について説明するフローチャートである。 本発明に従った複数ドライブ、アプリケーション、複数接続デバイスを有するシステムにおける認証処理シーケンスについて説明する図である。 複数ドライブと複数接続デバイスを持つシステムにおける相互認証処理シーケンスについて説明する図である。 本発明に従った複数ドライブ、アプリケーション、複数接続デバイスを有するシステムの認証処理における1つのドライブの処理について説明するフローチャートである。 本発明のアプリケーション実行装置としてのホスト装置の構成例を示す図である。 本発明のドライブ装置の構成例を示す図である。 本発明の接続デバイスの構成例を示す図である。
符号の説明
11 情報記録媒体
12 ドライブ
13 アプリケーション
14 DTCPI/F
15 グラフッイックスカード
16 サウンドカード
17 チューナカード
18 AVキャプチャカード
21 不正アプリケーション
31 ハードディスク
32 コーデック
33 ネットワーク
51,53 情報記録媒体
52,54 ドライブ
55 アプリケーション
101 情報記録媒体
102 ドライブ
103 アプリケーション
104 接続デバイス
600 ホスト装置
601 バス
610 入出力I/F
620 TS・PS処理手段
630 MPEGコーデック
640 入出力I/F
641 A/D,D/Aコンバータ
650 暗号処理手段
660 ROM
670 CPU
680 メモリ
690 ドライブ
691 記録媒体
700 ドライブ装置
701 バス
702 CPU
703 入出力I/F
704 暗号処理手段
705 ROM
706 メモリ
707 記録媒体I/F
708 情報記録媒体
800 接続デバイス
801 バス
802 CPU
803 入出力I/F
804 暗号処理手段
805 ROM
806 メモリ
807 A/D,D/Aコンバータ
808 入出力I/F

Claims (15)

  1. 情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置であり、
    前記ホスト、ドライブ、および接続デバイスの各々はデータ処理部を有し、
    前記ドライブと前記接続デバイスのデータ処理部は、
    前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する構成であり、該相互確認処理において、管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書の相互提示処理を実行し、前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を行い、これらのシーケンスナンバーの一致を認証条件とした確認処理を行なう構成であり、
    前記ドライブと前記接続デバイス間における相互確認処理は、
    前記ドライブと前記アプリケーション間の相互認証の成立と、前記アプリケーションと前記接続デバイス間の相互認証の成立を条件として実行する構成であり、
    前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行する構成であることを特徴とする情報処理装置。
  2. 前記ドライブと前記接続デバイス間における相互確認処理は、
    前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送受信および検証処理を含む処理であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記ドライブと前記接続デバイス間における相互確認処理は、
    前記認定グループ証明書に基づく確認相手機器の正当性確認処理を含む処理として実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  4. 前記アプリケーションを実行するホストは、
    前記ドライブと前記接続デバイス間における相互確認処理において、
    前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信し、該複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する1つの機器に送信する処理を実行する構成であり、
    前記クエリーリストの受信機器は、
    前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  5. 前記クエリーリストの受信機器は、
    クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、
    クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、
    クエリーリストに含まれる少なくとも1つのクエリーの署名検証による改竄なしの確認、
    上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行する構成であることを特徴とする請求項4に記載の情報処理装置。
  6. 前記クエリーリストの受信機器は、
    前記クエリーリストに対する署名データを付加したレスポンスをクエリー送信機器に送信し、
    前記レスポンスを受信した機器は、
    該レスポンスに対する署名検証により認証可否判定を実行する構成であることを特徴とする請求項4に記載の情報処理装置。
  7. 前記情報処理装置は、
    前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行し、該配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  8. 情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理方法であり、
    前記ドライブと前記アプリケーション間の相互認証を実行するステップと、
    前記アプリケーションと前記接続デバイス間の相互認証を実行するステップと、
    前記各認証の成立を条件として、前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
    前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行するステップであり、
    前記相互確認処理ステップは、
    管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
    前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
    を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした確認処理を実行するステップであることを特徴とする認証処理方法。
  9. 前記ドライブと前記接続デバイス間における相互確認処理ステップは、
    前記ドライブと前記接続デバイスの保持するシーケンスナンバー証明書と生成乱数とを含むデータと該データに対する署名データを含むクエリーおよびレスポンスの送信および検証処理を含む処理であることを特徴とする請求項に記載の認証処理方法。
  10. 前記ドライブと前記接続デバイス間における相互確認処理ステップは、
    前記認定グループ証明書に基づく確認相手機器の正当性確認処理ステップを含むことを特徴とする請求項に記載の認証処理方法。
  11. 前記ドライブと前記接続デバイス間における相互確認処理ステップは、
    前記アプリケーションを実行するホストにおいて、前記シーケンスナンバー証明書と乱数とを含むデータと該データに対する署名データを含むクエリーを複数の接続デバイスまたはドライブから受信するステップと、
    前記アプリケーションを実行するホストにおいて、前記複数の受信クエリーを含むクエリーリストを生成して確認処理を実行する1つの機器に送信するステップと、
    前記クエリーリストの受信機器において、前記クエリーリストの検証処理を実行して、各クエリーの生成機器に対する認証の可否を一括判定する処理を実行するステップと、
    を含むことを特徴とする請求項に記載の認証処理方法。
  12. 前記クエリーリストの受信機器は、
    クエリーリストに含まれる複数のクエリーに格納されたシーケンスナンバー証明書のシーケンスナンバーの一致確認、
    クエリーリストに含まれる複数のクエリーに格納された乱数の一致確認、
    クエリーリストに含まれる少なくとも1つのクエリーの署名検証による改竄なしの確認、
    上記の各確認処理に基づいて、クエリーリストに含まれるクエリーの生成機器に対する認証の可否を一括判定する処理を実行することを特徴とする請求項11に記載の認証処理方法。
  13. 前記認証処理方法は、さらに、
    前記クエリーリストの受信機器において、前記クエリーリストに対して署名データを付加して生成したレスポンスをクエリー送信機器に送信するステップと、
    前記レスポンスを受信した機器において、前記レスポンスに対する署名検証により認証可否判定を実行するステップと、
    を有することを特徴とする請求項11に記載の認証処理方法。
  14. 前記認証処理方法は、さらに、
    前記ホストおよびドライブおよび接続デバイスの各々に対する前記シーケンスナンバー証明書の配布処理を実行するステップを有し、前記シーケンスナンバー証明書の配布処理の後、前記ドライブと前記接続デバイス間における相互確認処理を実行することを特徴とする請求項に記載の認証処理方法。
  15. 情報記録媒体に対するデータ記録またはデータ再生処理を伴うアプリケーションを実行するホストと、情報記録媒体を装着し情報記録媒体のデータ読み取りまたは記録を行なうとともに前記ホストとのデータ入出力を実行するドライブと、前記ホストに接続されホストとのデータ入出力を実行する接続デバイスとを有する情報処理装置における認証処理を実行するコンピュータ・プログラムであり、
    前記ドライブと前記アプリケーション間の相互認証を実行するステップと、
    前記アプリケーションと前記接続デバイス間の相互認証を実行するステップと、
    前記各認証の成立を条件として、前記ドライブと前記接続デバイス間における相互確認処理を、前記ホストを経由して実行する相互確認処理ステップを有し、
    前記ドライブと前記アプリケーション間の相互認証処理と、前記アプリケーションと前記接続デバイス間の相互認証処理は、前記認定グループ証明書に基づく認証相手の正当性確認処理を含む処理として実行するステップであり、
    前記相互確認処理ステップは、
    管理センタにより正当性を認められたアプリケーションまたは機器に対応する識別情報を格納した証明書である認定グループ証明書に設定されたシーケンスナンバーを格納したシーケンスナンバー証明書を確認機器間において相互に提示する証明書提示ステップと、
    前記ドライブおよび接続デバイス双方において自己のメモリに格納したシーケンスナンバー証明書のシーケンスナンバーと、確認相手から提示された証明書のシーケンスナンバーとの照合を実行する照合ステップと、
    を含み、前記照合ステップにおけるシーケンスナンバーの一致を認証条件とした認証処理を実行するステップであることを特徴とするコンピュータ・プログラム。
JP2004052960A 2004-02-27 2004-02-27 情報処理装置、および認証処理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4586380B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004052960A JP4586380B2 (ja) 2004-02-27 2004-02-27 情報処理装置、および認証処理方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004052960A JP4586380B2 (ja) 2004-02-27 2004-02-27 情報処理装置、および認証処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2005244695A JP2005244695A (ja) 2005-09-08
JP4586380B2 true JP4586380B2 (ja) 2010-11-24

Family

ID=35025924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004052960A Expired - Fee Related JP4586380B2 (ja) 2004-02-27 2004-02-27 情報処理装置、および認証処理方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP4586380B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0613956A2 (pt) 2005-06-28 2011-02-22 Matsushita Electric Ind Co Ltd método de verificação, dispositivo de processamento de informação, meio de gravação, sistema de verificação, programa de certificação e programa de verificação
JP5347118B2 (ja) * 2009-08-18 2013-11-20 日本放送協会 受信機管理システム
IL258379A (en) * 2018-03-26 2018-05-31 Kazuar Advanced Tech Ltd Secure remote terminal

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949877A (en) * 1997-01-30 1999-09-07 Intel Corporation Content protection for transmission systems
JP2000003559A (ja) * 1998-04-14 2000-01-07 Hitachi Ltd デ―タ再生方泡デ―タ再生装置、デ―タ符号化方泡デ―タ記録方泡デ―タ記録装置、認証方法及び半導体チップ
JP2000357370A (ja) * 1999-03-12 2000-12-26 Matsushita Electric Ind Co Ltd コンテンツ複製システム、ドライブ装置、複製方法及びコンピュータ読取可能な記録媒体
WO2001041359A1 (fr) * 1999-12-03 2001-06-07 Sanyo Electric Co., Ltd Systeme de distribution de donnees et enregistreur a utiliser dans ce systeme
US20020120847A1 (en) * 2001-02-23 2002-08-29 Koninklijke Philips Electronics N.V. Authentication method and data transmission system
JP2002542532A (ja) * 1999-04-13 2002-12-10 カナル プラス ソシエテ アノニム デバイス間でデジタルデータの安全な通信を提供するための方法および装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949877A (en) * 1997-01-30 1999-09-07 Intel Corporation Content protection for transmission systems
JP2000003559A (ja) * 1998-04-14 2000-01-07 Hitachi Ltd デ―タ再生方泡デ―タ再生装置、デ―タ符号化方泡デ―タ記録方泡デ―タ記録装置、認証方法及び半導体チップ
JP2000357370A (ja) * 1999-03-12 2000-12-26 Matsushita Electric Ind Co Ltd コンテンツ複製システム、ドライブ装置、複製方法及びコンピュータ読取可能な記録媒体
JP2002542532A (ja) * 1999-04-13 2002-12-10 カナル プラス ソシエテ アノニム デバイス間でデジタルデータの安全な通信を提供するための方法および装置
WO2001041359A1 (fr) * 1999-12-03 2001-06-07 Sanyo Electric Co., Ltd Systeme de distribution de donnees et enregistreur a utiliser dans ce systeme
US20020120847A1 (en) * 2001-02-23 2002-08-29 Koninklijke Philips Electronics N.V. Authentication method and data transmission system

Also Published As

Publication number Publication date
JP2005244695A (ja) 2005-09-08

Similar Documents

Publication Publication Date Title
JP5025009B2 (ja) 認証方法、ホスト計算機及び記録媒体
US6738878B2 (en) Verifying the integrity of a media key block by storing validation data in the cutting area of media
JP4144573B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US9054880B2 (en) Information processing device, controller, key issuing authority, method for judging revocation list validity, and key issuing method
US7831831B2 (en) Authentication communication system, authentication communication apparatus, and authentication communication method
US8787582B2 (en) Key implementation system
US20020184259A1 (en) Data reproducing/recording apparatus/ method and list updating method
US20050120216A1 (en) System and method for building home domain using smart card which contains information of home network member device
JP2005502975A (ja) 媒体のカッティング領域に妥当性検査データを格納することによるメディア・キー・ブロックの保全性の検証
WO2001056224A1 (fr) Systeme d'authentification de dispositif de stockage
WO2005067198A1 (ja) 情報処理装置
US7694327B2 (en) Information processing apparatus, information recording medium, information processing method and computer program
US20100313034A1 (en) Information processing apparatus, data recording system, information processing method, and program
JP4524829B2 (ja) データ処理システム、記録デバイス、およびデータ処理方法、並びにプログラム提供媒体
US6519701B1 (en) Information processing apparatus, information processing method, and transmission medium
JP2009272002A (ja) 情報処理装置、ディスク、および情報処理方法、並びにプログラム
JP2008527892A (ja) セキュアホストインタフェース
JP4586380B2 (ja) 情報処理装置、および認証処理方法、並びにコンピュータ・プログラム
WO2009081896A1 (ja) 磁気ヘッド
JP2009157611A5 (ja)
US20120066513A1 (en) Method and apparatus for authenticating a non-volatile memory device
EP1983458A1 (en) Media package, system comprising a media package and method of using stored data
JP4686805B2 (ja) データ記憶素子製造方法およびデータ記憶素子、並びにデータ処理装置
JP2002149061A (ja) レンタルコンテンツ流通システムおよびその方法
JP2009093731A (ja) 情報処理装置、ディスク、および情報処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100810

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100823

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130917

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees