<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- $Id: draft-manral-ipsec-rfc4305-bis-errata-03.xml,v 1.3 2007/01/02 16:58:40 vishwasm Exp $ -->

<?rfc rfcedstyle="yes" ?>
<?rfc subcompact="no" ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<rfc number="4835"  obsoletes="4305" category="std">
<front>
		<title abbrev="Cryptographic Algorithms ESP and AH">
Cryptographic Algorithm Implementation Requirements for Encapsulating&nbsp;Security&nbsp;Payload (ESP) and Authentication Header (AH) 
</title><author initials="V.M." surname="Manral" fullname="Vishwas Manral">
			<organization>IP Infusion Inc.</organization>
			<address>
				<postal>
					<street>Bamankhola, Bansgali,</street>
					<city>Almora</city>
					<region>Uttarakhand</region><code>263601</code>
					<country>India</country>
				</postal>
				<phone>+91-98456-61911</phone>
				<email>vishwas@ipinfusion.com</email>
			</address>
		</author>
		<date month="April" year="2007"/><area>Security</area>
		<workgroup>Network Working Group</workgroup>
		<category> Standards Track </category>
		<keyword>RFC</keyword>
		<keyword>Request for Comments</keyword>
		<keyword>I-D</keyword>
		<keyword>Updates RFC4305</keyword>
		<keyword>Security</keyword>
		<keyword>ESP and AH Requirements</keyword>
		<keyword>IPsec</keyword>
		<keyword>cryptographic algorithms</keyword>
		<abstract><t>
				<t>
					<t>The IPsec series of protocols makes use of various cryptographic algorithms in order to provide security services. The Encapsulating Security Payload (ESP) and the Authentication Header (AH) provide two mechanisms for protecting data being sent over an IPsec Security Association (SA). To ensure interoperability between disparate implementations, it is necessary to specify a set of mandatory-to- implement algorithms to ensure that there is at least one algorithm that all implementations will have available. This document defines the current set of mandatory-to-implement algorithms for ESP and AH as well as specifying algorithms that should be implemented because they may be promoted to mandatory at some future time. 

</t>
				</t>
			</t>
		</abstract>
	</front>
	<middle>
		<section title="Introduction">
			<t>
The Encapsulating Security Payload (ESP) and the Authentication Header (AH) provide two mechanisms for protecting data being sent over an IPsec Security Association (SA) [RFC4301], [RFC4302]. To ensure interoperability between disparate implementations, it is necessary to specify a set of mandatory-to-implement algorithms to ensure that there is at least one algorithm that all implementations will have available. This document defines the current set of mandatory-to-implement algorithms for ESP and AH as well as specifying algorithms that should be implemented because they may be promoted to mandatory at some future time. 
</t>
			<t>

The nature of cryptography is that new algorithms surface continuously and existing algorithms are continuously attacked. An algorithm believed to be strong today may be demonstrated to be weak tomorrow. Given this, the choice of mandatory-to-implement algorithm should be conservative so as to minimize the likelihood of it being compromised quickly. Thought should also be given to performance considerations as many uses of IPsec will be in environments where performance is a concern. 
</t>
			<t>

Finally, we need to recognize that the mandatory-to-implement
algorithm(s) may need to change over time to adapt to the changing
world. For this reason, the selection of mandatory-to-implement
algorithms is not included in the main IPsec, ESP, or AH specifications. It is instead placed in this document. As the choice of algorithm changes, only this document should need to be updated. 
</t>
			<t>

Ideally, the mandatory-to-implement algorithm of tomorrow should
already be available in most implementations of IPsec by the time it
is made mandatory. To facilitate this, we will attempt to identify
such algorithms (as they are known today) in this document. There is
no guarantee that the algorithms that we (today) believe may be
mandatory in the future will in fact become so. All algorithms known today are
subject to cryptographic attack and may be broken in the future.
</t>
		</section>
		<section title="Requirements Terminology" anchor="Req.Functional-filter-layer2">
			<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 [RFC2119]. 
</t>
<?rfc needLines="10" ?>
			<t>
We define some additional terms here: 
</t>
			<figure>
				<artwork>
      SHOULD+  This term means the same as SHOULD.  However, it is 
               likely that an algorithm marked as SHOULD+ will be 
               promoted at some future time to be a MUST. 

      SHOULD-  This term means the same as SHOULD.  However, it is
               likely that an algorithm marked as SHOULD- will be 
               deprecated to a MAY or worse in a future version of 
               this document.
 
      MUST-    This term means the same as MUST.  However, we 
               expect that at some point in the future this algorithm 
               will no longer be a MUST. 

</artwork>
			</figure>
		</section><section title="Algorithm Selection"><t>
For IPsec implementations to interoperate, they must support one or more security algorithms in common. This section specifies the security algorithm implementation requirements for standards- conformant ESP and AH implementations. The security algorithms actually used for any particular ESP or AH security association are determined by a negotiation mechanism, such as the Internet Key Exchange (IKE [RFC2409], [RFC4306]) or pre-establishment. 
</t>
			<t>
Of course, additional standard and proprietary algorithms beyond those listed below can be implemented. 
</t>
			<section title="Encapsulating Security Payload" anchor="Ops.Practice">
				<t>
The implementation conformance requirements for security algorithms for ESP are given in the tables below. See Section 2 for definitions of the values in the "Requirement" column. 
</t>
				<section title="ESP Encryption and Authentication Algorithms">
					<t>
These tables list encryption and authentication algorithms for the IPsec Encapsulating Security Payload protocol. 
</t>
					<figure>
						<artwork>
     Requirement    Encryption Algorithm (notes) 
     -----------    --------------------------
     MUST 	    NULL [RFC2410] (1) 
     MUST           AES-CBC with 128-bit keys [RFC3602] 
     MUST-          TripleDES-CBC [RFC2451]
     SHOULD         AES-CTR [RFC3686] 
     SHOULD NOT     DES-CBC [RFC2405] (2) 
</artwork>
					</figure>
					<figure>
						<artwork>
     Requirement    Authentication Algorithm (notes) 
     -----------    -----------------------------
     MUST           HMAC-SHA1-96 [RFC2404] (3) 
     SHOULD+        AES-XCBC-MAC-96 [RFC3566] 
     MAY            NULL (1) 
     MAY            HMAC-MD5-96 [RFC2403] (4) 
</artwork>
					</figure>
					<t>
Notes: 
</t>
					<list>
						<t>
  (1) Since ESP encryption is optional, support for the "NULL" 
        algorithm is required to maintain consistency with the way 
        services are negotiated. Note that while authentication and 
        encryption can each be "NULL", they MUST NOT both be 
        "NULL" [RFC4301]. 
</t>
						<t>

  (2) DES, with its small key size and publicly demonstrated and 
       open-design special-purpose cracking hardware, is of 
       questionable security for general use. 
</t>
						<t>

  (3) Weaknesses have become apparent in SHA-1 [SHA1-COLL]; however, 
        these should not affect the use of SHA1 with HMAC.
</t>
						<t>

  (4) Weaknesses have become apparent in MD5 [MD5-COLL];
        however, these should not affect the use of MD5 with HMAC. 
</t>
					</list>
				</section>
				<section title="ESP Combined Mode Algorithms">
					<t>
As specified in [RFC4303], combined mode algorithms are supported that provide both confidentiality and authentication services. Support of such algorithms will require proper structuring of ESP implementations. Under many circumstances, combined mode algorithms provide significant efficiency and throughput advantages. Although there are no suggested or required combined algorithms at this time, AES-CCM [RFC4309] and AES-GCM [RFC4106] are of interest.  AES-CCM
has been adopted as the preferred mode in IEEE 802.11 [802.11i], and AES-GCM has been adopted as the preferred mode in IEEE 802.1ae [802.1ae].
</t>
				</section></section><section title="Authentication Header">
				<t>
The implementation conformance requirements for security algorithms for AH are given below. See Section 2 for definitions of the values in the "Requirement" column. As you would suspect, all of these algorithms are authentication algorithms.
</t>
<?rfc needLines="15" ?>
				<figure>
					<artwork>
    Requirement    Algorithm (notes) 
    -----------    ---------------- 
    MUST           HMAC-SHA1-96 [RFC2404] (1) 
    SHOULD+        AES-XCBC-MAC-96 [RFC3566] 
    MAY            HMAC-MD5-96 [RFC2403] (2)
</artwork>
				</figure>
<?rfc needLines="5" ?>				
<t>
Note: 
 </t>
				<list>
					<t>
  (1) Weaknesses have become apparent in SHA-1 [SHA1-COLL]; however, 
        these should not affect the use of SHA1 with HMAC.
</t>
					<t>
  (2) Weaknesses have become apparent in MD5 [MD5-COLL]; however, 
        these should not affect the use of MD5 with HMAC.
 </t>
				</list>
			</section></section>
		<section title="Security Considerations">
			<t>
