JP2005236505A - コンテンツ配信システム - Google Patents

コンテンツ配信システム Download PDF

Info

Publication number
JP2005236505A
JP2005236505A JP2004041252A JP2004041252A JP2005236505A JP 2005236505 A JP2005236505 A JP 2005236505A JP 2004041252 A JP2004041252 A JP 2004041252A JP 2004041252 A JP2004041252 A JP 2004041252A JP 2005236505 A JP2005236505 A JP 2005236505A
Authority
JP
Japan
Prior art keywords
terminal device
card
message
digital certificate
server
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.)
Pending
Application number
JP2004041252A
Other languages
English (en)
Inventor
Stefan Walter
ウォルター ステファン
Takushi Hiramoto
▲たく▼士 平本
Ryuichi Okamoto
隆一 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004041252A priority Critical patent/JP2005236505A/ja
Publication of JP2005236505A publication Critical patent/JP2005236505A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 公開鍵暗号に基づき、端末を介したICカード/サーバ間のセキュアな通信路を確立するには、デジタル証明書を格納したメッセージを送受信する必要があるが、ICカード/端末間の通信速度は低速であり、デジタル証明書を送受信することは負荷が高い。
【解決手段】 端末はICカードのデジタル証明書を予め取得しておく。ICカードがサーバとセキュアな通信路を確立する際、ICカードは端末に対してデジタル証明書が格納されていないメッセージを送信する。端末は受信したメッセージに保持するデジタル証明書を格納し、サーバへ送信する。また、ICカードはサーバのデジタル証明書を予め取得しておき、保持していることを端末へ通知しておく。端末はサーバからICカードへのデジタル証明書が格納されたメッセージを受信すると、サーバの証明書をメッセージから削除してICカードへ送信する。
【選択図】 図1

Description

