2009年04月12日

RFC 5280 の 4.2.1.13. CRL Distribution Points

「CRL 配布点」は CRL を配っている方法・場所を指定します。
この拡張はクリティカルではないべきです (SHOULD)。
しかし RFC 5280 は、認証局もアプリケーションのどちらも
「CRL 配布点」に対応していることを推奨します (RECOMMENDS)。
CRL に関しては 5 節にてより詳しく説明されるのでそちらを。
id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::=  { id-ce 31 }

CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint

DistributionPoint ::= SEQUENCE {
     distributionPoint       [0]     DistributionPointName OPTIONAL,
     reasons                 [1]     ReasonFlags OPTIONAL,
     cRLIssuer               [2]     GeneralNames OPTIONAL }

DistributionPointName ::= CHOICE {
     fullName                [0]     GeneralNames,
     nameRelativeToCRLIssuer [1]     RelativeDistinguishedName }

ReasonFlags ::= BIT STRING {
     unused                  (0),
     keyCompromise           (1),
     cACompromise            (2),
     affiliationChanged      (3),
     superseded              (4),
     cessationOfOperation    (5),
     certificateHold         (6),
     privilegeWithdrawn      (7),
     aACompromise            (8) }
cRLDistributionPoints は DistributionPoint の列で
DistributionPoint は
  • 配布点 (distributionPoint)
  • 理由 (reasons)
  • 発行者 (cRLIssuer)
の 3 つで構成されています、が、どれもオプションで省略可能です。
でも reason だけでは変なのでそれだけってのは無し (MUST NOT)、
distributionPoint か cRLIssuer はなくちゃいけません (MUST)。
証明書の発行者が CRL の発行者ではない場合には
cRLIssuer は必須で (MUST) 発行者の名前を記載します。
証明書の発行者が CRL の発行者の場合には
cRLIssuer は載せてはいけません (MUST)。
なので distributionPoint を載せなくてはいけません (MUST)。
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName

GeneralName ::= CHOICE {
     otherName                 [0]  AnotherName,
     rfc822Name                [1]  IA5String,
     dNSName                   [2]  IA5String,
     x400Address               [3]  ORAddress,
     directoryName             [4]  Name,
     ediPartyName              [5]  EDIPartyName,
     uniformResourceIdentifier [6]  IA5String,
     iPAddress                 [7]  OCTET STRING,
     registeredID              [8]  OBJECT IDENTIFIER }

RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue

AttributeTypeAndValue ::= SEQUENCE {
        type     AttributeType,
        value    AttributeValue }
distributionPoint を載せる場合には、
GeneralName の列から成る GeneralNames か
1 つの値の nameRelativeToCRLIssuer を記載します。
DistributionPointName を複数載せる場合には
方法は色々でも同じ CRL を指し示すようにします。
例えば LDAP と HTTP で同じ CRL を配布してあってそれを指定するとか。

distributionPoint が directoryName を含む場合には、
  • そのエントリには reason に関連した CRL を含む
  • その CRL の発行者は cRLIssuer
CRL は certificateRevocationList または authorityRevocationList という
属性に格納されます。
ディレクトリサーバがローカルで動作しているとしても
CRL を入手することができるようにしないといけません。
プロトコルに何を使うかは local matter、好きにしろってこと?

DistributionPointName が URL で指定されてる場合、
次の意味であることが仮定されます:
  • URL は reason に関連した CRL を指す
  • その CRL の発行者は cRLIssuer
URI のスキームが HTTP/FTP の場合、RFC 2585 に従って
URI の先は 1 つの DER でエンコードされた CRL でなくてはいけない (MUST)。
HTTP サーバは Content-type に application/pkix-crl を返すべき (SHOULD)。
RFC 4516 の LDAP URI スキームを使う場合
  • URI は CRL を含む dn のフィールドを含まなくてはいけない (MUST)
  • 1 つの CRL を含む属性の適当な attrdesc を含まなくてはいけない (MUST) (RFC 4523)
  • ホスト部分を含むべき (SHOULD)
ホスト部分を省略しちゃうと
アプリケーションがどこ接続するか分かったもんじゃないですからね。
DistributionPointName を若し記載するなら、
LDAP か HTTP な URI を含むべき (SHOULD)。

DistributionPointName が 1 つの nameRelativeToCRLIssuer を含む場合、
その値は DN fragment を意味する。
fragment は配布点を記載する為に
X.500 番台の CRL 発行者の DN に追加されたものです。
DistributionPoint に cRLIssuer が記載されている場合、
fragment が DN に追加されます。
そうでなかったら、fragment は証明証の発行者の DN に追加されます。
RFC 5280 に従う認証局は、CRL 配布点を指定するのに
nameRelativeToCRLIssuer を使うべきではありません (SHOULD NOT)。
cRLIssuer が複数の DN を含む場合には、
DistributionPointName の nameRelativeToCRLIssuer を使ってはいけません (MUST NOT)。

DistributionPoint の reasons を省略する場合、
指されてる CRL は全ての理由に関する CRL を含んでなくてはいけません (MUST)。
RFC 5280 は reason によって CRL を分けることを推奨しません (RECOMMENDS)。
cRLDistributionPoints を証明証に記載する場合、
最低 1 つは全ての理由に関する CRL を記載しなくてはいけない (MUST)。

cRLIssuer は CRL に署名して発行したのが誰かを同定するのに使います。
cRLIssuer を記載するなら、中身は CRL の発行者の DN と合わせないといけません (MUST)。
DN エンコーディングも合わせなくてはいけません (MUST)。
cRLIssuer が記載されていて、その DN が CRL の配置されてる場所と対応しない場合、
認証局は distributionPoint も記載しなくてはいけません。
ラベル:RFC5280 CRL
posted by OJH at 15:12| Comment(0) | TrackBack(0) | 注疏 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

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

この広告は180日以上新しい記事の投稿がないブログに表示されております。