SELS

About NCSA Projects User Info News

University of Illinois
at Urbana-Champaign

sels

Download SELS brochure

SELS Brochure

List Moderator

Quick links: Creating List Key Operations Subscribing Users

After meeting the prerequisites defined for List Moderator under Installation, you are ready to create a secure email list. In the following we use the example of a list called mylist. In order to secure the list several keys needs to be established and shared between the List Moderator and the List Server. To identify these keys, we use the following convention: PK represents a public key, K represents a private key, LM represents the List Moderator, LS represents the list server, and the sig, ver, enc, dec denote the function of the key, namely, signing, verification, encryption, and decryption. Furthermore, all these keys are unique to the list mylist. Using this convention, the keys of primary interest are (1) the List Moderator's signing and verification keys K_LMsig, PK_LMver, (2) the List Moderator's decryption and encryption keys K_LMdec, PK_LMenc, (3) the List Server's signing and verification keys K_LSsig, PK_LSver, (3) the List Server's decryption and encryption keys K_LSdec, PK_LSenc, and (4) the list's encryption key PK_mylistenc.

We note that GPG users are typically familiar with public and private keys, and not necessarily with signature, verification, encryption and decryption keys. In fact, verification key is nothing but the corresponding public key of the private (signing) key and encryption key is nothing but the corresponding public key of the private (decryption) key. Most GPG certificates contain these two public/private key pairs. If you execute the command:

gpg --edit-key <key-id/name>
you will see the two keys pairs distinguished by their usage codes: C for certificate, S for Signing and A for authentication are typically associated with the signing/verification key pair while E for encryption is typically associated with the encryption/decryption key pair. This is illustrated in the example below. We make this distinction between these two keys pairs to help you, the List Moderator, in following the implementation and use of SELS software a little better.

        $ gpg --edit-key 5009CAFF 
gpg (GnuPG) 1.4.1; Copyright (C) 2005 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Secret key is available. pub 1024D/5009CAFF created: 2006-09-20 expires: never usage: CSA
sub 1024g/B812A35E created: 2006-09-20 expires: never usage: E

Creating a List

    Let us say you want to create a list by the name mylist, your e-mail address is testuser@pkirack1.ncsa.uiuc.edu, and SELS List Moderator software is installed in <sels-install-path>.

  1. If you already have a GPG Key you can use it or you can create one using the following command:

    gpg --gen-key
    Please remember the passphrase protecting the signing key as you will be asked to enter this passphrase every time you sign a message with this key.
  2. Request list creation and establish List Moderator's signature verification key. Use the following command to export your signature verification key (signing public-key) in ascii encoded format to a temporary file

    gpg --export -a <signature-key-id/name> > tmp-pubkey.asc

    Usually <signature-key-name> is your e-mail address. Send your signature verification key in an email, by attaching file created above (tmp-pubkey.asc), to the List Administrator (selsadmin@pkirack1.ncsa.uiuc.edu) with a subject heading " Request to create list mylist". On receiving this message, the List Server will place trust in the provided signature verification key, PK_LMver. To do so, the List Server admin may contact you to provide a fingerprint verification of this key, which you do by executing the following command

    gpg --fingerprint <signature-key-id/name> 
  3. Establish List Server's signature verification key.

    You will receive an email back from the List Server with the list creator password and his signature verification key (signing public key). Import this key into your keyring by 1) saving this e-mail as a file say filename.msg and 2) using the following command:
    "gpg --import filename.msg"

    After importing the key you need to trust it using your email client's GPG plug-in or via GnuPG command:

    "gpg --sign-key<list-server-signature-key-id/name>"

    In this case <list-server-signature-key-name> is selsadmin or selsadmin@pkirack1.ncsa.uiuc.edu. If you'd like an independent fingerprint verification of the key before trusting it, please contact Meenal Pant. Note that prior to sending this email the Site Administrator needs to execute some manual steps, therefore, please allow for some time during business hours for this email to be sent.

  4. Create List. Now go to NCSA list server here and create a list using the list creator password provided in the e-mail from List Server. Enter your email address in the "Initial list owner address" field. Set up a password for the list administration interface using fields "Initial list password" and Confirm initial password". Enter list creator password provided by List Server (LS) in "List creator's (authentication) password" field.

  5. To use SELS effectively, some changes are needed for the list settings. At present these will be done by the site administrator, selsadmin. These changes are as follows:

    • Message footer option under Non Digest Options are turned off.
    • Under the Privacy options, "Confirm & Approve" is chosen for the question "What steps are required for subscribing?"
    • Digest option for batch delivery of email are turned off.
  6. You will receive a signed email from the List Server once these configuration changes have been made. You are then ready to generate and install keys. Note that prior to sending this email the Site Administrator needs to execute some manual steps, therefore, please allow for some time during business hours for this email to be sent.

Generating and Installing Keys to secure the List

  1. Establishing List Moderator's decryption and encryption keys. Go to <sels-install-path>/sels-x.x/bin and execute the following command.

    python SELSModerator.py -l mylist --createLMkeys

    This script creates and installs the List Moderator's signature as well as decryption/encryption key pair associated with the list into your GnuPG keyring ((K_LMsig,PK_LMver), (K_LMdec, PK_LMenc)).

    You will be asked to provide 1) your e-mail address and 2) an ascii encoded key block of your signing and verification keys: K_LMsig, PK_LMver. This key block can be generated by using the following command:

    • gpg --export-secret-key -a <signature-key-id/name>

      Execute this command in a separate terminal and copy and paste the resulting key block at the requested prompt.

    You will be then asked to provide a password to protect your decryption key. Please choose a strong password that you can remember. (You will be asked to provide this password every time you subscribe a user.)

    This script will end with sending an email containing the key PK_LMenc and some parameters to List Server. These parameters are used by the List Server to generate its decryption and encryption keys.

  2. Wait to receive a signed email with the subject "LS public key for list mylist" from the List Server. This email contains the List Server's encryption key, PK_LSenc (signed by the List Server) for the list mylist.

  3. Establishing the list encryption key. Execute the following command to generate PK_mylistenc and send the signed key to the List server via email.

    python SELSModerator.py -l mylist --createListkey

    You will be asked to provide a key block of the List Server's encryption key, which was sent to you by the List Server in the previous email.

  4. You will receive a signed email from the List Server after the list encryption key has been correctly installed at the server. At this point in time, you can start subscribing users.

Generating and emailing List Subscribers key pair associated with List

Before generating Subscriber key pair for a user, the user should be subscribed to the list. Either you, as a List Moderator, could subscribe the user to the list via the Mailman website or the user could subscribe itself via the Mailman website. In the latter case the user's subscription request is forwarded to you for approval, which you can provide via email or via the website. After giving this approval, you as List Moderator need to generate and distribute a decryption and encryption key to the user (K_Udec, PK_Uenc), the list encryption key (PK_mylistenc), and parameters to the List Server for generation of proxy keys. NOTE: To receive messages sent to the list, you must first subscribe yourself; i.e., first subscribe to the list via the Mailman website and then generate keys for yourself as you would for any other user (and follow List Subscriber instructions to complete your subscription process).
  1. Got to <sels-install-path>/sels-x.x/bin/. Execute the following command:

    python SELSModerator.py -l mylist --subscribeUser

    You will need to provide the List Subscriber's name and email, say test-subscriber and test-subscriber@pkirack1.ncsa.uiuc.edu, followed by a password to protect the generated decryption key. The same password is also used to encrypt the email to the Subscriber. Please choose a strong password and give it to the Subscriber using secure means (e.g., in person, over the phone).

    You will also need to provide your passwords for List Moderator's decryption and signing keys, established earlier. If you are wondering what those keys are use the following command to list the keys associated with your list:

    gpg --homedir=<sels-install-path>/sels-x.x/lists/mylist --list-secret-keys

    The key with name starting with LM(mylist) is your decryption key, which you generated earlier in the step Generating and Installing Keys to secure the List above. The other key is your signing key, which you installed in the step Creating a List above.

    This script generates the List Subscriber, test-subscriber's, decryption and encryption key pair associated with the list mylist. The script sends (as List Moderator) an encrypted and signed email containing test-subscriber's key pair and mylist encryption key to test-subscriber. The script (as List Moderator) also sends the test-subscriber's parameters to the List Server via email.

  2. For mass subscription of users execute the following command.

    python SELSModerator.py -l mylist --subscribeUser --batch "inFile.txt" 
    For creating input file "inFile.txt" , send an email with subject "who <list password>" to your mailman list, for e.g. mylist-request@pkirack1.ncsa.uiuc.edu

    You will receive an email containing email addresses and names of users' subscribed to your list. Save this information to a text file. A sample of what this file should look like is shown here.

     cd ~sels-x.x/LM/bin/lists/mylist> 
    Locate the file SELS-mylist.txt This file contains random passwords assigned to each user. Convey this password to the user by some secure means , ex. a phone call.
  3. The List Moderator will see a signed email from the List Server with subject "Corresponding keys generated for user test-subscriber (mylist) <test-subscriber@pkirack1.ncsa.uiuc.edu> of list mylist" in his inbox, once the List Subscriber test-subscriber's corresponding keys have been generated

Last modified 02/07/08 .
Copyright 2000-2008 Board of Trustees of the University of Illinois.