On Fri, 9 Oct 2015, Yoav Nir wrote:
On Sep 28, 2015, at 6:10 PM, Paul Hoffman <paul.hoff...@vpnc.org> wrote:
Sure. Someone volunteer to write up the short draft, and that author should put
Jeff Schiller at the top of the acknowledgements, and send it to the WG.
--Paul Hoffman
A new version of I-D, draft-nir-ipsecme-rfc4307bis-00.txt
has been successfully submitted by Yoav Nir and posted to the
IETF repository.
Oops. Guess our drafts crossed the beams. I had send one to Daniel
to look at. I've attached it in case some text is useful. It was
based more on the structure of RFC 7321.
I actually like how 7321 has the tables filled with links to the
actual RFC's. (which I had not done yet myself)
Some comments on your text:
I think AES_CBC should be MUST- as it is on the way out.
I have talked with one of the AES_GCM authors and got the advise to
only use the largest octet ICV's. Why are you promoting the 8 octet
version instead of the 16 octet version? I also think AES_GCM should
be a MUST, not a SHOULD. It is the preferred algorithm at this point.
I also think 3DES probably should be a SHOULD- because it is the only
other non-AES algorithm in widespread use. While we all want it to go
away, we should do so only after chacha20-poly1305 sees more adoption.
Why is sha2-512 not a SHOULD?
Can we add a recommendation to use integ == prf for non-AEAD algorithms?
Windows uses 8192 modp, which I think should be a SHOULD. I think we
should mention modp 1536 as SHOULD- or MAY.
Can we recommend that the initial exchanges and create child sa use
the same MODP group? and that we recommend PFS for create_child_sa.
Can we recommend that a default proposal set should have at least one
MUST algorithm for each type?
Can we recommend not to apply these recommendations for IKEv1 because
that will cause more interop problems (see my draft for text)
Paul
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2405 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2405.xml">
<!ENTITY rfc2409 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2409.xml">
<!ENTITY rfc3526 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3526.xml">
<!ENTITY rfc4106 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4106.xml">
<!ENTITY rfc4494 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4494.xml">
<!ENTITY rfc4543 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4543.xml">
<!ENTITY rfc4868 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4868.xml">
<!ENTITY rfc5114 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5114.xml">
<!ENTITY rfc5116 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5116.xml">
<!ENTITY rfc5282 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5282.xml">
<!ENTITY rfc5739 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5739.xml">
<!ENTITY rfc5903 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5903.xml">
<!ENTITY rfc5930 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5930.xml">
<!ENTITY rfc7296 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml">
<!ENTITY rfc7321 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7321.xml">
<!ENTITY rfc7634 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7634.xml">
]>
<rfc category="std" ipr="trust200902" docName="draft-ikev2-algorithm-update-00">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<front>
<title abbrev="ikev2 algo update">Cryptographic Algorithm Implementation Requirements and Usage Guidance for IKEv2</title>
<author initials='P.' surname="Wouters" fullname='Paul Wouters'>
<organization>Red Hat</organization>
<address>
<email>pwout...@redhat.com</email>
</address>
</author>
<author initials='D.' surname="Migault" fullname='Daniel Migault'>
<organization>Ericsson</organization>
<address>
<email>daniel.miga...@ericsson.com</email>
</address>
</author>
<date/>
<abstract>
<t>
This document updates the Cryptographic Algorithm Implementation
Requirements for the Internet Keying Exchange protocol version 2 (IKEv2).
It also adds usage guidance to help in the selection of these algorithms.
</t>
<t>
The IKEv2 protocol makes use of various cryptographic algorithms to
provide confidentiality and/or data origin authentication before
agreeing on keying material for use with IP Security (IPsec)
To ensure interoperability between disparate implementations,
the IKEv2 standard specifies a set of mandatory-to-
implement algorithms. This document specifies the current set of
mandatory-to-implement algorithms for IKEv2, specifies
algorithms that should be implemented because they may be promoted to
mandatory at some future time, and also recommends against the
implementation of some obsolete algorithms. Usage guidance is also
provided to help the user of IKEv2 best achieve their security
goals through appropriate choices of cryptographic algorithms.
</t>
<t>
While the recommendations for this document would equally apply to IKEv1
<xref target="RFC2409"/>, no suggestions are made to update IKEv1. Most
IKEv1 implementations at this time are frozen and vendors will not be able
to update the recommended algorithms in such implementations. Updating the
IKEv1 specification would therefor lead to increased interoperability issues.
IKEv1 deployments are encouraged to upgrade to IKEv2.
</t>
<t>
This document updates RFC 7296.
</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>
The Internet Key Exchange Protocol version 2 (IKEv2), specified in
<xref target="RFC7296"/>, provides a way for two parties to perform
an authenticated key exchange.
</t>
<t>
To ensure interoperability between disparate implementations, it is
necessary to specify a set of mandatory-to-implement algorithms.
This ensures that there is at least one algorithm that all
implementations will have in common. This document specifies the
current set of mandatory-to-implement algorithms for IKEv2,
specifies algorithms that should be implemented because they may be
promoted to mandatory at some future time, and also recommends
against the implementation of some obsolete algorithms. Usage
guidance is also provided to help the user of IKEv2 best achieve
their security goals through appropriate choices of mechanisms.
</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 IKEv2 will be in environments where
performance is a concern.
</t>
<t>
The IKEv2 mandatory-to-implement algorithm(s) may need to change
over time to adapt to new developments in cryptography. For this
reason, the specification of the mandatory-to-implement algorithms is
not included in the main IKE specifications, but is
instead placed in this document. Ideally, the mandatory-to-implement
algorithm of tomorrow should already be available in most
implementations of IKE by the time it is made mandatory. To
facilitate this, this document identifies such algorithms, as they
are known today. There is no guarantee that the algorithms that we
predict will be mandatory in the future will actually be so. All
algorithms known today are subject to cryptographic attack and may be
broken in the future.
</t>
<section title="Conventions Used in This Document">
<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"/>.
</t>
</section>
</section>
<section title="Implementation Requirements">
<t>
This section specifies the cryptographic algorithms that MUST be
implemented, and provides guidance about ones that SHOULD or SHOULD
NOT be implemented.
</t>
<t>
In the following sections, all AES modes are for 128-bit AES. 192-bit
and 256-bit AES MAY be supported for those modes, but the requirements
here are for 128-bit AES.
</t>
<section title="IKE Combined Mode Algorithms">
<t>
IKE Combined mode algorithms provide both confidentiality and authentication
services; in cryptographic terms, these are authenticated encryption
algorithms <xref target="RFC5116"/>. Authenticated encryption transforms
are listed in the ESP encryption transforms IANA registry.
</t>
<t>
Where multiple octet sizes for ICV's are defined, only the largest ICV size
should be used.
</t>
<t>
<figure align="center">
<artwork align="left"><![CDATA[
Requirement Authenticated Encryption Algorithm
----------- ----------------------------------
MUST AES-GCM with a 16 octet ICV [RFC5282]
SHOULD+ CHACHA20_POLY1305 [RFC7634]
MAY AES-CCM with a 16 octet ICV [RFC5282]
]]></artwork>
</figure>
</t>
</section>
<section title="IKE Encryption Algorithms">
<t>
<figure align="center">
<artwork align="left"><![CDATA[
Requirement Encryption Algorithm
----------- ----------------------------------
SHOULD- 3DES_CBC [RFC7296]
SHOULD- AES_CBC [RFC7296]
SHOULD- CANELLIA_CBC [RFC7296]
MAY AES_CTR [RFC5930]
MUST NOT DES_CBC [RFC2405]
MUST NOT BLOWFISH [RFC7296]
]]></artwork>
</figure>
</t>
</section>
<section title="IKE Authentication Algorithms">
<t>
<figure align="center">
<artwork align="left"><![CDATA[
Requirement Authentication Algorithm
----------- ----------------------------------
MUST HMAC-SHA2_256_128 [RFC4868]
MUST- HMAC-MD5 [RFC7296]
MUST- HMAC-SHA1-96 [RFC7296]
SHOULD HMAC-SHA2_384_192 [RFC4868]
SHOULD HMAC-SHA2_512_256 [RFC4868]
MAY AES-CMAC-96 [RFC4494]
MAY AES_128_GMAC [RFC4543]
MAY AES_192_GMAC [RFC4543]
MAY AES_256_GMAC [RFC4543]
]]></artwork>
</figure>
</t>
</section>
<section title="IKE Diffie-Hellman Groups">
<t>
<figure align="center">
<artwork align="left"><![CDATA[
Requirement Group
----------- ----------------------------------
MUST 2048-bit MODP Group [RFC3526]
MUST 4096-bit MODP Group [RFC3526]
MUST 8192-bit MODP Group [RFC3526]
MUST? 256-bit random ECP group [RFC5903]
MUST? 384-bit random ECP group [RFC5903]
MUST? 521-bit random ECP group [RFC5903]
SHOULD 3072-bit MODP Group [RFC3526]
SHOULD 6144-bit MODP Group [RFC3526]
MAY 192-bit Random ECP Group [RFC5114]
MAY 224-bit Random ECP Group [RFC5114]
SHOULD- 1024-bit MODP Group [RFC7296]
SHOULD- 1536-bit MODP Group [RFC7296]
MUST NOT 768-bit MODP Group [RFC7296]
]]></artwork>
</figure>
</t>
</section>
</section>
<section title="Usage Guidance">
<t>
Since in IKEv2, an IPsec SA can be created using the Initial Exchanges or the CREATE_CHILD_SA
Exchange, it is recommended to use the same Diffie-Hellman Group for these Exchanges.
</t>
</section>
<section title="Rationale">
<t>
This section explains the principles behind the implementation
requirements described above.
</t>
<t>
The algorithms listed as "MAY implement" are not meant to be endorsed
over other non-standard alternatives. Algorithms listed as "SHOULD- implement"
are currently in wide use but are expected to become less favourable in the short
term. Algorithms listed as "SHOULD+" are expected to become a MUST in the short term.
</t>
<section title="Authenticated Encryption">
<t>
This document encourages the use of authenticated encryption
algorithms because they can provide significant efficiency and
throughput advantages, and the tight binding between authentication
and encryption can be a security advantage <xref target="RFC5116"/>.
</t>
<t>
AES-GCM <xref target="RFC4106"/> brings significant performance benefits
and has emerged as the preferred authenticated encryption method in IKE,
IPsec and other standards, and is therefor set as a MUST.
</t>
<t>
CHACHA20-POLY1305 <xref target="RFC7634"/> has emerged as strong, fast
and independant alternative to AES-GCM as is therefor introduced as SHOULD+
</t>
</section>
<section title="Encryption and Authentication Algorithms">
<t>
Algorithms that require a seperate encryption and authentication step are
generally less favourable than Authenticated Encryption. Use of these
seperated algorithms is expected to decline and new seperate encryption and
authentication algorithms are unlikely to be proposed.
</t>
<t>
While the HMAC versions of MD5 and SHA1 are still considered safe, these algorithms
are seeing an ever increasing reduction in strength due to new cryptanalyses research.
The use of MD5 and SHA1 is strongly discouraged at this point.
</t>
</section>
<section title="Groups">
<t>Something about this being a warzone with no clear winners yet?
</t>
</section>
</section>
<section title="Security Considerations">
</section>
<section title="Acknowledgments">
<t>
This document leverages most text <xref target="RFC7321"/> which was written by P Hoffman
and D. McGrew.
</t>
</section>
<section title="IANA Considerations">
<t>None
</t>
</section>
</middle>
<back>
<references title='Normative References'>
&rfc2119;
&rfc2409;
&rfc4106;
&rfc3526;
&rfc4494;
&rfc4543;
&rfc4868;
&rfc5282;
&rfc5114;
&rfc5116;
&rfc5739;
&rfc5903;
&rfc5930;
&rfc7296;
&rfc7321;
&rfc7634;
</references>
<references title='Informative References'>
&rfc2405;
</references>
</back>
</rfc>
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec