J. Basney, NCSA Category: Experimental October 10, MyProxy Protocol

Similar documents
A Roadmap for Integration of Grid Security with One-Time Passwords

Category: Standards Track January 1999

Network Working Group. November Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)

An OGSI CredentialManager Service Jim Basney a, Shiva Shankar Chetan a, Feng Qin a, Sumin Song a, Xiao Tu a, and Marty Humphrey b

Network Working Group Request for Comments: Category: Best Current Practice January 2004

Category: Standards Track December 2003

Network Working Group Request for Comments: 3397 Category: Standards Track Apple Computer, Inc. November 2002

Use and Interpretation of HTTP Version Numbers

Request for Comments: 4680 Updates: 4346 September 2006 Category: Standards Track

Updates: 2710 September 2003 Category: Standards Track. Source Address Selection for the Multicast Listener Discovery (MLD) Protocol

Category: Standards Track October 2006

Request for Comments: 5208 Category: Informational May 2008

Network Working Group Request for Comments: 3634 Category: Standards Track Comcast Cable J. Bevilacqua N. Davoust YAS Corporation December 2003

Request for Comments: 2711 Category: Standards Track BBN October 1999

Using SRP for TLS Authentication

Request for Comments: 2493 Category: Standards Track January 1999

Network Working Group. Category: Standards Track <draft-aboba-radius-iana-03.txt> 30 March 2003 Updates: RFC IANA Considerations for RADIUS

Multi-Server Based Namespace Data Management of Resource Namespace Service

Using the MyProxy Online Credential Repository

Category: Standards Track December 2007

Network Working Group. Category: Standards Track August Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option

Request for Comments: 5179 Category: Standards Track May 2008

Category: Standards Track September 2003

Category: Standards Track October 2006

Category: Informational March Methods for Avoiding the "Small-Subgroup" Attacks on the Diffie-Hellman Key Agreement Method for S/MIME

Category: Standards Track May Transport Layer Security Protocol Compression Methods

Network Working Group Request for Comments: Cisco Systems, Inc. December 2005

Network Working Group Request for Comments: 2514 Category: Standards Track Cisco Systems K. Tesink Bellcore Editors February 1999

Network Working Group. N. Williams Sun Microsystems June 2006

Managing Grid Credentials

Network Working Group. Category: Informational Cisco Systems J. Brezak Microsoft February 2002

GSI Online Credential Retrieval Requirements. Jim Basney

Report for the GGF 15 Community Activity: Leveraging Site Infrastructure for Multi-Site Grids

Category: Standards Track March Extensible Provisioning Protocol (EPP) Transport Over TCP

Category: Standards Track October Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)

Category: Standards Track Cisco Systems, Inc. March 2005

Network Working Group Request for Comments: 4162 Category: Standards Track KISA August 2005

Network Working Group Request for Comments: 4432 March 2006 Category: Standards Track

Updates: 2535 November 2003 Category: Standards Track

Request for Comments: 4633 Category: Experimental August 2006

Network Working Group. February 2005

E. Lewis ARIN September 23, KEY RR Secure Entry Point Flag draft-ietf-dnsext-keyrr-key-signing-flag-09. Status of this Memo

Category: Experimental April BinaryTime: An Alternate Format for Representing Date and Time in ASN.1

CA-based Trust Issues for Grid Authentication and Identity Delegation

Updates: 2409 May 2005 Category: Standards Track. Algorithms for Internet Key Exchange version 1 (IKEv1)

Request for Comments: M. Stillman Nokia M. Tuexen Muenster Univ. of Applied Sciences September 2008

Expires: October 9, 2005 April 7, 2005

Request for Comments: 3934 Updates: 2418 October 2004 BCP: 94 Category: Best Current Practice

Authentication, Authorization and Accounting Requirements for the Session Initiation Protocol

XDI Requirements and Use Cases

Category: Standards Track July The Post Office Protocol (POP3) Simple Authentication and Security Layer (SASL) Authentication Mechanism

