view Side-By-Side changes
Internet DraftNetwork Working Group S. TueckeDocument: draft-ietf-pkix-proxy-10Request for Comments: 3820 ANLExpires May 2004Category: Standards Track V. Welch NCSA D. Engert ANL L. Pearlman USC/ISI M. Thompson LBNL19 December 2003June 2004 Internet X.509 Public Key Infrastructure (PKI) Proxy Certificate Profile Status of this Memo This documentisspecifies anInternet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents ofInternet standards track protocol for the InternetEngineering Task Force (IETF), its areas,community, andits working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six monthsrequests discussion andmay be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material orsuggestions for improvements. Please refer tocite them other than as "work in progress." The list ofthe currentInternet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The listedition ofInternet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This document provides information tothecommunity regarding"Internet Official Protocol Standards" (STD 1) for theprofilestandardization state and status ofthe X.509 Proxy Certificate. It defines a standard for implementing X.509 Proxy Certificates. Tuecke, et al. 1this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The InternetDraft X.509 Proxy Certificate Profile December 2003Society (2004). Abstract This document forms a certificate profile for Proxy Certificates, based on X.509 Public Key Infrastructure (PKI) certificates as defined in RFC 3280, for use in the Internet. The term Proxy Certificate is used to describe a certificate that is derived from, and signed by, a normal X.509 Public Key End Entity Certificate or by another Proxy Certificate for the purpose of providing restricted proxying and delegation within a PKI based authentication system.Table of Contents 1 Introduction...................................................3 2 Overview of Approach...........................................4 2.1 Terminology..................................................5 2.2 Background...................................................5 2.3 Motivation for Proxying......................................6 2.4 Motivation for Restricted Proxies............................8 2.5 Motivation for Unique Proxy Name.............................9 2.6 Description Of Approach.....................................10 2.7 Features Of This Approach...................................11 3 Certificate and Certificate Extensions Profile................13 3.1 Issuer......................................................14 3.2 Issuer Alternative Name.....................................14 3.3 Serial Number...............................................14 3.4 Subject.....................................................14 3.5 Subject Alternative Name....................................15 3.6 Key Usage and Extended Key Usage............................15 3.7 Basic Constraints...........................................15 3.8 The ProxyCertInfo Extension.................................15 4 Proxy Certificate Path Validation.............................20 4.1 Basic Proxy Certificate Path Validation.....................21 4.2 Using the Path Validation Algorithm.........................25 5 Commentary....................................................27 5.1 Relationship to Attribute Certificates......................27 5.2 Kerberos 5 Tickets..........................................31 5.3 Examples of usage of Proxy Restrictions.....................32 5.4 Delegation Tracing..........................................33 6 Security Considerations.......................................34 6.1 Compromise of a Proxy Certificate...........................34 6.2 Restricting Proxy Certificates..............................35 6.3 Relying Party Trust of Proxy Certificates...................35 6.4 Protecting Against Denial of Service with Key Generation....36Tuecke, et al.2 Internet DraftStandards Track [Page 1] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 6.5 UseJune 2004 Table ofProxy Certificates in a Central Repository...........36 7 IANA Considerations...........................................37 8 Normative References..........................................37 9 Informational References......................................37 10 Acknowledgments.............................................38 11 Contact Information.........................................39 12 Copyright Notice............................................39 13 Intellectual Property Statement.............................40 Appendix A. 1988 ASN.1 Module....................................41 Appendix B. Change Log (To be removed prior to publication)......42 1Contents 1. IntroductionUse of a proxy credential [i8] is a common technique used in security systems to allow entity A to grant to another entity B the right for B to be authorized with others as if it were A. In other words, entity B is acting as a proxy on behalf. . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Overview ofentity A. This document forms a certificate profileApproach . . . . . . . . . . . . . . . . . . . . . 4 2.1. Terminology. . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Background . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. Motivation for Proxying. . . . . . . . . . . . . . . . . 5 2.4. Motivation for Restricted Proxies. . . . . . . . . . . . 7 2.5. Motivation for Unique ProxyCertificates, based on the RFC 3280, "Internet X.509 Public Key InfrastructureName . . . . . . . . . . . . 8 2.6. Description Of Approach. . . . . . . . . . . . . . . . . 9 2.7. Features Of This Approach. . . . . . . . . . . . . . . . 10 3. Certificate andCRL Profile" [n2]. In addition to simple, unrestricted proxying, this profile defines: * A framework for carrying policies in Proxy Certificates that allows proxying to be limited (perhaps completely disallowed) through either restrictions or enumeration of rights. * Proxy Certificates with unique names, derived from the name of the end entity certificate name. This allows the Proxy Certificates to be used in conjunction with attribute assertion approaches such as Attribute Certificates [i3] and have their own rights independent of their issuer. Section 2 provides a non-normative overview of the approach. It begins by defining terminology, motivating Proxy Certificates, and giving a brief overview of the approach. It then introduces the notion of a Proxy Issuer, as distinct from a Certificate Authority, to describe how end entity signing of a Proxy Certificate is different from end entity signing of another end entity certificate, and therefore why this approach does not violate the end entity signing restrictions contained in the X.509 keyCertSign field of the keyUsage extension. It then continues with Tuecke, et al. 3 Internet Draft X.509 ProxyCertificate Extensions ProfileDecember 2003 discussions of how subject names are used by this proxying approach, and features of this approach. Section 3 defines requirements on information content in Proxy Certificates. This profile addresses two fields in the basic certificate as well as five certificate extensions. The certificate fields are the subject and issuer fields. The certificate extensions are subject alternative name, issuer alternative name, key usage, basic constraints, and extended key usage. A new certificate extension, Proxy Certificate Information, is introduced. Section 4 defines path validation rules for Proxy Certificates. Section 5 provides non-normative commentary on Proxy Certificates. Section 6 discusses security considerations relating to Proxy Certificates. References in this document are sorted into normative and information references. Normative references, listed in Section 8, are in the form [nXX]. Informative references, listed in Section 9, are in the form [iXX]. Section 10 contains acknowledgements. Section 11 contains contact information for the authors. Section. . . . . . . . 12contains the copyright information for this document. Section 13 contains the intellectual property information for this document. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [n1]. 2 Overview of Approach This section provides non-normative commentary on Proxy Certificates. Tuecke, et al. 4 Internet Draft X.509 Proxy Certificate Profile December 2003 The goal of this specification is to develop a X.509 Proxy Certificate profile and to facilitate their use within Internet applications for those communities wishing to make use of restricted proxying and delegation within an X.509 Public Key Infrastructure (PKI) authentication based system. This section provides relevant background, motivation, an overview of the approach, and related work. 2.1 Terminology This document uses the following terms: * CA: A "Certificate Authority", as defined by X.509 [n2]. * EEC: An "End Entity Certificate", as defined by X.509. That is, it is an X.509 Public Key Certificate issued to an end entity, such as a user or a service, by a CA. * PKC: An end entity "Public Key Certificate". This is synonymous with an EEC. * PC: A "Proxy Certificate", the profile of which is defined by this document. * PI: A "Proxy Issuer" is an entity with an End Entity Certificate or Proxy Certificate that issues a Proxy Certificate. The Proxy Certificate is signed using the private key associated with the public key in the Proxy Issuer's certificate. * AC: An "Attribute Certificate", as defined by "An Internet Attribute Certificate Profile for Authorization" [i3]. * AA: An "Attribute Authority", as defined in [i3]. 2.2 Background Computational and Data "Grids" have emerged as a common approach to constructing dynamic, inter-domain, distributed computing environments. As explained in [i5], large research and development efforts starting around 1995 have focused on the question of what protocols, services, and APIs are required for effective, coordinated use of resources in these Grid environments. Tuecke, et al. 5 Internet Draft X.509 Proxy Certificate Profile December 2003 In 1997, the Globus Project (www.globus.org) introduced the Grid Security Infrastructure (GSI) [i4]. This library provides for public key based authentication and message protection, based on standard X.509 certificates and public key infrastructure, the SSL/TLS protocol [i2], and delegation using proxy certificates similar to those profiled in this document. GSI has been used, in turn, to build numerous middleware libraries and applications, which have been deployed in large-scale production and experimental Grids [i1]. GSI has emerged as the dominant security solution used by Grid efforts worldwide. This experience with GSI has proven the viability of restricted proxying as a basis for authorization within Grids, and has further proven the viability of using X.509 Proxy Certificates, as defined in this document, as the basis for that proxying. This document is one part of an effort to migrate this experience with GSI into standards, and in the process clean up the approach and better reconcile it with existing and recent standards. 2.3 Motivation for Proxying A motivating example will assist in understanding the role proxying can play in building Internet based applications. Steve is an engineer who wants to use a reliable file transfer service to manage the movement of a number of large files around between various hosts on his company's Intranet-based Grid. From his laptop he wants to submit a number of transfer requests to the service and have the files transferred while he is doing other things, including being offline. The transfer service may queue the requests for some time (e.g. until after hours or a period of low resource usage) before initiating the transfers. The transfer service will then, for each file, connect to each of the source and destination hosts, and instruct them initiate a data connection directly from the source to the destination in order to transfer the file. Steve will leave an agent running on his laptop that will periodically check on progress of the transfer by contacts the transfer service. Of course, he wants all of this to happen securely on his company's resources, which requires that he initiate all of this using his PKI smartcard. Tuecke, et al. 6 Internet Draft X.509 Proxy Certificate Profile December 2003 This scenario requires authentication and delegation in a variety of places: * Steve needs to be able to mutually authenticate with the remote file transfer service to submit the transfer request. * Since the storage hosts know nothing about the file transfer service, the file transfer service needs to be delegated the rights to mutually authenticate with the various storage hosts involved directly in the file transfer, in order to initiate the file transfer. * The source and destination hosts of a particular transfer must be able to mutual authenticate with each other, to ensure the file is being transferred to and from the proper parties. * The agent running on Steve's laptop must mutually authenticate with the file transfer service in order to check the result of the transfers. Proxying is a viable approach to solving two (related) problems in this scenario: * Single sign-on: Steve wants to enter his smartcard password (or pin) once, and then run a program that will submit all the file transfer requests to the transfer service, and then periodically check on the status of the transfer. This program needs to be given the rights to be able to perform all of these operations securely, without requiring repeated access to the smartcard or Steve's password. * Delegation: Various remote processes in this scenario need to perform secure operations on Steve's behalf, and therefore must be delegated the necessary rights. For example, the file transfer service needs to be able to authenticate on Steve's behalf with the source and destination hosts, and must in turn delegate rights to those hosts so that they can authenticate with each other. Proxying can be used to secure all of these interactions: * Proxying allows for the private key stored on the smartcard to be accessed just once, in order to create the necessary proxy Tuecke, et al. 7 Internet Draft X.509 Proxy Certificate Profile December 2003 credential, which allows the client/agent program to be authorized as Steve when submitting the requests to the transfer service. Access to the smartcard and Steve's password is not required after the initial creation of the proxy credential. * The client program on the laptop can delegate to the file transfer service the right to act on Steve's behalf. This, in turn, allows the service to authenticate to the storage hosts and inherit Steve's privileges in order to start the file transfers. * When the transfer service authenticates to hosts to start the file transfer, the service can delegate to the hosts the right to act on Steve's behalf so that each pair of hosts involved in a file transfer can mutually authenticate to ensure the file is securely transferred. * When the agent on the laptop reconnects to the file transfer service to check on the status of the transfer, it can perform mutual authentication. The laptop may use a newly generated proxy credential, which is just created anew using the smartcard. This scenario, and others similar to it, is being built today within the Grid community. The Grid Security Infrastructure's single sign-on and delegation capabilities, built on X.509 Proxy Certificates, are being employed to provide authentication services to these applications. 2.4 Motivation for Restricted Proxies One concern that arises is what happens if a machine that has been delegated the right to inherit Steve's privileges has been compromised? For example, in the above scenario, what if the machine running the file transfer service is compromised, such that the attacker can gain access to the credential that Steve delegated to that service? Can the attacker now do everything that Steve is allowed to do? A solution to this problem is to allow for restrictions to be placed on the proxy by means of policies on the proxy certificates. For example, the machine running the reliable file transfer service in the above example might only be given Steve's right for the Tuecke, et al. 8 Internet Draft X.509 Proxy Certificate Profile December 2003 purpose of reading the source files and writing the destination files. Therefore, if that file transfer service is compromised, the attacker cannot modify source files, cannot create or modify other files to which Steve has access, cannot start jobs on behalf of Steve, etc. All that an attacker would be able to do is read the specific files to which the file transfer service has been delegated read access, and write bogus files in place of those that the file transfer service has been delegated write access. Further, by limiting the lifetime of the credential that is delegated to the file transfer service, the effects of a compromise can be further mitigated. Other potential uses for restricted proxy credentials are discussed in [i8]. 2.5 Motivation for Unique Proxy Name The dynamic creation of entities (e.g. processes and services) is an essential part of Grid computing. These entities will require rights in order to securely perform their function. While it is possible to obtain rights solely through proxying as described in previous sections, this has limitations. For example what if an entity should have rights that are granted not just from the proxy issuer but from a third party as well? While it is possible in this case for the entity to obtain and hold two proxy certifications, in practice it is simpler for subsequent credentials to take the form of attribute certificates. It is also desirable for these entities to have a unique identity so that they can be explicitly discussed in policy statements. For example, a user initiating a third-party FTP transfer could grant each FTP server a PC with a unique identity and inform each server of the identity of the other, then when the two servers connected they could authenticate themselves and know they are connected to the proper party. In order for a party to have rights of it's own it requires a unique identity. Possible options for obtaining an unique identity are: 1) Obtain an identity from a traditional Certification Authority (CA). Tuecke, et al. 9 Internet Draft X.509 Proxy Certificate Profile December 2003 2) Obtain a new identity independently - for example by using the generated public key and a self-signed certificate. 3) Derive the new identity from an existing identity. In this document we describe an approach to option #3, because: * It is reasonably light-weight, as it can be done without interacting with a third party. This is important when creating identities dynamically. * As described in the previous section, a common use for PCs is for restricted proxying, so deriving their identity from the identity of the EEC makes this straightforward. Nonetheless there are circumstances where the creator does not wish to delegate all or any of its rights to a new entity. Since the name is unique, this is easily accomplished by #3 as well, by allowing the application of a policy to limit proxying. 2.6 Description Of Approach This document defines an X.509 "Proxy Certificate" or "PC" as a means of providing for restricted proxying within an (extended) X.509 PKI based authentication system. A3.1. Issuer . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2. Issuer Alternative Name. . . . . . . . . . . . . . . . . 12 3.3. Serial Number. . . . . . . . . . . . . . . . . . . . . . 12 3.4. Subject. . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5. Subject Alternative Name . . . . . . . . . . . . . . . . 13 3.6. Key Usage and Extended Key Usage . . . . . . . . . . . . 13 3.7. Basic Constraints. . . . . . . . . . . . . . . . . . . . 14 3.8. The ProxyCertInfo Extension. . . . . . . . . . . . . . . 14 4. Proxy Certificateis an X.509 public key certificate with the following properties: 1) It is signed by either an X.509 End Entity Certificate (EEC), or by another PC. This EEC or PC is referred to as the Proxy Issuer (PI). 2) It can sign only another PC. It cannot sign an EEC. 3) It has its own public and private key pair, distinct from any other EEC or PC. 4) It has an identity derived from the identity of the EEC that signed the PC. When a PC is used for authentication, in may inherit rights of the EEC that signed the PC, subject to the restrictions that are placed on that PC by the EEC. Tuecke, et al. 10 Internet Draft X.509Path Validation. . . . . . . . . . . . . . . 17 4.1. Basic Proxy CertificateProfile December 2003 5) Although its identity is derived from the EEC's identity, it is also unique. This allows this identity to be used for authorization as an independent identity from the identity ofPath Validation. . . . . . . . . 19 4.2. Using theissuing EEC, for example in conjunction with attribute assertions as defined in [i3]. 6) It contains a new X.509 extension to identify it as a PC andPath Validation Algorithm. . . . . . . . . . . 23 5. Commentary . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.1. Relationship toplace policies on the useAttribute Certificates . . . . . . . . . 24 5.2. Kerberos 5 Tickets . . . . . . . . . . . . . . . . . . . 28 5.3. Examples ofthe PC. This new extension, along with other X.509 fields and extensions, are used to enable proper path validation and useusage ofthe PC. The processProxy Restrictions. . . . . . . . . 28 5.4. Delegation Tracing . . . . . . . . . . . . . . . . . . . 29 6. Security Considerations. . . . . . . . . . . . . . . . . . . . 30 6.1. Compromise ofcreating a PC is as follows: 1) A new public and private key pair is generated. 2) That key pair is used to create a request fora ProxyCertificate that conforms to the profile described in this document. 3) ACertificate. . . . . . . . . . . . 30 6.2. Restricting Proxy Certificates . . . . . . . . . . . . . 31 6.3. Relying Party Trust of ProxyCertificate, signed by the private keyCertificates. . . . . . . . 31 6.4. Protecting Against Denial ofthe EEC or by another PC, is createdService with Key Generation 32 6.5. Use of Proxy Certificates inresponse to the request. During this process, the PC request is verified to ensure that the requested PC is valid (e.g. it is not an EEC, the PC fields are appropriately set, etc). WhenaPCCentral Repository. . . . 32 7. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 33 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 33 8.1. Normative References . . . . . . . . . . . . . . . . . . 33 8.2. Informative References . . . . . . . . . . . . . . . . . 33 9. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . 34 Appendix A. 1988 ASN.1 Module. . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 36 Full Copyright Notice. . . . . . . . . . . . . . . . . . . . . . . 37 Tuecke, et al. Standards Track [Page 2] RFC 3820 X.509 Proxy Certificate Profile June 2004 1. Introduction Use of a proxy credential [i7] iscreated as part ofadelegation fromcommon technique used in security systems to allow entity A toentity B, this process is modified by performing steps #1 and #2 within entity B, then passing the PC request from entity Bgrant to another entityA over an authenticated, integrity checked channel, then entity A performs step #3 and passesB thePC backright for B to be authorized with others as if it were A. In other words, entityB. Path validation of a PCB isvery similar to normal path validation, withacting as afew additional checks to ensure, for example, proper PC signing constraints. 2.7 Features Of This Approach Using Proxy Certificates to perform delegation has several features that make it attractive: * Easeproxy on behalf ofintegration . Because a PC requires onlyentity A. This document forms aminimal change to path validation, it is very easy to incorporate supportcertificate profile for ProxyTuecke, et al. 11 Internet DraftCertificates, based on the RFC 3280, "Internet X.509ProxyPublic Key Infrastructure CertificateProfile December 2003 Certificates into existing X.509 based software. For example, SSL/TLS requires no protocol changes to support authentication using a PC. Further, an SSL/TLS implementation requires only minor changes to support PC path validation,and CRL Profile" [n2]. In addition to simple, unrestricted proxying, this profile defines: * A framework for carrying policies in Proxy Certificates that allows proxying toretrieve the authenticated subject of the signing EEC insteadbe limited (perhaps completely disallowed) through either restrictions or enumeration of rights. * Proxy Certificates with unique names, derived from thesubjectname of thePC for authorization purposes. . Many existing authorization systems use the X.509 subject name asend entity certificate name. This allows thebasis for access control.Proxy Certificatescanto be used in conjunction with attribute assertion approaches suchauthorization systems without modification, since such a PC inherits its nameas Attribute Certificates [i3] and have their own rightsfromindependent of their issuer. Section 2 provides a non-normative overview of theEEC that signed itapproach. It begins by defining terminology, motivating Proxy Certificates, and giving a brief overview of theEEC name can be usedapproach. It then introduces the notion of a Proxy Issuer, as distinct from a Certificate Authority, to describe how end entity signing of a Proxy Certificate is different from end entity signing of another end entity certificate, and therefore why this approach does not violate the end entity signing restrictions contained inplacethe X.509 keyCertSign field of thePC name for authorization decisions. * EasekeyUsage extension. It then continues with discussions ofuse . Using PC for single sign-on helps make X.509 PKI authentication easier to use,how subject names are used byallowing users to "login" oncethis proxying approach, and features of this approach. Section 3 defines requirements on information content in Proxy Certificates. This profile addresses two fields in the basic certificate as well as five certificate extensions. The certificate fields are the subject and issuer fields. The certificate extensions are subject alternative name, issuer alternative name, key usage, basic constraints, andthen perform various operations securely. . For many users, properly managing their own EEC privateextended key usage. A new certificate extension, Proxy Certificate Information, isa nuisance at best, and aintroduced. Section 4 defines path validation rules for Proxy Certificates. Section 5 provides non-normative commentary on Proxy Certificates. Section 6 discusses securityrisk at worst. One option easily enabled with a PC isconsiderations relating tomanage the EEC private keysProxy Certificates. Tuecke, et al. Standards Track [Page 3] RFC 3820 X.509 Proxy Certificate Profile June 2004 References, listed in Section 8, are sorted into normative andcertificatesinformation references. Normative references, listed in Section 8.1, are ina centrally managed repository. When a user needs a PKI credential,theuser can login toform [nXX]. Informative references, listed in Section 8.2, are in therepository using name/password, one time password, etc. Thenform [iXX]. Section 9 contains acknowledgements. Following Section 9, contains therepository can delegate a PC toAppendix, theuser with proxy rights, but continue to protectcontact information for theEEC privateauthors, the intellectual property information, and the copyright information for this document. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" inthe repository. * Protectionthis document are to be interpreted as described in BCP 14, RFC 2119 [n1]. 2. Overview ofprivate keys . By using the remote delegation approach outlined above, entity A can delegateApproach This section provides non-normative commentary on Proxy Certificates. The goal of this specification is to develop aPCX.509 Proxy Certificate profile and to facilitate their use within Internet applications for those communities wishing toentity B, without entity B ever seeing the private keymake use ofentity A,restricted proxying andwithout entity A ever seeing the private keydelegation within an X.509 Public Key Infrastructure (PKI) authentication based system. This section provides relevant background, motivation, an overview of thenewly delegated PC heldapproach, and related work. 2.1. Terminology This document uses the following terms: * CA: A "Certification Authority", as defined byentity B. In other words, private keys never need to be shared or communicatedX.509 [n2] * EEC: An "End Entity Certificate", as defined bythe entities participating inX.509. That is, it is an X.509 Public Key Certificate issued to an end entity, such as adelegation ofuser or aPC. . When implementing single sign-on, usingservice, by aPC helps protectCA. * PKC: An end entity "Public Key Certificate". This is synonymous with an EEC. * PC: A "Proxy Certificate", theprivate keyprofile ofthe EEC, because it minimizes the exposurewhich is defined by this document. Tuecke, et al.12 Internet DraftStandards Track [Page 4] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 and use of that private key. For example, when an EEC private keyJune 2004 * PI: A "Proxy Issuer" ispassword protected on disk, the password and unencrypted private key need only be available during the creation of the PC. That PC can then be used for the remainder of its valid lifetime, without requiring access to the EEC passwordan entity with an End Entity Certificate orprivate key. Similarly, whenProxy Certificate that issues a Proxy Certificate. The Proxy Certificate is signed using theEECprivate keylives on a smartcard,associated with thesmartcard need only be presentpublic key in themachine during the creation of the PC.Proxy Issuer's certificate. *Limiting consequences of a compromised key . When creating a PC, the PI can limit the validity period of the PC, the depth of the PC path that can be createdAC: An "Attribute Certificate", as defined bythat PC, and key usage of the PC"An Internet Attribute Certificate Profile for Authorization" [i3]. * AA: An "Attribute Authority", as defined in [i3]. 2.2. Background Computational andits descendents. Further, fine-grained policies can be carried byData "Grids" have emerged as aPC to even further restrict the operations that can be performed using the PC. These restrictions permit the PIcommon approach tolimit damage that could be done byconstructing dynamic, inter-domain, distributed computing environments. As explained in [i5], large research and development efforts starting around 1995 have focused on thebearerquestion of what protocols, services, and APIs are required for effective, coordinated use of resources in these Grid environments. In 1997, thePC, either accidentally or maliciously. . A compromised PC private key does NOT compromiseGlobus Project (www.globus.org) introduced theEEC private key.Grid Security Infrastructure (GSI) [i4]. Thismakes a short term, or an otherwise restricted PC attractivelibrary provides forday-to-day use, since a compromised PC does not requirepublic key based authentication and message protection, based on standard X.509 certificates and public key infrastructure, theuserSSL/TLS protocol [i2], and delegation using proxy certificates similar to those profiled in this document. GSI has been used, in turn, togo through the usually cumbersomebuild numerous middleware libraries andtime consuming process of havingapplications, which have been deployed in large-scale production and experimental Grids [i1]. GSI has emerged as theEEC with a new private key reissueddominant security solution used by Grid efforts worldwide. This experience with GSI has proven theCA. See Section 5 belowviability of restricted proxying as a basis formore discussion on how Proxy Certificates relate to Attribute Certificates. 3 Certificateauthorization within Grids, andCertificate Extensions Profile This section defineshas further proven theusageviability of using X.509certificate fields and extensions inProxy Certificates,and defines one new extension for Proxy Certificate Information. All Proxy Certificates MUST include the Proxy Certificate Information (ProxyCertInfo) extensionas defined in thissection anddocument, as theextension MUST be critical. Tuecke, et al. 13 Internet Draft X.509 Proxy Certificate Profile December 2003 3.1 Issuer The Proxy Issuerbasis for that proxying. This document is one part ofa Proxy Certificate MUST be either an End Entity Certificate, or another Proxy Certificate. The Proxy Issuer MUST NOT haveanempty subject field. The issuer field of a Proxy Certificate MUST contain the subject field of its Proxy Issuer. If the Proxy Issuer certificate has the KeyUsage extension, the Digital Signature bit MUST be asserted. 3.2 Issuer Alternative Name The issuerAltName extension MUST NOT be presenteffort to migrate this experience with GSI into standards, and ina Proxy Certificate. 3.3 Serial Number The serial number of a Proxy Certificate (PC) SHOULD be unique amongst all Proxy Certificates issued by a particular Proxy Issuer. However, a Proxy Issuer MAY use anthe process clean up the approach and better reconcile it with existing and recent standards. 2.3. Motivation for Proxying A motivating example will assist in understanding the role proxying can play in building Internet based applications. Steve is an engineer who wants toassigning serial numbers that merely ensures a high probability of uniqueness. For example, a Proxy Issuer MAYuse asequentially assigned integer or a UUIDreliable file transfer service toassignmanage the movement of aunique serialnumberto a PC it issues. Or a Proxy Issuer MAY use a SHA-1 hashofthe PC public keylarge files around between various hosts on his company's Intranet-based Grid. From his laptop he wants toassignsubmit aserialnumberwithof transfer requests to the service and have the files transferred while he is doing other Tuecke, et al. Standards Track [Page 5] RFC 3820 X.509 Proxy Certificate Profile June 2004 things, including being offline. The transfer service may queue the requests for some time (e.g., until after hours or ahigh probabilityperiod ofuniqueness. 3.4 Subjectlow resource usage) before initiating the transfers. Thesubject fieldtransfer service will then, for each file, connect to each of the source and destination hosts, and instruct them to initiate aProxy Certificate MUST bedata connection directly from theissuer field (that issource to thesubjectdestination in order to transfer the file. Steve will leave an agent running on his laptop that will periodically check on progress of theProxy Issuer) appended withtransfer by contacting the transfer service. Of course, he wants all of this to happen securely on his company's resources, which requires that he initiate all of this using his PKI smartcard. This scenario requires authentication and delegation in asingle Common Name component. The valuevariety ofthe Common Name SHOULDplaces: * Steve needs to beuniqueable toeach Proxy Certificate bearer amongst all Proxy Certificatesmutually authenticate with thesame issuer. If a Proxy Issuer issues two proxy certificatesreliable file transfer service to submit thesame bearer,transfer request. * Since theProxy Issuer MAY choose to usestorage hosts know nothing about thesame Common Name for both. Examples of this include Proxy Certificates for different uses Tuecke, et al. 14 Internet Draft X.509 Proxy Certificate Profile December 2003 (e.g. signing vs encryption) orfile transfer service, there-issuance of an expired Proxy Certificate. The Proxy Issuer MAY use an approachfile transfer service needs toassigning Common Name values that merely ensures a high probability of uniqueness. This value MAYbe delegated thesame value used for the serial number. The result of this approach is that all subject names of Proxy Certificates are derived from the name ofrights to mutually authenticate with theissuing EEC (it will bevarious storage hosts involved directly in thefirst part offile transfer, in order to initiate thesubject name appended with one or more CN components)file transfer. * The source andare uniquedestination hosts of a particular transfer must be able to mutual authenticate with eachbearer. 3.5 Subject Alternative Nameother, to ensure the file is being transferred to and from the proper parties. * ThesubjectAltName extension MUST NOT be presentagent running on Steve's laptop must mutually authenticate with the file transfer service in order to check the result of the transfers. Proxying is aProxy Certificate. 3.6 Key Usageviable approach to solving two (related) problems in this scenario: * Single sign-on: Steve wants to enter his smartcard password (or pin) once, andExtended Key Usage If the Proxy Issuer certificate hasthen run aKey Usage extension,program that will submit all theDigital Signature bit MUST be asserted. This draft places no constraintsfile transfer requests to the transfer service, and then periodically check on thepresence or contentsstatus of thekey usage and extended key usage extension. However, section 4.2 explains what functions shouldtransfer. This program needs to beallowed a proxy certificate by a relying party. 3.7 Basic Constraints The cA field ingiven thebasic constraints extension MUST NOTrights to beTRUE. 3.8 The ProxyCertInfo Extension A new extension, ProxyCertInfo, is defined in this subsection. Presenceable to perform all of these operations securely, without requiring repeated access to theProxyCertInfo extension indicates that a certificate is a Proxy Certificate and whethersmartcard ornot the issuer of the certificate has placed any restrictionsSteve's password. * Delegation: Various remote processes in this scenario need to perform secure operations onits use. id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) } id-pe OBJECT IDENTIFIER ::= { id-pkix 1 } Tuecke, et al. 15 Internet Draft X.509 Proxy Certificate Profile December 2003 id-pe-proxyCertInfo OBJECT IDENTIFIER ::= { id-pe 14 } ProxyCertInfo ::= SEQUENCE { pCPathLenConstraint INTEGER (0..MAX) OPTIONAL, proxyPolicy ProxyPolicy } ProxyPolicy ::= SEQUENCE { policyLanguage OBJECT IDENTIFIER, policy OCTET STRING OPTIONAL } If a certificate is a Proxy Certificate, thenSteve's behalf, and therefore must be delegated theproxyCertInfo extension MUSTnecessary rights. For example, the file transfer Tuecke, et al. Standards Track [Page 6] RFC 3820 X.509 Proxy Certificate Profile June 2004 service needs to bepresent,able to authenticate on Steve's behalf with the source andthis extension MUSTdestination hosts, and must in turn delegate rights to those hosts so that they can authenticate with each other. Proxying can bemarkedused to secure all of these interactions: * Proxying allows for the private key stored on the smartcard to be accessed just once, in order to create the necessary proxy credential, which allows the client/agent program to be authorized ascritical. If a certificateSteve when submitting the requests to the transfer service. Access to the smartcard and Steve's password is nota Proxy Certificate, thenrequired after theproxyCertInfo extension MUST be absent. The ProxyCertInfo extension consistsinitial creation ofone requiredthe proxy credential. * The client program on the laptop can delegate to the file transfer service the right to act on Steve's behalf. This, in turn, allows the service to authenticate to the storage hosts andtwo optional fields, which are describedinherit Steve's privileges indetailorder to start the file transfers. * When the transfer service authenticates to hosts to start the file transfer, the service can delegate to the hosts the right to act on Steve's behalf so that each pair of hosts involved in a file transfer can mutually authenticate to ensure thefollowing subsections. 3.8.1 pCPathLenConstraint The pCPathLenConstraint field, if present, specifiesfile is securely transferred. * When the agent on the laptop reconnects to the file transfer service to check on themaximum depthstatus of thepath of Proxy Certificates thattransfer, it canbe signed by this Proxy Certificate. A pCPathLenConstraint of 0 means that this certificate MUST NOT be used to signperform mutual authentication. The laptop may use aProxy Certificate. If the pCPathLenConstraint fieldnewly generated proxy credential, which isnot present thenjust created anew using themaximum proxy path lengthsmartcard. This scenario, and others similar to it, isunlimited. End entity certificates have unlimited maximum proxy path lengths. 3.8.2 proxyPolicybeing built today within the Grid community. TheproxyPolicy field specifies a policyGrid Security Infrastructure's single sign- onthe use of this certificateand delegation capabilities, built on X.509 Proxy Certificates, are being employed to provide authentication services to these applications. 2.4. Motivation for Restricted Proxies One concern that arises is what happens if a machine that has been delegated thepurposes of authorization. Withinright to inherit Steve's privileges has been compromised? For example, in theproxyPolicy,above scenario, what if thepolicy fieldmachine running the file transfer service isan expression of policy, andcompromised, such that thepolicyLanguage field indicatesattacker can gain access to thelanguage in whichcredential that Steve delegated to that service? Can thepolicyattacker now do everything that Steve isexpressed. The proxyPolicy field in the proxyCertInfo extension does not define a policy languageallowed tobe useddo? A solution to this problem is to allow forproxy restrictions; rather, it placesrestrictions to be placed on theburdenproxy by means of policies onthose parties using that extension tothe proxy certificates. For example, the machine running the reliable file transfer service in Tuecke, et al.16 Internet DraftStandards Track [Page 7] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 define an appropriate language, and to acquire an OID for that language (or to select an appropriate previously-defined language/OID). Because it is essentialJune 2004 the above example might only be given Steve's right for thePI that issues a certificate with a proxyPolicy fieldpurpose of reading the source files and writing therelying party that interpretsdestination files. Therefore, if thatfield to agree on its meaning,file transfer service is compromised, thepolicy language OID must correspondattacker cannot modify source files, cannot create or modify other files toa policy language (including semantics), not just a policy grammar. The policyLanguage fieldwhich Steve hastwo valuesaccess, cannot start jobs on behalf ofspecial importance, defined in Appendix A, that MUST be understood by all parties accepting Proxy Certificates: * id-ppl-inheritAll indicatesSteve, etc. All thatthis isanunrestricted proxy that inherits all rights from the issuing PI. An unrestricted proxyattacker would be able to do isa statement thatread theProxy Issuer wishes to delegate all of its authorityspecific files to which thebearer (i.e., to anyone whofile transfer service hasthat proxy certificatebeen delegated read access, andcan prove possession of the associated private key). For purposes of authorization, this an unrestricted proxy effectively impersonates the issuing PI. * id-ppl-independent indicates that this is an independent proxy that inherits no rights from the issuing PI. This PC MUST be treated as an independent identity by relying parties. The only rights this PC has are those granted explicitly to it. For eitherwrite bogus files in place of those that thepolicyLanguage values listed above,file transfer service has been delegated write access. Further, by limiting thepolicy field MUST NOT be present. Other values forlifetime of thepolicyLanguage field indicatescredential thatthisis delegated to the file transfer service, the effects of a compromise can be further mitigated. Other potential uses for restricted proxycertificationcredentials are discussed in [i7]. 2.5. Motivation for Unique Proxy Name The dynamic creation of entities (e.g., processes andhave some other policy limiting its abilityservices) is an essential part of Grid computing. These entities will require rights in order todo proxying. Insecurely perform their function. While it is possible to obtain rights solely through proxying as described in previous sections, this has limitations. For example what if an entity should have rights that are granted not just from the proxy issuer but from a third party as well? While it is possible in this case for thepolicy field MAY be presententity to obtain and hold two proxy certifications, in practice itMUST contain information expressing the policy. If the policy fieldisnot presentsimpler for subsequent credentials to take thepolicy MUSTform of attribute certificates. It is also desirable for these entities to have a unique identity so that they can beimplicitexplicitly discussed inthe valuepolicy statements. For example, a user initiating a third-party FTP transfer could grant each FTP server a PC with a unique identity and inform each server of thepolicyLanguage field itself. Authorsidentity ofadditional policy languages are encouraged to publicly document their policy language and list it intheIANA registry (see Section Error! Reference source not found.). Proxy policiesother, then when the two servers connected they could authenticate themselves and know they areusedconnected tolimittheamountproper party. In order for a party to have rights ofauthority delegated,it's own it requires a unique identity. Possible options for obtaining an unique identity are: 1) Obtain an identity from a traditional Certification Authority (CA). 2) Obtain a new identity independently - for exampleto assert thatby using theproxy certificate may be used only to make requests togenerated public key and aspecific server, or only to authorize specific operations on specific resources. This document is agnostic to the policies that can be placed inself-signed certificate. 3) Derive thepolicy field.new identity from an existing identity. Tuecke, et al.17 Internet DraftStandards Track [Page 8] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 Proxy policies impose additional requirements on the relying party, because only the relying party is in a position to ensure that those policies are enforced. When makingJune 2004 In this document we describe anauthorization decision based on a proxy certificate based on rights that proxy certificate inherited from its issuer, it is the relying party's responsibilityapproach toverify that the requested authorityoption #3, because: * It iscompatiblereasonably light-weight, as it can be done without interacting withall policies in the PC's certificate path. In other words, the relying party MUST verify that the following three conditions are all met: 1) The relying party MUST know how to interpret the proxy policy and the requesta third party. This isallowed under that policy. 2) Ifimportant when creating identities dynamically. * As described in theProxy Issuerprevious section, a common use for PCs isan EEC then the relying party's local policies MUST authorize the requestfor restricted proxying, so deriving their identity from theentity named in the EEC. 3) If the Proxy Issuer is another PC, then oneidentity of thefollowing MUST be true: a. The relying party's local policies authorizeEEC makes this straightforward. Nonetheless there are circumstances where theProxy Issuercreator does not wish toperform the request. b. The Proxy Issuer inherits the rightdelegate all or any of its rights toperforma new entity. Since therequest from its issuername is unique, this is easily accomplished bymeans of its proxy policy. This must be verified#3 as well, byverifying these three conditions onallowing theProxy Issuer inapplication of arecursive manner. If these conditions are not met,policy to limit proxying. 2.6. Description Of Approach This document defines an X.509 "Proxy Certificate" or "PC" as a means of providing for restricted proxying within an (extended) X.509 PKI based authentication system. A Proxy Certificate is an X.509 public key certificate with therelying party MUSTfollowing properties: 1) It is signed by eitherdeny authorization,an X.509 End Entity Certificate (EEC), or by another PC. This EEC orignore thePC is referred to as the Proxy Issuer (PI). 2) It can sign only another PC. It cannot sign an EEC. 3) It has its own public and private key pair, distinct from any other EEC or PC. 4) It has an identity derived from thewhole certificate chain includingidentity of the EECentirely when making its authorization decision (i.e., make the same decisionthatit would have made hadsigned thePC and it's certificate chain never been presented). The relying party MAY impose additional restrictions as to which proxy certificates it accepts. For example,PC. When arelying party MAY choose to reject all proxy certificates, or MAY choose to accept proxy certificates onlyPC is used forcertain operations, etc. Noteauthentication, in may inherit rights of the EEC thatsince a proxy certificate has a uniquesigned the PC, subject to the restrictions that are placed on that PC by the EEC. 5) Although its identity is derived from the EEC's identity, itMAYis alsohave rights grantedunique. This allows this identity toit by means other than inheritancebe used for authorization as an independent identity fromit's issuer via its proxy policy. The rights granted tothebeareridentity of the issuing EEC, for example in conjunction with attribute assertions as defined in [i3]. 6) It contains a new X.509 extension to identify it as a PCareand to place policies on theunionuse of therights grantedPC. This new extension, along with other X.509 fields and extensions, are used tothe PC identityenable proper path validation and use of the PC. Tuecke, et al.18 Internet DraftStandards Track [Page 9] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 the inherited rights.June 2004 Theinherited rights consistprocess of creating a PC is as follows: 1) A new public and private key pair is generated. 2) That key pair is used to create a request for a Proxy Certificate that conforms to the profile described in this document. 3) A Proxy Certificate, signed by theintersectionprivate key of therights grantedEEC or by another PC, is created in response to thePI identity intersected with the proxy policy inrequest. During this process, thePC. For example, imaginePC request is verified to ensure thatStevethe requested PC isauthorizedvalid (e.g., it is not an EEC, the PC fields are appropriately set, etc). When a PC is created as part of a delegation from entity A toreadentity B, this process is modified by performing steps #1 andwrite files#2 within entity B, then passing the PC request from entity B to entity A over an authenticated, integrity checked channel, then entity A performs step #3 andB onpasses the PC back to entity B. Path validation of afile server, and that he uses his EECPC is very similar tocreatenormal path validation, with a few additional checks to ensure, for example, proper PC signing constraints. 2.7. Features Of This Approach Using Proxy Certificates to perform delegation has several features thatincludes the policy thatmake itcan be usedattractive: * Ease of integration o Because a PC requires only a minimal change toread or write files A and C. Thenpath validation, it is very easy to incorporate support for Proxy Certificates into existing X.509 based software. For example, SSL/TLS requires no protocol changes to support authentication using atrusted attribute authority grantsPC. Further, anAttribute Certificate granting the PC the rightSSL/TLS implementation requires only minor changes toread file D. This would make the rights of thesupport PCequalpath validation, and to retrieve the authenticated subject of theunionsigning EEC instead of therights granted tosubject of the PCidentity (right to read file D) withfor authorization purposes. o Many existing authorization systems use theintersection ofX.509 subject name as the basis for access control. Proxy Certificates can be used with such authorization systems without modification, since such a PC inherits its name and rightsgranted to Steve,from thePI, (right to read files AEEC that signed it andB) withthepolicyEEC name can be used in place of the PC(can only read files A and C). This would mean the PC would have the following rights:name for authorization decisions. Tuecke, et al. Standards Track [Page 10] RFC 3820 X.509 Proxy Certificate Profile June 2004 *Right to read file A: Steve has this right and he issued theEase of use o Using PCand his policy grants this rightfor single sign-on helps make X.509 PKI authentication easier tothe PC. * Rightuse, by allowing users toread file D: This right"login" once and then perform various operations securely. o For many users, properly managing their own EEC private key isgranted explicitly to the PC byatrusted authority. Thenuisance at best, and a security risk at worst. One option easily enabled with a PCwould NOT have the following rights: * Right to read file B: Although Steve has this right, itisexcluded by his policy on the PC. * Righttoread file C: Although Steve's policy grants this right, he does not have this right himself. In many cases,manage the EEC private keys and certificates in a centrally managed repository. When a user needs a PKI credential, therelying party will not have enough informationuser can login toevaluate the above criteria atthe repository using name/password, one timethatpassword, etc. Then thecertificate path is validated. For example, ifrepository can delegate acertificate is usedPC toauthenticatethe user with proxy rights, but continue to protect the EEC private key in the repository. * Protection of private keys o By using the remote delegation approach outlined above, entity A can delegate aconnectionPC tosome server, that certificate is typically validated during that authentication step, before any requests have been madeentity B, without entity B ever seeing the private key of entity A, and without entity A ever seeing the private key of theserver.newly delegated PC held by entity B. Inthat case,other words, private keys never need to be shared or communicated by therelying party MUST either have some authorization mechanismentities participating inplace that will check the proxy policies, or reject any certificate that contains proxy policies (or that hasaparent certificate that contains proxy policies). Tuecke, et al. 19 Internet Draft X.509 Proxy Certificate Profile December 2003 4 Proxy Certificate Path Validation Proxy Certification path processing verifiesdelegation of a PC. o When implementing single sign-on, using a PC helps protect thebinding betweenprivate key of theproxy certificate distinguished nameEEC, because it minimizes the exposure andproxy certificate publicuse of that private key.The bindingFor example, when an EEC private key islimited by constraints which are specified inpassword protected on disk, thecertificates which comprisepassword and unencrypted private key need only be available during thepath and inputs which are specified bycreation of therelying party. This section describes an algorithmPC. That PC can then be used forvalidating proxy certification paths. Conforming implementationsthe remainder ofthis specification are not required to implement this algorithm, but MUST provide functionality equivalentits valid lifetime, without requiring access to theexternal behavior resulting from this procedure. Any algorithm may be used byEEC password or private key. Similarly, when the EEC private key lives on aparticular implementation so long as it derivessmartcard, thecorrect result. The algorithm presentedsmartcard need only be present inthis section validatestheproxy certificate with respect tomachine during thecurrent date and time. A conformant implementation MAY also support validation with respect to some point increation of thepast. Note that mechanisms are not available for validatingPC. * Limiting consequences of aproxy certificate with respect tocompromised key o When creating atime outsidePC, the PI can limit thecertificatevalidityperiod. Valid paths begin withperiod of theend entity certificate (EEC)PC, the depth of the PC path thathas already been validatedcan be created bypublicthat PC, and keycertificate validation procedures in RFC 3280 [n2]. The algorithm requiresusage of thepublicPC and its descendents. Further, fine- grained policies can be carried by a PC to even further restrict the operations that can be performed using the PC. These restrictions permit the PI to limit damage that could be done by the bearer of the PC, either accidentally or maliciously. Tuecke, et al. Standards Track [Page 11] RFC 3820 X.509 Proxy Certificate Profile June 2004 o A compromised PC private keyofdoes NOT compromise the EECandprivate key. This makes a short term, or an otherwise restricted PC attractive for day-to-day use, since a compromised PC does not require theEEC's subject distinguished name. To meetuser to go through thegoalusually cumbersome and time consuming process ofverifying the proxy certificate,having theproxy certificate path validation process verifies, among other things, thatEEC with aprospective certification path (a sequence of n certificates) satisfiesnew private key reissued by thefollowing conditions: (a)CA. See Section 5 below forall x in {1, ..., n-1},more discussion on how Proxy Certificates relate to Attribute Certificates. 3. Certificate and Certificate Extensions Profile This section defines thesubjectusage of X.509 certificatex isfields and extensions in Proxy Certificates, and defines one new extension for Proxy Certificate Information. All Proxy Certificates MUST include theissuer of proxy certificate x+1Proxy Certificate Information (ProxyCertInfo) extension defined in this section and the extension MUST be critical. 3.1. Issuer The Proxy Issuer of a Proxy Certificate MUST be either an End Entity Certificate, or another Proxy Certificate. The Proxy Issuer MUST NOT have an empty subjectdistinguished namefield. The issuer field ofcertificate x+1 isalegalProxy Certificate MUST contain the subjectdistinguished name to have been issued by certificate x; (b) certificate 1 is valid proxyfield of its Proxy Issuer. If the Proxy Issuer certificate has the KeyUsage extension, the Digital Signature bit MUST be asserted. 3.2. Issuer Alternative Name The issuerAltName extension MUST NOT be present in a Proxy Certificate. 3.3. Serial Number The serial number of a Proxy Certificate (PC) SHOULD be unique amongst all Proxy Certificates issued bythe end entity certificate whose information is given as input to the proxy certificate path validation process; (c) certificate n is the proxy certificatea particular Proxy Issuer. However, a Proxy Issuer MAY use an approach tobe validated;assigning serial numbers that merely ensures a high probability of uniqueness. Tuecke, et al.20 Internet DraftStandards Track [Page 12] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 (d) for all x in {1, ..., n}, the certificate was valid at the time in question; and (e) for all certificates in the path withJune 2004 For example, apCPathLenConstraint field, theProxy Issuer MAY use a sequentially assigned integer or a UUID to assign a unique serial number to a PC it issues. Or a Proxy Issuer MAY use a SHA-1 hash ofcertificates in the path following that certificate does not exceedthelength specified in that field. At this point there is no mechanism defined for revoking proxy certificates. 4.1 BasicPC public key to assign a serial number with a high probability of uniqueness. 3.4. Subject The subject field of a Proxy CertificatePath Validation This section presentsMUST be thealgorithm in four basic steps to mirrorissuer field (that is thedescriptionsubject ofpublic key certificate path validation in RFC 3280: (1) initialization, (2) basic proxy certificate processing, (3) preparation forthenext proxy certificate, and (4) wrap-up. Steps (1) and (4) are performed exactly once. Step (2) is performed for all proxy certificates inProxy Issuer) appended with a single Common Name component. The value of thepath. Step (3) is performed forCommon Name SHOULD be unique to each Proxy Certificate bearer amongst all Proxy Certificates with the same issuer. If a Proxy Issuer issues two proxy certificatesinto thepath exceptsame bearer, thefinal proxy certificate. Certificate path validation as described in RFC 3280 MUST have been done priorProxy Issuer MAY choose tousinguse the same Common Name for both. Examples of thisalgorithm to validateinclude Proxy Certificates for different uses (e.g., signing vs encryption) or theend entity certificate.re-issuance of an expired Proxy Certificate. The Proxy Issuer MAY use an approach to assigning Common Name values that merely ensures a high probability of uniqueness. Thisalgorithm then processesvalue MAY be theproxy certificate chain usingsame value used for theend entity certificate information produced by RFC 3280 path validation. 4.1.1 Inputs This algorithm assumesserial number. The result of this approach is that all subject names of Proxy Certificates are derived from thefollowing inputsname of the issuing EEC (it will be the first part of the subject name appended with one or more CN components) and areprovidedunique to each bearer. 3.5. Subject Alternative Name The subjectAltName extension MUST NOT be present in a Proxy Certificate. 3.6. Key Usage and Extended Key Usage If thepath processing logic: (a) information about the entityProxy Issuer certificatealready verified using RFC 3280 path validation. This information includes: (1)has a Key Usage extension, theend entity name, (2)Digital Signature bit MUST be asserted. This document places no constraints on theworking_public_key output from RFC 3280 path validation, (3)presence or contents of theworking_public_key_algorithm output from RFC 3280,key usage and extended key usage extension. However, section 4.2 explains what functions should be allowed a proxy certificate by a relying party. Tuecke, et al.21 Internet DraftStandards Track [Page 13] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 (4) and the working_public_key_parameters output from RFC 3280 path validation. (b) prospective proxy certificate path of length n. (c) acceptable-pc-policy-language-set: A set of proxy certificate policy languages understood by the policy evaluation code.June 2004 3.7. Basic Constraints Theacceptable-pc-policy-language-set MAY containcA field in thespecial value id-ppl-anyLanguage (asbasic constraints extension MUST NOT be TRUE. 3.8. The ProxyCertInfo Extension A new extension, ProxyCertInfo, is defined inAppendix A) if the path validation code should not checkthis subsection. Presence of theproxyProxyCertInfo extension indicates that a certificatepolicy languages (typically becauseis a Proxy Certificate and whether or not thesetissuer ofknownthe certificate has placed any restrictions on its use. id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) } id-pe OBJECT IDENTIFIER ::= { id-pkix 1 } id-pe-proxyCertInfo OBJECT IDENTIFIER ::= { id-pe 14 } ProxyCertInfo ::= SEQUENCE { pCPathLenConstraint INTEGER (0..MAX) OPTIONAL, proxyPolicy ProxyPolicy } ProxyPolicy ::= SEQUENCE { policyLanguage OBJECT IDENTIFIER, policylanguagesOCTET STRING OPTIONAL } If a certificate isnot known yeta Proxy Certificate, then the proxyCertInfo extension MUST be present, andwillthis extension MUST bechecked later in the authorization process). (d)marked as critical. If a certificate is not a Proxy Certificate, then thecurrent dateproxyCertInfo extension MUST be absent. The ProxyCertInfo extension consists of one required andtime. 4.1.2 Initialization This initialization phase establishes the following state variables based upon the inputs: (a) working_public_key_algorithm: the digital signature algorithm used to verifytwo optional fields, which are described in detail in thesignature of a proxy certificate.following subsections. 3.8.1. pCPathLenConstraint Theworking_public_key_algorithm is initialized from the input information provided from RFC 3280 path validation. (b) working_public_key: the public key used to verifypCPathLenConstraint field, if present, specifies thesignaturemaximum depth ofa proxy certificate. The working_public_key is initialized fromtheinput information provided from RFC 3280pathvalidation. (c) working_public_key_parameters: parameters associated with the current public key,of Proxy Certificates thatmaycan berequiredsigned by this Proxy Certificate. A pCPathLenConstraint of 0 means that this certificate MUST NOT be used toverifysign asignature (depending uponProxy Certificate. If thealgorithm). The proxy_issuer_public_key_parameters variablepCPathLenConstraint field isinitialized from the input information provided from RFC 3280 path validation. (d) working_issuer_name: the issuer distinguished name expected innot present then thenextmaximum proxycertificate in the chain. The working_issuer_namepath length isinitialized to the distinguished name in the endunlimited. End entitycertificate validated by RFC 3280certificates have unlimited maximum proxy pathvalidation.lengths. Tuecke, et al.22 Internet DraftStandards Track [Page 14] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 (e) max_path_length:June 2004 3.8.2. proxyPolicy The proxyPolicy field specifies a policy on the use of thisintegercertificate for the purposes of authorization. Within the proxyPolicy, the policy field isinitializedan expression of policy, and the policyLanguage field indicates the language in which the policy is expressed. The proxyPolicy field in the proxyCertInfo extension does not define a policy language ton,be used for proxy restrictions; rather, it places the burden on those parties using that extension to define an appropriate language, and to acquire an OID for that language (or to select an appropriate previously-defined language/OID). Because it isdecrementedessential foreach proxythe PI that issues a certificateinwith a proxyPolicy field and thepath. This value may also be reduced byrelying party that interprets that field to agree on its meaning, thepcPathLenConstraint valuepolicy language OID must correspond to a policy language (including semantics), not just a policy grammar. The policyLanguage field has two values ofany proxy certificatespecial importance, defined inthe chain. (f) proxy_policy_list:Appendix A, that MUST be understood by all parties accepting Proxy Certificates: * id-ppl-inheritAll indicates that thislistisempty to start and will be filled in with the key usage extensions, extended key usage extensions andan unrestricted proxypolicies in the chain. Upon completion ofthat inherits all rights from theinitialization steps, performissuing PI. An unrestricted proxy is a statement that thebasic certificate processing steps specified in 4.1.3. 4.1.3 BasicProxyCertificate Processing The basic path processing actionsIssuer wishes tobe performed for proxy certificate i (fordelegate alli in [1..n]) are listed below. (a) Verifyof its authority to thebasic certificate information. Thebearer (i.e., to anyone who has that proxy certificateMUST satisfy eachand can prove possession of thefollowing: (1) The certificate was signed withassociated private key). For purposes of authorization, this an unrestricted proxy effectively impersonates theworking_public_key_algorithm usingissuing PI. * id-ppl-independent indicates that this is an independent proxy that inherits no rights from theworking_public_key andissuing PI. This PC MUST be treated as an independent identity by relying parties. The only rights this PC has are those granted explicitly to it. For either of theworking_public_key_parameters. (2) The certificate validity period includespolicyLanguage values listed above, thecurrent time. (3) The certificate issuer name ispolicy field MUST NOT be present. Other values for theworking_issuer_name. (4) The certificate subject namepolicyLanguage field indicates that this isthe working_issuer_name withaCN component appended. (b) Therestricted proxycertificate MUSTcertification and havea ProxyCertInfo extension. Process the extension as follows: (1) Ifsome other policy limiting its ability to do proxying. In this case thepCPathLenConstraintpolicy fieldisMAY be presentin the ProxyCertInfo fieldandthe valueitcontains is less than max_path_length, set max_path_length to its value. (2)MUST contain information expressing the policy. Ifacceptable-pc-policy-language-setthe policy field is notid-ppl- anyLanguage,present theOIDpolicy MUST be implicit in the value of the policyLanguage fieldMUST be presentitself. Authors of additional policy languages are encouraged to publicly document their policy language and list it inacceptable-pc-policy-language-set.the IANA registry (see Section 7). Tuecke, et al.23 Internet DraftStandards Track [Page 15] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 (c) The tuple containingJune 2004 Proxy policies are used to limit the amount of authority delegated, for example to assert that the proxy certificatesubject name, policyPolicy, key usage extension (if present) and extended key usage extension (if present) mustmay beappendedused only toproxy_policy_list. (d) Process othermake requests to a specific server, or only to authorize specific operations on specific resources. This document is agnostic to the policies that can be placed in the policy field. Proxy policies impose additional requirements on the relying party, because only the relying party is in a position to ensure that those policies are enforced. When making an authorization decision based on a proxy certificateextensions, as describedbased on rights that proxy certificate inherited from its issuer, it is the relying party's responsibility to verify that the requested authority is compatible with all policies in[n2]: (1) Recognize and process anythe PC's certificate path. In othercritical extensions present inwords, theproxy certificate. (2) Process any recognized non-critical extension present inrelying party MUST verify that theproxy certificate. If either step (a), (b) or (d) fails,following three conditions are all met: 1) The relying party MUST know how to interpret theprocedure terminates, returning a failure indicationproxy policy andan appropriate reason.the request is allowed under that policy. 2) Ifithe Proxy Issuer isnot equal to n, continue by performingan EEC then thepreparatory steps listedrelying party's local policies MUST authorize the request for the entity named in4.1.4.the EEC. 3) Ifi is equal to n, performthewrap-up steps listed in 4.1.5. 4.1.4 Preparation for nextProxyCertificate (a) Verify max_path_lengthIssuer isgreater than zero and decrement max_path_length. (b) Assignanother PC, then one of thecertificate subject namefollowing MUST be true: a. The relying party's local policies authorize the Proxy Issuer toworking_issuer_name. (c) Assignperform thecertificate subjectPublicKeyrequest. b. The Proxy Issuer inherits the right toworking_public_key. (d) Ifperform thesubjectPublicKeyInfo fieldrequest from its issuer by means of its proxy policy. This must be verified by verifying these three conditions on thecertificate contains an algorithm field with non-null parameters, assignProxy Issuer in a recursive manner. If these conditions are not met, the relying party MUST either deny authorization, or ignore theparameters toPC and theworking_public_key_parameters variable. Ifwhole certificate chain including thesubjectPublicKeyInfo field ofEEC entirely when making its authorization decision (i.e., make thecertificate contains an algorithm field with null parameters or parameters are omitted, comparesame decision that it would have made had the PC and it's certificatesubjectPublicKey algorithmchain never been presented). The relying party MAY impose additional restrictions as tothe working_public_key_algorithm. If thewhich proxy certificates it accepts. For example, a relying party MAY choose to reject all proxy certificates, or MAY choose to accept proxy certificates only for certain operations, etc. Note that since a proxy certificatesubjectPublicKey algorithm andhas a unique identity it MAY also have rights granted to it by means other than inheritance from it's issuer via its proxy policy. The rights granted to theworking_public_key_algorithmbearer of a PC aredifferent, settheworking_public_key_parameters to null. (e) Assignunion of thecertificate subjectPublicKey algorithmrights granted to theworking_public_key_algorithm variable.PC identity and the Tuecke, et al.24 Internet DraftStandards Track [Page 16] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 (f) If a key usage extension is present, verify thatJune 2004 inherited rights. The inherited rights consist of thedigitalSignature bit is set. If either check (a) or (f) fails,intersection of theprocedure terminates, returning a failure indicationrights granted to the PI identity intersected with the proxy policy in the PC. For example, imagine that Steve is authorized to read andan appropriate reason. If (a)write files A and(f) complete successfully, increment iB on a file server, andperform the basic certificate processing specified in 4.1.3. 4.1.5 Wrap-up Procedures (a) Assignthat he uses his EEC to create a PC that includes thecertificate subject namepolicy that it can be used only toworking_issuer_name. (b) Assignread or write files A and C. Then a trusted attribute authority grants an Attribute Certificate granting thecertificate subjectPublicKeyPC the right toworking_public_key. (c) Ifread file D. This would make thesubjectPublicKeyInfo fieldrights of thecertificate contains an algorithm field with non-null parameters, assign the parametersPC equal to theproxy_issuer_public_key_parameters variable. If the subjectPublicKeyInfo fieldunion of thecertificate contains an algorithm field with null parameters or parameters are omitted, compare the certificate subjectPublicKey algorithmrights granted to theproxy_issuer_public_key_algorithm. If the certificate subjectPublicKey algorithm andPC identity (right to read file D) with theproxy_issuer_public_key_algorithm are different, setintersection of theproxy_issuer_public_key_parametersrights granted tonull. (d) AssignSteve, thecertificate subjectPublicKey algorithmPI, (right tothe proxy_issuer_public_key_algorithm variable. 4.1.6 Outputs If path processing succeeds, the procedure terminates, returning a success indication togetherread files A and B) withfinal value of the working_public_key,theworking_public_key_algorithm,policy in theworking_public_key_parameters,PC (can only read files A and C). This would mean theproxy_policy_list. 4.2 UsingPC would have thePath Validation Algorithm Each Proxy Certificate contains a ProxyCertInfo extension, which always contains a policy language OID,following rights: * Right to read file A: Steve has this right andmay also contain a Tuecke, et al. 25 Internet Draft X.509 Proxy Certificate Profile December 2003he issued the PC and his policyOCTET STRING. These policies servegrants this right toindicate the desire of each issuer in the proxy certificate chain, starting withtheEEC, to delegate some subset of their rightsPC. * Right tothe issued proxy certificate.read file D: Thischain of policiesright isreturned by the algorithmgranted explicitly to theapplication.PC by a trusted authority. Theapplication MAY make authorization decisions based on the subject distinguished name ofPC would NOT have theproxy certificate orfollowing rights: * Right to read file B: Although Steve has this right, it is excluded by his policy onone oftheproxy certificates in it's issuing chain or onPC. * Right to read file C: Although Steve's policy grants this right, he does not have this right himself. In many cases, theEEC that serves asrelying party will not have enough information to evaluate theroot ofabove criteria at thechain. If an application chooses to usetime that thesubject distinguished name ofcertificate path is validated. For example, if aproxycertificatein the issuing chain or the EEC it MUST use the returned policies to restrict the rights it grantsis used tothe proxy certificate. If the application does not know howauthenticate a connection toparsesome server, that certificate is typically validated during that authentication step, before anypolicy inrequests have been made of thepolicy chain it MUST not use, forserver. In that case, thepurposes of makingrelying party MUST either have some authorizationdecisions,mechanism in place that will check thesubject distinguished name ofproxy policies, or reject any certificatein the chain prior to thethat contains proxy policies (or that has a parent certificatein which the unrecognized policy appears. Application making authorization decisions based onthat contains proxy policies). 4. Proxy Certificate Path Validation Proxy Certification path processing verifies thecontents ofbinding between the proxy certificatekey usage or extended key usage extensions MUST examine the list of key usage, extended key usagedistinguished name and proxypolicies resulting from proxycertificate public key. The binding is limited by constraints which are specified in the certificates which comprise the pathvalidationanddetermineinputs which are specified by theeffective key usage functionsrelying party. Tuecke, et al. Standards Track [Page 17] RFC 3820 X.509 Proxy Certificate Profile June 2004 This section describes an algorithm for validating proxy certification paths. Conforming implementations of this specification are not required to implement this algorithm, but MUST provide functionality equivalent to theproxy certificate as follows: * Ifexternal behavior resulting from this procedure. Any algorithm may be used by a particular implementation so long as it derives the correct result. The algorithm presented in this section validates the proxy certificateiswith respect to the current date and time. A conformant implementation MAY also support validation with respect to some point in the past. Note that mechanisms are not available for validating a proxy certificate with respect to aproxy policy of id-ppl-independent or antime outside the certificate validity period. Valid paths begin with the end entitycertificate, the effective key usage functions of thatcertificateis as defined(EEC) that has already been validated bythe key usage and extendedpublic keyusage extensionscertificate validation procedures inthat certificate.RFC 3280 [n2]. Thekey usage functionality of the issuer has no bearing onalgorithm requires theeffectivepublic keyusage functionality. * If a certificate is a proxy certificate with a policy other than id-ppl-independent,of theeffective key usageEEC andextended key usage functionalitythe EEC's subject distinguished name. To meet the goal of verifying the proxycertificate iscertificate, theintersectionproxy certificate path validation process verifies, among other things, that a prospective certification path (a sequence of n certificates) satisfies thefunctionality of those extensionsfollowing conditions: (a) for all x in {1, ..., n-1}, theproxysubject of certificateandx is theeffective key usage functionalityissuer oftheproxyissuer. Tuecke, et al. 26 Internet Draft X.509 Proxy Certificate Profile December 2003 5 Commentary This section provides non-normative commentary on Proxy Certificates. 5.1 Relationship to Attribute Certificates An Attribute Certificate [i3] can be used to grant to one identity,certificate x+1 and theholder, some attribute such as a role, clearance level, or alternative identity such as "charging identity" or "audit identity". This is accomplished by waysubject distinguished name of certificate x+1 is atrusted Attribute Authority (AA), which issues signed Attribute Certificates (AC), each of which binds an identitylegal subject distinguished name toa particular set of attributes. Authorization decisions can then be madehave been issued by certificate x; (b) certificate 1 is valid proxy certificate issued bycombining information fromtheauthenticated End Entity Certificate providingend entity certificate whose information is given as input to theidentity, withproxy certificate path validation process; (c) certificate n is thesigned Attribute Certificates providing binding of that identityproxy certificate toattributes. There is clearly some overlap betweenbe validated; (d) for all x in {1, ..., n}, thecapabilities provided by Proxy Certificates and Attribute Certificates. However,certificate was valid at thecombination oftime in question; and (e) for all certificates in thetwo approaches together providespath with abroader spectrumpCPathLenConstraint field, the number ofsolutions to authorizationcertificates in the path following that certificate does not exceed the length specified in that field. At this point there is no mechanism defined for revoking proxy certificates. Tuecke, et al. Standards Track [Page 18] RFC 3820 X.509based systems, than either solution alone.Proxy Certificate Profile June 2004 4.1. Basic Proxy Certificate Path Validation This sectionseekspresents the algorithm in four basic steps toclarify somemirror the description of public key certificate path validation in RFC 3280: (1) initialization, (2) basic proxy certificate processing, (3) preparation for theoverlaps, differences,next proxy certificate, andsynergies between Proxy Certificate(4) wrap-up. Steps (1) andAttribute Certificates. 5.1.1 Types of Attribute Authorities For(4) are performed exactly once. Step (2) is performed for all proxy certificates in thepurposes of this discussion, Attribute Authorities, andpath. Step (3) is performed for all proxy certificates in theuses ofpath except theAttribute Certificates that they produce, can be broken down into two broad classes: 1) End entity AA: An End Entityfinal proxy certificate. Certificatemay be usedpath validation as described in RFC 3280 MUST have been done prior tosign an AC. This can be used, for example,using this algorithm toallow anvalidate the end entity certificate. This algorithm then processes the proxy certificate chain using the end entity certificate information produced by RFC 3280 path validation. 4.1.1. Inputs This algorithm assumes the following inputs are provided todelegate some of its privileges to another entity. 2) Third party AA: A separate entity, aside fromthe path processing logic: (a) information about the entity certificate already verified using RFC 3280 path validation. This information includes: (1) the end entityinvolved in an authenticated interaction, may sign ACsname, (2) the working_public_key output from RFC 3280 path validation, (3) the working_public_key_algorithm output from RFC 3280, (4) and the working_public_key_parameters output from RFC 3280 path validation. (b) prospective proxy certificate path of length n. (c) acceptable-pc-policy-language-set: A set of proxy certificate policy languages understood by the policy evaluation code. The acceptable-pc-policy-language-set MAY contain the special value id-ppl-anyLanguage (as defined inorder to bindAppendix A) if theauthenticated identity with additional attributes, such as role, group, etc. For example, when a client authenticates with a server,path validation code should not check thethird party AA may provide an AC that bindsproxy certificate policy languages (typically because theclient identity to a particular group, whichset of known policy languages is not known yet and will be checked later in theserver then uses forauthorizationpurposes.process). (d) the current date and time. Tuecke, et al.27 Internet DraftStandards Track [Page 19] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003June 2004 4.1.2. Initialization Thissecond typeinitialization phase establishes the following state variables based upon the inputs: (a) working_public_key_algorithm: the digital signature algorithm used to verify the signature ofAttribute Authority,a proxy certificate. The working_public_key_algorithm is initialized from thethird party AA, works equally well with an EEC orinput information provided from RFC 3280 path validation. (b) working_public_key: the public key used to verify the signature of aPC. For example, unrestricted Proxy Certificates canproxy certificate. The working_public_key is initialized from the input information provided from RFC 3280 path validation. (c) working_public_key_parameters: parameters associated with the current public key, that may beusedrequired todelegateverify a signature (depending upon theEEC's identity to various other parties. Then when one of those other parties usesalgorithm). The proxy_issuer_public_key_parameters variable is initialized from thePC to authenticate with a service, that service will receiveinput information provided from RFC 3280 path validation. (d) working_issuer_name: theEEC's identity viaissuer distinguished name expected in thePC, and can apply any ACs that bind that identitynext proxy certificate in the chain. The working_issuer_name is initialized toattributesthe distinguished name inorderthe end entity certificate validated by RFC 3280 path validation. (e) max_path_length: this integer is initialized todetermine authorization rights. Additionally PC with policies couldn, is decremented for each proxy certificate in the path. This value may also beused to selectively denyreduced by thebindingpcPathLenConstraint value ofACsany proxy certificate in the chain. (f) proxy_policy_list: this list is empty toa particular proxy. An AC could alsostart and will bebound to a particular PC usingfilled in with thesubject or issuerkey usage extensions, extended key usage extensions andserial numberproxy policies in the chain. Upon completion of theproxy certificate. There would appearinitialization steps, perform the basic certificate processing steps specified in 4.1.3. 4.1.3. Basic Proxy Certificate Processing The basic path processing actions to begreat synergies betweenperformed for proxy certificate i (for all i in [1..n]) are listed below. (a) Verify the basic certificate information. The certificate MUST satisfy each of the following: Tuecke, et al. Standards Track [Page 20] RFC 3820 X.509 Proxy Certificate Profile June 2004 (1) The certificate was signed with the working_public_key_algorithm using theuse of Proxy Certificatesworking_public_key andAttribute Certificates produced by third party Attribute Authorities. However,theuses of Attribute Certificates that are granted byworking_public_key_parameters. (2) The certificate validity period includes thefirst type of Attribute Authority,current time. (3) The certificate issuer name is theend entity AA, overlap considerablyworking_issuer_name. (4) The certificate subject name is the working_issuer_name with a CN component appended. (b) The proxy certificate MUST have a ProxyCertInfo extension. Process theuses of Proxy Certificatesextension asdescribed infollows: (1) If theprevious sections. Such Attribute Certificates are generally used for delegation of rights from one end entity to others, which clearly overlaps withpCPathLenConstraint field is present in thestated purpose of Proxy Certificates, namely single sign-onProxyCertInfo field anddelegation. 5.1.2 Delegation Using Attribute Certificates Inthemotivating example in Section 2, PCs are used to delegate Steve's identityvalue it contains is less than max_path_length, set max_path_length to its value. (2) If acceptable-pc-policy-language-set is not id-ppl- anyLanguage, thevarious other jobs and entities that need to act on Steve's behalf. This allows those other entities to authenticate as if they were Steve, for example toOID in themass storage system. A solution to this example could alsopolicyLanguage field MUST becast using Attribute Certificates that are signed by Steve's EEC, which grant to the other entitiespresent inthis exampleacceptable-pc-policy-language-set. (c) The tuple containing therightcertificate subject name, policyPolicy, key usage extension (if present) and extended key usage extension (if present) must be appended toperform various operations on Steve's behalf. In this example, the reliable file transfer serviceproxy_policy_list. (d) Process other certificate extensions, as described in [n2]: (1) Recognize andall the hosts involvedprocess any other critical extensions present infile transfers,thestarter program,proxy certificate. (2) Process any recognized non-critical extension present in theagent,proxy certificate. If either step (a), (b) or (d) fails, thesimulation jobs,procedure terminates, returning a failure indication andthe post- processing job would each have their own EECs. Steve's EEC would therefore issue ACsan appropriate reason. If i is not equal tobind each of those other EEC identitiesn, continue by performing the preparatory steps listed in 4.1.4. If i is equal toattributes that grantn, perform thenecessary privileges allow them to,wrap-up steps listed in 4.1.5. 4.1.4. Preparation forexample, accessnext Proxy Certificate (a) Verify max_path_length is greater than zero and decrement max_path_length. (b) Assign themass storage system.certificate subject name to working_issuer_name. Tuecke, et al.28 Internet DraftStandards Track [Page 21] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 However, this AC based solution to delegation has some disadvantages as compared toJune 2004 (c) Assign thePC based solution: * All protocols, authentication code, and identity based authorization services must be modifiedcertificate subjectPublicKey tounderstand ACs. Withworking_public_key. (d) If thePC solution, protocols (e.g. TLS) likely need no modification, authentication code needs minimal modification (e.g.subjectPublicKeyInfo field of the certificate contains an algorithm field with non-null parameters, assign the parameters toperform PC aware path validation), and identity based authorization services need minimal modification (e.g. possiblythe working_public_key_parameters variable. If the subjectPublicKeyInfo field of the certificate contains an algorithm field with null parameters or parameters are omitted, compare the certificate subjectPublicKey algorithm tofindtheEEC nameworking_public_key_algorithm. If the certificate subjectPublicKey algorithm and the working_public_key_algorithm are different, set the working_public_key_parameters tocheck for any proxy policies). * ACs need to be created by Steve's EEC, which bind attributesnull. (e) Assign the certificate subjectPublicKey algorithm toeach oftheother identities involved inworking_public_key_algorithm variable. (f) If a key usage extension is present, verify that thedistributed application (i.e.digitalSignature bit is set. If either check (a) or (f) fails, theagent, simulation jobs,procedure terminates, returning a failure indication and an appropriate reason. If (a) and (f) complete successfully, increment i andpost-perform the basic certificate processingjobspecified in 4.1.3. 4.1.5. Wrap-up Procedures (a) Assign thefile transfer service,certificate subject name to working_issuer_name. (b) Assign thehosts transferring files). This implies that Steve must know in advance which other identities may be involved in this distributed application, in ordercertificate subjectPublicKey togenerateworking_public_key. (c) If theappropriate ACs which are signed by Steve's ECC. OnsubjectPublicKeyInfo field of theother hand,certificate contains an algorithm field with non-null parameters, assign thePC solution allows for much more flexibility, since parties can further delegate a PC without a priori knowledge byparameters to theoriginating EEC. There are many unexplored tradeoffs and implications in this discussion of delegation. However, reasonable arguments can be made in favorproxy_issuer_public_key_parameters variable. If the subjectPublicKeyInfo field ofeitherthe certificate contains anAC based solutionalgorithm field with null parameters or parameters are omitted, compare the certificate subjectPublicKey algorithm to the proxy_issuer_public_key_algorithm. If the certificate subjectPublicKey algorithm and the proxy_issuer_public_key_algorithm are different, set the proxy_issuer_public_key_parameters to null. (d) Assign the certificate subjectPublicKey algorithm todelegation orthe proxy_issuer_public_key_algorithm variable. Tuecke, et al. Standards Track [Page 22] RFC 3820 X.509 Proxy Certificate Profile June 2004 4.1.6. Outputs If path processing succeeds, the procedure terminates, returning aPC based solution to delegation. The choicesuccess indication together with final value of the working_public_key, the working_public_key_algorithm, the working_public_key_parameters, and the proxy_policy_list. 4.2. Using the Path Validation Algorithm Each Proxy Certificate contains a ProxyCertInfo extension, whichapproach should be taken inalways contains agiven instancepolicy language OID, and maydepend on factors such as the software that it needsalso contain a policy OCTET STRING. These policies serve tobe integrated into,indicate thetypedesire ofdelegation required, and religion. 5.1.3 Propagationeach issuer in the proxy certificate chain, starting with the EEC, to delegate some subset ofAuthorization Information One possible usetheir rights to the issued proxy certificate. This chain ofProxy Certificatespolicies is returned by the algorithm tocarry authorization information associated with a particular identity.the application. Themerits of placingapplication MAY make authorizationinformation into End Entity Certificates (also called a Public Key Certificate or PKC) have been widely debated. For example, Section 1decisions based on the subject distinguished name of"An Internet Attribute Certificate Profile for Authorization" [i3] states: "Authorization information may be placed in a PKC extension or placed in a separate attributethe proxy certificate(AC). The placementor on one ofauthorization informationthe proxy certificates inPKCs is usually undesirable for Tuecke, et al. 29 Internet Draft X.509 Proxy Certificate Profile December 2003 two reasons. First, authorization information often does not haveit's issuing chain or on thesame lifetimeEEC that serves as thebindingroot of the chain. If an application chooses to use the subject distinguished name of a proxy certificate in theidentity andissuing chain or thepublic key. When authorization information is placed in a PKC extension,EEC it MUST use thegeneral result isreturned policies to restrict theshortening ofrights it grants to thePKC useful lifetime. Second,proxy certificate. If thePKC issuer isapplication does notusually authoritativeknow how to parse any policy in the policy chain it MUST not use, for the purposes of making authorizationinformation. This resultsdecisions, the subject distinguished name of any certificate inadditional steps forthePKC issuerchain prior toobtain authorization information fromtheauthoritative source. For these reasons, it is often better to separate authorization information fromcertificate in which thePKC. Yet,unrecognized policy appears. Application making authorizationinformation also needs to be bound to an identity. An AC provides this binding; it is simply a digitally signed (or certified) identitydecisions based on the contents of the proxy certificate key usage or extended key usage extensions MUST examine the list of key usage, extended key usage andsetproxy policies resulting from proxy certificate path validation and determine the effective key usage functions ofattributes." Placing authorization information in a PC mitigatesthefirst undesirable property cited above. Since a PC hasproxy certificate as follows: * If alifetime thatcertificate ismostly independent of (always shorter than) its signing EEC,aPC becomesproxy certificate with aviable approach for carrying authorization information forproxy policy of id-ppl-independent or an end entity certificate, the effective key usage functions of that certificate is as defined by thepurpose of delegation.key usage and extended key usage extensions in that certificate. Thesecond undesirable property cited above is true.key usage functionality of the issuer has no bearing on the effective key usage functionality. * If athird party AA is authoritative, then using ACs issued by that third party AAcertificate is anatural approach to disseminating authorization information. However, this is true whether the identity being bound by these ACs comes from an EEC (PKC), or fromproxy certificate with aPC. There is one case, however, thatpolicy other than id-ppl-independent, theabove text does not consider. When performing delegation, it is usuallyeffective key usage and extended key usage functionality of theEEC itself thatproxy certificate isauthoritative (nottheEEC issuer, or any third party AA). That is, it is up tointersection of theEEC to decide what authorization rights it is willing to grant to another party. In this situation, including such authorization information into PCs that are generated byfunctionality of those extensions in theEEC seems a reasonable approach to disseminating such information. 5.1.4proxy certificate and the effective key usage functionality of the proxy issuer. Tuecke, et al. Standards Track [Page 23] RFC 3820 X.509 Proxy CertificateasProfile June 2004 5. Commentary This section provides non-normative commentary on Proxy Certificates. 5.1. Relationship to Attribute Certificates An Attribute CertificateHolder In a system that employs both PCs and ACs, one[i3] canimagine the utility of allowing a PC tobe used to grant to one identity, theholder of an AC.holder, some attribute such as a role, clearance level, or alternative identity such as "charging identity" or "audit identity". Thiswould allow foris accomplished by way of aparticular delegated instancetrusted Attribute Authority (AA), which issues signed Attribute Certificates (AC), each of which binds an identity to a particular set of attributes. Authorization decisions can then begiven an attribute, rather than all delegated instancesmade by combining information from the authenticated End Entity Certificate providing the identity, with the signed Attribute Certificates providing binding of that identitybeing givento attributes. There is clearly some overlap between theattribute. Tuecke, et al. 30 Internet Draft X.509capabilities provided by ProxyCertificate Profile December 2003Certificates and Attribute Certificates. However, theissuecombination ofhow to specify a PC astheholdertwo approaches together provides a broader spectrum ofan AC remains open. An AC could be boundsolutions toa particular instanceauthorization in X.509 based systems, than either solution alone. This section seeks to clarify some ofa PC usingtheunique subject nameoverlaps, differences, and synergies between Proxy Certificate and Attribute Certificates. 5.1.1. Types of Attribute Authorities For thePC, or it's issuer and serial number combination. Unrestricted PCs issued by that PC would then inherit those ACspurposes of this discussion, Attribute Authorities, andindependent PCs would not. PCs issued with a policy would depend onthepolicy as to whether or not they inherituses of theissuing PC's ACs (and potentially which ACsAttribute Certificates that theyinherit). While an ACproduce, can bebound to one PC by the AA, how can the AA restrict that PC from passing it on to a subsequently delegated PC? One possible solution wouldbroken down into two broad classes: 1) End entity AA: An End Entity Certificate may be used todefinesign anextension to attribute certificates that allows the attribute authorityAC. This can be used, for example, tostate whetherallow anissued AC is to apply only to the particularend entity towhich it is bound, or if it may applydelegate some of its privileges toPCs issued by thatanother entity.One issue that2) Third party AA: A separate entity, aside from the end entity involved in anAAauthenticated interaction, may sign ACs inthis circumstance would needorder tobe aware of is that the PI of the PC that the AA boundbind theAC to, could issue another PCauthenticated identity withthe same nameadditional attributes, such asthe original PC torole, group, etc. For example, when adifferent entity, effectively stealingclient authenticates with a server, theAC. This implies that anthird party AAissuingmay provide an ACto a PC need to not only trust the entity holding the PC, but the entity holdingthat binds thePC's issuer as well. 5.2 Kerberos 5 Tickets The Kerberos Network Authentication Protocol (RFC 1510 [i8]) isclient identity to awidely used authentication system based on conventional (shared secret key) cryptography. It provides support for single sign-on via creation of "Ticket Granting Tickets" or "TGT", and support for delegation of rights via "forwardable tickets". Kerberos 5 tickets have informed many of the ideas surrounding X.509 Proxy Certificates. For example,particular group, which thelocal creation of a short-lived PC can be used to provide single sign-on in an X.509 PKI based system, just as creation of short-lived TGT allowsserver then uses forsingle sign-on in a Kerberos based system. And just asauthorization purposes. This second type of Attribute Authority, the third party AA, works equally well with an EEC or aTGTPC. For example, unrestricted Proxy Certificates can beforwarded (i.e. delegated)used toanother entitydelegate the EEC's identity toallow for proxying in a Kerberos based system, so can avarious other parties. Then when one of those other parties uses the PCcan be delegatedtoallow for proxying in an X.509 PKI based system. A major difference betweenauthenticate with aKerberos TGT and an X.509 PC isservice, thatwhile creation and delegation of a TGT requiresservice will receive theinvolvement ofEEC's Tuecke, et al.31 Internet DraftStandards Track [Page 24] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 a third party (the Kerberos Domain Controller), a PCJune 2004 identity via the PC, and can apply any ACs that bind that identity to attributes in order to determine authorization rights. Additionally PC with policies could beunilaterally created withoutused to selectively deny theactive involvementbinding of ACs to athird party. That is, a user can directly createparticular proxy. An AC could also be bound to a particular PCfrom an EEC for single sign-on capability, without requiring communication with ausing the subject or issuer and serial number of the proxy certificate. There would appear to be great synergies between the use of Proxy Certificates and Attribute Certificates produced by thirdparty. And anparty Attribute Authorities. However, the uses of Attribute Certificates that are granted by the first type of Attribute Authority, the end entity AA, overlap considerably with the uses of Proxy Certificates as described in the previous sections. Such Attribute Certificates are generally used for delegation of rights from one end entity to others, which clearly overlaps witha PC canthe stated purpose of Proxy Certificates, namely single sign-on and delegation. 5.1.2. Delegation Using Attribute Certificates In the motivating example in Section 2, PCs are used to delegate Steve's identity to thePCvarious other jobs and entities that need to act on Steve's behalf. This allows those other entities to authenticate as if they were Steve, for example toanother entity (i.e. by creating a new PC, signed bythefirst) without requiring communication with a third party. The method used by Kerberos implementationsmass storage system. A solution toprotect a TGT canthis example could also beusedcast using Attribute Certificates that are signed by Steve's EEC, which grant toprotecttheprivate key of a PC. Forother entities in this example the right to perform various operations on Steve's behalf. In this example,some Unix implementations of Kerberos use standard Unixthe reliable filesystem security to protect a user's TGT from compromise. Similarly,transfer service and all theGlobus Toolkit's Grid Security Infrastructure implementation of Proxy Certificates protects a user's PC private key using this same approach. 5.3 Examples of usage of Proxy Restrictions This section gives some examples of Proxy Certificate usagehosts involved in file transfers, the starter program, the agent, the simulation jobs, and the post-processing job would each have their own EECs. Steve's EEC would therefore issue ACs to bind each of those other EEC identities to attributes that grant the necessary privileges allow them to, for example, access the mass storage system. However, this AC based solution to delegation has someexamples of howdisadvantages as compared to theProxy policy canPC based solution: * All protocols, authentication code, and identity based authorization services must beusedmodified torestrict Proxy Certificates. 5.3.1 Example use of proxies without Restrictions Steve wishesunderstand ACs. With the PC solution, protocols (e.g., TLS) likely need no modification, authentication code needs minimal modification (e.g., to performa third-party FTP transfer between two FTP servers. Steve would use an existingPCto authenticate to both serversaware path validation), anddelegate a PCidentity based authorization services need minimal modification (e.g., possibly toboth hosts. He would inform each host offind theunique subjectEEC nameof the PC givenand to check for any proxy policies). Tuecke, et al. Standards Track [Page 25] RFC 3820 X.509 Proxy Certificate Profile June 2004 * ACs need to be created by Steve's EEC, which bind attributes to each of the otherhost. Whenidentities involved in theservers establishdistributed application (i.e., thedata channel connection to each other, they use these delegated credentials to perform authenticationagent, simulation jobs, andverify they are talkingpost-processing job the file transfer service, the hosts transferring files). This implies that Steve must know in advance which other identities may be involved in this distributed application, in order to generate thecorrect entityappropriate ACs which are signed bychecking the result ofSteve's ECC. On theauthentication matchesother hand, thename as provided by Steve. 5.3.2 Example use of proxies with Restrictions Steve wishes toPC solution allows for much more flexibility, since parties can further delegatetoaprocessPC without a priori knowledge by therightoriginating EEC. There are many unexplored tradeoffs and implications in this discussion of delegation. However, reasonable arguments can be made in favor of either an AC based solution toperformdelegation or atransferPC based solution to delegation. The choice of which approach should be taken in afile from host H1 to host H2given instance may depend onhis behalf. Steve would delegate a PCfactors such as the software that it needs to be integrated into, theprocesstype of delegation required, andhe wouldother factors. 5.1.3. Propagation of Authorization Information One possible use of ProxyPolicy to restrict the delegated PC to two rights - the right to read file F1 on host H1 and the right to write file F2 on host H2. The process then uses this restricted PC to authenticateCertificates is toservers H1 and H2.carry authorization information associated with a particular identity. Theprocess would also delegatemerits of placing authorization information into End Entity Certificates (also called aPC to both servers. Tuecke, et al. 32Public Key Certificate or PKC) have been widely debated. For example, Section 1 of "An InternetDraft X.509 ProxyAttribute Certificate ProfileDecember 2003 Note that these delegated PCs would inherit the restrictionsfor Authorization" [i3] states: "Authorization information may be placed in a PKC extension or placed in a separate attribute certificate (AC). The placement oftheir parents, though thisauthorization information in PKCs is usually undesirable for two reasons. First, authorization information often does notrelevant to this example. As inhave theexamplesame lifetime as the binding of the identity and the public key. When authorization information is placed in a PKC extension, theprevious Section, each host would be provided withgeneral result is theunique nameshortening of thePC given toPKC useful lifetime. Second, theother server. Now whenPKC issuer is not usually authoritative for theprocess issuesauthorization information. This results in additional steps for thecommandPKC issuer totransferobtain authorization information from thefile F1 on H1 and to F2 on H2,authoritative source. For thesetwo servers perform anreasons, it is often better to separate authorizationcheck based on the restrictions in the PC thatinformation from theprocess usedPKC. Yet, authorization information also needs toauthenticate with them (in additionbe bound toany local policy they have). Namely H1 checks that thean identity. An AC provides this binding; it is simply a digitally signed (or certified) identity and set of attributes." Tuecke, et al. Standards Track [Page 26] RFC 3820 X.509 Proxy Certificate Profile June 2004 Placing authorization information in a PCgives the usermitigates theright to read F1 and H2 checksfirst undesirable property cited above. Since a PC has a lifetime thattheis mostly independent of (always shorter than) its signing EEC, a PCgives the user the right to write F2. When setting up the data channel the servers would again verify the names resulting from the authentication match the names provided by Steve as in the example inbecomes a viable approach for carrying authorization information for theprevious Section.purpose of delegation. Theextra security providedsecond undesirable property cited above is true. If a third party AA is authoritative, then using ACs issued bythese restrictions isthatnow if the PC delegatedthird party AA is a natural approach to disseminating authorization information. However, this is true whether theprocessidentity being bound bySteve is stolen, its use is greatly limited. 5.4 Delegation Tracing A relying party accepting a Proxy Certificate may havethese ACs comes from aninterest in knowing which parties issued earlier Proxy Certificates inEEC (PKC), or from a PC. There is one case, however, that thecertificate chain and to whom they delegated them. For exampleabove text does not consider. When performing delegation, itmay knowis usually the EEC itself thata particular service or resourceisknown to have been compromised and if any part of a Proxy Certificate's chain was issued toauthoritative (not thecompromised service a relyingEEC issuer, or any third partymay wish to disregard the chain. A delegation tracing mechanism was considered by the authors as additional informationAA). That is, it is up tobe carried intheProxyCertInfo extension. However at this time agreement has not been reached asEEC to decide whatthis information should include soauthorization rights itwas left out ofis willing to grant to another party. In thisdocument, and will instead be considered in future revisions. The debate mainly centers on whether the tracingsituation, including such authorization informationshould simply contain the identity of the issuer and receiver or it should also contain all the details of the delegated proxy and a signed statement from the receiverinto PCs that are generated by theproxy was actually acceptableEEC seems a reasonable approach toit. Tuecke, et al. 33 Internet Draft X.509disseminating such information. 5.1.4. Proxy CertificateProfile December 2003 5.4.1 Site Information in Delegation Tracingas Attribute Certificate Holder Insome cases, it may be desirable to knowa system that employs both PCs and ACs, one can imagine thehosts involved inutility of allowing adelegation transaction (for example,PC to be the holder of an AC. This would allow for arelying party may wishparticular delegated instance of an identity toreject proxy certificatesbe given an attribute, rather than all delegated instances of thatwere created onidentity being given the attribute. However, the issue of how to specify aspecific host or domain).PC as the holder of an AC remains open. AnextensionAC could bemodifiedbound toincludea particular instance of a PC using thePA'sunique subject name of the PC, or it's issuer andAcceptor's IP addresses; however, IP addresses are typically easy to spoof,serial number combination. Unrestricted PCs issued by that PC would then inherit those ACs andin some casesindependent PCs would not. PCs issued with a policy would depend on thetwo partiespolicy as toa transaction maywhether or notagree onthey inherit theIP addresses being used (e.g., ifissuing PC's ACs (and potentially which ACs they inherit). While an AC can be bound to one PC by theAcceptor isAA, how can the AA restrict that PC from passing it on to ahost that uses NAT, the Acceptor and the PA may disagree about the Acceptor's IP address). Another suggestion was, in those cases where domain information is needed,subsequently delegated PC? One possible solution would be torequiredefine an extension to attribute certificates that allows thesubject names of all End Entities involved (the Acceptor(s) andattribute authority to state whether an issued AC is to apply only to theEnd Entityparticular entity to which it is bound, or if it may apply to PCs issued by thatappearsentity. One issue that an AA ina PC's certificate path) include domain information. 6 Security Considerations InthisSection we discuss security considerations relatedcircumstance would need tothe usebe aware ofProxy Certificates. 6.1 Compromiseis that the PI of the PC that the AA bound the AC to, could issue another PC with the same name as the original PC to a different Tuecke, et al. Standards Track [Page 27] RFC 3820 X.509 Proxy CertificateA Proxy Certificate is generally less secure thanProfile June 2004 entity, effectively stealing theEEC that issued it.AC. Thisis dueimplies that an AA issuing an AC to a PC need to not only trust thefact thatentity holding theprivate keyPC, but the entity holding the PC's issuer as well. 5.2. Kerberos 5 Tickets The Kerberos Network Authentication Protocol (RFC 1510 [i6]) is a widely used authentication system based on conventional (shared secret key) cryptography. It provides support for single sign-on via creation of "Ticket Granting Tickets" or "TGT", and support for delegation of rights via "forwardable tickets". Kerberos 5 tickets have informed many of the ideas surrounding X.509 Proxy Certificates. For example, the local creation of a short-lived PCis generally not protected as rigorouslycan be used to provide single sign-on in an X.509 PKI based system, just asthat of the EEC. For example, the private keycreation ofa PC is often protected using only file system security,short-lived TGT allows for single sign-on inordera Kerberos based system. And just as a TGT can be forwarded (i.e., delegated) to another entity to allowthatfor proxying in a Kerberos based system, so can a PCtocan beuseddelegated to allow forsingle sign-on purposes. This makes theproxying in an X.509 PKI based system. A major difference between a Kerberos TGT and an X.509 PCmore susceptible to compromise. However,is that while creation and delegation of a TGT requires theriskinvolvement of acompromisedthird party (Key Distribution Center), a PCis onlycan be unilaterally created without themisuseactive involvement of asingle user's privileges. Due to the PC path validation checks,third party. That is, a user can directly create a PCcannot be used to signfrom an EECor PCforanother user. Further,single sign-on capability, without requiring communication with a third party. And an entity with acompromisedPC canonly be misused for the lifetime ofdelegate the PC to another entity (i.e., by creating a new PC,and within the bound of the restriction policy carriedsigned by thePC. Therefore, one common wayfirst) without requiring communication with a third party. The method used by Kerberos implementations tolimitprotect a TGT can also be used to protect themisuseprivate key of acompromised PC is to limit its validity period to no longer than is needed, and/orPC. For example, some Unix implementations of Kerberos use standard Unix file system security toincludeprotect arestriction policy inuser's TGT from compromise. Similarly, the Globus Toolkit's Grid Security Infrastructure implementation of Proxy Certificates protects a user's PCthat limits the useprivate key using this same approach. 5.3. Examples of usage of Proxy Restrictions This section gives some examples of Proxy Certificate usage and some examples of how the(compromised) PC.Proxy policy can be used to restrict Proxy Certificates. Tuecke, et al.34 Internet DraftStandards Track [Page 28] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 In addition, ifJune 2004 5.3.1. Example use of proxies without Restrictions Steve wishes to perform a third-party FTP transfer between two FTP servers. Steve would use an existing PCis compromised, it does NOT compromise the EEC that created the PC. This property is of great utility in protecting the highly valuable,to authenticate to both servers andharddelegate a PC toreplace, public keyboth hosts. He would inform each host of theEEC. In other words, the useunique subject name ofProxy Certificatesthe PC given toprovide single sign-on capabilities in an X.509 PKI environment can actually increasethesecurity ofother host. When theend entity certificates, because creation and use ofservers establish thePCs for userdata channel connection to each other, they use these delegated credentials to perform authenticationlimits the exposure of the EEC private keyand verify they are talking toonlythecreation ofcorrect entity by checking thefirst level PC. 6.2 Restricting Proxy Certificates The pCPathLenConstraint fieldresult of theproxyCertInfo extension can be used by an EEC to limit subsequent delegation ofauthentication matches thePC. A service may choose to only authorize a request if a valid PC can be delegated to it. An examplename as provided by Steve. 5.3.2. Example use ofsuch as service is a job starter, which may chooseproxies with Restrictions Steve wishes toreject a job start request if a valid PC cannot be delegateddelegate toit. By limitinga process thepCPathLenConstraint, an EEC can ensure thatright to perform acompromised PCtransfer ofone job cannot be useda file from host H1 tostart additional jobs elsewhere. An EEC or PC can limit whathost H2 on his behalf. Steve would delegate anewPCcan be used for by turning off bits into theKey Usageprocess andExtended Key Usage extensions. Once a key usage or extended key usage has been removed,he would use Proxy Policy to restrict thepath validation algorithm ensures that it cannot be added back in a subsequent PC. In other words, key usage can only be decreased indelegated PCchains. The EEC could useto two rights - theCRL Distribution Points extension and/or OCSPright totakeread file F1 on host H1 and theresponsibility of revoking PCs that it had issued, if it felt that they were being misused. 6.3 Relying Party Trust of Proxy Certificates The relying party that is goingright toauthorize some actionswrite file F2 onthe basis ofhost H2. The process then uses this restricted PC to authenticate to servers H1 and H2. The process would also delegate a PCwill be awareto both servers. Note thatit has been presentedthese delegated PCs would inherit the restrictions of their parents, though this is not relevant to this example. As in the example in the previous Section, each host would be provided witha PC, and can determinethedepthunique name of thedelegation andPC given to thetime thatother server. Now when thedelegation took place. It may wantprocess issues the command touse this information in additiontransfer the file F1 on H1 and to F2 on H2, these two servers perform an authorization check based on theinformation fromrestrictions in thesigning EEC. Thus a highly secure resource might refuse to accept aPCat all, or maybe only a single level of delegation, etc. Tuecke, et al. 35 Internet Draft X.509 Proxy Certificate Profile December 2003 The relying party should also be awarethatsincethe process used to authenticate with them (in addition to any local policyrestrictingthey have). Namely H1 checks that therights of aPCis the intersection of the policy of all the PCs in it's certificate chain, this means any change in the certificate chain can effectgives thepolicy ofuser thePC. Since there is no mechanism in placeright toenforce unique subject names of PCs, if an issuer were two PCs with identical namesread F1 andkeys, but different rights this could allowH2 checks that thetwo PCsPC gives the user the right tobe substituted for each other in path validation and effectwrite F2. When setting up therights of a PC downdata channel thechain. Ultimately, this meansservers would again verify therelying party places trust innames resulting from theentities that are acting as Proxy Issuers inauthentication match thechain to behave properly. 6.4 Protecting Against Denial of Service with Key Generation As discussednames provided by Steve as inSection 2.3, one ofthemotivations for Proxy Certificatesexample in the previous Section. The extra security provided by these restrictions is that now if the PC delegated toallow for dynamic delegation between parties. This delegation potentially requires, bythe process by Steve is stolen, its use is greatly limited. 5.4. Delegation Tracing A relying partyreceiving the delegation, the generation ofaccepting anew key pairProxy Certificate may have an interest in knowing whichis a potentially computationally expensive operation. Care should be taken by suchparties issued earlier Proxy Certificates in the certificate chain and toprevent another entity from performingwhom they delegated them. For example it may know that adenial ofparticular serviceattack by causing them to consume large amount ofor resourcedoing key generation. A general guideline would alwaysis known toperform authenticationhave been Tuecke, et al. Standards Track [Page 29] RFC 3820 X.509 Proxy Certificate Profile June 2004 compromised and if any part of a Proxy Certificate's chain was issued to thedelegatingcompromised service a relying party may wish toprevent such attacks from being performed anonymously. Another guideline would bedisregard the chain. A delegation tracing mechanism was considered by the authors as additional information tomaintain some statebe carried in the ProxyCertInfo extension. However at this time agreement has not been reached as todetectwhat this information should include so it was left out of this document, andprevent such attacks. 6.5 Usewill instead be considered in future revisions. The debate mainly centers on whether the tracing information should simply contain the identity of the issuer and receiver or it should also contain all the details ofProxy Certificates withthe delegated proxy and aCentral Repository As discussedsigned statement from the receiver that the proxy was actually acceptable to it. 5.4.1. Site Information inSection 2.7, one potential use of Proxy Certificates isDelegation Tracing In some cases, it may be desirable toease certificate management for end users by storingknow theEEC private keys and certificateshosts involved in acentrally managed repository. Whendelegation transaction (for example, auser needsrelying party may wish to reject proxy certificates that were created on aPKI credential, the user can loginspecific host or domain). An extension could be modified to include therepository using name/password, one time password, etc.PA's andthe repository would then delegate a PCAcceptor's IP addresses; however, IP addresses are typically easy to spoof, and in some cases theuser with proxy rights, but continuetwo parties toprotecta transaction may not agree on theEEC private key inIP addresses being used (e.g., if therepository. Care must be taken with this approach since compromise ofAcceptor is on a host that uses NAT, therepository will potentially giveAcceptor and theattacker access toPA may disagree about thelong- term private keys storedAcceptor's IP address). Another suggestion was, inthe repository. Itthose cases where domain information isstrongly suggested that some form of hardware module be usedneeded, tostorerequire that theTuecke, et al. 36 Internet Draft X.509 Proxy Certificate Profile December 2003 long-term private keys, which will serve to help prevent their direct threat though it may still allowsubject names of all End Entities involved (the Acceptor(s) and the End Entity that appears in asuccessful attackerPC's certificate path) include domain information. 6. Security Considerations In this Section we discuss security considerations related tousethekeys whileuse of Proxy Certificates. 6.1. Compromise of a Proxy Certificate A Proxy Certificate is generally less secure than therepositoryEEC that issued it. This iscompromiseddue tosign arbitrary objects (including Proxy Certificates). 7 IANA Considerations IANA should establishthe fact that the private key of aregistry for policy languages. Registration under IETF spacePC isby IETF standards actiongenerally not protected asdescribed in [i9]. Private policy languages should be under organizational OIDs; policy language authors are encouraged to list such languages inrigorously as that of theIANA registry, along with a pointer toEEC. For example, the private key of aspecification. 8 Normative References [n1] Bradner, S., "Key words for usePC is often protected using only file system security, inRFCsorder toIndicate Requirement Levels," BCP 14, RFC 2119, March 1997. [n2] Housley, R., W. Polk, W. Ford, and D. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile," RFC 3280, April 2002. 9 Informational References [i1] Butler, R., D. Engert, I. Foster, C. Kesselman, and S. Tuecke, "A National-Scale Authentication Infrastructure," IEEE Computer, vol. 33, pp. 60-66, 2000. [i2] Dierks, T. and C. Allen, "The TLS Protocol, Version 1.0," RFC 2246, January 1999. [i3] Farrell, S. and R. Housley, "An Internet Attribute Certificate Profile for Authorization," RFC 3281, April 2002. [i4] Foster, I., C. Kesselman, G. Tsudik, and S. Tuecke, "A Security Architectureallow that PC to be used forComputational Grids," presented at Proceedings ofsingle sign-on purposes. This makes the5th ACM Conference on Computer and Communications Security, 1998. [i5] Foster, I., C. Kesselman, and S. Tuecke, "The AnatomyPC more susceptible to compromise. However, the risk of a compromised PC is only theGrid: Enabling Scalable Virtual Organizations," International Journalmisuse ofSupercomputer Applications, 2001.a single user's privileges. Due to the PC path validation checks, a PC cannot be used to sign an EEC or PC for another user. Tuecke, et al.37 Internet DraftStandards Track [Page 30] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 [i6] Jackson, K., S. Tuecke, and D. Engert, "TLS Delegation Protocol," Internet Draft draft-ietf-tls-delegation-00.txt, 2001 [i7] Kohl, J. and C. Neuman, "The Kerberos Network Authentication Service (V5)," RFC 1510, September 1993. [i8] B. Clifford Neuman. "Proxy-Based Authorization and AccountingJune 2004 Further, a compromised PC can only be misused forDistributed Systems." In Proceedingsthe lifetime of the13th International Conference on Distributed Computing Systems, pages 283-291, May 1993. [i9] Narten, T. andPC, andH. Alvestrand. "Guidelines for Writing an IANA Considerations Section in RFC," RFC 2434, October 1998. 10 Acknowledgments We are pleased to acknowledge significant contributions to this documentwithin the bound of the restriction policy carried byDavid Chadwick, Ian Foster, Jarek Gawor, Carl Kesselman, Sam Meder, Jim Schaad, and Frank Siebenlist. We are gratefulthe PC. Therefore, one common way tonumerous colleagues for discussions onlimit thetopics covered in this paper, in particular (in alphabetical order, with apologiesmisuse of a compromised PC is toanybody we've missed): Carlisle Adams, Joe Bester, Randy Butler, Doug Engert, Keith Jackson, Steve Hanna, Russ Housley, Stephen Kent, Bill Johnston, Marty Humphrey, Sam Lang, Ellen McDermott, Clifford Neuman, Gene Tsudik. We are also gratefullimit its validity period tomembersno longer than is needed, and/or to include a restriction policy in the PC that limits the use of theGlobal Grid Forum (GGF) Grid Security Infrastructure working group (GSI-WG), and(compromised) PC. In addition, if a PC is compromised, it does NOT compromise theInternet Engineering Task Force (IETF) Public-Key Infrastructure (X.509) working group (PKIX) for feedback on this document.EEC that created the PC. Thiswork was supportedproperty is of great utility inpart byprotecting theMathematical, Information,highly valuable, andComputational Sciences Division subprogramhard to replace, public key of theOffice of Advanced Scientific Computing Research, U.S. DepartmentEEC. In other words, the use ofEnergy, under Contract W-31-109-Eng-38 and DE-AC03-76SF0098; byProxy Certificates to provide single sign-on capabilities in an X.509 PKI environment can actually increase theDefense Advanced Research Projects Agency under contract N66001-96-C-8523; bysecurity of theNational Science Foundation;end entity certificates, because creation andbyuse of theNASA Information Power Grid project. Tuecke, et al. 38 Internet Draft X.509 Proxy Certificate Profile December 2003 11 Contact Information Steven Tuecke Distributed Systems Laboratory Mathematics and Computer Science Division Argonne National Laboratory Argonne, IL 60439 Phone: 630-252-8711 Email: tuecke@mcs.anl.gov Von Welch National CenterPCs forSupercomputing Applications Universityuser authentication limits the exposure ofIllinois Email: vwelch@ncsa.uiuc.edu Doug Engert Argonne National Laboratory Email: deengert@anl.gov Laura Pearlman Universitythe EEC private key to only the creation ofSouthern California, Information Sciences Institute Email: laura@isi.edu Mary Thompson Lawrence Berkeley National Laboratory Email: mrthompson@lbl.gov 12 Copyright Notice Copyright (C)the first level PC. 6.2. Restricting Proxy Certificates TheInternet Society (September 23, 2002). All Rights Reserved. This document and translationspCPathLenConstraint field of the proxyCertInfo extension can be used by an EEC to limit subsequent delegation ofitthe PC. A service may choose to only authorize a request if a valid PC can becopied and furnisheddelegated toothers, and derivative worksit. An example of such as service is a job starter, which may choose to reject a job start request if a valid PC cannot be delegated to it. By limiting the pCPathLenConstraint, an EEC can ensure thatcomment on or otherwise explain ita compromised PC of one job cannot be used to start additional jobs elsewhere. An EEC orassist in its implementation mayPC can limit what a new PC can beprepared, copied, published and distributed,used for by turning off bits inwholethe Key Usage and Extended Key Usage extensions. Once a key usage or extended key usage has been removed, the path validation algorithm ensures that it cannot be added back inpart, without restrictiona subsequent PC. In other words, key usage can only be decreased in PC chains. The EEC could use the CRL Distribution Points extension and/or OCSP to take on the responsibility ofany kind, providedrevoking PCs that it had issued, if it felt that they were being misused. 6.3. Relying Party Trust of Proxy Certificates The relying party that is going to authorize some actions on theabove copyright noticebasis of a PC will be aware that it has been presented with a PC, andthis paragraph are included on all such copiescan determine the depth of the delegation andderivative works. However, this document itselfthe time that the delegation took place. It maynot be modifiedwant to use this information inany way, such as by removingaddition to the information from thecopyright notice or referencessigning EEC. Thus a highly secure resource might refuse tothe Internet Societyaccept a PC at all, orother Internet organizations, except as needed for the purposemaybe only a single level ofdeveloping Internet standards in which case the procedures for copyrights defined in the Internet Standards processdelegation, etc. Tuecke, et al.39 Internet DraftStandards Track [Page 31] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 must be followed, or as required to translate it into languages other than English.June 2004 Thelimited permissions granted above are perpetual and will notrelying party should also berevoked byaware that since theInternet Society or its successors or assigns. This document andpolicy restricting theinformation contained hereinrights of a PC isprovided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 13 Intellectual Property Statement The IETF takes no position regardingthevalidity or scopeintersection ofany intellectual property or other rights that might be claimed to pertain totheimplementation or usepolicy of all thetechnology describedPCs in it's certificate chain, thisdocument ormeans any change in theextentcertificate chain can effect the policy of the PC. Since there is no mechanism in place towhich any license under such rights might or might not be available; neither does it represent that it has made any effortenforce unique subject names of PCs, if an issuer were toidentify any such rights. Information on the IETF's proceduresissue two PCs withrespectidentical names and keys, but different rights, this could allow the two PCs torights in standards-track and standards-related documentation canbefound in BCP-11. Copies of claims of rights made availablesubstituted forpublicationeach other in path validation andany assurances of licenses to be made available, oreffect theresultrights ofan attempt made to obtainageneral license or permission forPC down theuse of such proprietary rights by implementers or users ofchain. Ultimately, thisspecification can be obtained frommeans theIETF Secretariat. The IETF invites any interestedrelying partyto bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information toplaces trust in theIETF Executive Director. Tuecke, et al. 40 Internet Draft X.509 Proxy Certificate Profile December 2003 Appendix A. 1988 ASN.1 Module PKIXproxy88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) proxy-cert-extns(25) } DEFINITIONS EXPLICIT TAGS ::= BEGIN -- EXPORTS ALL -- -- IMPORTS NONE -- -- PKIX specific OIDs id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) } -- private certificate extensions id-pe OBJECT IDENTIFIER ::= { id-pkix 1 } -- Locally defined OIDs -- The proxy certificate extension id-pe-proxyCertInfo OBJECT IDENTIFIER ::= { id-pe 14 } -- Proxy certificate policy languages id-ppl OBJECT IDENTIFIER ::= { id-pkix 21 } --entities that are acting as Proxycertificate policies languages definedIssuers indraft id-ppl-anyLanguage OBJECT IDENTIFIER ::= { id-ppl 0 } id-ppl-inheritAll OBJECT IDENTIFIER ::= { id-ppl 1 } id-ppl-independent OBJECT IDENTIFIER ::= { id-ppl 2 } -- The ProxyCertInfo Extension ProxyCertInfoExtension ::= SEQUENCE { pCPathLenConstraint ProxyCertPathLengthConstraint OPTIONAL, proxyPolicy ProxyPolicy } ProxyCertPathLengthConstraint ::= INTEGER Tuecke, et al. 41 Internet Draft X.509the chain to behave properly. 6.4. Protecting Against Denial of Service with Key Generation As discussed in Section 2.3, one of the motivations for ProxyCertificate Profile December 2003 ProxyPolicy ::= SEQUENCE { policyLanguage OBJECT IDENTIFIER, policy OCTET STRING OPTIONAL } END Appendix B. Change Log (To be removed priorCertificates is topublication) draft-ietf-pkix-impersonation-00 (February 2001) Initial submission. draft-ietf-pkix-proxy-00 (July 2001) Renamedallow for dynamic delegation between parties. This delegation potentially requires, by the party receiving the delegation, the generation of a new key pair which is a potentially computationally expensive operation. Care should be taken by such parties to"Proxy Certificate",prevent another entity from"Impersonation Certificate", dueperforming a denial of service attack by causing them tooverwhelming feedbackconsume large amount of resource doing key generation. A general guideline would always to perform authentication of the delegating party to prevent such attacks fromIETFbeing performed anonymously. Another guideline would be to maintain some state to detect andGGF. Added proxyRestriction fieldprevent such attacks. 6.5. Use of Proxy Certificates with a Central Repository As discussed in Section 2.7, one potential use of Proxy Certificates is toProxyCertInfo extension. Added delegationTrace fieldease certificate management for end users by storing the EEC private keys and certificates in a centrally managed repository. When a user needs a PKI credential, the user can login toProxyCertInfo extension. Updatedthe repository using name/password, one time password, etc. and the repository would then delegate a PC toagreethe user withdraft-ietf-pkix-part1-08. draft-ietf-pkix-proxy-01 (August 2001) Changes relatedproxy rights, but continue todelegation tracing: removed delegationTrace field from ProxyCertInfo extension, created DelegationTrace extension, added and modified commentary sections relatedprotect the EEC private key in the repository. Care must be taken with this approach since compromise of the repository will potentially give the attacker access todelegation tracing. Added issuerCertHashthe long-term private keys stored in the repository. It is strongly suggested that some form of hardware module be used toproxyCertInfo extension andstore the long-term private keys, which will serve to help prevent their direct threat though it may still allow a successful attacker to use thepath validation section. draft-ietf-pkix-proxy-02 (February 2002) Draft for Global Grid Forum 4 (Toronto) Added concept of proxy group. Updated section on keyCertSign bitkeys while the repository is compromised toreflect draft-pkix-new- part1-07.sign arbitrary objects (including Proxy Certificates). Tuecke, et al.42 Internet DraftStandards Track [Page 32] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 draft-ietf-pkix-proxy-02 (March 2002) DraftJune 2004 7. IANA Considerations IANA has established a registry forIETF. Same version number (-02)policy languages. Registration under IETF space is by IETF standards action asFebruary 2002 for GGF4 but with changes. Globally changed "Proxy Authority" to "Proxy Issuer". Changed exampledescribed inMotivations section to use a reliable file transfer service. An EEC issuing a PC must have a non-empty subject name. Proxy subject names are now non-empty and contain a sequence of proxy identifiers. Changes to path validation to reflect this. subjectAltNames and issuerAltNames[i8]. Private policy languages should be under organizational OIDs; policy language authors arenow not present PCs. Renamed issuerCertHashencouraged toissuerCertSignature and similarlylist such languages in the IANA registry, along withit's contents. Added considerationa pointer topath validationa specification. OID Description --- ----------- 1.3.6.1.5.5.7.21.1 id-ppl-inheritALL 1.3.6.1.5.5.7.21.2 id-ppl-independent 8. References 8.1. Normative References [n1] Bradner, S., "Key words forPC's with an infinite path length (i.e. no pCPathLenConstraint). draft-ggf-gsi-proxy-03 (July 2002) Draft for GGF-5 (Edinburgh) Renamed to draft-ggf-gsi-proxy-03 Changed formatting to meet GGF document format requirements. Added GGF copyright noticeuse in RFCs tobeginning. Removed Internet Draft language from status sectionIndicate Requirement Levels", BCP 14, RFC 2119, March 1997. [n2] Housley, R., Polk, W., Ford, W., andreplaced with current text. Added CopyrightD. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3280, April 2002. 8.2. Informative References [i1] Butler, R., Engert, D., Foster, I., Kesselman, C., and S. Tuecke, "A National-Scale Authentication Infrastructure", IEEE Computer, vol. 33, pp. 60-66, 2000. [i2] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC 2246, January 1999. [i3] Farrell, S. andIntellectual Property sections (12 & 13) Removed Section 3.7.2: DelegationTrace Extension. Renumbered subsections 3.7.1.x to 3.7.x. Removed subsections in Section 6 Tuecke, et al. 43R. Housley, "An InternetDraft X.509 ProxyAttribute Certificate ProfileDecember 2003 related to this extension and replaced with one subsection discussing it. Proxy Certificate subject name is now issuer name concatenated with a single unique component. Functional changes to Sections 3for Authorization", RFC 3281, April 2002. [i4] Foster, I., Kesselman, C., Tsudik, G., and4 to reflect this, numerous changes throughout the document including removalS. Tuecke, "A Security Architecture for Computational Grids", presented at Proceedings ofsection 6.3. Removed text statingtheProxy subject name should only be used for path validation to leave door open for use with attribute certificates. Rewrote 2.6 so reflect that PCs now have unique identities. Added new section 2.5 (Motivation for Unique Proxy Name) Removed sections 2.7 (Proxy Issuer, not Certificate Authority)5th ACM Conference on Computer and2.8 (Names versus Subjects) Renamed proxyRestrictions to proxyPolicyCommunications Security, 1998. [i5] Foster, I., Kesselman, C., andmade it a required field. Numerous changes elsewhere to reflect this change. Removed issuerCertSignature since it is no longer needed since PCs now have unique names. Added previously deleted (accidentally?) text in 6.1 (keyCertSign Bit commentary). Cleaned up pCPathLenConstraint checking in section 4 by adding the max_pc_path_length variable. RemovedS. Tuecke, "The Anatomy of theproxyGroup field to make document restriction policy agnostic. Added structure to Section 7 (Security Considerations) and added some text about a relying party trusting all issuers in a PC chain. Removed sections 6.1Grid: Enabling Scalable Virtual Organizations", International Journal of Supercomputer Applications, 2001. [i6] Kohl, J. and6.2 from commentary since the PKIX draft is now anC. Neuman, "The Kerberos Network Authentication Service (V5)", RFCand won't be changed. Moved text from 6.3 to 3.9.4 and removed section 6.3.1510, September 1993. Tuecke, et al.44 Internet DraftStandards Track [Page 33] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 Moved 6.4 to end of Commentary section. Moved section 5 (Relationship to attribute certificate to be first sectionJune 2004 [i7] Neuman, B. Clifford, "Proxy-Based Authorization and Accounting for Distributed Systems", In Proceedings ofcommentary). Changed intro to commentarythe 13th International Conference on Distributed Computing Systems, pages 283-291, May 1993. [i8] Narten, T. andadded textH. Alvestrand. "Guidelines for Writing an IANA Considerations Section in RFC", RFC 2434, October 1998. 9. Acknowledgments We are pleased tobeginning of section 2acknowledge significant contributions toindicate that these two sectionsthis document by David Chadwick, Ian Foster, Jarek Gawor, Carl Kesselman, Sam Meder, Jim Schaad, and Frank Siebenlist. We arenon-normative. Changed text in 2.7grateful toindicate ease of integration with existing authorization systems is true only innumerous colleagues for discussions on thecase of impersonation PCs. Added text to new section 5.1.4topics covered in this paper, in particular (in alphabetical order, with apologies toindicate that binding ACsanybody we've missed): Carlisle Adams, Joe Bester, Randy Butler, Keith Jackson, Steve Hanna, Russ Housley, Stephen Kent, Bill Johnston, Marty Humphrey, Sam Lang, Ellen McDermott, Clifford Neuman, Gene Tsudik. We are also grateful toPCs indicates a trustmembers of thePI. RemovedGlobal Grid Forum (GGF) Grid Security Infrastructure working group (GSI-WG), and thepC bit - any certificate with a proxyCertInfo extensions is now a PC. draft-ggf-gsi-proxy-04 (August 2002) Minor non-normative editorial corrections. draft-ietf-pkix-proxy-03 (October 2002) Name changeInternet Engineering Task Force (IETF) Public-Key Infrastructure (X.509) working group (PKIX) forattempted inclusion as a PKIX WG document. Basedfeedback ondraft-ggf-gsi-proxy-04 with changes listed below. Changed reference from "draft update to RFC 2459" to RFC 3280. draft-ietf-pkix-proxy-04 (February 2003) Rewrote section 4, Path Validation, to be additions to RFC 3280 path validation insteadthis document. This work was supported in part by the Mathematical, Information, and Computational Sciences Division subprogram ofchanges. Added Appendix A with ASN.1 module. Added oids for Impersonationthe Office of Advanced Scientific Computing Research, U.S. Department of Energy, under Contract W-31-109-Eng-38 and DE-AC03-76SF0098; by the Defense Advanced Research Projects Agency under contract N66001-96-C-8523; by the National Science Foundation; andIndependent policy languages to section 3.9.3. In section 3.6: keyusage extension in a proxy certificate only has to be marked critical if marked critical inby theissuer's certificate. Previously it always had to be marked critical. draft-ietf-pkix-proxy-05 (April 2003)NASA Information Power Grid project. Tuecke, et al.45 Internet DraftStandards Track [Page 34] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 Removed version field from ProxyCertInfo extension Restrictions on contents of key usage and extended key usage removed and placed as burden to relying party(4.2 and 3.6). Path validation (4.1.3) now outputs proxy_policy_list as a list of tuples containing subject name, policy oid, policy field, key usage extension and extended key usage extension Number of fixes to ASN module from Jim Schaad. Changes policy language OID name from "id-ppl-impersonation" to "id-ppl-inheritall". Fixed discrepancy betweenJune 2004 Appendix A. 1988 ASN.1module and 3.9.2: id-ppl- independent and id-ppl-inheritall now refer to the whole OID. Clarified that aModule PKIXproxy88 { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) proxy-cert-extns(25) } DEFINITIONS EXPLICIT TAGS ::= BEGIN -- EXPORTS ALL -- -- IMPORTS NONE -- -- PKIX specific OIDs id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) } -- private certificate extensions id-pe OBJECT IDENTIFIER ::= { id-pkix 1 } -- Locally defined OIDs -- The proxyissuer must have digitalSignature asserted if itscertificateincludes the keyUsage extension. Accepted text from David Chadwick globally getting rid of the term "impersonation" and replacing with "proxying". Reformatted document to be less indented and be more in line with other IDs. Numerous clarifications to draft based on Jim Schaad's comments. Effected sections: 3, 3.1, 3.4, 3.7, 3.9.3, 4, 5.4.1 Expanded PKI acronymextension id-pe-proxyCertInfo OBJECT IDENTIFIER ::= { id-pe 14 } -- Proxy certificate policy languages id-ppl OBJECT IDENTIFIER ::= { id-pkix 21 } -- Proxy certificate policies languages defined inabstractid-ppl-anyLanguage OBJECT IDENTIFIER ::= { id-ppl 0 } id-ppl-inheritAll OBJECT IDENTIFIER ::= { id-ppl 1 } id-ppl-independent OBJECT IDENTIFIER ::= { id-ppl 2 } -- The ProxyCertInfo Extension ProxyCertInfoExtension ::= SEQUENCE { pCPathLenConstraint ProxyCertPathLengthConstraint OPTIONAL, proxyPolicy ProxyPolicy } ProxyCertPathLengthConstraint ::= INTEGER ProxyPolicy ::= SEQUENCE { policyLanguage OBJECT IDENTIFIER, policy OCTET STRING OPTIONAL } END Tuecke, et al. Standards Track [Page 35] RFC 3820 X.509 Proxy Certificate Profile June 2004 Authors' Addresses Steven Tuecke Distributed Systems Laboratory Mathematics andsection 2. Shorten titleComputer Science Division Argonne National Laboratory Argonne, IL 60439 Phone: 630-252-8711 EMail: tuecke@mcs.anl.gov Von Welch National Center for Supercomputing Applications University ofsection 4.2 to allow it to fit in tableIllinois EMail: vwelch@ncsa.uiuc.edu Doug Engert Argonne National Laboratory EMail: deengert@anl.gov Laura Pearlman University ofcontents. draft-ietf-pkix-proxy-06 (May 2003) Renamed "id-ppl-inheritall" to "id-ppl-inheritAll" (capitalizing the "a") for consistency. In section 4, renamed "acceptable-pc-policy-set" to "acceptable- pc-policy-language-set" for clarity.Southern California, Information Sciences Institute EMail: laura@isi.edu Mary Thompson Lawrence Berkeley National Laboratory EMail: mrthompson@lbl.gov Tuecke, et al.46 Internet DraftStandards Track [Page 36] RFC 3820 X.509 Proxy Certificate ProfileDecember 2003 In section 4, renamed "any-policy" to "id-ppl-anyLanguage" for clarity. Added an OID for id-ppl-anyLanguageJune 2004 Full Copyright Statement Copyright (C) The Internet Society (2004). This document is subject toAppendix A. Clarified text in 4.1.3 (c). Clarified Proxy Issuer definitionthe rights, licenses and restrictions contained in2.1. Changed "MUST not be present" to "MUST be absent" second to last paragraph of section 3.8. Removed OID definitions from 3.8.2BCP 78, andadded pointer to Appendix A. draft-ietf-pkix-proxy-07 (July 2003) Non-normative change: Split references into normativeexcept as set forth therein, the authors retain all their rights. This document andinformative. Non-normative change: Moved change log to appendix B. Non-normative change: Reduced author count to 5. Added significant contributors list to acknowledgments. draft-ietf-pkix-proxy-08 (August 2003) Correction to 4.1.3: Failure of step(d) also causes process termination. Deleted following sentence from 3.8.2 since it no longer pertains: "Note that this verification MUST take place regardlessthe information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope ofwhetherany Intellectual Property Rights ornot the PC itself contains a policy, asotherPCs in the signing chain MAY contain conditionsrights thatMUSTmight beverified." Clarificationclaimed to pertain to the implementation or use of the technology described in3.8.2: "interpretthis document or thepolicy"extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to"interpretidentify any such rights. Information on theproxy policy" Clarified textprocedures with respect to rights in3.8.1 regarding EECs. draft-ietf-pkix-proxy-09 (November 2003) Tuecke, et al. 47 Internet Draft X.509 Proxy Certificate Profile December 2003 Corrected object identifier for proxy cert extensionRFC documents can be found in3.8 Improved phrasing of conditions 2BCP 78 and3 in 3.8.2 Improved phrasingBCP 79. Copies of(e) in 4IPR disclosures made tomake clear thatthe IETF Secretariat and anyproxy certificate can limit lengthassurances ofpath. Minor editorial changes in 4.1.1, 4.2, 5.1.3, 6.1 Added referencelicenses toRFC 3280 in 4.1.3 step (d). draft-ietf-pkix-proxy-10 (December 2003) Minor corrections in 3.8.2, 4.1.5, and non-normative references. Marked Appendix B as "Toberemoved before publication" Updated contact information and institutionmade available, or the result of an attempt made to obtain a general license or permission forVon Welch. Added Section 7, IANA Considerations, and non-normative referencethe use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party toRFC 2434. Section 3.8.1: Correction "Ifbring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address theproxyCertInfo extension is not present..." changedinformation to"IfthepCPathLenConstraint field is not present..." Section 3.8.2: Added encouragementIETF at ietf- ipr@ietf.org. Acknowledgement Funding forauthors to publicly specific and list their policy languages with IANA. Added sections 6.4 and 6.5 to Security Considerations.the RFC Editor function is currently provided by the Internet Society. Tuecke, et al.48Standards Track [Page 37] ----