クライアント装置、サーバ装置及びプログラム
【課題】 2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立する。
【解決手段】 クライアント装置100は、合意処理のハンドシェイク中に、サーバ装置200から乱数を含むメッセージを受信すると、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置に送信する。その後、クライアント装置100は、通知された生体認証方式情報に基づいて生体認証を実行すると共に、前述した乱数を秘密鍵により暗号化する。また、クライアント装置100は、生体認証の結果、生体認証方式情報、暗号化乱数、クライアント証明書から認証子を生成し、これらを含む認証コンテキストをサーバ装置200に送信する。サーバ装置200は、認証コンテキストを検証し、1回のハンドシェイクでセキュアセッションを確立する。
【解決手段】 クライアント装置100は、合意処理のハンドシェイク中に、サーバ装置200から乱数を含むメッセージを受信すると、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置に送信する。その後、クライアント装置100は、通知された生体認証方式情報に基づいて生体認証を実行すると共に、前述した乱数を秘密鍵により暗号化する。また、クライアント装置100は、生体認証の結果、生体認証方式情報、暗号化乱数、クライアント証明書から認証子を生成し、これらを含む認証コンテキストをサーバ装置200に送信する。サーバ装置200は、認証コンテキストを検証し、1回のハンドシェイクでセキュアセッションを確立する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュアセッションを確立するクライアント装置、サーバ装置及びプログラムに係り、例えば、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立し得るクライアント装置、サーバ装置及びプログラムに関する。
【背景技術】
【0002】
ネットワーク上で情報を暗号化通信するためのプロトコルの1つにTLS(Transport Layer Security)プロトコルがある。このTLSプロトコルは、エンティティ認証を行った後にセキュアセッションを確立してデータの暗号通信を可能にする技術である(例えば、非特許文献1参照。)。
【0003】
TLSプロトコルの関連技術として、TLS内部アプリケーション(TLS Inner Application)がある。TLS内部アプリケーションは、TLSハンドシェイク(TLS handshake)によりセキュアセッションを確立した後に、レコード層(Record Layer)において拡張処理を可能にしている(例えば、非特許文献2参照。)。TLS内部アプリケーションでは、この拡張処理で生体認証を行うことにより、エンティティ認証と生体認証とを行うことができる(例えば、特許文献1−3及び非特許文献3参照)。
【特許文献1】特開2003−44436号公報
【特許文献2】特開2006−11768号公報
【特許文献3】特開2003−224562号公報
【非特許文献1】T. Dierks、C. Allen、" The TLS Protocol Version 1.0"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc2246.txt>
【非特許文献2】P. Funk, S. Blake-Wilson, N. Smith, H. Tschofenig, T. Hardjono、" TLS Inner Application Extension (TLS/IA) draft-funk-tls-inner-application-extension-03.txt"、[online]、 [2007年4月27日検索]、インターネット<URL:http://tools.ietf.org/wg/tls/draft-funk-tls-inner-application-extension-03.txt>
【非特許文献3】S. Santesson、" TLS Handshake Message for Supplemental Data"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc4680.txt>
【非特許文献4】S. Blake-Wilson, M. Nystrom, D. Hopwood, J. Mikkelsen, T. Wright、" Transport Layer Security (TLS) Extension"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc4366.txt>
【非特許文献5】C. Adams, P. Cain, D. Pinkas, R. Zuccherato、" Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc3161.txt>
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、以上のようなTLSプロトコル又はTLS内部アプリケーションの技術においては、本発明者の検討によれば、以下の点で改良の余地があると考えられる。
【0005】
TLSプロトコル又はTLS内部アプリケーションのいずれにしても、エンティティ認証によってセキュアセッションを確立した後に生体認証を行う場合に、単純にエンティティ認証と生体認証をそれぞれ行っていることからハンドシェイク(handshake)を2回行っているに過ぎず、不要なパスが存在する。
【0006】
さらにエンティティ認証でセキュアセッションを確立した後に生体認証に失敗した場合には、TLSのセッションを破棄しなければならないので、生体認証までの処理が無駄になってしまう。この場合、エンティティ認証でセキュアセッションを確立した処理という大きい処理が無駄になっている。このため、このような無駄になる処理は低減することが望ましい。
【0007】
本発明は上記実情を考慮してなされたもので、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立し得るクライアント装置、サーバ装置及びプログラムを提供することを目的とする。
【0008】
本発明の他の目的は、生体認証に失敗した場合でも、無駄になる処理を低減し得るクライアント装置、サーバ装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
第1乃至第4の発明は、ユーザに操作されるクライアント装置とサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能な前記クライアント装置及び前記サーバ装置を対象とする。
【0010】
ここで、第1の発明のクライアント装置は、前記ユーザを生体認証するための生体認証手段と、公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、前記合意処理中に、前記サーバ装置から乱数を含むメッセージを受信する手段と、前記メッセージの受信後、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体認証手段を起動する手段と、前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、前記生体認証手段による生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、を備えている。
【0011】
第1の発明のサーバ装置は、受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、前記合意処理中に、乱数を含むメッセージを前記クライアント装置に送信する手段と、前記メッセージの送信後、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、前記通知の後、前記生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、前記認証コンテキスト内の生体認証方式情報と前記通知した生体認証方式情報とが互いに異なるとき、前記合意処理を中断する手段と、前記認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、を備えている。
【0012】
また、第2の発明のクライアント装置は、前記合意処理中に、前記ユーザから生体情報を取得するための生体情報取得手段と、前記生体情報取得手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、第1乱数を生成するための乱数生成手段と、前記合意処理中に、前記第1乱数を含む第1メッセージを作成し、この第1メッセージを前記サーバ装置に送信する手段と、前記第1メッセージの送信後、前記サーバ装置から第2乱数を含む第2メッセージを受信する手段と、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体情報取得手段を起動する手段と、前記第1乱数及び前記第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、前記生体情報取得手段により取得した生体情報を前記暗号化用パラメータに基づいて暗号化し、得られた暗号化生体情報を前記サーバ装置に通知することにより、前記合意処理を継続する手段と、を備えている。
【0013】
第2の発明のサーバ装置は、受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、前記ユーザの生体参照情報が記憶された生体参照情報記憶手段と、前記合意処理中に、前記クライアント装置から第1乱数を含む第1メッセージを受信する手段と、前記第1メッセージの受信後、第2乱数を含む第2メッセージを前記クライアント装置に送信する手段と、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、前記通知の後、前記生体認証方式情報に従って取得された前記ユーザの生体情報が前記第1乱数及び前記第2乱数に基づいて暗号化されてなる暗号化生体情報を前記クライアント装置から受信する手段と、前記第1メッセージ内の第1乱数及び前記第2メッセージ内の第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、前記暗号化生体情報を前記暗号化用パラメータに基づいて復号する手段と、前記復号により得られた生体情報を、前記生体参照情報記憶手段内の生体参照情報に基づいて生体認証する生体認証手段と、前記生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、を備えている。
【0014】
さらに、第3の発明のクライアント装置は、前記ユーザを生体認証するための生体認証手段と、公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記サーバ装置に送信する手段と、前記第1メッセージの送信後、前記サーバ装置から乱数を含む第2メッセージを受信する手段と、前記第2メッセージの受信後、前記生体認証手段を起動する手段と、前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、前記生体認証手段による生体認証の結果が正当のとき、前記証明書記憶手段内のクライアント証明書を前記サーバ装置に送信する手段と、前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数から前記秘密鍵に基づいて、認証子を生成する手段と、前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、を備えている。
【0015】
第3の発明のサーバ装置は、前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記クライアント装置から受信する手段と、前記第1メッセージの受信後、乱数を含む第2メッセージを前記クライアント装置に送信する手段と、前記第2メッセージの送信後、前記クライアント装置からクライアント証明書を受信する手段と、前記第2メッセージの送信後、前記ユーザの生体認証の結果およびその処理の正当性を保証する情報と暗号化乱数と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、前記受信したクライアント証明書及び認証コンテキストを記憶する記憶手段と、前記記憶手段に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、前記記憶手段に記憶された認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記第2メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、前記記憶手段に記憶されたクライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、を備えている。
【0016】
また、第4の発明のクライアント装置は、公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、前記合意処理の前に、前記ユーザを生体認証するための生体認証手段と、前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、前記合意処理の前に、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書と前記認証子とを含む認証コンテキストを生成する手段と、前記合意処理の前に、前記認証コンテキストをタイムスタンプ提供装置に送信する手段と、前記送信した認証コンテキスト及び前記タイムスタンプ提供装置における日時情報に対して、当該タイムスタンプ提供装置の秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、前記タイムスタンプが付与された認証コンテキストを前記タイムスタンプ提供装置から受信する手段と、前記合意処理中に、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記タイムスタンプが付与された認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、を備えている。
【0017】
第4の発明のサーバ装置は、受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、前記合意処理中に、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、前記通知の後、タイムスタンプ提供装置の秘密鍵によるタイムスタンプが付与され且つ前記ユーザの生体認証の結果およびその処理の正当性を保証する情報、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストを前記クライアント装置から受信する手段と、前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、前記認証コンテキスト内の生体認証方式情報が前記通知した生体認証方式とは異なるとき、前記合意処理を中断する手段と、前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、前記タイムスタンプ提供装置の秘密鍵に対応する公開鍵に基づいて前記タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、前記合意処理を中断する手段と、を備えている。
【0018】
なお、以上の各発明は、各々の「装置」として表現したが、「装置」に限らず、「方法」、「プログラム」又は「プログラムを記憶したコンピュータ読み取り可能な記憶媒体」として表現してもよい。
【0019】
(作用)
第1乃至第4の各発明においては、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0020】
ここで、第1の発明においては、前述した作用に加え、合意処理中のメッセージに含まれる乱数から生成した暗号化乱数を含む認証コンテキストをサーバ装置に送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させるので、生体認証に伴う通信の発生を抑制することができる。
【0021】
第2の発明においては、前述した作用に加え、合意処理中の各メッセージに含まれる第1乱数及び第2乱数に基づいて生体情報を暗号化してサーバ装置に送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させつつ、サーバマッチングによる生体認証を実現させることができる。
【0022】
第3の発明においては、前述した作用に加え、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージをサーバ装置に送信する構成により、生体認証に基づいて取得したクライアント証明書を用いてセキュアセッションを確立していることをサーバ装置が検証することができる。
【0023】
第4の発明においては、前述した作用に加え、合意処理の前に、タイムスタンプを付与した認証コンテキストを生成しておき、合意処理中に、タイムスタンプを付与した認証コンテキストをサーバ装置に送信する構成により、合意処理を中断することなく予め作成した認証コンテキストに基づいてセキュアセッションを確立することができる。また、認証コンテキストに付与したタイムスタンプにより、再送攻撃を防止することができる。
【発明の効果】
【0024】
以上説明したように本発明によれば、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の各実施形態について図面を用いて説明するが、その前に、各実施形態の前提となるTLSハンドシェイク(RFC)の各メッセージの概要を述べておく。
【0026】
TLSハンドシェイクの各メッセージは、クライアントハロー(Client Hello)、サーバハロー(Server Hello)、サーバ証明書(Server Certificate)(オプション)、証明書要求(Certificate Request)(オプション)、サーバハロー終了(Server Hello Done)、クライアント証明書(Client Certificate)(オプション)、クライアント鍵交換(Client Key Exchange)、証明書検証(Certificate Verify)(オプション)、暗号化仕様変更(Change Cipher Spec)、終了(Finished)、暗号化仕様変更(Change Cipher Spec)、終了(Finished)、の順に通信される。
【0027】
ここで、クライアントハロー(Client Hello)メッセージは、クライアントからサーバに初めて接続を行うとき、あるいはサーバからHello Requestを受取った時に送信される。クライアントハローメッセージの中には、使用する暗号化アルゴリズムや圧縮アルゴリズムのリストが格納される。既存のセッションを再開するときには、セッションIDも送信される。クライアントハローメッセージを送信すると、クライアントは、サーバ側から送信されるサーバハローメッセージを待つ。
【0028】
サーバハロー(Server Hello)メッセージは、クライアントから送信された暗号化アルゴリズムと圧縮アルゴリズムのリストからどれを使用するかを指定する。セッションIDも送信されてきて、サーバが許可する場合には既存セッションを再開する。
【0029】
サーバ証明書(Server Certificate)メッセージ(オプション)は、サーバから自身の証明書(CCITT勧告X.509で規定される形式)をクライアントに送信する。また、ここにはルート認証局までの証明書のリストを全て含んだ形式で送信される。
【0030】
証明書要求(Certificate Request)メッセージ(オプション)は、サーバからクライアントの証明書の提示を要求する場合に送られる。このメッセージには、サーバが信頼する認証局のリストが付加されている。
【0031】
サーバハロー終了(Server Hello Done)メッセージは、ハローメッセージの一連の送受信が無事に終了すると、クライアントに送信される。その後、サーバはクライアントからのメッセージを待つ。
【0032】
クライアント証明書(Client Certificate)メッセージ(オプション)は、サーバから証明書要求(Certificate Request)を受信した場合に送信される。サーバからの要求に適した証明書が無ければ、証明書無し(no_certificate)の警告(Alert)を返信する。データの形式は、サーバ証明書(Server Certificate)と同じである。
【0033】
クライアント鍵交換(Client Key Exchange)メッセージでは、クライアントハローとサーバハローとで合意した暗号化アルゴリズムを使用して、プリマスターシークレットデータを生成して、暗号化して送信する。プリマスターシークレットデータとは、暗号化に使用するセッション鍵を生成する時に使用されるマスターシークレットを生成する元となるデータである。
【0034】
証明書検証(Certificate Verify)メッセージ(オプション)では、クライアントの証明書を送信している場合、クライアントが今までのサーバとのハローメッセージのやり取りから署名を生成してサーバに送信する。具体的には、今までのやり取りのデータのハッシュ値をクライアント側の秘密鍵で暗号化したものを送信する。サーバは、クライアントから受信した証明書をクライアント側の公開鍵で復号し、取得したハッシュ値と比較して署名を検証する。
【0035】
暗号化仕様変更(Change Cipher Spec)メッセージは、クライアントから双方で合意した暗号化アルゴリズムで通信を行うことを宣言するメッセージである。
【0036】
終了(Finished)メッセージは、クライアントが、サーバとのやり取りが正常に終了し、セッション確立のために必要なデータが揃ったことをサーバに知らせるためのメッセージである。
【0037】
暗号化仕様変更(Change Cipher Spec)メッセージは、サーバから双方で合意した暗号化アルゴリズムで通信を行うことを宣言するメッセージである。
【0038】
終了(Finished)メッセージは、サーバが、クライアントとのやり取りが正常に終了し、セッション確立のために必要なデータが揃ったことをクライアントに知らせるためのメッセージである。
【0039】
以上がTLSハンドシェイクの概要である。続いて、本発明の各実施形態を説明する。なお、以下の各実施形態は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【0040】
(第1の実施形態)
図1は本発明の第1の実施形態に係る認証システムの構成を示す模式図である。この認証システムは、インターネット等のネットワークを介して互いに通信可能なクライアント装置100及びサーバ装置200から構成される。
【0041】
ここで、クライアント装置100は、通信部101、制御部102、セキュリティポリシー保存部103、鍵保存部104、生体認証処理制御部105、テンプレート保存部106、生体情報取得部107、生体認証実行部108、認証コンテキスト生成部109、秘匿部110、暗号化部111、圧縮部112、検証部113及び鍵交換部114を備えている。
【0042】
通信部101は、制御部102に制御され、インターネットを介してサーバ装置200とデータを送受信する機能をもっている。
【0043】
制御部102は、合意処理中の周知のメッセージ制御機能に加え、合意処理中に生体認証に関するメッセージを制御するように各部101,103〜114を制御する機能をもっている。各メッセージの詳細は後述する。
【0044】
具体的には制御部102は、周知のメッセージ制御機能に加え、合意処理中に、サーバ装置から乱数データを含むサーバハローメッセージを通信部101により受信する機能と、サーバハローメッセージの受信後、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置200に送信する機能と、生体認証交渉メッセージの送信後、サーバ装置200から通知された生体認証方式情報に基づいて、生体認証処理制御部105を起動する機能と、サーバハローメッセージ内の乱数データをクライアントの秘密鍵に基づいて暗号化部111により暗号化し、暗号化乱数を生成する機能と、認証コンテキスト生成部109から受けた認証コンテキストを通信部101によりサーバ装置200に送信することにより、合意処理を継続する機能とをもっている。
【0045】
セキュリティポリシー保存部103は、制御部102から読出/書込可能な記憶装置であり、周知の秘匿通信のセキュリティポリシーに加え、生体認証に関するセキュリティポリシーが予め保存されている。
【0046】
ここで、セキュリティポリシーは、例えば図2に示すように、実行可能なポリシーとして、生体認証実行部108の安全性、生体認証実行部108の品質、生体認証方式を示す生体認証方式情報、照合パラメータ、テンプレートの安全性、テンプレートの品質が記述されている。
【0047】
鍵保存部104は、制御部102、秘匿部110及び認証コンテキスト生成部109から読出/書込可能な記憶装置であり、クライアント装置100の公開鍵を含むクライアント証明書と、当該公開鍵に対応する秘密鍵とが保存されている。
【0048】
生体認証処理制御部105は、制御部102に制御されて生体認証処理を行うように、テンプレート保存部106、生体情報取得部107及び生体認証実行部108を制御する機能と、得られた生体認証の結果を認証コンテキスト生成部109に送出する機能とをもっている。
【0049】
テンプレート保存部106は、予め登録された利用者の生体情報(テンプレート)が格納され、生体認証処理制御部105からの要求によりテンプレートを生体認証実行部108に出力する機能をもっている。
【0050】
生体情報取得部107は、生体認証処理制御部105に制御され、利用者の生体情報を取得して生体認証実行部108に出力する機能をもっている。
【0051】
生体認証実行部108は、生体認証処理制御部105に制御され、生体情報取得部107から受けた生体情報とテンプレート保存部106内のテンプレートとに基づく生体認証処理を実行し、生体認証の結果を生体認証処理制御部105に出力する機能をもっている。
【0052】
認証コンテキスト生成部109は、生体認証処理制御部105により得られた生体認証の結果およびその処理の正当性を保証する情報と生体認証方式情報と暗号化乱数とクライアント証明書とからクライアントの秘密鍵に基づいて、認証子(デジタル署名)を生成する機能と、生体認証の結果と生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを制御部102に送出する機能とをもっている。
【0053】
ここで、認証コンテキストの一例としては、図3に示すように、一般コンテキストg及び特定コンテキストpを備えたものとしてもよい。一般コンテキストgは、ヘッダブロックgh及びghに対する認証子ブロックgaを備えている。特定コンテキストpは、ヘッダブロックph、データブロックpd、クライアント証明書ブロックpc及びph,pd,pcに対する認証子ブロックgaを備えている。一般コンテキストgのヘッダブロックghは、特定コンテキストのヘッダブロックphを一意に特定可能なヘッダ情報を含んでいる。データブロックpdは、例えば、生体認証の結果、生体認証方式情報及び暗号化乱数を含んでいる。
【0054】
秘匿部110は、制御部102に制御されて鍵に関する秘匿処理を実行するものであり、具体的には、暗号化部111、圧縮部112、検証部113及び鍵交換部114を備えている。なお、秘匿部110の機能ブロックは、合意処理のオプションで選択しなかった場合のように、使用しない場合もある。これは以下の各実施形態でも同様である。
【0055】
暗号化部111は、制御部102から鍵及びデータを受けると、鍵に基づいてデータを暗号化し、得られた暗号化データを制御部102に送出する機能をもっている。また、暗号化部111は、擬似乱数生成関数(pseudo-random function:PRF)により擬似乱数を生成する機能をもっている。
【0056】
圧縮部112は、制御部102から受けたデータを圧縮し、得られた圧縮データを制御部102に送出する機能をもっている。
【0057】
検証部113は、制御部102から鍵及びデータを受けると、鍵に基づいてデータを検証し、検証結果を制御部102に送出する機能をもっている。
【0058】
鍵交換部114は、制御部102から鍵及びデータを受けると、鍵及びデータに基づいて鍵交換処理を実行し、得られた処理結果を制御部102に送出する機能をもっている。
【0059】
一方、サーバ装置200は、通信部201、制御部202、セキュリティポリシー保存部203、鍵保存部204、認証コンテキスト検証部205、秘匿部206、暗号化部207、圧縮部208、検証部209及び鍵交換部210を備えている。
【0060】
通信部201は、制御部202に制御され、インターネットを介してクライアント装置100とデータを送受信する機能をもっている。
【0061】
制御部202は、周知のメッセージ制御機能に加え、合意処理中に生体認証に関するメッセージを制御するように各部201,203〜210を制御する機能をもっている。各メッセージの詳細は後述する。
【0062】
具体的には制御部202は、周知のメッセージ制御機能に加え、合意処理中に、乱数を含むメッセージをクライアント装置100に送信する機能と、メッセージの送信後、クライアント装置100の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージをクライアント装置100から受信する機能と、生体認証交渉メッセージ内の生体認証方式情報がセキュリティポリシー保存部203内の各生体認証方式情報のいずれかに一致するか否かを判定する機能と、判定の結果が一致を示すとき、当該生体認証方式情報をクライアント装置100に通知する機能と、通知の後、生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストをクライアント装置100から受信する機能と、認証コンテキストを認証コンテキスト検証部205に送出し、認証コンテキスト検証部205から受けた検証結果に応じて合意処理を継続又は中断する機能とをもっている。
【0063】
セキュリティポリシー保存部203は、制御部202から読出/書込可能な記憶装置であり、周知の秘匿通信のセキュリティポリシーに加え、生体認証に関するセキュリティポリシーが予め保存されている。
【0064】
ここで、セキュリティポリシーは、例えば図4に示すように、(後述するステップST13の)アプリケーション毎に、受け入れ可能なポリシーを列挙しており、各ポリシーには、生体認証実行部の安全性、生体認証実行部の品質、生体認証方式を示す生体認証方式情報、照合パラメータ、テンプレートの安全性、テンプレートの品質が記述されている。また、セキュリティポリシーは、例えば図5に示すように、(後述するステップST13の)アプリケーション毎に、受け入れ可能なポリシーが複数存在してもよい。
【0065】
鍵保存部204は、制御部202及び秘匿部206から読出/書込可能な記憶装置であり、サーバ装置200の公開鍵を含むサーバ証明書と、当該公開鍵に対応する秘密鍵とが保存されている。
【0066】
認証コンテキスト検証部205は、(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報と通知した生体認証方式情報とが互いに異なるとき、(iii)認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がメッセージ内の乱数と異なるとき、又は(iv)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、のいずれかに該当する場合、合意処理を中断する旨の検証結果を制御部に送出する機能と、上記(i)〜(iv)に該当しない場合、合意処理を継続する旨の検証結果を制御部202に送出する機能と、をもっている。
【0067】
秘匿部206は、制御部202に制御されて鍵に関する秘匿処理を実行するものであり、具体的には、暗号化部207、圧縮部208、検証部209及び鍵交換部210を備えている。なお、秘匿部206の機能ブロックは、合意処理のオプションで選択しなかった場合のように、使用しない場合もある。これは以下の各実施形態でも同様である。
【0068】
暗号化部207は、制御部202から鍵及びデータを受けると、鍵に基づいてデータを暗号化し、得られた暗号化データを制御部202に送出する機能をもっている。また、暗号化部207は、擬似乱数生成関数(pseudo-random function:PRF)により擬似乱数を生成する機能をもっている。
【0069】
圧縮部208は、制御部202から受けたデータを圧縮し、得られた圧縮データを制御部202に送出する機能をもっている。
【0070】
検証部209は、制御部202から鍵及びデータを受けると、鍵に基づいてデータを検証し、検証結果を制御部202に送出する機能をもっている。
【0071】
鍵交換部210は、制御部202から鍵及びデータを受けると、鍵及びデータに基づいて鍵交換処理を実行し、得られた処理結果を制御部202に送出する機能をもっている。
【0072】
次に、以上のように構成された認証システムの動作を図6のシーケンス図を用いて説明する。なお、各シーケンス図は秘匿通信のハンドシェイクプロトコルを表している。また、図中に網掛けで表したステップ(ST1,ST2,ST-CBN,ST-SBN,ST-BP,ST-BV)以外のステップST3〜ST5、ST6〜13は周知技術と同じであるため、詳細な説明を省略する。これは以下の各実施形態でも同様である。
【0073】
(ステップST1)
クライアント装置100においては、ハンドシェイクの拡張処理がある旨を通知するため、従来のハロー(Hello)メッセージを拡張したクライアントハローメッセージMCHを制御部102が通信部101によりサーバ装置200に送信する。
【0074】
このクライアントハロー(ClientHello)メッセージMCHは、図7に示すように、クライアントのプロトコルバージョン(ProtocolVersion)、クライアント装置100が生成した乱数データ(Random)、セッションID(SessionID)、クライアント装置100が実行可能な暗号化アルゴリズム(CipherSuite)、クライアント装置100が実行可能な圧縮方式(CompressionMethod)、このハンドシェイクで拡張処理を行うことを示す拡張(Extension)リストMCH-LISTを含んでいる。この拡張リストMCH-LISTについては、例えば図8に示すように、生体認証に基づくクライアント認証(Client_auth)を含む拡張型(ExtensionType)と、生体認証方式情報(unit8 AuthenticationMethod[2])を含む拡張方式(ExtensionMethod)とを含んでいる。
【0075】
この拡張リストMCH-LISTにより通知する内容は、生体認証に基づいてクライアント認証を行い、クライアント認証の結果に応じてセキュアセッションを確立することである。その他の詳細は周知の技術と同じであるので省略する。
【0076】
(ステップST2)
サーバ装置200においては、クライアントハローメッセージMCHを通信部201により制御部202が受信する。制御部202は、ハンドシェイクの拡張処理について了解した旨を通知するため、拡張したサーバハロー(ServerHello)メッセージMSHを通信部201によりクライアント装置100に送信する。
【0077】
サーバハローメッセージMSHは、図9に示すように、サーバ装置200のプロトコルバージョン(ProtocolVersion)、サーバ装置200が生成した乱数データ(Random)、セッションID(SessionID)、サーバ装置200が合意した暗号化アルゴリズム(CipherSuite)、サーバ装置200が合意した圧縮方式(CompressionMethod)、このハンドシェイクで拡張処理を行うことを示す拡張リスト(Extension)を含んでいる。
【0078】
その他の詳細は周知の技術と同じであるので省略する。
【0079】
(ステップST3)
サーバ装置200においては、サーバ認証を行うため、及びクライアント装置100との鍵交換に必要なデータを送信するため、鍵保存部204内のサーバ証明書を含むサーバ証明書(ServerCertificate)メッセージを制御部202が通信部201によりクライアント装置100に送信する。またサーバ証明書にクライアント装置100との鍵交換に必要なデータが含まれていない場合、制御部202は、通信部201により、サーバ証明書メッセージに続けてサーバ鍵交換(ServerKeyExchange)メッセージをクライアント装置100に送信する。
【0080】
もしサーバ認証を行わない場合、図10に示すように、サーバ証明書メッセージを送信せずに、サーバ鍵交換メッセージをクライアント装置100に送信する。
【0081】
(ステップST4)
サーバ装置200においては、オプションで選択されていれば制御部202が通信部201により、クライアント証明書を要求する証明書要求(CertificateRequest)メッセージをクライアント装置100に送信する。
【0082】
(ステップST5)
サーバ装置200においては、制御部202が通信部201により、ハローメッセージの一連の処理が終了した旨のサーバハロー終了(ServerHelloDone)メッセージをクライアント装置100に送信する。
【0083】
(ステップST−CBN)
クライアント装置100においては、クライアント装置100で実行可能な生体認証方式のリストをサーバに通知するため、制御部102が通信部101により、クライアント生体認証交渉(ClientBiometricNegotiation)メッセージMCBNをサーバ装置200に送信する。
【0084】
クライアント生体認証交渉メッセージMCBNは、図11に示すように、クライアント装置100で実行可能な生体認証方式を示す生体認証方式情報をリストにした生体認証方式リスト(BiometricMethodList)を含んでいる。
【0085】
(ステップST−SBN)
サーバ装置200においては、クライアント生体認証交渉メッセージを制御部202が通信部201により受信すると、制御部202がクライアント生体認証交渉メッセージ内の生体認証方式リストの生体認証方式情報がセキュリティポリシー保存部203内の生体認証方式情報のいずれかに一致するか否かを判定する。
【0086】
制御部202は、判定の結果が一致を示すとき、当該生体認証方式情報を含むサーバ生体認証交渉(ServerBiometricNegotiation)メッセージMSBNを通信部201によりクライアント装置100に送信する。ここで選択した方式は複数であってもよい。
【0087】
サーバ生体認証交渉メッセージMSBNは、図12に示すように、セキュリティポリシー保存部203内のセキュリティポリシーを満たす生体認証方式を示す生体認証方式情報をリストにした生体認証方式リスト(BiometricMethodList)を含んでいる。
【0088】
(ステップST−BP)
クライアント装置100においては、サーバ生体認証交渉メッセージを制御部102が通信部101により受信すると、制御部102が、サーバ生体認証交渉メッセージ内の生体認証方式情報に基づいて、生体認証処理制御部105を起動する。生体認証処理制御部105は、各部106〜108を制御してユーザの生体認証処理を実行し、得られた生体認証の結果を認証コンテキスト生成部109に送出する。
【0089】
また、制御部102は、暗号化部111により、サーバハロー(ServerHello)メッセージMSHに含まれる乱数データを鍵保存部104内の秘密鍵に基づいて暗号化し、暗号化乱数を生成する。この暗号化乱数は、制御部102から認証コンテキスト生成部109に送出される。
【0090】
認証コンテキスト生成部109は、生体認証の結果と生体認証方式情報と暗号化乱数と鍵保存部104内のクライアント証明書とから、鍵保存部104内の秘密鍵に基づいて、認証子を生成する。
【0091】
しかる後、認証コンテキスト生成部109は、生体認証の結果および生体認証処理の正当性を保証するための取得した生体情報(サンプル)や参照した生体情報(テンプレート)および参照した生体情報の証明書(テンプレート証明書)などの各種情報と生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを生成し、この認証コンテキストを制御部102に送出する。
【0092】
制御部102は、この認証コンテキストを含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200に送信する。これにより、合意処理は継続される。
【0093】
生体認証処理メッセージMBPは、図13に示すように、クライアントで実行された生体認証結果である認証結果(AuthenticationResult)を含んでいる。認証結果は、例えばサーバから提示された認証方式からクライアント装置100が選択した認証方式と認証結果のデータが含まれる。本実施形態では、前述した認証コンテキストが拡張データ(ExtensionData)に含まれていればよい。
【0094】
またチャレンジデータの作成方法としては、サーバハローメッセージに含まれるチャレンジを利用する以外に、周知の技術を用いてクライアントハローメッセージ及びサーバハローメッセージによって合意した暗号化アルゴリズム(CipherSuite)により乱数を生成してチャレンジデータとしても良い。
【0095】
(ステップST−BV)
サーバ装置200においては、生体認証処理メッセージMBPを制御部202が通信部201により受信すると、制御部202が生体認証処理メッセージMBP内の認証コンテキストを認証コンテキスト検証部205に送出する。
【0096】
認証コンテキスト検証部205は、認証コンテキストを検証し、検証結果を制御部202に送出する。制御部202は、認証コンテキストの検証結果に応じて合意処理を継続又は中断する。合意処理を中断する場合の検証結果としては、例えば(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報と通知した生体認証方式情報とが互いに異なるとき、(iii)認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がサーバハローメッセージ内の乱数と異なるとき、又は(iv)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、などがある。なお、ここでは、合意処理を継続する検証結果を得たとする。
【0097】
制御部202は、検証した結果を通知するため、図14に示すように、認証コンテキストの検証結果を示す認証結果(AuthenticationResult)、生体認証処理の情報を格納する認証情報(AuthenticateInfo)及びこれら項目に対してサーバの秘密鍵で作成された署名(Signature)が含まれた生体認証検証(BiometricVerify)メッセージMBVを通信部201によりクライアント装置100に送信する。
【0098】
(ステップST6)
クライアント装置100は、生体認証検証メッセージMBVを制御部102が通信部101により受信する。しかる後、制御部102は、サーバがクライアントの証明書を要求している場合には、鍵保存部104内のクライアント証明書を含むクライアント証明書(ClientCertificate)メッセージを通信部101によりサーバ装置200に送信する。
【0099】
(ステップST7)
クライアント装置100においては、プリマスターシークレット(premaster_secret)をサーバに通知するため、制御部102がクライアント鍵交換(ClientKeyExchange)メッセージを通信部101によりサーバ装置200に送信する。
【0100】
(ステップST8)
クライアント装置100においては、ステップST6でクライアント証明書を送信した場合、クライアント証明書の検証のため、制御部102は、暗号化部111により、現在までのメッセージに対して鍵保存部内104の秘密鍵に基づいてデジタル署名を生成する。しかる後、制御部102は、現在までのメッセージとデジタル署名とを含むクライアント検証(ClientVerify)メッセージを通信部101によりサーバ装置200に送信する。
【0101】
(ステップST9)
クライアント装置100においては、制御部102が通信部101により、双方で合意した暗号化アルゴリズムで秘匿通信を行うことを宣言する暗号化仕様変更(ChangeCipherSpec)メッセージをサーバ装置200に送信する。
【0102】
(ステップST10)
クライアント装置100においては、制御部102が通信部101により、サーバとのやり取りが正常に終了し、セッション確立のために必要なデータが揃った旨の終了(Finished)メッセージをサーバ装置200に送信する。
【0103】
(ステップST11)
サーバ装置200においては、制御部202が通信部201により、双方で合意した暗号化アルゴリズムで秘匿通信を行うことを宣言する暗号化仕様変更メッセージをクライアント装置100に送信する。
【0104】
(ステップST12)
サーバ装置200においては、制御部202が通信部201により、クライアントとのやり取りが正常に終了し、セッション確立のために必要なデータが揃った旨の終了メッセージをクライアント装置100に送信する。
【0105】
(ステップST13)
ステップST12の完了後、クライアント装置及びサーバ装置は、秘匿通信を実行可能な鍵を共有でき、その後のセッションにおいてクライアント装置−サーバ装置間でセキュアセッションを確立することができる。
【0106】
上述したように本実施形態によれば、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0107】
また、合意処理中のメッセージに含まれる乱数から生成した暗号化乱数を含む認証コンテキストを含む生体認証処理メッセージMBPをサーバ装置200に送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させるので、生体認証に伴う通信の発生を抑制することができる。また生体認証により、不正なユーザが正当なクライアント装置を利用したなり済ましを防止することができる。
【0108】
またステップST4,ST6,ST8はオプションの処理であり、このステップの処理を行わず、ステップST5の処理において一時的な鍵をサーバで生成して利用するなら、ハンドシェイクはクライアントの生体認証の結果のみからセキュアセッションを確立することが可能となる。
【0109】
ステップST4,ST6,ST8の処理を行えば生体認証の結果とクライアントの証明書による認証の結果に応じてセキュアセッションを確立することとなる。
【0110】
さらにステップST3でサーバの証明書を送信すれば、サーバの証明書の認証の結果にも応じた結果セキュアセッションを確立することとなる。
【0111】
本実施形態からクライアント装置100に接続されている任意の生体認証装置(各部105〜108)でセキュアセッションを確立することが可能であり、サーバ装置200は自身が保持するポリシーに従って、例えば生体認証装置の精度で判断することが可能になる。
【0112】
補足すると、TLSを拡張する技術としてはTLS拡張方式(TLS Extension)が知られている(例えば、非特許文献4参照。)。本発明者は、本実施形態を着想する前に、TLS拡張方式を用いてTLSハンドシェイクを拡張し、生体認証に基づいてセキュアセッションを確立することを考えた。ただし、単純に従来のTLSハンドシェイクに生体認証のパスを追加するような拡張では、生体認証の処理に必要となる各種データ、例えばチャレンジデータやネゴシエーション等の処理をどのようにハンドシェイク中に行うかが不明であり、生体認証に基づいてセキュアセッションを正しく確立することができない。
【0113】
しかしながら、本実施形態によれば、TLSハンドシェイクを拡張する際に、生体認証処理に必要な情報やネゴシエーションの処理を適切に行うので、TSLハンドシェイクをTLS拡張方式により適切に拡張することができる。
【0114】
また、本実施形態において、生体認証装置(各部105〜108)はクライアント装置100に含まれているが、生体認証装置は外部装置であっても良く、またテンプレート保存部106も例えばICカードのようにクライアント装置100の外部にあって接続されていても良く、クライアントマッチングが実行可能な形態であれば良い。
【0115】
また実施形態では、TLSハンドシェイクを拡張して生体認証を行っているが、他にもセキュアセッションを確立するSSL(Secure Socket Layer)や他のハンドシェイクへも同様に適用することが可能である。
【0116】
以上から、生体認証の結果に基づいてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び生体認証の結果に基づいてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0117】
また、本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST-BP,ST-BV」及び「ステップST6〜ST8」の順序を変更しても、同様に実施して同様の効果を得ることができる。但し、「ステップST-CBN,ST-SBN」は「ステップST-BP,ST-BV」よりも先に実行する必要がある。
【0118】
具体的には本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST6〜ST8」及び「ステップST-BP,ST-BV」の順序で実行することもできる。また、本実施形態は「ステップST6〜ST8」、「ステップST-CBN,ST-SBN」及び「ステップST-BP,ST-BV」の順序で実行することもできる。
【0119】
(第2の実施形態)
図15は本発明の第2の実施形態に係る認証システムの構成を示す模式図であり、図1とほぼ同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【0120】
第2の実施形態は、第1の実施形態の変形例であり、クライアント装置100a側で取得した生体認証の結果をサーバ装置200a側で生体認証するサーバマッチングの実施形態である。
【0121】
これに伴い、クライアント装置100aは、図1に示したクライアント装置100に比べ、テンプレート保存部106及び生体認証実行部108が省略され、前述した機能が変更された制御部102a及び生体認証処理制御部105aを備えた構成となっている。
【0122】
ここで、制御部102aは、クライアントの乱数(第1乱数)を生成するための乱数生成機能と、合意処理中に、クライアントの乱数を含むクライアントハローメッセージ(第1メッセージ)を作成し、このクライアントハローメッセージを通信部101によりサーバ装置200aに送信する機能と、クライアントハローメッセージの送信後、サーバ装置200aからサーバ乱数(第2乱数)を含むサーバハローメッセージ(第2メッセージ)を受信する機能と、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置200aに送信する機能と、生体認証交渉メッセージの送信後、サーバ装置200aから通知された生体認証方式情報に基づいて、生体認証処理制御部105aを起動する機能と、暗号化部111により、クライアント乱数(第1乱数)及びサーバ乱数(第2乱数)に基づいてハッシュアルゴリズムにより暗号化用パラメータを生成する機能と、生体認証処理制御部105aにより取得した生体情報を暗号化用パラメータに基づいて暗号化部111により暗号化し、得られた暗号化生体情報をサーバ装置200aに通知することにより、合意処理を継続する機能とをもっている。
【0123】
生体認証処理制御部105aは、制御部102aにより起動されると、生体情報取得部107によりユーザの生体情報を取得し、この生体情報を制御部102aに送出する機能をもっている。
【0124】
同様に、サーバ装置200aは、図1に示したサーバ装置200に比べ、テンプレート保存部211及び生体認証実行部212が付加され、前述した機能が変更された制御部202aを備えた構成となっている。
【0125】
制御部202aは、合意処理中に、クライアント装置100aからクライアント装置100aが生成した乱数データ(第1乱数。以下、クライアント乱数ともいう)を含むクライアントハローメッセージ(第1メッセージ)を通信部201により受信する機能と、クライアントハローメッセージの受信後、サーバ装置200aが生成した乱数データ(第2乱数。以下、サーバ乱数ともいう)を含むサーバハローメッセージ(第2メッセージ)をクライアント装置100aに通信部201を介して送信する機能と、クライアント装置100aの生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージをクライアント装置100aから通信部201により受信する機能と、生体認証交渉メッセージ内の生体認証方式情報がセキュリティポリシー保存部203内の各生体認証方式情報のいずれかに一致するか否かを判定する機能と、判定の結果が一致を示すとき、当該生体認証方式情報をクライアント装置100aに通信部201を介して通知する機能と、通知の後、生体認証方式情報に従って取得されたユーザの生体情報がクライアント乱数(第1乱数)及びサーバ乱数(第2乱数)に基づいて暗号化されてなる暗号化生体情報をクライアント装置100aから通信部201により受信する機能と、クライアントハローメッセージ内のクライアント乱数及びサーバハローメッセージ内のサーバ乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを暗号化部207により生成する機能と、暗号化部207により、暗号化生体情報を暗号化用パラメータに基づいて復号する機能と、復号により得られた生体情報を生体認証実行部212に送出する機能と、生体認証実行部212から受けた生体認証の結果が不正を示すとき、合意処理を中断する機能とをもっている。
【0126】
テンプレート保存部211は、予め登録された利用者の生体情報(テンプレート)が格納され、生体認証実行部212からの要求によりテンプレートを生体認証実行部212に出力する機能をもっている。
【0127】
生体認証実行部212は、制御部202aから受けた生体情報を、テンプレート保存部211内のテンプレートに基づいて生体認証し、生体認証の結果を制御部202aに送出する機能をもっている。
【0128】
次に、以上のように構成された認証システムの動作を図16のシーケンス図を用いて説明する。なお、各シーケンス図は秘匿通信のハンドシェイクプロトコルを表している。
【0129】
(ステップST1〜ST8)
ステップST1〜ST−SBNまでは第1の実施形態と同じであるので説明を省略する。また、ステップST−SBNの後に、前述したステップST6〜ST8を実行しなければならない。
【0130】
(ステップST−BP)
クライアント装置100aにおいては、サーバ装置200aから通知された生体認証方式情報を含むサーバ生体認証交渉メッセージを制御部102aが通信部101により受信する。制御部102aは、サーバ生体認証交渉メッセージ内の生体認証方式情報に基づいて、生体認証処理制御部105aを起動する。生体認証処理制御部105aは、生体情報取得部107を制御してユーザの生体情報を取得し、得られた生体情報を制御部102aに送出する。
【0131】
制御部102aは、生体情報を取得すると、暗号化部111により、クライアントハローメッセージ内の乱数データ及びサーバハローメッセージ内の乱数データに基づいて暗号化用パラメータを生成し、この暗号化用パラメータにより生体情報を暗号化し、暗号化生体情報を得る。
【0132】
しかる後、制御部102aは、この暗号化生体情報を含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200aに送信する。
【0133】
なお、生体情報を暗号化する手法は、例えば、以下のような手法を用いればよい。
【0134】
クライアント装置100aは、生体情報を暗号化及び圧縮する仕様として、クライアントハローメッセージMCH及びサーバハローメッセージMSHによって合意したものを使用する。
【0135】
また、クライアント装置100aは、生体情報を暗号化する鍵(必要なら加えて初期ベクタ)等のパラメータを、標準状態で使用する主要パラメータ(例、クライアント/サーバ書込MACシークレット、クライアント/サーバ書込キー、クライアント/サーバ書込初期ベクタ等)と同様に生成する。
【0136】
すなわち、クライアント装置100aは、周知の技術におけるメッセージに含まれるサーバ乱数、クライアント乱数及びプリマスターシークレットを用い、ハッシュアルゴリズムに基づいて、生体情報の暗号化用パラメータ(暗号化鍵)を生成する。具体的には、制御部102aは、サーバ乱数、クライアント乱数及びプリマスターシークレットを暗号化部111の擬似乱数生成関数(pseudo-random function:PRF)に入力し、得られた値をマスターシークレットとする。
【0137】
次に、マスターシークレット、サーバランダム及びクライアントランダムを同様に疑似乱数生成関数PRFに入力して得られた値をキーブロックとして、このキーブロックを必要なサイズに分割して、各パラメータを得る。このとき、周知の秘匿通信プロトコルでは、本来余分なキーブロックを破棄するが、ここでは暗号化用パラメータ(書込キー、書込初期ベクタ)分を余分なキーブロックとして生成する。しかる後、暗号化部111は、この暗号化用パラメータに基づいて生体情報を暗号化し、得られた暗号化生体情報を制御部102aに送出する。
【0138】
制御部102aは、この暗号化生体情報を認証結果(AuthenticationResult)の拡張データ(ExtensionData)に格納して生体認証処理(BiometricProcess)メッセージMBPを構成してサーバ装置200aへ送信する。
【0139】
(ステップST−BV)
サーバ装置200aにおいては、この生体認証処理メッセージMBPを制御部202aが通信部201により受信する。
【0140】
制御部202aは、暗号化部207の制御により、クライアントと同様に各乱数から暗号化用パラメータを生成し、この暗号化用パラメータに基づいて、生体認証処理メッセージMBPに含まれる暗号化生体情報を復号し、生体情報を得る。
【0141】
制御部202aは、この生体情報を生体情報検証部212に送出する。生体情報検証部212は、この生体情報に基づいてサーバマッチングを行い、生体認証の結果を制御部202aに送出する。
【0142】
しかる後、制御部202aは、この生体認証の結果を含む生体認証検証(BiometricVerify)メッセージMBVを通信部201によりクライアント装置100aに送信する
(ステップST9〜ST13)
ステップST9〜ST13は第1の実施形態と同じであるので説明を省略する。
【0143】
上述したように本実施形態によれば、サーバマッチングを行う構成に変形しても、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0144】
また、合意処理中の各ハローメッセージに含まれるクライアント乱数及びサーバ乱数に基づいて生体情報を暗号化してサーバ装置200aに送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させつつ、サーバマッチングによる生体認証を実現させることができる。また、生体認証により、不正なユーザが正当なクライアント装置を利用したなり済ましを防止できる。
【0145】
また第1の実施形態において、もし暗号化して生体情報の結果を送信するような場合は本実施形態と同じシーケンスで実行することにより暗号化することも可能になる。
【0146】
本実施形態ではクライアント装置100aで生体情報を取得してサーバ装置200aへ送信し、サーバ装置200aで保持するテンプレートと照合処理を行うことで生体認証を実行するが、クライアント装置100aから取得した生体情報とテンプレートを送信し、サーバ装置200aで照合処理を行うような実施形態でも良く、その組み合わせは生体認証の実施形態の組み合わせだけあるといえる
以上から、生体情報をサーバ装置200aに安全に送り、サーバ装置200aにおける照合結果に基づいてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び生体認証の結果に基づいてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0147】
補足すると、従来のTLSプロトコル又はTLS内部アプリケーションのいずれにしても、クライアント装置が生体情報をサーバ装置に送信し、サーバ装置がマッチングにより生体認証を行ってセキュアセッションを確立する場合、生体情報が資格証明情報(クレデンシャルな情報)であることから、生体情報を暗号化して送信する必要がある。しかしながら、単純に従来のTLSハンドシェイク中において生体認証を行う場合、生体情報をセキュアセッションの確立前に送信する必要があるので、生体情報を暗号化等により保護する手段が存在しない。これに対し、本実施形態では、前述した通り、生体情報を暗号化して送信することにより保護することができる。
【0148】
また、本実施形態は、「ステップST-CBN,ST-SBN」及び「ステップST6〜ST8」の順序を変更しても、同様に実施して同様の効果を得ることができる。但し、「ステップST-BP,ST-BV」は動かすことはできない。理由は、データを暗号化するためには「ステップST6〜ST8」のパスが必要であり、生体認証交渉をするためには「ステップST-CBN,ST-SBN」が必要なためである。
【0149】
具体的には本実施形態は、「ステップST6〜ST8」、「ステップST-CBN,ST-SBN」及び「ステップST-BP,ST-BV」の順序で実行することもできる。
【0150】
(第3の実施形態)
図17は本発明の第3の実施形態に係る認証システムの構成を示す模式図である。
第3の実施形態は、第1の実施形態の変形例であり、クライアント装置100b側で生体認証を行い、生体認証の結果に基づいて取得したクライアント証明書をサーバ装置200bに送信してクライアント認証を行う実施形態である。
【0151】
これに伴い、クライアント装置100bは、図1に示したクライアント装置100に比べ、前述した機能が変更された制御部102b及び認証コンテキスト生成部109bを備えた構成となっている。
【0152】
ここで、制御部102bは、合意処理中に、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含むクライアントハローメッセージ(第1メッセージ)をサーバ装置200bに通信部101を介して送信する機能と、クライアントハローメッセージの送信後、サーバ装置200bからサーバ乱数を含むサーバハローメッセージ(第2メッセージ)を通信部101により受信する機能と、サーバハローメッセージの受信後、生体認証処理制御部105を起動する機能と、暗号化部111により、サーバ乱数を鍵保存部104内の秘密鍵に基づいて暗号化し、暗号化乱数を生成する機能と、生体認証処理制御部105により得られた生体認証の結果が正当のとき、鍵保存部104内のクライアント証明書をサーバ装置100bに通信部101を介して送信する機能と、生体認証の結果およびその処理の正当性を保証する情報及び暗号化乱数を認証コンテキスト生成部109bに送出する機能と、認証コンテキスト生成部109bから受けた認証コンテキストをサーバ装置200bに通信部101から送信することにより、合意処理を継続する機能とをもっている。
【0153】
認証コンテキスト生成部109bは、制御部102bから受けた生体認証の結果及び暗号化乱数から鍵保存部104内の秘密鍵に基づいて、認証子を生成する機能と、生体認証の結果及び暗号化乱数と認証子とを含む認証コンテキストを生成する機能と、生成した認証コンテキストを制御部102bに送出する機能とをもっている。
【0154】
ここで、認証コンテキストの一例としては、図18に示すように、前述した図3の構成に比べ、クライアント証明書ブロックpcを省略したものとしてもよい。データブロックpdは、例えば生体認証の結果、及び暗号化乱数を含んでいるが、前述とは異なり、生体認証方式情報を省略してもよい。生体認証方式情報が省略可能なことは、前述とは異なり、生体認証交渉ステップが無く、任意の生体認証方式を使用可能なことによる。
【0155】
同様に、サーバ装置200bは、図1に示したサーバ装置200に比べ、前述した機能が変更された制御部202b及び認証コンテキスト検証部205bを備えた構成となっている。
【0156】
制御部202bは、合意処理中に、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含むクライアントハローメッセージ(第1メッセージ)をクライアント装置100bから通信部201を介して受信する機能と、クライアントハローメッセージの受信後、サーバ乱数を含むサーバハローメッセージ(第2メッセージ)をクライアント装置100bに通信部201を介して送信する機能と、サーバハローメッセージの送信後、クライアント装置100bからクライアント証明書を通信部201により受信する機能と、サーバハローメッセージの送信後、ユーザの生体認証の結果と暗号化乱数と認証子とを含む認証コンテキストをクライアント装置100bから通信部201を介して受信する機能と、受信したクライアント証明書及び認証コンテキストを鍵保存部204に書き込む機能と、認証コンテキスト検証部205bを起動する機能と、認証コンテキスト検証部205bから受けた検証結果に応じて、合意処理を継続又は中断する機能とをもっている。
【0157】
認証コンテキスト検証部205bは、制御部202bに起動されると、鍵保存部204内の認証コンテキストを検証し、(i)鍵保存部204に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)鍵保存部204に記憶された認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がサーバハローメッセージ内の乱数と異なるとき、又は(iii)鍵保存部204に記憶されたクライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、のいずれかの場合には合意処理を中断する旨の検証結果を制御部202bに送出する機能と、上記(i)〜(iii)以外のとき、合意処理を継続する旨の検証結果を制御部202bに送出する機能とをもっている。
【0158】
次に、以上のように構成された認証システムの動作を図19のシーケンス図を用いて説明する。
【0159】
(ステップST1)
クライアント装置100bは、ハンドシェイクの拡張処理があることを通知するため、拡張したクライアントハローメッセージMCHを制御部102bが通信部101によりサーバ装置200bに送信する。
【0160】
クライアントハローメッセージMCHの拡張(Extension)リストでは、クライアント装置100bのクライアント証明書を生体認証の結果に基づいて取得したことと、生体認証の結果を送付することをサーバ装置200bに通知する。
【0161】
(ステップST2)
サーバ装置200bにおいては、クライアントハローメッセージMCHを通信部201により制御部202bが受信する。制御部202bは、ハンドシェイクの拡張処理について了解した旨を通知するため、拡張したサーバハローメッセージMSHを通信部201によりクライアント装置100bに送信する。
【0162】
(ステップST3〜ST5)
ステップST3〜ST5までは第1の実施形態と同じであるので説明を省略する。
(ステップST−BP1)
クライアント装置100bにおいては、ステップST5のサーバハロー終了(ServerHelloDone)メッセージを制御部102bが通信部101により受信すると、制御部102bが生体認証処理制御部105を起動する。生体認証処理制御部105は、各部106〜108を制御してユーザの生体認証処理を実行し、得られた生体認証の結果を制御部102bに送出する。
【0163】
制御部102bは、生体認証の結果が正当のとき、合意処理を継続してステップST6に移行する。なお、ここでの生体認証方式は、第1の実施形態とは異なり、サーバ装置200bとの生体認証交渉ステップを経ておらず、任意の生体認証方式を用いている。
【0164】
(ステップST6)
クライアント装置100bにおいては、制御部102bが、鍵保存部104内のクライアント証明書を含むクライアント証明書(ClientCertificate)メッセージを通信部101によりサーバ装置200に送信する。
【0165】
(ステップST7及びST8)
ステップST7及びST8は第1の実施形態と同じであるので説明を省略する。
(ステップST−BP2)
制御部102bは、暗号化部111により、サーバハロー(ServerHello)メッセージMSHに含まれる乱数データを鍵保存部104内の秘密鍵に基づいて暗号化し、暗号化乱数を生成する。この暗号化乱数は、制御部102bから認証コンテキスト生成部109bに送出される。また、制御部102bは、ステップST6で取得した生体認証の結果も認証コンテキスト生成部109bに送出する。
【0166】
認証コンテキスト生成部109bは、生体認証の結果と暗号化乱数とから鍵保存部104内の秘密鍵に基づいて、認証子を生成する。
【0167】
しかる後、認証コンテキスト生成部109bは、生体認証の結果および生体認証処理の正当性を保証するための取得した生体情報(サンプル)や参照した生体情報(テンプレート)および参照した生体情報の証明書(テンプレート証明書)などの各種情報と暗号化乱数と認証子とを含む認証コンテキストを生成し、この認証コンテキストを制御部102bに送出する。
【0168】
制御部102bは、この認証コンテキストを含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200bに送信する。これにより、合意処理は継続される。
【0169】
なお、もし暗号化する必要があれば、第2の実施形態と同様の処理を行うことで、認証コンテキストを暗号化して送信することも可能である。
【0170】
(ステップST−BV)
サーバ装置200bにおいては、生体認証処理メッセージMBPを制御部202bが通信部201により受信すると、制御部202bが生体認証処理メッセージMBP内の認証コンテキストを認証コンテキスト検証部205bに送出する。
【0171】
認証コンテキスト検証部205bは、認証コンテキストを検証し、検証結果を制御部202bに送出する。制御部202bは、認証コンテキストの検証結果に応じて合意処理を継続又は中断する。合意処理を中断する場合の検証結果としては、例えば(i)鍵保存部204に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)鍵保存部204に記憶された認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がサーバハローメッセージ内の乱数と異なるとき、(iii)鍵保存部204に記憶されたクライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、などがある。なお、ここでは、合意処理を継続する検証結果を得たとする。
【0172】
制御部202bは、検証した結果を通知するため、認証コンテキストの検証結果を示す認証結果(AuthenticationResult)、生体認証処理の情報を格納する認証情報(AuthenticateInfo)及びこれら項目に対してサーバの秘密鍵で作成された署名(Signature)が含まれた生体認証検証(BiometricVerify)メッセージMBVを通信部201によりクライアント装置100bに送信する。
【0173】
(ステップST9〜ST13)
ステップST9〜ST13は第1の実施形態と同じであるので説明を省略する。
【0174】
上述したように本実施形態によれば、生体認証によりクライアント証明書を取得してサーバ装置200bに送信する構成に変形しても、前述同様に、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0175】
また、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含むクライアントメッセージをサーバ装置200bに送信する構成により、生体認証に基づいて取得したクライアント証明書を用いてセキュアセッションを確立していることをサーバ装置200bが検証することができる。また、生体認証により、不正なユーザが正当なクライアント装置を利用したなり済ましを防止できる。
【0176】
以上から、生体認証の結果に基づいて取得した証明書を用いてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び生体認証の結果に基づいて取得して証明書を用いてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0177】
補足すると、従来のTLSプロトコル又はTLS内部アプリケーションのいずれにしても、エンティティ装置が保持する証明書に基づいてエンティティ認証を行ってセキュアセッションを確立する際に、エンティティ装置の証明書を生体認証の結果に基づいて取得していた場合、そのことをサーバに通知する手段がTLSハンドシェイクには存在しない。これに対し、本実施形態では、前述した通り、エンティティ装置(クライアント装置100b)の証明書を生体認証の結果に基づいて取得していたことをサーバ装置200bに通知することができる。
【0178】
また、本実施形態は、「ステップST6〜ST8」及び「ステップST-BP,ST-BV」の順序を変更し、「ステップST-BP,ST-BV」及び「ステップST6〜ST8」の順序で実行しても同様の効果を得ることができる。
【0179】
(第4の実施形態)
図20は本発明の第4の実施形態に係る認証システムの構成を示す模式図である。
第4の実施形態は、第1の実施形態の変形例であり、合意処理の前に、予め認証コンテキストにタイムスタンプを作成しておく実施形態である。なお、タイムスタンプは、例えば、RFC3161に準拠したタイムスタンプサービス(例えば、非特許文献5参照。)を利用して作成してもよい。
【0180】
これに伴い、クライアント装置100cは、図1に示したクライアント装置100に比べ、タイムスタンプ付与部115が付加され、前述した機能が変更された制御部102c及び認証コンテキスト生成部109cを備えた構成となっている。
【0181】
ここで、制御部102cは、合意処理の前に、生体認証処理制御部105を起動する機能と、生体認証処理制御部105から受けた生体認証の結果を認証コンテキスト生成部109cに送出する機能と、認証コンテキスト生成部109cから受けた認証コンテキストをタイムスタンプ付与部115に送出する機能と、タイムスタンプが付与された認証コンテキストをタイムスタンプ付与部115から受ける機能と、合意処理中に、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置200cに通信部101を介して送信する機能と、生体認証交渉メッセージの送信後、サーバ装置200cから通知された生体認証方式情報に基づいて、前述したタイムスタンプが付与された認証コンテキストをサーバ装置200cに通信部101を介して送信することにより、合意処理を継続する機能とをもっている。
【0182】
認証コンテキスト生成部109cは、制御部102cから生体認証の結果を受けると、当該生体認証の結果とセキュリティポリシー保存部103内の生体認証方式情報と鍵保存部104内のクライアント証明書とからクライアント秘密鍵に基づいて、認証子を生成する機能と、合意処理の前に、生体認証の結果およびその処理の正当性を保証する情報と生体認証方式情報とクライアント証明書と認証子とを含む認証コンテキストを生成する機能と、この認証コンテキストを制御部102cに送出する機能とをもっている。
【0183】
タイムスタンプ付与部115は、制御部102cから認証コンテキストを受けると、合意処理の前に、認証コンテキストをタイムスタンプ提供装置300に通信部101を介して送信する機能と、送信した認証コンテキスト及びタイムスタンプ提供装置300における日時情報に対して、当該タイムスタンプ提供装置300のタイムスタンプ秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、タイムスタンプが付与された認証コンテキストをタイムスタンプ提供装置300から通信部101を介して受信する機能と、このタイムスタンプが付与された認証コンテキストを制御部102cに送出する機能とをもっている。
【0184】
なお、タイムスタンプの付与方法は任意の方式が使用可能であるが、ここでは、外部のタイムスタンプ提供装置300に依頼して付与する方式を用いている。タイムスタンプ提供装置300は、タイムスタンプ公開鍵及びタイムスタンプ秘密鍵を記憶装置(図示せず)に保持しており、クライアント装置100cから認証コンテキストを受信すると、この認証コンテキストに現在の日時情報を付加した情報に対し、タイムスタンプ秘密鍵に基づいてタイムスタンプ(デジタル署名)を生成する機能と、このタイムスタンプを付与した認証コンテキストをクライアント装置100cに返信する機能と、サーバ装置200cから要求を受けると、タイムスタンプ公開鍵をサーバ装置200cに送信する機能とをもっている。
【0185】
一方、サーバ装置200cは、図1に示したサーバ装置200に比べ、タイムスタンプ検証部213が付加され、前述した機能が変更された制御部202c及び認証コンテキスト検証部205cを備えた構成となっている。
【0186】
制御部202cは、合意処理中に、クライアント装置100cの生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージをクライアント装置100cから通信部201を介して受信する機能と、生体認証交渉メッセージ内の生体認証方式情報がセキュリティポリシー保存部203内の各生体認証方式情報のいずれかに一致するか否かを判定する機能と、判定の結果が一致を示すとき、当該生体認証方式情報をクライアント装置100cに通信部201を介して通知する機能と、通知の後、タイムスタンプ提供装置300の秘密鍵によるタイムスタンプが付与され且つユーザの生体認証の結果、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストをクライアント装置100cから通信部201を介して受信する機能と、このタイムスタンプが付与された認証コンテキストのうち、タイムスタンプをタイムスタンプ検証部213に送出すると共に、認証コンテキストを認証コンテキスト検証部205cに送出する機能と、各検証部213,205cから受けた検証結果に基づいて、合意処理を継続又は中断する機能とをもっている。
【0187】
認証コンテキスト検証部205cは、制御部202cから受けた認証コンテキストを検証し、(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報が、通知した生体認証方式とは異なるとき、又は(iii)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、のいずれかの場合には合意処理を中断する旨の検証結果を制御部202cに送出する機能と、上記(i)〜(iii)以外のとき、合意処理を継続する旨の検証結果を制御部202cに送出する機能とをもっている。
【0188】
タイムスタンプ検証部213は、タイムスタンプ提供装置300のタイムスタンプ秘密鍵に対応するタイムスタンプ公開鍵を予め記憶装置(図示せず)に保持しておき、制御部202cからタイムスタンプを受けると、タイムスタンプ公開鍵に基づいて当該タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、合意処理を中断する旨の検証結果を制御部202cに送出する機能と、当該差分が予め定めた値以下のとき、合意処理を継続する旨の検証結果を制御部202cに送出する機能とをもっている。
【0189】
なお、タイムスタンプの検証方法は、タイムスタンプ提供装置300の公開鍵を取得してタイムスタンプ検証部213が検証する方式に限らず、タイムスタンプ提供装置300に検証を依頼する等というように、タイムスタンプの付与方法に対応する任意の検証方式が使用可能となっている。
【0190】
(全体のシーケンス)
次に、以上のように構成された認証システムの動作を図21のシーケンス図を用いて説明する。
【0191】
(ステップST0)
クライアント装置100cは、ユーザの生体認証を予め実行し、その生体認証の結果を含む認証コンテキストを生成し、認証コンテキストに対して既存の技術を用いてタイムスタンプを付与する。
【0192】
具体的には例えば、クライアント装置100cにおいては、制御部102cが、合意処理の前に、生体認証処理制御部105を起動する。
【0193】
制御部102cは、生体認証処理制御部105から受けた生体認証の結果を認証コンテキスト生成部109cに送出する。
【0194】
認証コンテキスト生成部109cは、制御部102cから生体認証の結果を受けると、当該生体認証の結果とセキュリティポリシー保存部103内の生体認証方式情報と鍵保存部104内のクライアント証明書とからクライアント秘密鍵に基づいて、認証子を生成する。
【0195】
しかる後、認証コンテキスト生成部109cは、生体認証の結果および生体認証処理の正当性を保証するための取得した生体情報(サンプル)や参照した生体情報(テンプレート)および参照した生体情報の証明書(テンプレート証明書)などの各種情報と生体認証方式情報とクライアント証明書と認証子とを含む認証コンテキストを生成し、この認証コンテキストを制御部102cに送出する。
【0196】
制御部102cは、この認証コンテキストをタイムスタンプ付与部115に送出する。
【0197】
タイムスタンプ付与部115は、この認証コンテキストをタイムスタンプ提供装置300に通信部101を介して送信する。
【0198】
タイムスタンプ提供装置300は、この認証コンテキストに日時情報を付加した情報に対し、当該タイムスタンプ提供装置300のタイムスタンプ秘密鍵に基づいてタイムスタンプを生成し、このタイムスタンプを認証コンテキストに付与する。
【0199】
また、タイムスタンプ提供装置300は、このタイムスタンプを付与した認証コンテキストをクライアント装置100cに送信する。
【0200】
クライアント装置100cにおいては、タイムスタンプ付与部115が、このタイムスタンプが付与された認証コンテキストを通信部101を介して受信すると、このタイムスタンプが付与された認証コンテキストを制御部102cに送出する。
【0201】
制御部102cは、このタイムスタンプが付与された認証コンテキストを記憶装置(図示せず)に保存する。
【0202】
(ステップST1)
クライアント装置100cは、ハンドシェイクの拡張処理があることを通知するため、拡張したクライアントハローメッセージMCHを制御部102cが通信部101により送信する。
【0203】
クライアントハローメッセージMBHの拡張(Extension)リストでは、タイムスタンプを付与した認証コンテキストを用いてクライアント認証を行うことを通知する。
【0204】
(ステップST2)
サーバ装置200cは、クライアントハローメッセージMCHを通信部201により制御部202cが受信する。制御部202cは、ハンドシェイクの拡張処理について了解したことを通知するため、拡張したサーバハローメッセージMSHを通信部201によりクライアント装置100cに送信する。
【0205】
(ステップST3〜ST5)
ステップST3〜ST5までは第1の実施形態と同じであるので説明を省略する。
【0206】
(ステップST−CBN)
クライアント装置100cにおいては、クライアント装置100cで予め実行した生体認証の生体認証方式をサーバに通知するため、制御部102が通信部101により、生体認証方式情報を含むクライアント生体認証交渉(ClientBiometricNegotiation)メッセージMCBNを送信する。
【0207】
クライアント生体認証交渉メッセージMCBNは、図11に示したように、生体認証方式情報をリストにした生体認証方式リスト(BiometricMethodList)を含んでいる。
【0208】
(ステップST−SBN)
サーバ装置200cにおいては、クライアント生体認証交渉メッセージを制御部202cが通信部201により受信すると、制御部202cがクライアント生体認証交渉メッセージ内の生体認証方式リストの生体認証方式情報がセキュリティポリシー保存部203内の生体認証方式情報のいずれかに一致するか否かを判定する。
【0209】
制御部202cは、判定の結果が一致を示すとき、当該生体認証方式情報を含むサーバ生体認証交渉(ServerBiometricNegotiation)メッセージMSBNを通信部201によりクライアント装置100cに送信する。ここで選択した方式は複数であっても良い。
【0210】
もし、予め実行した生体認証方式がサーバのポリシーを満たさない場合には、周知の技術であるTLSハンドシェイクにおける警告(Alert)を返すことでハンドシェイク処理を中止させる。
【0211】
(ステップST−BP)
クライアント装置100cにおいては、サーバ生体認証交渉メッセージを制御部102が通信部101により受信すると、制御部102が、サーバ生体認証交渉メッセージ内の生体認証方式情報に基づいて、該当する認証コンテキストを含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200に送信する。
【0212】
生体認証処理メッセージMBPは、図13に示したように、認証結果(AuthenticationResult)を含んでいる。認証結果(AuthenticationResult)には予め作成したタイムスタンプが付与された認証コンテキストが含まれる。
【0213】
(ステップST−BV)
サーバ装置200cは、生体認証処理メッセージMBPを制御部202cが通信部201により受信すると、制御部202cが生体認証処理メッセージMBP内のタイムスタンプが付与された認証コンテキストのうち、タイムスタンプをタイムスタンプ検証部213に送出すると共に、認証コンテキストを認証コンテキスト検証部205cに送出する。
【0214】
タイムスタンプ検証部213は、タイムスタンプを検証し、検証結果を制御部202cに送出する。認証コンテキスト検証部205cは、認証コンテキストを検証し、検証結果を制御部202cに送出する。
【0215】
制御部202cは、各検証部213,205cから受けた検証結果に基づいて、合意処理を継続又は中断する。合意処理を中断する場合の検証結果としては、例えば(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報が、通知した生体認証方式とは異なるとき、(iii)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、又は(iv)タイムスタンプを復号して得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、などがある。なお、ここでは、合意処理を継続する旨の検証結果を得たとする。
【0216】
制御部202cは、検証した結果を通知するため、図14に示したように、タイムスタンプが付与された認証コンテキストの検証結果(AuthenticationResult)、生体認証処理の情報を格納する認証処理情報格納領域(AuthenticateInfo)及びこれら項目に対してサーバの秘密鍵で作成された署名(Signature)が含まれた生体認証検証(BiometricVerify)メッセージMBVを送信する。
【0217】
(ステップST6〜ST13)
ステップST6〜ST13は第1の実施形態と同じ動作をするので説明を省略する。
【0218】
上述したように本実施形態によれば、予め生体認証を実行して生成した認証コンテキストにタイムスタンプを付与しておく構成に変形しても、前述同様に、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0219】
また、合意処理の前に、タイムスタンプを付与した認証コンテキストを生成しておき、合意処理中に、当該タイムスタンプを付与した認証コンテキストをサーバ装置200cに送信する構成により、合意処理を中断することなく予め作成した認証コンテキストに基づいてセキュアセッションを確立することができる。また、認証コンテキストに付与されたタイムスタンプにより、再送攻撃を防止することができる。
【0220】
また、予め作成した認証コンテキストに基づいてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び予め作成した認証コンテキストに基づいてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0221】
さらに、クライアント装置100cとサーバ装置200cとの間で、ハンドシェイク処理を中断することなく予め作成した認証コンテキストを用いてセキュアセッションを確立することができる。
【0222】
補足すると、従来のTLSのプロトコル中において生体認証を行う場合には、再送攻撃などを防ぐ意味からプロトコル中で得たチャレンジを用いて生体認証を行う必要がある。
【0223】
従って、従来のTLSプロトコルでは処理を一旦中断し、例えば照合処理を行うためにユーザの生体情報を取得する必要がある。このため、従来のTLSプロトコルでは、生体認証に基づいてセキュアセッションを確立する場合、クライアント装置とサーバ装置とで一連の動作として処理を実行できず、ハンドシェイクが中断してしまう。
【0224】
これに対し、本実施形態では、前述した通り、ハンドシェイク処理を中断することなく予め作成した認証コンテキストを用いてセキュアセッションを確立することができる。
【0225】
また、本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST-BP,ST-BV」及び「ステップST6〜ST8」の順序を変更しても、同様に実施して同様の効果を得ることができる。但し、「ステップST-CBN,ST-SBN」は「ステップST-BP,ST-BV」よりも先に実行する必要がある。
【0226】
具体的には本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST6〜ST8」及び「ステップST-BP,ST-BV」の順序で実行することもできる。また、本実施形態は「ステップST6〜ST8」、「ステップST-CBN,ST-SBN」及び「ステップST-BP,ST-BV」の順序で実行することもできる。
【0227】
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0228】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0229】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0230】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【0231】
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0232】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0233】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0234】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【0235】
【図1】本発明の第1の実施形態に係る認証システムの構成を示す模式図である。
【図2】同実施形態におけるセキュリティポリシーを説明するための模式図である。
【図3】同実施形態における認証コンテキストを説明するための模式図である。
【図4】同実施形態におけるセキュリティポリシーを説明するための模式図である。
【図5】同実施形態におけるセキュリティポリシーを説明するための模式図である。
【図6】同実施形態における動作を説明するためのシーケンス図である。
【図7】同実施形態におけるクライアントハローメッセージの構成を示す模式図である。
【図8】同実施形態におけるクライアントハローメッセージの拡張リストの一例を示す模式図である。
【図9】同実施形態におけるサーバハローメッセージの構成を示す模式図である。
【図10】同実施形態における動作の変形例を示すシーケンス図である。
【図11】同実施形態におけるクライアント生体認証交渉メッセージの構成を示す模式図である。
【図12】同実施形態におけるサーバ生体認証交渉メッセージの構成を示す模式図である。
【図13】同実施形態における生体認証処理メッセージの構成を示す模式図である。
【図14】同実施形態における生体認証検証メッセージの構成を示す模式図である。
【図15】本発明の第2の実施形態に係る認証システムの構成を示す模式図である。
【図16】同実施形態における動作を説明するためのシーケンス図である。
【図17】本発明の第3の実施形態に係る認証システムの構成を示す模式図である。
【図18】同実施形態における認証コンテキストを説明するための模式図である。
【図19】同実施形態における動作を説明するためのシーケンス図である。
【図20】本発明の第4の実施形態に係る認証システムの構成を示す模式図である。
【図21】同実施形態における動作を説明するためのシーケンス図である。
【符号の説明】
【0236】
100,100a〜100c…クライアント装置、101,201…通信部、102,102a〜102c,202,202a〜202c…制御部、103,203…セキュリティポリシー保存部、104,204…鍵保存部、105,105a…生体認証処理制御部、106,211…テンプレート保存部、107…生体情報取得部、108,212…生体認証実行部、109,109b,109c…認証コンテキスト生成部、110,206…秘匿部、111,207…暗号化部、112,208…圧縮部、113,209…検証部、114,210…鍵交換部、115…タイムスタンプ付与部、200,200a〜200c…サーバ装置、205,205b,205c…認証コンテキスト検証部、213…タイムスタンプ検証部。
【技術分野】
【0001】
本発明は、セキュアセッションを確立するクライアント装置、サーバ装置及びプログラムに係り、例えば、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立し得るクライアント装置、サーバ装置及びプログラムに関する。
【背景技術】
【0002】
ネットワーク上で情報を暗号化通信するためのプロトコルの1つにTLS(Transport Layer Security)プロトコルがある。このTLSプロトコルは、エンティティ認証を行った後にセキュアセッションを確立してデータの暗号通信を可能にする技術である(例えば、非特許文献1参照。)。
【0003】
TLSプロトコルの関連技術として、TLS内部アプリケーション(TLS Inner Application)がある。TLS内部アプリケーションは、TLSハンドシェイク(TLS handshake)によりセキュアセッションを確立した後に、レコード層(Record Layer)において拡張処理を可能にしている(例えば、非特許文献2参照。)。TLS内部アプリケーションでは、この拡張処理で生体認証を行うことにより、エンティティ認証と生体認証とを行うことができる(例えば、特許文献1−3及び非特許文献3参照)。
【特許文献1】特開2003−44436号公報
【特許文献2】特開2006−11768号公報
【特許文献3】特開2003−224562号公報
【非特許文献1】T. Dierks、C. Allen、" The TLS Protocol Version 1.0"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc2246.txt>
【非特許文献2】P. Funk, S. Blake-Wilson, N. Smith, H. Tschofenig, T. Hardjono、" TLS Inner Application Extension (TLS/IA) draft-funk-tls-inner-application-extension-03.txt"、[online]、 [2007年4月27日検索]、インターネット<URL:http://tools.ietf.org/wg/tls/draft-funk-tls-inner-application-extension-03.txt>
【非特許文献3】S. Santesson、" TLS Handshake Message for Supplemental Data"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc4680.txt>
【非特許文献4】S. Blake-Wilson, M. Nystrom, D. Hopwood, J. Mikkelsen, T. Wright、" Transport Layer Security (TLS) Extension"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc4366.txt>
【非特許文献5】C. Adams, P. Cain, D. Pinkas, R. Zuccherato、" Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)"、[online]、 [2007年4月27日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc3161.txt>
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、以上のようなTLSプロトコル又はTLS内部アプリケーションの技術においては、本発明者の検討によれば、以下の点で改良の余地があると考えられる。
【0005】
TLSプロトコル又はTLS内部アプリケーションのいずれにしても、エンティティ認証によってセキュアセッションを確立した後に生体認証を行う場合に、単純にエンティティ認証と生体認証をそれぞれ行っていることからハンドシェイク(handshake)を2回行っているに過ぎず、不要なパスが存在する。
【0006】
さらにエンティティ認証でセキュアセッションを確立した後に生体認証に失敗した場合には、TLSのセッションを破棄しなければならないので、生体認証までの処理が無駄になってしまう。この場合、エンティティ認証でセキュアセッションを確立した処理という大きい処理が無駄になっている。このため、このような無駄になる処理は低減することが望ましい。
【0007】
本発明は上記実情を考慮してなされたもので、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立し得るクライアント装置、サーバ装置及びプログラムを提供することを目的とする。
【0008】
本発明の他の目的は、生体認証に失敗した場合でも、無駄になる処理を低減し得るクライアント装置、サーバ装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
第1乃至第4の発明は、ユーザに操作されるクライアント装置とサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能な前記クライアント装置及び前記サーバ装置を対象とする。
【0010】
ここで、第1の発明のクライアント装置は、前記ユーザを生体認証するための生体認証手段と、公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、前記合意処理中に、前記サーバ装置から乱数を含むメッセージを受信する手段と、前記メッセージの受信後、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体認証手段を起動する手段と、前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、前記生体認証手段による生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、を備えている。
【0011】
第1の発明のサーバ装置は、受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、前記合意処理中に、乱数を含むメッセージを前記クライアント装置に送信する手段と、前記メッセージの送信後、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、前記通知の後、前記生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、前記認証コンテキスト内の生体認証方式情報と前記通知した生体認証方式情報とが互いに異なるとき、前記合意処理を中断する手段と、前記認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、を備えている。
【0012】
また、第2の発明のクライアント装置は、前記合意処理中に、前記ユーザから生体情報を取得するための生体情報取得手段と、前記生体情報取得手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、第1乱数を生成するための乱数生成手段と、前記合意処理中に、前記第1乱数を含む第1メッセージを作成し、この第1メッセージを前記サーバ装置に送信する手段と、前記第1メッセージの送信後、前記サーバ装置から第2乱数を含む第2メッセージを受信する手段と、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体情報取得手段を起動する手段と、前記第1乱数及び前記第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、前記生体情報取得手段により取得した生体情報を前記暗号化用パラメータに基づいて暗号化し、得られた暗号化生体情報を前記サーバ装置に通知することにより、前記合意処理を継続する手段と、を備えている。
【0013】
第2の発明のサーバ装置は、受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、前記ユーザの生体参照情報が記憶された生体参照情報記憶手段と、前記合意処理中に、前記クライアント装置から第1乱数を含む第1メッセージを受信する手段と、前記第1メッセージの受信後、第2乱数を含む第2メッセージを前記クライアント装置に送信する手段と、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、前記通知の後、前記生体認証方式情報に従って取得された前記ユーザの生体情報が前記第1乱数及び前記第2乱数に基づいて暗号化されてなる暗号化生体情報を前記クライアント装置から受信する手段と、前記第1メッセージ内の第1乱数及び前記第2メッセージ内の第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、前記暗号化生体情報を前記暗号化用パラメータに基づいて復号する手段と、前記復号により得られた生体情報を、前記生体参照情報記憶手段内の生体参照情報に基づいて生体認証する生体認証手段と、前記生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、を備えている。
【0014】
さらに、第3の発明のクライアント装置は、前記ユーザを生体認証するための生体認証手段と、公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記サーバ装置に送信する手段と、前記第1メッセージの送信後、前記サーバ装置から乱数を含む第2メッセージを受信する手段と、前記第2メッセージの受信後、前記生体認証手段を起動する手段と、前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、前記生体認証手段による生体認証の結果が正当のとき、前記証明書記憶手段内のクライアント証明書を前記サーバ装置に送信する手段と、前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数から前記秘密鍵に基づいて、認証子を生成する手段と、前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、を備えている。
【0015】
第3の発明のサーバ装置は、前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記クライアント装置から受信する手段と、前記第1メッセージの受信後、乱数を含む第2メッセージを前記クライアント装置に送信する手段と、前記第2メッセージの送信後、前記クライアント装置からクライアント証明書を受信する手段と、前記第2メッセージの送信後、前記ユーザの生体認証の結果およびその処理の正当性を保証する情報と暗号化乱数と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、前記受信したクライアント証明書及び認証コンテキストを記憶する記憶手段と、前記記憶手段に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、前記記憶手段に記憶された認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記第2メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、前記記憶手段に記憶されたクライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、を備えている。
【0016】
また、第4の発明のクライアント装置は、公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、前記合意処理の前に、前記ユーザを生体認証するための生体認証手段と、前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、前記合意処理の前に、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書と前記認証子とを含む認証コンテキストを生成する手段と、前記合意処理の前に、前記認証コンテキストをタイムスタンプ提供装置に送信する手段と、前記送信した認証コンテキスト及び前記タイムスタンプ提供装置における日時情報に対して、当該タイムスタンプ提供装置の秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、前記タイムスタンプが付与された認証コンテキストを前記タイムスタンプ提供装置から受信する手段と、前記合意処理中に、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記タイムスタンプが付与された認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、を備えている。
【0017】
第4の発明のサーバ装置は、受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、前記合意処理中に、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、前記通知の後、タイムスタンプ提供装置の秘密鍵によるタイムスタンプが付与され且つ前記ユーザの生体認証の結果およびその処理の正当性を保証する情報、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストを前記クライアント装置から受信する手段と、前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、前記認証コンテキスト内の生体認証方式情報が前記通知した生体認証方式とは異なるとき、前記合意処理を中断する手段と、前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、前記タイムスタンプ提供装置の秘密鍵に対応する公開鍵に基づいて前記タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、前記合意処理を中断する手段と、を備えている。
【0018】
なお、以上の各発明は、各々の「装置」として表現したが、「装置」に限らず、「方法」、「プログラム」又は「プログラムを記憶したコンピュータ読み取り可能な記憶媒体」として表現してもよい。
【0019】
(作用)
第1乃至第4の各発明においては、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0020】
ここで、第1の発明においては、前述した作用に加え、合意処理中のメッセージに含まれる乱数から生成した暗号化乱数を含む認証コンテキストをサーバ装置に送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させるので、生体認証に伴う通信の発生を抑制することができる。
【0021】
第2の発明においては、前述した作用に加え、合意処理中の各メッセージに含まれる第1乱数及び第2乱数に基づいて生体情報を暗号化してサーバ装置に送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させつつ、サーバマッチングによる生体認証を実現させることができる。
【0022】
第3の発明においては、前述した作用に加え、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージをサーバ装置に送信する構成により、生体認証に基づいて取得したクライアント証明書を用いてセキュアセッションを確立していることをサーバ装置が検証することができる。
【0023】
第4の発明においては、前述した作用に加え、合意処理の前に、タイムスタンプを付与した認証コンテキストを生成しておき、合意処理中に、タイムスタンプを付与した認証コンテキストをサーバ装置に送信する構成により、合意処理を中断することなく予め作成した認証コンテキストに基づいてセキュアセッションを確立することができる。また、認証コンテキストに付与したタイムスタンプにより、再送攻撃を防止することができる。
【発明の効果】
【0024】
以上説明したように本発明によれば、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の各実施形態について図面を用いて説明するが、その前に、各実施形態の前提となるTLSハンドシェイク(RFC)の各メッセージの概要を述べておく。
【0026】
TLSハンドシェイクの各メッセージは、クライアントハロー(Client Hello)、サーバハロー(Server Hello)、サーバ証明書(Server Certificate)(オプション)、証明書要求(Certificate Request)(オプション)、サーバハロー終了(Server Hello Done)、クライアント証明書(Client Certificate)(オプション)、クライアント鍵交換(Client Key Exchange)、証明書検証(Certificate Verify)(オプション)、暗号化仕様変更(Change Cipher Spec)、終了(Finished)、暗号化仕様変更(Change Cipher Spec)、終了(Finished)、の順に通信される。
【0027】
ここで、クライアントハロー(Client Hello)メッセージは、クライアントからサーバに初めて接続を行うとき、あるいはサーバからHello Requestを受取った時に送信される。クライアントハローメッセージの中には、使用する暗号化アルゴリズムや圧縮アルゴリズムのリストが格納される。既存のセッションを再開するときには、セッションIDも送信される。クライアントハローメッセージを送信すると、クライアントは、サーバ側から送信されるサーバハローメッセージを待つ。
【0028】
サーバハロー(Server Hello)メッセージは、クライアントから送信された暗号化アルゴリズムと圧縮アルゴリズムのリストからどれを使用するかを指定する。セッションIDも送信されてきて、サーバが許可する場合には既存セッションを再開する。
【0029】
サーバ証明書(Server Certificate)メッセージ(オプション)は、サーバから自身の証明書(CCITT勧告X.509で規定される形式)をクライアントに送信する。また、ここにはルート認証局までの証明書のリストを全て含んだ形式で送信される。
【0030】
証明書要求(Certificate Request)メッセージ(オプション)は、サーバからクライアントの証明書の提示を要求する場合に送られる。このメッセージには、サーバが信頼する認証局のリストが付加されている。
【0031】
サーバハロー終了(Server Hello Done)メッセージは、ハローメッセージの一連の送受信が無事に終了すると、クライアントに送信される。その後、サーバはクライアントからのメッセージを待つ。
【0032】
クライアント証明書(Client Certificate)メッセージ(オプション)は、サーバから証明書要求(Certificate Request)を受信した場合に送信される。サーバからの要求に適した証明書が無ければ、証明書無し(no_certificate)の警告(Alert)を返信する。データの形式は、サーバ証明書(Server Certificate)と同じである。
【0033】
クライアント鍵交換(Client Key Exchange)メッセージでは、クライアントハローとサーバハローとで合意した暗号化アルゴリズムを使用して、プリマスターシークレットデータを生成して、暗号化して送信する。プリマスターシークレットデータとは、暗号化に使用するセッション鍵を生成する時に使用されるマスターシークレットを生成する元となるデータである。
【0034】
証明書検証(Certificate Verify)メッセージ(オプション)では、クライアントの証明書を送信している場合、クライアントが今までのサーバとのハローメッセージのやり取りから署名を生成してサーバに送信する。具体的には、今までのやり取りのデータのハッシュ値をクライアント側の秘密鍵で暗号化したものを送信する。サーバは、クライアントから受信した証明書をクライアント側の公開鍵で復号し、取得したハッシュ値と比較して署名を検証する。
【0035】
暗号化仕様変更(Change Cipher Spec)メッセージは、クライアントから双方で合意した暗号化アルゴリズムで通信を行うことを宣言するメッセージである。
【0036】
終了(Finished)メッセージは、クライアントが、サーバとのやり取りが正常に終了し、セッション確立のために必要なデータが揃ったことをサーバに知らせるためのメッセージである。
【0037】
暗号化仕様変更(Change Cipher Spec)メッセージは、サーバから双方で合意した暗号化アルゴリズムで通信を行うことを宣言するメッセージである。
【0038】
終了(Finished)メッセージは、サーバが、クライアントとのやり取りが正常に終了し、セッション確立のために必要なデータが揃ったことをクライアントに知らせるためのメッセージである。
【0039】
以上がTLSハンドシェイクの概要である。続いて、本発明の各実施形態を説明する。なお、以下の各実施形態は、装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【0040】
(第1の実施形態)
図1は本発明の第1の実施形態に係る認証システムの構成を示す模式図である。この認証システムは、インターネット等のネットワークを介して互いに通信可能なクライアント装置100及びサーバ装置200から構成される。
【0041】
ここで、クライアント装置100は、通信部101、制御部102、セキュリティポリシー保存部103、鍵保存部104、生体認証処理制御部105、テンプレート保存部106、生体情報取得部107、生体認証実行部108、認証コンテキスト生成部109、秘匿部110、暗号化部111、圧縮部112、検証部113及び鍵交換部114を備えている。
【0042】
通信部101は、制御部102に制御され、インターネットを介してサーバ装置200とデータを送受信する機能をもっている。
【0043】
制御部102は、合意処理中の周知のメッセージ制御機能に加え、合意処理中に生体認証に関するメッセージを制御するように各部101,103〜114を制御する機能をもっている。各メッセージの詳細は後述する。
【0044】
具体的には制御部102は、周知のメッセージ制御機能に加え、合意処理中に、サーバ装置から乱数データを含むサーバハローメッセージを通信部101により受信する機能と、サーバハローメッセージの受信後、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置200に送信する機能と、生体認証交渉メッセージの送信後、サーバ装置200から通知された生体認証方式情報に基づいて、生体認証処理制御部105を起動する機能と、サーバハローメッセージ内の乱数データをクライアントの秘密鍵に基づいて暗号化部111により暗号化し、暗号化乱数を生成する機能と、認証コンテキスト生成部109から受けた認証コンテキストを通信部101によりサーバ装置200に送信することにより、合意処理を継続する機能とをもっている。
【0045】
セキュリティポリシー保存部103は、制御部102から読出/書込可能な記憶装置であり、周知の秘匿通信のセキュリティポリシーに加え、生体認証に関するセキュリティポリシーが予め保存されている。
【0046】
ここで、セキュリティポリシーは、例えば図2に示すように、実行可能なポリシーとして、生体認証実行部108の安全性、生体認証実行部108の品質、生体認証方式を示す生体認証方式情報、照合パラメータ、テンプレートの安全性、テンプレートの品質が記述されている。
【0047】
鍵保存部104は、制御部102、秘匿部110及び認証コンテキスト生成部109から読出/書込可能な記憶装置であり、クライアント装置100の公開鍵を含むクライアント証明書と、当該公開鍵に対応する秘密鍵とが保存されている。
【0048】
生体認証処理制御部105は、制御部102に制御されて生体認証処理を行うように、テンプレート保存部106、生体情報取得部107及び生体認証実行部108を制御する機能と、得られた生体認証の結果を認証コンテキスト生成部109に送出する機能とをもっている。
【0049】
テンプレート保存部106は、予め登録された利用者の生体情報(テンプレート)が格納され、生体認証処理制御部105からの要求によりテンプレートを生体認証実行部108に出力する機能をもっている。
【0050】
生体情報取得部107は、生体認証処理制御部105に制御され、利用者の生体情報を取得して生体認証実行部108に出力する機能をもっている。
【0051】
生体認証実行部108は、生体認証処理制御部105に制御され、生体情報取得部107から受けた生体情報とテンプレート保存部106内のテンプレートとに基づく生体認証処理を実行し、生体認証の結果を生体認証処理制御部105に出力する機能をもっている。
【0052】
認証コンテキスト生成部109は、生体認証処理制御部105により得られた生体認証の結果およびその処理の正当性を保証する情報と生体認証方式情報と暗号化乱数とクライアント証明書とからクライアントの秘密鍵に基づいて、認証子(デジタル署名)を生成する機能と、生体認証の結果と生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを制御部102に送出する機能とをもっている。
【0053】
ここで、認証コンテキストの一例としては、図3に示すように、一般コンテキストg及び特定コンテキストpを備えたものとしてもよい。一般コンテキストgは、ヘッダブロックgh及びghに対する認証子ブロックgaを備えている。特定コンテキストpは、ヘッダブロックph、データブロックpd、クライアント証明書ブロックpc及びph,pd,pcに対する認証子ブロックgaを備えている。一般コンテキストgのヘッダブロックghは、特定コンテキストのヘッダブロックphを一意に特定可能なヘッダ情報を含んでいる。データブロックpdは、例えば、生体認証の結果、生体認証方式情報及び暗号化乱数を含んでいる。
【0054】
秘匿部110は、制御部102に制御されて鍵に関する秘匿処理を実行するものであり、具体的には、暗号化部111、圧縮部112、検証部113及び鍵交換部114を備えている。なお、秘匿部110の機能ブロックは、合意処理のオプションで選択しなかった場合のように、使用しない場合もある。これは以下の各実施形態でも同様である。
【0055】
暗号化部111は、制御部102から鍵及びデータを受けると、鍵に基づいてデータを暗号化し、得られた暗号化データを制御部102に送出する機能をもっている。また、暗号化部111は、擬似乱数生成関数(pseudo-random function:PRF)により擬似乱数を生成する機能をもっている。
【0056】
圧縮部112は、制御部102から受けたデータを圧縮し、得られた圧縮データを制御部102に送出する機能をもっている。
【0057】
検証部113は、制御部102から鍵及びデータを受けると、鍵に基づいてデータを検証し、検証結果を制御部102に送出する機能をもっている。
【0058】
鍵交換部114は、制御部102から鍵及びデータを受けると、鍵及びデータに基づいて鍵交換処理を実行し、得られた処理結果を制御部102に送出する機能をもっている。
【0059】
一方、サーバ装置200は、通信部201、制御部202、セキュリティポリシー保存部203、鍵保存部204、認証コンテキスト検証部205、秘匿部206、暗号化部207、圧縮部208、検証部209及び鍵交換部210を備えている。
【0060】
通信部201は、制御部202に制御され、インターネットを介してクライアント装置100とデータを送受信する機能をもっている。
【0061】
制御部202は、周知のメッセージ制御機能に加え、合意処理中に生体認証に関するメッセージを制御するように各部201,203〜210を制御する機能をもっている。各メッセージの詳細は後述する。
【0062】
具体的には制御部202は、周知のメッセージ制御機能に加え、合意処理中に、乱数を含むメッセージをクライアント装置100に送信する機能と、メッセージの送信後、クライアント装置100の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージをクライアント装置100から受信する機能と、生体認証交渉メッセージ内の生体認証方式情報がセキュリティポリシー保存部203内の各生体認証方式情報のいずれかに一致するか否かを判定する機能と、判定の結果が一致を示すとき、当該生体認証方式情報をクライアント装置100に通知する機能と、通知の後、生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストをクライアント装置100から受信する機能と、認証コンテキストを認証コンテキスト検証部205に送出し、認証コンテキスト検証部205から受けた検証結果に応じて合意処理を継続又は中断する機能とをもっている。
【0063】
セキュリティポリシー保存部203は、制御部202から読出/書込可能な記憶装置であり、周知の秘匿通信のセキュリティポリシーに加え、生体認証に関するセキュリティポリシーが予め保存されている。
【0064】
ここで、セキュリティポリシーは、例えば図4に示すように、(後述するステップST13の)アプリケーション毎に、受け入れ可能なポリシーを列挙しており、各ポリシーには、生体認証実行部の安全性、生体認証実行部の品質、生体認証方式を示す生体認証方式情報、照合パラメータ、テンプレートの安全性、テンプレートの品質が記述されている。また、セキュリティポリシーは、例えば図5に示すように、(後述するステップST13の)アプリケーション毎に、受け入れ可能なポリシーが複数存在してもよい。
【0065】
鍵保存部204は、制御部202及び秘匿部206から読出/書込可能な記憶装置であり、サーバ装置200の公開鍵を含むサーバ証明書と、当該公開鍵に対応する秘密鍵とが保存されている。
【0066】
認証コンテキスト検証部205は、(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報と通知した生体認証方式情報とが互いに異なるとき、(iii)認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がメッセージ内の乱数と異なるとき、又は(iv)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、のいずれかに該当する場合、合意処理を中断する旨の検証結果を制御部に送出する機能と、上記(i)〜(iv)に該当しない場合、合意処理を継続する旨の検証結果を制御部202に送出する機能と、をもっている。
【0067】
秘匿部206は、制御部202に制御されて鍵に関する秘匿処理を実行するものであり、具体的には、暗号化部207、圧縮部208、検証部209及び鍵交換部210を備えている。なお、秘匿部206の機能ブロックは、合意処理のオプションで選択しなかった場合のように、使用しない場合もある。これは以下の各実施形態でも同様である。
【0068】
暗号化部207は、制御部202から鍵及びデータを受けると、鍵に基づいてデータを暗号化し、得られた暗号化データを制御部202に送出する機能をもっている。また、暗号化部207は、擬似乱数生成関数(pseudo-random function:PRF)により擬似乱数を生成する機能をもっている。
【0069】
圧縮部208は、制御部202から受けたデータを圧縮し、得られた圧縮データを制御部202に送出する機能をもっている。
【0070】
検証部209は、制御部202から鍵及びデータを受けると、鍵に基づいてデータを検証し、検証結果を制御部202に送出する機能をもっている。
【0071】
鍵交換部210は、制御部202から鍵及びデータを受けると、鍵及びデータに基づいて鍵交換処理を実行し、得られた処理結果を制御部202に送出する機能をもっている。
【0072】
次に、以上のように構成された認証システムの動作を図6のシーケンス図を用いて説明する。なお、各シーケンス図は秘匿通信のハンドシェイクプロトコルを表している。また、図中に網掛けで表したステップ(ST1,ST2,ST-CBN,ST-SBN,ST-BP,ST-BV)以外のステップST3〜ST5、ST6〜13は周知技術と同じであるため、詳細な説明を省略する。これは以下の各実施形態でも同様である。
【0073】
(ステップST1)
クライアント装置100においては、ハンドシェイクの拡張処理がある旨を通知するため、従来のハロー(Hello)メッセージを拡張したクライアントハローメッセージMCHを制御部102が通信部101によりサーバ装置200に送信する。
【0074】
このクライアントハロー(ClientHello)メッセージMCHは、図7に示すように、クライアントのプロトコルバージョン(ProtocolVersion)、クライアント装置100が生成した乱数データ(Random)、セッションID(SessionID)、クライアント装置100が実行可能な暗号化アルゴリズム(CipherSuite)、クライアント装置100が実行可能な圧縮方式(CompressionMethod)、このハンドシェイクで拡張処理を行うことを示す拡張(Extension)リストMCH-LISTを含んでいる。この拡張リストMCH-LISTについては、例えば図8に示すように、生体認証に基づくクライアント認証(Client_auth)を含む拡張型(ExtensionType)と、生体認証方式情報(unit8 AuthenticationMethod[2])を含む拡張方式(ExtensionMethod)とを含んでいる。
【0075】
この拡張リストMCH-LISTにより通知する内容は、生体認証に基づいてクライアント認証を行い、クライアント認証の結果に応じてセキュアセッションを確立することである。その他の詳細は周知の技術と同じであるので省略する。
【0076】
(ステップST2)
サーバ装置200においては、クライアントハローメッセージMCHを通信部201により制御部202が受信する。制御部202は、ハンドシェイクの拡張処理について了解した旨を通知するため、拡張したサーバハロー(ServerHello)メッセージMSHを通信部201によりクライアント装置100に送信する。
【0077】
サーバハローメッセージMSHは、図9に示すように、サーバ装置200のプロトコルバージョン(ProtocolVersion)、サーバ装置200が生成した乱数データ(Random)、セッションID(SessionID)、サーバ装置200が合意した暗号化アルゴリズム(CipherSuite)、サーバ装置200が合意した圧縮方式(CompressionMethod)、このハンドシェイクで拡張処理を行うことを示す拡張リスト(Extension)を含んでいる。
【0078】
その他の詳細は周知の技術と同じであるので省略する。
【0079】
(ステップST3)
サーバ装置200においては、サーバ認証を行うため、及びクライアント装置100との鍵交換に必要なデータを送信するため、鍵保存部204内のサーバ証明書を含むサーバ証明書(ServerCertificate)メッセージを制御部202が通信部201によりクライアント装置100に送信する。またサーバ証明書にクライアント装置100との鍵交換に必要なデータが含まれていない場合、制御部202は、通信部201により、サーバ証明書メッセージに続けてサーバ鍵交換(ServerKeyExchange)メッセージをクライアント装置100に送信する。
【0080】
もしサーバ認証を行わない場合、図10に示すように、サーバ証明書メッセージを送信せずに、サーバ鍵交換メッセージをクライアント装置100に送信する。
【0081】
(ステップST4)
サーバ装置200においては、オプションで選択されていれば制御部202が通信部201により、クライアント証明書を要求する証明書要求(CertificateRequest)メッセージをクライアント装置100に送信する。
【0082】
(ステップST5)
サーバ装置200においては、制御部202が通信部201により、ハローメッセージの一連の処理が終了した旨のサーバハロー終了(ServerHelloDone)メッセージをクライアント装置100に送信する。
【0083】
(ステップST−CBN)
クライアント装置100においては、クライアント装置100で実行可能な生体認証方式のリストをサーバに通知するため、制御部102が通信部101により、クライアント生体認証交渉(ClientBiometricNegotiation)メッセージMCBNをサーバ装置200に送信する。
【0084】
クライアント生体認証交渉メッセージMCBNは、図11に示すように、クライアント装置100で実行可能な生体認証方式を示す生体認証方式情報をリストにした生体認証方式リスト(BiometricMethodList)を含んでいる。
【0085】
(ステップST−SBN)
サーバ装置200においては、クライアント生体認証交渉メッセージを制御部202が通信部201により受信すると、制御部202がクライアント生体認証交渉メッセージ内の生体認証方式リストの生体認証方式情報がセキュリティポリシー保存部203内の生体認証方式情報のいずれかに一致するか否かを判定する。
【0086】
制御部202は、判定の結果が一致を示すとき、当該生体認証方式情報を含むサーバ生体認証交渉(ServerBiometricNegotiation)メッセージMSBNを通信部201によりクライアント装置100に送信する。ここで選択した方式は複数であってもよい。
【0087】
サーバ生体認証交渉メッセージMSBNは、図12に示すように、セキュリティポリシー保存部203内のセキュリティポリシーを満たす生体認証方式を示す生体認証方式情報をリストにした生体認証方式リスト(BiometricMethodList)を含んでいる。
【0088】
(ステップST−BP)
クライアント装置100においては、サーバ生体認証交渉メッセージを制御部102が通信部101により受信すると、制御部102が、サーバ生体認証交渉メッセージ内の生体認証方式情報に基づいて、生体認証処理制御部105を起動する。生体認証処理制御部105は、各部106〜108を制御してユーザの生体認証処理を実行し、得られた生体認証の結果を認証コンテキスト生成部109に送出する。
【0089】
また、制御部102は、暗号化部111により、サーバハロー(ServerHello)メッセージMSHに含まれる乱数データを鍵保存部104内の秘密鍵に基づいて暗号化し、暗号化乱数を生成する。この暗号化乱数は、制御部102から認証コンテキスト生成部109に送出される。
【0090】
認証コンテキスト生成部109は、生体認証の結果と生体認証方式情報と暗号化乱数と鍵保存部104内のクライアント証明書とから、鍵保存部104内の秘密鍵に基づいて、認証子を生成する。
【0091】
しかる後、認証コンテキスト生成部109は、生体認証の結果および生体認証処理の正当性を保証するための取得した生体情報(サンプル)や参照した生体情報(テンプレート)および参照した生体情報の証明書(テンプレート証明書)などの各種情報と生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを生成し、この認証コンテキストを制御部102に送出する。
【0092】
制御部102は、この認証コンテキストを含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200に送信する。これにより、合意処理は継続される。
【0093】
生体認証処理メッセージMBPは、図13に示すように、クライアントで実行された生体認証結果である認証結果(AuthenticationResult)を含んでいる。認証結果は、例えばサーバから提示された認証方式からクライアント装置100が選択した認証方式と認証結果のデータが含まれる。本実施形態では、前述した認証コンテキストが拡張データ(ExtensionData)に含まれていればよい。
【0094】
またチャレンジデータの作成方法としては、サーバハローメッセージに含まれるチャレンジを利用する以外に、周知の技術を用いてクライアントハローメッセージ及びサーバハローメッセージによって合意した暗号化アルゴリズム(CipherSuite)により乱数を生成してチャレンジデータとしても良い。
【0095】
(ステップST−BV)
サーバ装置200においては、生体認証処理メッセージMBPを制御部202が通信部201により受信すると、制御部202が生体認証処理メッセージMBP内の認証コンテキストを認証コンテキスト検証部205に送出する。
【0096】
認証コンテキスト検証部205は、認証コンテキストを検証し、検証結果を制御部202に送出する。制御部202は、認証コンテキストの検証結果に応じて合意処理を継続又は中断する。合意処理を中断する場合の検証結果としては、例えば(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報と通知した生体認証方式情報とが互いに異なるとき、(iii)認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がサーバハローメッセージ内の乱数と異なるとき、又は(iv)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、などがある。なお、ここでは、合意処理を継続する検証結果を得たとする。
【0097】
制御部202は、検証した結果を通知するため、図14に示すように、認証コンテキストの検証結果を示す認証結果(AuthenticationResult)、生体認証処理の情報を格納する認証情報(AuthenticateInfo)及びこれら項目に対してサーバの秘密鍵で作成された署名(Signature)が含まれた生体認証検証(BiometricVerify)メッセージMBVを通信部201によりクライアント装置100に送信する。
【0098】
(ステップST6)
クライアント装置100は、生体認証検証メッセージMBVを制御部102が通信部101により受信する。しかる後、制御部102は、サーバがクライアントの証明書を要求している場合には、鍵保存部104内のクライアント証明書を含むクライアント証明書(ClientCertificate)メッセージを通信部101によりサーバ装置200に送信する。
【0099】
(ステップST7)
クライアント装置100においては、プリマスターシークレット(premaster_secret)をサーバに通知するため、制御部102がクライアント鍵交換(ClientKeyExchange)メッセージを通信部101によりサーバ装置200に送信する。
【0100】
(ステップST8)
クライアント装置100においては、ステップST6でクライアント証明書を送信した場合、クライアント証明書の検証のため、制御部102は、暗号化部111により、現在までのメッセージに対して鍵保存部内104の秘密鍵に基づいてデジタル署名を生成する。しかる後、制御部102は、現在までのメッセージとデジタル署名とを含むクライアント検証(ClientVerify)メッセージを通信部101によりサーバ装置200に送信する。
【0101】
(ステップST9)
クライアント装置100においては、制御部102が通信部101により、双方で合意した暗号化アルゴリズムで秘匿通信を行うことを宣言する暗号化仕様変更(ChangeCipherSpec)メッセージをサーバ装置200に送信する。
【0102】
(ステップST10)
クライアント装置100においては、制御部102が通信部101により、サーバとのやり取りが正常に終了し、セッション確立のために必要なデータが揃った旨の終了(Finished)メッセージをサーバ装置200に送信する。
【0103】
(ステップST11)
サーバ装置200においては、制御部202が通信部201により、双方で合意した暗号化アルゴリズムで秘匿通信を行うことを宣言する暗号化仕様変更メッセージをクライアント装置100に送信する。
【0104】
(ステップST12)
サーバ装置200においては、制御部202が通信部201により、クライアントとのやり取りが正常に終了し、セッション確立のために必要なデータが揃った旨の終了メッセージをクライアント装置100に送信する。
【0105】
(ステップST13)
ステップST12の完了後、クライアント装置及びサーバ装置は、秘匿通信を実行可能な鍵を共有でき、その後のセッションにおいてクライアント装置−サーバ装置間でセキュアセッションを確立することができる。
【0106】
上述したように本実施形態によれば、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0107】
また、合意処理中のメッセージに含まれる乱数から生成した暗号化乱数を含む認証コンテキストを含む生体認証処理メッセージMBPをサーバ装置200に送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させるので、生体認証に伴う通信の発生を抑制することができる。また生体認証により、不正なユーザが正当なクライアント装置を利用したなり済ましを防止することができる。
【0108】
またステップST4,ST6,ST8はオプションの処理であり、このステップの処理を行わず、ステップST5の処理において一時的な鍵をサーバで生成して利用するなら、ハンドシェイクはクライアントの生体認証の結果のみからセキュアセッションを確立することが可能となる。
【0109】
ステップST4,ST6,ST8の処理を行えば生体認証の結果とクライアントの証明書による認証の結果に応じてセキュアセッションを確立することとなる。
【0110】
さらにステップST3でサーバの証明書を送信すれば、サーバの証明書の認証の結果にも応じた結果セキュアセッションを確立することとなる。
【0111】
本実施形態からクライアント装置100に接続されている任意の生体認証装置(各部105〜108)でセキュアセッションを確立することが可能であり、サーバ装置200は自身が保持するポリシーに従って、例えば生体認証装置の精度で判断することが可能になる。
【0112】
補足すると、TLSを拡張する技術としてはTLS拡張方式(TLS Extension)が知られている(例えば、非特許文献4参照。)。本発明者は、本実施形態を着想する前に、TLS拡張方式を用いてTLSハンドシェイクを拡張し、生体認証に基づいてセキュアセッションを確立することを考えた。ただし、単純に従来のTLSハンドシェイクに生体認証のパスを追加するような拡張では、生体認証の処理に必要となる各種データ、例えばチャレンジデータやネゴシエーション等の処理をどのようにハンドシェイク中に行うかが不明であり、生体認証に基づいてセキュアセッションを正しく確立することができない。
【0113】
しかしながら、本実施形態によれば、TLSハンドシェイクを拡張する際に、生体認証処理に必要な情報やネゴシエーションの処理を適切に行うので、TSLハンドシェイクをTLS拡張方式により適切に拡張することができる。
【0114】
また、本実施形態において、生体認証装置(各部105〜108)はクライアント装置100に含まれているが、生体認証装置は外部装置であっても良く、またテンプレート保存部106も例えばICカードのようにクライアント装置100の外部にあって接続されていても良く、クライアントマッチングが実行可能な形態であれば良い。
【0115】
また実施形態では、TLSハンドシェイクを拡張して生体認証を行っているが、他にもセキュアセッションを確立するSSL(Secure Socket Layer)や他のハンドシェイクへも同様に適用することが可能である。
【0116】
以上から、生体認証の結果に基づいてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び生体認証の結果に基づいてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0117】
また、本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST-BP,ST-BV」及び「ステップST6〜ST8」の順序を変更しても、同様に実施して同様の効果を得ることができる。但し、「ステップST-CBN,ST-SBN」は「ステップST-BP,ST-BV」よりも先に実行する必要がある。
【0118】
具体的には本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST6〜ST8」及び「ステップST-BP,ST-BV」の順序で実行することもできる。また、本実施形態は「ステップST6〜ST8」、「ステップST-CBN,ST-SBN」及び「ステップST-BP,ST-BV」の順序で実行することもできる。
【0119】
(第2の実施形態)
図15は本発明の第2の実施形態に係る認証システムの構成を示す模式図であり、図1とほぼ同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【0120】
第2の実施形態は、第1の実施形態の変形例であり、クライアント装置100a側で取得した生体認証の結果をサーバ装置200a側で生体認証するサーバマッチングの実施形態である。
【0121】
これに伴い、クライアント装置100aは、図1に示したクライアント装置100に比べ、テンプレート保存部106及び生体認証実行部108が省略され、前述した機能が変更された制御部102a及び生体認証処理制御部105aを備えた構成となっている。
【0122】
ここで、制御部102aは、クライアントの乱数(第1乱数)を生成するための乱数生成機能と、合意処理中に、クライアントの乱数を含むクライアントハローメッセージ(第1メッセージ)を作成し、このクライアントハローメッセージを通信部101によりサーバ装置200aに送信する機能と、クライアントハローメッセージの送信後、サーバ装置200aからサーバ乱数(第2乱数)を含むサーバハローメッセージ(第2メッセージ)を受信する機能と、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置200aに送信する機能と、生体認証交渉メッセージの送信後、サーバ装置200aから通知された生体認証方式情報に基づいて、生体認証処理制御部105aを起動する機能と、暗号化部111により、クライアント乱数(第1乱数)及びサーバ乱数(第2乱数)に基づいてハッシュアルゴリズムにより暗号化用パラメータを生成する機能と、生体認証処理制御部105aにより取得した生体情報を暗号化用パラメータに基づいて暗号化部111により暗号化し、得られた暗号化生体情報をサーバ装置200aに通知することにより、合意処理を継続する機能とをもっている。
【0123】
生体認証処理制御部105aは、制御部102aにより起動されると、生体情報取得部107によりユーザの生体情報を取得し、この生体情報を制御部102aに送出する機能をもっている。
【0124】
同様に、サーバ装置200aは、図1に示したサーバ装置200に比べ、テンプレート保存部211及び生体認証実行部212が付加され、前述した機能が変更された制御部202aを備えた構成となっている。
【0125】
制御部202aは、合意処理中に、クライアント装置100aからクライアント装置100aが生成した乱数データ(第1乱数。以下、クライアント乱数ともいう)を含むクライアントハローメッセージ(第1メッセージ)を通信部201により受信する機能と、クライアントハローメッセージの受信後、サーバ装置200aが生成した乱数データ(第2乱数。以下、サーバ乱数ともいう)を含むサーバハローメッセージ(第2メッセージ)をクライアント装置100aに通信部201を介して送信する機能と、クライアント装置100aの生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージをクライアント装置100aから通信部201により受信する機能と、生体認証交渉メッセージ内の生体認証方式情報がセキュリティポリシー保存部203内の各生体認証方式情報のいずれかに一致するか否かを判定する機能と、判定の結果が一致を示すとき、当該生体認証方式情報をクライアント装置100aに通信部201を介して通知する機能と、通知の後、生体認証方式情報に従って取得されたユーザの生体情報がクライアント乱数(第1乱数)及びサーバ乱数(第2乱数)に基づいて暗号化されてなる暗号化生体情報をクライアント装置100aから通信部201により受信する機能と、クライアントハローメッセージ内のクライアント乱数及びサーバハローメッセージ内のサーバ乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを暗号化部207により生成する機能と、暗号化部207により、暗号化生体情報を暗号化用パラメータに基づいて復号する機能と、復号により得られた生体情報を生体認証実行部212に送出する機能と、生体認証実行部212から受けた生体認証の結果が不正を示すとき、合意処理を中断する機能とをもっている。
【0126】
テンプレート保存部211は、予め登録された利用者の生体情報(テンプレート)が格納され、生体認証実行部212からの要求によりテンプレートを生体認証実行部212に出力する機能をもっている。
【0127】
生体認証実行部212は、制御部202aから受けた生体情報を、テンプレート保存部211内のテンプレートに基づいて生体認証し、生体認証の結果を制御部202aに送出する機能をもっている。
【0128】
次に、以上のように構成された認証システムの動作を図16のシーケンス図を用いて説明する。なお、各シーケンス図は秘匿通信のハンドシェイクプロトコルを表している。
【0129】
(ステップST1〜ST8)
ステップST1〜ST−SBNまでは第1の実施形態と同じであるので説明を省略する。また、ステップST−SBNの後に、前述したステップST6〜ST8を実行しなければならない。
【0130】
(ステップST−BP)
クライアント装置100aにおいては、サーバ装置200aから通知された生体認証方式情報を含むサーバ生体認証交渉メッセージを制御部102aが通信部101により受信する。制御部102aは、サーバ生体認証交渉メッセージ内の生体認証方式情報に基づいて、生体認証処理制御部105aを起動する。生体認証処理制御部105aは、生体情報取得部107を制御してユーザの生体情報を取得し、得られた生体情報を制御部102aに送出する。
【0131】
制御部102aは、生体情報を取得すると、暗号化部111により、クライアントハローメッセージ内の乱数データ及びサーバハローメッセージ内の乱数データに基づいて暗号化用パラメータを生成し、この暗号化用パラメータにより生体情報を暗号化し、暗号化生体情報を得る。
【0132】
しかる後、制御部102aは、この暗号化生体情報を含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200aに送信する。
【0133】
なお、生体情報を暗号化する手法は、例えば、以下のような手法を用いればよい。
【0134】
クライアント装置100aは、生体情報を暗号化及び圧縮する仕様として、クライアントハローメッセージMCH及びサーバハローメッセージMSHによって合意したものを使用する。
【0135】
また、クライアント装置100aは、生体情報を暗号化する鍵(必要なら加えて初期ベクタ)等のパラメータを、標準状態で使用する主要パラメータ(例、クライアント/サーバ書込MACシークレット、クライアント/サーバ書込キー、クライアント/サーバ書込初期ベクタ等)と同様に生成する。
【0136】
すなわち、クライアント装置100aは、周知の技術におけるメッセージに含まれるサーバ乱数、クライアント乱数及びプリマスターシークレットを用い、ハッシュアルゴリズムに基づいて、生体情報の暗号化用パラメータ(暗号化鍵)を生成する。具体的には、制御部102aは、サーバ乱数、クライアント乱数及びプリマスターシークレットを暗号化部111の擬似乱数生成関数(pseudo-random function:PRF)に入力し、得られた値をマスターシークレットとする。
【0137】
次に、マスターシークレット、サーバランダム及びクライアントランダムを同様に疑似乱数生成関数PRFに入力して得られた値をキーブロックとして、このキーブロックを必要なサイズに分割して、各パラメータを得る。このとき、周知の秘匿通信プロトコルでは、本来余分なキーブロックを破棄するが、ここでは暗号化用パラメータ(書込キー、書込初期ベクタ)分を余分なキーブロックとして生成する。しかる後、暗号化部111は、この暗号化用パラメータに基づいて生体情報を暗号化し、得られた暗号化生体情報を制御部102aに送出する。
【0138】
制御部102aは、この暗号化生体情報を認証結果(AuthenticationResult)の拡張データ(ExtensionData)に格納して生体認証処理(BiometricProcess)メッセージMBPを構成してサーバ装置200aへ送信する。
【0139】
(ステップST−BV)
サーバ装置200aにおいては、この生体認証処理メッセージMBPを制御部202aが通信部201により受信する。
【0140】
制御部202aは、暗号化部207の制御により、クライアントと同様に各乱数から暗号化用パラメータを生成し、この暗号化用パラメータに基づいて、生体認証処理メッセージMBPに含まれる暗号化生体情報を復号し、生体情報を得る。
【0141】
制御部202aは、この生体情報を生体情報検証部212に送出する。生体情報検証部212は、この生体情報に基づいてサーバマッチングを行い、生体認証の結果を制御部202aに送出する。
【0142】
しかる後、制御部202aは、この生体認証の結果を含む生体認証検証(BiometricVerify)メッセージMBVを通信部201によりクライアント装置100aに送信する
(ステップST9〜ST13)
ステップST9〜ST13は第1の実施形態と同じであるので説明を省略する。
【0143】
上述したように本実施形態によれば、サーバマッチングを行う構成に変形しても、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0144】
また、合意処理中の各ハローメッセージに含まれるクライアント乱数及びサーバ乱数に基づいて生体情報を暗号化してサーバ装置200aに送信する構成により、証明書認証を含む合意処理と生体認証とを有機的に結合させつつ、サーバマッチングによる生体認証を実現させることができる。また、生体認証により、不正なユーザが正当なクライアント装置を利用したなり済ましを防止できる。
【0145】
また第1の実施形態において、もし暗号化して生体情報の結果を送信するような場合は本実施形態と同じシーケンスで実行することにより暗号化することも可能になる。
【0146】
本実施形態ではクライアント装置100aで生体情報を取得してサーバ装置200aへ送信し、サーバ装置200aで保持するテンプレートと照合処理を行うことで生体認証を実行するが、クライアント装置100aから取得した生体情報とテンプレートを送信し、サーバ装置200aで照合処理を行うような実施形態でも良く、その組み合わせは生体認証の実施形態の組み合わせだけあるといえる
以上から、生体情報をサーバ装置200aに安全に送り、サーバ装置200aにおける照合結果に基づいてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び生体認証の結果に基づいてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0147】
補足すると、従来のTLSプロトコル又はTLS内部アプリケーションのいずれにしても、クライアント装置が生体情報をサーバ装置に送信し、サーバ装置がマッチングにより生体認証を行ってセキュアセッションを確立する場合、生体情報が資格証明情報(クレデンシャルな情報)であることから、生体情報を暗号化して送信する必要がある。しかしながら、単純に従来のTLSハンドシェイク中において生体認証を行う場合、生体情報をセキュアセッションの確立前に送信する必要があるので、生体情報を暗号化等により保護する手段が存在しない。これに対し、本実施形態では、前述した通り、生体情報を暗号化して送信することにより保護することができる。
【0148】
また、本実施形態は、「ステップST-CBN,ST-SBN」及び「ステップST6〜ST8」の順序を変更しても、同様に実施して同様の効果を得ることができる。但し、「ステップST-BP,ST-BV」は動かすことはできない。理由は、データを暗号化するためには「ステップST6〜ST8」のパスが必要であり、生体認証交渉をするためには「ステップST-CBN,ST-SBN」が必要なためである。
【0149】
具体的には本実施形態は、「ステップST6〜ST8」、「ステップST-CBN,ST-SBN」及び「ステップST-BP,ST-BV」の順序で実行することもできる。
【0150】
(第3の実施形態)
図17は本発明の第3の実施形態に係る認証システムの構成を示す模式図である。
第3の実施形態は、第1の実施形態の変形例であり、クライアント装置100b側で生体認証を行い、生体認証の結果に基づいて取得したクライアント証明書をサーバ装置200bに送信してクライアント認証を行う実施形態である。
【0151】
これに伴い、クライアント装置100bは、図1に示したクライアント装置100に比べ、前述した機能が変更された制御部102b及び認証コンテキスト生成部109bを備えた構成となっている。
【0152】
ここで、制御部102bは、合意処理中に、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含むクライアントハローメッセージ(第1メッセージ)をサーバ装置200bに通信部101を介して送信する機能と、クライアントハローメッセージの送信後、サーバ装置200bからサーバ乱数を含むサーバハローメッセージ(第2メッセージ)を通信部101により受信する機能と、サーバハローメッセージの受信後、生体認証処理制御部105を起動する機能と、暗号化部111により、サーバ乱数を鍵保存部104内の秘密鍵に基づいて暗号化し、暗号化乱数を生成する機能と、生体認証処理制御部105により得られた生体認証の結果が正当のとき、鍵保存部104内のクライアント証明書をサーバ装置100bに通信部101を介して送信する機能と、生体認証の結果およびその処理の正当性を保証する情報及び暗号化乱数を認証コンテキスト生成部109bに送出する機能と、認証コンテキスト生成部109bから受けた認証コンテキストをサーバ装置200bに通信部101から送信することにより、合意処理を継続する機能とをもっている。
【0153】
認証コンテキスト生成部109bは、制御部102bから受けた生体認証の結果及び暗号化乱数から鍵保存部104内の秘密鍵に基づいて、認証子を生成する機能と、生体認証の結果及び暗号化乱数と認証子とを含む認証コンテキストを生成する機能と、生成した認証コンテキストを制御部102bに送出する機能とをもっている。
【0154】
ここで、認証コンテキストの一例としては、図18に示すように、前述した図3の構成に比べ、クライアント証明書ブロックpcを省略したものとしてもよい。データブロックpdは、例えば生体認証の結果、及び暗号化乱数を含んでいるが、前述とは異なり、生体認証方式情報を省略してもよい。生体認証方式情報が省略可能なことは、前述とは異なり、生体認証交渉ステップが無く、任意の生体認証方式を使用可能なことによる。
【0155】
同様に、サーバ装置200bは、図1に示したサーバ装置200に比べ、前述した機能が変更された制御部202b及び認証コンテキスト検証部205bを備えた構成となっている。
【0156】
制御部202bは、合意処理中に、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含むクライアントハローメッセージ(第1メッセージ)をクライアント装置100bから通信部201を介して受信する機能と、クライアントハローメッセージの受信後、サーバ乱数を含むサーバハローメッセージ(第2メッセージ)をクライアント装置100bに通信部201を介して送信する機能と、サーバハローメッセージの送信後、クライアント装置100bからクライアント証明書を通信部201により受信する機能と、サーバハローメッセージの送信後、ユーザの生体認証の結果と暗号化乱数と認証子とを含む認証コンテキストをクライアント装置100bから通信部201を介して受信する機能と、受信したクライアント証明書及び認証コンテキストを鍵保存部204に書き込む機能と、認証コンテキスト検証部205bを起動する機能と、認証コンテキスト検証部205bから受けた検証結果に応じて、合意処理を継続又は中断する機能とをもっている。
【0157】
認証コンテキスト検証部205bは、制御部202bに起動されると、鍵保存部204内の認証コンテキストを検証し、(i)鍵保存部204に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)鍵保存部204に記憶された認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がサーバハローメッセージ内の乱数と異なるとき、又は(iii)鍵保存部204に記憶されたクライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、のいずれかの場合には合意処理を中断する旨の検証結果を制御部202bに送出する機能と、上記(i)〜(iii)以外のとき、合意処理を継続する旨の検証結果を制御部202bに送出する機能とをもっている。
【0158】
次に、以上のように構成された認証システムの動作を図19のシーケンス図を用いて説明する。
【0159】
(ステップST1)
クライアント装置100bは、ハンドシェイクの拡張処理があることを通知するため、拡張したクライアントハローメッセージMCHを制御部102bが通信部101によりサーバ装置200bに送信する。
【0160】
クライアントハローメッセージMCHの拡張(Extension)リストでは、クライアント装置100bのクライアント証明書を生体認証の結果に基づいて取得したことと、生体認証の結果を送付することをサーバ装置200bに通知する。
【0161】
(ステップST2)
サーバ装置200bにおいては、クライアントハローメッセージMCHを通信部201により制御部202bが受信する。制御部202bは、ハンドシェイクの拡張処理について了解した旨を通知するため、拡張したサーバハローメッセージMSHを通信部201によりクライアント装置100bに送信する。
【0162】
(ステップST3〜ST5)
ステップST3〜ST5までは第1の実施形態と同じであるので説明を省略する。
(ステップST−BP1)
クライアント装置100bにおいては、ステップST5のサーバハロー終了(ServerHelloDone)メッセージを制御部102bが通信部101により受信すると、制御部102bが生体認証処理制御部105を起動する。生体認証処理制御部105は、各部106〜108を制御してユーザの生体認証処理を実行し、得られた生体認証の結果を制御部102bに送出する。
【0163】
制御部102bは、生体認証の結果が正当のとき、合意処理を継続してステップST6に移行する。なお、ここでの生体認証方式は、第1の実施形態とは異なり、サーバ装置200bとの生体認証交渉ステップを経ておらず、任意の生体認証方式を用いている。
【0164】
(ステップST6)
クライアント装置100bにおいては、制御部102bが、鍵保存部104内のクライアント証明書を含むクライアント証明書(ClientCertificate)メッセージを通信部101によりサーバ装置200に送信する。
【0165】
(ステップST7及びST8)
ステップST7及びST8は第1の実施形態と同じであるので説明を省略する。
(ステップST−BP2)
制御部102bは、暗号化部111により、サーバハロー(ServerHello)メッセージMSHに含まれる乱数データを鍵保存部104内の秘密鍵に基づいて暗号化し、暗号化乱数を生成する。この暗号化乱数は、制御部102bから認証コンテキスト生成部109bに送出される。また、制御部102bは、ステップST6で取得した生体認証の結果も認証コンテキスト生成部109bに送出する。
【0166】
認証コンテキスト生成部109bは、生体認証の結果と暗号化乱数とから鍵保存部104内の秘密鍵に基づいて、認証子を生成する。
【0167】
しかる後、認証コンテキスト生成部109bは、生体認証の結果および生体認証処理の正当性を保証するための取得した生体情報(サンプル)や参照した生体情報(テンプレート)および参照した生体情報の証明書(テンプレート証明書)などの各種情報と暗号化乱数と認証子とを含む認証コンテキストを生成し、この認証コンテキストを制御部102bに送出する。
【0168】
制御部102bは、この認証コンテキストを含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200bに送信する。これにより、合意処理は継続される。
【0169】
なお、もし暗号化する必要があれば、第2の実施形態と同様の処理を行うことで、認証コンテキストを暗号化して送信することも可能である。
【0170】
(ステップST−BV)
サーバ装置200bにおいては、生体認証処理メッセージMBPを制御部202bが通信部201により受信すると、制御部202bが生体認証処理メッセージMBP内の認証コンテキストを認証コンテキスト検証部205bに送出する。
【0171】
認証コンテキスト検証部205bは、認証コンテキストを検証し、検証結果を制御部202bに送出する。制御部202bは、認証コンテキストの検証結果に応じて合意処理を継続又は中断する。合意処理を中断する場合の検証結果としては、例えば(i)鍵保存部204に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)鍵保存部204に記憶された認証コンテキスト内の暗号化乱数をクライアント証明書内の公開鍵に基づいて復号し、得られた乱数がサーバハローメッセージ内の乱数と異なるとき、(iii)鍵保存部204に記憶されたクライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、などがある。なお、ここでは、合意処理を継続する検証結果を得たとする。
【0172】
制御部202bは、検証した結果を通知するため、認証コンテキストの検証結果を示す認証結果(AuthenticationResult)、生体認証処理の情報を格納する認証情報(AuthenticateInfo)及びこれら項目に対してサーバの秘密鍵で作成された署名(Signature)が含まれた生体認証検証(BiometricVerify)メッセージMBVを通信部201によりクライアント装置100bに送信する。
【0173】
(ステップST9〜ST13)
ステップST9〜ST13は第1の実施形態と同じであるので説明を省略する。
【0174】
上述したように本実施形態によれば、生体認証によりクライアント証明書を取得してサーバ装置200bに送信する構成に変形しても、前述同様に、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0175】
また、ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含むクライアントメッセージをサーバ装置200bに送信する構成により、生体認証に基づいて取得したクライアント証明書を用いてセキュアセッションを確立していることをサーバ装置200bが検証することができる。また、生体認証により、不正なユーザが正当なクライアント装置を利用したなり済ましを防止できる。
【0176】
以上から、生体認証の結果に基づいて取得した証明書を用いてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び生体認証の結果に基づいて取得して証明書を用いてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0177】
補足すると、従来のTLSプロトコル又はTLS内部アプリケーションのいずれにしても、エンティティ装置が保持する証明書に基づいてエンティティ認証を行ってセキュアセッションを確立する際に、エンティティ装置の証明書を生体認証の結果に基づいて取得していた場合、そのことをサーバに通知する手段がTLSハンドシェイクには存在しない。これに対し、本実施形態では、前述した通り、エンティティ装置(クライアント装置100b)の証明書を生体認証の結果に基づいて取得していたことをサーバ装置200bに通知することができる。
【0178】
また、本実施形態は、「ステップST6〜ST8」及び「ステップST-BP,ST-BV」の順序を変更し、「ステップST-BP,ST-BV」及び「ステップST6〜ST8」の順序で実行しても同様の効果を得ることができる。
【0179】
(第4の実施形態)
図20は本発明の第4の実施形態に係る認証システムの構成を示す模式図である。
第4の実施形態は、第1の実施形態の変形例であり、合意処理の前に、予め認証コンテキストにタイムスタンプを作成しておく実施形態である。なお、タイムスタンプは、例えば、RFC3161に準拠したタイムスタンプサービス(例えば、非特許文献5参照。)を利用して作成してもよい。
【0180】
これに伴い、クライアント装置100cは、図1に示したクライアント装置100に比べ、タイムスタンプ付与部115が付加され、前述した機能が変更された制御部102c及び認証コンテキスト生成部109cを備えた構成となっている。
【0181】
ここで、制御部102cは、合意処理の前に、生体認証処理制御部105を起動する機能と、生体認証処理制御部105から受けた生体認証の結果を認証コンテキスト生成部109cに送出する機能と、認証コンテキスト生成部109cから受けた認証コンテキストをタイムスタンプ付与部115に送出する機能と、タイムスタンプが付与された認証コンテキストをタイムスタンプ付与部115から受ける機能と、合意処理中に、生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージをサーバ装置200cに通信部101を介して送信する機能と、生体認証交渉メッセージの送信後、サーバ装置200cから通知された生体認証方式情報に基づいて、前述したタイムスタンプが付与された認証コンテキストをサーバ装置200cに通信部101を介して送信することにより、合意処理を継続する機能とをもっている。
【0182】
認証コンテキスト生成部109cは、制御部102cから生体認証の結果を受けると、当該生体認証の結果とセキュリティポリシー保存部103内の生体認証方式情報と鍵保存部104内のクライアント証明書とからクライアント秘密鍵に基づいて、認証子を生成する機能と、合意処理の前に、生体認証の結果およびその処理の正当性を保証する情報と生体認証方式情報とクライアント証明書と認証子とを含む認証コンテキストを生成する機能と、この認証コンテキストを制御部102cに送出する機能とをもっている。
【0183】
タイムスタンプ付与部115は、制御部102cから認証コンテキストを受けると、合意処理の前に、認証コンテキストをタイムスタンプ提供装置300に通信部101を介して送信する機能と、送信した認証コンテキスト及びタイムスタンプ提供装置300における日時情報に対して、当該タイムスタンプ提供装置300のタイムスタンプ秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、タイムスタンプが付与された認証コンテキストをタイムスタンプ提供装置300から通信部101を介して受信する機能と、このタイムスタンプが付与された認証コンテキストを制御部102cに送出する機能とをもっている。
【0184】
なお、タイムスタンプの付与方法は任意の方式が使用可能であるが、ここでは、外部のタイムスタンプ提供装置300に依頼して付与する方式を用いている。タイムスタンプ提供装置300は、タイムスタンプ公開鍵及びタイムスタンプ秘密鍵を記憶装置(図示せず)に保持しており、クライアント装置100cから認証コンテキストを受信すると、この認証コンテキストに現在の日時情報を付加した情報に対し、タイムスタンプ秘密鍵に基づいてタイムスタンプ(デジタル署名)を生成する機能と、このタイムスタンプを付与した認証コンテキストをクライアント装置100cに返信する機能と、サーバ装置200cから要求を受けると、タイムスタンプ公開鍵をサーバ装置200cに送信する機能とをもっている。
【0185】
一方、サーバ装置200cは、図1に示したサーバ装置200に比べ、タイムスタンプ検証部213が付加され、前述した機能が変更された制御部202c及び認証コンテキスト検証部205cを備えた構成となっている。
【0186】
制御部202cは、合意処理中に、クライアント装置100cの生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージをクライアント装置100cから通信部201を介して受信する機能と、生体認証交渉メッセージ内の生体認証方式情報がセキュリティポリシー保存部203内の各生体認証方式情報のいずれかに一致するか否かを判定する機能と、判定の結果が一致を示すとき、当該生体認証方式情報をクライアント装置100cに通信部201を介して通知する機能と、通知の後、タイムスタンプ提供装置300の秘密鍵によるタイムスタンプが付与され且つユーザの生体認証の結果、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストをクライアント装置100cから通信部201を介して受信する機能と、このタイムスタンプが付与された認証コンテキストのうち、タイムスタンプをタイムスタンプ検証部213に送出すると共に、認証コンテキストを認証コンテキスト検証部205cに送出する機能と、各検証部213,205cから受けた検証結果に基づいて、合意処理を継続又は中断する機能とをもっている。
【0187】
認証コンテキスト検証部205cは、制御部202cから受けた認証コンテキストを検証し、(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報が、通知した生体認証方式とは異なるとき、又は(iii)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、のいずれかの場合には合意処理を中断する旨の検証結果を制御部202cに送出する機能と、上記(i)〜(iii)以外のとき、合意処理を継続する旨の検証結果を制御部202cに送出する機能とをもっている。
【0188】
タイムスタンプ検証部213は、タイムスタンプ提供装置300のタイムスタンプ秘密鍵に対応するタイムスタンプ公開鍵を予め記憶装置(図示せず)に保持しておき、制御部202cからタイムスタンプを受けると、タイムスタンプ公開鍵に基づいて当該タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、合意処理を中断する旨の検証結果を制御部202cに送出する機能と、当該差分が予め定めた値以下のとき、合意処理を継続する旨の検証結果を制御部202cに送出する機能とをもっている。
【0189】
なお、タイムスタンプの検証方法は、タイムスタンプ提供装置300の公開鍵を取得してタイムスタンプ検証部213が検証する方式に限らず、タイムスタンプ提供装置300に検証を依頼する等というように、タイムスタンプの付与方法に対応する任意の検証方式が使用可能となっている。
【0190】
(全体のシーケンス)
次に、以上のように構成された認証システムの動作を図21のシーケンス図を用いて説明する。
【0191】
(ステップST0)
クライアント装置100cは、ユーザの生体認証を予め実行し、その生体認証の結果を含む認証コンテキストを生成し、認証コンテキストに対して既存の技術を用いてタイムスタンプを付与する。
【0192】
具体的には例えば、クライアント装置100cにおいては、制御部102cが、合意処理の前に、生体認証処理制御部105を起動する。
【0193】
制御部102cは、生体認証処理制御部105から受けた生体認証の結果を認証コンテキスト生成部109cに送出する。
【0194】
認証コンテキスト生成部109cは、制御部102cから生体認証の結果を受けると、当該生体認証の結果とセキュリティポリシー保存部103内の生体認証方式情報と鍵保存部104内のクライアント証明書とからクライアント秘密鍵に基づいて、認証子を生成する。
【0195】
しかる後、認証コンテキスト生成部109cは、生体認証の結果および生体認証処理の正当性を保証するための取得した生体情報(サンプル)や参照した生体情報(テンプレート)および参照した生体情報の証明書(テンプレート証明書)などの各種情報と生体認証方式情報とクライアント証明書と認証子とを含む認証コンテキストを生成し、この認証コンテキストを制御部102cに送出する。
【0196】
制御部102cは、この認証コンテキストをタイムスタンプ付与部115に送出する。
【0197】
タイムスタンプ付与部115は、この認証コンテキストをタイムスタンプ提供装置300に通信部101を介して送信する。
【0198】
タイムスタンプ提供装置300は、この認証コンテキストに日時情報を付加した情報に対し、当該タイムスタンプ提供装置300のタイムスタンプ秘密鍵に基づいてタイムスタンプを生成し、このタイムスタンプを認証コンテキストに付与する。
【0199】
また、タイムスタンプ提供装置300は、このタイムスタンプを付与した認証コンテキストをクライアント装置100cに送信する。
【0200】
クライアント装置100cにおいては、タイムスタンプ付与部115が、このタイムスタンプが付与された認証コンテキストを通信部101を介して受信すると、このタイムスタンプが付与された認証コンテキストを制御部102cに送出する。
【0201】
制御部102cは、このタイムスタンプが付与された認証コンテキストを記憶装置(図示せず)に保存する。
【0202】
(ステップST1)
クライアント装置100cは、ハンドシェイクの拡張処理があることを通知するため、拡張したクライアントハローメッセージMCHを制御部102cが通信部101により送信する。
【0203】
クライアントハローメッセージMBHの拡張(Extension)リストでは、タイムスタンプを付与した認証コンテキストを用いてクライアント認証を行うことを通知する。
【0204】
(ステップST2)
サーバ装置200cは、クライアントハローメッセージMCHを通信部201により制御部202cが受信する。制御部202cは、ハンドシェイクの拡張処理について了解したことを通知するため、拡張したサーバハローメッセージMSHを通信部201によりクライアント装置100cに送信する。
【0205】
(ステップST3〜ST5)
ステップST3〜ST5までは第1の実施形態と同じであるので説明を省略する。
【0206】
(ステップST−CBN)
クライアント装置100cにおいては、クライアント装置100cで予め実行した生体認証の生体認証方式をサーバに通知するため、制御部102が通信部101により、生体認証方式情報を含むクライアント生体認証交渉(ClientBiometricNegotiation)メッセージMCBNを送信する。
【0207】
クライアント生体認証交渉メッセージMCBNは、図11に示したように、生体認証方式情報をリストにした生体認証方式リスト(BiometricMethodList)を含んでいる。
【0208】
(ステップST−SBN)
サーバ装置200cにおいては、クライアント生体認証交渉メッセージを制御部202cが通信部201により受信すると、制御部202cがクライアント生体認証交渉メッセージ内の生体認証方式リストの生体認証方式情報がセキュリティポリシー保存部203内の生体認証方式情報のいずれかに一致するか否かを判定する。
【0209】
制御部202cは、判定の結果が一致を示すとき、当該生体認証方式情報を含むサーバ生体認証交渉(ServerBiometricNegotiation)メッセージMSBNを通信部201によりクライアント装置100cに送信する。ここで選択した方式は複数であっても良い。
【0210】
もし、予め実行した生体認証方式がサーバのポリシーを満たさない場合には、周知の技術であるTLSハンドシェイクにおける警告(Alert)を返すことでハンドシェイク処理を中止させる。
【0211】
(ステップST−BP)
クライアント装置100cにおいては、サーバ生体認証交渉メッセージを制御部102が通信部101により受信すると、制御部102が、サーバ生体認証交渉メッセージ内の生体認証方式情報に基づいて、該当する認証コンテキストを含む生体認証処理(BiometricProcess)メッセージMBPを通信部101によりサーバ装置200に送信する。
【0212】
生体認証処理メッセージMBPは、図13に示したように、認証結果(AuthenticationResult)を含んでいる。認証結果(AuthenticationResult)には予め作成したタイムスタンプが付与された認証コンテキストが含まれる。
【0213】
(ステップST−BV)
サーバ装置200cは、生体認証処理メッセージMBPを制御部202cが通信部201により受信すると、制御部202cが生体認証処理メッセージMBP内のタイムスタンプが付与された認証コンテキストのうち、タイムスタンプをタイムスタンプ検証部213に送出すると共に、認証コンテキストを認証コンテキスト検証部205cに送出する。
【0214】
タイムスタンプ検証部213は、タイムスタンプを検証し、検証結果を制御部202cに送出する。認証コンテキスト検証部205cは、認証コンテキストを検証し、検証結果を制御部202cに送出する。
【0215】
制御部202cは、各検証部213,205cから受けた検証結果に基づいて、合意処理を継続又は中断する。合意処理を中断する場合の検証結果としては、例えば(i)認証コンテキスト内の生体認証の結果が不正を示すとき、(ii)認証コンテキスト内の生体認証方式情報が、通知した生体認証方式とは異なるとき、(iii)クライアント証明書内の公開鍵に基づいて認証子を検証し、検証結果が不正を示すとき、又は(iv)タイムスタンプを復号して得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、などがある。なお、ここでは、合意処理を継続する旨の検証結果を得たとする。
【0216】
制御部202cは、検証した結果を通知するため、図14に示したように、タイムスタンプが付与された認証コンテキストの検証結果(AuthenticationResult)、生体認証処理の情報を格納する認証処理情報格納領域(AuthenticateInfo)及びこれら項目に対してサーバの秘密鍵で作成された署名(Signature)が含まれた生体認証検証(BiometricVerify)メッセージMBVを送信する。
【0217】
(ステップST6〜ST13)
ステップST6〜ST13は第1の実施形態と同じ動作をするので説明を省略する。
【0218】
上述したように本実施形態によれば、予め生体認証を実行して生成した認証コンテキストにタイムスタンプを付与しておく構成に変形しても、前述同様に、証明書認証を含む合意処理中に、生体認証をも実行する構成により、2回のハンドシェイクに伴う不要なパスを存在させずに、エンティティ認証及び生体認証に基づくセキュアセッションを確立することができる。また、生体認証に失敗した場合でも、従来に比べ、無駄になる処理を低減することができる。
【0219】
また、合意処理の前に、タイムスタンプを付与した認証コンテキストを生成しておき、合意処理中に、当該タイムスタンプを付与した認証コンテキストをサーバ装置200cに送信する構成により、合意処理を中断することなく予め作成した認証コンテキストに基づいてセキュアセッションを確立することができる。また、認証コンテキストに付与されたタイムスタンプにより、再送攻撃を防止することができる。
【0220】
また、予め作成した認証コンテキストに基づいてセキュアセッションを確立するためのメッセージを送る装置を構成できるとともに、及び予め作成した認証コンテキストに基づいてセキュアセッションを確立するためのメッセージの作成を実現することができる。
【0221】
さらに、クライアント装置100cとサーバ装置200cとの間で、ハンドシェイク処理を中断することなく予め作成した認証コンテキストを用いてセキュアセッションを確立することができる。
【0222】
補足すると、従来のTLSのプロトコル中において生体認証を行う場合には、再送攻撃などを防ぐ意味からプロトコル中で得たチャレンジを用いて生体認証を行う必要がある。
【0223】
従って、従来のTLSプロトコルでは処理を一旦中断し、例えば照合処理を行うためにユーザの生体情報を取得する必要がある。このため、従来のTLSプロトコルでは、生体認証に基づいてセキュアセッションを確立する場合、クライアント装置とサーバ装置とで一連の動作として処理を実行できず、ハンドシェイクが中断してしまう。
【0224】
これに対し、本実施形態では、前述した通り、ハンドシェイク処理を中断することなく予め作成した認証コンテキストを用いてセキュアセッションを確立することができる。
【0225】
また、本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST-BP,ST-BV」及び「ステップST6〜ST8」の順序を変更しても、同様に実施して同様の効果を得ることができる。但し、「ステップST-CBN,ST-SBN」は「ステップST-BP,ST-BV」よりも先に実行する必要がある。
【0226】
具体的には本実施形態は、「ステップST-CBN,ST-SBN」、「ステップST6〜ST8」及び「ステップST-BP,ST-BV」の順序で実行することもできる。また、本実施形態は「ステップST6〜ST8」、「ステップST-CBN,ST-SBN」及び「ステップST-BP,ST-BV」の順序で実行することもできる。
【0227】
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0228】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0229】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0230】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【0231】
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0232】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0233】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0234】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【0235】
【図1】本発明の第1の実施形態に係る認証システムの構成を示す模式図である。
【図2】同実施形態におけるセキュリティポリシーを説明するための模式図である。
【図3】同実施形態における認証コンテキストを説明するための模式図である。
【図4】同実施形態におけるセキュリティポリシーを説明するための模式図である。
【図5】同実施形態におけるセキュリティポリシーを説明するための模式図である。
【図6】同実施形態における動作を説明するためのシーケンス図である。
【図7】同実施形態におけるクライアントハローメッセージの構成を示す模式図である。
【図8】同実施形態におけるクライアントハローメッセージの拡張リストの一例を示す模式図である。
【図9】同実施形態におけるサーバハローメッセージの構成を示す模式図である。
【図10】同実施形態における動作の変形例を示すシーケンス図である。
【図11】同実施形態におけるクライアント生体認証交渉メッセージの構成を示す模式図である。
【図12】同実施形態におけるサーバ生体認証交渉メッセージの構成を示す模式図である。
【図13】同実施形態における生体認証処理メッセージの構成を示す模式図である。
【図14】同実施形態における生体認証検証メッセージの構成を示す模式図である。
【図15】本発明の第2の実施形態に係る認証システムの構成を示す模式図である。
【図16】同実施形態における動作を説明するためのシーケンス図である。
【図17】本発明の第3の実施形態に係る認証システムの構成を示す模式図である。
【図18】同実施形態における認証コンテキストを説明するための模式図である。
【図19】同実施形態における動作を説明するためのシーケンス図である。
【図20】本発明の第4の実施形態に係る認証システムの構成を示す模式図である。
【図21】同実施形態における動作を説明するためのシーケンス図である。
【符号の説明】
【0236】
100,100a〜100c…クライアント装置、101,201…通信部、102,102a〜102c,202,202a〜202c…制御部、103,203…セキュリティポリシー保存部、104,204…鍵保存部、105,105a…生体認証処理制御部、106,211…テンプレート保存部、107…生体情報取得部、108,212…生体認証実行部、109,109b,109c…認証コンテキスト生成部、110,206…秘匿部、111,207…暗号化部、112,208…圧縮部、113,209…検証部、114,210…鍵交換部、115…タイムスタンプ付与部、200,200a〜200c…サーバ装置、205,205b,205c…認証コンテキスト検証部、213…タイムスタンプ検証部。
【特許請求の範囲】
【請求項1】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
前記ユーザを生体認証するための生体認証手段と、
公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、
前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、
前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、
前記合意処理中に、前記サーバ装置から乱数を含むメッセージを受信する手段と、
前記メッセージの受信後、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体認証手段を起動する手段と、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、
前記生体認証手段による生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項2】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、
前記合意処理中に、乱数を含むメッセージを前記クライアント装置に送信する手段と、
前記メッセージの送信後、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、
前記通知の後、前記生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
前記認証コンテキスト内の生体認証方式情報と前記通知した生体認証方式情報とが互いに異なるとき、前記合意処理を中断する手段と、
前記認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項3】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
前記合意処理中に、前記ユーザから生体情報を取得するための生体情報取得手段と、
前記生体情報取得手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、
第1乱数を生成するための乱数生成手段と、
前記合意処理中に、前記第1乱数を含む第1メッセージを作成し、この第1メッセージを前記サーバ装置に送信する手段と、
前記第1メッセージの送信後、前記サーバ装置から第2乱数を含む第2メッセージを受信する手段と、
前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体情報取得手段を起動する手段と、
前記第1乱数及び前記第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、
前記生体情報取得手段により取得した生体情報を前記暗号化用パラメータに基づいて暗号化し、得られた暗号化生体情報を前記サーバ装置に通知することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項4】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、
前記ユーザの生体参照情報が記憶された生体参照情報記憶手段と、
前記合意処理中に、前記クライアント装置から第1乱数を含む第1メッセージを受信する手段と、
前記第1メッセージの受信後、第2乱数を含む第2メッセージを前記クライアント装置に送信する手段と、
前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、
前記通知の後、前記生体認証方式情報に従って取得された前記ユーザの生体情報が前記第1乱数及び前記第2乱数に基づいて暗号化されてなる暗号化生体情報を前記クライアント装置から受信する手段と、
前記第1メッセージ内の第1乱数及び前記第2メッセージ内の第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、
前記暗号化生体情報を前記暗号化用パラメータに基づいて復号する手段と、
前記復号により得られた生体情報を、前記生体参照情報記憶手段内の生体参照情報に基づいて生体認証する生体認証手段と、
前記生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項5】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
前記ユーザを生体認証するための生体認証手段と、
公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、
前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記サーバ装置に送信する手段と、
前記第1メッセージの送信後、前記サーバ装置から乱数を含む第2メッセージを受信する手段と、
前記第2メッセージの受信後、前記生体認証手段を起動する手段と、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、
前記生体認証手段による生体認証の結果が正当のとき、前記証明書記憶手段内のクライアント証明書を前記サーバ装置に送信する手段と、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数から前記秘密鍵に基づいて、認証子を生成する手段と、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項6】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記クライアント装置から受信する手段と、
前記第1メッセージの受信後、乱数を含む第2メッセージを前記クライアント装置に送信する手段と、
前記第2メッセージの送信後、前記クライアント装置からクライアント証明書を受信する手段と、
前記第2メッセージの送信後、前記ユーザの生体認証の結果およびその処理の正当性を保証する情報と暗号化乱数と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、
前記受信したクライアント証明書及び認証コンテキストを記憶する記憶手段と、
前記記憶手段に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
前記記憶手段に記憶された認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記第2メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、
前記記憶手段に記憶されたクライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項7】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、
前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、
前記合意処理の前に、前記ユーザを生体認証するための生体認証手段と、
前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、
前記合意処理の前に、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書と前記認証子とを含む認証コンテキストを生成する手段と、
前記合意処理の前に、前記認証コンテキストをタイムスタンプ提供装置に送信する手段と、
前記送信した認証コンテキスト及び前記タイムスタンプ提供装置における日時情報に対して、当該タイムスタンプ提供装置の秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、前記タイムスタンプが付与された認証コンテキストを前記タイムスタンプ提供装置から受信する手段と、
前記合意処理中に、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記タイムスタンプが付与された認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項8】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、
前記合意処理中に、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、
前記通知の後、タイムスタンプ提供装置の秘密鍵によるタイムスタンプが付与され且つ前記ユーザの生体認証の結果、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストを前記クライアント装置から受信する手段と、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
前記認証コンテキスト内の生体認証方式情報が前記通知した生体認証方式とは異なるとき、前記合意処理を中断する手段と、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、
前記タイムスタンプ提供装置の秘密鍵に対応する公開鍵に基づいて前記タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項9】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
前記ユーザを生体認証するための生体認証手段、
公開鍵を含むクライアント証明書を証明書記憶手段に書き込む手段、
前記公開鍵に対応する秘密鍵を秘密鍵記憶手段に書き込む手段、
前記生体認証手段の生体認証方式を示す生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記合意処理中に、前記サーバ装置から乱数を含むメッセージを受信する手段、
前記メッセージの受信後、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体認証手段を起動する手段、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段、
前記生体認証手段による生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項10】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記合意処理中に、乱数を含むメッセージを前記クライアント装置に送信する手段、
前記メッセージの送信後、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段、
前記通知の後、前記生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
前記認証コンテキスト内の生体認証方式情報と前記通知した生体認証方式情報とが互いに異なるとき、前記合意処理を中断する手段、
前記認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記メッセージ内の乱数と異なるとき、前記合意処理を中断する手段、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【請求項11】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
前記合意処理中に、前記ユーザから生体情報を取得するための生体情報取得手段、
前記生体情報取得手段の生体認証方式を示す生体認証方式情報を生体認証方式記憶手段に書き込む手段、
第1乱数を生成するための乱数生成手段、
前記合意処理中に、前記第1乱数を含む第1メッセージを作成し、この第1メッセージを前記サーバ装置に送信する手段、
前記第1メッセージの送信後、前記サーバ装置から第2乱数を含む第2メッセージを受信する手段、
前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体情報取得手段を起動する手段、
前記第1乱数及び前記第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段、
前記生体情報取得手段により取得した生体情報を前記暗号化用パラメータに基づいて暗号化し、得られた暗号化生体情報を前記サーバ装置に通知することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項12】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記ユーザの生体参照情報を生体参照情報記憶手段に書き込む手段、
前記合意処理中に、前記クライアント装置から第1乱数を含む第1メッセージを受信する手段、
前記第1メッセージの受信後、第2乱数を含む第2メッセージを前記クライアント装置に送信する手段、
前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段、
前記通知の後、前記生体認証方式情報に従って取得された前記ユーザの生体情報が前記第1乱数及び前記第2乱数に基づいて暗号化されてなる暗号化生体情報を前記クライアント装置から受信する手段、
前記第1メッセージ内の第1乱数及び前記第2メッセージ内の第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段、
前記暗号化生体情報を前記暗号化用パラメータに基づいて復号する手段、
前記復号により得られた生体情報を、前記生体参照情報記憶手段内の生体参照情報に基づいて生体認証する生体認証手段、
前記生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【請求項13】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
前記ユーザを生体認証するための生体認証手段、
公開鍵を含むクライアント証明書を証明書記憶手段に書き込む手段、
前記公開鍵に対応する秘密鍵を秘密鍵記憶手段に書き込む手段、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記サーバ装置に送信する手段、
前記第1メッセージの送信後、前記サーバ装置から乱数を含む第2メッセージを受信する手段、
前記第2メッセージの受信後、前記生体認証手段を起動する手段、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段、
前記生体認証手段による生体認証の結果が正当のとき、前記証明書記憶手段内のクライアント証明書を前記サーバ装置に送信する手段、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数から前記秘密鍵に基づいて、認証子を生成する手段、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項14】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記クライアント装置から受信する手段、
前記第1メッセージの受信後、乱数を含む第2メッセージを前記クライアント装置に送信する手段、
前記第2メッセージの送信後、前記クライアント装置からクライアント証明書を受信する手段、
前記第2メッセージの送信後、前記ユーザの生体認証の結果と暗号化乱数と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段、
前記受信したクライアント証明書及び認証コンテキストを記憶手段に書き込む手段、
前記記憶手段に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
前記記憶手段に記憶された認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記第2メッセージ内の乱数と異なるとき、前記合意処理を中断する手段、
前記記憶手段に記憶されたクライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【請求項15】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
公開鍵を含むクライアント証明書を証明書記憶手段に書き込む手段、
前記公開鍵に対応する秘密鍵を秘密鍵記憶手段に書き込む手段、
前記合意処理の前に、前記ユーザを生体認証するための生体認証手段、
前記生体認証手段の生体認証方式を示す生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段、
前記合意処理の前に、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書と前記認証子とを含む認証コンテキストを生成する手段、
前記合意処理の前に、前記認証コンテキストをタイムスタンプ提供装置に送信する手段、
前記送信した認証コンテキスト及び前記タイムスタンプ提供装置における日時情報に対して、当該タイムスタンプ提供装置の秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、前記タイムスタンプが付与された認証コンテキストを前記タイムスタンプ提供装置から受信する手段、
前記合意処理中に、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記タイムスタンプが付与された認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項16】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記合意処理中に、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段、
前記通知の後、タイムスタンプ提供装置の秘密鍵によるタイムスタンプが付与され且つ前記ユーザの生体認証の結果およびその処理の正当性を保証する情報、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストを前記クライアント装置から受信する手段、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
前記認証コンテキスト内の生体認証方式情報が前記通知した生体認証方式とは異なるとき、前記合意処理を中断する手段、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段、
前記タイムスタンプ提供装置の秘密鍵に対応する公開鍵に基づいて前記タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【請求項1】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
前記ユーザを生体認証するための生体認証手段と、
公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、
前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、
前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、
前記合意処理中に、前記サーバ装置から乱数を含むメッセージを受信する手段と、
前記メッセージの受信後、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体認証手段を起動する手段と、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、
前記生体認証手段による生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項2】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、
前記合意処理中に、乱数を含むメッセージを前記クライアント装置に送信する手段と、
前記メッセージの送信後、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、
前記通知の後、前記生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
前記認証コンテキスト内の生体認証方式情報と前記通知した生体認証方式情報とが互いに異なるとき、前記合意処理を中断する手段と、
前記認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項3】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
前記合意処理中に、前記ユーザから生体情報を取得するための生体情報取得手段と、
前記生体情報取得手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、
第1乱数を生成するための乱数生成手段と、
前記合意処理中に、前記第1乱数を含む第1メッセージを作成し、この第1メッセージを前記サーバ装置に送信する手段と、
前記第1メッセージの送信後、前記サーバ装置から第2乱数を含む第2メッセージを受信する手段と、
前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体情報取得手段を起動する手段と、
前記第1乱数及び前記第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、
前記生体情報取得手段により取得した生体情報を前記暗号化用パラメータに基づいて暗号化し、得られた暗号化生体情報を前記サーバ装置に通知することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項4】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、
前記ユーザの生体参照情報が記憶された生体参照情報記憶手段と、
前記合意処理中に、前記クライアント装置から第1乱数を含む第1メッセージを受信する手段と、
前記第1メッセージの受信後、第2乱数を含む第2メッセージを前記クライアント装置に送信する手段と、
前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、
前記通知の後、前記生体認証方式情報に従って取得された前記ユーザの生体情報が前記第1乱数及び前記第2乱数に基づいて暗号化されてなる暗号化生体情報を前記クライアント装置から受信する手段と、
前記第1メッセージ内の第1乱数及び前記第2メッセージ内の第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段と、
前記暗号化生体情報を前記暗号化用パラメータに基づいて復号する手段と、
前記復号により得られた生体情報を、前記生体参照情報記憶手段内の生体参照情報に基づいて生体認証する生体認証手段と、
前記生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項5】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
前記ユーザを生体認証するための生体認証手段と、
公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、
前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記サーバ装置に送信する手段と、
前記第1メッセージの送信後、前記サーバ装置から乱数を含む第2メッセージを受信する手段と、
前記第2メッセージの受信後、前記生体認証手段を起動する手段と、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段と、
前記生体認証手段による生体認証の結果が正当のとき、前記証明書記憶手段内のクライアント証明書を前記サーバ装置に送信する手段と、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数から前記秘密鍵に基づいて、認証子を生成する手段と、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項6】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記クライアント装置から受信する手段と、
前記第1メッセージの受信後、乱数を含む第2メッセージを前記クライアント装置に送信する手段と、
前記第2メッセージの送信後、前記クライアント装置からクライアント証明書を受信する手段と、
前記第2メッセージの送信後、前記ユーザの生体認証の結果およびその処理の正当性を保証する情報と暗号化乱数と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段と、
前記受信したクライアント証明書及び認証コンテキストを記憶する記憶手段と、
前記記憶手段に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
前記記憶手段に記憶された認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記第2メッセージ内の乱数と異なるとき、前記合意処理を中断する手段と、
前記記憶手段に記憶されたクライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項7】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置であって、
公開鍵を含むクライアント証明書が記憶された証明書記憶手段と、
前記公開鍵に対応する秘密鍵が記憶された秘密鍵記憶手段と、
前記合意処理の前に、前記ユーザを生体認証するための生体認証手段と、
前記生体認証手段の生体認証方式を示す生体認証方式情報が記憶された生体認証方式記憶手段と、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段と、
前記合意処理の前に、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書と前記認証子とを含む認証コンテキストを生成する手段と、
前記合意処理の前に、前記認証コンテキストをタイムスタンプ提供装置に送信する手段と、
前記送信した認証コンテキスト及び前記タイムスタンプ提供装置における日時情報に対して、当該タイムスタンプ提供装置の秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、前記タイムスタンプが付与された認証コンテキストを前記タイムスタンプ提供装置から受信する手段と、
前記合意処理中に、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段と、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記タイムスタンプが付与された認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段と、
を備えたことを特徴とするクライアント装置。
【請求項8】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置であって、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報が記憶された生体認証方式記憶手段と、
前記合意処理中に、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段と、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段と、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段と、
前記通知の後、タイムスタンプ提供装置の秘密鍵によるタイムスタンプが付与され且つ前記ユーザの生体認証の結果、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストを前記クライアント装置から受信する手段と、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段と、
前記認証コンテキスト内の生体認証方式情報が前記通知した生体認証方式とは異なるとき、前記合意処理を中断する手段と、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段と、
前記タイムスタンプ提供装置の秘密鍵に対応する公開鍵に基づいて前記タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、前記合意処理を中断する手段と、
を備えたことを特徴とするサーバ装置。
【請求項9】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
前記ユーザを生体認証するための生体認証手段、
公開鍵を含むクライアント証明書を証明書記憶手段に書き込む手段、
前記公開鍵に対応する秘密鍵を秘密鍵記憶手段に書き込む手段、
前記生体認証手段の生体認証方式を示す生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記合意処理中に、前記サーバ装置から乱数を含むメッセージを受信する手段、
前記メッセージの受信後、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体認証手段を起動する手段、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段、
前記生体認証手段による生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記暗号化乱数と前記クライアント証明書と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項10】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記合意処理中に、乱数を含むメッセージを前記クライアント装置に送信する手段、
前記メッセージの送信後、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段、
前記通知の後、前記生体認証方式情報に基づく生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と暗号化乱数とクライアント証明書と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
前記認証コンテキスト内の生体認証方式情報と前記通知した生体認証方式情報とが互いに異なるとき、前記合意処理を中断する手段、
前記認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記メッセージ内の乱数と異なるとき、前記合意処理を中断する手段、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【請求項11】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
前記合意処理中に、前記ユーザから生体情報を取得するための生体情報取得手段、
前記生体情報取得手段の生体認証方式を示す生体認証方式情報を生体認証方式記憶手段に書き込む手段、
第1乱数を生成するための乱数生成手段、
前記合意処理中に、前記第1乱数を含む第1メッセージを作成し、この第1メッセージを前記サーバ装置に送信する手段、
前記第1メッセージの送信後、前記サーバ装置から第2乱数を含む第2メッセージを受信する手段、
前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記生体情報取得手段を起動する手段、
前記第1乱数及び前記第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段、
前記生体情報取得手段により取得した生体情報を前記暗号化用パラメータに基づいて暗号化し、得られた暗号化生体情報を前記サーバ装置に通知することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項12】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記ユーザの生体参照情報を生体参照情報記憶手段に書き込む手段、
前記合意処理中に、前記クライアント装置から第1乱数を含む第1メッセージを受信する手段、
前記第1メッセージの受信後、第2乱数を含む第2メッセージを前記クライアント装置に送信する手段、
前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段、
前記通知の後、前記生体認証方式情報に従って取得された前記ユーザの生体情報が前記第1乱数及び前記第2乱数に基づいて暗号化されてなる暗号化生体情報を前記クライアント装置から受信する手段、
前記第1メッセージ内の第1乱数及び前記第2メッセージ内の第2乱数に基づいて、ハッシュアルゴリズムにより暗号化用パラメータを生成する手段、
前記暗号化生体情報を前記暗号化用パラメータに基づいて復号する手段、
前記復号により得られた生体情報を、前記生体参照情報記憶手段内の生体参照情報に基づいて生体認証する生体認証手段、
前記生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【請求項13】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
前記ユーザを生体認証するための生体認証手段、
公開鍵を含むクライアント証明書を証明書記憶手段に書き込む手段、
前記公開鍵に対応する秘密鍵を秘密鍵記憶手段に書き込む手段、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記サーバ装置に送信する手段、
前記第1メッセージの送信後、前記サーバ装置から乱数を含む第2メッセージを受信する手段、
前記第2メッセージの受信後、前記生体認証手段を起動する手段、
前記乱数を前記秘密鍵に基づいて暗号化し、暗号化乱数を生成する手段、
前記生体認証手段による生体認証の結果が正当のとき、前記証明書記憶手段内のクライアント証明書を前記サーバ装置に送信する手段、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数から前記秘密鍵に基づいて、認証子を生成する手段、
前記生体認証の結果およびその処理の正当性を保証する情報及び前記暗号化乱数と前記認証子とを含む認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項14】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
前記合意処理中に、前記ユーザの生体認証の結果に基づいてクライアント証明書を取得する旨を含む第1メッセージを前記クライアント装置から受信する手段、
前記第1メッセージの受信後、乱数を含む第2メッセージを前記クライアント装置に送信する手段、
前記第2メッセージの送信後、前記クライアント装置からクライアント証明書を受信する手段、
前記第2メッセージの送信後、前記ユーザの生体認証の結果と暗号化乱数と認証子とを含む認証コンテキストを前記クライアント装置から受信する手段、
前記受信したクライアント証明書及び認証コンテキストを記憶手段に書き込む手段、
前記記憶手段に記憶された認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
前記記憶手段に記憶された認証コンテキスト内の暗号化乱数を前記クライアント証明書内の公開鍵に基づいて復号し、得られた乱数が前記第2メッセージ内の乱数と異なるとき、前記合意処理を中断する手段、
前記記憶手段に記憶されたクライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【請求項15】
ユーザの操作によってサーバ装置との間でネットワークを介して秘匿通信をする前に、前記サーバ装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なクライアント装置のプログラムであって、
前記クライアント装置のコンピュータを、
公開鍵を含むクライアント証明書を証明書記憶手段に書き込む手段、
前記公開鍵に対応する秘密鍵を秘密鍵記憶手段に書き込む手段、
前記合意処理の前に、前記ユーザを生体認証するための生体認証手段、
前記生体認証手段の生体認証方式を示す生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書とから前記秘密鍵に基づいて、認証子を生成する手段、
前記合意処理の前に、前記生体認証の結果およびその処理の正当性を保証する情報と前記生体認証方式情報と前記クライアント証明書と前記認証子とを含む認証コンテキストを生成する手段、
前記合意処理の前に、前記認証コンテキストをタイムスタンプ提供装置に送信する手段、
前記送信した認証コンテキスト及び前記タイムスタンプ提供装置における日時情報に対して、当該タイムスタンプ提供装置の秘密鍵に基づいて生成されたタイムスタンプが付与されることにより、前記タイムスタンプが付与された認証コンテキストを前記タイムスタンプ提供装置から受信する手段、
前記合意処理中に、前記生体認証方式情報を含む生体認証交渉メッセージを作成し、この生体認証交渉メッセージを前記サーバ装置に送信する手段、
前記生体認証交渉メッセージの送信後、前記サーバ装置から通知された生体認証方式情報に基づいて、前記タイムスタンプが付与された認証コンテキストを前記サーバ装置に送信することにより、前記合意処理を継続する手段、
として機能させるためのプログラム。
【請求項16】
ユーザに操作されるクライアント装置との間でネットワークを介して秘匿通信をする前に、前記クライアント装置との間で互いの証明書認証を含む合意処理を実行し、前記証明書認証の結果が正当のとき、前記秘匿通信をするためのセッションを確立可能なサーバ装置のプログラムであって、
前記サーバ装置のコンピュータを、
受け入れ可能な前記ユーザの生体認証方式を示す複数の生体認証方式情報を生体認証方式記憶手段に書き込む手段、
前記合意処理中に、前記クライアント装置の生体認証方式を示す生体認証方式情報を含む生体認証交渉メッセージを前記クライアント装置から受信する手段、
前記生体認証交渉メッセージ内の生体認証方式情報が前記生体認証方式記憶手段内の各生体認証方式情報のいずれかに一致するか否かを判定する手段、
前記判定の結果が一致を示すとき、当該生体認証方式情報を前記クライアント装置に通知する手段、
前記通知の後、タイムスタンプ提供装置の秘密鍵によるタイムスタンプが付与され且つ前記ユーザの生体認証の結果およびその処理の正当性を保証する情報、生体認証方式情報、クライアント証明書及び認証子を含む認証コンテキストを前記クライアント装置から受信する手段、
前記認証コンテキスト内の生体認証の結果が不正を示すとき、前記合意処理を中断する手段、
前記認証コンテキスト内の生体認証方式情報が前記通知した生体認証方式とは異なるとき、前記合意処理を中断する手段、
前記クライアント証明書内の公開鍵に基づいて前記認証子を検証し、検証結果が不正を示すとき、前記合意処理を中断する手段、
前記タイムスタンプ提供装置の秘密鍵に対応する公開鍵に基づいて前記タイムスタンプを復号し、得られた日時情報と現在の日時情報との差分が予め定めた値よりも大きいとき、前記合意処理を中断する手段、
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2009−49464(P2009−49464A)
【公開日】平成21年3月5日(2009.3.5)
【国際特許分類】
【出願番号】特願2007−210904(P2007−210904)
【出願日】平成19年8月13日(2007.8.13)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成21年3月5日(2009.3.5)
【国際特許分類】
【出願日】平成19年8月13日(2007.8.13)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]