JP5346111B2 - Verification server, program, and verification method - Google Patents

Verification server, program, and verification method Download PDF

Info

Publication number
JP5346111B2
JP5346111B2 JP2012163935A JP2012163935A JP5346111B2 JP 5346111 B2 JP5346111 B2 JP 5346111B2 JP 2012163935 A JP2012163935 A JP 2012163935A JP 2012163935 A JP2012163935 A JP 2012163935A JP 5346111 B2 JP5346111 B2 JP 5346111B2
Authority
JP
Japan
Prior art keywords
verification
certificate
cryptographic module
signature
cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012163935A
Other languages
Japanese (ja)
Other versions
JP2012213229A (en
Inventor
洋子 橋本
孝宏 藤城
昌彦 古屋
政美 鵜澤
慎吾 羽根
茜 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012163935A priority Critical patent/JP5346111B2/en
Publication of JP2012213229A publication Critical patent/JP2012213229A/en
Application granted granted Critical
Publication of JP5346111B2 publication Critical patent/JP5346111B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、証明書の検証処理を行う技術に関する。   The present invention relates to a technique for performing certificate verification processing.

電子文書など電子データを送付する際に、対象となる電子データに対して、送信者の電子署名(以下、「署名」ともいう)と公開鍵証明書(以下、「証明書」ともいう)を添付することが行われる。このような署名及び証明書が添付された電子データを受信した受信者側では、添付された署名と証明書の検証を行い、送付されたデータが改ざんされていないこと、および、確かに送信者本人から送られてきた電子データであること、を確認する。   When sending electronic data such as electronic documents, the sender's electronic signature (hereinafter also referred to as “signature”) and public key certificate (hereinafter also referred to as “certificate”) are applied to the target electronic data. Attaching is done. The receiver who receives the electronic data attached with such a signature and certificate verifies the attached signature and certificate, confirms that the sent data has not been tampered with, and is surely the sender. Confirm that it is electronic data sent from the person.

公開鍵証明書の発行と検証は、公開鍵基盤において行われ、その標準仕様はRFC5280(Internet X.509 Public Key Infrastructure Certificate and CRL Profile)等にて規定されている。このうち、証明書の検証については、RFC5280の6章(Certificate Path Validation)に規定されているように、受信者(以下「検証者」ともいう)は自身の信頼する認証局(Certificate Authority:以下「CA」ともいう)の証明書を起点として、検証対象の証明書までの認証パスの構築と、構築した当該認証パスの検証を実施する。   The issuance and verification of public key certificates are performed on a public key infrastructure, and the standard specifications thereof are defined in RFC5280 (Internet X.509 Public Key Infrastructure Certificate and CRL Profile) and the like. Among these, for certificate validation, as specified in RFC 6280, Chapter 6 (Certificate Path Validation), the recipient (hereinafter also referred to as “verifier”) is the certificate authority (Certificate Authority) A certification path up to a certificate to be verified is constructed starting from a certificate (also referred to as “CA”) and the constructed certification path is verified.

証明書の検証処理は、認証局が多数存在し、それぞれが相互認証で接続するような複雑な構成である場合、認証パスの構築および認証パスの検証が複雑な処理となってしまう。このため、検証者の装置の代わりに証明書の検証処理を行い、検証結果を検証者に送信するサービスを提供するサーバ(以下「検証サーバ」という)が使用されており、その標準プロトコルはRFC5055(Server-Based Certificate Validation Protocol)にて規定されている。検証サーバは、検証者から証明書の検証要求を受け付けると、当該検証者の信頼する認証局と当該検証対象証明書との間の認証パスの構築と、構築した当該認証パスの検証を行い、その結果に対して、当該検証サーバの署名及び証明書を付与して、検証者へ送信する。検証者は、当該検証結果を検証サーバより受け取ったら、当該検証結果に添付された当該検証サーバの署名および証明書の検証を行い、当該検証結果が信頼できるものであることを確認する。   In the certificate verification process, when there are a large number of certificate authorities and each has a complicated configuration in which they are connected by mutual authentication, the construction of the certification path and the verification of the certification path are complicated processes. For this reason, a server (hereinafter referred to as “verification server”) that provides a service for performing certificate verification processing and transmitting the verification result to the verifier is used instead of the verifier device, and its standard protocol is RFC5055. (Server-Based Certificate Validation Protocol) When the verification server receives the certificate verification request from the verifier, the verification server constructs the certification path between the certification authority trusted by the verifier and the verification target certificate, and verifies the constructed certification path. A signature and a certificate of the verification server are attached to the result and transmitted to the verifier. When the verifier receives the verification result from the verification server, the verifier verifies the signature and certificate of the verification server attached to the verification result, and confirms that the verification result is reliable.

そして、このような検証サーバにおいては、認証パスの検証処理における証明書や証明書失効リスト(Certificate Revocation List:以下「CRL」という)の署名検証処理や、検証結果に対する検証サーバの署名生成処理等の、暗号演算を実施する必要がある。このような暗号演算の処理負担を軽減するために、非特許文献1、2、3に記載されているような機器(Hardware Security Module:以下「HSM」という)が使用されている。   In such a verification server, a signature verification process of a certificate or a certificate revocation list (hereinafter referred to as “CRL”) in a verification process of a certification path, a signature generation process of a verification server for a verification result, etc. It is necessary to carry out cryptographic operations. In order to reduce the processing load of such cryptographic operations, devices (Hardware Security Module: hereinafter referred to as “HSM”) as described in Non-Patent Documents 1, 2, and 3 are used.

SafeNet、"Luna SA 4.2"、[online]、SafeNet、P.1、[平成20年1月21日検索]、インターネット<http://www.safenet-inc.com/library/3/Luna_SA.pdf>SafeNet, "Luna SA 4.2", [online], SafeNet, P.1, [Search January 21, 2008], Internet <http://www.safenet-inc.com/library/3/Luna_SA .pdf> SafeNet、"Luna PCM 2.2"、[online]、SafeNet、P.1、[平成20年1月21日検索]、インターネット<http://www.safenet-inc.com/library/3/LunaPCM.pdf>SafeNet, "Luna PCM 2.2", [online], SafeNet, P.1, [Search January 21, 2008], Internet <http://www.safenet-inc.com/library/3/LunaPCM .pdf> nCipher、"netHSM"、[online]、nCipher、P.1、[平成20年1月21日検索]、インターネット<http://www.ncipher.com/uploads/resources/nethsm.pdf>nCipher, “netHSM”, [online], nCipher, P.M. 1. [Search January 21, 2008], Internet <http://www.ncipher.com/uploads/resources/nethsm.pdf>

上記非特許文献1、2、3のようなHSMを用いて、検証サーバにおける暗号演算処理を行う場合には、HSMの処理性能よりも検証サーバの処理性能が良い場合や膨大な検証要求を受け付けたような場合には、HSMでの処理がボトルネックとなってしまい、検証サーバ全体の処理性能が上がらないときがある。   When performing cryptographic operation processing in the verification server using the HSM as described in Non-Patent Documents 1, 2, and 3 above, the processing performance of the verification server is better than the processing performance of the HSM or a large number of verification requests are accepted. In such a case, the processing in the HSM becomes a bottleneck, and the processing performance of the entire verification server may not be improved.

そこで、本発明は、HSMを用いる検証サーバにおいて、検証要求を受け付けてから検証結果を応答するまでの時間を短くし、検証サーバの処理性能を向上することを目的とする。   Accordingly, an object of the present invention is to improve the processing performance of a verification server by shortening the time from receiving a verification request to responding a verification result in a verification server using HSM.

以上の課題を解決するため、本発明の一態様は、検証サーバにおいてHSM等の暗号モジュールを複数備えておき、最も負荷のかかっていない暗号モジュールを用いて暗号演算を行うようにする。
例えば、本発明は、証明書の検証処理を行う検証サーバであって、前記検証処理に含まれる暗号演算を行う複数の暗号モジュールと、制御部と、を備え、前記制御部は、前記暗号モジュールの負荷状態を調べる処理と、調べた負荷状態が最も軽い暗号モジュールを選択して、前記暗号演算を行う処理と、を行うこと、を特徴とする。
In order to solve the above problems, according to one embodiment of the present invention, a plurality of cryptographic modules such as HSM are provided in a verification server, and cryptographic computation is performed using a cryptographic module that is least loaded.
For example, the present invention is a verification server that performs certificate verification processing, and includes a plurality of cryptographic modules that perform cryptographic operations included in the verification processing, and a control unit, and the control unit includes the cryptographic module And a process of selecting the cryptographic module with the lightest load condition and performing the cryptographic operation.

また、以上の課題を解決するため、本発明の他の態様は、HSMの処理性能よりも、検証サーバの処理性能が明らかに良い場合に、検証サーバのソフトウェア暗号モジュールと、HSMとに、それぞれ、特定の処理を実施させる。
例えば、本発明は、HSMと接続された検証サーバで、証明書の検証要求の受付、認証パスの構築及び前記認証パスの検証を行う、検証サーバであって、ソフトウェア暗号モジュールを記憶する記憶部と、前記認証パス検証処理における、証明書、証明書失効リスト又はOCSPレスポンスの署名検証処理において、前記ソフトウェア暗号モジュールを用いて、前記証明書、証明書失効リスト又はOCSPレスポンスのハッシュ値を計算し、前記ソフトウェア暗号モジュールを用いて、証明対象の前記証明書、証明書失効リスト又はOCSPレスポンスの署名値を復号し、前記計算したハッシュ値と前記復号データとを比較することで、前記署名検証処理を行い、前記ソフトウェア暗号モジュールを用いて、前記署名検証結果のハッシュ値を計算し、前記署名検証結果のハッシュ値を、前記HSM及び該HSM内の秘密鍵を用いて暗号化し、署名値を生成する制御部と、を有することを特徴とする。
In order to solve the above problems, another aspect of the present invention provides a software encryption module of the verification server and an HSM, respectively, when the processing performance of the verification server is clearly better than that of the HSM. , To perform a specific process.
For example, the present invention is a verification server that accepts a certificate verification request, constructs an authentication path, and verifies the authentication path with a verification server connected to the HSM, and stores a software cryptographic module In the certification path verification process, in the signature verification process of the certificate, certificate revocation list, or OCSP response, the hash value of the certificate, certificate revocation list, or OCSP response is calculated using the software cryptographic module. The signature verification process is performed by decrypting the signature value of the certificate to be certified, the certificate revocation list, or the OCSP response using the software cryptographic module, and comparing the calculated hash value with the decrypted data. And using the software cryptographic module, the hash value of the signature verification result is Calculated by the hash value of the signature verification result, and encrypted using the private key of the HSM and within the HSM, and having a control unit for generating a signature value.

以上のように、本発明によれば、HSMを用いる検証サーバにおいて、検証要求を受け付けてから検証結果を応答するまでの時間を短くし、検証サーバの処理性能を向上することができる。   As described above, according to the present invention, in the verification server using the HSM, it is possible to shorten the time from receiving the verification request to responding the verification result, and to improve the processing performance of the verification server.

検証システムの概略図。Schematic of a verification system. 検証サーバの概略図。Schematic of a verification server. 暗号モジュールリストテーブルの概略図。Schematic diagram of a cryptographic module list table. 対応暗号アルゴリズムテーブルの概略図。Schematic of a corresponding encryption algorithm table. 負荷状態テーブルの概略図。Schematic of a load state table. コンピュータの概略図。Schematic diagram of a computer. 暗号モジュールの負荷状態を監視する処理を示すフローチャート。The flowchart which shows the process which monitors the load state of an encryption module. 検証サーバでの証明書の検証処理を示すフローチャート。The flowchart which shows the verification process of the certificate in a verification server. 証明書、CRL又はOCSPレスポンスの署名検証処理を示すフローチャート。The flowchart which shows the signature verification process of a certificate, a CRL, or an OCSP response. 検証サーバの秘密鍵による電子署名の生成処理を示すフローチャート。The flowchart which shows the production | generation process of the electronic signature by the private key of a verification server.

図1は、本発明の一実施形態である検証システム100の概略図である。   FIG. 1 is a schematic diagram of a verification system 100 according to an embodiment of the present invention.

図示するように、検証システム100は、端末装置110と、CA装置120と、検証サーバ130と、HSM150と、を備え、これらはネットワーク160を介して相互に情報の送受信を行うことができるようにされている。   As illustrated, the verification system 100 includes a terminal device 110, a CA device 120, a verification server 130, and an HSM 150 so that these can exchange information with each other via a network 160. Has been.

端末装置110は、ネットワーク160を介して、他の装置と通信を行い、特に、署名付きの電子文書を送受信する。   The terminal device 110 communicates with other devices via the network 160, and in particular, transmits and receives a signed electronic document.

そして、端末装置110は、他の装置から署名付き電子文書及び証明書を受信すると、当該署名付き電子文書の署名を、同時に受け取った証明書を用いて検証する。   When the terminal device 110 receives the signed electronic document and certificate from another device, the terminal device 110 verifies the signature of the signed electronic document using the received certificate at the same time.

さらに、端末装置110は、署名付き電子文書の署名検証に使用した当該証明書を検証するために、検証サーバ130に対して検証要求を送信する。当該検証要求には、端末装置110のオペレータであるユーザが信頼するCAのCA証明書と、検証対象の証明書と、が添付される。   Further, the terminal device 110 transmits a verification request to the verification server 130 in order to verify the certificate used for signature verification of the signed electronic document. A CA certificate trusted by the user who is the operator of the terminal device 110 and a certificate to be verified are attached to the verification request.

そして、端末装置110は、検証サーバ130から検証対象である証明書が有効である旨の検証結果を受信した場合に、当該検証対象の証明書が有効であり、署名付き電子文書が正当なものと扱い、必要に応じて出力部から署名付き電子文書の署名及び証明書の検証結果を出力する。   When the terminal device 110 receives a verification result that the verification target certificate is valid from the verification server 130, the verification target certificate is valid and the signed electronic document is valid. If necessary, the signature of the signed electronic document and the verification result of the certificate are output from the output unit.

CA装置120は、ネットワーク160を介して、証明書の発行依頼を受け付けると、これに対する証明書を作成し、郵送または通信により返信する。この際、CA装置120の秘密鍵で証明書に署名をする。   When the CA device 120 receives a certificate issuance request via the network 160, the CA device 120 creates a certificate for the request and sends it back by mail or communication. At this time, the certificate is signed with the private key of the CA device 120.

そして、CA装置120は、作成した証明書を証明書データベースに登録し、その発行先(つまり発行依頼元)の情報を発行先管理リストに登録して管理する。   The CA device 120 registers the created certificate in the certificate database, and registers and manages the information of the issue destination (that is, the issue request source) in the issue destination management list.

また、CA装置120は、ネットワーク160を介して、証明書の失効依頼を受け付けると、失効対象の証明書を証明書データベースから削除すると共に、当該証明書の発行先の情報を、発行先管理リストから削除する。   When the CA device 120 receives a certificate revocation request via the network 160, the CA device 120 deletes the certificate to be revoked from the certificate database and stores the issue destination information of the certificate in the issue destination management list. Delete from.

そして、CA装置120は、失効依頼により証明書データベースから削除した証明書のシリアルナンバーを記述した失効証明書リスト(CRL)を、定期的に作成して記憶しておく。なお、作成したCRLには、当該CA装置120が発行した証明書のうち、有効期限内にもかかわらず失効した証明書のシリアルナンバーと、当該証明書が失効した日時と、当該証明書が失効した理由と、がリストとして記述される。さらに、次回のCRL作成予定時刻が記述され、CA装置120の秘密鍵を用いて署名が付与される。   Then, the CA device 120 periodically creates and stores a revocation certificate list (CRL) that describes the serial number of the certificate deleted from the certificate database in response to the revocation request. In the created CRL, among the certificates issued by the CA device 120, the serial number of the certificate that has been revoked despite the expiration date, the date and time that the certificate has expired, and the certificate that has been revoked The reasons why are described as a list. Further, the next scheduled CRL creation time is described, and a signature is given using the secret key of the CA device 120.

また、CA装置120は、ネットワーク160を介して、他の装置よりCRL取得要求を受け取ると、記憶しているCRLを、ネットワーク160を介して、問い合わせをした他の装置に送信する。   When the CA device 120 receives a CRL acquisition request from another device via the network 160, the CA device 120 transmits the stored CRL to the other device that has made an inquiry via the network 160.

なお、CA装置120が証明書の失効情報を提供する方法としては、CRLを発行する例に限られず、例えば、OCSPレスポンダを用意して、証明書の失効情報を提供する場合もある。   The method of providing the certificate revocation information by the CA device 120 is not limited to the example of issuing a CRL. For example, an OCSP responder may be prepared to provide the certificate revocation information.

また、以上に記載した端末装置110と、CA装置120と、の数については、特に限定はない。   Moreover, there is no limitation in particular about the number of the terminal devices 110 described above and the CA device 120.

図2は、検証サーバ130の概略図である。   FIG. 2 is a schematic diagram of the verification server 130.

図示するように、検証サーバ130は、記憶部131と、制御部136と、入力部145と、出力部146と、通信部147と、I/F部148と、を備える。   As illustrated, the verification server 130 includes a storage unit 131, a control unit 136, an input unit 145, an output unit 146, a communication unit 147, and an I / F unit 148.

記憶部131は、設定情報記憶領域132と、証明書記憶領域133と、鍵管理情報記憶領域134と、を備える。   The storage unit 131 includes a setting information storage area 132, a certificate storage area 133, and a key management information storage area 134.

設定情報記憶領域132には、検証サーバ130が利用可能な暗号モジュールを特定する情報と、検証サーバ130において利用可能な暗号モジュールが対応する暗号アルゴリズムを特定する情報と、検証サーバ130において利用可能な暗号モジュールの負荷状態を特定する情報と、検証サーバ130が検証サービスを提供するのに必要な設定情報と、が記憶される。   In the setting information storage area 132, information for specifying a cryptographic module that can be used by the verification server 130, information for specifying a cryptographic algorithm corresponding to a cryptographic module that can be used by the verification server 130, and information that can be used by the verification server 130 Information for specifying the load state of the cryptographic module and setting information necessary for the verification server 130 to provide a verification service are stored.

具体的には、設定情報記憶領域132には、図3(暗号モジュールリストテーブル170の概略図)に示すような暗号モジュールリストテーブル170と、図4(対応暗号アルゴリズムテーブル171の概略図)に示す対応暗号アルゴリズムテーブル171と、図5(負荷状態テーブル172の概略図)に示す負荷状態テーブル172と、が記憶される。   Specifically, in the setting information storage area 132, an encryption module list table 170 as shown in FIG. 3 (schematic diagram of the cryptographic module list table 170) and FIG. 4 (schematic diagram of the corresponding cryptographic algorithm table 171) are shown. A corresponding encryption algorithm table 171 and a load state table 172 shown in FIG. 5 (schematic diagram of the load state table 172) are stored.

図3に示す暗号モジュールリストテーブル170は、暗号モジュール識別子欄170aと、設定情報欄170bと、鍵管理フラグ欄170cと、を有する。   The cryptographic module list table 170 illustrated in FIG. 3 includes a cryptographic module identifier field 170a, a setting information field 170b, and a key management flag field 170c.

暗号モジュール識別子欄170aには、暗号モジュールを識別するための識別情報である暗号モジュール識別子が格納される。   The cryptographic module identifier field 170a stores a cryptographic module identifier that is identification information for identifying the cryptographic module.

本実施形態においては、暗号演算処理を行うことのできるハードウェア及びソフトウェアを「暗号モジュール」としている。ここでは、検証サーバ136の制御部136に備えられている第一のソフトウェア暗号モジュール142、第二のソフトウェア暗号モジュール143及びHSM150が「暗号モジュール」に該当し、各々の識別子を「第一のソフトウェア暗号モジュール」、「第二のソフトウェア暗号モジュール」及び「HSM」として本欄に格納している。   In the present embodiment, hardware and software capable of performing cryptographic operation processing are referred to as “cryptographic modules”. Here, the first software cryptographic module 142, the second software cryptographic module 143, and the HSM 150 provided in the control unit 136 of the verification server 136 correspond to the “cryptographic module”, and each identifier is designated as “first software. “Cryptographic module”, “second software cryptographic module”, and “HSM” are stored in this column.

設定情報欄170bには、検証サーバ130が、暗号モジュール識別子欄170aで特定される暗号モジュールで暗号処理を行うために必要な設定情報が格納される。   The setting information column 170b stores setting information necessary for the verification server 130 to perform cryptographic processing with the cryptographic module specified in the cryptographic module identifier column 170a.

鍵管理フラグ欄170cには、暗号モジュール識別子欄170aで特定される暗号モジュールが、検証サーバ130の秘密鍵を有するか否かを特定する情報が格納される。ここで、本実施形態では、本欄に「有」の文字列が格納されている場合に、検証サーバ130の秘密鍵を有するものとしているが、このような態様に限定されるわけではない。   The key management flag column 170c stores information for specifying whether or not the cryptographic module specified in the cryptographic module identifier column 170a has the secret key of the verification server 130. Here, in the present embodiment, when the character string “Yes” is stored in this column, the secret key of the verification server 130 is assumed, but the present invention is not limited to this mode.

なお、暗号モジュールリストテーブル170については、検証サーバ130のオペレータが、入力部145を介して、予め作成し、設定情報記憶領域132に記憶しておく。   The cryptographic module list table 170 is created in advance by the operator of the verification server 130 via the input unit 145 and stored in the setting information storage area 132.

図4に示す対応暗号アルゴリズムテーブル171は、暗号アルゴリズム領域171aと、対応特定領域171dと、を有する。   The correspondence encryption algorithm table 171 shown in FIG. 4 has an encryption algorithm area 171a and a correspondence specifying area 171d.

暗号アルゴリズム領域171aは、ハッシュアルゴリズム領域171bと、公開鍵アルゴリズム領域171cと、を備え、ハッシュアルゴリム領域171bの各行には、ハッシュアルゴリズムを特定する情報が、公開鍵アルゴリズム領域171cの各行には、公開鍵アルゴリズムを特定する情報が、格納される。   The cryptographic algorithm area 171a includes a hash algorithm area 171b and a public key algorithm area 171c, and each row of the hash algorithm area 171b includes information for specifying a hash algorithm, and each line of the public key algorithm area 171c includes Information identifying the public key algorithm is stored.

対応特定領域171dの各列には、暗号モジュールを特定する情報が格納される。   Each column of the correspondence specifying area 171d stores information for specifying the cryptographic module.

そして、暗号アルゴリズム領域171aの各行で特定されるアルゴリズムと、対応特定領域171dの各列で特定される暗号モジュールと、の交差する欄には、当該暗号モジュールが、当該アルゴリズムに対応するか否かを特定する情報が格納される。本実施形態においては、これらの交差する欄に「○」の記号が格納されている場合には、当該暗号モジュールが当該アルゴリズムに対応していることを示し、「×」の記号が格納されている場合には、当該暗号モジュールが当該アルゴリズムに対応していないことを示すようにしているが、このような態様に限定されるわけではない。   In the column where the algorithm specified in each row of the encryption algorithm area 171a and the encryption module specified in each column of the corresponding specification area 171d intersect, whether or not the encryption module corresponds to the algorithm Information for identifying is stored. In the present embodiment, when a symbol “◯” is stored in these intersecting fields, it indicates that the cryptographic module is compatible with the algorithm, and a symbol “x” is stored. If it is, it is shown that the cryptographic module does not support the algorithm, but the present invention is not limited to such a mode.

図5に示す負荷状態テーブル172は、暗号モジュール識別子欄172aと、負荷状態欄172bと、を有する。   The load state table 172 illustrated in FIG. 5 includes a cryptographic module identifier field 172a and a load state field 172b.

暗号モジュール識別子欄172aには、暗号モジュールを識別するための識別情報である暗号モジュール識別子が格納される。   The cryptographic module identifier field 172a stores a cryptographic module identifier that is identification information for identifying the cryptographic module.

負荷状態欄172bには、暗号モジュール識別子欄172aで特定される暗号モジュールの負荷状態を特定する情報が格納される。   The load status column 172b stores information for specifying the load status of the cryptographic module specified in the cryptographic module identifier column 172a.

図2に戻り、証明書記憶領域133には、検証サーバ130の証明書が格納される。   Returning to FIG. 2, the certificate storage area 133 stores the certificate of the verification server 130.

鍵管理情報記憶領域134には、検証サーバ130の秘密鍵を管理する管理情報(例えば、HSM150に格納されている秘密鍵のラベル等を特定する情報)が記憶される。   In the key management information storage area 134, management information for managing the secret key of the verification server 130 (for example, information specifying the label of the secret key stored in the HSM 150) is stored.

制御部136は、全体制御部137と、証明書検証部138と、検証結果作成部139と、暗号モジュール選択部140と、暗号モジュール監視部141と、第一のソフトウェア暗号モジュール142と、第二のソフトウェア暗号モジュール143と、を備える。   The control unit 136 includes an overall control unit 137, a certificate verification unit 138, a verification result creation unit 139, a cryptographic module selection unit 140, a cryptographic module monitoring unit 141, a first software cryptographic module 142, and a second Software encryption module 143.

全体制御部137は、検証サーバ130における全体の処理を制御する。   The overall control unit 137 controls overall processing in the verification server 130.

証明書検証部138は、端末装置110からの検証要求に応じて、当該検証要求に添付されているCA証明書を信頼点として、検証対象証明書までの認証パスを構築する処理を行う。   In response to the verification request from the terminal device 110, the certificate verification unit 138 performs processing for building a certification path to the verification target certificate using the CA certificate attached to the verification request as a trust point.

また、証明書検証部138は、構築した認証パスを検証する処理を行う。   In addition, the certificate verification unit 138 performs processing for verifying the constructed certification path.

検証結果作成部139は、証明書検証部138で実行した検証対象証明書の検証結果に応じて、検証結果電文を作成する処理を行う。   The verification result creation unit 139 performs processing for creating a verification result message according to the verification result of the verification target certificate executed by the certificate verification unit 138.

暗号モジュール選択部140は、証明書検証部138が、認証パスを検証する処理において実施する証明書やCRLの署名検証処理、または、検証結果作成部139が検証結果電文を作成する際に実施する署名処理、を実行する暗号モジュールを選択する処理を行う。   The cryptographic module selection unit 140 is executed when the certificate verification unit 138 performs a certificate or CRL signature verification process performed in the process of verifying the certification path, or when the verification result creation unit 139 creates a verification result message. A process of selecting a cryptographic module for executing the signature process is performed.

暗号モジュール監視部141は、予め定められたタイミング(例えば、検証サーバ130のサービスを開始するタイミング等)において、検証サーバ130が利用可能な暗号モジュールを暗号モジュールリストテーブル170から特定し、特定した暗号モジュール全てにアクセスし、それぞれの暗号モジュールが対応可能な暗号アルゴリズムを調査し、対応暗号アルゴリズムテーブル171を作成し、設定情報記憶領域132に記憶する処理を行う。なお、この処理は、PKCS(Public Key Cryptography Standards)#11に基づいて行えばよい。   The cryptographic module monitoring unit 141 identifies a cryptographic module that can be used by the verification server 130 from the cryptographic module list table 170 at a predetermined timing (for example, a timing at which a service of the verification server 130 is started). All the modules are accessed, the cryptographic algorithms that can be supported by the respective cryptographic modules are investigated, the corresponding cryptographic algorithm table 171 is created, and the setting information storage area 132 is stored. This process may be performed based on PKCS (Public Key Cryptography Standards) # 11.

また、暗号モジュール監視部141は、検証サーバ130が利用可能な暗号モジュールを暗号モジュールリストテーブル170で特定し、特定した暗号モジュールの負荷状態を監視して、負荷状態テーブル172に格納する処理を行う。   In addition, the cryptographic module monitoring unit 141 performs processing for specifying a cryptographic module that can be used by the verification server 130 in the cryptographic module list table 170, monitoring the load state of the identified cryptographic module, and storing it in the load state table 172. .

第一のソフトウェア暗号モジュール142及び第二のソフトウェア暗号モジュール143は、各々、認証パス検証処理における証明書や証明書失効リストの署名検証処理や、検証結果に対する検証サーバの署名生成処理等の、暗号演算を行う。   Each of the first software cryptographic module 142 and the second software cryptographic module 143 performs encryption such as a certificate verification process of a certificate or a certificate revocation list in a certification path verification process and a signature generation process of a verification server for a verification result. Perform the operation.

入力部145は、情報の入力を受け付ける。   The input unit 145 receives information input.

出力部146は、情報を出力する。   The output unit 146 outputs information.

通信部147は、ネットワーク160を介した情報の送受信を行う。   The communication unit 147 transmits and receives information via the network 160.

I/F部148は、HSM150との間で情報の送受信を行う。   The I / F unit 148 transmits and receives information to and from the HSM 150.

以上に記載した検証サーバ130は、例えば、図6(コンピュータ180の概略図)に示すような、CPU(Central Processing Unit)181と、メモリ182と、HDD(Hard Disk Drive)等の外部記憶装置183と、CD−ROM(Compact Disk Read Only Memory)やDVD−ROM(Digital Versatile Disk Read Only Memory)等の可搬性を有する記憶媒体184に対して情報を読み書きする読書装置185と、キーボードやマウスなどの入力装置186と、ディスプレイなどの出力装置187と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置188と、USB(Universal Serial Bus)等のI/F(インターフェース)189と、を備えた一般的なコンピュータ180で実現できる。   The verification server 130 described above includes, for example, a CPU (Central Processing Unit) 181, a memory 182, and an external storage device 183 such as an HDD (Hard Disk Drive) as shown in FIG. 6 (schematic diagram of the computer 180). A reading device 185 for reading / writing information from / to a portable storage medium 184 such as a CD-ROM (Compact Disk Read Only Memory) or a DVD-ROM (Digital Versatile Disk Read Only Memory), a keyboard, a mouse, etc. An input device 186, an output device 187 such as a display, a communication device 188 such as a NIC (Network Interface Card) for connection to a communication network, an I / F (interface) 189 such as a USB (Universal Serial Bus), It is realizable with the general computer 180 provided with.

例えば、記憶部131は、CPU181がメモリ182又は外部記憶装置183を利用することにより実現可能であり、制御部136は、外部記憶装置183に記憶されている所定のプログラムをメモリ182にロードしてCPU181で実行することで実現可能であり、入力部145は、CPU181が入力装置186を利用することで実現可能であり、出力部146は、CPU181が出力装置187を利用することで実現可能であり、通信部147は、CPU181が通信装置188を利用することで実現可能であり、I/F部148は、CPU181がI/F189を利用することで実現可能である。   For example, the storage unit 131 can be realized by the CPU 181 using the memory 182 or the external storage device 183, and the control unit 136 loads a predetermined program stored in the external storage device 183 into the memory 182. The input unit 145 can be realized by using the input device 186 by the CPU 181, and the output unit 146 can be realized by using the output device 187 by the CPU 181. The communication unit 147 can be realized by the CPU 181 using the communication device 188, and the I / F unit 148 can be realized by the CPU 181 using the I / F 189.

この所定のプログラムは、読書装置185を介して記憶媒体184から、あるいは、通信装置188を介してネットワークから、外部記憶装置183にダウンロードされ、それから、メモリ182上にロードされてCPU181により実行されるようにしてもよい。また、読書装置185を介して記憶媒体184から、あるいは、通信装置188を介してネットワークから、メモリ182上に直接ロードされ、CPU181により実行されるようにしてもよい。   The predetermined program is downloaded from the storage medium 184 via the reading device 185 or from the network via the communication device 188 to the external storage device 183, and then loaded onto the memory 182 and executed by the CPU 181. You may do it. Alternatively, the program may be directly loaded on the memory 182 from the storage medium 184 via the reading device 185 or from the network via the communication device 188 and executed by the CPU 181.

HSM150は、少なくとも、PKCS#11に対応したものを使用すればよく、汎用のもので良いため、詳細な説明は省略する。   The HSM 150 only needs to use at least one corresponding to PKCS # 11 and may be a general-purpose one, and detailed description thereof is omitted.

なお、HSM150は、直接又はネットワークを介して検証サーバ130に接続されるが、本実施形態においては、図1に示すように、検証サーバ130に直接接続されているが、このような態様に限定されない。   The HSM 150 is connected to the verification server 130 directly or via a network. In the present embodiment, as shown in FIG. 1, the HSM 150 is directly connected to the verification server 130. However, the HSM 150 is limited to such an aspect. Not.

また、図1では、HSM150と検証サーバ130とは、1対1で接続されているが、1対多、多対多、多対1となるように接続してもよい。   In FIG. 1, the HSM 150 and the verification server 130 are connected on a one-to-one basis, but may be connected on a one-to-many, many-to-many, or many-to-one basis.

図7は、検証サーバ130において、暗号モジュールの負荷状態を監視する処理を示すフローチャートである。   FIG. 7 is a flowchart showing processing for monitoring the load state of the cryptographic module in the verification server 130.

まず、暗号モジュール監視部141は、予め設定された監視間隔、例えば、数十秒の所定時間を経過したら(S10でYes)、暗号モジュールリストテーブル170の暗号モジュール識別子欄170aで特定される暗号モジュールのなかから、未調査の暗号モジュールを一つ選択し(S11)、選択した当該暗号モジュールを利用するための設定情報を設定情報欄170bより取得する(S12)。   First, when a predetermined monitoring interval, for example, several tens of seconds has elapsed (Yes in S10), the cryptographic module monitoring unit 141 identifies the cryptographic module specified in the cryptographic module identifier field 170a of the cryptographic module list table 170. Among them, one unexamined cryptographic module is selected (S11), and setting information for using the selected cryptographic module is acquired from the setting information column 170b (S12).

そして、暗号モジュール監視部141は、ステップS11で選択した当該暗号モジュールにおいて、ダミーの暗号演算を実施する(S13)。ここで、ダミーの暗号演算は、例えば、暗号モジュールリストテーブル170aに格納されている全ての暗号モジュールが対応する暗号アルゴリズムにおいて、同じデータを用いて処理を実施する(例えば、テスト用のデータに対するハッシュ計算等)。   Then, the cryptographic module monitoring unit 141 performs a dummy cryptographic operation on the cryptographic module selected in step S11 (S13). Here, the dummy cryptographic operation is performed using, for example, the same data in the cryptographic algorithm corresponding to all the cryptographic modules stored in the cryptographic module list table 170a (for example, the hash for the test data) Calculation).

