JP2003162341A - プログラムの不正実行防止機能付きプロセッサ - Google Patents
プログラムの不正実行防止機能付きプロセッサInfo
- Publication number
- JP2003162341A JP2003162341A JP2002288529A JP2002288529A JP2003162341A JP 2003162341 A JP2003162341 A JP 2003162341A JP 2002288529 A JP2002288529 A JP 2002288529A JP 2002288529 A JP2002288529 A JP 2002288529A JP 2003162341 A JP2003162341 A JP 2003162341A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- program
- execution
- software
- management unit
- 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
Links
Landscapes
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Abstract
行を防止する技術の提供。 【解決手段】 プロセッサは、メモリ管理ユニットを内
蔵し、且つ、メイン・メモリ上のプログラム・コードの
実行を許可する実行許可インストラクションを含んでい
る。実行許可インストラクションの手続はマイクロプロ
グラムによって定義され、メモリ管理ユニットに所定の
データをセットする手続の他に、プログラムの使用権を
認証する認証手続を含む。認証処理の成功時のみ、ソフ
トウェア・プログラムの実行が許可される。認証動作
は、プロセッサ内部で実行されるので、外部から監視・
検出することは殆ど不可能である。また、認証処理に用
いる識別情報として、プロセッサ・チップが固有に持つ
プロセッサIDを使用することによって、ある特定のソ
フトウェア・プログラムの使用権を単一のプロセッサに
限定することができる。
Description
ステムに提供されるソフトウェア・プログラムの不正な
使用・実行を防止する技術に係り、特に、プログラムの
不正実行防止機能を備えたプロセッサに関する。
システムは、大学・研究機関の他、企業や一般家庭にも
広範に浸透してきている。コンピュータ・システムに
は、ホスト/メインフレームやオフィス・コンピュータ
以外に、比較的安価で一般ユーザも購入可能なワークス
テーション、パーソナル・コンピュータ(PC)などが
挙げられる。特に、PCの急速な普及には目覚ましいも
のがある。
・システム上で稼働する各種ソフトウェアも開発・市販
されており、ソフトウェア産業もハードウェア産業に匹
敵しあるいは凌駕する隆盛を遂げている。ここで言うソ
フトウェアには、コンピュータ・システム全体の動作を
制御するための「OS(オペレーティング・システ
ム)」や、システム上で各ユーザの目的・業務に適った
機能オペレーションを実現するための「アプリケーショ
ン」が含まれる。アプリケーション・プログラムは、ワ
ープロ、スプレッドシート、データベース、通信など各
種機能・用途のものが揃っている。
上に導入したいソフトウェアを、例えばフレキシブル・
ディスクやCD−ROMなどのリムーバブル・メディア
の形態で購入し、これらメディアを適切なドライブ・ユ
ニットに装填して用いるのが一般的である。また、最近
では、インターネットなどの外部ネットワークを経由し
て、所望のソフトウェアを自身のローカル・ディスクに
ファイル転送(ダウンロード)する、という形態によっ
てもソフトウェア・プログラムを導入することが可能と
なっている。
たメディアの購入行為は、ソフトウェア・プログラムの
限定的な使用権を得たことに過ぎず、購入者はソフトウ
ェア・プログラムの著作権や複製権までも手に入れた訳
ではない。ソフトウェア・プログラムの無制限な若しく
は無断な複製は、著作権法上、厳に禁止されている行為
である(周知)。(なお、ネットワーク経由でダウンロ
ードしたソフトウェア・プログラムについても、その使
用は限定的に解釈するのが妥当であろう。)
るソフトウェア・ベンダーの立場から言えば、有料でプ
ログラム格納メディアを配布することによって収益をあ
げているのであり、無制限で無断な複製行為が横行して
いては、本来享受すべき利潤を担保することができな
い。ソフトウェア・プログラムの不正な使用行為は、ソ
フトウェア産業に従事する者の開発意欲をも減退させる
ものであり、ひいては当該産業界の活動自体を沈静化さ
せかねない。このため、ソフトウェア・プログラムの不
正使用や無断な複製を禁止する(あるいは未然に防止す
る)というプロテクションに関する技術が、従来より開
発されている。
したいソフトウェア・プログラムを暗号化してしまうこ
とである。すなわち、ソフトウェア・ベンダーは、暗号
化した状態のプログラム格納メディアを有償若しくは無
償で配布するとともに、正当なユーザに対してのみ、暗
号を解くための鍵を与えることで、メディアに格納され
たプログラムの使用を好適に限定することができる訳で
ある。
を与えるかが問題になる。例えばソフトウェア・ベンダ
ーは、封書などの郵便物によってユーザに鍵を与えるこ
とも可能であるが、この場合は鍵の不正使用はいとも簡
単である。
る「セキュリティ・デバイス」を用いることが挙げられ
る。この場合、ソフトウェア・ベンダーは、セキュリテ
ィ・デバイスを添付してプログラム格納メディアを流通
・配布する。セキュリティ・デバイスは、所定の認証手
続に必要な識別情報などを含んでおり、例えばユーザの
PCのシリアル・ポート又はパラレル・ポートに接続し
て用いられる。他方、メディアに格納されたプログラム
の中には、プログラム自体の機能・用途に特化したオペ
レーションを行うための本ルーチンの他に、幾つかのチ
ェック・ポイント(すなわち「認証ルーチン」)を含ん
でいる。
ントにおいて、プログラムを実行中のCPU(Central
Processing Unit)がセキュリティ・デバイスにアクセ
スして識別情報を読み出し、これがプログラムの持つ識
別情報と一致するかどうかを照合して、一致していると
きのみCPUがプログラムを続行することを許可する、
というものである。
ある。すなわち、プログラム実行中のCPUがある規則
に従ったコードをセキュリティ・デバイスに書き込む。
セキュリティ・デバイスでは、受け取ったコードを用い
てスクランブル又は暗号化した識別情報を用意してお
く。さらに、CPUはスクランブル又は暗号化された識
別情報を読み出し、これをプログラムによってデスクラ
ンブル又は復号化してプログラムが所有する識別情報と
照合する。照合が成功裡に終わったときのみ、CPUに
よるプログラムの続行が許可される。CPUとセキュリ
ティ・デバイスの間は、CPUチップ外部のバスを介し
て接続されているので、スクランブルや暗号化を行うこ
とによって、バス・スヌープによる認証ルーチンの解読
を防止することができる。
つの例は、プログラム実行中のCPUに対する命令(イ
ンストラクション)によって認証処理が行われる、とい
う点では共通している。
り、セキュリティ・レベルをかなりの程度向上させるこ
とができよう。また、ソフトウェア・プログラムの使用
権をセキュリティ・デバイスを装着したただ1つのコン
ピュータ・システムのみに限定することができよう。し
かしながら、この方式とて万全とは言い難い。例えば、
ロジック・アナライザ(周知)を用いれば、バス・トラ
ンザクションを容易にモニタすることができるので、認
証ルーチンを解析して、識別情報や暗号の鍵の正体を見
破ることもできよう。
ために、セキュリティ・デバイスへの入力値を逐次変更
する、という対策も採られている。しかしながら、IC
E(InCircuitEmulator)/*/などの装置を用いればソフ
トウェアを比較的容易に逆アセンブルすることができ、
そうなればセキュリティ・デバイスへのアクセス・ルー
チン(すなわち認証ルーチン)を無条件ジャンプするよ
うにプログラムを改ざんすることも可能である。
プログラムのプロテクションを強化するためには、まず
第一に、セキュリティ動作がプログラム実行に必須であ
るようにデザインすることが好ましい。この意味におい
て、メディアに格納されたプログラム自身が認証ルーチ
ンを含んでいるという上記従来例は適合している。さら
に、この認証ルーチンは、外部からのアクセス・変更が
不可能な形態でなければならない。セキュリティ・デバ
イスを用いた上記従来例の場合、認証ルーチンはシステ
ム・オペレーションの形態で実装され、外観には現れな
いが、技術的には判読が可能である(前述)。要言すれ
ば、外部アクセス可能な従来のプロテクション方式で
は、プログラムの保護は万全とは言い難いのである。
ードウェア開発を支援するために使用される装置であ
り、CPUの代わりにCPUソケットに差すことによっ
て、CPUと全く同じ動作をするようになっている。I
CEは、CPUと違って、バスのアクセスやレジスタの
値をインストラクション毎に読み出すことが可能であ
る。このようなICEのインストラクション・トレース
機能を用いれば、外部デバイスのアドレスをトリガにし
てソフトウェア・プログラムの中から認証ルーチンを探
し出すことができる。さらに、プログラム・アドレスに
違法なパッチを当てれば、セキュリティ・デバイスにア
クセスせずにプログラム実行を継続するように改ざんす
ることができる。
ピュータ・システムに提供されるソフトウェア・プログ
ラムの不正な使用・実行を防止する優れた技術を提供す
ることにある。
更することができない、プログラムの不正実行防止機能
を備えた優れたプロセッサを提供することにある。
酌してなされたものであり、その第1の側面は、メイン
・メモリを管理する機能を持つメモリ管理ユニットを内
蔵するとともに、自身を動作させるためのインストラク
ション・セットを有するタイプの、プログラムの不正実
行防止機能付きプロセッサであって、前記インストラク
ション・セット中には前記メイン・メモリ上のプログラ
ム・コードの実行を許可する実行許可インストランショ
ンが含まれ、前記実行許可インストラクションは、実行
すべきプログラムの識別番号とアドレス情報・属性情報
を前記メモリ管理ユニットに与える動作の他に、所定の
認証動作を含む、ことを特徴とするプログラムの不正実
行防止機能付きプロセッサである。
セッサ内部に格納された識別情報と前記プロセッサの外
部から供給された識別情報との比較動作を含んでいても
よい。
ッサに固有のプロセッサIDとソフトウェア・プログラ
ムに固有のソフトウェアIDとで構成されていてもよ
い。
内部的に発生した乱数とソフトウェア・プログラムに固
有のソフトウェアIDとで構成されていてもよい。
ったときには実行すべきプログラムの識別番号とアドレ
ス情報・属性情報を前記メモリ管理ユニットに与える動
作を許可するが、前記所定の認証動作が失敗したときに
は実行すべきプログラムの識別番号とアドレス情報・属
性情報を前記メモリ管理ユニットに与える動作を禁止す
るようにしてもよい。
ロセッサは、さらに、前記プロセッサIDを暗号化して
前記バス・インターフェース経由で外部に出力する暗号
化手段と、暗号化された識別情報を前記バス・インター
フェース経由で外部から受け取るとともに復号化してプ
ロセッサIDとソフトウェアIDを取り出す復号化手段
とを含み、前記所定の認証動作は各ID同士の比較動作
を含んでいてもよい。
モリ上にプログラム・コードやデータを読み出し/書き
込み動作しながら所定の処理を実行するタイプの、プロ
グラムの不正実行防止機能付きプロセッサであって、前
記プロセッサの外部とインストラクションやデータの授
受を行うバス・インターフェースと、受け取ったインス
トラクションの解読を行うデコーダと、1以上のインス
トラクションについての手順を格納した内蔵メモリと、
1以上のインストラクションについての手順を実装した
論理回路と、前記内蔵メモリに格納された手順や前記論
理回路に実装された手順に従ってインストラクションを
実行する制御ユニットと、前記プロセッサに固有のプロ
セッサIDと、前記メイン・メモリを管理する機能を持
つメモリ管理ユニットとを含み、前記内蔵メモリ又は前
記論理回路のうちの1つは前記メイン・メモリ上のプロ
グラム・コードの実行を許可する実行許可インストラク
ションの手順を格納しており、且つ、前記実行許可イン
ストラクションの手順は、実行すべきプログラムの識別
情報とアドレス情報・属性情報を前記メモリ管理ユニッ
トに与える動作の他に、所定の認証動作を含む、ことを
特徴とするプログラムの不正実行防止機能付きプロセッ
サ。
ロセッサは、さらに、前記プロセッサIDを暗号化して
前記バス・インターフェース経由で外部に出力する暗号
化手段と、暗号化された識別情報を前記バス・インター
フェース経由で外部から受け取るとともに復号化してプ
ロセッサIDとソフトウェアIDを取り出す復号化手段
とを含み、前記所定の認証動作は各ID同士の比較動作
を含んでいてもよい。
ったときには実行すべきプログラムの識別番号とアドレ
ス情報・属性情報を前記メモリ管理ユニットに与える動
作を許可するが、前記所定の認証動作が失敗したときに
は実行すべきプログラムの識別番号とアドレス情報・属
性情報を前記メモリ管理ユニットに与える動作を禁止す
るようにしてもよい。
モリ上にプログラム・コードやデータを読み出し/書き
込み動作しながら所定の処理を実行するタイプの、プロ
グラムの不正実行防止機能付きプロセッサであって、前
記プロセッサの外部とインストラクションやデータの授
受を行うバス・インターフェースと、受け取ったインス
トラクションの解読を行うデコーダと、1以上のインス
トラクションについての手順を格納した内蔵メモリと、
1以上のインストラクションについての手順を実装した
論理回路と、前記内蔵メモリに格納された手順や前記論
理回路に実装された手順に従ってインストラクションを
実行する制御ユニットと、乱数発生ユニットと、前記メ
イン・メモリを管理する機能を持つメモリ管理ユニット
とを含み、前記内蔵メモリ又は前記論理回路のうちの1
つは前記メイン・メモリ上のプログラム・コードの実行
を許可する実行許可インストラクションの手順を格納し
ており、且つ、前記実行許可インストラクションの手順
は、実行すべきプログラムの識別情報とアドレス情報・
属性情報を前記メモリ管理ユニットに与える動作の他
に、所定の認証動作を含む、ことを特徴とするプログラ
ムの不正実行防止機能付きプロセッサである。
ロセッサは、さらに、前記乱数発生ユニットが発生する
乱数を前記バス・インターフェース経由で外部に出力す
る乱数出力手段と、暗号化された識別情報を前記バス・
インターフェース経由で外部から受け取るとともに復号
化して乱数とソフトウェアIDを取り出す復号化手段と
を含み、前記所定の認証動作は乱数及びソフトウェアI
Dの比較動作を含んでいてもよい。
ったときには実行すべきプログラムの識別番号とアドレ
ス情報・属性情報を前記メモリ管理ユニットに与える動
作を許可するが、前記所定の認証動作が失敗したときに
は実行すべきプログラムの識別番号とアドレス情報・属
性情報を前記メモリ管理ユニットに与える動作を禁止す
るようにしてもよい。
のコード/データの格納動作を管理するためのメモリ管
理ユニットを内蔵するタイプであり、且つ、インストラ
クション・セットの1つとして、メイン・メモリ上のプ
ログラム・コード(アプリケーション)の実行を許可す
る実行許可インストラクションを含んでいる。
一般には、実行すべきプログラムの識別番号と、プログ
ラムの格納アドレス、プログラムの属性情報をメモリ管
理ユニットにセットする、という手続(例えば"LOAD MM
U …"というコードで記述される)を含んでいる。イン
ストラクションの手続はマイクロプログラムによって定
義される。
ョンは、メモリ管理ユニットに所定のデータをセットす
る手続の他に、プログラムの使用権を認証するための認
証手続を含んでいる。この認証動作は、例えば、プロセ
ッサ内部で保持された識別情報と、プロセッサの外部
(例えばソフトウェア・プログラムの供給者)から供給
された識別情報との比較によって行われる。そして、こ
の認証処理が成功裡に終わったときのみ、ソフトウェア
・プログラムの実行が許可される。
ロセッサに固有(例えば製造時に与えられる)プロセッ
サIDと、ソフトウェア・プログラムに固有に与えられ
るソフトウェアIDとで構成される。あるいは、識別情
報は、プロセッサが時々刻々発生する乱数と、ソフトウ
ェア・プログラムに固有に与えられるソフトウェアID
とで構成される。
実行されるので、外部から監視・検出することは殆ど不
可能である。また、認証手続は、プログラムの実行許可
を意味するインストラクションを記述したマイクロプロ
グラムの中に含まれているので、そもそも認証手続の存
在自体が外部から隠された格好となる。したがって、本
発明によればプログラムの不正実行の防止を大幅に強化
することができる。
プロセッサ・チップが固有に持つプロセッサIDを使用
することによって、ある特定のソフトウェア・プログラ
ムの使用権を単一のプロセッサに限定することができ
る。この意味においても、プログラムの不正実行は強固
に禁止されていると言えよう。
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
の実施例を詳解する。
・システム200及びプロセッサ100のハードウェア
構成を模式的に示している。コンピュータ・システム2
00は、システム200の中核的な制御を行うプロセッ
サ100の外に、メイン・メモリ50や各種周辺装置を
含んでいる。以下、各部について説明する。
ロセッサ・バス101は、ブリッジ回路60経由でシス
テム・バス70に接続されている。ブリッジ回路60
は、プロセッサ・バス101とシステム・バス70間の
動作速度の相違を吸収するためのデータ・バッファや、
メイン・メモリ50へのアクセス動作を制御するための
メモリ・コントローラを含んでいる。
が実行するプログラム・コードや処理データを一時格納
するための読み書き可能メモリであり、通常は、1以上
のDRAM(ダイナミックRAM)チップで構成され
る。メイン・メモリ50上で展開されるメモリ空間は、
メモリ管理ユニット15(後述)によって管理される。
eral Component Interconnect)バスやISA(Industr
y Standard Architecture)バスが該当し、各種周辺装
置が相互接続されている。周辺装置には、例えばキーボ
ードやディスプレイなどのコンソール類(図示しな
い)、ハード・ディスク・ドライブ(HDD)81、フ
レキシブル・ディスク・ドライブ(FDD)82、CD
−ROMドライブ83などの外部記憶装置類、外部ネッ
トワークと接続するためのネットワーク・インターフェ
ース・カード(NIC)90、シリアル・ポート経由で
シリアル・データの入出力を行うためのシリアルI/O
コントローラ91などが含まれる。なお、バス70上の
動作は、ロジック・アナライザなどを用いて解析するこ
とができる。
ブル・ディスクやCD−ROMなどの記憶媒体の形態で
ソフトウェア・プログラムを一般ユーザに配布する。各
ユーザは、これら記憶媒体を所定のドライブ・ユニット
に装填し、HDD81にコピーすることによって、ソフ
トウェア・プログラムをシステム200にインストール
すなわち利用可能な状態に置くようになっている。ま
た、最近では、インターネットなどの外部ネットワーク
経由でソフトウェア・プログラムが配布されることも多
くなってきている(周知)。
U(Central Processing Unit)若しくはMPU(Micro
Processing Unit)と呼ばれるものである。プロセッサ
100は、通常はマザー・ボード(図示しない)上に搭
載される回路チップであり、各入出力装置(図示しな
い)を制御してデータの授受を行ったり、データを演算
処理し、処理結果をメイン・メモリ50上に記憶したり
するなどのコンピュータ・システム200の中枢機能を
果たしている。
セッサ100は、バス・インターフェース11と、デコ
ーダ12と、制御ユニット13と、マイクロコードRO
M14と、メモリ管理ユニット15と、プロセッサID
16と、暗号化復号化ユニット17とを含んでいる。
サ100外部のコンポーネントととの間でインストラク
ションやデータを授受するためのユニットである。バス
・インターフェース11は、プロセッサ・バス101と
直結している。なお、プロセッサ・バス101は、ブリ
ッジ回路60を経由してメイン・メモリ50やシステム
・バス70と相互接続されている。
11経由で受け取ったインストラクションを解釈して、
制御ユニット13が理解できる形式に変換するためのユ
ニットである。
を実行する手順を整えるユニットである。実行するイン
ストラクションは、ワイヤード・ロジック(配線論理)
で実行するタイプと、マイクロ・プログラムで実行する
タイプの2つに大別される。前者の場合は、インストラ
クションの実行制御に必要な論理を直線的に実装した順
序回路が用いられる。また、後者の場合には、インスト
ラクションはマイクロコード(又はピココード)と呼ば
れるさらに細かいコードの集合(すなわちマイクロプロ
グラム)で構成されており、該当するマイクロプログラ
ムをマイクロコードROM14から読み出して実行する
ことになる。なお、1つのプロセッサで利用できるイン
ストラクション全体を「インストラクション・セット」
と呼ぶ。
クションの実行に必要なマイクロコードを格納した読み
出し専用メモリである。言い換えれば、マイクロコード
ROM14は、各インストラクションの実行手順を定義
した不揮発メモリである。例えば、"LOAD"、"ST
ORE"、"MOVE"などのインストラクションは、あ
る変数をプロセッサ100内のレジスタ(図示しない)
に書き込むためのインストラクションであるが、これら
の動作の詳細をマイクロコードROM14内で記述する
ことによって定義することができる。
ログラム・コードやデータをメイン・メモリ50上に展
開するなど、プロセッサ100のメモリ空間を管理する
ためのユニットである。メモリ管理ユニット15は、通
常、仮想記憶機能とメモリ保護機能という2つの機能を
提供している。仮想記憶機能とは、論理アドレスを物理
アドレスに変換したり、物理アドレスに該当するブロッ
ク(ページ)がメイン・メモリ上に存在しないときに外
部記憶装置との間でブロック(ページ)の入れ替え(す
なわち「スワッピング」)を行う機能のことである。ま
た、メモリ保護機能とは、1つのプログラムで生じた障
害が他のプログラムに影響を及ぼさないようにする機能
のことである。
空間上に存在する各プログラムのアドレス情報や属性情
報を管理するためのMMUテーブルを備えている。図2
には、MMUテーブルの構造や機能を模式的に図解して
いる。MMUテーブルの各エントリは、該当するプログ
ラムのアドレスとフラグを格納する各フィールドを含ん
でいる。フラグはプログラムの属性情報(例えばプログ
ラムが実行形式か、読み出し専用か、読み書き可能か)
を示している。
有のプログラムIDを有している。あるプログラムをプ
ロセッサ100に実行させるためには、メモリ管理ユニ
ット15にプログラムIDとそのアドレス情報・属性情
報を与える旨のプログラム・コードを制御ユニット13
に供給すればよい。メモリ管理ユニット15は、自身の
MMUテーブルを参照して、該当するプログラムの実行
を許可する仕組みとなっている。下式は、あるプログラ
ムの実行を許可するための疑似コードを記述したもので
ある。
ットせよ) Jmp Application (アプリケーションにジャンプせよ)
は、プロセッサ100に対するインストラクションであ
り、レジスタへの変数のセット等を意味する。各インス
トランションの詳細な実行手順は、ワイヤード・ロジッ
ク又はマイクロコードROM14で定義されたマイクロ
プログラムのいずれかの形態で定義されている(上
述)。
…"なるステップは、実質上、アプリケーションの実
行を許可するためのインストラクションである。本実施
例では、この"Load MMU …"インストラクショ
ンは、マイクロプログラムという形態で実装され、メモ
リ管理ユニット15への変数セットの他に、所定の認証
手続が含まれている。
記述されているので、プロセッサ100の外部からは認
証手続の存在自体が見えない。認証手続は、プロセッサ
・チップ100内部で完結的に実行されるので、この動
作を外部から監視することは殆ど不可能である。したが
って、"Load MMU …"インストラクションを発
行した外部プログラムからは全く見えない状態で、プロ
セッサ100はこの認証手続を実行することができる。
但し、認証手続の詳細は後述する。
に固有の識別情報(通常はシリアルな番号で構成され
る)であり、例えば製造時に一義的に付与される。プロ
セッサID16の実体は、不揮発メモリ(図示しない)
に書き込まれた数値・文字データであり、制御ユニット
13によって適宜読み出される。
タを暗号化したり、逆に暗号化されたデータを復号化す
るための演算ユニットである。例えば、プロセッサID
16のような秘匿性の高いデータは、暗号化復号化ユニ
ット17によって予め暗号化してから、バス・インター
フェース11経由でプロセッサ100の外部に出力され
る。逆に、暗号化されたデータ(例えばソフトウェア供
給者から渡されるKey:後述)の復号化も行う。
鍵のうちいずれの方式を採用してもよい。後者の公開鍵
方式は、公開鍵と秘密鍵という一組の暗号鍵が用いら
れ、一方の鍵で暗号化したときには他方の鍵でしか復号
化できない。例えば、第3者が公開鍵で暗号化したデー
タは秘密鍵を持つ本人しか復号化できないので、秘密情
報を安全に交換することができる(周知)。
は、図1に示した以外にも多くのユニット等が必要であ
る。図1から省略されたユニットの例は、整数同士の算
術演算と論理演算(AND,OR,NOT)を担当する
ALU(Arithmetic and Logic Unit)や、実数(浮動
小数点等)演算を担当するFPU(Floating-Point Uni
t)、インストラクションの実行手順を直線的に実装し
た配線論理回路(PLA:Programmable Logic Arra
y)、入出力用のレジスタなどである。但し、これらは
当業者には周知であり、また、本発明の要旨を構成する
ものではないので、本明細書中では省略している。ま
た、図面の錯綜を回避するため、図中の各ハードウェア
・ブロック間の接続も一部しか図示していない点を了承
されたい。
ム保護動作について、図3を参照しながら説明する。
フトウェア・プログラムをフレキシブル・ディスク又は
CD−ROMなどの記憶媒体に格納した形態で、市場に
流通する。このソフトウェア・プログラムには、固有の
識別情報すなわちソフトウェアID(通常はシリアルな
番号で構成される)が付されている。ユーザは、フレキ
シブル・ディスク又はCD−ROMなどの記憶媒体をソ
フトウェア供給業者から購入するという形態で、ソフト
ウェア・プログラムの限定的な使用権を取得する(記憶
媒体の購入は、ソフトウェァの著作権や無制限な使用権
を全く意味しない点に充分留意されたい)。そして、ユ
ーザは、記憶媒体を所定のドライブ・ユニット81/8
2に装填して、ソフトウェア・プログラムをシステム2
00のハード・ディスク81上にインストールする。
D16を共通鍵により暗号化する手続(ステップS10
0)と、暗号化したプロセッサIDをソフトウェア供給
業者に送付する手続(ステップS102)を含んでい
る。暗号化処理は、暗号化復号化ユニット17を用いて
行われる。送付手続は、ソフトウェア業者に対するKe
y(後述)の要求を意味する。なお、送付手続は、郵送
に依る他、NIC90で接続された外部ネットワーク経
由での伝送という形態で行ってもよい。
情報を復号化して、元のプロセッサIDを得る(ステッ
プS104)。そして、このプロセッサIDと、業者自
身が手元で管理しているソフトウェアIDとを一体化し
て、共通鍵により暗号化することによってKeyを生成
する(ステップS106)。Keyは、プロセッサID
とソフトウェアIDとを1つのコードとして同時に暗号
化したものであり、各々に切り離すことはできない。K
eyは、ソフトウェアの使用不能状態を解く鍵としての
性質を持ち、郵送あるいはネットワーク経由でユーザに
返送される(ステップS108)。
タ・システム200上でソフトウェア・プログラムの実
行が促されたとする。これは、例えばOS(オペレーテ
ィング・システム)のような外部プログラムが"LOA
D MMU…"のような実行許可インストラクションを
発行して、メモリ管理ユニット15にプログラムIDと
プログラムの格納番地/属性情報がセットすることによ
り、実現される。
該当する処理手続は、図3の破線ブロックで囲まれてい
る。実行許可は、メモリ管理ユニット15への各変数の
セット以外に所定の認証手続を含んでいる。
プロセッサ100は、まず、受け取っているKeyを復
号化して、プロセッサIDとソフトウェアIDとを取得
する(ステップS110)。復号化処理は、暗号化復号
化ユニット17を用いて行われる。
得られたプロセッサIDとソフトウェアIDを、プロセ
ッサ100自身に内蔵されたプロセッサID、及び装填
した記憶媒体から得られたソフトウェアIDの各々と比
較する(ステップS112)。
メモリ管理ユニット15によるプログラムの実行は拒否
される(ステップS114)。他方、照合が成功裡に終
わったならば、メモリ管理ユニット15によるプログラ
ムの実行は肯定され(ステップS116)、プログラム
が実行される(ステップS118)。
手続は、例えばマイクロコードROM14中で、上述の
ようなインストラクションの処理手続を記述することに
よって実現可能である。
d MMU …"という単一のインストラクションで実
行される。該インストラクションを記述した疑似マイク
ロプログラム・コードを、以下に示しておく。
証手続は、外部プログラムからは全く見えない状態で実
行される。本実施例に係る認証手続は、プロセッサ・チ
ップ100内部で完結されるので、プロセッサ100外
部からの監視は殆ど不可能なのである。
ードウェア構成により具現される。但し、第1の実施例
との相違点は、共通鍵ではなく公開鍵方式で暗号化する
点にある。図4には、第2の実施例に係るプログラム保
護動作をフローチャートにして示している。以下、図4
を参照しながら説明する。
フトウェア・プログラムをレキシブル・ディスク又はC
D−ROMなどの記憶媒体に格納した形態で、市場に流
通する。このソフトウェア・プログラムには、固有の識
別情報すなわちソフトウェアID(通常はシリアルな番
号で構成される)が付されている。ユーザは、フレキシ
ブル・ディスク又はCD−ROMなどの記憶媒体をソフ
トウェア供給業者から購入するという形態で、ソフトウ
ェア・プログラムの限定的な使用権を取得する(記憶媒
体の購入は、ソフトウェァの著作権や無制限な使用権を
全く意味しない点に充分留意されたい)。そして、ユー
ザは、記憶媒体を所定のドライブ・ユニット81/82
に装填して、ソフトウェア・プログラムをシステム20
0のハード・ディスク81上にインストールする。
D16を暗号化する手続(ステップS200)と、暗号
化したプロセッサID及びプロセッサ100に内蔵され
た公開鍵をソフトウェア供給業者に送付する手続(ステ
ップS202)を含んでいる。暗号化処理は、暗号化復
号化ユニット17が、ソフトウェア供給業者から与えら
れた公開鍵を用いて行われる。送付手続は、ソフトウェ
ア供給業者に対するKey(後述)の要求を意味する。
なお、送付手続は、郵送に依る他、NIC90で接続さ
れた外部ネットワーク経由での伝送という形態で行って
もよい。
情報を、自分の秘密鍵を用いて復号化して、元のプロセ
ッサIDを得る(ステップS204)。そして、このプ
ロセッサIDと、業者自身が手元で管理しているソフト
ウェアIDとを一体化して、再びプロセッサ100の公
開鍵を用いて暗号化して、Keyを生成する(ステップ
S206)。Keyは、プロセッサIDとソフトウェア
IDとを1つのコードとして同時に暗号化したものであ
り、各々に切り離すことはできない。Keyは、ソフト
ウェアの使用不能状態を解く鍵としての性質を持ち、郵
送あるいはネットワーク経由でユーザに返送される(ス
テップS208)。
タ・システム200上でソフトウェア・プログラムの実
行が促されたとする。これは、例えばOS(オペレーテ
ィング・システム)のような外部プログラムが"LOA
D MMU…"のような実行許可インストラクションを
発行して、メモリ管理ユニット15にプログラムIDと
プログラムの格納番地/属性情報がセットすることによ
り、実現される。
該当する処理手続は、図4の破線ブロックで囲まれてい
る。実行許可は、メモリ管理ユニット15への各変数の
セット以外に所定の認証手続を含んでいる。
プロセッサ100は、受け取っているKeyを復号化し
て、プロセッサIDとソフトウェアIDとを取得する
(ステップS210)。復号化処理は、暗号化復号化ユ
ニット17が、プロセッサ100自身に内蔵された秘密
鍵を用いて行う。
得られたプロセッサIDとソフトウェアIDを、プロセ
ッサ100自身に内蔵されたプロセッサID、及び装填
した記憶媒体から得られたソフトウェアIDの各々と比
較する(ステップS212)。
メモリ管理ユニット15によるプログラムの実行は拒否
される(ステップS214)。他方、照合が成功裡に終
わったならば、メモリ管理ユニット15によるプログラ
ムの実行は肯定され(ステップS216)、プログラム
が実行される(ステップS218)。
手続は、例えばマイクロコードROM14中で、上述の
ようなインストラクションの処理手続を記述することに
よって実現可能である。
d MMU …"という単一のインストラクションで実
行される。該インストラクションを記述した疑似マイク
ロプログラム・コードを、以下に示しておく。
証手続は、外部プログラムからは全く見えない状態で実
行される。本実施例に係る認証手続は、プロセッサ・チ
ップ100内部で完結されるので、プロセッサ100外
部からの監視は殆ど不可能なのである。
セッサIDを用いず、これに代わって時々刻々発生する
乱数を用いるとともに、セキュリティ・デバイス95と
の協働的動作によってプログラム保護を行う点で、上述
の第1及び第2の実施例とは相違する。
るコンピュータ・システム200及びプロセッサ100
のハードウェア構成を模式的に示している。以下、各部
について説明する。
ロセッサ・バス101は、ブリッジ回路60経由でシス
テム・バス70に接続されている。ブリッジ回路60
は、プロセッサ・バス101とシステム・バス70間の
動作速度の相違を吸収するためのデータ・バッファや、
メイン・メモリ50へのアクセス動作を制御するための
メモリ・コントローラを含んでいる。
が実行するプログラム・コードや処理データを一時格納
するための読み書き可能メモリであり、通常は、1以上
のDRAM(ダイナミックRAM)チップで構成され
る。メイン・メモリ50上で展開されるメモリ空間は、
メモリ管理ユニット15によって管理される。
eral Component Interconnect)バスやISA(Industr
y Standard Architecture)バスが該当し、各種周辺装
置が相互接続されている。周辺装置には、例えばキーボ
ードやディスプレイなどのコンソール類(図示しな
い)、ハード・ディスク・ドライブ(HDD)81、フ
レキシブル・ディスク・ドライブ(FDD)82、CD
−ROMドライブ83などの外部記憶装置類、外部ネッ
トワークと接続するためのネットワーク・インターフェ
ース・カード(NIC)90、シリアル・ポート経由で
シリアル・データの入出力を行うためのシリアルI/O
コントローラ91などが含まれる。なお、バス70上の
動作は、ロジック・アナライザなどを用いて解析するこ
とができる。
ュリティ・デバイス95が外部接続されている。セキュ
リティ・デバイス95は、保護対象たるソフトウェア・
プログラムに付随する性質を持ち、ソフトウェアIDを
格納する他、共通鍵又は公開鍵いずれかの方式による暗
号化ユニットを含んでいる。セキュリティ・デバイス9
5の動作については後述する。
ブル・ディスクやCD−ROMなどの記憶媒体の形態で
ソフトウェア・プログラムを配布する。各ユーザは、こ
れら記憶媒体を所定のドライブ・ユニットに装填し、H
DD81にコピーすることによって、ソフトウェア・プ
ログラムをシステムにインストールすなわち利用可能な
状態に置くようになっている。また、最近では、インタ
ーネットなどの外部ネットワーク経由でソフトウェア・
プログラムが配布されることも多くなっている。
U(Central Processing Unit)若しくはMPU(Micro
Processing Unit)と呼ばれるものである。プロセッサ
100は、通常はマザー・ボード(図示しない)上に搭
載される回路チップであり、各入出力装置(図示しな
い)を制御してデータの授受を行ったり、データを演算
処理し、処理結果をメイン・メモリ50上に記憶したり
するなどのコンピュータ・システム(図示しない)の中
枢機能を果たしている。
セッサ100は、バス・インターフェース11と、デコ
ーダ12と、制御ユニット13と、マイクロコードRO
M14と、メモリ管理ユニット15と、暗号化復号化ユ
ニット17と、乱数発生ユニット18とを含んでいる。
サ100外部のコンポーネントとの間でインストラクシ
ョンやデータを授受するためのユニットである。バス・
インターフェース11は、プロセッサ・バス17と直結
している。なお、プロセッサ・バス17は、ブリッジ回
路60を経由してメイン・メモリ50やシステム・バス
70と相互接続されている。
で受け取ったインストラクションを解釈して、制御ユニ
ット13が理解できる形式に変換するためのユニットで
ある。
を実行する手順を整えるユニットである。実行するイン
ストラクションは、ワイヤード・ロジック(配線論理)
で実行するタイプと、マイクロ・プログラムで実行する
タイプの2つに大別される。前者の場合は、インストラ
クションの実行制御に必要な論理を直線的に実装した順
序回路が用いられる。また、後者の場合には、インスト
ラクションはマイクロコード(又はピココード)と呼ば
れるさらに細かいコードの集合(すなわちマイクロプロ
グラム)で構成されており、該当するマイクロプログラ
ムをマイクロコードROM14から読み出して実行する
ことになる。なお、1つのプロセッサで利用できるイン
ストラクション全体を「インストラクション・セット」
と呼ぶ。
クションの実行に必要なマイクロードを格納した読み出
し専用メモリである。言い換えれば、マイクロコードR
OM14は、各インストラクションの実行手順を定義し
た不揮発メモリである。例えば、"LOAD"、"STO
RE"、"MOVE"などのインストラクションは、ある
変数をプロセッサ100内のレジスタ(図示しない)に
書き込むためのインストラクションであるが、これらの
動作の詳細をマイクロコードROM14内で記述するこ
とによって定義することができる。
ログラム・コードやデータをメイン・メモリ上に展開す
るなど、プロセッサ100のメモリ空間を管理するため
のユニットである。メモリ管理ユニット15は、通常、
仮想記憶機能とメモリ保護機能という2つの機能を提供
している。仮想記憶機能とは、論理アドレスを物理アド
レスに変換したり、物理アドレスに該当するブロック
(ページ)がメイン・メモリ上に存在しないときに外部
記憶装置との間でブロック(ページ)の入れ替え(すな
わち「スワッピング」)を行う機能のことである。ま
た、メモリ保護機能とは、1つのプログラムで生じた障
害が他のプログラムに影響を及ぼさないようにする機能
のことである。
空間上に存在する各プログラムのアドレス情報や属性情
報を管理するためのMMUテーブルを備えている。MM
Uテーブルの構造や機能は図2を参照した上記説明と略
同一なので、ここでは説明を省略する。
させるためには、メモリ管理ユニット15にプログラム
IDとそのアドレス情報・属性情報を与える旨のプログ
ラム・コードを制御ユニット13に供給すればよい。一
般には、"Load MMU…"なるインストラクション
によって、実質上、アプリケーションの実行が許可され
る。
…"インストラクションは、マイクロプログラムという
形態で実装され、メモリ管理ユニット15への各変数セ
ットの他に、所定の認証手続が含まれている。この認証
手続は、マイクロプログラム中で記述されているので、
プロセッサ100の外部からは認証手続の存在自体が見
えない。認証手続は、プロセッサ・チップ100内部で
完結的に実行されるので、この動作を外部から監視する
ことは殆ど不可能である。したがって、"Load M
MU …"インストラクションを発行した外部プログラ
ムからは全く見えない状態で、プロセッサ100はこの
認証手続を実行することができる。但し、認証手続の詳
細は後述する。
タを暗号化したり、逆に暗号化されたデータを復号化す
るための演算ユニットである。例えば、プロセッサ10
0が外部に出力する乱数のように秘匿性のあるデータ
は、暗号化復号化ユニット17によって予め暗号化して
から、バス・インターフェース11経由でプロセッサ1
00の外部に出力される。逆に、暗号化されたデータ
(例えばソフトウェア供給者から渡されるKey:後
述)の復号化も行う。
鍵のうちいずれの方式を採用してもよい。後者の公開鍵
方式は、公開鍵と秘密鍵という一組の暗号鍵が用いら
れ、一方の鍵で暗号化したときには他方の鍵でしか復号
化できない。例えば、第3者が公開鍵で暗号化したデー
タは秘密鍵を持つ本人しか復号化できないので、秘密情
報を安全に送付することができる(周知)。
発生するためのユニットであり、本実施例ではプロセッ
サIDの代わりに用いられる。乱数を用いるのは、固定
値を用いたのでは、認証手続を複数回重ねて動作を監視
することで見破られてしまう虞があるからである。
は、図5に示した以外にも多くのユニット等が必要であ
る。図5から省略されたユニットの例は、整数同士の算
術演算と論理演算(AND,OR,NOT)を担当する
ALU(Arithmetic and Logic Unit)や、実数(浮動
小数点等)演算を担当するFPU(Floating-Point Uni
t)、インストラクションの実行手順を直線的に実装し
た配線論理回路(PLA:Programmable Logic Arra
y)、入出力用のレジスタなどである。但し、これらは
当業者には周知であり、また、本発明の要旨を構成する
ものではないので、本明細書中では省略している。ま
た、図面の錯綜を回避するため、図中の各ハードウェア
・ブロック間の接続も一部しか図示していない点を了承
されたい。
ム保護動作について、図6を参照しながら説明する。
フトウェア・プログラムをフレキシブル・ディスク又は
CD−ROMなどの記憶媒体に格納した形態で、市場に
流通する。このソフトウェア・プログラムには、固有の
識別情報すなわちソフトウェアID(通常はシリアルな
番号で構成される)が付されている。ユーザは、フレキ
シブル・ディスク又はCD−ROMなどの記憶媒体をソ
フトウェア供給業者から購入するという形態で、ソフト
ウェア・プログラムの限定的な使用権を取得する(記憶
媒体の購入は、ソフトウェァの著作権や無制限な使用権
を全く意味しない点に充分留意されたい)。
相違するのは、ソフトウェア・プログラムを格納した記
憶媒体と一緒にセキュリティ・デバイス95が配布され
る点である。ユーザは、ソフトウェア・プログラムをハ
ード・ディスク81上にインストールするともに、セキ
ュリティ・デバイス95をシリアル・ポートに外部接続
する(ステップS300)。この実施例では、Keyの
要求は、ソフトウェア供給業者ではなくセキュリティ・
デバイス95に対して行われる(後述)。
ウェア・プログラムの実行が促されたとする。これは、
例えばOS(オペレーティング・システム)のような外
部プログラムが"LOAD MMU…"のような実行許可
インストラクションを発行して、メモリ管理ユニット1
5にプログラムIDとプログラムの格納番地/属性情報
がセットすることにより、実現される。
該当する処理手続は、図6の破線ブロックで囲まれてい
る。実行許可は、メモリ管理ユニット15への各変数の
セット以外に所定の認証手続を含んでいる。
プロセッサ100は、まず、乱数発生ユニット18が発
生した乱数をセキュリティ・デバイス95に送ること
で、Keyの要求を行う(ステップS302)。乱数の
送付はシステム・バス70経由で行われる。但し、乱数
は時々刻々変化する性質を持ち、同じ乱数は一回しか使
用しないので、バス70の動作をスヌープされてセキュ
リティが破られる可能性は極めて低い。
た乱数と、自身が格納するソフトウェアIDとを一体化
して、共通鍵を用いて暗号化してKeyを生成し、シス
テム・バス70経由でプロセッサ100に送り返す(ス
テップS304)。
yを復号化して、乱数とソフトウェアIDとに分解する
(ステップS306)。復号化処理は、暗号化復号化ユ
ニット17を用いて行われる。
得られた乱数とソフトウェアIDを、プロセッサ100
自身が保持する元の乱数、及び装填した記憶媒体から得
られたソフトウェアIDの各々と比較する(ステップS
308)。
メモリ管理ユニット15によるプログラムの実行は拒否
される(ステップS310)。他方、照合が成功裡に終
わったならば、メモリ管理ユニット15によるプログラ
ムの実行は肯定され(ステップS312)、プログラム
が実行される(ステップS314)。
手続は、例えばマイクロコードROM14中で、上述の
ようなインストラクションの処理手続を記述することに
よって実現可能である。
d MMU …"という単一のインストラクションで実
行される。該インストラクションを記述した疑似マイク
ロプログラム・コードを、以下に示しておく。
証手続は、外部プログラムからは全く見えない状態で実
行される。本実施例に係る認証手続は、プロセッサ・チ
ップ100内部で完結されるので、プロセッサ100外
部からの監視は殆ど不可能なのである。
ードウェア構成により具現される。但し、第3の実施例
との相違点は、共通鍵ではなく公開鍵方式で暗号化する
点にある。図7には、第4の実施例に係るプログラム保
護動作をフローチャートにして示している。以下、図7
を参照しながら説明する。
フトウェア・プログラムをフレキシブル・ディスク又は
CD−ROMなどの記憶媒体に格納した形態で、市場に
流通する。このソフトウェア・プログラムには、固有の
識別情報すなわちソフトウェアID(通常はシリアルな
番号で構成される)が付されている。ユーザは、フレキ
シブル・ディスク又はCD−ROMなどの記憶媒体をソ
フトウェア供給業者から購入するという形態で、ソフト
ウェア・プログラムの限定的な使用権を取得する(記憶
媒体の購入は、ソフトウェァの著作権や無制限な使用権
を全く意味しない点に充分留意されたい)。
を格納した記憶媒体と一緒にセキュリティ・デバイス9
5に配布される。ユーザは、ソフトウェア・プログラム
をハード・ディスク81上にインストールするともに、
セキュリティ・デバイス95をシリアル・ポートに外部
接続する(ステップS400)。Keyの要求は、ソフ
トウェア供給業者ではなくセキュリティ・デバイス95
に対して行われる(後述)。
ウェア・プログラムの実行が促されたとする。これは、
例えばOS(オペレーティング・システム)のような外
部プログラムが"LOAD MMU…"のような実行許可
インストラクションを発行して、メモリ管理ユニット1
5にプログラムIDとプログラムの格納番地/属性情報
がセットすることにより、実現される。
該当する処理手続は、図7の破線ブロックで囲まれてい
る。実行許可は、メモリ管理ユニット15への各変数の
セット以外に所定の認証手続を含んでいる。
プロセッサ100は、まず、乱数発生ユニット18が発
生した乱数とプロセッサ100の公開鍵をセキュリティ
・デバイス95に送ることで、Keyの要求を行う(ス
テップS402)。乱数の送付はシステム・バス70経
由で行われる。但し、乱数は時々刻々変化する性質を持
ち、同じ乱数は一回しか使用しないので、バス70の動
作をスヌープされてセキュリティが破られる可能性は極
めて低い。
た乱数と、自身が格納するソフトウェアIDとを一体化
して、公開鍵を用いて暗号化してKeyを生成し、シス
テム・バス70経由でプロセッサ100に送り返す(ス
テップS404)。
てKeyを復号化して、乱数とソフトウェアIDとに分
解する(ステップS406)。復号化処理は、暗号化復
号化ユニット17を用いて行われる。
得られた乱数とソフトウェアIDを、プロセッサ100
自身が保持する元の乱数、及び装填した記憶媒体から得
られたソフトウェアIDの各々と比較する(ステップS
408)。
メモリ管理ユニット15によるプログラムの実行は拒否
される(ステップS410)。他方、照合が成功裡に終
わったならば、メモリ管理ユニット15によるプログラ
ムの実行は肯定され(ステップS412)、プログラム
が実行される(ステップS414)。
手続は、例えばマイクロコードROM14中で、このよ
うにインストラクションの処理手続を記述することによ
って実現可能である。
d MMU …"という単一のインストラクションで実
行される。該インストラクションを記述した疑似マイク
ロプログラム・コードを、以下に示しておく。
証手続は、外部プログラムからは全く見えない状態で実
行される。本実施例に係る認証手続は、プロセッサ・チ
ップ100内部で完結されるので、プロセッサ100外
部からの監視は殆ど不可能なのである。
解してきた。しかしながら、本発明の要旨を逸脱しない
範囲で当業者が該実施例の修正や代用を成し得ることは
自明である。すなわち、例示という形態で本発明を開示
してきたのであり、限定的に解釈されるべきではない。
本発明の要旨を判断するためには、冒頭に記載した特許
請求の範囲の欄を参酌すべきである。
コンピュータ・システムに提供されるソフトウェア・プ
ログラムの不正な使用・実行を防止する優れた技術を提
供することができる。
実行防止機能を備えた優れたプロセッサ、プログラムの
不正実行を防止するためにプロセッサが実行するインス
トラクション、及びプログラムの不正実行防止方法を提
供することができる。
更することができないプログラムの不正実行防止機能付
き優れたプロセッサ、プロセッサが実行するインストラ
クション、及びプログラムの不正実行防止方法を提供す
ることにある。
者がソフトウェア・プログラムの使用権をただ1つのプ
ロセッサにのみ許可することができる、優れたプログラ
ムの不正実行防止方法を提供することができる。
ピュータ・システム及びプロセッサ100のハードウェ
ア構成を模式的に示した図である。
に示した図である。
グラム保護動作を示したフローチャートである。
グラム保護動作を示したフローチャートである。
ピュータ・システム及びプロセッサ100のハードウェ
ア構成を模式的に示した図である。
グラム保護動作を示したフローチャートである。
グラム保護動作を示したフローチャートである。
…制御ユニット、14…マイクロコードROM、15…
メモリ管理ユニット(MMU)、16…プロセッサI
D、17…暗号化復号化ユニット、50…メイン・メモ
リ、60…ブリッジ回路、70…システム・バス、81
…ハード・ディスク・ドライブ(HDD)、82…フレ
キシブル・ディスク・ドライブ(FDD)、83…CD
−ROMドライブ、90…ネットワーク・インターフェ
ース・カード(NIC)、91…シリアルI/Oコント
ローラ、95…セキュリティ・デバイス、100…プロ
セッサ、200…コンピュータ・システム。
Claims (11)
- 【請求項1】メイン・メモリを管理する機能を持つメモ
リ管理ユニットを内蔵するとともに、自身を動作させる
ためのインストラクション・セットを有するタイプの、
プログラムの不正実行防止機能付きプロセッサであっ
て、 前記インストラクション・セット中には前記メイン・メ
モリ上のプログラム・コードの実行を許可する実行許可
インストランションが含まれ、 前記実行許可インストラクションは、実行すべきプログ
ラムの識別番号とアドレス情報・属性情報を前記メモリ
管理ユニットに与える動作の他に、所定の認証動作を含
む、ことを特徴とするプログラムの不正実行防止機能付
きプロセッサ。 - 【請求項2】前記所定の認証動作は、前記プロセッサ内
部に格納された識別情報と前記プロセッサの外部から供
給された識別情報との比較動作を含むことを特徴とする
請求項1に記載のプログラムの不正実行防止機能付きプ
ロセッサ。 - 【請求項3】前記識別情報は、前記プロセッサに固有の
プロセッサIDとソフトウェア・プログラムに固有のソ
フトウェアIDとで構成されることを特徴とする請求項
2に記載のプログラムの不正実行防止機能付きプロセッ
サ。 - 【請求項4】前記識別情報は、前記プロセッサが内部的
に発生した乱数とソフトウェア・プログラムに固有のソ
フトウェアIDとで構成されることを特徴とする請求項
2に記載のプログラムの不正実行防止機能付きプロセッ
サ。 - 【請求項5】前記所定の認証動作が成功裡に終わったと
きには実行すべきプログラムの識別番号とアドレス情報
・属性情報を前記メモリ管理ユニットに与える動作を許
可するが、前記所定の認証動作が失敗したときには実行
すべきプログラムの識別番号とアドレス情報・属性情報
を前記メモリ管理ユニットに与える動作を禁止すること
を特徴とする請求項1に記載のプログラムの不正実行防
止機能付きプロセッサ。 - 【請求項6】メイン・メモリ上にプログラム・コードや
データを読み出し/書き込み動作しながら所定の処理を
実行するタイプの、プログラムの不正実行防止機能付き
プロセッサであって、 前記プロセッサの外部とインストラクションやデータの
授受を行うバス・インターフェースと、 受け取ったインストラクションの解読を行うデコーダ
と、 1以上のインストラクションについての手順を格納した
内蔵メモリと、 1以上のインストラクションについての手順を実装した
論理回路と、 前記内蔵メモリに格納された手順や前記論理回路に実装
された手順に従ってインストラクションを実行する制御
ユニットと、 前記プロセッサに固有のプロセッサIDと、 前記メイン・メモリを管理する機能を持つメモリ管理ユ
ニットとを含み、 前記内蔵メモリ又は前記論理回路のうちの1つは前記メ
イン・メモリ上のプログラム・コードの実行を許可する
実行許可インストラクションの手順を格納しており、 且つ、前記実行許可インストラクションの手順は、実行
すべきプログラムの識別情報とアドレス情報・属性情報
を前記メモリ管理ユニットに与える動作の他に、所定の
認証動作を含む、ことを特徴とするプログラムの不正実
行防止機能付きプロセッサ。 - 【請求項7】さらに、前記プロセッサIDを暗号化して
前記バス・インターフェース経由で前記プロセッサの外
部に出力する暗号化手段と、暗号化された識別情報を前
記バス・インターフェース経由で前記プロセッサの外部
から受け取るとともに復号化してプロセッサIDとソフ
トウェアIDを取り出す復号化手段とを含み、 前記所定の認証動作は各ID同士の比較動作を含むこと
を特徴とする請求項6に記載のプログラムの不正実行防
止機能付きプロセッサ。 - 【請求項8】前記所定の認証動作が成功裡に終わったと
きには実行すべきプログラムの識別番号とアドレス情報
・属性情報を前記メモリ管理ユニットに与える動作を許
可するが、前記所定の認証動作が失敗したときには実行
すべきプログラムの識別番号とアドレス情報・属性情報
を前記メモリ管理ユニットに与える動作を禁止すること
を特徴とする請求項6に記載のプログラムの不正実行防
止機能付きプロセッサ。 - 【請求項9】メイン・メモリ上にプログラム・コードや
データを読み出し/書き込み動作しながら所定の処理を
実行するタイプの、プログラムの不正実行防止機能付き
プロセッサであって、 前記プロセッサの外部とインストラクションやデータの
授受を行うバス・インターフェースと、 受け取ったインストラクションの解読を行うデコーダ
と、 1以上のインストラクションについての手順を格納した
内蔵メモリと、 1以上のインストラクションについての手順を実装した
論理回路と、 前記内蔵メモリに格納された手順や前記論理回路に実装
された手順に従ってインストラクションを実行する制御
ユニットと、 乱数発生ユニットと、 前記メイン・メモリを管理する機能を持つメモリ管理ユ
ニットとを含み、 前記内蔵メモリは前記メイン・メモリ上のプログラム・
コードの実行を許可する実行許可インストラクションの
手順を格納しており、 且つ、前記実行許可インストラクションの手順は、実行
すべきプログラムの識別情報とアドレス情報・属性情報
を前記メモリ管理ユニットに与える動作の他に、所定の
認証動作を含む、ことを特徴とするプログラムの不正実
行防止機能付きプロセッサ。 - 【請求項10】さらに、前記乱数発生ユニットが発生す
る乱数を前記バス・インターフェース経由で前記プロセ
ッサの外部に出力する乱数出力手段と、暗号化された識
別情報を前記バス・インターフェース経由で前記プロセ
ッサの外部から受け取るとともに復号化して乱数とソフ
トウェアIDを取り出す復号化手段とを含み、 前記所定の認証動作は乱数及びソフトウェアIDの比較
動作を含むことを特徴とする請求項9に記載のプログラ
ムの不正実行防止機能付きプロセッサ。 - 【請求項11】前記所定の認証動作が成功裡に終わった
ときには実行すべきプログラムの識別番号とアドレス情
報・属性情報を前記メモリ管理ユニットに与える動作を
許可するが、前記所定の認証動作が失敗したときには実
行すべきプログラムの識別番号とアドレス情報・属性情
報を前記メモリ管理ユニットに与える動作を禁止するこ
とを特徴とする請求項9に記載のプログラムの不正実行
防止機能付きプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002288529A JP4017149B2 (ja) | 2002-10-01 | 2002-10-01 | プログラムの不正実行防止機能付きプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002288529A JP4017149B2 (ja) | 2002-10-01 | 2002-10-01 | プログラムの不正実行防止機能付きプロセッサ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13672498A Division JP3713141B2 (ja) | 1998-05-19 | 1998-05-19 | プログラムの不正実行防止方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003162341A true JP2003162341A (ja) | 2003-06-06 |
JP4017149B2 JP4017149B2 (ja) | 2007-12-05 |
Family
ID=19197142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002288529A Expired - Fee Related JP4017149B2 (ja) | 2002-10-01 | 2002-10-01 | プログラムの不正実行防止機能付きプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4017149B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005056408A (ja) * | 2003-07-23 | 2005-03-03 | Semiconductor Energy Lab Co Ltd | マイクロプロセッサ及びグリッドコンピューティングシステム |
JP2007220071A (ja) * | 2006-01-18 | 2007-08-30 | Pfu Ltd | 情報処理装置、情報処理方法およびプログラム |
JP2008016013A (ja) * | 2006-06-07 | 2008-01-24 | Ricoh Co Ltd | 画像形成装置、ライセンス管理方法及びライセンス管理プログラム |
KR101041115B1 (ko) | 2008-09-02 | 2011-06-13 | 주식회사 신한은행 | 권한제어에 의한 웹사이트 이용방법 및 시스템과 이를 위한기록매체 |
KR101183369B1 (ko) | 2003-10-24 | 2012-09-17 | 마이크로소프트 코포레이션 | 프리-로그인 데이터 액세스 |
US8352724B2 (en) | 2003-07-23 | 2013-01-08 | Semiconductor Energy Laboratory Co., Ltd. | Microprocessor and grid computing system |
-
2002
- 2002-10-01 JP JP2002288529A patent/JP4017149B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005056408A (ja) * | 2003-07-23 | 2005-03-03 | Semiconductor Energy Lab Co Ltd | マイクロプロセッサ及びグリッドコンピューティングシステム |
US8352724B2 (en) | 2003-07-23 | 2013-01-08 | Semiconductor Energy Laboratory Co., Ltd. | Microprocessor and grid computing system |
KR101183369B1 (ko) | 2003-10-24 | 2012-09-17 | 마이크로소프트 코포레이션 | 프리-로그인 데이터 액세스 |
JP2007220071A (ja) * | 2006-01-18 | 2007-08-30 | Pfu Ltd | 情報処理装置、情報処理方法およびプログラム |
US8555074B2 (en) | 2006-01-18 | 2013-10-08 | Pfu Limited | Method and apparatus for processing information, and computer program product |
JP2008016013A (ja) * | 2006-06-07 | 2008-01-24 | Ricoh Co Ltd | 画像形成装置、ライセンス管理方法及びライセンス管理プログラム |
KR101041115B1 (ko) | 2008-09-02 | 2011-06-13 | 주식회사 신한은행 | 권한제어에 의한 웹사이트 이용방법 및 시스템과 이를 위한기록매체 |
Also Published As
Publication number | Publication date |
---|---|
JP4017149B2 (ja) | 2007-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3713141B2 (ja) | プログラムの不正実行防止方法 | |
US8065521B2 (en) | Secure processor architecture for use with a digital rights management (DRM) system on a computing device | |
CN100424678C (zh) | 使用隐含中间密钥来认证软件的系统和方法 | |
TW550501B (en) | Apparatus, method, and system for an access transaction | |
JP4073913B2 (ja) | 開放型汎用耐攻撃cpu及びその応用システム | |
US6363486B1 (en) | Method of controlling usage of software components | |
US6760441B1 (en) | Generating a key hieararchy for use in an isolated execution environment | |
US7900252B2 (en) | Method and apparatus for managing shared passwords on a multi-user computer | |
US7082615B1 (en) | Protecting software environment in isolated execution | |
US6609199B1 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
JP4610557B2 (ja) | データ管理方法、そのプログラム及びプログラムの記録媒体 | |
US20050060561A1 (en) | Protection of data | |
US7194634B2 (en) | Attestation key memory device and bus | |
US20050060568A1 (en) | Controlling access to data | |
US20070055892A1 (en) | Concealment of information in electronic design automation | |
US8266449B2 (en) | Security for storage devices | |
JPH0260009B2 (ja) | ||
US20060259978A1 (en) | Secure exchange of information in electronic design automation with license-related key generation | |
JP4017149B2 (ja) | プログラムの不正実行防止機能付きプロセッサ | |
KR101043255B1 (ko) | Usb 허브 보안 장치 및 이를 이용한 데이터 보안 방법 | |
CN110837627A (zh) | 一种基于硬盘序列号的软件版权认证方法、系统和设备 | |
JP3289656B2 (ja) | プログラムの実行制御方式 | |
KR20000025501A (ko) | 키록 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060718 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061012 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061012 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20061012 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070713 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070806 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070806 |
|
TRDD | Decision of grant or rejection written | ||
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070907 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20070907 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070914 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100928 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100928 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110928 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120928 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120928 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120928 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S202 | Request for registration of non-exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R315201 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120928 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130928 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
LAPS | Cancellation because of no payment of annual fees |