Re: [jose] SPI proposal

Brian Campbell <bcampbell@pingidentity.com> Fri, 08 February 2013 14:22 UTC

Return-Path: <bcampbell@pingidentity.com>
X-Original-To: jose@ietfa.amsl.com
Delivered-To: jose@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 201AF21F8901 for <jose@ietfa.amsl.com>; Fri, 8 Feb 2013 06:22:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.747
X-Spam-Level:
X-Spam-Status: No, score=-6.747 tagged_above=-999 required=5 tests=[AWL=1.229, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, GB_I_LETTER=-2, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GbdAojSpeIqK for <jose@ietfa.amsl.com>; Fri, 8 Feb 2013 06:22:00 -0800 (PST)
Received: from na3sys009aog111.obsmtp.com (na3sys009aog111.obsmtp.com [74.125.149.205]) by ietfa.amsl.com (Postfix) with ESMTP id E107F21F8888 for <jose@ietf.org>; Fri, 8 Feb 2013 06:21:59 -0800 (PST)
Received: from mail-ie0-f198.google.com ([209.85.223.198]) (using TLSv1) by na3sys009aob111.postini.com ([74.125.148.12]) with SMTP ID DSNKURUKBzGjGBOV+T6K/V+U5R3+MTqrcQlo@postini.com; Fri, 08 Feb 2013 06:21:59 PST
Received: by mail-ie0-f198.google.com with SMTP id 17so16343655iea.1 for <jose@ietf.org>; Fri, 08 Feb 2013 06:21:59 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-received:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:x-gm-message-state; bh=3f/hqlVbYRyOuAmtmM/O9i93GyhOW4cJnskhASJ3Qno=; b=QHmFElwiH/2OwbOD1TREVA9Pn28sy9FaCaHPrd/lW1A8f5x+8X8rkrHv1862U4JBV1 TsYoiHWgYaeq2H/tyRGno2dAVQBNFXL8cn2apQcrIG6jjrfYwgfnArFkBXSxCpedEP2j LKis29fXvec0N7i4vcdX6af9EtpnC88a8l0Z8JGajC1jcxq8Rt3cGPEfvAscfrW6/dQE EDVRMZbFjgzC4WS8w42zTFSiW52yAk+ZGboShqSgJg4n+udeEIpgEnCsy0Ah6NM7XHJX EdZAZfb8fw5MboIKPTAj49hHmlFSJSevszQzAMDysCEqZfb3/YqbXxhbmGq8KG6Ho19I 1mgQ==
X-Received: by 10.50.169.106 with SMTP id ad10mr2573020igc.88.1360333319118; Fri, 08 Feb 2013 06:21:59 -0800 (PST)
X-Received: by 10.50.169.106 with SMTP id ad10mr2572996igc.88.1360333318890; Fri, 08 Feb 2013 06:21:58 -0800 (PST)
MIME-Version: 1.0
Received: by 10.64.139.8 with HTTP; Fri, 8 Feb 2013 06:21:28 -0800 (PST)
In-Reply-To: <CAL02cgRvUvf39RyDOStRXZ1Ne6p9gLrAxjtH8kfmdhE4kWG-3w@mail.gmail.com>
References: <CAL02cgSt7w5CrP+DXo7bz_+YsxKsVMoRbZLNWa6EHjnAyScWMg@mail.gmail.com> <CA+k3eCQ_bsTxYq6u5BVe_Xk1ycOhAwWe=ebfAwk+66JavJJQfA@mail.gmail.com> <CAL02cgRvUvf39RyDOStRXZ1Ne6p9gLrAxjtH8kfmdhE4kWG-3w@mail.gmail.com>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Fri, 08 Feb 2013 07:21:28 -0700
Message-ID: <CA+k3eCSgXXit3KbK0XHzbhadyXTOGxvrRBm6ha8XJQhieoY0nQ@mail.gmail.com>
To: Richard Barnes <rlb@ipv.sx>
Content-Type: multipart/alternative; boundary="e89a8f2346bb3fa6f904d537481c"
X-Gm-Message-State: ALoCoQnas5JtidWrroxrGa1Mq/qOWoSfd+vI9OnrTDBIn1LcombpNEyz2tElcU0sZMtfXp/IefpMedpVgtBBJMIi/rw8En1Ib6wrrGzz/RFsYNZt/6RWoMnqld/zfSKi7Rw5sZDooMwZ
Cc: "jose@ietf.org" <jose@ietf.org>
Subject: Re: [jose] SPI proposal
X-BeenThere: jose@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Javascript Object Signing and Encryption <jose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jose>, <mailto:jose-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/jose>
List-Post: <mailto:jose@ietf.org>
List-Help: <mailto:jose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jose>, <mailto:jose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Feb 2013 14:22:01 -0000

Seems to me that, in the absence of more advanced management, the use of
spi is potentially very very fragile. And that, in many cases, such
advanced management would be a lot more trouble than it's worth. But maybe
I'm missing the bigger picture.

My own applications of JOSE are in OpenID and OAuth (and similar) and the
JOSE message is generally sent from one entity to another thought a web
browser user agent as an intermediary. That situation doesn't lend itself
well to use of spi or even easily creating some management protocol around
it.

WRT collision and scoping to sender, I had the same thought but there's
not, AFAIK, a reliable way to identify the sender. No?

Anyway, I get the point of just establishing the basic behavior. But I'd
like to be careful not to inadvertently impose a lot of complexity or
potential operational or security issues when doing so.






On Thu, Feb 7, 2013 at 7:52 AM, Richard Barnes <rlb@ipv.sx> wrote:

> The motivation here is not very deep.  A lot of the current design (e.g.,
> the three-letter names) is focused on reducing header size.  The SPI
> proposal further compresses header size in cases where two entities will be
> exchanging many JOSE objects.  I understood from some discussions with
> OpenID folks that this was often the case for their use cases.
>
> Obviously, you could build a whole management protocol around this stuff
> (cf. IKE for IPsec).  Whatever application is using this would need to
> figure out how to deal with the issues you note, as well as things like
> what happens when an object shows up with an unknown SPI.  (I don't think
> collision is an issue, if you can scope to sender; the sender just ensures
> uniqueness.)  The idea of this basic proposal is to establish the basic
> behavior, around which you could then wrap more advanced management.
>
> --Richard
>
>
> On Thu, Feb 7, 2013 at 9:42 AM, Brian Campbell <bcampbell@pingidentity.com
> > wrote:
>
>> Admittedly I'm not really up on this spi issue or the motivation behind
>> it but a couple questions came to mind when I saw this. How does the
>> receiver protect against unbounded growth of the cache? And index
>> collision? And for distributed environments, it seems supporting this could
>> be very cumbersome.
>>
>>
>>
>>
>>
>>
>>
>>
>> On Wed, Feb 6, 2013 at 3:11 PM, Richard Barnes <rlb@ipv.sx> wrote:
>>
>>> To move us toward closing Issue #9 [9], here is some proposed text for
>>> an SPI [1] field.  To recall, SPI stands for "security parameters index",
>>> borrowing a term from IPsec.  The idea is that in cases where the same
>>> crypto parameters are being used repeatedly, this would save the parties
>>> from having to re-send the same parameters.
>>>
>>> The below text is designed for the JWE spec, but could be adapted for
>>> JWS (just keep header, ignore part about key/iv).  Similar text is probably
>>> needed for the encryption/decryption/signing/verification sections.
>>>
>>> Feedback welcome,
>>> --Richard
>>>
>>> -----BEGIN-----
>>> Section 4.1.X. "spi" Header Parameter
>>>
>>> The "spi" (Security Parameters Index) header parameter contains an
>>> opaque byte string that labels a set of security parameters.  This index is
>>> designed to enable the use of smaller headers in cases where entities will
>>> be re-using the same security parameters for several messages.
>>>
>>> Entities supporting the use of the "spi" parameter MUST maintain a table
>>> of cached security parameters.  When an entity receives an object whose
>>> header contains both "spi" and "alg" values, then it MUST cache the
>>> following values from the JWE, indexed by the "spi" value:
>>> -- Contents of the JWE header
>>> -- Encrypted Key
>>> -- Initialization Vector
>>>
>>> If an object containing an "spi" parameter but no "alg" parameter, then
>>> it MUST NOT contain an Encrypted Key or Initialization Vector.  That is, it
>>> will have the form "header.ciphertext.integrity_value".  When a recipient
>>> receives such an object, it uses the "spi" value to retrieve cached header,
>>> key, and initialization vector and reconstructs a full JWE.  This full JWE
>>> can then be further processed according to the normal JWE processing rules.
>>>  If the recipient has no cached parameters for the "spi" value, the process
>>> MUST fail.
>>> -----END-----
>>>
>>>
>>> [9] http://tools.ietf.org/wg/jose/trac/ticket/9
>>>
>>> _______________________________________________
>>> jose mailing list
>>> jose@ietf.org
>>> https://www.ietf.org/mailman/listinfo/jose
>>>
>>>
>>
>