Category: Standards Track Microsoft May 2004

Network Working Group. Category: Standards Track December 2005

Category: Standards Track September MIB Textual Conventions for Uniform Resource Identifiers (URIs)

Category: Informational September 2004

Request for Comments: 3566 Category: Standards Track Intel September The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec

Expires: February 25, 2004 August 27, Using the NETCONF Configuration Protocol over Secure Shell (SSH) draft-wasserman-netconf-over-ssh-00.

Request for Comments: 5079 Category: Standards Track December Rejecting Anonymous Requests in the Session Initiation Protocol (SIP)

Request for Comments: 2230 Category: Informational November 1997

Request for Comments: 3578 Category: Standards Track dynamicsoft J. Peterson NeuStar L. Ong Ciena August 2003

Request for Comments: TIS Labs March Storing Certificates in the Domain Name System (DNS)

Credential Management in the Grid Security Infrastructure. GlobusWorld Security Workshop January 16, 2003

Network Working Group Request for Comments: 4869 Category: Informational May Suite B Cryptographic Suites for IPsec. Status of This Memo

Category: Experimental June 2006

Network Working Group. Category: Standards Track February SIEVE Filtering: Spamtest and VirusTest Extensions

Network Working Group. Category: Standards Track September 2003

Request for Comments: 5010 Category: Standards Track Cisco Systems, Inc. September 2007

David Chadwick, University of Kent Linying Su, University of Kent 11 June 2008

Internet Engineering Task Force (IETF) Request for Comments: 6961 June 2013 Category: Standards Track ISSN:

Internet Engineering Task Force (IETF) Category: Standards Track October 2015 ISSN:

Network Working Group. Category: Standards Track June Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option

Request for Comments: Starent Networks A. Lior Bridgewater Systems K. Leung Cisco Systems October 2007

Request for Comments: 2712 Category: Standards Track CyberSafe Corporation October 1999

Network Working Group. Category: Informational September 2000

Credentials Management for Authentication in a Grid-Based E-Learning Platform

Network Working Group. Category: Standards Track Juniper Networks August 2008

Request for Comments: 4715 Category: Informational NTT November 2006

Network Working Group. Category: Standards Track July 2007

Michel Drescher, FLE, Ltd. Standardised Namespaces for XML in GGF (draft 09) N/A

Category: Standards Track LabN Consulting, LLC July 2008

Network Working Group. Category: Standards Track Samsung S. Kumar Tech Mahindra Ltd S. Madanapalli Samsung May 2008

Request for Comments: 4255 Category: Standards Track SPARTA January Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints

Category: Best Current Practice February Early IANA Allocation of Standards Track Code Points

Category: Standards Track August POP URL Scheme. Status of this Memo

Network Working Group Request for Comments: 4913 Category: Experimental July 2007

Network Working Group. Category: Standards Track Cisco Systems May 2007

Network Working Group. Category: Informational January Unused Dynamic Host Configuration Protocol (DHCP) Option Codes

Deploying the TeraGrid PKI

Network Working Group. Category: Standards Track January 1999 Updates: 2284, 1994, PPP LCP Internationalization Configuration Option

XACML Profile for Requests for Multiple Resources

Category: Standards Track Cisco Systems, Inc January The Secure Shell (SSH) Session Channel Break Extension

Network Working Group Request for Comments: August Address-Prefix-Based Outbound Route Filter for BGP-4

October 4, 2000 Expires in six months. SMTP Service Extension for Secure SMTP over TLS. Status of this Memo

Network Working Group. BCP: 131 July 2007 Category: Best Current Practice

Request for Comments: 3110 Obsoletes: 2537 May 2001 Category: Standards Track. RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)

Network Working Group. Intended status: Standards Track Columbia U. Expires: March 5, 2009 September 1, 2008

Category: Standards Track August 2002

Network Working Group Request for Comments: 4573 Category: Standard Track July MIME Type Registration for RTP Payload Format for H.

