RFC 3302

Tag Image File Format (TIFF) - image/tiff MIME Sub-type Registration

πŸ“… published September 2002, from ietf

Tag Image File Format (TIFF) - image/tiff MIME Sub-type Registration πŸŽ€

okay bestie, this RFC is the official paperwork for the image/tiff MIME type, which is how the internet knows a file is a TIFF image πŸ–ΌοΈβœ¨. It was published in September 2002 as a Standards Track document by G. Parsons (Nortel Networks) and J. Rafferty (Brooktrout Technology) πŸ’…. It's from the Network Working Group, and it's obsoleting RFC 2302 🫢. It doesn't update anything else. The reference number is RFC 3302 and the category is Standards Track, so yes, it's a real standard and not just vibes πŸ‘‘.


Status of this Memo ✨

so this doc is a Standards Track protocol for the internet community 🌈, and it's basically inviting everyone to talk about it and suggest improvements. If you want to know where it stands officially, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited πŸ’œ, so share away!

Copyright (C) The Internet Society (2002). All Rights Reserved. πŸ”’

Abstract

this document is all about registering the MIME sub-type image/tiff πŸ¦‹. It refines an earlier sub-type registration in RFC 1528, and it obsoletes RFC 2302 πŸ’–.

1. Conventions used in this document πŸŽ€

okay so the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are gonna be read exactly the way RFC 2119 [REQ] describes πŸ“–. Those capital words are serious business, so pay attention πŸ™ˆ.

2. Overview 🌸

the whole point here is registering the MIME sub-type image/tiff ✨. The baseline encoding of TIFF (Tag Image File Format) is defined by [TIFF] πŸ“„.

3. Internet Fax Working Group πŸ“ 

this document came out of the IETF Internet Fax Working Group 🧚. All comments should be sent to the email distribution list at <ietf-fax@imc.org> πŸ’Œ.

4. TIFF Definition πŸ¦„

TIFF (Tag Image File Format) Revision 6.0 is explained in full detail by Adobe in [TIFF] πŸ“š. You can get the docs from Adobe at:

   Adobe Developers Association
   Adobe Systems Incorporated
   345 Park Avenue
   San Jose, CA 95110-2704

   Phone: +1-408-536-6000
   Fax:   +1-408-537-6000

there's also a copy hiding at http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf πŸ”—. This section is just a quick background glow-up, so for the complete feature and technical details you have to go to the original TIFF spec [TIFF] πŸ€“.

4.1. TIFF Scope 🌈

TIFF is for image data that usually comes from scanners, frame grabbers, and paint- and photo-retouching programs πŸ–ŒοΈ. It is not a printer language or page description language πŸ™…. Its whole purpose is to describe and store raster image data πŸ’…. A big goal is giving applications a rich environment to swap image data around in, and that richness is needed to make use of all the different abilities scanners and other imaging devices have ✨. It's a rich format, but it can still be used super simply for basic scanners and apps, since the number of required fields is small 🫢.

4.2. TIFF Features πŸ’Ž

here are some of the features of TIFF (from [TIFF]) that are giving:

  • TIFF can describe bilevel, grayscale, palette-color, and full-color image data in several color spaces 🎨.
  • TIFF has a bunch of compression schemes so developers can pick the best space or time tradeoff for their apps πŸƒβ€β™€οΈ.
  • TIFF is built to be extensible and to evolve gracefully as new needs pop up 🌱.
  • TIFF lets you include an unlimited amount of private or special-purpose information πŸ”.

5. MIME Definition πŸŽ€

5.1. image/tiff πŸ’–

the image/tiff content-type used to be defined in RFC 1528 as containing TIFF 6.0 encoded image data, specifically a subset called TIFF Class F πŸ“Ό. This document redefines it to refer to TIFF 6.0 [TIFF] encoded image data, which matches what TIFF-aware Internet applications already do πŸ™Œ. It also gets a glow-up with a new "application parameter" (section 6.2) so you can identify a specific subset of TIFF and TIFF extensions for the encoded image data ✨.

