[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Retransmitting a command with different tickets



The current draft says nothing about retransmitting a command with
different service tickets.  I think we should forbid it, how do you
think of it?


When a KINK initiator sends a command and the command or its reply is
dropped, the initiator retransmits the command.  If the initiator
renews a service ticket between the first and second transmission,
some careless implementations may use different tickets.  In that
case, some problems may occur.

Problem example:
   If the initiator retransmit the command with the new ticket, the
   responder may receive the same command with different keys.  The
   responder doesn't know which reply (the reply to the first command
   or the second one) will get to the initiator, thus doesn't know
   which key should be used to generate KEYMAT.

Another problem:
   If the initiator detects the ticket renewal and aborts the
   transaction, the initiator and the responder go out of sync.  That
   is, the initiator thinks the transaction was failed, but the
   responder may think the transaction was successful.

To deal with this problem, the KINK spec need to prohibit a
retransmission with a different ticket.  Then, how the initiator's
behavior should be defined?

-  Before a transaction, the initiator should check the lifetime of the
   ticket and avoid near-end-of-life (e.g. shorter lifetime than full
   retransmission cycle) ticket.
-  The initiator must continue to use the same ticket in a transaction
   even if it notices the lifetime is expired.
-  Leave the behavior to implementations.  In this case, some
   implementation hints may be necessary to avoid above problems.
-  any other ideas?


Regards,
-- 
KAMADA Ken'ichi <kamada@xxxxxxxxxx>