(58)【調査した分野】(Int.Cl.,DB名)
情報処理装置に埋め込まれる鍵情報と、前記鍵情報が生成された時点において発行されている最新の無効化リストのバージョンを示し、前記鍵情報と関連付けられた情報であるバージョン情報とを生成する生成部と、
生成された前記鍵情報と前記バージョン情報とを外部へ出力する出力部と
を備えることを特徴とする鍵発行局。
【発明を実施するための形態】
【0016】
ここでは、本発明に係る実施の形態について、図面を参照しながら説明する。
1.実施の形態1
本発明に係る第一の実施の形態であるメモリカード製造システム1について説明する。
<構成>
メモリカード製造システム1は、コントローラおよびフラッシュメモリから構成されるメモリカードを製造するシステムである。メモリカード製造システム1は、
図1に示すように、鍵発行局10、メモリカード製造装置20および本発明に係る情報処理装置としてのメモリカード30から構成される。
【0017】
鍵発行局10は、メモリカードに埋め込むための鍵情報および無効化リストの生成、管理、配布を行う装置である。
【0018】
メモリカード製造装置20は、メモリカード製造業者の装置である。メモリカード製造業者は、メモリカード30を組み立てて出荷する業者であり、コントローラ製造業者からコントローラを購入し、フラッシュメモリ製造業者からフラッシュメモリを購入して、メモリカード30を組み立てる。そして、メモリカード製造業者は、メモリカード製造装置20を用いて、組み立てたメモリカード30のコントローラに鍵発行局10から取得した鍵情報および無効化リストを送信する。
(1)鍵発行局10
鍵発行局10は、
図2に示すように、ルート秘密鍵保持部101、新規登録受付部102、バージョン管理部103、無効化リスト管理部104、無効化リスト生成部105、鍵ペア生成部106、証明書ID管理部107、証明書生成部108、署名付与部109、鍵情報生成部110、鍵情報送信部111、および無効化リスト送信部112から構成される。
【0019】
鍵発行局10は、具体的には、プロセッサ、ハードディスク、ROM、RAMなどのハードウェアを備えたコンピュータシステムである。ROMにはコンピュータプログラムが記録されており、プロセッサがRAMを用いてコンピュータプログラムを実行することにより、鍵発行局10はその機能を達成する。
【0020】
ルート秘密鍵保持部101は、本システムの安全性の根拠となるルート秘密鍵を保持している。ルート秘密鍵の漏洩は本システム全体が毀損されることを意味するため、ルート秘密鍵は極めて厳重に管理する必要がある。ルート秘密鍵は後述するルート公開鍵と鍵ペアを構成する。
【0021】
新規登録受付部102は、秘密鍵が暴露されたことにより、新たに無効化リストに加えるべき公開鍵証明書の証明書ID(以下、「無効証明書ID」と記載する。)の入力を受け付ける。具体的に、新規登録受付部102は、マウス、キーボード等の入力装置とアプリケーションプログラムとから構成され、オペレータがキーボード等を操作することにより、無効証明書IDを入力する。
【0022】
バージョン管理部103は、既に発行済みである最新の無効化リストのバージョン番号を管理する。すなわち、バージョン管理部103は、既に発行済みである最新の無効化リストのバージョン番号である「最低バージョン情報」を内部に記憶しておき、無効化リスト生成部105で新たに無効化リストが生成される都度、記憶している「最低バージョン情報」を「1」ずつインクリメントする。
【0023】
無効化リスト管理部104は、新規登録受付部102が受け付けた無効証明書IDを蓄積する。
【0024】
無効化リスト生成部105は、無効化リスト管理部104に蓄積されている無効証明書IDから、無効化リストを生成する。
【0025】
ここで、無効化リスト生成部105が生成する無効化リストのデータ構成を
図3に示す。同図に示すように、無効化リスト120は、バージョン121、登録数122、リスト123およびデジタル署名124から構成される。
【0026】
バージョン121は、当該無効化リスト120のバージョンを示す。無効化リスト生成部105は、バージョン管理部103が管理している「最低バージョン情報」に「1」を加算して、バージョン121とする。
【0027】
登録数122は、リスト123に記載されている無効証明書IDの数を示す。無効化リスト生成部105は、無効化リスト管理部104に蓄積されている無効証明書IDの数を、登録数122とする。
【0028】
リスト123は、n個の無効化証明書IDを含む。無効化リスト生成部105は、無効化リスト管理部104に蓄積されているすべての無効化証明書IDを含むリスト123を生成する。
【0029】
デジタル署名124は、バージョン121、登録数122およびリスト123に対して生成されたデジタル署名である。無効化リスト生成部105は、ルート秘密鍵保持部101に保持されているルート秘密鍵を署名生成鍵として用い、バージョン121、登録数122およびリスト123を結合したデータに対し所定の署名生成アルゴリズムを施して、デジタル署名124を生成する。
【0030】
無効化リスト生成部105は、バージョン121、登録数122、リスト123およびデジタル署名124から無効化リスト120を生成し、生成した無効化リスト120を、無効化リスト送信部112へ出力する。また、無効化リスト生成部105は、無効化リスト120を生成すると、その旨をバージョン管理部103へ通知する。
【0031】
鍵ペア生成部106は、メモリカード30に付与する公開鍵および秘密鍵からなる鍵ペアを生成する。鍵ペア生成部106は、生成した公開鍵を、証明書生成部108へ出力し、生成した秘密鍵を、鍵情報生成部110へ出力する。
【0032】
証明書ID管理部107は、鍵発行局10が発行する公開鍵証明書の証明書IDを管理する。既に使用済みの証明書IDについては誤って再利用しないように注意する必要がある。一例として、証明書ID管理部107は、鍵発行局10が公開鍵証明書を発行する毎に「1」ずつカウンタを増加させ、常に新しい番号の証明書IDを生成するとしてもよい。
【0033】
証明書生成部108は、公開鍵証明書の一部である証明書データを生成する。証明書生成部108は、証明書ID管理部107から指示される証明書IDと、鍵ペア生成部106により生成された公開鍵とからなる証明書データを生成する。証明書生成部108は、生成した証明書データを、署名付与部109へ出力する。
【0034】
署名付与部109は、ルート秘密鍵保持部101に保持されているルート秘密鍵を署名生成鍵として用い、証明書生成部108から受け取った証明書データに対し所定の署名生成アルゴリズムを施し、デジタル署名を生成する。署名付与部109は、証明書データにデジタル署名を付与して公開鍵証明書を生成し、生成した公開鍵証明書を、鍵情報生成部110へ出力する。
【0035】
鍵情報生成部110は、メモリカード製造装置20に送付する鍵情報を生成する。
【0036】
ここで、鍵情報生成部110が生成する鍵情報のデータ構成を
図4に示す。同図に示すように、鍵情報130は、秘密鍵131、公開鍵証明書132、最低バージョン情報133およびデジタル署名134から構成される。公開鍵証明書132は、証明書ID135、公開鍵136およびデジタル署名137から構成される。
【0037】
秘密鍵131は、鍵情報生成部110が鍵ペア生成部106から受け取った秘密鍵である。公開鍵証明書132は、鍵情報生成部110が署名付与部109から受け取った公開鍵証明書である。鍵情報生成部110は、バージョン管理部103で管理している「最低バージョン情報」を読み出して、最低バージョン情報133とする。さらに、鍵情報生成部110は、ルート秘密鍵保持部101に保持されているルート秘密鍵を署名生成鍵として用い、秘密鍵131、公開鍵証明書132および最低バージョン情報133を結合したデータに対して所定の署名生成アルゴリズムを施し、デジタル署名134を生成する。
【0038】
鍵情報生成部110は、秘密鍵131、公開鍵証明書132、最低バージョン情報133およびデジタル署名134から鍵情報130を生成し、生成した鍵情報130を、鍵情報送信部111へ出力する。
【0039】
鍵情報送信部111は、メモリカード製造装置20から要求を受けると、鍵情報130をメモリカード製造装置20へ送信する。
【0040】
無効化リスト送信部112は、メモリカード製造装置20から要求を受けると、無効化リスト120を、メモリカード製造装置20へ送信する。
(2)メモリカード製造装置20
図5に示すように、メモリカード製造装置20は、無効化リスト送信部201と鍵情報送信部202とから構成される。
【0041】
無効化リスト送信部201は、鍵発行局10から無効化リスト120を取得し、取得した無効化リスト120を、メモリカード30のコントローラ301に送信する。
【0042】
鍵情報送信部202は、鍵発行局10から鍵情報130を取得し、取得した鍵情報130を、メモリカード30のコントローラ301に送信する。
(3)メモリカード30
図5に示すように、メモリカード30は、コントローラ301と記憶部302とから構成される。
【0043】
コントローラ301は、メモリカード製造業者がコントローラ製造業者から取得したLSIデバイスであり、内部処理はセキュアに守られて、外部から情報を読み出すことができない。
【0044】
記憶部302は、メモリカード製造業者がフラッシュ製造業者から取得したフラッシュメモリである。記憶部302へのデータの書き込み、および、記憶部302からのデータの読み出しは、コントローラ301を介して行われる。
【0045】
コントローラ301は、ルート公開鍵保持部303、無効化リスト受付部304、鍵情報受付部305、署名検証部306、鍵情報書込部307、バージョン検証部308および無効化リスト書込部309から構成される。
【0046】
ルート公開鍵保持部303は、鍵発行局10が保持しているルート秘密鍵と鍵ペアを成すルート公開鍵を保持している。ルート公開鍵は、鍵発行局10によって生成されたデジタル署名の検証に用いられる。なお、一例として、ルート公開鍵保持部303は、コントローラ301内部にハードロジックで構成してもよい。
【0047】
無効化リスト受付部304は、メモリカード製造装置20の無効化リスト送信部201から無効化リスト120を受け取る。無効化リスト受付部304は、受け取った無効化リスト120を、署名検証部306に出力する。
【0048】
鍵情報受付部305は、メモリカード製造装置20の鍵情報送信部202から鍵情報130を受け取る。鍵情報受付部305は、受け取った鍵情報130を、署名検証部306に出力する。
【0049】
署名検証部306は、ルート公開鍵保持部303が保持しているルート公開鍵を用いて、無効化リスト120に含まれるデジタル署名124、鍵情報130に含まれるデジタル署名134、公開鍵証明書132に含まれるデジタル署名137のそれぞれに対して、所定の署名検証アルゴリズムを施して、署名検証を行う。
【0050】
鍵情報書込部307は、鍵情報130に含まれるデジタル署名134および公開鍵証明書132に含まれるデジタル署名137の署名検証に成功した場合に、鍵情報130を、記憶部302に書き込む。
【0051】
バージョン検証部308は、署名検証部306から無効化リスト120を受け取り、受け取った無効化リスト120からバージョン121を読み出す。また、バージョン検証部308は、記憶部302に記憶されている鍵情報130から最低バージョン情報133を読み出す。
【0052】
バージョン検証部308は、バージョン121が、最低バージョン情報133よりも古いか否か判断する。無効化リスト120のバージョン121が、最低バージョン情報133よりも古い場合には、バージョン検証部308は、古い無効化リストが不正に書き込まれようとしていると判断し、無効化リスト120を無効化リスト書込部309へ出力せずに破棄する。無効化リスト120のバージョン121が、最低バージョン情報133と同一かまたは新しい場合、バージョン検証部308は、無効化リスト120を無効化リスト書込部309へ出力する。
【0053】
無効化リスト書込部309は、バージョン検証部308から無効化リスト120を受け取ると、受け取った無効化リスト120を記憶部302へ書き込む。
<動作>
ここでは、
図6を用いて、コントローラ301による鍵情報および無効化リストの書き込み処理の動作について説明する。
【0054】
無効化リスト受付部304は、無効化リストを受け付ける(ステップS1)。鍵情報受付部305は、鍵情報を受け付ける(ステップS2)。
【0055】
署名検証部306は、ルート公開鍵保持部303に保持されているルート公開鍵を用いて、鍵情報のデジタル署名を検証する(ステップS3)。署名検証に失敗した場合(ステップS4でNO)、コントローラ301は処理を終了する。
【0056】
署名検証に成功した場合(ステップS4でYES)、署名検証部306は、鍵情報から公開鍵証明書を抽出し(ステップS5)、ルート公開鍵を用いて、公開鍵証明書のデジタル署名を検証する(ステップS6)。署名検証に失敗した場合(ステップS7でNO)、コントローラ301は処理を終了する。
【0057】
署名検証に成功した場合(ステップS7でYES)、鍵情報書込部307は、記憶部302に鍵情報を書き込む(ステップS8)。
【0058】
続いて、署名検証部306は、ルート公開鍵を用いて、ステップS1で受け取った無効化リストのデジタル署名を検証する(ステップS9)。署名検証に失敗した場合(ステップS10でNO)、コントローラ301は処理を終了する。
【0059】
署名検証に成功した場合(ステップS10でYES)、バージョン検証部308は、記憶部302に記憶されている鍵情報から「最低バージョン情報」を抽出する(ステップS11)。さらに、バージョン検証部308は、無効化リストから「バージョン」を読み出す。バージョン検証部308は、無効化リストのバージョンが、最低バージョン情報より古いか否かを判断するバージョン検証処理を行う(ステップS12)。
【0060】
無効化リストのバージョンが最低バージョン情報より古い場合(ステップS13でYES)、コントローラ301は、処理を終了する。無効化リストの場ジョンが最低バージョン情報と同一若しくは新しい場合(ステップS13でNO)、無効化リスト書込部309は、記憶部302に無効化リストを書き込む(ステップS14)。
<変形例>
ここでは、実施の形態1で説明したメモリカード30の変形例として、メモリカード30aについて説明する。
【0061】
図7は、メモリカード30aの構成を示すブロック図である。ここでは、
図5に記載したメモリカード30と同一の機能を有する構成要素については、
図5と同一の符号を付して、説明を省略する。
【0062】
変形例に係るメモリカード30aのコントローラ301aは、コントローラ301の構成要素に加え、コントローラ固有鍵保持部311および暗号化部312を備えている。
【0063】
コントローラ固有鍵保持部311は、コントローラ301aに固有の情報であるコントローラ固有鍵を保持している。コントローラ固有鍵は、例えば、コントローラ301aの製造後に、電子回路の一部を電気的に焼き切って、個体別に異なる番号を刻むeFUSEといった技術を用いて書き込まれている。
【0064】
コントローラ301aの署名検証部306は、鍵情報に含まれるデジタル署名の検証に成功すると、鍵情報を暗号化部312へ出力する。暗号化部312は、鍵情報に含まれる秘密鍵を、コントローラ固有鍵保持部311に保持されているコントローラ固有鍵で暗号化し、暗号化秘密鍵を生成する。そして、鍵情報書込部307は、記憶部302に、暗号化秘密鍵、公開鍵証明書、最低バージョン情報およびデジタル署名からなる鍵情報を書き込む。
【0065】
すなわち、変形例に係るコントローラ301aは、暗号化秘密鍵を記憶部302に書き込む。ここで、暗号化に用いる鍵は、コントローラ301aに固有の鍵であるから、記憶部302に格納されている暗号化秘密鍵をコントローラ301a以外の他のコントローラで復号することはできない。よって、コントローラ301aを用いると、秘密鍵の安全性をより高めることができる。
2.実施の形態2
本発明に係る第二の実施の形態であるコンテンツ再生システム2について説明する。
<構成>
コンテンツ再生システム2は、
図8に示すように、本発明に係る情報処理装置としてのメモリカード40と本発明に係る情報処理装置としての再生装置50とから構成される。
【0066】
メモリカード40には、デジタルコンテンツが記録されている。再生装置50は、メモリカード40からデジタルコンテンツを読み出して再生する装置である。
【0067】
メモリカード40および再生装置50は、共に、実施の形態1で説明した鍵発行局10が発行したPKIの鍵ペアおよび無効化リストを保持している。メモリカード40および再生装置50は、鍵ペアおよび無効化リストを用いて相互認証を行った後に、暗号通信によりコンテンツを送受信する。
(1)メモリカード40
図9に示すように、メモリカード40は、コントローラ401と記憶部402とから構成される。
【0068】
コントローラ401は、LSIデバイスであり、内部処理はセキュアに守られて、外部から情報を読み出すことができない。記憶部402は、フラッシュメモリである。記憶部402へのデータの書き込み、および、記憶部402からのデータの読み出しは、コントローラ401を介して行われる。
【0069】
記憶部402には、秘密鍵411、公開鍵証明書412、最低バージョン情報413およびデジタル署名414から構成される鍵情報410と、無効化リスト415と、コンテンツ鍵416と、暗号化コンテンツ417とが格納されている。公開鍵証明書412のデータ構成は、
図4の公開鍵証明書132と同様であり、無効化リスト415のデータ構成は、
図3の無効化リスト120と同様である。秘密鍵411と、公開鍵証明書412に含まれる公開鍵とが、PKIの鍵ペアを構成する。暗号化コンテンツ417は、コンテンツ鍵416を暗号鍵として用い、平文コンテンツに所定の暗号化アルゴリズムを施して生成された暗号化データである。
【0070】
コントローラ401は、ルート公開鍵保持部421、バージョン検証部422、認証鍵交換部423、無効化リスト更新部426、無効化判定部427、コンテンツ鍵送信部428および暗号化コンテンツ送信部429から構成される。認証鍵交換部423は、認証部424およびセッション鍵生成部425を含む。
【0071】
ルート公開鍵保持部421は、鍵発行局10が保持しているルート秘密鍵と鍵ペアを成すルート公開鍵を保持している。ルート公開鍵は、鍵発行局10によって生成されたデジタル署名の検証に用いられる。なお、一例として、ルート公開鍵保持部421は、コントローラ401内部にハードロジックで構成してもよい。
【0072】
バージョン検証部422は、公開鍵証明書412に含まれる最低バージョン情報と無効化リスト415に含まれるバージョンとを比較し、無効化リスト415の正当性を確認する。具体的に、バージョン検証部422は、無効化リストのバージョンが、最低バージョン情報よりも古い場合には、何らかの攻撃や不正が行われたと判断し、再生装置50との間での暗号通信の確立を中止する。なお、バージョン検証部422によるバージョン検証処理は、再生装置50との通信の都度行ってもよいし、通信の都度行うのではなく、初期時点や無効化リスト更新時点に行うことも可能である。
【0073】
認証部424は、ルート公開鍵保持部421が保持するルート公開鍵を用いて、再生装置50から受信した公開鍵証明書に含まれるデジタル署名を検証する。
【0074】
なお、署名生成および署名検証のアルゴリズムは、素因数分解の困難性を根拠とするDSA(Digital Signature Algorithm)や、楕円曲線上での離散対数問題を根拠とするEC−DSA(Eliptic Curve Digital Signature Algorithm)などがある。これらのアルゴリズムを用いてもよいし、他のアルゴリズムを用いてもよい。実施の形態2では、一例として、160ビットの鍵長を持つEC−DSAを用いる。
【0075】
検証の結果、再生装置50の公開鍵証明書に含まれるデジタル署名が正しくないと判定された場合には、再生装置50は不正な装置であると見なし、再生装置50との間での暗号通信の確立を中止する。
【0076】
また、認証部424は、再生装置50との間でチャレンジ−レスポンス認証を行う。チャレンジ‐レスポンス認証についての詳細は後述する。チャレンジ−レスポンス認証が失敗した場合には、再生装置50は不正な装置であるか、通信経路において何らかの攻撃があったものと見なし、再生装置50との間での暗号通信の確立を中止する。
【0077】
セッション鍵生成部425は、認証部424によるチャレンジ−レスポンス認証において生成した情報および再生装置50から受信した情報などを用いて、再生装置50と共有するセッション鍵を生成する。セッション鍵の具体的な生成方法については後述する。
【0078】
無効化リスト更新部426は、再生装置50との間で自機が保持している無効化リストを相互に送受信する。無効化リスト更新部426は、無効化リスト415を送信するときは、セッション鍵生成部425により生成されたセッション鍵で暗号化した後に送信する。また、再生装置50から受信する無効化リストはセッション鍵で暗号化されているので、無効化リスト更新部426は、セッション鍵で復号する。
【0079】
ここでは、暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を用いることとする。しかし、ここで用いる暗号化アルゴリズムはAESに限るものではなく、十分な鍵長がある共通鍵暗号方式であれば、他のアルゴリズムでもよい。また、暗号化ではなくMAC(Message Authentication Code)など、無効化リストを古いバージョンに置換する攻撃(「ロールバック攻撃」と言う。)を防止できる方法でれば、他の方法を用いてもよい。
【0080】
さらに、無効化リスト更新部426は、無効化リストの全体を送受信してもよいし、最初に無効化リストに含まれる「バージョン」のみを送受信し、その後、必要に応じて無効化リストの全体を送信または受信するとしてもよい。この場合、無効化リスト更新部426は、バージョンを送信する際には、セッション鍵を用いて暗号化して送信し、残りの無効化リストのデータを送信する際には、暗号化せずに平文のまま送信するとしてもよい。これにより、データサイズの大きな無効化リストの全体を暗号化する処理を省略することができる。
【0081】
無効化リスト更新部426は、自機が保持する無効化リスト415のバージョンと、再生装置50が保持する無効化リストのバージョンとを比較する。そして、再生装置50が保持する無効化リストの方が新しいと判定した場合には、無効化リスト更新部426は、記憶部402に記憶されている無効化リスト415を、再生装置50から受信した無効化リストで更新する。
【0082】
なお、無効化リスト更新部426は、記憶部402の無効化リストを更新する前に、再生装置50から受信した無効化リストに含まれるデジタル署名を、ルート公開鍵を用いて検証してもよい。そして、署名検証に成功した場合にのみ、記憶部402の無効化リスト415を更新し、署名検証に失敗した場合には、無効化リスト415を更新せず、受信した無効化リストは不正であると見なして破棄するとしてもよい。
【0083】
無効化判定部427は、再生装置50から受信した公開鍵証明書に含まれる証明書IDが、記憶部402に記憶されている無効化リストに含まれるか否かを判定する。再生装置50の証明書IDが無効化リストに含まれる場合、再生装置50は不正な装置であるため、コントローラ401は、暗号通信の確立やコンテンツの送信を拒絶する。
【0084】
コンテンツ鍵送信部428は、認証部424による相互認証処理および無効化判定部427による無効化判定処理が正常に終了した場合に、記憶部402からコンテンツ鍵416を読み出す。そして、コンテンツ鍵送信部428は、コンテンツ鍵416をセッション鍵で暗号化して暗号化コンテンツ鍵を生成し、暗号化コンテンツ鍵を再生装置50へ送信する。なお、ここでは、暗号化アルゴリズムの一例としてAESを用いることとする。
【0085】
暗号化コンテンツ送信部429は、記憶部402から暗号化コンテンツ417を読み出し、暗号化コンテンツ417を再生装置50へ送信する。
(2)再生装置50
図10に示すように、再生装置50は、記憶部502、ルート公開鍵保持部521、バージョン検証部522、認証鍵交換部523、無効化リスト更新部526、無効化判定部527、コンテンツ鍵受信部528、暗号化コンテンツ受信部529、復号部530、復号部531、および再生部532から構成される。
【0086】
認証鍵交換部523は、認証部524およびセッション鍵生成部525を含む。
【0087】
再生装置50は、具体的には、プロセッサ、ハードディスク、ROM、RAMなどを備えるコンピュータシステムである。ROMにはコンピュータプログラムが記録されており、プロセッサがRAMを用いてコンピュータプログラムを実行することにより、再生装置50はその機能を達成する。
【0088】
記憶部502は、秘密鍵511、公開鍵証明書512、最低バージョン情報513およびデジタル署名514から構成される鍵情報510と、無効化リスト515とを格納している。公開鍵証明書512のデータ構成は、
図4の公開鍵証明書132と同様であり、無効化リスト515のデータ構成は、
図3の無効化リスト120と同様である。秘密鍵511と、公開鍵証明書512に含まれる公開鍵とが、PKIの鍵ペアを構成する。
【0089】
ルート公開鍵保持部521は、鍵発行局10が保持しているルート秘密鍵と鍵ペアを成すルート公開鍵を保持している。ルート公開鍵は、鍵発行局10によって生成されたデジタル署名の検証に用いられる。
【0090】
バージョン検証部522は、公開鍵証明書512に含まれる最低バージョン情報と無効化リスト515に含まれるバージョンとを比較し、無効化リスト515の正当性を確認する。具体的に、バージョン検証部522は、無効化リストのバージョンが、最低バージョン情報よりも古い場合には、何らかの攻撃や不正が行われたと判断し、メモリカード40との間での暗号通信の確立を中止する。なお、バージョン検証部522によるバージョン検証処理は、メモリカード40との通信の都度行ってもよいし、通信の都度行うのではなく、初期時点や無効化リスト更新時点に行うことも可能である。
【0091】
認証部524は、ルート公開鍵保持部521が保持するルート公開鍵を用いて、メモリカード40から受信した公開鍵証明書に含まれるデジタル署名を検証する。ここでは、署名生成および署名検証のアルゴリズムとして、EC−DSAを用いる。
【0092】
署名検証の結果、メモリカード40の公開鍵証明書に含まれるデジタル署名が正しくないと判定された場合には、メモリカード40は不正な装置であると見なし、メモリカード40との間での暗号通信の確立を中止する。
【0093】
また、認証部524は、メモリカード40との間でチャレンジ‐レスポンス認証を行う。チャレンジ‐レスポンス認証についての詳細は後述する。チャレンジ‐レスポンス認証が失敗した場合には、メモリカード40は不正な装置であるか、通信経路において何らかの攻撃があったものと見なし、メモリカード40との間での暗号通信の確立を中止する。
【0094】
セッション鍵生成部525は、認証部524によるチャレンジ‐レスポンス認証において生成した情報およびメモリカード40から受信した情報などを用いて、メモリカード40と共有するセッション鍵を生成する。セッション鍵の具体的な生成方法については後述する。
【0095】
無効化リスト更新部526は、メモリカード40との間で自機が保持している無効化リストを相互に送受信する。無効化リスト更新部526は、無効化リスト515を送信するときは、セッション鍵生成部525により生成されたセッション鍵で暗号化した後に送信する。また、メモリカード40から受信する無効化リストはセッション鍵で暗号化されているので、無効化リスト更新部526は、セッション鍵で復号する。ここでは、暗号化アルゴリズムとしてAESを用いることとする。
【0096】
さらに、無効化リスト更新部526は、無効化リストの全体を送受信してもよいし、最初に無効化リストに含まれる「バージョン」のみを送受信し、その後、必要に応じて無効化リストの全体を送信または受信するとしてもよい。この場合、無効化リスト更新部526は、メモリカード40の無効化リスト更新部426と同様に、バージョンを送信する際には、セッション鍵を用いて暗号化して送信し、残りの無効化リストのデータを送信する際には、暗号化せずに平文のまま送信するとしてもよい。
【0097】
無効化リスト更新部526は、自機が保持する無効化リスト515のバージョンと、メモリカード40が保持する無効化リストのバージョンとを比較する。そして、メモリカード40が保持する無効化リストの方が新しいと判定した場合には、無効化リスト更新部526は、記憶部502に記憶されている無効化リスト515を、メモリカード40から受信した無効化リストで更新する。
【0098】
なお、無効化リスト更新部526は、記憶部502の無効化リストを更新する前に、メモリカード40から受信した無効化リストに含まれるデジタル署名を、ルート公開鍵を用いて検証してもよい。そして、署名検証に成功した場合にのみ、記憶部502の無効化リスト515を更新し、署名検証に失敗した場合には、無効化リスト515を更新せず、受信した無効化リストは不正であると見なして破棄するとしてもよい。
【0099】
無効化判定部527は、メモリカード40から受信した公開鍵証明書に含まれる証明書IDが、記憶部502に記憶されている無効化リストに含まれるか否かを判定する。メモリカード40の証明書IDが無効化リストに含まれる場合、メモリカード40は不正な装置であるため、再生装置50は、暗号通信の確立や暗号化コンテンツの復号処理を中止する。
【0100】
コンテンツ鍵受信部528は、メモリカード40から暗号化コンテンツ鍵を受信する。暗号化コンテンツ鍵は、コンテンツ鍵416がセッション鍵により暗号化されたデータである。
【0101】
暗号化コンテンツ受信部529は、メモリカード40から暗号化コンテンツを受信する。暗号化コンテンツは、コンテンツがコンテンツ鍵により暗号化されたデータである。
【0102】
復号部530は、認証部524による相互認証処理および無効化判定部527による無効化判定処理が正常に終了した場合に、コンテンツ鍵受信部528が受信した暗号化コンテンツ鍵をセッション鍵を用いて復号し、コンテンツ鍵を生成する。ここでは、暗号化アルゴリズムとしてAESを用いることとする。
【0103】
復号部531は、復号部530からコンテンツ鍵を受け取り、暗号化コンテンツ受信部529から暗号化コンテンツを受け取る。復号部531は、暗号化コンテンツをコンテンツ鍵を用いて復号し、コンテンツを生成する。
【0104】
再生部532は、復号部531により復号されたコンテンツにデコード処理等して、図示していない外部のディスプレイに出力する。
<動作>
ここでは、
図11〜
図14のフローチャートを用いて、コンテンツ再生システム2の動作について説明する。
【0105】
再生装置50の認証部524は、160ビットのランダム値Hn(Host nonce)を生成する(ステップS101)。なお、実施の形態2では、鍵長160ビットのEC−DSAを前提としているため、160ビットのランダム値を生成するが、他のアルゴリズムを用いる場合、ここで生成されるランダム値は160ビットではないことは言うまでもない。
【0106】
認証部524は、ステップS101で生成した160ビットのランダム値に記憶部502が保持している公開鍵証明書512を付加する。これを、チャレンジデータとしてメモリカード40に送信する(ステップS102)。なお、
図11では、公開鍵証明書512を「Hcert(Host Certificate)」と記載している。また、「||」は連結を意味する記号である。
【0107】
メモリカード40は、再生装置50からチャレンジデータを受信すると、バージョン検証部422によるバージョン検証処理を行う(ステップS103)。バージョン検証処理の詳細については後述する。
【0108】
バージョン検証処理で無効化リストが不正であると判定されると(ステップS104でNO)、メモリカード40は処理を停止する。バージョン検証処理で無効化リストが正当であると判定されると(ステップS104でYES)、ステップS105へ進む。
【0109】
認証部424は、ルート公開鍵を用いて、ステップS102で受信したチャレンジデータに含まれる公開鍵証明書Hcertの検証処理を行う(ステップS105)。公開鍵証明書Hcertの検証処理に失敗すると(ステップS106でNO)、メモリカード40は処理を停止する。公開鍵証明書Hcertの検証処理に成功すると(ステップS106でYES)、認証部424は、160ビットのランダム値Mn(Media nonce)を生成する(ステップS107)。
【0110】
認証部424は、ステップS107で生成した160ビットのランダム値Hnに対し、記憶部402が保持している公開鍵証明書412を付加する。これを、チャレンジデータとして、再生装置50へ送信する(ステップS108)。なお、
図11では、公開鍵証明書412を「Mcert(Media Certificate)」と記載している。
【0111】
再生装置50は、メモリカード40からチャレンジデータを受信すると、バージョン検証部522によるバージョン検証処理を行う(ステップS109)。バージョン検証処理の詳細については後述する。
【0112】
バージョン検証処理で無効化リストが不正であると判定されると(ステップS110でNO)、再生装置50は処理を停止する。バージョン検証処理で無効化リストが正当であると判定されると(ステップS110でYES)、ステップS117へ進む。
【0113】
メモリカード40の認証部424は、ステップS108でチャレンジデータを送信した後、160ビットのランダム値Mk(Media Key)を生成する(ステップS113)。なお、EC−DH以外の他のアルゴリズムを用いる場合には、ステップS113で生成するランダム値は、160ビットとは限らない。
【0114】
認証部424は、ステップS113で生成したランダム値Mkに対して、本システムにおいて予め定められている楕円暗号のパラメータであるベースポイントGを用いて、Mv=Mk・Gを計算する(ステップS114)。
【0115】
さらに、認証部424は、ステップS102で受信したチャレンジデータに含まれるHnと、ステップS114で算出したMvとを連結したデータであるHn||Mvに対して、記憶部402に記憶されている秘密鍵(Mpriv)411を用いてデジタル署名(Sign(Mpriv,Hn||Mv))を生成する(ステップS115)。
【0116】
認証部424は、ステップS114で算出したMvと、ステップS115で生成したデジタル署名Sign(Mpriv,Hn||Mv)とを連結したデータをレスポンスデータとして、再生装置50へ送信する(ステップS116)。
【0117】
再生装置50は、メモリカード40からレスポンスデータを受信する。認証部524は、受信したレスポンスデータに含まれるデジタル署名Sign(Mpriv,Hn||Mv)の検証を行う(ステップS117)。具体的に、認証部524は、受信したレスポンスデータからMvを抽出し、ステップS101で生成したHnとMvとを連結したデータに、メモリカード40の公開鍵証明書Mcertに含まれる公開鍵を用いて、デジタル署名を検証する。
【0118】
デジタル署名の検証に失敗すると(ステップS118でNO)、再生装置50は、処理を停止する。デジタル署名の検証に成功すると(ステップS118でYES)、認証部524は、160ビットのランダム値Hk(Host Key)を生成する(ステップS119)。
【0119】
認証部524は、ステップS119で生成したランダム値Hkに対して、本システムにおいて予め定められている楕円暗号のパラメータであるベースポイントGを用いて、Hv=Hk・Gを計算する(ステップS120)。
【0120】
さらに、認証部524は、ステップS108で受信したチャレンジデータにう含まれるMnと、ステップS120で算出したHvとを連結したデータであるMn||Hvに対して、記憶部502に記憶されている秘密鍵(Hpriv)511を用いてデジタル署名(Sign(Hpriv,Mn||Hv))を生成する(ステップS121)。
【0121】
認証部524は、ステップS120で算出したHvと、ステップS121で生成したデジタル署名Sign(Hpriv,Mn||Hv)とを連結したデータをレスポンスデータとして、メモリカード40へ送信する(ステップS122)。
【0122】
メモリカード40は、再生装置50からレスポンスデータを受信する。認証部424は、受信したレスポンスデータに含まれるデジタル署名Sign(Hpriv,Mn||Hv)の検証を行う(ステップS123)。具体的に、認証部424は、受信したレスポンスデータからHvを抽出し、ステップS108で生成したMnとHvとを連結したデータに、再生装置50の公開鍵証明書Hcertに含まれる公開鍵を用いて、デジタル署名を検証する。
【0123】
デジタル署名の検証に失敗すると(ステップS124でNO)、メモリカード40は、処理を停止する。デジタル署名の検証に成功すると(ステップS124でYES)、セッション鍵生成部425は、ステップS113で生成したランダム値Mkと、ステップS112で受信したレスポンスデータに含まれるHvとから、Bk=Mk・Hvを計算して、セッション鍵Bk(Bus Key)を生成する(ステップS125)。
【0124】
再生装置50のセッション鍵生成部525も同様に、ステップS119で生成したランダム値Hkと、ステップS116で受信したレスポンスデータに含まれるMvとから、Bk=Hk・Mvを計算して、セッション鍵Bkを生成する(ステップS126)。
【0125】
続いて、メモリカード40の無効化リスト更新部426は、記憶部402に記憶されている無効化リスト415(Mcrl)を、ステップS125で生成したセッション鍵Bkで暗号化し、暗号化無効化リストEnc(Bk,Mcrl)を生成する(ステップS127)。そして、無効化リスト更新部426は、暗号化無効化リストEnc(Bk,Mcrl)を再生装置50へ送信する(ステップS128)。
【0126】
一方、再生装置50の無効化リスト更新部526も同様に、記憶部502に記憶されている無効化リスト515(Hcrl)を、ステップS126で生成したセッション鍵Bkで暗号化し、暗号化無効化リストEnc(Bk,Hcrl)を生成する(ステップS129)。そして、無効化リスト更新部526は、暗号化無効化リストEnc(Bk,Hcrl)をメモリカード40へ送信する(ステップS130)。
【0127】
無効化リスト更新部526は、ステップS128で受信したEnc(Bk,Mcrl)を、セッション鍵Bkを用いて復号する(ステップS131)。
【0128】
無効化リスト更新部426は、ステップS130で受信したEnc(Bk,Hcrl)を、セッション鍵Bkを用いて復号する(ステップS132)。
【0129】
続いて、無効化リスト更新部426は、McrlのバージョンとHcrlのバージョンとを比較する(ステップS133)。
【0130】
Mcrlのバージョンが、Hcrlのバージョンより新しい場合、更新する必要がないので(ステップS134でNO)、ステップS143へ進む。
【0131】
Hcrlのバージョンが、Mcrlのバージョンより新しい場合、更新する必要があるが(ステップS134でYES)、更新処理に先立ち、無効化リスト更新部426は、ルート公開鍵を用いてHcrlに含まれるデジタル署名を検証する(ステップS135)。署名検証に失敗すると(ステップS136でNO)、更新処理は行わず、ステップS143へ進む。署名検証に成功すると(ステップS136でYES)、無効化リスト更新部426は、記憶部402に記憶されている無効化リストMcrlを、再生装置50から受信した無効化リストHcrlで更新する(ステップS137)。
【0132】
一方で、再生装置50の無効化リスト更新部526も同様に、McrlのバージョンとHcrlのバージョンとを比較する(ステップS138)。
【0133】
Hcrlのバージョンが、Mcrlのバージョンより新しい場合、更新する必要がないので(ステップS139でNO)、ステップS148へ進む。
【0134】
Mcrlのバージョンが、Hcrlのバージョンより新しい場合、更新する必要があるが(ステップS139でYES)、更新処理に先立ち、無効化リスト更新部526は、ルート公開鍵を用いてMcrlに含まれるデジタル署名を検証する(ステップS140)。署名検証に失敗すると(ステップS141でNO)、更新処理は行わず、ステップS148へ進む。署名検証に成功すると(ステップS141でYES)、無効化リスト更新部526は、記憶部502に記憶されている無効化リストHcrlを、メモリカード40から受信した無効化リストMcrlで更新する(ステップS142)。
【0135】
次に、メモリカード40の無効化判定部427は、記憶部402に記憶されている無効化リストを用いて、再生装置50の公開鍵証明書Hcertの有効性を確認する(ステップS143)。具体的に、無効化判定部427は、無効化リストにHcertの証明書IDが記録されているか否か判断する。
【0136】
無効化リストにHcertの証明書IDが記録されている場合(ステップS144でNO)、再生装置50は不正な装置であると見なし、メモリカード40は処理を停止する。
【0137】
無効化リストにHcertの証明書IDが記録されていない場合(ステップS144でYES)、コンテンツ鍵送信部428は、記憶部402からコンテンツ鍵を読み出す(ステップS145)。コンテンツ送信部428は、読み出したコンテンツ鍵を、ステップS125で生成したセッション鍵Bkを用いて暗号化し、暗号化コンテンツ鍵Enc(Bk,Kc)を生成する(ステップS146)。続いて、暗号化コンテンツ送信部429は、記憶部402から暗号化コンテンツを読み出す(ステップS147)。
【0138】
コンテンツ鍵送信部428は、暗号化コンテンツ鍵Enc(Bk,Kc)を、再生装置50へ送信し、暗号化コンテンツ送信部429は、暗号化コンテンツEnc(Kc,Cont)を、再生装置50へ送信する(ステップS148)。
再生装置50のコンテンツ鍵受信部528は、暗号化コンテンツ鍵Enc(Bk,Kc)を受信し、暗号化コンテンツ受信部529は、暗号化コンテンツEnc(Kc,Cont)を受信する。
【0139】
次に、再生装置50の無効化判定部527は、記憶部502に記憶されている無効化リストを用いて、メモリカード40の公開鍵証明書Mcertの有効性を確認する(ステップS149)。具体的に、無効化判定部527は、無効化リストにMcertの証明書IDが記録されているか否か判断する。
【0140】
無効化リストにMcertの証明書IDが記録されている場合(ステップS150でNO)、メモリカード40は不正な装置であると見なし、再生装置50は処理を停止する。
【0141】
無効化リストにMcertの証明書IDが記録されていない場合(ステップS150でYES)、復号部530は、暗号化コンテンツ鍵を、ステップS126で生成したセッション鍵Bkを用いて復号し、コンテンツ鍵を生成する(ステップS151)。続いて、復号部531は、暗号化コンテンツを、ステップS151で生成したコンテンツ鍵を用いて復号し、コンテンツを生成する(ステップS152)。そして、再生部532は、コンテンツを再生する(ステップS153)。
【0142】
最後に、
図14を用いて、
図11のステップS103およびステップS109のバージョン検証処理の詳細について説明する。
【0143】
図14に示す処理は、メモリカード40のバージョン検証部422および再生装置50のバージョン検証部522により実行される。バージョン検証部422および522共に同様の処理を行うので、ここでは、便宜上符号を省略して説明する。
【0144】
バージョン検証部は、記憶部に記憶されている鍵情報を読み出し、鍵情報に含まれるデジタル署名を検証する(ステップS201)。署名検証に失敗すると(ステップS202でNO)、ステップS206へ進む。署名検証に成功すると(ステップS202でYES)、バージョン検証部は、記憶部に記憶されている無効化リストから「バージョン」を読み出す(ステップS203)。さらに、バージョン検証部は、鍵情報から「最低バージョン情報」を読み出す(ステップS202)。
【0145】
そして、無効化リストのバージョンが最低バージョン情報よりも古いか否か判断する。無効化リストのバージョンが最低バージョン情報よりも古い場合(ステップS205でYES)、バージョン検証部は、無効化リストが不正であると判断する(ステップS206)。無効化リストのバージョンが最低バージョン情報と同じか若しくは新しい場合(ステップS205でNO)、バージョン検証部は、無効化リストが正当であると判断する(ステップS207)。
【0146】
バージョン検証部は、無効化リストのバージョンと最低バージョン情報とを比較することにより、無効化リストの正当性を検証するが、最低バージョン情報自体が不正に改ざんされていると、バージョン検証処理の実効性が失われる。そこで、バージョン検証部は、無効化リストのバージョンと最低バージョン情報とを比較する前に、鍵情報のデジタル署名を検証することにより、最低バージョン情報が、鍵発行局により、鍵情報に関連付けられて生成されていることを検証することとする。
<変形例>
ここでは、実施の形態2で説明したメモリカード40の変形例として、メモリカード40aについて説明する。
【0147】
図15は、メモリカード40aの構成を示すブロック図である。ここでは、
図9に記載したメモリカード40と同一の機能を有する構成要素については、
図9と同一の符号を付して、説明を省略する。
【0148】
変形例に係るメモリカード40aのコントローラ401aは、コントローラ401の構成要素に加え、コントローラ固有鍵保持部431および復号部432を備えている。コントローラ固有鍵保持部431は、コントローラ401aに固有の情報であるコントローラ固有鍵を保持している。コントローラ固有鍵は、例えば、コントローラ401aの製造後に、電子回路の一部を電気的に焼ききって、個体別に異なる番号を刻むeFUSEといった技術を用いて書き込まれている。
【0149】
変形例に係る鍵情報410aは、秘密鍵がコントローラ固有鍵で暗号された暗号化秘密鍵411aを含む。
【0150】
復号部432はコントローラ鍵を用いて暗号化秘密鍵を復号し、復号した秘密鍵を認証部424に出力する。
【0151】
すなわち、変形例に係るメモリカード40aは、記憶部402に暗号化秘密鍵を保持しており、認証部424にて秘密鍵を用いる場合には、復号部432にて復号処理を行う。平文の秘密鍵がコントローラ401aの外部に出力されることが無いので、コントローラ401aを用いると、秘密鍵の安全性をより高めることができる。
<その他の変形例>
(1)実施の形態1および実施の形態2では、最低バージョン情報として、無効化リストの「バージョン」を用いているが、本発明はこれに限定されない。最低バージョン情報として、既に発行されている最新の無効化リストの発行日、最新の無効化リストに登録されている証明書IDの数、最新の無効化リストのサイズなどを用いてもよい。
(2)実施の形態1および実施の形態2では、ルート公開鍵は、コントローラ内に保持されているが、この構成は必須ではない。ルート公開鍵は、メモリカード製造業者によって記憶部(フラッシュメモリ)に書き込まれ、記憶部内で保持する構成でもよい。
(3)上記の実施の形態1では、
図6で説明したように、ステップS8で記憶部302に鍵情報130を書き込んだ後に、ステップS12で無効化リスト120のバージョン検証処理を行っていた。しかし、本発明はこれに限定されない。コントローラ301は、記憶部302に鍵情報130を書き込む前に、無効化リスト120のバージョン検証処理を行うとしてもよい。そして、バージョン検証処理の結果、無効化リスト120のバージョンが最低バージョン情報よりも古いと判定された場合には、無効化リスト120を無効化リスト書込部309へ出力せずに破棄すると共に、鍵情報130についても鍵情報書込部307へ出力せずに破棄するように構成してもよい。
(4)実施の形態2では、メモリカードと通信するホスト装置は、コンテンツデータを再生する再生装置であった。しかし、メモリカードと通信するホスト装置は再生装置に限定されない。メモリカードの記憶部にコンテンツデータを記録する記録装置でもよい。
(5)実施の形態2におけるバージョン検証処理では、バージョン検証部により、無効化リストのバージョンが最低バージョン情報よりも古いと判断された場合でも、セッション鍵生成部によりセッション鍵を生成し、無効化リスト更新部により無効化リスト更新処理を実行してもよい。これは、バージョン逆行を目的とした攻撃を受ける危険性があるためセキュリティの観点からは推奨できないが、記憶部に記憶されている無効化リストが何らかの原因で破損した場合の回復策としては有効である。
(6)実施の形態2では、メモリカード40と再生装置50とが相互に無効化リストを送受信する処理において、各装置は自機が保持する無効化リストをセッション鍵を用いて暗号化した後に送信していた。しかし、この構成は、本発明において必須ではない。
図3に示すように、無効化リストには鍵発行局によるデジタル署名が付与されている。そのため、デジタル署名を検証することにより無効化リストの改ざんを検出することができるので、改ざん防止という観点からは、無効化リストを暗号化せずに送受信してもよい。
(7)実施の形態2では、
図11〜
図14のフローチャートに記載したチャレンジ−レスポンス認証に先立ち、メモリカード40および再生装置50が、それぞれ、自機が保持する無効化リストのデジタル署名を検証する処理を行ってもよい。
【0152】
無効化リストのデジタル署名を検証する無効化リスト検証部は、記憶部に記憶されている無効化リストに含まれるデジタル署名を、ルート公開鍵を用いて検証する。署名検証に失敗した場合には、自機に何らかの不正や攻撃があったものと見なして相手方装置との暗号通信の確立を中止するとしてもよい。
(8)実施の形態2では、
図11〜
図14のフローチャートに記載した無効判定処理(ステップS143およびステップS149)に先立ち、自機が保持する無効化リストのデジタル署名を検証する処理を行ってもよい。署名検証に成功した場合のみ、ステップS143およびステップS149の処理を実行し、署名検証に失敗した場合には、正当な無効化リストを入手するまで、コンテンツの送受信処理を停止するなどの制御を行ってもよい。
(9)
図11〜
図14を用いて説明したチャレンジ−レスポンス認証は一例である。メモリカードおよび再生装置で送受信する一つのメッセージを複数に分割して、メモリカードおよび再生装置の通信回数を増やしてもよい。また、処理の順序についても、
図11〜
図14で示した具体例に限るものではなく、処理の順序を変更してもよい。
(10)上記の実施の形態2では、メモリカード40のバージョン検証部422は、自機の記憶部402に記憶されている無効化リストのバージョンと、自機の鍵情報に含まれる最低バージョン情報とを比較することにより、バージョン検証処理を行った。本発明は、これに限定されず、バージョン検証部422は、再生装置50から受信した無効化リストのバージョンと、自機の鍵情報410に含まれる最低バージョン情報413とを比較することにより、バージョン検証処理を行ってもよい。
【0153】
再生装置50のバージョン検証部522も同様に、メモリカード40から受信した無効化リストのバージョンと、自機の鍵情報510に含まれる最低バージョン情報513とを比較することにより、バージョン検証処理を行ってもよい。
(11)上記の実施の形態および上記の変形例を適宜組み合わせてもよい。
<補足>
以下、更に本発明の一実施形態としての情報処理装置の構成およびその変形例と効果について説明する。
(a)本発明の一実施形態に係る情報処理装置は、鍵情報を用いて認証および鍵交換処理を行う情報処理装置であって、鍵発行局により発行された前記鍵情報と、前記鍵情報が生成された時点において発行されている最新の無効化リストのバージョンを示し、前記鍵情報と関連付けられた情報であるバージョン情報とを記憶している記憶部と、外部から、バージョンが付加されている無効化リストを受け付ける無効化リスト受付部と、前記無効化リスト受付部が受け付けた前記無効化リストのバージョンと前記バージョン情報とを比較する比較部と、前記無効化リストのバージョンが、前記バージョン情報より古い場合に、所定の処理を抑制する制御部とを備えることを特徴とする。
【0154】
なお、<補足>に記載されている「鍵情報」は、上記の実施形態1および実施形態2においては、秘密鍵と公開鍵とから成る「鍵ペア」として記載されている。
【0155】
上記の構成によると、前記情報処理装置において、古いバージョンの無効化リストを用いた処理が行われることを防止することができる。
【0156】
また、仮にメーカが古いバージョンの無効化リストを情報処理装置に埋め込んだとすると、この情報処理装置は制御部により所定の処理が抑制される。したがって正常に動作しない情報処理装置が製造されることになる。そこで、上記の構成を有することにより、メーカは正常に動作しない情報処理装置が製造されるのを防止するために、新しい無効化リストを情報処理装置に埋め込むことが期待される。
(b)前記情報処理装置において、前記記憶部は、前記鍵情報と前記バージョン情報との関連付けを検証するための検証用情報を記憶しており、前記情報処理装置は、前記検証用情報を用いて、前記バージョン情報が前記鍵情報と関連するか否かを判定する検証部を備え、前記比較部は、前記検証部により前記バージョン情報が前記鍵情報に関連することが判定された後に、前記無効化リスト受付部が受け付けた前記無効化リストのバージョンと前記バージョン情報とを比較することを特徴とする。
【0157】
ここで、前記バージョン情報自体が不正に改ざんされていると、比較部および制御部による処理の実効性が失われる。
【0158】
そこで、前記情報処理装置は、比較部の処理に先立ち、前記検証用情報を用いて、バージョン情報が鍵発行局により発行された鍵情報と関連付けられているか否かを検証するので、比較部および制御部による処理の実効性を担保することができる。なお、検証用情報の具体例としては、鍵情報とバージョン情報とを連結したデータに対して、鍵発行局の秘密鍵により生成されたデジタル署名を用いることができる。
(c)前記情報処理装置は、前記無効化リスト受付部が受け付けた前記無効化リストを前記記憶部に書き込む無効化リスト書込部と、前記記憶部に記憶されている前記無効化リストを用いて、他の装置が無効化されているか否かを判定する無効化判定部とを備え、前記制御部は、前記無効化リストのバージョンが、前記バージョン情報より古い場合に、前記無効化リスト書込部による前記無効化リストの書き込みを抑制することを特徴とする。
【0159】
この構成によると、情報処理装置のメーカが、誤ってまたは故意に情報処理装置に古いバージョンの無効化リストを格納するのを抑制することができる。さらに、古いバージョンの無効化リストを用いて無効化判定処理が行われることを抑制することができる。
(d)前記情報処理装置は、固有鍵を保持する固有鍵保持部と、前記鍵発行局から発行された前記鍵情報のうちの少なくとも一部を、前記固有鍵保持部に保持された前記固有鍵で暗号化する暗号化部と、暗号化された前記鍵情報を前記記憶部に書き込む鍵情報書込部とを備えることを特徴とする。
【0160】
この構成によると、暗号化されている前記鍵情報の一部を他の情報処理装置を用いては復号することができないので、鍵情報の安全性を高めることができる。
(e)前記情報処理装置は、前記鍵情報を用いて他の装置との間で認証および鍵交換を行う認証鍵交換部を備え、前記記憶部は、前記無効化リストを記憶しており、前記無効化リスト受付部は、前記記憶部から前記無効化リストを読み出し、前記制御部は、前記無効化リスト受付部が前記記憶部から読み出した前記無効化リストのバージョンが前記バージョン情報より古い場合に、前記認証鍵交換部による認証および鍵交換を抑制することを特徴とする。
【0161】
すなわち、前記情報処理装置が古いバージョンの無効化リストを記憶している場合には、認証および鍵交換を抑制する。
【0162】
前記情報処理装置が他の装置と通信を行う前に認証および鍵交換を行う場合、認証および鍵交換が抑制されれば、前記情報処理装置の通信機能は失われることになる。そこで、上記の構成を備えることにより、情報処理装置のメーカは、新しい無効化リストを情報処理装置に埋め込むことが期待される。
(f)前記情報処理装置において、前記認証鍵交換部は、認証および鍵交換の結果、前記他の装置との間でセッション鍵を共有し、前記情報処理装置は、さらに、生成された前記セッション鍵を用いて前記他の装置との間で暗号通信を行い、前記他の装置から前記他の装置が保持している無効化リストを取得し、前記記憶部に記憶されている無効化リストのバージョンが、前記他の装置から取得した無効化リストのバージョンよりも古い場合には、取得した前記無効化リストで、前記記憶部に記憶されている無効化リストを更新する無効化リスト更新部を備えることを特徴とする。
【0163】
この構成によると、無効化リストのバージョンが前記バージョン情報と同一か若しくは前記バージョン情報より新しい場合、前記情報処理装置は、他の装置との間で無効化リスト更新処理を行う。このように、情報処理装置は、他の装置との間で無効化リスト更新処理を行うことで、より新しい無効化リストを保持することができる。
(g)前記情報処理装置において、前記他の装置から取得した前記無効化リストにはデジタル署名が付与されており、前記無効化リスト更新部は、前記デジタル署名が前記鍵発行局により発行されたものであるか否かを検証し、検証に成功した場合に、取得した前記無効化リストで、前記記憶部に記憶されている前記無効化リストを更新し、検証に失敗した場合は、前記記憶部に記憶されている前記無効化リストの更新を行わないことを特徴とする。
【0164】
この構成により、不正な無効化リストにより記憶部の無効化リストが更新されることを抑制することができる。
(h)前記情報処理装置において、前記記憶部に記憶されている前記鍵情報のうちの少なくとも一部は、当該情報処理装置に固有の固有鍵で暗号化されており、前記情報処理装置は、前記固有鍵を保持する固有鍵保持部と、暗号化されている前記鍵情報の一部を、前記固有鍵を用いて復号し、復号された鍵情報を、前記認証鍵交換部へ出力する復号部とを備えることを特徴とする。
【0165】
この構成によると、暗号化されていない鍵情報が情報処理装置の外部へ出力されることがないので、鍵情報の安全性を高めることができる。