本発明は、デジタルコンテンツ配信システムに関し、特に秘密情報を転送する際に使用するセキュアな通信路の確立方法に関する。
近年、音楽、映像、ゲームなどのデジタルコンテンツ(以下、コンテンツと記述)を、インターネットなどの通信や、デジタル放送、CATV(Cable Television)などを通じて、サーバから端末装置に配信し、端末装置においてコンテンツを利用することが可能なコンテンツ配信サービスが実用化段階に入っている。このコンテンツ配信サービスに用いられる一般的なシステムでは、コンテンツの著作権を保護し、悪意あるユーザなどによるコンテンツの不正利用を防止するため、著作権保護技術が用いられる。著作権保護技術とは、具体的には、暗号技術や認証技術などを用いて、ユーザがコンテンツを再生したり、記録メディアにコピーしたりといったようなコンテンツの利用を、セキュアに制御する技術である。著作権保護技術を用いることにより、コンテンツプロバイダやサービスプロバイダなどの事業者が、ユーザの端末装置におけるコンテンツ利用をセキュアに制御することが可能となる。
「コンテンツの利用を制御する」とは、暗号化され配信されたコンテンツを復号する鍵(以下、コンテンツ鍵と記述)の利用を利用条件により制限することにより実現される。利用条件とは例えば「3回利用可能」と記述された情報であり、その他にも有効期間や利用できる累積時間等がある。これらコンテンツ鍵や利用条件はライセンスに格納され、ユーザの端末装置へ配信される。例えばユーザは端末装置を操作し、インターネット上のサーバへ接続し、前記ライセンスを取得する。この際にサーバは、接続してきた端末装置がユーザの端末装置であるか否かの認証を行い、ユーザの端末装置であった場合にはライセンスを暗号化して配信する。
このユーザの端末装置であるか否かの認証や、通信データを暗号化するための鍵の配送等は公開鍵暗号に基づいて行われる。公開鍵暗号とは、従来のDES(Data Encryption Standard)やAES(Advanced Encryption Standard)といった1つの鍵で暗号化や復号を行う秘密鍵暗号方式とは異なり、秘密の鍵と、公開してもよい鍵の2つからデータを暗号化、復号する暗号方式である。例えば、RSA(Rivest Shamir Adelman)やECC(Elliptic Curve Cryptography)がある。公開鍵暗号では、公開鍵で暗号化したデータは対の秘密鍵を用いなければ復号できず、秘密鍵で暗号化したデータは対の公開鍵でしか復号できない暗号方式である。この方式では数学的に複雑なアルゴリズムを利用しているため、処理速度は秘密鍵暗号方式に比べ低速であるという問題点がある。このような問題から、一般に公開鍵暗号はデジタル証明書を用いた端末装置の認証や、通信データをDESやAESで暗号化する際の鍵の配送に利用される。
特許文献1にはICカードを利用した個人認証に関する技術が開示されている。これによれば、サーバはユーザの端末装置を公開鍵暗号に基づいて認証し、次に端末装置に挿入されたICカードに対して乱数を送信し、ICカードは受信した乱数をユーザ固有鍵で暗号化したのちサーバへ返信する。サーバは返信された暗号化乱数を、予め登録されているユーザ固有鍵で復号し、復号した結果が送信した乱数と一致した場合にユーザ(が所有するICカード)を認証する方法である。この認証とサーバとユーザの端末装置との通信内容を暗号化するための鍵の配送および暗号化通信を実現する方法として、公開鍵暗号を利用した方式が一般的に利用されている。例えばSSL(Secure Socket Layer)やTLS(Transport Layer Security)といった安全な認証チャネル(Secure Authenticated Channel;以下、SACと記述)を確立する技術がある。
特開2001−69138号公報 「FIPS PUB 186−2(Federal Information Processing Standards Publication)」、NIST(National Institute of Standards Technology)、2000年 ブルース・シュナイアー著、「暗号技術大全」、ソフトバンクパブリッシング、2003年
ところで、特許文献1でICカードを利用したユーザ認証方法として秘密鍵暗号方式が利用されているが、これはICカードの処理速度が低速であることに基づいている。ところが、近年のICカードの処理速度向上、秘密鍵暗号、公開鍵暗号コプロセッサの搭載により、ICカード内でも公開鍵暗号方式を利用することが現実的となってきた。
コンテンツ配信サービスにおいても、ユーザを識別する手段として耐タンパ性に優れたICカードを使用し、ライセンス等のセキュア情報をICカード内に蓄え利用することが求められるようになってきている。
ところでICカードのような受動デバイスは、サーバと通信するためには必ず端末装置に対して通信データを送信し、サーバに対して転送してもらう必要がある。この際、ICカードと端末装置間の通信プロトコルは、ISO7816にて規定された通信プロトコルが一般に用いられる。この通信プロトコルは1度に最大255バイトのデータしか送受信することができない。公開鍵暗号において端末認証を行う際に利用するデジタル証明書は、SSLやTLSを利用する場合では数Kバイトとなり、その送受信にかかる負荷が高くなってしまうという問題があった。
また、数KバイトのデータをICカードへ送信する場合にはデータを分割し送信する必要がある。ここでJava(登録商標)カードのようなマルチアプリケーション対応のICカードを利用する場合を考えると、JavaVM(Java Virtual Machine)が受信したデータをアプレットへ引き渡す処理にかかる時間は、データを分割した数に比例して増大する。低速なICカードではこの処理にかかる時間ロスについて無視できないという問題があった。
本発明は、このような点を省みてなされたものであり、ICカードと端末装置間のデジタル証明書の送受信にかかる負荷を下げることを目的としている。
上記目的を達成するために、コンテンツを配信するコンテンツ配信サーバと、前記コンテンツを利用する第一の端末装置と、第一の端末装置と接続し前記コンテンツ配信サーバとセキュアな通信を行う第二の端末装置と、から構成されるコンテンツ配信システムであって、前記第一の端末装置は、外部と通信を行う第一の通信手段と、デジタル証明書を保持する第一のデジタル証明書保持手段と、メッセージを変更するメッセージ変更手段とを保持し、前記第二の端末装置は、前記第一の端末装置と通信する第二の通信手段と、メッセージを作成、解釈するメッセージ処理部とを保持し、前記第一の端末装置は、前記第一の通信手段が受信した前記第二の端末装置のメッセージへ前記第二の端末装置のデジタル証明書を格納する変更を、メッセージ変更手段にて行い、前記コンテンツ配信サーバへ転送することを特徴とする。
ここで、前記第一の端末装置は、接続された前記第二の端末装置のデジタル証明書を取得するデジタル証明書取得手段を保持し、前記第二の端末装置のデジタル証明書を前記第一のデジタル証明書保持手段にて保持していない場合に、前記デジタル証明書取得手段にて取得してもよい。
また、前記デジタル証明書取得手段は、インターネットに接続された他端末から前記デジタル証明書を取得したり、接続されたリムーバブルメディアから前記デジタル証明書を取得したり、前記第二の端末装置から前記第一の通信手段が受信したメッセージから前記デジタル証明書を取得してもよい。
また、前記第一の端末装置は前記第二の端末装置を識別する端末装置識別手段を保持し、前記端末装置識別手段にて識別した前記第二の端末装置のデジタル証明書を、前記デジタル証明書格納手段から取得し、前記メッセージ変更手段によりメッセージに格納してもよい。そして、例えば、前記第二の端末装置はICカードであり、前記第一の通信手段および第三の通信手段はISO7816準拠の通信プロトコルに従って通信する。
また、前記第一の端末装置は、前記第一の通信手段にて受信したコンテンツ配信サーバから前記第二の端末装置へのメッセージを受信し、前記メッセージ変更手段にて前記コンテンツ配信サーバのデジタル証明書を分離し、前記第一の通信手段にて前記第二の端末装置へメッセージを送信してもよい。
また、前記変更手段は前記第二の端末装置からの通知された際に行われてもよい。そして、前記通知は、前記第二の端末装置が保持する前記コンテンツ配信サーバのデジタル証明書の新旧が判断できる情報であってもよいし、前記第二の端末装置が保持する前記コンテンツ配信サーバのデジタル証明書の証明書シリアル番号であってもよい。
さらに、前記第二の端末装置は、前記コンテンツ配信サーバのデジタル証明書を格納する第二のデジタル証明書保持手段を保持し、通信にて取得した前記コンテンツ配信サーバのデジタル証明書を前記第二のデジタル証明書保持手段へ格納してもよい。
本発明によれば、端末装置/ICカード間におけるデジタル証明書の送受信を必要最低限の回数にすることが可能であり、サーバ/ICカード間でのSAC確立にかかる時間を短縮し、ユーザ利便性を向上させることが可能となる。
以下本発明の実施の形態について、図面を参照しながら説明する。
図1は、本発明の実施の形態におけるコンテンツ配信システムの全体構成を示すブロック図である。ここで開示するコンテンツ配信システムは、暗号化コンテンツの配信や、後述するライセンスを発行するサーバ100と、サーバ100とICカード600との通信を中継し、ICカード600からコンテンツ鍵を受け取り、暗号化コンテンツを復号し利用する端末装置500と、端末装置500を介してサーバ100とSACを確立し、SAC上でユーザのライセンスを取得し、ライセンスを解釈し端末装置500からの要求に応じてコンテンツ鍵を端末装置500へ出力するICカード600とから構成される。
なお、本実施の形態ではICカード600を用いる構成を説明するが、これは特に利用する機器を限定するものではない。同様の処理を端末装置500内蔵のLSIで行ってもよいし、外付けの外部機器で行ってもよい。
次に図2を参照してライセンスの構成について説明する。ライセンス200はコンテンツを利用するための情報が記述されており、ライセンスを識別するライセンスID201と、ライセンスに関連付けられたコンテンツの識別子であるコンテンツID202と、関連付けられた暗号化コンテンツを復号するコンテンツ鍵203と、コンテンツ鍵203が利用できる条件が記述された利用条件204とから構成される。
ユーザがコンテンツを利用できるか否かは利用条件204を解釈することで判定される。例えば利用回数205といった情報が利用条件204に記述されている場合、ユーザは指定された回数だけコンテンツ鍵203を利用してコンテンツを利用することが可能となる。ICカード600はこのライセンス200をサーバ100から取得し、利用条件204を解釈したのち、コンテンツ鍵203が利用可能であると判定された場合のみ端末装置500に対してコンテンツ鍵を渡すという制御を行う。
次にSACを確立する際に必要となるデジタル証明書について図3を参照して説明する。デジタル証明書は、公開鍵暗号におけるICカード600の公開鍵、および記述された公開鍵がICカード600のものであることを保証する、信頼できる第3者機関(以下、認証局と記述)のデジタル署名が格納された情報である。まずその構成について説明したのち、実際の使われ方について説明する。
図3に示すデジタル証明書300はITU(International Telecommunications Union)によって規定されているデジタル証明書の一例である。デジタル証明書300は、証明書の記述形式のバージョンを示す証明書形式バージョン301と、証明書のIDを示す証明書シリアル番号302と、利用する公開鍵暗号やその他アルゴリズムを示すデジタル署名アルゴリズム識別子303と、証明書の発行者である認証局の識別子を示す発行者304と、証明書の有効期間を示す有効期限305と、証明書の持ち主である端末の識別子を格納するサブジェクト306と、サブジェクト306の公開鍵を格納する公開鍵307と、証明書の発行者304が独自拡張した情報を示す拡張領域308と、認証局のデジタル署名が格納された認証局デジタル署名309とから構成される。
ここで説明したデジタル証明書300を保持する端末は、公開鍵307と対となる秘密鍵を保持する。この秘密鍵を用いて生成したデジタル署名は、その秘密鍵を保持する端末でのみ生成可能である。またその検証は対となるデジタル証明書300の公開鍵307を用いた場合のみ成功する。従って、端末は通信データとその通信データに対するデジタル署名、および端末のデジタル証明書300を通信相手に送信することにより、通信相手は受信した通信データが本当に当該端末が生成したものであるのか判定が可能となる。例えばサーバ100に接続してきた端末が、ICカード600になりすました不正端末でないかの判定は以下の手順にて行われる。
(1)サーバ100は乱数を生成し、ICカード600へ送信する。
(2)ICカード600は、ICカード600の秘密鍵を用いて受信した乱数に対するデジタル署名を生成し、ICカード600のデジタル証明書300と共にサーバ100へ返信する。
(3)サーバ100は受信したデジタル証明書300の認証局デジタル署名309を、認証局の公開鍵を利用して署名検証を行う。成功した場合、サーバ100はサブジェクト306にて通信相手を識別する。サブジェクト306がICカード600のものと一致する場合には(4)へ進む。
(4)ICカード600のデジタル証明書300の署名検証が成功した場合、(1)にて送信した乱数と、受信したデジタル証明書300に格納されている公開鍵307を用いて、受信したデジタル署名の検証を行う。成功した場合、サーバ100は、通信相手がICカード600であると判定する。
以上の処理中で検証処理に失敗した場合、サーバ100は不正端末であると判定する。なお、公開鍵暗号を利用した署名生成や署名検証については、非特許文献1が詳しい。ここで説明した認証は、サーバ100がICカード600を認証する片方向認証であるが、これを双方で行い、かつ公開鍵暗号の鍵配送アルゴリズムを用いることによりSACを確立することが可能となる。公開鍵暗号の鍵配送アルゴリズムについては、非特許文献2が詳しい。
図4を参照して、端末A/端末B間でのSAC確立手順について説明する。ここで、端末Aおよび端末Bは、同一の認証局に署名されたデジタル証明書A、B、および前記認証局の公開鍵を保持しているものとする。
(1)端末AはST403にて乱数Raを生成し、デジタル証明書Aと共に端末Bへ送信する。
(2)ST404にて端末Bは受信したデジタル証明書Aのデジタル署名を認証局の公開鍵にて検証する。検証が成功すればST405にて乱数Rbを生成し、ST405にて乱数Rbを用いて鍵配送アルゴリズムに基づく処理を行う。ここではDH(Diffie Hellman)アルゴリズムを用いるとし、DH−P1V(DHのPhase 1 Value)を計算し、ST408にて乱数RaとDH−P1Vに対して端末Bの秘密鍵を用いデジタル署名を生成する。以上の処理の後、端末Bは乱数Rb、デジタル証明書B、DH−P1V、生成したデジタル署名を端末Aへ送信する。
(3)端末Aは、まずST409にて受信したデジタル証明書Bのデジタル署名を認証局の公開鍵307にて検証する。次にST410にて、420にて送信した乱数Raと、421にて受信したDH−P1Vおよびデジタル証明書Bに格納された公開鍵とから、421にて受信したデジタル署名の検証を行う。ここで検証が成功した場合、DH−P1Vは端末Bにて生成したことが保証される。次に、ST411にて乱数RaからDHアルゴリズムを用いてDH−P1Vを計算し、ST412にて421で受信した乱数Rbと前記生成したDH−P1Vに対し端末Aの秘密鍵を用いてデジタル署名を生成する。その後、生成したDH−P1Vおよびデジタル署名を端末Bへ送信する。
(4)端末BはST413にて受信したデジタル署名の検証を行う。検証処理は、420にて受信したデジタル証明書Aに格納された公開鍵307と、421で送信した乱数Rbと、422にて受信したDH−P1Vを用いて行われる。この検証が成功した場合、DH−P1Vは端末Aで生成されたことが保証される。
(5)最後にST414、ST415にて通信相手から受信したDH−P1Vと、各端末内で生成した乱数Ra、Rbを用いて鍵交換アルゴリズムから通信鍵の生成処理を行う。
以上の処理により、端末A、端末Bで同一の通信鍵が生成される。端末A/端末B間で通信を行う際に、通信データを前記生成した通信鍵にて暗号化処理することによりセキュアな通信が可能となる。なお、SAC確立処理の各過程において検証が成功しない場合、相手端末は不正端末であるとみなし通信切断等の終了処理を行う。
なお、ここでは端末A、端末Bが保持するデジタル証明書は同一の認証局に署名された証明書であるとしたが、一般には同一でなくてもよい。その場合、受信したデジタル証明書300に署名している認証局の公開鍵を、インターネットを介して当該認証局から取得してもよい。
次に図5を参照して、コンテンツ配信システムにおけるコンテンツ再生を行う端末装置500の構成を説明する。
端末装置500は、インターネットに接続されサーバ100と通信を行う通信部501と、サーバ100から取得した暗号化コンテンツを復号する復号部502と、MPEG−2などの圧縮技術により圧縮されたコンテンツを伸張する伸張部503と、端末装置500/ICカード600間の通信コマンド、およびサーバ100/ICカード600間の通信メッセージを処理するメッセージ処理部504と、ICカード600の識別子(以下、CカードIDと記述)とデジタル証明書300を関連付けて記憶するICカード証明書記憶部505と、端末装置500の各機能部を制御する制御部506と、ICカード600が通信するサーバ100のデジタル証明書300を保持するか否かのフラグと、サーバ100のデジタル証明書300の証明書シリアル番号302とを関連付けて記憶するシリアル番号記憶部507と、ICカード600と通信を行うICカード通信部508とから構成される。
次に図6を参照して、コンテンツ配信システムにおけるサーバ100とのSAC確立、サーバ100からのライセンス取得、保持等のセキュア処理を行うICカード600の構成について説明する。但し本発明の目的は、効率的なSAC確立処理についてであるため、ここではライセンス取得、保持等に必要となる処理部については説明しない。
ICカード600は、コンテンツ配信サービスにおいてICカードに一意に割り振られたICカードIDを格納するICカードID記憶部601と、サーバ100への通信メッセージ、および端末装置500との通信コマンドの処理を行うメッセージ処理部602と、ICカード600の各機能部を制御する制御部603と、端末装置500と通信を行う通信部604と、サーバ100のURLとサーバ100のデジタル証明書300を関連付けて記憶するサーバ証明書記憶部605と、ICカード600のデジタル証明書300を記憶するICカード証明書記憶部606と、各種暗号処理を行う暗号処理部607と、通信するサーバ100のURLを記憶するサーバURL記憶部608と、DHアルゴリズムによって生成される通信用鍵を格納する通信鍵格納部609とから成る。
なお、ここではICカード600に1つのコンテンツ配信サービスのクライアントが実装されている構成図を示したが、複数実装される形態でもよい。例えば、Javaカードに代表されるマルチアプリケーションカードを用いて、前記ICカードの各種機能部をソフトウェアで実装してもよい。
次に端末装置500と、ICカード600の通信方法について説明する。一般にICカードと端末の通信プロトコルはISO7816にて規定されているものが用いられる。ISO7816にはICカードの物理的特性から電気信号、伝送プロトコル、コマンドフォーマットまで規定されている。ここではコマンドフォーマットについて簡単に説明する。ICカードと端末の通信はAPDU(Application Protocol Data Unit)によって行われる。APDUはコマンドおよびレスポンスの2つからなり、それぞれ図7、図8を参照してそのフォーマットについて説明する。
図7を参照してコマンドAPDUの構成について説明する。コマンドAPDUは、コマンドヘッダ701とペイロード702とから成る。コマンドヘッダ701は、コマンド/レスポンスのAPDUがどの程度ISO7816に適合するのかを示す値を格納するCLA703と、コマンドAPDUによってICカードに指示される処理の命令識別子を格納するINS704と、命令に対するパラメータを格納するP1(705)およびP2(706)とから構成される。ペイロード702は、ペイロードに格納されるデータバイト数を格納するLc707と、ICカードへの送信データを格納するデータ領域708と、コマンドAPDUに対するレスポンスAPDUに格納されるデータバイト数を指定するLe709とから成る。以上のフォーマットがISO7816にて規定されている。
ところで、データ領域708の長さを指定するLc707は1バイトであり、データ領域708には最大255バイトのデータしか格納できない。従って、それを超える長さのデータをICカードへ送信する場合、データをいくつかのブロックに分割し、ICカードへ送信する必要がある。そこで端末装置500/ICカード600間で送信データの分割に対応するため、データ領域に分割情報を新たに追加する。分割情報は、現在のPDUの番号を示すPDU番号710と、分割した最後のPDU番号を示す最終PDU番号711とから構成される。端末装置500がデータを分割して送信する場合、分割した個数を最終PDU番号711へ格納し、これから送信するPDU番号をPDU番号710へ格納し、分割したデータのPDU番号711番目のブロックをデータ領域712へ格納して送信する。ICカード600側では、受信したPDU番号710と最終PDU番号711とからデータを連結し、復元する処理を行う。図10〜12において示す端末装置500/ICカード600間のコマンドAPDUフォーマットにおいて、PDU番号710、最終PDU番号711に格納する値については特に明記しないが、上記で説明した適切な値が格納されるものとする。
次に図8を参照してレスポンスAPDUの構成を説明する。レスポンスAPDUは、レスポンスデータを格納するペイロード801と、ICカードの処理ステータスを格納するSW1/SW2(802)から構成される。ペイロード801は、データを分割して送信するための情報であるPDU番号803および最終PDU番号804と、端末装置500からの要求に対する処理ステータスを格納するステータスコード805と、分割したPDU番号803番目のデータブロックを格納したデータ領域806とから構成される。以降、図10〜12において示す端末装置500/ICカード600間のレスポンスAPDUのフォーマットにおいてPDU番号803、最終PDU番号804に格納する値については特に明記しないが、上記で説明した適切な値が格納されるものとする。また、SW1/SW2(802)に格納されるステータスは、処理結果のステータスコード805に対応したISO7816規定の適切な値が格納される。例えば、ISO7816では正常終了におけるSW1/SW2には「9000」が格納されると規定されている。
図9〜12を参照してサーバ100/ICカード600間で送受信されるメッセージの構成や、端末装置500/ICカード600間で送受信されるコマンド/レスポンスAPDUのフォーマットについて説明する。
まず、図9を参照してサーバ100/ICカード600間で送受信されるメッセージの構成について説明する。
まず、SACを確立するために通信相手に乱数とデジタル証明書300を送信するためのチャレンジメッセージ900について説明する。チャレンジメッセージ900は、メッセージの種別を示すメッセージID901と、メッセージの長さを格納するメッセージ長902と、生成した乱数を格納する乱数903と、認証局により署名されたデジタル証明書300を格納する証明書904とから成る。このチャレンジメッセージ900は図4にて説明したSAC処理の420と421(の一部)に対応するメッセージである。
次に鍵交換メッセージ910について説明する。鍵交換メッセージ910は、メッセージの種別を示すメッセージID911と、メッセージの長さを格納するメッセージ長912と、鍵交換アルゴリズムであるDHアルゴリズムに基づいて計算した結果を格納するDH−P1V913と、チャレンジメッセージ900で受信した乱数と計算したDH−P1Vに対して生成したデジタル署名を格納する署名914とから成る。鍵交換メッセージ910は、図4にて説明したSAC処理の412(の一部)、422に対応するメッセージである。
最後にSAC処理の成功/失敗等を通信相手に通知するためのステータスメッセージ920について説明する。ステータスメッセージ920は、メッセージの種別を示すメッセージID921と、メッセージの長さを格納するメッセージ長922と、SAC処理成功や失敗等の処理ステータスを格納するステータスコード923から成る。
続いて図10〜12を参照して、端末装置500/ICカード600間の通信で利用されるコマンド/レスポンスAPDUのフォーマットについて説明する。
まず図10を参照して、端末装置500がICカード600の各種情報を取得する際のコマンドについて説明する。
コマンドAPDU1000およびレスポンスAPDU1010は、端末装置500がICカード600のICカードIDを取得する際に使用するICカードID取得コマンド/レスポンスのフォーマットである。コマンドAPDU1000は、ICカードID取得コマンドであることを示すINS値(ここでは例えば30とする)が格納されたコマンドヘッダ1001と、データ領域712が空であるペイロード1002とから成る。これに対するレスポンスAPDU1010は、処理ステータスを格納するステータスコードと、ICカード600に割り当てられたICカードIDとが格納されたペイロード1011と、ISO7816にて規定された処理ステータスを格納するSW1/SW2(802)とから成る。
コマンドAPDU1020およびレスポンスAPDU1030は、端末装置500がICカード600からICカード証明書を取得する際に使用するICカード証明書取得コマンド/レスポンスのフォーマットである。コマンドAPDU1020は、ICカード証明書コマンドであることを示すINS値(ここでは例えば32とする)が格納されたコマンドヘッダ1021と、データ領域712に取得するICカード証明書300を保持するICカードのICカードIDが格納されたペイロード1022とから成る。これに対するレスポンスAPDU1030は、処理ステータスを格納するステータスコードと、ICカードIDに対応するICカード証明書300とが格納されたペイロード1031と、ISO7816にて規定された処理ステータスを格納するSW1/SW2(802)とから成る。
次に図11、12を参照して、サーバ100/ICカード600間でSACを確立する際に送受信するするメッセ−ジを、端末装置500/ICカード600間で送受信する際に利用するコマンド/レスポンスのフォーマットについて説明する。
コマンドAPDU1040およびレスポンスAPDU1050は、端末装置500がICカード600に対してサーバ100とのSAC確立を要求する際に利用するコマンド/レスポンスのフォーマットである。コマンドAPDU1040は、SAC確立要求コマンドであることを示すINS値(ここでは例えば34とする)が格納されたコマンドヘッダ1041と、データ領域712にSACを確立するサーバ100のURLが格納されたペイロード1042とから成る。これに対するレスポンスAPDU1050は、処理ステータスを格納するステータスコードと、端末装置500へICカード証明書を結合し、チャレンジメッセージを作成することを指示するICカード証明書結合指示フラグと、SAC確立を行うサーバ100のサーバ証明書300を、ICカード600が保持しているかを端末装置500へ通知するサーバ証明書保持フラグと、保持するサーバ証明書300の証明書シリアル番号302を格納するサーバ証明書シリアル番号と、ICカード600が一部作成したチャレンジメッセージ900とを格納するペイロード1051と、ISO7816にて規定された処理ステータスを格納するSW1/SW2(802)とから成る。
コマンドAPDU1060およびレスポンスAPDU1070は、サーバ100に送信したチャレンジメッセージ900に対する応答メッセージを、ICカード600へ送信する際に利用するコマンド/レスポンスのフォーマットである。コマンドAPDU1060は、チャレンジメッセージ900に対するサーバの応答メッセージを、ICカード600へ転送するコマンドであることを示すINS値(ここでは例えば36とする)が格納されたコマンドヘッダ1061と、データ領域712に、端末装置500がチャレンジメッセージ900からサーバ証明書300を分離したかを示すサーバ証明書分離フラグと、前記サーバ証明書300が削除された(もしくは削除されていない)チャレンジメッセージ900と、サーバ100から送信された鍵交換メッセージ910と、を格納したペイロード1062とから成る。これに対するレスポンスAPDU1070は、処理ステータスを格納するステータスコードと、ICカード600がサーバ100へ送信する鍵交換メッセージ910と、を格納するペイロード1071と、ISO7816にて規定された処理ステータスを格納するSW1/SW2(802)とから成る。
コマンドAPDU1080およびレスポンスAPDU1090は、サーバ100からICカード600へ送信されたステータスメッセージ920をICカード600へ転送する際に利用するコマンド/レスポンスのフォーマットである。コマンドAPDU1080は、サーバ100からのステータスメッセージ920をICカード600へ転送することを示すINS値(ここでは例えば38とする)が格納されたコマンドヘッダ1081と、データ領域712にサーバ100から送信されたステータスメッセージ920と、を格納したペイロード1082とから成る。これに対するレスポンスAPDU1090は、処理ステータスを格納するステータスコードを格納するペイロード1091と、ISO7816にて規定された処理ステータスを格納するSW1/SW2(802)とから成る。
次に、サーバ100/ICカード600間におけるSAC確立処理において、端末装置500およびICカード600の動作について説明する。但し、サーバ100は一般的なコンテンツ配信サーバと同様な処理でよいため、詳細な説明については省略する。まず、図13、図14を使用して、全体の流れについて説明する。
図13は端末装置500が起動してから行う初期動作であり、ST1100にて端末装置500は接続されているICカード600のICカード証明書300を取得する。その後、ユーザからの要求を待つ待機状態に遷移する。ICカード証明書取得プロセスST1100については後述する。
図14は、端末装置500がユーザからの要求を受けて、サーバ100からライセンス200を取得する際の処理の流れについて示している。まずサーバ100/ICカード600間でSACを確立するSAC確立プロセスST1200を行い、SAC上でサーバ100からライセンス200を取得するライセンス取得プロセスST1201を行う。SAC確立プロセスST1200については後述するが、ライセンス取得プロセスST1201については一般的な方法を用いるため、詳細については説明しない。
次に各プロセスの説明を行う。まず、ICカード証明書取得プロセスST1100について説明し、SAC確立プロセスST1200について説明する。
<1>ICカード証明書取得プロセスST1100
図15を参照して、ICカード証明書取得プロセスST1100について説明する。まず端末装置500は起動後に、接続されているICカードの識別子を取得するため、ST1300にて端末装置500の制御部506は、ICカードIDを要求するコマンドAPDU1000の作成をメッセージ処理部504へ指示する。メッセージ処理部504は、コマンドヘッダ1001のINS領域にICカードID取得要求であることを示すINS値(30)を格納することでコマンドAPDU1000を生成し、制御部506へ戻す。制御部506は、生成したコマンドAPDU1000を、ICカード通信部508を介してICカード600へ送信する。
ST1301にてICカード600の制御部603は、通信部604から受信したコマンドAPDUを取得したのち、メッセージ処理部602へセットする。メッセージ処理部602は、コマンドAPDUのコマンドヘッダに格納されたINS値から本コマンドがコマンドAPDU1000であると判定し、制御部603へ通知する。制御部603はICカードID記憶部601からICカードIDを取得し、「正常終了」を示すステータスコードとICカードIDをメッセージ処理部602へセットし、レスポンスAPDU1010の生成を指示する。メッセージ処理部602は、セットされたステータスコード、およびICカードIDをペイロード1011へ格納することでレスポンスAPDU1010を生成し、制御部603へ戻す。制御部603は生成したレスポンスAPDU1010を、通信部604を介して端末装置500に対して送信する。
ST1302にて端末装置500の制御部506は、ICカード通信部508から受信したレスポンスAPDU1010を取得し、メッセージ処理部504へセットした後、ICカードIDを取得する。メッセージ処理部504は、ペイロード1011に格納されたステータスコードが「正常終了」である場合、格納されているICカードIDを取得し、制御部506に戻す。ステータスコードが「エラー」である場合には、その旨を制御部506へ通知する。制御部506は、画面等を通じてユーザへエラー通知を行う。
制御部506は、取得したICカードIDに対応するICカード証明書300が、ICカード証明書記憶部505に格納されているか判定する。ICカードIDに対応するデジタル証明書300を保持していない場合にはST1303にてST1304へ進み、ICカード600からICカード証明書300を取得する。保持している場合には、ST1303にてICカード証明書取得プロセスST1100を終了する。
ST1304にて端末装置500は、制御部506がメッセージ処理部504へ取得したICカードIDをセットし、ICカード証明書取得要求のコマンドAPDU1020を作成させる。メッセージ処理部504は、コマンドヘッダ1021のINS領域にICカード証明書要求であることを示す値(32)を格納し、データ領域712へICカードIDを格納したコマンドAPDU1020を制御部506に戻す。制御部506は、生成したコマンドAPDU1020を、ICカード通信部508を介してICカード600に対して送信する。
ST1305にてICカード600の制御部603は、通信部604から受信したコマンドAPDUを取得し、メッセージ処理部602にセットする。メッセージ処理部602は、セットされたコマンドAPDUにおけるコマンドヘッダのINS値をチェックし、ICカード証明書取得要求であると判定し、その結果を制御部603へ通知すると共に、データ領域712に格納されたICカードIDを制御部603へ戻す。
制御部603では、取得したICカードIDと、ICカードID記憶部601に格納されたICカードIDが一致するか判定する。一致する場合、ICカード証明書記憶部606からICカード証明書300を取得し、「正常終了」を示すステータスコードと共にメッセージ処理部602へセットし、レスポンスAPDU1030の作成を指示する。メッセージ処理部602は、セットされたステータスコードおよびICカード証明書をペイロード1031に格納し、生成したレスポンスAPDU1030を制御部603に戻す。制御部603は、生成したレスポンスAPDU1030を、通信部604を介して端末装置500へ送信する。
ST1306にて端末装置500の制御部506は、ICカード通信部508から取得したレスポンスAPDU1030をメッセージ処理部504にセットし、ICカード証明書300を取得する。メッセージ処理部504は、ペイロード1031に格納されたステータスコードが「正常終了」である場合にはICカード証明書300を取得し、制御部506へ戻す。制御部506は、取得したICカード証明書300を、ST1302にて取得したICカードIDと関連付けてデジタル証明書記憶部505へ格納する。ステータスコードが「エラー」である場合には、メッセージ処理部504はその旨を制御部506へ通知し、制御部506は画面等を通じてユーザへエラーを通知する。
以上の処理を行うことにより、端末装置500はICカード600のICカード証明書300を保持することができる。
次にサーバ100との通信を行う際に行われるSAC確立処理について、図16〜18を参照して説明する。
<2>SAC確立プロセスST1200
端末装置500は、ICカード600に対しライセンス取得等の要求を行うにあたり、サーバ100/ICカード600間でSAC確立を要求する。サーバ100/ICカード600間でのSAC確立の手順を以下に説明する。
ST1400にて端末装置500の制御部506は、接続するサーバ100のURL(Uniform Resource Locator)をメッセージ処理部504にセットし、ICカード600へのSAC確立要求であるコマンドAPDU1040の作成を指示する。メッセージ処理部504は、コマンドヘッダ1041のINS領域にSAC確立要求であることを示す値(ここでは34)を格納し、データ領域712に接続するサーバURLを格納し、生成したコマンドAPDU1040を制御部506へ戻す。制御部506は、取得したコマンドAPDU1040をICカード通信部508を介してICカード600へ送信する。
ST1401にてICカード600の制御部603は、通信部604から取得したコマンドAPDUをメッセージ処理部602へセットする。メッセージ処理部602は、セットされたコマンドAPDU1040のコマンドヘッダ1041に格納されたINS値から、SAC確立要求であると判定し、判定結果とデータ領域712に格納されたサーバURLを制御部603へ戻す。制御部603は、取得したサーバURLをサーバURL記憶部608に格納し、次にSAC処理に必要になる乱数Cを新たに生成する。
ST1402にて制御部603は、ICカード証明書記憶部606からICカード証明書のサイズを取得し、前記生成した乱数Cと共にメッセージ処理部602へセットし、チャレンジメッセージ900の生成を指示する。メッセージ処理部602は、メッセージID901にチャレンジメッセージのメッセージIDを格納し、メッセージ長902に乱数のサイズとセットされたICカード証明書のサイズを合計した値を格納し、乱数903にはセットされた乱数Cを格納する。証明書904にはICカード証明書を格納せず、メッセージ処理部602は生成されたチャレンジメッセージ900を制御部603へ戻す。
次にST1403にて、制御部603はST1401にて取得したサーバURLに対応するサーバ証明書300がサーバ証明書記憶部605に格納されているか判定する。格納されている場合、対応するサーバ証明書300を取得し、証明書シリアル番号302を取得する。次に制御部603は、「正常終了」を示すステータスコードと、サーバ証明書300の保持判定結果と、保持している場合にはサーバ証明書300のシリアル番号302と、前記生成したチャレンジメッセージ900とをメッセージ処理部602へセットし、レスポンスAPDU1050の生成を指示する。
メッセージ処理部602は、ペイロード1051へセットされたステータスコードを格納し、ICカード証明書300を結合する旨をICカード証明書結合指示フラグに格納し、サーバ証明書300の保持判定結果をサーバ証明書保持フラグに格納し、サーバ証明書保持フラグが「真」であれば、セットされたサーバ証明書の証明書シリアル番号302をサーバ証明書シリアル番号に格納する。ここで、サーバ証明書保持フラグが「偽」であれば前記証明書シリアル番号302は格納しないか、無意味な値で領域を埋める等の処理を行う。最後にセットされたICカード証明書が格納されていないチャレンジメッセージ900を格納することでレスポンスAPDU1050を作成し、制御部603へ戻す。制御部603は、生成したレスポンスAPDU1050を、通信部604を介して端末装置500へ送信する。
ST1404にて端末装置500の制御部506は、ICカード通信部508から取得したレスポンスAPDU1050をメッセージ処理部504へセットし、ステータスコードの取得を行う。ステータスコードが「エラー」である場合には、画面等を通じてユーザへエラーを通知する。「正常終了」である場合、制御部506は、ICカード証明書結合指示フラグと、ICカード証明書300が格納されていないチャレンジメッセージ900と、サーバ証明書保持フラグとを取得する。次にサーバ証明書保持フラグが「真」である場合には、新たにサーバ証明書シリアル番号を取得する。
ST1405にて制御部506は、前記取得したICカード証明書結合指示フラグをチェックし、「真」であればST1100にて取得したICカードIDに対応したICカード証明書300をICカード証明書記憶部505から取得し、前記取得したチャレンジメッセージ900の証明書904に格納する。
次にST1406にて制御部506は、前記修正したチャレンジメッセージ900を、通信部501を介してサーバ100へ送信する。
ST1407にてサーバ100は、ST404の処理と同様に、保持する認証局の公開鍵にてICカード証明書300の署名検証を行う。
ST1408にてICカード証明書300の検証が失敗した場合、ステータスメッセージ920生成し、端末装置500へ送信する。ここで、ステータスメッセージ920のステータスコード923には、ICカード証明書検証失敗を示すエラー値が格納される。
ST1409にてステータスメッセージ920を受信した端末装置500の制御部506は、通信部501からステータスメッセージ920を取得し、メッセージ処理部504へセットし、メッセージIDを取得する。取得したメッセージIDがステータスメッセージであった場合、制御部506はメッセージ処理部504に対し、ステータスメッセージ転送のコマンドAPDU1080を生成するように指示する。メッセージ処理部504は、コマンドAPDU1080のコマンドヘッダ1081のINS領域に、ステータスメッセージ転送であることを示す値(38)を格納し、データ領域712にセットされたステータスメッセージ920を格納し、生成したコマンドAPDU1080を制御部506へ戻す。制御部506は、取得したコマンドAPDU1080を、ICカード通信部508を介してICカード600へ送信する。
ST1410にてICカードの制御部603は、通信部604から取得したコマンドAPDUをメッセージ処理部602へセットする。メッセージ処理部602は、セットされたコマンドAPDUのコマンドヘッダに格納されているINS値から、ステータスメッセージの転送であると判断する。次にデータ領域712に格納してあるステータスメッセージ920を取得し、コマンドの種別を制御部604へ通知すると共にステータスメッセージ920を制御部604へ戻す。制御部604は、取得したステータスメッセージ920をメッセージ処理部602へセットし、格納してあるステータスコード923を取得する。制御部603は、ステータスコードを判定し、「エラー」であることを検出すると、サーバURL記憶部608で記憶しているサーバURLを削除する。次に「エラー」を示すステータスコードをメッセージ処理部602へセットし、レスポンスAPDU1090の作成を指示する。メッセージ処理部602は、セットされたステータスコードをペイロード1091へ格納し、生成したレスポンスAPDU1090を制御部603へ戻す。制御部603は、生成したレスポンスAPDU1090を、通信部604を介して端末装置500へ送信する。
端末装置500の制御部506は、ICカード通信部508から受信したレスポンスAPDU1090を取得し、メッセージ処理部504へセットし、ステータスコードを取得する。制御部506は、取得したステータスコードを判定し「エラー」であると判定された場合、画面等を通じてユーザへエラーを通知し、サーバ100との通信を切断する。
ST1408にてICカード証明書300の署名検証に成功した場合には、ST1411へ進み、ST407の処理と同様にDH−P1Vを生成する。引き続いてST1412にて408の処理と同様に、受信したチャレンジメッセージ900の乱数903と、ST1411にて生成したDH−P1Vに対するデジタル署名を生成し、鍵交換メッセージ910を生成する。
次にST1413にて、ST405の処理と同様にサーバ100における乱数Sを生成し、ST1414にて前記生成した乱数Sを乱数903に、サーバ100のサーバ証明書300を証明書904に格納することでチャレンジメッセージ900を生成する。
ST1415では、ST1412およびST1414にて生成したチャレンジメッセージ900および鍵交換メッセージ910を、端末装置500へ送信する。
ST1416にて端末装置500の制御部506は、受信した2つのメッセージをメッセージ処理部504へセットし、メッセージIDを取得、判別することでチャレンジメッセージ900を選択する。
次に制御部506は、シリアル番号記憶部507へ格納したST1404にて受信したサーバ証明書保持フラグをチェックする。サーバ証明書保持フラグが「真」である場合、制御部506はチャレンジメッセージ900をメッセージ処理部504へセットし、サーバ証明書300を取得する。制御部506は、取得したサーバ証明書300の証明書シリアル番号302と、ST1404にて取得し、シリアル番号記憶部507へ格納しているシリアル番号と比較する。比較結果が一致する場合、制御部506はチャレンジメッセージ900をメッセージ処理部504へセットし、サーバ証明書300の分離を指示する。メッセージ処理部504は、セットされたチャレンジメッセージ900の証明書904からサーバ証明書300を分離し、メッセージ長902に乱数のサイズを格納し、修正したチャレンジメッセージ900を制御部506へ戻す。サーバ証明書保持フラグが「偽」、もしくは証明書シリアル番号の比較が一致しない場合、チャレンジメッセージ900からサーバ証明書300の分離処理は行わない。
続いてST1417にて制御部506は、鍵交換メッセージ910と、サーバ証明書300を分離した/もしくは分離していないチャレンジメッセージ900と、サーバ証明書300を分離したか否かを示すサーバ証明書分離フラグとをメッセージ処理部504へセットし、サーバ応答の転送を行うコマンドAPDU1060の作成を指示する。
メッセージ処理部504は、コマンドAPDU1060のコマンドヘッダ1061のINS領域に、サーバ応答の転送であることを示す値(36)を格納し、データ領域712には、セットされたサーバ証明書分離フラグと、サーバ証明書300を分離した/もしくは分離していないチャレンジメッセージ900と、鍵交換メッセージ910とを格納した後、生成したコマンドAPDU1060を制御部506へ戻す。制御部506は生成したコマンドAPDU1060を、ICカード通信部508を介してICカード600へ送信する。
ST1418にてICカード600の制御部603は、通信部604から受信したコマンドAPDUを取得し、メッセージ処理部602へセットする。メッセージ処理部602は、セットされたコマンドAPDUのコマンドヘッダ1061に格納されたINS値から、コマンドAPDU1060であると判断し、コマンド種別の通知と共にデータ領域712に格納されているサーバ証明書分離フラグと、チャレンジメッセージ900と、鍵交換メッセージ910とを制御部603へ戻す。
制御部603は、取得したサーバ証明書分離フラグをチェックし、分離済みであればST1421へ、そうでなければST1419へ進む。
サーバ証明書300がチャレンジメッセージ900に格納されている場合、ST1419にてST409と同様にサーバ証明書300の署名検証を行う。まず制御部603は、チャレンジメッセージ900をメッセージ処理部602へセットし、サーバ証明書300を取得する。次に制御部603はサーバ証明書300を暗号処理部607へセットし、認証局デジタル署名309の署名検証を指示する。
ST1420にて署名検証が成功した場合、制御部603は、サーバURL記憶部608に格納されているサーバURLと、メッセージ処理部602から取得したサーバ証明書を関連付けてサーバ証明書記憶部605へ格納し、ST1421へ進む。対して署名検証が失敗した場合、制御部604はサーバ証明書300の認証局デジタル署名309が正しくない旨のステータスコードをメッセージ処理部602へセットし、レスポンスAPDU1070の作成を指示する。メッセージ処理部602は、ペイロード1071へセットされたステータスコードを格納し、生成されたレスポンスAPDU1070を制御部603へ戻す。但し、鍵交換メッセージ910はセットされていないためペイロード1071のメッセージ領域には何も格納されておらず、レスポンスAPDUの構造的にはレスポンスAPDU1090と同様となる。制御部603は、前記生成したレスポンスAPDU1070を、通信部604を介して端末装置500へ送信する。
端末装置500は、ICカード通信部508を介して取得したレスポンスAPDU1070をメッセージ処理部504へセットし、ステータスコードを取得する。制御部506は取得したステータスコードを判定することによりエラーが発生したことを検出し、画面等を通じてユーザへエラー通知をすると共に、サーバとの通信を切断する。
次にST1421にてST410と同様に鍵交換メッセージ910に格納されたデジタル署名の検証を行う。まず、制御部602はメッセージ処理部602へ鍵交換メッセージ910をセットし、DH−P1V913および署名914を取得する。続いて、ST1401にて生成した乱数CとDH−P1V913、署名914を暗号処理部607へセットし、署名検証を指示する。
ST1422にてST1421の署名検証に成功した場合、ST1423へ進み、失敗した場合にはST1420と同じ方法で端末装置500へエラーを通知する。
次にST1423にてICカード600は、サーバ100へ鍵交換メッセージ910を送信するためST411と同様にDH−P1Vを計算する。まず制御部603は、乱数Cを暗号処理部607へセットし、DH−P1Vを生成させ、結果を取得する。
次にST1424にて制御部603はST412と同様にデジタル署名の生成を行う。まず制御部603は、ST1418にて受信したチャレンジメッセージ900をメッセージ処理部602へセットし、乱数903を取得する。次に、ST1423にて生成したDH−P1Vと、前記取得した乱数903を暗号処理部607へセットし、デジタル署名を生成し取得する。次に制御部603は、ST1423にて生成したDH−P1Vと、ここで生成したデジタル署名をメッセージ処理部602へセットし、鍵交換メッセージ910の作成を指示する。メッセージ処理部602は、鍵交換メッセージ910であることを示す値をメッセージID911に格納し、セットされたDH−P1Vとデジタル署名の合計サイズをメッセージ長912に格納し、セットされたDH−P1VをDH−P1V913に格納し、セットされたデジタル署名を署名914に格納することで鍵交換メッセージ910を生成した後、制御部603へ戻す。
ST1425にて制御部603は、鍵交換メッセージ910をサーバ100へ送信する前に、ST414と同様に通信用鍵を生成する。制御部603は、乱数CおよびST1421にてサーバ100から受信した鍵交換メッセージ910から取得したDH−P1V913を、暗号処理部607へセットし、通信用鍵の生成を指示する。制御部603は生成した通信用鍵を暗号処理部607から取得し、通信用鍵記憶部609へ格納する。
次にST1426にて制御部603は、「正常終了」であることを示すステータスコードと、ST1424にて生成した鍵交換メッセージ910とをメッセージ処理部602へセットし、レスポンスAPDU1070の作成を指示する。メッセージ処理部602は、セットされたステータスコードおよび鍵交換メッセージ910をペイロード1071へ格納し、レスポンスAPDU1070を生成し制御部603へ戻す。制御部603は生成したレスポンスAPDU1070を、通信部604を介して端末装置500へ送信する。
ST1427にて端末装置500の制御部506は、ICカード通信部508から受信したレスポンスAPDU1070を取得し、メッセージ処理部504へセットし、ステータスコードを取得する。ステータスコードが「エラー」であった場合には、画面等を通じてエラー通知を行い、サーバとの通信を切断する。対して「正常終了」であれば、引き続き鍵交換メッセージ910を取得し、サーバ100へ送信する。
ST1428にてサーバ100は413と同様に、受信した鍵交換メッセージに含まれる署名914の署名検証を行う。検証が成功すればST1430、失敗すればST1408と同様にエラーのステータスコードを格納したステータスメッセージ920を端末装置500へ送信する。それに対する端末装置500、ICカード600における処理は、ST1409およびST1410と同様である。
ST1430にてサーバ100は、ST415と同様に通信用鍵の生成を行う。ここで生成された通信用鍵は、ST1425にてICカード600にて生成された通信用鍵と同一の値となるため、以後の通信ではデータを前記通信用鍵で暗号化することでセキュアな通信を行うことができる。
通信鍵の生成が完了した後、ST1431にてサーバ100は通信鍵生成が完了したことをICカード600へ通知するためのステータスメッセージ920を作成し、送信する。送信するステータスメッセージ920のステータスコード923には「正常終了」を意味する値が格納される。
ST1432にて端末装置500の制御部506は、受信したメッセージを通信部501から取得したのちメッセージ処理部504へセットし、メッセージIDを取得する。ここで制御部506は、メッセージIDから受信したメッセージがステータスメッセージ920と判断し、メッセージ処理部504にステータスメッセージ転送のコマンドAPDU1080の作成を指示する。メッセージ処理部504は、コマンドヘッダ1081のINS領域に、ステータスメッセージの転送である旨を示す値(38)を格納し、データ領域712に、セットされたステータスメッセージ920を格納し、生成したコマンドAPDU1080を制御部506へ戻す。制御部506は生成したコマンドAPDU1080を、ICカード通信部508を介してICカード600へ送信する。
ST1433にてICカードの制御部603は、通信部604から受信したコマンドAPDUを取得し、メッセージ処理部602へセットする。メッセージ処理部602では、セットされたコマンドAPDUのコマンドヘッダに格納されたINS値から、本コマンドがステータスメッセージの転送コマンドであると判定し、そのコマンド種別とデータ領域712から取得したステータスメッセージ920を制御部603へ戻す。
制御部603は、コマンド種別により取得したメッセージがステータスメッセージ920であると判定した後、再度ステータスメッセージ920をメッセージ処理部602へセットし、ステータスコード923を取得する。
次にST1434においてステータスコード923の判定を行い、「エラー」であった場合には通信鍵記憶部609に格納した通信用鍵を削除する。次に制御部603はメッセージ処理部602へ前記取得したステータスコード923をセットし、レスポンスAPDU1090の作成を指示する。メッセージ処理部602は、セットされたステータスコード923をペイロード1091へ格納し、作成したAPDU1090を制御部603へ戻す。制御部603は生成したレスポンスAPDU1090を、通信部504を介して端末装置500へ送信する。
端末装置500の制御部506は、受信したレスポンスAPDU1090をICカード通信部508から取得し、メッセージ処理部504へセットし、ステータスコードを取得する。制御部506は、取得したステータスコードが「エラー」である場合、画面等を通じてユーザへ通知し、サーバ100との通信を切断する。対して「正常終了」である場合、引き続きサーバ100からのライセンス取得等の処理を開始する。但し、これらの処理は一般的な方法でよく、ここで詳細については説明しない。
以上の処理により、サーバ100/ICカード600間でSACが確立され、ライセンス取得等がセキュアに行える。上記処理を繰り返し利用することにより、サーバ証明書300およびICカード証明書300は端末装置500/ICカード600間において1回しか送受信されない。従って、通信するデータ量が少なくなり、結果として端末装置500はICカード600からより高速に応答を取得することが可能となる。
なお本発明の実施の形態では、ST1100のICカード証明書取得プロセスにおいて、ICカードIDに関連付けられたICカード証明書300を端末装置500が保持していない場合にはICカード600から取得するとしたが、ICカード証明書300を揮発性メモリへ格納し、電源ONやICカード挿入のタイミングで毎回ICカード証明書300を取得しても良い。
また、端末装置500は、前記証明書300をチャレンジメッセージ900から取得してもよいし、当該カードからではなく外部メディアやサーバ等の機器から取得してもよい。
また、予めサーバ100がICカード600のICカード証明書300を保持しておき、チャレンジメッセージ900に証明書の変わりにICカードの識別情報を格納しておき、それをもとにサーバ100で使用するICカード証明書300を選択してもよい。
なお本発明の実施の形態では、レスポンスAPDU1050のICカード証明書結合指示フラグによって、ICカード600が端末装置500へ結合を指示したが、端末装置500がメッセージを解釈する等により判断してもよい。
また、端末装置500は結合する際にICカード証明書300を保持していない場合、その段階でICカード600からICカード証明書300を取得し、保持してもよい。
また、端末装置500が保持するICカード証明書300のシリアル番号をICカード600へ通知し、ICカード600はシリアル番号の新旧によりICカード証明書300のチャレンジメッセージ900への格納を制御し、端末装置500へ格納済みであることを通知してもよい。
なお本発明の実施の形態では、サーバ100からのチャレンジメッセージ900からサーバ証明書300を分離するか否かは、ICカード600からSAC確立時に通知されたサーバ100の証明書シリアル番号302によって行ったが、証明書の新旧が分かる情報であればよい。また単純なフラグであってもよい。
また、端末装置500は起動時やICカード挿入時に、ICカード600が保持するサーバ証明書300のリストを取得し、それをもとに制御しても良い。
また、ICカード600は、サーバ100のURLに対応するサーバ証明書300を保持する場合、とりあえず端末装置500へサーバ証明書300の分離を指示し、デジタル署名の検証に失敗した場合には、再度端末装置500から一時キャッシュしておいたサーバ証明書300を取得してもよい。
また、端末装置500は、通信ログ等からICカード600がサーバ証明書300を保持していると思われる場合に、サーバ証明書300を分離してもよい。
なお本発明の実施の形態では、ICカード600が保持するサーバ証明書300は、証明書全体を保持する必要はなく、必要な情報、例えば証明書シリアル番号302、有効期限305、公開鍵307とサーバを識別する情報などを保持しておけばよい。
また前記サーバを識別する情報はST1400にてサーバURLを用いる場合を説明したが、サーバ証明書300に格納されている発行者304や、URLのハッシュ値などのサーバが識別でき情報であればよい。
なお本発明の実施の形態では、SACを確立する通信相手をサーバ100としたが、端末装置500が内蔵するセキュア機能部と確立してもよい。また、ホームネットワーク等の他機器と確立してもよい。
本発明にかかるコンテンツ再生装置は、ICカード/端末装置間におけるデジタル証明書の送受信を必要最低限な場合にのみ行う機能を有し、コンテンツ配信サービスにおけるコンテンツ配信サービスにおけるコンテンツ再生装置として有用である。
本発明の実施の形態におけるコンテンツ配信システムの全体図 本発明の実施の形態におけるライセンス200の構成図 本発明の実施の形態におけるデジタル証明書300の構成図 本発明の実施の形態におけるSAC確立の処理フロー図 本発明の実施の形態における端末装置500の構成図 本発明の実施の形態におけるICカード600の構成図 本発明の実施の形態における端末装置500/ICカード600間におけるコマンドAPDUの構成図 本発明の実施の形態における端末装置500/ICカード600間におけるレスポンスAPDUの構成図 本発明の実施の形態における各種メッセージの構成図 本発明の実施の形態における各種コマンド/レスポンスAPDUの構成図 本発明の実施の形態における各種コマンド/レスポンスAPDUの構成図 本発明の実施の形態における各種コマンド/レスポンスAPDUの構成図 本発明の実施の形態における端末装置500の起動時における処理フロー図 本発明の実施の形態におけるユーザの要求処理フロー図 本発明の実施の形態におけるICカード600のICカード証明書取得フロー図 本発明の実施の形態におけるサーバ100/ICカード600間のSAC確立処理フロー図 本発明の実施の形態におけるサーバ100/ICカード600間のSAC確立処理フロー図 本発明の実施の形態におけるサーバ100/ICカード600間のSAC確立処理フロー図
符号の説明
100 コンテンツ配信サーバ
300 デジタル証明書
302 証明書シリアル番号
307 公開鍵
309 認証局デジタル署名
500 端末装置
501 通信部
504 メッセージ処理部
505 デジタル証明書記憶部
506 制御部
507 シリアル番号記憶部
508 ICカード通信部
600 ICカード
601 ICカードID記憶部
602 メッセージ処理部
603 制御部
604 通信部
605 サーバ証明書記憶部
606 ICカード証明書記憶部
607 暗号処理部
608 サーバURL記憶部

