Re: [IPsec] DH keys calculation performance

"Naveen B N (nbn)" <nbn@cisco.com> Fri, 26 August 2011 05:29 UTC

Return-Path: <nbn@cisco.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 6274721F8AAF for <ipsec@ietfa.amsl.com>; Thu, 25 Aug 2011 22:29:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4B9arcvsrKLx for <ipsec@ietfa.amsl.com>; Thu, 25 Aug 2011 22:29:23 -0700 (PDT)
Received: from ams-iport-2.cisco.com (ams-iport-2.cisco.com [144.254.224.141]) by ietfa.amsl.com (Postfix) with ESMTP id 765B221F84DF for <ipsec@ietf.org>; Thu, 25 Aug 2011 22:29:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=nbn@cisco.com; l=11066; q=dns/txt; s=iport; t=1314336638; x=1315546238; h=mime-version:content-transfer-encoding:subject:date: message-id:in-reply-to:references:from:to:cc; bh=suqD+JnWfDWS8BfaA+73EICAgThIAy41gqlcJHoOlh0=; b=S31F9rOLr/OVH29R/360o67WwGnGsJGpO8OkFrALUgPJnpAjwxkw+INl d7IQnYmTUCZE4ryKNLKeHs7n6eiKUOFhF8tsDGQacAoBZUnRqXUV5bW2Q j2LeOgOQ/gGRElvXInxroJAmXze/MvPUFytZT9swFmrR/o1L+NEqT6GFq Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ArIAAE0uV05Io8UQ/2dsb2JhbABEmDmPWXeBQAEBAQECAQEBAQ8BHT4LDAQCAQgRBAEBAQoGFwEGASAGAR4JCAIEAQoICBECB4dQBJspAZ8NhWxgBIczLYkqhyaEYYcO
X-IronPort-AV: E=Sophos;i="4.68,283,1312156800"; d="scan'208";a="52075572"
Received: from bgl-core-1.cisco.com ([72.163.197.16]) by ams-iport-2.cisco.com with ESMTP; 26 Aug 2011 05:30:34 +0000
Received: from xbh-bgl-412.cisco.com (xbh-bgl-412.cisco.com [72.163.129.202]) by bgl-core-1.cisco.com (8.14.3/8.14.3) with ESMTP id p7Q5UXO6006531; Fri, 26 Aug 2011 05:30:33 GMT
Received: from xmb-bgl-416.cisco.com ([72.163.129.212]) by xbh-bgl-412.cisco.com with Microsoft SMTPSVC(6.0.3790.4675); Fri, 26 Aug 2011 11:00:33 +0530
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 26 Aug 2011 11:00:33 +0530
Message-ID: <A2354B6A9F807641B21EEABD666ECEEA0130A879@XMB-BGL-416.cisco.com>
In-Reply-To: <EE0C2F9E065E634B84FC3BE36CF8A4B2079C054E@xmb-sjc-23e.amer.cisco.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [IPsec] DH keys calculation performance
thread-index: AcxLhaEQ/3n0iknoSYWMDOSNUKdLmQADrOhABdzlgaAAB0VBwAAHIuBAAADbL1AAFla60A==
References: <20013.29623.491247.654466@fireball.kivinen.iki.fi><B97B134FACB2024DB45F524AB0A7B7F203ED2B05@XMB-BGL-419.cisco.com><90AEF529-7273-4695-BA31-4F221A4ACF45@checkpoint.com><4E2EA248.70708@gmail.com><B97B134FACB2024DB45F524AB0A7B7F203ED2CEA@XMB-BGL-419.cisco.com> <A2354B6A9F807641B21EEABD666ECEEA0130A752@XMB-BGL-416.cisco.com> <EE0C2F9E065E634B84FC3BE36CF8A4B2079C046C@xmb-sjc-23e.amer.cisco.com> <A2354B6A9F807641B21EEABD666ECEEA0130A7D8@XMB-BGL-416.cisco.com> <EE0C2F9E065E634B84FC3BE36CF8A4B2079C054E@xmb-sjc-23e.amer.cisco.com>
From: "Naveen B N (nbn)" <nbn@cisco.com>
To: "Scott Fluhrer (sfluhrer)" <sfluhrer@cisco.com>, Yaron Sheffer <yaronf.ietf@gmail.com>, Yoav Nir <ynir@checkpoint.com>, timo.teras@iki.fi
X-OriginalArrivalTime: 26 Aug 2011 05:30:33.0644 (UTC) FILETIME=[46E166C0:01CC63B1]
X-Mailman-Approved-At: Fri, 26 Aug 2011 08:20:17 -0700
Cc: ipsec-tools-devel@lists.sourceforge.net, ipsec-tools-users@lists.sourceforge.net, ikev2-devel@lists.sourceforge.net, "Sastry SK (sassk)" <sassk@cisco.com>, ipsec@ietf.org, "Prashant Batra (prbatra)" <prbatra@cisco.com>, "Saravana Ravindran (sarravin)" <sarravin@cisco.com>
Subject: Re: [IPsec] DH keys calculation performance
X-BeenThere: ipsec@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Fri, 26 Aug 2011 05:29:24 -0000

Hi Scott,
if we can take care of the "Forward Secrecy",
When using Asymetric keys from certificates 
To negotiate symmetric keys, then certificate 
Can be used in place of DH Computation.

"TO maintain "Forward Secrecy", we have to change the keys from
time to time based on the key length, which can be achieved by re-
negotiating"

If this is possible then I can present a draft for the same.

Thanks & Regards
Naveen


-----Original Message-----
From: Scott Fluhrer (sfluhrer) 
Sent: Thursday, August 25, 2011 10:18 PM
To: Naveen B N (nbn); 'Yaron Sheffer'; 'Yoav Nir'; 'timo.teras@iki.fi'
Cc: 'ipsec@ietf.org'; Prashant Batra (prbatra); 'ipsec-tools-users@lists.sourceforge.net'; 'ikev2-devel@lists.sourceforge.net'; 'ipsec-tools-devel@lists.sourceforge.net'
Subject: RE: [IPsec] DH keys calculation performance


> -----Original Message-----
> From: Naveen B N (nbn)
> Sent: Thursday, August 25, 2011 12:34 PM
> To: Scott Fluhrer (sfluhrer); 'Yaron Sheffer'; 'Yoav Nir';
> timo.teras@iki.fi
> Cc: 'ipsec@ietf.org'; Prashant Batra (prbatra); ipsec-tools-
> users@lists.sourceforge.net; ikev2-devel@lists.sourceforge.net; ipsec-
> tools-devel@lists.sourceforge.net
> Subject: RE: [IPsec] DH keys calculation performance
> 
> Hi Scott,
> 
> Please find the queries and comments inline ..
> 
> Scott>- Transporting keying material lacks forward secrecy.  "Forward
> secrecy" is the property that, if some actually recovers the entire
> state of one (or both) of the sides, they still won't be able to
> decrypt a transcript of a session that had happened earlier (because
> the state needed to decrypt it was zeroized when the session was
> closed).  With key transport, it is impractical to zeroize the private
> key used during the exchange, and with that, the attacker can decrypt
> the keying material, and from there, rederive the session keys.  In
> contrast, with DH, as long as both sides zeroize the private exponents
> and shared secrets (along with the session state), the attacker does
> not have enough information.
> 
> Naveen>> TO maintain "Forward Secrecy", we have to change the keys from
> time to time based on the key length, which can be achieved by re-
> negotiating
>         new keys with the communicated Symmetric key.
> 	  But if you say that the first session used is to derive the
> private key of the peer, then Asymmetric key should never be used for
> deriving symmetric keys
>         Or to protect data. If Certificate are still used in TLS for
> negotiation of Symmetric keys, this is a major issue because they are
> used in important places.

I believe you misunderstand; we're not using the asymmetric key to "derive" the symmetric keys, but instead just to transport it.

Here's the scenario:
- Side A picks some keying material ("premaster secret" is TLS's terminology for it)
- Side A encrypts it with Side B's public key, and sends it to B
- Side B decrypts it with his own private key
- Both side A and side B use that keying material (and possibly other information that has been exchanged) to derive the real session keys

The problem I was discussing: what if, after the session has been shut down, the attacker recovers side B's private key?  This private key is unlikely to be zeroized along with the session (at least, with the current CA infrastructure); using this private key, the attacker could decrypt the encrypted keying material (just like B did), and rederive the session keys (again, just like B did).

> 
> Naveen>>So, Certificates should only be used for authentication in a
> protected environment is it.
> 	  What could be the life time of the RSA keys then, how long will
> it take to derive a private key from a public key with the best
> available resources.
> 	  Then it comes down to DH method being the best secured
> available solution for negotiating Symmetric key on the fly, without
> having shared keying material with the peer.
> 
> Scott>- IKEv2 allows other types of authentication beyond certificates;
> using public key encryption as a step in generating keying material
> would imply that we would need a different mechanism to generate keying
> material for other types of authentication.  This is certainly not
> impossible (in fact, IKEv1 did have different mechanisms based on
> authentication type, although for different reasons); the IKEv2
> designers decided to unify that.
> 
> Naveen>>May be Ikev2 designers feel that the intruder may selects a
> week authentication type if exposed in plan message, But I think we are
> authenticating the INIT_MESSAGE in IKE_AUTH
>         Message, so they could have provided a authentication method in
> IKE_INIT message.
> 
> 
> Thanks and Regards
> Naveen
> 
> -----Original Message-----
> From: Scott Fluhrer (sfluhrer)
> Sent: Thursday, August 25, 2011 6:57 PM
> To: Naveen B N (nbn); Yaron Sheffer; Yoav Nir
> Cc: ipsec@ietf.org; Prashant Batra (prbatra)
> Subject: RE: [IPsec] DH keys calculation performance
> 
> 
> 
> > -----Original Message-----
> > From: ipsec-bounces@ietf.org [mailto:ipsec-bounces@ietf.org] On
> Behalf
> > Of Naveen B N (nbn)
> > Sent: Thursday, August 25, 2011 6:48 AM
> > To: Yaron Sheffer; Yoav Nir
> > Cc: ipsec@ietf.org; Prashant Batra (prbatra)
> > Subject: Re: [IPsec] DH keys calculation performance
> >
> > Hi ,
> > Can we not use the existing RSA keys to get the shared secret without
> > using the DH computation
> > Because of the calculation that are involved.
> > Let's say A wants to initiate a session with B.
> > Let A get the Public key of B from CA by sending a protected message
> > using public key of CA.
> > Use the obtained public key for sending the shared secret to B and
> same
> > from the other
> > End has well, this will ensure authentication and avoiding DH
> > computation.
> >
> > I feel that certificate can be used for authentication and as well
> has
> > negotiated Symmetric key using the
> >  Concept of Asymmetric cryptography which is one of the good features
> > of certificate.
> >
> > Why in Ikev2, certificates are just used for authentication and why
> > they are not used for
> > negotiating Symmetric key instead in place of DH computation. Is it
> to
> > avoid use of Trusted CA negotiation.
> 
> Well, you certainly can use certificates (with public key encryption
> keys) to transport keying material; indeed, the ciphersuite of TLS that
> is in general use does exactly that.
> 
> However, it does have a few drawbacks.  Here are some of the reasons
> that the IKEv2 designers may have chosen not to use it:
> 
> - Transporting keying material lacks forward secrecy.  "Forward
> secrecy" is the property that, if some actually recovers the entire
> state of one (or both) of the sides, they still won't be able to
> decrypt a transcript of a session that had happened earlier (because
> the state needed to decrypt it was zeroized when the session was
> closed).  With key transport, it is impractical to zeroize the private
> key used during the exchange, and with that, the attacker can decrypt
> the keying material, and from there, rederive the session keys.  In
> contrast, with DH, as long as both sides zeroize the private exponents
> and shared secrets (along with the session state), the attacker does
> not have enough information.
> 
> - IKEv2 allows other types of authentication beyond certificates; using
> public key encryption as a step in generating keying material would
> imply that we would need a different mechanism to generate keying
> material for other types of authentication.  This is certainly not
> impossible (in fact, IKEv1 did have different mechanisms based on
> authentication type, although for different reasons); the IKEv2
> designers decided to unify that.
> 
> >
> > Thanks and Regards
> > Naveen
> >
> > From: ipsec-bounces@ietf.org [mailto:ipsec-bounces@ietf.org] On
> Behalf
> > Of Prashant Batra (prbatra)
> > Sent: Tuesday, July 26, 2011 6:33 PM
> > To: Yaron Sheffer; Yoav Nir
> > Cc: ipsec@ietf.org
> > Subject: Re: [IPsec] DH keys calculation performance
> >
> > Thanks Yoav and Yaron  for the suggestions.
> > Even I was thinking and tried generating and storing the key pair
>  well
> > in the beginning,.  This helped to some extent.
> >
> > The secret calculation is also very expensive, but this has to be
> done
> > in midst of the exchange only.
> >
> > Regards,
> > Prashant
> >
> >
> > From: Yaron Sheffer [mailto:yaronf.ietf@gmail.com]
> > Sent: Tuesday, July 26, 2011 4:47 PM
> > To: Yoav Nir
> > Cc: Prashant Batra (prbatra); ipsec@ietf.org
> > Subject: Re: [IPsec] DH keys calculation performance
> >
> > You might want to review http://tools.ietf.org/html/rfc5996#section-
> > 2.12.
> >
> > Also, session resumption (http://tools.ietf.org/html/rfc5723) reduces
> > the computational costs of renewing an IKE SA when a client needs to
> > reconnect to a gateway a second time after some failure.
> >
> > Thanks,
> >     Yaron
> >
> > On 07/26/2011 01:40 PM, Yoav Nir wrote:
> >
> > On Jul 25, 2011, at 11:29 PM, Prashant Batra (prbatra) wrote:
> >
> > Hello,
> >
> > The DH exchange (Calculation of Public/Private key and the Secret) in
> > IKEV2 Initial exchange
> > seems to be very expensive. This is slowing down the overall IKEv2
> > tunnel establishment.
> > Is there a way to optimize it?
> >
> > Hi Prashant.
> >
> > I know of three ways to optimize the D-H exchange.
> >
> > First, note that each peer has to perform two operations:
> >  1. Generate: create a random x and calculate X=2^x mod p
> >  2. Derive: calculate the shared secret S=Y^x mod p
> > The "Derive" operation has to be done during the exchange, but the
> > "Generate" operation can be done long before the exchange. If your
> > problem is degraded performance at some peak, you can pre-generate
> some
> > values. This has a high cost in memory, but can be useful for dealing
> > with peaks.
> >
> > Second, note that 2^73 mod p = ((2^64 mod p) * (2^8 mod p) * (2^1 mod
> > p)) mod p
> > If you're using a 2048-bit D-H group, you can pre-calculate 2^x mod p
> > for 0<=x<=2048 and store these values. After that, both the generate
> > and derive operations become simple multiplications of the resulting
> > values. This has a fixed cost in memory, but can accelerate things.
> >
> > Third, you may want to look at the EC groups. The EC operations
> require
> > less computation.
> >
> > Hope this helps
> >
> > Yoav
> >
> >
> >
> > _______________________________________________
> > IPsec mailing list
> > IPsec@ietf.org
> > https://www.ietf.org/mailman/listinfo/ipsec
> > _______________________________________________
> > IPsec mailing list
> > IPsec@ietf.org
> > https://www.ietf.org/mailman/listinfo/ipsec