JP5049288B2 - 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置 - Google Patents
改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置 Download PDFInfo
- Publication number
- JP5049288B2 JP5049288B2 JP2008543103A JP2008543103A JP5049288B2 JP 5049288 B2 JP5049288 B2 JP 5049288B2 JP 2008543103 A JP2008543103 A JP 2008543103A JP 2008543103 A JP2008543103 A JP 2008543103A JP 5049288 B2 JP5049288 B2 JP 5049288B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- processing
- data
- authentication
- comparison
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Description
特許文献1では、改竄検出対象となるプログラムに対して一方向性関数であるハッシュ関数を用いて作成した認証データと、改竄チェック対象となるプログラムに対してハッシュ関数を用いて作成した比較データとを比較して改竄検出を行っている。しかし、プログラム全体についてハッシュ値を生成するには多大な時間を要するため、他のプログラムの実行と並行して改竄検出処理を行うような場合には、他のプログラムの実行に支障が生じ得る。
上述の問題に鑑み、本発明は、プログラムの改竄検出を、従来と比べて検出精度を落とすことなく高速に行うことのできる改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体及び集積回路を提供することを目的とする。
要約処理についても同様に、要約処理を行う発明特定事項として第1生成手段と第2生成手段とを備えることとしているが、実体的に異なる2つの手段として実現する必要はない。第1生成手段と第2生成手段が、実体的に1つの手段として実現される場合も本発明に含まれる。
また、前記第1加工手段は、ランダムに定まるパラメータに依存する加工処理を行い、前記第2加工手段は、前記第1加工手段による加工処理に用いられたパラメータと同じパラメータを用いて前記加工処理を行うこととしてもよい。
この構成によれば、実行中のプログラムが改竄された場合に、その改竄を検出することができる。
この構成によれば、加工処理ごとに、ランダムなサイズの前記認証用加工データ及び前記比較用加工データを生成するため、前記認証用加工データ及び前記比較用加工データに基づき生成される認証情報及び比較情報についても、ランダムな要素が加わることになる。よって、改竄検出時にチェックを不正に通過しうるような前記認証情報及び前記比較情報と同一の情報を不正に生成するのを困難にし、不正なプログラムが実行されるのを防ぐことができる。
また、前記第1加工手段及び第2加工手段は、前記論理演算として排他的論理和演算を行うこととしてもよい。
なお、排他的論理和などの論理演算は、一般的なプロセッサにおいて1クロックの間に処理可能な基本的な処理である。
また、前記第1生成手段は、キャッシュメモリを含み、前記キャッシュメモリを介して認証用加工データが記憶されているメモリとの間で入出力を行い、前記第1加工手段は、前記パラメータとして、前記第1生成手段に含まれるキャッシュメモリにおけるデータ読み書き単位のサイズ以下のサイズを特定する情報を用いて前記加工処理を行うこととしてもよい。
また、前記第1生成手段は、前記認証情報として前記認証用加工データのハッシュ値を算出し、前記第2生成手段は、前記比較情報として前記比較用加工データのハッシュ値を算出することとしてもよい。
この構成によれば、ハッシュを用いることにより、認証情報及び比較情報と同一の情報を不正に生成されるのを防ぐことができるため、より安全な認証情報及び比較情報を用いて改竄検出を行うことができる。
また、前記第1加工手段及び第2加工手段は、前記プログラムが、ロード時に再配置されるリロケーションコードを含むか否かを判定し、リロケーションコードを含む場合に、含まれるリロケーションコードを所定のリロケーションされないコードに置換し、前記リロケーションコードが置換がされたプログラムを加工処理することとしてもよい。
また、前記第1加工手段は、前記パラメータとして乱数を生成し、前記第2加工手段は、前記乱数を保持しており、前記第1加工手段及び前記第2加工手段は、前記加工処理において、前記プログラムに前記乱数を付した上で前記加工処理することとしてもよい。
また、前記第1生成手段は、乱数を生成し、前記認証情報として、前記乱数を鍵とするハッシュ関数を用いて前記認証用加工データのハッシュ値を算出し、前記第2生成手段は、前記乱数を保持しており、前記比較情報として、前記乱数を鍵とする前記ハッシュ関数を用いて前記比較用加工データのハッシュ値を算出することとしてもよい。
また、前記パラメータは、データのサイズを示し、前記第1加工手段は、更に、複数のパラメータそれぞれに依存する加工処理を行って、サイズの異なる複数の認証用加工データを生成し、前記第1生成手段は、前記複数の認証用加工データそれぞれに、前記要約処理を行って複数の認証情報を生成し、前記改竄検出システムは、更に、前記複数の認証情報のうち少なくとも1つを選出し、前記第2加工手段に、前記加工処理によって、前記プログラムを前記選出した認証情報のサイズに縮めさせ、前記検出手段に、前記選出された認証情報と、前記第2生成手段により生成された前記比較情報とを用いて前記実行対象のプログラムの改竄検出を行わせる制御手段を備えることとしてもよい。
また、前記制御手段は、プロセス状況算出値と認証情報との対応表を記憶しており、算出したプロセス状況算出値に対応する認証情報を前記対応表から選出することとしてもよい。
また、前記第1加工手段及び第2加工手段は、前記加工処理として、前記プログラムの一部分をランダムに特定し抽出して前記認証用加工データ及び前記比較用加工データを生成することとしてもよい。
また、前記第1加工手段は、データの抽出開始位置と抽出サイズを示す情報をランダムに生成し、前記第1加工手段及び前記第2加工手段は、前記プログラムについて、前記抽出開始位置から前記抽出サイズ分のデータを抽出することとしてもよい。
また、前記加工処理と前記要約処理とは、相異なる一方向性関数を用いる処理であってもよい。
本発明は、プログラムの改竄検出を行う改竄検出方法であって、実行対象のプログラムを前記プログラムよりも短くなるよう加工処理をして認証用加工データを生成する第1加工ステップと、前記認証用加工データに、前記加工処理より計算量の多い要約処理を行い、認証情報を生成する第1生成ステップと、生成された前記認証情報を保持する保持ステップと、前記実行対象のプログラムに対して、前記加工処理を行って比較用加工データを生成する第2加工ステップと、前記比較用加工データに対して、前記要約処理を行って、比較情報を生成する第2生成ステップと、前記保持している認証情報と前記第2生成手段が生成した比較情報とを用いて、前記実行プログラムの改竄検出を行う検出ステップとを含む。
また、前記集積回路は、Trusted Platform Moduleであることとしてもよい。
本発明は、プログラムの改竄検出に用いる認証情報を生成する認証情報生成装置であって、実行対象のプログラムを前記プログラムよりも短くなるよう加工処理をして認証用加工データを生成する加工手段と、前記認証用加工データに前記加工処理よりも計算量の多い要約処理を行い、認証情報を生成する生成手段と、生成された前記認証情報を前記改竄検出装置に提供する提供手段とを備える。
本発明は、プログラムの改竄検出を行う改竄検出装置であって、実行対象のプログラムを前記プログラムよりも短くなるよう加工処理をし、さらに、前記加工処理よりも計算量の多い要約処理を行うことで生成された認証情報を保持する保持手段と、前記実行対象のプログラムに対して、前記加工処理を行って比較用加工データを生成する加工手段と、前記比較用加工データに対して、前記要約処理を行って、比較情報を生成する生成手段と、前記保持手段の保持する認証情報と前記生成手段が生成した比較情報とを用いて、前記実行プログラムの改竄検出を行う検出手段とを備える。
改竄検出装置はROMにプログラムを格納しており、このプログラムをRAMへとロードしてから実行する。ここで、前記改竄検出装置は、まずROMに格納されたプログラムについて、RAMへのロード前に後述する処理によって改竄検出情報として認証データを生成する。次に、前記改竄検出装置は、RAMへのロード以後プログラムの実行中などに、RAMに記憶されたプログラムについて後述する処理によって改竄検出情報としての比較データを生成する。そして、改竄検出装置は、前記認証データと前記比較データとを比較し、認証データと比較データとが一致しなかった場合にプログラムが改竄されていると判定する。
まず、前記改竄検出装置は、改竄検出対象のプログラムをブロック分割し、分割結果に対して比較的低負荷の処理である短縮処理の一例として第1のハッシュ関数を施す。第1のハッシュ関数を施した結果、元のプログラムは、サイズの小さな変換一時データに変換されている。
第1のハッシュ関数は、一例として、データについて排他的論理和演算を行う処理である。第2のハッシュ関数は一例としてSHA1処理関数である。
ここで、プログラムのロード前に得られた改竄検出情報が前記認証データであり、プログラムのロード以後に得られた改竄検出情報が前記比較データである。
以下に、本発明の実施の形態の詳細について説明する。
1.実施の形態1
本発明の実施の形態1について、以下に説明する。
1.1.構成
本発明の一実施形態に係る改竄検出装置1は、プログラムをフラッシュメモリなどの不揮発性メモリからRAMなどの揮発メモリにロードして実行する装置であり、ロードされて実行中のプログラムについて改竄を検出する。
改竄検出装置1は、図1に示すように、RAM2、フラッシュメモリ3、ロード手段4、実行手段5、改竄検出要求手段6及び改竄検出手段7を含んで構成される。以下、各構成要素について説明する。
RAM2は、ランダムアクセスメモリである。RAM2には、ロード手段4によりプログラムがロードされ、実行手段5によりプログラム実行時のデータが書き込まれ、また読み出される。
フラッシュメモリ3は、本実施の形態では、図1に示すように、実行されるべきプログラムとしてプログラム21、22・・・を記憶している。認証データリストは、改竄検出に用いる認証データを含むデータである。認証データリストの詳細は後述する。
ロード手段4は、適宜のタイミングで、フラッシュメモリ3に記憶されているプログラムをRAM2にロードする。
前記タイミングとしては、例えば電源投入時、他のプログラムからロードを指示された時、所定時間間隔毎などが考えられる。
また、前記タイミングとしては、更に、前記キーパッドを用いてユーザ操作によりプログラムの実行を要望される時も考えられる。この場合、実行すべきプログラムに係るプログラム識別子は、ユーザ操作により指定されるものとする。
ここで、ロード手段4は、ロードを開始したプログラムに関する情報を認証データリストとしてフラッシュメモリ3に追記する。フラッシュメモリ3に認証データリストが記録されていない場合には、認証データリストを新たに生成してフラッシュメモリ3に記録する。
認証データリスト23は、プログラム識別子41、プログラムアドレス42、プログラムサイズ43、ブロック分割サイズ44、認証データ45から構成される。
プログラム識別子41は、プログラムを識別するためのID情報である。フラッシュメモリ3に記録されているプログラムには、プログラムを識別するためのプログラム識別子が予め付されている。
プログラムサイズ43は、プログラム識別子41で識別されるプログラムのサイズを示す。
ロード手段4は、ロード開始時に、フラッシュメモリ3からプログラムと共にプログラム識別子を読み出してプログラム識別子41とし、プログラムをロードするアドレスをプログラムアドレス42とし、ロードするプログラムのサイズをプログラムサイズ43として、認証データリストに追記する。
ブロック分割サイズ、認証データの内容は、ロード手段4以外によって後ほど書き込まれる。ブロック分割サイズ44、認証データ45については後述する。
また、ロード手段4は、ロードしたプログラムが実行手段5により実行されることが無くなった場合、ロードしたプログラムがメモリ2中から消去される場合等の適宜のタイミングで、そのプログラムについての、プログラム識別子、プログラムアドレス、プログラムサイズ、ブロック分割サイズ及び認証データの組を削除する。
実行手段5は、ロード手段4から実行指示を受け取り、RAM2上にロードされているプログラムのうち、前記実行指示に含まれるプログラム識別子により識別されるプログラムを実行する。
実行手段5は、適宜のタイミングで、改竄検出要求手段6に対して、実行中のプログラムに係るプログラム識別子を含むトリガ通知を送信する。前記トリガ通知は、改竄検出要求手段6において、改竄検出開始のトリガとなり得るものである。
実行手段5は、改竄検出要求手段6からプログラムの実行停止指示を受け取った場合、前記実行停止指示に含まれるプログラム識別子により識別されるプログラムの実行を停止する。
改竄検出要求手段6は、ロード手段4からロード開始通知を受信し、ロード開始通知に含まれていたプログラム識別子を含む認証データ生成要求を改竄検出手段7に対して送信する。
また、改竄検出要求手段6は、実行手段5によるプログラムの実行中に、改竄検出処理を開始するためのトリガの検出を試みる。
そして前記トリガを検出した場合には、改竄検出要求手段6は、前記プログラムのプログラム識別子を含む改竄検出要求を改竄検出手段7に対し送信する。そして、改竄検出手段7から前記改竄検出要求に対する応答としてプログラム識別子、改竄検出結果を含む改竄検出応答を受け取る。
改竄検出要求手段6は、改竄検出結果が改竄有りを示す場合、改竄検出応答に含まれていたプログラム識別子を含むプログラムの実行停止指示を実行手段5に対し送信する。一方、改竄検出結果が改竄無しを示す場合、改竄検出要求手段6は、実行手段5に対して特に指示は行わない。
入出力手段11は、改竄検出要求手段6から認証データ生成要求を受けた場合、分割サイズ決定手段に対し、認証データ生成要求に含まれるプログラム識別子を送信する。
入出力手段11は、判定手段17から改竄検出応答を受けた場合、改竄検出要求手段6に対してその改竄検出応答を送信する。
分割サイズ決定手段12は、プログラムを複数のブロックに分割するための1ブロックあたりのサイズであるブロック分割サイズBSを決定する。以下、プログラムを複数のブロックに分割する処理をブロック分割という。
ここで、上述したブロック分割サイズは、生成した乱数をそのまま使用するものとする。プログラムがメモリにロードされる毎に乱数が再計算されるので、ブロック分割サイズも乱数の再計算に応じて変更されることになる。
ここで、生成データ種別は、認証データ、比較データのいずれかの生成を示す情報である。生成データ種別の内容に従い、後述の分割手段13、第2変換手段15等において実行する処理が選択される。
分割手段13に対しては、後述するが、判定手段17も分割指示を送信する。この場合、判定手段17は、プログラム識別子と、ブロック分割サイズと、比較データの生成を示す生成データ種別とを含む分割指示を分割手段13に対して送信する。
そして、読み出したプログラムサイズに応じたパディング処理を行う。
ここで、パディング処理は、プログラムサイズがブロック分割サイズの倍数になるよう、プログラムの最後尾に意味のない値(例えば0)のデータを付加することで行う。
ここで、ブロック分割により、ブロック分割サイズの大きさであるN個のブロックデータ(B[1]〜B[N])が生成されたものとする。
分割が終了すると、分割手段13は、第1変換手段14に対し、分割指示に含まれていたプログラム識別子、生成データ種別を含む第1変換指示を第1変換手段14に送信する。そして、分割手段13は、前記生成データ種別が認証データの生成を示す場合に、ブロック分割サイズを、分割指示に含まれるプログラム識別子に対応づけて、認証データリスト23に追記する。
第1変換手段14は、第1変換指示を受け取ると、分割手段13によりブロック分割された結果である各ブロックデータを、データサイズを減らすことのできる所定のアルゴリズムによる変換処理によって変換する。
本実施の形態では、第1変換手段14が行う変換処理はXOR(eXclusive OR)処理であるものとする。即ち、第1変換手段14は、B[1]〜B[N]のXORを演算する。
そして、第1変換指示に含まれるプログラム識別子、生成データ種別及び前記演算の結果である認証一時データを含む第2変換指示を、第2変換手段15に出力する。
第2変換手段15によるデータ変換処理は、比較的時間をかけて改竄検出値を算出する処理である。
本実施の形態では、第2変換手段15が行うデータ変換処理は一方向性関数であるSHA1処理であるものとする。
第2変換手段15は、第2変換指示に含まれる生成データ種別が認証データの生成を示す場合には、SHA1処理の結果を認証データとしてプログラム識別子と共に格納手段16に送信する。一方、生成データ種別が比較データの生成を示す場合には、SHA1処理の結果を比較データとしてプログラム識別子と共に判定手段17に送信する。
前述の図2の例であれば、生成した認証データが認証データA3であり、プログラム識別子の値が0003であった場合には、空欄47に認証データA3を書き込むことになる。
この場合、判定手段17は、プログラム識別子に対応する認証データを認証データリストから読み出して、受け取った比較データと比較する。
判定手段17は、入出力手段11を介して改竄検出要求手段6に対して、認証データと比較データとが一致する場合には改竄無しを示す改竄検出結果と、第2変換手段15から取得したプログラム識別子とを含む改竄検出応答を送信する。認証データと比較データとが一致しない場合には、改竄有りを示す改竄検出結果と、第2変換手段15から取得したプログラム識別子とを含む改竄検出応答を改竄検出要求手段6に対して送信する。
上述のように構成された改竄検出装置1による改竄検出処理について説明する。
図3は、改竄検出装置1によるプログラム実行動作を示すフローチャートである。
まず、ロード手段4は、適宜のタイミングで、実行手段5に実行させるべきプログラムをフラッシュメモリ3から読み出してRAM2へのロードを開始する(ステップS1)。ロードを開始すると、ロード手段4は、ロードを開始したプログラムに係るプログラム識別子を含むロード開始通知を改竄検出要求手段6に対して送信する。改竄検出要求手段6は、前記ロード開始通知を受け取ると、ロード開始通知に含まれていたプログラム識別子を含む認証データ生成要求を改竄検出手段7に対して送信する。
前記プログラムのRAM2へのロードが完了すると、ロード手段4は、ロードしたプログラムを示すプログラム識別子を含んだ実行指示を実行手段5に対して送信する。
ここで、図3のフローチャートにおいては、ステップS2及びS3を順次実行するように記載しているが、ステップS2、S3は並行して実行してももちろんよい。
そして、改竄検出要求手段6は、改竄検出トリガの発生を監視する(ステップS4)。
改竄検出トリガが発生した場合(ステップS4:YES)、改竄検出要求手段6は、ステップS2にてロードされたプログラムのプログラム識別子を含む改竄検出要求を改竄検出手段7に対し送信する。
そして、改竄検出手段7における判定手段17は、認証データリストから認証データを読み出し、前記認証データと前記比較データとを比較する(ステップS6)。
改竄検出要求手段6は、改竄有りを示す改竄検出結果が改竄検出応答に含まれていた場合、改竄検出応答に含まれているプログラム識別子を含む実行停止指示を実行手段5に送信する。
次に、ステップS2の詳細について、図4を用いて説明する。
図4は、ステップS2の詳細である、認証データ生成処理を示す図である。
改竄検出手段7における入出力手段11は、プログラム識別子を含む認証データ生成要求を改竄検出要求手段6から受け取る。
分割サイズ決定手段12は、認証データ生成要求を受け付けると乱数を生成し、乱数に基づきブロック分割サイズBSを決定する(ステップS21)。
そして、分割サイズ決定手段12は、プログラム識別子と、ブロック分割サイズと、認証データの生成を示す生成データ種別とを含む分割指示を分割手段13に対して送信する。
そして、分割手段13は、読み出したプログラムサイズPSに応じたパディング処理を行う(ステップS22)。
分割が終了すると、分割手段13は、第1変換手段14に対し、分割指示に含まれていたプログラム識別子、生成データ種別を含む第1変換指示を第1変換手段14に送信する。
第1変換手段14は、変数iを1で初期化し、大きさがBSのバッファ領域Bufを確保し、Bufを値0で初期化する(ステップS25)。
iがN以下である場合(ステップS26:YES)、BufとB[i]との排他的論理和(XOR)を計算し、その計算結果をBufに格納する(ステップS27)。図中ではBuf = Buf XOR B[i]のように記載している。
また、iがNを超える場合(ステップS26:NO)、第1変換手段14は、第2変換手段15に対して、プログラム識別子を出力すると共に、認証一時データとしてBufの内容を出力する(ステップS29)。
次に、第2変換手段15は、認証一時データに対して所定の演算であるSHA1処理を施し、その結果である20バイトのハッシュ値である認証データを生成する(ステップS30)。
ステップS2の認証データ生成処理において取り扱われるデータの変遷は重要なので、ここで図5を用いて補足説明する。
図5は、認証データ生成処理におけるデータの変遷について説明するための図である。
プログラム21には、パディング処理がなされる。
ここで、パディングに用いられるデータは、例えば値が全て0などの無意味なデータとする。
本例の場合、プログラム21の最後部に、2KBのパディング用のデータが付加される。
よって、パディング後のプログラム21の総サイズは、64KBとなる(図5の21)。
ブロック分割の結果が図5に示すプログラム61となる。
ここでは、B[1]、B[2]、・・・、B[16]の16個のブロックに分割される。
XOR演算62によって生成された4KBのデータが、認証一時データ63となる。
ここで、XOR演算を(+)と表すと、認証一時データ63は、B[1](+)B[2](+)・・・(+)B[16]を演算した結果となる。
次に、図3のステップS5の詳細について、図6を用いて説明する。
図6は、ステップS5の詳細である、比較データ生成処理を示す図である。
改竄検出手段7における入出力手段11は、改竄検出要求手段6から改竄検出要求を受け取り、その改竄検出要求を判定手段17に送信する。
分割が終了すると、分割手段13は、第1変換手段14に対し、分割指示に含まれていたプログラム識別子と生成データ種別とを含む第1変換指示を第1変換手段14に送信する。
そして、第1変換手段14は、Bufの内容を比較一時データとして第2変換手段15に対して出力する。
以上の処理により、RAM上のプログラムが改竄された場合に改竄を検知して、RAM上の不正なプログラムの実行を防止することができる。
以下、本実施の形態1の構成によって得られる効果を更に詳細に述べる。
従来の改竄検出方法では、改竄チェック対象のプログラムに対する認証データであるハッシュ値を生成するために、チェック対象となるプログラムのサイズ分のデータに対してSHA1などの一方向性関数を用いてハッシュ値を生成処理をする必要がある。
一方、本実施の形態の改竄検出装置1では、まず、改竄チェック対象のプログラムにXOR処理等の非常に負荷の軽い処理である第1変換手段14による変換をかけて、プログラムの特徴を残しつつデータ量を高速に削減する。次いで、データ量が既に削減されたデータに対して、SHA1処理等の負荷の高い処理である第2変換手段15による変換をおこなう。よって、全体として改竄検出処理にかかる時間を低減させることができる。
これにより、第1のデータ変換処理の結果が同等になるようにしつつ不正な動作をするよう改竄するには、ブロック分割サイズを予め知ることが必要なので、たとえ第1変換手段が特定されたとしても不正な改竄行為は成されにくくなる。
なお、第1変換手段14のXOR処理は、第2変換手段15のSHA1よりも安全性のレベルが低い処理であるが、分割サイズ決定手段12がブロック分割サイズを乱数により決定していることで、安全性のレベルを落とすことなく改竄検出処理が可能となっている。
2.実施の形態2
実施の形態1では、1つの改竄チェック対象のプログラムに対して、1つの認証データを生成していた。これに対し本実施の形態では、1つの改竄チェック対象のプログラムについて複数の認証データを生成する。これら複数の認証データの生成には、それぞれ異なる複数のブロック分割サイズを用いる。そして、複数の認証データのうちの1つを、改竄検出装置で実行されているプロセスの状況(以下、プロセス状況という)に応じて選出し、選出した認証データと比較データとを比較して改竄有無をチェックする。
具体的には、本実施の形態における分割サイズ決定手段12は、複数のブロック分割サイズを決定している。そして、分割手段13と第1変換手段14と第2変換手段15とが各ブロック分割サイズに応じた複数の認証データを生成する。そして、生成された複数の認証データは、格納手段16により認証データリストに登録する。また、判定手段17は、認証データリストに記録されている複数のサイズの認証データからプロセス状況に応じて1つを選択し、選択した認証データのサイズを分割手段13に通知する。また、改竄検出要求手段6の動作は、実施の形態1とは多少異なっている。
2.1.認証データの生成
以下、図7を用いて、実施の形態2における認証データ生成フローについて説明する。
図7で示す処理は、図4で示した処理のうちプログラムに対してブロック分割、第1及び第2のデータ変換処理を行う部分については、ほぼ共通する。
まず、改竄検出要求手段6が、プログラム識別子を含む認証データ生成要求を、入出力手段11を介して分割サイズ決定手段12に対し送信する。
ここまでの処理は、実施の形態1と変わらない。
分割サイズ決定手段12は、前記認証データ生成要求を受信するとM個の乱数を生成する。
そして、M個の乱数それぞれに対応するブロック分割サイズ(BS_1〜BS_M)を生成する(ステップS61)。
各乱数からブロック分割サイズを決定する手順は、実施の形態1における手順と同様である。
分割手段13は、分割指示を受け付けると、前記分割指示に含まれるプログラム識別子に係るプログラムをフラッシュメモリ3から読み出す。次に、分割手段13は、プログラム識別子に対応するプログラムサイズPSを認証データリスト23から読み出す。
以後、ステップS64〜S72に関しては、前述のステップS22〜S30と同様である。
ただし、実施の形態1におけるNは、実施の形態2ではN_jに置き換わっている。
また、実施の形態1の認証データは、実施の形態2では認証データ_jに置き換わっている。
また、ステップS66において、分割手段13が生成する認証データリストは、実施の形態1において生成されるものと相違する。
図8を参照すると、認証データリスト81には、値が0001である1つのプログラム識別子に対し、4つの異なるブロック分割サイズと、4つの異なる認証データが登録されている。
すなわち、BS_1=1、BS_2=4、BS_3=6、BS_4=20である。ただし、Mの値が4の場合である。
ステップ66においては、分割手段13は、BS_jについて、ブロック分割を行う毎に、BS_jをブロック分割サイズ85の欄に追記することになる。
次に、ステップS73において、分割手段13は、jをインクリメントする(ステップS73)。
jがMを超えない場合(ステップS74:NO)、ステップS63以降の処理を行う。
以上で、図8の説明を終える。
2.2.比較データの生成及び改竄検出
2.2.1.改竄検出要求手段6への追加機能
実施の形態2では、改竄検出処理時に、上述した認証データリスト81に登録されたM個(本実施の形態では4個)の認証データから1つを選択し、その認証データと比較するための比較データを算出する。そして、比較データと認証データを比較することによりプログラムの改竄を検出する。
ここで、改竄検出要求手段6は、プロセス状況算出値を生成するために、実施の形態1におけるものに対して必要な機能の追加がなされている。
図9は、実施の形態2において、実施の形態1から追加された構成を中心とした改竄検出要求手段6を示す概略図である。
改竄検出要求手段6は、実施の形態1で説明した機能を備えており、更に、内部構成として、切り替え実行可能なプロセス群全体を監視するスケジューリング手段101と、各プロセスの優先度やCPU使用率などのプロセス情報を記憶しているプロセス管理テーブル格納部102とを有している。
図10は、プロセス管理テーブル格納部102に格納されるプロセス管理テーブル121の一例を示している。
プロセス管理テーブル121は、プロセス識別子122、優先度123、CPU使用率124から構成されている。
優先度123は、プロセス識別子122で識別されるプロセスに付与されている優先度の値である。
CPU使用率124は、プロセス識別子122で識別されるプロセスが、どの程度CPUを使用しているかを表す数値である。
プロセス管理テーブル121は、プロセス識別子「0001」で識別されるプロセスの優先度が「10」であり、CPU使用率が「40%」であることを示す。同様に、プロセス識別子「0002」「0003」「0004」「0005」で識別される各プロセスの優先度は「4」「8」「1」「3」であり、CPU使用率は「10%」「30%」「1%」「5%」であることを示す。
2.2.2.プロセス状況算出値の生成
続いて、スケジューリング手段101が、プロセス管理テーブルに登録されている情報を用いてプロセス状況算出値を生成する処理について図11を用いて説明する。
次に、プロセス管理テーブル121に登録されている情報を用いて所定のアルゴリズムによりプロセス状況算出値を算出する(ステップS102)。
ここでは、所定のアルゴリズムとして、プロセス管理テーブルに登録されているプロセスの数を算出し、算出したプロセス数をプロセス状況算出値とする。
この場合、スケジューリング手段101は、上述のアルゴリズムに従って、プロセス状況算出値を「5」とする。
プロセス状況算出値を受信した入出力手段11は、判定手段17にプロセス状況算出値を送信する。
2.2.3.認証データの選択と改竄検出
前述のように、入出力手段11が、前記プロセス状況算出値を送信した後の処理については、図12を用いて説明する。
まず、判定手段17は比較データの生成が開始されるより前に、前記プロセス状況算出値を受信する(ステップS121)。
ここで、判定手段17は、最大閾値と最小閾値の組から成る閾値情報を予め保持しているものとする。前記閾値情報は、認証データを選出するのに用いられる情報であり、プロセス状況算出値と比較される。
プロセス状況算出値が最大閾値以上の場合(ステップS123:YES)、認証データリスト121内でブロック分割サイズが最小サイズである認証データを選択する(ステップS124)。
一方、プロセス状況算出値が最大閾値未満の場合(ステップS123:NO)、更に、プロセス状況算出値が最小閾値以下であるかを判定する(ステップS125)。
プロセス状況算出値が最小閾値以下である場合(ステップS125:YES)、認証データリスト81内のブロック分割サイズが最大サイズの認証データを選択する(ステップS126)。
最小閾値<プロセス状況算出値<最大閾値の場合(ステップS125:NO)、認証データリスト81内の全ての認証データからランダムに選択する(ステップS127)。
以上のフローにより複数ある認証データから1つの認証データを選択することができる。
そして、これらの情報を用いて、比較データを算出し、比較データと認証データを比較し、改竄検出処理を行う。
以上より、本実施の形態2では、プロセス状況算出値を利用することで、改竄検出処理にかける負荷を調整することができる。そのため、他のプロセスへの影響を最小限に抑えて改竄検出処理が可能になる。
3.その他変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる
(1)上述の実施の形態において、RAM2は、ランダムアクセスメモリとしているが、これに限らず、読み出し及び書き込み可能なメモリであればよい。また、フラッシュメモリ3は、FlashROMとしていたが、これに限定されず、EEPROM(Electrically Erasable Programmable ROM)やHDD(Hard Disk Drive)などの他の不揮発性のメモリでもよい。
(3)上述の実施の形態において、ブロック分割サイズは、生成した乱数をそのまま使用するものとしていたが、これに限らず、ブロック分割サイズがある程度ランダムに生成される方法であればよい。
また、例えば、ブロック分割サイズの候補値を予め所定個数(例えば、5つ)決めておき、候補値の1つを順番に用いることとしてもよい。
(4)上述の実施の形態において、ブロック分割する前にパディング処理を行っているが、ブロック分割した最終ブロックに対してパディング処理を行っても良い。この場合、B[16]は2KBのブロックとなる。
これに対応するため、例えば、Buf中のデータの一部分に対してのみB[16]のデータとのXOR演算を行った結果を認証一時データ63とするとしてもよい。また、B[15]までXOR演算を行った結果を認証一時データ63とするとしてもよい。
この場合、プログラムに係る改竄検出したい部分の先頭アドレスをプログラムアドレス42とし、改竄検出したい部分のプログラムサイズをプログラムサイズ43として、認証データリスト23に登録すればよい。
また、1つのプログラムに対して改竄検出を行いたい部分が複数ある場合などには、1つのプログラム識別子に対応づけて、プログラムアドレス42、プログラムサイズ43、ブロック分割サイズ44及び認証データ45の組を複数登録してもよい。
さらに、フラッシュメモリ3上で1つだったプログラムを同一内容の複数のプログラムとしてRAM2上にロードし並行処理を行う場合などには、1つのプログラム識別子に対応づけて、プログラムアドレス42、プログラムサイズ43、ブロック分割サイズ44及び認証データ45の組を複数登録してもよい。
(6)上述の実施の形態において、改竄検出開始のトリガが発生した場合に、複数のプログラムから改竄チェック対象となるプログラムを選択する方法について特には説明しなかったが、以下のようなものが考えられる。
また、改竄検出要求手段6が、装置外部から改竄チェックを要求するプログラムの選択を受け付け、その選択されたプログラムのプログラム識別子を認証データ生成要求に含めて改竄検出手段7に対して送信することとしてもよい。
この場合、プログラム実行手段50がRAM上のプログラムを実行している間に、改竄検出要求手段6が、実行手段5に対して割り込みを発生させて、そのときのプログラムカウンタ値を取得し、そのプログラムカウンタ値を入出力手段11へ送信し、入出力手段11が受信したプログラムカウンタ値を判定手段17に送信する。その後、判定手段17が、受信したプログラムカウンタ値と認証データリスト23内のプログラムアドレスとプログラムサイズから、プログラムカウンタ値が示すアドレスに対応するプログラム情報を読み込んでもよい。
論理演算を組み合わせたアルゴリズムには、例えば、論理積演算と排他的論理和演算を交互に行うアルゴリズム等が考えられる。
例えば、2:1とする場合であれば、B[1]とB[2]との論理積演算を行い、その論理積演算の結果とB[3]との論理積演算を行う。論理積演算が2回終了したので、今度は、B[3]に係る前記論理積演算の結果と、B[4]との排他的論理和演算を行う。排他的論理和演算が1回終了したので、次に、その排他的論理和演算の結果と、B[5]との論理積演算を行う。以降は、排他的論理和演算1回に対し、論理積演算2回を実行していくことになる。
また、第1変換手段14と第2変換手段15との両方で一方向性関数を使う場合には、それぞれで異なる一方向性関数を用いることが望ましい。例えば、データ量の削減を目的とする第1変換手段14では軽量な一方向性関数を、認証データの算出を目的とする第2変換手段15では安全性の高い一方向性関数を用いるとよい。
(9)上述の実施の形態において、1つの改竄チェック対象のプログラムに対して1つの認証データを生成しているが、複数の改竄チェック対象のプログラムに対して1つの認証データを生成することとしてもよい。
また、複数の改竄チェック対象のプログラムに対してプログラムの連結をせず1つの認証データを生成する方法として、分割手段13によるブロック分割、第1変換手段14による認証一時データの生成の処理を改竄チェック対象のプログラムの数だけループさせることが考えられる。
このようにすることで、登録する認証データの数を削減することができるので、省メモリの効果がある。
(10)上述の実施の形態1では、分割手段13は、プログラムを分割サイズ決定手段12により決定されたブロック分割サイズのブロックに分割していた。そして、第1変換手段14が、ブロック分割されたプログラムを入力として、処理を行い、結果としてブロック分割サイズのデータを出力していたが、これに限られるものではない。
(11)上述の実施の形態2において、ブロック分割サイズの数Mは予め定められており、分割サイズ決定手段12が記憶しているとしているが、これには限られない。
また、Mの値は、フラッシュメモリ3が格納できる認証データの数などに応じて決めていてもよい。
(12)実施の形態2において、プロセス状況算出値を利用して認証データを選択する代わりに、ランダムに認証データを選択するものとしてもよい。このようにすれば、認証データのブロック分割サイズのパターンの範囲内で、ランダムなサイズの比較データが生成されるので比較データに対する解析を困難にすることが出来る。
また、認証データリストをフラッシュメモリ3に格納していたが、これに限らない。
例えば、小容量のセキュアなメモリを格納手段16に具備させ、当該セキュアなメモリに認証データリストを格納することとしてもよい。
この構成においては、認証データリストのデータを参照、追記する場合には、暗号化された認証データリストを改竄検出手段7内の暗号鍵と暗復号手段を用いて復号する。参照、追記が終了した後、再度、保存する場合は、暗号鍵と暗復号手段を用いて認証データリストを暗号化した上で保存する。
(15)上述の実施の形態では、フラッシュメモリ3上の改竄チェック対象であるプログラムをRAM2にロードする時に改竄検出手段7にて認証データリストを動的に生成していたが、これに限らず、認証データリストを予め格納手段16又はフラッシュメモリ3に記憶させておいてもよい。
(18)改竄検出装置1に、記憶媒体のデータを読み込む記憶媒体読み取り手段を付加してもよい。前記記憶媒体には新しい認証データリストを記憶させておく。そして、改竄検出装置1は、前記記憶媒体から新しい認証データリストを読み取り、前記新しい認証データリストで古い認証データリストを更新する。このようにすれば、認証データリストの更新が可能となって安全性を維持することができる。
このようにすることで、RAM2上のプログラムが改竄されたことを検出した場合に、再びロードされた改竄のされていないプログラムを実行することができるので、より安全にプログラムを実行することが可能となる。
また、さらに、端末がネットワークと接続する機能を備えていれば、改竄を検知したというログ情報をネットワーク経由でサーバーに送信するようにしてもよい。このようにすることで、サーバー側で、そのログ情報を基に、どのプログラムに対して不正な改竄が行われたかを把握することができる。
(20)上述してきた改竄検出装置1又は改竄検出手段7は、セキュアな実行環境であるとしてもよい。セキュアな実装環境の例としては、Trusted Computing Group(TCG)で規定しているTrusted Platform Module(TPM)やMobile Trusted Module(MTM)が考えられる。このようにすることで改竄検出装置1又は改竄検出手段7の全構成要素がセキュアな環境で実行することができるため、より安全な実行環境を構築することができる。
以下、実装する場合の例を簡単に説明する。
第1変換手段14は、通知されたデータサイズ以下になるようプログラムのデータサイズを削減する。また、認証データリストには変換結果の取るべきデータサイズをさらに記録する。
(22)上述の実施の形態では、プログラムをランダムに定まるブロック分割サイズに分割し、その結果にXOR演算等をかけてることで、データの削減に関してランダム性を持たせ、データ削減処理に対する攻撃を困難にしていた。しかし、データの削減に関しランダム性を持たせる方法はこれに限らない。
具体的なアルゴリズムの候補としては、ブロックごとのANDを取るなどXOR以外の論理演算を用いる変換や、プログラム全体のチェックサムを取るなど比較的軽量な関数による変換などが考えられる。
(23)認証データの算出と比較データの算出とで、同一の分割手段13と第1変換手段14と第2変換手段15とを用いているが、認証データの算出用の各手段と比較データの算出用の各手段とを別々に設けてもよい。
(25)実施の形態2において、プロセス状況算出値を算出するアルゴリズムとして、プロセス数をそのまま用いる方法について説明したが、これには限らない。
この方法を用いた場合、一例としてプロセス管理テーブル121が図10の状態であったならば、プロセス識別子「0001」〜「0005」までのプロセスのCPU使用率は、それぞれ「40%」「10%」「30%」「1%」「5%」であるので、その合計である総CPU使用率が86%となる。よってプロセス状況算出値は「86」となる。
この場合、一例としてプロセス管理テーブル121が図10の状態であったならば、合計値は、
10×40(プロセス識別子「0001」の優先度 × CPU使用率)
+ 4×10(プロセス識別子「0002」の優先度 × CPU使用率)
+ 8×30(プロセス識別子「0003」の優先度 × CPU使用率)
+ 1× 1(プロセス識別子「0004」の優先度 × CPU使用率)
+ 3× 5(プロセス識別子「0005」の優先度 × CPU使用率)
= 696
となるので、プロセス状況算出値は696となる。
(26)実施の形態2のステップS127においては、認証データを選択する場合に、認証データリスト81内の全ての認証データからランダムに選択することとしていたが、これに限らない。
例えば、認証データリスト81内の全ての情報のうち最大、最小ブロック分割サイズを除いたものから、ランダムに選択することとしてもよい。
(27)上述の実施の形態は、プログラムがリロケーションされないことが前提であった。リロケーションとは、オブジェクトファイル内のシンボリックな参照を具体的なメモリアドレスに置き換えることを意味する。一般にオブジェクトファイルはその中のコードが0番地から始まるものとしてコードが生成されており、実際に実行する前にそのコードが置かれたアドレスに応じてコードの調整がなされる。
プログラムは、非リロケーション対象コード(NC1〜NC3)と、リロケーション対象コード(RC1〜RC2)と、リロケーションテーブルとを含んでいる。
非リロケーション対象コードは、リロケーションされないコードであり、RAMにロードされてもコードが置き換わることはない。
リロケーションテーブルは、リロケーションを行うための情報を含む。RAMにロードされてもコードが置き換わることはない。
すなわち、ロード前とロード後のプログラムを比較すると、リロケーション対象コードの部分と、リロケーション済コードの部分が必ず相違することになる。
そこで、本変形例では、改竄検出対象のプログラムを図14(a)又は図14(b)に示すデータとなるよう処理し、その処理後のデータから認証データ及び比較データを生成することとしている。
図14(b)は、改竄検出対象であるプログラムのうち、リロケーション対象コードを規定コード(SC)、例えば、無意味なコード0xFFFF・・・などに置き換えて生成したデータを示す。
(28)上述の実施の形態においては、分割サイズ決定手段12が乱数を生成し、乱数を用いてブロック分割サイズを決定していた。ブロック分割サイズがプログラムのロード毎に変更されるので、プログラムから生成される認証データがランダム性を有して、認証データの推測の困難性を増していた。しかし、これに限られるものではなく、以下のような変形例も考えられる。
その一部分を決定するために、一例として乱数を用いる場合について説明する。
図15は、本変形例における、プログラムから認証データを生成するまでの概要を説明するための図である。
改竄検出手段7は、例えば、乱数を2つ生成し、一方の乱数をプログラムの先頭アドレスからのオフセット(141)、他方の乱数をデータサイズ(142)とする。
そして、プログラムの先頭アドレスにオフセット(141)を加えたアドレス(143)からデータサイズ(142)分のデータ(144)を用いて認証データを生成する。
そして、データ(144)に対し、SHA1処理を行い、その結果として認証データ(145)を得る。
改竄検出を行うために比較データを生成する場合には、認証データリストから、オフセット(141)及びデータサイズ(142)を読み出して、RAMに記録されているプログラムの先頭アドレスにオフセット(141)を加えた部分からデータサイズ(142)分のデータを用いて、認証データを生成したのと同様に比較データを生成する。
本変形例では、HMAC−SHA1(keyed−Hashing for Message Authentication Code − Secure Hash Algorithm 1)の鍵及びパディングデータをランダムな情報としている。
改竄検出手段7は、2つの乱数RP及びRKを生成する。
2つの乱数RP、RKは、認証データリストに記憶しておく。
そして、上述の実施の形態では、改竄検出対象であるプログラム21に対し、値が0のデータなど一定の値でパディング処理を行っていたが、本変形例では、図16に示すように乱数RP(161)でパディング処理を行う。
そして、認証一時データ63について、乱数RKを鍵とするHMAC−SHA1処理(165)を行い、結果として認証データ65を得る。
比較データを生成する場合には、RAM上のプログラムに対し、図16に示したのと同様の処理を行って比較データを生成する。
すなわち、乱数RKを生成せずに固定の鍵を用いてもよいし、乱数RPを生成せずに固定値でパディングすることとしてもよい。
例えば、ブロック分割サイズをCPUが具備する2次キャッシュなどのキャッシュメモリにおけるデータの取り扱い単位(例えば、ページングのサイズ)以下にする。
(31)上述の実施の形態において、プログラムのロード前に1のプログラムから複数の異なるサイズの認証データを生成し、プログラムのロード以後に1の認証データを選出し、選出した認証データを用いて改竄検出を行う例について説明したが、これに限らず、複数の認証データを用いて改竄検出を行ってもよい。
この場合、選出した認証データの数と同数の、各認証データに対応する比較データを生成し、対応する認証データと比較データとを比較することになる。
また、2つ以上の認証データ、比較データについて、連結、加算等行ったものを用いて、改竄検出してもよい。
(33)上記の装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、上記装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
(35)上記の装置を構成する構成要素の一部または全部は、装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
(37)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
2 RAM
3 フラッシュメモリ
4 ロード手段
5 実行手段
6 改竄検出要求手段
7 改竄検出手段
11 入出力手段
12 分割サイズ決定手段
13 分割手段
14 第1変換手段
15 第2変換手段
16 格納手段
17 判定手段
23 認証データリスト
Claims (21)
- プログラムの改竄検出を行う改竄検出システムであって、
ROM(Read Only Memory)に記録されている実行対象の第1のプログラムを前記第1のプログラムよりも短くなるよう、ロード毎にランダムに定まるサイズを示すパラメータに依存する加工処理を行うことにより、認証用加工データを生成する第1加工手段と、
前記第1のプログラムが実行されるより前に、前記認証用加工データに対し前記加工処理より計算量の多い要約処理を行って、認証情報を生成する第1生成手段と、
生成された前記認証情報を保持する保持手段と、
前記第1のプログラムに対し、前記第1加工手段による加工処理に用いられたパラメータと同じパラメータを用いて前記加工処理を行って、比較用加工データを生成する第2加工手段と、
第2のプログラムの実行中に、前記比較用加工データに対し前記要約処理を行って、比較情報を生成する第2生成手段と、
前記認証情報と前記比較情報とが一致するか否か判定し、一致しなかった場合に改竄があったと判断する検出手段とを備え、
前記第1加工手段及び前記第2加工手段は、前記加工処理として、加工対象のプログラムを前記サイズの複数のブロックデータに区切り、前記ブロックデータ同士で同一桁の論理演算を行うことにより前記サイズの前記認証用加工データ及び比較用加工データを生成する
ことを特徴とする改竄検出システム。 - 前記第2生成手段は、前記比較情報の生成を、前記第1のプログラムとは異なる第2のプログラムの実行と並行して行う
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1加工手段及び第2加工手段は、前記論理演算として排他的論理和演算を行う
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1生成手段は、キャッシュメモリを含み、前記キャッシュメモリを介して認証用加工データが記憶されているメモリとの間で入出力を行い、
前記第1加工手段は、前記パラメータとして、前記第1生成手段に含まれるキャッシュメモリにおけるデータ読み書き単位のサイズ以下のサイズを特定する情報を用いて前記加工処理を行う
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1生成手段は、前記認証情報として前記認証用加工データのハッシュ値を算出し、
前記第2生成手段は、前記比較情報として前記比較用加工データのハッシュ値を算出する
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1生成手段及び第2生成手段は、ハッシュ値の算出にSHA1演算を用いる
ことを特徴とする請求項5記載の改竄検出システム。 - 前記第1加工手段及び第2加工手段は、加工対象のプログラムが、ロード時に再配置されるリロケーションコードを含むか否かを判定し、リロケーションコードを含む場合に、前記加工対象のプログラムから前記リロケーションコードを除去し、前記リロケーションコードが除去されたプログラムを加工処理する
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1加工手段及び第2加工手段は、加工対象のプログラムが、ロード時に再配置されるリロケーションコードを含むか否かを判定し、リロケーションコードを含む場合に、含まれるリロケーションコードを所定のリロケーションされないコードに置換し、前記リロケーションコードが置換がされたプログラムを加工処理する
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1加工手段は、前記パラメータとして乱数を生成し、
前記第2加工手段は、前記乱数を保持しており、
前記第1加工手段及び前記第2加工手段は、前記加工処理において、前記加工対象のプログラムに前記乱数を付した上で前記加工処理する
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1生成手段は、乱数を生成し、前記認証情報として、前記乱数を鍵とするハッシュ関数を用いて前記認証用加工データのハッシュ値を算出し、
前記第2生成手段は、前記乱数を保持しており、前記比較情報として、前記乱数を鍵とする前記ハッシュ関数を用いて前記比較用加工データのハッシュ値を算出する
ことを特徴とする請求項1記載の改竄検出システム。 - 前記第1加工手段は、更に、複数のパラメータそれぞれに依存する加工処理を行って、サイズの異なる複数の認証用加工データを生成し、
前記第1生成手段は、前記複数の認証用加工データそれぞれに、前記要約処理を行って複数の認証情報を生成し、
前記改竄検出システムは、更に、
前記複数の認証情報のうち少なくとも1つを選出し、
前記第2加工手段に、前記加工処理によって、加工対象のプログラムを前記選出した認証情報のサイズに縮めさせ、
前記検出手段に、前記選出された認証情報と、前記第2生成手段により生成された前記比較情報とを用いて前記第1のプログラムの改竄検出を行わせる制御手段
を備えることを特徴とする請求項1記載の改竄検出システム。 - 前記制御手段は、実行中のプロセスへの資源割り当てに係るプロセス状況算出値を算出し、前記プロセス状況算出値に基づき少なくとも1の認証情報を選出する
ことを特徴とする請求項11記載の改竄検出システム。 - 前記制御手段は、プロセス状況算出値と認証情報との対応表を記憶しており、算出したプロセス状況算出値に対応する認証情報を前記対応表から選出する
ことを特徴とする請求項12記載の改竄検出システム。 - 前記加工処理と前記要約処理とは、相異なる一方向性関数を用いる処理である
ことを特徴とする請求項1記載の改竄検出システム。 - 第1加工手段、第1生成手段、保持手段、第2加工手段、第2生成手段及び検出手段を備えた改竄検出システムに用いられる、プログラムの改竄検出を行う改竄検出方法であって、
前記第1加工手段が、ROM(Read Only Memory)に記録されている実行対象の第1のプログラムについて、前記第1のプログラムが所定メモリ領域にロードされる前に、前記第1のプログラムよりも短くなるよう、前記第1のプログラムがロードされる毎に異なる値となるランダムに定まるサイズを示すパラメータに依存する加工処理を行うことにより、認証用加工データを生成する第1加工ステップと、
前記第1生成手段が、前記第1のプログラムが所定メモリ領域にロードされる前に、前記認証用加工データに対し前記加工処理より計算量の多い要約処理を行うことにより、認証情報を生成する第1生成ステップと、
前記保持手段が、生成された前記認証情報を保持する保持ステップと、
前記第2加工手段が、前記第1のプログラムが所定メモリ領域にロードされた後に、当該所定メモリ領域にロードされているプログラムに対し前記第1加工手段による加工処理に用いられたパラメータと同じパラメータを用いて前記加工処理を行うことにより、比較用加工データを生成する第2加工ステップと、
前記第2生成手段が、第2のプログラムの実行中に、前記比較用加工データに対し前記要約処理を行うことにより、比較情報を生成する第2生成ステップと、
前記検出手段が、前記認証情報と前記比較情報とが一致するか否か判定し、一致しなかった場合に改竄があったと判断する検出ステップとを含み、
前記第1加工手段及び前記第2加工手段は、前記加工処理として、加工対象のプログラムを前記サイズの複数のブロックデータに区切り、前記ブロックデータ同士で同一桁の論理演算を行うことにより前記サイズの前記認証用加工データ及び比較用加工データを生成する
ことを特徴とする改竄検出方法。 - プログラムの改竄検出を行う改竄検出システムに用いられる改竄検出プログラムであって、
ROM(Read Only Memory)に記録されている実行対象の第1のプログラムについて、前記第1のプログラムが所定メモリ領域にロードされる前に、前記第1のプログラムよりも短くなるよう、前記第1のプログラムがロードされる毎に異なる値となるランダムに定まるサイズを示すパラメータに依存する加工処理を行うことにより、認証用加工データを生成する第1加工ステップと、
前記第1のプログラムが所定メモリ領域にロードされる前に、前記認証用加工データに対し前記加工処理より計算量の多い要約処理を行うことにより、認証情報を生成する第1生成ステップと、
生成された前記認証情報を保持する保持ステップと、
前記第1のプログラムが所定メモリ領域にロードされた後に、当該所定メモリ領域にロードされているプログラムに対し前記第1加工手段による加工処理に用いられたパラメータと同じパラメータを用いて前記加工処理を行うことにより、比較用加工データを生成する第2加工ステップと、
第2のプログラムの実行中に、前記比較用加工データに対し前記要約処理を行うことにより、比較情報を生成する第2生成ステップと、
前記認証情報と前記比較情報とが一致するか否か判定し、一致しなかった場合に改竄があったと判断する検出ステップとをコンピュータに実行させ、
前記加工処理は、加工対象のプログラムを前記サイズの複数のブロックデータに区切り、前記ブロックデータ同士で同一桁の論理演算を行うことにより前記サイズの前記認証用加工データ及び比較用加工データを生成する処理である
ことを特徴とする改竄検出プログラム。 - コンピュータ読み取り可能な記録媒体であって、
ROM(Read Only Memory)に記録されている実行対象の第1のプログラムについて、前記第1のプログラムが所定メモリ領域にロードされる前に、前記第1のプログラムよりも短くなるよう、前記第1のプログラムがロードされる毎に異なる値となるランダムに定まるサイズを示すパラメータに依存する加工処理を行うことにより、認証用加工データを生成する第1加工ステップと、
前記第1のプログラムが所定メモリ領域にロードされる前に、前記認証用加工データに対し前記加工処理より計算量の多い要約処理を行うことにより、認証情報を生成する第1生成ステップと、
生成された前記認証情報を保持する保持ステップと、
前記第1のプログラムが所定メモリ領域にロードされた後に、当該所定メモリ領域にロードされているプログラムに対し前記第1加工手段による加工処理に用いられたパラメータと同じパラメータを用いて前記加工処理を行うことにより、比較用加工データを生成する第2加工ステップと、
第2のプログラムの実行中に、前記比較用加工データに対し前記要約処理を行うことにより、比較情報を生成する第2生成ステップと、
前記認証情報と前記比較情報とが一致するか否か判定し、一致しなかった場合に改竄があったと判断する検出ステップと
をコンピュータに実行させる改竄検出プログラムを記録しており、
前記加工処理は、加工対象のプログラムを前記サイズの複数のブロックデータに区切り、前記ブロックデータ同士で同一桁の論理演算を行うことにより前記サイズの前記認証用加工データ及び比較用加工データを生成する処理である
ことを特徴とする記録媒体。 - プログラムの改竄検出を行う集積回路であって、
ROM(Read Only Memory)に記録されている実行対象の第1のプログラムについて、前記第1のプログラムが所定メモリ領域にロードされる前に、前記第1のプログラムよりも短くなるよう、前記第1のプログラムがロードされる毎に異なる値となるランダムに定まるサイズを示すパラメータに依存する加工処理を行うことにより、認証用加工データを生成する第1加工手段と、
前記第1のプログラムが所定メモリ領域にロードされる前に、前記認証用加工データに対し前記加工処理より計算量の多い要約処理を行うことにより、認証情報を生成する第1生成手段と、
生成された前記認証情報を保持する保持手段と、
前記第1のプログラムが所定メモリ領域にロードされた後に、当該所定メモリ領域にロードされているプログラムに対し前記第1加工手段による加工処理に用いられたパラメータと同じパラメータを用いて前記加工処理を行うことにより、比較用加工データを生成する第2加工手段と、
第2のプログラムの実行中に、前記比較用加工データに対し前記要約処理を行うことにより、比較情報を生成する第2生成手段と、
前記認証情報と前記比較情報とが一致するか否か判定し、一致しなかった場合に改竄があったと判断する検出手段とを備え、
前記第1加工手段及び前記第2加工手段は、前記加工処理として、加工対象のプログラムを前記サイズの複数のブロックデータに区切り、前記ブロックデータ同士で同一桁の論理演算を行うことにより前記サイズの前記認証用加工データ及び比較用加工データを生成する
ことを特徴とする集積回路。 - 前記集積回路は、Trusted Platform Moduleであることを特徴とする請求項18記載の集積回路。
- プログラムの改竄検出に用いる認証情報を生成する認証情報生成装置であって、
ROM(Read Only Memory)に記録されている実行対象のプログラムについて、前記プログラムが所定メモリ領域にロードされる前に、前記プログラムよりも短くなるよう、前記プログラムがロードされる毎に異なる値となるランダムに定まるサイズを示すパラメータに依存する加工処理を行うことにより認証用加工データを生成する加工手段と、
前記プログラムが所定メモリ領域にロードされる前に、前記認証用加工データに対し前記加工処理より計算量の多い要約処理を行うことにより、認証情報を生成する生成手段と、
生成された前記認証情報を改竄検出装置に提供する提供手段とを備え、
前記加工処理は、加工対象のプログラムを前記サイズの複数のブロックデータに区切り、前記ブロックデータ同士で同一桁の論理演算を行うことにより前記サイズの前記認証用加工データ及び比較用加工データを生成する処理である
ことを特徴とする認証情報生成装置。 - プログラムの改竄検出を行う改竄検出装置であって、
ROM(Read Only Memory)に記録されている第1のプログラムについて、前記第1のプログラムが所定メモリ領域にロードされる前に、前記第1のプログラムよりも短くなるよう、前記第1のプログラムがロードされる毎に異なる値となるランダムに定まるサイズを示すパラメータに依存する加工処理をし、さらに、前記第1のプログラムが所定メモリ領域にロードされる前に前記加工処理より計算量の多い要約処理を行うことで生成された認証情報を保持する保持手段と、
前記第1のプログラムが所定メモリ領域にロードされた後に、当該所定メモリ領域にロードされているプログラムに対し前記第1加工手段による加工処理に用いられたパラメータと同じパラメータを用いて前記加工処理を行うことにより、比較用加工データを生成する加工手段と、
前記第2のプログラムの実行中に、前記比較用加工データに対し前記要約処理を行うことにより、比較情報を生成する生成手段と、
前記認証情報と前記比較情報とが一致するか否か判定し、一致しなかった場合に改竄があったと判断する検出手段とを備え、
前記第1加工手段及び前記第2加工手段は、前記加工処理として、加工対象のプログラムを前記サイズの複数のブロックデータに区切り、前記ブロックデータ同士で同一桁の論理演算を行うことにより前記サイズの前記認証用加工データ及び比較用加工データを生成する
ことを特徴とする改竄検出装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008543103A JP5049288B2 (ja) | 2006-11-09 | 2007-11-07 | 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置 |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006304197 | 2006-11-09 | ||
| JP2006304197 | 2006-11-09 | ||
| JP2008543103A JP5049288B2 (ja) | 2006-11-09 | 2007-11-07 | 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置 |
| PCT/JP2007/071638 WO2008056700A1 (en) | 2006-11-09 | 2007-11-07 | Falsification detecting system, falsification detecting method, falsification detecting program, recording medium, integrated circuit, authentication information generating device and falsification detecting device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2008056700A1 JPWO2008056700A1 (ja) | 2010-02-25 |
| JP5049288B2 true JP5049288B2 (ja) | 2012-10-17 |
Family
ID=39364514
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008543103A Active JP5049288B2 (ja) | 2006-11-09 | 2007-11-07 | 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8453206B2 (ja) |
| EP (1) | EP2053533A4 (ja) |
| JP (1) | JP5049288B2 (ja) |
| WO (1) | WO2008056700A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8563715B2 (en) | 2008-03-31 | 2013-10-22 | Zenyaku Kogyo Kabushikikaisha | Pyrimidine derivative having cell protecting effect and uses thereof |
| US11888990B2 (en) | 2020-03-09 | 2024-01-30 | Kabushiki Kaisha Toshiba | Information processing device controlling analysis of a program being executed based on a result of verification of an analysis program |
Families Citing this family (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7644282B2 (en) | 1998-05-28 | 2010-01-05 | Verance Corporation | Pre-processed information embedding system |
| US6737957B1 (en) | 2000-02-16 | 2004-05-18 | Verance Corporation | Remote control signaling using audio watermarks |
| CA2499967A1 (en) | 2002-10-15 | 2004-04-29 | Verance Corporation | Media monitoring, management and information system |
| US20060239501A1 (en) | 2005-04-26 | 2006-10-26 | Verance Corporation | Security enhancements of digital watermarks for multi-media content |
| US8020004B2 (en) | 2005-07-01 | 2011-09-13 | Verance Corporation | Forensic marking using a common customization function |
| US8781967B2 (en) | 2005-07-07 | 2014-07-15 | Verance Corporation | Watermarking in an encrypted domain |
| JP5032551B2 (ja) * | 2009-10-26 | 2012-09-26 | 京楽産業.株式会社 | 電子機器、遊技機、主制御基板、周辺基板、認証方法および認証プログラム |
| JP5032552B2 (ja) * | 2009-10-26 | 2012-09-26 | 京楽産業.株式会社 | 電子機器、遊技機、主制御基板、周辺基板、認証方法および認証プログラム |
| JP5032549B2 (ja) * | 2009-10-26 | 2012-09-26 | 京楽産業.株式会社 | 電子機器、遊技機、主制御基板、周辺基板、認証方法および認証プログラム |
| JP5032550B2 (ja) * | 2009-10-26 | 2012-09-26 | 京楽産業.株式会社 | 電子機器、遊技機、主制御基板、周辺基板、認証方法および認証プログラム |
| EP2365438A1 (de) * | 2010-03-09 | 2011-09-14 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Automatisierungssystems |
| US9607131B2 (en) * | 2010-09-16 | 2017-03-28 | Verance Corporation | Secure and efficient content screening in a networked environment |
| KR101665562B1 (ko) * | 2010-11-05 | 2016-10-25 | 삼성전자주식회사 | 검출 회로, 그 검출 방법, 및 이를 포함하는 메모리 시스템 |
| CN103597496B (zh) * | 2011-05-23 | 2016-11-02 | 三星电子株式会社 | 用于认证非易失性存储器设备的方法和装置 |
| US8682026B2 (en) | 2011-11-03 | 2014-03-25 | Verance Corporation | Efficient extraction of embedded watermarks in the presence of host content distortions |
| US8615104B2 (en) | 2011-11-03 | 2013-12-24 | Verance Corporation | Watermark extraction based on tentative watermarks |
| US8923548B2 (en) | 2011-11-03 | 2014-12-30 | Verance Corporation | Extraction of embedded watermarks from a host content using a plurality of tentative watermarks |
| US9262631B2 (en) * | 2011-11-15 | 2016-02-16 | Mstar Semiconductor, Inc. | Embedded device and control method thereof |
| US8745403B2 (en) | 2011-11-23 | 2014-06-03 | Verance Corporation | Enhanced content management based on watermark extraction records |
| US9547753B2 (en) | 2011-12-13 | 2017-01-17 | Verance Corporation | Coordinated watermarking |
| US9323902B2 (en) | 2011-12-13 | 2016-04-26 | Verance Corporation | Conditional access using embedded watermarks |
| US8910307B2 (en) * | 2012-05-10 | 2014-12-09 | Qualcomm Incorporated | Hardware enforced output security settings |
| US9349011B2 (en) * | 2012-05-16 | 2016-05-24 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to identify a degradation of integrity of a process control system |
| US9571606B2 (en) | 2012-08-31 | 2017-02-14 | Verance Corporation | Social media viewing system |
| US8869222B2 (en) | 2012-09-13 | 2014-10-21 | Verance Corporation | Second screen content |
| US9106964B2 (en) | 2012-09-13 | 2015-08-11 | Verance Corporation | Enhanced content distribution using advertisements |
| US9262794B2 (en) | 2013-03-14 | 2016-02-16 | Verance Corporation | Transactional video marking system |
| US9251549B2 (en) | 2013-07-23 | 2016-02-02 | Verance Corporation | Watermark extractor enhancements based on payload ranking |
| JP6000465B2 (ja) | 2013-09-25 | 2016-09-28 | 三菱電機株式会社 | プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法 |
| US9208334B2 (en) | 2013-10-25 | 2015-12-08 | Verance Corporation | Content management using multiple abstraction layers |
| WO2015138798A1 (en) | 2014-03-13 | 2015-09-17 | Verance Corporation | Interactive content acquisition using embedded codes |
| KR102509594B1 (ko) * | 2016-06-28 | 2023-03-14 | 삼성전자주식회사 | 어플리케이션 코드의 위변조 여부 탐지 방법 및 이를 지원하는 전자 장치 |
| JP6712538B2 (ja) * | 2016-11-14 | 2020-06-24 | 日本電信電話株式会社 | 改竄検知システム |
| JP6736456B2 (ja) | 2016-11-17 | 2020-08-05 | キオクシア株式会社 | 情報処理装置およびプログラム |
| US10824737B1 (en) * | 2017-02-22 | 2020-11-03 | Assa Abloy Ab | Protecting data from brute force attack |
| JP6885226B2 (ja) * | 2017-07-03 | 2021-06-09 | 株式会社デンソー | 電子制御装置 |
| JP6949416B2 (ja) * | 2017-07-13 | 2021-10-13 | 株式会社デンソー | 電子制御装置、プログラム改ざん検知方法 |
| JP6919475B2 (ja) * | 2017-09-29 | 2021-08-18 | 富士通株式会社 | 検知プログラム、装置、及び方法 |
| JP7105640B2 (ja) * | 2018-07-10 | 2022-07-25 | キヤノン株式会社 | 画像処理装置、その制御方法、及びプログラム |
| US12223096B2 (en) | 2019-07-23 | 2025-02-11 | Sony Interactive Entertainment Inc. | Access control apparatus, access control method, and program |
| JP7374780B2 (ja) * | 2020-01-20 | 2023-11-07 | キヤノン株式会社 | 情報処理装置および情報処理装置の制御方法 |
| JP7380251B2 (ja) * | 2020-01-27 | 2023-11-15 | 株式会社Ihi | 仮想マシンにおけるデータ改ざんの監視方法及び装置 |
| JP7613174B2 (ja) * | 2021-03-16 | 2025-01-15 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
| CN114201208B (zh) * | 2021-12-14 | 2025-02-11 | 深圳市海浦蒙特科技有限公司 | 一种存储单元数据处理方法、装置、设备及存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10254840A (ja) * | 1997-03-13 | 1998-09-25 | Fujitsu Ltd | モーバイルコード実行システム |
| JP2004184516A (ja) * | 2002-11-29 | 2004-07-02 | Canon Inc | デジタルデータ送信端末 |
| JP2006053787A (ja) * | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | プログラム実行装置及びプログラム実行方法 |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0281058B1 (de) | 1987-03-04 | 1993-02-03 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenaustauschsystem |
| US5475826A (en) | 1993-11-19 | 1995-12-12 | Fischer; Addison M. | Method for protecting a volatile file using a single hash |
| US6178509B1 (en) | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
| US6026293A (en) | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
| US7287166B1 (en) * | 1999-09-03 | 2007-10-23 | Purdue Research Foundation | Guards for application in software tamperproofing |
| FR2808947B1 (fr) | 2000-05-09 | 2002-10-18 | Bull Cp8 | Procede pour authentifier un objet portatif, objet portatif correspondant, et appareil pour mettre en oeuvre le procede |
| JP4067757B2 (ja) * | 2000-10-31 | 2008-03-26 | 株式会社東芝 | プログラム配布システム |
| CA2446584A1 (en) * | 2001-05-09 | 2002-11-14 | Ecd Systems, Inc. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
| US6880149B2 (en) | 2002-04-01 | 2005-04-12 | Pace Anti-Piracy | Method for runtime code integrity validation using code block checksums |
| JP2003302900A (ja) | 2002-04-12 | 2003-10-24 | Toyo Commun Equip Co Ltd | メッセージダイジェスト生成装置及び方法 |
| AU2003288758A1 (en) * | 2002-12-19 | 2004-07-14 | Ntt Communications Corporation | Data division method and device using exclusive or calculation |
| US20050015599A1 (en) | 2003-06-25 | 2005-01-20 | Nokia, Inc. | Two-phase hash value matching technique in message protection systems |
| US7103779B2 (en) | 2003-09-18 | 2006-09-05 | Apple Computer, Inc. | Method and apparatus for incremental code signing |
| JP4497450B2 (ja) | 2003-12-10 | 2010-07-07 | 独立行政法人科学技術振興機構 | プログラム認証システム |
| JP2006039206A (ja) | 2004-07-27 | 2006-02-09 | Canon Inc | 暗号化装置および復号化装置 |
| US7734926B2 (en) * | 2004-08-27 | 2010-06-08 | Microsoft Corporation | System and method for applying security to memory reads and writes |
| JP4540454B2 (ja) | 2004-11-26 | 2010-09-08 | 株式会社エヌ・ティ・ティ・データ | アプリケーション設定装置、icチップ及びプログラム |
| US7577848B2 (en) | 2005-01-18 | 2009-08-18 | Microsoft Corporation | Systems and methods for validating executable file integrity using partial image hashes |
| US7757275B2 (en) | 2005-06-15 | 2010-07-13 | Microsoft Corporation | One time password integration with Kerberos |
| JP4718340B2 (ja) * | 2006-02-02 | 2011-07-06 | 富士通株式会社 | ストレージシステム、制御方法及びプログラム |
-
2007
- 2007-11-07 US US12/377,040 patent/US8453206B2/en active Active
- 2007-11-07 WO PCT/JP2007/071638 patent/WO2008056700A1/ja not_active Ceased
- 2007-11-07 EP EP07831369A patent/EP2053533A4/en not_active Withdrawn
- 2007-11-07 JP JP2008543103A patent/JP5049288B2/ja active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10254840A (ja) * | 1997-03-13 | 1998-09-25 | Fujitsu Ltd | モーバイルコード実行システム |
| JP2004184516A (ja) * | 2002-11-29 | 2004-07-02 | Canon Inc | デジタルデータ送信端末 |
| JP2006053787A (ja) * | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | プログラム実行装置及びプログラム実行方法 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8563715B2 (en) | 2008-03-31 | 2013-10-22 | Zenyaku Kogyo Kabushikikaisha | Pyrimidine derivative having cell protecting effect and uses thereof |
| US11888990B2 (en) | 2020-03-09 | 2024-01-30 | Kabushiki Kaisha Toshiba | Information processing device controlling analysis of a program being executed based on a result of verification of an analysis program |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2053533A4 (en) | 2011-03-23 |
| US20100162352A1 (en) | 2010-06-24 |
| EP2053533A1 (en) | 2009-04-29 |
| WO2008056700A1 (en) | 2008-05-15 |
| JPWO2008056700A1 (ja) | 2010-02-25 |
| US8453206B2 (en) | 2013-05-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5049288B2 (ja) | 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置 | |
| US8006078B2 (en) | Central processing unit having branch instruction verification unit for secure program execution | |
| AU2020223632B2 (en) | System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats | |
| US8132257B2 (en) | Anti-virus method based on security chip | |
| CN103093150B (zh) | 一种基于可信芯片的动态完整性保护方法 | |
| US20190251275A1 (en) | Counter integrity tree for memory security | |
| EP1850261A1 (en) | Program conversion device and program execution device | |
| US8225077B2 (en) | Obfuscation device for generating a set of obfuscated instructions, processing device, method, program, and integrated circuit thereof | |
| US20130081144A1 (en) | Storage device and writing device | |
| WO2019025762A1 (en) | COUNTER INTEGRITY TREE FOR MEMORY SECURITY | |
| US9727755B2 (en) | Processing information | |
| CN118886040A (zh) | 一种数据安全存储方法、系统和存储卡 | |
| CN101276389A (zh) | 单个物理可信平台模块内的多个逻辑可信平台模块的分离 | |
| US7962952B2 (en) | Information processing apparatus that executes program and program control method for executing program | |
| CN118886018A (zh) | 计算机的启动方法、装置、电子设备及存储介质 | |
| US11531785B2 (en) | PUF-based data integrity | |
| US9213864B2 (en) | Data processing apparatus and validity verification method | |
| WO2021015204A1 (ja) | アクセス制御装置、アクセス制御方法及びプログラム | |
| CA3125101A1 (en) | System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats | |
| CN111291389B (zh) | 一种计算机核心程序全生命周期的保护方法及系统 | |
| CN103840935B (zh) | 开放系统之函式库的加密及解密方法 | |
| CN111737704B (zh) | 用于数据证明的设备和方法 | |
| JP2005182509A (ja) | 計算機システム並びにデータ改竄検出方法 | |
| CN121209949B (zh) | 应用加固方法、装置、设备及介质 | |
| CN121234421B (zh) | 基于可信计算模块的移动固态硬盘数据加密存储方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100906 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120327 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120517 |
|
| 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: 20120626 |
|
| 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: 20120720 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5049288 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |