A. Santoni
     Internet Draft                                           Actalis S.p.A.
     Intended status: Proposed Standard                        June 27, 2007
     Expires: December 2007
                    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].
     Santoni               Expires December 27, 2007                [Page 1]

     Internet-Draft             timestampeddata                    June 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 December 27, 2007                [Page 2]

     Internet-Draft             timestampeddata                    June 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 (or
        a file of any kind, for that matter) to one or more RFC3161-compliant
        TimeStampTokens. The proposed syntax is broadly based on the [CMS]
     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,
           content        OCTET STRING,
           timeStamps     SET (SIZE(1..MAX)) OF TimeStampToken }
     Santoni               Expires December 27, 2007                [Page 3]

     Internet-Draft             timestampeddata                    June 2007
        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 timeStamps field is a non-empty set of TimeStampToken items as
        defined in [TSP].
     3. Compliance requirements
        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 SHOULD
        NOT be included. A valid example is "patent123.doc". An invalid
        example is "c:\Documents and settings\John\Desktop\patent123.doc".
        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 "unknown".
     Santoni               Expires December 27, 2007                [Page 4]

     Internet-Draft             timestampeddata                    June 2007
     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 one (or possibly 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;
        o  check the timeStamps field (it must not be an empy SET); extract
           the individual TimeStampTokens and prepare to show them to the
           user and/or save them to separate files;
     Santoni               Expires December 27, 2007                [Page 5]

     Internet-Draft             timestampeddata                    June 2007
        o  check that each TimeStampToken does indeed contain the hash of the
           time-stamped file, by recomputing the hash of the content field
           and comparing it with the hash contained into each TimeStampToken;
        o  depending on the application, validate and/or show to the user
           each individual TimeStampToken;
        o  depending on the application, show the time-stamped file to the
           user, possibly by activating a suitable external "viewer"; if the
           fileName extension is not sufficient to determine the suitable
           viewer, try using the mimeType field as an additional hint;
        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 extentions
        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 December 27, 2007                [Page 6]

     Internet-Draft             timestampeddata                    June 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 December 27, 2007                [Page 7]

     Internet-Draft             timestampeddata                    June 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 December 27, 2007                [Page 8]