RFC 6362
Multiple Attachments for Electronic Data Interchange - Internet Integration (EDIINT)
Multiple Attachments for Electronic Data Interchange - Internet Integration (EDIINT) β¨
okay bestie, welcome to RFC 6362 π this one is about how to cram multiple attachments into a single EDIINT message π the title block first:
- RFC number: 6362 π
- Stream: Internet Engineering Task Force (IETF) πΈ
- Author: K. Meadors, Ed., from Drummond Group, Inc. π
- Category: Informational π¦
- Date: August 2011 ποΈ
- ISSN: 2070-1721
- Obsoletes / Updates: the header doesn't list any RFCs this one obsoletes or updates β¨
Abstract β¨
okay so EDIINT AS1, AS2, and AS3 messages were built specifically to carry EDI documents π¦ one EDI document could already hold multiple interchanges, so there wasn't really a need to send several EDI documents in one message. then EDIINT got popular and people started using it for other stuff too π₯ some transactions needed several attachments that had to be read together and stored in one message. this Informational RFC explains how multiple documents, including non-EDI payloads, can be attached and sent together in a single EDIINT transport message π the attachments live inside the MIME multipart/related structure. it also gives a minimal list of content-types that's meant to be supported as attachments π«Ά
Status of This Memo π
this document is not an Internet Standards Track specification, it's published for informational purposes π
this document is a product of the IETF π it represents the consensus of the IETF community and it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). not every document the IESG approves is a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 if you want the details π§
info about the current status of this document, any errata, and how to send feedback is at http://www.rfc-editor.org/info/rfc6362 β¨
Copyright Notice πΈ
Copyright (c) 2011 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 (http://trustee.ietf.org/license-info) as they stand on the date this document was published π please read those carefully, because they spell out your rights and restrictions for this document. Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License π¦
this document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008 π the people controlling the copyright in some of that material may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process. so unless you get an adequate license from whoever controls that copyright, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process π the only exceptions are formatting it for publication as an RFC or translating it into languages other than English π
Table of Contents π
1. Introduction ....................................................3
1.1. Requirements Language ......................................3
2. Using Multiple Attachments in EDIINT ............................3
2.1. Multipart/Related Structure ................................3
2.2. EDIINT-Features Header .....................................4
2.3. MIC Calculation ............................................4
2.4. Document Processing ........................................5
2.5. Content-Types to Support ...................................5
3. Example Message .................................................6
4. Security Considerations .........................................7
5. Normative References ............................................7
1. Introduction π
okay the main job of the EDIINT working group (WG) was to build a secure way to move EDI documents over the Internet π that got described in three WG-developed standards for secure transport: AS1 over SMTP [RFC3335], AS2 over HTTP [RFC4130], and AS3 over FTP [RFC4823] π¦ for most EDI uses, all the info needed to finish one business transaction fit in a single document π but as EDIINT grew, new industries and businesses started using AS2 and needed to send multiple documents in one message to finish a trading-partner transaction πΈ those documents came in a bunch of different MIME media types π
so this Informational RFC explains how to use the MIME multipart/related body structure inside EDIINT messages to store multiple document attachments β¨ it also covers how the message integrity check (MIC) value is computed over that body π₯ and it gives a minimum list of MIME media types to support inside the multipart/related body, plus info on pulling those documents back out π§
1.1. Requirements Language π«Ά
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 [RFC2119] π
2. Using Multiple Attachments in EDIINT π
2.1. Multipart/Related Structure π
multiple payload attachments for EDIINT messages are stored inside a multipart/related MIME body [RFC2387] π the multipart/related structure lets multiple MIME attachments or message payloads travel together in a single structure and a single message π«Ά
the attached payloads can be any MIME content-type depending on the trading-partner agreement, but Section 2.5 lists the content-types that MUST be supported π the use and format of the multipart/related body follows the rules in RFC 2387 [RFC2387], including the required type parameter that determines the root body part π§ using the optional start parameter is RECOMMENDED π
2.2. EDIINT-Features Header β¨
to show that it supports multiple attachments (MAs), an EDIINT application MUST use the EDIINT-Features header [RFC6017] π¦ the header tells everyone the instance application can support various features, like certification exchange πΈ and it's present in all messages from the instance application, not only the ones that feature certification exchange π
for applications that implement multiple attachments, the MA-Feature-Name MUST be used inside the EDIINT-Features header, following this ABNF [RFC5234] syntax:
MA-Feature-Name = "multiple-attachments"
here's an example of the EDIINT-Features header in a message from an application that supports MA:
EDIINT-Features: multiple-attachments
2.3. MIC Calculation π₯
MIC calculation in an EDIINT message with multiple attachments works the same way as for a single EDI payload π the only difference is that you calculate the message integrity check (MIC) over the whole multipart/related body instead of over a single EDI payload π Section 5.2.1 of AS1 [RFC3335] and Section 4 of EDIINT COMPRESSION [RFC5402] describe the MIC calculations used for a single payload document inside an EDIINT message π the approach is summarized below for the multipart/related body, but go read those sections for the full details π§
for a compressed but unsigned message, regardless of encryption, the MIC is calculated over the uncompressed multipart/related body, including any applied Content-Transfer-Encoding π the body MUST be canonicalized according to the procedure described in the underlying transport protocol (for example, HTTP AS2 [RFC4130]) before the MIC is calculated π
for an encrypted but unsigned and uncompressed message, the MIC is calculated on the decrypted multipart/related body, including the header and all attached documents π the body MUST be canonicalized according to the procedure described in the underlying transport protocol (for example, HTTP AS2 [RFC4130]) before the MIC is calculated π«Ά
for an unsigned and unencrypted message, the MIC is calculated over the data inside the multipart/related boundaries, before Content-Transfer-Encoding π however, unsigned and unencrypted messages SHOULD NOT be sent because of the lack of security π
β οΈ if the expected MIC value differs from the calculated MIC value, all attachments MUST be considered invalid and retransmitted π
2.4. Document Processing πΈ
when a receiver gets an EDIINT message with multiple attachments, the receiving user agent MUST be able to extract the attached payloads from the message, not just strip out the multipart/related body π what happens to the documents, and how they relate to the pending transaction, is implementation dependent π§
2.5. Content-Types to Support π
documents of the following MIME media types MAY be found in a multipart/related body, and the user agent MUST accept them β¨ any media type can be used depending on industry need, and other media types MAY be accepted depending on the trading-partner agreement π for the definitions of the media types below, see [MIMEREG] π
application/xml
application/pdf
application/msword
application/rtf
application/octet-stream
application/zip
image/gif
image/tiff
image/jpeg
text/plain
text/html
text/rtf
text/xml
part 2 is where the example message, security stuff, and references live ππ«Ά
4. Security Considerations πβ¨
okay bestie, this section is lowkey serious but also kind of iconic π . multiple attachments have security concerns that are super similar to the three EDIINT transport standards π«Ά. the big ones are using strong cryptography and making sure your certificates are valid and actually chain up to a trusted certification authority (CA) π. for all the tea, go check out these three: SMTP AS1 [RFC3335], HTTP AS2 [RFC4130], and FTP AS3 [RFC4823] π. they cover their own security considerations in depth, so don't skip them, periodt π.
the only extra security consideration is this: if the MIC calculation done by the user agent doesn't match the expected MIC calculation, then ALL the attached documents MUST be considered invalid ππ¨. the MIC is calculated over the multipart/related body, so it basically validates the content integrity of every single document in there at once π¦. that's giving main character energy for integrity checks π.
β οΈ bestie, the MUST here is not optional. one bad MIC means every attachment gets thrown out, not just the one that looks wrong π.
5. Normative References π
okay so here's the reading list πΈ. I've kept every reference exactly as written so nothing gets lost in translation π§.
[MIMEREG] "MIME Media Types", <http://www.iana.org/>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2387] Levinson, E., "The MIME Multipart/Related Content-type", RFC 2387, August 1998.
[RFC3335] Harding, T., Drummond, R., and C. Shih, "MIME-based Secure Peer-to-Peer Business Data Interchange over the Internet", RFC 3335, September 2002.
[RFC4130] Moberg, D. and R. Drummond, "MIME-Based Secure Peer-to- Peer Business Data Interchange Using HTTP, Applicability Statement 2 (AS2)", RFC 4130, July 2005.
[RFC4823] Harding, T. and R. Scott, "FTP Transport for Secure Peer- to-Peer Business Data Interchange over the Internet", RFC 4823, April 2007.
[RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.
[RFC5402] Harding, T., Ed., "Compressed Data within an Internet Electronic Data Interchange (EDI) Message", RFC 5402, February 2010.
[RFC6017] Meadors, K., Ed., "Electronic Data Interchange - Internet Integration (EDIINT) Features Header Field", RFC 6017, September 2010.
Author's Address π
Kyle Meadors (editor)
Drummond Group, Inc.
Nashville, Tennessee 37221
US
Phone: +1 (817) 709-1627
EMail: kyle@drummondgroup.com
that's the whole doc, babe π¦β¨ go slay your implementation π
π¦ where this page comes from
- ietf: rfc6362 2011-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms