(57)【要約】【課題】検出できない種類の暗号装置の異常を検出して、証明書の有効性検証処理の継続と正常な証明書検証応答を可能とするとと共に、検証者から依頼された有効性検証処理中に暗号装置の異常が検出された場合にも、証明書検証応答を正常に応答することを可能とする。【解決手段】証明書検証サーバ１１1は、第一の暗号装置１２1への第一の署名生成依頼時に、第一の暗号装置１２1の異常を検出し、証明書検証サーバ１１1にて管理する暗号装置１２2、１２3の稼動状態に基づき第二の暗号装置１２2を選択し、第二の暗号装置１２2と接続されている第二の証明書検証サーバ１１2へ第二の署名生成依頼８０を行い、第二の証明書検証サーバ１１2から署名値を受信し、その受信した署名値を含むレスポンスを生成し端末装置へ応答する。【選択図】  図５
2014053754.tif 000002
【特許請求の範囲】
【請求項１】
端末装置の証明書検証要求に応じて、任意の認証局が発行した証明書の有効性を検証する第一の証明書検証サーバにおける証明書の有効性検証方法であって、
前記第一の証明書検証サーバは、複数の他の証明書検証サーバと接続されており、前記第一の証明書検証サーバは、証明書検証サーバ毎に、該証明書検証サーバの依頼に応じて、前記証明書に対する署名を生成する暗号装置と、該暗号装置の稼動状態とを関連付けて記憶する記憶部を具備しており、
前記第一の証明書検証サーバにより、
第一の暗号装置への第一の署名生成依頼時に、前記第一の暗号装置の異常を検出し、
前記暗号装置の稼動状態に基づき第二の暗号装置を選択し、
前記第二の暗号装置と接続されている第二の証明書検証サーバへ第二の署名生成依頼を行い、
前記第二の証明書検証サーバから署名値を受信し、
前記受信した署名値を含むレスポンスを生成し前記端末装置へ応答する、
ことを特徴とする証明書の有効性検証方法。
【請求項２】
前記第一の証明書検証サーバにより、
前記証明書検証要求に対するレスポンス生成中に前記第一の暗号装置への前記第一の署名生成依頼を行い、前記第一の暗号装置の異常を検出する、
ことを特徴とする請求項１に記載の証明書の有効性検証方法。
【請求項３】
前記第一の証明書検証サーバにより、
所定のタイミングで前記第一の暗号装置を監視し、該監視とともに前記第一の暗号装置への前記第一の署名生成依頼を行い、前記第一の暗号装置の異常を検出する、
ことを特徴とする請求項１に記載の証明書の有効性検証方法。
【請求項４】
前記第一の証明書検証サーバにより、
前記第一の暗号装置の異常を検出すると、警報を出力し、前記第一の暗号装置の稼動状態を異常に変更し、前記他の証明書検証サーバに前記第一の証明書検証サーバに障害が発生したことを通知する、
ことを特徴とする請求項１に記載の証明書の有効性検証方法。
【請求項５】
前記第一の証明書検証サーバにより、
前記第一の暗号装置の復旧を検出すると、前記第一の暗号装置の稼動状態を正常に変更し、前記他の証明書検証サーバに前記第一の暗号装置が復旧したことを通知する、
ことを特徴とする請求項４に記載の証明書の有効性検証方法。
【請求項６】
端末装置の証明書検証要求に応じて、任意の認証局が発行した証明書の有効性を検証する第一の証明書検証サーバであって、
前記第一の証明書検証サーバは、複数の他の証明書検証サーバと接続されており、
証明書検証サーバ毎に、該証明書検証サーバの依頼に応じて、前記証明書に対する署名を生成する暗号装置と、該暗号装置の稼動状態とを関連付けて記憶する記憶部と、
第一の暗号装置への第一の署名生成依頼時に、前記第一の暗号装置の異常を検出し、前記暗号装置の稼動状態に基づき第二の暗号装置を選択し、前記第二の暗号装置と接続されている第二の証明書検証サーバへ第二の署名生成依頼を行い、前記第二の証明書検証サーバから署名値を受信し、前記受信した署名値を含むレスポンスを生成し前記端末装置へ応答する制御部と、を有する、
ことを特徴とする証明書検証サーバ。
【請求項７】
前記制御部は、
前記証明書検証要求に対するレスポンス生成中に前記第一の暗号装置への前記第一の署名生成依頼を行い、前記第一の暗号装置の異常を検出する、
ことを特徴とする請求項６に記載の証明書検証サーバ。
【請求項８】
前記制御部は、
所定のタイミングで前記第一の暗号装置を監視し、該監視とともに前記第一の暗号装置への前記第一の署名生成依頼を行い、前記第一の暗号装置の異常を検出する、
ことを特徴とする請求項６に記載の証明書検証サーバ。
【請求項９】
前記制御部は、
前記第一の暗号装置の異常を検出すると、警報を出力し、前記第一の暗号装置の稼動状態を異常に変更し、前記他の証明書検証サーバに前記第一の証明書検証サーバに障害が発生したことを通知する、
ことを特徴とする請求項６に記載の証明書検証サーバ。
【請求項１０】
前記制御部は、
前記第一の暗号装置の復旧を検出すると、前記第一の暗号装置の稼動状態を正常に変更し、前記他の証明書検証サーバに前記第一の暗号装置が復旧したことを通知する、
ことを特徴とする請求項９に記載の証明書検証サーバ。
【請求項１１】
コンピュータに、請求項１乃至請求項５の何れか１項に記載の証明書の有効性検証方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、証明書の有効性を検証する技術に関する。
【背景技術】
【０００２】
公開鍵認証基盤（Public Key Infrastructure；以下「ＰＫＩ」という）において、電子文書などの電子データを送付する際に、対象となる電子データに、送信者の保有する秘密鍵（Private Key）を用いて電子署名（以下「署名」という）を付与し、認証局（Certification Authority；以下「ＣＡ」という）が発行する送信者の公開鍵証明書を添付する。受信者は、受信データに添付された署名と公開鍵証明書の有効性を確認することにより、送付された電子データが改ざんされていないことと、確かに送信者本人から送られた電子データであることを確認する。以下、電子データの送信者を「署名者」、電子データの受信者を「検証者」という。
【０００３】
公開鍵証明書の有効性の確認処理には、検証者が信頼するＣＡから署名者の公開鍵証明書までの証明書の繋がりを構築する処理（以下、「認証パスの構築」という）と、さらに、認証パスに含まれる全ての公開鍵証明書が有効であることを確認する処理（以下、「認証パスの検証」という）が含まれる。なお、認証パスの構築や検証は、複数の認証局が、証明書を発行し合って、相互接続する環境において、特に複雑な処理となる。
【０００４】
認証パスの構築や検証のモデルとして、検証者自身が公開鍵証明書の有効性を確認するエンドエンティティモデルと、検証者に代わって、ＣＡが発行した公開鍵証明書を検証する機関（以下、「証明書検証サーバ」という）が公開鍵証明書の有効性を確認するサーバモデルがある。
【０００５】
エンドエンティティモデルの場合には、検証者が、認証パスの構築を実施した後に、認証パスの検証処理において、認証パスに含まれる公開鍵証明書が失効しているか否かを確認する。失効確認を行う方法の一つとして、オンラインで、認証パスに含まれる公開鍵証明書を検証する証明書検証サーバに、公開鍵証明書の状態が有効か失効であるかを問合せする方法がある。非特許文献１に、問合せやその応答に関するプロトコル、ＯＣＳＰ（Online Certificate Status Protocol）が開示されている。
【０００６】
一方、サーバモデルの場合には、オンラインで、検証者が信頼するＣＡの証明書検証サーバに、検証対象とする署名者の公開鍵証明書の有効性確認を依頼すると、証明書検証サーバが認証パスの構築と認証パスの検証を実施し、検証者サーバが有効性確認結果を応答する。
【０００７】
エンドエンティティモデルとサーバモデルのいずれの場合においても、証明書検証サーバは、オンラインで公開鍵証明書の状態の確認、あるいは、公開鍵証明書の有効性確認（以下、「公開鍵証明書の有効性検証」と総称する）を実施して検証者に応答する。その際に、確かに証明書検証サーバが応答電文を生成したことを担保するために、応答電文に、電子署名と証明書検証サーバの公開鍵証明書を添付する。より信頼性の高い証明書検証サービスを提供するために、耐タンパ性を備えた暗号演算専用の暗号装置を利用して、電子署名を生成するための秘密鍵の管理や、電子署名の演算を行っている。なお、暗号装置を利用する証明書検証サーバには、暗号装置へ、秘密鍵の管理や電子署名の演算等に関する命令を送付するためのアプリケーション・プログラム（以下、暗号装置のアプリケーション・プログラム）が、備わっている。証明書検証応答への電子署名処理や、証明書検証サーバの鍵管理処理を、実施する証明書検証サーバのアプリケーション・プログラムが、暗号装置のアプリケーション・プログラムを呼び出すことにより、証明書検証サーバが暗号装置の機能を利用することができる。
【０００８】
仮に、証明書検証サーバが公開鍵証明書の有効性検証中に暗号装置の障害が発生した場合には、応答電文に電子署名を付与できなくなるため、応答結果をエラーとして、検証者に返却しなければならない。そこで、証明書検証サーバといった、暗号装置を利用するサービスでは、暗号装置障害の本サービスへの影響を減らすために、暗号装置に備わる障害対策機能を活用している（例えば、非特許文献２参照）。非特許文献２によれば、クライアント端末が備える、暗号装置の監視機能が、暗号装置の電源、温度、ネットワーク等のシステム稼動状態をリモート監視し、暗号装置の障害を検出すると、この暗号装置から正常な暗号装置へと切り換えて秘密鍵の管理や、電子署名の演算を行わせることが可能である。
【０００９】
一方、一般的なアプリケーション・プログラムの障害対策として、特許文献１に開示される方法がある。特許文献１は、監視プログラムによって、アプリケーション・プログラムの動作状況を監視し、アプリケーション・プログラムの異常を検出する技術である。アプリケーション・プログラムの異常を検出したときに、監視プログラムによって、アプリケーション・プログラムを再起動し、さらに、異常を検出した場合には、他の計算機上で自動的に、同一のアプリケーション・プログラムを起動し、アプリケーション・プログラムの継続実行を可能とする技術である。監視方法として、アプリケーション・プログラムのプロセスが存在しているかを確認する方法や、また、アプリケーション・プログラムのＡＰＩ（Application Program Interface）を呼び出して、エラー返却するか、あるいは、リターンを返却しないかを判定する方法が記載されている。
【００１０】
特許文献１の技術を、暗号装置を利用する証明書検証サーバに活用した場合には、証明書検証サーバに、暗号装置のアプリケーション・プログラムのＡＰＩを呼び出し、ＡＰＩの呼出結果を確認するような暗号装置監視機能を備えることになる。その結果、非特許文献２に記載されるシステム稼動状態の監視に加えて、暗号装置の個々の機能の動作状況の監視を行うなど可能である。また、異常を検出した場合には、暗号装置の再起動を行い、それでも異常が続く場合には、暗号装置を切り替えることが可能となる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００１−２２７０９号公報
【非特許文献】
【００１２】
【非特許文献１】“X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP(RFC2560）”,page 2“2.1 Request” “2.2 Response”,［online］,1999年6月、The Internet Engineering Task Force（IETF）,［平成24年6月7日検索］インターネット＜URL：http://ietf.org/rfc/rfc2560.txt＞
【非特許文献２】“Hardware Security Module Thales nShield Connect”,［online］,2011年7月、Thales,［平成24年6月7日検索］インターネット＜URL：http://www.thales-esecurity.com/~/media/Files/Data%20Sheets/nShield%20Connect%20Datasheet.ashx＞
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１の技術を、暗号装置を利用する証明書検証サーバに活用した場合には、鍵が見つからない、電子署名の演算を実行できないといった暗号装置の異常を、後述する方法で検出することができる。証明書検証サーバが備える暗号装置監視機能から、暗号装置の電子署名に利用する鍵の検索機能や、電子署名の演算機能を実行するためのアプリケーション・プログラムのＡＰＩを呼び出し、ＡＰＩの呼出結果がエラーであるかどうかを確認する。しかしながら、電子署名の演算機能のＡＰＩを呼び出して、ＡＰＩの呼出結果が正常と証明書検証サーバの暗号装置監視機能に返却されながら、呼出結果に含まれる署名値が不正であるといった異常が発生することが考えられる。これは、暗号装置の署名演算機能に何らかの異常が発生したことにより、署名演算機能の処理を実行可能であっても、正しい署名値を生成できないという障害である。その場合には、特許文献１の方法だけでは、異常を検出することができない。つまり、ＡＰＩの呼び出し結果のエラーを判定するだけでは、機能の処理によって生成したデータの異常を検出することができないといった問題がある。
【００１４】
また、証明書検証サーバが備える、暗号装置監視機能は、証明書検証サーバのアプリケーション・プログラムとは独立して、暗号装置のアプリケーション・プログラムを監視することになる。しかしながら、証明書検証サーバのアプリケーション・プログラムが、暗号装置のアプリケーション・プログラムのＡＰＩを呼び出して、暗号装置の起動や、暗号装置の格納データ更新を行う際など、暗号装置に異常が発生しやすいタイミングが存在する。そのため、上記のタイミングに暗号装置監視機能の動作を合わせるには、証明書検証サーバのアプリケーション・プログラムと、連動し、暗号装置に異常が発生しやすい処理が実施されたときに、監視機能を実行する必要がある。
【００１５】
以上の様に、特許文献１の技術では、検出できない種類の異常や、検出するタイミングに課題がある。したがって、その後の証明書の有効性検証処理の継続と正常な証明書検証応答ができない。
【００１６】
さらに、特許文献１の技術を、暗号装置を利用する証明書検証サーバに活用した場合には、暗号装置に異常が発生すると、異常が発生した暗号装置の再起動や、また、切り替える暗号装置の起動が発生する。そのため、一時的に、暗号装置の利用が不可能になることから、証明書検証サーバが、検証者から依頼を受け、有効性検証処理を実施しているタイミングで異常が発生した場合には、証明書検証応答に対する署名を生成できずに、その依頼に対する応答をエラーとして返却しなければならない。
【００１７】
このように、特許文献１の技術では、検証者から依頼された証明書の有効性検証処理中に、暗号装置の障害が発生した場合には、証明書検証応答を正常に応答できないという課題がある。
【００１８】
本発明は、上記課題を鑑みてなされたものであり、検出できない種類の暗号装置の異常を検出して、証明書の有効性検証処理の継続と正常な証明書検証応答を可能とすると共に、検証者から依頼された有効性検証処理中に暗号装置の異常が検出された場合にも、証明書検証応答を正常に応答することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の代表的な一例は、以下の通りである。すなわち、本発明は、端末装置の証明書検証要求に応じて、任意の認証局が発行した証明書の有効性を検証する第一の証明書検証サーバにおける証明書の有効性検証方法である。前記第一の証明書検証サーバは、複数の他の証明書検証サーバと接続されており、前記第一の証明書検証サーバは、証明書検証サーバ毎に、該証明書検証サーバの依頼に応じて、前記証明書に対する署名を生成する暗号装置と、該暗号装置の稼動状態とを関連付けて記憶する記憶部を具備する。前記第一の証明書検証サーバにより、第一の暗号装置への第一の署名生成依頼時に、前記第一の暗号装置の異常を検出し、前記暗号装置の稼動状態に基づき第二の暗号装置を選択し、前記第二の暗号装置と接続されている第二の証明書検証サーバへ第二の署名生成依頼を行い、前記第二の証明書検証サーバから署名値を受信し、前記受信した署名値を含むレスポンスを生成し前記端末装置へ応答する。
【発明の効果】
【００２０】
本発明によれば、検出できない種類の暗号装置の異常を検出して、証明書の有効性検証処理の継続と正常な証明書検証応答を可能とすると共に、検証者から依頼された有効性検証処理中に暗号装置の異常が検出された場合にも、証明書の検証応答を正常に応答することを可能とする。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態における検証システムの構成を示す図である。
【図２】図３に示す証明書検証サーバ１１および端末装置１３の各々のハードウェア構成例を示す図である。
【図３】証明書検証サーバ１１の構成を示す図である。
【図４】暗号装置１２の障害を検出する際の処理フローを示す図である。
【図５】証明書検証サーバ１１間で、レスポンス署名生成を連携する際のメッセージフローを示す図である。
【図６】証明書検証サーバ１１間で、暗号装置１２の障害発生情報を連携する際のメッセージフローを示す図である。
【図７】証明書検証サーバ１１間で、暗号装置１２の障害復旧情報を連携する際のメッセージフローを示す図である。
【図８】レスポンス署名連携依頼電文８０の設定項目を示す図である。
【図９】レスポンス署名連携応答電文９０の設定項目を示す図である。
【図１０】暗号装置管理テーブル１００の設定項目を示す図である。
【図１１】暗号装置監視部設定ファイル１１０の設定項目を示す図である。
【図１２】レスポンス生成時の障害検出処理のフローチャートである。
【図１３】監視時の障害検出処理のフローチャートである。
【図１４】暗号装置管理部３５による署名処理のフローチャートである。
【図１５】暗号装置管理部３５によるリトライ処理のフローチャートである。
【図１６】暗号装置管理部３５によるレスポンス署名連携依頼処理のフローチャートである。
【図１７】暗号装置管理部３５によるレスポンス署名連携応答処理のフローチャートである。
【発明を実施するための形態】
【００２２】
以下に、本発明の第一の実施形態について、図１〜図１７を用いて説明する。まずは、図１は、本発明の実施の第一の実施形態である検証システムの構成を示す図である。
【００２３】
本実施形態では、公開鍵証明書の有効性を検証する複数の証明書検証サーバ証明書検証サーバ１１1〜証明書検証サーバ１１l（「証明書検証サーバ１１」と総称する）と、鍵管理や暗号演算を行う複数の暗号装置１２1〜暗号装置１２m（「暗号装置１２」と総称する）と、電子データの送受信を行う複数の端末装置１３1〜端末装置１３n（「端末装置１３」と総称する）と、それぞれを接続するインターネット等のネットワーク１４からなる。なお、図１では、証明書検証サーバ１１と暗号装置１２が、１対１の構成で接続されているが、構成が限定されるものではない。証明書検証サーバ１１と暗号装置１２が、多対多の接続構成であっても良い。
【００２４】
図２は、証明書検証サーバ１１と端末装置１３の各々のハードウェア構成例を示す図である。証明書検証サーバ１１および端末装置１３は、各種処理や演算、装置全体の制御等を行うＣＰＵ（Central Processing Unit）２１と、メモリ２２と、各種プログラム及びデータを記憶するハードディスク等の外部記憶装置２３と、ネットワーク１４を介して他装置と通信を行うための通信装置２４と、キーボードやボタン等の入力装置２５と、モニタやプリンタ等の出力装置２６と、ＣＤ−ＲＯＭやＵＳＢ等の可搬性を有する記憶媒体２８から情報を読み取る読取装置２７と、これらの各装置間のデータ送受を行う内部通信線（例えば、ＢＵＳ）２０と、を備えた、一般的なコンピュータ（電子計算機）である。ＣＰＵ２１は、外部記憶装置２３から各種プログラムをメモリ２２にロードし、実行する。各種プログラムは、予め外部記憶装置２３に格納されていても良いし、電子計算機が利用可能な可搬性を有する記憶媒体２８に格納されており読取装置２７を介して必要に応じて読み出されても良いし、あるいは、電子計算機が利用可能な通信媒体であるネットワークまたはネットワーク上を伝搬する搬送波を利用する通信装置２４と接続された他の装置から必要に応じてダウンロードされて外部記憶装置２３に格納されるものであっても良い。
【００２５】
図３は、証明書検証サーバ１１の構成を示す図である。証明書検証サーバ１１は、処理部３０ａと、記憶部３０ｂと、ネットワーク１４を介して他の装置と通信するための通信部３０ｃと、各種証明書等の入出力や、証明書検証サーバ１１の管理者からの指示を受け付ける入出力部３０ｄとを有する。
【００２６】
処理部３０ａは、制御部３１と、検証部３２と、レスポンス生成部３３と、暗号装置監視部３４と、暗号装置管理部３５と、暗号装置アクセス部３６と、管理部３７とを有する。
【００２７】
制御部３１は、端末装置１３から、通信部３０ｃを介して、証明書検証要求（以下、「リクエスト」という）を受付けると、リクエストから、検証者が信頼するＣＡの情報や、検証対象とする公開鍵証明書を抽出し、さらに、検証部３２に、有効性検証処理を命令する。また、検証部３２の処理結果に対して、レスポンス生成部３３に証明書検証応答（以下、「レスポンス」という）の生成処理を命令する。さらに、通信部３０ｃを介して、レスポンス生成部３３が生成したレスポンスを、端末装置１３へ応答する。
【００２８】
検証部３２は、制御部３１から、有効性検証処理の命令を受けると、検証対象証明書に加えて、認証局の公開鍵証明書や、認証局が発行する失効情報を用いて、有効性検証処理を行い、その結果を制御部３１に返却する。なお、有効性検証処理で、必要となる、公開鍵証明書や、失効情報は、記憶部３０ｂに格納されているデータを用いても良いし、該当する認証局から、ネットワーク１４を介して、問い合わせて、取得しても良い。
【００２９】
レスポンス生成部３３は、制御部３１から、レスポンス生成処理の命令を受けると、検証部３２が生成した有効性検証結果に、証明書検証サーバ１１の証明書や、暗号装置１２が生成した署名を付与して、レスポンスを生成する。さらに、生成したレスポンスを、制御部３１に返却する。なお、レスポンス生成部３３は、有効性検証結果に対する署名を、暗号装置管理部３５および暗号装置アクセス部３６を介して、暗号装置１２が管理する証明書検証サーバ１１の秘密鍵での署名生成を命令することによって、取得する。
【００３０】
暗号装置監視部３４は、予め、管理者によって設定された間隔で、あるいは、管理部３７からのイベント通知を受けたタイミングで、暗号装置管理部３５および暗号装置アクセス部３６を介して、暗号装置１２の稼動状態を監視する。なお、稼動状態の確認とは、暗号装置１２が管理する証明書検証サーバ１１の全ての秘密鍵で、署名生成を命令して、正常に応答されることを確認することである。
【００３１】
暗号装置管理部３５は、レスポンス生成部３３および暗号装置監視部３４からの署名生成依頼を、暗号装置アクセス部３６へ中継する署名処理中継機能３５１と、暗号装置アクセス部３６から返却された署名値を検証する署名値検証機能３５２と、暗号装置１２の異常時に他の証明書検証サーバ１１と連携する暗号装置連携機能３５３とを有する。
【００３２】
署名処理中継機能３５１は、レスポンス生成部３３と暗号装置監視部３４からの署名生成依頼を、暗号装置アクセス部３６へ中継する。また、レスポンス生成部３３からの署名生成依頼処理において、暗号装置アクセス部３６から得られた結果が異常である場合、また、署名値検証機能３５２から得られた署名検証結果が不正である場合には、暗号装置連携機能３５３に、連携を依頼する。なお、他の証明書検証サーバ１１に接続された暗号装置１２に異常が発生した場合には、暗号装置連携機能３５３からの依頼を受けて、同様に、暗号装置アクセス部３６へ署名生成依頼を中継する。
【００３３】
署名値検証機能３５２は、署名処理中継機能３５１が暗号装置１２から得た署名値を証明書保持部３９に保持されている、証明書検証サーバ１１の証明書を用いて、検証し、その結果を、署名処理中継機能３５１に返却する。
【００３４】
暗号装置連携機能３５３は、自身の証明書検証サーバ１１に接続された暗号装置１２が異常である場合には、設定情報保持部３８に保持されている、暗号装置管理テーブル１００を参照し、稼動状態が正常な暗号装置１２と接続する証明書検証サーバ１１に、レスポンス署名の連携を依頼する。また、他の証明書検証サーバ１１に、暗号装置１２の異常を通知する。一方、他の証明書検証サーバ１１から、レスポンス署名の連携依頼を受けた場合には、自身の証明書検証サーバ１１に接続された暗号装置１２でレスポンス署名を生成するために、署名処理中継機能３５１へ署名生成を依頼することもできる。
【００３５】
暗号装置アクセス部３６は、暗号装置管理部３５から中継された署名生成依頼を、暗号装置１２が処理可能なコマンドに変換して、暗号装置１２へアクセスし、処理結果を得る。
【００３６】
管理部３７は、管理者による入力を契機に、証明書検証サーバ１１の起動/停止情報や各種設定情報の変更を行う。例えば、起動/停止機能３７１は、証明書検証サーバ１１の制御部３１、暗号装置監視部３４の機能の起動／停止を実施する。また、鍵管理機能３７２は、暗号装置１２で管理している、鍵情報の変更を行う。証明書検証サーバ１１の鍵の有効期間が限定され、定期的に更新を行う必要がある場合には、鍵情報の変更を行う必要がある。
【００３７】
記憶部３０ｂは、証明書検証サーバ１１の各種設定を保持する設定情報保持部３８と、証明書検証サーバ１１の証明書を保持する証明書保持部３９とを有する。例えば、設定情報保持部３８には、各証明書検証サーバ１１が接続する暗号装置１２の稼動状態を管理するための暗号装置管理テーブル１００や、暗号装置監視部３４が、暗号装置１２の稼動状態を監視する際に利用する、設定情報暗号装置監視設定ファイル１１０が記憶されている。設定情報保持部３８に格納される設定情報は、入出力部３０ｄを介して管理者によって、編集されても良いし、暗号装置管理部３５や管理部３７によって、編集されても良い。また、その他に、記憶部３０ｂには、認証局の公開鍵証明書、認証パス、失効情報などのデータが、処理部ａによって、記憶されるものとする。
【００３８】
図２と図３の構成要素を関連付けると、処理部３０ａは、ＣＰＵ２１の処理プロセスとして実現され、記憶部３０ｂは、ＣＰＵ２１がメモリ２２や外部記憶装置２３を利用することにより実現される。また、通信部３０ｃは、ＣＰＵ２１が通信装置２４を利用することにより実現され、入出力部３０ｄは、ＣＰＵ２１が入力装置２５や出力装置２６や読取装置２７を利用することにより実現される。
【００３９】
次に図４を用いて、証明書検証サーバ１１が、暗号装置１２の障害を検出する際の、処理フローを説明する。
【００４０】
証明書検証サーバ１１の暗号装置管理部３５は、２つのタイミングで、暗号装置１２の障害を検出する。
【００４１】
１つ目は、端末装置１１から受付けたリクエストに対するレスポンス生成中である。具体的には、証明書検証サーバ１１のレスポンス生成部３３が、制御部３１が端末装置１３から受付けた検証要求に対して、有効性確認結果と証明書と署名を含むレスポンスの生成を行うために、暗号装置管理部３５へレスポンス署名を依頼するタイミングである。
【００４２】
また、２つ目は、暗号装置監視部３４による暗号装置１２の監視処理中である。具体的には、暗号装置監視部３４が、管理部３７の起動/停止機能３７１から制御部３１や暗号装置監視部３４の起動/停止情報や、鍵管理機能３７２から鍵更新情報など、暗号装置１２に障害が発生しやすいイベントに関する通知を受けた時や、暗号装置監視設定ファイル１１０で設定した間隔で作動する、定期タイマー通知を受けた時である。前記のタイミングで、暗号装置１２の稼働状態の確認を目的に、暗号装置管理部３５へ署名を依頼する。
【００４３】
１つ目および２つ目のタイミングで、暗号装置管理部３５は、レスポンス生成部３３および暗号装置監視部３４からの署名依頼を受けて、暗号装置アクセス部３６を介して、暗号装置１２へアクセスし、暗号装置アクセス部３６からの結果を判定して、暗号装置１２に異常が起きているかを検出する。具体的な検出方法については、図１２、図１３、図１４、図１５に記述する。
【００４４】
次に図５を用いて、証明書検証サーバ１１の暗号装置管理部３５間で、レスポンス署名を連携する時のメッセージフローを説明する。
【００４５】
図４で示した、１つ目のタイミングである、レスポンス生成時に、暗号装置１２の障害が発生した場合には、端末装置１３に、検証応答をエラーで返却することを防ぐために、他の証明書検証サーバ１１の暗号装置管理部３５に、レスポンス署名の処理を依頼する。
【００４６】
例えば、図５に示すように、証明書検証サーバ１１1に接続された暗号装置１２1で障害が発生し、証明書検証サーバ１１1の暗号装置管理部３５でその障害が検出されたものとし、また、証明書検証サーバ１１2に接続された暗号装置１２2で障害が発生したが、証明書検証サーバ１１2の暗号装置管理部３５ではその障害が検出されていないものと想定する。一方、証明書検証サーバ１１3に接続された暗号装置１２3は、正常に稼動しているものと想定する。
【００４７】
上述した想定において、レスポンス署名生成時に障害を検出した証明書検証サーバ１１1の暗号装置管理部３５は、証明書検証サーバ１１2にレスポンス署名連携依頼電文８０を送付する。レスポンス署名連携依頼電文８０を受信した、証明書検証サーバ１１2の暗号装置管理部３５は、暗号装置１２2にアクセスして、レスポンス署名の生成を試みる。その際に障害が発生していることを検出する。レスポンス署名の生成に失敗したことから、証明書検証サーバ１１2の暗号装置管理部３５は、証明書検証サーバ１１1の暗号装置管理部３５から受信したレスポンス署名連携依頼電文８０を、証明書検証サーバ１１3 の暗号装置管理部３５に中継する。証明書検証サーバ１１3の暗号装置管理部３５は正常に、レスポンス署名を生成し、最初のレスポンス署名連携依頼電文８０の送信元である、証明書検証サーバ１１1の暗号装置管理部３５にレスポンス署名連携応答電文９０を送信する。
【００４８】
このように、証明書検証サーバ１１間で連携して、暗号装置１２の障害対策を実施し、暗号装置１２の障害発生時の検証応答エラーを防ぐ。
【００４９】
なお、レスポンス署名連携依頼電文８０の詳細に関しては、図８に、レスポンス署名連携応答電文９０の詳細に関しては、図９に、記述する。また、証明書検証サーバ１１の暗号装置管理部３５が、設定情報保持部３８に記憶された暗号装置管理テーブル１００に基づいて、レスポンス署名処理を連携する証明書検証サーバ１１を選択する詳細な処理フローについては、図１６、図１７に記述する。
【００５０】
次に、図６を用いて、図４で示した、１つ目および２つ目のタイミングで、証明書検証サーバ１１の暗号装置管理部３５が暗号装置１２の障害を検出した場合に、証明書検証サーバ１１の暗号装置管理部３５間で障害発生情報を連携するためのメッセージフローを示す。
【００５１】
例えば、図６に示すように、証明書検証サーバ１１1に接続された暗号装置１２1で障害が発生し、証明書検証サーバ１１1の暗号装置管理部３５でその障害が検出されたものと想定する。
【００５２】
署名生成時に障害を検出した証明書検証サーバ１１1の暗号装置管理部３５は、証明書検証サーバ１１1の管理部３７に障害発生警報依頼を送信し、証明書検証サーバ１１1の管理者に、検証サービスを停止する必要があることを促す。さらに、暗号装置管理部３５は、暗号装置管理テーブル１００を編集して、暗号装置１２1の稼動状態を異常に変更する。また、暗号装置管理テーブル１００の証明書検証サーバ名１０１に設定された証明書検証サーバから自身を抜いた、証明書検証サーバ１１2から証明書検証サーバ１１nに、暗号装置１２1の障害発生情報通知を送信する。障害発生情報通知を受信した、証明書検証サーバ１１2から証明書検証サーバ１１nは、それぞれの暗号装置管理テーブル１００を編集して、暗号装置１２1の稼動状態を異常に変更する。
【００５３】
さらに、図７を用いて、証明書検証サーバ１１の暗号装置管理部３５が障害を検出後、障害が復旧した場合に、証明書検証サーバ１１の暗号装置管理部３５間で障害復旧情報を連携するためのメッセージフローを説明する。
【００５４】
証明書検証サーバ１１1では、暗号装置１２1で発生した障害が、暗号装置１２1の部品の交換や、暗号装置１２1の交換など、管理者による作業によって、復旧したものと想定する。
【００５５】
証明書検証サーバ１１1の管理者による入力を契機に、管理部３７は、暗号装置管理部３５へ障害復旧通知依頼を送信する。障害復旧通知依頼を受けた暗号装置管理部３５は、暗号装置管理テーブル１００を編集して、暗号装置１２1の稼動状態を正常に変更する。また、暗号装置管理テーブル１００の証明書検証サーバ名１０１に設定された証明書検証サーバから自身を抜いた、証明書検証サーバ１１2から証明書検証サーバ１１nに、暗号装置１２1の障害復旧情報通知を送信する。障害復旧情報通知を受信した、証明書検証サーバ１１2から証明書検証サーバ１１nは、それぞれの暗号装置管理テーブル１００を編集して、暗号装置１２1の稼動状態を正常に変更する。
【００５６】
次に、図８、図９を用いて、証明書検証サーバ１１の暗号装置管理部３５間で送受信される、レスポンス署名連携依頼電文８０とレスポンス署名連携応答電文９０の設定項目ついて述べる。
【００５７】
図８に示すレスポンス署名連携依頼電文８０は、証明書検証サーバ１１が、他の証明書検証サーバ１１にレスポンス署名を依頼する際に、暗号装置管理部３５の暗号装置連携機能３５３によって、生成される。また、レスポンス署名連携依頼電文８０は、宛先８１、中継情報８２、送信元８３、鍵情報８４、署名アルゴリズム８５、署名対象データ８６から構成されている。それぞれに対して、フィールド名、設定値、必須の項目が存在する。
【００５８】
宛先８１には、送信元あるいは送信元のレスポンス署名連携依頼電文８０を中継する証明書検証サーバ１１がレスポンス署名を依頼する、証明書検証サーバ１１のＩＰアドレス/ホスト名が設定される。例えば、図５で示した証明書検証サーバ１１2から証明書検証サーバ１１3へ送信されるレスポンス署名連携依頼電文８０の宛先８１には、証明書検証サーバ１１3のホスト名であるcvs11-3が設定される。
【００５９】
中継情報８２には、送信元のレスポンス署名連携依頼電文８０を中継した証明書検証サーバ１１のＩＰアドレス/ホスト名は設定される。例えば、図５で示した証明書検証サーバ１１2から証明書検証サーバ１１3へ送信されるレスポンス署名連携依頼電文８０の中継情報８２には、証明書検証サーバ１１2のホスト名であるcvs11-2が設定される。なお、中継する証明書検証サーバ１１が複数存在する場合には、中継情報８２には複数の値が設定される。
【００６０】
送信元８３には、最初にレスポンス署名連携依頼電文８０を送信する証明書検証サーバ１１のＩＰアドレス/ホスト名が設定される。例えば、図５で示した証明書検証サーバ１１2から証明書検証サーバ１１3へ送信されるレスポンス署名連携依頼電文８０の中継情報８２には、証明書検証サーバ１１1のホスト名であるcvs11-1が設定される。
【００６１】
また、暗号装置管理部３５は、宛先８１、中継情報８２、および送信元８３に設定するための情報を、暗号装置管理テーブル１００の証明書検証サーバのＩＰアドレス/ホスト名１０２の項目から取得する。
【００６２】
続けて、鍵情報８４には、署名演算で指定する秘密鍵の鍵ＩＤ（ＩＤｅｎｔｉｆｉｅｒ）が、署名アルゴリズム８５には、署名演算で指定する署名アルゴリズムのＯＩＤ（Ｏｂｊｅｃｔ  ＩＤｅｎｔｉｆｉｅｒ）が、署名対象データ８６には、送信元の証明書検証サーバが生成したレスポンスデータが設定される。
【００６３】
鍵情報８４、署名アルゴリズム８５、署名対象データ８６の設定値に関して、最初に生成されるレスポンス署名連携依頼電文８０であれば、暗号装置管理部３５は、送信元の証明書検証サーバ１１のレスポンス生成部３３が指定した値を設定する。また、中継する証明書検証サーバ１１が生成するレスポンス署名連携依頼電文８０であれば、中継する証明書検証サーバ１１に送信された、１つ前のレスポンス署名連携依頼電文８０に設定された値と同一の値を設定する。
【００６４】
なお、図１で構成する、複数の暗号装置１２には、同一の鍵ＩＤが割り振られた秘密鍵が格納されていることを想定する。
【００６５】
図９に示すレスポンス署名連携応答電文９０は、証明書検証サーバ１１が、レスポンス署名連携依頼電文８０の送信元８３に記載された証明書検証サーバ１１に対して、レスポンス署名を応答する際に、暗号装置管理部３５の暗号装置連携機能３５３によって、生成される。また、宛先９１、中継情報９２、送信元９３、結果コード９４、署名値９５、証明書９６から構成されている。それぞれに対して、フィールド名、設定値、必須の項目が存在する。
【００６６】
宛先９１には、レスポンス署名連携依頼電文８０の送信元に設定された証明書検証サーバ１１のＩＰアドレス/ホスト名が設定される。例えば、図５で示した証明書検証サーバ１１3から証明書検証サーバ１１1へ送信されるレスポンス署名連携応答電文９０の宛先９１には、証明書検証サーバ１１1のホスト名であるcvs11-1が設定される。
【００６７】
中継情報９２には、レスポンス署名連携依頼電文８０の中継情報に設定された証明書検証サーバ１１のＩＰアドレス/ホスト名が設定される。例えば、図５で示した証明書検証サーバ１１3から証明書検証サーバ１１1へ送信されるレスポンス署名連携応答電文９０の中継情報９２には、証明書検証サーバ１１2のホスト名であるcvs11-2が設定される。なお、中継する証明書検証サーバ１１が複数存在する場合には、中継情報９２には複数の値が設定される。
【００６８】
送信元９３には、レスポンス署名処理を実行してレスポンス署名連携応答電文９０を送信する証明書検証サーバ１１のＩＰアドレス/ホスト名が設定される。例えば、図５で示した証明書検証サーバ１１3から証明書検証サーバ１１1へ送信されるレスポンス署名連携応答電文９０の中送信元９３には、証明書検証サーバ１１3のホスト名であるcvs11-3が設定される。
【００６９】
暗号装置管理部３５は、宛先９１、中継情報９２、および送信元９３に設定するための情報を、暗号装置管理テーブル１００の証明書検証サーバのＩＰアドレス/ホスト名１０２の項目から取得する。
【００７０】
続けて、結果コード９４には、レスポンス署名処理の結果コードが記載される。レスポンス署名処理が正常に終了した場合には「０」を、レスポンス署名処理に失敗し、レスポンス署名を連携可能な証明書検証サーバ１１が存在しないときなど、異常に終了した場合には「１」を設定する。
【００７１】
署名値９５には、連携した暗号装置１２によって生成されたレスポンス署名値が記載される。なお、結果コード９４の設定値が「１」の場合には、署名値９５の設定値は、省略される。
【００７２】
証明書９６には、レスポンス署名に利用した秘密鍵に対応する公開鍵証明書のデータが設定される。暗号装置管理部３５は、証明書保持部３９から、レスポンス署名に利用した秘密鍵に対応する公開鍵証明書を取得する。なお、結果コード９４の設定値が「１」の場合には、証明書９６の設定値は、省略される。
【００７３】
次には、図１０を用いて、レスポンス署名を連携する証明書検証サーバ１１の情報や、証明書検証サーバ１１に接続する暗号装置１２の稼動情報を管理するための暗号装置管理テーブル１００を説明する。
【００７４】
暗号装置管理テーブル１００は、入出力部３０ｄを介して管理者によって、編集されても良いし、また、暗号装置管理部３５や管理部３７によって、編集されても良い。
【００７５】
証明書検証サーバ名１０１の列には、図１の検証システムを構成する証明書検証サーバ１１を識別するための名前が記載される。なお、自身の証明書検証サーバ１１に関しては、証明書検証サーバ名１０１の列の１行目に記載したり、フラグを記載したりするなど、自身の証明書検証サーバ１１であることを明確にする。
【００７６】
証明書検証サーバのＩＰアドレス/ホスト名１０２の列には、証明書検証サーバ名１０１の列に記載した証明書検証サーバ１１に対応するＩＰアドレス/ホスト名が記載される。
【００７７】
暗号装置名１０３の列には、証明書検証サーバ名１０１の列に記載した証明書検証サーバ１１に接続された暗号装置１２を識別するための名前が記載される。一つの証明書検証サーバ１１に対して、複数の暗号装置１２が接続されていた場合には、該当する暗号装置名１０３の列に、複数の値が設定される。
【００７８】
稼動状態１０４の列には、暗号装置名１０３の列に記載した、暗号装置１２の稼動状態（正常、あるいは、異常）が記載される。
【００７９】
次に、図１１を用いて、暗号装置監視部３４による暗号装置１２の監視や、暗号装置管理部３５による暗号装置１２の障害検出を実施するために必要な情報が記載された暗号装置監視設定ファイル１１０を説明する。
【００８０】
暗号装置監視設定ファイル１１０は、入出力部３０ｄを介して管理者によって、編集されても良い、管理部３７によって、編集されても良い。
【００８１】
間隔１１１には、暗号装置監視部３４が暗号装置を監視する間隔が設定される。設定された間隔で、管理部３７から暗号装置監視部３４へ定期タイマーが通知され、暗号装置監視部３４を実行する。
【００８２】
ＡＰＩ１１２には、監視対象となる、暗号装置１２のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍ Ｉｎｔｅｒｆａｃｅ）が設定される。例えば、暗号装置１２へのアクセスを開始するための初期処理、暗号装置１２が管理する鍵を検索するための鍵検索処理、指定した秘密鍵で署名演算を行うための署名処理、暗号装置１２へのアクセスを終了するための終了処理、に関するＡＰＩが設定される。なお、設定値は、署名生成に必要なＡＰＩに限定されず、暗号装置１２が装備する機能の中から、管理者が監視する必要があると判断した機能を選択して、ＡＰＩ１１２に設定する。
【００８３】
鍵情報１１３には、暗号装置１２が管理する秘密鍵の鍵ＩＤが設定される。
【００８４】
署名値検証ライブラリ１１４には、暗号装置管理部３５が暗号装置アクセス部３６から受け取った署名値を検証するために必要なライブラリのファイルパスが設定される。
【００８５】
次に、図１２、図１３、図１４、図１５、図１６、図１７を用いて、暗号装置１２の障害検出およびその対策を行う処理について説明する。
【００８６】
図１２は、暗号装置管理部３５が、レスポンス生成部３３から依頼されたレスポンス署名の生成中に、暗号装置１２の障害検出を実施する際の処理を示す。
【００８７】
レスポンス生成部３３は、制御部３１からレスポンス生成依頼を受信すると（ステップＳ１２０１）、検証部３２が生成した有効性検証結果を含むレスポンスデータを生成する（ステップＳ１２０２）。さらに、レスポンス生成部３３は、レスポンスデータに対するレスポンス署名依頼を暗号装置管理部３５へ送信する（ステップＳ１２０３）。レスポンス署名依頼の中には、署名対象であるレスポンスデータと、署名に利用する秘密鍵の鍵ＩＤと、署名アルゴリズムを含む。
【００８８】
暗号装置管理部３５の署名処理中継機能３５１は、レスポンス署名依頼を受信すると（ステップＳ１２０４）、レスポンス署名を生成するための処理（ＡからＢ）を実行する。なお、詳細については、図１４で述べる。
【００８９】
ＡからＢの処理の結果、レスポンス署名に失敗した場合には（ステップＳ１２０５でＮｏ）、署名処理中継機能３５１は、暗号装置連携機能３５３へ暗号装置連携依頼を、送信する（ステップＳ１２０６）。なお、暗号装置連携依頼には、ステップＳ１２０３のレスポンス署名依頼と同様の内容を含む。暗号装置連携機能３５３は、暗号装置連携依頼を受信すると（ステップＳ１２０７）、連携するための処理（ＣからＤ）を実行する。なお、詳細については、図１６および図１７で述べる。
【００９０】
暗号装置連携機能３５３は、ＣからＤの処理の結果を、暗号装置連携応答として、署名処理中継機能３５１に送信する（ステップＳ１２０８）。署名処理中継機能３５１は、暗号装置連携応答を受信して内容を解析する（ステップＳ１２０９）。そして、暗号装置連携に成功した場合（ステップＳ１２１０でＹｅｓ）、署名処理中継機能３５１は、ステップＳ１２１２へ進む。失敗した場合（ステップＳ１２１０でＮｏ）には、署名処理中継機能３５１は、エラーメッセージを作成する（ステップＳ１２１１）。自身の証明書検証サーバ１１に接続する暗号装置１２あるいは、連携した暗号装置１２によって、レスポンス署名生成に成功した場合（ステップＳ１２０５でＹｅｓ、およびステップＳ１２１０でＹｅｓ）には、署名処理中継機能３５１は、暗号装置連携応答から、レスポンス署名値と証明書を取得する（ステップＳ１２１２）。署名処理中継機能３５１は、ステップＳ１２１１やステップＳ１２１２で生成したメッセージをレスポンス署名応答として、レスポンス生成部３３へ送信する（ステップＳ１２１３）。レスポンス生成部３３は、レスポンス署名応答を受信し、処理を終了する（ステップＳ１２１４）。
【００９１】
図１３は、暗号装置監視部３４が、暗号装置１２の監視処理中に暗号装置１２の障害検出を実施する際の処理を示す。
【００９２】
暗号装置監視部３４は、前回暗号装置監視部３４が暗号装置１２の監視を実行した時刻から、暗号装置監視設定ファイル１１０に設定した間隔１１１の時間が経過した場合あるいは、管理部３７より、起動/停止や鍵情報変更等のイベントの通知を受信した場合（ステップＳ１３０１でＹｅｓ）には、ステップＳ１３０２以降の処理を実施する。設定間隔の時間を経過していない場合あるいは、イベント通知を受信していない場合（ステップＳ１３０１でＮｏ）には、暗号装置監視部３４は、待機する。
【００９３】
監視処理の最初に、暗号装置監視部３４は、暗号装置１２へアクセスするための初期処理を行う（ステップＳ１３０２）。具体的には、図１５で示すステップＳ１５０５からステップＳ１５０８までの処理と同一である。さらに、暗号装置監視部３４は、暗号装置監視設定ファイル１１０の鍵情報１１３から、１つ目の秘密鍵の情報を取得し（ステップＳ１３０３）、ステップＳ１３０３で選択した秘密鍵による署名依頼を暗号装置管理部３５へ送信する。なお、署名対象データは、予め、暗号装置監視部３４で設定しておく。
【００９４】
暗号装置管理部３５は、暗号装置監視部３４から署名依頼を受信すると（ステップＳ１３０５）、署名を生成するための処理（ＡからＢ）を実行する。なお、詳細については、図１４で述べる。
【００９５】
ＡからＢの処理の結果、署名生成に失敗した場合には（ステップＳ１３０６でＮｏ）、署名処理中継機能３５１は、暗号装置監視部３４が監視している暗号装置１２に異常が発生していることを、他の証明書検証サーバ１１に通知するために、署名値検証機能３５２へ暗号装置連携依頼を、送信する（ステップＳ１３０７）。
【００９６】
暗号装置連携機能３５３は、暗号装置連携依頼を受信すると（ステップＳ１３０８）、暗号装置管理テーブル１００の証明書検証サーバ名１０１に記載された証明書検証サーバ１１に障害発生情報通知を送信する（ステップＳ１３０９）。送信するための情報は、暗号装置管理テーブル１００の証明書検証サーバ名１０１から取得する。このとき、暗号装置管理テーブル１００の証明書検証サーバ名１０１から自身の証明書検証サーバ１１は除外する。暗号装置連携機能３５３は、障害発生情報を通知した旨を暗号装置連携応答として、署名処理中継機能３５１に送信する（ステップＳ１３１０）。暗号装置中継機能３５１は暗号装置連携応答を受信し、内容を解析する（ステップＳ１３１１）。
【００９７】
次に、署名処理中継機能３５１は、ステップＳ１３０６で署名生成に成功した場合（ステップＳ１３０６でＹｅｓ）は、署名生成に成功した旨を、失敗した場合には（ステップＳ１３０６でＮｏ）署名生成に失敗した旨を暗号装置監視部３４へ送信する（ステップＳ１３１２）。
【００９８】
暗号装置監視部３４は、暗号装置管理部３５から、署名応答を受信すると（ステップＳ１３１３）、内容を解析し、署名に成功しているか確認する。署名処理に成功している場合には（ステップＳ１３１４でＹｅｓ）、暗号装置監視部３４は、暗号装置監視設定ファイル１１０の鍵情報１１３を参照し、鍵情報１１２の最後の設定値に達しているか判定する。その結果、最後に達している場合（ステップＳ１３１５でＹｅｓ）には、暗号装置監視部３４は、ステップＳ１３１６に進む。また、署名生成に失敗している場合（ステップＳ１３１４でＮｏ）にも、暗号装置監視部３４は、ステップＳ１３１６へ進む。ステップＳ１３１６では、暗号装置監視部３４は、暗号装置１２へのアクセスを終了するための終了処理を実施する。具体的には、図１５で示すステップＳ１５０１からステップＳ１５０４までの処理を同一である。
【００９９】
また、暗号装置監視設定ファイル１１０の鍵情報１１３の最後に達していない場合（ステップＳ１３１５でＮｏ）には、暗号装置監視部３４は、暗号装置監視設定ファイル１１０の鍵情報１１３の次の行の鍵情報を選択し（ステップＳ１３１７）、選択した秘密鍵による署名を依頼するため、ステップＳ１３０４へ戻る。
【０１００】
次に、図１２や図１３で省略した、署名処理中継機能３５１による署名処理および障害検出処理（ＡからＢ）について、図１４で詳細を述べる。
【０１０１】
署名処理中継機能３５１は、レスポンス生成部３３や暗号装置監視部３４から、署名依頼を受信する（ステップＳ１２０４およびステップＳ１３０５）と、署名依頼に指定された秘密鍵を検索するために、暗号装置アクセス部３６へ、鍵検索処理を命令する（ステップＳ１４０１）。暗号装置アクセス部３６は、鍵検索処理の命令を署名処理中継機能３５１から受けると、暗号装置１２が処理可能なコマンドに変換して、暗号装置１２へ鍵検索処理を命令する（ステップＳ１４０２）。さらに、暗号装置アクセス部３６は、暗号装置１２から得られた鍵検索処理結果を署名処理中継機能３５１に応答する（ステップＳ１４０３）。
【０１０２】
署名処理中継機能３５１は、暗号装置アクセス部３６から、鍵検索処理結果を受信すると（ステップＳ１４０４）、鍵検索処理結果に含まれるリターンコードなどを解析し、正常に処理が完了しているか、確認する。その結果、正常に完了していない場合（ステップＳ１４０５でＮｏ）は、署名処理中継機能３５１は、鍵検索処理が１回目であるか判定し、１回目であれば（ステップＳ１４０６でＹｅｓ）、ステップＳ１４１３へ進んで、リトライ処理を実施する。一方、すでにリトライ処理を実施している場合には（ステップＳ１４０６でＮｏ）、署名処理中継機能３５１は、ステップＳ１４１７へ進む。
【０１０３】
ステップＳ１４０５で、鍵検索処理が正常に完了している場合は（ステップＳ１４０５でＹｅｓ）、署名処理中継機能３５１は、ステップＳ１４０１で得られた秘密鍵を利用した署名処理を命令する（ステップＳ１４０７）。ステップＳ１４０７で指定する、署名対象データや署名アルゴリズムは、ステップＳ１２０４およびステップＳ１３０５で、レスポンス生成部３３や暗号装置監視部３４から受信したメッセージに含まれている。
【０１０４】
暗号装置アクセス部３６は、署名処理の命令を署名処理中継機能３５１から受けると、暗号装置１２が処理可能なコマンドに変換して、暗号装置１２へ署名処理を命令する（ステップＳ１４０８）。さらに、暗号装置アクセス部３６は、暗号装置１２から得られた署名処理結果を署名処理中継機能３５１に応答する（ステップＳ１４０９）。
【０１０５】
署名処理中継機能３５１は、暗号装置アクセス部３６から、署名処理結果を受信すると（ステップＳ１４１０）、署名処理結果に含まれるリターンコードなどを解析し、正常に処理が完了しているか、確認する。その結果、正常に完了していない場合（ステップＳ１４１１でＮｏ）は、  署名処理中継機能３５１は、署名処理が１回目であるか判定し、１回目であれば（ステップＳ１４１２でＹｅｓ）、ステップＳ１４１３へ進み、リトライ処理を実施する。一方、すでにリトライ処理を実施している場合には（ステップＳ１４１２でＮｏ）、署名処理中継機能３５１は、ステップＳ１４１７へ進む。
【０１０６】
ステップＳ１４１１で、署名処理が正常に完了している場合は（ステップＳ１４１１でＹｅｓ）、署名処理中継機能３５１は、署名値検証機能３５２へ、ステップＳ１４１０で得られた署名値の検証を署名値検証機能３５２へ依頼する（ステップＳ１４１４）。署名値検証機能３５２は、署名処理中継機能３５１から受付けた署名値を、暗号装置監視設定ファイル１１０の署名値検証ライブラリ１１４に設定された署名値検証ライブラリで検証し、その結果を署名処理中継機能３５１に返却する（ステップＳ１４１５）。
【０１０７】
署名処理中継機能３５１は、署名値検証機能３５２から、署名値検証結果を受信すると、検証に成功しているか確認する。検証に成功している場合（ステップＳ１４１５でＹｅｓ）には、署名処理中継機能３５１は、Ｂへ進み、ステップＳ１２０５およびステップＳ１３０６に戻る。
【０１０８】
一方、ステップＳ１４１３のリトライ処理後も鍵検索処理や署名処理に失敗する場合（ステップＳ１４０６およびステップＳ１４１２でＮｏ）や、署名検証に失敗する場合（ステップＳ１４１６でＮｏ）は、署名処理中継機能３５１は、管理部３７に暗号装置１２の異常を通知する（ステップＳ１４１７）。さらに、署名処理中継機能３５１は、暗号装置管理テーブル１００にアクセスし、異常を検出した暗号装置１２に該当する暗号装置名１０３を検索して、稼動状態１０４を「異常」に変更する（ステップＳ１４１８）。
【０１０９】
以上のように、図１２、図１３、図１４の処理によって、暗号装置１２の障害を検出することができる。
【０１１０】
次に、図１５で、図１３で実施するリトライ処理（ステップＳ１４１３）について、詳細を述べる。
【０１１１】
署名処理中継機能３５１は、鍵検索処理や、署名処理に失敗すると、ステップＳ１５０１からステップＳ１５０８を実施する。最初に、署名処理中継機能３５１は、暗号装置アクセス部３６へ、暗号装置１２のアクセスを終了するための終了処理命令する（ステップＳ１５０１）。
【０１１２】
暗号装置管理部３５から終了処理命令を受けた暗号装置アクセス部３６は、暗号装置１２が処理可能なコマンドに変換して、暗号装置１２へ終了処理を命令し（ステップＳ１５０２）、その結果を暗号装置管理部３５へ応答する（ステップＳ１５０３）。
【０１１３】
暗号装置管理部３５の署名処理中継機能３５１は、暗号装置アクセス部３６から終了処理結果を受信すると、正常に処理が終了していることを確認する（ステップＳ１５０４）。正常に処理が完了している場合には、署名処理中継機能３５１は、暗号装置アクセス部３６へ、暗号装置１２のアクセスを再び開始するための初期処理命令する（ステップＳ１５０５）。
【０１１４】
暗号装置管理部３５から初期処理命令を受けた暗号装置アクセス部３６は、暗号装置１２が処理可能なコマンドに変換して、暗号装置１２へ初期処理を命令し（ステップＳ１５０６）、その結果を暗号装置管理部３５へ応答する（ステップＳ１５０７）。
【０１１５】
暗号装置管理部３５の署名処理中継機能３５１は、暗号装置アクセス部３６から初期処理結果を受信すると、正常に処理が終了していることを確認する（ステップＳ１５０８）。
【０１１６】
なお、図１５では、正常系のみを記載している。初期処理や終了処理においても異常が発生した場合は、ステップＳ１４１７やステップＳ１４１８と同様に、管理部３７へ異常を通知し、さらに、該当する暗号装置１２について、暗号装置管理テーブル１００の稼動状態１０４を、「異常」に変更する。
【０１１７】
次に、図１６、図１７を用いて、レスポンス生成中に発生した暗号装置１２の異常に対策するために、暗号装置連携機能３５３が実施する署名連携処理（ＣからＤ）について、詳細を述べる。
【０１１８】
暗号装置連携機能３５３は、図１２のステップＳ１２０７で署名処理中継機能３５１から暗号装置連携依頼を受信すると、暗号装置管理テーブル１００の証明書検証サーバ名１０１から、自身の証明書検証サーバ１１を除いた、証明書検証サーバ１１を、上から順に選択する。暗号装置管理テーブル１００の証明書検証サーバ名１０１は、優先度あるいは、証明書検証サーバ名１０１の名前順など、管理者の定めた基準に従って、ソートされているものとする。
【０１１９】
次に、暗号装置連携機能３５３は、ステップＳ１６０１で選択した証明書検証サーバ名１０１の行に対応する稼動状態１０４の設定値を取得し、ステップＳ１６０１で選択した証明書検証サーバ１１に接続された暗号装置１２の稼動状態が正常であるかを判定する。その結果、正常である場合（ステップＳ１６０２でＹｅｓ）には、暗号装置連携機能３５３は、レスポンス署名連携依頼電文８０を、ネットワーク１４を介して、ステップＳ１６０１で選択した証明書検証サーバ１１に送信し、連携結果をレスポンス署名連携応答電文９０として受信する（ステップＳ１６０４）。さらに、暗号装置連携機能３５３は、レスポンス署名連携応答電文９０を解析して、暗号装置連携応答を作成し、図１２のステップＳ１２０８へ進む。なお、レスポンス署名連携依頼電文８０を受けた証明書検証サーバ１１の連携処理（ＥからＦ）については、図１７で詳しく述べる。
【０１２０】
一方、ステップＳ１６０２で、選択した証明書検証サーバ名１０１に接続する暗号装置名１０３の稼動状態１０４が「異常」の場合（ステップＳ１６０２でＮｏ）には、選択した証明書検証サーバ１１が、証明書検証サーバ名１０１の最後の行でないことを確認する。最後の行でなければ（ステップＳ１６０５でＮｏ）、暗号装置連携機能３５３は、ステップＳ１６０１に戻り、証明書検証サーバ名１０１から、次の行の証明書検証サーバ１１を選択する。
【０１２１】
最後に到達していた場合（ステップＳ１６０５でＹｅｓ）には、暗号装置連携機能３５３は、暗号装置連携応答をエラーとして作成し、図１２のステップＳ１２０８へ進む。
【０１２２】
次に、図１７を用いて、図１６のレスポンス署名連携依頼電文８０を受けた証明書検証サーバ１１がレスポンス署名連携応答電文９０を応答するまでの処理（ＥからＦ）について、詳細を述べる。なお、レスポンス署名連携依頼電文８０およびレスポンス署名連携応答電文９０の詳細については、図８や図９に示している。
【０１２３】
暗号装置連携機能３５３は、レスポンス署名連携依頼電文８０を受信すると（ステップＳ１７０１）、レスポンス署名連携依頼電文８０を解析して、署名に利用する鍵情報、署名アルゴリズム、署名対象データを取得する（ステップＳ１７０２）。暗号装置連携機能３５３は、ステップＳ１７０２で取得した情報を含む署名依頼を、署名処理中継機能３５１に送信する。署名依頼を受信（ステップＳ１７０４）した署名処理中継機能３５１は、図１４で示した署名処理（ＡからＢ）を実施し、その結果を、暗号装置連携機能３５３へ送信する（ステップＳ１７０５）。
【０１２４】
暗号装置連携機能３５３は、署名処理中継機能３５１から署名応答を受信（ステップＳ１７０６）すると、署名応答を解析し、レスポンス署名処理に成功しているか判定する。その結果、成功している場合には、暗号装置連携機能３５３は、レスポンス署名連携応答電文９０を作成し、宛先９１にステップＳ１７０１で受信した送信元の情報を、送信元９３に自身の証明書検証サーバ１１の情報を、結果コード９４に正常である「０」を、署名値９５や証明書９６にステップＳ１７０５から取得した情報を設定する（ステップＳ１７０８）。
【０１２５】
失敗している場合（ステップＳ１７０７でＮｏ）は、レスポンス署名連携依頼電文８０を受信した証明書検証サーバ１１においても暗号装置１２に異常が発生していることから、暗号装置連携機能３５３は、さらに他の証明書検証サーバ１１に連携を依頼する。具体的には、暗号装置連携機能３５３は、ステップＳ１６０１、ステップＳ１６０２と同様の処理を行い、暗号装置管理テーブル１００の証明書検証サーバ名１０１から、稼動状態１０４が正常と設定されている証明書検証サーバ１１を選択する（ステップＳ１７０９）。さらに、暗号装置連携機能３５３は、ステップＳ１７０９で選択した証明書検証サーバ１１が、ステップＳ１７０１で受信したレスポンス署名連携依頼電文８０の送信元と中継情報に存在していなか確認する。存在しない場合（ステップＳ１７１０）には、暗号装置連携機能３５３は、ステップＳ１７０１で受信したレスポンス署名連携依頼電文８０の中継情報８２に、自身の証明書検証サーバ１１の情報を追記し、また、宛先８１をステップＳ１７０９で選択した証明書検証サーバ１１の情報に変更して、新たなレスポンス署名連携依頼電文８０を生成する。そして、暗号装置連携機能３５３は、ネットワーク１４を介して、レスポンス署名連携依頼電文８０を、選択した証明書検証サーバ１１へ送信する（ステップＳ１７１１）。
【０１２６】
選択した証明書検証サーバ１１が、ステップＳ１７０１から受信したレスポンス署名連携依頼電文８０の送信元と中継情報に存在している場合（ステップＳ１７１０でＹｅｓ）には、選択した証明書検証サーバ１１の暗号装置１２に障害が発生していることになる。そのため、ステップＳ１７０９で選択した証明書検証サーバ１１が、証明書検証サーバ名１０１の最後の行でなければ（ステップＳ１７１２でＮｏ）、暗号装置連携機能３５３は、ステップＳ１７０９へ戻り、証明書検証サーバ名１０１から、次の行の証明書検証サーバ１１を選択する。
【０１２７】
一方、証明書検証サーバ名１０１の最後の行であれば（ステップＳ１７１２でＹｅｓ）、レスポンス署名を連携可能な証明書検証サーバ１１が存在しないことになるので、暗号装置連携機能３５３は、レスポンス署名連携応答電文９０を作成し、結果コード９４に異常であることを示す「１」を設定する（ステップＳ１７１３）。
【０１２８】
そして、暗号装置連携機能３５３は、ステップＳ１７０８やステップＳ１７１３で生成したレスポンス署名連携応答電文９０を、ネットワーク１４を介して、ステップＳ１７０９で選択した証明書検証サーバ１１へ送信する（ステップＳ１７１４）。
【０１２９】
以上、図１６、図１７の処理によって、証明書検証サーバ１１がレスポンス生成中に暗号装置１２の障害を検出した場合でも、他の証明書検証サーバ１１の連携によって、レスポンス署名を取得し、端末装置１３に、電子署名付きの検証応答を返却することが可能である。
【０１３０】
以上、本発明の実施例を説明した。本実施例によれば、検出できない種類の暗号装置の異常を検出して、証明書の有効性検証処理の継続と正常な証明書検証応答を可能とすると共に、検証者から依頼された有効性検証処理中に暗号装置の異常が検出された場合にも、証明書の検証応答を正常に応答することを可能とする。これにより、検証者に有効性確認処理結果をエラーで返却することを防止できる。
【符号の説明】
【０１３１】
１１・・・証明書検証サーバ、１２・・・暗号装置、１３・・・端末装置、１４・・・ネットワーク、２０・・・内部通信線、２１・・・ＣＰＵ、２２・・・メモリ、２３・・・外部記憶装置、２４・・・通信装置、２５・・・入力装置、２６・・出力装置、２７・・・読取装置、２８・・・可搬性を有する記憶媒体。
【図１】
2014053754.tif 000003
【図２】
2014053754.tif 000004
【図３】
2014053754.tif 000005
【図４】
2014053754.tif 000006
【図５】
2014053754.tif 000007
【図６】
2014053754.tif 000008
【図７】
2014053754.tif 000009
【図８】
2014053754.tif 000010
【図９】
2014053754.tif 000011
【図１０】
2014053754.tif 000012
【図１１】
2014053754.tif 000013
【図１２】
2014053754.tif 000014
【図１３】
2014053754.tif 000015
【図１４】
2014053754.tif 000016
【図１５】
2014053754.tif 000017
【図１６】
2014053754.tif 000018
【図１７】
2014053754.tif 000019