JP2018082246A - 電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム - Google Patents

電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム Download PDF

Info

Publication number
JP2018082246A
JP2018082246A JP2016221726A JP2016221726A JP2018082246A JP 2018082246 A JP2018082246 A JP 2018082246A JP 2016221726 A JP2016221726 A JP 2016221726A JP 2016221726 A JP2016221726 A JP 2016221726A JP 2018082246 A JP2018082246 A JP 2018082246A
Authority
JP
Japan
Prior art keywords
key
key version
information
secure
command
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
JP2016221726A
Other languages
English (en)
Other versions
JP6780462B2 (ja
Inventor
直登 船津
Naoto Funatsu
直登 船津
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 JP2016221726A priority Critical patent/JP6780462B2/ja
Publication of JP2018082246A publication Critical patent/JP2018082246A/ja
Application granted granted Critical
Publication of JP6780462B2 publication Critical patent/JP6780462B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】外部機器とアプリケーション間における開設済の通信路をセキュアな通信路にするセキュア処理に用いるキーのキーバージョンについて、外部機器側でキーバージョンを明示的に指定しなくても、複数のデフォルトキーバージョンを使い分けることができる電子情報記憶媒体等を提供する。【解決手段】セキュア処理に用いるキーバージョンを示すキーバージョン情報として所定の情報を含むコマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するための識別情報と対応付けて記憶しておき、所定の情報を含むコマンドを受信した場合に、開設済の通信路に対応する識別情報により識別されるデフォルトキーバージョンのキーを用いてセキュア処理を実行する。【選択図】図3

Description

複数のアプリケーションを搭載するICカード等の技術分野に関する。
複数のアプリケーションを搭載するUIM(User Identity Module)等のIC(Integrated Circuit)カードでは、Java(登録商標)Card仕様及びGlobalPlatform(登録商標)仕様に準拠した製品が事実上のデファクトスタンダードになっている。ここで、アプリケーションは、アプリケーションインスタンスを指す。アプリケーションインスタンスとは、アプリケーションプログラム等をメモリに展開して実行可能な状態にインストールされたモジュールをいう。なお、アプリケーションは、アプリケーションプログラムを指す場合もある。特許文献1には、複数のアプリケーションを切り替えて使用可能なICカードの技術が開示されている。
ところで、上述したICカード内には、当該ICカード自身及びICカード内のアプリケーションを管理するためのアプリケーションであるセキュリティドメイン(Security Domain、以下、「SD」という)が、必ず1つ以上存在する。SDには、ISD(Issuer Security Domain)とSSD(Supplementary Security Domains)がある。このようなSDは、主に、以下の(1)〜(9)の機能をサポートする。
(1)ICカードのライフサイクル管理
(2)アプリケーションプログラムのライフサイクル管理
(3)アプリケーションインスタンスのライフサイクル管理
(4)アプリケーションプログラムのロード
(5)アプリケーションインスタンスの生成(インストール)
(6)アプリケーションプログラムまたはアプリケーションインスタンスの削除
(7)アプリケーション向け発行データの書き込み
(8)データの読出し
(9)セキュアチャンネルプロトコル(Secure Channel Protocol、以下、「SCP」という)に従ったセキュアな通信路の確保
ISDは、上記(1)〜(9)の機能をサポートすることで、ICカード内のカードコンテント(アプリケーションプログラム、アプリケーションインスタンス等)に対して、ICカードの発行者の管理及びセキュリティポリシーを実現する。一方、SSDは、上記(1)〜(9)の機能をサポートすることで、ICカード内のカードコンテントに対して、ICカード上でサービスを提供する第三者の管理及びセキュリティポリシーを実現する。ここで、ICカード上でサービスを提供する第三者とは、ICカードの発行者及びICカードの保持者(ICカードの発行対象である利用者)以外の立場としての者をいう。また、上記(9)の機能において、SCPは、ICカード内のSDとICカード外部エンティティ(外部機器)間の通信路に対して、コマンドデータの機密性、コマンドの完全性(及びコマンドシークエンスの保証)、コマンドデータ(平文)内のセンシティブデータ(例えば、鍵やPINコード)のさらなる機密性を提供する。GlobalPlatform仕様では、上記(1)〜(7)の機能を実行する場合は、SCP上で実行することが必須とされている。
ここで、図1を用いてSCPについて説明する。図1ではICカードを「card」と表し、外部機器を「host」と表す。
まず、hostはcardに対してcard内のアプリケーションとの通信路を形成するためにSELECTコマンドを送信する(ステップS1)。SELECTコマンドは、通信路の相手先となるアプリケーションを識別するIDであるAIDと、当該アプリケーションとの通信路(ロジカルチャネル)を識別するロジカルチャネル番号を含む。これに対して、cardはコマンドに応じて通信路を形成するための処理を実行し、応答する(ステップS2)。これにより、ロジカルチャネル番号で識別される通信路(ロジカルチャネル)が形成され、以降、hostはコマンドに当該ロジカルチャネル番号を含ませることにより、当該ロジカルチャネル番号で識別される通信路を介して、SELECTコマンドで選択したアプリケーションと通信を行うことができる。次いで、hostは、例えば、アプリケーションに関連するデータ(例えば、アプリケーションがポイント管理アプリであれば、ポイントデータ)を取得するためにGET DATAコマンドをCardに送信する(ステップS3)。これに対して、cardはコマンドに応じた処理を実行し、応答する(例えば、ポイントデータを送信する)(ステップS4)。次いで、hostはcardから取得したデータを参照して、例えば、データを書き換えようとする場合、通信路の機密性を高めるためにそれまでに形成した通信路(ロジカルチャネル)をセキュアな通信路にするセキュア処理(SCPでコマンドを保護するための相互認証処理)を実行する。
相互認証は、プロトコルで決められたアルゴリズムに従い、暗号演算の元となる鍵(Key ID01, Key ID02, Key ID03の3つの鍵)を互いが知っているという前提の基、hostとcardが互いを認証する行為である。具体的には、hostが相互認証用のコマンドであるINITIALIZE UPDATEコマンド及びEXTERNAL AUTHENTICATEコマンドを送信し、cardがそれぞれのコマンドに応じた処理を実行することにより行われる。
まず、hostはHost challengeと呼ばれる乱数を生成し、Host challengeと、キーバージョンを示す値であるキーバージョン情報(「key version number」という場合がある)を含むINITIALIZE UPDATEコマンドをcardへ送信する(ステップS5)。なお、cardとhostは互いに相互認証に使用する3つの鍵からなる鍵の組み合わせを複数のキーバージョン(「key version」という場合がある)分保有している。INITIALIZE UPDATEコマンドに含まれるkey version numberは、互いに保有する複数のkey versionのうち、セキュア処理に使用するkey versionを示している(すなわち、hostがセキュア処理に使用するkey versionを指定する)。
これに対してcardはCard challengeと呼ばれる乱数を生成し、Card challenge と、key version numberで指定されたkey versionの鍵(Key ID01, Key ID02, Key ID03の3つの鍵)を基に、各Key ID対応した3つのセッションキーを生成する。例えば、Key ID01を基にKey ID01のセッションキーを生成する。各セッションキーの用途は各プロトコルに従った用途で使用される(例えば、MAC生成用セッションキー、データ暗号化用セッションキー、鍵暗号化用セッションキーの3つが生成される)。また、cardは、生成したCard challengeと受信したHost challengeを材料に、セッションキーを用いてCard cryptogramと呼ばれる暗号文を演算し、hostにCard challengeとCard cryptogramを送信する(ステップS6)。
次に、hostは、Card側と同様にCard challengeとkey version numberで指定したkey versionの鍵(hostが保有する鍵)を基にセッションキーを生成し、Card challengeとHost challengeを材料に、セッションキーを用いてCard cryptogramを生成する。hostは、自身で生成したCard cryptogramとcard側から受信したCard cryptogramを比較し、一致するか確認することによりcardが鍵値を知る正当な相手であることを確認する。hostは、これを確認すると、Card challengeとHost challengeを材料に、セッションキーを用いてHost cryptogramと呼ばれる暗号文を演算し、Host cryptogramを含むEXTERNAL AUTHENTICATEコマンドをCardに送信する(ステップS7)。
これに対してcardはhost側と同様にCard challengeとHost challengeを材料に、セッションキーを用いてHost cryptogramを生成し、自身で生成したHost cryptogramとhost側から受信したHost cryptogramを比較し、一致するか確認することにより、hostが鍵値を知る正当な相手であることを確認する。cardは、これを確認すると、相互認証が完了したことをhostに知らせる(ステップS8)。
相互認証完了以降は、互いに生成したセッションキーを用いてMAC(Message Authentication Code)と呼ばれるチェックコードを生成・検証することでコマンドを保護する(ステップS9〜ステップS12)。
ところで、SDにおいては自身が保有する複数のkey versionの中から1つだけをデフォルトキーバージョン(「デフォルトキー」という場合がある)として設定することができる。相互認証においてデフォルトキーを使用する場合、INITIALIZE UPDATEコマンドにおいてkey version numberを指定する際、「0x00」を指定することが、GlobalPlatformの仕様によって定められている。SDが保有するkey versionは「0x01」〜「0x7F」まで存在し、「0x00」は存在しないが、GlobalPlatform仕様にて定義されるPUT KEYコマンド、STORE DATAコマンドと呼ばれるコマンドにより、key version「0x01」〜「0x7F」の鍵を設定する際に、デフォルトキーを設定することができる。そして、例えば、SDが保有するkey versionの中で、key version number「0x20」のkey versionをデフォルトキーとして設定した場合において、INITIALIZE UPDATEコマンドにおいてkey version number「0x00」が指定されると、key version numberが「0x20」の鍵が使用されることになる。これにより、hostはINITIALIZE UPDATEコマンドの送信時毎に、key version numberを変更しなくても「0x00」を指定することにより同じkey version(デフォルトキー)を使い回すことができ、負荷を軽減することができる。
特許第4184751号
しかしながら、SDが保有するkey versionにおいて、デフォルトキーとして設定可能なkey versionは1つだけである。これは、デフォルトキーを利用する際は、key version numberを明示的に指定せずとも所定の情報(「0x00」)を指定するだけで、暗黙的にkey version numberを一意に特定できるようにするためである。これにより、hostは、デフォルトキーを使用することで、key version numberを変更する負担を軽減することができるが、例えば、アプリケーションに応じて複数のデフォルトキーを使い分けて使用することができず、利便性が低いという問題がある。
そこで、本発明は、このような点に鑑みてなされたものであり、host等の外部機器とアプリケーション間における開設済の通信路(ロジカルチャネル)をセキュアな通信路にするセキュア処理に用いるキーのキーバージョンについて、外部機器側でキーバージョンを明示的に指定しなくても、複数のデフォルトキーバージョンを使い分けることができる電子情報記憶媒体等を提供する。
上記課題を解決するために、請求項1に記載の発明は、外部機器とアプリケーション間における開設済の通信路をセキュアな通信路にするセキュア処理に用いるキーをキーバージョン毎に記憶するメモリと、前記セキュア処理に使用するキーのキーバージョンを示すキーバージョン情報を含むコマンドを受信した場合に当該キーバージョンのキーを用いて前記セキュア処理を実行する実行部と、を備える電子情報記憶媒体であって、前記メモリは、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するための識別情報と対応付けて記憶し、前記実行部は、前記キーバージョン情報として前記所定の情報を含む前記コマンドを受信した場合に、前記開設済の通信路に対応する前記識別情報により識別されるデフォルトキーバージョンのキーを用いて前記セキュア処理を実行することを特徴とする。
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体であって、前記識別情報は、前記開設済の通信路に対応するロジカルチャネル番号を示す情報であって、前記実行部は、前記キーバージョン情報として前記所定の情報を含む前記コマンドを受信した場合に、前記ロジカルチャネル番号に対応するデフォルトキーバージョンのキーを用いて前記セキュア処理を実行することを特徴とする。
請求項3に記載の発明は、請求項1に記載の電子情報記憶媒体であって、前記識別情報は、前記開設済の通信路を使用して前記外部機器と通信を行う前記アプリケーションを識別するアプリケーション情報であって、前記実行部は、前記キーバージョン情報として前記所定の情報を含む前記コマンドを受信した場合に、前記アプリケーション情報に対応するデフォルトキーバージョンのキーを用いて前記セキュア処理を実行することを特徴とする。
請求項4に記載の発明は、外部機器とアプリケーション間における開設済の通信路をセキュアな通信路にするセキュア処理に用いるキーをキーバージョン毎に記憶するメモリと、前記セキュア処理に使用するキーのキーバージョンを示すキーバージョン情報を含むコマンドを受信した場合に当該キーバージョンのキーを用いて前記セキュア処理を実行する実行部と、を備える電子情報記憶媒体によるセキュア処理実行方法であって、前記メモリは、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するための識別情報と対応付けて記憶し、前記実行部が、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に、前記開設済の通信路に対応する前記識別情報により識別されるデフォルトキーバージョンのキーを用いて前記セキュア処理を実行するステップを含むことを特徴とする。
請求項5に記載の発明は、外部機器とアプリケーション間における開設済の通信路をセキュアな通信路にするセキュア処理に用いるキーをキーバージョン毎に記憶するメモリと、前記セキュア処理に使用するキーのキーバージョンを示すキーバージョン情報を含むコマンドを受信した場合に当該キーバージョンのキーを用いて前記セキュア処理を実行する実行部と、を備え、前記メモリが、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するための識別情報と対応付けて記憶する電子情報記憶媒体における前記実行部に、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に、前記開設済の通信路に対応する前記識別情報により識別されるデフォルトキーバージョンのキーを用いて前記セキュア処理を実行するステップを実行させることを特徴とする。
本発明によれば、複数のデフォルトキーバージョンがこれらを識別する識別情報とともに設定され、キーバージョン情報として所定の情報を含むコマンドを受信した場合に、開設済の通信路に対応する識別情報により識別されるデフォルトキーバージョンのキーを用いてセキュア処理を実行する。したがって、デフォルトキーバージョンの使い分け方に応じて識別情報を設定しておくことにより、コマンドにおいてキーバージョン情報を明示的に指定しなくても、複数のデフォルトキーバージョンを使い分けることができる。
相互認証処理の一例を示すシーケンス図である。 (A)は、ICカード1に搭載されるICチップ1aのハードウェア構成例を示す図であり、(B)は、ICカード1の機能構成例を示す図である。 (A)は、SDにより管理される論理的な鍵空間の一例を示す図であり、(B)は、デフォルトキーテーブルの一例を示す図である。 複数のSD及び複数のApplication間で形成される階層構造の一例を示す図である。 コマンド受信時処理の一例を示すフローチャートである。 第2実施形態におけるデフォルトキーテーブルの一例を示す図である。 第2実施形態におけるコマンド受信時処理の一例を示すフローチャートである。
[1.第1実施形態]
以下、図面を参照して本発明の第1実施形態について詳細に説明する。以下に説明する実施形態は、ICチップを搭載するICカードに対して本発明を適用した場合の実施の形態である。
[1.1.ICチップ1aの構成及び機能概要]
まず、図2(A)を参照して、本実施形態に係るICカード1に搭載されるICチップ1aの構成及び機能概要について説明する。図2(A)は、ICカード1に搭載されるICチップ1aのハードウェア構成例を示す図である。ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。或いは、ICチップ1aが通信機器の回路基板上に直接組み込まれて構成されるようにしてもよい。なお、ICチップ1aは、本発明の電子情報記憶媒体の一例である。
図2(A)に示すように、ICチップ1aは、CPU(Central Processing Unit)10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、不揮発性メモリ13、及びI/O回路14を備えて構成される。CPU10は、ROM12または不揮発性メモリ13に記憶された各種プログラムを実行するプロセッサ(コンピュータ)である。なお、I/O回路14は、外部機器2とのインターフェイスを担う。これにより、ICチップ1aは、ICリーダ・ライタを備える外部機器2との間で接触または非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部機器2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部機器2には通信機器の機能を担う制御部が該当する。
不揮発性メモリ13には、例えばフラッシュメモリが適用される。不揮発性メモリ13に記憶される各種プログラム及びデータの一部は、ROM12に記憶されてもよい。なお、不揮発性メモリ13は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。本実施形態において、ROM12と不揮発性メモリ13との何れかに記憶されるプログラムには、オペレーティングシステム(Operating System、以下、「OS」という)、複数(つまり、複数種類)のアプリケーションプログラム、及び複数のSDプログラム(複数種類のSD(例えば、ISD、SSD)のそれぞれに対応するSDプログラム)等が含まれる。
ここで、アプリケーションプログラムは、ICカード1においてアプリケーションインスタンス(以下、「Application」という)の機能(言い換えれば、モジュール)を実現するためのプログラムである。これにより、CPU10は、Applicationとして機能する。SDプログラムは、ICカード1においてSDの機能を実現するためのプログラムである。これにより、CPU10は、Application等を管理するSDとして機能する。SCPプログラムは、ICカード1においてSCPの機能を実現するためのプログラムである。SCPは、ICカード1と外部機器2(ホスト)との間でセキュアな通信路を形成するための通信プロトコルの一例である。このような通信路を形成するために、ICカード1と外部機器2(ホスト)とは、SCPで決められたアルゴリズムに従い、暗号演算の元となる鍵を互いが知っているという前提の下、SCPに従った通信路(以下、「SCP通信路」という)を開設するための相互認証を行うようになっている。SCP通信路の開設後、ICカード1と外部機器2の間で送受信されるデータ(例えば、コマンド)は、そのセッションの間、SCPにより保護される。つまり、ICカード1と外部機器2とは、そのセッションの間、相互認証において生成されたセッションキーを用いて、MACと呼ばれるチェックコードを生成、及び検証することでデータを保護する。
図2(B)は、ICカード1の機能構成例を示す図である。図2(B)の例では、ICカード1のOS上で、ISD、SSD-1、Application-1、Application-2、Application-3、及びApplication-4が実現されている。つまり、図2(B)の例では、ICカード1は、当該ICカード1にインストールされた各Applicationを管理するSDを複数備えることになる。図2(B)において、SCP通信のICカード1におけるエンドポイントは、ISD及びSSD-1のそれぞれとなる。よって、SCPで用いられる鍵はSD毎に管理される。各SDは、例えば、論理的な鍵空間を鍵ストレージで管理する。鍵ストレージは、例えば不揮発性メモリ13におけるセキュアな記憶領域に設けられる。
図3(A)は、SDにより管理される論理的な鍵空間の一例を示す図である。各SDは、独立した鍵空間を持ち、図3(A)に示すように、鍵空間をkey version number(0x01〜0x7F)で管理する。各SDは、key version numberで管理する鍵空間(鍵ストレージ)へ、key ID(0x00〜0x7F)を割り当てた鍵を格納する。そして、各SDは、key version numberとkey IDを参照し、自己が保持する鍵情報(Key1 ,Key2等)を一意に特定する。このような鍵情報には、鍵の値の他に、key type(DES, AES, RSAなど)、及びkey lengthが含まれる。なお、各SDが実際にメモリ上へ確保する鍵空間のサイズについては例えばICカード1の発行前に決められる。
図3(B)は、SDにより管理されるデフォルトキーテーブルの一例を示す図である。各SDは、独立したデフォルトキーテーブルを持ち、図3(B)に示すように、デフォルトキーテーブルはロジカルチャネル番号(01、02)とデフォルトキーバージョンを示すkey version numberを対応付けている。デフォルトキーテーブルは、外部機器2からkey version numberとして「0x00」を含むINITIALIZE UPDATEコマンドを受信した際にSDにより参照され、SDは当該コマンドに含まれるロジカルチャネル番号に対応するデフォルトキーバージョンに対応する鍵を選択して、セッションキーの作成に使用する。
このように第1実施形態では、デフォルトキーバージョンに対して、ロジカルチャネルとの紐付けを行い、ロジカルチャネル別にデフォルトキーバージョンが存在することを可能にすることで、複数のデフォルトキーバージョンをロジカルチャネルに応じて使い分けることができる。SDは、鍵を登録する際、PUT KEYコマンド、STORE DATAコマンドと呼ばれるコマンド(GlobalPlatform仕様にて定義)を実行する。当該コマンドを実行する際、既存仕様にて要求される鍵に関する情報(鍵値、鍵長、鍵の暗号アルゴリズム種別(AES/DES/RSAなど)、key version numberなど)に加え、新たに「鍵に紐付けるロジカルチャネル番号」を付与するものとする。

例えば、PUT KEYコマンド実行時に、key version number「0x20」とロジカルチャネル番号「01」を紐付け、key version number「0x30」とロジカルチャネル番号「02」を紐付け、key version number「0x20」及びkey version number「0x30」で示されるキーバージョンをデフォルトキーバージョンとして設定する。この場合、外部機器2は、INITIALIZE UPDATEコマンドをロジカルチャネル番号「01」で識別されるロジカルチャネルを介して送信し、key version numberとして「0x00」を指定すると、暗黙的にロジカルチャネル番号「01」に紐付けられているkey version number「0x20」で示されるキーバージョンの鍵を用いてセッションキーが作成される。
複数のSD及び複数のApplicationは互いの間で階層構造を形成する。図4は、複数のSD及び複数のApplication間で形成される階層構造の一例を示す図である。図4の例では、階層構造における最上位に位置するISDの配下には、SSD-1、Application-1及びApplication-2が位置(存在)するため、SSD-1、Application-1及びApplication-2は、ISDのセキュリティポリシーが適応される。また、SSD-1の配下には、Application-3及びApplication-4が位置するため、Application-3及びApplication-4は、SSD-1のセキュリティポリシーが適応され、さらに、その上位のISDのセキュリティポリシーも適応される。
なお、外部機器2とApplication-3との通信路(ロジカルチャネル)についてセキュア処理を実行する場合には、Application-3は独自の鍵ストレージを保有していないので、直ぐ上位のSSD-1にセキュア処理の一部又は全てを実行してもらう。
[1.2.ICチップ1aにおけるコマンド受信時処理]
次に、図5を用いて、ICチップ1aのSSD-1(SELECTコマンドにより選択されたアプリケーションとしてのSSD-1)が外部機器2からコマンド(SELECTコマンド以外のコマンド)を受信した際の動作について説明する。
まず、SSD-1(を実行するCPU10)は、ロジカルチャネルを通じて受信したコマンドがINITIALIZE UPDATEコマンドであるか否かを判定する(ステップS101)。SSD-1は、受信したコマンドがINITIALIZE UPDATEコマンドではないと判定した場合には(ステップS101:NO)、受信したコマンドを実行し(ステップS102)、外部機器2に応答を送信して(ステップS109)、当該フローチャートに示す処理を終了する。一方、SSD-1は、受信したコマンドがINITIALIZE UPDATEコマンドであると判定した場合には(ステップS101:YES)、INITIALIZE UPDATEコマンドに含まれるkey version numberが「0x00」であるか否かを判定する(ステップS103)。
SSD-1はkey version numberが「0x00」であると判定した場合には(ステップS103:YES)、自らのデフォルトキーテーブルを参照して、INITIALIZE UPDATEコマンドに含まれるチャネル番号に対応するデフォルトキー(key version number)が存在するか否かを確認する(ステップS104)。SSD-1は、デフォルトキーが存在すると判定した場合には(ステップS104:YES)、当該デフォルトキーの3つの鍵を用いてコマンド実行(Card challengeと3つの鍵を基に3つのセッションキーを生成し、Card challengeとHost challengeを材料に、セッションキーを用いてCard cryptogramを演算)して(ステップS105)、次いで、Card challengeとCard cryptogramを含む応答を外部機器2に送信し(ステップS109)、当該フローチャートに示す処理を終了する。また、SSD-1は、デフォルトキー(key version number)が存在しないと判定した場合には(ステップS104:NO)、エラー処理(エラー情報の生成等)を実行し(ステップS106)、外部機器2に応答を送信し(ステップS109)、当該フローチャートに示す処理を終了する。
一方、SSD-1はkey version numberが「0x00」ではないと判定した場合には(ステップS103:NO)、自らの論理的な鍵空間を参照して、INITIALIZE UPDATEコマンドに含まれるkey version numberに対応するキーバージョンの鍵が存在するか否かを確認する(ステップS107)。SSD-1は、key version numberに対応するキーバージョンの鍵が存在すると判定した場合には(ステップS107:YES)、当該key version numberに対応する3つの鍵を用いてコマンド実行(Card challengeと3つの鍵を基に3つのセッションキーを生成し、Card challengeとHost challengeを材料に、セッションキーを用いてCard cryptogramを演算)して(ステップS108)、次いで、Card challengeとCard cryptogramを含む応答を外部機器2に送信し(ステップS109)、当該フローチャートに示す処理を終了する。また、SSD-1は、key version numberに対応するキーバージョンの鍵が存在しないと判定した場合には(ステップS107:NO)、エラー処理(エラー情報の生成等)を実行し(ステップS106)、外部機器2に応答を送信し(ステップS109)、当該フローチャートに示す処理を終了する。
以上のように、第1実施形態のICカード1は、RAM11(「メモリ」の一例)が、外部機器2とApplication間における開設済の通信路(ロジカルチャネル)をセキュアな通信路にするセキュア処理に用いる鍵(「キー」の一例)をkey version number(「キーバージョン」)毎に記憶し、CPU10(「実行部」の一例)がセキュア処理に使用する鍵のkey versionを示すkey version number(「キーバージョン情報」の一例)を含むINITIALIZE UPDATEコマンド(「コマンド」の一例)を受信した場合に当該key versionの鍵を用いてセキュア処理を実行する。また、RAM11は、key version numberとして「0x00」(「所定の情報」の一例)を含むINITIALIZE UPDATEコマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するためのロジカルチャネル番号(「識別情報」の一例)と対応付けて記憶し、CPU10は、key version numberとして「0x00」を含むINITIALIZE UPDATEコマンドを受信した場合に、開設済の通信路(ロジカルチャネル)に対応するロジカルチャネル番号により識別されるデフォルトキーバージョンの鍵を用いてセキュア処理を実行する。
したがって、第1実施形態のICカード1によれば、複数のデフォルトキーバージョンがこれらを識別するロジカルチャネル番号とともに設定され、key version numberとして「0x00」を含むINITIALIZE UPDATEコマンドを受信した場合に、開設済の通信路(ロジカルチャネル)に対応するロジカルチャネル番号により識別されるデフォルトキーバージョンの鍵を用いてセキュア処理を実行する。すなわち、デフォルトキーバージョンの使い分け方に応じてロジカルチャネル番号を設定しておくことにより、INITIALIZE UPDATEコマンドにおいてkey version numberを明示的に指定しなくても、複数のデフォルトキーバージョンを使い分けることができる。
[2.第2実施形態]
以下、図面を参照して本発明の第2実施形態について詳細に説明する。なお、第2実施形態は、第1実施形態と一部を除き同様であるので、第1実施形態との相違点を中心に説明する。
[2.1.ICチップ1aの構成に関する相違点]
まず、第1実施形態では、図3(B)に示すデフォルトキーテーブルを使用したが、第2実施形態では、図6に示すデフォルトキーテーブルを使用する。本実施形態のデフォルトキーテーブルは、Applicationを識別するAID(Application ID)(01、02)とデフォルトキー(key version number)を対応付ける。デフォルトキーテーブルは、外部機器2からkey version numberとして「0x00」を含むINITIALIZE UPDATEコマンドを受信した際にSDにより参照され、SDは当該コマンドの送信先であるApplicationに対応するデフォルトキー(key version number)に対応する鍵を選択する。
このように第2実施形態では、デフォルトキーバージョンに対して、Applicationとの紐付けを行い、Application別にデフォルトキーバージョンが存在することを可能にすることで、複数のデフォルトキーバージョンをApplicationに応じて使い分けることができる。SDは、鍵を登録する際、PUT KEYコマンド、STORE DATAコマンドと呼ばれるコマンド(GlobalPlatform仕様にて定義)を実行する。当該コマンドを実行する際、既存仕様にて要求される鍵に関する情報(鍵値、鍵長、鍵の暗号アルゴリズム種別(AES/DES/RSAなど)、key version numberなど)に加え、新たに「鍵に紐付けるアプリケーションを識別するAID」を付与するものとする。AIDとはアプリケーションを一意に特定する名前を意味するものである。
SDの配下にApplicationが存在する場合、SDとApplicationは管理者と被管理者の関係にあり、ApplicationはSDに開設済の通信路についてセキュア処理を依頼することが可能である。例えば、図4の階層構造において、PUT KEYコマンド実行時に、key version number「0x20」とApplication-3のAID「03」を紐付け、key version number「0x30」とApplication-4のAID「04」を紐付け、key version number「0x20」及びkey version number「0x30」で示されるキーバージョンをデフォルトキーバージョンとして設定する。この場合、key version number「0x00」を指定するINITIALIZE UPDATEコマンドをApplication-3が実行し、SSD-1にセキュアな通信路の開設を依頼すると、暗黙的にApplication-3に紐付けられているkey version number「0x20」の鍵が使用される。また、key version number「0x00」を指定するINITIALIZE UPDATEコマンドをApplication-4が実行し、SSD-1にセキュアな通信路の開設を依頼すると、暗黙的にApplication-4に紐付けられているkey version number「0x30」の鍵が使用されることになる。アプリケーションが、SDにセキュアな通信路の開設を依頼した場合だけでなく、SDが自身でセキュアな通信路を開設する場合も同様に、INITIALIZE UPDATEコマンドをkey version number「0x00」を指定して実行した場合は、SD自身に紐付けられたデフォルトキーが暗黙的に使用されることになる。
[2.2.ICチップ1aにおけるコマンド受信時処理]
次に、図7を用いて、第2実施形態におけるICチップ1aの一のApplication(SELECTコマンドにより選択されたApplication)が外部機器2からコマンド(SELECTコマンド以外のコマンド)を受信した際の動作について説明する。
まず、Application(を実行するCPU10)は、ロジカルチャネルを通じて受信したコマンドがINITIALIZE UPDATEコマンドであるか否かを判定する(ステップS201)。Applicationは、受信したコマンドがINITIALIZE UPDATEコマンドではないと判定した場合には(ステップS201:NO)、受信したコマンドを実行し(ステップS202)、外部機器2に応答を送信して(ステップS209)、当該フローチャートに示す処理を終了する。一方、Applicationは、受信したコマンドがINITIALIZE UPDATEコマンドであると判定した場合には(ステップS201:YES)、コマンド実行を直ぐ上位のSDに依頼する。そして、SD(を実行するCPU10)は、INITIALIZE UPDATEコマンドに含まれるkey version numberが「0x00」であるか否かを判定する(ステップS203)。
SDはkey version numberが「0x00」であると判定した場合には(ステップS203:YES)、自らのデフォルトキーテーブルを参照して、INITIALIZE UPDATEコマンドを受信したApplicationを識別するAIDに対応するデフォルトキー(key version number)が存在するか否かを確認する(ステップS204)。SDは、デフォルトキー(key version number)が存在すると判定した場合には(ステップS204:YES)、当該デフォルトキー(key version number)の3つの鍵を用いてコマンド実行(Card challengeと3つの鍵を基に3つのセッションキーを生成し、Card challengeとHost challengeを材料に、セッションキーを用いてCard cryptogramを演算)して(ステップS205)、次いで、Card challengeとCard cryptogramを含む応答を外部機器2に送信し(ステップS209)、当該フローチャートに示す処理を終了する。また、SDは、デフォルトキー(key version number)が存在しないと判定した場合には(ステップS204:NO)、エラー処理(エラー情報の生成等)を実行し(ステップS206)、外部機器2に応答を送信し(ステップS209)、当該フローチャートに示す処理を終了する。
一方、SDはkey version numberが「0x00」ではないと判定した場合には(ステップS203:NO)、自らの論理的な鍵空間を参照して、INITIALIZE UPDATEコマンドに含まれるkey version numberに対応するキーバージョンの鍵が存在するか否かを確認する(ステップS207)。SDは、key version numberに対応するキーバージョンの鍵が存在すると判定した場合には(ステップS207:YES)、当該key version numberに対応する3つの鍵を用いてコマンド実行(Card challengeと3つの鍵を基に3つのセッションキーを生成し、Card challengeとHost challengeを材料に、セッションキーを用いてCard cryptogramを演算)して(ステップS208)、次いで、Card challengeとCard cryptogramを含む応答を外部機器2に送信し(ステップS209)、当該フローチャートに示す処理を終了する。また、SDは、key version numberに対応するキーバージョンの鍵が存在しないと判定した場合には(ステップS207:NO)、エラー処理(エラー情報の生成等)を実行し(ステップS206)、外部機器2に応答を送信し(ステップS209)、当該フローチャートに示す処理を終了する。
以上のように、第2実施形態のICカード1は、RAM11(「メモリ」の一例)が、外部機器2とApplication間における開設済の通信路(ロジカルチャネル)をセキュアな通信路にするセキュア処理に用いる鍵(「キー」の一例)をkey version number(「キーバージョン」)毎に記憶し、CPU10(「実行部」の一例)がセキュア処理に使用する鍵のkey version numberを示す情報(「キーバージョン情報」の一例)を含むINITIALIZE UPDATEコマンド(「コマンド」の一例)を受信した場合に当該key version numberの鍵を用いてセキュア処理を実行する。また、RAM11は、key version numberとして「0x00」(「所定の情報」の一例)を含むINITIALIZE UPDATEコマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するためのAID(「識別情報」の一例)と対応付けて記憶し、CPU10は、key version numberとして「0x00」を含むINITIALIZE UPDATEコマンドを受信した場合に、開設済の通信路(ロジカルチャネル)に対応するアプリケーションを識別するAIDにより識別されるデフォルトキーバージョンの鍵を用いてセキュア処理を実行する。
したがって、第2実施形態のICカード1によれば、複数のデフォルトキーバージョンがこれらを識別するAIDとともに設定され、key version numberとして「0x00」を含むINITIALIZE UPDATEコマンドを受信した場合に、開設済の通信路(ロジカルチャネル)に対応するアプリケーションのAIDにより識別されるデフォルトキーバージョンの鍵を用いてセキュア処理を実行する。すなわち、デフォルトキーバージョンの使い分け方に応じてAIDを設定しておくことにより、INITIALIZE UPDATEコマンドにおいてkey version numberを明示的に指定しなくても、複数のデフォルトキーバージョンを使い分けることができる。
1 ICカード
1a ICチップ
2 外部機器
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路

Claims (5)

  1. 外部機器とアプリケーション間における開設済の通信路をセキュアな通信路にするセキュア処理に用いるキーをキーバージョン毎に記憶するメモリと、前記セキュア処理に使用するキーのキーバージョンを示すキーバージョン情報を含むコマンドを受信した場合に当該キーバージョンのキーを用いて前記セキュア処理を実行する実行部と、を備える電子情報記憶媒体であって、
    前記メモリは、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するための識別情報と対応付けて記憶し、
    前記実行部は、前記キーバージョン情報として前記所定の情報を含む前記コマンドを受信した場合に、前記開設済の通信路に対応する前記識別情報により識別されるデフォルトキーバージョンのキーを用いて前記セキュア処理を実行することを特徴とする電子情報記憶媒体。
  2. 請求項1に記載の電子情報記憶媒体であって、
    前記識別情報は、前記開設済の通信路に対応するロジカルチャネル番号を示す情報であって、
    前記実行部は、前記キーバージョン情報として前記所定の情報を含む前記コマンドを受信した場合に、前記ロジカルチャネル番号に対応するデフォルトキーバージョンのキーを用いて前記セキュア処理を実行することを特徴とする電子情報記憶媒体。
  3. 請求項1に記載の電子情報記憶媒体であって、
    前記識別情報は、前記開設済の通信路を使用して前記外部機器と通信を行う前記アプリケーションを識別するアプリケーション情報であって、
    前記実行部は、前記キーバージョン情報として前記所定の情報を含む前記コマンドを受信した場合に、前記アプリケーション情報に対応するデフォルトキーバージョンのキーを用いて前記セキュア処理を実行することを特徴とする電子情報記憶媒体。
  4. 外部機器とアプリケーション間における開設済の通信路をセキュアな通信路にするセキュア処理に用いるキーをキーバージョン毎に記憶するメモリと、前記セキュア処理に使用するキーのキーバージョンを示すキーバージョン情報を含むコマンドを受信した場合に当該キーバージョンのキーを用いて前記セキュア処理を実行する実行部と、を備える電子情報記憶媒体によるセキュア処理実行方法であって、
    前記メモリは、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するための識別情報と対応付けて記憶し、
    前記実行部が、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に、前記開設済の通信路に対応する前記識別情報により識別されるデフォルトキーバージョンのキーを用いて前記セキュア処理を実行するステップを含むことを特徴とするセキュア処理実行方法。
  5. 外部機器とアプリケーション間における開設済の通信路をセキュアな通信路にするセキュア処理に用いるキーをキーバージョン毎に記憶するメモリと、前記セキュア処理に使用するキーのキーバージョンを示すキーバージョン情報を含むコマンドを受信した場合に当該キーバージョンのキーを用いて前記セキュア処理を実行する実行部と、を備え、前記メモリが、前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に用いる複数のデフォルトキーバージョンを、これらを識別するための識別情報と対応付けて記憶する電子情報記憶媒体における前記実行部に、
    前記キーバージョン情報として所定の情報を含む前記コマンドを受信した場合に、前記開設済の通信路に対応する前記識別情報により識別されるデフォルトキーバージョンのキーを用いて前記セキュア処理を実行するステップを実行させることを特徴とするセキュア処理実行プログラム。
JP2016221726A 2016-11-14 2016-11-14 電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム Active JP6780462B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016221726A JP6780462B2 (ja) 2016-11-14 2016-11-14 電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016221726A JP6780462B2 (ja) 2016-11-14 2016-11-14 電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム

Publications (2)

Publication Number Publication Date
JP2018082246A true JP2018082246A (ja) 2018-05-24
JP6780462B2 JP6780462B2 (ja) 2020-11-04

Family

ID=62199038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016221726A Active JP6780462B2 (ja) 2016-11-14 2016-11-14 電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム

Country Status (1)

Country Link
JP (1) JP6780462B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134413A (ja) * 1995-11-08 1997-05-20 Tokin Corp 非接触型データキャリアシステム
JP2004266835A (ja) * 2003-02-28 2004-09-24 Microsoft Corp アクセスポイント間のレンジ拡張
JP2006197059A (ja) * 2005-01-12 2006-07-27 Matsushita Electric Ind Co Ltd 通信システム、及びプログラム
US20120036363A1 (en) * 2010-08-05 2012-02-09 Motorola, Inc. Method for key identification using an internet security association and key management based protocol
JP2016515235A (ja) * 2013-02-12 2016-05-26 アマゾン テクノロジーズ インコーポレイテッド 関連データを有するポリシー施行
WO2016126332A2 (en) * 2014-12-17 2016-08-11 Amazon Technologies, Inc. Data security operations with expectations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134413A (ja) * 1995-11-08 1997-05-20 Tokin Corp 非接触型データキャリアシステム
JP2004266835A (ja) * 2003-02-28 2004-09-24 Microsoft Corp アクセスポイント間のレンジ拡張
JP2006197059A (ja) * 2005-01-12 2006-07-27 Matsushita Electric Ind Co Ltd 通信システム、及びプログラム
US20120036363A1 (en) * 2010-08-05 2012-02-09 Motorola, Inc. Method for key identification using an internet security association and key management based protocol
JP2016515235A (ja) * 2013-02-12 2016-05-26 アマゾン テクノロジーズ インコーポレイテッド 関連データを有するポリシー施行
WO2016126332A2 (en) * 2014-12-17 2016-08-11 Amazon Technologies, Inc. Data security operations with expectations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GLOBALPLATFORM CARD SPECIFICATION, vol. Version 2.2.1, JPN6020034109, January 2011 (2011-01-01), pages 59 - 68, ISSN: 0004343522 *

Also Published As

Publication number Publication date
JP6780462B2 (ja) 2020-11-04

Similar Documents

Publication Publication Date Title
US8391837B2 (en) Method, system and trusted service manager for securely transmitting an application to a mobile phone
KR100978053B1 (ko) 무선 단말기에서 보안 요소를 초기화하기 위한 방법 및장치
US8297520B1 (en) Secure application directory
KR20130099999A (ko) 보안 소자에 애플리케이션 데이터의 기입
KR20130006258A (ko) 동적 키 생성 기반의 내장 sim의 mno 변경방법 및 그를 위한 내장 sim과 기록매체
KR20120005411A (ko) Nfc 장치에서의 보안 어플리케이션 실행 방법
US7516479B2 (en) Data communicating apparatus and method for managing memory of data communicating apparatus
KR101824249B1 (ko) 인증용 개인키를 내부적으로 생성하는 집적 회로 유형의 전자 소자 제어 방법
US10021104B2 (en) Method for operating a security element
EP2048591A1 (en) Method for communication, communication device and secure processor
KR20130006257A (ko) 내장 sim에서의 키 관리방법, 및 그를 위한 내장 sim과 기록매체
JP2019153310A (ja) 情報処理装置、情報処理方法、およびプログラム
CN117546162A (zh) 用于控制对存储设备的访问的密码认证
JP2004252707A (ja) メモリデバイス
JP2015135610A (ja) 携帯可能電子装置、および電子回路
JP2012141754A (ja) Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及び携帯端末
JP6780462B2 (ja) 電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム
JP6874318B2 (ja) 電子情報記憶媒体、icカード、サポート情報更新方法、及びサポート情報更新プログラム
CN105790946B (zh) 建立数据通道的方法、系统及相关设备
KR20230019032A (ko) 사전 개인화된 보안 요소 및 내장된 개인화
KR101040577B1 (ko) 모바일 애플리케이션 재발급 방법 및 시스템
JP7444325B1 (ja) 電子情報記憶媒体、icチップ、icカード、公開鍵管理方法、及びプログラム
JP6305284B2 (ja) 携帯可能電子装置
JP6505893B2 (ja) 携帯可能電子装置
JP7487837B1 (ja) 電子情報記憶媒体、icチップ、icカード、鍵データ格納方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200715

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200928

R150 Certificate of patent or registration of utility model

Ref document number: 6780462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150