Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VA/RVA: Add metadata necessary for the MPIC ballot #7732

Merged
merged 2 commits into from
Oct 10, 2024

Conversation

beautifulentropy
Copy link
Member

@beautifulentropy beautifulentropy commented Oct 1, 2024

  • Add Perspective and RIR fields to the remote-va configuration
  • Configure RVA ValidationAuthorityImpl instances with the contents of the JSON configuration
  • Configure VA ValidationAuthorityImpl instances with the constant va.PrimaryPerspective
  • Log Perspective for non-Primary Perspectives, per the MPIC requirements in section 5.4.1 (2) vii of the BRs. Also log the RIR for posterity.
  • Introduce ValidationResult RPC fields Perspective and Rir, which are not currently used but will be required for corroboration in boulder-va should explicitly record the quorum met for the issuance (eg, 5/6 or 6/6) #7616

5.4.1 Types of events recorded

The CA SHALL record at least the following events:

2. Subscriber Certificate lifecycle management events, including:

7. Multi-Perspective Issuance Corroboration attempts from each Network Perspective, minimally recording the following information:
- a. an identifier that uniquely identifies the Network Perspective used;
- b. the attempted domain name and/or IP address; and
- c. the result of the attempt (e.g., “domain validation pass/fail”, “CAA permission/prohibition”).

3.2.2.9 Multi-Perspective Issuance Corroboration

Phased Implementation Timeline:

Effective March 15, 2026, the CA MUST implement Multi-Perspective Issuance Corroboration using at least three (3) remote Network Perspectives. The CA MUST NOT proceed with certificate issuance if the number of non-corroborations is greater than allowed in the Quorum Requirements table and if the remote Network Perspectives that do corroborate the determinations made by the Primary Network Perspective do not fall within the service regions of at least two (2) distinct Regional Internet Registries.


Fixes #7613
Part of #7615
Part of #7616

@beautifulentropy beautifulentropy marked this pull request as ready for review October 1, 2024 19:18
@beautifulentropy beautifulentropy requested a review from a team as a code owner October 1, 2024 19:18
Copy link
Contributor

github-actions bot commented Oct 1, 2024

@beautifulentropy, this PR appears to contain configuration and/or SQL schema changes. Please ensure that a corresponding deployment ticket has been filed with the new values.

@beautifulentropy beautifulentropy changed the title RVA: Add configurable MPIC metadata to config RVA: Add configurable MPIC metadata Oct 1, 2024
jprenken
jprenken previously approved these changes Oct 2, 2024
@beautifulentropy beautifulentropy requested review from a team and aarongable and removed request for a team October 2, 2024 18:56
Copy link
Contributor

@aarongable aarongable left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logging requirements are in Section 5.4.1 (emphasis added):

The CA SHALL record at least the following events:

  1. Subscriber Certificate lifecycle management events, including:

vii. Multi-Perspective Issuance Corroboration attempts from each Network Perspective, minimally recording the following information:

  • a. an identifier that uniquely identifies the Network Perspective used;
  • b. the attempted domain name and/or IP address; and
  • c. the result of the attempt (e.g., "domain validation pass/fail", "CAA permission/prohibition").

viii. Multi-Perspective Issuance Corroboration quorum results for each attempted domain name or IP address represented in a Certificate request (i.e., "3/4" which should be interpreted as "Three (3) out of four (4) attempted Network Perspectives corroborated the determinations made by the Primary Network Perspective).

The location requirements are in Section 3.2.2.9 (emphasis added):

A Network Perspective MAY use a recursive DNS resolver that is NOT co-located with the Network Perspective. However, the DNS resolver used by the Network Perspective MUST fall within the same Regional Internet Registry service region as the Network Perspective relying upon it. Furthermore, for any pair of DNS resolvers used on a Multi-Perspective Issuance Corroboration attempt, the straight-line distance between the two States, Provinces, or Countries the DNS resolvers reside in MUST be at least 500 km. The location of a DNS resolver is determined by the point where unencapsulated outbound DNS queries are typically first handed off to the network infrastructure providing Internet connectivity to that DNS resolver.

So I think both Matthew and I have previously misunderstood the actual requirements here (or maybe I'm misunderstanding them now! Please double check me!). I think we need to have a name (like "Cluster" here) which "uniquely identifies the Network Perspective used". I don't think we need to configure or log an RIR -- instead, we just need to make sure that all of our deployed regions are at least 500km apart.

edit: I take it all back -- there's another requirement I had forgotten about (emphasis added):

Effective March 15, 2026, the CA MUST implement Multi-Perspective Issuance Corroboration using at least three (3) remote Network Perspectives. The CA MUST NOT proceed with certificate issuance if the number of non-corroborations is greater than allowed in the Quorum Requirements table and if the remote Network Perspectives that do corroborate the determinations made by the Primary Network Perspective do not fall within the service regions of at least two (2) distinct Regional Internet Registries.

test/config-next/remoteva-b.json Outdated Show resolved Hide resolved
Copy link
Contributor

@aarongable aarongable left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we update the VA to log this information (if it is set) immediately? Otherwise these config fields are just dead code for the time being.

@beautifulentropy beautifulentropy force-pushed the config-mpic-metadata branch 2 times, most recently from d265f83 to c21dc24 Compare October 8, 2024 15:22
@beautifulentropy beautifulentropy changed the title RVA: Add configurable MPIC metadata VA/RVA: Add metadata necessary for the MPIC ballot Oct 8, 2024
@beautifulentropy beautifulentropy force-pushed the config-mpic-metadata branch 4 times, most recently from dddd60c to 592d62a Compare October 9, 2024 19:14
Copy link
Contributor

@aarongable aarongable left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

test/config-next/remoteva-b.json Show resolved Hide resolved
va/va.go Show resolved Hide resolved
@beautifulentropy beautifulentropy merged commit 37b85fb into main Oct 10, 2024
12 checks passed
@beautifulentropy beautifulentropy deleted the config-mpic-metadata branch October 10, 2024 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RVA configuration should include a unique identifying name for each RVA cluster and RIR
3 participants