JP2009044557A - Certificate verification server, method, and program - Google Patents
Certificate verification server, method, and program Download PDFInfo
- Publication number
- JP2009044557A JP2009044557A JP2007208403A JP2007208403A JP2009044557A JP 2009044557 A JP2009044557 A JP 2009044557A JP 2007208403 A JP2007208403 A JP 2007208403A JP 2007208403 A JP2007208403 A JP 2007208403A JP 2009044557 A JP2009044557 A JP 2009044557A
- Authority
- JP
- Japan
- Prior art keywords
- secret key
- certificate verification
- certificate
- signature
- cryptographic module
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、証明書検証サーバ、証明書検証方法、および証明書検証プログラムに関し、具体的には、公開鍵暗号通信において証明書の有効性を検証する証明書検証サーバの処理を高速化する技術に関する。 The present invention relates to a certificate verification server, a certificate verification method, and a certificate verification program, and more specifically, a technique for speeding up the processing of a certificate verification server that verifies the validity of a certificate in public key encryption communication. About.
今日、情報セキュリティに対する関心が高まっており、公共・民間分野共に情報セキュリティに配慮したインフラ整備が進められている。こうした情報セキュリティ技術の一つとして公開鍵認証基盤(以下PKI ; Public Key Infrastructure)がある。本発明で扱う証明書検証サーバとは、PKIにおいてクライアントの代わりに証明書の信頼性または有効性を検証し、その検証結果を応答するサーバである。また証明書検証サーバは、前記検証結果を応答する際に、認証局(CA)から発行された証明書に対応する秘密鍵を用いて、結果情報に署名付与を行い返信する。 Today, there is a growing interest in information security, and infrastructure development in consideration of information security is underway in both the public and private sectors. One of such information security technologies is public key infrastructure (PKI). The certificate verification server used in the present invention is a server that verifies the reliability or validity of a certificate instead of a client in PKI and responds with the verification result. Further, when responding with the verification result, the certificate verification server uses the private key corresponding to the certificate issued from the certificate authority (CA) to give a signature to the result information and send it back.
現在、企業間における証明書の検証処理に関するトランザクションは増加の傾向にある。これを受けて証明書検証サーバは、複数の秘密鍵に対応する検証処理を実施することに加え、高い応答性能が要求されている。PKIにおいては、公開鍵を公開し、ペアになる秘密鍵は他人に知られないように管理することで暗号の秘密性を保っており、すなわち証明書検証サーバで保管する上記秘密鍵は非常に重要なものであるため、第三者に流出しないよう厳重に管理する必要がある。 Currently, transactions related to certificate verification processing between companies are increasing. In response to this, the certificate verification server is required to have high response performance in addition to performing verification processing corresponding to a plurality of secret keys. In PKI, the public key is made public, and the secret key to be paired is managed so as not to be known to others, so that the confidentiality of the encryption is maintained, that is, the above private key stored in the certificate verification server is very Since it is important, it is necessary to strictly manage it so that it does not leak to a third party.
このため、証明書検証サーバでは、秘密鍵をハードウェア暗号モジュールで保管・管理するのが一般的である。このハードウェア暗号モジュールを利用した場合、秘密鍵の生成はハードウェア暗号モジュール内部で実行され、また、秘密鍵による署名付与といった秘密鍵を利用する演算処理もハードウェア暗号モジュール内部で処理される。したがって前記秘密鍵がハードウェア暗号モジュール外に出ることがないため、秘密鍵の漏洩等のセキュリティ上の脅威を防ぐことができる。 For this reason, the certificate verification server generally stores and manages the private key with a hardware cryptographic module. When this hardware cryptographic module is used, generation of a secret key is executed inside the hardware cryptographic module, and arithmetic processing using the secret key such as signature addition by the secret key is also processed inside the hardware cryptographic module. Therefore, since the secret key does not go out of the hardware cryptographic module, security threats such as leakage of the secret key can be prevented.
前記証明書検証サーバは、クライアントから証明書検証要求を受けると、図8に示すように以下の手順で検証処理を行う。
(a)クライアントから受け取った証明書が信頼できるかどうかを検証する。
(b)上記検証結果に従ってレスポンスデータを生成する。
(c)ハードウェア暗号モジュールと通信を行い、ハードウェア暗号モジュールに保持されている証明書検証サーバの秘密鍵を用いて署名値を生成する。
(d)証明書検証サーバの署名、証明書を添付したものを、前記クライアントへ応答する。
Upon receiving a certificate verification request from the client, the certificate verification server performs verification processing according to the following procedure as shown in FIG.
(a) Verify whether the certificate received from the client can be trusted.
(b) Generate response data according to the verification result.
(c) Communicate with the hardware cryptographic module, and generate a signature value using the private key of the certificate verification server held in the hardware cryptographic module.
(d) A certificate verification server signature and a certificate attached are returned to the client.
上記(c)の処理における証明書検証サーバとハードウェア暗号モジュールとの間の通信には、非特許文献1にて示されるように、標準のインタフェースであるPKCS#11ライブラリが用いられる。証明書検証サーバが既に起動している場合において、この標準インタフェースを用いた場合の証明書検証サーバとハードウェア暗号モジュールとの間の処理を図3に示す。
As shown in Non-Patent
この処理において、証明書検証サーバの起動状態では、既にハードウェア暗号モジュールとのセッションが確立されているため、(1)C_Logout(ハードウェア暗号モジュールからログアウトする:ステップs41)し、(2)C_CloseSession(証明書検証サーバのサービスを切断する:ステップs42)し、(3)C_Finalize(PKCS#11ライブラリを終了する:ステップs43)までの処理が必要となる。図3に示す手順に従い、まず証明書検証サーバは、(1)C_Logout(ハードウェア暗号モジュールからログアウトする:ステップs41)し、(2)C_CloseSession(証明書検証サーバのサービスを切断する:s42)し、(3)C_Finalize(PKCS#11ライブラリを終了する:s43)する。次に、(4)C_Initialize(PKCS#11ライブラリを初期化する:ステップs44)し、(5)C_OpenSession(証明書検証サーバのサービスを起動する:ステップs45)し、(6)C_Login(ハードウェア暗号モジュールにログインする:ステップs46)する。さらに、(7)C_FindObjectInit(署名を施すための秘密鍵情報の検索を開始する:ステップs47)し、(8)C_FindObject(秘密鍵情報の検索を行う:ステップs48)し、(9)C_FindObjectFinal(秘密鍵情報を取得した後、秘密鍵情報の検索を終了する:ステップs49)する。最後に、(10)C_SignInit(署名処理を初期化する:ステップs50)し、(11)C_Sign(データに署名をする:ステップs51)する。
例えばコンテンツ保証システムとして証明書検証サーバを設置し、この証明書検証サーバがコンテンツの署名検証のための証明書を検証する場合、当該証明書検証サーバの性能として約19件/秒、500ミリ秒/件の顧客要求が想定される。上記従来の証明書検証方法において、前記顧客要求を満たす性能を達成することが難しくなる場合がある。 For example, when a certificate verification server is installed as a content assurance system and this certificate verification server verifies a certificate for content signature verification, the performance of the certificate verification server is about 19 cases / second, 500 milliseconds. / Customer requests are assumed. In the conventional certificate verification method, it may be difficult to achieve performance that satisfies the customer requirements.
これは、ハードウェア暗号モジュールへの秘密鍵の追加・削除を検知すると、証明書検証サーバが検証結果情報に署名をする度にハードウェア暗号モジュールに保管・管理されている秘密鍵を前記ハードウェア暗号モジュールからロードしなければならないこと、かつ署名の度にロードした秘密鍵から該当する秘密鍵の検索を行わなければならないことによる。 This is because when the addition / deletion of the private key to the hardware cryptographic module is detected, each time the certificate verification server signs the verification result information, the private key stored / managed in the hardware cryptographic module is This is because it must be loaded from the cryptographic module, and the corresponding private key must be searched from the private key loaded each time it is signed.
ここで、ハードウェア暗号モジュールへの秘密鍵の追加・削除は、上述のPKIにおいて、証明書検証サーバ運用者によって行われる。証明書検証サーバ運用者の操作する端末は、ネットワークを介して証明書検証サーバと通信を行う。証明書検証サーバの秘密鍵の作成は、前記証明書検証サーバ運用者が、証明書検証サーバからハードウェア暗号モジュールに秘密鍵の作成要求を出すことで、前記ハードウェア暗号モジュール内で実行される。一方、証明書検証サーバの秘密鍵の削除は、上記証明書検証サーバ運用者が、証明書検証サーバからハードウェア暗号モジュールに秘密鍵の削除要求を出すことで、前記ハードウェア暗号モジュールで実行される。 Here, addition / deletion of the private key to / from the hardware cryptographic module is performed by the certificate verification server operator in the above PKI. The terminal operated by the certificate verification server operator communicates with the certificate verification server via the network. The creation of the private key of the certificate verification server is executed in the hardware cryptographic module when the certificate verification server operator issues a private key creation request from the certificate verification server to the hardware cryptographic module. . On the other hand, the deletion of the private key of the certificate verification server is executed by the hardware cryptographic module when the certificate verification server operator issues a private key deletion request from the certificate verification server to the hardware cryptographic module. The
こうした証明書検証サーバは、検証結果に前述の証明書検証サーバの署名を付与する際、上述のステップs41〜s46までの処理を、署名をする度に毎回行う必要があり、かつハードウェア暗号モジュールで保管・管理されている秘密鍵の数が多いほど、前記ステップs47〜s49までの処理に時間がかかることになる。 Such a certificate verification server needs to perform the processing from the above steps s41 to s46 every time it signs a signature when adding the signature of the certificate verification server to the verification result. As the number of secret keys stored and managed in (2) increases, the processing from step s47 to s49 takes longer.
そこで、本発明は上記課題を鑑みてなされたものであり、多数の証明書検証サーバの秘密鍵をハードウェア暗号モジュールに保管する場合にも、証明書検証処理の性能低下を防止し、所定のレスポンス性能を保証することができる技術の提供を目的とする。 Therefore, the present invention has been made in view of the above problems, and even when storing the secret keys of a large number of certificate verification servers in a hardware cryptographic module, it prevents the performance degradation of the certificate verification process, The purpose is to provide technology that can guarantee response performance.
本発明の証明書検証サーバは、クライアントからの証明書検証要求に応じて証明書検証と署名付与を行う証明書検証サーバであって、当該証明書検証サーバの秘密鍵を保管するハードウェア暗号モジュールと通信する通信装置と、秘密鍵のIDと、ハードウェア暗号モジュールで前記秘密鍵に対応付けされたハンドル値とを対応付けて格納する秘密鍵情報テーブルを格納する記憶装置と、前記証明書検証要求の対象である証明書についての検証を行ってレスポンスデータを生成する検証処理と、前記証明書検証要求の対象である証明書から秘密鍵のIDを取得し、この秘密鍵のIDを前記秘密鍵情報テーブルに照合して該当ハンドル値を特定するハンドル特定処理と、前記特定したハンドル値をキーにした署名依頼をハードウェア暗号モジュールに通知し、当該ハードウェア暗号モジュールから署名値を取得して、この署名値を用いて前記レスポンスデータへの署名付与を行う署名処理と、を実行する演算装置と、を備える。 The certificate verification server of the present invention is a certificate verification server that performs certificate verification and signature assignment in response to a certificate verification request from a client, and stores a hardware encryption module that stores the private key of the certificate verification server A communication device that communicates with a secret key ID table, and a storage device that stores a secret key information table that associates and stores a handle value associated with the secret key by a hardware cryptographic module, and the certificate verification A verification process for generating a response data by performing verification on the certificate that is the target of the request, and obtaining a secret key ID from the certificate that is the target of the certificate verification request, and obtaining the secret key ID as the secret key A hardware identification module that performs a handle identification process for identifying a corresponding handle value by collating with the key information table and a signature request using the identified handle value as a key. Notify Le acquires the signature value from the hardware cryptographic module, and a calculation unit for executing a signature process for signing to the response data using the signature value.
また、本発明の証明書検証サーバは、ハードウェア暗号モジュールに対して秘密鍵情報の検索要求を行い、ハードウェア暗号モジュールの保持する秘密鍵情報を取得し、当該秘密鍵情報の含むハンドル値と証明書検証サーバの秘密鍵のIDとを対応付けて前記秘密鍵情報テーブルに格納する鍵情報取得処理を実行するとしてもよい。 Further, the certificate verification server of the present invention makes a request for searching for the secret key information to the hardware cryptographic module, acquires the secret key information held by the hardware cryptographic module, and handles the handle value included in the secret key information. It is also possible to execute a key information acquisition process in which the ID of the private key of the certificate verification server is associated and stored in the private key information table.
また、本発明の証明書検証サーバにおいて、前記鍵情報取得処理は、前記証明書検証サーバの起動時、または当該証明書検証サーバ経由の指示でハードウェア暗号モジュールへ秘密鍵が追加・削除されたことを検知し、実行するとしてもよい。 Further, in the certificate verification server of the present invention, the key information acquisition process is performed by adding / deleting a secret key to the hardware cryptographic module when starting the certificate verification server or by an instruction via the certificate verification server. This may be detected and executed.
また、本発明の証明書検証方法は、クライアントからの証明書検証要求に応じて証明書検証と署名付与を行うコンピュータが、当該証明書検証サーバの秘密鍵を保管するハードウェア暗号モジュールと通信する通信装置と、秘密鍵のIDと、ハードウェア暗号モジュールで前記秘密鍵に対応付けされたハンドル値とを対応付けて格納する秘密鍵情報テーブルを格納する記憶装置と、演算装置とを備えて、前記証明書検証要求の対象である証明書についての検証を行ってレスポンスデータを生成する検証処理と、前記証明書検証要求の対象である証明書から秘密鍵のIDを取得し、この秘密鍵のIDを前記秘密鍵情報テーブルに照合して該当ハンドル値を特定するハンドル特定処理と、前記特定したハンドル値をキーにした署名依頼をハードウェア暗号モジュールに通知し、当該ハードウェア暗号モジュールから署名値を取得して、この署名値を用いて前記レスポンスデータへの署名付与を行う署名処理と、を行うことを特徴とする。 In the certificate verification method of the present invention, a computer that performs certificate verification and signature assignment in response to a certificate verification request from a client communicates with a hardware cryptographic module that stores the private key of the certificate verification server. A storage device for storing a communication device, a secret key ID table, and a secret key information table for storing a handle value associated with the secret key in a hardware cryptographic module, and an arithmetic device; A verification process for generating a response data by verifying a certificate that is a target of the certificate verification request; and obtaining a private key ID from the certificate that is a target of the certificate verification request. A hardware identification process for identifying the corresponding handle value by comparing the ID with the secret key information table and a signature request using the identified handle value as a key are performed by hardware. Notify A cryptographic module obtains the signature value from the hardware cryptographic module, and performs a signature process for signing to the response data using the signature value.
また、本発明の証明書検証プログラムは、クライアントからの証明書検証要求に応じて証明書検証と署名付与を行うべく、当該証明書検証サーバの秘密鍵を保管するハードウェア暗号モジュールと通信する通信装置と、秘密鍵のIDと、ハードウェア暗号モジュールで前記秘密鍵に対応付けされたハンドル値とを対応付けて格納する秘密鍵情報テーブルを格納する記憶装置と、演算装置とを備えコンピュータに、前記証明書検証要求の対象である証明書についての検証を行ってレスポンスデータを生成するステップと、前記証明書検証要求の対象である証明書から秘密鍵のIDを取得し、この秘密鍵のIDを前記秘密鍵情報テーブルに照合して該当ハンドル値を特定するステップと、前記特定したハンドル値をキーにした署名依頼をハードウェア暗号モジュールに通知し、当該ハードウェア暗号モジュールから署名値を取得して、この署名値を用いて前記レスポンスデータへの署名付与を行うステップと、を実行させるプログラムである。 In addition, the certificate verification program of the present invention is a communication that communicates with a hardware cryptographic module that stores a private key of the certificate verification server in order to perform certificate verification and signature assignment in response to a certificate verification request from a client. A computer comprising: a device, a secret key ID table, a storage device storing a secret key information table in which a hardware cryptographic module associates and stores a handle value associated with the secret key, and an arithmetic device; Verifying the certificate that is the subject of the certificate validation request and generating response data; obtaining a private key ID from the certificate that is the subject of the certificate validation request; and The corresponding secret key information table to identify the corresponding handle value, and a signature request using the identified handle value as a key is Notify A cryptographic module obtains the signature value from the hardware cryptographic module, a program for executing and performing the signing to the response data using the signature value.
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。 In addition, the problems disclosed by the present application and the solutions thereof will be clarified by the embodiments of the present invention and the drawings.
本発明によれば、多数の証明書検証サーバの秘密鍵をハードウェア暗号モジュールに保管する場合にも、証明書検証処理の性能低下を防止し、所定のレスポンス性能を保証することができる。 According to the present invention, even when the secret keys of a large number of certificate verification servers are stored in the hardware cryptographic module, it is possible to prevent a decrease in the performance of the certificate verification process and to guarantee a predetermined response performance.
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は本実施形態における証明書検証サーバ100を含むネットワーク構成図である。本実施形態における証明書検証サーバ100は、クライアントからの証明書検証要求に応じて証明書検証と署名付与を行うものである。図1におけるネットワーク構成では、前記証明書検証サーバ100に証明書検証要求を行うクライアント1と、クライアント1から送付された証明書の有効性および信頼性確認を行う前記証明書検証サーバ100と、それら接続するインターネット等のネットワーク140、証明書検証サーバ100の秘密鍵を保管・管理するハードウェア暗号モジュール200とからなる。
--- System configuration ---
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a network configuration diagram including a
こうした前記証明書検証サーバ100(以下、サーバ100)は、本発明の証明書検証方法を実行する機能を実現すべくハードディスクドライブなどの記憶装置101に格納されているプログラム102を、揮発性メモリなどの一次保存領域(以下、メモリ)103に読み出して演算装置たるCPU104により実行する。また、前記サーバ100は、前記クライアント1やハードウェア暗号モジュール200との間のデータ授受を担う通信手段107などを有している。
The certificate verification server 100 (hereinafter referred to as server 100) stores a
続いて、前記サーバ100が例えばプログラム102に基づき構成・保持する機能部につき説明を行う。なお、前記サーバ100は、記憶装置101において、前記秘密鍵情報テーブル125を利用可能である。また、前記ハードウェア暗号モジュール200は前記秘密鍵テーブル225を備えている。
Next, functional units that are configured and held by the
こうした前記サーバ100は、前記証明書検証要求の対象である証明書についての検証を行ってレスポンスデータを生成する検証部110を備える。
The
また、前記サーバ100は、前記証明書検証要求の対象である証明書から秘密鍵のIDを取得し、この秘密鍵のIDを前記秘密鍵情報テーブル125に照合して該当ハンドル値を特定するハンドル特定部111を備える。
Further, the
また、前記サーバ100は、前記特定したハンドル値をキーにした署名依頼をハードウェア暗号モジュール200に通知し、当該ハードウェア暗号モジュール200から署名値を取得して、この署名値を用いて前記レスポンスデータへの署名付与を行う署名部112を備える。
Further, the
また、前記サーバ100は、ハードウェア暗号モジュール200に対して秘密鍵情報の検索要求を行い、ハードウェア暗号モジュール200の保持する秘密鍵情報を取得し、当該秘密鍵情報の含むハンドル値と証明書検証サーバ100の秘密鍵のIDとを対応付けて前記秘密鍵情報テーブル125に格納する鍵情報取得部113を備えると出来る。
Further, the
なお、前記鍵情報取得部113は、前記証明書検証サーバ100の起動時、または当該証明書検証サーバ経由の指示でハードウェア暗号モジュール200へ秘密鍵が追加・削除されたことを検知し、前記秘密鍵情報の検索要求、秘密鍵情報の取得、ハンドル値と秘密鍵のIDとを対応付けて秘密鍵情報テーブル125へ格納、の各処理を実行するとしてもよい。
The key
また、前記サーバ100は、秘密鍵生成・削除命令部114を備えるとできる。この秘密鍵生成・削除命令部114は、ハードウェア暗号モジュール200が保持する証明書検証サーバ100の秘密鍵の更新処理を担う機能ブロックである。例えば、証明書検証サーバの管理者が適宜な端末を介して前記サーバ100にアクセスし、秘密鍵生成・削除命令を指示してきたとする。この時、前記秘密鍵生成・削除命令部114は、ハードウェア暗号モジュール200に対して、秘密鍵生成または削除の司令を転送する。ハードウェア暗号モジュール200の秘密鍵生成部210または秘密鍵削除部211は、前記司令を受け取って秘密鍵を生成または削除することとなる。こうしたサーバ100を経由した秘密鍵の生成・削除の司令がハードウェア暗号モジュール200に通知されることにより、ハードウェア暗号モジュール200の秘密鍵テーブル2251において、秘密鍵が追加または削除されたという秘密鍵の更新事象を前記サーバ100は自ずと検知することができる(自分自身を経由して前記司令が流れるからサーバ100自身で当然認識可能)。
The
なお、これまで示した サーバ100における各機能部110〜114は、ハードウェアとして実現してもよいし、各種の不揮発性メモリなど適宜な記憶装置に格納したプログラムとして実現するとしてもよい。この場合、サーバ100のCPUがプログラム実行に合わせて記憶装置より該当プログラムをメモリに読み出して、これを実行することとなる。
Note that each of the
また、前記ネットワーク140に関しては、インターネットやLANの他、携帯電話網、ATM回線や専用回線、WAN(Wide Area Network)、電灯線ネットワーク、公衆回線網など様々なネットワークを採用することも出来る。また、インターネットを採用した場合、VPN(Virtual Private Network)など仮想専用ネットワーク技術を用いれば、セキュリティ性を高めた通信が確立され好適である。
As the
−−−テーブル構造例−−−
次に、本実施形態におけるサーバ100が利用するテーブル類の構造について説明する。図2は本実施形態における、(a)秘密鍵情報テーブル125、(b)秘密鍵テーブル225の各データ構造例を示す図である。
前記秘密鍵情報テーブル125は、秘密鍵のラベル名(秘密鍵のID)とハードウェア暗号モジュール内での秘密鍵のハンドル値とを対にして格納したテーブルである。
また、前記秘密鍵テーブル225は、ハンドル値に秘密鍵を対応づけて格納しておくテーブルである。
--- Example of table structure ---
Next, the structure of the tables used by the
The secret key information table 125 is a table that stores a secret key label name (secret key ID) and a secret key handle value in the hardware cryptographic module in pairs.
The secret key table 225 is a table that stores a handle value in association with a secret key.
−−−処理フロー例1−−−
以下、本実施形態における証明書検証方法の実際手順について、図に基づき説明する。なお、以下で説明する証明書検証方法に対応する各種動作のうち前記サーバ100に関するものは、前記サーバ100が記憶装置101からメモリ103に読み出して実行するプログラム102によって実現される。そして、これらのプログラム102らは、以下に説明される各種の動作を行うためのコードから構成されている。
--- Processing flow example 1 ---
Hereinafter, the actual procedure of the certificate verification method according to the present embodiment will be described with reference to the drawings. Of the various operations corresponding to the certificate verification method described below, those related to the
図3は、本実施形態の証明書検証方法の処理手順例1を示す図である。この処理手順例は前記サーバ100とハードウェア暗号モジュール200との通信において、従来の方法による処理の流れを示す。ここで前記サーバ100は、証明書の検証結果(レスポンスデータ)にサーバ100の署名を付与する際、(1)C_Logout(ハードウェア暗号モジュールからログアウトする:s41)し、(2)C_CloseSession(証明書検証サーバのサービスを切断:s42)し、(3)C_Finalize(PKCS#11ライブラリを終了する:s43)し、(4)C_Initialize(PKCS#11ライブラリを初期化する:s44)し、(5)C_OpenSession(サービスを起動:s45)し、(6)C_Login(ハードウェア暗号モジュールにログインする:s46)し、(7)C_FindObjectsInit(秘密鍵情報の検索を開始する:s47)し、(8)C_FindObject(鍵情報の検索を行う:s48)し、(9)C_FindObjectFinal(秘密鍵情報の検索を終了する:s49)し、(10)C_SingnInit(署名処理を初期化する:s50)し、(11)C_Sign(データに署名をする:s51)する。
FIG. 3 is a diagram showing a processing procedure example 1 of the certificate verification method of the present embodiment. This processing procedure example shows a flow of processing according to a conventional method in communication between the
−−−処理フロー例2−−−
図4は、本実施形態の証明書検証方法の処理手順例2を示す図である。この処理手順例は、前記サーバ100において、署名の度に秘密鍵をハードウェア暗号モジュール200からロードする処理を省略した場合の処理の流れを示す。ここで、ハードウェア暗号モジュール200の備えるオプション機能によれば、(1)C_Logout(ハードウェア暗号モジュールからログアウトする:s41)から(6)C_Login(ハードウェア暗号モジュールにログインする:s46)までの処理は省略できる。これにより、前記サーバ100は、証明書の検証結果にサーバ100の署名を付与する際、(7)C_FindObjectsInit(秘密鍵情報の検索を開始する:s47)し、(8)C_FindObject(鍵情報の検索を行う:s48)し、(9)C_FindObjectFinal(秘密鍵情報の検索を終了する:s49)し、(10)C_SingnInit(署名処理を初期化する:s50)し、(11)C_Sign(データに署名をする:s51)を行えばよい。
--- Processing flow example 2 ---
FIG. 4 is a diagram illustrating a processing procedure example 2 of the certificate verification method according to the present embodiment. This processing procedure example shows a processing flow when the
−−−処理フロー例3−−−
図5は、本実施形態の証明書検証方法の処理手順例3を示す図である。この処理手順例は、秘密鍵情報を検索する処理の流れを示す。ここで前記サーバ100は、サーバ自身の起動時と、ハードウェア暗号モジュール200へ秘密鍵が追加・削除された際にこれを検知し、ハードウェア暗号モジュール200の保持する秘密鍵の情報を全て取得して更新する。すなわち、(7)C_FindObjectsInit(秘密鍵情報の検索を開始する:s47)し、(8)C_FindObject(鍵情報の検索を行う:s48)し、(9)C_FindObjectFinal(秘密鍵情報の検索を終了する:s49)の処理を、ハードウェア暗号モジュール200の保持する秘密鍵数だけ繰り返す。これにより、サーバ100内に最新の秘密鍵情報を秘密鍵情報テーブル125として保持することができる。前記サーバ100は、ハードウェア暗号モジュール200内に保持する鍵情報を全て読み込むまで、(7)C_FindObjectsInit(秘密鍵情報の検索を開始する:s47)し、(8)C_FindObject(鍵情報の検索を行う:s48)し、(9)C_FindObjectFinal(秘密鍵情報の検索を終了する:s49)する。これらの処理は、新しい鍵情報がハードウェア暗号モジュール200にないと判断された時、終了する。
--- Processing flow example 3 ---
FIG. 5 is a diagram showing a processing procedure example 3 of the certificate verification method of the present embodiment. This processing procedure example shows a flow of processing for searching for secret key information. Here, the
−−−処理フロー例4−−−
図6は、本実施形態の証明書検証方法の処理手順例4を示す図である。この処理手順例は、前記サーバ100の署名処理の流れを示した図である。図3にて示した全体処理から、上記図4および図5における処理により、(1)C_Logout(ハードウェア暗号モジュールからログアウトする:s41)から(9)C_FindObjectFinal(秘密鍵情報の検索を終了する:s49)までの処理は、署名処理に際しては省略することができる。つまり、サーバ100は、(10)C_SignInit(署名処理を初期化する:s50)し、(11)C_Sign(データに署名をする:s51)することによって、検証結果(レスポンスデータ)に署名を行うのである。
--- Processing flow example 4 ---
FIG. 6 is a diagram illustrating a processing procedure example 4 of the certificate verification method according to the present embodiment. This processing procedure example is a diagram showing a flow of signature processing of the
−−−処理フロー例5−−−
図7は、本実施形態の証明書検証方法の処理手順例5を示す図である。次に、前記サーバ100が前記秘密鍵情報テーブル125を保持している場合、前記サーバ100がクライアント1から証明書検証要求を受けた際に行う処理について説明する。この場合、前記サーバ100は、クライアント1から証明書検証要求を受けて(s61)、ここで受信した証明書検証要求に含まれる証明書が信頼できるかどうかを検証する(s62)。そして、この検証結果に従ってレスポンスデータを生成する(s63)。
また、前記受信した証明書から秘密鍵のIDたるラベル名を取得し(s64)、前記秘密鍵情報テーブル125より、図2(a)に示した証明書のラベル名に対応したハンドル値を特定する(s65)。そして、前記特定したハンドル値をキーにして秘密鍵の特定要求をハードウェア暗号モジュール200に行って、前記秘密鍵テーブル225において特定された秘密鍵の情報をハードウェア暗号モジュール200より得る(s66)。
続いて、前記サーバ100は、前記特定された秘密鍵による署名依頼をハードウェア暗号モジュール200に通知し、当該ハードウェア暗号モジュール200から署名値を取得して、この署名値を用いてレスポンスデータへの署名付与を行う(s67)。そして、このレスポンスデータにサーバ100の証明書を付与し(s68)し、検証結果として前記クライアント1へ応答する(s69)。
--- Processing flow example 5 ---
FIG. 7 is a diagram showing a processing procedure example 5 of the certificate verification method of the present embodiment. Next, processing performed when the
Further, a label name as a private key ID is acquired from the received certificate (s64), and a handle value corresponding to the label name of the certificate shown in FIG. 2A is specified from the private key information table 125. (S65). Then, a request for specifying a secret key is sent to the
Subsequently, the
以上、本実施形態によれば、従来システムで証明書検証サーバの署名処理に関して、ハードウェア暗号モジュールとの通信で繰り返し処理を実施していた処理部分を省略し署名処理ができるため、処理時間の大幅短縮が図れる。従来技術での処理形態と比較すると、本実施形態における署名処理時間は従来の約10分の1になる。秘密鍵の情報テーブル作成後の初めの検証時を例にとると、ハードウェア暗号モジュールのオプション機能と本実施形態の技術を適用することで1トランザクション当たりの性能は、従来システムの性能では760msであったのに対し、18msが実現できる。 As described above, according to the present embodiment, the signature processing of the certificate verification server in the conventional system can be performed by omitting the processing portion that has been repeatedly performed in communication with the hardware cryptographic module, so that the processing time can be reduced. Significant reduction can be achieved. Compared with the processing mode in the prior art, the signature processing time in the present embodiment is about 1/10 of the conventional processing mode. Taking the initial verification after the creation of the private key information table as an example, the performance per transaction is 760 ms in the performance of the conventional system by applying the optional function of the hardware cryptographic module and the technology of this embodiment. In contrast, 18 ms can be realized.
したがって、多数の証明書検証サーバの秘密鍵をハードウェア暗号モジュールに保管する場合にも、証明書検証処理の性能低下を防止し、所定のレスポンス性能を保証することができる。 Therefore, even when the secret keys of a large number of certificate verification servers are stored in the hardware cryptographic module, it is possible to prevent the performance degradation of the certificate verification process and to guarantee a predetermined response performance.
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。 As mentioned above, although embodiment of this invention was described concretely based on the embodiment, it is not limited to this and can be variously changed in the range which does not deviate from the summary.
1 クライアント
100 証明書検証サーバ
101、201 記憶装置
102、202 プログラム
103、203 メモリ
104、204 CPU
105、205 入力インターフェイス
106、206 出力インターフェイス
107、207 通信手段
110 検証部
111 特定部
112 署名部
113 鍵情報取得部
114 秘密鍵生成・削除命令部
125 秘密鍵情報テーブル
140 ネットワーク
200 ハードウェア暗号モジュール
210 秘密鍵生成部
211 秘密鍵削除部
225 秘密鍵テーブル
1
105, 205
Claims (5)
当該証明書検証サーバの秘密鍵を保管するハードウェア暗号モジュールと通信する通信装置と、
秘密鍵のIDと、ハードウェア暗号モジュールで前記秘密鍵に対応付けされたハンドル値とを対応付けて格納する秘密鍵情報テーブルを格納する記憶装置と、
前記証明書検証要求の対象である証明書についての検証を行ってレスポンスデータを生成する検証処理と、
前記証明書検証要求の対象である証明書から秘密鍵のIDを取得し、この秘密鍵のIDを前記秘密鍵情報テーブルに照合して該当ハンドル値を特定するハンドル特定処理と、
前記特定したハンドル値をキーにした署名依頼をハードウェア暗号モジュールに通知し、当該ハードウェア暗号モジュールから署名値を取得して、この署名値を用いて前記レスポンスデータへの署名付与を行う署名処理と、を実行する演算装置と、
を備える証明書検証サーバ。 A certificate verification server that performs certificate verification and signature assignment in response to a certificate verification request from a client,
A communication device that communicates with the hardware cryptographic module that stores the private key of the certificate verification server;
A storage device for storing a secret key information table for storing a secret key ID and a handle value associated with the secret key in a hardware cryptographic module;
A verification process for generating response data by verifying the certificate that is the target of the certificate verification request;
A handle specifying process for acquiring a secret key ID from the certificate that is the target of the certificate verification request, and checking the secret key ID against the secret key information table to specify a corresponding handle value;
A signature process for notifying a hardware cryptographic module of a signature request using the specified handle value as a key, obtaining a signature value from the hardware cryptographic module, and applying a signature to the response data using the signature value And an arithmetic device that executes
A certificate validation server comprising:
当該証明書検証サーバの秘密鍵を保管するハードウェア暗号モジュールと通信する通信装置と、秘密鍵のIDと、ハードウェア暗号モジュールで前記秘密鍵に対応付けされたハンドル値とを対応付けて格納する秘密鍵情報テーブルを格納する記憶装置と、演算装置とを備えて、
前記証明書検証要求の対象である証明書についての検証を行ってレスポンスデータを生成する検証処理と、
前記証明書検証要求の対象である証明書から秘密鍵のIDを取得し、この秘密鍵のIDを前記秘密鍵情報テーブルに照合して該当ハンドル値を特定するハンドル特定処理と、
前記特定したハンドル値をキーにした署名依頼をハードウェア暗号モジュールに通知し、当該ハードウェア暗号モジュールから署名値を取得して、この署名値を用いて前記レスポンスデータへの署名付与を行う署名処理と、
を行うことを特徴とする証明書検証方法。 A computer that performs certificate verification and signature assignment in response to a certificate verification request from a client
A communication device that communicates with a hardware cryptographic module that stores a secret key of the certificate verification server, a secret key ID, and a handle value associated with the secret key in the hardware cryptographic module are stored in association with each other. A storage device for storing the secret key information table, and an arithmetic device;
A verification process for generating response data by verifying the certificate that is the target of the certificate verification request;
A handle specifying process for acquiring a secret key ID from the certificate that is the target of the certificate verification request, and checking the secret key ID against the secret key information table to specify a corresponding handle value;
A signature process for notifying a hardware cryptographic module of a signature request using the specified handle value as a key, obtaining a signature value from the hardware cryptographic module, and applying a signature to the response data using the signature value When,
A certificate verification method characterized by:
前記証明書検証要求の対象である証明書についての検証を行ってレスポンスデータを生成するステップと、
前記証明書検証要求の対象である証明書から秘密鍵のIDを取得し、この秘密鍵のIDを前記秘密鍵情報テーブルに照合して該当ハンドル値を特定するステップと、
前記特定したハンドル値をキーにした署名依頼をハードウェア暗号モジュールに通知し、当該ハードウェア暗号モジュールから署名値を取得して、この署名値を用いて前記レスポンスデータへの署名付与を行うステップと、
を実行させる証明書検証プログラム。 A communication device that communicates with a hardware cryptographic module that stores a secret key of the certificate verification server, a secret key ID, and hardware in order to perform certificate verification and signature assignment in response to a certificate verification request from a client A computer comprising a storage device for storing a secret key information table for storing a handle value associated with the secret key in an encryption module, and a computing device.
Verifying the certificate that is the subject of the certificate verification request and generating response data;
Obtaining a secret key ID from the certificate that is the subject of the certificate verification request, and checking the secret key ID against the secret key information table to identify a corresponding handle value;
A step of notifying a hardware cryptographic module of a signature request using the specified handle value as a key, obtaining a signature value from the hardware cryptographic module, and applying a signature to the response data using the signature value; ,
Certificate validation program that runs
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007208403A JP5053756B2 (en) | 2007-08-09 | 2007-08-09 | Certificate verification server, certificate verification method, and certificate verification program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007208403A JP5053756B2 (en) | 2007-08-09 | 2007-08-09 | Certificate verification server, certificate verification method, and certificate verification program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009044557A true JP2009044557A (en) | 2009-02-26 |
JP5053756B2 JP5053756B2 (en) | 2012-10-17 |
Family
ID=40444793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007208403A Expired - Fee Related JP5053756B2 (en) | 2007-08-09 | 2007-08-09 | Certificate verification server, certificate verification method, and certificate verification program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5053756B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837634A (en) * | 2019-10-24 | 2020-02-25 | 杭州安存网络科技有限公司 | Electronic signature method based on hardware encryption machine |
CN113810412A (en) * | 2021-09-17 | 2021-12-17 | 国家工业信息安全发展研究中心 | Certificateless identification resolution identity trust control method, system and equipment |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002139996A (en) * | 2000-11-01 | 2002-05-17 | Nippon Telegr & Teleph Corp <Ntt> | Signature verification supporting device, method for confirming certificate and validity of public key, digital signature verifying method, and digital signature generating method |
JP2002163395A (en) * | 2000-11-27 | 2002-06-07 | Hitachi Software Eng Co Ltd | Method for supporting confirmation of electronic certificate validity and information processor used for the same |
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 |
JP2006270504A (en) * | 2005-03-24 | 2006-10-05 | Mitsubishi Electric Corp | Verification apparatus and communications system |
WO2007022039A1 (en) * | 2005-08-11 | 2007-02-22 | Microsoft Corporation | Revocation information management |
-
2007
- 2007-08-09 JP JP2007208403A patent/JP5053756B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002139996A (en) * | 2000-11-01 | 2002-05-17 | Nippon Telegr & Teleph Corp <Ntt> | Signature verification supporting device, method for confirming certificate and validity of public key, digital signature verifying method, and digital signature generating method |
JP2002163395A (en) * | 2000-11-27 | 2002-06-07 | Hitachi Software Eng Co Ltd | Method for supporting confirmation of electronic certificate validity and information processor used for the same |
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 |
JP2006270504A (en) * | 2005-03-24 | 2006-10-05 | Mitsubishi Electric Corp | Verification apparatus and communications system |
WO2007022039A1 (en) * | 2005-08-11 | 2007-02-22 | Microsoft Corporation | Revocation information management |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837634A (en) * | 2019-10-24 | 2020-02-25 | 杭州安存网络科技有限公司 | Electronic signature method based on hardware encryption machine |
CN110837634B (en) * | 2019-10-24 | 2023-10-27 | 杭州安存网络科技有限公司 | Electronic signature method based on hardware encryption machine |
CN113810412A (en) * | 2021-09-17 | 2021-12-17 | 国家工业信息安全发展研究中心 | Certificateless identification resolution identity trust control method, system and equipment |
Also Published As
Publication number | Publication date |
---|---|
JP5053756B2 (en) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11683187B2 (en) | User authentication with self-signed certificate and identity verification and migration | |
US12010248B2 (en) | Systems and methods for providing authentication to a plurality of devices | |
KR101000191B1 (en) | Secure software updates | |
US11539690B2 (en) | Authentication system, authentication method, and application providing method | |
CN110770695A (en) | Internet of things (IOT) device management | |
KR20210133985A (en) | Systems and methods for assuring new authenticators | |
US10721076B2 (en) | Method, device, terminal, and server for a security check | |
WO2019165667A1 (en) | Account migration method, apparatus, terminal device, and storage medium | |
US11050560B2 (en) | Secure reusable access tokens | |
US20220029808A1 (en) | System, Product and Method for Providing Secured Access to Data | |
US11868476B2 (en) | Boot-specific key access in a virtual device platform | |
US11777942B2 (en) | Transfer of trust between authentication devices | |
CN111200593A (en) | Application login method and device and electronic equipment | |
CN109150811B (en) | Method and device for realizing trusted session and computing equipment | |
JP2008539482A (en) | Method, system, and program product for connecting client to network | |
JP6581611B2 (en) | Authentication key sharing system and authentication key sharing method | |
CN115001766A (en) | Efficient multi-node batch remote certification method | |
US8732456B2 (en) | Enterprise environment disk encryption | |
JP5053756B2 (en) | Certificate verification server, certificate verification method, and certificate verification program | |
JP4018450B2 (en) | Document management system, document management apparatus, authentication method, computer readable program, and storage medium | |
US10972455B2 (en) | Secure authentication in TLS sessions | |
JP2024510461A (en) | Multi-factor authentication with connection resilience | |
KR102048534B1 (en) | Apparatus and method of authentication | |
CN113987461A (en) | Identity authentication method and device and electronic equipment | |
CN116781283A (en) | Signature method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120424 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120622 |
|
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: 20120710 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120726 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150803 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |