TOP特許意匠商標
特許ウォッチ Twitter
公開番号2024117906
公報種別公開特許公報(A)
公開日2024-08-30
出願番号2023023990
出願日2023-02-20
発明の名称セキュアエレメントおよび仮想マシン
出願人大日本印刷株式会社
代理人個人,個人,個人,個人,個人
主分類G06F 21/55 20130101AFI20240823BHJP(計算;計数)
要約【課題】故障利用攻撃や外乱ノイズにより、仮想マシンが使用するメモリの内容が変化しても、仮想マシンが誤動作することなく処理を継続できるようにする。
【解決手段】セキュアエレメント1に実装する仮想マシン10は、PC100を参照してバイトコードをフェッチし、フェッチしたバイトコードをデコードしてバイトコードに応じた命令102をディスパッチした後、ディスパッチした命令102を実行する前に、命令102のディスパッチに用いたバイトコードとこの時点のPC100を参照してフェッチしたバイトコードを比較し、これら2つのバイトコードが同じ場合、バイトコードに応じた命令を実行し、これら2つのバイトコードが異なる場合、バイトコードを実行する処理を再実行する。
【選択図】図3
特許請求の範囲【請求項1】
仮想マシンを実装したセキュアエレメントであって、
前記仮想マシンは、
実行するバイトコードが格納されているメモリアドレスを指し示すプログラムカウンタと、前記プログラムカウンタが指し示すメモリアドレスに格納されたバイトコードを実行するバイトコード処理部を備え、
前記バイトコード処理部は、前記プログラムカウンタを参照してバイトコードをフェッチし、フェッチしたバイトコードをデコードしてバイトコードに応じた命令をディスパッチした後、命令を実行する前に、命令のディスパッチに用いたバイトコードとこの時点の前記プログラムカウンタを参照してフェッチしたバイトコードを比較し、これら2つのバイトコードが同じ場合、バイトコードに応じた命令を実行し、これら2つのバイトコードが異なる場合、バイトコードを実行する処理を再実行する、
ことを特徴とするセキュアエレメント。
続きを表示(約 1,800 文字)【請求項2】
前記バイトコード処理部は、バイトコードを実行する処理を再実行した第1再実行回数をカウントし、前記第1再実行回数が閾値を超えるとエラー処理を実行することを特徴とする、請求項1に記載したセキュアエレメント。
【請求項3】
前記バイトコード処理部は、バイトコードに応じた命令が、条件が成立するか否かにより分岐先を呼び出すか否かを決定する分岐命令の場合、前記分岐命令を実行した後に、再度、前記分岐命令を実行し、最初に前記分岐命令を実行したときの前記プログラムカウンタの値と、2回目の前記分岐命令を実行した後の前記プログラムカウンタの値を比較し、これら2つの前記プログラムカウンタの値が異なる場合、前記分岐命令を再実行する、
ことを特徴とする、請求項1または2に記載したセキュアエレメント。
【請求項4】
前記バイトコード処理部は、前記分岐命令を再実行した第2再実行回数をカウントし、前記第2再実行回数が閾値を超えるとエラー処理を実行することを特徴とする、請求項3に記載したセキュアエレメント。
【請求項5】
セキュアエレメントに実装する仮想マシンであって、
実行するバイトコードが格納されているメモリアドレスを指し示すプログラムカウンタと、前記プログラムカウンタが指し示すメモリアドレスに格納されたバイトコードを実行するバイトコード処理部を備え、
前記バイトコード処理部は、前記プログラムカウンタを参照してバイトコードをフェッチし、フェッチしたバイトコードをデコードしてバイトコードに応じた命令をディスパッチした後、命令を実行する前に、命令のディスパッチに用いたバイトコードとこの時点の前記プログラムカウンタを参照してフェッチしたバイトコードを比較し、これら2つのバイトコードが同じ場合、バイトコードに応じた命令を実行し、これら2つのバイトコードが異なる場合、バイトコードを実行する処理を再実行する、
ことを特徴とする仮想マシン。
【請求項6】
前記バイトコード処理部は、バイトコードを実行する処理を再実行した第1再実行回数をカウントし、前記第1再実行回数が閾値を超えるとエラー処理を実行することを特徴とする、請求項5に記載した仮想マシン。
【請求項7】
前記バイトコード処理部は、バイトコードに応じた命令が、条件が成立するか否かにより分岐先を呼び出すか否かを決定する分岐命令の場合、前記分岐命令を実行した後に、再度、前記分岐命令を実行し、最初に前記分岐命令を実行したときの前記プログラムカウンタの値と、2回目の前記分岐命令を実行した後の前記プログラムカウンタの値を比較し、これら2つの前記プログラムカウンタの値が異なる場合、前記分岐命令を再実行する、
ことを特徴とする、請求項5または6に記載した仮想マシン。
【請求項8】
前記バイトコード処理部は、前記分岐命令を再実行した第2再実行回数をカウントし、前記第2再実行回数が閾値を超えるエラー処理を実行することを特徴とする、請求項7に記載した仮想マシン。
【請求項9】
セキュアエレメントを実装したICカードであって、
前記セキュアエレメントは仮想マシンを備え、
前記仮想マシンは、
実行するバイトコードが格納されているメモリアドレスを指し示すプログラムカウンタと、前記プログラムカウンタが指し示すメモリアドレスに格納されたバイトコードを実行するバイトコード処理部を備え、
前記バイトコード処理部は、前記プログラムカウンタを参照してバイトコードをフェッチし、フェッチしたバイトコードをデコードしてバイトコードに応じた命令をディスパッチした後、命令を実行する前に、命令のディスパッチに用いたバイトコードとこの時点の前記プログラムカウンタを参照してフェッチしたバイトコードを比較し、これら2つのバイトコードが同じ場合、バイトコードに応じた命令を実行し、これら2つのバイトコードが異なる場合、バイトコードを実行する処理を再実行する、
ことを特徴とするICカード。
【請求項10】
前記バイトコード処理部は、バイトコードを実行する処理を再実行した第1再実行回数をカウントし、前記第1再実行回数が閾値を超えるとエラー処理を実行することを特徴とする、請求項9に記載したICカード。
(【請求項11】以降は省略されています)

