JP2008537240A - 埋め込みシステム、特にスマートカードにロードされる疑似コードの検証方法 - Google Patents
埋め込みシステム、特にスマートカードにロードされる疑似コードの検証方法 Download PDFInfo
- Publication number
- JP2008537240A JP2008537240A JP2008507033A JP2008507033A JP2008537240A JP 2008537240 A JP2008537240 A JP 2008537240A JP 2008507033 A JP2008507033 A JP 2008507033A JP 2008507033 A JP2008507033 A JP 2008507033A JP 2008537240 A JP2008537240 A JP 2008537240A
- Authority
- JP
- Japan
- Prior art keywords
- verification
- code
- context
- ram
- dictionary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
Description
本発明は、これに限らないが、より詳しくは、スマートカードにロードされるバイトコード(疑似コード)タイプのインタープリタ型言語のアプリケーションの分野に関する。
バイトコードの列毎において、完全性検証は、多くの情報が格納されることを必要とする。ただジャンプターゲットのために、この格納を遂行することが十分であることが明らかになった。さらに、アルゴリズムは、命令ポインタまたは‘プログラムカウンタ’(現在の検証位置でのコード列上のポインタ)のような付加情報、ワークリスト(その後に検証されるコード列のリスト)、および現在フレーム(装置のRAMに記録される、調べられる位置でのレジスタのタイプ及びスタックのタイプのセット)を格納する必要がある。
カードを媒介とするソリューションには、特に、過度なRAMの占有のような欠点がある。
特定の実施において、前記方法は、前記サブプログラムに対する呼び出しが検出された時、呼び出されたサブプログラムのコードの即時チェックの実行をさらに備えている。
より詳しくは、前記方法はコード区画のための従来のステップを含んでいない。
1つの実施において、前記方法は、電源以外に、前記装置外部のリソースの使用を含んでいない。
特に、前記コンテキストは命令ポインタと現在フレームとを備えている。
1つの実施において、全部または一部の同一フレームが1つのアドレス下で辞書と呼ばれる前記RAMのあるゾーンにバックアップされる。
特定の実施において、同一フレームは1つのアドレス下でバックアップされ、バックアップされるフレームを含む辞書が作成される。
本発明は、下記の発明の実施に関する説明により容易に理解することができ、添付の図面を参考にする。
前記ROM4は、バイトコード検証器コンピュータプログラム41と、バイトコード実行を可能にするバーチャルマシン42とを格納する。‘バーチャルマシン’は、バイトコードの実行中に、スタック51およびレジスタ52を前記RAM5で管理するマシンを意味する。前記スタック51は、データが積み重なる、また引き出されるトップアクセスメモリである。前記レジスタ52は、索引アクセスまたはフリーアクセスを有するメモリレジスタである:レジスタのいかなる情報もアクセス可能である。
その後、検証アルゴリズムは、バイトコードB7、B8およびB9に適用され、メモリのコンテキストデータが更新される。
検証器が第10行のバイトコードRETと出会うと、対応JSRの後者で単一化が確立され、検証される次の要素が現在コンテキストのワークリストで探される。ワークリストが空いている時、バイトコード検証ソリューションに遍在するサブルーチン画定問題は、この例では、一般検証アルゴリズムにより当然に取扱われる:サブルーチンのエンドを示す、新コンテキストのワークリストは、空いている。
それからサブルーチンは終わり、図7に示すように、先行コンテキストが114で復旧される。
方法Mで、ある方法が呼び出される場合には、現在タイプが呼び出された方法のタイプと合致するか確認するために前記方法のパラメータの検証を行う。この方法の検証は、前述の通り方法Mとは独立に行われる。
B2でサブプログラム呼び出し中に、現在フレームをRAM5の‘辞書’と呼ばれる部分にバックアップすることができる。RAM5に現在コンテキストをバックアップする場合、現在フレームを指すポインタptr1を使用する。
B6でサブプログラム呼び出し中に、現在フレームをバックアップするためにジャンプ時の現在フレームと同じ辞書のスタックフレームと関連するポインタptr1を使用する。
このようなスタックフレームが辞書53に存在しない時は、新しいエントリptr2が辞書で作成される(サブプログラム呼び出しBtの場合)。
Claims (16)
- 少なくとも1つのプロセッサ(2)と、ランダムアクセスメモリすなわち‘RAM’(5)とを備える携帯用電子装置(1)にロードされる、バーチャルマシン(42)で解釈可能なアプリケーション(31)の検証方法であって、一旦前記アプリケーションが前記装置にロードされて検証される前に前記プロセッサ(2)で実行される処理で前記アプリケーションのコードをチェックするように動作する前記検証方法において、
−サブプログラムの呼び出し中に、前記RAM(5)に現在検証コンテキスト(200ないし203)をバックアップするバックアップステップと、
−サブプログラム専用の新検証コンテキスト(206ないし209)を作成および起動する作成および起動ステップと、
−サブプログラムの終了時、以前にバックアップされた検証コンテキスト(200ないし203)を復旧する復旧ステップと、
を含んでいることを特徴とする検証方法。 - 前記作成および起動ステップ中、前記新検証コンテキスト(206ないし209)が初期化されることを特徴とする請求項1記載の検証方法。
- 前記サブプログラムの呼び出しが検出された時、呼び出されたサブプログラムのコードの即時チェックの実行をさらに備えていることを特徴とする請求項1記載の検証方法。
- コード区画のための従来のステップを含んでいないことを特徴とする請求項1記載の検証方法。
- 電源以外に、前記装置外部のリソースの使用を含んでいないことを特徴とする請求項1記載の検証方法。
- 前記コンテキストはアプリケーションコード(31)のツリー構造探索を可能にするワークリスト(202)を備えていることを特徴とする請求項1記載の検証方法。
- 前記アプリケーションの一列のコードのチェック中、前記ワークリスト(202)を前記コード列の有力な後者で更新する更新ステップをさらに備えていることを特徴とする請求項1乃至6のいずれかに記載の検証方法。
- 前記コンテキストは命令ポインタと現在フレームとを備えていることを特徴とする請求項1記載の検証方法。
- 全部または一部の同一フレームが1つのアドレス下で辞書(53)と呼ばれる前記RAM(5)のあるゾーンにバックアップされることを特徴とする請求項1記載の方法。
- 前記RAM(5)にバックアップされる新フレームのそれぞれに対して、全部または一部の前記新フレームが前記辞書(53)に存在しているか否かが検証され、存在する場合、関連ポインタ(prt1)が使用され、存在しない場合、前記辞書(53)への記録が行われ、その新しい記録に関連するポインタ(ptr2)が使用されることを特徴とする請求項1乃至9のいずれかに記載の方法。
- 前記辞書(53)は、前記フレームの同質部に対応するセクションに分けられることを特徴とする請求項9記載の方法。
- 前記辞書(53)の同質部のうちの1つはレジスタ(52)に対応することを特徴とする請求項11記載の検証方法。
- 前記辞書(53)の同質部のうちの1つはスタック(51)に対応することを特徴とする請求項11記載の検証方法。
- 前記辞書(53)の同質部のうちの1つはバイトコードタイプで可変しないレジスタ(52)に対応することを特徴とする請求項11記載の検証方法。
- 少なくともRAM(5)と、請求項1乃至14の何れかに記載の方法を実行するためのプロセッサ(2)とを備えるスマートカード。
- RAM(5)と、プロセッサ(2)と、Java(登録商標)バーチャルマシン(42)と、前記バーチャルマシンで解釈可能なコードの一貫性が検証されるべきである少なくとも1つのJavaアプレット(31)とを備え、請求項1乃至14の何れかに記載の方法を実行するスマートカードタイプのJavaカード。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0551036 | 2005-04-22 | ||
FR0551036A FR2884994A1 (fr) | 2005-04-22 | 2005-04-22 | Procede de verification de pseudo-code charge dans un systeme embarque, notamment une carte a puce |
PCT/EP2006/060676 WO2006111441A2 (fr) | 2005-04-22 | 2006-03-14 | Procede de verification de pseudo-code charge dans un systeme embarque, notamment une carte a puce |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008537240A true JP2008537240A (ja) | 2008-09-11 |
JP5225071B2 JP5225071B2 (ja) | 2013-07-03 |
Family
ID=35229912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008507033A Expired - Fee Related JP5225071B2 (ja) | 2005-04-22 | 2006-03-14 | 埋め込みシステム、特にスマートカードにロードされる疑似コードの検証方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7991953B2 (ja) |
EP (1) | EP1880282A2 (ja) |
JP (1) | JP5225071B2 (ja) |
FR (1) | FR2884994A1 (ja) |
WO (1) | WO2006111441A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150111610A (ko) * | 2014-03-26 | 2015-10-06 | 단국대학교 산학협력단 | 스택 기반 소프트웨어 유사도 평가 방법 및 장치 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2938091B1 (fr) * | 2008-10-30 | 2010-12-31 | Caps Entpr | Procede de realisation d'un appel d'une instance d'une fonction, dispositif, programme d'ordinateur correspondant |
US8626919B1 (en) | 2008-11-07 | 2014-01-07 | Google Inc. | Installer-free applications using native code modules and persistent local storage |
US20120159449A1 (en) * | 2010-12-15 | 2012-06-21 | International Business Machines Corporation | Call Stack Inspection For A Thread Of Execution |
EP2782006B1 (en) * | 2013-03-19 | 2018-06-13 | Nxp B.V. | Process and system for verifying computer program on a smart card |
CN106845225A (zh) * | 2016-12-20 | 2017-06-13 | 北京中电华大电子设计有限责任公司 | 一种java卡帧的边界检查方法 |
CN109144775A (zh) * | 2018-06-30 | 2019-01-04 | 深圳市文鼎创数据科技有限公司 | 智能卡的应用数据备份恢复方法、电子设备及存储介质 |
RU2720254C1 (ru) * | 2019-12-05 | 2020-04-28 | Акционерное общество "Актив-софт" (АО "Актив-софт") | Способ восстановления и обновления программного обеспечения на смарт-карте |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001014958A2 (fr) * | 1999-08-23 | 2001-03-01 | Trusted Logic | Protocole de gestion, procede de verification et de transformation d'un fragment de programme telecharge et systemes correspondants |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6092147A (en) * | 1997-04-15 | 2000-07-18 | Sun Microsystems, Inc. | Virtual machine with securely distributed bytecode verification |
US7120572B1 (en) * | 2000-01-06 | 2006-10-10 | Sun Microsystems, Inc. | Memory efficient program pre-execution verifier and method |
FR2840084A1 (fr) * | 2002-05-27 | 2003-11-28 | Gemplus Card Int | Procede de verification de codes pour microcircuits a ressources limitees |
US20040153709A1 (en) * | 2002-07-03 | 2004-08-05 | Burton-Krahn Noel Morgen | Method and apparatus for providing transparent fault tolerance within an application server environment |
US20050277432A1 (en) * | 2003-11-26 | 2005-12-15 | Viana Rodrigo B D | Dynamic display generation for mobile communication devices |
-
2005
- 2005-04-22 FR FR0551036A patent/FR2884994A1/fr active Pending
-
2006
- 2006-03-14 JP JP2008507033A patent/JP5225071B2/ja not_active Expired - Fee Related
- 2006-03-14 EP EP06725034A patent/EP1880282A2/fr not_active Withdrawn
- 2006-03-14 WO PCT/EP2006/060676 patent/WO2006111441A2/fr not_active Application Discontinuation
- 2006-03-14 US US11/918,973 patent/US7991953B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001014958A2 (fr) * | 1999-08-23 | 2001-03-01 | Trusted Logic | Protocole de gestion, procede de verification et de transformation d'un fragment de programme telecharge et systemes correspondants |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150111610A (ko) * | 2014-03-26 | 2015-10-06 | 단국대학교 산학협력단 | 스택 기반 소프트웨어 유사도 평가 방법 및 장치 |
KR101583133B1 (ko) * | 2014-03-26 | 2016-01-07 | 단국대학교 산학협력단 | 스택 기반 소프트웨어 유사도 평가 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
JP5225071B2 (ja) | 2013-07-03 |
FR2884994A1 (fr) | 2006-10-27 |
EP1880282A2 (fr) | 2008-01-23 |
WO2006111441A2 (fr) | 2006-10-26 |
US7991953B2 (en) | 2011-08-02 |
WO2006111441A3 (fr) | 2007-12-21 |
US20090049258A1 (en) | 2009-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5225071B2 (ja) | 埋め込みシステム、特にスマートカードにロードされる疑似コードの検証方法 | |
US7181725B1 (en) | Method for verifying safety properties of java byte code programs | |
US8060812B2 (en) | Methods, systems, and computer program products for class verification | |
US20060064576A1 (en) | Boot systems and methods | |
CN105378663A (zh) | 更新引导代码 | |
JP2008502968A (ja) | 中間オブジェクト指向言語を備えるソフトウェアをポータブル・デバイスにロードするための方法 | |
US9129137B2 (en) | Method, computer program and device for providing security for intermediate programming code for its execution by a virtual machine | |
US20090165149A1 (en) | Method for Making Secure the Execution of an Intermediate Language Software Code in a Portable Device | |
US8407678B2 (en) | Method of array interception using data-flow analysis | |
JP4378459B2 (ja) | 特にスマートカードにおけるダウンロードしたアプリケーションの機密保護化 | |
US6779732B2 (en) | Method and apparatus for linking converted applet files | |
US20210200862A1 (en) | Systems and methods for reliably injecting control flow integrity into binaries by tokenizing return addresses | |
JP6798157B2 (ja) | 電子情報記憶媒体、異常検知方法、及び異常検知プログラム | |
US8458790B2 (en) | Defending smart cards against attacks by redundant processing | |
CN111258617B (zh) | 一种电子设备 | |
US11055202B1 (en) | Compilation scheme for tagged global variables | |
US6856994B2 (en) | System and method for condensing application software | |
US20050252977A1 (en) | Code verification method for limited resource microcircuits | |
JP2011164972A (ja) | プログラムローダ、データ処理装置、プログラムロード方法及びロードプログラム | |
US8949868B2 (en) | Methods, systems and computer program products for dynamic linkage | |
JP7247638B2 (ja) | 電子情報記憶媒体、icカード、改竄チェック方法、及びプログラム | |
US7822953B2 (en) | Protection of a program against a trap | |
JP2004287618A (ja) | オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置 | |
JP2015115052A (ja) | マイクロプロセッサ、コンピュータ、異常対応方法、及び異常対策プログラム | |
JP6175882B2 (ja) | 情報記憶媒体、icカード、バイトコード実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100720 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101020 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110418 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110421 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20110610 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20111107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130312 |
|
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: 20160322 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |