Subject: Re: GTSM and TCP accept problem

From: Stephen Hemminger <[email-masked]>
Date: Sun, 15 Aug 2010 12:38:40 -0400

On Sat, 14 Aug 2010 22:12:58 -0700 (PDT)
David Miller <[email-masked]> wrote:

> From: Stephen Hemminger <[email-masked]>
> Date: Sat, 14 Aug 2010 21:46:34 -0400
> 
> > The implementation of Generalized TTL Security has a problem
> > on the TCP accept side. Since there can be different number of
> > hops for each peer, the listener ends up doing
> > 
> >    socket
> >    bind
> >    set TTL to 255
> >    listen
> >    while (nfd = accept(peer)) {
> >      info = lookup(peer)
> >      set MINTTL to 255 - info->ttl_hops
> 
> Surely when creating the initial listening socket we should use the
> minimum TTL over the set of peers right?
> 
> That surely takes most of the fun out of this problem for the
> attacker.

That only works if all peers are external and using ttl-security.
If any peer is not using ttl-security, then that peer will be
sending with low TTL and the SYN would get dropped.

The real problem goes back to the GTSM RFC assumptions that TTL
security will be done by firewall, not TCP itself.