次に、暗号モジュール監視部141は、ステップS13で実施した暗号演算にかかった時間(例えば、暗号モジュールに演算の指示を出力してから、演算結果の応答を受け取るまでの時間)を、負荷状態テーブル172に、ステップS13で暗号演算を実施した当該暗号モジュールに対応付けて格納する(S14)。   Next, the cryptographic module monitoring unit 141 displays the time taken for the cryptographic calculation performed in step S13 (for example, the time from when the calculation instruction is output to the cryptographic module until the calculation result response is received) in the load state. The table 172 is stored in association with the cryptographic module for which the cryptographic operation has been performed in step S13 (S14).

そして、暗号モジュール監視部141は、暗号モジュールリストテーブル170に格納された全ての暗号モジュールについてステップS12〜S14の処理を行ったか否かを判断し(S15)、未調査の暗号モジュールがある場合には(ステップS15でYes)、ステップS11に戻り処理を繰り返し、全ての暗号モジュールで調査を行った場合には(ステップS15でNo)、ステップS10に戻り処理を繰り返す。   Then, the cryptographic module monitoring unit 141 determines whether or not the processing of steps S12 to S14 has been performed for all the cryptographic modules stored in the cryptographic module list table 170 (S15). (Yes in step S15), the process returns to step S11 and the process is repeated. If all the cryptographic modules have been investigated (No in step S15), the process returns to step S10 and the process is repeated.

