JP2005135265A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2005135265A
JP2005135265A JP2003372374A JP2003372374A JP2005135265A JP 2005135265 A JP2005135265 A JP 2005135265A JP 2003372374 A JP2003372374 A JP 2003372374A JP 2003372374 A JP2003372374 A JP 2003372374A JP 2005135265 A JP2005135265 A JP 2005135265A
Authority
JP
Japan
Prior art keywords
program
storage means
secure module
execution
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003372374A
Other languages
English (en)
Inventor
Eiji Hasegawa
英司 長谷川
Fumio Honda
文雄 本田
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 JP2003372374A priority Critical patent/JP2005135265A/ja
Priority to US10/784,184 priority patent/US7805758B2/en
Publication of JP2005135265A publication Critical patent/JP2005135265A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 プログラムを実行する場合に、悪意ある第三者による逆解析を困難にし、実行するロードモジュールの安全性を高めることができる情報処理装置を提供する。
【解決手段】 第1の記憶手段13と、該第1の記憶手段13に書き込まれたプログラムを実行するCPUと、セキュアモジュール20と、暗号化されたプログラムを記憶する第2の記憶手段とを有する情報処理装置において、第2の記憶手段は、複数に分割されたプログラムを記憶してあり、CPUは、第2の記憶手段に記憶されたプログラムをセキュアモジュール20へ転送すべくなしてあり、セキュアモジュール20は、第2の記憶手段に記憶されたプログラムを受け取る手段と、受け取ったプログラムを実行可能な状態へ復帰させる手段と、CPUが実行する順序で、実行可能な状態へ復帰されたプログラムを第1の記憶手段13に書き込む手段と、CPUにより実行終了後に第1の記憶手段13から削除する手段とを備える。
【選択図】 図5

Description

