日本のマイナンバーカード(個人番号カード)には、JPKI(公的個人認証サービス)の下で発行された2種類のX.509証明書――利用者証明用証明書と署名用証明書――が組み込まれている。これらはe-Taxでの確定申告など行政手続きに使われる政府系ルート認証局へとつながっており、ブラウザがWebサイトを検証する際に使うルート証明書とはまったく別系統の信頼チェーンだ。
証明書を構成するフィールド
- Subject — 証明書が誰に発行されたか(ドメイン、組織、または行政手続きの文脈では個人)。
- Issuer — 誰が証明書を発行したか(認証局、またはCA)。
- 有効期間 — 証明書が有効な開始日と終了日。
- 公開鍵 — 安全な接続の確立や署名の検証に使われる鍵。
- デジタル署名 — 発行者の署名で、他のすべてのフィールドの真正性を確認します。
同じ形式、別の信頼チェーン
JPKIの証明書とWebサイトのTLS証明書は、まったく同じX.509構造と同じ信頼の連鎖の仕組みを使っている――中間認証局が最終証明書に署名し、ルート認証局がその中間認証局に署名する。違うのはどの信頼ストアが検証するかだけだ。マイナンバーカードの読み取りソフトは政府系ルートを信頼するよう別途設定されており、ブラウザはHTTPSのためにまったく別の商用ルート群を信頼している――この2つの連鎖が交わる必要はない。
有効期間が制限されている理由
限定された有効期間(現代のWeb証明書では通常90日から1年)は、侵害された秘密鍵からのリスクを減らし、現行のセキュリティ標準に沿って暗号パラメータを定期的に更新することを強制します。
なぜこれが必要か
- ウェブサーバーの設定時にSSL証明書の問題を診断する。
- 外部サービスに頼らず証明書の有効期間と発行者を確認する。
- mTLS、クライアント証明書、またはJPKIのような制度を扱う際に証明書の構造を理解する。
自己署名証明書
証明書は、どのCAも介さず自分自身の秘密鍵で署名することができます――構造的には「本物」のX.509証明書と同じフィールドを持ち同一に見えますが、そのIssuerとSubjectは一致しています。これは同じ信頼の問題を極端な形にしたものだ――連鎖がどこにもたどり着かないため、自分の設定の外にはそれを信頼する理由が何もない。だからこそ社内テストには十分適している一方、それ以外の場では信頼できないと表示される。