Re: [Unbearable] Comments on draft-campbell-tokbind-tls-term

Piotr Sikora <piotrsikora@google.com> Thu, 30 March 2017 02:49 UTC

Return-Path: <piotrsikora@google.com>
X-Original-To: unbearable@ietfa.amsl.com
Delivered-To: unbearable@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0E5312949F for <unbearable@ietfa.amsl.com>; Wed, 29 Mar 2017 19:49:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level:
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yQIaF_0gi6lo for <unbearable@ietfa.amsl.com>; Wed, 29 Mar 2017 19:49:28 -0700 (PDT)
Received: from mail-wr0-x230.google.com (mail-wr0-x230.google.com [IPv6:2a00:1450:400c:c0c::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C965412947F for <unbearable@ietf.org>; Wed, 29 Mar 2017 19:49:27 -0700 (PDT)
Received: by mail-wr0-x230.google.com with SMTP id w11so39565639wrc.3 for <unbearable@ietf.org>; Wed, 29 Mar 2017 19:49:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=jaGOXobFcxulx2vhMtDkiYbzk/cdqCRcpD2o7i2L/Ls=; b=Rxiy6N9vT7HqzTJ2JZq7s0w7R0kFAZec4tkFiPWNM/1LgOwvdLfduXseaAh9CzK2v2 dcgHM4f5kwWulcUkB9fB76CXhUp4lYtA9hklfUiuasEs3kob2PAF4ZjSN483T1rEf9EH geQydZ0OasNeswKl0nZNMVeYOTpqezvXfNLcBiNemhl1LWzm18hzs0y71CKgcVduK4Ot Y7+j/8WLK06eChQu+NW4w/MdM6o0beZM6jpFahUiKWUe1uwrIL4w2nYrA9c1xiH9rNGn NLKi2AIJ5lwvrf9hyZKX1QhTFOSJUMldwrZPui/meoQP19Gqeml7iBnHvsSBGV6iCLm9 FyoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=jaGOXobFcxulx2vhMtDkiYbzk/cdqCRcpD2o7i2L/Ls=; b=mKBz2JtFFt+zCXBvamhY4JhFAhHz5+eH8WiBjqdyf41SNl5ev4yctC1s0BoVU3RxrS o1pIijRSvcQMNMeqE5WzxP/tQmPIqjVoSWpUxPpgfGdJcCxVunDN/uCO8u9ac7vQCAkL m2pEzJ+y/u3c4dLG+2bl1mKz3UOO7xRMV2rUAJAGD5xDsF20kS92Ht4QzXCyrZ2WWDdq cnVXajYKYFWJ0E7EyZhIjUXsj5fWVKeI4DYGb7s3Yb57ZlcMv8XDXi6hPqFrhW8gbWRM vm2mTSN80SS+K41xb6f8BYbO6bsY91yGECW0inZfdpzXX3BSeogHWKe01ttVF1o1vGt/ fEGg==
X-Gm-Message-State: AFeK/H1eNqkb2B+SGwFHV3/OXUUryJDrNnsz6UAB7BgQmOV7OKW8N2TrC2/lDih3yXzCe8W76luAN4byPLolTl57
X-Received: by 10.28.225.69 with SMTP id y66mr1167629wmg.84.1490842166202; Wed, 29 Mar 2017 19:49:26 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.28.168.85 with HTTP; Wed, 29 Mar 2017 19:49:25 -0700 (PDT)
In-Reply-To: <CA+k3eCS7-Fge7ZjjjXBECQHS599i6BjJfiafNQXq_6gOsd7uRQ@mail.gmail.com>
References: <CAF-CG++MXAgE+E93fRLrOM2pgeTaqXGmbV6-ORXLAzEEq9qdYA@mail.gmail.com> <CA+k3eCS7-Fge7ZjjjXBECQHS599i6BjJfiafNQXq_6gOsd7uRQ@mail.gmail.com>
From: Piotr Sikora <piotrsikora@google.com>
Date: Wed, 29 Mar 2017 21:49:25 -0500
Message-ID: <CAF-CG++kaX6av4PY4S=RLFYGaSDRgM2-eEEQ8aXCzH7PehQi1Q@mail.gmail.com>
To: Brian Campbell <bcampbell@pingidentity.com>
Cc: Tokbind WG <unbearable@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/unbearable/n4RHPmpY0Urrw9TZyf1koTbua_M>
Subject: Re: [Unbearable] Comments on draft-campbell-tokbind-tls-term
X-BeenThere: unbearable@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "\"This list is for discussion of proposals for doing better than bearer tokens \(e.g. HTTP cookies, OAuth tokens etc.\) for web applications. The specific goal is chartering a WG focused on preventing security token export and replay attacks.\"" <unbearable.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/unbearable>, <mailto:unbearable-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/unbearable/>
List-Post: <mailto:unbearable@ietf.org>
List-Help: <mailto:unbearable-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/unbearable>, <mailto:unbearable-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Mar 2017 02:49:31 -0000

Hey Brian,

> I hope to discuss much of this stuff in more detail tomorrow from 9am-10am
> in Lugano during the ad hoc meeting I requested/announced on the list at
> https://www.ietf.org/mail-archive/web/unbearable/current/msg01338.html. Feel
> free to join the discussion, if you are still in Chicago and available.

I'll do my best to be there.

> The intended value of this approach is to keep the reverse proxy as light as
> possible.

But why? What's the gain of removing that from a proxy that already
terminates TLS?

Also, keep in mind that it's the proxy that negotiates Token Binding
key parameters using crypto algorithms at its disposal. It's not
unlikely that it would negotiate key parameters that backend server
doesn't support, leading to a scenario where Token Binding was
negotiated at the TLS layer, but backend server was unable to verify
Token Binding Message.

> The server as a logical entity must validate the Token Binding Message. But
> that doesn't mean the front end necessarily has to do it. The approach in
> this -00 document enables a back end component of the server as a whole to
> do the Token Binding Message validation. But the server as a logical entity
> is still validating the TB message.

I think it would be irresponsible for a proxy to pass not validated
Token Binding Message to the backend.

> That's true. But I think it is okay because establishing Token Binding
> between infrastructure components under the same operational control doesn't
> really add much value. Token Binding is good for the logical endpoints of
> the client and server in a connection.

Why do you assume that reverse proxy and backend servers are part of
the same organization? What about CDNs and Cloud Load Balancers? While
I cannot think of an obvious use case for Token Binding with those, I
don't think we should exclude it.

> Treating the different components of the server as a single logical entity
> with respect to Token Binding does allow LS between reverse proxy and
> backend server.

But it gets quite ugly, since backend server receives
"Sec-Token-Binding" HTTP header over a TLS connection that _didn't_
negotiate Token Binding extension. AFAIK, the core spec requires
bindings to be dropped in such case.

Best regards,
Piotr Sikora