The security of cryptography-based systems depends on both the strength of the cryptographic algorithms chosen and the strength of the keys used with those algorithms. The security also depends on the engineering and administration of the protocol used by the system to ensure that there are no non-cryptographic ways to bypass the security of the overall system. 
</t>
			<t>
This document concerns itself with the selection of cryptographic algorithms for the use of ESP and AH, specifically with the selection of mandatory-to-implement algorithms. The algorithms identified in this document as "MUST implement" or "SHOULD implement" are not known to be broken at the current time, and cryptographic research so far leads us to believe that they will likely remain secure into the foreseeable future. However, this is not necessarily forever. We would therefore expect that new revisions of this document will be issued from time to time that reflect the current best practice in this area. 
</t>
		</section>


		<!--<section title="IANA Considerations">
			<t>
No new IANA considerations are introduced in this RFC.
</t>
		</section>-->


		<section title="Acknowledgements">
			<t>
Much of the wording herein was adapted from RFC 4305, the parent
document of this document. RFC 4305 itself borrows text from [RFC4307], "Cryptographic Algorithms for Use in the Internet Key Exchange Version 2", by Jeffrey I. Schiller. 
</t>
			<t>
Thanks to the following people for reporting or responding to reports
of the errors in RFC 4305: Paul Hoffman, Stephen Kent, Paul Koning, and Lars Volker. Helpful Last-Call comments were received from Russ Housley, Elwyn Davies, Nicolas Williams, and Alfred Hoenes. 
</t>
		</section><section title="Changes from RFC 2402 and
		RFC 2406 to RFC 4305"><t>
[RFC2402] and [RFC2406] defined the IPsec Authentication Header and IPsec Encapsulating Security Payload. Each specified the implementation requirements for cryptographic algorithms for their respective protocols. They have now been replaced with [RFC4302] and [RFC4303], which do not specify cryptographic algorithm implementation requirements, and this document, which specifies such requirements for both [RFC4302] and [RFC4303]. 
</t>
			<t>
The implementation requirements are compared below: 
</t>
			<figure>
				<artwork>
   Old    Old             New 
   Req.   RFC(s)       Requirement     Algorithm (notes) 
   ----   ------       -----------     ----------------- 
   MUST   2406         SHOULD NOT      DES-CBC [RFC2405] (1)
   MUST   2402 2406    MAY             HMAC-MD5-96 [RFC2403] 
   MUST   2402 2406    MUST            HMAC-SHA1-96 [RFC2404] 

</artwork>
			</figure>
			<t>   
Note: 
</t>
			<list>
				<t>
  (1) The IETF deprecated the use of single DES years ago and has not 
       included it in any new standard for some time (see IESG note on the
       first page of [RFC2407]). [RFC4305] represented the first 
       standards-track recognition of that deprecation by specifying that 
       implementations SHOULD NOT provide single DES. The US 
       Government National Institute of Standards and Technology (NIST) 
       has formally recognized the weakness of single DES by a notice 
       published [DES&nbhy;WDRAW] proposing to withdraw it as a 
       US Government Standard. Triple DES remains approved by both 
       the IETF and NIST. 
</t>
			</list>
		</section><section title="Changes from RFC 4305">
			<t>   
This document obsoletes [RFC4305]. The document incorporates changes for the support for the NULL Authentication Algorithm making the support from a MUST to a MAY. This change is made to make this document consistent with [RFC4301]. Text for SHA-1 collision attacks as well as the future use of AES-GCM and AES-CCM is added. 
</t>
<?rfc needLines="15" ?>
			<t>
The changed implementation requirement resulting from the above changes is listed below:
</t>
			<figure>
				<artwork>
   Old      Old         New
   Req.     RFC(s)      Requirement  Algorithm (notes)
   ----     ------      -----------  -----------------
   MUST     2406        MAY          NULL Authentication
   MUST     2406        MUST         NULL Encryption
   SHOULD+  4305        MUST         AES-CBC Encryption
</artwork>
			</figure>
			<t>
  <!-- Note: The NULL encryption mode requirement is not changed but listed here for clarity and consistency.-->
</t>
		</section></middle>
	
<back>
<?rfc needLines="38" ?>		
<!--
    <references title='Normative References'> 
      <?rfc include='reference.RFC.2119.xml'?>
    </references>
