JP2018148387A - Icカードおよびコンピュータプログラム - Google Patents

Icカードおよびコンピュータプログラム Download PDF

Info

Publication number
JP2018148387A
JP2018148387A JP2017041505A JP2017041505A JP2018148387A JP 2018148387 A JP2018148387 A JP 2018148387A JP 2017041505 A JP2017041505 A JP 2017041505A JP 2017041505 A JP2017041505 A JP 2017041505A JP 2018148387 A JP2018148387 A JP 2018148387A
Authority
JP
Japan
Prior art keywords
authentication
counter
value
card
trial
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
JP2017041505A
Other languages
English (en)
Other versions
JP6844328B2 (ja
Inventor
隆史 工藤
Takashi Kudo
隆史 工藤
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2017041505A priority Critical patent/JP6844328B2/ja
Publication of JP2018148387A publication Critical patent/JP2018148387A/ja
Application granted granted Critical
Publication of JP6844328B2 publication Critical patent/JP6844328B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】認証に成功する毎にカウントアップされるカウンタ値に基づいて動的に暗号鍵を生成するICカードに対して,サイドチャネル攻撃に対する耐タンパー性を持たせる。【解決手段】ICカード1は,認証の成功回数をカウントするための成功回数カウンタ110と,認証の試行回数をカウントするための試行回数カウンタ111を連結させた構成の認証カウンタ11と,成功回数カウンタ110の値に基づく派生鍵を暗号演算により生成するときに用いるマスター鍵12をNVM23に記憶し,ICカード1が備える認証コマンド10は,試行回数カウンタ111の値を繰り返し回数として所定のダミー処理を繰り返し実行する認証遅延処理を実行した後に,成功回数カウンタ110の値に基づく派生鍵を用いた認証処理を実行する。【選択図】図2

Description

本発明は,ICカードに関する発明で,更に詳しくは,サイドチャネル攻撃に対する耐タンパー性をICカードに持たせる技術に関する。
ICカードが暗号演算処理で用いる暗号鍵を解読する攻撃手法の一つとして,サイドチャネル攻撃がある。サイドチャネル攻撃とは,電流などの物理現象を計測して得られる物理量であるサイドチャネルを観察することにより,ICカードが暗号演算処理で用いる暗号鍵を推定する攻撃手法である。ICカードのサイドチャネルとしては,ICカードの消費電流やICカードの処理時間などが知られており,暗号演算処理に係るICカードの消費電流をサイドチャネルとして観察するサイドチャネル攻撃は電流解析攻撃と称され,暗号演算処理中に係るICカードの処理時間をサイドチャネルとして観察するサイドチャネル攻撃はタイミング解析攻撃と称されている。
サイドチャネル攻撃に対して耐タンパー性をICカードに持たせる手法として,暗号演算処理中または暗号演算処理の前後にダミー処理を挿入する手法が開示されている(例えば,特許文献1)。暗号演算処理の前または暗号演算処理の後にダミー処理を挿入することで,暗号演算処理に似た消費電流をICカードの消費電流に含ませることができ,ICカードの消費電流を攪乱できる。また,暗号演算処理の前または暗号演算処理の後にダミー処理を挿入することで,暗号演算処理に係る時間(動作タイミング)の画一化が行なえる。
一般的に,認証機能を有するICカードでは,認証の再試行回数が定められているため,同じICカードに対してサイドチャネル攻撃を何度も実行できないが,認証に成功する毎にカウントアップされるカウンタ値に基づいて動的に暗号鍵を生成するICカードの場合,認証に成功しない限り,同一のカウンタ値を利用して何度でも暗号鍵を生成できてしまう。
例えば,非特許文献1で規格されたICカードは,相互認証(Mutual authentication)に成功した回数のカウントに用いるカウンタ(Sequence Counter)と静的なマスター鍵(Static Secure Channel Key)をNVM(Non-volatile memory)に記憶し,相互認証の成功回数とマスター鍵を用いてセッション鍵や認証コードを生成する。このため,相互認証に成功しない限り同じ値のカウンタ値を使用して,セッション鍵や認証コードの生成を何度も試行できるため,ダミー処理を単に認証処理に含ませるだけでは,セッション鍵やその派生元となるマスター鍵が推定される恐れがあった。
特開2001−266103号公報
Global Platform Card Specification Version 2.2
そこで,本発明は,認証に成功する毎にカウントアップされるカウンタ値に基づいて動的に暗号鍵を生成するICカードにおいて,サイドチャネル攻撃に対する耐タンパー性を高めることを目的とする。
上述した課題を解決する本発明は,認証の成功回数をカウントするための成功回数カウンタと,認証の試行回数をカウントするための試行回数カウンタと,前記成功回数カウンタの値に基づく派生鍵を暗号演算により生成するときに用いるマスター鍵をNVMに記憶し,前記試行回数カウンタの値をNVMから読取り,前記試行回数カウンタの値を繰り返し回数として所定のダミー処理を繰り返し行う認証遅延処理を実行した後,NVMから読み取った前記成功回数カウンタの値を含むデータを前記マスター鍵により暗号演算して生成した派生鍵を用いた認証処理を実行し,前記認証処理に成功すると,前記成功回数カウンタの値のカウントアップと前記試行回数カウンタの値の初期化を行い,前記認証処理に失敗すると,前記試行回数カウンタの値をカウントアップする認証コマンドを備えたことを特徴とするICカードである。なお,本発明では,前記認証コマンドとしてICカードを動作させるためのコンピュータプログラムも請求する。
上述した本発明に係るICカードは,サイドチャネル攻撃に対する耐タンパー性を高めるために,前記認証処理を開始する前,前記試行回数カウンタの値を繰り返し回数として所定のダミー処理を繰り返し行う前記認証遅延処理を実行するように構成されている。
本実施形態に係るICカードのハードウェア構成を説明する図。 本実施形態に係るICカードのブロック図。 ICカードが記憶する認証カウンタを説明する図。 ICカードが備える認証コマンドの動作を説明するフロー図。 ICカードが備える認証コマンドの動作を説明する捕捉図。
ここから,本発明の好適な実施形態を記載する。なお,以下の記載は本発明の技術的範囲を束縛するものでなく,理解を助けるために記述するものである。
図1は,本実施形態に係るICカード1のハードウェア構成を説明する図である。本実施形態に係るICカード1は,プラスチックなどのカード基材にICチップ2を埋め込んだカード媒体である。図1では,コンタクト端子2aを介して外部のホスト装置と物理的に接触して通信する接触型としてICカード1を図示しているが,ICカード1は,リーダライタと非接触で通信する非接触型であってもよい。また,図1では,ICカード1の外形は,ISO/IEC 7816のID−1型であるが, ETSI TS 102 221等で規格化されている小型の形態(Plug-in UICC,Mini-UICC,4FF)でもよい。
図1に図示したように,ICカード1に埋め込まれるICチップ2は,データの入出力を行うI/O24,各種演算を行うCPU(Central Processing Unit)20,一時的にデータを記憶する際に用いるメモリであるRAM(Random Access Memory)22,ICカード1が備えるコマンドのプログラムなどを記憶するROM(Read-Only Memory)21に加え,データを記憶する電気的に書き換え可能なメモリであるNVM23を備える。
図2は,本実施形態に係るICカード1のブロック図である。図2で図示したように,本実施形態に係るICカード1は,認証処理を実行する認証コマンド10を備える。例えば,ICカード1が非特許文献1の規格に準拠している場合,セキュアチャネル(Secure Channel)を構築する際に用いられるEXTERNAL AUTHENTICATEコマンドに認証コマンド10を適用できる。なお,本実施形態では,認証コマンド10に係るコンピュータプログラムをROM21に実装させているが,認証コマンド10に係るコンピュータプログラムはNVM23に備えさせることもできる。
また,本実施形態に係るICカード1は,認証コマンド10が利用するデータとして,マスター鍵12と認証カウンタ11をNVM23に記憶する。ICカード1が非特許文献1の規格に準拠している場合,マスター鍵12はStatic Secure Channel Keyに該当するDES暗号鍵になるが,認証カウンタ11の構造は非特許文献1のSequence Counterと異なる。
図3は,ICカード1が記憶する認証カウンタ11を説明する図である。成功回数カウンタ110と試行回数カウンタ111それぞれを単独のカウンタとして扱う構成でも構わないが,本実施形態では,成功回数カウンタ110と試行回数カウンタ111を認証カウンタ11に含ませ,本実施形態に係る認証カウンタ11は,認証に成功した回数のカウントに用いるカウンタである2バイトの成功回数カウンタ110と,認証に試行した回数のカウントに用いるカウンタである2バイトの試行回数カウンタ111を連結させた構成になっている。
成功回数カウンタ110を用いてカウントする事象(認証の成功回数)と試行回数カウンタ111を用いてカウントする事象(認証の試行回数)は異なるが,本実施形態では,成功回数カウンタ110の上位バイト,成功回数カウンタ110の下位バイト,試行回数カウンタ111の上位バイトそして試行回数カウンタ111の下位バイトの順に連続してNVM23に配置し,成功回数カウンタ110を更新する時(例えば,カウントアップする時)も,試行回数カウンタ111を更新する時(例えば,カウントアップする時)も認証カウンタ11が更新されるようにしている。
本実施形態において,認証カウンタ11の成功回数カウンタ110と認証カウンタ11の試行回数カウンタ111それぞれの用途は異なる。成功回数カウンタ110の値は,図外のホスト装置がICカード1へ送信する認証コードを認証するための派生鍵の生成に用いられ,認証カウンタ11に含ませている試行回数カウンタ111の値は,後述する認証遅延処理で用いられる。
図4は,ICカード1が備える認証コマンド10の動作を説明するフロー図で,図5は,ICカード1が備える認証コマンド10の動作を説明する捕捉図である。
ICカード1は備える認証コマンド10は,認証コマンド10のコマンドAPDU(Application Protocol Data Unit)を図外のホスト装置から受信すると起動し,認証コマンド10は,この時点でNVM23に記憶されている認証カウンタ11を読み取る処理を実行する(S1)。図5(a)で図示したように,認証コマンド10が,NVM23に記憶されている認証カウンタ11を読み取ると,NVM23に記憶されている認証カウンタ11が,ICチップ2の揮発性メモリ(ここでは,RAM22)にコピーされる。
次に,認証コマンド10は,RAM22に格納した認証カウンタ11に含まれる試行回数カウンタ111の値を確認する(S2)。具体的に,認証コマンド10は,NVM23から読み取った認証カウンタ11の下位2バイトが「0x0000(0xは16進表記を意味する)」と一致するか確認する。
認証コマンド10は,NVM23から読み取った試行回数カウンタ111の値が「0x0000」でなければ,試行回数カウンタ111の値を繰り返し回数として所定のダミー処理を繰り返して行う認証遅延処理(S3)を実行する。例えば,試行回数カウンタ111の値が「0x0001」ならば,認証遅延処理(S3)で実行されるダミー処理の回数は1回になる。また,試行回数カウンタ111の値が「0x000F」ならば,認証遅延処理(S3)で実行されるダミー処理の回数は15回になる。
試行回数カウンタ111の値が「0x0000」の場合は試行回数カウンタ111の値を確認(S2)した後,または,試行回数カウンタ111の値が「0x0000」でない場合は認証遅延処理(S3)を実行した後,認証コマンド10は,RAM22に格納している試行回数カウンタ111の値とマスター鍵12を用いた認証処理(S4)を実行する。
ICカード1の認証コマンド10は,認証処理(S4)において,成功回数カウンタ110の値とマスター鍵12を少なくとも用いて派生鍵を生成する処理と,派生鍵を用いて認証コマンド10のコマンドAPDUに含まれる認証コードを認証する処理を実行する。例えば,ICカード1が非特許文献1の規格に準拠している場合,ICカード1は,成功回数カウンタ110の値を含む派生データ(Derivation Data)をマスター鍵12であるStatic Secure Channel Keyにより暗号化することで派生鍵となるセッション鍵を生成する。また,ICカード1が非特許文献1の規格に準拠している場合,ICカード1は,派生鍵となるセッション鍵を利用して,EXTERNAL AUTHENTICATEコマンドのコマンドAPDUに含まれる認証コード(Host cryptogram)などを認証する。
認証コマンド10は,認証処理(S4)の結果に応じて処理を分岐する(S5)。認証処理(S4)に成功した場合,認証コマンド10は,NVM23に記憶されている認証カウンタ11に含まれる成功回数カウンタ110の値をカウントアップ(一つだけインクリメント)し,更に,この認証カウンタ11に含まれる試行回数カウンタ111の値を初期化する処理(S6a)を実行して,図4の手順は終了する。
図5(b)で図示したように,処理(S6a)において,認証コマンド10は,RAM22に格納している認証カウンタ11に含まれる成功回数カウンタ110の値を一つだけインクリメントし,更に,この認証カウンタ11に含まれる試行回数カウンタ111の値を初期値(例えば,0x0000h)に書き換えた後,RAM22に格納している更新後の認証カウンタ11の値をNVM23の認証カウンタ11に上書きする。
また,S5において,認証コードの認証に失敗した場合,認証コマンド10は,NVM23に記憶されている認証カウンタ11に含まれる試行回数カウンタ111の値を一つだけインクリメントする処理(S6b)を実行して,図4の手順は終了する。
図5(c)で図示したように,処理(S6b)において,認証コマンド10は,RAM22に格納している認証カウンタ11に含まれる成功回数カウンタ110の値は変更せずこの認証カウンタ11に含まれる試行回数カウンタ111の値を一つだけインクリメントした後,RAM22に格納している更新後の認証カウンタ11の値をNVM23の認証カウンタ11に上書きする。
これまで説明したように,本実施形態に係るICカード1は,認証処理(S4)を実行する前に,認証処理(S4)に失敗する毎にカウントアップされる試行回数カウンタ111の値を繰り返し回数としてダミー処理を繰り返して行う認証遅延処理(S3)を実行するように構成されている。ICカード1のNVM23に記憶されているマスター鍵12等を推定するために,サイドチャネル攻撃が繰り返して実行された場合,基本的にはサイドチャネル攻撃が繰り返して実行される毎に認証処理(S4)に失敗するため,サイドチャネル攻撃が繰り返して実行された回数に応じて認証コマンド10の処理時間は長くなり,マスター鍵12等の推定は困難になる。なお,認証遅延処理(S3)で認証コマンド10が実行するダミー処理の内容は任意に決定できるが,暗号処理中に係るICカード1の消費電流の攪乱を目的とすると,ダミー処理,暗号演算を実行する処理とすることが望ましい。また,認証処理(S4)の成功または認証処理(S4)の失敗に係わらず認証カウンタ11は更新されるため,ICカード1の消費電流を観察しても認証の成功を推定できなくする効果も得られる。
1 ICカード
10 認証コマンド
11 認証カウンタ
110 成功回数カウンタ
111 試行回数カウンタ
12 マスター鍵
23 NVM

Claims (2)

  1. 認証の成功回数をカウントするための成功回数カウンタと,認証の試行回数をカウントするための試行回数カウンタと,前記成功回数カウンタの値に基づく派生鍵を暗号演算により生成するときに用いるマスター鍵をNVMに記憶し,前記試行回数カウンタの値をNVMから読み取り,前記試行回数カウンタの値を繰り返し回数として所定のダミー処理を繰り返し行う認証遅延処理を実行した後,NVMから読み取った前記成功回数カウンタの値を含むデータを前記マスター鍵により暗号演算して生成した派生鍵を用いた認証処理を実行し,前記認証処理に成功すると,前記成功回数カウンタの値のカウントアップと前記試行回数カウンタの値の初期化を行い,前記認証処理に失敗すると,前記試行回数カウンタの値をカウントアップする認証コマンドを備えたことを特徴とするICカード。
  2. 認証の成功回数をカウントするための成功回数カウンタと,認証の試行回数をカウントするための試行回数カウンタと,前記成功回数カウンタの値に基づく派生鍵を暗号演算により生成するときに用いるマスター鍵をNVMに記憶したICカードを動作させるためのコンピュータプログラムであって,前記試行回数カウンタの値をNVMから読み取り,前記試行回数カウンタの値を繰り返し回数として所定のダミー処理を繰り返し行う認証遅延処理を実行した後,NVMから読み取った前記成功回数カウンタの値を含むデータを前記マスター鍵により暗号演算して生成した派生鍵を用いた認証処理を実行し,前記認証処理に成功すると,前記成功回数カウンタの値のカウントアップと前記試行回数カウンタの値の初期化を行い,前記認証処理に失敗すると,前記試行回数カウンタの値をカウントアップする認証コマンドとしてICカードを動作させるためのコンピュータプログラム。
JP2017041505A 2017-03-06 2017-03-06 Icカードおよびコンピュータプログラム Active JP6844328B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017041505A JP6844328B2 (ja) 2017-03-06 2017-03-06 Icカードおよびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017041505A JP6844328B2 (ja) 2017-03-06 2017-03-06 Icカードおよびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2018148387A true JP2018148387A (ja) 2018-09-20
JP6844328B2 JP6844328B2 (ja) 2021-03-17

Family

ID=63588859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017041505A Active JP6844328B2 (ja) 2017-03-06 2017-03-06 Icカードおよびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6844328B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11289150B2 (en) 2020-06-02 2022-03-29 Samsung Electronics Co., Ltd. Memory system and operating method of the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1515507A1 (en) * 2003-09-09 2005-03-16 Axalto S.A. Authentication in data communication
US7941666B2 (en) * 1998-07-02 2011-05-10 Cryptography Research, Inc. Payment smart cards with hierarchical session key derivation providing security against differential power analysis and other attacks
WO2015071072A1 (en) * 2013-11-13 2015-05-21 Gemalto S.A. System and method for securing communications between a card reader device and a remote server

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941666B2 (en) * 1998-07-02 2011-05-10 Cryptography Research, Inc. Payment smart cards with hierarchical session key derivation providing security against differential power analysis and other attacks
EP1515507A1 (en) * 2003-09-09 2005-03-16 Axalto S.A. Authentication in data communication
JP2007505542A (ja) * 2003-09-09 2007-03-08 アクサルト・エス・アー データ通信における認証方法と該認証方法を実施するスマートカード
WO2015071072A1 (en) * 2013-11-13 2015-05-21 Gemalto S.A. System and method for securing communications between a card reader device and a remote server
JP2016537887A (ja) * 2013-11-13 2016-12-01 ジエマルト・エス・アー カードリーダデバイスとリモートサーバの間の通信を安全化するためのシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11289150B2 (en) 2020-06-02 2022-03-29 Samsung Electronics Co., Ltd. Memory system and operating method of the same

Also Published As

Publication number Publication date
JP6844328B2 (ja) 2021-03-17

Similar Documents

Publication Publication Date Title
KR102445518B1 (ko) 장치 키 보호
Oren et al. On the effectiveness of the remanence decay side-channel to clone memory-based PUFs
US11183083B2 (en) Cryptographic device and memory based PUF
US9734091B2 (en) Remote load and update card emulation support
EP2996277B1 (en) Securing a crytographic device against implementation attacks
WO2016042287A1 (en) Puf and address dependent data encryption
BR102018015221A2 (pt) Método para compartilhamento seguro de informações e sistema relacionado
Courtois et al. Fault-algebraic attacks on inner rounds of DES
Tunstall Smart card security
JP2008181225A (ja) Icカード
CN112069551A (zh) 电子电路
Oswald et al. When reverse-engineering meets side-channel analysis–digital lockpicking in practice
JP6844328B2 (ja) Icカードおよびコンピュータプログラム
Rossudowski et al. A security privacy aware architecture and protocol for a single smart card used for multiple services
US9860062B2 (en) Communication arrangement and method for generating a cryptographic key
US11132466B2 (en) Method for determining an integrity sum, associated computer program and electronic entity
Malina et al. Assessment of cryptography support and security on programmable smart cards
JP2007067942A (ja) Icカード、および、icカード用プログラム
KR20190097083A (ko) 역계산 퍼지 추출기 및 인증을 위한 방법
Kasper et al. Sweet dreams and nightmares: Security in the internet of things
JP5724387B2 (ja) 携帯装置及び動的データの格納位置変更方法
EP2985724B1 (en) Remote load and update card emulation support
JP6950861B2 (ja) 電子情報記憶装置、icカード、演算決定方法、及び演算決定プログラム
JP6802975B2 (ja) セキュリティドメインを有するicカード
Chmielewski Exploiting Horizontal Leakage in Public Key Cryptosystems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201209

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: 20210126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210208

R150 Certificate of patent or registration of utility model

Ref document number: 6844328

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150