home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc0934.txt < prev    next >
Text File  |  1996-05-07  |  22KB  |  290 lines

  1.  
  2.  
  3. Network Working Group                        Marshall T. Rose (Delaware) Request for Comments: 934                       Einar A. Stefferud (NMA)                                                             January 1985 
  4.  
  5.               Proposed Standard for Message Encapsulation 
  6.  
  7.  STATUS OF THIS MEMO 
  8.  
  9.    This RFC suggests a proposed protocol for the ARPA-Internet    community, and requests discussion and suggestions for improvements.    Distribution of this memo is unlimited. 
  10.  
  11. Introduction, Scope, and Motivation 
  12.  
  13.    The services that a user agent (UA) can offer are varied.  Although    all outgoing mail may be thought of as going through a single posting    slot to connect to the message transport system (MTS), it is possible    to consider a message draft being posted as described by one of the    following four types of postings: 
  14.  
  15.       Originate - a new message is composed from scratch, which, to the       knowledge of the UA, is unrelated to any message previously       handled by the user. 
  16.  
  17.       Reply - a message is composed as a reply to a message previously       received by the user.  In most circumstances, the UA aids the user       in composing the reply by constructing the header portion of the       message draft, using components extracted from the received       message headers. 
  18.  
  19.       Forward - one more more messages previously received by the user       are formatted by the UA as a part of the body portion of the       draft.  In this sense, a "digest" for an interest group may be       considered as forwarding.  Similarly, an argument may be made that       "blind-carbon-copies" should also be handled in this fashion. 
  20.  
  21.       Distribute - a message previously received by the user is       re-posted to the MTS.  The draft being re-posted is identical to       the original message with the exception that certain "ReSent-XXX"       headers are appended to the headers portion of the draft, and the       "Return-Path" header is reset to reference the re-sender's       address.  (See [RFC-821] for a discussion of the Return-Path       header.) 
  22.  
  23.    Most user agents support the first two of these activities, many    support the first three, and a few support all four. 
  24.  
  25.    This memo concerns itself only with the third type, which is message    forwarding.  (For a brief treatment of the semantics of message    components with respect to replies, see [RFC-822].) In many ways, 
  26.  
  27.  Rose & Stefferud                                                [Page 1] 
  28.   
  29.  
  30. RFC 934                                                     January 1985 Message Encapsulation 
  31.  
  32.     forwarding can be thought of as encapsulating one or more messages    inside another.  Although this is useful for transfer of past    correspondence to new recipients, without a decapsulation process    (which this memo terms "bursting"), the forwarded messages are of    little use to the recipients because they can not be distributed,    forwarded, replied-to, or otherwise processed as separate individual    messages. 
  33.  
  34.       NOTE: RFC-822 mistakenly refers to distribution as forwarding       (section 4.2).  This memo suggests below, that these two       activities can and should be the same. 
  35.  
  36.    In the case of an interest group digest, a bursting capability is    especially useful.  Not only does the ability to burst a digest    permit a recipient of the digest to reply to an individual digested    message, but it also allows the recipient to selectively process the    other messages encapsulated in the digest.  For example, a single    digest issue usually contains more than one topic.  A subscriber may    only be interested in a subset of the topics discussed in a    particular issue.  With a bursting capability, the subscriber can    burst the digest, scan the headers, and process those messages which    are of interest.  The others can be ignored, if the user so desires. 
  37.  
  38.    This memo is motivated by three concerns: 
  39.  
  40.       In order to burst a message it is necessary to know how the       component messages were encapsulated in the draft.  At present       there is no unambiguous standard for interest group digests.  This       memo proposes such a standard for the ARPA-Internet.  Although       interest group digests may appear to conform to a pseudo-standard,       there is a serious ambiguity in the implementations which produce       digests.  By proposing this standard, the authors hope to solve       this problem by specifically addressing the implementation       ambiguity. 
  41.  
  42.       Next, there is much confusion as to how "blind-carbon-copies"       should be handled by UAs.  It appears that each agent in the       ARPA-Internet which supports a "bcc:" facility does so       differently. Although this memo does not propose a standard for       the generation of blind-carbon-copies, it introduces a formalism       which views the "bcc:" facility as a special case of the       forwarding activity. 
  43.  
  44.       Finally, both forwarding and distribution can be accomplished with       the same forwarding procedure, if a distributed message can be       extracted as a separate individually processable message.  With a       proper bursting agent, it will be difficult to distinguish between 
  45.  
  46.  Rose & Stefferud                                                [Page 2] 
  47.  
  48.  
  49.  RFC 934                                                     January 1985 Message Encapsulation 
  50.  
  51.        a message which has been distributed and a message which has been       extracted from a forwarded message. This memo argues that there is       no valuable distinction to be made, between forwarding and       distribution, and that in the interests of simplicity,       distribution facilities should not be generally available to the       ordinary users of a message system.  However, this memo also       argues that such facilities should be available to certain trusted       entities within the MTS. 
  52.  
  53.          NOTE: this memo does not propose that the distribution facility          be abolished.  Rather it argues the case forcefully in the hope          that other interested parties in the ARPA-Internet will join          this discussion. 
  54.  
  55. Message Encapsulation 
  56.  
  57.    This memo proposes the following encapsulation protocol: two agents    act on behalf of the user, a forwarding agent, which composes the    message draft prior to posting, and a bursting agent which decomposes    the message after delivery. 
  58.  
  59.    Definitions: a draft forwarding message consists of a header portion    and a text portion.  If the text portion is present, it is separated    from the header portion by a blank line.  Inside the text portion a    certain character string sequence, known as an "encapsulation    boundary", has special meaning.  Currently (in existing    digestification agents), an encapsulation boundary (EB) is defined as    a line in the message which starts with a dash (decimal code 45,    "-").  Initially, no restriction is placed on the length of the    encapsulation boundary, or on the characters that follow the dash. 
  60.  
  61.    1. The Header Portion 
  62.  
  63.    This memo makes no restriction on the header portion of the draft,    although it should conform to the RFC-822 standard. 
  64.  
  65.    2. The Text Portion 
  66.  
  67.    The text of the draft forwarding message consists of three parts: an    initial text section, the encapsulated messages, and the final text    section. 
  68.  
  69.       2.1. The Initial Text Section 
  70.  
  71.       All text (if any) up to the first EB comprises the initial text       section of the draft.  This memo makes no restrictions on the 
  72.  
  73.  
  74.  
  75. Rose & Stefferud                                                [Page 3] 
  76.  
  77.  
  78.  RFC 934                                                     January 1985 Message Encapsulation 
  79.  
  80.        format of the initial text section of the draft.  In the case of a       digest, this initial text is usually the "table of contents" of       the digest. 
  81.  
  82.       2.2. The Final Text Section 
  83.  
  84.       All text (if any) after the last EB composes the final text       section of the draft.  This memo makes no restrictions on the       format of the final text section of the draft.  In the case of a       digest, this final text usually contains the sign-off banner for       the digest (e.g., "End of FOO Digest"). 
  85.  
  86.       2.3. Encapsulated Messages 
  87.  
  88.       Each encapsulated message is bounded by two EBs: a pre-EB, which       occurs before the message; and, a post-EB, which occurs after the       message.  For two adjacent encapsulated messages, the post-EB of       the first message is also the pre-EB of the second message.       Consistent with this, two adjacent EBs with nothing between them       should be treated as enclosing a null message, and thus two or       more adjacent EBs are equivalent to one EB. 
  89.  
  90.       Each encapsulated message consists of two parts: a headers portion       and a text portion.  If the text portion is present, it is       separated from the header portion by a blank line. 
  91.  
  92.          2.3.1. The Header Portion 
  93.  
  94.          Minimally, there must be two header items in each message being          forwarded, a "Date:" field and a "From:" field. This differs          from RFC-822, which requires at least one destination address          (in a "To:" or "cc:" field) or a possibly empty "Bcc:" field.          Any addresses occuring in the header items for a message being          forwarded must be fully qualified. 
  95.  
  96.          2.3.2. The Text Portion 
  97.  
  98.          This memo makes no restrictions on the format of the text          portion of each encapsulated message.  (Actually, this memo          does restrict the format of the text portion of each          encapsulated message, but these restrictions are discussed          later.) 
  99.  
  100.    Before summarizing the generation/parsing rules for message    encapsulation, two issues are addressed. 
  101.  
  102.  
  103.  
  104.  Rose & Stefferud                                                [Page 4] 
  105.  
  106.  
  107.  RFC 934                                                     January 1985 Message Encapsulation 
  108.  
  109.  Compatibility with Existing User Agents 
  110.  
  111.    The above encapsulation protocol is presently used by many user    agents in the ARPA-Internet, and was specifically designed to    minimize the amount of changes to existing implementations of    forwarding agents in the ARPA-Internet. 
  112.  
  113.    However, the protocol is not exactly like the pseudo-standard used by    those forwarding agents that compose digests.  In particular, the    post-EB of all messages encapsulated in a digest is preceeded and    followed by by a blank line.  In addition, the first message    encapsulated in a digest has a pre-EB that is followed by a blank    line, but usually isn't preceeded by a blank line (wonderful). 
  114.  
  115.    This memo recommends that implementors of forwarding agents wishing    to remain compatible with existing bursting agents consider    surrounding each EB with a blank line.  It should be noted that blank    lines following a pre-EB for an encapsulated message must be ignored    by bursting agents.  Further, this memo suggests that blank lines    preceeding a post-EB also be ignored by bursting agents. 
  116.  
  117.       NOTE: This recommendation is made in the interest of       backwards-compatibility.  A forwarding agent wishing to strictly       adhere to this memo, should not generate blank lines surrounding       EBs. 
  118.  
  119. Character-Stuffing the Encapsulation Boundary 
  120.  
  121.    It should be noted that the protocol is general enough to support    both general forwarding of messages and the specific case of digests.    Unfortunately, there is one issue of message encapsulation which    apparently is not addressed by any forwarding agent (to the authors'    knowledge) in the ARPA-Internet: what action does the forwarding    agent take when the encapsulation boundary occurs within a the text    portion of a message being forwarded?  Without exception, this    circumstance is ignored by existing forwarding agents. 
  122.  
  123.    To address this issue, this memo proposes the following    character-stuffing scheme: the encapsulation boundary is defined as a    line which starts with a dash.  A special case is made for those    boundaries which start with a dash and are followed by a space    (decimal code 32, " "). 
  124.  
  125.       During forwarding, if the forwarding agent detects a line in the       text portion of a message being forwarded which starts with the       encapsulation boundary, the forwarding agent outputs a dash       followed by a space prior to outputting the line. 
  126.  
  127.  Rose & Stefferud                                                [Page 5] 
  128.  
  129.  
  130.  RFC 934                                                     January 1985 Message Encapsulation 
  131.  
  132.        During bursting, if the bursting agent detects an encapsulation       boundary which starts with a dash followed by a space, then the       bursting agent does not treat the line as an encapsulation       boundary, and outputs the remainder of the line instead. 
  133.  
  134.    This simple character-stuffing scheme permits recursive forwardings. 
  135.  
  136. Generation/Parsing Rules for Message Encapsulation 
  137.  
  138.    The rules for forwarding/bursting are described in terms of regular    expressions.  The first author originally derived simple finite-state    automata for the rules, but was unable to legibly represent them in    this memo.  It is suggested that the implementors sketch the automata    to understand the grammar. 
  139.  
  140.    The conventions used for the grammar are simple.  Each state is    followed by one or more alternatives, which are separated by the "|"    character.  Each alternative starts with a character that is received    as input. (CRLF, although two characters is treated as one character    herein.)  The last alternative for a state is the character "c",    which represents any character not specified in the preceeding    alternatives.  Optionally following the input character is an output    string enclosed by curly-braces.  Following this is the state that    the automata enters.  The reader should note that these grammars are    extremely simple to implement (and, in most cases, can be implemented    quite efficiently). 
  141.  
  142.    When the forwarding agent encapsulates a message, it should apply the    following finite-state automaton.  The initial state is S1. 
  143.  
  144.       S1 ::   CRLF {CRLF} S1             | "-" {"- -"} S2             | c {c} S2 
  145.  
  146.       S2 ::   CRLF {CRLF} S1             | c {c} S2 
  147.  
  148.    This simply says that anytime a "-" is found at the beginning of a    line, a "- " is output prior to outputting the line. 
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  Rose & Stefferud                                                [Page 6] 
  159.  
  160.  
  161.  RFC 934                                                     January 1985 Message Encapsulation 
  162.  
  163.     When the bursting agent decapsulates the text portion of a draft, it    should apply the following finite-state automaton.  The initial state    is S1. 
  164.  
  165.       S1 ::   "-" S3             | CRLF {CRLF} S1             | c {c} S2 
  166.  
  167.       S2 ::   CRLF {CRLF} S1             | c {c} S2 
  168.  
  169.       S3 ::   " " S2             | c S4 
  170.  
  171.       S4 ::   CRLF S5             | c S4 
  172.  
  173.       S5 ::   CRLF S5             | c {c} S2 
  174.  
  175.    Although more complicated than the grammar used by the forwarding    agent to encapsulate a single message, this grammer is still quite    simple.  Let us make the simplifying assumption that both the initial    and final text sections of the draft are messages in addition to the    encapsulated messages. 
  176.  
  177.    To begin, the current message being burst is scanned at state S1. All    characters are output until the EB is found (state S3).  If "- " is    found, the automaton enters state S2 and characters from the current    message are continued to be output.  Finally, a true EB is found    (state S4).  As the automaton traverses from state S3 to S4, the    bursting agent should consider the current message ended.  The    remainder of the EB is discarded (states S4 and S5).  As the    automaton traverses from state S5 to S2, the bursting agent should    consider a new message started and output the first character.  In    state S2, all characters are output until the EB is found. 
  178.  
  179. Blind Carbon Copies 
  180.  
  181.    Many user agents support a blind-carbon-copy facility.  With this    facility a draft has two types of addressees: visible and blind    recipients.  The visible recipients are listed as addresses in the    "To:" and "cc:" fields of the draft, and the blind recipients are    listed as addresses in the "Bcc:" fields of the draft.  The basis of    this facility is that copies of the draft which are delivered to the    recipients list the visible recipients only. 
  182.  
  183.  
  184.  
  185. Rose & Stefferud                                                [Page 7] 
  186.  
  187.  
  188.  RFC 934                                                     January 1985 Message Encapsulation 
  189.  
  190.     One method of achieving this is to post a single draft, which lacks    any "Bcc:" fields, and, during posting, to interact with the MTS in    such a way that copies are sent to both the visible and blind    recipients. 
  191.  
  192.    Unfortunately, a key problem with this arrangement is that the blind    recipients can accidently reply to the draft in such a way that the    visible recipients are included as addressees in the reply. This is    socially unacceptable!  To avoid this problem, the message which the    visible recipients receive must be different than the message which    the blind recipients receive. 
  193.  
  194.    A second method is to post two drafts.  The first, which goes to the    visible recipients, is simply the draft without any "Bcc:" fields.    The second, which goes to the blind recipients, is simply the draft    with some string prepended to any "To:" and "cc:" field. For example,    the user agent might prepend "BCC-" to these fields, so that the    blind recipients get a draft with "BCC-To:" and "Bcc-cc:" fields and    no "To:" or "cc:" fields. Unfortunately, this is often very confusing    to the blind recipients.  Although accidental replies are not    possible, it is often difficult to tell that the draft received is    the result of a blind-carbon-copy. 
  195.  
  196.    The method which this memo suggests is to post two drafts, a visible    draft for the visible recipients, and a blind draft for the blind    recipients.  The visible draft consists of the original draft without    any "Bcc:" fields.  The blind draft contains the visible message as a    forwarded message.  The headers for the blind draft contain the    minimal RFC-822 headers and, if the original draft had a "Subject:"    field, then this header field is also included.  In addition, the    user agent might explicitly show that the blind draft is the result    of a blind-carbon-copy, with a "Bcc" header or prior to the first    encapsulating boundary in the body. 
  197.  
  198. Message Distribution 
  199.  
  200.    The main purpose of message distribution (often called redistribution    or resending) is to provide to a secondary recipient, perhaps not    included among the original addressees, with a "true original" copy    that can be treated like an original in every respect. 
  201.  
  202.    Such distribution is most often done by discussion group moderators    who use automated agents to simply repost received messages to a    distribution list.  The better automatic distribution agents insert a    new "Return-Path" header field to direct address failure notices to    the discussion group address list maintainer, rather than to the    original author.  This form of distribution is encouraged because it 
  203.  
  204.  Rose & Stefferud                                                [Page 8] 
  205.  
  206.  
  207.  RFC 934                                                     January 1985 Message Encapsulation 
  208.  
  209.     most simply serves to deliver messages to discussion group recipients    as processable originals.  It is performed by trusted pseudo-MTS    agents. 
  210.  
  211.    A second kind of distribution is that done by individuals who wish to    transfer a processable copy of a received message to another    recipient. This second form is discouraged in various new standards    for message transfer.  These include the NBS Standard for Mail    Interchange [FIPS-98], and the recent CCITT draft MHS (Mail Handling    Systems) X.400 standards [X.400]. In place of direct reposting of    received messages as though they are new drafts, the recommendation    is to forward the received message in the body of a new draft from    which is can be extracted by its secondary recipient for further    processing. 
  212.  
  213.    It is in support of this recommendation that this standard for    encapsulation/decapsulation is proposed. 
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  Rose & Stefferud                                                [Page 9] 
  246.  
  247.  
  248.  RFC 934                                                     January 1985 Message Encapsulation 
  249.  
  250.  References 
  251.  
  252.    [RFC-822]    D.H. Crocker.  "Standard for the Format of ARPA-Internet                 Text Messages", University of Delaware.  (August, 1982) 
  253.  
  254.    [RFC-821]    J.B. Postel.  "Simple Mail Transfer Protocol",                 USC/Information Sciences Institute.  (August, 1982). 
  255.  
  256.    [FIPS-98]    National Bureau of Standards.  "Specification for                 Message Format for Computer Based Message Systems."                 (January, 1983). 
  257.  
  258.    [X.400]      Consultative Committee on International Telephone and                 Telegraph.  "DRAFT Recommendation X.400.  Message                 Handling Systems: System Model-Service Elements." 
  259.  
  260. Authors' Addresses 
  261.  
  262.    Marshall T. Rose 
  263.  
  264.       Department of Computer and Information Sciences       University of Delaware       Newark, DE 19716 
  265.  
  266.       MRose@UDel.ARPA 
  267.  
  268.    Einar A. Stefferud 
  269.  
  270.       Network Management Associates, Inc.       17301 Drey Lane       Huntington Beach, CA 92647 
  271.  
  272.       Stef@UCI.ARPA 
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  Rose & Stefferud                                               [Page 10] 
  289.  
  290.