On Wed, Aug 22, 2001 at 05:10:16PM -0700, Bruce A. Mah wrote:
> > Several people on other mailing lists have pointed out that Nagle
> > should make this much harder, although it's unclear how Nagle and
> > ssh interact.  So far that has resulted in a number of degenerating
> > discussions of how things work.  Of course, Nagle will not help
> > between two machines on the same ethernet segment, but probably
> > would make the process described in the paper much harder.
> 
> Indeed.  They also didn't discuss (or I didn't see it) the effects of 
> queueing or jitter in the network on their scheme.

I just had a thought.  It appears from the discussion that SSH encrypts
things (internal to ssh) in whatever unit is handed to the encryption
routine, that is something like:

for(;;) {
   read(stdin, buffer);
   encrypt(buffer);
   write(network, buffer);
}

So, if read returns a single character, it encrypts a single character
and sends it.  This results in the 20 byte packets in the article.  Now,
20 bytes is small enough that Nagle might combine two of them into a 
single 40 byte packet or similar making this harder.  That said, it would
be much harder if something similar to Nagle was done in ssh:

for (;;) {
   timer = gettime();
   while ((len(buffer) < 20) && ((gettime() - timer) < 20ms)) {
      read(stdin, buffer);
   }
   encrypt(buffer);
   write(network, buffer);
}

This should allow two or three characters to go into a single block (which
would probably still be 20 bytes) and completely throw off the method they
were using.

-- 
Leo Bicknell - [EMAIL PROTECTED]
Systems Engineer - Internetworking Engineer - CCIE 3440
Read TMBG List - [EMAIL PROTECTED], www.tmbg.org

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to