Re: [Trans] WGLC started for draft-ietf-trans-threat-analysis

Stephen Kent <s@zerho.info> Thu, 17 May 2018 13:44 UTC

Return-Path: <s@zerho.info>
X-Original-To: trans@ietfa.amsl.com
Delivered-To: trans@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 59E6612DA6F for <trans@ietfa.amsl.com>; Thu, 17 May 2018 06:44:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.679
X-Spam-Level:
X-Spam-Status: No, score=-1.679 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, MISSING_HEADERS=1.021, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=zerho.info
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 8yzQXs9cgehy for <trans@ietfa.amsl.com>; Thu, 17 May 2018 06:44:19 -0700 (PDT)
Received: from mail4.protonmail.ch (mail4.protonmail.ch [185.70.40.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 404AC12DA48 for <trans@ietf.org>; Thu, 17 May 2018 06:44:19 -0700 (PDT)
Date: Thu, 17 May 2018 09:44:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zerho.info; s=protonmail; t=1526564656; bh=ZCVbpFss5/4aKPH6Fdp5FSHp0YIpomaaqk+ds8GsSLE=; h=Date:From:Cc:Reply-To:Subject:In-Reply-To:References:Feedback-ID: From; b=Np4avjFyTxqpQPRR9NAp8C0KxnlicyfVN6pb5C4D+OfWAw5BhVuJuRdqYucB8Ammh /fjZdkMw8XEXycyCuaKlNvocl97xZwJbfjDBqEAkGDPX7r/kJf/N0OXfUeKIj4cfR9 lPhepFlRD5ullZVN8TWkLPtptztYWQtTztH4keVA=
From: Stephen Kent <s@zerho.info>
Cc: Trans <trans@ietf.org>
Reply-To: Stephen Kent <s@zerho.info>
Message-ID: <XzTIdja50N7kMTVCCapF2KHQlUEplZNszI3z7GPiiQpCAPC8X0fc129mKfOpEnWJTcPuvHAFCRjAnyWQQ1SwgZuRIJ_Njwed71Z9KQ5wRic=@zerho.info>
In-Reply-To: <20180507122941.300b69582fa3acdb52b625af@andrewayer.name>
References: <alpine.LRH.2.21.1804161658150.17034@bofh.nohats.ca> <20180507122941.300b69582fa3acdb52b625af@andrewayer.name>
Feedback-ID: J6dPlme6glBGJLMEtGsaqJPE6vPDBSW6lOheJXLXjEWBxgn8P1CEZKbZGc4D01YOct3XeTXymnV_hlw9t4YeHg==:Ext:ProtonMail
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="b1_5b38e9cd8fbe0d20b88f61036bc1cfd4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/trans/Wqs96b0C7SQfgjvjZCEpB_KSk3g>
Subject: Re: [Trans] WGLC started for draft-ietf-trans-threat-analysis
X-BeenThere: trans@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Public Notary Transparency working group discussion list <trans.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trans>, <mailto:trans-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/trans/>
List-Post: <mailto:trans@ietf.org>
List-Help: <mailto:trans-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trans>, <mailto:trans-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 May 2018 13:44:22 -0000

Folks,

Ben Kudak politely noted that my reply to Andrew's comments lost all formatting when I sent it. I have attached the formatted version that I prepared, as a PDF, to facilitate review.

Sorry,

Steve

​​

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On May 7, 2018 2:29 PM, Andrew Ayer <agwa@andrewayer.name> wrote:

> ​​
> 
> draft-ietf-trans-threat-analysis-13 has a number of issues that ought
> 
> to be fixed before it's published.
> 
> A. Logs do not check for syntactic misissuance
> 
> Sections 4.1.1.1 and 4.2.1.1 give the impression that logs check,
> 
> or ought to check, submitted certificates for syntactic misissuance.
> 
> Page 20 says that syntactic misissuance will be detected "only if" a
> 
> (pre-)certificate is submitted to a log that performs syntactic checks.
> 
> This is not an intended function of logs, and not a single one of the
> 
> 58 logs currently in operation performs syntactic misissuance checks.
> 
> Furthermore, having logs perform this function would violate separation
> 
> of concerns. Instead, monitors perform syntactic misissuance checks.
> 
> crt.sh, for instance, runs all certificates through several certificate
> 
> linters.
> 
> Page 20 says that "syntactic checking [of pre-certificates] by a log
> 
> helps avoid issuance of an erroneous certificate." This is contrary to
> 
> RFC6962 and RFC6962-bis, which both state that issuing a pre-certificate
> 
> is a binding commitment by the CA to issue a certificate. It would
> 
> be dangerous for a CA to follow the advice on page 20, as browsers
> 
> rightly consider misissuance of a pre-certificate to be equivalent to
> 
> misissuance of a real certificate. CAs must perform syntactic checks on
> 
> the TBSCertificate prior to signing anything.
> 
> Section 4.2.1.1 is premised on two I-Ds that were not adopted by trans
> 
> and have expired.
> 
> I suggest that sections 4.1.1.1 and 4.2.1.1 be removed entirely.
> 
> B. Conflation of log misbehavior and CA misbehavior
> 
> Page 4 says that if a bogus SCT is discovered, it would trigger
> 
> a revocation request. Page 26 says that browsers need to "reject
> 
> certificates that contain SCTs from conspiring logs."
> 
> Page 3 says "if an RP verified that a certificate that claims to have
> 
> been logged has a valid log entry, the RP would have a higher degree of
> 
> confidence that the certificate is genuine."
> 
> But behavior of a log says nothing about whether a certificate was
> 
> properly issued. A properly-issued certificate might be logged to a
> 
> a misbehaving log, and a misissued certificate might be logged to a
> 
> well-behaved log.
> 
> Therefore, browsers should not consider a certificate more likely to
> 
> be genuine just because it's logged, and if a certificate contains an
> 
> embedded SCT from a log that's known to be bad, the browser should reject
> 
> only that SCT, and still check SCTs from other logs. And there is no need
> 
> to revoke a properly-issued certificate just because it's submitted to
> 
> a log that misbehaves.
> 
> Section 5.3 says that "evidence of a bogus or erroneous certificate"
> 
> can be "in the form of a log entry and/or SCT." An SCT is irrelevant
> 
> for this, as it attests only to log behavior.
> 
> C. Response to log misbehavior
> 
> On pages 4, 9, and 13, the draft says that monitors should not "trust"
> 
> or "rely upon" misbehaving logs. But monitors don't trust or distrust
> 
> logs - they just view logs as a source of certificates. Browsers, on
> 
> the other hand, do trust and distrust logs. For example, after two logs
> 
> (WoSign and Startcom) issued bad SCTs, they were distrusted by Chrome, but
> 
> Cert Spotter and crt.sh continued monitoring them until they shut down.
> 
> The document should be updated to remove mention of monitors trusting or
> 
> relying upon logs, and to make clear that the primary response to a
> 
> misbehaving log is for browsers to distrust it.
> 
> D. Signature/chain mutation attack
> 
> There's another way a log can misbehave which ought to be mentioned in
> 
> section 3.1.1.2. A misbehaving log that conspires with a CA could log
> 
> a misissued certificate, but mutate the certificate's signature or chain
> 
> such that the certificate is no longer cryptographically attributable to
> 
> the CA. The CA could then plausibly deny that it issued the certificate.
> 
> Since the signature and chain are not part of the Merkle Tree, the SCT
> 
> will be accepted by browsers and be auditable, despite the log entry
> 
> being mutated and useless for responding to the misissuance.
> 
> Monitors should be sure to validate the signature and chain of logged
> 
> certificates so that this misbehavior can be detected.
> 
> E. Chrome is requiring SCTs now
> 
> As David A. Cooper pointed out, Chrome is now requiring new certificates
> 
> to contain SCTs, so sections 3.1.2.2, 3.2.2.1, and 5.4 need updates.
> 
> F. Organization
> 
> The organization of the draft seems sub-optimal. At a high level, the
> 
> document is broken up into semantic and syntactic misissuance, and then
> 
> into malicious vs non-malicious CA. Within these categories, the document
> 
> discusses the implications when the certificate is logged, not logged,
> 
> or when the log is misbehaving. Very often, these implications are the
> 
> same regardless of the type of misissuance or the culpability of the CA.
> 
> As a result, there is a lot of duplication, often with minor differences
> 
> in wording, which makes the document harder to understand.
> 
> I think the structure of section 5, which discusses issues as standalone
> 
> concepts, is a better model. Alternatively, the duplication could be
> 
> removed from sections 3 and 4 and replaced by references to prior sub-sections.
> 
> G. Minor comments
> 
> Page 3 says "'bad-CA-lists' a CA as noted above". "Bad-CA-list" hasn't
> 
> been defined and doesn't appear to be noted above.
> 
> Page 3 talks about "validat[ing]" an SCT, which is ambiguous, as it
> 
> could refer to checking the SCT's signature, or auditing the SCT for
> 
> inclusion. I suggest replacing "validates" with "audits" and replacing
> 
> "is invalid" (in the same sentence) with "fails auditing."
> 
> Page 4 says that "a CA benefits from CT when it detects a (mis-issued)
> 
> certificate that represents the same Subject name as a legitimate
> 
> certificate issued by the CA." How is a CA supposed to know if the
> 
> certificate is misissued or not?
> 
> Page 10 says that a monitor/auditor will detect a misbehaving log when
> 
> it "sees the bogus certificate." It also needs to see the SCT.
> 
> Section 3.1.2.1 talks about a Subject being able to detect the lack of
> 
> an SCT in a certificate that it is issued. Since this is part of the
> 
> section on "Semantic misissuance," which is defined in the Introduction
> 
> as a certificate issued to someone who isn't the Subject, it's unclear
> 
> to me what the point of this sub-section is. A Subject, by definition,
> 
> would never be issued a semantically misissued certificate.
> 
> Section 3.3.1 ends with "If the bogus certificate is detected and
> 
> logged, browsers that require an SCT will reject the bogus certificate."
> 
> Wouldn't the logging of a certificate cause an SCT to be issued, and
> 
> thus allow it to be accepted by browsers that require an SCT?
> 
> The last paragraph of section 3.5 talks about the attack in 3.4 and
> 
> should be moved.
> 
> Trans mailing list
> 
> Trans@ietf.org
> 
> https://www.ietf.org/mailman/listinfo/trans