I believe that my pull request was indeed covering the different cases you talk 
about. See in-line pieces of text from my pull request:

On 11/21/19 10:48 AM, Eric Rescorla wrote:
To recap what I was saying at the microphone earlier today about
selfie/reroute issues, there are actually three separate issues.

- A reflection attack where an outside attacker makes the client also
  act as a server.

- A reroute attack where an outside attacker makes the client talk to
  another server with the same PSK as the intended server.

- An attack where an inside attacker impersonates another attacker
  who also has the PSK.

The reflection attack is a special case of the reroute attack.  The
general solution to the reroute attack is to carry the identities of
the communicating endpoints in the handshake [0]; AFAIK it's not
necessary to have separate keys, though the current text actually
generates distinct keys for each pair as well.  It's not a problem to
have distinct keys, but it's important to know what piece does what.

Selfie attack {{Selfie}} is a special case of the rerouting attack against a 
group member that can act both as TLS server and client. In the selfie attack, 
a malicious non-member reroutes a connection from the client to the server on 
the same endpoint.

Rerouting and selfie attacks can be detected by binding the TLS handshake to 
globally unique node identifiers using the following context string:
struct {
       opaque client_id<0..2^16-1>;
       opaque server_id<0..2^16-1>;
  } Context;


However, that doesn't generally solve the third class of attack if the
inside attacker is configured with the input key rather than the
fanned out pairwise keys.


When the PSK is a group key: To prevent malicious rerouting in groups, each 
endpoint needs to know the identifier of the other endpoint with which they 
want to connect and compare it with the other endpoint’s identifier in context. 
Of course, this only prevents attacks by non-members; the endpoints that share 
the group key can always impersonate each other.

The last part was explicitly referring to the case that you can't do much about 
insider attacks in group PSK scenarios.

-Ekr

[0] As John Mattson has pointed out, you can fix just the reflection
attack by comparing the random values you have outstanding in each
direction.


I find the current text in draft-ietf-tls-external-psk-importer inadequate 
(although I understand that I am in the rough). For example, it doesn't 
explicitly say that client_mac should never be the same as the server_mac. If 
the WG wants to address this in a separate document, then so be it. I am happy 
to help.

--Mohit






_______________________________________________
TLS mailing list
TLS@ietf.org<mailto:TLS@ietf.org>
https://www.ietf.org/mailman/listinfo/tls

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to