Re: [lamps] On the need for standardization of software-based interoperable private keys [was: Re: draft-ietf-lamps-samples: PKCS12 expertise needed (including objects for comparison)]

Michael Richardson <mcr+ietf@sandelman.ca> Thu, 05 August 2021 15:24 UTC

Return-Path: <mcr+ietf@sandelman.ca>
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 5BE0A3A1624 for <spasm@ietfa.amsl.com>; Thu, 5 Aug 2021 08:24:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 Hf0l5b2_chzP for <spasm@ietfa.amsl.com>; Thu, 5 Aug 2021 08:23:56 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7834F3A1678 for <spasm@ietf.org>; Thu, 5 Aug 2021 08:23:53 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by tuna.sandelman.ca (Postfix) with ESMTP id C901E389B5 for <spasm@ietf.org>; Thu, 5 Aug 2021 11:28:10 -0400 (EDT)
Received: from tuna.sandelman.ca ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Gm0ICiefyJfJ for <spasm@ietf.org>; Thu, 5 Aug 2021 11:28:05 -0400 (EDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id 933D1389D2 for <spasm@ietf.org>; Thu, 5 Aug 2021 11:28:05 -0400 (EDT)
Received: from [IPv6:::1] (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id 274A1264 for <spasm@ietf.org>; Thu, 5 Aug 2021 11:23:46 -0400 (EDT)
To: spasm@ietf.org
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> <20862.1628113377@localhost> <656985A5-BED4-4BA8-9233-B3C93966016C@ll.mit.edu> <877dh03x35.fsf@fifthhorseman.net>
From: Michael Richardson <mcr+ietf@sandelman.ca>
Message-ID: <69d8d53b-d55f-bbe4-076b-3c9db12a9ba9@sandelman.ca>
Date: Thu, 05 Aug 2021 11:23:46 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0
MIME-Version: 1.0
In-Reply-To: <877dh03x35.fsf@fifthhorseman.net>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/wwopXX8QKChFc_HurkxXJdisSnQ>
Subject: Re: [lamps] On the need for standardization of software-based interoperable private keys [was: Re: 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: Thu, 05 Aug 2021 15:24:02 -0000

On 2021-08-05 8:17 a.m., Daniel Kahn Gillmor wrote:
> On 8/4/21, 17:44, Michael Richardson wrote:
>>      I would be happy if pkcs12 just died.
> 
> On Wed 2021-08-04 22:28:17 +0000, Blumenthal, Uri - 0553 - MITLL wrote:
>> - PKCS#12 cannot "just die" because there's a ton of software that cannot import private keys, unless they're in .p12 or such.
>> - I concur that interoperation for private keys is nonsense.
> 
> I think i understand the sentiment about wanting PKCS#12 to die, given
> what a disaster the implementations are and how poorly we collectively
> understand the format.
> 
> However, i don't understand how interoperation for private keys is
> nonsense.

+1

> Many people with e-mail accounts use multiple mail user agents to access
> the same account (e.g. one MUA on their phone, another on a laptop).  If
> those accounts are supposed to be able to use end-to-end secure
> communication then at least one of them needs to be able to export its
> private key material and the other needs to be able to import it.

Also, keys might get backed up differently from the rest of "C:",
(I've printed them to QRcode for instance), and when the disk is 
restored, sometimes software is different versions, or one chooses 
different software, or as you say, different MUAs.

The need to go back to my key twenty years ago and reload it so that I 
can decrypt old email.

With multiple mail user agents, I like to have different signing keys.

> For myself, I only use a single MUA.  So my personal workflow would be

My situation is a single MUA with ssh access, but also scripts that move 
where my MUA is... but different keys... so if I have to decrypt I have 
to ssh.

> Assuming that we want people to be able to read their encrypted e-mail
> in any MUA in which they read e-mail, the other two usable architectural
> alternatives i see are:
> 
>   a) private keys are only ever stored on a hardware token which moves
>      between devices with the user.

unreliable in the long-term.  Physical interfaces change over the years.

>   b) different MUAs use different private keys for decryption, and the
>      sender of an e2e encrypted e-mail encrypts each message to *all* the
>      encryption-capable certificates it knows about for the user.

Not mutually exclusive to (a).

> (b) is a major systems change, requiring MUAs to change what
> certificates they advertise for the user (each MUA *must* learn about
> the other MUAs attached to the account and advertise the corresponding
> encryption certificates as well), and all senders to adjust behavior by
> sending messages encrypted to multiple keys per recipient.

This is still worthwhile doing, even if we don't fix pkcs12.

> Compared to either of these, standardizing software-based private key
> interop seems like an easy lift.

My preference is to say, in an RFC, that PKCS12 is obsolete, and that 
PKCS8 is the right answer.  Then we can beat up the Java/NSS/etc. 
vendors who are still stuck on PKCS12.

Also, whatever we do, it will need some variety of PQC algorithms/OIDs 
added.   I also have operational concerns about the read-modify-write
cycle needed by HSS.   Cold-storage/backup of HSS keys could be an 
operational nightmare, and while it hopefully will never affect mail 
user agents, doing code signing on a desktop is completely realistic for 
smaller companies.

> I sympathize with the grumbling about it, but I'd hope that the experts
> in the IETF LAMPS WG can at least come to a consensus that there is
> value in standardizing interop for decryption-capable private keys.
>