Internet DRAFT - draft-floroiu-ake-ipv6

draft-floroiu-ake-ipv6



INTERNET DRAFT                                                   J. Floroiu
Date: 20 February 2002                                            FhG Fokus
Expires: August 2002

	      An Authenticated Key Exchange Protocol in IPv6
		      <draft-floroiu-ake-ipv6-00.txt>

Status of This Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at
   any time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html.

Abstract

   This document proposes an authenticated key exchange scheme enabling two
   nodes to establish a security association in a way robust to man in the
   middle attacks. The scheme is based on owner-bound IP addresses  and DNS
   lookups.

   The proposed scheme relies on the fact that an attacker cannot timely
   produce a piece of information to match the output of a one way
   function.

1.  Introduction

   This document proposes an authenticated key exchange scheme enabling two
   nodes to establish a security association in a way robust to man in the
   middle attacks.

   The Diffie-Hellman key exchange is used for the shared secret generation.

   The authentication of the peers is based on the idea of building
   "lightweight certificates" - self signed public key plus the DNS name of
   the public key owner.

   Self signed public keys are still vulnerable to man in the middle
   attacks, we therefore rely on binding IP addresses to public keys, as
   indicated in [Nika]. DNS lookups ensure that the name specified by the
   sender corresponds to the sender's address. The sender address, on the
   other hand, contains a hash of the sender's public key. For owner-bound
   IP addresses DNS becomes in this way a database containing the hashes of
   the corresponding public keys.

Floroiu                                                            [Page 1]

INTERNET DRAFT                                             20 February 2002

2.  Protocol description

   The following notations will be used:

   X		IP address of X (X is one of A, B and M - the Alice, the Bob
                                                             and the Mallory)
   NX		DNS name of X
   KX+		Public key of X
   KX-		Private key of X
   g^x		DH public information (g^y, g^z likewise)

   We will describe the scenario step by step starting from the most
   elementary (and vulnerable) exchange.

   So, whenever Alice and Bob want to establish a shared secret thay use a
   Diffie-Hellman key exchange. If Alice and Bob want to authenticate each
   to the other, all they can do in the absence of a third trusted party is
   to use self-signed public keys. The exchange will look somehow like:

    Alice             >>                   Bob
    A->B: { KA+, g^x } KA-

    Alice             <<                   Bob
                                           B->A: { KB+, g^y } KB-

   Bob retrieves KA+ and he is able to authenticate the message containing
   g^x and similarly does Alice. If either the message content OR the
   signature are modified in transit the authentication fails.  This scheme
   is sensitive to man-in-the-middle attacks because Mallory can always
   intervene in the exchange and modify the message content AND the
   signature:

    Alice    >>        Mallory     >>      Bob
    A->B: { KA+, g^x } KA-
                       M->B: { KM+, g^z } KM-

    Alice    <<        Mallory     <<      Bob
                                           B->A: { KB+, g^y } KB-
                       M->A: { KM+, g^z } KM-

   In the next step the DNS name of the host will be introduced because we
   consider reasonably to assume that each node is able to identify
   "friends" and "enemies" by name.  Let Alice and Bob provide their names
   and resolve them, this brings us one step closer to the proposed scheme,
   although for the time being Mallory can still impersonate Alice and Bob:

    Alice    >>        Mallory     >>      Bob
    A->B: { NA, KA+, g^x } KA-
                       A->B: { NA, KM+, g^z } KM-

    Alice    <<        Mallory     <<      Bob
                                           B->A: { NB, KB+, g^y } KB-
                       B->A: { NB, KM+, g^z } KM-



Floroiu                                                            [Page 2]

INTERNET DRAFT                                             20 February 2002

   However, if A and B were bound to Alice's and respectively Bob's public
   keys, then Bob would notice that hash(KM+) does not correspond to A -
   expected to be composed of prefix and hash(KA+) - and respectively that
   hash(KM+) does not appear in B. If Mallory modified the source address of
   the datagram then the DNS lookup would fail, and if Mallory replaced the
   names with his own, both Alice and Bob would notice that the peer is not
   the one they expect to talk to.  Assuming Alice and Bob are two
   arbitrary nodes in Internet, they might not necessarly apriori know each
   other's name, but, at least, connection attempts coming from suspicious
   domains can be refused.

   For a sucessfull key exchange to take place, the following 3 steps must
   be sucessfully passed:
      1) perform DNS lookup;
      2) compute hash(K+) and check the sender's IP address;
      3) use K+ to check the signature.

   Once Alice and Bob concluded the exchange with a shared secret, they can
   further negotiate a number of security associations in a similar way IKE
   for instance is doing. 

   For situations when Alice and Bob do not need a
   general purpose key exchange protocol but rather seek to negotiate a
   number of well defined security associations, security association
   proposals may be piggybacked into the exchange in order to reduce the
   signaling. A Mobile IP mobile node is a typical example, in which the
   initiator may want to establish no more than one AH security association
   with an administrative entity in the visited domain, or an ESP security
   association with a correspondent node.

4.  Reply attacks

   In order to avoid reply attacks Alice and Bob could encrypt each other's
   name using the generated shared secret. If Mallory replaces a message of
   Alice or Bob with an older one, Alice and Bob will end up with different
   secrets. This fact will be discovered when attempting to decrypt the
   peer's name.  This adds only one more message to the exchange, because
   Bob can generate the secret after the first message trip and already
   piggyback its own name in encrypted form in the reply. If Alice cannot
   decrypt correctly Bob's name using the shared secret, she won't send the
   third message. If the shared secret appears to be correct, then Alice
   encrypts its name using this secret and acknowledges this to Bob.

5.  Enlarging the problem space for a potential attacker

   What Mallory has to do in order to impersonate Alice and Bob, is to be
   able to generate a public key the hash of which conforms to the
   interface identifier part of the victim's IP address. In order to make
   this even more difficult to Mallory, Alice and Bob may periodically
   change their public keys, which translates into changing their IP
   addresses (issues related to DNS updates frequency would need to be
   addressed at this point).




Floroiu                                                         [Page 3]

INTERNET DRAFT                                          30 November 2001

   Alice and Bob can also modify their IP addresses without modifying their
   public keys.  Since a MD5 hash for instance is 16 bytes long, Alice and
   Bob may decide to form the interface identifier part of their IP
   addresses by just choosing at different moments of time a different
   sequence of 8 bytes out of the 16 bytes of the hash. Thus, a sequence
   like <1, 3, 5, 6, 9, 11, 13>, for instance, added into the message Alice
   sends to Bob, tells Bob that he has to match the indicated bytes
   sequence of the hash(KA+) against the interface identifier part of A.

6.  Conclusion

   Including cryptographic material into the IP addresses enable secure use
   of self signed public keys, without requiring the assistence of trusted
   third party entities. Well, there is actually a trusted third party -
   the DNS infrastructure itself - which is assumed to not be  corrupted.

References

   [Nika] Nikander, P., "A Scaleable Architecture for IPv6 Address
   Ownership", draft-nikander-ipng-pbk-addresses-00.txt, March 2001,
   expired November 2001

Author's Address

   Questions about this memo can also be directed to:

     John Floroiu
     FhG Fokus
     31 Kaiserin-Augusta-Allee
     10589 Berlin, Germany
     Phone: +49 (0)30 3463 7144
     Email: floroiu@fokus.fhg.de