rfc9674.original   rfc9674.txt 
SIDROPS J. Snijders Internet Engineering Task Force (IETF) J. Snijders
Internet-Draft Fastly Request for Comments: 9674 Fastly
Updates: 8182 (if approved) 2 October 2024 Updates: 8182 November 2024
Intended status: Standards Track Category: Standards Track
Expires: 5 April 2025 ISSN: 2070-1721
Same-Origin Policy for the RPKI Repository Delta Protocol (RRDP) Same-Origin Policy for the RPKI Repository Delta Protocol (RRDP)
draft-ietf-sidrops-rrdp-same-origin-04
Abstract Abstract
This document describes a Same-Origin Policy (SOP) requirement for This document describes a Same-Origin Policy (SOP) requirement for
RPKI Repository Delta Protocol (RRDP) servers and clients. Resource Public Key Infrastructure (RPKI) Repository Delta Protocol
Application of SOP in RRDP client/server communication isolates (RRDP) servers and clients. Application of a SOP in RRDP client/
resources such as Delta and Snapshot files from different Repository server communication isolates resources such as Delta and Snapshot
Servers, reducing possible attack vectors. This document updates RFC files from different Repository Servers, reducing possible attack
8182. vectors. This document updates RFC 8182.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 5 April 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9674.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2024 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language
2. Implications of cross-origin resource requests in RRDP . . . 3 2. Implications of Cross-Origin Resource Requests in RRDP
3. Changes to RFC 8182 . . . . . . . . . . . . . . . . . . . . . 3 3. Changes to RFC 8182
3.1. New Requirements for RRDP Repository Servers . . . . . . 3 3.1. New Requirements for RRDP Repository Servers
3.2. New Requirements for Relying Parties using RRDP . . . . . 3 3.2. New Requirements for Relying Parties Using RRDP
4. Deployability in the Internet's current RPKI . . . . . . . . 4 4. Deployability in the Internet's Current RPKI
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 5. Security Considerations
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 6. IANA Considerations
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 7. References
7.1. Normative References . . . . . . . . . . . . . . . . . . 4 7.1. Normative References
7.2. Informative References . . . . . . . . . . . . . . . . . 5 7.2. Informative References
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 6 Acknowledgements
Appendix B. Implementation status . . . . . . . . . . . . . . . 6 Author's Address
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction 1. Introduction
This document specifies a Same-origin policy (SOP) requirement for This document specifies a Same-Origin Policy (SOP) requirement for
RPKI Repository Delta Protocol (RRDP) servers and clients. The SOP RPKI Repository Delta Protocol (RRDP) servers and clients. The SOP
concept is a security mechanism to restrict how a document loaded concept is a security mechanism to restrict how a document loaded
from one origin can cause interaction with resources from another from one origin can cause interaction with resources from another
origin. See [RFC6454] for an overview of the concept of an "origin". origin. See [RFC6454] for an overview of the concept of an "origin".
Application of SOP in RRDP client/server communication isolates Application of a SOP in RRDP client/server communication isolates
resources such as Delta and Snapshot files from different Repository resources such as Delta and Snapshot files from different Repository
Servers, reducing possible attack vectors. Another way to avoid Servers, reducing possible attack vectors. Another way to avoid
undesirable implications (as described in Section 2) would be for a undesirable implications (as described in Section 2) would be for a
future version of the RRDP protocol to use relative URIs instead of future version of RRDP to use relative URIs instead of absolute URIs.
absolute URIs. This document updates [RFC8182]. This document updates [RFC8182].
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2. Implications of cross-origin resource requests in RRDP 2. Implications of Cross-Origin Resource Requests in RRDP
The first RRDP protocol specification did not explicitly disallow The first RRDP specification did not explicitly disallow 'cross-
'cross-origin' URI references from the Update Notification file origin' URI references from the Update Notification file
(Section 3.5.1 of [RFC8182]) towards Delta (Section 3.5.3 of (Section 3.5.1 of [RFC8182]) towards Delta (Section 3.5.3 of
[RFC8182]) and Snapshot (Section 3.5.2 of [RFC8182]) files, and was [RFC8182]) and Snapshot (Section 3.5.2 of [RFC8182]) files, and it
silent on the topic of HTTP Redirection (Section 15.4 of [RFC9110]). was silent on the topic of HTTP Redirection (Section 15.4 of
[RFC9110]).
The implication of cross-origin references in Update Notification The implication of cross-origin references in Update Notification
files is that one Repository Server can reference RRDP resources on files is that one Repository Server can reference RRDP resources on
another Repository Server and in doing so inappropriately increase another Repository Server and in doing so inappropriately increase
the resource consumption for both RRDP clients and the referenced the resource consumption for both RRDP clients and the referenced
Repository Server. An adversary could also employ cross-origin HTTP Repository Server. An adversary could also employ cross-origin HTTP
Redirects towards other Repository Servers, causing similar Redirects towards other Repository Servers, causing similar
undesirable behavior. undesirable behavior.
3. Changes to RFC 8182 3. Changes to RFC 8182
To overcome the aforementioned issue described in Section 2, RRDP To overcome the issue described in Section 2, RRDP Repository Servers
Repository Servers and Clients MUST apply a Same-Origin Policy to and Clients MUST apply a Same-Origin Policy to both the URIs
both the URIs referenced in an Update Notification File and any HTTP referenced in an Update Notification File and any HTTP Redirects.
Redirects.
3.1. New Requirements for RRDP Repository Servers 3.1. New Requirements for RRDP Repository Servers
The following checklist items are added to Section 3.5.1.3 of The following checklist items are added to Section 3.5.1.3 of
[RFC8182]: [RFC8182]:
NEW NEW
| * The "uri" attribute in the snapshot element and optional delta | * The "uri" attribute in the snapshot element and optional delta
| elements MUST be part of the same origin (i.e., represent the | elements MUST be part of the same origin (i.e., represent the
| same principal), meaning referenced URIs MUST have the same | same principal), meaning referenced URIs MUST have the same
| scheme, host, and port as the URI for the Update Notification | scheme, host, and port as the URI for the Update Notification
| File specified in the referring RRDP SIA AccessDescription. | File specified in the referring RRDP SIA AccessDescription.
| |
| * The Repository Server MUST NOT respond with HTTP Redirects | * The Repository Server MUST NOT respond with HTTP Redirects
| towards locations with an origin different from the origin of | towards locations with an origin different from the origin of
| the Update Notification File specified in the referring RRDP | the Update Notification File specified in the referring RRDP
| SIA AccessDescription. | SIA AccessDescription.
3.2. New Requirements for Relying Parties using RRDP 3.2. New Requirements for Relying Parties Using RRDP
The following adds to Section 3.4.1 of [RFC8182]: The following adds to Section 3.4.1 of [RFC8182]:
NEW NEW
| * The Relying Party MUST verify whether the "uri" attributes in | * The Relying Party MUST verify whether the "uri" attributes in
| the Update Notification File are of the same origin as the | the Update Notification File are of the same origin as the
| Update Notification File itself. If this verification fails, | Update Notification File itself. If this verification fails,
| the file MUST be rejected and RRDP cannot be used, see | the file MUST be rejected and RRDP cannot be used; see
| Section 3.4.5 of [RFC8182] for considerations. Implementations | Section 3.4.5 for considerations. Implementations SHOULD log a
| SHOULD log a message when cross-origin referrals are detected. | message when cross-origin referrals are detected.
| |
| * The Relying Party MUST NOT follow HTTP Redirection following | * The Relying Party MUST NOT follow HTTP Redirection that results
| from attempts to download Update Notification, Delta, and | from attempts to download Update Notification, Delta, and
| Snapshot files if the target origin is different from the | Snapshot files if the target origin is different from the
| origin of the Update Notification File specified in the | origin of the Update Notification File specified in the
| referring RRDP SIA AccessDescription. If this verification | referring RRDP SIA AccessDescription. If this verification
| fails, the RRDP session MUST be rejected and RRDP cannot be | fails, the RRDP session MUST be rejected and RRDP cannot be
| used, see Section 3.4.5 of [RFC8182] for considerations. | used; see Section 3.4.5 for considerations. Implementations
| Implementations SHOULD log a message when cross-origin | SHOULD log a message when cross-origin redirects are detected.
| redirects are detected.
4. Deployability in the Internet's current RPKI 4. Deployability in the Internet's Current RPKI
Analysing the [rpkiviews] archives for the period from April to Analyzing the [rpkiviews] archives for the period from April to
September 2024, only one RRDP server (reached following the TALs of September 2024, only one RRDP server (reached following the Trust
the five Regional Internet Registries) employed a same-origin HTTP Anchor Locators (TALs) of the five Regional Internet Registries)
redirect. In the period October 2021 - October 2024 no RRDP employed a same-origin HTTP redirect. In the period October 2021 -
Repository Servers were observed which employed cross-origin URIs in October 2024 no RRDP Repository Servers were observed that employed
Update Notification Files. cross-origin URIs in Update Notification Files.
This means that imposing a requirement for the application of a Same- This means that imposing a requirement for the application of a Same-
Origin Policy does not cause any existing commonly-used RRDP Origin Policy does not cause any existing commonly used RRDP
Repository Server operations to become non-compliant. Repository Server operations to become non-compliant.
5. Security Considerations 5. Security Considerations
This document addresses an oversight in the original RRDP protocol This document addresses an oversight in the original RRDP
specification: cross-origin requests are detrimental as they allow specification: Cross-origin requests are detrimental as they allow
one repository operator to increase resource consumption for other one repository operator to increase resource consumption for other
repository operators and RRDP clients. repository operators and RRDP clients.
6. IANA Considerations 6. IANA Considerations
No IANA actions required. This document has no IANA actions.
7. References 7. References
7.1. Normative References 7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 5, line 30 skipping to change at line 203
DOI 10.17487/RFC8182, July 2017, DOI 10.17487/RFC8182, July 2017,
<https://www.rfc-editor.org/info/rfc8182>. <https://www.rfc-editor.org/info/rfc8182>.
[RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, [RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110, Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022, DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>. <https://www.rfc-editor.org/info/rfc9110>.
7.2. Informative References 7.2. Informative References
[FORT-validator]
Leiva, A., "FORT validator",
<https://fortproject.net/en/validator>.
[Routinator]
NLNet Labs, "Routinator",
<https://github.com/NLnetLabs/routinator/>.
[rpki-client]
Jeker, C., Snijders, J., Dzonsons, K., and T. Buehler,
"rpki-client", <https://www.rpki-client.org/>.
[rpki-prover]
Puzanov, M., "rpki-prover",
<https://github.com/lolepezy/rpki-prover>.
[rpkiviews] [rpkiviews]
Snijders, J., "rpkiviews", October 2024, Snijders, J., "rpkiviews", <https://www.rpkiviews.org>.
<http://www.rpkiviews.org/>.
Appendix A. Acknowledgements Acknowledgements
The author wishes to thank Theo Buehler, Claudio Jeker, Alberto The author wishes to thank Theo Buehler, Claudio Jeker, Alberto
Leiva, Tim Bruijnzeels, Ties de Kock, Martin Hoffmann, and Mikhail Leiva, Tim Bruijnzeels, Ties de Kock, Martin Hoffmann, and Mikhail
Puzanov for their helpful feedback, comments, and implementation Puzanov for their helpful feedback, comments, and implementation
work. The author wishes to thank Keyur Patel, Meral Shirazipour, work. The author wishes to thank Keyur Patel, Meral Shirazipour,
Niclas Comstedt, Dan Harkins, Erik Kline, Roman Danyliw, and Éric Niclas Comstedt, Dan Harkins, Erik Kline, Roman Danyliw, and Éric
Vyncke for their review. Vyncke for their review.
Appendix B. Implementation status
This section is to be removed before publishing as an RFC.
This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in RFC 7942.
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.
According to RFC 7942, "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".
* OpenBSD's [rpki-client]
* Mikhail Puzanov's [rpki-prover]
* FORT project's [FORT-validator]
* NLNet Labs' [Routinator]
Author's Address Author's Address
Job Snijders Job Snijders
Fastly Fastly
Amsterdam Amsterdam
Netherlands Netherlands
Email: job@fastly.com Email: job@fastly.com
 End of changes. 29 change blocks. 
128 lines changed or deleted 75 lines changed or added

This html diff was produced by rfcdiff 1.48.