(57)【要約】【課題】ＩＣに搭載されたアプリケーションが正常に動作しているかのアプリケーションの正当性を検証することができるアプリケーションの正当性検証方法及びプログラムを提供する。【解決手段】アプリケーションを記憶手段２３に導入し、導入されたアプリケーションのパッケージ情報に基づいて制御手段２３で所定の演算を行い、演算された第１の値を前記記憶手段２３に記憶する。【選択図】    図１
2004213478.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段を備えた情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、
前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を行い、第１の値を求める演算ステップと、
前記第１の値を前記記憶手段に記憶する第１の記憶ステップと、
前記導入ステップによって前記情報端末に導入されたアプリケーションのパッケージ情報に基づいて所定の演算を再度行い、第２の値を求める再演算ステップと、
前記第２の値を前記記憶手段に記憶する第２の記憶ステップと、
前記記憶手段に記憶された第１の値と第２の値とを比較する比較ステップと、
前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップと、
を具備することを特徴とするアプリケーションの正当性検証方法。
【請求項２】
第１の情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、
前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末で行い、第１の値を求める演算ステップと、
前記第１の値を前記第１の情報端末にアクセス可能な第２の情報端末の記憶手段に記憶する第１の記憶ステップと、
前記アプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末で再度行い、第２の値を求める再演算ステップと、
前記第２の値を前記第２の情報端末の記憶手段に記憶する第２の記憶ステップと、
前記第２の情報端末の記憶手段に記憶された第１の値と第２の値とを前記第１の情報端末で比較する比較ステップと、
前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップと、
を具備することを特徴とするアプリケーションの正当性検証方法。
【請求項３】
第１の情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、
前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末にアクセス可能な第２の情報端末で行い、第１の値を求める演算ステップと、
前記第１の値を前記第１の情報端末の記憶手段に記憶する第１の記憶ステップと、
前記アプリケーションのパッケージ情報に基づいて所定の演算を前記第２の情報端末で再度行い、第２の値を求める再演算ステップと、
前記第２の値を前記第１の情報端末の記憶手段に記憶する第２の記憶ステップと、
前記第１の情報端末の記憶手段に記憶された第１の値と第２の値とを前記第２の情報端末で比較する比較ステップと、
前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップと、
を具備することを特徴とするアプリケーションの正当性検証方法。
【請求項４】
第１の情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、
前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末にアクセス可能な第２の情報端末で行い、第１の値を求める演算ステップと、
前記第１の値を前記第２の情報端末の記憶手段に記憶する第１の記憶ステップと、
前記アプリケーションのパッケージ情報に基づいて所定の演算を前記第２の情報端末で再度行い、第２の値を求める再演算ステップと、
前記第２の値を前記第２の情報端末の記憶手段に記憶する第２の記憶ステップと、
前記第２の情報端末の記憶手段に記憶された第１の値と第２の値とを前記第２の情報端末で比較する比較ステップと、
前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップと、
を具備することを特徴とするアプリケーションの正当性検証方法。
【請求項５】
前記演算ステップ及び再演算ステップは、アプリケーションのパッケージ情報の一部または全部に対して前記所定の演算を行うことを特徴とする請求項１乃至４のいずれか１項に記載のアプリケーションの正当性検証方法。
【請求項６】
前記所定の演算は、ハッシュ、ＣＲＣ、ＳＵＭチェックのいずれか１つであることを特徴とする請求項１乃至５のいずれか１項に記載のアプリケーションの正当性検証方法。
【請求項７】
記憶手段を備えた情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証プログラムであって、
前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を行い、第１の値を求める演算手順、
前記演算手順によって演算された第１の値を前記記憶手段に記憶する第１の記憶機手順、
前記アプリケーションのパッケージ情報に基づいて所定の演算を再度行い、第２の値を求める再演算手順、
前記第２の値を前記記憶手段に記憶する第２の記憶手順、
前記記憶手段に記憶された第１の値と第２の値とを比較する比較手順、
をコンピュータ装置に実現させるためのアプリケーションの正当性検証プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＩＣカードに搭載したアプリケーションの正当性を検証するためのアプリケーションの正当性検証方法及びプログラムに関する。
【０００２】
【従来の技術】
近年、ＩＣチップを搭載したカードがクレジットカードやプリペイドカード等で利用されている。これらのＩＣチップを搭載したカードには、ＩＣチップの記憶容量を生かし、このＩＣチップに各種のアプリケーションを搭載したカードが用いられている。例えばＪａｖａアプリケーションを搭載したＪａｖａカードの場合、このＪａｖａアプリケーションによって様々なサービスを提供することができる（例えば、非特許文献１〜非特許文献３を参照）。
【０００３】
【非特許文献１】
Ｊａｖａ  ＷＯＲＬＤ  １９９８年３月号  Ｐ３４−Ｐ５５
【０００４】
【非特許文献２】
Ｊａｖａ  ＷＯＲＬＤ  １９９８年７月号  Ｐ１５４−１６１
【０００５】
【非特許文献３】
Ｊａｖａ  ＷＯＲＬＤ  １９９８年８月号  Ｐ１８２−１８７
【０００６】
【発明が解決しようとする課題】
このようなアプリケーションを搭載したＩＣカードの場合、当該ＩＣカードの処理に不具合が生じた場合に、前記ＩＣカードに搭載されたアプリケーションが正常に動作しているかどうかを確認することができない。従って、ＩＣカードの不具合を解決するのが困難な場合があるという問題がある。
【０００７】
この発明は上記事情に着目してなされたもので、その目的とするところは、ＩＣに搭載されたアプリケーションが正常に動作しているかのアプリケーションの正当性を検証することができるアプリケーションの正当性検証方法及びプログラムを提供することにある。
【０００８】
【課題を解決するための手段】
本発明はかかる課題を解決するものであり、請求項１の発明は、記憶手段を備えた情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を行い、第１の値を求める演算ステップと、前記第１の値を前記記憶手段に記憶する第１の記憶ステップと、前記導入ステップによって前記情報端末に導入されたアプリケーションのパッケージ情報に基づいて所定の演算を再度行い、第２の値を求める再演算ステップと、前記第２の値を前記記憶手段に記憶する第２の記憶ステップと、前記記憶手段に記憶された第１の値と第２の値とを比較する比較ステップと、前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップとを具備することを特徴とするアプリケーションの正当性検証方法としたものである。
【０００９】
即ち、かかるアプリケーションの正当性検証方法によれば、アプリケーションが記憶手段に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が行われ、この所定の演算によって得られた第１の値が前記記憶手段に記憶され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算を再度行い、この所定の演算によって得られた第２の値を記憶手段に記憶し、前記記憶手段に記憶された第１の値と第２の値とを比較する。
【００１０】
従って、情報機器にアプリケーションが導入された後に、当該アプリケーションが正常に動作しているかのアプリケーションの正当性を検証することができる。さらに、このようにアプリケーションの正当性が検証されることにより、不正なアプリケーションの進入を防ぎ、高度なセキュリティを保つことが出来る。
【００１１】
本発明の請求項２の発明は、第１の情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末で行い、第１の値を求める演算ステップと、前記第１の値を前記第１の情報端末にアクセス可能な第２の情報端末の記憶手段に記憶する第１の記憶ステップと、前記アプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末で再度行い、第２の値を求める再演算ステップと、前記第２の値を前記第２の情報端末の記憶手段に記憶する第２の記憶ステップと、前記第２の情報端末の記憶手段に記憶された第１の値と第２の値とを前記第１の情報端末で比較する比較ステップと、前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップとを具備することを特徴とするアプリケーションの正当性検証方法としたものである。
【００１２】
即ち、かかるアプリケーションの正当性検証方法によれば、アプリケーションが第１の情報端末に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が前記第１の情報端末で行われ、演算された第１の値が前記第１の情報端末にアクセス可能な第２の情報端末の記憶手段に記憶され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第１の情報端末で再度行われ、演算された第２の値を第２の情報端末の記憶手段に記憶し、第２の情報端末の記憶手段に記憶された第１の値と第２の値とが前記第１の情報端末で比較される。
【００１３】
従って、スマートカードの記憶容量の限りがある場合に情報端末等の外部に演算結果を保存、記憶することにより、スマートカードの記憶容量を有効に利用することができる。
【００１４】
本発明の請求項３の発明は、第１の情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末にアクセス可能な第２の情報端末で行い、第１の値を求める演算ステップと、前記第１の値を前記第１の情報端末の記憶手段に記憶する第１の記憶ステップと、前記アプリケーションのパッケージ情報に基づいて所定の演算を前記第２の情報端末で再度行い、第２の値を求める再演算ステップと、前記第２の値を前記第１の情報端末の記憶手段に記憶する第２の記憶ステップと、前記第１の情報端末の記憶手段に記憶された第１の値と第２の値とを前記第２の情報端末で比較する比較ステップと、前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップとを具備することを特徴とするアプリケーションの正当性検証方法としたものである。
【００１５】
即ち、かかるアプリケーションの正当性検証方法によれば、アプリケーションが第１の情報端末に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が前記第１の情報端末にアクセス可能な第２の情報端末で行われ、演算された第１の値が前記第１の情報端末の記憶手段に記憶され、第１の情報端末に導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第２の情報端末で再度行われ、演算された第２の値が前記第１の情報端末の記憶手段に記憶され、第１の値と第２の値とが前記第２の情報端末で比較される。
【００１６】
従って、所定の演算をスマートカードではなく外部の情報端末で行うことにより、スマートカードの処理の負荷を軽減させることができる。また、スマートカード内で演算結果を記憶、保存することにより、情報の機密性が向上する。
【００１７】
本発明の請求項４の発明は、第１の情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証方法であって、前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を前記第１の情報端末にアクセス可能な第２の情報端末で行い、第１の値を求める演算ステップと、前記第１の値を前記第２の情報端末の記憶手段に記憶する第１の記憶ステップと、前記アプリケーションのパッケージ情報に基づいて所定の演算を前記第２の情報端末で再度行い、第２の値を求める再演算ステップと、前記第２の値を前記第２の情報端末の記憶手段に記憶する第２の記憶ステップと、前記第２の情報端末の記憶手段に記憶された第１の値と第２の値とを前記第２の情報端末で比較する比較ステップと、前記比較ステップによって前記第１の値と第２の値とが一致する場合には、前記アプリケーションの正当性が保たれていることを検証する検証ステップとを具備することを特徴とするアプリケーションの正当性検証方法としたものである。
【００１８】
即ち、かかるアプリケーションの正当性検証方法によれば、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第１の情報端末にアクセス可能な第２の情報端末で行われ、演算された第１の値が前記第２の情報端末の記憶手段に記憶され、第１の情報端末に導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第２の情報端末で再度行われ、演算された第２の値が前記第１の情報端末の記憶手段に記憶され、第１の値と第２の値とが前記第２の情報端末で比較される。
【００１９】
従って、所定の演算をスマートカードではなく外部の情報端末で行うことにより、スマートカードの処理の負荷を軽減させることができる。また、スマートカードの記憶容量の限りがある場合に情報端末等の外部に演算結果を保存、記憶することにより、スマートカードの記憶容量を有効に利用することができる。
【００２０】
本発明の請求項５の発明は、前記演算ステップ及び再演算ステップは、アプリケーションのパッケージ情報の一部または全部に対して前記所定の演算を行うことを特徴とするアプリケーションの正当性検証方法としたものである。
【００２１】
即ち、かかるアプリケーションの正当性検証方法によれば、演算ステップ及び再演算ステップでは、アプリケーションのパッケージ情報の一部または全部に対して所定の演算が行われる。
【００２２】
従って、アプリケーションのパッケージ情報の必要箇所だけを数値化することができ、数値化の効率が向上する。
【００２３】
本発明の請求項６の発明は、前記所定の演算は、ハッシュ、ＣＲＣ、ＳＵＭチェックのいずれか１つであることを特徴とするアプリケーションの正当性検証方法としたものである。
【００２４】
即ち、かかるアプリケーションの正当性検証方法によれば、所定の演算は、ハッシュ、ＣＲＣ、ＳＵＭチェックのいずれか１つとしたものである。
【００２５】
従って、前記ハッシュ、ＣＲＣ、ＳＵＭチェックを用いることにより、アプリケーションのパッケージ情報を必要に応じて数値化して記憶し、後に読み出して利用することができる。
【００２６】
本発明の請求項７の発明は、記憶手段を備えた情報端末に導入された少なくともパッケージ情報からなるアプリケーションの正当性を検証するアプリケーションの正当性検証プログラムであって、前記導入されたアプリケーションのパッケージ情報に基づいて所定の演算を行い、第１の値を求める演算手順、前記演算手順によって演算された第１の値を前記記憶手段に記憶する第１の記憶機手順、前記アプリケーションのパッケージ情報に基づいて所定の演算を再度行い、第２の値を求める再演算手順、前記第２の値を前記記憶手段に記憶する第２の記憶手順、前記記憶手段に記憶された第１の値と第２の値とを比較する比較手順をコンピュータ装置に実現させるためのアプリケーションの正当性検証プログラムとしたものである。
【００２７】
即ち、かかるアプリケーションの正当性検証プログラムによれば、アプリケーションが記憶手段に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が行われ、演算された第１の値が前記記憶手段に記憶され、情報端末に導入されたアプリケーションのパッケージ情報に基づいて所定の演算が再度行われ、演算された第２の値が記憶手段に記憶され、前記記憶手段に記憶された第１の値と第２の値とが比較される。
【００２８】
従って、アプリケーションが導入された後に、再度所定の演算を行って当該アプリケーションのパッケージ情報を数値化し、アプリケーションの導入の初期状態に保存した数値と比較することにより、アプリケーション自体が正常かどうかを確かめることができる。
【００２９】
【発明の実施の形態】
（第１の実施形態）
図１は、本発明に係わるアプリケーション搭載カード（以下、スマートカードと称す）に搭載されたアプリケーションの正当性を検証するためのアプリケーションの正当性検証方法の概念を示す構成図である。アプリケーション搭載カードとは、他の機器と情報をやりとりできるＩＣチップを備えていれば良く、カード型と呼ばれる形状をしていなくても良い。例えば、携帯電話機に用いられるＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｆｙ  Ｍｏｄｕｌｅ）などがある。
【００３０】
この実施の形態は、スマートカード（第１の情報端末）２０、例えばＪａｖａ（登録商標）アプリケーションを搭載したＪａｖａ（登録商標）カードに搭載されている各種アプリケーションが正常に動作しているか、即ち、アプリケーションの正当性を検証する例である。
【００３１】
スマートカード２０は、非接触にて情報端末１０と通信を行う場合で、ＣＰＵから構成された制御手段２１と、アンテナ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の各種通信手段から構成された通信手段２２と、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ等から構成された記憶手段２３とを備える。なお、当該スマートカード２０には例えば電磁誘導、内蔵電池等の方法を用いて電力が供給される。なお、情報端末１０と接触して通信する場合には、通信手段２２は、接触により通信を行う構成となる。
【００３２】
前記制御手段２１は、アプリケーションが導入されたかの判断処理、所定の演算処理、保存された値同士の比較処理等を行う。前記通信手段２２は、情報端末１０との各種情報の授受を行う。前記記憶手段２３は、アプリケーションの正当性検証プログラム及び通信プログラム等の各種プログラム、導入されたアプリケーション、演算結果の情報等を記憶する。
【００３３】
情報端末１０は、ＣＰＵから構成された制御手段１１と、アンテナ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の各種通信手段から構成された通信手段１２と、ＨＤＤ、ＲＡＭ等から構成された記憶手段１３とを備える。前記制御手段１１は、アプリケーションの送信処理、アプリケーションの検証要求の送信処理等を行う。前記通信手段１２は、スマートカード２０との各種情報の授受を行う。前記記憶手段１３は、通信プログラム等の各種プログラム、スマートカード２０に送信するアプリケーション等を記憶する。なお、前記情報端末１０とスマートカード２０との通信手段は、無線や光通信等の非接触型方式、ケーブル等でＩＣチップの接点と接続する接触型方式を問わず、データの授受を行えるものであればよい。この通信手段１２は、スマートカード２０の通信手段２２に対応して変更されうるものである。
【００３４】
次に、本発明に係るＣＰＵで構成されたスマートカード２０の制御手段２１が、記憶手段２３に記憶されたアプリケーションの正当性検証プログラムを読みとって一連の処理を実行する例について図１及び図２のフローチャート、図３のシーケンス図を参照して説明する。
【００３５】
Ｓ１で、スマートカード２０の制御手段２１は、アプリケーション、例えばＪａｖａ（登録商標）アプレット（以下、アプレットと称す）が当該スマートカード２０に導入（ダウンロードまたはインストール）されたかどうかを判断する（図３のＳ４０）。なおアプレットは、一般的にパッケージ情報及びインスタンス情報から構成されている。パッケージ情報とは、アプリケーションが導入された後に、書き換えなどが行われない情報のことをいう。従って、このパッケージ情報に書き換えなどにより変更が行われると、アプリケーションの不具合が生じることになる。
【００３６】
Ｓ１でアプレットが導入されたと判断した場合には、Ｓ２で、スマートカード２０の制御手段２１は、所定の演算（後述）を実行する（図３のＳ４１）。Ｓ３で、スマートカード２０の制御手段２１は、前記所定の演算で得られた値（以下、第１の値と称す）を記憶手段２３に記憶、保存する。Ｓ４で、スマートカード２０の制御手段２１は、情報端末１０からのアプリケーション（アプレット）の検証要求を受信したかを判断する（図３のＳ４２）。このアプリケーションの検証要求は、例えば、スマートカード２０の処理に不具合が生じたとき等に、当該スマートカード２０に導入されているアプリケーション（アプレット）が正常かどうか、または正常に動作しているかどうかを検証するとき等に、情報端末１０からスマートカード２０に送信される。Ｓ４でアプリケーションの検証要求を受信したと判断したときは、スマートカード２０の制御手段２１は、Ｓ５で、前述した所定の演算と同様の演算を再度行い（図３のＳ４３）、Ｓ６で、当該所定の再演算で得られた値（以下、第２の値と称す）を記憶手段２３に記憶、保存する。Ｓ７で、スマートカード２０の制御手段２１は、前記記憶手段２３に保存された前記第１の値と前記第２の値とを読み出し、当該第１の値と第２の値とを比較する（比較処理：図３のＳ４４）。この比較処理によって、前記第１の値と前記第２の値とが同じであった場合は、スマートカード２０に導入されたアプリケーション（アプレット）が正常である、または正常に動作していると判断される。一方、前記第１の値と前記第２の値とが異なる場合は、スマートカード２０に導入されたアプリケーション（アプレット）が正常でない、または正常に動作していないと判断される。なお、これは上述したパッケージ情報は、アプレットが導入後に使用されても正常なアプレットであれば変化しない情報であることを利用しているので、アプレットが正常か否かの判断に用いることが出来る。
【００３７】
次に、図３のＳ４１およびＳ４３で行われる前述した所定の演算について図４を用いて説明する。この所定の演算は、導入されたアプレットからパッケージ情報の一部又は全部のデータを用いて、例えばハッシュ、ＣＲＣ（巡回冗長検査）、ＳＵＭチェック等の演算を行うものである。この実施形態では、前記ハッシュを用いるものとして説明する。なお、前記所定の演算は、パッケージ情報の一部又は全部のデータを用いて、所定の値を算出できる手法であればよい。
【００３８】
スマートカード２０の制御手段２１は、導入されたアプレットからパッケージ情報を取り出す。取り出されたパッケージ情報は、パッケージ情報３０のようなデータである。この内、スマートカード２０の制御手段２１は、例えばパッケージ情報の一部分３１を取り出し、取り出されたパッケージ情報の一部分３１をハッシュ（ＳＨＡ−１）関数を用いてハッシュ計算（演算）すると、当該パッケージ情報の一部分３１は、ハッシュ値３２として演算される。このハッシュ値を前記第１の値または前記第２の値として用いる。
【００３９】
従って、以上のような実施形態によれば、スマートカードにアプリケーションが導入された後に、当該アプリケーションが正常に動作しているかのアプリケーションの正当性を検証することができる。さらに、このようにアプリケーションの正当性が検証されることにより、不正なアプリケーションの進入を防ぎ、高度なセキュリティを保つことが出来る。
【００４０】
（第２の実施形態）
図５は、本発明に係わるアプリケーションの正当性検証方法の一実施形態の概念を示すシーケンス図である。第１の実施形態との違いは、所定の演算で得られた演算結果をスマートカードではなく情報端末側で記憶、保存する点である。よって、情報端末１０の記憶手段１３は、演算結果の情報を記憶、保存し、スマートカード２０の記憶手段２３は、演算結果の情報を記憶、保存を行わない。なお、スマートカード２０及び情報端末１０の構成図は、図１と同様であるので、図１と図５を用いて説明する。
【００４１】
Ｓ５０で、スマートカード（第１の情報端末）２０の制御手段２１は、アプリケーションの導入を確認すると、Ｓ５１で、所定の演算を実行する。Ｓ５２で、スマートカード２０の制御手段２１は、この所定の演算で得られた演算結果である第１の値を情報端末（第２の情報端末）１０に送信する。Ｓ５３で、情報端末１０の制御手段１１は、前記演算結果である第１の値を受信し、記憶手段１３に記憶する。そしてスマートカード２０に導入されたアプリケーションの正当性を検証する必要が生じた場合等には、Ｓ５４で、情報端末１０の制御手段１１は、スマートカード２０にアプリケーションの検証要求を送信する。Ｓ５５で、アプリケーションの検証要求を受信したスマートカード２０の制御手段２１は、前記所定の演算と同様の演算を再実行し、Ｓ５６で、演算結果である第２の値を情報端末１０に送信する。Ｓ５７で、情報端末１０の制御手段１１は、前記演算結果である第２の値を受信し、記憶手段１３に記憶し、Ｓ５８で、前記記憶手段１３に記憶された前記第１の値と前記第２の値とを読み出し、スマートカード２０に送信する。Ｓ５９で、スマートカード２０の制御手段２１は、前記第１の値と前記第２の値とを受信すると、当該第１の値と第２の値との比較処理を行う。
【００４２】
従って、以上のような実施形態によれば、スマートカード２０の記憶容量の限りがある場合に情報端末１０等の外部に演算結果を保存、記憶することにより、スマートカード２０の記憶容量を有効に利用することができる。また、演算結果をスマートカード２０の外部で管理したい場合にも有効である。さらに、スマートカード２０内で所定の演算をし、比較処理を行うので、セキュリティ向上が見込める。また、本実施形態では、第２の値を情報端末１０へ送信せずにスマートカード２０に記憶させ、第１の値だけを情報端末１０に送信してもらい、比較処理を行ってもよい。この場合には、第１の値だけの送信であるので、送受信による遅延を軽減し、さらにはスマートカード２０内に第２の値を記憶することにより、セキュリティの向上がより見込める。
【００４３】
（第３の実施形態）
図６は、本発明に係わるアプリケーションの正当性検証方法の一実施形態の概念を示すシーケンス図である。第１の実施形態との違いは、所定の演算をスマートカードではなく情報端末側で行う点である。よって、情報端末１０の制御手段１１は、所定の演算処理を行い、スマートカード２０の制御手段２１は、所定の演算処理を行わない。なお、スマートカード２０及び情報端末１０の構成図は、図１と同様であるので、図１と図６を用いて説明する。
【００４４】
Ｓ６０で、スマートカード（第１の情報端末）２０の制御手段２１は、アプリケーションの導入を確認すると、Ｓ６１で、受信したアプリケーションのパッケージ情報を情報端末（第２の情報端末）１０に送信する。Ｓ６２で、情報端末１０の制御手段１１は、パッケージ情報を受信すると、所定の演算を実行し、Ｓ６３で、演算結果である第１の値をスマートカード２０に送信する。Ｓ６４で、スマートカード２０の制御手段２１は、演算結果である第１の値を受信すると、記憶手段２３に記憶、保存する。Ｓ６５で、情報端末１０の制御手段１１は、スマートカード２０に導入されたアプリケーションの正当性を検証する必要が生じた場合等には、アプリケーションの検証要求をスマートカード２０に送信する。Ｓ６６で、スマートカード２０の制御手段２１は、アプリケーションのパッケージ情報を情報端末１０に送信する。Ｓ６７で、情報端末１０の制御手段１１は、パッケージ情報を受信すると、所定の演算を実行し、Ｓ６８で、演算結果である第２の値をスマートカード２０に送信する。Ｓ６９で、スマートカード２０の制御手段２１は、演算結果である第２の値を受信すると、記憶手段２３に記憶、保存する。Ｓ７０で、スマートカード２０の制御手段２１は、前記記憶手段２３に記憶されている前記第１の値と前記第２の値とを呼びだして情報端末１０に送信する。Ｓ７１で、情報端末１０の制御手段１１は、受信した前記第１の値と前記第２の値とを比較処理する。
【００４５】
従って、以上のような実施形態によれば、所定の演算をスマートカード２０ではなく外部の情報端末１０で行うことにより、スマートカード２０の処理の負荷を軽減させることができる。また、スマートカード２０内で演算結果を記憶、保存することにより、情報の機密性が向上する。また、スマートカード２０に所定の演算を行うプログラムを搭載しないので、記憶容量の有効な利用をすることができる。
【００４６】
（第４の実施形態）
図７は、本発明に係わるアプリケーションの正当性検証方法の一実施形態の概念を示すシーケンス図である。第１の実施形態との違いは、所定の演算及び演算結果の保存をスマートカードではなく情報端末側で行う点である。よって、情報端末１０の制御手段１１は、所定の演算処理を行い、スマートカード２０の制御手段２１は、所定の演算処理を行わない。また情報端末１０の記憶手段１３に演算結果を記憶、保存し、スマートカード２０の記憶手段２３には、演算結果を記憶、保存しない。なお、スマートカード２０及び情報端末１０の構成図は、図１と同様であるので、図１と図７を用いて説明する。
【００４７】
Ｓ８０で、スマートカード（第１の情報端末）２０の制御手段２１は、アプリケーションの導入を確認すると、Ｓ８１で、当該アプリケーションのパッケージ情報を情報端末（第２の情報端末）１０に送信する。Ｓ８２で、情報端末１０の制御手段１１は、パッケージ情報を受信すると、所定の演算を実行し、演算結果である第１の値を記憶手段１３に記憶、保存する。Ｓ８３で、情報端末１０の制御手段１１は、スマートカード２０に導入されたアプリケーションの正当性を検証する必要が生じた場合等には、アプリケーションの検証要求をスマートカード２０に送信する。Ｓ８４で、スマートカード２０の制御手段２１は、アプリケーションのパッケージ情報を情報端末１０に送信する。Ｓ８５で、情報端末１０の制御手段１１は、パッケージ情報を受信すると、前記所定の演算と同様の演算を再実行し、演算結果である第２の値を記憶手段１３に記憶、保存する。Ｓ８６で、情報端末１０の制御手段１１は、前記記憶手段１３に記憶されている前記第１の値と前記第２の値とを呼びだし、当該第１の値と前記第２の値とを比較処理する。
【００４８】
従って、以上のような実施形態によれば、所定の演算をスマートカード２０ではなく外部の情報端末１０で行うことにより、スマートカード２０の処理の負荷を軽減させることができる。また、スマートカード２０の記憶容量の限りがある場合に情報端末１０等の外部に演算結果を保存、記憶することにより、スマートカード２０の記憶容量を有効に利用することができる。また、演算結果をスマートカード２０の外部で管理したい場合にも有効である。
【００４９】
（その他の実施形態）
本発明の実施形態では、スマートカード２０と情報端末１０について説明したが、さらに、別の情報端末、または別の複数の情報端末を用いて処理を行っても良い。すなわち、別の情報端末が演算処理や演算結果の保存等を行ってもよい。
【００５０】
【発明の効果】
請求項１の発明によれば、アプリケーションが記憶手段に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が行われる。そして、この所定の演算によって得られた第１の値が前記記憶手段に記憶されるので、アプリケーションが導入された正常に動作する初期の状態を数値化して保存することができる。
【００５１】
請求項２の発明によれば、導入されたアプリケーションのパッケージ情報に基づいて所定の演算を再度行い、この所定の演算によって得られた第２の値を記憶手段に記憶し、前記記憶手段に記憶された第１の値と第２の値とを比較するので、アプリケーションが導入された後に、再度所定の演算を行って当該アプリケーションのパッケージ情報を数値化し、アプリケーションの導入の初期状態に保存した数値と比較することにより、アプリケーション自体が正常かどうかを確かめることができる。
【００５２】
請求項３の発明によれば、アプリケーションが第１の情報端末に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が前記第１の情報端末で行われる。そして、演算された第１の値が前記第１の情報端末にアクセス可能な第２の情報端末の記憶手段に記憶されるので、アプリケーションが導入された正常に動作する初期の状態を数値化して外部に保存することができる。
【００５３】
請求項４の発明によれば、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第１の情報端末で再度行われる。そして、演算された第２の値を第２の情報端末の記憶手段に記憶し、第２の情報端末の記憶手段に記憶された第１の値と第２の値とが前記第１の情報端末で比較されるので、アプリケーションの導入後に所定の演算処理で数値化し、この数値とアプリケーションが導入された正常に動作する初期の状態に演算処理で数値化した数値とを比較することにより、アプリケーションが正常に動作するかどうかを検証することができる。
【００５４】
請求項５の発明によれば、アプリケーションが第１の情報端末に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が前記第１の情報端末にアクセス可能な第２の情報端末で行われ、演算された第１の値が前記第１の情報端末の記憶手段に記憶されるので、所定の演算をスマートカードではなく外部の情報端末で行うことにより、スマートカードの処理の負荷を軽減させることができる。
【００５５】
請求項６の発明によれば、第１の情報端末に導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第２の情報端末で再度行われる。そして、演算された第２の値が前記第１の情報端末の記憶手段に記憶され、第１の値と第２の値とが前記第２の情報端末で比較されるので、アプリケーションの導入後に所定の演算処理で数値化し、この数値とアプリケーションが導入された正常に動作する初期の状態に演算処理で数値化した数値とを比較することにより、アプリケーションが正常に動作するかどうかを検証することができる。
【００５６】
請求項７の発明によれば、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第１の情報端末にアクセス可能な第２の情報端末で行われ、演算された第１の値が前記第２の情報端末の記憶手段に記憶されるので、所定の演算をスマートカードではなく外部の情報端末で行うことにより、スマートカードの処理の負荷を軽減させることができる。また、スマートカードの記憶容量の限りがある場合に情報端末等の外部に演算結果を保存、記憶することにより、スマートカードの記憶容量を有効に利用することができる。
【００５７】
請求項８の発明によれば、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が第２の情報端末で再度行われる。そして、演算された第２の値を第２の情報端末の記憶手段に記憶され、前記記憶手段に記憶された第１の値と第２の値とが前記第２の情報端末で比較されるので、アプリケーションの導入後に所定の演算処理で数値化し、この数値とアプリケーションが導入された正常に動作する初期の状態に演算処理で数値化した数値とを比較することにより、アプリケーションが正常に動作するかどうかを検証することができる。
【００５８】
請求項９の発明によれば、演算ステップ及び再演算ステップでは、アプリケーションのパッケージ情報の一部または全部に対して所定の演算が行われるので、アプリケーションのパッケージ情報の必要箇所だけを数値化することができ、数値化の効率が向上する。
【００５９】
請求項１０の発明によれば、所定の演算は、ハッシュ、ＣＲＣ、ＳＵＭチェックのいずれか１つとしたものであるので、前記ハッシュ、ＣＲＣ、ＳＵＭチェックを用いることにより、アプリケーションのパッケージ情報を必要に応じて数値化して記憶し、後に読み出して利用することができる。
【００６０】
請求項１１の発明によれば、アプリケーションが記憶手段に導入され、導入されたアプリケーションのパッケージ情報に基づいて所定の演算が行われ、演算された第１の値が前記記憶手段に記憶されるので、アプリケーションが導入された後に、再度所定の演算を行って当該アプリケーションのパッケージ情報を数値化し、アプリケーションの導入の初期状態に保存した数値と比較することにより、アプリケーション自体が正常かどうかを確かめることができる。
【００６１】
請求項１２の発明によれば、情報端末に導入されたアプリケーションのパッケージ情報に基づいて所定の演算が再度行われ、演算された第２の値が記憶手段に記憶され、前記記憶手段に記憶された第１の値と第２の値とが比較されるので、アプリケーションが導入された正常に動作する初期の状態を数値化して保存することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係わるスマートカードに搭載されたアプリケーションの正当性を検証するためのアプリケーションの正当性検証方法の概念を示す構成図である。
【図２】本発明の第１の実施形態に係わる、スマートカードに搭載されているアプリケーションの正当性検証プログラムが一連の処理を実行する手順を示したフローチャートである。
【図３】本発明の第１の実施形態に係わるＣＰＵで構成されたスマートカードの制御手段が、記憶手段に記憶されたアプリケーションの正当性検証プログラムを読みとって行う一連の処理を示したシーケンス図である。
【図４】本発明の第１の実施形態に係わる、アプリケーションのパッケージ情報と、このパッケージ情報を所定の演算としてハッシュ関数を用いて演算したときの演算結果を示した図である。
【図５】本発明の第２の実施形態に係わるＣＰＵで構成されたスマートカードの制御手段が、記憶手段に記憶されたアプリケーションの正当性検証プログラムを読みとって行う一連の処理を示したシーケンス図である。
【図６】本発明の第３の実施形態に係わるＣＰＵで構成されたスマートカードの制御手段が、記憶手段に記憶されたアプリケーションの正当性検証プログラムを読みとって行う一連の処理を示したシーケンス図である。
【図７】本発明の第４の実施形態に係わるＣＰＵで構成されたスマートカードの制御手段が、記憶手段に記憶されたアプリケーションの正当性検証プログラムを読みとって行う一連の処理を示したシーケンス図である。
【符号の説明】
１０…情報端末
１１、２１…制御手段
１２、２２…通信手段
１３、２３…記憶手段
２０…スマートカード
３０…パッケージ情報
３２…ハッシュ値
【図１】
2004213478.tif 000003
【図２】
2004213478.tif 000004
【図３】
2004213478.tif 000005
【図４】
2004213478.tif 000006
【図５】
2004213478.tif 000007
【図６】
2004213478.tif 000008
【図７】
2004213478.tif 000009