Thanks Ryan. It's not entirely obvious, but I understand your logic and it makes sense. If anyone disagrees, please speak up. Meanwhile, I've opened a misissuance bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1498463
- Wayne On Thu, Oct 11, 2018 at 3:39 PM Ryan Sleevi <r...@sleevi.com> wrote: > > > On Fri, Oct 12, 2018 at 2:32 AM Wayne Thayer via dev-security-policy < > dev-security-policy@lists.mozilla.org> wrote: > >> Thank you for this report Fotis. >> >> On Thu, Oct 11, 2018 at 6:13 AM Fotis Loukos via dev-security-policy < >> dev-security-policy@lists.mozilla.org> wrote: >> >> > Summary >> > ------- >> > >> > A number of Qualified Web Authentication Certificates have been issued >> > with incorrect qcStatements encoding. A small survey displays that all >> > certificates issued by a specific SubCA are affected by this issue >> > (https://crt.sh/?CN=%25&iCAID=1481). The CA has been notified about >> > this, but more than a week has passed and it has not yet provided any >> > feedback, while it continues to issue such malformed certificates (e.g. >> > https://crt.sh/?id=816495298). >> > >> > Technical details >> > ----------------- >> > >> > According to ETSI EN 319 412-5 (Electronic Signature and Infrastructure >> > (ESI); Certificate Profiles; Part 5: QCStatements) section 4.2.3 >> > (QCStatement claiming that the certificate is a EU qualified certificate >> > of a particular type), the QCStatement QcType with OID >> > id-etsi-qcs-QcType (0.4.0.1862.1.6) declares that a certificate has been >> > issued for a particular purpose (e-sign, e-seal, qualified web >> > authentication certificate). Every certificate containing this >> > QCStatement must have a SEQUENCE OF OBJECT IDENTIFIER which declares the >> > purpose, e.g. id-etsi-qct-web (0.4.0.1862.1.6.3). >> > T-Systems International GmbH has failed to follow this specification, >> > and instead issues certificates having id-etsi-qct-web as a QCStatement. >> > Such a certificate can be found at https://crt.sh/?asn1=795148644. You >> > can compare this with https://crt.sh/?asn1=844599393 which has the >> > QcType QCStatement correctly encoded. >> > >> > Disclosure to CA timeline >> > ------------------------- >> > >> > - 2 October 2018: First notification to the CA, with a detailed >> > description of the issue. >> > - 2 October 2018: Reply by a CA representative that they will look at >> it. >> > - 8 October 2018: Second notification and request for feedback. >> > >> > No further communication has taken place. >> > >> > Impact to WebPKI >> > ---------------- >> > >> > Two issues can be identified. >> > >> > The first issue is the incorrect encoding of the QCStatement. My >> > assessment is that this problem does not affect the WebPKI, since as far >> > as I can tell, no browsers decode or utilize the QCStatements extension. >> > >> > The second issue is the failure of the CA to identify the problem, reply >> > in time, possibly revoke the problematic certificates and at least >> > momentarily pause the issuance of new certificates until the issue is >> > resolved. I consider this a serious issue that displays problematic >> > practices within the CA. >> > >> > I share your concern for the CA's responsiveness, but I'm not seeing >> anything that would make this a violation of the BRs or Mozilla's >> policies. > > > The BRs requires certificates to comply with RFC 5280, and that all > extensions meet the requirements of 7.1.2.4 of the BRs. Mozilla Root CA > Policy 5.2 prohibits both incorrect extensions and invalid DER encoding. > These two entries are distinct in policy, as the “invalid DER” rule > unambiguously sets restrictions on the encoding rules being adhered to, > while the “incorrect extensions” addresses any semantic violation of the > encoding (since both of those cases are possible to encode in DER, but > their extension definition says you MUST NOT encode entries like that > because they do not conform to the extension’s textual definition. > > The expectation is that if there is a defined ASN.1 module for the > extension being included within a certificate, the CA will observe that > encoding (Moz Policy 5.2 - “invalid DER”) and semantics (“incorrect > extensions”) as defined by the entity responsible for that OID namespace > (BRs 7.1.2.4), and as stated in the CA’s CP/CPS (BRs & Moz Policy). > > I don’t think 7.1.2.4, or Section 5.2 of Mozilla Policy, can be read as > “The only things in certificates that need to be properly encoded are those > explicitly defined or referenced in RFC 5280,” as that would prohibit the > effective deployment of any new extensions. Given that RFC 5280 was > explicitly meant to be extendable by a variety of other documents, and > through its use of OIDs, without the explicit consent of or coordination > with the IETF, taking the narrow view very rapidly leads to logical > inconsistencies. > > For example, to take the narrow “only explicitly in 5280” view, then any > DER encoding errors within the subjectPublicKeyIdentifier are totally > permissible - because the relevant algorithms aren’t described by, > normatively referenced by, not explicitly update 5280. Instead, RFCs like > RFC 3447 stand alone, but are used by these other RFCs. With this narrow > view, it would be saying that there is carte blanche to ignore normative > requirements in any extensible field. That is, any field with an OID can > have whatever value or semantics that the CA wants, without violating > policy, unless and until such policy explicitly states “you have to follow > this precise rule.” For example, if the CA/Browser Forum defined a new > extension for validation purposes, it would have to explicitly state in the > BRs not just that they must use/include this extension, but that they have > to properly encode it as defined by that extension - otherwise, CAs could > “use” it while simultaneously misencoding it. > > The broad view is supported by RFC5280, in that extensions are given the > syntax and text within it. That is, extensions are defined as: > > Extension ::= SEQUENCE { > extnID OBJECT IDENTIFIER, > critical BOOLEAN DEFAULT FALSE, > extnValue OCTET STRING > -- contains the DER encoding of an ASN.1 value > -- corresponding to the extension type identified > -- by extnID > } > > > And Section 4.2 of RFC5280 places restrictions through the text, by stating > that the extnValue will be the DER encoding of the relevant ASN.1 value. > > > The qcStatements extension has a defined ASN.1 module set by the authority > responsible for that extension namespace. In this case, the CA has clearly > violated that syntax, and thus failed to uphold Section 4.2 of RFC5280 by > producing invalid DER for the defined semantics of that extension, thus > violating 7.1.2.4 of the BRs. In addition to that / independent of that > violation, by failing to uphold Section 4.2 of RFC5280, it explicitly > violates 5.2 of the Mozilla policy. That is, it was so important a policy > requirement that it exists twice - in the BRs and in Mozilla Policy - and is > alternatively worded so as to explicitly prohibit any confusion by CAs about > the expectations. > > > _______________________________________________ dev-security-policy mailing list dev-security-policy@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-security-policy