JP3878134B2 - データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法 - Google Patents

データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法 Download PDF

Info

Publication number
JP3878134B2
JP3878134B2 JP2002563342A JP2002563342A JP3878134B2 JP 3878134 B2 JP3878134 B2 JP 3878134B2 JP 2002563342 A JP2002563342 A JP 2002563342A JP 2002563342 A JP2002563342 A JP 2002563342A JP 3878134 B2 JP3878134 B2 JP 3878134B2
Authority
JP
Japan
Prior art keywords
program
access
address
memory
memory area
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.)
Expired - Fee Related
Application number
JP2002563342A
Other languages
English (en)
Other versions
JP2004526237A (ja
Inventor
フランツ−ヨーゼフ ブリュックルマイヤー,
ハンス フリーディンガー,
ホルガー ゼトラーク,
クリスチャン マイ,
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2004526237A publication Critical patent/JP2004526237A/ja
Application granted granted Critical
Publication of JP3878134B2 publication Critical patent/JP3878134B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Description

本発明は、請求項1のプリアンブルに従ったマイクロプロセッサ回路および請求項14のプリアンブルに従ったメモリ内に格納されたデータまたはプログラムへのアクセスを組織化するための方法に関する。
上記タイプのマイクロプロセッサ回路は、好ましくは、いわゆるスマートカード、すなわち身分証明書や、クレジットカード、引き落としカードなどの、集積回路を備えたカードに使用されている。マイクロプロセッサ回路は、対応するインターフェースを介して前記カードと通信する、いわゆる支払い処理モジュール内にも使用され得る。一般に、マイクロプロセッサ回路は、支払い処理に適した、例えば、移動電話、パソコン、PDAのような個人所有化された端末に使用され得る。
このようなカードの極めて重要な利点の1つは、カード所有者にとって可能な、多様な使用法にある。集積回路に含有されたマイクロプロセッサおよび関連した記憶装置手段は、カード自体内での大量のデータ処理を可能にする。
カード製造者は、例えば、外部から入力されたコードを、格納されたコードなどと比較する手順などの、基本的な機能を実行する常駐オペレーティングシステムを有するマイクロプロセッサを配備することができる。マイクロプロセッサに関連するメモリは、オペレーティングシステムを格納するのみならず、複数の関数を含むことができる特定のアプリケーションと、例えば、セキュリティーチェックのために必要であり、全てのイベントにおいて秘密にされなければならないパラメーターとを格納する役割も果たす。
関連したプログラムを有するオペレーティングシステムが開始点を形成し、特定のインターフェースが決定され、メモリまたはメモリ領域が外部プログラムのために確保された場合にカードの多様な用途が為される。そして、カード製造者は、その外部プログラムにおいてプログラミングするためのメモリまたはメモリ領域を、使用者のために、言い換えればカードを発行する組織のために提供する。そして、この外部プログラムにおいて、その組織は、オペレーティングシステムと独立して、その特定の組織のみに関係する特定の動作を特徴づけることができる。
ある将来的なシナリオは、1つの組織がその外部プログラムを、前もって製造されたスマートカードに格納するだけではなく、むしろ複数の異なる組織が、それらのそれぞれ対応するプログラムをスマートカードに格納することである。この場合には、オペレーティングシステムの一部であるか、または個々の外部プログラムとは別のセキュリティーに関連するデータが、許可されないアクセスから保護されることを確実にするための注意が払われなければならない。
外部プログラムが、他の外部プログラムの、プログラムライブラリーとも呼ばれるプログラム部分を呼び出すことが想定される。カスタマリーメモリ組織に基づいて、全てのプログラム部分が、同じ論理アドレス領域として参照される位置に配置され得る。この場合には、外部プログラムのコードとデータとの両方が、メモリ領域のアドレス空間に配置される。この場合には、コード自体が、複数のプログラム部分か、ライブラリーか、または関数を含み得る。例として、アプリケーションとも呼ばれるプログラムAが、代替的に外部プログラムBのプログラムライブラリーBと、さらなる外部プログラムCのプログラムライブラリーCとを同じ論理アドレス空間に呼び出すと、さらなる保護メカニズムがない場合には、プログラムライブラリーBは、プログラムライブラリーCのデータに対する書き込み動作によってデータを破壊し得るか、プログラムライブラリーCの本来秘密のデータを、読み出し動作によって密かに発見し得る。従ってプログラムライブラリーCは、他の外部プログラムに含まれるさらなる使用に対して、使用不可能になる。それによって、プログラムライブラリーCの値は破壊される。
この問題を解決するために、プログラム部分すなわちプログラムライブラリーを、メモリ内のハードウェアメカニズムを用いて互いに分離し、プログラムライブラリー間のデータアクセスがオペレーティングシステムを介してのみ可能であることが知られている。しかし、結果として得られたセキュリティーは、プログラミングの高い複雑性と、複雑なハードウェアを示している。さらに、プログラムライブラリー間で直接通信する場合と比較して、パフォーマンスが低下する。従って、高いセキュリティーが得られるが、パフォーマンスは損なわれる。
EP 0 512 542 B1は、少なくとも1つのマイクロプロセッサと、オペレーティングシステムのためのメモリと、個々の外部プログラムを用いた自由なプログラミングのための少なくとも1つのメモリとを有し、メモリ内に格納されたデータまたはプログラムへのアクセスを防止するマイクロプロセッサ回路を開示する。この場合には、自由にプログラミング可能な複数のメモリ領域が与えられ、そのメモリ領域のアドレス空間は、少なくとも1つの最上位位置以外は、全く同一である。さらに、マイクロプロセッサ回路は、メモリ領域に割り当てられたそれぞれの最上位位置を、どのような場合においてもメモリ領域のアドレス指定に優先して、第1補助レジスタにロードし、アドレス指定されたメモリ領域のそれぞれの最上位位置を第2補助レジスタにロードし、そして、第1補助レジスタと第2補助レジスタとの比較を行う手段を有する。補助レジスタの内容が変化する場合には、禁止信号が生成され、それによって、許可されないアドレスにアクセスしている外部プログラムが実行されているかどうかを確証する。
この手順は、原理的に、他の外部プログラムへのアクセスが妨げられるという欠点を有している。他の外部プログラムの内の、特定のプログラム部分の相互利用化は可能ではない。その結果、これが適切である場合、複数の外部プログラムは、同じ機能性を有する全く同じプログラム部分を含まなければならない。しかし、一般的に限られたメモリ領域しか持たない携帯型のデータキャリアの場合には、これは非常に不都合である。
本発明は、簡単な手段を用いて外部プログラムへのアクセスをも可能にする、回路と方法を明確に述べるという目的に基づいたものである。
これらの目的は、請求項1および14に明確に述べられた特徴を用いた本発明によってそれぞれ達成される。
本発明によると、メモリ領域の各アドレス空間が、アクセス権を含む少なくとも1つのビットシーケンス(ACR)を割り当てられるということによって、本目的は達成される。別の言い方をすれば、このことは、各論理アドレス空間が、アクセス権を含むビットシーケンスを割り当てられた少なくとも1つのアドレスブロックに分割されることを意味している。
本発明はこのようにして、同じ論理アドレス空間に配置された、異なる外部プログラムのプログラム部分間での直接の通信を可能にする、ハードウェア保護メカニズムを提供する。しかし、この場合には、オペレーティングシステムによる制御の必要が無い。
本発明の有利な改良点において、アドレス空間の各アドレスには、アクセス権を含むビットシーケンスが割り当てられる。言い換えれば、これは、コード行とデータワードの両方にアクセス権を含むビットシーケンスが割り当てられることを意味する。その結果、選択的に決定されたデータ領域は、望ましい権利を割り当てられ得る。
アクセス権を含むビットシーケンスを、アドレスまたはアドレスブロックと、メモリ内に格納されたテーブル内の識別子(プログラムID)とともに格納すると有利である。この場合には、アドレスブロックは、そのアドレス開始点またはアドレス終点と、アドレスブロック長とにより特定され得る。別の方法として、アドレスブロックが下位アドレスおよび上方アドレスによって特定されることが考えられる。その場合、各アドレスブロックはアクセス権を含むビットシーケンスを割り当てられ得る。アドレスブロックが個々のアドレスのみを含む場合には、個々の命令の各々または個々のアドレスの各々は、アクセス権を含むビットシーケンスを割り当てられ得る。
別の方法として、各アドレス空間または各アドレスに、アクセス権を含むビットシーケンスが提供される。これは、アクセス権を含むビットシーケンス長だけ、前に使用されたワード行を長くすることを意味する。結果として、アクセス権は、各アドレスすなわち各ワードに自動的に割り当てられる。この場合には、各アドレスまたは各アドレス空間の識別子は、例えば、各アドレスまたはアドレス空間の各アドレスの少なくとも1つの最上位位置に含まれ得る。
アクセス権を含むビットシーケンスは、第1アクセス権と第2アクセス権とを含み、第1アクセス権は2つのメモリ領域間のアクセスを制御し、第2アクセス権はメモリ領域内部のアクセスを制御する。異なる外部プログラムが、異なるメモリ領域に格納されていると仮定すると、それによりアクセスは、外部プログラムのプログラム部分によって、非常に選択的に制御され得る。従ってアクセスは拒絶され得るか、許可され得る。外部プログラムがリコースを有するデータに関する場合には、アクセスそれ自体が、読み出し許可または書き込み許可を含み得る。ある外部プログラムが他の外部プログラムからコードを呼び出そうと試みる場合、この場合にも、権利の制御が存在し得る。
有利な改良点においては、ビットシーケンス内の第3の(データ)アクセス権は、メモリ領域内部、すなわち単一のプログラム内部でのアクセスを制御する。このことは、専用プログラムの第2アクセス権と結びつく。そして、特に、専用プログラム内の実行コードの第2アクセス権が設定されていない場合には、例えば初期化データまたは変数などの機密データを、専用プログラム内の特定のプログラム部分の読み出しまたは書き込みアクセスから保護することが可能である。しかし、例えば、実行中に発生したこれらデータのみを含む他のデータ領域は、全てのプログラム部分によって書き込まれ得るかまたは読み出され得る。
さらなる有利な改良点においては、2つのメモリ領域間のさらなるアクセス権を含む、権利バッファが提供され、この場合にはアクセス権はオペレーティングシステムによって読み出されるかまたは書き込まれ得る。好ましくは、バッファは、あらゆる場合において、2つの異なるメモリ領域間での許可された割り当て、言い換えると、許可されたアクセスを含む。この改良点は、例えばキャッシュ(バッファ)という形で実現され得るアクセステーブルの導入を提供する。割り当ては、識別子(プログラムID)によってかまたは、個々の識別子を決定するのに使用され得る変換テーブルによって、テーブル内で実現される。
結果として、複数のプログラム部分を含むアプリケーションAは、例えば、プログラム部分Cよりもプログラム部分Bに、より多くのアクセス権を与えることができる。このために、バッファまたはバッファ内に格納されたテーブルは、例えば2列と、複雑性またはプログラム部分の数に応じて、対応する数の行とを含む。1つの行において、アクセスされているプログラム部分に対する識別子は第1列に与えられ、アクセスを行うのを許可されるべきプログラム部分に対する識別子は第2列に与えられる。最も簡単な実現化において、これらの識別子はプログラムIDと全く同一である。しかし別の方法として、他のテーブルエントリーからプログラムIDを決定するため使用され得る、変換テーブルもまた提供され得る。
権利バッファ内に実現されたアクセステーブルは、異なった方法で実現され得る。2列のテーブルの場合には、異なるプログラム部分の各組み合わせは、多くても一度だけ発生することが許容される。別の方法として、テーブルは、プログラム部分の数に対応する多数のプログラム部分を含むことができる。そして、許可されたアクセスは、テーブル内に追加の列によって格納される。
さらなる有利な改良点においては、オペレーティングシステムのみによって管理され得るメモリ領域が提供される。オペレーティングシステムによって管理されるこのメモリ領域は、「コンテクスト安全領域」と称され、任意の他の外部プログラムまたはそのプログラム部分による読み出しまたは書き込みが許可されない、バッファに格納された機密データに対して役立つ。オペレーティングシステムのみによって管理されるメモリ領域は、こうして、その第3アクセス権が特に選択されたプログラム部分のみに利用可能なコードによって、特に使用されるスタックを構成する。
さらなる改良点において、各メモリ領域は、それぞれのメモリ領域に格納されたプログラムによってのみ管理され得るデータを、バッファ格納するためにアドレス領域を割り当てられる。このバッファ(スタック)はまた、他の外部プログラムによって、どの環境においても読み出されてはならない、特定の機密のデータをバッファ格納するこのに役立つ。
上記のマイクロプロセッサ回路の構成は、以下にさらに記載される方法を参照して、より良く理解されるようになる。
メモリ内に格納されたデータまたはプログラムへのアクセスを組織化するための、本発明の方法は、少なくとも1つのマイクロプロセッサと、オペレーティングシステムのためのメモリと、個々の外部プログラムを用いた自由なプログラミングのための少なくとも1つのメモリとを有し、個々のアドレス空間を備えた複数のメモリ領域が、自由なプログラミングのためのメモリ内に提供され、各アドレス空間には識別子(プログラムID)が割り当てられ、そして厳密に1つの外部プログラムが各メモリ領域に提供され、以下のステップを含む。
a)その時点での現在のアドレス(PC)の識別子を用いて、外部プログラムの現在実行されているコード命令の第1プログラムIDを決定するステップと、
b)アドレス指定されたメモリ領域の第2プログラムIDを決定するステップと、
c)第1プログラムIDと第2プログラムIDを比較するステップと、
d)ステップc)での比較結果に基づいて第1または第2アクセス権を選択するステップと、
e)アクセス権を評価するステップと、
f1)アドレス指定されたメモリ領域へのアクセスまたはコード命令が許可されている場合にはプログラムコードを継続するステップと、
f2)アドレス指定されたメモリ領域へのアクセスまたはコード命令が許可されていない場合にはエラー処理ルーチンを呼び出すステップ。
結果として、識別子(以下ではプログラムIDとも称される)、例えば、最上位位置または位置群を使用することによって、アクセスが、同じかまたは異なるメモリ領域、従って異なる外部プログラムへと行われるかどうかが決定され得る。この評価に基づいて、第1または第2アクセス権が決定され、評価される。この方法に基づくと、特定のプログラム部分(プログラムライブラリー)を、他の外部プログラムに対して使用可能にすることが可能である。
本発明による方法の改善点において、全く同一の第1プログラムIDと第2プログラムIDが与えられたとすると、現在実行されているコード命令のアクセス権に応じて、第2アクセス権または第3アクセス権が選択される。コード命令に割り当てられたアクセス権は、後者が、また、またプログラムコードの機密の領域へのアクセスが許可されているかどうか特定する。これが許可されている場合には、アドレスに割り当てられた、選択された第3のアクセス権がさらに評価される。そして、書き込みアクセスは、単に読み出しであり、実行され得るかどうかを決定される。このことは、現在実行されている外部プログラムのプログラムライブラリーによって、機密データが破壊されるのを防止する、保護を確実にする。
本発明による方法のさらなる有利な改良点において、ステップf2以降に以下のステップが実行される。
g)第1プログラムID(PIDPC)を有するメモリ領域から、第2プログラムID(PIDaddr)によって特定されたメモリ領域への許可されたアクセスを表す、エントリーに対する権利バッファをチェックするステップ。
h)エントリーが権利バッファ内に存在する場合には、プログラムコードを継続するステップ。
i)エントリーが存在しない場合には、エラー処理ルーチンを呼び出すステップ。
本発明による方法のこの有利な変更は、権利バッファによって、より多くのアクセス権が例えばプログラム部分CよりプログラムBに許可されることを可能にする。
プログラム部分Aがプログラム部分Bにアクセスする場合、まず最初に、第1、第2、そして第3アクセス権がチェックされる。アクセスが許可された場合は、アクセスはそれぞれの権利に従って実行される。しかし、アクセスが許可されない場合には、プログラム部分Aのプログラム部分Bへのアクセスのためのエントリーが、存在するかどうかに関して、権利バッファの内容がチェックされる。このようなエントリーが存在する場合には、例えば、プログラム部分Bに対する拡張されたアクセス権が、プログラム部分Aに与えられる。このようなエントリーが権利バッファ内に存在しない場合には、エラー処理ルーチンが開始される。
本発明による方法の有利な改良点において、ステップa)のコード命令は、ジャンプ命令であり、続いて、次のステップが実行される。
b)アドレス指定されたメモリ領域の第2プログラムIDを決定するステップ。
c)第1プログラムIDと第2プログラムIDを比較するステップ。
d)呼び出されたアドレスにジャンプするステップ。
e1)第1プログラムIDと第2プログラムIDが同一である場合には、アドレス指定されたメモリ領域でのプログラムコードを継続するステップ。
e2)第1プログラムIDと第2プログラムIDが同一でない場合には、アドレス指定された内容のアドレス内容において読み出しを行うステップ。
aa)読み出されたアドレス内容が、エントリー指示でない場合は、エラー処理ルーチンを呼び出すステップ。
bb)読み出されたアドレス内容が、エントリー指示である場合は、プログラムコードを継続するステップ。
この手順は、プログラムライブラリー間でのジャンプが、前に決定されたエントリーアドレスにおいてのみ実行を許可されることを確実にし、エントリーアドレスは、決定されたエントリー命令によって定義される。結果として、プログラムコードの任意の位置への制御されないエントリーは不可能である。従って、データの密かな発見もデータの破壊も両方不可能になる。
本方法のさらなる改良点において、ジャンプ命令が格納されるアドレスは、バッファに格納される。
このバッファは有利には、オペレーティングシステムによってのみ管理されるストアであり、序説に記載した「コンテクスト安全領域」である。
エントリー命令は、有利には、固定的に定められたビットシーケンスである。後者は、エントリーアドレスが含まれているかどうか特定するために使われ得る。
なおその上に、パブリックアクセス可能なバッファ(スタック)が、第1実行権を割り当てられたコード命令に対するバッファとして利用可能であれば、好都合である。前記のコード命令は、プログラムの機密データにはアクセスしないか、または、アクセスできないプログラムコードである。
他方では、個々のメモリ領域に割り当てられ、個々のメモリ領域に格納されたプログラムによってのみ管理され得るバッファは、第2実行権を割り当てられたコード命令によって有利に使用される。「機密スタック」と称されるこのバッファは、どのような環境においても、他のプログラムライブラリーまたは外部プログラムによって、読み出されたり、上書きされたりしてはならないデータをバッファ格納するのに利用可能である。
本発明およびその利点は、以下の図を参照してより詳細を説明される。
図1は一例として、本発明が基づいている、問題となっている領域を示している。線形のアドレス空間に配置された2つのプログラムAとBとが存在する。プログラムAに属するプログラム部分またはプログラムライブラリーは、関連する、揮発性で固定的な所定のデータを有し、相互の呼び出しや相互の管理によって自身を破壊しないように構成されると仮定される。この図1において、プログラムAは、単に命令コードを含み、かつ、コードAによって特定される領域を含む。後者は、互いに独立した複数の関数A1、A2を含み得る。後者は、相互に互いを呼び出し得る。さらに、プログラムAは、例として、揮発性または不揮発性のデータを含み得る2つのデータ領域A1とA2とを含む。プログラムA内に配置された全てのデータは、命令コードまたは関数によって完全に管理され、かつ、制御され得る。
プログラムBは、対応する態様で構成されており、例として一つのデータ領域Bのみがこの図1内に図示されている。プログラムB内に配置された関数もまた、相互に互いを呼び出し得るし、データ領域B内に格納されたデータを管理し、制御し得る。
本発明によると、プログラムAおよびプログラムBは、最上位位置または位置群を介して異なるか、またはそれぞれ割り当てられたプログラムID(PID)を介して異なる、それぞれ前もって決定されたメモリ領域に配置されている。もちろんこのメモリ領域内では、命令コードおよびデータを図に示した態様でブロック単位に配置する必要は無い。
ここで、本発明は、プログラムBの関数がプログラムAのデータにアクセスできるようにする可能性を説明する。例として、このタイプの2つのアクセスが図1に図示されている。関数B1はデータ領域A2にアクセスし、一方で関数B2はデータ領域A1にアクセスする。本発明によると、データをプログラムBに対して利用可能にするプログラムAは、特定のデータ領域に対して、特定のアクセス権を他のプログラムに対して選択的に許可し得る。実現可能なアクセス権を図5に図示する。以下のアクセス権が考えられる。書き込み/読み出し権(W)、読み出し専用権(R)、そしてデータアクセスしない権利、言い換えると読み出しも書き込みも無い権利(−)である。これらの権利がデータに割り当てられる。いわゆる実行権xとxは、命令コードに割り当てられ、所望なデータ領域が、現在実行されている命令に対してアクセスされることが許可されているかどうかについての情報を含む。
プログラムBからプログラムAへのデータアクセスは、ハードウェアによって現在実行されているコード命令のプログラムID(例えば最上位位置または位置群)およびアクセスされているアドレスの比較によって、チェックされ得る。
プログラムIDの比較によって、データアクセスが、現在実行されているプログラム内の関数によってか、または異なるプログラムの関数によって実行されているかどうかを確立し得る。本発明によると、各データ領域(コード命令とデータとの両方)に、アクセス権を含むビットシーケンスが割り当てられる。
図4に図示されるように、このビットシーケンスはワード行の一部であり得る。アドレスと、その中に配置された値に加えて、このようなワード行が、アクセス権のビットシーケンス(ACR)分だけ長くされる。別の方法として、テーブルがメモリ内に提供され得る。そのテーブルは、メモリ領域を定義し、アクセス権を有する前記メモリ領域に割り当てられたビットシーケンスを含む。この場合には、アドレス領域は、好ましくは、その下位アドレスおよび上位アドレス(図2)によって定義され得る。または別の方法として、そのアドレス開始点とアドレスブロック長さ(図3)とによって定義され得る。
アクセス権を含むビットシーケンスは、少なくとも2つのアクセス権を含む。2つのプログラム間のアクセスを制御する第1アクセス権と、プログラム内部でのアクセスを制御する第2アクセス権である。ビットシーケンス(ACR)内部に配置されるアクセス権の順序は、望ましいように選択され得る。アクセス権を含むビットシーケンスは、有利には、プログラム内部でのアクセスを制御する、さらなる第3アクセス権を有する。第2アクセス権と対照的に、例えば初期化データのような機密データを含むアドレス領域は、それによって特定される。コード命令が、このようなデータに対して読み出しまたは書き込みを行うのを許可されるためには、個々のコード命令もまた特別な特定を必要とする。
図2に示したアクセス権を含むビットシーケンスは、第1、第2および第3アクセス権を有し、後者は上述の順序で、列ACRの右から左へと入力される。従って、例えば初期化データを含むデータ領域A2は、(第1アクセス権がRになっている)外部プログラムの関数によって読み出されることが許可される。一方で、その時点での現在のプログラム内の関数は、書き込み権さえも有する。このことは、通常の第1実行権(x)で特定されるこれらのコード命令と、(第2実行権を有する)機密データ(x)を実行するための許可を有するこれらの命令との両方に適用する。
さらに、データ領域A1は、(第1、第2および第3アクセス権Wを有する)現在実行されているプログラムAの内部および外部の両方の関数によって書き込まれることが許可されることを、図2に示したテーブルから知り得る。
その結果、線形アドレス空間の個々のデータ領域に割り当てられたアクセス権によって、データまたは関数は、簡単な態様で、他のプログラムにアクセス可能になり得る。外部プログラムにより要求されたアクセスが許可されない場合、(これはアクセス権に基づいて確立され得るが、)その場合エラー処理ルーチンが開始される。このようにして、プログラマー自身が、プログラムのコード命令および選択されたデータを、他のプログラムからの書き込みアクセスから保護することができる。
本発明によるさらなる保護メカニズムは、外部プログラムから呼び出される関数の制御に関する。プログラム内での制御されないプログラムフロー、および、これによって生じ得る専用データの上書きによる破壊を防止するために、プログラム内の関数は、定義されたエントリーアドレスに対してのみ、他のプログラムによってジャンプさせられることを許可される。これらのエントリーアドレスは、所定のビットシーケンスによって特定される。ジャンプ命令の場合には、特定されたアドレスは、予想されるビットシーケンスに対してチェックされる。後者が存在しない場合には、エラー処理ルーチンが開始される。予想されるビットシーケンスが検出された場合には、呼び出された関数が実行され得る。
プログラム内の関数は、あらゆる位置から呼び出され得るので、各々の関数呼び出しに対して、リターンアドレスが格納されなければならない。関数のコード命令の処理中に、リターン命令が割り込んだ場合には、プログラムカウンターは前に格納されたリターンアドレスに設定される。プログラム内でのプログラムフローは、リターンアドレスの操作を介して、好ましくない態様で変更させられ得る。
この問題を解決するために、本発明は、関数の呼び出しの場合にはリターンアドレスを、オペレーティングシステムによってのみアクセスされ得るバッファに自動的に格納することによって、他のプログラムによる書き込みアクセスに対してリターンアドレスを保護することを提案する。この場合には、関数の呼び出しが他のプログラムから実行される場合に、これらのリターンアドレスのみを、書き込み保護されたバッファに格納すれば十分である。それに対して、同じプログラム内の関数の関数呼び出しの場合には、一般にアクセス可能なバッファを使用することが可能である。しかしこの場合には、これらのリターンアドレスが現在のプログラム外へ至らないことを確実にしなければならない。さらなる他の代替として、リターンアドレスは、関数呼び出しの場合には自動的に中間レジスタに格納され得、中間レジスタの古い値は、リターンアドレスと共に別のスタックに格納される。従って、中間レジスタへのアクセスは、呼び出されたプログラムに対して、オペレーティングシステムによって管理されるバッファへのアクセスとちょうど同程度に制限されなければならない。
本発明による方法は、図6を参照してさらに図示される。命令キャッシュからの命令は、CPU内にロードされ、プログラムID(PIDPC)は内部CPUレジスタに保持される。次のステップにおいて、コード命令がジャンプ命令であるかどうか決定するために、チェックが行われる。コード命令がジャンプ命令である場合には、呼び出されたアドレスのプログラムID(PID)が決定される。2つのプログラムIDが一致する場合には、呼び出されたアドレスへのジャンプが行われ、プログラムは継続される。プログラムIDが同一であるということは、ジャンプが現在活動しているプログラムの内部で実行されることを意味する。プログラムIDが異なる場合には、呼び出されたアドレスはジャンプさせられ、その中に配置されていたアドレス内容が読み出される。このアドレス内容が、予想されたエントリー命令すなわち固定的に定められたビットシーケンスである場合には、プログラムコードは継続される。もしそうでなければ、エラー処理ルーチンが呼び出される。
コード命令が、ジャンプ命令ではなく、むしろデータアクセスを伴う命令である場合には、データキャッシュから呼び出されたアドレスのプログラムIDは、CPU内にロードされ、決定される。プログラムID、PIDPCとPIDADDRが一致しない場合は、関連しているものは、外部プログラムの試みられたデータアクセスである。従って、第1アクセスビットは、データキャッシュのアドレスか、または割り当てられたテーブルのどちらかから決定され、評価される。アクセスが許可された場合、例えばデータを読み出す試みにおいて、第1アクセス権がRまたはWに設定されている場合は、プログラムコードは継続される。前述の例において、第1アクセスビットが、読み出し許可も書き込み許可も付与しない場合には、エラー処理ルーチンが呼び出される。
エラー処理ルーチンを呼び出す代わりに、この時点においてさらなる権利のチェックが続いてもよい。権利バッファに格納されたテーブルにおいて、呼び出された、および、呼び出しているプログラム部分を含む権利のペアが存在するかどうかについて、エントリーがチェックされる。権利のペアが存在する場合には、例として、プログラムID、PIDADDRを有するプログラム部分への拡張されたアクセスは、プログラムID、PIDPCを有するプログラム部分に対しても許可される。従って、あるプログラム部分に、本来同じ許可を有する他のプログラム部分より多くのアクセス権を付与することが可能である。しかし、機密アクセス権(第3アクセスビット)に対しては、権利に関する上記区別は維持される。しかし、プログラムID、PIDPCおよびPIDADDRを有するエントリーが、権利バッファ内に検出できなかった場合には、エラー処理ルーチンが開始される。
序文に記載された権利のチェックは、ここに記載された権利の拡張されたチェックと平行しても行われ得る。呼び出されたプログラム部分へのアクセスは、権利の通常または拡張されたチェックの結果が肯定的であった場合に許可される。権利の2つのチェックの結果が否定的であった場合は、エラー処理ルーチンが開始される。
プログラムID、PIDPCとPIDADDRとが一致する場合には、現在活動しているプログラム内でのアクセスが含まれる。コード命令が、通常のデータへのアクセスのみを許可する実行権を提供された場合には、そのアドレスにおける第2アクセスビットが、データキャッシュから読み出され、評価される。コード命令が、第2実行権(x)によって特定される処理機密データに対する権利も有する場合には、アクセス権を含むビットシーケンスからの、第3アクセス権が読み出され、評価される。許可されたアクセスの場合には、プログラムコードは上記の両方の場合で継続される。そうでなければ、エラー処理ルーチンが呼び出される。
図7は、本発明によるマイクロプロセッサ回路の概略の構成を例として示している。マイクロプロセッサ1は、制御ライン10を介してメモリ配列2に接続されている制御ユニット3を含む。メモリは、オペレーティングシステムのために提供された領域21と、例として、それぞれ外部プログラムのための3つのメモリ領域22、23、24と、オペレーティングシステムのみによって管理され得るバッファ25と、全てのプログラムに対して使用され得るバッファ26と、メモリ領域22、23、24の内の1つにそれぞれ割り当てられ、それぞれメモリ領域22、23、24によってのみ管理され得るバッファ27、28、29(いわゆる「機密スタック」)とを含む。さらに、マイクロプロセッサは、中央処理装置(CPU)6、命令キャッシュ4、データキャッシュ5、そして、それぞれ補助レジスタ72、82を有する演算装置7、8とを備える。さらに、演算装置7、8および演算/論理処理装置6に接続された、評価装置9が存在する。
演算装置7によって、現在実行されているコード命令のアドレスのプログラムIDが決定され、補助レジスタ72に格納される。このために、命令キャッシュ4からのアドレスは、演算/論理処理装置を介して演算装置7に供給される。同様の態様で、呼び出されるべきアドレスのプログラムIDは、演算装置8によって決定され、補助レジスタ82に格納される。呼び出されるべきアドレスは、演算/論理装置6によって、データキャッシュから演算装置8に入力される。補助レジスタ72、82の内容は、評価装置9に供給され、そこで互いに比較される。このことは、アクセスが2つのプログラム間で達成されるべきか、1つのプログラム内で実行されるべきかについての指示を与える。最終的に、コード命令および呼び出されるべきアドレスのアクセス権は、評価装置9に供給される。この情報を用いて、評価装置9は、図6に記載されたプログラムシーケンスを実行することができ、アクセスが許可されるべきか、拒絶されるべきかどうか決定することができる。この結果はCPUに供給される。
図1は、プログラムAとプログラムBの二つを有する線形アドレス空間の分割を示す。 図2は、アクセス権を含むテーブルの第1の例示的な実施形態を示す。 図3は、アクセス権を含むテーブルの第2の例示的な実施形態を示す。 図4は、アドレス領域の基本的な設計を示し、各アドレスは、アクセス権を含むビットシーケンスを割り当てられる。 図5は、可能なアクセス権を有するテーブルを示す。 図6Aは、本発明による方法をプログラムフローチャートの形態で示す。 図6Bは、本発明による方法をプログラムフローチャートの形態で示す。 図6Cは、本発明による方法をプログラムフローチャートの形態で示す。 図6Dは、本発明による方法をプログラムフローチャートの形態で示す。 図7は、本発明によるマイクロプロセッサ回路の例示的な実施形態を示す。
符号の説明
1 マイクロプロセッサ
2 メモリ
3 制御装置
4 命令キャッシュ
5 データキャッシュ
6 CPU
7 演算装置
8 演算装置
9 評価装置
10 制御ライン
21 メモリ領域
22 メモリ領域
23 メモリ領域
24 メモリ領域
25 バッファ
26 バッファ
27 バッファ
28 バッファ
29 バッファ
ACR アクセス権を含むビットシーケンス
72 第1補助レジスタ
82 第2補助レジスタ

