JP2006522972A - リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法 - Google Patents

リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法 Download PDF

Info

Publication number
JP2006522972A
JP2006522972A JP2006505521A JP2006505521A JP2006522972A JP 2006522972 A JP2006522972 A JP 2006522972A JP 2006505521 A JP2006505521 A JP 2006505521A JP 2006505521 A JP2006505521 A JP 2006505521A JP 2006522972 A JP2006522972 A JP 2006522972A
Authority
JP
Japan
Prior art keywords
code
card
original
modified
software component
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.)
Withdrawn
Application number
JP2006505521A
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.)
Gemplus SA
Original Assignee
Gemplus SA
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 Gemplus SA filed Critical Gemplus SA
Publication of JP2006522972A publication Critical patent/JP2006522972A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

本発明は、マイクロプロセッサ・カード(CP)などのリプログラマブル・コンピュータ・オンボード・システムにダウンロードされるオリジナルの実行可能コード(CI)を管理するための方法に関し、コードは暗号化署名(SIGN)を有し、署名の妥当性がチェックされると、マイクロプロセッサによって実行可能である。本発明の方法は、オフ・カードで、オリジナル・コードに対応し、予め定めた特定用途に適合された、修正済みの実行可能コード(CI’)が識別されるステップと、オリジナル・コードに適用された場合に修正済みコードを再構築可能にするソフトウェア構成要素(CL)が計算されるステップと、上記ソフトウェア構成要素が署名されるステップと、署名済みのオリジナル・コードおよび署名済みのソフトウェア構成要素がカードにダウンロードされるステップと、オン・カードで、オリジナル・コードおよびソフトウェア構成要素の署名(SIGN、SIGN’)がチェックされるステップと、マイクロプロセッサを用いて同様に実行するように修正済みコードを再構築するためにソフトウェア構成要素をオリジナル・コードに適用するステップとを含む。

Description

