説明

保護されたメモリ・アクセスを用いたスマートカード

スマートカードは、スマートカード・チップを備える基板を含み、スマートカード・チップは、その基板上に形成され、スマートカードは、更に、スマートカード・チップに作用的に接続された、例えばフラッシュROMなどの、2次メモリ・デバイスを含む。2次メモリ・デバイスは、それぞれが固有のシーケンス番号と関連付けられた複数のデータ・ページを格納することができ、そのシーケンス番号は、データ・ページとは別個に格納され、従って、ページが読み取られるとき、そのページを認証するために、ページに伴って取り出されたシーケンス番号は、格納されたシーケンス番号と比較することができる。シーケンス番号を格納するためにスマートカード上で使用されるメモリを最小限にするために、格納されるシーケンス番号のうちの幾つかは、2次メモリ・デバイスに格納される少なくとも1つのデータ・ページ内に格納され、スマートカード・チップに格納されているその少なくとも1つのページに対するシーケンス番号、または複数のシーケンス番号は、排他的論理和をとり、その結果として生じるダイジェストは、スマートカードEEPROMに格納される。特定のデータ・ページに関連付けられたシーケンス番号は、ページが変更または更新される度に増分される。各データ・ページ毎のシーケンス番号は、ランダムに生成された値に初期設定され、従って、そのページに対する更新の合計の数からシーケンス番号を導き出すことはできない。従って、本発明のスマートカードは、セキュリティを損なうことなく拡張されたメモリの使用を可能にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、改良されたスマートカードに関する。スマートカードは、その形状がしばしば矩形である基板を含み、この基板は、カード・リーダと対話するデータおよび/またはプログラムを格納することができる電子チップと一体化して形成されている。
【背景技術】
【0002】
スマートカードは、識別および認証システムにおいてますます使用されるようになっているが、今日まで、その有用性は、チップを形成するのに使用されるダイ(die)の寸法によってメモリ容量が制限されることにより、限られたものとなっている。オン・カード・アプリケーションがますます精巧になるのに伴い、このようなメモリ容量の制限は、ますます問題となっている。
【0003】
フラッシュROMなどの2次メモリ・チップを付加することにより、カードの記憶容量が大幅に拡張することができることが認識されている。ただし、このことに関する問題は、スマートカードが有用であるためには、2次メモリ・デバイスに保持されるデータは、スマートカード・チップ内部に格納されているデータと同様に、そのセキュリティが良好でなければならないことである。
【発明の開示】
【課題を解決するための手段】
【0004】
本発明によるスマートカードは、基板上に、動作可能なようにスマートカード・チップに接続された2次メモリ・デバイスを、備えることを特徴とする。
好ましくは、2次メモリ・デバイスは、複数のデータ・ページを格納する能力があり、各ページは、固有のシーケンス番号と関連付けられ、シーケンス番号は、データ・ページとは別個に格納され、従って、ページが読み取られるときに、ページを認証するために、そのページを用いて取り出されたシーケンス番号を、格納されたシーケンス番号と比較することができるようになる。各ページは、ページおよびチップ固有キーによって、暗号化され署名される。
【発明を実施するための最良の形態】
【0005】
次に、図面を参照して、本発明によるスマートカードの実施形態を例として詳細に説明する。
図1から分かるように、本発明のスマートカード10は、従来のスマートカード基板と類似しているが2つの電子チップを設ける単一の基板12と、安全なマイクロコントローラの役割をする1次スマートカード・デバイス14と、スマートカード・マイクロコントローラに接続された外部メモリ(external memory、XMEM)・チップ16と、を含む。XMEMデバイス16は、フラッシュROMとすることが好都合であるが、他の任意の不揮発性または電子的メモリ・デバイスを使用することもできる。
【0006】
安全に通信し、スマートカードに接続されたXMEMにデータを格納するために、低い水準において、スマートカード・オペレーティング・システムとXMEMとの間での通信機能が、必要とされる。これらの機能は、XMEMにおいてデータを読み取り更新するために、高水準の機能によって呼び出される。XMEMは、例えば、ATMELのAT45DB321B 4メガバイト・シリアルDataFlash(ATMEL AT45DB321B 4Mbyte Serial Data Flash)とすることができる。XMEMとの通信は、ATMELのAT903232CSシリアル周辺インターフェース(serial peripheral interface、「SPI」)ハードウェアを用いて実装され、入力/出力線のうちの1つが、チップ選択に使用される。ただし、上記の原理は、シリアル・フラッシュ・デバイスに相互接続するための使用可能な入力/出力を有する、任意のスマートカード・マイクロ・コントローラに適用される。
【0007】
この例では、各XMEMページは、528バイトを有する。ページ構造は、図2に示されている。最初の8バイト(ページ・ヘッダ)は、ページが消去されないことを指し示すための1バイト(0xFFでない値)と、ランダム・データの5バイトと、ページ番号を指し示す2バイトと、シーケンス番号の1バイトと、を含む。ページ・ヘッダの後には、512バイトのデータが続く。末尾の8バイトは、512データ・バイトの暗号化ブロック・チェーンを用いて暗号化されたページ・ヘッダのコピーを含む。ページ・ヘッダは、暗号化されておらず、従って、チップは、ページ・キーを導き出すことが可能になる。
【0008】
本発明者が提供するXMEMドライバは、セキュリティと信頼性を高めるために以下の機能を実装する。
・ページ内の512データ・バイトは、トリプルDES(データ暗号化規格)CBCで暗号化される。データに対するどのような変更も、MAC(メッセージ認証暗号文(Message Authentication Cryptogram))を、変更し無効にする。
・各ページは、8バイトのトリプルDES MACを含む。
・読み取られたページが要求されたページであることを確認できるようにするために、各ページは、そのページ番号で暗号的に組み込まれている。ページ番号は、変更されないようにページMACによって保護される。
・ページ・キーを導き出すために使用されるマスタDESキーは、チップに固有であり、最初にチップがリセットされたときに内部に自動的に生成される。これらのDESキーは、外部から読み取り更新することはできない。
・ページを暗号化し署名するためのDESキーは、ページに対する更新毎に、マスタ・キーと、ランダム・データと、ページ番号と、ページ・シーケンス番号とから再生成される。これは、キー従ってMACがページの更新毎に変更されるのに伴い、キーを得るための既知のテキスト攻撃(text attack)の複雑さを増大させる追加のセキュリティ機能である。
・各ページは、ページに対する更新毎に増分される1バイトのシーケンス番号を含む。シーケンス番号は、ページ読取り動作の際に検証される。シーケンス番号は、ランダム数であり、ページに対する更新毎に変更され、従って、シーケンス番号は、ページに対する更新の合計の数から導き出すことができない。ページ・シーケンス番号の使用は、前の内容を同じページに与えることによって、攻撃のための複雑さを増大させる。これは、シーケンス番号なしでも、ページが有効なMACおよび有効なページ番号を有するときに可能である。
・XMEMに対するすべての更新は、プログラミング後にXMEMを読み取ることにより検証される。
・ハードウェア抽象化層(「HAL」)機能は、終了する前にページの読取りまたは更新を3回試みる。
・ページが消去されたことが分かった場合、ページは、読み取りの際にランダム値に初期化される。従って、外部からページを消去して、既知の消去された値のページを、内部で読み取られるように強制することは不可能である。
【0009】
(シーケンス番号)
ATMELのAT45DB321Bは、8192ページのフラッシュ・メモリを含む。上述のように、XMEMの各ページは、別個のシーケンス番号(1バイト)を有する。シーケンス番号のコピーは、読取り時にページと比較するために、他の場所に格納されなければならない。シーケンス番号のコピーが変更されるのを差し止めるために、それは、保護されなければならないこのことは、すべてのシーケンス番号を、スマートカード内部で格納することにより達成される。これは、シーケンス番号に対して、8192バイトのEEPROMを用意する必要があるため、すべての事例で適切となり得るものではない。この問題は、32ページのXMEMを用意して、他の8160ページについて、256個のシーケンス番号をそれぞれ格納することにより解決する。これらのページは、通常通り保護されているが、そのページ番号は、スマートカードEEPROMに格納される。任意選択で、この32個のシーケンス番号は、スマートカードEEPROMに格納されるシングル・バイトを作成するために、排他的論理和をとることができる。この結果、EPROMの使用は、8192バイトから節約され、256バイトになる。
【0010】
次に、図3では、ページの外部読取りおよび更新の関数の呼出しシーケンスを以下に詳細に説明する。
【0011】
readXMEMPage
void readXMEMPage(word pageNum)
この関数は、XMEMからページを読み取る。この関数は、getPageSeqNum関数を呼び出して、期待されたページ・シーケンス番号を読み取り、それを受け取ったページと比較する。
この関数は、doRead関数を呼び出して、ページの実際の読取りと、復号化と、MAC検証とを行う。
ページ・シーケンス番号が誤りの場合は、エラーが返される。
【0012】
updateXMEMPage
void readXMEMPage(wordpage Num)
この関数は、XMEM内のページを更新し、既存のページ・シーケンス番号を取り出すために、前もってページが読み取られるよう求める。
この関数は、loadPageKeys関数を呼び出して、ページ番号と、更新されたシーケンス番号と、ランダム・データに基づいて、ページに対する新しいキーを導き出す。
この関数は、プログラム・コマンドおよびデータをXMEMチップに送るためのSPIハードウェアを使用して、XMEMページの実際の更新を行う。
この関数は、doRead関数を呼び出して、XMEMにおいて、更新されたデータが正しくプログラムされていることを検証する。
【0013】
doRead:(内部関数)
void doRead(word pageNum,byte mode)
この関数は、XMEMからページを読み取り、または、XMEM内のページを検証する。これには2つのモードがある。
1.ページを読み取り、ページ・キーを導き出すためにloadPageKeysを呼び出して、データを復号し、MACおよびページ番号が正しいことを検査する。
2.ページを読み取って、XMEMページを更新するために送られた暗号化データが正しくプログラムされたことを検証する。
【0014】
laodPageKeys
void loadPageKeys(byte mode,word pageNum)
この関数は、ランダム・データと、ページ番号と、増分されたページ・シーケンス番号とを使用してページを更新する場合、または、それを読み取るために最初のXMEMページを多様化文字列として使用するとき、ページを暗号化/復号化するためにキーをロードし、キー多様化文字列を生成する。この多様化文字列は、チップ、ページ、およびシーケンス固有キーを与えるために、チップ固有マスタXMEMキーを用いて暗号化される。このキーは、DESハードウェア内にロードされる。
【0015】
getPageSeqNum
byte readXMEMPage(word pageNum)
この関数は、ページのページ・シーケンス番号を返す。この関数は、readXMEMPage関数により呼び出されて、ページ・シーケンス番号を返す。それは、要求された元のページ・シーケンス番号を含むXMEMページを読み取るために、readXMEMPage関数を再帰呼出しする。
【図面の簡単な説明】
【0016】
【図1】本発明による、スマートカード・チップおよび2次メモリ・デバイスを有するスマートカードを示す図である。
【図2】本発明のスマートカードで使用するための、外部メモリ(「XMEM」)ページの構造を示す図である。
【図3】本発明のスマートカード内で使用されるXMEMソフトウェアの呼出しツリーを示す概略図である。