5.2. Application parameter 🧩

sometimes it's useful to know which application the content of an image/tiff body is meant for πŸ€”. Usually this helps the recipient pick a good rendering package to display or process the image file πŸ–₯️. So there's an optional "application" parameter for image/tiff that identifies a particular application's subset of TIFF and TIFF extensions, if it's known πŸ’œ. No values are defined in this document πŸ™ˆ.

Example:

Content-type: image/tiff; application=foo

there is no default value for application 🚫. If the parameter is absent, that means the encoded TIFF image is Baseline TIFF, or that identifying the application isn't necessary πŸ’…. It's up to the recipient's implementation to figure out the application (if it's needed) and render the image for the user 🌸.

New values for the image/tiff application parameter must be approved by the IESG before registration πŸ‘‘. So a description of the parameter values has to be published in an RFC, no skipping πŸ“œ.

Guidelines on writing IANA considerations for RFCs can be found in RFC 2434 πŸ“–.

An application parameter is a hint to the receiver πŸ’‘. It MUST NOT be used as a blind request to execute some arbitrary program 🚨. Seriously, don't do it πŸ’€.

Instead, it should be viewed as an indication of what sort of application would be able to handle the content most appropriately πŸ¦‹.

6. IANA Registration πŸ“

here's the registration template that goes to IANA, copied exactly as written so nothing gets lost in translation 🫢:

   To: ietf-types@iana.org
   Subject: Registration of Standard MIME media type image/tiff

   MIME media type name: image

   MIME subtype name: tiff

   Required parameters: none

   Optional parameters: application

      There is no format specified for the value of this parameter
      in addition to that specified by [MIME1].  Various
      applications of TIFF may define values as required as hints
      to the receiver.  There is no default value for application,
      as the absence of the application parameter indicates that
      the encoded TIFF image is Baseline TIFF or that it is not
      necessary to identify the application.  It is up to the
      implementation to determine the application (if necessary)
      and render the image to the user.

   Encoding considerations:

      This media type consists of binary data.  The base64 encoding
      should be used on transports that cannot accommodate binary
      data directly.

   Security considerations:

      TIFF utilizes a structure which can store image data and
      attributes of this image data.  The fields defined in the TIFF
      specification are of a descriptive nature and provide
      information that is useful to facilitate the viewing and
      rendering of images by a recipient.  As such, the fields
      currently defined in the TIFF specification do not in
      themselves create additional security risks, since the fields
      are not used to induce any particular behavior by the recipient
      application.

      TIFF has an extensible structure, so that it is theoretically
      possible that fields could be defined in the future which
      could be used to induce particular actions on the part of the
      recipient, thus presenting additional security risks, but
      this type of capability is not supported in the referenced
      TIFF specification.  Indeed, the definition of fields which
      would include such processing instructions is inconsistent
      with the goals and spirit of the TIFF specification as
      defined to date.

   Interoperability considerations:

      The ability of implementations to handle all the defined
      applications (or profiles within applications) of TIFF may
      not be ubiquitous.  As a result, implementations may decode
      and attempt to display the encoded TIFF image data only to
      determine that the image cannot be rendered.  The presence of
      the application parameter may aid in allowing this
      determination before dispatching for rendering.  However, it
      should be noted that the parameter value is not intended to
      convey levels of capabilities for a particular application.

   Published specification:

      TIFF (Tag Image File Format) is defined in:
          TIFF (TM) Revision 6.0 - Final  June 3, 1992

      Adobe Developers Association
      Adobe Systems Incorporated
      345 Park Avenue
      San Jose, CA 95110-2704

      Phone: +1-408-536-6000
      Fax:   +1-408-537-6000

      A copy of this specification can be found in:
      http://partners.adobe.com/asn/developer/pdfs/tn/TIFF6.pdf

   Applications which use this media type:

      Imaging, fax, messaging and multi-media

   Additional information:

      Magic number(s):
           II (little-endian):  49 49 2A 00 hex
           MM (big-endian):     4D 4D 00 2A hex
      File extension(s): .TIF
      Macintosh File Type Code(s): TIFF

   Person & email address to contact for further information:

      Glenn W. Parsons
      gparsons@nortelnetworks.com

      James Rafferty
      jraff@brooktrout.com

   Intended usage: COMMON

   Change controller: James Rafferty

