(57)【要約】【課題】  ＩＣカード更新時に、安全でない端末を利用して、旧ＩＣカードから新ＩＣカードへのデータ移行を行う場合には、ＩＣカードの管理者が行うことが前提となっており、ユーザが自由にＩＣカードのデータを移行することができなかった。また、マルチアプリケーション部が搭載されたＩＣカードの場合には、複数のサービス提供者がデータの移行作業を行う必要があり、データの移行作業を煩雑にしていた。【解決手段】  ＩＣカード内にデータ移行時に利用する、データ移行部を予め搭載しておき、データ移行時には、旧ＩＣカードと新ＩＣカードに搭載されているデータ移行部を利用してデータの移行を行う。この方法を用いることにより、旧カードと新カードの間の端末が安全である必要がなく、複数のアプリケーション部のデータを移行可能で、ＩＣカード管理者ではないユーザでも自由に実施可能となる。【選択図】  図１
2006309475.tif 000002
【特許請求の範囲】
【請求項１】
データ移行元ＩＣカードと、データ移行先ＩＣカードと、からなるＩＣカードのデータ移行システムであって、
前記データ移行元ＩＣカードは、一つ以上の移行元アプリケーション部と、データ送信部と、を備え、
前記データ移行先ＩＣカードは、前記データ移行元ＩＣカードが備える前記移行元アプリケーション部に対応する移行先アプリケーション部と、データ受信部と、を備え、
前記データ移行元ＩＣカードの前記データ送信部は、
前記移行元アプリケーション部から当該データ送信部へ移行データを移動し、
移動した前記移行データを送信し、
前記データ移行先ＩＣカードの前記データ受信部は、
送信された前記移行データを受信し、
受信した前記移行データを前記移行先アプリケーション部に移動する
ことを特徴とするデータ移行システム。
【請求項２】
請求項１記載のＩＣカードのデータ移行システムであって、
さらに、端末を備え、
前記端末は、
前記データ移行元ＩＣカードの前記データ送信部に対して、データ移行コマンドを生成するコマンド生成部と、
前記データ送信部から前記移行データを受信し、前記データ移行先ＩＣカードのデータ受信部に送信するＩＣカードアクセス部と、を備える
ことを特徴とするＩＣカードのデータ移行システム。
【請求項３】
請求項２記載のＩＣカードのデータ移行システムであって、
前記端末の前記コマンド生成部は、
前記データ移行先ＩＣカードのＩＤを取得し、
取得した前記ＩＤに基づき、前記コマンド生成部でデータ移行コマンドを生成し、
前記データ移行コマンドを、前記ＩＣカードアクセス部を介して、前記データ移行元ＩＣカード内の前記データ送信部に送信し、
前記データ移行元ＩＣカードの前記データ送信部は、
前記移行元アプリケーション部のデータ保管部から、前記移行データを読み出し、前記データ送信部のデータ保管部に格納し、
前記移行元アプリケーション部の前記データ保管部から、前記移行データを削除し、
前記データ送信部の前記データ保管部に格納した前記移行データを、前記端末の前記ＩＣカードアクセス部へ送信し、
前記端末の前記ＩＣカードアクセス部は、前記移行データを受信し、前記データ移行先ＩＣカードのデータ受信部へ送信し、
前記データ受信部は、受信した前記移行データを、前記移行先アプリケーション部のデータ保管部に書き込み、
前記移行データの移行処理結果を、前記データ移行元ＩＣカードの前記データ送信部に送信する
ことを特徴とするＩＣカードのデータ移行システム。
【請求項４】
請求項３記載のＩＣカードのデータ移行システムであって、
前記データ送信部は、前記移行データを、前記移行元アプリケーション部の前記データ保管部から移動した後に、前記移行元アプリケーション部をロックする
ことを特徴とするＩＣカードのデータ移行システム。
【請求項５】
請求項３記載のＩＣカードのデータ移行システムであって、
前記データ送信部は、前記データ保管部に格納した前記移行データに、前記データ移行先ＩＣカードのＩＤと、前記移行先アプリケーション部のＩＤを付加し、
前記データ受信部は、前記移行データに付加された二つの前記ＩＤを検証する
ことを特徴とするＩＣカードのデータ移行システム。
【請求項６】
請求項５記載のＩＣカードのデータ移行システムであって、
前記データ移行元ＩＣカードと前記データ移行先ＩＣカードとは、複数の前記アプリケーション部を備え、
前記データ送信部は、前記データ保管部に保存した前記移行データに、前記複数の移行元アプリケーションのいずれかを特定するＩＤを付加し、
前記データ受信部は、前記移行データに付加された複数の前記移行先アプリケーション部のいずれかを特定するＩＤに基づいて、前記移行データの移動先となる前記移行先アプリケーション部を決定する
ことを特徴とするＩＣのデータ移行システム。
【請求項７】
請求項３記載のＩＣカードのデータ移行システムであって、
前記データ移行元ＩＣカード内の前記データ送信部と前記データ移行先ＩＣカード内の前記データ受信部は、
相互に認証処理を行い、
セッション鍵を共有し、
該セッション鍵を用いて、互いに送信または受信するデータに対して署名を付加する
ことを特徴とするＩＣカードのデータ移行システム。
【請求項８】
請求項７記載のＩＣカードのデータ移行システムであって、
前記データ移行元ＩＣカード内の前記データ送信部と前記データ移行先ＩＣカード内の前記データ受信部は、
さらに、前記互いに送信または受信するデータを、前記セッション鍵で暗号化する
ことを特徴とするＩＣカードのデータ移行システム。
【請求項９】
請求項３記載のＩＣカードのデータ移行システムであって、
前記データ受信部は、
受信した前記移行データを、前記移行先アプリケーション部の前記データ保管部への書き込み処理の後に、
前記データ保管部に格納されているデータと、当該データ受信部が受信した前記移行データとを比較し、
前記移行データの書き込み処理の成否を検証する
ことを特徴とするＩＣカードのデータ移行システム。
【請求項１０】
請求項３記載のＩＣカードのデータ移行システムであって、
前記データ送信部は、
前記移行処理結果を受信し、前記移行処理が成功したと判断した場合には、前記データ送信部の前記データ保管部に移動した前記移行データを削除する
ことを特徴とするＩＣカードのデータ移行システム。
【請求項１１】
請求項３記載のＩＣカードのデータ移行システムであって、
前記データ送信部は、
前記移行処理結果を受信し、前記移行処理が失敗したと判断した場合には、前記データ送信部の前記データ保管部に移動した前記移行データを復元する
ことを特徴とするＩＣカードのデータ移行システム。
【請求項１２】
請求項４記載のＩＣカードのデータ移行システムであって、
前記データ送信部は、
前記移行処理結果を受信し、前記移行処理が失敗したと判断した場合には、前記移行元アプリケーション部の前記ロックを解除する
ことを特徴とするＩＣカードのデータ移行システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカード等のデータの移行方法に関し、さらに詳しくは、ＩＣカード等のデータの不正な移行を防ぎ、複数のアプリケーションのデータを移行可能なシステムおよびその方法に関する。
【背景技術】
【０００２】
古いＩＣカードを新しいＩＣカードに切り替える際に、旧ＩＣカード内のアプリケーションプログラム(以下、アプリケーションという)が使用するデータを新ＩＣカードに移行したいという要求は大きい。
【０００３】
上記要求は、単一のサービス提供者の場合にはＩＣカード内のデータを、サービス提供者が移行することで実現される。
【０００４】
また、ＩＣカードに、サービス提供者ごとに領域を分けて、サービス提供者がアプリケーションおよびデータを搭載する技術が知られている（例えば、非特許文献１参照）。このような複数のアプリケーションを搭載可能なマルチアプリケーションＩＣカードの場合、複数のサービス提供者が、ＩＣカード内のアプリケーションのデータをそれぞれ移行することで、上記要求を満たすことができる。
【０００５】
これらの移行作業は、作業を行う人が認証されており、作業を行う装置が不正な端末でないと検証されている安全な環境で行うことが前提とされているが、安全でない端末を利用してデータを移行する方法として、ＩＣカード内にデータ送受信ログを保存し、安全でない端末には一時データを保存しない技術が知られている（例えば、特許文献１参照）。
【０００６】
また、ＩＣカードを新旧二枚のカードを同時に同一機器に挿入せずにデータの移行を行う方法として、メールサーバを利用して行う技術もある（例えば、特許文献２参照）。
【０００７】
さらに、ＩＣカード間のデータ移行時に利用する秘密鍵を容易に更新可能にし、データ移行時の安全性を高める技術もある（例えば、特許文献３参照）。
【０００８】
【特許文献１】特開２００２−１４０６６４号公報
【非特許文献１】GlobalPlatform Inc.,“GlobalPlatform Card Specification Version2.1.1”,[online], ２００３年３月, GlobalPlatform Inc.,ｐ．２８, [２００５年４月６日検索],インターネット＜URL:http://www.globalplatform.org/specificationview.asp?id=card＞
【特許文献２】特開２００３−４４７６９号公報
【特許文献３】米国特許出願公開第２００４／００２５０２１Ａ１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来技術では、安全とは言えない端末を利用して、旧カードから新カードへのデータ移行を行う場合には、カードの管理者が行うことが前提となっており、ユーザの利便性を損ねていた。また、複数のサービス提供者により複数のアプリケーションが搭載されたＩＣカードの場合には，それぞれのサービス提供者がデータの移行作業を行う必要があり、データの移行作業を煩雑にしていた。
【課題を解決するための手段】
【００１０】
本発明は、上記事情に鑑みてなされたものであり、ユーザが，安全とは言えない端末を利用する場合であっても、旧カードから新カードへのデータ移行を行えるシステムを提供する。
【００１１】
具体的には,ＩＣカード内に，データ移行処理を行うアプリケーションプログラム(以下、データ移行アプリケーションという)を予め搭載しておき、データ移行時には、旧ＩＣカードと新ＩＣカードに搭載されているデータ移行アプリケーションを実行して，データ移行部を具現化し，当該データ移行部がデータの移行を行うＩＣカードのデータ移行方法およびその方法が適用されるシステムを提供する。
【００１２】
本システムによれば、旧ＩＣカードから新ＩＣカードへのデータ移行に用いる端末が安全である必要がなく、ＩＣカードの管理者ではないユーザでも自由にデータ移行を実施可能となる。
【００１３】
より具体的には、データ移行時に、旧ＩＣカードのデータ移行部が，対象アプリケーション（複数でもよい）にかかわるデータ(以下、移行データという)を、一旦、自データ移行部が管理するメモリ領域にコピーし（バックアップするという）、対象アプリケーションが管理するメモリ領域から移行するデータを削除することにより移動し、旧ＩＣカード内のデータの不正使用を防ぐ。
【００１４】
また、旧ＩＣカードと新ＩＣカードのデータ移行部間で相互認証を行い、旧ＩＣカード内にバックアップされた移行データを新ＩＣカードのデータ移行部が管理するメモリ領域へ送信し、新ＩＣカードのデータ移行部が、対象アプリケーションが管理するメモリ領域へデータを移動する。その際に署名の付加と暗号化を行うことにより、通信路上の改竄や盗み見を防ぐ。
【００１５】
さらに、データの移行に失敗した場合には、旧ＩＣカードのデータ移行部が、内部に保存したバックアップデータを、旧ＩＣカード内のアプリケーションに復元してもよい。
【発明の効果】
【００１６】
本発明によれば、ＩＣカードの管理者やユーザが、ＩＣカード内の複数アプリケーションのデータを，旧ＩＣカードから新ＩＣカードへ，安全にかつ容易に移行できるようになる。また，データ移行失敗時にもデータの復元が可能になる。
【発明を実施するための最良の形態】
【００１７】
本発明の一実施形態について説明する。なお、これにより本発明が限定されるものではない。
【００１８】
図１は、本発明の一実施形態が適用されたＩＣカードのデータ移行システムの構成図である。
【００１９】
本実施形態のＩＣカードのデータ移行システムは、図１に例示するように、データの移行元であるＩＣカード１０と、データの移行先であるＩＣカード２０と、それぞれの間でデータの送受信を行う通信路３０とが互いに接続されて構成されている。
【００２０】
ＩＣカード１０とＩＣカード２０は、それぞれ，外部からコマンドを受信し、受信したコマンドの内容により処理を行い、処理結果を返信する。該ＩＣカード１０，２０は、それぞれ，コマンドを受信し，処理結果を送信するデータ送受信部１０１，２０１と、コマンドを解析するコマンド解析部１０２，２０２と、コマンドを解析するために使う鍵を保管しておく鍵保管部１０４１〜１０４ｎ（以降、１０４と示すこともある），２０４１〜２０４ｎ（以降、２０４と示すこともある）と、コマンドに従い処理を実行するアプリケーション部１０３１〜１０３ｎ（以降、１０３と示すこともある），２０３１〜２０３ｎ（以降、２０３と示すこともある）と、各々の該アプリケーション部１０３１〜１０３ｎ，２０３１〜２０３ｎで利用するデータを保管しておくデータ保管部１０５１〜１０５ｎ（以降、１０５と示すこともある），２０５１〜２０５ｎ（以降、２０５と示すこともある）と、データを移行する際に、データ送信部、データ受信部として動作するデータ移行部１０６，２０６と、該データ移行部１０６，２０６が署名や暗号化を行うための鍵を保管しておく鍵保管部１０７，２０７と、前記データ移行部が利用するデータを保管しておくデータ保管部１０８，２０８と、前記データ移行部が管理するデータ移行処理の状態を保持する処理経過フラグ保持部１０９，２０９と、を含む。
【００２１】
通信路３０上には、前記ＩＣカード１０および前記ＩＣカード２０とコマンドの受信と，処理結果の送信を行う端末４０を設ける。端末４０は、前記ＩＣカード１０および前記ＩＣカード２０とコマンドの受信と，処理結果の送信を行うＩＣカードアクセス部４０２と、データの移行指示コマンドを生成するコマンド生成部４０１と、を含む。
【００２２】
図２はＩＣカード１０のハードウェア構成を例示する図である。ＩＣカード１０は、入出力装置１１と、ＣＰＵ１２と、耐タンパ記憶装置１３と、耐タンパメモリ１４と、がバスなどの内部通信線１５で接続されて構成されている。ＩＣカード２０のハードウェア構成はＩＣカード１０のハードウェア構成と同様である。ここで、ＩＣカードの形状はテレホンカードのような名刺形状に限定するものではなく、前記の構成要素を含むハードウェアであれば、たとえば、ＳＤメモリーカードの形状であってもよい。
【００２３】
図３は端末４０のハードウェア構成を例示する図である。端末４０は、記憶装置４１と、少なくとも一つのＩＣカード入出力装置４２と、ＣＰＵ４３と、メモリ４４と、がバスなどの内部通信線４５で連結され、構成されている。
【００２４】
図1に示すデータ送受信部１０１，２０１、コマンド解析部１０２，２０２、アプリケーション部１０３，２０３、データ移行部１０６，２０６は、各装置の記憶装置１３，４１に格納されたプログラムがメモリ１４，４４にロードされ、ＣＰＵ１２，４３により実行されることにより、ＩＣカードのデータ移行システムを構成する端末４０、ＩＣカード１０，２０上に具現化される。より具体的には、アプリケーション部はアプリケーションプログラムが実行されることにより、データ移行部はデータ移行アプリケーションプログラムが実行されることにより、それぞれ具現化される。
【００２５】
また、各プログラムは予め記憶装置１３，４１に格納されていても良いし、他の記憶媒体または通信媒体（ネットワークまたはネットワークを伝搬するデジタル信号または搬送波）を介して、必要な時に導入されても良い。
【００２６】
本実施形態のＩＣカードのデータ移行システムにおける処理フローについて説明する。
【００２７】
図４は、端末４０で生成されたデータ移行依頼に従って、ＩＣカード１０からＩＣカード２０にデータを移行する際の概略フロー図である。
【００２８】
まず、アプリケーション部１０３とデータ移行部１０６と端末４０とデータ移行部２０６の間で、データ読み出し処理を行う(ステップ４０１（Ｓ４０１と表現する。以下同様）)。
【００２９】
次に、データ移行部１０６と端末４０とデータ移行部２０６の間で、移行データ送受信処理を行う（Ｓ４０２）。
【００３０】
次に、データ移行部２０６とアプリケーション部２０３の間で、データ書き込み処理を行う（Ｓ４０３）。
【００３１】
次に、データ移行部１０６と端末４０とデータ移行部２０６の間で、移行結果送受信処理を行う（Ｓ４０４）。
【００３２】
最後に、必要であれば、アプリケーション部１０３とデータ移行部１０６と端末３０の間で、データ復元処理を行う（Ｓ４０５）。
【００３３】
図５は、図４の処理フローのうち、データ読み出し処理（Ｓ４０１）を詳細化した図である。
【００３４】
まず、端末４０のＩＣカードアクセス部４０２は、データ移行先ＩＣカード２０がＩＣカード入出力装置４２に挿入された時に，データ移行依頼を実行する（Ｓ５０１）。つぎに、データ移行先ＩＣカード２０のデータ移行部２０６に対して、ＩＤ取得コマンド（Ａ５０１）を送信する。なお、端末４０に，使用者によるデータ移行指示を受け付ける入力装置が備わっている場合には、入力装置から指示が入力された時にデータ移行依頼を実行してもよい。
【００３５】
次に、データ移行部２０６は、データ移行先ＩＣカード２０のＩＤを取得する（Ｓ５０２）。つぎに、端末４０に対し、ＩＤ（Ａ５０２）を送信する。
【００３６】
端末４０のコマンド生成部４０１は、取得したＩＤを用いて、データ移行コマンドを生成する（Ｓ５０３）。つぎに、生成したデータ移行コマンド（Ａ５０３）を、ＩＣカードアクセス部４０２を介して、ＩＣカード１０内のデータ移行部１０６へ送信する。
【００３７】
次に、データ移行部１０６は、データ移行元ＩＣカード１０内のアプリケーション部１０３のＩＤを取得する（Ｓ５０４）。つぎに、データ移行部１０６は、データの移行元であるアプリケーション部１０３のデータ保管部１０５にアクセスするために、アプリケーション部１０３との間で認証処理を実施する（Ｓ５０５）。認証が成功したら、アプリケーション部１０３に対し、データ読み出しコマンド（Ａ５０４）を送信する。取得した二種類のＩＤは移行データに組み込まれ、移行データの取り出し元を特定するために利用される。
【００３８】
次に、アプリケーション部１０３は、データ保管部１０５に格納されたデータを読み出す（Ｓ５０６）。つぎに、Ｓ５０６で取得したデータ（Ａ５０５）をデータ移行部１０６に送信する。なお、移行データは電子マネーなどのデータ保管部に格納されたデータでもよいし、アプリケーション部１０３のプログラム本体でもよい。
【００３９】
次に、データ移行部１０６は、受信したデータを前記データ移行部１０６のデータ保管部１０８に書き込む（Ｓ５０７）。つぎに、アプリケーション部１０３のデータ保管部１０５のデータを消去するために、アプリケーション部１０３に対し、データ消去コマンド（Ａ５０６）を送信する。
【００４０】
次に、アプリケーション部１０３は、受信したコマンドを解析し、データ保管部１０５のデータを消去する（Ｓ５０８）。なお、データを消去する方法については、一般的に利用されるメモリの管理テーブルからの参照情報を削除する方法でも良いし、空データを書き込むことによって、データを消去する方法でもよい。
【００４１】
つぎに、データの消去完了を示すレスポンス（Ａ５０７）をデータ移行部１０６に送信する。
【００４２】
Ａ５０４コマンドの送信からＡ５０７コマンドの受信までのフローにより、アプリケーション部１０３のデータ保管部１０５の移行データは、他のＩＣカードへ移す前にデータ移行部１０６のデータ保管部１０８に移動しており、データの移行を開始するとアプリケーション部１０３のデータを不正に使用することはできない。
【００４３】
なお、複数のアプリケーション部のデータを移行する場合には、Ｓ５０５〜Ｓ５０８までのフローを、アプリケーション部毎に繰り返し行う。
【００４４】
また、アプリケーション部１０３のデータ保管部１０５のデータを消去する代わりに、アプリケーション部１０３をロックしてもよい。具体的には、アプリケーション部１０３をロックコマンドを受信すると外部からのコマンドを受け付けなくなるように構成しておき、データ移行アプリケーション１０６からアプリケーション部１０３に対してロックコマンドを送信する。
【００４５】
次に、データ移行部１０６は、前記Ｓ５０７でデータ保管部１０８に書き込んだデータを、図１３に示す移行データの形式に変換する（Ｓ５０９）。
【００４６】
図６は、図４の処理フローのうち、移行データ送受信処理（Ｓ４０２）を詳細化した図である。
【００４７】
まず、データ移行元ＩＣカード１０内のデータ移行部１０６と、データ移行先ＩＣカード２０内のデータ移行部２０６との間で、端末４０を介し、相互認証処理を実施し、以降の署名や暗号化に利用するセッション鍵を共有する（Ｓ６０１）。該認証処理で用いる暗号は、認証処理中にセッション鍵を共有できるものであれば、共通鍵暗号でもよいし、公開鍵暗号でもよい。その際、端末４０はデータ移行元ＩＣカード１０とデータ移行先ＩＣカード２０の間のデータ送受信を行う。
【００４８】
つぎに、データ移行部１０６は、Ｓ６０１で共有したセッション鍵を用いて、移行データの署名を生成する（Ｓ６０２）。つぎに、移行データ自身をセッション鍵で暗号化する（Ｓ６０３）。その後、暗号化された移行データと署名（Ａ６０１）を端末４０に送信する。
【００４９】
次に、端末４０は、受信したデータ(Ａ６０１)をＩＣカード２０内のデータ移行部２０６に送信する（Ｓ６０４）。
【００５０】
次に、データ移行部２０６は、Ｓ６０１で共有したセッション鍵を用いて、暗号化された移行データの復号を行う(Ｓ６０５)。つぎに、移行データの署名の検証と移行データに記載された、移行先ＩＣカードのＩＤが、データ移行先ＩＣカード２０のＩＤと一致するか検証する（Ｓ６０６）。この検証により、移行データを異なるＩＣカードに複数回移行することを避けることができる。署名もしくはＩＤの検証に失敗した場合には、その旨を示すレスポンスを端末４０に送信し、データ移行処理を中止する（Ｓ６０７）。署名およびＩＤの検証に成功した場合には、移行データをデータ移行部２０６のデータ保管部２０８に書き込む（Ｓ６０８）。
【００５１】
図７は、図４の処理フローのうち、データ書き込み処理（Ｓ４０３）を詳細化した図である。
【００５２】
データ移行部２０６は、データの移行先であるアプリケーション部２０３のデータ保管部２０５にアクセスするために、アプリケーション部２０３との間で認証処理を実施し読み出し権限が有ることを確認する（Ｓ７０１）。
つぎに、Ｓ６０７でデータ移行部２０６のデータ保管部２０８に書き込んだ移行データを、アプリケーション部２０３のデータ保管部２０５に書き込むために、アプリケーション部２０３に対し、データ書き込みコマンド（Ａ７０１）を送信する。
【００５３】
次に、アプリケーション部２０３は、受信したコマンド（移行データを含む）を解析し、データ保管部２０５に移行データを書き込む（Ｓ７０２）。この移行データはアプリケーション毎に纏めたデータである。
その後、レスポンス（Ａ７０２）をデータ移行部２０６に送信する。
【００５４】
次に、データ移行部２０６は、アプリケーション部２０３に対し、データ読み出しコマンド（Ａ７０３）を送信する。このコマンドはＡ５０４のコマンドと同じである。
【００５５】
なお、データ移行部２０６は、アプリケーション部２０３のデータ読み出し、書き込みに関するインターフェイス（アドレスなど）を知っているものとする。
【００５６】
次に、アプリケーション部２０３は、受信したコマンドを解析し、データ保管部２０５からデータの読み出しを行う（Ｓ７０３）。その後、読み出したデータ（Ａ７０４）をデータ移行部２０６に送信する。
【００５７】
次に、データ移行部２０６は、受信したデータ（Ａ７０４）と、Ｓ６０７でデータ保管部２０８に書き込んだデータを比較し、書き込みの成否を確認する（Ｓ７０４）。このベリファイ処理により、データの書き込み時に格納可能なデータ量を超えてしまい、書き込めなかった場合などの対応が可能になる。つぎに、Ｓ７０４の結果を元に、データ移行処理結果を生成する（Ｓ７０５）。
【００５８】
なお、複数のアプリケーション部のデータを移行する場合には、データ移行部２０６が，Ｓ７０１〜Ｓ７０５までのフローを、アプリケーション部毎に繰り返し行うように制御する。
【００５９】
図８は、図４の処理フローのうち、移行結果送受信処理（Ｓ４０４）を詳細化した図である。
【００６０】
まず、データ移行部２０６は、Ｓ６０１で共有したセッション鍵を用いて、データ移行処理結果の署名を生成する（Ｓ８０１）。
その後、処理結果と署名（Ａ８０１）を端末４０に送信する。
【００６１】
次に、端末４０は、受信した処理結果と署名（Ａ８０１）をデータ移行部１０６に送信する。
【００６２】
次に、データ移行部１０６は、受信した処理結果と署名のうち、署名の検証を行う（Ｓ８０２）。署名が不正であると判断した場合には、その旨を端末４０に送信し、データ移行処理を中止する（Ｓ８０３）。署名が正当であると判断した場合には、受信した処理結果を検証する（Ｓ８０４）。データの移行に成功したと判断した場合には、データ移行部１０６のデータ保管部１０８に格納された移行データを消去し（Ｓ８０５）、端末４０に対して、処理が終了した旨のレスポンス（Ａ８０２）を送信し、データ移行処理を終了する（Ｓ８０６）。Ｓ８０４で、データの移行に失敗したと判断した場合には、データの復元処理を開始する（Ｓ８０７）。
【００６３】
なお、ＩＣカードでは一般的に、電子マネーなどのセキュリティが要求されるデータを扱うことが多いため、データ書き込み失敗時の復旧処理が備わっている。したがって、Ｓ８０７において、この機能を用いることにより、データ書き込み失敗時にＩＣカード内部に何らかの中途半端なデータが残ることを防ぐことができる。
【００６４】
図９は、図４の処理フローのうち、データ復元処理（Ｓ４０５）を詳細化した図である。
【００６５】
まず、データ移行部１０６は、アプリケーション１０３のデータ保管部１０５にアクセスするために、アプリケーション部１０３と認証処理を実施する（Ｓ９０１）。つぎに、データ移行部１０６のデータ保管部１０８に書き込まれている移行データを、アプリケーション部１０３のデータ保管部１０５に書き込むために、アプリケーション部１０３に対し、データ書き込みコマンド（Ａ９０１）を送信する。該コマンドには復元対象データを含む。
【００６６】
次に、アプリケーション部１０３は、受信したコマンドを解析し、データ保管部１０５にデータを書き込む（Ｓ９０２）。書き込み後に、Ｓ７０４と同様のベリファイ処理を行っても良いが、データの復元処理なので、必須ではない。
その後、処理が完了した旨のレスポンス（Ａ９０２）をデータ移行部１０６に送信する。
【００６７】
次に、データ移行部１０６は、データ保管部１０８に格納された移行データを消去する（Ｓ９０３）。その後、処理が完了した旨のレスポンス（Ａ９０３）を端末４０に送信し、データ移行処理を中止する（Ｓ９０４）。
【００６８】
なお、Ｓ５０８においてアプリケーション部１０３をロックした場合には、Ｓ９０２の代わりに、アプリケーション部１０３のロック解除を行う。
【００６９】
図５〜図９のフローは、操作エラーや突然の電源断などが発生した場合には、処理途中で打ち切られる可能性がある。そのような場合であっても対処可能なように、本実施形態では、データの書き込みなど、アプリケーション部やデータ移行部の内部状態が変化した際に、データ移行部１０６の処理経過フラグ保持部１０９やデータ移行部２０６の処理経過フラグ保持部２０９に処理経過フラグを書き込む。これらのフラグを参照することによって、データ移行処理を途中の段階から再開することが可能となる。なお、この処理経過フラグはデータ移行部１０６とデータ移行部２０６が書き込むように構成する。
【００７０】
なお、本実施例において、処理経過フラグを書き込むタイミングは、Ｓ５０７完了時、Ａ５０７受信時、Ｓ５０９完了時、Ｓ６０７完了時、Ａ７０２受信時、Ｓ７０５完了時、Ｓ８０５完了時、Ａ９０２受信時、Ｓ９０３完了時、の計９箇所である。
【００７１】
図１０は、図５のＳ５０５や図７のＳ７０１で実施している、アプリケーション部がデータ移行部を認証する際に行う認証フローである。該認証は、ＩＣカード内部で行うものである。以下ではＩＣカード１０内で行う認証を示しているが、ＩＣカード２０内で行う認証も同様である。
【００７２】
まず、データ移行部１０６は、認証処理を開始し（Ｓ１００１）、乱数生成コマンドを生成する（Ｓ１００２）。その後、アプリケーション部１０３に対し、乱数生成コマンド（Ａ１００１）を送信する。
【００７３】
次に、アプリケーション部１０３は、受信したコマンドを解析し、乱数生成を行う（Ｓ１００３）。その後、生成した乱数（Ａ１００２）をデータ移行部１０６に送信する。
【００７４】
次に、データ移行部１０６は、受信した乱数（Ａ１００２）と、鍵保管部１０７に格納された鍵データを用いて、認証データを作成する（Ｓ１００４）。その後、生成した認証データ（Ａ１００３）をアプリケーション部１０３に送信する。
【００７５】
次に、アプリケーション部１０３は、受信した認証データ（Ａ１００３）と、アプリケーション部１０３内で生成した認証データを比較し、認証処理を行う（Ｓ１００５）。その後、認証結果（Ａ１００４）をデータ移行部１０６に送信する。
【００７６】
次に、データ移行部１０６は、認証結果（Ａ１００４）を検証し（Ｓ１００６）、認証に成功したか失敗したかを判断する。
【００７７】
なお、図１０で示した認証フローは共通鍵暗号を用いた認証フローの一例である。本実施形態で利用する認証フローは、チャレンジレスポンスを用いた本方法に限定するものではなく、例えばワンタイムパスワードやゼロ知識証明などを用いた認証方法であってもよい
図１１は、図６のＳ６０１で実施している、ＩＣカード１０内のデータ移行部１０６と、ＩＣカード２０内のデータ移行部２０６との間で行う相互認証を、共通鍵暗号を用いて行う場合のフローである。
【００７８】
まず、データ移行部１０６は、認証処理を開始し（Ｓ１１０１）、乱数を生成する（Ｓ１１０２）。その後、生成した乱数（Ａ１１０１）を端末３０に送信する。
【００７９】
次に、端末４０は、受信した乱数（Ａ１１０１）を、データ移行部２０６に送信する。
【００８０】
次に、データ移行部２０６は、受信した乱数（Ａ１１０１）を書き込む（Ｓ１１０３）。つぎに、内部で乱数を生成する（Ｓ１１０４）。つぎに、受信した乱数（Ａ１１０１）と内部で生成した乱数と鍵保管部２０７の鍵を用いて、セッション鍵を生成する（Ｓ１１０５）。つぎに、生成したセッション鍵を用いて、受信した乱数と内部で生成した乱数を組み合わせたデータを暗号化し、認証データ１を生成する（Ｓ１１０６）。その後、生成した乱数データと認証データ１（Ａ１１０２）を端末４０に送信する。
【００８１】
次に、端末４０は、受信したデータ（Ａ１１０２）を、データ移行部１０６に送信する。
【００８２】
次に、データ移行部１０６は、受信した乱数を書き込む（Ｓ１１０７）。つぎに、Ｓ１１０２で生成した乱数と受信した乱数と鍵保管部１０７の鍵を用いて、セッション鍵を生成する（Ｓ１１０８）。つぎに、生成したセッション鍵を用いて、データ移行部２０６から受信した認証データ１が正当であるか検証する（Ｓ１１０９）。不正な認証データであると判断した場合には、その旨を端末４０に送信し、端末４０は例えばエラーを表示して、使用者に通知する。正当な認証データであると判断した場合には、つぎに、生成したセッション鍵を用いて、受信した乱数と内部で生成した乱数を組み合わせたデータを暗号化し、認証データ２を生成する（Ｓ１１１０）。つぎに、セッション鍵を用いて、生成した認証データ２の署名を生成する（Ｓ１１１１）。その後、認証データ２と署名（Ａ１１０３）を端末４０に送信する。
【００８３】
次に、端末４０は、受信したデータ（Ａ１１０３）をデータ移行部２０６に送信する。
【００８４】
次に、データ移行部２０６は、受信したデータ（Ａ１１０３）の署名を検証する（Ｓ１１１２）。つぎに、認証データ２の検証を行う（Ｓ１１１３）。その後、認証結果をレスポンス（Ａ１１０４）として端末４０に送信する。
【００８５】
次に、端末４０は、受信したレスポンス（Ａ１１０４）をデータ移行部１０６に送信する。
【００８６】
データ移行部１０６は、受信したレスポンスを検証し（Ｓ１１１４）、認証に成功したか失敗したかを判断する。
【００８７】
なお、図１１で示した相互認証フローは共通鍵暗号を用いた相互認証フローの一例である。本実施形態で利用する認証フローは、チャレンジレスポンスを用いた本方法に限定するものではなく、例えばワンタイムパスワードやゼロ知識証明などの認証方法を用いてもよい。
【００８８】
図１２は図１１で示した相互認証フローを，公開鍵暗号を用いて行う場合のフローである。
【００８９】
まず、データ移行部１０６は、認証処理を開始し（Ｓ１２０１）、乱数を生成する（Ｓ１２０２）。つぎに、データ移行部１０６の公開鍵と、データ移行元ＩＣカード１０のＩＤと、該鍵と該ＩＤが改竄されていないことを証明する認証機関の署名と、生成した乱数（Ａ１２０１）を端末４０に送信する。
【００９０】
次に、端末４０は、受信したデータ（Ａ１２０１）をデータ移行部２０６に送信する。
【００９１】
次に、データ移行部２０６は、受信したデータの署名をデータ移行部内に予め格納されている、認証機関の公開鍵で検証し、受信した公開鍵とデータ移行元ＩＣカード１０のＩＤが改竄されていないか検証する（Ｓ１２０３）。不正な公開鍵であると判断した場合には、その旨を端末４０に送信する。正当な公開鍵であると判断した場合には、つぎに、受信した公開鍵と乱数を書き込む（Ｓ１２０４）。つぎに、内部で乱数を生成する（Ｓ１２０５）。受信した乱数と生成した乱数を組み合わせたデータを、鍵保管庫２０７に格納されている秘密鍵を用いて暗号化し、認証データ１を生成する（Ｓ１２０６）。その後、データ移行部２０６の公開鍵と、データ移行先ＩＣカード２０のＩＤと、該鍵と該ＩＤが改竄されていないことを証明する認証機関の署名と、生成した認証データ１と、乱数（Ａ１２０２）を端末４０に送信する。
【００９２】
次に、端末４０は、受信したデータ（Ａ１２０２）をデータ移行部１０６に送信する。
【００９３】
次に、データ移行部１０６は、受信したデータ（Ａ１２０２）の署名をデータ移行部内に格納されている、認証機関の公開鍵で検証し、受信データのうち公開鍵とデータ移行先ＩＣカード２０のＩＤが改竄されていないか検証する（Ｓ１２０７）。不正な公開鍵であると判断した場合には、その旨を端末４０に送信する。正当な公開鍵であると判断した場合には、つぎに、受信した公開鍵と乱数を書き込む（Ｓ１２０８）。つぎに、受信した認証データ１をデータ移行部２０６の公開鍵で検証する（Ｓ１２０９）。不正な認証データであると判断した場合には、その旨を端末４０に送信する。正当な認証データであると判断した場合には、つぎに、Ｓ１２０２で生成した乱数と受信した乱数を組み合わせたデータを、鍵保管庫１０７に格納されている秘密鍵を用いて暗号化し、認証データ２を生成する（Ｓ１２１０）。その後、生成した認証データ２（Ａ１２０３）を端末４０に送信する。
【００９４】
次に、端末４０は受信したデータ（Ａ１２０３）をデータ移行部２０６に送信する。
【００９５】
次に、データ移行部２０６は、受信した認証データ２（Ａ１２０３）をデータ移行部１０６の公開鍵を用いて検証する（Ｓ１２１１）。不正な認証データであると判断した場合には、その旨を端末４０に送信する。正当な認証データであると判断した場合には、つぎに、セッション鍵を生成する（Ｓ１２１２）。つぎに、データ移行部２０６の秘密鍵を用いて、作成したセッション鍵の署名を生成する（Ｓ１２１３）。つぎに、セッション鍵を、データ移行部１０６の公開鍵を用いて暗号化する（Ｓ１２１４）。その後、生成した暗号化鍵データと署名（Ａ１２０４）を端末４０に送信する。
【００９６】
次に、端末４０は、受信したデータ（Ａ１２０４）をデータ移行部１０６に送信する。
【００９７】
次に、データ移行部１０６は、受信した署名をデータ移行部２０６の公開鍵を用いて、検証する（Ｓ１２１５）。不正な署名であると判断した場合には、その旨を端末４０に送信する。正当な署名であると判断した場合には、つぎに、データ移行部１０６の秘密鍵で暗号化鍵データを復号し、セッション鍵を取得する（Ｓ１２１６）。
【００９８】
なお、図１２で示した相互認証フローは公開鍵暗号を用いた相互認証フローの一例である。本実施形態で利用する認証フローを本方法に限定するものではない。
【００９９】
図１３は、図５のＳ５０９において作成する移行データの形式を示した図である。
【０１００】
データテーブル（Ａ１３０１）は、Ａ５０１のＩＤ取得コマンドで取得した、移行先ＩＣカード２０のＩＤ（Ａ１３０２）を先頭に配置する。その後に、データを移行するアプリケーション部１０３のＩＤ（Ａ１３０３）と、該アプリケーション部から取得したデータ（Ａ１３０４）を組にして配置する。なお、複数のアプリケーション部のデータを移行する場合には、（Ａ１３０３１、Ａ１３０４１）・・・（Ａ１３０３ｎ、Ａ１３０４ｎ）の組み合わせで関連付けて、データ移行先ＩＣカードＩＤ（Ａ１３０２）に続いて配置する。
【０１０１】
なお、本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
【０１０２】
たとえば、端末４０と同様のＩＣカードアクセス部を備える端末二つが、それぞれＩＣカード１０，２０に接続され、かつ互いの端末とネットワークにより接続される構成であってもよい。
【０１０３】
そのような構成において、それぞれの端末は、図１に示す端末４０が持つ機能に加え、ネットワークで送受信可能なデータ形式とＩＣカードと送受信可能なコマンド形式とを変換する機能を持てばよい。当該構成においてもデータ移行部１０６やデータ移行部２０６において行う処理に変化はない。
【図面の簡単な説明】
【０１０４】
【図１】本発明の一実施形態が適用されたＩＣカードのデータ移行システムの構成を説明するための図である。
【図２】図１に示すＩＣカードのハードウェア構成を示す図である。
【図３】図１に示す端末のハードウェア構成を示す図である。
【図４】一実施形態が適用されたＩＣのデータ移行システムのデータ移行処理フローを示す図である。
【図５】上記データ移行処理フローのうち、データ読み出し処理に関するフローを例示する図である。
【図６】上記データ移行処理フローのうち、移行データ送受信に関するフローを例示する図である。
【図７】上記データ移行処理フローのうち、データ書き込みに関するフローを例示する図である。
【図８】上記データ移行処理フローのうち、移行結果送受信に関するフローを例示する図である。
【図９】上記データ移行処理フローのうち、データ復元に関するフローを例示する図である。
【図１０】ＩＣカード内部で行う認証処理を詳細フローを例示する図である。
【図１１】ＩＣカード間で行う認証処理を詳しく説明するフローを例示する図である。
【図１２】図１１の認証処理を公開鍵認証に置き換えた場合の認証処理を詳しく説明するフローを例示する図である。
【図１３】図５〜図９で使用する移行データのデータ構造を例示する図である。
【符号の説明】
【０１０５】
１０：ＩＣカード、１１：入出力装置、１２：ＣＰＵ、１３：耐タンパ記憶装置、１４：耐タンパメモリ、１５：内部通信線、２０：ＩＣカード、３０：通信路、４０４１：記憶装置、４２：ＩＣカード入出力装置、４３：ＣＰＵ、４４：メモリ、４５：内部通信線、５０：端末、６０：端末、７０：ネットワーク、１０１：データ送受信部、１０２：コマンド解析部、１０３１〜１０３ｎ：アプリケーション部、１０４１〜１０４ｎ：鍵保管部、１０５１〜１０５ｎ：データ保管部、１０６：データ移行部、１０７：鍵保管部、１０８：データ保管部、１０９：処理経過フラグ保持部、２０１：データ送受信部、２０２：コマンド解析部、２０３１〜２０３ｎ：アプリケーション部、２０４１〜２０４ｎ：鍵保管部、２０５１〜２０５ｎ：データ保管部、２０６：データ移行部、２０７：鍵保管部、２０８：データ保管部、２０９：処理経過フラグ保持部、４０１：コマンド生成部、４０２：ＩＣカードアクセス部、５０１：コマンド生成部、５０２：ＩＣカードアクセス部、５０３：データ送受信部、６０１：コマンド生成部、６０２：ＩＣカードアクセス部、６０３：データ送受信部、Ａ５０１：ＩＤ取得コマンド、Ａ５０２：ＩＤ、Ａ５０３：データ移行コマンド、Ａ５０４：データ読み出しコマンド、Ａ５０５：データ、Ａ５０６：データ消去コマンド、Ａ５０７：レスポンス、Ａ６０１：暗号化データと署名、Ａ７０１：データ書き込みコマンド、Ａ７０２：レスポンス、Ａ７０３：データ読み出しコマンド、Ａ７０４：データ、Ａ８０１：処理結果と署名、Ａ８０２：レスポンス、Ａ９０１：データ書き込みコマンド、Ａ９０２：レスポンス、Ａ９０３：レスポンス、Ａ１００１：乱数生成コマンド、Ａ１００２：乱数、Ａ１００３：認証データ、Ａ１００４：認証結果、Ａ１１０１：乱数、Ａ１１０２：乱数データと認証データ１、Ａ１１０３：認証データ２と署名、Ａ１１０４：レスポンス、Ａ１２０１：乱数と公開鍵とＩＤと署名、Ａ１２０２：乱数と認証データ１と公開鍵とＩＤと署名、Ａ１２０３：認証データ２、Ａ１２０４：暗号化鍵データと署名、Ａ１３０１：データテーブル、Ａ１３０２：データ移行先ＩＣカードＩＤ、Ａ１３０３１〜Ａ１３０３ｎ：アプリケーション部ＩＤ、Ａ１３０４１〜Ａ１３０４ｎ：データ。
【図１】
2006309475.tif 000003
【図２】
2006309475.tif 000004
【図３】
2006309475.tif 000005
【図４】
2006309475.tif 000006
【図５】
2006309475.tif 000007
【図６】
2006309475.tif 000008
【図７】
2006309475.tif 000009
【図８】
2006309475.tif 000010
【図９】
2006309475.tif 000011
【図１０】
2006309475.tif 000012
【図１１】
2006309475.tif 000013
【図１２】
2006309475.tif 000014
【図１３】
2006309475.tif 000015