本発明は、特にオンボード・マイクロプロセッサ・コンピュータ・システムにダウンロードされるように設計された実行可能コードを管理するための方法に関する。
一般的に言って、本発明は、オンボード・システムのマイクロプロセッサによって実行可能な一連の命令の形の実行可能コードからなるプログラムをダウンロードすることによってリプログラム可能な任意のオンボード・システムに適用される。本発明は、実行可能コードが、これらの命令によって操作される実行スタックおよびオペランドのレジスタを備えた、一般に仮想マシンと呼ばれる中間コード用のインタープリタを使用し、この中間コードを解釈できるようにすることにより、オンボード・システムのマイクロプロセッサによって実行可能な中間オブジェクト・コードからなる状況で、特に有利に適用される。
より具体的に言えば、以下の説明は、Java(登録商標)Cardタイプのリプログラマブル・マイクロプロセッサ・カードとの関連における本発明の適用例に関する。
Java(登録商標)Cardタイプのマイクロプロセッサ・カードは、実際には、英語の専門用語では「アプレット」と呼ばれる小さなプログラムをダウンロードする操作によってリプログラム可能である。
様々なオンボード・コンピュータ・システム間での移植性という理由で、アプレットは標準的な仮想マシン用のコードの形をとる。2進形式で書かれたこのコードは、ソース・コードと実行可能2進コードとの間の中間の役割を果たし、例えば、Java(登録商標)コンパイラを使用して入手される。したがって、英語の専門用語では「バイトコード」と呼ばれるこの中間コードは、カードのマイクロプロセッサによって直接実行することはできないが、仮想マシンと呼ばれる2進コード・インタープリタによってソフトウェア様式で解釈しなければならない。仮想マシンを構成するプログラムを形成する最小限の特定データ処理リソースを備えるために、中間言語で書かれたアプレットが実行されることになるカードの場合には十分である。Java(登録商標)Cardタイプのカードの前述の例では、使用される仮想マシンはJava(登録商標)仮想マシンのサブアセンブリである。
中間コード・インタープリタを備えたオンボード・コンピュータ・システムにアプレットをダウンロードする操作は、いくらかのセキュリティ問題を引き起こす。それ故、意図せずに不当に書かれたアプレットが、すでにシステム上に存在するデータを不正に修正したり、主プログラムの正しい実行を妨げたり、または以前にダウンロードされた他のアプレットを使用不能または有害にすることによって修正したりする場合がある。
また、悪意の目的で書かれたアプレットを使用すれば、カード内のメモリ領域の複写操作を実行すること、および/またはチップ・カードの正しい機能を危険にさらすことも可能である。次に、例えば銀行カードの場合にアクセス・コードなどの、システム内に格納された機密データまたは無許可のデータへのアクセス、あるいは、カード上に存在する1つまたは複数のアプリケーションの保全性の攻撃も可能になる。最終的に、カードが外界に接続された場合、発生した誤動作がカード外部に伝搬される可能性がある。
仏国特許出願第2797963号
それ故、前述のJava(登録商標)Cardの例などの中間コード・インタープリタを備えたオンボード・コンピュータ・システムへの中間コード(バイトコード)のダウンロード操作にかかわるセキュリティ問題を改善するための解決策が提案されてきた。
解決策の1つは、動的アクセスの実行およびアプレット実行中のタイプ・チェックからなる。次に仮想マシンは、以下のように、アプレットの実行中にいくつかのチェックを実施する。
メモリへのアクセスの制御:メモリ領域での読み取りまたは書き込みごとに、仮想マシンは対応するデータへのアプレットのアクセス権をチェックする。
データ・タイプの動的検証:アプレットからの命令ごとに、仮想マシンはデータ・タイプに関する制約が満たされていることを検証する。
仮想マシンの実行スタックのスタック・オーバフローおよび実行スタックへの不正アクセスの検出。
しかし、この解決策には、すべての動的チェックによって生じる、実行時のかなり大幅なスローダウンという欠点がある。こうしたチェックは、操作中のデータに関連付ける必要のあるタイプの追加情報により、システムのランダム・アクセスおよび永続メモリに関する要件も増加させる。
次に、他の解決策は、プログラムが静的に無害であること(すなわち、ダウンロード操作中およびその実行前)がチェックできるように、中間コード(バイトコード)を指定することからなる。これは、ベリファイヤと呼ばれるセキュリティ・デバイスによって実行される。したがって、セキュリティという理由で、Java(登録商標)Cardカードはオンボード・ベリファイヤを所有していなければならない。
これは、動的検証プロセスに比べて非常に高速な中間コードの実行が可能であるが、こうした静的検証プロセスは、このプロセスを実行するために必要なコード・サイズと、検証の中間結果を含むのに必要なランダム・アクセス・メモリ・サイズの両方、ならびに計算時間に関して、コストがかかるという欠点がある。
後者の解決策で示された原理を発端として、特許出願第FR 2 797 963(D1)号は、ダウンロード中の中間コードの静的検証プロセスに関連付けられたダウンロードされた中間コードを管理するためのプロトコルを提示しており、これによってオンボード・コンピュータ・システムによる後者のセキュアな実行が可能となる。この方法では、必要なコード・サイズに関してかなり単純かつかなり安価なベリファイヤが有利に得られる。
D1の中心的な考えは、中間コードがダウンロードされカード内に格納されていれば、その検証を簡略化するために、ダウンロードされる前に中間コードをオフ・カードで変換することである。したがって中間コードの変換段階は、オフ・カードで実行され、したがってこれは、Java(登録商標)コンパイラを使用することで入手されたオリジナルの中間コードではなく、カードにダウンロードされた修正済みの標準化中間コードの場合である。それ故、オフ・カードで変換された中間コードは、D1の目的である予め定めた検証プロセスの検証基準を先験的に満たす標準化された中間コードに変換されることになるため、予め定めた検証プロセスに従って、静的モードでより容易に検証されることになる。したがって、オフ・カードで実行されたこの以前の変換段階が、検証プロセスを有利に加速させる。この解決策の詳細な説明については、D1のテキストを参照することができる。
しかし、D1で提案された方法の欠点の1つは、基になる中間コードの検証プロセスをこの中間コードの署名システムと共存させることが不可能なことである。それ故、D1では、第1に単純かつ高速な方法で検証可能であり、第2に署名される中間コードを有することができない。これは、D1によって提案された方法が、中間コードが前述のようにダウンロードされる前にこれをオフ・カードで変換するための準備をし、その結果、中間コード上にオフ・カードで課された変換の前に実行されたコードの開発者(またはコードへの署名を許可された任意の他の人物)の署名が、まさにこの修正という事実によって無効になるからである。その結果、もはやカードによって署名を検証することはできない。
しかし、ダウンロードされた中間コードの署名が検証できるという可能性をカードに残すことは、セキュリティに関しても非常に重要である。これは、中間コードを実行に先立って検証しても、中間コードがいかなる「トロイの木馬」も含まないことを確保できるようにはならないからである。これは、中間コードがたとえ検証に関して正しい場合であっても攻撃的でないことをチェックできるようにするのは、手操作での分析のみであり、このチェックがカードによって実行できないからである。より正確には、実際のところ、カードが検証できるのは、中間コードに関するこの手操作のチェックが正しく実行されたことを証明する署名の妥当性のみである。したがって、有効な署名を有する中間コードのダウンロードを実施できるようにすることが重要である。
これらの様々な発見に基づく本発明の目的は、D1の目的である検証方法の使用に関する前述の欠点を緩和することである。
この目的に鑑み、より具体的に言えば、本発明の目的は、中間コード・インタープリタを備えたリプログラマブル・オンボード・コンピュータ・システムに中間コードをダウンロードする際に、D1に従った検証システムによって得られる特に簡略性および速度に関する利点をなくすことなく、D1によって提案された検証システムと署名システムとを共存させることである。
より一般的に言えば、本発明の1つの目的は、中間であろうとなかろうと、ダウンロードされることになる実行可能コードを管理し、予め定めた特定の使用を目的として実行可能コードの変換を実行する機会を残しながら、このコードの署名を、マイクロプロセッサ・カードなどのオンボード・コンピュータ・システムによって検証できるようにする方法を使用することである。例えば、仮想マシンを用いて実行される中間コードの場合、オリジナル実行可能コードの変換が、D1に明示された検証プロセスの原理に従ってそのダウンロード時のその検証を向上させること、または、こうした変換が署名の妥当性および、それ故、カードによるその検証の妥当性を損なう可能性なしに、カードのマイクロプロセッサによる実行速度を向上させることを目的とする場合がある。
このため、本発明は、マイクロプロセッサ・カードなどのリプログラマブル・オンボード・コンピュータ・システムにダウンロードすることが意図されたプログラムを形成するオリジナル実行可能コードを管理する方法に関し、上記コードは、暗号化署名を所有し、上記署名の妥当性の後者による検証後にオンボード・システムのマイクロプロセッサによって実行可能であり、上記方法は、少なくとも、
−オフ・カード:予め定めた特定用途に適合されたオリジナル・コードに対応する修正済みの実行可能コードを識別するステップと、オリジナル・コードのデータと対応する修正済みコードとの間での変化から、オリジナル・コードに適用された場合に修正済みコードの再構築を可能にするソフトウェア構成要素を計算するステップと、上記ソフトウェア構成要素に署名するステップと、
−署名されたオリジナル・コードおよび署名されたソフトウェア構成要素をカードにダウンロードするステップと、
−オン・カード:オリジナル・コードおよびソフトウェア構成要素のそれぞれの署名を検証するステップと、マイクロプロセッサによる実行用に修正済みコードを再構築するためにソフトウェア構成要素をオリジナル・コードに適用するステップとを含む。
変形例では、オリジナルの実行可能コードは、中間コードを解釈できるようにする仮想マシンを用いてオンボード・システム・マイクロプロセッサによって実行可能な中間コードからなる。
第1の実施形態では、上記変形例に関して、仮想マシンは実行スタックを備え、オン・カードでオリジナルの中間コードに適用されるダウンロードされたソフトウェア構成要素は、上記コードの各命令のオペランドがこの命令によって操作されるデータのタイプに属すること、および各ターゲット交換命令で仮想マシンの実行スタックが空であることという上記中間コードの検証基準を先験的に満たす修正済みの中間コードを再構築可能にする。
好ましくは、ソフトウェア構成要素の適用によって得られる修正済みの中間コードは、仮想マシンを用いてマイクロプロセッサによって実行される前に、修正済みの中間コードが検証基準を満たすかどうかを検証するプロセスに従って検証される。
他の実施形態によれば、オン・カードでオリジナル・コードに適用されたダウンロードされたソフトウェア構成要素は、実行速度がオリジナル・コードのそれよりも速くなるように、修正済みコードを再構築することができる。
他の実施形態によれば、オン・カードでオリジナル・コードに適用されたダウンロードされたソフトウェア構成要素は、オリジナル・コードに比べてサイズに関する最適化が得られるように、修正済みコードを再構築することができる。
本発明の他の特徴および利点は、以下の図面を参照しながら限定的ではなく例示的に示された以下の説明によってさらに明白となろう。
以下の説明は、とりわけ、オープン・システムの状況における本発明の適用例を対象としており、また、とりわけ、図2に示されたようなJava(登録商標)Card CPタイプのリプログラマブル・マイクロプロセッサ・カードのそれを対象としているものであって、ダウンロードされたオリジナル・コードは、仮想マシンを用いてマイクロプロセッサによって実行される。しかし、本発明に従った方法が、ダウンロードされたカードが中間コードではなく、オンボード・システムのマイクロプロセッサによって直接実行可能なコードであるという状況にも適用されるということを忘れてはならない。
したがって、こうしたリプログラマブル・システムは、システムが使用開始された後に、アプレットのダウンロード操作によって実行可能プログラムを機能強化する可能性を追加する。ダウンロードされることになるアプレットは、この例では、仮想マシン用の中間コード、典型的にはカードのメモリに常駐するJava(登録商標)仮想マシンのサブアセンブリからなるオリジナルの実行可能コードCIの形を取る。それ故、中間コードCIが生成されると、中間コードCIがトロイの木馬を含んでいないかどうかを検証するために、監査プログラムが実行開始される。
中間コードCIが実際にこの種のどのような悪意あるプログラムも含んでいない場合、監査プログラムは中間コードCIに署名する。暗号化署名SIGNは、当業者が使用可能ないずれかの電子署名機構を使用して実行することができる。次に、署名された中間コードCIは任意のJava(登録商標)Card上で使用可能となり、したがって、その無害性を証明し、ダウンロード時にカードによって検証可能な署名SIGNを所有する。電子署名の検証は、署名が有効であるかどうかの検証からなる。
本発明の必須の特徴の1つは、オリジナルの、すなわち修正されていない中間コードCIをカードCPにダウンロードすること、およびこれをソフトウェア構成要素CLに追加して、オリジナル中間コードに適用された場合に、予め定めた特定用途に適合された修正済みの中間コードCI’を計算できるようにすることからなる。図では、オリジナル中間コードCIは、実線のコード・ラインによって図式的に示され、対応する修正済みの中間コードCI’は、実線および破線のコード・ラインによって図式的に示される。
本発明によれば、署名済みのオリジナル中間コードCIに適用されることになる補足ソフトウェアCLは、オリジナル中間コードCIおよび予め定めた特定用途向けに識別された対応する修正済み中間コードに従って、オフ・カードで計算される。オリジナル中間コードCIの場合と同様に、ソフトウェア構成要素CLは署名され、検証可能な署名SIGN’を有する。
本発明の主な適用例は、中間コードのカードへのダウンロード時に、D1によって提案された署名システムと検証システムとを共存できるようにすることである。それ故、この適用例の状況では、中間コードCI’は、D1の目的である検証プロセスに関する検証基準を先験的に満たすことからなる予め定めた特定用途に適合された修正済みの中間コードである。それ故、本発明の主な適用例では、ソフトウェア構成要素は、オリジナル中間コードCIに適用されると、D1の目的である検証プロセスの検証基準を先験的に満たすために、D1の教示に従って標準化された修正済み中間コードCI’が得られるように計算される。特に、D1に従って標準化された中間コードでは、各命令のオペランドがこの命令によって操作されるデータのタイプに属し、各ターゲット交換命令で仮想マシンの実行スタックが空である。より詳細な説明については、D1のテキストを効果的に参照されたい。しかし、当業者には周知である記載のソフトウェア構成要素で終わらせることが可能な計算について本明細書で詳述することは、本明細書の範囲から逸脱することになろう。
次に、オリジナル中間コードCIおよび関連する構成要素CLはカードCPにダウンロードされる(図2参照)。したがって、ソフトウェア構成要素CLは、オリジナル中間コードCIと共に移動し、カードの再書き込み可能永続メモリ内に後者と共に格納されると、オン・カードでオリジナル中間コードに適用されることが意図される。
第1に、カードは、中間コードCIがどのようなトロイの木馬も、あるいは同じ種類の任意の他の悪意あるコードも含んでいないことを確保するために、中間コードCIの署名SIGNが有効であるかどうかを検証する。カードは、ソフトウェア構成要素CLも同様にトロイの木馬を含んでいないことを確実にするために、この署名SIGN’の妥当性も検証する。
これらの事前署名検証操作が首尾よく実行されると、カードは、本発明の主な実施形態では、D1の目的である検証プロセスの検証基準を先験的に満たすことからなる予め定めた特定用途に適合された修正済みのコードCI’を再構築するために、ソフトウェア構成要素CLをオリジナル中間コードCIに適用する(図3参照)。
次に、カードは、D1の目的であるプログラムの一部の静的検証プロセスで採用された検証技法を使用して、修正済みの中間コードが仮想マシンを用いてマイクロプロセッサによって実行される前に、修正済みの中間コードを検証することができる。それ故、この検証プロセスは、修正済みの中間コードCI’が前述の検証基準を満たすかどうか、すなわち、修正済みコードの各命令のオペランドがこの命令によって操作されるデータのタイプに属するかどうか、および、各ターゲット交換命令で仮想マシンの実行スタックが空であるかどうかを検証することからなる。本明細書の読者には、本明細書の場合では不必要となるようなより詳細な説明については、D1のテキストを参照することが求められる。
次に、D1の目的であるベリファイヤの原理に従って修正済みの中間コードの検証が実行されると、修正済みの中間コードは仮想マシンを用いてマイクロプロセッサによって実行される。
それ故、本発明の方法は、リプログラマブル・オンボード・コンピュータ・システムへの中間コードのダウンロード時に、D1によって提案された署名システムと検証システムとを有利に共存できるようにするものである。したがって、署名済みアプレットをカードにダウンロードすること、および、カードがD1で開示された検証プロセスを実行しながらこの署名を検証できるようにすることが可能である。これは、ソフトウェア構成要素を署名済みのオリジナル中間コードと同時にダウンロードすること、およびそれによって、オン・カードでオリジナル中間コードに適用された場合、D1で開示された単純な高速ベリファイヤの原理に準拠する修正済み中間コードを取得できるようにすることによって可能となる。
本発明に従ってカードにダウンロードされる中間コードはオリジナル中間コードであり、その署名は、オフ・カードで実行されるいかなる修正プロセスによっても無効とされないため、カードはその実行前にその署名を検証することができる。
しかし、提示された主な適用例は、D1で開示された原理に従った中間コードの検証の目的で適合されたソフトウェア構成要素に関連しているが、本発明はこうした適用例に限定されるものではない。
一般的に、本発明は、中間またはシステムに従わないオリジナル実行可能コードおよび関連するソフトウェア構成要素の、リプログラマブル・オンボード・システムへのダウンロードに適用され、オン・カードでオリジナル・コードに適用された場合、ソフトウェア構成要素は、予め定めた特定用途向けに適合された修正済みコードを再構築できるようにする。したがって、この目的は、D1に従った検証プロセスの適用例を許可する修正済みコードの取得以外とすることができる。
特に、修正済みコードが応答する予め定めた特定用途は、コードの実行時間に関する最適化に対応するものとすることができる。それ故、オリジナル・コードと共にダウンロードされるソフトウェア構成要素は、オリジナル・コードが構成要素の適用によってオン・カードで修正されると、より高速に実行されるように計算することができる。したがって、本発明のこの適用例では、ダウンロードされてオリジナル・コードにオン・カードで適用されたソフトウェア構成要素は、その実行がオリジナル・コードに比べてより高速になるように、修正済みコードを再構築できるようにする。
同様に、オリジナル・コードと共にダウンロードされるソフトウェア構成要素は、オリジナル・コードが構成要素の適用によってオン・カードで修正されると、占有するメモリ・スペースをより少なくするように計算することができる。したがって、本発明のこの適用例では、ダウンロードされてオリジナル・コードにオン・カードで適用されたソフトウェア構成要素は、オリジナル・コードに比べてサイズに関する最適化が得られるように、修正済みコードを再構築できるようにする。
以下で例示的に説明する例は、ダウンロードされたオリジナル・コードの実行速度およびサイズに関して最適化を得ることを目的として、オリジナルの中間コードにオン・カードでソフトウェア構成要素を適用する具体的なケースに関する。この例では、ダウンロードされたオリジナルの中間コードは、スタック上に配置された16ビット語の最下位バイトを回復することからなるチップ・カード・プログラムで実行される通常の操作を記述する。
オリジナル中間コード(記号表記およびJava(登録商標)オペレーション・コード)を以下のとおりとする。
0×11 sspush 255
0×00
0×FF
0×53 sand ;
このコードは、スタック上に配置された16ビット語の最下位バイトを回復することができる。そのため、最上位バイトが0×00にあり、最下位バイトが0×FFにある16ビット語をスタック(sspush 255)し、次に、スタック(sand)上で2つの16ビット語の間で論理ANDを実行する必要がある。
さらに、対応する置換コードを以下のとおりとする。
0×C9 Xsand_255 ;
この特定の例では、オリジナルの中間コードにオン・カードで適用されることを意図したダウンロードされたソフトウェア構成要素の機能は、同じ操作を実行するが、仮想マシンを用いてマイクロプロセッサによって実行された場合、オリジナルの中間コードに比べて6バイトの節約と、サイズおよび速度に関する最適化とをもたらすための修正済みの中間コードを取得するために、一連の命令0×11、0×00、0×FF、0×53を置換コード0×C9に置き換えることである。
もちろん、すべてについて本発明の範囲を逸脱することなく他の適用例を想定することも可能である。
オフ・カードで実行される方法のステップを示す概略図である。 カードにダウンロードするステップ、オリジナルの中間コード、および予め定めた特定の用途専用の関連するソフトウェア構成要素を示す概略図である。 オン・カードで実行される方法のステップを示す概略図である。