Claims (13)

  1. コンテンツを配信するコンテンツ配信サーバと、前記コンテンツを利用する第一の端末装置と、第一の端末装置と接続し前記コンテンツ配信サーバとセキュアな通信を行う第二の端末装置と、から構成されるコンテンツ配信システムであって、
    前記第一の端末装置は、
    外部と通信を行う第一の通信手段と、
    デジタル証明書を保持する第一のデジタル証明書保持手段と、
    メッセージを変更するメッセージ変更手段とを保持し、
    前記第二の端末装置は、
    前記第一の端末装置と通信する第二の通信手段と、
    メッセージを作成、解釈するメッセージ処理部とを保持し、
    前記第一の端末装置は、前記第一の通信手段が受信した前記第二の端末装置のメッセージへ前記第二の端末装置のデジタル証明書を格納する変更を、メッセージ変更手段にて行い、前記コンテンツ配信サーバへ転送することを特徴とする、コンテンツ配信システム。
  2. 前記第一の端末装置は、
    接続された前記第二の端末装置のデジタル証明書を取得するデジタル証明書取得手段を保持し、
    前記第二の端末装置のデジタル証明書を前記第一のデジタル証明書保持手段にて保持していない場合に、前記デジタル証明書取得手段にて取得することを特徴とする、
    請求項1記載のコンテンツ配信システム。
  3. 前記デジタル証明書取得手段は、インターネットに接続された他端末から前記デジタル証明書を取得することを特徴とする、
    請求項2記載のコンテンツ配信システム。
  4. 前記デジタル証明書取得手段は、接続されたリムーバブルメディアから前記デジタル証明書を取得することを特徴とする、
    請求項2記載のコンテンツ配信システム。
  5. 前記デジタル証明書取得手段は、前記第二の端末装置から前記第一の通信手段が受信したメッセージから前記デジタル証明書を取得することを特徴とする、
    請求項2記載のコンテンツ配信システム。
  6. 前記第一の端末装置は前記第二の端末装置を識別する端末装置識別手段を保持し、
    前記端末装置識別手段にて識別した前記第二の端末装置のデジタル証明書を、前記デジタル証明書格納手段から取得し、前記メッセージ変更手段によりメッセージに格納することを特徴とする、
    請求項1記載のコンテンツ配信システム。
  7. 前記第二の端末装置はICカードであることを特徴とする、
    請求項1記載のコンテンツ配信システム。
  8. 前記第一の通信手段および第三の通信手段はISO7816準拠の通信プロトコルに従って通信することを特徴とする、
    請求項1記載のコンテンツ配信システム。
  9. 前記第一の端末装置は、
    前記第一の通信手段にて受信したコンテンツ配信サーバから前記第二の端末装置へのメッセージを受信し、
    前記メッセージ変更手段にて前記コンテンツ配信サーバのデジタル証明書を分離し、
    前記第一の通信手段にて前記第二の端末装置へメッセージを送信することを特徴とする、
    請求項1記載のコンテンツ配信システム。
  10. 前記変更手段は前記第二の端末装置からの通知された際に行われることを特徴とする、
    請求項9記載のコンテンツ配信システム。
  11. 前記通知は、前記第二の端末装置が保持する前記コンテンツ配信サーバのデジタル証明書の新旧が判断できる情報であることを特徴とする、
    請求項10記載のコンテンツ配信システム。
  12. 前記通知は、前記第二の端末装置が保持する前記コンテンツ配信サーバのデジタル証明書の証明書シリアル番号であることを特徴とする、
    請求項11記載のコンテンツ配信システム。
  13. 前記第二の端末装置は、前記コンテンツ配信サーバのデジタル証明書を格納する第二のデジタル証明書保持手段を保持し、
    通信にて取得した前記コンテンツ配信サーバのデジタル証明書を前記第二のデジタル証明書保持手段へ格納することを特徴とする、
    請求項1記載のコンテンツ配信システム。
