企業の業種・規模を問わず、広範に利用されているプライベート認証局によるクライアント証明書認証ですが、ときどき「このシステムはクライアント証明書でログイン時の認証をしているから安心だ」という話を耳にします。

果たして、それは本当に "証明書認証、イコール、安心" といえる状態でしょうか?実は、クライアント証明書での認証を設定したとしても、まだ安心とはいえない場合があります。

そこで本記事では、利用するクライアント証明書認証が安心といえる場合の理由や、安全性を確保する方法について解説します。

クライアント証明書による認証が安心といえる理由

クライアント証明書による認証方式が安心といえる理由は、その証明書を発行している認証局(CA)の「鍵」が厳重に保護されているから、と弊社では考えています。

逆に言うと、CAの鍵(秘密にすべき鍵のため「CA秘密鍵」といいます)が高いレベルで保護されていなければ、システム管理者が意図しない不正な証明書を発行されかねないというセキュリティリスクが生じます。つまり、そのCAへの信頼性は十分に担保されているとは言えず、結果として、そのCAから発行されたクライアント証明書による認証の安全性にも疑問が呈される状態にあると考えられます。なお、これはクライアント証明書に限らず、TLSサーバ用の証明書や各種電子署名に使う証明書などにも当てはまります。

よって、たとえプライベート環境での利用であっても、CA秘密鍵の保護に関しては慎重に設計されるべきといえるでしょう。

安全なCA秘密鍵の保護の方法

一般的に、クライアント証明書の発行は、共用CAによる証明書発行サービス、あるいはプライベートCA機能を有するソフトウェアやアプライアンス製品などにより行われるケースが多いかと思います。

それらのサービスやソフトウェアによりCA秘密鍵の管理手法は異なりますが、大別してサーバ機器の内部で管理されるケースと、ハードウェア・セキュリティ・モジュール(HSM)と呼ばれる鍵保護のための専用装置内で管理されるケースがあります。

サーバ機器内部でCA秘密鍵が管理される場合は、ソフトウェア上でその鍵を使った演算(署名)処理が行われますが、そこに脆弱性などの不具合がある場合には、鍵データの漏洩リスクが生じます。それに対し、専用保護装置であるHSMで鍵を管理している場合は、演算処理を装置内部で行ってその結果をソフトウェアに渡すことで、装置の外にCA秘密鍵が出ることはないため、安全が確保されます。

では、CA秘密鍵を管理するHSMそのものに対する安全性はどのように確保されるのか、という疑問が出てくるかと思います。HSMはそのセキュアな機能により、国際的なセキュリティ認証であるFIPS 140(米国連邦政府の標準規格)やISO/IEC 15408(国際規格。もとは欧州のCommon Criteria)を通常は取得しており、その認証を有することが、装置自体の安全性の保証につながっているといえるでしょう。

まとめ

既にクライアント証明書を利用されている場合や、今後クライアント証明書の導入を検討する場合、日々の運用(証明書の発行・更新の操作の容易さ、ソフトウェアのアップデートやセキュリティパッチ対応など)や、発行した証明書のデバイスへの配布といった目に見えやすい点にどうしても意識が行きがちです。しかし、証明書を発行するCAの「鍵」がどのように管理されているかについても、認証利用におけるセキュリティレベルに関わる話になりますので、今一度確認してみてはいかがでしょうか?

トピック関連記事

#

2023年11月20日

CertbotとAtlasから発行したACME対応SSLサーバ証明書の設定方法

#

2021年06月15日

JSON先進署名フォーマット「JAdES」解説 【第2回】先進署名フォーマットとプロファイルとは何か

#

2017年08月30日

CAA (Certificate Authority Authorization)について

この記事を書きました

グローバルサインブログ編集部

グローバルサインカレッジ編集部
所属:GMOグローバルサイン マーケティング部
当サイトの運営・管理を担当。