>>>>> "Yoshihiro" == Yoshihiro Ohba <[email protected]> writes:

    Yoshihiro> There are two separate issues here.  First, Regardless
    Yoshihiro> whether lower-layer provides reliabilty or not, I believe
    Yoshihiro> EAP-layer retransmissions can improve robustness against
    Yoshihiro> DoS attack by sending malformed EAP requests, which
    Yoshihiro> otherwise can stall the EAP conversation. EAP-layer
    Yoshihiro> retransmission is not needed if the lower-layer provides
    Yoshihiro> secure reliable transport of EAP, such as IKEv2.  I am
    Yoshihiro> not an expert of GSS-API, but it would have been better
    Yoshihiro> if EAP-layer retrasnmissions were allowed in GSS-EAP.

We both agree that a reliable lower layer needs to be sufficient to deal
 with network problems.

As I understand it, we're exploring the case where retransmissions would
deal with an attacker.
So, I think what you're saying is that if an implementation performs a
retransmit when it gets a malicious packet, it can be more robust.

We're presumably talking about an attacker that can insert packets but
not modify them or suppress them.
An attacker who can modify or suppress packets can fairly clearly DOS
the EAP conversation.
If nothing else, they can simply make sure the packet is always
corrupted.

For this to be valuable there need to be EAP methods that are robust
under EAP-layer retransmission but not other higher-layer
retransmission. 
It's not good enough for EAP layer retransmissions to help with some
packets in a method if it doesn't help with others. If there's some
packet an attacker can easily send that will break the conversation, the method
is not robust under EAP layer transmission.
For example it wouldn't be particularly valuable if EAP layer
retransmission protects against garbled packets but not packets with
unknown critical options added, because an attacker could easily add an
unknown critical option.

I then started to consider the existing EAP methods.
I am not able to think of an EAP method that is robust under EAP layer
retransmission. I think you can fairly consistently break an EAP
conversation by inserting packets.
The most obvious thing to try is an EAP failure packet, then an EAP
NACK.
I also quickly considered methods like GPSK and TLS-based methods, and
am fairly sure those are not robust either.
So, would you be willing to pick an EAP method that is robust and go
through a fairly detailed argument about how insertion DOS attacks are
avoided?



    Yoshihiro> Second, Regarding peer-initiated lower-layer
    Yoshihiro> retransmission, it is characterized by authenticator
    Yoshihiro> lower-layer to retransmit an EAP request based on an
    Yoshihiro> external event of receiving a peer-initiated duplicate
    Yoshihiro> request, instead of use of an internal timer event. This
    Yoshihiro> means that if the peer lower-layer receives a lower-layer
    Yoshihiro> response carrying an EAP request (so the corresponding
    Yoshihiro> lower-layer request is no longer outstanding) and the EAP
    Yoshihiro> request is discarded by EAP peer layer for some reason,
    Yoshihiro> then the peer lower-layer will not retransmit the
    Yoshihiro> lower-layer request to serve as the external event for
    Yoshihiro> the authenticator lower-layer to retransmit the EAP
    Yoshihiro> request. As a result, if my understanding is correct, the
    Yoshihiro> EAP conversation will stall unless there is some
    Yoshihiro> additional mechanism that can keep the EAP conversation
    Yoshihiro> going.  The issue is more significant for insecure
    Yoshihiro> lower-layers where attackers can inject malformed EAP
    Yoshihiro> requests.  The issue is less significant for secure
    Yoshihiro> lower-layers such as IKEv2.  I agree that this issue is
    Yoshihiro> complex.  Note that PANA does not have this issue because
    Yoshihiro> it is based on authenticator-initiated lower layer
    Yoshihiro> retransmission.

It's absolutely true that if a peer  discards an EAP request in such a
scheme, the conversation stalls.
If you're introducing that into an application, that would decrease
robustness.
There are a lot of TCP applications though where it is a violation of a
protocol to discard a message. LDAP clients do not just get to ignore a
SASL challenge or any other non-authentication protocol message.
If an IMAP client ignores the capability response (happens before
authentication), things will stall.
If your application already depends on people not discarding responses,
depending on that for authentication is fine.

I think more or less all of our security layers are vulnerable to DOS
attacks from people inserting or modifying their negotiations.
The only thing I can think of that clearly does not have this
vulnerability is statically keyed TCP-AO or IPSec.
I'm fairly sure very little of anything we standardize gives the
robustness you're looking for.
_______________________________________________
abfab mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/abfab

Reply via email to