暗号化・証明書

クライアント証明書 くらいあんとしょうめいしょ

クライアント証明書相互認証mTLSデバイス認証PKIゼロトラスト
クライアント証明書について教えて

簡単に言うとこんな感じ!

サーバーが「あなたは誰?」とクライアント側にも証明を求める仕組みだよ。通常のHTTPSはサーバーだけが証明書を持つけど、クライアント証明書を使うとユーザー・デバイスの本人確認もできるんだ。社員証みたいなものだよ!


クライアント証明書とは

クライアント証明書 とは、TLS通信でサーバー側ではなくクライアント(ユーザーやデバイス)の身元をサーバーに証明するためのデジタル証明書です。

通常のHTTPS接続では、サーバーのみが証明書を提示して「このサーバーは本物です」と証明します(片方向認証)。クライアント証明書を使うと、クライアント側も「このデバイス・ユーザーは正規のものです」と証明でき、相互TLS認証(mTLS が成立します。

主な用途:

  • 社内システムへのアクセス制限:証明書を持つデバイスのみ接続許可
  • VPN認証:パスワードに加えた強力な多要素認証として
  • API認証マイクロサービス間の認証(mTLS)
  • マイナンバーカード:個人番号カードに格納されたクライアント証明書
  • IoTデバイス認証:デバイスが正規品かどうかの確認

クライアント証明書の主な発行・管理方式

方式特徴適用例
プライベートCA自社CAで発行・管理社内システム・VPN
MDM(モバイルデバイス管理)端末に自動配布スマートフォン・PC管理
SCEP証明書の自動プロビジョニングネットワーク機器・IoT
ICカード/スマートカード物理媒体に格納マイナンバーカード・社員証
ソフトウェアキーストアOS証明書ストアに保管Windows/macOSの証明書管理

歴史と背景

  • 1990年代:SSL/TLS設計当初からクライアント証明書の相互認証機能は存在
  • 2000年代:VPN認証でクライアント証明書の利用が広がる
  • 2003年:日本で電子署名法施行、ICカードへの証明書格納が普及
  • 2016年:マイナンバーカードへの電子証明書搭載開始(住民基本台帳ネットワーク向け)
  • 2020年代ゼロトラストネットワーク移行に伴い、デバイス証明書による認証が再注目

サーバー証明書との違い

片方向TLS vs 相互TLS(mTLS) 通常のHTTPS(片方向) ブラウザ Webサーバー (証明書あり) サーバーのみ証明書を提示 mTLS(相互認証) クライアント (証明書あり) サーバー (証明書あり) 双方が証明書を提示・検証

関連する規格・RFC

規格・RFC番号内容
RFC 8446TLS 1.3(クライアント証明書の要求・提示フロー)
RFC 5280X.509証明書フォーマット
RFC 8894Simple Certificate Enrollment Protocol (SCEP)

関連用語

  • mTLS — クライアント証明書を使った相互TLS認証
  • PKI — クライアント証明書を発行・管理するための基盤
  • MFA・2FA — クライアント証明書が多要素認証の一要素として使われる
  • ゼロトラスト — デバイス証明書によるデバイス認証がゼロトラストの要素に