JP2007323367A - データ管理装置及びデータ管理方法 - Google Patents
データ管理装置及びデータ管理方法 Download PDFInfo
- Publication number
- JP2007323367A JP2007323367A JP2006152808A JP2006152808A JP2007323367A JP 2007323367 A JP2007323367 A JP 2007323367A JP 2006152808 A JP2006152808 A JP 2006152808A JP 2006152808 A JP2006152808 A JP 2006152808A JP 2007323367 A JP2007323367 A JP 2007323367A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- information
- registration information
- data
- key
- 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.)
- Withdrawn
Links
Images
Landscapes
- Traffic Control Systems (AREA)
- Navigation (AREA)
- Storage Device Security (AREA)
Abstract
【課題】登録情報の漏洩を防止する技術を提供する。
【解決手段】登録情報受付部30は、コンテンツデータを格納した可搬型の記憶装置に、コンテンツに関連した登録情報を記録する要求をユーザから受け付ける。登録部31は、登録情報を取得して記憶装置に記録する。共有管理部32は、他の装置による登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を登録情報に対応付けて記憶装置に記録する。読み出し要求受付部33は、登録情報を記憶装置から読み出す要求を受け付ける。判定部34は、その登録情報に対応付けられた共有情報を記憶装置から読み出して、その登録情報の当該装置による読み出しの許否を判定し、読み出しが許可されない場合、登録情報読み出し部35による登録情報の読み出しを禁止する。
【選択図】図2
【解決手段】登録情報受付部30は、コンテンツデータを格納した可搬型の記憶装置に、コンテンツに関連した登録情報を記録する要求をユーザから受け付ける。登録部31は、登録情報を取得して記憶装置に記録する。共有管理部32は、他の装置による登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を登録情報に対応付けて記憶装置に記録する。読み出し要求受付部33は、登録情報を記憶装置から読み出す要求を受け付ける。判定部34は、その登録情報に対応付けられた共有情報を記憶装置から読み出して、その登録情報の当該装置による読み出しの許否を判定し、読み出しが許可されない場合、登録情報読み出し部35による登録情報の読み出しを禁止する。
【選択図】図2
Description
本発明は、データ管理技術に関し、とくに、可搬型の記憶装置に格納されたコンテンツデータに関連する登録情報を記憶装置に記録するデータ管理装置及びデータ管理方法に関する。
自動車などの輸送手段に搭載され、現在位置周辺の地図を表示したり、目的地への経路を案内する機能を有するナビゲーション装置が広く普及してきた。ナビゲーション装置は、一般に、ユーザの自宅や勤務先など、目的地として利用される地点の情報を登録する機能を有している。通常、これらの登録情報は、ナビゲーション装置に内蔵されたフラッシュメモリやハードディスクなどの記憶装置に記録される。登録情報をネットワークを介してユーザ間で共有する技術も提案されている(例えば、特許文献1参照)。
特開2004−53521公報
近年、ハードディスク装置の小型化、軽量化、安定性の向上などに伴い、記録装置又は再生装置に着脱自在に接続可能な可搬型のハードディスク装置が開発されており、カーナビゲーション装置において地図データを格納する記録媒体としても利用され始めている。従来のナビゲーション装置では、登録情報は車載器に内蔵された記憶装置に記録されるので、物理的に外部へ持ち出すことはできず、第三者が車内に入って車載器を操作しない限り、登録情報が漏洩する恐れはなかった。しかし、可搬型のハードディスク装置を登録情報の記憶装置として利用する場合は、ハードディスクの紛失や盗難などにより、第三者にハードディスク装置に格納されたデータを覗かれる可能性があるので、個人情報保護の観点から、登録情報の漏洩を防止する策を講じる必要がある。
本発明は、こうした状況に鑑みてなされたものであり、その目的は、可搬型の記憶装置に格納された登録情報を適切に保護する技術を提供することにある。
本発明のある態様は、コンテンツのデータを格納した可搬型の記憶装置との間でデータの入出力を制御するインタフェースと、前記コンテンツに関連した登録情報の記録要求をユーザから受け付け、前記登録情報を取得して前記記憶装置に記録する登録部と、他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録する共有管理部と、を備えることを特徴とする。
このような構成により、秘匿すべき登録情報は他装置での読み出しを禁じて漏洩を防止しつつ、共有したい登録情報は他装置での読み出しを許可することができ、ユーザの利便性を向上させることができる。
前記登録情報を前記記憶装置から読み出す要求を受け付け、要求された登録情報を前記記憶装置から読み出す登録情報読み出し部と、前記登録情報読み出し部が登録情報を読み出す前に、その登録情報に対応付けられた共有情報を前記記憶装置から読み出して、その登録情報の当該装置による読み出しの許否を判定し、読み出しが許可されない場合、前記登録情報読み出し部による前記登録情報の読み出しを禁止する判定部と、を更に備えてもよい。
データ管理装置は、自装置に固有の情報を外部に公開しないように保持する固有情報保持部を更に備えてもよく、前記共有管理部は、他の装置による前記登録情報の読み出しを禁止する場合は、前記固有情報保持部から読み出した自装置の固有情報を更に前記登録情報に対応付けて前記記憶装置に記録してもよい。前記判定部は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、その登録情報に対応付けて前記記憶装置に記録された固有情報と、前記固有情報保持部に保持された自装置の固有情報とを比較し、一致しなければその登録情報の読み出しを禁止してもよい。これにより、登録情報を登録した装置以外の装置による読み出しを適切に禁止することができる。また、機器IDなどの外部に対して秘された固有情報を用いることで、なりすましを防止することができる。
データ管理装置は、他の装置による前記登録情報の読み出しを禁止する場合に、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を暗号鍵で暗号化するとともに、前記暗号鍵を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えてもよい。データ管理装置は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有暗号鍵で暗号化された前記暗号鍵を前記記憶装置から読み出して、前記固有情報を用いて生成された固有復号鍵で復号して前記暗号鍵を得る復号部を更に備えてもよい。
データ管理装置は、他の装置による前記登録情報の読み出しを禁止する場合は、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えてもよい。データ管理装置は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有情報を用いて生成された固有復号鍵で前記登録情報を復号する復号部を更に備えてもよい。以上のような構成により、記憶装置に格納された登録情報が第三者により読み出されたとしても、内容の漏洩を防止することができる。
前記暗号部は、前記固有暗号鍵を用いて共通鍵暗号方式でデータを暗号化し、前記復号部は、前記暗号部において前記固有暗号鍵を生成するのと同じ方法により、前記固有暗号鍵と同一である前記固有復号鍵を生成してデータを復号してもよい。これにより、簡易でかつ確実な方法で、登録情報を登録した装置のみが登録情報を復号可能とすることができる。
該データ管理装置は、ナビゲーション装置であってもよい。ナビゲーション装置は、現在位置を検知する位置検知部と、検知された現在位置の周辺の地図データを前記記憶装置から読み出して表示装置に表示させる地図データ処理部と、を更に備えてもよい。前記登録部は、ユーザが目的地として利用する地点の登録情報を前記記憶装置に登録してもよい。
本発明の別の態様は、データ管理方法に関する。このデータ管理方法は、コンテンツのデータを格納した可搬型の記憶装置に、前記コンテンツに関連した登録情報を記録する要求をユーザから受け付けるステップと、前記登録情報を取得して前記記憶装置に記録するステップと、他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、可搬型の記憶装置に格納された登録情報を適切に保護する技術を提供することができる。
記憶装置に格納されたデータを管理するデータ管理装置の一例として、ナビゲーション装置について説明する。本実施の形態では、ナビゲーション装置が利用する地図データを格納した記憶装置として、ナビゲーション装置に着脱自在に接続される可搬型のリムーバブルハードディスク装置を利用する。ユーザの自宅や勤務先、その他よく利用する目的地の登録情報など、個人情報を含むデータもリムーバブルハードディスク装置に格納される。地図データが可搬型のリムーバブルHDDに格納されているので、ナビゲーション装置から外して他の装置で利用することができるが、ユーザが登録した登録情報のうち、自宅の住所など他者に知られたくない情報は、個人情報保護の観点から、他の装置では読み書きできないようにすることが望ましい。本実施の形態では、可搬型の記憶装置に登録されたデータの読み書きを適切に管理する技術を提案する。
(第1の実施の形態)
図1は、第1の実施の形態に係るナビゲーション装置の構成を示す。ナビゲーション装置1は、現在位置を検出するために用いられるGPS受信機10、ジャイロスコープ12、車速センサ14、及びこれらから得られたデータを用いて現在位置を検出する位置検出器16、ユーザからの入力を受け付けるリモコン受光部20、液晶ディスプレー等の表示パネル24、リムーバブルHDDユニット200との間のデータ入出力などを制御するストレージインタフェース102、リムーバブルHDD200が挿入されていることを検出するリムーバブルHDD挿入検出部26、機器を制御するコントローラ101、機器に固有な機器IDを外部に公開しないように格納するROM28、動作に必要なデータなどを格納するバッファメモリ22、これらの構成を電気的に接続するデータバス110を備える。
図1は、第1の実施の形態に係るナビゲーション装置の構成を示す。ナビゲーション装置1は、現在位置を検出するために用いられるGPS受信機10、ジャイロスコープ12、車速センサ14、及びこれらから得られたデータを用いて現在位置を検出する位置検出器16、ユーザからの入力を受け付けるリモコン受光部20、液晶ディスプレー等の表示パネル24、リムーバブルHDDユニット200との間のデータ入出力などを制御するストレージインタフェース102、リムーバブルHDD200が挿入されていることを検出するリムーバブルHDD挿入検出部26、機器を制御するコントローラ101、機器に固有な機器IDを外部に公開しないように格納するROM28、動作に必要なデータなどを格納するバッファメモリ22、これらの構成を電気的に接続するデータバス110を備える。
ユーザが、地図データが格納されたリムーバブルHDDユニット200をナビゲーション装置1にセットし、リモートコントローラ(図示せず)のナビゲーション開始ボタンを押すと、リモコン受光部20でコマンドを受け取り、ナビゲーションを開始する。まず、ナビゲーション装置1の現在位置を検出するために、GPS受信機10、ジャイロスコープ12、車速センサ14から得られたデータを位置検出器16が解析し、現在地、進行方向、及び速度を検出する。また、コントローラ101によって、リムーバブルHDDユニット200から現在位置周辺の地図データが読み出され、位置検出器16によって得られた情報と合わせて液晶ディスプレー等の表示パネル24に表示される。
図2は、コントローラ101の内部構成を示す。コントローラ101は、登録情報受付部30、登録部31、共有管理部32、読み出し要求受付部33、判定部34、登録情報読み出し部35、目的地設定部36、経路算出部37、及び地図データ処理部38を含む。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
目的地設定部36は、リモコン受光部20などを介して、ユーザから目的地の設定を受け付ける。目的地設定部36は、住所、電話番号、名称などを受け付けて、図示しない地図情報データベースを検索して目的地を取得してもよいし、地図情報データベースをカテゴリ別に提示して目的地の指定を受け付けてもよい。目的地が設定されると、経路算出部37は、地図情報データベースを参照して、目的地へ到達するための経路を算出する。地図データ処理部38は、現在位置周辺の地図データをリムーバブルHDDユニット200から読み出して表示するとともに、経路算出部37により算出された経路を着色するなどして識別可能に表示する。
登録情報受付部30は、ユーザから目的地などの登録情報を受け付ける。登録情報受付部30は、目的地設定部36において目的地として設定された地点の情報の登録要求を受け付けてもよいし、ユーザから新規に地点の情報を受け付けてもよい。また、リムーバブルHDDユニット200に格納された地図データに関する情報以外に、ユーザの氏名、住所、電話番号、嗜好情報など、ユーザの個人情報の登録を受け付けてもよい。登録部31は、登録情報を取得してリムーバブルHDDユニット200に記録する。共有管理部32は、他の装置による登録情報の読み出しを許可するか、他の装置による登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を登録情報に対応付けてリムーバブルHDDユニット200に記録する。共有管理部32は、他の装置による前記登録情報の読み出しを禁止する場合は、ROM28から読み出した自装置の機器IDを更に登録情報に対応付けてリムーバブルHDDユニット200に記録する。
読み出し要求受付部33は、登録情報をリムーバブルHDDユニット200から読み出す要求を受け付ける。判定部34は、読み出しを要求された登録情報に対応付けられた共有情報をリムーバブルHDDユニット200から読み出して、その登録情報の自装置による読み出しの許否を判定し、読み出しが許可されない場合、登録情報読み出し部35による登録情報の読み出しを禁止する。判定部34は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、その登録情報に対応付けてリムーバブルHDDユニット200に記録された機器IDと、自装置のROM28に格納されている機器IDとを比較し、一致しなければその登録情報の読み出しを禁止する。登録情報読み出し部35は、読み出しが許可される場合、要求された登録情報をリムーバブルHDDユニット200から読み出す。
図3は、リムーバブルHDDユニット200のディレクトリ構造を示す。ルートディレクトリの下に地図情報管理ディレクトリ450とユーザ情報管理ディレクトリ400が配置されている。地図情報管理ディレクトリ450の配下には、道路情報、交差点等のネットワーク情報、目的地、目印となりうるあらゆる施設の住所、電話番号等で構成される住所情報データベースなどを格納したファイル群が存在するが、ここでは説明を省略する。
ユーザ情報管理ディレクトリ400の配下にユーザの登録情報が記録される。このディレクトリには、1つの登録情報管理ファイル410と、複数の登録データ群ファイル420が存在する。登録データ群ファイル420の名称は、ユーザが自由につけることが可能であり、例えば、「友人」、「お気に入りレストラン」等の名前をつけておき、そのファイルの中に、そのファイル名に関連した登録情報を記録するという使い方を想定している。
図4は、登録情報管理ファイル410のデータ構造の例を示す。まず、総登録データ群管理ファイル数NOFが記録され(この例ではファイル数はN)、その後に1番目の登録データ群ファイル名F1及び1番目のバインド情報BI1のペアが記録される。これが、NOF個(この場合はN個)後に続く。
図5は、機器バインド情報BInのデータ構造を示す。機器バインド情報BIは、機器バインドフラグBIF及びバインド機器ID(BID)を含む。機器バインドフラグBIFは、対応する登録データ群ファイル420が、記録した装置でのみ読み出しを許可された(以下、このことを「機器にバインド(紐付け)された」ともいう)ファイルであるか否かを示す。このフラグが「1」の場合、記録した機器でのみ読み出しが許可され、「0」の場合、記録した機器以外でも読み出しが許可されるものとする。バインド機器ID(BID)は、機器バインドフラグBIFが「1」である時のみ有効なフィールドであり、登録データ群ファイル420を記録した装置の機器IDが記録される。
図6は、登録データ群ファイル420のデータ構造を示す。最初に総登録データ数NODが記録され(この例ではデータ数はM)、その後にNOD個の登録データD1〜DMが並ぶ。
図7は、登録データDmのデータ構造を示す。登録データDmは、登録データ名DNAME、住所ADR、電話番号TEL、位置情報(地図情報へのリンク)LINKで構成されている。登録データ名DNAMEは、例えば、登録情報がレストラン情報であればレストランの名称、友人宅の情報であれば友人の氏名などであってもよい。住所ADRは、その地点の住所、電話番号TELは、その地点にある施設の電話番号であってもよい。位置情報LINKは、この登録情報が選択されたときに、ナビゲーション上の位置を表示するためのリンク情報であってもよい。
図3から図7までに示したデータ構造により、登録データ群ファイル420単位で、ユーザが登録した登録情報を他の機器でも読み出して表示することが可能か否かを設定することができる。
図8は、本実施の形態のデータ管理方法の手順を示すフローチャートである。登録情報受付部30がユーザから登録情報を受け付けると(S10)、登録部31は、登録データ群ファイル名の入力を受け付けて登録データ群ファイルを新規に作成し(S12)、1番目の登録データとして受け付けた登録情報を登録する(S14)。登録部31は、更に、登録情報管理ファイル410に新規に作成した登録データ群ファイル名Fnを追加する(S16)。共有管理部32は、登録情報を他の装置でも読み出し可能として共有するか否かをユーザから受け付け(S18)、共有しない、すなわちこの装置にバインドする場合は(S18のN)、登録情報管理ファイル410の機器バインド情報BInの機器バインドフラグBFに「1」を登録するとともに(S20)、ROM28から読み出した機器IDをバインド機器ID(BID)に登録する(S22)。共有する場合は(S18のY)、機器バインドフラグBFに「0」を登録する(S24)。
図9は、データ管理装置1がリムーバブルHDDユニット200に格納された登録情報の一覧を表示する手順を示すフローチャートである。読み出し要求受付部33がユーザから登録情報一覧の表示要求を受け付けると(S30)、判定部34がROM28から自装置の機器IDを取得し(S32)、登録情報読み出し部35がリムーバブルHDDユニット200から登録情報管理ファイル410を取得する(S34)。判定部34は、まず制御変数aに1をセットし(S36)、登録情報管理ファイル410のa番目の機器バインド情報BIaの機器バインドフラグBFを確認する(S38)。機器バインドフラグBFが「0」であれば(S38のN)、a番目の登録データ群ファイル420は、記録した装置以外の装置でも読み出しが許可されているので、a番目の登録データ群ファイル名Faを表示する(S42)。機器バインドフラグBFが「1」であれば(S38のY)、判定部34は、バインド機器ID(BID)に記録されている機器IDと、ROM28から取得した自装置の機器IDを比較する(S40)。両者が一致した場合は(S40のY)、a番目の登録データ群ファイル420を登録したのは自装置であるから、a番目の登録データ群ファイル名Faを表示する(S42)。両者が一致しない場合は(S40のN)、a番目の登録データ群ファイル420を登録したのは他装置であり、本装置では読み出しが禁止されているので、a番目の登録データ群ファイル名Faを表示しない。制御変数aが総登録データ群ファイル数NOF(ここではN)に達していなければ(S44のN)、制御変数aをインクリメントして(S46)、S38に戻り、次の登録データ群ファイル420の判定に移る。全ての登録データ群ファイル420の判定が終わると(S44のY)、登録情報一覧が表示され、処理を終了する。この後に、ユーザが、ある登録データ群ファイル420を選択し、その中の登録データ群から任意の登録データを選択することにより、表示パネル24に登録データの情報が表示されることになる。
図10は、機器にバインドされた登録データ群ファイル420の機器バインドを解除する手順を示すフローチャートである。この処理は、新しいナビゲーション装置1を購入した場合などに、新しいナビゲーション装置1にリムーバブルHDDユニット200を接続して利用するために、それまで使用していたナビゲーション装置1のバインドを解除し、新しいナビゲーション装置1で新たに機器バインドする際などに使用することを想定している。
読み出し要求受付部33がユーザから登録情報の機器バインドの解除要求を受け付けると(S50)、判定部34がROM28から自装置の機器IDを取得し(S52)、登録情報読み出し部35がリムーバブルHDDユニット200から登録情報管理ファイル410を取得する(S54)。判定部34は、まず制御変数aに1をセットし(S56)、登録情報管理ファイル410のa番目の機器バインド情報BIaの機器バインドフラグBFを確認する(S58)。機器バインドフラグBFが「0」であれば(S58のN)、a番目の登録データ群ファイル420は、機器にバインドされていないので、機器バインド解除は必要ない。機器バインドフラグBFが「1」であれば(S58のY)、判定部34は、バインド機器ID(BID)に記録されている機器IDと、ROM28から取得した自装置の機器IDを比較する(S60)。両者が一致した場合は(S60のY)、a番目の登録データ群ファイル420は自装置にバインドされているので、a番目の機器バインド情報BIaの機器バインドフラグBFを「0」に変更し、機器バインドを解除する(S62)。両者が一致しない場合は(S60のN)、a番目の登録データ群ファイル420を登録したのは他装置であり、他装置にバインドされているので、機器バインドを解除することはできない。制御変数aが総登録データ群ファイル数NOF(ここではN)に達していなければ(S64のN)、制御変数aをインクリメントして(S66)、S58に戻り、次の登録データ群ファイル420の判定に移る。全ての登録データ群ファイル420の判定が終わると(S64のY)、処理を終了する。
(第2の実施の形態)
第1の実施の形態では、リムーバブルHDDユニット200に格納されている登録情報の読み出しの許否の判定をアプリケーションレベルで実施した。この方式では、ナビゲーション装置1を用いて、リムーバブルHDDユニット200に格納されたデータを読み出すときは、読み出しの許否が適切に判定されるが、リムーバブルHDDユニット200を接続可能で、データの読み出しの許否を判定する機能を有しない装置を用いてリムーバブルHDDユニット200に格納されたデータを読み出すと、他装置による読み出しが禁止された登録情報も読み出されてしまう可能性がある。したがって、本実施の形態では、登録情報を更に適切に保護するために、登録情報を暗号鍵で暗号化するとともに、暗号鍵を機器IDなどで暗号化するなど機器に紐付けして記録する技術について説明する。
第1の実施の形態では、リムーバブルHDDユニット200に格納されている登録情報の読み出しの許否の判定をアプリケーションレベルで実施した。この方式では、ナビゲーション装置1を用いて、リムーバブルHDDユニット200に格納されたデータを読み出すときは、読み出しの許否が適切に判定されるが、リムーバブルHDDユニット200を接続可能で、データの読み出しの許否を判定する機能を有しない装置を用いてリムーバブルHDDユニット200に格納されたデータを読み出すと、他装置による読み出しが禁止された登録情報も読み出されてしまう可能性がある。したがって、本実施の形態では、登録情報を更に適切に保護するために、登録情報を暗号鍵で暗号化するとともに、暗号鍵を機器IDなどで暗号化するなど機器に紐付けして記録する技術について説明する。
図11は、本実施の形態に係るナビゲーション装置の構成を示す。本実施の形態のナビゲーション装置1は、図1に示した第1の実施の形態のナビゲーション装置1の構成に加えて、暗号/復号モジュール119を更に備える。暗号/復号モジュール119は、ライセンス生成部107、ライセンス判読部108、コンテンツ暗号部104、コンテンツ復号部111、及び暗号エンジン103を含む。その他の構成及び動作は、第1の実施の形態と同様である。
暗号/復号モジュール119は、登録情報などのコンテンツデータを暗号鍵で暗号化するとともに、暗号鍵をナビゲーション装置1に紐付けした状態でリムーバブルHDDユニット200に記録する。ナビゲーション装置1に紐付けするとは、ナビゲーション装置1の機器ID、ナビゲーション装置1を構成する半導体部品などに埋め込まれているデバイスID、ナビゲーション装置1にインストールされているOSなどのソフトウェアのプログラムID、暗号処理にて使用する埋め込み型の秘密鍵など、ナビゲーション装置1の機能単位を特定できる識別データを用いないと、コンテンツ鍵を取り出すことができず、暗号化コンテンツデータを復号できないということを意味する。
本実施の形態のリムーバブルHDDユニット200は、データを保持する記憶媒体だけでなく、ナビゲーション装置1などのホスト装置と記憶媒体との間でのデータの入出力を制御するコントローラなどの構成を備えるドライブ一体型の可搬型ストレージデバイスである。本実施の形態では、このようなストレージデバイスとして、可搬型ハードディスクドライブを例にとって説明する。なお、リムーバブルHDDユニット200は、半導体メモリ、CD−ROM、DVDなどにより実現されてもよい。
本実施の形態のリムーバブルHDDユニット200は、複数のホスト装置に接続することが可能であり、たとえば、所有者以外の第三者のホスト装置に接続され、記録されたデータが読み出される可能性もある。このリムーバブルHDDユニット200に、ユーザの登録情報などの秘匿すべきデータを記録することを想定したとき、それらの秘匿データが外部に漏洩することを防ぐためには、リムーバブルHDDユニット200自身にデータを適切に保護するための構成を設け、十分な耐タンパ機能を持たせることが好ましい。
このような観点から、本実施の形態のリムーバブルHDDユニット200は、ホスト装置との間で秘匿データを入出力するときに、その秘匿データを暗号化してやり取りするための構成を備える。また、秘匿データを格納するために、通常の記憶領域とは異なる機密データ記憶領域を設け、その機密データ記憶領域はリムーバブルHDDユニット200内に設けられた暗号エンジンを介さないとアクセスできないように構成する。この暗号エンジンは、正当な権限を有すると検証されたホスト装置のみと秘匿データの入出力を行う。以下、このようなデータ保護機能を「セキュア機能」ともいう。上記の構成および機能により、リムーバブルHDDユニット200に記録された秘匿データを適切に保護することができる。
リムーバブルHDDユニット200のリムーバブルメディアとしての特徴を最大限に生かすため、通常のデータについては、セキュア機能に非対応のホスト装置でも入出力可能とするのが好ましい。そのため、本実施の形態のリムーバブルHDDユニット200は、従来のハードディスクとの互換性を保つべく、ANSI(American National Standards Institute)の標準規格であるATA(AT Attachment)に対応しており、上述のセキュア機能は、ATAの拡張命令として実現される。
ユーザから受け付けた登録情報をリムーバブルHDDユニット200に記録する際に、登録情報自身を秘匿データとして扱ってもよいが、本実施の形態では、登録情報を暗号化し、暗号化された登録情報自身は、リムーバブルHDDユニット200に通常のデータとして記録する。そして、暗号化された登録情報を復号するためのコンテンツ鍵と、コンテンツの読み出し制御や、ライセンスの利用、移動、複製に関する制御に関する情報(以下、「利用情報」と称す)を含むデータ(以下、「ライセンスデータ」と称す)を、秘匿データとして上述のセキュア機能を用いて入出力を行う。これにより、十分な耐タンパ性を維持しつつ、データの入出力を簡略化し、処理の高速化および消費電力の低減を図ることができる。
なお、以下においては、ナビゲーション装置1などのホスト装置がリムーバブルHDDユニット200に対して発行する命令のうち、セキュア機能のための拡張命令を「セキュアコマンド」とも呼び、その他の命令を「通常コマンド」とも呼ぶ。
ライセンス生成部107は、登録情報を暗号化するためのコンテンツ鍵を生成する。また、登録情報に関する利用情報を生成する。ライセンス生成部107は、生成したコンテンツ鍵と利用情報からライセンスデータを生成する。生成されたコンテンツ鍵はコンテンツ暗号部104へ伝達される。また、生成されたライセンスデータは暗号エンジン103へ伝達され、暗号エンジン103を介してリムーバブルHDDユニット200に記録される。
コンテンツ暗号部104は、ライセンス生成部107から伝達されたコンテンツ鍵を用いて、登録データ群ファイル420を暗号化する。暗号化された登録データ群ファイル420は、データバス110及びストレージインタフェース102を介して、通常コマンドによりリムーバブルHDDユニット200に記録される。
暗号エンジン103は、ライセンスデータをリムーバブルHDDユニット200との間で入出力するために、リムーバブルHDDユニット200との間で暗号通信の制御を行う。暗号エンジン103の構成及び動作の詳細については後述する。
ライセンス判読部108は、リムーバブルHDDユニット200に記録されたライセンスデータを取得して判読し、コンテンツ鍵と利用情報を取得する。ナビゲーション装置1において登録情報を表示するために登録データ群ファイル420を復号するときには、ライセンス判読部108は、後述する「Binding Flag」等の利用情報を解析して、コンテンツ鍵をコンテンツ復号部111に伝達する。
コンテンツ復号部111は、リムーバブルHDDユニット200から取得した暗号化された登録データ群ファイル420を、ライセンス判読部108から取得したコンテンツ鍵で復号する。
図12は、ライセンス生成部107の内部構成を示す。ライセンス生成部107は、乱数生成部161、ID整形部162、コンテンツ鍵暗号部163、ライセンスデータフォーマッタ164、及びスイッチ165を含む。
乱数生成部161は、コンテンツ鍵Kcとして用いられる乱数を発生し、コンテンツ鍵暗号部163、コンテンツ暗号部104、及びスイッチ165へ伝達する。ID整形部162は、ROM28からナビゲーション装置1の機器IDを取得し、コンテンツ鍵暗号部163においてコンテンツ鍵を暗号化するための暗号鍵として利用可能な形式に整形する。機器IDは、ナビゲーション装置1のBIOS領域に固定的に記録されていてもよい。また、機器IDに代えて、ナビゲーション装置1のユーザのID、ナビゲーション装置1において動作するOSやアプリケーションなどのプログラムのID、リムーバブルHDDユニット200の機器IDなどを用いてもよい。要は、登録情報を読み出す権利を有するユーザ又は装置のみが知りうる情報であればよい。
ID整形部162は、コンテンツ鍵暗号部163が採用する暗号方式における暗号鍵のビット長に合わせて、取得した機器IDを整形する。例えば、機器IDのビット数が暗号鍵のビット長よりも少ない場合は、0などでパディングしてもよい。逆に、機器IDのビット数が暗号鍵のビット長よりも多い場合は、先頭から順に必要なビット長を取り出してもよいし、末尾から順に必要なビット長を取り出してもよい。
コンテンツ鍵暗号部163は、乱数生成部161から伝達されたコンテンツ鍵Kcを、ID整形部162から伝達された暗号鍵で暗号化する。コンテンツ鍵暗号部163における暗号方式は任意でよく、例えばAES(Advanced Encryption Standard)方式などであってもよい。AESの鍵長は、128、192、256ビットのいずれかであってもよく、ID整形部162は、コンテンツ鍵暗号部163が必要とする鍵長に機器IDを整形する。コンテンツ鍵暗号部163は、コンテンツ鍵Kcと機器IDの排他的論理和などを演算することにより、暗号化コンテンツ鍵を生成してもよい。暗号化されたコンテンツ鍵は、スイッチ165へ伝達される。
スイッチ165は、コントローラ101の共有管理部32から伝達される共有情報に応じて切り替えられる。登録データ群ファイル420を機器にバインドする場合は、コンテンツ鍵暗号部163から出力される、暗号化されたコンテンツ鍵がライセンスデータフォーマッタ164に伝達されるようにスイッチ165が切り替えられる。登録データ群ファイル420を機器にバインドしない場合は、乱数生成部161から出力されるコンテンツ鍵がライセンスデータフォーマッタ164に伝達されるようにスイッチ165が切り替えられる。
AESは共通鍵暗号方式であるから、暗号化コンテンツ鍵を復号するためには、機器IDを取得してID整形部162と同様に整形し、同一の共通鍵を得ればよい。したがって、ナビゲーション装置1は、自身の機器IDを用いて暗号化コンテンツ鍵を復号することができ、復号したコンテンツ鍵により、暗号化された登録データ群ファイル420を復号して表示することができる。しかし、他の装置は、ナビゲーション装置1の機器IDを取得することができないので、たとえ暗号化コンテンツ鍵を複製したとしても、それを復号することはできない。このように、機器IDを利用してコンテンツ鍵を暗号化することにより、コンテンツ鍵はその装置に束縛され、その装置でしか利用することができないようになる。
なお、上記の例では、乱数生成部161が生成した乱数をコンテンツ鍵Kcとしたが、別の例では、乱数生成部161が生成した乱数に対して、ID整形部162が整形した機器IDを用いてコンテンツ鍵暗号部163により暗号演算を行ったものをコンテンツ鍵Kcとしてもよい。この場合は、乱数生成部161が生成した乱数をライセンスデータに記録しておき、読み出し時には、ライセンスデータに格納された乱数と機器IDから同様の演算によりコンテンツ鍵Kcを得る。この場合も、コンテンツ鍵Kcを得るには機器IDが必要となる。
ライセンスデータフォーマッタ164は、共有管理部32などから伝達された利用情報と、コンテンツ鍵暗号部163から伝達された暗号化コンテンツ鍵とを、所定のフォーマットに整形して、ライセンスデータを生成する。
図13は、ライセンスデータのデータ構造を示す。ライセンスデータは、ライセンスデータのIDを格納する「LID」欄、ライセンスデータの種別を格納する「Type」欄、コンテンツ鍵が機器IDなどに紐付けられているか否かを示す「Binding Flag」欄、コンテンツ鍵を格納する「Kc」欄、ブロック暗号の初期ベクトルを格納する「Initial Vector」欄、ライセンスデータの利用制御情報を格納する「Access Condition」欄を含む。
「Binding Flag」欄には、装置に束縛されている、すなわち機器IDにより暗号化されていることを示す「1(bind)」、もしくは、装置に束縛されていないことを示す「0(not bind)」が格納される。すなわち、他装置による登録データの読み出しが禁止される場合は「1」が、許可される場合は「0」が格納される。
「Kc」欄には、「Binding Flag」が「1」の場合は、機器IDに紐付けされたコンテンツ鍵(binded Kc)が格納され、「Binding Flag」が「0」の場合は、コンテンツ鍵Kcが格納される。本実施の形態においては、「binded Kc」として、機器IDを用いて暗号化されたコンテンツ鍵を採用しているが、コンテンツ鍵と機器IDとのビット単位の排他的論理和などの簡易的な方法により生成されたデータなどであってもよい。つまり、「binded Kc」と機器IDとにより、コンテンツ鍵Kcが一意に決まりさえすればよい。
図14は、ライセンス判読部108の内部構成を示す。ライセンス判読部108は、形式解析部171、ID整形部172、コンテンツ鍵復号部173、及びスイッチ175を含む。
形式解析部171は、暗号エンジン103を介してリムーバブルHDDユニット200から読み出されたライセンスデータを取得し、その形式を解析する。形式解析部171は、図13に示したライセンスデータの各フィールドの値を解析し、利用情報やコンテンツ鍵を抽出して出力するとともに、各フィールドの値に応じてスイッチ175を制御する。形式解析部171により抽出されたコンテンツ鍵は、暗号化されていればコンテンツ鍵復号部173へ、暗号化されていなければスイッチ175を介してコンテンツ復号部111へ出力される。
ID整形部172は、ID整形部162が生成した暗号鍵により暗号化されたコンテンツ鍵を復号するための復号鍵を生成する。前述したように、ID整形部162がナビゲーション装置1の機器IDを整形して共通鍵方式の暗号鍵を生成した場合には、ID整形部172は、ナビゲーション装置1の機器IDをROM28から取得し、ID整形部162と同様の方法で整形して、同一の共通鍵を生成する。コンテンツ鍵復号部173は、形式解析部171から伝達された暗号化されたコンテンツ鍵を、ID整形部172から伝達された復号鍵で復号する。
登録データ群ファイル420を復号する時、スイッチ175の上側の端子には、形式解析部171から暗号化されていないコンテンツ鍵Kcが出力され、スイッチ175の下側の端子には、コンテンツ鍵復号部173から復号されたコンテンツ鍵Kcが出力される。形式解析部171は、ライセンスデータの「Binding Flag」欄を参照して、コンテンツ鍵が暗号化されているか否かを判定し、暗号化されていればスイッチ175を上側の端子に、暗号化されていなければ下側の端子につなぐ。これにより、スイッチ175を介して、コンテンツ鍵Kcがコンテンツ復号部111に出力される。
図12及び図14に示した例では、ライセンスデータの生成時に、機器IDをもとに生成された共通鍵によりコンテンツ鍵Kcを暗号化して「binded Kc」を生成し、ライセンスデータの利用時には、機器IDをもとに生成された共通鍵により「binded Kc」を復号してコンテンツ鍵Kcを得た。別の例として、ライセンス生成部107のコンテンツ鍵暗号部163は、コンテンツ鍵Kcに機器IDなどを用いて所定の演算を施して、コンテンツ鍵Kcを変換したデータを「binded Kc」としてもよい。演算は、例えば、ビット単位で排他的論理和、論理和、論理積、否定論理和、否定論理積をとる演算などであってもよい。この場合、ライセンス判読部108のコンテンツ鍵復号部173は、ライセンスデータから得られる「binded Kc」に、機器IDを用いて、コンテンツ鍵暗号部163において施された演算の逆演算を施すことによりコンテンツ鍵Kcを得ることができる。
図15は、リムーバブルHDDユニット200の内部構成を示す。リムーバブルHDDユニット200は、主に、コントローラ201、ストレージインタフェース202、暗号エンジン203、耐タンパ記憶部204、通常データ記憶部205、及びそれらを電気的に接続するデータバス210を備える。
ストレージインタフェース202は、ナビゲーション装置1とのデータの入出力を制御する。暗号エンジン203は、コンテンツ鍵を含むライセンスデータなどの秘匿データをナビゲーション装置1との間で入出力するための暗号通信の制御を行う。通常データ記憶部205は、暗号化されたコンテンツや通常のデータなどを記録する通常記憶領域である。耐タンパ記憶部204は、コンテンツ鍵を含むライセンスデータなどの秘匿データを記録する機密データ記憶領域である。通常データ記憶部205は、外部からの直接アクセスによりデータの入出力が行われるが、耐タンパ記憶部204は、暗号エンジン203を介さないとデータの入出力ができないように構成される。コントローラ201は、リムーバブルHDDユニット200の構成要素を統括的に制御する。
つづいて、ライセンスデータをリムーバブルHDDユニット200に記録するときの暗号通信について詳述する。以下に詳述するように、ライセンスデータを記録するたびに、記録先のストレージデバイスを認証し、正当なストレージデバイスのみにライセンスデータを記録するので、記録先がリムーバブルなストレージデバイスであっても、不正な複製を抑止することができる。
ここで、本実施の形態で用いる鍵について説明する。本実施の形態では、鍵はすべて大文字の「K」から始まる文字列として表記する。また、第2文字が小文字の「c」、「s」、「b」のいずれかである場合は、対称鍵(共通鍵)を示す。詳しくは、「c」はチャレンジ鍵であり、ライセンスデータの送信元で生成されるテンポラルな対称鍵を示す。「s」はセッション鍵であり、ライセンスデータの送信先で生成されるテンポラルな対称鍵を示す。「b」はバス鍵であり、ライセンスデータの送信先で生成されるテンポラルな対称鍵を示す。また、第2文字が大文字の「P」である場合は、公開鍵暗号方式の公開鍵を示す。この鍵には、対応する秘密鍵が必ず存在し、この秘密鍵は公開鍵の表記から第2文字の大文字の「P」を除く表記となる。
鍵を示す文字列が小文字の「d」を含む場合は、装置のグループ毎に与えられた鍵であることを表す。また鍵を示す文字列が小文字の「p」を含む場合は、装置毎に与えられた鍵であることを表す。それぞれ、公開鍵と秘密鍵の対として与えられ、グループ毎に与えられた公開鍵KPdxは、電子署名付きの公開鍵証明書C[KPdx]として与えられている。
また、鍵を示す文字列の最後に記載される文字、たとえば、公開鍵KPd2の「2」は、その鍵が与えられる暗号エンジンを識別するための記号である。本実施の形態では、提供先が明確な場合には、数字「1」、「2」、「3」と表記し、当該暗号エンジン以外から提供される鍵であって提供先が不明な場合あるいは特定しない場合には、「x」、「y」などの英文字によって表記する。本実施の形態では、ライセンスデータを書き込む時のナビゲーション装置1の暗号エンジン103に対しては識別記号として「1」、リムーバブルHDDユニット200の暗号エンジン203については識別記号として「2」、ライセンスデータを読み出す時のナビゲーション装置1の暗号エンジン103に対しては識別記号として「3」を、それぞれ使用する。また、ライセンスデータを書き込む時のナビゲーション装置1を「ライセンス記録装置100」と称し、ライセンスデータを読み出す時のナビゲーション装置1を「ライセンス利用装置300」と称する。
図16は、図11に示したナビゲーション装置1の暗号エンジン103の内部構成を示す。図16には、ライセンスデータをリムーバブルHDDユニット200へ送信するときに使用される構成のみを示している。ライセンスデータをリムーバブルHDDユニット200から受信するときに使用される構成は図17に示す。暗号エンジン103は、証明書検証部120、乱数発生部121、第1暗号部122、第1復号部123、第2復号部124、第2暗号部125、第3復号部126、第3暗号部127、第4暗号部128、証明書出力部129、制御部130、ログ記憶部131、およびこれらの構成要素の少なくとも一部を電気的に接続するローカルバス133を備える。
証明書検証部120は、リムーバブルHDDユニット200から取得した証明書C[KPd2]を検証する。証明書C[KPd2]は、公開鍵KPd2を含む平文の情報(以下、「証明書本体」と称す)と、証明書本体に対して付される電子署名からなる。この電子署名は、証明書本体に対してハッシュ関数による演算(以下、この演算処理を「ハッシュ演算」と称す)を施した結果を、第三者機関である認証局(図示せず)のルート鍵Kaによって暗号化したデータである。ルート鍵Kaは、認証局によって厳重に管理されている非公開な鍵であり、認証局の秘密鍵となる。証明書検証部120は、このルート鍵Kaと対をなす検証鍵KPaを保持している。この検証鍵KPaは証明書の正当性を検証する公開鍵である。証明書の検証は、証明書の正当性と証明書の有効性によって判断する。
証明書の正当性の確認は、検証すべき証明書の証明書本体に対するハッシュ関数の演算結果と、検証鍵KPaで電子署名を復号した結果を比較する処理であり、両者が一致したとき、正当であると判断する。証明書検証部120は、無効となった証明書のリストである証明書破棄リスト(Certificate Revocation List:CRLと呼ぶ)を保持し、このCRLに検証すべき証明書が記載されていない場合に有効であると判断する。このように、証明書の正当性と有効性を判断し、正当な証明書を承認する処理を検証と称す。
証明書検証部120は、検証に成功すると、リムーバブルHDDユニット200の公開鍵KPd2を取り出して第1暗号部122に伝達し、検証結果を通知する。検証に失敗した場合には、検証エラー通知を出力する。
証明書出力部129は、ライセンス記録装置100の証明書C[KPd1]を出力する。この証明書は、ライセンス記録装置100の公開鍵KPd1を含む証明書本体と、証明書本体に対して付される電子署名からなる。電子署名は、リムーバブルHDDユニット200の証明書と同様に、認証局のルート鍵Kaにより暗号化される。
乱数発生部121は、リムーバブルHDDユニット200との間で暗号通信を行うために一時的に使用されるチャレンジ鍵Kc1、バス鍵Kb1を生成する。暗号通信を行う度に、乱数によりチャレンジ鍵Kc1を生成することで、チャレンジ鍵Kc1を見破られる可能性を最小限に抑えることができる。生成されたチャレンジ鍵Kc1は、第1暗号部122と第1復号部123に伝達され、バス鍵Kb1は、第2暗号部125及び第3復号部126に伝達される。
第1暗号部122は、リムーバブルHDDユニット200にチャレンジ鍵Kc1を通知するために、証明書検証部120により取り出されたリムーバブルHDDユニット200の公開鍵KPd2でチャレンジ鍵Kc1を暗号化して、暗号化チャレンジ鍵E(KPd2,Kc1)を生成する。そして、暗号化チャレンジ鍵E(KPd2,Kc1)は、証明書出力部129から出力された証明書C[KPd1]と結合され、第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]とされる。
ここで、記号「||」は、データの連結を示し、E(KPd2,Kc1)||C[KPd1]は、暗号化チャレンジ鍵E(KPd2,Kc1)と証明書C[KPd1]を並べて結合したデータ列を示す。また、Eは暗号化関数を示し、E(KPd2,Kc1)は、公開鍵KPd2でチャレンジ鍵Kc1を暗号化したものであることを示す。
第1復号部123は、チャレンジ鍵Kc1で暗号化されたデータを復号する。リムーバブルHDDユニット200が内部に個別かつ秘密裏に保持する秘密鍵Kp2と対をなす公開鍵KPp2と、リムーバブルHDDユニット200を一意に識別できるユニークな識別情報DIDを暗号化した第2チャレンジ情報E(Kc1,E(KPd1,KPp2||DID))がリムーバブルHDDユニット200から供給されるため、第1復号部123は、乱数発生部121が生成したチャレンジ鍵Kc1を用いて第2チャレンジ情報を復号して、暗号データE(KPd1,KPp2||DID)を取り出す。
第2復号部124は、自身の公開鍵KPd1で暗号化されたデータを、内部の秘密裏に保持する秘密鍵Kd1で復号する。第2復号部124は、第1復号部123から伝達された暗号データE(KPd1,KPp2||DID)を復号し、リムーバブルHDDユニット200の公開鍵KPp2と識別情報DIDを取り出す。
第2暗号部125は、リムーバブルHDDユニット200にバス鍵Kb1を通知するために、リムーバブルHDDユニット200の公開鍵KPp2で暗号化して、暗号化バス鍵E(KPp2,Kb1)を生成する。暗号化バス鍵は、コネクション情報E(KPp2,Kb1)として、リムーバブルHDDユニット200に提供される。
第3復号部126は、バス鍵Kb1で暗号化されたデータを復号する。リムーバブルHDDユニット200で発行されたセッション鍵Ks2は、セッション情報E(Kb1,Ks2)としてリムーバブルHDDユニット200から供給されるため、第3復号部126は、乱数発生部121が生成したバス鍵Kb1を用いてセッション情報を復号し、セッション鍵Ks2を取り出す。取り出されたセッション鍵Ks2は、第4暗号部128へ伝達される。
第3暗号部127は、ライセンス生成部107が生成したライセンスデータLICを取得し、そのライセンスデータLICをリムーバブルHDDユニット200の公開鍵KPp2で暗号化し、E(KPp2,LIC)を生成する。そして、生成されたE(KPp2,LIC)は、第4暗号部128に伝達される。
第4暗号部128は、第3暗号部127から伝達されたE(KPp2,LIC)を、さらに、リムーバブルHDDユニット200で発行されたセッション鍵Ks2により暗号化し、暗号化ライセンスデータE(Ks2,E(KPp2,LIC))を生成する。
ログ記憶部131は、第2復号部124から伝達されたリムーバブルHDDユニット200の識別情報DIDと、リムーバブルHDDユニット200に対して出力するライセンスデータLICと、これを記録予定のリムーバブルHDDユニット200のアドレスデータADRとを、関係付けて静的に記憶する。なお、ログ記憶部131に記憶されているライセンスデータLICは、所定の手続きを経たアクセスに対して、暗号化された状態でのみ出力される。
制御部130は、ライセンス記録装置100のコントローラ101の指示に従って暗号エンジン103内部の構成要素の制御および外部の構成との間でデータの入出力を仲介する。なお、図16では、制御部130による内部の各構成要素への制御を示す結線は省略されている。
図16の如く、本実施の形態では、制御部130を介さないと、暗号エンジン103は外部とデータの交換ができない構成となっている。各構成要素を接続する形態については、種々考えられるが、本実施の形態では、乱数発生部121が生成するチャレンジ鍵Kc1、リムーバブルHDDユニット200から受け取ったセッション鍵Ks2、自身の秘密鍵Kd1などの暗号エンジン103内で使用される各鍵が、暗号エンジン103の外部に直接流出しないように構成している。これにより、暗号エンジン103内で使用される各鍵が、ライセンス記録装置100の他の構成要素などを介して外部に漏洩することを防ぎ、セキュリティ性を向上させている。
図17は、図11に示したナビゲーション装置1の暗号エンジン103の内部構成を示す。図17には、ライセンスデータをリムーバブルHDDユニット200から受信するときに使用される構成のみを示している。暗号エンジン103は、証明書出力部320、乱数発生部321、証明書検証部322、第1復号部323、第1暗号部324、第2暗号部325、第2復号部326、第3暗号部327、第3復号部328、第4復号部329、制御部330、ログ記憶部333、及びこれらの構成要素の少なくとも一部を電気的に接続するローカルバス334を備える。
証明書出力部320は、ライセンス利用装置300の証明書C[KPd3]を出力する。証明書は、証明書出力部320が保持してもよいし、図示しない証明書保持部に保持しておき、それを読み出してもよい。証明書は、ライセンス利用装置300の公開鍵KPd3を含む証明書本体と、証明書本体に対して付される電子署名からなる。電子署名は、リムーバブルHDDユニット200の証明書と同様に、認証局のルート鍵Kaにより暗号化される。なお、証明書C[KPd3]は、証明書C[KPd1]と同一であってもよい。
乱数発生部321は、リムーバブルHDDユニット200との間で暗号通信を行うために一時的に使用されるセッション鍵Ks3を生成する。生成されたセッション鍵Ks3は、第3暗号部327、第3復号部328に伝達される。
証明書検証部322は、リムーバブルHDDユニット200の証明書C[KPd2]の検証を行う。検証の詳細は、上述したとおりである。
第1復号部323は、公開鍵KPd3によって暗号化されたデータを秘密鍵Kd3で復号する。再生時には、リムーバブルHDDユニット200で発行されたチャレンジ鍵Kc2は、ライセンス利用装置300の公開鍵KPd3により暗号化されてリムーバブルHDDユニット200から供給されるため、第1復号部323は、自身の秘密鍵Kd3によりこれを復号し、チャレンジ鍵Kc2を取り出す。取り出されたチャレンジ鍵Kc2は、第2暗号部325に伝達される。
第1暗号部324は、リムーバブルHDDユニット200の証明書C[KPd2]から取り出された公開鍵KPd2でデータの暗号化を行う。内部に秘密裏に保持するライセンス利用装置300に固有の秘密鍵Kp3と対をなす公開鍵KPp3をリムーバブルHDDユニット200に通知するために、暗号化固有公開鍵E(KPd2,KPp3)を生成する。生成した暗号化固有公開鍵E(KPd2,KPp3)は、第2暗号部325に伝達される。
第2暗号部325は、第1復号部323により取り出されたチャレンジ鍵Kc2で、データの暗号化を行う。第1暗号部324から伝達された暗号化固有公開鍵E(KPd2,KPp3)を暗号化して第2チャレンジ情報E(Kc2,E(KPd2,KPp3))を生成する。
第2復号部326は、公開鍵KPp3で暗号化されたデータを復号する。リムーバブルHDDユニット200から提供されたコネクション情報E(KPp3,Kb2||DID)を、公開鍵KPp3と対をなす秘密鍵Kp3で復号し、リムーバブルHDDユニット200で発行されたバス鍵Kb2と、ストレージデバイスを一意に特定できる識別情報DIDを取り出す。
第3暗号部327は、乱数発生部321で生成したセッション鍵Ks3をリムーバブルHDDユニット200に提供するために、第2復号部326で取り出したリムーバブルHDDユニット200が発行したバス鍵Kb2で暗号化して、セッション情報E(Kb2,Ks3)を生成する。
第3復号部328は、セッション鍵Ks3で暗号化されたデータを復号する。ライセンスデータLICは、公開鍵KPp3およびセッション鍵Ks3により2重に暗号化された暗号化ライセンスデータE(Ks3,E(KPp3,LIC))としてリムーバブルHDDユニット200から供給されるため、第3復号部328は、乱数発生部321が生成するセッション鍵Ks3により復号を行い、その結果である暗号化ライセンスデータE(KPp3,LIC)を第4復号部329に伝達する。
第4復号部329は、公開鍵KPp3で暗号化されたデータの復号を行う。公開鍵KPp3と対をなす秘密鍵Kp3で、第3復号部328の復号結果である暗号化ライセンスデータE(KPp3,LIC)を復号し、ライセンスデータLICを取り出す。
ログ記憶部333は、第2復号部326から伝達されたリムーバブルHDDユニット200の識別情報DID、およびリムーバブルHDDユニット200から受け取る予定のライセンスデータLICの識別情報LIDと当該ライセンスデータが格納されているリムーバブルHDDユニット200のアドレスデータADRを、関係付けて静的に記憶する。ライセンスデータLICが利用されると、当該ライセンスデータのLIDおよびADRは削除される。
制御部330は、ライセンス利用装置300のコントローラ101の指示に従って暗号エンジン103の内部の構成要素の制御および外部の構成との間でデータの入出力を仲介する。尚、図17では、制御部330による内部の各構成要素への制御を示す結線は省略されている。
図17に示す暗号エンジン103においても、各構成要素を接続する形態については、種々考えられるが、本実施の形態では、制御部330を介さないと、暗号エンジン103は外部とデータの交換ができない構成となっている。これにより、乱数発生部321が生成したセッション鍵Ks3、公開鍵と対をなしている秘密鍵Kd3およびKp3、リムーバブルHDDユニット200から受け取ったバス鍵Kb2、チャレンジ鍵Kc2などの暗号エンジン103内で使用される鍵が外部に漏洩されることを防ぐ。
図18は、図15に示したリムーバブルHDDユニット200の暗号エンジン203の内部構成を示す。暗号エンジン203は、制御部220、乱数発生部221、証明書出力部222、証明書検証部223、第1復号部224、第1暗号部225、第2暗号部226、第2復号部227、第3暗号部228、第3復号部229、第4復号部230、第4暗号部231、第5復号部232、第6復号部233、第5暗号部234、第7復号部235、第6暗号部236、第7暗号部237、及びこれらの構成要素の少なくとも一部を電気的に接続するローカルバス240を備える。
制御部220は、リムーバブルHDDユニット200のコントローラ201の指示に従って暗号エンジン203の内部の構成の制御および外部の構成との間でデータの入出力を仲介する。
乱数発生部221は、ナビゲーション装置1との間の暗号通信に一時的に使用されるセッション鍵Ks2、チャレンジ鍵Kc2、バス鍵Kb2を、乱数演算によって生成する。各鍵の用途については、追って説明する。
証明書出力部222は、リムーバブルHDDユニット200の証明書C[KPd2]を出力する。証明書は、証明書出力部222が保持してもよいし、リムーバブルHDDユニット200の所定の記憶領域、たとえば耐タンパ記憶部204に保持しておき、それを読み出してもよい。証明書は、リムーバブルHDDユニット200の公開鍵KPd2を含む証明書本体と、証明書本体に付された電子署名とを含む。電子署名は、認証局のルート鍵Kaにより暗号化される。
証明書検証部223は、外部から提供された証明書の検証を行う。具体的には、ナビゲーション装置1から取得した証明書C[KPd1]およびC[KPd3]を検証鍵KPaにより検証する。検証の詳細は、上記のとおりである。
第1復号部224は、自身の公開鍵KPd2で暗号化されたデータを復号する。具体的には、記録時には、ライセンス記録装置100で発行されたチャレンジ鍵Kc1が、リムーバブルHDDユニット200の公開鍵KPd2で暗号化されてライセンス記録装置100から供給されるため、これを自身の秘密鍵Kd2で復号し、チャレンジ鍵Kc1を取り出す。取り出されたチャレンジ鍵Kc1は、第2暗号部226に伝達される。
第1暗号部225は、ライセンス記録装置100の公開鍵KPd1でデータを暗号化する。具体的には、リムーバブルHDDユニット200が個別に保持する公開鍵KPp2とストレージデバイスを識別するための識別情報DIDとを結合した個別情報を暗号化した暗号化個別情報E(KPd1,KPp2||DID)を生成する。ここで用いるライセンス記録装置100の公開鍵KPd1は、制御部220によってリムーバブルHDDユニット200の証明書C[KPd1]内から取り出され、ローカルバス240を介して伝達される。
第2暗号部226は、ライセンス記録装置100が発行したチャレンジ鍵Kc1でデータを暗号化する。具体的には、第1暗号部225から受け取った暗号化個別情報E(KPd1,KPp2||DID)をチャレンジ鍵Kc1で暗号化し、第2チャレンジ情報E(Kc1,E(KPd1,KPp2||DID))を生成する。
第2復号部227は、自身の公開鍵KPp2で暗号化されたデータを復号する。第2復号部227は、ライセンス記録装置100から提供されるコネクション情報E(KPp2,Kb1)を、公開鍵KPp2と対をなす秘密鍵Kp2で復号し、取り出したバス鍵Kb1を第3暗号部228に伝達する。
第3暗号部228は、バス鍵Kb1でデータを暗号化する。具体的には、乱数発生部221が生成したセッション鍵Ks2をバス鍵Kb1で暗号化し、セッション情報E(Kb1,Ks2)を生成する。
第3復号部229は、乱数発生部221が生成したセッション鍵Ks2で暗号化されたデータを復号する。具体的には、ライセンス記録装置100から、ライセンスデータLICを、公開鍵KPp2およびセッション鍵Ks2により2重に暗号化されたE(Ks2,E(KPp2,LIC))として受け取り、これをセッション鍵Ks2により復号し、結果を第4復号部230に伝達する。
第4復号部230は、自身の公開鍵KPp2で暗号化されたデータを復号する。第3復号部229から伝達されるライセンスデータE(KPp2,LIC)を、公開鍵KPp2と対をなす自身の秘密鍵Kp2で復号し、ライセンスデータLICを取り出す。
取り出されたライセンスデータLICは、ローカルバス240、制御部220を介して、データバス210に供給され、コントローラ201の指示に従って、耐タンパ記憶部204に記憶される。
第4暗号部231は、ライセンス利用装置300の公開鍵KPd3でデータを暗号化する。具体的には、ライセンス利用装置300に対してライセンスデータLICを提供する場合、ライセンス利用装置300から受け取った証明書C[KPd3]から取り出された公開鍵KPd3で、乱数発生部221が発行するチャレンジ鍵Kc2を暗号化し、暗号化チャレンジ鍵E(KPd3,Kc2)を生成する。生成された暗号化チャレンジ鍵E(KPd3,Kc2)は、ローカルバス240を介して制御部220へ伝達される。制御部220では、これと証明書出力部222から出力される自身の証明書C[KPd2]とを結合して、第1チャレンジ情報E(KPd3,Kc2)||C[KPd2]を生成し、ライセンス利用装置300に出力する。
第5復号部232は、乱数発生部221が発行したチャレンジ鍵Kc2で暗号化されたデータを復号する。ライセンス利用装置300から受け取った第2チャレンジ情報E(Kc2,E(KPd2,KPp3))を、乱数発生部221が生成したチャレンジ鍵Kc2で復号し、取り出された暗号化個別公開鍵E(KPd2,KPp3)は第6復号部233に伝達される。
第6復号部233は、自身の公開鍵KPd2で暗号化されたデータを復号する。具体的には、第5復号部232から伝達された暗号化個別公開鍵E(KPd2,KPp3)を、自身の秘密鍵Kd2で復号し、ライセンス利用装置300の公開鍵KPp3を取り出す。取り出された公開鍵KPp3は、第5暗号部234と第6暗号部236に伝達される。
第5暗号部234は、ライセンス利用装置300の公開鍵KPp3でデータを暗号化する。乱数発生部221が生成したバス鍵Kb2と自身の識別情報DIDを結合し、このデータを暗号化して、コネクション情報E(KPp3,Kb2||DID)を生成する。
第7復号部235は、バス鍵Kb2で暗号化されたデータを復号する。ライセンス利用装置300から提供されたセッション情報E(Kb2,Ks3)を復号して、ライセンス利用装置300が発行したセッション鍵Ks3を取り出し、取り出されたセッション鍵Ks3は、第7暗号部237に伝達される。
第6暗号部236は、ライセンス利用装置300の公開鍵KPp3でデータを暗号化する。ライセンス利用装置300に対してライセンスデータを提供する場合、ライセンス利用装置300から受け取った公開鍵KPp3で、ライセンスデータLICを暗号化する。このライセンスデータLICは、コントローラ201の指示に従って、耐タンパ記憶部204から読み出され、データバス210、制御部220およびローカルバス240を介して第6暗号部236に伝達される。ここで、暗号化されたライセンスデータE(KPp3,LIC)は、第7暗号部237に伝達される。
第7暗号部237は、ライセンス利用装置300が発行したセッション鍵Ks3でデータを暗号化する。具体的には、セッション鍵Ks3で、第6暗号部236において暗号化されたライセンスデータE(KPp3,LIC)を、さらに暗号化し、暗号化ライセンスデータE(Ks3,E(KPp3,LIC))を生成する。
図19及び図20は、ライセンス記録装置100がリムーバブルHDDユニット200にライセンスデータLICを記録するまでの手順を示す。この記録処理では、ライセンス記録装置100の暗号エンジン103とリムーバブルHDDユニット200の暗号エンジン203との間で暗号通信路が構築され、その暗号通信路によってライセンスデータLICがライセンス記録装置100からリムーバブルHDDユニット200に送信される。図は、ライセンス記録装置100の暗号エンジン103、ライセンス記録装置100のコントローラ101、リムーバブルHDDユニット200の暗号エンジン203の処理を示している。
まず、ライセンス記録装置100のコントローラ101は、リムーバブルHDDユニット200に対して証明書出力命令を発行する(S102)。コントローラ201は、証明書出力命令を正常に受理する(S104)と、暗号エンジン203に証明書の出力を命じ、暗号エンジン203から証明書C[KPd2]を読み出してコントローラ101へ出力する(S106)。コントローラ101は、リムーバブルHDDユニット200から証明書C[KPd2]を取得すると、それを暗号エンジン103へ送信する(S108)。
暗号エンジン103の制御部130は、リムーバブルHDDユニット200から発行された証明書C[KPd2]を受信すると(S110)、それを暗号エンジン103に伝達し、証明書検証部120は、認証鍵KPaで証明書を検証する(S112)。
証明書が承認されなかった場合(S112のN)、証明書検証部120はエラーを制御部130に伝達する。エラーを伝達された制御部130は、検証エラー通知をコントローラ101に送信する(S190)。コントローラ101は、エラー通知を受信すると(S192)、処理を異常終了する。
証明書が承認された場合(S112のY)、制御部130は、乱数発生部121にてチャレンジ鍵Kc1を生成する。そして、生成したチャレンジ鍵Kc1を第1暗号部122および第1復号部123に伝達する。第1復号部123では、このチャレンジ鍵Kc1を内部に保持する(S114)。また、第1暗号部122では、このチャレンジ鍵Kc1を、証明書C[KPd2]から取り出したリムーバブルHDDユニット200の公開鍵KPd2で暗号化し、暗号化チャレンジ鍵E(KPd2,Kc1)を生成する。そして、生成した暗号化チャレンジ鍵E(KPd2,Kc1)と証明書出力部129から出力される自身の証明書C[KPd1]とを結合し、第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]を生成し、これをコントローラ101へ送信する(S116)。
コントローラ101は、暗号エンジン103から第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]を受信すると(S118)、リムーバブルHDDユニット200に対して第1チャレンジ情報検証命令を発行する(S120)。リムーバブルHDDユニット200では、コントローラ201が第1チャレンジ情報検証命令を受理すると、第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]の入力をコントローラ101に要求する(S122)。コントローラ101は、この要求に応じて第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]をリムーバブルHDDユニット200へ出力する(S124)。
リムーバブルHDDユニット200は、第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]を受理すると(S126)、暗号エンジン203では、制御部220が、第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]から証明書C[KPd1]を取り出し、これを証明書検証部223に伝達する。証明書検証部223は、伝達された証明書C[KPd1]を検証鍵KPaで検証し、検証結果を制御部220に伝達する(S128)。
証明書が承認されなかった場合(S128のN)、証明書検証部223は検証エラー通知を制御部220へ通知し、検証エラー通知を受けた制御部220はこれをコントローラ201へ通知する。そしてコントローラ201は、受信した検証エラー通知を、ストレージインタフェース202を介してコントローラ101に送信する(S194)。コントローラ101は、検証エラー通知を受信すると(S192)、本処理を異常終了する。
証明書が承認された場合(S128のY)、制御部220は、第1チャレンジ情報E(KPd2,Kc1)||C[KPd1]から、公開鍵KPd1と暗号化チャレンジ鍵E(KPd2,Kc1)を取り出し、それぞれ第1暗号部225、第1復号部224に伝達する。第1暗号部225は、伝達された公開鍵KPd1を保持する。第1復号部224は、伝達された暗号化チャレンジ鍵E(KPd2,Kc1)を自身の秘密鍵Kd2で復号し、チャレンジ鍵Kc1を取り出す(S130)。取り出されたチャレンジ鍵Kc1は、第2暗号部226に伝達される。
一方、コントローラ101は、リムーバブルHDDユニット200において第1チャレンジ情報検証命令の処理が終了すると、リムーバブルHDDユニット200に対して、第2チャレンジ情報生成命令を発行する(S132)。リムーバブルHDDユニット200では、コントローラ201が第2チャレンジ情報生成命令を受理する(S134)と、暗号エンジン203では制御部220の指示に従って、第1暗号部225が、自身が秘密裏に保持する秘密鍵Kp2と対をなす公開鍵KPp2と、自身の識別情報DIDを連結したデータを、公開鍵KPd1で暗号化して暗号化個別情報E(KPd1,KPp2||DID)を生成し、これを第2暗号部226に伝達する。第2暗号部226は、暗号化個別情報E(KPd1,KPp2||DID)を、S130で保持したチャレンジ鍵Kc1で暗号化して第2チャレンジ情報E(Kc1,E(KPd1,KPp2||DID))を生成する(S136)。
コントローラ101では、リムーバブルHDDユニット200において第2チャレンジ情報生成命令の処理が終了すると、第2チャレンジ情報出力命令を発行する(S138)。リムーバブルHDDユニット200では、第2チャレンジ情報出力命令を受理する(S140)と、コントローラ201が、暗号エンジン203から第2チャレンジ情報E(Kc1,E(KPd1,KPp2||DID))を読み出し、コントローラ101へ出力する(S142)。コントローラ101は、リムーバブルHDDユニット200から第2チャレンジ情報E(Kc1,E(KPd1,KPp2||DID))を受信すると、これを暗号エンジン103に送信する(S144)。
暗号エンジン103の制御部130は、第2チャレンジ情報E(Kc1,E(KPd1,KPp2||DID))を受信すると、第1復号部123に伝達する。第1復号部123は、内部に保持したチャレンジ鍵Kc1で、伝達された第2チャレンジ情報E(Kc1,E(KPd1,KPp2||DID))を復号し、暗号化個別情報E(KPd1,KPp2||DID)を取り出し、第2復号部124に伝達する。第2復号部124は、これを自身の秘密鍵Kd1で復号してストレージデバイスの公開鍵KPp2と識別情報DIDを取り出し、公開鍵KPp2を第2暗号部125と第3暗号部127に、識別情報DIDを制御部130へ伝達する(S146)。
制御部130は、識別情報DIDを受け取ると、ログ記憶部131に記録されている識別情報DIDと比較する(S150)。このときログ記憶部131には、直前に接続していたストレージデバイスの識別情報DIDが記録されている。一致した場合(S150のY)、前回と同じストレージデバイスであると判断し、ログ記憶部131の記録を残したままS154へ進む。一致しない場合(S150のN)、ストレージデバイスが交換されていると判断する。このとき、ログ記憶部131に記録されている内容は意味をなさなくなる。そこで、ログ記憶部131に記録されている内容を削除し、新たにS146で取得した識別情報DIDを記録する(S152)。このようにして、リムーバブルHDDユニット200に対するライセンスデータLICの転送におけるリカバリーに必要な情報をログ記憶部131に保持する準備が整ったことになる。そして、S154に進む。
制御部130は、乱数発生部121にてバス鍵Kb1を生成させ、保持する(S154)。そして、保持したバス鍵Kb1を第2暗号部125及び第3復号部126に伝達する。第2暗号部125では、このバス鍵Kb1を、S146で取得したストレージデバイスの公開鍵KPp2で暗号化し、コネクション情報E(KPp2,Kb1)を生成する。そして、生成したコネクション情報E(KPp2,Kb1)をコントローラ101へ送信する(S156)。
コントローラ101は、暗号エンジン103からコネクション情報E(KPp2,Kb1)を受信すると(S158)、リムーバブルHDDユニット200に対してコネクション情報入力命令を発行する(S160)。リムーバブルHDDユニット200では、コントローラ201がコネクション情報入力命令を受理すると、コネクション情報E(KPp2,Kb1)の入力をコントローラ101に要求する(S162)。コントローラ101は、この要求に応じてコネクション情報E(KPp2,Kb1)をリムーバブルHDDユニット200へ出力する(S164)。
リムーバブルHDDユニット200は、コネクション情報E(KPp2,Kb1)を受理すると、暗号エンジン203では、第2復号部227が、コネクション情報E(KPp2,Kb1)を、内部に保持する自身の秘密鍵Kp2で復号して、バス鍵Kb1を取り出し(S166)、これを内部に保持する(S168)。保持されたバス鍵Kb1は、第3暗号部228に伝達される。ここまでの手順において、暗号エンジン103と暗号エンジン203の間で、バス鍵Kb1が共有された。
一方、コントローラ101は、リムーバブルHDDユニット200においてコネクション情報入力命令の処理が終了すると、通常のライセンスデータの書込転送処理(LICライト転送処理)を行うためS180に進む。そして、ライセンスデータLICの書込を行う(S180)。ライセンスデータの書込転送処理(LICライト転送処理)については、後に詳細に説明する。
コントローラ101は、S180が終了すると、新たなライセンスデータLICを書き込むか否か判断する(S182)。新たなライセンスデータLICをリムーバブルHDDユニット200に書き込む場合(S182のY)、再びS180に戻ってライセンスデータの書込を行う。新たなライセンスデータLICの書込を行わない場合(S182のN)、処理を終了する。
図21は、図20におけるライセンスデータの書込転送処理(LICライト転送処理)のフローチャートである。本フローチャートに示す処理の前に、暗号エンジン103とリムーバブルHDDユニット200(暗号エンジン203)はバス鍵Kb1を共有し、暗号エンジン103はリムーバブルHDDユニット200の公開鍵KPp2を保持し、かつ、暗号エンジン103のログ記憶部131にはリムーバブルHDDユニット200の識別情報DIDが記録されている。
コントローラ101は、リムーバブルHDDユニット200に対して、セッション情報生成命令を発行する(S200)。リムーバブルHDDユニット200では、コントローラ201がセッション情報生成命令を受理する(S202)と、暗号エンジン203では制御部220の指示に従って、乱数発生部221がセッション鍵Ks2を生成し、生成したセッション鍵Ks2を、第3暗号部228、第3復号部229に伝達する(S204)。続いて、第3暗号部228は、バス鍵Kb1で、伝達されたセッション鍵Ks2を暗号化してセッション情報E(Kb1,Ks2)を生成する(S206)。コントローラ101では、リムーバブルHDDユニット200においてセッション情報生成命令の処理が終了すると、セッション情報出力命令を発行する(S208)。リムーバブルHDDユニット200では、セッション情報出力命令を受理する(S210)と、コントローラ201が、暗号エンジン203からセッション情報E(Kb1,Ks2)を読み出し、コントローラ101へ出力する(S212)。
コントローラ101は、リムーバブルHDDユニット200からセッション情報E(Kb1,Ks2)を受信すると(S214)、これとリムーバブルHDDユニット200のアドレスデータADRを連結して暗号エンジン103に送信する(S216)。アドレスデータADRは、後でライセンスデータLICを記録する際に指定するアドレスである。
暗号エンジン103の制御部130は、アドレスデータが連結されたセッション情報E(Kb1,Ks2)||ADRを受信すると、セッション情報E(Kb1,Ks2)とアドレスデータADRに分割し、セッション情報E(Kb1,Ks2)を第3復号部126に伝達する。第3復号部126は、乱数発生部121から伝達されたバス鍵Kb1で、このセッション情報E(Kb1,Ks2)を復号し、Ks2を取り出す(S218)。
制御部130は、ライセンスデータ書込処理の失敗に備えて、ライセンスデータLICと、分離したアドレスデータADRを、ライセンス転送先であるリムーバブルHDDユニット200を特定する情報(識別情報DID)に関係付けてログ記憶部131に追記する(S220)。ログ記憶部131への記録は、電源断などの不慮の事故によってライセンスデータ書込処理が中断した様な場合も対象とした、ライセンスデータ再書込処理に利用することを目的としているため、静的に記録される。
続いて、暗号エンジン103の第3暗号部127は、ライセンスデータLICをリムーバブルHDDユニット200の公開鍵KPp2で暗号化してE(KPp2,LIC)を生成し、これを第4暗号部128に伝達する。第4暗号部128は、伝達されたE(KPp2,LIC)を、さらにリムーバブルHDDユニット200が発行したセッション鍵Ks2で暗号化して暗号化ライセンスデータE(Ks2,E(KPp2,LIC))を生成し、これをコントローラ101に伝達する(S222)。
コントローラ101は、暗号エンジン103から送信された暗号化ライセンスデータE(Ks2,E(KPp2,LIC))を受信する(S224)と、リムーバブルHDDユニット200に対してライセンスデータ書込命令を発行する(S226)。このライセンス書込命令は、耐タンパ記憶部204上の記録位置を指定するアドレスデータADRを伴っている。このアドレスデータADRは、S216で暗号エンジン103に送信したものと同じ値である。ここでアドレスとは、論理アドレスを示し、耐タンパ記憶部204における記録位置を直接指定するものではないが、アドレスを指定して記録したデータは、同じアドレスを指定することで読み出せるように、コントローラ201によって管理されている。しかしながら、耐タンパ記憶部204における位置を示す物理アドレスであってもよい。
リムーバブルHDDユニット200では、コントローラ101が発行したライセンス書込命令を受理すると、暗号化ライセンスデータをコントローラ101に要求し(S228)、コントローラ101は、この要求に応じて、暗号化ライセンスデータE(Ks2,E(KPp2,LIC))をリムーバブルHDDユニット200へ出力する(S230)。
リムーバブルHDDユニット200は、暗号化ライセンスデータE(Ks2,E(KPp2,LIC))を受理すると、これを暗号エンジン203内の第3復号部229に伝達する。第3復号部229は、内部に保持しているセッション鍵Ks2で暗号化ライセンスデータE(Ks2,E(KPp2,LIC))を復号し、自身の公開鍵KPp2で暗号化されたライセンスデータE(KPp2,LIC)を取り出す。そして、取り出された暗号化ライセンスデータE(KPp2,LIC)は第4復号部230に伝達される。
第4復号部230は、伝達された暗号化ライセンスデータE(KPp2,LIC)を、公開鍵KPp2と対の秘密鍵Kp2で復号してライセンスデータLICを取り出し(S244)、これをローカルバス240を介して制御部220に伝達する。
制御部220は、ライセンスデータLICから識別情報LIDを取り出して、ログ記憶部131に伝達する。また、ライセンスデータLICをデータバス210へ出力する。コントローラ201は、データバス210に出力されたライセンスデータLICを耐タンパ記憶部204の指定されたアドレスADRに記憶する(S246)。続いて、完了通知をコントローラ101に出力する(S248)。
コントローラ101は、リムーバブルHDDユニット200から出力された完了通知を受信すると、これを暗号エンジン103に出力する(S250)。暗号エンジン103では、完了通知を受信すると(S252)、LIDを確認し、該当するADR||LIDをログ記憶部131から削除し(S254)、本処理を終了する。
以上の手順により、暗号化されたコンテンツを復号し再生するために必要なライセンスデータLICがリムーバブルHDDユニット200に記録される。暗号化コンテンツは、通常データであり、リムーバブルHDDユニット200の通常コマンドによって記録されるため、ここでは説明を省略する。
なお、ライセンスデータLICと暗号化コンテンツデータの記録順序は、いずれが先であってもかまわない。さらには、暗号化コンテンツデータの記録における空き時間に、セキュアコマンドを分割して発行することで、ライセンスデータLICを記録するようにしてもよい。
リムーバブルHDDユニット200からライセンス利用装置300へライセンスデータを送信する場合にも、上記と同様の手順により、両者の暗号エンジンによる暗号通信が行われる。ライセンスデータをライセンス記録装置100からリムーバブルHDDユニット200へ記録するとき、及び、リムーバブルHDDユニット200に記録されたライセンスデータをライセンス利用装置300が読み出すときに、上述したような暗号通信路を用いてライセンスデータを送受信することにより、ライセンスデータの漏洩を防止し、コンテンツデータを保護することができる。
図22は、リムーバブルHDDユニット200のディレクトリ構造を示す。本実施の形態では、図3に示した第1の実施の形態におけるリムーバブルHDDユニット200のディレクトリ構造に比べて、ユーザ情報管理ディレクトリ400の配下にライセンスファイル430が更に記録される。ライセンスファイル430は、登録データ群ファイル420に対して1対1に対応づけられる。ライセンスファイル430は、リムーバブルHDDユニット200の耐タンパ記憶部204に記録される。それ以外のファイルやディレクトリは、通常データ記憶部205に記録される。
図23は、登録情報管理ファイル410のデータ構造の例を示す。本実施の形態では、図4に示した第1の実施の形態における登録情報管理ファイル410のデータ構造に加えて、ライセンスファイル名LF1〜LFNが更に記録される。各登録データ群ファイル420に対して、1つのライセンスファイル430が対応している。機器バインド情報BInのデータ構造、登録データ群ファイル420のデータ構造、登録データDmのデータ構造は、それぞれ、図5、図6、図7と同様である。ライセンスファイル430のデータ構造は、本実施の形態では、図13に示したライセンスデータがライセンスファイル430に1つ記録されるものとする。
図24は、本実施の形態において登録情報を記録する手順を示すフローチャートである。登録情報受付部30がユーザから登録情報を受け付けると(S410)、登録部31は、登録データ群ファイル名の入力を受け付けて登録データ群ファイルを新規に作成し(S412)、1番目の登録データとして受け付けた登録情報を登録する(S414)。登録部31は、更に、登録情報管理ファイル410に新規に作成した登録データ群ファイル名Fnを追加する(S416)。共有管理部32は、登録情報を他の装置でも読み出し可能として共有するか否かをユーザから受け付け(S418)、共有しない、すなわちこの装置にバインドする場合は(S418のN)、登録情報管理ファイル410の機器バインド情報BInの機器バインドフラグBFに「1」を登録するとともに(S420)、ROM28から読み出した機器IDをバインド機器ID(BID)に登録する(S422)。更に、共有管理部32は、ライセンス生成部107に、機器にバインドされたライセンスファイル430を生成させる(S423)。具体的には、乱数生成部161がコンテンツ鍵Kcを生成し、コンテンツ鍵暗号部163がID整形部162により整形された機器IDを用いてコンテンツ鍵Kcを暗号化してbinded Kcを生成する。ライセンスデータフォーマッタ164は生成されたbinded Kcを含むライセンスデータを生成し、機器にバインドされたライセンスファイル430を生成して暗号エンジン103に送る。
登録情報を他の装置と共有する場合は(S418のY)、機器バインドフラグBFに「0」を登録し(S424)、ライセンス生成部107に、機器にバインドされないライセンスファイル430を生成させる(S426)。具体的には、乱数生成部161がコンテンツ鍵Kcを生成し、ライセンスデータフォーマッタ164がこのコンテンツ鍵Kcを含むライセンスデータを生成し、機器にバインドされないライセンスファイル430を生成して暗号エンジン103に送る。
コンテンツ暗号部104は、ライセンス生成部107から転送されたコンテンツ鍵Kcを用いて登録データ群ファイル420を暗号化する(S427)。暗号化された登録データ群ファイル420は、通常コマンドを用いてリムーバブルHDDユニット200の通常データ記憶部205に記録される(S428)。ライセンス生成部107により生成されたライセンスファイル430は、暗号エンジン103により、上述した暗号通信を用いてリムーバブルHDDユニット200の耐タンパ記憶部204に記録される(S429)。
図25は、登録データを表示する手順を示すフローチャートである。まず、図9に示した手順により、リムーバブルHDDユニット200に記録された登録データ群ファイル420のうち、ナビゲーション装置1により読み出し可能な登録データ群ファイル420の一覧を表示する(S430)。ユーザから、一覧の中から任意の登録データ群ファイル420の選択を受け付けると(S432)、登録情報読み出し部35は、登録情報管理ファイル410を参照して、選択された登録データ群ファイル420に対応するライセンスファイル430のファイル名LFを取得し、暗号エンジン103を介して、リムーバブルHDDユニット200からライセンスファイル430を取得する(S434)。ライセンス判読部108は、取得されたライセンスファイル430を判読する(S436)。形式解析部171は、「Binding Flag」を参照して機器バインドされているか否かを判別し、機器バインドされていれば、コンテンツ鍵復号部173がID整形部172により整形された機器IDを用いて、暗号化されたコンテンツ鍵を復号し、コンテンツ復号部111に転送する。機器バインドされていなければ、形式解析部171がライセンスデータからコンテンツ鍵Kcを抽出し、コンテンツ復号部111に転送する。
選択された登録データ群ファイル420を、通常コマンドによりリムーバブルHDDユニット200から取得すると(S438)、コンテンツ復号部111がコンテンツ鍵Kcで登録データ群ファイル420を復号し(S440)、登録データ群ファイル420に記録されている登録データの一覧を表示する(S442)。例えば、それぞれの登録データ名DNAMEを一覧表示してもよい。ユーザから、一覧の中から任意の登録データDmの選択を受け付けると(S444)、選択された登録データを表示する(S446)。
図26は、機器にバインドされた登録データ群ファイル420の機器バインドを解除する手順を示すフローチャートである。本実施の形態における機器バインドを解除する手順は、図10に示した第1の実施の形態における手順とほぼ同じであるが、a番目の機器バインドを解除する手順(S62)の内容が異なる。図26は、図10のS62に代わる手順の詳細を示す。
まず、暗号エンジン103を介して、a番目の登録データ群ファイル420に対応するライセンスファイル430を取得する(S450)。ライセンス判読部108は、取得したライセンスファイル430を判読し(S452)、コンテンツ鍵Kcを取得する。コンテンツ復号部111は、リムーバブルHDDユニット200からa番目の登録データ群ファイル420を取得し(S454)、コンテンツ鍵Kcで復号する(S456)。共有管理部32は、a番目の機器バインド情報BIaの機器バインドフラグBFを「0」に変更する(S458)。
つづいて、乱数生成部161は、新たにコンテンツ鍵Kcを生成し(S460)、ライセンスデータフォーマッタ164は、生成されたコンテンツ鍵Kcを含む機器にバインドされないライセンスファイル430を生成する(S462)。コンテンツ暗号部104は、新たに生成されたコンテンツ鍵Kcでa番目の登録データ群ファイル420を暗号化し(S464)、暗号化された登録データ群ファイル420をリムーバブルHDDユニット200に記録する(S466)。また、新たに生成されたライセンスファイル430は、暗号エンジン103を介してセキュアにリムーバブルHDDユニット200に記録される(S468)。
図27は、機器にバインドされた登録データ群ファイル420の機器バインドを解除する手順の別の例を示すフローチャートである。図27も、図10のS62に代わる手順の詳細を示す。
まず、暗号エンジン103を介して、a番目の登録データ群ファイル420に対応するライセンスファイル430を取得する(S470)。ライセンス判読部108は、取得したライセンスファイル430を判読し(S472)、コンテンツ鍵Kcを取得する。共有管理部32は、a番目の機器バインド情報BIaの機器バインドフラグBFを「0」に変更する(S474)。ライセンスデータフォーマッタ164は、復号されたコンテンツ鍵Kcを含む、機器にバインドされないライセンスファイル430を生成する(S476)。新たに生成されたライセンスファイル430は、暗号エンジン103を介してセキュアにリムーバブルHDDユニット200に記録される(S478)。
図28は、図27に示した手順を実現するためのライセンス生成部107の構成を示す。本図のライセンス生成部107は、図12に示したライセンス生成部107の構成に比べて、スイッチ165の入力端子が追加されている。スイッチ165には、乱数生成部161により生成されたコンテンツ鍵、コンテンツ鍵暗号部163により暗号化され機器にバインドされたコンテンツ鍵、ライセンス判読部108により復号されたコンテンツ鍵のいずれかが入力される。登録データ群ファイル420の機器バインドを解除する時は、ライセンス判読部108により復号されたコンテンツ鍵をライセンスデータフォーマッタ164に入力するようスイッチ165が制御される。
図29は、図27に示した手順を実現するためのライセンス判読部108の構成を示す。本図のライセンス判読部108は、図14に示したライセンス判読部108の構成に比べて、スイッチ176が追加されている。スイッチ176は、形式解析部171によりライセンスデータから抽出されたコンテンツ鍵、又はコンテンツ鍵復号部173により復号されたコンテンツ鍵を、コンテンツ復号部111に出力するか、ライセンス生成部107に出力するかを切り替える。登録データ群ファイル420の機器バインドを解除する時は、コンテンツ鍵復号部173により復号されたコンテンツ鍵をライセンス生成部107に出力するようスイッチ176が制御される。
以上のように、リムーバブルHDDユニット200に登録情報を記録する際に、他装置でも読み出し可能として共有するか、他装置での読み出しを禁止して機器にバインドするかを選択可能とすることで、秘匿すべき情報は適切に保護しつつ、他装置との間で情報を共有することができ、可搬型の記憶装置であるリムーバブルHDDユニット200の利便性を享受することができる。
なお、本実施の形態では、個人情報を保護する観点から、機器にバインドせずに他の装置による読み出しが許可される登録情報もコンテンツ鍵で暗号化する例を示したが、暗号化せずにリムーバブルHDDユニット200に記録してもよい。
本実施の形態では、登録情報を機器にバインドする場合、登録データ群ファイル420をコンテンツ鍵Kcで暗号化し、コンテンツ鍵Kcを機器IDで暗号化してリムーバブルHDDユニット200に記録したが、登録データ群ファイル420を機器IDで暗号化してもよい。この場合、登録データ群ファイル420を記録したナビゲーション装置1であれば、自装置の機器IDを用いて、暗号化された登録データ群ファイル420を復号することができるので、ライセンスファイル430をリムーバブルHDDユニット200に記録しなくてもよい。
以上、本発明に係る実施の形態について説明したが、この実施の形態は例示であり、本発明はこの実施の形態に限定されるものではなく、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
10 GPS受信機、12 ジャイロスコープ、14 車速センサ、16 位置検出器、20 リモコン受光部、22 バッファメモリ、24 表示パネル、26 リムーバブルHDD挿入検出部、28 ROM、30 登録情報受付部、31 登録部、32 共有管理部、33 読み出し要求受付部、34 判定部、35 登録情報読み出し部、36 目的地設定部、37 経路算出部、38 地図データ処理部、101 コントローラ、102 ストレージインタフェース、103 暗号エンジン、104 コンテンツ暗号部、107 ライセンス生成部、108 ライセンス判読部、111 コンテンツ復号部、119 暗号/復号モジュール、161 乱数生成部、162 ID整形部、163 コンテンツ鍵暗号部、164 ライセンスデータフォーマッタ、171 形式解析部、172 ID整形部、173 コンテンツ鍵復号部、200 リムーバブルHDDユニット、201 コントローラ、202 ストレージインタフェース、203 暗号エンジン、204 耐タンパ記憶部、205 通常データ記憶部。
Claims (11)
- コンテンツのデータを格納した可搬型の記憶装置との間でデータの入出力を制御するインタフェースと、
前記コンテンツに関連した登録情報の記録要求をユーザから受け付け、前記登録情報を取得して前記記憶装置に記録する登録部と、
他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録する共有管理部と、
を備えることを特徴とするデータ管理装置。 - 前記登録情報を前記記憶装置から読み出す要求を受け付け、要求された登録情報を前記記憶装置から読み出す登録情報読み出し部と、
前記登録情報読み出し部が登録情報を読み出す前に、その登録情報に対応付けられた共有情報を前記記憶装置から読み出して、その登録情報の当該装置による読み出しの許否を判定し、読み出しが許可されない場合、前記登録情報読み出し部による前記登録情報の読み出しを禁止する判定部と、
を更に備えることを特徴とする請求項1に記載のデータ管理装置。 - 自装置に固有の情報を外部に公開しないように保持する固有情報保持部を更に備え、
前記共有管理部は、他の装置による前記登録情報の読み出しを禁止する場合は、前記固有情報保持部から読み出した自装置の固有情報を更に前記登録情報に対応付けて前記記憶装置に記録することを特徴とする請求項1又は2に記載のデータ管理装置。 - 前記判定部は、読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、その登録情報に対応付けて前記記憶装置に記録された固有情報と、前記固有情報保持部に保持された自装置の固有情報とを比較し、一致しなければその登録情報の読み出しを禁止することを特徴とする請求項3に記載のデータ管理装置。
- 他の装置による前記登録情報の読み出しを禁止する場合に、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を暗号鍵で暗号化するとともに、前記暗号鍵を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えることを特徴とする請求項3又は4に記載のデータ管理装置。
- 読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有暗号鍵で暗号化された前記暗号鍵を前記記憶装置から読み出して、前記固有情報を用いて生成された固有復号鍵で復号して前記暗号鍵を得る復号部を更に備える請求項5に記載のデータ管理装置。
- 他の装置による前記登録情報の読み出しを禁止する場合は、前記登録部が前記登録情報を前記記憶装置に記録する前に、その登録情報を、前記固有情報を用いて生成された固有暗号鍵で暗号化する暗号部を更に備えることを特徴とする請求項3又は4に記載のデータ管理装置。
- 読み出しを要求された登録情報に対応付けられた共有情報が、他の装置による読み出しを禁止することを示す共有情報であった場合、前記固有情報を用いて生成された固有復号鍵で前記登録情報を復号する復号部を更に備える請求項7に記載のデータ管理装置。
- 前記暗号部は、前記固有暗号鍵を用いて共通鍵暗号方式でデータを暗号化し、前記復号部は、前記暗号部において前記固有暗号鍵を生成するのと同じ方法により、前記固有暗号鍵と同一である前記固有復号鍵を生成してデータを復号することを特徴とする請求項6又は8に記載のデータ管理装置。
- 該データ管理装置は、ナビゲーション装置であり、
現在位置を検知する位置検知部と、
検知された現在位置の周辺の地図データを前記記憶装置から読み出して表示装置に表示させる地図データ処理部と、を更に備え、
前記登録部は、ユーザが目的地として利用する地点の登録情報を前記記憶装置に登録することを特徴とする請求項1から9のいずれかに記載のデータ管理装置。 - コンテンツのデータを格納した可搬型の記憶装置に、前記コンテンツに関連した登録情報を記録する要求をユーザから受け付けるステップと、
前記登録情報を取得して前記記憶装置に記録するステップと、
他の装置による前記登録情報の読み出しを許可するか、他の装置による前記登録情報を読み出しを禁止して自装置でのみ読み出し可能とするかの設定をユーザから受け付け、その旨を示す共有情報を前記登録情報に対応付けて前記記憶装置に記録するステップと、
を含むことを特徴とするデータ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006152808A JP2007323367A (ja) | 2006-05-31 | 2006-05-31 | データ管理装置及びデータ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006152808A JP2007323367A (ja) | 2006-05-31 | 2006-05-31 | データ管理装置及びデータ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007323367A true JP2007323367A (ja) | 2007-12-13 |
Family
ID=38856114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006152808A Withdrawn JP2007323367A (ja) | 2006-05-31 | 2006-05-31 | データ管理装置及びデータ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007323367A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009245135A (ja) * | 2008-03-31 | 2009-10-22 | Fujitsu Frontech Ltd | 情報処理端末装置及びアプリケーションプログラムの起動認証方法 |
JP2014085985A (ja) * | 2012-10-26 | 2014-05-12 | Sony Corp | 情報処理装置、情報記憶装置、情報処理システム、および情報処理方法、並びにプログラム |
-
2006
- 2006-05-31 JP JP2006152808A patent/JP2007323367A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009245135A (ja) * | 2008-03-31 | 2009-10-22 | Fujitsu Frontech Ltd | 情報処理端末装置及びアプリケーションプログラムの起動認証方法 |
JP2014085985A (ja) * | 2012-10-26 | 2014-05-12 | Sony Corp | 情報処理装置、情報記憶装置、情報処理システム、および情報処理方法、並びにプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4690600B2 (ja) | データ保護方法 | |
RU2352985C2 (ru) | Способ и устройство для санкционирования операций с контентом | |
CN100452219C (zh) | 用于保护内容的方法和设备 | |
JP4865854B2 (ja) | デジタル著作権管理方法および装置 | |
JP2007304822A (ja) | コンテンツ管理方法及び装置 | |
US8132024B2 (en) | Digital work protection system, recording apparatus, reproduction apparatus, and recording medium | |
KR100620920B1 (ko) | 은닉해야 할 데이터를 암호화하여 입출력하는 방법 및 장치 | |
JP4624235B2 (ja) | コンテンツ利用情報提供装置およびコンテンツ利用情報送信方法 | |
US7831831B2 (en) | Authentication communication system, authentication communication apparatus, and authentication communication method | |
US7647646B2 (en) | Information input/output system, key management device, and user device | |
EP1605459A2 (en) | A transmission apparatus that transmits a digital work via a network | |
JP2000260121A (ja) | 情報再生装置および情報記録装置 | |
JP2007164334A (ja) | 複製制御装置、情報処理端末とそのプログラム、コンテンツ受信装置、および複製制御方法 | |
WO2005121980A1 (ja) | 情報取得装置、情報取得方法、情報取得プログラム | |
JP4965512B2 (ja) | 認証システム、情報処理装置、記憶装置、認証方法及びそのプログラム | |
US9166980B2 (en) | Content management system, management server, memory media device and content management method | |
JP4268673B1 (ja) | 著作権保護システム、再生装置、及び再生方法 | |
JP2007323367A (ja) | データ管理装置及びデータ管理方法 | |
JP4638160B2 (ja) | 著作物保護システム、記録装置、再生装置及び記録媒体 | |
US20050141011A1 (en) | Apparatus and method for recording data on and reproducing data from storage medium | |
JP2006268668A (ja) | 端末認証、端末変更方法、操作端末、認証サーバ、および認証プログラム | |
JP2006277697A (ja) | コンテンツ転送システム,コンテンツ転送装置,コンテンツ再生装置,コンテンツ転送方法およびコンテンツ再生方法 | |
JP4765377B2 (ja) | コンテンツ提供サーバ,および携帯電話 | |
JP2001217822A (ja) | 暗号化記録装置 | |
JP5186639B2 (ja) | リモートアクセスシステム、リモートアクセス方法およびリモートアクセスプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090508 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100317 |