Claims (20)

  1. メモリ(2)に格納されたデータまたはプログラムへのアクセスを統制するマイクロプロセッサ回路であって、
    該マイクロプロセッサ回路は、
    少なくとも1つのマイクロプロセッサ(1)と
    オペレーティングシステムのためのメモリ(21)と
    個々の外部プログラムを用いた自由なプログラミングのための少なくとも1つのメモリ(22、23、24)
    備え、
    複数のメモリ領域が、自由なプログラミングのために該メモリ(22、23、24)に設けられており、該複数のメモリ領域のそれぞれが、アドレス空間を有しており、
    各アドレス空間識別子(プログラムID)割り当てられており各アドレス空間は、手段(7、8)を有しており、
    該手段(7、8)は、該メモリ領域のアドレス指定を行う前にメモリアクセスを行う場合には、各場合において、メモリ領域にそれぞれ割り当てられた該識別子(プログラムID)を第1補助レジスタ(72)にロードし、該アドレス指定されたメモリ領域の該識別子(プログラムID)を第2の補助レジスタ(82)にロードし、該第1補助レジスタ(72)と該第2補助レジスタ(82の比較を実行
    メモリ領域の各アドレス空間は、複数のアクセス権を含む少なくとも1つのビットシーケンス(ACR)割り当てられており、
    該ビットシーケンスは、第1のアクセス権と第2のアクセス権とを含む複数のアクセス権を含み、該第1のアクセス権は、2つのメモリ領域(22、23、24)間のアクセスを制御し、該第2のアクセス権は、メモリ領域(22、23、24)内のアクセスを制御する、マイクロプロセッサ回路。
  2. アドレス空間は、
    (i)下位アドレスおよび上位アドレス、または、
    (ii)アドレス開始点およびアドレスブロック長
    によって定義されている、請求項1に記載のマイクロプロセッサ回路。
  3. 前記複数のアクセス権を含む前記ビットシーケンス(ACR)複数のアドレスブロックとともに前記メモリに格納されたテーブルの中に格納される、請求項1または2に記載のマイクロプロセッサ回路。
  4. アドレスブロックは、そのアドレス開始点またはアドレス終点およびアドレスブロック長によって識別される、請求項3に記載のマイクロプロセッサ回路。
  5. アドレスブロック、下位アドレスおよび上位アドレスによって識別される、請求項3に記載のマイクロプロセッサ回路。
  6. 各アドレス空間または各アドレスには、前記複数のアクセス権を含む前記ビットシーケンス(ACR)提供されている、請求項1または2に記載のマイクロプロセッサ回路。
  7. 第3アクセス権が前記ビットシーケンスに提供されており、該第3アクセス権がメモリ領域(22、23、24)内のアクセスを制御する、請求項に記載のマイクロプロセッサ回路。
  8. 権利バッファが設けられており、該権利バッファは、呼び出された、および、呼び出しているプログラム部分を含む権利のペアが存在するか否かを決定するようにチェックされるエントリーを有するテーブルを格納する、請求項1からのいずれか一項に記載のマイクロプロセッサ回路。
  9. 前記権利のペアが存在する場合には、第1のプログラム部分に対する拡張されたアクセスが第2のプログラム部分に対して許可される、請求項に記載のマイクロプロセッサ回路。
  10. 前記オペレーティングシステムによって排他的に管理されるメモリ領域(25)が設けられている、請求項からのいずれか一項に記載のマイクロプロセッサ回路。
  11. 各メモリ領域(22、23、24)には、データをバッファ格納するために、アドレス領域(27、28、29)割り当てられており、該データは、それぞれのメモリ領域(22、23、24)に格納されたプログラムによってのみ管理され得る、請求項1から10のいずれかに記載のマイクロプロセッサ回路。
  12. マイクロプロセッサ回路を用いて、メモリ(2)内に格納されたデータまたはプログラムへのアクセスを統制する方法であって
    該マイクロプロセッサ回路は、
    少なくとも1つのマイクロプロセッサ(1)と
    オペレーティングシステムのためのメモリ(21)と
    個々の外部プログラムを用いた自由なプログラミングのための少なくとも1つのメモリ(22、23、24)
    備え、
    複数のメモリ領域が、自由なプログラミングのため該メモリ(22、23、24)に設けられており、該複数のメモリ領域のそれぞれが、アドレス空間を有しており、
    各アドレス空間には識別子(プログラムID)が割り当てられており、
    厳密に1つの外部プログラムが、各メモリ領域(22、23、24)に提供されており
    該方法は、
    a)外部プログラムの現在実行されているコード命令の第1プログラムID(PIDPC)を、その時点での現在のアドレスの識別子を用いて、決定するステップと、
    b)アドレス指定されたメモリ領域の第2プログラムID(PIDaddr)を決定するステップと、
    c)第1のプログラムIDと該第2プログラムIDを比較するステップと、
    d)該第1のプログラムIDが該第2のプログラムIDに対応する場合には、第1のアクセス権(ACR)を選択し、該第1のプログラムIDが該第2のプログラムIDに対応していない場合には、第2のアクセス権(ACR)を選択するステップであって、該第1のアクセス権は、2つのメモリ領域(22、23、24)間のアクセスを制御し、該第2のアクセス権は、メモリ領域(22、23、24)内のアクセスを制御する、ステップと、
    e)該第1のアクセス権および該第2のアクセス権のうちの該選択された一方を評価するステップと、
    f1)アドレス指定されたメモリ領域へのアクセスまたはコード命令が許可されている場合は、プログラムコードを継続するステップと、
    f2)アドレス指定されたメモリ領域へのアクセスまたはコード命令が許可されていない場合は、エラー処理ルーチンを呼び出すステップ
    を包含する、方法。
  13. 同一である第1および第2プログラムIDが与えられた場合には、前記現在実行されているコード命令の前記アクセス権に応じて、前記第2アクセス権または第3アクセス権が選択される、請求項12に記載の方法。
  14. 前記ステップf2以降に、以下のステップ、
    )前記第1プログラムID(PIDPC)を有する前記メモリ領域から、前記第2プログムID(PIDaddr)によって識別される前記メモリ領域への許可されたアクセスを表すエントリーに対して、前記権利バッファをチェックするステップと、
    h1)該エントリーが権利バッファ内に存在する場合には、前記プログラムコードを継続するステップと、
    h2)該エントリーが存在しない場合には、エラー処理ルーチンを呼び出すステップ
    が実行される、請求項12または13に記載の方法。
  15. 前記ステップa)のコード命令が、ジャンプ命令であり、以下のステップ、
    b)前記アドレス指定されたメモリ領域の前記第2プログラムID(PIDaddr)を決定するステップと、
    c)前記第1のプログラムIDと前記第2プログラムIDを比較するステップと、
    d)呼び出されたアドレスへジャンプするステップと、
    e1)第1のプログラムIDと該第2プログラムIDが同一である場合は、アドレス指定されたメモリ領域における前記プログラムコードを継続するステップと、
    e2)第1のプログラムIDと該第2プログラムIDが同一でない場合には、アドレス指定された内容のアドレス内容読み出ステップと、
    aa)該読み出されたアドレスの内容が、エントリー命令でない場合には、エラー処理ルーチンを呼び出すステップと、
    bb)該読み出されたアドレスの内容が、エントリー命令である場合には、前記プログラムコードを継続するステップ
    が実行される、請求項12から14のいずれか一項に記載の方法。
  16. 前記ステップd)の前に、バッファ(25〜29)上で、前記現在実行されているジャンプ命令アドレスを格納するステップが実行される、請求項15に記載の方法。
  17. 前記エントリー命令が、固定的に定められたビットシーケンスである、請求項15または16に記載の方法。
  18. 前記バッファ(25)が、前記オペレーティングシステムによって排他的に管理されている、請求項12から17のいずれか一項に記載の方法。
  19. プログラムにおける機能呼び出しが該プログラム内の機能を呼び出した場合には、リターンアドレスが、パブリックアクセス可能なバッファ(26)に格納される、請求項12から18のいずれか一項に記載の方法。
  20. 第1のプログラムにおける機能呼び出しが該第1のプログラム以外の第2のプログラム内の機能を呼び出した場合には、リターンアドレスが、前記オペレーティングシステムよってアクセスされるバッファ(27、28、29)に格納される、請求項12から19のいずれか一項に記載の方法。
