Re: [lamps] draft-ietf-lamps-samples: PKCS12 expertise needed (including objects for comparison)

Daniel Kahn Gillmor <dkg@fifthhorseman.net> Fri, 06 August 2021 01:04 UTC

Return-Path: <dkg@fifthhorseman.net>
X-Original-To: spasm@ietfa.amsl.com
Delivered-To: spasm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1493D3A14D9 for <spasm@ietfa.amsl.com>; Thu, 5 Aug 2021 18:04:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.307
X-Spam-Level:
X-Spam-Status: No, score=-1.307 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=fifthhorseman.net header.b=nuEaXsHk; dkim=pass (2048-bit key) header.d=fifthhorseman.net header.b=lNsQUJba
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 7d9N2t8M5Qhz for <spasm@ietfa.amsl.com>; Thu, 5 Aug 2021 18:04:09 -0700 (PDT)
Received: from che.mayfirst.org (unknown [162.247.75.117]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2E6E53A14BE for <spasm@ietf.org>; Thu, 5 Aug 2021 18:04:08 -0700 (PDT)
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019; t=1628211847; h=from : to : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=d2CmLGiPM17mFztEoNneibklOWe8Dd7x6T5pRqe51uw=; b=nuEaXsHkT9sATbeILhu4CDcVFqdzhDOOnw4bTXVbKKsaTfBoqjT16ciJZfWzzxlL2KzEv eRDiPuyt6KdjEcoCg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fifthhorseman.net; i=@fifthhorseman.net; q=dns/txt; s=2019rsa; t=1628211847; h=from : to : subject : in-reply-to : references : date : message-id : mime-version : content-type : from; bh=d2CmLGiPM17mFztEoNneibklOWe8Dd7x6T5pRqe51uw=; b=lNsQUJbaRRp04nuOrk4AcL+twcTrcLDw+4bXaw/GdHbBoFPtLPSXjgBLbrf072NgVZCEW 9Qcj/OAVDHrrPFOxpxdz1hY+uCXihctiyN8yLJaMsWsoRtwHz0Lt1qKBeuL5HTeihdEZR+r kP0p0GG+m8AOL6dFVf6DXzGSKm8mezRoutgpCpFpZy6yrv6HnGC8a/v9DbpHGFaJkjmhxJd 4c7xTAuhkhCaqYaxAv/zZPnFd4PQm17SSsnUBP2Ou991mhEukUNGldzmtVoBaAdWEaCBCgn 4K/VsTHIBo/uwYzFygmloM8njgYRRU7Y7Sm4gMAlFReAnylVsJYryuc1GEyg==
Received: from fifthhorseman.net (lair.fifthhorseman.net [108.58.6.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by che.mayfirst.org (Postfix) with ESMTPSA id 55115F9A6 for <spasm@ietf.org>; Thu, 5 Aug 2021 21:04:07 -0400 (EDT)
Received: by fifthhorseman.net (Postfix, from userid 1000) id 1550220436; Thu, 5 Aug 2021 20:50:41 -0400 (EDT)
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: LAMPS WG <spasm@ietf.org>
In-Reply-To: <87a6lw4syd.fsf@fifthhorseman.net>
References: <87czr0ww0d.fsf@fifthhorseman.net> <FF939B28-528B-47F9-9C0C-6585D1B02FBE@vigilsec.com> <87mtq3ukk0.fsf@fifthhorseman.net> <CAErg=HHQMZ1jk+bVxA=MzVvW+9ucie7bu-N6O8Asnp0V8Rf9Bg@mail.gmail.com> <30546.1627850836@localhost> <CAErg=HHKL-E5yT0UnPKcLfMQU41iDg7GGgjsSXs3eRg8daJRkg@mail.gmail.com> <87wnp347iu.fsf@fifthhorseman.net> <1388.1627996026@localhost> <87pmuu42hf.fsf@fifthhorseman.net> <87mtpy3zkl.fsf@fifthhorseman.net> <CAErg=HFvQ=5jN+BoDL-W33iYxHoPULov4TEzqYf9nONbtnANJQ@mail.gmail.com> <87a6lw4syd.fsf@fifthhorseman.net>
Autocrypt: addr=dkg@fifthhorseman.net; prefer-encrypt=mutual; keydata= mDMEX+i03xYJKwYBBAHaRw8BAQdACA4xvL/xI5dHedcnkfViyq84doe8zFRid9jW7CC9XBiI0QQf FgoAgwWCX+i03wWJBZ+mAAMLCQcJEOCS6zpcoQ26RxQAAAAAAB4AIHNhbHRAbm90YXRpb25zLnNl cXVvaWEtcGdwLm9yZ/tr8E9NA10HvcAVlSxnox6z62KXCInWjZaiBIlgX6O5AxUKCAKbAQIeARYh BMKfigwB81402BaqXOCS6zpcoQ26AADZHQD/Zx9nc3N2kj13AUsKMr/7zekBtgfSIGB3hRCU74Su G44A/34Yp6IAkndewLxb1WdRSokycnaCVyrk0nb4imeAYyoPtBc8ZGtnQGZpZnRoaG9yc2VtYW4u bmV0PojRBBMWCgCDBYJf6LTfBYkFn6YAAwsJBwkQ4JLrOlyhDbpHFAAAAAAAHgAgc2FsdEBub3Rh dGlvbnMuc2VxdW9pYS1wZ3Aub3JnL0Gwxvypz2tu1IPG+yu1zPjkiZwpscsitwrVvzN3bbADFQoI ApsBAh4BFiEEwp+KDAHzXjTYFqpc4JLrOlyhDboAAPkXAP0Z29z7jW+YzLzPTQML4EQLMbkHOfU4 +s+ki81Czt0WqgD/SJ8RyrqDCtEP8+E4ZSR01ysKqh+MUAsTaJlzZjehiQ24MwRf6LTfFgkrBgEE AdpHDwEBB0DkKHOW2kmqfAK461+acQ49gc2Z6VoXMChRqobGP0ubb4kBiAQYFgoBOgWCX+i03wWJ BZ+mAAkQ4JLrOlyhDbpHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3Jnfvo+ nHoxDwaLaJD8XZuXiaqBNZtIGXIypF1udBBRoc0CmwICHgG+oAQZFgoAbwWCX+i03wkQPp1xc3He VlxHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnaheiqE7Pfi3Atb3GGTw+ jFcBGOaobgzEJrhEuFpXREEWIQQttUkcnfDcj0MoY88+nXFzcd5WXAAAvrsBAIJ5sBg8Udocv25N stN/zWOiYpnjjvOjVMLH4fV3pWE1AP9T6hzHz7hRnAA8d01vqoxOlQ3O6cb/kFYAjqx3oMXSBhYh BMKfigwB81402BaqXOCS6zpcoQ26AADX7gD/b83VObe14xrNP8xcltRrBZF5OE1rQSPkMNy+eWpk eCwA/1hxiS8ZxL5/elNjXiWuHXEvUGnRoVj745Vl48sZPVYMuDgEX+i03xIKKwYBBAGXVQEFAQEH QIGex1WZbH6xhUBve5mblScGYU+Y8QJOomXH+rr5tMsMAwEICYjJBBgWCgB7BYJf6LTfBYkFn6YA CRDgkus6XKENukcUAAAAAAAeACBzYWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmcEAx9vTD3b J0SXkhvcRcCr6uIDJwic3KFKxkH1m4QW0QKbDAIeARYhBMKfigwB81402BaqXOCS6zpcoQ26AAAX mwD8CWmukxwskU82RZLMk5fm1wCgMB5z8dA50KLw3rgsCykBAKg1w/Y7XpBS3SlXEegIg1K1e6dR fRxL7Z37WZXoH8AH
Date: Thu, 05 Aug 2021 20:50:40 -0400
Message-ID: <87lf5f2y73.fsf@fifthhorseman.net>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha256"; protocol="application/pgp-signature"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/TRnmh_Ig_nKfRQCtQFPDJg30TXU>
Subject: Re: [lamps] draft-ietf-lamps-samples: PKCS12 expertise needed (including objects for comparison)
X-BeenThere: spasm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is a venue for discussion of doing Some Pkix And SMime \(spasm\) work." <spasm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spasm>, <mailto:spasm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spasm/>
List-Post: <mailto:spasm@ietf.org>
List-Help: <mailto:spasm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spasm>, <mailto:spasm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Aug 2021 01:04:14 -0000

I've just published draft-ietf-lamps-samples-05 after figuring out what
i needed to do to make Keychain Access accept the PKCS#12 objects.

The necessary change was to make the PKCS#12 MAC
(https://www.rfc-editor.org/rfc/rfc7292.html#appendix-A) use SHA1
instead of SHA512.

I have no idea why Keychain Access would fail when the MAC is SHA512
instead.  I have not yet experimented with other digests with Keychain
Access.

Before I figured out that this specifically was the issue, i modified
the certficate generation code in GnuTLS to account for all the
divergences i could account for that were *not* due to indefinite
encoding.

This included these two differences:

On Wed 2021-08-04 20:48:42 -0400, Daniel Kahn Gillmor wrote:

>  a) The order of the certificates and encrypted pkcs8 blobs might
>     matter.
>
>  b) The absence of the friendlyName on bob.p12[bag[1]] might matter.

And all the rest here:

 c) the PKCS-8 keys in the original bob.p12 contain a PKCS#8 Provable
    Seed attribute (1.3.6.1.4.1.2312.18.8.1) to indicate their origin,
    but the laundered form does not retain those attributes.

 d) the original bob.p12 file has a separate bag with just the
    certification authority cert in it, whereas bob.laundered.p12 has
    the CA's cert prepended to both EE bags.

 e) embedded PKCS-8 encryption uses different choices for password-based
    key derivation (both use:
     - laundered: 16 octet salt, 600000 iterations
     - bin: 8 octet salt, 5126 iterations

 f) cert bags use different encryption choices:
     - laundered: PKCS12-RC2-40-SHA1 (1.2.840.113549.1.12.1.6),
       16-octet salt and 6000000 iterations
     - bin: PKCS12-3DES-SHA1 (1.2.840.113549.1.12.1.3),
       8-octet salt and 5301 iterations

 g) overall MAC parameters:
     - laundered:  16-octet salt and 600000 iterations;
     - bin:         8-octet salt and 10240 iterations

There is a tremendous amount of multidimensional flexibility in the
PKCS#12 spec, so i thought it might be worthwhile to publicly note all
the different axes of permutation that i considered before landing on
the quirk specific to this particular implementation.

Anyway, i think this particular issue has been resolved for the draft.
I'll follow up in a separate thread about what i think remains for the
WG here.

    --dkg