Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Dec 2000 09:01:10 -0700
From:      "Craig W. Penner" <cpenner@streamflo.com>
To:        Jim Flowers <jflowers@ezo.net>
Cc:        Archie Cobbs <archie@dellroad.org>, freebsd-questions@freebsd.org, freebsd-net@freebsd.org
Subject:   Re: SKIP port on 4.x (prize offer)
Message-ID:  <3A2768D6.19178.87E3A26@localhost>
In-Reply-To: <Pine.BSI.3.91.1001130150920.1673A-100000@lily.ezo.net>
References:  <200011301942.eAUJgcK92874@curve.dellroad.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Jim,

> What about it?  Anyone with skills in this area interested in figuring
> out what changed between 4.1 and 4.1.1 probably in the crypto changes
> that prevents the MD5 authentication of a skip partner. 

I spent a couple of hours yesterday looking at the code, and while 
my C skills are a little rusty, here's how it looks to me:

1.  SKIP contains its own built-in crypto functions, including its
     own MD5 routines.  It doesn't appear to link against any of the
     system crypto libraries, and I don't think there's any chance of
     it using the wrong md5.h header file (most of SKIP's own MD5
     functions are named slightly differently than the OS versions). 
     So I don't think SKIP's brokenness results from changes in the
     FreeBSD crypto stuff (at least not directly).

2.  A 4.2-STABLE SKIP kernel still properly signs outgoing
    packets, because they are correctly authenticated when
    received as incoming packets on a pre-4.1.1 system.

3.  The problem appears to be with incoming packets on post 
     4.1-RELEASE systems.  Is it possible that incoming packets
     are being changed slightly before SKIP gets a chance to
     process them, thereby causing a failure in the MD5
     authentication?  SKIP appears to ignore the ip_sum, ip_ttl,
     ip_tos and ip_off fields in the IP header when signing and
     authenticating packets, presumably because these fields are
     expected to change;  is there some other field in an IP packet
     that now falls into this same category that didn't before? 
     Maybe something related to IP options processing?  (Now I'm
     totally guessing.)

At this point, if I had to guess, I would guess that the problem is 
that the FreeBSD TCP/IP stack changed in some very subtle way 
with respect to incoming packets only.  By looking at the CVS
logs, it appears that there were some changes made during the 
time between 4.1-RELEASE and 4.1.1-RELEASE to the way IP 
packets are processed, but nothing that looks to my untrained eye 
to be obviously problematic.

Unfortunately, I don't know enough about SKIP's internals, kernel 
networking internals, or how SKIP and the TCP/IP stack interact to 
go any further with this.

Maybe I'm way off-base, but I thought I'd throw this out there in 
case it helps to point someone in the right direction.  If I'm totally 
out to lunch, just disregard everything I've said.

Regards,
Craig



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A2768D6.19178.87E3A26>