図8は、検証サーバ130での証明書の検証処理を示すフローチャートである。   FIG. 8 is a flowchart showing certificate verification processing in the verification server 130.

検証サーバ130の全体制御部137は、通信部147を介して、端末装置110から証明書の検証要求を受け付けると(S20でYes)、当該検証要求を証明書検証部138にわたす。   When receiving a certificate verification request from the terminal device 110 via the communication unit 147 (Yes in S20), the overall control unit 137 of the verification server 130 passes the verification request to the certificate verification unit 138.

そして、証明書検証部138は、わたされた検証要求から、端末装置110のユーザが信頼するCA装置120のCA証明書と、検証対象である検証対象証明書と、を取得し(S21)、取得したCA証明書から取得した検証対象証明書までの認証パスを構築する(S22)。   Then, the certificate verification unit 138 acquires the CA certificate of the CA device 120 trusted by the user of the terminal device 110 and the verification target certificate that is the verification target from the passed verification request (S21). A certification path from the acquired CA certificate to the acquired verification target certificate is constructed (S22).

次に、証明書検証部138は、認証パスの構築ができたら、構築した認証パスの検証を実施する(S23)。   Next, the certificate verification unit 138 verifies the constructed certification path after the certification path is constructed (S23).

具体的には、証明書検証部138は、ステップS22で構築した認証パスを構成する複数の証明書のうち、パスの起点となる信頼するCAのCA証明書を除く、全ての証明書について、証明書に付与されている署名を、各々の証明書を発行したCA装置120のCA証明書に記載された公開鍵を用いて検証する。   Specifically, the certificate verification unit 138, for all the certificates excluding the CA certificate of the trusted CA that is the starting point of the path, out of the plurality of certificates that constitute the certification path constructed in step S22, The signature attached to the certificate is verified using the public key described in the CA certificate of the CA device 120 that issued each certificate.

