X.509証明書をより安全に管理するには?
2023-09-20 Marco Blume
ユーザーまたはデバイスの真正性と身元証明のために使用されます。一般に使用される証明書は、X.509(公開鍵証明書の形式を定義する国際電気通信連合(ITU)の標準規格)です。X.509証明書は、非対称暗号化方式に基づき、各証明書は一対の暗号鍵を使用します。一方の鍵は公開鍵であり、認証局(CA)が、その個人またはデバイスに属していることを確認します。もう一方は秘密鍵であり、セキュアに保護されています。
X.509証明書の主な使用例
- 暗号化されたhttps接続の設定、ウェブサーバー・ウェブブラウザ間でのデータ共有
- S/MIME標準による電子メールの暗号化・署名
- デジタル文書へのデジタル署名
- ソフトウェアへのデジタル署名
- 通信におけるユーザー認証
- VPN(Virtual Private Network)の設定、暗号化ファイルの共有
- ID認証(デジタルIDカード)
理論上、証明書が秘密鍵で署名され、その秘密鍵を外部から安全に保護する限り、証明書が確認する身元の改ざんや盗用は不可能であるはずです。
しかしながら、サイバー攻撃者は、依然として脆弱性、さらにはデジタル経済圏を混乱させる方法を探し続けています。マシンID管理会社のVenafiによると、攻撃者がデジタル証明書に魅力を感じる理由はさまざまですが、その主な理由は、デジタル証明書がもつ「信頼性」にあると言います。コード、文書、またはアプリケーションを、正しい組織または個人に結びつけるため、証明書は、支払いと身元証明を要求します。つまり、その組織または個人が実在し、証明書がその組織または個人のものであることを検証するのです。これにより、エンドユーザは、電子証明書によって通信セッションが保護されている限り、財務データを含む個人情報を安心して提供できると信じることになります。これを攻撃者は悪用するのです。
X.509証明書の最も重要な側面の1つとして、証明書の効果的な大規模管理が挙げられますが、その分、証明書の管理・実装は複雑であると一般に考えられ、特に、電子証明書の設定には、特定の専門知識が必要とされます。これは、証明書を常に最新の状態に保ち、効果的なトランザクションセキュリティを提供できるよう適切に設定されているか確認することが重要であるためです。
つまり、公開鍵と秘密鍵はセキュアに保管されなければなりません。証明書は、デジタルデータの一部でしかなく、ファイルシステム上のファイルまたはコンピューターのワーキングメモリに格納されます。すべての証明書は、非対称暗号化方式のもと、特定の鍵のペアに対して発行されます。そのうちの公開鍵は、証明書に格納されますが、一方の秘密鍵は、証明書の所有者がもつデバイス上にある別のファイルに保管されます。そしてこれこそに、セキュリティ上の落とし穴があるのです。 秘密鍵へのアクセスは、証明書の所有者に限られるが故に、定期的にセキュアな保管場所から秘密鍵を取り出し、CPUで暗号化処理を行う必要があります。ここを悪意ある攻撃者は狙います。
そこで、ソフトウェアライセンシングとソフトウェア保護を追求し続けるWibu-Systemsは、CodeMeter Certificate Vaultと呼ばれる、秘密鍵の整合性とセキュリティを維持するために設計されたソリューションを提案します。CodeMeter Certificate Vaultでは、証明書と鍵が、Wibu-Systemsの自動ライセンスライフサイクル管理ツールであるCodeMeter License Centralを経由し、安全な特殊ルートを通じて、USBやSDカード型のセキュアなハードウェア(CmDongle)へ保管されます。これら複雑な管理はすべて、ユーザーのバックグラウンド(必要に応じてCAも含む)で処理され、一度セキュアなCmDongleに格納された秘密鍵が、外部に漏れることはありません。従って、要求・更新・署名済み証明書を管理する上で、ユーザーは、技術面での細かい点について心配する必要はありません。
CodeMeter Certificate Vaultは、主要なインターフェイス(例:PKCS#11、Microsoft KSP、OpenSSL)をサポートしているため、既存のソフトウェア環境との連携が容易であり、実装の工数削減が期待できます。また、手軽なカスタマイズと、証明書・鍵のセキュアな移動を可能にする豊富なルートの存在により、CodeMeter Certificate Vaultは、様々な状況やクライアントのニーズに柔軟に対応できる汎用性の高いツールとしても利用されています。
ここからは、実際のユースケースをご紹介します。
ユースケース1:人物の認証
サービスエンジニアは、適切な証明書を提示し、自身の身元を証明して初めて、デバイスへのアクセスが可能になります。この証明書とそれに付随する鍵は、CmDongleまたは同様のコンテナに保存することができます。このソリューションは、例えば、ATMサービスを担う技術者に有効です。これは、高水準の安全性が求められる作業において、すべての手順が記録される必要があり、研修を受け、許可された技術者のみが、作業する資格を与えられることに起因します。
ユースケース2:セキュアな通信のためのマシンの認証
このようなケースでは、特定のデバイスにバインドされた証明書が必要になります。CodeMeter ASICを使用し、そのセキュリティ・チップをデバイスの内部に永続的に組み込むことが理想です。また、特定のハードウェアがネットワーク内で一意に識別でき、セキュアに通信できる環境が整っている必要があります。この例としては、標準プロトコル(例:OPC UA)を介することで、より大規模な産業ネットワークの一部となるPLCやスマートセンサーが挙げられます。このプロトコルは、OpenSSLフレームワークを使用してX.509証明書を処理し、ネットワーク内の通信を保護します。このような設定において、CodeMeter Certificate Vaultは、証明書のセキュアな保管と、秘密鍵による安全な暗号化処理に役立ちます。
ユースケース3:公開鍵基盤(PKI、Public Key Infrastructure)の作成
この場合、CodeMeter Certificate Vaultは、VPN接続、メール署名、またはプロセスドキュメントにおける真正性の証明として使用する証明書の作成・署名時に、署名者の秘密鍵を保護する役割を果たします。
CodeMeter Certificate Vaultの具体的な情報については、ホワイトペーパー『CodeMeter Certificate Vault:CodeMeter による証明書管理』をダウンロードしてご参照ください。
関連情報
- CodeMeter Certificate Vault:デジタル証明書をセキュアに管理するUSBトークンキー
- CmDongle:ソフトウェア認証用のUSBドングル
- CodeMeter License Central:ライセンスの作成・管理システム
- Keynote37:『CodeMeter Certificate Vault』
- Keynote39:『CodeMeterとX.509の証明書』
貴社の課題をCodeMeterで解決しませんか?
お気軽にお問合せください。製品説明および最適な使い方をご提案します。
お問合せ