Received: from localhost by CS.UTK.EDU with SMTP (cf v2.9s-UTK) id PAA08054; Fri, 29 Dec 1995 15:26:02 -0500 Received: by CS.UTK.EDU (bulk_mailer v1.3); Fri, 29 Dec 1995 15:25:53 -0500 Received: from po10.andrew.cmu.edu by CS.UTK.EDU with ESMTP (cf v2.9s-UTK) id PAA08036; Fri, 29 Dec 1995 15:25:51 -0500 Received: (from postman@localhost) by po10.andrew.cmu.edu (8.7.1/8.7.1) id PAA00607 for drums@cs.utk.edu; Fri, 29 Dec 1995 15:25:48 -0500 Received: via switchmail; Fri, 29 Dec 1995 15:25:48 -0500 (EST) Received: from hogtown.andrew.cmu.edu via qmail ID ; Fri, 29 Dec 1995 15:24:31 -0500 (EST) Received: from hogtown.andrew.cmu.edu via qmail ID ; Fri, 29 Dec 1995 15:24:30 -0500 (EST) Received: from BatMail.robin.v2.14.CUILIB.3.45.SNAP.NOT.LINKED.hogtown.andrew.cmu.edu.sun4c.411 via MS.5.6.hogtown.andrew.cmu.edu.sun4c_411; Fri, 29 Dec 1995 15:24:28 -0500 (EST) Message-ID: Date: Fri, 29 Dec 1995 15:24:28 -0500 (EST) From: John Gardiner Myers To: drums@cs.utk.edu Subject: loop detection During the WG meeting, I mentioned that the recommendation in section 5.2 that SMTP servers examine Received fields for the domain name of the server is not sufficient for detecting loops. A message may quite legitimately pass through the same server multiple times, as long as it is being delivered to different recipients each time. To do loop detection by examination, an MTA would not only need to scan the trace information for the signature of the MTA, it would also have to look for a cryptographic hash of the evelope recipient set. A matching hash would in fact indicate the message is passing through the same MTA with the same set of recipients and thus is in a loop. The hash would have to be cryptographic (and possibly keyed with an MTA-known secret) to avoid exposing to the message recipients any useful information about any of the other message recipients. This then begs the question: where in the message would one insert the hash? (I am assuming one would want to put the information in the message, instead of keeping an on-server database.) The 822 Received: header is unfortunately not extensible. One could, perhaps, use the "id" field, but most MTA's use that for the queue-id. There is also the fact that there is widespread deployment of MTA implementations which count Received: headers. Any MTA which uses a more advanced loop detection mechanism is still going to run up against these other MTA implementations which bounce messages which have gone through "too many" delivery steps. One possible approach would be to replace the function of Received: with a different header, defined to be extensible. This would, however, probaly be more trouble than it's worth. -- _.John G. Myers Internet: jgm+@CMU.EDU LoseNet: ...!seismo!ihnp4!wiscvm.wisc.edu!give!up