Re: [lamps] Revocation Request Format?

Ryan Sleevi <> Fri, 02 March 2018 22:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3CBA412D7F1 for <>; Fri, 2 Mar 2018 14:33:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 4udaHRLGJwj4 for <>; Fri, 2 Mar 2018 14:33:37 -0800 (PST)
Received: from ( []) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id E6D9D1250B8 for <>; Fri, 2 Mar 2018 14:33:37 -0800 (PST)
Received: from (localhost []) by (Postfix) with ESMTP id A3EC4C00292B for <>; Fri, 2 Mar 2018 14:33:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed;; h=mime-version :in-reply-to:references:from:date:message-id:subject:to:cc :content-type;; bh=IdvcSzIUhXTXU6AyhVL2Wp64Fx0=; b= oxR1cWXqxVjFXgmYRnDvMq43MDb+VvlpE1vv7Lsnm+RdnKpF7o1UF5FTmBrldy0U AR7oLRMAmlx8bUz4OmjC5bCY0YgVCt4+txMnbEhTrx/r91ygNypCEjduFYypT1EG QR60xC/E7y1zw1R9Df8KONF0bRn6h7Dt/0SJdKDJYhU=
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: by (Postfix) with ESMTPSA id 44CEAC00292A for <>; Fri, 2 Mar 2018 14:33:37 -0800 (PST)
Received: by with SMTP id e64so3638147ita.5 for <>; Fri, 02 Mar 2018 14:33:37 -0800 (PST)
X-Gm-Message-State: AElRT7HADOZZ/VnXuPl5piSQYfiMD3rgWwyjBO5hbl8h8OX2zCS/SjrU mv+WUpwOatb/VlU2JqxraBhZmXDoLehq/p1Eh9M=
X-Google-Smtp-Source: AG47ELtGJnfhtey7ZmBfwCq3uzRFzWNaEqrcRHFPy0JE8oWhUdYRvveXDbqABbaccmgl0/R/3m95SOV5ZeXh/Hel2YM=
X-Received: by with SMTP id b6mr4552925itf.148.1520030016659; Fri, 02 Mar 2018 14:33:36 -0800 (PST)
MIME-Version: 1.0
Received: by with HTTP; Fri, 2 Mar 2018 14:33:36 -0800 (PST)
In-Reply-To: <>
References: <> <> <> <> <> <>
From: Ryan Sleevi <>
Date: Fri, 2 Mar 2018 17:33:36 -0500
X-Gmail-Original-Message-ID: <>
Message-ID: <>
To: Stephen Farrell <>
Cc: Ryan Sleevi <>, Phillip Hallam-Baker <>, SPASM <>, Peter Bowen <>
Content-Type: multipart/alternative; boundary="f403045fae2830e7c00566759132"
Archived-At: <>
Subject: Re: [lamps] Revocation Request Format?
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "This is a venue for discussion of doing Some Pkix And SMime \(spasm\) work." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 02 Mar 2018 22:33:39 -0000

On Fri, Mar 2, 2018 at 4:45 PM, Stephen Farrell <>

> On 02/03/18 21:19, Ryan Sleevi wrote:
> > Because it's a demonstration of compromise. Any attempt to define how
> that
> > demonstration of compromise is proved (which I think is *bad*
> > standardization) is to make it more difficult to report or demonstrate
> > compromise.
> I don't understand the "any" in the above.
> Can you clarify?

So, there's two scenarios for key compromise that we're considering in the
CA space
1) I have the private key (Heartbleed, Trustico, rooted servers, etc)
2) I have a signing oracle (Bleichenbacher, ROBOT, etc)
  a) Note: The signing oracle may be somewhat constrained in message
formatting, but still provides an oracle sufficient to count as compromise
  b) Note: The signing oracle may be temporary in nature, so I'd be
particularly concerned with systems that require nonces or timestamps, as
they would incentivize disclosure to the CA first, rather than to the
'presumed legitimate' keyholder.

Further, we have at least several actors to consider demonstration of
compromise to:
I) The CA/issuer
II) Those that oversee the trust anchor management that includes the CA
III) The public

Because 2) exists, and the constraints re: 2 a), we need ecosystem
flexibility for how we demonstrate proof. That is, it will be somewhere
along a spectrum, based on what I, II, III find an acceptable
demonstration. I might want to require a challenge, but II does not, for

Thus, because the ecosystem has flexibility, 1) can easily adapt to
whatever is needed - because they have the key, they are technically
capable of producing any signed message necessary for I, II, III - of which
we already have plenty of ways of expressing, whether it be raw signatures,
CSRs, SPKACs, whatever your heart desires. There's no need to invent a new
format, because we have infinitely flexible formats already available, and
because the policy for I, II, and III will be inherently variable anyways.

Further, I am deeply concerned for situations in which 1) - or any
standardized version of expressing that - is seen as the only form of
compromise or the only acceptable form of demonstrating that. This isn't
hypothetical - this is a problem that, in acting in the role of a browser
trust store maintainer (II), I've had to chase down a number of CAs (I),
because they only want to revoke for 1) (... if even that). That's a policy
matter, for sure, but it's a policy matter that I fear is or would be

So I think attempts at 1) are somewhere along the line of , where we already have a number of methods.

But let's go further, and imagine that let's say we wanted to have an
interoperable definition for proof-of-key-compromise, so that you don't see
what we see today - where CA Foo revokes a certificate as compromised, and
the Subscriber then goes to CA Bar and requests a new certificate - with
the same key. It might seem appealing to suggest that an interoperable
proof of compromise would facilitate that information sharing, perhaps via
some shared transparent ledger. And I totally get that appeal, but that's
only addressing 1), and not 2), so we're not really addressing 'compromise'
in the broad sense, just 'compromise' in the narrow sense - and we're just
adding more work for those who do have the key to adopt whatever the new
hotness is, creating ecosystem adoption issues.

That's why I think an effort to standardize there is bad, not good, because
it counterintuitively fragments the ecosystem, without addressing the
general issue, which is in my view is moreso a matter of policy, because of
the inherent constraints of 2).