a potential security hole?

OKABE Nobuo <[email protected]> Wed, 12 Feb 2003 14:07:43 +0900 (JST)
Newsgroups gmane.ietf.kink
Message-ID <[email protected]>
Hi all,

# Sorry if this kind of discussion had already been held so far.
# We got involved KINK recently.

We found a potential security hole using KINK with
a kind of naming system that can update entry dynamically.
Here is one of scenarios.

1) Assumptions


   There are node A, B and X as the following table.
   Alice on A establishes secure communication with B by IPsec.
   Bob want to break Alice's security or privacy.

   =====+============+=======+===========+===========+============
   Node  Principal    key     FQDN/       User        Otherwise
                      shared  IP address
                      w/ KDC
   =====+============+=======+===========+===========+============
   A     ME@REALM     Ka      ME/         Alice, Bob  N/A
                              IPa
   -----+------------+-------+-----------+-----------+------------
   B     PEER@REALM   Kb      PEER/       Alice       N/A
                              IPb
   -----+------------+-------+-----------+-----------+------------
   X     BAD@REALM    Kx      BAD/        Bob         X is a 
                              IPx                     intermediate
                                                      box between
                                                      A and B
   =====+============+=======+===========+===========+============


2) Alice establishes IPsec by KINK.


   Alice establishes IPsec between A and B using KINK.


       A                           KDC                           B

            AS_REQ
              by ME@REALM
        -------------------------->

            AS_REP
              w/ TGTa
        <--------------------------

            TGS_REQ
              by ME@REALM
              for PEER@REALM
              w/  TGTa
        -------------------------->

            TGS_REP
              w/ TICKETb
        <--------------------------

            IPsrc:IPa, IPdst:IPb
            KINK_CREATE
              w/ AP_REQ (including TICKETb)
              w/ ISAKMP
        -------------------------------------------------------->

            IPsrc:IPb, IPdst:IPa
            KINK_REPLY
              w/ AP_REP
              w/ ISAKMP
        <--------------------------------------------------------


   Now IPsec was established between A and B.


3) A bad guy, Bob, takes over the SA pairs.


   First, Bob updates a bogus pair (FQDN: BAD, IP address: IPb)
   of his naming system. Then, he initiates KINK for BAD@REALM.
   KINK on A starts KINK message. X that is a intermediate box
   between A and B can impersonate B because X can understand
   a ticket for BAD@REALM.


       A                           KDC              X             B

            TGS_REQ
              by ME@REALM
              for BAD@REALM
              w/  TGTa
        -------------------------->

            TGS_REP
              w/ TICKETx
        <--------------------------

            IPsrc:IPa, IPdst:IPb
            KINK_CREATE
              w/ AP_REQ (including TICKETx)
              w/ ISAKMP
        -------------------------------------------> X impersonates B.
                                                     X can reads AP_REQ
                                                     because X can
                                                     understand TICKETx.

            IPsrc:IPb, IPdst:IPa
            KINK_REPLY
              w/ AP_REP
              w/ ISAKMP
        <------------------------------------------- X impersonates B.
                                                     X can create AP_REP
                                                     because X can
                                                     understand TICKETx.


To avoid this kink of attack, FQDN part of pricipal
must be restricted. 

Any other good ideas for against the attack?

# Again, if the WG had already discussed this kind of attack,
# please give us the pointers.

thanks,

---- nobuo