また、証明書検証部138は、当該全ての証明書について、証明書が失効されていないことを確認するために、証明書を発行したCA装置120が発行するCRLによる確認や、OCSPレスポンダへ問い合わせることにより確認する。   In addition, the certificate verification unit 138 confirms the CRL issued by the CA device 120 that issued the certificate and inquires the OCSP responder to confirm that the certificate has not been revoked for all the certificates. To confirm.

そして、証明書検証部138は、CRL又はOCSPレスポンスに付与された、発行CA装置120の署名を、発行CA装置120の証明書に記載された公開鍵を用いて検証する。また、これらの事項の確認以外にも、RFC5280の第6章「認証パス検証」に規定される事項について、確認を行う。   Then, the certificate verification unit 138 verifies the signature of the issuing CA device 120 attached to the CRL or OCSP response using the public key described in the certificate of the issuing CA device 120. In addition to the confirmation of these items, the items specified in Chapter 6 “Authentication Path Verification” of RFC5280 are also confirmed.

次に、検証結果作成部139は、ステップS23での認証パスの検証の結果を記した電文を作成し、その電文に対して検証サーバ130の秘密鍵を用いて、署名値を生成し、当該署名値と、検証サーバ130の証明書と、を作成した電文に添付することにより、検証結果電文を作成する(S24)。   Next, the verification result creation unit 139 creates a message that describes the result of verification of the authentication path in step S23, generates a signature value for the message using the secret key of the verification server 130, and A verification result message is created by attaching the signature value and the certificate of the verification server 130 to the created message (S24).

そして、検証サーバ130の全体制御部137は、ステップS24で作成した検証結果電文を、ステップS20において、検証要求を送信してきた端末装置110に対して送信し(S25)、ステップS20に戻り処理を繰り返す。   Then, the overall control unit 137 of the verification server 130 transmits the verification result message created in step S24 to the terminal device 110 that has transmitted the verification request in step S20 (S25), and returns to step S20 for processing. repeat.

図9は、図8のステップS23の認証パス検証処理における、証明書、CRL又はOCSPレスポンスの署名検証処理を示すフローチャートである。   FIG. 9 is a flowchart showing a signature verification process of a certificate, CRL, or OCSP response in the certification path verification process of step S23 of FIG.

まず、証明書検証部138は、署名検証を行う証明書、CRL又はOCSPレスポンスから、署名値に関するハッシュアルゴリズム及び公開鍵暗号アルゴリズムを取得する(S30)。   First, the certificate verification unit 138 acquires a hash algorithm and a public key encryption algorithm related to a signature value from a certificate for signature verification, a CRL, or an OCSP response (S30).

次に、証明書検証部138は、暗号モジュール選択部140を用いて、ステップS30で取得したハッシュアルゴリズムをキーにして、対応暗号アルゴリズムテーブル171を検索することで、キーとしたハッシュアルゴリズムに対応する暗号モジュールがあるかどうかを検索する(S31)。   Next, the certificate verification unit 138 uses the cryptographic module selection unit 140 to search the corresponding cryptographic algorithm table 171 using the hash algorithm acquired in step S30 as a key, thereby corresponding to the hash algorithm used as a key. Whether there is a cryptographic module is searched (S31).

そして、証明書検証部138は、キーとしたハッシュアルゴリズムに対応する暗号モジュールがない場合には(ステップS31でNo)、ステップS45に進み、対応する暗号モジュールがある場合には(ステップS31でYes)、ステップS32に進む。   If there is no cryptographic module corresponding to the hash algorithm used as the key (No in step S31), the certificate verification unit 138 proceeds to step S45, and if there is a corresponding cryptographic module (Yes in step S31). ), Go to step S32.

ステップS32では、証明書検証部138は、キーとしたハッシュアルゴリズムに対応する暗号モジュールが複数あるか否かを判断する。そして、キーとしたハッシュアルゴリズムに対応する暗号モジュールが複数ない場合には(ステップS32でNo)、ステップS33に進み、複数ある場合には(ステップS32でYes)、ステップS34に進む。   In step S32, the certificate verification unit 138 determines whether there are a plurality of cryptographic modules corresponding to the hash algorithm used as a key. If there is not a plurality of cryptographic modules corresponding to the hash algorithm used as a key (No in step S32), the process proceeds to step S33. If there are a plurality of cryptographic modules (Yes in step S32), the process proceeds to step S34.

ステップS33では、暗号モジュール選択部140は、キーとしたハッシュアルゴリズムに対応する暗号モジュールが一つしかないので、当該暗号モジュールを選択してステップS36に進む。   In step S33, the cryptographic module selection unit 140 selects only the cryptographic module corresponding to the hash algorithm used as the key, and proceeds to step S36.

一方、ステップS34では、暗号モジュール選択部140は、対応暗号アルゴリズムテーブル171から、キーとしたハッシュアルゴリズムに対応する暗号モジュールの識別子を全て取得する(S34)。   On the other hand, in step S34, the cryptographic module selection unit 140 acquires all cryptographic module identifiers corresponding to the hash algorithm as a key from the corresponding cryptographic algorithm table 171 (S34).

次に、暗号モジュール選択部140は、ステップS34で取得した全ての暗号モジュール識別子をキーにして、負荷状態テーブル172を検索し、キーとした暗号モジュール識別子に対応する暗号モジュールのうち一番負荷がかかっていない暗号モジュールを選択する(S35)。ここで、本実施形態においては、対応する暗号モジュールのうち、負荷状態テーブル172の負荷状態欄172bに格納されている時間が最も短いものを選択する。なお、最も短い時間が複数ある場合には、HSM150を優先する等の予め定められた法則に従って、一つの暗号モジュールを特定する。   Next, the cryptographic module selection unit 140 searches the load state table 172 using all the cryptographic module identifiers acquired in step S34 as a key, and among the cryptographic modules corresponding to the cryptographic module identifier used as the key, the highest load is obtained. A cryptographic module that is not applied is selected (S35). Here, in the present embodiment, among the corresponding cryptographic modules, the module having the shortest time stored in the load status column 172b of the load status table 172 is selected. When there are a plurality of the shortest times, one cryptographic module is specified according to a predetermined rule such as giving priority to the HSM 150.

そして、ステップS36において、証明書検証部138は、暗号モジュール選択部140が選択した暗号モジュールを用いて、署名検証のためのハッシュ計算を実施する(S36)。具体的には、検証対象の証明書、CRL又はOCSPレスポンスの署名対象部分の電文を、選択された暗号モジュールを用いて、ステップS30で取得されたハッシュアルゴリズムによるハッシュ計算を行い、結果として得られる値に、当該ハッシュアルゴリズムの識別子(OID)を合わせて、ハッシュ値を得る。   In step S36, the certificate verification unit 138 performs hash calculation for signature verification using the cryptographic module selected by the cryptographic module selection unit 140 (S36). Specifically, a hash calculation using the hash algorithm obtained in step S30 is performed on the verification target certificate, the electronic signature of the signature target part of the CRL or OCSP response using the selected cryptographic module, and the result is obtained. The hash value is obtained by combining the value with the identifier (OID) of the hash algorithm.

次に、証明書検証部138は、ステップS37で取得した公開鍵暗号アルゴリズムをキーにして、対応暗号アルゴリズムテーブル171を検索し、キーとした公開鍵暗号アルゴリズムに対応する暗号モジュールがあるかどうかを検索する(S37)。   Next, the certificate verification unit 138 searches the corresponding encryption algorithm table 171 using the public key encryption algorithm acquired in step S37 as a key, and determines whether there is an encryption module corresponding to the public key encryption algorithm used as the key. Search is performed (S37).

そして、証明書検証部138は、キーとした公開鍵暗号アルゴリズムに対応する暗号モジュールがない場合には(ステップS37でNo)、ステップS45に進み、対応する暗号モジュールがある場合には(ステップS37でYes)、ステップS38に進む。   Then, if there is no encryption module corresponding to the public key encryption algorithm used as the key (No in step S37), the certificate verification unit 138 proceeds to step S45, and if there is a corresponding encryption module (step S37). Yes), the process proceeds to step S38.

