1 todo spec: ../webmail/api.go:721
2
3
4
5
6
7Internet Engineering Task Force (IETF) M. Kucherawy
8Request for Comments: 8601 May 2019
9Obsoletes: 7601
10Category: Standards Track
11ISSN: 2070-1721
12
13
14 Message Header Field for Indicating Message Authentication Status
15
16Abstract
17
18 This document specifies a message header field called
19 "Authentication-Results" for use with electronic mail messages to
20 indicate the results of message authentication efforts. Any
21 receiver-side software, such as mail filters or Mail User Agents
22 (MUAs), can use this header field to relay that information in a
23 convenient and meaningful way to users or to make sorting and
24 filtering decisions.
25
26 This document obsoletes RFC 7601.
27
28Status of This Memo
29
30 This is an Internet Standards Track document.
31
32 This document is a product of the Internet Engineering Task Force
33 (IETF). It represents the consensus of the IETF community. It has
34 received public review and has been approved for publication by the
35 Internet Engineering Steering Group (IESG). Further information on
36 Internet Standards is available in Section 2 of RFC 7841.
37
38 Information about the current status of this document, any errata,
39 and how to provide feedback on it may be obtained at
40 https://www.rfc-editor.org/info/rfc8601.
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58Kucherawy Standards Track [Page 1]
59
60RFC 8601 Authentication-Results Header Field May 2019
61
62
63Copyright Notice
64
65 Copyright (c) 2019 IETF Trust and the persons identified as the
66 document authors. All rights reserved.
67
68 This document is subject to BCP 78 and the IETF Trust's Legal
69 Provisions Relating to IETF Documents
70 (https://trustee.ietf.org/license-info) in effect on the date of
71 publication of this document. Please review these documents
72 carefully, as they describe your rights and restrictions with respect
73 to this document. Code Components extracted from this document must
74 include Simplified BSD License text as described in Section 4.e of
75 the Trust Legal Provisions and are provided without warranty as
76 described in the Simplified BSD License.
77
78Table of Contents
79
80 1. Introduction ....................................................4
81 1.1. Purpose ....................................................5
82 1.2. Trust Boundary .............................................6
83 1.3. Processing Scope ...........................................7
84 1.4. Requirements ...............................................7
85 1.5. Definitions ................................................7
86 1.5.1. Key Words ...........................................7
87 1.5.2. Internationalized Email .............................7
88 1.5.3. Security ............................................8
89 1.5.4. Email Architecture ..................................8
90 1.5.5. Other Terms .........................................9
91 1.6. Trust Environment .........................................10
92 2. Definition and Format of the Header Field ......................10
93 2.1. General Description .......................................10
94 2.2. Formal Definition .........................................11
95 2.3. Property Types (ptypes) and Properties ....................13
96 2.4. The "policy" ptype ........................................15
97 2.5. Authentication Service Identifier Field ...................15
98 2.6. Version Tokens ............................................17
99 2.7. Defined Methods and Result Values .........................17
100 2.7.1. DKIM ...............................................17
101 2.7.2. SPF ................................................19
102 2.7.3. "iprev" ............................................20
103 2.7.4. SMTP AUTH ..........................................21
104 2.7.5. Other Registered Codes .............................22
105 2.7.6. Extension Methods ..................................22
106 2.7.7. Extension Result Codes .............................23
107 3. The "iprev" Authentication Method ..............................23
108 4. Adding the Header Field to a Message ...........................25
109 4.1. Header Field Position and Interpretation ..................26
110 4.2. Local Policy Enforcement ..................................27
111
112
113
114Kucherawy Standards Track [Page 2]
115
116RFC 8601 Authentication-Results Header Field May 2019
117
118
119 5. Removing Existing Header Fields ................................28
120 6. IANA Considerations ............................................29
121 6.1. The Authentication-Results Header Field ...................29
122 6.2. "Email Authentication Methods" Registry Description .......30
123 6.3. "Email Authentication Methods" Registry Update ............31
124 6.3.1. "header.a" for DKIM ................................32
125 6.3.2. "header.s" for DKIM ................................32
126 6.4. "Email Authentication Property Types" Registry
127 Description ...............................................32
128 6.5. "Email Authentication Property Types" Registry Update .....33
129 6.6. "Email Authentication Result Names" Registry Description ..33
130 6.7. "Email Authentication Result Names" Registry Update .......34
131 6.8. SMTP Enhanced Status Codes ................................34
132 7. Security Considerations ........................................35
133 7.1. Forged Header Fields ......................................35
134 7.2. Misleading Results ........................................36
135 7.3. Header Field Position .....................................37
136 7.4. Reverse IP Query Denial-of-Service Attacks ................37
137 7.5. Mitigation of Backscatter .................................37
138 7.6. Internal MTA Lists ........................................37
139 7.7. Attacks against Authentication Methods ....................38
140 7.8. Intentionally Malformed Header Fields .....................38
141 7.9. Compromised Internal Hosts ................................38
142 7.10. Encapsulated Instances ...................................38
143 7.11. Reverse Mapping ..........................................39
144 8. References .....................................................39
145 8.1. Normative References ......................................39
146 8.2. Informative References ....................................40
147 Appendix A. Legacy MUAs ...........................................44
148 Appendix B. Authentication-Results Examples .......................44
149 B.1. Trivial Case: Header Field Not Present .....................44
150 B.2. Nearly Trivial Case: Service Provided, but No
151 Authentication Done ........................................45
152 B.3. Service Provided, Authentication Done ......................46
153 B.4. Service Provided, Several Authentications Done, Single
154 MTA ........................................................47
155 B.5. Service Provided, Several Authentications Done, Different
156 MTAs .......................................................48
157 B.6. Service Provided, Multi-tiered Authentication Done .........50
158 B.7. Comment-Heavy Example ......................................51
159 Appendix C. Operational Considerations about Message
160 Authentication ........................................52
161 Appendix D. Changes since RFC 7601 ................................53
162 Acknowledgments ...................................................54
163 Author's Address ..................................................54
164
165
166
167
168
169
170Kucherawy Standards Track [Page 3]
171
172RFC 8601 Authentication-Results Header Field May 2019
173
174
1751. Introduction
176
177 This document describes a header field called "Authentication-
178 Results" for electronic mail messages that presents the results of a
179 message authentication effort in a machine-readable format. The
180 intent of the header field is to create a place to collect such data
181 when message authentication mechanisms are in use so that a Mail User
182 Agent (MUA) and downstream filters can make filtering decisions
183 and/or provide a recommendation to the user as to the validity of the
184 message's origin and possibly the safety and integrity of its
185 content.
186
187 End users are not expected to be direct consumers of this header
188 field. This header field is intended for consumption by programs
189 that will then use such data or render it in a human-usable form.
190
191 This document specifies the format of this header field and discusses
192 the implications of its presence or absence. However, it does not
193 discuss how the data contained in the header field ought to be used,
194 such as what filtering decisions are appropriate or how an MUA might
195 render those results, as these are local policy and/or user interface
196 design questions that are not appropriate for this document.
197
198 At the time of publication of this document, the following are
199 published email authentication methods:
200
201 o SMTP Service Extension for Authentication [AUTH]
202
203 o DomainKeys Identified Mail Signatures [DKIM]
204
205 o Domain-based Message Authentication, Reporting, and Conformance
206 [DMARC]
207
208 o Sender Policy Framework [SPF]
209
210 o reverse IP address name validation ("iprev", defined in Section 3)
211
212 o Require-Recipient-Valid-Since Header Field and SMTP Service
213 Extension [RRVS]
214
215 o S/MIME Signature Verification [SMIME-REG]
216
217 o Vouch By Reference [VBR]
218
219
220
221
222
223
224
225
226Kucherawy Standards Track [Page 4]
227
228RFC 8601 Authentication-Results Header Field May 2019
229
230
231 The following Historic specifications were previously supported by
232 this framework but have since become obsolete:
233
234 o Author Domain Signing Practices [ADSP] (Historic)
235
236 o DomainKeys [DOMAINKEYS] (Historic)
237
238 Note that at the time of publication of this document the Sender ID
239 specification [SENDERID] (Experimental) is no longer supported by
240 this framework. Discussion regarding moving it to Historic status is
241 underway.
242
243 There exist registries for tokens used within this header field that
244 refer to the specifications listed above. Section 6 describes the
245 registries and their contents and specifies the process by which
246 entries are added or updated. It also updates the existing contents
247 to match the current states of these specifications.
248
249 The goal of this work is to give current and future authentication
250 schemes a common framework within which to deliver their results to
251 downstream agents and discourage the creation of unique header fields
252 for each.
253
254 Although SPF defined a header field called "Received-SPF" and the
255 historic DomainKeys defined one called "DomainKey-Status" for this
256 purpose, those header fields are specific to the conveyance of their
257 respective results only and thus are insufficient to satisfy the
258 requirements enumerated below. In addition, many SPF implementations
259 have adopted the header field specified here at least as an option,
260 and DomainKeys has been obsoleted by DKIM.
261
2621.1. Purpose
263
264 The header field defined in this document is expected to serve
265 several purposes:
266
267 1. Convey the results of various message authentication checks,
268 which are applied by upstream filters and Mail Transfer Agents
269 (MTAs) and then passed to MUAs and downstream filters within the
270 same "trust domain". Such agents might wish to render those
271 results to end users or to use those data to apply more or less
272 stringent content checks based on authentication results.
273
274 2. Provide a common location within a message for such data.
275
276 3. Create an extensible framework for reporting new authentication
277 methods as they emerge.
278
279
280
281
282Kucherawy Standards Track [Page 5]
283
284RFC 8601 Authentication-Results Header Field May 2019
285
286
287 In particular, the mere presence of this header field does not mean
288 its contents are valid. Rather, the header field is reporting
289 assertions made by one or more authentication schemes applied
290 somewhere upstream. For an MUA or downstream filter to treat the
291 assertions as actually valid, there must be an assessment of the
292 trust relationship among such agents, the validating MTA, the paths
293 between them, and the mechanism for conveying the information.
294
2951.2. Trust Boundary
296
297 This document makes several references to the "trust boundary" of an
298 Administrative Management Domain (ADMD). Given the diversity among
299 existing mail environments, a precise definition of this term isn't
300 possible.
301
302 Simply put, a transfer from the producer of the header field to the
303 consumer must occur within a context that permits the consumer to
304 treat assertions by the producer as being reliable and accurate
305 (trustworthy). How this trust is obtained is outside the scope of
306 this document. It is entirely a local matter.
307
308 Thus, this document defines a "trust boundary" as the delineation
309 between "external" and "internal" entities. Services that are
310 internal -- within the trust boundary -- are provided by the ADMD's
311 infrastructure for its users. Those that are external are outside of
312 the authority of the ADMD. By this definition, hosts that are within
313 a trust boundary are subject to the ADMD's authority and policies,
314 independent of their physical placement or their physical operation.
315 For example, a host within a trust boundary might actually be
316 operated by a remote service provider and reside physically within
317 its data center.
318
319 It is possible for a message to be evaluated inside a trust boundary
320 but then depart and re-enter the trust boundary. An example might be
321 a forwarded message such as a message/rfc822 attachment (see
322 "Multipurpose Internet Mail Extensions" [MIME]) or one that is part
323 of a multipart/digest. The details reported by this field cannot be
324 trusted in that case. Thus, if found within one of those media
325 types, this field is typically ignored.
326
327 Note that an MUA could be configured to retrieve messages from a
328 receiver yet not be within the receiver's ADMD. In this case, for
329 the purposes of this work, that MUA is considered to be within the
330 receiver's ADMD if it is configured to identify and ascribe value to
331 authentication results recorded by that ADMD.
332
333
334
335
336
337
338Kucherawy Standards Track [Page 6]
339
340RFC 8601 Authentication-Results Header Field May 2019
341
342
3431.3. Processing Scope
344
345 The content of this header field is meant to convey to message
346 consumers that authentication work on the message was already done
347 within its trust boundary, and those results are being presented. It
348 is not intended to provide message parameters to consumers so that
349 they can perform authentication protocols on their own.
350
3511.4. Requirements
352
353 This document establishes no new requirements on existing protocols,
354 insofar as a non-participating service will continue to interoperate
355 with the deployed messaging infrastructure.
356
357 In particular, this document establishes no requirement on MTAs to
358 reject or filter arriving messages that do not pass authentication
359 checks. The data conveyed by the specified header field's contents
360 are for the information of MUAs and filters and are to be used at
361 their discretion.
362
363 A participating ADMD does undertake some filtering and message
364 modification obligations as described in Section 5.
365
3661.5. Definitions
367
368 This section defines various terms used throughout this document.
369
3701.5.1. Key Words
371
372 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
373 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
374 "OPTIONAL" in this document are to be interpreted as described in
375 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
376 capitals, as shown here.
377
3781.5.2. Internationalized Email
379
380 In this document, there are references to messages formatted to
381 support Email Address Internationalization (EAI). Reference material
382 for this can be found in [RFC6530], [RFC6531], and [RFC6532].
383 Generally speaking, these documents allow UTF-8 in most places that
384 free-form text can be found and U-labels where domain names can be
385 used, and this document extends Authentication-Results accordingly.
386
387
388
389
390
391
392
393
394Kucherawy Standards Track [Page 7]
395
396RFC 8601 Authentication-Results Header Field May 2019
397
398
3991.5.3. Security
400
401 "Guidelines for Writing RFC Text on Security Considerations"
402 [SECURITY] discusses authentication and authorization and the
403 conflation of the two concepts. The use of those terms within the
404 context of recent message security work has given rise to slightly
405 different definitions, and this document reflects those current
406 usages, as follows:
407
408 o "Authorization" is the establishment of permission to use a
409 resource or represent an identity. In this context, authorization
410 indicates that a message from a particular ADMD arrived via a
411 route the ADMD has explicitly approved.
412
413 o "Authentication" is the assertion of validity of a piece of data
414 about a message (such as the sender's identity) or the message in
415 its entirety.
416
417 As examples: SPF is an authorization mechanism in that it expresses a
418 result that shows whether the ADMD that apparently sent the message
419 has explicitly authorized the connecting Simple Mail Transfer
420 Protocol (SMTP) client [SMTP] to relay messages on its behalf, but it
421 does not actually validate any other property of the message itself.
422 By contrast, DKIM is agnostic as to the routing of a message but uses
423 cryptographic signatures to authenticate agents, assign (some)
424 responsibility for the message (which implies authorization), and
425 ensure that the listed portions of the message were not modified in
426 transit. Since the signatures are not tied to SMTP connections, they
427 can be added by the ADMD of origin, intermediate ADMDs (such as a
428 mailing list server), other handling agents, or any combination of
429 these.
430
431 Rather than create a separate header field for each class of
432 solution, this specification groups them both into a single header
433 field.
434
4351.5.4. Email Architecture
436
437 o A "border MTA" is an MTA that acts as a gateway between the
438 general Internet and the users within an organizational boundary.
439 (See also Section 1.2.)
440
441 o A "delivery MTA" (or Mail Delivery Agent or MDA) is an MTA that
442 actually enacts delivery of a message to a user's inbox or other
443 final delivery.
444
445
446
447
448
449
450Kucherawy Standards Track [Page 8]
451
452RFC 8601 Authentication-Results Header Field May 2019
453
454
455 o An "intermediate MTA" is any MTA that is not a delivery MTA and is
456 also not the first MTA to handle the message.
457
458 o A Message Submission Agent (MSA) is an agent that accepts a
459 message from an MUA, introducing it to the mail-handling stream.
460
461 The following diagram illustrates the flow of mail among these
462 defined components. See "Internet Mail Architecture" [EMAIL-ARCH]
463 for further discussion on general email system architecture, which
464 includes detailed descriptions of these components, and Appendix C of
465 this document for discussion about the common aspects of email
466 authentication in current environments.
467
468 +-----+ +-----+ +------------+
469 | MUA |-->| MSA |-->| Border MTA |
470 +-----+ +-----+ +------------+
471 |
472 |
473 V
474 +----------+
475 | Internet |
476 +----------+
477 |
478 |
479 V
480 +-----+ +-----+ +------------------+ +------------+
481 | MUA |<--| MDA |<--| Intermediate MTA |<--| Border MTA |
482 +-----+ +-----+ +------------------+ +------------+
483
484 Generally, it is assumed that the work of applying message
485 authentication schemes takes place at a border MTA or a delivery MTA.
486 This specification is written with that assumption in mind. However,
487 there are some sites at which the entire mail infrastructure consists
488 of a single host. In such cases, such terms as "border MTA" and
489 "delivery MTA" might well apply to the same machine or even the very
490 same agent. It is also possible that some message authentication
491 tests could take place on an intermediate MTA. Although this
492 document doesn't specifically describe such cases, they are not meant
493 to be excluded.
494
4951.5.5. Other Terms
496
497 In this document, the term "producer" refers to any component that
498 adds this header field to messages it is handling, and "consumer"
499 refers to any component that identifies, extracts, and parses the
500 header field to use as part of a handling decision.
501
502
503
504
505
506Kucherawy Standards Track [Page 9]
507
508RFC 8601 Authentication-Results Header Field May 2019
509
510
5111.6. Trust Environment
512
513 This header field permits one or more message validation mechanisms
514 to communicate output to one or more separate assessment mechanisms.
515 These mechanisms operate within a unified trust boundary that defines
516 an ADMD. An ADMD contains one or more entities that perform
517 validation and generate the header field and one or more that consume
518 it for some type of assessment. The field often contains no
519 integrity or validation mechanism of its own, so its presence must be
520 trusted implicitly. Hence, valid use of the header field requires
521 removing any occurrences of it that claim to be associated with the
522 ADMD when the message enters the ADMD. This ensures that later
523 occurrences have been added within the trust boundary of the ADMD.
524
525 The authserv-id token defined in Section 2.2 can be used to reference
526 an entire ADMD or a specific validation engine within an ADMD.
527 Although the labeling scheme is left as an operational choice, some
528 guidance for selecting a token is provided in later sections of this
529 document.
530
5312. Definition and Format of the Header Field
532
533 This section gives a general overview of the format of the header
534 field being defined and then provides a formal specification.
535
5362.1. General Description
537
538 The header field specified here is called "Authentication-Results".
539 It is a structured header field as defined in "Internet Message
540 Format" [MAIL], and thus all of the related definitions in that
541 document apply.
542
543 This header field is added at the top of the message as it transits
544 MTAs that do authentication checks, so some idea of how far away the
545 checks were done can be inferred. It is therefore considered to be a
546 trace field as defined in [MAIL], and thus all of the related
547 definitions in that document apply.
548
549 The value of the header field (after removing comments) consists of
550 an authentication service identifier, an optional version, and then a
551 series of statements and supporting data. The statements are of the
552 form "method=result" and indicate which authentication method or
553 methods were applied and their respective results. For each such
554 statement, the supporting data can include a "reason" string and one
555 or more "property=value" statements indicating which message
556 properties were evaluated to reach that conclusion.
557
558
559
560
561
562Kucherawy Standards Track [Page 10]
563
564RFC 8601 Authentication-Results Header Field May 2019
565
566
567 The header field can appear more than once in a single message, more
568 than one result can be represented in a single header field, or a
569 combination of these can be applied.
570
5712.2. Formal Definition
572
573 Formally, the header field is specified as shown below using
574 Augmented Backus-Naur Form [ABNF]. Examples of valid header fields
575 with explanations of their semantics can be found in Appendix B.
576
577 authres-header-field = "Authentication-Results:" authres-payload ../message/authresults.go:10 ../message/authresults.go:138
578
579 authres-payload = [CFWS] authserv-id
580 [ CFWS authres-version ]
581 ( no-result / 1*resinfo ) [CFWS] CRLF
582
583 authserv-id = value
584 ; see below for a description of this element
585
586 authres-version = 1*DIGIT [CFWS]
587 ; indicates which version of this specification is in use;
588 ; this specification is version "1", and the absence of a
589 ; version implies this version of the specification
590
591 no-result = [CFWS] ";" [CFWS] "none"
592 ; the special case of "none" is used to indicate that no
593 ; message authentication was performed
594
595 resinfo = [CFWS] ";" methodspec [ CFWS reasonspec ]
596 [ CFWS 1*propspec ]
597
598 methodspec = [CFWS] method [CFWS] "=" [CFWS] result ../message/authresults.go:22
599 ; indicates which authentication method was evaluated
600 ; and what its output was
601
602 reasonspec = "reason" [CFWS] "=" [CFWS] value
603 ; a free-form comment on the reason the given result
604 ; was returned
605
606 propspec = ptype [CFWS] "." [CFWS] property [CFWS] "=" pvalue ../message/authresults.go:37
607 ; an indication of which properties of the message
608 ; were evaluated by the authentication scheme being
609 ; applied to yield the reported result
610
611
612
613
614
615
616
617
618Kucherawy Standards Track [Page 11]
619
620RFC 8601 Authentication-Results Header Field May 2019
621
622
623 method = Keyword [ [CFWS] "/" [CFWS] method-version ]
624 ; a method indicates which method's result is
625 ; represented by "result"; it is one of the methods
626 ; explicitly defined as valid in this document
627 ; or is an extension method as defined below
628
629 method-version = 1*DIGIT [CFWS]
630 ; indicates which version of the method specification is
631 ; in use, corresponding to the matching entry in the IANA
632 ; "Email Authentication Methods" registry; a value of "1"
633 ; is assumed if this version string is absent
634
635 result = Keyword
636 ; indicates the results of the attempt to authenticate
637 ; the message; see below for details
638
639 ptype = Keyword
640 ; indicates whether the property being evaluated was
641 ; a parameter to an SMTP command [SMTP], was a value taken
642 ; from a message header field, was some property of
643 ; the message body, or was some other property evaluated by
644 ; the receiving MTA; expected to be one of the "property
645 ; types" explicitly defined as valid, or an extension
646 ; ptype, as defined below
647
648 property = special-smtp-verb / Keyword
649 ; indicates more specifically than "ptype" what the
650 ; source of the evaluated property is; the exact meaning
651 ; is specific to the method whose result is being reported
652 ; and is defined more clearly below
653
654 special-smtp-verb = "mailfrom" / "rcptto"
655 ; special cases of SMTP commands [SMTP] that are made up
656 ; of multiple words
657
658 pvalue = [CFWS] ( value / [ [ local-part ] "@" ] domain-name )
659 [CFWS]
660 ; the value extracted from the message property defined
661 ; by the "ptype.property" construction
662
663 "local-part" is defined in Section 3.4.1 of [MAIL], as modified by
664 [RFC6531].
665
666 "CFWS" is defined in Section 3.2.2 of [MAIL].
667
668
669
670
671
672
673
674Kucherawy Standards Track [Page 12]
675
676RFC 8601 Authentication-Results Header Field May 2019
677
678
679 "Keyword" is defined in Section 4.1.2 of [SMTP]. It is further
680 constrained by the necessity of being registered in the Internet
681 Assigned Numbers Authority (IANA) registry relevant to the context in
682 which it is used. See Sections 2.3, 2.7, and 6.
683
684 The "value" is as defined in Section 5.1 of [MIME], with 2045:661 ../message/authresults.go:64
685 "quoted-string" updated as specified in [RFC6532].
686
687 The "domain-name" is as defined in Section 3.5 of [DKIM].
688
689 See Section 2.5 for a description of the authserv-id element.
690
691 If the value portion of a "pvalue" construction identifies something
692 intended to be an email identity, then it MUST use the right-hand
693 portion of that ABNF definition.
694
695 The list of commands eligible for use with the "smtp" ptype can be
696 found in Section 4.1 of [SMTP].
697
698 The "propspec" may be omitted if, for example, the method was unable
699 to extract any properties to do its evaluation yet still has a result
700 to report. It may also be omitted if the agent generating this
701 result wishes not to reveal such properties to downstream agents.
702
703 Where an SMTP command name is being reported as a "property", the
704 agent generating the header field represents that command by
705 converting it to lowercase and dropping any spaces (e.g., "MAIL FROM"
706 becomes "mailfrom", "RCPT TO" becomes "rcptto", etc.).
707
708 A "ptype" value of "policy" indicates a policy decision about the
709 message not specific to a property of the message that could be
710 extracted. See Section 2.4 for details.
711
712 Examples of complete messages using this header field can be found in
713 Appendix B.
714
7152.3. Property Types (ptypes) and Properties
716
717 The "ptype" in the ABNF above indicates the general type of property
718 being described by the result being reported, upon which the reported
719 result was based. Coupled with the "property", which is more
720 specific, it indicates from where the reported "pvalue" was
721 extracted. This can include a particular part of the message header
722 or body, some part of the SMTP session, a secondary output of an
723 authentication method (apart from its pure result), or some other
724 aspect of the message's handling.
725
726
727
728
729
730Kucherawy Standards Track [Page 13]
731
732RFC 8601 Authentication-Results Header Field May 2019
733
734
735 Combinations of ptypes and properties are registered and described in
736 the "Email Authentication Methods" registry, coupled with the
737 authentication methods with which they are used. This is further
738 described in Section 6.
739
740 Legal values of "ptype" are as defined in the IANA "Email
741 Authentication Property Types" registry, created by [RFC7410]. The
742 initial values and what they typically indicate are as follows, based
743 on [RFC7001]:
744
745 body: Information that was extracted from the body of the message.
746 This might be an arbitrary string of bytes, a hash of a string of
747 bytes, a Uniform Resource Identifier, or some other content of
748 interest. The "property" is an indication of where within the
749 message body the extracted content was found and can indicate an
750 offset, identify a MIME part, etc. (At the time of this revision,
751 no properties matching this ptype have been registered.
752 Accordingly, this ptype may be deprecated in the future.)
753
754 header: Indicates information that was extracted from the header of
755 the message. This might be the value of a header field or some
756 portion of a header field. The "property" gives a more precise
757 indication of the place in the header from which the extraction
758 took place.
759
760 policy: A local policy mechanism was applied that augments or
761 overrides the result returned by the authentication mechanism.
762 (See Section 2.4.)
763
764 smtp: Indicates information that was extracted from an SMTP command
765 that was used to relay the message. The "property" indicates
766 which SMTP command included the extracted content as a parameter.
767
768 Results reported using unknown ptypes MUST NOT be used in making
769 handling decisions. They can be safely ignored by consumers.
770
771 Entries in the "Email Authentication Methods" registry can define
772 properties that deviate from these definitions when appropriate.
773 Such deviations need to be clear in the registry and/or in the
774 defining document. See Section 2.7.1 for an example.
775
776
777
778
779
780
781
782
783
784
785
786Kucherawy Standards Track [Page 14]
787
788RFC 8601 Authentication-Results Header Field May 2019
789
790
7912.4. The "policy" ptype
792
793 A special ptype value of "policy" is also defined. This ptype is
794 provided to indicate that some local policy mechanism was applied
795 that augments or even replaces (i.e., overrides) the result returned
796 by the authentication mechanism. The property and value in this case
797 identify the local policy that was applied and the result it
798 returned.
799
800 For example, a DKIM signature is not required to include the Subject
801 header field in the set of fields that are signed. An ADMD receiving
802 such a message might decide that such a signature is unacceptable,
803 even if it passes, because the content of the Subject header field
804 could be altered post-signing without invalidating the signature.
805 Such an ADMD could replace the DKIM "pass" result with a "policy"
806 result and then also include the following in the corresponding
807 Authentication-Results field:
808
809 ... dkim=policy policy.dkim-rules=unsigned-subject ...
810
811 In this case, the property is "dkim-rules", indicating that some
812 local check by that name took place and that check returned a result
813 of "unsigned-subject". These are arbitrary names selected by (and
814 presumably used within) the ADMD making use of them, so they are not
815 normally registered with IANA or otherwise specified apart from
816 setting syntax restrictions that allow for easy parsing within the
817 rest of the header field.
818
819 This ptype existed in the original specification for this header
820 field [RFC5451], but without a complete description or example of
821 intended use. As a result, it has not seen any practical use to date
822 that matches its intended purpose. These added details are provided
823 to guide implementers toward proper use.
824
8252.5. Authentication Service Identifier Field
826
827 Every Authentication-Results header field has an authentication
828 service identifier field (authserv-id above). Specifically, this is
829 any string intended to identify the authentication service within the
830 ADMD that conducted authentication checks on the message. This
831 identifier is intended to be machine-readable and not necessarily
832 meaningful to users.
833
834 Note that in an EAI-formatted message, this identifier may be
835 expressed in UTF-8.
836
837
838
839
840
841
842Kucherawy Standards Track [Page 15]
843
844RFC 8601 Authentication-Results Header Field May 2019
845
846
847 Since agents consuming this field will use this identifier to
848 determine whether its contents are of interest (and are safe to use),
849 the uniqueness of the identifier MUST be guaranteed by the ADMD that
850 generates it and MUST pertain to that ADMD. MUAs or downstream
851 filters SHOULD use this identifier to determine whether or not the
852 data contained in an Authentication-Results header field ought to be
853 used or ignored.
854
855 For simplicity and scalability, the authentication service identifier
856 SHOULD be a common token used throughout the ADMD. Common practice
857 is to use the DNS domain name used by or within that ADMD, sometimes
858 called the "organizational domain", but this is not strictly
859 necessary.
860
861 For tracing and debugging purposes, the authentication service
862 identifier can instead be the specific hostname of the MTA performing
863 the authentication check whose result is being reported. Moreover,
864 some implementations define a substructure to the identifier; such
865 structures are outside of the scope of this specification.
866
867 Note, however, that using a local, relative identifier like a flat
868 hostname, rather than a hierarchical and globally unique ADMD
869 identifier like a DNS domain name, makes configuration more difficult
870 for large sites. The hierarchical identifier permits aggregating
871 related, trusted systems together under a single, parent identifier,
872 which in turn permits assessing the trust relationship with a single
873 reference. The alternative is a flat namespace requiring
874 individually listing each trusted system. Since consumers will use
875 the identifier to determine whether to use the contents of the header
876 field:
877
878 o Changes to the identifier impose a large, centralized
879 administrative burden.
880
881 o Ongoing administrative changes require constantly updating this
882 centralized table, making it difficult to ensure that an MUA or
883 downstream filter will have access to accurate information for
884 assessing the usability of the header field's content. In
885 particular, consumers of the header field will need to know not
886 only the current identifier(s) in use but previous ones as well to
887 account for delivery latency or later reassessment of the header
888 field's content.
889
890 Examples of valid authentication service identifiers are
891 "example.com", "mail.example.org", "ms1.newyork.example.com", and
892 "example-auth".
893
894
895
896
897
898Kucherawy Standards Track [Page 16]
899
900RFC 8601 Authentication-Results Header Field May 2019
901
902
9032.6. Version Tokens
904
905 The grammar above provides for the optional inclusion of versions on
906 both the header field itself (attached to the authserv-id token) and
907 on each of the methods being reported. The method version refers to
908 the method itself, which is specified in the documents describing
909 those methods, while the authserv-id version refers to this document
910 and thus the syntax of this header field.
911
912 The purpose of including these is to avoid misinterpretation of the
913 results. That is, if a parser finds a version after an authserv-id
914 that it does not explicitly know, it can immediately discontinue
915 trying to parse, since what follows might not be in an expected
916 format. For a method version, the parser SHOULD ignore a method
917 result if the version is not supported in case the semantics of the
918 result have a different meaning than what is expected. For example,
919 if a hypothetical DKIM version 2 yielded a "pass" result for
920 different reasons than version 1 does, a consumer of this field might
921 not want to use the altered semantics. Allowing versions in the
922 syntax is a way to indicate this and let the consumer of the header
923 field decide.
924
9252.7. Defined Methods and Result Values
926
927 Each individual authentication method returns one of a set of
928 specific result values. The subsections below provide references to
929 the documents defining the authentication methods specifically
930 supported by this document, and their corresponding result values.
931 Verifiers SHOULD use these values as described below. New methods
932 not specified in this document, but intended to be supported by the
933 header field defined here, MUST include a similar result table either
934 in their defining documents or in supplementary ones.
935
9362.7.1. DKIM
937
938 DKIM is represented by the "dkim" method and is defined in [DKIM].
939
940 A signature is "acceptable to the ADMD" if it passes local policy
941 checks (or there are no specific local policy checks). For example,
942 an ADMD policy might require that the signature(s) on the message be
943 added using the DNS domain present in the From header field of the
944 message, thus making third-party signatures unacceptable even if they
945 verify.
946
947
948
949
950
951
952
953
954Kucherawy Standards Track [Page 17]
955
956RFC 8601 Authentication-Results Header Field May 2019
957
958
959 The DKIM result set is as follows: 6376:1770 6376:2459 ../dkim/dkim.go:50
960
961 none: The message was not signed.
962
963 pass: The message was signed, the signature or signatures were
964 acceptable to the ADMD, and the signature(s) passed verification
965 tests.
966
967 fail: The message was signed and the signature or signatures were
968 acceptable to the ADMD, but they failed the verification test(s).
969
970 policy: The message was signed, but some aspect of the signature or
971 signatures was not acceptable to the ADMD.
972
973 neutral: The message was signed, but the signature or signatures
974 contained syntax errors or were not otherwise able to be
975 processed. This result is also used for other failures not
976 covered elsewhere in this list.
977
978 temperror: The message could not be verified due to some error that
979 is likely transient in nature, such as a temporary inability to
980 retrieve a public key. A later attempt may produce a final
981 result.
982
983 permerror: The message could not be verified due to some error that
984 is unrecoverable, such as a required header field being absent. A
985 later attempt is unlikely to produce a final result.
986
987 DKIM results are reported using a ptype of "header". The property,
988 however, represents one of the tags found in the DKIM-Signature
989 header field rather than a distinct header field. For example, the
990 ptype-property combination "header.d" refers to the content of the
991 "d" (signing domain) tag from within the signature header field, and
992 not a distinct header field called "d".
993
994 Note that in an EAI-formatted message, the values of the "d" and "i"
995 properties can be expressed in UTF-8.
996
997 In addition to previous registrations, this document registers the
998 DKIM tags "a" (cryptographic algorithm used to sign the message) and
999 "s" (selector) as reportable properties. These can be used to aid
1000 receivers during post-verification processing. In particular,
1001 [RFC8301] obsoleted use of the "rsa-sha1" algorithm in DKIM, so it is
1002 important to be able to distinguish such signatures from those using
1003 preferred algorithms.
1004
1005 The ability to report different DKIM results for a message with
1006 multiple signatures is described in [RFC6008].
1007
1008
1009
1010Kucherawy Standards Track [Page 18]
1011
1012RFC 8601 Authentication-Results Header Field May 2019
1013
1014
1015 [DKIM] advises that if a message fails verification, it is to be
1016 treated as an unsigned message. A report of "fail" here permits the
1017 receiver of the report to decide how to handle the failure. A report
1018 of "neutral" or "none" preempts that choice, ensuring that the
1019 message will be treated as if it had not been signed.
1020
10212.7.2. SPF
1022
1023 SPF uses the "spf" method name. The result values for SPF are
1024 defined in Section 2.6 of [SPF], and those definitions are included
1025 here by reference:
1026
1027 +-----------+------------------------------+
1028 | Code | Meaning |
1029 +-----------+------------------------------+
1030 | none | [SPF], Section 2.6.1 |
1031 +-----------+------------------------------+
1032 | pass | [SPF], Section 2.6.3 |
1033 +-----------+------------------------------+
1034 | fail | [SPF], Section 2.6.4 |
1035 +-----------+------------------------------+
1036 | softfail | [SPF], Section 2.6.5 |
1037 +-----------+------------------------------+
1038 | policy | RFC 8601, Section 2.4 |
1039 +-----------+------------------------------+
1040 | neutral | [SPF], Section 2.6.2 |
1041 +-----------+------------------------------+
1042 | temperror | [SPF], Section 2.6.6 |
1043 +-----------+------------------------------+
1044 | permerror | [SPF], Section 2.6.7 |
1045 +-----------+------------------------------+
1046
1047 These result codes are used in the context of this specification to
1048 reflect the result returned by the component conducting SPF
1049 evaluation.
1050
1051 For SPF, the ptype used is "smtp", and the property is either
1052 "mailfrom" or "helo", since those values are the ones SPF can
1053 evaluate. (If the SMTP client issued the EHLO command instead of
1054 HELO, the property used is "helo".)
1055
1056 Note that in an EAI-formatted message, the local-part of the
1057 "mailfrom" can be expressed in UTF-8 and the domain part can be
1058 expressed as a U-label.
1059
1060 For this method, an additional result of "policy" is defined, which
1061 means the client was authorized to inject or relay mail on behalf of
1062 the sender's DNS domain according to the authentication method's
1063
1064
1065
1066Kucherawy Standards Track [Page 19]
1067
1068RFC 8601 Authentication-Results Header Field May 2019
1069
1070
1071 algorithm, but local policy dictates that the result is unacceptable.
1072 For example, "policy" might be used if SPF returns a "pass" result,
1073 but a local policy check matches the sending DNS domain to one found
1074 in an explicit list of unacceptable DNS domains (e.g., spammers).
1075
1076 If the retrieved sender policies used to evaluate SPF do not contain
1077 explicit provisions for authenticating the local-part (see
1078 Section 3.4.1 of [MAIL]) of an address, the "pvalue" reported along
1079 with results for this mechanism SHOULD NOT include the local-part or
1080 the following "@" character.
1081
10822.7.3. "iprev" ../iprev/iprev.go:30
1083
1084 The result values used by the "iprev" method, defined in Section 3,
1085 are as follows:
1086
1087 pass: The DNS evaluation succeeded, i.e., the "reverse" and
1088 "forward" lookup results were returned and were in agreement.
1089
1090 fail: The DNS evaluation failed. In particular, the "reverse" and
1091 "forward" lookups each produced results, but they were not in
1092 agreement, or the "forward" query completed but produced no
1093 result, e.g., a DNS RCODE of 3, commonly known as NXDOMAIN, or an
1094 RCODE of 0 (NOERROR) in a reply containing no answers, was
1095 returned.
1096
1097 temperror: The DNS evaluation could not be completed due to some
1098 error that is likely transient in nature, such as a temporary DNS
1099 error, e.g., a DNS RCODE of 2, commonly known as SERVFAIL, or
1100 other error condition resulted. A later attempt may produce a
1101 final result.
1102
1103 permerror: The DNS evaluation could not be completed because no PTR
1104 data are published for the connecting IP address, e.g., a DNS
1105 RCODE of 3, commonly known as NXDOMAIN, or an RCODE of 0 (NOERROR)
1106 in a reply containing no answers, was returned. This prevented
1107 completion of the evaluation. A later attempt is unlikely to
1108 produce a final result.
1109
1110 There is no "none" for this method, since any TCP connection
1111 delivering email has an IP address associated with it, so some kind
1112 of evaluation will always be possible.
1113
1114 The result is reported using a ptype of "policy" (as this is not part
1115 of any established protocol) and a property of "iprev".
1116
1117 For discussion of the format of DNS replies, see "Domain names -
1118 implementation and specification" [DNS].
1119
1120
1121
1122Kucherawy Standards Track [Page 20]
1123
1124RFC 8601 Authentication-Results Header Field May 2019
1125
1126
11272.7.4. SMTP AUTH
1128
1129 SMTP AUTH (defined in [AUTH]) is represented by the "auth" method.
1130 Its result values are as follows:
1131
1132 none: SMTP authentication was not attempted.
1133
1134 pass: The SMTP client authenticated to the server reporting the
1135 result using the protocol described in [AUTH].
1136
1137 fail: The SMTP client attempted to authenticate to the server using
1138 the protocol described in [AUTH] but was not successful (such as
1139 providing a valid identity but an incorrect password).
1140
1141 temperror: The SMTP client attempted to authenticate using the
1142 protocol described in [AUTH] but was not able to complete the
1143 attempt due to some error that is likely transient in nature, such
1144 as a temporary directory service lookup error. A later attempt
1145 may produce a final result.
1146
1147 permerror: The SMTP client attempted to authenticate using the
1148 protocol described in [AUTH] but was not able to complete the
1149 attempt due to some error that is likely not transient in nature,
1150 such as a permanent directory service lookup error. A later
1151 attempt is not likely to produce a final result.
1152
1153 The result of AUTH is reported using a ptype of "smtp" and a property
1154 of either:
1155
1156 o "auth", in which case the value is the authorization identity
1157 generated by the exchange initiated by the AUTH command; or
1158
1159 o "mailfrom", in which case the value is the mailbox identified by
1160 the AUTH parameter used with the MAIL FROM command.
1161
1162 Note that in an EAI-formatted message, the local-part can be
1163 expressed in UTF-8 and the domain can be expressed as a U-label.
1164
1165 If both identities are available, both can be reported. For example,
1166 consider this command issued by a client that has completed session
1167 authentication with the AUTH command resulting in an authorized
1168 identity of "client@c.example":
1169
1170 MAIL FROM:<alice@a.example> AUTH=<bob@b.example>
1171
1172 This could result in a "resinfo" construction like so:
1173
1174 ; auth=pass smtp.auth=client@c.example smtp.mailfrom=bob@b.example
1175
1176
1177
1178Kucherawy Standards Track [Page 21]
1179
1180RFC 8601 Authentication-Results Header Field May 2019
1181
1182
1183 Note that in all cases other than "pass", the message was sent by an
1184 unauthenticated client. All non-"pass" cases SHOULD thus be treated
1185 as equivalent with respect to this method.
1186
11872.7.5. Other Registered Codes
1188
1189 Result codes were also registered in other RFCs as follows:
1190
1191 o Vouch By Reference (in [AR-VBR], represented by "vbr").
1192
1193 o Authorized Third-Party Signatures (in [ATPS], represented by
1194 "dkim-atps").
1195
1196 o Author Domain Signing Practices (in [ADSP], represented by
1197 "dkim-adsp").
1198
1199 o Require-Recipient-Valid-Since (in [RRVS], represented by "rrvs").
1200
1201 o S/MIME (in [SMIME-REG], represented by "smime").
1202
1203 Note that in an EAI-formatted message, "vbr.mv" and "vbr.md", which
1204 are already registered, can be expressed as U-labels.
1205
12062.7.6. Extension Methods
1207
1208 Additional authentication method identifiers (extension methods) may
1209 be defined in the future by later revisions or extensions to this
1210 specification. These method identifiers are registered with IANA
1211 and, preferably, published in an RFC. See Section 6 for further
1212 details.
1213
1214 Extension methods can be defined for the following reasons:
1215
1216 1. To allow additional information from new authentication systems
1217 to be communicated to MUAs or downstream filters. The names of
1218 such identifiers ought to reflect the name of the method being
1219 defined but ought not be needlessly long.
1220
1221 2. To allow the creation of "sub-identifiers" that indicate
1222 different levels of authentication and differentiate between
1223 their relative strengths, e.g., "auth1-weak" and "auth1-strong".
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234Kucherawy Standards Track [Page 22]
1235
1236RFC 8601 Authentication-Results Header Field May 2019
1237
1238
1239 Authentication method implementers are encouraged to provide adequate
1240 information, via message header field comments if necessary, to allow
1241 an MUA developer to understand or relay ancillary details of
1242 authentication results. For example, if it might be of interest to
1243 relay what data were used to perform an evaluation, such information
1244 could be relayed as a comment in the header field, such as:
1245
1246 Authentication-Results: example.com;
1247 foo=pass bar.baz=blob (2 of 3 tests OK)
1248
1249 Experimental method identifiers MUST only be used within ADMDs that
1250 have explicitly consented to use them. These method identifiers and
1251 the parameters associated with them are not documented formally.
1252 Therefore, they are subject to change at any time and not suitable
1253 for production use. Any MTA, MUA, or downstream filter intended for
1254 production use SHOULD ignore or delete any Authentication-Results
1255 header field that includes an experimental (unknown) method
1256 identifier.
1257
12582.7.7. Extension Result Codes
1259
1260 Additional result codes (extension results) might be defined in the
1261 future by later revisions or extensions to this specification.
1262 Non-experimental result codes MUST be registered with IANA (and,
1263 preferably, published in an RFC). See Section 6 for further details.
1264
1265 Experimental results MUST only be used within ADMDs that have
1266 explicitly consented to use them. These results and the parameters
1267 associated with them are not formally documented. Therefore, they
1268 are subject to change at any time and not suitable for production
1269 use. Any MTA, MUA, or downstream filter intended for production use
1270 SHOULD ignore or delete any Authentication-Results header field that
1271 includes an extension result.
1272
12733. The "iprev" Authentication Method
1274
1275 This section defines an additional authentication method called
1276 "iprev".
1277
1278 "iprev" is an attempt to verify that a client appears to be valid
1279 based on some DNS queries, which is to say that the IP address is
1280 explicitly associated with a domain name. Upon receiving a session
1281 initiation of some kind from a client, the IP address of the client
1282 peer is queried for matching names (i.e., a number-to-name
1283 translation, also known as a "reverse lookup" or a "PTR" record
1284 query). Once that result is acquired, a lookup of each of the names
1285 (i.e., a name-to-number translation, or an "A" or "AAAA" record
1286
1287
1288
1289
1290Kucherawy Standards Track [Page 23]
1291
1292RFC 8601 Authentication-Results Header Field May 2019
1293
1294
1295 query) thus retrieved is done. The response to this second check
1296 will typically result in at least one mapping back to the client's IP
1297 address.
1298
1299 Expressed as an algorithm: If the client peer's IP address is I, the
1300 list of names to which I maps (after a "PTR" query) is the set N, and
1301 the union of IP addresses to which each member of N maps (after
1302 corresponding "A" and "AAAA" queries) is L, then this test is
1303 successful if I is an element of L.
1304
1305 Often an MTA receiving a connection that fails this test will simply
1306 reject the connection using the enhanced status code defined in
1307 [AUTH-ESC]. If an operator instead wishes to make this information
1308 available to downstream agents as a factor in handling decisions, it
1309 records a result in accordance with Section 2.7.3.
1310
1311 The response to a "PTR" query could contain multiple names. To
1312 prevent heavy DNS loads, agents performing these queries MUST be
1313 implemented such that the number of names evaluated by generation of
1314 corresponding "A" or "AAAA" queries is limited so as not to be unduly
1315 taxing to the DNS infrastructure, though it MAY be configurable by an
1316 administrator. As an example, Section 4.6.4 of [SPF] chose a limit
1317 of 10 for its implementation of this algorithm.
1318
1319 "DNS Extensions to Support IP Version 6" [DNS-IP6] discusses the
1320 query formats for the IPv6 case.
1321
1322 There is some contention regarding the wisdom and reliability of this
1323 test. For example, in some regions, it can be difficult for this
1324 test ever to pass because the practice of arranging to match the
1325 forward and reverse DNS is infrequently observed. Therefore, the
1326 precise implementation details of how a verifier performs an "iprev"
1327 test are not specified here. The verifier MAY report a successful or
1328 failed "iprev" test at its discretion having done some kind of check
1329 of the validity of the connection's identity using DNS. It is
1330 incumbent upon an agent making use of the reported "iprev" result to
1331 understand what exactly that particular verifier is attempting to
1332 report.
1333
1334 Extensive discussion of reverse DNS mapping and its implications can
1335 be found in "Considerations for the use of DNS Reverse Mapping"
1336 [DNSOP-REVERSE]. In particular, it recommends that applications
1337 avoid using this test as a means of authentication or security. Its
1338 presence in this document is not an endorsement but is merely
1339 acknowledgment that the method remains common and provides the means
1340 to relay the results of that test.
1341
1342
1343
1344
1345
1346Kucherawy Standards Track [Page 24]
1347
1348RFC 8601 Authentication-Results Header Field May 2019
1349
1350
13514. Adding the Header Field to a Message
1352
1353 This specification makes no attempt to evaluate the relative
1354 strengths of various message authentication methods that may become
1355 available. The methods listed are an order-independent set; their
1356 sequence does not indicate relative strength or importance of one
1357 method over another. Instead, the MUA or downstream filter consuming
1358 this header field is to interpret the result of each method based on
1359 its own knowledge of what that method evaluates.
1360
1361 Each "method" MUST refer to an authentication method declared in the
1362 IANA registry or an extension method as described in Section 2.7.6,
1363 and each "result" MUST refer to a result code declared in the IANA
1364 registry or an extension result code as defined in Section 2.7.7.
1365 See Section 6 for further information about the registered methods
1366 and result codes.
1367
1368 An MTA compliant with this specification adds this header field
1369 (after performing one or more message authentication tests) to
1370 indicate which MTA or ADMD performed the test, which test was
1371 applied, and what the result was. If an MTA applies more than one
1372 such test, it adds this header field either once per test or once
1373 indicating all of the results. An MTA MUST NOT add a result to an
1374 existing header field.
1375
1376 An MTA MAY add this header field containing only the authentication
1377 service identifier portion and the "none" token (see Section 2.2) to
1378 indicate explicitly that no message authentication schemes were
1379 applied prior to delivery of this message.
1380
1381 An MTA adding this header field has to take steps to identify it as
1382 legitimate to the MUAs or downstream filters that will ultimately
1383 consume its content. One process to do so is described in Section 5.
1384 Further measures may be necessary in some environments. Some
1385 possible solutions are enumerated in Section 7.1. This document does
1386 not mandate any specific solution to this issue, as each environment
1387 has its own facilities and limitations.
1388
1389 Most known message authentication methods focus on a particular
1390 identifier to evaluate. SPF differs in that it can yield a result
1391 based on more than one identifier; specifically, SPF can evaluate the
1392 RFC5321.HELO parameter or the RFC5321.MailFrom parameter. When
1393 generating this field to report those results, only the parameter
1394 that yielded the result is included.
1395
1396
1397
1398
1399
1400
1401
1402Kucherawy Standards Track [Page 25]
1403
1404RFC 8601 Authentication-Results Header Field May 2019
1405
1406
1407 For MTAs that add this header field, adding header fields in order
1408 (at the top), per Section 3.6 of [MAIL], is particularly important.
1409 Moreover, this header field SHOULD be inserted above any other trace
1410 header fields such MTAs might prepend. This placement allows easy
1411 detection of header fields that can be trusted.
1412
1413 End users making direct use of this header field might inadvertently
1414 trust information that has not been properly vetted. If, for
1415 example, a basic SPF result were to be relayed that claims an
1416 authenticated addr-spec, the local-part of that addr-spec has
1417 actually not been authenticated. Thus, an MTA adding this header
1418 field SHOULD NOT include any data that have not been authenticated by
1419 the method(s) being applied. Moreover, MUAs SHOULD NOT render to
1420 users such information if it is presented by a method known not to
1421 authenticate it.
1422
14234.1. Header Field Position and Interpretation
1424
1425 In order to ensure non-ambiguous results and avoid the impact of
1426 false header fields, MUAs and downstream filters SHOULD NOT interpret
1427 this header field unless specifically configured to do so by the user
1428 or administrator. That is, this interpretation should not be "on by
1429 default". Naturally then, users or administrators ought not activate
1430 such a feature unless (1) they are certain the header field will be
1431 validly added by an agent within the ADMD that accepts the mail that
1432 is ultimately read by the MUA, and (2) instances of the header field
1433 that appear to originate within the ADMD but are actually added by
1434 foreign MTAs will be removed before delivery.
1435
1436 Furthermore, MUAs and downstream filters SHOULD NOT interpret this
1437 header field unless the authentication service identifier of the
1438 header field is used within the ADMD as configured by the user or
1439 administrator.
1440
1441 MUAs and downstream filters MUST ignore any result reported using a
1442 "result" not specified in the IANA "Result Code" registry or a
1443 "ptype" not listed in the "Email Authentication Property Types"
1444 registry for such values as defined in Section 6. Moreover, such
1445 agents MUST ignore a result indicated for any "method" they do not
1446 specifically support. The exception to this is experimental methods
1447 as discussed in Section 2.7.6.
1448
1449 An MUA SHOULD NOT reveal these results to end users, absent careful
1450 "human factors" design considerations and testing, for the
1451 presentation of trust-related materials. For example, an attacker
1452 could register examp1e.com (note the digit "1" (one)) and send signed
1453 mail to intended victims; a verifier would detect that the signature
1454
1455
1456
1457
1458Kucherawy Standards Track [Page 26]
1459
1460RFC 8601 Authentication-Results Header Field May 2019
1461
1462
1463 was valid and report a "pass" even though it's clear the DNS domain
1464 name was intended to mislead. See Section 7.2 for further
1465 discussion.
1466
1467 As stated in Section 2.1, this header field MUST be treated as though
1468 it were a trace header field as defined in Section 3.6.7 of [MAIL]
1469 and hence MUST NOT be reordered and MUST be prepended to the message,
1470 so that there is generally some indication upon delivery of where in
1471 the chain of handling MTAs the message authentication was done.
1472
1473 Note that there are a few message handlers that are only capable of
1474 appending new header fields to a message. Strictly speaking, these
1475 handlers are not compliant with this specification. They can still
1476 add the header field to carry authentication details, but any signal
1477 about where in the handling chain the work was done may be lost.
1478 Consumers SHOULD be designed such that this can be tolerated,
1479 especially from a producer known to have this limitation.
1480
1481 MUAs SHOULD ignore instances of this header field discovered within
1482 message/rfc822 MIME attachments. They are likely to contain the
1483 results of authentication checks done in the past, possibly long ago,
1484 and have no contemporary value. Due caution therefore needs to be
1485 taken when choosing to consume them.
1486
1487 Further discussion of these topics can be found in Section 7 below.
1488
14894.2. Local Policy Enforcement
1490
1491 Some sites have a local policy that considers any particular
1492 authentication policy's non-recoverable failure results (typically
1493 "fail" or similar) as justification for rejecting the message. In
1494 such cases, the border MTA SHOULD issue an SMTP rejection response to
1495 the message, rather than adding this header field and allowing the
1496 message to proceed toward delivery. This is more desirable than
1497 allowing the message to reach an internal host's MTA or spam filter,
1498 thus possibly generating a local rejection such as a Delivery Status
1499 Notification (DSN) [DSN] to a forged originator. Such generated
1500 rejections are colloquially known as "backscatter".
1501
1502 The same MAY also be done for local policy decisions overriding the
1503 results of the authentication methods (e.g., the "policy" result
1504 codes described in Section 2.7).
1505
1506 Such rejections at the SMTP protocol level are not possible if local
1507 policy is enforced at the MUA and not the MTA.
1508
1509
1510
1511
1512
1513
1514Kucherawy Standards Track [Page 27]
1515
1516RFC 8601 Authentication-Results Header Field May 2019
1517
1518
15195. Removing Existing Header Fields
1520
1521 To mitigate the impact of forged header fields, any MTA conforming to
1522 this specification MUST delete any discovered instance of this header
1523 field that claims, by virtue of its authentication service
1524 identifier, to have been added within its trust boundary but that did
1525 not come directly from another trusted MTA. For example, an MTA for
1526 example.com receiving a message MUST delete or otherwise obscure any
1527 instance of this header field bearing an authentication service
1528 identifier indicating that the header field was added within
1529 example.com prior to adding its own header fields. This could mean
1530 each internal MTA will need to be configured with a list of other
1531 known, trusted MTAs that are thus expected to be using that same
1532 identifier.
1533
1534 In the case of EAI-formatted messages, this test is done after
1535 converting A-labels into U-labels.
1536
1537 For simplicity and maximum security, a border MTA could remove all
1538 instances of this header field on mail crossing into its trust
1539 boundary. However, this may conflict with the desire to access
1540 authentication results performed by trusted external service
1541 providers. It may also invalidate signed messages whose signatures
1542 cover external instances of this header field. A more robust border
1543 MTA could allow a specific list of authenticating MTAs whose
1544 information is to be admitted, removing the header field originating
1545 from all others.
1546
1547 As stated in Section 1.2, a formal definition of "trust boundary" is
1548 deliberately not made here. It is entirely possible that a border
1549 MTA for example.com will explicitly trust authentication results
1550 asserted by upstream host example.net even though they exist in
1551 completely disjoint administrative boundaries. In that case, the
1552 border MTA MAY elect not to delete those results; moreover, the
1553 upstream host doing some authentication work could apply a signing
1554 technology such as [DKIM] on its own results to assure downstream
1555 hosts of their authenticity. An example of this is provided in
1556 Appendix B.
1557
1558 Similarly, in the case of messages signed using [DKIM] or other
1559 message-signing methods that sign header fields, this removal action
1560 could invalidate one or more signatures on the message if they
1561 covered the header field to be removed. This behavior can be
1562 desirable, since there's little value in validating the signature on
1563 a message with forged header fields. However, signing agents MAY
1564 therefore elect to omit these header fields from signing to avoid
1565 this situation.
1566
1567
1568
1569
1570Kucherawy Standards Track [Page 28]
1571
1572RFC 8601 Authentication-Results Header Field May 2019
1573
1574
1575 An MTA SHOULD remove any instance of this header field bearing a
1576 version (express or implied) that it does not support. However, an
1577 MTA MUST remove such a header field if the SMTP connection [SMTP]
1578 relaying the message is not from a trusted internal MTA. (As
1579 discussed above, this too can result in invalidation of signatures.)
1580 This means the MTA needs to be able to understand versions of this
1581 header field at least as late as the ones understood by the MUAs or
1582 other consumers within its ADMD.
1583
15846. IANA Considerations
1585
1586 IANA has registered the defined header field and created registries
1587 as described below. These registry actions were originally defined
1588 by [RFC5451] and updated by [RFC6577] and [RFC7001]. The created
1589 registries were further updated in [RFC7601] to make them more
1590 complete.
1591
1592 Each registry has two related sections below. The first describes
1593 the registry and its update procedures, which are unchanged from
1594 [RFC7601]. The second enumerates changes to entries that are
1595 relevant to this document.
1596
15976.1. The Authentication-Results Header Field
1598
1599 The Authentication-Results header field was added to the IANA
1600 "Permanent Message Header Field Names" registry, per the procedure
1601 found in [IANA-HEADERS]. That entry has been updated to reference
1602 this document. The following is the registration template:
1603
1604 Header field name: Authentication-Results
1605 Applicable protocol: mail [MAIL]
1606 Status: standard
1607 Author/Change controller: IETF
1608 Specification document(s): RFC 8601
1609 Related information: none
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626Kucherawy Standards Track [Page 29]
1627
1628RFC 8601 Authentication-Results Header Field May 2019
1629
1630
16316.2. "Email Authentication Methods" Registry Description
1632
1633 Names of message authentication methods supported by this
1634 specification have been registered with IANA, with the exception of
1635 experimental names as described in Section 2.7.6. Along with each
1636 method are recorded the properties that accompany the method's
1637 result.
1638
1639 The "Email Authentication Parameters" group, and within it the "Email
1640 Authentication Methods" registry, were created by [RFC5451] for this
1641 purpose. [RFC6577] added a "Status" field for each entry. [RFC7001]
1642 amended the rules governing that registry and also added a "Version"
1643 field to the registry.
1644
1645 The reference for that registry has been updated to reference this
1646 document.
1647
1648 New entries are assigned only for values that have received Expert
1649 Review, per [IANA-CONSIDERATIONS]. The designated expert shall be
1650 appointed by the IESG. The designated expert has discretion to
1651 request that a publication be referenced if a clear, concise
1652 definition of the authentication method cannot be provided, such that
1653 interoperability is assured. Registrations should otherwise be
1654 permitted. The designated expert can also handle requests to mark
1655 any current registration as "deprecated".
1656
1657 No two entries can have the same combination of method, ptype, and
1658 property.
1659
1660 An entry in this registry contains the following:
1661
1662 Method: the name of the method.
1663
1664 Definition: a reference to the document that created this entry, if
1665 any (see below).
1666
1667 ptype: a "ptype" value appropriate for use with that method.
1668
1669 Property: a "property" value matching that "ptype" also appropriate
1670 for use with that method.
1671
1672 Value: a brief description of the value to be supplied with that
1673 method/ptype/property tuple.
1674
1675
1676
1677
1678
1679
1680
1681
1682Kucherawy Standards Track [Page 30]
1683
1684RFC 8601 Authentication-Results Header Field May 2019
1685
1686
1687 Status: the status of this entry, which is one of the following:
1688
1689 active: The entry is in current use.
1690
1691 deprecated: The entry is no longer in current use.
1692
1693 Version: a version number associated with the method (preferably
1694 starting at "1").
1695
1696 The "Definition" field will typically refer to a permanent document,
1697 or at least some descriptive text, where additional information about
1698 the entry being added can be found. This might in turn reference the
1699 document where the method is defined so that all of the semantics
1700 around creating or interpreting an Authentication-Results header
1701 field using this method, ptype, and property can be understood.
1702
17036.3. "Email Authentication Methods" Registry Update
1704
1705 The following entries in this registry have been updated to replace
1706 [RFC7601] with this document:
1707
1708 +------------+--------+----------------------------------+
1709 | Method | ptype | Property |
1710 +------------+--------+----------------------------------+
1711 | auth | smtp | auth |
1712 +------------+--------+----------------------------------+
1713 | auth | smtp | mailfrom |
1714 +------------+--------+----------------------------------+
1715 | dkim | header | d |
1716 +------------+--------+----------------------------------+
1717 | dkim | header | i |
1718 +------------+--------+----------------------------------+
1719 | iprev | policy | iprev |
1720 +------------+--------+----------------------------------+
1721 | spf | smtp | mailfrom |
1722 +------------+--------+----------------------------------+
1723 | spf | smtp | helo |
1724 +------------+--------+----------------------------------+
1725
1726 Notably, the DomainKeys and Sender ID entries are not updated to
1727 refer to this revised specification, as they are considered obsolete.
1728 Accordingly, IANA has changed the "Status" field of the "sender-id"
1729 entry in this table to "deprecated".
1730
1731
1732
1733
1734
1735
1736
1737
1738Kucherawy Standards Track [Page 31]
1739
1740RFC 8601 Authentication-Results Header Field May 2019
1741
1742
1743 Finally, two new entries have been added to this registry, as
1744 follows:
1745
17466.3.1. "header.a" for DKIM
1747
1748 Method: dkim
1749
1750 Definition: RFC 8601
1751
1752 ptype: header
1753
1754 Property: a
1755
1756 Value: value of signature "a" tag
1757
1758 Status: active
1759
1760 Version: 1
1761
17626.3.2. "header.s" for DKIM
1763
1764 Method: dkim
1765
1766 Definition: RFC 8601
1767
1768 ptype: header
1769
1770 Property: s
1771
1772 Value: value of signature "s" tag
1773
1774 Status: active
1775
1776 Version: 1
1777
17786.4. "Email Authentication Property Types" Registry Description
1779
1780 [RFC7410] created the "Email Authentication Property Types" registry.
1781
1782 Entries in this registry are subject to the Expert Review rules as
1783 described in [IANA-CONSIDERATIONS]. Each entry in the registry
1784 requires the following values:
1785
1786 ptype: the name of the ptype being registered, which must fit within
1787 the ABNF described in Section 2.2.
1788
1789 Definition: an optional reference to a defining specification.
1790
1791
1792
1793
1794Kucherawy Standards Track [Page 32]
1795
1796RFC 8601 Authentication-Results Header Field May 2019
1797
1798
1799 Description: a brief description of what sort of information this
1800 "ptype" is meant to cover.
1801
1802 For new entries, the designated expert needs to ensure that the
1803 description provided for the new entry adequately describes the
1804 intended use. An example would be helpful to include in the entry's
1805 defining document (if any), although entries in the "Email
1806 Authentication Methods" registry or the "Email Authentication Result
1807 Names" registry might also serve as examples of intended use.
1808
1809 As this is a complete restatement of the definition and rules for
1810 this registry, IANA has updated this registry to show Section 2.3 of
1811 this document as the current definitions for the "body", "header",
1812 "policy", and "smtp" entries of that registry.
1813
18146.5. "Email Authentication Property Types" Registry Update
1815
1816 All current entries in this registry have been updated to replace
1817 [RFC7601] with this document.
1818
18196.6. "Email Authentication Result Names" Registry Description
1820
1821 Names of message authentication result codes supported by this
1822 specification must be registered with IANA, with the exception of
1823 experimental codes as described in Section 2.7.7.
1824
1825 New entries are assigned only for values that have received Expert
1826 Review, per [IANA-CONSIDERATIONS]. The designated expert shall be
1827 appointed by the IESG. The designated expert has discretion to
1828 request that a publication be referenced if a clear, concise
1829 definition of the authentication result cannot be provided, such that
1830 interoperability is assured. Registrations should otherwise be
1831 permitted. The designated expert can also handle requests to mark
1832 any current registration as "deprecated".
1833
1834 No two entries can have the same combination of method and code.
1835
1836 An entry in this registry contains the following:
1837
1838 Auth Method: an authentication method for which results are being
1839 returned using the header field defined in this document.
1840
1841 Code: a result code that can be returned for this authentication
1842 method.
1843
1844 Specification: either free-form text explaining the meaning of this
1845 method-code combination or a reference to such a definition.
1846
1847
1848
1849
1850Kucherawy Standards Track [Page 33]
1851
1852RFC 8601 Authentication-Results Header Field May 2019
1853
1854
1855 Status: the status of this entry, which is one of the following:
1856
1857 active: The entry is in current use.
1858
1859 deprecated: The entry is no longer in current use.
1860
18616.7. "Email Authentication Result Names" Registry Update
1862
1863 For the following entries in this registry, the new "Specification"
1864 field has been set as follows:
1865
1866 o All "auth" method result codes ("fail", "none", "pass",
1867 "permerror", and "temperror") are now specified in Section 2.7.4
1868 of this document.
1869
1870 o All "dkim" method result names ("fail", "neutral", "none", "pass",
1871 "permerror", "policy", and "temperror") are now specified in
1872 Section 2.7.1 of this document.
1873
1874 o All "iprev" method result names ("fail", "pass", "permerror", and
1875 "temperror") are now specified in Section 2.7.3 of this document.
1876
1877 o The "spf" method result names "fail", "neutral", "none", "pass",
1878 "permerror", "policy", "softfail", and "temperror" are now
1879 specified in Section 2.7.2 of this document. The registration for
1880 result name "hardfail" is not updated.
1881
1882 The following entries in this registry have been updated with a new
1883 "Status" field set to "deprecated", and with no change to the
1884 "Specification" field as they reference historic protocols:
1885
1886 o All "domainkeys" method result names ("fail", "neutral", "none",
1887 "pass", "permerror", "policy", and "temperror").
1888
1889 o All "sender-id" method result names ("fail", "neutral", "none",
1890 "pass", "permerror", "policy", "softfail", and "temperror").
1891
18926.8. SMTP Enhanced Status Codes
1893
1894 The entry for X.7.25 in the "Enumerated Status Codes" subregistry of
1895 the "Simple Mail Transfer Protocol (SMTP) Enhanced Status Codes
1896 Registry" has been updated to refer only to Section 3.3 of
1897 [AUTH-ESC], as that is where that registration was done.
1898
1899
1900
1901
1902
1903
1904
1905
1906Kucherawy Standards Track [Page 34]
1907
1908RFC 8601 Authentication-Results Header Field May 2019
1909
1910
19117. Security Considerations
1912
1913 The following security considerations apply when adding or processing
1914 the Authentication-Results header field:
1915
19167.1. Forged Header Fields
1917
1918 An MTA not applying the filtering discussed in Section 5 exposes MUAs
1919 to false conclusions based on forged header fields. A malicious user
1920 or agent could forge a header field using the DNS domain of a
1921 receiving ADMD as the authserv-id token in the value of the header
1922 field and, with the rest of the value, claim that the message was
1923 properly authenticated. The non-conformant MTA would fail to strip
1924 the forged header field, and the MUA could inappropriately trust it.
1925
1926 For this reason, it is best not to have processing of the
1927 Authentication-Results header field enabled by default; instead, it
1928 should be ignored, at least for the purposes of enacting filtering
1929 decisions, unless specifically enabled by the user or administrator
1930 after verifying that the border MTA is compliant. It is acceptable
1931 to have an MUA aware of this specification but have an explicit list
1932 of hostnames whose Authentication-Results header fields are
1933 trustworthy; however, this list should initially be empty.
1934
1935 Proposed alternative solutions to this problem were made some time
1936 ago and are listed below. To date, they have not been developed due
1937 to lack of demand but are documented here should the information be
1938 useful at some point in the future:
1939
1940 1. Possibly the simplest is a digital signature protecting the
1941 header field, such as using [DKIM], that can be verified by an
1942 MUA by using a posted public key. Although one of the main
1943 purposes of this document is to relieve the burden of doing
1944 message authentication work at the MUA, this only requires that
1945 the MUA learn a single authentication scheme even if a number of
1946 them are in use at the border MTA. Note that [DKIM] requires
1947 that the From header field be signed, although in this
1948 application, the signing agent (a trusted MTA) likely cannot
1949 authenticate that value, so the fact that it is signed should be
1950 ignored. Where the authserv-id is the ADMD's domain name, the
1951 authserv-id matching this valid internal signature's "d=" DKIM
1952 value is sufficient.
1953
1954 2. Another would be a means to interrogate the MTA that added the
1955 header field to see if it is actually providing any message
1956 authentication services and saw the message in question, but this
1957 isn't especially palatable given the work required to craft and
1958 implement such a scheme.
1959
1960
1961
1962Kucherawy Standards Track [Page 35]
1963
1964RFC 8601 Authentication-Results Header Field May 2019
1965
1966
1967 3. Yet another might be a method to interrogate the internal MTAs
1968 that apparently handled the message (based on Received header
1969 fields) to determine whether any of them conform to Section 5 of
1970 this memo. This, too, has potentially high barriers to entry.
1971
1972 4. Extensions to [IMAP], [SMTP], and [POP3] could be defined to
1973 allow an MUA or filtering agent to acquire the authserv-id in use
1974 within an ADMD, thus allowing it to identify which
1975 Authentication-Results header fields it can trust.
1976
1977 5. On the presumption that internal MTAs are fully compliant with
1978 Section 3.6 of [MAIL] and the compliant internal MTAs are using
1979 their own hostnames or the ADMD's DNS domain name as the
1980 authserv-id token, this header field should always appear above a
1981 Received header added by a trusted MTA. This can be used as a
1982 test for header field validity.
1983
1984 Support for some of these is being considered for future work.
1985
1986 In any case, a mechanism needs to exist for an MUA or filter to
1987 verify that the host that appears to have added the header field
1988 (a) actually did so and (b) is legitimately adding that header field
1989 for this delivery. Given the variety of messaging environments
1990 deployed today, consensus appears to be that specifying a particular
1991 mechanism for doing so is not appropriate for this document.
1992
1993 Mitigation of the forged header field attack can also be accomplished
1994 by moving the authentication results data into metadata associated
1995 with the message. In particular, an SMTP extension [SMTP] could be
1996 established to communicate authentication results from the border MTA
1997 to intermediate and delivery MTAs; the latter of these could arrange
1998 to store the authentication results as metadata retrieved and
1999 rendered along with the message by an IMAP client [IMAP] aware of a
2000 similar extension in that protocol. The delivery MTA would be told
2001 to trust data via this extension only from MTAs it trusts, and border
2002 MTAs would not accept data via this extension from any source. There
2003 is no vector in such an arrangement for forgery of authentication
2004 data by an outside agent.
2005
20067.2. Misleading Results
2007
2008 Until some form of service for querying the reputation of a sending
2009 agent is widely deployed, the existence of this header field
2010 indicating a "pass" does not render the message trustworthy. It is
2011 possible for an arriving piece of spam or other undesirable mail to
2012 pass checks by several of the methods enumerated above (e.g., a piece
2013 of spam signed using [DKIM] by the originator of the spam, which
2014
2015
2016
2017
2018Kucherawy Standards Track [Page 36]
2019
2020RFC 8601 Authentication-Results Header Field May 2019
2021
2022
2023 might be a spammer or a compromised system). In particular, this
2024 issue is not resolved by forged header field removal (discussed
2025 above).
2026
2027 Hence, MUAs and downstream filters must take some care with use of
2028 this header even after possibly malicious headers are scrubbed.
2029
20307.3. Header Field Position
2031
2032 Despite the requirements of [MAIL], header fields can sometimes be
2033 reordered en route by intermediate MTAs. The goal of requiring
2034 header field addition only at the top of a message is an
2035 acknowledgment that some MTAs do reorder header fields, but most do
2036 not. Thus, in the general case, there will be some indication of
2037 which MTAs (if any) handled the message after the addition of the
2038 header field defined here.
2039
20407.4. Reverse IP Query Denial-of-Service Attacks
2041
2042 Section 4.6.4 of [SPF] observes that limits are necessary on
2043 recursive evaluations of SPF records in order to avoid abuse of or
2044 attacks on the DNS when verifying arriving client connections. A
2045 verifier wishing to do this check and report this information needs
2046 to take care not to go to unbounded lengths to resolve "A" and "PTR"
2047 queries. MUAs or other filters making use of an "iprev" result
2048 specified by this document need to be aware of the algorithm used by
2049 the verifier reporting the result and, especially, its limitations.
2050
20517.5. Mitigation of Backscatter
2052
2053 Failing to follow the instructions of Section 4.2 can result in a
2054 denial-of-service attack caused by the generation of DSN messages
2055 [DSN] (or equivalent) to addresses that did not send the messages
2056 being rejected.
2057
20587.6. Internal MTA Lists
2059
2060 Section 5 describes a procedure for scrubbing header fields that may
2061 contain forged authentication results about a message. A compliant
2062 installation will have to include, at each MTA, a list of other MTAs
2063 known to be compliant and trustworthy. Failing to keep this list
2064 current as internal infrastructure changes may expose an ADMD to
2065 attack.
2066
2067
2068
2069
2070
2071
2072
2073
2074Kucherawy Standards Track [Page 37]
2075
2076RFC 8601 Authentication-Results Header Field May 2019
2077
2078
20797.7. Attacks against Authentication Methods
2080
2081 If an attack against an authentication method becomes known, clearly
2082 then the agent verifying that method can be fooled into thinking an
2083 inauthentic message is authentic, and thus the value of this header
2084 field can be misleading. It follows that any attack against the
2085 authentication methods supported by this document is also a security
2086 consideration here.
2087
20887.8. Intentionally Malformed Header Fields
2089
2090 As with any other header field found in the message, it is possible
2091 for an attacker to add an Authentication-Results header field that is
2092 extraordinarily large or otherwise malformed in an attempt to
2093 discover or exploit weaknesses in header field parsing code.
2094 Implementers must thoroughly verify all such header fields received
2095 from MTAs and be robust against intentionally as well as
2096 unintentionally malformed header fields.
2097
20987.9. Compromised Internal Hosts
2099
2100 An internal MUA or MTA that has been compromised could generate mail
2101 with a forged From header field and a forged Authentication-Results
2102 header field that endorses it. Although it is clearly a larger
2103 concern to have compromised internal machines than it is to prove the
2104 value of this header field, this risk can be mitigated by arranging
2105 that internal MTAs will remove this header field if it claims to have
2106 been added by a trusted border MTA (as described above), yet the SMTP
2107 connection [SMTP] is not coming from an internal machine known to be
2108 running an authorized MTA. However, in such a configuration,
2109 legitimate MTAs will have to add this header field when legitimate
2110 internal-only messages are generated. This is also covered in
2111 Section 5.
2112
21137.10. Encapsulated Instances
2114
2115 MIME messages can contain attachments of type "message/rfc822", which
2116 contain other messages. Such an encapsulated message can also
2117 contain an Authentication-Results header field. Although the
2118 processing of these is outside of the intended scope of this document
2119 (see Section 1.3), some simple guidance to MUA developers is
2120 appropriate here.
2121
2122 Since MTAs are generally unlikely to strip Authentication-Results
2123 header fields during mailbox delivery, normative language exists in
2124 Section 4.1 cautioning MUAs to ignore such instances within MIME
2125 attachments, as might be included when a message is forwarded.
2126 Moreover, when extracting a message digest to separate mail store
2127
2128
2129
2130Kucherawy Standards Track [Page 38]
2131
2132RFC 8601 Authentication-Results Header Field May 2019
2133
2134
2135 messages or other media, such header fields should be removed so that
2136 they will never be interpreted improperly by MUAs that might later
2137 consume them.
2138
2139 There can be cases where these header fields included as part of
2140 encapsulated messages might actually be of value, such as when they
2141 are taken from messages within the same ADMD where they will be
2142 consumed. Caution must be taken to ensure that the consumer fully
2143 understands the semantics of what the header field is indicating and
2144 the message's handling history before ascribing any value, positive
2145 or negative, to such data.
2146
21477.11. Reverse Mapping
2148
2149 Although Section 3 of this memo includes explicit support for the
2150 "iprev" method, its value as an authentication mechanism is limited.
2151 Implementers of both this specification and agents that use the data
2152 it relays are encouraged to become familiar with the issues raised by
2153 [DNSOP-REVERSE] when deciding whether or not to include support for
2154 "iprev".
2155
21568. References
2157
21588.1. Normative References
2159
2160 [ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
2161 Specifications: ABNF", STD 68, RFC 5234,
2162 DOI 10.17487/RFC5234, January 2008,
2163 <https://www.rfc-editor.org/info/rfc5234>.
2164
2165 [IANA-HEADERS]
2166 Klyne, G., Nottingham, M., and J. Mogul, "Registration
2167 Procedures for Message Header Fields", BCP 90, RFC 3864,
2168 DOI 10.17487/RFC3864, September 2004,
2169 <https://www.rfc-editor.org/info/rfc3864>.
2170
2171 [MAIL] Resnick, P., Ed., "Internet Message Format", RFC 5322,
2172 DOI 10.17487/RFC5322, October 2008,
2173 <https://www.rfc-editor.org/info/rfc5322>.
2174
2175 [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
2176 Extensions (MIME) Part One: Format of Internet Message
2177 Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996,
2178 <https://www.rfc-editor.org/info/rfc2045>.
2179
2180
2181
2182
2183
2184
2185
2186Kucherawy Standards Track [Page 39]
2187
2188RFC 8601 Authentication-Results Header Field May 2019
2189
2190
2191 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
2192 Requirement Levels", BCP 14, RFC 2119,
2193 DOI 10.17487/RFC2119, March 1997,
2194 <https://www.rfc-editor.org/info/rfc2119>.
2195
2196 [RFC6530] Klensin, J. and Y. Ko, "Overview and Framework for
2197 Internationalized Email", RFC 6530, DOI 10.17487/RFC6530,
2198 February 2012, <https://www.rfc-editor.org/info/rfc6530>.
2199
2200 [RFC6531] Yao, J. and W. Mao, "SMTP Extension for Internationalized
2201 Email", RFC 6531, DOI 10.17487/RFC6531, February 2012,
2202 <https://www.rfc-editor.org/info/rfc6531>.
2203
2204 [RFC6532] Yang, A., Steele, S., and N. Freed, "Internationalized
2205 Email Headers", RFC 6532, DOI 10.17487/RFC6532,
2206 February 2012, <https://www.rfc-editor.org/info/rfc6532>.
2207
2208 [RFC7601] Kucherawy, M., "Message Header Field for Indicating
2209 Message Authentication Status", RFC 7601,
2210 DOI 10.17487/RFC7601, August 2015,
2211 <https://www.rfc-editor.org/info/rfc7601>.
2212
2213 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in
2214 RFC 2119 Key Words", BCP 14, RFC 8174,
2215 DOI 10.17487/RFC8174, May 2017,
2216 <https://www.rfc-editor.org/info/rfc8174>.
2217
2218 [SMTP] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321,
2219 DOI 10.17487/RFC5321, October 2008,
2220 <https://www.rfc-editor.org/info/rfc5321>.
2221
22228.2. Informative References
2223
2224 [ADSP] Allman, E., Fenton, J., Delany, M., and J. Levine,
2225 "DomainKeys Identified Mail (DKIM) Author Domain Signing
2226 Practices (ADSP)", RFC 5617, DOI 10.17487/RFC5617,
2227 August 2009, <https://www.rfc-editor.org/info/rfc5617>.
2228
2229 [AR-VBR] Kucherawy, M., "Authentication-Results Registration for
2230 Vouch by Reference Results", RFC 6212,
2231 DOI 10.17487/RFC6212, April 2011,
2232 <https://www.rfc-editor.org/info/rfc6212>.
2233
2234 [ATPS] Kucherawy, M., "DomainKeys Identified Mail (DKIM)
2235 Authorized Third-Party Signatures", RFC 6541,
2236 DOI 10.17487/RFC6541, February 2012,
2237 <https://www.rfc-editor.org/info/rfc6541>.
2238
2239
2240
2241
2242Kucherawy Standards Track [Page 40]
2243
2244RFC 8601 Authentication-Results Header Field May 2019
2245
2246
2247 [AUTH] Siemborski, R., Ed. and A. Melnikov, Ed., "SMTP Service
2248 Extension for Authentication", RFC 4954,
2249 DOI 10.17487/RFC4954, July 2007,
2250 <https://www.rfc-editor.org/info/rfc4954>.
2251
2252 [AUTH-ESC] Kucherawy, M., "Email Authentication Status Codes",
2253 RFC 7372, DOI 10.17487/RFC7372, September 2014,
2254 <https://www.rfc-editor.org/info/rfc7372>.
2255
2256 [DKIM] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed.,
2257 "DomainKeys Identified Mail (DKIM) Signatures", STD 76,
2258 RFC 6376, DOI 10.17487/RFC6376, September 2011,
2259 <https://www.rfc-editor.org/info/rfc6376>.
2260
2261 [DMARC] Kucherawy, M., Ed. and E. Zwicky, Ed., "Domain-based
2262 Message Authentication, Reporting, and Conformance
2263 (DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015,
2264 <https://www.rfc-editor.org/info/rfc7489>.
2265
2266 [DNS] Mockapetris, P., "Domain names - implementation and
2267 specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
2268 November 1987, <https://www.rfc-editor.org/info/rfc1035>.
2269
2270 [DNS-IP6] Thomson, S., Huitema, C., Ksinant, V., and M. Souissi,
2271 "DNS Extensions to Support IP Version 6", STD 88,
2272 RFC 3596, DOI 10.17487/RFC3596, October 2003,
2273 <https://www.rfc-editor.org/info/rfc3596>.
2274
2275 [DNSOP-REVERSE]
2276 Senie, D. and A. Sullivan, "Considerations for the use
2277 of DNS Reverse Mapping", Work in Progress,
2278 draft-ietf-dnsop-reverse-mapping-considerations-06,
2279 March 2008.
2280
2281 [DOMAINKEYS]
2282 Delany, M., "Domain-Based Email Authentication Using
2283 Public Keys Advertised in the DNS (DomainKeys)", RFC 4870,
2284 DOI 10.17487/RFC4870, May 2007,
2285 <https://www.rfc-editor.org/info/rfc4870>.
2286
2287 [DSN] Moore, K. and G. Vaudreuil, "An Extensible Message Format
2288 for Delivery Status Notifications", RFC 3464,
2289 DOI 10.17487/RFC3464, January 2003,
2290 <https://www.rfc-editor.org/info/rfc3464>.
2291
2292
2293
2294
2295
2296
2297
2298Kucherawy Standards Track [Page 41]
2299
2300RFC 8601 Authentication-Results Header Field May 2019
2301
2302
2303 [EMAIL-ARCH]
2304 Crocker, D., "Internet Mail Architecture", RFC 5598,
2305 DOI 10.17487/RFC5598, July 2009,
2306 <https://www.rfc-editor.org/info/rfc5598>.
2307
2308 [IANA-CONSIDERATIONS]
2309 Cotton, M., Leiba, B., and T. Narten, "Guidelines for
2310 Writing an IANA Considerations Section in RFCs", BCP 26,
2311 RFC 8126, DOI 10.17487/RFC8126, June 2017,
2312 <https://www.rfc-editor.org/info/rfc8126>.
2313
2314 [IMAP] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
2315 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003,
2316 <https://www.rfc-editor.org/info/rfc3501>.
2317
2318 [POP3] Myers, J. and M. Rose, "Post Office Protocol - Version 3",
2319 STD 53, RFC 1939, DOI 10.17487/RFC1939, May 1996,
2320 <https://www.rfc-editor.org/info/rfc1939>.
2321
2322 [RFC5451] Kucherawy, M., "Message Header Field for Indicating
2323 Message Authentication Status", RFC 5451,
2324 DOI 10.17487/RFC5451, April 2009,
2325 <https://www.rfc-editor.org/info/rfc5451>.
2326
2327 [RFC6008] Kucherawy, M., "Authentication-Results Registration for
2328 Differentiating among Cryptographic Results", RFC 6008,
2329 DOI 10.17487/RFC6008, September 2010,
2330 <https://www.rfc-editor.org/info/rfc6008>.
2331
2332 [RFC6577] Kucherawy, M., "Authentication-Results Registration Update
2333 for Sender Policy Framework (SPF) Results", RFC 6577,
2334 DOI 10.17487/RFC6577, March 2012,
2335 <https://www.rfc-editor.org/info/rfc6577>.
2336
2337 [RFC7001] Kucherawy, M., "Message Header Field for Indicating
2338 Message Authentication Status", RFC 7001,
2339 DOI 10.17487/RFC7001, September 2013,
2340 <https://www.rfc-editor.org/info/rfc7001>.
2341
2342 [RFC7410] Kucherawy, M., "A Property Types Registry for the
2343 Authentication-Results Header Field", RFC 7410,
2344 DOI 10.17487/RFC7410, December 2014,
2345 <https://www.rfc-editor.org/info/rfc7410>.
2346
2347 [RFC8301] Kitterman, S., "Cryptographic Algorithm and Key Usage
2348 Update to DomainKeys Identified Mail (DKIM)", RFC 8301,
2349 DOI 10.17487/RFC8301, January 2018,
2350 <https://www.rfc-editor.org/info/rfc8301>.
2351
2352
2353
2354Kucherawy Standards Track [Page 42]
2355
2356RFC 8601 Authentication-Results Header Field May 2019
2357
2358
2359 [RRVS] Mills, W. and M. Kucherawy, "The Require-Recipient-Valid-
2360 Since Header Field and SMTP Service Extension", RFC 7293,
2361 DOI 10.17487/RFC7293, July 2014,
2362 <https://www.rfc-editor.org/info/rfc7293>.
2363
2364 [SECURITY] Rescorla, E. and B. Korver, "Guidelines for Writing RFC
2365 Text on Security Considerations", BCP 72, RFC 3552,
2366 DOI 10.17487/RFC3552, July 2003,
2367 <https://www.rfc-editor.org/info/rfc3552>.
2368
2369 [SENDERID] Lyon, J. and M. Wong, "Sender ID: Authenticating E-Mail",
2370 RFC 4406, DOI 10.17487/RFC4406, April 2006,
2371 <https://www.rfc-editor.org/info/rfc4406>.
2372
2373 [SMIME-REG]
2374 Melnikov, A., "Authentication-Results Registration for
2375 S/MIME Signature Verification", RFC 7281,
2376 DOI 10.17487/RFC7281, June 2014,
2377 <https://www.rfc-editor.org/info/rfc7281>.
2378
2379 [SPF] Kitterman, S., "Sender Policy Framework (SPF) for
2380 Authorizing Use of Domains in Email, Version 1", RFC 7208,
2381 DOI 10.17487/RFC7208, April 2014,
2382 <https://www.rfc-editor.org/info/rfc7208>.
2383
2384 [VBR] Hoffman, P., Levine, J., and A. Hathcock, "Vouch By
2385 Reference", RFC 5518, DOI 10.17487/RFC5518, April 2009,
2386 <https://www.rfc-editor.org/info/rfc5518>.
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410Kucherawy Standards Track [Page 43]
2411
2412RFC 8601 Authentication-Results Header Field May 2019
2413
2414
2415Appendix A. Legacy MUAs
2416
2417 Implementers of this specification should be aware that many MUAs are
2418 unlikely to be retrofitted to support the Authentication-Results
2419 header field and its semantics. In the interests of convenience and
2420 quicker adoption, a delivery MTA might want to consider adding things
2421 that are processed by existing MUAs in addition to the
2422 Authentication-Results header field. One suggestion is to include a
2423 Priority header field, on messages that don't already have such a
2424 header field, containing a value that reflects the strength of the
2425 authentication that was accomplished, e.g., "low" for weak or no
2426 authentication, "normal" or "high" for good or strong authentication.
2427
2428 Some modern MUAs can already filter based on the content of this
2429 header field. However, there is keen interest in having MUAs make
2430 some kind of graphical representation of this header field's meaning
2431 to end users. Until this capability is added (i.e., while this
2432 specification and its successors continue to be adopted), other
2433 interim means of conveying authentication results may be necessary.
2434
2435Appendix B. Authentication-Results Examples
2436
2437 This section presents some examples of the use of this header field
2438 to indicate authentication results.
2439
2440B.1. Trivial Case: Header Field Not Present
2441
2442 The trivial case:
2443
2444 Received: from mail-router.example.com
2445 (mail-router.example.com [192.0.2.1])
2446 by server.example.org (8.11.6/8.11.6)
2447 with ESMTP id g1G0r1kA003489;
2448 Fri, Feb 15 2002 17:19:07 -0800
2449 From: sender@example.com
2450 Date: Fri, Feb 15 2002 16:54:30 -0800
2451 To: receiver@example.org
2452 Message-Id: <12345.abc@example.com>
2453 Subject: here's a sample
2454
2455 Hello! Goodbye!
2456
2457 Example 1: Header Field Not Present
2458
2459
2460
2461
2462
2463
2464
2465
2466Kucherawy Standards Track [Page 44]
2467
2468RFC 8601 Authentication-Results Header Field May 2019
2469
2470
2471 The Authentication-Results header field is completely absent. The
2472 MUA may make no conclusion about the validity of the message. This
2473 could be the case because (1) the message authentication services
2474 were not available at the time of delivery, (2) no service is
2475 provided, or (3) the MTA is not in compliance with this
2476 specification.
2477
2478B.2. Nearly Trivial Case: Service Provided, but No Authentication Done
2479
2480 A message that was delivered by an MTA that conforms to this
2481 specification but provides no actual message authentication service:
2482
2483 Authentication-Results: example.org 1; none
2484 Received: from mail-router.example.com
2485 (mail-router.example.com [192.0.2.1])
2486 by server.example.org (8.11.6/8.11.6)
2487 with ESMTP id g1G0r1kA003489;
2488 Fri, Feb 15 2002 17:19:07 -0800
2489 From: sender@example.com
2490 Date: Fri, Feb 15 2002 16:54:30 -0800
2491 To: receiver@example.org
2492 Message-Id: <12345.abc@example.com>
2493 Subject: here's a sample
2494
2495 Hello! Goodbye!
2496
2497 Example 2: Header Present but No Authentication Done
2498
2499 The Authentication-Results header field is present, showing that the
2500 delivering MTA conforms to this specification. It used its DNS
2501 domain name as the authserv-id. The presence of "none" (and the
2502 absence of any method or result tokens) indicates that no message
2503 authentication was done. The version number of the specification to
2504 which the field's content conforms is explicitly provided.
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522Kucherawy Standards Track [Page 45]
2523
2524RFC 8601 Authentication-Results Header Field May 2019
2525
2526
2527B.3. Service Provided, Authentication Done
2528
2529 A message that was delivered by an MTA that conforms to this
2530 specification and applied some message authentication:
2531
2532 Authentication-Results: example.com;
2533 spf=pass smtp.mailfrom=example.net
2534 Received: from dialup-1-2-3-4.example.net
2535 (dialup-1-2-3-4.example.net [192.0.2.200])
2536 by mail-router.example.com (8.11.6/8.11.6)
2537 with ESMTP id g1G0r1kA003489;
2538 Fri, Feb 15 2002 17:19:07 -0800
2539 From: sender@example.net
2540 Date: Fri, Feb 15 2002 16:54:30 -0800
2541 To: receiver@example.com
2542 Message-Id: <12345.abc@example.net>
2543 Subject: here's a sample
2544
2545 Hello! Goodbye!
2546
2547 Example 3: Header Reporting Results
2548
2549 The Authentication-Results header field is present, indicating that
2550 the border MTA conforms to this specification. The authserv-id is
2551 once again the DNS domain name. Furthermore, the message was
2552 authenticated by that MTA via the method specified in [SPF]. Note
2553 that since that method cannot authenticate the local-part, it has
2554 been omitted from the result's value. The MUA could extract and
2555 relay this extra information if desired.
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578Kucherawy Standards Track [Page 46]
2579
2580RFC 8601 Authentication-Results Header Field May 2019
2581
2582
2583B.4. Service Provided, Several Authentications Done, Single MTA
2584
2585 A message that was relayed inbound via a single MTA that conforms to
2586 this specification and applied three different message authentication
2587 checks:
2588
2589 Authentication-Results: example.com;
2590 auth=pass (cram-md5) smtp.auth=sender@example.net;
2591 spf=pass smtp.mailfrom=example.net
2592 Authentication-Results: example.com; iprev=pass
2593 policy.iprev=192.0.2.200
2594 Received: from dialup-1-2-3-4.example.net (8.11.6/8.11.6)
2595 (dialup-1-2-3-4.example.net [192.0.2.200])
2596 by mail-router.example.com (8.11.6/8.11.6)
2597 with ESMTPA id g1G0r1kA003489;
2598 Fri, Feb 15 2002 17:19:07 -0800
2599 Date: Fri, Feb 15 2002 16:54:30 -0800
2600 To: receiver@example.com
2601 From: sender@example.net
2602 Message-Id: <12345.abc@example.net>
2603 Subject: here's a sample
2604
2605 Hello! Goodbye!
2606
2607 Example 4: Headers Reporting Results from One MTA
2608
2609 The Authentication-Results header field is present, indicating that
2610 the delivering MTA conforms to this specification. Once again, the
2611 receiving DNS domain name is used as the authserv-id. Furthermore,
2612 the sender authenticated themselves to the MTA via a method specified
2613 in [AUTH], and both SPF and "iprev" checks were done and passed. The
2614 MUA could extract and relay this extra information if desired.
2615
2616 Two Authentication-Results header fields are not required, since the
2617 same host did all of the checking. The authenticating agent could
2618 have consolidated all the results into one header field.
2619
2620 This example illustrates a scenario in which a remote user on a
2621 dial-up connection (example.net) sends mail to a border MTA
2622 (example.com) using SMTP authentication to prove identity. The
2623 dial-up provider has been explicitly authorized to relay mail as
2624 example.net, producing a "pass" result from the SPF check.
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634Kucherawy Standards Track [Page 47]
2635
2636RFC 8601 Authentication-Results Header Field May 2019
2637
2638
2639B.5. Service Provided, Several Authentications Done, Different MTAs
2640
2641 A message that was relayed inbound by two different MTAs that conform
2642 to this specification and applied multiple message authentication
2643 checks:
2644
2645 Authentication-Results: example.com;
2646 dkim=pass (good signature) header.d=example.com
2647 Received: from mail-router.example.com
2648 (mail-router.example.com [192.0.2.1])
2649 by auth-checker.example.com (8.11.6/8.11.6)
2650 with ESMTP id i7PK0sH7021929;
2651 Fri, Feb 15 2002 17:19:22 -0800
2652 DKIM-Signature: v=1; a=rsa-sha256; s=gatsby; d=example.com;
2653 t=1188964191; c=simple/simple; h=From:Date:To:Subject:
2654 Message-Id:Authentication-Results;
2655 bh=sEuZGD/pSr7ANysbY3jtdaQ3Xv9xPQtS0m70;
2656 b=EToRSuvUfQVP3Bkz ... rTB0t0gYnBVCM=
2657 Authentication-Results: example.com;
2658 auth=pass (cram-md5) smtp.auth=sender@example.com;
2659 spf=fail smtp.mailfrom=example.com
2660 Received: from dialup-1-2-3-4.example.net
2661 (dialup-1-2-3-4.example.net [192.0.2.200])
2662 by mail-router.example.com (8.11.6/8.11.6)
2663 with ESMTPA id g1G0r1kA003489;
2664 Fri, Feb 15 2002 17:19:07 -0800
2665 From: sender@example.com
2666 Date: Fri, Feb 15 2002 16:54:30 -0800
2667 To: receiver@example.com
2668 Message-Id: <12345.abc@example.com>
2669 Subject: here's a sample
2670
2671 Hello! Goodbye!
2672
2673 Example 5: Headers Reporting Results from Multiple MTAs
2674
2675 The Authentication-Results header field is present, indicating
2676 conformance to this specification. Once again, the authserv-id used
2677 is the recipient's DNS domain name. The header field is present
2678 twice because two different MTAs in the chain of delivery did
2679 authentication tests. The first MTA, mail-router.example.com,
2680 reports that SMTP AUTH and SPF were both used and that the former
2681 passed while the latter failed. In the SMTP AUTH case, additional
2682 information is provided in the comment field, which the MUA can
2683 choose to render if desired.
2684
2685
2686
2687
2688
2689
2690Kucherawy Standards Track [Page 48]
2691
2692RFC 8601 Authentication-Results Header Field May 2019
2693
2694
2695 The second MTA, auth-checker.example.com, reports that it did a DKIM
2696 test (which passed). Again, additional data about one of the tests
2697 are provided as a comment, which the MUA may choose to render. Also
2698 noteworthy here is the fact that there is a DKIM signature added by
2699 example.com that assured the integrity of the lower Authentication-
2700 Results field.
2701
2702 Since different hosts did the two sets of authentication checks, the
2703 header fields cannot be consolidated in this example.
2704
2705 This example illustrates more typical transmission of a message into
2706 example.com from a user on a dial-up connection example.net. The
2707 user appears to be legitimate, as they had a valid password allowing
2708 authentication at the border MTA using SMTP AUTH. The SPF test
2709 failed, since example.com has not granted example.net's dial-up
2710 network authority to relay mail on its behalf. The DKIM test passed
2711 because the sending user had a private key matching one of
2712 example.com's published public keys and mail-router.example.com used
2713 it to sign the message.
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746Kucherawy Standards Track [Page 49]
2747
2748RFC 8601 Authentication-Results Header Field May 2019
2749
2750
2751B.6. Service Provided, Multi-tiered Authentication Done
2752
2753 A message that had authentication done at various stages, one of
2754 which was outside the receiving ADMD:
2755
2756 Authentication-Results: example.com;
2757 dkim=pass reason="good signature"
2758 header.i=@mail-router.example.net;
2759 dkim=fail reason="bad signature"
2760 header.i=@newyork.example.com
2761 Received: from mail-router.example.net
2762 (mail-router.example.net [192.0.2.250])
2763 by chicago.example.com (8.11.6/8.11.6)
2764 for <recipient@chicago.example.com>
2765 with ESMTP id i7PK0sH7021929;
2766 Fri, Feb 15 2002 17:19:22 -0800
2767 DKIM-Signature: v=1; a=rsa-sha256; s=furble;
2768 d=mail-router.example.net; t=1188964198; c=relaxed/simple;
2769 h=From:Date:To:Message-Id:Subject:Authentication-Results;
2770 bh=ftA9J6GtX8OpwUECzHnCkRzKw1uk6FNiLfJl5Nmv49E=;
2771 b=oINEO8hgn/gnunsg ... 9n9ODSNFSDij3=
2772 Authentication-Results: example.net;
2773 dkim=pass (good signature) header.i=@newyork.example.com
2774 Received: from smtp.newyork.example.com
2775 (smtp.newyork.example.com [192.0.2.220])
2776 by mail-router.example.net (8.11.6/8.11.6)
2777 with ESMTP id g1G0r1kA003489;
2778 Fri, Feb 15 2002 17:19:07 -0800
2779 DKIM-Signature: v=1; a=rsa-sha256; s=gatsby;
2780 d=newyork.example.com;
2781 t=1188964191; c=simple/simple;
2782 h=From:Date:To:Message-Id:Subject;
2783 bh=sEu28nfs9fuZGD/pSr7ANysbY3jtdaQ3Xv9xPQtS0m7=;
2784 b=EToRSuvUfQVP3Bkz ... rTB0t0gYnBVCM=
2785 From: sender@newyork.example.com
2786 Date: Fri, Feb 15 2002 16:54:30 -0800
2787 To: meetings@example.net
2788 Message-Id: <12345.abc@newyork.example.com>
2789 Subject: here's a sample
2790
2791 Example 6: Headers Reporting Results from Multiple MTAs in
2792 Different ADMDs
2793
2794 In this example, we see multi-tiered authentication with an extended
2795 trust boundary.
2796
2797
2798
2799
2800
2801
2802Kucherawy Standards Track [Page 50]
2803
2804RFC 8601 Authentication-Results Header Field May 2019
2805
2806
2807 The message was sent from someone at example.com's New York office
2808 (newyork.example.com) to a mailing list managed at an intermediary.
2809 The message was signed at the origin using DKIM.
2810
2811 The message was sent to a mailing list service provider called
2812 "example.net", which is used by example.com. There,
2813 meetings@example.net is expanded to a long list of recipients, one of
2814 whom is at the Chicago office. In this example, we will assume that
2815 the trust boundary for chicago.example.com includes the mailing list
2816 server at example.net.
2817
2818 The mailing list server there first authenticated the message and
2819 affixed an Authentication-Results header field indicating such using
2820 its DNS domain name for the authserv-id. It then altered the message
2821 by affixing some footer text to the body, including some
2822 administrivia such as unsubscription instructions. Finally, the
2823 mailing list server affixes a second DKIM signature and begins
2824 distribution of the message.
2825
2826 The border MTA for chicago.example.com explicitly trusts results from
2827 mail-router.example.net, so that header field is not removed. It
2828 performs evaluation of both signatures and determines that the first
2829 (most recent) is a "pass" but, because of the aforementioned
2830 modifications, the second is a "fail". However, the first signature
2831 included the Authentication-Results header added at
2832 mail-router.example.net that validated the second signature. Thus,
2833 indirectly, it can be determined that the authentications claimed by
2834 both signatures are indeed valid.
2835
2836 Note that two styles of presenting metadata about the result are in
2837 use here. In one case, the "reason=" clause is present, which is
2838 intended for easy extraction by parsers; in the other case, the CFWS
2839 production of the ABNF is used to include such data as a header field
2840 comment. The latter can be harder for parsers to extract given the
2841 varied supported syntaxes of mail header fields.
2842
2843B.7. Comment-Heavy Example
2844
2845 The formal syntax permits comments within the content in a number of
2846 places. For the sake of illustration, this example is also legal:
2847
2848 Authentication-Results: foo.example.net (foobar) 1 (baz);
2849 dkim (Because I like it) / 1 (One yay) = (wait for it) fail
2850 policy (A dot can go here) . (like that) expired
2851 (this surprised me) = (as I wasn't expecting it) 1362471462
2852
2853 Example 7: A Very Comment-Heavy but Perfectly Legal Example
2854
2855
2856
2857
2858Kucherawy Standards Track [Page 51]
2859
2860RFC 8601 Authentication-Results Header Field May 2019
2861
2862
2863Appendix C. Operational Considerations about Message Authentication
2864
2865 Implementation of the Authentication-Results header field is
2866 predicated on the idea that authentication (and presumably in the
2867 future, reputation) work is typically done by border MTAs rather than
2868 MUAs or intermediate MTAs; the latter merely make use of the results
2869 determined by the former. Certainly this is not mandatory for
2870 participation in electronic mail or message authentication, but this
2871 header field and its deployment to date are based on that model. The
2872 assumption satisfies several common ADMD requirements:
2873
2874 1. Service operators prefer to resolve the handling of problem
2875 messages as close to the border of the ADMD as possible. This
2876 enables, for example, rejection of messages at the SMTP level
2877 rather than generating a DSN internally. Thus, doing any of the
2878 authentication or reputation work exclusively at the MUA or
2879 intermediate MTA renders this desire unattainable.
2880
2881 2. Border MTAs are more likely to have direct access to external
2882 sources of authentication or reputation information, since modern
2883 MUAs inside of an ADMD are more likely to be heavily firewalled.
2884 Thus, some MUAs might not even be able to complete the task of
2885 performing authentication or reputation evaluations without
2886 complex proxy configurations or similar burdens.
2887
2888 3. MUAs rely upon the upstream MTAs within their trust boundaries to
2889 make correct (as much as is possible) evaluations about the
2890 message's envelope, header, and content. Thus, MUAs don't need
2891 to know how to do the work that upstream MTAs do; they only need
2892 the results of that work.
2893
2894 4. Evaluations about the quality of a message, from simple token
2895 matching (e.g., a list of preferred DNS domains) to cryptographic
2896 verification (e.g., public/private key work), do have a cost and
2897 thus need to be minimized. To that end, performing those tests
2898 at the border MTA is far preferred to doing that work at each MUA
2899 that handles a message. If an ADMD's environment adheres to
2900 common messaging protocols, a reputation query or an
2901 authentication check performed by a border MTA would return the
2902 same result as the same query performed by an MUA. By contrast,
2903 in an environment where the MUA does the work, a message arriving
2904 for multiple recipients would thus cause authentication or
2905 reputation evaluation to be done more than once for the same
2906 message (i.e., at each MUA), causing needless amplification of
2907 resource use and creating a possible denial-of-service attack
2908 vector.
2909
2910
2911
2912
2913
2914Kucherawy Standards Track [Page 52]
2915
2916RFC 8601 Authentication-Results Header Field May 2019
2917
2918
2919 5. Minimizing change is good. As new authentication and reputation
2920 methods emerge, the list of methods supported by this header
2921 field would presumably be extended. If MUAs simply consume the
2922 contents of this header field rather than actually attempt to do
2923 authentication and/or reputation work, then MUAs only need to
2924 learn to parse this header field once; emergence of new methods
2925 requires only a configuration change at the MUAs and software
2926 changes at the MTAs (which are presumably fewer in number). When
2927 choosing to implement these functions in MTAs vs. MUAs, the
2928 issues of individual flexibility, infrastructure inertia, and
2929 scale of effort must be considered. It is typically easier to
2930 change a single MUA than an MTA because the modification affects
2931 fewer users and can be pursued with less care. However, changing
2932 many MUAs is more effort than changing a smaller number of MTAs.
2933
2934 6. For decisions affecting message delivery and display, assessment
2935 based on authentication and reputation is best performed close to
2936 the time of message transit, as a message makes its journey
2937 toward a user's inbox, not afterwards. DKIM keys, IP address
2938 reputations, etc., can change over time or even become invalid,
2939 and users can take a long time to read a message once delivered.
2940 The value of this work thus degrades, perhaps quickly, once the
2941 delivery process has completed. This seriously diminishes the
2942 value of this work when done elsewhere than at MTAs.
2943
2944 Many operational choices are possible within an ADMD, including the
2945 venue for performing authentication and/or reputation assessment.
2946 The current specification does not dictate any of those choices.
2947 Rather, it facilitates those cases in which information produced by
2948 one stage of analysis needs to be transported with the message to the
2949 next stage.
2950
2951Appendix D. Changes since RFC 7601
2952
2953 o Added IANA registration for DKIM "a" and "s" properties.
2954
2955 o Included EAI guidance.
2956
2957 o Adjusted some ABNF tokens and names for easier inclusion by other
2958 documents.
2959
2960 o Made minor editorial adjustments.
2961
2962 o Deprecated entries from RFCs that are now Historic.
2963
2964 o Erratum 4671 resolved.
2965
2966 o Erratum 5435 resolved.
2967
2968
2969
2970Kucherawy Standards Track [Page 53]
2971
2972RFC 8601 Authentication-Results Header Field May 2019
2973
2974
2975Acknowledgments
2976
2977 The author wishes to acknowledge the following individuals for their
2978 review and constructive criticism of this document: Kurt Andersen,
2979 Seth Blank, Tim Draegen, Scott Kitterman, John Levine, and Alessandro
2980 Vesely.
2981
2982Author's Address
2983
2984 Murray S. Kucherawy
2985 270 Upland Drive
2986 San Francisco, CA 94127
2987 United States of America
2988
2989 Email: superuser@gmail.com
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026Kucherawy Standards Track [Page 54]
3027
3028