Network Working Group | E. Cisbani |
Internet-Draft | D. Ribaudo |
Updates: 3161 (if approved) | G. Damiano |
Intended status: Standards Track | Intesi Group |
Expires: January 8, 2021 | July 7, 2020 |
Distributed Ledger Time-Stamp
draft-intesigroup-dlts-00
This document defines a standard to extend Time Stamp Tokens with Time Attestations recorded on Distributed Ledgers.
The aim is to provide long-term validity to Time Stamp Tokens, backward compatible with currently available software.
This document update RFC 3161.
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 January 8, 2021.
Copyright (c) 2020 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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Attesting that a file existed prior to a specific point in time can be useful - for example - to:
A Time-Stamp Token (TST) provided by a Time-Stamp Authority (TSA) compliant with RFC 3161 can be based on an accurate time source linked to Coordinated Universal Time, and can be very precise - it can prove the existence also at the second or less. It is such a consolidated standard that - for example - the European Union legally enforced its usage by eIDAS Regulation, European Standards and Technical Specifications [ETSI.EN.319.422] [ETSI.TS.101.861].
In an in-deep appraisal of Time Stamping Schemes conducted in 2001 by Masashi Une [IMES], PKI TSA was evaluated as one of the most desirables in term of security against alteration of a time stamp.
The integrity of the timestamping process that is inevitably bound to the integrity of the TSA gave rise to other proposals like ANSI X9.95 and ISO/IEC 18014-4.
Furthermore a TSA TST can be validated for a limited time - usually no longer than 20 years for technical reasons such as the TSA certificates expiration, or for economic reasons such as the cost of providing the validation service by TSA.
This situation brought about some solutions [ETSI.TS.102.778-4] aimed at mitigating the inconvenience by extending the validity of TSA timestamps.
Security of a Distributed Ledger (def. in Section 2) is based on hashes of data timestamped and widely published. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it.
The advantage of a Distributed Ledger Attestation (DLA) relies on the resilience of the distributed system and the overall design whose aim is the DL perpetual survival.
Based on a distributed trust scheme, a Distributed Ledger significantly increases security as already noted by Haber and Stornetta in 1991 [HaberStornetta].
In the case of a permissioned DL, security is provided by an authoritative network of trust [Hyperledger][NISTIR_8202], while in the case of a permissionless DL security is provided by the economic incentive for running full nodes [Nakamoto].
On the other hand, a DLA is not yet a standard solution. Furthermore, the bigger the network the less precise the DLA, because distributed nodes need time to reach consensus.
Since a DLA turns out to be a complementary element providing long-term validity to TST - the aim of this specification is to allow an extension of the Time-Stamp Token for Distributed Ledger Attestations (DLA).
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.
This document also refers to the following terms and definitions:
A Digital Ledger can be seen as an untrusted logger - serving a number of clients who wish to store their events in the log - kept honest by a number of auditors who will challenge the logger to prove its correct behaviour [CrosbyWallach].
A Merkle Tree data structure accomplishes this in a very efficient way by aggregating many requests and submitting periodically to the log only the root digest of the tree. This log is built as a hash chain (aka blockchain) of small blocks of data. Consequently, the entire chain can be shared and maintained by a large number of nodes, becoming a distributed system.
In a permissioned DL the number of nodes can be small enough to permit a quick synchronization and reach consensus concerning the state of the chain. In a permissionless DL the large number of nodes introduces a relevant delay in order to reach consensus.
In the case of Bitcoin, consensus is reached statistically. Usually in an average elapsed time of one hour six new blocks are added to the chain. A block of data that was added before the last six blocks, is considered to be practically immutable. This is due to the high computational power that would be required to rewrite the chain.
As a result of this scenario the elapsed time - from the request of aggregation of a digest to the proof consolidated inside the DL, may amount to one hour or more.
This is why we distinguish between a promise of attestation and a proof of attestation. Generally, an Aggregation Server provides only a promise to timestamp the client’s digest in the DL. However, when the aggregation is completed and the Merkle Tree root hash recorded in a block within the chain, the promise has not yet been confirmed.
Only after reaching consensus on that block can attestation be considered as proof, and made available by the Calendar Server.
For the sake of simplicity, the Aggregation Server and the Calendar Server can be implemented as a unique instance. In this document we will generically refer to a Calendar Server indicating both services.
The DLA data structure is out of scope in this specification document. Any Calendar Server can define his application protocol and data structure. For this specification the DLA is considered as pure data.
The new objects MUST have the following root OID:
id-ce-dlts OBJECT IDENTIFIER ::= { id-ce TBD1 }
where id-ce identifies the root of standard extensions as described in RFC 5280.
The ASN.1 structure of Promise type is as follows:
Promise ::= SEQUENCE { version INTEGER, calendarFormat UTF8String, dlPromise DLPromise, signerInfo issuerAndSerialNumber, serialNumber INTEGER }
DLPromise ::= OCTET STRING
The ASN.1 structure of Proof type is as follows:
Proof ::= SEQUENCE { version INTEGER, calendarFormat UTF8String, dlProof DLProof, signerInfo issuerAndSerialNumber, serialNumber INTEGER }
DLProof ::= OCTET STRING
The fields of Promise and Proof type have the following meanings:
A set of proofs or a set of promises, generated by a Calendar Server, MAY be included in a TST, using an unsigned attribute of the per-signer information.
To grant backward compatibility with any currently available software the unsigned attribute MUST be compliant with the specifications defined in Section 5.3 of RFC 5652 for Attribute type.
Attributes including a set of promises and a set of proofs MUST be unsigned attributes; they MUST NOT be signed attributes, authenticated attributes, unauthenticated attributes, or unprotected attributes.
The ASN.1 structure of attributes including a set of promises is as follows:
id-ce-dlts-promises OBJECT IDENTIFIER ::= { id-ce-dlts 0 }
Promises SET OF Promise
The ASN.1 structure of attributes including a set of proofs is as follows:
id-ce-dlts-proofs OBJECT IDENTIFIER ::= { id-ce-dlts 1 }
Proofs SET OF Proof
All the proofs and promises that have been returned MUST refer to the same parent TimeStampToken issued at the time of the request.
The response status code in the TimeStampResp MUST be compliant with the specifications described in Section 2.4.2 of RFC 3161 and Section 5.2.3 of RFC 4210.
According to the TimeStamp policy, when the response contains only a subset of the expected proofs, the status field SHOULD contain either the value one (grantedWithMods) or the value two (rejection).
Upgrade from a set of promises to a set of proofs MAY be done requesting a new TST including inside a non critical extension the set of promises previously obtained in an unsigned attribute.
When the TSA receives a request which has a non critical extension containing a set of promises, it MAY request the Calendar Server to get the corresponding proof for each of them, and MAY include the set of proofs in the TST response, using a non critical extension of the TSTInfo sequence.
To grant backward compatibility with any currently available software, request and response non critical extensions MUST be compliant with the specifications described in Section 2.4 of RFC 3161 and Section 4.2 of RFC 5280.
Conforming TSAs MUST mark these extensions as non-critical.
The ASN.1 structure of the proof request extension is as follows:
id-ce-dlts-promises OBJECT IDENTIFIER
Promises SET OF Promise
The ASN.1 structure of the proof response extension is as follows:
id-ce-dlts-proofs OBJECT IDENTIFIER
Proofs SET OF Proof
The proofs returned in the extensions by the TSA MUST NOT refer to the TimeStampToken issued at the time of the request. Each Proof MUST contain the explicit reference to the pointing TimeStampToken with signerInfo (referring to the TSU certificate) and serialNumber (referring to the time stamp serial number), which have been received in the Promise structure of the proof request extension.
The response status code in the TimeStampResp MUST be compliant with the specifications described in Section 2.4.2 of RFC 3161 and Section 5.2.3 of RFC 4210.
Compliant servers SHOULD also use the status field as follows:
Each security consideration described in Section 4 of RFC 3161 SHALL be evaluated designing TSA services that include DL Time-Stamp extensions.
When a TSA executes a request to a Calendar Server the use of a nonce is RECOMMENDED because using a nonce always allows the client to detect replays.
Safety and reliability of the DL proofs depends on the robustness of the hash algorithms and on the stability of the DL, i.e. how expensive or difficult it would be for an attacker to alter the DL.
This document does not require any action by IANA.