-->
		<references title="Normative References">
			<?rfc include='reference.RFC.4301.xml'?>
			<reference anchor="RFC2119"><front>
					<title>Key words for use in RFCs to Indicate Requirement Levels</title>
					<author initials="S.B." surname="Bradner" fullname="Scott"><organization/>
					</author><date month="March" year="1997"/></front>
				<seriesInfo name="BCP14, " value="RFC2119"/><format type="txt" target="http://www.ietf.org/rfc/rfc2119.txt"/></reference><!-- end reference -->
			<?rfc include='reference.RFC.4302.xml'?>
			<?rfc include='reference.RFC.4303.xml'?>
			<?rfc include='reference.RFC.4305.xml'?>
			<?rfc include='reference.RFC.2403.xml'?>
			<?rfc include='reference.RFC.2451.xml'?>
			<?rfc include='reference.RFC.2404.xml'?>
			<?rfc include='reference.RFC.2405.xml'?>
			<?rfc include='reference.RFC.2410.xml'?>
			<?rfc include='reference.RFC.3566.xml'?>
			<?rfc include='reference.RFC.3602.xml'?>
			<?rfc include='reference.RFC.3686.xml'?>
		</references>
		<references title="Informative References">
			<?rfc include='reference.RFC.4307.xml'?>
			<?rfc include='reference.RFC.3686.xml'?>
			<?rfc include='reference.RFC.2402.xml'?>
			<?rfc include='reference.RFC.2406.xml'?>
			<?rfc include='reference.RFC.2407.xml'?>
			<?rfc include='reference.RFC.4306.xml'?>
			<?rfc include='reference.RFC.2407.xml'?>
			<?rfc include='reference.RFC.2409.xml'?>
			<?rfc include='reference.RFC.4309.xml'?>
			<?rfc include='reference.RFC.4106.xml'?>
			<reference anchor="MD5-COLL"><front>

					<title>Finding MD5 Collisions - a Toy For a Notebook</title>
					<author initials="V.K." surname="Klima" fullname="Vlastimil"><organization/>
					</author><date month="March" year="2005"/></front>
				<seriesInfo name="Cryptology ePrint Archive" value="Medium Report 2005/075"/><format type="PDF" target="http://eprint.iacr.org/2005/075.pdf"/></reference><!-- end reference -->
			<reference anchor="SHA1-COLL"><front>
					<title>Update on SHA-1</title>
					<author initials="V.R." surname="Rijmen" fullname="Vincent"><organization/>
					</author><author initials="E.O." surname="Oswald" fullname="Oswald"><organization/></author><date month="January" year="2005"/></front>
				<seriesInfo name="Cryptology ePrint Archive" value="Report 2005/010"/><format type="PS" target="http://eprint.iacr.org/2005/010"/></reference><!-- end reference -->
			<reference anchor="802.1ae"><front>
					<title>Media Access Control (MAC) Security   </title>
					<author initials="" surname="" fullname="IEEE">
						<organization/>
					</author>
					<date month="June" year="2006"/></front>
				<seriesInfo name="IEEE Standard" value="Medium Access Control (MAC) Security, IEEE Std 802.1ae"/><format type="PDF" target="http://standards.ieee.org/getieee802/download/802.1ae-2006.pdf"/>
			</reference><!-- end reference -->
			<reference anchor="802.11i"><front>
					<title>LAN/MAN Specific Requirements Part 11: Wireless Medium Access Control (MAC) and physical layer (PHY) specifications
                         </title>
					<author initials="" surname="" fullname="IEEE">
						<organization/>
					</author>
					<date month="June" year="2004"/></front>
				<seriesInfo name="IEEE Standard" value="Medium Access Control (MAC) Security, IEEE Std 802.11i"/><format type="PDF" target="http://standards.ieee.org/getieee802/download/802.11i-2004.pdf"/>
			</reference><!-- end reference -->
			<reference anchor="DES-WDRAW"><front>
					<title>Announcing Proposed Withdrawal of Federal Information Processing Standard (FIPS) for the Data Encryption Standard (DES) and Request for Comments
                         </title>
					<author initials="" surname="" fullname="NIST">
						<organization/>
					</author>
					<date month="July" year="2004"/></front>
				<seriesInfo name="FIPS Notice" value="Docket No. 040602169-4169-01"/><format type="TXT" target="http://a257.g.akamaitech.net/7/257/2422/06jun20041800/edocket.access.gpo.gov/2004/04-16894.htm"/>
			</reference><!-- end reference -->
		</references>
	</back>
</rfc>
<!--

$Log: draft-manral-ipsec-rfc4305-bis-errata-03.xml,v $
Revision 1.3  2007/01/08 12:38:30  manralv
Last Call comments

Revision 1.2  2006/07/15 16:58:40  manralv
Initial  revision

Revision 1.1  2006/06/05 16:58:01  manralv
Initial revision

Revision 1.0  2006/04/20 16:47:28  manralv
Initial revision


-->
