7 Network Working Group S. Farrell
8 Request for Comments: 3281 Baltimore Technologies
9 Category: Standards Track R. Housley
14 An Internet Attribute Certificate
15 Profile for Authorization
19 This document specifies an Internet standards track protocol for the
20 Internet community, and requests discussion and suggestions for
21 improvements. Please refer to the current edition of the "Internet
22 Official Protocol Standards" (STD 1) for the standardization state
23 and status of this protocol. Distribution of this memo is unlimited.
27 Copyright (C) The Internet Society (2002). All Rights Reserved.
31 This specification defines a profile for the use of X.509 Attribute
32 Certificates in Internet Protocols. Attribute certificates may be
33 used in a wide range of applications and environments covering a
34 broad spectrum of interoperability goals and a broader spectrum of
35 operational and assurance requirements. The goal of this document is
36 to establish a common baseline for generic applications requiring
37 broad interoperability as well as limited special purpose
38 requirements. The profile places emphasis on attribute certificate
39 support for Internet electronic mail, IPSec, and WWW security
44 1. Introduction................................................. 2
45 1.1 Delegation and AC chains............................... 4
46 1.2 Attribute Certificate Distribution ("push" vs. "pull"). 4
47 1.3 Document Structure..................................... 6
48 2. Terminology.................................................. 6
49 3. Requirements................................................. 7
50 4. Attribute Certificate Profile................................ 7
51 4.1 X.509 Attribute Certificate Definition................. 8
52 4.2 Profile of Standard Fields............................. 10
53 4.2.1 Version.......................................... 10
54 4.2.2 Holder........................................... 11
58 Farrell & Housley Standards Track [Page 1]
60 RFC 3281 An Internet Attribute Certificate April 2002
63 4.2.3 Issuer........................................... 12
64 4.2.4 Signature........................................ 12
65 4.2.5 Serial Number.................................... 12
66 4.2.6 Validity Period.................................. 13
67 4.2.7 Attributes....................................... 13
68 4.2.8 Issuer Unique Identifier......................... 14
69 4.2.9 Extensions....................................... 14
70 4.3 Extensions............................................. 14
71 4.3.1 Audit Identity................................... 14
72 4.3.2 AC Targeting..................................... 15
73 4.3.3 Authority Key Identifier......................... 17
74 4.3.4 Authority Information Access..................... 17
75 4.3.5 CRL Distribution Points.......................... 17
76 4.3.6 No Revocation Available.......................... 18
77 4.4 Attribute Types........................................ 18
78 4.4.1 Service Authentication Information............... 19
79 4.4.2 Access Identity.................................. 19
80 4.4.3 Charging Identity................................ 20
81 4.4.4 Group............................................ 20
82 4.4.5 Role............................................. 20
83 4.4.6 Clearance........................................ 21
84 4.5 Profile of AC issuer's PKC............................. 22
85 5. Attribute Certificate Validation............................. 23
86 6. Revocation................................................... 24
87 7. Optional Features............................................ 25
88 7.1 Attribute Encryption................................... 25
89 7.2 Proxying............................................... 27
90 7.3 Use of ObjectDigestInfo................................ 28
91 7.4 AA Controls............................................ 29
92 8. Security Considerations...................................... 30
93 9. IANA Considerations.......................................... 32
94 10. References.................................................. 32
95 Appendix A: Object Identifiers.................................. 34
96 Appendix B: ASN.1 Module........................................ 35
97 Author's Addresses.............................................. 39
98 Acknowledgements................................................ 39
99 Full Copyright Statement........................................ 40
103 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
104 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
105 document are to be interpreted as described in BCP 14, RFC 2119.
107 X.509 public key certificates (PKCs) [X.509-1997, X.509-2000,
108 PKIXPROF] bind an identity and a public key. An attribute
109 certificate (AC) is a structure similar to a PKC; the main difference
110 being that the AC contains no public key. An AC may contain
114 Farrell & Housley Standards Track [Page 2]
116 RFC 3281 An Internet Attribute Certificate April 2002
119 attributes that specify group membership, role, security clearance,
120 or other authorization information associated with the AC holder.
121 The syntax for the AC is defined in Recommendation X.509, making the
122 term "X.509 certificate" ambiguous.
124 Some people constantly confuse PKCs and ACs. An analogy may make the
125 distinction clear. A PKC can be considered to be like a passport: it
126 identifies the holder, tends to last for a long time, and should not
127 be trivial to obtain. An AC is more like an entry visa: it is
128 typically issued by a different authority and does not last for as
129 long a time. As acquiring an entry visa typically requires
130 presenting a passport, getting a visa can be a simpler process.
132 Authorization information may be placed in a PKC extension or placed
133 in a separate attribute certificate (AC). The placement of
134 authorization information in PKCs is usually undesirable for two
135 reasons. First, authorization information often does not have the
136 same lifetime as the binding of the identity and the public key.
137 When authorization information is placed in a PKC extension, the
138 general result is the shortening of the PKC useful lifetime. Second,
139 the PKC issuer is not usually authoritative for the authorization
140 information. This results in additional steps for the PKC issuer to
141 obtain authorization information from the authoritative source.
143 For these reasons, it is often better to separate authorization
144 information from the PKC. Yet, authorization information also needs
145 to be bound to an identity. An AC provides this binding; it is
146 simply a digitally signed (or certified) identity and set of
149 An AC may be used with various security services, including access
150 control, data origin authentication, and non-repudiation.
152 PKCs can provide an identity to access control decision functions.
153 However, in many contexts the identity is not the criterion that is
154 used for access control decisions, rather the role or group-
155 membership of the accessor is the criterion used. Such access
156 control schemes are called role-based access control.
158 When making an access control decision based on an AC, an access
159 control decision function may need to ensure that the appropriate AC
160 holder is the entity that has requested access. One way in which the
161 linkage between the request or identity and the AC can be achieved is
162 the inclusion of a reference to a PKC within the AC and the use of
163 the private key corresponding to the PKC for authentication within
170 Farrell & Housley Standards Track [Page 3]
172 RFC 3281 An Internet Attribute Certificate April 2002
175 ACs may also be used in the context of a data origin authentication
176 service and a non-repudiation service. In these contexts, the
177 attributes contained in the AC provide additional information about
178 the signing entity. This information can be used to make sure that
179 the entity is authorized to sign the data. This kind of checking
180 depends either on the context in which the data is exchanged or on
181 the data that has been digitally signed.
183 1.1 Delegation and AC chains
185 The X.509 standard [X.509-2000] defines authorization as the
186 "conveyance of privilege from one entity that holds such privilege,
187 to another entity". An AC is one authorization mechanism.
189 An ordered sequence of ACs could be used to verify the authenticity
190 of a privilege asserter's privilege. In this way, chains or paths of
191 ACs could be employed to delegate authorization.
193 Since the administration and processing associated with such AC
194 chains is complex and the use of ACs in the Internet today is quite
195 limited, this specification does NOT RECOMMEND the use of AC chains.
196 Other (future) specifications may address the use of AC chains. This
197 specification deals with the simple cases, where one authority issues
198 all of the ACs for a particular set of attributes. However, this
199 simplification does not preclude the use of several different
200 authorities, each of which manages a different set of attributes.
201 For example, group membership may be included in one AC issued by one
202 authority, and security clearance may be included in another AC
203 issued by another authority.
205 This means that conformant implementations are only REQUIRED to be
206 able to process a single AC at a time. Processing of more than one
207 AC, one after another, may be necessary. Note however, that
208 validation of an AC MAY require validation of a chain of PKCs, as
209 specified in [PKIXPROF].
211 1.2 Attribute Certificate Distribution ("push" vs. "pull")
213 As discussed above, ACs provide a mechanism to securely provide
214 authorization information to, for example, access control decision
215 functions. However, there are a number of possible communication
218 In some environments, it is suitable for a client to "push" an AC to
219 a server. This means that no new connections between the client and
220 server are required. It also means that no search burden is imposed
221 on servers, which improves performance and that the AC verifier is
226 Farrell & Housley Standards Track [Page 4]
228 RFC 3281 An Internet Attribute Certificate April 2002
231 only presented with what it "needs to know." The "push" model is
232 especially suitable in inter-domain cases where the client's rights
233 should be assigned within the client's "home" domain.
235 In other cases, it is more suitable for a client to simply
236 authenticate to the server and for the server to request or "pull"
237 the client's AC from an AC issuer or a repository. A major benefit
238 of the "pull" model is that it can be implemented without changes to
239 the client or to the client-server protocol. The "pull" model is
240 especially suitable for inter-domain cases where the client's rights
241 should be assigned within the server's domain, rather than within the
244 There are a number of possible exchanges involving three entities:
245 the client, the server, and the AC issuer. In addition, a directory
246 service or other repository for AC retrieval MAY be supported.
248 Figure 1 shows an abstract view of the exchanges that may involve
249 ACs. This profile does not specify a protocol for these exchanges.
252 | | Server Acquisition
253 | AC issuer +----------------------------+
260 +--+-----------+ +--+------------+
262 | Client +-------------------------+ Server |
263 | | (part of app. protocol) | |
264 +--+-----------+ +--+------------+
267 | Lookup +--------------+ | Lookup
269 +---------------+ Repository +---------+
273 Figure 1: AC Exchanges
282 Farrell & Housley Standards Track [Page 5]
284 RFC 3281 An Internet Attribute Certificate April 2002
287 1.3 Document Structure
289 Section 2 defines some terminology. Section 3 specifies the
290 requirements that this profile is intended to meet. Section 4
291 contains the profile of the X.509 AC. Section 5 specifies rules for
292 AC validation. Section 6 specifies rules for AC revocation checks.
293 Section 7 specifies optional features which MAY be supported;
294 however, support for these features is not required for conformance
295 to this profile. Finally, appendices contain the list of OIDs
296 required to support this specification and an ASN.1 module.
300 For simplicity, we use the terms client and server in this
301 specification. This is not intended to indicate that ACs are only to
302 be used in client-server environments. For example, ACs may be used
303 in the S/MIME v3 context, where the mail user agent would be both a
304 "client" and a "server" in the sense the terms are used here.
308 AA Attribute Authority, the entity that issues the
309 AC, synonymous in this specification with "AC
311 AC Attribute Certificate
312 AC user any entity that parses or processes an AC
313 AC verifier any entity that checks the validity of an AC and
314 then makes use of the result
315 AC issuer the entity which signs the AC, synonymous in this
316 specification with "AA"
317 AC holder the entity indicated (perhaps indirectly) in the
318 holder field of the AC
319 Client the entity which is requesting the action for
320 which authorization checks are to be made
321 Proxying In this specification, Proxying is used to mean
322 the situation where an application server acts as
323 an application client on behalf of a user.
324 Proxying here does not mean granting of authority.
325 PKC Public Key Certificate - uses the type ASN.1
326 Certificate defined in X.509 and profiled in RFC
327 2459. This (non-standard) acronym is used in order
328 to avoid confusion about the term "X.509
330 Server the entity which requires that the authorization
338 Farrell & Housley Standards Track [Page 6]
340 RFC 3281 An Internet Attribute Certificate April 2002
345 This AC profile meets the following requirements.
347 Time/Validity requirements:
349 1. Support for short-lived as well as long-lived ACs. Typical
350 short-lived validity periods might be measured in hours, as
351 opposed to months for PKCs. Short validity periods allow ACs to
352 be useful without a revocation mechanism.
356 2. Issuers of ACs should be able to define their own attribute types
357 for use within closed domains.
359 3. Some standard attribute types, which can be contained within ACs,
360 should be defined. Examples include "access identity," "group,"
361 "role," "clearance," "audit identity," and "charging identity."
363 4. Standard attribute types should be defined in a manner that
364 permits an AC verifier to distinguish between uses of the same
365 attribute in different domains. For example, the "Administrators
366 group" as defined by Baltimore and the "Administrators group" as
367 defined by SPYRUS should be easily distinguished.
371 5. It should be possible to "target" an AC at one, or a small number
372 of, servers. This means that a trustworthy non-target server will
373 reject the AC for authorization decisions.
377 6. ACs should be defined so that they can either be "pushed" by the
378 client to the server, or "pulled" by the server from a repository
379 or other network service, including an online AC issuer.
381 4. Attribute Certificate Profile
383 ACs may be used in a wide range of applications and environments
384 covering a broad spectrum of interoperability goals and a broader
385 spectrum of operational and assurance requirements. The goal of this
386 document is to establish a common baseline for generic applications
387 requiring broad interoperability and limited special purpose
394 Farrell & Housley Standards Track [Page 7]
396 RFC 3281 An Internet Attribute Certificate April 2002
399 requirements. In particular, the emphasis will be on supporting the
400 use of attribute certificates for informal Internet electronic mail,
401 IPSec, and WWW applications.
403 This section presents a profile for ACs that will foster
404 interoperability. This section also defines some private extensions
405 for the Internet community.
407 While the ISO/IEC/ITU documents use the 1993 (or later) version of
408 ASN.1, this document uses the 1988 ASN.1 syntax, as has been done for
409 PKCs [PKIXPROF]. The encoded certificates and extensions from either
410 ASN.1 version are bit-wise identical.
412 Where maximum lengths for fields are specified, these lengths refer
413 to the DER encoding and do not include the ASN.1 tag or length
416 Conforming implementations MUST support the profile specified in this
419 4.1 X.509 Attribute Certificate Definition
421 X.509 contains the definition of an AC given below. All types that
422 are not defined in this document can be found in [PKIXPROF].
424 AttributeCertificate ::= SEQUENCE {
425 acinfo AttributeCertificateInfo,
426 signatureAlgorithm AlgorithmIdentifier,
427 signatureValue BIT STRING
430 AttributeCertificateInfo ::= SEQUENCE {
431 version AttCertVersion -- version is v2,
433 issuer AttCertIssuer,
434 signature AlgorithmIdentifier,
435 serialNumber CertificateSerialNumber,
436 attrCertValidityPeriod AttCertValidityPeriod,
437 attributes SEQUENCE OF Attribute,
438 issuerUniqueID UniqueIdentifier OPTIONAL,
439 extensions Extensions OPTIONAL
442 AttCertVersion ::= INTEGER { v2(1) }
443 Holder ::= SEQUENCE {
444 baseCertificateID [0] IssuerSerial OPTIONAL,
445 -- the issuer and serial number of
446 -- the holder's Public Key Certificate
450 Farrell & Housley Standards Track [Page 8]
452 RFC 3281 An Internet Attribute Certificate April 2002
455 entityName [1] GeneralNames OPTIONAL,
456 -- the name of the claimant or role
457 objectDigestInfo [2] ObjectDigestInfo OPTIONAL
458 -- used to directly authenticate the holder,
459 -- for example, an executable
462 ObjectDigestInfo ::= SEQUENCE {
463 digestedObjectType ENUMERATED {
466 otherObjectTypes (2) },
467 -- otherObjectTypes MUST NOT
468 -- be used in this profile
469 otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
470 digestAlgorithm AlgorithmIdentifier,
471 objectDigest BIT STRING
474 AttCertIssuer ::= CHOICE {
475 v1Form GeneralNames, -- MUST NOT be used in this
477 v2Form [0] V2Form -- v2 only
480 V2Form ::= SEQUENCE {
481 issuerName GeneralNames OPTIONAL,
482 baseCertificateID [0] IssuerSerial OPTIONAL,
483 objectDigestInfo [1] ObjectDigestInfo OPTIONAL
484 -- issuerName MUST be present in this profile
485 -- baseCertificateID and objectDigestInfo MUST NOT
486 -- be present in this profile
489 IssuerSerial ::= SEQUENCE {
491 serial CertificateSerialNumber,
492 issuerUID UniqueIdentifier OPTIONAL
495 AttCertValidityPeriod ::= SEQUENCE {
496 notBeforeTime GeneralizedTime,
497 notAfterTime GeneralizedTime
506 Farrell & Housley Standards Track [Page 9]
508 RFC 3281 An Internet Attribute Certificate April 2002
511 Although the Attribute syntax is defined in [PKIXPROF], we repeat
512 the definition here for convenience.
514 Attribute ::= SEQUENCE {
516 values SET OF AttributeValue
517 -- at least one value is required
520 AttributeType ::= OBJECT IDENTIFIER
522 AttributeValue ::= ANY DEFINED BY AttributeType
524 Implementers should note that the DER encoding (see [X.509-
525 1988],[X.208-1988]) of the SET OF values requires ordering of the
526 encodings of the values. Though this issue arises with respect to
527 distinguished names, and has to be handled by [PKIXPROF]
528 implementations, it is much more significant in this context, since
529 the inclusion of multiple values is much more common in ACs.
531 4.2 Profile of Standard Fields
533 GeneralName offers great flexibility. To achieve interoperability,
534 in spite of this flexibility, this profile imposes constraints on the
537 Conforming implementations MUST be able to support the dNSName,
538 directoryName, uniformResourceIdentifier, and iPAddress options.
539 This is compatible with the GeneralName requirements in [PKIXPROF]
540 (mainly in section 4.2.1.7).
542 Conforming implementations MUST NOT use the x400Address,
543 ediPartyName, or registeredID options.
545 Conforming implementations MAY use the otherName option to convey
546 name forms defined in Internet Standards. For example, Kerberos
547 [KRB] format names can be encoded into the otherName, using a
548 Kerberos 5 principal name OID and a SEQUENCE of the Realm and the
553 The version field MUST have the value of v2. That is, the version
554 field is present in the DER encoding.
562 Farrell & Housley Standards Track [Page 10]
564 RFC 3281 An Internet Attribute Certificate April 2002
567 Note: This version (v2) is not backwards compatible with the previous
568 attribute certificate definition (v1) from the 1997 X.509 standard
569 [X.509-1997], but is compatible with the v2 definition from X.509
574 The Holder field is a SEQUENCE allowing three different (optional)
575 syntaxes: baseCertificateID, entityName and objectDigestInfo. Where
576 only one option is present, the meaning of the Holder field is clear.
577 However, where more than one option is used, there is a potential for
578 confusion as to which option is "normative", which is a "hint" etc.
579 Since the correct position is not clear from [X.509-2000], this
580 specification RECOMMENDS that only one of the options be used in any
583 For any environment where the AC is passed in an authenticated
584 message or session and where the authentication is based on the use
585 of an X.509 PKC, the holder field SHOULD use the baseCertificateID.
587 With the baseCertificateID option, the holder's PKC serialNumber and
588 issuer MUST be identical to the AC holder field. The PKC issuer MUST
589 have a non-empty distinguished name which is to be present as the
590 single value of the holder.baseCertificateID.issuer construct in the
591 directoryName field. The AC holder.baseCertificateID.issuerUID field
592 MUST only be used if the holder's PKC contains an issuerUniqueID
593 field. If both the AC holder.baseCertificateID.issuerUID and the PKC
594 issuerUniqueID fields are present, the same value MUST be present in
595 both fields. Thus, the baseCertificateID is only usable with PKC
596 profiles (like [PKIXPROF]) which mandate that the PKC issuer field
597 contain a non-empty distinguished name value.
599 Note: An empty distinguished name is a distinguished name where the
600 SEQUENCE OF relative distinguished names is of zero length. In a DER
601 encoding, this has the value '3000'H.
603 If the holder field uses the entityName option and the underlying
604 authentication is based on a PKC, the entityName MUST be the same as
605 the PKC subject field or one of the values of the PKC subjectAltName
606 field extension (if present). Note that [PKIXPROF] mandates that the
607 subjectAltName extension be present if the PKC subject is an empty
608 distinguished name. See the security considerations section which
609 mentions some name collision problems that may arise when using the
612 In any other case where the holder field uses the entityName option,
613 only one name SHOULD be present.
618 Farrell & Housley Standards Track [Page 11]
620 RFC 3281 An Internet Attribute Certificate April 2002
623 Implementations conforming to this profile are not required to
624 support the use of the objectDigest field. However, section 7.3
625 specifies how this optional feature MAY be used.
627 Any protocol conforming to this profile SHOULD specify which AC
628 holder option is to be used and how this fits with the supported
629 authentication schemes defined in that protocol.
633 ACs conforming to this profile MUST use the v2Form choice, which MUST
634 contain one and only one GeneralName in the issuerName, which MUST
635 contain a non-empty distinguished name in the directoryName field.
636 This means that all AC issuers MUST have non-empty distinguished
637 names. ACs conforming to this profile MUST omit the
638 baseCertificateID and objectDigestInfo fields.
640 Part of the reason for the use of the v2Form containing only an
641 issuerName is that it means that the AC issuer does not have to know
642 which PKC the AC verifier will use for it (the AC issuer). Using the
643 baseCertificateID field to reference the AC issuer would mean that
644 the AC verifier would have to trust the PKC that the AC issuer chose
645 (for itself) at AC creation time.
649 Contains the algorithm identifier used to validate the AC signature.
651 This MUST be one of the signing algorithms defined in [PKIXALGS].
652 Conforming implementations MUST honor all MUST/SHOULD/MAY signing
653 algorithm statements specified in [PKIXALGS].
657 For any conforming AC, the issuer/serialNumber pair MUST form a
658 unique combination, even if ACs are very short-lived.
660 AC issuers MUST force the serialNumber to be a positive integer, that
661 is, the sign bit in the DER encoding of the INTEGER value MUST be
662 zero - this can be done by adding a leading (leftmost) '00'H octet if
663 necessary. This removes a potential ambiguity in mapping between a
664 string of octets and an integer value.
666 Given the uniqueness and timing requirements above, serial numbers
667 can be expected to contain long integers. AC users MUST be able to
668 handle serialNumber values longer than 4 octets. Conformant ACs MUST
669 NOT contain serialNumber values longer than 20 octets.
674 Farrell & Housley Standards Track [Page 12]
676 RFC 3281 An Internet Attribute Certificate April 2002
679 There is no requirement that the serial numbers used by any AC issuer
680 follow any particular ordering. In particular, they need not be
681 monotonically increasing with time. Each AC issuer MUST ensure that
682 each AC that it issues contains a unique serial number.
684 4.2.6 Validity Period
686 The attrCertValidityPeriod (a.k.a. validity) field specifies the
687 period for which the AC issuer certifies that the binding between the
688 holder and the attributes fields will be valid.
690 The generalized time type, GeneralizedTime, is a standard ASN.1 type
691 for variable precision representation of time. The GeneralizedTime
692 field can optionally include a representation of the time
693 differential between the local time zone and Greenwich Mean Time.
695 For the purposes of this profile, GeneralizedTime values MUST be
696 expressed in Coordinated universal time (UTC) (also known as
697 Greenwich Mean Time or Zulu)) and MUST include seconds (i.e., times
698 are YYYYMMDDHHMMSSZ), even when the number of seconds is zero.
699 GeneralizedTime values MUST NOT include fractional seconds.
701 (Note: this is the same as specified in [PKIXPROF], section
704 AC users MUST be able to handle an AC which, at the time of
705 processing, has parts of its validity period or all its validity
706 period in the past or in the future (a post-dated AC). This is valid
707 for some applications, such as backup.
711 The attributes field gives information about the AC holder. When the
712 AC is used for authorization, this will often contain a set of
715 The attributes field contains a SEQUENCE OF Attribute. Each
716 Attribute MAY contain a SET OF values. For a given AC, each
717 AttributeType OBJECT IDENTIFIER in the sequence MUST be unique. That
718 is, only one instance of each attribute can occur in a single AC, but
719 each instance can be multi-valued.
721 AC users MUST be able to handle multiple values for all attribute
724 An AC MUST contain at least one attribute. That is, the SEQUENCE OF
725 Attributes MUST NOT be of zero length.
730 Farrell & Housley Standards Track [Page 13]
732 RFC 3281 An Internet Attribute Certificate April 2002
735 Some standard attribute types are defined in section 4.4.
737 4.2.8 Issuer Unique Identifier
739 This field MUST NOT be used unless it is also used in the AC issuer's
740 PKC, in which case it MUST be used. Note that [PKIXPROF] states that
741 this field SHOULD NOT be used by conforming CAs, but that
742 applications SHOULD be able to parse PKCs containing the field.
746 The extensions field generally gives information about the AC as
747 opposed to information about the AC holder.
749 An AC that has no extensions conforms to the profile; however,
750 section 4.3 defines the extensions that MAY be used with this
751 profile, and whether or not they may be marked critical. If any
752 other critical extension is used, the AC does not conform to this
753 profile. However, if any other non-critical extension is used, the
754 AC does conform to this profile.
756 The extensions defined for ACs provide methods for associating
757 additional attributes with holders. This profile also allows
758 communities to define private extensions to carry information unique
759 to those communities. Each extension in an AC may be designated as
760 critical or non-critical. An AC using system MUST reject an AC if it
761 encounters a critical extension it does not recognize; however, a
762 non-critical extension may be ignored if it is not recognized.
763 Section 4.3 presents recommended extensions used within Internet ACs
764 and standard locations for information. Communities may elect to use
765 additional extensions; however, caution should be exercised in
766 adopting any critical extensions in ACs which might prevent use in a
773 In some circumstances, it is required (e.g. by data protection/data
774 privacy legislation) that audit trails not contain records which
775 directly identify individuals. This circumstance may make the use of
776 the AC holder field unsuitable for use in audit trails.
778 To allow for such cases, an AC MAY contain an audit identity
779 extension. Ideally it SHOULD be infeasible to derive the AC holder's
780 identity from the audit identity value without the cooperation of the
786 Farrell & Housley Standards Track [Page 14]
788 RFC 3281 An Internet Attribute Certificate April 2002
791 The value of the audit identity, along with the AC issuer/serial,
792 SHOULD then be used for audit/logging purposes. If the value of the
793 audit identity is suitably chosen, a server/service administrator can
794 use audit trails to track the behavior of an AC holder without being
795 able to identify the AC holder.
797 The server/service administrator in combination with the AC issuer
798 MUST be able to identify the AC holder in cases where misbehavior is
799 detected. This means that the AC issuer MUST be able to determine
800 the actual identity of the AC holder from the audit identity.
802 Of course, auditing could be based on the AC issuer/serial pair;
803 however, this method does not allow tracking of the same AC holder
804 with multiple ACs. Thus, an audit identity is only useful if it
805 lasts for longer than the typical AC lifetime. Auditing could also
806 be based on the AC holder's PKC issuer/serial; however, this will
807 often allow the server/service administrator to identify the AC
810 As the AC verifier might otherwise use the AC holder or some other
811 identifying value for audit purposes, this extension MUST be critical
814 Protocols that use ACs will often expose the identity of the AC
815 holder in the bits on-the-wire. In such cases, an opaque audit
816 identity does not make use of the AC anonymous; it simply ensures
817 that the ensuing audit trails do not contain identifying information.
819 The value of an audit identity MUST be longer than zero octets. The
820 value of an audit identity MUST NOT be longer than 20 octets.
822 name id-pe-ac-auditIdentity
825 criticality MUST be TRUE
829 To target an AC, the target information extension, imported from
830 [X.509-2000], MAY be used to specify a number of servers/services.
831 The intent is that the AC SHOULD only be usable at the specified
832 servers/services. An (honest) AC verifier who is not amongst the
833 named servers/services MUST reject the AC.
835 If this extension is not present, the AC is not targeted and may be
836 accepted by any server.
842 Farrell & Housley Standards Track [Page 15]
844 RFC 3281 An Internet Attribute Certificate April 2002
847 In this profile, the targeting information simply consists of a list
848 of named targets or groups.
850 The following syntax is used to represent the targeting information:
852 Targets ::= SEQUENCE OF Target
855 targetName [0] GeneralName,
856 targetGroup [1] GeneralName,
857 targetCert [2] TargetCert
860 TargetCert ::= SEQUENCE {
861 targetCertificate IssuerSerial,
862 targetName GeneralName OPTIONAL,
863 certDigestInfo ObjectDigestInfo OPTIONAL
866 The targetCert CHOICE within the Target structure is only present to
867 allow future compatibility with [X.509-2000] and MUST NOT be used.
869 The targets check passes if the current server (recipient) is one of
870 the targetName fields in the Targets SEQUENCE, or if the current
871 server is a member of one of the targetGroup fields in the Targets
872 SEQUENCE. In this case, the current server is said to "match" the
875 How the membership of a target within a targetGroup is determined is
876 not defined here. It is assumed that any given target "knows" the
877 names of the targetGroups to which it belongs or can otherwise
878 determine its membership. For example, the targetGroup specifies a
879 DNS domain, and the AC verifier knows the DNS domain to which it
880 belongs. For another example, the targetGroup specifies "PRINTERS,"
881 and the AC verifier knows whether or not it is a printer or print
884 Note: [X.509-2000] defines the extension syntax as a "SEQUENCE OF
885 Targets". Conforming AC issuer implementations MUST only produce one
886 "Targets" element. Confirming AC users MUST be able to accept a
887 "SEQUENCE OF Targets". If more than one Targets element is found in
888 an AC, the extension MUST be treated as if all Target elements had
889 been found within one Targets element.
891 name id-ce-targetInformation
893 syntax SEQUENCE OF Targets
894 criticality MUST be TRUE
898 Farrell & Housley Standards Track [Page 16]
900 RFC 3281 An Internet Attribute Certificate April 2002
903 4.3.3 Authority Key Identifier
905 The authorityKeyIdentifier extension, as profiled in [PKIXPROF], MAY
906 be used to assist the AC verifier in checking the signature of the
907 AC. The [PKIXPROF] description should be read as if "CA" meant "AC
908 issuer." As with PKCs, this extension SHOULD be included in ACs.
910 Note: An AC, where the issuer field used the baseCertificateID
911 CHOICE, would not need an authorityKeyIdentifier extension, as it is
912 explicitly linked to the key in the referred certificate. However,
913 as this profile states (in section 4.2.3), ACs MUST use the v2Form
914 with issuerName CHOICE, this duplication does not arise.
916 name id-ce-authorityKeyIdentifier
918 syntax AuthorityKeyIdentifier
919 criticality MUST be FALSE
921 4.3.4 Authority Information Access
923 The authorityInformationAccess extension, as defined in [PKIXPROF],
924 MAY be used to assist the AC verifier in checking the revocation
925 status of the AC. Support for the id-ad-caIssuers accessMethod is
926 NOT REQUIRED by this profile since AC chains are not expected.
928 The following accessMethod is used to indicate that revocation status
929 checking is provided for this AC, using the OCSP protocol defined in
932 id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
934 The accessLocation MUST contain a URI, and the URI MUST contain an
935 HTTP URL [URL] that specifies the location of an OCSP responder. The
936 AC issuer MUST, of course, maintain an OCSP responder at this
939 name id-ce-authorityInfoAccess
941 syntax AuthorityInfoAccessSyntax
942 criticality MUST be FALSE
944 4.3.5 CRL Distribution Points
946 The crlDistributionPoints extension, as profiled in [PKIXPROF], MAY
947 be used to assist the AC verifier in checking the revocation status
948 of the AC. See section 6 for details on revocation.
954 Farrell & Housley Standards Track [Page 17]
956 RFC 3281 An Internet Attribute Certificate April 2002
959 If the crlDistributionPoints extension is present, then exactly one
960 distribution point MUST be present. The crlDistributionPoints
961 extension MUST use the DistributionPointName option, which MUST
962 contain a fullName, which MUST contain a single name form. That name
963 MUST contain either a distinguished name or a URI. The URI MUST be
964 either an HTTP URL or an LDAP URL [URL].
966 name id-ce-cRLDistributionPoints
968 syntax CRLDistPointsSyntax
969 criticality MUST be FALSE
971 4.3.6 No Revocation Available
973 The noRevAvail extension, defined in [X.509-2000], allows an AC
974 issuer to indicate that no revocation information will be made
975 available for this AC.
977 This extension MUST be non-critical. An AC verifier that does not
978 understand this extension might be able to find a revocation list
979 from the AC issuer, but the revocation list will never include an
982 name id-ce-noRevAvail
984 syntax NULL (i.e. '0500'H is the DER encoding)
985 criticality MUST be FALSE
989 Some of the attribute types defined below make use of the
990 IetfAttrSyntax type, also defined below. The reasons for using this
993 1. It allows a separation between the AC issuer and the attribute
994 policy authority. This is useful for situations where a single
995 policy authority (e.g. an organization) allocates attribute
996 values, but where multiple AC issuers are deployed for performance
999 2. The syntaxes allowed for values are restricted to OCTET STRING,
1000 OBJECT IDENTIFIER, and UTF8String, which significantly reduces the
1001 complexity associated with matching more general syntaxes. All
1002 multi-valued attributes using this syntax are restricted so that
1003 each value MUST use the same choice of value syntax. For example,
1004 AC issuers must not use one value with an oid and a second value
1010 Farrell & Housley Standards Track [Page 18]
1012 RFC 3281 An Internet Attribute Certificate April 2002
1015 IetfAttrSyntax ::= SEQUENCE {
1016 policyAuthority [0] GeneralNames OPTIONAL,
1017 values SEQUENCE OF CHOICE {
1018 octets OCTET STRING,
1019 oid OBJECT IDENTIFIER,
1024 In the descriptions below, each attribute type is either tagged
1025 "Multiple Allowed" or "One Attribute value only; multiple values
1026 within the IetfAttrSyntax". This refers to the SET OF
1027 AttributeValues; the AttributeType still only occurs once, as
1028 specified in section 4.2.7.
1030 4.4.1 Service Authentication Information
1032 The SvceAuthInfo attribute identifies the AC holder to the
1033 server/service by a name, and the attribute MAY include optional
1034 service specific authentication information. Typically this will
1035 contain a username/password pair for a "legacy" application.
1037 This attribute provides information that can be presented by the AC
1038 verifier to be interpreted and authenticated by a separate
1039 application within the target system. Note that this is a different
1040 use to that intended for the accessIdentity attribute in 4.4.2 below.
1042 This attribute type will typically be encrypted when the authInfo
1043 field contains sensitive information, such as a password.
1045 name id-aca-authenticationInfo
1048 values: Multiple allowed
1050 SvceAuthInfo ::= SEQUENCE {
1051 service GeneralName,
1053 authInfo OCTET STRING OPTIONAL
1056 4.4.2 Access Identity
1058 The accessIdentity attribute identifies the AC holder to the
1059 server/service. For this attribute the authInfo field MUST NOT be
1066 Farrell & Housley Standards Track [Page 19]
1068 RFC 3281 An Internet Attribute Certificate April 2002
1071 This attribute is intended to be used to provide information about
1072 the AC holder, that can be used by the AC verifier (or a larger
1073 system of which the AC verifier is a component) to authorize the
1074 actions of the AC holder within the AC verifier's system. Note that
1075 this is a different use to that intended for the svceAuthInfo
1076 attribute described in 4.4.1 above.
1078 name id-aca-accessIdentity
1081 values: Multiple allowed
1083 4.4.3 Charging Identity
1085 The chargingIdentity attribute identifies the AC holder for charging
1086 purposes. In general, the charging identity will be different from
1087 other identities of the holder. For example, the holder's company
1088 may be charged for service.
1090 name id-aca-chargingIdentity
1092 syntax IetfAttrSyntax
1093 values: One Attribute value only; multiple values within the
1098 The group attribute carries information about group memberships of
1103 syntax IetfAttrSyntax
1104 values: One Attribute value only; multiple values within the
1109 The role attribute, specified in [X.509-2000], carries information
1110 about role allocations of the AC holder.
1112 The syntax used for this attribute is:
1114 RoleSyntax ::= SEQUENCE {
1115 roleAuthority [0] GeneralNames OPTIONAL,
1116 roleName [1] GeneralName
1122 Farrell & Housley Standards Track [Page 20]
1124 RFC 3281 An Internet Attribute Certificate April 2002
1127 The roleAuthority field MAY be used to specify the issuing authority
1128 for the role specification certificate. There is no requirement that
1129 a role specification certificate necessarily exists for the
1130 roleAuthority. This differs from [X.500-2000], where the
1131 roleAuthority field is assumed to name the issuer of a role
1132 specification certificate. For example, to distinguish the
1133 administrator role as defined by "Baltimore" from that defined by
1134 "SPYRUS", one could put the value "urn:administrator" in the roleName
1135 field and the value "Baltimore" or "SPYRUS" in the roleAuthority
1138 The roleName field MUST be present, and roleName MUST use the
1139 uniformResourceIdentifier CHOICE of the GeneralName.
1144 values: Multiple allowed
1148 The clearance attribute, specified in [X.501-1993], carries clearance
1149 (associated with security labeling) information about the AC holder.
1151 The policyId field is used to identify the security policy to which
1152 the clearance relates. The policyId indicates the semantics of the
1153 classList and securityCategories fields.
1155 This specification includes the classList field exactly as it is
1156 specified in [X.501-1993]. Additional security classification
1157 values, and their position in the classification hierarchy, may be
1158 defined by a security policy as a local matter or by bilateral
1159 agreement. The basic security classification hierarchy is, in
1160 ascending order: unmarked, unclassified, restricted, confidential,
1161 secret, and top-secret.
1163 An organization can develop its own security policy that defines
1164 security classification values and their meanings. However, the BIT
1165 STRING positions 0 through 5 are reserved for the basic security
1166 classification hierarchy.
1168 If present, the SecurityCategory field provides further authorization
1169 information. The security policy identified by the policyId field
1170 indicates the syntaxes that are allowed to be present in the
1171 securityCategories SET. An OBJECT IDENTIFIER identifies each of the
1172 allowed syntaxes. When one of these syntaxes is present in the
1173 securityCategories SET, the OBJECT IDENTIFIER associated with that
1174 syntax is carried in the SecurityCategory.type field.
1178 Farrell & Housley Standards Track [Page 21]
1180 RFC 3281 An Internet Attribute Certificate April 2002
1183 Clearance ::= SEQUENCE {
1184 policyId [0] OBJECT IDENTIFIER,
1185 classList [1] ClassList DEFAULT {unclassified},
1187 [2] SET OF SecurityCategory OPTIONAL
1190 ClassList ::= BIT STRING {
1199 SecurityCategory ::= SEQUENCE {
1200 type [0] IMPLICIT OBJECT IDENTIFIER,
1201 value [1] ANY DEFINED BY type
1204 -- This is the same as the original syntax which was defined
1205 -- using the MACRO construct, as follows:
1206 -- SecurityCategory ::= SEQUENCE {
1207 -- type [0] IMPLICIT SECURITY-CATEGORY,
1208 -- value [1] ANY DEFINED BY type
1211 -- SECURITY-CATEGORY MACRO ::=
1213 -- TYPE NOTATION ::= type | empty
1214 -- VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER)
1219 name { id-at-clearance }
1220 OID { joint-iso-ccitt(2) ds(5) module(1)
1221 selected-attribute-types(5) clearance (55) }
1222 syntax Clearance - imported from [X.501-1993]
1223 values Multiple allowed
1225 4.5 Profile of AC issuer's PKC
1227 The AC issuer's PKC MUST conform to [PKIXPROF], and the keyUsage
1228 extension in the PKC MUST NOT explicitly indicate that the AC
1229 issuer's public key cannot be used to validate a digital signature.
1230 In order to avoid confusion regarding serial numbers and revocations,
1234 Farrell & Housley Standards Track [Page 22]
1236 RFC 3281 An Internet Attribute Certificate April 2002
1239 an AC issuer MUST NOT also be a PKC Issuer. That is, an AC issuer
1240 cannot be a CA as well. So, the AC issuer's PKC MUST NOT have a
1241 basicConstraints extension with the cA BOOLEAN set to TRUE.
1243 5. Attribute Certificate Validation
1245 This section describes a basic set of rules that all valid ACs MUST
1246 satisfy. Some additional checks are also described which AC
1247 verifiers MAY choose to implement.
1249 To be valid an AC MUST satisfy all of the following:
1251 1. Where the holder uses a PKC to authenticate to the AC verifier,
1252 the AC holder's PKC MUST be found, and the entire certification
1253 path of that PKC MUST be verified in accordance with [PKIXPROF].
1254 As noted in the security considerations section, if some other
1255 authentication scheme is used, AC verifiers need to be very
1256 careful mapping the identities (authenticated identity, holder
1259 2. The AC signature must be cryptographically correct, and the AC
1260 issuer's entire PKC certification path MUST be verified in
1261 accordance with [PKIXPROF].
1263 3. The AC issuer's PKC MUST also conform to the profile specified in
1266 4. The AC issuer MUST be directly trusted as an AC issuer (by
1267 configuration or otherwise).
1269 5. The time for which the AC is being evaluated MUST be within the AC
1270 validity. If the evaluation time is equal to either notBeforeTime
1271 or notAfterTime, then the AC is timely and this check succeeds.
1272 Note that in some applications, the evaluation time MAY not be the
1273 same as the current time.
1275 6. The AC targeting check MUST pass as specified in section 4.3.2.
1277 7. If the AC contains an unsupported critical extension, the AC MUST
1280 Support for an extension in this context means:
1282 1. The AC verifier MUST be able to parse the extension value.
1284 2. Where the extension value SHOULD cause the AC to be rejected, the
1285 AC verifier MUST reject the AC.
1290 Farrell & Housley Standards Track [Page 23]
1292 RFC 3281 An Internet Attribute Certificate April 2002
1297 1. The AC MAY be rejected on the basis of further AC verifier
1298 configuration. For example, an AC verifier may be configured to
1299 reject ACs which contain or lack certain attributes.
1301 2. If the AC verifier provides an interface that allows applications
1302 to query the contents of the AC, then the AC verifier MAY filter
1303 the attributes from the AC on the basis of configured information.
1304 For example, an AC verifier might be configured not to return
1305 certain attributes to certain servers.
1309 In many environments, the validity period of an AC is less than the
1310 time required to issue and distribute revocation information.
1311 Therefore, short-lived ACs typically do not require revocation
1312 support. However, long-lived ACs and environments where ACs enable
1313 high value transactions MAY require revocation support.
1315 Two revocation schemes are defined, and the AC issuer should elect
1316 the one that is best suited to the environment in which the AC will
1319 "Never revoke" scheme:
1321 ACs may be marked so that the relying party understands that no
1322 revocation status information will be made available. The
1323 noRevAvail extension is defined in section 4.3.6, and the
1324 noRevAvail extension MUST be present in the AC to indicate use of
1327 Where no noRevAvail is present, the AC issuer is implicitly
1328 stating that revocation status checks are supported, and some
1329 revocation method MUST be provided to allow AC verifiers to
1330 establish the revocation status of the AC.
1332 "Pointer in AC" scheme:
1334 ACs may "point" to sources of revocation status information, using
1335 either an authorityInfoAccess extension or a crlDistributionPoints
1336 extension within the AC.
1338 For AC users, the "never revoke" scheme MUST be supported, and the
1339 "pointer in AC" scheme SHOULD be supported. If only the "never
1340 revoke" scheme is supported, then all ACs that do not contain a
1341 noRevAvail extension, MUST be rejected.
1346 Farrell & Housley Standards Track [Page 24]
1348 RFC 3281 An Internet Attribute Certificate April 2002
1351 For AC issuers, the "never revoke" scheme MUST be supported. If all
1352 ACs that will ever be issued by that AC issuer, contains a noRevAvail
1353 extension, the "pointer in AC" scheme need not be supported. If any
1354 AC can be issued that does not contain the noRevAvail extension, the
1355 "pointer in AC" scheme MUST be supported.
1357 An AC MUST NOT contain both a noRevAvail and a "pointer in AC".
1359 An AC verifier MAY use any source for AC revocation status
1362 7. Optional Features
1364 This section specifies features that MAY be implemented. Conformance
1365 to this profile does NOT require support for these features; however,
1366 if these features are offered, they MUST be offered as described
1369 7.1 Attribute Encryption
1371 Where an AC will be carried in clear within an application protocol
1372 or where an AC contains some sensitive information like a legacy
1373 application username/password, then encryption of AC attributes MAY
1376 When a set of attributes are to be encrypted within an AC, the
1377 Cryptographic Message Syntax, EnvelopedData structure [CMS] is used
1378 to carry the ciphertext and associated per-recipient keying
1381 This type of attribute encryption is targeted. Before the AC is
1382 signed, the attributes are encrypted for a set of predetermined
1385 The AC then contains the ciphertext inside its signed data. The
1386 EnvelopedData (id-envelopedData) ContentType is used, and the content
1387 field will contain the EnvelopedData type.
1389 The ciphertext is included in the AC as the value of an encAttrs
1390 attribute. Only one encAttrs attribute can be present in an AC;
1391 however, the encAttrs attribute MAY be multi-valued, and each of its
1392 values will contain an independent EnvelopedData.
1394 Each value can contain a set of attributes (each possibly a multi-
1395 valued attribute) encrypted for a set of predetermined recipients.
1402 Farrell & Housley Standards Track [Page 25]
1404 RFC 3281 An Internet Attribute Certificate April 2002
1407 The cleartext that is encrypted has the type:
1409 ACClearAttrs ::= SEQUENCE {
1410 acIssuer GeneralName,
1412 attrs SEQUENCE OF Attribute
1415 The DER encoding of the ACClearAttrs structure is used as the
1416 encryptedContent field of the EnvelopedData. The DER encoding MUST
1417 be embedded in an OCTET STRING.
1419 The acIssuer and acSerial fields are present to prevent ciphertext
1420 stealing. When an AC verifier has successfully decrypted an
1421 encrypted attribute, it MUST then check that the AC issuer and
1422 serialNumber fields contain the same values. This prevents a
1423 malicious AC issuer from copying ciphertext from another AC (without
1424 knowing its corresponding plaintext).
1426 The procedure for an AC issuer when encrypting attributes is
1427 illustrated by the following (any other procedure that gives the same
1428 result MAY be used):
1430 1. Identify the sets of attributes that are to be encrypted for
1431 each set of recipients.
1432 2. For each attribute set which is to be encrypted:
1433 2.1. Create an EnvelopedData structure for the data for this
1435 2.2. Encode the ContentInfo containing the EnvelopedData as a
1436 value of the encAttrs attribute.
1437 2.3. Ensure the cleartext attributes are not present in the
1439 3. Add the encAttrs (with its multiple values) to the AC.
1441 Note that there may be more than one attribute of the same type (the
1442 same OBJECT IDENTIFIER) after decryption. That is, an AC MAY contain
1443 the same attribute type both in clear and in encrypted form (and
1444 indeed several times if the same recipient is associated with more
1445 than one EnvelopedData). One approach implementers may choose, would
1446 be to merge attribute values following decryption in order to re-
1447 establish the "once only" constraint.
1449 name id-aca-encAttrs
1452 values Multiple Allowed
1458 Farrell & Housley Standards Track [Page 26]
1460 RFC 3281 An Internet Attribute Certificate April 2002
1463 If an AC contains attributes, apparently encrypted for the AC
1464 verifier, the decryption process MUST not fail. If decryption does
1465 fail, the AC MUST be rejected.
1469 When a server acts as a client for another server on behalf of the AC
1470 holder, the server MAY need to proxy an AC. Such proxying MAY have
1471 to be done under the AC issuer's control, so that not every AC is
1472 proxiable and so that a given proxiable AC can be proxied in a
1473 targeted fashion. Support for chains of proxies (with more than one
1474 intermediate server) MAY also be required. Note that this does not
1475 involve a chain of ACs.
1477 In order to meet this requirement we define another extension,
1478 ProxyInfo, similar to the targeting extension.
1480 When this extension is present, the AC verifier must check that the
1481 entity from which the AC was received was allowed to send it and that
1482 the AC is allowed to be used by this verifier.
1484 The proxying information consists of a set of proxy information, each
1485 of which is a set of targeting information. If the verifier and the
1486 sender of the AC are both named in the same proxy set, the AC can
1487 then be accepted (the exact rule is given below).
1489 The effect is that the AC holder can send the AC to any valid target
1490 which can then only proxy to targets which are in one of the same
1491 proxy sets as itself.
1493 The following data structure is used to represent the
1494 targeting/proxying information.
1496 ProxyInfo ::= SEQUENCE OF Targets
1498 As in the case of targeting, the targetCert CHOICE MUST NOT be used.
1500 A proxy check succeeds if either one of the conditions below is met:
1502 1. The identity of the sender, as established by the underlying
1503 authentication service, matches the holder field of the AC, and
1504 the current server "matches" any one of the proxy sets. Recall
1505 that "matches" is as defined section 4.3.2.
1514 Farrell & Housley Standards Track [Page 27]
1516 RFC 3281 An Internet Attribute Certificate April 2002
1519 2. The identity of the sender, as established by the underlying
1520 authentication service, "matches" one of the proxy sets (call it
1521 set "A"), and the current server is one of the targetName fields
1522 in the set "A", or the current server is a member of one of the
1523 targetGroup fields in set "A".
1525 When an AC is proxied more than once, a number of targets will be on
1526 the path from the original client, which is normally, but not always,
1527 the AC holder. In such cases, prevention of AC "stealing" requires
1528 that the AC verifier MUST check that all targets on the path are
1529 members of the same proxy set. It is the responsibility of the AC-
1530 using protocol to ensure that a trustworthy list of targets on the
1531 path is available to the AC verifier.
1533 name id-pe-ac-proxying
1536 criticality MUST be TRUE
1538 7.3 Use of ObjectDigestInfo
1540 In some environments, it may be required that the AC is not linked
1541 either to an identity (via entityName) or to a PKC (via
1542 baseCertificateID). The objectDigestInfo CHOICE in the holder field
1543 allows support for this requirement.
1545 If the holder is identified with the objectDigestInfo field, then the
1546 AC version field MUST contain v2 (the integer 1).
1548 The idea is to link the AC to an object by placing a hash of that
1549 object into the holder field of the AC. For example, this allows
1550 production of ACs that are linked to public keys rather than names.
1551 It also allows production of ACs which contain privileges associated
1552 with an executable object such as a Java class. However, this
1553 profile only specifies how to use a hash over a public key or PKC.
1554 That is, conformant ACs MUST NOT use the otherObjectTypes value for
1555 the digestedObjectType.
1557 To link an AC to a public key, the hash must be calculated over the
1558 representation of that public key which would be present in a PKC,
1559 specifically, the input for the hash algorithm MUST be the DER
1560 encoding of a SubjectPublicKeyInfo representation of the key. Note:
1561 This includes the AlgorithmIdentifier as well as the BIT STRING. The
1562 rules given in [PKIXPROF] for encoding keys MUST be followed. In
1563 this case, the digestedObjectType MUST be publicKey and the
1564 otherObjectTypeID field MUST NOT be present.
1570 Farrell & Housley Standards Track [Page 28]
1572 RFC 3281 An Internet Attribute Certificate April 2002
1575 Note that if the public key value used as input to the hash function
1576 has been extracted from a PKC, it is possible that the
1577 SubjectPublicKeyInfo from that PKC is NOT the value which should be
1578 hashed. This can occur if DSA Dss-parms are inherited as described
1579 in section 7.3.3 of [PKIXPROF]. The correct input for hashing in
1580 this context will include the value of the parameters inherited from
1581 the CA's PKC, and thus may differ from the SubjectPublicKeyInfo
1584 Implementations which support this feature MUST be able to handle the
1585 representations of public keys for the algorithms specified in
1586 section 7.3 of [PKIXPROF]. In this case, the digestedObjectType MUST
1587 be publicKey and the otherObjectTypeID field MUST NOT be present.
1589 In order to link an AC to a PKC via a digest, the digest MUST be
1590 calculated over the DER encoding of the entire PKC, including the
1591 signature value. In this case the digestedObjectType MUST be
1592 publicKeyCert and the otherObjectTypeID field MUST NOT be present.
1596 During AC validation a relying party has to answer the question: is
1597 this AC issuer trusted to issue ACs containing this attribute? The
1598 AAControls PKC extension MAY be used to help answer the question.
1599 The AAControls extension is intended to be used in CA and AC issuer
1602 id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 }
1604 AAControls ::= SEQUENCE {
1605 pathLenConstraint INTEGER (0..MAX) OPTIONAL,
1606 permittedAttrs [0] AttrSpec OPTIONAL,
1607 excludedAttrs [1] AttrSpec OPTIONAL,
1608 permitUnSpecified BOOLEAN DEFAULT TRUE
1611 AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER
1613 The AAControls extension is used as follows:
1615 The pathLenConstraint, if present, is interpreted as in [PKIXPROF].
1616 It restricts the allowed distance between the AA CA (a CA directly
1617 trusted to include AAControls in its PKCs), and the AC issuer.
1619 The permittedAttrs field specifies a set of attribute types that any
1620 AC issuer below this AA CA is allowed to include in ACs. If this
1621 field is not present, it means that no attribute types are explicitly
1626 Farrell & Housley Standards Track [Page 29]
1628 RFC 3281 An Internet Attribute Certificate April 2002
1631 The excludedAttrs field specifies a set of attribute types that no AC
1632 issuer is allowed to include in ACs. If this field is not present,
1633 it means that no attribute types are explicitly disallowed.
1635 The permitUnSpecified field specifies how to handle attribute types
1636 which are not present in either the permittedAttrs or excludedAttrs
1637 fields. TRUE (the default) means that any unspecified attribute type
1638 is allowed in ACs; FALSE means that no unspecified attribute type is
1641 When AAControls are used, the following additional checks on an AA's
1642 PKC chain MUST all succeed for the AC to be valid:
1644 1. Some CA on the ACs certificate path MUST be directly trusted to
1645 issue PKCs which precede the AC issuer in the certification path;
1646 call this CA the "AA CA".
1648 2. All PKCs on the path from the AA CA, down to and including the AC
1649 issuer's PKC, MUST contain an AAControls extension; however, the
1650 AA CA's PKC need not contain this extension.
1652 3. Only those attributes in the AC which are allowed, according to
1653 all of the AAControls extension values in all of the PKCs from the
1654 AA CA to the AC issuer, may be used for authorization decisions;
1655 all other attributes MUST be ignored. This check MUST be applied
1656 to the set of attributes following attribute decryption, and the
1657 id-aca-encAttrs type MUST also be checked.
1659 name id-pe-aaControls
1662 criticality MAY be TRUE
1664 8. Security Considerations
1666 The protection afforded for private keys is a critical factor in
1667 maintaining security. Failure of AC issuers to protect their private
1668 keys will permit an attacker to masquerade as them, potentially
1669 generating false ACs or revocation status. Existence of bogus ACs
1670 and revocation status will undermine confidence in the system. If
1671 the compromise is detected, all ACs issued by the AC issuer MUST be
1672 revoked. Rebuilding after such a compromise will be problematic, so
1673 AC issuers are advised to implement a combination of strong technical
1674 measures (e.g., tamper-resistant cryptographic modules) and
1675 appropriate management procedures (e.g., separation of duties) to
1676 avoid such an incident.
1682 Farrell & Housley Standards Track [Page 30]
1684 RFC 3281 An Internet Attribute Certificate April 2002
1687 Loss of an AC issuer's private signing key may also be problematic.
1688 The AC issuer would not be able to produce revocation status or
1689 perform AC renewal. AC issuers are advised to maintain secure backup
1690 for signing keys. The security of the key backup procedures is a
1691 critical factor in avoiding key compromise.
1693 The availability and freshness of revocation status will affect the
1694 degree of assurance that should be placed in a long-lived AC. While
1695 long-lived ACs expire naturally, events may occur during its natural
1696 lifetime which negate the binding between the AC holder and the
1697 attributes. If revocation status is untimely or unavailable, the
1698 assurance associated with the binding is clearly reduced.
1700 The binding between an AC holder and attributes cannot be stronger
1701 than the cryptographic module implementation and algorithms used to
1702 generate the signature. Short key lengths or weak hash algorithms
1703 will limit the utility of an AC. AC issuers are encouraged to note
1704 advances in cryptology so they can employ strong cryptographic
1707 Inconsistent application of name comparison rules may result in
1708 acceptance of invalid targeted or proxied ACs, or rejection of valid
1709 ones. The X.500 series of specifications defines rules for comparing
1710 distinguished names. These rules require comparison of strings
1711 without regard to case, character set, multi-character white space
1712 substrings, or leading and trailing white space. This specification
1713 and [PKIXPROF] relaxes these requirements, requiring support for
1714 binary comparison at a minimum.
1716 AC issuers MUST encode the distinguished name in the AC
1717 holder.entityName field identically to the distinguished name in the
1718 holder's PKC. If different encodings are used, implementations of
1719 this specification may fail to recognize that the AC and PKC belong
1722 If an attribute certificate is tied to the holder's PKC using the
1723 baseCertificateID component of the Holder field and the PKI in use
1724 includes a rogue CA with the same issuer name specified in the
1725 baseCertificateID component, this rogue CA could issue a PKC to a
1726 malicious party, using the same issuer name and serial number as the
1727 proper holder's PKC. Then the malicious party could use this PKC in
1728 conjunction with the AC. This scenario SHOULD be avoided by properly
1729 managing and configuring the PKI so that there cannot be two CAs with
1730 the same name. Another alternative is to tie ACs to PKCs using the
1731 publicKeyCert type in the ObjectDigestInfo field. Failing this, AC
1732 verifiers have to establish (using other means) that the potential
1733 collisions cannot actually occur, for example, the CPSs of the CAs
1734 involved may make it clear that no such name collisions can occur.
1738 Farrell & Housley Standards Track [Page 31]
1740 RFC 3281 An Internet Attribute Certificate April 2002
1743 Implementers MUST ensure that following validation of an AC, only
1744 attributes that the issuer is trusted to issue are used in
1745 authorization decisions. Other attributes, which MAY be present MUST
1746 be ignored. Given that the AA controls PKC extension is optional to
1747 implement, AC verifiers MUST be provided with this information by
1748 other means. Configuration information is a likely alternative
1749 means. This becomes very important if an AC verifier trusts more
1752 There is often a requirement to map between the authentication
1753 supplied by a particular security protocol (e.g. TLS, S/MIME) and the
1754 AC holder's identity. If the authentication uses PKCs, then this
1755 mapping is straightforward. However, it is envisaged that ACs will
1756 also be used in environments where the holder may be authenticated
1757 using other means. Implementers SHOULD be very careful in mapping
1758 the authenticated identity to the AC holder.
1760 9. IANA Considerations
1762 Attributes and attribute certificate extensions are identified by
1763 object identifiers (OIDs). Many of the OIDs used in this document
1764 are copied from X.509 [X.509-2000]. Other OIDs were assigned from an
1765 arc delegated by the IANA. No further action by the IANA is
1766 necessary for this document or any anticipated updates.
1770 [CMC] Myers, M., Liu, X., Schaad, J. and J. Weinstein,
1771 "Certificate Management Messages over CMS", RFC 2797,
1774 [CMP] Adams, C. and S. Farrell, "Internet X.509 Public Key
1775 Infrastructure - Certificate Management Protocols", RFC
1778 [CMS] Housley, R., "Cryptographic Message Syntax", RFC 2630,
1781 [ESS] Hoffman, P., "Enhanced Security Services for S/MIME",
1782 RFC 2634, June 1999.
1784 [KRB] Kohl, J. and C. Neuman, "The Kerberos Network
1785 Authentication Service (V5)", RFC 1510, September 1993.
1787 [LDAP] Wahl, M., Howes, T. and S. Kille, "Lightweight Directory
1788 Access Protocol (v3)", RFC 2251, December 1997.
1794 Farrell & Housley Standards Track [Page 32]
1796 RFC 3281 An Internet Attribute Certificate April 2002
1799 [OCSP] Myers, M., Ankney, R., Malpani, A., Galperin, S. and C.
1800 Adams, "X.509 Internet Public Key Infrastructure -
1801 Online Certificate Status Protocol - OCSP", RFC 2560,
1804 [PKIXALGS] Bassham, L., Polk, W. and R. Housley, "Algorithms and
1805 Identifiers for the Internet X.509 Public Key
1806 Infrastructure Certificate and Certificate Revocation
1807 Lists CRL Profile", RFC 3279, April 2002.
1809 [PKIXPROF] Housley, R., Polk, T, Ford, W. and Solo, D., "Internet
1810 X.509 Public Key Infrastructure Certificate and
1811 Certificate Revocation List (CRL) Profile", RFC 3280,
1814 [RFC2026] Bradner, S., "The Internet Standards Process -- Revision
1815 3", BCP 9, RFC 2026, October 1996.
1817 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
1818 Requirement Levels", BCP 14, RFC 2119, March 1997.
1820 [URL] Berners-Lee, T., Masinter L. and M. McCahill, "Uniform
1821 Resource Locators (URL)", RFC 1738, December 1994.
1823 [X.208-1988] CCITT Recommendation X.208: Specification of Abstract
1824 Syntax Notation One (ASN.1). 1988.
1826 [X.209-88] CCITT Recommendation X.209: Specification of Basic
1827 Encoding Rules for Abstract Syntax Notation One (ASN.1).
1830 [X.501-88] CCITT Recommendation X.501: The Directory - Models.
1833 [X.501-1993] ITU-T Recommendation X.501 : Information Technology -
1834 Open Systems Interconnection - The Directory: Models,
1837 [X.509-1988] CCITT Recommendation X.509: The Directory -
1838 Authentication Framework. 1988.
1840 [X.509-1997] ITU-T Recommendation X.509: The Directory -
1841 Authentication Framework. 1997.
1843 [X.509-2000] ITU-T Recommendation X.509: The Directory - Public-Key
1844 and Attribute Certificate Frameworks. 2000
1850 Farrell & Housley Standards Track [Page 33]
1852 RFC 3281 An Internet Attribute Certificate April 2002
1855 Appendix A: Object Identifiers
1857 This (normative) appendix lists the new object identifiers which are
1858 defined in this specification. Some of these are required only for
1859 support of optional features and are not required for conformance to
1860 this profile. This specification mandates support for OIDs which
1861 have arc elements with values that are less than 2^32, (i.e. they
1862 MUST be between 0 and 4,294,967,295 inclusive) and SHOULD be less
1863 than 2^31 (i.e. less than or equal to 2,147,483,647). This allows
1864 each arc element to be represented within a single 32 bit word.
1865 Implementations MUST also support OIDs where the length of the dotted
1866 decimal (see [LDAP], section 4.1.2) string representation can be up
1867 to 100 bytes (inclusive). Implementations MUST be able to handle
1868 OIDs with up to 20 elements (inclusive). AA's SHOULD NOT issue ACs
1869 which contain OIDs that breach these requirements.
1871 The following OIDs are imported from [PKIXPROF]:
1873 id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
1874 dod(6) internet(1) security(5) mechanisms(5) pkix(7) }
1875 id-mod OBJECT IDENTIFIER ::= { id-pkix 0 }
1876 id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
1877 id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
1878 id-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
1879 id-ce OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 29 }
1881 The following new ASN.1 module OID is defined:
1883 id-mod-attribute-cert OBJECT IDENTIFIER ::= { id-mod 12 }
1885 The following AC extension OIDs are defined:
1887 id-pe-ac-auditIdentity OBJECT IDENTIFIER ::= { id-pe 4 }
1888 id-pe-ac-proxying OBJECT IDENTIFIER ::= { id-pe 10 }
1889 id-ce-targetInformation OBJECT IDENTIFIER ::= { id-ce 55 }
1891 The following PKC extension OIDs are defined:
1893 id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 }
1906 Farrell & Housley Standards Track [Page 34]
1908 RFC 3281 An Internet Attribute Certificate April 2002
1911 The following attribute OIDs are defined:
1913 id-aca OBJECT IDENTIFIER ::= { id-pkix 10 }
1914 id-aca-authenticationInfo OBJECT IDENTIFIER ::= { id-aca 1 }
1915 id-aca-accessIdentity OBJECT IDENTIFIER ::= { id-aca 2 }
1916 id-aca-chargingIdentity OBJECT IDENTIFIER ::= { id-aca 3 }
1917 id-aca-group OBJECT IDENTIFIER ::= { id-aca 4 }
1918 id-aca-encAttrs OBJECT IDENTIFIER ::= { id-aca 6 }
1919 id-at-role OBJECT IDENTIFIER ::= { id-at 72 }
1920 id-at-clearance OBJECT IDENTIFIER ::=
1921 { joint-iso-ccitt(2) ds(5) module(1)
1922 selected-attribute-types(5) clearance (55) }
1924 Appendix B: ASN.1 Module
1926 PKIXAttributeCertificate {iso(1) identified-organization(3) dod(6)
1927 internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
1928 id-mod-attribute-cert(12)}
1930 DEFINITIONS IMPLICIT TAGS ::=
1938 -- IMPORTed module OIDs MAY change if [PKIXPROF] changes
1939 -- PKIX Certificate Extensions
1940 Attribute, AlgorithmIdentifier, CertificateSerialNumber,
1941 Extensions, UniqueIdentifier,
1942 id-pkix, id-pe, id-kp, id-ad, id-at
1943 FROM PKIX1Explicit88 {iso(1) identified-organization(3)
1944 dod(6) internet(1) security(5) mechanisms(5)
1945 pkix(7) id-mod(0) id-pkix1-explicit-88(1)}
1947 GeneralName, GeneralNames, id-ce
1948 FROM PKIX1Implicit88 {iso(1) identified-organization(3)
1949 dod(6) internet(1) security(5) mechanisms(5)
1950 pkix(7) id-mod(0) id-pkix1-implicit-88(2)} ;
1952 id-pe-ac-auditIdentity OBJECT IDENTIFIER ::= { id-pe 4 }
1953 id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 }
1954 id-pe-ac-proxying OBJECT IDENTIFIER ::= { id-pe 10 }
1955 id-ce-targetInformation OBJECT IDENTIFIER ::= { id-ce 55 }
1957 id-aca OBJECT IDENTIFIER ::= { id-pkix 10 }
1962 Farrell & Housley Standards Track [Page 35]
1964 RFC 3281 An Internet Attribute Certificate April 2002
1967 id-aca-authenticationInfo OBJECT IDENTIFIER ::= { id-aca 1 }
1968 id-aca-accessIdentity OBJECT IDENTIFIER ::= { id-aca 2 }
1969 id-aca-chargingIdentity OBJECT IDENTIFIER ::= { id-aca 3 }
1970 id-aca-group OBJECT IDENTIFIER ::= { id-aca 4 }
1971 -- { id-aca 5 } is reserved
1972 id-aca-encAttrs OBJECT IDENTIFIER ::= { id-aca 6 }
1974 id-at-role OBJECT IDENTIFIER ::= { id-at 72}
1975 id-at-clearance OBJECT IDENTIFIER ::=
1976 { joint-iso-ccitt(2) ds(5) module(1)
1977 selected-attribute-types(5) clearance (55) }
1979 -- Uncomment this if using a 1988 level ASN.1 compiler
1980 -- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
1982 AttributeCertificate ::= SEQUENCE {
1983 acinfo AttributeCertificateInfo,
1984 signatureAlgorithm AlgorithmIdentifier,
1985 signatureValue BIT STRING
1988 AttributeCertificateInfo ::= SEQUENCE {
1989 version AttCertVersion -- version is v2,
1991 issuer AttCertIssuer,
1992 signature AlgorithmIdentifier,
1993 serialNumber CertificateSerialNumber,
1994 attrCertValidityPeriod AttCertValidityPeriod,
1995 attributes SEQUENCE OF Attribute,
1996 issuerUniqueID UniqueIdentifier OPTIONAL,
1997 extensions Extensions OPTIONAL
2000 AttCertVersion ::= INTEGER { v2(1) }
2002 Holder ::= SEQUENCE {
2003 baseCertificateID [0] IssuerSerial OPTIONAL,
2004 -- the issuer and serial number of
2005 -- the holder's Public Key Certificate
2006 entityName [1] GeneralNames OPTIONAL,
2007 -- the name of the claimant or role
2008 objectDigestInfo [2] ObjectDigestInfo OPTIONAL
2009 -- used to directly authenticate the
2010 -- holder, for example, an executable
2018 Farrell & Housley Standards Track [Page 36]
2020 RFC 3281 An Internet Attribute Certificate April 2002
2023 ObjectDigestInfo ::= SEQUENCE {
2024 digestedObjectType ENUMERATED {
2027 otherObjectTypes (2) },
2028 -- otherObjectTypes MUST NOT
2029 -- MUST NOT be used in this profile
2030 otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
2031 digestAlgorithm AlgorithmIdentifier,
2032 objectDigest BIT STRING
2035 AttCertIssuer ::= CHOICE {
2036 v1Form GeneralNames, -- MUST NOT be used in this
2038 v2Form [0] V2Form -- v2 only
2041 V2Form ::= SEQUENCE {
2042 issuerName GeneralNames OPTIONAL,
2043 baseCertificateID [0] IssuerSerial OPTIONAL,
2044 objectDigestInfo [1] ObjectDigestInfo OPTIONAL
2045 -- issuerName MUST be present in this profile
2046 -- baseCertificateID and objectDigestInfo MUST
2047 -- NOT be present in this profile
2050 IssuerSerial ::= SEQUENCE {
2051 issuer GeneralNames,
2052 serial CertificateSerialNumber,
2053 issuerUID UniqueIdentifier OPTIONAL
2056 AttCertValidityPeriod ::= SEQUENCE {
2057 notBeforeTime GeneralizedTime,
2058 notAfterTime GeneralizedTime
2061 Targets ::= SEQUENCE OF Target
2064 targetName [0] GeneralName,
2065 targetGroup [1] GeneralName,
2066 targetCert [2] TargetCert
2074 Farrell & Housley Standards Track [Page 37]
2076 RFC 3281 An Internet Attribute Certificate April 2002
2079 TargetCert ::= SEQUENCE {
2080 targetCertificate IssuerSerial,
2081 targetName GeneralName OPTIONAL,
2082 certDigestInfo ObjectDigestInfo OPTIONAL
2085 IetfAttrSyntax ::= SEQUENCE {
2086 policyAuthority[0] GeneralNames OPTIONAL,
2087 values SEQUENCE OF CHOICE {
2088 octets OCTET STRING,
2089 oid OBJECT IDENTIFIER,
2094 SvceAuthInfo ::= SEQUENCE {
2095 service GeneralName,
2097 authInfo OCTET STRING OPTIONAL
2100 RoleSyntax ::= SEQUENCE {
2101 roleAuthority [0] GeneralNames OPTIONAL,
2102 roleName [1] GeneralName
2105 Clearance ::= SEQUENCE {
2106 policyId [0] OBJECT IDENTIFIER,
2107 classList [1] ClassList DEFAULT {unclassified},
2109 [2] SET OF SecurityCategory OPTIONAL
2112 ClassList ::= BIT STRING {
2121 SecurityCategory ::= SEQUENCE {
2122 type [0] IMPLICIT OBJECT IDENTIFIER,
2123 value [1] ANY DEFINED BY type
2130 Farrell & Housley Standards Track [Page 38]
2132 RFC 3281 An Internet Attribute Certificate April 2002
2135 AAControls ::= SEQUENCE {
2136 pathLenConstraint INTEGER (0..MAX) OPTIONAL,
2137 permittedAttrs [0] AttrSpec OPTIONAL,
2138 excludedAttrs [1] AttrSpec OPTIONAL,
2139 permitUnSpecified BOOLEAN DEFAULT TRUE
2142 AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER
2144 ACClearAttrs ::= SEQUENCE {
2145 acIssuer GeneralName,
2147 attrs SEQUENCE OF Attribute
2150 ProxyInfo ::= SEQUENCE OF Targets
2157 Baltimore Technologies
2158 39/41 Parkgate Street
2162 EMail: stephen.farrell@baltimore.ie
2166 918 Spring Knoll Drive
2170 EMail: rhousley@rsasecurity.com
2174 Russ Housley thanks the management at SPYRUS, who supported the
2175 development of this specification while he was employed at SPYRUS.
2176 Russ Housley also thanks the management at RSA Laboratories, who
2177 supported the completion of the specification after a job change.
2186 Farrell & Housley Standards Track [Page 39]
2188 RFC 3281 An Internet Attribute Certificate April 2002
2191 Full Copyright Statement
2193 Copyright (C) The Internet Society (2002). All Rights Reserved.
2195 This document and translations of it may be copied and furnished to
2196 others, and derivative works that comment on or otherwise explain it
2197 or assist in its implementation may be prepared, copied, published
2198 and distributed, in whole or in part, without restriction of any
2199 kind, provided that the above copyright notice and this paragraph are
2200 included on all such copies and derivative works. However, this
2201 document itself may not be modified in any way, such as by removing
2202 the copyright notice or references to the Internet Society or other
2203 Internet organizations, except as needed for the purpose of
2204 developing Internet standards in which case the procedures for
2205 copyrights defined in the Internet Standards process must be
2206 followed, or as required to translate it into languages other than
2209 The limited permissions granted above are perpetual and will not be
2210 revoked by the Internet Society or its successors or assigns.
2212 This document and the information contained herein is provided on an
2213 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
2214 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
2215 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
2216 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
2217 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
2221 Funding for the RFC Editor function is currently provided by the
2242 Farrell & Housley Standards Track [Page 40]