Claims (6)

  1. マイクロプロセッサ・カード(CP)などのリプログラマブル・オンボード・コンピュータ・システムにダウンロードすることが意図されたプログラムを形成するオリジナル実行可能コードを管理するための方法であって、前記コードが、暗号化署名(SIGN)を所有し、前記署名の妥当性の後者による検証後に前記オンボード・システムのマイクロプロセッサによって実行可能であって、前記方法が、少なくとも、
    オフ・カードで、予め定めた特定用途に適合された、前記オリジナル・コードに対応する修正済みの実行可能コード(CI’)を識別するステップと、前記オリジナル・コード(CI)のデータと前記対応する修正済みコード(CI’)との間での変化から、前記オリジナル・コードに適用された場合に前記修正済みコードの再構築を可能にするソフトウェア構成要素(CL)を計算するステップと、前記ソフトウェア構成要素(CL)に署名するステップと、
    前記署名されたオリジナル・コードおよび前記署名されたソフトウェア構成要素を前記カードにダウンロードするステップと、
    オン・カードで、前記オリジナル・コード(CI)および前記ソフトウェア構成要素(CL)のそれぞれの署名(SIGN、SIGN’)を検証するステップと、前記マイクロプロセッサによる実行用に前記修正済みコード(CI’)を再構築するために前記ソフトウェア構成要素(CL)を前記オリジナル・コード(CI)に適用するステップとを含むことを特徴とする方法。
  2. 前記オリジナルの実行可能コード(CI)が、中間コードを解釈するための仮想マシンを用いて前記オンボード・システム・マイクロプロセッサによって実行可能な中間コードからなることを特徴とする、請求項1に記載の方法。
  3. 前記仮想マシンが実行スタックを備えることと、オン・カードで前記オリジナルの中間コード(CI)に適用される前記ダウンロードされたソフトウェア構成要素(CL)が、前記コードの各命令のオペランドがこの命令によって操作されるデータのタイプに属すること、および各ターゲット交換命令で前記仮想マシンの実行スタックが空であることという前記中間コードに関する前記検証基準を先験的に満たす修正済みの中間コード(CI’)を再構築可能にすることとを特徴とする、請求項2に記載の方法。
  4. 前記ソフトウェア構成要素の適用によって得られる前記修正済みの中間コード(CI’)が、前記仮想マシンを用いて前記マイクロプロセッサによって実行される前に、前記修正済みの中間コード(CI’)が前記検証基準を満たすかどうかを検証するプロセスに従って検証されることを特徴とする、請求項3に記載の方法。
  5. オン・カードで前記オリジナル・コード(CI)に適用されたダウンロードされたソフトウェア構成要素(CL)が、実行速度が前記オリジナル・コードのそれに比べて速くなるように、修正済みコードを再構築可能にすることを特徴とする、請求項1または2に記載の方法。
  6. オン・カードで前記オリジナル・コード(CI)に適用されたダウンロードされたソフトウェア構成要素(CL)が、前記オリジナル・コードに比べてサイズに関する最適化が得られるように、修正済みコードを再構築可能にすることを特徴とする、請求項1または2に記載の方法。
