Re: Requirements for a filtering header

Philip Miller <[email protected]> Wed, 14 Apr 2004 00:29:42 -0400
Newsgroups gmane.ietf.asrg.filtering
Message-ID <[email protected]>
Yakov Shafranovich wrote:
> Philip Miller wrote:
>> I believe that such a header should appear in a message as many times 
>> as that message is processed by any relevant piece of software that 
>> passes the message on rather than rejecting it outright. This allows 
>> the user (and the software acting on the user's behalf) access to as 
>> much data about a message as possible.
> 
> I still think that the filters should be given an option to delete all 
> prior headers if so configured. An example would be email coming from 
> outside the domain vs. email coming from a filter upstream in a trusted 
> chain.

It would be much better if we can authenticate trust relations implied by 
the header and ignore, or even specially consider, other tags. I just don't 
see the benefit of throwing away information, as long as we know what can be 
trusted.

>>> At any rate, once we have the above major issue resolved, I see the 
>>> need for the following things to be determined:
>>> 1. Syntax of this header
>>
>> I would prefer strict key-value pairs, but if we go with some fixed 
>> fields, I'm fine with that too, just so long as there is room for 
>> specified extension with a low barrier to entry.
> 
> A MIME-like format with "key=value1; key2=value2" has been historically 
> used for header fields. 

I wrote the above with the Received header in mind, which runs completely 
contrary to this, and would be the most likely comparison.

> We do have to keep in mind the length limits (mentioned in the Wiki) and
> perhaps allow for a possibility to header splitting (if the length
> becomes a problem).

Isn't is possible to fold a header across multiple lines? I'll go test this 
somehow.

> Also, what about ordering of fields? Do we mandate a specific order?

I think we had a long debate about that. Current email standards don't 
guarantee ordering for any header but Received, and one non-conformant 
intermediate system can screw it up.

>>> 2. Fields
>>>    a) mandatory
>>
>> I would support making a number of fields mandatory in all instances 
>> of the header, including:
>> 1. Host on which processing occurs
> 
> IP, FQDN, or both? Local name perhaps?

Not sure. It could depend on whether we're looking to match a Received 
header. A locally recognizable name would be sufficient, too. I'd still 
prefer having an unambiguous reference to an administrative domain, which 
means IP or FQDN.

>>>    b) optional, but specified in the base spec
>>
>> My list of these would be:
>> 1. Virus - yes/no

What I really meant here was 'Infected - yes/no'. I think this merits 
special treatment, while spam doesn't, because it is quite objective. Either 
a message matches the signature of a known virus, or it does not.

>> 2. Virus name
> 
> What about more than one virus?

When was the last time you've seen this?

>> 3. Virus forges headers (more specific? necessary at all?)
> 
> What's the point of #3?

Let other software know that sending a bounce could be a useless/harmful 
thing. This is knowledge that makes sense to put in a virus scanner, rather 
than an MTA, because the scanner's virus definitions are the most logical 
place to record this property of a virus.

>> 4. General Classification - i.e. what POPFile is designed to provide
>> 5. Confidence in General Classification - statistical certainty of result
>>
>> Note that a set of spam-specific fields is quite superfluous. The 
>> value of the 'General Classification' field can be 'spam' or 'junk' or 
>> whatever, and the user can set all such things to go in one folder, be 
>> deleted, get a challenge, etc.
> 
> Could "virus" be part of the classification scheme? For example:
> 
> "category=virus; confidence=90%; x-virus-name=blah"

Yea, I think it could. I guess virus doesn't really need a standard field. 
However, doing it this way would mean standardizing the meaning of a 
specific value of the category field, which seems unattractive to me.
Something to discuss further, I guess.

>>> 3. Name of this header
>>
>> Right now, I'm leaning towards the most-generic 'Processed', as a more 
>> active sounding parallel to 'Received'.
> 
> Tagged, Filtered, come to mind as well.

I only mentioned 'Processed' because I don't think it had been suggested 
before. Perhaps we should make a list, and put it to a vote when eveything 
else is specified? Or perhaps one will naturally come to the front, as a 
result of the verbiage used in the draft specification.

Good night.

Sincerely,
Philip Miller