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>