(57)【特許請求の範囲】
【請求項１】
クライアント端末とサーバ装置とがネットワークを介して接続された端末認証システムであって、
前記クライアント端末は、記憶部と、第１の通信部と、第１のデータ暗号化部と、第１のデータ復号部と、を備え、
前記サーバ装置は、乱数生成部と、第２の通信部と、第２のデータ暗号化部と、第２のデータ復号部と、一方向性関数処理部と、認証処理部と、を備え、
前記記憶部は、クライアント端末毎に異なる秘密情報と、前記秘密情報から導出された前記秘密情報のハッシュ値及び前記クライアント端末の公開鍵を含むクライアント証明書と、前記クライアント端末の公開鍵とペアである前記クライアント端末の秘密鍵と、を保持し、
前記第１の通信部は、前記クライアント証明書を前記サーバ装置へ送信し、
前記第２の通信部は、前記クライアント証明書を前記クライアント端末から受信し、
前記乱数生成部は、第１の乱数列を生成し、
前記第２のデータ暗号化部は、前記クライアント証明書に含まれる前記クライアント端末の公開鍵を用いて、前記第１の乱数列を含む第１の乱数を暗号化し、
前記第２の通信部は、前記暗号化された第１の乱数を前記クライアント端末に送信し、
前記第１の通信部は、前記サーバ装置から前記暗号化された第１の乱数を受信し、
前記第１のデータ復号部は、前記クライアント端末の秘密鍵を用いて、前記暗号化された第１の乱数を復号し、前記第１の乱数を取得し、
前記第１のデータ暗号化部は、前記第１の乱数より作成した共通鍵を用いて、前記秘密情報を暗号化し、
前記第１の通信部は、前記暗号化された秘密情報を前記サーバ装置へ送信し、
前記第２の通信部は、前記暗号化された秘密情報を前記クライアント端末から受信し、
前記第２のデータ復号部は、前記第１の乱数より作成した共通鍵を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得し、
前記一方向性関数処理部は、一方向性関数を用いて、前記秘密情報からハッシュ値を導出し、
前記認証処理部は、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証する、
端末認証システム。
【請求項２】
請求項１に記載の端末認証システムであって、
少なくとも前記秘密情報は、耐タンパ性を有する記憶部に記憶される、端末認証システム。
【請求項３】
請求項１または請求項２に記載の端末認証システムであって、
前記第１の乱数は、前記クライアント端末の認証シーケンスが実行される度に毎回変更される、端末認証システム。
【請求項４】
請求項１ないし３のいずれか１項に記載の端末認証システムであって、
前記秘密情報は、第２の乱数列を含む、端末認証システム。
【請求項５】
請求項１ないし４のいずれか１項に記載の端末認証システムであって、
前記第１の通信部及び前記第２の通信部は、セキュアな通信路を介して通信する、端末認証システム。
【請求項６】
請求項１ないし５のいずれか１項に記載の端末認証システムであって、
前記クライアント証明書は、前記クライアント端末の識別情報、及び権限情報の少なくとも一方を含む、端末認証システム。
【請求項７】
ネットワークを介してクライアント端末に接続されたサーバ装置であって、
乱数生成部と、通信部と、データ暗号化部と、データ復号部と、一方向性関数処理部と、認証処理部と、を備え、
前記通信部は、前記クライアント端末から、クライアント端末毎に異なる秘密情報から導出された前記秘密情報のハッシュ値及び前記クライアント端末の公開鍵を含むクライアント証明書を受信し、
前記乱数生成部は、第１の乱数列を生成し、
前記データ暗号化部は、前記クライアント証明書に含まれる前記クライアント端末の公開鍵を用いて、前記第１の乱数列を含む第１の乱数を暗号化し、
前記通信部は、前記暗号化された第１の乱数を前記クライアント端末に送信し、
前記通信部は、前記クライアント端末の公開鍵とペアである前記クライアント端末の秘密鍵を用いて前記暗号化された第１の乱数が復号されて取得された第１の乱数より作成した共通鍵を用いて暗号化された秘密情報を、前記クライアント端末から受信し、
前記データ復号部は、前記第１の乱数より作成した共通鍵を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得し、
前記一方向性関数処理部は、一方向性関数を用いて、前記秘密情報からハッシュ値を導出し、
前記認証処理部は、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証する、
サーバ装置。
【請求項８】
ネットワークを介してクライアント端末に接続されたサーバ装置における端末認証方法であって、
前記クライアント端末から、クライアント端末毎に異なる秘密情報から導出された前記秘密情報のハッシュ値及び前記クライアント端末の公開鍵を含むクライアント証明書を受信するステップと、
第１の乱数列を生成するステップと、
前記クライアント証明書に含まれる前記クライアント端末の公開鍵を用いて、前記第１の乱数列を含む第１の乱数を暗号化するステップと、
前記暗号化された第１の乱数を前記クライアント端末に送信するステップと、
前記クライアント端末の公開鍵とペアである前記クライアント端末の秘密鍵を用いて前記暗号化された第１の乱数が復号されて取得された第１の乱数より作成した共通鍵を用いて暗号化された秘密情報を、前記クライアント端末から受信するステップと、
前記第１の乱数より作成した共通鍵を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得するステップと、
一方向性関数を用いて、前記秘密情報からハッシュ値を導出するステップと、
前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証するステップと、
を備える端末認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末認証システム、サーバ装置、及び端末認証方法に関する。
【背景技術】
【０００２】
従来、ネットワーク通信における安全性を高めるために、デジタル証明書を用いた認証処理が行われている。デジタル証明書は、例えば、認証局（ＣＡ：Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ）によって発行される。デジタル証明書を用いた認証処理では、認証局による署名の検証により、デジタル証明書の正当性を確認できる。
【０００３】
デジタル証明書は、例えば、クライアント端末の正当性を確認するためのクライアント証明書と、サーバ装置の正当性を確認するためのサーバ証明書と、を含む。
【０００４】
クライアント証明書の被発行者としてのクライアント端末を認証する方法として、以下のデバイス認証方法が知られている（例えば、特許文献１参照）。このデバイス認証方法では、記憶デバイスを有する情報処理デバイスが、デバイス固有情報又はデバイス固有情報に基づく情報を暗号鍵として、サーバでのデバイス認証に必要な対象情報を暗号化し、暗号化された対象情報を記憶する。情報処理デバイスは、記憶されている暗号化された対象情報の生成に使用された暗号鍵に対応する復号鍵を用いて、暗号化された対象情報を復号し、復号された対象情報を、サーバに送信する。サーバは、情報処理デバイスから対象情報を受信し、受信した対象情報が正しいか否かを判断する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５３８０５８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のデバイス認証方法では、クライアント証明書の被発行者であるクライアント端末を特定することが困難であった。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度を向上できる端末認証システム、サーバ装置、及び端末認証方法を提供する。
【課題を解決するための手段】
【０００８】
本発明の端末認証システムは、クライアント端末とサーバ装置とがネットワークを介して接続された端末認証システムであって、前記クライアント端末は、記憶部と、第１の通信部と、第１のデータ暗号化部と、第１のデータ復号部と、を備え、前記サーバ装置は、乱数生成部と、第２の通信部と、第２のデータ暗号化部と、第２のデータ復号部と、一方向性関数処理部と、認証処理部と、を備え、前記記憶部は、クライアント端末毎に異なる秘密情報と、前記秘密情報から導出された前記秘密情報のハッシュ値及び前記クライアント端末の公開鍵を含むクライアント証明書と、前記クライアント端末の秘密鍵と、を保持し、前記第１の通信部は、前記クライアント証明書を前記サーバ装置へ送信し、前記第２の通信部は、前記クライアント証明書を前記クライアント端末から受信し、前記乱数生成部は、第１の乱数列を生成し、前記第２のデータ暗号化部は、前記クライアント証明書に含まれる前記クライアント端末の公開鍵を用いて、前記第１の乱数列を含む第１の乱数を暗号化し、前記第２の通信部は、前記暗号化された第１の乱数を前記クライアント端末に送信し、前記第１の通信部は、前記サーバ装置から前記暗号化された第１の乱数を受信し、前記第１のデータ復号部は、前記クライアント端末の秘密鍵を用いて、前記暗号化された第１の乱数を復号し、前記第１の乱数を取得し、前記第１のデータ暗号化部は、前記第１の乱数より作成した共通鍵を用いて、前記秘密情報を暗号化し、前記第１の通信部は、前記暗号化された秘密情報を前記サーバ装置へ送信し、前記第２の通信部は、前記暗号化された秘密情報を前記クライアント端末から受信し、前記第２のデータ復号部は、前記第１の乱数より作成した共通鍵を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得し、前記一方向性関数処理部は、一方向性関数を用いて、前記秘密情報からハッシュ値を導出し、前記認証処理部は、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証する。
【０００９】
本発明のサーバ装置は、ネットワークを介してクライアント端末に接続されたサーバ装置であって、乱数生成部と、通信部と、データ暗号化部と、データ復号部と、一方向性関数処理部と、認証処理部と、を備え、前記通信部は、前記クライアント端末から、クライアント端末毎に異なる秘密情報から導出された前記秘密情報のハッシュ値及び前記クライアント端末の公開鍵を含むクライアント証明書を受信し、前記乱数生成部は、第１の乱数列を生成し、前記データ暗号化部は、前記クライアント証明書に含まれる前記クライアント端末の公開鍵を用いて、前記第１の乱数列を含む第１の乱数を暗号化し、前記通信部は、前記暗号化された第１の乱数を前記クライアント端末に送信し、前記通信部は、前記サーバ装置の公開鍵と、前記クライアント端末の秘密鍵を用いて前記暗号化された第１の乱数が復号されて取得された第１の乱数と、を用いて暗号化された秘密情報を、前記クライアント端末から受信し、前記データ復号部は、前記第１の乱数より作成した共通鍵を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得し、前記一方向性関数処理部は、一方向性関数を用いて、前記秘密情報からハッシュ値を導出し、前記認証処理部は、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証する。
【００１０】
本発明の端末認証方法は、ネットワークを介してクライアント端末に接続されたサーバ装置における端末認証方法であって、前記クライアント端末から、クライアント端末毎に異なる秘密情報から導出された前記秘密情報のハッシュ値及び前記クライアント端末の公開鍵を含むクライアント証明書を受信するステップと、第１の乱数列を生成するステップと、前記クライアント証明書に含まれる前記クライアント端末の公開鍵を用いて、前記第１の乱数列を含む第１の乱数を暗号化するステップと、前記暗号化された第１の乱数を前記クライアント端末に送信するステップと、前記サーバ装置の公開鍵と、前記クライアント端末の秘密鍵を用いて前記暗号化された第１の乱数が復号されて取得された第１の乱数と、を用いて暗号化された秘密情報を、前記クライアント端末から受信するステップと、前記第１の乱数より作成した共通鍵を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得するステップと、一方向性関数を用いて、前記秘密情報からハッシュ値を導出するステップと、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証するステップと、を備える。
【発明の効果】
【００１１】
本発明によれば、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度を向上できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態における端末認証システムの構成例を示すブロック図
【図２】第１の実施形態における乱数の構成例を示す模式図
【図３】第１の実施形態における端末認証シーケンスの一例を示す模式図
【図４】第２の実施形態における端末認証シーケンスの一例を示す模式図
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、図面を用いて説明する。
【００１４】
（本発明の一形態を得るに至った経緯）
近年、インターネットの進展に伴って、例えば、複合機、カメラ、スマート家電（ネットワークに接続される家電）が、ネットワークに接続されることで、付加価値を提供する商品やシステムが増えている。ネットワークに接続される端末を、ネットワーク端末とも呼ぶ。
【００１５】
ネットワーク端末がインターネットを利用してサービスを提供する場合、第三者によるサービスの不正利用や攻撃を防御するために、ネットワーク端末の通信を暗号化し、厳密に認証することが好ましい。
【００１６】
一般的に、盗聴、改ざん、又はなりすましを防御する技術として、暗号通信プロトコルが広く利用されている。暗号通信プロトコルは、例えば、公開鍵暗号基盤（ＰＫＩ：Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）を使ったＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）／ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）である。ＰＫＩでは、ネットワークに接続された相互の装置が、認証局（ＣＡ：Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ）によって発行されるデジタル証明書を使って、認証を行う。
【００１７】
ネットワーク端末は、接続されている通信相手とサーバ証明書の発行者とが同一であるか否かを確認する場合、サーバ証明書のサブジェクト名に記述されているＦＱＤＮ(Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ)またはグローバルＩＰ(Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ)アドレスを確認する。これにより、ネットワーク端末は、正しい通信相手か否かを確認できる。サーバ証明書のサブジェクト名には、ＦＱＤＮまたはグローバルＩＰアドレスが記述され、ＦＱＤＮまたはグローバルＩＰアドレスを含めて署名され、別のＦＱＤＮまたはグローバルＩＰアドレスを持つ別のサーバ装置は、サーバ証明書が異なるためである。
【００１８】
一方、サーバ装置は、接続されている通信相手とクライアント証明書の被発行者とが同一であるか否かを確認する場合、正しい通信相手か否かを確認することが困難である。
【００１９】
例えば、サーバ装置が、クライアント証明書のサブジェクト名に記述された識別情報（ユーザ名、端末名、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス）により、クライアント証明書の被発行者を確認することを想定する。
【００２０】
この場合、クライアント証明書のサブジェクト名に記述された識別情報は、クライアント端末から自己申告で送信されるので、容易に偽装される可能性がある。また、識別情報としてＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスが用いられた場合、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サーバにより動的に変更されることがある。よって、識別情報が偽装又は変更された場合、クライアント証明書の被発行者は、１つのクライアント証明書を複数の端末で用いることが可能となる。例えば、サーバ装置によるライセンス管理において、不正なライセンスを複数のクライアント端末が流用可能となる。
【００２１】
特許文献１のデバイス認証方法では、対象情報に含まれる証明書を暗号鍵で暗号化して保存する場合でも、クライアント端末に暗号鍵及び証明書を登録する際に、暗号鍵または証明書が漏洩し、証明書が偽装される虞があった。この場合、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度が低下し、クライアント端末を特定することが困難となる。
【００２２】
以下、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度を向上できる端末認証システム、サーバ装置、及び端末認証方法について説明する。
【００２３】
以下の実施形態の端末認証システムは、例えば、サーバ装置がクライアント端末の認証を行うシステムに適用される。
【００２４】
（第１の実施形態）
図１は、第１の実施形態における端末認証システム１０の構成例を示すブロック図である。端末認証システム１０は、ネットワーク端末２０及びサーバ装置５０を備える。ネットワーク端末２０及びサーバ装置５０は、インターネット４０を介して接続される。ネットワーク端末２０は、クライアント端末の一例である。インターネット４０は、ネットワークの一例である。
【００２５】
ネットワーク端末２０は、例えば、ネットワークに接続されるカメラ、複合機、テレビ、スマートフォン、タブレット端末である。ネットワーク端末２０は、記憶部２１、共通鍵暗号化部２５、秘密鍵復号部２６、通信部２８、及び公開鍵暗号化部２９を有する。
【００２６】
記憶部２１は、各種情報を保持する。記憶部２１は、例えば、所定の乱数（例えば後述する乱数ｒ１）、ネットワーク端末２０の公開鍵ペアのうちの秘密鍵、及びクライアント証明書を記憶（保持）する。クライアント証明書は、例えば、所定の乱数のハッシュ値を含む。ネットワーク端末２０の公開鍵ペアは、公開鍵暗号方式による暗号化又は復号に用いられ、秘密鍵及び公開鍵を含む。所定の乱数は、秘密情報として管理される。記憶部２１は、ネットワーク端末２０の公開鍵ペアのうちの公開鍵を記憶してもよい。
【００２７】
クライアント証明書は、例えば、ネットワーク端末２０の公開鍵、所定の乱数、ネットワーク端末２０の識別情報（ＩＤ）、権限情報、を含む。ネットワーク端末２０の識別情報は、例えば、シリアル番号、ＭＡＣアドレスを含む。権限情報は、例えば、ネットワーク端末２０によるサーバ装置５０が保持するデータに対するアクセス権を含む。
【００２８】
共通鍵暗号化部２５は、サーバ装置５０と共有する共通鍵を用いてデータを暗号化する。共通鍵暗号化部２５は、所定の共通鍵暗号アルゴリズム（例えばＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ））を用いて、データを暗号化する。共通鍵暗号化部２５は、第１のデータ暗号化部の一例である。
【００２９】
秘密鍵復号部２６は、ネットワーク端末２０の公開鍵により暗号化された暗号データを、ネットワーク端末２０の秘密鍵により復号する。第１のデータ復号部の一例である。
【００３０】
通信部２８は、インターネット４０を介してサーバ装置５０と通信するためのインタフェースを含む。インタフェースは、例えば、有線インタフェース又は無線インタフェースを含む。有線インタフェースは、例えば、有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インタフェースを含む。無線インタフェースは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、無線ＬＡＮインタフェース（例えばＷｉｆｉ（登録商標）を含む。
【００３１】
公開鍵暗号化部２９は、サーバ装置５０の公開鍵により、データを暗号化する。公開鍵暗号化部２９は、例えば、サーバ装置５０の公開鍵により、共通鍵暗号化部２５によって暗号化された暗号データを２重に暗号化する。公開鍵暗号化部２９は、第１のデータ暗号化部の一例である。公開鍵暗号化部２９は、省略されてもよい。
【００３２】
ネットワーク端末２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を備える。例えば、ＣＰＵが、ＲＯＭに記憶されたプログラムを実行することで、ネットワーク端末２０内の各部における各種機能を実現する。
【００３３】
図１では不図示であるが、ネットワーク端末２０は、所定の乱数を生成する乱数生成部を備えてもよい。乱数生成部は、任意のタイミングにおいて、乱数を生成する。生成された乱数は、記憶部２１に秘密情報として記憶される。
【００３４】
サーバ装置５０は、一方向性関数処理部５１、共通鍵復号部５２、公開鍵暗号化部５３、乱数生成部５４、認証処理部５５、秘密鍵復号部５６、通信部５７、及び記憶部５８を有する。
【００３５】
サーバ装置５０は、サーバ装置５０の公開鍵ペアのうちの秘密鍵とサーバ証明書とを保持し、クライアント端末の認証を行う。サーバ装置５０の公開鍵ペアは、公開鍵暗号方式による暗号化又は復号に用いられ、秘密鍵及び公開鍵を含む。サーバ証明書は、例えば、サーバ装置５０の公開鍵ペアのうちの公開鍵を含む。
【００３６】
一方向性関数処理部５１は、例えば、一方向性関数を用いて、各種データ（例えば乱数列を含む乱数）からハッシュ値を導出（例えば計算）する。
【００３７】
共通鍵復号部５２は、例えば、ネットワーク端末２０と共有する共通鍵を用いて、ネットワーク端末２０から送信される暗号データを復号する。共通鍵復号部５２は、第２のデータ復号部の一例である。
【００３８】
公開鍵暗号化部５３は、ネットワーク端末２０の公開鍵によりデータを暗号化する。公開鍵暗号化部５３は、第２のデータ暗号化部の一例である。
【００３９】
乱数生成部５４は、乱数列を生成する。乱数生成部５４は、例えば、一般的な擬似乱数生成アルゴリズムを用いて疑似乱数を生成してもよいし、乱数生成ハードウェアを用いて真性乱数を生成してもよい。
【００４０】
認証処理部５５は、ネットワーク端末２０の認証を行う。この認証を、クライアント認証又は端末認証ともいう。認証処理部５５は、例えば、ネットワーク端末２０から送信される乱数を基に、一方向性関数処理部５１によって計算されたハッシュ値と、クライアント証明書に含まれる乱数のハッシュ値と、を比較する。認証処理部５５は、比較される２つのハッシュ値が一致する場合、ネットワーク端末２０が正規の端末であり、つまりクライアント証明書の被発行者であると判定する。これにより、ネットワーク端末２０は端末認証される。
【００４１】
秘密鍵復号部５６は、例えば、ネットワーク端末２０によってサーバ装置５０の公開鍵により暗号化された暗号データを、サーバ装置５０の秘密鍵により復号する。秘密鍵復号部５６は、第２のデータ復号部の一例である。秘密鍵復号部５６は、省略されてもよい。
【００４２】
通信部５７は、インターネット４０を介してネットワーク端末２０と通信するためのインタフェースを含む。インタフェースは、例えば、有線インタフェース又は無線インタフェースを含む。有線インタフェースは、例えば、有線ＬＡＮインタフェースを含む。無線インタフェースは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、無線ＬＡＮインタフェース（例えばＷｉｆｉ（登録商標）を含む。
【００４３】
記憶部５８は、各種情報を記憶する。記憶部５８は、例えば、サーバ装置５０の秘密鍵及びサーバ証明書を保持する。
【００４４】
サーバ装置５０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭを備える。例えば、ＣＰＵが、ＲＯＭに記憶されたプログラムを実行することで、サーバ装置５０内の各部における各種機能を実現する。
【００４５】
次に、乱数の詳細について説明する。
【００４６】
図２は、乱数ｒの構成例を示す模式図である。乱数ｒは、例えば、装置（ネットワーク端末２０又はサーバ装置５０）の乱数生成部により生成される乱数列と、乱数列を生成した装置の識別情報と、を組み合わせた値でよい。この場合、装置に割り当てられる識別情報（例えばシリアル番号、ＭＡＣアドレス）を乱数列と組み合わせることで、乱数ｒがユニークな値（一意な値）に設定され、複数の装置間で同じ乱数が生成されることを抑制できる。
【００４７】
乱数ｒのサイズは、例えば、ハッシュ値の計算において使用される一方向性関数の出力値以上であることが望ましい。例えば、一方向性関数としてＳＨＡ２５６が使用される場合、乱数ｒのサイズは、３２バイト以上であることが望ましい。
【００４８】
なお、乱数ｒは、装置の識別情報を含まず、乱数生成部により生成された乱数列により構成されてもよい。
【００４９】
次に、端末認証システム１０の動作例について説明する。
【００５０】
図３は、端末認証システム１０の動作例を示すシーケンス図である。
まず、図３において用いられる記号の定義について説明する。
【００５１】
記号ｒ１，ｒ２は、乱数を表す。乱数に含まれる乱数列は、例えば、疑似乱数、真正乱数を含む。乱数列の生成には、例えば、一般的な擬似乱数生成アルゴリズム又は乱数生成ハードウェアが用いられてもよい。乱数列の生成には、ＦＩＰＳ（Ｆｅｄｅｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ）  １８６−２、ＮＩＳＴ（Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ）  ＳＰ（Ｓｐｅｃｉａｌ  Ｐｕｂｌｉｃａｔｉｏｎ）  ８００−９０が用いられてもよい。乱数列の生成には、ＡＮＳＩ（Ａｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ）  Ｘ９．３１−１９９８  Ａｐｐｅｎｄｉｘ  Ｃが用いられてもよい。
【００５２】
記号Ｋ１，Ｋ２は、共通鍵を表す。例えば、乱数から共通鍵が生成される場合、一方向性関数及び擬似乱数器を用いて鍵長を合わせて、共通鍵が作成されてもよい。例えば、乱数の半分がパスワード、乱数の残り半分がソルトとして、ＰＢＫＤＦ２に入力されることに応じて、共通鍵が生成されてもよい。ＰＢＫＤＦ２は、Ｐａｓｓｗｏｒｄ−Ｂａｓｅｄ
Ｋｅｙ  Ｄｅｒｉｖａｔｉｏｎ  Ｆｕｎｃｔｉｏｎ  ２（ＲＦＣ（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ）２８９８  ＰＫＣＳ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｓｔａｎｄａｒｄｓ）＃５  ｖ２）を指す。
【００５３】
記号Ｋ＿Ａは、装置Ａの公開鍵ペアを表す。装置Ａは、ネットワーク端末２０又はサーバ装置５０の１つである。記号Ｋ＿Ａ［Ｐ］は、装置Ａの公開鍵ペアＫ_Ａのうち、公開鍵を表す。記号Ｋ＿Ａ［Ｓ］は、装置Ａの公開鍵ペアＫ_Ａのうち、秘密鍵を表す。
【００５４】
記号ＥＫ１（Ｍ）は、平文Ｍに対して共通鍵Ｋ１を用いて暗号化した結果を表す。この暗号化には、例えば、ＰＢＥＳ（Ｐａｓｓｗｏｒｄ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ
Ｓｃｈｅｍｅ）１、ＰＢＥＳ２が用いられる。
【００５５】
記号ＰＫ＿Ａ（Ｍ）は、平文Ｍに対して公開鍵ペアＫ＿Ａの公開鍵を用いて暗号化した結果を表す。この暗号化には、例えば、ＲＳＡ（Ｒｉｖｅｒｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）暗号、ＤＨ（Ｄｉｆｆｌｅ−Ｈｅｌｌｍａｎ）鍵交換、Ｅｌｇａｍａｌ暗号、楕円曲線暗号が用いられる。
【００５６】
記号ＳＫ＿Ａ（Ｍ）は、平文Ｍに対して公開鍵ペアＫ＿Ａの秘密鍵を用いて暗号化した結果を表す。
【００５７】
記号Ｈ（Ｍ）は、平文Ｍに対して一方向性関数で計算した結果であるハッシュ値を表す。一方向性関数には、例えば、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）１、ＳＨＡ２５６、ＳＨＡ５１２、が用いられてもよい。
【００５８】
記号Ｃ＿Ａは、装置Ａの証明書を表す。装置Ａがネットワーク端末２０である場合、証明書Ｃ＿Ａは、クライアント証明書である。装置Ａがサーバ装置５０である場合、証明書Ｃ＿Ａは、サーバ証明書である。
【００５９】
上記では、主に装置Ａに対して用いる記号を例示したが、装置Ｂに対して同様に記号を用いる場合、上記の記号の「Ａ」の部分が、適宜「Ｂ」に置換される。
【００６０】
次に、図３の端末認証シーケンスの実行する前提について説明する。
図３では、装置Ａがネットワーク端末２０であり、装置Ｂがサーバ装置５０であることを想定する。
【００６１】
端末認証シーケンスの実行前に、乱数ｒ１は、何人にも公開されないように、ネットワーク端末２０の記憶部２１に記憶されている。何人にも公開されないように記憶とは、例えば、記憶部２１が耐タンパ性を有することが考えられる。乱数ｒ１は、ネットワーク端末２０の図示しない乱数生成部により、ネットワーク端末２０の製造時に生成されてもよいし、動的に生成されてもよい。乱数ｒ１は、第２の乱数の一例である。
【００６２】
ネットワーク端末２０の秘密鍵Ｋ＿Ａ［Ｓ］及びクライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））は、ネットワーク端末２０に保持されている。クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））の例えばサブジェクト欄には、乱数ｒ１のハッシュ値Ｈ（ｒ１）が埋め込まれている。
【００６３】
ネットワーク端末２０では、サーバ装置５０の認証（サーバ認証）が既に成功済である。サーバ認証は、公知のサーバ認証方法が用いられる。サーバ認証では、ネットワーク端末２０は、サーバ証明書を取得してもよいし、サーバ証明書を取得しなくてもよい。公知のサーバ認証方法は、例えば、サーバ証明書を用いた認証、ＵＲＬを用いた認証を含む。
【００６４】
ネットワーク端末２０とサーバ装置５０の通信路は、セキュアな通信路でもよいし、セキュアでない通信路でもよい。セキュアな通信路は、例えば、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）／ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）により暗号化された通信路を含む。
【００６５】
ネットワーク端末２０とサーバ装置５０との間の通信は、中継装置（例えば、プロキシサーバ又はＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）ルータ）を経由して行われてもよい。
【００６６】
まず、ネットワーク端末２０では、通信部２８は、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））をサーバ装置５０に送信する（Ｓ１）。
【００６７】
サーバ装置５０では、通信部５７は、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））を受信する。乱数生成部５４は、乱数列（第１の乱数列の一例）を生成する（Ｓ２）。公開鍵暗号化部５３は、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））に付与されている、ネットワーク端末２０の公開鍵Ｋ＿Ａ［Ｐ］により、生成された乱数列を含む乱数ｒ２を暗号化して、暗号化乱数ＰＫ＿Ａ（ｒ２）を作成する（Ｓ３）。乱数ｒ２は、第１の乱数の一例である。通信部５７は、暗号化乱数ＰＫ＿Ａ（ｒ２）をネットワーク端末２０に送信する（Ｓ４）。
【００６８】
ネットワーク端末２０では、通信部２８は、暗号化乱数ＰＫ＿Ａ（ｒ２）を受信する。秘密鍵復号部２６は、ネットワーク端末２０の秘密鍵Ｋ＿Ａ［Ｓ］により暗号化乱数ＰＫ＿Ａ（ｒ２）を復号し、乱数ｒ２を取得する（Ｓ５）。共通鍵暗号化部２５は、乱数ｒ２より共通鍵Ｋ２を作成し、共通鍵Ｋ２により乱数ｒ１を暗号化して暗号化乱数ＥＫ２（ｒ１）を作成する（Ｓ６）。通信部２８は、暗号化乱数ＥＫ２（ｒ１）をサーバ装置５０に送信する（Ｓ７）。暗号化乱数ＥＫ２（ｒ１）は、秘密情報に基づく第１の情報の一例である。
【００６９】
なお、Ｓ６において、共通鍵暗号化部２５は、乱数ｒ１より共通鍵Ｋ１を作成し、共通鍵Ｋ１により乱数ｒ２を暗号化して暗号化乱数ＥＫ１（ｒ２）を作成してもよい。
【００７０】
サーバ装置５０では、通信部５７は、暗号化乱数ＥＫ２（ｒ１）を受信する。共通鍵復号部５２は、乱数ｒ２より共通鍵Ｋ２を作成し、共通鍵Ｋ２により暗号化乱数ＥＫ２（ｒ１）を復号し、乱数ｒ１´を取得する（Ｓ８）。
【００７１】
尚、ネットワーク端末２０により登録又は生成された値と区別し、サーバ装置５０により復号又は計算等によって得られた値であることを示すために、値（例えば乱数ｒ１）に「´」が付加されている（以下同様）。
【００７２】
サーバ装置５０では、一方向性関数処理部５１は、一方向性関数を使って、Ｓ８において取得した乱数ｒ１´からハッシュ値Ｈ（ｒ１´）を導出（例えば計算）する。認証処理部５５は、取得されたハッシュ値Ｈ（ｒ１´）と、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））に付与されたハッシュ値Ｈ（ｒ１）とを比較し、端末認証する（Ｓ９）。
【００７３】
認証処理部５５は、例えば、ハッシュ値Ｈ（ｒ１´）とハッシュ値Ｈ（ｒ１）とが一致した場合、認証が成功したと判定する。これにより、ネットワーク端末２０が、クライアント証明書が発行された正規の端末であると特定できる。取得された乱数ｒ１´は、ハッシュ値Ｈ（ｒ１´）が導出された後、破棄されてもよい。
【００７４】
尚、サーバ装置５０は、ネットワーク端末２０の端末情報（例えば識別情報、権限情報）とハッシュ値Ｈ（ｒ１）とが対応づけて登録されたデータベースを有し、ハッシュ値Ｈ（ｒ１）から端末情報を取得してもよい。また、サーバ装置５０が、サーバ装置５０以外の上記データベースを管理するデータベースサーバにアクセスし、ネットワーク端末２０の端末情報を取得してもよい。これにより、ネットワーク端末２０に関する情報（例えばアクセス権限）を管理でき、セキュリティを一層向上できる。
【００７５】
端末認証システム１０によれば、サーバ装置５０は、クライアント証明書の被発行者であるネットワーク端末２０を認証する端末認証精度を向上できる。
【００７６】
例えば、ネットワーク端末２０の端末所持者以外の者（第三者）が、ネットワーク端末２０の秘密鍵Ｋ＿Ａ［Ｓ］及びクライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））を保持しても、秘密情報（例えば乱数ｒ１）を取得しないと、ネットワーク端末２０になりすますことは困難となる。
【００７７】
仮に、秘密鍵Ｋ＿Ａ［Ｓ］又はクライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））が第三者に盗用され、複製される場合でも、秘密鍵Ｋ＿Ａ［Ｓ］及びクライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））は、秘密情報の暗号化、復号化等に用いられ、認証対象ではないので、第三者の端末がネットワーク端末２０として認証されることを抑制できる。よって、セキュリティを確保できる。また、ネットワーク端末２０の秘密鍵Ｋ＿Ａ［Ｓ］又はクライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））をネットワーク端末２０に埋め込むためのコストを低減できる。
【００７８】
また、乱数ｒ２を用いて端末認証シーケンスが実行されることで、乱数ｒ２の値は、シーケンスが実行される度に毎回変更される。従って、Ｓ４においてサーバ装置５０から送信される暗号化乱数ＰＫ＿Ａ（ｒ２）、Ｓ７において送信される暗号化乱数ＥＫ２（ｒ１）が、毎回変化する。従って、ネットワークを伝送される情報(ＰＫ＿Ａ（ｒ２）やＥＫ２（ｒ１）)が仮に漏洩しても、ＥＫ２（ｒ１）の値が毎回変化するので、リプライ攻撃に対する耐性を向上できる。
【００７９】
なお、本実施形態では、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））にネットワーク端末２０の識別情報及び権限情報の少なくとも一方が埋め込まれてもよい。この場合、サーバ装置５０は、認証されたクライアント証明書により識別情報や権限情報を取得できる。クライアント証明書以外の情報に識別情報や権限情報が付加された場合、改善される可能性がある。識別情報や権限情報がクライアント証明書に付加されることで、セキュリティを向上でき、識別情報や権限情報の信頼性を向上できる。
【００８０】
なお、本実施形態では、図３のＳ７において、ネットワーク端末２０は、サーバ装置５０に暗号化乱数を送信する際、２重に暗号化してセキュリティを高めてもよい。
【００８１】
具体的には、ネットワーク端末２０では、Ｓ６において、公開鍵暗号化部２９は、サーバ装置５０の公開鍵Ｋ＿Ｂ［Ｐ］により乱数ｒ１を暗号化して暗号化乱数ＰＫ＿Ｂ（ｒ１）を作成してもよい。共通鍵暗号化部２５は、乱数ｒ２より共通鍵Ｋ１を作成し、共通鍵Ｋ１により暗号化乱数ＰＫ＿Ｂ（ｒ１）を暗号化して２重暗号化乱数ＥＫ２（ＰＫ＿Ｂ（ｒ１））を作成してもよい。Ｓ７において、通信部２８は、２重暗号化乱数ＥＫ２（ＰＫ＿Ｂ（ｒ１））をサーバ装置５０に送信してもよい。
【００８２】
この場合、ネットワーク端末２０は、Ｓ６の処理前に、サーバ証明書Ｃ＿Ｂを取得し、例えば記憶部２１に記憶しておく。サーバ証明書Ｃ＿Ｂには、サーバ装置５０の公開鍵Ｋ＿Ｂ［Ｐ］が含まれている。
【００８３】
サーバ装置５０では、通信部５７は、２重暗号化乱数ＥＫ２（ＰＫ＿Ｂ（ｒ１））を受信してもよい。Ｓ８において、共通鍵復号部５２は、２重暗号化乱数ＥＫ２（ＰＫ＿Ｂ（ｒ１））を乱数ｒ２により復号してもよい。秘密鍵復号部５６は、サーバ装置５０の秘密鍵Ｋ＿Ｂ［Ｓ］により暗号化乱数ＰＫ＿Ｂ（ｒ１）を復号し、乱数ｒ１´を取得してもよい。
【００８４】
サーバ装置５０の公開鍵Ｋ＿Ｂ［Ｐ］により暗号化することで、第三者が通信データを盗聴し、さらに第三者が仮にＫ_Ａを持っていたとしても、サーバ装置５０の秘密鍵Ｋ＿Ｂ[Ｓ]を持たなければ、乱数ｒ２を算出できないので、乱数ｒ１を取得することができない。従って、サーバ装置５０は、端末認証に失敗するので、第三者をネットワーク端末２０と誤認することを抑制でき、より一層セキュリティを向上できる。
【００８５】
また、本実施形態では、サーバ装置５０は、ネットワーク端末２０以外の所定の認証局からネットワーク端末２０のルート証明書を取得し、保持してもよい。サーバ装置５０は、ネットワーク端末２０から取得されたクライアント証明書の署名とルート証明書の署名とを比較し、クライアント証明書の正当性を認証してもよい。これにより、更に端末認証の信頼性を向上できる。
【００８６】
（第２の実施形態）
第２の実施形態の端末認証システムでは、第１の実施形態と同一の構成要素については、同一の符号を付すことで、その説明を省略又は簡略化する。本実施形態の端末認証システム１０Ａは、ネットワーク端末２０Ａ及びサーバ装置５０Ａを備える。ネットワーク端末２０Ａ及びサーバ装置５０Ａは、インターネット４０を介して接続される。
【００８７】
端末認証システム１０Ａの詳細な構成例の図示は省略するが、ネットワーク端末２０Ａは、ネットワーク端末２０と比較すると、共通鍵暗号化部２５、秘密鍵復号部２６、及び公開鍵暗号化部２９を備えなくてもよい。記憶部２１は、秘密鍵Ｋ＿Ａ［Ｓ］を記憶しなくてもよい。サーバ装置５０Ａは、サーバ装置５０と比較すると、共通鍵復号部５２、公開鍵暗号化部５３、乱数生成部５４、及び秘密鍵復号部５６を備えなくてもよい。
【００８８】
図４は、端末認証システム１０Ａによる端末認証シーケンスの一例を示すシーケンス図である。図４は、図３の変形例であるので、図３と同様の前提及び処理については、説明を省略又は簡略化する。
【００８９】
図４では、前提として、ネットワーク端末２０Ａとサーバ装置５０Ａとの間にセキュアな通信路７０が確立されている。セキュアな通信路７０は、例えば、ＳＳＬ／ＴＬＳにより暗号化された通信路を含む。
【００９０】
ネットワーク端末２０Ａは、事前に、サーバ装置５０Ａからサーバ証明書Ｃ＿Ｂを取得し（Ｓ１１）、サーバ装置５０Ａの認証は成功済である。
【００９１】
ネットワーク端末２０Ａでは、通信部２８は、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））をサーバ装置５０Ａに送信する（Ｓ１２）。通信部２８は、乱数ｒ１をサーバ装置５０Ａに送信する（Ｓ１３）。乱数ｒ１は、秘密情報に基づく第１の情報の一例である。
【００９２】
サーバ装置５０Ａでは、通信部５７は、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））及び乱数ｒ１を受信する。一方向性関数処理部５１は、一方向性関数を使って、Ｓ１３において取得された乱数ｒ１からハッシュ値Ｈ（ｒ１）を計算する。認証処理部５５は、計算されたハッシュ値Ｈ（ｒ１）と、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））に付与されたハッシュ値Ｈ（ｒ１）と、を比較し、端末認証する（Ｓ１４）。
【００９３】
認証処理部５５は、例えば、双方のハッシュ値Ｈ（ｒ１）が一致した場合、認証が成功したと判定する。これにより、ネットワーク端末２０Ａが、クライアント証明書が発行された正規の端末であると特定できる。
【００９４】
このように、ネットワーク端末２０Ａは、ネットワーク端末２０Ａとサーバ装置５０Ａとの間で、暗号化されたセキュアな通信路７０が確立されている場合、サーバ装置５０Ａに、クライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））及び乱数ｒ１を送る。これにより、サーバ装置５０Ａは、ネットワーク端末２０Ａの認証を容易に実施できる。
【００９５】
端末認証システム１０Ａによれば、認証対象が、クライアント証明書に含まれる情報ではなく、ネットワーク端末２０Ａが保持する秘密情報（例えば乱数ｒ１）となる。従って、第三者が、ネットワーク端末２０Ａのクライアント証明書Ｃ＿Ａ（Ｈ（ｒ１））を保持しても、秘密情報（例えば乱数ｒ１）を取得しないと、ネットワーク端末２０Ａになりすますことが困難となる。従って、サーバ装置５０Ａは、クライアント証明書の被発行者であるネットワーク端末２０Ａを特定でき、端末認証精度を向上できる。また、ネットワーク端末２０Ａ及びサーバ装置５０Ａの構成要素を低減できるので、端末認証システム１０Ａの構成を簡単化できる。
【００９６】
以上、図面を参照しながら各種の実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００９７】
例えば、上記実施形態では、ネットワークがインターネット４０であることを例示したが、他のネットワーク（例えばＬＡＮ）でもよい。
【００９８】
例えば、上記実施形態では、秘密情報として所定の乱数を例示したが、ネットワーク端末２０，２０Ａ毎に定められれば、秘密情報は、乱数以外でもよい。
【００９９】
（本発明の一態様の概要）
本発明の一態様の端末認証システムは、クライアント端末とサーバ装置とがネットワークを介して接続された端末認証システムであって、前記クライアント端末は、クライアント端末毎に異なる秘密情報と、前記秘密情報から導出された前記秘密情報のハッシュ値を含むクライアント証明書と、を保持する記憶部と、前記サーバ装置へ、前記秘密情報に基づく第１の情報及び前記クライアント証明書を送信する第１の通信部と、を備え、前記サーバ装置は、前記クライアント端末からの前記第１の情報及び前記クライアント証明書を受信する第２の通信部と、一方向性関数を用いて、前記第１の情報に基づく秘密情報からハッシュ値を導出する一方向性関数処理部と、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証する認証処理部と、を備える。
【０１００】
この構成によれば、認証対象が、クライアント証明書に含まれる情報ではなく、クライアント端末が保持する秘密情報となる。従って、仮にクライアント証明書又は秘密情報のハッシュ値が漏洩しても、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度を向上できる。
【０１０１】
また、本発明の一態様の端末認証システムは、前記クライアント証明書が、前記クライアント端末の公開鍵を含み、前記記憶部が、前記クライアント端末の秘密鍵を保持し、前記サーバ装置が、第１の乱数列を生成する乱数生成部と、前記クライアント証明書に含まれる前記クライアント端末の公開鍵を用いて、前記第１の乱数列を含む第１の乱数を暗号化する第２のデータ暗号化部と、を備え、前記第２の通信部が、前記暗号化された第１の乱数を前記クライアント端末に送信し、前記第１の通信部が、前記サーバ装置から前記暗号化された第１の乱数を受信し、前記クライアント端末が、前記クライアント端末の秘密鍵を用いて、前記暗号化された第１の乱数を復号し、前記第１の乱数を取得する第１のデータ復号部と、前記第１の乱数を用いて、前記秘密情報を暗号化する第１のデータ暗号化部と、を備え、前記第１の通信部が、前記暗号化された秘密情報を前記サーバ装置に送信し、前記第２の通信部が、前記暗号化された秘密情報を前記クライアント端末から受信し、前記サーバ装置が、前記第１の乱数を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得する第２のデータ復号部を備える。
【０１０２】
この構成によれば、クライアント端末の端末所持者以外の第三者が、クライアント端末の秘密鍵及びクライアント証明書を保持しても、秘密情報を取得しない場合、クライアント端末になりすますことが困難となる。従って、秘密鍵又はクライアント証明書が秘密鍵が盗用されたとしても、セキュリティは確保される。また、秘密鍵を端末に埋め込まなくてもよいので、コストの削減に繋がる。また、第１の乱数は、生成される度に値が変更されるので、仮に秘密情報が漏洩しても、リプライ攻撃に対する耐性を向上できる。また、秘密情報が暗号化されて通信されるので、秘密情報の漏洩を抑制できる。
【０１０３】
また、本発明の一態様の端末認証システムは、前記第１のデータ暗号化部が、前記サーバ装置の公開鍵及び前記第１の乱数を用いて前記秘密情報を暗号化し、前記第１の通信部は、前記暗号化された秘密情報を前記サーバ装置に送信し、前記第２の通信部が、前記クライアント端末からの前記暗号化された秘密情報を受信し、前記第２のデータ復号部は、前記サーバ装置の秘密鍵及び前記第１の乱数を用いて、前記暗号化された秘密情報を復号し、前記秘密情報を取得する。
【０１０４】
この構成によれば、クライアント端末によりサーバ装置の公開鍵を用いて第１の乱数を暗号化することで、サーバ装置の秘密鍵を持たない第三者は、暗号化データを盗聴しても、第１の乱数を導出できず、秘密情報を取得できない。従って、一層セキュリティを向上できる。
【０１０５】
また、本発明の一態様の端末認証システムは、前記秘密情報が、第２の乱数列を含む第２の乱数を含む。
【０１０６】
この構成によれば、クライアント端末は、秘密情報を容易に短時間に作成し、管理できる。
【０１０７】
また、本発明の一態様の端末認証システムは、前記第１の通信部及び前記第２の通信部が、セキュアな通信路を介して通信し、前記第１の情報が、前記秘密情報を含む。
【０１０８】
この構成によれば、秘密情報を暗号化及び復号するための構成を省略できるので、端末認証システムの構成を簡素化でき、セキュアな通信路を用いることで、セキュリティを確保できる。
【０１０９】
また、本発明の一態様の端末認証システムは、前記クライアント証明書が、前記クライアント端末の識別情報、及び権限情報の少なくとも一方を含む。
【０１１０】
この構成によれば、サーバ装置は、例えば、認証されたクライアント証明書とともに識別情報及び権限情報の少なくとも一方を取得できる。また、クライアント証明書以外の情報に付加された場合、改竄の虞があるが、クライアント証明書とともに識別情報及び権限情報の少なくとも一方を取得することで、識別情報及び権限情報の少なくとも一方の信頼性を向上できる。
【０１１１】
また、本発明の一態様のサーバ装置は、ネットワークを介してクライアント端末に接続されたサーバ装置であって、前記クライアント端末から、クライアント端末毎に異なる秘密情報に基づく第１の情報と、前記秘密情報から導出された前記秘密情報のハッシュ値を含むクライアント証明書と、を受信する通信部と、一方向性関数を用いて、前記第１の情報に基づく秘密情報からハッシュ値を導出する一方向性関数処理部と、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証する認証処理部と、を備える。
【０１１２】
この構成によれば、認証対象が、クライアント証明書に含まれる情報ではなく、クライアント端末が保持する秘密情報となる。従って、仮にクライアント証明書又は秘密情報のハッシュ値が漏洩しても、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度を向上できる。
【０１１３】
また、本発明の一態様の端末認証方法は、ネットワークを介してクライアント端末に接続されたサーバ装置における端末認証方法であって、前記クライアント端末から、クライアント端末毎に異なる秘密情報に基づく第１の情報と、前記秘密情報から導出された前記秘密情報のハッシュ値を含むクライアント証明書と、を受信するステップと、一方向性関数を用いて、前記第１の情報に基づく秘密情報からハッシュ値を導出するステップと、前記導出されたハッシュ値と前記クライアント証明書に含まれる前記秘密情報のハッシュ値とに基づいて、前記クライアント端末を認証するステップと、を備える。
【０１１４】
この方法によれば、認証対象が、クライアント証明書に含まれる情報ではなく、クライアント端末が保持する秘密情報となる。従って、仮にクライアント証明書又は秘密情報のハッシュ値が漏洩しても、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度を向上できる。
【産業上の利用可能性】
【０１１５】
本発明は、クライアント証明書の被発行者であるクライアント端末を認証する端末認証精度を向上できる端末認証システム、サーバ装置、及び端末認証方法等に有用である。
【符号の説明】
【０１１６】
１０，１０Ａ  端末認証システム
２０，２０Ａ  ネットワーク端末
２１  記憶部
２５  共通鍵暗号化部
２６  秘密鍵復号部
２８  通信部
２９  公開鍵暗号化部
４０  インターネット
５０，５０Ａ  サーバ装置
５１  一方向性関数処理部
５２  共通鍵復号部
５３  公開鍵暗号化部
５４  乱数生成部
５５  認証処理部
５６  秘密鍵復号部
５７  通信部
５８  記憶部
７０  セキュアな通信路
【図１】
0006548172.tif 000002
【図２】
0006548172.tif 000003
【図３】
0006548172.tif 000004
【図４】
0006548172.tif 000005