【特許請求の範囲】
【請求項1】
スマートカード・チップをその上に設ける基板を備えるスマートカードであって、
前記基板上の2次メモリ・デバイスであって、前記スマートカード・チップと動作可能なように接続される2次メモリ・デバイスを、
備えることを特徴とするスマートカード。
【請求項2】
請求項1に記載のスマートカードであって、前記2次メモリ・デバイスは、フラッシュROMである、スマートカード。
【請求項3】
請求項1又は請求項2に記載のスマートカードであって、
前記2次メモリ・デバイスは、それぞれが固有のシーケンス番号と関連付けられた複数のデータ・ページを、格納する能力があり、
前記シーケンス番号は、前記データ・ページとは別個に格納され、
従って、前記ページが読み取られるときに、前記ページを認証するために、前記ページに伴って取り出された前記シーケンス番号は、前記格納されたシーケンス番号と比較されることができる、スマートカード。
【請求項4】
請求項3に記載のスマートカードであって、前記格納されたシーケンス番号は、前記スマートカード・チップに格納されている、スマートカード。
【請求項5】
請求項3に記載のスマートカードであって、前記格納されたシーケンス番号のうち幾つかは、前記2次メモリ・デバイスに格納された前記複数のデータ・ページの少なくとも1つのページ内に格納され、この少なくとも1つのページに対する前記シーケンス番号は、前記スマートカード・チップに格納されている、スマートカード。
【請求項6】
請求項3に記載のスマートカードであって、前記シーケンス番号は、スマートカードEEPROMに格納されるダイジェストまたはハッシュを作成するために、排他的論理和をとられる、スマートカード。
【請求項7】