JP2006505521A 2003-04-14 2004-04-02 リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法 Withdrawn JP2006522972A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0304628A FR2853741B1 (fr) 2003-04-14 2003-04-14 Procede de gestion d'un code executable telecharge dans un systeme embarque reprogrammable
PCT/EP2004/050437 WO2004090718A1 (fr) 2003-04-14 2004-04-02 Procede de gestion d'un code executable telecharge dans un systeme embarque reprogrammable

Publications (1)

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

Family

ID=33041844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006505521A Withdrawn JP2006522972A (ja) 2003-04-14 2004-04-02 リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法

Country Status (8)

Country Link
US (1) US7840814B2 (ja)
EP (1) EP1616256B1 (ja)
JP (1) JP2006522972A (ja)
CN (1) CN1802631A (ja)
AT (1) ATE366436T1 (ja)
DE (1) DE602004007368T2 (ja)
FR (1) FR2853741B1 (ja)
WO (1) WO2004090718A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020262456A1 (ja) * 2019-06-26 2020-12-30 コネクトフリー株式会社 実行コード提供方法およびソフトウェア開発システム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US8151117B2 (en) * 2003-11-05 2012-04-03 Vocalcomm Group, Llc Detection of items stored in a computer system
US7895448B1 (en) * 2004-02-18 2011-02-22 Symantec Corporation Risk profiling
EP2312762A2 (en) * 2008-08-08 2011-04-20 Sk Telecom Co., LTD Interface system between a terminal and a smart card, method for same, and smart card applied to same
US10552126B2 (en) * 2013-03-15 2020-02-04 Teradata Us, Inc. Transitioning between code-based and data-based execution forms in computing systems and environments
US11914755B2 (en) * 2021-02-04 2024-02-27 International Business Machines Corporation Cluster resource signature verification

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69827405T2 (de) * 1997-03-24 2005-05-19 Visa International Service Association, Foster City System und verfahren für eine mehrzweckchipkarte die eine nachträgliche speicherung einer anwendung auf dieser karte ermöglicht
FR2785695B1 (fr) * 1998-11-06 2003-01-31 Bull Cp8 Procede de compactage d'un programme de type code objet intermediaire executable dans un systeme embarque muni de ressources de traitement de donnees, systeme compacteur et systeme embarque multi-applications correspondants
FR2797963B1 (fr) * 1999-08-23 2002-11-29 Trusted Logic Protocole de gestion, procede de verification et de transformation d'un fragment de programme telecharge et systemes correspondants
KR100455566B1 (ko) * 2000-06-30 2004-11-09 인터내셔널 비지네스 머신즈 코포레이션 코드 갱신을 위한 장치 및 방법
FR2835671B1 (fr) * 2002-02-01 2004-07-16 Trusted Logic Procede et dispositif pour securiser les messages echanges sur un reseau

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020262456A1 (ja) * 2019-06-26 2020-12-30 コネクトフリー株式会社 実行コード提供方法およびソフトウェア開発システム
JP2021005250A (ja) * 2019-06-26 2021-01-14 コネクトフリー株式会社 実行コード提供方法およびソフトウェア開発システム

