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