On Wednesday 04 July 2007, Alex Daniloff wrote:
> John,
> Please understand, I'm not talking about public mailing lists.
> The task is to setup closed, private, secure mailing list for limited
> number of individuals.
>
> Let simplify the problem

In reading ahead, it becomes clear you didn't simply anything, you only
attempted to mask your failure to understand public key encryption by
removing references to Public vs Private keys....  

> 1. Mail Server has the encryption key for the each Mailing List it handles.

Not necessary. See below.

> 2. Outbound mail is encrypted using Mailing List encryption key.

No, that's no good..  That would require each user to have the List's 
decryption key which then becomes public knowledge.  
Your server and all the mail it sends would be instantly compromised.

> 3. Subscribers decrypt emails from the mailing list using Mailing List
> provided encryption key.  

No.  That's where you run astray.  Points 2 and 3 are just unworkable
and your list will be cracked in no time.  

Decrypt using an Encrypt key?  Look, Alex, you can't invent terminology
on the fly.  These words have meaning. Its important to understand the
technology involved.

Public key:  use to Encrypt a message to be sent to someone, you use
                   that person's Public key.

Private Key:  Used to decrypt such a message which was encrypted using
                   public key.

If you want to send me an encrypted message:  You encrypt it using MY PUBLIC
key.  I'm the only one who has my PRIVATE key, and that private key is the
only way to decrypt the message. (other than brute force).

You must never provide the server's Private key.  You must never REQUIRE a
users private key.


> 4. Subscriber sends an email to the list encrypted with its own encryption
> key (call it private key or whatever).

No,

There is no such option as WHATEVER.  You simply MUST do what Cristian said
and Read and Understand the manual on GPG.  No way around it.

First, subscribers do not encrypt mail they send using THEIR key, because
that requires the server to know how to decrypt mail from that user and that 
requires the users PRIVATE key.  That is information that the mailing list 
admin has no business knowing.

As stated before, the only way to do this is to encrypt inbound mail with the
servers PUBLIC key. No need of a different key for each list.  Adds nothing
but complexity, and provides no more security.
That single PUBLIC key can be published on a web page, freely 
appended to every message, or distributed by any means.  Its PUBLIC.
Its ok if every one in the world knows it. Its supposed to be known.


> 5. Mail Server decrypts inbound mail from the subscriber using subscriber's
> key stored in its database.

No, that's wrong.   The server does not know how to decrypt any message
encrypted with someone else's key.  No one in their right mind would give you
their private key for decryption.

The server would receive inbound messages that were encrypted with its own
PUBLIC key.  The only person in the world who can decrypt that message
is the holder of the server's PRIVATE key which is called a "PRIVATE" key
because it is kept strictly private.


> 6. Mail Server encrypts outbound mail using Mailing List encryption key.

Useless, and just plain wrong.  That would require distributing the list's 
private key so that all users could decrypt the messages. That would be
secure for about 5 seconds.

1) There is no need to have a key for every list.  It adds nothing.

2) Outbound messages are encrypted using the recipient's PUBLIC key.
    One public key stored in the database for EACH user.  EACH outbound
    message would be custom encrypted using that users key.  It would be
    slower, but do-able.  This database only hold PUBLIC keys, so it does
    not matter if its compromised.


> Practically we're dealing here with multiple sets of encryption keys -
> Mailing List and individual subscribers.

As stated, you don't need a key for each list, you only need a public key for
each user, and a public and private key PAIR for the server.  You publish the
public one, and guard the private one with your life. 
It is used to decrypt inbound messages.


> Call them private or public - it doesn't matter.

Yes, by god it DOES MATTER!


> The question - is there any Mailing List Manager which allows to do  such
> secure transactions.

Not that I am aware of, but it could be implemented with a couple of hooks
(shell scripts should suffice) using majordomo or listserv, or any competent 
mailing list software. 

There are places in each of those packages where you can pre/post/process the 
message body if you add the "hooks" (exit programs).

The actual processing is easily accomplished with a shell script that gets 
invoked with the message body, and the appropriate key.  One script for 
decryption, one for encryption.  The scripts just invoke command line
gpg utilities . 
    Type "man gpg " for the format of that command line utility.

If you set this up as I've indicated ANY linux mail program that understands
gpg (Pgp) can be used to send and receive mails. Only "exit" hooks need be
written for the list management software, and all of them have places for 
these hooks. The hooks might end up being one or two lines of code.

Done your way you will not only have to hack the server, you will have to hack 
each user's mail reader, because mail readers are all set up to handle keys 
properly, and what you describe inverts that process.

-- 
_____________________________________
John Andersen

Attachment: pgpAoYVNM9Pwc.pgp
Description: PGP signature

Reply via email to