On the Use of the Cryptographic Message Syntax (CMS) Signing-Time Attribute in Resource Public Key Infrastructure (RPKI) Signed Objects
updates
- rfc-6488 — Signed Object Template for the Resource Public Key Infrastructure (RPKI)
Extracted elements (16)
As of January 2024, 83.8% of Signed Objects already had a CMS signing-time matching the file's rsync mod-time, demonstrating that mandating this practice formalizes already-prevalent behavior and that RPs would immediately see reduction in rsync processing.
Restricting RPKI Signed Objects to a single field (signing-time) for storing the signing time—rather than allowing both signing-time and binary-signing-time—removes potential for ambiguity that existed when both attributes could be present with differing values.
The CMS signing-time attribute is leveraged to align file mod-times across RRDP and rsync, enabling rsync's default file comparison logic (mod-time + file size) to skip re-transferring files already fetched via RRDP, reducing bandwidth, disk I/O, and CPU usage.
Analysis of rpkiviews archives from June 2022 to January 2024 confirmed that all commonly used Trust Anchors and subordinate CAs already produce Signed Objects containing a CMS signing-time attribute, so mandating it does not cause non-compliance.
No Signed Objects with a CMS binary-signing-time attribute were found in public repositories in the analyzed period, so disallowing it does not cause any existing commonly used TA or CA to become non-compliant.
RPs can use rsync's --compare-dest=DIR option to avoid re-downloading files already available from a synthesized RRDP filesystem hierarchy, using the directory of previously fetched and validated RPKI data in its original DER-encoded form to ensure file size matches.
The binary-signing-time attribute (Section 2.1.6.4.4 of RFC 6488) is disallowed entirely; its section is removed. The signedAttrs field MUST NOT contain the binary-signing-time attribute OID 1.2.840.113549.1.9.16.2.46.
The signedAttrs element MUST be present and MUST include the content-type, message-digest, and signing-time attributes. Other signed attributes MUST NOT be included.
The signing-time attribute MUST be present in RPKI Signed Objects, upgrading it from optional (MAY) to mandatory per the RFC 6488 update.
To avoid needless retransfers of unchanged files in consecutive rsync synchronizations, Repository Operators SHOULD ensure that the last modification timestamp of a file remains unchanged when the content of the file is unchanged.
When serializing RPKI Signed Objects retrieved via RRDP to a filesystem hierarchy, Relying Parties SHOULD set the mod-time of the file to the value of the CMS signing-time attribute contained within the Signed Object.
When serializing RPKI Signed Objects to a filesystem hierarchy for publication via rsync, Repository Operators SHOULD set the mod-time of the file to the value of the CMS signing-time attribute contained within the Signed Object.
The CMS signing-time attribute (OID 1.2.840.113549.1.9.5) is a signed attribute in the SignerInfo object of an RPKI Signed Object representing the purported time at which the object was signed by its issuer.
The signedAttrs field in the SignerInfo object MUST contain exactly three attributes: content-type (OID 1.2.840.113549.1.9.3), message-digest (OID 1.2.840.113549.1.9.4), and signing-time (OID 1.2.840.113549.1.9.5).
No requirement is imposed concerning the correctness of the signing-time attribute; it does not provide reliable information on the actual time the signature was produced and bears no relevance for seamless switchover between RRDP and rsync.
Restricting the RPKI Signed Object profile to only the signing-time attribute (removing binary-signing-time) eliminates the ambiguity that arose when both attributes were present but expressed different date/time values, even though RFC 6019 mandated they match.