JP2002563342A 2001-02-06 2002-01-25 データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法 Expired - Fee Related JP3878134B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10105284A DE10105284A1 (de) 2001-02-06 2001-02-06 Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten
PCT/DE2002/000256 WO2002063463A2 (de) 2001-02-06 2002-01-25 Mikroprozessorschaltung für datenträger und verfahren zum organisieren des zugriffs auf in einem speicher abgelegten daten

Publications (2)

Publication Number Publication Date
JP2004526237A JP2004526237A (ja) 2004-08-26
JP3878134B2 true JP3878134B2 (ja) 2007-02-07

Family

ID=7672999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002563342A Expired - Fee Related JP3878134B2 (ja) 2001-02-06 2002-01-25 データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法

Country Status (13)

Country Link
US (1) US7260690B2 (ja)
EP (1) EP1358558B1 (ja)
JP (1) JP3878134B2 (ja)
KR (1) KR100574747B1 (ja)
CN (1) CN1320465C (ja)
AT (1) ATE505763T1 (ja)
BR (1) BR0206992A (ja)
DE (2) DE10105284A1 (ja)
MX (1) MXPA03007023A (ja)
RU (1) RU2266559C2 (ja)
TW (1) TWI259365B (ja)
UA (1) UA74238C2 (ja)
WO (1) WO2002063463A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2843465B1 (fr) * 2002-08-06 2005-07-01 Checkflow Procede de communication entre applications destine a securiser l'acces aux donnees d'une application
JP2005275629A (ja) * 2004-03-23 2005-10-06 Nec Corp マルチプロセッサシステム、及び、メモリアクセス方法
WO2006052703A2 (en) * 2004-11-04 2006-05-18 Board Of Trustees Of Michigan State University Secure bit
US20060136679A1 (en) * 2004-12-21 2006-06-22 O'connor Dennis M Protected processing apparatus, systems, and methods
JP2007052481A (ja) * 2005-08-15 2007-03-01 Matsushita Electric Ind Co Ltd Icカード用lsi
JP4519738B2 (ja) * 2005-08-26 2010-08-04 株式会社東芝 メモリアクセス制御装置
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
US8739304B2 (en) * 2006-11-10 2014-05-27 Sony Computer Entertainment Inc. Providing content using hybrid media distribution scheme with enhanced security
US8752199B2 (en) * 2006-11-10 2014-06-10 Sony Computer Entertainment Inc. Hybrid media distribution with enhanced security
US20100325077A1 (en) * 2007-02-21 2010-12-23 Naoshi Higuchi Computer, operation rule application method and operating system
JP4939387B2 (ja) 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法
DE102008029231B4 (de) * 2008-06-19 2010-12-02 Lars Gollub Prozessor mit Ansprungbefehlen zur Überwachung des Kontrollflusses
US20110225654A1 (en) * 2008-08-25 2011-09-15 Mao-Huai Weng Write-Proof Protection Method of a Storage Device
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
DE102013218646B4 (de) 2012-09-18 2023-01-19 Denso Corporation Verarbeitungsvorrichtung
JP2014174758A (ja) * 2013-03-08 2014-09-22 Denso Corp 処理装置
JP6323235B2 (ja) * 2014-07-29 2018-05-16 株式会社デンソー 電子制御装置
US10129035B2 (en) * 2015-08-10 2018-11-13 Data I/O Corporation Device birth certificate

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3072127D1 (en) 1980-02-28 1988-12-08 Intel Corp Data processing system
JPS5963097A (ja) 1982-09-30 1984-04-10 Panafacom Ltd アドレス比較によるメモリ・プロテクシヨン方式
SU1156078A1 (ru) 1983-01-03 1985-05-15 Московский Ордена Ленина И Ордена Октябрьской Революции Энергетический Институт Устройство дл обмена информацией между объектом контрол и электронной вычислительной машиной
JPS6137540A (ja) 1984-07-30 1986-02-22 Kubota Ltd 走行用伝動装置
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
JPH07302226A (ja) 1994-05-02 1995-11-14 Nec Corp メモリ不正アクセス検出回路
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
JPH08272625A (ja) 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
JPH09160831A (ja) 1995-12-08 1997-06-20 Hitachi Ltd 情報処理装置
JP3638714B2 (ja) 1996-05-23 2005-04-13 三菱電機株式会社 記憶データ保護装置
RU2126168C1 (ru) 1997-04-02 1999-02-10 Товарищество с ограниченной ответственностью "Коминфор" ("COMINFOR") Способ защиты персонального компьютера от несанкционированного доступа и устройство для его реализации
JP2001005726A (ja) * 1999-04-20 2001-01-12 Nec Corp メモリアドレス空間拡張装置及びプログラムを記憶した記憶媒体
DE19925195A1 (de) * 1999-06-01 2000-12-07 Giesecke & Devrient Gmbh Verfahren für die sichere Verwaltung eines Speichers
DE19937529A1 (de) * 1999-08-09 2001-03-01 Giesecke & Devrient Gmbh Tragbarer Datenträger und Verfahren zur Nutzung in einer Mehrzahl von Anwendungen
US6795905B1 (en) * 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer
US6823433B1 (en) * 2001-11-13 2004-11-23 Advanced Micro Devices, Inc. Memory management system and method for providing physical address based memory access security
US6854039B1 (en) * 2001-12-05 2005-02-08 Advanced Micro Devices, Inc. Memory management system and method providing increased memory access security

