JP3749640B2 - Icカード利用装置、icカード及び記憶媒体 - Google Patents
Icカード利用装置、icカード及び記憶媒体 Download PDFInfo
- Publication number
- JP3749640B2 JP3749640B2 JP29412199A JP29412199A JP3749640B2 JP 3749640 B2 JP3749640 B2 JP 3749640B2 JP 29412199 A JP29412199 A JP 29412199A JP 29412199 A JP29412199 A JP 29412199A JP 3749640 B2 JP3749640 B2 JP 3749640B2
- Authority
- JP
- Japan
- Prior art keywords
- card
- unit
- key
- data
- random number
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、ICカードの機能を利用しながら処理を実行するICカード利用装置、ICカード及び記憶媒体に係わり、特に、機能を利用する際の暗号通信に使用されるセキュリティ機能を有するICカード利用装置、ICカード及び記憶媒体に関する。
【0002】
【従来の技術】
近年、金融、流通、通信及び医療等といった様々な分野に関し、データや手続きを記憶可能なICチップを搭載し、固有の機能を実行するICカードの開発が進められている。また、着脱自在に保持されたICカードに対し、ICカード内の機能を利用するように処理が既述された、金融、流通等のアプリケーションソフトウェア部を有するICカード利用装置が知られている。
【0003】
係るICカード利用装置とICカード間の通信は、ISO7816−4のセキュアメッセージングにおいて、暗号化とチェックコード付与により、盗聴防止、改ざん検出並びに不正データ送信防止が図られている。
【0004】
また、この種のICカード利用装置は、今後、パソコンなどの汎用コンピュータにより実現される可能性が高くなっている。
【0005】
【発明が解決しようとする課題】
しかしながら、以上のようなICカード利用装置及びICカードでは、暗号化とチェックコードを用いても、過去に正規に使用された送信指令を再入力することにより、再送信を実行させるリプレイ攻撃が可能となっている問題がある。
【0006】
また、パソコン等の汎用コンピュータは、セキュリティの脅威として、データの盗聴又は改ざん等の物理的な脅威の他、ソフトウェアのリバースエンジニアリングやカードドライバの置換え(=不正プログラム)等によるソフトウェア的な脅威が大きな位置を占めている。この種の不正プログラムは、例えば不正データを送信するものや、暗号処理の際に鍵を盗聴するもの等が考えられる。
【0007】
このため、ICカード利用装置では、鍵を慎重に管理する必要がある。しかしながら、共通鍵をICカードとICカード利用装置との双方で保管する方式は、不正プログラムを用いなくとも、ICカード利用装置(=パソコン)を盗んで解析することにより、鍵漏洩の可能性がある。
【0008】
本発明は上記実情を考慮してなされたもので、ICカード利用装置の解析による鍵漏洩を阻止でき、安全性を向上し得るICカード利用装置、ICカード及び記憶媒体を提供することを目的とする。
【0009】
また、本発明の他の目的は、リプレイ攻撃を阻止でき、信頼性を向上し得るICカード利用装置、ICカード及び記憶媒体を提供することにある。
【0010】
【課題を解決するための手段】
請求項1に対応する発明は、着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置であって、前記アプリケーションソフトウェア部としては、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段とを備えたICカード利用装置である。
【0011】
また、請求項1に対応する発明は、前記鍵配送手段としては、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部と、前記本人認証情報が入力された際に、乱数を要求するコマンドをICカード向けに送出する乱数要求手段とを備えたICカード利用装置である。
【0012】
さらに、請求項1に対応する発明は、前記鍵配送手段としては、前記本人認証情報が入力された際に、乱数を要求するコマンドをICカード向けに送出する乱数要求手段を更に備えており、前記連結部としては、前記コマンドに応じて乱数データを含むレスポンスをICカードから受けたとき、前記レスポンス内の乱数データを含めて前記連結を行うICカード利用装置である。
【0013】
また、請求項1に対応する発明は、前記暗号化部による暗号化データの入力に応じて前記ICカードから、当該ICカード内で前記乱数データとは異なる第2乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段と、前記復号手段による復号の結果、得られた第2乱数データに基づいて前記一時共有鍵を、前記ICカード内での更新結果と同一の更新結果を得られるように前記ICカード内の算出方式と同一の算出方式により更新する鍵更新手段とを備えたICカード利用装置である。
【0014】
さらに、請求項2に対応する発明は、請求項1に対応するICカード利用装置において、前記ICカードと共有され且つICカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段と、前記鍵配送手段による配送に応じて前記ICカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第1復号手段と、前記ICカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段と、前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化手段と、前記暗号化手段による暗号化データの入力に応じて前記ICカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第2復号手段と、前記第2復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段と、前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段と、前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ICカードと共有するように、更新するカウンタ値更新手段と、継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第2復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段とを備えたICカード利用装置である。
【0015】
また、請求項3に対応する発明は、請求項2に対応するICカード利用装置において、前記連結手段としては、少なくともメッセージ認証子MAC又はチェックサムを含めて前記連結を行うICカード利用装置である。
【0016】
さらに、請求項4に対応する発明は、請求項1乃至請求項3のいずれか1項に対応するICカード利用装置において、検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段を備えており、前記アプリケーションソフトウェア部としては、予め自己のディジタル署名が付与されており、前記検査手段としては、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査するICカード利用装置である。
【0018】
さらに、請求項5に対応する発明は、請求項1乃至請求項4のいずれか1項に対応するICカード利用装置において、前記アプリケーションソフトウェア部としては、前記ICカードの機能を利用するための上位アプリケーション部と、前記上位アプリケーション部が前記ICカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、前記ミドルウェア部としては、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいるICカード利用装置である。
【0019】
また、請求項6に対応する発明は、請求項5に対応するICカード利用装置において、上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段と、ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段とを備え、前記上位アプリケーション部としては、予め自己のディジタル署名が付与されており、前記ミドルウェア部としては、予め自己のディジタル署名が付与されており、前記上位アプリケーション検査手段としては、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、前記ミドルウェア検査手段としては、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査するICカード利用装置である。
【0021】
また、請求項7に対応する発明は、請求項1に対応するICカード利用装置に使用されるICカードにおいて、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と、前記ICカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段を設け、前記カード内分解手段としては、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解し、前記カード内認証手段としては、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証し、前記乱数生成手段としては、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第2乱数データを生成する機能を有し、前記乱数生成手段により生成された第2乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ICカード利用装置に出力するカード内暗号化手段と、前記乱数生成手段により生成された第2乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ICカード利用装置内での更新結果と同一の更新結果を得られるように前記ICカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段と、前記更新により最終的に作成した一時共有鍵を格納する手段と、前記格納した一時共有鍵を前記ICカード利用装置との暗号通信に使用する手段とを備えたICカードである。
【0023】
また、請求項8に対応する発明は、請求項2に対応するICカード利用装置に使用されるICカードにおいて、カウンタ値が記憶されるカード内記憶手段と、前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ICカード利用装置に出力する第1暗号化手段と、前記第1暗号化手段による暗号化カウンタ値データの出力に応じて、前記ICカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段と、前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段と、前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段と、前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段と、前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ICカード利用装置に出力する第2暗号化手段とを備えたICカードである。
【0024】
さらに、請求項9に対応する発明は、着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、前記ICカード利用装置内のコンピュータに、前記アプリケーションソフトウェア部としては、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段、の機能を含んで実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0025】
また、請求項9に対応する発明は、前記ICカード利用装置内のコンピュータに、前記鍵配送手段としては、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部、の機能を含んで実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0026】
さらに、請求項9に対応する発明は、前記連結部としては、前記ICカードから受ける乱数データを含めて前記連結を行う機能を含むコンピュータ読み取り可能な記憶媒体である。
【0027】
また、請求項9に対応する発明は、前記ICカード利用装置内のコンピュータに、前記暗号化部による暗号化データの入力に応じて前記ICカードから、当該ICカード内で前記乱数データとは異なる第2乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段、前記復号手段による復号の結果、得られた第2乱数データに基づいて前記一時共有鍵を、前記ICカード内での更新結果と同一の更新結果を得られるように前記ICカード内の算出方式と同一の算出方式により更新する鍵更新手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0028】
さらに、請求項10に対応する発明は、請求項9に対応するコンピュータ読み取り可能な記憶媒体において、前記ICカード利用装置内のコンピュータに、前記ICカードと共有され且つICカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段、前記鍵配送手段による配送に応じて前記ICカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第1復号手段、前記ICカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段、前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化手段、前記暗号化手段による暗号化データの入力に応じて前記ICカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第2復号手段、前記第2復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段、前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段、前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ICカードと共有するように、更新するカウンタ値更新手段、継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第2復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0029】
また、請求項11に対応する発明は、請求項10に対応するコンピュータ読み取り可能な記憶媒体において、前記連結手段としては、少なくともメッセージ認証子MAC又はチェックサムを含めて前記連結を行う機能を含むコンピュータ読み取り可能な記憶媒体である。
【0030】
さらに、請求項12に対応する発明は、請求項9乃至請求項11のいずれか1項に対応するコンピュータ読み取り可能な記憶媒体において、前記ICカード利用装置内のコンピュータに、検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段、を実現させるためのプログラムであり、前記アプリケーションソフトウェア部は、予め自己のディジタル署名が付与されており、前記検査手段は、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する機能を含む手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0032】
さらに、請求項13に対応する発明は、請求項9乃至請求項12のいずれか1項に対応するコンピュータ読み取り可能な記憶媒体において、前記アプリケーションソフトウェア部としては、前記ICカードの機能を利用するための上位アプリケーション部と、前記上位アプリケーション部が前記ICカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、前記ミドルウェア部としては、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいるコンピュータ読み取り可能な記憶媒体である。
【0033】
また、請求項14に対応する発明は、請求項13に対応するコンピュータ読み取り可能な記憶媒体において、前記ICカード利用装置内のコンピュータに、上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段、ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段、を実現させるためのプログラムであり、前記上位アプリケーション部は、予め自己のディジタル署名が付与されており、前記ミドルウェア部は、予め自己のディジタル署名が付与されており、前記上位アプリケーション検査手段は、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、前記ミドルウェア検査手段は、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0035】
また、請求項15に対応する発明は、請求項1に対応するICカード利用装置のICカードに使用されるコンピュータ読み取り可能な記憶媒体において、前記ICカード内のコンピュータに、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、前記ICカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段、を実現させるためのプログラムを記憶し、前記カード内分解手段としては、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解する機能を含み、前記カード内認証手段としては、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証する機能を含み、前記乱数生成手段としては、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第2乱数データを生成する機能を含み、前記ICカード内のコンピュータに、前記乱数生成手段により生成された第2乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ICカード利用装置に出力するカード内暗号化手段、前記乱数生成手段により生成された第2乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ICカード利用装置内での更新結果と同一の更新結果を得られるように前記ICカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段、前記更新により最終的に作成した一時共有鍵を格納する手段、前記格納した一時共有鍵を前記ICカード利用装置との暗号通信に使用する手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0037】
また、請求項16に対応する発明は、請求項10に対応するコンピュータ読み取り可能な記憶媒体ICカードにおいて、前記ICカード内のコンピュータに、カウンタ値が記憶されるカード内記憶手段、前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ICカード利用装置に出力する第1暗号化手段、前記第1暗号化手段による暗号化カウンタ値データの出力に応じて、前記ICカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段、前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段、前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段、前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段、前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ICカード利用装置に出力する第2暗号化手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
請求項17に対応する発明は、着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、前記アプリケーションソフトウェア部は、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段とを備えており、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部とを備えたICカード利用装置に使用されるICカードにおいて、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段とを備えたICカードである。
請求項18に対応する発明は、着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置であって、前記アプリケーションソフトウェア部は、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段とを備えており、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部とを備えており、前記ICカードは、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段とを備えたICカード利用装置である。
請求項19に対応する発明は、着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、前記アプリケーションソフトウェア部は、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段とを備えており、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部と、を備えたICカード利用装置に使用されるICカードに使用されるコンピュータ読み取り可能な記憶媒体であって、前記ICカード内のコンピュータに、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
請求項20に対応する発明は、着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、前記ICカード利用装置内のコンピュータに、前記アプリケーションソフトウェア部としては、本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段、の機能を含んで実現させるプログラムであり、前記鍵配送手段は、前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部、の機能を含んで実現させるためのプログラムであり、前記ICカードは、前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段とを備えたことを特徴とする、前記各プログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【0038】
(作用)
従って、請求項1,9に対応する発明は、アプリケーションソフトウェア部としては、鍵生成手段が、本人認証情報が入力されたとき、ICカードの機能を利用するときの暗号通信に使用される一時共有鍵を生成し、鍵配送手段が、鍵生成手段により生成された一時共有鍵と入力された本人認証情報とをICカードに配送する。
【0039】
このように、アプリケーションソフトウェア部とICカードとの接続時のみ一時的に有効な暗号鍵を共有し、通常時にはICカード利用装置内に暗号鍵を保持しない構成なので、ICカード利用装置の解析による鍵漏洩を阻止でき、安全性を向上させることができる。
【0040】
また、請求項1,9に対応する発明は、鍵配送手段としては、連結部が、鍵生成手段により生成された一時共有鍵と入力された本人認証情報とを連結し、暗号化部が、連結部による連結結果をICカードの公開鍵で暗号化し、得られた暗号化データをICカードに入力するので、前述した作用を容易且つ確実に奏することができる。
【0041】
さらに、請求項1,9に対応する発明は、連結部としては、ICカードから受ける乱数データを含めて連結を行うので、前述した作用に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。
【0042】
また、請求項1,9に対応する発明は、復号手段が、暗号化部による暗号化データの入力に応じてICカードから暗号化乱数データを受けたとき、一時共有鍵に基づいて暗号化乱数データを復号し、鍵更新手段が、復号手段による復号結果に基づいて一時共有鍵を更新するので、前述した作用に加え、一時共有鍵の安全性を向上でき、一層、信頼性を向上させることができる。
【0043】
さらに、請求項2,10に対応する発明は、カウンタ値が記憶されるカウンタ値記憶を設け、第1復号手段が、鍵配送手段による配送に応じてICカードから暗号化カウンタ値データを受けたとき、一時共有鍵に基づいて暗号化カウンタ値データを復号し、得られたカウンタ値をカウンタ値記憶手段に書込み、連結手段が、ICカードへコマンドを入力するとき、コマンドとカウンタ値記憶手段内のカウンタ値とを連結し、暗号化手段が、連結手段による連結結果を一時共有鍵で暗号化し、得られた暗号化データをICカードに入力し、第2復号手段が、暗号化手段による暗号化データの入力に応じてICカードからカウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、一時共有鍵に基づいて暗号化応答データを復号し、分解手段が、第2復号手段による復号結果からカウンタ値と応答内容とを分解し、認証手段が、分解手段により分解されたカウンタ値を連結手段で連結されたカウンタ値と比較し、両者が一致したとき、暗号化応答データを正当と認証し、カウンタ値更新手段が、認証手段により正当と認証されたとき、カウンタ値記憶手段内のカウンタ値を更新するので、請求項1,9に対応する作用に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。
【0044】
また、請求項3,11に対応する発明は、連結手段としては、少なくともメッセージ認証子MAC又はチェックサムを含めて連結を行うので、請求項2,10に対応する作用に比べ、容易且つ確実に改ざん検出を行うことができる。
【0045】
さらに、請求項4,12に対応する発明は、検査手段が、検査指令が入力されたとき、アプリケーションソフトウェア部の正当性を検査するので、請求項1〜3のいずれかか、請求項9〜11のいずれかに対応する作用に比べ、不正プログラムによる不正な処理を阻止することができる。
【0046】
また、請求項4,12に対応する発明は、アプリケーションソフトウェア部としては、予め自己のディジタル署名が付与されており、検査手段としては、アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、正当性を検査するので、前述した作用を容易且つ確実に奏することができる。
【0047】
さらに、請求項5,13に対応する発明は、アプリケーションソフトウェア部としては、ICカードの機能を利用するための上位アプリケーション部と、上位アプリケーション部がICカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、ミドルウェア部としては、少なくとも鍵生成手段及び鍵配送手段を含んでいるので、請求項1〜4のいずれかか、請求項9〜12のいずれかに対応する作用に加え、上位アプリケーション部と、ミドルウェア部とを分解したことにより、上位アプリケーション部の開発効率の向上を図ることができる。
【0048】
また、請求項6,14に対応する発明は、上位アプリケーション検査手段が、上位アプリケーション検査指令が入力されたとき、上位アプリケーション部の正当性を検査し、ミドルウェア検査手段が、ミドルウェア検査指令が入力されたとき、ミドルウェア部の正当性を検査するので、請求項5,13に対応する作用に加え、アプリケーションソフトウェア部が上位アプリケーション部とミドルウェア部とからなる構成であっても、不正プログラムによる不正な処理を阻止することができる。
【0049】
さらに、請求項7,15,17〜20に対応する発明は、カード内復号手段が、暗号化部から入力された暗号化データを自己の秘密鍵で復号し、カード内分解手段が、カード内復号手段による復号結果から一時共有鍵と本人認証情報とを分解し、カード内認証手段が、カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、暗号化データを正当と認証し、カード内鍵格納手段が、カード内認証手段により正当と認証されたとき、カード内分解手段で得られた一時共有鍵を格納するので、請求項1,9に対応する作用をICカード側においても奏することができる。
【0050】
また、請求項7,15に対応する発明は、チャレンジ要求が入力されたとき、乱数を生成して得られた乱数データをアプリケーションソフトウェア部に出力する乱数生成手段を設け、カード内分解手段としては、一時共有鍵と本人認証情報との分解に加え、カード内復号手段による復号結果から乱数データを分解し、カード内認証手段としては、本人認証情報による認証に加え、カード内分解手段により分解された乱数データを乱数生成手段により得られた乱数データと比較し、両者が一致したとき、暗号化データを正当と認証するので、前述した作用に加え、請求項1,9に対応する作用と同様にリプレイ攻撃を阻止でき、信頼性を向上させることができる。
【0051】
さらに、請求項7,15に対応する発明は、乱数生成手段としては、カード内認証手段により正当と認証されたとき、乱数データとは異なる第2乱数データを生成する機能を有し、カード内暗号化手段が、乱数生成手段により生成された第2乱数データをカード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データをICカード利用装置に出力し、カード内鍵更新手段が、乱数生成手段により生成された第2乱数データに基づいて、カード内暗号化手段に使用された一時共有鍵を更新するので、前述した作用に加え、請求項1,9に対応する作用と同様に、より確実にリプレイ攻撃を阻止でき、一層、信頼性を向上させることができる。
【0052】
また、請求項8,16に対応する発明は、カウンタ値が記憶されるカード内記憶手段を設け、第1暗号化手段が、鍵配送手段により配送された一時共有鍵に基づいて、カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データをICカード利用装置に出力し、カード内復号手段が、第1暗号化手段による暗号化カウンタ値データの出力に応じて、ICカード利用装置から暗号化データを受けたとき、一時共有鍵に基づいて、当該暗号化データを復号し、カード内分解手段が、カード内復号手段による復号結果からカウンタ値とコマンドとを分解し、カード内認証手段が、カード内分解手段により分解されたカウンタ値をカード内記憶手段内のカウンタ値と比較し、両者が一致したとき、暗号化データを正当と認証し、コマンド処理手段が、カード内認証手段により正当と認証されたとき、カード内分解手段で分解されたコマンドを処理し、応答データを生成し、カード内連結手段が、コマンド処理手段により生成された応答データとカード内記憶手段内のカウンタ値を連結し、第2暗号化手段が、カード内連結手段による連結結果を一時共有鍵で暗号化し、得られた暗号化応答データをICカード利用装置に出力するので、請求項2,10に対応する作用をICカード側においても奏することができる。
【0053】
【発明の実施の形態】
以下、本発明の各実施形態について図面を参照しながら説明する。
(第1の実施形態)
図1は本発明の第1の実施形態に係るICカード利用装置及びICカードの構成を示す模式図であり、以下の各実施形態に共通する基本構成を示している。 このICカード利用装置10は、ICカード20を着脱自在に保持してその機能を利用可能なものであり、具体的には、上位アプリケーション部30、ミドルウェア部40、R/Wドライバ部50及びカードR/W部60を備えている。なお、このICカード利用装置10は、例えば磁気ディスク等の記憶媒体に記憶された、上位アプリケーション部30及びミドルウェア部40からなるアプリケーションソフトウェア部70がインストールされ、このアプリケーションソフトウェア部70によって動作が制御されるパソコン等のコンピュータによって実現される。
【0054】
ここで、上位アプリケーション部30は、ICカード20内の機能を利用するように処理が記述されたJavaアプリケーションであり、ICカード20に向けてコマンド及びデータ等をミドルウェア部40に与える機能(ログイン用のPINデータ入力、ファイル暗号化コマンド、ファイル復号コマンド)と、ICカード20からの応答をミドルウェア部40から受ける機能とをもっている。なお、PINは、個人識別番号(personal identification number)であり、本人認証情報の一例である。
ミドルウェア部40は、上位アプリケーション部30よりも論理的にICカード20側に設けられ、ICカード20の機能を利用するときの暗号通信に使用されるものであり、PINデータが上位アプリケーション部30を介して入力されたとき、ICカード20との暗号通信に使用される一時共有鍵Kを生成し、この一時共有鍵KとPINデータとをICカード20に向けてR/Wドライバ部50に出力するPIN認証機能と、上位アプリケーション部30からのファイル暗号化/復号コマンドに従ってICカード20にファイルの暗号化/復号を実行させる暗号化/復号機能をもっている。
【0055】
R/Wドライバ部50は、ミドルウェア部40とICカード20との間でカードR/W部60を駆動する周知のICカード20リーダライタドライバであり、ネイティブコードのソフトウェアにて実現されている。また、カードR/W部60は、R/Wドライバ部50により駆動され、ICカード20内の情報を読出/書込可能な装置であり、具体的には周知のICカード20リーダライタである。
【0056】
ICカード20は、ISO7816の規格に準拠したものであり、ICカード利用装置10から一時共有鍵Kを受けると、ICカード利用装置10からのアクセスにより、この一時共有鍵Kを用いてPIN認証機能、ファイル暗号化機能又はファイル復号機能等の所定の機能を実行する際の暗号通信を実行し、且つこの暗号通信の後、一時共有鍵Kとは異なる鍵で自己のファイル暗号化機能又はファイル復号機能等を実行するものである。
【0057】
次に、以上のように構成されたICカード利用装置10及びICカード20の動作をPIN認証、データ暗号化及びデータ復号の順に説明する。
【0058】
(PIN認証)
まず、利用者により、ICカード20がICカード利用装置10のカードR/W部60に挿入される。続いて、アプリケーションソフトウエア部70の実行により、上位アプリケーション部30及びミドルウェア部40が起動したとする。
【0059】
ここで、上位アプリケーション部30は、PIN認証メソッドを実行すると共に、利用者にPINデータ入力を促し、その後、図1及び図2の(a)に示すように、入力されたPINデータをミドルウェア部40に入力する。
【0060】
ミドルウェア部40は、PINデータが入力されると、例えば8バイトの一時共有鍵Kを生成し、図1及び図2の(b)に示すように、この一時共有鍵KとPINデータとを含むPIN認証コマンドをICカード20に向けてR/Wドライバ部50に送信する。
【0061】
R/Wドライバ部50は、PIN認証コマンドをカードR/W部60を介してICカード20に入力する。
【0062】
ICカード20は、PIN認証コマンドが入力されると、PIN認証コマンドからPINデータ及び一時共有鍵Kを取り出し、PINデータを認証した後、この一時共有鍵Kを保持し、図1及び図2の(c)に示すように、例えば成功を示す応答をICカード利用装置10のミドルウェア部40に出力する。
【0063】
ミドルウェア部40は、この応答を受けると、図1及び図2の(d)に示すように、成功を示す内容を上位アプリケーション部30に出力する。
【0064】
なお、ICカード20は、PIN認証が失敗した場合、失敗を示す応答を出力して処理を終了する。ミドルウェア部40も同様に失敗を示す応答を出力して処理を終了する。
【0065】
以上のような動作により、ICカード20及びミドルウェア部40は、互いに同一の一時共有鍵Kを保持し、この一時共有鍵Kに基づく暗号通信が可能な状態となる。なお、本実施形態は、本発明の原理を示しており、実際には一時共有鍵Kを共有する際に、第2の実施形態以降で述べるように、何らかのセキュリティ手段を講じることが好ましい。但し、後述しないセキュリティ手段でも、ICカード20とICカード利用装置10とで一時共有鍵Kを共有させる場合、本発明の範囲に包含される。
【0066】
(データ暗号化)
PIN認証が成功した場合、上位アプリケーション部30は、利用者の操作により、ファイル暗号化指示を受けると、図3の(a)に示すように、暗号化の対象となる入力データを含むデータ暗号化コマンドをミドルウェア部40に入力する。
【0067】
ミドルウェア部40は、データ暗号化コマンドが入力されると、一時共有鍵Kに基づいて入力データを例えばDES-CBC 方式により暗号化し、図1及び図3の(b)に示すように、暗号化した入力データを含むコマンドAPDUをICカード20に向けてR/Wドライバ部50に送信する。
【0068】
R/Wドライバ部50は、コマンドAPDUをカードR/W部60を介してICカード20に入力する。
【0069】
ICカード20は、コマンドAPDUが入力されると、コマンドAPDUから入力データを取り出し、一時共有鍵K及びDES-CBC 方式に基づいて入力データを復号した後、この入力データを自己の暗号機能(例えば、一時共有鍵Kとは異なる鍵を用いたDES-CBC 方式又は512bit RSA方式)で暗号化し、図1及び図3の(c)に示すように、得られた暗号化データを含むレスポンスAPDUをICカード利用装置10のミドルウェア部40に応答する。
【0070】
ミドルウェア部40は、この応答を受けると、図1及び図3の(d)に示すように、暗号化データを上位アプリケーション部30に出力する。
【0071】
なお、ICカード20は、データ暗号化が失敗した場合、失敗を示す応答を出力して処理を終了する。ミドルウェア部40も同様に失敗を示す応答を出力して処理を終了する。
【0072】
(データ復号)
データ復号は、上述したデータ暗号化の動作において、「暗号化」又は「暗号」に代えて、「復号」を用いたものである。具体的なコマンド等は、図4に示す通りである。
【0073】
上述したように本実施形態によれば、アプリケーションソフトウェア部とICカード20との接続時のみ一時的に有効な暗号鍵(一時共有鍵K)を共有し、通常時にはICカード利用装置10内に暗号鍵を保持しない構成なので、ICカード利用装置10の解析による鍵漏洩を阻止でき、安全性を向上させることができる。
【0074】
また、パソコン内に暗号鍵等の秘密情報を永続的に保管しないため、図5に示すように、不正プログラム51,52を用いても、盗聴や不正データ送信が不可能となっている。
【0075】
(第2の実施形態)
図6は本発明の第2の実施形態に係るICカード利用装置及びICカードの構成を示す模式図であり、図1と同一部分には同一符号を付し、ほぼ同一部分にはアルファベットの添字を付してその詳しい説明を省略し、ここでは異なる部分についてのみ述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【0076】
すなわち、本実施形態は、第1の実施形態の具体例であり、PIN認証の安全性向上を図るものであって、図6及び図7に示すように、一時共有鍵Kの共有の際に、ミドルウェア部40a及びICカード20a間に公開鍵暗号系を適用させたものである。
【0077】
ここで、ミドルウェア部40aは、接続制御部41、公開鍵暗号/復号処理部42、及び共通鍵暗号/復号処理部43を備えている。
【0078】
接続制御部41は、上位アプリケーションとICカード20aとの間の接続を制御するものであり、具体的には、乱数生成器により一時共有鍵K(=乱数)を生成する機能と、上位アプリケーション部30からのデータ及び指示に基づいて、データを含むコマンドを作成してICカード20a向けに送信する機能と、ICカード20aからの応答を上位アプリケーション部30に出力する機能と、これらの機能において、通信手順内に暗号/復号処理がある場合、該当する公開鍵暗号/復号処理部42又は共通鍵暗号/復号処理部43を用いる機能と、からなる基本機能をもっている。
【0079】
なお、接続制御部41は、ここでは前述した基本機能に加え、PIN認証のコマンド作成の際に、公開鍵暗号/復号処理部42を用い、PINデータと一時共有鍵Kとを暗号化させて暗号化データを得る機能をもっている。
【0080】
公開鍵暗号/復号処理部42は、接続制御部41に制御され、接続制御部41から受けたデータをICカード20aの公開鍵(例、512bit RSA公開鍵)に基づいて暗号/復号処理し、得られた結果を接続制御部41に送出する機能とをもっている。
【0081】
共通鍵暗号/復号処理部43は、接続制御部41に制御され、接続制御部41から受けたデータを一時共有鍵Kに基づいて暗号/復号処理し、得られた結果を接続制御部41に送出する機能をもっている。
【0082】
ICカード20aは、要求受付処理部21、公開鍵暗号/復号処理部22、及び共通鍵暗号/復号処理部23を備えている。
【0083】
要求受付処理部21は、ICカード利用装置10aから受けたコマンドに基づいて、ICカード20aの機能(例、DES暗号化機能など)に処理を実行させる機能と、この処理の実行により得られた結果をICカード利用装置10aに応答する機能と、処理の実行の際に、公開鍵暗号/復号処理部22又は共通鍵暗号/復号処理部23を用いる機能と、からなる基本機能をもっている。
【0084】
なお、要求受付処理部21は、ここでは前述した基本機能に加え、公開鍵暗号/復号処理部22により復号されたPINデータと一時共有鍵Kとを分解する機能と、分解して得られたPINデータを予め保持するPINデータに基づいて認証する機能と、正当性が認証されたとき、分解により得られた一時共有鍵Kを格納すると共に、成功を示す応答をICカード利用装置10aに出力する機能と、正当性が認証されないとき、分解により得られた一時共有鍵Kを破棄すると共に、失敗を示す応答をICカード利用装置10aに出力する機能とをもっている。
【0085】
公開鍵暗号/復号処理部22は、要求受付処理部21に制御され、要求受付処理部21から受けたデータをICカード20aの秘密鍵(例、512bit RSA秘密鍵)に基づいて暗号/復号処理し、得られた結果を要求受付処理部21に送出する機能とをもっている。
【0086】
共通鍵暗号/復号処理部23は、要求受付処理部21に制御され、要求受付処理部21から受けたデータを一時共有鍵Kに基づいて暗号/復号処理し、得られた結果を要求受付処理部21に送出する機能をもっている。
【0087】
次に、以上のように構成されたICカード利用装置及びICカードの動作を説明する。
(PIN認証)
いま、前述した通り、上位アプリケーション部30は、利用者から入力されたPINデータをミドルウェア部40aに入力したとする。
【0088】
ミドルウェア部40aの接続制御部41は、図7に示すように、例えば8バイトのPINデータが入力されると、乱数生成器により例えば8バイトの一時共有鍵Kを生成し、この一時共有鍵KとPINデータとを連結し、連結結果を公開鍵暗号/復号処理部42に与える。公開鍵暗号/復号処理部42は、この連結結果をICカード20aの公開鍵に基づいて暗号化し、得られたデータを接続制御部41に送出する。
【0089】
接続制御部41は、この暗号化されたデータを含めて前述同様のPIN認証コマンドを作成し、このPIN認証コマンドをICカード20aに向けてR/Wドライバ部50に送信する。
【0090】
R/Wドライバ部50は、PIN認証コマンドをカードR/W部60を介してICカード20aに入力する。
【0091】
ICカード20aの要求受付処理部21は、PIN認証コマンドが入力されると、PIN認証コマンドからデータを取り出して公開鍵暗号/復号処理部22に与える。
【0092】
公開鍵暗号/復号処理部22は、このデータをICカード20aの秘密鍵に基づいて復号し、復号結果を要求受付処理部21に送出する。
【0093】
要求受付処理部21は、この復号結果から一時共有鍵KとPINデータとを分解し、このPINデータを予め保持するPINデータと比較し、両者が一致したとき、PINデータを正当と認証して一時共有鍵Kを格納すると共に、成功を示す応答をICカード利用装置10aに出力する。
【0094】
ミドルウェア部40aは、この応答を受けると、前述同様に、成功を示す内容を上位アプリケーション部30に出力する。
なお、PIN認証が失敗した場合の動作は、第1の実施形態と同様である。また、PIN認証が成功した後のデータ暗号化及びデータ復号の動作も第1の実施形態と同様である。
【0095】
上述したように本実施形態によれば、PINデータと一時共有鍵Kを同時に暗号化してICカード20に送信し、PINデータと一時共有鍵Kの盗聴を阻止するので、第1の実施形態の効果を容易且つ確実に得ることができる。
【0096】
また、アプリケーションソフトウェア部70のうち、ミドルウェア部40に暗号通信機能を持たせ、ICカード20aとの暗号化通信をアプリケーション開発者に対して隠蔽した構成により、セキュリティレベルを落とさず、かつ、セキュリティ確保に付随する利便性を低下させずに、ICカード20aの機能を利用する上位アプリケーション部30の開発効率の向上を図ることができる。
【0097】
補足すると、ICカード20との暗号化通信は煩雑な手順であり、ICカード20の機能を利用する上位アプリケーション部30において、開発者が個別に実装させるのは非効率的となっている。しかしながら、本実施形態によれば、煩雑な暗号化通信を分離してミドルウェア部40に実行させるので、上位アプリケーション部30の開発効率の向上を図ることができる。
【0098】
(第3の実施形態)
図8は本発明の第3の実施形態に係るICカード利用装置及びICカードの構成及びデータの流れを示す模式図である。なお、図8中、共通鍵暗号/復号処理部23,43は省略されるが、実際には備えている。以下の各実施形態でも同様に、データの流れで示す模式図では省略されても、公開鍵暗号/復号処理部22,42及び共通鍵暗号/復号処理部23,43を備えている。
【0099】
本実施形態は、第2の実施形態の変形例であり、PIN認証のより一層の安全性向上を図るものであって、図8に示すように、前述した公開鍵暗号系による保護に加え、ICカード20b側における認証にチャレンジ/レスポンス方式を適用したものである。
【0100】
具体的には、ミドルウェア部40bの接続制御部41bは、前述した機能に加え、PIN認証の際に、図9の(a)に示すように、ICカード20bに乱数を要求するコマンドAPDUをICカード20b向けに送出するチャレンジ要求機能と、図9(b)に示すレスポンスAPDUをICカード20bから受けたとき、このレスポンスAPDU内の乱数データと前述した一時共有鍵K及びPINデータとを含めたデータを公開鍵暗号/復号処理部42により暗号化し、得られた暗号化データを含めたPIN認証コマンドをICカード20b向けに送出する機能とをもっている。
【0101】
一方、ICカード20bの要求受付処理部21bは、前述した機能に加え、ICカード利用装置10aから乱数を要求するコマンドAPDUを受けたとき、乱数データを生成してICカード利用装置10bに送出する機能と、ICカード利用装置10bから受けたPIN認証コマンド内の暗号化データが復号されたとき、復号された乱数データ、PINデータ及び一時共有鍵Kを分解する機能と、分解して得られた乱数データを始めに生成した乱数データに基づいて認証する機能と、前述したPINデータの正当性に加え、この乱数データの正当性が認証されたとき、分解により得られた一時共有鍵Kを格納すると共に、成功を示す応答をICカード利用装置10bに出力する機能と、正当性が認証されないとき、分解により得られた一時共有鍵Kを破棄すると共に、失敗を示す応答をICカード利用装置10bに出力する機能とをもっている。
【0102】
次に、以上のように構成されたICカード利用装置及びICカードの動作を説明する。
(PIN認証)
いま、前述した通り、上位アプリケーション部30は、利用者から入力されたPINデータをミドルウェア部40bに入力したとする。
【0103】
ミドルウェア部40bの接続制御部は、図9の(a)に示すように、ICカード20bに乱数を要求するコマンドAPDUをICカード20b向けにR/Wドライバ部50に送出する。
【0104】
一方、ICカード20bの要求受付処理部21bは、このコマンドAPDUを受けたとき、乱数生成器により乱数データを生成し、この乱数データを含むレスポンスAPDUをICカード利用装置10bに送出する。
【0105】
ミドルウェア部40bの接続制御部41bは、図9(b)に示すレスポンスAPDUをICカード20bから受けたとき、このレスポンスAPDU内の乱数データと前述した一時共有鍵K及びPINデータとを含めたデータを公開鍵暗号/復号処理部42により暗号化し、得られた暗号化データを含めたPIN認証コマンドをICカード20b向けにR/Wドライバ部50に送出する。
【0106】
ICカード20bの要求受付処理部41bは、PIN認証コマンド内の暗号化データを前述同様に公開鍵暗号/復号処理部22に復号させ、得られた乱数データ、PINデータ及び一時共有鍵Kを分解し、得られた乱数データを始めに生成した乱数データに基づいて認証する。
【0107】
ここで、要求受付処理部21bは、前述したPINデータの正当性に加え、この乱数データの正当性が認証されたとき、分解により得られた一時共有鍵Kを格納すると共に、成功を示す応答をICカード利用装置10bに出力する。
【0108】
ミドルウェア部40bは、この応答を受けると、前述同様に、成功を示す内容を上位アプリケーション部30に出力する。
なお、PIN認証が失敗した場合の動作は、第2の実施形態と同様である。また、PIN認証が成功した後のデータ暗号化及びデータ復号の動作も第2の実施形態と同様である。
【0109】
上述したように本実施形態によれば、乱数データを含むことにより古いデータの再送による不正なログインを阻止するので、第2の実施形態の効果に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。
【0110】
(第4の実施形態)
図10は本発明の第4の実施形態に係るICカード利用装置及びICカードの構成及びデータの流れを示す模式図である。
【0111】
本実施形態は、第3の実施形態の変形例であり、PIN認証後の一時共有鍵Kの安全性向上を図るものであって、図10に示すように、前述したチャレンジ/レスポンス方式による認証の後、一時共有鍵K(乱数データB)を更に別の乱数データCで更新して最終的に一時共有鍵Kを作成する方式である。
【0112】
具体的には、ミドルウェア部40cの接続制御部41cは、第3の実施形態で述べた機能に加え、PIN認証の後、レスポンスAPDUを受けたとき、このレスポンスAPDU内の暗号化データを公開鍵暗号/復号処理部42に一時共有鍵K(乱数データB)で復号させ、得られた乱数データCに基づいて一時共有鍵Kを更新し、最終的に得られた一時共有鍵K(乱数データB+C)を格納する機能をもっている。なお、更新の方式としては、例えば、乱数データCと一時共有鍵K(乱数データB)との排他的論理和を算出する方式があり、その他、任意の方式が使用可能であるが、ICカード20内での更新結果と同一の更新結果を得られることが必要である。
【0113】
一方、ICカード20の要求受付処理部21cは、第3の実施形態で述べた機能に加え、PIN認証の後、他の乱数データCを生成する機能と、この乱数データCを公開鍵暗号/復号処理部22に一時共有鍵K(乱数データB)で暗号化させ、得られた暗号化データを含むレスポンスAPDUをICカード利用装置10cに送出する機能と、レスポンスAPDUの送出の後、乱数データCに基づいて一時共有鍵Kを更新し、最終的に得られた一時共有鍵K(乱数データB+C)を格納する機能をもっている。なお、更新方式は、ICカード利用装置10cと同一方式が使用される。
【0114】
次に、以上のように構成されたICカード利用装置及びICカードの動作を説明する。
いま、前述した通り、ICカード20c内では、PIN認証が成功したとする。 ICカード20cの要求受付処理部21cは、図10及び図11に示すように、PIN認証の後、他の乱数データCを生成し、この乱数データCを公開鍵暗号/復号処理部22に一時共有鍵K(乱数データB)で暗号化させ、得られた暗号化データを含むレスポンスAPDUをICカード利用装置10cに送出する。
【0115】
また、ICカード20cの要求受付処理部21cは、レスポンスAPDUの送出の後、乱数データCと一時共有鍵Kとの排他的論理和を算出して一時共有鍵Kを更新し、最終的に得られた一時共有鍵K(乱数データB+C)を格納する。
【0116】
一方、ミドルウェア部40cの接続制御部41cは、PIN認証の後、レスポンスAPDUを受けたとき、このレスポンスAPDU内の暗号化データを公開鍵暗号/復号処理部42に一時共有鍵K(乱数データB)で復号させ、得られた乱数データCと一時共有鍵Kとの排他的論理和を算出して一時共有鍵Kを更新し、最終的に得られた一時共有鍵K(乱数データB+C)を格納する。
【0117】
上述したように本実施形態によれば、第3の実施形態の効果に加え、一時共有鍵Kの安全性を向上でき、信頼性を向上させることができる。
【0118】
(第5の実施形態)
図12は本発明の第5の実施形態に係るICカード利用装置及びICカードの構成及びデータの流れを示す模式図である。
【0119】
本実施形態は、第4の実施形態の変形例であり、PIN認証後のコマンド処理の安全性向上を図るものであって、図12に示すように、ICカード20dとICカード利用装置10dとでカウンタ値を共有し、ICカード利用装置10dからのコマンドAPDU内とICカード20dからのレスポンスAPDU内とにそれぞれ当該カウンタ値を含め、且つレスポンスAPDUの送受信毎に当該カウンタ値を更新する方式である。
【0120】
具体的には、ミドルウェア部40dの接続制御部41dは、第4の実施形態で述べた機能に加え、カウンタ値が記憶されるカウンタ値記憶機能と、PIN認証の後、ICカード20dから暗号化カウンタ値データを受けたとき、一時共有鍵Kに基づいて共通鍵暗号/復号処理部43に暗号化カウンタ値データを復号させ、得られたカウンタ値を記憶する機能と、ICカード20dへコマンドを入力するとき、コマンドとカウンタ値とを連結する連結機能と、この連結結果を一時共有鍵Kに基づいて共通鍵暗号/復号処理部43に暗号化させる機能と、この暗号化により得られた暗号化コマンドAPDUをICカード20d向けに送出する機能と、この暗号化コマンドAPDUの送出に応じてICカード20dからカウンタ値と応答内容とが暗号化された暗号化レスポンスAPDUを受けたとき、一時共有鍵Kに基づいて共通鍵暗号/復号処理部43に暗号化レスポンスAPDUを復号させる機能と、この復号結果からカウンタ値と応答内容とを分解し、得られたカウンタ値を先程の連結したカウンタ値と比較し、両者が一致したとき、応答内容を正当と認証する認証機能と、この認証機能により正当と認証されたとき、記憶されているカウンタ値を更新する更新機能とをもっている。
【0121】
一方、ICカード20dの要求受付処理部21dは、第4の実施形態で述べた機能に加え、PIN認証の後、カウンタ値を記憶する機能と、共通鍵暗号/復号処理部23の制御により、一時共有鍵Kに基づいてカウンタ値を暗号化させ、得られた暗号化カウンタ値データをICカード利用装置10dに出力する機能と、この暗号化カウンタ値データの出力に応じて、ICカード利用装置10dから暗号化コマンドAPDUを受けたとき、共通鍵暗号/復号処理部23の制御により、一時共有鍵Kに基づいて、当該暗号化コマンドAPDUを復号する機能と、この復号結果からカウンタ値とコマンドとを分解する機能と、分解したカウンタ値を記憶したカウンタ値と比較し、両者が一致したとき、暗号化コマンドAPDUを正当と認証する認証機能と、認証機能により正当と認証したとき、分解したコマンドをICカード20dの処理機能部に処理させ、応答データを生成させるコマンド処理機能と、コマンド処理機能により生成された応答データと記憶されたカウンタ値を連結する連結機能と、この連結結果を共通鍵暗号/復号処理部23に一時共有鍵Kで暗号化させ、得られた暗号化レスポンスAPDUをICカード利用装置10dに出力する機能とを備えている。
【0122】
次に、以上のように構成されたICカード利用装置及びICカードの動作を説明する。
いま、前述した通り、ICカード20内では、PIN認証が成功し、且つ、ICカード20dとICカード利用装置10dとの間では、一時共有鍵Kの共有が完了したとする。
(データ暗号化)
ICカード20の要求受付処理部21dは、カウンタ値を記憶し、共通鍵暗号/復号処理部23の制御により、一時共有鍵Kに基づいてカウンタ値を暗号化させ、得られた暗号化カウンタ値データをICカード利用装置10dに出力する。
【0123】
ミドルウェア部40dの接続制御部41dは、ICカード20dから暗号化カウンタ値データを受けたとき、一時共有鍵Kに基づいて共通鍵暗号/復号処理部43に暗号化カウンタ値データを復号させ、得られたカウンタ値を記憶する。
【0124】
また、接続制御部41dは、ICカード20dへコマンドを入力するとき、図13に示すように、コマンドと記憶したカウンタ値Cnt とパディングデータPad とを連結し、この連結結果を含む24バイトのコマンドAPDUを一時共有鍵Kに基づいて共通鍵暗号/復号処理部43に暗号化させ、得られた暗号化コマンドAPDUをICカード20d向けに送出する。
【0125】
なお、暗号化前のコマンドAPDUとしては、図13に示したパターンに限らず、ISO7816に定義された4つのパターンのいずれでも適用可能であるが、暗号化後の暗号化コマンドAPDUとしては、応答データの長さLeを含む関係上、図14に示すパターンのみが適用可能となる。
【0126】
一方、ICカード20dの要求受付処理部21dは、図14に示すように、暗号化コマンドAPDUを受けたとき、共通鍵暗号/復号処理部23の制御により、一時共有鍵Kに基づいて暗号化コマンドAPDUを復号し、改ざん検出のため、この復号結果からカウンタ値とコマンドとを分解してカウンタ値を記憶したカウンタ値と比較する。
【0127】
ここで、両カウンタ値が一致したとき、要求受付処理部21dは、暗号化コマンドAPDUを正当と認証し、分解したコマンドをICカード20dの処理機能部に処理させ、応答データを生成させる。なお、カウンタ値が異なり、正当と認証されないとき、要求受付処理部21dは、失敗を示す応答データを生成する。
【0128】
次に、要求受付処理部21dは、図15に示すように、応答データを含むレスポンスAPDUと記憶されたカウンタ値Cnt とパディングデータPad とを連結し、連結結果を共通鍵暗号/復号処理部23に一時共有鍵Kで暗号化させ、得られた暗号化レスポンスAPDUをICカード利用装置10dに出力する。
【0129】
一方、ミドルウェア部40dの接続制御部41dは、図16に示すように、ICカード20dから暗号化レスポンスAPDUを受けたとき、一時共有鍵Kに基づいて共通鍵暗号/復号処理部43に暗号化レスポンスAPDUを復号させ、復号結果からカウンタ値と応答内容とを分解し、改ざん検出のため、分解で得られたカウンタ値を先程の連結したカウンタ値Cnt と比較する。
【0130】
ここで、両者が一致したとき、接続制御部41dは、応答内容を正当と認証し、記憶されているカウンタ値を+1更新すると共に、応答内容を上位アプリケーション部30に出力する。以下、継続してデータ暗号化を行う場合、図12中の(2)(3)の処理を繰り返して行う(ICカード20からカウンタ値を入手する(1)の処理は、PIN認証後の1回目のみ必要であり、2回目以降は不要である)。
【0131】
また、カウンタ値が異なり、正当と認証されないとき、要求受付処理部21dは、失敗を示す応答データnullを上位アプリケーション部30に出力する。
【0132】
(データ復号)
データ復号は、上述したデータ暗号化の動作において、「暗号化」又は「暗号」に代えて、「復号」を用いることにより、同様に実施できる。
【0133】
上述したように本実施形態によれば、カウンタ値を含むことにより古いデータの再送による不正なコマンド実行を阻止するので、第4の実施形態の効果に加え、リプレイ攻撃を阻止でき、信頼性を向上させることができる。但し、本実施形態は、一時共有鍵Kの共有後の技術であるため、第4の実施形態に限らず、第1〜第3の実施形態のうちの任意の実施形態に適用しても、上述した効果を得ることができる。
【0134】
また同様に、本実施形態におけるコマンドAPDU及びレスポンスAPDUの全体を暗号化/復号処理する構成を第2〜第4の実施形態に適用してもよく、その場合、適用した実施形態の効果に加え、コマンドAPDU及びレスポンスAPDUの盗聴や改ざんを阻止することができる。
【0135】
また、本実施形態では、今の値に+1した値を更新値とする場合について説明したが、これに限らず、今の値からハッシュ関数で算出した値を更新値とする構成、同じ乱数系列で生成される次の乱数を更新値とする構成、あるいは、レスポンスAPDU内に更新値を入れた構成に変形しても、本発明を同様に実施して同様の効果を得ることができる。
【0136】
また、上述では、鍵共有又は鍵更新後にカウンタ値Cnt を共有するが、これに限らず、第4の実施形態の鍵更新時(図10の▲3▼等を含む処理)の一時共有鍵K(乱数データB)と一緒にカウンタ値Cnt も暗号化する。そして、得られた暗号化データを含むレスポンスAPDUをICカード利用装置10cに送出することによって、カウンタ値Cnt を共有しても良い。これにより、上述した第5の実施形態でのICカード20dとICカード利用装置10dとのやり取りを減らすことができる。なお、暗号データ送出後のICカード20dとICカード利用装置10dとの間の処理は上述した処理と同様である。
【0137】
また、本実施形態は、カウンタ値Cnt を含むコマンドAPDU及びレスポンスAPDUの構成としたが、これに限らず、メッセージ認証子MAC又はチェックサムを含むコマンドAPDU及びレスポンスAPDUの構成としても、本発明を同様に実施して同様の効果を得ることに加え、より容易且つ確実に改ざん検出を行うことができる。
【0138】
(第6の実施形態)
図17は本発明の第6の実施形態に係るICカード利用装置及びICカードの構成を示す模式図である。
【0139】
本実施形態は、第1の実施形態を代表例に挙げた第1〜第5の実施形態の変形例であり、不正プログラムによる処理の阻止を図るものであり、具体的には、図17に示すように、アプリケーションソフトウェア部70にディジタル署名70Sを付加し、且つこのディジタル署名70Sに基づいて、アプリケーションソフトウエア部70の正当性を検査するアプリ検査部80をICカード利用装置10eに備えている。
【0140】
ここで、アプリ検査部80は、アプリケーションソフトウエア部70の起動に伴って自動的に検査指令が入力されたとき、検査鍵及びディジタル署名70Sに基づいて、アプリケーションソフトウエア部70の正当性を検証する検査処理部81を備えている。なお、ディジタル署名70Sは、例えばJavaの機能を用いて付与可能となっている。
【0141】
以上のような構成により、アプリ検査部80においては、起動時などに検査指令が入力されたとき、検査処理部81が、検査鍵及びディジタル署名70Sに基づいて、アプリケーションソフトウエア部70の正当性を検証するので、第1〜第5の実施形態の効果に加え、不正プログラムによる不正な処理を阻止することができる。
【0142】
また、ICカード20とICカード利用装置10eの利用者は、本発明が提案する1つのアプリケーションソフトウェア部70を何らかの方法(ウイルスチェッカ、あるいはプログラムのディジタル署名検査など)を使って信用できれば、ICカード20への接続の安全性を確実に保つことができる。
【0143】
すなわち、本発明によれば、1つのアプリケーションソフトウェア部70のみを検査すれば、パソコン上などソフトウェア的な脅威が多い環境でも安全性を確保できるという利点をもっている。また、このような安全性の確保されたアプリケーションソフトウェアを効率よく開発することができる。
【0144】
また、本発明によれば、ICカード20とパソコン(ICカード利用装置10)を使って、電子商取引などのように、高いセキュリティを必要とするサービスをより安全に、かつ高い開発生産性をもって実現することができる。
【0145】
なお、本実施形態は、図18に示すように、アプリ検査部80をアプリ部検査装置80fとして、ICカード利用装置10fの外部に配置した構成に変形しても、同様の作用効果を得ることができる。
【0146】
(第7の実施形態)
図19は本発明の第7の実施形態に係るICカード利用装置及びICカードの構成を示す模式図である。
【0147】
本実施形態は、第7の実施形態の変形例であり、上位アプリケーション部30とミドルウェア部40aとの各々について正当性の検証を図るものであり、具体的には、図19に示すように、上位アプリケーション部30に自己のディジタル署名30Sを付与すると共に、ミドルウェア部40aに自己のディジタル署名40Sを付与した構成となっている。
【0148】
また、ディジタル署名30Sに基づいて、上位アプリケーション部30の正当性を検査可能なアプリ検査部82をミドルウェア部40aに設け、且つディジタル署名40Sに基づいて、アプリ検査部82を含むミドルウェア部40aの正当性を検査可能なミドルウェア検査部83をICカード利用装置10gに備えている。
【0149】
ここで、アプリ検査部82は、上位アプリケーション部30の起動に伴って自動的に検査指令が入力されたとき、検査鍵及びディジタル署名30Sに基づいて、上位アプリケーション部30の正当性を検証するものである。
【0150】
また、ミドルウェア検査部83は、ミドルウェア部40aの起動に伴って自動的に検査指令が入力されたとき、検査鍵及びディジタル署名40Sに基づいて、ミドルウェア部40aの正当性を検証する検査処理部84を備えている。なお、両ディジタル署名30S,40Sは、例えばJavaの機能を用いて付与可能となっている。
【0151】
以上のような構成により、アプリ検査部80においては、起動時などに検査指令が入力されたとき、検査処理部81が、検査鍵及びディジタル署名70Sに基づいて、アプリケーションソフトウエア部70の正当性を検証するので、第1の実施形態の効果に加え、不正プログラムによる不正な処理を阻止することができる。
【0152】
また、上位アプリケーション部30と、ミドルウェア部40aの両方を検査する構成により、セキュリティレベルの低下を防止することができる。また、上位アプリケーション部30をミドルウェア部40aに検査させ、利用者がミドルウェア部40aのみを検査する構成としたことにより、利便性の低下を防止することができる。
【0153】
なお、本実施形態は、図20に示すように、アプリ検査部82及びミドルウェア検査部83の検査機能をJavaVM(Java virtual machine)85に設け、且つJavaVM85をそのディジタル署名85S及び検査鍵に基づいて検査するJavaVM検査部86を備えたJavaVM検査装置87をICカード利用装置10hの外部に配置した構成に変形してもよい。なお、この場合、JavaVMの検査は、JavaVM85(アプリ検査鍵及びミドル検査鍵を有するセキュリティプロファイルを含む)のディジタル署名85Sを予め計算して保存しておき、JavaVM検査装置87にJavaVM85とディジタル署名85Sを利用者が明示的に入力することにより行われる。このように変形しても、図19に示した構成と同様の作用効果を得ることができる。
【0154】
(他の実施形態)
なお、上記各実施形態では、ログイン時にPINデータによる認証を行う場合について説明したが、PINデータに代えて、指紋、音声、サイン(筆跡)などをバイオメトリクス(生体測定法)を用いて認証した本人認証結果(OK/NG)を入力する構成としても、本発明を同様に実施して同様の効果を得ることができる。
【0155】
また、このバイオメトリクスを用いた場合、例えば本人認証結果の入力に代えて、本人認証結果にICカードの秘密鍵による署名を付したデータを入力する構成としてもよい。
【0156】
さらに、第3及び第4の実施形態などのように乱数チャレンジを用いる場合、ICカードからの乱数データと本人の認証結果とを連接させた連結結果にICカードの秘密鍵による署名を付したデータを入力する構成としてもよい。
【0157】
いずれにしても、PINデータに代えて、バイオメトリクス技術を用いた程度の変形例は、本願発明の範囲に包含される。
【0158】
また、各実施形態に説明した全てのICカード利用装置10,10a〜10h及びICカード20,20a〜20dは、記憶媒体に格納したプログラムを夫々のコンピュータに読み込ませることで実現させることができる。
【0159】
ここで、記憶媒体に格納したプログラムとは、ICカード利用装置10,10a〜10hの場合、上位アプリケーション部30、ミドルウェア部40,40a〜40d及びその両者からなるアプリケーションソフトウェア部70であり、ICカード20,20a〜20dの場合、要求受付処理部21,21a〜21d、公開鍵暗号/復号処理部22及び共通鍵暗号/復号処理部23である。
【0160】
尚、本発明における記憶媒体としては、磁気ディスク、フロッピーディスク、ハードディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリ等、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0161】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
【0162】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0163】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0164】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0165】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0166】
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施できる。
【0167】
【発明の効果】
以上説明したように本発明によれば、ICカード利用装置の解析による鍵漏洩を阻止でき、安全性を向上できるICカード利用装置、ICカード及び記憶媒体を提供できる。また、リプレイ攻撃を阻止でき、信頼性を向上できるICカード利用装置、ICカード及び記憶媒体を提供できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るICカード利用装置及びICカードの構成を示す模式図
【図2】同実施形態におけるPIN認証のコマンド等を示す模式図
【図3】同実施形態におけるデータ暗号化のコマンド等を示す模式図
【図4】同実施形態におけるデータ復号のコマンド等を示す模式図
【図5】同実施形態における効果を説明するための模式図
【図6】本発明の第2の実施形態に係るICカード利用装置及びICカードの構成を示す模式図
【図7】同実施形態における概略構成及びデータの流れを示す模式図
【図8】本発明の第3の実施形態に係るICカード利用装置及びICカードの構成及びデータの流れを示す模式図
【図9】同実施形態におけるチャレンジ要求のコマンド等を示す模式図
【図10】本発明の第4の実施形態に係るICカード利用装置及びICカードの構成及びデータの流れを示す模式図
【図11】同実施形態における動作を説明するためのシーケンス図
【図12】本発明の第5の実施形態に係るICカード利用装置及びICカードの構成及びデータの流れを示す模式図
【図13】同実施形態におけるコマンドの暗号化動作を示す模式図
【図14】同実施形態におけるコマンドの復号動作を示す模式図
【図15】同実施形態におけるレスポンスの暗号化動作を示す模式図
【図16】同実施形態におけるレスポンスの復号動作を示す模式図
【図17】本発明の第6の実施形態に係るICカード利用装置及びICカードの構成を示す模式図
【図18】同実施形態における変形構成を示す模式図
【図19】本発明の第7の実施形態に係るICカード利用装置及びICカードの構成を示す模式図
【図20】同実施形態における変形構成を示す模式図
【符号の説明】
10,10a〜10h…ICカード利用装置
20,20a〜20d…ICカード
21…要求受付処理部
22,42…公開鍵暗号/復号処理部
23,43…共通鍵暗号/復号処理部
30…上位アプリケーション部
30S,40S,85S…ディジタル署名
40,40a〜40d…ミドルウェア部
41…接続制御部
50…R/Wドライバ部
51,52…不正プログラム
60…カードR/W部
70…アプリケーションソフトウェア部
80,82…アプリ検査部
80f…アプリ検査装置
81…検査処理部
83…ミドルウェア検査部
84…ミドル検査部
85…JavaVM
86…JavaVM検査部
87…JavaVM検査装置
Claims (20)
- 着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置であって、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部と、
前記本人認証情報が入力された際に、乱数を要求するコマンドをICカード向けに送出する乱数要求手段とを更に備えており、
前記連結部は、前記コマンドに応じて乱数データを含むレスポンスをICカードから受けたとき、前記レスポンス内の乱数データを含めて前記連結を行うものであり、
前記アプリケーションソフトウェア部は、
前記暗号化部による暗号化データの入力に応じて前記ICカードから、当該ICカード内で前記乱数データとは異なる第2乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段と、
前記復号手段による復号の結果、得られた第2乱数データに基づいて前記一時共有鍵を、前記ICカード内での更新結果と同一の更新結果を得られるように前記ICカード内の算出方式と同一の算出方式により更新する鍵更新手段と、
を更に備えたことを特徴とするICカード利用装置。 - 請求項1に記載のICカード利用装置において、
前記ICカードと共有され且つICカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段と、
前記鍵配送手段による配送に応じて前記ICカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第1復号手段と、
前記ICカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段と、
前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化手段と、
前記暗号化手段による暗号化データの入力に応じて前記ICカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第2復号手段と、
前記第2復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段と、
前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段と、
前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ICカードと共有するように、更新するカウンタ値更新手段と、
継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第2復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段と
を備えたことを特徴とするICカード利用装置。 - 請求項2に記載のICカード利用装置において、
前記連結手段は、少なくともメッセージ認証子MAC又はチェックサムを含めて前記連結を行うことを特徴とするICカード利用装置。 - 請求項1乃至請求項3のいずれか1項に記載のICカード利用装置において、
検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段を備えており、
前記アプリケーションソフトウェア部は、予め自己のディジタル署名が付与されており、
前記検査手段は、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査することを特徴とするICカード利用装置。 - 請求項1乃至請求項4のいずれか1項に記載のICカード利用装置において、
前記アプリケーションソフトウェア部は、
前記ICカードの機能を利用するための上位アプリケーション部と、
前記上位アプリケーション部が前記ICカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、
前記ミドルウェア部は、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいることを特徴とするICカード利用装置。 - 請求項5に記載のICカード利用装置において、
上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段と、
ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段と
を備え、
前記上位アプリケーション部は、予め自己のディジタル署名が付与されており、
前記ミドルウェア部は、予め自己のディジタル署名が付与されており、
前記上位アプリケーション検査手段は、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、
前記ミドルウェア検査手段は、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査することを特徴とするICカード利用装置。 - 請求項1に記載のICカード利用装置に使用されるICカードにおいて、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と、
前記ICカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段を設け、
前記カード内分解手段は、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解し、
前記カード内認証手段は、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証し、
前記乱数生成手段は、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第2乱数データを生成する機能を有し、
前記乱数生成手段により生成された第2乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ICカード利用装置に出力するカード内暗号化手段と、
前記乱数生成手段により生成された第2乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ICカード利用装置内での更新結果と同一の更新結果を得られるように前記ICカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段と、
前記更新により最終的に作成した一時共有鍵を格納する手段と、
前記格納した一時共有鍵を前記ICカード利用装置との暗号通信に使用する手段と、
を備えたことを特徴とするICカード。 - 請求項2に記載のICカード利用装置に使用されるICカードにおいて、
カウンタ値が記憶されるカード内記憶手段と、
前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ICカード利用装置に出力する第1暗号化手段と、
前記第1暗号化手段による暗号化カウンタ値データの出力に応じて、前記ICカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段と、
前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段と、
前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段と、
前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ICカード利用装置に出力する第2暗号化手段と
を備えたことを特徴とするICカード。 - 着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、
前記ICカード利用装置内のコンピュータに、
前記アプリケーションソフトウェア部としては、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段、
の機能を含んで実現させ、
前記鍵配送手段としては、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、
前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部、
の機能を含んで実現させ、
前記連結部は、前記コマンドに応じて乱数データを含むレスポンスをICカードから受けたとき、前記レスポンス内の乱数データを含めて前記連結を行う機能を含んでおり、
前記アプリケーションソフトウェア部としては、
前記暗号化部による暗号化データの入力に応じて前記ICカードから、当該ICカード内で前記乱数データとは異なる第2乱数データを前記一時共有鍵で暗号化して得られた暗号化乱数データを受けたとき、前記一時共有鍵に基づいて前記暗号化乱数データを復号する復号手段、
前記復号手段による復号の結果、得られた第2乱数データに基づいて前記一時共有鍵を、前記ICカード内での更新結果と同一の更新結果を得られるように前記ICカード内の算出方式と同一の算出方式により更新する鍵更新手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 - 請求項9に記載のコンピュータ読み取り可能な記憶媒体において、
前記ICカード利用装置内のコンピュータに、
前記ICカードと共有され且つICカードからの応答の送受信毎に更新されるカウンタ値が記憶されるカウンタ値記憶手段、
前記鍵配送手段による配送に応じて前記ICカードから暗号化カウンタ値データを受けたとき、前記一時共有鍵に基づいて前記暗号化カウンタ値データを復号し、得られたカウンタ値を前記カウンタ値記憶手段に書込む第1復号手段、
前記ICカードへコマンドを入力するとき、前記コマンドと前記カウンタ値記憶手段内のカウンタ値とを連結する連結手段、
前記連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化手段、
前記暗号化手段による暗号化データの入力に応じて前記ICカードから前記カウンタ値と応答内容とが暗号化された暗号化応答データを受けたとき、前記一時共有鍵に基づいて前記暗号化応答データを復号する第2復号手段、
前記第2復号手段による復号結果から前記カウンタ値と前記応答内容とを分解する分解手段、
前記分解手段により分解されたカウンタ値を前記連結手段で連結されたカウンタ値と比較し、両者が一致したとき、前記暗号化応答データを正当と認証する認証手段、
前記認証手段により正当と認証されたとき、前記カウンタ値記憶手段内のカウンタ値を、更新後の値も前記ICカードと共有するように、更新するカウンタ値更新手段、
継続してデータ暗号化を行う場合、前記連結手段、前記暗号化手段、前記第2復号手段、前記分解手段、前記認証手段、前記カウンタ値更新手段の処理を繰り返して行う手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 - 請求項10に記載のコンピュータ読み取り可能な記憶媒体において、
前記連結手段は、少なくともメッセージ認証子MAC又はチェックサムを含めて前記連結を行う機能を含むコンピュータ読み取り可能な記憶媒体。 - 請求項9乃至請求項11のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体において、
前記ICカード利用装置内のコンピュータに、
検査指令が入力されたとき、前記アプリケーションソフトウェア部の正当性を検査する検査手段、を実現させるためのプログラムであり、
前記アプリケーションソフトウェア部は、予め自己のディジタル署名が付与されており、
前記検査手段は、前記アプリケーションソフトウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する機能を含む手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 - 請求項9乃至請求項12のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体において、
前記アプリケーションソフトウェア部は、
前記ICカードの機能を利用するための上位アプリケーション部と、
前記上位アプリケーション部が前記ICカードの機能を利用するときの暗号通信に使用されるミドルウェア部とを備え、
前記ミドルウェア部は、少なくとも前記鍵生成手段及び前記鍵配送手段を含んでいるコンピュータ読み取り可能な記憶媒体。 - 請求項13に記載のコンピュータ読み取り可能な記憶媒体において、
前記ICカード利用装置内のコンピュータに、
上位アプリケーション検査指令が入力されたとき、前記上位アプリケーション部の正当性を検査する上位アプリケーション検査手段、
ミドルウェア検査指令が入力されたとき、前記ミドルウェア部の正当性を検査するミドルウェア検査手段、
を実現させるためのプログラムであり、
前記上位アプリケーション部は、予め自己のディジタル署名が付与されており、
前記ミドルウェア部は、予め自己のディジタル署名が付与されており、
前記上位アプリケーション検査手段は、前記上位アプリケーション部に付与されたディジタル署名に基づいて、前記正当性を検査し、
前記ミドルウェア検査手段は、前記ミドルウェア部に付与されたディジタル署名に基づいて、前記正当性を検査する手段であるプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 - 請求項1に記載のICカード利用装置のICカードに使用されるコンピュータ読み取り可能な記憶媒体において、
前記ICカード内のコンピュータに、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、
前記ICカード利用装置から前記乱数データを要求するコマンドとしてチャレンジ要求が入力されたとき、乱数を生成して得られた乱数データを含むレスポンスを前記アプリケーションソフトウェア部に出力する乱数生成手段、を実現させるためのプログラムを記憶し、
前記カード内分解手段は、前記一時共有鍵と前記本人認証情報との分解に加え、前記カード内復号手段による復号結果から乱数データを分解する機能を含み、
前記カード内認証手段は、前記本人認証情報による認証に加え、前記カード内分解手段により分解された乱数データを前記乱数生成手段により得られた乱数データと比較し、両者が一致したとき、前記暗号化データを正当と認証する機能を含み、
前記乱数生成手段は、前記カード内認証手段により正当と認証されたとき、前記乱数データとは異なる第2乱数データを生成する機能を含み、
前記ICカード内のコンピュータに、
前記乱数生成手段により生成された第2乱数データを前記カード内分解手段により分解された一時共有鍵で暗号化し、得られた暗号化乱数データを前記ICカード利用装置に出力するカード内暗号化手段、
前記乱数生成手段により生成された第2乱数データに基づいて、前記カード内暗号化手段に使用された一時共有鍵を、前記ICカード利用装置内での更新結果と同一の更新結果を得られるように前記ICカード利用装置内の算出方式と同一の算出方式により更新するカード内鍵更新手段、
前記更新により最終的に作成した一時共有鍵を格納する手段、
前記格納した一時共有鍵を前記ICカード利用装置との暗号通信に使用する手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 - 請求項10に記載のコンピュータ読み取り可能な記憶媒体ICカードにおいて、
前記ICカード内のコンピュータに、
カウンタ値が記憶されるカード内記憶手段、
前記鍵配送手段により配送された一時共有鍵に基づいて、前記カード内記憶手段内のカウンタ値を暗号化し、得られた暗号化カウンタ値データを前記ICカード利用装置に出力する第1暗号化手段、
前記第1暗号化手段による暗号化カウンタ値データの出力に応じて、前記ICカード利用装置から暗号化データを受けたとき、前記一時共有鍵に基づいて、当該暗号化データを復号するカード内復号手段、
前記カード内復号手段による復号結果から前記カウンタ値と前記コマンドとを分解するカード内分解手段、
前記カード内分解手段により分解されたカウンタ値を前記カード内記憶手段内のカウンタ値と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で分解されたコマンドを処理し、応答データを生成するコマンド処理手段、
前記コマンド処理手段により生成された応答データと前記カード内記憶手段内のカウンタ値を連結するカード内連結手段、
前記カード内連結手段による連結結果を前記一時共有鍵で暗号化し、得られた暗号化応答データを前記ICカード利用装置に出力する第2暗号化手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 - 着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部と、
を備えたICカード利用装置に使用されるICカードにおいて、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と
を備えたことを特徴とするICカード。 - 着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置であって、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部と、
を備えており、
前記ICカードは、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と
を備えたことを特徴とするICカード利用装置。 - 着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有し、
前記アプリケーションソフトウェア部は、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段と、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段と
を備えており、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部と、
前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部と、
を備えたICカード利用装置に使用されるICカードに使用されるコンピュータ読み取り可能な記憶媒体であって、
前記ICカード内のコンピュータに、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段、
を実現させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。 - 着脱自在に保持されたICカードに対し、このICカード内の機能を利用するように処理が記述されたアプリケーションソフトウェア部を有するICカード利用装置に使用されるコンピュータ読み取り可能な記憶媒体であって、
前記ICカード利用装置内のコンピュータに、
前記アプリケーションソフトウェア部としては、
本人認証情報が入力されたとき、前記機能を利用するときの暗号通信に使用される一時共有鍵を生成する鍵生成手段、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを前記ICカードに配送する鍵配送手段、
の機能を含んで実現させるプログラムであり、
前記鍵配送手段は、
前記鍵生成手段により生成された一時共有鍵と前記入力された本人認証情報とを連結する連結部、
前記連結部による連結結果を前記ICカードの公開鍵で暗号化し、得られた暗号化データを前記ICカードに入力する暗号化部、
の機能を含んで実現させるためのプログラムであり、
前記ICカードは、
前記暗号化部から入力された暗号化データを自己の秘密鍵で復号するカード内復号手段と、
前記カード内復号手段による復号結果から前記一時共有鍵と前記本人認証情報とを分解するカード内分解手段と、
前記カード内分解手段により分解された本人認証情報を予め保持する本人認証情報と比較し、両者が一致したとき、前記暗号化データを正当と認証するカード内認証手段と、
前記カード内認証手段により正当と認証されたとき、前記カード内分解手段で得られた一時共有鍵を格納するカード内鍵格納手段と
を備えたことを特徴とする、前記各プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29412199A JP3749640B2 (ja) | 1999-10-15 | 1999-10-15 | Icカード利用装置、icカード及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29412199A JP3749640B2 (ja) | 1999-10-15 | 1999-10-15 | Icカード利用装置、icカード及び記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001118034A JP2001118034A (ja) | 2001-04-27 |
JP3749640B2 true JP3749640B2 (ja) | 2006-03-01 |
Family
ID=17803574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29412199A Expired - Fee Related JP3749640B2 (ja) | 1999-10-15 | 1999-10-15 | Icカード利用装置、icカード及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3749640B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4604418B2 (ja) * | 2001-07-26 | 2011-01-05 | パナソニック株式会社 | 通信装置および通信方法 |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
KR20040036402A (ko) * | 2002-10-25 | 2004-04-30 | 한국전자통신연구원 | 스마트 카드를 이용한 온라인 시스템과 이의 접속 및 응용프로그램 로딩 방법 |
JP4624732B2 (ja) * | 2003-07-16 | 2011-02-02 | パナソニック株式会社 | アクセス方法 |
JP2005157930A (ja) * | 2003-11-28 | 2005-06-16 | Matsushita Electric Ind Co Ltd | 機密情報処理システムおよびlsi |
US20050223233A1 (en) * | 2004-04-01 | 2005-10-06 | Fujitsu Limited | Authentication method and system |
US8973094B2 (en) * | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
JP5103803B2 (ja) * | 2006-06-26 | 2012-12-19 | 大日本印刷株式会社 | モード変更機能を備えたicカード、および、icカードプログラム |
JP5077685B2 (ja) * | 2008-03-27 | 2012-11-21 | Necインフロンティア株式会社 | 入力装置および情報処理方法 |
JP5449905B2 (ja) | 2009-07-29 | 2014-03-19 | フェリカネットワークス株式会社 | 情報処理装置、プログラム、および情報処理システム |
JP5478364B2 (ja) * | 2010-05-28 | 2014-04-23 | 三菱電機株式会社 | 認証システム及び端末装置及びアイシーカード及びコンピュータプログラム及び認証方法及びコマンド送信方法 |
JP5752991B2 (ja) * | 2011-05-19 | 2015-07-22 | 株式会社メガチップス | コンピュータシステム及び半導体記憶装置 |
JP2015122620A (ja) * | 2013-12-24 | 2015-07-02 | 富士通セミコンダクター株式会社 | 認証システム、認証方法、認証装置、及び、被認証装置 |
CN106063182B (zh) * | 2013-12-31 | 2019-11-19 | 威斯科数据安全国际有限公司 | 电子签名方法、系统及设备 |
JP6946031B2 (ja) * | 2017-03-22 | 2021-10-06 | 株式会社東芝 | Icカード、およびicカードの制御方法 |
-
1999
- 1999-10-15 JP JP29412199A patent/JP3749640B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001118034A (ja) | 2001-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9305156B2 (en) | Integrity protected smart card transaction | |
CN110519260B (zh) | 一种信息处理方法及信息处理装置 | |
JP4067985B2 (ja) | アプリケーション認証システムと装置 | |
EP1224518B1 (en) | Trusted computing platform with biometric authentication | |
JP3622433B2 (ja) | アクセス資格認証装置および方法 | |
AU2004288540B2 (en) | Portable security transaction protocol | |
JP4736744B2 (ja) | 処理装置、補助情報生成装置、端末装置、認証装置及び生体認証システム | |
KR100670005B1 (ko) | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 | |
JP3749640B2 (ja) | Icカード利用装置、icカード及び記憶媒体 | |
JP2004530346A (ja) | セキュアな暗号鍵の生成、証明、および使用のための方法および装置 | |
JPH11231775A (ja) | 条件付き認証装置および方法 | |
JPH10247905A (ja) | アクセス資格認証装置および方法 | |
CN103051451A (zh) | 安全托管执行环境的加密认证 | |
CN1921395B (zh) | 提高网络软件安全性的方法 | |
JP3580333B2 (ja) | 暗号認証機能の装備方法 | |
US7073062B2 (en) | Method and apparatus to mutually authentication software modules | |
JP2006024237A (ja) | データ更新システム | |
JPH1139156A (ja) | 暗号化データ復号装置 | |
JP6203556B2 (ja) | 情報処理システム | |
JP2007258789A (ja) | エージェント認証システム、エージェント認証方法、及びエージェント認証プログラム | |
JP2001118038A (ja) | 計算装置、計算機システム及び記録媒体 | |
CN112559979B (zh) | 一种pos机上通过硬件安全芯片保护软件库授权使用的方法 | |
Salaiwarakul | Verification of secure biometric authentication protocols | |
JPH10164051A (ja) | ユーザ認証装置および方法 | |
JP2002217895A (ja) | データ・アプリケーション格納方法及び、コマンド実行方法及びシステム及びデータ・アプリケーション格納プログラム及びデータ・アプリケーション格納プログラムを格納した記憶媒体及びコマンド実行プログラム及びコマンド実行プログラムを格納した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050322 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050719 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050920 |
|
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: 20051129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051202 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |