Re: [TLS] Channel ID and server load: comment on draft-balfanz-tls-channelid-00

Trevor Perrin <> Thu, 24 October 2013 01:40 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E809A11E80DC for <>; Wed, 23 Oct 2013 18:40:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.677
X-Spam-Status: No, score=-2.677 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id WcOaPiIfxKui for <>; Wed, 23 Oct 2013 18:40:55 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 4791F11E81A7 for <>; Wed, 23 Oct 2013 18:40:55 -0700 (PDT)
Received: by with SMTP id n12so1646751wgh.35 for <>; Wed, 23 Oct 2013 18:40:54 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=BmERWkujDo1m0f/tikZ3ZTWDfp0l9IjI0bs5W/R6x48=; b=gtMtnooFFLpFeg6G5Sk4g6mOTohqnkcQo9tJ46EmD/Sw37uk2qjJ8CfZrU3PzWeRZp Ghhr3yg0aYeLZQJo24GsMXsTZ98UwsiStx/8NaD15K+lTpMZm1zXUjomZpeZFMdR2eIG KkLHXAREcD6ZhT+UsTuWHWKJrDVCLsWM76fux1fWUaXyX6mx7if0tQ3d9FWQrruanzuM ccGOW+GDp0Ikh4rTUW4GhJcvKg8uR7RyphEMAg1eMbw3M7Q8PzHTWdLLyZLfj6oEXkg9 IN33P13TmKpqmVpTdkP0UoC2DKwENxTyhn9mBHJviAQBPkoGDCzqeas98zqh1iANxMAp OrGw==
X-Gm-Message-State: ALoCoQkhjXR7HP1O3zK9lSAuP1/GuCls6EiWT8NOAoIICnzvz7EPu2drF7v8RQ2Bpif6ZvecNQBc
MIME-Version: 1.0
X-Received: by with SMTP id z11mr4423824wia.22.1382578854243; Wed, 23 Oct 2013 18:40:54 -0700 (PDT)
Received: by with HTTP; Wed, 23 Oct 2013 18:40:54 -0700 (PDT)
X-Originating-IP: []
In-Reply-To: <>
References: <> <> <> <> <>
Date: Wed, 23 Oct 2013 18:40:54 -0700
Message-ID: <>
From: Trevor Perrin <>
To: Adam Langley <>
Content-Type: text/plain; charset=ISO-8859-1
Cc: "" <>
Subject: Re: [TLS] Channel ID and server load: comment on draft-balfanz-tls-channelid-00
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 24 Oct 2013 01:41:00 -0000

On Wed, Oct 23, 2013 at 8:25 AM, Adam Langley <> wrote:
> On Tue, Oct 22, 2013 at 2:32 PM, Trevor Perrin <> wrote:
>> I do think ChannelID needs to explain the value of storing private
>> keys in a "secure element" further, and why storing ECDSA private keys
>> is better than, say, HMAC keys.
> I agree that HMAC would, of course, be much faster but I believe that
> public/private is needed for some of the higher level capabilities:

For binding cookies to a browser you could get by with symmetric
crypto.  There's proposals from websec on this (eg "Smart Cookies"

For binding a token sent from an IdP to an RP, I wonder if there might
be a symmetric-key analogue to "Proof-key federation":

AIUI, the goals are:
 1) IdP receives some sort of proof that the same browser sharing
channel key Ki with the IdP is also sharing channel key Kr with some
 - IdP signs an assertion that is only useable by a browser with channel key Kr.

"Proof-key federation"/ChannelID achieves this by:
 1) A Javascript API where a browser signs cross-certificates between
the ECDSA keys Ki and Kr
 2) The IdP refers to Kr in its signed assertion

Imagine instead if Ki and Kr were HMAC "cookie keys" associated with
smart cookies between the (browser, IdP) and (browser, RP).  A
javascript API could be used to produce the triple:
  (nonce, HMAC(Ki, nonce), HMAC(Kr, nonce))

The triple would be forwarded to the IdP who would check HMAC(Ki,
nonce), then include the triple in the signed assertion.  The RP would
check HMAC(Kr, nonce).  The assertion is thus only usable to a browser
that know Kr, and is only issued to a browser that knows Ki.

Anyways, dunno if this is better than ChannelID or if I'm missing
something (probably).  But I'd like to see more analysis of why
public-key was chosen for ChannelID, in light of computation costs.