ステップS38では、証明書検証部138は、キーとした公開鍵暗号アルゴリズムに対応する暗号モジュールが複数あるか否かを判断する。そして、キーとした公開鍵暗号アルゴリズムに対応する暗号モジュールが複数ない場合には(ステップS38でNo)、ステップS39に進み、複数ある場合には(ステップS38でYes)、ステップS40に進む。   In step S38, the certificate verification unit 138 determines whether there are a plurality of cryptographic modules corresponding to the public key cryptographic algorithm used as a key. If there are not a plurality of cryptographic modules corresponding to the public key cryptographic algorithm used as a key (No in step S38), the process proceeds to step S39. If there are a plurality of cryptographic modules (Yes in step S38), the process proceeds to step S40.

ステップS39では、暗号モジュール選択部140は、キーとした公開鍵暗号アルゴリズムに対応する暗号モジュールが一つしかないので、当該暗号モジュールを選択してステップS42に進む。   In step S39, the cryptographic module selection unit 140 selects only the cryptographic module corresponding to the public key cryptographic algorithm used as a key, and proceeds to step S42.

ステップS40では、暗号モジュール選択部140は、対応暗号アルゴリズムテーブル171から、キーとした公開鍵暗号アルゴリズムに対応する暗号モジュールの識別子を全て取得する。   In step S <b> 40, the cryptographic module selection unit 140 acquires all cryptographic module identifiers corresponding to the public key cryptographic algorithm as a key from the corresponding cryptographic algorithm table 171.

次に、暗号モジュール選択部140は、ステップS40で取得した全ての暗号モジュール識別子をキーにして、負荷状態テーブル172を検索し、キーとした暗号モジュール識別子に対応する暗号モジュールのうち一番負荷がかかっていない暗号モジュールを選択する(S41)。ここで、本実施形態においては、対応する暗号モジュールのうち、負荷状態テーブル172の負荷状態欄172bに格納されている時間が最も短いものを選択する。なお、最も短い時間が複数ある場合には、HSM150を優先する等の予め定められた法則に従って、一つの暗号モジュールを特定する。   Next, the cryptographic module selection unit 140 searches the load state table 172 using all the cryptographic module identifiers acquired in step S40 as keys, and the highest load among the cryptographic modules corresponding to the cryptographic module identifiers used as keys. A cryptographic module which is not applied is selected (S41). Here, in the present embodiment, among the corresponding cryptographic modules, the module having the shortest time stored in the load status column 172b of the load status table 172 is selected. When there are a plurality of the shortest times, one cryptographic module is specified according to a predetermined rule such as giving priority to the HSM 150.

そして、証明書検証部138は、選択された暗号モジュールを用いて、検証対象の署名値を復号し、復号された復号データ及びステップS36で取得したハッシュ値が同じであることを確認することで、署名の検証処理を行う(S42)。具体的には、選択された暗号モジュールにおいて、ステップS30で取得された公開鍵暗号アルゴリズムと、検証対象証明書、CRL又はOCSPレスポンスを発行したCA装置120のCA証明書に記載される公開鍵と、検証対象証明書、CRL又はOCSPレスポンスの署名値と、ステップS36で取得したハッシュ値を入力値として、署名の検証を行う。すなわち、選択された暗号モジュールは、入力された署名値を、入力された公開鍵を用いて、入力された公開鍵暗号アルゴリズムで復号し、結果として得られた復号データと、入力されたハッシュ値が同じである場合は、署名検証に成功した旨を応答し、異なる場合は署名検証に失敗した旨を証明書検証部138に応答する。   Then, the certificate verification unit 138 uses the selected cryptographic module to decrypt the signature value to be verified, and confirms that the decrypted decrypted data and the hash value acquired in step S36 are the same. Then, signature verification processing is performed (S42). Specifically, in the selected cryptographic module, the public key cryptographic algorithm acquired in step S30, the public key described in the CA certificate of the CA device 120 that issued the verification target certificate, the CRL or the OCSP response, The signature is verified using the verification target certificate, the signature value of the CRL or OCSP response, and the hash value acquired in step S36 as input values. That is, the selected cryptographic module decrypts the input signature value using the input public key with the input public key encryption algorithm, and the resulting decrypted data and the input hash value If they are the same, a response that the signature verification is successful is returned, and if they are different, a response that the signature verification failed is returned to the certificate verification unit 138.

次に、証明書検証部138は、選択された暗号モジュールから、署名検証の結果を受け取り、受け取った検証結果が成功だった場合には(S43でYes)、検証対象証明書の署名が有効だと判断し(S44)、認証パス検証処理を引き続き実施する。   Next, the certificate verification unit 138 receives the signature verification result from the selected cryptographic module, and if the received verification result is successful (Yes in S43), the signature of the verification target certificate is valid. (S44), and the certification path verification process is continued.

一方、証明書検証部138は、受け取った検証結果が失敗だった場合には(ステップS43でNo)、ステップS45に進む。   On the other hand, if the received verification result is unsuccessful (No in step S43), the certificate verification unit 138 proceeds to step S45.

ステップS45では、証明書検証部138は、検証対象証明書の署名は有効でないと判断し、認証パスの検証処理に失敗したものと判断する。   In step S45, the certificate verification unit 138 determines that the signature of the verification target certificate is not valid, and determines that the certification path verification processing has failed.

図10は、検証サーバ130の秘密鍵による電子署名の生成処理を示すフローチャートである。   FIG. 10 is a flowchart showing a digital signature generation process using the secret key of the verification server 130.

検証結果作成部139は、検証サーバ130のオペレータにより設定された、検証サーバ130の秘密鍵情報から、検証サーバ130が検証結果電文への署名生成の際に使用するハッシュアルゴリズム及び公開鍵暗号アルゴリズムを取得する(S50)。なお、これらの情報については、鍵管理情報記憶領域134に記憶されているものとする。   The verification result creation unit 139 uses the secret key information of the verification server 130 set by the operator of the verification server 130 to determine a hash algorithm and a public key encryption algorithm that the verification server 130 uses when generating a signature for the verification result message. Obtain (S50). These pieces of information are assumed to be stored in the key management information storage area 134.

次に、検証結果作成部139は、暗号モジュール選択部140を用いて、ステップS50で取得したハッシュアルゴリズムをキーにして、対応暗号アルゴリズムテーブル171から、キーとしたハッシュアルゴリズムに対応する暗号モジュールが複数あるか否かを確認する(S51)。   Next, the verification result creation unit 139 uses the cryptographic module selection unit 140 to set a plurality of cryptographic modules corresponding to the keyed hash algorithm from the corresponding cryptographic algorithm table 171 using the hash algorithm acquired in step S50 as a key. It is confirmed whether or not there is (S51).

そして、キーとしたハッシュアルゴリズムに対応する暗号モジュールが複数ない場合には(ステップS51でNo)、ステップS52に進み、複数ある場合には(ステップS51でYes)、ステップS53に進む。   If there is not a plurality of cryptographic modules corresponding to the hash algorithm used as a key (No in step S51), the process proceeds to step S52. If there are a plurality of cryptographic modules (Yes in step S51), the process proceeds to step S53.

ステップS52では、暗号モジュール選択部140は、キーとしたハッシュアルゴリズムに対応する暗号モジュールが一つしかないので、当該暗号モジュールを選択してステップS55に進む。   In step S52, since there is only one cryptographic module corresponding to the hash algorithm used as the key, the cryptographic module selection unit 140 selects the cryptographic module and proceeds to step S55.

一方、ステップS53では、暗号モジュール選択部140は、対応暗号アルゴリズムテーブル171から、キーとしたハッシュアルゴリズムに対応する暗号モジュールの識別子を全て取得する。   On the other hand, in step S <b> 53, the cryptographic module selection unit 140 acquires all cryptographic module identifiers corresponding to the hash algorithm as a key from the corresponding cryptographic algorithm table 171.

次に、暗号モジュール選択部140は、ステップS53で取得した全ての暗号モジュール識別子をキーにして、負荷状態テーブル172を検索し、キーとした暗号モジュール識別子に対応する暗号モジュールのうち一番負荷がかかっていない暗号モジュールを選択する(S54)。ここで、本実施形態においては、対応する暗号モジュールのうち、負荷状態テーブル172の負荷状態欄172bに格納されている時間が最も短いものを選択する。なお、最も短い時間が複数ある場合には、HSM150を優先する等の予め定められた法則に従って、一つの暗号モジュールを特定する。   Next, the cryptographic module selection unit 140 searches the load state table 172 using all the cryptographic module identifiers acquired in step S53 as keys, and the highest load among the cryptographic modules corresponding to the cryptographic module identifiers used as the keys. A cryptographic module which is not applied is selected (S54). Here, in the present embodiment, among the corresponding cryptographic modules, the module having the shortest time stored in the load status column 172b of the load status table 172 is selected. When there are a plurality of the shortest times, one cryptographic module is specified according to a predetermined rule such as giving priority to the HSM 150.

ステップS55では、検証結果作成部139は、選択された当該暗号モジュールを用いて、署名生成のためのハッシュ計算を実施する。具体的には、署名対象の検証結果電文を、選択された暗号モジュールに入力して、ステップS50で取得されたハッシュアルゴリズムによるハッシュ計算を行い、結果として得られる値に、当該ハッシュアルゴリズムを特定する識別子(OID)を合わせて、ハッシュ値を得る。   In step S55, the verification result creation unit 139 performs hash calculation for signature generation using the selected cryptographic module. Specifically, the verification result message to be signed is input to the selected cryptographic module, hash calculation is performed using the hash algorithm acquired in step S50, and the hash algorithm is specified in the resulting value. Together with the identifier (OID), a hash value is obtained.

次に、検証結果作成部139は、暗号モジュールリストテーブル170を検索し、鍵管理フラグ欄170cに「有」の文字列が格納されている暗号モジュールを検索し、検索した暗号モジュールの識別子を取得する(S56)。   Next, the verification result creation unit 139 searches the cryptographic module list table 170, searches for the cryptographic module in which the character string “Yes” is stored in the key management flag column 170c, and acquires the identifier of the searched cryptographic module. (S56).

そして、検証結果作成部139は、ステップS56で取得した暗号モジュール識別子に対応する暗号モジュールにおいて、検証サーバ130の秘密鍵を用いて、ステップS55で算出したハッシュ値の暗号化を行う(S57)。具体的には、ステップS50で取得した公開鍵暗号アルゴリズムと、検証サーバ130の秘密鍵を特定するための情報と、ステップS55で得たハッシュ値と、を入力値とし、ステップS56で取得した暗号モジュールに入力して、当該暗号モジュールにおいて入力されたハッシュ値を、入力された秘密鍵を特定するための情報に対応する秘密鍵を用いて暗号化する。   Then, the verification result creating unit 139 encrypts the hash value calculated in step S55 using the secret key of the verification server 130 in the cryptographic module corresponding to the cryptographic module identifier acquired in step S56 (S57). Specifically, the public key encryption algorithm acquired in step S50, information for specifying the secret key of the verification server 130, and the hash value acquired in step S55 are used as input values, and the encryption acquired in step S56. Input to the module, and the hash value input in the encryption module is encrypted using the secret key corresponding to the information for specifying the input secret key.

そして、暗号モジュールは、ステップS57で得られた署名値を検証結果作成部139に出力する(S58)。これを受け取った検証結果作成部139は、検証結果を示す電文に、署名値と、鍵管理情報記憶領域134に記憶された秘密鍵に対応する検証サーバ130の証明書と、を添付し検証結果電文を得る。   Then, the cryptographic module outputs the signature value obtained in step S57 to the verification result creation unit 139 (S58). Upon receiving this, the verification result creating unit 139 attaches the signature value and the certificate of the verification server 130 corresponding to the private key stored in the key management information storage area 134 to the message indicating the verification result. Get a telegram.

なお、ステップS56において、鍵管理フラグ欄170cに「有」の文字列が格納されている暗号モジュールが複数ある場合には、即ち、検証サーバ130の秘密鍵を管理する暗号モジュールが複数ある場合には、そのような秘密鍵を有する暗号モジュールのうち、最も負荷のかかっていない暗号モジュールを選択して、ステップS57の暗号化処理を行ってもよい。   In step S56, when there are a plurality of cryptographic modules in which the character string “Yes” is stored in the key management flag field 170c, that is, when there are a plurality of cryptographic modules that manage the secret key of the verification server 130. May select the cryptographic module with the least load among the cryptographic modules having such a secret key, and perform the encryption processing in step S57.

以上に記載したように、本実施形態によれば、検証サーバ130において、多数の端末装置110から膨大な数の検証要求を受けた場合においても、HSM150および検証サーバ130の両方で暗号演算を効率的に処理することができ、検証サーバ130全体の処理性能を向上させ、検証要求を受け付けてから検証結果を送信するまでの時間を短くすることができる。   As described above, according to the present embodiment, even when the verification server 130 receives an enormous number of verification requests from a large number of terminal devices 110, both the HSM 150 and the verification server 130 perform cryptographic operations efficiently. The processing performance of the entire verification server 130 can be improved, and the time from receiving the verification request to transmitting the verification result can be shortened.

また、HSM150及びソフトウェア暗号モジュール142、143で対応可能なアルゴリズムを対応暗号アルゴリズムテーブル171として管理することにより、いずれかの暗号モジュールが対応していない暗号アルゴリズムを用いた暗号演算を行う場合でも、自動的に適切な暗号モジュールを選択することができ、検証サーバ130の管理者がいずれの暗号モジュールを使用するかを意識しなくても良く、運用上の負荷を軽減することができる。   In addition, by managing the algorithms that can be supported by the HSM 150 and the software cryptographic modules 142 and 143 as the corresponding cryptographic algorithm table 171, even when performing cryptographic operations using cryptographic algorithms not supported by any cryptographic module, Therefore, it is not necessary to be aware of which cryptographic module is used by the administrator of the verification server 130, and the operational load can be reduced.

なお、本発明は、以上に記載した実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。   The present invention is not limited to the embodiments described above, and various modifications can be made within the scope of the gist.

例えば、以上に記載した実施形態では、検証サーバ130の暗号モジュール監視部141が暗号モジュールの負荷状態を監視する方法として、特定の間隔で各暗号モジュールにおいて暗号演算を行い、その暗号演算にかかった時間を計測している。これに対して、例えば、暗号モジュール監視部141が、検証サーバ130と、HSM150のCPU利用率を特定の間隔で検出し、検出したCPU利用率を負荷状態テーブル172の負荷状態欄172bに格納するようにしてもよい。このような場合には、CPU利用率が最も小さいものを最も負荷のかかっていないものとして、実際の暗号演算に使用すればよい。   For example, in the embodiment described above, as a method for the cryptographic module monitoring unit 141 of the verification server 130 to monitor the load state of the cryptographic module, the cryptographic calculation is performed in each cryptographic module at a specific interval, and the cryptographic calculation is performed. Time is being measured. On the other hand, for example, the cryptographic module monitoring unit 141 detects the CPU usage rate of the verification server 130 and the HSM 150 at specific intervals, and stores the detected CPU usage rate in the load status column 172b of the load status table 172. You may do it. In such a case, the CPU with the lowest CPU utilization rate may be used for actual cryptographic computation as the least loaded one.

また、暗号モジュール監視部141は、特定の間隔で各暗号モジュールの監視を行うのではなく、各々の暗号モジュールが署名検証処理においてハッシュ値を生成する処理を行う度に、その処理時間を負荷状態テーブル172の負荷状態欄172bに格納することにより、負荷状態を管理してもよい。この場合、基本的には、全ての暗号モジュールを順番に使うように設定しておくことにより、全ての暗号モジュールにおける処理時間を調査し、当該処理時間がある一定時間以上かかる場合には、時間のかかっている暗号モジュールを使用せず、他の暗号モジュールで処理するようにすればよい。   Also, the cryptographic module monitoring unit 141 does not monitor each cryptographic module at a specific interval, but each cryptographic module performs processing for generating a hash value in the signature verification processing. The load state may be managed by storing it in the load state column 172b of the table 172. In this case, basically, by setting all the cryptographic modules to be used in order, the processing time in all the cryptographic modules is investigated, and if the processing time takes more than a certain time, the time It is only necessary to use other cryptographic modules instead of using cryptographic modules.

さらに、HSM150の処理性能よりも、検証サーバ130の処理性能が、明らかに良い場合は、検証要求をうける毎に暗号モジュール選択部140を用いて暗号モジュールの選択を行うのではなく、常に、認証パス検証処理における署名検証処理、および、検証結果電文への署名値生成処理、におけるハッシュ演算を、検証サーバ130におけるソフトウェア暗号モジュール142、143を用いて実施し、HSM150では検証結果電文への署名生成における公開鍵暗号処理のみを実施するようにしても良い。   Furthermore, if the processing performance of the verification server 130 is clearly better than the processing performance of the HSM 150, the cryptographic module selection unit 140 is not used to select a cryptographic module every time a verification request is received, but authentication is always performed. The hash calculation in the signature verification process in the path verification process and the signature value generation process in the verification result message is performed using the software encryption modules 142 and 143 in the verification server 130. In the HSM 150, the signature generation in the verification result message is performed. Only the public key encryption process in may be performed.

100 検証システム
110 端末装置
120 CA装置
130 検証サーバ
131 記憶部
132 設定情報記憶領域
133 証明書記憶領域
134 鍵管理情報記憶領域
136 制御部
137 全体制御部
138 証明書検証部
139 検証結果作成部
140 暗号モジュール選択部
141 暗号モジュール監視部
142 第一のソフトウェア暗号モジュール
143 第二のソフトウェア暗号モジュール
150 HSM
100 verification system 110 terminal device 120 CA device 130 verification server 131 storage unit 132 setting information storage region 133 certificate storage region 134 key management information storage region 136 control unit 137 overall control unit 138 certificate verification unit 139 verification result creation unit 140 encryption Module selection unit 141 Cryptographic module monitoring unit 142 First software cryptographic module 143 Second software cryptographic module 150 HSM

Claims (3)

