(57)【特許請求の範囲】
【請求項１】
第１の暗号鍵および当該第１の暗号鍵に対応する第１の復号鍵を保持するエリア管理サーバ、当該エリア管理サーバに接続され、かつ、第２の暗号鍵および当該第２の暗号鍵に対応する第２の復号鍵を保持するサービス提供サーバ、および、第３の復号鍵を保持し、かつ、前記サービス提供サーバに接続され、かつ、耐タンパ性を有するセキュアチップにアクセス可能なクライアント装置、を含むサービス提供システムであって、
前記エリア管理サーバは、
前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報を生成するアクセス制御情報生成部と、
前記サービス提供サーバから取得した前記第２の復号鍵および前記アクセス制御情報から、前記第１の暗号鍵を用いて第１の電子署名を生成する署名生成部と、
前記第２の復号鍵、前記アクセス制御情報、および、前記第１の電子署名が含まれるサービス提供サーバ証明書、を生成する証明書生成部と、
を備え、
前記サービス提供サーバは、
前記クライアント装置に実行させるスクリプト言語による命令セットを生成する命令セット生成部と、
前記命令セットから、前記第２の暗号鍵を用いて第２の電子署名を生成する署名生成部と、
を備え、
前記クライアント装置は、
前記第１の復号鍵、および、前記第１の復号鍵から生成され、かつ、前記第３の復号鍵により復号可能な第３の電子署名、を含むエリア管理サーバ証明書、前記サービス提供サーバ証明書、前記命令セット、および、前記第２の電子署名、を取得する取得部と、
前記第３の復号鍵を利用して前記エリア管理サーバ証明書を検証し、当該エリア管理サーバ証明書から抽出した前記第１の復号鍵を用いて前記サービス提供サーバ証明書を検証し、当該サービス提供サーバ証明書から抽出した前記第２の復号鍵を用いて前記第２の電子署名を検証する検証部と、
前記検証部により、前記エリア管理サーバ証明書、前記サービス提供サーバ証明書、および、前記第２の電子署名、が正しく検証され、かつ、前記命令セットに応じてアクセスされる前記セキュアチップのメモリエリアが前記サービス提供サーバ証明書から抽出された前記アクセス制御情報により示される前記セキュアチップのメモリエリアに含まれる場合に、前記命令セットを実行するアクセス制御部と、
を備える、サービス提供システム。
【請求項２】
前記アクセス制御情報には、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記クライアント装置の読み込み処理又は書き込み処理を制限するアクセス権情報および同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されており、
前記クライアント装置が備えるアクセス制御部は、前記命令セットに応じて前記セキュアチップにアクセスする処理が前記アクセス制御情報に記述された条件を満たす場合に、前記命令セットを実行する、請求項１に記載のサービス提供システム。
【請求項３】
第１の暗号鍵および当該第１の暗号鍵に対応する第１の復号鍵を保持するエリア管理サーバ、当該エリア管理サーバに接続され、かつ、第２の暗号鍵および当該第２の暗号鍵に対応する第２の復号鍵を保持するサービス提供サーバ、前記エリア管理サーバに接続され、かつ、第３の暗号鍵を保持する認証サーバ、および、前記サービス提供サーバに接続され、かつ、耐タンパ性を有するセキュアチップにアクセス可能であり、かつ、前記第３の暗号鍵に対応する第３の復号鍵を保持するクライアント装置、を含むサービス提供システムであって、
前記エリア管理サーバは、
前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報を生成するアクセス制御情報生成部と、
前記サービス提供サーバから取得した前記第２の復号鍵、および前記アクセス制御情報から、前記第１の暗号鍵を用いて第１の電子署名を生成する署名生成部と、
前記第２の復号鍵と、前記アクセス制御情報と、前記第１の電子署名とが含まれるサービス提供サーバ証明書を生成する証明書生成部と、
を備え、
前記サービス提供サーバは、
前記クライアント装置に実行させるスクリプト言語によりなる命令セットを生成する命令セット生成部と、
前記命令セットから、前記第２の暗号鍵を用いて第２の電子署名を生成する署名生成部と、
を備え、
前記認証サーバは、
前記エリア管理サーバから取得した前記第１の復号鍵から、前記第３の暗号鍵を用いて第３の電子署名を生成する署名生成部と、
前記第１の復号鍵および前記第３の電子署名が含まれるエリア管理サーバ証明書を生成する証明書生成部と、
を備え、
前記クライアント装置は、
前記エリア管理サーバ証明書、前記サービス提供サーバ証明書、前記命令セット、および、前記第２の電子署名を取得する取得部と、
前記第３の復号鍵を利用して前記エリア管理サーバ証明書を検証し、当該エリア管理サーバ証明書から抽出した前記第１の復号鍵を用いて前記サービス提供サーバ証明書を検証し、当該サービス提供サーバ証明書から抽出した前記第２の復号鍵を用いて前記第２の電子署名を検証する検証部と、
前記検証部により、前記エリア管理サーバ証明書、前記サービス提供サーバ証明書、および、前記第２の電子署名が正しく検証され、かつ、前記命令セットに応じてアクセスされる前記セキュアチップのメモリエリアが前記サービス提供サーバ証明書から抽出された前記アクセス制御情報により示される前記セキュアチップのメモリエリアに含まれる場合に、前記命令セットを実行するアクセス制御部と、
を備える、サービス提供システム。
【請求項４】
前記アクセス制御情報には、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記クライアント装置の読み込み処理又は書き込み処理を制限するアクセス権情報および同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されており、
前記クライアント装置が備えるアクセス制御部は、前記命令セットに応じて前記セキュアチップにアクセスする処理が前記アクセス制御情報に記述された条件を満たす場合に、前記命令セットを実行する、請求項３に記載のサービス提供システム。
【請求項５】
第１の暗号鍵および当該第１の暗号鍵に対応する第１の復号鍵を保持するエリア管理サーバ、サービス提供サーバ、および、第３の復号鍵を保持し、かつ、前記サービス提供サーバに接続され、かつ、耐タンパ性を有するセキュアチップにアクセス可能なクライアント装置、を含むシステムに含まれる前記サービス提供サーバであって、
前記エリア管理サーバは、
前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報を生成するアクセス制御情報生成部と、
前記アクセス制御情報および前記第１の暗号鍵を用いて第１の電子署名を生成する署名生成部と、
前記サービス提供サーバのサーバ名、前記アクセス制御情報、および、前記第１の電子署名が含まれるサービス提供サーバ証明書、を生成する証明書生成部と、
を有し、
前記サービス提供サーバは、
前記クライアント装置に実行させるスクリプト言語による命令セットを生成する命令セット生成部と、
前記サービス提供サーバのサーバ名を送信する通信部と、
を有し、
前記クライアント装置は、
前記第１の復号鍵、および、前記第３の復号鍵により復号可能な第３の電子署名、を含むエリア管理サーバ証明書、前記サービス提供サーバ証明書、前記命令セット、および、前記サービス提供サーバのサーバ名、を取得する取得部と、
前記第３の復号鍵を利用して前記エリア管理サーバ証明書を検証し、当該エリア管理サーバ証明書から抽出した前記第１の復号鍵を用いて前記サービス提供サーバ証明書を検証し、当該サービス提供サーバ証明書から抽出したサービス提供サーバのサーバ名を用いて前記取得部により取得されたサービス提供サーバのサーバ名を検証する検証部と、
前記検証部により、前記エリア管理サーバ証明書、前記サービス提供サーバ証明書、および、前記サービス提供サーバのサーバ名、が正しく検証され、かつ、前記命令セットに応じてアクセスされる前記セキュアチップのメモリエリアが前記サービス提供サーバ証明書から抽出された前記アクセス制御情報により示される前記セキュアチップのメモリエリアに含まれる場合に、前記命令セットを実行するアクセス制御部と、
を有する、
サービス提供サーバ。
【請求項６】
前記アクセス制御情報には、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記クライアント装置の読み込み処理又は書き込み処理を制限するアクセス権情報および同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されている、
請求項５に記載のサービス提供サーバ。
【請求項７】
第３の復号鍵を保持し、かつ、サービス提供サーバに接続され、かつ、耐タンパ性を有するセキュアチップにアクセス可能な情報端末装置であって、
第１の証明書、第２の証明書、前記サービス提供サーバにより生成される前記情報端末装置に実行させるスクリプト言語による命令セット、および、前記サービス提供サーバのサーバ名を前記サービス提供サーバより取得する取得部であって、前記第１の証明書は、第１の復号鍵、および、前記第３の復号鍵により復号可能な第３の電子署名、を含み、前記第２の証明書は、前記サービス提供サーバのサーバ名と、第１の暗号鍵および当該第１の暗号鍵に対応する前記第１の復号鍵を保持するエリア管理サーバにより生成される、前記情報端末装置に対してアクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報と、前記アクセス制御情報および前記第１の暗号鍵を用いて前記エリア管理サーバにより生成される第１の電子署名と、を含むことを特徴とする、前記取得部と、
前記第３の復号鍵を利用して前記第１の証明書を検証し、当該第１の証明書から抽出した前記第１の復号鍵を用いて前記第２の証明書を検証し、当該第２の証明書から抽出したサービス提供サーバのサーバ名を用いて前記取得部により取得されたサービス提供サーバのサーバ名を検証する検証部と、
前記検証部により、前記第１の証明書、前記第２の証明書、および、前記サービス提供サーバのサーバ名、が正しく検証され、かつ、前記命令セットに応じてアクセスされる前記セキュアチップのメモリエリアが前記第２の証明書から抽出された前記アクセス制御情報により示される前記セキュアチップのメモリエリアに含まれる場合に、前記命令セットを実行するアクセス制御部と、
を有する、
情報端末装置。
【請求項８】
前記アクセス制御情報には、前記情報端末装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記情報端末装置の読み込み処理又は書き込み処理を制限するアクセス権情報および同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されており、
前記アクセス制御部は、前記命令セットに応じて前記セキュアチップにアクセスする処理が前記アクセス制御情報に記述された条件を満たす場合に、前記命令セットを実行する、
請求項７に記載の情報端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス提供システム、サービス提供サーバ、及び情報端末装置に関する。
【背景技術】
【０００２】
近年、さまざまな場面で接触型又は非接触型のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カードが利用されるようになってきている。例えば、金融機関で利用されるクレジットカードやキャッシュカード、交通機関の改札に利用されるＩＣカード、又は飲食店やその他の小売店において支払いに利用されるＩＣカード等が例に挙げられる。また、これらのＩＣカード機能を搭載した携帯電話や通信端末、或いは、パーソナルコンピュータ等の情報処理装置等も普及してきている。
【０００３】
上記のようなＩＣカード機能を搭載した携帯電話等又はＩＣカードは、データをセキュアに保持することが可能なセキュアチップと呼ばれるＩＣチップを内蔵している。このセキュアチップには、例えば、決済情報や改札履歴のようなデータ、及び各種のサービスを実現するためのアプリケーションが格納されている。例えば、リーダ／ライタ等の情報処理装置は、ＩＣカード又はＩＣカード機能を搭載した携帯電話等に命令情報を送信することで、セキュアチップに格納されたアプリケーションを実行させ、セキュアチップ内のデータを読み書きする。
【０００４】
最近、ＩＣカード機能を搭載した携帯電話等の情報処理機能、又は通信機能等を介してセキュアチップが有するデータやアプリケーションに安全にアクセスするための技術に注目が集まっている。上記の携帯電話等は、ＩＣカード単体よりも高い演算能力や高速な通信能力を備えている場合が多い。そのため、より高度なサービスを実現するには、これらの能力を利用することが望まれるのである。しかしながら、セキュアチップには、電子マネーの残高や決済情報、或いは、重要な個人情報等のデータが格納されており、これらのデータに対する高い安全性が要求される。そのため、セキュアチップ内に格納されたデータの改竄等の不正アクセスを防止するために、セキュアチップの高いセキュリティレベルを維持するためのアクセス制御技術が求められている。
【０００５】
ところが、これまでのＩＣカード機能を搭載した携帯電話等は、セキュアチップに格納されたデータを読み出したり、或いは、セキュアチップにデータを書き込む等の処理を実行する場合、この携帯電話等が予め保持するアプリケーションを介して処理を実行していた。このアプリケーションは、例えば、前記の携帯電話等のキャリアが定めた所定の安全な方法に従って所定の情報源からダウンロードできるものである。この方法を適用することにより、外部からの不正アクセスを受けて利用者の意図しない操作が実行されたり、或いは、セキュアチップが意図的にロックされるのを防止することができる。また、サービス提供者にとっては、比較的自由にアプリケーションを開発できるという利点がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記のようにアプリケーションを用いたアクセス制御方法を採用すると、アプリケーションの開発やメンテナンスに関する大きな負担増が発生してしまう。これに対し、開発等に掛かる負荷が比較的低いＥＣＭＡＳｃｒｉｐｔやＪａｖａＳｃｒｉｐｔ等のスクリプト言語を利用してアプリケーションを構築するという方法が考えられる。この方法を実現するためには、スクリプト言語によって記述されたアプリケーション（以下、スクリプト）をセキュアチップに安全に実行させるための仕組みが求められる。なぜなら、スクリプト言語で記述された命令セットはテキストデータである場合が多いため、例えば、ネットワーク上で当該命令セットが改竄され、セキュアチップに対して不正アクセスされてしまう可能性が高まるからである。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、スクリプトによるセキュアチップへの安全なアクセスを実現することが可能な、新規かつ改良されたサービス提供システム、サービス提供サーバ、及び情報端末装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、第１の暗号鍵と当該第１の暗号鍵に対応する第１の復号鍵とを保持するエリア管理サーバと、当該エリア管理サーバに接続され、第２の暗号鍵と当該第２の暗号鍵に対応する第２の復号鍵とを保持するサービス提供サーバと、当該サービス提供サーバに接続され、耐タンパ性を有するセキュアチップにアクセス可能であり、第３の復号鍵を保持するクライアント装置と、を含むサービス提供システムが提供される。
【０００９】
前記エリア管理サーバは、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報を生成するアクセス制御情報作成部と、前記サービス提供サーバから取得した前記第２の復号鍵、及び前記アクセス制御情報から、前記第１の暗号鍵を用いて第１の電子署名を生成する署名生成部と、前記第２の復号鍵と、前記アクセス制御情報と、前記第１の電子署名とが含まれるサービス提供サーバ証明書を生成する証明書作成部と、を備えていてもよい。
【００１０】
前記サービス提供サーバは、前記クライアント装置に実行させる命令セットを生成する命令セット作成部と、前記命令セットから、前記第２の暗号鍵を用いて第２の電子署名を生成する署名生成部と、を備えていてもよい。
【００１１】
前記クライアント装置は、前記第１の復号鍵と、当該第１の復号鍵から生成され、前記第３の復号鍵により復号可能な第３の電子署名とが含まれるエリア管理サーバ証明書と、前記サービス提供サーバ証明書と、前記第２の電子署名とを取得する取得部と、前記第３の復号鍵を利用して前記エリア管理サーバ証明書を検証し、当該エリア管理サーバ証明書から抽出した前記第２の復号鍵を用いて前記サービス提供サーバ証明書を検証し、当該サービス提供サーバ証明書から抽出した前記第１の復号鍵を用いて前記第２の電子署名を検証する検証部と、前記検証部により、前記エリア管理サーバ証明書と、前記サービス提供サーバ証明書と、前記第２の電子署名とが正しく検証され、さらに、前記第２の復号鍵を用いて前記第２の電子署名から前記命令セットを復号し、当該命令セットに応じてアクセスされる前記セキュアチップのメモリエリアが、前記サービス提供サーバ証明書から抽出された前記アクセス制御情報が示す前記セキュアチップのメモリエリアに含まれる場合にのみ、前記命令セットを実行するアクセス制御部と、を備えていてもよい。
【００１２】
前記アクセス制御情報には、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記クライアント装置の読み込み処理又は書き込み処理を制限するアクセス権情報、及び同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されており、前記クライアント装置が備えるアクセス制御部は、前記命令セットに応じて前記セキュアチップにアクセスする処理が前記アクセス制御情報に記述された条件を満たす場合にのみ、前記命令セットを実行することを特徴とする構成であってもよい。
【００１３】
また、上記課題を解決するために、本発明のある観点によれば、第１の暗号鍵と当該第１の暗号鍵に対応する第１の復号鍵とを保持するエリア管理サーバと、当該エリア管理サーバに接続され、第２の暗号鍵と当該第２の暗号鍵に対応する第２の復号鍵とを保持するサービス提供サーバと、前記エリア管理サーバに接続され、第３の暗号鍵を保持する認証サーバと、前記サービス提供サーバに接続され、耐タンパ性を有するセキュアチップにアクセス可能であり、前記第３の暗号鍵に対応する第３の復号鍵を保持するクライアント装置と、を含むサービス提供システムが提供される。
【００１４】
前記エリア管理サーバは、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報を生成するアクセス制御情報作成部と、前記サービス提供サーバから取得した前記第２の復号鍵、及び前記アクセス制御情報から、前記第１の暗号鍵を用いて第１の電子署名を生成する署名生成部と、前記第２の復号鍵と、前記アクセス制御情報と、前記第１の電子署名とが含まれるサービス提供サーバ証明書を生成する証明書作成部と、を備えていてもよい。
【００１５】
前記サービス提供サーバは、前記クライアント装置に実行させる命令セットを生成する命令セット作成部と、前記命令セットから、前記第２の暗号鍵を用いて第２の電子署名を生成する署名生成部と、を備えていてもよい。
【００１６】
前記認証サーバは、前記エリア管理サーバから取得した前記第１の復号鍵から、前記第３の暗号鍵を用いて第３の電子署名を生成する署名生成部と、前記第１の復号鍵と、前記第３の電子署名とが含まれるエリア管理サーバ証明書を生成する証明書生成部と、を備えていてもよい。
【００１７】
前記クライアント装置は、前記エリア管理サーバ証明書と、前記サービス提供サーバ証明書と、前記第２の電子署名とを取得する取得部と、前記第３の復号鍵を利用して前記エリア管理サーバ証明書を検証し、当該エリア管理サーバ証明書から抽出した前記第２の復号鍵を用いて前記サービス提供サーバ証明書を検証し、当該サービス提供サーバ証明書から抽出した前記第１の復号鍵を用いて前記第２の電子署名を検証する検証部と、前記検証部により、前記エリア管理サーバ証明書と、前記サービス提供サーバ証明書と、前記第２の電子署名とが正しく検証され、さらに、前記第２の復号鍵を用いて前記第２の電子署名から前記命令セットを復号し、当該命令セットに応じてアクセスされる前記セキュアチップのメモリエリアが、前記サービス提供サーバ証明書から抽出された前記アクセス制御情報が示す前記セキュアチップのメモリエリアに含まれる場合にのみ、前記命令セットを実行するアクセス制御部と、を備えていてもよい。
【００１８】
前記アクセス制御情報には、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記クライアント装置の読み込み処理又は書き込み処理を制限するアクセス権情報、及び同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されており、前記クライアント装置が備えるアクセス制御部は、前記命令セットに応じて前記セキュアチップにアクセスする処理が前記アクセス制御情報に記述された条件を満たす場合にのみ、前記命令セットを実行するように構成されていてもよい。
【００１９】
また、上記課題を解決するために、本発明のある観点によれば、耐タンパ性を有するセキュアチップにアクセス可能な第１の復号鍵を保持する情報端末装置と、前記セキュアチップに対するアクセス管理を行うエリア管理サーバとに接続され、第２の暗号鍵と当該第２の暗号鍵に対応する第２の復号鍵を保持するサービス提供サーバであって、前記第２の復号鍵を含み、前記第１の復号鍵により検証可能な第１の証明書と、前記情報端末装置に対してアクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報を含み、前記第２の復号鍵により検証可能な第２の証明書とを取得する取得部と、前記情報端末装置に実行させる命令セットを生成する命令セット作成部と、前記命令セットから、前記第２の暗号鍵を用いて検証可能な電子署名を生成する署名生成部と、を備え、
前記情報端末装置に対して前記第１及び第２の証明書と、前記電子署名と、前記命令セットとを送信することを特徴とする、サービス提供サーバが提供される。
【００２０】
前記アクセス制御情報には、前記情報端末装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記クライアント装置の読み込み処理又は書き込み処理を制限するアクセス権情報、及び同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されていてもよい。
【００２１】
前記セキュアチップに対するアクセス管理を行うエリア管理サーバと、第２の暗号鍵と当該第２の暗号鍵に対応する第２の復号鍵を保持するサービス提供サーバと、に接続され、耐タンパ性を有するセキュアチップにアクセス可能な第１の復号鍵を保持する情報端末装置であって、前記第２の復号鍵を含み、前記第１の復号鍵により検証可能な第１の証明書と、アクセスを許可する前記セキュアチップのメモリエリアが記述されたアクセス制御情報を含み、前記第２の復号鍵により検証可能な第２の証明書と、前記情報端末装置に実行させる命令セットから、前記第２の暗号鍵を用いて検証可能な電子署名とを取得する取得部と、前記第１の復号鍵を利用して前記第１の証明書を検証し、当該第１の証明書から抽出した前記第２の復号鍵を用いて前記第２の証明書及び前記電子署名を検証する検証部と、前記検証部により、前記第１及び第２の証明書と、前記電子署名とが正しく検証され、さらに、前記電子署名から復号された前記命令セットに応じてアクセスされる前記セキュアチップのメモリエリアが、前記サービス提供サーバ証明書から抽出された前記アクセス制御情報が示す前記セキュアチップのメモリエリアに含まれる場合にのみ、前記命令セットを実行するアクセス制御部と、を備えることを特徴とする、情報端末装置が提供される。
【００２２】
前記アクセス制御情報には、前記クライアント装置に対してアクセスを許可する前記セキュアチップのメモリエリアに加え、前記クライアント装置の読み込み処理又は書き込み処理を制限するアクセス権情報、及び同一のメモリエリアに対してアクセス可能な回数を制限するアクセス回数情報の一方又は両方が記述されており、前記アクセス制御部は、前記命令セットに応じて前記セキュアチップにアクセスする処理が前記アクセス制御情報に記述された条件を満たす場合にのみ、前記命令セットを実行するように構成されていてもよい。
【発明の効果】
【００２３】
以上説明したように本発明によれば、スクリプトによるセキュアチップへの安全なアクセスを実現することができる。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２５】
［概略］
まず、本発明に係る実施形態について詳細に説明するに先立ち、ここで、当該実施形態に係る技術的思想の概略について簡単に説明する。下記の実施形態に係る技術は、スクリプトを利用してセキュアチップに安全にアクセスするための技術に関する。
【００２６】
これまで、ＪａｖａやＡｃｔｉｖｅＸ等のＷｅｂブラウザ上で動作するアプリケーション、或いは、モバイル端末上で動作するアプリケーションを所定の情報処理装置上で安全に実行させる仕組みについては種々考案されてきた。例えば、これらのアプリケーションのハッシュ値に対して電子署名（以下、署名）が施され、そのアプリケーションの実行環境（例えば、上記の情報処理装置等）が保持する電子証明書（以下、証明書）に基づいて署名が検証される仕組みがある。ところが、各種のスクリプト言語やＸＭＬタグ等で記述された命令情報（以下、スクリプト等）をセキュアチップや情報処理装置等に対して安全に実行させる仕組みがないというのが現状である。
【００２７】
尚、電子署名を利用せずにアプリケーションを安全に実行させる技術もある。例えば、署名されていないアプリケーションの実行が要求される際に、利用者に対して「このアプリケーションは署名がされていないが、実行しても良いか？」といったメッセージを表示する技術が、その一例である。しかし、利用者は、そのアプリケーションが不正なものであるか否かを判断できない場合が多い。そのため、この技術を利用すると、署名のないアプリケーションの多くが実行されなくなってしまう。
【００２８】
また、現行のアクセス制御技術によると、利用者は、セキュアチップに対してアクセスする際にセキュリティ設定ファイルを修正したり、アプリケーションをインストールしたりする手間が発生してしまう。さらに、セキュアチップのメモリ領域を管理する領域管理者がアクセス許可したメモリ領域の単位でアクセス制御することが難しい。
【００２９】
これらの現状を踏まえ、本件出願人は、セキュアチップのメモリ領域を管理する領域管理者と、サービスを提供するサービス提供者とが連携して、スクリプトを安全に実行させる技術を考案した。特に、本件出願人は、領域管理者がアクセス許可したセキュアチップ内のメモリ領域に対して安全にアクセスさせるためのアクセス制御技術を考案した。以下で詳細に説明するように、当該技術を適用すると、セキュアチップに対するアクセス制御をスクリプトにより安全に実行できるようになるため、開発や管理に関する手間が低減される上、領域管理者が許可したメモリ領域の単位でアクセス制御することが可能になる。
【００３０】
＜本発明の実施形態＞
以下、図１を参照しながら、本発明の一実施形態に係るサービス提供システム１０００の構成について詳細に説明する。図１は、本実施形態に係るサービス提供システム１０００の構成例を示す説明図である。
【００３１】
図１を参照すると、本実施形態に係るサービス提供システム１０００は、主に、認証局サーバ１００と、エリア管理サーバ２００と、サービス提供サーバ３００と、クライアント装置４００と、セキュアチップ５００とにより構成されている。また、サービス提供サーバ３００とクライアント装置４００とは、ネットワーク１０を介して接続されている。
【００３２】
ネットワーク１０は、サービス提供サーバ３００とクライアント装置４００とを双方向通信又は一方向通信可能に接続する通信回線網である。このネットワーク１０は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）、ワイヤレスＬＡＮ等の専用回線網などで構成されており、有線／無線を問わない。従って、サービス提供サーバ３００は、ネットワーク１０を介してクライアント装置４００に情報を送信することが可能である。
【００３３】
また、認証局サーバ１００、エリア管理サーバ２００、及びサービス提供サーバ３００は、例えば、サーバ機能を備えたパーソナルコンピュータ（ＰＣ；Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置である。一方、クライアント装置４００は、ネットワーク１０を介してサービス提供サーバ３００との間で接触、又は非接触に情報通信が可能な端末装置である。クライアント装置４００は、例えば、携帯電話、ＰＨＳ、携帯型ゲーム機、携帯型映像／音声プレーヤ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等の各種携帯端末、ＰＣや家庭用ゲーム機等の情報処理装置、ＤＶＤ／ＨＤＤレコーダ、テレビジョン受像器、テレビジョン放送用チューナ／デコーダ等の情報家電等により実現される。
【００３４】
［認証局サーバ１００の構成］
まず、図２を参照しながら、認証局サーバ１００の構成について説明する。図２は、本実施形態に係る認証局サーバ１００の構成例を示す説明図である。
【００３５】
認証局サーバ１００は、主に、ハッシュ生成部１０２と、署名生成部１０４と、証明書作成部１０６と、通信部１０８と、記憶部１１０とにより構成される。
【００３６】
（ハッシュ生成部１０２）
ハッシュ生成部１０２は、エリア管理サーバ２００から取得したエリア管理サーバ２００のサーバ名及び公開鍵を含む電子文書を生成する機能を有する。また、ハッシュ生成部１０２は、その電子文書に対し、ハッシュ関数を用いて圧縮処理することによりハッシュ値を生成する機能を有する。このハッシュ関数（ｈａｓｈ  ｆｕｎｃｔｉｏｎ）とは、入力された情報から所定の長さを有する代表的な数値を抽出する処理又は関数のことであり、例えば、ＭＤ４、ＭＤ５、ＳＨＡ−１等を利用することが可能である。
【００３７】
（署名生成部１０４、証明書作成部１０６）
署名生成部１０４は、ハッシュ生成部１０２により生成されたハッシュ値に対し、自身（認証局サーバ１００）が保持する秘密鍵を用いて暗号化する機能を有する。つまり、署名生成部１０４は、このハッシュ値に対する電子署名を生成する機能を有する。このとき、認証局サーバ１００が保持する秘密鍵は、クライアント装置４００が保持する公開鍵（以下、ルート証明書）とペアをなすものであり、この秘密鍵で暗号化されたハッシュ値をルート証明書により復号することができる。なお、このルート証明書とは、通常、ブラウザ等でＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）等の暗号技術を用いる際に利用される。証明書作成部１０６は、電子署名（暗号化されたハッシュ値）と、エリア管理サーバ２００の公開鍵と、エリア管理サーバ２００のサーバ名とが含まれたエリア管理サーバ証明書を生成する機能を有する。
【００３８】
（通信部１０８、記憶部１１０）
通信部１０８は、エリア管理サーバ２００との間で情報を送受信する機能を有している。そして、通信部１０８は、署名生成部１０４及び証明書作成部１０６がエリア管理サーバ証明書を作成する際に用いるエリア管理サーバ２００のサーバ名及び公開鍵を取得したり、作成されたエリア管理サーバ証明書をエリア管理サーバ２００に送信するために用いられる。記憶部１１０には、クライアント装置４００が保持するルート証明書に対応する秘密鍵が格納されており、署名生成部１０４により適宜読み出されて利用される。また、記憶部１１０には、一度生成したエリア管理サーバ証明書を格納しておくこともできる。
【００３９】
上記の構成により、エリア管理サーバ２００に対してクライアント装置４００が保持するルート証明書により検証可能なエリア管理サーバ証明書を発行することが可能になる。
【００４０】
［エリア管理サーバ２００の構成］
次に、図３を参照しながら、エリア管理サーバ２００の構成について説明する。図３は、本実施形態に係るエリア管理サーバ２００の構成例を示す説明図である。
【００４１】
図３に示すように、エリア管理サーバ２００は、主に、鍵生成部２０２と、署名生成部２０４と、証明書作成部２０６と、アクセス制御情報作成部２０８と、通信部２１０と、記憶部２１２とにより構成される。また、エリア管理サーバ２００は、通信部２１０を介して認証局サーバ１００及びサービス提供サーバ３００に接続されている。
【００４２】
（鍵生成部２０２）
鍵生成部２０２は、公開鍵と秘密鍵のペアを生成する機能を有する。鍵生成部２０２により生成された公開鍵は、認証局サーバ１００に送信されて認証局サーバ１００により作成されるエリア管理サーバ証明書に含まれる。一方、鍵生成部２０２により生成された秘密鍵は、サービス提供サーバ３００に対するサービス提供サーバ証明書を発行する際に利用される。
【００４３】
（アクセス制御情報作成部２０８）
アクセス制御情報作成部２０８は、例えば、クライアント装置４００がスクリプトデータ、又はタグ情報に基づいてセキュアチップ５００にアクセスする際に、アクセス可能なサービスエリアの範囲やアクセス権等が記述されたアクセス制御情報を生成する機能を有する。そのため、アクセス制御情報作成部２０８は、サービス提供サーバ３００に対して割り当てた所定のサービスエリアにのみアクセスを許可するためのアクセス制御情報を発行する。また、許可するサービスエリアの範囲は、サービス提供サーバ３００からの要求を受けてから、この要求に基づいて決定されてもよい。尚、タグ情報とは、実行する処置のルールが規定された文字列や変数の組み合わせである（図１２を参照）。
【００４４】
ここで、図１１を参照しながら、アクセス制御情報について説明する。図１１は、本実施形態に係るアクセス制御情報（ＡＣＬ；Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）の一例を示す説明図である。
【００４５】
例えば、アクセス制御情報には、図１１に示すように、アクセス可能なエリアの開始アドレスと終了アドレスとが記載されている。また、このアクセス制御情報には、アクセス可能なサービスエリアのサービスコード毎に設定されるアクセス権（例えば、読み込み／書き込み許可、同一エリアに対するアクセス可能回数制限等）が記載されている。なお、アクセス制御情報を取得したクライアント装置４００は、スクリプトデータによるアクセス処理がアクセス制御情報に記載された制限を満たす場合にのみスクリプトデータを実行可能である。そのため、スクリプトデータによる不正なサービスエリアへのアクセスを防止することができる。
【００４６】
（署名生成部２０４、証明書作成部２０６）
再び図３を参照する。署名生成部２０４は、サービス提供サーバ３００から取得したサービス提供サーバ３００のサーバ名及び公開鍵とアクセス制御情報とを含む電子文書に対してハッシュ関数を用いて圧縮処理することによりハッシュ値を生成する。さらに、署名生成部２０４は、そのハッシュ値に対し、鍵生成部２０２により生成されたエリア管理サーバ２００の秘密鍵を用いて暗号化する。そして、証明書作成部２０６は、暗号化されたハッシュ値（電子署名）とエリア管理サーバ２００の公開鍵と、アクセス制御情報とが含まれるサービス提供サーバ証明書を生成する。
【００４７】
（通信部２１０）
通信部２１０は、認証局サーバ１００及びサービス提供サーバ３００との間で情報を送受信する機能を有する。また、通信部２１０は、署名生成部２０４及び証明書作成部２０６がサービス提供サーバ証明書を作成する際に用いるサービス提供サーバ３００のサーバ名及び公開鍵を取得したり、作成されたサービス提供サーバ証明書をサービス提供サーバ３００に送信するために用いられる。
【００４８】
（記憶部２１２）
記憶部２１２には、例えば、鍵生成部２０２により生成された公開鍵と秘密鍵とのペア、アクセス制御情報作成部２０８により作成されたアクセス制御情報が格納されている。また、記憶部２１２には、クライアント装置４００が保持するルート証明書を発行するための発行機関（例えば、認証局サーバ１００）により電子署名されたエリア管理サーバ証明書等が格納されている。さらに、記憶部２１２には、サービス提供サーバ３００のサーバ名及び公開鍵、又は、署名生成部２０４及び証明書作成部２０６により生成されたサービス提供サーバ証明書が格納されていてもよい。
【００４９】
上記の構成により、エリア管理サーバ２００の公開鍵を利用して検証することが可能なサービス提供サーバ証明書を発行することができる。また、アクセス制御情報を利用してセキュアチップ５００へのアクセスを制限することが可能になる。
【００５０】
［サービス提供サーバ３００の構成］
次に、図４を参照しながら、サービス提供サーバ３００の構成について説明する。図４は、本実施形態に係るサービス提供サーバ３００の構成例を示す説明図である。
【００５１】
図４を参照すると、サービス提供サーバ３００は、主に、鍵生成部３０２と、署名生成部３０４と、スクリプトページ作成部３０６と、スクリプト作成部３０８と、通信部３１０と、記憶部３１２とにより構成される。
【００５２】
（鍵生成部３０２）
鍵生成部３０２は、公開鍵と秘密鍵のペアを生成する機能を有する。鍵生成部３０２により生成された公開鍵は、エリア管理サーバ２００に送信され、エリア管理サーバ２００により作成されるサービス提供サーバ証明書に含まれる。一方、鍵生成部３０２により生成された秘密鍵は、スクリプト署名データを作成する際に利用される。
【００５３】
（スクリプト作成部３０８）
スクリプト作成部３０８は、サービス提供サーバ３００がクライアント装置４００に対してサービスを提供するに当たって、クライアント装置４００に実施させたい処理が記述されたスクリプトデータを作成する。このスクリプトデータは、例えば、ＥＣＭＡＳｃｒｉｐｔやＪａｖａＳｃｒｉｐｔ等のスクリプト言語により記述されており（図８、図９を参照）、ＨＴＭＬ文書等に埋め込まれてクライアント装置４００に伝送される。より具体的には、スクリプトデータとして、Ｆｅｌｉｃａ（登録商標）チップに対するアクセス制御命令が含まれるＥＣＭＡＳｃｒｉｐｔ等を利用することが可能である。
【００５４】
尚、スクリプト作成部３０８は、スクリプトに代えて、図１２に示すようなタグ情報を生成することも可能である。以下では、スクリプトを利用する場合について中心に説明するが、スクリプトをタグ情報に置き換えることで、タグ情報を利用する場合にも適用することができる。従って、以下の説明において、スクリプトデータと記述した場合は、それがタグ情報である場合を含むものと理解されたい。尚、タグ情報として、例えば、ＸＭＬ等のタグが利用可能である。この場合、タグ自体にセキュアチップ５００に対する操作の意味を付加し、そのタグ情報と、操作対象のメモリ領域を示すＩＤ等を記載することでスクリプトと同様の処理が実現されうる。このＩＤは、例えば、サービスコード等である。
【００５５】
（署名生成部３０４）
署名生成部３０４は、スクリプト作成部３０８により作成されたスクリプトデータに対して電子署名や暗号化等のデータ攪拌を実行する機能を有する。より具体的には、署名生成部３０４は、ハッシュ関数を利用してスクリプトデータを圧縮処理した後、自身（サービス提供サーバ３００）が保持する秘密鍵を利用して、そのハッシュ値を暗号化することによりスクリプト署名データを生成する機能を有する。尚、説明の便宜上、タグ情報の場合もスクリプト署名データと呼ぶことにする。タグ情報の場合、署名生成部３０４は、スクリプトではなく、タグ全体に署名を施す。
【００５６】
（スクリプトページ作成部３０６）
スクリプトページ作成部３０６は、スクリプト作成部３０８により作成されたスクリプトデータに加え、署名生成部３０４により生成されたスクリプト署名データ、通信部３１０を介して取得したサービス提供サーバ証明書、及びエリア管理サーバ証明書をスクリプトページに記述する機能を有する。このスクリプトページには、図８に示すように、スクリプトデータに加え、スクリプト署名データ７０２、サービス提供サーバ証明書７０４、及びエリア管理サーバ証明書７０６が記述される。図８には、スクリプトページをＨＴＭＬにより記述した例が示されているが、これに限定されるものではない。
【００５７】
（通信部３１０）
通信部３１０は、エリア管理サーバ２００との間で情報を送受信する機能と、ネットワーク１０を介してクライアント装置４００等との間で情報を送受信する機能とを有している。まず、通信部３１０は、エリア管理サーバ２００に対し、鍵生成部３０２が生成したサービス提供サーバ３００の公開鍵を送信する。また、通信部３１０は、エリア管理サーバ２００からエリア管理サーバ証明書を取得する。さらに、通信部３１０は、クライアント装置４００に対し、スクリプトデータに加えて、スクリプト署名データ、サービス提供サーバ証明書、及びエリア管理サーバ証明書等をクライアント装置４００に送信する。
【００５８】
（記憶部３１２）
記憶部３１２には、例えば、鍵生成部３０２により生成された公開鍵及び秘密鍵のペア、スクリプトデータ、スクリプトページ、スクリプト署名データ、エリア管理サーバ２００から取得したエリア管理サーバ証明書等が格納される。
【００５９】
上記の構成により、サービス提供サーバ証明書に含まれるサービス提供サーバ３００の公開鍵を利用して検証可能なスクリプト署名データを作成することができる。
【００６０】
［クライアント装置４００の構成］
次に、図５を参照しながら、クライアント装置４００の構成について説明する。図５は、本実施形態に係るクライアント装置４００の構成例を示す説明図である。
【００６１】
図５を参照すると、クライアント装置４００は、主に、サーバ検証部４０２と、署名検証部４０４と、アクセス制御部４０６と、スクリプト解釈部４０８と、通信部４１０と、記憶部４１２とにより構成される。
【００６２】
（サーバ検証部４０２）
サーバ検証部４０２は、ネットワーク１０を介してサービス提供サーバ３００から取得したサービス提供サーバ証明書、エリア管理サーバ証明書、及びサービス提供サーバ３００のサーバ名等を検証する機能を有する。
【００６３】
まず、サーバ検証部４０２は、自身（クライアント装置４００）のブラウザが保持するルート証明書を用いてエリア管理サーバ証明書を検証する。次いで、サーバ検証部４０２は、エリア管理サーバ証明書から取得したエリア管理サーバ２００の公開鍵を用いてサービス提供サーバ証明書、及びアクセス制御情報を検証する。このとき、サーバ検証部４０２は、サービス提供サーバ証明書に含まれるアクセス制御情報を取得して記憶部４１２に保持する。
【００６４】
なお、上記の各証明書に対する検証は、それを暗号化した秘密鍵に対応する公開鍵により各証明書を復号する処理を含んでいる。その際、サーバ検証部４０２は、各証明書に含まれるハッシュ値や公開鍵等を取得することができる。さらに、サーバ検証部４０２は、接続したサービス提供サーバ３００のサーバ名と、検証したサービス提供サーバ証明書から取得したサーバ名とを比較して検証することができる。
【００６５】
（署名検証部４０４）
署名検証部４０４は、スクリプト署名データを検証する機能を有する。つまり、署名検証部４０４は、サーバ検証部４０２がサービス提供サーバ証明書から取得したサービス提供サーバ３００の公開鍵を用いてスクリプト署名データを検証することができる。
【００６６】
（アクセス制御部４０６、スクリプト解釈部４０８）
アクセス制御部４０６は、スクリプトデータに基づいてセキュアチップ５００に対してアクセス制御する機能を有する。また、スクリプト解釈部４０８は、スクリプトデータに記述されたコードを実行命令として読み込む機能を有する。
【００６７】
まず、アクセス制御部４０６は、スクリプト署名データが検証できた場合にのみ、スクリプト解釈部４０８により読み込まれたスクリプトデータに基づいてセキュアチップ５００にアクセスする。このとき、アクセス制御部４０６は、サービス提供サーバ証明書に含まれるアクセス制御情報を参照し、エリア管理サーバ２００により許可され、当該アクセス制御情報に記載されたサービスエリアの配下にのみアクセスする。もし、アクセス制御情報により許可されていないサービスエリアにアクセスするためのスクリプトデータが存在する場合、アクセス制御部４０６は、エラーを出力してセキュアチップ５００に対するアクセスを取り止める。
【００６８】
また、アクセス制御情報の中にアクセス権等の記載がある場合、アクセス制御部４０６は、アクセス制御情報により許可されている操作のみを実行する。つまり、アクセス制御部４０６は、許可されていない操作を指示するスクリプトデータが存在する場合にエラーを出力してセキュアチップ５００に対するアクセスを取り止める。
【００６９】
（記憶部４１２）
記憶部４１２には、例えば、サービス提供サーバ３００から受信したスクリプトデータ、スクリプト署名データ、サービス提供サーバ証明書、エリア管理サーバ証明書、ルート証明書等が格納される。また、記憶部４１２には、各証明書を検証した際に得られたサービス提供サーバ３００の公開鍵、及びエリア管理サーバ２００の公開鍵等が格納されてもよい。さらに、記憶部４１２は、必要に応じて各種証明書を予め保持していてもよい。
【００７０】
上記の構成により、クライアント装置４００が保持するルート証明書を利用してエリア管理サーバ証明書を検証し、エリア管理サーバ証明書から取得したエリア管理サーバ２００の公開鍵を利用してサービス提供サーバ証明書を検証し、サービス提供サーバ証明書から取得したサービス提供サーバ３００の公開鍵を利用してスクリプト署名データを検証するため、ネットワーク１０やクライアント装置４００内におけるスクリプトデータの改竄を防止することができる。さらに、エリア管理サーバ２００が発行するアクセス制御情報をサービス提供サーバ証明書に包含させるため、エリア管理サーバ２００が許可したサービスエリアにのみ安全にアクセスさせることが可能になる。
【００７１】
［セキュアチップ５００の構成］
次に、図１４を参照しながら、セキュアチップ５００の構成について説明する。図１４は、本実施形態に係るセキュアチップ５００の構成例を示す説明図である。
【００７２】
図１４を参照すると、セキュアチップ５００は、主に、制御部５０２と、ＲＯＭ５０４と、ＲＡＭ５０６と、通信部５０８と、セキュアメモリ５１０とにより構成される。なお、各部は、バス５１２を介して接続されており、相互に情報を伝送することが可能である。また、セキュアチップ５００は、例えば、耐タンパ性を有する接触型又は非接触型のＩＣチップやＩＣカード等である。
【００７３】
セキュアチップ５００は、例えば、通信部５０８に接続されたループ・アンテナ（図示せず）を備えており、非接触ＩＣカード用のリーダ／ライタとの間で搬送波を送受信する機能を有している。また、セキュアチップ５００は、上記の搬送波を介して情報を送受信すると同時にリーダ／ライタからの電力供給を受けることもできる。
【００７４】
通信部５０８は、例えば、リーダ／ライタ等の外部装置と通信することができる。通信部５０８は、主に、フロントエンド回路（図示せず）と、電源再生回路（図示せず）とにより構成される。フロントエンド回路は、リーダ／ライタが発信した搬送波から情報を受信すると同時に、当該搬送波を分周してセキュアチップ５００内の各回路を駆動するクロックを再生することができる。一方、電源再生回路は、上記の搬送波からセキュアチップ５００内の各回路を駆動するための電源を再生する機能を有する。また、セキュアチップ５００は、クライアント装置４００に接続されており、クライアント装置４００から受信した情報をバス５１２を介して各部に伝送することができる。
【００７５】
制御部５０２は、ＲＯＭ５０４等に記録されたプログラム及びデータ、又はクライアント装置４００からの実行命令等に基づき、セキュアチップ５００が備える各部の動作を制御する機能を有する。制御部５０２は、例えば、セキュアメモリ５１０に対するデータの読み出し／書き込み処理等を実行する機能を有する。なお、制御部５０２は、例えば、中央処理装置（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等により構成される。また、ＲＡＭ５０６は、例えば、通信部５０８を介して送受信するデータを一時的に格納したり、制御部５０２の演算処理に用いるデータやプログラムを一時的に格納するバッファとして機能する。
【００７６】
（セキュアメモリ５１０のデータ構造）
ここで、図１３を参照しながら、セキュアメモリ５１０内のデータ構造について説明する。セキュアメモリ５１０内には、システム情報（Ｓｙｓ）、エリア情報（Ａ１、Ａ２）、サービス情報（Ｓｖ１１、Ｓｖ１２、Ｓｖ２１）が管理情報として格納されている。さらに、セキュアメモリ５１０内には、サービス情報（Ｓｖ１１、Ｓｖ１２、Ｓｖ２１）で定義された各サービス毎に具体的なユーザ情報（Ｕ１１１、Ｕ１１２、Ｕ１１３、Ｕ１２１、Ｕ１２２、Ｕ２１１）が格納されている。例えば、図９のエリア情報（Ａ１）に注目すると、エリア情報（Ａ１）によりサービス情報（Ｓｖ１１）とサービス情報（Ｓｖ１２）とが定義されており、サービス情報（Ｓｖ１１）に対しユーザ情報（Ｕ１１１）、ユーザ情報（Ｕ１１２）、及びユーザ情報（Ｕ１１３）が存在することが分かる。
【００７７】
より詳細に説明する。まず、システム情報（Ｓｙｓ）とは、例えば、システムコードと、システム鍵情報と、システム鍵バージョン情報とにより構成される情報である。システムコードとは、システムの所有者を示す２バイト長のコードである。また、システム鍵情報とは、システム単位で設定され、リーダ／ライタ等との間で相互認証を行う際に利用される情報である。システム鍵バージョン情報とは、システム鍵の世代情報を管理する情報である。
【００７８】
次に、エリア情報（Ａ１、Ａ２）とは、例えば、エリアコードと、エンドサービスコードと、割り当てブロック数情報と、空きブロック数情報と、エリア鍵情報と、エリア鍵バージョン情報とにより構成される情報である。エリアコードとはエリアを識別するためのコードである。通常、セキュアチップ５００のシステムは、ユーザ情報をサービスという単位で管理し、さらに、複数のサービスを纏めて管理するエリアという単位を利用している。エリアとサービスとは階層構造になっており、エリアとは、サービスの上位に位置する概念である。
【００７９】
また、エンドサービスコードとは、エリアに属するサービスコード範囲の上限値を規定するコードである。割り当てブロック数情報とは、そのエリアに割り当てられているブロック数を示す情報である。空きブロック数情報とは、そのエリアに属するサービスのいずれにも割り当てられていないブロック数を示す情報である。エリア鍵情報とは、そのエリア又はそのエリアの下位に位置するサービスと相互認証する為にエリア単位で指定された鍵情報である。エリア鍵バージョン情報とは、エリア鍵の世代情報を管理するための情報である。
【００８０】
次に、サービス情報（Ｓｖ１１、Ｓｖ１２、Ｓｖ２１）とは、例えば、サービスコードと、割り当てブロック数情報と、サービス鍵情報と、サービス鍵バージョン情報とにより構成される情報である。サービスコードとはサービスを識別するためのコードである。割り当てブロック数情報とは、そのサービスに割り当てられているユーザ情報のブロック数を示す情報である。サービス鍵情報とは、サービス単位で指定された鍵情報である。サービス鍵バージョン情報とは、そのサービス鍵の世代情報を管理するための情報である。
【００８１】
次に、ユーザ情報（Ｕ１１１、Ｕ１１２、Ｕ１１３、Ｕ１２１、Ｕ１２２、Ｕ２１１）とは、実際に読み書きされる情報であり、例えば、顧客番号、履歴情報、又は電子マネーの金額情報等の具体的な情報である。
【００８２】
このように、セキュアメモリ５１０のデータ構造は、システム情報、エリア情報、サービス情報の順に階層構造を形成している。さらに、セキュアメモリ５１０には、サービス情報で定義されたサービス毎に具体的なユーザ情報が記録されている。そのため、各ユーザ情報は、システム毎、エリア毎、又はサービス毎に参照することが可能であり、効率的なデータ管理が実現される。
【００８３】
以上、セキュアメモリ５１０のデータ構造について説明した。本実施形態に係るクライアント装置４００は、サービス提供サーバ３００が生成したスクリプトデータに基づき、セキュアメモリ５１０内の所定のエリアにアクセスする。その際、エリア管理サーバ２００により作成されたアクセス制御情報（例えば、エリア情報（Ａ１）の下位にあるサービスにのみ書き込み処理が可能など；図１１参照）を参照し、所定のエリアに対するアクセスのみ許可するようなアクセス制御を実現する。
【００８４】
［エリア管理サーバ証明書の発行処理］
次に、図６を参照しながら、エリア管理サーバ証明書の発行処理について説明する。図６は、本実施形態に係るエリア管理サーバ証明書の発行処理を示す説明図である。
【００８５】
エリア管理サーバ証明書を発行するに当り、まず、エリア管理サーバ２００が備える鍵生成部２０２は、公開鍵と秘密鍵を生成する（Ｓ１０２）。そして、エリア管理サーバ２００は、認証局サーバ１００に対し、通信部２１０を介して自身（エリア管理サーバ２００）のサーバ名及び公開鍵を送信する（Ｓ１０４）。
【００８６】
次いで、認証局サーバ１００が備えるハッシュ生成部１０２は、エリア管理サーバ２００のサーバ名及び公開鍵、有効期限等の情報を含む電子文書を生成し、その電子文書をハッシュ関数により圧縮処理することでハッシュ値を生成する（Ｓ１０６）。次いで、署名生成部１０４は、そのハッシュ値に対し、認証局サーバ１００が保持する秘密鍵を用いて電子署名を生成する（Ｓ１０８）。そして、証明書作成部１０６は、電子署名と自身（認証局サーバ１００）が保持する公開鍵とが含まれるエリア管理サーバ証明書を作成する（Ｓ１１０）。その後、認証局サーバ１００は、通信部１０８を介してエリア管理サーバ証明書をエリア管理サーバ２００に送信する（Ｓ１１２）。
【００８７】
以上、エリア管理サーバ証明書の発行処理について説明した。上記の処理方法を適用することにより、クライアント装置４００が保持するルート証明書を利用して検証が可能なエリア管理サーバ証明書を発行することができる。
【００８８】
［サービス提供サーバ証明書の発行処理］
次に、図７を参照しながらサービス提供サーバ証明書の発行処理について説明する。図７は、本実施形態に係るサービス提供サーバ証明書の発行処理を示す説明図である。
【００８９】
サービス提供サーバ証明書を発行するに当り、まず、サービス提供サーバ３００が備える鍵生成部３０２は、公開鍵と秘密鍵のペアを生成する（Ｓ２０２）。そして、サービス提供サーバ３００は、エリア管理サーバ２００に対し、通信部３１０を介して自身（サービス提供サーバ３００）のサーバ名及び公開鍵を送信する（Ｓ２０４）。
【００９０】
次いで、エリア管理サーバ２００のアクセス制御情報作成部２０８は、セキュアチップ５００にアクセスするためのアクセス制御情報を生成する（Ｓ２０６）。次いで、署名生成部２０４は、サービス提供サーバ３００のサーバ名及び公開鍵、アクセス制御情報、有効期限等の情報を含む電子文書を作成し、ハッシュ関数を用いて当該電子文書を圧縮処理した後、得られたハッシュ値をエリア管理サーバ２００が保持する秘密鍵を用いて暗号化する（Ｓ２０８）。
【００９１】
つまり、そのハッシュ値に対してエリア管理サーバ２００の電子署名を生成する。次いで、証明書作成部２０６は、その電子署名とエリア管理サーバ２００が保持する公開鍵とが含まれるサービス提供サーバ証明書（図４を参照）を作成する（Ｓ２１０）。その後、エリア管理サーバ２００は、通信部２１０を介してサービス提供サーバ証明書をサービス提供サーバ３００に送信する（Ｓ２１２）。
【００９２】
以上、サービス提供サーバ証明書の発行処理について説明した。上記の処理方法を適用することにより、エリア管理サーバ証明書に内包されるエリア管理サーバ２００の公開鍵を利用して検証可能なサービス提供サーバ証明書を発行することができる。
【００９３】
［スクリプトページの作成処理］
次に、サービス提供サーバ３００によるスクリプトコンテンツの作成処理について説明する。
【００９４】
まず、サービス提供サーバ３００が備えるスクリプト作成部３０８は、クライアント装置４００に所定のサービスを提供するためのスクリプトデータを生成する。そして、署名生成部３０４は、ハッシュ関数を利用してスクリプトデータを圧縮処理した後、自身（サービス提供サーバ３００）が保持する秘密鍵を利用して、そのハッシュ値を暗号化し、スクリプト署名データを生成する。
【００９５】
その後、スクリプトページ作成部３０６は、スクリプトデータに加え、スクリプト署名データ、サービス提供サーバ証明書、エリア管理サーバ証明書をスクリプトページに記述する。例えば、スクリプトページを記述する言語としてＨＴＭＬを用いる場合には、図８に示すように、スクリプトデータに加え、スクリプト署名データ７０２、サービス提供サーバ証明書７０４、及びエリア管理サーバ証明書７０６が記述される。ＥＣＭＡスクリプトの場合、図８に示すＨＴＭＬベースのスクリプトページに代えて、図９に示すようなスクリプトページが生成される。
【００９６】
以上、スクリプトページの作成処理について説明した。上記の処理方法を適用することにより、サービス提供サーバ証明書に内包されるサービス提供サーバ３００の公開鍵を利用して検証可能なスクリプト署名データが生成され、クライアント装置４００にて安全にスクリプトデータを実行するために必要な当該スクリプト署名データ、エリア管理サーバ証明書、及びサービス提供サーバ証明書を含むスクリプトページが作成される。
【００９７】
［スクリプトデータ実行前の検証処理］
次に、図１０を参照しながら、スクリプトデータ実行前の検証処理について説明する。図１０は、本実施形態に係るスクリプトデータ実行前の検証処理を示す説明図である。
【００９８】
まず、クライアント装置４００は、サービス提供サーバ３００に対してサービス提供要求を送信する（Ｓ３０２）。これを受けて、サービス提供サーバ３００は、スクリプトデータ、スクリプト署名データ、サービス提供サーバ証明書、及びエリア管理サーバ証明書が含まれるスクリプトページを取得する（Ｓ３０４）。このとき、サービス提供サーバ３００は、事前に作成しておいたスクリプトページを取得してもよいし、或いは、スクリプトページ作成部３０６を用いてスクリプトページを作成してもよい。そして、サービス提供サーバ３００は、通信部３１０を介してそのスクリプトページをクライアント装置４００に送信する（Ｓ３０６）。
【００９９】
次いで、クライアント装置４００が備えるサーバ検証部４０２は、自身（クライアント装置４００）が保持する公開鍵（ルート証明書）を利用してエリア管理サーバ証明書を検証する（Ｓ３０８）。さらに、サーバ検証部４０２は、エリア管理サーバ証明書から取得したエリア管理サーバ２００の公開鍵を利用してサービス提供サーバ証明書を検証する（Ｓ３１０）。次いで、署名検証部４０４は、サービス提供サーバ証明書から取得したサービス提供サーバ３００の公開鍵を利用してスクリプト署名データを検証する（Ｓ３１２）。その後、サーバ検証部４０２は、サービス提供サーバ証明書から取得したサービス提供サーバ３００のサーバ名と、スクリプトを取得するために接続したサービス提供サーバ３００のサーバ名とが同一であるか否かを検証する（Ｓ３１４）。
【０１００】
以上、スクリプト実行前の検証処理について説明した。上記の処理方法を適用することにより、スクリプトデータの改竄を検知することが可能になり、セキュアチップ５００への不正なアクセスを未然に防止することができる。
【０１０１】
［スクリプトデータ実行時の処理］
次に、クライアント装置４００によるスクリプトデータ実行時の処理について説明する。
【０１０２】
クライアント装置４００は、上記のスクリプトデータ実行前の検証処理により、エリア管理サーバ証明書、サービス提供サーバ証明書、スクリプト署名データ署名、及びサーバ名が正しく検証された場合にのみ、サービス提供サーバ３００から取得したスクリプトデータを実行する。さらに、クライアント装置４００は、サービス提供サーバ証明書から取得したアクセス制御情報を参照し、スクリプトデータがアクセスしようとするセキュアメモリ５１０のエリアが当該アクセス制御情報に記載されたエリアの範囲内か否かを検証する。その結果、取得したアクセス制御情報に記載のエリア範囲内の場合、クライアント装置４００は、そのスクリプトデータを実行する。逆に、エリア範囲外の場合、クライアント装置４００は、エラーを発生させてスクリプトデータを実行しない。
【０１０３】
また、取得したアクセス制御情報に、読み込み／書き込み（Ｒｅａｄ／Ｗｒｉｔｅ）等に関するアクセス権や、同一エリアに対してアクセス可能な回数等の指定が記載されている場合、クライアント装置４００は、スクリプトデータによる処理の種類やアクセス回数等を確認し、当該アクセス制御情報に記載された条件を満たす場合にのみ、スクリプトデータを実行する。
【０１０４】
以上、スクリプトデータ実行時の処理について説明した。上記の処理方法を適用することにより、エリア管理サーバ２００が許可しないサービスエリアに対し不正にアクセスしようとするスクリプトデータの実行を未然に防止することが可能になり、スクリプトデータを利用したセキュアチップ５００への安全なアクセス制御が実現される。また、アクセス制御情報を利用してアクセス権や同一エリアに対するアクセス回数等の細かなアクセス制御も可能になる。
【０１０５】
以上説明した技術を用いると、ＡｃｔｉｖｅＸやＪａｖａ等で開発されたアプリケーションよりも容易に開発可能なＥＣＭＡＳｃｒｉｐｔやＪａｖａＳｃｒｉｐｔ等のスクリプト言語、或いは、タグ情報を用いて安全にセキュアチップへのアクセス制御を可能にする仕組みが実現される。この技術は、アプリケーションのハッシュ値に署名をしてクライアント装置で当該署名を検証するといった技術とは異なり、エリア管理者とサービス提供者とのいずれかが信頼できない場合に対する安全性も備えている点で非常に高いセキュリティが実現されていると言える。従って、本実施形態に係る技術を適用することにより、アプリケーションを利用したセキュアチップへのアクセス制御に対しても、より高い安全性を提供することができる。
【０１０６】
また、クライアント装置４００に対し、スクリプトデータの内容を毎回確認したり、ネットワーク経由で実行許可を得ることなしにエリア管理サーバ２００が許可するサービスエリアにのみアクセス可能なアクセス権を付与することができるため、エリア管理サーバ２００の負担を低減させることが可能になる。さらに、サービス提供サーバ３００とクライアント装置４００との間のネットワーク１０においてスクリプトデータが改竄された場合であっても、スクリプト署名データの検証時にクライアント装置４００が改竄の有無を検知可能であるため、サービス提供サーバ３００とクライアント装置４００との間にＳＳＬのような暗号通信路を構築する必要がなくなるという効果が得られる。
【０１０７】
さらに、スクリプトデータが正しいか否かが署名検証により自動的に判断されるため、セキュアチップを利用するスクリプトを実行する際に、そのスクリプトが正しいか否かを利用者に判断させなくても済むようになる。また、利用者が悪意のあるサイトに接続しても、署名検証時にエラー処理されるため、不正なスクリプトがクライアント装置４００上で実行される危険性を低減することができる。もちろん、スクリプトが改竄された場合でも、クライアント装置４００ではスクリプトを実行できないため、安全性が確保される。
【０１０８】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１０９】
例えば、エリア管理サーバ証明書、及びサービス提供サーバ証明書は、事前にクライアント装置４００内に保持していたり、一度受領した各証明書を保持しておき、スクリプト署名データの検証時に利用してもよい。また、上記の実施形態においては、認証局サーバ１００を他の装置の別体として構成したが、エリア管理サーバ２００と一体に構成することもできる。さらに、スクリプトに代えて、ＪａｖａやＡｃｔｉｖｅＸ等のアプリケーションを利用したセキュアチップのアクセス制御にも本発明を適用することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の一実施形態に係るサービス提供システムを示す説明図である。
【図２】同実施形態に係る認証局サーバの構成を示す説明図である。
【図３】同実施形態に係るエリア管理サーバの構成を示す説明図である。
【図４】同実施形態に係るサービス提供サーバの構成を示す説明図である。
【図５】同実施形態に係るクライアント装置の構成を示す説明図である。
【図６】同実施形態に係るエリア管理サーバ証明書の発行工程を示す説明図である。
【図７】同実施形態に係るサービス提供サーバ証明書の発行工程を示す説明図である。
【図８】同実施形態に係るスクリプトページの一例を示す説明図である。
【図９】同実施形態に係るスクリプトページの一例を示す説明図である。
【図１０】同実施形態に係るスクリプト実行前の検証処理工程を示す説明図である。
【図１１】同実施形態に係るアクセス制御情報の一例を示す説明図である。
【図１２】同実施形態に係るタグ情報の一例を示す説明図である。
【図１３】同実施形態に係るセキュアメモリのデータ構造を示す説明図である。
【図１４】同実施形態に係るセキュアチップの構造を示す説明図である。
【符号の説明】
【０１１１】
１０００    サービス提供システム
１００    認証局サーバ
１０２    ハッシュ生成部
１０４    署名生成部
１０６    証明書作成部
１０８    通信部
１１０    記憶部
２００    エリア管理サーバ
２０２    鍵生成部
２０４    署名生成部
２０６    証明書作成部
２０８    アクセス制御情報作成部
２１０    通信部
２１２    記憶部
３００    サービス提供サーバ
３０２    鍵生成部
３０４    署名生成部
３０６    スクリプトページ作成部
３０８    スクリプト作成部
３１０    通信部
３１２    記憶部
４００    クライアント装置
４０２    サーバ検証部
４０４    署名検証部
４０６    アクセス制御部
４０８    スクリプト解釈部
４１０    通信部
４１２    記憶部
５００    セキュアチップ
５０２    制御部
５０４    ＲＯＭ
５０６    ＲＡＭ
５０８    通信部
５１０    セキュアメモリ
５１２    バス
【図１】
0004740926.tif 000002
【図２】
0004740926.tif 000003
【図３】
0004740926.tif 000004
【図４】
0004740926.tif 000005
【図５】
0004740926.tif 000006
【図６】
0004740926.tif 000007
【図７】
0004740926.tif 000008
【図８】
0004740926.tif 000009
【図９】
0004740926.tif 000010
【図１０】
0004740926.tif 000011
【図１１】
0004740926.tif 000012
【図１２】
0004740926.tif 000013
【図１３】
0004740926.tif 000014
【図１４】
0004740926.tif 000015