LEP/DKIMAuthenticatedMail

Not logged in - Log In / Register

Revision 7 as of 2010-05-20 20:44:54

Clear message

DKIMAuthenticatedMail

Mail with a DKIM signature should be trusted similarly to GPG-signed mail. See bug 316272.

As a developer who uses Launchpad and gmail
I want Launchpad to trust mail from me without demanding a separate GPG signature
so that I can more easily send Launchpad commands to control bugs, reviews, etc

Many mail services now send Domain Keys Identified Mail giving reasonably strong authentication that the mail was sent by the domain it claims to have been sent by. This is typically attached without needing any action by the user.

Rationale

Many of our users (50%?) use gmail, fastmail, yahoo mail, etc. This would make interaction with Launchpad somewhat easier with them.

It is also useful in a negative direction in that we can reject mail that claims to be from a DKIM-authenticated domain but that is not correctly signed. This may eliminate some amount of spam or forgery. (But this does not seem to be a very significant source of spam or abuse at the moment.)

This is not urgent: more like itch-scratching.

However, it may be easy to implement. There is already an IAuthenticatedMail interface in Launchpad, and there is already a pydkim library that tells whether a particular mail is

Stakeholders

Constraints

Subfeatures

Deployment steps:

  1. Just log the results of the check, without taking any other action: date, sender, message-id, dkim outcome
  2. Let this run for a while and then look at the logs.
  3. For a subset of users, start treating messages with valid signatures as authenticated and every other case as unauthenticated.
  4. Do this for all users, and announce it
  5. For a subset of users, start rejecting messages with invalid signatures, with an explanation of the problem (bearing in mind the message may well have been forged.)
  6. Ditto globally

Workflows

When Launchpad receives mail, it checks whether it is DKIM-signed. The results of this can be: valid, invalid, or inconclusive, not signed, or internal error.

Success

How will we know when we are done?

How will we measure how well we have done?

Thoughts?

Put everything else here. Better out than in.

References