rfc9691v2.txt | rfc9691.txt | |||
---|---|---|---|---|
skipping to change at line 19 ¶ | skipping to change at line 19 ¶ | |||
R. Austein | R. Austein | |||
Dragon Research Labs | Dragon Research Labs | |||
December 2024 | December 2024 | |||
A Profile for Resource Public Key Infrastructure (RPKI) Trust Anchor | A Profile for Resource Public Key Infrastructure (RPKI) Trust Anchor | |||
Keys (TAKs) | Keys (TAKs) | |||
Abstract | Abstract | |||
A Trust Anchor Locator (TAL) is used by Relying Parties (RPs) in the | A Trust Anchor Locator (TAL) is used by Relying Parties (RPs) in the | |||
Resource Public Key Infrastructure (RPKI) to locate and validate | Resource Public Key Infrastructure (RPKI) to locate and validate a | |||
Trust Anchor (TA) Certification Authority (CA) certificate used in | Trust Anchor (TA) Certification Authority (CA) certificate used in | |||
RPKI validation. This document defines an RPKI signed object for a | RPKI validation. This document defines an RPKI signed object for a | |||
Trust Anchor Key (TAK). A TAK object can be used by a TA to signal | Trust Anchor Key (TAK). A TAK object can be used by a TA to signal | |||
to RPs the location(s) of the accompanying CA certificate for the | to RPs the location(s) of the accompanying CA certificate for the | |||
current public key, as well as the successor public key and the | current public key, as well as the successor public key and the | |||
location(s) of its CA certificate. This object helps to support | location(s) of its CA certificate. This object helps to support | |||
planned key rollovers without impacting RPKI validation. | planned key rollovers without impacting RPKI validation. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at line 134 ¶ | skipping to change at line 134 ¶ | |||
if it is present. If the TAK object lists only the current public | if it is present. If the TAK object lists only the current public | |||
key, then the RP continues processing as it would in the absence of a | key, then the RP continues processing as it would in the absence of a | |||
TAK object. If the TAK object includes a successor public key, the | TAK object. If the TAK object includes a successor public key, the | |||
RP starts a 30-day acceptance timer for that key and then continues | RP starts a 30-day acceptance timer for that key and then continues | |||
standard top-down validation with the current public key. During the | standard top-down validation with the current public key. During the | |||
following validation runs up until the expiry of the acceptance | following validation runs up until the expiry of the acceptance | |||
timer, the RP verifies that the public keys and the certificate URLs | timer, the RP verifies that the public keys and the certificate URLs | |||
listed in the TAK object remain unchanged. If they remain unchanged | listed in the TAK object remain unchanged. If they remain unchanged | |||
as at that time, then the RP will fetch the successor public key, | as at that time, then the RP will fetch the successor public key, | |||
update its local state with that public key and its associated | update its local state with that public key and its associated | |||
certification location(s), and continue processing using that public | certificate location(s), and continue processing using that public | |||
key. | key. | |||
The primary motivation for this work is being able to migrate from a | The primary motivation for this work is being able to migrate from a | |||
Hardware Security Module (HSM) produced by one vendor to one produced | Hardware Security Module (HSM) produced by one vendor to one produced | |||
by another, where the first vendor does not support exporting private | by another, where the first vendor does not support exporting private | |||
keys for use by the second. There may be other scenarios in which | keys for use by the second. There may be other scenarios in which | |||
key rollover is useful, though. | key rollover is useful, though. | |||
1.1. Requirements Notation | 1.1. Requirements Notation | |||
skipping to change at line 394 ¶ | skipping to change at line 394 ¶ | |||
the RP to alert the user when a new successor public key is seen and | the RP to alert the user when a new successor public key is seen and | |||
when the relevant acceptance timer has expired. The user can then | when the relevant acceptance timer has expired. The user can then | |||
manually transition to the new TA public key data. This process | manually transition to the new TA public key data. This process | |||
ensures that the benefits of the acceptance timer period are still | ensures that the benefits of the acceptance timer period are still | |||
realised, as compared with TA public key update based on a TAL | realised, as compared with TA public key update based on a TAL | |||
distributed out of band by a TA. | distributed out of band by a TA. | |||
5. Maintaining Multiple TA Key Pairs | 5. Maintaining Multiple TA Key Pairs | |||
An RP that can process TAK objects will only ever use one public key | An RP that can process TAK objects will only ever use one public key | |||
for validation: either the current public key or the successor public | for validation: either the current public key, or the successor | |||
key once the relevant acceptance timer has expired. By contrast, an | public key once the relevant acceptance timer has expired. By | |||
RP that cannot process TAK objects will continue to use the public | contrast, an RP that cannot process TAK objects will continue to use | |||
key details per its TAL (or equivalent manual configuration) | the public key details per its TAL (or equivalent manual | |||
indefinitely. As a result, even when a TA is using a TAK object in | configuration) indefinitely. As a result, even when a TA is using a | |||
order to migrate clients to a new public key, the TA may have to | TAK object in order to migrate clients to a new public key, the TA | |||
maintain the previous key pair for a period of time alongside the new | may have to maintain the previous key pair for a period of time | |||
key pair in order to ensure continuity of service for older clients. | alongside the new key pair in order to ensure continuity of service | |||
for older clients. | ||||
For each TA key pair that a TA maintains, the signed material for | For each TA key pair that a TA maintains, the signed material for | |||
these key pairs MUST be published under different directories in the | these key pairs MUST be published under different directories in the | |||
context of the 'id-ad-caRepository' and 'id-ad-rpkiManifest' SIA | context of the 'id-ad-caRepository' and 'id-ad-rpkiManifest' SIA | |||
descriptions contained on the CA certificates [RFC6487]. Publishing | descriptions contained on the CA certificates [RFC6487]. Publishing | |||
objects under the same directory is potentially confusing for RPs and | objects under the same directory is potentially confusing for RPs and | |||
could lead to object invalidity in the event of filename collisions. | could lead to object invalidity in the event of filename collisions. | |||
Also, the CA certificates for each maintained key pair and the | Also, the CA certificates for each maintained key pair and the | |||
content published for each key pair MUST be equivalent (except for | content published for each key pair MUST be equivalent (except for | |||
skipping to change at line 426 ¶ | skipping to change at line 427 ¶ | |||
This means that the IP and Autonomous System (AS) resources contained | This means that the IP and Autonomous System (AS) resources contained | |||
on all current CA certificates for the maintained TA key pairs MUST | on all current CA certificates for the maintained TA key pairs MUST | |||
be the same. Furthermore, for any delegation of IP and AS resources | be the same. Furthermore, for any delegation of IP and AS resources | |||
to a child CA, the TA MUST have an equivalent CA certificate | to a child CA, the TA MUST have an equivalent CA certificate | |||
published under each of its key pairs. Any updates in delegations | published under each of its key pairs. Any updates in delegations | |||
MUST be reflected under each of its key pairs. A TA SHOULD NOT | MUST be reflected under each of its key pairs. A TA SHOULD NOT | |||
publish any other objects besides a CRL, a manifest, a single TAK | publish any other objects besides a CRL, a manifest, a single TAK | |||
object, and any number of CA certificates for delegation to child | object, and any number of CA certificates for delegation to child | |||
CAs. | CAs. | |||
If a TA uses a single remote publication server (per per [RFC8181]) | If a TA uses a single remote publication server (per [RFC8181]) for | |||
for its key pairs per, then it MUST include all <publish/> and | its key pairs, then it MUST include all <publish/> and <withdraw/> | |||
<withdraw/> Protocol Data Units (PDUs) for the products of each of | Protocol Data Units (PDUs) for the products of each of its key pairs | |||
its key pairs in a single query in order to reduce the risk of RPs | in a single query in order to reduce the risk of RPs seeing | |||
seeing inconsistent data in the TA's RPKI repositories. | inconsistent data in the TA's RPKI repositories. | |||
If a TA uses multiple publication servers, then the content for | If a TA uses multiple publication servers, then the content for | |||
different key pairs will be out of sync at times. The TA SHOULD | different key pairs will be out of sync at times. The TA SHOULD | |||
ensure that the duration of these moments is limited to the shortest | ensure that the duration of these moments is limited to the shortest | |||
possible time. Furthermore, the following should be observed: | possible time. Furthermore, the following should be observed: | |||
* In cases where a CA certificate is revoked or replaced by a | * In cases where a CA certificate is revoked or replaced by a | |||
certificate with a reduced set of resources, these changes will | certificate with a reduced set of resources, these changes will | |||
not take effect fully until all the relevant repository | not take effect fully until all the relevant repository | |||
publication points have been updated. Given that TA private key | publication points have been updated. Given that TA private key | |||
End of changes. 4 change blocks. | ||||
15 lines changed or deleted | 16 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |