Re: Digests, signatures and chunk extensions

Lucas Pardue <lucaspardue.24.7@gmail.com> Thu, 01 December 2022 16:21 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9342EC14CE20 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 1 Dec 2022 08:21:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.746
X-Spam-Level:
X-Spam-Status: No, score=-2.746 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=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 llpMVTfGr9-6 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 1 Dec 2022 08:20:57 -0800 (PST)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BBCCCC14CF14 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 1 Dec 2022 08:20:57 -0800 (PST)
Received: from lists by lyra.w3.org with local (Exim 4.94.2) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1p0mIm-0066lZ-5n for ietf-http-wg-dist@listhub.w3.org; Thu, 01 Dec 2022 16:20:44 +0000
Resent-Date: Thu, 01 Dec 2022 16:20:44 +0000
Resent-Message-Id: <E1p0mIm-0066lZ-5n@lyra.w3.org>
Received: from titan.w3.org ([128.30.52.76]) by lyra.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <lucaspardue.24.7@gmail.com>) id 1p0mIl-0066k0-3M for ietf-http-wg@listhub.w3.org; Thu, 01 Dec 2022 16:20:43 +0000
Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by titan.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <lucaspardue.24.7@gmail.com>) id 1p0mIj-003OwW-LO for ietf-http-wg@w3.org; Thu, 01 Dec 2022 16:20:42 +0000
Received: by mail-ot1-x32e.google.com with SMTP id g51-20020a9d12b6000000b0066dbea0d203so1262989otg.6 for <ietf-http-wg@w3.org>; Thu, 01 Dec 2022 08:20:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=OLU9Q+Gp+zmtbFbrPeh9kE5R54GONW99tX0p475yIAs=; b=a5LWQx4jSGUDNJnXxGrjUSqumXJOQ8Mwa/NKkMOlnqgsQWrlsR7+fQ/PpFLRrefEQL L6u9LllmWJP4vIq1D37DoQ/11W5aGfd9TO2noLNptD7g5wXrwP5RAeQ4tHdHvR5S3dVw QdVxsomMahy3WGL5+H0X1sqQEoJQ0m7zHirhE+7+/2OK7WhrjnHOpRP1pRY1kmTKHxs9 H17QenKAmSPFYonzmXYUm8p2EmPzlEFafBmoXc+zMpGoWDE/GYtr5oS0UNSME1n09P3P 2qaNPSHlBkM0FrWpzSigRNPzCC+oInomRZ9YF/l5zYAWIXaNJoJliKlR/J8z8pRe2QxR WiVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=OLU9Q+Gp+zmtbFbrPeh9kE5R54GONW99tX0p475yIAs=; b=eGqL8SN8n7c9Q7NiiiUjFN8ZPQv0aCtGIHLSXbvVbO0oESAmnoKxtgVtGcRoOtnYLN jI6eLU2aeGQM/Lv4pS96cQkssT8GHSK5YX26+6awqm6eTpxPrkGawE2uAecvAZmYXzFm p007+O5XbBgF2tXGblv5a6cwvT3oWBcBxuwy2uFPyPIkf1drKYqchHg3wDQuRjk4epyd V9GqBrYfBFS6V8+4m8mVFVb/13rZNqU3XgRCFn87iG3GjMpyxKVZsgMXDBysp2ssSJy/ hMdSFVk6SNJ7Qc8exCtkT6qHwYkBItt6h4q5PpszEt01idaLeoyqil5K8cJ6VJf7/Yfy nkGQ==
X-Gm-Message-State: ANoB5pn4gmnnjK9Alch9aMFJxu0agsoZWRAcOAaH6M6lxYM53s8tjRFP pQZhBN9jgxj+VrPgk9wATf9ZUD70eubmyJBXu9nDzjCznAc=
X-Google-Smtp-Source: AA0mqf5kM2BOITy6krT/k28Aexa0PVV6VTGPIhVuqEkHjKEcBy2IKxvh1rOBmvvA3fMm/5mOLYtpje7N8uMpjoHd3bI=
X-Received: by 2002:a05:6830:22ea:b0:66e:2a69:c510 with SMTP id t10-20020a05683022ea00b0066e2a69c510mr16865307otc.344.1669911630116; Thu, 01 Dec 2022 08:20:30 -0800 (PST)
MIME-Version: 1.0
References: <cfacd6ca-4a9d-5df7-4d48-1925b503bc8c@rd.bbc.co.uk>
In-Reply-To: <cfacd6ca-4a9d-5df7-4d48-1925b503bc8c@rd.bbc.co.uk>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Thu, 01 Dec 2022 16:20:19 +0000
Message-ID: <CALGR9ob8u3FwUuZZs+f=wdmWXTB4qzN_d2W7rYOc_pG_-n3eJQ@mail.gmail.com>
To: Samuel Hurst <samuelh@rd.bbc.co.uk>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="00000000000084fd5c05eec69945"
Received-SPF: pass client-ip=2607:f8b0:4864:20::32e; envelope-from=lucaspardue.24.7@gmail.com; helo=mail-ot1-x32e.google.com
X-W3C-Hub-DKIM-Status: validation passed: (address=lucaspardue.24.7@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-4.8
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1p0mIj-003OwW-LO 41503c628985dfd4e6eda8c6ae445e2a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Digests, signatures and chunk extensions
Archived-At: <https://www.w3.org/mid/CALGR9ob8u3FwUuZZs+f=wdmWXTB4qzN_d2W7rYOc_pG_-n3eJQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/40589
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hiya Sam,



On Thu, Dec 1, 2022 at 4:07 PM Samuel Hurst <samuelh@rd.bbc.co.uk> wrote:

> Hello HTTPWG,
>
> I have a somewhat prickly question pertaining to something that I found in
> HTTP/1.1, around chunk extensions [1]. Specifically, where it mentions
> supplying per-chunk metadata "*such as a signature or hash*". However,
> upon reading the Digest [2] and Message Signatures [3] draft, they don't
> seem to cover specifying a chunk extension to add the hashes and signatures
> on a per-chunk basis. I've been doing some digging, but I've not been able
> to find anywhere that a chunk extension for presenting hashes and
> signatures for each chunk is specified, so is this somewhere else that I
> haven't been able to find yet?
>
> The specific use-case which I've been tasked with figuring out is related
> to low-latency MPEG-DASH streaming, where you have media segments
> containing several CMAF chunks that can be decoded without receiving the
> full media segment. Each CMAF chunk gets sent the moment it is complete,
> possibly shaving a good few seconds off your distribution latency.
> Therefore, you don't have the whole object to perform a digest on when you
> start it, and therefore no digest or signature in the headers. Fine, you
> can just put it in a trailer, or so I thought.
>
> However, if an intermediary or decoding client has to wait for the trailer
> section to come in to verify the integrity and authenticity of the
> representation that it has received, it rather defeats the goals of low
> latency streaming as you have to wait for the whole representation, so you
> may as well just stick it in the regular header and not push per-CMAF
> chunks. Therefore, being able to present a digest or signature on each of
> those chunks would be highly beneficial.
>
> Doing this in HTTP/1.1 seems easier if it can be done with the
> aforementioned chunk extensions. I'm at a total loss of how you'd do this
> in H2 or H3, so I welcome any advice there.
>
> Best Regards,
> -Sam
>

This sounds like something that the MICE (Merkle Integrity Content
Encoding( draft [1] might help you solve?

Cheers,
Lucas

[1] - https://datatracker.ietf.org/doc/draft-thomson-http-mice/