[comp.protocols.kerberos] using kerberos for secure mail

ZBEN@UMD2.UMD.EDU (Ben Cranston) (03/31/89)

I have been looking at the Davis and Swick paper with an eye to using the
Kerberos protocols (or an extension of same) to generate encryption keys
for secured mail messages.  I see how their scheme could be used as stands
to generate a user-to-user session key, but this would require that both the
sender and receiver have valid TGS keys (i.e. actually be signed on).
I would like to design a scheme under which the receiver would generate
some cookie and transfer it to the sender, who could then generate encrypted
messages autonomously.

I have also done a paper on using (an extension to) Kerberos to generate
digital signatures (basically sealing a checksum for the user).  Since both
of these schemes touch upon the idea of session keys (tickets) that last
longer than the 8 hours or so of a maximal workstation session, they are
somewhat related.

If anybody is currently working in this area or has good ideas I would like
to know about it.  (But, but, but it's MY wheel!  And, and, and it's just
big enough to reach the ground!  :-)

bcn@JUNE.CS.WASHINGTON.EDU (Clifford Neuman) (04/01/89)

The existing Kerberos protocol can be used to securely pass encryption
keys for secured mail messages without requiring the recipient to be
logged in at the time the message is sent.  The recipient of a message
can chose the maximum clock skew allowed.  Thus, someone sending a
message could obtain a ticket for the recipient, encrypt the message
in the session key, and pass the ticket along with the encrypted
message.  The main drawback for this scheme is that the recipient of
the message would have to enter his key (password) in order to decrypt
the message.

The way you are looking to do things, the recipent would maintain a
"cookie" that is transfered to the sender which could then generate
the encrypted messages autonomously (Actually, it would still be
necessary for the sender to send this cookie to the KDC).  In this
case, you are assuming that this "cookie" contains a long lived key.
How are you going to protect that key?

	~ Cliff

jis@ATHENA.MIT.EDU (Jeffrey I. Schiller) (04/04/89)

	How about this scheme (which is implementable completely
outside of the kerberos server):

Define a "Mail Key Transmission" service. This service works as follows:

Sender: Build a list containing the name of the sender and a list of
recipients of the message (the AMRL). Hand the "Mail Key Server" (MKS)
a Ticket (say for the "mailkey" service with instance equal to the
mail key server's name) along with the AMRL in a standardized format
with a cryptographic checksum based on the session key of the included
ticket.

If the sender of the AMRL is authenticated to be the specified sender,
the MKS returns the AMRL with a new cryptographic checksum (which only
it can validate) a session key enciphered in a private key of the MKS,
a private key version number (for inclusion with the message) and the
same session key encrypted in the sender's session key (as provided in
the ticket above).

The sender now encrypts the message with the session key provided by
the MKS and includes along the checksumed AMRL and "sealed" session
key.

The Recipient:

Contacts the MKS with a copy of the checksumed AMRL, a ticket and the
"sealed" session key. The MKS verifies the authenticity of the AMRL by
recomputing the cryptographic checksum and then determining if the
recipient is a member of the recipient list. If the recipient list is
valid and the requester is a member of it, then unseal the supplied
session key and reencrypt it in the session key supplied in the ticket
of the recipient.

Once the recipient has the necessary session key, the message can be
decrypted.

Advantages:

Simple. No (or very little) actual state required in the MKS. All it
really needs is a kerberos service key and possibly a set of private
keys.

No modification to the base kerberos protocol or database required.
The MKS can also be administered by a different entity then the
kerberos realm that it is registered in.

Disadvantages:

No mechanism is specified to handle inter-realm messages. They can be
transmitted, but the recipients must all go the the same MKS as the
original sender.

Issues not directly addressed:

I haven't really addressed the issue of mail name to kerberos
principal name here. This can be wing'd by having the AMRL contain
kerberos principal names while the rest of the mail header contains
actual mail names.

*META COMMENT*:

I don't really like this system because it gives the administrators of
the MKS (not to mention the kerberos realm administrators) the ability
to read private messages. I feel that any system for handling mail
should be secure from all individuals no matter whether or not they
administer a kerberos realm or MKS. Public Key systems under
discussion solve this problem.

			-Jeff

ZBEN@UMD2.UMD.EDU (Ben Cranston) (04/05/89)

You describe essentially what we were about to propose, extended to the case
of multiple recipients!  We see two main problem areas.  One is the stability
of the private key used to encrypt the AMRL while in transit from sender to
reader.  If one wants to change this key periodically but retain the ability
to provide the key recovery service for a fairly long period of time
(perhaps months) this will result in a large number of extant private keys.
The second is the foreign Kerberos problem you also allude to.

There is nothing to prevent the user from using her own keys, distributed
by her own ingenuity, if she doesn't trust the Kerberii or their keepers.

I see an emerging need for some form of mail privacy protection, that
encryption is one reasonable route, that key distribution needs to get done.
When the Davis and Swick paper came out that started me thinking along the
lines of user to user authentication.  It now seems that what we want to do
can be done without their extensions.

I do think we should be looking at this issue now so that when the time comes
that people want to implement there will be a reasonably stable standard for
them to write to.  This is more important that who gets credit.

Actually, having a standard may be more important than the gritty details
of what the standard actually is...

gnu@hoptoad.uucp (John Gilmore) (04/10/89)

Jeffrey Schiller proposed a scheme for secure mail.  At first reading
it strikes me that the mail key transmission service will be contacted
many times per message (once by the sender and once by each recipient)
and will get a full list of who is sending the mail and who all the
recipients are.  To me this sounds like a perfect place to do traffic
analysis ("intelligence gathering" in which an adversary finds out who
is talking to who).  It would not even be necessary to break into
the MKS, most of what you need is in the addresses in the packet headers.

I would prefer a protocol where local systems can cache the private
keys of the people who they talk to often, and could generate their own
session keys if required, so that a central key server would only be
able to track a small fraction of the traffic.

Mr. Schiller's proposal also seems to require:

  * that the full list of recipients be divulged to each recipient
(including bcc's)
  * that the recipients must contact the mail key server to decrypt
the received message *from the addressed machine*, that is, if they
have their mail forwarded elsewhere, they will be unable to decrypt
it since their new location is not on the "recipient list".
-- 
John Gilmore    {sun,pacbell,uunet,pyramid,amdahl}!hoptoad!gnu    gnu@toad.com
"Use the Source, Luke...."
Copyright 1989 John Gilmore; you may redistribute only if your recipients may.