Re: [openpgp] A more modest proposal for domain separation

Wiktor Kwapisiewicz <wiktor@metacode.biz> Tue, 20 December 2022 13:36 UTC

Return-Path: <wiktor@metacode.biz>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 97FF9C14F74B for <openpgp@ietfa.amsl.com>; Tue, 20 Dec 2022 05:36:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.797
X-Spam-Level:
X-Spam-Status: No, score=-2.797 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, RCVD_IN_DNSWL_LOW=-0.7, 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 (1024-bit key) header.d=metacode.biz
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 7LfmqCdxSYkD for <openpgp@ietfa.amsl.com>; Tue, 20 Dec 2022 05:36:55 -0800 (PST)
Received: from out2.migadu.com (out2.migadu.com [IPv6:2001:41d0:2:aacc::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 F40D4C14F737 for <openpgp@ietf.org>; Tue, 20 Dec 2022 05:36:54 -0800 (PST)
Message-ID: <fb8c65a6-31bb-a80f-65b3-3291edd3b4a8@metacode.biz>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=metacode.biz; s=key1; t=1671543411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FrV7nRZUFYQw2IrLdyFE9uDxMcvZ5oFdhGdjEV8N8E8=; b=jR/I8P5Burz8QokYDMGO3jecHIzhgZjHAp8DE99bwgEmgT51eQyXdCxfeFV9M2IeM0KKtU nLseytQvWPrvK/mnUqgTUrywJnY4WfKFtyxWnybZwQ8B4rA95oaalvQvpRVUX0NS3J9Kzy VtjvT4vSiCh5micVn8eTTFTGfJ3RZTM=
Date: Tue, 20 Dec 2022 14:36:44 +0100
MIME-Version: 1.0
Content-Language: en-US, pl-PL
To: openpgp@ietf.org
References: <cCT3O7uQdqfhdXuZDRQAh9OXdoMUcMgy0Bw9yos8HYgTwYGhcL1HfJBbaCI6Omx3hCfNA0GiM3H12njyoDa-LnXoHctsbvT0XfMYvBC07LE=@protonmail.com>
X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers.
From: Wiktor Kwapisiewicz <wiktor@metacode.biz>
Organization: Metacode
In-Reply-To: <cCT3O7uQdqfhdXuZDRQAh9OXdoMUcMgy0Bw9yos8HYgTwYGhcL1HfJBbaCI6Omx3hCfNA0GiM3H12njyoDa-LnXoHctsbvT0XfMYvBC07LE=@protonmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Migadu-Flow: FLOW_OUT
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/Gf81F6aNXbHLMfZ4VTAaCf5eKIQ>
Subject: Re: [openpgp] A more modest proposal for domain separation
X-BeenThere: openpgp@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/openpgp>, <mailto:openpgp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp/>
List-Post: <mailto:openpgp@ietf.org>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/openpgp>, <mailto:openpgp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Dec 2022 13:36:59 -0000

Hi Daniel,

On 24.11.2022 16:54, Daniel Huigens wrote:
> This is particularly important if the application wants to subsequently
> process the message in some way which is potentially security-sensitive.
> For example, imagine a backup system that encrypts backed-up files with
> your existing keyring, and stores the backup on an external (untrusted)
> server. It would be bad if that server could take an email you sent or
> received and insert it into a backup, if it would later get restored and
> written to disk, e.g. in a location where it would/could be executed.

I agree that having separation here is a good thing and I've seen that 
in other contexts, e.g. signing commits, signing tags. Actually I think 
I remember an issue where signed git pushes "git push --signed" could be 
abused to sign arbitrary data and as such have been modified to contain 
seeds etc [0].

For me it seems the problem is not having something like Extended Key 
Usage [1] for subkeys so that their usage can be further restricted 
(e.g. "signing, but only commits for openpgp.js", "signing but only 
e-mails").

Why does the subkey need to be restricted and not the signature that is 
produced by the subkey? Since usually the signing API (e.g. hardware 
token) only sees a digest that is signed and cannot "check" what is 
being signed.

This would avoid the "Name (Code Signing)" certificates since one could 
use their usual certificate and just designate one of their subkeys for 
code signing and even store that on a separate token.

I'm aware that your primary use case - e-mail - doesn't overlap mine 
completely but I'm convinced that it is possible to find a good enough 
solution for both cases :)

Kind regards,
Wiktor

[0]: https://people.kernel.org/monsieuricon/signed-git-pushes

[1]: https://ldapwiki.com/wiki/ExtendedKeyUsage