JP2004304227A - 公開鍵証明書検証システム - Google Patents
公開鍵証明書検証システム Download PDFInfo
- Publication number
- JP2004304227A JP2004304227A JP2003091206A JP2003091206A JP2004304227A JP 2004304227 A JP2004304227 A JP 2004304227A JP 2003091206 A JP2003091206 A JP 2003091206A JP 2003091206 A JP2003091206 A JP 2003091206A JP 2004304227 A JP2004304227 A JP 2004304227A
- Authority
- JP
- Japan
- Prior art keywords
- public key
- certificate
- key certificate
- mobile terminal
- attribute
- 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
Links
Images
Abstract
【課題】大量のリソースを必要とせず、公開鍵証明書の有効性の検証をオフラインで実現することができる技術を提供する。
【解決手段】ICカード20aは、公開鍵証明書Caに対応する属性証明書AaをAAサーバ装置40から取得し、ICカード20aの書き換え可能な領域に書き込む。 ICカード20aは、公開鍵証明書Caおよび属性証明書書Aaを携帯端末10bへ送信する。ICカード20bは、公開鍵証明書Caおよび属性証明書書Aaを受信し、受信された前記属性証明書Aaに記録されている有効期限を用いて、公開鍵証明書Caの有効性を検証する。
【選択図】 図1
【解決手段】ICカード20aは、公開鍵証明書Caに対応する属性証明書AaをAAサーバ装置40から取得し、ICカード20aの書き換え可能な領域に書き込む。 ICカード20aは、公開鍵証明書Caおよび属性証明書書Aaを携帯端末10bへ送信する。ICカード20bは、公開鍵証明書Caおよび属性証明書書Aaを受信し、受信された前記属性証明書Aaに記録されている有効期限を用いて、公開鍵証明書Caの有効性を検証する。
【選択図】 図1
Description
【0001】
【発明の属する分野】
本発明は、公開鍵証明書の有効性を検証するための技術に関する。
【0002】
【従来の技術】
公開鍵暗号技術において、秘密鍵(私有鍵)および公開鍵のペア(以後、「鍵ペア」という)の有効性を証明する証明書が公開鍵証明書である。受け取った公開鍵証明書の有効性の検証方法としては、公開鍵証明書が正当な第三者機関に発行されたものであることを検証したり、公開鍵証明書が改竄されていないことを公開鍵等を用いて検証する方法以外に、有効期限内の証明書であるか否かを判定する第1の方法と、失効した証明書であるか否かを判定する第2の方法がある。
【0003】
第1の方法では、現在時刻が公開鍵証明書に記録された有効期限内であるか否かを判定することになる。したがって、公開鍵証明書を有効とし続けるためには公開鍵証明書を更新し続ける必要がある。公開鍵証明書を更新する際には鍵ペアをも更新すべきであるから、第1の方法は、公開鍵証明書および鍵ペアが更新されることを前提としている。
【0004】
第2の方法には、OCSP(Online Certificate Status Protocol)レスポンダを用いる方法とダウンロードしたCRL(Certificate Revocation List)を用いる方法がある。前者の方法では、公開鍵証明書の検証時に、オンラインで、当該証明書が失効しているか否かをOCSPレスポンダ(サーバ)に問い合わせる。後者の方法では、予め定められたサーバから最新のCRLをネットワークを介して一定周期でダウンロードしておき、ダウンロードしたCRLを用いて公開鍵証明書が失効しているか否かを判定する(非特許文献1参照。)。
【0005】
【非特許文献1】
カーライル・アダムス,スティーブ・ロイド著,鈴木優一訳,「PKI−公開鍵インフラストラクチャの概念、標準、展開」ピアソンエディケーション,2000年7月15日発行,P105
【0006】
【発明が解決しようとする課題】
ところで、公開鍵証明書の有効性の検証をもって当該証明書を格納したIC(Integrated Circuit)カードの有効性の検証に代えることが行われている。この種のICカードの耐タンパー性を向上させるために、鍵ペアを書き換え不可能な記憶領域に書き込むことが考えられる。
【0007】
この場合、鍵ペアの更新が不可能となるから、公開鍵証明書の更新も無意味または不可能となる。公開鍵証明書が更新されないということは、有効期限が更新されないことを意味するから、有効期限を用いて検証する第1の方法の採用は不適当である。
【0008】
また、ICカードやPDA(Personal Digital Assistant)などの小型機器では、記憶や演算などの情報処理のために使用可能なリソースに限りがある。したがって、CRLを用いる方法の採用は困難である。OCSPを用いる方法であれば、そのような携帯機器でも採用可能である。しかし、OCSPを用いることができるのはインターネットと接続されているオンライン時のみである。つまり、公開鍵証明書の有効性をオフラインで検証する機会の多い小型機器については、上記の第2の方法を採用し難い。
【0009】
本発明は、上述した事情に鑑みて為されたものであり、大量のリソースを必要とせず、公開鍵証明書の有効性の検証をオフラインで実現することができる技術を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述した課題を解決するため、本発明は、秘密鍵を記憶した、記憶内容の書き換えが許容されていない第1の記憶手段と、公開鍵の正当性を証明する公開鍵証明書を記憶した第2の記憶手段と、第3の記憶手段と、前記公開鍵証明書に対応する属性証明書を予め定められたサーバ装置から取得し前記第3の記憶手段に書き込む更新手段と、前記公開鍵証明書および前記属性証明書を通信相手へ送信する送信手段とを有する第1の電子機器と、前記第1の電子機器から送信された前記公開鍵証明書および前記属性証明書を受信する受信手段と、前記受信手段により受信された前記属性証明書に記録されている有効期限を用いて、前記受信手段により受信された前記公開鍵証明書の有効性を検証する検証手段とを有する第2の電子機器とを有する公開鍵証明書検証システムを提供する。
【0011】
本発明によれば、前記第1の電気機器は、前記公開鍵証明書に対応する属性証明書を前記サーバ装置から取得し、前記第3の記憶手段に書き込む。また、前記第1の電気機器は、前記公開鍵証明書および前記属性証明書を通信相手へ送信する。
前記第2の電気機器は、前記第1の電子機器から送信された前記公開鍵証明書および前記属性証明書を受信し、受信された前記属性証明書に記録されている有効期限を用いて、前記受信手段により受信された前記公開鍵証明書の有効性を検証する。
【0012】
【発明の実施の形態】
以下、図面を参照して、この発明の実施形態について説明する。
[1.構成]
まず、本実施形態の構成について説明する。
[1.1.全体構成]
図1は、本発明の実施形態に係る通信システムの構成例を示す図である。図1に示されるように、この通信システムは、ICカード20aが装着された携帯端末10aと、ICカード20bが装着された携帯端末10bと、公開鍵証明書を発行する認証局(以下、「CA」(Certificate Authority)という)としてのCAサーバ装置40と、属性証明書を発行する属性認証局(以下、「AA」(Attribute Authority)という)としてのAAサーバ装置30と、インターネットや移動通信網から構成される通信ネットワーク50と、電子チケット等の電子バリューを携帯端末10a、10bに対して発行するインターネットショップサーバ60とを備えている。
なお、図1には、携帯端末10aと携帯端末10bとを図示しているが、携帯端末10aと携帯端末10bとの構成は同一であるため、以下の説明では、特に両者を区別する必要がない限り、各々を携帯端末10として説明する。また、同様に、ICカード20aとICカード20bとについても、必要がない限り、各々をICカード20として説明する。
【0013】
CAサーバ装置40と、AAサーバ装置30と、インターネットショップサーバ60とは、通信ネットワーク50のインターネットに接続されている。
携帯端末10は、図示せぬ基地局を介して通信ネットワーク50の移動網と接続されている。また、移動網は、図示せぬゲートウェイサーバを介してインターネットと接続されている。
【0014】
携帯端末10は、オンライン時には、インターネットショップサーバ60より電子バリューを購入したり、CAサーバ装置40に公開鍵証明書の有効性を問い合わせたり、AAサーバ装置30より属性証明書の発行を受ける。
また、携帯端末10は、オフライン時には、ICカード20に記憶されている電子バリューを、他の携帯端末10に譲渡する。
ここで、「オンライン時」とは、携帯端末10が、インターネットを介してCAサーバ装置40やAAサーバ装置30等の各種サーバ装置に接続されている状態をいう。
また、「オフライン時」とは、携帯端末10が、インターネットを介して各種サーバ装置に接続されていない状態をいう。本実施形態においては、オフライン時には、携帯端末10同士は、非接触ICカード技術による通信を用いて、ピアツーピアで電子バリューを譲渡する。
【0015】
[1.2.AAサーバ装置]
次に、AAサーバ装置30について説明する。
AAサーバ装置30は、一般的なWWW(World Wide Web)サーバ装置の機能を備えており、例えば、携帯端末10等の他の装置とHTTP(Hypertext Transfer Protocol)プロトコルに従って、データを送受する。AAサーバ装置30は、CPU(Central Processing Unit)と記憶部と通信インターフェースとを備えている。
【0016】
AAサーバ装置30の記憶部には、CPUに実行されることにより、以下の機能をAAサーバ装置30に実現させるためのプログラムが記憶されている。
(1)公開鍵証明書を内包した、属性証明書の発行を依頼するためのHTTPリクエストを、携帯端末10より受信したときに、公開鍵証明書の正当性を検証する機能。なお、属性証明書とは、詳細は後述するが、公開鍵証明書が発行された主体者の属性や権限を表すための証明書である。
(2)(1)の検証によって、公開鍵証明書が正当であると判定された場合に、当該公開鍵証明書と関連付けられた、1日限り有効な属性証明書を発行し、携帯端末10に送信する機能。
【0017】
次に、CAサーバ装置40について説明する。
CAサーバ装置40は、AAサーバ装置30と同様に、一般的なWWWサーバ装置の機能を備えており、他の装置とHTTPプロトコルに従って、データを送受する。
また、CAサーバ装置40は、CPUと記憶部と通信インターフェースとを備えている。
CAサーバ装置40の記憶部には、CPUに実行されることにより、公開鍵証明書を発行したり、CRLを送信する機能を実現させるためのプログラムが記憶されている。
【0018】
[1.3.携帯端末]
次に、図2を参照しつつ、携帯端末10の構成について説明する。携帯端末10は、携帯端末10の各部を制御するCPUと、操作に応じた情報をCPUに引き渡すための操作部と、データを表示する表示部と、無線通信を行う無線通信部と、無線通信用のアンテナと、プログラムを記憶するプログラムエリアとを備えている。さらに、携帯端末10は、ICカード20を装着するための装着部と、ICカード20とのデータの送受信を制御するIC用無線通信部と、電波を発信したり、ICカード20とデータを送受信するためのIC用アンテナとを備えている。
【0019】
プログラムエリアには、例えば、1日に1回という周期で、AAサーバ装置30に対して、属性証明書の発行を要求するためのHTTPリクエストを、無線通信部より送信するための属性証明書用プログラムが記憶されている。当該属性証明書用プログラムは、図示せぬサーバ装置より携帯端末10にダウンロードされて記憶される。また、この属性証明書用プログラムは、1日に1回タイマー起動されるようになっている。
また、プログラムエリアには、IC用アンテナより電波を発信し、他の携帯端末10に装着されたICカード20とデータを送受信するためのプログラムが記憶されている。
また、プログラムエリアには、HTTPプロトコルに従って、他の装置とデータを送受するためのプログラムが記憶されている。また、プログラムエリアには、図8に示されるシーケンスに従って、他の携帯端末10との間で、公開鍵暗号方式に基づく相互認証を行うためのプログラムや、携帯端末10から受信した属性証明書に記述されている有効期限の検証を行うためのプログラムや、当該検証を行った後に、ICカード20に記憶された電子バリューを、共通鍵暗号方式による暗号通信を用いて送信するためのプログラムが記憶されている。
【0020】
[1.4.ICカード]
次に、図2に示されるICカード20について説明する。
ICカード20は、非接触ICカードであり、CPUや、記憶領域や、入出力部を備えている。
入出力部は、携帯端末10とデータの授受を行う。
記憶領域には、記憶内容の書き換えが許容されていない記憶領域(以下、「書き換え不可な領域」という)と、記憶内容の書き換えが許容されている記憶領域(以下、「書き換え可能な領域」という)とが設けられている。
ここで、「書き換え不可な領域」とは、ICカード20の製造時に、当該記憶領域に書き込まれた記憶内容を、書き換えることができない領域をいう。
また、「書き換え可能な領域」とは、携帯端末10より送信されるデータを当該記憶領域書き込んだり、当該データで記憶されている記憶内容を書き換えたりすることができる領域をいう。
【0021】
ICカード20の書き換え不可な領域には、当該ICカード20の製造時に、公開鍵暗号方式における鍵ペア、及び、CAが発行した公開鍵証明書(Cert)が記憶される。これらは、ICカード20を識別するためのICカードIDが正当な情報であることを証明するためのものである。
また、ICカード20の書き換え可能な領域には、属性証明書や、インターネットショップサーバ60から受信した電子バリューが記憶される。
【0022】
図3には、公開鍵証明書のデータ構成を示す。
公開鍵証明書のデータ形式は、X.509形式に従っている。
図3に示されるように、公開鍵証明書には、当該公開鍵証明書を識別するための「シリアル番号」、証明される主体であるICカードIDを表す「主体者」、当該公開鍵証明書が有効である期限を表す「有効期限」、ICカード20に記憶されている公開鍵や暗号アルゴリズムを表す「主体者情報」、公開鍵証明書を発行したCAを表す「発行者」、及びCAの署名を表す「CA署名」が含まれている。
【0023】
図4には、属性証明書のデータ構成例を示す。
属性証明書のデータ形式は、X.509形式に従っている。
図4に示されるように、属性証明書には、公開鍵証明書と関連づけるための情報である「保持者(公開鍵証明書のシリアル番号)」や、属性証明書が有効である期間を表す「有効期限」や、保持者の権限やセキュリティ区分等を表す「属性」や、発行者であるAAの署名を表す「AA署名」が含まれている。
【0024】
[2.動作]
次に、本実施形態の動作について説明する。
以下の説明では、ICカード20aに記憶されている公開鍵証明書を公開鍵証明書Caとし、同じく、ICカード20aに記憶されている属性証明書を属性証明書Aaとする。また、ICカード20bに記憶されている公開鍵証明書と属性証明書を、それぞれ公開鍵証明書Cb、属性証明書Abとする。また、携帯端末10aに記憶されている公開鍵を公開鍵PKaとし、携帯端末10bに記憶されている公開鍵を公開鍵PKbとする。
【0025】
[2.1.属性証明書発行時の動作]
まず、携帯端末10aが、AAサーバ装置30に対して、属性証明書Aaの発行を要求するときの動作について説明する。
なお、前提として、携帯端末10aには、ICカード20aが装着されており、携帯端末10aの記憶部には、図示せぬサーバ装置より属性証明書用プログラムがダウンロードされて記憶されているものとする。これにより、携帯端末10aのCPUは、1日に1回、属性証明書用プログラムをタイマー起動する。また、ICカード20aの書き換え不可な領域には、図6に示すデータ内容の公開鍵証明書Caが記憶されているものとする。
【0026】
以下では、日付“03/03/01”に、属性証明書用プログラムが起動されたときの動作を、図5を参照しながら説明する。
属性証明書用プログラムが起動されると、携帯端末10aのCPUは、ICカード20aより、公開鍵証明書Caを読み出す。そして、携帯端末10aのCPUは、公開鍵証明書Caを内包した、属性証明書Aaの発行を要求するためのHTTPリクエストをアンテナより、AAサーバ装置30宛に送信する(プロセスP1)。
AAサーバ装置30のCPUは、HTTPリクエストを受信し、当該メッセージに内包されている公開鍵証明書Caの有効性を検証する(プロセスP2)。
具体的には、AAサーバ装置30のCPUは、公開鍵証明書Caを、一般的な公開暗号証方式を用いて検証する。すなわち、AAサーバ装置30のCPUは、公開鍵証明書CaのCA署名以外のデータを、ハッシュ関数を用いて演算した値と、CA署名をCAの公開鍵を用いて復号した値とを比較し、一致しているか否かを判定する。一致しない場合には、AAサーバ装置30のCPUは、エラーメッセージを送信して処理を終了する。
一致していた場合には、AAサーバ装置30のCPUは、CRLを要求するためのCRL要求データを内包したHTTPリクエストを、CAサーバ装置40宛に送信する。
CAサーバ装置40のCPUは、当該HTTPリクエストを受信し、AAサーバ装置30宛にCRLを内包したHTTPレスポンスを送信する。
AAサーバ装置30のCPUは、受信したHTTPレスポンスに内包されたCRLを参照することにより、公開鍵証明書Caが失効しているか否かを判定する。失効していた場合には、AAサーバ装置30のCPUは、エラーメッセージを送信して処理を終了する。
【0027】
AAサーバ装置30のCPUは、公開鍵証明書Caが失効していないと判定された場合には、属性証明書Aaを発行するための処理を行う。
具体的には、AAサーバ装置30のCPUは、まず、属性証明書に必要な情報を編集する。詳細には、AAサーバ装置30のCPUは、公開鍵証明書Caのシリアル番号“1234”と同一の番号を属性証明書Aaの「保持者」とし、「有効期限」を1日後の“2003/03/02”とし、その他、X.509に定義された属性証明書に必要な情報を編集する。次に、AAサーバ装置30のCPUは、編集された情報を、AAの秘密鍵で暗号化することにより、AAの署名を生成する。
そして、AAサーバ装置30のCPUは、上述した情報や生成されたAAの署名が記述された、図7に示す属性証明書Aaを生成する。AAサーバ装置30のCPUは、属性証明書Aaを内包したHTTPレスポンスを生成し、携帯端末10a宛に送信する(プロセスP3)。
【0028】
携帯端末10aのCPUは、HTTPレスポンスを受信し、当該HTTPレスポンスに内包されている属性証明書Aaを、ICカード20aの書き換え可能な領域に記憶する。
【0029】
[2.2.電子バリュー譲渡時]
次に、携帯端末10aを用いて、インターネットショップサーバ60より電子チケット等の電子バリューを購入したユーザAが、携帯端末10bを所有するユーザBに対して、電子バリューをオフラインで譲渡するときの動作について、図8を参照しながら説明する。
【0030】
前提として、ユーザBの所有する携帯端末10bには、携帯端末10aと同様に、ICカード20bが装着され、1日毎に属性証明書Abを受信している。
また、携帯端末10aに装着されたICカード20aには、“03/03/02”を有効期限とする属性証明書Aa(図7参照)と、図6に示すデータ内容の公開鍵証明書Caとが記憶されているものとする。また、ユーザAがインターネットショップサーバ60より購入した電子バリューは、ICカード20aの書き換え可能な領域に記憶されているものとする。
また、ICカード20b内には、図9に示すデータ内容の公開鍵証明書Cbと属性証明書Abが記憶されているものとする。
【0031】
まず、ユーザAは、携帯端末10aの操作部を操作して、携帯端末10bに対してオフラインで電子バリューを送信するための指示を行う。
これにより、携帯端末10aのCPUは、IC用アンテナより電波を送出する。
携帯端末10bのCPUは、電波を受信して、携帯端末10aにICカード20bのIDを内包したレスポンスを返す。これにより、携帯端末10aに装着されたICカード20aと携帯端末10aに装着されたICカード20bとの間の通信が確立する。
次に、携帯端末10aのCPUは、公開鍵暗号方式に基づく相互認証を行う。具体的には、まず、携帯端末10aのCPUは、ICカード20aより、公開鍵証明書Caと属性証明書Aaを読み出す。そして、携帯端末10aのCPUは、公開鍵証明書Caと属性証明書Aaとを内包した、メッセージD1をIC用アンテナより携帯端末10b宛に送信する。
【0032】
携帯端末10bのCPUは、メッセージD1を受信し、ステップS101の処理を行う。
具体的には、まず、携帯端末10bのCPUは、メッセージD1に内包されている公開鍵証明書Caの検証を行う。すなわち、携帯端末10bのCPUは、公開鍵証明書Caに記述されているCA署名と公開鍵PKaとを用いて、一般的な公開鍵暗号方式により、公開鍵証明書Caの正当性を検証する。さらに、携帯端末10bのCPUは、現在日付“2003/03/01”が、公開鍵証明書Caの有効期限“2003/12/31”を過ぎていないことを検証する。
次に、携帯端末10bのCPUは、メッセージD1に内包されている属性証明書Aaの検証を行う。具体的には、携帯端末10bのCPUは、属性証明書Aaに記述されている有効期限“03/03/02”と属性“1日限り正当性を保証”とから、属性証明書Aaが1日だけ有効であることを証明するものであり、現在日時“2003/03/01”が有効期限“03/03/02”を過ぎていないことを確認する。
【0033】
次に、携帯端末10bのCPUは、一般的な方法により、乱数Rbを生成する。そして、携帯端末10bのCPUは、受信した公開鍵証明書Caに記述されている公開鍵PKaを用いて、生成した乱数Rbを、例えば、Shared Secretにより暗号化することにより、暗号化データEbを生成する。
次に、携帯端末10bのCPUは、ICカード20bより、公開鍵証明書Cbと属性証明書Abとを読み出す。そして、携帯端末10bのCPUは、読み出した公開鍵証明書Cbと属性証明書Abと、生成した暗号化データEbとを内包したメッセージD2を、IC用アンテナより携帯端末10a宛に送信する。
【0034】
携帯端末10aのCPUは、メッセージD2を受信し、ステップS102の処理を行う。
具体的には、ステップS101における処理と同様に、携帯端末10aのCPUは、まず、メッセージD2に内包されている公開鍵証明書Cbを検証する。すなわち、携帯端末10aのCPUは、公開鍵証明書Cbに記述されているCA署名と公開鍵KBbとを用いて、一般的な公開鍵暗号方式で、公開鍵証明書Cbの正当性を検証する。また、携帯端末10aのCPUは、現在日付“2003/03/01”が、公開鍵証明書Cbに記述されている有効期限“2004/01/07”を過ぎていないことを検証する。
次に、携帯端末10aのCPUは、属性証明書Abを検証する。具体的には、携帯端末10aのCPUは、属性証明書Abに記述されている有効期限“03/03/02”と属性“1日限り正当性を保証”とから、属性証明書Aaが1日だけ有効であることを証明するものであり、現在日時“2003/03/01”が有効期限“03/03/02”を経過していないことを確認する。
【0035】
次に、携帯端末10aのCPUは、一般的な方法により、乱数Raを生成する。そして、携帯端末10bのCPUは、受信した公開鍵証明書Caに記述されている公開鍵PKaを用いて、生成した乱数Raを、例えば、Shared Secretにより暗号化することにより、暗号化データEaを生成する。
次に、携帯端末10aのCPUは、ICカード20aより公開鍵証明書Caと属性証明書Aaとを読み出す。そして、携帯端末10aのCPUは、読み出した公開鍵証明書Caと属性証明書Aaと、生成した暗号化データEaとを内包したメッセージD3をIC用アンテナより携帯端末10b宛に送信する。
【0036】
携帯端末10bのCPUは、メッセージD3を受信し、ステップS103の処理を行う。
具体的には、携帯端末10bのCPUは、まず、一般的な方法で、乱数Raと乱数Rbとから、特定の関数を用いて、共通鍵Kabを生成する。
次に、携帯端末10bのCPUは、メッセージD1、D2、D3に対するメッセージ認証コード(メッセージ認証コード;Message Authentication Code)MACbを、共通鍵Kabを用いて生成する。
そして、携帯端末10bのCPUは、生成したメッセージ認証コードMACbを内包したメッセージD4を、IC用アンテナより携帯端末10a宛に送信する。
【0037】
携帯端末10aのCPUは、メッセージD4を受信し、ステップS104の処理を行う。
具体的には、まず、携帯端末10aのCPUは、一般的な方法で、乱数Raと乱数Rbとから、特定の関数を用いて、共通鍵Kabを生成する。
そして、携帯端末10aのCPUは、受信したメッセージD4に内包されるメッセージ認証コードMACbを、一般的なMACの認証方法で検証する。
次に、携帯端末10aのCPUは、メッセージD1、D2、D3、D4に対するメッセージ認証コード(メッセージ認証コード;Message Authentication Code)MACaを、共通鍵Kabを用いて生成する。
携帯端末10aのCPUは、生成したメッセージ認証コードMACaを内包したメッセージD5を、IC用アンテナより携帯端末10b宛に送信する。
【0038】
携帯端末10bのCPUは、メッセージD5を受信し、メッセージD5に内包されているメッセージ認証コードMACaを、一般的なMACの認証方法で検証する(ステップS105)。
以上の検証結果や認証結果が全て正当であった場合に、携帯端末10aと携帯端末10aのCPUは、相互認証が成功したと判定する。
なお、上述した検証結果や認証結果に正当でないものが存在した場合には、正当でないと判定された時点で、CPUはエラーメッセージを送信して処理を終了する。
【0039】
認証が成功したと判定された場合には、携帯端末10aと、携帯端末10bとは、共通鍵Kab用いた共通暗号方式による通信を行う(ステップS106)。
ここでは、携帯端末10aは、ICカード20aに記憶されている電子バリューを読み出し、共通鍵Kabで暗号化して、携帯端末10bに送信する。
携帯端末10bは、暗号化された電子バリューを受信し、共通鍵Kabで復号して、ICカード20bの書き換え可能な領域に記憶する。
【0040】
以上のように、本発明によれば、公開鍵証明書の有効期限を変更せずに、オフラインで有効期限の検証を行うことが可能となる。
また、鍵ペアや公開鍵証明書をICカード20内の書き換え不可な領域に記憶させたことにより、安全性を高めることができる。
また、オフラインで有効期限の検証を行うことができるようにしたため、携帯端末10は、インターネットに接続することなく、相手の携帯端末10に装着されているICカード20の有効性の検証を容易に行うことが可能となる。
また、データ量の大きいCRLを使用する必要がないために、携帯端末10やICカード20のような記憶容量が少ない装置であっても、有効期限の検証を容易に行うことができる。
【0041】
[3.変形例]
以上、本発明の実施形態について説明したが、この実施形態はあくまでも例示であり、本発明の趣旨から逸脱しない範囲で様々な変形が可能である。変形例としては、例えば以下のようなものが考えられる。
【0042】
(1)上記実施形態においては、オフライン時における携帯端末10間のピアツーピアの通信を、非接触ICカードの技術を利用した通信として説明したが、これに限定されず、例えば、ピアツーピアの通信は、IrDA(Infrared Data Association)や、ブルートゥース(登録商標)等の近距離無線通信手段や、通信ケーブルを介した有線通信手段を用いたり、また、インターネットを利用せずに移動網のみを介した通信でもよい。
(2)上記実施形態における属性証明書発行時には、AAサーバ装置30は、携帯端末10aより、属性証明書Aaの発行を要求するためのHTTPリクエストを受信したときに、属性証明書Aaを発行する処理を行ったが、これに限定されず、1日に1回定期的に属性証明書Aaを生成し、記憶部に記憶しておいてもよい。
【0043】
(3)上記実施形態においては、[2.2.電子バリュー譲渡時]において、オフラインを前提として、公開鍵証明書の有効性を検証したが、これに限定されず、オンラインでCAサーバ装置40にアクセスできなかった場合にのみ、オフラインで公開鍵証明書の有効性を検証するようにしてもよい。
(4)上記実施形態においては、属性証明書用プログラムは、1日に1回という周期で起動されることとしたが、起動される周期はこれに限定されず、例えば、2日に1回起動されてもよい。
【0044】
(5)上記実施形態においては、ICカード20の製造時に、ICカード20の書き換え不可な領域に公開鍵証明書や鍵ペアが予め記憶されているとして説明したが、公開鍵証明書や鍵ペアを記憶するのは製造時に限定されない。例えば、製造後に、販売店にてICカード20に公開鍵証明書や鍵ペアが書き込まれて、書き込まれた領域が書き換え不可な領域に設定されてもよい。また、携帯端末10にICカード20が装着された後に、ICカード20に公開鍵証明書や鍵ペアが書き込まれ、書き込まれた領域が書き換え不可に設定されてもよい。
(6)上記実施形態においては、図8に示されるシーケンスによる相互認証を行ったが、相互認証の方法はこれに限定されない。例えば、パスワードを用いた相互認証でもよい。
(7)上記実施形態においては、ステップS101とステップS102において、有効期限を検証する際に、公開鍵証明書と属性証明書との有効期限が現在日付を過ぎていないことを検証したが、属性証明書の有効期限のみを検証してもよい。
(8)上記実施形態においては、AAサーバ装置30が、属性証明書Aaの発行を要求するためのHTTPリクエストを受信したときに、CRLを用いて公開鍵証明書Caが失効しているか否かを確認したが、これに限定されず、OCSPレスポンダに問い合わせることによって、公開鍵証明書Caが失効しているか否かを確認してもよい。
【0045】
(9)上記実施形態においては、属性証明書用プログラムをタイマー起動するようにしたが、ユーザAが、1日に1回、携帯端末10aを操作して、手動で属性証明書用プログラムを起動するようにしてもよい。
また、属性証明書用プログラムを自動起動したときに、携帯端末10aが、電波が届かない位置に位置していたために、属性証明書Aaを要求するためのデータをAAサーバ装置30に送信できなかった場合には、携帯端末10aの表示部に、ユーザAが手動で属性証明書用プログラムを起動することを促すためのメッセージを表示するようにしてもよい。
(10)上記実施形態においては、CAサーバ装置40とAAサーバ装置30とを使用したが、CAサーバ装置40とAAサーバ装置30の機能を備えた1つのサーバ装置を使用することも可能である。
【0046】
【発明の効果】
以上説明したように、本発明によれば、大量のリソースを必要とせず、公開鍵証明書の有効性の検証をオフラインで実現することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る通信システムの構成を示すブロック図である。
【図2】同実施形態に係る携帯端末のハードウェア構成を示すブロック図である。
【図3】同実施形態に係る公開鍵証明書のデータ構成を示す図である。
【図4】同実施形態に係る属性証明書のデータ構成を示す図である。
【図5】同実施形態に係る属性証明書発行時の処理を示す図である。
【図6】同実施形態に係る属性証明書発行時のICカード20aに記憶されている公開鍵証明書Caのデータ構成を示す図である。
【図7】同実施形態に係る属性証明書発行時のICカード20aに記憶される属性証明書Aaのデータ構成を示す図である。
【図8】同実施形態に係る電子バリュー譲渡時のシーケンスを示す図である。
【図9】同実施形態に係る電子バリュー譲渡時のICカード20bに記憶されている公開鍵証明書Cbと属性証明書Abとのデータ構成を示す図である。
【符号の説明】
10、10a、10b……携帯端末、20、20a、20b……ICカード、30……AAサーバ装置、40……CAサーバ装置、50……通信ネットワーク、60……インターネットショップサーバ。
【発明の属する分野】
本発明は、公開鍵証明書の有効性を検証するための技術に関する。
【0002】
【従来の技術】
公開鍵暗号技術において、秘密鍵(私有鍵)および公開鍵のペア(以後、「鍵ペア」という)の有効性を証明する証明書が公開鍵証明書である。受け取った公開鍵証明書の有効性の検証方法としては、公開鍵証明書が正当な第三者機関に発行されたものであることを検証したり、公開鍵証明書が改竄されていないことを公開鍵等を用いて検証する方法以外に、有効期限内の証明書であるか否かを判定する第1の方法と、失効した証明書であるか否かを判定する第2の方法がある。
【0003】
第1の方法では、現在時刻が公開鍵証明書に記録された有効期限内であるか否かを判定することになる。したがって、公開鍵証明書を有効とし続けるためには公開鍵証明書を更新し続ける必要がある。公開鍵証明書を更新する際には鍵ペアをも更新すべきであるから、第1の方法は、公開鍵証明書および鍵ペアが更新されることを前提としている。
【0004】
第2の方法には、OCSP(Online Certificate Status Protocol)レスポンダを用いる方法とダウンロードしたCRL(Certificate Revocation List)を用いる方法がある。前者の方法では、公開鍵証明書の検証時に、オンラインで、当該証明書が失効しているか否かをOCSPレスポンダ(サーバ)に問い合わせる。後者の方法では、予め定められたサーバから最新のCRLをネットワークを介して一定周期でダウンロードしておき、ダウンロードしたCRLを用いて公開鍵証明書が失効しているか否かを判定する(非特許文献1参照。)。
【0005】
【非特許文献1】
カーライル・アダムス,スティーブ・ロイド著,鈴木優一訳,「PKI−公開鍵インフラストラクチャの概念、標準、展開」ピアソンエディケーション,2000年7月15日発行,P105
【0006】
【発明が解決しようとする課題】
ところで、公開鍵証明書の有効性の検証をもって当該証明書を格納したIC(Integrated Circuit)カードの有効性の検証に代えることが行われている。この種のICカードの耐タンパー性を向上させるために、鍵ペアを書き換え不可能な記憶領域に書き込むことが考えられる。
【0007】
この場合、鍵ペアの更新が不可能となるから、公開鍵証明書の更新も無意味または不可能となる。公開鍵証明書が更新されないということは、有効期限が更新されないことを意味するから、有効期限を用いて検証する第1の方法の採用は不適当である。
【0008】
また、ICカードやPDA(Personal Digital Assistant)などの小型機器では、記憶や演算などの情報処理のために使用可能なリソースに限りがある。したがって、CRLを用いる方法の採用は困難である。OCSPを用いる方法であれば、そのような携帯機器でも採用可能である。しかし、OCSPを用いることができるのはインターネットと接続されているオンライン時のみである。つまり、公開鍵証明書の有効性をオフラインで検証する機会の多い小型機器については、上記の第2の方法を採用し難い。
【0009】
本発明は、上述した事情に鑑みて為されたものであり、大量のリソースを必要とせず、公開鍵証明書の有効性の検証をオフラインで実現することができる技術を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述した課題を解決するため、本発明は、秘密鍵を記憶した、記憶内容の書き換えが許容されていない第1の記憶手段と、公開鍵の正当性を証明する公開鍵証明書を記憶した第2の記憶手段と、第3の記憶手段と、前記公開鍵証明書に対応する属性証明書を予め定められたサーバ装置から取得し前記第3の記憶手段に書き込む更新手段と、前記公開鍵証明書および前記属性証明書を通信相手へ送信する送信手段とを有する第1の電子機器と、前記第1の電子機器から送信された前記公開鍵証明書および前記属性証明書を受信する受信手段と、前記受信手段により受信された前記属性証明書に記録されている有効期限を用いて、前記受信手段により受信された前記公開鍵証明書の有効性を検証する検証手段とを有する第2の電子機器とを有する公開鍵証明書検証システムを提供する。
【0011】
本発明によれば、前記第1の電気機器は、前記公開鍵証明書に対応する属性証明書を前記サーバ装置から取得し、前記第3の記憶手段に書き込む。また、前記第1の電気機器は、前記公開鍵証明書および前記属性証明書を通信相手へ送信する。
前記第2の電気機器は、前記第1の電子機器から送信された前記公開鍵証明書および前記属性証明書を受信し、受信された前記属性証明書に記録されている有効期限を用いて、前記受信手段により受信された前記公開鍵証明書の有効性を検証する。
【0012】
【発明の実施の形態】
以下、図面を参照して、この発明の実施形態について説明する。
[1.構成]
まず、本実施形態の構成について説明する。
[1.1.全体構成]
図1は、本発明の実施形態に係る通信システムの構成例を示す図である。図1に示されるように、この通信システムは、ICカード20aが装着された携帯端末10aと、ICカード20bが装着された携帯端末10bと、公開鍵証明書を発行する認証局(以下、「CA」(Certificate Authority)という)としてのCAサーバ装置40と、属性証明書を発行する属性認証局(以下、「AA」(Attribute Authority)という)としてのAAサーバ装置30と、インターネットや移動通信網から構成される通信ネットワーク50と、電子チケット等の電子バリューを携帯端末10a、10bに対して発行するインターネットショップサーバ60とを備えている。
なお、図1には、携帯端末10aと携帯端末10bとを図示しているが、携帯端末10aと携帯端末10bとの構成は同一であるため、以下の説明では、特に両者を区別する必要がない限り、各々を携帯端末10として説明する。また、同様に、ICカード20aとICカード20bとについても、必要がない限り、各々をICカード20として説明する。
【0013】
CAサーバ装置40と、AAサーバ装置30と、インターネットショップサーバ60とは、通信ネットワーク50のインターネットに接続されている。
携帯端末10は、図示せぬ基地局を介して通信ネットワーク50の移動網と接続されている。また、移動網は、図示せぬゲートウェイサーバを介してインターネットと接続されている。
【0014】
携帯端末10は、オンライン時には、インターネットショップサーバ60より電子バリューを購入したり、CAサーバ装置40に公開鍵証明書の有効性を問い合わせたり、AAサーバ装置30より属性証明書の発行を受ける。
また、携帯端末10は、オフライン時には、ICカード20に記憶されている電子バリューを、他の携帯端末10に譲渡する。
ここで、「オンライン時」とは、携帯端末10が、インターネットを介してCAサーバ装置40やAAサーバ装置30等の各種サーバ装置に接続されている状態をいう。
また、「オフライン時」とは、携帯端末10が、インターネットを介して各種サーバ装置に接続されていない状態をいう。本実施形態においては、オフライン時には、携帯端末10同士は、非接触ICカード技術による通信を用いて、ピアツーピアで電子バリューを譲渡する。
【0015】
[1.2.AAサーバ装置]
次に、AAサーバ装置30について説明する。
AAサーバ装置30は、一般的なWWW(World Wide Web)サーバ装置の機能を備えており、例えば、携帯端末10等の他の装置とHTTP(Hypertext Transfer Protocol)プロトコルに従って、データを送受する。AAサーバ装置30は、CPU(Central Processing Unit)と記憶部と通信インターフェースとを備えている。
【0016】
AAサーバ装置30の記憶部には、CPUに実行されることにより、以下の機能をAAサーバ装置30に実現させるためのプログラムが記憶されている。
(1)公開鍵証明書を内包した、属性証明書の発行を依頼するためのHTTPリクエストを、携帯端末10より受信したときに、公開鍵証明書の正当性を検証する機能。なお、属性証明書とは、詳細は後述するが、公開鍵証明書が発行された主体者の属性や権限を表すための証明書である。
(2)(1)の検証によって、公開鍵証明書が正当であると判定された場合に、当該公開鍵証明書と関連付けられた、1日限り有効な属性証明書を発行し、携帯端末10に送信する機能。
【0017】
次に、CAサーバ装置40について説明する。
CAサーバ装置40は、AAサーバ装置30と同様に、一般的なWWWサーバ装置の機能を備えており、他の装置とHTTPプロトコルに従って、データを送受する。
また、CAサーバ装置40は、CPUと記憶部と通信インターフェースとを備えている。
CAサーバ装置40の記憶部には、CPUに実行されることにより、公開鍵証明書を発行したり、CRLを送信する機能を実現させるためのプログラムが記憶されている。
【0018】
[1.3.携帯端末]
次に、図2を参照しつつ、携帯端末10の構成について説明する。携帯端末10は、携帯端末10の各部を制御するCPUと、操作に応じた情報をCPUに引き渡すための操作部と、データを表示する表示部と、無線通信を行う無線通信部と、無線通信用のアンテナと、プログラムを記憶するプログラムエリアとを備えている。さらに、携帯端末10は、ICカード20を装着するための装着部と、ICカード20とのデータの送受信を制御するIC用無線通信部と、電波を発信したり、ICカード20とデータを送受信するためのIC用アンテナとを備えている。
【0019】
プログラムエリアには、例えば、1日に1回という周期で、AAサーバ装置30に対して、属性証明書の発行を要求するためのHTTPリクエストを、無線通信部より送信するための属性証明書用プログラムが記憶されている。当該属性証明書用プログラムは、図示せぬサーバ装置より携帯端末10にダウンロードされて記憶される。また、この属性証明書用プログラムは、1日に1回タイマー起動されるようになっている。
また、プログラムエリアには、IC用アンテナより電波を発信し、他の携帯端末10に装着されたICカード20とデータを送受信するためのプログラムが記憶されている。
また、プログラムエリアには、HTTPプロトコルに従って、他の装置とデータを送受するためのプログラムが記憶されている。また、プログラムエリアには、図8に示されるシーケンスに従って、他の携帯端末10との間で、公開鍵暗号方式に基づく相互認証を行うためのプログラムや、携帯端末10から受信した属性証明書に記述されている有効期限の検証を行うためのプログラムや、当該検証を行った後に、ICカード20に記憶された電子バリューを、共通鍵暗号方式による暗号通信を用いて送信するためのプログラムが記憶されている。
【0020】
[1.4.ICカード]
次に、図2に示されるICカード20について説明する。
ICカード20は、非接触ICカードであり、CPUや、記憶領域や、入出力部を備えている。
入出力部は、携帯端末10とデータの授受を行う。
記憶領域には、記憶内容の書き換えが許容されていない記憶領域(以下、「書き換え不可な領域」という)と、記憶内容の書き換えが許容されている記憶領域(以下、「書き換え可能な領域」という)とが設けられている。
ここで、「書き換え不可な領域」とは、ICカード20の製造時に、当該記憶領域に書き込まれた記憶内容を、書き換えることができない領域をいう。
また、「書き換え可能な領域」とは、携帯端末10より送信されるデータを当該記憶領域書き込んだり、当該データで記憶されている記憶内容を書き換えたりすることができる領域をいう。
【0021】
ICカード20の書き換え不可な領域には、当該ICカード20の製造時に、公開鍵暗号方式における鍵ペア、及び、CAが発行した公開鍵証明書(Cert)が記憶される。これらは、ICカード20を識別するためのICカードIDが正当な情報であることを証明するためのものである。
また、ICカード20の書き換え可能な領域には、属性証明書や、インターネットショップサーバ60から受信した電子バリューが記憶される。
【0022】
図3には、公開鍵証明書のデータ構成を示す。
公開鍵証明書のデータ形式は、X.509形式に従っている。
図3に示されるように、公開鍵証明書には、当該公開鍵証明書を識別するための「シリアル番号」、証明される主体であるICカードIDを表す「主体者」、当該公開鍵証明書が有効である期限を表す「有効期限」、ICカード20に記憶されている公開鍵や暗号アルゴリズムを表す「主体者情報」、公開鍵証明書を発行したCAを表す「発行者」、及びCAの署名を表す「CA署名」が含まれている。
【0023】
図4には、属性証明書のデータ構成例を示す。
属性証明書のデータ形式は、X.509形式に従っている。
図4に示されるように、属性証明書には、公開鍵証明書と関連づけるための情報である「保持者(公開鍵証明書のシリアル番号)」や、属性証明書が有効である期間を表す「有効期限」や、保持者の権限やセキュリティ区分等を表す「属性」や、発行者であるAAの署名を表す「AA署名」が含まれている。
【0024】
[2.動作]
次に、本実施形態の動作について説明する。
以下の説明では、ICカード20aに記憶されている公開鍵証明書を公開鍵証明書Caとし、同じく、ICカード20aに記憶されている属性証明書を属性証明書Aaとする。また、ICカード20bに記憶されている公開鍵証明書と属性証明書を、それぞれ公開鍵証明書Cb、属性証明書Abとする。また、携帯端末10aに記憶されている公開鍵を公開鍵PKaとし、携帯端末10bに記憶されている公開鍵を公開鍵PKbとする。
【0025】
[2.1.属性証明書発行時の動作]
まず、携帯端末10aが、AAサーバ装置30に対して、属性証明書Aaの発行を要求するときの動作について説明する。
なお、前提として、携帯端末10aには、ICカード20aが装着されており、携帯端末10aの記憶部には、図示せぬサーバ装置より属性証明書用プログラムがダウンロードされて記憶されているものとする。これにより、携帯端末10aのCPUは、1日に1回、属性証明書用プログラムをタイマー起動する。また、ICカード20aの書き換え不可な領域には、図6に示すデータ内容の公開鍵証明書Caが記憶されているものとする。
【0026】
以下では、日付“03/03/01”に、属性証明書用プログラムが起動されたときの動作を、図5を参照しながら説明する。
属性証明書用プログラムが起動されると、携帯端末10aのCPUは、ICカード20aより、公開鍵証明書Caを読み出す。そして、携帯端末10aのCPUは、公開鍵証明書Caを内包した、属性証明書Aaの発行を要求するためのHTTPリクエストをアンテナより、AAサーバ装置30宛に送信する(プロセスP1)。
AAサーバ装置30のCPUは、HTTPリクエストを受信し、当該メッセージに内包されている公開鍵証明書Caの有効性を検証する(プロセスP2)。
具体的には、AAサーバ装置30のCPUは、公開鍵証明書Caを、一般的な公開暗号証方式を用いて検証する。すなわち、AAサーバ装置30のCPUは、公開鍵証明書CaのCA署名以外のデータを、ハッシュ関数を用いて演算した値と、CA署名をCAの公開鍵を用いて復号した値とを比較し、一致しているか否かを判定する。一致しない場合には、AAサーバ装置30のCPUは、エラーメッセージを送信して処理を終了する。
一致していた場合には、AAサーバ装置30のCPUは、CRLを要求するためのCRL要求データを内包したHTTPリクエストを、CAサーバ装置40宛に送信する。
CAサーバ装置40のCPUは、当該HTTPリクエストを受信し、AAサーバ装置30宛にCRLを内包したHTTPレスポンスを送信する。
AAサーバ装置30のCPUは、受信したHTTPレスポンスに内包されたCRLを参照することにより、公開鍵証明書Caが失効しているか否かを判定する。失効していた場合には、AAサーバ装置30のCPUは、エラーメッセージを送信して処理を終了する。
【0027】
AAサーバ装置30のCPUは、公開鍵証明書Caが失効していないと判定された場合には、属性証明書Aaを発行するための処理を行う。
具体的には、AAサーバ装置30のCPUは、まず、属性証明書に必要な情報を編集する。詳細には、AAサーバ装置30のCPUは、公開鍵証明書Caのシリアル番号“1234”と同一の番号を属性証明書Aaの「保持者」とし、「有効期限」を1日後の“2003/03/02”とし、その他、X.509に定義された属性証明書に必要な情報を編集する。次に、AAサーバ装置30のCPUは、編集された情報を、AAの秘密鍵で暗号化することにより、AAの署名を生成する。
そして、AAサーバ装置30のCPUは、上述した情報や生成されたAAの署名が記述された、図7に示す属性証明書Aaを生成する。AAサーバ装置30のCPUは、属性証明書Aaを内包したHTTPレスポンスを生成し、携帯端末10a宛に送信する(プロセスP3)。
【0028】
携帯端末10aのCPUは、HTTPレスポンスを受信し、当該HTTPレスポンスに内包されている属性証明書Aaを、ICカード20aの書き換え可能な領域に記憶する。
【0029】
[2.2.電子バリュー譲渡時]
次に、携帯端末10aを用いて、インターネットショップサーバ60より電子チケット等の電子バリューを購入したユーザAが、携帯端末10bを所有するユーザBに対して、電子バリューをオフラインで譲渡するときの動作について、図8を参照しながら説明する。
【0030】
前提として、ユーザBの所有する携帯端末10bには、携帯端末10aと同様に、ICカード20bが装着され、1日毎に属性証明書Abを受信している。
また、携帯端末10aに装着されたICカード20aには、“03/03/02”を有効期限とする属性証明書Aa(図7参照)と、図6に示すデータ内容の公開鍵証明書Caとが記憶されているものとする。また、ユーザAがインターネットショップサーバ60より購入した電子バリューは、ICカード20aの書き換え可能な領域に記憶されているものとする。
また、ICカード20b内には、図9に示すデータ内容の公開鍵証明書Cbと属性証明書Abが記憶されているものとする。
【0031】
まず、ユーザAは、携帯端末10aの操作部を操作して、携帯端末10bに対してオフラインで電子バリューを送信するための指示を行う。
これにより、携帯端末10aのCPUは、IC用アンテナより電波を送出する。
携帯端末10bのCPUは、電波を受信して、携帯端末10aにICカード20bのIDを内包したレスポンスを返す。これにより、携帯端末10aに装着されたICカード20aと携帯端末10aに装着されたICカード20bとの間の通信が確立する。
次に、携帯端末10aのCPUは、公開鍵暗号方式に基づく相互認証を行う。具体的には、まず、携帯端末10aのCPUは、ICカード20aより、公開鍵証明書Caと属性証明書Aaを読み出す。そして、携帯端末10aのCPUは、公開鍵証明書Caと属性証明書Aaとを内包した、メッセージD1をIC用アンテナより携帯端末10b宛に送信する。
【0032】
携帯端末10bのCPUは、メッセージD1を受信し、ステップS101の処理を行う。
具体的には、まず、携帯端末10bのCPUは、メッセージD1に内包されている公開鍵証明書Caの検証を行う。すなわち、携帯端末10bのCPUは、公開鍵証明書Caに記述されているCA署名と公開鍵PKaとを用いて、一般的な公開鍵暗号方式により、公開鍵証明書Caの正当性を検証する。さらに、携帯端末10bのCPUは、現在日付“2003/03/01”が、公開鍵証明書Caの有効期限“2003/12/31”を過ぎていないことを検証する。
次に、携帯端末10bのCPUは、メッセージD1に内包されている属性証明書Aaの検証を行う。具体的には、携帯端末10bのCPUは、属性証明書Aaに記述されている有効期限“03/03/02”と属性“1日限り正当性を保証”とから、属性証明書Aaが1日だけ有効であることを証明するものであり、現在日時“2003/03/01”が有効期限“03/03/02”を過ぎていないことを確認する。
【0033】
次に、携帯端末10bのCPUは、一般的な方法により、乱数Rbを生成する。そして、携帯端末10bのCPUは、受信した公開鍵証明書Caに記述されている公開鍵PKaを用いて、生成した乱数Rbを、例えば、Shared Secretにより暗号化することにより、暗号化データEbを生成する。
次に、携帯端末10bのCPUは、ICカード20bより、公開鍵証明書Cbと属性証明書Abとを読み出す。そして、携帯端末10bのCPUは、読み出した公開鍵証明書Cbと属性証明書Abと、生成した暗号化データEbとを内包したメッセージD2を、IC用アンテナより携帯端末10a宛に送信する。
【0034】
携帯端末10aのCPUは、メッセージD2を受信し、ステップS102の処理を行う。
具体的には、ステップS101における処理と同様に、携帯端末10aのCPUは、まず、メッセージD2に内包されている公開鍵証明書Cbを検証する。すなわち、携帯端末10aのCPUは、公開鍵証明書Cbに記述されているCA署名と公開鍵KBbとを用いて、一般的な公開鍵暗号方式で、公開鍵証明書Cbの正当性を検証する。また、携帯端末10aのCPUは、現在日付“2003/03/01”が、公開鍵証明書Cbに記述されている有効期限“2004/01/07”を過ぎていないことを検証する。
次に、携帯端末10aのCPUは、属性証明書Abを検証する。具体的には、携帯端末10aのCPUは、属性証明書Abに記述されている有効期限“03/03/02”と属性“1日限り正当性を保証”とから、属性証明書Aaが1日だけ有効であることを証明するものであり、現在日時“2003/03/01”が有効期限“03/03/02”を経過していないことを確認する。
【0035】
次に、携帯端末10aのCPUは、一般的な方法により、乱数Raを生成する。そして、携帯端末10bのCPUは、受信した公開鍵証明書Caに記述されている公開鍵PKaを用いて、生成した乱数Raを、例えば、Shared Secretにより暗号化することにより、暗号化データEaを生成する。
次に、携帯端末10aのCPUは、ICカード20aより公開鍵証明書Caと属性証明書Aaとを読み出す。そして、携帯端末10aのCPUは、読み出した公開鍵証明書Caと属性証明書Aaと、生成した暗号化データEaとを内包したメッセージD3をIC用アンテナより携帯端末10b宛に送信する。
【0036】
携帯端末10bのCPUは、メッセージD3を受信し、ステップS103の処理を行う。
具体的には、携帯端末10bのCPUは、まず、一般的な方法で、乱数Raと乱数Rbとから、特定の関数を用いて、共通鍵Kabを生成する。
次に、携帯端末10bのCPUは、メッセージD1、D2、D3に対するメッセージ認証コード(メッセージ認証コード;Message Authentication Code)MACbを、共通鍵Kabを用いて生成する。
そして、携帯端末10bのCPUは、生成したメッセージ認証コードMACbを内包したメッセージD4を、IC用アンテナより携帯端末10a宛に送信する。
【0037】
携帯端末10aのCPUは、メッセージD4を受信し、ステップS104の処理を行う。
具体的には、まず、携帯端末10aのCPUは、一般的な方法で、乱数Raと乱数Rbとから、特定の関数を用いて、共通鍵Kabを生成する。
そして、携帯端末10aのCPUは、受信したメッセージD4に内包されるメッセージ認証コードMACbを、一般的なMACの認証方法で検証する。
次に、携帯端末10aのCPUは、メッセージD1、D2、D3、D4に対するメッセージ認証コード(メッセージ認証コード;Message Authentication Code)MACaを、共通鍵Kabを用いて生成する。
携帯端末10aのCPUは、生成したメッセージ認証コードMACaを内包したメッセージD5を、IC用アンテナより携帯端末10b宛に送信する。
【0038】
携帯端末10bのCPUは、メッセージD5を受信し、メッセージD5に内包されているメッセージ認証コードMACaを、一般的なMACの認証方法で検証する(ステップS105)。
以上の検証結果や認証結果が全て正当であった場合に、携帯端末10aと携帯端末10aのCPUは、相互認証が成功したと判定する。
なお、上述した検証結果や認証結果に正当でないものが存在した場合には、正当でないと判定された時点で、CPUはエラーメッセージを送信して処理を終了する。
【0039】
認証が成功したと判定された場合には、携帯端末10aと、携帯端末10bとは、共通鍵Kab用いた共通暗号方式による通信を行う(ステップS106)。
ここでは、携帯端末10aは、ICカード20aに記憶されている電子バリューを読み出し、共通鍵Kabで暗号化して、携帯端末10bに送信する。
携帯端末10bは、暗号化された電子バリューを受信し、共通鍵Kabで復号して、ICカード20bの書き換え可能な領域に記憶する。
【0040】
以上のように、本発明によれば、公開鍵証明書の有効期限を変更せずに、オフラインで有効期限の検証を行うことが可能となる。
また、鍵ペアや公開鍵証明書をICカード20内の書き換え不可な領域に記憶させたことにより、安全性を高めることができる。
また、オフラインで有効期限の検証を行うことができるようにしたため、携帯端末10は、インターネットに接続することなく、相手の携帯端末10に装着されているICカード20の有効性の検証を容易に行うことが可能となる。
また、データ量の大きいCRLを使用する必要がないために、携帯端末10やICカード20のような記憶容量が少ない装置であっても、有効期限の検証を容易に行うことができる。
【0041】
[3.変形例]
以上、本発明の実施形態について説明したが、この実施形態はあくまでも例示であり、本発明の趣旨から逸脱しない範囲で様々な変形が可能である。変形例としては、例えば以下のようなものが考えられる。
【0042】
(1)上記実施形態においては、オフライン時における携帯端末10間のピアツーピアの通信を、非接触ICカードの技術を利用した通信として説明したが、これに限定されず、例えば、ピアツーピアの通信は、IrDA(Infrared Data Association)や、ブルートゥース(登録商標)等の近距離無線通信手段や、通信ケーブルを介した有線通信手段を用いたり、また、インターネットを利用せずに移動網のみを介した通信でもよい。
(2)上記実施形態における属性証明書発行時には、AAサーバ装置30は、携帯端末10aより、属性証明書Aaの発行を要求するためのHTTPリクエストを受信したときに、属性証明書Aaを発行する処理を行ったが、これに限定されず、1日に1回定期的に属性証明書Aaを生成し、記憶部に記憶しておいてもよい。
【0043】
(3)上記実施形態においては、[2.2.電子バリュー譲渡時]において、オフラインを前提として、公開鍵証明書の有効性を検証したが、これに限定されず、オンラインでCAサーバ装置40にアクセスできなかった場合にのみ、オフラインで公開鍵証明書の有効性を検証するようにしてもよい。
(4)上記実施形態においては、属性証明書用プログラムは、1日に1回という周期で起動されることとしたが、起動される周期はこれに限定されず、例えば、2日に1回起動されてもよい。
【0044】
(5)上記実施形態においては、ICカード20の製造時に、ICカード20の書き換え不可な領域に公開鍵証明書や鍵ペアが予め記憶されているとして説明したが、公開鍵証明書や鍵ペアを記憶するのは製造時に限定されない。例えば、製造後に、販売店にてICカード20に公開鍵証明書や鍵ペアが書き込まれて、書き込まれた領域が書き換え不可な領域に設定されてもよい。また、携帯端末10にICカード20が装着された後に、ICカード20に公開鍵証明書や鍵ペアが書き込まれ、書き込まれた領域が書き換え不可に設定されてもよい。
(6)上記実施形態においては、図8に示されるシーケンスによる相互認証を行ったが、相互認証の方法はこれに限定されない。例えば、パスワードを用いた相互認証でもよい。
(7)上記実施形態においては、ステップS101とステップS102において、有効期限を検証する際に、公開鍵証明書と属性証明書との有効期限が現在日付を過ぎていないことを検証したが、属性証明書の有効期限のみを検証してもよい。
(8)上記実施形態においては、AAサーバ装置30が、属性証明書Aaの発行を要求するためのHTTPリクエストを受信したときに、CRLを用いて公開鍵証明書Caが失効しているか否かを確認したが、これに限定されず、OCSPレスポンダに問い合わせることによって、公開鍵証明書Caが失効しているか否かを確認してもよい。
【0045】
(9)上記実施形態においては、属性証明書用プログラムをタイマー起動するようにしたが、ユーザAが、1日に1回、携帯端末10aを操作して、手動で属性証明書用プログラムを起動するようにしてもよい。
また、属性証明書用プログラムを自動起動したときに、携帯端末10aが、電波が届かない位置に位置していたために、属性証明書Aaを要求するためのデータをAAサーバ装置30に送信できなかった場合には、携帯端末10aの表示部に、ユーザAが手動で属性証明書用プログラムを起動することを促すためのメッセージを表示するようにしてもよい。
(10)上記実施形態においては、CAサーバ装置40とAAサーバ装置30とを使用したが、CAサーバ装置40とAAサーバ装置30の機能を備えた1つのサーバ装置を使用することも可能である。
【0046】
【発明の効果】
以上説明したように、本発明によれば、大量のリソースを必要とせず、公開鍵証明書の有効性の検証をオフラインで実現することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る通信システムの構成を示すブロック図である。
【図2】同実施形態に係る携帯端末のハードウェア構成を示すブロック図である。
【図3】同実施形態に係る公開鍵証明書のデータ構成を示す図である。
【図4】同実施形態に係る属性証明書のデータ構成を示す図である。
【図5】同実施形態に係る属性証明書発行時の処理を示す図である。
【図6】同実施形態に係る属性証明書発行時のICカード20aに記憶されている公開鍵証明書Caのデータ構成を示す図である。
【図7】同実施形態に係る属性証明書発行時のICカード20aに記憶される属性証明書Aaのデータ構成を示す図である。
【図8】同実施形態に係る電子バリュー譲渡時のシーケンスを示す図である。
【図9】同実施形態に係る電子バリュー譲渡時のICカード20bに記憶されている公開鍵証明書Cbと属性証明書Abとのデータ構成を示す図である。
【符号の説明】
10、10a、10b……携帯端末、20、20a、20b……ICカード、30……AAサーバ装置、40……CAサーバ装置、50……通信ネットワーク、60……インターネットショップサーバ。
Claims (4)
- 秘密鍵を記憶した、記憶内容の書き換えが許容されていない第1の記憶手段と、
公開鍵の正当性を証明する公開鍵証明書を記憶した第2の記憶手段と、
第3の記憶手段と、
前記公開鍵証明書に対応する属性証明書を予め定められたサーバ装置から取得し前記第3の記憶手段に書き込む更新手段と、
前記公開鍵証明書および前記属性証明書を通信相手へ送信する送信手段と
を有する第1の電子機器と、
前記第1の電子機器から送信された前記公開鍵証明書および前記属性証明書を受信する受信手段と、
前記受信手段により受信された前記属性証明書に記録されている有効期限を用いて、前記受信手段により受信された前記公開鍵証明書の有効性を検証する検証手段と
を有する第2の電子機器と
を有する公開鍵証明書検証システム。 - 前記サーバ装置は、
記憶手段と、
前記記憶手段に記憶されている属性証明書を周期的に更新する更新手段と
を有することを特徴とする請求項1に記載の公開鍵証明書検証システム。 - 前記第2の電子機器は、
前記検証手段を制御し、通信不能の場合にのみ前記検証手段による検証を許可する制御手段を有する
ことを特徴とする請求項1に記載の公開鍵証明書検証システム。 - 前記第1の電子機器は、周期的に前記サーバ装置より前記属性証明書を取得し、前記更新手段により前記第3の記憶手段に前記属性証明書を書き込む周期更新手段を有する
ことを特徴とする請求項1に記載の公開鍵証明書検証システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003091206A JP2004304227A (ja) | 2003-03-28 | 2003-03-28 | 公開鍵証明書検証システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003091206A JP2004304227A (ja) | 2003-03-28 | 2003-03-28 | 公開鍵証明書検証システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004304227A true JP2004304227A (ja) | 2004-10-28 |
Family
ID=33404629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003091206A Pending JP2004304227A (ja) | 2003-03-28 | 2003-03-28 | 公開鍵証明書検証システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004304227A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006154125A (ja) * | 2004-11-26 | 2006-06-15 | Ntt Docomo Inc | ローカル認証システム、ローカル認証装置、ローカル認証方法 |
JP2008544593A (ja) * | 2005-03-31 | 2008-12-04 | クゥアルコム・インコーポレイテッド | 多重署名−強力な多者ディジタル署名のためのプロトコル |
US8321680B2 (en) | 2005-03-31 | 2012-11-27 | Qualcomm Incorporated | Multisigning—a protocol for robust multiple party digital signatures |
JP2013513256A (ja) * | 2009-10-07 | 2013-04-18 | テルコーディア テクノロジーズ インコーポレイテッド | 限られた数のインフラ・サーバを有する自動車ネットワーク向け公開鍵インフラに関する方法 |
JP2014155043A (ja) * | 2013-02-08 | 2014-08-25 | Toppan Printing Co Ltd | Icカード |
-
2003
- 2003-03-28 JP JP2003091206A patent/JP2004304227A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006154125A (ja) * | 2004-11-26 | 2006-06-15 | Ntt Docomo Inc | ローカル認証システム、ローカル認証装置、ローカル認証方法 |
JP2008544593A (ja) * | 2005-03-31 | 2008-12-04 | クゥアルコム・インコーポレイテッド | 多重署名−強力な多者ディジタル署名のためのプロトコル |
JP2011188521A (ja) * | 2005-03-31 | 2011-09-22 | Qualcomm Inc | 多重署名−強力な多者ディジタル署名のためのプロトコル |
JP4938760B2 (ja) * | 2005-03-31 | 2012-05-23 | クゥアルコム・インコーポレイテッド | 多重署名−強力な多者ディジタル署名のためのプロトコル |
US8321680B2 (en) | 2005-03-31 | 2012-11-27 | Qualcomm Incorporated | Multisigning—a protocol for robust multiple party digital signatures |
JP2013513256A (ja) * | 2009-10-07 | 2013-04-18 | テルコーディア テクノロジーズ インコーポレイテッド | 限られた数のインフラ・サーバを有する自動車ネットワーク向け公開鍵インフラに関する方法 |
JP2014155043A (ja) * | 2013-02-08 | 2014-08-25 | Toppan Printing Co Ltd | Icカード |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4589758B2 (ja) | データ通信システム,代行システムサーバ,コンピュータプログラム,およびデータ通信方法 | |
JP4750695B2 (ja) | コンテンツ提供システム、情報処理装置及びメモリカード | |
JP4372446B2 (ja) | 文書およびサービスへの安全なアドホックアクセス | |
JP4800377B2 (ja) | 認証システム、ce機器、携帯端末、鍵証明発行局および鍵証明取得方法 | |
JP4690389B2 (ja) | 認証書廃棄目録を利用したデジタル著作権管理方法及び装置 | |
KR100682263B1 (ko) | 모바일을 이용한 원격 권한인증 시스템 및 방법 | |
WO2002087149A1 (fr) | Systeme de communication de terminaux | |
JP2004046430A5 (ja) | ||
JP2004046430A (ja) | リモートアクセスシステム、リモートアクセス方法、リモートアクセスプログラム及びリモートアクセスプログラムが記録された記録媒体 | |
WO2003105400A1 (ja) | データ処理システム、データ処理装置、および方法、並びにコンピュータ・プログラム | |
JP2001313636A (ja) | 認証システム、認証方法、認証装置及びその方法 | |
CN106209373B (zh) | 密钥生成系统、数据签章与加密系统及方法 | |
KR101007375B1 (ko) | 스마트 카드 인증서 관리 장치 및 방법 | |
JP6464511B2 (ja) | 認証システムおよび認証方法 | |
JP5264548B2 (ja) | 認証システムおよび認証方法 | |
JP2001251297A (ja) | 情報処理装置、該情報処理装置を具備する暗号通信システム及び暗号通信方法 | |
KR100559958B1 (ko) | 이동통신 단말기간의 인증도구 중계 서비스 시스템 및 방법 | |
JP2010251974A (ja) | データ転送方法、データ転送システム及びデータ中継プログラム | |
JP2004304227A (ja) | 公開鍵証明書検証システム | |
JP2021073564A (ja) | 通信装置、通信方法、およびコンピュータプログラム | |
JP2004302835A (ja) | デジタルコンテンツ管理システム、利用者端末装置、ライツマネジメント方法 | |
KR100501172B1 (ko) | 무선 인터넷을 위한 무선 인증서 상태 관리 시스템 및방법과 이를 이용한 무선 인증서 상태 검증 방법 | |
JP2004064181A (ja) | ホームゲートウェイ装置およびプログラム | |
JP4504130B2 (ja) | 通信装置、通信システム、証明書送信方法及びプログラム | |
WO2004088557A1 (ja) | 情報処理システム、情報処理装置および方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050407 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060524 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060530 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060905 |