Internet-Draft | TST Header | August 2025 |
Birkholz, et al. | Expires 2 March 2026 | [Page] |
This document defines two CBOR Signing And Encrypted (COSE) header parameters for incorporating RFC 3161-based timestamping into COSE message structures (COSE_Sign
and COSE_Sign1
).
This enables the use of established RFC 3161 timestamping infrastructure in COSE-based protocols.¶
This note is to be removed before publishing as an RFC.¶
Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ietf-cose-tsa-tst-header-parameter/.¶
Source for this draft and an issue tracker can be found at https://github.com/ietf-scitt/draft-birkholz-cose-tsa-tst-header-parameter.¶
This Internet-Draft is submitted in full conformance with the 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 2 March 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
RFC 3161 [RFC3161] provides a method to timestamp a message digest to prove that it was created before a given time.¶
This document defines two new CBOR Object Signing and Encryption (COSE) [STD96] header parameters that carry the TimestampToken (TST) output of RFC 3161, thus allowing existing and widely deployed trust infrastructure to be used with COSE structures used for signing (COSE_Sign
and COSE_Sign1
).¶
This section discusses two use cases, each representing one of the two modes of use defined in Section 2. As the security characteristics of the two cases differ, care must be taken when choosing the appropriate mode for a given application. See Section 5.1 for a discussion on the security of the implementations.¶
The primary use case is that of "long-term signatures", i.e., signatures that can still be verified even after the signing certificate has expired. This can address situations where it is important to prevent subsequent denial by the signer or to verify signatures made using (very) short-term certificates. To achieve this, the document signer acquires a fresh TST for the document's signature from a trusted TSA and concatenates it with the document. Later, when a relying party verifies the signed document and its associated TST, they can be certain that the document was signed at least at the time specified by the TSA, and that the signing certificate was valid at the time the signature was made.¶
This primary usage scenario motivates the "COSE then Timestamp" mode described in Section 2.1.¶
The second use case is new. It is the notarization of a signed document by registering it with a transparency service. This is common practice for ensuring the accountability and auditability of issued documents, which are typically referred to as "statements" in this context. It is also common practice to only register the signed parts of a statement (the "signed statement" portion) with a transparency service, in order to reduce the complexity of consistency checks at a later stage, as well as avoiding the need to retrieve or reconstruct unsigned parts. Once the signed parts of a document have been registered in the append-only log at a transparency service, the log entry cannot be changed. In order to avoid losing the TST during the registration process, the TST must be included in the signed statement. To achieve this, the issuer acquires a TST from a TSA, includes it in the to-be-signed part of the statement so that the resulting signed statement includes the TST, and then registers the signed parts (rendering it a "transparent statement"). Later on, a relying party consuming the transparent statement including the TST can be certain that the statement was signed by the issuer at least at the time specified by the TSA. If the issuer's signing key has expired (or been compromised), the authenticity of the statement can be ascertained by ensuring that no revocation information was made public before the time asserted by the issuer and registered at the transparency service.¶
This new usage scenario motivates the "Timestamp then COSE" mode defined in Section 2.2.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
There are two different modes of composing COSE protection and timestamping, motivated by the usage scenarios discussed above.¶
The diagrams in this section illustrate the processing flow of the specified modes.
For simplicity, only the COSE_Sign1
processing is shown.
Similar diagrams for COSE_Sign
can be derived by allowing multiple private-key
parallelogram boxes and replacing the label [signature]
with [signatures]
.¶
Figure 1 shows the case where the signature(s) field of the signed COSE object is digested and submitted to a TSA to be timestamped. The obtained timestamp token is then added back as an unprotected header into the same COSE object.¶
This mode is utilized when a record of the timing of the signature operation is desired.¶
In this context, timestamp tokens are similar to a countersignature made by the TSA.¶
The two modes described in Section 2.2 and Section 2.1 use different inputs into the timestamping machinery, and consequently create different kinds of binding between COSE and TST. To clearly separate their semantics two different COSE header parameters are defined as described in the following subsections.¶
3161-ctt
The 3161-ctt
COSE unprotected header parameter MUST be used for the mode described in Section 2.1.¶
The 3161-ctt
unprotected header parameter contains a DER-encoded RFC3161 TimeStampToken
wrapped in a CBOR byte string (Major type 2).¶
The MessageImprint
sent in the request to the TSA MUST be:¶
COSE_Sign1
message, or¶
COSE_Sign
message.¶
In either case, to minimize dependencies, the hash algorithm SHOULD be the same as the algorithm used for signing the COSE message. This may not be possible if the timestamp token has been obtained outside the processing context in which the COSE object is assembled.¶
Refer to Section 3.1.1 and Section 3.1.2 for concrete examples of MessageImprint
computation.¶
MessageImprint
Computation for COSE_Sign1
The following illustrates how MessageImprint
is computed using a sample COSE_Sign1
message.¶
Given the COSE_Sign1
message¶
18( [ / protected h'a10126' / << { / alg / 1:-7 / ECDSA 256 / } >>, / unprotected / { / kid / 4:'11' }, / payload / 'This is the content.', / signature / h'8eb33e4ca31d1c465ab05aac34cc6b23d58fef5c083106c4 d25a91aef0b0117e2af9a291aa32e14ab834dc56ed2a223444547e01f11d3b0916e5 a4c345cacb36' ] )¶
the bstr
-wrapped signature
¶
58 40 # bytes(64) 8eb33e4ca31d1c465ab05aac34cc6b23 d58fef5c083106c4d25a91aef0b0117e 2af9a291aa32e14ab834dc56ed2a2234 44547e01f11d3b0916e5a4c345cacb36¶
(including the heading bytes 0x5840
) is used as input for computing the MessageImprint
.¶
When using SHA-256, the resulting MessageImprint
is¶
SEQUENCE { SEQUENCE { OBJECT IDENTIFIER sha-256 (2 16 840 1 101 3 4 2 1) NULL } OCTET STRING 44 C2 41 9D 13 1D 53 D5 55 84 B5 DD 33 B7 88 C2 4E 55 1C 6D 44 B1 AF C8 B2 B8 5E 69 54 76 3B 4E }¶
MessageImprint
Computation for COSE_Sign
The following illustrates how MessageImprint
is computed using a sample COSE_Sign
message.¶
Given the COSE_Sign
message¶
98( [ / protected / h'', / unprotected / {}, / payload / 'This is the content.', / signatures / [ [ / protected h'a10126' / << { / alg / 1:-7 / ECDSA 256 / } >>, / unprotected / { / kid / 4:'11' }, / signature / h'e2aeafd40d69d19dfe6e52077c5d7ff4e408282cbefb 5d06cbf414af2e19d982ac45ac98b8544c908b4507de1e90b717c3d34816fe926a2b 98f53afd2fa0f30a' ] ] ] )¶
the signatures
array¶
81 # array(1) 83 # array(3) 43 # bytes(3) a10126 a1 # map(1) 04 # unsigned(4) 42 # bytes(2) 3131 # "11" 58 40 # bytes(64) e2aeafd40d69d19dfe6e52077c5d7ff4 e408282cbefb5d06cbf414af2e19d982 ac45ac98b8544c908b4507de1e90b717 c3d34816fe926a2b98f53afd2fa0f30a¶
is used as input for computing the MessageImprint
.¶
When using SHA-256, the resulting MessageImprint
is¶
SEQUENCE { SEQUENCE { OBJECT IDENTIFIER sha-256 (2 16 840 1 101 3 4 2 1) NULL } OCTET STRING 80 3F AD A2 91 2D 6B 7A 83 3A 27 BD 96 1C C0 5B C1 CC 16 47 59 B1 C5 6F 7A A7 71 E4 E2 15 26 F7 }¶
3161-ttc
The 3161-ttc
COSE protected header parameter MUST be used for the mode described in Section 2.2.¶
The 3161-ttc
protected header parameter contains a DER-encoded RFC3161 TimeStampToken
wrapped in a CBOR byte string (Major type 2).¶
The MessageImprint
sent to the TSA (Section 2.4 of [RFC3161]) MUST be the hash of the payload of the COSE signed object.
This does not include the bstr
-wrapping, only the payload bytes.
(For an example, see Appendix A.1.)¶
To minimize dependencies, the hash algorithm used for signing the COSE message SHOULD be the same as the algorithm used in the RFC3161 MessageImprint. However, this may not be possible if the timestamp requester and the COSE message signer are different entities.¶
RFC 3161 timestamp tokens use CMS as signature envelope format. [STD70] provides the details about signature verification, and [RFC3161] provides the details specific to timestamp token validation. The payload of the signed timestamp token is the TSTInfo structure defined in [RFC3161], which contains the MessageImprint that was sent to the TSA. The hash algorithm is contained in the MessageImprint structure, together with the hash itself.¶
As part of the signature verification, the receiver MUST make sure that the MessageImprint in the embedded timestamp token matches a hash of either the payload, signature, or signature fields, depending on the mode of use and type of COSE structure.¶
Appendix B of [RFC3161] provides an example that illustrates how timestamp tokens can be used to verify signatures of a timestamped message when utilizing X.509 certificates.¶
Please review the Security Considerations section in [RFC3161]; these considerations apply to this document as well.¶
Also review the Security Considerations section in [STD96]. These considerations apply to this document as well, particularly with regard to the need for implementations to protect private key material. Additionally, solutions based on the COSE header parameters defined in this document must be able to report compromised keys promptly.¶
The following scenario assumes an attacker can manipulate the clocks on the COSE signer and its relying parties, but not the TSA. It is also assumed that the TSA is a trusted third party, so the attacker cannot impersonate the TSA and create valid timestamp tokens. In such a setting, any tampering with the COSE signer's clock does not have an impact because, once the timestamp is obtained from the TSA, it becomes the only reliable source of time. However, in both CTT and TTC mode, a denial of service can occur if the attacker can adjust the relying party's clock so that the CMS validation fails. This could disrupt the timestamp validation.¶
In CTT mode, an attacker could manipulate the unprotected header by removing or replacing the timestamp. To avoid that, the signed COSE object should be integrity protected during transit and at rest.¶
In TTC mode, the TSA is given an opaque identifier (a cryptographic hash value) for the payload. While this means that the content of the payload is not directly revealed, to prevent comparison with known payloads or disclosure of identical payloads being used over time, the payload would need to be armored, e.g., with a nonce that is shared with the recipient of the header parameter but not the TSA. Such a mechanism can be employed inside the ones described in this specification, but is out of scope for this document.¶
The resolution, accuracy, and precision of the TSA clock, as well as the expected latency introduced by round trips to and from the TSA must be taken into account when implementing solutions based on the COSE header parameters defined in this document.¶
CTT and TTC modes have different semantic meanings. An implementation must ensure that the contents of the CTT and TCC headers are interpreted according to their specific semantics. In particular, symmetric to the signature and assembly mechanics, each mode has its own separate verification algorithm.¶
Implementers MUST clearly differentiate between RFC 3161 TSA timestamps proving the existence of payload data at an earlier point in time (TTC) and timestamps explicitly providing evidence of the existence of the cryptographic signature (CTT). Failure to clearly distinguish between these timestamp semantics can result in vulnerabilities, such as incorrectly accepting signatures created after key revocation based on older payload-only timestamps. Validators must not interpret protected-header payload timestamps as proof of signature creation time and should rely exclusively on RFC 3161 TSA timestamps explicitly covering signature data for determining signature validity timing.¶
IANA has allocated the COSE header parameters defined in Table 1 in the "COSE Header Parameters" registry [IANA.cose_header-parameters].¶
Name | Label | Value Type | Value Registry | Description | Reference |
---|---|---|---|---|---|
3161-ttc
|
269 | bstr | - | RFC 3161 timestamp token: Timestamp then COSE | RFCthis, Section 3.2 |
3161-ctt
|
270 | bstr | - | RFC 3161 timestamp token: COSE then Timestamp | RFCthis, Section 3.1 |
The payload¶
This is the content.¶
is hashed using SHA-256 to create the TimeStampReq
object¶
SEQUENCE { INTEGER 1 SEQUENCE { SEQUENCE { OBJECT IDENTIFIER sha-256 (2 16 840 1 101 3 4 2 1) NULL } OCTET STRING 09 E6 38 D4 AA 95 FD 72 71 86 62 03 59 53 03 BC E2 32 F4 62 A9 4D 38 E3 93 77 3C D3 AA E3 F6 B0 } BOOLEAN TRUE }¶
which is sent to the Time Stamping Authority.¶
A TimeStampResp
is returned which contains the TimeStampToken
¶
SEQUENCE { OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2) [0] { SEQUENCE { INTEGER 3 SET { SEQUENCE { OBJECT IDENTIFIER sha-512 (2 16 840 1 101 3 4 2 3) NULL } } SEQUENCE { OBJECT IDENTIFIER tSTInfo (1 2 840 113549 1 9 16 1 4) [0] { OCTET STRING, encapsulates { SEQUENCE { INTEGER 1 OBJECT IDENTIFIER '1 2 3 4 1' SEQUENCE { SEQUENCE { OBJECT IDENTIFIER sha-256 (2 16 840 1 101 3 4 2 1) NULL } OCTET STRING 09 E6 38 D4 AA 95 FD 72 71 86 62 03 59 53 03 BC E2 32 F4 62 A9 4D 38 E3 93 77 3C D3 AA E3 F6 B0 } INTEGER 12096870 GeneralizedTime 29/08/2025 07:45:46 GMT BOOLEAN TRUE [...]¶
The contents of the TimeStampToken
are bstr
-wrapped and added to the protected headers bucket which is then signed alongside the original payload to obtain the COSE_Sign1
object¶
18([ <<{1: -7, 269: h'3082154906092a864886f70d010702a082153a308215 36020103310f300d0609608648016503040203050030820184060b2a864886f70d010 9100104a08201730482016f3082016b02010106042a0304013031300d060960864801 65030402010500042009e638d4aa95fd7271866203595303bce232f462a94d38e3937 73cd3aae3f6b0020400b89566180f32303235303832393037343534365a0101ffa082 0111a482010d308201093111300f060355040a13084672656520545341310c300a060 355040b130354534131763074060355040d136d546869732063657274696669636174 65206469676974616c6c79207369676e7320646f63756d656e747320616e642074696 d65207374616d70207265717565737473206d616465207573696e6720746865206672 65657473612e6f7267206f6e6c696e652073657276696365733118301606035504031 30f7777772e667265657473612e6f72673122302006092a864886f70d010901161362 7573696c657a617340676d61696c2e636f6d3112301006035504071309577565727a6 2757267310b3009060355040613024445310f300d0603550408130642617965726ea0 82100830820801308205e9a003020102020900c1e986160da8e982300d06092a86488 6f70d01010d05003081953111300f060355040a130846726565205453413110300e06 0355040b1307526f6f74204341311830160603550403130f7777772e6672656574736 12e6f72673122302006092a864886f70d0109011613627573696c657a617340676d61 696c2e636f6d3112301006035504071309577565727a62757267310f300d060355040 8130642617965726e310b3009060355040613024445301e170d313630333133303135 3733395a170d3236303331313031353733395a308201093111300f060355040a13084 672656520545341310c300a060355040b130354534131763074060355040d136d5468 6973206365727469666963617465206469676974616c6c79207369676e7320646f637 56d656e747320616e642074696d65207374616d70207265717565737473206d616465 207573696e672074686520667265657473612e6f7267206f6e6c696e6520736572766 9636573311830160603550403130f7777772e667265657473612e6f72673122302006 092a864886f70d0109011613627573696c657a617340676d61696c2e636f6d3112301 006035504071309577565727a62757267310b3009060355040613024445310f300d06 03550408130642617965726e30820222300d06092a864886f70d01010105000382020 f003082020a0282020100b591048c4e486f34e9dc08627fc2375162236984b82cb130 beff517cfc38f84bce5c65a874dab2621ae0bce7e33563e0ede934fd5f8823159f078 48808227460c1ed88261706f4281334359dfbb81bd1353fc179610af1a8c8c865dc00 ea23b3a89be6bd03ba85a9ec827d60565905e22d6a584ed1380ae150280cee397e98a 012f380464007862443bc077cb95f421af31712d9683cdb6dffbaf3c8ba5ba566ae52 3d459d6177346d4d840e27886b7c01c5b890d78a2e27bba8dd2f9a2812e157d62f921 c65962548069dcdb7d06de181de0e9570d66f87220ce28b628ab55906f3ee0c210f70 51e8f4858af8b9a92d09e46af2d9cba5bfcfad168cdf604491a4b06603b114caf7031 f065e7eeefa53c575f3490c059d2e32ddc76ac4d4c4c710683b97fd1be591bc610551 86d88f9a0391b307b6f91ed954daa36f9acd6a1e14aa2e4adf17464b54db18dbb6ffe 30080246547370436ce4e77bae5de6fe0f3f9d6e7ffbeb461e794e92fb0951f8aae61 a412cce9b21074635c8be327ae1a0f6b4a646eb0f8463bc63bf845530435d19e80251 1ec9f66c3496952d8becb69b0aa4d4c41f60515fe7dcbb89319cdda59ba6aea4be3ce ae718e6fcb6ccd7db9fc50bb15b12f3665b0aa307289c2e6dd4b111ce48ba2d9efdb5 a6b9a506069334fb34f6fc7ae330f0b34208aac80df3266fdd90465876ba2cb898d95 05315b6e7b0203010001a38201db308201d730090603551d1304023000301d0603551 d0e041604146e760b7b4e4f9ce160ca6d2ce927a2a294b37737301f0603551d230418 30168014fa550d8c346651434cf7e7b3a76c95af7ae6a497300b0603551d0f0404030 206c030160603551d250101ff040c300a06082b06010505070308306306082b060105 0507010104573055302a06082b06010505073002861e687474703a2f2f7777772e667 265657473612e6f72672f7473612e637274302706082b06010505073001861b687474 703a2f2f7777772e667265657473612e6f72673a3235363030370603551d1f0430302 e302ca02aa0288626687474703a2f2f7777772e667265657473612e6f72672f63726c 2f726f6f745f63612e63726c3081c60603551d200481be3081bb3081b80601003081b 2303306082b060105050702011627687474703a2f2f7777772e667265657473612e6f 72672f667265657473615f6370732e68746d6c303206082b060105050702011626687 474703a2f2f7777772e667265657473612e6f72672f667265657473615f6370732e70 6466304706082b06010505070202303b1a39467265655453412074727573746564207 4696d657374616d70696e6720536f6674776172652061732061205365727669636520 285361615329300d06092a864886f70d01010d05000382020100a5c944e2c6fac0a14 d930a7fd0a0b172b41fc1483c3e957c68a2bcd9b9764f1a950161fd72472d41a5eed2 77786203b5422240fb3a26cde176087b6fb1011df4cc19e2571aa4a051109665e94c4 6f50bd2adee6ac4137e251b25a39dabda451515d8ff9e07209e8ec20b7874f7e1a0ed e7c00937fe84a334f8b3265ced2d8ed9df61396583677feb382c1ee3b23e6ea5f05df 30de7b9f89005d25266f612f39c8b4f6daba6d7bfbac19632b90637329f52a6f066a1 0e43eaa81f849a6c5fe3fe8b5ea23275f687f2052e502ea6c30762a668cce07871dd8 e97e315bba929e25589977a0a312ce96c5106b1437c779f2b361b182888f3ee8a2343 74fa063e956192627f7c431073965d1260928eba009e803429ae324cf96f042354f37 bca5afddc79f79346ab388bfc79f01dc9861254ea6cc129941076b83d20556f3be513 26837f2876f7833b370e7c3d410523827d4f53400c72218d75229ff10c6f8893a9a3a 1c0c42bb4c898c13df41c7f6573b4fc56515971a610a7b0d2857c8225a9fb204eacec a2e8971aa1af87886a2ae3c72fe0a0aae842980a77bef16b92115458090d982b59466 03764e75a0ad3d11454b9986f678b9ab6afe8497033ae3abfd4eb43b7bc9dee688159 49e6481582a82e785277f2282107efe390200e0508acb8ea82ea2505276f3c9da2a3d 3b4ad38bbf8842bda36fc2448291f558dc02dd1e0308207ff308205e7a00302010202 0900c1e986160da8e980300d06092a864886f70d01010d05003081953111300f06035 5040a130846726565205453413110300e060355040b1307526f6f7420434131183016 0603550403130f7777772e667265657473612e6f72673122302006092a864886f70d0 109011613627573696c657a617340676d61696c2e636f6d3112301006035504071309 577565727a62757267310f300d0603550408130642617965726e310b3009060355040 613024445301e170d3136303331333031353231335a170d3431303330373031353231 335a3081953111300f060355040a130846726565205453413110300e060355040b130 7526f6f74204341311830160603550403130f7777772e667265657473612e6f726731 22302006092a864886f70d0109011613627573696c657a617340676d61696c2e636f6 d3112301006035504071309577565727a62757267310f300d06035504081306426179 65726e310b300906035504061302444530820222300d06092a864886f70d010101050 00382020f003082020a0282020100b6028e0e3032f11110d964cda94b9d0278e1942a e913aaa59907cda69793995bd9ac7e33bad9fe3704da1c01a98d21afe3f591a59d706 7705167998f5016722e0ab462b21f439171d2cfcc4593f3735af794a5ab311f6c010c 7898de33d75c4510ee76f4bd1d1498cf17d303f06a5dd9f796cc6ca9b657a56fe3ea4 fefbe7ce6b6a18d3e35a30cee5ff170d1cf39a333d3fda8964d22db685b29e561be89 0f0aa845873b2e84ab26ab839ffe8fade9d23bb31e61d273cc9b880649185fabecfa0 534600aba901b614e2e854582dea2226fc19cd7df52bed50d8777cd9988c053a3fc7d c3287a068a4ff12b713cd9803666e955385456ff38f80298cf6b93856e9224774a66c f1cdd11c2f8efd85203d7458b25664b13ed639cded4ff8113d6cc5353d2729473c3c3 07157c722aa5b5dd0bfb2d6c38b1b93749c881ec60026d08951b3824bd71bacbce473 aebd636f0b918b4a2c8ff4694f07457af2d6f1cf82554d1770fd79ff5d314dcd104cd dcabc94138056dfcf017e7eb8572fd52f70144f188da05f5823f58dd06297e7387bed 2d772c13da8266601045fe412dd70986c0c987ba7344b9037387516d258e7885b51f8 968b7f2601213bc4cb4c85f8ff0b84af6a988337cdfb81868f7ecf31dca6716d7ec2d d802c1672629e5c0052cb357dd29aafc43f615b3b1ff9d4e1ce08c71c73e1febb7dc5 6a33621329e9ed6c230203010001a382024e3082024a300c0603551d1304053003010 1ff300e0603551d0f0101ff0404030201c6301d0603551d0e04160414fa550d8c3466 51434cf7e7b3a76c95af7ae6a4973081ca0603551d230481c23081bf8014fa550d8c3 46651434cf7e7b3a76c95af7ae6a497a1819ba481983081953111300f060355040a13 0846726565205453413110300e060355040b1307526f6f74204341311830160603550 403130f7777772e667265657473612e6f72673122302006092a864886f70d01090116 13627573696c657a617340676d61696c2e636f6d31123010060355040713095775657 27a62757267310f300d0603550408130642617965726e310b30090603550406130244 45820900c1e986160da8e98030330603551d1f042c302a3028a026a02486226874747 03a2f2f7777772e667265657473612e6f72672f726f6f745f63612e63726c3081cf06 03551d200481c73081c43081c1060a2b0601040181f22401013081b2303306082b060 105050702011627687474703a2f2f7777772e667265657473612e6f72672f66726565 7473615f6370732e68746d6c303206082b060105050702011626687474703a2f2f777 7772e667265657473612e6f72672f667265657473615f6370732e706466304706082b 06010505070202303b1a394672656554534120747275737465642074696d657374616 d70696e6720536f667477617265206173206120536572766963652028536161532930 3706082b06010505070101042b3029302706082b06010505073001861b687474703a2 f2f7777772e667265657473612e6f72673a32353630300d06092a864886f70d01010d 0500038202010068af7ebf938562ef4ceb3b580be2faf6cc35a26772962f3d95901fa 5630c87d09198984ce8a06a33f8a9c282ed9f1cb11ac6c23e17108ee4efce6fb294de 95c133262255725522ca61971d4a3b7f78250dfb8d4aeec0fb1959b164100520b9c10 e64c62662e4ad4d0abae2298fc948fc4e99e8d9e6b8fdbe4404121ec7c1422eacb2c9 d7328e07396e60b4f3bb803ad4a555c80fefb53f85e7764a0a9fb4afc399f4cd2f5fb f587105c6081cf3d05337b6bb7d1b010b749f4888c912f3696ba1b6902d77b7dfc046 c04a0cc1ec4f8d185e2da55dfb7bc2a2036c6219246a4f99ddbb6f1f829398f3b803d c0ad90dcb59bef4c27c77404b99043b78271867991152c399f12cbfc4c625adc09635 5ae44e342100ec517a502e2f06f940b8d43599bbc1154f8ae761a0b0d555fb4a1391d 4f3420af8dbf12f2d7ddb9d77dce1537804074af175e4f2d6d55b34b5d6f7dcbdd317 30af56480d4c0cff143f9e83bc151866d0ba0f0bbdc47fe27864176bbd6c1ab85df32 5edf777889bc4471bf3fa73e56cc591e8b160cda7b0786a1ec04ac3b24fa2e28d5d19 e5e48004d5e166a83c82ec6fd54fb385ebaf7133a85b52de46db5244e1c34ae8d36e7 12f9fce0d493d7d3edd586c6198e3ec3e6e96346f417ac9f221e0aff33a8f6a0b1ef4 c023630b76adaa8d91433825ecc41c49a5b98b181c7da30e997ab954c73c2cd805afd a993182038a308203860201013081a33081953111300f060355040a13084672656520 5453413110300e060355040b1307526f6f74204341311830160603550403130f77777 72e667265657473612e6f72673122302006092a864886f70d0109011613627573696c 657a617340676d61696c2e636f6d3112301006035504071309577565727a627572673 10f300d0603550408130642617965726e310b3009060355040613024445020900c1e9 86160da8e982300d06096086480165030402030500a081b8301a06092a864886f70d0 10903310d060b2a864886f70d0109100104301c06092a864886f70d010905310f170d 3235303832393037343534365a302b060b2a864886f70d010910020c311c301a30183 0160414916da3d860ecca82e34bc59d1793e7e968875f14304f06092a864886f70d01 0904314204408831bbe259ac6314847a26804e155a6d04c485b43aa55d2dd4c6dd7f5 943b5bd5a3dd24f05a17a2658ef65759ce4e0001f2b8ff99e38718044ab3784b3f174 b6300d06092a864886f70d0101010500048202000b1536e5491e8e941364fa7f2640d 30bfc8543dd8d472dad2db6df0c0483633d2dd4b9455f05d6e65a48ad9382e03741fc be1e0c8f7f607bae33979f9f4f71a07d852db0869518733fafe60779867781f584fc5 221a4fbdfd0736e976543ff5170b5520a65ea8b0b04f8f92b39808b4e3ed74d66d63b a0d1db353baa829db1d1905e4e833fb8f3824acff1a18a4735e5381b89c5e0df92d16 ec0a9a552298c52027e7bde806c153c1161d466d706455c0ae32d0cb108ca86209f57 edc3a7f4b36215170994d9ecb9e69d31bab52567b84a3a1568540469984d9b5b6bf63 4f9d022999cbd6519516d53065f919bee0f520b6b539e2f8fca66f2590c1ce032cb5b fdb170ad32125372e651ca4fa7a05ac72f7d5814ea324f99ad2c8110c06853fcf7d2a f1f28543b0f9ceba2a0f1536faabb07587ebe1d1dddd59fc804697928276613f8d146 f966812da7f25748cfcd298891acdfe041632b760677dfd53865d04d186ce7735d119 0aee0b2cddc0c55e6c48acfda749ec20af4dc0739430d10388bc83efed192c22917f2 f4a67474ac5f36e6608bb71631803fd5fb1a78d7973dd2a01c84dda46f9befccebfcb 300ab73628716b8151acf94e58af15de27c141c8d5ef4f82a51bbebc54cb2e1d4ac2f 0c05be7d3db16b9687f5a2fd28fb110f78f82a0ad0370a16cd9cbb59dc0814cba99e1 11e33482e45c9b4f948bff15eba70'}>>, {4: '11'}, 'This is the content.', h'f5f0f27964f178dcb2254b30fdfdc48abc4499beaea7cb80f4004f30403 f13a44bcca24fc61c5d71d3823bac04b923011dc7d31de35df1aefcd5a8ec5fe0fe6e ' ])¶
Starting with the following COSE_Sign1
object¶
18( [ / protected h'a10126' / << { / alg / 1:-7 / ECDSA 256 / } >>, / unprotected / { / kid / 4:'11' }, / payload / 'This is the content.', / signature / h'8eb33e4ca31d1c465ab05aac34cc6b23d58fef5c083106c4d 25a91aef0b0117e2af9a291aa32e14ab834dc56ed2a223444547e01f11d3b0916e5a4 c345cacb36' ] )¶
The CBOR-encoded signature field is hashed using SHA-256 to create the following TimeStampReq
object¶
SEQUENCE { INTEGER 1 SEQUENCE { SEQUENCE { OBJECT IDENTIFIER sha-256 (2 16 840 1 101 3 4 2 1) NULL } OCTET STRING DD 94 71 EF E7 43 C4 05 13 35 DF 8F 6D 28 82 F3 BA DC 38 77 00 F7 ED 3F 70 91 67 2A 3E EA F7 C8 } BOOLEAN TRUE }¶
which is sent to the Time Stamping Authority.¶
A TimeStampResp
is returned which contains the following TimeStampToken
¶
SEQUENCE { OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2) [0] { SEQUENCE { INTEGER 3 SET { SEQUENCE { OBJECT IDENTIFIER sha-512 (2 16 840 1 101 3 4 2 3) NULL } } SEQUENCE { OBJECT IDENTIFIER tSTInfo (1 2 840 113549 1 9 16 1 4) [0] { OCTET STRING, encapsulates { SEQUENCE { INTEGER 1 OBJECT IDENTIFIER '1 2 3 4 1' SEQUENCE { SEQUENCE { OBJECT IDENTIFIER sha-256 (2 16 840 1 101 3 4 2 1) NULL } OCTET STRING DD 94 71 EF E7 43 C4 05 13 35 DF 8F 6D 28 82 F3 BA DC 38 77 00 F7 ED 3F 70 91 67 2A 3E EA F7 C8 } INTEGER 12100074 GeneralizedTime 29/08/2025 07:53:00 GMT BOOLEAN TRUE [...]¶
The contents of the TimeStampToken
are bstr
-wrapped and added to the unprotected headers bucket in the original COSE_Sign1
object to obtain the following¶
18( [ / protected h'a10126' / << { / alg / 1:-7 / ECDSA 256 / } >>, / unprotected / { / 3161-ctt / 270 : h'3082154906092a864886f70d010702a082153a3082 1536020103310f300d0609608648016503040203050030820184060b2a864886f70d0 109100104a08201730482016f3082016b02010106042a0304013031300d0609608648 01650304020105000420dd9471efe743c4051335df8f6d2882f3badc387700f7ed3f7 091672a3eeaf7c8020400b8a1ea180f32303235303832393037353330305a0101ffa0 820111a482010d308201093111300f060355040a13084672656520545341310c300a0 60355040b130354534131763074060355040d136d5468697320636572746966696361 7465206469676974616c6c79207369676e7320646f63756d656e747320616e6420746 96d65207374616d70207265717565737473206d616465207573696e67207468652066 7265657473612e6f7267206f6e6c696e6520736572766963657331183016060355040 3130f7777772e667265657473612e6f72673122302006092a864886f70d0109011613 627573696c657a617340676d61696c2e636f6d3112301006035504071309577565727 a62757267310b3009060355040613024445310f300d0603550408130642617965726e a082100830820801308205e9a003020102020900c1e986160da8e982300d06092a864 886f70d01010d05003081953111300f060355040a130846726565205453413110300e 060355040b1307526f6f74204341311830160603550403130f7777772e66726565747 3612e6f72673122302006092a864886f70d0109011613627573696c657a617340676d 61696c2e636f6d3112301006035504071309577565727a62757267310f300d0603550 408130642617965726e310b3009060355040613024445301e170d3136303331333031 353733395a170d3236303331313031353733395a308201093111300f060355040a130 84672656520545341310c300a060355040b130354534131763074060355040d136d54 686973206365727469666963617465206469676974616c6c79207369676e7320646f6 3756d656e747320616e642074696d65207374616d70207265717565737473206d6164 65207573696e672074686520667265657473612e6f7267206f6e6c696e65207365727 669636573311830160603550403130f7777772e667265657473612e6f726731223020 06092a864886f70d0109011613627573696c657a617340676d61696c2e636f6d31123 01006035504071309577565727a62757267310b3009060355040613024445310f300d 0603550408130642617965726e30820222300d06092a864886f70d010101050003820 20f003082020a0282020100b591048c4e486f34e9dc08627fc2375162236984b82cb1 30beff517cfc38f84bce5c65a874dab2621ae0bce7e33563e0ede934fd5f8823159f0 7848808227460c1ed88261706f4281334359dfbb81bd1353fc179610af1a8c8c865dc 00ea23b3a89be6bd03ba85a9ec827d60565905e22d6a584ed1380ae150280cee397e9 8a012f380464007862443bc077cb95f421af31712d9683cdb6dffbaf3c8ba5ba566ae 523d459d6177346d4d840e27886b7c01c5b890d78a2e27bba8dd2f9a2812e157d62f9 21c65962548069dcdb7d06de181de0e9570d66f87220ce28b628ab55906f3ee0c210f 7051e8f4858af8b9a92d09e46af2d9cba5bfcfad168cdf604491a4b06603b114caf70 31f065e7eeefa53c575f3490c059d2e32ddc76ac4d4c4c710683b97fd1be591bc6105 5186d88f9a0391b307b6f91ed954daa36f9acd6a1e14aa2e4adf17464b54db18dbb6f fe30080246547370436ce4e77bae5de6fe0f3f9d6e7ffbeb461e794e92fb0951f8aae 61a412cce9b21074635c8be327ae1a0f6b4a646eb0f8463bc63bf845530435d19e802 511ec9f66c3496952d8becb69b0aa4d4c41f60515fe7dcbb89319cdda59ba6aea4be3 ceae718e6fcb6ccd7db9fc50bb15b12f3665b0aa307289c2e6dd4b111ce48ba2d9efd b5a6b9a506069334fb34f6fc7ae330f0b34208aac80df3266fdd90465876ba2cb898d 9505315b6e7b0203010001a38201db308201d730090603551d1304023000301d06035 51d0e041604146e760b7b4e4f9ce160ca6d2ce927a2a294b37737301f0603551d2304 1830168014fa550d8c346651434cf7e7b3a76c95af7ae6a497300b0603551d0f04040 30206c030160603551d250101ff040c300a06082b06010505070308306306082b0601 050507010104573055302a06082b06010505073002861e687474703a2f2f7777772e6 67265657473612e6f72672f7473612e637274302706082b06010505073001861b6874 74703a2f2f7777772e667265657473612e6f72673a3235363030370603551d1f04303 02e302ca02aa0288626687474703a2f2f7777772e667265657473612e6f72672f6372 6c2f726f6f745f63612e63726c3081c60603551d200481be3081bb3081b8060100308 1b2303306082b060105050702011627687474703a2f2f7777772e667265657473612e 6f72672f667265657473615f6370732e68746d6c303206082b0601050507020116266 87474703a2f2f7777772e667265657473612e6f72672f667265657473615f6370732e 706466304706082b06010505070202303b1a394672656554534120747275737465642 074696d657374616d70696e6720536f66747761726520617320612053657276696365 20285361615329300d06092a864886f70d01010d05000382020100a5c944e2c6fac0a 14d930a7fd0a0b172b41fc1483c3e957c68a2bcd9b9764f1a950161fd72472d41a5ee d277786203b5422240fb3a26cde176087b6fb1011df4cc19e2571aa4a051109665e94 c46f50bd2adee6ac4137e251b25a39dabda451515d8ff9e07209e8ec20b7874f7e1a0 ede7c00937fe84a334f8b3265ced2d8ed9df61396583677feb382c1ee3b23e6ea5f05 df30de7b9f89005d25266f612f39c8b4f6daba6d7bfbac19632b90637329f52a6f066 a10e43eaa81f849a6c5fe3fe8b5ea23275f687f2052e502ea6c30762a668cce07871d d8e97e315bba929e25589977a0a312ce96c5106b1437c779f2b361b182888f3ee8a23 4374fa063e956192627f7c431073965d1260928eba009e803429ae324cf96f042354f 37bca5afddc79f79346ab388bfc79f01dc9861254ea6cc129941076b83d20556f3be5 1326837f2876f7833b370e7c3d410523827d4f53400c72218d75229ff10c6f8893a9a 3a1c0c42bb4c898c13df41c7f6573b4fc56515971a610a7b0d2857c8225a9fb204eac eca2e8971aa1af87886a2ae3c72fe0a0aae842980a77bef16b92115458090d982b594 6603764e75a0ad3d11454b9986f678b9ab6afe8497033ae3abfd4eb43b7bc9dee6881 5949e6481582a82e785277f2282107efe390200e0508acb8ea82ea2505276f3c9da2a 3d3b4ad38bbf8842bda36fc2448291f558dc02dd1e0308207ff308205e7a003020102 020900c1e986160da8e980300d06092a864886f70d01010d05003081953111300f060 355040a130846726565205453413110300e060355040b1307526f6f74204341311830 160603550403130f7777772e667265657473612e6f72673122302006092a864886f70 d0109011613627573696c657a617340676d61696c2e636f6d31123010060355040713 09577565727a62757267310f300d0603550408130642617965726e310b30090603550 40613024445301e170d3136303331333031353231335a170d34313033303730313532 31335a3081953111300f060355040a130846726565205453413110300e060355040b1 307526f6f74204341311830160603550403130f7777772e667265657473612e6f7267 3122302006092a864886f70d0109011613627573696c657a617340676d61696c2e636 f6d3112301006035504071309577565727a62757267310f300d060355040813064261 7965726e310b300906035504061302444530820222300d06092a864886f70d0101010 5000382020f003082020a0282020100b6028e0e3032f11110d964cda94b9d0278e194 2ae913aaa59907cda69793995bd9ac7e33bad9fe3704da1c01a98d21afe3f591a59d7 067705167998f5016722e0ab462b21f439171d2cfcc4593f3735af794a5ab311f6c01 0c7898de33d75c4510ee76f4bd1d1498cf17d303f06a5dd9f796cc6ca9b657a56fe3e a4fefbe7ce6b6a18d3e35a30cee5ff170d1cf39a333d3fda8964d22db685b29e561be 890f0aa845873b2e84ab26ab839ffe8fade9d23bb31e61d273cc9b880649185fabecf a0534600aba901b614e2e854582dea2226fc19cd7df52bed50d8777cd9988c053a3fc 7dc3287a068a4ff12b713cd9803666e955385456ff38f80298cf6b93856e9224774a6 6cf1cdd11c2f8efd85203d7458b25664b13ed639cded4ff8113d6cc5353d2729473c3 c307157c722aa5b5dd0bfb2d6c38b1b93749c881ec60026d08951b3824bd71bacbce4 73aebd636f0b918b4a2c8ff4694f07457af2d6f1cf82554d1770fd79ff5d314dcd104 cddcabc94138056dfcf017e7eb8572fd52f70144f188da05f5823f58dd06297e7387b ed2d772c13da8266601045fe412dd70986c0c987ba7344b9037387516d258e7885b51 f8968b7f2601213bc4cb4c85f8ff0b84af6a988337cdfb81868f7ecf31dca6716d7ec 2dd802c1672629e5c0052cb357dd29aafc43f615b3b1ff9d4e1ce08c71c73e1febb7d c56a33621329e9ed6c230203010001a382024e3082024a300c0603551d13040530030 101ff300e0603551d0f0101ff0404030201c6301d0603551d0e04160414fa550d8c34 6651434cf7e7b3a76c95af7ae6a4973081ca0603551d230481c23081bf8014fa550d8 c346651434cf7e7b3a76c95af7ae6a497a1819ba481983081953111300f060355040a 130846726565205453413110300e060355040b1307526f6f742043413118301606035 50403130f7777772e667265657473612e6f72673122302006092a864886f70d010901 1613627573696c657a617340676d61696c2e636f6d311230100603550407130957756 5727a62757267310f300d0603550408130642617965726e310b300906035504061302 4445820900c1e986160da8e98030330603551d1f042c302a3028a026a024862268747 4703a2f2f7777772e667265657473612e6f72672f726f6f745f63612e63726c3081cf 0603551d200481c73081c43081c1060a2b0601040181f22401013081b2303306082b0 60105050702011627687474703a2f2f7777772e667265657473612e6f72672f667265 657473615f6370732e68746d6c303206082b060105050702011626687474703a2f2f7 777772e667265657473612e6f72672f667265657473615f6370732e70646630470608 2b06010505070202303b1a394672656554534120747275737465642074696d6573746 16d70696e6720536f6674776172652061732061205365727669636520285361615329 303706082b06010505070101042b3029302706082b06010505073001861b687474703 a2f2f7777772e667265657473612e6f72673a32353630300d06092a864886f70d0101 0d0500038202010068af7ebf938562ef4ceb3b580be2faf6cc35a26772962f3d95901 fa5630c87d09198984ce8a06a33f8a9c282ed9f1cb11ac6c23e17108ee4efce6fb294 de95c133262255725522ca61971d4a3b7f78250dfb8d4aeec0fb1959b164100520b9c 10e64c62662e4ad4d0abae2298fc948fc4e99e8d9e6b8fdbe4404121ec7c1422eacb2 c9d7328e07396e60b4f3bb803ad4a555c80fefb53f85e7764a0a9fb4afc399f4cd2f5 fbf587105c6081cf3d05337b6bb7d1b010b749f4888c912f3696ba1b6902d77b7dfc0 46c04a0cc1ec4f8d185e2da55dfb7bc2a2036c6219246a4f99ddbb6f1f829398f3b80 3dc0ad90dcb59bef4c27c77404b99043b78271867991152c399f12cbfc4c625adc096 355ae44e342100ec517a502e2f06f940b8d43599bbc1154f8ae761a0b0d555fb4a139 1d4f3420af8dbf12f2d7ddb9d77dce1537804074af175e4f2d6d55b34b5d6f7dcbdd3 1730af56480d4c0cff143f9e83bc151866d0ba0f0bbdc47fe27864176bbd6c1ab85df 325edf777889bc4471bf3fa73e56cc591e8b160cda7b0786a1ec04ac3b24fa2e28d5d 19e5e48004d5e166a83c82ec6fd54fb385ebaf7133a85b52de46db5244e1c34ae8d36 e712f9fce0d493d7d3edd586c6198e3ec3e6e96346f417ac9f221e0aff33a8f6a0b1e f4c023630b76adaa8d91433825ecc41c49a5b98b181c7da30e997ab954c73c2cd805a fda993182038a308203860201013081a33081953111300f060355040a130846726565 205453413110300e060355040b1307526f6f74204341311830160603550403130f777 7772e667265657473612e6f72673122302006092a864886f70d010901161362757369 6c657a617340676d61696c2e636f6d3112301006035504071309577565727a6275726 7310f300d0603550408130642617965726e310b3009060355040613024445020900c1 e986160da8e982300d06096086480165030402030500a081b8301a06092a864886f70 d010903310d060b2a864886f70d0109100104301c06092a864886f70d010905310f17 0d3235303832393037353330305a302b060b2a864886f70d010910020c311c301a301 830160414916da3d860ecca82e34bc59d1793e7e968875f14304f06092a864886f70d 010904314204401d3b1f355cc995b2c7a38dfee19a0815ae93a9078cea6db540501ee df305e9f9f41349096a089bf5358380d6ed01eb508cbb551d120e9aca924429148ef1 a229300d06092a864886f70d0101010500048202004f22fe5e554c950f7f74462adde 4f7c4c412d60479c6950c2509d1a5063e04c284eb42dda42e3591447b63fdc72c953e f04c81c1e59874c4d02cfb6b63de977d439998995e960a25755304a12ed23e7ccae97 678a3dd94bc4025399806c9d00454a740800d3dc13016143af48b80c1d24033694f2b edb7c25d35c065e9c2fe71cee598ac2e8700bed5b755f001da3227f85fc178f27c565 64ef5ff64b874916ab6fd2d966c542936a9940d0a5685463dc8e5b6ee82d639abb683 433603541db3362ad77667e2ded4160c8f87e5c048d6bd05a7831871bb1052ddac132 f35baadc2ceea41834efd276d4d2a8525879bd909b3d930d3cd4ef1d87d1a5f47bd9b ef00956fee8e55d2d40b7447074a7295b204f07ee086775729d9cdb59407956127223 88cb3af8a96fac65c79179c7e5292ce06e3f582e3f7d8fa6d7d41759bbd593b32a0fa c8149a2b015e795fca2810133c2d768ef8d9da66ba192cbf142d2e4571e491ed7f7b0 eb920f22c4492ba0260d30fef98a4d503693afe3dcc561b04bb3b32d8a49f27f988fe faa5f7b1af110bdad64a2825348a46651e1371e625c9792dfe9780528e5eb17f6078f cb418a420129e7a19bf8f27508b256e755753d8e6b436c384fa350c2e4e9018fd372c f54f303d462832675c8ac89f04c360a1d0d82f8d52ff7d815e74ad4aa19a68a9acfd2 450855dcb3b2a528063d426dc30268f', / kid / 4:'11' }, / payload / 'This is the content.', / signature / h'8eb33e4ca31d1c465ab05aac34cc6b23d58fef5c083106c4 d25a91aef0b0117e2af9a291aa32e14ab834dc56ed2a223444547e01f11d3b0916e5 a4c345cacb36' ] )¶
The editors would like to thank Alexey Melnikov, Carl Wallace, Carsten Bormann, Deb Cooley, Eric Vyncke, Francesca Palombini, Leonard Rosenthol, Linda Dunbar, Michael B. Jones, Michael Prorock, Mike Bishop, Mohamed Boucadair, Orie Steele, Roman Danyliw, Shuping Peng, Stefan Santesson, Steve Lasker, and Yingzhen Qu for their reviews and comments.¶
Carsten contributed part of the security considerations.¶
Orie contributed an improved version of the diagrams.¶