Network Working Group. Category: Standards Track NIST November 1998

Category: Standards Track June Requesting Attributes by Object Class in the Lightweight Directory Access Protocol (LDAP) Status of This Memo

Transcription:

GWD-E J. Basney, NCSA Category: Experimental October 10, 2005 MyProxy Protocol Status of This Memo This memo provides information to the Grid community. Distribution is unlimited. Copyright Notice Copyright Global Grid Forum (2005). All Rights Reserved. Abstract This document describes a protocol for storing and retrieving X.509 proxy credentials [RFC3820] to and from a server. The protocol uses proxy delegation [ProxyDelegation] to transfer credentials without transferring private keys. Contents Abstract... 1 1. Introduction... 2 2. Initializing the Connection... 2 3. Messaging Overview... 2 4. The 'Get' Command (COMMAND=0)... 3 5. The 'Put' Command (COMMAND=1)... 4 6. The 'Info' Command (COMMAND=2)... 4 7. The 'Destroy' Command (COMMAND=3)... 5 8. Security Considerations... 5 9. Acknowledgements... 5 Author Information... 5 Intellectual Property Statement... 6 Full Copyright Notice... 6 References... 6 jbasney@ncsa.uiuc.edu 1

1. Introduction The MyProxy protocol [MyProxy] supports storing and retrieving X.509 proxy credentials [RFC3820] to and from a server. The protocol allows long-lived keys to be secured on the server while allowing convenient access to short-lived proxy credentials as needed. The protocol was first implemented in September 2000 and has been widely used in grids since that time. This document specifies the core MyProxy protocol as implemented by existing MyProxy software, representing the minimum requirements for an interoperable MyProxy implementation. The protocol is extensible, and protocol extensions may be specified in other documents in the future. 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 [RFC2119]. 2. Initializing the Connection Upon TCP connection establishment, the client and server perform the TLS protocol [RFC2246] to establish a private, authenticated channel. Server authentication via TLS is REQUIRED. The server's authenticated identity MUST have a Common Name of "fqhn", "host/fqhn", or "myproxy/fqhn", where "fqhn" is the fully qualified hostname of the server. Otherwise, the client MUST terminate the connection immediately. Clients and servers MUST support SSL 3.0 as described in [RFC2246] Section E. Clients and servers MUST NOT support SSL 2.0. Client authentication via TLS is REQUIRED for all commands except the 'Get' command (COMMAND=0), for which TLS client authentication is OPTIONAL. The server SHOULD support client authentication with proxy credentials, i.e., the server's TLS implementation SHOULD understand the proxy certificate extensions [RFC3820]. The negotiated TLS channel MUST be private, i.e., the client and server MUST NOT negotiate the NULL TLS cipher suite. Once the TLS handshake is complete and the secure channel has been established, the client sends one byte with zero value over the TLS channel. The server MUST ignore this first byte. The MyProxy application protocol then proceeds over the TLS channel as follows. 3. Messaging Overview MyProxy protocol messages are NULL-terminated ASCII text strings containing one or more lines of ATTRIBUTE=VALUE statements, separated by the ASCII newline character 0x0a ('\n'). Client requests contain: COMMAND=<ASCII decimal integer> USERNAME=<ASCII string> PASSPHRASE=<ASCII string> LIFETIME=<ASCII decimal integer> followed optionally by additional ATTRIBUTE=VALUE lines. The COMMAND line specifies the requested command. The USERNAME line specifies an ASCII string identifying the "account" for storing the proxy credential. This "account" need not correspond to any system account outside MyProxy. The PASSPHRASE line specifies an ASCII pass phrase used to protect the stored proxy credential. It MUST be a minimum of 6 characters in length. The LIFETIME line specifies jbasney@ncsa.uiuc.edu 2

the lifetime of the retrieved proxy credential in seconds (ASCII digits), not to exceed one billion seconds. These parameters are specified in detail for each command in the following sections. The server replies to the requests with the following to indicate success: RESPONSE=0 or replies with the following to indicate error: RESPONSE=1 ERROR=<error text> ERROR=<error text>... There may be one or more lines of error text, with the intent that the client may concatenate them together (separated with carriage returns) for display. After sending an error response, the server MUST immediately close the connection. For protocol extensibility, clients and servers MUST ignore lines in messages that they don't understand. Clients and servers MUST send lines in the order specified. 4. The 'Get' Command (COMMAND=0) This command retrieves a proxy credential from the server. The client sends: COMMAND=0 PASSPHRASE=<pass phrase> LIFETIME=<requested lifetime> The USERNAME line identifies the account in which the credential to be retrieved has been stored. The PASSPHRASE line specifies the pass phrase protecting the credential. The server MUST verify the pass phrase and reject the request if the pass phrase does not match. The LIFETIME is the requested proxy credential lifetime in seconds (ASCII digits). The server MAY return a credential with a shorter lifetime according to its local policies. The MyProxy server will then send a RESPONSE message. If the RESPONSE indicates failure (RESPONSE=1), the server will terminate the connection. If the RESPONSE indicates success (RESPONSE=0), the protocol proceeds as follows. The client will generate a public/private key pair and send a NULL-terminated PKCS#10 [RFC2986] certificate request to the server. The server will then send a proxy certificate [RFC3820], containing the public key from the certificate request, signed by the private key of the stored credential, followed by the corresponding certificate chain, back to the client. The server will set the subject of the proxy certificate as specified in [RFC3820] Section 3.4, ignoring the subject in the client's certificate request. The format of the server's message is: one byte encoding the number of certificates to be sent, followed by the newly signed proxy certificate, followed by the certificates in the chain. Each certificate is encoded in X.509v3 ASN.1 format. The certificate chain MUST include the end-entity certificate signed by a CA, and MAY also include CA certificates. jbasney@ncsa.uiuc.edu 3

The server will then send a standard RESPONSE message, and both client and server will close the connection. 5. The 'Put' Command (COMMAND=1) This command stores a proxy credential on the server. The client sends: COMMAND=1 PASSPHRASE=<pass phrase> LIFETIME=<lifetime> The USERNAME line identifies the account in which to store the credential. The PASSPHRASE line specifies the pass phrase for protecting the proxy credential. The pass phrase MUST be at least 6 characters in length. The server MUST enforce this pass phrase length restriction, and MAY optionally enforce additional pass phrase quality policies. LIFETIME sets the maximum lifetime allowed for retrieved proxy credentials, in seconds, encoded in ASCII digits. The server MUST enforce this maximum lifetime on subsequent Get requests. The MyProxy server will then send a RESPONSE message. If the RESPONSE indicates failure (RESPONSE=1), the server will terminate the connection. If the RESPONSE indicates success (RESPONSE=0), the protocol proceeds as follows. The server will generate a public/private key pair and send a NULL-terminated PKCS#10 [RFC2986] certificate request to the client. The client will then send a proxy certificate [RFC3820], containing the public key from the certificate request, signed by its private key, followed by the corresponding certificate chain, back to the server. The client will set the subject of the proxy certificate as specified in [RFC3820] Section 3.4, ignoring the subject in the server's certificate request. The format of the client's message is: one byte encoding the number of certificates to be sent, followed by the newly signed proxy certificate, followed by the certificates in the chain. Each certificate is encoded in X.509v3 ASN.1 format. The certificate chain MUST include the end-entity certificate signed by a CA, and MAY also include CA certificates. The server then stores the credentials and sends a standard RESPONSE message indicating whether the credentials were successfully stored. Then both client and server close the connection. 6. The 'Info' Command (COMMAND=2) This command provides information about the existence of stored credentials. The client sends: COMMAND=2 PASSPHRASE=DUMMY-PASSPHRASE LIFETIME=0 USERNAME identifies the account for which information is requested. PASSPHRASE and LIFETIME are unused. The client SHOULD send the above values for PASSPHRASE and LIFETIME. The server SHOULD ignore the PASSPHRASE and LIFETIME lines. The MyProxy server will then send a RESPONSE message. If the credentials exist and match the client's authenticated identity, the server will send a successful response (RESPONSE=0). jbasney@ncsa.uiuc.edu 4