HSM(Hardware Security Module)と接続された検証サーバで、証明書の検証要求の受付、認証パスの構築及び前記認証パスの検証を行う、検証サーバであって、
ソフトウェア暗号モジュールを記憶する記憶部と、
前記認証パス検証処理における、証明書、証明書失効リスト又はOCSPレスポンスの署名検証処理において、
前記ソフトウェア暗号モジュールを用いて、前記証明書、証明書失効リスト又はOCSPレスポンスのハッシュ値を計算し、
前記ソフトウェア暗号モジュールを用いて、証明対象の前記証明書、証明書失効リスト又はOCSPレスポンスの署名値を復号し、
前記計算したハッシュ値と前記復号データとを比較することで、前記署名検証処理を行い、
前記ソフトウェア暗号モジュールを用いて、前記署名検証結果のハッシュ値を計算し、
前記署名検証結果のハッシュ値を、前記HSM及び該HSM内の秘密鍵を用いて暗号化し、署名値を生成する制御部と、を有する、
ことを特徴とする検証サーバ。
A verification server connected to an HSM (Hardware Security Module), accepting a certificate verification request, constructing an authentication path, and verifying the authentication path,
A storage unit for storing the software cryptographic module;
In the signature verification process of the certificate, certificate revocation list or OCSP response in the certification path verification process,
Using the software cryptographic module, calculate the hash value of the certificate, certificate revocation list or OCSP response,
Using the software cryptographic module, decrypt the certificate to be certified, the certificate revocation list or the signature value of the OCSP response,
The signature verification process is performed by comparing the calculated hash value and the decrypted data,
Using the software cryptographic module, calculating a hash value of the signature verification result,
A controller that encrypts a hash value of the signature verification result using the HSM and a secret key in the HSM, and generates a signature value;
A verification server characterized by that.
HSM(Hardware Security Module)と接続された検証サーバで、証明書の検証要求の受付、認証パスの構築及び前記認証パスの検証を行う、検証サーバにおける検証方法であって、
前記検証サーバは、ソフトウェア暗号モジュールを記憶する記憶部を備え、
前記検証サーバにより、
前記認証パス検証処理における、証明書、証明書失効リスト又はOCSPレスポンスの署名検証処理において、
前記ソフトウェア暗号モジュールを用いて、前記証明書、証明書失効リスト又はOCSPレスポンスのハッシュ値を計算し、
前記ソフトウェア暗号モジュールを用いて、証明対象の前記証明書、証明書失効リスト又はOCSPレスポンスの署名値を復号し、
前記計算したハッシュ値と前記復号データとを比較することで、前記署名検証処理を行い、
前記ソフトウェア暗号モジュールを用いて、前記署名検証結果のハッシュ値を計算し、
前記署名検証結果のハッシュ値を、前記HSM及び該HSM内の秘密鍵を用いて暗号化し、署名値を生成する処理を実施する、
ことを特徴とする検証方法。
A verification method in a verification server that accepts a certificate verification request, constructs an authentication path, and verifies the authentication path with a verification server connected to an HSM (Hardware Security Module),
The verification server includes a storage unit that stores a software cryptographic module;
By the verification server,
In the signature verification process of the certificate, certificate revocation list or OCSP response in the certification path verification process,
Using the software cryptographic module, calculate the hash value of the certificate, certificate revocation list or OCSP response,
Using the software cryptographic module, decrypt the certificate to be certified, the certificate revocation list or the signature value of the OCSP response,
The signature verification process is performed by comparing the calculated hash value and the decrypted data,
Using the software cryptographic module, calculating a hash value of the signature verification result,
The hash value of the signature verification result is encrypted using the HSM and a secret key in the HSM, and a process for generating a signature value is performed.
A verification method characterized by that.
HSM(Hardware Security Module)と接続されたコンピュータに、証明書の検証要求の受付、認証パスの構築及び前記認証パスの検証を実行させる検証プログラムであって、
前記コンピュータは、ソフトウェア暗号モジュールを記憶する記憶部を備え、
前記コンピュータに、
前記認証パス検証処理における、証明書、証明書失効リスト又はOCSPレスポンスの署名検証処理において、
前記ソフトウェア暗号モジュールを用いて、前記証明書、証明書失効リスト又はOCSPレスポンスのハッシュ値を計算し、
前記ソフトウェア暗号モジュールを用いて、証明対象の前記証明書、証明書失効リスト又はOCSPレスポンスの署名値を復号し、
前記計算したハッシュ値と前記復号データとを比較することで、前記署名検証処理を行い、
前記ソフトウェア暗号モジュールを用いて、前記署名検証結果のハッシュ値を計算し、
前記署名検証結果のハッシュ値を、前記HSM及び該HSM内の秘密鍵を用いて暗号化し、署名値を生成する処理を実行させる、
ことを特徴とする検証プログラム。
A verification program for causing a computer connected to an HSM (Hardware Security Module) to receive a certificate verification request, construct a certification path, and verify the certification path,
The computer includes a storage unit that stores a software cryptographic module,
In the computer,
In the signature verification process of the certificate, certificate revocation list or OCSP response in the certification path verification process,
Using the software cryptographic module, calculate the hash value of the certificate, certificate revocation list or OCSP response,
Using the software cryptographic module, decrypt the certificate to be certified, the certificate revocation list or the signature value of the OCSP response,
The signature verification process is performed by comparing the calculated hash value and the decrypted data,
Using the software cryptographic module, calculating a hash value of the signature verification result,
Encrypting a hash value of the signature verification result using the HSM and a secret key in the HSM, and executing a process of generating a signature value;
A verification program characterized by that.
JP2012163935A 2012-07-24 2012-07-24 Verification server, program, and verification method Active JP5346111B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012163935A JP5346111B2 (en) 2012-07-24 2012-07-24 Verification server, program, and verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012163935A JP5346111B2 (en) 2012-07-24 2012-07-24 Verification server, program, and verification method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008142197A Division JP5053179B2 (en) 2008-05-30 2008-05-30 Verification server, program, and verification method

Publications (2)

Publication Number Publication Date
JP2012213229A JP2012213229A (en) 2012-11-01
JP5346111B2 true JP5346111B2 (en) 2013-11-20

Family

ID=47266745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012163935A Active JP5346111B2 (en) 2012-07-24 2012-07-24 Verification server, program, and verification method

Country Status (1)

Country Link
JP (1) JP5346111B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021005557T5 (en) 2021-01-28 2023-08-31 Hitachi Astemo, Ltd. VEHICLE CONTROL DEVICE

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3801782B2 (en) * 1998-06-22 2006-07-26 三菱電機株式会社 Certificate collection information generation device, certificate verification device, and public key cryptographic operation system
JP3588042B2 (en) * 2000-08-30 2004-11-10 株式会社日立製作所 Certificate validity checking method and device
JP3971890B2 (en) * 2000-11-01 2007-09-05 日本電信電話株式会社 Signature verification support apparatus, signature verification support method, and electronic signature verification method
JP2002207426A (en) * 2001-01-10 2002-07-26 Sony Corp System and method for issuing public key certificate, electronic certification device, and program storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021005557T5 (en) 2021-01-28 2023-08-31 Hitachi Astemo, Ltd. VEHICLE CONTROL DEVICE

Also Published As

Publication number Publication date
JP2012213229A (en) 2012-11-01

Similar Documents

Publication Publication Date Title
JP5053179B2 (en) Verification server, program, and verification method
JP5576985B2 (en) Method for determining cryptographic algorithm used for signature, verification server, and program
CN106170944B (en) Ensure method, the safety communications equipment, public key server of system communication safety
CN108737394A (en) Off-line verification system, barcode scanning equipment and server
CN108650082A (en) The encryption and verification method of information to be verified, relevant apparatus and storage medium
JP4671783B2 (en) Communications system
JP6753403B2 (en) Information processing equipment, authentication systems, authentication methods, and computer programs
WO2003105400A1 (en) Data processing system, data processing device, data processing method, and computer program
CN101925910B (en) License authentication system and authentication method
JP5380583B1 (en) Device authentication method and system
JP6049914B2 (en) Cryptographic system, key generation device, and re-encryption device
CN102811211A (en) Device supporting login certification and method for login certification
JP2005124097A (en) Route certificate distribution system, route certificate distribution method, computer executable route certificate distribution program, server device and client device
JP5012574B2 (en) Common key automatic sharing system and common key automatic sharing method
JP6976405B2 (en) Access control system and its programs
JP2014022920A (en) Electronic signature system, electronic signature method, and electronic signature program
JP6234014B2 (en) Information processing apparatus, information processing apparatus control method, and computer program
JP5346111B2 (en) Verification server, program, and verification method
WO2015173900A1 (en) Certificate-authority management method, network apparatus, and program
JP2013223171A (en) Public key infrastructure control system, certificate authority server, user terminal, public key infrastructure control method and program
WO2023280546A1 (en) Selective data sharing
JP6907111B2 (en) Digital certificate management system and digital certificate management method
JP2022061275A (en) Licence managing method, license managing device and program
JP2016115162A (en) Authentication system, authentication terminal device, registration terminal device, authentication method, and program
JP2010141619A (en) Communication apparatus, server apparatus, communication program, and data

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130815

R151 Written notification of patent or utility model registration

Ref document number: 5346111

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151