[news.software.b] public key cryptography to eliminate/detect forged messages

pst@anise.acc.com (Paul Traina) (08/10/89)

Steve Hayman at iuvax.cs.indiana.edu brought up a valid point in a quick
note discussing cancel messages.  He said it's a shame that it is so easy
to cancel messages.  He's right,  In about 15 minutes I wrote an awk/shell
script that would cancel any message that was piped to it.  It took about
1 minute of looking at a legitimate cancel message and another minute to
figure out that things were based on the Sender field instead of the From
field.

So, with this in mind,  I am begining to think that it wouldn't be a bad
idea if every message that gets created has an additional field which is
based upon some public key cryptography techniques.

Here is something that I'm thinking up as I write it,  so don't take it as
my endorsement of "a good idea".

Create a new version of postnews/Pnews/etc that looks for a file in the
user's home directory ~/.postcrypt.  If there, it takes that as 1/2 of
an encryption key.  If it's not there, it asks the user to enter a
plaintext phrase which then gets reduced to a key and stored in ~/.postcrypt.

When the user posts a message,  an encrypted Authorize-Key: field is added
which is based upon the .postcrypt key and the message id of the actual msg.

If the user desires to cancel the message,  we just go back to the .postcrypt
key,  mung things together, and the cancel message gets sent out with a
"Control-Authorized:" field which contains the proper key to allow canceling
of the message.

By doing it this way,  we add no more processing time on "relay" systems,
and only a slightly additional amount of overhead on the initial post and
cancelling of a message.

For backwards compatibility,  if a message doesn't have an Authorize-Key:
field, then the old rules (i.e. no real rules) apply.

Comments?  Is this a good idea that can be expanded to deal with
rmgroups et al too?  Or is there no real need to bother with it?
-- 
The Constitution isn't all that great, but it sure beats the hell out of
what we're using now.

erik@naggum.uu.no (Erik T Naggum) (08/10/89)

A few immediate reactions to Paul's proposed authentication keys:

- When posting, we have the message-id and the .postcrypt file.
  We can produce the Authorized-Key field from these.

- When cancelling, we must have both parts to get the check, and
  we will reveal the .postcrypt contents, if it sent as the Cancel-
  Authorized field.  Thus, the .postcrypt file needs to be changed
  after each cancel, right?

- If we change the .postcrypt file, we need a mapping between
  .postcrypt contents and message-id, to be stored with the user
  for some time.  Might as well invent something to be used for
  key and log that.

- Or, we could send out the same value in the Cancel-Authorized
  as in the Authorized-Key field.  Kinda defeats itself, right?

I don't think it's a good idea to use information embedded in the
article for authorization.  However, is there anything else?

Wouldn't it be better if we could trace where a message came from,
and reject it if it had followed a different path than over the one
we got it?  (Duplicates are a problem here.  We must then log every
duplicate to an article and compare against, so this can also be
defeated, but with a much narrower range.)  Cancel messages which
followed another path are dropped in the great bit bucket where the
duplicates also go.

Much overhead and not much gains, I suppose.  Just an idea.

Cheers,
--Erik T Naggum
 +----+     +----+  <erik@naggum.uu.no>, <enag@ifi.uio.no>
===   |   ===   /   Naggum Software & Communications
===   |  ===   /    POB 1560 VIKA; 0118 OSLO; NORWAY; +472-717-822
 +----+  +----+	    "These are my opinions, and not those of my employees."
		PS: Do you trust your government?

smb@ulysses.homer.nj.att.com (Steven M. Bellovin) (08/10/89)

Sure, public-key cryptography would work, though the implementation
details can get tricky.  We knew that way back when, when we designed
the very first release of netnews.  It deliberately had no control
messages because we knew that short of cryptography there was no way to
authenticate them.

Why didn't we implement one?  Well, it's harder than you might think.
Bear in mind that what is needed is a system good enough to stand up to
a hacker or malicious legitimate user willing to crunch for a week in
the background on {spare|stolen} cycles on a large machine, while still
being cheap enough to run on a small one.  (If I need to, I can use
a Cray.  I'm not the only one.)

It's also unclear what algorithm to use.  RSA is patented (though the
patent hadn't been granted at the time).  Knapsack has been broken.
Other schemes are proposed regularly, but their worth is unclear.
Incidentally, we don't need public-key cryptography; what we need is
digital signatures, i.e., something that provides a (public key)
cryptographic checksum without necessarily providing secrecy.  The
distinction is important; there are a number of algorithms that provide
just the signature function.

I suspect that the best bet for the near term is to piggyback off of
the privacy-enhanced electronic mail being adopted for the Internet.
See RFC 1040 for details.  An agreement has been negotiated to use RSA
(*with* payment of licensing fees, thank you).  It may be both
technically easy and legitimate given the terms of the agreement with
RSA Data Security, Inc., to use much of the same code, formats, etc.
Unfortunately, I have not seen any public statement on just how the
licensing will work.

		--Steve Bellovin

henry@utzoo.uucp (Henry Spencer) (08/10/89)

In article <12007@ulysses.homer.nj.att.com> smb@ulysses.homer.nj.att.com (Steven M. Bellovin) writes:
>Why didn't we implement one?  Well, it's harder than you might think...

We considered it for C News as well, particularly when Bob Webber was
being obnoxious about moderated groups.  We came to pretty much the same
conclusion:  it's hard, you really need serious-cryppie help, and the
choice of algorithm is a problem.  (Not to mention, it's not good for
performance.)  So we said "not just now".
-- 
V7 /bin/mail source: 554 lines.|     Henry Spencer at U of Toronto Zoology
1989 X.400 specs: 2200+ pages. | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

tneff@bfmny0.UUCP (Tom Neff) (08/10/89)

If you added an authenticating signature ID to each message, you
would need to modify the Cancel procedure to prompt the cancelling
user for a password.  It would be impractical to require a password
for each posted article, so the poster's login password would have
to be used instead.  I think.
-- 
"We walked on the moon --	((	Tom Neff
	you be polite"		 )) 	tneff@bfmny0.UU.NET

brad@looking.on.ca (Brad Templeton) (08/11/89)

In many ways USENET takes the original Unix philosophy.  Remember the
introduction to Unix that started with, "here's how to crash Unix?"
Nobody bothers, because it's so easy.

On USENET, forging a message is no challenge.  It happens pretty rarely,
really.

If you used cryptosystems, you would have to appoint one single person
who could issue control messages, and if that person left or got
irresponsible, then *everybody* would have to change very quickly.

Pretty messy.
-- 
Brad Templeton, Looking Glass Software Ltd.  --  Waterloo, Ontario 519/884-7473