Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 33154 invoked from network); 30 Mar 2009 15:18:34 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 30 Mar 2009 15:18:34 -0000 Received: (qmail 80606 invoked by uid 500); 30 Mar 2009 15:18:33 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 80526 invoked by uid 500); 30 Mar 2009 15:18:33 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 80517 invoked by uid 99); 30 Mar 2009 15:18:33 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Mar 2009 15:18:33 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of paul@querna.org designates 74.125.46.157 as permitted sender) Received: from [74.125.46.157] (HELO yw-out-1718.google.com) (74.125.46.157) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Mar 2009 15:18:25 +0000 Received: by yw-out-1718.google.com with SMTP id 5so1310910ywm.84 for ; Mon, 30 Mar 2009 08:18:03 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.201.2 with SMTP id y2mr10347353ybf.8.1238426283176; Mon, 30 Mar 2009 08:18:03 -0700 (PDT) In-Reply-To: <99EA83DCDE961346AFA9B5EC33FEC08B01FAD71F@VF-MBX11.internal.vodafone.com> References: <4239a4320903290843r3b72a4d0w10f32107a221b9b1@mail.gmail.com> <4239a4320903300803l26009322v3a4fb39a07e6de@mail.gmail.com> <99EA83DCDE961346AFA9B5EC33FEC08B01FAD71F@VF-MBX11.internal.vodafone.com> Date: Mon, 30 Mar 2009 17:18:03 +0200 Message-ID: <4239a4320903300818x51f24a28ncdc1d4ab7aefde81@mail.gmail.com> Subject: Re: [PROPOSAL] mod_cloudbeat From: Paul Querna To: dev@httpd.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On Mon, Mar 30, 2009 at 5:10 PM, "Pl=C3=BCm, R=C3=BCdiger, VF-Group" wrote: >> -----Urspr=C3=BCngliche Nachricht----- >> Von: Paul Querna >> Gesendet: Montag, 30. M=C3=A4rz 2009 17:04 >> An: dev@httpd.apache.org >> Betreff: Re: [PROPOSAL] mod_cloudbeat >> >> On Mon, Mar 30, 2009 at 4:45 PM, Jim Jagielski >> wrote: >> > >> > On Mar 29, 2009, at 11:43 AM, Paul Querna wrote: >> >> >> >> URL Authentication is done by computing an randomly seeded >> md5 signature >> >> of: >> >> =C2=A0 =C2=A0seed + "$"+ MD5(seed + shared_secret + uri) >> >> This is base64 encoded, and placed in a 'X-Cloudbeat-Auth' header. >> >> >> > >> > Thinking outloud here... The idea I think is to ensure that >> > the X-Cloudbeat-Auth defines an authenticated server, using >> > the fact that it knows the shared secret. But how does the >> > above do that? Say for example that A and B known to each >> > other and B is sending X-Cloudbeat-Auth. This is easy to >> > find out, of course. So I setup B' to send the exact same >> > header and apply a DoS to B causing it to drop/hang/whatever. >> > Won't A just see B' as B, maybe thinking that it had a >> > momentary glitch and came back? It seems to me that we need >> > some sort of IP:port knowledge in there as well. >> >> In my mind, URL includes the IP/port, so you shouldn't be able to DoS >> it this way. =C2=A0I guess I should of been clearer by what I meant with >> URL. >> >> I was thinking about this more, and we should also change the hash to >> sha1, considering it only takes a few days to find md5 collisions if >> you have enough playstation 3s: >> =C2=A0 =C2=A0 seed + "$"+ sha1(seed + shared_secret + ip ":"+ port + URI= ) > > Which IP do you use here? The one from the client that sends the request? > Furthermore we should include a timestamp as we are very vulnerable again= st > replay attacks otherwise. Server A wants to talk to B. We include server B's IP in the hash that Server A sends to B. (this prevents B without knowledge of the secret from doing a replay). I dislike adding a timestamp as it tends to make the protocols more brittle, but maybe int(current unix timestamp / 2 days in seconds) would allow boxes out of sync, but prevent long term replay and hash reuse. Thanks, Paul