On Tue, Feb 03, 2004 at 02:21:18AM -0500, Hector Santos wrote:
Once upon a time, an "other network" going thru the same process of coming
up with the "ng" system, a major debate developed over the interpretation
and purpose of the message-id:. Is it for tracing or for dupe processing?
or both?
I've only ever used it to team up a file in a spool directory with a logfile
entry.
However, the question rised was whether another system use this "tag" for
distributed mail dupe processing as well:
"sorry, this message was already received"
But as the security around message-id's is quite weak, (IIRC they're
normally based on a hash of the current date/time with the server name
attached), I could just send you a load of mails with message-ids I know
will be valid from the server I hate over the next few hours... then you're
rejecting mail in the misguided belief you've already seen it.
So, if you do this, message ID's need to become harder to spoof than TCP
sequence numbers. Or need to be signed with the sending server's key.
I personally believe if XML is considered, that it would be used as a
"wrapper" concept because as it was the case with the internet RFC 822
emergence as the new standard, there will be a big emphasis in the
"gateway" market to make it all possible. We can not assume that everyone
immediately will change their systems to the new format. Converters will be
written as the most feasible way to implement or integrate into the new
system or network.
I think that we should think completely freshly and as if no other messaging
system had ever existed for now. Once we come up with the ideal protocol as
we see it, then backfit what we need to make it easy to convert to, take in
knowledge of what we know from the implementation of 821/822, etc.
If you will, allow me to give an analogy from the field of Political
Philosophy. The great Johnathan Rawls in 1971 published a book which
included a thought experiment to address the needs of social justice within
our society. I think it's pertinent here.
The thought experiment went like this: Imagine you are in a room cut off
from the outside world. You have no knolwedge of what is outside. You have
no knowledge of who you are, who your family is, what income you have, if
you have a job or not, what religion you are, nothing. You are in this room
with other people just like you. Or they may be completely different to you,
you don't know - all you know is that you're all here and able to
communicate. You must design a fair society that will be put into place when
you leave the room - you will all have to live by those rules once you have
decided them. What would be created? The point was, this environment would
encourage "fairness". You don't know if you have a million in the bank or
you're homeless, so your attitudes to taxation and the homeless would not be
prejudiced by your own subjectiveness.
So, imagine you have TCP/IP, you know about clients and servers and that's
it. You don't know anything about any messaging system that has ever
existed. Now design the best system possible. You MAY take into account the
knowledge you have of the world outside of the network.
You might argue that because we care about the freedom of speech it should
be anonymous. You might argue that because we care about people's
interaction with the law, it should all be traceable. You might argue that
it should be cheap and easy to parse the messages. You might argue that
above all else, it should be secure and reliable because the messages you
send over it are important and private.
You then start applying the technologies we know we have to hand - anonymity
can be addressed with onion routing, traceability/accountability with
certificates and keys, ease of building parsers by using tools already in
existence (XML, say), security can be addressed with encryption and
reliability by using the multi-route techniques we already know about.
Sorry for the length of this, but I think we need to step back up a level
and then drill down later. I hope this mail has given some of you something
to think about.
--
Paul Robinson