JP7017185B2 - 電子情報記憶装置、データ処理方法、及びデータ処理プログラム - Google Patents

電子情報記憶装置、データ処理方法、及びデータ処理プログラム Download PDF

Info

Publication number
JP7017185B2
JP7017185B2 JP2021024840A JP2021024840A JP7017185B2 JP 7017185 B2 JP7017185 B2 JP 7017185B2 JP 2021024840 A JP2021024840 A JP 2021024840A JP 2021024840 A JP2021024840 A JP 2021024840A JP 7017185 B2 JP7017185 B2 JP 7017185B2
Authority
JP
Japan
Prior art keywords
data
command
protocol
spi
external device
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.)
Active
Application number
JP2021024840A
Other languages
English (en)
Other versions
JP2021073633A (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.)
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 JP2021024840A priority Critical patent/JP7017185B2/ja
Publication of JP2021073633A publication Critical patent/JP2021073633A/ja
Application granted granted Critical
Publication of JP7017185B2 publication Critical patent/JP7017185B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

外部装置との間で通信を行うICカード等の技術分野に関する。
従来から、セキュリティデバイスの一例として、IC(Integrated Circuit)カードが知られている。例えば、特許文献1には、セキュリティーレベルの異なるマルチファンクションを拡張可能なICカードが提案されている。このICカードには、メモリカードユニットとSIMカードユニットを夫々コネクタ端子の所定の端子に専用的に接続して搭載することでマルチファンクション機能を実現している。しかし、このICカードは、メモリカードユニットとSIMカードユニットとの2つのメモリユニットを搭載しなければならないことから、広く普及させるという点では問題がある。
特許第4761479号
一方、従来から、通信インターフェイス及び通信プロトコル等に関してISO7816等の規格に準拠するICカードが広く普及している。このICカードは、耐タンパ性を有するデバイスとして、高いセキュリティを誇っている。しかしながら、今後、このICカードを、より幅広い用途で利用できるようにするためには、上記のように、広く普及しているICカード用の通信プロトコルを維持しつつ、例えば広く利用されているSPI(Serial Peripheral Interface)等のシリアル通信インターフェイスを基盤として動作させる新たな通信プロトコルが望まれる。
そこで、本発明は、このような点に鑑みてなされたものであり、広く普及しているICカード用の通信プロトコルを維持しつつ、シリアル通信インターフェイスを基盤として動作させる新たな通信プロトコルを実現することが可能な電子情報記憶装置、データ処理方法、及びデータ処理プログラムを提供することを目的とする。
上記課題を解決するために、請求項1に記載の発明は、外部装置との間で通信を行う電子情報記憶装置であって、前記外部装置からシリアル通信インターフェイスを介して送信されたコマンドデータであって、ICカード用の通信プロトコルに応じたデータを含み、且つ、前記ICカード用の通信プロトコルの種別を示すプロトコル選択バイトを含む前記コマンドデータを受信する受信手段と、前記受信手段により受信された前記コマンドデータ中の前記プロトコル選択バイトに基づいて、前記通信プロトコルに応じたデータが、APDU(Application Protocol Data Unit)プロトコルに応じたコマンドAPDUであるか、または、前記ICカード用のリセットであるかを解釈し、前記コマンドAPDUであると解釈した場合には当該コマンドAPDUに応じた処理を行う一方、前記リセットであると解釈した場合には当該リセットに応じた処理を行い、レスポンスデータを前記シリアル通信インターフェイスを介して前記外部装置へ送信する応答手段と、を備えることを特徴とする。
請求項2に記載の発明は、請求項1に記載の電子情報記憶装置において、前記シリアル通信インターフェイスは、SPI(Serial Peripheral Interface)であることを特徴とする。
請求項3に記載の発明は、外部装置との間で通信を行う電子情報記憶装置が備えるプロセッサにより実行されるデータ処理方法であって、前記外部装置からシリアル通信インターフェイスを介して送信されたコマンドデータであって、ICカード用の通信プロトコルに応じたデータを含み、且つ、前記ICカード用の通信プロトコルの種別を示すプロトコル選択バイトを含む前記コマンドデータを受信するステップと、前記受信された前記コマンドデータ中の前記プロトコル選択バイトに基づいて、前記通信プロトコルに応じたデータが、APDU(Application Protocol Data Unit)プロトコルに応じたコマンドAPDUであるか、または、前記ICカード用のリセットであるかを解釈し、前記コマンドAPDUであると解釈した場合には当該コマンドAPDUに応じた処理を行う一方、前記リセットであると解釈した場合には当該リセットに応じた処理を行い、レスポンスデータを前記シリアル通信インターフェイスを介して前記外部装置へ送信するステップと、を含むことを特徴とする。
請求項4に記載の発明は、外部装置との間で通信を行う電子情報記憶装置が備えるプロセッサに、前記外部装置からシリアル通信インターフェイスを介して送信されたコマンドデータであって、ICカード用の通信プロトコルに応じたデータを含み、且つ、前記ICカード用の通信プロトコルの種別を示すプロトコル選択バイトを含む前記コマンドデータを受信するステップと、前記受信された前記コマンドデータ中の前記プロトコル選択バイトに基づいて、前記通信プロトコルに応じたデータが、APDU(Application Protocol Data Unit)プロトコルに応じたコマンドAPDUであるか、または、前記ICカード用のリセットであるかを解釈し、前記コマンドAPDUであると解釈した場合には当該コマンドAPDUに応じた処理を行う一方、前記リセットであると解釈した場合には当該リセットに応じた処理を行い、レスポンスデータを前記シリアル通信インターフェイスを介して前記外部装置へ送信するステップと、を実行させることを特徴とする。
本発明によれば、広く普及しているICカード用の通信プロトコルを維持しつつ、シリアル通信インターフェイスを基盤として動作させる新たな通信プロトコルを実現することができる。
従来のICカードと、本実施形態に係るセキュアエレメントSEとの通信インターフェイス及び通信プロトコルの一例を階層別に示す概念図である。 (A)は、セキュアエレメントSEのハードウェア構成例を示す図であり、(B)は、外部装置DEとセキュアエレメントSEとの間でやりとりされる信号の動きの一例を示す図である。 (A)は、SPIコマンドのデータ構造の一例を示す図であり、(B)は、SPIコマンドの構成要素の詳細を示す図であり、(C)は、プロトコル選択データの具体例を示す図である。 (A)は、SPIレスポンスのデータ構造の一例を示す図であり、(B)は、SPIレスポンスの構成要素の詳細を示す図であり、(C)は、SPIステータスデータの具体例を示す図である。 (A)は、SPIコマンド送信(マスターから送信)からSPIレスポンス受信(マスターが受信)までの動作を示す図であり、(B)は、(A)に示す動作において、SPIコマンドでコマンドAPDUを送信する場合の例を、Case1~Case4に分けて示す図であり、(C)は、(A)に示す動作において、SPIコマンドでコールドリセットを送信する場合の例を示す図である。 (A)は、マスターからスレーブへ送信されるデータをチェイニングする場合の動作を示す図であり、(B)は、スレーブからマスターへ送信されるデータをチェイニングする場合の動作を示す図である。 セキュアエレメントSEによりSPIコマンドが受信されたときのCPU1の処理を示すフローチャートである。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、セキュアエレメント(Secure Element)に対して本発明を適用した場合の実施の形態である。セキュアエレメントは、本発明の電子情報記憶装置の一例であり、外部装置との間で通信を行う。
[1.セキュアエレメントSEの通信インターフェイス及び通信プロトコル]
先ず、図1を参照して、本実施形態に係るセキュアエレメントSEの通信インターフェイス及び通信プロトコルについて、従来のICカードと比較しつつ説明する。図1は、従来のICカードと、本実施形態に係るセキュアエレメントSEとの通信インターフェイス及び通信プロトコルの一例を階層別に示す概念図である。図1に示すように、従来のICカードの下層(物理層)では、ISO7816のI/Fが用いられる一方、本実施形態に係るセキュアエレメントSEの下層(物理層)では、SPI(Serial Peripheral Interface)が用いられる。ここで、ISO7816のI/Fは、ISO7816-2で定義される通信インターフェイス(C1~C8の8個の端子を利用した通信インターフェイス)である。また、SPIは、シリアル通信インターフェイス(シリアル通信バスともいう)の一例である。なお、シリアル通信インターフェイスの別の例として、I2C(Inter-Integrated Circuit)がある。また、従来のICカードの中層では、TPDU(Transmission Protocol Data Unit)プロトコル(例えば、T=0またはT=1)が用いられる一方、本実施形態に係るセキュアエレメントSEの中層では、本実施形態に係る新規通信プロトコル(つまり、SPIを用いた新規通信プロトコル)が用いられる。TPDUプロトコルは、ISO7816-3で定義されるTPDUを送受信するためのプロトコルである。また、従来のICカード及び本実施形態に係るセキュアエレメントSEの上層(アプリケーション層)は、ともに、APDU(Application Protocol Data Unit)プロトコルが用いられる。APDUプロトコルは、ISO7816-3で定義されるAPDUを送受信するためのプロトコルである。本実施形態では、SPIを用いた新規通信プロトコルを用いてAPDUが送受信される。なお、TPDUプロトコル及びAPDUプロトコルは、ICカード用の通信プロトコルの一例である。
[2.セキュアエレメントSEの構成及び機能]
次に、図2(A)等を参照して、本実施形態に係るセキュアエレメントSEの構成及び機能について説明する。図2(A)は、セキュアエレメントSEのハードウェア構成例を示す図である。図2(A)に示すように、セキュアエレメントSEは、CPU(Central Processing Unit)1、RAM(Random Access Memory)2、ROM(Read Only Memory)3、不揮発性メモリ4、及びI/O回路5等を備えて構成される。CPU1は、ROM3または不揮発性メモリ4に記憶された各種プログラムを実行するプロセッサ(コンピュータ)である。RAM2は、作業用メモリとして利用される。不揮発性メモリ4には、例えばフラッシュメモリが適用される。なお、不揮発性メモリ4は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。また、不揮発性メモリ4に記憶される各種プログラム及びデータの一部は、ROM3に記憶されてもよい。ROM3または不揮発性メモリ4との何れかに記憶されるプログラムには、従来のICカード(ICチップ)にインストールされるオペレーティングシステム(Operating System)及びアプリケーションプログラム、並びに、本発明のデータ処理プログラム等が含まれる。CPU1は、本発明のデータ処理プログラムに従って、本発明の受信手段及び応答手段として機能する。なお、本発明のデータ処理プログラムは、OSに組み込まれてもよいし、或いは、OSとは独立したミドルウェアとしてインストールされてもよい。
I/O回路5は、外部装置DE(例えば、リーダライタ等の端末)との間の通信インターフェイスを担う。この通信インターフェイスは、上述したSPIであり、同時に双方向の通信を行う全二重シリアル通信プロトコルを採用する。なお、外部装置DEはマスター(Master)として機能し、セキュアエレメントSEはスレーブ(Slave)として機能する。I/O回路5は、送受信されるデータを蓄積するためのシフトレジスタ、及び4つの信号線等を備える。4つの信号線とは、SCLK(Serial Clock)、MOSI(Master-Out Slave-In)、MISO(Master-In Slave-Out)、及びSLS(SLave Select)である。なお、シフトレジスタ、SCLK、MOSI 、MISO、及びSLSは、マスターとしての外部装置DEにも備えられる。I/O回路5のSCLKの端部(接触部)と、外部装置DEのSCLKの端部とは、直接的にまたは外部信号線を介して接続される。また、I/O回路5のMOSIの端部と、外部装置DEのMOSIの端部とは、直接的にまたは外部信号線を介して接続される。また、I/O回路5のMISOの端部と、外部装置DEのMISOの端部とは、直接的にまたは外部信号線を介して接続される。また、I/O回路5のSLSの端部と、外部装置DEのSLSの端部とは、直接的にまたは外部信号線を介して接続される。
図2(B)は、外部装置DEとセキュアエレメントSEとの間でやりとりされる信号の動きの一例を示す図である。図2(B)の例において、外部装置DEがSLSを例えばローアクティブにすることで通信が開始される。なお、SPIは、複数のスレーブを持つことが可能であるが、本実施形態では、1対1の通信を例にとるものとする。外部装置DEのクロック生成器により生成されたクロック信号(同期信号)は、SCLKを介して外部装置DEからセキュアエレメントSEへ送信される。外部装置DEのシフトレジスタにセットされたデータ(コマンドデータ)が、上記クロック信号に従って1ビットずつシフトされながらMOSIを介して外部装置DEからセキュアエレメントSEへ送信され、且つ、当該データの送信中、MISOを介してセキュアエレメントSEから外部装置DEへダミーデータ(例えば、F(h)が連続するデータ)が送信される。一方、セキュアエレメントSEのシフトレジスタにセットされたデータ(レスポンスデータ)が、上記クロック信号に従って1ビットずつシフトされながらMISOを介してセキュアエレメントSEから外部装置DEへ送信され、且つ、当該データの送信中、MOSIを介して外部装置DEからセキュアエレメントSEへダミーデータが送信される。
セキュアエレメントSEは、外部装置DEからSPIを介して送信されたコマンドデータ(以下、「SPIコマンド」という)を受信し、当該受信されたSPIコマンドに基づいて、当該ICカード用の通信プロトコルに応じたデータを解釈し、当該解釈したデータに応じた処理を行ってSPIを介してレスポンスデータ(以下、「SPIレスポンス」という)を外部装置DEへ送信する。
ここで、図3を参照して、本実施形態に係る新規通信プロトコルで規定するSPIコマンドのデータ構造について説明する。図3(A)は、SPIコマンドのデータ構造の一例を示す図であり、図3(B)は、SPIコマンドの構成要素の詳細を示す図である。なお、図3(B)において、“#”は、“0”~“F” (h)までの何れかの値であることを示す。図3(A)に示すように、SPIコマンドは、プロトコル選択データ(PS)、SPIコマンド長データ(Lf)、及びICカード用の通信プロトコルに応じたデータを含んで構成される。プロトコル選択データは、ICカード用の通信プロトコルの種別を示すデータであり、プロトコル選択バイトともいう。プロトコル選択データは、図3(A),(B)に示すように、SPIコマンドの先頭の1バイト(8ビット)に割り当てられる。プロトコル選択データにより、通信プロトコルの種別を指定することができる。
図3(C)は、プロトコル選択データの具体例を示す図である。なお、図3(C)において、“*”は、“0”または“1”の値であることを示す。図3(C)の例では、指定可能な通信プロトコルの種別として、APDUプロトコル、及びSE制御プロトコル(リセット制御プロトコル)が示されている。なお、プロトコル選択データでは、図3(C)に示すように、チェイニングなし(またはチェイニングの最後のデータ)、チェイング中(後続データあり)、または、チェイニングの後続データを要求、を指定することもできる。チェイニングとは、1塊のデータを複数のSPIコマンドまたはSPIレスポンスにより続けて送受信する仕組みをいう。これにより、1度に(つまり、1つのSPIコマンドまたはSPIレスポンスで)送受信可能なデータの最大長が定められている場合であっても、当該最大長を超えるデータのやり取りを行うことができる。
一方、SPIコマンド長データは、ICカード用の通信プロトコルに応じたデータの長さ(例えばバイト数)を示すデータであり、SPIコマンド長バイトともいう。SPIコマンド長データは、図3(A),(B)に示すように、プロトコル選択データの次の1バイトに割り当てられる。なお、SPIコマンドには、プロトコル選択データとSPIコマンド長データとの何れか一方が含まれるように構成してもよい。
ICカード用の通信プロトコルに応じたデータは、プロトコル選択データにより指定された通信プロトコルに応じたデータであり、これには、APDUプロトコルに応じたデータ、TPDUプロトコルに応じたデータ、及びSE制御プロトコルに応じたデータなどがある。図3(A)の例では、APDUプロトコルに応じたデータとして、ISO7816-3で定義されるコマンドAPDUが示されている。コマンドAPDUは、例えば、CLA、INS、P1及びP2から構成(ヘッダだけで構成)される(Case1)。ここで、CLAはコマンドクラス(命令クラス)を示し、INSはコマンドコード(命令コード)を示し、P1及びP2はコマンドパラメータ(命令パラメータ)を示す。なお、この場合のコマンドAPDUは、最小単位であり、CLA、INS、P1及びP2のそれぞれが1バイトずつである計4バイトからなる。或いは、コマンドAPDUは、例えば、CLA、INS、P1及びP2と(ヘッダと)、Leと(ボディと)から構成される(Case2)。ここで、LeはレスポンスAPDUの最大長(最大サイズ)を示す。或いは、コマンドAPDUは、例えば、CLA、INS、P1及びP2と(ヘッダと)、Lc及びDataと(ボディと)から構成される(Case3)。ここで、LcはDataの長さを示し、DataはセキュアエレメントSEで用いられる可変長のデータ(例えば不揮発性メモリ4に書き込まれるデータ)を示す。或いは、コマンドAPDUは、例えば、CLA、INS、P1及びP2と(ヘッダと)、Lc、Data及びLeと(ボディと)から構成される(Case4)。
なお、図示しないが、TPDUプロトコルに応じたデータは、ISO7816-3で定義されるコマンドTPDUである。コマンドTPDUは、例えば、CLA、INS、P1、P2、及びP3(=0)から構成(ヘッダだけで構成)される(Case1)。或いは、コマンドTPDUは、例えば、CLA、INS、P1、P2、及びP3(=Le)から構成(ヘッダだけで構成)される(Case2)。或いは、コマンドTPDUは、例えば、CLA、INS、P1、P2、及びP3(=Lc)と(ヘッダと)、Dataと(ボディと)から構成される(Case3,Case4)。また、APDUプロトコルまたはTPDUプロトコルに応じたデータとして、コマンドAPDUまたはコマンドTPDUをカプセル化(例えば、コマンドAPDUまたはコマンドTPDUの前後に所定のデータを付加)したデータユニットであってもよい。
また、図3(A)の例では、SE制御プロトコルに応じたデータとして、ICカード用のリセットが示されている。ICカード用のリセットには、コールドリセット(Cold Reset)と、ウォームリセット(Warm Reset)とがある。コールドリセットは、ICカードが活性化された直後に実行されるリセットである。一方、ウォームリセットとは、コールドリセット以外の全てのリセット、つまり、電圧及びクロックが安定状態にあるときに実行されるリセットである。コールドリセットの場合、これを示す値として予め定められた例えば“F000”(h)がSPIコマンド内に記述される。一方、ウォームリセットの場合、これを示す値として予め定められた例えば“F001”(h)がSPIコマンド内に記述される。
上述したように、SPIコマンドによって、複数の通信プロトコルのうち何れかの通信プロトコルに応じたデータ(例えば、コマンドAPDU、またはリセット)を外部装置DEからセキュアエレメントSEへ送信することができる。
次に、図4を参照して、本実施形態に係る新規通信プロトコルで規定するSPIレスポンスのデータ構造について説明する。図4(A)は、SPIレスポンスのデータ構造の一例を示す図であり、図4(B)は、SPIレスポンスの構成要素の詳細を示す図である。図4(A)に示すように、SPIレスポンスは、送信開始データ(TS)、SPIレスポンス長データ(Lf)、ICカード用の通信プロトコルに応じたレスポンスデータ、及びSPIステータスデータ(SS)を含んで構成される。送信開始データは、SPIレスポンスの送信開始を示すデータであり、送信開始バイトともいう。送信開始データは、図4(A),(B)に示すように、SPIレスポンスの先頭の1バイトに“00”(h)として割り当てられる。
SPIレスポンス長データは、後続データ(つまり、ICカード用の通信プロトコルに応じたレスポンスデータ及びSPIステータスデータ)の長さを示すデータであり、SPIレスポンス長バイトともいう。SPIレスポンス長データは、図4(A),(B)に示すように、送信開始データの次の1バイトに割り当てられる。
ICカード用の通信プロトコルに応じたレスポンスデータには、例えば、APDUプロトコルに応じたレスポンスデータ、及びTPDUプロトコルに応じたレスポンスデータなどがある。図4(A)の例では、APDUプロトコルに応じたレスポンスデータとして、ISO7816-3で定義されるレスポンスAPDUが示されている。レスポンスAPDUは、例えば、SW1及びSW2から構成される(Case1,Case3)。ここで、SW1及びSW2は、ステータスワードであり、コマンドAPDUに応じた処理状況(処理結果)を示す。SW1及びSW2は、それぞれが1バイトずつである計2バイトからなる。例えば、SW1及びSW2が“0009”(h)である場合、正常終了を示し、SW1及びSW2が“6500”(h)である場合、メモリへの書き込み失敗を示す。或いは、レスポンスAPDUは、例えば、DATA、SW1及びSW2から構成される(Case2,Case4)。ここで、DATAは例えば処理結果としてのデータを示す。なお、図示しないが、TPDUプロトコルに応じたレスポンスデータは、ISO7816-3で定義されるレスポンスTPDUである。レスポンスTPDUのデータ構造は、基本的には、レスポンスAPDUと同様である。
SPIステータスデータは、SPIコマンドに応じた処理状況(処理結果)を示すデータであり、SPIステータスバイトともいう。SPIステータスデータは、図4(A),(B)に示すように、レスポンスAPDUの次の1バイトに割り当てられる。図4(C)は、SPIステータスデータの具体例を示す図である。図4(C)の例では、SPIステータスデータが“90”(h)である場合、正常終了を示し、SPIステータスデータが“62”(h)である場合、チェイングの後続データがあることを示している。
なお、SE制御プロトコルを示すプロトコル選択データを含むSPIコマンド(つまり、SPIコマンドにより特定されるリセット)に対するSPIレスポンスには、SE制御プロトコルに応じたレスポンスデータ(例えば、ISO7816-3で定義されるATR(Answer To Reset))が含まれない。これは、例えば、ISO7816-3で定義されるATRには、外部装置がICカードとの間の通信設定(例えば、通信速度設定)を行うためのパラメータが含まれるが、このようなパラメータは、SPIを介した通信では必要ないからである。したがって、SE制御プロトコルを示すプロトコル選択データを含むSPIコマンドに対するSPIレスポンスは、送信開始データ、SPIレスポンス長データ(SPIステータスデータの長さを示す)、及びSPIステータスデータから構成されることになる。
以上の構成により、例えば、CPU1は、外部装置DEからSPIを介して受信されたSPIコマンド中のプロトコル選択データに基づいて、ICカード用の通信プロトコルに応じたデータを解釈する。例えば、ICカード用の通信プロトコルがAPDUプロトコルである場合、CPU1は、ICカード用の通信プロトコルに応じたデータがコマンドAPDUであると解釈(つまり、当該プロトコル選択データが示すAPDUプロトコルから解釈)し、当該解釈したコマンドAPDUに応じた処理を行って、その処理結果を示すSPIレスポンス(レスポンスAPDUを含む)をSPIを介して外部装置DEへ送信する。或いは、CPU1は、ICカード用の通信プロトコルがSE制御プロトコルである場合、CPU1は、ICカード用の通信プロトコルに応じたデータがコールドリセット(またはウォームリセット)であると解釈(つまり、当該プロトコル選択データが示すSE制御プロトコルから解釈)し、当該解釈したコールドリセット(またはウォームリセット)に応じた処理を行って、その処理結果を示すSPIレスポンスをSPIを介して外部装置DEへ送信する。
別の例として、例えば、ICカード用の通信プロトコルの種別が、APDUプロトコル(または、TPDUプロトコル)と、SE制御プロトコルとの2種類である場合、CPU1は、外部装置DEからSPIを介して受信されたSPIコマンド中のSPIコマンド長データに基づいて、ICカード用の通信プロトコルに応じたデータを解釈してもよい。すなわち、CPU1は、SPIコマンド中のSPIコマンド長データが4バイト以上の長さを示す場合、ICカード用の通信プロトコルに応じたデータがコマンドAPDU(または、コマンドTPDU)であると解釈する。一方、CPU1は、SPIコマンド中のSPIコマンド長データが2バイトの長さを示す場合、ICカード用の通信プロトコルに応じたデータがコールドリセット(またはウォームリセット)であると解釈する。
[3.外部装置DEのセキュアエレメントSEとの通信時の動作]
次に、図5を参照して、外部装置DEのセキュアエレメントSEとの通信時の動作について説明する。図5(A)は、SPIコマンド送信(マスターから送信)からSPIレスポンス受信(マスターが受信)までの動作を示す図である。図5(B)は、図5(A)に示す動作において、SPIコマンドでコマンドAPDUを送信する場合の例を、Case1~Case4に分けて示す図であり、図5(C)は、図5(A)に示す動作において、SPIコマンドでコールドリセットを送信する場合の例を示す図である。
図5(A)に示すステップS1では、外部装置DEが、MOSIを介してSPIコマンドをセキュアエレメントSEへ送信する一方、セキュアエレメントSEが、このSPIコマンドの受信中、MISOを介してダミーデータを外部装置DEへ送信する。次いで、図5(A)に示すステップS2では、セキュアエレメントSEがSPIコマンドに応じて処理(つまり、上述したように解釈したデータに応じた処理)を行うが、この処理中、外部装置DEが、MOSIを介してダミーデータをセキュアエレメントSEへ送信する一方、セキュアエレメントSEが、MISOを介してダミーデータを外部装置DEへ送信する。次いで、図5(A)に示すステップS3では、セキュアエレメントSEが、MISOを介してSPIレスポンスを外部装置DEへ送信する一方、外部装置DEが、このSPIレスポンスの受信中、MOSIを介してダミーデータをセキュアエレメントSEへ送信する。
図5(A)に示す動作において、SPIコマンドでコマンドAPDUを送信する場合、図5(B)のCase1に示すように、ステップS1において、外部装置DEは、CLA、INS、P1及びP2の4バイトで構成されるコマンドAPDUを含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。この間、セキュアエレメントSEは、SPIコマンドと同一バイトのダミーデータ(“FF FF FF FFFF FF”(h))を、MISOを介して外部装置DEへ送信する。その後、図5(B)のCase1に示すように、ステップS3において、セキュアエレメントSEは、SW1及びSW2の2バイトで構成されるレスポンスAPDUを含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。この間、外部装置DEは、SPIレスポンスと同一バイトのダミーデータ(“FF FF FF FF FF”(h))を、MOSIを介してセキュアエレメントSE
へ送信する。
別の例として、図5(A)に示す動作において、SPIコマンドでコマンドAPDUを送信する場合、図5(B)のCase2に示すように、ステップS1において、外部装置DEは、CLA、INS、P1、P2、及びLeの5バイトで構成されるコマンドAPDUを含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。この間、セキュアエレメントSEは、SPIコマンドと同一バイトのダミーデータを、MISOを介して外部装置DEへ送信する。その後、図5(B)のCase2に示すように、ステップS3において、セキュアエレメントSEは、DATA、SW1及びSW2の所定バイトで構成されるレスポンスAPDUを含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。この間、外部装置DEは、SPIレスポンスと同一バイトのダミーデータを、MOSIを介してセキュアエレメントSEへ送信する。
更に別の例として、図5(A)に示す動作において、SPIコマンドでコマンドAPDUを送信する場合、図5(B)のCase3に示すように、ステップS1において、外部装置DEは、CLA、INS、P1、P2、Lc及びDataの所定バイトで構成されるコマンドAPDUを含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。この間、セキュアエレメントSEは、SPIコマンドと同一バイトのダミーデータを、MISOを介して外部装置DEへ送信する。その後、図5(B)のCase3に示すように、ステップS3において、セキュアエレメントSEは、SW1及びSW2の2バイトで構成されるレスポンスAPDUを含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。この間、外部装置DEは、SPIレスポンスと同一バイトのダミーデータを、MOSIを介してセキュアエレメントSEへ送信する。
更に別の例として、図5(A)に示す動作において、SPIコマンドでコマンドAPDUを送信する場合、図5(B)のCase4に示すように、ステップS1において、外部装置DEは、CLA、INS、P1、P2、Lc、Data、及びLeの所定バイトで構成されるコマンドAPDUを含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。この間、セキュアエレメントSEは、SPIコマンドと同一バイトのダミーデータを、MISOを介して外部装置DEへ送信する。その後、図5(B)のCase4に示すように、ステップS3において、セキュアエレメントSEは、DATA、SW1及びSW2の所定バイトで構成されるレスポンスAPDUを含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。この間、外部装置DEは、SPIレスポンスと同一バイトのダミーデータを、MOSIを介してセキュアエレメントSEへ送信する。
一方、図5(A)に示す動作において、SPIコマンドでコールドリセットを送信する場合、図5(C)に示すように、ステップS1において、外部装置DEは、コールドリセット(“F000”(h))を含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。この間、セキュアエレメントSEは、SPIコマンドと同一バイトのダミーデータを、MISOを介して外部装置DEへ送信する。その後、図5(C)に示すように、ステップS3において、セキュアエレメントSEは、正常終了(“90”(h))を示すSPIステータスデータ(SS)を含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。この間、外部装置DEは、SPIレスポンスと同一バイトのダミーデータを、MOSIを介してセキュアエレメントSEへ送信する。
次に、図6を参照して、外部装置DEのセキュアエレメントSEとの通信において、送受信されるデータをチェイングする場合の動作について説明する。図6(A)は、マスターからスレーブへ送信されるデータをチェイニングする場合の動作を示す図であり、図6(B)は、スレーブからマスターへ送信されるデータをチェイニングする場合の動作を示す図である。
図6(A)に示す動作の場合、ステップS1において、外部装置DEは、「チェイニング中(後続データあり)」(“#1”)を含むプロトコル選択データ(PS)と、コマンドAPDU(Data1を含む)とを含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。その後、図6(A)に示すように、ステップS3において、セキュアエレメントSEは、「チェイニングの後続データを要求」(“70”)を示すSPIステータスデータ(SS)を含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。なお、図6(A)のステップS3に示すように、チェイニング中、SPIレスポンスには、送信開始データ(TS)及びSPIレスポンス長データ(Lf)が含まれなくともよい。そして、ステップS4において、外部装置DEは、セキュアエレメントSEからの上記要求に応じて、「チェイニングの最後のデータ」(“#0”)を含むプロトコル選択データと、コマンドAPDU(Data2(後続データ)を含む)とを含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。
一方、図6(B)に示す動作の場合、ステップS2において、セキュアエレメントSEは、外部装置DEからのSPIコマンドに応じて処理を行い、ステップS3において、「チェイニングの後続データあり」(“62”(h))を示すSPIステータスデータ(SS)と、レスポンスAPDU(DATA1を含む)とを含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。その後、図6(B)に示すように、ステップS5において、外部装置DEは、「チェイニングの後続データを要求」(“#2”)を含むプロトコル選択データ(PS)を含むSPIコマンドを、MOSIを介してセキュアエレメントSEへ送信する。そして、ステップS7において、セキュアエレメントSEは、外部装置DEからの上記要求に応じて、レスポンスAPDU(DATA2(後続データ)を含む)を含むSPIレスポンスを、MISOを介して外部装置DEへ送信する。
次に、図7を参照して、セキュアエレメントSEによりSPIコマンドが受信されたときのCPU1の処理について説明する。図7は、セキュアエレメントSEによりSPIコマンドが受信されたときのCPU1の処理を示すフローチャートである。図7に示す処理は、外部装置DEからのSPIコマンドが受信されたときに開始される。
図7に示すステップS11では、CPU1は、受信されたSPIコマンド中のプロトコル選択データまたはSPIコマンド長データに基づいて、上述したように、ICカード用の通信プロトコルに応じたデータを解釈する。
次いで、CPU1は、ステップS11で解釈したデータが、コールドリセットであるか否かを判定する(ステップS12)。CPU1は、ステップS11で解釈したデータが、コールドリセットであると判定した場合(ステップS12:YES)、ステップS13へ進む。一方、CPU1は、ステップS11で解釈したデータが、コールドリセットでないと判定した場合(ステップS12:NO)、ステップS15へ進む。
ステップS13では、CPU1は、コールドリセットに応じた処理を行って、ステップS14へ進む。コールドリセットに応じた処理では、メモリの初期化、及びデータの破損がないかどうかのチェックなどが行われる。ステップS14では、CPU1は、SPIステータスデータを含むSPIレスポンスをMISOを介して外部装置DEへ送信し、処理を終了する。
一方、ステップS15では、ステップS11で解釈したデータが、ウォームリセットであるか否かを判定する。CPU1は、ステップS11で解釈したデータが、ウォームリセットであると判定した場合(ステップS15:YES)、ステップS16へ進む。一方、CPU1は、ステップS11で解釈したデータが、ウォームリセットでないと判定した場合(ステップS15:NO)、ステップS18へ進む。
ステップS16では、CPU1は、ウォームリセットに応じた処理を行って、ステップS17へ進む。ウォームリセットに応じた処理では、メモリの初期化、及びデータの破損がないかどうかのチェックなどが行われる。さらに、ウォームリセットに応じた処理では、ウォームリセット前の状態の解析が行われる場合がある。ウォームリセットは、コールドリセットと異なり、電源が落ちていないことから、ウォームリセット前の状態が一部保存されていることがある。例えば、エラーで終了してからウォームリセットが行われた場合、そのエラーの原因がメモリ(例えばRAM)やレジスタに残っていることがある。そのため、ウォームリセットに応じた処理では、当該ウォームリセット後にメモリやレジスタに残っている値に基づいてエラーの原因が解析される。なお、コールドリセットの場合はメモリやレジスタの値は消えているので、上記解析ができない。ステップS17では、CPU1は、SPIステータスデータを含むSPIレスポンスをMISOを介して外部装置DEへ送信し、処理を終了する。
一方、ステップS18では、ステップS11で解釈したデータが、コマンドAPDUであるか否かを判定する。CPU1は、ステップS11で解釈したデータが、コマンドAPDUであると判定した場合(ステップS18:YES)、ステップS19へ進む。一方、CPU1は、ステップS11で解釈したデータが、コマンドAPDUでないと判定した場合(ステップS18:NO)、ステップS21へ進む。ステップS21では、CPU1は、エラー処理(例えば、セキュアエレメントSEの停止)を行う。
ステップS19では、CPU1は、コマンドAPDUに応じた処理を行って、ステップS20へ進む。ステップS20では、CPU1は、レスポンスAPDUと、SPIステータスデータとを含むSPIレスポンスをMISOを介して外部装置DEへ送信し、処理を終了する。
以上説明したように、セキュアエレメントSEは、外部装置DEからSPIを介して送信されたSPIコマンドを受信し、当該受信されたSPIコマンドに基づいて、当該ICカード用の通信プロトコルに応じたデータを解釈し、当該解釈したデータに応じた処理を行ってSPIを介してSPIレスポンスを外部装置DEへ送信するように構成したので、広く普及しているICカード用の通信プロトコルを維持しつつ、SPIを基盤として動作させる新たな通信プロトコルを実現することができる。
なお、上記実施形態においては、シリアル通信インターフェイスとしてSPIを例にとって説明したがI2C(Inter-Integrated Circuit)を適用してもよい。この場合のセキュアエレメントSEのI/O回路5は、SDA(Serial Data)、及びSCLK(Serial Clock)の2つの信号線等を備える。そして、セキュアエレメントSEは、外部装置DEからI2C(SDA)を介して送信されたI2Cコマンドを受信し、当該受信されたI2Cコマンドに基づいて、当該ICカード用の通信プロトコルに応じたデータを解釈し、当該解釈したデータに応じた処理を行ってI2C(SDA)を介してI2Cレスポンスを外部装置DEへ送信する。なお、I2Cコマンドのデータ構造は、SPIコマンドと同様である。I2Cレスポンスのデータ構造は、SPIレスポンスと同様である。
1 CPU
2 RAM
3 ROM
4 不揮発性メモリ
5 I/O回路
SE セキュアエレメント
DE 外部装置

Claims (4)

  1. 外部装置との間で通信を行う電子情報記憶装置であって、
    前記外部装置からシリアル通信インターフェイスを介して送信されたコマンドデータであって、ICカード用の通信プロトコルに応じたデータを含み、且つ、前記ICカード用の通信プロトコルの種別を示すプロトコル選択バイトを含む前記コマンドデータを受信する受信手段と、
    前記受信手段により受信された前記コマンドデータ中の前記プロトコル選択バイトに基づいて、前記通信プロトコルに応じたデータが、APDU(Application Protocol Data Unit)プロトコルに応じたコマンドAPDUであるか、または、前記ICカード用のリセットであるかを解釈し、前記コマンドAPDUであると解釈した場合には当該コマンドAPDUに応じた処理を行う一方、前記リセットであると解釈した場合には当該リセットに応じた処理を行い、レスポンスデータを前記シリアル通信インターフェイスを介して前記外部装置へ送信する応答手段と、
    を備えることを特徴とする電子情報記憶装置。
  2. 前記シリアル通信インターフェイスは、SPI(Serial Peripheral Interface)であることを特徴とする請求項1に記載の電子情報記憶装置。
  3. 外部装置との間で通信を行う電子情報記憶装置が備えるプロセッサにより実行されるデータ処理方法であって、
    前記外部装置からシリアル通信インターフェイスを介して送信されたコマンドデータであって、ICカード用の通信プロトコルに応じたデータを含み、且つ、前記ICカード用の通信プロトコルの種別を示すプロトコル選択バイトを含む前記コマンドデータを受信するステップと、
    前記受信された前記コマンドデータ中の前記プロトコル選択バイトに基づいて、前記通信プロトコルに応じたデータが、APDU(Application Protocol Data Unit)プロトコルに応じたコマンドAPDUであるか、または、前記ICカード用のリセットであるかを解釈し、前記コマンドAPDUであると解釈した場合には当該コマンドAPDUに応じた処理を行う一方、前記リセットであると解釈した場合には当該リセットに応じた処理を行い、レスポンスデータを前記シリアル通信インターフェイスを介して前記外部装置へ送信するステップと、
    を含むことを特徴とするデータ処理方法。
  4. 外部装置との間で通信を行う電子情報記憶装置が備えるプロセッサに、
    前記外部装置からシリアル通信インターフェイスを介して送信されたコマンドデータであって、ICカード用の通信プロトコルに応じたデータを含み、且つ、前記ICカード用の通信プロトコルの種別を示すプロトコル選択バイトを含む前記コマンドデータを受信するステップと、
    前記受信された前記コマンドデータ中の前記プロトコル選択バイトに基づいて、前記通信プロトコルに応じたデータが、APDU(Application Protocol Data Unit)プロトコルに応じたコマンドAPDUであるか、または、前記ICカード用のリセットであるかを解釈し、前記コマンドAPDUであると解釈した場合には当該コマンドAPDUに応じた処理を行う一方、前記リセットであると解釈した場合には当該リセットに応じた処理を行い、レスポンスデータを前記シリアル通信インターフェイスを介して前記外部装置へ送信するステップと、
    を実行させることを特徴とするデータ処理プログラム。
JP2021024840A 2021-02-19 2021-02-19 電子情報記憶装置、データ処理方法、及びデータ処理プログラム Active JP7017185B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021024840A JP7017185B2 (ja) 2021-02-19 2021-02-19 電子情報記憶装置、データ処理方法、及びデータ処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021024840A JP7017185B2 (ja) 2021-02-19 2021-02-19 電子情報記憶装置、データ処理方法、及びデータ処理プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016231528A Division JP6986835B2 (ja) 2016-11-29 2016-11-29 電子情報記憶装置、データ処理方法、及びデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP2021073633A JP2021073633A (ja) 2021-05-13
JP7017185B2 true JP7017185B2 (ja) 2022-02-08

Family

ID=75802587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021024840A Active JP7017185B2 (ja) 2021-02-19 2021-02-19 電子情報記憶装置、データ処理方法、及びデータ処理プログラム

Country Status (1)

Country Link
JP (1) JP7017185B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099742A1 (fr) 2001-06-04 2002-12-12 Renesas Technology Corp. Carte memoire
US20030168515A1 (en) 2001-11-06 2003-09-11 Gray Robert J. Smart card having additional connector pads
JP2006065867A (ja) 2004-08-26 2006-03-09 Samsung Electronics Co Ltd スマートカードとメモリカードと間のマルチインターフェース方法及びマルチインターフェースカード
JP2008538458A (ja) 2005-02-11 2008-10-23 アクサルト・エス・アー スレーブデバイスがネットワークピアとなることを可能にするデータ通信のためのシステムおよび方法
JP2012043208A (ja) 2010-08-19 2012-03-01 Dainippon Printing Co Ltd セキュリティ管理システム、情報処理装置、オフラインデバイス、セキュリティ管理方法、及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099742A1 (fr) 2001-06-04 2002-12-12 Renesas Technology Corp. Carte memoire
US20030168515A1 (en) 2001-11-06 2003-09-11 Gray Robert J. Smart card having additional connector pads
JP2006065867A (ja) 2004-08-26 2006-03-09 Samsung Electronics Co Ltd スマートカードとメモリカードと間のマルチインターフェース方法及びマルチインターフェースカード
JP2008538458A (ja) 2005-02-11 2008-10-23 アクサルト・エス・アー スレーブデバイスがネットワークピアとなることを可能にするデータ通信のためのシステムおよび方法
JP2012043208A (ja) 2010-08-19 2012-03-01 Dainippon Printing Co Ltd セキュリティ管理システム、情報処理装置、オフラインデバイス、セキュリティ管理方法、及びプログラム

Also Published As

Publication number Publication date
JP2021073633A (ja) 2021-05-13

Similar Documents

Publication Publication Date Title
JP6986835B2 (ja) 電子情報記憶装置、データ処理方法、及びデータ処理プログラム
RU2402804C2 (ru) Способ загрузки хостового устройства из устройства mmc/sd, хостовое устройство, загружаемое из устройства mmc/sd, и устройство mmc/sd, из которого может быть загружено хостовое устройство
EP1264461B1 (en) A method of communication between a smart card and a host station
US6389495B1 (en) Dedicated circuit and method for enumerating and operating a peripheral device on a universal serial bus
US20080270654A1 (en) Bus System for Selectively Controlling a Plurality of Identical Slave Circuits Connected to the Bus and Method Therefore
US9418224B2 (en) Portable electronic device and control method of portable electronic device
EP2642422B1 (en) Ic card and ic card control method
CN109726605B (zh) 一种eSIM智能卡及其工作方法
JP7017185B2 (ja) 電子情報記憶装置、データ処理方法、及びデータ処理プログラム
JP5293231B2 (ja) Icチップ及びicカード及び発行装置及び発行方法及び発行システム
US20090177921A1 (en) Portable electronic device and control method thereof
US5860028A (en) I/O bus expansion system wherein processor checks plurality of possible address until a response from the peripheral selected by address decoder using user input
JP5085254B2 (ja) 携帯可能電子装置、icカード、および携帯可能電子装置におけるコマンド処理方法
KR100399603B1 (ko) 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
JP7397402B2 (ja) 電子情報記憶媒体、データ送信方法、及びプログラム
JP7218621B2 (ja) 電子情報記憶媒体、通信機器、通信システム、通信方法、通信プログラム、命令実行方法、命令実行プログラム、応答判断方法及び応答判断プログラム
US10461971B2 (en) IC card, portable electronic device, program, processing apparatus, and processing system
US6607138B2 (en) Communication method of IC card reader/writer
US7930458B2 (en) USB memory card reader having memory card identification
JP7501808B2 (ja) Icチップ
JP7468754B1 (ja) 電子情報記憶媒体、icチップ、icカード、受信ブロック処理方法、及びプログラム
JP7468757B1 (ja) 電子情報記憶媒体、icチップ、icカード、レスポンス送信方法、及びプログラム
JP5971687B2 (ja) Icカード、携帯可能電子装置及びicカードのコマンド処理方法
JP7444197B2 (ja) 電子情報記憶媒体、暗号演算方式選択方法、及びプログラム
KR100564759B1 (ko) 스마트 카드 시스템에서 리셋 신호에 대한 응답 변경 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210830

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211208

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211208

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20211216

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20211221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220110

R150 Certificate of patent or registration of utility model

Ref document number: 7017185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150