JP2017509082A - 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと - Google Patents

不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと Download PDF

Info

Publication number
JP2017509082A
JP2017509082A JP2016558317A JP2016558317A JP2017509082A JP 2017509082 A JP2017509082 A JP 2017509082A JP 2016558317 A JP2016558317 A JP 2016558317A JP 2016558317 A JP2016558317 A JP 2016558317A JP 2017509082 A JP2017509082 A JP 2017509082A
Authority
JP
Japan
Prior art keywords
storage area
data
signature
secure element
code storage
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
Application number
JP2016558317A
Other languages
English (en)
Other versions
JP6585072B2 (ja
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.)
Idemia France SAS
Original Assignee
Oberthur Technologies 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 Oberthur Technologies SA filed Critical Oberthur Technologies SA
Publication of JP2017509082A publication Critical patent/JP2017509082A/ja
Application granted granted Critical
Publication of JP6585072B2 publication Critical patent/JP6585072B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、セキュア素子の初期プログラムにより定義されたコード記憶領域に外部装置から発信されるデータの読み込みを安全に行うことと、初期プログラムのみによって制御される任意の変更に関する。外部装置は、セキュア素子に送信するデータを取得すると、例えば、これらのデータを読み込むことにより変更されるようなコード記憶領域のイメージをシミュレートする。署名は、シミュレートされたイメージに基づいて計算され、データとともにセキュア素子に送信される。セキュア素子の初期プログラムは、外部機器から受信された署名と、データの実際の読み込み後のコード記憶領域全体について計算された署名とを比較する。これらの署名間の同一性は、コード記憶領域が、確かに外部装置によりシミュレートされたイメージと適合することを確認することができ、ひいては確かに無傷であることを保証することができる。

Description

