kdnakt blog

hello there.

ゆるTLSアドベントカレンダー 6日目:ワイルドカード証明書

この記事は ゆるTLS Advent Calendar 2021 の6日目の記事です。

 

ALPACA攻撃、TLS拡張、SNIと話が進んできたので、今日はワイルドカード証明書の話を。

 

 

[X.509証明書]

SSL証明書サーバ証明書、クライアント証明書。ルート証明書、中間証明書。

様々な名称で呼ばれるが、TLSプロトコルにおいて通信相手が正しいサーバであることを認証するための主要な手段として利用されている*1

 

この証明書に関連して、3つの標準がある。

証明書のフォーマットについて定めたX.509*2と、X509をベースにしたRFC5280と、証明書の発行に関するBaseline Requirements*3である。

フォーマットを定めた標準をもとに、X.509証明書とも呼ばれる。

 

X.509証明書のフォーマットとしては3つのバージョンがある。

バージョン1から利用できる「Subject(主体者)」フィールドに通信先ホスト名が、「Public Key(公開鍵)」フィールドに公開鍵が格納されており、TLSではこれらを認証と暗号化に利用する。

現在主に利用されているのは証明書の拡張が利用可能となったバージョン3である。

 

[ワイルドカード証明書]

X.509証明書の「Subject(主体者)」フィールドには単一のホスト名しか指定することができない。多数のサーバを管理する場合に、サーバごとに証明書を生成する手間や費用を省くため、「Subject Alternative Name(主体者の別名)」拡張が追加された。

 

それでも、サブドメインを後から追加したい場合に対応できないため、「*.example.com」のようにアスタリスクを指定したワイルドカード証明書が利用されるようになった。

このワイルドカード証明書を、異なるサブドメインで異なるアプリケーションプロトコルでの通信に利用している場合に問題となるのがALPACA攻撃ということになる。

kdnakt.hatenablog.com

 

ワイルドカード証明書の発行について、2021年の変更点として、ページ認証(ファイル認証)が利用できなくなるというものがある*4

info-globalsign.com

www.sakura.ad.jp

 

この変更は、2021年7月13日付のBaseline Requirements バージョン1.7.7の変更に由来する。

Baseline Requirementsは頻繁に更新されており、2020年8月のバージョン1.7.1では証明書の有効期限を398日以内にすることと定められた。

ssl.sakura.ad.jp

 

[まとめ]

*1:他の認証手段としてはRFC4279で定められているPre-Shared Key(PSK、事前共有鍵)による認証がある。TLS1.3ではセッション再開とPSKが統合されている。

kazu-yamamoto.hatenablog.jp

*2:国連機関であるITU-T(International Telecommunication Union Telecommunication Standardization Sector) が定めた。

*3:CA/Browser ForumというCA(認証局)とブラウザベンダの業界団体が2012年に定めた。正式名称はBaseline Requirements for the Issuance and Management of Publicly‐Trusted Certificates。2021年12月現在の最新はバージョン1.8.0。

*4:メール認証またはDNS認証はこれまで通り利用できる。