Re: [IPsec] Proposed method to achieve quantum resistant IKEv2

"Bruckert, Leonie" <Leonie.Bruckert@secunet.com> Tue, 05 September 2017 06:38 UTC

Return-Path: <Leonie.Bruckert@secunet.com>
X-Original-To: ipsec@ietfa.amsl.com
Delivered-To: ipsec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BF22413236D for <ipsec@ietfa.amsl.com>; Mon, 4 Sep 2017 23:38:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G9t1CE0CkDTQ for <ipsec@ietfa.amsl.com>; Mon, 4 Sep 2017 23:38:06 -0700 (PDT)
Received: from a.mx.secunet.com (a.mx.secunet.com [62.96.220.36]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BFB9D120727 for <ipsec@ietf.org>; Mon, 4 Sep 2017 23:38:05 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by a.mx.secunet.com (Postfix) with ESMTP id 7D1F7200BD; Tue, 5 Sep 2017 08:38:03 +0200 (CEST)
X-Virus-Scanned: by secunet
Received: from a.mx.secunet.com ([127.0.0.1]) by localhost (a.mx.secunet.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 93C-LuYnYXw9; Tue, 5 Sep 2017 08:38:02 +0200 (CEST)
Received: from mail-essen-02.secunet.de (mail-essen-02.secunet.de [10.53.40.205]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.secunet.com (Postfix) with ESMTPS id EB0C120080; Tue, 5 Sep 2017 08:38:01 +0200 (CEST)
Received: from MAIL-ESSEN-01.secunet.de ([fe80::1c79:38b7:821e:46b4]) by mail-essen-02.secunet.de ([fe80::4431:e661:14d0:41ce%16]) with mapi id 14.03.0361.001; Tue, 5 Sep 2017 08:38:01 +0200
From: "Bruckert, Leonie" <Leonie.Bruckert@secunet.com>
To: "Scott Fluhrer (sfluhrer)" <sfluhrer@cisco.com>, Cen Jung Tjhai <CJT@post-quantum.com>, Valery Smyslov <svanru@gmail.com>, 'Tero Kivinen' <kivinen@iki.fi>
CC: "ipsec@ietf.org" <ipsec@ietf.org>
Thread-Topic: [IPsec] Proposed method to achieve quantum resistant IKEv2
Thread-Index: AQHTDE+mPH5PNqQgTkK9LOvm4SvL2qJ0CPEAgAekg4CAAJuwgIATv86AgAAjvgCAAD+7AIAVmK7Q
Date: Tue, 05 Sep 2017 06:38:01 +0000
Message-ID: <DE8E4C1F24911E469CC24DD4819274AA0FEED2D5@mail-essen-01.secunet.de>
References: <BBEB2C9C-9B96-4C6C-BB9B-4415F096FAE1@cisco.com> <041b01d30d21$8d33f230$a79bd690$@gmail.com> <22922.55551.190123.31763@fireball.acr.fi> <E8A3B50A-62D1-4211-B39F-932C9C959AF1@post-quantum.com> <006601d31b21$8d59ce20$a80d6a60$@gmail.com> <46593A80-1391-4849-9B57-D53EF08863FD@post-quantum.com> <11e11cdc7bac4e80aa1c3bcb3d5c18ef@XCH-RTP-006.cisco.com>
In-Reply-To: <11e11cdc7bac4e80aa1c3bcb3d5c18ef@XCH-RTP-006.cisco.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-exclaimer-md-config: 2c86f778-e09b-4440-8b15-867914633a10
x-g-data-mailsecurity-for-exchange-state: 0
x-g-data-mailsecurity-for-exchange-error: 0
x-g-data-mailsecurity-for-exchange-sender: 23
x-g-data-mailsecurity-for-exchange-server: cbe3d3f7-b9e3-4256-b890-f24c4306a01c
x-g-data-mailsecurity-for-exchange-guid: 0ED5D70B-24EF-463E-BC96-34318A3FFDA9
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipsec/wqQWk_drpSBbijtrPQHrJF2joQM>
Subject: Re: [IPsec] Proposed method to achieve quantum resistant IKEv2
X-BeenThere: ipsec@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Discussion of IPsec protocols <ipsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipsec>, <mailto:ipsec-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipsec/>
List-Post: <mailto:ipsec@ietf.org>
List-Help: <mailto:ipsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipsec>, <mailto:ipsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Sep 2017 06:38:09 -0000

Hi,

First, I want to emphasize that we (that is secunet) are highly interested in this topic. Note that we already contributed to the discussion in Prague (Kai Martius had a 5 minute slot).

So what do we expect from a combined key exchange? I listed some high priority issues which I assume we all agree on:

- Protection against future quantum attackers
- Agility (allow multiple quantum resistant algorithms in combination)
- Maintaining security properties of IKEv2
- Backwards compatibility
- Ability to process messages larger than 1500 Byte

Additionally, it would be nice to also protect the identities i.e. to make the AUTH exchange quantum resistant. Particularly with regard to the PPK draft which doesn’t assure this.

I’d like to draw the attention to another aspect associated to the NIST standardization efforts and the assignment of IDs for post quantum algorithms. At present people refuse to specify post quantum algorithms and assign IDs officially – and they’re justified in doing so, because these algorithms are not sufficiently analyzed. On the other hand we somehow need to address the PQ algorithms now. How can we break the vicious circle? Temporarily provide IDs and adjust them later? Or just let the user assign IDs individually in the range that is reserved for private use? 

Just imagine, NIST standardizes a set of well-studied PQ algorithms at some day within the next 5 - 7 years. From that day forward there will be no need for a combined key exchange anymore and it should be possible to use PQ algorithms in IKEv2. But it’s likely that many implementations won’t be upgraded to perform a combined key exchange until then, so designing a post quantum IKEv2 while guaranteeing backwards compatibility to two former versions would be the new challenge. 
So I think we should modify IKEv2 in a way that not only offers a combined key exchange, but also allows the transition from combined modes to the solely use of PQ algorithms. I’m aware that this is a difficult task and might possibly not be solvable at all. However, the anticipated short period of use of a combined key exchange demands a fast solution.

I support Scott’s approach to dynamically assign unused IDs. I came up with a similar idea that makes use of (new) attributes but I think this one is simpler. 

As I understand the main drawback of introducing a new transform type and thus negotiating PQ algorithms in the SA payload is (besides compatibility issues) the fact that the key exchange is then limited to a combination of one classical method and one PQ method. Whereas Scott’s idea allows to combine multiple PQ algorithms.

Regards,
Leonie


-----Ursprüngliche Nachricht-----
Von: IPsec [mailto:ipsec-bounces@ietf.org] Im Auftrag von Scott Fluhrer (sfluhrer)
Gesendet: Dienstag, 22. August 2017 16:31
An: Cen Jung Tjhai; Valery Smyslov; 'Tero Kivinen'
Cc: ipsec@ietf.org
Betreff: Re: [IPsec] Proposed method to achieve quantum resistant IKEv2


> -----Original Message-----
> From: IPsec [mailto:ipsec-bounces@ietf.org] On Behalf Of Cen Jung Tjhai
> Sent: Tuesday, August 22, 2017 6:43 AM
> To: Valery Smyslov; 'Tero Kivinen'
> Cc: ipsec@ietf.org
> Subject: Re: [IPsec] Proposed method to achieve quantum resistant IKEv2
> 
> Hi
> 
> >> Well, that are valid reasons. However, what makes me uncomfortable is
> >> that this design looks like yet another short-term (or medium-term)
> >> solution. We already have
> >> draft-fluhrer-qr-ikev2 that was declared as a temporary short-term
> >> approach to countermeasure immediate threat until cryptography
> >> science gives us new well-studied QC-proof primitives to replace
> >> classic public key cryptography. Now it turns out that we don't have
> >> primitives we are certain in (at least for key exchange), so we
> >> decide to combine several different primitives (which we don't fully trust
> in) with classic DH. That's a valid approach for transition to PQ cryptography,
> but it doesn't look like long-term standard solution.
> 
> On our draft-00, one of the objectives is to deprecate DH key exchange in
> the long-term future. Hence, we thought it would be neater to introduce a
> new transform type and a new PQ key exchange payload (QSKE). The idea is
> that when people are happy to drop KE payloads, they can use QSKE
> payloads instead. Obviously, there are concerns with backward compatibility
> by introducing a new transform type, which I agree.

If we look at the general problem, I see that there are three subproblems that we need to solve:

1. How to introduce a postquantum key exchange to IKE

2. How to have the postquantum key exchange in addition to the classical (EC)DH (so that we can't make security worse)

3. How to handle the greater-than-MTU payloads that are likely to result

(and, of course, how to handle this all in a backwards-compatible way, which minimizes additional complexity, and which allows us to deprecate traditional DH Keyexchanges eventually).

Much of our discussion has been on #3 (which is, indeed, the hardest of the three), however I would like to discuss #1 and #2.


Draft-00 solves #1 by adding a new payload type; one issue with this is, because of the new transform type to negotiate it, existing IKE responders may be confused by it.  They do solve #2 for free (because it's in parallel with the existing KE payloads).


I would suggest a different way; instead of assigning a key payload type, we just issue new group descriptions for the postquantum key exchanges; the traditional 2048 MODP group is 14; we might make NewHope number 32.

One objection to this may to say "but, NewHope isn't a group"; actually, that's just terminology.  As far as the protocol is concerned, all these key exchanges do fundamentally the same thing; the initiator creates a payload and sends it to the responder; the responder then generates a payload and sends it to the initiator; both sides do some computation and create a shared secret (that someone in the middle cannot derive just seeing the payloads).  There are distinctions between the key exchanges (sometimes the intiiator's and responder's keyshares are of different lengths; sometimes the responder's keyshare is a function of the initiator's), but those are distinctions that the protocol doesn't have to care about.

I would argue that this minimizes complexity (the protocol parts of IKE implementations wouldn't have to change at all), and we have good backwards compatibility (as existing IKE implementations already know how to deal with groups they haven't heard of).  However, as it stands, it doesn't address #2 at all.

To solve that, I would suggest adding a way to exchange multiple groups in parallel (and have the shared secret depend on all of them); that way, we can perform both an ECDH (so we're at least as secure as now) and a NewHope exchange (so we have a potential to be secure against a quantum computer).  Ideally, we would be able to allow more than 2 (as some users might not want to trust just one of these new-fangled PQ key exchanges; it would be good if we could give them the option, without adding much complexity on our side).

Here is one possible way to do this; we assign group descriptions 0x7f00-0x7fff (the high end of the IANA unassigned list) to be dynamically assigned by the initiator.  That is, the initiator could include a notify that may specify "group 7f00 is really group 14 and group 32 concatinated", he can then include that within his policy (and the resulting key share would be the group 14 and the group 32 key share concatenated); the responder can either accept this, or reject it in favor of another proposal (just as the current IKE allows fallback to other DH groups).

The idea here is that we try to reuse as much of the existing KE protocol logic (and security logic) as possible; by reusing this logic, we avoid adding complexity, and we also rely on the same security logic that makes the current KE exchange safe.

So, in summary, this idea:

- Allows us to rely on postquantum key exchanges (once they have been defined and accepted)
- Allows us to also rely on traditional groups as well (so we don't make things worse)
- Is backwards compatible (in that someone proposing this to an unupgraded responder will react in the expected way; either downgrading the key exchange, or rejecting the key exchange, based on the initiator policy)
- Allows a clean way to deprecate traditional groups in the future
- Allows someone to rely on multiple postquantum key exchanges, should they be paranoid.
- Does all this while trying to minimize complexity (most of the changes in the implementation will be in the crypto engine and the policy handling; those would have to change in any such solution)

Thoughts?

Credit: this idea was worked out in conjunction with Oscar Garcia-Morchon, Zhenfei Zhang and William Whyte; this idea applied to TLS can be found in draft-whyte-qsh-tls13 


_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec