JP2009015434A - 携帯可能情報処理装置及び情報処理プログラム - Google Patents
携帯可能情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP2009015434A JP2009015434A JP2007174116A JP2007174116A JP2009015434A JP 2009015434 A JP2009015434 A JP 2009015434A JP 2007174116 A JP2007174116 A JP 2007174116A JP 2007174116 A JP2007174116 A JP 2007174116A JP 2009015434 A JP2009015434 A JP 2009015434A
- Authority
- JP
- Japan
- Prior art keywords
- authentication code
- code
- value
- function
- finally output
- 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
Links
Images
Abstract
【解決手段】ICカード10は、引数データ、呼び出し元の関数に関する情報、呼び出し先の関数に関する情報、乱数値、コードが実行されたことを示す値等を含むデータを用いて第1の認証コード(code)を生成し、生成した第1の認証コードを用いて第2の認証コード(code)を生成する認証コード生成部16と、認証コード生成部16によって最終的に出力されるべき値である正当値を記憶しているEEPROM15と、EEPROM15が記憶している正当値と認証コード生成部16が最終的に出力した認証コードとを比較して、認証コード生成部16が最終的に出力した第2の認証コードが正しいか否かを検証する検証部17などとを備える。
【選択図】図1
Description
(1)条件分岐命令などで使用するメモリ上のデータを改ざんすることで本来と異なる分岐をさせる攻撃を防ぐため、データを二重化する方法。これは、データの保護につながる。
(2)条件分岐命令などのコードの読み出し時に命令バイトを改ざんすることで本来と異なる動作をさせる攻撃を防ぐため、条件分岐処理を二重化する方法。これは、コードの保護につながる。
(4)攻撃のタイミングや場所を少しずつ変化させて解析する攻撃を回避するため、乱数やカウンタを用いて同じデータを使わないようにする方法。これは、セッション性の確保につながる。
上記(1)〜(4)や、その他の技術を実装するためには、複数のプログラムを組み合わせて総合的なセキュリティ対策を施す必要があるため、プログラムのコードサイズが大きくなり、小容量の安価なICチップが利用できなくなる。
請求項1の発明は、所定のデータを用いて第n(nは1以上の整数)の認証コードを生成し、生成した前記第nの認証コードを用いて第n+1の認証コードを生成する認証コード生成手段(16)と、前記認証コード生成手段(16)によって最終的に出力されるべき値である正当値を記憶している記憶手段(15)と、前記記憶手段(15)が記憶している正当値と、前記認証コード生成手段(16)が最終的に出力した認証コードとを比較して、前記認証コード生成手段(16)が最終的に出力した認証コードが正しいか否かを検証する検証手段(17)と、を備える携帯可能情報処理装置(10)である。
請求項2の発明は、請求項1に記載の携帯可能情報処理装置(10)において、前記所定のデータは、引数データ、呼び出し元の関数に関する情報、呼び出し先の関数に関する情報、乱数値、コードが実行されたことを示す値のうち少なくとも2つを含むデータであること、を特徴とする携帯可能情報処理装置(10)である。
請求項3の発明は、コンピュータに、所定のデータを用いて第n(nは1以上の整数)の認証コードを生成させ、生成した前記第nの認証コードを用いて第n+1の認証コードを生成させる認証コード生成手順(#5)と、前記認証コード生成手順(#5)によって最終的に出力されるべき値である正当値と、前記認証コード生成手順(#5)が最終的に出力した認証コードとを比較させて、前記認証コード生成手順(#5)が最終的に出力した認証コードが正しいか否かを検証させる検証手順(#8,#9)と、を実行させるための情報処理プログラム。
(1)所定のデータを用いて第nの認証コードを生成し、第nの認証コードを用いて第n+1の認証コードを生成するので、前の認証コードの値が次の認証コードの値に反映され、セキュリティを高めることができる。
(2)最終的に出力されるべき値である正当値を記憶しておき、その正当値と最終的に出力された認証コードとを比較して、認証コードが正しいか否かを検証するので、携帯可能情報処理装置の内部で簡単に検証を行うことができる。
本実施例のICカード(携帯可能情報処理装置)10は、通信部11と、CPU12と、ROM13と、RAM14と、EEPROM15と、認証コード生成部16と、検証部17などとを備え、ICカード10に搭載されたOSのセキュリティ機能を強化したものである。
CPU12は、通信部11を介してリーダライタ20と交信し、ROM13に記憶されているプログラム(制御プログラム,情報処理プログラムなど)に基づいてICカード10を統括制御する部分である。
RAM14は、揮発性のメモリであり、CPU12が制御を行う上で作業領域として使用される。
EEPROM15は、書き換え可能な不揮発性のメモリであり、ICカード10に記録されるデータを格納する。また、EEPROM15は、後述する認証コード生成部16によって最終的に出力されるべき値である正当値を記憶している。
ここで、所定のデータとは、引数データ、呼び出し元の関数に関する情報、呼び出し先の関数に関する情報、乱数値、コードが実行されたことを示す値等を含むデータである。
検証部17は、EEPROM15が記憶している正当値と、認証コード生成部16が最終的に出力した認証コードとを比較して、認証コード生成部16が最終的に出力した認証コードが正しいか否かを検証する部分である。
ここでは、呼び出し元関数と、呼び出し先関数との2つの関数のやり取りを例にして説明する。
(#1)呼び出し元関数では、(a)パスワードなどの引数データ、(b)呼び出し元関数アドレス、(c)呼び出し先関数アドレス、(d)乱数値、(e)呼び出し先の関数識別子などの情報から、ハッシュ関数などを使って認証コードAを生成する。
(#3)呼び出し先関数では、引数に、「(c)呼び出し先関数アドレス、(e)呼び出し先の関数識別子」を付加して、検証用の認証コードA’を生成する。(c)呼び出し先関数アドレス、(e)呼び出し先の関数識別子を引数で受け渡さずに、呼び出し先関数で付加する理由は、呼び出し先関数が、(c)呼び出し先関数アドレス、(e)呼び出し先の関数識別子を把握しているからである。
具体的に説明すると、処理の要所では、図3に示すように、関数func1と関数func2との2つの関数が用意されている。ここで、code=識別コードAとする。
関数func1の処理が開始されると、関数func1のコードが実行されたことを示す値Xnと識別コードとしてのcodeとが、ハッシュ関数によって処理され、その演算結果がcode(第1の認証コード)に代入される。
次に、そのcodeを引数として関数func2が呼び出される。
このように、識別コードとしてのcodeは、行く先々で主要なデータと混ぜ合わせながら、次々に更新されていく。
codeの最終的に出力されるべき値である正当値は、予め計算されてEEPROM15に記憶されている。図の例では、正当値は、53であり、演算結果として得られたcodeが53である場合には、正常フラグとしてのflgにTRUE(1)がセットされ、codeが53以外の場合には、正常フラグとしてのflgにFALSE(0)がセットされる。flg=1であれば、正常に処理が行われたものとし、flg=0であれば、不正行為が介在したものとする。
なお、このような処理は、任意の個所に適用し、その都度、codeを更新していく。
(#7)呼び出し先関数は、認証コードBと処理結果などとを戻り値として呼び出し元関数に返し、処理の流れは呼び出し元に復帰する。
(#9)呼び出し元関数は、引数で受け取った認証コードBと、生成した検証用の認証コードB’を比較して、一致しない場合は、何らかの攻撃(実行コードの改ざんや、データの改ざん)があったものと判断して異常終了する。異常終了時には、無応答又はエラー応答などの処理を行う。
(#10)不正が行われず、改ざんもないことが検証された場合には、「処理結果」をそのまま使って以降の処理を継続して行うことができる。
(1)コードが実行されたことを示す値Xnを用いて認証コード(code)を生成し、生成した認証コードとコードが実行されたことを示す値Ynとを用いて新たな認証コードを生成するので、前の認証コードの値が次の認証コードの値に反映され、セキュリティを高めることができる。
(2)最終的に出力されるべき値である正当値を記憶しておき、その正当値と最終的に出力された認証コードとを比較して、認証コードが正しいか否かを検証するので、ICカード10の内部で簡単に検証を行うことができる。
従って、動作中のICカード10のICチップに対してレーザ照射などを行い、ICカード10内のソフトウェアを誤動作させ、機密情報を読み出したりする攻撃を防ぐことが可能になり、セキュリティの向上に貢献できる。
また、データやコード、処理手順に対する攻撃を少ないコードで検知することができ、関数の呼び出し処理や復帰処理に対する攻撃を検知することもできる。
(5)意図しない箇所から、関数が呼び出されると「呼び出し元関数アドレス」が異なるため認証コードAが一致しなくなり、不正に呼び出し先を操作する攻撃を防ぐことができる。
(6)関数呼び出し時に「引数データ」が改ざんされると認証コードAが一致しないので、不正なデータを使った処理を行わせる攻撃を防ぐことができる。
(8)呼び出し先関数から呼び出し元関数に戻る時に、「処理結果」が改ざんされると認証コードAが一致しないので、不正に処理結果を操作する攻撃を防ぐことができる。
以上説明した実施例に限定されることなく、種々の変形や変更が可能であって、それらも本発明の範囲内である。
(1)携帯可能情報処理装置は、ICカードの例で説明したが、携帯電話機やPDA(personal digital assistant)などであってもよい。
(2)認証コードは、ハッシュ関数を用いて生成する例で説明したが、加算,減算などの任意の関数を用いて生成してもよい。また、認証コードは、更新する例で説明したが、更新せずに順に記憶させていってもいい。
(4)上述したような制御を行う情報処理プログラムを携帯電話機やPDAなどに配信するようにしてもよい。なお、本発明でいうコンピュータとは、記憶手段、制御手段などを備えた情報処理装置をいい、パーソナルコンピュータも、携帯電話機も、本発明のコンピュータの概念に含まれる。
11 通信部
12 CPU
13 ROM
14 RAM
15 EEPROM
16 認証コード生成部(認証コード生成手段)
17 検証部(検証手段)
20 リーダライタ
Claims (3)
- 所定のデータを用いて第n(nは1以上の整数)の認証コードを生成し、生成した前記第nの認証コードを用いて第n+1の認証コードを生成する認証コード生成手段と、
前記認証コード生成手段によって最終的に出力されるべき値である正当値を記憶している記憶手段と、
前記記憶手段が記憶している正当値と、前記認証コード生成手段が最終的に出力した認証コードとを比較して、前記認証コード生成手段が最終的に出力した認証コードが正しいか否かを検証する検証手段と、
を備える携帯可能情報処理装置。 - 請求項1に記載の携帯可能情報処理装置において、
前記所定のデータは、引数データ、呼び出し元の関数に関する情報、呼び出し先の関数に関する情報、乱数値、コードが実行されたことを示す値のうち少なくとも2つを含むデータであること、
を特徴とする携帯可能情報処理装置。 - コンピュータに、
所定のデータを用いて第n(nは1以上の整数)の認証コードを生成させ、生成した前記第nの認証コードを用いて第n+1の認証コードを生成させる認証コード生成手順と、
前記認証コード生成手順によって最終的に出力されるべき値である正当値と、前記認証コード生成手順が最終的に出力した認証コードとを比較させて、前記認証コード生成手順が最終的に出力した認証コードが正しいか否かを検証させる検証手順と、
を実行させるための情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007174116A JP2009015434A (ja) | 2007-07-02 | 2007-07-02 | 携帯可能情報処理装置及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007174116A JP2009015434A (ja) | 2007-07-02 | 2007-07-02 | 携帯可能情報処理装置及び情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009015434A true JP2009015434A (ja) | 2009-01-22 |
Family
ID=40356293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007174116A Pending JP2009015434A (ja) | 2007-07-02 | 2007-07-02 | 携帯可能情報処理装置及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009015434A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023127314A1 (ja) * | 2021-12-28 | 2023-07-06 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置および情報処理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002198956A (ja) * | 2000-12-27 | 2002-07-12 | Toshiba Corp | 通信装置、及びその認証方法 |
JP2002261751A (ja) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 暗号処理方法 |
JP2002334317A (ja) * | 2001-05-09 | 2002-11-22 | Hitachi Ltd | 情報処理装置 |
JP2007513422A (ja) * | 2003-12-04 | 2007-05-24 | アクサルト・エス・アー | 放射またはそれ以外による攻撃に対抗したプログラムの実行を保証するための方法 |
-
2007
- 2007-07-02 JP JP2007174116A patent/JP2009015434A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002198956A (ja) * | 2000-12-27 | 2002-07-12 | Toshiba Corp | 通信装置、及びその認証方法 |
JP2002261751A (ja) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 暗号処理方法 |
JP2002334317A (ja) * | 2001-05-09 | 2002-11-22 | Hitachi Ltd | 情報処理装置 |
JP2007513422A (ja) * | 2003-12-04 | 2007-05-24 | アクサルト・エス・アー | 放射またはそれ以外による攻撃に対抗したプログラムの実行を保証するための方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023127314A1 (ja) * | 2021-12-28 | 2023-07-06 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置および情報処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10503931B2 (en) | Method and apparatus for dynamic executable verification | |
US9117070B2 (en) | Method for adapting and executing a computer program and computer architecture therefore | |
US8127144B2 (en) | Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit | |
JP7154365B2 (ja) | ソフトウェアコードをセキュアにするための方法 | |
US20160055331A1 (en) | Detecting exploits against software applications | |
CN110210211B (zh) | 一种数据保护的方法和计算设备 | |
US11232194B2 (en) | Method for executing a binary code of a secure function with a microprocessor | |
JP5945313B2 (ja) | 構造体を生成する方法および対応する構造体 | |
JP6922329B2 (ja) | 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス | |
US20080232582A1 (en) | Method for Dynamically Authenticating Programmes with an Electronic Portable Object | |
US20060289656A1 (en) | Portable electronic apparatus and data output method therefor | |
KR20180015723A (ko) | 보안 구역과 하위 보안 구역 사이의 전이를 위한 장치 및 방법 | |
US11256786B2 (en) | Method to secure a software code | |
CN111104662A (zh) | 用于对程序进行认证的方法和对应的集成电路 | |
JP2009015434A (ja) | 携帯可能情報処理装置及び情報処理プログラム | |
EP4002165A1 (en) | Code flow protection with error propagation | |
JP2007183931A (ja) | セキュアデバイス、情報処理端末、サーバ、および認証方法 | |
WO2022135686A1 (en) | Method for securing a computing device from memory corruption and computing device | |
CN113094708A (zh) | 电子文件处理方法及装置、存储介质和处理器 | |
JP2008204085A (ja) | 半導体記憶装置 | |
WO2001037067A1 (en) | A method of providing secure linkage of program modules | |
US10242183B2 (en) | Method of executing a program by a processor and electronic entity comprising such a processor | |
US10552602B2 (en) | System and method for protecting a device against attacks on processing flow using a code pointer complement | |
JP5200686B2 (ja) | 情報処理装置、正常処理判別方法、及び情報処理プログラム | |
US20220156365A1 (en) | Method to Secure a Software Code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100416 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120522 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121023 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |