<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
	<!ENTITY rfc2119 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
	<!ENTITY rfc3748 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3748.xml'>
	<!ENTITY I-D.ietf-dime-rfc3588bis PUBLIC "" 
		"http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-dime-rfc3588bis.xml">
	<!ENTITY rfc4072 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4072.xml'>
	<!ENTITY rfc5226 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml'>
	<!ENTITY rfc2989 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2989.xml'>
	<!ENTITY rfc5216 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5216.xml'>
	<!ENTITY rfc5295 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5295.xml'>
	<!ENTITY rfc5296 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5296.xml'>
	<!ENTITY rfc5247 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5247.xml'>
	<!ENTITY rfc3447 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3447.xml'>
	<!ENTITY rfc5990 PUBLIC '' 
		'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5990.xml'>
]>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" docName="draft-ietf-dime-local-keytran-12" ipr="trust200902">
	<front>
		<title abbrev="Diameter Key Transport AVPs">Diameter Attribute-Value Pairs for Cryptographic Key Transport</title>


		<author fullname="Glen Zorn" initials="G." surname="Zorn">
			<organization>Network Zen</organization>
			<address>
				<postal>
					<street>227/358 Thanon Sanphawut</street>
					<city>Bang Na</city>
					<region>Bangkok</region>
					<code>10260</code>
					<country>Thailand</country>
				</postal>
				<phone>+66 (0) 87-040-4617</phone>
				<email>glenzorn@gmail.com</email>
			</address>
		</author>
	
		<author fullname="Qin Wu" initials="Q." surname="Wu">
			<organization abbrev="Huawei">Huawei Technologies Co., Ltd.</organization>
			<address>
				<postal>
					<street>101 Software Avenue, Yuhua District</street>
					<city>Nanjing</city>
					<region>Jiangsu</region>
					<code>21001</code>
					<country>China</country>
				</postal>
				<phone>+86-25-56623633</phone>
				<email>sunseawq@huawei.com</email>
			</address>
		</author>
	
		<author initials='V.' surname='Cakulev' fullname='Violeta Cakulev'>
			<organization>Alcatel Lucent</organization> 
			<address>
				<postal>
					<street>600 Mountain Ave.</street>
					<street>3D-517</street>
					<city>Murray Hill</city> 
					<region>NJ</region> 
					<code>07974</code>
					<country>US</country>
				</postal>
				<phone>+1 908 582 3207</phone>
				<email>violeta.cakulev@alcatel-lucent.com</email>
			</address>
		</author>

		<date year="2011"/>

		<abstract>
			<t>
				Some Authentication, Authorization, and Accounting (AAA) applications require the transport of cryptographic keying
				material.
				This document specifies a set of Attribute-Value Pairs
				(AVPs) providing native Diameter support of cryptographic key delivery.
			</t>
		</abstract>
	</front>

	<middle>
		<section title="Introduction">
			<t>
				<xref target="RFC4072">The Diameter EAP application</xref>
				defines the EAP-Master-Session-Key and EAP-Key-Name AVPs for the purpose of transporting
				cryptographic keying material derived during the execution of certain
				Extensible Authentication Protocol (EAP) <xref target="RFC3748"/> 
				methods (for example, EAP-TLS <xref target="RFC5216"/>).  
				At most one instance of either of these AVPs is allowed in any Diameter message.
				<vspace blankLines="1"/>
				However, recent work (see, for example, <xref target="RFC5295"/>)
				has specified methods to derive other keys from the keying material created during EAP method execution
				that may require transport in addition to the MSK.  
				In addition, the EAP Re-authentication Protocol (ERP) <xref target="RFC5296"/>
				specifies new keys that may need to be transported between Diameter nodes.
				<vspace blankLines="1"/>
				This note specifies a set of AVPs allowing the transport of multiple cryptographic keys in a single Diameter message.
			</t>
		</section>

		<section title="Terminology">
			<section title="Standards Language">
				<t>
					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 <xref target="RFC2119">RFC 2119</xref>.
				</t>
			</section>
			<section title="Technical Terms and Acronyms">
				<t>
					<list style="hanging">
						<t hangText="DSRK">
							<vspace blankLines="0"/>
							Domain-Specific Root Key <xref target="RFC5295"/>.
						</t>
						<t hangText="MSK">
							<vspace blankLines="0"/>
							Master Session Key <xref target="RFC3748"/>.
						</t>
						<t hangText="rMSK">
							<vspace blankLines="0"/>
							reauthentication MSK <xref target="RFC5296"/>.  
							This is a per-authenticator key, derived from the rRK (below).
						</t>
						<t hangText="rRK" anchor="rRK">
							<vspace blankLines="0"/>
							reauthentication Root Key, derived from the EMSK 
							Extended Master Session Key <xref target="RFC3748"/>
							or DSRK <xref target="RFC5296"/>.
						</t>
					</list>
				</t>
			</section>
		</section>

		<section title="Attribute-Value Pair Definitions">
			<t>
				This section defines new AVPs for the transport of cryptographic keys
				in the Diameter EAP application <xref target="RFC4072"/>, 
				as well as other Diameter applications.
			</t>
			<section anchor="K" title="Key AVP">
				<t>
					The Key AVP (AVP Code &lt;AC1&gt;) is of type Grouped. 
					It contains the type and keying material and, optionally, an indication of the usable lifetime of
					the key, the name of the key and a Security Parameter Index (SPI) with which the key is 
					associated.
				</t>
<figure>
	<artwork><![CDATA[
Key ::= < AVP Header: AC1 >
          < Key-Type >
          { Keying-Material }
          [ Key-Lifetime ]
          [ Key-Name ]
          [ Key-SPI ]
        * [ AVP ]	
	]]></artwork>
</figure>
				<section anchor="K-T" title="Key-Type AVP">
					<t>
						The Key-Type AVP (AVP Code &lt;AC2&gt;) is of type Enumerated.
						This AVP identifies the type of the key being sent.  
						The following decimal
						values are defined in this document:
						<list style="hanging">
							<t hangText="DSRK (0)">
								<vspace blankLines="0"/>
								A Domain-Specific Root Key <xref target="RFC5295"/>.
							</t>
							<t hangText="rRK (1)">
								<vspace blankLines="0"/>
								A reauthentication Root Key <xref target="RFC5296"/>.
							</t>
							<t hangText="rMSK (2)">
								<vspace blankLines="0"/>
								A reauthentication Master Session Key <xref target="RFC5296"/>.
							</t>
						</list>
							If additional values are needed, they are to be assigned by IANA
							according to the policy stated in <xref target="AV"/>,
					</t>
				</section>
				<section anchor="K-N" title="Key-Name AVP">
					<t>
						The Key-Name AVP (AVP Code &lt;AC6&gt;) is of type OctetString.
						It contains an opaque key identifier.  
						Exactly how this name is generated and used depends on the key type and 
						usage in question, and is beyond the scope of this document (see <xref target="RFC5247"/> 
						and <xref target="RFC5295"/> 
						for discussions of key name generation in the context of EAP). 
					</t>
				</section>
				<section anchor="K-M" title="Keying-Material AVP">
					<t>
						The Keying-Material AVP (AVP Code &lt;AC3&gt;) is of type OctetString.
						The exact usage of this keying material depends upon several factors,
						including the link layer in use and the type of the key and is beyond
						the scope of this document.					
					</t>
				</section>
				<section anchor="K-L" title="Key-Lifetime AVP">
					<t>
						The Key-Lifetime AVP (AVP Code &lt;AC4&gt;) is of type Unsigned32
						and represents the period of time (in seconds) for which the contents of the
						Keying-Material AVP (<xref target="K-M"/>)
						is valid.
						<list style="hanging">
							<t hangText="NOTE:">
								<vspace blankLines="0"/>
								Applications using this value SHOULD consider the beginning of
								the lifetime to be the point in time when the message containing the keying material is
								received.  In addition, client implementations SHOULD check to ensure that the value is reasonable;
								for example, the lifetime of a key should not generally be longer than the session lifetime 
								(see section 8.13 of <xref target="I-D.ietf-dime-rfc3588bis"/>.
								
							</t>
						</list>
					</t>
				</section>
				<section title="Key-SPI" anchor="K-S">
					<t>
						The Key-SPI AVP (AVP Code &lt;AC5&gt;) is of type Unsigned32 and contains a SPI
						value that can be used with other parameters for identifying 
						associated keying material. 
					</t>
				</section>
			</section>
		</section>
		
		<section title="Security Considerations">
			<t>
				The security considerations applicable to the Diameter Base Protocol <xref target="I-D.ietf-dime-rfc3588bis"/>
				are also applicable to this document, as are those in Section 8.4 of RFC 4072 <xref target="RFC4072"/>.
			</t>
		</section>

		<section anchor="IANA" title="IANA Considerations">
			<t>
				Upon publication of this memo as an RFC, IANA is requested to assign
				values as described in the following sections.
			</t>
			<section anchor="AC" title="AVP Codes">
				<t>
					Codes must be assigned for the following AVPs using the policy specified in 
					<xref target="I-D.ietf-dime-rfc3588bis"/>, 
					Section 11.1.1:
					<list style="symbols">
						<t>
							Key (&lt;AC1&gt;, <xref target="K"/>)
						</t>
						<t>
							Key-Type (&lt;AC2&gt;, <xref target="K-T"/>)							
						</t>
						<t>
							Keying-Material (&lt;AC3&gt;, <xref target="K-M"/>)
						</t>
						<t>
							Key-Lifetime (&lt;AC4&gt;, <xref target="K-L"/>)
						</t>
						<t>
							Key-SPI (&lt;AC5&gt;, <xref target="K-S"/>)
						</t>
						<t>
							Key-Name (&lt;AC6&gt;, <xref target="K-N"/>)
						</t>
					</list>
				</t>
			</section>
			<section anchor="AV" title="AVP Values">
				<t>
					IANA is requested to create a new registry for values assigned to the Key-Type AVP and 
					populated with the decimal values defined in this document (<xref target="K-T"/>).
					New values may be assigned for the Key-Type AVP
					using the "Specification Required" policy <xref target="RFC5226"/>;
					once values have been assigned, they MUST NOT be deleted, replaced or modified.
				</t>
			</section>
		</section>

		<section title="Acknowledgements">
			<t>
				Thanks to 
				Niclas Comstedt, Semyon Mizikovsky, Hannes Tschofenig, Joe Salowey, Tom Taylor,
				Frank Xia, Lionel Morand, Dan Romascanu, Bernard Aboba, Jouni Korhonen and Sebastien Decugis
				for useful comments, suggestions and review.
			</t>
		</section>
	</middle>

	<back>
		<references title="Normative References">
			&rfc2119;
			&rfc3748;
			&I-D.ietf-dime-rfc3588bis;
			&rfc4072;
			&rfc5226;
		</references>

		<references title="Informative References">
			&rfc5216;
			&rfc5295;
			&rfc5296;
			&rfc5247;
		</references>
	</back>
</rfc>