Otherwise, the server's response will indicate failure (RESPONSE=1). The client and server will then terminate the connection. 7. The 'Destroy' Command (COMMAND=3) This command removes credentials stored on the server. The client sends: COMMAND=3 PASSPHRASE=DUMMY-PASSPHRASE LIFETIME=0 USERNAME identifies the account for the credential to be removed from the server. PASSPHRASE and LIFETIME are unused. The client SHOULD send the above values for PASSPHRASE and LIFETIME for backward compatibility. The server SHOULD ignore the PASSPHRASE and LIFETIME lines. The MyProxy server will then send a standard RESPONSE message indicating whether the credentials were successfully removed. The client and server will then terminate the connection. 8. Security Considerations The required use of server-authenticated TLS protects the MyProxy protocol against standard network-based attacks. Care should be taken to maintain the integrity of client systems to protect against passphrase stealing attacks from keyboard sniffers, trojans, and similar techniques. Additionally, client-side trusted TLS certificates should be carefully configured to ensure the client is connecting to a MyProxy server with a certificate issued by a trusted authority. The MyProxy credential repository must be well secured, as a large number of stored credentials could be vulnerable in the case of a server compromise. The server should be secured to the level of a Kerberos KDC. MyProxy servers must encrypt stored credentials with the salted, user-chosen passphrase from the Put command, and servers must not store the passphrase. This forces an attacker who compromises the server to perform a brute-force, dictionary attack to decrypt the credentials or an online attack to obtain passphrases from Get commands on the server. 9. Acknowledgements Jason Novotny, Steve Tuecke, and Von Welch designed the MyProxy protocol. Author Information Jim Basney National Center for Supercomputing Applications University of Illinois at Urbana-Champaign 605 E. Springfield Ave. Champaign, IL 61820-5518 Email: jbasney@ncsa.uiuc.edu jbasney@ncsa.uiuc.edu 5

Phone: (217) 244-1954 Fax: (217) 244-1987 Intellectual Property Statement The GGF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the GGF Secretariat. The GGF invites any interested party to 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 recommendation. Please address the information to the GGF Executive Director. Full Copyright Notice Copyright (C) Global Grid Forum (2005). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the GGF or other organizations, except as needed for the purpose of developing Grid Recommendations in which case the procedures for copyrights defined in the GGF Document process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the GGF or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE GLOBAL GRID FORUM DISCLAIMS 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." References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2246] T. Dierks and C. Allen, "The TLS Protocol Version 1.0," IETF RFC 2246 (Standards Track), January 1999. [RFC2986] M. Nystrom and B. Kaliski, "PKCS #10: Certification Request Syntax Specification Version 1.7," IETF RFC 2314 (Informational), November 2000. jbasney@ncsa.uiuc.edu 6

[RFC3820] S. Tuecke, V. Welch, D. Engert, L. Pearlman, and M. Thompson, "Internet X.509 Public Key Infrastructure (PKI) Proxy Certificate Profile," IETF RFC 3280, June 2004. [ProxyDelegation] V. Welch, I. Foster, C. Kesselman, O. Mulmo, L. Pearlman, S. Tuecke, J. Gawor, S. Meder, and F. Siebenlist, "X.509 Proxy Certificates for Dynamic Delegation," 3rd Annual PKI R&D Workshop, 2004. [MyProxy] Novotny, S. Tuecke, and V. Welch, An Online Credential Repository for the Grid: MyProxy, Proceedings of the Tenth International Symposium on High Performance Distributed Computing (HPDC-10), IEEE Press, August 2001, pages 104-111. jbasney@ncsa.uiuc.edu 7