Also Published As

Publication number Publication date
DE10105284A1 (de) 2002-08-29
WO2002063463A2 (de) 2002-08-15
US20040088509A1 (en) 2004-05-06
MXPA03007023A (es) 2004-12-06
RU2266559C2 (ru) 2005-12-20
US7260690B2 (en) 2007-08-21
EP1358558A2 (de) 2003-11-05
CN1320465C (zh) 2007-06-06
KR100574747B1 (ko) 2006-04-28
WO2002063463A3 (de) 2003-02-06
DE50215002D1 (de) 2011-05-26
ATE505763T1 (de) 2011-04-15
TWI259365B (en) 2006-08-01
BR0206992A (pt) 2004-02-10
EP1358558B1 (de) 2011-04-13
CN1491388A (zh) 2004-04-21
KR20030084921A (ko) 2003-11-01
RU2003127063A (ru) 2005-01-10
JP2004526237A (ja) 2004-08-26
UA74238C2 (uk) 2005-11-15

Similar Documents

Publication Publication Date Title
JP3878134B2 (ja) データキャリアのためのマイクロプロセッサ回路、および、メモリ内に格納されたデータへのアクセスを組織化するための方法
JP2727520B2 (ja) メモリカード及びその作動方法
KR100734340B1 (ko) 상이한 메모리 기술 특성을 갖는 분할 메모리 장치
US7281101B2 (en) Memory device storing data relating to specific application programs
UA44303C2 (uk) Портативна чіп-картка
US20020089890A1 (en) Memory device and method for accessing a memory
US6453397B1 (en) Single chip microcomputer internally including a flash memory
JPH05173890A (ja) 携帯データキャリヤー用データ保護マイクロプロセッサー回路
GB2503470A (en) Memory protection using read protection flags and access conditions
US20020040438A1 (en) Method to securely load and manage multiple applications on a conventional file system smart card
US7409251B2 (en) Method and system for writing NV memories in a controller architecture, corresponding computer program product and computer-readable storage medium
US20060206704A1 (en) Data transmission system and method for operating a data transmission system
US7363293B2 (en) Access control method and device in an embedded system
JP4559552B2 (ja) 集積回路を有するチップカード
JPH01219982A (ja) Icカード
JP3771904B2 (ja) 補助レジスタバンクを有するマイクロプロセッサ回路
GB2356469A (en) Portable data carrier memory management system and method
US6487649B1 (en) Microcomputer
JP2003196625A (ja) Icカードプログラム及びicカード
EP1456730B1 (en) Method and system for module chaining control in a modular software architecture
KR20020078998A (ko) 다중 응용 프로그램들 간의 보안을 유지할 수 있는 스마트카드
KR20020082281A (ko) 다중 응용 프로그램들 간의 보안을 유지할 수 있는 스마트카드
MXPA98007933A (en) Memo semiconductor device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060404

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061101

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131110

Year of fee payment: 7

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

LAPS Cancellation because of no payment of annual fees