本発明は、プログラムを実行する場合に、悪意の第三者による解析を困難にする情報処理装置に関する。特に、情報処理装置に着脱可能に実装され、プログラムを実行する際のセキュリティに関する処理を実行するセキュアモジュールを用いた情報処理装置に関する。
近年、ブロードバンドインターネットに代表される常時接続環境が普及し、悪意ある第三者による不正なプログラムの実行、更新等に対する安全性を確保する技術が着目されている。特に、パーソナルコンピュータ(Personal Computer:以下「PC」という。)はオープンなアーキテクチャを有し、PC上で実行されるプログラムは、オペレーティングシステム(以下、OSという。)又はプロセッサに準拠した形式のプログラムコードとして記述される。したがって、基本的には誰でもPC上のメインメモリの内容を確認し、理解することができるため、安全性を確保することは困難であるという問題点があった。
斯かる問題点を解決すべく、従来は、実行されるプログラムを難読化又はセキュア化する技術を使用し、例えばプログラムのロジックを複雑にすることにより逆解析を困難にする、プログラムを暗号化する、プログラムをメモリに動的に書き込みながら実行する(特許文献1参照)等の対策が取られている。
また、特許文献2には、オープンなアーキテクチャを有する情報処理装置に、外部モジュールとして、内部に解析又は参照することが不可能な領域を有するセキュアモジュールを組み合わせ、該セキュアモジュールによりプログラムをメモリに書き込む技術が開示されている。斯かる技術を用いる場合、プログラムが記憶媒体に記憶されている間は、外部から解析又は参照することが不可能な情報を使用してプログラムを暗号化しており、第三者による内容の解析を防止している。また、プログラムを書き込んだメモリをプロセッサと独立動作するセキュアモジュールにより監視することにより、実行するプログラムの安全性をより高めている。
特開平11−232103号公報 特開2003−198527号公報
しかし、実行されるプログラムを難読化又はセキュア化する技術を使用する方法では、いかにプログラムを難読化又はセキュア化しようと、最終的にはオープンなアーキテクチャ上で動作するプログラムとして記述することには変わりはない。したがって、メモリに書き込まれたロードモジュールを逆解析し、周知であるオープンなアーキテクチャに沿って命令、データ等を調査することで、実行されるプログラムの内容を解析することは可能であり、第三者による不正な攻撃を防ぐことはできない。
また、セキュアモジュールを用いてプログラムをメモリに書き込んで実行する方法を使用する場合であっても、プロセッサが実行可能な形式でプログラムがメモリに書き込まれることには変わりはなく、メモリの内容をイメージコピーし、イメージコピーに基づいてメモリの内容を解析することで、実行されるプログラムの内容を解析することは可能である。
本発明は斯かる事情に鑑みてなされたものであり、プログラムを実行する場合に、悪意ある第三者による逆解析を困難にし、実行するプログラムの安全性を高めることができる情報処理装置を提供することを目的とする。
上記目的を達成するために第1発明に係る情報処理装置は、第1の記憶手段と、該第1の記憶手段に書き込まれたプログラムを実行するCPUと、セキュアモジュールと、暗号化されたプログラムを記憶する第2の記憶手段とを有する情報処理装置において、前記第2の記憶手段は、複数に分割されたプログラムを記憶してあり、前記CPUは、前記第2の記憶手段に記憶されたプログラムを前記セキュアモジュールへ転送すべくなしてあり、前記セキュアモジュールは、前記第2の記憶手段に記憶されたプログラムを受け取る手段と、受け取ったプログラムを実行可能な状態へ復帰させる手段と、前記CPUが実行する順序で、実行可能な状態へ復帰されたプログラムを前記第1の記憶手段に書き込む手段と、前記CPUにより実行されたプログラムを、実行終了後に前記第1の記憶手段から削除する手段とを備えることを特徴とする。
第1発明に係る情報処理装置では、暗号化されたプログラムを複数に分割して記憶しておき、分割されたプログラム単位で実行可能な状態へ復帰させ、実行する順序で第1の記憶手段(例えばメモリ)へ書き込む。実行が完了したプログラムは、第1の記憶手段上から削除する。これにより、プログラム実行時にプログラムのすべての内容が第1の記憶手段上に書き込まれていることがなく、実行時には部分的なプログラムのみが第1の記憶手段へ書き込まれていることから、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、プログラム全体の内容を取得することができないことからプログラム内容を解析することができず、実行するプログラムの安全性を確保することが可能となる。
また、第2発明に係る情報処理装置は、第1発明において、前記セキュアモジュールは、分割されたプログラムに対する実行要求信号を受信したか否かを判断する手段を備え、該手段が実行要求信号を受信したと判断した場合、受け取ったプログラムを実行可能な状態へ復帰させるものであることを特徴とする。
第2発明に係る情報処理装置では、分割されたプログラムに対する実行要求信号を受信してから、要求対象である分割されたプログラムを実行可能な状態へ復帰させて第1の記憶手段(例えばメモリ)へ書き込む。これにより、実行要求が出された時点で初めて第1の記憶手段へプログラムが記憶されることから、実行要求が出されるまではプログラムの一部は第1の記憶手段へ書き込まれておらず、外部から第1の記憶手段の内容を参照した場合であってもプログラム全体の内容を把握することは困難であり、実行するプログラムの安全性をより高めることが可能となる。
また、第3発明に係る情報処理装置は、第1発明又は第2発明において、前記セキュアモジュールは、分割されたプログラムについて、前記第1の記憶手段にプログラム実行前に常駐させるプログラムか、実行されるまで前記メモリに書き込まれないプログラムかを識別する情報を記憶する手段を備えることを特徴とする。
第3発明に係る情報処理装置では、分割されたプログラムの重要性、秘匿性等に基づいて、第1の記憶手段(例えばメモリ)に常時書き込んでおいてもよいプログラムであるか否かを識別する情報を付与する。これにより、重要性、秘匿性等の低いプログラムは第1の記憶手段上に常時書き込んでおき、重要性、秘匿性等の高いプログラムは実行時のみ第1の記憶手段に書き込むことで、必要なプログラムのみ実行の安全性を高めることができ、安全性を確保するための処理によるプログラムのオーバヘッドを低減することが可能となる。
また、第4発明に係る情報処理装置は、第1の記憶手段と、該第1の記憶手段に書き込まれたプログラムを実行するCPUと、セキュアモジュールと、暗号化されたプログラムを記憶する第2の記憶手段とを有する情報処理装置において、前記CPUは、前記第2の記憶手段に記憶されたプログラムを前記セキュアモジュールへ転送すべくなしてあり、前記セキュアモジュールは、前記第2の記憶手段に記憶されたプログラムを受け取る手段と、受け取ったプログラムを複数に分割する手段と、分割されたプログラムを実行可能な状態へ復帰させる手段と、前記CPUが実行する順序で、実行可能な状態へ復帰されたプログラムを前記第1の記憶手段に書き込む手段と、前記CPUにより実行されたプログラムを、実行終了後に前記第1の記憶手段から削除する手段とを備えることを特徴とする。
第4発明に係る情報処理装置では、セキュアモジュールが、記憶されている暗号化されたプログラムを複数に分割し、分割したプログラム単位で実行可能な状態へ復帰させ、実行する順序で第1の記憶手段(例えばメモリ)へ書き込む。実行が完了したプログラムは、第1の記憶手段上から削除する。これにより、プログラム実行時にプログラムのすべての内容が第1の記憶手段上に書き込まれていることがなく、実行時には部分的なプログラムのみが第1の記憶手段へ書き込まれていることから、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、プログラム全体の内容を取得することができないことからプログラム内容を解析することができず、実行するプログラムの安全性を確保することが可能となる。
また、第5発明に係る情報処理装置は、第4発明において、前記第2の記憶手段は、記憶されたプログラムに対応付けて、プログラムの分割に関する情報を記憶してあり、前記セキュアモジュールは、前記プログラムの分割に関する情報に基づいて受け取ったプログラムを複数に分割すべくなしてあることを特徴とする。
第5発明に係る情報処理装置では、セキュアモジュールは、受け取る分割されたプログラムに対応付けて記憶されているプログラムの分割に関する情報、例えば分割単位に基づいてプログラムを分割し、分割したプログラム単位で実行可能な状態へ復帰させる。これにより、記憶されているプログラムの分割に関する情報に基づいて適正にプログラムを分割することができ、例えば分割単位が不適切であることにより、多くの分割されたプログラムが第1の記憶手段に書き込まれる状態が生じることを回避し、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、プログラム内容の解析をより困難にすることができ、実行するプログラムの安全性を確保することが可能となる。
また、第6発明に係る情報処理装置は、第1の記憶手段と、該第1の記憶手段に書き込まれたプログラムを実行するCPUと、セキュアモジュールと、暗号化されたプログラムを記憶する第2の記憶手段とを有する情報処理装置において、前記第1の記憶手段は、複数に分割されたプログラムを実行前に常駐させてあり、前記第2の記憶手段は、分割されたプログラムを実行プログラムとして呼び出す呼び出しプログラムを記憶してあり、前記第2の記憶手段に記憶された呼び出しプログラムを前記セキュアモジュールへ転送すべくなしてあり、前記セキュアモジュールは、前記第2の記憶手段に記憶された呼び出しプログラムを受け取る手段と、受け取った呼び出しプログラムを実行可能な状態へ復帰させる手段と、前記CPUが分割されたプログラムを実行する順序で、対応する実行可能な状態へ復帰された呼び出しプログラムを前記第1の記憶手段に書き込む手段と、前記CPUにより実行された呼び出しプログラムを、実行終了後に前記第1の記憶手段から削除する手段とを備えることを特徴とする。
第6発明に係る情報処理装置では、暗号化されたプログラムを複数に分割し、分割されたプログラム単位で実行可能な状態へ復帰させ、すべての分割されたプログラムを第1の記憶手段(例えばメモリ)へ書き込んでおく。そして、プログラム間のリンク手段でもある分割されたプログラムを実行プログラムとして呼び出す呼び出しプログラムを暗号化し、分割されたプログラムを実行する順序で呼び出しプログラムを実行可能な状態へ復帰させ、第1の記憶手段へ書き込む。実行が完了した呼び出しプログラムは、第1の記憶手段上から削除する。これにより、プログラム実行時に分割されたプログラムは第1の記憶手段上に書き込まれているが、分割されたプログラム間の関係が不明であることから、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、分割されたプログラムの実行順序、実行タイミング等を解析することが困難であり、実行するプログラムの安全性を確保することが可能となる。
また、第7発明に係る情報処理装置は、第6発明において、前記第1の記憶手段は、分割されたプログラム間の呼び出し関係を指定する情報であるリンク情報をさらに記憶してあり、前記セキュアモジュールは、前記リンク情報に基づいて分割されたプログラムを実行する順序を検出すべくなしてあることを特徴とする。
第7発明に係る情報処理装置では、分割されたプログラム間の呼び出し関係を指定する情報であるリンク情報に基づいて分割されたプログラムを実行する順序を特定することができ、プログラムの実行順序に従って対応する呼び出しプログラムを実行可能な状態へ復帰させ、第1の記憶手段に書き込む。これにより、一の分割されたプログラムが他の分割されたプログラムを呼び出す場合にのみ対応する呼び出しプログラムが実行可能な状態へ復帰され、第1の記憶手段に書き込まれるので、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、第1の記憶手段に書き込まれている呼び出しプログラムに関係のない分割されたプログラムの実行順序、実行タイミング等を解析することは困難であり、実行するプログラム全体の安全性を確保することが可能となる。
第1発明によれば、プログラム実行時にプログラムのすべての内容が第1の記憶手段上に書き込まれていることがなく、実行時には部分的なプログラムのみが第1の記憶手段へ書き込まれていることから、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、プログラム全体の内容を取得することができないことからプログラム内容を解析することができず、実行するプログラムの安全性を確保することが可能となる。
また、第2発明によれば、実行要求が出された時点で初めて第1の記憶手段へプログラムが記憶されることから、実行要求が出されるまではプログラムの一部は第1の記憶手段へ書き込まれておらず、外部から第1の記憶手段の内容を参照した場合であってもプログラム全体の内容を把握することは困難であり、実行するプログラムの安全性をより高めることが可能となる。
また、第3発明によれば、重要性、秘匿性等の低いプログラムは第1の記憶手段上に常時書き込んでおき、重要性、秘匿性等の高いプログラムは実行時のみ第1の記憶手段に書き込むことで、必要なプログラムのみ実行の安全性を高めることができ、安全性を確保するための処理によるプログラムのオーバヘッドを低減することが可能となる。
また、第4発明によれば、プログラム実行時にプログラムのすべての内容が第1の記憶手段上に書き込まれていることがなく、実行時には部分的なプログラムのみが第1の記憶手段へ書き込まれていることから、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、プログラム全体の内容を取得することができないことからプログラム内容を解析することができず、実行するプログラムの安全性を確保することが可能となる。
また、第5発明によれば、記憶されているプログラムの分割に関する情報に基づいて適正にプログラムを分割することができ、例えば分割単位が不適切であることにより、多くの分割されたプログラムが第1の記憶手段に書き込まれる状態が生じることを回避し、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、プログラム内容の解析をより困難にすることができ、実行するプログラムの安全性を確保することが可能となる。
また、第6発明によれば、プログラム実行時に分割されたプログラムは第1の記憶手段上に書き込まれているが、分割されたプログラム間の関係が不明であることから、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、分割されたプログラムの実行順序、実行タイミング等を解析することが困難であり、実行するプログラムの安全性を確保することが可能となる。
また、第7発明によれば、一の分割されたプログラムが他の分割されたプログラムを呼び出す場合にのみ対応する呼び出しプログラムが実行可能な状態へ復帰され、第1の記憶手段に書き込まれるので、悪意ある第三者が第1の記憶手段の内容のイメージコピーを不正に取得した場合であっても、第1の記憶手段に書き込まれている呼び出しプログラムに関係のない分割されたプログラムの実行順序、実行タイミング等を解析することは困難であり、実行するプログラム全体の安全性を確保することが可能となる。
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
(実施の形態1)
以下、本発明の実施の形態1に係る情報処理装置について図面に基づいて具体的に説明する。本実施の形態1では、情報処理装置として一つのコンピュータ、例えばPCを用いて具現化する場合について説明する。もちろん、実行されるプログラムで使用されるデータは、通信手段を介して接続された他のPC、又はDVD等の可搬型記録媒体に記録されていてもよく、通信手段についても特に限定されるものではない。
図1は、本発明の実施の形態1に係る情報処理装置の概略構成図である。図1に示すように、情報処理装置1は、少なくとも、CPU(中央演算装置)11、ROM12、RAM(第1の記憶手段)13、記憶手段(第2の記憶手段)14、外部の通信手段と接続する通信インタフェース15、マウス、キーボード等の入力手段と接続する入力インタフェース16、LCD、モニタ、スピーカ等の出力手段と接続する出力インタフェース17、及びセキュアモジュール20と接続するセキュアインタフェース18で構成される。
記憶手段14は、ハードディスクに代表される固定型記録媒体、又はDVD、CD−ROM等の可搬型記録媒体であり、実行するプログラム、実行するプログラムで使用されるデータ等を記録する第2の記憶手段である。なお、第2の記憶手段としては、記憶手段14に限定されるものではなく、例えば実行するプログラム、実行するプログラムで使用されるデータ等を記憶するROM12であってもよい。
情報処理装置1は、取り外し可能なセキュアモジュール20を着脱可能なセキュアインタフェース18を有する。セキュアインタフェース18は、例えばPCIバスを介してセキュアモジュール20を接続する。セキュアモジュール20は、例えばPCカードによって構成され、DMA(Direct Memory Access)により、CPU11と独立してRAM13へアクセスすることが可能である。セキュアモジュール20は、TRM(Tamper Resistant Module)構造を有しており、外部から第三者による内容の閲覧を防止することができるとともに、内部データの改竄を防止することができるようになっている。
図2は、セキュアモジュール20の構成の例示図である。図2に示すように、セキュアモジュール20は、プロセッサ21、メモリ22、情報処理装置1のセキュアインタフェース18を介して通信する通信手段23を含むLSIを備える。メモリ22は、外部から参照できない不揮発性のフラッシュメモリ(EEPROM)であり、プログラムの難読化情報、暗号化鍵、復号化鍵等の第三者に対して秘匿する必要がある情報が記録されている。
情報処理装置1は、セキュアモジュール20を用いて、プログラムをRAM13に書き込んで実行する。記憶手段14は、セキュアモジュール20のメモリ22に記憶している暗号化情報、例えば暗号化鍵によって暗号化されたプログラムを記憶している。また、セキュアモジュール20へ暗号化されたプログラムを転送することで、メモリ22に記憶している暗号化鍵を用いて該プログラムを復号化することができる。なお、暗号化鍵単独で暗号化/復号化を行うものに限定されるものではなく、暗号化鍵と復号化鍵とを独立して記憶しているものであってもよい。
記憶手段14に記憶されているプログラムを実行する場合、まず記憶手段14に記憶されている暗号化されたプログラムをセキュアモジュール20へ転送する。セキュアモジュール20は、転送されたプログラムをメモリ22に記憶している暗号化鍵を使用して復号するとともに、プログラムの命令コードを解析して、複数のプログラム部品へ分割する。図3は、プログラム分割の例示図である。図3に示すように、分割されたプログラム部品は、プログラム40の一部を構成するプログラムコードである。プログラム40が動作するときには、例えばプログラム部品41〜43が互いに他のプログラム部品41〜43を呼び出す、又は他のプログラム部品41〜43へジャンプしながら、1つのプログラム40として動作する。プログラム部品は、最小単位としてプロセッサの命令1つから構成される。
なお、プログラムの分割については、本実施の形態1のように、セキュアモジュール20がプログラムを解析してプログラム部品に分割してもよいが、斯かる方法に限定されるものではなく、事前に、プログラム分割に関する情報、例えば分割単位に関する情報を付加して該プログラムを記憶手段14に記憶しておき、セキュアモジュール20での復号時に、斯かる情報に基づいて分割する方法であってもよい。プログラム分割に関する情報に基づいてプログラムを分割することで、プログラムを適切に分割することができ、例えば分割単位が不適切であることにより、多くの分割されたプログラムが実行可能な状態でRAM13に書き込まれている状態が生じることを回避し、悪意ある第三者がRAM13の内容のイメージコピーを不正に取得した場合であっても、プログラム内容の解析をより困難にすることができ、実行するプログラムの安全性を確保することが可能となる。
また、記憶手段14に暗号化されたプログラムとして記憶する時点で、複数のプログラム部品として記憶するものであってもよい。この場合、セキュアモジュール20は、転送されたプログラム部品を、メモリ22に記憶している暗号化鍵を使用して復号する。
次に、セキュアモジュール20は、最初に動作する部分であるプログラム部品、例えばプログラム部品41をRAM13へ書き込む。RAM13へ書き込まれた後、CPU11は、書き込まれたプログラム部品41を実行する。プログラム部品41を実行し、他のプログラム部品の実行を要求する命令コードが存在する場合、該命令コードを実行するタイミングで、セキュアモジュール20は要求される他のプログラム部品、例えばプログラム部品42、43をRAM13へ書き込む。CPU11は、RAM13への書き込み完了通知を受け取った後、書き込まれたプログラム部品42、43を順次実行する。
書き込まれたプログラム部品の実行が完了した場合、RAM13へ書き込まれたプログラム部品は、CPU11がRAM13から消去する。したがって、プログラム全体がRAM13へ書き込まれていることがなく、プログラムを構成するプログラム部品の一部のみがRAM13へ書き込まれながら、プログラムが実行される。
このように、プログラム全体をRAM13へ書き込まないことから、悪意ある第三者によりRAM13のイメージコピーを不正に取得された場合であっても、イメージコピーには、プログラム全体のうちの一部のプログラム部品しか書き込まれておらず、逆解析によりプログラムの全容を把握することが困難であり、実行するプログラムの安全性を確保することが可能となる。
ここで、セキュアモジュール20は、CPU11と独立して動作する。したがって、RAM13へ書き込まれたプログラムが、他のプログラム部品を必要とするタイミングをセキュアモジュール20へ通知する必要がある。CPU11が、セキュアモジュール20へ他のプログラム部品を必要とするタイミングを通知する手段としては種々の方法が用いられる。例えば、実行するプログラムが、セキュアモジュール20との間で実行タイミングの同期を取ることが可能な構造を有するプログラムである場合、該プログラムが要求するプログラム部品が実行される直前に、セキュアモジュール20により対応するプログラム部品をRAM13へ書き込む方法を用いる。
図4は、実行するプログラムが要求するプログラム部品が実行される直前に、セキュアモジュール20により対応するプログラム部品をRAM13へ書き込む方法の説明図である。図4(a)に示すように、プログラムの中に条件分岐命令を設定する。該条件分岐命令の条件は一定値とし、必ず一方の経路を選択するようにしておく。他方の経路には無効なプログラム部品を配置する。無効なプログラム部品は、例えばnop列、0列等、動作しないプログラムコードである。なお、無効なプログラム部品が配置された領域に、要求されたプログラム部品の書き込み可能領域を確保しておく。
セキュアモジュール20は、RAM13へ書き込まれていないプログラム部品の実行が必要になったタイミング、すなわちプログラム部品の実行要求命令がプログラムで実行された時点で、図4(b)に示すように、RAM13の無効なプログラム部品が配置された領域のプログラム部品の書き込み可能領域に、要求されたプログラム部品を書き込む。なお、RAM13へ該プログラム部品が書き込まれた後、図4(c)に示すように該プログラム部品を要求したプログラムの条件分岐命令の条件を変更し、他方の経路を選択するようにして、CPU11が、書き込まれたプログラム部品を実行する。
実行されるプログラムが、セキュアモジュール20との間で実行タイミングの同期を取ることが可能な構造を有さないプログラムである場合、セキュアモジュール20は、プログラムをRAM13へ書き込む時点で、プログラム部品の実行を要求する実行要求プログラムを該プログラムへ挿入する。セキュアモジュール20は、挿入した実行要求プログラムの実行に応じて、対応するプログラム部品をRAM13へ書き込む。
プログラムのうち、どのプログラム部品を常にRAM13へ書き込み、どのプログラム部品をいつRAM13へ書き込むべきかについては、事前にセキュアモジュール20に書込情報として記憶しておく。これにより、重要な秘密情報を扱うプログラム部品がRAM13に常駐することを回避することができ、より安全性を高めることができる。書込情報としては、「常にRAM13へ書き込み」、「実行時にRAM13へ書き込み」、「セキュアモジュールが選択」の3種類がある。
図5は、プログラム部品を動的にRAM13へ書き込む場合の説明図である。図5(a)に示すように、プログラムの実行開始時には、プログラム部品41をRAM13へ書き込む。プログラム部品42はRAM13へ書き込まず、セキュアモジュール20に対してプログラム部品42の実行要求を行う実行要求プログラム50をRAM13へ書き込む。実行要求プログラム50は、セキュアモジュール20で生成してもよいし、あらかじめセキュアモジュール20に記録しておいてもよい。プログラム部品41は、プログラム部品42を呼び出すプログラムではなく、実行要求プログラム50を呼び出す。
プログラムが実行されると、プログラム部品41は、最後に実行要求プログラム50を呼び出す。実行要求プログラム50が実行されると、図5(b)に示すように、セキュアモジュール20は、要求されたプログラム部品42をRAM13へ書き込む。セキュアモジュール20によりプログラム部品42がRAM13へ書き込まれた後、CPU11がプログラム部品42を実行することにより、プログラム部品42をプログラム部品41から直接呼び出した場合と同様に実行することができる。
セキュアモジュール20は、プログラム部品42のRAM13への書き込みの完了を検知するため、実行要求プログラム50の末尾に、例外処理を生じる命令を設定しておく。CPU11が、実行要求プログラム50を実行し、末尾に設定された例外処理を生じる命令を実行した場合、CPU11は、プログラムの実行を一旦停止させ、セキュアモジュール20に対してRAM13への書き込み完了通知を送信する。これにより、セキュアモジュール20は、割り込み命令、アクセス違反等の例外処理を生じる命令を実行要求プログラム50に付加し、実行要求プログラム50を実行するだけであることから、例えばプログラムの待機を行うプログラムを直接呼び出す場合のように、待機処理を行っているプログラムを特定することが困難になる。したがって、第三者にとってはより解析しにくい形でプログラム部品のRAM13への書き込みの完了を待つことが可能となる。
以上のように本実施の形態1によれば、セキュアモジュール20がプログラムを複数のプログラム部品に分割し、分割されたプログラム部品単位でRAM13へ書き込み、実行することから、悪意ある第三者にRAM13のイメージコピーを取得された場合であっても、プログラムの全体像を把握することが困難であり、プログラムの安全性を確保することが可能となる。
(実施の形態2)
実施の形態2に係る情報処理装置1は、実施の形態1と同様の構成であるが、実施の形態1のようにプログラム部品自体をセキュアモジュール20から動的にRAM13へ書き込むのではなく、プログラム部品はRAM13へ常時書き込んでおき、各プログラム部品中の他のプログラム部品の呼び出しアドレスだけを更新する。図6は、本実施の形態2に係る情報処理装置でのプログラム部品実行方法の説明図である。
図6(a)に示すように、最初のプログラムをRAM13へ書き込んだ時点では、プログラム部品41からプログラム部品42、43を呼び出す部分には無効なアドレスを記録しておく。したがって、イメージコピーを取得した第三者が解析しても、プログラム部品41がどのプログラム部品をプログラム実行中に呼び出すのか不明となる。そして、図6(b)に示すように、プログラム部品41からプログラム部品42、43を呼び出すタイミングで、セキュアモジュール20は、プログラム部品41の中の呼び出しアドレスを、次に実行するプログラム部品が存在するアドレスへ書き換える。この結果、プログラム部品41からプログラム部品42が呼び出され、プログラム部品42を実行することができる。
以上のように本実施の形態2によれば、実施の形態1のようにプログラム部品自体をRAM13へ書き込むのではなく、呼び出しアドレスの書き換えのみを行えばよいことから、プログラム部品をRAM13へ書き込む時間に比べて短時間でアドレス書き換えを行うことができ、全体の処理時間を短縮することが可能となる。
なお、実施の形態1及び2を組み合わせることにより、呼び出し元プログラム部品の呼び出し先アドレスの書き換えと、プログラム部品のRAM13への書き込みを同時に行い、プログラム部品が動的にRAM13へ書き込まれ、かつRAM13へ書き込まれるごとに呼び出しアドレスが変化するようにしてもよい。これにより、より実行するプログラムの安全性を高めることが可能となる。
(実施の形態3)
以下、実行するプログラムを事前に分割してRAM13へ書き込む場合の実施例について説明する。図7は、本発明の実施の形態3に係る情報処理装置1で実行するプログラムのプログラム部品への分割の説明図である。図7に示すように、実行するプログラム40を、あらかじめプログラム部品41〜43に分割しておき、分割されたプログラム部品41〜43に対して、それぞれ書込情報410〜430、特殊コード情報411〜431、部品リンク情報412〜432からなる付加情報を記憶する。書込情報410〜430は、プログラム部品41〜43をRAM13へどのタイミングで書き込むのかを示す情報である。特殊コード情報411〜431は、プログラム部品41〜43が特殊コードであるか否か、及びどのような特殊コードであるのかを示す情報である。部品リンク情報412〜432は、プログラム部品同士がどのように呼び出されるかを記述する情報である。
図8は、書込情報410、特殊コード情報411、及び部品リンク情報412の例示図である。プログラム部品41は、CPU11が実行可能なプログラムコードである。書込情報410は、「常にメモリに書き込む」という情報を記憶している。特殊コード情報411は、「オフセット50hのアドレスから秘密データを渡す特殊コードである」という情報を記憶している。部品リンク情報412は、「オフセット100hのアドレスからプログラム部品42のオフセットアドレス10hを呼び出す」、及び「アドレス320hからプログラム部品43のオフセットアドレス30hを呼び出す」という情報を記憶している。
なお、部品リンク情報は複数の情報を含んでもよい。また、特殊コード情報も複数の特殊コード情報を含んでもよい。これらプログラム部品に関する情報は、セキュアモジュール20の外部から参照することができないメモリ22に記憶されている暗号化鍵で暗号化され、セキュア化プログラムデータ30として記憶手段14に記憶される。
図9は、プログラムの実行開始時の動作の説明図である。プログラムを実行する場合、まず基本プログラム60が動作する。基本プログラム60は、記憶手段14からセキュア化プログラムデータ30を読み出す。次に、基本プログラム60は、プログラム40が動作するための実行領域100をRAM13に確保する。そしてセキュア化プログラムデータ30と、プログラム実行用に確保した実行領域100のアドレスをセキュアモジュール20に渡す。
セキュアモジュール20は、セキュア化プログラムデータ30を外部から参照することができないメモリ22に記憶されている暗号化鍵を用いて復号する。そして、実行すべきプログラム部品41をRAM13の実行領域100へ書き込む。CPU11は、基本プログラム60にて実行領域100へ書き込まれたプログラム部品41の開始アドレスが呼び出された場合、プログラム部品41の実行を開始する。
図10は、プログラムの実行開始時のセキュアモジュール20での処理のフローチャートである。図10に示すように、セキュアモジュール20は、セキュア化プログラムデータ30を外部から参照することができないメモリ22に記憶されている暗号鍵を用いて復号する(ステップS1001)。セキュア化プログラムデータ30を復号した後、各プログラム部品に付加されている書込情報の内容を確認する(ステップS1002)。書込情報にRAM13へ書き込む旨が記憶されている場合(ステップS1003:YES)、記憶されているプログラム部品をRAM13の実行領域100へ書き込む(ステップS1004)。
次に、セキュアモジュール20は、プログラム部品の特殊コード情報の有無を確認する(ステップS1005)。特殊コード情報が有る場合(ステップS1006:YES)、特殊コードに従った呼び出し処理を実行する(ステップS1007)。特殊コード呼び出し処理の詳細については後述する。すべてのプログラム部品について上述した処理を繰り返す(ステップS1008)。
すべてのプログラム部品につき上述した処理が完了した場合(ステップS1008:YES)、プログラム部品間のリンク処理を実行する(ステップS1009)。プログラム部品間のリンク処理の詳細についても後述する。リンク処理が完了した時点でプログラムの実行準備が完了する。プログラムの実行準備が完了した旨は、割り込み処理、状態レジスタ等により情報処理装置(PC)1に通知する。
セキュアモジュール20が行う特殊コード呼び出し処理は、セキュアモジュール20が動作タイミングを制御する部分のプログラムコード呼び出し処理である。図11及び図12は、セキュアモジュール20が行う特殊コード呼び出し処理の説明図である。図11は、特殊コード情報、リンク情報等の例示図である。図11の例では、プログラム部品41には、「オフセット50hのアドレスからプログラム部品45を呼び出す」という部品リンク情報412が付加されている。また、プログラム部品45は、「コンテンツ鍵変更時に実行」という特殊コード情報451を含んでいる。
セキュアモジュール20は、特殊コード呼び出し部80をRAM13へ書き込み、特殊コード呼び出し部80をプログラム部品41から呼び出すようリンクする。特殊コード呼び出し部80は、セキュアモジュール20で自動生成してもよいし、プログラム部品としてセキュア化プログラムデータ30に含めておいてもよい。
RAM13へ書き込んだ特殊コード呼び出し部80は、条件分岐から参照されるデータ、条件分岐コード及び特殊コードを呼び出す部分からなる。図12(a)には、特殊コード呼び出し部80がアドレス13845fa0hに書き込まれる例が示されている。その先頭には条件分岐で参照されるデータが埋め込まれている。
通常、先頭に埋め込まれる条件分岐で参照される値は0である。特殊コードの実行条件を具備しない間は0のままである。図12(a)の条件分岐では、アドレス13845fa0hに記憶された値が0である場合、即座にリターンするようにしておく。これにより、プログラム部品41から特殊コード呼び出し部80が呼び出された場合であっても、特殊コードの実行条件を具備しない場合は即座にリターンすることができる。
条件分岐で参照される値が0でない場合は、続くプログラムコードが実行される。続くプログラムコードは、分岐条件で参照される値に0を設定するコードと、プログラムの実行領域100を呼び出すコードから構成される。プログラム実行開始時の初期書き込み時には、プログラムの実行領域100には無効なプログラムデータが書き込まれている。
プログラムの実行中に、特殊コードの実行条件を具備した場合、セキュアモジュール20は、実行領域100に、実行条件を具備した特殊コードを書き込む。図12(b)の例では、特殊コードは「コンテンツ鍵変更時に実行」されるというコードであることから、セキュアモジュール20は、コンテンツ鍵の変更直前に実行領域100へプログラム部品45を書き込む。プログラム部品45を書き込んだ後、アドレス13845fa0hの条件分岐から参照されるデータを書き換える。書き換えることにより、特殊コードの実行条件を具備した状態となる。特殊コードの実行条件を具備した状態で、特殊コード呼び出し部80が実行されると、即座にリターンすることなく、条件分岐で参照される値に0を設定するコードと、プログラム部品45を呼び出すコードが実行される。
次にセキュアモジュール20が実行するプログラムリンク処理について述べる。プログラムリンク処理は、任意のプログラム部品を動的に書き込む処理である。図13及び図14は、プログラム部品の動的書き込み処理及びリンク処理についての説明図である。図13は、プログラム部品41に関連する書き込み処理及びリンク処理での書込情報、リンク情報等の例示図である。
図13の例では、プログラム部品41に対応する部品リンク情報412から、プログラム部品41はプログラム部品42とプログラム部品43の呼び出しを含んでいることがわかる。それぞれの書込情報420、430を参照すると、プログラム部品42は実行時までRAM13に書き込まず、プログラム部品43は開始時にRAM13に書き込まれるように記述されている。プログラム部品43は常にRAM13に書き込まれるコードであることから、プログラム部品41の実行開始時に、プログラム部品41からプログラム部品43の呼び出しは実行される。
図14(a)では、プログラム部品43は、RAM13のアドレス13900000hの領域に書き込まれている。そこで、プログラム部品41のオフセット320hにあるプログラム部品43の呼び出しコマンドには、プログラム部品43のアドレスを設定する。本実施例では、プログラム部品43のオフセット30hを呼び出しているので、プログラム部品41には、13900030hを呼び出すよう呼び出しコマンドの呼び出し先アドレスを設定しておく。
一方、プログラム部品42は、プログラム部品41の実行開始時にRAM13に書き込まれていないので、プログラム部品42の実行依頼コードをRAM13へ書き込んでおき、プログラム部品41からは実行依頼コードを呼び出すようにしておく。実行依頼コードは、例えばセキュアモジュール20のレジスタアドレスへの書き込みプログラムにより実現される。
実行依頼コードの末尾には、例外処理を発生するコードと、キャッシュフラッシュ命令と、プログラム部品42本体の呼び出しコードとが含まれる。本実施例では例外処理を発生するコードとしてint 3命令を使用しているが、これ以外の例外処理、例えばメモリアクセス違反を起こすようなコードを使用してもよい。また、プログラム部品42の書き込まれるアドレスが一定ではないようにしており、呼び出しアドレスには無効な値を記憶している。さらに、キャッシュフラッシュ命令を用いてキャッシュを一旦クリアし、セキュアモジュール20が設定した呼び出しアドレスが確実に呼び出されるようにしている。キャッシュフラッシュ命令はアーキテクチャに依存するものであることから、アーキテクチャによっては使用できない。
プログラムの実行が開始される場合、図14(b)に示すように、プログラム部品41が実行され、プログラム部品42の実行依頼コードが実行されると、PCからセキュアモジュール20に、プログラム部品42のRAM13への書き込みが要求される。そして、プログラムは、次の例外処理発生コード(int 3)を実行し、割り込みハンドラが起動される。割り込みハンドラは、セキュアモジュール20からのプログラム書き込み完了割り込み処理が発生するまで待機し、割り込み処理の発生後、続きのコードを実行するようにしておく。実行依頼を受けたセキュアモジュール20は、プログラム部品42をRAM13へ書き込むと共に、呼び出し元の呼び出し先アドレスを設定する。
本実施例では、アドレス13A00000hの領域にプログラム部品42を書き込むと共に、呼び出し先アドレスを13A00010h(プログラム部品42のオフセット10h)に設定している。プログラム部品42の書き込みは、事前に書き込んでおいてもよいし、プログラム部品42の呼び出しアドレスを固定しておいてもよい。
以上説明したように、本発明ではセキュアモジュールを利用し、プログラムを動的にRAM上に書き込み又はプログラムの呼び出しアドレスを動的に変更することにより、悪意ある第三者にとって解析が困難な形態でプログラムを実行することが可能となる。
本発明の実施の形態1に係る情報処理装置の概略構成図である。 セキュアモジュールの構成の例示図である。 プログラム分割の例示図である。 プログラム部品をRAMへ記憶する方法の説明図である。 プログラム部品を動的にRAMへ記憶する場合の説明図である。 本実施の形態2に係る情報処理装置でのプログラム部品実行方法の説明図である。 本発明の実施の形態3に係る情報処理装置で実行するプログラムのプログラム部品への分割の説明図である。 書込情報、特殊コード情報、及び部品リンク情報の例示図である。 プログラムの実行開始時の動作の説明図である。 プログラムの実行開始時のセキュアモジュールでの処理のフローチャートである。 セキュアモジュールが行う特殊コード呼び出し処理の説明図である。 セキュアモジュールが行う特殊コード呼び出し処理の説明図である。 プログラム部品の動的書き込み処理及びリンク処理についての説明図である。 プログラム部品の動的書き込み処理及びリンク処理についての説明図である。
符号の説明
11 CPU
12 ROM
13 RAM(第1の記憶手段)
14 記憶手段(第2の記憶手段)
15 通信インタフェース
16 入力インタフェース
17 出力インタフェース
18 セキュアインタフェース
20 セキュアモジュール
21 プロセッサ
22 メモリ
23 通信手段
30 プログラムデータ
40 プログラム
41、42、43、45 プログラム部品
50 実行要求プログラム
60 基本プログラム
80 特殊コード呼び出し部
100 実行領域
410、420、430 書込情報
411、421、431、451 特殊コード情報
412、422、432 部品リンク情報