本発明は、例えばスマートカード(smart card)などのセキュア(secure)素子の分野に関する。特に、本発明はセキュア素子の不揮発性メモリへのデータの読み込みを安全に行うための方法及び装置を提供する。
例えばスマートカードのような、セキュア素子は、通常、ホスト(host)電子装置内に着脱可能に統合された、又は、変形例として、電子装置内に(例えば、はんだ付けにより)埋め込まれた、マイクロ回路の形をとる。例として、セキュア素子は、eSE(「埋め込みセキュア素子(embedded secure element)」又はeUICC(「埋め込み汎用集積回路カード(embedded Universal Integrated Circuit Card)」であってもよい。
セキュア素子は、それが統合され又は埋め込まれるホスト電子装置のプロセッサとは異なる、それに対して固有のプロセッサを備え、プロセッサにより実行することのできるコンピュータプロクラムを記憶するための不揮発性メモリを備える。
不揮発性メモリの変更不可領域は、「初期」又は「基本」プログラムとして知られる、通常は小さいサイズの、例えば、セキュア素子の製造者により記憶されるブートプログラム(ブートローダ」として知られている)を記憶する。初期プログラムは、初期プログラムにより定義された不揮発性メモリの特定領域に、例えば、オペレーティングシステム又はアプリケーションなどの、コンパイルされた又はインタープリタされたコード(すなわち、プロセッサにより直接実行可能な、マシン言語又はコードにおけるコードワード又は「バイトコード」)から通常構成されるソフトウェア要素を読み込むことにより、例えばセキュア素子の運用者又は提供者などのユーザへの仲介者がセキュア素子をカスタマイズすることができるような機能を提供する。例えば、この初期プログラムは、特に、この初期プログラムと通信するためのポート制御モジュール、メモリアップデート制御モジュール、コマンドインタープリタ、及び、この初期プログラムを安全に行うためのセキュリティモジュールを含む特定のオペレーティングシステムに関連している。この特定のオペレーティングシステムは、セキュア素子の製造者によりカスタマイズされ、カスタマイゼーションの後は、いかなるシステムの変更も許されない。
原則として、この初期ブログラムは、セキュア素子が起動されたとき、すなわち、セキュア素子内に存在してもよい任意の他のプログラムより先に、実行される最初のプログラムである。このプログラムは、セキュア素子内の他のプログラムの実行に必須である。
不揮発性メモリの前述の特定領域は、特定領域の境界又はそのコンテンツを変更できる唯一のプログラムである初期プログラムにより完全に制御される。
より正確には、これらの境界は、初期プログラムのレジスタ内に記憶されていてもよく、又は、代替的に、初期プログラムのそれらを定義するコマンドによる実行の結果でもよい。すべてのケースにおいて、境界の定義と任意の変更は、初期プログラムの活動の結果としてなされるだけである。
さらに、初期プログラムだけが、それのコンテンツの実行を可能にする(又は禁止する)目的のために特定領域を活性化(又は不活性化)することができる。
前述の領域は、通常、コンパイルされた又はインタープリタされたコードを記憶するために使用され、したがって、以下では、「コード記憶領域」と呼ばれることになる。コード記憶領域は、それが含むソフトウェア要素の実行の間には、セキュア素子内のこれらソフトウェア要素により使用されるアプリケーション及びオペレーティングシステムの完全性を保証するために、変更されるべきではないことが特に重要である。
セキュア素子が寿命を終えるまでの間に、他のソフトウェア要素がコード記憶領域に読み込まれるかもしれない。例えば、これらは、すでに記憶されているソフトウェア要素の新バージョン(ソフトウェア要素のアップデート)又は新しいデータであるかもしれない。コード格納エリアにその後読み込まれたこれらのソフトウェア要素の完全性と正当性を保証するために、検証メカニズムが、活性化の前に、すなわち実行が可能となる前に、通常は初期プログラムにより、使用される。
例えば、仏国特許公報第2 993 682号は、セキュア素子が始動されるときに実行されるブートプログラムは、インストールされたオペレーティングシステムが旧式となったときに、アップデートする装置から取得されるオペレーティングシステムの新バージョンのコードを有効にすることを開示する。オペレーティングシステムのこの新バージョンのコードの完全性は、ブートプログラムにより、検証され、1回に1つのコードブロックが、全体としては、オペレーティングシステムの新バージョンの活性化が有効となる前に検証される。
しかし、完全性の検証は新たに受信され読み込まれたソフトウェア要素にだけ関係する。
したがって、新しいソフトウェア要素を読み込む前に、悪意ある関係者によりコード記憶領域に記憶される悪意あるタイプのソフトウェア要素(「マルウェア(malware)」と呼ばれる)は、この完全性の検証がされる間には、ブートプログラムにより検出されることができない。なぜなら、ブートプログラムは、新たに読み込まれるソフトウェア要素にのみ関係するからである。したがって、安全性に欠陥が存在する。
また、悪意ある関係者が、例えばレーザー攻撃により、このコード記憶領域に既に記憶されているソフトウェア要素を変更又は損傷したとすると、安全性に欠陥が存在する。これは、新しく読み込まれたソフトウェア要素で実行される完全性の検証は、コード記憶領域のコンテンツへの変更又は損傷を明らかにできないからである。
したがって、セキュア素子の安全性と、とりわけ、データがこの記憶領域に読み込まれたときのソフトウェアの完全性の管理を改良する必要がある。
したがって、本発明の目的は、これらの欠点の少なくとも1つを克服することにある。
これに関連して、本発明の第1の態様は、セキュア素子の不揮発性メモリへのデータの読み込みを安全に行う方法であって、不揮発性メモリは、コード記憶領域と呼ばれる、セキュア素子の初期プログラムにより定義される記憶領域であって、領域の任意の変更は初期プログラムだけにより管理される記憶領域を備え、その方法は、セキュア素子により実行される、
‐外部装置からのデータと署名を受信するステップと、
‐コード記憶領域の一部に外部装置から受信されたデータを読み込むステップと、
‐データが読み込まれた後に、前記コード記憶領域全体の署名を計算するステップと、
‐受信された署名と計算された署名が一致した場合にのみ、コード記憶領域のコンテンツの実行を可能にするために、受信された署名を使用して計算された署名を検証するステップと、
を含む方法に関連する。
さらに、本発明の第2の態様は、セキュア素子の不揮発性メモリへのデータの読み込みを安全に行う方法であって、不揮発性メモリは、コード記憶領域と呼ばれる、前記セキュア素子の初期プログラムにより定義される記憶領域であって、領域の任意の変更は初期プログラムだけにより管理される記憶領域を備え、その方法は、セキュア素子により実行される、
‐外部装置からのデータと署名を受信するステップと、
‐コード記憶領域の一部に外部装置から受信されたデータを読み込むステップと、
‐データが読み込まれた後に、コード記憶領域全体の署名を計算するステップと、
‐前記受信された署名と前記計算された署名が一致した場合にのみ、コード記憶領域のコンテンツの実行を可能にするために、受信された署名を使用して計算された署名を検証するステップと、
を含む方法に関連する。
したがって、本発明は、セキュア素子に読み込まれるデータの完全性と、同じく、この記憶領域の一部にだけ発生する、これらのデータの読み込み後のコード記憶領域の完全性をチェックするために使用することができる。
この利点は、従来技術のように読み込まれたデータだけを考慮することに代えて、すべてのデータの読み込みの結果としてあるべき、全体として記憶領域のイメージのシミュレーションに基づく署名を計算することにより得られる。
したがって、外部装置は、読み込まれるべきデータの読み込みにより変更されるか否かに対応する、コード記憶領域のビットのそれぞれの位置と値をシミュレートする。
任意のコードであって、コード記憶領域でのそれの値及び/又はそれの位置のために予想外とされる任意のコードは、それの存在により外部装置によりシミュレートされるイメージについて計算された署名とデータの読み込みが行われた後の記憶領域におけるセキュア素子自身により計算される署名との間に差異を作り出すので、そのとき、コード記憶領域内で検出することができる。
したがって、データの読み込みの後のメモリ状態に対応するコード記憶領域のシミュレートされたイメージに基づき装置により計算された署名と、これらの様々なデータの読み込みが行われた後のコード記憶領域の署名とに任意の差異がある場合、コード記憶領域の活性化、すなわち、それのコンテンツ、したがって、特には、セキュア素子に読み込まれたデータの実行は、不可能(すなわち、禁止)とされる。したがって、それらの実行のためのデータの読み込みは安全に行われる。
したがって、本発明は、コンパイルされた又はインタープリタされたコードの1片(または、一般には、予想外のデータ)が、コード記憶領域の予想外の位置に記憶された場合又は予想される値を有さない場合を検出するために使用される。
例えば、悪意あるソフトウェア要素の存在、又は、データの読み込みの後のメモリ内に既にあるソフトウェア要素の変更又は損傷は、外部装置から受信した仮の署名を使用して、読み込みの後に取得された記憶領域全体について計算された署名の検証のとき、セキュア素子の初期プログラムにより検出される。
本発明の実施形態に関する他の特徴は従属請求項において記述される。
本発明の特定の実施形態において、データは、データを取得するための要求に応答してセキュア素子に送信され、取得するための要求は、セキュア素子を識別するための情報を含む。
本発明の特定の実施形態において、データは、データを取得するための要求に応答してセキュア素子に送信され、データを取得するための要求は、セキュア素子のコード記憶領域の現在のイメージのソフトウェアコンフィギュレーション表現の固有の識別子を含む。
したがって、外部装置はこの現在のイメージをリカバーすることができ、データの読み込みにより変更されたメモリのイメージを効率的にシミュレートすることができる。これは、コード記憶領域のビットの現在の配列と値を正確に知ることができることによる。
本発明の特定の実施形態において、署名は、外部装置から送信される暗号化されたコマンドにおいて、取得されたデータの活性化の要求(すなわち、実行可能とする要求)とともにセキュア素子に送信される。
活性化の要求と、活性化の前(すなわち、実行可能にされる前)の検証のために要求される署名とは共同で保護されるので、このアレンジメントは、実行可能処理を安全に行う。
活性化は、署名の肯定的な検証の直後に実行されてもよく、又は、例えば、セキュア素子の次の再起動のときのように後に行われてもよいことに留意されたい。この後での活性化は、セキュア素子の動作の、特には問題になっているデータがオペレーティングステム又はこのシステムの一部の更新に対応している場合の、中断を避けることを可能にする。
代替的に、活性化は活性化要求を受信することなしに、初期プログラムにより自動的に実行することができる。活性化は、要求により求められる任意のデータ又はコード記憶領域全体に関連している。
この代替において、署名は、セキュア素子への送信のため外部装置により暗号化されたままである。
本発明の特定の実施形態において、取得されたデータは、取得されたデータが読み込まれるべきコード記憶領域の1つ又は複数の位置の指示とともに、電子装置により送信される。
したがって、コード記憶領域の各ビットの位置は、外部装置により定義され、ひいては、外部装置がこれらの補助的な指示の観点からシミュレートしたものと同一のデータの読み込みをセキュア素子が実行することを保証する。したがって、シミュレートされたイメージに基づいて得された署名は、セキュア素子の初期プログラムがデータの読み込み後に計算しなければならないものと一致するする必要がある。
本発明の特定の実施形態において、コード記憶領域は、P個のサブ領域に区分され、署名を計算するステップは、各サブ領域に対する基本署名を取得することと、シミュレートされたかどうかにかかわらず、P個の基本署名の合成によりコード記憶領域全体に対する署名を取得することを含む。
この設定において、基本署名の計算は他の基本署名の計算とは独立していて、変更されたサブ領域に限定しての(基本署名の)完全性の計算によりコード記録領域のモジュール更新(例えば、サブ領域別)を実行することを可能にする。このやり方において、計算コストは、実質的に削減されるかもしれない。
本発明の特定の実施形態において、P個の基本署名の合成は、全単射関数の適用を含む。
これは、例えば、排他的ORタイプ(XOR)の関数でもよい。この関数は、基本署名の合成による署名の計算について、サブ領域の順序の制約を回避するために使用することができる。したがって、外部装置とセキュア素子は、コード記憶領域を形成するサブ領域に、様々な方法で、読み込まれるデータの部分の割り当てをしてもよい。
本発明の特定の実施形態において、署名の計算は、P個の基本署名の合成であって、それらの対応するサブ領域の順序での合成を含む。例えば、この順序は、サブ領域又はサブ領域のコンテンツ(すなわち、サブ領域のビットセット、モジュールと呼ばれることもある)につけられた識別子により、例えば、識別子の増加する又は減少する順序により決定されてもよい。
本発明の特定の実施形態において、データは、セキュア素子による実行のためのスクリプトであって、外部装置から受信されたデータをコード記憶領域の一部に読み込むステップと、受信されたデータが読み込まれたときに、コード記憶領域全体に対する署名を計算するステップと、受信された署名と計算された署名が一致した場合のみコード記憶領域のコンテンツの実行を可能にするために、外部装置から受信された署名を使用して、計算された署名を検証するステップと、を含むスクリプトを含む。
本発明の特定の実施形態において、コード記憶領域は、データ(外部装置により取得され、セキュア素子により外部装置から受信される)の読み込みの前に、ソフトウェア要素を含む。
したがって、読み込み後のコード記憶領域のシミュレートされたイメージは、それの初期状態(前述のバイナリパターン)での又はセキュア素子の動作中に、コード記憶領域に以前に読み込まれていたかもしれないデータを考慮に入れる。
本発明の特定の実施形態において、コード記憶領域に読み込まれる前記データは、前記コード記憶領域の利用可能なスペースの一部のみを表す。
例えば、読み込まれるデータ(コードブロックの集合)は、コード記憶領域を形成するビットの半分又は4分の1だけを占めていてもよい。本発明の第3の態様は、セキュア素子の不揮発性メモリにデータの読み込みを安全に行うための装置であって、不揮発性メモリは、コード記憶領域と呼ばれる、初期プログラムにより定義される記憶領域であって、領域の任意の変更は前記初期プログラムだけにより管理される記憶領域を備え、装置はセキュア素子の外部にあり、
‐セキュア素子に送信されるデータを取得するためのモジュールと、
‐セキュア素子のこのコード記憶領域への取得されたデータの読み込みにより変更されるコード記憶領域のイメージをシミュレートするためのモジュールと、
‐全体としてコード記憶領域のイメージ署名を計算するためのモジュールと、
‐セキュア素子に取得されたデータと計算された署名を送信するモジュールと、
を備える装置に関連する。
特定の実施形態において、前述の方法の様々なステップは、コンピュータプログラムの命令により決定される。
したがって、また、本発明は、データ媒体上のコンピュータプログラムを提案し、このプログラムはマイクロプロセッサにより実行可能であり、プログラムは、前述の方法のステップの実行に適した命令を含む。例えば、前述したような初期プログラムである。
このプログラムは、任意のプログラム言語を使用してもよく、ソースコード、オブジェクトコード、又は、ソースとオブジェクトコードの間の中間にあるコード、例えば、部分的にコンパイルされた形又は任意の他の所望の形のコードなど、の形式であってもよい。
また、本発明は、前述のようなコンピュータプログラムの命令を含むマイクロプロセッサ読み取り可能なデータメディアを提案する。
データメディアは、プログラムを記憶することが可能な任意の構成要素又は装置でもよい。例えば、メディアは、マイクロサーキットROMのようなROMなどの記憶手段、又は、ハードディスクなどの磁気記録手段、又はフラッシュメモリを備えてもよい。
一方、データメディアは、電気的又は光学的ケーブルを介して、無線により又は他の手段により、ルーティングされる電気的又は光学的信号のような伝導媒体でもよい。具体的には、本発明に関連するプログラムは、インターネットなどのようなネットワークの記憶プラットフォームからダウンロードされてもよい。
代替的に、データメディアは、プログラムが中に組み込まれた集積回路でもよく、回路は、問題になっている方法を実行するため、又は、それの実行において使用されるため採用される。
本発明の第4の態様は、マイクロプロセッサを備え、メモリ内に、前述のような初期プログラムを含むセキュア素子に関連する。例えば、セキュア素子は、ISO/IEC 7816規格に、コモンクライテリア(Common Criteria)規格に、及び/又は、グローバルプラットフォーム カード(GlobalPlatform Card)仕様 v.2.2.1 規格に準拠する。
本発明の第5の実施形態は、この種のセキュア素子と、前記のような安全に行う装置を備え、セキュア素子のための外部装置は安全に行う装置であるシステムに関連する。
前述の安全に行う装置、セキュア素子、システム、データメディア、及びコンピュータプログラムの特定の利点、目的、特徴は、それらが実行する方法のそれらと同じである。
本発明の他の顕著な特徴と利点は、本発明の例示的な実施形態であって、いかなる限定をするものではない実施形態を示す添付図面により説明される以下の記載から明らかになるであろう。
いくつかの実施形態の利用状況の例を示す図である。 いくつかの実施形態の利用状況の例を示す図である。 図1a及び1bに示される装置の例示的な構造を示す図である。 フローダイヤグラムにより、いくつかの実施形態に基づく安全性の方法の主なステップを示す図である。 フローダイヤグラムにより、いくつかの実施形態に基づく安全性の方法の主なステップを示す図である。
概括的には、本発明は、セキュア素子の不揮発性メモリに、特には、セキュア素子内の初期プログラムにより定義されるコード記憶領域と呼ばれる記憶領域であって、この領域の変更は初期プログラムだけにより管理され、コンパイルされた又はインタープリタされたコードを収容可能な領域に、外部装置から取得されたデータの読み込みを安全に行うことに関する。
「コンパイルされた又はインタープリタされたコード」の用語は、プログラムであって、例えばシステム(このケースではセキュア素子)などにより識別され、とりわけ、命令又はコードワード(バイトコード又はバイナリ)がシステムのプロセッサにより直接実行されるマシン言語のプロクラム、を含む任意のデータセットを意味する。
前述のように、コード記憶領域及び特にそのサイズは、セキュア素子の初期又は「基本」プログラムにより管理される。通常、初期プログラムは、システム、このケースではセキュア素子、の製造者の独自のオペレーティングシステムという形をとり、この特定のオペレーティングシステムは、本発明に関連する安全に行うことの対象となるコード記憶領域とは無関係に動作することに留意されたい。
本願発明によれば、外部装置が、例えば、セキュア素子の要求に応じて、セキュア素子への送信のためのデータを取得したとすると、これらのデータは、通常、外部装置(更新装置と呼ばれることもある)により利用可能となっているので、問題になっているデータの完全な読み込みにより変更されるセキュア素子のコード記憶領域のイメージをシミュレートする。記憶領域の「イメージ」は、この記憶領域における各ビットの値と位置を定義する。次に、署名が、このシミュレートされたイメージに基づき計算され、さらに、セキュア素子にそのデータとともに送信される。
その後、この署名は、データの読み込みが完了した後に、コード記憶領域全体が無傷であることを検証するために、セキュア素子により使用される。これは、このコード記憶領域は、外部装置によりシミュレートされたイメージと同一であると考えられるためである。したがって、本発明に関連して、同様に、セキュア素子の初期プログラムは、要求された任意のデータのすべての読み込みの後で、コード記憶領域全体について署名を計算する。受信した署名とそれとを比較するためである。
したがって、それぞれ計算された署名、問題になっているデータの読み込み後のコード記憶領域の予想される(シミュレートされる)イメージについて外部装置により計算された署名と、問題になっているデータの読み込み完了後の記憶領域についてセキュア素子の初期プログラムにより計算された署名との間の同一性は、コード記憶領域が、外部装置によりシミュレートされたイメージと確かに一致していて、且つ、その結果、無傷であることの保証を提供する。
図1a及び1bは、いくつかの実施形態の使用状況の例を示す概略図である。
図1aにおいて、ホスト装置10aに統合され又は埋め込まれたセキュア素子12aは、外部装置16aとデータを交換するように構成される。
例えば、セキュア素子12aは、ISO/IEC 7816 基準、コモンクライテリア(Common Criteria)基準、及び/又は、グローバルプラットフォーム カード(GlobalPlatform Card)仕様 v.2.2.1 基準に準拠する。
例えば、セキュア素子12aは、SIMカード又はUICCカードなどのような、ネットワーク14aの契約者の識別モジュールである。例えば、ホスト装置10aは、携帯端末、特には、「スマートフォン」として知られるインテリジェントな携帯電話である。外部装置16aは、ネットワーク14aに接続される(更新のための)サーバである。
例えば、ネットワーク14aは、データ及び/又はインターネット通信をサポートするモバイルネットワークである。したがって、この例示的な状況において、携帯端末10aとサーバ16bは、識別モジュール12aを用いて、ネットワーク14aを介して通信する。
図1bは、いくつかの実施形態の他の利用状況を示し、カード10b、特に銀行カード又は電子アクセスカード内のセキュア素子12bは、外部装置16bとデータ交換をするように構成される。
この例において、セキュア素子12bは、RFIDタグタイプの、近距離無線通信(NFC:Near Field Communication)プロトコルによる通信のための手段を備え、外部装置16bは、同様に、RFIDタグタイプの、NFCプロトコルによる通信が可能なカードリーダである。
変形例において、セキュア素子と外部装置は、ブルートゥース(登録商標)を介して又は赤外線伝送により通信してもよい。
図1a及び1bに示す状況は、両立しないものではない。1つの状況で示される特徴は他で提供されてもよい。したがって、本発明は、上記状況に限定されるものではない。例えば、本発明は、また、セキュア素子がNFCプロトコルによる通信のための手段を備えたホスト装置に埋め込まれた又は統合されたものであり、外部装置がそれ自身同じ通信手段を備えて通信する状況において有利に使用されてもよい。また、埋め込まれた又は統合されたセキュア素子は、NFCプロトコルによる通信のための手段であって、ホスト装置との通信のために使用される手段を備えてもよい。
本発明のいくつかの実施形態によれば、セキュア素子は、外部装置に、データ(例えば、アプリケーション又はアプリケーションの部分、特には更新部分)を得るための要求を送信する。この要求に応えて、外部装置は、例えば、セキュア素子が統合され又は埋め込まれているホスト装置を介して、セキュア素子に要求されたデータを送信する。これらのデータはセンシティブ(sensitive)であってもなくてもよい。すなわち、それらは、例えばそれらの実行中に、ユーザのデータが操作されることを許可してもよい。
これらのデータは、コード記憶領域と呼ばれるセキュア素子の不揮発性メモリの一部であって、セキュア素子の初期プログラムにより定義され、この領域の任意の変更はこの初期プログラムのみにより管理され、その領域はコンパイルされた又はインタープリタされたコードを含むことが可能である不揮発性メモリの一部に(読み込まれ)記憶されることを想定している。
外部装置により計算された署名は要求されたデータとともに送信される。本発明によれば、この署名は、要求されたデータのすべての読み込みの後にあるべきコード記憶領域全体のイメージを反映しているという顕著な特徴を有する。
好ましくは、コード領域は、任意の初期データが読み込まれる前は「ランダム化されて」いる。換言すれば、ランダムな値が、コード領域にランダムなやり方で記録される。コード領域のこの状態は、データのすべての読み込みの後にあるべきコード記憶領域全体のイメージを反映している署名が計算できるように、外部装置により知られている。
要求されたデータの読み込みが完了したとき、セキュア素子の初期プログラム自体が、要求されたデータの読み込みにより実際に変更されたものとしてコード記憶領域についての署名を計算する。コード記憶領域の全体は確かに予想される外観を有していること、換言すると無傷であることを保証するためである。
図2は、図1a又は1bに示す装置、すなわち、セキュア素子12a又は12b、外部装置16a又は16b、及び/又は、ホスト装置10a又は10bの例示的な構造を示す図である。
この構造によれば、装置は以下の要素に接続される通信バス2を備えていてもよい。
‐CPU(Central Processing Unit)で示され、1つ又は複数のプロセッサを備えていてもよい、処理ユニット20、
‐リード/ライトメモリ22又はキャッシュメモリ又は揮発性メモリ、例えばRAM(Random Access Memory)、
‐1つ又は複数の不揮発性メモリ24、及び、
‐通信インターフェース26。
リード/ライトメモリ22は、本発明による方法を、その方法の使用中に、使用するための命令を含むコンピュータプログラムの実行中に生成され及び変更される変数及びパラメータを記録するのに適したレジスタを備える。不揮発性メモリに記憶されたプログラムの命令コードは、処理ユニット CPUによる実行のためRAMに読み込まれる。
1つ又は複数の不揮発性メモリ24は、例えば、EEPROM又はフラッシュメモリタイプの書換え可能なメモリであって、本発明の意味においてのメディアを構成してもよい、すなわち、それらは、本発明による方法の使用のための命令を含むコンピュータプログラムを含んでいてもよい。
本発明によれば、セキュア素子のケースにおいて、ROM24は、例えば3つの記憶領域24a、24b、24cに分割されていてもよい。例えば、記憶領域24aは、ジャバ(Java(登録商標))アプリケーション(「アプレット」と呼ばれる)、ジャバカード(Java(登録商標)Card)仮想マシンのコンフィギュレーションデータ、パスワード、電話番号、アプリケーション、又は、その他のカスタマイズパラメータなどのユーザデータを含む。
記憶領域24bは、前述のコード記憶領域である、したがって、コンパイルされた又はインタープリタされたコードでのデータとプログラム、例えば、セキュア素子のオペレーティングシステム、又は、コンパイルされた又はインタープリタされたコードでの任意のタイプのアプリケーション、の記憶専用となっている。例えば、それは、ジャバカード仮想マシン、ジャバカード実行環境(英語では「Java(登録商標)Card Runtime Execution」)、ネイティブアプリケーション、又は、GSM(登録商標)プラットフォーム(「モバイル通信のためのグローバルシステム(Global System for Mobile Communication)フレームワーク)である。実行エラーを防ぐため、この記憶領域は、それが含むコンパイルされた又はインタープリタされたコードの実行中は、変更することができない、この記憶領域24bのロッキング(locking)は、この領域が一時的に無効にされた後にコード記憶領域24bの変更をすることができる唯一のプログラムであるセキュア素子の初期プログラムにより提供される。
それの初期状態において、すなわち、製造中は、記憶領域24bはブランクである。任意のコンパイルされた又はインタープリタされたコードが読み込まれ又はインストールされる前の初期状態において記憶領域24bには、バイナリパターンが適用される。例えば、このパターンは、すべて0に等しいか又はすべて1に等しいビットで構成される。変形例において、このパターンは、いくつかの0ビット又はいくつかの1ビットから構成されてもよく、したがって、その初期状態における記憶領域24bのビットのイメージをより複雑にし、この記憶領域の安全性を改良することができる。特には、前述のようにランダム化されたイメージが使用されてもよい。
特には、この初期イメージは、外部の更新装置16a/16bにより知られているので、この装置が、記憶領域24bのビットの変化、及び、したがって、コンパイルされた又はインタープリタされたコードでの新しいソフトウェア要素が記憶領域に読み込まれたときの、記憶領域24bのビットセットからなるこの記憶領域24bのイメージにおける変化を、正確に追跡することを可能にする。
変更不可記憶領域24cは、本発明により、コード記憶領域24bのサイズと完全性を管理するように構成されたセキュア素子の初期プログラムを含む。初期プログラムは、例えば、領域24bのスタートのメモリアドレス及び領域24bのエンドのメモリアドレスにより定義されるコード記憶領域24bのサイズを与える。例えば、これらのアドレスは初期プログラムのレジスタキーに記憶される。
また、初期プログラムはコード記憶領域24bのインタープリタされたコードでのソフトウェア要素の活性化及び無効化を制御する。換言すれば、記憶領域24bに記憶されたコンパイルされた又はインタープリタされたコードの実行を可能とするか又は禁止とすることができるのは初期プログラムだけである。特には、それは、ソフトウェア要素の1つを更新しなければならないとき、又は、その中に新しいデータを読み込まなければならないときには、記憶領域24b内の任意の実行を無効とする。
また、初期プログラムは、コード記憶領域24bを更新するための仕組みであって、このコード記憶領域24b内にインタープリタされたコードでのバイナリブロックを読み込むための更新コマンド又はスクリプトを実行するように構成される仕組みを有する。
ROMは、3つの領域を超えるように分割されてもよく、その場合でも、セキュア素子のコンパイルされた又はインタープリタされたコードのすべてのソフトウェア要素は、専用のコード記憶領域24bに強制的に記憶される。
通信インターフェース26は、例えば、電話通信ネットワーク又はリード/ライト インターフェースを介してのデータの送受信に適応している。例えば、外部装置とセキュア素子がデータと署名とを送受信するのは、このインターフェースを介してである。また、ホスト装置がデータの取得のためのセキュア素子からの要求を送信することができ、セキュア素子に送信するために外部装置からこれらのデータを受信することができるのは、このインターフェースを介してである。
必要に応じて、また、このアーキテクチャ(通常、ホスト装置10aに対して)は、例えば、スクリーン、キーボードマウス、又は、タッチスクリーンのようなポインティングデバイスなどのI/O(入力/出力)で表される入力/出力インターフェースを有する。このインターフェースを用いて、例えば、ユーザは、既にメモリ内にあるコンパイルされた又はインタープリタされたコードでのオペレーティングシステム又はアプリケーションの更新、又は、コンパイルされた又はインタープリタされたコードでの新しいオペレーティングシステム又は新しいアプリケーションの読み込みを要求することができる。
必要に応じて、また、このアーキテクチャ(通常、外部装置16a又は16b、及び、セキュア素子12a又は12bに対して)は、例えば、コンパイルされた又はインタープリタされたコードでの実行可能ファイルの署名又はデータなどを含むメッセージを暗号化/復号化するための、処理ユニット20からの命令を受信する暗号プロセッサ29を有する。この暗号化はネットワーク14a上でのデータと署名の送信を安全に行う。
通信バスは、装置内に含まれる又はそれに接続される様々な素子間の通信と相互運用を提供する。通信バスの意義は、限定されるものではないが、特に、処理ユニットが、装置内の任意の素子に、直接に又はこの装置内の他の素子を介して命令を通信できることにある。
図3aは、いくつかの実施形態による安全に行う方法の主なステップを示し、これらのステップは、外部装置(例えば、図1における装置16a又は16b)により実行される。図3bは、いくつかの実施形態による安全に行う方法の主なステップを示し、これらのステップは、セキュア素子(例えば、図1における装置12a又は12b)により、特に初期プログラム又は初期プログラムに提供される読み込みモジュールにより、実行される。
図3aのステップ30において、外部装置は、セキュア素子から送られた、データを取得するための要求を受信する。
要求を送信するための多くの可能なメカニズムが存在し、それらのいくつかは自動的に、他のものは、ユーザの自発的な行動に基づくものである。
非限定的な例であって、図2を参照して前述したように、ホスト装置の、例えば、図1aの携帯端末10aのユーザは、この要求の生成と送信を開始する。例えば、ユーザは、携帯端末10aのキーパッド又はタッチスクリーンを使用して、携帯端末内に収納されているSIMカードにインストールされている現在のものより、より最近のバージョンのアプリケーション又はオペレーティングシステムを外部の更新装置が有しているかどうかをチェックするよう携帯端末に要求してもよい。この状況において、携帯端末10aは、例えば、「Select(Program)」コマンド(Programはチェックされるべきオペレーティングシステム又アプリケーションである)、及び、「GetData(9F7Fh)」コマンド、9F7Fhは「カード製造ライフサイクル」として知られるトレーサビリティデータを特徴づけるパラメータである、を使用して、このオペレーティングシステム又はアプリケーションの現在のバージョンを見つけるためにセキュア素子に問い合わせをして、次に、この情報を、例えばPINGコマンドを使用することにより自発的に、外部の更新装置に送信して、応答により、現在の、さもなければより最近のバージョンがあることを知ることができるようにする。
変形例において、同じ交換を使用して、バージョンの検証を、端末が起動するとき自動的にしてもよい。
他の変形例において、外部装置は、オペレーティングシステム又はアプリケーションの新バージョンの存在を、プッシュメカニズムを使用して、端末及びセキュア素子に自発的に知らせてもよい。
更新装置によって、より最近のバージョンの存在を知らされた端末は、この情報をセキュア素子に送信し、次にセキュア素子は、オペレーティングシステム又はアプリケーションのコードの全部又は一部のより最近のバージョン(すなわち、更新)を取得するための要求を送信する。
代替的に、セキュア素子と外部装置間の通信は、以下に記載する全体に対して、直接的である。したがって、端末は、交換されるデータ及びメッセージ(特には、更新が得られるという情報)を、それらを中断することなく、単に中継として機能して、送信する。
いくつかの実施形態において、取得のためのこの要求は、セキュア素子を識別するための情報、例えば、セキュア素子の固有の識別子を含む。この固有の識別子は、例えば、更新装置が、セキュア素子の現在の又は「存在する」ソフトウェアコンフィギュレーション、特には、記憶領域24bのそれを検索するため、関連するデータベースを使用することを可能にする。実際に、この種のデータベースは、セキュア素子で実行されるインストール及び更新のログと同様にこれらのインストールと更新の実行の指示とを記憶するために使用されてもよい。例えば、この指示は、読み込まれるデータのメモリのアドレス又は記憶位置を示すインストールスクリプトである。
変形例において、取得のための要求は、セキュア素子のコード記憶領域24bの現在のソフトウェアコンフィギュレーションの識別子を含む。
例えば、この識別子は、外部装置に関連するデータベース内の、記憶領域24bにおいて実行される読み込みのログが関連するソフトウェアコンフィギュレーションの固有の識別子である。
この識別子及び関連するログにより、記憶領域24bに現在記憶されているソフトウェア要素だけでなく、以前に読み込まれてその後消去されたものも、これらのソフトウェア要素がコード記憶領域24b内で互いに続けて起きた順序とともに、知ることが可能である。
このログにより、コード記憶領域24bの様々な場所で、特に、全体として考えられる記憶領域24bの各ビットにおいて、互いに続けて起きた情報のすべての項目を取り出すことが可能である。したがって、この固有の識別子により識別されるソフトウェアコンフィギュレーションは、セキュア素子のコード記憶領域24bの現在のイメージを表す、換言すれば、特には、過去に読み込まれ、その後、上書きされないけれども削除されたソフトウェア要素(それらがメモリにまだあるような)を考慮した、各ビットの値と位置を表す。
例として、このソフトウェアコンフィギュレーション識別子は、セキュア素子から検索されるCPLC(カード製造ライフサイクル:Card Production Life Cycle)データであって、通常はPINGコマンドにより外部装置に送信されてもよいCPLCデータから決定されてもよい。CPLCデータは、特に、セキュア素子の製造者の識別子、セキュア素子のタイプ、オペレーティングシステムの識別子、及び、オペレーティングシステムの現在のバージョンを含む。それらは、外部装置が、この情報が検索されたセキュア素子のコード記憶領域24bの現在のイメージを検索することを可能にする。
変形例において、取得のための要求は、関連するデータベース内に補充されたデータの検索に頼ることなく、記憶領域のイメージの復元のために必要な情報を含んでいてもよい。
ステップ31において、外部装置は、要求されたデータを、(例えば、内部記憶領域から、又は、第3者の装置から)検索して、次に、要求されたデータの読み込みの後にあるはずの、コード記憶領域24bのビットのイメージをシミュレートする。換言すると、外部装置は、コード記憶領域24bのビットそれぞれの位置と値を、それらが、要求されたデータを構成するコンパイルされた又はインタープリタされたコードの読み込みにより変更されようがされまいが、シミュレートする。
特に、要求されたデータの読み込みは、セキュア素子により受信され、要求されたデータのすべて又はいくつかのために特定の位置を定義するコマンドセットを含む、(可能であれば、外部装置により生成された)インストール又は読み込みスクリプトにしたがってもよい。例えば、インストールスクリプトは、データが記憶される位置(メモリアドレスと長さ)(値)を示すALV(「アドレス長値(adress−length−value)」を含んでいてもよい。したがって、外部装置は、セキュア素子がインストールスクリプトの受信に基づいて動作するのと同じやり方で要求されたデータのインストール又は読み込みを、シミュレーションにより再現することができる。
したがって、シミュレートされたイメージは、ビットが、要求されたデータの読み込みにより変更されることと同じくそれらがこの読み込みにより変更されないことを許す。
実際には、外部装置により生成されたインストールスクリプトは、コンパイルされた又はインタープリタされたコードの記憶に対する容量及び/又は要求されたデータに対するインストールパラメータ(前述のALVファイル)を拡大したり縮小したりするため、コード記憶領域24bのコンテンツ、例えばそのサイズを変更するためのコマンドセットを含んでもよく、したがって、コード記憶領域の正確な位置(すなわち正確なアドレス)に各データビットを読み込ませることを可能にする。したがって、外部装置は、例えば、ソフトウェア要素の前のバージョンのビットをこのソフトウェアの新バージョンのビットで置き換えるために、各データビットに対し、他よりも位置の優先を与えてもよい。
インストールスクリプトは、読み込まれるデータとは別に表されるけれども、読み込まれるデータは、インストールスクリプトの不可欠な部分を形成してもよい。したがって、スクリプトは、前述のALVファイルの値に、データを構成するコンパイルされた又はインタープリタされたコードの1つ又は複数のブロックあるいは全体を含んでもよい。
さらに、インストールスクリプトは、ホスト端末とセキュア素子間の安全なチャネルを確立するためのコントロール信号を含んでもよく、それらの相互認証を提供してもよい。例として、これらのコマンドは、要求されたデータの読み込み中に、(通常は上記CPLCデータの識別子に基づく)疑似ランダム値に基づいて生成されるセッションキーに基づく安全なチャネルが使用されるように、GP 2.2.1 Amd D v1.1(SCP03)仕様に準拠する。この仕様により確立された安全なチャネルは、前述の要素(署名、コンパイルされた又はインタープリタされたコードなど)を送信するコマンドの、特には、ALVファイルの各エントリのための「Store Data」コマンドの一連の事前生成を可能にする利点がある。
ステップ32において、その後、コード記憶領域24bのビットセットのシミュレーションされたイメージの署名が外部装置により計算される。この署名は要求されたデータの読み込みにより変更されたビットの新しい値と、同様に、この読み込みにより変更された位置以外に位置しているコード記憶領域のビットの値との関数である。読み込みにより変更された位置以外の位置は、以前に読み込まれた他のデータ(ソフトウェア要素)のインタープリタされたコード、又は、初期のバイナリパターン、すなわちコード記憶領域のその最初の状態、すなわちブランクのときのビットのイメージに対応するパターンを含んでいてもよい。
セキュア素子のコード記憶領域24bへの任意の以前の読み込みと要求されたデータの実際の読み込みの間で、変更された位置以外に位置するビットは、コード記憶領域に対する位置又は値のいかなる変更も受けてはならないことに留意されたい。異常(悪意のある、又は、読み込みスクリプトの実行における論理エラーの結果)であるこれらの変更は、セキュア素子により計算されるコード記憶領域24bの署名(以下に記述される)であって、期待値に関連し、記憶領域24bのシミュレートされたイメージについて計算され、いかなるそのような変更もあってはならない記憶領域のイメージを特徴づける署名の変更を引き起こすであろう。
実際には、例えば、この署名は、メッセージ認証コードMAC(Message Authentication Code)、ハッシュMAC、例えばSHA−2タイプのハッシュ関数の結果、又は、代替的に、巡回冗長コードのアプリケーションの結果である。署名は、信号コードブロックのビットのシミュレートされたイメージ、又は、記憶領域24b全体のビットのシミュレートされたイメージが分割されたバイナリ部分について計算されてもよい。
特定の実施形態において、外部装置は、コード記憶領域をP個のサブ領域に仮想的に分割して、P個のサブ領域の1つに対するそれぞれのイメージ部に対する基本署名を計算する。次に、全体のコード記憶領域のイメージの署名がP個の計算された基本署名の合成により得られる。
したがって、外部装置は、読み込みにより変更されるサブ領域に対する基本署名だけを有利に計算してもよく、変更されないサブ領域の基本署名を、それらが既に計算されているときは、再利用してもよい。
特に、外部装置は、考えられている各サブ領域のコンテンツ、すなわち、それを形成しているビットセット(モジュールと呼ばれる)であって、他のサブ領域のコンテンツとは関係がないコンテンツを管理してもよい。換言すると、外部装置は、モジュールがコード記憶領域24b内でどのように互いに相対的に配置されているかを示す必要なしに、1つ又は複数のモジュール内の要求されたデータのいくつかの読み込み位置を示してもよい。
基本署名の合成は、P個のサブ領域のP個の基本署名に適用される全単射関数を使用して実行されてもよい。これは、サブ領域の任意の順序(したがって、対応する基本署名の任意の順序)を考慮することを不要にする。この全単射関数は、外部装置とセキュア素子とで共有される秘密の関数でもよい。したがって、記憶領域全体の署名は、基本署名だけから取得することはできない、すなわち、全単射関数、又は、この関数の秘密のパラメータのいずれかの知識なしには、取得することはできない。
例えば、排他的OR(XOR)が使用されてもよく、MACコードが、すべての基本署名について計算されてもよい。
変形例において、次に、コード記憶領域全体のイメージの署名は、例えば、対応するサブ領域の順序又はそれらのコンテンツ(モジュールと呼ばれる)の順序に関連する所定の順序での基本署名の合成により取得されてもよい。この所定の順序は、外部装置とセキュア素子とで共有される秘密として事前に記憶されていてもよい。例えば、サブ領域は、識別子(経時的に変化する)を備えていてもよく、順序は、前記サブ領域の識別子の増加する又は減少する順序でもよい。
ステップ33において、要求されたデータは、安全なチャネルを確立して要求されたデータを読み込むため外部装置により生成されたインストールスクリプトとともに、それらの実行のため、すなわち、セキュア素子にデータを読み込むために、ステップ32において計算された署名とともに送信される。
実際には、署名は、それがセキュア素子により受信される前に、それを変更され又は傍受されるのを避けるために暗号化(または、符号化)されたコマンドで送信される。いくつかの実施形態において、要求されたデータ、インストールスクリプト及び署名は、すべて同じ暗号化(符号化)されたコマンドで送信される。
他の実施形態において、データの活性化のための要求は、暗号化されたコマンドでの署名を伴って送信される。
実際には、要求されたデータ、署名、及び必要であれば活性化要求が、SMS(無線)により、インターネット、NFC、ブルートゥース(登録商標)、有線接続、又は、任意の他の通信手段であって外部装置及びこれらの要素の受信者(すなわち、セキュア素子及び/又はホスト装置)により制御される任意の他の通信手段により送信されてもよい。
セキュア素子により実行される動作に関しては、前述のように、データを取得するための要求が、外部装置がセキュア素子のコード記憶領域24b全体のビットのイメージをシミュレートするのを可能にするために、識別子を伴って送信される。
データを取得するためのこの要求は、通常、記憶領域24cに記憶された初期プログラムにより送信される。例えば、初期プログラムは、コード記憶領域24bに記憶されたすべてのデータ(オペレーティングシステム及びアプリケーション)を、それらを更新又は新しいデータをインストールするために、非活性化するコマンド(例えば「chmod」)を使用する。
以下において、記載されたステップを実行するのは、特に断りがない限り、初期プログラム(または、初期プログラムのローディングモジュール)であると想定されている。
また、外部装置に関連して前述したように、ホスト端末は、インストールスクリプト、読み込まれるデータ(スクリプトに含まれていても含まれていなくてもよい)、及び外部装置で計算された署名を受信する。
受信されたインストールスクリプトは、ホスト端末により実行され、図3bに関連して以下に記述するセキュア素子との交換をもたらす。
セキュア素子の初期プログラムにより実行されるその後のステップに関連する図3bでのステップ34において、セキュア素子は、ステップ33において外部装置により送信された、データ取得のための要求において要求されたデータと、ステップ32において外部装置により計算された署名と、適切である場合には、要求されたデータの活性化のための要求とを一緒に受信する。
実際には、ホスト端末は、ホスト端末とセキュア素子、特には、後者の初期プログラムとの相互認証と、それに続くこれら2つの構成要素間の安全な通信チャネルの設定と、要求されたデータの送信と、最後に外部装置により計算された数値署名と、が得られるインストールスクリプトを実行する。
例えば、相互認証は以下のステップ、
‐ホスト端末は初期プログラムに端末のIDタームの識別子を送る、
‐初期プログラムは端末にランダム数R1を送る、
‐端末は計算して符号化された項目C1=f(IDターム,R1)を初期プログラムに送る、
‐端末はランダム数R2を初期プログラムに送信する、及び
‐初期プログラムは符号化された項目C2=f(IDターム,R2)を戻す、
を含む。
初期プログラムとホスト端末それぞれによるC1とC2の検証は、これら2つの構成要素の相互認証を可能にする。
次に、GP 2.2.1 Amd D v1.1(SCP03)による安全なチャネルは、例えば、外部装置によりインストールスクリプト内に提供されるランダム値及び/又は疑似ランダム値(ランダム値とCPLCデータに基づく)を用いて実施される。
読み込まれるためのデータと署名は、ホスト端末と初期プログラムとの同じ通信セッション中に送られる。データは、例えば、ALVトリプレット(triplet)を使用する1つ又は複数のSCP03「Store Data」コマンドを使用して、モノリシックブロックで、又は、変形例として、独立した複数のブロックで送信されてもよい。
ホスト端末からセキュア素子への要求されたデータの安全な読み込みは、外部装置とは独立して、すなわち、必ずしもホスト端末が外部装置と接続されることがなくても行われることに留意されたい。これは、端末が受信とは無相関なやり方で、例えば、初期プログラムがこの素子を引き継ぐときのセキュア素子の次の再スタートのときに、外部装置により送信されるインストールスクリプトにより可能になる。
また、インストールスクリプトで提供される他のコマンドは、例えば、コード記憶領域24bを縮小又は拡大するためのコマンドと読み込まれたデータを活性化するコマンドを実行するため、セキュア素子に送信される。
ステップ35において、次に、要求されたデータは、一括して又はブロックごとにセキュア素子のコード記憶領域24bに読み込まれる。実際には、前述のインストールスクリプトは初期プログラムのローダーにより実行されて、モノシリックブロックの読み込み、又は、ALV記憶位置の指示にしたがい連続したブロックの漸進的読み込みのいずれかにより要求されたデータの読み込みとインストールが行われる。
コード記憶領域が前述のようにP個のサブ領域に区切られているとき、インストールスクリプトコンテンツにより、サブ領域は、読み込まれるデータを形成するコンパイルされた又はインタープリタされたコードの1つのブロック又は複数のブロックの読み込みにより変更されてもよい。他のサブ領域は、変更されなくともよい、すなわち、要求されたデータの読み込みの現在の動作がされている間は、読み込みは、これらの領域に対して全く実行されない。コード記憶領域がサブ領域に区分されている場合は、ブロックの読み込みに対するメモリアドレスは、特定のサブ領域の開始メモリアドレスに対して表されていてもよい。
ブロックごとの読み込みの利点は、各ブロックは他のブロックとは独立して読み込まれてもよいことにある。
例えば、読み込みは、インストールスクリプトで示されたメモリアドレスにブロックを直接記憶することを含んでもよい。したがって、ソフトウェア要素の更新の間、この読み込みタイプは、更新されるブロックを直接取り換えることを含む。
変形例において、読み込まれるブロックは、インストールスクリプトにより特定される位置に配置され記憶される前に、一時記憶(リザーブ領域又は「スペアメモリ領域」)専用のコード記憶領域の一部にキューイングされてもよい。
コード記憶領域24bを更新するため初期プログラムにより使用される読み込み方法(直接又は間接)は、外部装置により知られていて、外部装置はコード記憶領域24bの一部を形成するリザーブ領域のビットの状態を知ることができる。これは、ステップ32において計算された署名は、セキュア素子のコード記憶領域24bでの実際の変更に適合することを保証する。
要求されたデータが、全体として読み込まれたとき(すなわち、モノリシックブロックが読み込まれたとき、又は、場合によっては、すべてのコードブロックが読み込まれたとき)、換言すると、読み込みセッションが終了したとき(セッションは、セキュア素子のオンとオフのスイッチングの複数の周期をカバーしてもよいことに留意されたい)、署名を計算するステップ(ステップ36)が、セキュア素子の初期プログラムにより実行される。
一般的なルールとして、このステップは、署名が、コード記憶領域全体のビットの現在のイメージから、すなわち要求されたデータの読み込みが完了したときのコード記憶領域24bのビットの値から計算されることを除いて、外部装置により実行されるステップ32と同じである。
要求されたデータの読み込みの後に、原則として、変更されるであろうコード記憶領域のビットのシミュレーションに基づいて外部装置により計算される署名と対照的に、初期プログラムにより計算される署名は、コード記憶領域24bのすべてのビット、したがって、領域24bに対してなされてもよい任意の変更(悪意のあるもの又は読み込みエラーによるものであろうとなかろうと)を考慮する。
ステップ34で受信した署名が、前述のようにサブ領域の基本署名の合成の結果であるときは、また、基本署名は、関連するサブ領域のコードブロックの読み込みが完了した後に再度、セキュア素子の初期プログラムによりステップ36で計算される。
有利には、各基本署名はコードブロックが対応するサブ領域に読み込まれてすぐに、あるいは、完全に読み込みがされたなら、計算されてもよい。
このケースにおいて、関連するサブ領域のコンテンツ(又はモジュールと呼ばれる)は、外部装置により予想されたものと同一である。したがって、サブ領域に関連する基本署名を計算するために、要求されたデータの完全な読み込み(したがって、他のサブ領域への読み込み)を待つ必要はない。結果的に、基本署名は、データ読み込みスクリプトの実行中に個別に計算されてもよく、したがって、読み込みの終了に達したとき、全体署名の計算時間が削減される。
次に、これらの基本署名はステップ32と同じやり方で、すなわちステップ32で使用された合成方法にしたがい、全単射関数又は所定の順序での合成を使用して、合成される。初期プログラムと外部装置は、同じ合成を実行するように構成される。必要であれば、それらは、署名の計算のために実行される合成方法について合意するために命令を交換してもよい。
要求されたデータのすべての読み込み後の、実際のコード記憶領域の全体の現在のイメージを反映したコード記憶領域の署名は、このようにして取得される。したがって、それは、コード記憶領域24bにおいてなされた任意の予想外の変更を含む。
ステップ37において、コード記憶領域24bの完全性は、ステップ36でセキュア素子により計算された署名を、ステップ34で外部装置から受信された署名と比較することにより検証される。これは、コード記憶領域全体が予想される外観を本当に有していること、すなわち、読み込まれたデータの各コードビットが外部装置により特定された位置に予想される値を有していること、及び、他のメモリビットが値と位置の両方に関して損傷を受けていないこと、を検証するプロセスである。
計算された署名が異なる場合、これは、外部装置により生成されたコード記憶領域のシミュレーション(すなわち、コード記憶領域全体のビットのシミュレーション)との比較により、少なくとも1つのメモリビットが変更(追加、削除、変更)されていること、を意味する。このケースにおいて、セキュア素子の初期プログラムは、コード記憶領域24bは損傷を受け、したがって、実行することができない、換言すると、このやり方で読み込まれたデータを活性化できない、とみなす。
次に、セキュア素子は、異常を信号で、例えば外部装置に伝えてもよく、それに応じて、外部装置は、安全性の欠陥を直す試みにおいて新しいデータを送信してもよく(コードブロックがエラーで受信された場合)、また、故障が識別された論理的誤動作に起因している場合、例えば、コンパイルされた又はインタープリタされたコードがバッファ領域として1回ごとに使用されるべきリザーブ領域に恒久的に記録される場合には、この故障の再生を防ぐために新しい論理ルールをインストールしてもよい。変形例において、署名はセキュア素子の初期プログラムにより再計算されて、次に、セキュア素子の再始動後に再度検証されてもよい。
セキュア素子により計算された署名と外部装置から受信した署名が一致する場合、セキュア素子の初期プログラムは、実行を可能にする、すなわち、このやり方で読み込まれたデータを活性化する(ステップ38)。例として、初期プログラムは、実行における権利を変更するため、モード変更コマンド「chmod](例えば、「chmod +x」を実行してもよい。
様々な実施形態において、読み込まれたデータは、すぐに活性化(換言すると、実行可能にする)されてもよく、また、活性化は、セキュア素子の次の起動のときのみに行われてもよい。次の起動のときの活性化は、問題のデータがそれのオペレーティングシステムの更新に対応している場合、セキュア素子の動作を中断することがない利点を有する。
いくつかの実施形態において、署名の計算(ステップ36)と検証(ステップ37)の新しいステップは、コード記憶領域がまだ損傷を受けていないことの連続的な検証を提供するため、セキュア素子の動作中に(例えば、定期的に、セキュア素子のスイッチングオフとは無関係に)実行される。このような方法で、最後の読み込みセッションの後に発生したコード記憶領域の任意の悪意ある更新が確認されてもよい。これらの新しい完全性の検証は、第三者(例えば、外部装置またはネットワークオペレータなど)の要求のときにセキュア素子がオンされたときはいつでも、またあるいは、所定のイベント(例えば、ユーザ要求、カウンタの終了、特定コマンドの受信、又は、プロセッサの低い利用率など)の発生ごとに、発生してもよい。
コード記憶領域24bの完全性の欠陥が検出された場合、初期プログラムは、この記憶領域のインタープリタされたコードを非活性化して外部装置に警告することを決定してもよい。インタープリタされたコードの再活性化は、完全に無傷なコード記憶領域24bに復元されたときのみ起きる。
前述の例は、単純に、本発明の多くの実施形態であり、それらに限定されるものではない。
例えば、前述のように、要求されたデータブロックは、各ブロックに対する「Store Data」コマンドの助けを借りて初期プログラムに送信されてもよく、次に、これらのブロックは、特定のメモリ位置に直接に、又は、リザーブ記憶領域の一時記憶を介して、読み込まれてもよい(ステップ38)。
変形例において、ホスト端末は、初期プログラムにより実行される、更新スクリプトと呼ばれる新しいスクリプトを送信してもよく、この更新スクリプトは、特定の読み込み位置の指示とともに、要求されたデータの様々なインタープリタされたコードブロックを含む。この更新スクリプトは、要求されたデータの様々なインタープリタされたコードブロックの漸進的な読み込みによりコード記憶領域24bを変更するために、初期プログラムにより実行される前に、領域24bのリザーブ記憶領域に記憶される。
さらに、上記の例において、セキュア素子はデータを取得するための要求を送信する(ステップ30)。本発明の変形例において、外部装置は、用語「push」として知られている、前述の要求を必要としないメカニズムにより、セキュア素子に向けてデータをプッシュする。これらの変形例において、外部装置は、セキュア素子に対する読み込み履歴を(例えば、前述のデータベースを使用することにより)知っているので、例えば、セキュア素子に関連する更新があったときは、コード記憶領域のイメージをシミュレートして、署名を計算して(適切な場合には、基本署名を介して)、セキュア素子に「push」モードでデータ全体を送信することが可能である。

Claims (16)

  1. セキュア素子の不揮発性メモリへのデータの読み込みを安全に行う方法であって、前記不揮発性メモリは、コード記憶領域と呼ばれる、前記セキュア素子の初期プログラムにより定義される記憶領域であって、前記領域の任意の変更は前記初期プログラムだけにより管理される記憶領域を含み、
    前記方法は、前記セキュア素子に対する外部装置により実行される、
    ‐前記セキュア素子に送信するためのデータを取得するステップと、
    ‐前記セキュア素子の前記コード記憶領域内に前記取得されたデータの前記読み込みにより変更される前記コード記憶領域のイメージをシミュレートするステップと、
    ‐全体として前記コード記憶領域の前記シミュレートされたイメージの署名を計算するステップと、
    ‐前記取得されたデータと前記計算された署名を前記セキュア素子に送信するステップと、を含む方法。
  2. セキュア素子の不揮発性メモリへのデータの読み込みを安全に行う方法であって、前記不揮発性メモリは、コード記憶領域と呼ばれる、前記セキュア素子の初期プログラムにより定義される記憶領域であって、前記領域の任意の変更は前記初期プログラムだけにより管理される記憶領域を備え、
    前記方法は、前記セキュア素子により実行される、
    ‐外部装置からのデータと署名を受信するステップと、
    ‐前記コード記憶領域の一部に前記外部装置から受信された前記データを読み込むステップと、
    ‐前記データが読み込まれた後に、前記コード記憶領域全体の署名を計算するステップと、
    ‐前記受信された署名と前記計算された署名が一致した場合にのみ、前記コード記憶領域のコンテンツの実行を可能にするために、前記受信された署名を使用して前記計算された署名を検証するステップと、を含む方法。
  3. 前記データは、データを取得するための要求に応答して前記セキュア素子に送信され、データを取得するための前記要求は、前記セキュア素子を識別する情報を含むことを特徴とする請求項1又は2に記載の方法。
  4. 前記データは、データを取得するための要求に応答して前記セキュア素子に送信され、データを取得するための前記要求は、前記セキュア素子の前記コード記憶領域の現在のイメージのソフトウェアコンフィギュレーション表現の固有の識別子を含むことを特徴とする請求項1から3のいずれか1項に記載の方法。
  5. 前記署名は、前記外部装置から送信される暗号化されたコマンドにおいて、前記取得されたデータの活性化の要求とともに前記セキュア素子に送信されることを特徴とする請求項1から4のいずれか1項に記載の方法。
  6. 前記データは、前記取得されたデータが読み込まれることになっている前記コード記憶領域の1つ又は複数の位置の指示とともに、前記外部装置により送信されることを特徴とする請求項1から5のいずれか1項に記載の方法。
  7. 前記コード記憶領域は、P個のサブ領域に区切られ、前記署名を計算するステップは、各サブ領域に対する基本署名を取得するステップと、シミュレートされたか否かにかかわらず、前記P個の基本署名の合成により、前記コード記憶領域全体の前記署名を取得するステップと、を含むことを特徴とする請求項1から6のいずれか1項に記載の方法。
  8. 前記P個の基本署名の前記合成は、全単射関数の前記適用を含むことを特徴とする請求項7に記載の方法。
  9. 前記署名の前記計算は、前記P個の基本署名の、それらのサブ領域に対応する事前に定義された順序での、合成を含むことを特徴とする請求項7に記載の方法。
  10. 前記データは、前記セキュア素子による前記実行のためのスクリプトであって、前記外部装置から受信されたデータを前記コード記憶領域の一部に読み込むステップと、前記受信されたデータが読み込まれたときに、前記コード記憶領域全体に対する署名を計算するステップと、前記受信された署名と前記計算された署名が一致した場合のみコード記憶領域の前記コンテンツの前記実行を可能にするために、前記外部装置から受信された署名を使用して、前記計算された署名を検証するステップと、を含むスクリプトを含むことを特徴とする請求項1から9のいずれか1項に記載の方法。
  11. 前記コード記憶領域は、前記データの読み込みの前に、ソフトウェア要素を含むことを特徴とする請求項1から10のいずれか1項に記載の方法。
  12. 前記コード記憶領域に読み込まれる前記データは、前記コード記憶領域の利用可能なスペースの一部のみを表すことを特徴とする請求項1から11のいずれか1項に記載の方法。
  13. セキュア素子のマイクロプロセッサにより読み込まれて実行される、前記実行のための命令を含む初期プログラムであって、前記セキュア素子は、コード記憶領域と呼ばれる、初期プログラムにより定義される記憶領域であって、前記領域の任意の変更は前記初期プログラムだけにより管理される記憶領域を一部に含む不揮発性メモリを備え、
    前記実行は、
    ‐外部装置からデータと署名を受信するステップと、
    ‐前記外部装置から受信された前記データを前記コード記憶領域の一部に読み込むステップと、
    ‐前記データが読み込まれた後に、前記コード記憶領域全体の署名を計算するステップと、
    ‐前記受信された署名と前記計算された署名が一致した場合にのみ、前記コード記憶領域の前記コンテンツの前記実行を可能にするために、前記受信された署名を使用して、前記計算された署名を検証するステップと、を含むことを特徴とする初期プログラム。
  14. マイクロプロセッサを備え、メモリ内に、請求項13に記載の初期プログラムを含むセキュア素子。
  15. セキュア素子の不揮発性メモリにデータの読み込みを安全に行うための装置であって、前記不揮発性メモリは、コード記憶領域と呼ばれる、初期プログラムにより定義される記憶領域であって、前記領域の任意の変更は前記初期プログラムだけにより管理される記憶領域を備え、前記装置は前記セキュア素子の外部にあり、
    ‐前記セキュア素子に送信されるデータを取得するためのモジュールと、
    ‐前記セキュア素子の前記コード記憶領域への前記取得されたデータの読み込みにより変更される前記コード記憶領域のイメージをシミュレートするためのモジュールと、
    ‐全体として前記コード記憶領域の前記イメージ署名を計算するためのモジュールと、
    ‐前記セキュア素子に前記取得されたデータと前記計算された署名を送信するモジュールと、を備える装置。
  16. 請求項15に記載の安全に行う装置と請求項14に記載のセキュア素子を備えるシステムであって、前記外部装置は前記安全に行う装置であることを特徴とするシステム。
JP2016558317A 2014-03-25 2015-03-25 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと Active JP6585072B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1452519A FR3019347B1 (fr) 2014-03-25 2014-03-25 Securisation du chargement de donnees dans une memoire non-volatile d'un element securise
FR1452519 2014-03-25
PCT/FR2015/050758 WO2015145071A1 (fr) 2014-03-25 2015-03-25 Sécurisation du chargement de données dans une mémoire non-volatile d'un élément sécurisé

Publications (2)

Publication Number Publication Date
JP2017509082A true JP2017509082A (ja) 2017-03-30
JP6585072B2 JP6585072B2 (ja) 2019-10-02

Family

ID=50780770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016558317A Active JP6585072B2 (ja) 2014-03-25 2015-03-25 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと

Country Status (9)

Country Link
US (1) US10268845B2 (ja)
EP (1) EP3123387B1 (ja)
JP (1) JP6585072B2 (ja)
KR (1) KR102036411B1 (ja)
CN (1) CN106133739B (ja)
ES (1) ES2734370T3 (ja)
FR (1) FR3019347B1 (ja)
PL (1) PL3123387T3 (ja)
WO (1) WO2015145071A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019012952A1 (ja) * 2017-07-13 2019-01-17 株式会社デンソー 電子制御装置、プログラム改ざん検知方法、プログラム改ざん検知方法のプログラム、およびコンピュータ読み出し可能持続的有形記録媒体

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3086254A1 (en) * 2015-04-22 2016-10-26 Gemalto Sa Method of managing applications in a secure element when updating the operating system
KR102453705B1 (ko) * 2015-09-25 2022-10-11 삼성전자주식회사 호스트의 정당성 여부에 따라 선택적으로 결제 기능을 온(on)하는 결제 장치의 동작 방법
KR102538096B1 (ko) * 2016-09-13 2023-05-31 삼성전자주식회사 어플리케이션을 검증하는 디바이스 및 방법
WO2018227729A1 (zh) * 2017-06-14 2018-12-20 华为技术有限公司 一种嵌入式通用集成电路卡配置文件的管理方法及装置
DE102017006950A1 (de) * 2017-07-21 2019-01-24 Giesecke+Devrient Mobile Security Gmbh Aufrechterhaltung einer Netzwerkverbindung
US11552807B2 (en) 2017-09-18 2023-01-10 Huawei Technologies Co., Ltd. Data processing method and apparatus
GB2579034B (en) * 2018-11-15 2021-05-05 Trustonic Ltd Software installation method
FR3105853B1 (fr) * 2019-12-31 2023-01-06 Proton World Int Nv Système embarqué
KR102481272B1 (ko) * 2020-11-17 2022-12-26 오토아이티(주) 보안성 및 신뢰성이 향상된 자동 실행 스크립트 파일의 생성 장치 및 방법과, 이의 실행 장치 및 방법
FR3118218B1 (fr) * 2020-12-21 2024-02-16 St Microelectronics Rousset Procédé pour valider un module logiciel externe en vue de son utilisation par un système sur une puce

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322253A (ja) * 1999-05-14 2000-11-24 Namco Ltd セキュリティ・システム
JP2006039888A (ja) * 2004-07-27 2006-02-09 Hitachi Ltd ホスティング環境を安全に構築する方法及びシステム
WO2008018457A1 (fr) * 2006-08-10 2008-02-14 Panasonic Corporation Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing

Family Cites Families (7)

* 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
CA2400204C (en) * 2000-02-17 2011-04-19 General Instrument Corporation Method and apparatus for providing secure control of software or firmware code downloading and secure operation of a computing device receiving downloaded code
JP4186466B2 (ja) * 2002-01-16 2008-11-26 ソニー株式会社 コンテンツ配信システム、コンテンツ配信方法、および情報処理装置、並びにコンピュータ・プログラム
KR100617904B1 (ko) * 2005-07-21 2006-08-30 주식회사 하이스마텍 스마트카드에 복수의 카드식별정보를 설치 및 관리할 수있는 스마트카드 관리시스템 및 그 방법
US8239686B1 (en) * 2006-04-27 2012-08-07 Vudu, Inc. Method and system for protecting against the execution of unauthorized software
WO2012127266A1 (en) * 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
FR2993682B1 (fr) 2012-07-20 2014-08-22 Oberthur Technologies Mise a jour d'un systeme d'exploitation pour element securise

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322253A (ja) * 1999-05-14 2000-11-24 Namco Ltd セキュリティ・システム
JP2006039888A (ja) * 2004-07-27 2006-02-09 Hitachi Ltd ホスティング環境を安全に構築する方法及びシステム
WO2008018457A1 (fr) * 2006-08-10 2008-02-14 Panasonic Corporation Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée
US20100153746A1 (en) * 2006-08-10 2010-06-17 Matsushita Electric Industrial Co., Ltd. Memory controller, secure memory card, and secure memory card system
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019012952A1 (ja) * 2017-07-13 2019-01-17 株式会社デンソー 電子制御装置、プログラム改ざん検知方法、プログラム改ざん検知方法のプログラム、およびコンピュータ読み出し可能持続的有形記録媒体
JP2019020872A (ja) * 2017-07-13 2019-02-07 株式会社デンソー 電子制御装置、プログラム改ざん検知方法
US11392722B2 (en) 2017-07-13 2022-07-19 Denso Corporation Electronic control device, program falsification detection method, and computer readable non- transitory tangible storage medium

Also Published As

Publication number Publication date
WO2015145071A1 (fr) 2015-10-01
US20170109546A1 (en) 2017-04-20
JP6585072B2 (ja) 2019-10-02
FR3019347A1 (fr) 2015-10-02
EP3123387A1 (fr) 2017-02-01
EP3123387B1 (fr) 2019-03-13
ES2734370T3 (es) 2019-12-05
KR20160136386A (ko) 2016-11-29
KR102036411B1 (ko) 2019-10-24
PL3123387T4 (pl) 2019-09-30
PL3123387T3 (pl) 2019-09-30
US10268845B2 (en) 2019-04-23
FR3019347B1 (fr) 2017-07-21
CN106133739B (zh) 2020-03-17
CN106133739A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
JP6585072B2 (ja) 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと
KR101756692B1 (ko) 다이나믹 보안모듈 단말장치 및 그 구동방법
US10021104B2 (en) Method for operating a security element
CN105574414A (zh) 将文件加载到电子装置中的随机存取存储器中的方法和相关联电子装置
WO2014206170A1 (zh) 一种验证方法及设备
US20170124339A1 (en) Implementing method for javacard application function expansion
US11366911B2 (en) Cryptography module and method for operating same
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
CN111093190B (zh) 写入关键数据的方法、装置、系统、电子设备及存储介质
KR20230019032A (ko) 사전 개인화된 보안 요소 및 내장된 개인화
CN115688120A (zh) 安全芯片固件导入方法、安全芯片及计算机可读存储介质
JP6610060B2 (ja) 中継装置、プログラム及び情報処理システム
CN115729568A (zh) 程序烧录保护方法、装置、烧录器及板卡
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
CN112115477A (zh) 内核修复方法、装置、电子设备及存储介质
US10715527B2 (en) Method of managing profiles in a secure element
JP6379688B2 (ja) 移動体通信端末、サーバー、情報処理システム、情報処理方法及びsim
CN111970124B (en) Computer factory mode control method, device, computer equipment and storage medium
CN111124462B (zh) 一种嵌入式多媒体卡更新方法、装置、服务器和存储介质
KR20090059346A (ko) Otp 영역을 이용한 imei 복제 방지 기능을 갖는단말기 및 그 제어방법
JP2014182467A (ja) 情報記憶媒体、データ選択処理プログラム、及びデータ選択処理方法
JP6520090B2 (ja) Icカードシステム,icカードおよびicカード管理装置
CN112512034A (zh) 终端快速加载用户识别卡文件方法、装置、计算机设备
CN114090056A (zh) 程序升级方法、电子设备及可读存储介质
CN116339786A (zh) 一种启动基线固件升级的方法、装置及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190904

R150 Certificate of patent or registration of utility model

Ref document number: 6585072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250