Re: [alto] Reprise of REST comments

Richard Alimi <rich@velvetsea.net> Wed, 05 January 2011 08:35 UTC

Return-Path: <richard.alimi@gmail.com>
X-Original-To: alto@core3.amsl.com
Delivered-To: alto@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7A48E3A6C28 for <alto@core3.amsl.com>; Wed, 5 Jan 2011 00:35:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.755
X-Spam-Level:
X-Spam-Status: No, score=-1.755 tagged_above=-999 required=5 tests=[AWL=-0.378, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_46=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aUUmvbHxKiSV for <alto@core3.amsl.com>; Wed, 5 Jan 2011 00:35:56 -0800 (PST)
Received: from mail-iy0-f172.google.com (mail-iy0-f172.google.com [209.85.210.172]) by core3.amsl.com (Postfix) with ESMTP id 37CFE3A6B83 for <alto@ietf.org>; Wed, 5 Jan 2011 00:35:56 -0800 (PST)
Received: by iyi42 with SMTP id 42so14947937iyi.31 for <alto@ietf.org>; Wed, 05 Jan 2011 00:38:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=FTd7qaC16KCtg26TPwrcyXlpJD5QZZ0TrUV6pINNJy4=; b=TulNu+rbhxw793cXUYqr8fEXfovyajwwZd6wHyfKLODhUwbsxj6b/JxsWVZFepV44w Akes+4vJLhPoEKsSPFiMxi/fqoyhcTsYPDh19GXqkw+yfVZ2wrNXwlDWhWzij2BM0HgU GoU96INfXzH0Y8CxDfOhB2uLbRTag/hyvb640=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=P80VdUp3w1R1vPIwIqG3ECTFVkJdRvqs/ul78kicWSHJV4PgpyAsXOMvHyeDv8lnp5 M0oV7FHcBVrRHzfRhDwiEjlTUnvJY9nQejYM7bpTxqp+rbPCp7liMXc01Hoc/qt8EyQi p8ZqsaW4ggUfnN7hf55us/Fi6SBQErWVe3uqU=
MIME-Version: 1.0
Received: by 10.231.35.136 with SMTP id p8mr6667936ibd.139.1294216683028; Wed, 05 Jan 2011 00:38:03 -0800 (PST)
Sender: richard.alimi@gmail.com
Received: by 10.231.31.8 with HTTP; Wed, 5 Jan 2011 00:38:02 -0800 (PST)
In-Reply-To: <8B0A9FCBB9832F43971E38010638454F03F50ED506@SISPE7MB1.commscope.com>
References: <8B0A9FCBB9832F43971E38010638454F03F336538D@SISPE7MB1.commscope.com> <AANLkTi=MzkpVSw5Nvet2GLdaEGFYCKo++eKbZbG5QCj3@mail.gmail.com> <8B0A9FCBB9832F43971E38010638454F03F50ED506@SISPE7MB1.commscope.com>
Date: Wed, 05 Jan 2011 00:38:02 -0800
X-Google-Sender-Auth: E3CCWrX9ABN7PHkyT-u37pPi60c
Message-ID: <AANLkTimvg4A8zB0SH4ZLfbCBN7sFyLCcL5Fwnvzu6iGk@mail.gmail.com>
From: Richard Alimi <rich@velvetsea.net>
To: "Thomson, Martin" <Martin.Thomson@andrew.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: "alto@ietf.org" <alto@ietf.org>
Subject: Re: [alto] Reprise of REST comments
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/alto>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jan 2011 08:35:58 -0000

On Tue, Jan 4, 2011 at 4:39 PM, Thomson, Martin
<Martin.Thomson@andrew.com> wrote:
> Hi Rich,
>
> Regarding complexity, there are some things that are unavoidable.  Essential complexity exists for describing formats, as well as the filtering service (that arises because you are optimizing - one of the most common sources of complexity :)
>

Agreed.  I just meant to point out that I didn't think it would
significantly slim down the document, but it your suggestions do have
their benefits beyond that.

> By re-using existing work, you also gain experience in dealing with known problems rather than having to tackle them for yourself.  The linking work is a good example of that.  As is MIME+conneg for versioning.
>

Agreed.

>> I'm not sure the proposed solution will handle the redistribution case
>> discussed in Section 8.1.1.1 of draft-ietf-alto-protocol-06 (perhaps
>> you can convince me otherwise).  The use case is about retrieving ALTO
>> information from another ALTO Client (not via HTTP).  Since it comes
>> from another, perhaps un-trusted, ALTO Client, the information itself
>> is digitally signed by the original ALTO Service.  The Service ID is
>> simply an identifier for the Service which might be implemented by
>> multiple physical servers without relying on each service being behind
>> a single DNS name.  Perhaps I am missing it, but perhaps you could
>> suggest how making the ALTO Protocol REST-ful might handle this use
>> case as well?
>
> I'm not sure if I'm just not understanding the problem, so let me describe what I think that you are trying to achieve.
>
> The problem is where information travels from Server A to Client A to Client B.  Client B finds that they don't trust Client A to pass the information on faithfully.  You wish to have a way for Client B to validate that the information is correct.  Right?
>

Yes.

> Let's do away with the idea that Server A and Server B have different identities.  Logically, to the clients, there is a single authority that is providing this information.  The resource has a single identity (a URI).
>
> Load sharing and content distribution don't need to play into this.  Any server that is reached by following a URI MUST be authoritative for that resource, whether it be load balanced through DNS, anycast or reverse proxy.  That server can choose to redirect as it chooses without compromising the integrity of the result.
>
> The task then is in determining if a particular representation is faithful for that resource.  You are talking of an optimization that doesn't result in downloading the entire representation all over.
>
> Digital signatures are one way of checking, but there are other options:
>
>  - MD5 is pretty weak by modern standards, but a HEAD request to the URI could produce a Content-MD5 header.
>  - Use a link header (and a HEAD request) to include a link to a digest if MD5 is no good.
>  - Wait for someone else to invent some better HTTP integrity mechanism.  Mark Nottingham is interested in designing something for more general caching applications.
>
> I'm going to advise that the latter is the course you want to follow, perhaps leaving other options open in the meantime.  No point in inheriting more complexity than absolutely necessary.
>

Each of these three options requires the ALTO Client to send a message
to the HTTP server to verify, right?  One of the goals of
redistribution is to allow ALTO Clients to not contact an ALTO Server
at all in the common case. With the existing solution, ALTO Clients
need only download a certificate upon initial contact with the server,
and can then verify ALTO Responses without contacting the server at
all.  http://tools.ietf.org/html/draft-ietf-alto-protocol-06#section-12.4
has some additional discussion on this.

Rich