[Wimse] Re: WIMSE Document Work
Andrii Deinega <andrii.deinega@gmail.com> Mon, 06 May 2024 19:43 UTC
Return-Path: <andrii.deinega@gmail.com>
X-Original-To: wimse@ietfa.amsl.com
Delivered-To: wimse@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 44AA0C14F618 for <wimse@ietfa.amsl.com>; Mon, 6 May 2024 12:43:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.094
X-Spam-Level:
X-Spam-Status: No, score=-7.094 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VNRXR9YzP525 for <wimse@ietfa.amsl.com>; Mon, 6 May 2024 12:43:22 -0700 (PDT)
Received: from mail-il1-x12e.google.com (mail-il1-x12e.google.com [IPv6:2607:f8b0:4864:20::12e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 121ECC14F5E8 for <wimse@ietf.org>; Mon, 6 May 2024 12:43:22 -0700 (PDT)
Received: by mail-il1-x12e.google.com with SMTP id e9e14a558f8ab-36c8a1dbec5so8849625ab.1 for <wimse@ietf.org>; Mon, 06 May 2024 12:43:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715024601; x=1715629401; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=RKa6J29qZrBmvK91f489YxlA5DpT+Oj4W1C9gB7XPvI=; b=cGRC/aIFXYJ39funDVdMzpT1PNrVPYKp0h8zfHJd+nNJtXhKqjga8TzMojok9J/UVV O0UrVMoqxlXSPxYVeNgK+vk7RQIVmBXkcNUhUdtXudQDVRwh9D+ZfTDPc4Yh4sK4GYLm JO9Ctv6jHlAMK+dX/wxVObN7Z2Lsf9lh3NPq5V23GpMRZLUQd+QbQGnAAmg67VIUq5Bf ZvF8SgIALv2WwFSJ0DtIcdHfp/amahLQKrqBWzNoVKeZqc50ZJ/8z1Dx3K6TRLK35IW0 Gfs+PqgybeDIoxJGZ1ZQ3YBeUDE7qmh0lni4epO1sKVYgfYYVZZg7xObM9hwld6dbQW2 W5sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715024601; x=1715629401; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=RKa6J29qZrBmvK91f489YxlA5DpT+Oj4W1C9gB7XPvI=; b=o6rTQDvvKQbXk2F0fiz78qAydYm4tIWzAYhsBGlop7f+uu27FktSqcOX3hB9ZsJxJq UDl/ETEes5AVlvjvYh+fKf15gJQCqs1CN3AnEPNUAs2voR96obWb5zoNyhwOQsIor9X6 Pv8EQr4+uz0885NHrQ/SH4eNKKEYjcvB9A+ropMKv0ma/8glO6J0d5h4lJqPchjzkjyn h18rN+Nrz3lOuUeLxCUT1dRkdNL/uSR2pwcbHwTxo3f931cs9/OUU5RWQ6vmuh3iWoDe yKCX2k6cF+N95whu9FTY/OkercDaIed6578kn4e+j3KHSTjvoI2es6QZkKswzbwEaZn1 QY9Q==
X-Gm-Message-State: AOJu0YxDHH2vhwJ09QHPQ79YoONJhRgpcrfrFztDFZ7vd/N3FW0GtJuC kSfVoMJc5hDztskPkOR3cOsR6NfIGCnjUhgs3y5FIsI3+WVcOmf/s4xE4Txwnv9d1saa5ujL0xj mApbiifHKC0RcO9V51PuN7WODTxo=
X-Google-Smtp-Source: AGHT+IFmYMMXhnj/mc+JPCsDTe0ucOmZEBOAxNMlfnWrh5zwdFO/zVpO1q5Y5eEkVlMRxUnkAv5cWnLJrMgWzySZZ3Y=
X-Received: by 2002:a05:6e02:219c:b0:36c:37c1:c72c with SMTP id j28-20020a056e02219c00b0036c37c1c72cmr16466685ila.6.1715024600997; Mon, 06 May 2024 12:43:20 -0700 (PDT)
MIME-Version: 1.0
References: <B4DFEEDA-DB6D-4D2E-9D23-24BEDDF2A965@mit.edu> <CALkShcukPzCrfjrDjEXg-O6MipJdy2_iTxv2y7EV=sEZM4fmUg@mail.gmail.com> <1CB68885-A38B-4BB3-9C08-5707F331BC89@mit.edu>
In-Reply-To: <1CB68885-A38B-4BB3-9C08-5707F331BC89@mit.edu>
From: Andrii Deinega <andrii.deinega@gmail.com>
Date: Mon, 06 May 2024 12:43:10 -0700
Message-ID: <CALkShcvLsHfN=YF6k=iMASQbfN4XFFxccAY2EvZdJ_hEu+6Anw@mail.gmail.com>
To: Justin Richer <jricher@mit.edu>, Hannes Tschofenig <hannes.tschofenig@gmx.net>
Content-Type: multipart/alternative; boundary="0000000000001fab510617ce4807"
Message-ID-Hash: PR5NOIIDRRN2EO6NRHC53FZQQASAE4EG
X-Message-ID-Hash: PR5NOIIDRRN2EO6NRHC53FZQQASAE4EG
X-MailFrom: andrii.deinega@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "wimse@ietf.org" <wimse@ietf.org>
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [Wimse] Re: WIMSE Document Work
List-Id: WIMSE Workload Identity in Multi-Service Environment <wimse.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/wimse/HeF1jAzR6p1BPT_jx_6MuLN7WM0>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wimse>
List-Help: <mailto:wimse-request@ietf.org?subject=help>
List-Owner: <mailto:wimse-owner@ietf.org>
List-Post: <mailto:wimse@ietf.org>
List-Subscribe: <mailto:wimse-join@ietf.org>
List-Unsubscribe: <mailto:wimse-leave@ietf.org>
Thank you, Justin and Hannes. So just to share some of my thoughts on draft-ietf-wimse-workload-identity-bcp-00 in an almost random order. This document is well-written, and has provided plenty of food for thought for me (that would be the very first one). One might not want to rely on Kubernetes (or any other executor for workloads) as an issuer of tokens if he/she does not have full control over it, or does not have full visibility of what happens in it (let's say a Kubernetes cluster managed by one or another Cloud provider). That makes a big difference with any system that implements SPIFFE (or something conceptually similar), in which your own service issues tokens based on attestation of a workload itself + what "runs" the workload (these ATs later serve as the credentials for OAuth clients), etc. SA ATs from Kubernetes provide a few additional security related properties. The first one is that each instance of a workload gets its own ATs and that gives us a way better visibility from many angles 1. an AS sees which particular instance "calls" it when a workload consists of many instances (visibility is a way better than what you normally get say with client_secret). In addition to that, it's always possible to inject additional useful information as clams. 2. when a token gets stolen or lost, you get better chances to see who actually lost or leaked it. Then, moving forward, Kubernetes as many of its flavors have a concept of so called pod bound tokens, what that means is that when a pod dies, an AT associated with it gets invalidated immediately. This functionality has some limitations though, it's available for those who use its TokenReview API <https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-review-v1/> but that's still something nice to have in the security toolbox. It's a bit hard to use SA ATs when a workload is spread among a number of Kubernetes clusters, you'll need to end up with a quite sophisticated logic to validate tokens from all the clusters, and you also need to ensure your JOSE & JWT library can properly handle multiple JWKS URLs. I dare to say that client_assertion alone wouldn't be the best fit due to the all the differences between a SA AT from Kubernetes and regular "client_assertion" per RFC 7523 <https://datatracker.ietf.org/doc/html/rfc7523> or https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication, and what we can is to call it as "workload_assertion" and/or define a new dedicated type for "client_assertion_type" (I mean in additional to existing urn:ietf:params:oauth:client-assertion-type:jwt-bearer"). I also believe that the audience claim for an SA AT from Kubernetes should include both a URL to AS and client_id as a countermeasure from abuse and any mistakes. I tend to think it's impossible to have the same name for client_id and the service account in Kubernetes in most cases. One of main reasons for that is that "client_id" is public and visible for all when you use the authorization_code flow (one might not want to expose this info), and another reason is that all the differences we have to deal with the name conventions & constraints (Kubernetes as a bright example, requires you to provide a service name as lowercase RFC 1123 subdomain with lower case alphanumeric characters). All the best, Andrii On Mon, May 6, 2024 at 9:29 AM Justin Richer <jricher@mit.edu> wrote: > Hi Andrii, > > The repository has been initialized, and the editors are importing the > existing text now. Importantly, the issue tracker is now available: > https://github.com/ietf-wg-wimse/draft-ietf-wimse-workload-identity-bcp/issues > > > > — Justin > > On May 3, 2024, at 3:25 PM, Andrii Deinega <andrii.deinega@gmail.com> > wrote: > > Hi Justin, > > Where is the home for > https://datatracker.ietf.org/doc/draft-ietf-wimse-workload-identity-bcp? > > It belongs to https://github.com/ietf-wg-wimse/, that is right? If > so... it should be > https://github.com/ietf-wg-wimse/draft-ietf-wimse-workload-identity-bcp > but it's still empty. > > I did quite an extensive research on this matter, and as an outcome of > it, got some suggestions, concerns + questions, etc. > > Thank you. > > All the best, > Andrii > > On Fri, May 3, 2024 at 10:30 AM Justin Richer <jricher@mit.edu> wrote: > > > Hi WIMSE WG, > > While the design teams are cranking away at their assignments, the chairs > just wanted to remind everyone that we’ve also got a few other items > floating around for your consideration and attention. > > First, the WIMSE Architecture draft has been imported into the group’s > GitHub repository, and you can find the source and issue tracker for that > here: https://github.com/ietf-wg-wimse/draft-ietf-wimse-arch > > Please read, comment, file issues, and all that. The current editors copy > shows up here: > https://ietf-wg-wimse.github.io/draft-ietf-wimse-arch/draft-ietf-wimse-arch.html > and you can view all other branches for PRs and the like at the root page > here: https://ietf-wg-wimse.github.io/draft-ietf-wimse-arch/ > > > Additionally, there’s been one I-D submitted in the last few weeks that we > wanted to make sure everyone saw it. This is not a WG document but was sent > to the list in another thread, so we wanted to make sure it wasn’t missed > by those who might want to read it and comment on it: > https://datatracker.ietf.org/doc/draft-liu-wimse-secure-service-to-service-traffic/ > > Thanks everyone, and looking forward to seeing you all in a few weeks at > the interim! > > — Justin > > -- > Wimse mailing list > Wimse@ietf.org > https://www.ietf.org/mailman/listinfo/wimse > > >
- [Wimse] WIMSE Document Work Justin Richer
- Re: [Wimse] WIMSE Document Work Andrii Deinega
- Re: [Wimse] WIMSE Document Work Justin Richer
- Re: [Wimse] WIMSE Document Work Hannes Tschofenig
- [Wimse] Re: WIMSE Document Work Justin Richer
- [Wimse] Re: WIMSE Document Work Andrii Deinega