JP2004054798A - プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラム - Google Patents
プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラム Download PDFInfo
- Publication number
- JP2004054798A JP2004054798A JP2002214496A JP2002214496A JP2004054798A JP 2004054798 A JP2004054798 A JP 2004054798A JP 2002214496 A JP2002214496 A JP 2002214496A JP 2002214496 A JP2002214496 A JP 2002214496A JP 2004054798 A JP2004054798 A JP 2004054798A
- Authority
- JP
- Japan
- Prior art keywords
- program
- module
- processor
- data
- function
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】プログラムやコンテンツの保護が十分に図られるようにするためのプログラム認証装置等を提供することである。
【解決手段】開発用マシン1は、DirectShow(登録商標)のフィルタを表すフィルタモジュールまたはそのハッシュ値を秘密鍵で暗号化して署名データを作成する。コンテンツ再生用マシン2は、署名データを復号化してフィルタモジュール又はそのハッシュ値を復元し、一方で外部記憶部25よりフィルタモジュールを読み出す。そして復元されたフィルタモジュール(又はそのハッシュ値)と外部記憶部25から読み出したフィルタモジュール(又はそのハッシュ値)とが一致すればデジタル放送のデータストリームを取得してコンテンツをDirectShow(登録商標)で処理して再生する。一致しなければコンテンツの再生は阻止される。
【選択図】 図1
【解決手段】開発用マシン1は、DirectShow(登録商標)のフィルタを表すフィルタモジュールまたはそのハッシュ値を秘密鍵で暗号化して署名データを作成する。コンテンツ再生用マシン2は、署名データを復号化してフィルタモジュール又はそのハッシュ値を復元し、一方で外部記憶部25よりフィルタモジュールを読み出す。そして復元されたフィルタモジュール(又はそのハッシュ値)と外部記憶部25から読み出したフィルタモジュール(又はそのハッシュ値)とが一致すればデジタル放送のデータストリームを取得してコンテンツをDirectShow(登録商標)で処理して再生する。一致しなければコンテンツの再生は阻止される。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラムに関する。
【0002】
【従来の技術】
画像や音声などのコンテンツを、コンテンツを表すデータを含むパケットが連続したものからなるデータストリームの形で放送するデジタル放送が利用されている。
【0003】
デジタル放送されたコンテンツは、デジタル形式のデータとして記憶装置に蓄積することができ、蓄積の際にデータの劣化が非常に起こりにくい。
このため、デジタル放送されたコンテンツにかかる著作権などの権利の保護を図るための技術が用いられている。具体的には、コンテンツを表すデータを暗号化した上で蓄積する手法がある。
【0004】
【発明が解決しようとする課題】
しかし、デジタル放送されたコンテンツのうちには、コンテンツを表すデータが、所定のプログラムを実行するコンピュータ等により所定の処理を経て再生されたときはじめてコンテンツの制作者の意図通りに再生される、という性質を持つものがある。
【0005】
また、コンテンツを表すデータに所定の処理を施すプログラムを改竄することにより、このデータが、コンテンツの制作者の意図に反して不正に出力したり記録したりされる、という危険もある。
【0006】
このため、コンテンツを表すデータの保護を図っても、このデータに所定の処理を施すためのプログラムを改竄などから保護しなければ、コンテンツの十分な保護は図れない。
【0007】
この発明は、上記実状に鑑みてなされたものであり、プログラムやコンテンツの保護が十分に図られるようにするためのプログラム認証装置及びプログラム認証方法や、このようなプログラム認証装置及びプログラム認証方法の実現を容易にするためのプログラム署名装置及びプログラム署名方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成すべく、この発明の第1の観点にかかるプログラム認証装置は、
プロセッサと、メモリとを備え、
前記メモリは、前記プロセッサが実行するためのプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、
前記メモリが記憶する前記プログラムより前記モジュールを抽出し、抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成し、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記プロセッサ自身が前記処理ブロックを実現することを阻止する、
ことを特徴とする。
【0009】
また、この発明の第2の観点にかかるプログラム認証装置は、
プロセッサと、メモリとを備え、
前記メモリは、前記プロセッサが実行するためのプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、
外部より照合用署名データを取得して復号化し、
前記メモリが記憶する前記プログラムより前記モジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記プロセッサ自身が前記処理ブロックを実現することを阻止する、
ことを特徴とする。
【0010】
また、この発明の第3の観点にかかるプログラム署名装置は、
プロセッサと、メモリとを備え、
前記メモリはプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、前記メモリが記憶する前記プログラムより前記モジュールを抽出し、抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する、
ことを特徴とする。
【0011】
また、この発明の第4の観点にかかるプログラム認証方法は、
プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成し、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記装置が前記プログラムを実行することを阻止する、
ことを特徴とする。
【0012】
また、この発明の第5の観点にかかるプログラム認証方法は、
外部より照合用署名データを取得して復号化し、
プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記装置が前記プログラムを実行することを阻止する、
ことを特徴とする。
【0013】
また、この発明の第6の観点にかかるプログラム署名方法は、
プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する、
ことを特徴とする。
【0014】
また、この発明の第7の観点にかかるプログラムは、
コンピュータに、
認証対象のプログラムより、前記コンピュータ自身が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出する機能と、
抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成する機能と、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記コンピュータ自身が前記認証対象のプログラムを実行することを阻止する機能と、
を行わせるためのものであることを特徴とする。
【0015】
また、この発明の第8の観点にかかるプログラムは、
コンピュータに、
外部より照合用署名データを取得して復号化する機能と、
認証対象のプログラムより、前記コンピュータ自身が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記コンピュータ自身が前記認証対象のプログラムを実行することを阻止する機能と、
を行わせるためのものであることを特徴とする。
【0016】
また、この発明の第9の観点にかかるプログラムは、
コンピュータに、
認証対象のプログラムより、所定の装置が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出する機能と、
抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する機能と、
を行わせるためのものであることを特徴とする。
【0017】
【発明の実施の形態】
以下、この発明の実施の形態を、図面を参照して説明する。
図1は、この発明の実施の形態に係るデジタル放送受信システムの構成を示す図である。図示するように、このデジタル放送受信システムは、開発用マシン1と、コンテンツ再生用マシン2とPC−DTV(Personal Computer−Digital TeleVision)ボード3とより構成されている。このうちPC−DTVボード3は、コンテンツ再生用マシン2に接続できるよう構成されている。
【0018】
開発用マシン1は、たとえば図1に示すように、プロセッサ11と、主記憶部12と、入力部13と、出力部14と、外部記憶部15、記録媒体アクセス部16とを備える。主記憶部12、入力部13、出力部14、外部記憶部15及び記録媒体アクセス部16は、プロセッサ11に接続されている。
【0019】
プロセッサ11は、CPU(Central Processing Unit)等からなる。プロセッサ11は、コンテンツ再生用マシン2の起動後、外部記憶部15に記憶されている後述のオペレーティングシステム(OS)を読み出して実行し、このOSの制御に従って、後述の署名プログラムを外部記憶部15より読み出す。そして、この署名プログラムに従って、後述する処理を行う。
【0020】
主記憶部12は、RAM(Random Access Memory)等からなる。主記憶部12は、プロセッサ11のワークエリアとなる記憶領域を有する。
【0021】
入力部13は、たとえばキーボードやポインティングデバイス(例えば、マウス)等からなっており、操作者の操作に従ったデータをプロセッサ11に供給する。
【0022】
出力部14は、画像の表示を制御するビデオ回路や、この制御に従って画像を表示する液晶パネル等の表示装置や、音声を再生するための増幅回路及びスピーカ等より構成されている。出力部14は、プロセッサ11が供給する指示に従った画像や音声を出力する。
【0023】
外部記憶部15は、ハードディスク装置等からなる。外部記憶部15は、上述したOSや署名プログラムと、後述する署名処理において暗号化のために用いる秘密鍵及び曲線パラメータ等のデータとを記憶している。外部記憶部15は、プロセッサ11からのアクセスに従い、プロセッサが供給するデータを記憶したり、自己が記憶しているデータを読み出してプロセッサに供給したりする。
【0024】
外部記憶部15が記憶する秘密鍵は、EC(Elliptic Curve)−DSA(Digital Signature Algorithm)の手法を用いてデータを暗号化するための暗号鍵であり、暗号化する対象のデータをこの暗号鍵を用いてEC−DSAの手法により暗号化することにより得られるデータは、実質上、後述する公開鍵を用いて復号化しなければ平文のデータへと復元することができない。
また、外部記憶部15が記憶する曲線パラメータは、EC−DSAの手法による暗号化のために用いる楕円曲線を特定するパラメータからなっている。
【0025】
なお、OSは、例えばマイクロソフト社のウィンドウズ(登録商標)からなっている。OSは、機能上、プロセッサ11が実行する処理を制御する処理ブロックを複数含む。これらの処理ブロックのうちには、コンテンツ再生用マシン2が再生するコンテンツ(具体的には、画像や音声など)に視聴覚上の効果を与えるため、このコンテンツを表すコンテンツデータに加工を施す処理を制御するコンテンツ加工用の処理ブロックが含まれる。なお、コンテンツ加工用の処理ブロックは、開発者等が任意に作成してOSに追加するようにしても差し支えない。
【0026】
OSが上述のウィンドウズ(登録商標)からなる場合、コンテンツ加工用の処理ブロックは、例えば、ウィンドウズ(登録商標)が提供する機能であるDirectX(登録商標)の一部であるDirectShow(登録商標)を実現するためにある、「フィルタ」と呼ばれるアプリケーションインターフェース(API)からなっている。ウィンドウズ(登録商標)の処理を制御するプログラムのうちフィルタを制御する部分(フィルタモジュール)は、フィルタ毎に別個のファイルとして、外部記憶部15や、コンテンツ再生用マシン2の後述する外部記憶部25に格納されている。
【0027】
なお、それぞれのコンテンツ加工用の処理ブロックには、各自に固有の識別情報が割り当てられており、この識別情報は、一定の規則に従ってソートすることが可能である。OSがウィンドウズ(登録商標)からなる場合、この識別情報は、例えばGUID(Globally Unique IDentifier)と呼ばれる数値からなっている。GUIDは数値からなるので、例えば昇順あるいは降順にソート可能である。
【0028】
また、OSがウィンドウズ(登録商標)からなる場合、OSを実行するコンテンツ再生用マシン2や開発用マシン1は、フィルタのGUIDと、フィルタの処理を制御するフィルタモジュールのパス名(このフィルタモジュールが格納されている記憶領域の論理的位置)とを互いに対応付けて格納するテーブルであるレジストリを、自己の外部記憶部の記憶領域内に確保する。また、ウィンドウズ(登録商標)は、フィルタモジュールのパス名を特定する機能を有するAPIを提供している。このため、コンテンツ再生用マシン2や開発用マシン1は、まずAPIの制御に従ってフィルタモジュールのパス名を特定し、特定したパス名を検索キーとしてレジストリを検索することにより、フィルタのGUIDを取得することができる。
【0029】
コンテンツ加工用の処理ブロックは、自己に後続する処理を制御する処理ブロックを指定する接続先情報を含んでいる。このため、OSの制御下にあるアプリケーション等がOSから呼び出す処理を制御する処理ブロックが特定できれば、このアプリケーションがコンテンツ加工用の処理ブロックの集合によって実現する視聴覚上の効果の内容や、この効果を実現するために行うべき処理の内容も特定できる。
そして、このアプリケーションを実行するプロセッサは、アプリケーションが呼び出した処理を表す処理ブロックを動的にロードする。すなわち、このような処理ブロックを生成するために必要なデータを特定してOSより抽出し、抽出したデータを用いてこの処理ブロックを生成し、実行する。
【0030】
記録媒体アクセス部16は、CD(Compact Disc)−RW(ReWritable)ドライブや、MO(Magneto Optical disk)ドライブあるいはその他記録媒体にアクセスするドライブ装置からなる。記録媒体アクセス部16は、自己に装着された記録媒体(例えば、CD−RWや、CD−R(Recordable)や、MOなど)に、プロセッサ11からの指示に従ってアクセスし、プロセッサが供給するデータをこの記録媒体が有する記憶領域に書き込んだり、この記憶領域からデータを読み出してプロセッサ11に供給したりする。
【0031】
コンテンツ再生用マシン2は、例えば、開発用マシン1と実質的に同一の構成を有している。すなわち、コンテンツ再生用マシン2は、例えば図1に示すように、プロセッサ21と、主記憶部22と、入力部23と、出力部24と、外部記憶部25と、記録媒体アクセス部26とを備える。プロセッサ21、主記憶部22、入力部23、出力部24、外部記憶部25及び記録媒体アクセス部26は、開発用マシン1のプロセッサ11、主記憶部12、入力部13、出力部14及び外部記憶部15及び記録媒体アクセス部16と実質的に同一のものである。主記憶部22、入力部23、出力部24、外部記憶部25及び記録媒体アクセス部26はプロセッサ21に接続されている。
【0032】
また、図1に示すように、コンテンツ再生用マシン2は、バスコントローラ27を更に備える。バスコントローラ27はプロセッサ21に接続され、また、例えばPCI(Peripheral Component Interface)バスからなる接続バスBに接続される。
バスコントローラ27は、論理回路等からなり、プロセッサ21とコンテンツ再生用マシン2の外部の装置との間での接続バスBを介したデータ交換を制御する。
【0033】
コンテンツ再生用マシン2の外部記憶部25は、開発用マシン1の外部記憶部15が記憶するものと実質的に同一のOSを記憶している。そして、プロセッサ21は、外部記憶部25に記憶されているこのOSを読み出して実行し、このOSの制御に従って、後述する実行ファイルを外部記憶部25等より読み出し、後述する認証処理等を行う。
【0034】
また、外部記憶部25は、上述した公開鍵及び曲線パラメータを更に記憶している。外部記憶部25が記憶する曲線パラメータは、開発用マシン1が記憶している曲線パラメータが示すものと同一の楕円曲線を示すものである。
開発用マシン1が記憶する上述の秘密鍵を用いてEC−DSAの手法により暗号化されたデータは、この公開鍵を用いてEC−DSAの手法(ただし、外部記憶部25が記憶する曲線パラメータが示す楕円曲線を用いるものとする)により復号されることで、平文のデータへと復元される。
【0035】
PC−DTVボード3は、図1に示すように、デジタル放送受信部31と、バスコントローラ32とを備える。
【0036】
デジタル放送受信部31は、復調回路より構成されており、内部バスを介してバスコントローラ32に接続されている。デジタル放送受信部31は、外部よりデジタル放送された、データストリームを表す変調波を入力して復調することにより、データストリームを復元する。そして、復元されたデータストリームをバスコントローラ32に供給する。
【0037】
なお、デジタル放送受信部31が受信する変調波が表すデータストリームは、上述したコンテンツ加工用の処理ブロックにより再生されるべきコンテンツを表しており、連続した複数のTS(Transport Stream)パケットより構成されている。
【0038】
バスコントローラ32は、論理回路等より構成されており、接続バスBを介して再生用マシン2に接続される。バスコントローラ32は、コンテンツ再生用マシン2及びデジタル放送受信部31の相互間のアクセスを媒介する。
【0039】
(動作)
次に、このデジタル放送受信システムの動作を、コンテンツ再生用マシン2及び開発用マシン1が実行するOSがいずれもウィンドウズ(登録商標)である場合を例として説明する。
図2は、後述する署名データを作成する処理(以下、署名処理と呼ぶ)を示すフローチャートである。
図3は、署名データを検証する処理(以下、認証処理と呼ぶ)を示すフローチャートである。
【0040】
(署名処理)
アプリケーションの開発者等は、コンテンツ再生用マシン2が実行するフィルタを認証の対象としたい場合、開発用マシン1の入力部13を操作して、署名プログラムの起動を指示する。開発用マシン1のプロセッサ11はこの指示に応答して、署名プログラムを外部記憶部15より読み出し、実行する。
【0041】
プロセッサ11は、署名プログラムの処理を開始すると、まず、フィルタモジュールのパス名を特定するAPIの制御に従って、開発用マシン1が実行可能な各フィルタの処理を制御するフィルタモジュールのパス名を特定する(図2、ステップS101)。
【0042】
次に、プロセッサ11は、ステップS101で特定したパス名を検索キーとしてレジストリを検索することにより、各フィルタのGUIDを取得する(ステップS102)。
【0043】
次にプロセッサ11は、外部記憶部15にアクセスして、ステップS101で特定したパス名を有する各フィルタモジュールを読み出す(ステップS103)。
次に、プロセッサ11は、曲線パラメータ及び秘密鍵を外部記憶部15より読み出し、ステップS103で読み出した各フィルタモジュールをそれぞれEC−DSAの手法によって暗号化することにより、署名データを作成する(ステップS104)。
そして、プロセッサ11は、ステップS105で作成した各々の署名データに、この署名データが表すフィルタのGUIDを結合させ、外部記憶部15に記憶させる(ステップS105)。
【0044】
以上説明したステップS101〜S105の処理の結果、署名データが開発用マシン1によって作成され、外部記憶部15に記憶される。それぞれの署名データは、当該署名データに付されたGUIDが示すフィルタモジュールに固有の値を暗号化したものにあたる。
【0045】
署名データが作成された後、アプリケーションの開発者等は、頒布しようとするアプリケーションに、後述する認証処理を制御するプログラムと、署名データとを組み込む。
具体的には、例えば、開発用マシン1にコンパイラ及びリンカをインストールしておき、まず入力部13を操作して開発用マシン1にコンパイラを実行させることにより、認証処理を制御するプログラムを表すオブジェクトファイルと、このアプリケーションの本来の各処理を表すオブジェクトファイルとを作成させる。そして更にリンカを実行させることにより、コンテンツ再生用マシン2に認証処理を実行させてからこのアプリケーションの本来の処理を行わせるような実行ファイルを作成させる。
そして、アプリケーションの開発者等は、記録媒体アクセス部16に記録媒体をセットして入力部13を操作し、開発用マシン1に、この記録媒体へと実行ファイル及び署名データを書き込ませる。そして、この記録媒体あるいはその複製品を頒布する。
【0046】
(認証処理)
コンテンツ再生用マシン2のユーザ等は、コンテンツ再生用マシン2にコンテンツを再生させたい場合、例えば、上述の実行ファイル及び署名データが書き込まれた記録媒体を記録媒体アクセス部26にセットして、入力部23を操作し、実行ファイル及び署名データをコンテンツ再生用マシン2にインストールする(外部記憶部25に実行ファイル及び署名データを記憶させる)。
【0047】
そしてユーザ等は、入力部23を操作し、インストールされた実行ファイルの起動を指示する。プロセッサ21はこの指示に応答して、この実行ファイルを外部記憶部25より読み出し、起動する。すると、プロセッサ21は、この実行ファイルに従い、まず認証処理を開始する。
【0048】
プロセッサ21は、認証処理を開始すると、記録媒体アクセス部26あるいは外部記憶部25に格納されている各署名データを読み出し、また、外部記憶部15から曲線パラメータ及び公開鍵を読み出す(図3、ステップS201)。そして、ステップS201で読み出した各署名データをそれぞれEC−DSAの手法によって復号化することにより、各フィルタモジュールを復元する(ステップS202)。
【0049】
次に、プロセッサ21は、復元されたそれぞれのフィルタモジュールについて、このフィルタモジュールの復元に用いた署名データに付されていたGUIDを検索キーとしてレジストリを検索することにより、このフィルタモジュールのパス名を特定する。そして、特定されたパス名を付されたフィルタモジュールを外部記憶部25から読み出す(ステップS203)。
【0050】
次に、プロセッサ21は、ステップS202で復号化した各フィルタモジュールの内容と、ステップS203で読み出した各フィルタモジュールの内容とが、同一のフィルタを表すべきもの同士(同一のGUIDが対応付けられているもの同士)で互いに同一であるか否かを判別する(ステップS204)。
【0051】
そして、ステップS202で復号化した各フィルタモジュールとステップS203で読み出した各フィルタモジュールとが、いずれのGUIDが対応付けられているもの同士についても互いに同一であると判別すると(つまり認証に成功すると)、プロセッサ21は、PC−DTVボード3のデジタル放送受信部31から供給されるデータストリームを、バスコントローラ32及びコンテンツ再生用マシン2のバスコントローラ27を介して取得する(ステップS205)。
【0052】
そして、プロセッサ21は、アプリケーションの制御に従ってフィルタを呼び出すと(具体的には、例えば当該フィルタを表すフィルタモジュールを外部記憶部25から読み出して起動すると)、認証処理を終える。そして、PC−DTVボード3より取得したデータストリームを構成するTSパケットに含まれるコンテンツデータを、このフィルタの制御に従って加工し、加工されたコンテンツデータが表す音声や画像を出力するよう、出力部24に指示を供給する。出力部24は、プロセッサ21が供給する指示に従った画像や音声を出力する(ステップS206)。
すなわち、認証に成功したとき、コンテンツ再生用マシン2は、デジタル放送受信部31が出力するデータストリームが表すコンテンツを再生する。
【0053】
一方、プロセッサ21は、ステップS203で読み出した各フィルタモジュールのうちに、同一のGUIDが対応付けられているにもかかわらずステップS202で復号化した各フィルタモジュールと一致しないものがあると判別すると(つまり認証に失敗すると)、該当するフィルタモジュールが表すフィルタの処理の実行を中止する(ステップS207)。(なお、プロセッサ21は、その他のフィルタの処理も中止して差し支えない。)
従って、認証に失敗したとき、コンテンツ再生用マシン2は、デジタル放送受信部31が出力するデータストリームが表すコンテンツを再生しない。
【0054】
以上説明したステップS201〜S207の処理の結果、コンテンツ再生用マシン2と開発用マシン1とが互いに実質的に同一のフィルタモジュールを記憶していることが確認された場合はコンテンツが再生され、その他の場合はコンテンツの再生が阻止される。従って、フィルタモジュールの改竄が防止され、フィルタモジュールやコンテンツデータの保護が十分に図られる。
【0055】
なお、このデジタル放送受信システムの構成は上述のものに限られない。
たとえば、開発用マシン1がコンテンツ再生用マシン2の機能を兼ねていてもよく、一方、開発用マシン1は、必ずしもコンテンツ加工用の処理ブロックを実行可能である必要はない。
【0056】
また、接続バスBは必ずしもPCIバスに限られず任意の規格に準拠したバスであってよい。従って、接続バスBは、たとえばPC Card Standardに準拠するバスからなっていてもよいし、USB(Universal Serial Bus)からなっていてもよい。ただし、PC−DTVボード3は、接続バスBがPCIバスでない場合、バスコントローラ32に代えて、接続バスBが準拠する規格に適合したデータ交換を媒介するバスコントローラ等を備えるものとする。
【0057】
また、ステップS104での暗号化及びステップS202での復号化は、必ずしもEC−DSAの手法により行われる必要はなく、例えば、DSA、RSA(登録商標)あるいはその他の公開鍵暗号の手法によってもよい。
そして開発用マシン1は、ステップS104で行う暗号化のために必要となる秘密鍵を記憶していればよい。一方、コンテンツ再生用マシン2は、開発用マシン1がステップS104で行った暗号化の手法と同一の手法で復号化を行えばよく、この復号化のために必要となる公開鍵を記憶していればよい。
【0058】
また、図4に示すように、ステップS104で開発用マシン1は、フィルタモジュール自体を暗号化する代わりに、フィルタモジュールをハッシュ関数に代入して得られる値(ハッシュ値)を生成し、このハッシュ値を暗号化するようにしてもよい。なお、ハッシュ関数は、例えば、SHA−1(Secure Hash Algorithm 1)、SHA−256、SHA−512あるいはMD−5(Message Digest 5)などであればよい。
【0059】
署名データがフィルタモジュールのハッシュ値を暗号化したものからなる場合、図5に示すように、コンテンツ再生用マシン2のプロセッサ21は、ステップS202で、ステップS201で得られた各署名データを復号化することにより、各フィルタモジュールのハッシュ値を復元する。
【0060】
次に、プロセッサ21は、ステップS204に処理を移す前に、ステップS203でフィルタモジュールを外部記憶部25から読み出した後、読み出した各々のフィルタモジュールのハッシュ値を求める(ステップS203B)。
【0061】
そして、処理がステップS203BからステップS204に移ると、プロセッサ21は、ステップS202で復号化した各フィルタモジュールのハッシュ値とステップS203Bで生成した各ハッシュ値とが、同一のフィルタモジュールを表すべきもの同士で互いに同一であるか否かを判別する。そして、復号化された各ハッシュ値とステップS203Bで生成した各ハッシュ値とが、同一のフィルタモジュールを表すべきもの同士の組み合わせすべてについて互いに一致すると判別した場合は認証に成功したものとして処理を進め、その他の場合は認証に失敗したものとして処理を進める。
【0062】
以上、この発明の実施の形態を説明したが、この発明にかかるデータストリーム装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
例えば、パーソナルコンピュータに上述の開発用マシン1又はコンテンツ再生用マシン2の動作を実行させるためのプログラムを格納した媒体(CD−ROM、MO、フロッピー(登録商標)ディスク等)から該プログラムをインストールし、PC−DTVボード3を装着するための拡張スロット等を備えるパーソナルコンピュータに上述のコンテンツ再生用マシン2の動作を実行させるためのプログラムを格納した媒体から該プログラムをインストールすることにより、上述の処理を実行するデジタル放送受信システムを構成することができる。
【0063】
また、例えば、通信回線の掲示板(BBS)にこれらのプログラムをアップロードし、これを通信回線を介して配信してもよく、また、これらのプログラムを表す信号により搬送波を変調し、得られた変調波を伝送し、この変調波を受信した装置が変調波を復調して該プログラムを復元するようにしてもよい。
そして、これらのプログラムを起動し、OSの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
【0064】
なお、OSが処理の一部を分担する場合、あるいは、OSが本願発明の1つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
【0065】
【発明の効果】
以上説明したように、この発明によれば、プログラムやコンテンツの保護が十分に図られるようにするためのプログラム認証装置及びプログラム認証方法や、このようなプログラム認証装置及びプログラム認証方法の実現を容易にするためのプログラム署名装置及びプログラム署名方法が実現される。
【図面の簡単な説明】
【図1】この発明の実施の形態に係るデジタル放送受信システムの構成を示すブロック図である。
【図2】署名処理を示すフローチャートである。
【図3】認証処理を示すフローチャートである。
【図4】署名処理の変形例を示すフローチャートである。
【図5】認証処理の変形例を示すフローチャートである。
【符号の説明】
1 開発用マシン
2 コンテンツ再生用マシン
11、21 プロセッサ
12、22 主記憶部
13、23 入力部
14、24 出力部
15、25 外部記憶部
16、26 記録媒体アクセス部
27 バスコントローラ
3 PC−DTVボード
31 デジタル放送受信部
32 バスコントローラ
B 接続バス
【発明の属する技術分野】
この発明は、プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラムに関する。
【0002】
【従来の技術】
画像や音声などのコンテンツを、コンテンツを表すデータを含むパケットが連続したものからなるデータストリームの形で放送するデジタル放送が利用されている。
【0003】
デジタル放送されたコンテンツは、デジタル形式のデータとして記憶装置に蓄積することができ、蓄積の際にデータの劣化が非常に起こりにくい。
このため、デジタル放送されたコンテンツにかかる著作権などの権利の保護を図るための技術が用いられている。具体的には、コンテンツを表すデータを暗号化した上で蓄積する手法がある。
【0004】
【発明が解決しようとする課題】
しかし、デジタル放送されたコンテンツのうちには、コンテンツを表すデータが、所定のプログラムを実行するコンピュータ等により所定の処理を経て再生されたときはじめてコンテンツの制作者の意図通りに再生される、という性質を持つものがある。
【0005】
また、コンテンツを表すデータに所定の処理を施すプログラムを改竄することにより、このデータが、コンテンツの制作者の意図に反して不正に出力したり記録したりされる、という危険もある。
【0006】
このため、コンテンツを表すデータの保護を図っても、このデータに所定の処理を施すためのプログラムを改竄などから保護しなければ、コンテンツの十分な保護は図れない。
【0007】
この発明は、上記実状に鑑みてなされたものであり、プログラムやコンテンツの保護が十分に図られるようにするためのプログラム認証装置及びプログラム認証方法や、このようなプログラム認証装置及びプログラム認証方法の実現を容易にするためのプログラム署名装置及びプログラム署名方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成すべく、この発明の第1の観点にかかるプログラム認証装置は、
プロセッサと、メモリとを備え、
前記メモリは、前記プロセッサが実行するためのプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、
前記メモリが記憶する前記プログラムより前記モジュールを抽出し、抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成し、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記プロセッサ自身が前記処理ブロックを実現することを阻止する、
ことを特徴とする。
【0009】
また、この発明の第2の観点にかかるプログラム認証装置は、
プロセッサと、メモリとを備え、
前記メモリは、前記プロセッサが実行するためのプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、
外部より照合用署名データを取得して復号化し、
前記メモリが記憶する前記プログラムより前記モジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記プロセッサ自身が前記処理ブロックを実現することを阻止する、
ことを特徴とする。
【0010】
また、この発明の第3の観点にかかるプログラム署名装置は、
プロセッサと、メモリとを備え、
前記メモリはプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、前記メモリが記憶する前記プログラムより前記モジュールを抽出し、抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する、
ことを特徴とする。
【0011】
また、この発明の第4の観点にかかるプログラム認証方法は、
プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成し、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記装置が前記プログラムを実行することを阻止する、
ことを特徴とする。
【0012】
また、この発明の第5の観点にかかるプログラム認証方法は、
外部より照合用署名データを取得して復号化し、
プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記装置が前記プログラムを実行することを阻止する、
ことを特徴とする。
【0013】
また、この発明の第6の観点にかかるプログラム署名方法は、
プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する、
ことを特徴とする。
【0014】
また、この発明の第7の観点にかかるプログラムは、
コンピュータに、
認証対象のプログラムより、前記コンピュータ自身が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出する機能と、
抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成する機能と、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記コンピュータ自身が前記認証対象のプログラムを実行することを阻止する機能と、
を行わせるためのものであることを特徴とする。
【0015】
また、この発明の第8の観点にかかるプログラムは、
コンピュータに、
外部より照合用署名データを取得して復号化する機能と、
認証対象のプログラムより、前記コンピュータ自身が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記コンピュータ自身が前記認証対象のプログラムを実行することを阻止する機能と、
を行わせるためのものであることを特徴とする。
【0016】
また、この発明の第9の観点にかかるプログラムは、
コンピュータに、
認証対象のプログラムより、所定の装置が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出する機能と、
抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する機能と、
を行わせるためのものであることを特徴とする。
【0017】
【発明の実施の形態】
以下、この発明の実施の形態を、図面を参照して説明する。
図1は、この発明の実施の形態に係るデジタル放送受信システムの構成を示す図である。図示するように、このデジタル放送受信システムは、開発用マシン1と、コンテンツ再生用マシン2とPC−DTV(Personal Computer−Digital TeleVision)ボード3とより構成されている。このうちPC−DTVボード3は、コンテンツ再生用マシン2に接続できるよう構成されている。
【0018】
開発用マシン1は、たとえば図1に示すように、プロセッサ11と、主記憶部12と、入力部13と、出力部14と、外部記憶部15、記録媒体アクセス部16とを備える。主記憶部12、入力部13、出力部14、外部記憶部15及び記録媒体アクセス部16は、プロセッサ11に接続されている。
【0019】
プロセッサ11は、CPU(Central Processing Unit)等からなる。プロセッサ11は、コンテンツ再生用マシン2の起動後、外部記憶部15に記憶されている後述のオペレーティングシステム(OS)を読み出して実行し、このOSの制御に従って、後述の署名プログラムを外部記憶部15より読み出す。そして、この署名プログラムに従って、後述する処理を行う。
【0020】
主記憶部12は、RAM(Random Access Memory)等からなる。主記憶部12は、プロセッサ11のワークエリアとなる記憶領域を有する。
【0021】
入力部13は、たとえばキーボードやポインティングデバイス(例えば、マウス)等からなっており、操作者の操作に従ったデータをプロセッサ11に供給する。
【0022】
出力部14は、画像の表示を制御するビデオ回路や、この制御に従って画像を表示する液晶パネル等の表示装置や、音声を再生するための増幅回路及びスピーカ等より構成されている。出力部14は、プロセッサ11が供給する指示に従った画像や音声を出力する。
【0023】
外部記憶部15は、ハードディスク装置等からなる。外部記憶部15は、上述したOSや署名プログラムと、後述する署名処理において暗号化のために用いる秘密鍵及び曲線パラメータ等のデータとを記憶している。外部記憶部15は、プロセッサ11からのアクセスに従い、プロセッサが供給するデータを記憶したり、自己が記憶しているデータを読み出してプロセッサに供給したりする。
【0024】
外部記憶部15が記憶する秘密鍵は、EC(Elliptic Curve)−DSA(Digital Signature Algorithm)の手法を用いてデータを暗号化するための暗号鍵であり、暗号化する対象のデータをこの暗号鍵を用いてEC−DSAの手法により暗号化することにより得られるデータは、実質上、後述する公開鍵を用いて復号化しなければ平文のデータへと復元することができない。
また、外部記憶部15が記憶する曲線パラメータは、EC−DSAの手法による暗号化のために用いる楕円曲線を特定するパラメータからなっている。
【0025】
なお、OSは、例えばマイクロソフト社のウィンドウズ(登録商標)からなっている。OSは、機能上、プロセッサ11が実行する処理を制御する処理ブロックを複数含む。これらの処理ブロックのうちには、コンテンツ再生用マシン2が再生するコンテンツ(具体的には、画像や音声など)に視聴覚上の効果を与えるため、このコンテンツを表すコンテンツデータに加工を施す処理を制御するコンテンツ加工用の処理ブロックが含まれる。なお、コンテンツ加工用の処理ブロックは、開発者等が任意に作成してOSに追加するようにしても差し支えない。
【0026】
OSが上述のウィンドウズ(登録商標)からなる場合、コンテンツ加工用の処理ブロックは、例えば、ウィンドウズ(登録商標)が提供する機能であるDirectX(登録商標)の一部であるDirectShow(登録商標)を実現するためにある、「フィルタ」と呼ばれるアプリケーションインターフェース(API)からなっている。ウィンドウズ(登録商標)の処理を制御するプログラムのうちフィルタを制御する部分(フィルタモジュール)は、フィルタ毎に別個のファイルとして、外部記憶部15や、コンテンツ再生用マシン2の後述する外部記憶部25に格納されている。
【0027】
なお、それぞれのコンテンツ加工用の処理ブロックには、各自に固有の識別情報が割り当てられており、この識別情報は、一定の規則に従ってソートすることが可能である。OSがウィンドウズ(登録商標)からなる場合、この識別情報は、例えばGUID(Globally Unique IDentifier)と呼ばれる数値からなっている。GUIDは数値からなるので、例えば昇順あるいは降順にソート可能である。
【0028】
また、OSがウィンドウズ(登録商標)からなる場合、OSを実行するコンテンツ再生用マシン2や開発用マシン1は、フィルタのGUIDと、フィルタの処理を制御するフィルタモジュールのパス名(このフィルタモジュールが格納されている記憶領域の論理的位置)とを互いに対応付けて格納するテーブルであるレジストリを、自己の外部記憶部の記憶領域内に確保する。また、ウィンドウズ(登録商標)は、フィルタモジュールのパス名を特定する機能を有するAPIを提供している。このため、コンテンツ再生用マシン2や開発用マシン1は、まずAPIの制御に従ってフィルタモジュールのパス名を特定し、特定したパス名を検索キーとしてレジストリを検索することにより、フィルタのGUIDを取得することができる。
【0029】
コンテンツ加工用の処理ブロックは、自己に後続する処理を制御する処理ブロックを指定する接続先情報を含んでいる。このため、OSの制御下にあるアプリケーション等がOSから呼び出す処理を制御する処理ブロックが特定できれば、このアプリケーションがコンテンツ加工用の処理ブロックの集合によって実現する視聴覚上の効果の内容や、この効果を実現するために行うべき処理の内容も特定できる。
そして、このアプリケーションを実行するプロセッサは、アプリケーションが呼び出した処理を表す処理ブロックを動的にロードする。すなわち、このような処理ブロックを生成するために必要なデータを特定してOSより抽出し、抽出したデータを用いてこの処理ブロックを生成し、実行する。
【0030】
記録媒体アクセス部16は、CD(Compact Disc)−RW(ReWritable)ドライブや、MO(Magneto Optical disk)ドライブあるいはその他記録媒体にアクセスするドライブ装置からなる。記録媒体アクセス部16は、自己に装着された記録媒体(例えば、CD−RWや、CD−R(Recordable)や、MOなど)に、プロセッサ11からの指示に従ってアクセスし、プロセッサが供給するデータをこの記録媒体が有する記憶領域に書き込んだり、この記憶領域からデータを読み出してプロセッサ11に供給したりする。
【0031】
コンテンツ再生用マシン2は、例えば、開発用マシン1と実質的に同一の構成を有している。すなわち、コンテンツ再生用マシン2は、例えば図1に示すように、プロセッサ21と、主記憶部22と、入力部23と、出力部24と、外部記憶部25と、記録媒体アクセス部26とを備える。プロセッサ21、主記憶部22、入力部23、出力部24、外部記憶部25及び記録媒体アクセス部26は、開発用マシン1のプロセッサ11、主記憶部12、入力部13、出力部14及び外部記憶部15及び記録媒体アクセス部16と実質的に同一のものである。主記憶部22、入力部23、出力部24、外部記憶部25及び記録媒体アクセス部26はプロセッサ21に接続されている。
【0032】
また、図1に示すように、コンテンツ再生用マシン2は、バスコントローラ27を更に備える。バスコントローラ27はプロセッサ21に接続され、また、例えばPCI(Peripheral Component Interface)バスからなる接続バスBに接続される。
バスコントローラ27は、論理回路等からなり、プロセッサ21とコンテンツ再生用マシン2の外部の装置との間での接続バスBを介したデータ交換を制御する。
【0033】
コンテンツ再生用マシン2の外部記憶部25は、開発用マシン1の外部記憶部15が記憶するものと実質的に同一のOSを記憶している。そして、プロセッサ21は、外部記憶部25に記憶されているこのOSを読み出して実行し、このOSの制御に従って、後述する実行ファイルを外部記憶部25等より読み出し、後述する認証処理等を行う。
【0034】
また、外部記憶部25は、上述した公開鍵及び曲線パラメータを更に記憶している。外部記憶部25が記憶する曲線パラメータは、開発用マシン1が記憶している曲線パラメータが示すものと同一の楕円曲線を示すものである。
開発用マシン1が記憶する上述の秘密鍵を用いてEC−DSAの手法により暗号化されたデータは、この公開鍵を用いてEC−DSAの手法(ただし、外部記憶部25が記憶する曲線パラメータが示す楕円曲線を用いるものとする)により復号されることで、平文のデータへと復元される。
【0035】
PC−DTVボード3は、図1に示すように、デジタル放送受信部31と、バスコントローラ32とを備える。
【0036】
デジタル放送受信部31は、復調回路より構成されており、内部バスを介してバスコントローラ32に接続されている。デジタル放送受信部31は、外部よりデジタル放送された、データストリームを表す変調波を入力して復調することにより、データストリームを復元する。そして、復元されたデータストリームをバスコントローラ32に供給する。
【0037】
なお、デジタル放送受信部31が受信する変調波が表すデータストリームは、上述したコンテンツ加工用の処理ブロックにより再生されるべきコンテンツを表しており、連続した複数のTS(Transport Stream)パケットより構成されている。
【0038】
バスコントローラ32は、論理回路等より構成されており、接続バスBを介して再生用マシン2に接続される。バスコントローラ32は、コンテンツ再生用マシン2及びデジタル放送受信部31の相互間のアクセスを媒介する。
【0039】
(動作)
次に、このデジタル放送受信システムの動作を、コンテンツ再生用マシン2及び開発用マシン1が実行するOSがいずれもウィンドウズ(登録商標)である場合を例として説明する。
図2は、後述する署名データを作成する処理(以下、署名処理と呼ぶ)を示すフローチャートである。
図3は、署名データを検証する処理(以下、認証処理と呼ぶ)を示すフローチャートである。
【0040】
(署名処理)
アプリケーションの開発者等は、コンテンツ再生用マシン2が実行するフィルタを認証の対象としたい場合、開発用マシン1の入力部13を操作して、署名プログラムの起動を指示する。開発用マシン1のプロセッサ11はこの指示に応答して、署名プログラムを外部記憶部15より読み出し、実行する。
【0041】
プロセッサ11は、署名プログラムの処理を開始すると、まず、フィルタモジュールのパス名を特定するAPIの制御に従って、開発用マシン1が実行可能な各フィルタの処理を制御するフィルタモジュールのパス名を特定する(図2、ステップS101)。
【0042】
次に、プロセッサ11は、ステップS101で特定したパス名を検索キーとしてレジストリを検索することにより、各フィルタのGUIDを取得する(ステップS102)。
【0043】
次にプロセッサ11は、外部記憶部15にアクセスして、ステップS101で特定したパス名を有する各フィルタモジュールを読み出す(ステップS103)。
次に、プロセッサ11は、曲線パラメータ及び秘密鍵を外部記憶部15より読み出し、ステップS103で読み出した各フィルタモジュールをそれぞれEC−DSAの手法によって暗号化することにより、署名データを作成する(ステップS104)。
そして、プロセッサ11は、ステップS105で作成した各々の署名データに、この署名データが表すフィルタのGUIDを結合させ、外部記憶部15に記憶させる(ステップS105)。
【0044】
以上説明したステップS101〜S105の処理の結果、署名データが開発用マシン1によって作成され、外部記憶部15に記憶される。それぞれの署名データは、当該署名データに付されたGUIDが示すフィルタモジュールに固有の値を暗号化したものにあたる。
【0045】
署名データが作成された後、アプリケーションの開発者等は、頒布しようとするアプリケーションに、後述する認証処理を制御するプログラムと、署名データとを組み込む。
具体的には、例えば、開発用マシン1にコンパイラ及びリンカをインストールしておき、まず入力部13を操作して開発用マシン1にコンパイラを実行させることにより、認証処理を制御するプログラムを表すオブジェクトファイルと、このアプリケーションの本来の各処理を表すオブジェクトファイルとを作成させる。そして更にリンカを実行させることにより、コンテンツ再生用マシン2に認証処理を実行させてからこのアプリケーションの本来の処理を行わせるような実行ファイルを作成させる。
そして、アプリケーションの開発者等は、記録媒体アクセス部16に記録媒体をセットして入力部13を操作し、開発用マシン1に、この記録媒体へと実行ファイル及び署名データを書き込ませる。そして、この記録媒体あるいはその複製品を頒布する。
【0046】
(認証処理)
コンテンツ再生用マシン2のユーザ等は、コンテンツ再生用マシン2にコンテンツを再生させたい場合、例えば、上述の実行ファイル及び署名データが書き込まれた記録媒体を記録媒体アクセス部26にセットして、入力部23を操作し、実行ファイル及び署名データをコンテンツ再生用マシン2にインストールする(外部記憶部25に実行ファイル及び署名データを記憶させる)。
【0047】
そしてユーザ等は、入力部23を操作し、インストールされた実行ファイルの起動を指示する。プロセッサ21はこの指示に応答して、この実行ファイルを外部記憶部25より読み出し、起動する。すると、プロセッサ21は、この実行ファイルに従い、まず認証処理を開始する。
【0048】
プロセッサ21は、認証処理を開始すると、記録媒体アクセス部26あるいは外部記憶部25に格納されている各署名データを読み出し、また、外部記憶部15から曲線パラメータ及び公開鍵を読み出す(図3、ステップS201)。そして、ステップS201で読み出した各署名データをそれぞれEC−DSAの手法によって復号化することにより、各フィルタモジュールを復元する(ステップS202)。
【0049】
次に、プロセッサ21は、復元されたそれぞれのフィルタモジュールについて、このフィルタモジュールの復元に用いた署名データに付されていたGUIDを検索キーとしてレジストリを検索することにより、このフィルタモジュールのパス名を特定する。そして、特定されたパス名を付されたフィルタモジュールを外部記憶部25から読み出す(ステップS203)。
【0050】
次に、プロセッサ21は、ステップS202で復号化した各フィルタモジュールの内容と、ステップS203で読み出した各フィルタモジュールの内容とが、同一のフィルタを表すべきもの同士(同一のGUIDが対応付けられているもの同士)で互いに同一であるか否かを判別する(ステップS204)。
【0051】
そして、ステップS202で復号化した各フィルタモジュールとステップS203で読み出した各フィルタモジュールとが、いずれのGUIDが対応付けられているもの同士についても互いに同一であると判別すると(つまり認証に成功すると)、プロセッサ21は、PC−DTVボード3のデジタル放送受信部31から供給されるデータストリームを、バスコントローラ32及びコンテンツ再生用マシン2のバスコントローラ27を介して取得する(ステップS205)。
【0052】
そして、プロセッサ21は、アプリケーションの制御に従ってフィルタを呼び出すと(具体的には、例えば当該フィルタを表すフィルタモジュールを外部記憶部25から読み出して起動すると)、認証処理を終える。そして、PC−DTVボード3より取得したデータストリームを構成するTSパケットに含まれるコンテンツデータを、このフィルタの制御に従って加工し、加工されたコンテンツデータが表す音声や画像を出力するよう、出力部24に指示を供給する。出力部24は、プロセッサ21が供給する指示に従った画像や音声を出力する(ステップS206)。
すなわち、認証に成功したとき、コンテンツ再生用マシン2は、デジタル放送受信部31が出力するデータストリームが表すコンテンツを再生する。
【0053】
一方、プロセッサ21は、ステップS203で読み出した各フィルタモジュールのうちに、同一のGUIDが対応付けられているにもかかわらずステップS202で復号化した各フィルタモジュールと一致しないものがあると判別すると(つまり認証に失敗すると)、該当するフィルタモジュールが表すフィルタの処理の実行を中止する(ステップS207)。(なお、プロセッサ21は、その他のフィルタの処理も中止して差し支えない。)
従って、認証に失敗したとき、コンテンツ再生用マシン2は、デジタル放送受信部31が出力するデータストリームが表すコンテンツを再生しない。
【0054】
以上説明したステップS201〜S207の処理の結果、コンテンツ再生用マシン2と開発用マシン1とが互いに実質的に同一のフィルタモジュールを記憶していることが確認された場合はコンテンツが再生され、その他の場合はコンテンツの再生が阻止される。従って、フィルタモジュールの改竄が防止され、フィルタモジュールやコンテンツデータの保護が十分に図られる。
【0055】
なお、このデジタル放送受信システムの構成は上述のものに限られない。
たとえば、開発用マシン1がコンテンツ再生用マシン2の機能を兼ねていてもよく、一方、開発用マシン1は、必ずしもコンテンツ加工用の処理ブロックを実行可能である必要はない。
【0056】
また、接続バスBは必ずしもPCIバスに限られず任意の規格に準拠したバスであってよい。従って、接続バスBは、たとえばPC Card Standardに準拠するバスからなっていてもよいし、USB(Universal Serial Bus)からなっていてもよい。ただし、PC−DTVボード3は、接続バスBがPCIバスでない場合、バスコントローラ32に代えて、接続バスBが準拠する規格に適合したデータ交換を媒介するバスコントローラ等を備えるものとする。
【0057】
また、ステップS104での暗号化及びステップS202での復号化は、必ずしもEC−DSAの手法により行われる必要はなく、例えば、DSA、RSA(登録商標)あるいはその他の公開鍵暗号の手法によってもよい。
そして開発用マシン1は、ステップS104で行う暗号化のために必要となる秘密鍵を記憶していればよい。一方、コンテンツ再生用マシン2は、開発用マシン1がステップS104で行った暗号化の手法と同一の手法で復号化を行えばよく、この復号化のために必要となる公開鍵を記憶していればよい。
【0058】
また、図4に示すように、ステップS104で開発用マシン1は、フィルタモジュール自体を暗号化する代わりに、フィルタモジュールをハッシュ関数に代入して得られる値(ハッシュ値)を生成し、このハッシュ値を暗号化するようにしてもよい。なお、ハッシュ関数は、例えば、SHA−1(Secure Hash Algorithm 1)、SHA−256、SHA−512あるいはMD−5(Message Digest 5)などであればよい。
【0059】
署名データがフィルタモジュールのハッシュ値を暗号化したものからなる場合、図5に示すように、コンテンツ再生用マシン2のプロセッサ21は、ステップS202で、ステップS201で得られた各署名データを復号化することにより、各フィルタモジュールのハッシュ値を復元する。
【0060】
次に、プロセッサ21は、ステップS204に処理を移す前に、ステップS203でフィルタモジュールを外部記憶部25から読み出した後、読み出した各々のフィルタモジュールのハッシュ値を求める(ステップS203B)。
【0061】
そして、処理がステップS203BからステップS204に移ると、プロセッサ21は、ステップS202で復号化した各フィルタモジュールのハッシュ値とステップS203Bで生成した各ハッシュ値とが、同一のフィルタモジュールを表すべきもの同士で互いに同一であるか否かを判別する。そして、復号化された各ハッシュ値とステップS203Bで生成した各ハッシュ値とが、同一のフィルタモジュールを表すべきもの同士の組み合わせすべてについて互いに一致すると判別した場合は認証に成功したものとして処理を進め、その他の場合は認証に失敗したものとして処理を進める。
【0062】
以上、この発明の実施の形態を説明したが、この発明にかかるデータストリーム装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
例えば、パーソナルコンピュータに上述の開発用マシン1又はコンテンツ再生用マシン2の動作を実行させるためのプログラムを格納した媒体(CD−ROM、MO、フロッピー(登録商標)ディスク等)から該プログラムをインストールし、PC−DTVボード3を装着するための拡張スロット等を備えるパーソナルコンピュータに上述のコンテンツ再生用マシン2の動作を実行させるためのプログラムを格納した媒体から該プログラムをインストールすることにより、上述の処理を実行するデジタル放送受信システムを構成することができる。
【0063】
また、例えば、通信回線の掲示板(BBS)にこれらのプログラムをアップロードし、これを通信回線を介して配信してもよく、また、これらのプログラムを表す信号により搬送波を変調し、得られた変調波を伝送し、この変調波を受信した装置が変調波を復調して該プログラムを復元するようにしてもよい。
そして、これらのプログラムを起動し、OSの制御下に、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
【0064】
なお、OSが処理の一部を分担する場合、あるいは、OSが本願発明の1つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
【0065】
【発明の効果】
以上説明したように、この発明によれば、プログラムやコンテンツの保護が十分に図られるようにするためのプログラム認証装置及びプログラム認証方法や、このようなプログラム認証装置及びプログラム認証方法の実現を容易にするためのプログラム署名装置及びプログラム署名方法が実現される。
【図面の簡単な説明】
【図1】この発明の実施の形態に係るデジタル放送受信システムの構成を示すブロック図である。
【図2】署名処理を示すフローチャートである。
【図3】認証処理を示すフローチャートである。
【図4】署名処理の変形例を示すフローチャートである。
【図5】認証処理の変形例を示すフローチャートである。
【符号の説明】
1 開発用マシン
2 コンテンツ再生用マシン
11、21 プロセッサ
12、22 主記憶部
13、23 入力部
14、24 出力部
15、25 外部記憶部
16、26 記録媒体アクセス部
27 バスコントローラ
3 PC−DTVボード
31 デジタル放送受信部
32 バスコントローラ
B 接続バス
Claims (9)
- プロセッサと、メモリとを備え、
前記メモリは、前記プロセッサが実行するためのプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、
前記メモリが記憶する前記プログラムより前記モジュールを抽出し、抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成し、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記プロセッサ自身が前記処理ブロックを実現することを阻止する、
ことを特徴とするプログラム認証装置。 - プロセッサと、メモリとを備え、
前記メモリは、前記プロセッサが実行するためのプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、
外部より照合用署名データを取得して復号化し、
前記メモリが記憶する前記プログラムより前記モジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記プロセッサ自身が前記処理ブロックを実現することを阻止する、
ことを特徴とするプログラム認証装置。 - プロセッサと、メモリとを備え、
前記メモリはプログラムを記憶しており、
前記プログラムは、前記プロセッサが前記プログラムを実行することにより実現する機能の一部をなす処理ブロックを表すモジュールを含み、
前記プロセッサは、前記メモリが記憶する前記プログラムより前記モジュールを抽出し、抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する、
ことを特徴とするプログラム署名装置。 - プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成し、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記装置が前記プログラムを実行することを阻止する、
ことを特徴とするプログラム認証方法。 - 外部より照合用署名データを取得して復号化し、
プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記装置が前記プログラムを実行することを阻止する、
ことを特徴とするプログラム認証方法。 - プログラムより、所定の装置が当該プログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出し、
抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する、
ことを特徴とするプログラム署名方法。 - コンピュータに、
認証対象のプログラムより、前記コンピュータ自身が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出する機能と、
抽出したモジュールをハッシュ関数に代入した結果を表す照合用ダイジェストを作成する機能と、
外部より照合用署名データを取得して復号化し、復号化により得られたデータと前記照合用ダイジェストとが合致するか否かを判別して、合致しないと判別したとき、前記コンピュータ自身が前記認証対象のプログラムを実行することを阻止する機能と、
を行わせるためのプログラム。 - コンピュータに、
外部より照合用署名データを取得して復号化する機能と、
認証対象のプログラムより、前記コンピュータ自身が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出する機能と、
復号化により得られたデータと前記抽出したモジュールとが合致するか否かを判別して、合致しないと判別したとき、前記コンピュータ自身が前記認証対象のプログラムを実行することを阻止する機能と、
を行わせるためのプログラム。 - コンピュータに、
認証対象のプログラムより、所定の装置が当該認証対象のプログラムを実行することにより実現される機能の一部をなす処理ブロックを表すモジュールを抽出する機能と、
抽出したモジュールを暗号化したものを表すデータ、又は、当該モジュールをハッシュ関数に代入した結果を暗号化したものを表すデータを作成し、出力する機能と、
を行わせるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002214496A JP2004054798A (ja) | 2002-07-23 | 2002-07-23 | プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002214496A JP2004054798A (ja) | 2002-07-23 | 2002-07-23 | プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004054798A true JP2004054798A (ja) | 2004-02-19 |
Family
ID=31936806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002214496A Pending JP2004054798A (ja) | 2002-07-23 | 2002-07-23 | プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004054798A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008527599A (ja) * | 2005-01-07 | 2008-07-24 | エルジー エレクトロニクス インコーポレーテッド | データ再生装置および方法並びに記録媒体 |
-
2002
- 2002-07-23 JP JP2002214496A patent/JP2004054798A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008527599A (ja) * | 2005-01-07 | 2008-07-24 | エルジー エレクトロニクス インコーポレーテッド | データ再生装置および方法並びに記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW514845B (en) | Data storage regenerator and data storage processing method and program providing media | |
TWI394419B (zh) | 使用邏輯分割以管理加密內容之系統及方法 | |
JP4585460B2 (ja) | 同一コンテンツから派生した形式の異なるコンテンツを複数個所で同時に利用することを防ぐ記憶装置、システム及び方法 | |
WO2004051483A1 (ja) | ライセンス移動装置及びプログラム | |
US7869595B2 (en) | Content copying device and content copying method | |
JP2006020154A (ja) | コンテンツ管理方法及びコンテンツ管理用プログラム、並びに電子機器 | |
JP2004015257A (ja) | コンテンツ再生装置 | |
JP4255470B2 (ja) | デジタルコンテンツ録画装置及び耐タンパモジュール | |
US20120290834A1 (en) | Key distribution device, terminal device, and content distribution system | |
KR100695665B1 (ko) | 엔티티 잠금 보안 레지스트리를 사용하여 자료에 액세스하는 장치 및 방법 | |
JP2005285287A (ja) | 記録再生装置及び方法 | |
JP2004054798A (ja) | プログラム認証装置、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラム | |
JP2010220019A (ja) | 鍵管理方法および鍵管理装置 | |
JP2008011219A (ja) | 電子透かし埋込システム、装置及びプログラム | |
JP4045137B2 (ja) | データストリーム記録装置、データストリーム記録方法及びプログラム | |
JP4502359B2 (ja) | 暗号化プログラム復号方法及び暗号化プログラム復号プログラム | |
JP2010176697A (ja) | 暗号化プログラム復号方法及び暗号化プログラム復号プログラム | |
JP4084974B2 (ja) | データ記録システム、データ記録装置、データ記録方法及びプログラム | |
JP3921427B2 (ja) | プログラム認証システム、プログラム署名装置、プログラム認証方法、プログラム署名方法及びプログラム | |
JP4529382B2 (ja) | 情報処理装置及び情報処理方法 | |
JP2004062353A (ja) | コンテンツ再生装置、再生プログラムおよび再生方法 | |
JP2005011105A (ja) | 再生装置、暗号化記録装置及びプログラム | |
JP2008160428A (ja) | 情報処理装置 | |
JP2001109719A (ja) | コンテンツ配布サーバー装置及びコンテンツ配布方法及びプログラムを記録したコンピューター読み取り可能な記録媒体 | |
JP2006506762A (ja) | セキュアなローカルコピープロテクション |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060912 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061226 |