A. Santoni
    Internet Draft                                          Actalis S.p.A.
    Intended status: Proposed Standard                    November 19, 2007
    Expires: May 2008
                   Syntax for binding documents with time stamps
    Status of this Memo
       By submitting this Internet-Draft, each author represents that
       any applicable patent or other IPR claims of which he or she is
       aware have been or will be disclosed, and any of which he or she
       becomes aware will be disclosed, in accordance with Section 6 of
       BCP 79.
       Internet-Drafts are working documents of the Internet Engineering
       Task Force (IETF), its areas, and its working groups.  Note that
       other groups may also distribute working documents as Internet-
       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."
       The list of current Internet-Drafts can be accessed at
       The list of Internet-Draft Shadow Directories can be accessed at
    Copyright Notice
       Copyright (C) The IETF Trust (2007).
       This document describes a syntax which can be used to bind a generic
       document (or any set of data, not necessarily protected by means of
       cryptographic techniques) to one or more time-stamp tokens obtained
       for that document, where "time-stamp token" has the meaning defined
       in [TSP]. Additional types of temporal evidence are also supported.
    Santoni                 Expires May 19, 2008                  [Page 1]

    Internet-Draft             timestampeddata               November 2007
       Whereas digital time stamping has become the standard technique for
       proving the existence of a document before a certain point in time,
       there is not a generally accepted syntax for keeping together one
       document and the associated time-stamps in a single "bundle". Such a
       syntax would facilitate keeping track of which time-stamps belong to
       what documents and would therefore improve the efficiency of
       timestamp-aware applications.
       This document proposes a simple syntax based on [CMS], by defining a
       new contentType.
    Conventions used in this document
       The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
       document are to be interpreted as described in RFC-2119 [KWORDS].
    Table of Contents
       1. Introduction................................................2
       2. Syntax for TimeStampedData...................................3
       3. Compliance requirements......................................4
       4. Recommanded processing.......................................5
       5. Recommended file extentions..................................6
       6. Security Considerations......................................6
       7. IANA Considerations.........................................6
       8. Acknowledgments.............................................6
       9. References..................................................7
       Author's Addresses.............................................7
       Intellectual Property Statement.................................7
       Disclaimer of Validity.........................................8
    1. Introduction
       Digital time stamping has become the standard technique for proving
       the existence of a document before a certain point in time. Several
       digital signature legislations around the world embrace the concept
       and provide for time-stamping services as an approved means for
       attesting the signing time and/or for extending the validity of
       signed documents beyond the expiry date of the signer’s certificate.
       However, while digital time stamping enhances digital signature, its
       value does not depend on this latter. It can obviously be useful to
       time-stamp a document even if this is not signed. And it can also be
       useful, or even mandatory in some cases, to time-stamp a document in
       its entirety, regardless of how many signatures it contains.
    Santoni                 Expires May 19, 2008                  [Page 2]

    Internet-Draft             timestampeddata               November 2007
       When a time-stamp is related to a digital signature, there already
       exist a way to keep the two pieces together: [TSP] describes how one
       or more TimeStampTokens can be included in a SignerInfo structure as
       unsigned attributes. On the other hand, when time-stamps are not
       related to a digital signature, there is no standard way to keep
       together the time-stamped document and the related time-stamps.
       In such cases two approaches are typically being adopted:
       o time-stamps are kept as separate files (keeping track of what
          time-stamps belong to what documents is up to the user);
       o an ad hoc solution is adopted for specific applications, like e.g.
          a ZIP archive or a proprietary "envelope" of some kind.
       Both solutions are obviously inadequate when interoperability is
       aimed at, like in this memo.
       This document proposes a simple syntax for bundling one document
       (actually, any kind of file) to the corresponding temporal evidence,
       this latter being typically represented by one or more RFC 3161
       TimeStampTokens [TSP]. Additional types of temporal evidence, like
       e.g. an RFC 4998 EvidenceRecord, are also supported via an "open"
       syntax. However, for the sake of interoperability, the emphasis is
       given to TimeStampTokens.
       The proposed syntax is broadly based on the [CMS] syntax.
    2. Syntax for TimeStampedData
       The proposed data structure is called TimeStampedData. It is a new
       variation of ContentInfo [CMS] marked by the following specific
       contentType OID:
       id-timestamped-data OBJECT IDENTIFIER ::= { iso(1) member-body(2)
       us(840) rsadsi(113549) pkcs(1) pkcs7(7) 7 }
       This particular OID signals that the content field of the ContentInfo
       has the following syntax:
       TimeStampedData ::= SEQUENCE {
         version     INTEGER { v1(1) },
         fileName     UTF8String,
         mimeType     PrintableString,
    Santoni                 Expires May 19, 2008                  [Page 3]

    Internet-Draft             timestampeddata               November 2007
         content     OCTET STRING,
         evidence     Evidence
       Evidence ::= CHOICE {
         timeStamps     [0] SET (SIZE(1..MAX)) OF TimeStampToken
         -- additional evidence types to be registered with the IETF
       The version field contains the version number of the TimeStampedData
       syntax. The initial version number is 1.
       The fileName field contains the original filename (without path) of
       the document which was time-stamped and whose content was inserted
       into the TimeStampedData structure.
       The mimeType field contains a MIME type (according to [MIME]) for the
       bundled file. It is an advisory information which may help decide how
       to open the file after having "detached" it from the TimeStampedData
       structure, regardless of the filename extension (which could be
       missing or unknown).
       The content field carries the entire content, in its original format,
       of the file which was time-stamped. The file need not be a document
       in the strict sense; it can be any kind of file (e.g. an executable,
       a database, etc).
       The evidence field carries the evidence that the content data existed
       before a certain point in time. Different types of evidence can be
       used, in theory, but this document defines and mandates support for
       one specific type: a non-empy set of RFC 3161 TimeStampToken's [TSP].
       Additional types of evidence may be used after having registered them
       (and having had a distinguishing tag assigned to them) with the IETF.
       A suitable registration procedure will be defined for that purpose.
    3. Compliance requirements
       Compliant applications MUST support the RFC 3161-based type of
       evidence (i.e. the timeStamps CHOICE).
       Compliant applications SHALL always populate the fileName field of
       TimeStampedData structure with a non-empty string, which is supposed
       to be the real name of the time-stamped file. Path information MUST
       NOT be included. A valid example is "patent123.doc". An invalid
       example is "c:\Documents and settings\John\Desktop\patent123.doc".
    Santoni                 Expires May 19, 2008                  [Page 4]

    Internet-Draft             timestampeddata               November 2007
       Compliant applications SHALL always populate the mimeType field of
       TimeStampedData structure with a valid MIME content-type string. A
       valid example is "application/pdf". An invalid example is "whatever".
    4. Recommanded processing
       When generating the TimeStampedData structure, applications are
       supposed to behave like follows:
       o populate the version field with the integer value v1(1);
       o populate the fileName field with the real name of the file,
          without path;
       o populate the mimeType field with an appropriate MIME type string,
          preferably, or at least with "application/octet-stream";
       o populate the content field with the entire contents of the file;
       o add the necessary evidence (e.g. one or more TimeStampTokens);
       o insert the TimeStampedData into a ContentInfo structure, with the
          id-timestamped-data OID in the contentType field;
       o BER-encode the ContentInfo structure and save it with the same
          name of the time-stamped file, but with the file extension
          recommended in section 5.
       When parsing an existing TimeStampedData structure, applications are
       supposed to behave like follows:
       o check that the contentType field of the ContentInfo structure has
          the expected value (id-timestamped-data) in its contentType field;
          then, extract the inner TimeStampedData structure and continue
       o check the version field (it should be v1);
       o check the fileName field (it must not be empty) and keep it for
          later use;
       o check the mimeType field (it must not be empty) and keep it for
          later use;
       o read the content field and prepare to save it in a separate file
          and/or show it to the user;
    Santoni                 Expires May 19, 2008                  [Page 5]

    Internet-Draft             timestampeddata               November 2007
       o check that the evidence field not be empty; extract the inner data
          and prepare to show them to the user and/or save them to separate
       o validate the evidence data (e.g. in case of timeStamps: check that
          each TimeStampToken does indeed contain the hash of the time-
          stamped document and it was signed by a trusted TSA);
       o depending on the application, show the evidence data to the user;
       o depending on the application, show the time-stamped document to
          the user, possibly by activating a suitable external "viewer"; if
          the fileName extension is not sufficient to figure out the
          suitable viewer, try using the mimeType field as an additional
       o depending on the application, save the content field into a
          separate file with the name specified by the fileName field (or
          let the user specify the desired filename).
    5. Recommended file extensions
       A file containing a TimeStampedData structure SHOULD bear the .tsd
       extension. Example: "patent123.tsd"
    6. Security Considerations
       There are no security issues.
    7. IANA Considerations
       This document defines one object identifier under the pkcs7 arc:
       id-timestamped-data OBJECT IDENTIFIER ::= { iso(1) member-body(2)
       us(840) rsadsi(113549) pkcs(1) pkcs7(7) 7 }
    8. Acknowledgments
       This document was prepared using 2-Word-v2.0.template.dot.
    Santoni                 Expires May 19, 2008                  [Page 6]

    Internet-Draft             timestampeddata               November 2007
    9. References
       [KWORDS]  Bradner, S., "Key words for use in RFCs to Indicate
                 Requirement Levels", BCP 14, RFC 2119, March 1997.
       [TSP]    Adams, C., Cain, P., Pinkas, D. and R. Zuccherato,
                 "Internet X.509 Public Key Infrastructure Time-Stamp
                 Protocol (TSP)", RFC 3161, August 2001.
       [CMS]    Housley, R., "Cryptographic Message Syntax (CMS)",
                 RFC 3852, July 2004.
       [MIME]   Borenstein, N., and N. Freed, "Multipurpose Internet Mail
                 Extensions (MIME) Part One: Format of Internet Message
                 Bodies", RFC 2045, November 1996.
    Author's Addresses
       Adriano Santoni
       Actalis S.p.A.
       Via Taramelli 26
       I-20124 Milano
       Phone: +39-02-68825.1
       Email: adriano.santoni@actalis.it
    Intellectual Property Statement
       The IETF takes no position regarding the validity or scope of any
       Intellectual Property Rights or other rights that might be claimed to
       pertain to the implementation or use of the technology described in
       this document or the extent to which any license under such rights
       might or might not be available; nor does it represent that it has
       made any independent effort to identify any such rights.  Information
       on the procedures with respect to rights in RFC documents can be
       found in BCP 78 and BCP 79.
       Copies of IPR disclosures made to the IETF Secretariat and any
       assurances of licenses to be made available, or the result of an
       attempt made to obtain a general license or permission for the use of
    Santoni                 Expires May 19, 2008                  [Page 7]

    Internet-Draft             timestampeddata               November 2007
       such proprietary rights by implementers or users of this
       specification can be obtained from the IETF on-line IPR repository at
       The IETF invites any interested party to bring to its attention any
       copyrights, patents or patent applications, or other proprietary
       rights that may cover technology that may be required to implement
       this standard.  Please address the information to the IETF at
    Disclaimer of Validity
       This document and the information contained herein are provided on an
    Copyright Statement
       Copyright (C) The IETF Trust (2007).
       This document is subject to the rights, licenses and restrictions
       contained in BCP 78, and except as set forth therein, the authors
       retain all their rights.
       Funding for the RFC Editor function is currently provided by the
       Internet Society.
    Santoni                 Expires May 19, 2008                  [Page 8]