JP2004041252A 2004-02-18 2004-02-18 コンテンツ配信システム Pending JP2005236505A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004041252A JP2005236505A (ja) 2004-02-18 2004-02-18 コンテンツ配信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004041252A JP2005236505A (ja) 2004-02-18 2004-02-18 コンテンツ配信システム

Publications (1)

Publication Number Publication Date
JP2005236505A true JP2005236505A (ja) 2005-09-02

Family

ID=35019035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004041252A Pending JP2005236505A (ja) 2004-02-18 2004-02-18 コンテンツ配信システム

Country Status (1)

Country Link
JP (1) JP2005236505A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007129320A (ja) * 2005-11-01 2007-05-24 Sony Corp 通信システム、通信装置及び通信方法、並びにコンピュータ・プログラム
JP2008079091A (ja) * 2006-09-22 2008-04-03 Fujitsu Ltd 電子証明書を用いる認証システム
JP2012043144A (ja) * 2010-08-18 2012-03-01 Casio Comput Co Ltd サーバ・ベース・コンピューティング・システムおよびプログラム
JP2020074578A (ja) * 2015-09-21 2020-05-14 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 情報を登録および認証する方法およびデバイス

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007129320A (ja) * 2005-11-01 2007-05-24 Sony Corp 通信システム、通信装置及び通信方法、並びにコンピュータ・プログラム
JP2008079091A (ja) * 2006-09-22 2008-04-03 Fujitsu Ltd 電子証明書を用いる認証システム
JP2012043144A (ja) * 2010-08-18 2012-03-01 Casio Comput Co Ltd サーバ・ベース・コンピューティング・システムおよびプログラム
JP2020074578A (ja) * 2015-09-21 2020-05-14 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 情報を登録および認証する方法およびデバイス
US11218464B2 (en) 2015-09-21 2022-01-04 Advanced New Technologies Co., Ltd. Information registration and authentication method and device