請求項3から請求項5の何れか1項に記載のスマートカードであって、特定のデータ・ページと関連付けられた前記シーケンス番号は、前記ページが変更または更新される度に、変更される、スマートカード。
【請求項8】
請求項3から請求項6の何れか1項に記載のスマートカードであって、各データ・ページ毎のシーケンス番号は、ランダムに生成された値に初期設定される、スマートカード。
【請求項9】
請求項3から請求項8の何れか1項に記載のスマートカードであって、各ページは、そのページ番号のコピーを含む、スマートカード。
【請求項10】
請求項3から請求項9の何れか1項に記載のスマートカードであって、各ページの前記データは、暗号化される、スマートカード。
【請求項11】
請求項3から請求項10の何れか1項に記載のスマートカードであって、ページ・データの保全性は、暗号MACによって保護される、スマートカード。
【請求項12】
請求項3から請求項11の何れか1項に記載のスマートカードであって、各ページの暗号化およびMACは、ページおよびチップに固有のキーを使用して行われる、スマートカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2006−518498(P2006−518498A)
【公表日】平成18年8月10日(2006.8.10)
【国際特許分類】
【出願番号】特願2006−500246(P2006−500246)
【出願日】平成16年1月26日(2004.1.26)
【国際出願番号】PCT/GB2004/000303
【国際公開番号】WO2004/066196
【国際公開日】平成16年8月5日(2004.8.5)
【出願人】(504218369)エセブス・リミテッド (6)
【Fターム(参考)】