Also Published As

Publication number Publication date
US7840814B2 (en) 2010-11-23
EP1616256A1 (fr) 2006-01-18
WO2004090718A1 (fr) 2004-10-21
EP1616256B1 (fr) 2007-07-04
ATE366436T1 (de) 2007-07-15
FR2853741A1 (fr) 2004-10-15
DE602004007368D1 (de) 2007-08-16
CN1802631A (zh) 2006-07-12
US20070043957A1 (en) 2007-02-22
DE602004007368T2 (de) 2008-03-06
FR2853741B1 (fr) 2005-09-09

Similar Documents

Publication Publication Date Title
EP3674954B1 (en) Security control method and computer system
US11829479B2 (en) Firmware security verification method and device
US9792440B1 (en) Secure boot for vehicular systems
US6754828B1 (en) Algorithm for non-volatile memory updates
US7334136B2 (en) Virtual machine with securely distributed bytecode verification
EP2854066A1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
CN101167060A (zh) 用以提供安全开机架构的***与方法
JP2008537224A (ja) 安全な起動方法およびシステム
CN103718165A (zh) Bios闪存攻击保护和通知
CN107832589B (zh) 软件版权保护方法及其***
CN107567629A (zh) 在可信执行环境容器中的动态固件模块加载器
JP2022009556A (ja) ソフトウェアコードをセキュアにするための方法
US9129137B2 (en) Method, computer program and device for providing security for intermediate programming code for its execution by a virtual machine
US20070245419A1 (en) Intrusion detection during program execution in a computer
JP2006522968A (ja) 携帯型データ・キャリアのバーチャル・マシン向けプログラムの制御実行
JP5986897B2 (ja) 端末装置、完全性検証システム、およびプログラム
CN116522368A (zh) 一种物联网设备固件解密解析方法、电子设备、介质
JP2006522972A (ja) リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法
JP4754635B2 (ja) 制御フロー保護機構
CN107209815B (zh) 用于使用返回导向编程的代码混淆的方法
US20110314303A1 (en) Computing device configured for operating with instructions in unique code
US8458790B2 (en) Defending smart cards against attacks by redundant processing
CN113051584A (zh) 一种***安全启动方法、装置、计算设备及可读存储介质
US8527835B2 (en) Method for secure data transfer
CN114981811A (zh) 用于软件安全的装置和方法

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070330