2009年01月12日

RFC 5280 の 4.2. Certificate Extensions

RFC 5280 の 4.2. Certificate Extensions

X.509 バージョン 3 で定義された拡張部分は
  • 利用者の詳しい情報
  • 公開鍵の詳しい情報
  • 認証局の間の関係
を記載する為に用意されました
「署名前証明書」の最後の部分に羅列されます
X.509 バージョン 3 では独自の拡張を追加することも想定しています

拡張部分の ASN.1 モジュールは以下の通りです:
   Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension

   Extension  ::=  SEQUENCE  {
        extnID      OBJECT IDENTIFIER,
        critical    BOOLEAN DEFAULT FALSE,
        extnValue   OCTET STRING
                    -- contains the DER encoding of an ASN.1 value
                    -- corresponding to the extension type identified
                    -- by extnID
        }
具体的にはこんな感じ
拡張

拡張には「OID・クリティカル・ASN.1 なビット列」の 3 つが記載されます
特定の拡張を 1 つの証明書に複数記載してはいけません (MUST NOT)
OID で拡張の種類が記載され、その内容がビット列で表現されます

クリティカルにはその拡張の重要度が True/False の BOOLEAN で記載されています
デフォルトは False です
  • 知らない・処理できないクリティカルな拡張があったらその証明書を拒否しないといけない (MUST)
  • 知らないクリティカルではない拡張があったら無視して良い (MAY)
  • 知っている拡張はクリティカルでなくても処理しなくてはいけない (MUST)

拡張を追加するのは構わないのですが、
クリティカルな拡張の扱いは気をつけて一般的な利用の妨げとならないようにしましょう。

以下の節では
インターネット PKI で使われる証明書に載せるお薦めの拡張と
どんな情報をどの拡張に載せるべきかということが述べられます。
クリティカルをどうすべきかも記載されます。

RFC 5280 で認証局がサポートすることが必須 (MUST) となっている拡張は
(認証局の証明書に記載されているべき拡張は?)
  • authority key identifiers (Sections 4.2.1.1)
  • subject key identifiers (Sections 4.2.1.2)
  • basic constraints (Section 4.2.1.9)
  • key usage (Section 4.2.1.3)
  • certificate policies (Section 4.2.1.4)
です
更に、サブジェクトが空の証明書には
  • subject alternative name extension (Section 4.2.1.6)
が記載されていなくてはいけません (MUST)

その他の拡張は OPTIONAL となります
RFC 5280 に従う認証局は RFC 5280 に載ってない拡張も処理できた方が良いです
証明書を発行者するとき RFC 5280 に載ってない拡張を載せることもできますが
クリティカルにしてしまうと相互運用を妨げてしまうので注意しましょう

証明書を利用するアプリケーション側で最低限知らないといけない拡張は (MUST)
key usage (Section 4.2.1.3)
  • certificate policies (Section 4.2.1.4)
  • subject alternative name (Section 4.2.1.6)
  • basic constraints (Section 4.2.1.9)
  • name constraints (Section 4.2.1.10)
  • policy constraints (Section 4.2.1.11)
  • extended key usage (Section 4.2.1.12)
  • inhibit anyPolicy (Section 4.2.1.14)
更に、以下の拡張を知っているべきです (SHOULD)
  • authority key identifiers (Sections 4.2.1.1)
  • subject key identifiers (Sections 4.2.1.2)
  • policy mappings (Section 4.2.1.5)
posted by OJH at 20:47| Comment(0) | TrackBack(0) | 注疏 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/112515629

この記事へのトラックバック