JP2005196257A - マイクロプロセッサ - Google Patents

マイクロプロセッサ Download PDF

Info

Publication number
JP2005196257A
JP2005196257A JP2003435287A JP2003435287A JP2005196257A JP 2005196257 A JP2005196257 A JP 2005196257A JP 2003435287 A JP2003435287 A JP 2003435287A JP 2003435287 A JP2003435287 A JP 2003435287A JP 2005196257 A JP2005196257 A JP 2005196257A
Authority
JP
Japan
Prior art keywords
register
program
authentication information
holding
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003435287A
Other languages
English (en)
Other versions
JP4282472B2 (ja
Inventor
Mikio Hashimoto
幹生 橋本
Hiromi Haruki
洋美 春木
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003435287A priority Critical patent/JP4282472B2/ja
Priority to US10/913,537 priority patent/US7603566B2/en
Publication of JP2005196257A publication Critical patent/JP2005196257A/ja
Application granted granted Critical
Publication of JP4282472B2 publication Critical patent/JP4282472B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Abstract

【課題】 効率的にかつ確実に第三者による侵入を防ぐことのできる仕組みを提供する。
【解決手段】 プログラムをプロセス単位で実行するマイクロプロセッサ10であって、第1プロセスに続いて実行される第2プロセスのプロセス識別情報と、第2プロセスの認証情報とを対応付けて保持する第1保持手段160と、外部からアクセス不能であって、第2プロセスの第1保持手段160のエントリ情報と第2プロセスの認証情報とを、第1プロセスの実行時に取得し、対応付けて保持する第2保持手段190と、切替命令が発行された場合に、第1保持手段160が保持する第2プロセスの認証情報と、第2保持手段190が保持する第2プロセスの認証情報とを比較し、認証情報が一致した場合に第2プロセスへの実行の切り替えを許可する切替許可手段120とを備えた。
【選択図】 図4

Description

本発明は、プログラムを実行するマイクロプロセッサに関するものである。
近年では、オープンシステムが普及してきている。オープンシステムにおいては、パーソナルコンピュータ(PC)などの一般ユーザ向けコンピュータのハードウェアやオペレーティングシステム(OS)のソースコードが開示されている。そして、エンドユーザは、オペレーティングプログラムを変更、改良することができる。これにより、エンドユーザは、所望のプログラムを得ることができる。
その一方で、アプリケーションプログラムが扱う情報の著作権や、プログラム自体の著作権を保護する必要がある。このためには、プログラムの秘密を守る仕組み、すなわちプログラムの改変を防止する仕組みが必要となる。アプリケーションプログラムに対する攻撃としては、OSのプログラムを改変して、アプリケーションプログラムを攻撃することが想定される。従って、OSに対してアプリケーションプログラムに対する攻撃を防ぐための処理を施すだけでは、第三者の侵入を防ぐことは困難である。このため、プログラムの秘密を守ることのできるハードウェアが必要である。一般に、OSを改変することに比べてハードウェアを改変することはエンドユーザにとって極めて困難だからである。
このような特徴を備えたハードウェア、特にマイクロプロセッサとして、耐タンパプロセッサが既に提案されている(特許文献1,非特許文献1)。このようなプロセッサは、マルチタスク環境でプログラムと当該プログラムにおいて利用される情報とを暗号化する機能を備えている。これにより、プログラムと情報が第三者に漏洩したり、プログラム等が改変されるのを防止している。
特開2003−108442号公報 リー他著 "コピー及び耐タンパソフトウェアに対するアークテクチャ−支援",コンピュータアーキテクチャーニュース、28(5)、p.168
しかしながら、従来システムを管理するOSが信頼できない環境においては、耐タンパプロセッサのみでは、悪意の第三者がOSのプログラムを改変して、アプリケーションプログラムを攻撃するのを防止することができないという問題があった。
本発明は、上記に鑑みてなされたものであって、効率的にかつ確実に第三者による侵入を防ぐことのできる仕組みを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、プログラムをプロセス単位で実行するマイクロプロセッサであって、第1プロセスに続いて実行される第2プロセスを識別するプロセス識別情報と、前記第2プロセスの認証に利用する認証情報とを外部から取得する第1取得手段と前記第1取得手段が取得した前記プロセス識別情報と前記認証情報とを対応付けて保持する第1保持手段と、前記第2プロセスの前記プロセス識別情報が保持されている前記第1保持手段のエントリを識別するエントリ情報と前記第2プロセスの前記認証情報とを、第1プロセスの実行時に前記第1保持手段から取得する第2取得手段と、外部からアクセス不能であって、前記第2取得手段が取得した前記エントリ情報と前記認証情報とを対応付けて保持する第2保持手段と、前記第1プロセスから前記第2プロセスへの切替命令が発行された場合に、前記第1保持手段が保持する前記第2プロセスの前記認証情報と、前記第2保持手段が保持する第2プロセスの前記認証情報とを比較し、比較の結果2つの前記認証情報が一致した場合に、前記第2プロセスへの実行の切り替えを許可する切替許可手段とを備えたことを特徴とする。
本発明にかかるマイクロプロセッサの第2保持手段は、外部からの侵入が不可能である。第2保持手段に保持されている情報は改変されない。従って、仮に第1保持手段に保持されている情報が改変されても、第2保持手段に保持されている情報は改変されていないので、両者を比較することにより、改変の有無が判断できる。すなわち、本発明にかかるマイクロプロセッサは、第2プロセスへの切り替え命令が発行されたときに、第1保持手段および第2保持手段がそれぞれ保持する認証情報を比較し、両者が一致した場合にのみプロセスの切り替えを許可することにより、悪意の第三者がOSを介して侵入するのを防止することができるという効果を奏する。
以下に、本発明にかかるマイクロプロセッサの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施の形態にかかるターゲットシステム全体を示す図である。ターゲットシステム10は、プロセッサ100と、外部メモリ200と、ハードディスク(HDD)などの2次記憶装置300と、これらを接続するシステムバス400とを主に備えている。そして、これらの協働により、各ソフトウェアベンダ500a,500b,・・・500zから暗号化されたプログラムを取得し、これを復号化した後に実行する。
本実施の形態にかかるターゲットシステム10は、ターゲットシステムユーザによる攻撃を防止することができる。ここで、ターゲットシステムユーザとは、ターゲットシステム10に対して悪意でプログラムを改変するなどの攻撃を行うユーザのことである。以下、ターゲットシステム10におけるターゲットシステムユーザによる攻撃を防止するための処理等について説明する。
図2は、第1ソフトウェアベンダ500aの機能構成を示すブロック図である。500aは、プログラム暗号化部510と、鍵暗号化部520とを有している。
プログラム暗号化部510は、平文プログラム(Pn)(n=1,2,・・・)を保護するためのプログラム鍵(Kxn)(n=1,2,・・・)を選択する。そして、所定の共通鍵暗号アルゴリズムにより暗号化して、暗号化済プログラム(Es(Ks)[Pn])を作成する。ここで、平文プログラム(Pn)は、ターゲットシステム10に送信され、ターゲットシステム10において実行されるプログラムである。
鍵暗号化部520は、プログラム鍵(Kxn)を所定のアルゴリズムにより公開鍵(Kp)で暗号化して配布鍵(Ep(Kp)[kxn])を作成する。ここで、公開鍵(Kp)は、ターゲットシステム10により公開されているターゲットシステム10に固有の公開鍵である。
プログラム暗号化部510によって暗号化された後の暗号化済プログラム(Es(Ks)[Pn])と、鍵暗号化部520によって暗号化された後の暗号化済プログラム鍵、すなわち配布鍵(Ep(Kp)[kxn])がターゲットシステム10に送られる。なお、以下暗号化済プログラム(Es(Ks)[Pn])および配布鍵(Ep(Kp)[kxn])の組み合わせをプログラムnと称する。
なお、第2ソフトウェアベンダ500b〜第nソフトウェアベンダ500nの機能構成等は、図2を参照しつつ説明した第1ソフトウェアベンダ500aの機能構成等と同様である。
図3は、ターゲットシステム10の詳細な構成を示している。ターゲットシステム10のプロセッサ100は、プロセッサコア120と、キャッシュコントローラ140と、バスインターフェースユニット(BIU)160と、公開鍵処理部170とを有している。
また、外部メモリ200は、オペレーティングシステム(OS)210と、プログラム保持部220とを有している。
OS210は、ターゲットシステム10全体を管理する。OS210は、複数のアプリケーションプログラム(以下単に「プログラム」と称す)を動的に外部メモリ200に読み込む。そして、各プログラムを管理する。プログラム保持部220は送付元となる各ソフトウェアベンダにおいて暗号化されたプログラムおよび各プログラムに対応する配布鍵を保持する。
外部メモリ200および2次記憶装置300の内容はターゲットシステムのユーザが自由に読み出すことができる。また、書き換えることもできる。これらの機能は、プログラムの秘密保護の観点からは問題となる。しかし、マルチタスク環境で、ユーザの目的に応じてシステムの資源を適切に配分管理するためには不可欠の機能である。従って、悪意の第三者からの攻撃を防止するため、これらの読み出しおよび書き換えを制限するのは適切ではない。本実施の形態のプロセッサは、プログラムのベンダとターゲットシステムユーザとの間に立って秘密保護と資源の配分管理を行う、いわば信頼できる第3者として機能する。LSIとして実装されたプロセッサを改造して、本来守られている秘密情報を取り出したり、秘密保護の仕組みを変更することは一般のユーザにとっては事実上不可能といってよく、またプロセッサを偽造するにも高度な技術が必要である。よってプロセッサがプログラムのベンダとターゲットシステムユーザの両方からの信頼を受けるものとすることは妥当な仮定である。
ターゲットシステム10は、ソフトウェアベンダ500から配布鍵(Ep(Kp)[Kxn])および暗号化済プログラム(Es(Ks)[Pn])を取得すると、2次記憶装置300に蓄積する。そして、プログラム実行時に配布鍵(Ep(Kp)[Kxn])および暗号化済プログラム(Es(Ks)[Pn])をプログラム保持部220に読み込む。
公開鍵処理部170は、プロセッサ秘密鍵(Ks)を利用して、プログラム保持部220が保持している配布鍵(Ep(Kp)[Kxn])を復号化する。これにより、プログラム鍵(Kxn)を得る。ここで、プロセッサ秘密鍵(Ks)は、プロセッサ公開鍵(Kp)に対応する秘密鍵である。
BIU160は、外部との入出力を行うインターフェースであって、プロセッサ100と外部との情報の授受は、すべてBIU160を介して行われる。BIU160は、また公開鍵処理部170において得られたプログラム鍵(Kxn)を利用して、暗号化済プログラム(Es(Ks)[Pn])を復号化する。これにより、平文プログラム(Pn)が得られる。プロセッサコア120が平文プログラム(Pn)を実行する際には、キャッシュコントローラ140は、平文プログラム(Pn)およびプログラム鍵(Kxn)を保持する。
上述のように、プログラムに含まれる暗号化済プログラム(Es(Ks)[Pn])および配布鍵(Ep(Kp)[Kxn])を復号化するには、それぞれプログラム鍵(Kxn)およびプロセッサ公開鍵(Kp)が必要である。従って、プログラムが外部メモリ200や2次記憶装置300に保持されていても、ターゲットシステムユーザがプログラム鍵(Kxn)およびプロセッサ公開鍵(Kp)の値を知らない場合には、ターゲットシステムユーザによってこれらのプログラムが改変等されることはない。すなわち、プログラムは安全である。なお、本実施の形態においては、プログラム鍵(Kxn)および平文プログラム(Pn)の内容は、プロセッサコア120の仕様に定められたユーザからの操作を除いては、外部から直接読み出すことはできない。
BIU160による復号化によって得られた平文プログラム(Pn)は、キャッシュコントローラ140が有するキャッシュメモリに読み込まれる。復号化とキャッシュメモリへの読み込みは、所定のキャッシュアルゴリズムによるプログラムの実行に従って、部分的に行われる。すなわち、平文プログラム(Pn)全体が一度にキャッシュメモリに読み込まれなくともよい。また、キャッシュメモリに読み込まれたプログラムは既に復号されている。従って、プロセッサコア120は、暗号化されていないプログラムと同様に、当該プログラムを実行することができる。
以上のように、復号化後のプログラム鍵(Kxn)および平文プログラム(Pn)を扱う部分は、プロセッサ100の内部に限定される。すなわち、OS210が復号化後のプログラム鍵(Kxn)および平文プログラム(Pn)を扱う場合はない。このため、OS210がプログラム鍵(Kxn)または平文プログラム(Pn)に対して不適切な処理を施すことによる悪意の第三者による侵入を防止することができる。
以下、このようなプロセッサ100の構成および処理について説明する。本実施の形態のプロセッサ100は、マルチタスクのコンピュータシステムにおいて、マルチベンダのプログラムに対してプログラムを秘密にするための安全性を備えた耐タンパプロセッサである。耐タンパプロセッサとは、マルチタスクOSの管理下において、プロセッサハードウェアによりマルチベンダのプログラムを保護することができるプロセッサである。具体的には、OSが信用できないことを前提として、プロセッサパッケージ単体のハードウェア機能で完結するプログラムの秘密保護機能を提供する。
耐タンパプロセッサハードウェアは、従来OSが管理していたプロセス情報の一部を直接管理する。また、プログラム自身の暗号処理をハードウェアが処理する。この点は、耐タンパプロセッサハードウェアと通常のプロセッサハードウェアとの大きな違いである。また、耐タンパプロセッサはマルチタスク環境をサポートするため、複数のECUを擬似並行的に実行できる。ここで、ECUとは、耐タンパプロセッサハードウェアが管理するプロセス、すなわち実行制御ユニットのことである。
図4は、プロセッサ100の詳細な構成を示すブロック図である。公開鍵処理部170は、プロセッサ秘密鍵保持部172と、配布鍵復号化部174と、ハッシュ計算部176とを有している。配布鍵復号化部174は、プロセッサ秘密鍵保持部172が保持しているプロセッサ秘密鍵(Ks)を利用して、システムバス400を介して受け取った配布鍵(Ep(Kp)[kxn])を復号化し、プログラム鍵(Kxn)を得る。ハッシュ計算部176は、システムバス400を介して受け取った配布鍵(Ep(Kp)[kxn])に対して所定のアルゴリズムを施し、配布鍵検証子(Hxn)を生成する。配布鍵復号化部174によって得られたプログラム鍵(Kxn)およびハッシュ計算部176によって得られた配布鍵検証子(Hxn)は、後述の共通鍵テーブル162に登録される。なお、本実施の形態においては、配布鍵検証子(Hxn)は、後述のプログラムの認証に利用される。
ここで、図5を参照しつつ、配布鍵(Ep(Kp)[kxn])と配布鍵検証子(Hxn)の関係について説明する。配布鍵(Ep(Kp)[kxn])は、プログラム鍵602およびプログラム長604などの配布鍵構成要素600をプロセッサ公開鍵(Kp)で暗号化したデータである。また、配布鍵検証子(Hxn)は、配布鍵(Ep(Kp)[kxn])を所定のアルゴリズムに基づいて計算したハッシュ値である。所定のアルゴリズムとしては、例えば、SHA−256などがある。
例えば、RSA2048のアルゴリズムを使用した場合、配布鍵(Ep(Kp)[kxn])は2048ビットのデータ量を有する。これに対し、SHA−256を用いると、配布鍵検証子(Hxn)は配布鍵(Ep(Kp)[kxn])のデータ量の1/8のデータ量になる。このように、ハッシュ値を利用することにより、プロセッサ内部のテーブル量やメモリ容量を削減することができる。
なお、本実施の形態においては、データ量を削減する観点から、配布鍵検証子を利用することとしたが、他の例としては、配布鍵検証子を利用するのにかえて、配布鍵そのものを利用してもよい。
また、後述のように、ターゲットシステム10のプロセッサ100において呼出元であるプログラムが呼出先であるプログラムを認証する場合には、配布鍵検証子の真正性が必要とされる。そこで、呼出先プログラムの配布鍵検証子に、配布鍵検証子の真正性を確認するための情報としてプログラムベンダによる証明書(CertH)をさらに付与する。これにより、呼出元であるプログラムは、上記証明書を検証することにより、呼出先であるプログラムを認証するための配布鍵検証子の真正性を確認できる。
再び説明を図4に戻す。BIU160は、共通鍵テーブル162と、セレクタ164と、暗号/復号処理部166とを有している。共通鍵テーブル162は、複数のエントリ領域を有しプロセッサ100が実行するプロセスに対するプログラム鍵などの共通鍵をエントリ領域に保持する。暗号/復号処理部166は、共通鍵によりプロセスを暗号化または復号化する。セレクタ164は、共通鍵テーブル162に読み込まれた共通鍵のうちから所定の共通鍵を抽出する。
図6は、共通鍵テーブル162のデータ構成を模式的に示している。共通鍵テーブル162は、U0〜Umまでのm+1個のエントリを有する。各エントリにECUが登録される。ここで、ECUとは、耐タンパプロセッサが管理するプロセスのことである。プロセッサ100は、ECUを1単位として処理を実行する。また、ECUIDとは、プロセッサ100がECUを一意に識別するための識別情報である。
各エントリは、それぞれプログラム鍵フィールドと、プログラム長フィールドと、配布鍵検証子フィールドと、データ鍵フィールドとを有している。
プログラム鍵フィールドには、対応するプログラムのプログラム鍵(Kxn)が格納されている。プログラム長フィールドには、対応するプログラムのプログラム長(Lx)が格納されている。配布鍵検証子フィールドには、プログラム鍵に対応する配布鍵から生成された配布鍵検証子(Hxn)が格納されている。データ鍵フィールドには、データ鍵(Kdn)が格納されている。ここで、データ鍵とは、データの暗号化および復号化に利用される暗号鍵のことである。
なお、本実施の形態にかかるBIUは、本発明にかかる第1取得手段および第1保持手段を構成する。
再び、説明を図4に戻す。キャッシュコントローラ140は、データキャッシュメモリ142と命令キャッシュメモリ144と、各メモリを制御するキャッシュメモリ制御部146とを有している。
図7は、データキャッシュメモリ142のメモリマップを模式的に示している。データキャッシュメモリ142は、キャッシュライン1420a〜1420nを有している。また、各キャッシュラインは、タグフィールドとデータフィールドを有している。さらに、タグフィールドは、制御ビットフィールドと、ECUIDフィールドとアドレスフィールドとを有している。ECUIDフィールドは、ECUIDを保持する。アドレスフィールドは、ECUのアドレスを保持する。
制御ビットフィールドは、有効フィールドと、ダーティフィールドと、共有フィールドとを有している。有効フィールドは、各キャッシュラインの有効/無効(バリッド/インバリッド)を示す情報を保持する。ダーティフィールドは、キャッシュ内容が外部メモリ200の内容から更新されている場合に、外部メモリ200において対応する更新がなされているか否か、すなわち外部メモリ200における更新の有無(ダーティ/クリーン)を示す情報を保持する。共有フィールドは、キャッシュラインを他のプロセッサと共有しているか否か(シェアド/エクスクルーシブ)を示す情報を保持する。
再び、説明を図4に戻す。プロセッサ100のプロセッサコア120は、汎用レジスタ121と、データ暗号化属性レジスタ122と、呼出元保持レジスタ123と、呼出先指定レジスタ124と、切替許可判定部125と、カレントECUID保持部126とを有している。図8−1〜図8−4に各レジスタのデータ構成を模式的に示している。図8−1は、汎用レジスタ121のデータ構成を示している。図8−2は、データ暗号化属性レジスタ122のデータ構成を示している。図8−3は、呼出元保持レジスタ123のデータ構成を示している。図8−4は、呼出先指定レジスタ124のデータ構成を示している。
汎用レジスタ121には、プロセッサコア120において現在時実行中のプロセスのECUIDが設定されている。データ暗号化属性レジスタ122には、処理対象となるプログラムの暗号化に関連する値が設定されている。呼出元保持レジスタ123には、呼出元であるプログラム等に関連する情報が設定されている。
呼出先指定レジスタ124には、呼出元であるプログラム等から呼び出される呼出先のプログラム等に関連する情報が設定されている。切替許可判定部125は、呼出元と呼出先の間の実行の切り替えを許可するか否かを判定する。カレントECUID保持部126には、現在実行中のECUのECUIDが設定されている。
プロセッサ100は、さらにセキュアコンテキストスイッチ部180を有している。セキュアコンテキストスイッチ部180は、レジスタ値コピー部182と、コンテキストバッファ部184とを有している。レジスタ値コピー部182はプロセッサコア120の各レジスタの値をコンテキストバッファ部184にコピーする。より具体的には、レジスタ値コピー部182は、一のプログラムの実行中に割り込みが発生し実行が中断される場合、中断時におけるプロセッサコア120の各レジスタの情報をコンテキストバッファ部184に保存する。
なお、本実施の形態にかかるセキュアコンテキストスイッチ部180は、本発明にかかる退避手段および複写手段を構成する。
プロセッサ100は、さらにECU管理部190を有している。ECU管理部190は、ECU管理テーブル192を有している。ECU管理部190は、プロセッサコア120が実行すべきECUのECUIDをECU管理テーブル192に登録する。ECU管理テーブル192は、複数のエントリ領域を有している。図9は、ECU管理テーブル192のデータ構成を模式的に示している。ECU管理テーブル192の各エントリ領域は、ECU状態フィールド1920と、プログラム開始アドレスフィールド1922と、プログラム長フィールド1924と、検証子フィールド1926とを有している。
ECU状態フィールド1920には、ECUの実行状態を示す情報が設定されている。プログラム開始アドレスフィールド1922には、ECUのプログラムの開始アドレスが設定されている。プログラム長フィールド1924には、ECUのプログラム長が設定されている。検証子フィールド1926には、ECUに対応する配布鍵の配布鍵検証子が設定されている。
なお、本実施の形態にかかるECU管理部190は、本発明にかかる第2取得手段および第2保持手段を構成する。
次に、本実施の形態のプロセッサにおけるソフトウェアモジュール間の認証処理について説明する。ここでは、一例として、図10を参照しつつプログラムAからライブラリBを呼び出すときの認証処理について説明する。プログラムAは、プロセスとして実行されるプログラムである。なお、ライブラリBはプログラムAのプロセスとメモリ空間全体を共有する。図10ではOS,プログラムA,ライブラリBが並行して実行されるようにかかれているが、ある時点においてプロセッサコアが実行するプログラムはただ一つであり、それぞれのプログラムは擬似並列的に動作している。以下の説明ではあるプログラムから別のプログラムへの切り替えを制御を移すと記述する。
まず、OS210は、プログラムAをECU管理テーブル192に登録する(ステップS100)。具体的には、まず共通鍵テーブル162からプログラムAを登録するECUIDを決定する。そして、決定したECUIDにプログラムAの配布鍵、配布鍵検証子等を登録する。そして、決定したECUIDとプログラムAの配布鍵(Ep(Kp)(KxA))をパラメータとして配布鍵登録命令を発行する。次に、ECU管理部190は、ECU管理テーブル192から空きのエントリを選択し、配布鍵登録命令に基づいて、プログラムAをECU管理テーブル192の空きエントリに登録する。すなわち、プログラムAの配布鍵検証子等を登録する。次に、OS210は、プログラムAへ制御を移し、プログラムAの実行が開始される (ステップS102)。
ここで、ステップS100において、OS210からの指示によりプロセッサ100が行う登録処理について詳述する。図11は、ステップS100において、プロセッサ100が行う配布鍵登録処理を示すフローチャートである。プロセッサ100のハッシュ計算部176は、OS210により配布鍵登録命令が発行されると、プログラムAの配布鍵(Ep(Kp)(KxA))のハッシュ値、すなわち配布鍵検証子(HxA)を算出する(ステップS1002)。次に、プロセッサ100の配布鍵復号化部174は、配布鍵(Ep(Kp)(KxA))をプロセッサ秘密鍵(Ks)により復号化して、プログラム鍵(KxA)およびプログラム長(LxA)を取得する(ステップS1004)。
そして、プロセッサ100のECU管理部190は、ECU管理テーブル192のうち指定されたECUIDのエントリに、先に取得したプログラム鍵(KxA)、プログラム長(LxA)、および配布鍵検証子(HxA)を書き込む。ここで、ECUIDは、配布鍵登録命令のパラメータとして指定されている。
再び、説明を図10に戻す。プログラムAの登録が完了すると、プログラムAの実行が開始される(ステップS110)。次に、プログラムAは、共有メモリ領域を確保する(ステップS112)。次に、呼び出し先であるライブラリBの配布鍵検証子を取得する(ステップS114)。ここで、ライブラリBの配布鍵検証子の取得は、本実施の形態にかかる実行切替命令の取得に相当する。さらに、ライブラリBの配布鍵検証子の真正性を証明書に基づいて検証する。そして、ライブラリBの登録およびロードをOS210に要求する(ステップS116)。
OS210は、要求を受けると、ライブラリBをECU管理テーブル192に登録する(ステップS120)。このときの、プロセッサ100の処理は、図11を参照しつつ説明したプログラムAを登録するときの処理と同様である。具体的には、まず、共通鍵テーブル162からライブラリBを登録するECUIDを決定する。そして、決定したECUIDにライブラリBの配布鍵、配布鍵検証子等を登録する。そして、決定したECUIDとライブラリBの配布鍵(Ep(Kp)(KxB))をパラメータとして配布鍵登録命令を発行する。そして、ECU管理部190は、ECU管理テーブル192から空きのエントリを選択し、配布鍵登録命令に基づいてライブラリBをECU管理テーブル192の空きのエントリに登録する。すなわち、ライブラリBの配布鍵検証子等を登録する。
次に、OS210は、ライブラリBのプログラムロード操作を行う。また、ロードアドレスに関連するリロケーション操作を行う。そして、ライブラリBを読み出し可能な状態にした後、ライブラリBの登録が完了した旨を示す登録完了通知をプログラムAに送り、制御はプログラムAに移される(ステップS122)。プログラムAは、登録完了通知により、OS210から呼出先であるライブラリBのECUIDを取得する。
次に、プログラムAは、共有メモリ領域のアドレス領域および暗号鍵をデータ暗号化属性レジスタ122に設定する(ステップS130)。また、汎用レジスタ121および共有メモリ領域にライブラリBを呼び出すための呼出パラメータを格納する(ステップS132)。さらに、呼出先指定レジスタ124に、BIU160の共通鍵テーブル162に登録されているライブラリBのECUIDおよび配布鍵検証子を設定する(ステップS134)。次に、ECU呼出命令を発行する(ステップS140)。そして、プロセッサ100によりECU呼出命令が実行される。
図12は、プロセッサ100による呼出命令実行処理を示すフローチャートである。プロセッサ100はまず、呼出先指定レジスタ124からそれぞれ呼出先ECUID1241および呼出先配布鍵検証子1242を取得する(ステップS1402)。
なお、プログラムAによる呼出命令が発行されたときには、呼出先指定レジスタ124には、共通鍵テーブル162から取得した、ライブラリBのECUIDおよび配布鍵検証子が設定されている。
次に、呼出先指定レジスタ124から取得した呼出先ECUIDに対応して、ECU管理テーブル192に登録されている配布鍵検証子を取得する(ステップS1404)。次に、呼出先指定レジスタ124から取得した呼出先配布鍵検証子1242とECU管理テーブル192に登録されている配布鍵検証子とを比較する(ステップS1406)。
呼出先指定レジスタ124から取得した呼出先配布鍵検証子1242とECU管理テーブル192に登録されている配布鍵検証子とが一致した場合には(ステップS1406,Yes)、切替許可判定部125は、プログラムAからライブラリBへの切り替えを許可し、呼出先であるライブラリBの実行に移行する。
すなわち、まず、セキュアコンテキストスイッチ部180は、呼出元であるプログラムAに関するレジスタ値をコンテキストバッファ部184に退避させる(ステップS1408)。具体的には、汎用レジスタ121、データ暗号化属性レジスタ122、呼出元保持レジスタ123に設定されているレジスタ値をコンテキストバッファ部184に退避させる。以降、各レジスタは、ライブラリBにより使用される。
次に、呼出先指定レジスタ124が初期化される(ステップSq1410)。次に、コンテキストバッファ部184が保持している呼出元であるプログラムAのレジスタ値のうち、ローカル変数用のデータ暗号化属性レジスタ1224〜1226に設定されていたレジスタ値以外のレジスタ値が、呼出先であるライブラリBのレジスタにコピーされる(ステップS1412)。
他の例としては、プロセッサコア120は、レジスタセットを2つ有してもよい。この場合には、2つのレジスタセットを利用することにより、上記処理を効率化することができる。このように、ライブラリBのレジスタ値とプログラムAのレジスタ値の入れ替えを行えばよく、このためのレジスタセットの個数、およびレジスタセットへの設定処理は本実施の形態に限定されるものではない。
次に、呼出元保持レジスタ123に呼出元であるプログラムAのECUIDおよび配布鍵検証子を設定する(ステップS1414)。次に、呼出先指定レジスタ124に呼出先であるライブラリBの値を設定する(ステップS1416)。次に、呼出先ECUの開始アドレスを実行させる(ステップS1418)。以上で、呼び出し命令実行処理が完了する。
一方、ステップS1406において、呼出先指定レジスタ124から取得した呼出先配布鍵検証子1242とECU管理テーブル192に登録されている配布鍵検証子とが一致しない場合には(ステップS1406,No)、呼出元であるプログラムAのレジスタ値がコンテキストバッファ部184に退避される(ステップS1430)。次に、呼出先配布鍵検証子エラーが発生し、制御がOS210に移る(ステップS1432)。以上で、呼び出し命令実行処理が完了する。
以上のように、呼び出し命令実行処理においては、呼出元であるプログラムAから呼出先であるライブラリBが呼び出されるときに、呼出先であるライブラリBの認証が行われる。従って、悪意の第三者がOS210による処理を利用して、ライブラリB以外のプログラム等を誤って実行させるのを避けることができる。
悪意の第三者がOS210による処理を利用して攻撃する場合としては、以下の例が考えられる。すなわち、プログラムAがライブラリBの登録を依頼するときに、OS210が、ライブラリBにかえてライブラリB以外のプログラムの登録を依頼する。この場合には、ライブラリB以外のプログラムが呼び出されてしまう。
また、一旦ライブラリBが正しく登録され、プログラムAに割り当てられたECUIDを通知した場合であっても、プログラムAがライブラリBを呼び出す前に、OS210が割り込みによりプログラムAの実行を中断し、プログラムAに通知した共通鍵テーブル162のECUIDに別のプログラムを登録することが可能である。この場合にも、ライブラリB以外のプログラムが呼び出されてしまう。
以上の攻撃を防ぐためには、呼び出し先がライブラリBであるとの認証に成功した場合にのみ呼出先であるライブラリBの実行を許可する必要がある。また、呼出先がライブラリBであることの確認は、プログラムAがライブラリBを呼び出すときに行う必要がある。
上述のように、本実施の形態にかかる呼び出し命令実行処理においては、ライブラリBを呼び出すときに、単に呼び出し先ECUIDを指定するだけでなく、配布鍵検証子に基づいて呼出先がライブラリBであることの認証を行い、認証に成功した場合にのみライブラリBの実行を開始させている。したがって、悪意の第三者によるOS210を利用した攻撃を防ぐことができる。
また、本実施の形態にかかる呼び出し命令実行処理においては、呼出先のプログラムの配布鍵検証子を予め呼出先指定レジスタ124にセットしておき、呼出命令の発行時にECU管理テーブル192に登録されている配布鍵検証子と呼出先指定レジスタ124にセットされている配布鍵検証子とを照合することにより呼出先のプログラムを認証している。呼出先指定レジスタ124にセットされた配布鍵検証子とECU管理テーブル192に登録されている配布鍵検証子との比較は、きわめて単純なハードウェアによって実現することができる。従って、ハードウェアの規模を小さくすることができる。また、呼出命令の実行におけるオーバヘッドを少なくすることができる。
また、本実施の形態においては、ローカル変数用レジスタ値以外の呼出元のレジスタ値を呼出元から呼出先にコピーしている。すなわち、呼び出しのためのパラメータを外部メモリに保存することなく、呼出元から呼出先に受け渡されている。従って、外部メモリの入出力および暗号処理にかかる処理オーバヘッドを削減することができる。さらに、外部メモリにおいてパラメータがすり替えられる、いわゆるリプレイアタックの可能性を排除することができる。
また、汎用レジスタ121に保存できない大きなサイズのパラメータは、データ暗号化属性レジスタ122のESレジスタ1221〜1223によって暗号化属性が指定された共有メモリ領域に保存することができる。これにより、大きなパラメータの受け渡しが可能になる。共有メモリ受け渡しのための暗号鍵を、呼出元から呼出先へデータ暗号化属性レジスタの設定として直接受け渡すことにより、パラメータの受け渡しを簡便に行うことができる。
また、呼出先のライブラリに開示したくない情報は、ELレジスタ1224〜1226によって暗号化属性が指定された呼出元のローカルのメモリ領域に保持しておくことが望ましい。ELレジスタ1224〜1226の値は、呼出先にコピーされず、呼出先からの秘匿が可能だからである。
再び説明を図10に戻す。ステップS140によりライブラリBの認証に成功すると、ライブラリBの実行が開始される。図13は、このときのライブラリBにかかる処理を示すフローチャートである。
まず、各レジスタおよび共有メモリから処理パラメータを取得する(ステップS200)。次に、プログラムAから要求された処理が実行される(ステップS202)。次に、処理結果が所定のレジスタおよび共有メモリに書き込まれる(ステップS204)。次に、復帰命令が発行される(ステップS206)。以上で、ライブラリBにかかる処理が完了する。なお、ライブラリBにかかる処理においては、呼出先の共有ライブラリは毎回所定の開始アドレスから実行を開始することとし、前回終了時のコンテキストは引き継がない。
再び説明を図10に戻す。ライブラリBにおける実行が完了すると、プログラムAへの復帰命令が発行され、ライブラリBからプログラムAに処理結果が通知される(ステップS160)。復帰先は、呼び出し時に呼出元保持レジスタ123設定されている。なお、ライブラリBから呼出元保持レジスタ123のレジスタ値を読み出すことができるが、呼出元保持レジスタ123の値を書き換えることは禁止されている。
ライブラリBは、呼び出し元であるプログラムAの配布鍵の配布鍵検証子について、図12において説明した、呼出先であるライブラリBの配布鍵検証子の認証処理と同様の処理を行う。その結果プログラムAの認証に成功した場合には、プログラムAへの復帰処理が続行される。
一方、プログラムAの認証に成功しなかった場合には、プログラムAへの復帰処理を中断し、OS210に対して終了のシステムコールを発行し、処理を中断する。
以下、図14を参照しつつ、このときのプロセッサ100の処理について説明する。まず、復帰命令を発行したECUの呼出元保持レジスタ123からそれぞれ呼出元ECUID1231および呼出元配布鍵検証子1232を取得する(ステップS1602)。次に、ECU管理テーブル192の呼出元ECUIDにより指定されているエントリに登録されている配布鍵検証子を取得する(ステップS1604)。次に、呼出元保持レジスタ123から取得した呼出元配布鍵検証子1232とECU管理テーブル192に登録されている配布鍵検証子とを比較する(ステップS1606)。
呼出元保持レジスタ123から取得した呼出元配布鍵検証子1232とECU管理テーブル192に登録されている配布鍵検証子とが一致した場合には(ステップS1606,Yes)、コンテキストバッファ部184に保持されているレジスタ情報から呼出先レジスタの配布鍵検証子を取得する(ステップS1608)。
次に、これまで実行中だったECUに対応する配布鍵検証子と、コンテキストバッファ部184から取得した呼出先配布鍵検証子を比較する(ステップS1610)。
実行中だったECUの配布鍵検証子と、復帰先のコンテキストから取得した配布鍵検証子とが一致した場合、すなわちライブラリBの認証に成功した場合には(ステップS1610,Yes)、後述の切替処理に移行する。
切替処理においては、セキュアコンテキストスイッチ部180は、まず実行中であった呼出先であるライブラリBに関するレジスタ値をコンテキストバッファ部184に退避させる(ステップS1612)。具体的には、汎用レジスタ121、データ暗号化属性レジスタ122、および呼出先指定レジスタ124のレジスタ値を退避させる。以降、レジスタは復帰先であるプログラムAにより使用される。
次に、コンテキストバッファ部184が保持していた復帰先のECUのレジスタ値を復帰させ(ステップS1614)、コンテキストバッファ184が保持していた呼出先であるライブラリBのレジスタ値のうち、汎用レジスタ121のR2〜R15のレジスタ値、およびローカル変数用のデータ暗号化属性レジスタ1224〜1226のレジスタ値を除く各レジスタ値が、呼出先であるライブラリBのレジスタにコピーされる(ステップS1616)。このように、復帰の際には、呼出元であるプログラムAの実行環境を不必要に壊すのを避けるため、汎用レジスタ121のレジスタ値のうちR0およびR1のレジスタ値のみをコピーする。
次に、カレントECUID保持部126に復帰先であるプログラムAのECUIDを設定し(ステップS1618)、コンテキストバッファ部184から復帰したPCに制御を移行して、プログラムAの実行が再開される(ステップS1620)。以上で、切替処理が完了する。
一方、ステップS1606において、呼出元保持レジスタ123から取得した呼出元配布鍵検証子1232とECU管理テーブル192に登録されている配布鍵検証子とが一致しなかった場合(ステップS1606,No)、およびステップS1610において、実行中だったECUの配布鍵検証子と、コンテキストバッファ部184から取得した配布鍵検証子とが一致なかった場合には(ステップS1610,No)、呼出先であるライブラリBのレジスタ値がコンテキストバッファ部184に退避される(ステップS1630)。次に、復帰先配布鍵検証子エラーが発生する(ステップS1632)。この処理は、呼出命令に対する処理において、呼出先配布鍵検証子とECU管理テーブル192に登録されている配布鍵検証子とが一致しない場合の処理と同様である。
このように、ライブラリBの配布鍵検証子の認証に成功した場合にのみ、プログラムAは、ライブラリBから処理結果を受け取るので、プログラムAが本来意図していた呼出先であるライブラリB以外のプログラムから処理結果を受け取る可能性を排除することができる。
なお、本実施の形態においては、プログラムAにかかるステップS132からステップS160までの処理は1回で完了するが、他の例としては、かかる処理をループ処理として複数回実行することとしてもよい。
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
そうした変更例としては、本実施の形態においては、プログラムAがライブラリBを呼び出す場合の処理について説明したが、さらにライブラリBが他のライブラリCを呼び出す、いわゆるネスト呼び出しを行う場合であっても、同様の認証処理が行われる。
すなわち、ライブラリBは、呼出先であるライブラリCのECUIDおよび配布鍵検証子を呼出先レジスタに設定し、呼出命令を発行する。ライブラリBの実行環境では、呼出元レジスタ値はプログラムAのものである。したがって、ライブラリBの呼び出し元レジスタ値は、他のレジスタ値とともにコンテキストバッファ部184に退避される。そして、ライブラリCの実行環境では、ライブラリBのECUIDと配布鍵検証子が呼出元レジスタに設定される。そして、ライブラリCからの復帰命令が発行されると、ライブラリBのレジスタ値がコンテキストバッファ部184から復帰し、呼出元レジスタ値もプログラムAのものとなる。
このように、ライブラリBが復帰命令を発行すると呼出元のプログラムAに復帰する。以上の処理によりネスト処理が可能である。
このように、呼出元のECUIDおよび呼出元の配布鍵検証子を保持するレジスタと、呼出先のECUIDおよび呼出先の配布鍵検証子を保持するレジスタとがそれぞれ別個独立に設けられ、呼出元から呼出先への切り替えの際には、呼出元のECUIDおよび配布鍵検証子は、いずれもコンテキストバッファ184に退避される。このように、コンテキストバッファ184に保持されるので、呼出元の情報を安全に保持することができる。また、呼出先から呼出元への復帰の際には、呼出元のレジスタ値も復帰させることができる。従って、変更例にかかるような多重呼出においても、安全にデータの受け渡しをすることができる。
以上のように、本発明にかかるマイクロプロセッサは、プロセスの切り替え処理に有用であり、特に、第三者の侵入を防ぐ処理に適している。
本実施の形態にかかるターゲットシステム全体を示す図である。 第1ソフトウェアベンダ500aの機能構成を示すブロック図である。 ターゲットシステム10の詳細な構成を示す図である。 プロセッサ100の詳細な構成を示すブロック図である。 配布鍵(Ep(Kp)[kxn])と配布鍵検証子(Hxn)の関係について説明するための図である。 共通鍵テーブル162のデータ構成を模式的に示す図である。 データキャッシュメモリ142のメモリマップを模式的に示す図である。 汎用レジスタ121のデータ構成を示す図である。 データ暗号化属性レジスタ122のデータ構成を示す図である。 呼出元保持レジスタ123のデータ構成を示す図である。 呼出先指定レジスタ124のデータ構成を示す図である。 ECU管理テーブル192のデータ構成を模式的に示す図である。 プログラムAからライブラリBを呼び出すときの認証処理について説明するための図である。 図10に示すステップS100において、プロセッサ100が行う配布鍵登録処理を示すフローチャートである。 図10に示すステップS140において、プロセッサ100が行うプロセッサ100による呼出命令実行処理を示すフローチャートである。 図10に示すステップS140においてライブラリBの認証に成功した場合のライブラリBの処理を示すフローチャートである。 図10に示すステップS160におけるプロセッサ100の処理を示すフローチャートである。
符号の説明
10 ターゲットシステム
100 プロセッサ
120 プロセッサコア
121 汎用レジスタ
122 データ暗号化属性レジスタ
123 呼出元保持レジスタ
124 呼出先指定レジスタ
125 切替許可判定部
126 保持部
140 キャッシュコントローラ
142 データキャッシュメモリ
144 命令キャッシュメモリ
146 キャッシュメモリ制御部
162 共通鍵テーブル
164 セレクタ
166 復号処理部
170 公開鍵処理部
172 プロセッサ秘密鍵保持部
174 配布鍵復号化部
176 ハッシュ計算部
180 セキュアコンテキストスイッチ部
182 レジスタ値コピー部
184 コンテキストバッファ部
190 ECU管理部
192 ECU管理テーブル
200 外部メモリ
220 プログラム保持部
300 2次記憶装置
400 システムバス
500 ソフトウェアベンダ
510 プログラム暗号化部
520 鍵暗号化部
600 配布鍵構成要素

Claims (9)

  1. プログラムをプロセス単位で実行するマイクロプロセッサであって、
    第1プロセスに続いて実行される第2プロセスを識別するプロセス識別情報と、前記第2プロセスの認証に利用する認証情報とを外部から取得する第1取得手段と、
    前記第1取得手段が取得した前記プロセス識別情報と前記認証情報とを対応付けて保持する第1保持手段と、
    前記第2プロセスの前記プロセス識別情報が保持されている前記第1保持手段のエントリを識別するエントリ情報と前記第2プロセスの前記認証情報とを、第1プロセスの実行時に前記第1保持手段から取得する第2取得手段と、
    外部からアクセス不能であって、前記第2取得手段が取得した前記エントリ情報と前記認証情報とを対応付けて保持する第2保持手段と、
    前記第1プロセスから前記第2プロセスへの切替命令が発行された場合に、前記第1保持手段が保持する前記第2プロセスの前記認証情報と、前記第2保持手段が保持する第2プロセスの前記認証情報とを比較し、比較の結果2つの前記認証情報が一致した場合に、前記第2プロセスへの実行の切り替えを許可する切替許可手段と
    を備えたことを特徴とするマイクロプロセッサ。
  2. 前記プログラムは暗号化されており、前記認証情報は、前記プロセスを含む暗号化された前記プログラムの復号化のための暗号鍵であって、
    前記切替許可手段が第2プロセスへの切り替えを許可した場合に、前記暗号鍵によって前記第2プロセスとして実行される、暗号化された前記プログラムを復号化するプログラム復号化手段と、
    前記プログラム復号化手段によって復号化された前記プログラムを前記第2プロセスとして実行する実行手段と
    をさらに備えたことを特徴とする請求項1に記載のマイクロプロセッサ。
  3. 前記暗号鍵に演算を施し前記検証子を生成する演算手段と、
    前記前記切替許可手段が前記第2プロセスへの切り替えを許可した場合に、前記演算手段によって生成された前記検証子を復号化する検証子復号化手段と
    をさらに備え、
    前記プログラム復号化手段は、前記検証子復号化手段による復号化によって得られた前記暗号鍵を利用して前記プログラムを復号化することを特徴とする請求項2に記載のマイクロプロセッサ。
  4. 前記第1プロセスにより確保される第1レジスタと、
    前記切替命令が発行されたときに、前記第1保持手段に保持された前記第2プロセスの前記エントリと、前記第2プロセスの前記認証情報とを前記第1レジスタに設定する設定手段と
    をさらに備え、
    前記比較手段は、前記第1レジスタに設定された前記認証情報と、前記第2保持手段が保持する前記認証情報とを比較することを特徴とする請求項1から3のいずれか一項に記載のマイクロプロセッサ。
  5. 前記第1レジスタは、
    前記エントリと前記認証情報とを保持する第2プロセス特殊レジスタと、
    前記第1プロセスの実行に関連する情報を保持する汎用レジスタと
    を含み、
    前記レジスタ設定手段は、前記第2プロセス特殊レジスタに前記エントリおよび前記認証情報を設定し、
    前記比較手段は、前記第2プロセス特殊レジスタが保持する前記認証情報と前記第2保持手段が保持する前記認証情報とを比較することを特徴とする請求項4に記載のマイクロプロセッサ。
  6. 前記第2プロセス実行時に、前記第1プロセスにより確保された前記第1レジスタが保持する情報を退避させる退避手段と、
    前記退避手段によって退避された前記情報を保持するレジスタバッファと
    をさらに備えたことを特徴とする請求項4または5に記載のマイクロプロセッサ。
  7. 前記第2プロセスにより確保される第2レジスタと、
    前記レジスタバッファに退避された情報を、前記第2レジスタに複写する複写手段と
    をさらに備えたことを特徴とする請求項6に記載のマイクロプロセッサ。
  8. 前記第1レジスタは、
    前記第1プロセスの前記認証情報を保持する第1プロセス特殊レジスタをさらに含み、
    前記第2プロセスにより確保される第2レジスタと、
    前記切替許可手段が前記第2プロセスへの切り替えを許可した場合に、前記第1プロセスにより確保される前記第1プロセス特殊レジスタが保持する第1プロセスの前記認証情報を前記第2レジスタに複写する複写手段と
    をさらに備え、
    前記比較手段は、前記複写手段によって前記第2レジスタに複写された前記第1プロセスの前記認証情報と、前記第2保持手段が保持する前記第1プロセスの前記認証情報とを比較し、
    前記切替許可手段は、前記比較の結果2つの前記認証情報が一致した場合に、前記第1プロセスへの切り替えを許可することを特徴とする5から7のいずれか一項に記載のマイクロプロセッサ。
  9. 前記第2レジスタは、
    前記第1プロセスの前記エントリ情報および前記第1プロセスの前記認証情報を保持する第1プロセス特殊レジスタと、
    前記第2プロセスの実行に関連する情報を保持する汎用レジスタと
    を含み、
    前記比較手段は、前記第1プロセス特殊レジスタが保持する前記認証情報と、前記第2保持手段が保持する前記認証情報とを比較することを特徴とする請求項8に記載のマイクロプロセッサ。
JP2003435287A 2003-12-26 2003-12-26 マイクロプロセッサ Expired - Fee Related JP4282472B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003435287A JP4282472B2 (ja) 2003-12-26 2003-12-26 マイクロプロセッサ
US10/913,537 US7603566B2 (en) 2003-12-26 2004-08-09 Authenticated process switching on a microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003435287A JP4282472B2 (ja) 2003-12-26 2003-12-26 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
JP2005196257A true JP2005196257A (ja) 2005-07-21
JP4282472B2 JP4282472B2 (ja) 2009-06-24

Family

ID=34697795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003435287A Expired - Fee Related JP4282472B2 (ja) 2003-12-26 2003-12-26 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US7603566B2 (ja)
JP (1) JP4282472B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090485A (ja) * 2006-09-29 2008-04-17 Nomura Research Institute Ltd ジョブ管理装置、システムおよびプログラム
JP2009278491A (ja) * 2008-05-16 2009-11-26 Casio Comput Co Ltd マイクロプロセッサ及びマイクロプロセッサ応用装置
JP5377748B2 (ja) * 2010-02-18 2013-12-25 株式会社東芝 プログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
JP4624732B2 (ja) * 2003-07-16 2011-02-02 パナソニック株式会社 アクセス方法
JP4282472B2 (ja) 2003-12-26 2009-06-24 株式会社東芝 マイクロプロセッサ
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
JP4204522B2 (ja) * 2004-07-07 2009-01-07 株式会社東芝 マイクロプロセッサ
US7529916B2 (en) * 2006-08-16 2009-05-05 Arm Limited Data processing apparatus and method for controlling access to registers
US20080229115A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Provision of functionality via obfuscated software
JP5085287B2 (ja) * 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
CN101482903B (zh) * 2008-01-09 2010-09-29 联想(北京)有限公司 硬件安全单元
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
JP5322620B2 (ja) 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
JP5171907B2 (ja) * 2010-09-13 2013-03-27 株式会社東芝 情報処理装置、情報処理プログラム
JP7141942B2 (ja) * 2018-12-18 2022-09-26 ルネサスエレクトロニクス株式会社 半導体装置および電子制御装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041168A (ja) * 2000-07-24 2002-02-08 Sony Corp 情報処理システム及び情報処理方法、並びに記憶媒体
JP2002232417A (ja) * 2001-01-31 2002-08-16 Toshiba Corp マイクロプロセッサ
JP2003108442A (ja) * 2001-09-28 2003-04-11 Toshiba Corp マイクロプロセッサ

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298446B1 (en) * 1998-06-14 2001-10-02 Alchemedia Ltd. Method and system for copyright protection of digital images transmitted over networks
JP2000066586A (ja) 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
FR2790844B1 (fr) * 1999-03-09 2001-05-25 Gemplus Card Int Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
JP4074057B2 (ja) * 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
JP2003330365A (ja) * 2002-05-09 2003-11-19 Toshiba Corp コンテンツ配布/受信方法
JP4115759B2 (ja) * 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
US7320129B2 (en) * 2003-05-14 2008-01-15 Hewlett-Packard Development Company, L.P. Native language verification system and method
JP4282472B2 (ja) 2003-12-26 2009-06-24 株式会社東芝 マイクロプロセッサ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041168A (ja) * 2000-07-24 2002-02-08 Sony Corp 情報処理システム及び情報処理方法、並びに記憶媒体
JP2002232417A (ja) * 2001-01-31 2002-08-16 Toshiba Corp マイクロプロセッサ
JP2003108442A (ja) * 2001-09-28 2003-04-11 Toshiba Corp マイクロプロセッサ

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAVID LIE, CHANDRAMOHAN THEKKATH, MARK MITCHELL, PATRICK LINCOLN, DAN BONEH, JOHN MITCHELL, MARK HOR: "Architectural Support for Copy and Tamper Resistant Software", PROCEEDINGS OF AASPLOS IX, JPN7008006449, 2000, ISSN: 0001264197 *
G. EDWARD SUH, DWAINE CLARKE, BLAISE GASSEND, MARTEN VAN DIJK, SRINIVAS DEVADAS: "Efficient Memory Integrity Verification and Encryption for Secure Processors", IN PROCEEDINGS 0F THE 36TH ANNUAL INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, JPN7008006450, June 2003 (2003-06-01), ISSN: 0001264198 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090485A (ja) * 2006-09-29 2008-04-17 Nomura Research Institute Ltd ジョブ管理装置、システムおよびプログラム
JP4554581B2 (ja) * 2006-09-29 2010-09-29 株式会社野村総合研究所 ジョブ管理装置、システムおよびプログラム
JP2009278491A (ja) * 2008-05-16 2009-11-26 Casio Comput Co Ltd マイクロプロセッサ及びマイクロプロセッサ応用装置
JP5377748B2 (ja) * 2010-02-18 2013-12-25 株式会社東芝 プログラム
US9116741B2 (en) 2010-02-18 2015-08-25 Kabushiki Kaisha Toshiba Computer program product, and information processing apparatus and method

Also Published As

Publication number Publication date
JP4282472B2 (ja) 2009-06-24
US7603566B2 (en) 2009-10-13
US20050144438A1 (en) 2005-06-30

Similar Documents

Publication Publication Date Title
JP4282472B2 (ja) マイクロプロセッサ
CN104392188B (zh) 一种安全数据存储方法和系统
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
CN106980794B (zh) 基于TrustZone的文件加解密方法、装置及终端设备
JP3866597B2 (ja) 内部メモリ型耐タンパプロセッサおよび秘密保護方法
EP1826701B1 (en) Secure processor
US8555089B2 (en) Program execution apparatus, control method, control program, and integrated circuit
JP3880933B2 (ja) 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
US7136488B2 (en) Microprocessor using asynchronous public key decryption processing
US7545931B2 (en) Protection of application secrets
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
JPH1185622A (ja) コア・データ機密事項の保護記憶
CN106992851B (zh) 基于TrustZone的数据库文件口令加解密方法、装置及终端设备
JP2002202720A (ja) 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
WO2006017774A2 (en) Method for preventing virus infection in a computer
WO2010019916A1 (en) Hardware trust anchors in sp-enabled processors
JP2009087035A (ja) 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム、暗号管理サーバ装置、ソフトウェアモジュール管理装置、ソフトウェアモジュール管理プログラム
WO2022028289A1 (zh) 数据加密方法、数据解密方法、装置、终端和存储介质
JP2004038394A (ja) 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
US20150264047A1 (en) Method and system for providing secure communication between multiple operating systems in a communication device
US8667278B2 (en) Information processing apparatus and data transmission method of information processing apparatus
KR101203722B1 (ko) 데이터 보호장치 및 그 방법
CN112182669A (zh) 用于存储所要保护的数据记录的系统和方法
CN115994389A (zh) 一种基于risc-v架构的硬件内存加密系统及其应用
US11841970B1 (en) Systems and methods for preventing information leakage

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090206

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: 20090303

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: 20090317

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees