| 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. | ||||