(57)【特許請求の範囲】
【請求項１】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻に基づき、前記証明書検証処理において前記証明書部から有効期限を抽出する有効期限抽出処理と、前記ＩＣカード端末から送信された時刻情報または時刻管理が可能なＩＣカード内で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理とを行うことを特徴とするＩＣカードシステム通信データ保護処理方法。
【請求項２】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻である時刻情報部を他の認定済みデータから分離する時刻情報抽出処理を行い、
前記証明書検証処理においては、前記証明書部から有効期限を抽出する有効期限抽出処理と、前記時刻情報抽出処理で得られた時刻情報または時刻管理が可能なＩＣカード内部で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理を行うことを特徴とするＩＣカードシステム通信データ保護処理方法。
【請求項３】
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、前記ＩＣカードにおいては、認定済みデータ解析処理または有効期限抽出処理または証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ、あるいはこれらに加えて更に証明書の有効期限のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行うことを特徴とする請求項１または２記載のＩＣカードシステム通信データ保護処理方法。
【請求項４】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、
前記認定済みデータ解析処理または前記証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行うことを特徴とするＩＣカードシステム通信データ保護処理方法。
【請求項５】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理装置であって、
前記ＩＣカードは、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出手段と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証手段を有し、
前記データ署名検証手段は、前記認定済みデータの解析を行うデータ抽出手段、署名部抽出手段、および証明書抽出手段で構成されるデータ解析手段を有し、
前記データ解析手段は、前記ＩＣカード端末から付加的な要素として送信された時刻に基づき、前記証明書検証処理において前記証明書部から有効期限を抽出する有効期限抽出手段と、前記ＩＣカード端末から送信された時刻情報または時刻管理が可能なＩＣカード内で管理された時刻情報と前記有効期限抽出手段で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証手段と
を有することを特徴とするＩＣカードシステム通信データ保護処理装置。
【請求項６】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理装置であって、
前記ＩＣカードは、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出手段と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証手段を有し、
前記データ署名検証手段は、前記認定済みデータの解析を行うデータ抽出手段、署名部抽出手段、および証明書抽出手段で構成されるデータ解析手段を有し、
前記データ解析手段は、前記ＩＣカード端末から付加的な要素として送信された時刻である時刻情報部を他の認定済みデータから分離する時刻情報抽出手段を有し、
前記証明書検証処理は、前記証明書部から有効期限を抽出する有効期限抽出処理と、前記時刻情報抽出処理で得られた時刻情報または時刻管理が可能なＩＣカード内部で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証手段と
を有することを特徴とするＩＣカードシステム通信データ保護処理装置。
【請求項７】
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、前記ＩＣカードは、認定済みデータ解析処理手段または有効期限抽出処理手段または証明書署名抽出処理手段から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ、あるいはこれらに加えて更に証明書の有効期限のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理手段を有することを特徴とする請求項５または６記載のＩＣカードシステム通信データ保護処理装置。
【請求項８】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理装置であって、
前記ＩＣカードは、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出手段と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証手段を有し、
前記データ署名検証手段は、前記認定済みデータの解析を行うデータ抽出手段、署名部抽出手段、および証明書抽出手段で構成されるデータ解析手段を有し、
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、
前記データ解析手段または前記証明書署名抽出手段から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理し、少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析手段と
を有することを特徴とするＩＣカードシステム通信データ保護処理装置。
【請求項９】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法プログラムを記録した記録媒体であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻に基づき、前記証明書検証処理において前記証明書部から有効期限を抽出する有効期限抽出処理と、前記ＩＣカード端末から送信された時刻情報または時刻管理が可能なＩＣカード内で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理とを行うこと
を特徴とするＩＣカードシステム通信データ保護処理プログラムを記録した記録媒体。
【請求項１０】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法プログラムを記録した記録媒体であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻である時刻情報部を他の認定済みデータから分離する時刻情報抽出処理を行い、
前記証明書検証処理においては、前記証明書部から有効期限を抽出する有効期限抽出処理と、前記時刻情報抽出処理で得られた時刻情報または時刻管理が可能なＩＣカード内部で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理を行うこと
を特徴とするＩＣカードシステム通信データ保護処理プログラムを記録した記録媒体。
【請求項１１】
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、前記ＩＣカードにおいては、認定済みデータ解析処理または有効期限抽出処理または証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ、あるいはこれらに加えて更に証明書の有効期限のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行う
ことを特徴とする請求項９または１０に記載のＩＣカードシステム通信データ保護処理プログラムを記録した記録媒体。
【請求項１２】
ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法プログラムを記録した記録媒体であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、
前記認定済みデータ解析処理または前記証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行うこと
を特徴とするＩＣカードシステム通信データ保護処理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のＩＣカードサーバ、ＩＣカード端末、ＩＣカード間を含んだ分散環境においてアプリケーションプログラムまたは任意のデータを流通させるような分散ＩＣカードシステムにおいてＩＣカードサーバからＩＣカード端末を介してＩＣカードにまたはＩＣカード端末からＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法および装置とＩＣカードシステム通信データ保護処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
ＩＳＯ／ＪＩＣＳＡＰにおいては、ＩＣカード端末からＩＣカードへのデータの送信時のデータ保護に関する方式としてセキュアメッセージングと呼ばれる暗号化方法が提案されている。しかしながら、ＩＣカード端末とＩＣカード間でのデータの改竄検出に関する規定は特にない。従って、アプリケーションダウンロード時のアプリケーションの改竄あるいは不正を防止するための規定は行っていない。
【０００３】
ＪａｖａＣａｒｄにおいては、プログラムダウンロード時のプログラムの改竄あるいは不正なプログラムの介入を防止するために、プログラムデータに対して秘密鍵により署名を施し、この署名検証を端末において実施してからＩＣカード内に転送する方式が開示されている。
【０００４】
また、ＭｕｌｔｏｓにおいてはＪａｖａＣａｒｄと異なりプログラムに対する署名の検証はＩＣカード内部において実施する。次に、図４に示す従来のＩＣカード通信データ保護処理方法を実施するＩＣカードシステムのモジュール構成図を参照して、簡単に手順を説明する。
【０００５】
まず最初に、Open MEL Applicationコマンドを実行し、領域の確保を行う。次に、LoadCodeコマンドによるプログラムデータのダウンロード（図４のプログラムダウンロード処理部１−１）やLodeApplicationSignatureコマンドによるアプリケーションへの署名データのダウンロード（図４の署名ダウンロード処理部１−２）を行った後、CreateMELApplicationコマンドによるアプリケーションの生成（図４のアプリケーション生成処理部１−３）時に、ＡＬＣと呼ばれるＭｕｌｔｏｓ独自の証明書データをダウンロード（図４の独自証明書ダウンロード処理部１−４）し、この中に含まれる該署名データの秘密鍵に対する公開鍵を、独自の証明書形式に対する構文解析（図４の独自構文解析処理部１−５）を実施して、抽出（図４の公開鍵抽出処理部１−６）した後、署名の検証（図４の署名検証処理部１−７）を行うという方法である。
【０００６】
これらのコマンドはＩＣカード端末１−８からＩＣカード１−９への伝送制御を実施する転送処理部１−１０を介して、コマンド制御部１−１１が該プログラムダウンロードコマンド、署名ダウンロードコマンド、アプリケーション生成処理コマンドなどの所望のコマンドのコマンド実行処理部１−１２にディスパッチすることによって実施される。
【０００７】
【発明が解決しようとする課題】
上述した従来方法では、まず、ＪａｖａＣａｒｄに対しては以下のような問題がある。
【０００８】
（１−ａ）ＪａｖａＣａｒｄにおいては、署名の検証を端末で実行するために、プログラムをＩＣカード内に転送する際に、改竄の恐れがあり、またプログラムを実行する装置上で検証が実施されないために、端末が信用できない場合にはセキュリティ上の不安がある。
【０００９】
またＭｕｌｔｏｓはこの問題を解決し、ＩＣカード内で認証処理を実行する方式を提案している。すなわち、Ｍｕｌｔｏｓにおいては、ＩＣカード発行者の管理機関において、ＩＣカードプログラムおよびＩＣカード発行期間を管理し、ＩＣカードのダウンロードをＩＣカード発行者およびＩＣカード発行者より認定された機関に限定するなど、プログラムのダウンロード（流通）を特定の機関に制限することによってプログラム改竄に対する脅威を防御・データ保証（プログラム保証）している。
【００１０】
しかしながら、現状のようなインターネットを始めとする分散環境においては、情報流通を促進させるためにはアプリケーションプロバイダ（プログラムの提供者）をＩＣカードを提供するサービスプロバイダまで柔軟に拡大し、かつエンドユーザ間でも自由にプログラムを交換できるようなオープンな環境が望まれる。また、更にプログラムだけではなく一般のデータに対しても署名・証明書付きで分散流通が図れるような環境の提供が望ましい。従って、このような環境を安全に提供することが重要である。
【００１１】
以下ではこのような分散流通環境に対して、Ｍｕｌｔｏｓ方式を適応しようとする場合の課題について説明する。
【００１２】
（１−ｂ）Ｍｕｌｔｏｓにおいては証明書形式が独自であるため分散環境において流通させた場合に、Ｍｕｌｔｏｓ環境以外との相互運用ができない。すなわち、例えば一般に流通しているＸ．５０９の証明書を用いた署名を施したデータをそのままＩＣカード内で処理することができない。
【００１３】
（１−ｃ）Ｍｕｌｔｏｓにおいては管理機関とＩＣカードダウンロード実行者間のプログラムダウンロードを想定しているため、管理機関とＩＣカードダウンロード実行者（ＩＣカード発行機関）の間で証明書をＩＣカード発行機関の公開鍵に基づく暗号処理によって安全に送信することが可能であるが、プログラムデータをエンドユーザ間で柔軟に流通させるような環境を提供する際には、署名と証明書をともに流通させる必要がある。しかしながら、このような分散ＩＣカードシステム環境に対してＭｕｌｔｏｓ方式を適応すると証明書に対する認定機関の署名がないために証明書が途中で改竄される恐れがある。
【００１４】
（１−ｄ）Ｍｕｌｔｏｓでは前述のように、ＩＣカードの発行者（あるいはＩＣカード発行者から認定されたビューロと呼ばれるアプリケーションダウンロードが可能な機関）が管理機関により管理されており、かつ常に、アプリケーションダウンロード時には管理機関に対してプログラムのダウンロードと証明書の転送が実行されるため、証明書に対する有効期間が設定されていなくても問題ないが、これを前述のようなアプリケーションをエンドユーザ間で柔軟に開発、流通させるような分散ＩＣカードシステム環境においては、証明書のエンドユーザ間での流通が生じてくるため、公開鍵所有者に対する保証期間を設定するためなどの目的で証明書に対する有効期間を知ることができなくてはならない。
【００１５】
（２）Ｍｕｌｔｏｓにおいてはアプリケーション、署名、証明書の管理者が特定の機関であり、かつアプリケーションダウンロード時には必ずこの管理機関からダウンロードするため、アプリケーション、署名、証明書が分散されてダウンロードされても問題がないが、プログラムデータをエンドユーザ間で柔軟に流通させるような環境を提供する際には、プログラム、署名、証明書は一体で管理した方が流通による紛失を避けるためあるいは処理の容易性を確保する上でも望ましい。
【００１６】
（３）上記（１−ｃ）で指摘したように、Ｍｕｌｔｏｓにおいては認定機関による証明書への署名がなく、従ってこの署名を検証する手段が提供されていないため署名検証が実施できない。
【００１７】
（４）（１）の条件下において、上記（１−ｄ）で指摘したような有効期間を検証する場合には、現状ＩＣカード内部では時刻情報を管理することが難しいため、時刻情報管理機能がついていないＩＣカードにおいては、時刻情報を知ることができない。また知ったとしてもこの時刻情報と有効期間を比較検証する手段が提供されていない。
【００１８】
（５）（２）の条件下において、上記（１−ｄ）で指摘したような有効期間を検証する場合には、一体化されたプログラム・署名・証明書とともに時刻情報をコマンドで送信する必要があるが、この場合に証明書の有効期間を検証する際に送信されたデータの中から時刻情報を分離する必要とこの時刻情報と有効期間を比較検証する手段を提供する必要がある。
【００１９】
（６）従来のタグ・レングス・値の構造をもつ例えばＸ．５０９のような証明書を処理する場合には一般に、タグ・レングス・値の構造をもつバイナリデータ（ＡＳＮ．１転送構文：ＴＬＶ構造データ）からＡＳＮ．１コンパイラを介して例えばＣの構造体に変換した後、必要な構造体のメンバを参照するような方式が取られていた。しかしながら、ＩＣカードのようにメモリ資源が少ない装置においては、ＡＳＭ．１コンパイラを登載して処理することは難しく簡易な処理方式が望まれている。
【００２０】
（７）Ｍｕｌｔｏｓについてはアプリケーションに対するダウンロードに関しては、データの改竄・不正に対する保護方法を署名・証明書を用いた方式として規定しているが一般のデータに対しては規定を行っていない。従って、これを一般のデータへと拡張し、書き込みコマンドを始めとする任意のコマンドの改竄・不正を防止する仕組みが必要である。
【００２１】
（８）Ｍｕｌｔｏｓにおいては証明書を処理するためのインタフェースが端末側に公開されていないために端末側で簡単にＩＣカードを利用した証明書処理が実施できない。
【００２２】
本発明は、上記に鑑みてなされたもので、その目的とするところは、ＩＣカードを含む分散環境においてＩＣカードに転送されたデータの改竄または不正を防止し、データを安全に流通させることができるＩＣカードシステム通信データ保護処理方法および装置とＩＣカードシステム通信データ保護処理プログラムを記録した記録媒体を提供することにある。
【００２３】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻に基づき、前記証明書検証処理において前記証明書部から有効期限を抽出する有効期限抽出処理と、前記ＩＣカード端末から送信された時刻情報または時刻管理が可能なＩＣカード内で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理とを行う。
【００２４】
また、請求項２に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻である時刻情報部を他の認定済みデータから分離する時刻情報抽出処理を行い、
前記証明書検証処理においては、前記証明書部から有効期限を抽出する有効期限抽出処理と、前記時刻情報抽出処理で得られた時刻情報または時刻管理が可能なＩＣカード内部で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理を行う。
【００２５】
また、請求項３に記載の本発明は、請求項１または２において、前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、前記ＩＣカードにおいては、認定済みデータ解析処理または有効期限抽出処理または証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ、あるいはこれらに加えて更に証明書の有効期限のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行う。
【００２６】
また、請求項４に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、
前記認定済みデータ解析処理または前記証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行う。
【００２７】
また、請求項５に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理装置であって、
前記ＩＣカードは、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出手段と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証手段を有し、
前記データ署名検証手段は、前記認定済みデータの解析を行うデータ抽出手段、署名部抽出手段、および証明書抽出手段で構成されるデータ解析手段を有し、
前記データ解析手段は、前記ＩＣカード端末から付加的な要素として送信された時刻に基づき、前記証明書検証処理において前記証明書部から有効期限を抽出する有効期限抽出手段と、前記ＩＣカード端末から送信された時刻情報または時刻管理が可能なＩＣカード内で管理された時刻情報と前記有効期限抽出手段で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証手段とを有する。
【００２８】
また、請求項６に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理装置であって、
前記ＩＣカードは、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出手段と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証手段を有し、
前記データ署名検証手段は、前記認定済みデータの解析を行うデータ抽出手段、署名部抽出手段、および証明書抽出手段で構成されるデータ解析手段を有し、
前記データ解析手段は、前記ＩＣカード端末から付加的な要素として送信された時刻である時刻情報部を他の認定済みデータから分離する時刻情報抽出手段を有し、
前記証明書検証処理は、前記証明書部から有効期限を抽出する有効期限抽出処理と、前記時刻情報抽出処理で得られた時刻情報または時刻管理が可能なＩＣカード内部で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証手段とを有する。
【００２９】
また、請求項７に記載の本発明は、請求項５または６において、前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、前記ＩＣカードは、認定済みデータ解析処理手段または有効期限抽出処理手段または証明書署名抽出処理手段から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ、あるいはこれらに加えて更に証明書の有効期限のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理手段を有する。
【００３０】
また、請求項８に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理装置であって、
前記ＩＣカードは、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出手段と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証手段を有し、
前記データ署名検証手段は、前記認定済みデータの解析を行うデータ抽出手段、署名部抽出手段、および証明書抽出手段で構成されるデータ解析手段を有し、
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、
前記データ解析手段または前記証明書署名抽出手段から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理し、少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析手段とを有する。
【００３１】
また、請求項９に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法プログラムを記録した記録媒体であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻に基づき、前記証明書検証処理において前記証明書部から有効期限を抽出する有効期限抽出処理と、前記ＩＣカード端末から送信された時刻情報または時刻管理が可能なＩＣカード内で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理とを行う。
【００３２】
また、請求項１０に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法プログラムを記録した記録媒体であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記データ解析処理においては、前記ＩＣカード端末から付加的な要素として送信された時刻である時刻情報部を他の認定済みデータから分離する時刻情報抽出処理を行い、
前記証明書検証処理においては、前記証明書部から有効期限を抽出する有効期限抽出処理と、前記時刻情報抽出処理で得られた時刻情報または時刻管理が可能なＩＣカード内部で管理された時刻情報と前記有効期限抽出処理で得られた有効期限との比較を行い、証明書有効期限の検証を行う有効期限検証処理を行う。
【００３３】
また、請求項１１に記載の本発明は、請求項９または１０において、前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、前記ＩＣカードにおいては、認定済みデータ解析処理または有効期限抽出処理または証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ、あるいはこれらに加えて更に証明書の有効期限のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行う。
【００３４】
また、請求項１２に記載の本発明は、ＩＣカードサービスサーバと、ＩＣカード端末と、該ＩＣカード端末とＩＣカードの通信を行う転送処理手段、ＩＣカード端末から送信または要求されるコマンドデータを所望のコマンド実行部にディスパッチするためのコマンド制御手段、およびコマンドを実行する複数のコマンド実行手段を有するＩＣカードとを有するＩＣカードシステムにおいて、前記ＩＣカードサービスサーバから前記ＩＣカード端末を介してまたは前記ＩＣカード端末から前記ＩＣカードに送信されたデータの改竄または不正を防止するためのＩＣカードシステム通信データ保護処理方法プログラムを記録した記録媒体であって、
前記ＩＣカードにおいては、前記ＩＣカード端末から送信されたデータ部、前記データ部を保証する人の秘密鍵を用いた署名部、前記署名部に用いた秘密鍵に対する公開鍵の証明を行うものであって、前記公開鍵の所有者の識別子とデータ部署名者の公開鍵とこれらの少なくとも前記識別子と公開鍵情報を保証する認証機関の識別子と署名を少なくとも含み、更にこの証明の有効期限を含む証明書部で少なくとも構成される認定済みデータの証明書部から公開鍵を抽出し、証明書検証処理内で証明書内の認証機関の署名を検証する証明書署名検証処理を行う公開鍵抽出処理と、前記抽出された公開鍵に基づいて署名検証処理を実行するデータ署名検証処理を行い、
前記データ署名検証処理においては、前記認定済みデータの解析を行うデータ抽出処理、署名部抽出処理、および証明書抽出処理で構成されるデータ解析処理を行い、
前記証明書部の構造が階層化されたタグと長さと値で表現されたバイナリデータであって、
前記認定済みデータ解析処理または前記証明書署名抽出処理から要求を受け付け、前記バイナリデータをタグ・長さ・値のまま処理を行い、
少なくとも公開鍵の所有者の識別子とデータ部署名者(該公開鍵所有者)の公開鍵と、公開鍵情報を補償する認証機関の識別子と該証明書に対する認証機関の署名あるいは独自に規定した特別のタグ値のみ少なくとも抽出するタグ・レングス・値バイナリ構文解析処理を行う。
【００７１】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を説明する。図１は、本発明の一実施形態に係るＩＣカードシステム通信データ保護処理方法を実施するＩＣカードシステムの構成を示すブロック図である。図１に示すＩＣカードシステムは、ＩＣカード端末４−１およびＩＣカード４−２から構成され、ＩＣカード４−２は転送処理部４−３、コマンド制御部４−４、データ署名検証制御部４−７、コマンド実行処理部４−８、公開鍵抽出処理部４−９、証明書検証処理部４−２２、公開鍵形式変換処理部４−１１、証明書署名者公開鍵４−３３の接続された署名検証処理部４−１２、ＴＬＶ構文解析処理部４−１８から構成されている。
【００７２】
また、コマンド制御部４−４は、データ署名検証制御判定部４−５、データ署名検証制御要求部４−６から構成され、データ署名検証制御部４−７は、データ署名検証インタフェース部４−３１、認定済みデータ解析処理部４−１３、公開鍵抽出制御部４−１９、公開鍵形式変換制御部４−２９、データ署名検証処理部４−３０から構成され、認定済みデータ解析処理部４−１３は、データ部抽出部４−１４、署名部抽出部４−１５、証明書抽出部４−１６、時刻情報部抽出部４−１７から構成されている。更に、公開鍵抽出処理部４−９は、公開鍵抽出インタフェース処理部４−２０、証明書検証制御部４−２１、公開鍵抽出処理実行部４−２８から構成されている。証明書検証処理部４−２２は、証明書検証インタフェース処理部４−２３、有効期限抽出処理部４−２４、有効期限検証処理部４−２５、証明書署名抽出処理部４−２６、証明書署名検証処理実行部４−２７から構成されている。
【００７３】
次に、上述したように構成される実施形態の作用について図２に示すフローチャートおよび図３に示すＩＣカード通信データ構造を参照して説明する。
【００７４】
まず、ＩＣカード端末４−１より、認定済みデータとして、ＴＬＶ構造をもつデータ・署名・証明書の対が送信され、時刻情報がこの認定済みデータの後にＴＬＶ構造で添付されているとする（図３のＣＡＳＥ２）。このとき、ＩＣカード４−２内の転送処理部４−３はこの情報をＩＣカード端末４−１からＩＣカード４−２内のコマンド制御部４−４へと転送を実施し（２−１（図２中に示す記号。以下同様））、コマンド制御部４−４にコマンドデータを渡す。コマンド制御部４−４では（２−２）、データ署名検証制御の判定を行うような設定がＩＣカード内あるいはＩＣカード内のコマンドが指定された領域内あるいはコマンド単位でなされている場合には、データ署名検証制御判定部４−５において、認定済みデータのタグを見つけた場合に署名検証が必要であると判断し、認定済みデータ＋時刻情報をデータ署名検証制御要求部４−６に転送する（２−８）。データ署名検証制御要求部４−６ではこの情報をデータ署名検証制御部４−７に転送する。
【００７５】
もし、認定済みデータのタグがなかった場合には、コマンドを通常と同様に指定されたコマンドに対するコマンド実行処理部４−８に渡す（このコマンド実行処理部４−８は、データ署名検証制御部４−７、公開鍵抽出処理部４−９、証明書検証処理部４−２２、公開鍵形式変換処理部４−１１、署名検証処理部４−１２を含む。このときそれぞれの、インタフェース処理部がコマンド制御部４−４とのインタフェースを受け持つ。個々の説明は後述する）（２−３）。なお、このデータ署名検証制御判定方法は多様な設定が考えられる（例えば、シンプルＴＬＶ（階層を持たないＴＬＶデータの列）構造で、最後に署名＋証明書＋時刻情報（オプション）があった場合は、プロトコルヘッダから署名までをデータとみなすかあるいはプロトコルヘッダから署名までをデータとみなしてデータ署名検証制御を行う等など）。また、コマンド制御部４−４はデータ署名検証制御判定部４−５を持たず、すべてのコマンドをコマンド実行処理部にディスパッチし、コマンド実行処理部においてデータ署名検証制御部４−７に認定済みデータ＋時刻情報の形式で（コマンド実行部にデータ＋署名＋証明書＋時刻情報などのような形式で渡っている場合は認定済みデータ＋時刻情報の形式に組み立て直して送信する。他に双方で形式の共通理解があればよい）情報を渡して、データ署名検証制御を実施してもよい。
【００７６】
次に、データ署名検証制御部４−７の処理フローを説明する。データ署名検証制御部４−７では、データ署名検証インタフェース部４−３１で認定済みデータ＋時刻情報を受け取り、認定済みデータ解析処理部４−１３に処理を依頼する。
認定済みデータ解析処理部４−１３では、認定済みデータ（前述のように、データ署名検証制御主要部に渡される形式は、双方の共通理解があればよい。例えば、データ＋署名＋証明書＋時刻情報のようであってもよい）の構造解析を行う。
ＴＬＶ構造を判定し、データ部抽出部４−１４においてデータの抽出を行い（２−４）、署名部抽出部４−１５において署名の抽出を行い（２−５）、証明書抽出部４−１６において証明書の抽出を行い（２−６）、時刻情報部抽出部４−１７において時刻情報の抽出を行う（２−７）。なお、構造の解析と値の抽出にあたっては、ＴＬＶ構文解析処理部４−１８の解析ルーチン（例えばタグ番号入力に対して値を返すなど共通的なルーチンを利用するものから、特定の解析ルーチンを複数用意して、これを利用するなど）を利用して処理を実施してもよい（２−１７）。なお、解析されたデータはメモリ上におくかあるいはファイルに書き込み処理を利用して書き込んでおき（特に、データは大きいのでデータだけはファイルに書き出すとか）、終了後に消去する。
【００７７】
次に、証明書からの公開鍵の抽出処理について説明する。公開鍵の抽出処理はデータ署名検証制御部４−７の公開鍵抽出制御部４−１９がＩＣカード内の公開鍵抽出処理部４−９に対して、処理要求として証明書を送信するところから開始される。公開鍵抽出処理部４−９は、公開鍵抽出インタフェース処理部４−２０を介して、公開鍵抽出処理制御部４−１９から処理依頼を受け（２−１３）、これを証明書検証制御部４−２１に渡す。証明書検証制御部４−２１は、ＩＣカード内の証明書検証処理部４−２２ではまず、証明書検証インタフェース処理部４−２３が証明書と時刻情報を受け取り、有効期限抽出処理部４−２４に渡す。有効期限抽出処理部４−２４では証明書から有効期限のみ値を抽出し、この値を有効期限検証処理部４−２５に渡す（２−９）。なお、有効期限抽出処理部４−２５はこの値の抽出にあたって、このモジュールにてＴＬＶ構造の解析を実施してもよいが、前記認定済みデータ解析処理部４−１３が実施したようにＴＬＶ構文解析処理裡部４−１８を利用してもよい（２−１０）。有効期限検証処理部４−２５では、メモリ上あるいはファイル内（あるいは公開鍵抽出制御部４−１９から公開鍵抽出処理部４−９に渡された）時刻情報、あるいは時刻情報管理機能を有するＩＣカードにおいては、得られた時刻情報を利用して、渡された有効期限を時刻情報が満たしているかどうかの判定を行う。もし、時刻情報を満たしていない場合には公開鍵抽出制御部４−９に対してエラーを返却する。もし、満たしている場合は、証明書署名抽出処理部４−２６に証明書を渡す。証明書署名抽出処理部４−２６では、証明書に署名された認証期間の署名の抽出を実施するが、これは前記有効期限抽出処理４−２４と同様にＴＬＶ構文解析処理部４−１８を利用して署名の抽出を行ってもよい。
署名の抽出が終了後、証明書署名検証処理実行部４−２７において、証明書の署名に対する検証を実施する。このとき、例えば、認証期間の公開鍵データは予めＩＣカード内の鍵データとして格納しておき、コマンドのパラメータの１つとしてこの鍵データの識別を指定するようにする。証明書署名検証処理実行部４−２７は、ＩＣカード内の署名検証処理部４−１２に処理を依頼し（２−１２）、署名検証処理部４−１２は証明書のデータと署名データ、および該公開鍵データの鍵識別子を利用して署名の検証を実施する（２−１１）。もし署名が正しくない場合には公開鍵抽出制御部４−１９にエラーを返却する（２−１３）。正しい場合には、公開鍵抽出処理実行部４−２８に証明書を渡し、証明書から公開鍵の抽出を実施する。公開鍵抽出処理実行部４−２８によるＴＬＶ構文の解析方法については前述の通りである。抽出が成功した場合には、抽出した公開鍵を公開鍵抽出制御部４−１９に返却する。
【００７８】
次に、公開鍵抽出制御部４−１９が受け取った公開鍵が署名検証処理部４−１２の処理できる形式でない場合に、公開鍵形式変換制御部４−２９に公開鍵を渡す。公開鍵形式変換制御部４−２９は公開鍵形式変換処理部４−１１に公開鍵を渡し、公開鍵の所望の形式への変換を実施する（２−１４）。
【００７９】
最後に変換された公開鍵を元に、データ署名検証処理部４−３０がＩＣカードより送信されたデータに対する署名の検証を署名検証処理部４−１２に依頼することによって、すべてのデータ検証作業を終了する（２−１６）。
【００８０】
なお、データ署名検証制御部４−７、公開鍵抽出処理部４−９、証明書検証処理部４−２２以外で、公開鍵形式変換処理部４−１１、署名検証処理部４−１２等を含むすべてのコマンド実行処理部４−８はすべてインタフェース処理部を有し、ＩＣカード端末あるいはＩＣカード内の他のコマンド実行処理部４−８から依頼された処理を実行するインタフェースを提供する。
【００８１】
また、公開鍵抽出処理部はオプションとして、公開鍵の他にオプションとして、公開鍵の所有者の識別子などの情報を出力する。
【００８２】
なお、図３において、ＣＡＳＥ１、すなわちＭｕｌｔｏｓのようにデータ、署名、証明書を別々に送信する際には、例えば任意のコマンドについて、データ部で設定する情報を予め送信しておき、最後にコマンドを実施するというような方式となる。このとき、データ、署名、証明書はコマンド用の共通メモリエリアあるいはファイルにテンポラリデータとして保持されなければならない。
【００８３】
なお、上記実施形態の処理をプログラムとして記録媒体に記録することにより該記録媒体を用いて、その流通性を高めることができる。
【００８４】
【発明の効果】
以上説明したように、本発明によれば、（１）ＩＣカードサービスサーバ、ＩＣカード端末、ＩＣカードを含む分散環境において、エンドユーザ（任意のサービスプロバイダを含む）によって既存の署名・証明書管理環境を用いた容易なデータ保証を行うことができ、かつこのデータをエンドユーザ間で流通させることが可能となる。
【００８５】
また、本発明によれば、（２）既存に流通している証明書と整合性の高い署名検証処理が可能となり、また認証機関の署名と証明書有効期間が設定されているので、この情報を利用すれば証明書を流通させても改竄の恐れがなく、また証明書が有効でない場合に利用するというような危険性を回避することが可能となる。
【００８６】
更に、本発明によれば、（３）証明書に対する認証機関の署名を検証することが可能となるので、分散環境で署名＋証明書付きのデータ（プログラムを含む）を安全に流通させることが可能となり、これにより分散ＩＣカードシステム環境においてエンドユーザ間で相互にデータやプログラムを交換する環境が提供できる。
【００８７】
本発明によれば、（４）データ・署名・証明書が一体となったデータ（ファイル）として任意のデータが管理可能であるので、分散環境において署名・証明書付きデータを流通させた場合に、個々に管理する方法に比較して、紛失などの管理上の混乱を回避することが可能となるほか、個々の処理の容易性も確保できる。
【００８８】
また、本発明によれば、（５）証明書の有効期間の検証処理が可能となるので、証明書を複数の管理機関で管理し、また既存の証明書管理機関で発行されたＸ．５０９のような証明書を利用することが可能となり、ＩＣカードのデータ保証を行うための仕組みとして、安全性を保証したまま、より柔軟な公開鍵の管理、すなわち利用者の管理が可能となる。また、これに応じて安全に署名・証明書付きデータを分散環境で流通させることが可能である。
【００８９】
更に、本発明によれば、（６）上述した（３）のようなデータ・署名・証明書一体型のデータの流通環境においても上記（５）のように証明書の有効期間の検証が可能となるので、データの管理の容易性を確保したまま安全な分散流通を図ることが可能である。
【００９０】
本発明によれば、（７）従来のタグ・レングス・値の構造（以下、ＴＬＶ構造）をもつ例えばＸ．５０９の転送構文データをＩＣカード内で処理する場合に、高速にＩＣカード内で証明書から有効期限抽出処理あるいは公開鍵抽出処理を行うことが可能となる。
【００９１】
また、本発明によれば、（８）ダウンロードコマンド以外の任意のコマンドに対して、コマンドを実行する前に、コマンドに対して入力されたデータに対する署名の検証処理を実行し、データの正当性を検証することが可能となる。これにより、例えばＩＳＯ７８１６−４に規定されるようなコマンドヘッダ情報＋コマンドパラメータ＋コマンドデータ部に対する署名と証明書を施し、この正当性を常にチェックすることが可能となり、コマンド送信者を保証する仕組みを提供することができる。ＩＳＯ以外のコマンドに対しては同様である。
【００９２】
更に、本発明によれば、（９）個々の証明書処理インタフェースをコマンド制御向けに提供することにより、ＩＣカード端末（およびＩＣカード端末を介したＩＣカードサービスサーバ）あるいはＩＣカード内の任意の他のコマンドから証明書処理インタフェースを利用することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るＩＣカードシステム通信データ保護処理方法を実施するＩＣカードシステムの構成を示すブロック図である。
【図２】図１に示す実施形態の作用を示すフローチャートである。
【図３】図１に示す実施形態におけるＩＣカード通信データ構造を示す図である。
【図４】従来のＩＣカードシステム通信データ保護処理方法を実施する装置構成を示すブロック図である。
【図５】図４に示す従来のＩＣカードシステム通信データ保護処理手順を示すフローチャートである。
【図６】従来のＩＣカード通信データ構造を示す図である。
【符号の説明】
４−１  ＩＣカード端末
４−２  ＩＣカード
４−３  転送処理部
４−４  コマンド制御部
４−５  データ署名検証制御判定部
４−６  データ署名検証制御要求部
４−７  データ署名検証制御部
４−８  コマンド実行処理部
４−９  公開鍵抽出処理部
４−１１  公開鍵形式変換処理部
４−１２  署名検証処理部
４−１３  認定済みデータ解析処理部
４−１４  データ部抽出部
４−１５  署名部抽出部
４−１６  証明書抽出部
４−１７  時刻情報部抽出部
４−１８  ＴＬＶ構文解析処理部
４−１９  公開鍵抽出制御部
４−２０  公開鍵抽出インタフェース処理部
４−２１  証明書検証制御部
４−２２  証明書検証処理部
４−２３  証明書検証インタフェース処理部
４−２４  有効期限抽出処理部
４−２５  有効期限検証処理部
４−２６  証明書署名抽出処理部
４−２７  証明書署名検証処理実行部
４−２８  公開鍵抽出処理実行部
４−２９  公開鍵形式変換制御部
４−３０  データ署名検証処理部
４−３１  データ署名検証インタフェース部
【図１】
0003838404.tif 000002
【図２】
0003838404.tif 000003
【図３】
0003838404.tif 000004
【図４】
0003838404.tif 000005
【図５】
0003838404.tif 000006
【図６】
0003838404.tif 000007