発明の詳細な説明【技術分野】
【0001】
本発明は、仮想マシンを搭載したセキュアエレメントに関する。より詳細には、本発明は、故障利用攻撃や外乱ノイズの影響によるセキュアエレメントの誤動作を防止する技術に関する。
続きを表示(約 3,600 文字)【背景技術】
【0002】
機密性の高い情報を格納するセキュアエレメントに、Java(登録商標)などの仮想マシン(VM: Virtual Machine)を実装するケースが増えている。特許文献1の背景技術に記載がある通り、レーザを照射するなどの故障利用攻撃や外乱ノイズの影響で、メモリの内容が変化すると、セキュアエレメントに実装された仮想マシンが誤動作することがある。特許文献2では、仮想マシンが、故障利用攻撃や外乱ノイズによりメモリの内容が変化したことを検知すると、仮想マシンの動作を停止するなどして、セキュアエレメントの誤動作を防止している。
【先行技術文献】
【特許文献】
【0003】
特開2018-88147号公報
特開2009-288908号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、故障利用攻撃や外乱ノイズによりメモリの内容が変化したことを検知したときに、セキュアエレメントの誤動作を防止するため、セキュアエレメントに実装した仮想マシンの動作を停止させると、セキュアエレメントを実装したユーザ機器の動作も停止する可能性がある。
【0005】
そこで、本願で開示する発明では、故障利用攻撃や外乱ノイズによりメモリの内容が変化しても、仮想マシンが誤動作することなく処理を継続できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決する第1発明は、仮想マシンを実装したセキュアエレメントである。
第1発明に係るセキュアエレメントに実装する前記仮想マシンは、実行するバイトコードが格納されているメモリアドレスを指し示すプログラムカウンタと、前記プログラムカウンタが指し示すメモリアドレスに格納されたバイトコードを実行するバイトコード処理部を備える。
前記バイトコード処理部は、前記プログラムカウンタを参照してバイトコードをフェッチし、フェッチしたバイトコードをデコードしてバイトコードに応じた命令をディスパッチした後、命令を実行する前に、命令のディスパッチに用いたバイトコードとこの時点の前記プログラムカウンタを参照してフェッチしたバイトコードを比較し、これら2つのバイトコードが同じ場合、バイトコードに応じた命令を実行し、これら2つのバイトコードが異なる場合、バイトコードを実行する処理を再実行する。
第1発明では、バイトコードに対応する命令を実行する前に、バイトコードを再度フェッチし、命令のディスパッチに用いたバイトコードと再度フェッチしたバイトコードを比較することで、実行するバイトコードのメモリアドレスを指し示す前記プログラムカウンタの値が変化したか否かを判定している。更に、前記プログラムカウンタが変化したと判定した場合、前記プログラムカウンタによって示されるバイトコードを再実行することで、前記プログラムカウンタの値が故障利用攻撃や外乱ノイズより変化しても誤動作することなく処理を継続できるようにしている。
【0007】
2つのバイトコードが異なる場合が続く場合、故障利用攻撃や外乱ノイズ以外にハードウェアの故障も想定できる。そこで、第1発明に係る前記バイトコード処理部は、バイトコードを実行する処理を再実行した第1再実行回数をカウントし、前記第1再実行回数が閾値を超えるとエラー処理を実行することが望ましい。
【0008】
条件が成立するか否かにより分岐先を呼び出すか否かを決定する分岐命令は、スタックに格納された2つのデータにおいて分岐命令に対応する条件が成立したか否かを判定する。分岐命令の実行中に、スタックを管理するスタックポインタの値が故障利用攻撃や外乱ノイズより変化すると、分岐命令を実行した後の前記プログラムカウンタが正当ではなくなり誤動作の原因になる。
そこで、第1発明に係る前記バイトコード処理部は、バイトコードに応じた命令が、条件が成立するか否かにより分岐先を呼び出すか否かを決定する分岐命令の場合、前記分岐命令を実行した後に、再度、前記分岐命令を実行し、最初に前記分岐命令を実行したときの前記プログラムカウンタの値と、2回目の前記分岐命令を実行した後の前記プログラムカウンタの値を比較し、これら2つの前記プログラムカウンタの値が異なる場合、前記分岐命令を再実行することが望ましい。
前記分岐命令の場合についても、前記バイトコード処理部は、前記分岐命令を再実行した第2再実行回数をカウントし、前記第2再実行回数が閾値を超えるとエラー処理を実行することが望ましい。
【0009】
上述した課題を解決する第2発明は、セキュアエレメントに実装する仮想マシンである。前記仮想マシンは、実行するバイトコードが格納されているメモリアドレスを指し示すプログラムカウンタと、前記プログラムカウンタが指し示すメモリアドレスに格納されたバイトコードを実行するバイトコード処理部を備える。
第2発明に係る前記バイトコード処理部は、前記プログラムカウンタを参照してバイトコードをフェッチし、フェッチしたバイトコードをデコードしてバイトコードに応じた命令をディスパッチした後、命令を実行する前に、命令のディスパッチに用いたバイトコードとこの時点の前記プログラムカウンタを参照してフェッチしたバイトコードを比較し、これら2つのバイトコードが同じ場合、バイトコードに応じた命令を実行し、これら2つのバイトコードが異なる場合、バイトコードを実行する処理を再実行する。
第2発明においても、前記バイトコード処理部は、バイトコードを実行する処理を再実行した第1再実行回数をカウントし、前記第1再実行回数が閾値を超えるとエラー処理を実行することが望ましい。
更に、第2発明においても、前記バイトコード処理部は、バイトコードに応じた命令が、条件が成立するか否かにより分岐先を呼び出すか否かを決定する分岐命令の場合、前記分岐命令を実行した後に、再度、前記分岐命令を実行し、最初に前記分岐命令を実行したときの前記プログラムカウンタの値と、2回目の前記分岐命令を実行した後の前記プログラムカウンタの値を比較し、これら2つの前記プログラムカウンタの値が異なる場合、前記分岐命令を再実行することが望ましい。
更に、第2発明においても、前記バイトコード処理部は、前記分岐命令を再実行した第2再実行回数をカウントし、前記第2再実行回数が閾値を超えるとエラー処理を実行することが望ましい。
【0010】
第3発明は、セキュアエレメントを実装したICカードである。第3発明に係るICカードに実装した前記セキュアエレメントは仮想マシンを備える。前記仮想マシンは、実行するバイトコードが格納されているメモリアドレスを指し示すプログラムカウンタと、前記プログラムカウンタが指し示すメモリアドレスに格納されたバイトコードを実行するバイトコード処理部を備える。
前記バイトコード処理部は、前記プログラムカウンタを参照してバイトコードをフェッチし、フェッチしたバイトコードをデコードしてバイトコードに応じた命令をディスパッチした後、命令を実行する前に、命令のディスパッチに用いたバイトコードとこの時点の前記プログラムカウンタを参照してフェッチしたバイトコードを比較し、これら2つのバイトコードが同じ場合、バイトコードに応じた命令を実行し、これら2つのバイトコードが異なる場合、バイトコードを実行する処理を再実行する。
第3発明においても、前記バイトコード処理部は、バイトコードを実行する処理を再実行した第1再実行回数をカウントし、前記第1再実行回数が閾値を超えるとエラー処理を実行することが望ましい。
更に、第3発明においても、前記バイトコード処理部は、バイトコードに応じた命令が、条件が成立するか否かにより分岐先を呼び出すか否かを決定する分岐命令の場合、前記分岐命令を実行した後に、再度、前記分岐命令を実行し、最初に前記分岐命令を実行したときの前記プログラムカウンタの値と、2回目の前記分岐命令を実行した後の前記プログラムカウンタの値を比較し、これら2つの前記プログラムカウンタの値が異なる場合、前記分岐命令を再実行することが望ましい。
更に、第3発明においても、前記バイトコード処理部は、前記分岐命令を再実行した第2再実行回数をカウントし、前記第2再実行回数が閾値を超えるとエラー処理を実行することが望ましい。
【発明の効果】
(【0011】以降は省略されています)

特許ウォッチbot のツイートを見る
この特許をJ-PlatPatで参照する

関連特許

個人
防災情報システム
1か月前
個人
情報処理システム
20日前
日本精機株式会社
表示装置
13日前
個人
指先受の付いたマウス。
16日前
個人
家計支援システム2
1か月前
個人
都市経営シミュレーション
5日前
個人
介護者指名システム
27日前
コクヨ株式会社
収納ケース
1か月前
個人
モノ造りプロトコルレイヤー
2か月前
有限会社マイコム
制御盤のAI見積
1か月前
個人
支援システム及び支援方法
7日前
國立臺灣大學
操作補助システム
6日前
個人
生活困窮者相談業務支援システム
1か月前
キヤノン株式会社
情報処理装置
1か月前
個人
施解錠制御システム
1か月前
株式会社Haul
採用支援方法
28日前
中国電力株式会社
販売支援方法
1か月前
エムケー精工株式会社
洗車場システム
29日前
株式会社Asuka
本人認証方法
1か月前
トヨタ自動車株式会社
表認識方法
1か月前
個人
すべて大吉となるおみくじ制作装置
12日前
株式会社美好屋商店
広告システム
5日前
株式会社にしがき
会員権システム
1か月前
個人
災害情報表示システム
1か月前
株式会社アジラ
行動推定システム
1か月前
株式会社COLORS
表示制御装置
2か月前
個人
人流データ取得システム
1か月前
株式会社JVCケンウッド
処理装置
1か月前
トヨタ自動車株式会社
画像処理装置
1か月前
株式会社mov
情報処理装置
27日前
個人
マイナンバーポイントの直販システム
1日前
日本信号株式会社
料金精算システム
12日前
トヨタ自動車株式会社
画像処理装置
29日前
トヨタ自動車株式会社
画像処理装置
1か月前
トヨタ自動車株式会社
図面表示装置
2か月前
トヨタ自動車株式会社
情報処理装置
1か月前
続きを見る