From owner-svn-src-all@FreeBSD.ORG Fri Apr 3 01:38:08 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B4B93E4D; Fri, 3 Apr 2015 01:38:08 +0000 (UTC) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 616A183B; Fri, 3 Apr 2015 01:38:07 +0000 (UTC) Received: from laptop015.home.selasky.org (cm-176.74.213.204.customer.telag.net [176.74.213.204]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id ED7A11FE022; Fri, 3 Apr 2015 03:38:03 +0200 (CEST) Message-ID: <551DEF26.4000403@selasky.org> Date: Fri, 03 Apr 2015 03:38:46 +0200 From: Hans Petter Selasky User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: "Robert N. M. Watson" Subject: Re: svn commit: r280971 - in head: contrib/ipfilter/tools share/man/man4 sys/contrib/ipfilter/netinet sys/netinet sys/netipsec sys/netpfil/pf References: <201504012226.t31MQedN044443@svn.freebsd.org> <1427929676.82583.103.camel@freebsd.org> <20150402123522.GC64665@FreeBSD.org> <20150402133751.GA549@dft-labs.eu> <20150402134217.GG64665@FreeBSD.org> <20150402135157.GB549@dft-labs.eu> <1427983109.82583.115.camel@freebsd.org> <20150402142318.GC549@dft-labs.eu> <20150402143420.GI64665@FreeBSD.org> <20150402153805.GD549@dft-labs.eu> <551D8143.4060509@selasky.org> <551D8945.8050906@selasky.org> <8900318B-8155-4131-A0C3-3DE169782EFC@FreeBSD.org> <551D8C6C.9060504@selasky.org> <551DA5EA.1080908@selasky.org> <551DAC9E.9010303@selasky.org> <358EC58D-1F92-411E-ADEB-8072020E9EB3@FreeBSD.org> In-Reply-To: <358EC58D-1F92-411E-ADEB-8072020E9EB3@FreeBSD.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: Mateusz Guzik , Ian Lepore , svn-src-all@freebsd.org, src-committers@freebsd.org, Gleb Smirnoff , svn-src-head@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Apr 2015 01:38:08 -0000 On 04/02/15 23:20, Robert N. M. Watson wrote: > On 2 Apr 2015, at 21:54, Hans Petter Selasky wrote: > >> I see from the code that if two frags have the same IP offset, the whole fragment list gets dropped, unless the IP payload is zero bytes long. Maybe a "last" variable should be added? Hi Robert, > Are you solving an actual problem you've observed, or is this a speculative proposal? Yes, I saw in the FreeBSD network code that fragments having IP payload < 8 are not allowed, after writing this e-mail. > > I think you would benefit a great deal from reading Stevens Volume I (second edition) before proceeding with further changes to the TCP/IP code stack. I will order and read this book eventually. I appreciate your tip. I would like have a comment on one final issue about the IP ID field. Given two [small] prime numbers: P and Q Assume you have a firewall that separate two networks, called A and B, that are not allowed to communicate. In network A an application pings the firewall and sees the IP ID field changing P steps. In network B an application pings the firewall and sees the IP ID field changing Q steps. If the application in network A always see that the IP ID field is changing P steps, it knows the application in network B did not send any packets. If the application in network B always see that the IP ID field is changing Q steps, it knows the application in network A did not send any packets. Detecting sending and not sending packets can be used as a way of reliable duplex binary communication. I think the current and past implementation of the IP ID field in FreeBSD can be used to leak information between networks, or am I totally wrong? As long as the IP ID counters are shared between two or more secured networks, there will be a problem. Something along the lines of D2211 might be a way to solve such an information leak without too much overhead! --HPS