6. Security Considerations πŸ”

okay this part is super important, so no skipping 🚨. TIFF stores image data along with attributes of that image data πŸ–ΌοΈ. The fields in the TIFF spec are descriptive, meaning they're there to help a recipient view and render images πŸ‘€. So the fields that are defined in the TIFF spec don't create extra security risks by themselves, because the recipient application doesn't use them to trigger any particular behavior πŸ›‘οΈ.

BUT, TIFF has an extensible structure, so in theory someone could define fields later that could be used to make the recipient take specific actions, and that would create extra security risks 😱. The referenced TIFF spec doesn't support that kind of capability right now πŸ™. Honestly, defining fields that include processing instructions would go against the goals and spirit of TIFF as it's been defined so far πŸ’€. So don't do it, periodt πŸ’….

7. Changes from RFC 2302 πŸ¦‹

here's what changed since RFC 2302 ✨:

  • correction of the magic number πŸ”’
  • improvements to the security considerations πŸ”
  • change of change controller πŸ‘‘
  • various editorials to improve clarity 🧹

8. References πŸ“š

8.1 Normative References 🫢

these are the references that are required reading ✨:

[REQ]     Bradner, S., "Key words for use in RFCs to Indicate
          Requirement Levels", BCP 14, RFC 2119, March 1997.
[MIME1]   Freed, N. and N. Borenstein, "Multipurpose Internet Mail
          Extensions (MIME) Part One: Format of Internet Message
          Bodies", RFC 2045, November 1996.
[MIME4]   Freed, N. and N. Borenstein, "Multipurpose Internet Mail
          Extensions (MIME) Part Four: Registration Procedures", BCP
          13, RFC 2048, November 1996.
[TIFF]    Adobe Developers Association, TIFF (TM) Revision 6.0 -
          Final, June 3, 1992.

8.2. Non-Normative References πŸ“šβœ¨

okay so these are the "good to know but you don't need it to implement" sources, bestie πŸ’… two of them, and the first one is the TIFF MIME registration we already talked about. Here they are:

[TIFFREG] Parsons, G., Rafferty, J. and S. Zilles, "Tag Image File
          Format (TIFF) -image/tiff MIME Sub-type Registration", RFC
          2302, March 1998.

[TPC.INT] Malamud, C. and M. Rose, "Principles of Operation for the
          TPC.INT Subdomain: Remote Printing -- Technical
          Procedures", RFC 1528, October 1993.

9. Authors' Addresses πŸŽ€

and now the girls behind it! 🧚 here's how you can reach the authors:

Glenn W. Parsons
Nortel Networks
P.O. Box 3511, Station C
Ottawa, ON  K1Y 4H7
Canada

Phone: +1-613-763-7582
Fax:   +1-613-763-2697
EMail: gparsons@nortelnetworks.com


James Rafferty
Brooktrout Technology
410 First Avenue
Needham, MA  02494
USA

Phone: +1-781-433-9462
Fax:   +1-781-433-9268
EMail: jraff@brooktrout.com

this part is the legal stuff, so I'm keeping it word for word πŸ™ˆ no edits, no cap.

Copyright (C) The Internet Society (2002). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Acknowledgement 🫢

last but not least, the shoutout: funding for the RFC Editor function is currently provided by the Internet Society. thank you, IS, you're a real one πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from