Claims (7)

  1. 第1の記憶手段と、
    該第1の記憶手段に書き込まれたプログラムを実行するCPUと、
    セキュアモジュールと、
    暗号化されたプログラムを記憶する第2の記憶手段と
    を有する情報処理装置において、
    前記第2の記憶手段は、複数に分割されたプログラムを記憶してあり、
    前記CPUは、前記第2の記憶手段に記憶されたプログラムを前記セキュアモジュールへ転送すべくなしてあり、
    前記セキュアモジュールは、前記第2の記憶手段に記憶されたプログラムを受け取る手段と、受け取ったプログラムを実行可能な状態へ復帰させる手段と、前記CPUが実行する順序で、実行可能な状態へ復帰されたプログラムを前記第1の記憶手段に書き込む手段と、前記CPUにより実行されたプログラムを、実行終了後に前記第1の記憶手段から削除する手段とを備えることを特徴とする情報処理装置。
  2. 前記セキュアモジュールは、分割されたプログラムに対する実行要求信号を受信したか否かを判断する手段を備え、該手段が実行要求信号を受信したと判断した場合、受け取ったプログラムを実行可能な状態へ復帰させるものであることを特徴とする請求項1記載の情報処理装置。
  3. 前記セキュアモジュールは、分割されたプログラムについて、前記第1の記憶手段にプログラム実行前に常駐させるプログラムか、実行されるまで前記メモリに書き込まれないプログラムかを識別する情報を記憶する手段を備えることを特徴とする請求項1又は2に記載の情報処理装置。
  4. 第1の記憶手段と、
    該第1の記憶手段に書き込まれたプログラムを実行するCPUと、
    セキュアモジュールと、
    暗号化されたプログラムを記憶する第2の記憶手段と
    を有する情報処理装置において、
    前記CPUは、前記第2の記憶手段に記憶されたプログラムを前記セキュアモジュールへ転送すべくなしてあり、
    前記セキュアモジュールは、前記第2の記憶手段に記憶されたプログラムを受け取る手段と、受け取ったプログラムを複数に分割する手段と、分割されたプログラムを実行可能な状態へ復帰させる手段と、前記CPUが実行する順序で、実行可能な状態へ復帰されたプログラムを前記第1の記憶手段に書き込む手段と、前記CPUにより実行されたプログラムを、実行終了後に前記第1の記憶手段から削除する手段とを備えることを特徴とする情報処理装置。
  5. 前記第2の記憶手段は、記憶されたプログラムに対応付けて、プログラムの分割に関する情報を記憶してあり、前記セキュアモジュールは、前記プログラムの分割に関する情報に基づいて受け取ったプログラムを複数に分割すべくなしてあることを特徴とする請求項4記載の情報処理装置。
  6. 第1の記憶手段と、
    該第1の記憶手段に書き込まれたプログラムを実行するCPUと、
    セキュアモジュールと、
    暗号化されたプログラムを記憶する第2の記憶手段と
    を有する情報処理装置において、
    前記第1の記憶手段は、複数に分割されたプログラムを実行前に常駐させてあり、
    前記第2の記憶手段は、分割されたプログラムを実行プログラムとして呼び出す呼び出しプログラムを記憶してあり、前記第2の記憶手段に記憶された呼び出しプログラムを前記セキュアモジュールへ転送すべくなしてあり、
    前記セキュアモジュールは、前記第2の記憶手段に記憶された呼び出しプログラムを受け取る手段と、受け取った呼び出しプログラムを実行可能な状態へ復帰させる手段と、前記CPUが分割されたプログラムを実行する順序で、対応する実行可能な状態へ復帰された呼び出しプログラムを前記第1の記憶手段に書き込む手段と、前記CPUにより実行された呼び出しプログラムを、実行終了後に前記第1の記憶手段から削除する手段とを備えることを特徴とする情報処理装置。
  7. 前記第1の記憶手段は、分割されたプログラム間の呼び出し関係を指定する情報であるリンク情報をさらに記憶してあり、前記セキュアモジュールは、前記リンク情報に基づいて分割されたプログラムを実行する順序を検出すべくなしてあることを特徴とする請求項6記載の情報処理装置。
JP2003372374A 2003-10-31 2003-10-31 情報処理装置 Pending JP2005135265A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003372374A JP2005135265A (ja) 2003-10-31 2003-10-31 情報処理装置
US10/784,184 US7805758B2 (en) 2003-10-31 2004-02-24 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003372374A JP2005135265A (ja) 2003-10-31 2003-10-31 情報処理装置

Publications (1)

Publication Number Publication Date
JP2005135265A true JP2005135265A (ja) 2005-05-26

Family

ID=34544008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003372374A Pending JP2005135265A (ja) 2003-10-31 2003-10-31 情報処理装置

Country Status (2)

Country Link
US (1) US7805758B2 (ja)
JP (1) JP2005135265A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007065922A (ja) * 2005-08-30 2007-03-15 Matsushita Electric Ind Co Ltd メモリアクセス制御回路、方法およびアプリケーション格納方法
JP2007148575A (ja) * 2005-11-24 2007-06-14 Fuji Xerox Co Ltd 保護済み実行プログラムの作成のためのプログラム、方法及び装置
JP2007304903A (ja) * 2006-05-12 2007-11-22 Nec Engineering Ltd 耐タンパーシステム
JP2009252079A (ja) * 2008-04-09 2009-10-29 Mega Chips Corp 半導体メモリ装置
JP2009258850A (ja) * 2008-04-14 2009-11-05 Mega Chips Corp 半導体メモリ装置
JP2010039891A (ja) * 2008-08-07 2010-02-18 Nec Corp 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム
JP2014531663A (ja) * 2011-08-05 2014-11-27 ケーピーアイティ テクノロジーズ リミテッド 埋め込みソフトウェアコードの保護システム
JP2016503542A (ja) * 2013-08-12 2016-02-04 スンシル ユニバーシティー リサーチ コンソルティウム テクノーパークSoongsil University Research Consortium Techno−Park アプリケーションコード難読化装置及びその方法
JP2016503543A (ja) * 2013-09-27 2016-02-04 スンシル ユニバーシティー リサーチ コンソルティウム テクノーパークSoongsil University Research Consortium Techno−Park 自己書換え基盤のアプリケーションコード難読化装置及びその方法
US9256731B2 (en) 2013-06-03 2016-02-09 Socionext Inc. System, information processing apparatus, secure module, and verification method

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
JP4221385B2 (ja) * 2005-02-21 2009-02-12 日立オムロンターミナルソリューションズ株式会社 生体認証装置、端末装置及び自動取引装置
US7788658B2 (en) * 2006-05-31 2010-08-31 International Business Machines Corporation Computer code partitioning for enhanced performance
US20080120614A1 (en) * 2006-11-21 2008-05-22 Brother Kogyo Kabushiki Kaisha Device, Method, and Computer Usable Medium for Installing Programs
US20080229115A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Provision of functionality via obfuscated software
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
CN102819714B (zh) * 2012-07-27 2015-11-18 东莞宇龙通信科技有限公司 终端和应用程序安全控制方法
US10049210B2 (en) * 2015-05-05 2018-08-14 Leviathan Security Group, Inc. System and method for detection of omnientrant code segments to identify potential malicious code
US9830149B2 (en) * 2016-01-14 2017-11-28 International Business Machines Corporation Automatic extraction of sensitive code fragments to be executed in a sandbox
CN105701388A (zh) * 2016-02-25 2016-06-22 吴伟东 手机软件安全设置方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH043224A (ja) * 1990-04-20 1992-01-08 N T T Data Tsushin Kk Icカードによるソフトモジュールの管理方法
JPH10105658A (ja) * 1996-09-30 1998-04-24 Matsushita Electric Ind Co Ltd プログラム可能な演算手段を備えたicカード及びその応用方法
JP2000112750A (ja) * 1998-10-02 2000-04-21 Hyper Tec:Kk 情報処理装置
JP2002099439A (ja) * 2000-09-21 2002-04-05 Nec Corp コンピュータシステムに適用するライブラリのリンク方法及びそのプログラムを記録した記録媒体
JP2003208406A (ja) * 2002-11-18 2003-07-25 Fuji Xerox Co Ltd サービス提供システム、認証装置及び認証プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003223234A (ja) * 1994-08-10 2003-08-08 Fujitsu Ltd 情報格納方法、ソフトウェア再生装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0257655B1 (en) * 1986-08-28 1994-07-06 Nec Corporation Multitask processing apparatus
GB2205667B (en) * 1987-06-12 1991-11-06 Ncr Co Method of controlling the operation of security modules
US5701582A (en) * 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5930776A (en) * 1993-11-01 1999-07-27 The Golden 1 Credit Union Lender direct credit evaluation and loan processing system
JP3395863B2 (ja) 1994-08-10 2003-04-14 富士通株式会社 ソフトウエア管理モジュール、ソフトウエア再生管理装置およびソフトウエア再生管理システム
US5878198A (en) * 1994-12-21 1999-03-02 Canon Kabushiki Kaisha Information processing apparatus and method and memory medium storing information processing program
JPH11232103A (ja) 1998-02-12 1999-08-27 Matsushita Electric Ind Co Ltd プログラムリンク方式及びメソッドサーチ方式
US6131192A (en) * 1998-06-18 2000-10-10 Microsoft Corporation Software installation
JP4408601B2 (ja) 2001-12-27 2010-02-03 富士通株式会社 情報再生装置およびセキュアモジュール

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH043224A (ja) * 1990-04-20 1992-01-08 N T T Data Tsushin Kk Icカードによるソフトモジュールの管理方法
JP2003223234A (ja) * 1994-08-10 2003-08-08 Fujitsu Ltd 情報格納方法、ソフトウェア再生装置
JPH10105658A (ja) * 1996-09-30 1998-04-24 Matsushita Electric Ind Co Ltd プログラム可能な演算手段を備えたicカード及びその応用方法
JP2000112750A (ja) * 1998-10-02 2000-04-21 Hyper Tec:Kk 情報処理装置
JP2002099439A (ja) * 2000-09-21 2002-04-05 Nec Corp コンピュータシステムに適用するライブラリのリンク方法及びそのプログラムを記録した記録媒体
JP2003208406A (ja) * 2002-11-18 2003-07-25 Fuji Xerox Co Ltd サービス提供システム、認証装置及び認証プログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007065922A (ja) * 2005-08-30 2007-03-15 Matsushita Electric Ind Co Ltd メモリアクセス制御回路、方法およびアプリケーション格納方法
JP2007148575A (ja) * 2005-11-24 2007-06-14 Fuji Xerox Co Ltd 保護済み実行プログラムの作成のためのプログラム、方法及び装置
JP2007304903A (ja) * 2006-05-12 2007-11-22 Nec Engineering Ltd 耐タンパーシステム
JP2009252079A (ja) * 2008-04-09 2009-10-29 Mega Chips Corp 半導体メモリ装置
JP2009258850A (ja) * 2008-04-14 2009-11-05 Mega Chips Corp 半導体メモリ装置
JP2010039891A (ja) * 2008-08-07 2010-02-18 Nec Corp 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム
JP2014531663A (ja) * 2011-08-05 2014-11-27 ケーピーアイティ テクノロジーズ リミテッド 埋め込みソフトウェアコードの保護システム
US9256731B2 (en) 2013-06-03 2016-02-09 Socionext Inc. System, information processing apparatus, secure module, and verification method
JP2016503542A (ja) * 2013-08-12 2016-02-04 スンシル ユニバーシティー リサーチ コンソルティウム テクノーパークSoongsil University Research Consortium Techno−Park アプリケーションコード難読化装置及びその方法
JP2016503543A (ja) * 2013-09-27 2016-02-04 スンシル ユニバーシティー リサーチ コンソルティウム テクノーパークSoongsil University Research Consortium Techno−Park 自己書換え基盤のアプリケーションコード難読化装置及びその方法