Similar Documents

Publication Publication Date Title
US11461487B2 (en) Method for strongly encrypting .ZIP files
US20030210789A1 (en) Data transmission links
US20090144565A1 (en) Method and system for asymmetrically encrypting .ZIP files
EP2461564A1 (en) Key transport protocol
US20010029581A1 (en) System and method for controlling and enforcing access rights to encrypted media
CN109981255B (zh) 密钥池的更新方法和系统
GB2404126A (en) Secure communications using a secret key valid for a certain period and verified using a time stamp
JP2005515701A6 (ja) データ伝送リンク
WO2005008950A1 (en) Secure seed generation protocol
JP2003530635A (ja) 機密情報を安全に記憶するシステム及び方法と、このシステム及び方法で使用されるデジタルコンテンツ配信装置及びサーバー
CN104836784A (zh) 一种信息处理方法、客户端和服务器
JP2022117456A (ja) ハードウェアセキュリティモジュールを備えたメッセージ伝送システム
JP3889004B2 (ja) デジタルコンテンツ配信システム
JPH11355268A (ja) 情報処理装置および方法、情報処理システム、並びに提供媒体
TW200803392A (en) Method, device, server arrangement, system and computer program products for securely storing data in a portable device
JP2005236505A (ja) コンテンツ配信システム
CN112769783B (zh) 数据传输方法及云服务器、接收端和发送端
JP2005020623A (ja) コンテンツ配信サーバ及びそのプログラム、ライセンス発行サーバ及びそのプログラム、コンテンツ復号端末及びそのプログラム、並びに、コンテンツ配信方法及びコンテンツ復号方法
WO2014005534A1 (zh) 一种从数据提供方传输数据到智能卡的方法和系统
CN112689276B (zh) 蓝牙耳机固件更新处理方法
JP5354656B2 (ja) 暗号通信システム、暗号通信方法、送信装置および受信装置
Yeun et al. Secure software download for programmable mobile user equipment
KR100959380B1 (ko) 플래시 컨텐츠 제공 방법
CN116192368A (zh) 数据处理方法、装置及相关设备
CN110572256A (zh) 基于非对称密钥池和隐式证书的抗量子计算非对称密钥管理方法和系统