JP2004129227A - Information reproducing apparatus, secure module, and information regeneration method - Google Patents

Information reproducing apparatus, secure module, and information regeneration method Download PDF

Info

Publication number
JP2004129227A
JP2004129227A JP2003203751A JP2003203751A JP2004129227A JP 2004129227 A JP2004129227 A JP 2004129227A JP 2003203751 A JP2003203751 A JP 2003203751A JP 2003203751 A JP2003203751 A JP 2003203751A JP 2004129227 A JP2004129227 A JP 2004129227A
Authority
JP
Japan
Prior art keywords
information
secure
secure module
memory
software
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.)
Granted
Application number
JP2003203751A
Other languages
Japanese (ja)
Other versions
JP4576100B2 (en
Inventor
Kiyoyuki Kobiyama
小桧山 清之
Toshiyuki Yoshitake
吉武 敏幸
Yasuhiro Watabe
渡部 康弘
Kiyonori Morioka
森岡 清訓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003203751A priority Critical patent/JP4576100B2/en
Publication of JP2004129227A publication Critical patent/JP2004129227A/en
Application granted granted Critical
Publication of JP4576100B2 publication Critical patent/JP4576100B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To perform a secure software processing by adding a minimum hardware to an apparatus in relation to an open architecture such as a personal computer. <P>SOLUTION: An information reproducing apparatus has a secure module 150 including a structure which cannot refer externally an information stored internally, and a main memory which can refer externally. The secure module 150 reads out a code of a secure software 180 stored in the main memory by direct access without any means and checks alteration of the secure software 180 based on comparison result of this code etc. with information stored beforehand. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、例えば、インターネットを介してダウンロードされた情報または記録媒体に格納されている情報を再生するための情報再生装置、セキュアモジュールおよび情報再生方法に関するものであり、特に、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェアを付加することで、安全なソフトウェア処理を実行することができる情報再生装置、セキュアモジュールおよび情報再生方法に関するものである。
【0002】
【従来の技術】
近年、ブロードバンドインターネットやディジタル放送が普及しつつあり、配信されたコンテンツ(主に、ディジタルAV(Audio Video)の安全性を保障する権利保護技術がクローズアップされている。
【0003】
この中でも特にパーソナルコンピュータ(PC:Personal Computer)は、オープンアーキテクチャであり、基本的に覗き見が出来るため、安全性の実現が困難とされている。
【0004】
しかしながら、一方でパーソナルコンピュータは、ブロードバンドインターネットの主要な出入り口として機能している。従って、パーソナルコンピュータ(出入り口)で安全性が保障される場合には、インターネット全体でのディジタルAVコンテンツの配信が可能になり意義が大きい。
【0005】
従来より、パーソナルコンピュータのソフトウェアによる権利保護については、安全性を保障するアルゴリズムの解析を困難にする難読化による手法が主流であった。
【0006】
しかしながら、パーソナルコンピュータ上のソフトウェアにおいては、一旦、メインメモリ上に実装してしまえば、コピーすることが容易であり、コピーした結果を時間をかけて解析することで、権利保護アルゴリズムが解析できる。
【0007】
従って、難読化による権利保護のシステムは、安全性が低いシステムであると考えられ、放送等恒常性が高いシステムで一度解析されたことによる被害を想定すると、採用が困難である。
【0008】
図7は、パーソナルコンピュータ50を用いた従来のシステムの構成例を示すブロック図である。この図に示したように、従来のシステムは、パーソナルコンピュータ50、ネットワーク51、スピーカ52、表示装置53および入力装置54によって構成されている。
【0009】
パーソナルコンピュータ50は、情報再生装置としての機能を備えており、CPU(Central Processing Unit)50a、ROM(Read Only Memory)50b、RAM(Random Access Memory)50c、ハードディスクドライブ50d、MB(Multimedia Board)50e、I/F(Interface)50f、I/F50g、バス50hによって構成され、ネットワーク51を介してダウンロードされた暗号化情報やハードディスクドライブ50dに格納された暗号化情報を復号してスピーカ52および表示装置53へ出力する。
【0010】
CPU50aは、ハードディスクドライブ50dに格納されているプログラムに従って各種演算処理を実行するとともに、装置の各部を制御する。ROM50bは、CPU50aが実行する基本的なプログラムやデータを格納している。RAM50cは、CPU50aが各種演算処理を実行する際に、実行対象となるプログラムやデータを一時的に格納する。
【0011】
ハードディスクドライブ50dは、CPU50aが実行するプログラムやデータ等を格納している。MB50eは、CPU50aから供給され、暗号化された音声データや画像データを復号し、元の音声信号や画像信号を生成した後、これらをスピーカ52および表示装置53へ出力する。
【0012】
I/F50fは、ネットワーク51を介して情報を送受信する際のインタフェースであり、プロトコル変換やデータのフォーマット変換を実行する。I/F50gは、入力装置54より入力されたデータを、パーソナルコンピュータ50の内部形式のデータに変換する。
【0013】
バス50hは、CPU50a、ROM50b、RAM50c、ハードディスクドライブ50d、MB50e、I/F50fおよびI/F50gを相互に接続し、これらの間で情報の授受を可能にする。
【0014】
ネットワーク51は、例えば、インターネットにより構成されている。スピーカ52は、MB50eから供給された音声信号を音声に変換して出力する。表示装置53は、例えば、CRT(Cathode Ray Tube)モニタや液晶モニタによって構成されており、MB50eから供給された画像信号を画像として表示する。入力装置54は、例えば、マウスやキーボードによって構成されている。
【0015】
図8は、図7に示したパーソナルコンピュータ50における情報の流れを示す図である。同図に示したように、ハードディスクドライブ50dには、基本ソフトウェア、暗号解読鍵群および暗号化コンテンツが格納されている。
【0016】
ここで、基本ソフトウェアは、暗号化コンテンツの暗号を解読するための処理を等を行うためのソフトウェアであり、悪意あるユーザに解読されるのを防止することを目的として、難読化されている。この難読化とは、以下のような処理が施されていることをいう。
【0017】

Figure 2004129227
【0018】
すなわち、上記のように、難読化の前後で演算結果が同じであるが、難読化後は、アルゴリズムを解読するのが難しくなっている。
【0019】
ハードディスクドライブ50dにおける暗号解読鍵群は、暗号化コンテンツに施されている暗号を解読するための複数の鍵であり、悪意あるユーザに容易に取得されないようにすることを目的として、秘密のスクランブルが施された状態で秘密の場所に格納されている。
【0020】
暗号化コンテンツは、暗号化処理が施されたコンテンツであり、例えば、画像、音声、コンピュータデータ等から構成されている。
【0021】
暗号化コンテンツの再生が開始されると、以下の処理が実行される。
(1)ハードディスクドライブ50dから難読化された基本ソフトウェアが読み出され、RAM50c上に実装される。
【0022】
(2)読み出された基本ソフトウェアは、必要に応じて秘密の場所に格納され、秘密のスクランブルがかかった暗号解読鍵がハードディスクドライブ50dから読み出される。暗号解読鍵は、例えば、3〜5箇所に分けて秘密の場所に格納され、秘密の演算等を施さないと目的の鍵が得られないように処理されている。
【0023】
(3)ハードディスクドライブ50dから暗号化コンテンツが読み出され、暗号解読鍵で暗号が解読される。
【0024】
(4)暗号解読されたコンテンツが圧縮されている場合には、伸張処理(ビデオコンテンツの場合は、MPEG(Motion Picture Experts Group)伸張処理等)が実行され、得られたコンテンツがRAM50c上のバッファに格納された後、MB50eへ出力される。
【0025】
(5)MB50eは、入力されたコンテンツに対してD/A(Digtal/Analog)変換処理および描画処理を施し、得られた音声信号をスピーカ52(図7参照)へ出力するとともに、画像信号を表示装置53へ出力する。これにより、コンテンツが再生される。
【0026】
【発明が解決しようとする課題】
ところで、前述したように、従来においては、基本ソフトウェアがパーソナルコンピュータ50のRAM50cに実装されるため、悪意のあるユーザによって解読されたり、コピーされたりするという危険性を伴う。
【0027】
仮に、ハードディスクドライブ50dに格納されている基本ソフトウェアやその他を全て暗号化したとしても、その暗号を解くための暗号解読ソフトウェアがパーソナルコンピュータ50のどこかに存在すれば、その暗号解読ソフトウェアを解析して暗号解読鍵の格納場所が特定されると、やはり基本ソフトウェアが解析され、権利保護アルゴリズムが判明してしまう。
【0028】
特に、放送等、公共性が高いネットワークでは、権利保護アルゴリズムが判明しても容易にコンテンツの解読ができない処理法が望まれる。現行のハードウェア主体のディジタルテレビ受信機では、MULTI2、DES(Data Encryption Standard)などの暗号化が行われている。これらは、アルゴリズムは公知であるが、暗号解読鍵が判明しない限り、コンテンツの暗号を解読することが極めて困難である。
【0029】
しかしながら、ディジタルテレビ受信機では、暗号解読鍵がハードウェアに内蔵され、ソフトウェア上には読み出すことができないような構成が採られている。
【0030】
さらに、ディジタルテレビ受信機では、暗号解読回路やコンテンツ処理回路(MPEGビデオ伸張回路やMPEGオーディオ伸張回路)もハードウェアで構成されているため、処理の内容を覗き見することは極めて困難とされている。
【0031】
このようなディジタルテレビ受信機は、実際に商用化が進んでいる。日本のパーフェクTV(商標)や米国のDirecTV(商標)などは、かかるディジタルテレビ受信機の好例である。
【0032】
これに対して、ソフトウェア処理では、暗号解読鍵、暗号解読回路、コンテンツ処理回路が基本ソフトウェアで実現されており、このような基本ソフト自体、さらには途中の演算結果も容易に読み取り可能なパーソナルコンピュータ50上のRAM50cに実装されるため、解析、覗き見が容易に行われてしまうという問題があった。
【0033】
本発明は、上記に鑑みてなされたもので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェアを付加することで、安全なソフトウェア処理を実行することができる情報再生装置、セキュアモジュールおよび情報再生方法を提供することを目的とする。
【0034】
【課題を解決するための手段】
上記目的を達成するために、本発明は、情報を再生する情報再生装置において、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールと、外部から参照することが可能なメモリと、前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報と、前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、を備えたことを特徴とする。
【0035】
本発明は、情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールにおいて、外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し手段と、読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、を備えたことを特徴とする。
【0036】
また、本発明は、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュール内で実行され、いずれの手段も介さずに直接アクセスにより外部から参照することが可能なメモリに格納されたメモリ格納情報を読み出す読み出し工程と、読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、を含むことを特徴とする。
【0037】
この発明によれば、いずれの手段も介さずに直接アクセスによりメモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報とセキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、メモリ格納情報の改ざんをチェックすることとしたので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア(セキュアモジュール)を付加することで、安全なソフトウェア処理を実行することができる。
【0038】
【発明の実施の形態】
以下、図面を参照して本発明にかかる情報再生装置、セキュアモジュールおよび情報再生方法の一実施の形態について詳細に説明する。
【0039】
図1は、本発明にかかる一実施の形態の構成を示すブロック図である。同図に示したシステムは、パーソナルコンピュータ100、ネットワーク200および表示装置300や、図示しない入力装置、スピーカ等によって構成されており、セキュアな環境で暗号化された情報(コンテンツ)を復号し、再生するためのものである。
【0040】
パーソナルコンピュータ100は、情報再生装置としての機能を備えており、PCメインプロセッサ101、ハードディスクドライブ102、入出力インタフェース103、サウスブリッジ104、ノースブリッジ105、メインメモリ106、画像LSI(Large Scale Integrated Circuit)107、画像メモリ108、PCI(Peripheral Component Interconnect)バス109およびセキュアモジュール150によって構成されている。
【0041】
また、パーソナルコンピュータ100は、ネットワーク200を介してダウンロードされた暗号化情報(コンテンツ)やハードディスクドライブ102に格納された暗号化情報(コンテンツ)を復号して表示装置300およびスピーカ(図示略)へ出力する。
【0042】
PCメインプロセッサ101は、ハードディスクドライブ102に格納されているセキュアソフトウェアや、その他のソフトウェアに従って各種演算処理を実行するとともに、装置の各部を制御する。
【0043】
ここで、上記セキュアソフトウェアは、後述する図2〜図5に示したセキュアソフトウェア180に対応しており、情報再生に際してセキュアな環境を提供するためのものであり、メインメモリ106に実装される。
【0044】
ハードディスクドライブ102は、ディスクを有する大容量記憶装置であり、PCメインプロセッサ101が実行するセキュアソフトウェア180(図2参照)やその他のソフトウェアを格納している。
【0045】
入出力インタフェース103は、ネットワーク200を介して情報(コンテンツ)を送受信する際のインタフェースであり、プロトコル変換やデータのフォーマット変換を実行する。
【0046】
サウスブリッジ104は、入出力インタフェース103とPCIバス109とを相互接続する機能を備えており、ブリッジ回路を内蔵している。ノースブリッジ105は、PCメインプロセッサ101とメインメモリ106、画像LSI107を相互に接続してデータの橋渡しを行う機能を備えている。なお、サウスブリッジ104とノースブリッジ105とは、高速バスにより相互接続されている。
【0047】
メインメモリ106は、例えば、RAMによって構成されており、図2〜図5に示したセキュアソフトウェア180や、その他ソフトウェアが実装されている。セキュアソフトウェア180がPCメインプロセッサ101により実行されることにより、図2〜図5に示したセキュアソフトウェア180内の各ブロックの機能が実現される。
【0048】
セキュアソフトウェア180は、メインメモリ106に実装され、PCメインプロセッサ101により実行されることにより、セキュアモジュール150と協調して、セキュアな環境で暗号化されたMPEGデータをデコードする機能等を提供する。
【0049】
画像LSI107は、デコード済みの画像情報を画像メモリ108に格納させたり、表示装置300に画像として表示させる機能を備えている。画像メモリ108は、画像LSI107の制御により、画像情報を格納する。
【0050】
PCIバス109は、ハードディスクドライブ102、サウスブリッジ104および後述するセキュアモジュール150のPCIインタフェース155との間を相互接続するバスである。
【0051】
セキュアモジュール150は、TRM(Tamper Resistant Module)構造を有しており、外部からの覗き見を防止するとともに、内部のデータが改ざんされることを防止するハードウェアである。
【0052】
TRM構造は、半導体チップ(この場合、セキュアモジュール150)などの内部解析や改ざんを物理的および論理的に防衛するための構造をいう。具体的には、セキュアモジュール150においては、内部に強固で粘着力が高いコーティングが施され、その表面が剥がされると内部の回路が完全に破壊されたり、ダミーの配線が配されている。
【0053】
セキュアモジュール150は、ハードディスクドライブ102からセキュアソフトウェア180(図2〜図5参照)等を読み出す機能、メインメモリ106に実装されたセキュアソフトウェア180を不定期に書き換える機能、メインメモリ106に設定された各種バッファの位置を不定期に変更する機能、暗号化機能、復号化機能等を備えている。
【0054】
セキュアモジュール150は、セキュアモジュールプロセッサ151、RAM152、ROM153、暗号復号エンジン154およびPCIインタフェース155、内部バス156から構成されている。セキュアモジュールプロセッサ151は、ROM153に格納されたファームウェアを実行することにより、上述したセキュアモジュール150の各種機能を実現する。
【0055】
RAM152は、セキュアモジュールプロセッサ151が各種演算処理を実行する際に、実行対象となるプログラムやデータを一時的に格納する。また、RAM152には、暗号鍵等が格納されている。ROM153は、セキュアモジュールプロセッサ151が実行する基本的なファームウェアやデータを格納している。
【0056】
暗号復号エンジン154は、暗号化機能、復号化機能を実現する。PCIインタフェース155は、PCIバス109を介して各部とのインタフェースをとる。内部バス156は、セキュアモジュールプロセッサ151、RAM152、ROM153、暗号復号エンジン154およびPCIインタフェース155の各部を相互接続するバスである。
【0057】
図2〜図5には、上述したセキュアソフトウェア180や各種ソフトウェアによって実現される機能(初期化/ロード部160、ドライバ170、入力バッファ181〜MPEG出力部188)のブロックが図示されている。これらの図において、図1の各部に対応する部分には同一の符号を付ける。
【0058】
図2に示した初期化/ロード部160は、メインメモリ106(図1参照)に存在し、メインメモリ106上の空き領域を探し、ソフトウェアを当該空きメモリ領域にロード(実装)する機能を備えている。なお、実際には、初期化/ロード部160は、PCメインプロセッサ101でソフトウェアが実行されることにより上記機能を実現する。
【0059】
また、初期化/ロード部160は、パーソナルコンピュータ100の他のアプリケーションソフトウェア(図示略)と連動する必要がある場合、ソフトウェア同士のリンクを設定する機能を備えている。
【0060】
ここで、パーソナルコンピュータ100において、オペレーティングシステム(図示略)の支配下で他のアプリケーションソフトウェアとセキュアソフトウェア180とがマルチタスク環境で同時に動作する場合には、オペレーティングシステムが各ソフトウェアが動作する時間を割り当てる機能を持つ。
【0061】
初期化/ロード部160は、セキュアソフトウェア180が実装されたメモリ領域などの情報をオペレーティングシステムへ通知し、セキュアソフトウェア180が動作する時間の割り当てを行うための制御を行う。
【0062】
これにより、オペレーティングシステムは、例えば、セキュアソフトウェア180が100ミリセカンド動作したら、その後、別のソフトウェアが100ミリセカンド動作するなどのソフトウェア実行に関するスケジューリングを行う。
【0063】
また、初期化/ロード部16がオペレーティングシステムと連携を採る理由は、オペレーティングシステムの配下の複数のタスク(プログラム)の一つとしてセキュアソフトウェア180を動かすには、プロセス間の調整を行うオペレーティングシステムの助けが必要だからである。
【0064】
ドライバ170は、オペレーティングシステムの配下で動作する通常のドライバ用のソフトウェアに対応している。セキュアモジュール150とセキュアソフトウェア180(入力バッファ181)との間においては、ドライバ170を経由して、大容量の情報(暗号化MPEGストリーム等)が授受される。
【0065】
つまり、ドライバ170を利用することにより、オペレーティングシステムにおけるドライバ制御用の各種機能が流用可能となる。
【0066】
なお、セキュアモジュール150とセキュアソフトウェア180との間において、上記暗号化MPEGストリーム以外の情報は、DMA(Direct Memory Access)などの直接アクセスにより授受されることが大前提とされる。つまり、セキュアモジュール150とセキュアソフトウェア180とは、ドライバ170を経由せずに直接アクセスすることになる。
【0067】
このように、直接アクセスを大前提とした場合には、オペレーティングシステムがドライバ170へ提供するさまざまなサービスの利用ができなくなるというデメリットが生じる。
【0068】
しかしながら、この場合には、オペレーティングシステムの配下の外となり、オペレーティングシステムが関知しない環境で情報の授受が行えるため、安全性が増大するというセキュリティ上の大きなメリットが生じるのである。
【0069】
例えば、セキュアモジュール150とセキュアソフトウェア180との間でドライバ170を経由して情報が授受された場合には、常に、オペレーティングシステムに対し割り込みが発生し、この割り込みに基づいて、他のソフトウェアが情報を逐次「覗き見」することが可能となり、セキュリティが低くなる。ここで、数あるドライバの中には、情報を他ソフトウェアに転送するという機能がついたドライバも存在する。
【0070】
一方、セキュアモジュール150とセキュアソフトウェア180との間でドライバ170を経由せずに直接アクセスにより情報を授受した場合には、オペレーティングシステムに対し割り込みが発生しない。
【0071】
従って、他のソフトウェアが「覗き見」をする場合には、ポーリングなどにより常にセキュアソフトウェア180の状態(メインメモリ106上のバッファの位置を解析し、バッファ内の情報が更新されたかチェックし、更新された場合に「覗き見」する)を監視する必要がある。
【0072】
しかしながら、直接アクセスの場合には、セキュアモジュール150からセキュアソフトウェア180へ情報がいつ到達するかが分からないので、ポーリングするのが実質的に不可能となる。なお、仮にポーリングで一部の情報の「覗き見」ができたとしても、全部のデータの「覗き見」は不可能である。
【0073】
また、本一実施の形態において、暗号化MPEGストリームをドライバ170経由としたのは、MPEGストリームが暗号化されていて、たとえ盗まれても安全と判断し、ドライバ170の機能を流用し、効率良く暗号化MPEGストリームをセキュアソフトウェア180に到達させることを優先させたためである。
【0074】
入力バッファ181は、メインメモリ106上に領域設定されたバッファであり、暗号化MPEGストリームを格納する。TSデコーダ182は、暗号復号部184の要求を受け、バッファ181から暗号化MPEGストリーム(正確に言うとMPEG−TSストリーム)を読み出し、TSデコード処理した後にビデオバッファ183に暗号化MPEGビデオ情報を格納する。
【0075】
TSデコード処理は、暗号化MPEGストリームから、圧縮された暗号化MPEGビデオ情報を抽出する処理である。暗号化MPEGストリームには、時分割多重された形で(1)暗号化MPEGビデオ情報、(2)暗号化MPEGオーディオ情報、(3)暗号化MPEGビデオ情報と暗号化MPEGオーディオ情報により構成される番組情報(番組の名称、放送時期、番組のあらすじ、番組の料金など)が含まれている。
【0076】
なお、実際のセキュアソフトウェアでは、暗号化MPEGビデオ情報に加えて、暗号化MPEGオーディオ情報もデコードする必要がある。その場合の暗号化MPEGオーディオ情報のデコードについては、暗号化MPEGビデオ情報のデコードと同種のプログラムが必要になることは言うまでもない。
【0077】
また、TSデコーダ182は、入力バッファ181の容量を常に監視し、それが一定水準以下になると、セキュアソフトウェア180へ入力バッファ181の補給を依頼する。
【0078】
ビデオバッファ183は、メインメモリ106上に領域設定されたバッファであり、上述した暗号化MPEGビデオ情報を格納する。このビデオバッファ183は、MPEGビデオの国際規格で定められたVBVバッファに相当するバッファである。
【0079】
暗号復号部184は、MPEGビデオデコーダ186の要求を受け、ビデオバッファ183から暗号化MPEGビデオ情報を読み出し、小バッファ185が一杯になるまで暗号化MPEGビデオ情報を復号する。また、暗号復号部184は、復号済みの圧縮MPEGビデオ情報を小バッファ185へ格納する。
【0080】
小バッファ185は、メインメモリ106上に領域設定されたバッファであり、上述した圧縮MPEGビデオ情報を格納する。MPEGビデオデコーダ186は、後段のMPEG出力部188が画像情報を出力したことを認識する。
【0081】
ここで、MPEG画像メモリ187に出力した画像情報分の空き領域ができるため、MPEGビデオデコーダ186は、小バッファ185から次の1枚分の圧縮MPEGビデオ情報を読み出し、伸張処理(デコード)を行った後、画像情報をMPEG画像メモリ187に格納する。
【0082】
また、小バッファ185は、少量(画像1枚未満)の圧縮MPEGビデオ情報しか格納できないように設定されている。これは、復号済みの圧縮MPEGビデオ情報をメインメモリ106上に存在させることがセキュリティ上非常に危険であり、この危険を回避するためのである。
【0083】
従って、小バッファ185は、画像1枚分の圧縮MPEGビデオ情報を保持することはなく、MPEGビデオデコーダ186でデコードが開始されてから間もなく「空」になる。
【0084】
また、MPEGビデオデコーダ186は、小バッファ185が「空」になるか、または小バッファ185内の情報量が、予め設定されたしきい値より小さくなった時点で、暗号復号部184に対して復号要求を出し、小バッファ185に圧縮MPEGビデオ情報を格納させる。
【0085】
MPEG画像メモリ187は、例えば、4フレーム分、即ち30分の4秒分(約133ミリセカンド)に対応する画像情報を格納する。MPEG出力部188は、MPEG画像メモリ187から伸張(デコード)済みの画像情報(1枚分または1フレーム分)を読み出し、これを画像LSI107へDMA転送する。ここで、DMA(直接アクセス)を使うのは、MPEG出力部188から画像LSI107への転送を高速に行うためである。
【0086】
一実施の形態では、メインメモリ106に設定されたビデオバッファ183に暗号化された暗号化MPEGビデオ情報を格納する点と、ビデオバッファ183に格納された暗号化MPEGビデオ情報を少しずつ復号化し、小バッファ185に格納しながらMPEGビデオデコードを実行する点に特徴がある。
【0087】
図3に示したセキュアモジュール150において、メモリ空間152Aは、RAM152(図1参照)に設定されており、セキュアモジュール150とTSデコーダ182との間で実行される第1の秘密番号通信で用いられる。
【0088】
セキュアモジュール150(セキュアモジュールプロセッサ151)は、メモリ空間152Aについて1度目は正規の値、2度目は違う値が読み出されるように、制御する。
【0089】
メモリ空間152Bは、RAM152(図1参照)に設定されており、セキュアモジュール150と暗号復号部184との間で実行される第2の秘密番号通信で用いられる。
【0090】
セキュアモジュール150(セキュアモジュールプロセッサ151)は、メモリ空間152Aと同様にして、メモリ空間152Bについて1度目は正規の値、2度目は違う値が読み出されるように、制御する。
【0091】
(電源投入時のセキュア機能)
つぎに、図2を参照して、図1に示したパーソナルコンピュータ100における電源投入時のセキュア機能について説明する。
【0092】
図2には、パーソナルコンピュータ100の電源投入時に、初期化/ロード部160がセキュアモジュール150からセキュアソフトウェア180をメインメモリ106にロードする場合について図示されている。
【0093】
同図において、パーソナルコンピュータ100に電源が投入されると、オペレーティングシステムが起動され、デスクトップ(図示略)に起動すべきソフトウェア(プログラム、アプリケーション)のリストが表示される。
【0094】
これにより、ユーザは、上記リストを見て所望のソフトウェアとして、例えば、セキュアソフトウェア180を起動させる。具体的には、ユーザにより、デスクトップに表示されたセキュアソフトウェア180に対応するアイコンがクリックされると、セキュアソフトウェア180が起動される。
【0095】
つまり、初期化/ロード部160は、セキュアモジュール150に対して、セキュアソフトウェア180のロードを要求する。なお、一般の初期化/ロード部は、ハードディスクドライブ102からソフトウェアを直接ロードするが、一実施の形態では、セキュアモジュール150を経由している。
【0096】
セキュアモジュール150(セキュアモジュールプロセッサ151)は、ハードディスクドライブ102からセキュアソフトウェア180を読み出した後、このセキュアソフトウェア180の特定部分(例えば、秘密の番号が記述された部分)を変更する。つぎに、セキュアモジュール150は、変更後のセキュアソフトウェア180を初期化/ロード部160へ渡す。
【0097】
初期化/ロード部160は、メインメモリ106上の空き領域を探し、当該空き領域に変更後のセキュアソフトウェア180をロード(実装)する。
【0098】
ここで、パーソナルコンピュータ100上のメモリ空間は、セキュアモジュール150からDMAなど直接アクセスできることが前提とされており、例えば、メインメモリ106上のスワップ不可能領域である必要がある。スワップ不可能領域の獲得は、オペレーティングシステムの機能を利用すればよい。
【0099】
仮に、スワップ可能領域にセキュアソフトウェア180が実装された場合、セキュアソフトウェア180は、メインメモリ106上からハードディスクドライブ102のメモリ空間などにオペレーティングシステムの機能で自動的にスワップされる可能性がある。
【0100】
スワップされるのは、同時に複数のソフトウェアが動作し、パーソナルコンピュータ100上のメインメモリ106に全部のソフトウェアが搭載出来なくなるためである。
【0101】
しかしながら、かかる場合には、セキュアソフトウェア180がメインメモリ106上に存在しない可能性があり、セキュアモジュール150からDMAなどで直接アクセスできなくなるという問題が発生する。
【0102】
そこで、一実施の形態では、ロード時にセキュアモジュール150をスワップ不可能領域に実装し、セキュアモジュール150から常にセキュアソフトウェア180の実装位置が分かるようにしている。以上が、電源投入から、セキュアソフトウェア180がメインメモリ106にロードされるまでの動作例である。
【0103】
また、上述のように、電源投入時に初期化/ロード部160を介した場合には、オペレーティングシステムとリンクを貼ることができるので(1)プログラムのバッファ領域、(2)全体のプログラムコード、(3)プログラムの存在するメモリ領域などを全面的に変更することが可能となる。
【0104】
(通常動作時のセキュア機能)
つぎに、図3を参照して、図1に示したパーソナルコンピュータ100における電源投入後の通常動作時のセキュア機能について説明する。
【0105】
図3においては、パーソナルコンピュータ100のメインメモリ106にセキュアソフトウェア180がロード(実装)されている。
【0106】
この場合、セキュアソフトウェア180は、例えば以下のような動作を行う。同図においては、最終的に画像情報を消費しているのが表示装置300であり、画像LSI107と連動していると考える。
【0107】
まず、画像LSI107が表示装置300にある画像を表示し終えると、次の画像を表示するための準備をセキュアソフトウェア180に依頼する。これにより、MPEG出力部188は、MPEG画像メモリ187から画像情報(1枚分)を読み出し、これを画像LSI107へDMA転送する。
【0108】
暗号復号部184は、MPEGビデオデコーダ186の要求を受け、ビデオバッファ183から暗号化MPEGビデオ情報を取り出し、小バッファ185が一杯になるまで暗号化MPEGビデオ情報を復号する。復号時、暗号復号部184は、セキュアモジュール150から復号鍵を授受する。
【0109】
復号鍵は、ある限られた時間(例えば数秒間)しか有効でなく、それ以降は、新規に復号鍵をセキュアモジュール150から授受する必要がる。セキュアモジュール150から復号鍵を授受するアルゴリズムは、例えば、後述する第2の秘密番号通信に含まれてもよい。
【0110】
これにより、セキュアモジュール150は、セキュアソフトウェア180が秘密の番号を知っていることを確認しつつ、復号鍵を安心してセキュアソフトウェア180へ提供することが可能となる。
【0111】
また、暗号復号部184は、ビデオバッファ183の暗号化MPEGビデオ情報の残存量を常に監視しており、これが一定量以下となったら、TSデコーダ182に暗号化MPEGビデオ情報の補給を依頼する。
【0112】
つぎに、TSデコーダ182は、暗号復号部184からの上記依頼を受け、入力バッファ181から暗号化MPEGストリームを読み出し、TSデコード処理を施す。つぎに、TSデコーダ182は、暗号化MPEGビデオ情報をビデオバッファ183へ格納する。
【0113】
また、TSデコーダ182は、入力バッファ181の容量を常に監視し、それが一定水準以下になると、セキュアモジュール150へ暗号化MPEGストリームの補給を依頼する。
【0114】
これにより、セキュアモジュール150は、ハードディスクドライブ102より暗号化された暗号化MPEGストリームを読み出す。つぎに、セキュアモジュール150の暗号復号エンジン154は、一旦、暗号化MPEGストリームを復号した後、別の暗号鍵で再暗号化する。この再暗号化された暗号化MPEGストリームがセキュアモジュール150からセキュアソフトウェア180へ提供される。
【0115】
ここで、再暗号化するのは、ハードディスクドライブ102から読み出された暗号化MPEGストリームをそのままセキュアソフトウェア180へ提供した場合、パーソナルコンピュータ100で最もセキュリティーが低いセキュアソフトウェア180に復号鍵を渡すことになり、危険だからである。
【0116】
これに対して、セキュアモジュール150において再暗号化した場合には、ハードディスクドライブ102に格納された暗号化MPEGストリームではなく、そのときのセキュアソフトウェア180用に再暗号化した、そのときのセキュアソフトウェア180でしか使えない暗号化MPEGストリームがセキュアソフトウェア180へ提供される。
【0117】
従って、いついかなるときでも読み出せるハードディスクドライブ102内の暗号化MPEGストリームよりも、再暗号化した暗号化MPEGストリームのほうが危険が少ない。
【0118】
また、図3においては、上述した動作に並行して、セキュアソフトウェア180の安全性を確認するための動作が実行される。この動作においては、次の(1)〜(4)に示した処理が実行され、セキュアモジュール150がセキュアソフトウェア180に様々な作用を及ぼし、応答等が授受される。
【0119】
(1)スキャン認証処理
(2)プログラムを不定期に書き換える処理
(3)バッファの位置を不定期に書き換える処理
(4)秘密の番号通信処理
【0120】
ここで、(1)〜(4)において、(1)〜(3)は、セキュアモジュール150により実行される。(4)は、セキュアモジュール150およびセキュアソフトウェア180により実行される。
【0121】
以下では、(1)〜(4)の処理について順次説明する。はじめに、(1)スキャン認証処理について説明する。
【0122】
スキャン認証処理において、セキュアモジュール150は、動作中のセキュアソフトウェア180が実装されているメインメモリ106の一部領域または全領域にDMAなどで直接アクセスし、セキュアソフトウェア180のデータの一部または全部を読み出す。
【0123】
つぎに、セキュアモジュール150は、読み出したデータと、RAM152(図1参照)等に予め格納されたデータとを比較し、一致するか否かにより認証を行う。例えば、悪意のあるユーザによりセキュアソフトウェア180が改ざんされている場合には、プログラムが書き換えられているため、上記比較結果が不一致とされ、認証NGとされる。
【0124】
一方、セキュアソフトウェア180が改ざんされていない場合には、上記比較結果が一致とされ、認証OKとされる。
【0125】
具体的な実現方法としては、セキュアモジュール150のRAM152に、セキュアソフトウェア180と同内容を格納し、メインメモリ106からセキュアソフトウェア180をDMAなどで直接に読み出し、その結果とRAM152に格納されている内容と逐一比較する方法がある。
【0126】
また、一実施の形態では、セキュアモジュール150のRAM152のメモリ容量が小さくセキュアソフトウェア180の全てを格納できない場合には、チェックサムのような方法によりスキャン認証処理を行ってもよい。
【0127】
すなわち、この場合には、セキュアソフトウェア180のコードを全部加算した結果だけをRAM152に格納しておき、メインメモリ106からセキュアソフトウェア180をDMAで読み出した後、コードを加算した結果とRAM152に格納された内容とを比較し、比較結果が一致した場合は、セキュアソフトウェア180が改ざんされていないと判断される(認証結果=OK)。
【0128】
また、スキャン認証による改ざんの検出は、セキュアモジュール150がセキュアソフトウェア180と関係なく単独でセキュアソフトウェア180が実装されているメインメモリ106に直接アクセスすることにより行われる。
【0129】
また、スキャン認証処理は、オペレーティングシステムを一切経由しないのでオペレーティングシステムの機能などを流用した改ざんや覗き見に対しても安全性が強い。
【0130】
これに対して、オペレーティングシステムを経由した場合には、例えば、「いつスキャン認証処理が実行されているか」をオペレーティングシステムへ通知される割り込み情報などで悪意のユーザに簡単に知られてしまう可能性が高いのである。
【0131】
次に、(2)プログラムを不定期に書き換える処理について説明する。プログラムを不定期に書き換える処理において、セキュアモジュール150(セキュアモジュールプロセッサ151)は、セキュアソフトウェア180が動作中に、セキュアソフトウェア180が実装されたメモリ領域(メインメモリ106)に対して、直接にDMA転送などで書き込みをリアルタイムで行う。
【0132】
ここで、前述した(1)スキャン認証処理が読み出し動作であるのに対して、(2)プログラムを不定期に書き換える処理では、書き込み動作を行う。具体的には、オペレーティングシステムにわからないように、セキュアモジュール150がオペレーティングシステムを介さずセキュアソフトウェア180のプログラムなどの一部を書き換える。
【0133】
これにより、後にスキャン認証処理を実行した場合に、セキュアソフトウェア180が動作している最中でも、認証結果がリアルタイムで変化し、スキャン認証処理における安全度が向上する。
【0134】
ここで、スキャン認証とプログラムの不定期の書き換えとの相乗効果について説明する。図2においては、例えば、セキュアソフトウェア180の中の「秘密の番号通信を行うためのプログラム」を書き換える。
【0135】
この場合には、リアルタイムで書き換え、その後、その書き換えたプログラムのコードに対し、スキャン認証処理を実行するため安全度が向上する。悪意のあるユーザ(ハッカー)が如何に有能であっても、リアルタイムに変化するプログラムをハッキングすることが困難であることは、容易に想像される。
【0136】
また、一実施の形態では、書き換えたプログラムの実動作を確認することで、本当に実動作中のプログラムが書き換わっていることを確認することもできる。これは、以下の攻撃に対して有効である。
【0137】
すなわち、悪意のあるユーザは、スキャン認証を誤魔化すため、スキャン認証用(誤魔化し用)の「セキュアソフトウェアa」と、実際に動作する「セキュアソフトウェアb」というのセキュアソフトウェアをパーソナルコンピュータ100のメインメモリ106に並列的に実装し、「セキュアソフトウェアa」を対象としてスキャン認証処理を実行させ、実動作は「セキュアソフトウェアb」が行うような攻撃が考えられる。
【0138】
スキャン認証の目的は、プログラムの書き換えを不可能にすることである。しかしながら、偽の「セキュアソフトウェアa」を作ることで、悪意のあるユーザによって、「セキュアソフトウェアb」を自由に書き換えられ、スキャン認証が誤魔化される。
【0139】
また、初期化/ロード部160がセキュアソフトウェア180をロードする場合には、セキュアモジュール150に対してロード先のメモリ領域を通知している。
【0140】
しかしながら、その時、初期化/ロード部160がセキュアモジュール150に偽のメモリ領域としてセキュアソフトウェアaのメモリ領域を通知することにより、上述した攻撃が可能となる。
【0141】
これに対して、一実施の形態では、リアルタイムでセキュアソフトウェア180の一部(または全部)を書き換え、その書き換えた結果で、セキュアソフトウェア180の実動作を変化させ、その変化をセキュアモジュール150が検知することでセキュアソフトウェア180の安全性をさらに向上させることができる。
【0142】
一実施の形態において変更されるのは、例えば、「秘密の番号通信プログラム」である。この「秘密の番号通信プログラム」は、セキュアソフトウェア180の中に、セキュアモジュール150とセキュアソフトウェア180との間で「秘密の番号」を通信し、セキュアモジュール150がセキュアソフトウェア180の安全性を確認するためのプログラムである。
【0143】
例えば、セキュアモジュール150から秘密の番号をセキュアソフトウェア180へ通知した後、セキュアソフトウェア180がセキュアモジュール150へ正規の秘密の番号を返信する。
【0144】
ここで、正規の秘密の番号以外の番号がセキュアモジュール150へ返信された場合、セキュアモジュール150は、セキュアソフトウェア180が改ざんされたと判断する。秘密の番号は、複数の番号からなる番号シーケンスであっても良い。
【0145】
このように、一実施の形態では、セキュアモジュール150が、DMAなどの方法で直接にセキュアソフトウェア180に対してスキャン認証処理を実行し、コードの一部をリアルタイムで書き換え、そのコードが動作していることを確認することにより、上述した攻撃を防ぐことができる。
【0146】
以上では、「成り済まし」プログラムを検出する構成例について説明した。「成り済まし」を発見したら、セキュアモジュール150は、セキュアソフトウェア180の暗号復号部184への復号鍵の提供を中止する。
【0147】
セキュアモジュール150では、複数の復号鍵が存在し、各復号鍵が、例えば、数秒間しか有効でない。従って、復号鍵の提供が停止されると、数秒後には、セキュアソフトウェア180で、暗号化MPEGストリームにかかる一連の処理を続行できなくなる。
【0148】
つぎに、(3)バッファの位置を不定期に書き換える処理について説明する。(3)の処理では、前述した(1)および(2)の処理によりセキュアソフトウェア180の安全性を確認しつつ、さらにセキュアソフトウェア180が使うバッファ(データ領域)をリアルタイムで変更することで「覗き見」攻撃に対処する。
【0149】
ここで、「覗き見」とは、セキュアソフトウェア180の中のデータ領域を本プログラムと同時に(時分割に)動作する他のプログラムが「覗き見」し、情報を盗むことである。
【0150】
本来、パーソナルコンピュータ100におけるメモリ空間は、時分割に動作するどのプログラムからも「覗き見」が可能である。これは、現状のプロセッサがどのメモリ領域もアクセスできるように設計されていて、プログラムごとにメモリ空間のアクセスを制御する機構がないためである。
【0151】
最近では、オペレーティングシステムレベルでプログラムごとにアクセスできるメモリ空間を制御できるものも散見されるが、決して十分でない。悪意のあるユーザがその気になれば、簡単に他のメモリ空間の「覗き見」が可能であり、セキュアソフトウェア180の構造を解析し、どこに肝心なデータがあるかを見つけ出して「覗き見」によりデータを盗むことが可能である。
【0152】
例えば、図3に示したセキュアソフトウェア180では、入力バッファ181、ビデオバッファ183、小バッファ185、MPEG画像メモリ187(総称してバッファという)の位置が特定されれば、そのメモリ空間を「覗き見」することで、MPEGストリーム情報などを盗むことが可能である。
【0153】
特に、復号済みの生の圧縮MPEGビデオ情報が格納された小バッファ185は、扱い易く、悪意のあるユーザの攻撃の標的になり易い。MPEG画像メモリ187は、例え位置が特定されても、デコード済みの大容量の画像情報が格納されている。
【0154】
従って、上記画像情報をハードディスクドライブ102に蓄積し盗むことは、ハードディスクドライブ102のデータ転送スピード、ハードディスクドライブ102に繋がるPCIバス109などの転送スピードを考慮すると困難である。
【0155】
そこで、一実施の形態では、バッファの位置を不定期に書き換える、すなわち、バッファの開始番地などをDMAでプログラムコードを書き換えることにより、「覗き見」による情報の盗難を困難にしている。
【0156】
つぎに、(4)秘密の番号通信処理について説明する。秘密の番号通信処理では、図3に示したセキュアモジュール150は、セキュアソフトウェア180のある領域にデータ(最初の秘密番号など)を書き込む(第1および第2の秘密番号通信)。
【0157】
つぎに、このデータをセキュアソフトウェア180が確認し、適当な番号を返すことで、セキュアモジュール150は、セキュアソフトウェア180の安全性を確認する。
【0158】
秘密の番号は、単独の番号の他に、シーケンス番号であったり、テキスト情報であってもよい。当然ながら、この秘密の番号は、セキュアモジュール150とセキュアソフトウェア180しか知らない情報である。従って、先ほどの「覗き見」解析などでこの番号が解析されないため、秘密の番号は、毎回、セキュアモジュール150により変更される。
【0159】
また、秘密の番号通信処理においては、セキュアモジュール150からセキュアソフトウェア180のメモリ領域にデータが書き込まれた場合には、それを「覗き見」される危険がある。
【0160】
そこで、一実施の形態では、上記危険を回避するために、セキュアモジュール150内に1度読み出すと正規の値が読めるが、2度目は違う値(例えば、「0」)が読み出されるメモリ空間152Aおよび152Bを設けて、これらのメモリ空間152Aおよび152Bを介してデータのやり取りが行われる。
【0161】
また、一実施の形態では、1度読み出すと正規の値で2度目は「0」が出るメモリ空間152B等を利用して、セキュアモジュール150とセキュアソフトウェア180との間で復号鍵や暗号鍵などの情報が授受される。なお、メモリ空間152Aおよび152Bは、当然のことながら、暗号鍵以外の情報の伝達にも使用可能である。
【0162】
(全切替時のセキュア機能)
つぎに、図4を参照して、図1に示したパーソナルコンピュータ100における全切替時のセキュア機能について説明する。
【0163】
図4には、パーソナルコンピュータ100のメインメモリ106にロード(実装)されたセキュアソフトウェア180の通常動作中に初期化/ロード部160を用いて、セキュアソフトウェア180の全てを別のセキュアソフトウェア180’(TSデコーダ182’、暗号復号部184’、MPEGビデオデコーダ186’、MPEG出力部188’等)に切り替える場合が図示されている。
【0164】
全切替時において、メインメモリ106上には、変更前のセキュアソフトウェア180と変更後のセキュアソフトウェア180’とが、一時期、並列的に存在する。
【0165】
これは、動作中にセキュアソフトウェア180を停止させると、例えば、MPEGの画像再生が途中で停止したりする可能性があり、これを避けるための処置である。
【0166】
ここで、セキュアソフトウェア180をメインメモリ106から削除した後に、セキュアソフトウェア180’を初期化/ロード部160よりロードした場合には、時間がかかり、MPEGの画像再生が停止するという事態が発生する。
【0167】
一実施の形態では、上記事態を回避するために、初期化/ロード部160により、セキュアソフトウェア180を削除する前に、セキュアソフトウェア180’を予めメインメモリ106にロードする。これにより、セキュアソフトウェア180からセキュアソフトウェア180’への移行時間が短縮される。
【0168】
また、セキュアソフトウェア180からセキュアソフトウェア180’へ切替を行う場合には、セキュアソフトウェア180が使っていたバッファ領域の引継ぎも必要である。
【0169】
例えば、図2および図3においては、ビデオバッファ183に数秒分の暗号化MPEGビデオ情報が格納されている可能性があり、MPEG画像メモリ187に例えば4フレーム分、即ち30分の4秒分(約133ミリセカンド)の画像情報が格納されている可能性がある。
【0170】
しかも、ビデオバッファ183に何秒分の暗号化MPEGビデオ情報が格納されているかは、MPEGビデオのデコード処理を実行しないと分からない。
【0171】
これは、MPEGの圧縮率が画像に依存し、圧縮容易な画像の場合、たくさんの画像を蓄積できるが、圧縮効率の悪い画像(動画成分が多く、いちいち更新しなくてはならない画像)の場合は、少ししかビデオバッファ183に格納できないためである。このため、一実施の形態では、処理途中のバッファ情報をセキュアソフトウェア180’がセキュアソフトウェア180から引き継ぐ必要がある。
【0172】
通常、セキュアソフトウェアを初期化/ロード部160を使用し切り替える(変更する)のは、以下の理由による。セキュアソフトウェアは、セキュアモジュール150による直接の書き込み(DMA)でリアルタイムに変更されている。
【0173】
しかしながら、この変更では、セキュアソフトウェアの一部を変更するだけで、セキュアソフトウェア全体を変更するのが困難である。セキュアソフトウェアを全体的に変更するには、やはり初期化/ロード部160を経由し、抜本的にやる必要がある。このため、一実施の形態では、初期化/ロード部160による変更も可能な構成としている。
【0174】
具体的には、セキュアモジュール150は、初期化/ロード部160に対して、セキュアソフトウェアの切替要求を出す。これにより、初期化/ロード部160は、セキュアモジュール150へロード要求を出す。セキュアモジュール150は、初期化/ロード部160の要求に応えて、前述した動作と同様にして、「変更されたセキュアソフトウェア180’を初期化/ロード部160へ渡す。
【0175】
ここで、セキュアモジュール150が、最初の切替え要求を初期化/ロード部160へ出す理由は、セキュアモジュール150から出した方が、オペレーティングシステムに近い初期化/ロード部160から出すより安全であり、オペレーティングシステムから何時セキュアソフトウェアの切り替えが行われたかをわからなくするためである。
【0176】
次に、初期化/ロード部160は、パーソナルコンピュータ100上のスワップ不可能空きメモリ領域を見つけてメインメモリ106にセキュアソフトウェア180’をロードする。
【0177】
そして、セキュアモジュール150は、切替の制御を行う。例えば、セキュアモジュール150は、セキュアソフトウェア内のあるメモリ空間に特別の番号を書き込むことで切替の制御を行う。
【0178】
次に、セキュアソフトウェア180からセキュアソフトウェア180’へ制御が移行される。但し、制御を移行する際には、セキュアソフトウェア180が使っていたバッファメモリ空間の制御をセキュアソフトウェア180’へ移行させる必要がある。
【0179】
このため、以下のような具体的な制御が実行される。
【0180】
(1)セキュアモジュール150が切り替え要求信号を初期化/ロード部160に渡す。
【0181】
(2)初期化/ロード部160がセキュアモジュール150にセキュアソフトウェア180’を要求する。
【0182】
(3)セキュアモジュール150は、セキュアソフトウェア180’を初期化/ロード部160へ渡す。
【0183】
(4)初期化/ロード部160は、セキュアソフトウェア180’をメインメモリ106上のスワップ不可能領域にロードする。
【0184】
(5)これで、セキュアソフトウェア180とセキュアソフトウェア180’とがメインメモリ106上に並列的に存在することになる。
【0185】
(6)セキュアモジュール150がセキュアソフトウェア180へセキュアソフトウェア切替指示を出す。
【0186】
(7)セキュアソフトウェア切替指示を受けたセキュアソフトウェア180は、MPEG処理の切りのいい所で制御を、セキュアソフトウェア180’に移行させるため、画像LSI107からの画像表示終了信号の入力を待ち、画像表示終了信号が入力されたところで、以下の処置を講ずる。
【0187】
(a)セキュアソフトウェア180は、MPEG画像メモリ187の開始番地と関連情報をセキュアソフトウェア180’へ通知する。関連情報は、例えば、MPEG画像メモリ187が4フレーム構造の場合、各MPEGフレームの種類(Iピクチャ、Pピクチャ、Bピクチャ)や、更新可能なフレーム、次のフレームに表示すべき画像等に関する情報である。
【0188】
(b)セキュアソフトウェア180は、小バッファ185のメモリ開始番地とデータ残存量に関する情報をセキュアソフトウェア180’へ通知する。
【0189】
(c)セキュアソフトウェア180は、ビデオバッファ183のメモリ開始番地とデータ残存量に関する情報をセキュアソフトウェア180’へ通知する。
【0190】
(d)セキュアソフトウェア180は、入力バッファ181のメモリ開始番地とメモリ残存量に関する情報をセキュアソフトウェア180’に通知する。
【0191】
(e)セキュアソフトウェア180は、使用中の暗号鍵や復号鍵の情報をセキュアソフトウェア180’へ通知する。
【0192】
(8)セキュアソフトウェア180は、セキュアソフトウェア180’に制御を移行させる。
【0193】
(一部切替時のセキュア機能)
つぎに、図5を参照して、図1に示したパーソナルコンピュータ100における一部切替時のセキュア機能について説明する。
【0194】
図5には、パーソナルコンピュータ100のメインメモリ106にロード(実装)されたセキュアソフトウェア180の通常動作中に初期化/ロード部160を用いて、セキュアソフトウェア180の一部(例えば、MPEGビデオデコーダ186)を、別のMPEGビデオデコーダ186’に切り替える場合が図示されている。
【0195】
ここで、前述した図4においては、セキュアソフトウェア180の全部をセキュアソフトウェア180’に切り替える場合について説明したが、一部を切り替える図5の場合が実際的である。図5の場合には、セキュアソフトウェア180の一部しか切り換えないため、バッファも一部しか、引き継がない。
【0196】
全切替時の(1)〜(5)の動作を経て、以下の動作が行われる。
【0197】
(6’)セキュアモジュール150がセキュアソフトウェア180へセキュアソフトウェア切替指示を出す。
【0198】
(7’)セキュアソフトウェア切替指示を受けたセキュアソフトウェア180は、MPEG処理の切りのいい所で制御を、MPEGビデオデコーダ186をMPEGビデオデコーダ186’に移行させるため、画像LSI107からの画像表示終了信号の入力を待ち、画像表示終了信号が入力されたところで、以下の処置を講ずる。
【0199】
(a’)セキュアソフトウェア180は、MPEG画像メモリ187の開始番地と関連情報をMPEGビデオデコーダ186’へ通知する。関連情報は、例えば、MPEG画像メモリ187が4フレーム構造の場合、各MPEGフレームの種類(Iピクチャ、Pピクチャ、Bピクチャ)や、更新可能なフレーム、次のフレームに表示すべき画像等に関する情報である。
【0200】
(b’)セキュアソフトウェア180は、小バッファ185のメモリ開始番地とデータ残存量に関する情報をMPEGビデオデコーダ186’へ通知する。
【0201】
(8’)セキュアソフトウェア180は、MPEGビデオデコーダ186に換えて、MPEGビデオデコーダ186’を正式のMPEGビデオデコーダとして組み込み、処理を開始する。
【0202】
なお、ビデオバッファ183や、入力バッファ181は、MPEGビデオデコーダ186と直接の関連がないため切り替える必要はない。
【0203】
以上説明したように、一実施の形態によれば、図3に示したセキュアモジュール150を設け、セキュアモジュール150からセキュアソフトウェア180が格納されたメインメモリ106へ直接アクセスすることにより、プログラムの書き換え、バッファ位置の変更、スキャン認証等を実行するようにしたので、パーソナルコンピュータ100等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア(セキュアモジュール150)を付加することで、安全なソフトウェア処理を実行することができる。
【0204】
また、一実施の形態によれば、一度目で正規の情報が読み出され2度目で違う情報が読み出されるように制御されるメモリ空間に秘密情報を格納することとしたので、さらにセキュア環境を提供することができる。
【0205】
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【0206】
例えば、前述した一実施の形態においては、前述したセキュア機能を実現するためのプログラムを図6に示したコンピュータ読み取り可能な記録媒体500に記録して、この記録媒体500に記録されたプログラムを同図に示したコンピュータ400に読み込ませ、実行することにより各機能を実現してもよい。
【0207】
同図に示したコンピュータ400は、上記プログラムを実行するCPU410と、キーボード、マウス等の入力装置420と、各種データを記憶するROM430と、演算パラメータ等を記憶するRAM440と、記録媒体500からプログラムを読み取る読取装置450と、ディスプレイ、プリンタ等の出力装置460と、装置各部を接続するバス470とから構成されている。
【0208】
CPU410は、読取装置450を経由して記録媒体500に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した機能を実現する。なお、記録媒体500としては、光ディスク、フレキシブルディスク、ハードディスク等が挙げられる。
【0209】
(付記1)情報を再生する情報再生装置において、
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールと、
外部から参照することが可能なメモリと、
前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報と、前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とする情報再生装置。
【0210】
(付記2)前記改ざんチェック手段は、前記メモリ格納情報の全てを読み出すことを特徴とする付記1に記載の情報再生装置。
【0211】
(付記3)前記改ざんチェック手段は、前記メモリ格納情報の一部を読み出すことを特徴とする付記1に記載の情報再生装置。
【0212】
(付記4)前記改ざんチェック手段は、チェックサムにより前記メモリ格納情報と前記セキュアモジュール格納情報との比較を行うことを特徴とする付記1〜3のいずれか一つに記載の情報再生装置。
【0213】
(付記5)前記メモリ格納情報は、ソフトウェアであることを特徴とする付記1〜4のいずれか一つに記載の情報再生装置。
【0214】
(付記6)前記改ざんチェック手段は、不定期に前記メモリからの読み出しを行うことを特徴とする付記1〜5のいずれか一つに記載の情報再生装置。
【0215】
(付記7)前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を書き換える書き換え手段を備え、前記改ざんチェック手段は、書き換え後のメモリ格納情報と前記セキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックすることを特徴とする付記1〜6のいずれか一つに記載の情報再生装置。
【0216】
(付記8)前記書き換え手段は、不定期に前記メモリ格納情報の書き換えを行うことを特徴とする付記7に記載の情報再生装置。
【0217】
(付記9)前記書き換え手段は、前記メモリ格納情報の一部を書き換えることを特徴とする付記7または8に記載の情報再生装置。
【0218】
(付記10)前記セキュアモジュールに実装され、原情報に変更をかけ、変更後の情報をメモリ格納情報として前記メモリに格納する格納制御手段を備えたことを特徴とする付記1〜9のいずれか一つに記載の情報再生装置。
【0219】
(付記11)前記格納制御手段は、前記メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることを特徴とする付記10に記載の情報再生装置。
【0220】
(付記12)前記格納制御手段は、前記セキュアモジュール内のみに存在する鍵を用いて前記原情報を暗号化し、暗号化された原情報を前記メモリ格納情報として前記メモリに格納することを特徴とする付記10または11に記載の情報再生装置。
【0221】
(付記13)前記セキュアモジュールに実装されており、前記メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、前記改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給する鍵管理手段を備えたことを特徴とする付記1〜12のいずれか一つに記載の情報再生装置。
【0222】
(付記14)前記鍵管理手段は、有効時間が設定された前記鍵を供給することを特徴とする付記13に記載の情報再生装置。
【0223】
(付記15)前記鍵管理手段は、供給の度に鍵を変更することを特徴とする付記13または14に記載の情報再生装置。
【0224】
(付記16)前記鍵管理手段は、前記改ざんチェック手段により改ざんが検知された場合、前記鍵の供給を停止することを特徴とする付記13〜15のいずれか一つに記載の情報再生装置。
【0225】
(付記17)前記セキュアモジュールに実装され、直接アクセスにより、前記セキュアモジュール内の秘密情報を前記メモリに書き込む書込手段を備え、前記改ざんチェック手段は、書き込まれた前記秘密情報に対応する応答情報に基づいて前記メモリ格納情報の改ざんをチェックすることを特徴とする付記1〜16のいずれか一つに記載の情報再生装置。
【0226】
(付記18)前記秘密情報は、1度目で正規の情報が読み出され2度目で違う情報が読み出されるように制御されるメモリ空間に格納されていることを特徴とする付記17に記載の情報再生装置。
【0227】
(付記19)前記メモリ格納情報は暗号化されたMPEGデータであることを特徴とする付記1〜18のいずれか一つに記載の情報再生装置。
【0228】
(付記20)内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュール内で実行され、いずれの手段も介さずに直接アクセスにより外部から参照することが可能なメモリに格納されたメモリ格納情報を読み出す読み出し工程と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、
を含むことを特徴とする情報再生方法。
【0229】
(付記21)情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールにおいて、
外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し手段と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とするセキュアモジュール。
【0230】
(付記22)前記読み出し手段は、前記メモリ格納情報の全てを読み出すことを特徴とする付記21に記載のセキュアモジュール。
【0231】
(付記23)前記読み出し手段は、前記メモリ格納情報の一部を読み出すことを特徴とする付記21に記載のセキュアモジュール。
【0232】
(付記24)前記改ざんチェック手段は、チェックサムにより前記メモリ格納情報と前記セキュアモジュール格納情報との比較を行うことを特徴とする付記21〜23のいずれか一つに記載のセキュアモジュール。
【0233】
(付記25)前記メモリ格納情報は、ソフトウェアであることを特徴とする付記21〜24のいずれか一つに記載のセキュアモジュール。
【0234】
(付記26)前記読み出し手段は、不定期に前記メモリからの読み出しを行うことを特徴とする付記21〜25のいずれか一つに記載のセキュアモジュール。
【0235】
(付記27)いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を書き換える書き換え手段を備え、前記改ざんチェック手段は、書き換え後のメモリ格納情報と前記セキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックすることを特徴とする付記21〜26のいずれか一つに記載のセキュアモジュール。
【0236】
(付記28)前記書き換え手段は、不定期に前記メモリ格納情報の書き換えを行うことを特徴とする付記27に記載のセキュアモジュール。
【0237】
(付記29)前記書き換え手段は、前記メモリ格納情報の一部を書き換えることを特徴とする付記27または28に記載のセキュアモジュール。
【0238】
(付記30)原情報に変更をかけ、変更後の情報をメモリ格納情報として前記メモリに格納する格納制御手段を備えたことを特徴とする付記21〜29のいずれか一つに記載のセキュアモジュール。
【0239】
(付記31)前記格納制御手段は、前記メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることを特徴とする付記30に記載のセキュアモジュール。
【0240】
(付記32)前記格納制御手段は、前記セキュアモジュール内のみに存在する鍵を用いて前記原情報を暗号化し、暗号化された原情報を前記メモリ格納情報として前記メモリに格納することを特徴とする付記30または31に記載のセキュアモジュール。
【0241】
(付記33)前記メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、前記改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給する鍵管理手段を備えたことを特徴とする付記21〜32のいずれか一つに記載のセキュアモジュール。
【0242】
(付記34)前記鍵管理手段は、有効時間が設定された前記鍵を供給することを特徴とする付記33に記載のセキュアモジュール。
【0243】
(付記35)前記鍵管理手段は、供給の度に鍵を変更することを特徴とする付記33または34に記載のセキュアモジュール。
【0244】
(付記36)前記鍵管理手段は、前記改ざんチェック手段により改ざんが検知された場合、前記鍵の供給を停止することを特徴とする付記33〜35のいずれか一つに記載のセキュアモジュール。
【0245】
(付記37)直接アクセスにより、前記セキュアモジュール内の秘密情報を前記メモリに書き込む書込手段を備え、前記改ざんチェック手段は、書き込まれた前記秘密情報に対応する応答情報に基づいて前記メモリ格納情報の改ざんをチェックすることを特徴とする付記21〜36のいずれか一つに記載のセキュアモジュール。
【0246】
(付記38)前記秘密情報は、1度目で正規の情報が読み出され2度目で違う情報が読み出されるように制御されるメモリ空間に格納されていることを特徴とする付記37に記載のセキュアモジュール。
【0247】
(付記39)前記メモリ格納情報は暗号化されたMPEGデータであることを特徴とする付記21〜38のいずれか一つに記載のセキュアモジュール。
【0248】
(付記40)情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールに実行させるためのプログラムを格納した記録媒体において、
外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し工程手段と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、
を実行させるためのプログラムを格納したことを特徴とする記録媒体。
【0249】
【発明の効果】
以上説明したように、本発明によれば、いずれの手段も介さずに直接アクセスによりメモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報とセキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、メモリ格納情報の改ざんをチェックすることとしたので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア(セキュアモジュール)を付加することで、安全なソフトウェア処理を実行することができるという効果を奏する。
【0250】
また、本発明によれば、セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスによりメモリに格納されたメモリ格納情報を書き換える書き換え手段を設け、書き換え後のメモリ格納情報とセキュアモジュール格納情報との比較結果に基づいて、メモリ格納情報の改ざんをチェックすることとしたので、パーソナルコンピュータ等のオープンアーキテクチャを有する装置に対して、最低限のハードウェア(セキュアモジュール)を付加することで、安全なソフトウェア処理を実行することができるという効果を奏する。
【0251】
また、本発明によれば、セキュアモジュールに実装され、原情報に変更をかけ、変更後の情報をメモリ格納情報としてメモリに格納することとしたので、さらに安全なセキュア環境を提供することができるという効果を奏する。
【0252】
また、本発明によれば、メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることとしたので、更新に伴う処理停止を回避することができるという効果を奏する。
【0253】
また、本発明によれば、セキュアモジュール内のみに存在する鍵を用いて原情報を暗号化し、暗号化された原情報をメモリ格納情報としてメモリに格納することしたので、さらに安全なセキュア環境を提供することができるという効果を奏する。
【0254】
また、本発明によれば、メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給することとしたので、安全性が高い状態で暗号化または復号化を行うことができるという効果を奏する。
【0255】
また、本発明によれば、改ざんチェック手段により改ざんが検知された場合、鍵の供給を停止することとしたので、改ざんによる損害を最小限にとどめることができるという効果を奏する。
【0256】
また、本発明によれば、直接アクセスにより、セキュアモジュール内の秘密情報をメモリに書き込む書込手段を備え、書き込まれた秘密情報に対応する応答情報に基づいてメモリ格納情報の改ざんをチェックすることとしたので、さらに安全なセキュア環境を提供することができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明にかかる一実施の形態の構成を示すブロック図である。
【図2】図1に示したパーソナルコンピュータ100における電源投入時のセキュア機能を説明するブロック図である。
【図3】図1に示したパーソナルコンピュータ100における通常動作時のセキュア機能を説明するブロック図である。
【図4】図1に示したパーソナルコンピュータ100における全切替時のセキュア機能を説明するブロック図である。
【図5】図1に示したパーソナルコンピュータ100における一部切替時のセキュア機能を説明するブロック図である。
【図6】同一実施の形態の変形例の構成を示すブロック図である。
【図7】パーソナルコンピュータ50を用いた従来のシステムの構成例を示すブロック図である。
【図8】図7に示したパーソナルコンピュータ50における情報の流れを説明する図である。
【符号の説明】
100 パーソナルコンピュータ
101 PCメインプロセッサ
102 ハードディスクドライブ
106 メインメモリ
107 画像LSI
108 画像メモリ
109 PCIバス
150 セキュアモジュール
151 セキュアモジュールプロセッサ
152 RAM
153 ROM
154 暗号復号エンジン
155 PCIインタフェース
200 ネットワーク
300 表示装置
160 初期化/ロード部
170 ドライバ
180 セキュアソフトウェア
180’ セキュアソフトウェア
181 入力バッファ
182 TSデコーダ
183 ビデオバッファ
184 暗号復号部
185 小バッファ
186 MPEGビデオデコーダ
187 MPEG画像メモリ
188 MPEG出力部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information reproducing apparatus, a secure module, and an information reproducing method for reproducing, for example, information downloaded via the Internet or information stored in a recording medium, and particularly relates to an open system such as a personal computer. The present invention relates to an information reproducing apparatus, a secure module, and an information reproducing method capable of executing secure software processing by adding minimum hardware to an apparatus having an architecture.
[0002]
[Prior art]
2. Description of the Related Art In recent years, broadband Internet and digital broadcasting have become widespread, and right protection techniques for ensuring the security of distributed content (mainly, digital AV (Audio Video)) have been highlighted.
[0003]
Among them, in particular, a personal computer (PC) has an open architecture, and since it can basically be peeped, it is difficult to realize security.
[0004]
However, personal computers, on the other hand, are functioning as major gateways to the broadband Internet. Therefore, when security is ensured by a personal computer (gateway), digital AV contents can be distributed over the Internet, which is significant.
[0005]
2. Description of the Related Art Conventionally, regarding rights protection by software of a personal computer, an obfuscation method that makes it difficult to analyze an algorithm that guarantees security has been mainstream.
[0006]
However, in software on a personal computer, once it is implemented on the main memory, it is easy to copy, and by analyzing the copy result over time, the right protection algorithm can be analyzed.
[0007]
Therefore, a system for protecting rights by obfuscation is considered to be a system with low security, and it is difficult to adopt the system if it is assumed that damage has been once analyzed by a system with high constancy such as broadcasting.
[0008]
FIG. 7 is a block diagram showing a configuration example of a conventional system using a personal computer 50. As shown in FIG. 1, the conventional system includes a personal computer 50, a network 51, a speaker 52, a display device 53, and an input device 54.
[0009]
The personal computer 50 has a function as an information reproducing apparatus, and includes a CPU (Central Processing Unit) 50a, a ROM (Read Only Memory) 50b, a RAM (Random Access Memory) 50c, a hard disk drive 50d, and an MB (Multimedia Board) 50. , An I / F (Interface) 50f, an I / F 50g, and a bus 50h, and decrypts the encrypted information downloaded via the network 51 or the encrypted information stored in the hard disk drive 50d, and the speaker 52 and the display device. Output to 53.
[0010]
The CPU 50a executes various arithmetic processes according to a program stored in the hard disk drive 50d and controls each unit of the device. The ROM 50b stores basic programs and data executed by the CPU 50a. The RAM 50c temporarily stores programs and data to be executed when the CPU 50a executes various arithmetic processes.
[0011]
The hard disk drive 50d stores programs executed by the CPU 50a, data, and the like. The MB 50e decodes the encrypted audio data and image data supplied from the CPU 50a, generates original audio signals and image signals, and outputs them to the speaker 52 and the display device 53.
[0012]
The I / F 50f is an interface for transmitting and receiving information via the network 51, and performs protocol conversion and data format conversion. The I / F 50g converts the data input from the input device 54 into data in the internal format of the personal computer 50.
[0013]
The bus 50h interconnects the CPU 50a, the ROM 50b, the RAM 50c, the hard disk drive 50d, the MB 50e, the I / F 50f, and the I / F 50g, and enables information to be exchanged between them.
[0014]
The network 51 is configured by, for example, the Internet. The speaker 52 converts the audio signal supplied from the MB 50e into audio and outputs the audio. The display device 53 includes, for example, a CRT (Cathode Ray Tube) monitor or a liquid crystal monitor, and displays an image signal supplied from the MB 50e as an image. The input device 54 includes, for example, a mouse and a keyboard.
[0015]
FIG. 8 is a diagram showing a flow of information in the personal computer 50 shown in FIG. As shown in the figure, the hard disk drive 50d stores basic software, a decryption key group, and encrypted content.
[0016]
Here, the basic software is software for performing processing for decrypting the encryption of the encrypted content, and is obfuscated for the purpose of preventing the decryption by a malicious user. This obfuscation means that the following processing is performed.
[0017]
Figure 2004129227
[0018]
That is, as described above, the calculation result is the same before and after obfuscation, but after obfuscation, it becomes difficult to decode the algorithm.
[0019]
The decryption key group in the hard disk drive 50d is a plurality of keys for decrypting the encryption applied to the encrypted content, and the secret scramble is used for the purpose of preventing the malicious content from being easily obtained by a malicious user. It is stored in a secret place as it is applied.
[0020]
The encrypted content is a content that has been subjected to an encryption process, and includes, for example, images, sounds, computer data, and the like.
[0021]
When the reproduction of the encrypted content is started, the following processing is executed.
(1) Obfuscated basic software is read from the hard disk drive 50d and mounted on the RAM 50c.
[0022]
(2) The read basic software is stored in a secret place as needed, and the secret scrambled decryption key is read from the hard disk drive 50d. The decryption key is stored in a secret place, for example, divided into three to five places, and processed so that a target key cannot be obtained unless a secret operation or the like is performed.
[0023]
(3) The encrypted content is read from the hard disk drive 50d and decrypted using the decryption key.
[0024]
(4) If the decrypted content is compressed, decompression processing (for video content, MPEG (Motion Picture Experts Group) decompression processing or the like) is executed, and the obtained content is buffered in the RAM 50c. And then output to the MB 50e.
[0025]
(5) The MB 50e performs D / A (Digital / Analog) conversion processing and drawing processing on the input content, outputs the obtained audio signal to the speaker 52 (see FIG. 7), and outputs the image signal. Output to the display device 53. Thereby, the content is reproduced.
[0026]
[Problems to be solved by the invention]
By the way, as described above, in the related art, since the basic software is mounted on the RAM 50c of the personal computer 50, there is a risk that the malicious software may be decrypted or copied by a malicious user.
[0027]
Even if the basic software and the other software stored in the hard disk drive 50d are all encrypted, if the decryption software for decrypting the encryption exists somewhere in the personal computer 50, the decryption software is analyzed. When the storage location of the decryption key is specified, the basic software is also analyzed, and the right protection algorithm is determined.
[0028]
In particular, in a highly public network such as a broadcast, a processing method in which the content cannot be easily decrypted even if the right protection algorithm is known is desired. Current hardware-based digital television receivers perform encryption such as MULTI2 and DES (Data Encryption Standard). Although these algorithms are known, it is extremely difficult to decrypt the contents unless the decryption key is known.
[0029]
However, the digital television receiver has a configuration in which a decryption key is built in hardware and cannot be read out on software.
[0030]
Further, in the digital television receiver, since the decryption circuit and the content processing circuit (MPEG video decompression circuit and MPEG audio decompression circuit) are also configured by hardware, it is extremely difficult to peek at the contents of the processing. I have.
[0031]
Such digital television receivers are actually being commercialized. Perfect TV (trademark) in Japan and DirectTV (trademark) in the United States are good examples of such digital television receivers.
[0032]
On the other hand, in software processing, a decryption key, a decryption circuit, and a content processing circuit are realized by basic software, and a personal computer capable of easily reading such basic software itself, and furthermore, the intermediate calculation results. Since it is mounted in the RAM 50c on the RAM 50, there is a problem that analysis and peeping are easily performed.
[0033]
The present invention has been made in view of the above, and is an information reproducing apparatus capable of executing secure software processing by adding minimum hardware to a device having an open architecture such as a personal computer. , A secure module and an information reproducing method.
[0034]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides an information reproducing apparatus for reproducing information, a secure module having a structure in which information stored inside cannot be externally referred to, and an externally referable information. A memory and read out the memory storage information stored in the memory by direct access without any means mounted on the secure module, and read the memory storage information and the secure module storage information stored in the secure module in advance. And falsification checking means for checking the falsification of the memory storage information based on the comparison result.
[0035]
The present invention is directed to a secure module that is mounted on an information reproducing apparatus and has a structure in which information stored inside cannot be referred to from the outside. Reading means for reading out the memory storage information stored in the read memory by direct access without any means, and comparing the read result of the memory storage information with the secure module storage information previously stored in the secure module. Alteration checking means for checking alteration of the memory storage information based on the information.
[0036]
In addition, the present invention is executed in a secure module having a structure in which information stored inside cannot be referred to from outside, and can be referred to from outside by direct access without any means. A step of reading the stored memory storage information, and checking the memory storage information for tampering based on a comparison result between the read memory storage information and the secure module storage information stored in the secure module in advance. And a tamper checking step.
[0037]
According to the present invention, the memory storage information stored in the memory is read out by direct access without any means, and based on the comparison result between the memory storage information and the secure module storage information stored in advance in the secure module, Since the falsification of the memory storage information is checked, it is possible to execute secure software processing by adding minimum hardware (secure module) to a device having an open architecture such as a personal computer. it can.
[0038]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an information reproducing apparatus, a secure module, and an information reproducing method according to embodiments of the present invention will be described in detail with reference to the drawings.
[0039]
FIG. 1 is a block diagram showing a configuration of an embodiment according to the present invention. The system shown in FIG. 1 includes a personal computer 100, a network 200, a display device 300, an input device (not shown), a speaker, and the like, and decrypts and reproduces encrypted information (content) in a secure environment. It is for doing.
[0040]
The personal computer 100 has a function as an information reproducing apparatus, and includes a PC main processor 101, a hard disk drive 102, an input / output interface 103, a south bridge 104, a north bridge 105, a main memory 106, an image LSI (Large Scale Integrated Circuit). 107, an image memory 108, a PCI (Peripheral Component Interconnect) bus 109, and a secure module 150.
[0041]
The personal computer 100 decrypts the encrypted information (content) downloaded via the network 200 and the encrypted information (content) stored in the hard disk drive 102 and outputs the decrypted information to the display device 300 and a speaker (not shown). I do.
[0042]
The PC main processor 101 executes various arithmetic processes in accordance with secure software stored in the hard disk drive 102 and other software, and controls each unit of the device.
[0043]
Here, the secure software corresponds to secure software 180 shown in FIGS. 2 to 5 described later, and is for providing a secure environment when reproducing information, and is mounted on the main memory 106.
[0044]
The hard disk drive 102 is a large-capacity storage device having a disk, and stores secure software 180 (see FIG. 2) executed by the PC main processor 101 and other software.
[0045]
The input / output interface 103 is an interface for transmitting and receiving information (contents) via the network 200, and performs protocol conversion and data format conversion.
[0046]
The south bridge 104 has a function of interconnecting the input / output interface 103 and the PCI bus 109, and has a built-in bridge circuit. The north bridge 105 has a function of interconnecting the PC main processor 101, the main memory 106, and the image LSI 107 to perform data bridging. The south bridge 104 and the north bridge 105 are interconnected by a high-speed bus.
[0047]
The main memory 106 is configured by, for example, a RAM, and has the secure software 180 illustrated in FIGS. 2 to 5 and other software mounted thereon. When the secure software 180 is executed by the PC main processor 101, the function of each block in the secure software 180 shown in FIGS. 2 to 5 is realized.
[0048]
The secure software 180 is mounted on the main memory 106 and executed by the PC main processor 101 to provide a function of decoding MPEG data encrypted in a secure environment in cooperation with the secure module 150.
[0049]
The image LSI 107 has a function of storing decoded image information in the image memory 108 and displaying the image information on the display device 300 as an image. The image memory 108 stores image information under the control of the image LSI 107.
[0050]
The PCI bus 109 is a bus for interconnecting the hard disk drive 102, the south bridge 104, and a PCI interface 155 of the secure module 150 described later.
[0051]
The secure module 150 has a TRM (Tamper Resistant Module) structure, and is hardware that prevents peeping from outside and prevents falsification of internal data.
[0052]
The TRM structure refers to a structure for physically and logically protecting internal analysis and tampering of a semiconductor chip (in this case, the secure module 150). Specifically, in the secure module 150, a strong and highly adhesive coating is applied to the inside, and when the surface is peeled off, the internal circuit is completely destroyed or dummy wiring is provided.
[0053]
The secure module 150 has a function of reading the secure software 180 (see FIGS. 2 to 5) and the like from the hard disk drive 102, a function of rewriting the secure software 180 mounted on the main memory 106 at irregular intervals, and various functions set in the main memory 106. It has a function to change the buffer position irregularly, an encryption function, a decryption function, and the like.
[0054]
The secure module 150 includes a secure module processor 151, a RAM 152, a ROM 153, an encryption / decryption engine 154, a PCI interface 155, and an internal bus 156. The secure module processor 151 implements the above-described various functions of the secure module 150 by executing the firmware stored in the ROM 153.
[0055]
The RAM 152 temporarily stores programs and data to be executed when the secure module processor 151 executes various arithmetic processes. The RAM 152 stores an encryption key and the like. The ROM 153 stores basic firmware and data executed by the secure module processor 151.
[0056]
The encryption / decryption engine 154 implements an encryption function and a decryption function. The PCI interface 155 interfaces with each unit via the PCI bus 109. The internal bus 156 is a bus for interconnecting the secure module processor 151, the RAM 152, the ROM 153, the encryption / decryption engine 154, and the PCI interface 155.
[0057]
FIGS. 2 to 5 show blocks of functions (initialization / loading unit 160, driver 170, input buffer 181 to MPEG output unit 188) realized by the above-described secure software 180 and various software. In these drawings, parts corresponding to the respective parts in FIG. 1 are denoted by the same reference numerals.
[0058]
The initialization / load unit 160 shown in FIG. 2 exists in the main memory 106 (see FIG. 1), has a function of searching for a free area on the main memory 106, and loading (mounting) software into the free memory area. ing. Actually, the initialization / load unit 160 realizes the above function by executing software on the PC main processor 101.
[0059]
Further, the initialization / load unit 160 has a function of setting a link between software when it is necessary to link with other application software (not shown) of the personal computer 100.
[0060]
Here, in the personal computer 100, when other application software and the secure software 180 operate simultaneously in a multitask environment under the control of an operating system (not shown), the operating system allocates a time during which each software operates. Has functions.
[0061]
The initialization / load unit 160 notifies the operating system of information such as a memory area in which the secure software 180 is mounted, and performs control for allocating time during which the secure software 180 operates.
[0062]
Thereby, the operating system performs scheduling related to software execution such that, for example, after the secure software 180 operates for 100 milliseconds, another software operates for 100 milliseconds.
[0063]
The reason that the initialization / load unit 16 cooperates with the operating system is that the secure software 180 is operated as one of a plurality of tasks (programs) under the operating system. I need help.
[0064]
The driver 170 corresponds to normal driver software that operates under the operating system. A large amount of information (encrypted MPEG stream or the like) is exchanged between the secure module 150 and the secure software 180 (input buffer 181) via the driver 170.
[0065]
That is, by using the driver 170, various functions for controlling the driver in the operating system can be used.
[0066]
It is premised that information other than the encrypted MPEG stream is exchanged between the secure module 150 and the secure software 180 by direct access such as DMA (Direct Memory Access). That is, the secure module 150 and the secure software 180 are directly accessed without passing through the driver 170.
[0067]
As described above, when direct access is presupposed, there is a disadvantage that various services provided by the operating system to the driver 170 cannot be used.
[0068]
However, in this case, since the information is outside of the control of the operating system and information can be exchanged in an environment unrelated to the operating system, there is a great security advantage that security is increased.
[0069]
For example, when information is exchanged between the secure module 150 and the secure software 180 via the driver 170, an interrupt is always generated to the operating system, and based on this interrupt, other software Can be sequentially "sniffed" and security is reduced. Here, among the many drivers, there is a driver having a function of transferring information to other software.
[0070]
On the other hand, when information is exchanged between the secure module 150 and the secure software 180 by direct access without passing through the driver 170, no interrupt occurs to the operating system.
[0071]
Therefore, when other software performs "sneaking", the state of the secure software 180 (the position of the buffer on the main memory 106 is analyzed by polling or the like to check whether the information in the buffer has been updated) is updated. "Snoop" when it is done).
[0072]
However, in the case of direct access, it is not possible to know when information will arrive from the secure module 150 to the secure software 180, so that polling is substantially impossible. It should be noted that even if the polling makes it possible to “see” some information, it is impossible to “see” all data.
[0073]
Further, in the present embodiment, the reason why the encrypted MPEG stream is passed through the driver 170 is that the MPEG stream is encrypted, and even if it is stolen, it is determined that it is safe. This is because priority is given to making the encrypted MPEG stream reach the secure software 180.
[0074]
The input buffer 181 is a buffer whose area is set on the main memory 106, and stores an encrypted MPEG stream. The TS decoder 182 receives the request from the encryption / decryption unit 184, reads an encrypted MPEG stream (more precisely, an MPEG-TS stream) from the buffer 181, stores the encrypted MPEG video information in the video buffer 183 after performing TS decoding processing, and stores the encrypted MPEG video information in the video buffer 183. I do.
[0075]
The TS decoding process is a process of extracting compressed encrypted MPEG video information from an encrypted MPEG stream. The encrypted MPEG stream is composed of (1) encrypted MPEG video information, (2) encrypted MPEG audio information, (3) encrypted MPEG video information, and encrypted MPEG audio information in a time-division multiplexed manner. It contains program information (name of program, broadcast time, synopsis of program, fee for program, etc.).
[0076]
In the actual secure software, it is necessary to decode not only the encrypted MPEG video information but also the encrypted MPEG audio information. In this case, it is needless to say that decoding of the encrypted MPEG audio information requires the same kind of program as decoding of the encrypted MPEG video information.
[0077]
Further, the TS decoder 182 constantly monitors the capacity of the input buffer 181 and requests the secure software 180 to replenish the input buffer 181 when the capacity of the input buffer 181 falls below a certain level.
[0078]
The video buffer 183 is a buffer whose area is set on the main memory 106, and stores the above-described encrypted MPEG video information. The video buffer 183 is a buffer corresponding to a VBV buffer defined by the MPEG video international standard.
[0079]
Upon receiving the request from the MPEG video decoder 186, the encryption / decryption unit 184 reads the encrypted MPEG video information from the video buffer 183, and decodes the encrypted MPEG video information until the small buffer 185 is full. Further, the encryption / decryption unit 184 stores the decrypted compressed MPEG video information in the small buffer 185.
[0080]
The small buffer 185 is a buffer whose area is set on the main memory 106, and stores the above-described compressed MPEG video information. The MPEG video decoder 186 recognizes that the subsequent MPEG output unit 188 has output image information.
[0081]
Here, since there is a free area for the image information output to the MPEG image memory 187, the MPEG video decoder 186 reads the next one piece of compressed MPEG video information from the small buffer 185 and performs expansion processing (decoding). After that, the image information is stored in the MPEG image memory 187.
[0082]
The small buffer 185 is set so that only a small amount (less than one image) of compressed MPEG video information can be stored. This is because it is very dangerous for security to have the decoded compressed MPEG video information on the main memory 106 and this danger is avoided.
[0083]
Accordingly, the small buffer 185 does not hold the compressed MPEG video information for one image, and becomes “empty” shortly after the MPEG video decoder 186 starts decoding.
[0084]
When the small buffer 185 becomes “empty” or when the amount of information in the small buffer 185 becomes smaller than a preset threshold value, the MPEG video decoder 186 sends a signal to the encryption / decryption unit 184. A decoding request is issued, and compressed MPEG video information is stored in the small buffer 185.
[0085]
The MPEG image memory 187 stores, for example, image information corresponding to four frames, that is, four-thirds of a second (about 133 milliseconds). The MPEG output unit 188 reads out decompressed (decoded) image information (for one image or one frame) from the MPEG image memory 187 and DMA-transfers it to the image LSI 107. Here, DMA (direct access) is used to transfer data from the MPEG output unit 188 to the image LSI 107 at high speed.
[0086]
In one embodiment, the encrypted MPEG video information stored in the video buffer 183 is stored in the video buffer 183 set in the main memory 106, and the encrypted MPEG video information stored in the video buffer 183 is decrypted little by little. It is characterized in that the MPEG video decoding is executed while being stored in the small buffer 185.
[0087]
In the secure module 150 shown in FIG. 3, the memory space 152A is set in the RAM 152 (see FIG. 1), and is used in the first secret number communication executed between the secure module 150 and the TS decoder 182. .
[0088]
The secure module 150 (secure module processor 151) controls the memory space 152A so that a normal value is read out a first time and a different value is read out a second time.
[0089]
The memory space 152B is set in the RAM 152 (see FIG. 1), and is used for the second secret number communication executed between the secure module 150 and the encryption / decryption unit 184.
[0090]
The secure module 150 (secure module processor 151) controls the memory space 152B such that a normal value is read out a first time and a different value is read out a second time, as in the memory space 152A.
[0091]
(Secure function at power-on)
Next, a secure function at the time of power-on in the personal computer 100 shown in FIG. 1 will be described with reference to FIG.
[0092]
FIG. 2 illustrates a case where the initialization / load unit 160 loads the secure software 180 from the secure module 150 into the main memory 106 when the personal computer 100 is powered on.
[0093]
In FIG. 1, when the personal computer 100 is turned on, an operating system is started, and a list of software (programs, applications) to be started is displayed on a desktop (not shown).
[0094]
Thus, the user sees the list and activates, for example, the secure software 180 as desired software. Specifically, when the user clicks the icon corresponding to the secure software 180 displayed on the desktop, the secure software 180 is activated.
[0095]
That is, the initialization / load unit 160 requests the secure module 150 to load the secure software 180. Note that a general initialization / load unit directly loads software from the hard disk drive 102, but in one embodiment, passes through the secure module 150.
[0096]
After reading the secure software 180 from the hard disk drive 102, the secure module 150 (the secure module processor 151) changes a specific part (for example, a part in which a secret number is described) of the secure software 180. Next, the secure module 150 transfers the changed secure software 180 to the initialization / load unit 160.
[0097]
The initialization / loading unit 160 searches for a free area on the main memory 106 and loads (implements) the changed secure software 180 into the free area.
[0098]
Here, it is assumed that the memory space on the personal computer 100 can be directly accessed from the secure module 150, such as a DMA. For example, the memory space needs to be a non-swappable area on the main memory 106. The non-swappable area may be obtained by using the function of the operating system.
[0099]
If the secure software 180 is installed in the swappable area, the secure software 180 may be automatically swapped from the main memory 106 to the memory space of the hard disk drive 102 by an operating system function.
[0100]
The swap is performed because a plurality of pieces of software operate at the same time and all the software cannot be mounted on the main memory 106 of the personal computer 100.
[0101]
However, in such a case, there is a possibility that the secure software 180 does not exist on the main memory 106, and a problem occurs that the secure module 150 cannot be directly accessed by DMA or the like.
[0102]
Therefore, in one embodiment, the secure module 150 is mounted in the non-swappable area at the time of loading, so that the secure module 150 can always know the mounting position of the secure software 180. The above is an operation example from power-on to loading of the secure software 180 into the main memory 106.
[0103]
Further, as described above, when the power is turned on, the link with the operating system can be provided via the initialization / load unit 160, so that (1) the buffer area of the program, (2) the entire program code, 3) It is possible to completely change the memory area where the program is located.
[0104]
(Secure function during normal operation)
Next, with reference to FIG. 3, a description will be given of the secure function in the normal operation after the power is turned on in the personal computer 100 shown in FIG.
[0105]
In FIG. 3, the secure software 180 is loaded (implemented) on the main memory 106 of the personal computer 100.
[0106]
In this case, the secure software 180 performs, for example, the following operation. In the figure, it is assumed that the display device 300 ultimately consumes the image information and is linked to the image LSI 107.
[0107]
First, when the image LSI 107 finishes displaying an image on the display device 300, it requests the secure software 180 to prepare for displaying the next image. As a result, the MPEG output unit 188 reads out the image information (for one image) from the MPEG image memory 187 and DMA-transfers it to the image LSI 107.
[0108]
Upon receiving the request from the MPEG video decoder 186, the encryption / decryption unit 184 extracts the encrypted MPEG video information from the video buffer 183 and decodes the encrypted MPEG video information until the small buffer 185 becomes full. At the time of decryption, the decryption unit 184 sends and receives a decryption key from the secure module 150.
[0109]
The decryption key is valid only for a limited time (for example, several seconds), and after that, a new decryption key needs to be exchanged from the secure module 150. The algorithm for giving and receiving the decryption key from the secure module 150 may be included in, for example, a second secret number communication described later.
[0110]
Accordingly, the secure module 150 can provide the decryption key to the secure software 180 with confidence while confirming that the secure software 180 knows the secret number.
[0111]
Further, the encryption / decryption unit 184 constantly monitors the remaining amount of the encrypted MPEG video information in the video buffer 183, and requests the TS decoder 182 to supply the encrypted MPEG video information when the remaining amount becomes equal to or less than a predetermined amount.
[0112]
Next, the TS decoder 182 receives the request from the encryption / decryption unit 184, reads the encrypted MPEG stream from the input buffer 181, and performs TS decoding processing. Next, the TS decoder 182 stores the encrypted MPEG video information in the video buffer 183.
[0113]
Further, the TS decoder 182 constantly monitors the capacity of the input buffer 181 and requests the secure module 150 to replenish the encrypted MPEG stream when the capacity of the input buffer 181 falls below a certain level.
[0114]
Thus, the secure module 150 reads the encrypted MPEG stream from the hard disk drive 102. Next, the encryption / decryption engine 154 of the secure module 150 once decrypts the encrypted MPEG stream and re-encrypts it with another encryption key. The re-encrypted encrypted MPEG stream is provided from the secure module 150 to the secure software 180.
[0115]
Here, the re-encryption is performed when the encrypted MPEG stream read from the hard disk drive 102 is provided to the secure software 180 as it is, and the personal computer 100 passes the decryption key to the secure software 180 with the lowest security. Because it is dangerous.
[0116]
On the other hand, when the re-encryption is performed in the secure module 150, the re-encryption is not performed for the encrypted MPEG stream stored in the hard disk drive 102 but for the secure software 180 at that time. An encrypted MPEG stream that can be used only by the software is provided to the secure software 180.
[0117]
Therefore, the re-encrypted MPEG stream is less dangerous than the encrypted MPEG stream in the hard disk drive 102 which can be read at any time.
[0118]
Also, in FIG. 3, an operation for confirming the security of the secure software 180 is executed in parallel with the above-described operation. In this operation, the following processes (1) to (4) are executed, the secure module 150 exerts various actions on the secure software 180, and responses and the like are exchanged.
[0119]
(1) Scan authentication processing
(2) Processing to rewrite a program irregularly
(3) Processing for rewriting the buffer position irregularly
(4) Secret number communication process
[0120]
Here, in (1) to (4), (1) to (3) are executed by the secure module 150. (4) is executed by the secure module 150 and the secure software 180.
[0121]
Hereinafter, the processes (1) to (4) will be sequentially described. First, (1) scan authentication processing will be described.
[0122]
In the scan authentication processing, the secure module 150 directly accesses a partial area or the entire area of the main memory 106 in which the operating secure software 180 is mounted by DMA or the like, and reads a part or all of the data of the secure software 180. .
[0123]
Next, the secure module 150 compares the read data with data stored in advance in the RAM 152 (see FIG. 1) or the like, and performs authentication based on whether they match. For example, if the secure software 180 has been tampered with by a malicious user, since the program has been rewritten, the comparison result will be inconsistent and the authentication will be unacceptable.
[0124]
On the other hand, if the secure software 180 has not been tampered with, the comparison result is determined to be the same, and the authentication is OK.
[0125]
As a specific implementation method, the same contents as the secure software 180 are stored in the RAM 152 of the secure module 150, the secure software 180 is directly read from the main memory 106 by DMA or the like, and the result and the contents stored in the RAM 152 are stored. There is a method of comparing each time.
[0126]
In one embodiment, when the memory capacity of the RAM 152 of the secure module 150 is small and the entire secure software 180 cannot be stored, the scan authentication process may be performed by a method such as a checksum.
[0127]
That is, in this case, only the result of adding the code of the secure software 180 is stored in the RAM 152, the secure software 180 is read from the main memory 106 by DMA, and the result of adding the code is stored in the RAM 152. The secure software 180 is determined not to have been falsified (authentication result = OK).
[0128]
Further, the detection of tampering by scan authentication is performed by the secure module 150 directly accessing the main memory 106 in which the secure software 180 is mounted independently of the secure software 180.
[0129]
Further, since the scan authentication process does not pass through the operating system at all, it is highly secure against falsification or peeping using the functions of the operating system.
[0130]
On the other hand, in the case of passing through the operating system, there is a possibility that a malicious user can easily be notified of, for example, “when the scan authentication process is being executed” by interrupt information notified to the operating system. Is high.
[0131]
Next, (2) a process of rewriting a program irregularly will be described. In the process of rewriting the program at irregular intervals, the secure module 150 (the secure module processor 151) transfers the DMA directly to the memory area (the main memory 106) in which the secure software 180 is mounted while the secure software 180 is operating. Writing is performed in real time, for example.
[0132]
Here, while the (1) scan authentication process is a read operation, the write operation is performed in (2) the process of rewriting a program at irregular intervals. Specifically, the secure module 150 rewrites a part of the program of the secure software 180 without passing through the operating system so that the operating system does not know.
[0133]
Thus, when the scan authentication process is executed later, the authentication result changes in real time even while the secure software 180 is operating, and the security in the scan authentication process is improved.
[0134]
Here, a synergistic effect of the scan authentication and the irregular rewriting of the program will be described. In FIG. 2, for example, the “program for performing secret number communication” in the secure software 180 is rewritten.
[0135]
In this case, the security is improved because the scan authentication processing is performed on the code of the rewritten program in real time, and then the rewritten program code is executed. No matter how effective a malicious user (hacker) is, it is easy to imagine that it is difficult to hack programs that change in real time.
[0136]
Further, in one embodiment, by confirming the actual operation of the rewritten program, it is possible to confirm that the program that is actually operating has been rewritten. This is effective against the following attacks.
[0137]
That is, in order to mislead the scan authentication, the malicious user stores the secure software called “secure software a” for scan authentication (for impersonation) and “secure software b” that actually operates in the main memory 106 of the personal computer 100. And the scan authentication process is executed for the “secure software a”, and the actual operation may be an attack performed by the “secure software b”.
[0138]
The purpose of scan authentication is to make program rewriting impossible. However, by creating fake “secure software a”, “secure software b” can be freely rewritten by a malicious user, and scan authentication is deceived.
[0139]
When the initialization / load unit 160 loads the secure software 180, the initialization / load unit 160 notifies the secure module 150 of the memory area of the load destination.
[0140]
However, at this time, the initialization / loading unit 160 notifies the secure module 150 of the memory area of the secure software a as a fake memory area, so that the above-described attack can be performed.
[0141]
On the other hand, in one embodiment, a part (or all) of the secure software 180 is rewritten in real time, and the actual operation of the secure software 180 is changed as a result of the rewriting, and the change is detected by the secure module 150. By doing so, the security of the secure software 180 can be further improved.
[0142]
What is changed in one embodiment is, for example, a “secret number communication program”. The “secret number communication program” communicates the “secret number” between the secure module 150 and the secure software 180 in the secure software 180, and the secure module 150 confirms the security of the secure software 180. It is a program for.
[0143]
For example, after notifying the secure software 180 of the secret number from the secure module 150, the secure software 180 returns a regular secret number to the secure module 150.
[0144]
Here, if a number other than the formal secret number is returned to the secure module 150, the secure module 150 determines that the secure software 180 has been tampered with. The secret number may be a number sequence consisting of a plurality of numbers.
[0145]
As described above, in one embodiment, the secure module 150 directly executes the scan authentication process on the secure software 180 by a method such as DMA, rewrites a part of the code in real time, and executes the code. The above-mentioned attack can be prevented by confirming that the user is present.
[0146]
The configuration example for detecting the “spoofing” program has been described above. Upon finding “spoofing”, the secure module 150 stops providing the decryption key to the encryption / decryption unit 184 of the secure software 180.
[0147]
In the secure module 150, there are multiple decryption keys, and each decryption key is valid, for example, for only a few seconds. Therefore, when the supply of the decryption key is stopped, a series of processes on the encrypted MPEG stream cannot be continued by the secure software 180 several seconds later.
[0148]
Next, (3) the process of irregularly rewriting the buffer position will be described. In the process (3), while the security of the secure software 180 is confirmed by the processes (1) and (2) described above, the buffer (data area) used by the secure software 180 is changed in real time, so Look at the attack.
[0149]
Here, “peeping” means that another program that operates simultaneously (time-divisionally) with the present program in the data area in the secure software 180 “peeks” and steals information.
[0150]
Originally, the memory space in the personal computer 100 can be "seen" from any program that operates in a time-sharing manner. This is because the current processor is designed to be able to access any memory area, and there is no mechanism for controlling memory space access for each program.
[0151]
Recently, there are some that can control the memory space that can be accessed for each program at the operating system level, but this is by no means sufficient. If the malicious user is worried about it, it is possible to easily “peep” in another memory space, analyze the structure of the secure software 180, find out where the key data is, and “peep” Can steal data.
[0152]
For example, in the secure software 180 shown in FIG. 3, if the positions of the input buffer 181, the video buffer 183, the small buffer 185, and the MPEG image memory 187 (generally referred to as a buffer) are specified, the memory space is "peeped". By doing so, it is possible to steal MPEG stream information and the like.
[0153]
In particular, the small buffer 185, which stores the decrypted raw compressed MPEG video information, is easy to handle and easily targeted by malicious users. Even if the position is specified, the MPEG image memory 187 stores decoded large-capacity image information.
[0154]
Therefore, it is difficult to store and steal the image information in the hard disk drive 102 in consideration of the data transfer speed of the hard disk drive 102 and the transfer speed of the PCI bus 109 connected to the hard disk drive 102.
[0155]
Therefore, in one embodiment, it is difficult to steal information by "snawing" by rewriting the buffer position irregularly, that is, by rewriting the program address with the DMA at the start address of the buffer.
[0156]
Next, (4) secret number communication processing will be described. In the secret number communication process, the secure module 150 shown in FIG. 3 writes data (such as the first secret number) in a certain area of the secure software 180 (first and second secret number communication).
[0157]
Next, the secure software 180 confirms this data and returns an appropriate number, so that the secure module 150 confirms the security of the secure software 180.
[0158]
The secret number may be a sequence number or text information in addition to a single number. Naturally, this secret number is information that only the secure module 150 and the secure software 180 know. Accordingly, the secret number is changed by the secure module 150 each time since this number is not analyzed by the above “peep-in” analysis or the like.
[0159]
Further, in the secret number communication processing, when data is written from the secure module 150 to the memory area of the secure software 180, there is a risk that the data is "peeped in".
[0160]
Therefore, in one embodiment, in order to avoid the above danger, a legitimate value can be read once in the secure module 150, but a different value (for example, “0”) is read a second time in the memory space 152A. And 152B, and data is exchanged through these memory spaces 152A and 152B.
[0161]
Further, in one embodiment, a decryption key, an encryption key, and the like are used between the secure module 150 and the secure software 180 by using a memory space 152B or the like in which a normal value is read once and a “0” is output a second time. Information is exchanged. The memory spaces 152A and 152B can be used for transmitting information other than the encryption key.
[0162]
(Secure function when switching all)
Next, a secure function at the time of all switching in the personal computer 100 shown in FIG. 1 will be described with reference to FIG.
[0163]
In FIG. 4, during the normal operation of the secure software 180 loaded (implemented) in the main memory 106 of the personal computer 100, the initialization / load unit 160 is used to replace all of the secure software 180 with another secure software 180 ′ ( The case of switching to the TS decoder 182 ′, the encryption / decryption unit 184 ′, the MPEG video decoder 186 ′, the MPEG output unit 188 ′, etc.) is illustrated.
[0164]
At the time of all switching, the secure software 180 before the change and the secure software 180 ′ after the change exist in the main memory 106 in parallel for a time.
[0165]
If the secure software 180 is stopped during operation, for example, MPEG image reproduction may be stopped halfway, and this is a measure to avoid this.
[0166]
Here, if the secure software 180 ′ is loaded from the initialization / load unit 160 after the secure software 180 is deleted from the main memory 106, it takes a long time and the reproduction of MPEG images stops.
[0167]
In one embodiment, in order to avoid the above situation, the secure software 180 'is pre-loaded into the main memory 106 by the initialization / load unit 160 before the secure software 180 is deleted. Thereby, the transition time from the secure software 180 to the secure software 180 ′ is reduced.
[0168]
Further, when switching from the secure software 180 to the secure software 180 ′, it is necessary to take over the buffer area used by the secure software 180.
[0169]
For example, in FIGS. 2 and 3, there is a possibility that several seconds of encrypted MPEG video information may be stored in the video buffer 183, and the MPEG image memory 187 stores, for example, four frames, that is, four-thirds of a second ( (Approximately 133 milliseconds) of image information may be stored.
[0170]
In addition, it is not known how many seconds of encrypted MPEG video information is stored in the video buffer 183 unless MPEG video decoding processing is executed.
[0171]
This is because the compression rate of MPEG depends on the image, and in the case of an image that can be easily compressed, many images can be stored, but in the case of an image with low compression efficiency (an image that has many moving image components and must be updated each time) Is because only a small amount can be stored in the video buffer 183. For this reason, in one embodiment, it is necessary for the secure software 180 ′ to take over buffer information being processed from the secure software 180.
[0172]
Usually, switching (changing) of the secure software using the initialization / load unit 160 is performed for the following reason. The secure software is changed in real time by direct writing (DMA) by the secure module 150.
[0173]
However, with this change, it is difficult to change the entire secure software only by changing a part of the secure software. In order to change the secure software as a whole, it is necessary to go through the initialization / load unit 160 and drastically change it. For this reason, in one embodiment, the configuration can be changed by the initialization / load unit 160.
[0174]
Specifically, the secure module 150 issues a secure software switching request to the initialization / load unit 160. Thereby, the initialization / load unit 160 issues a load request to the secure module 150. In response to the request from the initialization / load unit 160, the secure module 150 “transfers the changed secure software 180 ′ to the initialization / load unit 160 in the same manner as the operation described above.
[0175]
Here, the reason that the secure module 150 issues the first switching request to the initialization / load unit 160 is that issuing from the secure module 150 is more secure than issuing from the initialization / load unit 160 close to the operating system. This is because the operating system does not know when the secure software has been switched.
[0176]
Next, the initialization / load unit 160 finds a non-swappable free memory area on the personal computer 100 and loads the secure software 180 ′ into the main memory 106.
[0177]
Then, the secure module 150 controls the switching. For example, the secure module 150 controls switching by writing a special number in a certain memory space in the secure software.
[0178]
Next, control is transferred from the secure software 180 to the secure software 180 '. However, when transferring the control, it is necessary to transfer the control of the buffer memory space used by the secure software 180 to the secure software 180 '.
[0179]
Therefore, the following specific control is executed.
[0180]
(1) The secure module 150 passes the switching request signal to the initialization / load unit 160.
[0181]
(2) The initialization / load unit 160 requests the secure software 150 ′ from the secure module 150.
[0182]
(3) The secure module 150 passes the secure software 180 ′ to the initialization / load unit 160.
[0183]
(4) The initialization / load unit 160 loads the secure software 180 ′ into the non-swappable area on the main memory 106.
[0184]
(5) Thus, the secure software 180 and the secure software 180 'are present in parallel on the main memory 106.
[0185]
(6) The secure module 150 issues a secure software switching instruction to the secure software 180.
[0186]
(7) Upon receiving the instruction to switch the secure software, the secure software 180 waits for the input of the image display end signal from the image LSI 107 to shift the control to the secure software 180 ′ at a point where the MPEG processing is appropriate, and displays the image. When the end signal is input, the following measures are taken.
[0187]
(A) The secure software 180 notifies the secure software 180 ′ of the start address of the MPEG image memory 187 and related information. For example, when the MPEG image memory 187 has a four-frame structure, the related information is information on the type (I picture, P picture, B picture) of each MPEG frame, an updatable frame, an image to be displayed in the next frame, and the like. It is.
[0188]
(B) The secure software 180 notifies the secure software 180 'of information on the memory start address of the small buffer 185 and the remaining data amount.
[0189]
(C) The secure software 180 notifies the secure software 180 ′ of information on the memory start address of the video buffer 183 and the remaining amount of data.
[0190]
(D) The secure software 180 notifies the secure software 180 ′ of information on the memory start address and the remaining memory of the input buffer 181.
[0191]
(E) The secure software 180 notifies the secure software 180 ′ of information on the encryption key and the decryption key in use.
[0192]
(8) The secure software 180 transfers control to the secure software 180 ′.
[0193]
(Secure function when switching partly)
Next, a secure function at the time of partial switching in the personal computer 100 shown in FIG. 1 will be described with reference to FIG.
[0194]
FIG. 5 illustrates a part of the secure software 180 (for example, the MPEG video decoder 186) using the initialization / load unit 160 during the normal operation of the secure software 180 loaded (implemented) in the main memory 106 of the personal computer 100. ) Is switched to another MPEG video decoder 186 ′.
[0195]
Here, in FIG. 4 described above, the case where the entirety of the secure software 180 is switched to the secure software 180 ′ has been described, but the case of FIG. 5 in which a part of the secure software 180 is switched is practical. In the case of FIG. 5, since only a part of the secure software 180 is switched, only a part of the buffer is taken over.
[0196]
The following operations are performed through the operations (1) to (5) at the time of all switching.
[0197]
(6 ') The secure module 150 issues a secure software switching instruction to the secure software 180.
[0198]
(7 ') The secure software 180, which has received the secure software switching instruction, controls the MPEG video decoder 186 to the MPEG video decoder 186' at a point where MPEG processing is appropriate, so that the image display end signal from the image LSI 107 is transmitted. Is waited for, and when the image display end signal is inputted, the following measures are taken.
[0199]
(A ') The secure software 180 notifies the MPEG video decoder 186' of the start address of the MPEG image memory 187 and related information. For example, when the MPEG image memory 187 has a four-frame structure, the related information is information on the type (I picture, P picture, B picture) of each MPEG frame, an updatable frame, an image to be displayed in the next frame, and the like. It is.
[0200]
(B ') The secure software 180 notifies the MPEG video decoder 186' of information on the memory start address of the small buffer 185 and the remaining data amount.
[0201]
(8 ') The secure software 180 incorporates the MPEG video decoder 186' as an official MPEG video decoder in place of the MPEG video decoder 186, and starts processing.
[0202]
Note that the video buffer 183 and the input buffer 181 do not need to be switched because there is no direct connection with the MPEG video decoder 186.
[0203]
As described above, according to one embodiment, the secure module 150 shown in FIG. 3 is provided, and the secure module 150 directly accesses the main memory 106 in which the secure software 180 is stored, thereby rewriting the program and buffering the program. Since the position change, scan authentication, and the like are executed, secure software processing can be performed by adding minimum hardware (secure module 150) to a device having an open architecture such as the personal computer 100. Can be performed.
[0204]
Further, according to the embodiment, the secret information is stored in the memory space controlled so that the regular information is read at the first time and the different information is read at the second time. Can be provided.
[0205]
Although one embodiment according to the present invention has been described in detail with reference to the drawings, a specific configuration example is not limited to this embodiment, and a design change within a range not departing from the gist of the present invention. The present invention is also included in the present invention.
[0206]
For example, in the above-described embodiment, a program for realizing the above-described secure function is recorded on the computer-readable recording medium 500 shown in FIG. Each function may be realized by causing the computer 400 shown in the figure to read and execute the functions.
[0207]
The computer 400 shown in the figure includes a CPU 410 that executes the above program, an input device 420 such as a keyboard and a mouse, a ROM 430 that stores various data, a RAM 440 that stores operation parameters, and the like. It comprises a reading device 450 for reading, an output device 460 such as a display or a printer, and a bus 470 for connecting each part of the device.
[0208]
The CPU 410 reads the program recorded on the recording medium 500 via the reading device 450, and executes the program to realize the functions described above. Note that examples of the recording medium 500 include an optical disk, a flexible disk, and a hard disk.
[0209]
(Supplementary Note 1) In an information reproducing apparatus for reproducing information,
A secure module having a structure in which information stored inside cannot be referenced from outside,
A memory that can be referenced externally,
The memory storage information mounted in the secure module and stored in the memory by direct access without any means is read out, and a comparison result between the memory storage information and the secure module storage information stored in the secure module in advance. Based on the falsification check means for checking the falsification of the memory storage information,
An information reproducing apparatus comprising:
[0210]
(Supplementary note 2) The information reproducing apparatus according to supplementary note 1, wherein the falsification checking unit reads out all of the memory storage information.
[0211]
(Supplementary note 3) The information reproducing apparatus according to supplementary note 1, wherein the falsification checking unit reads a part of the memory storage information.
[0212]
(Supplementary note 4) The information reproducing apparatus according to any one of Supplementary notes 1 to 3, wherein the tampering check unit compares the memory storage information with the secure module storage information by using a checksum.
[0213]
(Supplementary note 5) The information reproducing apparatus according to any one of supplementary notes 1 to 4, wherein the memory storage information is software.
[0214]
(Supplementary note 6) The information reproducing apparatus according to any one of Supplementary notes 1 to 5, wherein the tampering check unit reads data from the memory at irregular intervals.
[0215]
(Supplementary Note 7) A rewriting unit mounted on the secure module and rewriting the memory storage information stored in the memory by direct access without any means, the falsification checking unit includes the rewritten memory storage information and the The information reproducing apparatus according to any one of supplementary notes 1 to 6, wherein the information stored in the memory is checked for tampering based on a result of comparison with the information stored in the secure module.
[0216]
(Supplementary note 8) The information reproducing apparatus according to supplementary note 7, wherein the rewriting means rewrites the memory storage information at irregular intervals.
[0217]
(Supplementary note 9) The information reproducing apparatus according to supplementary note 7 or 8, wherein the rewriting means rewrites a part of the memory storage information.
[0218]
(Supplementary note 10) Any one of Supplementary notes 1 to 9, further comprising storage control means mounted on the secure module, for changing original information, and storing the changed information in the memory as memory storage information. An information reproducing apparatus according to one of the above.
[0219]
(Supplementary note 11) The information according to supplementary note 10, wherein when the memory storage information is updated, the storage control unit causes the memory storage information before the update to be transferred to the memory storage information after the update. Playback device.
[0220]
(Supplementary Note 12) The storage control unit encrypts the original information using a key that exists only in the secure module, and stores the encrypted original information in the memory as the memory storage information. 12. The information reproducing apparatus according to Supplementary Note 10 or 11.
[0221]
(Supplementary Note 13) Key management that is mounted on the secure module, holds a key used for encrypting or decrypting the memory storage information, and supplies the key to the outside when the tampering check unit does not detect tampering. 13. The information reproducing apparatus according to any one of supplementary notes 1 to 12, further comprising:
[0222]
(Supplementary note 14) The information reproducing apparatus according to supplementary note 13, wherein the key management unit supplies the key with a valid time set.
[0223]
(Supplementary note 15) The information reproducing apparatus according to Supplementary note 13 or 14, wherein the key management unit changes a key each time a key is supplied.
[0224]
(Supplementary note 16) The information reproducing apparatus according to any one of Supplementary notes 13 to 15, wherein the key management unit stops supplying the key when tampering is detected by the tampering check unit.
[0225]
(Supplementary Note 17) A writing unit that is mounted on the secure module and writes confidential information in the secure module to the memory by direct access, the tamper checking unit includes a tamper checking unit that writes response information corresponding to the written confidential information. 17. The information reproducing apparatus according to any one of supplementary notes 1 to 16, wherein the information stored in the memory is checked for alteration.
[0226]
(Supplementary note 18) The information according to Supplementary note 17, wherein the confidential information is stored in a memory space that is controlled so that regular information is read out a first time and different information is read out a second time. Playback device.
[0227]
(Supplementary note 19) The information reproducing apparatus according to any one of Supplementary notes 1 to 18, wherein the memory storage information is encrypted MPEG data.
[0228]
(Supplementary Note 20) Information stored inside is executed in a secure module having a structure that cannot be referred to from outside, and is stored in a memory that can be referred to from outside by direct access without any means. A reading step of reading the information stored in the memory;
A tampering check step of checking tampering of the memory storage information based on a comparison result between the read memory storage information and the secure module storage information stored in advance in the secure module;
An information reproducing method comprising:
[0229]
(Supplementary Note 21) In a secure module mounted on the information reproducing apparatus and having a structure in which information stored inside cannot be referred to from outside,
A reading unit that can be referred to from the outside and reads out memory storage information stored in a memory mounted on the information reproducing apparatus by direct access without any means,
Tamper checking means for checking tampering of the memory storage information based on a comparison result between the read memory storage information and the secure module storage information stored in advance in the secure module,
A secure module comprising:
[0230]
(Supplementary note 22) The secure module according to supplementary note 21, wherein the reading unit reads all of the memory storage information.
[0231]
(Supplementary note 23) The secure module according to supplementary note 21, wherein the reading unit reads a part of the memory storage information.
[0232]
(Supplementary note 24) The secure module according to any one of Supplementary notes 21 to 23, wherein the tampering check unit compares the memory storage information with the secure module storage information using a checksum.
[0233]
(Supplementary note 25) The secure module according to any one of supplementary notes 21 to 24, wherein the memory storage information is software.
[0234]
(Supplementary note 26) The secure module according to any one of Supplementary notes 21 to 25, wherein the reading unit performs reading from the memory at irregular intervals.
[0235]
(Supplementary note 27) A rewriting means for rewriting the memory storage information stored in the memory by direct access without any means, wherein the falsification checking means compares the rewritten memory storage information with the secure module storage information. 27. The secure module according to any one of supplementary notes 21 to 26, wherein the tampering of the memory storage information is checked based on a result.
[0236]
(Supplementary note 28) The secure module according to supplementary note 27, wherein the rewriting means rewrites the memory storage information at irregular intervals.
[0237]
(Supplementary note 29) The secure module according to supplementary note 27 or 28, wherein the rewriting means rewrites a part of the memory storage information.
[0238]
(Supplementary note 30) The secure module according to any one of supplementary notes 21 to 29, further comprising storage control means for changing the original information and storing the changed information as memory storage information in the memory. .
[0239]
(Supplementary note 31) The secure storage system according to supplementary note 30, wherein, when the memory storage information is updated, the storage control unit causes the memory storage information before the update to be transferred to the memory storage information after the update. module.
[0240]
(Supplementary Note 32) The storage control means encrypts the original information using a key existing only in the secure module, and stores the encrypted original information in the memory as the memory storage information. 30. The secure module according to attachment 30 or 31, wherein
[0241]
(Supplementary Note 33) A key management unit that holds a key used for encrypting or decrypting the memory storage information and supplies the key to the outside when the tampering check unit does not detect tampering. The secure module according to any one of supplementary notes 21 to 32.
[0242]
(Supplementary note 34) The secure module according to supplementary note 33, wherein the key management unit supplies the key for which a valid time is set.
[0243]
(Supplementary note 35) The secure module according to Supplementary note 33 or 34, wherein the key management unit changes the key each time the key is supplied.
[0244]
(Supplementary note 36) The secure module according to any one of Supplementary notes 33 to 35, wherein the key management unit stops supplying the key when tampering is detected by the tampering check unit.
[0245]
(Supplementary note 37) A writing unit that writes the secret information in the secure module to the memory by direct access, wherein the falsification checking unit reads the memory storage information based on response information corresponding to the written secret information. 36. The secure module according to any one of supplementary notes 21 to 36, wherein the secure module is checked for tampering.
[0246]
(Supplementary note 38) The secure note according to Supplementary note 37, wherein the secret information is stored in a memory space that is controlled so that regular information is read at a first time and different information is read at a second time. module.
[0247]
(Supplementary note 39) The secure module according to any one of Supplementary notes 21 to 38, wherein the memory storage information is encrypted MPEG data.
[0248]
(Supplementary Note 40) In a recording medium storing a program mounted on an information reproducing apparatus and having a secure module having a structure in which information stored therein cannot be referred to from the outside stored,
Reading step means which can be referred to from outside and read the memory storage information stored in the memory mounted on the information reproducing apparatus by direct access without any means,
A tampering check step of checking tampering of the memory storage information based on a comparison result between the read memory storage information and the secure module storage information stored in advance in the secure module;
A storage medium storing a program for executing the program.
[0249]
【The invention's effect】
As described above, according to the present invention, the memory storage information stored in the memory is read by direct access without any means, and the memory storage information and the secure module storage information previously stored in the secure module are read. Since the falsification of the memory storage information is checked based on the comparison result, secure hardware can be added to a device having an open architecture such as a personal computer by adding minimum hardware (secure module). There is an effect that processing can be executed.
[0250]
Further, according to the present invention, a rewriting means mounted on the secure module and rewriting the memory storage information stored in the memory by direct access without any means is provided, and the rewritten memory storage information and the secure module storage information are provided. Is checked for falsification of the information stored in the memory based on the comparison result. Therefore, by adding the minimum hardware (secure module) to a device having an open architecture such as a personal computer, a secure There is an effect that software processing can be executed.
[0251]
Further, according to the present invention, the original information is changed in the secure module, and the changed information is stored in the memory as the memory storage information. Therefore, a more secure secure environment can be provided. This has the effect.
[0252]
Further, according to the present invention, when the memory storage information is updated, the memory storage information before the update is taken over from the memory storage information after the update, so that the processing stop due to the update can be avoided. This has the effect that it can be performed.
[0253]
Further, according to the present invention, the original information is encrypted using the key existing only in the secure module, and the encrypted original information is stored in the memory as the memory storage information. This has the effect that it can be provided.
[0254]
Further, according to the present invention, a key used for encrypting or decrypting the information stored in the memory is held, and if the tampering is not detected by the tampering checking means, the key is supplied to the outside, so that the security is high. There is an effect that encryption or decryption can be performed in the state.
[0255]
Further, according to the present invention, when tampering is detected by the tampering checking means, the supply of the key is stopped, so that the effect of tampering can be minimized.
[0256]
Further, according to the present invention, there is provided a writing means for writing the secret information in the secure module into the memory by direct access, and checking for falsification of the memory storage information based on the response information corresponding to the written secret information. Therefore, there is an effect that a more secure secure environment can be provided.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an embodiment according to the present invention.
FIG. 2 is a block diagram illustrating a secure function when power is turned on in the personal computer 100 shown in FIG.
FIG. 3 is a block diagram illustrating a secure function of the personal computer 100 shown in FIG. 1 during normal operation.
FIG. 4 is a block diagram illustrating a secure function at the time of all switching in the personal computer 100 shown in FIG.
5 is a block diagram illustrating a secure function at the time of partial switching in the personal computer 100 shown in FIG.
FIG. 6 is a block diagram showing a configuration of a modification of the same embodiment.
FIG. 7 is a block diagram showing a configuration example of a conventional system using a personal computer 50.
8 is a diagram illustrating a flow of information in the personal computer 50 illustrated in FIG.
[Explanation of symbols]
100 personal computer
101 PC main processor
102 Hard Disk Drive
106 Main memory
107 Image LSI
108 Image memory
109 PCI bus
150 Secure Module
151 Secure Module Processor
152 RAM
153 ROM
154 encryption / decryption engine
155 PCI interface
200 Network
300 display device
160 Initialization / Load section
170 Driver
180 Secure Software
180 'secure software
181 input buffer
182 TS decoder
183 video buffer
184 encryption / decryption unit
185 small buffer
186 MPEG video decoder
187 MPEG image memory
188 MPEG output unit

Claims (10)

情報を再生する情報再生装置において、
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールと、
外部から参照することが可能なメモリと、
前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を読み出し、該メモリ格納情報と、前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とする情報再生装置。
In an information reproducing apparatus for reproducing information,
A secure module having a structure in which information stored inside cannot be referenced from outside,
A memory that can be referenced externally,
The memory storage information mounted in the secure module and stored in the memory by direct access without any means is read out, and a comparison result between the memory storage information and the secure module storage information stored in the secure module in advance. Based on the falsification check means for checking the falsification of the memory storage information,
An information reproducing apparatus comprising:
前記セキュアモジュールに実装され、いずれの手段も介さずに直接アクセスにより前記メモリに格納されたメモリ格納情報を書き換える書き換え手段を備え、前記改ざんチェック手段は、書き換え後のメモリ格納情報と前記セキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックすることを特徴とする請求項1に記載の情報再生装置。Rewriting means mounted on the secure module and rewriting memory storage information stored in the memory by direct access without any means, wherein the falsification checking means includes the rewritten memory storage information and the secure module storage information. 2. The information reproducing apparatus according to claim 1, wherein the falsification of the memory storage information is checked based on a comparison result with the information. 前記セキュアモジュールに実装され、原情報に変更をかけ、変更後の情報をメモリ格納情報として前記メモリに格納する格納制御手段を備えたことを特徴とする請求項1または2に記載の情報再生装置。3. The information reproducing apparatus according to claim 1, further comprising a storage control unit mounted on the secure module, for changing original information, and storing the changed information in the memory as memory storage information. . 前記格納制御手段は、前記メモリ格納情報を更新した場合に、更新前のメモリ格納情報から更新後のメモリ格納情報への引継を行わせることを特徴とする請求項3に記載の情報再生装置。4. The information reproducing apparatus according to claim 3, wherein when the memory storage information is updated, the storage control unit causes the memory storage information before the update to be transferred to the memory storage information after the update. 前記格納制御手段は、前記セキュアモジュール内のみに存在する鍵を用いて前記原情報を暗号化し、暗号化された原情報を前記メモリ格納情報として前記メモリに格納することを特徴とする請求項3または4に記載の情報再生装置。4. The storage control unit according to claim 3, wherein the original information is encrypted using a key existing only in the secure module, and the encrypted original information is stored in the memory as the memory storage information. Or the information reproducing apparatus according to 4. 前記セキュアモジュールに実装されており、前記メモリ格納情報の暗号化または復号化に用いられる鍵を保持し、前記改ざんチェック手段により改ざんが検知されない場合、鍵を外部へ供給する鍵管理手段を備えたことを特徴とする請求項1〜5のいずれか一つに記載の情報再生装置。A key management unit that is mounted on the secure module, holds a key used for encryption or decryption of the memory storage information, and supplies the key to the outside when the tampering is not detected by the tampering check unit. The information reproducing apparatus according to any one of claims 1 to 5, wherein: 前記鍵管理手段は、前記改ざんチェック手段により改ざんが検知された場合、前記鍵の供給を停止することを特徴とする請求項6に記載の情報再生装置。7. The information reproducing apparatus according to claim 6, wherein the key management unit stops the supply of the key when the tampering is detected by the tampering check unit. 前記セキュアモジュールに実装され、直接アクセスにより、前記セキュアモジュール内の秘密情報を前記メモリに書き込む書込手段を備え、前記改ざんチェック手段は、書き込まれた前記秘密情報に対応する応答情報に基づいて前記メモリ格納情報の改ざんをチェックすることを特徴とする請求項1〜7のいずれか一つに記載の情報再生装置。Writing means mounted on the secure module and writing secret information in the secure module to the memory by direct access, wherein the falsification checking means performs the memory based on response information corresponding to the written secret information. The information reproducing apparatus according to any one of claims 1 to 7, wherein the stored information is checked for tampering. 情報再生装置に実装され、内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュールにおいて、
外部から参照することが可能であって前記情報再生装置に実装されたメモリに格納されたメモリ格納情報をいずれの手段も介さずに直接アクセスにより読み出す読み出し手段と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック手段と、
を備えたことを特徴とするセキュアモジュール。
In a secure module mounted on the information reproducing apparatus and having a structure in which information stored inside cannot be referred to from outside,
A reading unit that can be referred to from the outside and reads out memory storage information stored in a memory mounted on the information reproducing apparatus by direct access without any means,
Tamper checking means for checking tampering of the memory storage information based on a comparison result between the read memory storage information and the secure module storage information stored in advance in the secure module,
A secure module comprising:
内部に格納されている情報を外部から参照することができない構造を有するセキュアモジュール内で実行され、いずれの手段も介さずに直接アクセスにより外部から参照することが可能なメモリに格納されたメモリ格納情報を読み出す読み出し工程と、
読み出された前記メモリ格納情報と前記セキュアモジュールに予め格納されたセキュアモジュール格納情報との比較結果に基づいて、前記メモリ格納情報の改ざんをチェックする改ざんチェック工程と、
を含むことを特徴とする情報再生方法。
Information stored in a memory that is executed in a secure module having a structure in which information stored inside cannot be referenced from the outside and that can be referenced from outside by direct access without any means A reading step of reading
A tampering check step of checking tampering of the memory storage information based on a comparison result between the read memory storage information and the secure module storage information stored in advance in the secure module;
An information reproducing method comprising:
JP2003203751A 2002-07-30 2003-07-30 Information reproducing apparatus, secure module, and information reproducing method Expired - Lifetime JP4576100B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003203751A JP4576100B2 (en) 2002-07-30 2003-07-30 Information reproducing apparatus, secure module, and information reproducing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002221856 2002-07-30
JP2003203751A JP4576100B2 (en) 2002-07-30 2003-07-30 Information reproducing apparatus, secure module, and information reproducing method

Publications (2)

Publication Number Publication Date
JP2004129227A true JP2004129227A (en) 2004-04-22
JP4576100B2 JP4576100B2 (en) 2010-11-04

Family

ID=32300659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003203751A Expired - Lifetime JP4576100B2 (en) 2002-07-30 2003-07-30 Information reproducing apparatus, secure module, and information reproducing method

Country Status (1)

Country Link
JP (1) JP4576100B2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244339A (en) * 2005-03-07 2006-09-14 Fujitsu Ltd Information processor, secure device, and digital content decoding software
JP2006323675A (en) * 2005-05-19 2006-11-30 Fujitsu Ltd Information processor, information processing method, and computer program
JP2007257119A (en) * 2006-03-22 2007-10-04 Toshiba Corp Information processor
JP2009517972A (en) 2005-11-29 2009-04-30 トムソン ライセンシング Method and apparatus for protecting digital content
JP2009205627A (en) * 2008-02-29 2009-09-10 Fujitsu Ltd Storage area allocation method and information processor
JP2009284552A (en) * 2009-09-02 2009-12-03 Sony Corp Stream control apparatus, stream encrypting/decrypting apparatus, and stream encrypting/decrypting method
US7978857B2 (en) 2006-09-26 2011-07-12 Fujitsu Limited Secure device having key management function and information processing apparatus
JP2012038222A (en) * 2010-08-10 2012-02-23 Fujitsu Ltd Secure module and information processor
EP2485173A1 (en) 2011-02-08 2012-08-08 Fujitsu Limited Communication apparatus and secure module
JP2012174228A (en) * 2011-02-24 2012-09-10 Kyocera Corp Program protection device and communication apparatus
EP2518658A2 (en) 2011-04-28 2012-10-31 Fujitsu Limited Information processing apparatus, secure module, information processing method, and program
WO2014049830A1 (en) 2012-09-28 2014-04-03 富士通株式会社 Information processing device and semiconductor device
JP2014235326A (en) * 2013-06-03 2014-12-15 富士通セミコンダクター株式会社 System, information processing apparatus, secure module, and verification method
JP2020064332A (en) * 2018-10-15 2020-04-23 ルネサスエレクトロニクス株式会社 Semiconductor device and control method thereof
JP7010543B1 (en) * 2020-11-19 2022-01-26 Necプラットフォームズ株式会社 Computer system, software tampering verification method, and program
CN116090032A (en) * 2022-06-29 2023-05-09 荣耀终端有限公司 Display method and related device

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63105545A (en) * 1986-10-22 1988-05-10 Sony Corp Decoder
JPH03503220A (en) * 1989-06-06 1991-07-18 ブル・セー・ペー・8 Method and mobile device for checking message integrity
JPH03239032A (en) * 1990-02-16 1991-10-24 Sony Corp Receiver for scramble signal
JPH10283190A (en) * 1997-04-09 1998-10-23 Fujitsu Ltd Storage medium driving device, storage medium and data protection method
JPH1139158A (en) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> Method for protecting executed program and its device
JP2001500293A (en) * 1996-09-05 2001-01-09 エリクソン インコーポレイテッド Electronic memory tampering prevention system
JP2001147898A (en) * 1999-11-18 2001-05-29 Ricoh Co Ltd Electronic preserving method and device for guaranteeing originality and computer readable recording medium
JP2001154577A (en) * 1999-11-29 2001-06-08 Ricoh Co Ltd Device and method for electronically storing original document property and computer-readable recording medium with recorded program for the method to be executed by computer
WO2001043342A1 (en) * 1999-12-06 2001-06-14 Sanyo Electric Co., Ltd. Data distribution system and recorder for use therein
JP2002000885A (en) * 1993-05-20 2002-01-08 Le Tekku:Kk Microcomputer chip for game machine control
JP2002312221A (en) * 2001-04-17 2002-10-25 Matsushita Electric Ind Co Ltd Memory device with access control function and faile access control program
JP2003507784A (en) * 1999-08-13 2003-02-25 ヒューレット・パッカード・カンパニー Mandatory restrictions on the use of stored data
JP2003507785A (en) * 1999-08-13 2003-02-25 ヒューレット・パッカード・カンパニー Computer platform and its operation method
JP2003058669A (en) * 2001-08-17 2003-02-28 Ace Denken:Kk Game program, game site operating device, and game program alteration detecting method
JP2003173215A (en) * 2001-09-26 2003-06-20 Sony Corp Information processor, program loading method, recording medium, program updating method and circuit element
JP2003198527A (en) * 2001-12-27 2003-07-11 Fujitsu Ltd Information reproducing device and secure module
JP2004054834A (en) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd Program development method, program development support device, and program packaging method

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63105545A (en) * 1986-10-22 1988-05-10 Sony Corp Decoder
JPH03503220A (en) * 1989-06-06 1991-07-18 ブル・セー・ペー・8 Method and mobile device for checking message integrity
JPH03239032A (en) * 1990-02-16 1991-10-24 Sony Corp Receiver for scramble signal
JP2002000885A (en) * 1993-05-20 2002-01-08 Le Tekku:Kk Microcomputer chip for game machine control
JP2001500293A (en) * 1996-09-05 2001-01-09 エリクソン インコーポレイテッド Electronic memory tampering prevention system
JPH10283190A (en) * 1997-04-09 1998-10-23 Fujitsu Ltd Storage medium driving device, storage medium and data protection method
JPH1139158A (en) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> Method for protecting executed program and its device
JP2003507785A (en) * 1999-08-13 2003-02-25 ヒューレット・パッカード・カンパニー Computer platform and its operation method
JP2003507784A (en) * 1999-08-13 2003-02-25 ヒューレット・パッカード・カンパニー Mandatory restrictions on the use of stored data
JP2001147898A (en) * 1999-11-18 2001-05-29 Ricoh Co Ltd Electronic preserving method and device for guaranteeing originality and computer readable recording medium
JP2001154577A (en) * 1999-11-29 2001-06-08 Ricoh Co Ltd Device and method for electronically storing original document property and computer-readable recording medium with recorded program for the method to be executed by computer
WO2001043342A1 (en) * 1999-12-06 2001-06-14 Sanyo Electric Co., Ltd. Data distribution system and recorder for use therein
JP2002312221A (en) * 2001-04-17 2002-10-25 Matsushita Electric Ind Co Ltd Memory device with access control function and faile access control program
JP2003058669A (en) * 2001-08-17 2003-02-28 Ace Denken:Kk Game program, game site operating device, and game program alteration detecting method
JP2003173215A (en) * 2001-09-26 2003-06-20 Sony Corp Information processor, program loading method, recording medium, program updating method and circuit element
JP2003198527A (en) * 2001-12-27 2003-07-11 Fujitsu Ltd Information reproducing device and secure module
JP2004054834A (en) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd Program development method, program development support device, and program packaging method

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244339A (en) * 2005-03-07 2006-09-14 Fujitsu Ltd Information processor, secure device, and digital content decoding software
JP2006323675A (en) * 2005-05-19 2006-11-30 Fujitsu Ltd Information processor, information processing method, and computer program
JP4698285B2 (en) * 2005-05-19 2011-06-08 富士通株式会社 Information processing apparatus, information processing method, and computer program
JP2009517972A (en) 2005-11-29 2009-04-30 トムソン ライセンシング Method and apparatus for protecting digital content
JP2007257119A (en) * 2006-03-22 2007-10-04 Toshiba Corp Information processor
US8250560B2 (en) 2006-03-22 2012-08-21 Kabushiki Kaisha Toshiba Information processing apparatus
US7978857B2 (en) 2006-09-26 2011-07-12 Fujitsu Limited Secure device having key management function and information processing apparatus
JP2009205627A (en) * 2008-02-29 2009-09-10 Fujitsu Ltd Storage area allocation method and information processor
JP2009284552A (en) * 2009-09-02 2009-12-03 Sony Corp Stream control apparatus, stream encrypting/decrypting apparatus, and stream encrypting/decrypting method
JP2012038222A (en) * 2010-08-10 2012-02-23 Fujitsu Ltd Secure module and information processor
EP2437196A1 (en) 2010-08-10 2012-04-04 Fujitsu Limited Secure module and information processing apparatus
US9177117B2 (en) 2010-08-10 2015-11-03 Fujitsu Limited Secure module and information processing apparatus
JP2012165289A (en) * 2011-02-08 2012-08-30 Fujitsu Ltd Communication device and secure module
US9152773B2 (en) 2011-02-08 2015-10-06 Fujitsu Limited Communication apparatus and secure module including function for disabling encrypted communication
EP2485173A1 (en) 2011-02-08 2012-08-08 Fujitsu Limited Communication apparatus and secure module
JP2012174228A (en) * 2011-02-24 2012-09-10 Kyocera Corp Program protection device and communication apparatus
EP2518658A2 (en) 2011-04-28 2012-10-31 Fujitsu Limited Information processing apparatus, secure module, information processing method, and program
KR101333377B1 (en) 2011-04-28 2013-12-26 후지쯔 세미컨덕터 가부시키가이샤 Information processing apparatus, secure module, information processing method, and computer-readable recording medium having information processing program
US8984272B2 (en) 2011-04-28 2015-03-17 Fujitsu Limited Information processing apparatus, secure module, information processing method, and computer product
WO2014049830A1 (en) 2012-09-28 2014-04-03 富士通株式会社 Information processing device and semiconductor device
JP2014235326A (en) * 2013-06-03 2014-12-15 富士通セミコンダクター株式会社 System, information processing apparatus, secure module, and verification method
JP2020064332A (en) * 2018-10-15 2020-04-23 ルネサスエレクトロニクス株式会社 Semiconductor device and control method thereof
JP7018864B2 (en) 2018-10-15 2022-02-14 ルネサスエレクトロニクス株式会社 Semiconductor devices and their control methods
JP7010543B1 (en) * 2020-11-19 2022-01-26 Necプラットフォームズ株式会社 Computer system, software tampering verification method, and program
WO2022107422A1 (en) * 2020-11-19 2022-05-27 Necプラットフォームズ株式会社 Computer system, software tampering verification method, and non-transitory computer-readable medium
CN116090032A (en) * 2022-06-29 2023-05-09 荣耀终端有限公司 Display method and related device
CN116090032B (en) * 2022-06-29 2023-10-20 荣耀终端有限公司 Display method and related device

Also Published As

Publication number Publication date
JP4576100B2 (en) 2010-11-04

Similar Documents

Publication Publication Date Title
US7873839B2 (en) Method of and apparatus for reproducing information, and security module
JP4473330B2 (en) Initializing, maintaining, updating, and recovering secure operations within an integrated system using data access control functions
EP1370084B1 (en) System for protecting security registers and method thereof
JP4576100B2 (en) Information reproducing apparatus, secure module, and information reproducing method
US8181038B2 (en) Systems and methods for executing encrypted programs
US8064600B2 (en) Encoded digital video content protection between transport demultiplexer and decoder
TWI490724B (en) Method for loading a code of at least one software module
JP2009135905A (en) Secure information storage system and method
US8479014B1 (en) Symmetric key based secure microprocessor and its applications
EP1474922B1 (en) A method for protecting memory buffers from unauthorized access
US7302589B2 (en) Method for securing memory mapped control registers
US20080040806A1 (en) Method and apparatus for securing unprotected content files from unauthorized use
JP2005010957A (en) Content protection system, content protection method, and program which makes computer perform its method
CN116361207A (en) Method and device for protecting and managing key
Wang et al. Architecture for a Non-Copyable Disk (NCdisk) Using a Secret-Protection (SP) SoC Solution
US20040210704A1 (en) Information apparatus and transaction control method
JP2006229672A (en) Content reproducing device, secure processing program, recording medium with secure processing program recorded thereon, right management program and recording medium with right management program recorded thereon
JP2002297449A (en) System integrated circuit
JPH10320291A (en) Data converter
JP2000076313A (en) Cad library access managing device
JP2011175464A (en) Apparatus and method for processing information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100817

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100823

R150 Certificate of patent or registration of utility model

Ref document number: 4576100

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

EXPY Cancellation because of completion of term