Also Published As

Publication number Publication date
US7805758B2 (en) 2010-09-28
US20050097524A1 (en) 2005-05-05

Similar Documents

Publication Publication Date Title
JP2005135265A (ja) 情報処理装置
EP2023248B1 (en) Data processing device, method, program, integrated circuit, and program generating device
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US6378071B1 (en) File access system for efficiently accessing a file having encrypted data within a storage device
JP3880933B2 (ja) 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
JP4287485B2 (ja) 情報処理装置及び方法、コンピュータ読み取り可能な記録媒体、並びに、外部記憶媒体
JP4115759B2 (ja) 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
JP4892167B2 (ja) ディジタル・データ保護構成
US20080060072A1 (en) Information processing system, information processing method, information processing program, computer readable medium and computer data signal
JPWO2006009081A1 (ja) アプリケーション実行装置及びアプリケーション実行装置のアプリケーション実行方法
CN112639778A (zh) 指针认证及指针认证方案之间的动态切换
US20090037721A1 (en) Program development method, program development supporting system, and program installation method
JP4514473B2 (ja) コンピュータシステム、中央装置及びプログラム実行方法
JP2007148962A (ja) サブプログラム、そのサブプログラムを実行する情報処理装置、及びそのサブプログラムを実行する情報処理装置におけるプログラム制御方法
JP4568489B2 (ja) プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
WO2011134207A1 (zh) 软件保护方法
US9256756B2 (en) Method of encryption and decryption for shared library in open operating system
JP2010039891A (ja) 情報処理装置、プログラム実行方法、プログラムおよび情報処理システム
JP2005202523A (ja) コンピュータ装置及びプロセス制御方法
JP2010238031A (ja) 外部記憶デバイス、外部記憶デバイスに記憶されたデータを処理するための方法、プログラムおよび情報処理装置
JP2007148806A (ja) アプリケーション起動制限方法及びアプリケーション起動制限プログラム
US20150039900A1 (en) Program execution method and decryption apparatus
JP2004272594A (ja) データ利用装置及びデータ利用方法、並びにコンピュータ・プログラム
JP2004362077A (ja) データ変換システム
JP2007328541A (ja) 電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100820

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100908

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20101001