The issue of identifying the proper CPS for older certificates raises
the important overall question of how this should be managed on an
industry wide basis:

  Note: All examples use numerically invalid values, such as OIDs
beginning with "5." or non-existent dates in the Gregorian calendar.

Some CCADB future policy ideas:

Option 1: The policy extension in each end cert could contain a specific
  OID for each policy version, preferably in a systematic way.  For
  example, if the OID the DV policy of a specific CA sub-hierarchy was
  5.4.3.2.1  Then the policy OID for policy release N (consisting of
  CPS version N and the CP version it references) could be 5.4.3.2.1.N .

    Software running on the CCADB or in services like crt.sh could and
  should scan this data periodically to provide useful data and check
  for attempts to fraudulently rewrite history.

    For this option, CCADB manual entry data would specify the latest
  OID and a URL formatting pattern to get any previous policy version by
  its number.

   TODO: This may or may not interfere with other PKI or root store
  policies that require or presume a static OID for the lifetime of the
  issuing CA.  It also wouldn't work for older policies that were not
  mapped in this way.

   TODO: This would not reflect subsequent changes in revocation policy
  affecting already issued certificates.


Option 2: At any time, the latest CPS document for each overall policy
  should contain, in a Mozilla or BR specified standard section number,
  a standard formatted table of the issuance date range covered by each
  previous CPS version (Assuming a hypothetical rule that a CPS must
  explicitly reference the exact applicable CP, if any).  Something
  like:

    55.66.77.88 Past versions of this document:
  +-----+----------+------------------+---------------------------+
  | ver | eff date | document SHA-512 | Notes                     |
  +-----+----------+------------------+---------------------------+
  |1.0  |1996-02-30|xxxxxxxxxxxxxxxxxx| VeryOld hierarchy founded |
  |     |          |xxxxxxxxxxxxxxxxxx|                           |
  |1.1  |1997-02-30|xxxxxxxxxxxxxxxxxx| Timestamping CAs added    |
  | ............................................................. |
  |25.2 |2019-04-31|xxxxxxxxxxxxxxxxxx| Annual review, no changes |
  |     |          |xxxxxxxxxxxxxxxxxx|                           |
  +-----+----------+------------------+---------------------------+

    Software running on the CCADB or in services like crt.sh could and
  should scan those tables periodically to provide useful data and check
  for attempts to fraudulently rewrite history.

    For this option, CCADB manual entry data would specify a fixed URL
  for the latest version and a URL formatting pattern to get any
  previous version by its number.  For example
    https://repository.example.com/repo/mailCPS-latest.pdf
    https://repository.example.com/repo/mailCPS-%V.pdf

    TODO: How to specify that a CA (root or intermediary) has been
  moved to another policy category, e.g. from "Digicert active S/MIME
  roots CPS" to "Digicert revocation-only S/MIME CAs policy" or
  "Digicert archived mail signature CAs policy".

    TODO: How to specify that some past policy versions used a different
  file format (such as text/plain or text/html) for the canonical
  binding document form.

Option 3: Upon each policy change or renewal, the CA shall notify the
  root programs by appending information similar to the table in option
  2, plus a permanent URL in an appropriate CCADB table, visible to the
  public.  [ This is very similar to current policy ]

    CCADB scripts would automatically extract the latest versions
  for the old single-version CSV files.  CCADB security settings should
  prevent CAs from retroactively rewriting history, and corrections
  need to be confirmed by the (CA) root program administrators.

Option 4: The repositories on each CA website must include a specific
  micro-format to allow programmatically extracting information similar
  to the table in option 2, including the URLs.

    Software running on the CCADB or in services like crt.sh could and
  should scan those pages periodically to provide useful data and check
  for attempts to fraudulently rewrite history.

    For this option, CCADB manual entry data would specify a URL for
  the properly formatted repository page, for example
    https://repository.example.com/repo/mailCPS/history/index3.html
  (the example.com CA business uses the filenames index.html and
  index2.html for previous systematic schemes, all the page forms
  are probably generated from the same backend data).


On 03/05/2019 17:36, Ben Wilson wrote:
I'm against having to continually update the exact URL of the CP and CPS in the 
CCADB.  It's pretty easy to find the current CP and CPS from a legal 
repository.  Plus, if we point to an exact one in the CCADB, it might not be 
the one that is applicable to a given certificate that was issued prior to the 
most current CPS.  In other words, you should look at when the certificate was 
issued and then figure out which CPS is applicable.

-----Original Message-----
From: dev-security-policy <dev-security-policy-boun...@lists.mozilla.org> On 
Behalf Of Andrew Ayer via dev-security-policy
Sent: Thursday, May 2, 2019 8:16 PM
To: mozilla-dev-security-pol...@lists.mozilla.org
Subject: Re: Unretrievable CPS documents listed in CCADB

On Thu, 2 May 2019 18:53:39 -0700 (PDT)
Corey Bonnell via dev-security-policy
<dev-security-policy@lists.mozilla.org> wrote:

As an aside, I noticed that several URLs listed in CCADB are “Legal
Repository” web page URLs that contain a list of many CP/CPS
documents. My recommendation is to slightly amend CCADB Policy to
require CAs to provide URLs to the specific document in question
rather than a general “Legal Repository” page, where it is left up to
the reader to decide which hyperlink on the page is the correct
document.

+1.  It's often a real hassle to find the CP/CPS for a CA.  Linking
directly to the document would help a lot.


Enjoy

Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded
_______________________________________________
dev-security-policy mailing list
dev-security-policy@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to