[openpgp] Re: Signatures with in-band subkeys
Bart Butler <bart+ietf@pm.me> Thu, 22 August 2024 12:29 UTC
Return-Path: <bart+ietf@pm.me>
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 4E295C14F5FA for <openpgp@ietfa.amsl.com>; Thu, 22 Aug 2024 05:29:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=pm.me
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 oD_Pbe5O3g_u for <openpgp@ietfa.amsl.com>; Thu, 22 Aug 2024 05:29:15 -0700 (PDT)
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C3C94C14F5EA for <openpgp@ietf.org>; Thu, 22 Aug 2024 05:29:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1724329753; x=1724588953; bh=XiOi9ACswjhRLnsMOw0nQMglsB+oaZ64EJvoxLs5wWI=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=qrQUnUcyxYgAlbstqsgHfScOa0vwpdXdhyfdFwhN9n7vmSrHMsmklCTPiyfsGDs+q UWpQKgLLMJgSsXu1Em1hBZjXO/eN/J0P3nV+4OEutuZ3D/ghV1ynQ+MxLyna4aLvz7 Lqg1rfOTDzceblSnyUMttMDe0szQXBptz4cuvbkNeylmUGofMqMdCwtevfQc3XuKUb KESBCe6fApU2fLsAw8+oCz0wfNHA8+sBSLzC4YNnylAZkOtQSPSC3FOTem5ObzWlEx bUYf53A4CiUTWzZboumLnxxDb42oS3vb28ZjeocFc9mCV7eHtpanMJcKGuoEysjbHG Z1p1BDQl39IPQ==
Date: Thu, 22 Aug 2024 12:29:05 +0000
To: Julian Andres Klode <jak@debian.org>
From: Bart Butler <bart+ietf@pm.me>
Message-ID: <EIkxLyhtm4p8rZgxBYtunyJYYoIDzRxtzHUYKB12_R_Nv8sD57HngvsdGzcSDhdXrcn3HrtEPezhdRWI2iuJYbJxfKdnVmZxc4_CfoCRDGY=@pm.me>
In-Reply-To: <sskamp4234s7zrz5fvbyysskjlivb3tyouqpp3bij2f5p4zdlq@fjqds4wzf2fr>
References: <sskamp4234s7zrz5fvbyysskjlivb3tyouqpp3bij2f5p4zdlq@fjqds4wzf2fr>
Feedback-ID: 5683226:user:proton
X-Pm-Message-ID: a756e51edb2c1cb0d01d90b090160f050d74615e
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="pgp-sha512"; boundary="------3ac30898130aeb5f2882498361d6636c753b85b6b23eeaf06d2e27eebec3cf71"; charset="utf-8"
Message-ID-Hash: MKT4LJQUDVYZFLMRG2NXBHEVZ57J3FM2
X-Message-ID-Hash: MKT4LJQUDVYZFLMRG2NXBHEVZ57J3FM2
X-MailFrom: bart+ietf@pm.me
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-openpgp.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: openpgp@ietf.org
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [openpgp] Re: Signatures with in-band subkeys
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/cLr_nu3jVDUxwjIzW_Nxg4ZYNO8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Owner: <mailto:openpgp-owner@ietf.org>
List-Post: <mailto:openpgp@ietf.org>
List-Subscribe: <mailto:openpgp-join@ietf.org>
List-Unsubscribe: <mailto:openpgp-leave@ietf.org>
Hi Julian, Sounds interesting, and I see why the online subkey scheme would be attractive to you. I suspect you could also do something like this within OpenPGP out-of-the box. The first and I think nicest way would be to have your trusted master offline signing key as the primary key of your certificate and generate signing subkeys for use online. Your build system would have the signing subkey private key information but not the private key information for the primary certificate signing key. You could ship the public-key only variant of this certificate with your signatures easily, as it's all OpenPGP packet structure, so they can just be serialized together with your signature or data packets if you desire as long as your tooling can pick it up (a solvable problem if it exists I think). If you want to revoke a signing subkey, you can simply ship the subkey revocation with the embedded key, and OpenPGP tooling should persist that revocation as long as the client sees it once. The client trusts the subkeys via the binding signature from the (offline) primary signing key. You can also pre-generate a revocation certificate for the primary key as a sort of break-glass emergency measure and deliver that to clients via your key delivery mechanism as well if you ever worry that the entire chain has been compromised. All this you could get "for free" (read, modulo maybe some tooling work) from existing OpenPGP stuff. This kind of scheme might also be possible using a separate certificate hierarchy and certifications but I think the tooling problems there could be worse and I find it less elegant and more complex. Cheers, Bart Butler On Tuesday, August 20th, 2024 at 12:32 PM, Julian Andres Klode <jak@debian.org> wrote: > > > Hi OpenPGP folks! > > as some of you know I maintain APT, the Debian/Ubuntu package > manager. > > One topic of concern for package management is the ability to > have online signing keys and an offline primary key that they > are chained too, as you want your repositories to work automatically. > > I've been drafting a new signing scheme for APT repositories > a couple years back that hasn't been implemented, so far at > least, we are still using OpenPGP. > > Now one of the ideas there is that instead of having to know > the online subkey a-priori, we instead ship the online subkey > alongside the signature. > > In case your online subkey gets compromised you can just create > a new subkey and sign your data with that and the client trusts > it. > > I also added a generation number: We only trust a new subkey > if its generation is higher. This means that once a client > sees a signature from a new in-band subkey, it won't ever > trust a previous in-band subkey again. > > You can have multiple subkeys with the same generation on > a technical level, which is why I did not call it a serial > number. > > This works reasonably well for the native apt-sign scheme: > > 1. We read the previous signed metadata and get a list of > (primary key id, generation) > 2. We read the new signed metadata and check that the subkeys > in there are >= the generation in the old one > > > Alternative means are to keep the mapping in a global state file. > > I'm curious to hear if this is something of interest to the > OpenPGP community. > -- > debian developer - deb.li/jak | jak-linux.org - free software dev > ubuntu core developer i speak de, en > > _______________________________________________ > openpgp mailing list -- openpgp@ietf.org > To unsubscribe send an email to openpgp-leave@ietf.org
- [openpgp] Signatures with in-band subkeys Julian Andres Klode
- [openpgp] Re: Signatures with in-band subkeys Bart Butler