JP2006522968A - 携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行 - Google Patents

携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行 Download PDF

Info

Publication number
JP2006522968A
JP2006522968A JP2006504799A JP2006504799A JP2006522968A JP 2006522968 A JP2006522968 A JP 2006522968A JP 2006504799 A JP2006504799 A JP 2006504799A JP 2006504799 A JP2006504799 A JP 2006504799A JP 2006522968 A JP2006522968 A JP 2006522968A
Authority
JP
Japan
Prior art keywords
virtual machine
program
data carrier
operating state
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006504799A
Other languages
English (en)
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Publication of JP2006522968A publication Critical patent/JP2006522968A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/77Protecting 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 smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Selective Calling Equipment (AREA)
  • Debugging And Monitoring (AREA)

Abstract

携帯型データ・キャリアのバーチャル・マシン(VM、VM’)向けプログラム(26)を制御実行する方法であって、データ・キャリアが少なくとも第1および第2バーチャル・マシン(VM、VM’)を実行するプロセッサー(12)を有して成り、プログラム(26)を第1および第2バーチャル・マシン(VM、VM’)で実行する。プログラム(26)の実行中に第1バーチャル・マシン(VM)の動作状態と第2バーチャル・マシン(VM’)の動作状態との間に差異が認められた場合、プログラム(26)の実行を停止する。データ・キャリアおよびコンピュータ・プログラム製品が対応する機能を発揮する。本発明によりプログラムの制御実行方法が提供され、それによってデータ・キャリアに対する攻撃またはデータ・キャリアの不具合に伴うセキュリティー上のリスクが回避される。

Description

本発明はプロセッサーを有する携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行に関するものである。この種の携帯型データ・キャリアは特に各種チップ・カードまたはチップ・モジュールであってよい。具体的には、本発明は、携帯型データ・キャリアの故障または携帯型データ・キャリアに対する攻撃の検知、およびかかる故障または攻撃により携帯型データ・キャリアのセキュリティーが危険に晒されるのを回避するプログラムの制御実行に関するものである。
プログラムを実行するバーチャル・マシンを有する携帯型データ・キャリアには、例えば、Java Card(商標)がある。このようなデータ・キャリアは非特許文献1に記載されている。Java Card標準、使用バーチャル・マシンJCVM(Java Card Virtual Machine)および実行プログラムの詳細仕様がサン・マイクロシステムズ社のインターネットのホームページ(http://java.sun.com/products/javacard)に掲載されている。
携帯型データ・キャリアは、例えば、金融取引またはドキュメントの電子署名に関わるようなセキュリティーが重要であるアプリケーションに用いられることが多い。外部干渉によって携帯型データ・キャリアのプログラムの実行を混乱させる攻撃方法が既に知られている。このような混乱は特に電圧パルス、加熱または冷却、電界および磁界、電磁波または粒子放射線によって引き起こされる。例えば、露出している半導体チップに閃光を当てることにより、プロセッサーのレジスタまたはメモリの内容を改竄することができる。このような干渉により、例えば、不完全に暗号化され、それを分析することにより秘密キーが推測できるようなテキストが出力されるようなことになれば、データ・キャリアのセキュリティーが危険に晒される。
従って、冒頭で述べたようなデータ・キャリアがバーチャル・マシンによるプログラムの実行が妨害される攻撃によって危険に晒されることから保護するという課題が存在している。
ソフトウェアの欠陥をある程度補償できるコンピュータ・ネットワークが特許文献1に開示されている。このコンピュータ・ネットワークには各々がバーチャル・マシンを実行する少なくとも2つのコンピュータが用意されている。1つのバーチャル・マシンの動作が異常であることが判明すると別のバーチャル・マシンによって引き続きプログラムが実行される。
特許文献1が開示しているシステムは、携帯型データ・キャリアを意図したものではなく複数のコンピュータから成る複雑なネットワークであるため、ここで言う一般的なタイプのものとは異なる。相互に疎結合された複数のプロセッサーによってバーチャル・マシンが実行される。1つのバーチャル・マシンが妨害されてもプログラムの実行が継続される。特許文献1の教示内容は1つのプロセッサーから成る携帯型データ・キャリアには適していない。
英国特許第2353113号明細書 書籍 「Handbuch der Chipkarten」(W.Rankl、W.Effing共著、Hanser Verlag、第3版、1999年)の第5章第10節第2項(pp261〜281)
従って、本発明の課題は、従来の技術が抱えている問題を少なくともある程度解消し、携帯型データ・キャリアのバーチャル・マシン向けプログラムを制御実行する方法を提供し、それによって携帯型データ・キャリアが攻撃を受けるか、または携帯型データ・キャリアに不具合が生じた場合、セキュリティー上のリスクを回避することにある。好ましい実施の形態において、携帯型データ・キャリアの能力をできるだけ低下させずに信頼性の高い保護を得ることができる。
本発明によれば、前記課題は請求項1記載の特徴を有する方法、請求項10記載の特徴を有する携帯型データ・キャリア、および請求項11記載の特徴を有するコンピュータ・プログラム製品によって完全にまたは部分的に達成される。従属請求項は本発明の好ましい実施の形態に関わるものである。
本発明は携帯型データ・キャリアの1つのプロセッサーに複数のバーチャル・マシンを実行させ、それらのバーチャル・マシンで全く同じプログラムを実行するという基本概念に基づいている。この方法によればプログラムの実行に冗長性が生まれ、それを不具合の検知に利用できる。プロセッサーを1つしか持たない携帯型データ・キャリアからこのような冗長性が得られることは本発明の驚くべき成果である。
本発明によれば、バーチャル・マシンの動作状態に差異が生じた場合プログラムの実行が停止される。従って、正常に動作しているときには個々のバーチャル・マシンが識別されることなくプログラムが継続して実行される。本発明による前記プログラムの実行停止により、攻撃に対し特に高い安全性が確保される。
本発明は従来のハードウェアによって容易に実現できるという利点がある。また、本発明による攻撃を防御する方法を実行する上において、プログラムに手を加える必要は一切ない。標準のバーチャル・マシン向けのすべてのプログラムを本発明に基づいて構成されたデータ・キャリアで動作させることができるため本発明が大きく支持される。
個々のバーチャル・マシンの動作の一致性を確認する場合、すべてにわたって比較するのではなく、一部のみを比較することが好ましい。好ましい実施の形態においては、幾つかの重要なレジスタの内容および/またはメモリの内容のみが比較される。この場合、重要なレジスタには、例えば、バーチャル・マシンのプログラム・カウンターおよび/またはスタック・ポインターが含まれる。本発明の幾つかの実施の形態において比較される重要なメモリ内容の例に確認時におけるバーチャル・マシンのスタック上の最新(最上部)のエレメントがある。
携帯型データ・キャリアのバーチャル・マシンは1つのプロセッサーによって実行されるため、一般にプログラム・シーケンスがインターリーブされる。しかし、携帯型データ・キャリアのプロセッサーが完全に並行して個別動作させる機能を備えている場合にはそれを排除するものではない。
バーチャル・マシンが正常に動作している限り同一状態を呈するべきタイミングであれば、いつでもその動作状態を確認できる。従って、原則的には実行するプログラムの命令と命令との境界に限定されるものではないが、好ましい実施の形態においてはバーチャル・マシンがプログラムの命令を実行終了する度に動作状態が確認される。別の実施の形態において、命令の一部が実行終了すると直ちにバーチャル・マシンが比較されるか、または幾つかの命令が実行終了した後に比較される。
個々のプログラム命令をまず第1バーチャル・マシン、次いで第2バーチャル・マシンで実行することが好ましい。特定の実施の形態において、第1バーチャル・マシンによる命令の実行が終了してから、携帯型データ・キャリアのプロセッサーが第2バーチャル・マシンを用いてその命令を実行開始する。これに反し、別の実施の形態においては、第2バーチャル・マシンが第1バーチャル・マシンに追従できることを条件に、プロセッサーは数ある命令区分の各々をまず第1バーチャル・マシンで実行し、次いで第2バーチャル・マシンで実行することができる。
少なくとも2つ、あるいは実施の形態によってはそれ以上のバーチャル・マシンを使用することにより、各々のバーチャル・マシンの能力をそれに相応して小さくすることができる。しかし、実際のプログラムの実行時間を考慮した場合、一般的な携帯型データ・キャリアにおいてはその不揮発性メモリへの書込み操作に多大な時間を要するということに留意する必要がある。
従って、好ましい実施の形態においては前記バーチャル・マシンが携帯型データ・キャリアの不揮発性メモリの共通ヒープにアクセスし、1つのバーチャル・マシンのみが書き込み操作を行う。別のバーチャル・マシンは書き込み操作を完全にスキップするか、または書き込み操作を行う代わりに、書き込みを行うべき記憶位置に書き込むべき値が既に存在しているか否かを確認することができる。実行すべきプログラムにヒープへの書き込み操作が多数含まれている場合には、これらの書き込み操作によって全実行時間の相当部分が占められることになる。前記本発明の実施の形態により、全実行時間の前記部分が変化しない一方、あまり問題にならないプロセッサーの純粋な演算時間のみが増加する。
本発明の携帯型データ・キャリアはチップ・カードまたはチップ・モジュールの形態を成していることが好ましい。本発明のコンピュータ・プログラム製品は本発明の方法を実行するためのプログラム命令を含んでいる。かかるコンピュータ・プログラム製品は本発明の方法を実行するためのプログラムを記憶した半導体メモリ、ディスケット、またはCD−ROMのような物理的媒体であってよい。しかし、別の形態としてコンピュータ・ネットワークを介して送信される信号のような非物理的媒体であってもよい。前記コンピュータ・プログラム製品は、特にチップ・カードまたはその他のデータ・キャリアの製造および/または初期化および/または個別化に利用できる。
好ましい実施の形態において、データ・キャリアおよび/またはコンピュータ・プログラム製品が前記機能および/または方法に係わる従属請求項に記載の機能に対応する機能を備えている。
以下、添付の概略図を参照し例示的な実施の形態および幾つかの別の実施の形態について詳細に説明する。本説明により、本発明の更なる特徴、効果、および目的が明らかになる。
本発明の例示的な実施の形態において、図1に示すデータ・キャリア10は「Java Card」標準に準拠したチップ・カードの形態を成している。前記データ・キャリアは1つの半導体チップ上にプロセッサー12、各種方法によって形成された複数のメモリ領域、および非接触型または接触型用通信インタフェース14を備えている。本例示的な実施の形態においては、作業用メモリ16、読み取り専用メモリ18、および不揮発性メモリ20が前記メモリ領域に設けられている。作業用メモリ16はRAMから成り、読み取り専用メモリ18はマスク・プログラムROM、また不揮発性メモリ20は電気的に消去およびプログラム可能なEEPROMから成っている。不揮発性メモリ20への書き込みアクセスには比較的長い時間を要し、例えば、読み取りアクセスの30倍の時間を要する。
多くの機能およびサービスを提供するオペレーティング・システム22が読み取り専用メモリ18に記憶されている。またその一部は不揮発性メモリ20にも記憶されている。オペレーティング・システム22は、とりわけ本例示的な実施の形態においてはJCVM(Java Card Virtual Machine)であるバーチャル・マシンを実践するコード・モジュール24を含んでいる。
図1には不揮発性メモリ20に所在し、本例示的な実施の形態においてはJava Card Appletの形態を成す実行プログラム26が例として示されている。プログラム26の一部または全部を読み取り専用メモリ18に保持することもでき、またデータ・キャリア10によって実行される別のプログラムを用意することもできる。不揮発性メモリ20の1つの領域がプログラムの実行中にオブジェクトおよびその他のデータ構造体を保持するヒープ28として確保されている。
オペレーティング・システム22の制御下でプログラム26を実行するため、各々がバーチャル・マシンVM、VM’を成すコード・モジュール24の2つのインスタンスがプロセッサー12によって起動される。図2に示すように、不揮発性メモリ20に一度だけしか存在しない1つのプログラム26が2つのバーチャル・マシンVM、VM’によって実行される。従って、2つのバーチャル・マシンVM、VM’がプログラム26の命令を取り出す場合、不揮発性メモリ20の同じアドレスにアクセスする。
プログラムの実行時に2つのバーチャル・マシンVM、VM’が共通ヒープ28にアクセスする。この場合も、共通ヒープ28に保存されるオブジェクトおよびデータ構造体はそれぞれ一度だけしか存在しない。第1バーチャル・マシンVMがヒープ28に対する読み取り操作Rおよび書き込み操作Wの両方を行う。これに対し第2バーチャル・マシンVM’は読み取り操作R’は行うが、書き込み操作は一切行わず、代わりに確認操作Vを行う。
バーチャル・マシンVM、VM’はそれぞれ独自のレジスタを有している。図2にはそれぞれのプログラム・カウンターPC、PC’およびスタック・ポインターSP、SP’が示されている。これらのレジスタは作業用メモリ16に配されるか、またはプロセッサー12のレジスタが用いられる。更に各々のバーチャル・マシンVM、VM’は作業用メモリ16のそれぞれの領域に配された独自のスタックST、ST’も有している。図2において、それぞれのスタック・ポインターSP、SP’によって示される当該時点におけるスタックST、ST’の最新(最上部)のエントリーがラベル@SPおよび@SP’によってそれぞれ示されている。
図1の変更例として、バーチャル・マシンVM、VM’をそれぞれ別のハードウェア、即ち、それぞれ別のプロセッサーに割り当てられるメモリ20に配することができる。また、バーチャル・マシンVM、VM’はハードウェア・コンポーネントの形態を成すこともできる。
プログラム26の実行中、オペレーティング・システム22が図3に示すループを辿る。プログラム26の個々の命令が実行される度にループが一回転する。ステップ30において、命令はまず第1バーチャル・マシンVMによって実行される。ここでは、従来のシステムにおける1つのバーチャル・マシンによるプログラムの実行と何等変わりはない。特に、第1バーチャル・マシンは独自のレジスタPCおよびSP、並びにスタックSTを維持し、必要に応じヒープ28に対し読み取り操作Rおよび/または書き込み操作Wを行う。
前記第1バーチャル・マシンVMによる命令の実行が終了すると、ステップ32において、プログラム26の前記と同じ命令が第2バーチャル・マシンVM’によって実行される。この場合も、通常の方法によってレジスタPC’およびSP’、並びにスタックST’が維持され、必要に応じヒープ28に対する読み取り操作が行われる。
しかし、第2バーチャル・マシンVM’による命令の実行は、その命令が書き込み操作を指示している場合、書き込み操作を行う代わりにヒープ28に実際に書き込むべき値とその値を書き込むべきヒープ28のアドレスにおける現在の内容とを比較する比較操作Vを行う点で第1バーチャル・マシンVMによる命令の実行とは異なる。2つのバーチャル・マシンVM、VM’の演算操作が一致する場合、ステップ32において第2バーチャル・マシンVM’によって決定された値が既にステップ30において第1バーチャル・マシンVMによってヒープ28に書き込まれていたことになる。従って、ステップ32における確認結果が一致し、演算シーケンスが続行される。これに反し、ステップ32において前記2つの値に差異が認められた場合、それはバーチャル・マシンVM、VM’のいずれか一方が異常であることを示している。その結果、問題があるとしてプログラムの実行が停止される。この可能性が図3の破線矢印で示されている。
両方のバーチャル・マシンVM、VM’による命令の実行が終了した後、ステップ34においてその時点における2つのバーチャル・マシンVM、VM’の動作状態が確認される。その場合、本例示的な実施の形態においては、図4に示すように、特定のレジスタおよびメモリの値の一致性のみが確認される。まず、ステップ34.1において、前記命令を実行した後、2つのプログラム・カウンターPC、PC’が同じ値を有しているか否か確認される。同じ値を有している場合には、ステップ34.2において、2つのスタック・ポインターSP、SP’の一致性が確認される。この確認結果も良好であれば、ステップ34.3において、当該時点におけるスタックST、ST’の最新のエントリー@SP、@SP’、即ち、スタック・ポインターSP、SP’が指し示すエントリーが同じであるか否か確認される。
前記3つのステップ34.1、34.2、および34.3における結果がすべて一致した場合、ステップ34(図3)において、2つのバーチャル・マシンVM、VM’が正常にプログラムを実行したと見なされる。その後ループの開始点に戻り、プログラム26の次の命令がまず第1バーチャル・マシンVM、次いで第2バーチャル・マシンVM’によって実行される。
しかし、前記動作状態のチェック期間中に前記3つのサブ・ステップ34.1、34.2、および34.3のいずれか1つにおいて差異が認められた場合、それは2つのバーチャル・マシンVM、VM’のいずれか一方が異常であることを示している。換言すれば、このことは携帯型データ・キャリア10のハードウェア障害またはハードウェアに対する攻撃の徴候であると見なすことができる。プロセッサー12によってステップ30〜32が厳密に連続して実行されるため、例えば、閃光による攻撃を受けた場合、2つのバーチャル・マシンVM、VM’のいずれか一方の動作のみが影響を受ける。素早い閃光を連続的に受けた場合であっても、両方のバーチャル・マシンVM、VM’が同じように妨害を受ける可能性は極めて低い。
ステップ34において動作状態に差異が認められた場合、問題があるとしてプログラムの実行が停止される。その場合、オペレーティング・システム22によって、データ・キャリア10が安全な状態にされる。この点に関し、特に注目すべきはプログラムの実行が停止されると、データ・キャリア10は以後出力操作を一切行わないことである。データ・キャリア10のセキュリティー要件に応じ、通常のリセット操作または特別なイネーブル手順によってデータ・キャリア10を再度使用可能にするか、または完全に動作を停止することができる。
本発明の例示的な実施の形態による携帯型データ・キャリアの機能単位を示すブロック図。 携帯型データ・キャリアでプログラムを実行する際に動作するコンポーネントの概念図。 プログラムの実行時に個々のプログラム命令が辿るメイン・ループのフロー図。 個々のバーチャル・マシンの動作の一致性を確認するためのフロー図。
符号の説明
10 携帯型データ・キャリア
12 プロセッサー
14 通信インタフェース
16 作業用メモリ
18 読み取り専用メモリ
20 不揮発性メモリ
22 オペレーティング・システム
24 コード・モジュール
26 プログラム
28 ヒープ

Claims (11)

  1. 携帯型データ・キャリア(10)のバーチャル・マシン(VM、VM’)向けプログラム(26)を制御実行する方法であって、
    前記データ・キャリア(10)が少なくとも第1および第2バーチャル・マシン(VM、VM’)を実行するプロセッサー(12)を有して成り、
    前記プログラム(26)を前記第1および第2バーチャル・マシン(VM、VM’)で実行し、
    前記プログラム(26)の実行中に前記第1バーチャル・マシン(VM)の動作状態と前記第2バーチャル・マシン(VM’)の動作状態との一致性を確認し、
    前記第1バーチャル・マシン(VM)の動作状態と前記第2バーチャル・マシン(VM’)の動作状態との間に差異が認められた場合、前記プログラム(26)の実行を停止する
    ことを特徴とする方法。
  2. 前記第1バーチャル・マシン(VM)の動作状態と前記第2バーチャル・マシン(VM’)の動作状態との一致性の確認が、前記第1バーチャル・マシン(VM)のプログラム・カウンター(PC)の状態と前記第2バーチャル・マシン(VM’)のプログラム・カウンター(PC’)の状態との一致性の確認を含むことを特徴とする請求項1記載の方法。
  3. 前記第1バーチャル・マシン(VM)の動作状態と前記第2バーチャル・マシン(VM’)の動作状態との一致性の確認が、前記第1バーチャル・マシン(VM)のスタック・ポインター(SP)のレベルと前記第2バーチャル・マシン(VM’)のスタック・ポインター(SP’)のレベルとの一致性の確認を含むことを特徴とする請求項1または2記載の方法。
  4. 前記第1バーチャル・マシン(VM)の動作状態と前記第2バーチャル・マシン(VM’)の動作状態との一致性の確認が、前記第1バーチャル・マシン(VM)に関連付けられているスタック(ST)の最新エレメント(@SP)の値と前記第2バーチャル・マシン(VM’)に関連付けられているスタック(ST)の最新エレメント(@SP’)の値との一致性の確認を含むことを特徴とする請求項1〜3いずれか1項記載の方法。
  5. 前記第1および第2バーチャル・マシン(VM、VM’)による前記プログラム(26)の各命令の実行が終了する度に、前記第1バーチャル・マシン(VM)の動作状態と前記第2バーチャル・マシン(VM’)の動作状態との一致性を確認することを特徴とする請求項1〜4いずれか1項記載の方法。
  6. 前記第1および第2バーチャル・マシン(VM、VM’)が前記データ・キャリア(10)の不揮発性メモリ(20)内の共通ヒープ(28)にアクセスすることを特徴とする請求項1〜5いずれか1項記載の方法。
  7. 前記共通ヒープ(28)への書き込み操作を含む前記プログラム(26)の命令を実行する場合、前記第1バーチャル・マシン(VM)のみが前記書き込み操作を行うことを特徴とする請求項6記載の方法。
  8. 前記プログラム(26)の前記命令をまず前記第1バーチャル・マシン(VM)、次いで前記第2バーチャル・マシン(VM’)で実行し、該第2バーチャル・マシン(VM’)においては、書き込み操作を行う代わりに、書き込むべき値が前記ヒープ(28)の書き込むべき位置に存在しているか否かを確認することを特徴とする請求項7記載の方法。
  9. 前記プログラムがJCVM(Java Card Virtual Machine)向けのJava Card Appletであることを特徴とする請求項1〜8いずれか1項記載の方法。
  10. プロセッサー(12)およびオペレーティング・システム(22)を有して成る携帯型データ・キャリア(10)であって、前記オペレーティング・システム(22)が請求項1〜9いずれか1項記載の方法を前記プロセッサー(12)に実行させるプログラム命令を有して成ることを特徴とするデータ・キャリア。
  11. 請求項1〜9いずれか1項記載の特徴を有する方法を携帯型データ・キャリア(10)のプロセッサー(12)に実行させるプログラム命令を有して成ることを特徴とするコンピュータ・プログラム製品。
JP2006504799A 2003-03-25 2004-03-22 携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行 Pending JP2006522968A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10313318A DE10313318A1 (de) 2003-03-25 2003-03-25 Kontrollierte Ausführung eines für eine virtuelle Maschine vorgesehenen Programms auf einem tragbaren Datenträger
PCT/EP2004/003004 WO2004086220A2 (de) 2003-03-25 2004-03-22 Kontrollierte ausführung eines für eine virtuelle maschine vorgesehenen programms auf einem tragbaren datenträger

Publications (1)

Publication Number Publication Date
JP2006522968A true JP2006522968A (ja) 2006-10-05

Family

ID=33015972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006504799A Pending JP2006522968A (ja) 2003-03-25 2004-03-22 携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行

Country Status (6)

Country Link
US (1) US7797682B2 (ja)
EP (1) EP1611510B1 (ja)
JP (1) JP2006522968A (ja)
AT (1) ATE354126T1 (ja)
DE (2) DE10313318A1 (ja)
WO (1) WO2004086220A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009238068A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd 通信制御装置、通信制御方法
JP2012530328A (ja) * 2010-07-21 2012-11-29 エンパイア テクノロジー ディベロップメント エルエルシー 信頼されないコンピューティングノードによって実行された作業の検証
WO2013008326A1 (ja) * 2011-07-13 2013-01-17 富士通株式会社 ソフトウェア検証方法、およびソフトウェア検証システム
JPWO2013008326A1 (ja) * 2011-07-13 2015-02-23 富士通株式会社 ソフトウェア検証方法、およびソフトウェア検証システム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407785B2 (en) 2005-08-18 2013-03-26 The Trustees Of Columbia University In The City Of New York Systems, methods, and media protecting a digital data processing device from attack
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
WO2008031148A1 (en) * 2006-09-11 2008-03-20 Commonwealth Scientific And Industrial Research Organisation A portable device for use in establishing trust
WO2008043647A2 (en) * 2006-10-12 2008-04-17 International Business Machines Corporation Defending smart cards against attacks by redundant processing
DE102008026785A1 (de) 2008-06-04 2009-12-10 Giesecke & Devrient Gmbh Verwalten von Instanzen einer virtuellen Maschine in einem tragbaren Datenträger
JP5347648B2 (ja) * 2009-03-30 2013-11-20 富士通株式会社 プログラム、情報処理装置及び状態出力方法
US8201169B2 (en) 2009-06-15 2012-06-12 Vmware, Inc. Virtual machine fault tolerance
EP2290575A1 (en) * 2009-08-31 2011-03-02 Incard SA IC Card comprising an improved processor
JP5607170B2 (ja) * 2009-11-05 2014-10-15 トラステツド・ロジツク 安全なポータブルオブジェクト
US8631406B2 (en) * 2010-06-30 2014-01-14 Sap Ag Distributed cloud computing architecture
US8650564B2 (en) * 2010-10-19 2014-02-11 Vmware, Inc. Method and system for synchronizing fault-tolerant virtual machines and adjusting CPU resource limit based on execution latency
CN103620612B (zh) 2011-07-12 2016-04-13 惠普发展公司,有限责任合伙企业 包括端口和来宾域的计算设备
JP2014526751A (ja) 2011-09-15 2014-10-06 ザ・トラスティーズ・オブ・コロンビア・ユニバーシティ・イン・ザ・シティ・オブ・ニューヨーク リターン指向プログラミングのペイロードを検出するためのシステム、方法、および、非一時的コンピュータ可読媒体
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
EP3321838B1 (en) * 2016-11-14 2019-07-17 Giesecke+Devrient Mobile Security GmbH Java card platform and applet security
FR3059119B1 (fr) * 2016-11-21 2018-11-23 Safran Identity & Security Procede de protection d'un dispositif electronique executant un programme contre des attaques par injection de faute et par confusion de type.

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001046805A1 (fr) * 1999-12-22 2001-06-28 Centre National D'etudes Spatiales Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme
JP2001188688A (ja) * 2000-01-05 2001-07-10 Matsushita Electric Ind Co Ltd 暴走検知回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
JPH10240557A (ja) 1997-02-27 1998-09-11 Mitsubishi Electric Corp 待機冗長化システム
US5975738A (en) * 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
GB2353113B (en) 1999-08-11 2001-10-10 Sun Microsystems Inc Software fault tolerant computer system
JP2000155698A (ja) 2000-01-01 2000-06-06 Nec Commun Syst Ltd コンピュ―タのフォ―ルト・トレラント方式
DE10014390C2 (de) 2000-03-23 2002-02-21 Siemens Ag Hochverfügbares Rechnersystem und Verfahren zur Umschaltung von Bearbeitungsprogrammen eines hochverfügbaren Rechnersystems
EP1271317A1 (en) 2001-06-29 2003-01-02 Nagracard S.A. System-on-chip with time redundancy operation
US7228426B2 (en) * 2002-04-03 2007-06-05 Microsoft Corporation Integrity ordainment and ascertainment of computer-executable instructions with consideration for execution context

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001046805A1 (fr) * 1999-12-22 2001-06-28 Centre National D'etudes Spatiales Systeme informatique tolerant aux erreurs transitoires et procede de gestion dans un tel systeme
JP2001188688A (ja) * 2000-01-05 2001-07-10 Matsushita Electric Ind Co Ltd 暴走検知回路

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009238068A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd 通信制御装置、通信制御方法
JP2012530328A (ja) * 2010-07-21 2012-11-29 エンパイア テクノロジー ディベロップメント エルエルシー 信頼されないコンピューティングノードによって実行された作業の検証
US8661537B2 (en) 2010-07-21 2014-02-25 Empire Technology Development Llc Verifying work performed by untrusted computing nodes
US8881275B2 (en) 2010-07-21 2014-11-04 Empire Technology Development Llc Verifying work performed by untrusted computing nodes
WO2013008326A1 (ja) * 2011-07-13 2013-01-17 富士通株式会社 ソフトウェア検証方法、およびソフトウェア検証システム
JPWO2013008326A1 (ja) * 2011-07-13 2015-02-23 富士通株式会社 ソフトウェア検証方法、およびソフトウェア検証システム

Also Published As

Publication number Publication date
EP1611510A2 (de) 2006-01-04
DE10313318A1 (de) 2004-10-21
WO2004086220A2 (de) 2004-10-07
WO2004086220A3 (de) 2005-04-28
US20070006224A1 (en) 2007-01-04
US7797682B2 (en) 2010-09-14
DE502004002908D1 (de) 2007-03-29
EP1611510B1 (de) 2007-02-14
ATE354126T1 (de) 2007-03-15

Similar Documents

Publication Publication Date Title
JP2006522968A (ja) 携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行
CN109508536B (zh) 一种篡改程序流攻击的检测方法和装置
CN100511086C (zh) 在预引导环境中提供安全执行模式
US7364087B2 (en) Virtual firmware smart card
US9361170B2 (en) Method for checking data consistency in a system on chip
US10380336B2 (en) Information-processing device, information-processing method, and recording medium that block intrusion of malicious program to kernel
US10223117B2 (en) Execution flow protection in microcontrollers
JP2022009556A (ja) ソフトウェアコードをセキュアにするための方法
US8195946B2 (en) Protection of data of a memory associated with a microprocessor
US9268559B2 (en) System for detecting call stack tampering
JP6435834B2 (ja) 命令実行制御装置、命令実行制御方法
JP2009502070A (ja) 永久データハードウェアインテグリティ
WO2001097010A2 (en) Data processing method and device for protected execution of instructions
Lackner et al. Towards the hardware accelerated defensive virtual machine–type and bound protection
US8458790B2 (en) Defending smart cards against attacks by redundant processing
US20060265578A1 (en) Detection of a sequencing error in the execution of a program
JP2009104589A (ja) 情報処理装置及びその方法、プログラム、記録媒体
WO2018138211A1 (en) Method to secure a software code
WO2022135686A1 (en) Method for securing a computing device from memory corruption and computing device
JP7247638B2 (ja) 電子情報記憶媒体、icカード、改竄チェック方法、及びプログラム
JP6119345B2 (ja) Icチップ、icカード、検証処理方法、及び検証処理プログラム
EP4383100A1 (en) Method to secure a java software code
US7822953B2 (en) Protection of a program against a trap
JP2022067721A (ja) Icカード、icカードのロギング情報処理方法、及びプログラム
JP2016126696A (ja) 電子情報記憶媒体、異常検知方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100716

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100817

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101020

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101116